Built motion from commit dde1e88.|2.0.19 2.0.19
authorGiuseppe Careri <giuseppe.careri@xcally.com>
Tue, 27 Jun 2017 17:44:57 +0000 (19:44 +0200)
committerGiuseppe Careri <giuseppe.careri@xcally.com>
Tue, 27 Jun 2017 17:44:57 +0000 (19:44 +0200)
813 files changed:
apidoc/api_project.js
apidoc/api_project.json
package.json
public/app/main/apps/integrations/i18n/en.json
public/index.html
public/scripts/app.5dbd06a6.js [deleted file]
public/scripts/app.c92f3182.js [new file with mode: 0644]
public/styles/32px.png [new file with mode: 0644]
public/styles/40px.png [new file with mode: 0644]
public/styles/throbber.gif [new file with mode: 0644]
server/api/action/action.attributes.js
server/api/action/action.controller.js
server/api/action/action.model.js
server/api/action/action.rpc.js
server/api/action/index.js
server/api/analyticCustomReport/analyticCustomReport.attributes.js
server/api/analyticCustomReport/analyticCustomReport.controller.js
server/api/analyticCustomReport/analyticCustomReport.model.js
server/api/analyticCustomReport/analyticCustomReport.rpc.js
server/api/analyticCustomReport/index.js
server/api/analyticDefaultReport/analyticDefaultReport.attributes.js
server/api/analyticDefaultReport/analyticDefaultReport.controller.js
server/api/analyticDefaultReport/analyticDefaultReport.model.js
server/api/analyticDefaultReport/analyticDefaultReport.rpc.js
server/api/analyticDefaultReport/index.js
server/api/analyticExtractedReport/analyticExtractedReport.attributes.js
server/api/analyticExtractedReport/analyticExtractedReport.controller.js
server/api/analyticExtractedReport/analyticExtractedReport.model.js
server/api/analyticExtractedReport/analyticExtractedReport.rpc.js
server/api/analyticExtractedReport/index.js
server/api/analyticFieldReport/analyticFieldReport.attributes.js
server/api/analyticFieldReport/analyticFieldReport.controller.js
server/api/analyticFieldReport/analyticFieldReport.model.js
server/api/analyticFieldReport/analyticFieldReport.rpc.js
server/api/analyticFieldReport/index.js
server/api/analyticMetric/analyticMetric.attributes.js
server/api/analyticMetric/analyticMetric.controller.js
server/api/analyticMetric/analyticMetric.model.js
server/api/analyticMetric/analyticMetric.rpc.js
server/api/analyticMetric/index.js
server/api/analyticTreeReport/analyticTreeReport.attributes.js
server/api/analyticTreeReport/analyticTreeReport.controller.js
server/api/analyticTreeReport/analyticTreeReport.model.js
server/api/analyticTreeReport/analyticTreeReport.rpc.js
server/api/analyticTreeReport/index.js
server/api/authGoogle/authGoogle.controller.js
server/api/authGoogle/index.js
server/api/authLocal/authLocal.controller.js
server/api/authLocal/index.js
server/api/automation/automation.attributes.js
server/api/automation/automation.controller.js
server/api/automation/automation.model.js
server/api/automation/automation.rpc.js
server/api/automation/index.js
server/api/campaign/campaign.attributes.js
server/api/campaign/campaign.controller.js
server/api/campaign/campaign.model.js
server/api/campaign/campaign.rpc.js
server/api/campaign/index.js
server/api/cannedAnswer/cannedAnswer.attributes.js
server/api/cannedAnswer/cannedAnswer.controller.js
server/api/cannedAnswer/cannedAnswer.model.js
server/api/cannedAnswer/cannedAnswer.rpc.js
server/api/cannedAnswer/index.js
server/api/cdr/cdr.attributes.js
server/api/cdr/cdr.controller.js
server/api/cdr/cdr.model.js
server/api/cdr/cdr.rpc.js
server/api/cdr/index.js
server/api/chatApplication/chatApplication.attributes.js
server/api/chatApplication/chatApplication.controller.js
server/api/chatApplication/chatApplication.model.js
server/api/chatApplication/chatApplication.rpc.js
server/api/chatApplication/index.js
server/api/chatDisposition/chatDisposition.attributes.js
server/api/chatDisposition/chatDisposition.controller.js
server/api/chatDisposition/chatDisposition.model.js
server/api/chatDisposition/chatDisposition.rpc.js
server/api/chatDisposition/index.js
server/api/chatEnquiry/chatEnquiry.attributes.js
server/api/chatEnquiry/chatEnquiry.controller.js
server/api/chatEnquiry/chatEnquiry.model.js
server/api/chatEnquiry/chatEnquiry.rpc.js
server/api/chatEnquiry/index.js
server/api/chatInteraction/chatInteraction.attributes.js
server/api/chatInteraction/chatInteraction.controller.js
server/api/chatInteraction/chatInteraction.model.js
server/api/chatInteraction/chatInteraction.rpc.js
server/api/chatInteraction/index.js
server/api/chatMessage/chatMessage.attributes.js
server/api/chatMessage/chatMessage.controller.js
server/api/chatMessage/chatMessage.model.js
server/api/chatMessage/chatMessage.rpc.js
server/api/chatMessage/index.js
server/api/chatProactiveAction/chatProactiveAction.attributes.js
server/api/chatProactiveAction/chatProactiveAction.controller.js
server/api/chatProactiveAction/chatProactiveAction.model.js
server/api/chatProactiveAction/chatProactiveAction.rpc.js
server/api/chatProactiveAction/index.js
server/api/chatQueue/chatQueue.attributes.js
server/api/chatQueue/chatQueue.controller.js
server/api/chatQueue/chatQueue.model.js
server/api/chatQueue/chatQueue.rpc.js
server/api/chatQueue/index.js
server/api/chatReport/chatReport.attributes.js
server/api/chatReport/chatReport.controller.js
server/api/chatReport/chatReport.model.js
server/api/chatReport/chatReport.rpc.js
server/api/chatReport/index.js
server/api/chatSessionReport/chatSessionReport.attributes.js
server/api/chatSessionReport/chatSessionReport.controller.js
server/api/chatSessionReport/chatSessionReport.model.js
server/api/chatSessionReport/chatSessionReport.rpc.js
server/api/chatSessionReport/index.js
server/api/chatVisitor/chatVisitor.attributes.js
server/api/chatVisitor/chatVisitor.controller.js
server/api/chatVisitor/chatVisitor.model.js
server/api/chatVisitor/chatVisitor.rpc.js
server/api/chatVisitor/index.js
server/api/chatWebsite/chatWebsite.attributes.js
server/api/chatWebsite/chatWebsite.controller.js
server/api/chatWebsite/chatWebsite.model.js
server/api/chatWebsite/chatWebsite.rpc.js
server/api/chatWebsite/index.js
server/api/chatWebsiteField/chatWebsiteField.attributes.js
server/api/chatWebsiteField/chatWebsiteField.controller.js
server/api/chatWebsiteField/chatWebsiteField.model.js
server/api/chatWebsiteField/chatWebsiteField.rpc.js
server/api/chatWebsiteField/index.js
server/api/cmCompany/cmCompany.attributes.js
server/api/cmCompany/cmCompany.controller.js
server/api/cmCompany/cmCompany.model.js
server/api/cmCompany/cmCompany.rpc.js
server/api/cmCompany/index.js
server/api/cmContact/cmContact.attributes.js
server/api/cmContact/cmContact.controller.js
server/api/cmContact/cmContact.model.js
server/api/cmContact/cmContact.rpc.js
server/api/cmContact/index.js
server/api/cmCustomField/cmCustomField.attributes.js
server/api/cmCustomField/cmCustomField.controller.js
server/api/cmCustomField/cmCustomField.model.js
server/api/cmCustomField/cmCustomField.rpc.js
server/api/cmCustomField/index.js
server/api/cmHopper/cmHopper.attributes.js
server/api/cmHopper/cmHopper.controller.js
server/api/cmHopper/cmHopper.model.js
server/api/cmHopper/cmHopper.rpc.js
server/api/cmHopper/index.js
server/api/cmHopperBlack/cmHopperBlack.attributes.js
server/api/cmHopperBlack/cmHopperBlack.controller.js
server/api/cmHopperBlack/cmHopperBlack.model.js
server/api/cmHopperBlack/cmHopperBlack.rpc.js
server/api/cmHopperBlack/index.js
server/api/cmHopperFinal/cmHopperFinal.attributes.js
server/api/cmHopperFinal/cmHopperFinal.controller.js
server/api/cmHopperFinal/cmHopperFinal.model.js
server/api/cmHopperFinal/cmHopperFinal.rpc.js
server/api/cmHopperFinal/index.js
server/api/cmHopperHistory/cmHopperHistory.attributes.js
server/api/cmHopperHistory/cmHopperHistory.controller.js
server/api/cmHopperHistory/cmHopperHistory.model.js
server/api/cmHopperHistory/cmHopperHistory.rpc.js
server/api/cmHopperHistory/index.js
server/api/cmList/cmList.attributes.js
server/api/cmList/cmList.controller.js
server/api/cmList/cmList.model.js
server/api/cmList/cmList.rpc.js
server/api/cmList/index.js
server/api/condition/condition.attributes.js
server/api/condition/condition.controller.js
server/api/condition/condition.model.js
server/api/condition/condition.rpc.js
server/api/condition/index.js
server/api/dashboard/dashboard.attributes.js
server/api/dashboard/dashboard.controller.js
server/api/dashboard/dashboard.model.js
server/api/dashboard/dashboard.rpc.js
server/api/dashboard/index.js
server/api/dashboardItem/dashboardItem.attributes.js
server/api/dashboardItem/dashboardItem.controller.js
server/api/dashboardItem/dashboardItem.model.js
server/api/dashboardItem/dashboardItem.rpc.js
server/api/dashboardItem/index.js
server/api/faxAccount/faxAccount.attributes.js
server/api/faxAccount/faxAccount.controller.js
server/api/faxAccount/faxAccount.model.js
server/api/faxAccount/faxAccount.rpc.js
server/api/faxAccount/index.js
server/api/faxApplication/faxApplication.attributes.js
server/api/faxApplication/faxApplication.controller.js
server/api/faxApplication/faxApplication.model.js
server/api/faxApplication/faxApplication.rpc.js
server/api/faxApplication/index.js
server/api/faxAttachment/faxAttachment.attributes.js
server/api/faxAttachment/faxAttachment.controller.js
server/api/faxAttachment/faxAttachment.model.js
server/api/faxAttachment/faxAttachment.rpc.js
server/api/faxAttachment/index.js
server/api/faxDisposition/faxDisposition.attributes.js
server/api/faxDisposition/faxDisposition.controller.js
server/api/faxDisposition/faxDisposition.model.js
server/api/faxDisposition/faxDisposition.rpc.js
server/api/faxDisposition/index.js
server/api/faxInteraction/faxInteraction.attributes.js
server/api/faxInteraction/faxInteraction.controller.js
server/api/faxInteraction/faxInteraction.model.js
server/api/faxInteraction/faxInteraction.rpc.js
server/api/faxInteraction/index.js
server/api/faxMessage/faxMessage.attributes.js
server/api/faxMessage/faxMessage.controller.js
server/api/faxMessage/faxMessage.model.js
server/api/faxMessage/faxMessage.rpc.js
server/api/faxMessage/index.js
server/api/faxQueue/faxQueue.attributes.js
server/api/faxQueue/faxQueue.controller.js
server/api/faxQueue/faxQueue.model.js
server/api/faxQueue/faxQueue.rpc.js
server/api/faxQueue/index.js
server/api/faxReport/faxReport.attributes.js
server/api/faxReport/faxReport.controller.js
server/api/faxReport/faxReport.model.js
server/api/faxReport/faxReport.rpc.js
server/api/faxReport/index.js
server/api/faxSessionReport/faxSessionReport.attributes.js
server/api/faxSessionReport/faxSessionReport.controller.js
server/api/faxSessionReport/faxSessionReport.model.js
server/api/faxSessionReport/faxSessionReport.rpc.js
server/api/faxSessionReport/index.js
server/api/intFreshdeskAccount/index.js
server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js
server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js
server/api/intFreshdeskAccount/intFreshdeskAccount.model.js
server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js
server/api/intFreshdeskConfiguration/index.js
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js
server/api/intFreshdeskField/index.js
server/api/intFreshdeskField/intFreshdeskField.attributes.js
server/api/intFreshdeskField/intFreshdeskField.controller.js
server/api/intFreshdeskField/intFreshdeskField.model.js
server/api/intFreshdeskField/intFreshdeskField.rpc.js
server/api/intSalesforceAccount/index.js
server/api/intSalesforceAccount/intSalesforceAccount.attributes.js
server/api/intSalesforceAccount/intSalesforceAccount.controller.js
server/api/intSalesforceAccount/intSalesforceAccount.model.js
server/api/intSalesforceAccount/intSalesforceAccount.rpc.js
server/api/intSalesforceConfiguration/index.js
server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js
server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js
server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js
server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js
server/api/intSalesforceField/index.js
server/api/intSalesforceField/intSalesforceField.attributes.js
server/api/intSalesforceField/intSalesforceField.controller.js
server/api/intSalesforceField/intSalesforceField.model.js
server/api/intSalesforceField/intSalesforceField.rpc.js
server/api/intSugarcrmAccount/index.js
server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js
server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js
server/api/intSugarcrmAccount/intSugarcrmAccount.model.js
server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js
server/api/intSugarcrmConfiguration/index.js
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js
server/api/intSugarcrmField/index.js
server/api/intSugarcrmField/intSugarcrmField.attributes.js
server/api/intSugarcrmField/intSugarcrmField.controller.js
server/api/intSugarcrmField/intSugarcrmField.model.js
server/api/intSugarcrmField/intSugarcrmField.rpc.js
server/api/intZendeskAccount/index.js
server/api/intZendeskAccount/intZendeskAccount.attributes.js
server/api/intZendeskAccount/intZendeskAccount.controller.js
server/api/intZendeskAccount/intZendeskAccount.model.js
server/api/intZendeskAccount/intZendeskAccount.rpc.js
server/api/intZendeskConfiguration/index.js
server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js
server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js
server/api/intZendeskConfiguration/intZendeskConfiguration.model.js
server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js
server/api/intZendeskField/index.js
server/api/intZendeskField/intZendeskField.attributes.js
server/api/intZendeskField/intZendeskField.controller.js
server/api/intZendeskField/intZendeskField.model.js
server/api/intZendeskField/intZendeskField.rpc.js
server/api/integration/index.js
server/api/integration/integration.attributes.js
server/api/integration/integration.controller.js
server/api/integration/integration.model.js
server/api/integration/integration.rpc.js
server/api/integrationReport/index.js
server/api/integrationReport/integrationReport.attributes.js
server/api/integrationReport/integrationReport.controller.js
server/api/integrationReport/integrationReport.model.js
server/api/integrationReport/integrationReport.rpc.js
server/api/interval/index.js
server/api/interval/interval.attributes.js
server/api/interval/interval.controller.js
server/api/interval/interval.model.js
server/api/interval/interval.rpc.js
server/api/jira/index.js
server/api/jira/jira.controller.js
server/api/jscriptyInputReport/index.js
server/api/jscriptyInputReport/jscriptyInputReport.attributes.js
server/api/jscriptyInputReport/jscriptyInputReport.controller.js
server/api/jscriptyInputReport/jscriptyInputReport.model.js
server/api/jscriptyInputReport/jscriptyInputReport.rpc.js
server/api/jscriptyProject/index.js
server/api/jscriptyProject/jscriptyProject.attributes.js
server/api/jscriptyProject/jscriptyProject.controller.js
server/api/jscriptyProject/jscriptyProject.model.js
server/api/jscriptyProject/jscriptyProject.rpc.js
server/api/jscriptyQuestionReport/index.js
server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js
server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js
server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js
server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js
server/api/jscriptySessionReport/index.js
server/api/jscriptySessionReport/jscriptySessionReport.attributes.js
server/api/jscriptySessionReport/jscriptySessionReport.controller.js
server/api/jscriptySessionReport/jscriptySessionReport.model.js
server/api/jscriptySessionReport/jscriptySessionReport.rpc.js
server/api/license/index.js
server/api/license/license.attributes.js
server/api/license/license.controller.js
server/api/license/license.model.js
server/api/license/license.rpc.js
server/api/mailAccount/index.js
server/api/mailAccount/mailAccount.attributes.js
server/api/mailAccount/mailAccount.controller.js
server/api/mailAccount/mailAccount.model.js
server/api/mailAccount/mailAccount.rpc.js
server/api/mailApplication/index.js
server/api/mailApplication/mailApplication.attributes.js
server/api/mailApplication/mailApplication.controller.js
server/api/mailApplication/mailApplication.model.js
server/api/mailApplication/mailApplication.rpc.js
server/api/mailAttachment/index.js
server/api/mailAttachment/mailAttachment.attributes.js
server/api/mailAttachment/mailAttachment.controller.js
server/api/mailAttachment/mailAttachment.model.js
server/api/mailAttachment/mailAttachment.rpc.js
server/api/mailDisposition/index.js
server/api/mailDisposition/mailDisposition.attributes.js
server/api/mailDisposition/mailDisposition.controller.js
server/api/mailDisposition/mailDisposition.model.js
server/api/mailDisposition/mailDisposition.rpc.js
server/api/mailInteraction/index.js
server/api/mailInteraction/mailInteraction.attributes.js
server/api/mailInteraction/mailInteraction.controller.js
server/api/mailInteraction/mailInteraction.model.js
server/api/mailInteraction/mailInteraction.rpc.js
server/api/mailMessage/index.js
server/api/mailMessage/mailMessage.attributes.js
server/api/mailMessage/mailMessage.controller.js
server/api/mailMessage/mailMessage.model.js
server/api/mailMessage/mailMessage.rpc.js
server/api/mailQueue/index.js
server/api/mailQueue/mailQueue.attributes.js
server/api/mailQueue/mailQueue.controller.js
server/api/mailQueue/mailQueue.model.js
server/api/mailQueue/mailQueue.rpc.js
server/api/mailReport/index.js
server/api/mailReport/mailReport.attributes.js
server/api/mailReport/mailReport.controller.js
server/api/mailReport/mailReport.model.js
server/api/mailReport/mailReport.rpc.js
server/api/mailServerIn/index.js
server/api/mailServerIn/mailServerIn.attributes.js
server/api/mailServerIn/mailServerIn.model.js
server/api/mailServerIn/mailServerIn.rpc.js
server/api/mailServerOut/index.js
server/api/mailServerOut/mailServerOut.attributes.js
server/api/mailServerOut/mailServerOut.controller.js
server/api/mailServerOut/mailServerOut.model.js
server/api/mailServerOut/mailServerOut.rpc.js
server/api/mailSessionReport/index.js
server/api/mailSessionReport/mailSessionReport.attributes.js
server/api/mailSessionReport/mailSessionReport.controller.js
server/api/mailSessionReport/mailSessionReport.model.js
server/api/mailSessionReport/mailSessionReport.rpc.js
server/api/memberReport/index.js
server/api/memberReport/memberReport.attributes.js
server/api/memberReport/memberReport.controller.js
server/api/memberReport/memberReport.model.js
server/api/memberReport/memberReport.rpc.js
server/api/network/index.js
server/api/network/network.attributes.js
server/api/network/network.controller.js
server/api/network/network.model.js
server/api/network/network.rpc.js
server/api/openchannelAccount/index.js
server/api/openchannelAccount/openchannelAccount.attributes.js
server/api/openchannelAccount/openchannelAccount.controller.js
server/api/openchannelAccount/openchannelAccount.model.js
server/api/openchannelAccount/openchannelAccount.rpc.js
server/api/openchannelApplication/index.js
server/api/openchannelApplication/openchannelApplication.attributes.js
server/api/openchannelApplication/openchannelApplication.controller.js
server/api/openchannelApplication/openchannelApplication.model.js
server/api/openchannelApplication/openchannelApplication.rpc.js
server/api/openchannelDisposition/index.js
server/api/openchannelDisposition/openchannelDisposition.attributes.js
server/api/openchannelDisposition/openchannelDisposition.controller.js
server/api/openchannelDisposition/openchannelDisposition.model.js
server/api/openchannelDisposition/openchannelDisposition.rpc.js
server/api/openchannelInteraction/index.js
server/api/openchannelInteraction/openchannelInteraction.attributes.js
server/api/openchannelInteraction/openchannelInteraction.controller.js
server/api/openchannelInteraction/openchannelInteraction.model.js
server/api/openchannelInteraction/openchannelInteraction.rpc.js
server/api/openchannelMessage/index.js
server/api/openchannelMessage/openchannelMessage.attributes.js
server/api/openchannelMessage/openchannelMessage.controller.js
server/api/openchannelMessage/openchannelMessage.model.js
server/api/openchannelMessage/openchannelMessage.rpc.js
server/api/openchannelQueue/index.js
server/api/openchannelQueue/openchannelQueue.attributes.js
server/api/openchannelQueue/openchannelQueue.controller.js
server/api/openchannelQueue/openchannelQueue.model.js
server/api/openchannelQueue/openchannelQueue.rpc.js
server/api/openchannelReport/index.js
server/api/openchannelReport/openchannelReport.attributes.js
server/api/openchannelReport/openchannelReport.controller.js
server/api/openchannelReport/openchannelReport.model.js
server/api/openchannelReport/openchannelReport.rpc.js
server/api/openchannelSessionReport/index.js
server/api/openchannelSessionReport/openchannelSessionReport.attributes.js
server/api/openchannelSessionReport/openchannelSessionReport.controller.js
server/api/openchannelSessionReport/openchannelSessionReport.model.js
server/api/openchannelSessionReport/openchannelSessionReport.rpc.js
server/api/pause/index.js
server/api/pause/pause.attributes.js
server/api/pause/pause.controller.js
server/api/pause/pause.model.js
server/api/pause/pause.rpc.js
server/api/pm2/index.js
server/api/pm2/pm2.controller.js
server/api/rpc/index.js
server/api/rpc/rpc.controller.js
server/api/schedule/index.js
server/api/schedule/schedule.attributes.js
server/api/schedule/schedule.controller.js
server/api/schedule/schedule.model.js
server/api/schedule/schedule.rpc.js
server/api/setting/index.js
server/api/setting/setting.attributes.js
server/api/setting/setting.controller.js
server/api/setting/setting.model.js
server/api/setting/setting.rpc.js
server/api/smsAccount/index.js
server/api/smsAccount/smsAccount.attributes.js
server/api/smsAccount/smsAccount.controller.js
server/api/smsAccount/smsAccount.model.js
server/api/smsAccount/smsAccount.rpc.js
server/api/smsApplication/index.js
server/api/smsApplication/smsApplication.attributes.js
server/api/smsApplication/smsApplication.controller.js
server/api/smsApplication/smsApplication.model.js
server/api/smsApplication/smsApplication.rpc.js
server/api/smsDisposition/index.js
server/api/smsDisposition/smsDisposition.attributes.js
server/api/smsDisposition/smsDisposition.controller.js
server/api/smsDisposition/smsDisposition.model.js
server/api/smsDisposition/smsDisposition.rpc.js
server/api/smsInteraction/index.js
server/api/smsInteraction/smsInteraction.attributes.js
server/api/smsInteraction/smsInteraction.controller.js
server/api/smsInteraction/smsInteraction.model.js
server/api/smsInteraction/smsInteraction.rpc.js
server/api/smsMessage/index.js
server/api/smsMessage/smsMessage.attributes.js
server/api/smsMessage/smsMessage.controller.js
server/api/smsMessage/smsMessage.model.js
server/api/smsMessage/smsMessage.rpc.js
server/api/smsQueue/index.js
server/api/smsQueue/smsQueue.attributes.js
server/api/smsQueue/smsQueue.controller.js
server/api/smsQueue/smsQueue.model.js
server/api/smsQueue/smsQueue.rpc.js
server/api/smsReport/index.js
server/api/smsReport/smsReport.attributes.js
server/api/smsReport/smsReport.controller.js
server/api/smsReport/smsReport.model.js
server/api/smsReport/smsReport.rpc.js
server/api/smsSessionReport/index.js
server/api/smsSessionReport/smsSessionReport.attributes.js
server/api/smsSessionReport/smsSessionReport.controller.js
server/api/smsSessionReport/smsSessionReport.model.js
server/api/smsSessionReport/smsSessionReport.rpc.js
server/api/sound/index.js
server/api/sound/sound.attributes.js
server/api/sound/sound.controller.js
server/api/sound/sound.model.js
server/api/sound/sound.rpc.js
server/api/squareOdbc/index.js
server/api/squareOdbc/squareOdbc.attributes.js
server/api/squareOdbc/squareOdbc.controller.js
server/api/squareOdbc/squareOdbc.model.js
server/api/squareOdbc/squareOdbc.rpc.js
server/api/squareProject/index.js
server/api/squareProject/squareProject.attributes.js
server/api/squareProject/squareProject.controller.js
server/api/squareProject/squareProject.model.js
server/api/squareProject/squareProject.rpc.js
server/api/squareRecording/index.js
server/api/squareRecording/squareRecording.attributes.js
server/api/squareRecording/squareRecording.controller.js
server/api/squareRecording/squareRecording.model.js
server/api/squareRecording/squareRecording.rpc.js
server/api/squareReport/index.js
server/api/squareReport/squareReport.attributes.js
server/api/squareReport/squareReport.controller.js
server/api/squareReport/squareReport.model.js
server/api/squareReport/squareReport.rpc.js
server/api/squareReportDetail/index.js
server/api/squareReportDetail/squareReportDetail.attributes.js
server/api/squareReportDetail/squareReportDetail.controller.js
server/api/squareReportDetail/squareReportDetail.model.js
server/api/squareReportDetail/squareReportDetail.rpc.js
server/api/system/index.js
server/api/system/system.controller.js
server/api/tag/index.js
server/api/tag/tag.attributes.js
server/api/tag/tag.controller.js
server/api/tag/tag.model.js
server/api/tag/tag.rpc.js
server/api/team/index.js
server/api/team/team.attributes.js
server/api/team/team.controller.js
server/api/team/team.model.js
server/api/team/team.rpc.js
server/api/template/index.js
server/api/template/template.attributes.js
server/api/template/template.controller.js
server/api/template/template.model.js
server/api/template/template.rpc.js
server/api/trigger/index.js
server/api/trigger/trigger.attributes.js
server/api/trigger/trigger.controller.js
server/api/trigger/trigger.model.js
server/api/trigger/trigger.rpc.js
server/api/trunk/index.js
server/api/trunk/trunk.attributes.js
server/api/trunk/trunk.controller.js
server/api/trunk/trunk.model.js
server/api/trunk/trunk.rpc.js
server/api/user/index.js
server/api/user/user.attributes.js
server/api/user/user.controller.js
server/api/user/user.events.js
server/api/user/user.model.js
server/api/user/user.rpc.js
server/api/user/user.socket.js
server/api/userChatQueue/index.js
server/api/userChatQueue/userChatQueue.attributes.js
server/api/userChatQueue/userChatQueue.model.js
server/api/userChatQueue/userChatQueue.rpc.js
server/api/userFaxQueue/index.js
server/api/userFaxQueue/userFaxQueue.attributes.js
server/api/userFaxQueue/userFaxQueue.model.js
server/api/userFaxQueue/userFaxQueue.rpc.js
server/api/userMailQueue/index.js
server/api/userMailQueue/userMailQueue.attributes.js
server/api/userMailQueue/userMailQueue.model.js
server/api/userMailQueue/userMailQueue.rpc.js
server/api/userOpenchannelQueue/index.js
server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js
server/api/userOpenchannelQueue/userOpenchannelQueue.model.js
server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js
server/api/userSmsQueue/index.js
server/api/userSmsQueue/userSmsQueue.attributes.js
server/api/userSmsQueue/userSmsQueue.model.js
server/api/userSmsQueue/userSmsQueue.rpc.js
server/api/userVoiceQueue/index.js
server/api/userVoiceQueue/userVoiceQueue.attributes.js
server/api/userVoiceQueue/userVoiceQueue.model.js
server/api/userVoiceQueue/userVoiceQueue.rpc.js
server/api/userVoiceQueueRt/index.js
server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js
server/api/userVoiceQueueRt/userVoiceQueueRt.events.js
server/api/userVoiceQueueRt/userVoiceQueueRt.model.js
server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js
server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js
server/api/variable/index.js
server/api/variable/variable.attributes.js
server/api/variable/variable.controller.js
server/api/variable/variable.model.js
server/api/variable/variable.rpc.js
server/api/version/index.js
server/api/version/version.controller.js
server/api/voiceAgentReport/index.js
server/api/voiceAgentReport/voiceAgentReport.attributes.js
server/api/voiceAgentReport/voiceAgentReport.controller.js
server/api/voiceAgentReport/voiceAgentReport.model.js
server/api/voiceAgentReport/voiceAgentReport.rpc.js
server/api/voiceCallReport/index.js
server/api/voiceCallReport/voiceCallReport.attributes.js
server/api/voiceCallReport/voiceCallReport.controller.js
server/api/voiceCallReport/voiceCallReport.model.js
server/api/voiceCallReport/voiceCallReport.rpc.js
server/api/voiceChanSpy/index.js
server/api/voiceChanSpy/voiceChanSpy.attributes.js
server/api/voiceChanSpy/voiceChanSpy.controller.js
server/api/voiceChanSpy/voiceChanSpy.model.js
server/api/voiceChanSpy/voiceChanSpy.rpc.js
server/api/voiceContext/index.js
server/api/voiceContext/voiceContext.attributes.js
server/api/voiceContext/voiceContext.controller.js
server/api/voiceContext/voiceContext.model.js
server/api/voiceContext/voiceContext.rpc.js
server/api/voiceDialReport/index.js
server/api/voiceDialReport/voiceDialReport.attributes.js
server/api/voiceDialReport/voiceDialReport.controller.js
server/api/voiceDialReport/voiceDialReport.model.js
server/api/voiceDialReport/voiceDialReport.rpc.js
server/api/voiceDisposition/index.js
server/api/voiceDisposition/voiceDisposition.attributes.js
server/api/voiceDisposition/voiceDisposition.controller.js
server/api/voiceDisposition/voiceDisposition.model.js
server/api/voiceDisposition/voiceDisposition.rpc.js
server/api/voiceExtension/index.js
server/api/voiceExtension/voiceExtension.attributes.js
server/api/voiceExtension/voiceExtension.controller.js
server/api/voiceExtension/voiceExtension.model.js
server/api/voiceExtension/voiceExtension.rpc.js
server/api/voiceMail/index.js
server/api/voiceMail/voiceMail.attributes.js
server/api/voiceMail/voiceMail.controller.js
server/api/voiceMail/voiceMail.model.js
server/api/voiceMail/voiceMail.rpc.js
server/api/voiceMailMessage/index.js
server/api/voiceMailMessage/voiceMailMessage.attributes.js
server/api/voiceMailMessage/voiceMailMessage.controller.js
server/api/voiceMailMessage/voiceMailMessage.model.js
server/api/voiceMailMessage/voiceMailMessage.rpc.js
server/api/voiceMusicOnHold/index.js
server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js
server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js
server/api/voiceMusicOnHold/voiceMusicOnHold.model.js
server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js
server/api/voiceQueue/index.js
server/api/voiceQueue/voiceQueue.attributes.js
server/api/voiceQueue/voiceQueue.controller.js
server/api/voiceQueue/voiceQueue.model.js
server/api/voiceQueue/voiceQueue.rpc.js
server/api/voiceQueueReport/index.js
server/api/voiceQueueReport/voiceQueueReport.attributes.js
server/api/voiceQueueReport/voiceQueueReport.controller.js
server/api/voiceQueueReport/voiceQueueReport.model.js
server/api/voiceQueueReport/voiceQueueReport.rpc.js
server/api/voiceQueuesLog/index.js
server/api/voiceQueuesLog/voiceQueuesLog.attributes.js
server/api/voiceQueuesLog/voiceQueuesLog.controller.js
server/api/voiceQueuesLog/voiceQueuesLog.model.js
server/api/voiceQueuesLog/voiceQueuesLog.rpc.js
server/api/voiceRecording/index.js
server/api/voiceRecording/voiceRecording.attributes.js
server/api/voiceRecording/voiceRecording.controller.js
server/api/voiceRecording/voiceRecording.model.js
server/api/voiceRecording/voiceRecording.rpc.js
server/api/voiceTransferReport/index.js
server/api/voiceTransferReport/voiceTransferReport.attributes.js
server/api/voiceTransferReport/voiceTransferReport.controller.js
server/api/voiceTransferReport/voiceTransferReport.model.js
server/api/voiceTransferReport/voiceTransferReport.rpc.js
server/app.js
server/components/auth/service.js
server/components/dashboards/run.js
server/components/export/csv.js
server/components/export/pdf.js
server/components/export/xls.js
server/components/extensions/rewrite.js
server/components/integrations/configuration.js
server/components/license/service.js
server/components/parsers/qs.js
server/config/environment/development.js
server/config/environment/index.js
server/config/environment/shared.js
server/config/express.js
server/config/license/hardware.js
server/config/license/index.js
server/config/license/util.js
server/config/local.env.js
server/config/logger.js
server/config/pm2/config.js
server/config/pm2/index.js
server/config/seed.js
server/config/seedContact.js
server/config/seedDB/analyticReports.js
server/config/seedDB/analyticTreeReports.js
server/config/seedDB/chanspy.js
server/config/seedDB/companies.js
server/config/seedDB/contacts.js
server/config/seedDB/index.js
server/config/seedDB/intervals.js
server/config/seedDB/lists.js
server/config/seedDB/mailAccounts.js
server/config/seedDB/pauses.js
server/config/seedDB/report/default.js
server/config/seedDB/report/fields.js
server/config/seedDB/report/index.js
server/config/seedDB/squareOdbc.js
server/config/seedDB/squareProjects.js
server/config/seedDB/tags.js
server/config/seedDB/teams.js
server/config/seedDB/tree/index.js
server/config/seedDB/trunks.js
server/config/seedDB/users.js
server/config/seedDB/variables.js
server/config/seedDB/voiceContexts.js
server/config/seedDB/voiceExtensions.js
server/config/seedDB/voiceMusicOnHold.js
server/config/seedDB/voiceQueues.js
server/config/seedUsers.js
server/config/socketio.js
server/config/utils.js
server/errors/index.js
server/files/images/1497532321680-face.png [deleted file]
server/files/reports/Details-kcZW.csv [deleted file]
server/files/reports/Details-oCeZ.csv [deleted file]
server/files/sounds/original/normal-1491835612787.csv [deleted file]
server/files/sounds/original/normal-1491835791584.csv [deleted file]
server/files/sounds/original/normal-1491836119722.csv [deleted file]
server/files/sounds/original/normal-1491836330178.csv [deleted file]
server/files/sounds/original/normal-1491836855000.csv [deleted file]
server/files/sounds/original/normal_contacts-1491835417569.csv [deleted file]
server/files/sounds/original/utf-8''funzionalità centralino-1491835187299.odt [deleted file]
server/migrations/2.0.12.js
server/migrations/2.0.13.js
server/mysqldb/index.js
server/routes.js
server/rpc/index.js
server/services/agi/channel.js
server/services/agi/error.js
server/services/agi/graph/index.js
server/services/agi/index.js
server/services/agi/reply.js
server/services/agi/rpc/index.js
server/services/agi/scripts/index.js
server/services/agi/server.js
server/services/agi/vertices.js
server/services/ami/acw/index.js
server/services/ami/ami.js
server/services/ami/client.js
server/services/ami/dialer/action.js
server/services/ami/dialer/agentComplete.js
server/services/ami/dialer/final.js
server/services/ami/dialer/hangup.js
server/services/ami/dialer/history.js
server/services/ami/dialer/index.js
server/services/ami/dialer/queueCallerAbandon.js
server/services/ami/index.js
server/services/ami/model/agent.js
server/services/ami/model/campaign.js
server/services/ami/model/channel.js
server/services/ami/model/freshdeskAccount.js
server/services/ami/model/queueReport.js
server/services/ami/model/salesforceAccount.js
server/services/ami/model/sugarcrmAccount.js
server/services/ami/model/telephone.js
server/services/ami/model/template.js
server/services/ami/model/trunk.js
server/services/ami/model/voiceQueue.js
server/services/ami/model/voiceTrigger.js
server/services/ami/model/zendeskAccount.js
server/services/ami/properties.js
server/services/ami/realtime/index.js
server/services/ami/report/index.js
server/services/ami/report/userReport.js
server/services/ami/report/voiceAgentReport.js
server/services/ami/report/voiceCallReport.js
server/services/ami/report/voiceDialReport.js
server/services/ami/report/voiceQueueReport.js
server/services/ami/rpc/campaign.js
server/services/ami/rpc/cmHopper.js
server/services/ami/rpc/cmHopperBlack.js
server/services/ami/rpc/cmHopperFinal.js
server/services/ami/rpc/cmHopperHistory.js
server/services/ami/rpc/integrations/freshdesk.js
server/services/ami/rpc/integrations/salesforce.js
server/services/ami/rpc/integrations/sugarcrm.js
server/services/ami/rpc/integrations/zendesk.js
server/services/ami/rpc/memberReport.js
server/services/ami/rpc/template.js
server/services/ami/rpc/trigger.js
server/services/ami/rpc/trunk.js
server/services/ami/rpc/user.js
server/services/ami/rpc/voiceAgentReport.js
server/services/ami/rpc/voiceCallReport.js
server/services/ami/rpc/voiceDialReport.js
server/services/ami/rpc/voiceQueue.js
server/services/ami/rpc/voiceQueueReport.js
server/services/ami/rpc/voiceQueueRt.js
server/services/ami/rpc/voiceRecording.js
server/services/ami/rpc/voiceTransferReport.js
server/services/ami/server/index.js
server/services/ami/trigger/index.js
server/services/ami/trigger/integration/freshdesk.js
server/services/ami/trigger/integration/index.js
server/services/ami/trigger/integration/salesforce.js
server/services/ami/trigger/integration/sugarcrm.js
server/services/ami/trigger/integration/zendesk.js
server/services/ami/trigger/urlforward/index.js
server/services/email/index.js
server/services/email/lib/email.js
server/services/email/lib/imap.js
server/services/email/lib/smtp.js
server/services/express/index.js

index 458bb5a..e5f48fc 100644 (file)
@@ -1 +1 @@
-define({\r  "name": "motion",\r  "version": "2.0.18",\r  "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",\r  "sampleUrl": false,\r  "defaultVersion": "0.0.0",\r  "apidoc": "0.3.0",\r  "generator": {\r    "name": "apidoc",\r    "time": "2017-06-26T17:16:36.082Z",\r    "url": "http://apidocjs.com",\r    "version": "0.17.6"\r  }\r});
+define({\r  "name": "motion",\r  "version": "2.0.19",\r  "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",\r  "sampleUrl": false,\r  "defaultVersion": "0.0.0",\r  "apidoc": "0.3.0",\r  "generator": {\r    "name": "apidoc",\r    "time": "2017-06-27T17:41:01.671Z",\r    "url": "http://apidocjs.com",\r    "version": "0.17.6"\r  }\r});
index b4042e0..91e120c 100644 (file)
@@ -1 +1 @@
-{\r  "name": "motion",\r  "version": "2.0.18",\r  "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",\r  "sampleUrl": false,\r  "defaultVersion": "0.0.0",\r  "apidoc": "0.3.0",\r  "generator": {\r    "name": "apidoc",\r    "time": "2017-06-26T17:16:36.082Z",\r    "url": "http://apidocjs.com",\r    "version": "0.17.6"\r  }\r}
+{\r  "name": "motion",\r  "version": "2.0.19",\r  "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",\r  "sampleUrl": false,\r  "defaultVersion": "0.0.0",\r  "apidoc": "0.3.0",\r  "generator": {\r    "name": "apidoc",\r    "time": "2017-06-27T17:41:01.671Z",\r    "url": "http://apidocjs.com",\r    "version": "0.17.6"\r  }\r}
index 97660a3..a7e0775 100644 (file)
@@ -1,6 +1,6 @@
 {
     "name": "motion",
-    "version": "2.0.18",
+    "version": "2.0.19",
     "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
     "main": "server/app.js",
     "engines": {
index b8caa3f..0736e05 100644 (file)
         "KEY": "Key",
         "CHANNEL": "Channel",
         "DELETE": "Delete",
-        "NO_AVAILABLE_INFO": "No available info"
+        "NO_AVAILABLE_INFO": "No available info",
+        "TEST_ZENDESKACCOUNT": "Test Zendesk Account",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk Account",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM Account",
+        "TEST_SALESFORCEACCOUNT": "Test Salesforce Account"
     }
 }
\ No newline at end of file
index 7a9a05c..d6572fc 100644 (file)
@@ -58,7 +58,7 @@
 
     <script src="scripts/vendor.a9c32806.js"></script>
 
-    <script src="scripts/app.5dbd06a6.js"></script>
+    <script src="scripts/app.c92f3182.js"></script>
 
     <!-- Socket.io -->
     <script type="text/javascript" src="/socket.io/socket.io.js"></script>
diff --git a/public/scripts/app.5dbd06a6.js b/public/scripts/app.5dbd06a6.js
deleted file mode 100644 (file)
index d9feef2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-function mxDictionary(){this.clear()}function mxPoint(e,t){this.x=null!=e?e:0,this.y=null!=t?t:0}function mxRectangle(e,t,n,a){mxPoint.call(this,e,t),this.width=null!=n?n:0,this.height=null!=a?a:0}function mxEventObject(e){this.name=e,this.properties=[];for(var t=1;t<arguments.length;t+=2)null!=arguments[t+1]&&(this.properties[arguments[t]]=arguments[t+1])}function mxMouseEvent(e,t){this.evt=e,this.state=t}function mxEventSource(e){this.setEventSource(e)}function mxXmlRequest(e,t,n,a,i,o){this.url=e,this.params=t,this.method=n||"POST",this.async=null==a||a,this.username=i,this.password=o}function mxWindow(e,t,n,a,i,o,s,r,l,d){null!=t&&(s=null==s||s,this.content=t,this.init(n,a,i,o,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(s),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,t,n){this.src=e,this.width=t,this.height=n}function mxDivResizer(e,t){if("div"==e.nodeName.toLowerCase()){null==t&&(t=window),this.div=e;var n=mxUtils.getCurrentStyle(e);null!=n&&(this.resizeWidth="auto"==n.width,this.resizeHeight="auto"==n.height),mxEvent.addListener(t,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,t){this.element=e,this.dropHandler=t,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(e,t,n,a){this.model=e,this.urlInit=t,this.urlPoll=n,this.urlNotify=a,null!=e&&(this.codec=new mxCodec,this.codec.lookup=function(t){return e.getCell(t)}),e.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");(null!=n&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(n.changes,n.undone)+"</edit>")}))}function mxUndoableEdit(e,t){this.source=e,this.changes=[],this.significant=null==t||t}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}function mxPanningManager(e){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,t){},mouseMove:function(e,t){},mouseUp:mxUtils.bind(this,function(e,t){this.active&&this.stop()})},e.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var t=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(e.container),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var t=-e.container.scrollLeft-Math.ceil(this.dx),n=-e.container.scrollTop-Math.ceil(this.dy);e.panGraph(t,n),e.panDx=this.scrollLeft-e.container.scrollLeft,e.panDy=this.scrollTop-e.container.scrollTop,e.fireEvent(new mxEventObject(mxEvent.PAN))}else e.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=e.view.translate.x,this.t0y=e.view.translate.y,this.active=!0},this.panTo=function(n,a,i,o){this.active||this.start(),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,o=null!=o?o:0;var s=e.container;this.dx=n+(null!=i?i:0)-s.scrollLeft-s.clientWidth,0>this.dx&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=n-s.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=a+o-s.scrollTop-s.clientHeight,0>this.dy&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=a-s.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=t())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)e.panDx=0,e.panDy=0,e.fireEvent(new mxEventObject(mxEvent.PAN));else{var t=e.panDx,n=e.panDy;0==t&&0==n||(e.panGraph(0,0),e.view.setTranslate(this.t0x+t/e.view.scale,this.t0y+n/e.view.scale))}},this.destroy=function(){e.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){this.factoryMethod=e,null!=e&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.graphModelChanged(t.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,t,n,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=t?t:6,this.ease=null!=n?n:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,t){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=t&&t;var n=null;if(e.ownerDocument!=document)for(n=e;null!=n&&"svg"!=n.nodeName;)n=n.parentNode;null!=n&&(0<n.getElementsByTagName("defs").length&&(this.defs=n.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=n.firstChild?n.insertBefore(this.defs,n.firstChild):n.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}function mxGuide(e,t){this.graph=e,this.setStates(t)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}function mxActor(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxCloud(e,t,n,a){mxActor.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxEllipse(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxRhombus(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxPolyline(e,t,n){mxShape.call(this),this.points=e,this.stroke=t,this.strokewidth=null!=n?n:1}function mxArrow(e,t,n,a,i,o,s){mxShape.call(this),this.points=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=o?o:mxConstants.ARROW_SPACING,this.endSize=null!=s?s:mxConstants.ARROW_SIZE}function mxText(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E){mxShape.call(this),this.value=e,this.bounds=t,this.color=null!=i?i:"black",this.align=null!=n?n:"",this.valign=null!=a?a:"",this.family=null!=o?o:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=s?s:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=h,this.wrap=null!=v&&v,this.clipped=null!=b&&b,this.overflow=null!=f?f:"visible",this.labelPadding=null!=E?E:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,t,n){mxShape.call(this),this.bounds=e,this.stroke=t,this.strokewidth=null!=n?n:1}function mxImageShape(e,t,n,a,i){mxShape.call(this),this.bounds=e,this.image=t,this.fill=n,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,t,n,a){mxRectangleShape.call(this,e,t,n,a)}function mxCylinder(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxConnector(e,t,n){mxPolyline.call(this,e,t,n)}function mxSwimlane(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,t,n,a,i,o){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.spacing=null!=n?n:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=o?o:0}function mxPartitionLayout(e,t,n,a){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.spacing=n||0,this.border=a||0}function mxCompactTreeLayout(e,t,n){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.invert=null!=n&&n}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,t){mxGraphLayout.call(this,e),this.radius=null!=t?t:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,t,n){mxGraphLayout.call(this,e),this.layouts=t,this.master=n}function mxEdgeLabelLayout(e,t){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,t,n,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=n,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,n=[],null==t&&(t=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,t,n),a=0;a<t.length;a++){i=n[a].connectsAsSource;for(var o=0;o<i.length;o++){var s=i[o];if(null!=(r=s.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1),l=mxCellPath.create(l),l=this.vertexMapper[l];n[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&n[a]!=l&&(s.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,s)&&l.connectsAsTarget.push(s))}}n[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,t,n,a,i,o){this.layout=e,this.intraCellSpacing=t,this.interRankCellSpacing=n,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=o}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxHierarchicalLayout(e,t,n){mxGraphLayout.call(this,e),this.orientation=null!=t?t:mxConstants.DIRECTION_NORTH,this.deterministic=null==n||n}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,t){this.model=e,this.previous=this.root=t}function mxChildChange(e,t,n,a){this.model=e,this.previous=this.parent=t,this.child=n,this.previousIndex=this.index=a}function mxTerminalChange(e,t,n,a){this.model=e,this.cell=t,this.previous=this.terminal=n,this.source=a}function mxValueChange(e,t,n){this.model=e,this.cell=t,this.previous=this.value=n}function mxStyleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.style=n}function mxGeometryChange(e,t,n){this.model=e,this.cell=t,this.previous=this.geometry=n}function mxCollapseChange(e,t,n){this.model=e,this.cell=t,this.previous=this.collapsed=n}function mxVisibleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.visible=n}function mxCellAttributeChange(e,t,n){this.cell=e,this.attribute=t,this.previous=this.value=n}function mxCell(e,t,n){this.value=e,this.setGeometry(t),this.setStyle(n),null!=this.onInit&&this.onInit()}function mxGeometry(e,t,n,a){mxRectangle.call(this,e,t,n,a)}function mxPrintPreview(e,t,n,a,i,o,s,r,l){this.graph=e,this.scale=null!=t?t:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=n?n:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=o?o:0,this.borderColor=s,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,t,n){this.view=e,this.cell=t,this.style=n,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,t,n){this.selectionModel=e,this.added=null!=t?t.slice():null,this.removed=null!=n?n.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,t){if(this.view=e,this.previous=this.root=t,this.isUp=null==t,!this.isUp)for(var n=this.view.currentRoot,a=this.view.graph.getModel();null!=n;){if(n==t){this.isUp=!0;break}n=a.getParent(n)}}function mxGraph(e,t,n,a){this.mouseListeners=null,this.renderHint=n,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:n==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:n==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:n==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=t?t:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,t){this.graphModelChanged(t.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,t,n,a,i,o){this.image=e,this.tooltip=t,this.align=null!=n?n:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=o?o:"help"}function mxOutline(e,t){this.source=e,null!=t&&this.init(t)}function mxMultiplicity(e,t,n,a,i,o,s,r,l,d){this.source=e,this.type=t,this.attr=n,this.value=a,this.min=null!=i?i:0,this.max=null!=o?o:"n",this.validNeighbors=s,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.beforeUndo(t.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsMoved(t.getProperty("cells"),t.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,t,n,a){this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.shiftRightwards=null==t||t,this.shiftDownwards=null==n||n,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,t,n,a){this.horizontal=null==t||t,this.addEnabled=null==n||n,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(t.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,t,n){if(this.view=e,t=null!=t?t:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(t),null!=n){t=e.createState(new mxCell);for(i=0;i<n.length;i++)e.validateBounds(t,n[i]);for(var a=null,i=0;i<n.length;i++){var o=e.validatePoints(t,n[i]);null==a?a=o:a.add(o)}null==a&&(a=new mxRectangle),e.setGraphBounds(a)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,t){this.point=e,this.perimeter=null==t||t}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,t){null!=e&&(this.graph=e,this.factoryMethod=t,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,t,n,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=t?t:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=t?n:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,t){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=t,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,t){null!=e&&(this.graph=e,this.target=t||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,t){null!=e&&(this.graph=e,this.delay=t||500,this.graph.addMouseListener(this))}function mxCellTracker(e,t,n){mxCellMarker.call(this,e,t),this.graph.addMouseListener(this),null!=n&&(this.getCell=n),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,t,n,a){null!=e&&(this.graph=e,this.highlightColor=null!=t?t:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=n?n:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(e){if(null!=e){this.editor=e,this.handler=new mxKeyHandler(e.graph);var t=this.handler.escape;this.handler.escape=function(n){t.apply(this,arguments),e.hideProperties(),e.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",n))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,t){this.editor=t,null!=e&&null!=t&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,t,n,a){this.template=e,this.exclude=null!=t?t:[],this.idrefs=null!=n?n:[],this.mapping=null!=a?a:[],this.reverse={};for(var i in this.mapping)this.reverse[this.mapping[i]]=i}function Sidebar(e,t){this.editorUi=e,this.container=t,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var t=mxEvent.getSource(e);null!=t;){if(t==this.currentElt)return;t=t.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(t,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,t,n,a,i){mxEventSource.call(this),this.label=e,this.funct=t,this.enabled=null==n||n,this.iconCls=a,this.shortcut=i}function Menubar(e,t){this.editorUi=e,this.container=t,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,t){mxEventSource.call(this),this.funct=e,this.enabled=null==t||t}function Toolbar(e,t){this.editorUi=e,this.container=t,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var t=document.createElement("input");return t.setAttribute("type","checkbox"),e&&t.setAttribute("checked",!0),t}function createDropdownFromApi(e,t,n,a,i,o,s,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+i.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(e){r&&e[n]==r||((m=document.createElement("option")).text=e[n],o&&s?(m.value=s,o.forEach(function(t){m.value=m.value.replace("%"+t+"%",e[t])}),m.selected=m.value==t):(m.value=e[a],m.selected=e[a]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,t,n,a,i,o){var s=new XMLHttpRequest;s.open("GET",e,!1),s.setRequestHeader("Authorization","Bearer "+i.editor.data.token),s.send(null);var r=[];200===s.status&&(r=JSON.parse(s.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,o);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[n],d.value=e[a],d.selected=e[a]==t,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,t,n,a,i,o){var s=new XMLHttpRequest;s.open("GET",e,!1),s.setRequestHeader("Authorization","Bearer "+i.editor.data.token),s.send(null);var r=[];200===s.status&&(r=JSON.parse(s.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[n].toUpperCase(),d.value=e[a],d.selected=e[a]==t,l.appendChild(d),e[o].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[n]),d.value=e[a],d.selected=e[a]==t,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,t){var n=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(t>0||""!=t)&&(i.selected=t===a),n.appendChild(i)}return n.className="form-control select2",n}function createDropdownFromTigerDialList(e){var t=document.createElement("select"),n=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(i.status>0){var o=i.response.RMI.rows;for(var s in o)n[o[s].id]=o[s].name}}}catch(e){console.log(e)}for(var r in n){var l=document.createElement("option");l.text=n[r],l.value=r,(e>0||""!=e)&&(l.selected=e===r),t.appendChild(l)}return t.className="form-control select2",t}function Dialog(e,t,n,a,i,o,s){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),n+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-n)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(t),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=s,this.container=l}function ImportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("import")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var t=e.target.files[0];if(console.log(t),t)if("text/xml"===t.type){var n=new FileReader;n.onload=function(e){var t=e.target.result;mxUtils.write(d,t)},n.readAsText(t)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(t){var n=mxUtils.parseXml(d.value);e.editor.setGraphXml(n.documentElement),e.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function AboutDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("about")+" Cally Square");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function SaveDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("saveAs"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function NewDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("new"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function DescriptionDialog(e){console.log(e.editor.data);var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("description"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.editor.data.description||"",d=e.createDiv("form-group"),c=document.createElement("label");c.className="col-sm-4 control-label",mxUtils.write(c,mxResources.get("description")),d.appendChild(c);var m=document.createElement("input");m.setAttribute("value",l),m.className="form-control",m.setAttribute("id","_description");var u=e.createDiv("col-sm-8");u.appendChild(m),d.appendChild(u),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("update"),function(){e.description(m.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function VariableDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("variable"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var h=document.createElement("input");h.setAttribute("value",c),h.className="form-control",h.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(h),m.appendChild(g),r.appendChild(m),a.appendChild(r);var v=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,h.value),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function OpenDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("open"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var h=document.createElement("option");h.text=u[g].name,h.value=u[g].id,p.appendChild(h)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var v=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function RenameDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("rename"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=e.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var t=new XMLHttpRequest;t.open("PUT",SAVE_URL+e.editor.data.id,!0),t.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),t.setRequestHeader("Authorization","Bearer "+e.editor.data.token),t.send("name="+u.value),t.onload=function(n){200===t.status?(e.editor.setStatus("Project successfully renamed"),e.editor.filename=u.value):(console.log(t.response),e.editor.setStatus(JSON.parse(t.response).errors[0].message))},t.onerror=function(e){mxUtils.alert(t.statusText)},e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function EditFileDialog(e){function t(e){if(e.stopPropagation(),e.preventDefault(),e.dataTransfer.files.length>0){var t=e.dataTransfer.files[0],n=new FileReader;n.onload=function(e){m.value=e.target.result},n.readAsText(t)}}function n(e){e.stopPropagation(),e.preventDefault()}var a=e.createDiv("modal-content"),i=e.createDiv("modal-header"),o=e.createDiv("modal-body"),s=e.createDiv("modal-footer"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit"));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);var d=e.createDiv("row"),c=e.createDiv("col-md-12"),m=document.createElement("textarea");m.style.width="100%",m.style.height="374px",m.value=mxUtils.getPrettyXml(e.editor.getGraphXml()),fileSupport&&(m.addEventListener("dragover",n,!1),m.addEventListener("drop",t,!1)),c.appendChild(m),d.appendChild(c),o.appendChild(d);var u=mxUtils.button(mxResources.get("save"),function(){var t=mxUtils.parseXml(m.value);e.editor.setGraphXml(t.documentElement),e.hideDialog()});u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",s.appendChild(u),s.appendChild(p),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}function ExportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body form"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("export")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",e.editor.getOrCreateFilename()),c.className="form-control";var m=e.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(t){e.save(!1);encodeURIComponent(mxUtils.getXml(e.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+e.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),e.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function GeneralDialog(e,t){console.log("general");var n=e.editor.graph,a=e.createDiv("md-dialog"),i=e.createDiv("md-toolbar"),o=e.createDiv("md-dialog-content"),s=e.createDiv("md-dialog-actions"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(t.value.nodeName));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);for(var d=t.value.attributes.length,c=e.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u=t.value.attributes[m].name,p="_"+u,g=t.value.attributes[m].value,h=e.createDiv(m==d-1?"form-group last":"form-group"),v=document.createElement("label");v.className="col-sm-4 control-label",mxUtils.write(v,mxResources.get(u)),h.appendChild(v);var b;switch(u){case"sip_id":b=createDropdownWithOptgroupFromApi("/api/users/all",g,"fullname","id",e,"role");break;case"queue_id":b=createDropdownFromApi("/api/voice/queues",g,"name","name",e);break;case"trunk_name":b=createDropdownFromApi("/api/trunks",g,"name","name",e);break;case"variable_id":b=createDropdownFromApi("/api/variables",g,"name","id",e);break;case"account_id":b="sendMail"==t.value.nodeName?createDropdownFromApi("/api/mail/servers/out",g,"username","id",e):createDropdownFromApi("/api/sms/accounts",g,"name","id",e);break;case"template_id":b=createDropdownFromApi("/api/templates",g,"name","id",e);break;case"context":b=createDropdownFromApi("/api/voice/contexts",g,"name","name",e);break;case"mailbox":b=createDropdownFromApi("/api/voice/voicemails",g,"mailbox","id",e,["mailbox","context"],"%mailbox%@%context%");break;case"model":b=createDropdownFromArray(ISPEECHASRMODEL,g);break;case"ispeech_asr_language":b=createDropdownFromArray(ISPEECHASRLANG,g);break;case"beep":b=createDropdownFromArray(ISPEECHBEEP,g);break;case"hiddendigitspos":b=createDropdownFromArray(SECRETDIGITSPOS,g);break;case"ispeech_tts_language":b=createDropdownFromArray(ISPEECHLANG,g);break;case"google_tts_language":b=createDropdownFromArray(GOOGLETTSLANG,g);break;case"intKey":b=createDropdownFromArray(ASRINTKEYS,g);break;case"recordingFormat":b=createDropdownFromArray(RECORDINGFORMAT,g);break;case"answer":b=createDropdownFromArray(BOOLSELECT,g);break;case"list_id":b=createDropdownFromTigerDialList(g);break;case"interval_id":b=createGroupedDropdownFromApi("/api/intervals",g,"name","id",e,"SubIntervals");break;case"project_id":b=createDropdownFromApi("/api/square/projects",g,"name","id",e,null,null,e.editor.getOrCreateFilename());break;case"odbc_id":b=createDropdownFromApi("/api/square/odbc",g,"name","id",e);break;case"file_id":b=createDropdownFromApi("/api/sounds",g,"display_name","id",e);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(b=document.createElement("input")).setAttribute("type","number"),b.setAttribute("min",0),b.setAttribute("max",1e3),b.setAttribute("value",g),b.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(b=document.createElement("textarea")).innerHTML=g,b.className="form-control";break;case"sms_text":(b=document.createElement("textarea")).innerHTML=g,b.className="form-control",b.setAttribute("maxlength","160");break;default:(b=document.createElement("input")).setAttribute("value",g),b.className="form-control"}b.setAttribute("id",p);var f=e.createDiv("col-sm-8");if(f.appendChild(b),mxResources.get("help_"+u)){var E=e.createDiv("p");E.className="help-block",mxUtils.write(E,mxResources.get("help_"+u)),f.appendChild(E)}h.appendChild(f),c.appendChild(h)}o.appendChild(c);var y=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(a){for(var i=0;i<t.value.attributes.length;i++){var o="_"+t.value.attributes[i].name,s=t.value.attributes[i].name;t.setAttribute(s,document.getElementById(o).value)}n.refresh(t),e.hideDialog()}));y.className="btn blue";var A=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});A.className="btn default",s.appendChild(y),s.appendChild(A),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router"])}(),function(){"use strict";function e(e,t){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),t.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),t.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.help","app.motiondialer","app.login","app.errors"])}(),function(){"use strict";function e(e,t){e.state("app.login",{url:"/login",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),t.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver",function(e){return e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver",function(e){return e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),t.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams",function(e,t){return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions",id:t.id})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver",function(e){return e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),t.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,t){return e.resolve("squareProject@get",{id:t.id})}],users:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!1})}],trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!1})}],queues:["apiResolver",function(e){return e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!1})}],sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!1})}],variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!1})}],databases:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!1})}],projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!1})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!1})}],intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!1})}],mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!1})}],templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!1})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!1})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver",function(e){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver",function(e){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,t){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),t.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,t){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description",id:t.id})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,t){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:t.id})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),t.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@get",_.merge({sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var t={},n=0;n<e.rows.length;n++)t[e.rows[n].id]=e.rows[n].name;return t}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,permissionId:300,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@get",{id:t.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","contact",function(e,t){return e.resolve("cmHopper@get",{ContactId:t.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","contact",function(e,t){return e.resolve("cmHopperFinal@get",{ContactId:t.id,fields:"uniqueid,phone,status,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","contact",function(e,t){return e.resolve("cmHopperHistory@get",{ContactId:t.id,fields:"uniqueid,ContactId,phone,status,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],companies:["apiResolver","$stateParams",function(e,t){return e.resolve("cmCompany@get")}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,t){return t.ListId?e.resolve("cmList@getCustomFields",{id:t.ListId}):null}],tags:["apiResolver","$stateParams",function(e,t){return e.resolve("tag@get")}]},authenticate:!0,permissionId:300,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),t.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.dashboards.general"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.dashboard",{url:"/dashboard",data:{selectedTab:0},views:{dashboard:{templateUrl:"app/main/apps/dashboards/views/general/agent/dashboard/agent.general.dashboard.html",controller:"AgentDashboardDashboardGeneralController as vm"}},resolve:{rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}],rpcVoiceQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],voiceQueues:["apiResolver","Auth",function(e,t){return e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",limit:10,page:1})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.recordings",{url:"/recordings",data:{selectedTab:1},views:{recordings:{templateUrl:"app/main/apps/dashboards/views/general/agent/recordings/agent.general.recordings.html",controller:"AgentRecordigsDashboardGeneralController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth",function(e,t){return e.resolve("user@getRecordings",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.contacts",{url:"/contacts",data:{selectedTab:2},views:{contacts:{templateUrl:"app/main/apps/dashboards/views/general/agent/contacts/agent.general.contacts.html",controller:"AgentContactsDashboardGeneralController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,t){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name",sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mycontacts",{url:"/mycontacts",data:{selectedTab:3},views:{mycontacts:{templateUrl:"app/main/apps/dashboards/views/general/agent/mycontacts/agent.general.mycontacts.html",controller:"AgentMyContactsDashboardGeneralController as vm"}},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.agent",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",data:{selectedTab:0},views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,t,n){var a=n.getCurrentUser();return a&&"agent"===a.role?t.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):t.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){var t=e.getCurrentUser();return t&&"agent"===t.role?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,t){return e.resolve("user@getLists",{id:t.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver","Auth",function(e,t){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["app.dashboards.general.user","app.dashboards.general.agent"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound"}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound"})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound"}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound"})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver",function(e){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver",function(e){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),t.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.help",{abstract:!0,url:"/help"}),t.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1405,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver",function(e){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver",function(e){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver",function(e){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver",function(e){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),t.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver",function(e){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,offset:0})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",id:t.id})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}),t.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver",function(e){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",id:t.id})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver",function(e){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,t){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",id:t.id})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),t.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.agents",{url:"/agents",controller:"AgentsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role,userpic,internal,online,motiondialerPause,pauseType,lastLoginAt,lastPauseAt",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.telephones",{url:"/telephones",controller:"TelephonesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.trunks",{url:"/trunks",controller:"TrunksMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver",function(e){return e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:410})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",["timer"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver",function(e){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver",function(e){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),t.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,min_mailbox,securePassword,stunaddr",limit:10,offset:0})}]},authenticate:!0,permissionId:1401,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,Smtp.service,Smtp.host,Smtp.user,Smtp.pass,Smtp.port,Smtp.secure,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1402,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1403,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultHeaderWhiteLabel,headerWhiteLabel",limit:10,offset:0})}]},authenticate:!0,permissionId:1407,bodyClass:"settings"}),t.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1405,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1406,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1404,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver",function(e){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver",function(e){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),t.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",id:t.id})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",id:t.id})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",id:t.id})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver",function(e){return e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}),t.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver",function(e){return e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver",function(e){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,t){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,interval,description",id:t.id})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,t){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:t.id})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver",function(e){return e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:42,bodyClass:"tools"}).state("app.tools.schedules.edit",{url:"/:id?tab",params:{schedule:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/edit/view.html",controller:"ScheduleController as vm"}},resolve:{schedule:["apiResolver","$stateParams",function(e,t){return e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",id:t.id})}]},authenticate:!0,permissionId:42,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver",function(e){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,t){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:t.id})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,t){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",id:t.id})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}),t.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},authenticate:!0,permissionId:410}).state("app.voice.realtime.agents",{url:"/agents",controller:"AgentsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role,userpic,internal,online,voicePause,pauseType,lastLoginAt,lastPauseAt",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver",function(e){return e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:410})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",["timer"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver",function(e){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",id:t.id})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.inboundroutes",{url:"/inboundroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundroutes/inboundroutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundroutes.edit",{url:"/:id?tab",params:{inboundroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundroutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.outboundroutes",{url:"/outboundroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundroutes/outboundroutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundroutes.edit",{url:"/:id?tab",params:{outboundroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundroutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.internalroutes",{url:"/internalroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalroutes/internalroutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalroutes.edit",{url:"/:id?tab",params:{internalroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalroutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver",function(e){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:t.id})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver",function(e){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:t.id})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver",function(e){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver",function(e){return e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.chanSpies.edit",{url:"/:id?tab",params:{chanSpy:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/edit/view.html",controller:"ChanSpyController as vm"}},resolve:{chanSpy:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",id:t.id})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}),t.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(){}angular.module("app.navigation",[]).config(e)}(),function(){"use strict";function e(e,t){e.addPart("app/quick-panel"),t.register("quickPanel.activities",["app/data/quick-panel/activities.json"]),t.register("quickPanel.contacts",["app/data/quick-panel/contacts.json"]),t.register("quickPanel.events",["app/data/quick-panel/events.json"]),t.register("quickPanel.notes",["app/data/quick-panel/notes.json"])}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e,t,n,a){e.$on("$stateChangeStart",function(e,n){return n.hasOwnProperty("authenticate")&&n.authenticate&&!a.isLoggedIn()?(e.preventDefault(),t.go("app.login",{},{reload:!0,notify:!0})):a.isLoggedIn()&&n.hasOwnProperty("permissionId")&&n.permissionId&&!a.hasPermission(n.permissionId)&&!a.hasRole("admin")?(e.preventDefault(),t.go("app.dashboards.general",{},{reload:!0,notify:!0})):void 0})}e.$inject=["$rootScope","$state","$window","Auth"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(e,t,n,a){function i(){var e=n.defer();return c("agent")?a.user.login({id:h.id}).$promise.then(function(){console.log("AGENT LOGGED IN"),e.resolve()}).catch(function(t){e.reject(t)}):e.resolve(),e.promise}function o(e){var o=n.defer();return a.auth.local(e).$promise.then(function(e){return t.put("motion.token",e.token),a.user.get({id:e.id,fields:"id,role,fullname,name,internal,email,userpic,permissions,voicePause,pauseType"}).$promise}).then(function(e){return h=e,h.lastLoginAt=moment(),t.put("motion.user",JSON.stringify(e)),i()}).then(function(){o.resolve()}).catch(function(e){o.reject(e.data)}),o.promise}function s(){var e=n.defer();return c("agent")?a.user.logout({id:h.id}).$promise.then(function(){console.log("AGENT LOGGED OUT")}).catch(function(e){console.log(e)}).finally(function(){e.resolve()}):e.resolve(),e.promise}function r(){h=null,t.remove("motion.user"),t.remove("motion.token")}function l(e){n.defer();return e?(r(),n.resolve()):s().then(r).catch(function(e){console.error(e)})}function d(){return!(!h||!u())}function c(e){return!!h&&h.role===e}function m(e){return!!h&&_.includes(h.permissions,e)}function u(){return t.get("motion.token")}function p(){return h}function g(e){return h=e,t.put("motion.user",JSON.stringify(e)),h}var h;return function(){t.get("motion.user")&&(h=JSON.parse(t.get("motion.user")))}(),{login:o,logout:l,queueLogin:i,isLoggedIn:d,hasRole:c,hasPermission:m,getToken:u,getCurrentUser:p,updateCurrentUser:g}}e.$inject=["$location","$cookies","$q","api"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(e,t,n,a,i){var o;return{request:function(e){var t=n.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&t&&(e.headers.Authorization="Bearer "+t),e},responseError:function(e){switch(e.status){case 401:n.remove("motion.user"),n.remove("motion.token"),(o||(o=a.get("$state"))).go("app.login")}return t.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(e){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var t=document.createElement("a");return t.href=e,""===t.host&&(t.href=t.href),t},isSameOrigin:function(n,a){return n=t.urlParse(n),a=a&&[].concat(a)||[],(a=a.map(t.urlParse)).push(e.location),(a=a.filter(function(e){var t=n.hostname===e.hostname,a=n.protocol===e.protocol,i=n.port===e.port||""===e.port&&("80"===n.port||"443"===n.port);return t&&a&&i})).length>=1}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=e,this.$get=function(){function e(e){return!angular.isUndefined(t[e])&&t[e]}function n(e,n){t[e]=n}return{getConfig:e,setConfig:n}}}angular.module("app.core").provider("motionConfig",e)}(),function(){"use strict";function e(e,t,n,a){t.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),n.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){t.generate(),n.getConfig("disableMdInkRippleOnMobile")&&e.isMobile()&&angular.element("body").attr("md-no-ink",!0),e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(e,t,n){return{restrict:"E",compile:function(a,i){var o;return i.code||(o=a.html(),a.empty()),function(a,i,s){function r(e,t){var n=t.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],o=new RegExp("^"+i);a=a.map(function(e){return e.replace(o,"").replace(/\s+$/,"")});var r=hljs.highlight(s.language||s.lang,a.join("\n"),!0);r.value=r.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),n.append(r.value).addClass("highlight")}s.code&&(o=a.$eval(s.code));var l=a.$eval(s.shouldInterpolate);t.when(o).then(function(t){if(t){l&&(t=n(t)(a));var o=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');i.append(o),e(function(){r(t,o)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,t){function n(){e.$emit("msCard::cardTemplateLoaded",t)}e.cardTemplateLoaded=n}}}}angular.module("app.core").directive("msCard",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditClockItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditClockItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-clock/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options?a.options.data||(a.options.data={theme:"light",digitalFormat:"hh:mm:ss"}):a.options={},a.options.sizeX=a.options.sizeX<=1?2:a.options.sizeX,a.options.sizeY=a.options.sizeY<=1?2:a.options.sizeY,a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-clock/ms-dash-clock.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashClock",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditCounterItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,i){function o(e){n.result=e}function s(a){e.show({controller:"EditCounterItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-counter/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={background:"#FFFFFF",foreground:"#03A9F4",foregroundTitle:"#7f7f7f",query:{fields:[],limit:1}}),a.on("widget:"+n.options.id,o),n.editItem=s,n.onWidgetUpdate=o}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-counter/ms-dash-counter.html"}}e.$inject=["$mdDialog","$document","$interval","socket","api"],angular.module("app.core").directive("msDashCounter",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditIframeItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditIframeItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-iframe/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options&&!a.options.data&&(a.options.data={url:"https://www.xcallymotion.com/"}),a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-iframe/ms-dash-iframe.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashIframe",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditTableItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,a,o){function s(e){n.result=e}function r(a){e.show({controller:"EditTableItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-table/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={query:{}}),i.on("widget:"+n.options.id,s),n.editItem=r,n.onWidgetUpdate=s}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-table/ms-dash-table.html"}}e.$inject=["$mdDialog","$document","$interval","api","socket"],angular.module("app.core").directive("msDashTable",e)}(),function(){"use strict";function e(){function e(e){n=angular.extend({},n,e)}var t=this,n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};t.config=e,t.$get=function(){return n}}function t(e){return{require:"ngModel",priority:1,link:function(t,n,a,i){i.$formatters.push(e.formatter),i.$parsers.push(e.parser)}}}t.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",e).directive("msDatepickerFix",t)}(),function(){"use strict";function e(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(e){e.transfer=function(t,n,a,i){var o=[];if(a>=0)o.push(t[a]),n.push(t[a]),t.splice(a,1);else{for(var s=0;s<t.length;s+=1)n.push(t[s]);t.length=0,o=n}e.options.transferCallback&&e.options.transferCallback(o,i)}}],templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}}angular.module("app.core").directive("msDualMultiselect",e)}(),function(){"use strict";function e(){function e(e){u.forms.push(e)}function t(){s()||u.selectedIndex--}function n(){r()||u.selectedIndex++}function a(){u.selectedIndex=0}function i(){u.selectedIndex=o()-1}function o(){return u.forms.length}function s(){return 0===u.selectedIndex}function r(){return u.selectedIndex===o()-1}function l(){return angular.isDefined(u.forms[u.selectedIndex])&&u.forms[u.selectedIndex].$invalid}function d(){return u.selectedIndex>0&&angular.isDefined(u.forms[u.selectedIndex-1])&&u.forms[u.selectedIndex-1].$invalid}function c(){for(var e=0;e<u.forms.length;e++)if(u.forms[e].$invalid)return!0;return!1}function m(){u.selectedIndex=0;for(var e=0;e<u.forms.length;e++)u.forms[e].$setPristine(),u.forms[e].$setUntouched()}var u=this;u.forms=[],u.selectedIndex=0,u.registerForm=e,u.previousStep=t,u.nextStep=n,u.firstStep=a,u.lastStep=i,u.totalSteps=o,u.isFirstStep=s,u.isLastStep=r,u.currentStepInvalid=l,u.previousStepInvalid=d,u.formsIncomplete=c,u.resetForm=m}function t(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}function n(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,t,n,a){var i=a[0];a[1].registerForm(i)}}}}angular.module("app.core").controller("MsFormWizardController",e).directive("msFormWizard",t).directive("msFormWizardForm",n)}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(t,n){function a(){i.removeClass(o),n.remove(),t.$destroy()}var i=e.find("body"),o="ms-info-bar-active";i.addClass(o),t.removeInfoBar=a}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(e,t,n,a){function i(){d.options=d.options?angular.extend(c,d.options):c,s()}function o(e,n){"undefined"!=typeof imagesLoaded?t.imagesLoaded(e).on("done",function(){n()}):n()}function s(){e.$watch(function(){return d.container.width()},function(e,t){e!==t&&r()})}function r(){function t(){d.containerPos=d.container[0].getBoundingClientRect(),l(),e.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var t=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var a,i,o,s,r=d.items[n];(r=angular.element(r)).scope()&&r.scope().$broadcast("msMasonryItem:startReLayout"),r.css({width:d.columnWidth}),d.options.respectItemOrder?s=t[o=n%d.columnCount]:(s=Math.min.apply(Math,t),o=t.indexOf(s)),t[o]=s+r[0].getBoundingClientRect().height,a=Math.round(o*d.columnWidth),i=s,r.css({transform:"translate3d("+a+"px,"+i+"px,0px)"}),r.addClass("placed"),r.scope()&&r.scope().$broadcast("msMasonryItem:finishReLayout")}}m&&a.cancel(m),m=a(function(){t(),e.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}function l(){d.columnCount=d.options.columnCount,n("gt-md")?d.columnCount=d.options.columnCount:n("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:n("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs,d.columnWidth=d.containerPos.width/d.columnCount}var d=this,c={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},m=!0;d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=r,d.initialize=i,d.waitImagesLoaded=o,e.$on("msMasonry:relayout",function(){r()})}function t(e){function t(t,n){return{pre:function(e,a,i,o){o.options=angular.fromJson(n.options||"{}"),o.container=t},post:function(t,n,a,i){e(function(){i.initialize()})}}}return{restrict:"AEC",controller:"msMasonryController",compile:t}}function n(){function e(e,t,n,a){a.waitImagesLoaded(t,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return t.height()},function(e,t){e!==t&&a.reLayout()})}),t.on("$destroy",function(){a.reLayout()})}return{restrict:"AEC",require:"^msMasonry",priority:1,link:e}}e.$inject=["$scope","$window","$mdMedia","$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",t).directive("msMasonryItem",n)}(),function(){"use strict";function e(e,t,n,a){function i(e,t){c.selectedPalette=e,c.selectedHues=t}function o(e,t){l(e,t),d(),n.hide()}function s(){c.selectedColor={palette:"",hue:"",class:""},i(!1,!1),d()}function r(){if(c.modelCtrl.$viewValue&&""!==c.modelCtrl.$viewValue){var e,t;if("class"===c.msModelType){var n=c.modelCtrl.$viewValue.split("-");n.length>=5?(e=n[1]+"-"+n[2],t=n[3]):(e=n[1],t=n[2])}else"obj"===c.msModelType&&(e=c.modelCtrl.$viewValue.palette,t=c.modelCtrl.$viewValue.hue||500);l(e,t)}else s()}function l(t,n){c.selectedColor={palette:t,hue:n,class:"md-"+t+"-"+n+"-bg",bgColorValue:a.rgba(c.palettes[t][n].value),fgColorValue:a.rgba(c.palettes[t][n].contrast)},"obj"!==c.msModelType||angular.equals(c.selectedColor,c.modelCtrl.$viewValue)||d(),i(t,c.palettes[t]),e.$selectedColor=c.selectedColor}function d(){"class"===c.msModelType?c.modelCtrl.$setViewValue(c.selectedColor.class):"obj"===c.msModelType&&c.modelCtrl.$setViewValue(c.selectedColor)}var c=this;c.palettes=t,c.selectedPalette=!1,c.selectedHues=!1,e.$selectedColor={},c.activateHueSelection=i,c.selectColor=o,c.removeColor=s,e.$watch("ngModel",r)}function t(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,t,n,a,i){var o=a[0];o.modelCtrl=a[1],o.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,t){return 1===t.nodeType})).length&&t.find("ms-color-picker-button").replaceWith(e)})}}}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",t)}(),function(){"use strict";function e(){function e(e,t){o={scope:e,element:t}}function t(){return o.scope.isNavFoldedOpen()}function n(){o.scope.toggleFold()}function a(){o.scope.openFolded()}function i(){o.scope.closeFolded()}var o={};return{setFoldable:e,isNavFoldedOpen:t,toggleFold:n,openFolded:a,closeFolded:i}}function t(e,t,n){return{restrict:"A",link:function(a,i,o){function s(){return p}function r(){(u=!u)?l():m()}function l(){g.addClass("ms-nav-folded"),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function d(e){angular.isDefined(e)&&e.preventDefault(),g.addClass("ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),b.find(h).remove(),b.parent().append(v),v.on("mouseenter touchstart",function(e){c(e),p=!1})}function c(e){angular.isDefined(e)&&e.preventDefault(),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),g.removeClass("ms-nav-folded-open"),b.parent().find(v).remove(),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function m(){g.removeClass("ms-nav-folded ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),i.off("mouseenter mouseleave")}var u="true"===o.msNavIsFolded,p=!1,g=angular.element(e[0].body),h=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),v=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),b=i.parent();n.setFoldable(a,i,u),u?l():m(),a.toggleFold=r,a.openFolded=d,a.closeFolded=c,a.isNavFoldedOpen=s,a.$on("$destroy",function(){h.off("mouseenter touchstart"),v.off("mouseenter touchstart"),i.off("mouseenter mouseleave")})}}}function n(){function e(){return l}function t(){l=!0}function n(){l=!1}function a(e,t){d.push({element:e,scope:t})}function i(){return c}function o(e,t){c.push({element:e,scope:t})}function s(){c=[]}var r=this,l=!1,d=[],c=[];r.isDisabled=e,r.enable=n,r.disable=t,r.setToggleItem=a,r.getLockedItems=i,r.setLockedItem=o,r.clearLockedItems=s}function a(e,t,n){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(a){return a.addClass("ms-nav"),function(a){e.$broadcast("msNav::expandMatchingToggles");var i=e.$on("$stateChangeSuccess",function(){e.$broadcast("msNav::expandMatchingToggles"),t.when("navigation").then(function(e){e.close(),n.isNavFoldedOpen()&&n.closeFolded()})});a.$on("$destroy",function(){i()})}}}}function i(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}function o(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}function s(e,t,n,a){return{restrict:"A",require:"^msNav",scope:!0,compile:function(i,o){return i.addClass("ms-nav-toggle"),angular.isUndefined(o.collapsed)&&(o.collapsed=!0),i.attr("collapsed",o.collapsed),function(i,o,s,r){function l(){r.isDisabled()||(r.disable(),d()?(r.clearLockedItems(),i.$emit("msNav::pushToLockedList"),e.$broadcast("msNav::collapse"),m().then(function(){r.enable()})):i.$broadcast("msNav::forceCollapse"))}function d(){return"true"===o.attr("collapsed")}function c(){return!d()}function m(){var e=t.defer();if(c())return e.reject({error:!0}),e.promise;o.attr("collapsed",!1);var a=angular.element(o.find("ms-nav-toggle-items")[0]);a.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var s=a[0].offsetHeight;return a.css({position:"",visibility:"",display:"",height:""}),i.$evalAsync(function(){n.animate(a,{display:"block",height:"0px"},{height:s+"px"},p.expandAnimation).then(function(){a.addClass(p.expanded),a.css({height:""}),e.resolve({success:!0})})}),e.promise}function u(){var e=t.defer();if(d())return e.reject({error:!0}),e.promise;o.attr("collapsed",!0);var a=angular.element(o.find("ms-nav-toggle-items")[0]),s=a[0].offsetHeight;return i.$evalAsync(function(){n.animate(a,{height:s+"px"},{height:"0px"},p.collapseAnimation).then(function(){a.removeClass(p.expanded),a.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}var p={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},g=o.find("a"),h=[],v=/\(.*\)/g;angular.forEach(g,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(v,""),h.push(t))}),r.setToggleItem(o,i),o.children(".ms-nav-button").on("click",l),i.$on("$destroy",function(){o.children(".ms-nav-button").off("click")}),i.$on("msNav::collapse",function(){var e=r.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,i)&&(t=!0)}),t||u().then(function(){r.enable()})}),i.$on("msNav::forceCollapse",function(){u().then(function(){r.enable()})}),i.$on("msNav::expandMatchingToggles",function(){var e=a.current.name,t=!1;angular.forEach(h,function(n){e===n&&(t=!0)}),t?m():u()}),i.$on("msNav::pushToLockedList",function(){r.setLockedItem(o,i)})}}}}t.$inject=["$document","$rootScope","msNavFoldService"],a.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],s.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",e).directive("msNavIsFolded",t).controller("MsNavController",n).directive("msNav",a).directive("msNavTitle",i).directive("msNavButton",o).directive("msNavToggle",s)}(),function(){"use strict";function e(){function e(e,t){if(angular.isString(e)){for(var n=e.split("."),i=n[n.length-1],r=a(n),l=!1,d=0;d<r.length;d++)if(r[d]._id===i){l=r[d];break}l?(angular.extend(l,t),l.uisref=o(l)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=i,t._path=e,t.uisref=o(t),r.push(t))}else s.error("path must be a string (eg. `dashboard.project`)")}function t(e){if(angular.isString(e)){for(var t=r,n=e.split("."),a=0;a<n.length;a++)for(var i=n[a],o=0;o<t.length;o++)if(t[o]._id===i){if(t[o]._path===e)return t.splice(o,1),!0;t=t[o].children;break}return!1}s.error("path must be a string (eg. `dashboard.project`)")}function n(e){e||(e=r).sort(i);for(var t=0;t<e.length;t++){var a=e[t].children;a.length>1&&a.sort(i),a.length>0&&n(a)}}function a(e){var t=r;if(1===e.length)return t;e.pop();for(var n=0;n<e.length;n++){for(var a=e[n],i=!0,o=0;o<t.length;o++)if(t[o]._id===a){t=t[o].children,i=!1;break}if(i){var s={_id:a,_path:e.join("."),title:a,weight:1,children:[]};t.push(s),t=s.children}}return t}function i(e,t){return parseInt(e.weight)-parseInt(t.weight)}function o(e){var t="";return angular.isDefined(e.state)&&(t=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(t=t+"("+angular.toJson(e.stateParams)+")")),t}var s=angular.injector(["ng"]).get("$log"),r=[],l=this;l.saveItem=e,l.deleteItem=t,l.sortByWeight=n,this.$get=function(){function a(){r=[],b&&(b.vm.navigation=r)}function i(e,t){v={node:e,scope:t}}function o(){return v}function s(e){if(e){for(var t=0;t<r.length;t++)if(r[t]._id===e)return[r[t]];return null}return r}function l(e){return h(s(e))}function d(e){b=e}function c(e){f=e}function m(){return f}function u(e){E=e}function p(){return E}function g(){b.toggleFolded()}function h(e){for(var t=[],n=0;n<e.length;n++){var a=angular.copy(e[n]);a.children=[],t.push(a),e[n].children.length>0&&(t=t.concat(h(e[n].children)))}return t}var v=null,b=null,f=null,E=null;return{saveItem:e,deleteItem:t,sort:n,clearNavigation:a,setActiveItem:i,getActiveItem:o,getNavigation:s,getFlatNavigation:l,setNavigationScope:d,setFolded:c,getFolded:m,setFoldedOpen:u,getFoldedOpen:p,toggleFolded:g}}}function t(e,t){function n(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")}var a=this;e.root?a.navigation=t.getNavigation(e.root):a.navigation=t.getNavigation(),a.toggleHorizontalMobileMenu=n,function(){t.sort()}()}function n(e,t,n,a){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(i){return i.addClass("ms-navigation"),function(i,o){function s(t){if(a.setFolded(t),t)e.$broadcast("msNavigation::collapse"),u.addClass("ms-navigation-folded"),r();else{var n=a.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),u.removeClass("ms-navigation-folded ms-navigation-folded-open"),d()}}function r(){o.parent().append(p),t(function(){p.on("mouseenter touchstart",c)})}function l(){u.find("#main").append(g),g.on("mouseenter touchstart",m)}function d(){g.remove()}function c(e){e&&e.preventDefault(),a.setFoldedOpen(!0);var t=a.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),u.addClass("ms-navigation-folded-open"),p.remove(),l()}function m(t){t&&t.preventDefault(),a.setFoldedOpen(!1),e.$broadcast("msNavigation::collapse"),u.removeClass("ms-navigation-folded-open"),g.remove(),r()}var u=angular.element("body"),p=angular.element('<div id="ms-navigation-fold-expander"></div>'),g=angular.element('<div id="ms-navigation-fold-collapser"></div>'),h=n("navigation");a.setNavigationScope(i),function(){null===a.getFolded()&&a.setFolded(i.folded),a.getFolded()&&(t(function(){e.$broadcast("msNavigation::collapse")}),u.addClass("ms-navigation-folded"),r())}(),i.$watch(function(){return h.isLockedOpen()},function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&a.getFolded())if(t)e.$broadcast("msNavigation::collapse");else{var i=a.getActiveItem();i&&i.scope.$emit("msNavigation::stateMatched")}}),i.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||s(e)}),i.toggleFolded=function(){s(!a.getFolded())},i.$on("$stateChangeStart",function(){h.close()}),i.$on("$destroy",function(){g.off("mouseenter touchstart"),p.off("mouseenter touchstart")})}}}}function a(e,t,n,a,i,o){function s(){m.collapsed?m.expand():m.collapse()}function r(){var t=m.element.children("ul"),n=t[0].offsetHeight;e.$evalAsync(function(){m.collapsed=!0,m.element.addClass("collapsing"),a.animate(t,{display:"block",height:n+"px"},{height:"0px"},m.animateHeightClass).then(function(){t.css({display:"",height:""}),m.element.removeClass("collapsing")}),e.$broadcast("msNavigation::collapse")})}function l(){var t=m.element.children("ul");t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var i=t[0].offsetHeight;t.css({position:"",visibility:"",display:"",height:""}),e.$evalAsync(function(){m.collapsed=!1,m.element.addClass("expanding"),a.animate(t,{display:"block",height:"0px"},{height:i+"px"},m.animateHeightClass).then(function(){t.css({height:""}),m.element.removeClass("expanding")}),n.$broadcast("msNavigation::collapse",m.node._path)})}function d(){return m.node.class}function c(){return!(!angular.isDefined(m.node.hidden)||!angular.isFunction(m.node.hidden))&&m.node.hidden()}var m=this;m.element=t,m.node=e.node,m.hasChildren=void 0,m.collapsed=void 0,m.collapsable=void 0,m.group=void 0,m.animateHeightClass="animate-height",m.toggleCollapsed=s,m.collapse=r,m.expand=l,m.getClass=d,m.isHidden=c,function(){if(m.hasChildren=m.node.children.length>0,m.group=!(!angular.isDefined(m.node.group)||!0!==m.node.group),!m.hasChildren||m.group?m.collapsable=!1:m.collapsable=!(!angular.isUndefined(m.node.collapsable)&&"boolean"==typeof m.node.collapsable&&!0!==m.node.collapsable),m.collapsable?m.collapsed=!(!angular.isUndefined(m.node.collapsed)&&"boolean"==typeof m.node.collapsed&&!0!==m.node.collapsed):m.collapsed=!1,m.node.state===i.current.name||i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched"),o.setActiveItem(m.node,e)}e.$on("msNavigation::stateMatched",function(){m.collapsable&&m.collapsed&&e.$evalAsync(function(){m.collapsed=!1})}),e.$on("msNavigation::collapse",function(e,t){if(!m.collapsed&&m.collapsable)if(angular.isUndefined(t))m.collapse();else{var n=t.split("."),a=[],i=o.getActiveItem();if(i&&(a=i.node._path.split(".")),n.indexOf(m.node._id)>-1)return;if(a.indexOf(m.node._id)>-1)return;m.collapse()}}),e.$on("$stateChangeSuccess",function(){if(m.node.state===i.current.name){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;o.setActiveItem(m.node,e),n.$broadcast("msNavigation::collapse",m.node._path)}if(i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched")}})}()}function i(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function o(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,t,n,a){a.collapsable&&t.on("click",a.toggleCollapsed),e.$on("$destroy",function(){t.off("click")})}}}}function s(e){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(t){return t.addClass("ms-navigation-horizontal"),function(t){e.setNavigationScope(t)}}}}function r(e,t,n,a,i){function o(){return s.node.class}var s=this;s.element=t,s.node=e.node,s.hasChildren=void 0,s.group=void 0,s.getClass=o,function(){if(s.isActive=!1,s.hasChildren=s.node.children.length>0,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;e.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,e)}e.$on("msNavigation::stateMatched",function(){s.hasChildren&&e.$evalAsync(function(){s.isActive=!0})}),e.$on("msNavigation::clearActive",function(){if(s.hasChildren){var t=[],n=i.getActiveItem();n&&(t=n.node._path.split(".")),t.indexOf(s.node._id)>-1?e.$evalAsync(function(){s.isActive=!0}):e.$evalAsync(function(){s.isActive=!1})}}),e.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,e),n.$broadcast("msNavigation::clearActive")}})}()}function l(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function d(e){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(t){return t.addClass("ms-navigation-horizontal-item"),function(t,n,a,i){function o(){i.hasChildren&&!e("gt-md")&&n.toggleClass("expanded")}n.on("click",o),t.$on("$destroy",function(){n.off("click")})}}}}t.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],a.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],s.$inject=["msNavigationService"],r.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],d.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",e).controller("MsNavigationController",t).directive("msNavigation",n).controller("MsNavigationNodeController",a).directive("msNavigationNode",i).directive("msNavigationItem",o).directive("msNavigationHorizontal",s).controller("MsNavigationHorizontalNodeController",r).directive("msNavigationHorizontalNode",l).directive("msNavigationHorizontalItem",d)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){r.mobileBarActive=!r.mobileBarActive}var r=this;r.mobileBarActive=!1,r.toggleMobileBar=s}function t(){return{restrict:"E",scope:{},require:"msPhonebar",controller:"MsPhonebarController as MsPhonebar",bindToController:{},templateUrl:"app/core/directives/ms-phonebar/ms-phonebar.html",compile:function(e){return e.addClass("ms-phonebar"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",t)}(),function(){"use strict";function e(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,t){var n=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];t.addClass(n)}}}angular.module("app.core").directive("msRandomClass",e)}(),function(){"use strict";function e(){return{restrict:"A",link:function(e,t){var n=angular.element('<div class="ms-responsive-table-wrapper"></div>');t.after(n),n.append(t)}}}angular.module("app.core").directive("msResponsiveTable",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=e,this.$get=function(){function e(){return t}return{getConfig:e}}}function t(e,t,n,a){return{restrict:"AE",compile:function(i){if(!(a.getConfig("disableCustomScrollbars")||a.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return i.addClass("ms-scroll"),function(n,a,i){function o(){PerfectScrollbar.update(a[0])}var s={};i.msScroll&&(s=n.$eval(i.msScroll)),s=angular.extend({},t.getConfig(),s),e(function(){PerfectScrollbar.initialize(a[0],s)},0),a.on("mouseenter",o),n.$watch(function(){return a.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$watch(function(){return a.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$on("$destroy",function(){a.off("mouseenter"),PerfectScrollbar.destroy(a[0])})}}}}t.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",e).directive("msScroll",t)}(),function(){"use strict";function e(e,t,n){function a(e){if(!p.collapsed){var t=null===e;(angular.isArray(e)||t)&&(p.selectedResultIndex=0,p.results=e)}}function i(){p.collapsed=!1,e.expand(),p.onExpand&&angular.isFunction(p.onExpand)&&p.onExpand()}function o(){p.query="",p.populateResults(null),p.collapsed=!0,e.collapse(),p.onCollapse&&angular.isFunction(p.onCollapse)&&p.onCollapse()}function s(){g&&p.collapse()}function r(e){e.preventDefault()}function l(e){var t=e.keyCode;switch([27,38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:if(!p.results)return;p.handleResultClick(p.results[p.selectedResultIndex]);break;case 27:p.collapse();break;case 38:p.selectedResultIndex-1>=0&&(p.selectedResultIndex--,p.ensureSelectedResultIsVisible());break;case 40:if(!p.results)return;p.selectedResultIndex+1<p.results.length&&(p.selectedResultIndex++,p.ensureSelectedResultIsVisible())}}function d(e){p.ignoreMouseEvents||(p.selectedResultIndex=e)}function c(){p.ignoreMouseEvents=!0,n.cancel(p.mouseEventIgnoreTimeout),p.mouseEventIgnoreTimeout=n(function(){p.ignoreMouseEvents=!1},250)}function m(e){p.onResultClick&&p.onResultClick({item:e}),p.collapse()}function u(){var e=t.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[p.selectedResultIndex]);if(e&&n){var a=n.position().top-8,i=n.position().top+n.outerHeight()+8;p.temporarilyIgnoreMouseEvents(),e.scrollTop()>a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}var p=this;p.collapsed=!0,p.query="",p.queryOptions={debounce:p.debounce||0};var g=!(!p.collapseOnBlur||"true"!=p.collapseOnBlur);p.resultsLoading=!1,p.results=null,p.selectedResultIndex=0,p.ignoreMouseEvents=!1,p.populateResults=a,p.expand=i,p.collapse=o,p.blurCollapse=s,p.absorbEvent=r,p.handleKeydown=l,p.handleMouseenter=d,p.temporarilyIgnoreMouseEvents=c,p.handleResultClick=m,p.ensureSelectedResultIsVisible=u,function(){e.$watch("MsSearchBar.query",function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&!p.collapsed){var a=e.$parent.$eval(p.onSearch,{query:t}),i=angular.isArray(a),o=a&&!!a.then;i&&p.populateResults(a),o&&(p.resultsLoading=!0,a.then(function(e){p.populateResults(e)},function(){p.populateResults([])}).finally(function(){p.resultsLoading=!1}))}})}()}function t(e){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as MsSearchBar",bindToController:{debounce:"=?",onSearch:"@",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"@"},templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(t){return t.addClass("ms-search-bar"),function(t,n){function a(){n.addClass("expanded"),s.addClass("ms-search-bar-expanded"),o.focus()}function i(){n.removeClass("expanded"),s.removeClass("ms-search-bar-expanded")}var o,s=e.find("body");t.collapse=i,t.expand=a,function(){o=n.find("#ms-search-bar-input")}()}}}}e.$inject=["$scope","$element","$timeout"],t.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",t)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){for(var e=[],t=o.getFlatNavigation(),n=i.defer(),s=0;s<t.length;s++)t[s].uisref&&e.push(t[s]);if(f.query){e=e.filter(function(e){if(angular.lowercase(e.title).search(angular.lowercase(f.query))>-1)return!0});for(var r=0;r<e.length;r++){e[r].hasShortcut=!1;for(var l=0;l<f.shortcuts.length;l++)if(f.shortcuts[l]._id===e[r]._id){e[r].hasShortcut=!0;break}}}else f.shortcuts.length>0&&(e=f.shortcuts);return f.selectedResultIndex=0,a(function(){n.resolve(e)},250),n.promise}function r(){var e=i.defer(),n=angular.fromJson(t.get("motion.shortcuts"));return angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n))),e.resolve(n),e.promise}function l(){var e=i.defer();return t.put("motion.shortcuts",angular.toJson(f.shortcuts)),a(function(){e.resolve({success:!0})},250),e.promise}function d(e){e.hasShortcut=!0,f.shortcuts.push(e),f.saveShortcuts()}function c(e){e.hasShortcut=!1;for(var t=0;t<f.shortcuts.length;t++)f.shortcuts[t]._id===e._id&&(f.shortcuts.splice(t,1),f.query||(0===f.shortcuts.length?f.results=null:t>=f.shortcuts.length&&(f.selectedResultIndex=f.shortcuts.length-1)));f.saveShortcuts()}function m(e){e.hasShortcut?f.removeShortcut(e):f.addShortcut(e)}function u(e){e.preventDefault()}function p(e){var t=e.keyCode;switch([38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:f.handleResultClick(f.results[f.selectedResultIndex]);break;case 38:f.selectedResultIndex-1>=0&&(f.selectedResultIndex--,f.ensureSelectedResultIsVisible());break;case 40:f.selectedResultIndex+1<f.results.length&&(f.selectedResultIndex++,f.ensureSelectedResultIsVisible())}}function g(e){f.ignoreMouseEvents||(f.selectedResultIndex=e)}function h(){f.ignoreMouseEvents=!0,a.cancel(f.mouseEventIgnoreTimeout),f.mouseEventIgnoreTimeout=a(function(){f.ignoreMouseEvents=!1},250)}function v(){var e=n.find("#ms-shortcut-add-menu").find(".results"),t=angular.element(e.find(".result")[f.selectedResultIndex]);if(e&&t){var a=t.position().top-8,i=t.position().top+t.outerHeight()+8;f.temporarilyIgnoreMouseEvents(),e.scrollTop()>a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}function b(){f.mobileBarActive=!f.mobileBarActive}var f=this;f.query="",f.queryOptions={debounce:300},f.resultsLoading=!1,f.selectedResultIndex=0,f.ignoreMouseEvents=!1,f.mobileBarActive=!1,f.results=null,f.shortcuts=[],f.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){f.saveShortcuts()}},f.populateResults=s,f.loadShortcuts=r,f.saveShortcuts=l,f.addShortcut=d,f.removeShortcut=c,f.handleResultClick=m,f.absorbEvent=u,f.handleKeydown=p,f.handleMouseenter=g,f.temporarilyIgnoreMouseEvents=h,f.ensureSelectedResultIsVisible=v,f.toggleMobileBar=b,function(){f.loadShortcuts().then(function(e){f.shortcuts=e,f.shortcuts.length>0&&(f.results=e)}),e.$watch("MsShortcuts.query",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||(f.resultsLoading=!0,f.populateResults().then(function(e){f.results=e},function(){f.results=[]}).finally(function(){f.resultsLoading=!1}))})}()}function t(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",t)}(),function(){"use strict";function e(){return{restrict:"A",require:"^mdSidenav",link:function(e,t,n,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(t.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}}angular.module("app.core").directive("msSidenavHelper",e)}(),function(){"use strict";function e(e){return{restrict:"E",link:function(t,n){var a=t.$on("msSplashScreen::remove",function(){e.leave(n).then(function(){a(),t=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){function t(e){C.orientation=e||"horizontal"}function n(e){C.mainForm=e}function a(e,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||C.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return C.steps.push(a),C.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a}function i(){C.setCurrentStep(C.currentStepNumber)}function o(){e(function(){for(var e=0;e<C.steps.length;e++)C.steps[e].form.$setPristine(),C.steps[e].form.$setUntouched();C.mainForm.$setPristine(),C.mainForm.$setUntouched(),c()})}function s(e){if(y(e))if(C.currentStepNumber=e,"horizontal"===C.orientation){for(var t=0;t<C.steps.length;t++)C.steps[t].element.hide();C.steps[C.currentStepNumber-1].element.show()}else if("vertical"===C.orientation){for(var n=0;n<C.steps.length;n++)C.steps[n].element.find(".ms-stepper-step-content").hide();C.steps[C.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}}function r(e){b(e)||C.setCurrentStep(e)}function l(){for(var e=C.currentStepNumber-1,t=e;t>=1;t--)if(!b(t)){e=t;break}C.setCurrentStep(e)}function d(){for(var e=C.currentStepNumber+1,t=e;t<=C.steps.length;t++)if(!b(t)){e=t;break}C.setCurrentStep(e)}function c(){C.setCurrentStep(1)}function m(){C.setCurrentStep(C.steps.length)}function u(){return 1===C.currentStepNumber}function p(){return C.currentStepNumber===C.steps.length}function g(e){return y(e)?C.currentStepNumber===e:null}function h(e){if(!y(e))return null;for(var t=!1,n=1;n<e;n++)if(!E(n)){t=!0;break}return t}function v(e){return y(e)?C.steps[e-1].scope.optionalStep:null}function b(e){return y(e)?!!C.steps[e-1].scope.hideStep:null}function f(e){return!b(e.stepNumber)}function E(e){return y(e)?!!v(e)||C.steps[e-1].form.$valid:null}function y(e){return!(angular.isUndefined(e)||e<1||e>C.steps.length)}function A(){return C.mainForm.$valid}var C=this;C.mainForm=void 0,C.orientation="horizontal",C.steps=[],C.currentStep=void 0,C.currentStepNumber=1,C.setOrientation=t,C.registerMainForm=n,C.registerStep=a,C.setupSteps=i,C.resetForm=o,C.setCurrentStep=s,C.gotoStep=r,C.gotoPreviousStep=l,C.gotoNextStep=d,C.gotoFirstStep=c,C.gotoLastStep=m,C.isFirstStep=u,C.isLastStep=p,C.isStepCurrent=g,C.isStepDisabled=h,C.isStepOptional=v,C.isStepHidden=b,C.filterHiddenStep=f,C.isStepValid=E,C.isStepNumberValid=y,C.isFormValid=A}function t(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,t,n,a){var i=a[0],o=a[1];o.setOrientation("horizontal"),o.registerMainForm(i),o.setupSteps()}}}}function n(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),o.registerStep(t,e,i),t.hide()}}}}function a(e){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(t){return t.addClass("ms-stepper"),function(t,n,a,i){var o=i[0],s=i[1];e(function(){s.setOrientation("vertical"),s.registerMainForm(o),s.setupSteps()})}}}}function i(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),e.stepInfo=o.registerStep(t,e,i),e.MsStepper=o,t.find(".ms-stepper-step-content").hide()}}}}e.$inject=["$timeout"],a.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",t).directive("msHorizontalStepperStep",n).directive("msVerticalStepper",a).directive("msVerticalStepperStep",i)}(),function(){"use strict";function e(){function e(e){n.scrollEl=e}function t(){return n.scrollEl}var n=this;n.scrollEl=void 0,n.setScrollEl=e,n.getScrollEl=t}function t(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){function i(){d.scrollTop()+d.height()+c>r.position().top&&(r.addClass("show"),s(),e.loadMore().then(function(){r.removeClass("show"),o()},function(){r.remove()}))}function o(){d.on("scroll",i)}function s(){d.off("scroll",i)}var r=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');t.append(r);var l={scrollEl:"#content"};l=angular.extend(l,e.msTimeline,{});var d=angular.element(l.scrollEl);a.setScrollEl(d);var c=144;o(),e.$on("$destroy",function(){s()})}}}}function n(e,t){return{scope:!0,require:"^msTimeline",compile:function(n){return n.addClass("ms-timeline-item").addClass("hidden"),function(n,a,i,o){function s(e){var n=t.defer(),a=e.find("img");return a.length>0?a.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function r(){m.scrollTop()+m.height()>a.position().top+l&&(e(function(){c=!0}),m.off("scroll",r))}var l=72,d=!1,c=!1,m=o.getScrollEl();!function(){a.find("ms-card")?n.$on("msCard::cardTemplateLoaded",function(t,n){s(angular.element(n[0])).then(function(){e(function(){d=!0})})}):s(a).then(function(){e(function(){d=!0})}),m.on("scroll",r),r()}();var u=n.$watch(function(){return d&&c},function(e,t){angular.equals(e,t)||e&&(a.removeClass("hidden").addClass("animate"),u())},!0)}}}}n.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",e).directive("msTimeline",t).directive("msTimelineItem",n)}(),function(){"use strict";function e(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone={"Europe/Andorra":{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},"Asia/Dubai":{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},"Asia/Kabul":{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},"Europe/Tirane":{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},"Asia/Yerevan":{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},"Antarctica/Rothera":{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Palmer":{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Mawson":{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},"Antarctica/Davis":{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},"Antarctica/Casey":{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},"Antarctica/Vostok":{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},"Antarctica/DumontDUrville":{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},"Antarctica/Syowa":{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},"Antarctica/Troll":{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},"America/Argentina/Buenos_Aires":{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Cordoba":{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Salta":{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Jujuy":{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Tucuman":{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Catamarca":{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/La_Rioja":{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Juan":{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Mendoza":{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Luis":{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Rio_Gallegos":{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Ushuaia":{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"Pacific/Pago_Pago":{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},"Europe/Vienna":{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},"Australia/Lord_Howe":{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Antarctica/Macquarie":{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Hobart":{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Currie":{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Melbourne":{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Sydney":{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Broken_Hill":{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Brisbane":{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Lindeman":{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Adelaide":{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Darwin":{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},"Australia/Perth":{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},"Australia/Eucla":{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},"Asia/Baku":{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},"America/Barbados":{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},"Asia/Dhaka":{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},"Europe/Brussels":{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},"Europe/Sofia":{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},"Atlantic/Bermuda":{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},"Asia/Brunei":{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},"America/La_Paz":{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},"America/Noronha":{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Belem":{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Fortaleza":{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Recife":{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Araguaina":{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Maceio":{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Bahia":{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Sao_Paulo":{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Campo_Grande":{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Cuiaba":{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Santarem":{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Porto_Velho":{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Boa_Vista":{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Manaus":{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Eirunepe":{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Rio_Branco":{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Nassau":{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},"Asia/Thimphu":{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},"Europe/Minsk":{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},"America/Belize":{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},"America/St_Johns":{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},"America/Halifax":{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Glace_Bay":{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Moncton":{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Goose_Bay":{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Blanc-Sablon":{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Toronto":{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Nipigon":{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Thunder_Bay":{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Iqaluit":{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Pangnirtung":{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Resolute":{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Atikokan":{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Rankin_Inlet":{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Winnipeg":{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Rainy_River":{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Regina":{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Swift_Current":{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Edmonton":{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Cambridge_Bay":{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Yellowknife":{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Inuvik":{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Creston":{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Dawson_Creek":{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Fort_Nelson":{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Vancouver":{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Whitehorse":{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Dawson":{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"Indian/Cocos":{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},"Europe/Zurich":{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},"Africa/Abidjan":{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},"Pacific/Rarotonga":{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},"America/Santiago":{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},"Pacific/Easter":{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},"Asia/Shanghai":{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},"Asia/Urumqi":{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},"America/Bogota":{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},"America/Costa_Rica":{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},"America/Havana":{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},"Atlantic/Cape_Verde":{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},"America/Curacao":{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},"Indian/Christmas":{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},"Asia/Nicosia":{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},"Europe/Prague":{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},"Europe/Berlin":{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},"Europe/Copenhagen":{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},"America/Santo_Domingo":{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},"Africa/Algiers":{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},"America/Guayaquil":{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},"Pacific/Galapagos":{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},"Europe/Tallinn":{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},"Africa/Cairo":{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},"Africa/El_Aaiun":{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},"Europe/Madrid":{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Africa/Ceuta":{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Atlantic/Canary":{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},"Europe/Helsinki":{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},"Pacific/Fiji":{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},"Atlantic/Stanley":{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},"Pacific/Chuuk":{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},"Pacific/Pohnpei":{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Pacific/Kosrae":{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Atlantic/Faroe":{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},"Europe/Paris":{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},"Europe/London":{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},"Asia/Tbilisi":{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},"America/Cayenne":{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},"Africa/Accra":{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},"Europe/Gibraltar":{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},"America/Godthab":{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},"America/Danmarkshavn":{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},"America/Scoresbysund":{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},"America/Thule":{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},"Europe/Athens":{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},"Atlantic/South_Georgia":{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},"America/Guatemala":{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},"Pacific/Guam":{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},"Africa/Bissau":{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},"America/Guyana":{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},"Asia/Hong_Kong":{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},"America/Tegucigalpa":{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},"America/Port-au-Prince":{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},"Europe/Budapest":{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},"Asia/Jakarta":{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Pontianak":{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Makassar":{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},"Asia/Jayapura":{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},"Europe/Dublin":{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},"Asia/Jerusalem":{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},"Asia/Kolkata":{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},"Indian/Chagos":{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},"Asia/Baghdad":{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},"Asia/Tehran":{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},"Atlantic/Reykjavik":{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},"Europe/Rome":{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},"America/Jamaica":{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},"Asia/Amman":{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},"Asia/Tokyo":{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},"Africa/Nairobi":{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},"Asia/Bishkek":{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},"Pacific/Tarawa":{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},"Pacific/Enderbury":{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},"Pacific/Kiritimati":{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},"Asia/Pyongyang":{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},"Asia/Seoul":{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},"America/Cayman":{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},"Asia/Almaty":{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Qyzylorda":{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Aqtobe":{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Aqtau":{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Oral":{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Beirut":{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},"Asia/Colombo":{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},"Africa/Monrovia":{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},"Europe/Vilnius":{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},"Europe/Luxembourg":{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},"Europe/Riga":{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},"Africa/Tripoli":{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},"Africa/Casablanca":{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},"Europe/Monaco":{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},"Europe/Chisinau":{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},"Pacific/Majuro":{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Pacific/Kwajalein":{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Asia/Rangoon":{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},"Asia/Ulaanbaatar":{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Hovd":{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},"Asia/Choibalsan":{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Macau":{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},"America/Martinique":{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},"Europe/Malta":{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},"Indian/Mauritius":{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},"Indian/Maldives":{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},"America/Mexico_City":{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Cancun":{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},"America/Merida":{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Monterrey":{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Matamoros":{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Mazatlan":{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Chihuahua":{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Ojinaga":{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Hermosillo":{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Tijuana":{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Santa_Isabel":{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Bahia_Banderas":{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"Asia/Kuala_Lumpur":{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Asia/Kuching":{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Africa/Maputo":{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},"Africa/Windhoek":{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},"Pacific/Noumea":{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},"Pacific/Norfolk":{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},"Africa/Lagos":{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},"America/Managua":{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},"Europe/Amsterdam":{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},"Europe/Oslo":{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},"Asia/Kathmandu":{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},"Pacific/Nauru":{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},"Pacific/Niue":{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},"Pacific/Auckland":{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},"Pacific/Chatham":{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},"America/Panama":{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},"America/Lima":{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},"Pacific/Tahiti":{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},"Pacific/Marquesas":{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},"Pacific/Gambier":{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},"Pacific/Port_Moresby":{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},"Pacific/Bougainville":{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},"Asia/Manila":{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},"Asia/Karachi":{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},"Europe/Warsaw":{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},"America/Miquelon":{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},"Pacific/Pitcairn":{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},"America/Puerto_Rico":{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},"Asia/Gaza":{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Asia/Hebron":{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Europe/Lisbon":{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Madeira":{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Azores":{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},"Pacific/Palau":{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},"America/Asuncion":{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},"Asia/Qatar":{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},"Indian/Reunion":{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},"Europe/Bucharest":{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},"Europe/Belgrade":{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},"Europe/Kaliningrad":{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},"Europe/Moscow":{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Simferopol":{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Volgograd":{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Samara":{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},"Asia/Yekaterinburg":{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},"Asia/Omsk":{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novosibirsk":{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novokuznetsk":{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Krasnoyarsk":{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Irkutsk":{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Chita":{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Yakutsk":{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Khandyga":{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Vladivostok":{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Sakhalin":{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Ust-Nera":{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Magadan":{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Srednekolymsk":{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},"Asia/Kamchatka":{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Anadyr":{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Riyadh":{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},"Pacific/Guadalcanal":{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},"Indian/Mahe":{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},"Africa/Khartoum":{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},"Europe/Stockholm":{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},"Asia/Singapore":{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},"America/Paramaribo":{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},"America/El_Salvador":{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},"Asia/Damascus":{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},"America/Grand_Turk":{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},"Africa/Ndjamena":{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},"Indian/Kerguelen":{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},"Asia/Bangkok":{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},"Asia/Dushanbe":{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},"Pacific/Fakaofo":{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},"Asia/Dili":{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},"Asia/Ashgabat":{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},"Africa/Tunis":{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},"Pacific/Tongatapu":{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},"Europe/Istanbul":{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},"America/Port_of_Spain":{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},"Pacific/Funafuti":{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},"Asia/Taipei":{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},"Europe/Kiev":{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Uzhgorod":{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Zaporozhye":{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Pacific/Wake":{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},"America/New_York":{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Detroit":{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Louisville":{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Monticello":{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Indianapolis":{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vincennes":{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Winamac":{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Marengo":{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Petersburg":{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vevay":{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Chicago":{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Tell_City":{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Knox":{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Menominee":{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Center":{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/New_Salem":{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Beulah":{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Denver":{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Boise":{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Phoenix":{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Los_Angeles":{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Metlakatla":{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Anchorage":{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Juneau":{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Sitka":{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Yakutat":{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Nome":{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Adak":{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},"Pacific/Honolulu":{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},"America/Montevideo":{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},"Asia/Samarkand":{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"Asia/Tashkent":{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"America/Caracas":{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},"Asia/Ho_Chi_Minh":{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},"Pacific/Efate":{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},"Pacific/Wallis":{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},"Pacific/Apia":{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},"Africa/Johannesburg":{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}}}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}}angular.module("app.core").directive("msTimezone",e)}(),function(){"use strict";function e(e,t){function n(){a()&&(i.flipped=!i.flipped,t.toggleClass("flipped",i.flipped))}function a(){return angular.isDefined(e.flippable)&&!0===e.flippable}var i=this;i.flipped=!1,i.flip=n}function t(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)})}}}}function n(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}function a(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",t).directive("msWidgetFront",n).directive("msWidgetBack",a)}(),function(){"use strict";function e(){return function(e){var t=Date.now()-new Date(e);return t<36e5?moment(e).fromNow():t<864e5?moment(e).format("HH:mm"):t<6048e5?moment(e).format("dddd"):moment(e).calendar()}}angular.module("app.core").filter("altDate",e)}(),function(){"use strict";function e(e){return function(t){return e.trustAsHtml(t)}}function t(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}function n(){return function(e){return e?e.replace(/ /g,""):""}}function a(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",t).filter("nospace",n).filter("humanizeDoc",a)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||!t)return e;if(0===t.length)return[];for(var n=[],a=0;a<e.length;a++){for(var i=e[a],o=!1,s=0;s<t.length;s++){var r=t[s];if(i.id===r){o=!0;break}}o&&n.push(i)}return n}}angular.module("app.core").filter("filterByIds",e)}(),function(){"use strict";function e(){return function(e,t,n){if(0===e.length||!n||0===n.length)return e;for(var a=[],i=0;i<e.length;i++){for(var o=e[i],s=!1,r=0;r<n.length;r++){var l=n[r];if(o[t].indexOf(l)>-1){s=!0;break}}s&&a.push(o)}return a}}angular.module("app.core").filter("filterByPropIds",e)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||0===t.length)return e;var n=[];return e.forEach(function(e){t.every(function(t){var n=!1;return e.tags.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e)}),n}}function t(){return function(e,t){if(0!==e.length&&0!==t.length){if(e.length<t.length)return[];var n=[];return t.every(function(t){var n=!1;return e.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e),n}}}angular.module("app.core").filter("filterByTags",e).filter("filterSingleByTags",t)}(),function(){"use strict";function e(e,t,n){function a(n,a){var o=n.split("@"),s=o[0],r=o[1],l=a||{};if(!s||!r)return t.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var d=e.defer(),c=i(s);return c?c[r](l,function(e){d.resolve(e)},function(e){d.reject(e)}):(t.error('Resource "'+s+'" is not defined in the api service!'),d.reject('Resource "'+s+'" is not defined in the api service!')),d.promise}function i(e){for(var a=e.split("."),i=n,o=0;o<a.length;o++){if(angular.isUndefined(i[a[o]])){t.error('Resource part "'+a[o]+'" is not defined!'),i=!1;break}i=i[a[o]]}return i||!1}return{resolve:a}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(){function e(e){s=e}function t(){return s}function n(){return r}function a(e,t){angular.isString(e)?angular.isArray(t)?r[e]={url:s+(t[0]||""),paramDefaults:t[1]||[],actions:t[2]||[],options:t[3]||{}}:o.error('"resource" must be an array and it must follow $resource definition'):o.error('"path" must be a string (eg. `dashboard.project`)')}var i=this,o=angular.injector(["ng"]).get("$log"),s="",r=[];i.setBaseUrl=e,i.getBaseUrl=t,i.getApiObject=n,i.register=a,this.$get=["$log","$q","$resource","$rootScope",function(n,i,o,s){function l(e,t){s.$broadcast("msApi::resolveStart");var a=e.split("@"),l=a[0],d=a[1],c=t||{};if(!l||!d)return n.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var m=i.defer(),u=r[l];return u?o(u.url,u.paramDefaults,u.actions,u.options)[d](c,function(e){m.resolve(e),s.$broadcast("msApi::resolveSuccess")},function(e){m.reject(e),s.$broadcast("msApi::resolveError")}):(n.error('Resource "'+l+'" is not defined in the api service!'),m.reject('Resource "'+l+'" is not defined in the api service!')),m.promise}function d(e,t,a,l){s.$broadcast("msApi::requestStart");var d=e.split("@"),c=d[0],m=d[1],u=t||{};if(!c||!m)return n.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var p=i.defer(),g=r[c];return g?o(g.url,g.paramDefaults,g.actions,g.options)[m](u,function(e){s.$broadcast("msApi::requestSuccess"),p.resolve(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)},function(e){s.$broadcast("msApi::requestError"),p.reject(e),angular.isDefined(l)&&angular.isFunction(l)&&l(e)}):(n.error('Resource "'+c+'" is not defined in the api service!'),p.reject('Resource "'+c+'" is not defined in the api service!')),p.promise}return{setBaseUrl:e,getBaseUrl:t,register:a,resolve:l,request:d}}]}angular.module("app.core").provider("msApi",e)}(),function(){"use strict";function e(e){function t(e,t){return t.indexOf(e)>-1}function n(){function t(e){for(var t=0;t<e.length;t++){var n=e[t].string,a=e[t].prop;if(o=e[t].versionSearch||e[t].identity,n){if(-1!==n.indexOf(e[t].subString))return e[t].identity}else if(a)return e[t].identity}}function n(e){var t=e.indexOf(o);if(-1!==t)return parseInt(e.substring(t+o.length+1))}if(r)return r;var a=[{string:e.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:e.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:e.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:e.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:e.opera,identity:"Opera"},{string:e.navigator.vendor,subString:"iCab",identity:"iCab"},{string:e.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:e.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:e.navigator.vendor,subString:"Camino",identity:"Camino"},{string:e.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:e.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:e.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:e.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:e.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],i=[{string:e.navigator.platform,subString:"Win",identity:"Windows"},{string:e.navigator.platform,subString:"Mac",identity:"Mac"},{string:e.navigator.platform,subString:"Linux",identity:"Linux"},{string:e.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:e.navigator.platform,subString:"iPod",identity:"iPod"},{string:e.navigator.platform,subString:"iPad",identity:"iPad"},{string:e.navigator.platform,subString:"Android",identity:"Android"}],o="",s=t(a)||"unknown-browser",l=n(e.navigator.userAgent)||n(e.navigator.appVersion)||"unknown-version",d=t(i)||"unknown-os";return s=s.toLowerCase(),l=s+"-"+l,d=d.toLowerCase(),r={browser:s,version:l,os:d}}function a(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()}function i(){return s.mobile()}function o(e,t){-1===t.indexOf(e)?t.push(e):t.splice(t.indexOf(e),1)}var s=new MobileDetect(e.navigator.userAgent),r=null;return{exists:t,detectBrowser:n,guidGenerator:a,isMobile:i,toggleInArray:o}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,t){function n(e){t.setActiveTheme(e)}function a(){return t.themes.active}function i(){angular.element("body").toggleClass("boxed","boxed"===s.layoutMode)}function o(){e.put("motion.layoutStyle",s.layoutStyle),location.reload()}var s=this;s.themes=t.themes,s.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],s.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],s.layoutMode="wide",s.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",s.setActiveTheme=n,s.getActiveTheme=a,s.updateLayoutMode=i,s.updateLayoutStyle=o}function t(e){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(t){return t.addClass("ms-theme-options"),function(t){function n(){e("motion-theme-options").toggle()}t.toggleOptionsSidenav=n}}}}e.$inject=["$cookies","motionTheming"],t.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",t)}(),function(){"use strict";function e(e,t,n){function a(){var e=angular.copy(n.getRegisteredThemes()),t=angular.copy(n.getRegisteredPalettes());angular.forEach(e,function(e){d[e.name]={},angular.forEach(e.colors,function(n,a){d[e.name][a]={name:n.name,levels:{default:{color:s(t[n.name][n.hues.default].value),contrast1:s(t[n.name][n.hues.default].contrast,1),contrast2:s(t[n.name][n.hues.default].contrast,2),contrast3:s(t[n.name][n.hues.default].contrast,3),contrast4:s(t[n.name][n.hues.default].contrast,4)},hue1:{color:s(t[n.name][n.hues["hue-1"]].value),contrast1:s(t[n.name][n.hues["hue-1"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-1"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-1"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-1"]].contrast,4)},hue2:{color:s(t[n.name][n.hues["hue-2"]].value),contrast1:s(t[n.name][n.hues["hue-2"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-2"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-2"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-2"]].contrast,4)},hue3:{color:s(t[n.name][n.hues["hue-3"]].value),contrast1:s(t[n.name][n.hues["hue-3"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-3"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-3"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-3"]].contrast,4)}}}})}),i(d);var a={};angular.forEach(d,function(e,t){(a={})["@themeName"]=t,angular.forEach(e,function(e,t){angular.forEach(e.levels,function(e,n){angular.forEach(e,function(e,i){a["@"+t+l(n)+l(i)]=e})})}),o(a)})}function i(t){var a=angular.copy(t);angular.forEach(a,function(e){angular.forEach(e,function(t,n){e[n]=t.levels,e[n].color=t.levels.default.color,e[n].contrast1=t.levels.default.contrast1,e[n].contrast2=t.levels.default.contrast2,e[n].contrast3=t.levels.default.contrast3,e[n].contrast4=t.levels.default.contrast4,delete e[n].default})}),n.setThemesList(a);var i=e.get("motion.selectedTheme");i?n.setActiveTheme(i):n.setActiveTheme("default")}function o(e){var t=new RegExp(Object.keys(e).join("|"),"gi"),n='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n    color: @backgroundHue1Contrast1;\n    background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n    color: @backgroundHue2Contrast1;\n    background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n    color: @backgroundHue3Contrast1;\n    background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n    color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n    color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n    color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n    color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n    background-color: @primaryDefaultColor;\n    color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n    color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n    color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n    color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n    background-color: @primaryHue1Color;\n    color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n    color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n    color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n    color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n    background-color: @primaryHue2Color;\n    color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n    color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n    color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n    color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n    background-color: @primaryHue3Color;\n    color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n    color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n    color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n    color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n    color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n    color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n    color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n    color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n    background-color: @accentDefaultColor;\n    color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n    color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n    color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n    color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n    background-color: @accentHue1Color;\n    color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n    color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n    color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n    color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n    background-color: @accentHue2Color;\n    color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n    color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n    color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n    color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n    background-color: @accentHue3Color;\n    color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n    color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n    color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n    color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n    color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n    color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n    color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n    color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n    background-color: @warnDefaultColor;\n    color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n    color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n    color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n    color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n    background-color: @warnHue1Color;\n    color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n    color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n    color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n    color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n    background-color: @warnHue2Color;\n    color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n    color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n    color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n    color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n    background-color: @warnHue3Color;\n    color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n    color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n    color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n    color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n    color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n    color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n    color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n    color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n    background-color: @backgroundDefaultColor;\n    color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n    color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n    color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n    color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n    background-color: @backgroundHue1Color;\n    color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n    color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n    color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n    color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n    background-color: @backgroundHue2Color;\n    color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n    color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n    color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n    color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n    background-color: @backgroundHue3Color;\n    color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n    color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n    color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n    color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n    color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n    color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n    color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n    color: @backgroundHue3Color !important;\n}'.replace(t,function(t){return e[t]}),a=angular.element("head"),i=angular.element('<style type="text/css"></style>');i.html(n),a.append(i)}function s(e,n){var a=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),a&&(e=r(e,a)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void t.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function r(e,t){var n={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};return 255===e[0]&&255===e[1]&&255===e[2]?e[3]=n.white[t]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=n.black[t]),e}function l(e){return e.charAt(0).toUpperCase()+e.slice(1)}var d={};return{generate:a,rgba:s}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";var e=[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}];angular.module("app.core").constant("motionPalettes",e)}(),function(){"use strict";var e={default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}};angular.module("app.core").constant("motionThemes",e)}(),function(){"use strict";function e(e,t,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),e.alwaysWatchTheme(!0),angular.forEach(t,function(t){e.definePalette(t.name,t.options)}),angular.forEach(n,function(t,n){e.theme(n).primaryPalette(t.primary.name,t.primary.hues).accentPalette(t.accent.name,t.accent.hues).warnPalette(t.warn.name,t.warn.hues).backgroundPalette(t.background.name,t.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){function a(){return n.PALETTES}function i(){return n.THEMES}function o(n){if(angular.isUndefined(r.themes.list[n]))return angular.isUndefined(r.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+n+'" does not exist! Falling back to the "default" theme.'),r.themes.active.name="default",r.themes.active.theme=r.themes.list.default,void e.put("motion.selectedTheme",r.themes.active.name));r.themes.active.name=n,r.themes.active.theme=r.themes.list[n],e.put("motion.selectedTheme",n)}function s(e){r.themes.list=e}var r={getRegisteredPalettes:a,getRegisteredThemes:i,setActiveTheme:o,setThemesList:s,themes:{list:{},active:{name:"",theme:{}}}};return r}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){for(var i=[],o=a.getFlatNavigation(),s=n.defer(),r=0;r<o.length;r+=1)o[r].uisref&&i.push(o[r]);return e&&(i=i.filter(function(t){if(angular.lowercase(t.title).search(angular.lowercase(e))>-1)return!0})),t(function(){s.resolve(i)},1e3),s.promise}function o(t){t.uisref&&(t.stateParams?e.go(t.state,t.stateParams):e.go(t.state))}var s=this;s.search=i,s.searchResultClick=o}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,t){function n(){t.post("/api/jira",a.error).then(function(e){a.send=!0,e.data&&(a.code=e.data.id)},function(e){a.send=!1})}var a=this;a.code="",a.send=!1,a.error=e.params,a.sendReport=n}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e){var t={};return t.baseUrl="api/",t.auth=e(t.baseUrl+"auth/local",{},{local:{method:"post",url:t.baseUrl+"auth/local"},google:{method:"post",url:t.baseUrl+"auth/google"}}),t.jira=e(t.baseUrl+"jira"),t.rpc=e(t.baseUrl+"rpc",{},{getVoiceQueues:{method:"get",url:t.baseUrl+"rpc/voice/queues"},getVoiceQueuesChannels:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:t.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:t.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:t.baseUrl+"rpc/agents"},getTelephones:{method:"get",url:t.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:t.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:t.baseUrl+"rpc/campaigns"}}),t.version=e(t.baseUrl+"version",{},{fetch:{method:"get",url:t.baseUrl+"version/fetch"},reset:{method:"get",url:t.baseUrl+"version/reset"},pull:{method:"get",url:t.baseUrl+"version/pull"},restart:{method:"get",url:t.baseUrl+"version/restart"},migrations:{method:"get",url:t.baseUrl+"version/migrations"}}),t.system=e(t.baseUrl+"system"),t.pm2=e(t.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),t.user=e(t.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"users/describe"},bulkCreate:{method:"post",url:t.baseUrl+"users/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"users/destroy_many",isArray:!0},addContacts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/contacts"},changePassword:{isArray:!1,method:"put",url:t.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/avatar"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues_rt"},getRecordings:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/recordings"},login:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/lists"}}),t.voiceChanSpy=e(t.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/chanspy/describe"}}),t.voiceContext=e(t.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/contexts/describe"}}),t.voiceDisposition=e(t.baseUrl+"voice/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dispositions/describe"}}),t.voiceExtension=e(t.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/extensions/describe"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"voice/extensions/:id/applications"}}),t.voiceMusicOnHold=e(t.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mohs/describe"},addSound:{isArray:!1,method:"post",url:t.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:t.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:t.baseUrl+"voice/mohs/:id/sounds"}}),t.voiceQueue=e(t.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/lists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/black_lists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/black_lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/blacklists"}}),t.voiceRecording=e(t.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/download"}}),t.voiceMail=e(t.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/describe"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/:id/messages"}}),t.voiceMailMessage=e(t.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/messages/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/messages/:id/download"}}),t.voiceCallReport=e(t.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/calls/reports/describe"}}),t.voiceDialReport=e(t.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dials/reports/describe"}}),t.voiceAgentReport=e(t.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/agents/reports/describe"}}),t.voiceQueueReport=e(t.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/reports/describe"}}),t.memberReport=e(t.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"members/reports/describe"}}),t.trunk=e(t.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"trunks/describe"}}),t.voiceTransferReport=e(t.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/transfers/reports/describe"}}),t.mailServerOut=e(t.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/out_servers/describe"}}),t.mailAccount=e(t.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/accounts/describe"},getImap:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/dispositions"},sendMail:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/verify"}}),t.mailQueue=e(t.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/users"}}),t.mailInteraction=e(t.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/messages"}}),t.mailMessage=e(t.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/messages/describe"}}),t.mailApplication=e(t.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/applications/describe"}}),t.mailDisposition=e(t.baseUrl+"mail/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/dispositions/describe"}}),t.mailAttachment=e(t.baseUrl+"mail/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/attachments/describe"}}),t.mailSessionReport=e(t.baseUrl+"mail/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/sessions/reports/describe"}}),t.mailReport=e(t.baseUrl+"mail/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/describe"}}),t.openchannelSessionReport=e(t.baseUrl+"openchannel/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/sessions/reports/describe"}}),t.dashboard=e(t.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/describe"},run:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/run"},addItem:{isArray:!1,method:"post",url:t.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/items"}}),t.dashboardItem=e(t.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/items/describe"}}),t.faxAccount=e(t.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/dispositions"}}),t.faxApplication=e(t.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/applications/describe"}}),t.faxDisposition=e(t.baseUrl+"fax/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/dispositions/describe"}}),t.faxAttachment=e(t.baseUrl+"fax/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/attachments/describe"}}),t.faxInteraction=e(t.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/messages"}}),t.faxMessage=e(t.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/messages/describe"}}),t.faxQueue=e(t.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/users"}}),t.faxSessionReport=e(t.baseUrl+"fax/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/sessions/reports/describe"}}),t.smsAccount=e(t.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/dispositions"}}),t.smsApplication=e(t.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/applications/describe"}}),t.smsDisposition=e(t.baseUrl+"sms/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/dispositions/describe"}}),t.smsInteraction=e(t.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/messages"}}),t.smsMessage=e(t.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/messages/describe"}}),t.smsQueue=e(t.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/users"}}),t.openchannelAccount=e(t.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/dispositions"}}),t.openchannelApplication=e(t.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/applications/describe"}}),t.openchannelDisposition=e(t.baseUrl+"openchannel/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/dispositions/describe"}}),t.openchannelInteraction=e(t.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/messages"}}),t.openchannelMessage=e(t.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/messages/describe"}}),t.openchannelQueue=e(t.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/users"}}),t.chatWebsite=e(t.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/websites/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/dispositions"},addProactiveActions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/proactive_actions"},addWebsiteFields:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/fields"},getWebsiteFields:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/fields"}}),t.openchannelReport=e(t.baseUrl+"openchannel/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/describe"}}),t.chatApplication=e(t.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/applications/describe"}}),t.chatDisposition=e(t.baseUrl+"chat/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/dispositions/describe"}}),t.chatInteraction=e(t.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/messages"}}),t.chatMessage=e(t.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/messages/describe"}}),t.chatQueue=e(t.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/users"}}),t.chatEnquiry=e(t.baseUrl+"chat/enquiries/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/enquiries/describe"}}),t.chatProactiveAction=e(t.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/proactive_actions/describe"}}),t.chatVisitor=e(t.baseUrl+"chat/visitors/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/visitors/describe"}}),t.chatWebsiteField=e(t.baseUrl+"chat/website_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/website_fields/describe"}}),t.cmCompany=e(t.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/companies/describe"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/companies/:id/contacts"}}),t.cmContact=e(t.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/contacts/describe"},bulkCreate:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/create_many"}}),t.cmHopper=e(t.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper/describe"},getDialerContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview"},callDialerContact:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview/:id"}}),t.cmHopperBlack=e(t.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_black/describe"}}),t.cmHopperFinal=e(t.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_final/describe"}}),t.cmHopperHistory=e(t.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_history/describe"}}),t.cmCustomField=e(t.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/custom_fields/describe"}}),t.cmList=e(t.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/lists/describe"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:t.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/contacts/csv"},addCustomField:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/users"}}),t.action=e(t.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"actions/describe"}}),t.automation=e(t.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"automations/describe"},addConditions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/actions"}}),t.cannedAnswer=e(t.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"canned_answers/describe"}}),t.condition=e(t.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"conditions/describe"}}),t.interval=e(t.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"intervals/describe"},addInterval:{isArray:!1,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:t.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals/create_many"}}),t.pause=e(t.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"pauses/describe"}}),t.cdr=e(t.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cdr/describe"}}),t.voiceQueuesLog=e(t.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voiceQueuesLog/describe"}}),t.schedule=e(t.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"schedules/describe"}}),t.sound=e(t.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sounds/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"sounds/:id/download"},delete:{isArray:!1,method:"delete",url:t.baseUrl+"sounds/:id"}}),t.tag=e(t.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"tags/describe"}}),t.template=e(t.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"templates/describe"}}),t.trigger=e(t.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"triggers/describe"},addAllCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/actions"}}),t.variable=e(t.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"variables/describe"}}),t.integration=e(t.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/describe"}}),t.integrationReport=e(t.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/reports/describe"}}),t.analyticCustomReport=e(t.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/custom_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/query"}}),t.analyticDefaultReport=e(t.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/default_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/query"}}),t.analyticExtractedReport=e(t.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/extracted_reports/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"analytics/extracted_reports/:id/download"}}),t.analyticMetric=e(t.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/metrics/describe"}}),t.analyticFieldReport=e(t.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/field_reports/describe"},bulkCreate:{method:"post",url:t.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:t.baseUrl+"analytics/field_reports/:id/create_many"}}),t.analyticTreeReport=e(t.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/tree_reports/describe"}}),t.intSalesforceAccount=e(t.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),t.intSalesforceConfiguration=e(t.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),t.intSalesforceField=e(t.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/fields/describe"}}),t.intSugarcrmAccount=e(t.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),t.intSugarcrmConfiguration=e(t.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),t.intSugarcrmField=e(t.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/fields/describe"}}),t.intZendeskAccount=e(t.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),t.intZendeskConfiguration=e(t.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),t.intZendeskField=e(t.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/fields/describe"}}),t.intFreshdeskAccount=e(t.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),t.intFreshdeskConfiguration=e(t.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),t.intFreshdeskField=e(t.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/fields/describe"}}),t.network=e(t.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"networks/describe"}}),t.chatReport=e(t.baseUrl+"chat/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/describe"}}),t.chatSessionReport=e(t.baseUrl+"chat/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/session/reports/describe"}}),t.faxReport=e(t.baseUrl+"fax/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/describe"}}),t.jscriptyInputReport=e(t.baseUrl+"jscripty/inputs/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/inputs/reports/describe"}}),t.jscriptyQuestionReport=e(t.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/questions/reports/describe"}}),t.jscriptySessionReport=e(t.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/sessions/reports/describe"}}),t.smsReport=e(t.baseUrl+"sms/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/describe"}}),t.smsSessionReport=e(t.baseUrl+"sms/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/session/reports/describe"}}),t.squareReport=e(t.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/reports/describe"}}),t.squareReportDetail=e(t.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/details/reports/describe"}}),t.jscriptyProject=e(t.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/projects/describe"}}),t.setting=e(t.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"settings/describe"},addLogo:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo_login"}}),t.squareOdbc=e(t.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/odbc/describe"},test:{isArray:!1,method:"get",url:t.baseUrl+"square/odbc/:id/test"}}),t.squareProject=e(t.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/projects/describe"}}),t.squareRecording=e(t.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"square/recordings/:id/download"}}),t.team=e(t.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"teams/describe"},getQueues:{isArray:!0,method:"get",url:t.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"teams/:id/users"}}),t.license=e(t.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"license/describe"}}),t.campaign=e(t.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"campaigns/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/blacklists"}}),t}e.$inject=["$resource"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,t,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.useSanitizeValueStrategy("sanitize"),t.decorator("taOptions",["$delegate",function(e){return e.toolbar=[["bold","italics","underline","ul","ol","quote","justifyLeft","justifyCenter","justifyRight","html","insertImage","insertLink"]],e.classes={focussed:"focussed",toolbar:"ta-toolbar",toolbarGroup:"ta-group",toolbarButton:"md-button",toolbarButtonActive:"active",disabled:"",textEditor:"form-control",htmlEditor:"form-control"},e}]),t.decorator("taTools",["$delegate",function(e){return e.quote.iconclass="icon-format-quote",e.bold.iconclass="icon-format-bold",e.italics.iconclass="icon-format-italic",e.underline.iconclass="icon-format-underline",e.strikeThrough.iconclass="icon-format-strikethrough",e.ul.iconclass="icon-format-list-bulleted",e.ol.iconclass="icon-format-list-numbers",e.redo.iconclass="icon-redo",e.undo.iconclass="icon-undo",e.clear.iconclass="icon-close-circle-outline",e.justifyLeft.iconclass="icon-format-align-left",e.justifyCenter.iconclass="icon-format-align-center",e.justifyRight.iconclass="icon-format-align-right",e.justifyFull.iconclass="icon-format-align-justify",e.indent.iconclass="icon-format-indent-increase",e.outdent.iconclass="icon-format-indent-decrease",e.html.iconclass="icon-code-tags",e.insertImage.iconclass="icon-file-image-box",e.insertLink.iconclass="icon-link",e.insertVideo.iconclass="icon-filmstrip",e}])}e.$inject=["$translateProvider","$provide","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e){this.themes=e.themes}e.$inject=["motionTheming"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(){return function(e,t,n){var a,i={},o=0;for(a in e)if(o>=n&&(i[a]=e[a]),++o===n+t)break;return i}}function t(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],t=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],n=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[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];return{getMonthName:function(){return e},getMonthNumber:function(){return t},getDaysOfWeek:function(){return n},getDaysOfMonth:function(){return a}}}angular.module("motion").filter("limitObjectFromTo",e).factory("IndexFactory",t)}(),function(){"use strict";function e(e,t,n){n.html5Mode(!0),t.otherwise("/dashboards/general");var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",o={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:o[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:o[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:o[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver",function(e){return e.resolve("setting@get",{id:1})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,t,n){var a=e.$on("$stateChangeStart",function(){e.loadingProgress=!0}),i=e.$on("$stateChangeSuccess",function(){t(function(){e.loadingProgress=!1})});e.state=n,e.$on("$destroy",function(){a(),i()})}e.$inject=["$rootScope","$timeout","$state"],angular.module("motion").run(e)}(),function(){"use strict";function e(e,t){function n(){a=io({query:"id="+t.getCurrentUser().id,transports:["websocket","polling"]})}var a;return{connect:n,on:function(t,i){i=i||angular.noop,a||n(),a.on(t,function(){var t=arguments;e.$apply(function(){i.apply(a,t)})})},emit:function(t,i,o){o=o||angular.noop,a||n(),a.emit(t,i,function(){var t=arguments;e.$apply(function(){o.apply(a,t)})})},removeAllListeners:function(e){a||n(),a.removeAllListeners(e)},disconnect:function(){a||n(),a.disconnect()}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){i.isLoggedIn()&&e.go("app.dashboards.general")}function s(){return i.login(l.form).then(function(){return e.go("app.dashboards.general")}).catch(function(e){l.message=e.message})}function r(e){t.location.href="/api/auth/"+e}var l=this;l.login=s,l.loginOauth=r,l.$onInit=o}e.$inject=["$state","$window","$cookies","api","Auth"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticExtractedReport.save(p.extractedReport).$promise.then(function(e){p.extractedReports.unshift(e),i.success({title:"ExtractedReport properly created",msg:p.extractedReport.name?p.extractedReport.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.analyticExtractedReport.update({id:p.extractedReport.id},p.extractedReport).$promise.then(function(e){var t=_.find(p.extractedReports,{id:e.id});t&&_.merge(t,e),i.success({title:"ExtractedReport properly saved!",msg:p.extractedReport.name?p.extractedReport.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.analyticExtractedReport.delete({id:p.extractedReport.id}).$promise.then(function(){_.remove(p.extractedReports,{id:p.extractedReport.id}),i.success({title:"ExtractedReport properly deleted!",msg:(p.extractedReport.name||"extractedReport")+" has been deleted!"}),u(p.extractedReport)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="ANALYTICS.EDIT_EXTRACTEDREPORT",p.extractedReport=angular.copy(s),p.extractedReports=o,p.newExtractedReport=!1,p.extractedReport||(p.extractedReport={},p.title="ANALYTICS.NEW_EXTRACTEDREPORT",p.newExtractedReport=!0),p.addNewExtractedReport=l,p.saveExtractedReport=d,p.deleteExtractedReport=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","extractedReports","extractedReport","api"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:C.extractedReports.rows}})}function u(e,n){return l.analyticExtractedReport.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/analytics/extracted_reports/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the extractedReport?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.extractedReports=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.analyticExtractedReport.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:t,extractedReports:C.extractedReports.rows}})}function b(e){l.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(C.extractedReports.rows,{id:e.id}),C.extractedReports.count-=1,C.extractedReports.rows.length||C.getExtractedReports(),c.success({title:"ExtractedReport deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedExtractedReports);return C.selectedExtractedReports=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+C.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedExtractedReports.forEach(function(e){b(e)}),C.selectedExtractedReports=[]})}function y(){C.selectedExtractedReports=[]}function A(){C.selectedExtractedReports=C.extractedReports.rows}var C=this;C.extractedReports=r||{count:0,rows:[]},C.table="extractedReports",C.listOrder="",C.listOrderAsc=null,C.selectedExtractedReports=[],C.query={fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.downloadfile=u,C.deleteconfirm=p,C.success=g,C.getExtractedReports=h,C.createOrEditExtractedReport=v,C.deleteExtractedReport=b,C.exportSelectedExtractedReports=f,C.deleteSelectedExtractedReports=E,C.deselectExtractedReports=y,C.selectAllExtractedReports=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","extractedReports","api","msUtils","toasty"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticMetric.save(p.metric).$promise.then(function(e){p.metrics.unshift(e),i.success({title:"Metric properly created",msg:p.metric.name?p.metric.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.analyticMetric.update({id:p.metric.id},p.metric).$promise.then(function(e){var t=_.find(p.metrics,{id:e.id});t&&_.merge(t,e),i.success({title:"Metric properly saved!",msg:p.metric.name?p.metric.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.analyticMetric.delete({id:p.metric.id}).$promise.then(function(){_.remove(p.metrics,{id:p.metric.id}),i.success({title:"Metric properly deleted!",msg:(p.metric.name||"metric")+" has been deleted!"}),u(p.metric)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="ANALYTICS.EDIT_METRIC",p.metric=angular.copy(s),p.metrics=o,p.newMetric=!1,p.metric||(p.metric={table:"report_agent"},p.title="ANALYTICS.NEW_METRIC",p.newMetric=!0),p.addNewMetric=l,p.saveMetric=d,p.deleteMetric=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","metrics","metric","api"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{metric:e,metrics:A.metrics.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the metric?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.metrics=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.analyticMetric.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:t,metrics:A.metrics.rows}})}function v(e){l.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(A.metrics.rows,{id:e.id}),A.metrics.count-=1,A.metrics.rows.length||A.getMetrics(),c.success({title:"Metric deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticMetric",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMetrics);return A.selectedMetrics=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+A.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMetrics.forEach(function(e){v(e)}),A.selectedMetrics=[]})}function E(){A.selectedMetrics=[]}function y(){A.selectedMetrics=A.metrics.rows}var A=this;A.metrics=r||{count:0,rows:[]},A.table="metrics",A.listOrder="",A.listOrderAsc=null,A.selectedMetrics=[],A.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},A.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Rooms",value:"'chat_rooms'"},{option:"Chat Session Report",value:"'report_chat_session'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Rooms",value:"'fax_rooms'"},{option:"Fax Session Report",value:"'report_fax_session'"},{option:"Integration Report",value:"'report_integration'"},{option:"Mail Messages",value:"'mail_messages'"},{option:"Mail Rooms",value:"'mail_rooms'"},{option:"Mail Session Report",value:"'report_mail_session'"},{option:"Member Report",value:"'report_member'"},{option:"Open Channel Messages",value:"'openchannel_messages'"},{option:"Open Channel Rooms",value:"'openchannel_rooms'"},{option:"Open Channel Session Report",value:"'report_openchannel_session'"},{option:"Queue Report",value:"'report_queue'"},{option:"Sms Messages",value:"'sms_messages'"},{option:"Sms Rooms",value:"'sms_rooms'"},{option:"Sms Session Report",value:"'report_sms_session'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getMetrics=g,A.createOrEditMetric=h,A.deleteMetric=v,A.exportSelectedMetrics=b,A.deleteSelectedMetrics=f,A.deselectMetrics=E,A.selectAllMetrics=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","metrics","api","msUtils","toasty"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){c.errors=[];var e;i.analyticCustomReport.save({name:c.report.name,description:c.report.description,table:c.report.table,conditions:c.report.conditions,parent:c.currentNode.id}).$promise.then(function(t){e=t,n.success({title:"Report properly copied!",msg:c.report.name?c.report.name+" has been copied!":""});var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=c.report.id,i.analyticFieldReport.get(a).$promise}).then(function(t){var t=_.map(t.rows,function(t){return _.extend({},t,{CustomReportId:e.id})});return i.analyticFieldReport.bulkCreate(t).$promise}).then(function(){n.success({title:"Fields copied!",msg:"Fields has been copied!"}),d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(e,t){c.currentNode=t.node}function d(){t.hide()}var c=this;c.errors=[],c.report=angular.copy(a),c.report.name+="-copy",c.treeCustomData=s,c.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},c.treeCustomEvents={select_node:l},c.copyReport=r,c.closeDialog=d}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],o[s].save(u.report).$promise.then(function(e){u.reports.unshift(e),n.success({title:"Report properly created",msg:u.report.name?u.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var t=0;t<e.data.errors.length;t++)n.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){u.errors=[],o[s].update({id:u.report.id},u.report).$promise.then(function(e){var t=_.find(u.reports,{id:e.id});t&&_.merge(t,e),n.success({title:"Report properly saved!",msg:u.report.name?u.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var t=0;t<e.data.errors.length;t++)n.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){u.errors=[];var e=t.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);t.show(e).then(function(){o[s].delete({id:u.report.id}).$promise.then(function(){_.remove(u.reports,{id:u.report.id}),n.success({title:"Report properly deleted!",msg:u.report.name?u.report.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})}function m(){t.hide()}var u=this;u.errors=[],u.title="ANALYTICS.EDIT_REPORT",u.report=angular.copy(i),u.reports=a,u.newReport=!1,u.report||(u.report={name:"",table:"report_agent",description:"",parent:r.id},u.title="ANALYTICS.NEW_REPORT",u.newReport=!0),u.addNewReport=l,u.saveReport=d,u.deleteReport=c,u.closeDialog=m}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){d.report=e,d.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},t.getColumns(d.report.table).then(function(e){d.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){e.unshift({condition:"=",field:"",value:""})}function s(e){e.push({group:{operator:"AND",rules:[]}})}function r(t,n,a){var i=e.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(a).ok("OK").cancel("CANCEL");e.show(i).then(function(){t.splice(n,1)},function(){console.log("CANCEL")})}function l(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}var d=this;d.report={},d.conditions=a.getConditions,d.init=i,d.addCondition=o,d.addGroup=s,d.deleteConfirm=r,d.isValueByCondition=l}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(e){var t={report_agent:"voiceAgentReport",report_call:"voiceCallReport",chat_messages:"chatMessage",chat_rooms:"chatInteraction",report_chat_session:"chatSessionReport",cm_contacts:"cmContact",report_square:"squareReport",report_square_details:"squareReportDetail",fax_messages:"faxMessage",fax_rooms:"faxInteraction",report_fax_session:"faxSessionReport",report_integration:"integrationReport",mail_messages:"mailMessage",mail_rooms:"mailInteraction",report_mail_session:"mailSessionReport",report_member:"memberReport",openchannel_messages:"openchannelMessage",openchannel_rooms:"openchannelInteraction",report_openchannel_session:"openchannelSessionReport",report_queue:"voiceQueueReport",sms_messages:"smsMessage",sms_rooms:"smsInteraction",report_sms_session:"smsSessionReport",users:"user",voice_recordings:"voiceRecording",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory"};return{getColumns:function(n){return e[t[n]].describe().$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){g.errors=[],g.reportField.custom="custom"===g.reportField.type,g.reportField.MetricId="metric"===g.reportField.type?g.reportField.MetricId:null,g.reportField.CustomReportId=g.report.id,d.analyticFieldReport.save(g.reportField).$promise.then(function(e){g.reportFields.push(e),n.success({title:"Report field properly created",msg:g.reportField.field?g.reportField.field+" has been created!":g.reportField.type+" has been created!"}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})}function m(){g.errors=[],g.reportField.custom="custom"===g.reportField.type,g.reportField.MetricId="metric"===g.reportField.type?g.reportField.MetricId:null,d.analyticFieldReport.update({id:g.reportField.id},g.reportField).$promise.then(function(e){var t=_.find(g.reportFields,{id:e.id});t&&_.merge(t,e),n.success({title:"Report Field properly saved!",msg:g.reportField.field?g.reportField.field+" has been saved!":""}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})}function u(e){g.errors=[];var a=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(a).then(function(){d.analyticFieldReport.delete({id:g.reportField.id}).$promise.then(function(){_.remove(g.reportFields,{id:g.reportField.id}),n.success({title:"Report Field properly deleted!",msg:g.reportField.field?g.reportField.field+" has been deleted!":""}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})}function p(){t.hide()}var g=this;g.errors=[],g.title="Edit Report Field",g.report=a,g.reportField=angular.copy(o),g.reportFields=i,g.metrics=s,g.columns=r,g.sqlUtil=l,g.newReportField=!1,g.reportField?g.reportField.type=g.reportField.custom?"custom":g.reportField.MetricId?"metric":"column":(g.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},g.title="New Report Field",g.newReportField=!0),g.addNewReportField=c,g.saveReportField=m,g.deleteReportField=u,g.closeDialog=p}e.$inject=["$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e){E.report=e,E.query.CustomReportId=E.report.id,r.getColumns(E.report.table).then(function(e){return E.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"]),s.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){E.metrics=e.rows}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),E.getReportFields()}function m(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){E.reportFields=e||{count:0,rows:[]}}function p(){E.promise=s.analyticFieldReport.get(E.query,u).$promise}function g(e,t){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:E.report,reportField:t,reportFields:E.reportFields.rows,metrics:E.metrics,columns:E.columns}})}function h(e){s.analyticFieldReport.delete({id:e.id}).$promise.then(function(){E.selectedReportFields=[],_.remove(E.reportFields.rows,{id:e.id}),E.reportFields.count-=1,E.reportFields.rows.length||E.getReportFields(),o.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+E.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){E.selectedReportFields.forEach(function(e){h(e)}),E.selectedReportFields=[]})}function b(e){var t=_.find(E.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")}function f(e){var t=_.find(E.metrics,{id:e});return t?t.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")}var E=this;E.report={},E.reportFields={count:0,rows:[]},E.functions=_.keyBy(l.getFunctions,"value"),E.formats=_.keyBy(l.getFormats,"value"),E.groupBy=_.keyBy(l.getGroupBy,"value"),E.orderBy=_.keyBy(l.getOrderBy,"value"),E.selectedReportFields=[],E.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},E.sortableTable={animation:100,onSort:function(e){s.analyticFieldReport.addFields({id:E.report.id},e.models).$promise.then(function(e){E.reportFields.rows=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},E.init=c,E.deleteConfirm=m,E.success=u,E.getReportFields=p,E.createOrEditReportField=g,E.deleteReportField=h,E.deleteSelectedReportFields=v,E.getMetricName=b,E.getMetricValue=f;var y=!0;t.$watch("vm_rf.query.filter",function(e,t){y?n(function(){y=!1}):E.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";function e(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}}angular.module("app.analytics").factory("sqlUtil",e)}(),function(){"use strict";function e(e,t,n,a){function i(){e.go("app.analytics.reports")}function o(){l.report.conditions=angular.toJson(l.report.condition),n.analyticCustomReport.update({id:l.report.id},l.report).$promise.then(function(){t.success({title:"Report updated!",msg:l.report.name?l.report.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(){l.columns=[],l.rows=[],l.error=!1,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:l.report.id}).$promise.then(function(e){return l.columns=e?e.rows:[],n.analyticCustomReport.preview({id:l.report.id}).$promise}).then(function(e){l.rows=e}).catch(function(e){console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}function r(){return l.queryResult="Loading...",n.analyticCustomReport.query({id:l.report.id}).$promise.then(function(e){l.queryResult=e.sql}).catch(function(e){l.queryResult="",console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}var l=this;l.report=a||{},l.selectedTab=e.params.tab||0,l.gotoReports=i,l.saveReport=o,l.previewReport=s,l.queryReport=r}e.$inject=["$state","toasty","api","report"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){t.hide()}var r=this;r.errors=[],r.report=angular.copy(a),r.closeDialog=s,function(){r.columns=[],r.rows=[],r.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(e).$promise.then(function(e){return r.columns=e?e.rows:[],i[o].preview({id:r.report.id}).$promise}).then(function(e){r.rows=e}).catch(function(e){console.log(e),r.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(r.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,t){i.go("app.analytics.reports.edit",{id:e.id})}function m(e,t){a.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName,treeCustomData:N.treeCustomInstance.jstree(!0).get_json("#",{flat:!0})}}).finally(function(){N.treeCustomInstance.jstree(!0).refresh()})}function u(e,t){a.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function p(e,t){a.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function g(e,t){var n;r.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(t){n=_.keyBy(t.rows,"id");var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===N.apiName?"CustomReportId":"DefaultReportId"]=e.id,r.analyticFieldReport.get(a).$promise}).then(function(t){for(var a=0;a<t.rows.length;a+=1)t.rows[a].MetricId&&(t.rows[a].field=n[t.rows[a].MetricId].metric,t.rows[a].custom=!0),delete t.rows[a].MetricId;var i=o.document.createElement("a");i.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:e.name,description:e.description,table:e.table,conditions:e.conditions,fields:t.rows})),i.download=e.name+".json",i.target="_self",i.click(),d.success({title:"Report downloaded!",msg:e.name?e.name+" has been downloaded!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(e,t){var n=a.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function v(e){N.reports=e||{count:0,rows:[]}}function b(){N.query.offset=(N.query.page-1)*N.query.limit,N.apiName&&(N.promise=r[N.apiName].get(N.query,v).$promise)}function f(e,t){a.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:t,reports:N.reports.rows,apiName:N.apiName,currentNode:N.currentNode}})}function E(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),r.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,parent:N.currentNode.id}).$promise.then(function(e){N.reports.rows.unshift(e),d.success({title:"Report saved!",msg:e.name?e.name+" has been saved!":""});var n=_.map(t.fields,function(t){return _.extend({},t,{CustomReportId:e.id})});return r.analyticFieldReport.bulkCreate(n).$promise}).then(function(e){d.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),d.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else d.error({title:"Format Error",msg:"Please use only json files"})}function y(e){N.apiName&&r[N.apiName].delete({id:e.id}).$promise.then(function(){_.remove(N.reports.rows,{id:e.id}),N.reports.count-=1,N.reports.rows.length||N.getReports(),d.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=_.clone(N.selectedReports);return N.selectedReports=[],e}function C(e){var t=a.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+N.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){N.selectedReports.forEach(function(e){y(e)}),N.selectedReports=[]})}function x(){N.selectedReports=[]}function T(){N.selectedReports=N.reports.rows}function S(e,t){N.treeDefaultInstance.jstree(!0).deselect_all(),N.treeDefaultInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!0,N.apiName="analyticCustomReport",N.query.parent=t.node.id,b()}function O(e,t){N.treeCustomInstance.jstree(!0).deselect_all(),N.treeCustomInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!1,N.apiName="analyticDefaultReport",N.query.parent=t.node.id,b()}function w(e,t){r.analyticTreeReport.update({id:2,tree:angular.toJson(N.treeCustomInstance.jstree(!0).get_json("#",{flat:!0}))}).$promise.then(function(){d.success({title:"Node Updated",msg:t.node.text?t.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function R(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(e){return{create:{label:s.instant("ANALYTICS.CREATE"),action:function(){e=N.treeCustomInstance.jstree(!0).create_node(e),N.treeCustomInstance.jstree(!0).edit(e)}},rename:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.RENAME"),action:function(){N.treeCustomInstance.jstree(!0).edit(e)}},remove:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.REMOVE"),action:function(){var t=a.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(e.text?e.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");a.show(t).then(function(){N.treeCustomInstance.jstree(!0).delete_node(e)})}}}}}}}function I(e){return e?{create_node:w,rename_node:w,move_node:w,delete_node:w,select_node:S}:{select_node:O}}var N=this;N.reports={count:0,rows:[]},N.selectedReports=[],N.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions",limit:10,page:1,sort:"-updatedAt"},N.apiName=null,N.currentPath="",N.customTree=!0,N.editstate=c,N.copydialog=m,N.previewdialog=u,N.rundialog=p,N.downloadfile=g,N.deleteconfirm=h,N.success=v,N.getReports=b,N.createOrEditReport=f,N.importReport=E,N.deleteReport=y,N.exportSelectedReports=A,N.deleteSelectedReports=C,N.deselectReports=x,N.selectAllReports=T,N.treeDefaultData=l.rows[0]?angular.fromJson(l.rows[0].tree):[],N.treeCustomData=l.rows[1]?angular.fromJson(l.rows[1].tree):[],N.treeDefaultConfig=R(!1),N.treeCustomConfig=R(!0),N.treeDefaultEvents=I(!1),N.treeCustomEvents=I(!0);var D=!0,L=1;e.$watch("vm.query.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.query.page),e!==n&&(N.query.page=1),e||(N.query.page=L),N.getReports())}),e.$watch("vm.search",function(e,t){N.treeDefaultInstance&&N.treeDefaultInstance.jstree(!0).search(e),N.treeCustomInstance&&N.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","api","treeReports","toasty"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){d.export={id:d.report.id,name:d.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"csv"}}function r(){d.errors=[],i[o].run(_.merge(d.export,{startDate:moment(d.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(d.export.endDate).format("YYYY-MM-DD HH:mm:ss")})).$promise.then(function(e){n.success({title:"Report properly run!",msg:d.report.name?d.report.name+" has been run!":""}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(){t.hide()}var d=this;d.errors=[],d.report=angular.copy(a),d.export={},d.runReport=r,d.closeDialog=l,d.refreshDate=s,s()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareOdbc.save(p.odbc).$promise.then(function(e){p.odbcs.unshift(e),i.success({title:"Odbc properly created",msg:p.odbc.name?p.odbc.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.squareOdbc.update({id:p.odbc.id},p.odbc).$promise.then(function(e){var t=_.find(p.odbcs,{id:e.id});t&&_.merge(t,e),i.success({title:"Odbc properly saved!",msg:p.odbc.name?p.odbc.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.squareOdbc.delete({id:p.odbc.id}).$promise.then(function(){_.remove(p.odbcs,{id:p.odbc.id}),i.success({title:"Odbc properly deleted!",msg:(p.odbc.name||"odbc")+" has been deleted!"}),u(p.odbc)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CALLYSQUARE.EDIT_ODBC",p.odbc=angular.copy(s),p.odbcs=o,p.newOdbc=!1,p.odbc||(p.odbc={},p.title="CALLYSQUARE.NEW_ODBC",p.newOdbc=!0),p.addNewOdbc=l,p.saveOdbc=d,p.deleteOdbc=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","odbcs","odbc","api"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{odbc:e,odbcs:C.odbcs.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the odbc?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function p(e,t){return l.squareOdbc.test({id:e.id}).$promise.then(function(){c.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){C.odbcs=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.squareOdbc.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:t,odbcs:C.odbcs.rows}})}function b(e){l.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(C.odbcs.rows,{id:e.id}),C.odbcs.count-=1,C.odbcs.rows.length||C.getODBC(),c.success({title:"Odbc deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareOdbc",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedODBC);return C.selectedODBC=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+C.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedODBC.forEach(function(e){b(e)}),C.selectedODBC=[]})}function y(){C.selectedODBC=[]}function A(){C.selectedODBC=C.odbcs.rows}var C=this;C.odbcs=r||{count:0,rows:[]},C.table="odbcs",C.listOrder="",C.listOrderAsc=null,C.selectedODBC=[],C.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.deleteconfirm=u,C.testtestOdbc=p,C.success=g,C.getODBC=h,C.createOrEditOdbc=v,C.deleteOdbc=b,C.exportSelectedODBC=f,C.deleteSelectedODBC=E,C.deselectODBC=y,C.selectAllODBC=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","odbcs","api","msUtils","toasty"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],i.squareProject.save(u.project).$promise.then(function(e){u.projects.unshift(e),t.success({title:"Project properly created",msg:u.project.name?u.project.name+" has been created!":""}),m(e),u.openFromEditor&&(u.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):r.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){u.errors=[],i.squareProject.update({id:u.project.id},u.project).$promise.then(function(e){var n=_.find(u.projects,{id:e.id});n&&_.merge(n,e),t.success({title:"Project properly saved!",msg:u.project.name?u.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){u.errors=[];var n=e.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);e.show(n).then(function(){i.squareProject.delete({id:u.project.id}).$promise.then(function(){_.remove(u.projects,{id:u.project.id}),t.success({title:"Project properly deleted!",msg:u.project.name?u.project.name+" has been deleted!":""}),m(u.project)}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})}function m(t){e.hide(t)}var u=this;u.errors=[],u.title="CALLYSQUARE.EDIT_PROJECT",u.project=angular.copy(a),u.newWindow=!0,u.projects=n,u.newProject=!1,u.openFromEditor=o,u.project||(u.project={name:"",description:""},u.title="CALLYSQUARE.NEW_PROJECT",u.newProject=!0),u.addNewProject=l,u.saveProject=d,u.deleteProject=c,u.closeDialog=m}e.$inject=["$mdDialog","toasty","projects","project","api","openFromEditor","$window","$state"],angular.module("app.callysquare").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E){function y(e,t,n,a){return _.map(e,function(e){return{value:e[t],option:e[n],group:a?e[a]:void 0}})}function A(t){t&&E(C.attributes),e.hide()}var C=this,x={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"]},T={queue:["file_id"],database:["variable_id"]};C.cellName=f.tagName,C.attributes=_.map(f.attributes,function(e){return{name:e.name,value:e.value,defaultValue:T[C.cellName]&&_.includes(T[C.cellName],e.name),required:x[C.cellName]&&_.includes(x[C.cellName],e.name)}}),C.values={sip_id:y(s,"id","fullname","role"),trunk_name:y(r,"name","name"),trunk_id:y(r,"id","name"),queue_id:y(l,"id","name"),file_id:y(d,"id","name"),variable_id:y(c,"id","name"),odbc_id:y(m,"id","name"),project_id:y(u,"id","name"),context:y(p,"id","name"),interval_id:function(e,t,n,a){var i=_.filter(e,function(e){return null===e[a]}),o=[];return _.forEach(i,function(i){o.push({value:i[t],option:i[n]});var s=_.filter(e,function(e){return e[a]===i.id});_.forEach(s,function(e){o.push({value:e[t],option:" - "+e[n]})})}),o}(g,"id","name","IntervalId"),account_id:y(h,"id","name"),template_id:y(v,"id","name"),list_id:y(b,"id","name"),answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingformat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gms"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:n,ispeech_asr_language:a,ispeech_tts_language:i,google_tts_language:o},C.closeDialog=A,C.getMap=y}e.$inject=["$mdDialog","toasty","ispeechAsrModel","ispeechAsrLanguage","ispeechTtsLanguage","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";function e(){return{require:"ngModel",link:function(e,t,n,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}}angular.module("app.callysquare").directive("stringToNumber",e)}(),function(){"use strict";function e(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}function t(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}function n(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}function a(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}angular.module("app.callysquare").factory("ispeechAsrModel",a).factory("ispeechAsrLanguage",n).factory("ispeechTtsLanguage",t).factory("googleTtsLanguage",e)}(),function(){"use strict";function e(e,t,n,a){function i(t){t?(a(o.project.preproduction),e.hide(o.project.preproduction)):e.hide()}var o=this;o.project={preproduction:n},o.closeDialog=i}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(e,t){function n(e){if(i.errors=[],"text/xml"!==e.file.type&&i.errors.push({message:"The format "+e.file.type+" is not supported!"}),e.file.size>5242880&&i.errors.push({message:"The file is too big. Max 5MB files are supported!"}),!i.errors.length){var t=new FileReader;t.onload=function(e){a(e.target.result)},t.readAsText(e.file)}}function a(n){n?(t(n),e.hide(n)):e.hide()}var i=this;i.errors=[],i.ngFlowOptions={chunkSize:5242880,maxChunkRetries:1,singleFile:!0,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},i.ngFlow={flow:{}},i.dropping=!1,i.closeDialog=a,i.fileAdded=n}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],a.squareProject.update({id:s.project.id},{notes:s.project.notes,description:s.project.description}).$promise.then(function(n){t.success({title:"Project updated!",msg:s.project.name?s.project.name+" has been updated!":""}),e.hide(n)}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}function o(){e.hide()}var s=this;s.project=_.clone(n),s.closeDialog=o,s.save=i}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){s.errors=[],t?(e.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):e.hide()}var s=this;s.projects=n,s.id="",s.newWindow=!0,s.closeDialog=o}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){delete d.project.id,i.squareProject.save(d.project).$promise.then(function(n){t.success({title:"Project properly created",msg:d.project.name?d.project.name+" has been created!":""}),e.hide(n),d.newWindow?o.open("/callysquare/projects/"+n.id,"_blank"):s.go("app.callysquare.projects.edit",{id:n.id})}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}function l(){e.hide()}var d=this;d.project=angular.copy(n),d.project.name+="_new",d.project.preproduction=a,d.newWindow=!0,d.closeDialog=l,d.save=r}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f){function E(){new EditorUi(N,new Editor,document.getElementById("geEditor")).openString(N.project.preproduction,N.project.name,N.project)}function y(e,a){n.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:s.rows||[],trunks:r.rows||[],queues:l.rows||[],sounds:d.rows||[],variables:c.rows||[],databases:m.rows||[],contexts:u.rows||[],projects:p.rows||[],intervals:g.rows||[],mailAccounts:h.rows||[],templates:v.rows||[],lists:b.rows||[],cell:e,saveCallback:a}})}function A(e){n.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:p.rows,openFromEditor:!0}})}function C(){n.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:p.rows||[]}})}function x(e){n.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:N.project,currentXML:e}}).then(function(e){e&&p.rows.push(e)})}function T(e){n.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:e,variables:c.rows}})}function S(e){n.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:N.project}}).then(function(e){e&&_.merge(N.project,e)})}function O(e,a){n.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:a}}).then(function(e){e&&(N.project.preproduction=e)})}function w(e){n.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(N.project.preproduction=e)})}function R(e,t){var n={preproduction:e};t&&(n.production=e),i.squareProject.update({id:N.project.id},n).$promise.then(function(e){a.success({title:"Project "+(t?"published":"saved")+"!",msg:N.project.name?N.project.name+" has been "+(t?"published":"saved")+"!":""}),N.project.preproduction=e.preproduction}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function I(){e.go("app.callysquare.projects")}var N=this;N.project=o||{},N.saveOrPublishProject=R,N.$onInit=E,N.openDialog=y,N.newProject=A,N.openProject=C,N.saveProjectAs=x,N.newVariable=T,N.updateInfo=S,N.editXML=O,N.importXML=w,N.gotoProjects=I}e.$inject=["$state","$document","$mdDialog","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","$window"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,n){t.go("app.callysquare.projects.edit",{id:e.id})}function m(e,t){var n=s.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){y.projects=e||{count:0,rows:[]}}function p(){y.query.offset=y.query.page-1,y.promise=i.squareProject.get(y.query,u).$promise}function g(e,t){s.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:t,projects:y.projects.rows,openFromEditor:null}})}function h(e){i.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(y.projects.rows,{id:e.id}),y.projects.count-=1,y.projects.rows.length||y.getProjects(),d.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){var e=_.clone(y.selectedProjects);return y.selectedProjects=[],e}function b(e){var t=s.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+y.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).then(function(){y.selectedProjects.forEach(function(e){h(e)}),y.selectedProjects=[]})}function f(){y.selectedProjects=[]}function E(){y.selectedProjects=y.projects.rows}var y=this;y.projects=a||{count:0,rows:[]},y.table="projects",y.listOrder="",y.listOrderAsc=null,y.selectedProjects=[],y.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},y.editstate=c,y.deleteconfirm=m,y.success=u,y.getProjects=p,y.createOrEditProject=g,y.deleteProject=h,y.exportSelectedProjects=v,y.deleteSelectedProjects=b,y.deselectProjects=f,y.selectAllProjects=E;var A=!0,C=1;e.$watch("vm.query.filter",function(e,t){A?l(function(){A=!1}):(t||(C=y.query.page),e!==t&&(y.query.page=1),e||(y.query.page=C),y.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","api","msUtils","$mdDialog","$document","$timeout","toasty"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareRecording.save(p.squareRecording).$promise.then(function(e){p.squareRecordings.unshift(e),i.success({title:"SquareRecording properly created",msg:p.squareRecording.name?p.squareRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.squareRecording.update({id:p.squareRecording.id},p.squareRecording).$promise.then(function(e){var t=_.find(p.squareRecordings,{id:e.id});t&&_.merge(t,e),i.success({title:"SquareRecording properly saved!",msg:p.squareRecording.name?p.squareRecording.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.squareRecording.delete({id:p.squareRecording.id}).$promise.then(function(){_.remove(p.squareRecordings,{id:p.squareRecording.id}),i.success({title:"SquareRecording properly deleted!",msg:(p.squareRecording.name||"squareRecording")+" has been deleted!"}),u(p.squareRecording)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CALLYSQUARE.EDIT_SQUARERECORDING",p.squareRecording=angular.copy(s),p.squareRecordings=o,p.newSquareRecording=!1,p.squareRecording||(p.squareRecording={},p.title="CALLYSQUARE.NEW_SQUARERECORDING",p.newSquareRecording=!0),p.addNewSquareRecording=l,p.saveSquareRecording=d,p.deleteSquareRecording=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","squareRecordings","squareRecording","api"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,n){return l.squareRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/square/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the squareRecording?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.squareRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.squareRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:t,squareRecordings:A.squareRecordings.rows}})}function v(e){l.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.squareRecordings.rows,{id:e.id}),A.squareRecordings.count-=1,A.squareRecordings.rows.length||A.getSquareRecordings(),c.success({title:"SquareRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSquareRecordings);return A.selectedSquareRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+A.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSquareRecordings.forEach(function(e){v(e)}),A.selectedSquareRecordings=[]})}function E(){A.selectedSquareRecordings=[]}function y(){A.selectedSquareRecordings=A.squareRecordings.rows}var A=this;A.squareRecordings=r||{count:0,rows:[]},A.table="squareRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedSquareRecordings=[],A.query={fields:"createdAt,updatedAt,id,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getSquareRecordings=g,A.createOrEditSquareRecording=h,A.deleteSquareRecording=v,A.exportSelectedSquareRecordings=b,A.deleteSelectedSquareRecordings=f,A.deselectSquareRecordings=E,A.selectAllSquareRecordings=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","squareRecordings","api","msUtils","toasty"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatQueue?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:A.chatQueues.rows}})}function v(e){l.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.chatQueues.rows,{id:e.id}),A.chatQueues.count-=1,A.chatQueues.rows.length||A.getChatQueues(),c.success({title:"ChatQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChatQueues);return A.selectedChatQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+A.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatQueues.forEach(function(e){v(e)}),A.selectedChatQueues=[]})}function E(){A.selectedChatQueues=[]}function y(){A.selectedChatQueues=A.chatQueues.rows}var A=this;A.chatQueues=r||{count:0,rows:[]},A.table="chatQueues",A.listOrder="",A.listOrderAsc=null,A.selectedChatQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"Round Robin Memory",value:"'roundrobun'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatQueues=g,A.createOrEditChatQueue=h,A.deleteChatQueue=v,A.exportSelectedChatQueues=b,A.deleteSelectedChatQueues=f,A.deselectChatQueues=E,A.selectAllChatQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatQueues","api","msUtils","toasty"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatQueue.save(p.chatQueue).$promise.then(function(e){p.chatQueues.unshift(e),i.success({title:"ChatQueue properly created",msg:p.chatQueue.name?p.chatQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatQueue.update({id:p.chatQueue.id},p.chatQueue).$promise.then(function(e){var t=_.find(p.chatQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatQueue properly saved!",msg:p.chatQueue.name?p.chatQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatQueue.delete({id:p.chatQueue.id}).$promise.then(function(){_.remove(p.chatQueues,{id:p.chatQueue.id}),i.success({title:"ChatQueue properly deleted!",msg:(p.chatQueue.name||"chatQueue")+" has been deleted!"}),u(p.chatQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATQUEUE",p.chatQueue=angular.copy(s),p.chatQueues=o,p.newChatQueue=!1,p.chatQueue||(p.chatQueue={strategy:"beepall"},p.title="CHAT.NEW_CHATQUEUE",p.newChatQueue=!0),p.addNewChatQueue=l,p.saveChatQueue=d,p.deleteChatQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatQueues","chatQueue","api"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.chatQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("CHAT.ALL_TEAMS"),labelSelected:i.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,a){n.chatQueue[a?"removeTeams":"addTeams"]({id:s.chatQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.chatQueue.getTeams({id:s.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","chatQueue","$translate"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:d.chatQueues?d.chatQueues.rows:[]}})}function r(){e.go("app.chat.chatQueues")}function l(){i.chatQueue.update({id:d.chatQueue.id},d.chatQueue).$promise.then(function(){a.success({title:"ChatQueue updated!",msg:d.chatQueue.name?d.chatQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.chatQueue=e.params.chatQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoChatQueues=r,d.saveChatQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","chatQueue"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatWebsite?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatWebsites=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatWebsite.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:t,chatWebsites:A.chatWebsites.rows}})}function v(e){l.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(A.chatWebsites.rows,{id:e.id}),A.chatWebsites.count-=1,A.chatWebsites.rows.length||A.getChatWebsites(),c.success({title:"ChatWebsite deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChatWebsites);return A.selectedChatWebsites=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+A.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatWebsites.forEach(function(e){v(e)}),A.selectedChatWebsites=[]})}function E(){A.selectedChatWebsites=[]}function y(){A.selectedChatWebsites=A.chatWebsites.rows}var A=this;A.chatWebsites=r||{count:0,rows:[]},A.table="chatWebsites",A.listOrder="",A.listOrderAsc=null,A.selectedChatWebsites=[],A.query={fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatWebsites=g,A.createOrEditChatWebsite=h,A.deleteChatWebsite=v,A.exportSelectedChatWebsites=b,A.deleteSelectedChatWebsites=f,A.deselectChatWebsites=E,A.selectAllChatWebsites=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatWebsites","api","msUtils","toasty"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatWebsite.save(p.chatWebsite).$promise.then(function(e){p.chatWebsites.unshift(e),i.success({title:"ChatWebsite properly created",msg:p.chatWebsite.name?p.chatWebsite.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(e){var t=_.find(p.chatWebsites,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatWebsite properly saved!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatWebsite.delete({id:p.chatWebsite.id}).$promise.then(function(){_.remove(p.chatWebsites,{id:p.chatWebsite.id}),i.success({title:"ChatWebsite properly deleted!",msg:(p.chatWebsite.name||"chatWebsite")+" has been deleted!"}),u(p.chatWebsite)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATWEBSITE",p.chatWebsite=angular.copy(s),p.chatWebsites=o,p.newChatWebsite=!1,p.chatWebsite||(p.chatWebsite={remote:n.protocol()+"://"+n.host()+":"+n.port(),header_shape:"rounded"},p.title="CHAT.NEW_CHATWEBSITE",p.newChatWebsite=!0),p.addNewChatWebsite=l,p.saveChatWebsite=d,p.deleteChatWebsite=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatWebsites","chatWebsite","api"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.chatWebsite=e,h.query.id=h.chatWebsite.id,h.query.ChatWebsiteId=h.chatWebsite.id,h.getChatWebsiteChatDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the chatDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.chatWebsite.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatDisposition:t,chatDispositions:h.chatWebsiteChatDispositions.rows}})}function p(e){r.chatDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.chatWebsiteChatDispositions.rows,{id:e.id}),h.chatWebsiteChatDispositions.count-=1,h.chatWebsiteChatDispositions.rows.length||h.getChatWebsiteChatDispositions(),s.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent("<b>"+h.selectedChatWebsiteChatDispositions.length+" selected</b> will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedChatWebsiteChatDispositions.forEach(function(e){p(e)}),h.selectedChatWebsiteChatDispositions=[]})}var h=this;h.chatWebsite={},h.chatWebsiteChatDispositions={count:0,rows:[]},h.selectedChatWebsiteChatDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getChatWebsiteChatDispositions=m,h.createOrEditChatWebsiteChatDisposition=u,h.deleteChatWebsiteChatDisposition=p,h.deleteSelectedChatWebsiteChatDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getChatWebsiteChatDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.chat").controller("ChatWebsiteChatDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatDisposition.save(p.chatDisposition).$promise.then(function(e){p.chatDispositions.unshift(e),i.success({title:"ChatDisposition properly created",msg:p.chatDisposition.name?p.chatDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatDisposition.update({id:p.chatDisposition.id},p.chatDisposition).$promise.then(function(e){var t=_.find(p.chatDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatDisposition properly saved!",msg:p.chatDisposition.name?p.chatDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatDisposition will be deleted.").ariaLabel("Delete ChatDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatDisposition.delete({id:p.chatDisposition.id}).$promise.then(function(){_.remove(p.chatDispositions,{id:p.chatDisposition.id}),i.success({title:"ChatDisposition properly deleted!",msg:(p.chatDisposition.name||"chatDisposition")+" has been deleted!"}),u(p.chatDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATDISPOSITION",p.chatDisposition=angular.copy(s),p.chatDispositions=o,p.newChatDisposition=!1,p.chatDisposition||(p.chatDisposition={},p.title="CHAT.NEW_CHATDISPOSITION",p.newChatDisposition=!0),t.params.id&&(p.chatDisposition.ChatWebsiteId=t.params.id),p.addNewChatDisposition=l,p.saveChatDisposition=d,p.deleteChatDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatDispositions","chatDisposition","api"],angular.module("app.chat").controller("CreateOrEditChatDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.chat.chatWebsites")}function r(){i.chatWebsite.update({id:l.chatWebsite.id},l.chatWebsite).$promise.then(function(){a.success({title:"ChatWebsite updated!",msg:l.chatWebsite.name?l.chatWebsite.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.chatWebsite=e.params.chatWebsite||o||{},l.selectedTab=e.params.tab||0,l.gotoChatWebsites=s,l.saveChatWebsite=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","chatWebsite"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.contactmanager.companies.edit",{id:e.id,company:e})}function u(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the company?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.companies=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.cmCompany.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:t,companies:C.companies.rows}})}function b(e){l.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(C.companies.rows,{id:e.id}),C.companies.count-=1,C.companies.rows.length||C.getCompanies(),c.success({title:"Company deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedCompanies);return C.selectedCompanies=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+C.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedCompanies.forEach(function(e){b(e)}),C.selectedCompanies=[]})}function y(){C.selectedCompanies=[]}function A(){C.selectedCompanies=C.companies.rows}var C=this;C.companies=r||{count:0,rows:[]},C.table="companies",C.listOrder="",C.listOrderAsc=null,C.selectedCompanies=[],C.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},C.editstate=m,C.gotocontactsgoto=u,C.deleteconfirm=p,C.success=g,C.getCompanies=h,C.createOrEditCompany=v,C.deleteCompany=b,C.exportSelectedCompanies=f,C.deleteSelectedCompanies=E,C.deselectCompanies=y,C.selectAllCompanies=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","companies","api","msUtils","toasty"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCompany.save(p.company).$promise.then(function(e){p.companies.unshift(e),i.success({title:"Company properly created",msg:p.company.name?p.company.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCompany.update({id:p.company.id},p.company).$promise.then(function(e){var t=_.find(p.companies,{id:e.id});t&&_.merge(t,e),i.success({title:"Company properly saved!",msg:p.company.name?p.company.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCompany.delete({id:p.company.id}).$promise.then(function(){_.remove(p.companies,{id:p.company.id}),i.success({title:"Company properly deleted!",msg:(p.company.name||"company")+" has been deleted!"}),u(p.company)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_COMPANY",p.company=angular.copy(s),p.companies=o,p.newCompany=!1,p.company||(p.company={},p.title="CONTACTMANAGER.NEW_COMPANY",p.newCompany=!0),p.addNewCompany=l,p.saveCompany=d,p.deleteCompany=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","companies","company","api"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.contactmanager.contacts",{CompanyId:t.id})}function r(){e.go("app.contactmanager.companies")}function l(){i.cmCompany.update({id:d.company.id},d.company).$promise.then(function(){a.success({title:"Company updated!",msg:d.company.name?d.company.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.company=e.params.company||o||{},d.selectedTab=e.params.tab||0,d.gotogoto=s,d.gotoCompanies=r,d.saveCompany=l}e.$inject=["$state","$mdDialog","$document","toasty","api","company"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(e){var t=i.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.cmList.save({name:e});m.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(N.lists.rows.push(e),m.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})}function g(){return u.hasPermission(303)||u.hasRole("admin")}function h(e){var t=i.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.cmCompany.save({name:e});m.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(N.companies.rows.push(e),m.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})}function v(e){var t=i.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.tag.save({name:e});m.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(N.tags.rows.push(e),m.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})}function b(e,n,a){N.disableDialog=!1,Papa.parse(n.file,{skipEmptyLines:!0,header:!0,woerker:!0,complete:function(n){a.files=[],N.disableDialog=!0,i.show({controller:"UploadContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/upload/upload.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!1,locals:{lists:r,companies:d,contacts:n.data,fields:n.meta.fields}}).then(function(){N.getContacts()}).catch(function(e){console.error()})}})}function f(e,t){a.go("app.contactmanager.contacts.edit",{id:e.id})}function E(e,t){var n=i.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){S(e)})}function y(e){N.contacts=e||{count:0,rows:[]}}function A(){N.query.offset=(N.query.page-1)*N.query.limit,N.promise=o.cmContact.get(N.query,y).$promise}function C(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth)),i.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:N.query.ListId||a.params.ListId,CompanyId:N.query.CompanyId||a.params.CompanyId,contact:n,contacts:N.contacts.rows},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name"})}]}})}function x(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:N.contacts.rows}})}function T(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:N.contacts.rows}})}function S(e){o.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(N.contacts.rows,{id:e.id}),N.contacts.count-=1,N.contacts.rows.length||N.getContacts(),m.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){m.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function O(){var e=_.clone(N.selectedContacts);return N.selectedContacts=[],e}function w(e){var t=i.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+N.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){N.selectedContacts.forEach(function(e){S(e)}),N.selectedContacts=[]})}function R(){N.selectedContacts=[]}function I(){N.selectedContacts=N.contacts.rows}var N=this;u.getCurrentUser();N.contacts=s||{count:0,rows:[]},N.options={hidden:!1,hover:!1,isOpen:!1},N.table="cm_contacts",N.listOrder="",N.listOrderAsc=null,N.disableDialog=!0,N.selectedContacts=[],N.lists=r||{rows:[],count:0},N.companies=d||{rows:[],count:0},N.tags=c||{rows:[],count:0},N.listsMap=l,N.selectedTags=[],N.selectedList=null,N.selectedCompany=null,N.query={fields:"id,firstName,lastName,phone,email,updatedAt",sort:"-updatedAt",limit:10,page:1},N.editdialog=f,N.deleteconfirm=E,N.success=y,N.getContacts=A,N.mergeContact=T,N.duplicateContact=x,N.createOrEditContact=C,N.deleteContact=S,N.exportSelectedContacts=O,N.deleteSelectedContacts=w,N.deselectContacts=R,N.selectAllContacts=I,N.createTag=v,N.createList=p,N.createCompany=h,N.uploadContacts=b,N.hasPermission=g,a.params.ListId&&(N.selectedList=a.params.ListId),a.params.CompanyId&&(N.selectedCompany=a.params.CompanyId),e.$watch("vm.options.isOpen",function(t){t?n(function(){e.tooltipVisible=N.options.isOpen},600):e.tooltipVisible=N.options.isOpen});var D=!0,L=1;e.$watch("vm.query.filter",function(e,t){D?n(function(){D=!1}):(t||(L=N.query.page),e!==t&&(N.query.page=1),e||(N.query.page=L),N.getContacts())},!0),e.$watch("vm.selectedList",function(e,t){e!==t&&(N.query.ListId=N.selectedList||void 0,N.getContacts())}),e.$watch("vm.selectedCompany",function(e,t){e!==t&&(N.query.CompanyId=N.selectedCompany||void 0,N.getContacts())}),e.$watch("vm.selectedTags",function(e,t){(e.length||t.length)&&(N.query.tags=N.selectedTags.length?N.selectedTags.join():void 0,N.getContacts())})}e.$inject=["$scope","$document","$timeout","$state","$mdDialog","api","contacts","lists","listsMap","companies","tags","toasty","Auth"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){h.errors=[],l.cmContact.save(h.contact).$promise.then(function(e){h.contacts.unshift(e),t.success({title:"Contact properly created",msg:h.contact.name?h.contact.name+" has been created!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){h.errors=[],l.cmContact.update({id:h.contact.id},h.contact).$promise.then(function(e){var n=_.find(h.contacts,{id:e.id});n&&_.merge(n,e),t.success({title:"Contact properly saved!",msg:h.contact.name?h.contact.name+" has been saved!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function m(e){if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){e&&(h.customFields=e)}).catch(function(e){console.error(e)});h.customFields={rows:[],count:0}}function u(n){h.errors=[];var a=e.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(n);e.show(a).then(function(){l.cmContact.delete({id:h.contact.id}).$promise.then(function(){_.remove(h.contacts,{id:h.contact.id}),t.success({title:"Contact properly deleted!",msg:h.contact.name?h.contact.name+" has been deleted!":""}),g()}).catch(function(e){console.error(e),h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})}function p(e){return new Date(e)}function g(){e.hide()}var h=this;h.errors=[],h.title="CONTACTMANAGER.EDIT_CONTACT",h.contact=angular.copy(o),h.contacts=n||{rows:[],count:0},h.lists=a||{rows:[],count:0},h.companies=i||{rows:[],count:0},h.customFields={rows:[],count:0},h.newContact=!1,h.contact?(delete h.contact.List,h.ListId=h.contact.ListId||void 0):(h.contact={ListId:s||void 0,CompanyId:r||void 0},h.title="CONTACTMANAGER.NEW_CONTACT",h.newContact=!0),h.addNewContact=d,h.saveContact=c,h.deleteContact=u,h.closeDialog=g,h.getCustomFields=m,h.getDateFromString=p}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){l.errors=[],delete l.contact.id,o.cmContact.save(l.contact).$promise.then(function(e){a.unshift(e),t.success({title:"Contact properly created",msg:l.contact.name?l.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})}function r(){e.hide()}var l=this;l.errors=[],l.title="CONTACTMANAGER.COPY_CONTACT",l.contact=angular.copy(n),l.lists=i||{rows:[],count:0},l.addNewContact=s,l.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){m.errors=[],r.cmHopper.update({id:m.hopper.id},m.hopper).$promise.then(function(e){var t=_.find(m.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:m.hopper.name?m.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})}function d(e){return new Date(e)}function c(e){a.hide(e)}var m=this;m.errors=[],m.title="CONTACTMANAGER.EDIT_HOPPER",m.hopper=angular.copy(s),m.hoppers=o,m.newHopper=!1,m.hopper||(m.hopper={},m.title="CONTACTMANAGER.NEW_HOPPER",m.newHopper=!0),m.saveHopper=l,m.getDateFromString=d,m.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h){function v(e){return function(t){N[e]=t||{count:0,rows:[]}}}function b(e,t){i.show({controller:"EditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:N.hoppers.rows}})}function f(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(e.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function E(e){return s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(N.hoppers.rows,{id:e.id}),N.hoppers.count--,N.hoppers.rows.length||N.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){console.log("getHoppers"),N.queryHopper.offset=(N.queryHopper.page-1)*N.queryHopper.limit,N.promise=s.cmHopper.get(N.queryHopper,v("hoppers")).$promise}function A(){N.queryFinal.offset=(N.queryFinal.page-1)*N.queryFinal.limit,N.promise=s.cmHopperFinal.get(N.queryFinal,v("finals")).$promise}function C(){N.queryHistory.offset=(N.queryHistory.page-1)*N.queryHistory.limit,N.promise=s.cmHopperHistory.get(N.queryHistory,v("histories")).$promise}function x(e){if(N.contact.ListId){var t=i.confirm().title("You are selecting the list number: "+N.contact.ListId).textContent("Warning! You won't select a different list for the contact "+N.contact.firstName||N.contact.lastName||N.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(N.onSelectListSuccess).catch(function(){N.contact.ListId=null})}}function T(){return s.cmList.getCustomFields({id:N.contact.ListId}).$promise.then(function(e){N.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})}function S(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[]},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:t})}]}})}function O(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:m.rows,contact:r}})}function w(){s.cmContact.update({id:N.contact.id},N.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:N.contact.name?N.contact.name+" has been updated!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function R(e){return new Date(e)}function I(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})}var N=this;N.contact=r||{},N.hoppers=l||{rows:[],count:0},N.finals=d||{rows:[],count:0},N.histories=c||{rows:[],count:0},N.companies=u||{rows:[],count:0},N.lists=p||{rows:[],count:0},N.customFields=g||{rows:[],count:0},N.tags=h||{rows:[],count:0},N.queryHopper={ContactId:N.contact.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},N.queryFinal={ContactId:N.contact.id,fields:"uniqueid,phone,status,starttime,disposition",sort:"-updatedAt",limit:10,page:1},N.queryHistory={ContactId:N.contact.id,fields:"id,ContactId,phone,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},N.selectedTab=n.params.tab||0,N.gotoContacts=I,N.duplicateContact=O,N.saveContact=w,N.editCompany=S,N.onSelectList=x,N.onSelectListSuccess=T,N.getDateFromString=R,N.getHoppers=y,N.getFinals=A,N.getHistories=C,N.deleteconfirm=f,N.editHopper=b;var D=!0,L=1;e.$watch("vm.queryHopper.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.queryHopper.page),e!==n&&(N.queryHopper.page=1),e||(N.queryHopper.page=L),N.getHoppers())}),e.$watch("vm.queryFinal.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.queryFinal.page),e!==n&&(N.queryFinal.page=1),e||(N.queryFinal.page=L),N.getFinals())}),e.$watch("vm.queryHistory.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.queryHistory.page),e!==n&&(N.queryHistory.page=1),e||(N.queryHistory.page=L),N.getHistories())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(t,a,o){_.remove(c.contacts,{id:a.id});var r=e.confirm().title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+o.id+" will be overwritten by the fields of the contact #"+a.id+".").targetEvent(t).ok("Ok").cancel("Cancel");e.show(r).then(function(){var e=a.id,t=o.id,r=_.mergeWith(a,o,function(e,t){return Array.isArray(t)&&!t.length?e:t||e});s.cmContact.update({id:r.id},r).$promise.then(function(){return s.cmContact.delete({id:e})}).then(function(){_.remove(i,{id:e}),_.merge(_.find(i,{id:t}),r),n.success({title:"Contact properly merged!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})})}function l(){c.errors=[],delete c.contact.id,s.cmContact.save(c.contact).$promise.then(function(e){i.unshift(e),n.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),d()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})}function d(){e.hide()}var c=this;c.errors=[],c.title="CONTACTMANAGER.MERGE_CONTACT",c.contact=angular.copy(a),c.lists=o||[],c.change=function(){c.searchTerm?s.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:c.searchTerm,ListId:a.ListId}).$promise.then(function(e){c.contacts=e.rows}).catch(function(e){console.error(e)}):c.contacts=[]},c.addNewContact=l,c.showConfirm=r,c.closeDialog=d}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return d.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})}function m(){g.uploading=!0,u(g.contacts.length-1)}function u(e){if(e<0)return g.stop=!0,void(g.uploading=!1);for(var t=[];e>=0&&t.length<h;){var n={};for(var a in g.binding)g.binding.hasOwnProperty(a)&&(n[a]=g.contacts[e][g.binding[a]]),n.ListId=g.ListId,n.CompanyId=g.CompanyId,n.duplicates=g.duplicates;t.push(n),e--}return d.cmContact.bulkCreate(t).$promise.then(function(e){g.successAmount+=e.success,g.failureAmount+=e.failure,g.duplicatesAmount+=e.duplicates}).catch(function(e){console.error(e)}).finally(function(){u(e)})}function p(){t.hide()}var g=this,h=50;g.successAmount=0,g.failureAmount=0,g.duplicatesAmount=0,g.uploading=!1,g.stop=!1,g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.contacts=s,g.binding={},g.fields=r,g.lists=i||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.closeDialog=p,g.onChangeList=c,g.upload=m}e.$inject=["$cookies","$mdDialog","$interval","$q","lists","companies","contacts","fields","toasty","api"],angular.module("app.tools").controller("UploadContactsDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCustomField.save(p.globalCustomField).$promise.then(function(e){p.globalCustomFields.unshift(e),i.success({title:"GlobalCustomField properly created",msg:p.globalCustomField.name?p.globalCustomField.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCustomField.update({id:p.globalCustomField.id},p.globalCustomField).$promise.then(function(e){var t=_.find(p.globalCustomFields,{id:e.id});t&&_.merge(t,e),i.success({title:"GlobalCustomField properly saved!",msg:p.globalCustomField.name?p.globalCustomField.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCustomField.delete({id:p.globalCustomField.id}).$promise.then(function(){_.remove(p.globalCustomFields,{id:p.globalCustomField.id}),i.success({title:"GlobalCustomField properly deleted!",msg:(p.globalCustomField.name||"globalCustomField")+" has been deleted!"}),u(p.globalCustomField)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",p.globalCustomField=angular.copy(s),p.globalCustomFields=o,p.newGlobalCustomField=!1,p.globalCustomField||(p.globalCustomField={type:"text"},p.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",p.newGlobalCustomField=!0),p.addNewGlobalCustomField=l,p.saveGlobalCustomField=d,p.deleteGlobalCustomField=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","globalCustomFields","globalCustomField","api"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:A.globalCustomFields.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the globalCustomField?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.globalCustomFields=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cmCustomField.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:t,globalCustomFields:A.globalCustomFields.rows}})}function v(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(A.globalCustomFields.rows,{id:e.id}),A.globalCustomFields.count-=1,A.globalCustomFields.rows.length||A.getGlobalCustomFields(),c.success({title:"GlobalCustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCustomField",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedGlobalCustomFields);return A.selectedGlobalCustomFields=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+A.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedGlobalCustomFields.forEach(function(e){v(e)}),A.selectedGlobalCustomFields=[]})}function E(){A.selectedGlobalCustomFields=[]}function y(){A.selectedGlobalCustomFields=A.globalCustomFields.rows}var A=this;A.globalCustomFields=r||{count:0,rows:[]},A.table="globalCustomFields",A.listOrder="",A.listOrderAsc=null,A.selectedGlobalCustomFields=[],A.query={fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,page:1},A.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getGlobalCustomFields=g,A.createOrEditGlobalCustomField=h,A.deleteGlobalCustomField=v,A.exportSelectedGlobalCustomFields=b,A.deleteSelectedGlobalCustomFields=f,A.deselectGlobalCustomFields=E,A.selectAllGlobalCustomFields=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","globalCustomFields","api","msUtils","toasty"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.save(p.list).$promise.then(function(e){p.lists.unshift(e),i.success({title:"List properly created",msg:p.list.name?p.list.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmList.update({id:p.list.id},p.list).$promise.then(function(e){var t=_.find(p.lists,{id:e.id});t&&_.merge(t,e),i.success({title:"List properly saved!",msg:p.list.name?p.list.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmList.delete({id:p.list.id}).$promise.then(function(){_.remove(p.lists,{id:p.list.id}),i.success({title:"List properly deleted!",msg:(p.list.name||"list")+" has been deleted!"}),u(p.list)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_LIST",p.list=angular.copy(s),p.lists=o,p.newList=!1,p.list||(p.list={},p.title="CONTACTMANAGER.NEW_LIST",p.newList=!0),p.addNewList=l,p.saveList=d,p.deleteList=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","lists","list","api"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.cmList[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.list=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:s.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,a){n.cmList[a?"removeAgents":"addAgents"]({id:c.list.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:cmList.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","list","lists","realtime","$translate"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.list=e,h.query.id=h.list.id,h.query.ListId=h.list.id,h.getListCustomFields()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.listCustomFields=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.cmList.getCustomFields(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customField:t,customFields:h.listCustomFields.rows}})}function p(e){r.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(h.listCustomFields.rows,{id:e.id}),h.listCustomFields.count-=1,h.listCustomFields.rows.length||h.getListCustomFields(),s.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+h.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedListCustomFields.forEach(function(e){p(e)}),h.selectedListCustomFields=[]})}var h=this;h.list={},h.listCustomFields={count:0,rows:[]},h.selectedListCustomFields=[],h.query={fields:"createdAt,updatedAt,id,alias,type,values,required",limit:10,page:1},h.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getListCustomFields=m,h.createOrEditListCustomField=u,h.deleteListCustomField=p,h.deleteSelectedListCustomFields=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getListCustomFields())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.addCustomField({id:t.params.id},p.customField).$promise.then(function(e){p.customFields.unshift(e),i.success({title:"CustomField properly created",msg:p.customField.name?p.customField.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCustomField.update({id:p.customField.id},p.customField).$promise.then(function(e){var t=_.find(p.customFields,{id:e.id});t&&_.merge(t,e),i.success({title:"CustomField properly saved!",msg:p.customField.name?p.customField.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCustomField.delete({id:p.customField.id}).$promise.then(function(){_.remove(p.customFields,{id:p.customField.id}),i.success({title:"CustomField properly deleted!",msg:(p.customField.name||"customField")+" has been deleted!"}),u(p.customField)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",p.customField=angular.copy(s),p.customFields=o,p.newCustomField=!1,p.customField||(p.customField={type:"text"},p.title="CONTACTMANAGER.NEW_CUSTOMFIELD",p.newCustomField=!0),t.params.id&&(p.customField.ListId=t.params.id),e.$watch("vm.customField.type",function(e,t){if(e!==t)switch(e){case"text":p.customField.values="";break;case"select":p.customField.values=[]}}),p.addNewCustomField=l,p.saveCustomField=d,p.deleteCustomField=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customFields","customField","api"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.contactmanager.contacts",{ListId:t.id})}function r(e,a){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{list:e,lists:c.lists?c.lists.rows:[],realtime:!1}})}function l(){e.go("app.contactmanager.lists")}function d(){i.cmList.update({id:c.list.id},c.list).$promise.then(function(){a.success({title:"List updated!",msg:c.list.name?c.list.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.list=e.params.list||o||{},c.selectedTab=e.params.tab||0,c.gotogoto=s,c.agentadddialog=r,c.gotoLists=l,c.saveList=d}e.$inject=["$state","$mdDialog","$document","toasty","api","list"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.list=e,h.query.id=h.list.id,h.query.ListId=h.list.id,h.getListVoiceDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the voiceDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete voiceDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.listVoiceDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.cmList.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditVoiceDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceDisposition:t,voiceDispositions:h.listVoiceDispositions.rows}})}function p(e){r.voiceDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.listVoiceDispositions.rows,{id:e.id}),h.listVoiceDispositions.count-=1,h.listVoiceDispositions.rows.length||h.getListVoiceDispositions(),s.success({title:"VoiceDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected voiceDispositions?").htmlContent("<b>"+h.selectedListVoiceDispositions.length+" selected</b> will be deleted.").ariaLabel("delete voiceDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedListVoiceDispositions.forEach(function(e){p(e)}),h.selectedListVoiceDispositions=[]})}var h=this;h.list={},h.listVoiceDispositions={count:0,rows:[]},h.selectedListVoiceDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getListVoiceDispositions=m,h.createOrEditListVoiceDisposition=u,h.deleteListVoiceDisposition=p,h.deleteSelectedListVoiceDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getListVoiceDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListVoiceDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceDisposition.save(p.voiceDisposition).$promise.then(function(e){p.voiceDispositions.unshift(e),i.success({title:"VoiceDisposition properly created",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceDisposition.update({id:p.voiceDisposition.id},p.voiceDisposition).$promise.then(function(e){var t=_.find(p.voiceDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceDisposition properly saved!",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceDisposition will be deleted.").ariaLabel("Delete VoiceDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceDisposition.delete({id:p.voiceDisposition.id}).$promise.then(function(){_.remove(p.voiceDispositions,{id:p.voiceDisposition.id}),i.success({title:"VoiceDisposition properly deleted!",msg:(p.voiceDisposition.name||"voiceDisposition")+" has been deleted!"}),u(p.voiceDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_VOICEDISPOSITION",p.voiceDisposition=angular.copy(s),p.voiceDispositions=o,p.newVoiceDisposition=!1,p.voiceDisposition||(p.voiceDisposition={},p.title="CONTACTMANAGER.NEW_VOICEDISPOSITION",p.newVoiceDisposition=!0),t.params.id&&(p.voiceDisposition.ListId=t.params.id),p.addNewVoiceDisposition=l,p.saveVoiceDisposition=d,p.deleteVoiceDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceDispositions","voiceDisposition","api"],angular.module("app.contactmanager").controller("CreateOrEditVoiceDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.contactmanager.lists.edit",{id:e.id,list:e})}function u(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})}function p(e,n){var a=t.document.createElement("a");a.href="/api/cm/lists/"+e.id+"/contacts/csv",a.target="_self",a.click()}function g(e,t){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{list:e,lists:T.lists?T.lists.rows:[],realtime:!1}})}function h(e,t){var n=i.confirm().title("Are you sure want to delete the list?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function v(e){T.lists=e||{count:0,rows:[]}}function b(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.cmList.get(T.query,v).$promise}function f(e,t){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:t,lists:T.lists.rows}})}function E(e){l.cmList.delete({id:e.id}).$promise.then(function(){_.remove(T.lists.rows,{id:e.id}),T.lists.count-=1,T.lists.rows.length||T.getLists(),c.success({title:"List deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){var e=_.clone(T.selectedLists);return T.selectedLists=[],e}function A(e){var t=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+T.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedLists.forEach(function(e){E(e)}),T.selectedLists=[]})}function C(){T.selectedLists=[]}function x(){T.selectedLists=T.lists.rows}var T=this;T.lists=r||{count:0,rows:[]},T.table="lists",T.listOrder="",T.listOrderAsc=null,T.selectedLists=[],T.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},T.editstate=m,T.gotocontactsgoto=u,T.exportcsvcontactsexport=p,T.agentadddialog=g,T.deleteconfirm=h,T.success=v,T.getLists=b,T.createOrEditList=f,T.deleteList=E,T.exportSelectedLists=y,T.deleteSelectedLists=A,T.deselectLists=C,T.selectAllLists=x;var S=!0,O=1;e.$watch("vm.query.filter",function(e,t){S?s(function(){S=!1}):(t||(O=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=O),T.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","lists","api","msUtils","toasty"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p){function g(e){e.id=_.random(1e10),e.openedAt=new Date,e.saved=!1;var t=A.tabs.length;A.tabs.push(e),A.currentTab=C+t}function h(e,t){var n={type:"contact",title:e?e.firstName||e.phone:i.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",contact:e,userLists:c,lists:m,companies:u,tags:p,calls:t?[t]:[]};if(e){var a=_.findLastIndex(A.tabs,function(t){return"contact"===t.type&&t.contact&&t.contact.id===e.id});if(a<0){if(e.ListId)return r.cmList.getDispositions({id:e.ListId}).$promise.then(function(t){return n.dispositions=t,r.cmList.getCustomFields({id:e.ListId}).$promise}).then(function(e){n.customFields=e}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g(n)});g(n)}else t&&A.tabs[a].calls.push(t),A.currentTab=C+a}else g(n)}function v(e){e&&e.uri&&a.open(e.uri)}function b(e){e&&e.html&&n.show({template:e.html,clickOutsideToClose:!0})}function f(e){return r.cmContact.get({ListId:e.ListId,phone:e.calleridnum,nolimit:!0}).$promise.then(function(t){if(t.count)for(var n=0;n<t.rows.length;n+=1)A.addContactTab(t.rows[n],e);else A.addContactTab({firstName:e.calleridname||e.calleridnum||e.uniqueid,ListId:e.ListId,phone:e.calleridnum},e)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(e,t){var a=n.confirm().title("Are you sure want to close the contact?").ariaLabel("Close Contact").ok("OK").cancel("CANCEL");t.saved?A.tabs.splice(e,1):n.show(a).then(function(){A.tabs.splice(e,1)})}function y(){a.localStorage.setItem("motion.user:"+A.user.id,JSON.stringify({tabs:A.tabs}))}var A=this,C=4;A.tabs=[],A.user=s.getCurrentUser(),A.currentTab=0,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.localStorageSet=y,A.onContactManager=f,A.onBrowserUrl=v,A.onBrowserPopup=b,A.addContactTab=h,A.closeTab=E,A.motionUser=a.localStorage.getItem("motion.user:"+A.user.id),A.motionUser&&(A.motionUser=JSON.parse(A.motionUser),A.tabs=A.motionUser.tabs),l.on("trigger:contactmanager",A.onContactManager),l.on("trigger:browser:url",A.onBrowserUrl),l.on("trigger:browser:popup",A.onBrowserPopup);var x=o(A.localStorageSet,1500);e.$watch("vm.currentTab",function(e,n){switch(A.currentTab){case 3:t.go("app.dashboards.general.mycontacts");break;case 2:t.go("app.dashboards.general.contacts");break;case 1:t.go("app.dashboards.general.recordings");break;case 0:t.go("app.dashboards.general.dashboard")}}),e.$on("$stateChangeSuccess",function(e,t,n,a,i){t.data&&(A.currentTab=t.data.selectedTab)}),e.$on("$destroy",function(){l.removeAllListeners("trigger:contactmanager"),l.removeAllListeners("trigger:browser:url"),l.removeAllListeners("trigger:browser:popup"),o.cancel(x)})}e.$inject=["$scope","$state","$mdDialog","$window","$translate","$interval","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){g.contacts=e||{count:0,rows:[]}}function d(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.cmContact.get(g.query,l).$promise}function c(e,n){t.$parent.vm.addContactTab(n)}function m(){g.query.ListId=g.defaultLists,g.getContacts()}function u(t,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:o.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:g.contacts.rows}})}function p(t,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:o.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:g.contacts.rows}})}var g=this;g.contacts={count:0,rows:[]},g.lists=r||{count:0,rows:[]},g.listsMap=_.mapValues(_.keyBy(r.rows,"id"),"name"),g.defaultLists=g.lists.rows?_.map(g.lists.rows,"id").join(","):void 0,g.query={sort:"-updatedAt",limit:10,page:1,ListId:g.defaultLists},g.getContacts=d,g.refreshContacts=m,g.mergeContact=p,g.duplicateContact=u,g.openContact=c,g.getContacts();var h=!0,v=1;t.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(v=g.query.page),e!==t&&(g.query.page=1),e||(g.query.page=v),g.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","Auth","api","lists"],angular.module("app.dashboards").controller("AgentContactsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){g.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function d(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=n.user.getQueues(g.query,l).$promise}function c(e){return _.size(e)}function m(){_.forIn(g.voiceQueues,function(e,t){g.rpcVoiceQueues[t]&&(g.voiceQueues[t].waiting=g.rpcVoiceQueues[t].waiting||0)})}function u(e){g.voiceQueues[e.id]&&g.rpcVoiceQueues[e.id]&&(g.rpcVoiceQueues[e.id]=e,g.voiceQueues[e.id].waiting=e.waiting||0)}function p(e){g.rpcVoiceQueuesChannels[e.uniqueid]&&e.queuecallerleaveAt?delete g.rpcVoiceQueuesChannels[e.uniqueid]:g.rpcVoiceQueuesChannels[e.uniqueid]=e}var g=this;g.voiceQueuesTotal=o.count?o.count:0,g.voiceQueues=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcVoiceQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},g.query={id:a.getCurrentUser().id,fields:"id,name",channel:"voice",limit:10,page:1},g.rpcVoiceQueuesChannels=r?_.keyBy(r.rows?r.rows:[],"uniqueid"):{},g.queryChannels={limit:10,page:1},g.success=l,g.getVoiceQueues=d,g.getSize=c,g.onSaveQueue=u,g.onSaveChannel=p,i.on("voice_queue:save",g.onSaveQueue),i.on("voice_queue_channel:save",g.onSaveChannel),m();var h=!0,v=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=v),g.getVoiceQueues())}),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_queue_channel:save")})}e.$inject=["$scope","$timeout","api","Auth","socket","voiceQueues","rpcVoiceQueues","rpcVoiceQueuesChannels"],angular.module("app.dashboards").controller("AgentDashboardDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(n,l,d){function c(){C.errors=[],i.cmContact.save(C.contact).$promise.then(function(e){return C.newContact=!1,C.tab.title=e.firstName||e.phone,C.tab.contact=C.contact,i.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){C.tab.saved=!0,o.success({title:"Contact properly created",msg:C.contact.firstName?C.contact.firstName+" has been created!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){C.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)o.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function m(){C.errors=[],i.cmContact.update({id:C.contact.id},C.contact).$promise.then(function(e){return C.tab.title=e.firstName||e.phone,C.tab.contact=C.contact,i.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){C.tab.saved=!0,o.success({title:"Contact properly updated!",msg:C.contact.name?C.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){C.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)o.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function u(e){return function(t){n[e]=t||{count:0,rows:[]}}}function p(){C.queryHopper.offset=(C.queryHopper.page-1)*C.queryHopper.limit,C.promise=i.cmHopper.get(C.queryHopper,u("hoppers")).$promise}function g(){C.queryFinal.offset=(C.queryFinal.page-1)*C.queryFinal.limit,C.promise=i.cmHopperFinal.get(C.queryFinal,u("finals")).$promise}function h(){C.queryHistory.offset=(C.queryHistory.page-1)*C.queryHistory.limit,C.promise=i.cmHopperHistory.get(C.queryHistory,u("histories")).$promise}function v(n){e.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:C.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})}function b(n){e.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:C.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})}function f(e){var t=_.findLastIndex(C.tab.calls,function(t){return t.uniqueid===e.uniqueid});t>=0&&(C.tab.calls[t].disposedAt=new Date)}function E(n,a){C.newContact?o.error({title:"ATTENTION",msg:"Before to dispose, please save the contact!"}):e.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/dispose/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!1,locals:{dispositions:C.tab.dispositions,contact:C.contact,call:a}}).then(function(e){o.success({title:"Call properly disposed",msg:"Call has been disposed "+e})}).finally(function(){_.remove(C.tab.calls,function(e){return e.uniqueid==a.uniqueid})})}function y(e){return i.cmList.getCustomFields({id:e}).$promise.then(function(e){C.tab.customFields=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(e){return new Date(e)}var C=n;if(C.contact=C.tab.contact,C.newContact=!1,C.currentTab=0,C.contact&&C.contact.id||(C.newContact=!0),C.contact&&C.contact.id)return i.user.addContacts({id:s.getCurrentUser().id,ids:[C.contact.id]});C.queryHopper={ContactId:C.contact.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},C.queryFinal={ContactId:C.contact.id,fields:"uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},C.queryHistory={ContactId:C.contact.id,fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},C.hoppers={rows:[],count:0},C.finals={rows:[],count:0},C.histories={rows:[],count:0},C.addNewContact=c,C.saveContact=m,C.getCustomFields=y,C.disposeCall=E,C.duplicateContact=v,C.mergeContact=b,C.getDateFromString=A,C.getHoppers=p,C.getFinals=g,C.getHistories=h,r.on("voice_queue_channel:remove",f),function(){C.getHoppers(),C.getFinals(),C.getHistories()}(),C.$watch("currentTab",function(e,t){console.log("current tab",e),1===C.currentTab&&(console.log("test"),C.getHoppers(),C.getFinals(),C.getHistories())});var x=!0,T=1;C.$watch("queryHopper.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryHopper.page),e!==t&&(C.queryHopper.page=1),e||(C.queryHopper.page=T),C.getHoppers())}),C.$watch("queryFinal.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryFinal.page),e!==t&&(C.queryFinal.page=1),e||(C.queryFinal.page=T),C.getFinals())}),C.$watch("queryHistory.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryHistory.page),e!==t&&(C.queryHistory.page=1),e||(C.queryHistory.page=T),C.getHistories())})}return{restrict:"E",transclude:!0,scope:{localStorageSet:"&onLocalStorageSet",tab:"="},link:l,templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/contact.html"}}e.$inject=["$mdDialog","$document","$window","$timeout","api","toasty","Auth","socket"],angular.module("app.dashboards").directive("contact",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(){var e=y.choice.toLowerCase();return{id:y.call.uniqueid,disposition:y.choice,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e}}function g(){return l.voiceCallReport.update({id:y.call.uniqueid,userDisposition:y.choice,UserId:u.getCurrentUser().id,ContactId:y.contact.id}).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){return l.cmHopperFinal.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){return l.cmHopperHistory.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(e){if(e)return l.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){for(var t=[],n=0;n<e.rows.length;n+=1){var a=angular.copy(y.contact);delete a.id,a.ListId=e.rows[n].id,t.push(l.cmContact.save(a).$promise)}return o.all(t)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){return a.show({controller:"RescheduleCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/reschedule/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{contact:y.contact,call:y.call}})}function E(){if(console.log(y.call),g(),y.dialerCall)switch(h(),v(),y.choice.toLowerCase()){case"blacklist":y.call&&y.call.variables&&y.call.variables["xmd-voicequeueid"]&&b(y.call.variables["xmd-voicequeueid"]);break;case"reschedule":f()}a.hide(y.choice.toUpperCase())}var y=this;y.choice=void 0,y.dispositions=d,y.contact=m,y.call=c,y.dialerCall=!1,y.call&&y.call.variables&&y.call.variables["xmd-queue"]&&(y.dialerCall=!0),y.saveDisposition=E}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","$q","$document","toasty","api","dispositions","call","contact","Auth"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return s.cmHopper.save({phone:u.contact.phone,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss")}).$promise.then(function(){return s.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss")}).$promise}).then(function(){a.hide()}).catch(function(e){a.cancel(e)})}function m(){a.cancel()}var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=m,u.saveDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e){p.contacts=e||{count:0,rows:[]}}function l(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.getContacts(p.query,r).$promise}function d(e,n){t.$parent.vm.addContactTab(n)}function c(){p.query.ListId=p.defaultLists,p.getContacts()}function m(t,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:i.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:p.contacts.rows}})}function u(t,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:i.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:p.contacts.rows}})}var p=this;p.contacts={count:0,rows:[]},p.lists=s||{count:0,rows:[]},p.listsMap=_.mapValues(_.keyBy(s.rows,"id"),"name"),p.defaultLists=p.lists.rows?_.map(p.lists.rows,"id").join(","):void 0,p.query={id:i.getCurrentUser().id,sort:"-updatedAt",limit:10,page:1,ListId:p.defaultLists},p.getContacts=l,p.refreshContacts=c,p.mergeContact=u,p.duplicateContact=m,p.openContact=d,p.getContacts()}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","lists"],angular.module("app.dashboards").controller("AgentMyContactsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){function u(e,n){return l.voiceRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/voice/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){h.voiceRecordings=e||{count:0,rows:[]}}function g(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=l.user.getRecordings(h.query,p).$promise}var h=this;h.voiceRecordings=r||{count:0,rows:[]},h.table="voiceRecordings",h.query={id:m.getCurrentUser().id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},h.downloadfile=u,h.success=p,h.getVoiceRecordings=g}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty","Auth"],angular.module("app.dashboards").controller("AgentRecordigsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){l({queues:h.outboundQueues,rpcQueues:h.rpcQueues}).then(function(e){h.inbound=e})}function u(){d({rpcCampaigns:h.rpcCampaigns}).then(function(e){h.ivr=e})}function p(e){h.outboundQueues[e.id]&&h.rpcQueues[e.id]&&(h.rpcQueues[e.id]=e,m())}function g(e){h.rpcCampaigns[e.id]&&(h.rpcCampaigns[e.id]=e,u())}var h=this;h.outboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},h.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcCampaigns=c?_.keyBy(c.rows?c.rows:[],"id"):{},h.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},h.ivr={originated:0,limitCalls:0},h.onSaveQueue=p,h.onSaveCampaign=g,i.on("voice_queue:save",h.onSaveQueue),i.on("campaign:save",h.onSaveCampaign),m(),u(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("campaign:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e){var t=[],n=function(){var e=t[0],a={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0};_.forIn(e.queues,function(t,n){if(e.rpcQueues[n]){a.waiting+=e.rpcQueues[n].waiting||0,a.talking+=e.rpcQueues[n].talking||0,a.answered+=e.rpcQueues[n].answered||0,a.unmanaged+=e.rpcQueues[n].unmanaged||0,a.sumHoldTime+=e.rpcQueues[n].sumHoldTime||0,a.sumBillable+=e.rpcQueues[n].sumBillable||0,a.total+=e.rpcQueues[n].total||0,a.originated+=e.rpcQueues[n].originated||0;var i=e.rpcQueues[n].total-e.rpcQueues[n].answered;a.abandoned+=i>0?i:0}}),a.avgHoldTime=Math.round(a.total>0?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(a.answered>0?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((a.total>0?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((a.total>0?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({queues:a.queues,rpcQueues:a.rpcQueues,defer:i}),1===t.length&&n(),i.promise}}function t(e){var t=[],n=function(){var e=t[0],a={originated:0,limitCalls:0};_.forIn(e.rpcCampaigns,function(t,n){e.rpcCampaigns[n]&&(a.originated+=e.rpcCampaigns[n].originated||0,a.limitCalls+=e.rpcCampaigns[n].limitCalls||0)}),t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({rpcCampaigns:a.rpcCampaigns,defer:i}),1===t.length&&n(),i.promise}}function n(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}function a(e,t,n){function a(){return n.hasPermission(101)||n.hasRole("admin")}var i=this;i.hasPermission=a,e.$on("$stateChangeSuccess",function(e,n,a,o,s){if(n.data)switch(i.currentTab=n.data.selectedTab,i.currentTab){case 1:t.go("app.dashboards.general.dialer");break;default:t.go("app.dashboards.general.voice")}})}e.$inject=["$q"],t.$inject=["$q"],a.$inject=["$scope","$state","Auth"],angular.module("app.dashboards").filter("secToTime",n).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",t).controller("UserDashboardGeneralController",a)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){d({queues:p.inboundQueues,rpcQueues:p.rpcQueues}).then(function(e){p.inbound=e})}function m(e){p.inboundQueues[e.id]&&p.rpcQueues[e.id]&&(p.rpcQueues[e.id]=e,c())}function u(e){p.outbound=e}var p=this;p.inboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},p.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},p.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},p.outbound=l||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},p.onSaveQueue=m,p.onSaveOutbound=u,i.on("voice_queue:save",p.onSaveQueue),i.on("voice_outbound:save",p.onSaveOutbound),c(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxAccount.save(p.faxAccount).$promise.then(function(e){p.faxAccounts.unshift(e),i.success({title:"FaxAccount properly created",msg:p.faxAccount.name?p.faxAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxAccount.update({id:p.faxAccount.id},p.faxAccount).$promise.then(function(e){var t=_.find(p.faxAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxAccount properly saved!",msg:p.faxAccount.name?p.faxAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxAccount.delete({id:p.faxAccount.id}).$promise.then(function(){_.remove(p.faxAccounts,{id:p.faxAccount.id}),i.success({title:"FaxAccount properly deleted!",msg:(p.faxAccount.name||"faxAccount")+" has been deleted!"}),u(p.faxAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXACCOUNT",p.faxAccount=angular.copy(s),p.faxAccounts=o,p.newFaxAccount=!1,p.faxAccount||(p.faxAccount={},p.title="FAX.NEW_FAXACCOUNT",p.newFaxAccount=!0),p.addNewFaxAccount=l,p.saveFaxAccount=d,p.deleteFaxAccount=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxAccounts","faxAccount","api"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.faxAccount=e,h.query.id=h.faxAccount.id,h.query.FaxAccountId=h.faxAccount.id,h.getFaxAccountFaxDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the faxDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete faxDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.faxAccountFaxDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.faxAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditFaxDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxDisposition:t,faxDispositions:h.faxAccountFaxDispositions.rows}})}function p(e){r.faxDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.faxAccountFaxDispositions.rows,{id:e.id}),h.faxAccountFaxDispositions.count-=1,h.faxAccountFaxDispositions.rows.length||h.getFaxAccountFaxDispositions(),s.success({title:"FaxDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected faxDispositions?").htmlContent("<b>"+h.selectedFaxAccountFaxDispositions.length+" selected</b> will be deleted.").ariaLabel("delete faxDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedFaxAccountFaxDispositions.forEach(function(e){p(e)}),h.selectedFaxAccountFaxDispositions=[]})}var h=this;h.faxAccount={},h.faxAccountFaxDispositions={count:0,rows:[]},h.selectedFaxAccountFaxDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getFaxAccountFaxDispositions=m,h.createOrEditFaxAccountFaxDisposition=u,h.deleteFaxAccountFaxDisposition=p,h.deleteSelectedFaxAccountFaxDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getFaxAccountFaxDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.fax").controller("FaxAccountFaxDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxDisposition.save(p.faxDisposition).$promise.then(function(e){p.faxDispositions.unshift(e),i.success({title:"FaxDisposition properly created",msg:p.faxDisposition.name?p.faxDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxDisposition.update({id:p.faxDisposition.id},p.faxDisposition).$promise.then(function(e){var t=_.find(p.faxDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxDisposition properly saved!",msg:p.faxDisposition.name?p.faxDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxDisposition will be deleted.").ariaLabel("Delete FaxDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxDisposition.delete({id:p.faxDisposition.id}).$promise.then(function(){_.remove(p.faxDispositions,{id:p.faxDisposition.id}),i.success({title:"FaxDisposition properly deleted!",msg:(p.faxDisposition.name||"faxDisposition")+" has been deleted!"}),u(p.faxDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXDISPOSITION",p.faxDisposition=angular.copy(s),p.faxDispositions=o,p.newFaxDisposition=!1,p.faxDisposition||(p.faxDisposition={},p.title="FAX.NEW_FAXDISPOSITION",p.newFaxDisposition=!0),t.params.id&&(p.faxDisposition.FaxAccountId=t.params.id),p.addNewFaxDisposition=l,p.saveFaxDisposition=d,p.deleteFaxDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxDispositions","faxDisposition","api"],angular.module("app.fax").controller("CreateOrEditFaxDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.fax.faxAccounts")}function r(){i.faxAccount.update({id:l.faxAccount.id},l.faxAccount).$promise.then(function(){a.success({title:"FaxAccount updated!",msg:l.faxAccount.name?l.faxAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.faxAccount=e.params.faxAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoFaxAccounts=s,l.saveFaxAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","faxAccount"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the faxAccount?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:t,faxAccounts:A.faxAccounts.rows}})}function v(e){l.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.faxAccounts.rows,{id:e.id}),A.faxAccounts.count-=1,A.faxAccounts.rows.length||A.getFaxAccounts(),c.success({title:"FaxAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFaxAccounts);return A.selectedFaxAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+A.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxAccounts.forEach(function(e){v(e)}),A.selectedFaxAccounts=[]})}function E(){A.selectedFaxAccounts=[]}function y(){A.selectedFaxAccounts=A.faxAccounts.rows}var A=this;A.faxAccounts=r||{count:0,rows:[]},A.table="faxAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedFaxAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxAccounts=g,A.createOrEditFaxAccount=h,A.deleteFaxAccount=v,A.exportSelectedFaxAccounts=b,A.deleteSelectedFaxAccounts=f,A.deselectFaxAccounts=E,A.selectAllFaxAccounts=y,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxAccounts","api","msUtils","toasty"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxQueue.save(p.faxQueue).$promise.then(function(e){p.faxQueues.unshift(e),i.success({title:"FaxQueue properly created",msg:p.faxQueue.name?p.faxQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxQueue.update({id:p.faxQueue.id},p.faxQueue).$promise.then(function(e){var t=_.find(p.faxQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxQueue properly saved!",msg:p.faxQueue.name?p.faxQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxQueue.delete({id:p.faxQueue.id}).$promise.then(function(){_.remove(p.faxQueues,{id:p.faxQueue.id}),i.success({title:"FaxQueue properly deleted!",msg:(p.faxQueue.name||"faxQueue")+" has been deleted!"}),u(p.faxQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXQUEUE",p.faxQueue=angular.copy(s),p.faxQueues=o,p.newFaxQueue=!1,p.faxQueue||(p.faxQueue={strategy:"beepall"},p.title="FAX.NEW_FAXQUEUE",p.newFaxQueue=!0),p.addNewFaxQueue=l,p.saveFaxQueue=d,p.deleteFaxQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxQueues","faxQueue","api"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.faxQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("FAX.ALL_TEAMS"),labelSelected:i.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,a){n.faxQueue[a?"removeTeams":"addTeams"]({id:s.faxQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.faxQueue.getTeams({id:s.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","faxQueue","$translate"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:d.faxQueues?d.faxQueues.rows:[]}})}function r(){e.go("app.fax.faxQueues")}function l(){i.faxQueue.update({id:d.faxQueue.id},d.faxQueue).$promise.then(function(){a.success({title:"FaxQueue updated!",msg:d.faxQueue.name?d.faxQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.faxQueue=e.params.faxQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoFaxQueues=r,d.saveFaxQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","faxQueue"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the faxQueue?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:A.faxQueues.rows}})}function v(e){l.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.faxQueues.rows,{id:e.id}),A.faxQueues.count-=1,A.faxQueues.rows.length||A.getFaxQueues(),c.success({title:"FaxQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFaxQueues);return A.selectedFaxQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+A.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxQueues.forEach(function(e){v(e)}),A.selectedFaxQueues=[]})}function E(){A.selectedFaxQueues=[]}function y(){A.selectedFaxQueues=A.faxQueues.rows}var A=this;A.faxQueues=r||{count:0,rows:[]},A.table="faxQueues",A.listOrder="",A.listOrderAsc=null,A.selectedFaxQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxQueues=g,A.createOrEditFaxQueue=h,A.deleteFaxQueue=v,A.exportSelectedFaxQueues=b,A.deleteSelectedFaxQueues=f,A.deselectFaxQueues=E,A.selectAllFaxQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxQueues","api","msUtils","toasty"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e){this.info=e}e.$inject=["info"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.save(p.freshdeskAccount).$promise.then(function(e){p.freshdeskAccounts.unshift(e),i.success({title:"FreshdeskAccount properly created",msg:p.freshdeskAccount.name?p.freshdeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intFreshdeskAccount.update({id:p.freshdeskAccount.id},p.freshdeskAccount).$promise.then(function(e){var t=_.find(p.freshdeskAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"FreshdeskAccount properly saved!",msg:p.freshdeskAccount.name?p.freshdeskAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intFreshdeskAccount.delete({id:p.freshdeskAccount.id}).$promise.then(function(){_.remove(p.freshdeskAccounts,{id:p.freshdeskAccount.id}),i.success({title:"FreshdeskAccount properly deleted!",msg:(p.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),u(p.freshdeskAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",p.freshdeskAccount=angular.copy(s),p.freshdeskAccounts=o,p.newFreshdeskAccount=!1,p.freshdeskAccount||(p.freshdeskAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",p.newFreshdeskAccount=!0),p.addNewFreshdeskAccount=l,p.saveFreshdeskAccount=d,p.deleteFreshdeskAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","freshdeskAccounts","freshdeskAccount","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intFreshdeskConfiguration.setTags({id:A.freshdeskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.freshdeskAccount=e,n.intFreshdeskAccount.getConfigurations({id:A.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.configurations=e.rows?e.rows:[],A.configurations.length&&A.getFreshdeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.freshdeskConfiguration=A.configurations[e],A.selectedFreshdeskConfiguration=e,n.intFreshdeskConfiguration.getSubjects({id:A.freshdeskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intFreshdeskConfiguration.getDescriptions({id:A.freshdeskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intFreshdeskConfiguration.getFields({id:A.freshdeskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intFreshdeskConfiguration.getTags({id:A.freshdeskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{freshdeskConfiguration:a,configurations:A.configurations}}).finally(function(){A.getFreshdeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(i.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intFreshdeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.configurations,{id:i.id}),a.success({title:"FreshdeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function c(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+A.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function g(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+A.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function f(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+A.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.freshdeskAccount={},A.freshdeskConfiguration={},A.configurations=[],A.selectedFreshdeskConfiguration=-1,A.init=o,A.getFreshdeskConfiguration=s,A.createOrEditFreshdeskConfiguration=r,A.deleteFreshdeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.addConfiguration({id:t.params.id},p.freshdeskConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"FreshdeskConfiguration properly created",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intFreshdeskConfiguration.update({id:p.freshdeskConfiguration.id},p.freshdeskConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"FreshdeskConfiguration properly saved!",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intFreshdeskConfiguration.delete({id:p.freshdeskConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.freshdeskConfiguration.id}),i.success({title:"FreshdeskConfiguration properly deleted!",msg:(p.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),u(p.freshdeskConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",p.freshdeskConfiguration=angular.copy(s),p.configurations=o,p.newFreshdeskConfiguration=!1,p.freshdeskConfiguration||(p.freshdeskConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",p.newFreshdeskConfiguration=!0),p.addNewFreshdeskConfiguration=l,p.saveFreshdeskConfiguration=d,p.deleteFreshdeskConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","freshdeskConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intFreshdeskField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intFreshdeskField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intFreshdeskField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.freshdeskAccounts")}function r(){i.intFreshdeskAccount.update({id:l.freshdeskAccount.id},l.freshdeskAccount).$promise.then(function(){a.success({title:"FreshdeskAccount updated!",msg:l.freshdeskAccount.name?l.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.freshdeskAccount=e.params.freshdeskAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoFreshdeskAccounts=s,l.saveFreshdeskAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","freshdeskAccount"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the freshdeskAccount?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.freshdeskAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.intFreshdeskAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:t,freshdeskAccounts:A.freshdeskAccounts.rows}})}function v(e){l.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.freshdeskAccounts.rows,{id:e.id}),A.freshdeskAccounts.count-=1,A.freshdeskAccounts.rows.length||A.getFreshdeskAccounts(),c.success({title:"FreshdeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFreshdeskAccounts);return A.selectedFreshdeskAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+A.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFreshdeskAccounts.forEach(function(e){v(e)}),A.selectedFreshdeskAccounts=[]})}function E(){A.selectedFreshdeskAccounts=[]}function y(){A.selectedFreshdeskAccounts=A.freshdeskAccounts.rows}var A=this;A.freshdeskAccounts=r||{count:0,rows:[]},A.table="freshdeskAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedFreshdeskAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFreshdeskAccounts=g,A.createOrEditFreshdeskAccount=h,A.deleteFreshdeskAccount=v,A.exportSelectedFreshdeskAccounts=b,A.deleteSelectedFreshdeskAccounts=f,A.deselectFreshdeskAccounts=E,A.selectAllFreshdeskAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","freshdeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.save(p.salesforceAccount).$promise.then(function(e){p.salesforceAccounts.unshift(e),i.success({title:"SalesforceAccount properly created",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSalesforceAccount.update({id:p.salesforceAccount.id},p.salesforceAccount).$promise.then(function(e){var t=_.find(p.salesforceAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SalesforceAccount properly saved!",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSalesforceAccount.delete({id:p.salesforceAccount.id}).$promise.then(function(){_.remove(p.salesforceAccounts,{id:p.salesforceAccount.id}),i.success({title:"SalesforceAccount properly deleted!",msg:(p.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),u(p.salesforceAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",p.salesforceAccount=angular.copy(s),p.salesforceAccounts=o,p.newSalesforceAccount=!1,p.salesforceAccount||(p.salesforceAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",p.newSalesforceAccount=!0),p.addNewSalesforceAccount=l,p.saveSalesforceAccount=d,p.deleteSalesforceAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","salesforceAccounts","salesforceAccount","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){y.salesforceAccount=e,n.intSalesforceAccount.getConfigurations({id:y.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return y.configurations=e.rows?e.rows:[],y.configurations.length&&y.getSalesforceConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){y.variables=e.rows?e.rows:[],y.variablesById=_.keyBy(y.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){y.salesforceConfiguration=y.configurations[e],y.selectedSalesforceConfiguration=e,n.intSalesforceConfiguration.getSubjects({id:y.salesforceConfiguration.id}).$promise.then(function(e){return y.subjects=e.rows?e.rows:[],n.intSalesforceConfiguration.getDescriptions({id:y.salesforceConfiguration.id}).$promise}).then(function(e){return y.descriptions=e.rows?e.rows:[],n.intSalesforceConfiguration.getFields({id:y.salesforceConfiguration.id}).$promise}).then(function(e){y.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(n,a){e.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{salesforceConfiguration:a,configurations:y.configurations}}).finally(function(){y.getSalesforceConfiguration(0)})}function r(t,i){var o=e.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(i.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSalesforceConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SalesforceConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function d(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+y.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function p(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+y.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function b(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+y.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.salesforceAccount={},y.salesforceConfiguration={},y.configurations=[],y.selectedSalesforceConfiguration=-1,y.init=i,y.getSalesforceConfiguration=o,y.createOrEditSalesforceConfiguration=s,y.deleteSalesforceConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.addConfiguration({id:t.params.id},p.salesforceConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"SalesforceConfiguration properly created",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSalesforceConfiguration.update({id:p.salesforceConfiguration.id},p.salesforceConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"SalesforceConfiguration properly saved!",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSalesforceConfiguration.delete({id:p.salesforceConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.salesforceConfiguration.id}),i.success({title:"SalesforceConfiguration properly deleted!",msg:(p.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),u(p.salesforceConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",p.salesforceConfiguration=angular.copy(s),p.configurations=o,p.newSalesforceConfiguration=!1,p.salesforceConfiguration||(p.salesforceConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",p.newSalesforceConfiguration=!0),p.addNewSalesforceConfiguration=l,p.saveSalesforceConfiguration=d,p.deleteSalesforceConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","salesforceConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSalesforceField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSalesforceField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intSalesforceField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.salesforceAccounts")}function r(){i.intSalesforceAccount.update({id:l.salesforceAccount.id},l.salesforceAccount).$promise.then(function(){a.success({title:"SalesforceAccount updated!",msg:l.salesforceAccount.name?l.salesforceAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.salesforceAccount=e.params.salesforceAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSalesforceAccounts=s,l.saveSalesforceAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","salesforceAccount"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the salesforceAccount?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.salesforceAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.intSalesforceAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:t,salesforceAccounts:A.salesforceAccounts.rows}})}function v(e){l.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.salesforceAccounts.rows,{id:e.id}),A.salesforceAccounts.count-=1,A.salesforceAccounts.rows.length||A.getSalesforceAccounts(),c.success({title:"SalesforceAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSalesforceAccounts);return A.selectedSalesforceAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+A.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSalesforceAccounts.forEach(function(e){v(e)}),A.selectedSalesforceAccounts=[]})}function E(){A.selectedSalesforceAccounts=[]}function y(){A.selectedSalesforceAccounts=A.salesforceAccounts.rows}var A=this;A.salesforceAccounts=r||{count:0,rows:[]},A.table="salesforceAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedSalesforceAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSalesforceAccounts=g,A.createOrEditSalesforceAccount=h,A.deleteSalesforceAccount=v,A.exportSelectedSalesforceAccounts=b,A.deleteSelectedSalesforceAccounts=f,A.deselectSalesforceAccounts=E,A.selectAllSalesforceAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","salesforceAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.save(p.sugarcrmAccount).$promise.then(function(e){p.sugarcrmAccounts.unshift(e),i.success({title:"SugarcrmAccount properly created",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSugarcrmAccount.update({id:p.sugarcrmAccount.id},p.sugarcrmAccount).$promise.then(function(e){var t=_.find(p.sugarcrmAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SugarcrmAccount properly saved!",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSugarcrmAccount.delete({id:p.sugarcrmAccount.id}).$promise.then(function(){_.remove(p.sugarcrmAccounts,{id:p.sugarcrmAccount.id}),i.success({title:"SugarcrmAccount properly deleted!",msg:(p.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),u(p.sugarcrmAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",p.sugarcrmAccount=angular.copy(s),p.sugarcrmAccounts=o,p.newSugarcrmAccount=!1,p.sugarcrmAccount||(p.sugarcrmAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",p.newSugarcrmAccount=!0),p.addNewSugarcrmAccount=l,p.saveSugarcrmAccount=d,p.deleteSugarcrmAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","sugarcrmAccounts","sugarcrmAccount","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){y.sugarcrmAccount=e,n.intSugarcrmAccount.getConfigurations({id:y.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return y.configurations=e.rows?e.rows:[],y.configurations.length&&y.getSugarcrmConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){y.variables=e.rows?e.rows:[],y.variablesById=_.keyBy(y.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){y.sugarcrmConfiguration=y.configurations[e],y.selectedSugarcrmConfiguration=e,n.intSugarcrmConfiguration.getSubjects({id:y.sugarcrmConfiguration.id}).$promise.then(function(e){return y.subjects=e.rows?e.rows:[],n.intSugarcrmConfiguration.getDescriptions({id:y.sugarcrmConfiguration.id}).$promise}).then(function(e){return y.descriptions=e.rows?e.rows:[],n.intSugarcrmConfiguration.getFields({id:y.sugarcrmConfiguration.id}).$promise}).then(function(e){y.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(n,a){e.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:a,configurations:y.configurations}}).finally(function(){y.getSugarcrmConfiguration(0)})}function r(t,i){var o=e.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(i.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSugarcrmConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SugarcrmConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function d(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+y.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function p(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+y.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function b(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+y.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.sugarcrmAccount={},y.sugarcrmConfiguration={},y.configurations=[],y.selectedSugarcrmConfiguration=-1,y.init=i,y.getSugarcrmConfiguration=o,y.createOrEditSugarcrmConfiguration=s,y.deleteSugarcrmConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.addConfiguration({id:t.params.id},p.sugarcrmConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"SugarcrmConfiguration properly created",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSugarcrmConfiguration.update({id:p.sugarcrmConfiguration.id},p.sugarcrmConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"SugarcrmConfiguration properly saved!",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSugarcrmConfiguration.delete({id:p.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.sugarcrmConfiguration.id}),i.success({title:"SugarcrmConfiguration properly deleted!",msg:(p.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),u(p.sugarcrmConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",p.sugarcrmConfiguration=angular.copy(s),p.configurations=o,p.newSugarcrmConfiguration=!1,p.sugarcrmConfiguration||(p.sugarcrmConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",p.newSugarcrmConfiguration=!0),p.addNewSugarcrmConfiguration=l,p.saveSugarcrmConfiguration=d,p.deleteSugarcrmConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","sugarcrmConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSugarcrmField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSugarcrmField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intSugarcrmField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.sugarcrmAccounts")}function r(){i.intSugarcrmAccount.update({id:l.sugarcrmAccount.id},l.sugarcrmAccount).$promise.then(function(){a.success({title:"SugarcrmAccount updated!",msg:l.sugarcrmAccount.name?l.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.sugarcrmAccount=e.params.sugarcrmAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSugarcrmAccounts=s,l.saveSugarcrmAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","sugarcrmAccount"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the sugarcrmAccount?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.sugarcrmAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.intSugarcrmAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:t,sugarcrmAccounts:A.sugarcrmAccounts.rows}})}function v(e){l.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.sugarcrmAccounts.rows,{id:e.id}),A.sugarcrmAccounts.count-=1,A.sugarcrmAccounts.rows.length||A.getSugarcrmAccounts(),c.success({title:"SugarcrmAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSugarcrmAccounts);return A.selectedSugarcrmAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+A.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSugarcrmAccounts.forEach(function(e){v(e)}),A.selectedSugarcrmAccounts=[]})}function E(){A.selectedSugarcrmAccounts=[]}function y(){A.selectedSugarcrmAccounts=A.sugarcrmAccounts.rows}var A=this;A.sugarcrmAccounts=r||{count:0,rows:[]},A.table="sugarcrmAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedSugarcrmAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSugarcrmAccounts=g,A.createOrEditSugarcrmAccount=h,A.deleteSugarcrmAccount=v,A.exportSelectedSugarcrmAccounts=b,A.deleteSelectedSugarcrmAccounts=f,A.deselectSugarcrmAccounts=E,A.selectAllSugarcrmAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sugarcrmAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.save(p.zendeskAccount).$promise.then(function(e){p.zendeskAccounts.unshift(e),i.success({title:"ZendeskAccount properly created",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intZendeskAccount.update({id:p.zendeskAccount.id},p.zendeskAccount).$promise.then(function(e){var t=_.find(p.zendeskAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"ZendeskAccount properly saved!",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intZendeskAccount.delete({id:p.zendeskAccount.id}).$promise.then(function(){_.remove(p.zendeskAccounts,{id:p.zendeskAccount.id}),i.success({title:"ZendeskAccount properly deleted!",msg:(p.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),u(p.zendeskAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",p.zendeskAccount=angular.copy(s),p.zendeskAccounts=o,p.newZendeskAccount=!1,p.zendeskAccount||(p.zendeskAccount={authType:"password",serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",p.newZendeskAccount=!0),p.addNewZendeskAccount=l,p.saveZendeskAccount=d,p.deleteZendeskAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","zendeskAccounts","zendeskAccount","api"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intZendeskField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intZendeskField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intZendeskField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.zendeskAccounts")}function r(){i.intZendeskAccount.update({id:l.zendeskAccount.id},l.zendeskAccount).$promise.then(function(){a.success({title:"ZendeskAccount updated!",msg:l.zendeskAccount.name?l.zendeskAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.zendeskAccount=e.params.zendeskAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoZendeskAccounts=s,l.saveZendeskAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","zendeskAccount"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intZendeskConfiguration.setTags({id:A.zendeskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.zendeskAccount=e,n.intZendeskAccount.getConfigurations({id:A.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.zendeskConfigurations=e.rows?e.rows:[],A.zendeskConfigurations.length&&A.getZendeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.zendeskConfiguration=A.zendeskConfigurations[e],A.selectedZendeskConfiguration=e,n.intZendeskConfiguration.getSubjects({id:A.zendeskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intZendeskConfiguration.getDescriptions({id:A.zendeskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intZendeskConfiguration.getFields({id:A.zendeskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intZendeskConfiguration.getTags({id:A.zendeskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{zendeskConfiguration:a,zendeskConfigurations:A.zendeskConfigurations}}).finally(function(){A.getZendeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(i.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intZendeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.zendeskConfigurations,{id:i.id}),a.success({title:"ZendeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function c(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+A.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function g(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+A.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function f(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+A.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.zendeskAccount={},A.zendeskConfiguration={},A.zendeskConfigurations=[],A.selectedZendeskConfiguration=-1,A.init=o,A.getZendeskConfiguration=s,A.createOrEditZendeskConfiguration=r,A.deleteZendeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.addConfiguration({id:t.params.id},p.zendeskConfiguration).$promise.then(function(e){p.zendeskConfigurations.unshift(e),i.success({title:"ZendeskConfiguration properly created",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intZendeskConfiguration.update({id:p.zendeskConfiguration.id},p.zendeskConfiguration).$promise.then(function(e){var t=_.find(p.zendeskConfigurations,{id:e.id});t&&_.merge(t,e),i.success({title:"ZendeskConfiguration properly saved!",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intZendeskConfiguration.delete({id:p.zendeskConfiguration.id}).$promise.then(function(){_.remove(p.zendeskConfigurations,{id:p.zendeskConfiguration.id}),i.success({title:"ZendeskConfiguration properly deleted!",msg:(p.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),u(p.zendeskConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",p.zendeskConfiguration=angular.copy(s),p.zendeskConfigurations=o,p.newZendeskConfiguration=!1,p.zendeskConfiguration||(p.zendeskConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",p.newZendeskConfiguration=!0),p.addNewZendeskConfiguration=l,p.saveZendeskConfiguration=d,p.deleteZendeskConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","zendeskConfigurations","zendeskConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the zendeskAccount?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.zendeskAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.intZendeskAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:t,zendeskAccounts:A.zendeskAccounts.rows}})}function v(e){l.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.zendeskAccounts.rows,{id:e.id}),A.zendeskAccounts.count-=1,A.zendeskAccounts.rows.length||A.getZendeskAccounts(),c.success({title:"ZendeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedZendeskAccounts);return A.selectedZendeskAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+A.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedZendeskAccounts.forEach(function(e){v(e)}),A.selectedZendeskAccounts=[]})}function E(){A.selectedZendeskAccounts=[]}function y(){A.selectedZendeskAccounts=A.zendeskAccounts.rows}var A=this;A.zendeskAccounts=r||{count:0,rows:[]},A.table="zendeskAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedZendeskAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",limit:10,page:1},A.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getZendeskAccounts=g,A.createOrEditZendeskAccount=h,A.deleteZendeskAccount=v,A.exportSelectedZendeskAccounts=b,A.deleteSelectedZendeskAccounts=f,A.deselectZendeskAccounts=E,A.selectAllZendeskAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zendeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.mailAccount).$promise.then(function(e){p.mailAccounts.unshift(e),i.success({title:"MailAccount properly created",msg:p.mailAccount.name?p.mailAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(e){var t=_.find(p.mailAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"MailAccount properly saved!",msg:p.mailAccount.name?p.mailAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailAccount.delete({id:p.mailAccount.id}).$promise.then(function(){_.remove(p.mailAccounts,{id:p.mailAccount.id}),i.success({title:"MailAccount properly deleted!",msg:(p.mailAccount.name||"mailAccount")+" has been deleted!"}),u(p.mailAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILACCOUNT",p.mailAccount=angular.copy(s),p.mailAccounts=o,p.newMailAccount=!1,p.mailAccount||(p.mailAccount={},p.title="MAIL.NEW_MAILACCOUNT",p.newMailAccount=!0),p.addNewMailAccount=l,p.saveMailAccount=d,p.deleteMailAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailAccounts","mailAccount","api"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.mailAccount=e,h.query.id=h.mailAccount.id,h.query.MailAccountId=h.mailAccount.id,h.getMailAccountMailDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the mailDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete mailDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.mailAccountMailDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.mailAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMailDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailDisposition:t,mailDispositions:h.mailAccountMailDispositions.rows}})}function p(e){r.mailDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.mailAccountMailDispositions.rows,{id:e.id}),h.mailAccountMailDispositions.count-=1,h.mailAccountMailDispositions.rows.length||h.getMailAccountMailDispositions(),s.success({title:"MailDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected mailDispositions?").htmlContent("<b>"+h.selectedMailAccountMailDispositions.length+" selected</b> will be deleted.").ariaLabel("delete mailDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedMailAccountMailDispositions.forEach(function(e){p(e)}),h.selectedMailAccountMailDispositions=[]})}var h=this;h.mailAccount={},h.mailAccountMailDispositions={count:0,rows:[]},h.selectedMailAccountMailDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getMailAccountMailDispositions=m,h.createOrEditMailAccountMailDisposition=u,h.deleteMailAccountMailDisposition=p,h.deleteSelectedMailAccountMailDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getMailAccountMailDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.mail").controller("MailAccountMailDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailDisposition.save(p.mailDisposition).$promise.then(function(e){p.mailDispositions.unshift(e),i.success({title:"MailDisposition properly created",msg:p.mailDisposition.name?p.mailDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailDisposition.update({id:p.mailDisposition.id},p.mailDisposition).$promise.then(function(e){var t=_.find(p.mailDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"MailDisposition properly saved!",msg:p.mailDisposition.name?p.mailDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailDisposition will be deleted.").ariaLabel("Delete MailDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailDisposition.delete({id:p.mailDisposition.id}).$promise.then(function(){_.remove(p.mailDispositions,{id:p.mailDisposition.id}),i.success({title:"MailDisposition properly deleted!",msg:(p.mailDisposition.name||"mailDisposition")+" has been deleted!"}),u(p.mailDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILDISPOSITION",p.mailDisposition=angular.copy(s),p.mailDispositions=o,p.newMailDisposition=!1,p.mailDisposition||(p.mailDisposition={},p.title="MAIL.NEW_MAILDISPOSITION",p.newMailDisposition=!0),t.params.id&&(p.mailDisposition.MailAccountId=t.params.id),p.addNewMailDisposition=l,p.saveMailDisposition=d,p.deleteMailDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailDispositions","mailDisposition","api"],angular.module("app.mail").controller("CreateOrEditMailDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.mail.mailAccounts")}function r(){i.mailAccount.update({id:l.mailAccount.id},l.mailAccount).$promise.then(function(){a.success({title:"MailAccount updated!",msg:l.mailAccount.name?l.mailAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.mailAccount=e.params.mailAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoMailAccounts=s,l.saveMailAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","mailAccount"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the mailAccount?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:t,mailAccounts:A.mailAccounts.rows}})}function v(e){l.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.mailAccounts.rows,{id:e.id}),A.mailAccounts.count-=1,A.mailAccounts.rows.length||A.getMailAccounts(),c.success({title:"MailAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMailAccounts);return A.selectedMailAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+A.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailAccounts.forEach(function(e){v(e)}),A.selectedMailAccounts=[]})}function E(){A.selectedMailAccounts=[]}function y(){A.selectedMailAccounts=A.mailAccounts.rows}var A=this;A.mailAccounts=r||{count:0,rows:[]},A.table="mailAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedMailAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailAccounts=g,A.createOrEditMailAccount=h,A.deleteMailAccount=v,A.exportSelectedMailAccounts=b,A.deleteSelectedMailAccounts=f,A.deselectMailAccounts=E,A.selectAllMailAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailAccounts","api","msUtils","toasty"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailQueue.save(p.mailQueue).$promise.then(function(e){p.mailQueues.unshift(e),i.success({title:"MailQueue properly created",msg:p.mailQueue.name?p.mailQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailQueue.update({id:p.mailQueue.id},p.mailQueue).$promise.then(function(e){var t=_.find(p.mailQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"MailQueue properly saved!",msg:p.mailQueue.name?p.mailQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailQueue.delete({id:p.mailQueue.id}).$promise.then(function(){_.remove(p.mailQueues,{id:p.mailQueue.id}),i.success({title:"MailQueue properly deleted!",msg:(p.mailQueue.name||"mailQueue")+" has been deleted!"}),u(p.mailQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILQUEUE",p.mailQueue=angular.copy(s),p.mailQueues=o,p.newMailQueue=!1,p.mailQueue||(p.mailQueue={strategy:"beepall"},p.title="MAIL.NEW_MAILQUEUE",p.newMailQueue=!0),p.addNewMailQueue=l,p.saveMailQueue=d,p.deleteMailQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailQueues","mailQueue","api"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.mailQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MAIL.ALL_TEAMS"),labelSelected:i.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,a){n.mailQueue[a?"removeTeams":"addTeams"]({id:s.mailQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.mailQueue.getTeams({id:s.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","mailQueue","$translate"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:d.mailQueues?d.mailQueues.rows:[]}})}function r(){e.go("app.mail.mailQueues")}function l(){i.mailQueue.update({id:d.mailQueue.id},d.mailQueue).$promise.then(function(){a.success({title:"MailQueue updated!",msg:d.mailQueue.name?d.mailQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.mailQueue=e.params.mailQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoMailQueues=r,d.saveMailQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","mailQueue"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the mailQueue?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:A.mailQueues.rows}})}function v(e){l.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.mailQueues.rows,{id:e.id}),A.mailQueues.count-=1,A.mailQueues.rows.length||A.getMailQueues(),c.success({title:"MailQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMailQueues);return A.selectedMailQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+A.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailQueues.forEach(function(e){v(e)}),A.selectedMailQueues=[]})}function E(){A.selectedMailQueues=[]}function y(){A.selectedMailQueues=A.mailQueues.rows}var A=this;A.mailQueues=r||{count:0,rows:[]},A.table="mailQueues",A.listOrder="",A.listOrderAsc=null,A.selectedMailQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailQueues=g,A.createOrEditMailQueue=h,A.deleteMailQueue=v,A.exportSelectedMailQueues=b,A.deleteSelectedMailQueues=f,A.deselectMailQueues=E,A.selectAllMailQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailQueues","api","msUtils","toasty"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.campaign.save(p.ivrCampaign).$promise.then(function(e){p.ivrCampaigns.unshift(e),i.success({title:"IvrCampaign properly created",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.campaign.update({id:p.ivrCampaign.id},p.ivrCampaign).$promise.then(function(e){var t=_.find(p.ivrCampaigns,{id:e.id});t&&_.merge(t,e),i.success({title:"IvrCampaign properly saved!",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.campaign.delete({id:p.ivrCampaign.id}).$promise.then(function(){_.remove(p.ivrCampaigns,{id:p.ivrCampaign.id}),i.success({title:"IvrCampaign properly deleted!",msg:(p.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),u(p.ivrCampaign)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",p.ivrCampaign=angular.copy(s),p.ivrCampaigns=o,p.newIvrCampaign=!1,p.ivrCampaign||(p.ivrCampaign={active:!0,type:"ivr",limitCalls:30,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialGlobalInterval:"07:00-22:00,*,*,*"},p.title="MOTIONDIALER.NEW_IVRCAMPAIGN",p.newIvrCampaign=!0),p.addNewIvrCampaign=l,p.saveIvrCampaign=d,p.deleteIvrCampaign=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","ivrCampaigns","ivrCampaign","api"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.ivrCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.campaign[a?"removeBlackLists":"addBlackLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.campaign.getBlackLists({id:s.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","ivrCampaign","$translate"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperBlacks(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:h.ivrCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperBlacks.rows,{id:e.id}),h.ivrCampaignHopperBlacks.count-=1,h.ivrCampaignHopperBlacks.rows.length||h.getIvrCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+h.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperBlacks.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperBlacks=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperBlacks={count:0,rows:[]},h.selectedIvrCampaignHopperBlacks=[],h.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperBlacks=m,h.createOrEditIvrCampaignHopperBlack=u,h.deleteIvrCampaignHopperBlack=p,h.deleteSelectedIvrCampaignHopperBlacks=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperFinals(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:h.ivrCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperFinals.rows,{id:e.id}),h.ivrCampaignHopperFinals.count-=1,h.ivrCampaignHopperFinals.rows.length||h.getIvrCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+h.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperFinals.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperFinals=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperFinals={count:0,rows:[]},h.selectedIvrCampaignHopperFinals=[],h.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperFinals=m,h.createOrEditIvrCampaignHopperFinal=u,h.deleteIvrCampaignHopperFinal=p,h.deleteSelectedIvrCampaignHopperFinals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperHistories(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:h.ivrCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperHistories.rows,{id:e.id}),h.ivrCampaignHopperHistories.count-=1,h.ivrCampaignHopperHistories.rows.length||h.getIvrCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+h.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperHistories.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperHistories=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperHistories={count:0,rows:[]},h.selectedIvrCampaignHopperHistories=[],h.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperHistories=m,h.createOrEditIvrCampaignHopperHistory=u,h.deleteIvrCampaignHopperHistory=p,h.deleteSelectedIvrCampaignHopperHistories=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHoppers=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHoppers(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:h.ivrCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHoppers.rows,{id:e.id}),h.ivrCampaignHoppers.count-=1,h.ivrCampaignHoppers.rows.length||h.getIvrCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+h.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHoppers.forEach(function(e){p(e)}),h.selectedIvrCampaignHoppers=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHoppers={count:0,rows:[]},h.selectedIvrCampaignHoppers=[],h.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHoppers=m,h.createOrEditIvrCampaignHopper=u,h.deleteIvrCampaignHopper=p,h.deleteSelectedIvrCampaignHoppers=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmHopper.update({id:p.hopper.id},p.hopper).$promise.then(function(e){var t=_.find(p.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:p.hopper.name?p.hopper.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmHopper.delete({id:p.hopper.id}).$promise.then(function(){_.remove(p.hoppers,{id:p.hopper.id}),i.success({title:"Hopper properly deleted!",msg:(p.hopper.name||"hopper")+" has been deleted!"}),u(p.hopper)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_HOPPER",p.hopper=angular.copy(s),p.hoppers=o,p.newHopper=!1,p.hopper||(p.hopper={},p.title="MOTIONDIALER.NEW_HOPPER",p.newHopper=!0),t.params.id&&(p.hopper.CampaignId=t.params.id),p.addNewHopper=l,p.saveHopper=d,p.deleteHopper=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.motiondialer").controller("CreateOrEditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.ivrCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.campaign[a?"removeLists":"addLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.campaign.getLists({id:s.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","ivrCampaign","$translate"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})}function r(e,a){t.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})}function l(){e.go("app.motiondialer.ivrCampaigns")}function d(){i.campaign.update({id:c.ivrCampaign.id},c.ivrCampaign).$promise.then(function(){a.success({title:"IvrCampaign updated!",msg:c.ivrCampaign.name?c.ivrCampaign.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.ivrCampaign=e.params.ivrCampaign||o||{},c.selectedTab=e.params.tab||0,c.listadddialog=s,c.blacklistadddialog=r,c.gotoIvrCampaigns=l,c.saveIvrCampaign=d,i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","ivrCampaign"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e})}function u(e,t){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:x.ivrCampaigns?x.ivrCampaigns.rows:[]}})}function p(e,t){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:x.ivrCampaigns?x.ivrCampaigns.rows:[]}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the ivrCampaign?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){x.ivrCampaigns=e||{count:0,rows:[]}}function v(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.campaign.get(x.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:x.ivrCampaigns.rows}})}function f(e){l.campaign.delete({id:e.id}).$promise.then(function(){_.remove(x.ivrCampaigns.rows,{id:e.id}),x.ivrCampaigns.count-=1,x.ivrCampaigns.rows.length||x.getIvrCampaigns(),c.success({title:"IvrCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=_.clone(x.selectedIvrCampaigns);return x.selectedIvrCampaigns=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+x.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedIvrCampaigns.forEach(function(e){f(e)}),x.selectedIvrCampaigns=[]})}function A(){x.selectedIvrCampaigns=[]}function C(){x.selectedIvrCampaigns=x.ivrCampaigns.rows}var x=this;x.ivrCampaigns=r||{count:0,rows:[]},x.table="ivrCampaigns",x.listOrder="",x.listOrderAsc=null,x.selectedIvrCampaigns=[],x.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",type:"ivr",sort:"-updatedAt",limit:10,page:1},x.editstate=m,x.listadddialog=u,x.blacklistadddialog=p,x.deleteconfirm=g,x.success=h,x.getIvrCampaigns=v,x.createOrEditIvrCampaign=b,x.deleteIvrCampaign=f,x.exportSelectedIvrCampaigns=E,x.deleteSelectedIvrCampaigns=y,x.deselectIvrCampaigns=A,x.selectAllIvrCampaigns=C,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){x.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){x.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){x.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","ivrCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.queueCampaign).$promise.then(function(e){p.queueCampaigns.unshift(e),i.success({title:"QueueCampaign properly created",msg:p.queueCampaign.name?p.queueCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceQueue.update({id:p.queueCampaign.id},p.queueCampaign).$promise.then(function(e){var t=_.find(p.queueCampaigns,{id:e.id});t&&_.merge(t,e),i.success({title:"QueueCampaign properly saved!",msg:p.queueCampaign.name?p.queueCampaign.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceQueue.delete({id:p.queueCampaign.id}).$promise.then(function(){_.remove(p.queueCampaigns,{id:p.queueCampaign.id}),i.success({title:"QueueCampaign properly deleted!",msg:(p.queueCampaign.name||"queueCampaign")+" has been deleted!"}),u(p.queueCampaign)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",p.queueCampaign=angular.copy(s),p.queueCampaigns=o,p.newQueueCampaign=!1,p.queueCampaign||(p.queueCampaign={dialActive:!0,type:"outbound",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialGlobalInterval:"07:00-22:00,*,*,*",dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150},p.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",p.newQueueCampaign=!0),p.addNewQueueCampaign=l,p.saveQueueCampaign=d,p.deleteQueueCampaign=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","queueCampaigns","queueCampaign","api"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.voiceQueue[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.queueCampaign=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:c.queueCampaign.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"QueueCampaign properly "+(a?"removed":"added"),msg:"QueueCampaign has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","queueCampaign","queueCampaigns","realtime","$translate"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeBlackLists":"addBlackLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getBlackLists({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperBlacks(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:h.queueCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperBlacks.rows,{id:e.id}),h.queueCampaignHopperBlacks.count-=1,h.queueCampaignHopperBlacks.rows.length||h.getQueueCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+h.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperBlacks.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperBlacks=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperBlacks={count:0,rows:[]},h.selectedQueueCampaignHopperBlacks=[],h.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperBlacks=m,h.createOrEditQueueCampaignHopperBlack=u,h.deleteQueueCampaignHopperBlack=p,h.deleteSelectedQueueCampaignHopperBlacks=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperFinals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperFinals(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:h.queueCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperFinals.rows,{id:e.id}),h.queueCampaignHopperFinals.count-=1,h.queueCampaignHopperFinals.rows.length||h.getQueueCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+h.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperFinals.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperFinals=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperFinals={count:0,rows:[]},h.selectedQueueCampaignHopperFinals=[],h.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperFinals=m,h.createOrEditQueueCampaignHopperFinal=u,h.deleteQueueCampaignHopperFinal=p,h.deleteSelectedQueueCampaignHopperFinals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperHistories=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperHistories(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:h.queueCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperHistories.rows,{id:e.id}),h.queueCampaignHopperHistories.count-=1,h.queueCampaignHopperHistories.rows.length||h.getQueueCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+h.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperHistories.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperHistories=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperHistories={count:0,rows:[]},h.selectedQueueCampaignHopperHistories=[],h.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperHistories=m,h.createOrEditQueueCampaignHopperHistory=u,h.deleteQueueCampaignHopperHistory=p,h.deleteSelectedQueueCampaignHopperHistories=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHoppers=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHoppers(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:h.queueCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHoppers.rows,{id:e.id}),h.queueCampaignHoppers.count-=1,h.queueCampaignHoppers.rows.length||h.getQueueCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+h.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHoppers.forEach(function(e){p(e)}),h.selectedQueueCampaignHoppers=[]})}var h=this;h.queueCampaign={},h.queueCampaignHoppers={count:0,rows:[]},h.selectedQueueCampaignHoppers=[],h.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHoppers=m,h.createOrEditQueueCampaignHopper=u,h.deleteQueueCampaignHopper=p,h.deleteSelectedQueueCampaignHoppers=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmHopper.update({id:p.hopper.id},p.hopper).$promise.then(function(e){var t=_.find(p.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:p.hopper.name?p.hopper.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmHopper.delete({id:p.hopper.id}).$promise.then(function(){_.remove(p.hoppers,{id:p.hopper.id}),i.success({title:"Hopper properly deleted!",msg:(p.hopper.name||"hopper")+" has been deleted!"}),u(p.hopper)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_HOPPER",p.hopper=angular.copy(s),p.hoppers=o,p.newHopper=!1,p.hopper||(p.hopper={},p.title="MOTIONDIALER.NEW_HOPPER",p.newHopper=!0),t.params.id&&(p.hopper.VoiceQueueId=t.params.id),p.addNewHopper=l,p.saveHopper=d,p.deleteHopper=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.motiondialer").controller("CreateOrEditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeLists":"addLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getLists({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.queueCampaign.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function r(e,a){t.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function l(e,a){t.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function d(e,a){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],realtime:!1}})}function c(){e.go("app.motiondialer.queueCampaigns")}function m(){i.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){a.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var u=this;u.queueCampaign=e.params.queueCampaign||o||{},u.selectedTab=e.params.tab||0,u.listadddialog=s,u.blacklistadddialog=r,u.teamadddialog=l,u.agentadddialog=d,u.gotoQueueCampaigns=c,u.saveQueueCampaign=m,i.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","queueCampaign"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e})}function u(e,t){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function p(e,t){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function g(e,t){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function h(e,t){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[],realtime:!1}})}function v(e,t){var n=i.confirm().title("Are you sure want to delete the queueCampaign?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function b(e){S.queueCampaigns=e||{count:0,rows:[]}}function f(){S.query.offset=(S.query.page-1)*S.query.limit,S.promise=l.voiceQueue.get(S.query,b).$promise}function E(e,t){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:S.queueCampaigns.rows}})}function y(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(S.queueCampaigns.rows,{id:e.id}),S.queueCampaigns.count-=1,S.queueCampaigns.rows.length||S.getQueueCampaigns(),c.success({title:"QueueCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=_.clone(S.selectedQueueCampaigns);return S.selectedQueueCampaigns=[],e}function C(e){var t=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+S.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){S.selectedQueueCampaigns.forEach(function(e){y(e)}),S.selectedQueueCampaigns=[]})}function x(){S.selectedQueueCampaigns=[]}function T(){S.selectedQueueCampaigns=S.queueCampaigns.rows}var S=this;S.queueCampaigns=r||{count:0,rows:[]},S.table="queueCampaigns",S.listOrder="",S.listOrderAsc=null,S.selectedQueueCampaigns=[],S.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",limit:10,page:1},S.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.editstate=m,S.listadddialog=u,S.blacklistadddialog=p,S.teamadddialog=g,S.agentadddialog=h,S.deleteconfirm=v,S.success=b,S.getQueueCampaigns=f,S.createOrEditQueueCampaign=E,S.deleteQueueCampaign=y,S.exportSelectedQueueCampaigns=A,S.deleteSelectedQueueCampaigns=C,S.deselectQueueCampaigns=x,S.selectAllQueueCampaigns=T,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){S.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){S.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var O=!0,w=1;e.$watch("vm.query.filter",function(e,t){O?s(function(){O=!1}):(t||(w=S.query.page),e!==t&&(S.query.page=1),e||(S.query.page=w),S.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","queueCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],C))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+"  properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"outbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,C))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,C=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var x=!0,T=1;e.$watch("vm.query.filter",function(e,n){x?t(function(){x=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.motiondialer").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){_.forIn(g.campaigns,function(e,t){g.rpcCampaigns[t]&&_.merge(e,_.pick(g.rpcCampaigns[t],h))})}function c(e){g.campaigns[e.id]&&(_.merge(g.campaigns[e.id],_.pick(e,h)),_.merge(g.rpcCampaigns[e.id],_.pick(e,h)))}function m(e){g.count=e.count,g.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},d()}function u(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.campaign.get(g.query,m).$promise}function p(e,t){n.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:_.values(g.campaigns)}})}var g=this,h=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];g.count=o.count,g.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcCampaigns=i?_.keyBy(i.rows?i.rows:[],"id"):{},g.query={sort:"-updatedAt",limit:10,page:1},g.success=m,g.getCampaigns=u,g.onSave=c,g.$onInit=d,g.createOrEditIvrCampaign=p,r.on("campaign:save",g.onSave);var v=!0,b=1;e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(b=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=b),g.getCampaigns())}),e.$on("$destroy",function(){r.removeAllListeners("campaign:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","rpcCampaigns","campaigns","api","socket","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"outbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t<e.length;t+=1)for(var n=0;n<e[t].rows.length;n++)e[t].rows[n].paused&&E.queues[e[t].rows[n].VoiceQueueId].paused++,E.queues[e[t].rows[n].VoiceQueueId].loggedInDb++}).catch(function(e){console.error(e)})}function u(e){E.queues[e.id]&&_.merge(E.queues[e.id],_.pick(e,y))}function p(e){}function g(e){E.count=e.count,E.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function h(){E.query.offset=(E.query.page-1)*E.query.limit,c.hasRole("admin")?E.promise=r.voiceQueue.get(E.query,g).$promise:E.promise=r.user.getQueues(E.query,g).$promise}function v(e,t){n.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:_.values(E.queues)}})}function b(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:E.queues?E.queues.rows:[],realtime:!0}})}function f(e){return r.voiceQueue.update(e).$promise.then(function(){d.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){d.error({title:"Error creating queue!",msg:e.message})})}var E=this,y=["loggedIn","available","waiting","talking","originated","message","dialActive","dialMethod","Trunk"];E.count=o.count,E.queues=o?_.keyBy(o.rows?o.rows:[],"id"):{},E.rpcQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.hasRole("admin")?E.query={type:"outbound",sort:"-updatedAt",limit:10,page:1}:E.query={id:c.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1},E.success=g,E.getQueues=h,E.createOrEditVoiceQueue=v,E.agentAdd=b,E.updateQueue=f,E.onSave=u,E.onSaveMember=p,E.$onInit=m,l.on("voice_queue:save",E.onSave),l.on("userVoiceQueueRt:save",E.onSaveMember),l.on("userVoiceQueueRt:update",E.onSaveMember);var A=!0,C=1;e.$watch("vm.query.filter",function(e,n){A?t(function(){A=!1}):(n||(C=E.query.page),e!==n&&(E.query.page=1),e||(E.query.page=C),E.getQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("userVoiceQueueRt:save"),l.removeAllListeners("userVoiceQueueRt:update")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}}angular.module("app.auth").factory("helperClasses",e)}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":a.selectedTab=0;break;case"app.motiondialer.realtime.queues":a.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":a.selectedTab=2;break;case"app.motiondialer.realtime.queue_params":a.selectedTab=3;break;case"app.motiondialer.realtime.ivr_campaigns":a.selectedTab=4;break;default:a.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.queue_params");break;case 4:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelAccount.save(p.openchannelAccount).$promise.then(function(e){p.openchannelAccounts.unshift(e),i.success({title:"OpenchannelAccount properly created",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(e){var t=_.find(p.openchannelAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelAccount properly saved!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelAccount.delete({id:p.openchannelAccount.id}).$promise.then(function(){_.remove(p.openchannelAccounts,{id:p.openchannelAccount.id}),i.success({title:"OpenchannelAccount properly deleted!",msg:(p.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),u(p.openchannelAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",p.openchannelAccount=angular.copy(s),p.openchannelAccounts=o,p.newOpenchannelAccount=!1,p.openchannelAccount||(p.openchannelAccount={remote:n.protocol()+"://"+n.host()+":"+n.port()},p.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",p.newOpenchannelAccount=!0),p.addNewOpenchannelAccount=l,p.saveOpenchannelAccount=d,p.deleteOpenchannelAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelAccounts","openchannelAccount","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.openchannelAccount=e,h.query.id=h.openchannelAccount.id,h.query.OpenchannelAccountId=h.openchannelAccount.id,h.getOpenchannelAccountOpenchannelDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete openchannelDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.openchannelAccountOpenchannelDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.openchannelAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditOpenchannelDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelDisposition:t,openchannelDispositions:h.openchannelAccountOpenchannelDispositions.rows}})}function p(e){r.openchannelDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.openchannelAccountOpenchannelDispositions.rows,{id:e.id}),h.openchannelAccountOpenchannelDispositions.count-=1,h.openchannelAccountOpenchannelDispositions.rows.length||h.getOpenchannelAccountOpenchannelDispositions(),s.success({title:"OpenchannelDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelDispositions?").htmlContent("<b>"+h.selectedOpenchannelAccountOpenchannelDispositions.length+" selected</b> will be deleted.").ariaLabel("delete openchannelDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedOpenchannelAccountOpenchannelDispositions.forEach(function(e){p(e)}),h.selectedOpenchannelAccountOpenchannelDispositions=[]})}var h=this;h.openchannelAccount={},h.openchannelAccountOpenchannelDispositions={count:0,rows:[]},h.selectedOpenchannelAccountOpenchannelDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getOpenchannelAccountOpenchannelDispositions=m,h.createOrEditOpenchannelAccountOpenchannelDisposition=u,h.deleteOpenchannelAccountOpenchannelDisposition=p,h.deleteSelectedOpenchannelAccountOpenchannelDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getOpenchannelAccountOpenchannelDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelDisposition.save(p.openchannelDisposition).$promise.then(function(e){p.openchannelDispositions.unshift(e),i.success({title:"OpenchannelDisposition properly created",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelDisposition.update({id:p.openchannelDisposition.id},p.openchannelDisposition).$promise.then(function(e){var t=_.find(p.openchannelDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelDisposition properly saved!",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelDisposition will be deleted.").ariaLabel("Delete OpenchannelDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelDisposition.delete({id:p.openchannelDisposition.id}).$promise.then(function(){_.remove(p.openchannelDispositions,{id:p.openchannelDisposition.id}),i.success({title:"OpenchannelDisposition properly deleted!",msg:(p.openchannelDisposition.name||"openchannelDisposition")+" has been deleted!"}),u(p.openchannelDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION",p.openchannelDisposition=angular.copy(s),p.openchannelDispositions=o,p.newOpenchannelDisposition=!1,p.openchannelDisposition||(p.openchannelDisposition={},p.title="OPENCHANNEL.NEW_OPENCHANNELDISPOSITION",p.newOpenchannelDisposition=!0),t.params.id&&(p.openchannelDisposition.OpenchannelAccountId=t.params.id),p.addNewOpenchannelDisposition=l,p.saveOpenchannelDisposition=d,p.deleteOpenchannelDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelDispositions","openchannelDisposition","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.openchannel.openchannelAccounts")}function r(){i.openchannelAccount.update({id:l.openchannelAccount.id},l.openchannelAccount).$promise.then(function(){a.success({title:"OpenchannelAccount updated!",msg:l.openchannelAccount.name?l.openchannelAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.openchannelAccount=e.params.openchannelAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoOpenchannelAccounts=s,l.saveOpenchannelAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","openchannelAccount"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelAccount?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:t,openchannelAccounts:A.openchannelAccounts.rows}})}function v(e){l.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelAccounts.rows,{id:e.id}),A.openchannelAccounts.count-=1,A.openchannelAccounts.rows.length||A.getOpenchannelAccounts(),c.success({title:"OpenchannelAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOpenchannelAccounts);return A.selectedOpenchannelAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+A.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelAccounts.forEach(function(e){v(e)}),A.selectedOpenchannelAccounts=[]})}function E(){A.selectedOpenchannelAccounts=[]}function y(){A.selectedOpenchannelAccounts=A.openchannelAccounts.rows}var A=this;A.openchannelAccounts=r||{count:0,rows:[]},A.table="openchannelAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelAccounts=g,A.createOrEditOpenchannelAccount=h,A.deleteOpenchannelAccount=v,A.exportSelectedOpenchannelAccounts=b,A.deleteSelectedOpenchannelAccounts=f,A.deselectOpenchannelAccounts=E,A.selectAllOpenchannelAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelAccounts","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelQueue.save(p.openchannelQueue).$promise.then(function(e){p.openchannelQueues.unshift(e),i.success({title:"OpenchannelQueue properly created",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelQueue.update({id:p.openchannelQueue.id},p.openchannelQueue).$promise.then(function(e){var t=_.find(p.openchannelQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelQueue properly saved!",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelQueue.delete({id:p.openchannelQueue.id}).$promise.then(function(){_.remove(p.openchannelQueues,{id:p.openchannelQueue.id}),i.success({title:"OpenchannelQueue properly deleted!",msg:(p.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),u(p.openchannelQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",p.openchannelQueue=angular.copy(s),p.openchannelQueues=o,p.newOpenchannelQueue=!1,p.openchannelQueue||(p.openchannelQueue={strategy:"beepall"},p.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",p.newOpenchannelQueue=!0),p.addNewOpenchannelQueue=l,p.saveOpenchannelQueue=d,p.deleteOpenchannelQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelQueues","openchannelQueue","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.openchannelQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:i.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,a){n.openchannelQueue[a?"removeTeams":"addTeams"]({id:s.openchannelQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.openchannelQueue.getTeams({id:s.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","openchannelQueue","$translate"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:d.openchannelQueues?d.openchannelQueues.rows:[]}})}function r(){e.go("app.openchannel.openchannelQueues")}function l(){i.openchannelQueue.update({id:d.openchannelQueue.id},d.openchannelQueue).$promise.then(function(){a.success({title:"OpenchannelQueue updated!",msg:d.openchannelQueue.name?d.openchannelQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.openchannelQueue=e.params.openchannelQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoOpenchannelQueues=r,d.saveOpenchannelQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","openchannelQueue"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelQueue?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:A.openchannelQueues.rows}})}function v(e){l.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelQueues.rows,{id:e.id}),A.openchannelQueues.count-=1,A.openchannelQueues.rows.length||A.getOpenchannelQueues(),c.success({title:"OpenchannelQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOpenchannelQueues);return A.selectedOpenchannelQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+A.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelQueues.forEach(function(e){v(e)}),A.selectedOpenchannelQueues=[]})}function E(){A.selectedOpenchannelQueues=[]}function y(){A.selectedOpenchannelQueues=A.openchannelQueues.rows}var A=this;A.openchannelQueues=r||{count:0,rows:[]},A.table="openchannelQueues",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelQueues=g,A.createOrEditOpenchannelQueue=h,A.deleteOpenchannelQueue=v,A.exportSelectedOpenchannelQueues=b,A.deleteSelectedOpenchannelQueues=f,A.deselectOpenchannelQueues=E,A.selectAllOpenchannelQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelQueues","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.customization).$promise.then(function(e){p.customizations.unshift(e),i.success({title:"Customization properly created",msg:p.customization.name?p.customization.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.setting.update({id:p.customization.id},p.customization).$promise.then(function(e){var t=_.find(p.customizations,{id:e.id});t&&_.merge(t,e),i.success({title:"Customization properly saved!",msg:p.customization.name?p.customization.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.setting.delete({id:p.customization.id}).$promise.then(function(){_.remove(p.customizations,{id:p.customization.id}),i.success({title:"Customization properly deleted!",msg:(p.customization.name||"customization")+" has been deleted!"}),u(p.customization)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_CUSTOMIZATION",p.customization=angular.copy(s),p.customizations=o,p.newCustomization=!1,p.customization||(p.customization={},p.title="SETTINGS.NEW_CUSTOMIZATION",p.newCustomization=!0),p.addNewCustomization=l,p.saveCustomization=d,p.deleteCustomization=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customizations","customization","api"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){i.customization.id?t.setting.update({id:i.customization.id},i.customization).$promise.then(function(){n.success({title:"Customization updated!",msg:i.customization.name?i.customization.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.setting.save(i.customization).$promise.then(function(e){_.merge(i.customization,e),n.success({title:"Customization updated!",msg:i.customization.name?i.customization.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}var i=this;i.customizations=e,i.customization={},i.customizations&&i.customizations.rows&&i.customizations.rows.length&&(i.customization=i.customizations.rows[0]),i.saveCustomization=a}e.$inject=["customizations","api","toasty"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo",s.customization.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo_login",s.customization.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.general).$promise.then(function(e){p.generals.unshift(e),i.success({title:"General properly created",msg:p.general.name?p.general.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.setting.update({id:p.general.id},p.general).$promise.then(function(e){var t=_.find(p.generals,{id:e.id});t&&_.merge(t,e),i.success({title:"General properly saved!",msg:p.general.name?p.general.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.setting.delete({id:p.general.id}).$promise.then(function(){_.remove(p.generals,{id:p.general.id}),i.success({title:"General properly deleted!",msg:(p.general.name||"general")+" has been deleted!"}),u(p.general)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_GENERAL",p.general=angular.copy(s),p.generals=o,p.newGeneral=!1,p.general||(p.general={min_internal:1e3,min_mailbox:1e3},p.title="SETTINGS.NEW_GENERAL",p.newGeneral=!0),p.addNewGeneral=l,p.saveGeneral=d,p.deleteGeneral=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","generals","general","api"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){i.general.id?t.setting.update({id:i.general.id},i.general).$promise.then(function(){n.success({title:"General updated!",msg:i.general.name?i.general.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.setting.save(i.general).$promise.then(function(e){_.merge(i.general,e),n.success({title:"General updated!",msg:i.general.name?i.general.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}var i=this;i.generals=e,i.general={},i.generals&&i.generals.rows&&i.generals.rows.length&&(i.general=i.generals.rows[0]),i.saveGeneral=a}e.$inject=["generals","api","toasty"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var n=t.prompt().title("Do you want update manually your license?").textContent("Enter your license.").targetEvent(e).ok("Ok").cancel("Cancel");t.show(n).then(function(e){if(e)return i.license.update({id:1,license:e}).$promise.then(function(){a.success({title:"License properly updated!",msg:"The license has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){console.error(e)})}function s(a){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(e.body),targetEvent:a,clickOutsideToClose:!0,locals:{license:n,channels:r.channels,modules:r.modules,others:r.others}})}var r=this;r.license=n||{},r.license.gray&&(r.license.deadline=moment(r.license.gray).add(7,"days").format("MMMM Do YYYY, HH:MM")),r.channels=[{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"}],r.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],r.others=[{name:"custom",icon:"icon-table-edit"},{name:"update",icon:"icon-cloud-download"}],r.requestLicense=s,r.updateLicense=o}e.$inject=["$document","$mdDialog","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){c.errors=[],c.table="||FIELD||VALUE||\n";for(var e in c.license)c.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(c.table+="|"+e+"|"+c.license[e]+"\n");s.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:c.table,issuetype:"Task"}).$promise.then(function(e){t.success({title:"Request "+e.id+" sent!",msg:"The license request has been sent! We will respond as soon as possible."}),d()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.jira"}]})}function d(){e.hide()}var c=this;c.errors=[],c.user=r.getCurrentUser(),c.license=angular.copy(n),c.channels=a,c.modules=i,c.others=o,c.license.name=c.user.fullname,c.license.email=c.user.email,c.sendRequest=l,c.closeDialog=d}e.$inject=["$mdDialog","toasty","license","channels","modules","others","api","Auth"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.network.save(p.network).$promise.then(function(e){p.networks.unshift(e),i.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.network.update({id:p.network.id},p.network).$promise.then(function(e){var t=_.find(p.networks,{id:e.id});t&&_.merge(t,e),i.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),i.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),u(p.network)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(s),p.networks=o,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=l,p.saveNetwork=d,p.deleteNetwork=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","networks","network","api"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{network:e,networks:A.networks.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the network?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.networks=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.network.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:t,networks:A.networks.rows}})}function v(e){l.network.delete({id:e.id}).$promise.then(function(){_.remove(A.networks.rows,{id:e.id}),A.networks.count-=1,A.networks.rows.length||A.getNetworks(),c.success({title:"Network deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETnetwork",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedNetworks);return A.selectedNetworks=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+A.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedNetworks.forEach(function(e){v(e)}),A.selectedNetworks=[]})}function E(){A.selectedNetworks=[]}function y(){A.selectedNetworks=A.networks.rows}var A=this;A.networks=r||{count:0,rows:[]},A.table="networks",A.listOrder="",A.listOrderAsc=null,A.selectedNetworks=[],A.query={fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getNetworks=g,A.createOrEditNetwork=h,A.deleteNetwork=v,A.exportSelectedNetworks=b,A.deleteSelectedNetworks=f,A.deselectNetworks=E,A.selectAllNetworks=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","networks","api","msUtils","toasty"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.smtp).$promise.then(function(e){p.smtps.unshift(e),i.success({title:"Smtp properly created",msg:p.smtp.name?p.smtp.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailAccount.update({id:p.smtp.id},p.smtp).$promise.then(function(e){var t=_.find(p.smtps,{id:e.id});t&&_.merge(t,e),i.success({title:"Smtp properly saved!",msg:p.smtp.name?p.smtp.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailAccount.delete({id:p.smtp.id}).$promise.then(function(){_.remove(p.smtps,{id:p.smtp.id}),i.success({title:"Smtp properly deleted!",msg:(p.smtp.name||"smtp")+" has been deleted!"}),u(p.smtp)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_SMTP",p.smtp=angular.copy(s),p.smtps=o,p.newSmtp=!1,p.smtp||(p.smtp={service:"true"},p.title="SETTINGS.NEW_SMTP",p.newSmtp=!0),p.addNewSmtp=l,p.saveSmtp=d,p.deleteSmtp=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smtps","smtp","api"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){o.smtp.id&&t.mailAccount.verifySmtp({id:o.smtp.id}).$promise.then(function(){n.success({title:"Smtp verified!",msg:o.smtp.name?o.smtp.name+" has been verified!":""})}).catch(function(e){n.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}function i(){o.smtp.id?t.mailAccount.update({id:o.smtp.id},o.smtp).$promise.then(function(){n.success({title:"Smtp updated!",msg:o.smtp.name?o.smtp.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.mailAccount.save(o.smtp).$promise.then(function(e){_.merge(o.smtp,e),n.success({title:"Smtp updated!",msg:o.smtp.name?o.smtp.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var o=this;o.smtps=e,o.smtp={},o.smtps&&o.smtps.rows&&o.smtps.rows.length?o.smtp=o.smtps.rows[0]:o.smtp={service:!0,Smtp:{service:null}},o.saveSmtp=i,o.verifySmtp=a}e.$inject=["smtps","api","toasty"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e){t.cancel(m)}function l(e,a,i){var r=n.confirm().title("Would you like to change the status of the process #"+a+"?").textContent("The status will be changed to: "+i.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");n.show(r).then(function(){return s.pm2.update({id:a,status:i})}).then(function(){t(u.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+i})})}function d(){return s.system.get().$promise.then(function(e){_.merge(u.system,e)}).catch(u.cancelInterval)}function c(){return s.pm2.get().$promise.then(function(e){_.merge(u.processes,e?e.rows:[])}).catch(u.cancelInterval)}var m,u=this;u.system=a||{},u.processes=i?i.rows:[],u.processLimit=7,u.getInfo=d,u.getProcesses=c,u.cancelInterval=r,u.updateProcess=l,m=t(u.getInfo,5e3),e.$on("$destroy",function(){u.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){angular.isDefined(l.interval)&&(t.cancel(l.interval),l.interval=void 0),l.progress=100,l.updating=!1}function s(){n.location.reload()}function r(){e.hide()}var l=this;l.title="SETTINGS.UPDATE",l.progress=0,l.updating=!0,l.output="Waiting...",l.success=!0,l.interval=t(function(){l.progress<90&&(l.progress+=1)},1e3),l.closeDialog=r,l.reload=s,l.stopInterval=o,i.version.fetch().$promise.then(function(e){return l.output=e.output+"...",i.version.reset().$promise}).then(function(e){return l.output=e.output+"...",i.version.pull().$promise}).then(function(e){return l.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return l.output=e.output+"...",i.version.restart().$promise}).then(function(e){l.output="Waiting to restart motion...",a(function(){l.stopInterval()},3e4)}).catch(function(e){l.success=!1,l.stopInterval(),l.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){var a=e.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(t).clickOutsideToClose(!0).parent(angular.element(n.body)).ok("I agree").cancel("Disagree");e.show(a).then(function(){e.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!1})})}var s=this;s.version=a||{},s.updateConfirm=o}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsAccount.save(p.smsAccount).$promise.then(function(e){p.smsAccounts.unshift(e),i.success({title:"SmsAccount properly created",msg:p.smsAccount.name?p.smsAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(e){var t=_.find(p.smsAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsAccount properly saved!",msg:p.smsAccount.name?p.smsAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsAccount.delete({id:p.smsAccount.id}).$promise.then(function(){_.remove(p.smsAccounts,{id:p.smsAccount.id}),i.success({title:"SmsAccount properly deleted!",msg:(p.smsAccount.name||"smsAccount")+" has been deleted!"}),u(p.smsAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSACCOUNT",p.smsAccount=angular.copy(s),p.smsAccounts=o,p.newSmsAccount=!1,p.smsAccount||(p.smsAccount={smstype:"basic",remote:n.protocol()+"://"+n.host()+":"+n.port()},p.title="SMS.NEW_SMSACCOUNT",p.newSmsAccount=!0),p.addNewSmsAccount=l,p.saveSmsAccount=d,p.deleteSmsAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsAccounts","smsAccount","api"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.smsAccount=e,h.query.id=h.smsAccount.id,h.query.SmsAccountId=h.smsAccount.id,h.getSmsAccountSmsDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the smsDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete smsDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.smsAccountSmsDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.smsAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditSmsDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsDisposition:t,smsDispositions:h.smsAccountSmsDispositions.rows}})}function p(e){r.smsDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.smsAccountSmsDispositions.rows,{id:e.id}),h.smsAccountSmsDispositions.count-=1,h.smsAccountSmsDispositions.rows.length||h.getSmsAccountSmsDispositions(),s.success({title:"SmsDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected smsDispositions?").htmlContent("<b>"+h.selectedSmsAccountSmsDispositions.length+" selected</b> will be deleted.").ariaLabel("delete smsDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedSmsAccountSmsDispositions.forEach(function(e){p(e)}),h.selectedSmsAccountSmsDispositions=[]})}var h=this;h.smsAccount={},h.smsAccountSmsDispositions={count:0,rows:[]},h.selectedSmsAccountSmsDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getSmsAccountSmsDispositions=m,h.createOrEditSmsAccountSmsDisposition=u,h.deleteSmsAccountSmsDisposition=p,h.deleteSelectedSmsAccountSmsDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getSmsAccountSmsDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.sms").controller("SmsAccountSmsDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsDisposition.save(p.smsDisposition).$promise.then(function(e){p.smsDispositions.unshift(e),i.success({title:"SmsDisposition properly created",msg:p.smsDisposition.name?p.smsDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsDisposition.update({id:p.smsDisposition.id},p.smsDisposition).$promise.then(function(e){var t=_.find(p.smsDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsDisposition properly saved!",msg:p.smsDisposition.name?p.smsDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsDisposition will be deleted.").ariaLabel("Delete SmsDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsDisposition.delete({id:p.smsDisposition.id}).$promise.then(function(){_.remove(p.smsDispositions,{id:p.smsDisposition.id}),i.success({title:"SmsDisposition properly deleted!",msg:(p.smsDisposition.name||"smsDisposition")+" has been deleted!"}),u(p.smsDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSDISPOSITION",p.smsDisposition=angular.copy(s),p.smsDispositions=o,p.newSmsDisposition=!1,p.smsDisposition||(p.smsDisposition={},p.title="SMS.NEW_SMSDISPOSITION",p.newSmsDisposition=!0),t.params.id&&(p.smsDisposition.SmsAccountId=t.params.id),p.addNewSmsDisposition=l,p.saveSmsDisposition=d,p.deleteSmsDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsDispositions","smsDisposition","api"],angular.module("app.sms").controller("CreateOrEditSmsDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.sms.smsAccounts")}function r(){i.smsAccount.update({id:l.smsAccount.id},l.smsAccount).$promise.then(function(){a.success({title:"SmsAccount updated!",msg:l.smsAccount.name?l.smsAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.smsAccount=e.params.smsAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSmsAccounts=s,l.saveSmsAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","smsAccount"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the smsAccount?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:t,smsAccounts:A.smsAccounts.rows}})}function v(e){l.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.smsAccounts.rows,{id:e.id}),A.smsAccounts.count-=1,A.smsAccounts.rows.length||A.getSmsAccounts(),c.success({title:"SmsAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSmsAccounts);return A.selectedSmsAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+A.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsAccounts.forEach(function(e){v(e)}),A.selectedSmsAccounts=[]})}function E(){A.selectedSmsAccounts=[]}function y(){A.selectedSmsAccounts=A.smsAccounts.rows}var A=this;A.smsAccounts=r||{count:0,rows:[]},A.table="smsAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedSmsAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysmstype=_.keyBy([{option:"Basic",value:"'basic'"},{option:"Classic",value:"'classic'"},{option:"Classic+",value:"'classic+'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsAccounts=g,A.createOrEditSmsAccount=h,A.deleteSmsAccount=v,A.exportSelectedSmsAccounts=b,A.deleteSelectedSmsAccounts=f,A.deselectSmsAccounts=E,A.selectAllSmsAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsAccounts","api","msUtils","toasty"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsQueue.save(p.smsQueue).$promise.then(function(e){p.smsQueues.unshift(e),i.success({title:"SmsQueue properly created",msg:p.smsQueue.name?p.smsQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsQueue.update({id:p.smsQueue.id},p.smsQueue).$promise.then(function(e){var t=_.find(p.smsQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsQueue properly saved!",msg:p.smsQueue.name?p.smsQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsQueue.delete({id:p.smsQueue.id}).$promise.then(function(){_.remove(p.smsQueues,{id:p.smsQueue.id}),i.success({title:"SmsQueue properly deleted!",msg:(p.smsQueue.name||"smsQueue")+" has been deleted!"}),u(p.smsQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSQUEUE",p.smsQueue=angular.copy(s),p.smsQueues=o,p.newSmsQueue=!1,p.smsQueue||(p.smsQueue={strategy:"beepall"},p.title="SMS.NEW_SMSQUEUE",p.newSmsQueue=!0),p.addNewSmsQueue=l,p.saveSmsQueue=d,p.deleteSmsQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsQueues","smsQueue","api"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.smsQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("SMS.ALL_TEAMS"),labelSelected:i.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,a){n.smsQueue[a?"removeTeams":"addTeams"]({id:s.smsQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.smsQueue.getTeams({id:s.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","smsQueue","$translate"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:d.smsQueues?d.smsQueues.rows:[]}})}function r(){e.go("app.sms.smsQueues")}function l(){i.smsQueue.update({id:d.smsQueue.id},d.smsQueue).$promise.then(function(){a.success({title:"SmsQueue updated!",msg:d.smsQueue.name?d.smsQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.smsQueue=e.params.smsQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoSmsQueues=r,d.saveSmsQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","smsQueue"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the smsQueue?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:A.smsQueues.rows}})}function v(e){l.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.smsQueues.rows,{id:e.id}),A.smsQueues.count-=1,A.smsQueues.rows.length||A.getSmsQueues(),c.success({title:"SmsQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSmsQueues);return A.selectedSmsQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+A.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsQueues.forEach(function(e){v(e)}),A.selectedSmsQueues=[]})}function E(){A.selectedSmsQueues=[]}function y(){A.selectedSmsQueues=A.smsQueues.rows}var A=this;A.smsQueues=r||{count:0,rows:[]},A.table="smsQueues",A.listOrder="",A.listOrderAsc=null,A.selectedSmsQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsQueues=g,A.createOrEditSmsQueue=h,A.deleteSmsQueue=v,A.exportSelectedSmsQueues=b,A.deleteSelectedSmsQueues=f,A.deselectSmsQueues=E,A.selectAllSmsQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsQueues","api","msUtils","toasty"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.agents.edit",{id:e.id,agent:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.agents=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:t,agents:A.agents.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.agents.rows,{id:e.id}),A.agents.count-=1,A.agents.rows.length||A.getAgents(),c.success({title:"Agent deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedAgents);return A.selectedAgents=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+A.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedAgents.forEach(function(e){v(e)}),A.selectedAgents=[]})}function E(){A.selectedAgents=[]}function y(){A.selectedAgents=A.agents.rows}var A=this;A.agents=r||{count:0,rows:[]},A.table="agents",A.listOrder="",A.listOrderAsc=null,A.selectedAgents=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getAgents=g,A.createOrEditAgent=h,A.deleteAgent=v,A.exportSelectedAgents=b,A.deleteSelectedAgents=f,A.deselectAgents=E,A.selectAllAgents=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","agents","api","msUtils","toasty"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.agent).$promise.then(function(e){p.agents.unshift(e),i.success({title:"Agent properly created",msg:p.agent.name?p.agent.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.agent.id},p.agent).$promise.then(function(e){var t=_.find(p.agents,{id:e.id});t&&_.merge(t,e),i.success({title:"Agent properly saved!",msg:p.agent.name?p.agent.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.agent.id}).$promise.then(function(){_.remove(p.agents,{id:p.agent.id}),i.success({title:"Agent properly deleted!",msg:(p.agent.name||"agent")+" has been deleted!"}),u(p.agent)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_AGENT",p.agent=angular.copy(s),p.agents=o,p.newAgent=!1,p.agent||(p.agent={role:"agent",autointernal:!0,type:"friend"},p.title="STAFF.NEW_AGENT",p.newAgent=!0),p.addNewAgent=l,p.saveAgent=d,p.deleteAgent=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","agents","agent","api"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,t){function n(e){s.agent=angular.copy(e),s.ngFlowOptions.target="api/users/"+s.agent.id+"/avatar",s.agent.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.agent.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.agent.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.agent={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.agent.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Agent password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.agent=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","agent"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){n.user[m.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:m.agent.id,fields:m.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy",channel:i,nolimit:!0}).$promise.then(function(e){return m.isVoiceRealtime()?m.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],n[m.apiname].get({fields:"id,name,strategy",nolimit:!0,type:s}).$promise}).then(function(e){m.items=e.rows?e.rows:[],m.selectedItems=_.intersectionBy(m.selectedItems,m.items,"id"),m.dualMultiselectOptions.selectedItems=m.selectedItems,m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o&&"voice"===i}function c(){e.hide()}var m=this;m.agent=a,m.penalty=0,m.apiname=i+"Queue",m.title=r.instant("STAFF.QUEUEADD_AGENT_"+i.toUpperCase()+"_"+s.toUpperCase()),m.items=[],m.selectedItems=[],m.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"strategy",line3:"penalty",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:m.agent.id,ids:_.map(e,"id"),channel:i,penalty:m.penalty||0,realtime:o}).$promise.then(function(){l(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.closeDialog=c,m.isVoiceRealtime=d,l()}e.$inject=["$mdDialog","toasty","api","agent","channel","realtime","direction","$translate"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a,i){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(n.body),targetEvent:i,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[],channel:a,realtime:!1,direction:"inbound"}})}function r(e,a){t.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[]}})}function l(){e.go("app.staff.agents")}function d(){i.user.update({id:c.agent.id},c.agent).$promise.then(function(){a.success({title:"Agent updated!",msg:c.agent.name?c.agent.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.agent=e.params.agent||o||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=s,c.changepassworddialog=r,c.gotoAgents=l,c.saveAgent=d}e.$inject=["$state","$mdDialog","$document","toasty","api","agent"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.team.save(p.team).$promise.then(function(e){p.teams.unshift(e),i.success({title:"Team properly created",msg:p.team.name?p.team.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.team.update({id:p.team.id},p.team).$promise.then(function(e){var t=_.find(p.teams,{id:e.id});t&&_.merge(t,e),i.success({title:"Team properly saved!",msg:p.team.name?p.team.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.team.delete({id:p.team.id}).$promise.then(function(){_.remove(p.teams,{id:p.team.id}),i.success({title:"Team properly deleted!",msg:(p.team.name||"team")+" has been deleted!"}),u(p.team)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_TEAM",p.team=angular.copy(s),p.teams=o,p.newTeam=!1,p.team||(p.team={},p.title="STAFF.NEW_TEAM",p.newTeam=!0),p.addNewTeam=l,p.saveTeam=d,p.deleteTeam=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","teams","team","api"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.team[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.team=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("STAFF.ALL_AGENTS"),labelSelected:s.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,a){n.team[a?"removeAgents":"addAgents"]({id:c.team.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:team.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","team","teams","realtime","$translate"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:C.teams.rows}})}function u(e,t){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:C.teams?C.teams.rows:[],realtime:!1}})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the team?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.teams=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.team.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:t,teams:C.teams.rows}})}function b(e){l.team.delete({id:e.id}).$promise.then(function(){_.remove(C.teams.rows,{id:e.id}),C.teams.count-=1,C.teams.rows.length||C.getTeams(),c.success({title:"Team deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETteam",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedTeams);return C.selectedTeams=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+C.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedTeams.forEach(function(e){b(e)}),C.selectedTeams=[]})}function y(){C.selectedTeams=[]}function A(){C.selectedTeams=C.teams.rows}var C=this;C.teams=r||{count:0,rows:[]},C.table="teams",C.listOrder="",C.listOrderAsc=null,C.selectedTeams=[],C.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.agentadddialog=u,C.deleteconfirm=p,C.success=g,C.getTeams=h,C.createOrEditTeam=v,C.deleteTeam=b,C.exportSelectedTeams=f,C.deleteSelectedTeams=E,C.deselectTeams=y,C.selectAllTeams=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","teams","api","msUtils","toasty"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.telephone).$promise.then(function(e){p.telephones.unshift(e),i.success({title:"Telephone properly created",msg:p.telephone.name?p.telephone.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.telephone.id},p.telephone).$promise.then(function(e){var t=_.find(p.telephones,{id:e.id});t&&_.merge(t,e),i.success({title:"Telephone properly saved!",msg:p.telephone.name?p.telephone.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.telephone.id}).$promise.then(function(){_.remove(p.telephones,{id:p.telephone.id}),i.success({title:"Telephone properly deleted!",msg:(p.telephone.name||"telephone")+" has been deleted!"}),u(p.telephone)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_TELEPHONE",p.telephone=angular.copy(s),p.telephones=o,p.newTelephone=!1,p.telephone||(p.telephone={role:"telephone",autointernal:!0},p.title="STAFF.NEW_TELEPHONE",p.newTelephone=!0),p.addNewTelephone=l,p.saveTelephone=d,p.deleteTelephone=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","telephones","telephone","api"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.telephone.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Telephone password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.telephone=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","telephone"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{telephone:e,telephones:d.telephones?d.telephones.rows:[]}})}function r(){e.go("app.staff.telephones")}function l(){i.user.update({id:d.telephone.id},d.telephone).$promise.then(function(){a.success({title:"Telephone updated!",msg:d.telephone.name?d.telephone.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.telephone=e.params.telephone||o||{},d.selectedTab=e.params.tab||0,d.changepassworddialog=s,d.gotoTelephones=r,d.saveTelephone=l}e.$inject=["$state","$mdDialog","$document","toasty","api","telephone"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.telephones.edit",{id:e.id,telephone:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the telephone?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.telephones=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:t,telephones:A.telephones.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.telephones.rows,{id:e.id}),A.telephones.count-=1,A.telephones.rows.length||A.getTelephones(),c.success({title:"Telephone deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTelephones);return A.selectedTelephones=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+A.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTelephones.forEach(function(e){v(e)}),A.selectedTelephones=[]})}function E(){A.selectedTelephones=[]}function y(){A.selectedTelephones=A.telephones.rows}var A=this;A.telephones=r||{count:0,rows:[]},A.table="telephones",A.listOrder="",A.listOrderAsc=null,A.selectedTelephones=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTelephones=g,A.createOrEditTelephone=h,A.deleteTelephone=v,A.exportSelectedTelephones=b,A.deleteSelectedTelephones=f,A.deselectTelephones=E,A.selectAllTelephones=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","telephones","api","msUtils","toasty"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.user).$promise.then(function(e){p.users.unshift(e),i.success({title:"User properly created",msg:p.user.name?p.user.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.user.id},p.user).$promise.then(function(e){var t=_.find(p.users,{id:e.id});t&&_.merge(t,e),i.success({title:"User properly saved!",msg:p.user.name?p.user.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.user.id}).$promise.then(function(){_.remove(p.users,{id:p.user.id}),i.success({title:"User properly deleted!",msg:(p.user.name||"user")+" has been deleted!"}),u(p.user)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_USER",p.user=angular.copy(s),p.users=o,p.newUser=!1,p.user||(p.user={role:"user",autointernal:!0},p.title="STAFF.NEW_USER",p.newUser=!0),p.addNewUser=l,p.saveUser=d,p.deleteUser=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","users","user","api"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,t){function n(e){s.user=angular.copy(e),s.ngFlowOptions.target="api/users/"+s.user.id+"/avatar",s.user.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.user.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.user.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.user={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id,newPassword:s.password}).$promise.then(function(){t.success({title:"User password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,t,n){function a(e){o.user=e}function i(t,a){if((a||t).enabled){if(a)a.enabled=!0,o.user.permissions.push(a.id);else for(var i=0;i<t.children.length;i++)t.children[i].enabled=!0,o.user.permissions.push(t.children[i].id);t.enabled=!0,o.user.permissions.push(t.id)}else if(a)a.enabled=!1,_.remove(o.user.permissions,function(e){return a.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(o.user.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(o.user.permissions,function(e){return t.id===e});for(var s=0;s<t.children.length;s++)t.children[s].enabled=!1,_.remove(o.user.permissions,function(e){return t.children[s].id===e})}return e.user.update({id:o.user.id,permissions:_.uniq(o.user.permissions)}).$promise.then(function(){n.success({title:"user updated!",msg:o.user.name?o.user.name+" has been updated!":""})}).catch(function(e){console.error(e)})}var o=this;o.user={},o.navigation=t.getNavigation(),o.init=a,o.onChange=i}e.$inject=["api","msNavigationService","toasty"],angular.module("app.staff").controller("UserPermissionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){n.user[m.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:m.user.id,fields:m.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy",channel:i,nolimit:!0}).$promise.then(function(e){return m.isVoiceRealtime()?m.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],n[m.apiname].get({fields:"id,name,strategy",nolimit:!0,type:s}).$promise}).then(function(e){m.items=e.rows?e.rows:[],m.selectedItems=_.intersectionBy(m.selectedItems,m.items,"id"),m.dualMultiselectOptions.selectedItems=m.selectedItems,m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o&&"voice"===i}function c(){e.hide()}var m=this;m.user=a,m.penalty=0,m.apiname=i+"Queue",m.title=r.instant("STAFF.QUEUEADD_USER_"+i.toUpperCase()+"_"+s.toUpperCase()),m.items=[],m.selectedItems=[],m.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"strategy",line3:"penalty",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:m.user.id,ids:_.map(e,"id"),channel:i,penalty:m.penalty||0,realtime:o}).$promise.then(function(){l(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.closeDialog=c,m.isVoiceRealtime=d,l()}e.$inject=["$mdDialog","toasty","api","user","channel","realtime","direction","$translate"],angular.module("app.staff").controller("UserqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a,i){t.show({controller:"UserqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/queueadd/queueadd.html",parent:angular.element(n.body),targetEvent:i,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[],channel:a,realtime:!1,direction:"inbound"}})}function r(e,a){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[]}})}function l(){e.go("app.staff.users")}function d(){i.user.update({id:c.user.id},c.user).$promise.then(function(){a.success({title:"User updated!",msg:c.user.name?c.user.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.user=e.params.user||o||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=s,c.changepassworddialog=r,c.gotoUsers=l,c.saveUser=d}e.$inject=["$state","$mdDialog","$document","toasty","api","user"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.users.edit",{id:e.id,user:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the user?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.users=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:t,users:A.users.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.users.rows,{id:e.id}),A.users.count-=1,A.users.rows.length||A.getUsers(),c.success({title:"User deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedUsers);return A.selectedUsers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+A.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedUsers.forEach(function(e){v(e)}),A.selectedUsers=[]})}function E(){A.selectedUsers=[]}function y(){A.selectedUsers=A.users.rows}var A=this;A.users=r||{count:0,rows:[]},A.table="users",A.listOrder="",A.listOrderAsc=null,A.selectedUsers=[],A.query={fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,page:1},A.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getUsers=g,A.createOrEditUser=h,A.deleteUser=v,A.exportSelectedUsers=b,A.deleteSelectedUsers=f,A.deselectUsers=E,A.selectAllUsers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","users","api","msUtils","toasty"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:A.cannedAnswers.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the cannedAnswer?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.cannedAnswers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cannedAnswer.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:t,cannedAnswers:A.cannedAnswers.rows}})}function v(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(A.cannedAnswers.rows,{id:e.id}),A.cannedAnswers.count-=1,A.cannedAnswers.rows.length||A.getCannedAnswers(),c.success({title:"CannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcannedAnswer",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedCannedAnswers);return A.selectedCannedAnswers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+A.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCannedAnswers.forEach(function(e){v(e)}),A.selectedCannedAnswers=[]})}function E(){A.selectedCannedAnswers=[]}function y(){A.selectedCannedAnswers=A.cannedAnswers.rows}var A=this;A.cannedAnswers=r||{count:0,rows:[]},A.table="cannedAnswers",A.listOrder="",A.listOrderAsc=null,A.selectedCannedAnswers=[],A.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getCannedAnswers=g,A.createOrEditCannedAnswer=h,A.deleteCannedAnswer=v,A.exportSelectedCannedAnswers=b,A.deleteSelectedCannedAnswers=f,A.deselectCannedAnswers=E,A.selectAllCannedAnswers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","cannedAnswers","api","msUtils","toasty"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cannedAnswer.save(p.cannedAnswer).$promise.then(function(e){p.cannedAnswers.unshift(e),i.success({title:"CannedAnswer properly created",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cannedAnswer.update({id:p.cannedAnswer.id},p.cannedAnswer).$promise.then(function(e){var t=_.find(p.cannedAnswers,{id:e.id});t&&_.merge(t,e),i.success({title:"CannedAnswer properly saved!",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cannedAnswer.delete({id:p.cannedAnswer.id}).$promise.then(function(){_.remove(p.cannedAnswers,{id:p.cannedAnswer.id}),i.success({title:"CannedAnswer properly deleted!",msg:(p.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),u(p.cannedAnswer)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_CANNEDANSWER",p.cannedAnswer=angular.copy(s),p.cannedAnswers=o,p.newCannedAnswer=!1,p.cannedAnswer||(p.cannedAnswer={},p.title="TOOLS.NEW_CANNEDANSWER",p.newCannedAnswer=!0),p.addNewCannedAnswer=l,p.saveCannedAnswer=d,p.deleteCannedAnswer=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","cannedAnswers","cannedAnswer","api"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.save(p.customDashboard).$promise.then(function(e){p.customDashboards.unshift(e),i.success({title:"CustomDashboard properly created",msg:p.customDashboard.name?p.customDashboard.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.dashboard.update({id:p.customDashboard.id},p.customDashboard).$promise.then(function(e){var t=_.find(p.customDashboards,{id:e.id});t&&_.merge(t,e),i.success({title:"CustomDashboard properly saved!",msg:p.customDashboard.name?p.customDashboard.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.dashboard.delete({id:p.customDashboard.id}).$promise.then(function(){_.remove(p.customDashboards,{id:p.customDashboard.id}),i.success({title:"CustomDashboard properly deleted!",msg:(p.customDashboard.name||"customDashboard")+" has been deleted!"}),u(p.customDashboard)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_CUSTOMDASHBOARD",p.customDashboard=angular.copy(s),p.customDashboards=o,p.newCustomDashboard=!1,p.customDashboard||(p.customDashboard={interval:5},p.title="TOOLS.NEW_CUSTOMDASHBOARD",p.newCustomDashboard=!0),p.addNewCustomDashboard=l,p.saveCustomDashboard=d,p.deleteCustomDashboard=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customDashboards","customDashboard","api"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the customDashboard?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.customDashboards=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.dashboard.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:t,customDashboards:A.customDashboards.rows}})}function v(e){l.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(A.customDashboards.rows,{id:e.id}),A.customDashboards.count-=1,A.customDashboards.rows.length||A.getCustomDashboards(),c.success({title:"CustomDashboard deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedCustomDashboards);return A.selectedCustomDashboards=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+A.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCustomDashboards.forEach(function(e){v(e)}),A.selectedCustomDashboards=[]})}function E(){A.selectedCustomDashboards=[]}function y(){A.selectedCustomDashboards=A.customDashboards.rows}var A=this;A.customDashboards=r||{count:0,rows:[]},A.table="customDashboards",A.listOrder="",A.listOrderAsc=null,A.selectedCustomDashboards=[],A.query={fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getCustomDashboards=g,A.createOrEditCustomDashboard=h,A.deleteCustomDashboard=v,A.exportSelectedCustomDashboards=b,A.deleteSelectedCustomDashboards=f,A.deselectCustomDashboards=E,A.selectAllCustomDashboards=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","customDashboards","api","msUtils","toasty"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){return console.log(e),i.dashboardItem.delete({id:e}).$promise.then(function(t){_.remove(c.items.rows,{id:e})}).catch(function(e){console.error(e)})}function s(e,t,n){return i.dashboardItem.update(n).$promise.catch(function(e){console.error(e)})}function r(e){t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{dashboarditem:null,dashboard:c.items.rows}})}function l(e){return c.customDashboard=e,d=a(function(){return i.dashboard.run({id:c.customDashboard.id})},1e3*c.customDashboard.interval),i.dashboard.getItems({id:e.id,fields:"id,type,sizeX,sizeY,row,col,data"}).$promise.then(function(e){c.items=e}).catch(function(e){console.error(e)})}var d,c=this;c.customDashboard={},c.gridOptions={resizable:{enabled:!0,stop:s},draggable:{enabled:!0,stop:s}},c.items={rows:[],count:0},c.init=l,c.addItem=r,c.updateItem=s,c.deleteItem=o,e.$on("$destroy",function(){a.cancel(d)})}e.$inject=["$scope","$mdDialog","$document","$interval","api"],angular.module("app.tools").controller("CustomDashboardCustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.addItem({id:t.params.id},p.dashboarditem).$promise.then(function(e){p.dashboard.unshift(e),i.success({title:"DashboardItem properly created",msg:p.dashboarditem.name?p.dashboarditem.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.dashboardItem.update({id:p.dashboarditem.id},p.dashboarditem).$promise.then(function(e){var t=_.find(p.dashboard,{id:e.id});t&&_.merge(t,e),i.success({title:"DashboardItem properly saved!",msg:p.dashboarditem.name?p.dashboarditem.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.dashboardItem.delete({id:p.dashboarditem.id}).$promise.then(function(){_.remove(p.dashboard,{id:p.dashboarditem.id}),i.success({title:"DashboardItem properly deleted!",msg:(p.dashboarditem.name||"dashboarditem")+" has been deleted!"}),u(p.dashboarditem)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_DASHBOARDITEM",p.dashboarditem=angular.copy(s),p.dashboard=o,p.newDashboardItem=!1,p.dashboarditem||(p.dashboarditem={type:"counter"},p.title="TOOLS.NEW_DASHBOARDITEM",p.newDashboardItem=!0),p.addNewDashboardItem=l,p.saveDashboardItem=d,p.deleteDashboardItem=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","dashboard","dashboarditem","api"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.customDashboards")}function r(){i.dashboard.update({id:l.customDashboard.id},l.customDashboard).$promise.then(function(){a.success({title:"CustomDashboard updated!",msg:l.customDashboard.name?l.customDashboard.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.customDashboard=e.params.customDashboard||o||{},l.selectedTab=e.params.tab||0,l.gotoCustomDashboards=s,l.saveCustomDashboard=r}e.$inject=["$state","$mdDialog","$document","toasty","api","customDashboard"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.interval.update({id:p.interval.id},p.interval).$promise.then(function(e){var t=_.find(p.intervals,{id:e.id});t&&_.merge(t,e),i.success({title:"Interval properly saved!",msg:p.interval.name?p.interval.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.interval.delete({id:p.interval.id}).$promise.then(function(){_.remove(p.intervals,{id:p.interval.id}),i.success({title:"Interval properly deleted!",msg:(p.interval.name||"interval")+" has been deleted!"}),u(p.interval)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_INTERVAL",p.interval=angular.copy(s),p.intervals=o,p.newInterval=!1,p.interval||(p.interval={},p.title="TOOLS.NEW_INTERVAL",p.newInterval=!0),p.addNewInterval=l,p.saveInterval=d,p.deleteInterval=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","intervals","interval","api"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditIntervalAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.interval=e,h.query.id=h.interval.id,h.getIntervalIntervals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.intervalIntervals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.interval.getIntervals(h.query,c).$promise}function u(e,t){i.show({controller:"EditIntervalAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:h.intervalIntervals.rows}})}function p(e){r.interval.delete({id:e.id}).$promise.then(function(){_.remove(h.intervalIntervals.rows,{id:e.id}),h.intervalIntervals.count-=1,h.intervalIntervals.rows.length||h.getIntervalIntervals(),s.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+h.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIntervalIntervals.forEach(function(e){p(e)}),h.selectedIntervalIntervals=[]})}var h=this;h.interval={},h.intervalIntervals={count:0,rows:[]},h.selectedIntervalIntervals=[],h.sortableTable={animation:100,onSort:function(e){r.interval.addIntervals({id:h.interval.id},e.models).$promise.then(function(e){h.intervalIntervals.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},h.query={fields:"createdAt,updatedAt,id,name,interval,createdAt",nolimit:"true",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIntervalIntervals=m,h.createOrEditIntervalInterval=u,h.deleteIntervalInterval=p,h.deleteSelectedIntervalIntervals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIntervalIntervals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.interval.update({id:p.interval.id},p.interval).$promise.then(function(e){var t=_.find(p.intervals,{id:e.id});t&&_.merge(t,e),i.success({title:"Interval properly saved!",msg:p.interval.name?p.interval.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.interval.delete({id:p.interval.id}).$promise.then(function(){_.remove(p.intervals,{id:p.interval.id}),i.success({title:"Interval properly deleted!",msg:(p.interval.name||"interval")+" has been deleted!"}),u(p.interval)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_INTERVAL",p.interval=angular.copy(s),p.intervals=o,p.newInterval=!1,p.interval||(p.interval={},p.title="TOOLS.NEW_INTERVAL",p.newInterval=!0),p.addNewInterval=l,p.saveInterval=d,p.deleteInterval=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","intervals","interval","api"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.intervals")}function r(){i.interval.update({id:l.interval.id},l.interval).$promise.then(function(){a.success({title:"Interval updated!",msg:l.interval.name?l.interval.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.interval=e.params.interval||o||{},l.selectedTab=e.params.tab||0,l.gotoIntervals=s,l.saveInterval=r}e.$inject=["$state","$mdDialog","$document","toasty","api","interval"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.intervals.edit",{id:e.id,interval:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.intervals=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.interval.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:A.intervals.rows}})}function v(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(A.intervals.rows,{id:e.id}),A.intervals.count-=1,A.intervals.rows.length||A.getIntervals(),c.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedIntervals);return A.selectedIntervals=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+A.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedIntervals.forEach(function(e){v(e)}),A.selectedIntervals=[]})}function E(){A.selectedIntervals=[]}function y(){A.selectedIntervals=A.intervals.rows}var A=this;A.intervals=r||{count:0,rows:[]},A.table="intervals",A.listOrder="",A.listOrderAsc=null,A.selectedIntervals=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getIntervals=g,A.createOrEditInterval=h,A.deleteInterval=v,A.exportSelectedIntervals=b,A.deleteSelectedIntervals=f,A.deselectIntervals=E,A.selectAllIntervals=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","intervals","api","msUtils","toasty"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.pause.save(p.pause).$promise.then(function(e){p.pauses.unshift(e),i.success({title:"Pause properly created",msg:p.pause.name?p.pause.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.pause.update({id:p.pause.id},p.pause).$promise.then(function(e){var t=_.find(p.pauses,{id:e.id});t&&_.merge(t,e),i.success({title:"Pause properly saved!",msg:p.pause.name?p.pause.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.pause.delete({id:p.pause.id}).$promise.then(function(){_.remove(p.pauses,{id:p.pause.id}),i.success({title:"Pause properly deleted!",msg:(p.pause.name||"pause")+" has been deleted!"}),u(p.pause)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_PAUSE",p.pause=angular.copy(s),p.pauses=o,p.newPause=!1,p.pause||(p.pause={},p.title="TOOLS.NEW_PAUSE",p.newPause=!0),p.addNewPause=l,p.savePause=d,p.deletePause=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","pauses","pause","api"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{pause:e,pauses:A.pauses.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the pause?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.pauses=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.pause.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:t,pauses:A.pauses.rows}})}function v(e){l.pause.delete({id:e.id}).$promise.then(function(){_.remove(A.pauses.rows,{id:e.id}),A.pauses.count-=1,A.pauses.rows.length||A.getPauses(),c.success({title:"Pause deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpause",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedPauses);return A.selectedPauses=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+A.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedPauses.forEach(function(e){v(e)}),A.selectedPauses=[]})}function E(){A.selectedPauses=[]}function y(){A.selectedPauses=A.pauses.rows}var A=this;A.pauses=r||{count:0,rows:[]},A.table="pauses",A.listOrder="",A.listOrderAsc=null,A.selectedPauses=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getPauses=g,A.createOrEditPause=h,A.deletePause=v,A.exportSelectedPauses=b,A.deleteSelectedPauses=f,A.deselectPauses=E,A.selectAllPauses=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","pauses","api","msUtils","toasty"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.schedule.save(p.schedule).$promise.then(function(e){p.schedules.unshift(e),i.success({title:"Schedule properly created",msg:p.schedule.name?p.schedule.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.schedule.update({id:p.schedule.id},p.schedule).$promise.then(function(e){var t=_.find(p.schedules,{id:e.id});t&&_.merge(t,e),i.success({title:"Schedule properly saved!",msg:p.schedule.name?p.schedule.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.schedule.delete({id:p.schedule.id}).$promise.then(function(){_.remove(p.schedules,{id:p.schedule.id}),i.success({title:"Schedule properly deleted!",msg:(p.schedule.name||"schedule")+" has been deleted!"}),u(p.schedule)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_SCHEDULE",p.schedule=angular.copy(s),p.schedules=o,p.newSchedule=!1,p.schedule||(p.schedule={type:"report",reportType:"default",reportOutput:"CSV",cronType:"currentDay",cron:"*/15 * * * *",weekDays:"monday",reportRange:"last30",sendMail:!1,active:!0},p.title="TOOLS.NEW_SCHEDULE",p.newSchedule=!0),p.addNewSchedule=l,p.saveSchedule=d,p.deleteSchedule=c,p.getDateFromString=m,p.closeDialog=u,r.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.customReports=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.defaultReports=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","schedules","schedule","api"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.schedules")}function r(){i.schedule.update({id:l.schedule.id},l.schedule).$promise.then(function(){a.success({title:"Schedule updated!",msg:l.schedule.name?l.schedule.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.schedule=e.params.schedule||o||{},l.selectedTab=e.params.tab||0,l.gotoScheduler=s,l.saveSchedule=r,i.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.customReports=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.defaultReports=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","schedule"],angular.module("app.tools").controller("ScheduleController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.schedules.edit",{id:e.id,schedule:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.schedules=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.schedule.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:t,schedules:A.schedules.rows}})}function v(e){l.schedule.delete({id:e.id}).$promise.then(function(){_.remove(A.schedules.rows,{id:e.id}),A.schedules.count-=1,A.schedules.rows.length||A.getScheduler(),c.success({title:"Schedule deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedScheduler);return A.selectedScheduler=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+A.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedScheduler.forEach(function(e){v(e)}),A.selectedScheduler=[]})}function E(){A.selectedScheduler=[]}function y(){A.selectedScheduler=A.schedules.rows}var A=this;A.schedules=r||{count:0,rows:[]},A.table="schedules",A.listOrder="",A.listOrderAsc=null,A.selectedScheduler=[],A.query={fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Report",value:"'report'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportType=_.keyBy([{option:"Default",value:"'default'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportOutput=_.keyBy([{option:"CSV",value:"'CSV'"},{option:"PDF",value:"'PDF'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycronType=_.keyBy([{option:"CurrentDay",value:"'currentDay'"},{option:"Daily",value:"'daily'"},{option:"Weekly",value:"'weekly'"},{option:"Monthly",value:"'monthly'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycron=_.keyBy([{option:"15min",value:"'*/15 * * * *'"},{option:"30min",value:"'*/30 * * * *'"},{option:"1h",value:"'0 * * * *'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayweekDays=_.keyBy([{option:"MON",value:"'monday'"},{option:"TUE",value:"'tuesday'"},{option:"WED",value:"'wednesday'"},{option:"THU",value:"'thursday'"},{option:"FRI",value:"'friday'"},{option:"SAT",value:"'saturday'"},{option:"SUN",value:"'sunday'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportRange=_.keyBy([{option:"PREVIOUS_DAY",value:"'yesterday'"},{option:"LAST_SEVEN_DAYS",value:"'last7'"},{option:"LAST_THIRTY_DAYS",value:"'last30'"},{option:"LAST_MONTH",value:"'lastMonth'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getScheduler=g,A.createOrEditSchedule=h,A.deleteSchedule=v,A.exportSelectedScheduler=b,A.deleteSelectedScheduler=f,A.deselectScheduler=E,A.selectAllScheduler=y,l.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.customReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.defaultReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","schedules","api","msUtils","toasty"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.sound.save(p.sound).$promise.then(function(e){p.sounds.unshift(e),i.success({title:"Sound properly created",msg:p.sound.name?p.sound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.sound.update({id:p.sound.id},p.sound).$promise.then(function(e){var t=_.find(p.sounds,{id:e.id});t&&_.merge(t,e),i.success({title:"Sound properly saved!",msg:p.sound.name?p.sound.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.sound.delete({id:p.sound.id}).$promise.then(function(){_.remove(p.sounds,{id:p.sound.id}),i.success({title:"Sound properly deleted!",msg:(p.sound.name||"sound")+" has been deleted!"}),u(p.sound)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_SOUND",p.sound=angular.copy(s),p.sounds=o,p.newSound=!1,p.sound||(p.sound={},p.title="TOOLS.NEW_SOUND",p.newSound=!0),p.addNewSound=l,p.saveSound=d,p.deleteSound=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","sounds","sound","api"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{sound:e,sounds:x.sounds.rows}})}function u(e,n){return l.sound.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/sounds/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the sound?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){x.sounds=e||{count:0,rows:[]}}function h(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.sound.get(x.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:t,sounds:x.sounds.rows}})}function b(e){l.sound.delete({id:e.id}).$promise.then(function(){_.remove(x.sounds.rows,{id:e.id}),x.sounds.count-=1,x.sounds.rows.length||x.getSounds(),c.success({title:"Sound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(x.selectedSounds);return x.selectedSounds=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+x.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedSounds.forEach(function(e){b(e)}),x.selectedSounds=[]})}function y(){x.selectedSounds=[]}function A(){x.selectedSounds=x.sounds.rows}function C(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/uploadsound/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:x.sounds.rows}})}var x=this;x.sounds=r||{count:0,rows:[]},x.table="sounds",x.listOrder="",x.listOrderAsc=null,x.selectedSounds=[],x.query={fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,page:1},x.editdialog=m,x.downloadfile=u,x.deleteconfirm=p,x.success=g,x.getSounds=h,x.createOrEditSound=v,x.deleteSound=b,x.exportSelectedSounds=f,x.deleteSelectedSounds=E,x.deselectSounds=y,x.selectAllSounds=A,x.uploadSound=C;var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sounds","api","msUtils","toasty"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var t=["wav","mp3","gsm"];if(_.includes(t,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return d.uploadSounds.unshift(a),!0}return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+t.join()}),!1}function s(){d.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},d.ngFlow.flow.upload()}function r(e,t){d.sounds.unshift(JSON.parse(t)),angular.forEach(d.uploadSounds,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="sound"}})}function l(){t.hide()}var d=this;d.errors=[],d.title="TOOLS.UPLOAD_SOUND",d.sounds=a,d.uploadSounds=[],d.sound={},d.ngFlowOptions={chunkSize:15728640,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,target:"api/sounds"},d.ngFlow={flow:{}},d.dropping=!1,d.fileAdded=o,d.upload=s,d.fileSuccess=r,d.closeDialog=l}e.$inject=["$cookies","$mdDialog","toasty","sounds","api"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.tag.save(p.tag).$promise.then(function(e){p.tags.unshift(e),i.success({title:"Tag properly created",msg:p.tag.name?p.tag.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.tag.update({id:p.tag.id},p.tag).$promise.then(function(e){var t=_.find(p.tags,{id:e.id});t&&_.merge(t,e),i.success({title:"Tag properly saved!",msg:p.tag.name?p.tag.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.tag.delete({id:p.tag.id}).$promise.then(function(){_.remove(p.tags,{id:p.tag.id}),i.success({title:"Tag properly deleted!",msg:(p.tag.name||"tag")+" has been deleted!"}),u(p.tag)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TAG",p.tag=angular.copy(s),p.tags=o,p.newTag=!1,p.tag||(p.tag={},p.title="TOOLS.NEW_TAG",p.newTag=!0),p.addNewTag=l,p.saveTag=d,p.deleteTag=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","tags","tag","api"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{tag:e,tags:A.tags.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the tag?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.tags=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.tag.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:t,tags:A.tags.rows}})}function v(e){l.tag.delete({id:e.id}).$promise.then(function(){_.remove(A.tags.rows,{id:e.id}),A.tags.count-=1,A.tags.rows.length||A.getTags(),c.success({title:"Tag deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtag",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTags);return A.selectedTags=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+A.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTags.forEach(function(e){v(e)}),A.selectedTags=[]})}function E(){A.selectedTags=[]}function y(){A.selectedTags=A.tags.rows}var A=this;A.tags=r||{count:0,rows:[]},A.table="tags",A.listOrder="",A.listOrderAsc=null,A.selectedTags=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTags=g,A.createOrEditTag=h,A.deleteTag=v,A.exportSelectedTags=b,A.deleteSelectedTags=f,A.deselectTags=E,A.selectAllTags=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","tags","api","msUtils","toasty"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.template.save(p.template).$promise.then(function(e){p.templates.unshift(e),i.success({title:"Template properly created",msg:p.template.name?p.template.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.template.update({id:p.template.id},p.template).$promise.then(function(e){var t=_.find(p.templates,{id:e.id});t&&_.merge(t,e),i.success({title:"Template properly saved!",msg:p.template.name?p.template.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.template.delete({id:p.template.id}).$promise.then(function(){_.remove(p.templates,{id:p.template.id}),i.success({title:"Template properly deleted!",msg:(p.template.name||"template")+" has been deleted!"}),u(p.template)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TEMPLATE",p.template=angular.copy(s),p.templates=o,p.newTemplate=!1,p.template||(p.template={},p.title="TOOLS.NEW_TEMPLATE",p.newTemplate=!0),p.addNewTemplate=l,p.saveTemplate=d,p.deleteTemplate=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","templates","template","api"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{template:e,templates:A.templates.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the template?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.templates=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.template.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:t,templates:A.templates.rows}})}function v(e){l.template.delete({id:e.id}).$promise.then(function(){_.remove(A.templates.rows,{id:e.id}),A.templates.count-=1,A.templates.rows.length||A.getTemplates(),c.success({title:"Template deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplate",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTemplates);return A.selectedTemplates=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+A.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTemplates.forEach(function(e){v(e)}),A.selectedTemplates=[]})}function E(){A.selectedTemplates=[]}function y(){A.selectedTemplates=A.templates.rows}var A=this;A.templates=r||{count:0,rows:[]},A.table="templates",A.listOrder="",A.listOrderAsc=null,A.selectedTemplates=[],A.query={fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTemplates=g,A.createOrEditTemplate=h,A.deleteTemplate=v,A.exportSelectedTemplates=b,A.deleteSelectedTemplates=f,A.deselectTemplates=E,A.selectAllTemplates=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","templates","api","msUtils","toasty"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.save(p.trigger).$promise.then(function(e){p.triggers.unshift(e),i.success({title:"Trigger properly created",msg:p.trigger.name?p.trigger.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.trigger.update({id:p.trigger.id},p.trigger).$promise.then(function(e){var t=_.find(p.triggers,{id:e.id});t&&_.merge(t,e),i.success({title:"Trigger properly saved!",msg:p.trigger.name?p.trigger.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The trigger will be deleted.").ariaLabel("Delete Trigger").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.trigger.delete({id:p.trigger.id}).$promise.then(function(){_.remove(p.triggers,{id:p.trigger.id}),i.success({title:"Trigger properly deleted!",msg:(p.trigger.name||"trigger")+" has been deleted!"}),u(p.trigger)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TRIGGER",p.trigger=angular.copy(s),p.triggers=o,p.newTrigger=!1,p.trigger||(p.trigger={channel:"voice"},p.title="TOOLS.NEW_TRIGGER",p.newTrigger=!0),p.addNewTrigger=l,p.saveTrigger=d,p.deleteTrigger=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","triggers","trigger","api"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.ActionId=h.trigger.id,h.getTriggerActions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the action?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete action").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerActions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getActions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{action:t,actions:h.triggerActions.rows}})}function p(e){r.action.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerActions.rows,{id:e.id}),h.triggerActions.count-=1,h.triggerActions.rows.length||h.getTriggerActions(),s.success({title:"Action deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected actions?").htmlContent("<b>"+h.selectedTriggerActions.length+" selected</b> will be deleted.").ariaLabel("delete actions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerActions.forEach(function(e){p(e)}),h.selectedTriggerActions=[]})}var h=this;h.trigger={},h.triggerActions={count:0,rows:[]},h.selectedTriggerActions=[],h.query={fields:"createdAt,updatedAt,id,action,data1,data1,data1,data2,data2,data1,data2,data2,data2,data2,data3,data3,data3,data3,data1,data2,data2,data3,data2,data2,data2,createdAt",limit:10,page:1},h.arrayaction=_.keyBy([{option:"CONTACT_MANAGER",value:"'contactManager'"},{option:"INTEGRATIONS",value:"'integration'"},{option:"MOTION_BAR",value:"'motionbar'"},{option:"JSCRIPTY",value:"'jscripty'"},{option:"URL_FORWARD",value:"'urlForward'"},{option:"BROWSER",value:"'browser'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.browserValues=_.keyBy([{option:"Web Popup",value:"'0'"},{option:"Web Tab",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.urlForwardValues=_.keyBy([{option:"GET",value:"'GET'"},{option:"POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.integrationValues=_.keyBy([{option:"Zendesk",value:"'zendesk'"},{option:"Salesforce",value:"'salesforce'"},{option:"SugarCRM",value:"'sugarcrm'"},{option:"Freshdesk",value:"'freshdesk'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.motionbarValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"URL",value:"'1'"},{option:"Windows App",value:"'2'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerActions=m,h.createOrEditTriggerAction=u,h.deleteTriggerAction=p,h.deleteSelectedTriggerActions=g,r.cmList.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.zendeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.salesforceAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.sugarcrmAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.freshdeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.zendeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.salesforceConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.sugarcrmConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.freshdeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.templates=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerActions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAction({id:t.params.id},p.action).$promise.then(function(e){p.actions.unshift(e),i.success({title:"Action properly created",msg:p.action.name?p.action.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.action.update({id:p.action.id},p.action).$promise.then(function(e){var t=_.find(p.actions,{id:e.id});t&&_.merge(t,e),i.success({title:"Action properly saved!",msg:p.action.name?p.action.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The action will be deleted.").ariaLabel("Delete Action").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.action.delete({id:p.action.id}).$promise.then(function(){_.remove(p.actions,{id:p.action.id}),i.success({title:"Action properly deleted!",msg:(p.action.name||"action")+" has been deleted!"}),u(p.action)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ACTION",p.action=angular.copy(s),p.actions=o,p.newAction=!1,p.action||(p.action={},p.title="TOOLS.NEW_ACTION",p.newAction=!0),t.params.id&&(p.action.ActionId=t.params.id),p.addNewAction=l,p.saveAction=d,p.deleteAction=c,p.getDateFromString=m,p.closeDialog=u,r.cmList.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","actions","action","api"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.TriggerAllId=h.trigger.id,h.getTriggerAllConditions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the allCondition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete allCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerAllConditions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getAllConditions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{allCondition:t,allconditions:h.triggerAllConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerAllConditions.rows,{id:e.id}),h.triggerAllConditions.count-=1,h.triggerAllConditions.rows.length||h.getTriggerAllConditions(),s.success({title:"AllCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected allconditions?").htmlContent("<b>"+h.selectedTriggerAllConditions.length+" selected</b> will be deleted.").ariaLabel("delete allconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerAllConditions.forEach(function(e){p(e)}),h.selectedTriggerAllConditions=[]})}var h=this;h.trigger={},h.triggerAllConditions={count:0,rows:[]},h.selectedTriggerAllConditions=[],h.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},h.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayvalue=_.keyBy([{option:"Abandoned",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Rejected",value:"'rejected'"},{option:"Ringing",value:"'called'"},{option:"Up",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerAllConditions=m,h.createOrEditTriggerAllCondition=u,h.deleteTriggerAllCondition=p,h.deleteSelectedTriggerAllConditions=g,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){h.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerAllConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAllCondition({id:t.params.id},p.allCondition).$promise.then(function(e){p.allconditions.unshift(e),i.success({title:"AllCondition properly created",msg:p.allCondition.name?p.allCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(e){var t=_.find(p.allconditions,{id:e.id});t&&_.merge(t,e),i.success({title:"AllCondition properly saved!",msg:p.allCondition.name?p.allCondition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The allCondition will be deleted.").ariaLabel("Delete AllCondition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.condition.delete({id:p.allCondition.id}).$promise.then(function(){_.remove(p.allconditions,{id:p.allCondition.id}),i.success({title:"AllCondition properly deleted!",msg:(p.allCondition.name||"allCondition")+" has been deleted!"}),u(p.allCondition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ALLCONDITION",p.allCondition=angular.copy(s),p.allconditions=o,p.newAllCondition=!1,p.allCondition||(p.allCondition={field:"queue",operator:"equals",value:"equals"},p.title="TOOLS.NEW_ALLCONDITION",p.newAllCondition=!0),t.params.id&&(p.allCondition.TriggerAllId=t.params.id),p.addNewAllCondition=l,p.saveAllCondition=d,p.deleteAllCondition=c,p.getDateFromString=m,p.closeDialog=u,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","allconditions","allCondition","api"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.TriggerAnyId=h.trigger.id,h.getTriggerAnyConditions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the anyCondition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete anyCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerAnyConditions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getAnyConditions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{anyCondition:t,anyconditions:h.triggerAnyConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerAnyConditions.rows,{id:e.id}),h.triggerAnyConditions.count-=1,h.triggerAnyConditions.rows.length||h.getTriggerAnyConditions(),s.success({title:"AnyCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected anyconditions?").htmlContent("<b>"+h.selectedTriggerAnyConditions.length+" selected</b> will be deleted.").ariaLabel("delete anyconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerAnyConditions.forEach(function(e){p(e)}),h.selectedTriggerAnyConditions=[]})}var h=this;h.trigger={},h.triggerAnyConditions={count:0,rows:[]},h.selectedTriggerAnyConditions=[],h.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},h.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayvalue=_.keyBy([{option:"Abandoned",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Rejected",value:"'rejected'"},{option:"Ringing",value:"'called'"},{option:"Up",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerAnyConditions=m,h.createOrEditTriggerAnyCondition=u,h.deleteTriggerAnyCondition=p,h.deleteSelectedTriggerAnyConditions=g,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){h.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerAnyConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAnyCondition({id:t.params.id},p.anyCondition).$promise.then(function(e){p.anyconditions.unshift(e),i.success({title:"AnyCondition properly created",msg:p.anyCondition.name?p.anyCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(e){var t=_.find(p.anyconditions,{id:e.id});t&&_.merge(t,e),i.success({title:"AnyCondition properly saved!",msg:p.anyCondition.name?p.anyCondition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The anyCondition will be deleted.").ariaLabel("Delete AnyCondition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.condition.delete({id:p.anyCondition.id}).$promise.then(function(){_.remove(p.anyconditions,{id:p.anyCondition.id}),i.success({title:"AnyCondition properly deleted!",msg:(p.anyCondition.name||"anyCondition")+" has been deleted!"}),u(p.anyCondition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ANYCONDITION",p.anyCondition=angular.copy(s),p.anyconditions=o,p.newAnyCondition=!1,p.anyCondition||(p.anyCondition={field:"queue",operator:"equals",value:"equals"},p.title="TOOLS.NEW_ANYCONDITION",p.newAnyCondition=!0),t.params.id&&(p.anyCondition.TriggerAnyId=t.params.id),p.addNewAnyCondition=l,p.saveAnyCondition=d,p.deleteAnyCondition=c,p.getDateFromString=m,p.closeDialog=u,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","anyconditions","anyCondition","api"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.triggers")}function r(){i.trigger.update({id:l.trigger.id},l.trigger).$promise.then(function(){a.success({title:"Trigger updated!",msg:l.trigger.name?l.trigger.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.trigger=e.params.trigger||o||{},l.selectedTab=e.params.tab||0,l.gotoTriggers=s,l.saveTrigger=r}e.$inject=["$state","$mdDialog","$document","toasty","api","trigger"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.triggers.edit",{id:e.id,trigger:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the trigger?").htmlContent("<b>"+(e.name||"trigger")+"</b> will be deleted.").ariaLabel("delete trigger").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.triggers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.trigger.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:t,triggers:A.triggers.rows}})}function v(e){l.trigger.delete({id:e.id}).$promise.then(function(){_.remove(A.triggers.rows,{id:e.id}),A.triggers.count-=1,A.triggers.rows.length||A.getTriggers(),c.success({title:"Trigger deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTriggers);return A.selectedTriggers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected triggers?").htmlContent("<b>"+A.selectedTriggers.length+" selected</b> will be deleted.").ariaLabel("delete Triggers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTriggers.forEach(function(e){v(e)}),A.selectedTriggers=[]})}function E(){A.selectedTriggers=[]}function y(){A.selectedTriggers=A.triggers.rows}var A=this;A.triggers=r||{count:0,rows:[]},A.table="triggers",A.listOrder="",A.listOrderAsc=null,A.selectedTriggers=[],A.query={fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,page:1},A.arraychannel=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTriggers=g,A.createOrEditTrigger=h,A.deleteTrigger=v,A.exportSelectedTriggers=b,A.deleteSelectedTriggers=f,A.deselectTriggers=E,A.selectAllTriggers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTriggers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","triggers","api","msUtils","toasty"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trunk.save(p.trunk).$promise.then(function(e){p.trunks.unshift(e),i.success({title:"Trunk properly created",msg:p.trunk.name?p.trunk.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.trunk.update({id:p.trunk.id},p.trunk).$promise.then(function(e){var t=_.find(p.trunks,{id:e.id});t&&_.merge(t,e),i.success({title:"Trunk properly saved!",msg:p.trunk.name?p.trunk.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.trunk.delete({id:p.trunk.id}).$promise.then(function(){_.remove(p.trunks,{id:p.trunk.id}),i.success({title:"Trunk properly deleted!",msg:(p.trunk.name||"trunk")+" has been deleted!"}),u(p.trunk)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TRUNK",p.trunk=angular.copy(s),p.trunks=o,p.newTrunk=!1,p.trunk||(p.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes"},p.title="TOOLS.NEW_TRUNK",p.newTrunk=!0),p.addNewTrunk=l,p.saveTrunk=d,p.deleteTrunk=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","trunks","trunk","api"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.trunks")}function r(){i.trunk.update({id:l.trunk.id},l.trunk).$promise.then(function(){a.success({title:"Trunk updated!",msg:l.trunk.name?l.trunk.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.trunk=e.params.trunk||o||{},l.selectedTab=e.params.tab||0,l.gotoTrunks=s,l.saveTrunk=r,i.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","trunk"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.trunks.edit",{id:e.id,trunk:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the trunk?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.trunks=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.trunk.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:t,trunks:A.trunks.rows}})}function v(e){l.trunk.delete({id:e.id}).$promise.then(function(){_.remove(A.trunks.rows,{id:e.id}),A.trunks.count-=1,A.trunks.rows.length||A.getTrunks(),c.success({title:"Trunk deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTrunks);return A.selectedTrunks=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+A.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTrunks.forEach(function(e){v(e)}),A.selectedTrunks=[]})}function E(){A.selectedTrunks=[]}function y(){A.selectedTrunks=A.trunks.rows}var A=this;A.trunks=r||{count:0,rows:[]},A.table="trunks",A.listOrder="",A.listOrderAsc=null,A.selectedTrunks=[],A.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTrunks=g,A.createOrEditTrunk=h,A.deleteTrunk=v,A.exportSelectedTrunks=b,A.deleteSelectedTrunks=f,A.deselectTrunks=E,A.selectAllTrunks=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","trunks","api","msUtils","toasty"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.variable.save(p.variable).$promise.then(function(e){p.variables.unshift(e),i.success({title:"Variable properly created",msg:p.variable.name?p.variable.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.variable.update({id:p.variable.id},p.variable).$promise.then(function(e){var t=_.find(p.variables,{id:e.id});t&&_.merge(t,e),i.success({title:"Variable properly saved!",msg:p.variable.name?p.variable.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.variable.delete({id:p.variable.id}).$promise.then(function(){_.remove(p.variables,{id:p.variable.id}),i.success({title:"Variable properly deleted!",msg:(p.variable.name||"variable")+" has been deleted!"}),u(p.variable)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_VARIABLE",p.variable=angular.copy(s),p.variables=o,p.newVariable=!1,p.variable||(p.variable={},p.title="TOOLS.NEW_VARIABLE",p.newVariable=!0),p.addNewVariable=l,p.saveVariable=d,p.deleteVariable=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","variables","variable","api"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{variable:e,variables:A.variables.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the variable?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.variables=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.variable.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:t,variables:A.variables.rows}})}function v(e){l.variable.delete({id:e.id}).$promise.then(function(){_.remove(A.variables.rows,{id:e.id}),A.variables.count-=1,A.variables.rows.length||A.getVariables(),c.success({title:"Variable deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariable",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVariables);return A.selectedVariables=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+A.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVariables.forEach(function(e){v(e)}),A.selectedVariables=[]})}function E(){A.selectedVariables=[]}function y(){A.selectedVariables=A.variables.rows}var A=this;A.variables=r||{count:0,rows:[]},A.table="variables",A.listOrder="",A.listOrderAsc=null,A.selectedVariables=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getVariables=g,A.createOrEditVariable=h,A.deleteVariable=v,A.exportSelectedVariables=b,A.deleteSelectedVariables=f,A.deselectVariables=E,A.selectAllVariables=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","variables","api","msUtils","toasty"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.chanSpies.edit",{id:e.id,chanSpy:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chanSpy?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chanSpies=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceChanSpy.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:t,chanSpies:A.chanSpies.rows}})}function v(e){l.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(A.chanSpies.rows,{id:e.id}),A.chanSpies.count-=1,A.chanSpies.rows.length||A.getChanSpies(),c.success({title:"chanSpy deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChanSpies);return A.selectedChanSpies=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+A.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChanSpies.forEach(function(e){v(e)}),A.selectedChanSpies=[]})}function E(){A.selectedChanSpies=[]}function y(){A.selectedChanSpies=A.chanSpies.rows}var A=this;A.chanSpies=r||{count:0,rows:[]},A.table="chanSpies",A.listOrder="",A.listOrderAsc=null,A.selectedChanSpies=[],A.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},A.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChanSpies=g,A.createOrEditchanSpy=h,A.deletechanSpy=v,A.exportSelectedChanSpies=b,A.deleteSelectedChanSpies=f,A.deselectChanSpies=E,A.selectAllChanSpies=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chanSpies","api","msUtils","toasty"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceChanSpy.save(p.chanSpy).$promise.then(function(e){p.chanSpies.unshift(e),i.success({title:"chanSpy properly created",msg:p.chanSpy.name?p.chanSpy.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceChanSpy.update({id:p.chanSpy.id},p.chanSpy).$promise.then(function(e){var t=_.find(p.chanSpies,{id:e.id});t&&_.merge(t,e),i.success({title:"chanSpy properly saved!",msg:p.chanSpy.name?p.chanSpy.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceChanSpy.delete({id:p.chanSpy.id}).$promise.then(function(){_.remove(p.chanSpies,{id:p.chanSpy.id}),i.success({title:"chanSpy properly deleted!",msg:(p.chanSpy.name||"chanSpy")+" has been deleted!"}),u(p.chanSpy)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_CHANSPY",p.chanSpy=angular.copy(s),p.chanSpies=o,p.newchanSpy=!1,p.chanSpy||(p.chanSpy={},p.title="VOICE.NEW_CHANSPY",p.newchanSpy=!0),p.addNewchanSpy=l,p.savechanSpy=d,p.deletechanSpy=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chanSpies","chanSpy","api"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.chanSpies")}function r(){i.voiceChanSpy.update({id:l.chanSpy.id},l.chanSpy).$promise.then(function(){a.success({title:"chanSpy updated!",msg:l.chanSpy.name?l.chanSpy.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.chanSpy=e.params.chanSpy||o||{},l.selectedTab=e.params.tab||0,l.gotoChanSpies=s,l.savechanSpy=r}e.$inject=["$state","$mdDialog","$document","toasty","api","chanSpy"],angular.module("app.voice").controller("ChanSpyController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{context:e,contexts:A.contexts.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the context?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.contexts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceContext.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:t,contexts:A.contexts.rows}})}function v(e){l.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(A.contexts.rows,{id:e.id}),A.contexts.count-=1,A.contexts.rows.length||A.getContexts(),c.success({title:"Context deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceContext",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedContexts);return A.selectedContexts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+A.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedContexts.forEach(function(e){v(e)}),A.selectedContexts=[]})}function E(){A.selectedContexts=[]}function y(){A.selectedContexts=A.contexts.rows}var A=this;A.contexts=r||{count:0,rows:[]},A.table="contexts",A.listOrder="",A.listOrderAsc=null,A.selectedContexts=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getContexts=g,A.createOrEditContext=h,A.deleteContext=v,A.exportSelectedContexts=b,A.deleteSelectedContexts=f,A.deselectContexts=E,A.selectAllContexts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","contexts","api","msUtils","toasty"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceContext.save(p.context).$promise.then(function(e){p.contexts.unshift(e),i.success({title:"Context properly created",msg:p.context.name?p.context.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceContext.update({id:p.context.id},p.context).$promise.then(function(e){var t=_.find(p.contexts,{id:e.id});t&&_.merge(t,e),i.success({title:"Context properly saved!",msg:p.context.name?p.context.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceContext.delete({id:p.context.id}).$promise.then(function(){_.remove(p.contexts,{id:p.context.id}),i.success({title:"Context properly deleted!",msg:(p.context.name||"context")+" has been deleted!"}),u(p.context)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_CONTEXT",p.context=angular.copy(s),p.contexts=o,p.newContext=!1,p.context||(p.context={},p.title="VOICE.NEW_CONTEXT",p.newContext=!0),p.addNewContext=l,p.saveContext=d,p.deleteContext=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","contexts","context","api"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.inboundroute).$promise.then(function(e){p.inboundroutes.unshift(e),i.success({title:"InboundRoute properly created",msg:p.inboundroute.name?p.inboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.inboundroute.id},p.inboundroute).$promise.then(function(e){var t=_.find(p.inboundroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"InboundRoute properly saved!",msg:p.inboundroute.name?p.inboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The inboundroute will be deleted.").ariaLabel("Delete InboundRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.inboundroute.id}).$promise.then(function(){_.remove(p.inboundroutes,{id:p.inboundroute.id}),i.success({title:"InboundRoute properly deleted!",msg:(p.inboundroute.name||"inboundroute")+" has been deleted!"}),u(p.inboundroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_INBOUNDROUTE",p.inboundroute=angular.copy(s),p.inboundroutes=o,p.newInboundRoute=!1,p.inboundroute||(p.inboundroute={appdata:"Inbound Call",type:"inbound",context:"from-voip-provider"},p.title="VOICE.NEW_INBOUNDROUTE",p.newInboundRoute=!0),p.addNewInboundRoute=l,p.saveInboundRoute=d,p.deleteInboundRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","inboundroutes","inboundroute","api"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.inboundroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getInboundRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.inboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.inboundrouteApps.rows.length){var o=g.inboundrouteApps.rows[i]?g.inboundrouteApps.rows[i]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundrouteApp:o}}).then(function(e){e&&(e.id?g.inboundrouteApps.rows[i]=e:g.inboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.inboundrouteApps.rows.length){var i=g.inboundrouteApps.rows[a]?g.inboundrouteApps.rows[a]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"inbound",app:"Set",appdata:"CDR(type)=inbound",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:i++,VoiceExtensionId:g.inboundroute.id});for(var s=0,r=0;s<g.inboundrouteApps.rows.length;s++,r=0){var l=g.inboundrouteApps.rows[s],d=[],c=[];l.intervals="*,*,*,*"!==l.interval?[l.interval]:l.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:l.IntervalId}),"interval"):[],l.context=g.inboundroute.context,l.exten=g.inboundroute.exten,l.hasOwnProperty("answer")&&t.includes(l.app.toLowerCase())&&"custom"!==l.appType&&(!n&&l.answer&&(n=!0,d.push({type:l.type,app:"Answer",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.inboundroute.id})),n||a||l.answer||(a=!0,d.push({type:l.type,app:"Progress",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.inboundroute.id})));for(var m=0;m<l.intervals.length;m++){var u=i+l.intervals.length,p=m===l.intervals.length-1?i+d.length+c.length+2:i+m+1;d.splice(m,0,{type:"inbound",app:"GotoIfTime",appdata:l.intervals[m]+"?"+g.inboundroute.context+",${EXTEN},"+u+":"+g.inboundroute.context+",${EXTEN},"+p,exten:g.inboundroute.exten,context:g.inboundroute.context,priority:i+m,VoiceExtensionId:g.inboundroute.id})}l.priority=d.length?_.last(d).priority+1:i,i=(c.length?_.last(c).priority:l.priority)+1,o=_.concat(o,d,[l],c)}o.push({type:"inbound",app:"Hangup",exten:g.inboundroute.exten,context:g.inboundroute.context,priority:i,VoiceExtensionId:g.inboundroute.id}),e.voiceExtension.addApplications({id:g.inboundroute.id},_.sortBy(o,"priority")).$promise.then(function(e){g.inboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.inboundrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.inboundrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedInboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInboundRouteApps.forEach(function(e){_.remove(g.inboundrouteApps.rows,{id:e.id})}),g.selectedInboundRouteApps=[],l()})}var g=this;g.inboundroute={},g.inboundrouteApps={count:0,rows:[]},g.selectedInboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-voip-provider",type:"Inbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",options:"xX",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",required:!0,type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-voip-provider",type:"Inbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"custom",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-voip-provider",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInboundRouteApps=m,g.editInboundRouteApp=s,g.editInterval=r,g.deleteInboundRouteApp=u,g.deleteSelectedInboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInboundRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.inboundroutes")}function r(){i.voiceExtension.update({id:l.inboundroute.id},l.inboundroute).$promise.then(function(){a.success({title:"InboundRoute updated!",msg:l.inboundroute.name?l.inboundroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.inboundroute=e.params.inboundroute||o||{},l.selectedTab=e.params.tab||0,l.gotoInboundRoutes=s,l.saveInboundRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","inboundroute"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.inboundroutes.edit",{id:e.id,inboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the inboundroute?").htmlContent("<b>"+(e.name||"inboundroute")+"</b> will be deleted.").ariaLabel("delete inboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.inboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundroute:t,inboundroutes:A.inboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.inboundroutes.rows,{id:e.id}),A.inboundroutes.count-=1,A.inboundroutes.rows.length||A.getInboundRoutes(),c.success({title:"InboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedInboundRoutes);return A.selectedInboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected inboundroutes?").htmlContent("<b>"+A.selectedInboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInboundRoutes.forEach(function(e){v(e)}),A.selectedInboundRoutes=[]})}function E(){A.selectedInboundRoutes=[]}function y(){A.selectedInboundRoutes=A.inboundroutes.rows}var A=this;A.inboundroutes=r||{count:0,rows:[]},A.table="inboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInboundRoutes=g,A.createOrEditInboundRoute=h,A.deleteInboundRoute=v,A.exportSelectedInboundRoutes=b,A.deleteSelectedInboundRoutes=f,A.deselectInboundRoutes=E,A.selectAllInboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getInboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","inboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.internalroute).$promise.then(function(e){p.internalroutes.unshift(e),i.success({title:"InternalRoute properly created",msg:p.internalroute.name?p.internalroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.internalroute.id},p.internalroute).$promise.then(function(e){var t=_.find(p.internalroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"InternalRoute properly saved!",msg:p.internalroute.name?p.internalroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The internalroute will be deleted.").ariaLabel("Delete InternalRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.internalroute.id}).$promise.then(function(){_.remove(p.internalroutes,{id:p.internalroute.id}),i.success({title:"InternalRoute properly deleted!",msg:(p.internalroute.name||"internalroute")+" has been deleted!"}),u(p.internalroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_INTERNALROUTE",p.internalroute=angular.copy(s),p.internalroutes=o,p.newInternalRoute=!1,p.internalroute||(p.internalroute={appdata:"Internal Call",type:"internal",context:"from-sip"},p.title="VOICE.NEW_INTERNALROUTE",p.newInternalRoute=!0),p.addNewInternalRoute=l,p.saveInternalRoute=d,p.deleteInternalRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","internalroutes","internalroute","api"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.internalroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getInternalRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.internalrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.internalrouteApps.rows.length){var o=g.internalrouteApps.rows[i]?g.internalrouteApps.rows[i]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalrouteApp:o}}).then(function(e){e&&(e.id?g.internalrouteApps.rows[i]=e:g.internalrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.internalrouteApps.rows.length){var i=g.internalrouteApps.rows[a]?g.internalrouteApps.rows[a]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"internal",app:"Set",appdata:"CDR(type)=internal",context:g.internalroute.context,exten:g.internalroute.exten,priority:i++,VoiceExtensionId:g.internalroute.id});for(var s=0,r=0;s<g.internalrouteApps.rows.length;s++,r=0){var l=g.internalrouteApps.rows[s],d=[],c=[];l.intervals="*,*,*,*"!==l.interval?[l.interval]:l.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:l.IntervalId}),"interval"):[],l.context=g.internalroute.context,l.exten=g.internalroute.exten,l.hasOwnProperty("answer")&&t.includes(l.app.toLowerCase())&&"custom"!==l.appType&&(!n&&l.answer&&(n=!0,d.push({type:l.type,app:"Answer",context:g.internalroute.context,exten:g.internalroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.internalroute.id})),n||a||l.answer||(a=!0,d.push({type:l.type,app:"Progress",context:g.internalroute.context,exten:g.internalroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.internalroute.id})));for(var m=0;m<l.intervals.length;m++){var u=i+l.intervals.length,p=m===l.intervals.length-1?i+d.length+c.length+2:i+m+1;d.splice(m,0,{type:"internal",app:"GotoIfTime",appdata:l.intervals[m]+"?"+g.internalroute.context+",${EXTEN},"+u+":"+g.internalroute.context+",${EXTEN},"+p,exten:g.internalroute.exten,context:g.internalroute.context,priority:i+m,VoiceExtensionId:g.internalroute.id})}l.priority=d.length?_.last(d).priority+1:i,i=(c.length?_.last(c).priority:l.priority)+1,o=_.concat(o,d,[l],c)}o.push({type:"internal",app:"Hangup",exten:g.internalroute.exten,context:g.internalroute.context,priority:i,VoiceExtensionId:g.internalroute.id}),e.voiceExtension.addApplications({id:g.internalroute.id},_.sortBy(o,"priority")).$promise.then(function(e){g.internalrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.internalrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.internalrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedInternalRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInternalRouteApps.forEach(function(e){_.remove(g.internalrouteApps.rows,{id:e.id})}),g.selectedInternalRouteApps=[],l()})}var g=this;g.internalroute={},g.internalrouteApps={count:0,rows:[]},g.selectedInternalRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Internal",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"Custom",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInternalRouteApps=m,g.editInternalRouteApp=s,g.editInterval=r,g.deleteInternalRouteApp=u,g.deleteSelectedInternalRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InternalRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInternalRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.internalroutes")}function r(){i.voiceExtension.update({id:l.internalroute.id},l.internalroute).$promise.then(function(){a.success({title:"InternalRoute updated!",msg:l.internalroute.name?l.internalroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.internalroute=e.params.internalroute||o||{},l.selectedTab=e.params.tab||0,l.gotoInternalRoutes=s,l.saveInternalRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","internalroute"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.internalroutes.edit",{id:e.id,internalroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the internalroute?").htmlContent("<b>"+(e.name||"internalroute")+"</b> will be deleted.").ariaLabel("delete internalroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.internalroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalroute:t,internalroutes:A.internalroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.internalroutes.rows,{id:e.id}),A.internalroutes.count-=1,A.internalroutes.rows.length||A.getInternalRoutes(),c.success({title:"InternalRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedInternalRoutes);return A.selectedInternalRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected internalroutes?").htmlContent("<b>"+A.selectedInternalRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InternalRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInternalRoutes.forEach(function(e){v(e)}),A.selectedInternalRoutes=[]})}function E(){A.selectedInternalRoutes=[]}function y(){A.selectedInternalRoutes=A.internalroutes.rows}var A=this;A.internalroutes=r||{count:0,rows:[]},A.table="internalroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInternalRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInternalRoutes=g,A.createOrEditInternalRoute=h,A.deleteInternalRoute=v,A.exportSelectedInternalRoutes=b,A.deleteSelectedInternalRoutes=f,A.deselectInternalRoutes=E,A.selectAllInternalRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getInternalRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","internalroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.save(p.musiconhold).$promise.then(function(e){p.musiconholds.unshift(e),i.success({title:"MusicOnHold properly created",msg:p.musiconhold.name?p.musiconhold.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMusicOnHold.update({id:p.musiconhold.id},p.musiconhold).$promise.then(function(e){var t=_.find(p.musiconholds,{id:e.id});t&&_.merge(t,e),i.success({title:"MusicOnHold properly saved!",msg:p.musiconhold.name?p.musiconhold.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMusicOnHold.delete({id:p.musiconhold.id}).$promise.then(function(){_.remove(p.musiconholds,{id:p.musiconhold.id}),i.success({title:"MusicOnHold properly deleted!",msg:(p.musiconhold.name||"musiconhold")+" has been deleted!"}),u(p.musiconhold)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_MUSICONHOLD",p.musiconhold=angular.copy(s),p.musiconholds=o,p.newMusicOnHold=!1,p.musiconhold||(p.musiconhold={mode:"files"},p.title="VOICE.NEW_MUSICONHOLD",p.newMusicOnHold=!0),p.addNewMusicOnHold=l,p.saveMusicOnHold=d,p.deleteMusicOnHold=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","musiconholds","musiconhold","api"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.musiconhold=e,h.query.id=h.musiconhold.id,h.query.VoiceMusicOnHoldId=h.musiconhold.id,h.getMusicOnHoldMohSounds()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.musiconholdMohSounds=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceMusicOnHold.getSounds(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mohSound:t,mohSounds:h.musiconholdMohSounds.rows}})}function p(e){r.voiceMusicOnHold.removeSound({id:n.params.id,id2:e.id}).$promise.then(function(){_.remove(h.musiconholdMohSounds.rows,{id:e.id}),h.musiconholdMohSounds.count-=1,h.musiconholdMohSounds.rows.length||h.getMusicOnHoldMohSounds(),s.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+h.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedMusicOnHoldMohSounds.forEach(function(e){p(e)}),h.selectedMusicOnHoldMohSounds=[]})}var h=this;h.musiconhold={},h.musiconholdMohSounds={count:0,rows:[]},h.selectedMusicOnHoldMohSounds=[],h.query={fields:"createdAt,updatedAt,id,audio,id,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getMusicOnHoldMohSounds=m,h.createOrEditMusicOnHoldMohSound=u,h.deleteMusicOnHoldMohSound=p,h.deleteSelectedMusicOnHoldMohSounds=g,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){h.sounds=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getMusicOnHoldMohSounds())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.addSound({id:t.params.id},p.mohSound).$promise.then(function(e){p.mohSounds.unshift(e),i.success({title:"MohSound properly created",msg:p.mohSound.name?p.mohSound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMusicOnHold.update({id:p.mohSound.id},p.mohSound).$promise.then(function(e){var t=_.find(p.mohSounds,{id:e.id});t&&_.merge(t,e),i.success({title:"MohSound properly saved!",msg:p.mohSound.name?p.mohSound.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMusicOnHold.delete({id:p.mohSound.id}).$promise.then(function(){_.remove(p.mohSounds,{id:p.mohSound.id}),i.success({title:"MohSound properly deleted!",msg:(p.mohSound.name||"mohSound")+" has been deleted!"}),u(p.mohSound)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_MOHSOUND",p.mohSound=angular.copy(s),p.mohSounds=o,p.newMohSound=!1,p.mohSound||(p.mohSound={},p.title="VOICE.NEW_MOHSOUND",p.newMohSound=!0),t.params.id&&(p.mohSound.VoiceMusicOnHoldId=t.params.id),p.addNewMohSound=l,p.saveMohSound=d,p.deleteMohSound=c,p.getDateFromString=m,p.closeDialog=u,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){p.sounds=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mohSounds","mohSound","api"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.musiconholds")}function r(){i.voiceMusicOnHold.update({id:l.musiconhold.id},l.musiconhold).$promise.then(function(){a.success({title:"MusicOnHold updated!",msg:l.musiconhold.name?l.musiconhold.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.musiconhold=e.params.musiconhold||o||{},l.selectedTab=e.params.tab||0,l.gotoMusicOnHolds=s,l.saveMusicOnHold=r}e.$inject=["$state","$mdDialog","$document","toasty","api","musiconhold"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the musiconhold?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.musiconholds=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMusicOnHold.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:t,musiconholds:A.musiconholds.rows}})}function v(e){l.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(A.musiconholds.rows,{id:e.id}),A.musiconholds.count-=1,A.musiconholds.rows.length||A.getMusicOnHolds(),c.success({title:"MusicOnHold deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMusicOnHolds);return A.selectedMusicOnHolds=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+A.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMusicOnHolds.forEach(function(e){v(e)}),A.selectedMusicOnHolds=[]})}function E(){A.selectedMusicOnHolds=[]}function y(){A.selectedMusicOnHolds=A.musiconholds.rows}var A=this;A.musiconholds=r||{count:0,rows:[]},A.table="musiconholds",A.listOrder="",A.listOrderAsc=null,A.selectedMusicOnHolds=[],A.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMusicOnHolds=g,A.createOrEditMusicOnHold=h,A.deleteMusicOnHold=v,A.exportSelectedMusicOnHolds=b,A.deleteSelectedMusicOnHolds=f,A.deselectMusicOnHolds=E,A.selectAllMusicOnHolds=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","musiconholds","api","msUtils","toasty"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.outboundroute).$promise.then(function(e){p.outboundroutes.unshift(e),i.success({title:"OutboundRoute properly created",msg:p.outboundroute.name?p.outboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.outboundroute.id},p.outboundroute).$promise.then(function(e){var t=_.find(p.outboundroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"OutboundRoute properly saved!",msg:p.outboundroute.name?p.outboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The outboundroute will be deleted.").ariaLabel("Delete OutboundRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.outboundroute.id}).$promise.then(function(){_.remove(p.outboundroutes,{id:p.outboundroute.id}),i.success({title:"OutboundRoute properly deleted!",msg:(p.outboundroute.name||"outboundroute")+" has been deleted!"}),u(p.outboundroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_OUTBOUNDROUTE",p.outboundroute=angular.copy(s),p.outboundroutes=o,p.newOutboundRoute=!1,p.outboundroute||(p.outboundroute={appdata:"Outbound Call",type:"outbound",context:"from-sip"},p.title="VOICE.NEW_OUTBOUNDROUTE",p.newOutboundRoute=!0),p.addNewOutboundRoute=l,p.saveOutboundRoute=d,p.deleteOutboundRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","outboundroutes","outboundroute","api"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.outboundroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getOutboundRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.outboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.outboundrouteApps.rows.length){var o=g.outboundrouteApps.rows[i]?g.outboundrouteApps.rows[i]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundrouteApp:o}}).then(function(e){e&&(e.id?g.outboundrouteApps.rows[i]=e:g.outboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.outboundrouteApps.rows.length){var i=g.outboundrouteApps.rows[a]?g.outboundrouteApps.rows[a]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=2,n=[];n.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+g.outboundroute.id,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id});for(var a=0,i=0;a<g.outboundrouteApps.rows.length;a++,i=0){var o=g.outboundrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=g.outboundroute.context,o.exten=g.outboundroute.exten,o.hasOwnProperty("tag")&&o.tag&&"--"!==o.tag&&s.push({type:o.type,app:"Set",appdata:"CDR(tag)="+o.tag,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("callerID")&&o.callerID&&s.push({type:o.type,app:"Set",appdata:"CALLERID(all)="+o.callerID,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("record")&&o.hasOwnProperty("recordingFormat")&&o.record&&s.push({type:o.type,app:"MixMonitor",appdata:"${UNIQUEID}."+o.recordingFormat+",ab",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("record")&&o.hasOwnProperty("recordingFormat")&&o.record&&r.push({type:o.type,app:"StopMixMonitor",appdata:null,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i+++1,VoiceExtensionId:g.outboundroute.id});for(var l=0;l<o.intervals.length;l++){var d=t+o.intervals.length,c=l===o.intervals.length-1?t+s.length+r.length+2:t+l+1;s.splice(l,0,{type:"outbound",app:"GotoIfTime",appdata:o.intervals[l]+"?"+g.outboundroute.context+",${EXTEN},"+d+":"+g.outboundroute.context+",${EXTEN},"+c,exten:g.outboundroute.exten,context:g.outboundroute.context,priority:t+l,VoiceExtensionId:g.outboundroute.id})}o.priority=s.length?_.last(s).priority+1:t,t=(r.length?_.last(r).priority:o.priority)+1,n=_.concat(n,s,[o],r)}n.push({type:"outbound",app:"Hangup",exten:g.outboundroute.exten,context:g.outboundroute.context,priority:t,VoiceExtensionId:g.outboundroute.id}),e.voiceExtension.addApplications({id:g.outboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){g.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.outboundrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.outboundrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedOutboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedOutboundRouteApps.forEach(function(e){_.remove(g.outboundrouteApps.rows,{id:e.id})}),g.selectedOutboundRouteApps=[],l()})}var g=this;g.outboundroute={},g.outboundrouteApps={count:0,rows:[]},g.selectedOutboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Outbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",appType:"agi",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Outbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Outbound",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]},{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}},{name:"tags",route:"tag",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Caller_ID",name:"callerID",type:"text"},{title:"Prefix",name:"prefix",type:"text"},{title:"CutDigits",name:"cutdigits",type:"number",min:0},{title:"Recording",name:"recordingFormat",type:"select",values:[{option:"none",value:"'none'"},{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],defaultValue:"none",required:!0,general:!0,help:!0},{title:"Tags",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",defaultValues:[{value:"'--'",option:"None"}]},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:null,type:"Outbound",appType:"Custom",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getOutboundRouteApps=m,g.editOutboundRouteApp=s,g.editInterval=r,g.deleteOutboundRouteApp=u,g.deleteSelectedOutboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("OutboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOutboundRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.outbounddial.type.toLowerCase()&&"outboundDial"===s.outbounddial.appType&&(s.outbounddial.phone=s.outbounddial.cutdigits?(s.outbounddial.prefix||"")+"${EXTEN:"+s.outbounddial.cutdigits+"}":(s.outbounddial.prefix||"")+"${EXTEN}",s.outbounddial.record="none"!==s.outbounddial.recordingFormat,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:null),s.outbounddial.appType.toLowerCase()){case"set":s.outbounddial.appdata=s.outbounddial.name+"="+s.outbounddial.value;break;case"custom":break;default:e[0]=["SIP",s.outbounddial.trunk,s.outbounddial.phone].join("/"),e[1]=s.outbounddial.timeout,e[2]=s.outbounddial.options,e[3]=s.outbounddial.url,s.outbounddial.appdata=e.join(",")}o(s.outbounddial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.outbounddial=angular.copy(n),s.outbounddial.appdata)switch(s.outbounddial.appType?s.outbounddial.appType.toLowerCase():s.outbounddial.app.toLowerCase()){case"custom":break;case"set":s.outbounddial.name=s.outbounddial.appdata.split("=")[0],s.outbounddial.value=s.outbounddial.appdata.split("=")[1];break;case"agi":s.outbounddial.project=s.outbounddial.appdata;break;default:var r=s.outbounddial.appdata.split(",");s.outbounddial.trunk=r[0].split("/")[1],s.outbounddial.phone=r[0].split("/")[2],s.outbounddial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.outbounddial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.outbounddial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.outbounddial.type.toLowerCase()&&"outbounddial"===s.outbounddial.appType.toLowerCase()&&(s.outbounddial.prefix=s.outbounddial.phone?s.outbounddial.phone.split("$")[0]:void 0,s.outbounddial.callerId=s.outbounddial.callerID?"CALLERID(all)="+s.outbounddial.callerID:void 0,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.tag.get({fields:"name",sort:"name"}).$promise.then(function(e){s.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppoutbounddialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.outboundroutes")}function r(){i.voiceExtension.update({id:l.outboundroute.id},l.outboundroute).$promise.then(function(){a.success({title:"OutboundRoute updated!",msg:l.outboundroute.name?l.outboundroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.outboundroute=e.params.outboundroute||o||{},l.selectedTab=e.params.tab||0,l.gotoOutboundRoutes=s,l.saveOutboundRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","outboundroute"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.outboundroutes.edit",{id:e.id,outboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the outboundroute?").htmlContent("<b>"+(e.name||"outboundroute")+"</b> will be deleted.").ariaLabel("delete outboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.outboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundroute:t,outboundroutes:A.outboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.outboundroutes.rows,{id:e.id}),A.outboundroutes.count-=1,A.outboundroutes.rows.length||A.getOutboundRoutes(),c.success({title:"OutboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOutboundRoutes);return A.selectedOutboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected outboundroutes?").htmlContent("<b>"+A.selectedOutboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete OutboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOutboundRoutes.forEach(function(e){v(e)}),A.selectedOutboundRoutes=[]})}function E(){A.selectedOutboundRoutes=[]}function y(){A.selectedOutboundRoutes=A.outboundroutes.rows}var A=this;A.outboundroutes=r||{count:0,rows:[]},A.table="outboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedOutboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOutboundRoutes=g,A.createOrEditOutboundRoute=h,A.deleteOutboundRoute=v,A.exportSelectedOutboundRoutes=b,A.deleteSelectedOutboundRoutes=f,A.deselectOutboundRoutes=E,A.selectAllOutboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOutboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","outboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],C))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+"  properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"inbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,C))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,C=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var x=!0,T=1;e.$watch("vm.query.filter",function(e,n){x?t(function(){x=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e){var t=_.find(l.calls.rows,{channel:e.channel});e.channelstatedesc=e.answered?"up":"ring",t?_.merge(t,e):l.calls.rows.push(e)}function r(e){var n=_.findIndex(l.calls.rows,{channel:e.channel});n>=0&&(l.calls.rows[n].status="hangup"),t(function(){l.calls.rows.splice(n,1)},5e3)}var l=this;l.calls=i||{rows:[],count:0},l.query={limit:10,page:1,limitOptions:[10,20,30]},l.channelStatus=o.channelStatusOut,l.onSave=s,l.onRemove=r,a.on("voice_outbound_channel:save",l.onSave),a.on("voice_outbound_channel:remove",l.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"inbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","unmanaged","sumHoldTime","sumDuration","sumBillable"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t<e.length;t+=1)for(var n=0;n<e[t].rows.length;n++)e[t].rows[n].paused&&E.queues[e[t].rows[n].VoiceQueueId].paused++,E.queues[e[t].rows[n].VoiceQueueId].loggedInDb++}).catch(function(e){console.error(e)})}function u(e){E.queues[e.id]&&_.merge(E.queues[e.id],_.pick(e,y))}function p(e){}function g(e){E.count=e.count,E.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function h(){E.query.offset=(E.query.page-1)*E.query.limit,c.hasRole("admin")?E.promise=r.voiceQueue.get(E.query,g).$promise:E.promise=r.user.getQueues(E.query,g).$promise}function v(e,t){n.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:_.values(E.queues)}})}function b(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:E.queues?E.queues.rows:[],realtime:!0}})}function f(e){return r.voiceQueue.update(e).$promise.then(function(){d.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){d.error({title:"Error creating queue!",msg:e.message})})}var E=this,y=["loggedIn","available","waiting","talking","originated","message","dialActive","dialMethod","Trunk"];E.count=o.count,E.queues=o?_.keyBy(o.rows?o.rows:[],"id"):{},E.rpcQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.hasRole("admin")?E.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:E.query={id:c.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1},E.success=g,E.getQueues=h,E.createOrEditVoiceQueue=v,E.agentAdd=b,E.updateQueue=f,E.onSave=u,E.onSaveMember=p,E.$onInit=m,l.on("voice_queue:save",E.onSave),l.on("userVoiceQueueRt:save",E.onSaveMember),l.on("userVoiceQueueRt:update",E.onSaveMember);var A=!0,C=1;e.$watch("vm.query.filter",function(e,n){A?t(function(){A=!1}):(n||(C=E.query.page),e!==n&&(E.query.page=1),e||(E.query.page=C),E.getQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("userVoiceQueueRt:save"),l.removeAllListeners("userVoiceQueueRt:update")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";function e(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}}angular.module("app.auth").factory("helperClasses",e)}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.queue_params":a.selectedTab=5;break;case"app.voice.realtime.outbound_calls":a.selectedTab=6;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.queue_params");break;case 6:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.telephones,function(e,t){p.rpcTelephones[t]&&_.merge(e,_.pick(p.rpcTelephones[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function c(e){p.telephones[e.id]&&_.merge(p.telephones[e.id],_.pick(e,g))}function m(e){p.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.get(p.query,m).$promise}var p=this,g=["fullname","internal","state","status"];p.count=a.count,p.attributes=["fullname","internal","state","status","address"],p.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTelephones=u,p.onSave=c,s.on("telephone:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTelephones())}),e.$on("$destroy",function(){s.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.trunks,function(e,t){p.rpcTrunks[t]&&_.merge(e,_.pick(p.rpcTrunks[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function c(e){p.trunks[e.id]&&_.merge(p.trunks[e.id],_.pick(e,g))}function m(e){p.count=e.count,p.trunks=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.trunk.get(p.query,m).$promise}var p=this,g=["status","stateRegistry","registry","host","port","internal","state","status"];p.count=a.count,p.trunks=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTrunks=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTrunks=u,p.onSave=c,s.on("trunk:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMail.save(p.voicemail).$promise.then(function(e){p.voicemails.unshift(e),i.success({title:"Voicemail properly created",msg:p.voicemail.name?p.voicemail.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMail.update({id:p.voicemail.id},p.voicemail).$promise.then(function(e){var t=_.find(p.voicemails,{id:e.id});t&&_.merge(t,e),i.success({title:"Voicemail properly saved!",msg:p.voicemail.name?p.voicemail.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMail.delete({id:p.voicemail.id}).$promise.then(function(){_.remove(p.voicemails,{id:p.voicemail.id}),i.success({title:"Voicemail properly deleted!",msg:(p.voicemail.name||"voicemail")+" has been deleted!"}),u(p.voicemail)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICEMAIL",p.voicemail=angular.copy(s),p.voicemails=o,p.newVoicemail=!1,p.voicemail||(p.voicemail={},p.title="VOICE.NEW_VOICEMAIL",p.newVoicemail=!0),p.addNewVoicemail=l,p.saveVoicemail=d,p.deleteVoicemail=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voicemails","voicemail","api"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.voicemail=e,h.query.id=h.voicemail.id,h.getVoicemailMessages()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete message").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.voicemailMessages=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceMail.getMessages(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:t,messages:h.voicemailMessages.rows}})}function p(e){r.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(h.voicemailMessages.rows,{id:e.id}),h.voicemailMessages.count-=1,h.voicemailMessages.rows.length||h.getVoicemailMessages(),s.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+h.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedVoicemailMessages.forEach(function(e){p(e)}),h.selectedVoicemailMessages=[]})}var h=this;h.voicemail={},h.voicemailMessages={count:0,rows:[]},h.selectedVoicemailMessages=[],h.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getVoicemailMessages=m,h.createOrEditVoicemailMessage=u,h.deleteVoicemailMessage=p,h.deleteSelectedVoicemailMessages=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getVoicemailMessages())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.voicemails")}function r(){i.voiceMail.update({id:l.voicemail.id},l.voicemail).$promise.then(function(){a.success({title:"Voicemail updated!",msg:l.voicemail.name?l.voicemail.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.voicemail=e.params.voicemail||o||{},l.selectedTab=e.params.tab||0,l.gotoVoicemails=s,l.saveVoicemail=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","voicemail"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voicemails.edit",{id:e.id,voicemail:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voicemail?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voicemails=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMail.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:t,voicemails:A.voicemails.rows}})}function v(e){l.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(A.voicemails.rows,{id:e.id}),A.voicemails.count-=1,A.voicemails.rows.length||A.getVoicemails(),c.success({title:"Voicemail deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVoicemails);return A.selectedVoicemails=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+A.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoicemails.forEach(function(e){v(e)}),A.selectedVoicemails=[]})}function E(){A.selectedVoicemails=[]}function y(){A.selectedVoicemails=A.voicemails.rows}var A=this;A.voicemails=r||{count:0,rows:[]},A.table="voicemails",A.listOrder="",A.listOrderAsc=null,A.selectedVoicemails=[],A.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},A.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getVoicemails=g,A.createOrEditVoicemail=h,A.deleteVoicemail=v,A.exportSelectedVoicemails=b,A.deleteSelectedVoicemails=f,A.deselectVoicemails=E,A.selectAllVoicemails=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicemails","api","msUtils","toasty"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.voiceQueue).$promise.then(function(e){p.voiceQueues.unshift(e),i.success({title:"VoiceQueue properly created",msg:p.voiceQueue.name?p.voiceQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceQueue.update({id:p.voiceQueue.id},p.voiceQueue).$promise.then(function(e){var t=_.find(p.voiceQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceQueue properly saved!",msg:p.voiceQueue.name?p.voiceQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceQueue.delete({id:p.voiceQueue.id}).$promise.then(function(){_.remove(p.voiceQueues,{id:p.voiceQueue.id}),i.success({title:"VoiceQueue properly deleted!",msg:(p.voiceQueue.name||"voiceQueue")+" has been deleted!"}),u(p.voiceQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICEQUEUE",p.voiceQueue=angular.copy(s),p.voiceQueues=o,p.newVoiceQueue=!1,p.voiceQueue||(p.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},p.title="VOICE.NEW_VOICEQUEUE",p.newVoiceQueue=!0),p.addNewVoiceQueue=l,p.saveVoiceQueue=d,p.deleteVoiceQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceQueues","voiceQueue","api"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.voiceQueue[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.voiceQueue=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:c.voiceQueue.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"VoiceQueue properly "+(a?"removed":"added"),msg:"VoiceQueue has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","voiceQueue","voiceQueues","realtime","$translate"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.voiceQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("VOICE.ALL_TEAMS"),labelSelected:i.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.voiceQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","voiceQueue","$translate"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[]}})}function r(e,a){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[],realtime:!1}})}function l(){e.go("app.voice.voiceQueues")}function d(){i.voiceQueue.update({id:c.voiceQueue.id},c.voiceQueue).$promise.then(function(){a.success({title:"VoiceQueue updated!",msg:c.voiceQueue.name?c.voiceQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.voiceQueue=e.params.voiceQueue||o||{},c.selectedTab=e.params.tab||0,c.teamadddialog=s,c.agentadddialog=r,c.gotoVoiceQueues=l,c.saveVoiceQueue=d,i.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.sound.get({fields:"name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.sounds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","voiceQueue"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e})}function u(e,t){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:x.voiceQueues?x.voiceQueues.rows:[]}})}function p(e,t){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:x.voiceQueues?x.voiceQueues.rows:[],realtime:!1}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the voiceQueue?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){x.voiceQueues=e||{count:0,rows:[]}}function v(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.voiceQueue.get(x.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:x.voiceQueues.rows}})}function f(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(x.voiceQueues.rows,{id:e.id}),x.voiceQueues.count-=1,x.voiceQueues.rows.length||x.getVoiceQueues(),c.success({title:"VoiceQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=_.clone(x.selectedVoiceQueues);return x.selectedVoiceQueues=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+x.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedVoiceQueues.forEach(function(e){f(e)}),x.selectedVoiceQueues=[]})}function A(){x.selectedVoiceQueues=[]}function C(){x.selectedVoiceQueues=x.voiceQueues.rows}var x=this;x.voiceQueues=r||{count:0,rows:[]},x.table="voiceQueues",x.listOrder="",x.listOrderAsc=null,x.selectedVoiceQueues=[],x.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",limit:10,page:1},x.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayjoinempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.editstate=m,x.teamadddialog=u,x.agentadddialog=p,x.deleteconfirm=g,x.success=h,x.getVoiceQueues=v,x.createOrEditVoiceQueue=b,x.deleteVoiceQueue=f,x.exportSelectedVoiceQueues=E,x.deleteSelectedVoiceQueues=y,x.deselectVoiceQueues=A,x.selectAllVoiceQueues=C;var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceQueues","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceRecording.save(p.voiceRecording).$promise.then(function(e){p.voiceRecordings.unshift(e),i.success({title:"VoiceRecording properly created",msg:p.voiceRecording.name?p.voiceRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceRecording.update({id:p.voiceRecording.id},p.voiceRecording).$promise.then(function(e){var t=_.find(p.voiceRecordings,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceRecording properly saved!",msg:p.voiceRecording.name?p.voiceRecording.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceRecording.delete({id:p.voiceRecording.id}).$promise.then(function(){_.remove(p.voiceRecordings,{id:p.voiceRecording.id}),i.success({title:"VoiceRecording properly deleted!",msg:(p.voiceRecording.name||"voiceRecording")+" has been deleted!"}),u(p.voiceRecording)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICERECORDING",p.voiceRecording=angular.copy(s),p.voiceRecordings=o,p.newVoiceRecording=!1,p.voiceRecording||(p.voiceRecording={},p.title="VOICE.NEW_VOICERECORDING",p.newVoiceRecording=!0),p.addNewVoiceRecording=l,p.saveVoiceRecording=d,p.deleteVoiceRecording=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceRecordings","voiceRecording","api"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,n){return l.voiceRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/voice/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voiceRecording?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voiceRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:t,voiceRecordings:A.voiceRecordings.rows}})}function v(e){l.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.voiceRecordings.rows,{id:e.id}),A.voiceRecordings.count-=1,A.voiceRecordings.rows.length||A.getVoiceRecordings(),c.success({title:"VoiceRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVoiceRecordings);return A.selectedVoiceRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+A.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoiceRecordings.forEach(function(e){v(e)}),A.selectedVoiceRecordings=[]})}function E(){A.selectedVoiceRecordings=[]}function y(){A.selectedVoiceRecordings=A.voiceRecordings.rows}var A=this;A.voiceRecordings=r||{count:0,rows:[]},A.table="voiceRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedVoiceRecordings=[],A.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getVoiceRecordings=g,A.createOrEditVoiceRecording=h,A.deleteVoiceRecording=v,A.exportSelectedVoiceRecordings=b,A.deleteSelectedVoiceRecordings=f,A.deselectVoiceRecordings=E,A.selectAllVoiceRecordings=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){return a.getCurrentUser()&&a.hasRole("agent")}this.isAgent=o,n.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return a.hasRole("agent")}}),n.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(100)&&!a.hasRole("admin")}}),n.saveItem("apps.dashboards.general",{id:101,title:"General",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(101)&&!a.hasRole("admin")}}),n.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(200)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.users",{id:201,title:"Users",translate:"STAFF.USERS",state:"app.staff.users",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(201)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.agents",{id:202,title:"Agents",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(202)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.telephones",{id:203,title:"Telephones",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(203)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.teams",{id:204,title:"Teams",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(204)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",weight:4,hidden:function(){return!i.cm||a.hasRole("agent")||!a.hasPermission(300)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(301)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(302)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",weight:4,hidden:function(){return a.hasRole("agent")||!a.hasPermission(304)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(303)&&!a.hasRole("admin")}}),n.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",weight:5,hidden:function(){return a.hasRole("agent")||!a.hasPermission(400)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(401)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.inboundroutes",{id:402,title:"InboundRoutes",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(402)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.outboundroutes",{id:403,title:"OutboundRoutes",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(403)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.internalroutes",{id:404,title:"InternalRoutes",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(404)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.contexts",{id:405,title:"Contexts",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(405)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(406)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(407)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(408)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(409)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.realtime",{id:410,title:"Realtime",translate:"VOICE.REALTIME",state:"app.voice.realtime",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(410)&&!a.hasRole("admin")}}),n.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",weight:6,hidden:function(){return!i.chat||a.hasRole("agent")||!a.hasPermission(500)&&!a.hasRole("admin")}}),n.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(501)&&!a.hasRole("admin")}}),n.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(502)&&!a.hasRole("admin")}}),n.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",weight:7,hidden:function(){return!i.license||a.hasRole("agent")||!a.hasPermission(600)&&!a.hasRole("admin")}}),n.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(601)&&!a.hasRole("admin")}}),n.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(602)&&!a.hasRole("admin")}}),n.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",weight:8,hidden:function(){return!i.messaging||a.hasRole("agent")||!a.hasPermission(700)&&!a.hasRole("admin")}}),n.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(701)&&!a.hasRole("admin")}}),n.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(702)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",weight:9,hidden:function(){return!i.openchannel||a.hasRole("agent")||!a.hasPermission(800)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(801)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(802)&&!a.hasRole("admin")}}),n.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",weight:10,hidden:function(){return!i.fax||a.hasRole("agent")||!a.hasPermission(900)&&!a.hasRole("admin")}}),n.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(901)&&!a.hasRole("admin")}}),n.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(902)&&!a.hasRole("admin")}}),n.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:11,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1e3)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.cannedAnswers",{id:1002,title:"CannedAnswers",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1002)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1003)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1004)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1005)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.schedules",{id:42,title:"Scheduler",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return a.hasRole("agent")||!a.hasPermission(42)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.sounds",{id:1006,title:"Sounds",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1006)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.tags",{id:1007,title:"Tags",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1007)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.templates",{id:1008,title:"Templates",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1008)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.triggers",{id:1009,title:"Triggers",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1009)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.trunks",{id:1010,title:"Trunks",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1010)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.variables",{id:1011,title:"Variables",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1011)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",weight:12,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1100)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1101)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1102)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1103)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:13,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1200)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1201)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1202)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.reports",{id:1203,title:"Reports",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1203)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:14,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1300)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1301)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1302)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1303)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.sugarcrmAccounts",{id:1304,title:"SugarcrmAccounts",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1304)&&!a.hasRole("admin")}}),n.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",weight:15,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1400)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.generals",{id:1401,title:"General",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1401)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1402)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.networks",{id:1403,title:"Networks",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1403)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!i.custom||a.hasRole("agent")||!a.hasPermission(1407)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.updates",{id:1404,title:"Updates",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!i.update||a.hasRole("agent")||!a.hasPermission(1404)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.license",{id:1405,title:"License",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1405)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.system",{id:1406,title:"System",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1406)&&!a.hasRole("admin")}}),n.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",weight:16,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1600)&&!a.hasRole("admin")}}),n.saveItem("apps.help.about",{id:1601,title:"About",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1601)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",weight:5,hidden:function(){return!i.dialer||a.hasRole("agent")||!a.hasPermission(1500)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1501)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1502)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1510)&&!a.hasRole("admin")}}),e.$on("$viewContentAnimationEnded",function(n){n.targetScope.$id===e.$id&&t.$broadcast("msSplashScreen::remove")})}e.$inject=["$scope","$rootScope","msNavigationService","Auth","license"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,t){function n(){i.folded=!i.folded}function a(){return i.setting.defaultHeaderWhiteLabel?"Motion":i.setting.headerWhiteLabel}var i=this;i.bodyEl=angular.element("body"),i.folded=!1,i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.toggleMsNavigationFolded=n,i.getLogo=a,e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","setting"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,t){var n=this;n.date=new Date,n.license=t,n.license.gray&&(n.license.deadline=moment(n.license.gray).add(7,"days").format("MMMM Do YYYY, HH:MM"))}e.$inject=["msApi","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,t){function n(e){o.chatActive=!o.chatActive,o.chatActive&&(o.replyMessage="",o.chat.contact=e,i(0))}function a(){""!==o.replyMessage&&(o.chat.contact.dialog||(o.chat.contact.dialog=[]),o.chat.contact.dialog.push({who:"user",message:o.replyMessage,time:"Just now"}),o.replyMessage="",i(400))}function i(e){var n=angular.element("#chat-dialog");t(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}var o=this;o.chat={},o.chatActive=!1,o.replyMessage="",e.request("quickPanel.contacts@get",{},function(e){o.contacts=e.data}),o.toggleChat=n,o.reply=a}e.$inject=["msApi","$timeout"],angular.module("app.quick-panel").controller("ChatTabController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id},{oldPassword:s.oldPassword,newPassword:s.password}).$promise.then(function(){t.show(t.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","$mdToast","api","user"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v){function b(e){return h.cmHopper.getDialerContacts({limit:1}).$promise.then(function(t){if(t&&t.count){var n=t.rows[0],a=n.Contact,i=a.fullName||a.lastName||a.phone,o=a.phone,s=l.confirm().title("Preview Call").clickOutsideToClose(!0).textContent("Do you want to call the contact "+i+" ("+o+")?").ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");l.show(s).then(function(){return h.cmHopper.callDialerContact({id:n.id}).$promise.then(function(e){console.log("data",e)}).catch(function(e){console.error(e)})}).catch(function(e){return h.cmHopper.update({id:n.id,active:!1}).$promise.then(function(){m.success({title:"Contact rejected",msg:"Contact "+a.phone+" properly rejected"})}).catch(function(e){m.error({title:e.message,msg:e.message})})})}else m.info({title:"No available contacts",msg:"No contacts found"})}).catch(function(e){console.error(e)})}function f(e){i(e).toggle()}function E(e){I.userStatus=e}function y(e){return p.logout(e).then(function(){return g.disconnect(),n.go("app.login")}).catch(function(e){console.error(e)})}function A(e){if(I.languages.hasOwnProperty(e.code))I.selectedLanguage=e,c.put("motion.language",e.code),o.use(e.code),"app.callysquare.projects.edit"===n.current.name&&r.location.reload();else{s.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}}function C(){I.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")}function x(){u.toggleFolded()}function T(e){for(var n=[],i=u.getFlatNavigation(),o=t.defer(),s=0;s<i.length;s++)i[s].uisref&&n.push(i[s]);return e&&(n=n.filter(function(t){if(angular.lowercase(t.title).search(angular.lowercase(e))>-1)return!0})),a(function(){o.resolve(n)},1e3),o.promise}function S(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}function O(e){l.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:I.user}})}function w(){return p.getCurrentUser()&&p.hasRole("agent")}function R(e){if(e.id===I.user.id)if(e.online)_.merge(I.user,e),p.updateCurrentUser(I.user);else{var t=l.confirm().title(o.instant("TOOLBAR.WARNING")+"!").textContent(o.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")).ariaLabel(o.instant("TOOLBAR.WARNING")+"!").ok(o.instant("TOOLBAR.STAY_LOGGED")).cancel("Logout");l.show(t).then(function(){p.queueLogin()}).catch(function(e){y(!0)}).finally(function(){_.merge(I.user,e),p.updateCurrentUser(I.user)})}}var I=this;e.global={search:""},I.license=v,I.bodyEl=angular.element("body"),I.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],I.languages={en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"}},I.toggleSidenav=f,I.logout=y,I.changeLanguage=A,I.setUserStatus=E,I.toggleHorizontalMobileMenu=C,I.toggleMsNavigationFolded=x,I.search=T,I.searchResultClick=S,I.changePassword=O,I.isAgent=w,I.onUserUpdate=R,I.preview=b,g.connect(),g.on("user:update",I.onUserUpdate),function(){I.user=p.getCurrentUser(),I.userStatus=I.userStatusOptions[0];var e=c.get("motion.language");e&&I.languages.hasOwnProperty(e)?I.selectedLanguage=I.languages[e]:I.selectedLanguage=I.languages[o.preferredLanguage()]}()}e.$inject=["$rootScope","$q","$state","$timeout","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var t=new Object,n=e.lastIndexOf("?");if(n>0)for(var a=e.substring(n+1).split("&"),i=0;i<a.length;i++)(n=a[i].indexOf("="))>0&&(t[a[i].substring(0,n)]=a[i].substring(n+1));return t}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE"),IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&0>navigator.userAgent.indexOf("Chrome/"),IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:0>document.location.href.indexOf("http://")&&0>document.location.href.indexOf("https://"),isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,t,n){if(n=n||document,mxClient.IS_IE6)n.write('<link rel="'+e+'" href="'+t+'" charset="ISO-8859-1" type="text/css"/>');else{var a=n.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",t),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),n.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,t=document.createElement("table");t.setAttribute("width","100%"),t.setAttribute("height","100%");var n=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),n.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),n.appendChild(a),t.appendChild(n),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=n=0,"number"==typeof window.innerWidth?(n=window.innerHeight,a=window.innerWidth):(n=document.documentElement.clientHeight||document.body.clientHeight,a=document.body.clientWidth),mxLog.window=new mxWindow(e,t,Math.max(0,a-320),Math.max(0,n-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var o=mxLog.window.getElement(),e=function(e,t){mxLog.textarea.style.height=Math.max(0,o.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,t){var n=document.createElement("button");mxUtils.write(n,e),mxEvent.addListener(n,"click",t),mxLog.td.appendChild(n)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,t){if(mxLog.TRACE){var n=0!=t?" ("+((new Date).getTime()-t)+" ms)":"";mxLog.writeln("Leaving "+e+n)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",t=0;t<arguments.length;t++)e+=arguments[t],t<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",t=0;t<arguments.length;t++)e+=arguments[t],t<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var t=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=t+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,t){var n=mxObjectIdentity.get(e),a=this.map[n];return this.map[n]=t,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var t=this.map[e];return delete this.map[e],t},mxDictionary.prototype.getKeys=function(){var e,t=[];for(e in this.map)t.push(e);return t},mxDictionary.prototype.getValues=function(){var e,t=[];for(e in this.map)t.push(this.map[e]);return t},mxDictionary.prototype.visit=function(e){for(var t in this.map)e(t,this.map[t])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,t){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(t)?e+mxResources.extension:null},getSpecialBundle:function(e,t){if(null==mxClient.languages||!this.isLanguageSupported(t)){var n=t.indexOf("-");0<n&&(t=t.substring(0,n))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(t)&&t!=mxClient.defaultLanguage?e+"_"+t+mxResources.extension:null},add:function(e,t){if((t=null!=t?t:mxClient.language.toLowerCase())!=mxConstants.NONE){var n=mxResources.getDefaultBundle(e,t);if(null!=n)try{var a=mxUtils.load(n);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(n=mxResources.getSpecialBundle(e,t)))try{(a=mxUtils.load(n)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var t=0;t<e.length;t++)if("#"!=e[t].charAt(0)){var n=e[t].indexOf("=");if(0<n){var a=e[t].substring(0,n),i=e[t].length;13==e[t].charCodeAt(i-1)&&i--,n=e[t].substring(n+1,i),this.resourcesEncoded?(n=n.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(n)):mxResources.resources[a]=n}}}},get:function(e,t,n){if(null==(e=mxResources.resources[e])&&(e=n),null!=e&&null!=t){n=[];for(var a=null,i=0;i<e.length;i++){var o=e.charAt(i);"{"==o?a="":null!=a&&"}"==o?(0<=(a=parseInt(a)-1)&&a<t.length&&n.push(t[a]),a=null):null!=a?a+=o:n.push(o)}e=n.join("")}return e}};mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,t,n,a){this.x=e,this.y=t,this.width=n,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=t,this.y=n,this.width=a-t,this.height=e-n}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(e,t,n){var a=0,i=function(){for(var s=!1,r=0;r<t.length;r++){var l=t[r];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var d=e.getView().getState(l.cell||l.child,!1);if(null!=d)if(s=!0,l.constructor!=mxGeometryChange||e.model.isEdge(l.cell))mxUtils.setOpacity(d.shape.node,100*a/10);else{var c=e.getView().scale,m=(l.geometry.x-l.previous.x)*c,u=(l.geometry.y-l.previous.y)*c,p=(l.geometry.width-l.previous.width)*c,c=(l.geometry.height-l.previous.height)*c;0==a?(d.x-=m,d.y-=u,d.width-=p,d.height-=c):(d.x+=m/10,d.y+=u/10,d.width+=p/10,d.height+=c/10),e.cellRenderer.redraw(d),mxEffects.cascadeOpacity(e,l.cell,100*a/10)}}}10>a&&s?(a++,window.setTimeout(i,o)):null!=n&&n()},o=30;i()},cascadeOpacity:function(e,t,n){for(var a=e.model.getChildCount(t),i=0;i<a;i++){var o=e.model.getChildAt(t,i),s=e.getView().getState(o);null!=s&&(mxUtils.setOpacity(s.shape.node,n),mxEffects.cascadeOpacity(e,o,n))}if(null!=(t=e.model.getEdges(t)))for(i=0;i<t.length;i++)null!=(a=e.getView().getState(t[i]))&&mxUtils.setOpacity(a.shape.node,n)},fadeOut:function(e,t,n,a,i,o){a=a||40,i=i||30;var s=t||100;if(mxUtils.setOpacity(e,s),o||null==o){var r=function(){s=Math.max(s-a,0),mxUtils.setOpacity(e,s),0<s?window.setTimeout(r,i):(e.style.visibility="hidden",n&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",n&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var t=e.length,n=0;n<t;n+=1)mxUtils.removeCursors(e[n])},getCurrentStyle:function(){return mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null}}(),hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,t){return function(){return t.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,t,n){var a=e.getAttribute(t);if(null!=a&&a==n)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,t,n)))return a;e=e.nextSibling}return null},findNodeByAttribute:function(){return 9<=document.documentMode?function(e,t,n){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(t)==n)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,t,n),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,t,n){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+t+"='"+n+"']")}:function(e,t,n){return null==e?null:e.ownerDocument.evaluate("//*[@"+t+"='"+n+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()}}(),getFunctionName:function(e){n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n),n=e.substring(n,t)}return n},indexOf:function(e,t){if(null!=e&&null!=t)for(var n=0;n<e.length;n++)if(e[n]==t)return n;return-1},remove:function(e,t){var n=null;if("object"==typeof t)for(var a=mxUtils.indexOf(t,e);0<=a;)t.splice(a,1),n=e,a=mxUtils.indexOf(t,e);for(var i in t)t[i]==e&&(delete t[i],n=e);return n},isNode:function(e,t,n,a){return!(null==e||isNaN(e.nodeType)||null!=t&&e.nodeName.toLowerCase()!=t.toLowerCase())&&(null==n||e.getAttribute(n)==a)},getChildNodes:function(e,t){t=t||mxConstants.NODETYPE_ELEMENT;for(var n=[],a=e.firstChild;null!=a;)a.nodeType==t&&n.push(a),a=a.nextSibling;return n},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:function(){return mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?function(e){var t=mxUtils.createXmlDocument();return t.async="false",t.loadXML(e),t}:function(e){return(new DOMParser).parseFromString(e,"text/xml")}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0}(),getPrettyXml:function(e,t,n){var a=[];if(null!=e)if(t=t||"  ",n=n||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(n+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var o=0;o<i.length;o++){var s=mxUtils.htmlEntities(i[o].nodeValue);a.push(" "+i[o].nodeName+'="'+s+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,t,n+t)),i=i.nextSibling;a.push(n+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,t){for(var n=t?e.previousSibling:e.nextSibling;null!=n&&n.nodeType==mxConstants.NODETYPE_TEXT;){var a=t?n.previousSibling:n.nextSibling,i=mxUtils.getTextContent(n);0==mxUtils.trim(i).length&&n.parentNode.removeChild(n),n=a}},htmlEntities:function(e,t){return e=(e||"").replace(/&/g,"&amp;"),e=e.replace(/"/g,"&quot;"),e=e.replace(/\'/g,"&#39;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),(null==t||t)&&(e=e.replace(/\n/g,"&#xa;")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,t){var n="";return null!=e&&(n=e.xml,n=null==n?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):n.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),n=n.replace(/\n/g,t||"&#xa;")},getTextContent:function(e){var t="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),t=e.nodeValue||""),t},getInnerHtml:function(){return mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(e){if(null!=e){if(null!=e.outerHTML)return e.outerHTML;var t=[];t.push("<"+e.nodeName);var n=e.attributes;if(null!=n)for(var a=0;a<n.length;a++){var i=n[a].nodeValue;null!=i&&0<i.length&&(t.push(" "),t.push(n[a].nodeName),t.push('="'),t.push(i),t.push('"'))}return 0==e.innerHTML.length?t.push("/>"):(t.push(">"),t.push(e.innerHTML),t.push("</"+e.nodeName+">")),t.join("")}return""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""}}(),write:function(e,t){var n=e.ownerDocument.createTextNode(t);return null!=e&&e.appendChild(n),n},writeln:function(e,t){var n=e.ownerDocument.createTextNode(t);return null!=e&&(e.appendChild(n),e.appendChild(document.createElement("br"))),n},br:function(e,t){t=t||1;for(var n=null,a=0;a<t;a++)null!=e&&(n=e.ownerDocument.createElement("br"),e.appendChild(n));return n},button:function(e,t,n){return n=null!=n?n:document,n=n.createElement("button"),mxUtils.write(n,e),mxEvent.addListener(n,"click",function(e){t(e)}),n},para:function(e,t){var n=document.createElement("p");return mxUtils.write(n,t),null!=e&&e.appendChild(n),n},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,t,n,a,i){return mxUtils.link(e,t,function(){n.execute(a)},i)},linkInvoke:function(e,t,n,a,i,o){return mxUtils.link(e,t,function(){n[a](i)},o)},link:function(e,t,n,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",n),mxUtils.write(i,t),null!=e&&e.appendChild(i),i},fit:function(e){var t=parseInt(e.offsetLeft),n=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,o=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);t+n>o&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,o-n)+"px"),(t=parseInt(e.offsetTop))+(n=parseInt(e.offsetHeight))>(o=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,o-n)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return t.initWithPath(e),t.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(t,1,4,null),(t=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),t.read(t.available())):(mxUtils.alert("File not found."),"")}return t=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1),e=t.readAll(),t.close(),e},save:function(e,t){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);n.initWithPath(e),n.exists()||n.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(n,34,4,null),a.write(t,t.length),a.flush(),a.close()}else(n=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(t),n.Close()},saveAs:function(e){var t=document.createElement("iframe");t.setAttribute("src",""),t.style.visibility="hidden",document.body.appendChild(t);try{if(mxClient.IS_NS){var n=t.contentDocument;n.open(),n.write(e),n.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),t.focus(),saveDocument(n)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(n=t.contentWindow.document).write(e),n.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(t)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var t=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(t){var n=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(n){n.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,n.setTransferData("text/unicode",a,2*e.length),t.setData(n,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,t,n){return new mxXmlRequest(e,null,"GET").send(t,n)},post:function(e,t,n,a){return new mxXmlRequest(e,t).send(n,a)},submit:function(e,t,n,a){return new mxXmlRequest(e,t).simulate(n,a)},loadInto:function(e,t,n){mxClient.IS_IE?t.onreadystatechange=function(){4==t.readyState&&n()}:t.addEventListener("load",n,!1),t.load(e)},getValue:function(e,t,n){return null==(e=null!=e?e[t]:null)&&(e=n),e},getNumber:function(e,t,n){return null==(e=null!=e?e[t]:null)&&(e=n||0),Number(e)},getColor:function(e,t,n){return e=null!=e?e[t]:null,null==e?e=n:e==mxConstants.NONE&&(e=null),e},clone:function(e,t,n){n=null!=n&&n;i=null;if(null!=e&&"function"==typeof e.constructor){var a,i=new e.constructor;for(a in e)a!=mxObjectIdentity.FIELD_NAME&&(null==t||0>mxUtils.indexOf(t,a))&&(i[a]=n||"object"!=typeof e[a]?e[a]:mxUtils.clone(e[a]))}return i},equalPoints:function(e,t){if(null==e&&null!=t||null!=e&&null==t||null!=e&&null!=t&&e.length!=t.length)return!1;if(null!=e&&null!=t)for(var n=0;n<e.length;n++)if(e[n]==t[n]||null!=e[n]&&!e[n].equals(t[n]))return!1;return!0},equalEntries:function(e,t){if(null==e&&null!=t||null!=e&&null==t||null!=e&&null!=t&&e.length!=t.length)return!1;if(null!=e&&null!=t)for(var n in e)if(e[n]!=t[n])return!1;return!0},extend:function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},toString:function(e){var t,n="";for(t in e)try{if(null==e[t])n+=t+" = [null]\n";else if("function"==typeof e[t])n+=t+" => [Function]\n";else if("object"==typeof e[t])var a=mxUtils.getFunctionName(e[t].constructor),n=n+(t+" => [")+a+"]\n";else n+=t+" = "+e[t]+"\n"}catch(e){n+=t+"="+e.message}return n},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,t,n,a,i,o,s,r,l){if(r-=e,l-=t,0===n||0===a)return b;n=Math.abs(n),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(b=Math.sin(i*Math.PI/180))*c;d=-1*b*d+m*c;1<(v=(c=i*i)/(h=n*n)+(g=d*d)/(E=a*a))?(n*=Math.sqrt(v),a*=Math.sqrt(v),o=0):(v=1,o===s&&(v=-1),o=v*Math.sqrt((h*E-h*g-E*c)/(h*g+E*c))),r=m*(c=o*n*d/a)-b*(g=-1*o*a*i/n)+r/2,l=b*c+m*g+l/2,o=0<=(h=Math.atan2((d-g)/a,(i-c)/n)-Math.atan2(0,1))?h:2*Math.PI+h,i=0<=(h=Math.atan2((-d-g)/a,(-i-c)/n)-Math.atan2((d-g)/a,(i-c)/n))?h:2*Math.PI+h,0==s&&0<i?i-=2*Math.PI:0!=s&&0>i&&(i+=2*Math.PI),s=2*i/Math.PI,i/=s=Math.ceil(0>s?-1*s:s),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*n,m*=a,n*=b,a*=b;for(var u=Math.cos(o),p=Math.sin(o),g=-d*(c*p+a*u),h=-d*(n*p-m*u),v=E=0,b=[],f=0;f<s;++f){o+=i;var E=c*(u=Math.cos(o))-a*(p=Math.sin(o))+r,v=n*u+m*p+l,y=-d*(c*p+a*u),u=-d*(n*p-m*u);b[p=6*f]=Number(g+e),b[p+1]=Number(h+t),b[p+2]=Number(E-y+e),b[p+3]=Number(v-u+t),b[p+4]=Number(E+e),b[p+5]=Number(v+t),g=E+y,h=v+u}return b},getBoundingBox:function(e,t){a=null;if(null!=e&&null!=t&&0!=t){var n=mxUtils.toRadians(t),a=Math.cos(n),i=Math.sin(n),o=new mxPoint(e.x+e.width/2,e.y+e.height/2),s=new mxPoint(e.x,e.y),r=new mxPoint((n=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y),s=mxUtils.getRotatedPoint(s,a,i,o),n=mxUtils.getRotatedPoint(n,a,i,o),r=mxUtils.getRotatedPoint(r,a,i,o),l=mxUtils.getRotatedPoint(l,a,i,o);(a=new mxRectangle(s.x,s.y,0,0)).add(new mxRectangle(n.x,n.y,0,0)),a.add(new mxRectangle(r.x,r.y,0,0)),a.add(new mxRectangle(l.x,l.y,0,0))}return a},getRotatedPoint:function(e,t,n,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return e=e.y-a.y,new mxPoint(i*t-e*n+a.x,e*t+i*n+a.y)},getPortConstraints:function(e,t,n,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){var t=0,t=(t=(t=(e&mxConstants.DIRECTION_MASK_WEST)<<3)|(e&mxConstants.DIRECTION_MASK_NORTH)<<1)|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1;return t|=(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,t,n){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],o=null,s=1;s<e.absolutePoints.length;s++){var r=e.absolutePoints[s],i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,t,n);(null==o||i<o)&&(o=i,a=s-1),i=r}return a},rectangleIntersectsSegment:function(e,t,n){var a=e.y,i=e.x,o=a+e.height,s=i+e.width;e=t.x;var r=n.x;if(t.x>n.x&&(e=n.x,r=t.x),r>s&&(r=s),e<i&&(e=i),e>r)return!1;var i=t.y,s=n.y,l=n.x-t.x;return 1e-7<Math.abs(l)&&(n=(n.y-t.y)/l,t=t.y-n*t.x,i=n*e+t,s=n*r+t),i>s&&(t=s,s=i,i=t),s>o&&(s=o),i<a&&(i=a),!(i>s)},contains:function(e,t,n){return e.x<=t&&e.x+e.width>=t&&e.y<=n&&e.y+e.height>=n},intersects:function(e,t){var n=e.width,a=e.height,i=t.width,o=t.height;if(0>=i||0>=o||0>=n||0>=a)return!1;var s=e.x,r=e.y,l=t.x,d=t.y,o=o+d,n=n+s,a=a+r;return((i=i+l)<l||i>s)&&(o<d||o>r)&&(n<s||n>l)&&(a<r||a>d)},intersectsHotspot:function(e,t,n,a,i,o){if(a=null!=a?a:1,i=null!=i?i:0,o=null!=o?o:0,0<a){var s=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(s=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<o&&(l=Math.min(l,o),d=Math.min(d,o)),a=new mxRectangle(s-l/2,r-d/2,l,d),0!=(s=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-s),o=Math.sin(-s),s=new mxPoint(e.getCenterX(),e.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(t,n),i,o,s),t=e.x,n=e.y),mxUtils.contains(a,t,n)}return!0},getOffset:function(e,t){var n=0,a=0;if(null!=t&&t)var i=document.body,o=document.documentElement,n=n+(i.scrollLeft||o.scrollLeft),a=a+(i.scrollTop||o.scrollTop);for(;e.offsetParent;)n+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(n,a)},getScrollOrigin:function(e){for(var t=document.body,n=document.documentElement,a=new mxPoint(t.scrollLeft||n.scrollLeft,t.scrollTop||n.scrollTop);null!=e&&e!=t&&e!=n;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,t,n){var a=mxUtils.getScrollOrigin(e);return e=mxUtils.getOffset(e),e.x-=a.x,e.y-=a.y,new mxPoint(t-e.x,n-e.y)},ltrim:function(e,t){return e.replace(RegExp("^["+(t||"\\s")+"]+","g"),"")},rtrim:function(e,t){return e.replace(RegExp("["+(t||"\\s")+"]+$","g"),"")},trim:function(e,t){return mxUtils.ltrim(mxUtils.rtrim(e,t),t)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&0>e.indexOf("0x")&&0>e.indexOf("0X"))&&!isNaN(e)},mod:function(e,t){return(e%t+t)%t},intersection:function(e,t,n,a,i,o,s,r){var l=(r-o)*(n-e)-(s-i)*(a-t);return s=((s-i)*(t-o)-(r-o)*(e-i))/l,i=((n-e)*(t-o)-(a-t)*(e-i))/l,0<=s&&1>=s&&0<=i&&1>=i?new mxPoint(e+s*(n-e),t+s*(a-t)):null},ptSegDistSq:function(e,t,n,a,i,o){return n-=e,a-=t,i-=e,o-=t,0>=i*n+o*a?n=0:(i=n-i,o=a-o,e=i*n+o*a,n=0>=e?0:e*e/(n*n+a*a)),0>(i=i*i+o*o-n)&&(i=0),i},relativeCcw:function(e,t,n,a,i,o){return n-=e,a-=t,i-=e,o-=t,0==(e=i*a-o*n)&&0<(e=i*n+o*a)&&0>(e=(i-n)*n+(o-a)*a)&&(e=0),0>e?-1:0<e?1:0},animateChanges:function(e,t){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,t,n){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,t,n,a,i,o){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,t){mxUtils.isVml(e)?e.style.filter=100<=t?null:"alpha(opacity="+t/5+")":mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?e.style.filter=100<=t?null:"alpha(opacity="+t+")":e.style.opacity=t/100},createImage:function(e){var t=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((t=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),t.style.borderStyle="none"):((t=document.createElement("img")).setAttribute("src",e),t.setAttribute("border","0")),t},sortCells:function(e,t){t=null==t||t;var n=new mxDictionary;return e.sort(function(e,a){var i=n.get(e);null==i&&(i=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),n.put(e,i));var o=n.get(a);return null==o&&(o=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),n.put(a,o)),i=mxCellPath.compare(i,o),0==i?0:0<i==t?1:-1}),e},getStylename:function(e){return null!=e&&0>(e=e.split(";")[0]).indexOf("=")?e:""},getStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)0>e[n].indexOf("=")&&t.push(e[n])}return t},indexOfStylename:function(e,t){if(null!=e&&null!=t)for(var n=e.split(";"),a=0,i=0;i<n.length;i++){if(n[i]==t)return a;a+=n[i].length+1}return-1},addStylename:function(e,t){return 0>mxUtils.indexOfStylename(e,t)&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=t),e},removeStylename:function(e,t){var n=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=t&&n.push(a[i]);return n.join(";")},removeAllStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)0<=e[n].indexOf("=")&&t.push(e[n])}return t.join(";")},setCellStyles:function(e,t,n,a){if(null!=t&&0<t.length){e.beginUpdate();try{for(var i=0;i<t.length;i++)if(null!=t[i]){var o=mxUtils.setStyle(e.getStyle(t[i]),n,a);e.setStyle(t[i],o)}}finally{e.endUpdate()}}},setStyle:function(e,t,n){var a=null!=n&&(void 0===n.length||0<n.length);if(null==e||0==e.length)a&&(e=t+"="+n);else{var i=e.indexOf(t+"=");0>i?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+t+"="+n):(t=a?t+"="+n:"",n=e.indexOf(";",i),a||n++,e=e.substring(0,i)+t+(n>i?e.substring(n):""))}return e},setCellStyleFlags:function(e,t,n,a,i){if(null!=t&&0<t.length){e.beginUpdate();try{for(var o=0;o<t.length;o++)if(null!=t[o]){var s=mxUtils.setStyleFlag(e.getStyle(t[o]),n,a,i);e.setStyle(t[o],s)}}finally{e.endUpdate()}}},setStyleFlag:function(e,t,n,a){if(null==e||0==e.length)e=a||null==a?t+"="+n:t+"=0";else{var i=e.indexOf(t+"=");if(0>i)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+t+"="+n:e+i+t+"=0";else{var o=e.indexOf(";",i),s="",s=0>o?e.substring(i+t.length+1):e.substring(i+t.length+1,o),s=null==a?parseInt(s)^n:a?parseInt(s)|n:parseInt(s)&~n;e=e.substring(0,i)+t+"="+s+(0<=o?e.substring(o):"")}}return e},getAlignmentAsPoint:function(e,t){var n=0,a=0;return e==mxConstants.ALIGN_CENTER?n=-.5:e==mxConstants.ALIGN_RIGHT&&(n=-1),t==mxConstants.ALIGN_MIDDLE?a=-.5:t==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(n,a)},getSizeForString:function(e,t,n){t=null!=t?t:mxConstants.DEFAULT_FONTSIZE,n=null!=n?n:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=n,a.style.fontSize=Math.round(t)+"px",a.style.lineHeight=Math.round(t*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,t,n,a,i){a=null!=a?a:0,i=null!=i?i:0,t=null!=t?t:1,null==n&&(n=[e.getModel().getRoot()]);var o=e.getView(),s=null,r=o.isEventsEnabled();o.setEventsEnabled(!1);var l=o.drawPane,d=o.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(o.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),o.canvas.appendChild(o.drawPane),o.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(o.drawPane=o.drawPane.cloneNode(!1),o.canvas.appendChild(o.drawPane),o.overlayPane=o.overlayPane.cloneNode(!1)),o.canvas.appendChild(o.overlayPane);var c=o.getTranslate();o.translate=new mxPoint(a,i),t=new mxTemporaryCellStates(e.getView(),t,n);try{s=(new mxCodec).encode(e.getView())}finally{t.destroy(),o.translate=c,o.canvas.removeChild(o.drawPane),o.canvas.removeChild(o.overlayPane),o.drawPane=l,o.overlayPane=d,o.setEventsEnabled(r)}return s},getScaleForPageCount:function(e,t,n,a){if(1>e)return 1;n=null!=n?n:mxConstants.PAGE_FORMAT_A4_PORTRAIT,a=null!=a?a:0;var i=n.width-2*a;n=n.height-2*a,a=t.getGraphBounds().clone(),t=t.getView().getScale(),a.width/=t,a.height/=t,n=(t=a.width)/a.height/(i/n),a=Math.sqrt(e);var o=Math.sqrt(n);if(n=a*o,a/=o,1>n&&a>e){s=a/e;a=e,n/=s}for(1>a&&n>e&&(s=n/e,n=e,a/=s),s=Math.ceil(n)*Math.ceil(a),o=0;s>e;){var s=Math.floor(n)/n,r=Math.floor(a)/a;if(1==s&&(s=Math.floor(n-1)/n),1==r&&(r=Math.floor(a-1)/a),s=s>r?s:r,n*=s,a*=s,s=Math.ceil(n)*Math.ceil(a),10<++o)break}return i*n/t*.99999},show:function(e,t,n,a){if(n=null!=n?n:0,a=null!=a?a:0,null==t?t=window.open().document:t.open(),n=-(i=e.getGraphBounds()).x+n,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",o=document.getElementsByTagName("base"),s=0;s<o.length;s++)i+=o[s].outerHTML;for(i+="<style>",s=0;s<document.styleSheets.length;s++)try{i+=document.styleSheets(s).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",t.writeln(i),t.close(),null!=(e=t.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=n+"px",e.style.top=a+"px")}else{for(t.writeln("<html"),t.writeln("<head>"),o=document.getElementsByTagName("base"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(o=document.getElementsByTagName("link"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(o=document.getElementsByTagName("style"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(t.writeln("</head>"),t.writeln("</html>"),t.close(),null==t.body&&t.documentElement.appendChild(t.createElement("body")),t.body.style.overflow="auto",e=e.container.firstChild;null!=e;)s=e.cloneNode(!0),t.body.appendChild(s),e=e.nextSibling;null!=(e=t.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+n+","+a+")"),(n=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),n.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(t.body),t},printScreen:function(e){var t=window.open();mxUtils.show(e,t.document),e=function(){t.focus(),t.print(),t.close()},mxClient.IS_GC?t.setTimeout(e,500):e()},popup:function(e,t){if(t){var n=document.createElement("div");n.style.overflow="scroll",n.style.width="636px",n.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),n.appendChild(a),(n=new mxWindow("Popup Window",n,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),n.setVisible(!0)}else mxClient.IS_NS?((n=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),n.document.close()):(n=window.open(),a=n.document.createElement("pre"),a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),n.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,t){return prompt(e,t)},confirm:function(e){return confirm(e)},error:function(e,t,n,a){var i=document.createElement("div");i.style.padding="20px";var o=document.createElement("img");o.setAttribute("src",a||mxUtils.errorImage),o.setAttribute("valign","bottom"),o.style.verticalAlign="middle",i.appendChild(o),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var s=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-t)/2,a/4,t,null,!1,!0);return n&&(mxUtils.br(i),t=document.createElement("p"),n=document.createElement("button"),mxClient.IS_IE?n.style.cssText="float:right":n.setAttribute("style","float:right"),mxEvent.addListener(n,"click",function(e){s.destroy()}),mxUtils.write(n,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),t.appendChild(n),i.appendChild(t),mxUtils.br(i),s.setClosable(!0)),s.setVisible(!0),s},makeDraggable:function(e,t,n,a,i,o,s,r,l,d){return e=new mxDragSource(e,n),e.dragOffset=new mxPoint(null!=i?i:0,null!=o?o:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=s,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof t?t(e):t},null!=a&&(e.createDragElement=function(){return a.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var t=a.cloneNode(!0),n=parseInt(t.style.width),i=parseInt(t.style.height);return t.style.width=Math.round(n*e.view.scale)+"px",t.style.height=Math.round(i*e.view.scale)+"px",t})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var t=this.getSource();null!=t;){if(t==e.node)return!0;t=t.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null!=e?e:1)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,t){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(t)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var t=0;t<this.eventListeners.length;)this.eventListeners[t+1]==e?this.eventListeners.splice(t,2):t+=2},mxEventSource.prototype.fireEvent=function(e,t){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==t&&(t=this.getEventSource()),null==t&&(t=this);for(var n=[t,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,n)}}};var mxEvent={objects:[],addListener:function(){var e=function(e,t,n){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:t,f:n})};return window.addEventListener?function(t,n,a){t.addEventListener(n,a,!1),e(t,n,a)}:function(t,n,a){t.attachEvent("on"+n,a),e(t,n,a)}}(),removeListener:function(){var e=function(e,t,n){if(null!=e.mxListenerList){t=e.mxListenerList.length;for(var a=0;a<t;a++)if(e.mxListenerList[a].f==n){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(t,n,a){t.removeEventListener(n,a,!1),e(t,n,a)}:function(t,n,a){t.detachEvent("on"+n,a),e(t,n,a)}}(),removeAllListeners:function(e){var t=e.mxListenerList;if(null!=t)for(;0<t.length;){var n=t[0];mxEvent.removeListener(e,n.name,n.f)}},addGestureListeners:function(e,t,n,a){null!=t&&mxEvent.addListener(e,"mousedown",t),null!=n&&mxEvent.addListener(e,"mousemove",n),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=t&&mxEvent.addListener(e,"touchstart",t),null!=n&&mxEvent.addListener(e,"touchmove",n),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,t,n,a){null!=t&&mxEvent.removeListener(e,"mousedown",t),null!=n&&mxEvent.removeListener(e,"mousemove",n),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=t&&mxEvent.removeListener(e,"touchstart",t),null!=n&&mxEvent.removeListener(e,"touchmove",n),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,o,s){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=o?o(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=s)s(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var t=e.length,n=0;n<t;n+=1)mxEvent.release(e[n])},addMouseWheelListener:function(e){if(null!=e){var t=function(t){null==t&&(t=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?t.wheelDelta/120:-t.detail/2)&&e(t,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",t):mxEvent.addListener(document,"mousewheel",t)}},disableContextMenu:function(){return mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")}}(),getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,t,n){n=null==n||n,(null!=t?t:1)&&(e.preventDefault?(n&&e.stopPropagation(),e.preventDefault()):n&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=function(){return window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0}(),mxXmlRequest.prototype.send=function(e,t){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,t){null!=t&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,t){var n=null;(e=e||document)==document&&(n=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=t&&a.setAttribute("target",t),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),o=0;o<i.length;o++){var s=i[o].indexOf("=");if(0<s){var r=i[o].substring(0,s),l=i[o].substring(s+1);(s=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"&#xa;"),r=e.createTextNode(l),s.appendChild(r),a.appendChild(s)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=n&&(window.onbeforeunload=n)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,t){return t=mxClipboard.copy(e,t),mxClipboard.insertCount=0,mxClipboard.removeCells(e,t),t},removeCells:function(e,t){e.removeCells(t)},copy:function(e,t){t=t||e.getSelectionCells();var n=e.getExportableCells(t);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(n),n},paste:function(e){if(null!=mxClipboard.cells){var t=e.getImportableCells(mxClipboard.cells),n=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent(),t=e.importCells(t,n,n,a);mxClipboard.insertCount++,e.setSelectionCells(t)}}};mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,t,n,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=t+"px",this.table=document.createElement("table"),this.table.className=i,null!=n&&(mxClient.IS_IE||(this.div.style.width=n+"px"),this.table.style.width=n+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),t=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",t.appendChild(this.title),e.appendChild(t),t=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),t.appendChild(this.td),e.appendChild(t),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var t=this.title.firstChild;null!=t;){var n=t.nextSibling;t.nodeType==mxConstants.NODETYPE_TEXT&&t.parentNode.removeChild(t),t=n}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){0>navigator.userAgent.indexOf("Presto/2.5")&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var t=mxWindow.activeWindow.getElement();null!=t&&null!=t.style&&(t.style.zIndex=e)}t=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,mxWindow.activeWindow=this,this.fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",t))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e),a=this.div.offsetWidth,i=this.div.offsetHeight,o=mxUtils.bind(this,function(e){var o=mxEvent.getClientX(e)-t,s=mxEvent.getClientY(e)-n;this.setSize(a+o,i+s),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),s=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,t){e=Math.max(this.minimumSize.width,e),t=Math.max(this.minimumSize.height,t),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=t+"px"),this.table.style.width=e+"px",this.table.style.height=t+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var e=!1,t=null,n=null,a=mxUtils.bind(this,function(a){if(this.activate(),e)e=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=t,mxClient.IS_IE||(this.div.style.height=n),this.table.style.height=n,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",a));else{e=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",t=this.maximize.style.display,this.maximize.style.display="none",n=this.table.style.height;var i=this.getMinimumSize();0<i.height&&(mxClient.IS_IE||(this.div.style.height=i.height+"px"),this.table.style.height=i.height+"px"),0<i.width&&(mxClient.IS_IE||(this.div.style.width=i.width+"px"),this.table.style.width=i.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",a))}mxEvent.consume(a)});mxEvent.addListener(this.minimize,"mousedown",a),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",a)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var e=!1,t=null,n=null,a=null,i=null,o=mxUtils.bind(this,function(o){if(this.activate(),"none"!=this.maximize.style.display){if(e)e=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=t+"px",this.div.style.top=n+"px",mxClient.IS_IE||(this.div.style.height=a,this.div.style.width=i,"auto"!=(s=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=a,this.table.style.width=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",o));else{if(e=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",t=parseInt(this.div.style.left),n=parseInt(this.div.style.top),a=this.table.style.height,i=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var s=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=s.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",o))}mxEvent.consume(o)}});mxEvent.addGestureListeners(this.maximize,o),mxEvent.addListener(this.title,"dblclick",o)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e),a=this.getX(),i=this.getY(),o=mxUtils.bind(this,function(e){var o=mxEvent.getClientX(e)-t,s=mxEvent.getClientY(e)-n;this.setLocation(a+o,i+s),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),s=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,t){this.div.style.left=e+"px",this.div.style.top=t+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,t){var n=document.createElement("tr"),a=document.createElement("td");n.appendChild(a);var a=document.createElement("td"),i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){t()}),n.appendChild(a),this.body.appendChild(n)},mxForm.prototype.addText=function(e,t){var n=document.createElement("input");return n.setAttribute("type","text"),n.value=t,this.addField(e,n)},mxForm.prototype.addCheckbox=function(e,t){var n=document.createElement("input");return n.setAttribute("type","checkbox"),this.addField(e,n),t&&(n.checked=!0),n},mxForm.prototype.addTextarea=function(e,t,n){var a=document.createElement("textarea");return mxClient.IS_NS&&n--,a.setAttribute("rows",n||2),a.value=t,this.addField(e,a)},mxForm.prototype.addCombo=function(e,t,n){var a=document.createElement("select");return null!=n&&a.setAttribute("size",n),t&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,t,n,a){var i=document.createElement("option");mxUtils.writeln(i,t),i.setAttribute("value",n),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,t){var n=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),n.appendChild(a),(a=document.createElement("td")).appendChild(t),n.appendChild(a),this.body.appendChild(n),t},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),t=this.getDocumentHeight(),n=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),o=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(n)&&!isNaN(a)&&0<=n&&0<=a&&0<e-a-n&&(this.div.style.width=e-a-n+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(o)&&0<=i&&0<=o&&0<t-i-o&&(this.div.style.height=t-i-o+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,t,n){return e.getCellAt(t,n)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,t){var n=mxEvent.getClientX(t),a=mxEvent.getClientY(t),i=mxUtils.getOffset(e.container),o=mxUtils.getScrollOrigin();return n>=i.x-o.x&&a>=i.y-o.y&&n<=i.x-o.x+e.container.offsetWidth&&a<=i.y-o.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(t=this.getGraphForEvent(e))&&!this.graphContainsEvent(t,e)&&(t=null),t!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=t,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(t+=this.dragOffset.x,n+=this.dragOffset.y),t+=document.body.scrollLeft||document.documentElement.scrollLeft,n+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=t+"px",this.dragElement.style.top=n+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var t=this.currentGraph.view.scale,n=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/t-n.x,this.currentPoint.y/t-n.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,t){var n=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(t)-n.x+a.x,n=mxEvent.getClientY(t)-n.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,n,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,n),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");var a=this.isGridEnabled()&&e.isGridEnabledEvent(t),o=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(t))var o=parseInt(this.previewElement.style.width),s=parseInt(this.previewElement.style.height),o=new mxRectangle(0,0,o,s),n=new mxPoint(i,n),n=this.currentGuide.move(o,n,a),o=!1,i=n.x,n=n.y;else if(a)var a=e.view.scale,s=e.view.translate,r=e.gridSize/2,i=(e.snap(i/a-s.x-r)+s.x)*a,n=(e.snap(n/a-s.y-r)+s.y)*a;null!=this.currentGuide&&o&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,n+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(n)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,n)},mxDragSource.prototype.drop=function(e,t,n,a,i){this.dropHandler(e,t,n,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,t,n,a,i,o){var s=document.createElement(null!=t?"img":"button"),r=i||(null!=o?"mxToolbarMode":"mxToolbarItem");return s.className=r,s.setAttribute("src",t),null!=e&&(null!=t?s.setAttribute("title",e):mxUtils.write(s,e)),this.container.appendChild(s),null!=n&&(mxEvent.addListener(s,"click",n),mxClient.IS_TOUCH&&mxEvent.addListener(s,"touchend",n)),e=mxUtils.bind(this,function(e){null!=a?s.setAttribute("src",t):s.style.backgroundColor=""}),mxEvent.addGestureListeners(s,mxUtils.bind(this,function(e){if(null!=a?s.setAttribute("src",a):s.style.backgroundColor="gray",null!=o){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var t=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),t!=s&&(this.currentImg=s,this.menu.factoryMethod=o,t=new mxPoint(s.offsetLeft,s.offsetTop+s.offsetHeight),this.menu.popup(t.x,t.y,null,e),this.menu.isMenuShowing()&&(s.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),s.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(s,"mouseout",e),s},mxToolbar.prototype.addCombo=function(e){var t=document.createElement("div");t.style.display="inline",t.className="mxToolbarComboContainer";var n=document.createElement("select");return n.className=e||"mxToolbarCombo",t.appendChild(n),this.container.appendChild(t),n},mxToolbar.prototype.addActionCombo=function(e,t){var n=document.createElement("select");return n.className=t||"mxToolbarCombo",this.addOption(n,e,null),mxEvent.addListener(n,"change",function(e){var t=n.options[n.selectedIndex];n.selectedIndex=0,null!=t.funct&&t.funct(e)}),this.container.appendChild(n),n},mxToolbar.prototype.addOption=function(e,t,n){var a=document.createElement("option");return mxUtils.writeln(a,t),"function"==typeof n?a.funct=n:a.setAttribute("value",n),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,t,n,a,i){var o=document.createElement("img");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",t),o.altIcon=a,null!=e&&o.setAttribute("title",e),mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=o),this.selectedMode=o,null!=(e=o.altIcon)?(o.altIcon=o.getAttribute("src"),o.setAttribute("src",e)):o.className=o.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),n()})),this.container.appendChild(o),null==this.defaultMode&&(this.defaultMode=o,this.selectMode(o),n()),o},mxToolbar.prototype.addMode=function(e,t,n,a,i,o){o=null==o||o;var s=document.createElement(null!=t?"img":"button");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",t),s.altIcon=a,null!=e&&s.setAttribute("title",e),this.enabled&&o&&(mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){this.selectMode(s,n),this.noReset=!1})),mxEvent.addListener(s,"dblclick",mxUtils.bind(this,function(e){this.selectMode(s,n),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=s,this.defaultFunction=n,this.selectMode(s,n))),this.container.appendChild(s),s},mxToolbar.prototype.selectMode=function(e,t){if(this.selectedMode!=e){if(null!=this.selectedMode){var n=this.selectedMode.altIcon;null!=n?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(n=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",t))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="&#xa;",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,t,n){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,t,n){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,t,n))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(e,t,n){if(void 0!==mxUtils){var a=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(e,mxUtils.bind(this,function(n){if(void 0!==mxUtils)if(n.isReady()&&404!=n.getStatus()){if(this.received+=n.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",e,"request",n)),this.isValidResponse(n)){if(0<n.getText().length){var i=n.getDocumentElement();null==i?a("Invalid response: "+n.getText()):this.receive(i)}null!=t&&t(n)}}else a("Response not ready")}),function(e){a("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return 0>e.getText().indexOf("<?php")},mxSession.prototype.encodeChanges=function(e,t){for(var n="",a=t?-1:1,i=t?e.length-1:0;0<=i&&i<e.length;i+=a)var o=this.codec.encode(e[i]),n=n+mxUtils.getXml(o,this.linefeed);return n},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var t=e.getAttribute("namespace");for(null!=t&&(this.model.prefix=t+"-"),t=e.firstChild;null!=t;){var n=t.nodeName.toLowerCase();"state"==n?this.processState(t):"delta"==n&&this.processDelta(t),t=t.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var t=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",t,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",t))}},mxSession.prototype.createUndoableEdit=function(e){var t=new mxUndoableEdit(this.model,this.significantRemoteChanges);return t.changes=e,t.notify=function(){t.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",t,"changes",t.changes)),t.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",t,"changes",t.changes))},t},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var t=[];for(e=e.firstChild;null!=e;){var n=this.decodeChange(e);null!=n&&t.push(n),e=e.nextSibling}return t},mxSession.prototype.decodeChange=function(e){var t=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(t="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(t.model=this.model,t.execute(),"mxChildChange"==e.nodeName&&null==t.parent&&this.cellRemoved(t.child)),t},mxSession.prototype.cellRemoved=function(e,t){this.codec.putObject(e.getId(),e);for(var n=this.model.getChildCount(e),a=0;a<n;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var t=this.changes[e];null!=t.execute?t.execute():null!=t.undo&&t.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,t=0;t<e;t++){var n=this.changes[t];null!=n.execute?n.execute():null!=n.redo&&n.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var t=this.history[this.indexOfNextAdd++];if(t.redo(),t.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",t));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),t=0;t<e.length;t++)e[t].die()};var mxUrlConverter=function(e){var t=!0,n=null,a=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return n},setBaseUrl:function(e){n=e},getBaseDomain:function(){return n},setBaseDomain:function(e){n=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==n){a=location.protocol+"//"+location.host;var i=(n=a+location.pathname).lastIndexOf("/");0<i&&(n=n.substring(0,i+1))}e="/"==e.charAt(0)?a+e:n+e}return e}}};mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,t,n,a,i,o){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var s=document.createElement("tr");s.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=t?(i=document.createElement("img"),i.src=t,r.appendChild(i)):null!=i&&(t=document.createElement("div"),t.className=i,r.appendChild(t)),s.appendChild(r),this.labels&&(r=document.createElement("td"),r.className="mxPopupMenuItem"+(null==o||o?"":" disabled"),mxUtils.write(r,e),r.align="left",s.appendChild(r),e=document.createElement("td"),e.className="mxPopupMenuItem"+(null==o||o?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",s.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(s),(null==o||o)&&(mxEvent.addGestureListeners(s,mxUtils.bind(this,function(e){this.eventReceiver=s,a.activeRow!=s&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=s.div&&(this.showSubmenu(a,s),a.activeRow=s)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=s&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=s.div&&(this.showSubmenu(a,s),a.activeRow=s)),s.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==s&&(a.activeRow!=s&&this.hideMenu(),null!=n&&n(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(s,"mouseout",mxUtils.bind(this,function(e){s.className="mxPopupMenuItem"}))),s},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var t=document.createElement("img");t.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(t)},mxPopupMenu.prototype.showSubmenu=function(e,t){if(null!=t.div){t.div.style.left=e.div.offsetLeft+t.offsetLeft+t.offsetWidth-1+"px",t.div.style.top=e.div.offsetTop+t.offsetTop+"px",document.body.appendChild(t.div);var n=parseInt(t.div.offsetLeft),a=parseInt(t.div.offsetWidth),i=document.body,o=document.documentElement;n+a>(i.scrollLeft||o.scrollLeft)+(i.clientWidth||o.clientWidth)&&(t.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(t.div)}},mxPopupMenu.prototype.addSeparator=function(e,t){if(e=e||this,this.smartSeparators&&!t)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var n=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",n.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),n.appendChild(a),e.tbody.appendChild(n)}},mxPopupMenu.prototype.popup=function(e,t,n,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=t+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,n,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var t=0;t<this.cells.length;t++)this.animateCell(cells[t],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,t,n){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var o=this.graph.view.getTranslate(),s=this.graph.view.getScale();i.x+=o.x*s,i.y+=o.y*s,t.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(n&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),t,n)},mxMorphing.prototype.stopRecursion=function(e,t){return null!=t&&(0!=t.x||0!=t.y)},mxMorphing.prototype.getDelta=function(e){var t=this.getOriginForCell(e.cell),n=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-n.x,e.y/a-n.y),new mxPoint((t.x-e.x)*a,(t.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var t=null;return null!=e&&(t=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(t.x+=e.x,t.y+=e.y)),null==t&&(t=this.graph.view.getTranslate(),t=new mxPoint(-t.x,-t.y)),t},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,t,n){this.images[e]={value:t,fallback:n}},mxImageBundle.prototype.getImage=function(e){var t=null;return null!=e&&null!=(e=this.images[e])&&(t=this.alt?e.fallback:e.value),t},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,t){null!=e&&(this.visitStatesRecursive(e,t,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,t,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,t,n){if(null!=e){n(e,t);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),o=0;o<i;o++){var s=a.view.getState(a.model.getChildAt(e.cell,o));this.visitStatesRecursive(s,t,n)}}},mxImageExport.prototype.drawCellState=function(e,t){e.shape instanceof mxShape&&(t.save(),e.shape.paint(t),t.restore()),null!=e.text&&(t.save(),e.text.paint(t),t.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,t=2;t<arguments.length;t+=2)this.lastX=arguments[t-1],this.lastY=arguments[t],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,t,n,a,i){return n*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,t),Math.cos(n),Math.sin(n),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,t){this.state.dx+=e,this.state.dy+=t},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,t,n,a,i,o,s,r,l){(n=this.state).fillColor=e,n.fillAlpha=null!=r?r:1,n.gradientColor=t,n.gradientAlpha=null!=l?l:1,n.gradientDirection=s},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,t){this.state.shadowDx=e,this.state.shadowDy=t},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,t){this.addOp(this.moveOp,e,t)},mxAbstractCanvas2D.prototype.lineTo=function(e,t){this.addOp(this.lineOp,e,t)},mxAbstractCanvas2D.prototype.quadTo=function(e,t,n,a){this.addOp(this.quadOp,e,t,n,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,t,n,a,i,o){this.addOp(this.curveOp,e,t,n,a,i,o)},mxAbstractCanvas2D.prototype.arcTo=function(e,t,n,a,i,o,s){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,t,n,a,i,o,s),t=0;t<e.length;t+=6)this.curveTo(e[t],e[t+1],e[t+2],e[t+3],e[t+4],e[t+5])},mxAbstractCanvas2D.prototype.close=function(e,t,n,a,i,o){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var t=this.createElement("scale");t.setAttribute("scale",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.translate=function(e,t){var n=this.createElement("translate");n.setAttribute("dx",this.format(e)),n.setAttribute("dy",this.format(t)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rotate=function(e,t,n,a,i){var o=this.createElement("rotate");(0!=e||t||n)&&(o.setAttribute("theta",this.format(e)),o.setAttribute("flipH",t?"1":"0"),o.setAttribute("flipV",n?"1":"0"),o.setAttribute("cx",this.format(a)),o.setAttribute("cy",this.format(i)),this.root.appendChild(o))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var t=this.createElement("alpha");t.setAttribute("alpha",this.format(e)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var t=this.createElement("fillcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setGradient=function(e,t,n,a,i,o,s,r,l){if(null!=e&&null!=t){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",t),d.setAttribute("x",this.format(n)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(o)),null!=s&&d.setAttribute("direction",s),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var t=this.createElement("strokecolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var t=this.createElement("strokewidth");t.setAttribute("width",this.format(e)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var t=this.createElement("dashed");t.setAttribute("dashed",e?"1":"0"),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var t=this.createElement("dashpattern");t.setAttribute("pattern",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var t=this.createElement("linecap");t.setAttribute("cap",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var t=this.createElement("linejoin");t.setAttribute("join",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var t=this.createElement("miterlimit");t.setAttribute("limit",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var t=this.createElement("fontcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var t=this.createElement("fontbackgroundcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var t=this.createElement("fontbordercolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var t=this.createElement("fontsize");t.setAttribute("size",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var t=this.createElement("fontfamily");t.setAttribute("family",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var t=this.createElement("fontstyle");t.setAttribute("style",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var t=this.createElement("shadow");t.setAttribute("enabled",e?"1":"0"),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var t=this.createElement("shadowcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var t=this.createElement("shadowalpha");t.setAttribute("alpha",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,t){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==t)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var n=this.createElement("shadowoffset");n.setAttribute("dx",e),n.setAttribute("dy",t),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rect=function(e,t,n,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(t)),i.setAttribute("w",this.format(n)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){var s=this.createElement("roundrect");s.setAttribute("x",this.format(e)),s.setAttribute("y",this.format(t)),s.setAttribute("w",this.format(n)),s.setAttribute("h",this.format(a)),s.setAttribute("dx",this.format(i)),s.setAttribute("dy",this.format(o)),this.root.appendChild(s)},mxXmlCanvas2D.prototype.ellipse=function(e,t,n,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(t)),i.setAttribute("w",this.format(n)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(t)),l.setAttribute("w",this.format(n)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",o?"1":"0"),l.setAttribute("flipH",s?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,t){var n=this.createElement("move");n.setAttribute("x",this.format(e)),n.setAttribute("y",this.format(t)),this.root.appendChild(n),this.lastX=e,this.lastY=t},mxXmlCanvas2D.prototype.lineTo=function(e,t){var n=this.createElement("line");n.setAttribute("x",this.format(e)),n.setAttribute("y",this.format(t)),this.root.appendChild(n),this.lastX=e,this.lastY=t},mxXmlCanvas2D.prototype.quadTo=function(e,t,n,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(t)),i.setAttribute("x2",this.format(n)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=n,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,t,n,a,i,o){var s=this.createElement("curve");s.setAttribute("x1",this.format(e)),s.setAttribute("y1",this.format(t)),s.setAttribute("x2",this.format(n)),s.setAttribute("y2",this.format(a)),s.setAttribute("x3",this.format(i)),s.setAttribute("y3",this.format(o)),this.root.appendChild(s),this.lastX=i,this.lastY=o},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(t)),u.setAttribute("w",this.format(n)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=o&&u.setAttribute("align",o),null!=s&&u.setAttribute("valign",s),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,t){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(t||mxConstants.NS_SVG,e);var n=this.root.ownerDocument.createElement(e);return null!=t&&n.setAttribute("xmlns",t),n},mxSvgCanvas2D.prototype.createGradientId=function(e,t,n,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==t.charAt(0)&&(t=t.substring(1)),e=e.toLowerCase()+"-"+n,t=t.toLowerCase()+"-"+a,n=null,null==i||i==mxConstants.DIRECTION_SOUTH?n="s":i==mxConstants.DIRECTION_EAST?n="e":(a=e,e=t,t=a,i==mxConstants.DIRECTION_NORTH?n="s":i==mxConstants.DIRECTION_WEST&&(n="e")),"mx-gradient-"+e+"-"+t+"-"+n},mxSvgCanvas2D.prototype.getSvgGradient=function(e,t,n,a,i){var o=this.createGradientId(e,t,n,a,i),s=this.gradients[o];if(null==s){var r=this.root.ownerSVGElement,l=0,d=o+"-"+l;if(null!=r)for(s=r.ownerDocument.getElementById(d);null!=s&&s.ownerSVGElement!=r;)d=o+"-"+l++,s=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==s&&((s=this.createSvgGradient(e,t,n,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(s):r.appendChild(s)),this.gradients[o]=s}return s.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,t,n,a,i){var o=this.createElement("linearGradient");return o.setAttribute("x1","0%"),o.setAttribute("y1","0%"),o.setAttribute("x2","0%"),o.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?o.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?o.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?o.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&o.setAttribute("x1","100%"),n=1>n?";stop-opacity:"+n:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+n),o.appendChild(i),n=1>a?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+t+n),o.appendChild(i),o},mxSvgCanvas2D.prototype.addNode=function(e,t){var n=this.node,a=this.state;if(null!=n){if("path"==n.nodeName){if(!(null!=this.path&&0<this.path.length))return;n.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=n.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?n.setAttribute("fill","none"):n.setAttribute("fill","transparent"),e=!1),t&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||n.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&n.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(n)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(n)),this.pointerEvents&&("path"!=n.nodeName||this.path[this.path.length-1]==this.closeOp)&&n.setAttribute("pointer-events","all"),this.root.appendChild(n)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;1>e.alpha&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),1>e.alpha&&this.node.setAttribute("stroke-opacity",e.alpha);var t=Math.max(1,this.format(e.strokeWidth*e.scale));1!=t&&this.node.setAttribute("stroke-width",t),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(t))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var t=e.lineCap;"flat"==t&&(t="butt"),"butt"!=t&&this.node.setAttribute("stroke-linecap",t)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var t=this.state.dashPattern.split(" "),n=[];if(0<t.length)for(var a=0;a<t.length;a++)n[a]=Number(t[a])*e;return n.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var t=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",t),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var t=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",t.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",t.shadowColor),e.setAttribute("transform","translate("+this.format(t.shadowDx*t.scale)+","+this.format(t.shadowDy*t.scale)+")"+(t.transform||"")),e.setAttribute("opacity",t.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,t,n,a,i){if(0!=e||t||n){var o=this.state;if(a+=o.dx,i+=o.dy,a*=o.scale,i*=o.scale,o.transform=o.transform||"",t&&n)e+=180;else if(t^n){var s=t?a:0,r=t?-1:1,l=n?i:0,d=n?-1:1;o.transform+="translate("+this.format(s)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-s)+","+this.format(-l)+")"}(t?!n:n)&&(e*=-1),0!=e&&(o.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),o.rotation+=e,o.rotationCx=a,o.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,t,n,a){var i=this.state,o=this.createElement("rect");o.setAttribute("x",this.format((e+i.dx)*i.scale)),o.setAttribute("y",this.format((t+i.dy)*i.scale)),o.setAttribute("width",this.format(n*i.scale)),o.setAttribute("height",this.format(a*i.scale)),this.node=o},mxSvgCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){this.rect(e,t,n,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<o&&this.node.setAttribute("ry",this.format(o*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,t,n,a){var i=this.state,o=this.createElement("ellipse");o.setAttribute("cx",Math.round((e+n/2+i.dx)*i.scale)),o.setAttribute("cy",Math.round((t+a/2+i.dy)*i.scale)),o.setAttribute("rx",n/2*i.scale),o.setAttribute("ry",a/2*i.scale),this.node=o},mxSvgCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){i=this.converter.convert(i),o=null==o||o,s=null!=s&&s,r=null!=r&&r;var l=this.state;e+=l.dx,t+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(t*l.scale)),d.setAttribute("width",this.format(n*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),o||d.setAttribute("preserveAspectRatio","none"),1>l.alpha&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",s||r){var c=o=1,m=0,u=0;s&&(o=-1,m=-n-2*e),r&&(c=-1,u=-a-2*t),i+="scale("+o+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(t*l.scale)),d.setAttribute("width",this.format(n*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,t,n,a,i){return n=this.state,a="display:inline-block;font-size:"+Math.round(n.fontSize)+"px;font-family:"+n.fontFamily+";color:"+n.fontColor+";line-height:"+Math.round(n.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),t==mxConstants.ALIGN_CENTER?a+="text-align:center;":t==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),t="",null!=n.fontBackgroundColor&&(t+="background-color:"+n.fontBackgroundColor+";"),null!=n.fontBorderColor&&(t+="border:1px solid "+n.fontBorderColor+";"),mxUtils.isNode(e)||(n=document.createElement("textarea"),n.innerHTML=e.replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),e=n.value,i?a+=t:0<t.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+t+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,t+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<n&&(p+="width:"+Math.round(n)+"px;")):d&&(p+="width:"+Math.round(n)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<n&&(p+="width:"+Math.round(n)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),1>u.alpha&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,o,s,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var h=document.createElement("div");h.style.cssText=p.getAttribute("style"),h.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",h.style.visibility="hidden",h.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(h),g=h.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,h.offsetHeight+2):h.offsetHeight,h.parentNode.removeChild(h),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);n=d?Math.max(n,g):g,1>u.alpha&&r.setAttribute("opacity",u.alpha),d=i=0,o==mxConstants.ALIGN_CENTER?i-=n/2:o==mxConstants.ALIGN_RIGHT&&(i-=n),e+=i,s==mxConstants.ALIGN_MIDDLE?d-=a/2:s==mxConstants.ALIGN_BOTTOM&&(d-=a),t+=d,o=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(o+="rotate("+u.rotation+","+n/2+","+a/2+")",t=this.rotatePoint((e+n/2)*u.scale,(t+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy),e=t.x-n*u.scale/2,t=t.y-a*u.scale/2):(e*=u.scale,t*=u.scale),0!=m&&(o+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(t)+")"+o),l.setAttribute("width",Math.round(Math.max(1,n))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,t,n,a,i,o,s,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,t,n,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(t=Math.round(t))+"-"+(n=Math.round(n))+"-"+(a=Math.round(a)),o=0,s=i+"-"+o;null!=document.getElementById(s);)s=i+"-"+ ++o;return clip=this.createElement("clipPath"),clip.setAttribute("id",s),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("width",n),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,t,n,a,i,o,s,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(t*r.scale)+")"),d&&0<n&&0<a){g=e;c=t,o==mxConstants.ALIGN_CENTER?g-=n/2:o==mxConstants.ALIGN_RIGHT&&(g-=n),s==mxConstants.ALIGN_MIDDLE?c-=a/2:s==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,n*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,o),"start"!=(c=o==mxConstants.ALIGN_RIGHT?"end":o==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),1>r.alpha&&u.setAttribute("opacity",r.alpha);var p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT),h=m+(p.length-1)*g;for(c=t+m-1,s==mxConstants.ALIGN_MIDDLE?(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(h,a):h)/2,c-=a+1):s==mxConstants.ALIGN_BOTTOM&&(a=this.matchHtmlAlignment&&d&&0<a?Math.min(h,a):h,c-=a+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,t,n,h,o,s,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var t=this.state;e.setAttribute("fill",t.fontColor),(!this.styleEnabled||t.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",t.fontFamily),(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,t,n,a,i,o,s,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;l?(s==mxConstants.ALIGN_CENTER?n-=i/2:s==mxConstants.ALIGN_RIGHT&&(n-=i),r==mxConstants.ALIGN_MIDDLE?a-=o/2:r==mxConstants.ALIGN_BOTTOM&&(a-=o),c=new mxRectangle((n+1)*d.scale,a*d.scale,(i-2)*d.scale,(o+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),t=mxClient.IS_IE&&mxClient.IS_SVG,c=new mxRectangle(c.x,c.y+(t?0:1),c.width,c.height+(t?1:0))):(c=document.createElement("div"),c.style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),t=mxUtils.htmlEntities(t,!1),c.innerHTML=t.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,o=c.offsetHeight,c.parentNode.removeChild(c),s==mxConstants.ALIGN_CENTER?n-=i/2:s==mxConstants.ALIGN_RIGHT&&(n-=i),r==mxConstants.ALIGN_MIDDLE?a-=o/2:r==mxConstants.ALIGN_BOTTOM&&(a-=o),c=new mxRectangle((n+1)*d.scale,(a+2)*d.scale,i*d.scale,(o+1)*d.scale)),null!=c&&((t=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),t.setAttribute("stroke",d.fontBorderColor||"none"),t.setAttribute("x",Math.floor(c.x-1)),t.setAttribute("y",Math.floor(c.y-1)),t.setAttribute("width",Math.ceil(c.width+2)),t.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,t.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&t.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(t,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,t){var n=this.node,a=this.state;if(null!=n){if("shape"==n.nodeName){if(!(null!=this.path&&0<this.path.length))return;n.path=this.path.join(" ")+" e",n.style.width=this.root.style.width,n.style.height=this.root.style.height,n.coordsize=parseInt(n.style.width)+" "+parseInt(n.style.height)}n.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(n,e&&null!=a.fillColor,t&&null!=a.strokeColor)),t&&null!=a.strokeColor?(n.stroked="true",n.strokecolor=a.strokeColor):n.stroked="false",n.appendChild(this.createStroke()),e&&null!=a.fillColor?n.appendChild(this.createFill()):!this.pointerEvents||"shape"==n.nodeName&&this.path[this.path.length-1]!=this.closeOp?n.filled="false":n.appendChild(this.createTransparentFill()),this.root.appendChild(n)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,t=document.createElement(mxClient.VML_PREFIX+":fill");if(t.color=e.fillColor,null!=e.gradientColor){t.type="gradient",t.method="none",t.color2=e.gradientColor;var n=180-e.rotation,n=e.gradientDirection==mxConstants.DIRECTION_WEST?n-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?n+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?n-(180+("y"==this.root.style.flip?-180:0)):n+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(n*=-1),t.angle=mxUtils.mod(n,360),t.opacity=100*e.alpha*e.fillAlpha+"%",t.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else 1>e.alpha&&(t.opacity=100*e.alpha+"%");return t},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,t=document.createElement(mxClient.VML_PREFIX+":stroke");return t.endcap=e.lineCap||"flat",t.joinstyle=e.lineJoin||"miter",t.miterlimit=e.miterLimit||"10",1>e.alpha&&(t.opacity=100*e.alpha+"%"),e.dashed&&(t.dashstyle=this.getVmlDashStyle()),t},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var t=this.state.dashPattern.split(" ");0<t.length&&1==t[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,t,n){var a=this.state,i=-a.rotation*(Math.PI/180),o=Math.cos(i),i=Math.sin(i),s=a.shadowDx*a.scale,r=a.shadowDy*a.scale;"x"==this.root.style.flip?s*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(s*o-r*i)+"px",l.style.marginTop=Math.round(s*i+r*o)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),n?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",t?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,t,n,a,i){t&&n?e+=180:t?this.root.style.flip="x":n&&(this.root.style.flip="y"),(t?!n:n)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,t,n,a){var i=this.state,o=(this.lastX+i.dx)*i.scale,s=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;var s=s+2/3*((t=(t+i.dy)*i.scale)-s),r=(n=(n+i.dx)*i.scale)+2/3*(e-n);t=(a=(a+i.dy)*i.scale)+2/3*(t-a),this.path.push("c "+this.format(o+2/3*(e-o))+" "+this.format(s)+" "+this.format(r)+" "+this.format(t)+" "+this.format(n)+" "+this.format(a)),this.lastX=n/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,t,n,a,i){var o=this.state;return e=document.createElement(e),e.style.position="absolute",e.style.left=this.format((t+o.dx)*o.scale)+"px",e.style.top=this.format((n+o.dy)*o.scale)+"px",e.style.width=this.format(a*o.scale)+"px",e.style.height=this.format(i*o.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,t,n,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,t,n,a)},mxVmlCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,t,n,a),this.node.setAttribute("arcsize",Math.max(100*i/n,100*o/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,t,n,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,t,n,a)},mxVmlCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){var l=null;o?(l=this.createRect(mxClient.VML_PREFIX+":rect",e,t,n,a),l.stroked="false",e=document.createElement(mxClient.VML_PREFIX+":fill"),e.aspect=o?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,t,n,a),l.src=i),s&&r?l.style.rotation="180":s?l.style.flip="x":r&&(l.style.flip="y"),1>this.state.alpha&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,t,n,a){n=document.createElement("div");var i=this.state,o="";return null!=i.fontBackgroundColor&&(o+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(o+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?n.appendChild(e):0<o.length&&!a?(a=document.createElement("div"),a.style.cssText=o,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,n.appendChild(a)):(n.style.cssText=o,n.innerHTML=e),e=n.style,e.fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=t||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),n},mxVmlCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(t=this.rotatePoint(e,t,u.rotation,u.rotationCx,u.rotationCy),e=t.x,t=t.y),8==document.documentMode?(e+=u.dx,t+=u.dy):(e*=u.scale,t*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(t)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(h=mxUtils.getAlignmentAsPoint(o,s)).x,h=h.y;if(i=this.createDiv(i,o,s,d),o=document.createElement("div"),r?(!c&&0<n&&(i.style.width=Math.round(n)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(o.style.display="inline",o.style.zoom="1",o.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(o),l.appendChild(p)):l.appendChild(o)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?(m=document.createElement(mxClient.VML_PREFIX+":rect"),m.stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<n&&(i.style.width=Math.round(n)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=n+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){n=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),0>(n%=2*Math.PI)&&(n+=2*Math.PI),(n%=Math.PI)>Math.PI/2&&(n=Math.PI-n),s=Math.cos(n);var v=Math.sin(n);8==document.documentMode&&(i.style.display="inline-block",o.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),n=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&p>a&&(p=a,i.style.height=p+"px"),c=((a=p)-a*s+n*-v)/2-m*n*(g+.5)+r*a*(h+.5),d=(n-n*s+a*-v)/2+r*n*(g+.5)+m*a*(h+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?(g=document.createElement("div"),g.style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-n/2)*u.scale)+"px",g.style.top=this.format(t+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-n/2)*u)+"px",l.style.top=this.format(t+(c-a/2)*u)+"px"),o.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",o.style.backgroundColor=this.rotatedHtmlBackground,1>this.state.alpha&&(o.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",o.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",1>this.state.alpha&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),n=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&p>a&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+n*g*this.state.scale)+"px",l.style.top=this.format(t+a*h*this.state.scale)+"px"):(1>this.state.alpha&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*h+"%")}else this.plainText(e,t,n,a,mxUtils.htmlEntities(i,!1),o,s,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,t,n,a,i,o,s,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,t=(t+a.dy)*a.scale,(n=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",n.style.height="1px",n.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",n.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),n.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+o,d.style.align=o,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",o=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=o+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=o+((i=i.split("\n")).length-1)*o*mxConstants.LINE_HEIGHT,o=i=0,s==mxConstants.ALIGN_BOTTOM?o=-a/2:s!=mxConstants.ALIGN_MIDDLE&&(o=a/2),null!=m&&(n.style.rotation=m,s=m*(Math.PI/180),i=Math.sin(s)*o,o*=Math.cos(s)),n.appendChild(d),n.style.left=this.format(e-i)+"px",n.style.top=this.format(t+o)+"px",this.root.appendChild(n)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH),e.isDashed=!0,e},mxGuide.prototype.move=function(e,t,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=e&&null!=t){var a=this.graph.getView().translate,i=this.graph.getView().scale,o=t.x,s=t.y,r=!1,l=!1,d=b=this.getGuideTolerance(),c=b;(b=e.clone()).x+=t.x,b.y+=t.y;var m=b.x,u=b.x+b.width,p=b.getCenterX(),g=b.y,h=b.y+b.height,v=b.getCenterY();t=function(t){t+=this.graph.panDx;var n=!1;if(Math.abs(t-p)<d?(o=t-e.getCenterX(),d=Math.abs(t-p),n=!0):Math.abs(t-m)<d?(o=t-e.x,d=Math.abs(t-m),n=!0):Math.abs(t-u)<d&&(o=t-e.x-e.width,d=Math.abs(t-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var a=this.graph.container;t-=this.graph.panDx,this.guideX.points=[new mxPoint(t,-this.graph.panDy),new mxPoint(t,a.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var b=function(t){t+=this.graph.panDy;var n=!1;if(Math.abs(t-v)<c?(s=t-e.getCenterY(),c=Math.abs(t-v),n=!0):Math.abs(t-g)<c?(s=t-e.y,c=Math.abs(t-g),n=!0):Math.abs(t-h)<c&&(s=t-e.y-e.height,c=Math.abs(t-h),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var a=this.graph.container;t-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,t),new mxPoint(a.scrollWidth-3-this.graph.panDx,t)]}l=l||n},f=0;f<this.states.length;f++){var E=this.states[f];null!=E&&(this.horizontal&&(t.call(this,E.getCenterX()),t.call(this,E.x),t.call(this,E.x+E.width)),this.vertical&&(b.call(this,E.getCenterY()),b.call(this,E.y),b.call(this,E.y+E.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=e.x-(this.graph.snap(e.x/i-a.x)+a.x)*i,o=this.graph.snap(o/i)*i-n),l||(a=e.y-(this.graph.snap(e.y/i-a.y)+a.y)*i,s=this.graph.snap(s/i)*i-a)),t=new mxPoint(o,s)}return t},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&null!=(e=mxUtils.getChildNodes(e))&&0<e.length){this.constraints=[];for(var t=0;t<e.length;t++)this.constraints.push(this.parseConstraint(e[t]))}},mxStencil.prototype.parseConstraint=function(e){var t=Number(e.getAttribute("x")),n=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(t,n),e)},mxStencil.prototype.evaluateTextAttribute=function(e,t,n){return t=this.evaluateAttribute(e,t,n),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(t=mxResources.get(t)),t},mxStencil.prototype.evaluateAttribute=function(e,t,n){return null==(t=e.getAttribute(t))&&null!=(e=mxUtils.getTextContent(e))&&"function"==typeof(e=mxUtils.eval(e))&&(t=e(n)),t},mxStencil.prototype.drawShape=function(e,t,n,a,i,o){this.drawChildren(e,t,n,a,i,o,this.bgNode,!1),this.drawChildren(e,t,n,a,i,o,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,t,n,a,i,o,s,r){if(null!=s){var l=mxUtils.getValue(t.style,mxConstants.STYLE_DIRECTION,null);for(n=this.computeAspect(t.style,n,a,i,o,l),a=Math.min(n.width,n.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(t.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),s=s.firstChild;null!=s;)s.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,t,s,n,r),s=s.nextSibling}},mxStencil.prototype.computeAspect=function(e,t,n,a,i,o){e=t,t=a/this.w0;var s=i/this.h0;if(o="north"==o||"south"==o){s=a/this.h0,t=i/this.w0;var r=(a-i)/2;e+=r,n-=r}return"fixed"==this.aspect&&(t=s=Math.min(t,s),o?(e+=(i-this.w0*t)/2,n+=(a-this.h0*s)/2):(e+=(a-this.w0*t)/2,n+=(i-this.h0*s)/2)),new mxRectangle(e,n,t,s)},mxStencil.prototype.drawNode=function(e,t,n,a,i){var o=n.nodeName,s=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==o)e.save();else if("restore"==o)e.restore();else if("path"==o)for(e.begin(),n=n.firstChild;null!=n;)n.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,t,n,a,i),n=n.nextSibling;else if("close"==o)e.close();else if("move"==o)e.moveTo(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("line"==o)e.lineTo(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("quad"==o)e.quadTo(s+Number(n.getAttribute("x1"))*l,r+Number(n.getAttribute("y1"))*d,s+Number(n.getAttribute("x2"))*l,r+Number(n.getAttribute("y2"))*d);else if("curve"==o)e.curveTo(s+Number(n.getAttribute("x1"))*l,r+Number(n.getAttribute("y1"))*d,s+Number(n.getAttribute("x2"))*l,r+Number(n.getAttribute("y2"))*d,s+Number(n.getAttribute("x3"))*l,r+Number(n.getAttribute("y3"))*d);else if("arc"==o)e.arcTo(Number(n.getAttribute("rx"))*l,Number(n.getAttribute("ry"))*d,Number(n.getAttribute("x-axis-rotation")),Number(n.getAttribute("large-arc-flag")),Number(n.getAttribute("sweep-flag")),s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("rect"==o)e.rect(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d);else if("roundrect"==o)0==(t=n.getAttribute("arcsize"))&&(t=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(n.getAttribute("w"))*l,a=Number(n.getAttribute("h"))*d,t=Number(t)/100,t=Math.min(c*t,a*t),e.roundrect(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,c,a,t,t);else if("ellipse"==o)e.ellipse(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d);else if("image"==o)t=this.evaluateAttribute(n,"src",t),e.image(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d,t,!1,"1"==n.getAttribute("flipH"),"1"==n.getAttribute("flipV"));else if("text"==o){if(c=this.evaluateTextAttribute(n,"str",t),a="1"==n.getAttribute("vertical")?-90:0,"0"==n.getAttribute("align-shape")){var m=t.rotation,u=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPH,0);t=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPV,0),a=u&&t?a-m:u||t?a+m:a-m}a-=n.getAttribute("rotation"),e.text(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,0,0,c,n.getAttribute("align")||"left",n.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==o)null!=(m=mxStencilRegistry.getStencil(n.getAttribute("name")))&&(s+=Number(n.getAttribute("x"))*l,r+=Number(n.getAttribute("y"))*d,c=Number(n.getAttribute("w"))*l,a=Number(n.getAttribute("h"))*d,m.drawShape(e,t,s,r,c,a));else if("fillstroke"==o)e.fillAndStroke();else if("fill"==o)e.fill();else if("stroke"==o)e.stroke();else if("strokewidth"==o)e.setStrokeWidth(Number(n.getAttribute("width"))*c);else if("dashed"==o)e.setDashed("1"==n.getAttribute("dashed"));else if("dashpattern"==o){if(null!=(n=n.getAttribute("pattern"))){for(n=n.split(" "),l=[],d=0;d<n.length;d++)0<n[d].length&&l.push(Number(n[d])*c);n=l.join(" "),e.setDashPattern(n)}}else"strokecolor"==o?e.setStrokeColor(n.getAttribute("color")):"linecap"==o?e.setLineCap(n.getAttribute("cap")):"linejoin"==o?e.setLineJoin(n.getAttribute("join")):"miterlimit"==o?e.setMiterLimit(Number(n.getAttribute("limit"))):"fillcolor"==o?e.setFillColor(n.getAttribute("color")):"alpha"==o?e.setAlpha(n.getAttribute("alpha")):"fontcolor"==o?e.setFontColor(n.getAttribute("color")):"fontstyle"==o?e.setFontStyle(n.getAttribute("style")):"fontfamily"==o?e.setFontFamily(n.getAttribute("family")):"fontsize"==o&&e.setFontSize(Number(n.getAttribute("size"))*c);i&&("fillstroke"==o||"fill"==o||"stroke"==o)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var t=1;t<this.points.length;t++)null!=e[t]&&this.bounds.add(new mxRectangle(Number(e[t].x),Number(e[t].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,t=null;if(null!=this.node.ownerSVGElement)e=new mxSvgCanvas2D(this.node,!1),e.strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,t=this.getSvgScreenOffset(),0!=t?this.node.setAttribute("transform","translate("+t+","+t+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var n=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height)),t=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(t,!1);""!=t.tagUrn&&(t.coordsize=n*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),t=this.scale,e.translate(-Math.round(this.bounds.x/t),-Math.round(this.bounds.y/t))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),t=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=t+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var t in e.gradients){var n=e.gradients[t];n.mxRefCount=(n.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var t=this.scale,n=this.bounds.x/t,a=this.bounds.y/t,i=this.bounds.width/t,o=this.bounds.height/t;if(this.isPaintBoundsInverted())var s=(i-o)/2,n=n+s,a=a-s,s=i,i=o,o=s;if(this.updateTransform(e,n,a,i,o),this.configureCanvas(e,n,a,i,o),null!=this.stencil)this.paintStencilShape(e,n,a,i,o);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(n=[],a=0;a<this.points.length;a++)n.push(new mxPoint(this.points[a].x/t,this.points[a].y/t));this.paintEdgeShape(e,n)}else this.paintVertexShape(e,n,a,i,o)},mxShape.prototype.configureCanvas=function(e,t,n,a,i){var o=null;null!=this.style&&(o=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=o&&e.setDashPattern(o),null!=this.gradient?(t=this.getGradientBounds(e,t,n,a,i),e.setGradient(this.fill,this.gradient,t.x,t.y,t.width,t.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,t,n,a,i){return new mxRectangle(t,n,a,i)},mxShape.prototype.updateTransform=function(e,t,n,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,t+a/2,n+i/2)},mxShape.prototype.paintStencilShape=function(e,t,n,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,t,n,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,t,n,a,i)},mxShape.prototype.paintVertexShape=function(e,t,n,a,i){this.paintBackground(e,t,n,a,i),e.setShadow(!1),this.paintForeground(e,t,n,a,i)},mxShape.prototype.paintBackground=function(e,t,n,a,i){},mxShape.prototype.paintForeground=function(e,t,n,a,i){},mxShape.prototype.paintEdgeShape=function(e,t){},mxShape.prototype.getArcSize=function(e,t){var n=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*n,t*n)},mxShape.prototype.paintGlassEffect=function(e,t,n,a,i,o){var s=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",t,n,a,.6*i,"south",.9,.1),e.begin(),o+=2*s,this.isRounded?(e.moveTo(t-s+o,n-s),e.quadTo(t-s,n-s,t-s,n-s+o),e.lineTo(t-s,n+.4*i),e.quadTo(t+.5*a,n+.7*i,t+a+s,n+.4*i),e.lineTo(t+a+s,n-s+o),e.quadTo(t+a+s,n-s,t+a+s-o,n-s)):(e.moveTo(t-s,n-s),e.lineTo(t-s,n+.4*i),e.quadTo(t+.5*a,n+.7*i,t+a+s,n+.4*i),e.lineTo(t+a+s,n-s)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var t=this.getShapeRotation();0!=t&&(e=mxUtils.getBoundingBox(e,t)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var t=(e.width-e.height)/2;e.x+=t,e.y-=t,t=e.width,e.width=e.height,e.height=t}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var t=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(t/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,t,n,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",t),e.setAttribute("y",n),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var t in e){var n=e[t];n.mxRefCount=(n.mxRefCount||0)-1,0==n.mxRefCount&&null!=n.parentNode&&n.parentNode.removeChild(n)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,t){mxStencilRegistry.stencils[e]=t},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,t){mxMarker.markers[e]=t},createMarker:function(e,t,n,a,i,o,s,r,l,d){var c=mxMarker.markers[n];return null!=c?c(e,t,n,a,i,o,s,r,l,d):null}};!function(){function e(e,t,n,a,i,o,s,r,l,d){t=1.118*i*l,r=1.118*o*l,i*=s+l,o*=s+l;var c=a.clone();return c.x-=t,c.y-=r,s=n!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*s-t,a.y+=-o*s-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-o/2,c.y-o+i/2),n==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*o/4),e.lineTo(c.x+o/2-i,c.y-o-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function t(e,t,n,a,i,o,s,r,l,d){r=n==mxConstants.ARROW_DIAMOND?.7071:.9862,t=i*l*r,r*=o*l,i*=s+l,o*=s+l;var c=a.clone();c.x-=t,c.y-=r,a.x+=-i-t,a.y+=-o-r;var m=n==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-o/m,c.y+i/m-o/2),e.lineTo(c.x-i,c.y-o),e.lineTo(c.x-i/2+o/m,c.y-o/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,t,n,a,i,o,s,r,l,d){t=1.118*i*l,n=1.118*o*l,i*=s+l,o*=s+l;var c=a.clone();return c.x-=t,c.y-=n,a.x+=2*-t,a.y+=2*-n,function(){e.begin(),e.moveTo(c.x-i-o/2,c.y-o+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+o/2-i,c.y-o-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,t,n,a,i,o,s,r,l,d){var c=s/2,m=a.clone();return a.x-=i*c,a.y-=o*c,function(){e.ellipse(m.x-c,m.y-c,s,s),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",t),mxMarker.addMarker("diamondThin",t)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,t,n,a,i){e.translate(t,n),e.begin(),this.redrawPath(e,t,n,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,t,n,a,i){t=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-t,2*i/5,a/2-t,0,a/2,0),e.curveTo(a/2+t,0,a/2+t,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,t,n,a,i){if(this.isRounded){var o=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,o=Math.min(a*o,i*o);e.roundrect(t,n,a,i,o,o)}else e.rect(t,n,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,t,n,a,i){this.glass&&this.paintGlassEffect(e,t,n,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var t=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,t)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-t/2)+"px",e.style.top=Math.round(this.bounds.y-t/2)+"px","CSS1Compat"==document.compatMode&&(t=-t),e.style.width=Math.round(Math.max(0,this.bounds.width+t))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+t))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var t=this.stroke;null!=t&&t!=mxConstants.NONE?(e.style.borderColor=t,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(t=this.fill)&&t!=mxConstants.NONE?(e.style.backgroundColor=t,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var t="";if(100>this.opacity&&(t+="alpha(opacity="+this.opacity+")"),this.isShadow&&(t+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var n=this.fill,a=this.gradient,i="0",o={east:0,south:1,west:2,north:3},s=null!=this.direction?o[this.direction]:0;null!=this.gradientDirection&&(s=mxUtils.mod(s+o[this.gradientDirection]-1,4)),1==s?(i="1",o=n,n=a,a=o):2==s?(o=n,n=a,a=o):3==s&&(i="1"),t+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+n+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=t},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,t,n,a,i){e.ellipse(t,n,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,t,n,a,i){e.ellipse(t,n,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,t,n,a,i){var o=Math.min(4,Math.min(a/5,i/5));i-=2*o,0<(a-=2*o)&&0<i&&e.ellipse(t+o,n+o,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,t,n,a,i){var o=a/2,s=i/2;e.begin(),e.moveTo(t+o,n),e.lineTo(t+a,n+s),e.lineTo(t+o,n+i),e.lineTo(t,n+s),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,t){this.paintLine(e,t,this.isRounded)},mxPolyline.prototype.paintLine=function(e,t,n){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=t[0],o=t[t.length-1];e.begin(),e.moveTo(i.x,i.y);for(var s=1;s<t.length-1;s++){var r=t[s],l=i.x-r.x,i=i.y-r.y;if(n&&s<t.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=t[s+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(o.x,o.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,t){var n=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,o=t[0],s=t[t.length-1],r=s.x-o.x,l=s.y-o.y,d=(c=Math.sqrt(r*r+l*l))-2*n-i,r=r/c,c=a*(l=l/c)/3,a=-a*r/3,m=(i=o.x-c/2+n*r)+c,u=(o=o.y-a/2+n*l)+a,p=m+d*r,g=p+c,h=(d=u+d*l)+a,v=g-3*c,b=h-3*a;e.begin(),e.moveTo(i,o),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,h),e.lineTo(s.x-n*r,s.y-n*l),e.lineTo(v,b),e.lineTo(v+c,b+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&null!=(e=e.firstChild).firstChild&&(e=e.firstChild),this.boundingBox=this.bounds.clone();var t=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var n=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,n=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(t=e.getBBox()).width&&0==t.height)return;this.boundingBox=new mxRectangle(t.x,t.y,t.width,t.height),t=0}else a=this.state.view.textDiv,null!=this.offsetWidth&&null!=this.offsetHeight?(n=this.wrap?this.bounds.width:this.offsetWidth*this.scale,a=this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(n=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=n),n=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a=a.offsetHeight*this.scale):(n=this.wrap?this.bounds.width:e.offsetWidth*this.scale,a=e.offsetHeight*this.scale);null!=n&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*n,this.bounds.y+this.margin.y*a,n,a))}null!=this.boundingBox&&(0!=t&&(t=mxUtils.getBoundingBox(this.boundingBox,t),this.boundingBox.x=t.x,this.boundingBox.y=t.y,mxClient.IS_QUIRKS||(this.boundingBox.width=t.width,this.boundingBox.height=t.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,t,n,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var t=this.scale,n=this.bounds.x/t,a=this.bounds.y/t,i=this.bounds.width/t,t=this.bounds.height/t;this.updateTransform(e,n,a,i,t),this.configureCanvas(e,n,a,i,t);var o=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,s=o||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!o&&"html"==s&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==s?r.replace(/\n/g,"<br/>"):r,e.text(n,a,i,t,r,this.align,this.valign,this.wrap,s,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=1>this.opacity?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),t=this.node.style,n=this.margin.x,a=this.margin.y;0!=e?(t[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-n+"% "+100*-a+"%",t[mxClient.CSS_PREFIX+"Transform"]="translate("+100*n+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(t[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",t[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*n+"%,"+100*a+"%)"),t.left=Math.round(this.bounds.x)+"px",t.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,t=this.margin.x,n=this.margin.y,a=this.scale;e.filter="";var i=0,o=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{s=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(s=mxUtils.htmlEntities(s,!1)),s=this.replaceLinefeeds?s.replace(/\n/g,"<br/>"):s,r.innerHTML=s}i=r.offsetWidth+2,o=r.offsetHeight+2}else i=this.node.offsetWidth,o=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=o,r=this.bounds.width/a,s=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<s?(s=Math.min(s,o),e.height=Math.round(s+1)+"px"):s=o,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);var s=s*a,r=r*a,i=this.getTextRotation()*(Math.PI/180),o=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),l=parseFloat(parseFloat(Math.sin(-i)).toFixed(8));0>(i=i%(2*Math.PI))&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(s-s*d+r*c)/2+l*(t=r*-(t+.5))-o*(n=s*-(n+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+o+", M12="+l+", M21="+-l+", M22="+o+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+s*c)/2-o*t-l*n)-r/2)+"px",e.top=Math.round(this.bounds.y+m-s/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));var e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e,t=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,n=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=t||null!=n)if("fill"==this.overflow)null!=t&&(this.node.style.backgroundColor=t),null!=n&&(this.node.style.border="1px solid "+n);else{var a="";null!=t&&(a+="background-color:"+t+";"),null!=n&&(a+="border:1px solid "+n+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var t=Math.round(this.bounds.width/this.scale),n=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<n&&(e.maxHeight=n+"px"),0<t&&(e.width=t+"px")):"fill"==this.overflow&&(e.width=t+"px",0<n&&(e.maxHeight=n+"px")),this.wrap?(!this.clipped&&0<t&&(e.width=t+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,t,n,a,i){n+=i/2,e.begin(),e.moveTo(t,n),e.lineTo(t+a,n),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,t,n,a,i){if(null!=this.image){var o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==o&&null==s||(e.setFillColor(o),e.setStrokeColor(s),e.rect(t,n,a,i),e.fillAndStroke()),e.image(t,n,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var t=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=t,this.flipH&&this.flipV?t+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?t+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(t+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=t&&(e.style.filter=t),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,t,n,a,i){this.paintImage(e,t,n,a,i),this.paintIndicator(e,t,n,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,t,n,a,i){null!=this.image&&(t=this.getImageBounds(t,n,a,i),e.image(t.x,t.y,t.width,t.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,t,n,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return e=i==mxConstants.ALIGN_CENTER?e+(n-s)/2:i==mxConstants.ALIGN_RIGHT?e+(n-s-l):e+l,t=o==mxConstants.ALIGN_TOP?t+l:o==mxConstants.ALIGN_BOTTOM?t+(a-r-l):t+(a-r)/2,new mxRectangle(e,t,s,r)},mxLabel.prototype.paintIndicator=function(e,t,n,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(t,n,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(t=this.getIndicatorBounds(t,n,a,i),e.image(t.x,t.y,t.width,t.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,t,n,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return e=i==mxConstants.ALIGN_RIGHT?e+(n-s-l):i==mxConstants.ALIGN_CENTER?e+(n-s)/2:e+l,t=o==mxConstants.ALIGN_BOTTOM?t+(a-r-l):o==mxConstants.ALIGN_TOP?t+l:t+(a-r)/2,new mxRectangle(e,t,s,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var t=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);t.x-=this.bounds.x,t.y-=this.bounds.y,e.style.left=Math.round(t.x)+"px",e.style.top=Math.round(t.y)+"px",e.style.width=Math.round(t.width)+"px",e.style.height=Math.round(t.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,t,n,a,i){e.translate(t,n),e.begin(),this.redrawPath(e,t,n,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,t,n,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,t,n,a,i,o){t=Math.min(this.maxHeight,Math.round(i/5)),(o&&null!=this.fill||!o&&null==this.fill)&&(e.moveTo(0,t),e.curveTo(0,2*t,a,2*t,a,t),o||(e.stroke(),e.begin())),o||(e.moveTo(0,t),e.curveTo(0,-t/3,a,-t/3,a,t),e.lineTo(a,i-t),e.curveTo(a,i+t/3,0,i+t/3,0,i-t),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,t){var n=this.createMarker(e,t,!0),a=this.createMarker(e,t,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,t,this.isRounded):this.paintCurvedLine(e,t),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=n&&n(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,t){e.begin();var n=t[0],a=t.length;for(e.moveTo(n.x,n.y),n=1;n<a-2;n++){var i=t[n],o=t[n+1];e.quadTo(i.x,i.y,(i.x+o.x)/2,(i.y+o.y)/2)}i=t[a-2],o=t[a-1],e.quadTo(i.x,i.y,o.x,o.y),e.stroke()},mxConnector.prototype.createMarker=function(e,t,n){var a=t.length,i=n?t[1]:t[a-2],a=(t=n?t[0]:t[a-1]).x-i.x,o=t.y-i.y,i=a/(s=Math.max(1,Math.sqrt(a*a+o*o))),a=o/s,o=mxUtils.getNumber(this.style,n?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),s=mxUtils.getValue(this.style,n?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW);return mxMarker.createMarker(e,this,s,t,i,a,o,n,this.strokewidth,0!=this.style[n?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var t=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(t=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(t=Math.max(t,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(t*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,t,n,a,i){return e=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),new mxRectangle(t,n,a,e)},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,t,n){return e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,3*n*e},mxSwimlane.prototype.paintVertexShape=function(e,t,n,a,i){var o=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),s=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(t,n),this.isRounded?(l=this.getArcSize(a,i,o),this.paintRoundedSwimlane(e,t,n,a,i,o,l,s,r)):this.paintSwimlane(e,t,n,a,i,o,s,r),s=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,o,i,s),null!=this.image&&(i=this.getImageBounds(t,o,a,i),e.image(i.x-t,i.y-n,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,o,l))},mxSwimlane.prototype.paintSwimlane=function(e,t,n,a,i,o,s,r){s!=mxConstants.NONE&&(e.save(),e.setFillColor(s),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,o),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,o),r&&e.close(),e.fillAndStroke(),o<i&&s==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,o),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,o),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,t,n,a,i,o,s,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,s,s),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,o),e.lineTo(a,s),e.quadTo(a,0,a-Math.min(a/2,s),0),e.lineTo(Math.min(a/2,s),0),e.quadTo(0,0,0,s),e.lineTo(0,o),l&&e.close(),e.fillAndStroke(),o<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,o),e.lineTo(0,i-s),e.quadTo(0,i,Math.min(a/2,s),i),e.lineTo(a-Math.min(a/2,s),i),e.quadTo(a,i,a,i-s),e.lineTo(a,o),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,t,n,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(t,n),e.lineTo(t,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,t,n,a){return new mxRectangle(e+n-this.imageSize,t,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,t,n){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,t,n,a){return n=this.graph.view.getState(t),t=null!=n?n.style:this.graph.getCellStyle(t),null!=t?t[e]:null},mxGraphLayout.traverse=function(e,t,n,a,i){if(null!=n&&null!=e){t=null==t||t,i=i||[];var o=mxCellPath.create(e);if(null==i[o]&&(i[o]=e,null==(a=n(e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(o=0;o<a;o++){var s=this.graph.model.getEdgeAt(e,o),r=this.graph.model.getTerminal(s,!0)==e;t&&!r||(r=this.graph.view.getVisibleTerminal(s,!r),this.traverse(r,t,n,s,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var t=this.graph.getModel();return!t.isEdge(e)||!this.graph.isCellVisible(e)||null==t.getTerminal(e,!0)||null==t.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,t){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,t?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,t){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,t?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var t=new mxPoint;if(null!=e&&e!=this.parent){var n=this.graph.getModel();if(n.isAncestor(this.parent,e))for(var a=n.getGeometry(e);e!=this.parent;)t.x+=a.x,t.y+=a.y,e=n.getParent(e),a=n.getGeometry(e)}return t},mxGraphLayout.prototype.setEdgePoints=function(e,t){if(null!=e){var n=this.graph.model,a=n.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=t)for(var i=n.getParent(e),i=this.getParentOffset(i),o=0;o<t.length;o++)t[o].x-=i.x,t[o].y-=i.y;a.points=t,n.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,t,n){var a=this.graph.getModel(),i=a.getGeometry(e),o=null;if(null!=i){if(o=new mxRectangle(t,n,i.width,i.height),this.useBoundingBox){var s=this.graph.getView().getState(e);if(null!=s&&null!=s.text&&null!=s.text.boundingBox){var r=this.graph.getView().scale,l=s.text.boundingBox;s.text.boundingBox.x<s.x&&(t+=(s.x-l.x)/r,o.width=l.width),s.text.boundingBox.y<s.y&&(n+=(s.y-l.y)/r,o.height=l.height)}}null!=this.parent&&null!=(s=a.getParent(e))&&s!=this.parent&&(s=this.getParentOffset(s),t-=s.x,n-=s.y),i.x==t&&i.y==n||(i=i.clone(),i.x=t,i.y=n,a.setGeometry(e,i))}return o},mxGraphLayout.prototype.getVertexBounds=function(e){r=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&null!=(s=this.graph.getView().getState(e))&&null!=s.text&&null!=s.text.boundingBox)var t=this.graph.getView().scale,n=s.text.boundingBox,a=Math.max(s.x-n.x,0)/t,i=Math.max(s.y-n.y,0)/t,o=Math.max(n.x+n.width-(s.x+s.width),0)/t,s=Math.max(n.y+n.height-(s.y+s.height),0)/t,r=new mxRectangle(r.x-a,r.y-i,r.width+a+o,r.height+i+s);return null!=this.parent&&(e=this.graph.getModel().getParent(e),r=r.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),r.x+=e.x,r.y+=e.y)),new mxRectangle(r.x,r.y,r.width,r.height)},mxGraphLayout.prototype.arrangeGroups=function(e,t){this.graph.getModel().beginUpdate();try{for(var n=e.length-1;0<=n;n--){var a=e[n],i=this.graph.getChildVertices(a),o=this.graph.getBoundingBoxFromGeometry(i),s=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a))var d=this.graph.getStartSize(a),r=d.width,l=d.height;null!=o&&null!=s&&(s=s.clone(),s.x=s.x+o.x-t-r,s.y=s.y+o.y-t-l,s.width=o.width+2*t+r,s.height=o.height+2*t+l,this.graph.getModel().setGeometry(a,s),this.graph.moveCells(i,t+r-o.x,t+l-o.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,t,n){var a=this.graph.getModel(),i=a.getParent(e),o=this.isHorizontal();if(null!=e&&null!=i){var s=0,r=0,l=a.getChildCount(i);for(t=o?t:n,null!=(s=this.graph.getView().getState(i))&&(t-=o?s.x:s.y),s=0;s<l;s++)if((n=a.getChildAt(i,s))!=e&&null!=(n=a.getGeometry(n))){if(n=o?n.x+n.width/2:n.y+n.height/2,r<t&&n>t)break;r=n}o=i.getIndex(e),o=Math.max(0,s-(s>o?1:0)),a.add(i,e,o)}},mxStackLayout.prototype.getParentSize=function(e){var t=this.graph.getModel(),n=t.getGeometry(e);return null!=this.graph.container&&(null==n&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(n=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),n},mxStackLayout.prototype.execute=function(e){if(null!=e){var t=this.isHorizontal(),n=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=t?a.height:a.width);var i=i-(2*this.spacing+2*this.border),o=this.x0+this.border,s=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);t==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),t?s+=l:o+=l}n.beginUpdate();try{for(var l=0,r=null,d=n.getChildCount(e),c=0;c<d;c++){var m=n.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=n.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(t&&r.x+r.width+u.width+2*this.spacing>this.wrap||!t&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,t?s+=l+this.spacing:o+=l+this.spacing,l=0),l=Math.max(l,t?u.height:u.width),null!=r?t?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(t?u.x=o:u.y=s),t?u.y=s:u.x=o,this.fill&&0<i&&(t?u.height=i:u.width=i),n.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),t?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,n.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(t?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{n.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,t,n){var a=(n=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){for(var i=0,o=0,s=n.getChildCount(a),i=0;i<s;i++){var r=n.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,o<t&&r>t)break;o=r}}t=a.getIndex(e),t=Math.max(0,i-(i>t?1:0)),n.add(a,e,t)}},mxPartitionLayout.prototype.execute=function(e){var t=this.isHorizontal(),n=this.graph.getModel(),a=n.getGeometry(e);if(null!=this.graph.container&&(null==a&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],o=n.getChildCount(e),s=0;s<o;s++){c=n.getChildAt(e,s);!this.isVertexIgnored(c)&&this.isVertexMovable(c)&&i.push(c)}if(0<(o=i.length)){var r=this.border,l=this.border,d=(d=t?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,d-=t?e.height:e.width,r+=e.width,l+=e.height,e=this.border+(o-1)*this.spacing,0<(a=t?(a.width-r-e)/o:(a.height-l-e)/o)){n.beginUpdate();try{for(s=0;s<o;s++){var c=i[s],m=n.getGeometry(c);null!=m&&(m=m.clone(),m.x=r,m.y=l,t?(this.resizeVertices&&(m.width=a,m.height=d),r+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=d),l+=a+this.spacing),n.setGeometry(c,m))}}finally{n.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,t){this.parent=e;var n=this.graph.getModel();if(null==t)if(0<this.graph.getEdges(e,n.getParent(e),this.invert,!this.invert,!1).length)t=e;else if(0<(s=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<s.length;a++)if(!this.isVertexIgnored(s[a])&&0<this.graph.getEdges(s[a],null,this.invert,!this.invert,!1).length){t=s[a];break}if(null!=t){this.parentsChanged=this.resizeParent?{}:null,n.beginUpdate();try{var i=this.dfs(t,e);if(null!=i){this.layout(i);var o=this.graph.gridSize,s=o;if(!this.moveTree){var r=this.getVertexBounds(t);null!=r&&(o=r.x,s=r.y)}if(r=null,null!=(r=this.isHorizontal()?this.horizontalLayout(i,o,s):this.verticalLayout(i,null,o,s))){var l=a=0;0>r.x&&(a=Math.abs(o-r.x)),0>r.y&&(l=Math.abs(s-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{n.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,t,n){for(e.x+=t,e.y+=n,this.apply(e),e=e.child;null!=e;)this.moveNode(e,t,n),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,t,n){n=null!=n?n:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==n[a]&&!this.isVertexIgnored(e)){n[a]=e;var i=this.createNode(e),a=this.graph.getModel(),o=null;e=this.graph.getEdges(e,t,this.invert,!this.invert,!1,!0);for(var s=this.graph.getView(),r=0;r<e.length;r++){d=e[r];if(!this.isEdgeIgnored(d)){this.resetEdges&&this.setEdgePoints(d,null),this.edgeRouting&&(this.setEdgeStyleEnabled(d,!1),this.setEdgePoints(d,null));var l=s.getState(d),d=null!=l?l.getVisibleTerminal(this.invert):s.getVisibleTerminal(d,this.invert);null!=(l=this.dfs(d,t,n))&&null!=a.getGeometry(d)&&(null==o?i.child=l:o.next=l,o=l)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var t=e.child;null!=t;)this.layout(t),t=t.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,t,n,a){if(e.x+=t+e.offsetX,e.y+=n+e.offsetY,a=this.apply(e,a),null!=(t=e.child)){a=this.horizontalLayout(t,e.x,e.y,a),n=e.y+t.offsetY;for(var i=t.next;null!=i;)a=this.horizontalLayout(i,e.x+t.offsetX,n,a),n+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,t,n,a,i){if(e.x+=n+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(t=e.child))for(i=this.verticalLayout(t,e,e.x,e.y,i),n=e.x+t.offsetY,a=t.next;null!=a;)i=this.verticalLayout(a,e,n,e.y+t.offsetX,i),n+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,t){var n=this.nodeDistance+this.levelDistance,a=(t-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-t;e.child.offsetX=n+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(n,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(n,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var t=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+t,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-t),e.contour.lowerHead=this.createLine(e.height+t,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var t=2*this.nodeDistance,n=e.child;e.contour=n.contour;for(var a=n.width+t,i=a,n=n.next;null!=n;){var o=this.merge(e.contour,n.contour);n.offsetY=o+a,n.offsetX=0,i+=o+(a=n.width+t),n=n.next}return i},mxCompactTreeLayout.prototype.merge=function(e,t){for(var n=0,a=0,i=0,o=e.lowerHead,s=t.upperHead;null!=s&&null!=o;){var r=this.offset(n,a,s.dx,s.dy,o.dx,o.dy),a=a+r,i=i+r;n+s.dx<=o.dx?(n+=s.dx,a+=s.dy,s=s.next):(n-=o.dx,a-=o.dy,o=o.next)}return null!=s?(n=this.bridge(e.upperTail,0,0,s,n,a),e.upperTail=null!=n.next?t.upperTail:n,e.lowerTail=t.lowerTail):null==(n=this.bridge(t.lowerTail,n,a,o,0,0)).next&&(e.lowerTail=n),e.lowerHead=t.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,t,n,a,i,o){var s=0;return i<=e||0>=e+n?0:(s=0<i*a-n*o?0>e?e*a/n-t:0<e?e*o/i-t:-t:i<e+n?o-(t+(i-e)*a/n):i>e+n?(n+e)*o/i-(t+a):o-(t+a),0<s?s:0)},mxCompactTreeLayout.prototype.bridge=function(e,t,n,a,i,o){return t=i+a.dx-t,i=i=0,0==a.dx?i=a.dy:(i=t*a.dy,i/=a.dx),t=this.createLine(t,i,a.next),e.next=this.createLine(0,o+a.dy-i-n,t),t},mxCompactTreeLayout.prototype.createNode=function(e){var t={};return t.cell=e,t.x=0,t.y=0,t.width=0,t.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(t.width=e.height,t.height=e.width):(t.width=e.width,t.height=e.height)),t.offsetX=0,t.offsetY=0,t.contour={},t},mxCompactTreeLayout.prototype.apply=function(e,t){var n=this.graph.getModel(),a=e.cell,i=n.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(n=n.getParent(a),a=mxCellPath.create(n),null==this.parentsChanged[a]&&(this.parentsChanged[a]=n))),t=null==t?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(t.x,i.x),Math.min(t.y,i.y),Math.max(t.x+t.width,i.x+i.width),Math.max(t.y+t.height,i.y+i.height))),t},mxCompactTreeLayout.prototype.createLine=function(e,t,n){var a={};return a.dx=e,a.dy=t,a.next=n,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,t=[];for(e in this.parentsChanged)t.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var t=e.child,n=e.cell,a=0,i=[];null!=t;){a++;o=t.x;this.horizontal&&(o=t.y),i.push(new WeightedCellSorter(t,o)),t=t.next}i.sort(WeightedCellSorter.prototype.compare),(o=e.width)>(s=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(o-=2*this.prefHozEdgeSep),t=(e=o/a)/2,o>s+2*this.prefHozEdgeSep&&(t+=this.prefHozEdgeSep);for(var o=this.minEdgeJetty-this.prefVertEdgeOff,s=0,r=this.getVertexBounds(n),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),d=this.graph.getEdgesBetween(n,d,!1),m=[],u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+t,m.push(new mxPoint(u,p)),u=r.x+r.width+o,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+t,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+o,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?o+=this.prefVertEdgeOff:l>a/2&&(o-=this.prefVertEdgeOff),t+=e,s=Math.max(s,o)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.weightedValue>e.weightedValue?1:t.weightedValue<e.weightedValue?-1:t.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var t=this.graph.getModel();this.vertexArray=[];for(var n=this.graph.getChildVertices(e),a=0;a<n.length;a++)this.isVertexIgnored(n[a])||this.vertexArray.push(n[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,o=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],.001>this.forceConstant&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var s=this.vertexArray[a];this.cellLocation[a]=[];p=mxCellPath.create(s);this.indices[p]=a;var r=this.getVertexBounds(s),l=r.width,d=r.height,c=r.x,m=r.y;this.cellLocation[a][0]=c+l/2,this.cellLocation[a][1]=m+d/2,this.radius[a]=Math.min(l,d),this.radiusSquared[a]=this.radius[a]*this.radius[a]}t.beginUpdate();try{for(a=0;a<o;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var u=this.graph.getConnections(this.vertexArray[a],e),n=this.graph.getOpposites(u,this.vertexArray[a]);for(this.neighbours[a]=[],l=0;l<n.length;l++){this.resetEdges&&this.graph.resetEdge(u[l]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(u[l],!1);var p=mxCellPath.create(n[l]),g=this.indices[p];this.neighbours[a][l]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(o)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=n=null,a=0;a<this.vertexArray.length;a++)s=this.vertexArray[a],this.isVertexMovable(s)&&null!=(r=this.getVertexBounds(s))&&(this.cellLocation[a][0]-=r.width/2,this.cellLocation[a][1]-=r.height/2,c=this.graph.snap(this.cellLocation[a][0]),m=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(s,c,m),n=null==n?c:Math.min(n,c),e=null==e?m:Math.min(e,m));a=1-(n||0),s=1-(e||0),null!=i&&(a+=i.x,s+=i.y),this.graph.moveCells(this.vertexArray,a,s)}finally{t.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){.001>(n=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))&&(n=.001);var t=this.dispX[e]/n*Math.min(n,this.temperature),n=this.dispY[e]/n*Math.min(n,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=t,this.cellLocation[e][1]+=n}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var t=0;t<this.neighbours[e].length;t++){var n=this.neighbours[e][t];if(e!=n&&this.isMoveable[e]&&this.isMoveable[n]){var a=(o=this.cellLocation[e][0]-this.cellLocation[n][0])*o+(s=this.cellLocation[e][1]-this.cellLocation[n][1])*s-this.radiusSquared[e]-this.radiusSquared[n];a<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var i=Math.sqrt(a),o=o/i*(a=a/this.forceConstant),s=s/i*a;this.dispX[e]-=o,this.dispY[e]-=s,this.dispX[n]+=o,this.dispY[n]+=s}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,t=0;t<e;t++)for(var n=t;n<e;n++){if(!this.allowedToRun)return;if(n!=t&&this.isMoveable[t]&&this.isMoveable[n]){var a=this.cellLocation[t][0]-this.cellLocation[n][0],i=this.cellLocation[t][1]-this.cellLocation[n][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var o=Math.sqrt(a*a+i*i),s=o-this.radius[t]-this.radius[n];s>this.maxDistanceLimit||(s<this.minDistanceLimit&&(s=this.minDistanceLimit),s=this.forceConstantSquared/s,a=a/o*s,i=i/o*s,this.dispX[t]+=a,this.dispY[t]+=i,this.dispX[n]-=a,this.dispY[n]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0,a=null,i=null,o=[],s=t.getChildCount(e),r=0;r<s;r++){var l=t.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{o.push(l);var d=this.getVertexBounds(l),a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),n=Math.max(n,Math.max(d.width,d.height))}}var c=this.getRadius(o.length,n);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(o,c,i,a)}finally{t.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,t){return Math.max(e*t/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,t,n,a){for(var i=e.length,o=2*Math.PI/i,s=0;s<i;s++)this.isVertexMovable(e[s])&&this.setVertexLocation(e[s],n+t+t*Math.sin(s*o),a+t+t*Math.cos(s*o))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var t in e){var n=e[t];1<n.length&&this.layout(n)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var t=this.graph.getModel(),n=[],a=t.getChildCount(e),i=0;i<a;i++){var o=t.getChildAt(e,i);if(!this.isEdgeIgnored(o)){var s=this.getEdgeId(o);null!=s&&(null==n[s]&&(n[s]=[]),n[s].push(o))}}return n},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var t=this.graph.getView(),n=t.getState(e),a=null!=n?n.getVisibleTerminal(!0):t.getVisibleTerminal(e,!0);return e=null!=n?n.getVisibleTerminal(!1):t.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),e=mxCellPath.create(e),a>e?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){t=e[0];if((s=(n=this.graph.getModel()).getGeometry(n.getTerminal(t,!0)))==(o=n.getGeometry(n.getTerminal(t,!1))))for(var t=s.x+s.width+this.spacing,n=s.y+s.height/2,a=0;a<e.length;a++)this.route(e[a],t,n),t+=this.spacing;else if(null!=s&&null!=o)for(var t=s.x+s.width/2,n=s.y+s.height/2,a=o.x+o.width/2-t,i=o.y+o.height/2-n,o=Math.sqrt(a*a+i*i),s=i*this.spacing/o,o=a*this.spacing/o,t=t+a/2+s*(e.length-1)/2,n=n+i/2-o*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],t,n),t-=s,n+=o},mxParallelEdgeLayout.prototype.route=function(e,t,n){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(t,n)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,t,n){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0;n<this.layouts.length;n++)this.layouts[n].execute.apply(this.layouts[n],arguments)}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var t=this.graph.view,n=this.graph.getModel(),a=[],i=[],o=n.getChildCount(e),s=0;s<o;s++){var r=n.getChildAt(e,s),l=t.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,t){var n=this.graph.getModel();n.beginUpdate();try{for(var a=0;a<t.length;a++){var i=t[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var o=0;o<e.length;o++){var s=e[o];null!=s&&this.avoid(i,s)}}}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,t){var n=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,t)){var i=-a.y-a.height+t.y,o=-a.y+t.y+t.height,i=Math.abs(i)<Math.abs(o)?i:o,o=-a.x-a.width+t.x,a=-a.x+t.x+t.width,a=Math.abs(o)<Math.abs(a)?o:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(o=n.getGeometry(e.cell))&&(o=o.clone(),null!=o.offset?(o.offset.x+=a,o.offset.y+=i):o.offset=new mxPoint(a,i),n.setGeometry(e.cell,o))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,t){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,t){this.isVertex()?this.x[0]=t:this.isEdge()&&(this.x[e-this.minRank-1]=t)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,t){this.isVertex()?this.y[0]=t:this.isEdge()&&(this.y[e-this.minRank-1]=t)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var t=0;t<this.connectsAsTarget.length;t++){var n=this.connectsAsTarget[t];-1==n.maxRank||n.maxRank==e+1?this.nextLayerConnectedCells[0].push(n.source):this.nextLayerConnectedCells[0].push(n)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var t=0;t<this.connectsAsSource.length;t++){var n=this.connectsAsSource[t];-1==n.minRank||n.minRank==e-1?this.previousLayerConnectedCells[0].push(n.target):this.previousLayerConnectedCells[0].push(n)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,t){this.temp[0]=t},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var t=0;t<this.hashCode.length;t++)if(this.hashCode[t]!=e.hashCode[t])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var t=0;t<this.temp.length;t++)this.nextLayerConnectedCells[t]=[],t==this.temp.length-1?this.nextLayerConnectedCells[t].push(this.source):this.nextLayerConnectedCells[t].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var t=0;t<this.temp.length;t++)this.previousLayerConnectedCells[t]=[],0==t?this.previousLayerConnectedCells[t].push(this.target):this.previousLayerConnectedCells[t].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,t){this.temp[e-this.minRank-1]=t},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,t,n){for(var a=e.getGraph(),i=0;i<t.length;i++){n[i]=new mxGraphHierarchyNode(t[i]);var o=mxCellPath.create(t[i]);this.vertexMapper[o]=n[i],o=e.getEdges(t[i]),n[i].connectsAsSource=[];for(var s=0;s<o.length;s++)if((d=e.getVisibleTerminal(o[s],!1))!=t[i]&&d!=t[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(t[i],d,!1),l=e.getEdgesBetween(t[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){for(var l=new mxGraphHierarchyEdge(r),c=0;c<r.length;c++){var m=r[c],d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=n[i],0>mxUtils.indexOf(n[i].connectsAsSource,l)&&n[i].connectsAsSource.push(l)}}n[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(l=0;l<this.roots.length;l++){var t=mxCellPath.create(this.roots[l]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var n in this.vertexMapper)t=this.vertexMapper[n],t.temp[0]=-1;for(var a=e.slice();0<e.length;){var i,o;i=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;for(var s=!0,r=this.SOURCESCANSTARTRANK,l=0;l<i.length;l++){var d=i[l];if(5270620!=d.temp[0]){s=!1;break}d=d.source,r=Math.min(r,d.temp[0]-1)}if(s){if(t.temp[0]=r,this.maxRank=Math.min(this.maxRank,r),null!=o)for(l=0;l<o.length;l++)d=o[l],d.temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(l=e.shift(),e.push(t),l==t&&1==e.length)break}for(n in this.vertexMapper)t=this.vertexMapper[n],t.temp[0]-=this.maxRank;for(l=0;l<a.length;l++)for(e=0,i=(t=a[l]).connectsAsSource,n=0;n<i.length;n++)d=i[n],d=d.target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var e=[];this.ranks=[];for(a=0;a<this.maxRank+1;a++)e[a]=[],this.ranks[a]=e[a];n=null;if(null!=this.roots)for(var t=this.roots,n=[],a=0;a<t.length;a++){var i=mxCellPath.create(t[a]);n[a]=this.vertexMapper[i]}this.visit(function(t,n,a,i,o){if(0==o&&0>n.maxRank&&0>n.minRank&&(e[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=e[n.maxRank].length-1),null!=t&&null!=a&&1<t.maxRank-n.maxRank)for(a.maxRank=t.maxRank,a.minRank=n.maxRank,a.temp=[],a.x=[],a.y=[],t=a.minRank+1;t<a.maxRank;t++)e[t].push(a),a.setGeneralPurposeVariable(t,e[t].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,t,n,a){if(null!=t){for(var i=0;i<t.length;i++){var o=t[i];null!=o&&(null==a&&(a={}),n?(o.hashCode=[],o.hashCode[0]=this.dfsCount,o.hashCode[1]=i,this.extendedDfs(null,o,null,e,a,o.hashCode,i,0)):this.dfs(null,o,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,t,n,a,i,o){if(null!=t){var s=mxCellPath.create(t.cell);if(null==i[s])for(i[s]=t,a(e,t,n,o,0),e=t.connectsAsSource.slice(),n=0;n<e.length;n++)s=e[n],this.dfs(t,s.target,s,a,i,o+1);else a(e,t,n,o,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,t,n,a,i,o,s,r){if(null!=t)if(null==e||null!=t.hashCode&&t.hashCode[0]==e.hashCode[0]||(o=e.hashCode.length+1,t.hashCode=e.hashCode.slice(),t.hashCode[o-1]=s),s=mxCellPath.create(t.cell),null==i[s])for(i[s]=t,a(e,t,n,r,0),e=t.connectsAsSource.slice(),n=0;n<e.length;n++)s=e[n],this.extendedDfs(t,s.target,s,a,i,t.hashCode,n,r+1);else a(e,t,n,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(a=0;a<e.ranks.length;a++)this.nestedBestRanks[a]=e.ranks[a].slice();for(var t=0,n=this.calculateCrossings(e),a=0;a<this.maxIterations&&t<this.maxNoImprovementIterations;a++){this.weightedMedian(a,e),this.transpose(a,e);var i=this.calculateCrossings(e);if(i<n)for(n=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var o=e.ranks[i],s=0;s<o.length;s++){var r=o[s];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(o=e.ranks[i],s=0;s<o.length;s++)(r=o[s]).setGeneralPurposeVariable(i,s);if(0==n)break}for(t=[],n=[],a=0;a<e.maxRank+1;a++)n[a]=[],t[a]=n[a];for(a=0;a<this.nestedBestRanks.length;a++)for(i=0;i<this.nestedBestRanks[a].length;i++)n[a].push(this.nestedBestRanks[a][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var t=e.ranks.length,n=0,a=1;a<t;a++)n+=this.calculateRankCrossing(a,e);return n},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,t){for(var n=0,a=t.ranks[e],i=a.length,o=t.ranks[e-1].length,s=[],r=0;r<i;r++)s[r]=[];for(r=0;r<a.length;r++)for(var l=a[r],d=l.getGeneralPurposeVariable(e),c=l.getPreviousLayerConnectedCells(e),l=0;l<c.length;l++){var m=c[l].getGeneralPurposeVariable(e-1);s[d][m]=201207}for(r=0;r<i;r++)for(l=0;l<o;l++)if(201207==s[r][l]){for(a=r+1;a<i;a++)for(d=0;d<l;d++)201207==s[a][d]&&n++;for(a=0;a<r;a++)for(d=l+1;d<o;d++)201207==s[a][d]&&n++}return n/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,t){for(var n=!0,a=0;n&&10>a++;)for(var i=1==e%2&&1==a%2,n=!1,o=0;o<t.ranks.length;o++){for(var s=t.ranks[o],r=[],l=0;l<s.length;l++)0>(f=(b=s[l]).getGeneralPurposeVariable(o))&&(f=l),r[f]=b;for(var d=f=b=null,c=null,m=null,u=null,p=null,g=null,h=null,v=null,l=0;l<s.length-1;l++){if(0==l){for(var b=(h=r[l]).getNextLayerConnectedCells(o),f=h.getPreviousLayerConnectedCells(o),m=[],u=[],E=0;E<b.length;E++)m[E]=b[E].getGeneralPurposeVariable(o+1);for(E=0;E<f.length;E++)u[E]=f[E].getGeneralPurposeVariable(o-1)}else b=d,f=c,m=p,u=g,h=v;for(d=(v=r[l+1]).getNextLayerConnectedCells(o),c=v.getPreviousLayerConnectedCells(o),p=[],g=[],E=0;E<d.length;E++)p[E]=d[E].getGeneralPurposeVariable(o+1);for(E=0;E<c.length;E++)g[E]=c[E].getGeneralPurposeVariable(o-1);for(var y=0,A=0,E=0;E<m.length;E++)for(var C=0;C<p.length;C++)m[E]>p[C]&&y++,m[E]<p[C]&&A++;for(E=0;E<u.length;E++)for(C=0;C<g.length;C++)u[E]>g[C]&&y++,u[E]<g[C]&&A++;(A<y||A==y&&i)&&(d=h.getGeneralPurposeVariable(o),h.setGeneralPurposeVariable(o,v.getGeneralPurposeVariable(o)),v.setGeneralPurposeVariable(o,d),d=b,c=f,p=m,g=u,v=h,i||(n=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,t){var n=0==e%2;if(n)for(var a=t.maxRank-1;0<=a;a--)this.medianRank(a,n);else for(a=1;a<t.maxRank;a++)this.medianRank(a,n)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,t){for(var n=this.nestedBestRanks[e].length,a=[],i=[],o=0;o<n;o++){var s=this.nestedBestRanks[e][o],r=new MedianCellSorter;r.cell=s;var l;l=t?s.getNextLayerConnectedCells(e):s.getPreviousLayerConnectedCells(e);var d;d=t?e+1:e-1,null!=l&&0!=l.length?(r.medianValue=this.medianValue(l,d),a.push(r)):i[s.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),o=0;o<n;o++)null==i[o]&&(s=a.shift().cell).setGeneralPurposeVariable(e,o)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,t){for(var n=[],a=0,i=0;i<e.length;i++){var o=e[i];n[a++]=o.getGeneralPurposeVariable(t)}return n.sort(function(e,t){return e-t}),1==a%2?n[Math.floor(a/2)]:2==a?(n[0]+n[1])/2:(i=a/2,o=n[i-1]-n[0],a=n[a-1]-n[i],(n[i-1]*a+n[i]*o)/(o+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.medianValue>e.medianValue?-1:t.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var t=this.layout.getModel(),n={},a=mxUtils.clone(t.vertexMapper,null,!0),i=null;if(null!=t.roots){var o=t.roots,i=[];for(e=0;e<o.length;e++){var s=mxCellPath.create(o[e]);i[e]=t.vertexMapper[s]}}if(t.visit(function(e,t,i,o,s){t.isAncestor(e)&&(i.invert(),mxUtils.remove(i,e.connectsAsSource),e.connectsAsTarget.push(i),mxUtils.remove(i,t.connectsAsTarget),t.connectsAsSource.push(i)),e=mxCellPath.create(t.cell),n[e]=t,delete a[e]},i,!0,null),i=null,0<a.lenth&&(i=mxUtils.clone(a,null,!0)),e=mxUtils.clone(n,null,!0),t.visit(function(e,t,i,o,s){t.isAncestor(e)&&(i.invert(),mxUtils.remove(i,e.connectsAsSource),t.connectsAsSource.push(i),e.connectsAsTarget.push(i),mxUtils.remove(i,t.connectsAsTarget)),e=mxCellPath.create(t.cell),n[e]=t,delete a[e]},a,!0,e),o=this.layout.getGraph(),null!=i&&0<i.length)for(t=t.roots,e=0;e<i.length;e++)s=i[e].cell,0==o.getIncomingEdges(s).length&&t.push(s)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var t=0;t<e.ranks.length;t++){mxLog.write("Rank ",t," : ");for(var n=e.ranks[t],a=0;a<n.length;a++)mxLog.write(n[a].getGeneralPurposeVariable(t),"  ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var t=1e8;if(this.fineTuning)for(var n=0;n<this.maxIterations;n++){if(0!=n&&(this.medianPos(n,e),this.minNode(e)),this.currentXDelta<t){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],o=0;o<i.length;o++){var s=i[o];s.setX(a,s.getGeneralPurposeVariable(a))}t=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],o=0;o<i.length;o++)(s=i[o]).setGeneralPurposeVariable(a,s.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var t=[],n=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var o=0;o<a[i].length;o++){d=a[i][o];(s=new WeightedCellSorter(d,i)).rankIndex=o,s.visited=!0,t.push(s),n[d=mxCellPath.create(d.getCoreCell())]=s}}for(e=10*t.length,o=0;0<t.length&&o<=e;){var s=t.shift(),i=s.cell,r=s.weightedValue,l=parseInt(s.rankIndex),d=i.getNextLayerConnectedCells(r),c=i.getPreviousLayerConnectedCells(r),m=d.length,u=c.length,p=this.medianXValue(d,r+1),g=this.medianXValue(c,r-1),h=m+u,v=i.getGeneralPurposeVariable(r),b=v;if(0<h&&(b=(p*m+g*u)/h),m=!1,b<v-1?0==l?(i.setGeneralPurposeVariable(r,b),m=!0):(l=a[r][l-1],v=l.getGeneralPurposeVariable(r),v=v+l.width/2+this.intraCellSpacing+i.width/2,v<b?(i.setGeneralPurposeVariable(r,b),m=!0):v<i.getGeneralPurposeVariable(r)-1&&(i.setGeneralPurposeVariable(r,v),m=!0)):b>v+1&&(l==a[r].length-1?(i.setGeneralPurposeVariable(r,b),m=!0):(l=a[r][l+1],v=l.getGeneralPurposeVariable(r),v=v-l.width/2-this.intraCellSpacing-i.width/2,v>b?(i.setGeneralPurposeVariable(r,b),m=!0):v>i.getGeneralPurposeVariable(r)+1&&(i.setGeneralPurposeVariable(r,v),m=!0))),m){for(i=0;i<d.length;i++)r=d[i],r=mxCellPath.create(r.getCoreCell()),null!=(r=n[r])&&0==r.visited&&(r.visited=!0,t.push(r));for(i=0;i<c.length;i++)r=c[i],r=mxCellPath.create(r.getCoreCell()),null!=(r=n[r])&&0==r.visited&&(r.visited=!0,t.push(r))}s.visited=!1,o++}},mxCoordinateAssignment.prototype.medianPos=function(e,t){if(0==e%2)for(var n=t.maxRank;0<n;n--)this.rankMedianPosition(n-1,t,n);else for(n=0;n<t.maxRank-1;n++)this.rankMedianPosition(n+1,t,n)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,t,n){t=t.ranks[e];for(var a=[],i=[],o=0;o<t.length;o++){var s=t[o];a[o]=new WeightedCellSorter,a[o].cell=s,a[o].rankIndex=o;var r=mxCellPath.create(s.getCoreCell());i[r]=a[o];var l=null,l=n<e?s.getPreviousLayerConnectedCells(e):s.getNextLayerConnectedCells(e);a[o].weightedValue=this.calculatedWeightedValue(s,l)}for(a.sort(WeightedCellSorter.prototype.compare),o=0;o<a.length;o++){r=0,s=a[o].cell,r=0,null!=(l=n<e?s.getPreviousLayerConnectedCells(e).slice():s.getNextLayerConnectedCells(e).slice())&&(r=l.length,r=0<r?this.medianXValue(l,n):s.getGeneralPurposeVariable(e));for(var d=0,l=-1e8,c=a[o].rankIndex-1;0<=c;){var m=mxCellPath.create(t[c].getCoreCell());if(null!=(m=i[m])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+s.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[o].rankIndex+1;c<a.length;)if(m=mxCellPath.create(t[c].getCoreCell()),null!=(m=i[m])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-s.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}r>=l&&r<=u?s.setGeneralPurposeVariable(e,r):r<l?(s.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):r>u&&(s.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[o].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,t){for(var n=0,a=0;a<t.length;a++){var i=t[a];e.isVertex()&&i.isVertex()?n++:n=e.isEdge()&&i.isEdge()?n+8:n+2}return n},mxCoordinateAssignment.prototype.medianXValue=function(e,t){if(0==e.length)return 0;for(var n=[],a=0;a<e.length;a++)n[a]=e[a].getGeneralPurposeVariable(t);return n.sort(function(e,t){return e-t}),1==e.length%2?n[Math.floor(e.length/2)]:(a=e.length/2,(n[a-1]+n[a])/2)},mxCoordinateAssignment.prototype.initialCoords=function(e,t){this.calculateWidestRank(e,t);for(var n=this.widestRank;0<=n;n--)n<t.maxRank&&this.rankCoordinates(n,e,t);for(n=this.widestRank+1;n<=t.maxRank;n++)0<n&&this.rankCoordinates(n,e,t)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,t,n){t=n.ranks[e],n=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,o=0;o<t.length;o++){var s=t[o];if(s.isVertex()){var r=this.layout.getVertexBounds(s.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(s.width=r.width,s.height=r.height):(s.width=r.height,s.height=r.width):i=!0,n=Math.max(n,s.height)}else s.isEdge()&&(r=1,null!=s.edges?r=s.edges.length:mxLog.warn("edge.edges is null"),s.width=(r-1)*this.parallelEdgeSpacing);a+=s.width/2,s.setX(e,a),s.setGeneralPurposeVariable(e,a),a+=s.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,t){var n=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=t.maxRank;0<=i;i--){for(var o=0,s=t.ranks[i],r=this.initialX,l=!1,d=0;d<s.length;d++){var c=s[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,o=Math.max(o,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=n,r=o/2+a/2+this.interRankCellSpacing,a=o,n=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?n+r:n-r,d=0;d<s.length;d++)s[d].setY(i,n)}},mxCoordinateAssignment.prototype.minPath=function(e,t){var n,a=t.edgeMapper;for(n in a){var i=a[n];if(!(1>i.maxRank-i.minRank-1)){for(var o=i.getGeneralPurposeVariable(i.minRank+1),s=!0,r=0,l=i.minRank+2;l<i.maxRank;l++)o!=(d=i.getGeneralPurposeVariable(l))?(s=!1,o=d):r++;if(!s){for(var s=o=0,d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1),l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,o++):this.repositionValid(t,i,l+1,m)?(d[l-i.minRank-1]=m,o++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)u=i.getX(l-1),m==u?(c[l-i.minRank-2]=m,s++):this.repositionValid(t,i,l-1,m)?(c[l-i.minRank-2]=m,s++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(s>r||o>r)if(s>=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o>s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,t,n,a){e=e.ranks[n];for(var i=-1,o=0;o<e.length;o++)if(t==e[o]){i=o;break}if(0>i)return!1;if(o=t.getGeneralPurposeVariable(n),a<o){if(0==i)return!0;if(e=e[i-1],n=e.getGeneralPurposeVariable(n),!((n=n+e.width/2+this.intraCellSpacing+t.width/2)<=a))return!1}else if(a>o){if(i==e.length-1)return!0;if(e=e[i+1],n=e.getGeneralPurposeVariable(n),!((n=n-e.width/2-this.intraCellSpacing-t.width/2)>=a))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,t){this.rankTopY=[],this.rankBottomY=[];for(var n=0;n<t.ranks.length;n++)this.rankTopY[n]=Number.MAX_VALUE,this.rankBottomY[n]=0;n=null,this.layout.resizeParent&&(n={});var a,i=t.edgeMapper,o=t.vertexMapper;for(a in o){s=o[a];if(this.setVertexLocation(s),this.layout.resizeParent){var s=e.model.getParent(s.cell),r=mxCellPath.create(s);null==n[r]&&(n[r]=s)}}this.layout.resizeParent&&null!=n&&this.adjustParents(n),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(t);for(a in i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var t,n=[];for(t in e)n.push(e[t]);this.layout.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var t=0;t<e.ranks.length;t++)for(var n=e.ranks[t],a=0;a<n.length;a++){var i=n[a];if(i.isVertex())for(var o=i.getPreviousLayerConnectedCells(t),s=t-1,r=0;2>r;r++){if(-1<s&&s<e.ranks.length&&null!=o&&0<o.length){for(var l=[],d=0;d<o.length;d++){var c=new WeightedCellSorter(o[d],o[d].getX(s));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);for(var m=(c=i.x[0]-i.width/2)+i.width,u=o=0,s=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var h=0;h<p.length;h++)p[h].source!=g&&p[h].target!=g||(o+=p[h].edges.length,u++,s.push(p[h]))}else o+=g.edges.length,u++,s.push(g)}for(i.width>(o+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/o)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<s.length;d++){for(g=s[d].edges.length,h=mxCellPath.create(s[d].edges[0]),null==(p=this.jettyPositions[h])&&(p=[],this.jettyPositions[h]=p),d<o/2?m+=this.prefVertEdgeOff:d>o/2&&(m-=this.prefVertEdgeOff),h=0;h<g;h++)p[4*h+2*r]=c,c+=l,p[4*h+2*r+1]=m;u=Math.max(u,m)}}o=i.getNextLayerConnectedCells(t),s=t+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var t=0;if(101207!=e.temp[0]){var n=e.maxRank,a=e.minRank;n==a&&(n=e.source.maxRank,a=e.target.minRank);for(var i=0,o=mxCellPath.create(e.edges[0]),o=this.jettyPositions[o],s=e.isReversed?e.target.cell:e.source.cell,r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=s&&(p=!p),null!=o){var g=p?2:0,h=p?this.rankTopY[a]:this.rankBottomY[n],v=o[4*i+1+g];p&&(v=-v),h+=v,g=o[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=r.view.getState(m),g=null!=g?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,h)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,h+v))):(u.push(new mxPoint(h,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(h+v,g)))}for(g=e.x.length-1,h=v=-1,c=e.maxRank-1,p&&(g=0,v=e.x.length,h=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=v;g+=h){var m=e.x[g]+t,b=(this.rankTopY[c]+this.rankBottomY[c+1])/2,f=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p)var E=b,b=f,f=E;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,b)),u.push(new mxPoint(m,f))):(u.push(new mxPoint(b,m)),u.push(new mxPoint(f,m))),this.limitX=Math.max(this.limitX,m),c+=h}null!=o&&(g=p?2:0,h=p?this.rankBottomY[n]:this.rankTopY[a],v=o[4*i+3-g],p&&(v=-v),h-=v,g=o[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=r.view.getState(p),g=null!=g?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,h-v)),u.push(new mxPoint(g,h))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(h-v,g)),u.push(new mxPoint(h,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),t=0==t?this.parallelEdgeSpacing:0<t?-t:-t+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var t=e.cell,n=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(t,n,a):this.layout.setVertexLocation(t,a,n),this.limitX=Math.max(this.limitX,n+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,t){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.weightedValue>e.weightedValue?-1:t.weightedValue<e.weightedValue?1:t.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,t){this.parent=e;var n=this.graph.model;if(this.edgesCache={},null!=t||null!=e){if(null!=t&&null!=e){for(var a=[],i=0;i<t.length;i++)n.isAncestor(e,t[i])&&a.push(t[i]);this.roots=a}else this.roots=t;n.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{n.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,t){var n=[];if(null!=e&&null!=t){var a,i=this.graph.model,o=null,s=-1e5;for(a in t){var r=t[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&n.push(r),(l=d-c)>s&&(s=l,o=r)}}0==n.length&&null!=o&&n.push(o)}return n},mxHierarchicalLayout.prototype.getEdges=function(e){var t=mxCellPath.create(e);if(null!=this.edgesCache[t])return this.edgesCache[t];for(var n=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),o=n.getChildCount(e),s=0;s<o;s++){var r=n.getChildAt(e,s);this.isPort(r)?a=a.concat(n.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(n.getEdges(r,!0,!0)))}for(a=a.concat(n.getEdges(e,!0,!0)),n=[],s=0;s<a.length;s++)i=this.getVisibleTerminal(a[s],!0),o=this.getVisibleTerminal(a[s],!1),(i==o||i!=o&&(o==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(o,this.parent,this.traverseAncestors))))&&n.push(a[s]);return this.edgesCache[t]=n},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,t){var n=null!=(n=this.graph.view.getState(e))?n.getVisibleTerminal(t):this.graph.view.getVisibleTerminal(e,t);return this.isPort(n)&&(n=this.graph.model.getParent(n)),n},mxHierarchicalLayout.prototype.run=function(e){var t=[],n=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,o=!0;for(i in a)if(null!=a[i]){o=!1;break}for(;!o;){for(var s=this.findRoots(e,a),o=0;o<s.length;o++){var r=[];t.push(r),this.traverse(s[o],!0,null,n,r,t,a)}for(o=0;o<s.length;o++)this.roots.push(s[o]);o=!0;for(i in a)if(null!=a[i]){o=!1;break}}}else for(o=0;o<roots.length;o++)r=[],t.push(r),traverse(roots.get(o),!0,null,n,r,t,null);for(o=n=0;o<t.length;o++){r=t[o],a=[];for(i in r)a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),n=this.placementStage(n,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,t){var n=this.graph.model;if(n.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(t[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=n.getChildCount(e),i=0;i<a;i++){var o=n.getChildAt(e,i);this.isPort(o)||this.filterDescendants(o,t)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;for(var a=this.getEdges(e),i=[],o=0;o<a.length;o++){var s=this.getVisibleTerminal(a[o],!0),r=this.getVisibleTerminal(a[o],!1);(s==e&&r==t||!n&&s==t&&r==e)&&i.push(a[o])}return i},mxHierarchicalLayout.prototype.traverse=function(e,t,n,a,i,o,s){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=s&&null==s[r]){if(null==i[r])for(n=0;n<o.length;n++)if(null!=(e=o[n])[r]){for(l in i)e[l]=i[l];return o.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete s[r];var l=this.getEdges(e);for(n=0;n<l.length;n++)r=this.getVisibleTerminal(l[n],!0)==e,(!t||r)&&(r=this.getVisibleTerminal(l[n],!r),i=this.traverse(r,t,l[n],a,i,o,s))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,t){var n=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return n.fineTuning=this.fineTuning,n.execute(t),n.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,t){n=null;if(null!=e)for(var n=[],a=0;a<e.length;a++)t(e[a])&&n.push(e[a]);return n},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,t){o=[];t=t||this.getRoot(),(null==e||e(t))&&o.push(t);for(var n=this.getChildCount(t),a=0;a<n;a++)var i=this.getChildAt(t,a),o=o.concat(this.filterDescendants(e,i));return o},mxGraphModel.prototype.getRoot=function(e){var t=e||this.root;if(null!=e)for(;null!=e;)t=e,e=this.getParent(e);return t},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var t=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),t},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,t){for(;null!=t&&t!=e;)t=this.getParent(t);return t==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,t,n){if(t!=e&&null!=e&&null!=t){null==n&&(n=this.getChildCount(e));var a=e!=this.getParent(t);this.execute(new mxChildChange(this,e,t,n)),this.maintainEdgeParent&&a&&this.updateEdgeParents(t)}return t},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId()&&(t=this.getCell(e.getId()))!=e){for(;null!=t;)e.setId(this.createId(e)),t=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var t=this.getChildCount(e),n=0;n<t;n++)this.cellAdded(this.getChildAt(e,n))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,t){t=t||this.getRoot(e);for(var n=this.getChildCount(e),a=0;a<n;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,t)}for(i=this.getEdgeCount(e),n=[],a=0;a<i;a++)n.push(this.getEdgeAt(e,a));for(a=0;a<n.length;a++)i=n[a],this.isAncestor(t,i)&&this.updateEdgeParent(i,t)},mxGraphModel.prototype.updateEdgeParent=function(e,t){for(var n=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=n&&!this.isEdge(n)&&null!=n.geometry&&n.geometry.relative;)n=this.getParent(n);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(t,n)&&this.isAncestor(t,a)&&null!=(i=n==a?this.getParent(n):this.getNearestCommonAncestor(n,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i){if(null!=(n=this.getGeometry(e))){var o=this.getOrigin(this.getParent(e)),s=this.getOrigin(i),a=s.x-o.x,o=s.y-o.y;(n=n.clone()).translate(-a,-o),this.setGeometry(e,n)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var t=null;return null!=e?(t=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(t.x+=e.x,t.y+=e.y)):t=new mxPoint,t},mxGraphModel.prototype.getNearestCommonAncestor=function(e,t){if(null!=e&&null!=t&&null!=(o=mxCellPath.create(t))&&0<o.length){var n=e,a=mxCellPath.create(n);if(o.length<a.length)var n=t,i=a,a=o,o=i;for(;null!=n;){if(i=this.getParent(n),0==o.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return n;a=mxCellPath.getParentPath(a),n=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var t=this.getChildCount(e)-1;0<=t;t--)this.cellRemoved(this.getChildAt(e,t));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,t,n){var a=this.getParent(e);return null!=t?(t!=a||a.getIndex(e)!=n)&&t.insert(e,n):null!=a&&(n=a.getIndex(e),a.remove(n)),this.contains(a)||null==t?null==t&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,t){return null!=e?e.getChildAt(t):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,t,n){t=null!=t&&t,n=null!=n&&n;for(var a=this.getChildCount(e),i=[],o=0;o<a;o++){var s=this.getChildAt(e,o);(!n&&!t||n&&this.isEdge(s)||t&&this.isVertex(s))&&i.push(s)}return i},mxGraphModel.prototype.getTerminal=function(e,t){return null!=e?e.getTerminal(t):null},mxGraphModel.prototype.setTerminal=function(e,t,n){var a=t!=this.getTerminal(e,n);return this.execute(new mxTerminalChange(this,e,t,n)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),t},mxGraphModel.prototype.setTerminals=function(e,t,n){this.beginUpdate();try{this.setTerminal(e,t,!0),this.setTerminal(e,n,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,t,n){var a=this.getTerminal(e,n);return null!=t?t.insertEdge(e,n):null!=a&&a.removeEdge(e,n),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,t){return null!=e?e.getEdgeAt(t):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,t,n){for(var a=0,i=this.getEdgeCount(e),o=0;o<i;o++){var s=this.getEdgeAt(e,o);s!=n&&this.getTerminal(s,t)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,t,n,a){t=null==t||t,n=null==n||n,a=null==a||a;for(var i=this.getEdgeCount(e),o=[],s=0;s<i;s++){var r=this.getEdgeAt(e,s),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(t&&d==e||n&&l==e))&&o.push(r)}return o},mxGraphModel.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;var a=this.getEdgeCount(e),i=this.getEdgeCount(t),o=e,s=a;for(i<a&&(s=i,o=t),a=[],i=0;i<s;i++){var r=this.getEdgeAt(o,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1),c=d==e&&l==t;(l==e&&d==t||!n&&c)&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,t,n,a){n=null==n||n,a=null==a||a;var i=[];if(null!=e)for(var o=0;o<e.length;o++){var s=this.getTerminal(e[o],!0),r=this.getTerminal(e[o],!1);s==t&&null!=r&&r!=t&&a?i.push(r):r==t&&null!=s&&s!=t&&n&&i.push(s)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var t=[],n=0;n<e.length;n++){for(var a=e[n],i=!0,o=this.getParent(a);null!=o;){if(0<=mxUtils.indexOf(e,o)){i=!1;break}o=this.getParent(o)}i&&t.push(a)}return t},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,t){return this.execute(new mxValueChange(this,e,t)),t},mxGraphModel.prototype.valueForCellChanged=function(e,t){return e.valueChanged(t)},mxGraphModel.prototype.getGeometry=function(e,t){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,t){return t!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,t)),t},mxGraphModel.prototype.geometryForCellChanged=function(e,t){var n=this.getGeometry(e);return e.setGeometry(t),n},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,t){return t!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,t)),t},mxGraphModel.prototype.styleForCellChanged=function(e,t){var n=this.getStyle(e);return e.setStyle(t),n},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,t){return t!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,t)),t},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,t){var n=this.isCollapsed(e);return e.setCollapsed(t),n},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,t){return t!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,t)),t},mxGraphModel.prototype.visibleStateForCellChanged=function(e,t){var n=this.isVisible(e);return e.setVisible(t),n},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(0==--this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,t,n){n=null==n||n,this.beginUpdate();try{var a={};this.mergeChildrenImpl(e,t,n,a);for(var i in a){var o=a[i],s=this.getTerminal(o,!0);null!=s&&(s=a[mxCellPath.create(s)],this.setTerminal(o,s,!0)),null!=(s=this.getTerminal(o,!1))&&(s=a[mxCellPath.create(s)],this.setTerminal(o,s,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,t,n,a){this.beginUpdate();try{for(var i=e.getChildCount(),o=0;o<i;o++){var s=e.getChildAt(o);if("function"==typeof s.getId){var r=s.getId(),l=null==r||this.isEdge(s)&&n?null:this.getCell(r);if(null==l){var d=s.clone();d.setId(r),d.setTerminal(s.getTerminal(!0),!0),d.setTerminal(s.getTerminal(!1),!1),l=t.insert(d),this.cellAdded(l)}a[mxCellPath.create(s)]=l,this.mergeChildrenImpl(s,l,n,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var t=[];if(null!=e)for(var n={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var o=mxCellPath.create(i);null==n[o]&&(n[o]=i,t.push(i))}}return t},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,t){for(var n={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],n,t)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],n);return a},mxGraphModel.prototype.cloneCellImpl=function(e,t,n){var a=this.cellCloned(e);if(t[mxObjectIdentity.get(e)]=a,n){n=this.getChildCount(e);for(var i=0;i<n;i++){var o=this.cloneCellImpl(this.getChildAt(e,i),t,!0);a.insert(o)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,t,n){null!=(a=this.getTerminal(t,!0))&&null!=(a=n[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0),null!=(a=this.getTerminal(t,!1))&&null!=(a=n[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1);for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(t,i),n)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),t=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=t},mxChildChange.prototype.connect=function(e,t){t=null==t||t;var n=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=n&&(t?this.model.terminalForCellChanged(e,n,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(t?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(n,!0),e.setTerminal(a,!1),n=this.model.getChildCount(e),a=0;a<n;a++)this.connect(this.model.getChildAt(e,a),t)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var t=this.getValue();return this.setValue(e),t},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,t){return t?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,t){return null!=e&&(null==t&&(t=this.getChildCount(),e.getParent()==this&&t--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(t,0,e)),e},mxCell.prototype.remove=function(e){var t=null;return null!=this.children&&0<=e&&null!=(t=this.getChildAt(e))&&(this.children.splice(e,1),t.setParent(null)),t},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,t){return null!=e&&(e.removeFromTerminal(t),e.setTerminal(this,t),null==this.edges||e.getTerminal(!t)!=this||0>mxUtils.indexOf(this.edges,e))&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,t){if(null!=e){if(e.getTerminal(!t)!=this&&null!=this.edges){var n=this.getEdgeIndex(e);0<=n&&this.edges.splice(n,1)}e.setTerminal(null,t)}return e},mxCell.prototype.removeFromTerminal=function(e){var t=this.getTerminal(e);null!=t&&t.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,t){var n=this.getValue();return(null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT?n.getAttribute(e):null)||t},mxCell.prototype.setAttribute=function(e,t){var n=this.getValue();null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT&&n.setAttribute(e,t)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,t){return t?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,t){if(this.clone(),this.relative||(this.x+=e,this.y+=t),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=t),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=t),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var n=this.points.length,a=0;a<n;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=t)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var t="";if(null!=e)for(var n=e.getParent();null!=n;)t=n.getIndex(e)+mxCellPath.PATH_SEPARATOR+t,e=n,n=e.getParent();return 1<(e=t.length)&&(t=t.substring(0,e-1)),t},getParentPath:function(e){if(null!=e){var t=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=t)return e.substring(0,t);if(0<e.length)return""}return null},resolve:function(e,t){var n=e;if(null!=t)for(var a=t.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)n=n.getChildAt(parseInt(a[i]));return n},compare:function(e,t){for(var n=Math.min(e.length,t.length),a=0,i=0;i<n;i++)if(e[i]!=t[i]){0==e[i].length||0==t[i].length?a=e[i]==t[i]?0:e[i]>t[i]?1:-1:(n=parseInt(e[i]),i=parseInt(t[i]),a=n==i?0:n>i?1:-1);break}return 0==a&&(n=e.length,i=t.length,n!=i&&(a=n>i?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,t,n,a){t=e.getCenterX();var i=e.getCenterY(),o=Math.atan2(n.y-i,n.x-t),s=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-o,d=Math.atan2(e.height,e.width);return o<-r+d||o>r-d?(s.x=e.x,s.y=i-e.width*Math.tan(o)/2):o<-d?(s.y=e.y,s.x=t-e.height*Math.tan(l)/2):o<d?(s.x=e.x+e.width,s.y=i+e.width*Math.tan(o)/2):(s.y=e.y+e.height,s.x=t+e.height*Math.tan(l)/2),a&&(n.x>=e.x&&n.x<=e.x+e.width?s.x=n.x:n.y>=e.y&&n.y<=e.y+e.height&&(s.y=n.y),n.x<e.x?s.x=e.x:n.x>e.x+e.width&&(s.x=e.x+e.width),n.y<e.y?s.y=e.y:n.y>e.y+e.height&&(s.y=e.y+e.height)),s},EllipsePerimeter:function(e,t,n,a){var i=e.x,o=e.y,s=e.width/2,r=e.height/2,l=i+s,d=o+r;t=n.x,n=n.y;var c=parseInt(t-l),m=parseInt(n-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(t,n);if(a){if(n>=o&&n<=o+e.height)return e=n-d,e=Math.sqrt(s*s*(1-e*e/(r*r)))||0,t<=i&&(e=-e),new mxPoint(l+e,n);if(t>=i&&t<=i+e.width)return e=t-l,e=Math.sqrt(r*r*(1-e*e/(s*s)))||0,n<=o&&(e=-e),new mxPoint(t,d+e)}return i=m/c,d-=i*l,o=s*s*i*i+r*r,e=-2*l*o,r=Math.sqrt(e*e-4*o*(s*s*i*i*l*l+r*r*l*l-s*s*r*r)),s=(-e+r)/(2*o),r=(-e-r)/(2*o),l=i*s+d,d=i*r+d,i=Math.sqrt(Math.pow(s-t,2)+Math.pow(l-n,2)),t=Math.sqrt(Math.pow(r-t,2)+Math.pow(d-n,2)),o=n=0,i<t?(n=s,o=l):(n=r,o=d),new mxPoint(n,o)},RhombusPerimeter:function(e,t,n,a){t=e.x;var i=e.y,o=e.width,s=t+o/2,r=i+(e=e.height)/2,l=n.x;if(n=n.y,s==l)return r>n?new mxPoint(s,i):new mxPoint(s,i+e);if(r==n)return s>l?new mxPoint(t,r):new mxPoint(t+o,r);var d=s,c=r;return a&&(l>=t&&l<=t+o?d=l:n>=i&&n<=i+e&&(c=n)),l<s?n<r?mxUtils.intersection(l,n,d,c,s,i,t,r):mxUtils.intersection(l,n,d,c,s,i+e,t,r):n<r?mxUtils.intersection(l,n,d,c,s,i,t+o,r):mxUtils.intersection(l,n,d,c,s,i+e,t+o,r)},TrianglePerimeter:function(e,t,n,a){var i=(t=null!=t?t.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_SOUTH,o=e.x,s=e.y,r=e.width,l=o+r/2,d=s+(e=e.height)/2,c=new mxPoint(o,s),m=new mxPoint(o+r,d),u=new mxPoint(o,s+e);t==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,s),u=new mxPoint(o+r,s+e)):t==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,s+e),u=new mxPoint(o+r,s)):t==mxConstants.DIRECTION_WEST&&(c=new mxPoint(o+r,s),m=new mxPoint(o,d),u=new mxPoint(o+r,s+e));var p=n.x-l,g=n.y-d,p=i?Math.atan2(p,g):Math.atan2(g,p),h=i?Math.atan2(r,e):Math.atan2(e,r),g=!1,g=t==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_WEST?p>-h&&p<h:p<-Math.PI+h||p>Math.PI-h,h=null;return g?h=a&&(i&&n.x>=c.x&&n.x<=u.x||!i&&n.y>=c.y&&n.y<=u.y)?i?new mxPoint(n.x,c.y):new mxPoint(c.x,n.y):t==mxConstants.DIRECTION_NORTH?new mxPoint(o+r/2+e*Math.tan(p)/2,s+e):t==mxConstants.DIRECTION_SOUTH?new mxPoint(o+r/2-e*Math.tan(p)/2,s):t==mxConstants.DIRECTION_WEST?new mxPoint(o+r,s+e/2+r*Math.tan(p)/2):new mxPoint(o,s+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),n.y>=s&&n.y<=s+e?(a.x=i?l:t==mxConstants.DIRECTION_WEST?o+r:o,a.y=n.y):n.x>=o&&n.x<=o+r&&(a.x=n.x,a.y=i?t==mxConstants.DIRECTION_NORTH?s+e:s:d),l=a.x,d=a.y),h=i&&n.x<=o+r/2||!i&&n.y<=s+e/2?mxUtils.intersection(n.x,n.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(n.x,n.y,l,d,m.x,m.y,u.x,u.y)),null==h&&(h=new mxPoint(l,d)),h}};mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var t=this.graph.cellRenderer.initializeOverlay,n=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,t){t.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var o=this.graph.getGraphBounds().clone(),s=this.graph.getView().getScale(),r=s/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,o.width+=o.x,o.height+=o.y,o.x=0,this.border=o.y=0),o.width/=r,o.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((o.width+this.x0)/d)),u=Math.max(1,Math.ceil((o.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var t=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){t()}),mxEvent.addListener(this.wnd,"resize",function(e){t()})}}});if(e=function(e,t){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",t&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),t){var n=a.createElement("hr");n.className="mxPageBreak",a.body.appendChild(n)}},null!=(b=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(h=0;h<b.length;h++)e(b[h],!0);for(var g=this.getAppendices(this.pageFormat.width,this.pageFormat.height),h=0;h<u;h++)for(var v=h*c/this.scale-this.y0/this.scale+(o.y-l.y*s)/s,b=0;b<m;b++){if(null==this.wnd)return null;var f=b*d/this.scale-this.x0/this.scale+(o.x-l.x*s)/s,E=h*m+b+1;(n=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-f,-v,this.scale,E,e)}))).setAttribute("id","mxPage-"+E),e(n,null!=g||h<u-1||b<m-1)}if(null!=g)for(h=0;h<g.length;h++)e(g[h],h<g.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n)}finally{this.graph.cellRenderer.initializeOverlay=t}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,t){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("  table.mxPageSelector { display: none; }"),e.writeln("  hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln("  table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln("  table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln("  body.mxPage { background: gray; }"),e.writeln("}"),null!=t&&e.writeln(t),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,t){var n=this.wnd.document,a=n.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=n.createElement("tbody"),o=0;o<e;o++){for(var s=n.createElement("tr"),r=0;r<t;r++){var l=o*t+r+1,d=n.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=n.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,n),d.appendChild(c)}else mxUtils.write(d,l,n);s.appendChild(d)}i.appendChild(s)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,t,n){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=t+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=t-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),n(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,t,n,a,i){a=this.graph.getView();var o=this.graph.container;this.graph.container=i;var s=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,t),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,n,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(n=i.firstChild;null!=n;)p=n.nextSibling,t=n.nodeName.toLowerCase(),"svg"==t?(n.setAttribute("width",parseInt(i.style.width)),n.setAttribute("height",parseInt(i.style.height))):"default"!=n.style.cursor&&"table"!=t&&n.parentNode.removeChild(n),n=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=o,a.canvas=s,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,t){this.styles[e]=t},mxStylesheet.prototype.getCellStyle=function(e,t){a=t;if(null!=e&&0<e.length)for(var n=e.split(";"),a=null!=a&&";"!=e.charAt(0)?mxUtils.clone(a):{},i=0;i<n.length;i++){var o=n[i],s=o.indexOf("=");if(0<=s){var r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete a[r]:mxUtils.isNumeric(o)?a[r]=parseFloat(o):a[r]=o}else if(null!=(o=this.styles[o]))for(r in o)a[r]=o[r]}return a},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,t){if(e=e||0,t=null!=t?t:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var n=this.shape.stencil.computeAspect(this.style,t.x,t.y,t.width,t.height);t.x=n.x,t.y=n.y,t.width=this.shape.stencil.w0*n.width,t.height=this.shape.stencil.h0*n.height}return 0!=e&&t.grow(e),t},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,t){t?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return e=this.getVisibleTerminalState(e),null!=e?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,t){t?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var t=0;t<this.absolutePoints.length;t++)e.absolutePoints[t]=this.absolutePoints[t].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var t=[],n=0;n<e.length;n++)this.graph.isCellSelectable(e[n])&&t.push(e[n]);this.changeSelection(t,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var t=0;t<e.length;t++)if(this.graph.isCellSelectable(e[t]))return e[t];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var t=null;this.singleSelection&&(t=this.cells,e=[this.getFirstSelectableCell(e)]);for(var n=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&n.push(e[a]);this.changeSelection(n,t)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var t=[],n=0;n<e.length;n++)this.isSelected(e[n])&&t.push(e[n]);this.changeSelection(null,t)}},mxGraphSelectionModel.prototype.changeSelection=function(e,t){if(null!=e&&0<e.length&&null!=e[0]||null!=t&&0<t.length&&null!=t[0]){var n=new mxSelectionChange(this,e,t);n.execute();var a=new mxUndoableEdit(this,!1);a.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1)},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var t=0;t<this.removed.length;t++)this.selectionModel.cellRemoved(this.removed[t]);if(null!=this.added)for(t=0;t<this.added.length;t++)this.selectionModel.cellAdded(this.added[t]);t=this.added,this.added=this.removed,this.removed=t,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),t=this.graph.isLabelClipped(e.cell),n=this.graph.isWrapping(e.cell);this.graph.getModel().isEdge(e.cell)?(this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0):null!=this.bounds&&(this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)),"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+="&nbsp;"),a=mxUtils.htmlEntities(a,!1),n?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g,"&nbsp;"),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16,a=Math.max(a,40),i=Math.max(i,20);t&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var o=null!=e.text?e.text.margin:null;null==o&&(o=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getAlignmentAsPoint(o,e)),null!=o&&(!t&&n||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-o.x*this.bounds.width+o.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-o.y*this.bounds.height+o.y*i)+4)+"px"),!t&&n||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,t){null==this.textarea&&this.init(),this.stopEditing(!0);var n=this.graph.getView().getState(e);if(null!=n){this.editingCell=e,this.trigger=t,this.textNode=null,null!=n.text&&this.isHideLabel(n)&&(this.textNode=n.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,a=mxUtils.getValue(n.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,i=mxUtils.getValue(n.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),o=mxUtils.getValue(n.style,mxConstants.STYLE_FONTCOLOR,"black"),s=mxUtils.getValue(n.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=s,this.textarea.style.color=o,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(n),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(n=this.getInitialValue(n,t))||0==n.length?(n=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=n,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),t=e.style;return t.position="absolute",t.whiteSpace="nowrap",t.visibility="hidden",t.display=mxClient.IS_QUIRKS?"inline":"inline-block",t.zoom="1",t.verticalAlign="top",t.lineHeight=this.textarea.style.lineHeight,t.fontSize=this.textarea.style.fontSize,t.fontFamily=this.textarea.style.fontFamily,t.fontWeight=this.textarea.style.fontWeight,t.textAlign=this.textarea.style.textAlign,t.fontStyle=this.textarea.style.fontStyle,t.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,t){return this.graph.getEditingValue(e.cell,t)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var t=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*t+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var t=this.graph.getModel().isEdge(e.cell),n=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,o=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*n,s=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*n+o,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*n+o,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*n+o,n=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*n+o,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-n-r),Math.max(i,e.height-s-l));return t?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=n,r.y+=s,null!=e.text&&null!=e.text.boundingBox&&(t?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&(t=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),t==mxConstants.ALIGN_LEFT?r.x-=e.width:t==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),t=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),t==mxConstants.ALIGN_TOP?r.y-=e.height:t==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,t){mxCellRenderer.prototype.defaultShapes[e]=t},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,t){var n=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(n.isVertex(e.cell)||n.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=t&&!t||(this.initializeShape(e),e.view.graph.ordered||n.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,t){for(var n=null,a=e.view.graph,i=a.getModel(),o=e.cell,s=i.getParent(o);null!=s&&null==n;)n=this.findPreviousStateInContainer(a,s,o,t),o=s,s=i.getParent(o);return n},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,t,n,a){var i=null,o=e.getModel();for(n=null!=n?t.getIndex(n)-1:o.getChildCount(t)-1;0<=n&&null==i;n--)i=this.findPreviousStateInContainer(e,o.getChildAt(t,n),null,a);return null!=i||null==(i=e.view.getState(t))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a||(i=null),i},mxCellRenderer.prototype.order=function(e){var t=e.shape.node.parentNode,n=this.getPreviousStateInContainer(e,t),a=t.firstChild;null!=n&&(a=n.shape.node,null!=n.text&&null!=n.text.node&&n.text.node.parentNode==t&&(a=n.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var t=e.view,n=t.graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var a=e.shape.node,i=a.parentNode,n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,t){e.shape.node.parentNode.insertBefore(e.shape.node,t),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var t=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=t?e.shape=new mxShape(t):(t=this.getShapeConstructor(e),e.shape=new t),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var t=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==t&&(t=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),t},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,t,n){var a=e.shape[t],i=e.view.graph,o=null;"inherit"==a?o=i.model.getParent(e.cell):"swimlane"==a?(o=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,o=i.getSwimlane(o),n=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[t]=e.shape.indicatorColor),null!=o&&(a=i.getView().getState(o),e.shape[t]=null,null!=a&&(e.shape[t]=null!=a.shape&&"indicatorColor"!=t?a.shape[t]:a.style[n]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(e,t){var n=e.view.graph;if(n.getModel().isEdge(e.cell),0<e.style[mxConstants.STYLE_FONTSIZE]||null==e.style[mxConstants.STYLE_FONTSIZE]){var a=n.isHtmlLabel(e.cell)||null!=t&&mxUtils.isNode(t);e.text=new this.defaultTextShape(t,new mxRectangle,e.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,n.getVerticalAlign(e),e.style[mxConstants.STYLE_FONTCOLOR],e.style[mxConstants.STYLE_FONTFAMILY],e.style[mxConstants.STYLE_FONTSIZE],e.style[mxConstants.STYLE_FONTSTYLE],e.style[mxConstants.STYLE_SPACING],e.style[mxConstants.STYLE_SPACING_TOP],e.style[mxConstants.STYLE_SPACING_RIGHT],e.style[mxConstants.STYLE_SPACING_BOTTOM],e.style[mxConstants.STYLE_SPACING_LEFT],e.style[mxConstants.STYLE_HORIZONTAL],e.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],e.style[mxConstants.STYLE_LABEL_BORDERCOLOR],n.isWrapping(e.cell)&&n.isHtmlLabel(e.cell),n.isLabelClipped(e.cell),e.style[mxConstants.STYLE_OVERFLOW],e.style[mxConstants.STYLE_LABEL_PADDING]),e.text.opacity=mxUtils.getValue(e.style,mxConstants.STYLE_TEXT_OPACITY,100),e.text.dialect=a?mxConstants.DIALECT_STRICTHTML:e.view.graph.dialect,e.text.state=e,this.initializeLabel(e);var i=!1,o=function(t){var a=e;return(mxClient.IS_TOUCH||i)&&(a=mxEvent.getClientX(t),t=mxEvent.getClientY(t),t=mxUtils.convertPoint(n.container,a,t),a=n.view.getState(n.getCellAt(t.x,t.y))),a};mxEvent.addGestureListeners(e.text.node,mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,e)),i=n.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(t).nodeName)}),mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&n.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,o(t)))}),mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t,o(t))),i=!1)})),mxEvent.addListener(e.text.node,"dblclick",mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.dblClick(t,e.cell),mxEvent.consume(t))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var t=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(t.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var t=e.view.graph.getCellOverlays(e.cell),n=null;if(null!=t)for(var n=new mxDictionary,a=0;a<t.length;a++){var i=null!=e.overlays?e.overlays.remove(t[a]):null;null==i&&(i=new mxImageShape(new mxRectangle,t[a].image.src),i.dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=t[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,t[a],i),null!=t[a].cursor&&(i.node.style.cursor=t[a].cursor)),n.put(t[a],i)}null!=e.overlays&&e.overlays.visit(function(e,t){t.destroy()}),e.overlays=n},mxCellRenderer.prototype.initializeOverlay=function(e,t){t.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(e,t,n){var a=e.view.graph;mxEvent.addListener(n.node,"click",function(n){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",e.cell))}),mxEvent.addGestureListeners(n.node,function(e){mxEvent.consume(e)},function(t){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,e))}),mxClient.IS_TOUCH&&mxEvent.addListener(n.node,"touchend",function(n){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",e.cell))})},mxCellRenderer.prototype.createControl=function(e){var t=e.view.graph,n=t.getFoldingImage(e);if(t.foldingEnabled&&null!=n){if(null==e.control){var a=new mxRectangle(0,0,n.width,n.height);e.control=new mxImageShape(a,n.src),e.control.preserveImageAspect=!1,e.control.dialect=t.dialect,this.initControl(e,e.control,!0,function(n){if(t.isEnabled()){var a=!t.isCellCollapsed(e.cell);t.foldCells(a,!1,[e.cell]),mxEvent.consume(n)}})}}else null!=e.control&&(e.control.destroy(),e.control=null)},mxCellRenderer.prototype.initControl=function(e,t,n,a){var i=e.view.graph;return i.isHtmlLabel(e.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(t.dialect=mxConstants.DIALECT_PREFERHTML,t.init(i.container),t.node.style.zIndex=1):t.init(e.view.getOverlayPane()),t=t.innerNode||t.node,a&&(i.isEnabled()&&(t.style.cursor="pointer"),mxEvent.addListener(t,"click",a)),n&&mxEvent.addGestureListeners(t,function(t){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,e)),mxEvent.consume(t)},function(t){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,e))}),t},mxCellRenderer.prototype.isShapeEvent=function(e,t){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,t){return!0},mxCellRenderer.prototype.installListeners=function(e){var t=e.view.graph,n=function(n){var a=e;return(t.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(n).nodeName||mxClient.IS_TOUCH)&&(a=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(t.container,a,n),a=t.view.getState(t.getCellAt(n.x,n.y))),a},a=!1;mxEvent.addListener(e.shape.node,"gesturestart",mxUtils.bind(this,function(e){t.lastTouchTime=0,a=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(e.shape.node,mxUtils.bind(this,function(n){this.isShapeEvent(e,n)&&!a?t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(n,null!=e.shape&&mxEvent.getSource(n)==e.shape.content?null:e)):a&&mxEvent.consume(n)}),mxUtils.bind(this,function(i){this.isShapeEvent(e,i)&&!a?t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(i,null!=e.shape&&mxEvent.getSource(i)==e.shape.content?null:n(i))):a&&mxEvent.consume(i)}),mxUtils.bind(this,function(i){this.isShapeEvent(e,i)&&!a?t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(i,null!=e.shape&&mxEvent.getSource(i)==e.shape.content?null:n(i))):a&&mxEvent.consume(i)}));var i=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(e.shape.node,i,mxUtils.bind(this,function(n){a=!1,"gestureend"==i?(t.lastTouchTime=0,t.gestureEnabled&&(t.handleGesture(e,n),mxEvent.consume(n))):this.isShapeEvent(e,n)&&(t.dblClick(n,null!=e.shape&&mxEvent.getSource(n)==e.shape.content?null:e.cell),mxEvent.consume(n))}))},mxCellRenderer.prototype.redrawLabel=function(e,t){var n=this.getLabelValue(e);if(null==e.text&&null!=n&&(mxUtils.isNode(n)||0<n.length)?this.createLabel(e,n):null==e.text||null!=n&&0!=n.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),o=this.getLabelBounds(e);!t&&e.text.value==n&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(o)||(e.text.value=n,e.text.bounds=o,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var t=e.view.graph,n=e.view.scale,a=t.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*n,i.y+=a.y*n,null!=(t=t.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*t.width*n-e.text.spacingLeft*n-e.text.spacingRight*n),i.height=Math.max(0,e.text.margin.y*t.height*n-e.text.spacingTop*n-e.text.spacingBottom*n))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),t.isSwimlane(e.cell)&&(t=t.getStartSize(e.cell),0<t.width?(a=Math.min(i.width,t.width*n),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<t.height&&(a=Math.min(i.height,t.height*n),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,t){if(e.text.isPaintBoundsInverted()){n=(e.width-e.height)/2;t.x+=n,t.y-=n,n=t.width,t.width=t.height,t.height=n}if(t.x-=e.text.margin.x*t.width,t.y-=e.text.margin.y*t.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){var n=e.view.scale,a=e.text.getSpacing();t.x+=a.x*n,t.y+=a.y*n,t.width=Math.max(0,t.width-e.text.spacingLeft*n-e.text.spacingRight*n),t.height=Math.max(0,t.height-e.text.spacingTop*n-e.text.spacingBottom*n)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(n=e.getCenterX(),a=e.getCenterY(),t.x!=n||t.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),Math.cos(i),Math.sin(i),new mxPoint(n,a)),t.x=pt.x,t.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(e,t){if(this.createCellOverlays(e),null!=e.overlays){var n=mxUtils.mod(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),90),a=mxUtils.toRadians(n),i=Math.cos(a),o=Math.sin(a);e.overlays.visit(function(a,s){var r=s.overlay.getBounds(e);if(!e.view.graph.getModel().isEdge(e.cell)&&null!=e.shape&&0!=n){var l=r.getCenterX(),d=r.getCenterY(),l=(d=mxUtils.getRotatedPoint(new mxPoint(l,d),i,o,new mxPoint(e.getCenterX(),e.getCenterY()))).x,d=d.y;r.x=Math.round(l-r.width/2),r.y=Math.round(d-r.height/2)}!t&&null!=s.bounds&&s.scale==e.view.scale&&s.bounds.equals(r)||(s.bounds=r,s.scale=e.view.scale,s.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,t){if(null!=e.control){var n=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!t&&e.control.scale==i&&e.control.bounds.equals(n)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=n,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null!=e.control){var t=e.control.scale,n=e.control.bounds.width/t,t=e.control.bounds.height/t,a=e.view.scale,i=e.getCenterX(),o=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+n*a,o=e.y+t*a,null!=e.shape)){var s=e.shape.getShapeRotation();if(this.legacyControlPosition)s=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted())var r=(e.width-e.height)/2,i=i+r,o=o-r;0!=s&&(r=mxUtils.toRadians(s),s=Math.cos(r),r=Math.sin(r),o=mxUtils.getRotatedPoint(new mxPoint(i,o),s,r,new mxPoint(e.getCenterX(),e.getCenterY())),i=o.x,o=o.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-n/2*a),Math.round(o-t/2*a),Math.round(n*a),Math.round(t*a))}return null},mxCellRenderer.prototype.redraw=function(e,t,n){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=t&&t,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),t=!0),delete e.invalidOrder,delete e.orderChanged,!t&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==n||n?e.shape.redraw():e.shape.updateBoundingBox()),(null==n||n)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,t){t.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,t,n,a,i){var o=e.view,s=o.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*o.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)t=new mxCellState,t.x=r.x,t.y=r.y;else{if(null==t)return;var c=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=s.getCellGeometry(t.cell),r.relative?d=.5>=r.x:null!=n&&(d=n.x+n.width<t.x))}r=!0,null!=l?(n=new mxCellState,n.x=l.x,n.y=l.y):null!=n&&(c=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_NONE),c!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=s.getCellGeometry(n.cell),e.relative?r=.5>=e.x:null!=t&&(r=t.x+t.width<n.x))),null!=t&&null!=n&&(e=d?t.x:t.x+t.width,t=o.getRoutingCenterY(t),s=r?n.x:n.x+n.width,n=o.getRoutingCenterY(n),o=new mxPoint(e+(d?-a:a),t),l=new mxPoint(s+(r?-a:a),n),d==r?(a=d?Math.min(e,s)-a:Math.max(e,s)+a,i.push(new mxPoint(a,t)),i.push(new mxPoint(a,n))):(o.x<l.x==d?(a=t+(n-t)/2,i.push(o),i.push(new mxPoint(o.x,a)),i.push(new mxPoint(l.x,a))):i.push(o),i.push(l)))},Loop:function(e,t,n,a,i){if(null!=t){d=(n=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=n.transformControlPoint(e,a),mxUtils.contains(t,a.x,a.y)&&(a=null));var o=0,s=0,r=0,l=0,d=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,d.gridSize)*n.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=n.getRoutingCenterX(t),s=d):(r=n.getRoutingCenterY(t),l=d),null==a||a.x<t.x||a.x>t.x+t.width?null!=a?(o=a.x,l=Math.max(Math.abs(r-a.y),l)):e==mxConstants.DIRECTION_NORTH?r=t.y-2*s:e==mxConstants.DIRECTION_SOUTH?r=t.y+t.height+2*s:o=e==mxConstants.DIRECTION_EAST?t.x-2*l:t.x+t.width+2*l:null!=a&&(o=n.getRoutingCenterX(t),s=Math.max(Math.abs(o-a.x),l),r=a.y,l=0),i.push(new mxPoint(o-s,r-l)),i.push(new mxPoint(o+s,r+l))}},ElbowConnector:function(e,t,n,a,i){var o=null!=a&&0<a.length?a[0]:null,s=!1,r=!1;if(null!=t&&null!=n)if(null!=o)var l=Math.min(t.x,n.x),d=Math.max(t.x+t.width,n.x+n.width),r=Math.min(t.y,n.y),c=Math.max(t.y+t.height,n.y+n.height),o=e.view.transformControlPoint(e,o),s=o.y<r||o.y>c,r=o.x<l||o.x>d;else l=Math.max(t.x,n.x),d=Math.min(t.x+t.width,n.x+n.width),(s=l==d)||(r=Math.max(t.y,n.y),c=Math.min(t.y+t.height,n.y+n.height),r=r==c);r||!s&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,t,n,a,i):mxEdgeStyle.TopToBottom(e,t,n,a,i)},SideToSide:function(e,t,n,a,i){var o=e.view;a=null!=a&&0<a.length?a[0]:null;var s=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=o.transformControlPoint(e,a)),null!=s&&(t=new mxCellState,t.x=s.x,t.y=s.y),null!=r&&(n=new mxCellState,n.x=r.x,n.y=r.y),null!=t&&null!=n&&(e=Math.max(t.x,n.x),s=Math.min(t.x+t.width,n.x+n.width),e=null!=a?a.x:s+(e-s)/2,s=o.getRoutingCenterY(t),o=o.getRoutingCenterY(n),null!=a&&(a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y),a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y)),!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),!mxUtils.contains(n,e,o)&&!mxUtils.contains(t,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a?!mxUtils.contains(n,e,a.y)&&!mxUtils.contains(t,e,a.y)&&i.push(new mxPoint(e,a.y)):(o=Math.max(t.y,n.y),t=Math.min(t.y+t.height,n.y+n.height),i.push(new mxPoint(e,o+(t-o)/2)))))},TopToBottom:function(e,t,n,a,i){var o=e.view;a=null!=a&&0<a.length?a[0]:null;var s=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=o.transformControlPoint(e,a)),null!=s&&(t=new mxCellState,t.x=s.x,t.y=s.y),null!=r&&(n=new mxCellState,n.x=r.x,n.y=r.y),null!=t&&null!=n&&(s=Math.max(t.y,n.y),r=Math.min(t.y+t.height,n.y+n.height),e=o.getRoutingCenterX(t),null!=a&&a.x>=t.x&&a.x<=t.x+t.width&&(e=a.x),s=null!=a?a.y:r+(s-r)/2,!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),e=null!=a&&a.x>=n.x&&a.x<=n.x+n.width?a.x:o.getRoutingCenterX(n),!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(n,a.x,s)&&!mxUtils.contains(t,a.x,s)&&i.push(new mxPoint(a.x,s)):(o=Math.max(t.x,n.x),t=Math.min(t.x+t.width,n.x+n.width),i.push(new mxPoint(o+(t-o)/2,s)))))},SegmentConnector:function(e,t,n,a,i){var o=e.absolutePoints,s=!0,r=null,l=o[0];null==l&&null!=t?l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t)):null!=l&&(l=l.clone());var d=o.length-1;if(null!=a&&0<a.length){for(var r=e.view.transformControlPoint(e,a[0]),c=t,m=o[0],u=!1,p=!1,u=r,g=a.length,h=0;2>h;h++){var v=null!=m&&m.x==u.x,b=null!=m&&m.y==u.y,f=null!=c&&u.y>=c.y&&u.y<=c.y+c.height,c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=b||null==m&&f,p=v||null==m&&c;if(null!=m&&!b&&!v&&(f||c)){s=!f;break}if(p||u){s=u,1==h&&(s=0==a.length%2?u:p);break}c=n,m=o[d],u=e.view.transformControlPoint(e,a[g-1])}for(s&&(null!=o[0]&&o[0].y!=r.y||null==o[0]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!s&&(null!=o[0]&&o[0].x!=r.x||null==o[0]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),s?l.y=r.y:l.x=r.x,h=0;h<a.length;h++)s=!s,r=e.view.transformControlPoint(e,a[h]),s?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,s=!0;if(null==(l=o[d])&&null!=n&&(l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n))),s&&(null!=o[d]&&o[d].y!=r.y||null==o[d]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!s&&(null!=o[d]&&o[d].x!=r.x||null==o[d]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),null==o[0]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[1].x,i[1].y);)i=i.splice(1,1);if(null==o[d]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,t,n,a,i){var o=e.view.graph,s=null!=t&&o.getModel().isEdge(t.cell),o=null!=n&&o.getModel().isEdge(n.cell);if(null!=a&&0<a.length||s||o)mxEdgeStyle.SegmentConnector(e,t,n,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=t?t.x:r.x;var s=null!=t?t.y:r.y,d=null!=t?t.width:1,c=null!=t?t.height:1,m=null!=n?n.x:l.x,u=null!=n?n.y:l.y,p=null!=n?n.width:1,g=null!=n?n.height:1,o=e.view.scale*mxEdgeStyle.orthBuffer,h=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];for(null!=t&&(h[0]=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=n&&(h[1]=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,s,d,c],[m,u,p,g]],d=0;2>d;d++)mxEdgeStyle.limits[d][1]=a[d][0]-o,mxEdgeStyle.limits[d][2]=a[d][1]-o,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+o,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+o;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),s=0,0>d?s=0>c?2:1:0>=c&&(s=3,0==d&&(s=2)),c=null,null!=t&&(c=r),t=[[.5,.5],[.5,.5]],d=0;2>d;d++)null!=c&&(t[d][0]=(c.x-a[d][0])/a[d][2],.01>t[d][0]?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<t[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),t[d][1]=(c.y-a[d][1])/a[d][3],.01>t[d][1]?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<t[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),c=null,null!=n&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*o,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*o,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*o,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*o,0),n=[],l=[],(r=[])[0]=c>=u?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=d>=m?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=c>=u?c:u,m=d>=m?d:m,u=[[0,0],[0,0]],p=!1,d=0;2>d;d++)0==e[d]&&(0==(r[d]&h[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&h[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(m>2*o&&c>2*o&&(0<(r[0]&h[0])&&0<(l[1]&h[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&h[0])&&0<(r[1]&h[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),m>2*o&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),c>2*o&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;2>d;d++)0==e[d]&&(0==(u[d][0]&h[d])&&(u[d][0]=u[d][1]),n[d]=u[d][0]&h[d],n[d]|=(u[d][1]&h[d])<<8,n[d]|=(u[1-d][d]&h[d])<<16,n[d]|=(u[1-d][1-d]&h[d])<<24,0==(15&n[d])&&(n[d]<<=8),0==(3840&n[d])&&(n[d]=15&n[d]|n[d]>>8),0==(983040&n[d])&&(n[d]=65535&n[d]|(251658240&n[d])>>8),e[d]=15&n[d],h[d]==mxConstants.DIRECTION_MASK_WEST||h[d]==mxConstants.DIRECTION_MASK_NORTH||h[d]==mxConstants.DIRECTION_MASK_EAST||h[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=h[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],h=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],d-=s,h-=s,1>d&&(d+=4),1>h&&(h+=4),h=mxEdgeStyle.routePatterns[d-1][h-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=o,mxEdgeStyle.wayPoints1[0][1]+=t[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=t[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+o;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+o,mxEdgeStyle.wayPoints1[0][1]+=t[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=t[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=o}for(o=0,r=n=0<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<h.length;d++){g=(l=15&h[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=s)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=n&&(o++,mxEdgeStyle.wayPoints1[o][0]=mxEdgeStyle.wayPoints1[o-1][0],mxEdgeStyle.wayPoints1[o][1]=mxEdgeStyle.wayPoints1[o-1][1]);var v=0<(h[d]&mxEdgeStyle.TARGET_MASK),p=0<(h[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(h[d]&mxEdgeStyle.SIDE_MASK)>>5)<<s)&&(m>>=4),u=0<(h[d]&mxEdgeStyle.CENTER_MASK),(p||v)&&9>m?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+t[p][0]*a[p][2]:u?a[p][1]+t[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[o][0])*c[0])&&(mxEdgeStyle.wayPoints1[o][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[o][1])*c[1])&&(mxEdgeStyle.wayPoints1[o][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[o][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[o][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<o&&mxEdgeStyle.wayPoints1[o][l]==mxEdgeStyle.wayPoints1[o-1][l]?o--:n=l}for(d=0;d<=o&&(d!=o||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(o+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,t,n,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],i-=t,e-=t,1>i&&(i+=4),1>e&&(e+=4),t=routePatterns[i-1][e-1],0!=n&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(t=inlineRoutePatterns[i-1][e-1]),t}},mxStyleRegistry={values:[],putValue:function(e,t){mxStyleRegistry.values[e]=t},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var t in mxStyleRegistry.values)if(mxStyleRegistry.values[t]==e)return t;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var t=null;if(null!=e&&0<e.length)for(var n=this.graph.getModel(),a=0;a<e.length;a++)if(n.isVertex(e[a])||n.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i))}return t},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var t=new mxCurrentRootChange(this,e);t.execute();var n=new mxUndoableEdit(this,!1);n.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,t,n){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==t&&this.translate.y==n||(this.scale=e,this.translate.x=t,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var t=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",t))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,t){var n=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==t||(this.translate.x=e,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",n))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,t,n){var a=this.graph.getModel();if(e=e||a.getRoot(),t=null!=t&&t,n=null==n||n,this.removeState(e),n&&(t||e!=this.currentRoot)){n=a.getChildCount(e);for(var i=0;i<n;i++)this.clear(a.getChildAt(e,i),t)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,t,n,a){var i=this.graph.getModel();if(e=e||i.getRoot(),t=null==t||t,n=null==n||n,a=null!=a&&a,null!=(s=this.getState(e))&&(s.invalid=!0,a&&(s.orderChanged=!0)),t)for(var o=i.getChildCount(e),s=0;s<o;s++){var r=i.getChildAt(e,s);this.invalidate(r,t,n,a)}if(n)for(a=i.getEdgeCount(e),s=0;s<a;s++)this.invalidate(i.getEdgeAt(e,s),t,n)},mxGraphView.prototype.validate=function(e){var t=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var n=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){n=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=n&&(this.canvas.style.display=n,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",t)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var t=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(t,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(t=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,t=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*t,e.height*t)},mxGraphView.prototype.redrawBackgroundImage=function(e,t){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*t.width,e.bounds.height=this.scale*t.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,t){var n=this.graph.getModel(),a=this.getState(t,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(t)){if(t!=this.currentRoot&&null!=e&&(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(i=this.graph.getCellGeometry(t)))){if(!n.isEdge(t)){o=i.offset||this.EMPTY_POINT;i.relative?(a.origin.x+=i.x*e.width/this.scale+o.x,a.origin.y+=i.y*e.height/this.scale+o.y):(a.absoluteOffset.x=this.scale*o.x,a.absoluteOffset.y=this.scale*o.y,a.origin.x+=i.x,a.origin.y+=i.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*i.width,a.height=this.scale*i.height,n.isVertex(t)){if(i.relative&&0!=(o=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var i=Math.cos(o),o=Math.sin(o),s=new mxPoint(a.getCenterX(),a.getCenterY()),r=new mxPoint(e.getCenterX(),e.getCenterY()),i=mxUtils.getRotatedPoint(s,i,o,r);a.x=i.x-a.width/2,a.y=i.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(t);null!=(o=this.graph.getChildOffsetForCell(t))&&(a.origin.x+=o.x,a.origin.y+=o.y)}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(i=n.getChildCount(t),o=0;o<i;o++)s=n.getChildAt(t,o),this.validateBounds(a,s)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var t=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);t==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:t==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(t=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:t==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,t){var n=this.graph.getModel(),a=this.getState(t),i=null;if(null!=a){if(a.invalid){var o=this.graph.getCellGeometry(t);if(null!=o&&n.isEdge(t)){var s=this.getState(this.getVisibleTerminal(t,!0));if(a.setVisibleTerminalState(s,!0),null!=s&&n.isEdge(s.cell)&&!n.isAncestor(s.cell,t)){var r=this.getState(n.getParent(s.cell));this.validatePoints(r,s.cell)}var l=this.getState(this.getVisibleTerminal(t,!1));a.setVisibleTerminalState(l,!1),null!=l&&n.isEdge(l.cell)&&!n.isAncestor(l.cell,t)&&(r=this.getState(n.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,s,l),this.updatePoints(a,o.points,s,l),this.updateFloatingTerminalPoints(a,s,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=o&&o.relative&&null!=e&&n.isEdge(e.cell)&&null!=(o=this.getPoint(e,o))&&(a.x=o.x,a.y=o.y,o.x=o.x/this.scale-this.translate.x,o.y=o.y/this.scale-this.translate.y,a.origin=o,this.childMoved(e,a));a.invalid=!1,t!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(n.isEdge(t)||n.isVertex(t))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(o=n.getChildCount(t),s=0;s<o;s++)r=n.getChildAt(t,s),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,t){var n=t.cell;if(!this.graph.isCellCollapsed(n)||n==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(n),o=0;o<i;o++)this.validateBounds(t,a.getChildAt(n,o))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,t,n){this.updateFixedTerminalPoint(e,t,!0,this.graph.getConnectionConstraint(e,t,!0)),this.updateFixedTerminalPoint(e,n,!1,this.graph.getConnectionConstraint(e,n,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,t,n,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(t,a)),null==i&&null==t){t=this.scale,a=this.translate;var o=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(n))&&(i=new mxPoint(t*(a.x+i.x+o.x),t*(a.y+i.y+o.y)))}e.setAbsoluteTerminalPoint(i,n)},mxGraphView.prototype.updatePoints=function(e,t,n,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var o=this.getEdgeStyle(e,t,n,a);if(null!=o)n=this.getTerminalPort(e,n,!0),a=this.getTerminalPort(e,a,!1),o(e,n,a,t,i);else if(null!=t)for(o=0;o<t.length;o++)null!=t[o]&&(a=mxUtils.clone(t[o]),i.push(this.transformControlPoint(e,a)));t=e.absolutePoints,i.push(t[t.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,t){var n=e.origin;return new mxPoint(this.scale*(t.x+this.translate.x+n.x),this.scale*(t.y+this.translate.y+n.y))},mxGraphView.prototype.getEdgeStyle=function(e,t,n,a){return"string"==typeof(e=null!=n&&n==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(t=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(t=mxUtils.eval(e)),e=t),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,t,n){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!1),null==i&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,t,n,a){t=this.getTerminalPort(e,t,a);var i=this.getNextPoint(e,n,a),o=this.graph.isOrthogonal(e);n=mxUtils.toRadians(Number(t.style[mxConstants.STYLE_ROTATION]||"0"));var s=new mxPoint(t.getCenterX(),t.getCenterY());if(0!=n)var r=Math.cos(-n),l=Math.sin(-n),i=mxUtils.getRotatedPoint(i,r,l,s);r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),t=this.getPerimeterPoint(t,i,0==n&&o,r),0!=n&&(r=Math.cos(n),l=Math.sin(n),t=mxUtils.getRotatedPoint(t,r,l,s)),e.setAbsoluteTerminalPoint(t,a)},mxGraphView.prototype.getTerminalPort=function(e,t,n){return null!=(e=mxUtils.getValue(e.style,n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(t=e),t},mxGraphView.prototype.getPerimeterPoint=function(e,t,n,a){var i=null;if(null!=e){var o=this.getPerimeterFunction(e);null!=o&&null!=t&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=o(a,e,t,n)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var t=null!=e.style?parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0:0;return e.getCenterX()+t*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var t=null!=e.style?parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return e.getCenterY()+t*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,t){return t=null!=t?t:0,null!=e&&(t+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(t*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var t=mxStyleRegistry.getValue(e);null==t&&this.isAllowEval()&&(t=mxUtils.eval(e)),e=t}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,t,n){var a=null;return null!=(e=e.absolutePoints)&&(n||2<e.length||null==t)&&(a=e.length,a=e[n?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=t&&(a=new mxPoint(t.getCenterX(),t.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,t){for(var n=this.graph.getModel(),a=n.getTerminal(e,t),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=n.getParent(a);return n.getParent(i)==n.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var t=e.absolutePoints;if(e.length=0,null!=t&&0<t.length){var n=t[0],a=t[t.length-1];if(null==n||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(n.x!=a.x||n.y!=a.y){var i=a.x-n.x,o=a.y-n.y;e.terminalDistance=Math.sqrt(i*i+o*o)}else e.terminalDistance=0;var a=0,s=[];if(null!=(o=n)){for(var n=o.x,r=o.y,l=n,d=r,c=1;c<t.length;c++){var m=t[c];null!=m&&(i=o.x-m.x,o=o.y-m.y,i=Math.sqrt(i*i+o*o),s.push(i),a+=i,o=m,n=Math.min(o.x,n),r=Math.min(o.y,r),l=Math.max(o.x,l),d=Math.max(o.y,d))}e.length=a,e.segments=s,e.x=n,e.y=r,e.width=Math.max(1,l-n),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,t){var n=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=t&&!t.relative)null!=t&&null!=(d=t.offset)&&(n+=d.x,a+=d.y);else{for(var i=e.absolutePoints.length,o=(.5+(null!=t?t.x/2:0))*e.length,s=e.segments[0],r=0,l=1;o>r+s&&l<i-1;)r+=s,s=e.segments[l++];if(i=0==s?0:(o-r)/s,o=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=o&&null!=l){if(r=n=a=0,null!=t){var a=t.y,d=t.offset;null!=d&&(n=d.x,r=d.y)}d=l.x-o.x,l=l.y-o.y,n=o.x+d*i+((0==s?0:l/s)*a+n)*this.scale,a=o.y+l*i-((0==s?0:d/s)*a-r)*this.scale}}return new mxPoint(n,a)},mxGraphView.prototype.getRelativePoint=function(e,t,n){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,o=e.segments,s=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n),d=0,c=0,m=0,u=2;u<a;u++)c+=o[u-2],r=e.absolutePoints[u],(s=mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n))<=l&&(l=s,d=u-1,m=c),s=r;return a=o[d],s=e.absolutePoints[d],r=e.absolutePoints[d+1],l=r.x,o=r.y,e=s.x-l,d=s.y-o,l=t-l,o=n-o,l=e-l,o=d-o,o=l*e+o*d,(e=Math.sqrt(0>=o?0:o*o/(e*e+d*d)))>a&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n)),-1==mxUtils.relativeCcw(s.x,s.y,r.x,r.y,t,n)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){i=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=i&&0<i.length&&null!=e.segments){var t=this.graph.getCellGeometry(e.cell);if(t.relative)null!=(n=this.getPoint(e,t))&&(e.absoluteOffset=n);else{var n=i[0],a=i[i.length-1];if(null!=n&&null!=a){var i=a.x-n.x,o=a.y-n.y,s=a=0;null!=(t=t.offset)&&(a=t.x,s=t.y),t=n.y+o/2+s*this.scale,e.absoluteOffset.x=n.x+i/2+a*this.scale,e.absoluteOffset.y=t}}}},mxGraphView.prototype.getState=function(e,t){t=t||!1;var n=null;return null!=e&&(n=this.states.get(e),this.graph.isCellVisible(e)&&(null==n&&t&&this.graph.isCellVisible(e)?(n=this.createState(e),this.states.put(e,n)):t&&null!=n&&this.updateStyle&&(n.style=this.graph.getCellStyle(e)))),n},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var t=[],n=0;n<e.length;n++){var a=this.getState(e[n]);null!=a&&t.push(a)}return t},mxGraphView.prototype.removeState=function(e){var t=null;return null!=e&&null!=(t=this.states.remove(e))&&(this.graph.cellRenderer.destroy(t),t.destroy()),t},mxGraphView.prototype.createState=function(e){return e=new mxCellState(this,e,this.graph.getCellStyle(e)),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){t=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-t.x,e.clientY-t.y);var t=this.graph.container.offsetWidth,n=this.graph.container.clientWidth;return t>n&&e.x>n+2&&e.x<=t||(t=this.graph.container.offsetHeight,n=this.graph.container.clientHeight,t>n&&e.y>n+2&&e.y<=t)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var e=this.graph,t=e.container;if(null!=t){mxEvent.addGestureListeners(t,mxUtils.bind(this,function(t){mxClient.IS_TOUCH&&e.isEditing()&&e.stopEditing(!e.isInvokesStopCellEditing()),this.isContainerEvent(t)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(t))&&e.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t))}),mxUtils.bind(this,function(t){this.isContainerEvent(t)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t))}),mxUtils.bind(this,function(t){this.isContainerEvent(t)&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))})),mxEvent.addListener(t,"dblclick",mxUtils.bind(this,function(t){e.dblClick(t)}));var n=function(n){var a=null;return mxClient.IS_TOUCH&&(a=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(t,a,n),a=e.view.getState(e.getCellAt(n.x,n.y))),a};e.addMouseListener({mouseDown:function(t,n){e.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(t){null!=e.tooltipHandler&&e.tooltipHandler.isHideOnHover()&&e.tooltipHandler.hide(),this.captureDocumentGesture&&e.isMouseDown&&!mxEvent.isConsumed(t)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,n(t)))}),this.endHandler=mxUtils.bind(this,function(t){this.captureDocumentGesture&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,t){if(null!=this.graph.container){var n=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=n<t?t+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,t){var n=document.createElement("DIV");return null!=e&&null!=t?(n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=e,n.style.height=t):n.style.position="relative",n},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var t=e.offsetWidth,n=e.offsetHeight;this.canvas=this.createVmlPane(t,n),this.backgroundPane=this.createVmlPane(t,n),this.drawPane=this.createVmlPane(t,n),this.overlayPane=this.createVmlPane(t,n),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,t){var n=document.createElement(mxClient.VML_PREFIX+":group");return n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=e+"px",n.style.height=t+"px",n.setAttribute("coordsize",e+","+t),n.setAttribute("coordorigin","0,0"),n},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var t=document.createElementNS(mxConstants.NS_SVG,"svg");t.style.width="100%",t.style.height="100%",t.style.display="block",t.appendChild(this.canvas),null!=e&&(e.appendChild(t),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var t=[],n=0;n<e.length;n++){var a=e[n];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&0>mxUtils.indexOf(t,i)&&t.push(i)}}return this.getModel().getTopmostCells(t)},mxGraph.prototype.graphModelChanged=function(e){for(var t=0;t<e.length;t++)this.processChange(e[t]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var t=[],n=0;n<e.length;n++){var a=e[n];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(t=t.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(t=t.concat(this.model.getDescendants(a.cell)))}return t},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var t=this.model.getParent(e.child);null!=t?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),t!=e.previous&&(null!=t&&this.view.invalidate(t,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var t=this.model.getChildCount(e),n=0;n<t;n++)this.removeStateForCell(this.model.getChildAt(e,n));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,t){null==e.overlays&&(e.overlays=[]),e.overlays.push(t);var n=this.view.getState(e);return null!=n&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",t)),t},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,t){if(null==t)this.removeCellOverlays(e);else{var n=mxUtils.indexOf(e.overlays,t);0<=n?(e.overlays.splice(n,1),0==e.overlays.length&&(e.overlays=null),null!=(n=this.view.getState(e))&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",t))):t=null}return t},mxGraph.prototype.removeCellOverlays=function(e){var t=e.overlays;if(null!=t){e.overlays=null;var n=this.view.getState(e);for(null!=n&&this.cellRenderer.redraw(n),n=0;n<t.length;n++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",t[n]))}return t},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var t=this.model.getChildCount(e),n=0;n<t;n++){var a=this.model.getChildAt(e,n);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(e,t,n,a){return null!=t&&0<t.length?(n=null!=n?n:this.warningImage,t=new mxCellOverlay(n,"<font color=red>"+t+"</font>"),a&&t.addListener(mxEvent.CLICK,mxUtils.bind(this,function(t,n){this.isEnabled()&&this.setSelectionCell(e)})),this.addCellOverlay(e,t)):(this.removeCellOverlays(e),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,t){null==e&&null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",t)),this.cellEditor.startEditing(e,t))},mxGraph.prototype.getEditingValue=function(e,t){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,t,n){this.model.beginUpdate();try{this.cellLabelChanged(e,t,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",t,"event",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,t,n){this.model.beginUpdate();try{this.model.setValue(e,t),n&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var t=0;t<e.length;t++){var n=this.view.getState(e[t]);null!=n&&null!=n.handler&&n.handler.reset()}},mxGraph.prototype.click=function(e){var t=e.getEvent(),n=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",t,"cell",n);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(t)&&!a.isConsumed()&&(null!=n?this.selectCellForEvent(n,t):(n=null,this.isSwimlaneSelectionEnabled()&&(n=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=n?this.selectCellForEvent(n,t):this.isToggleEvent(t)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),this.isEnabled()&&!mxEvent.isConsumed(e)&&!n.isConsumed()&&null!=t&&this.isCellEditable(t)&&this.startEditingAtCell(t,e)},mxGraph.prototype.scrollPointToVisible=function(e,t,n,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,t+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&t>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&t<=i.scrollTop+i.clientHeight){var o=i.scrollLeft+i.clientWidth-e;if(o<a){if(e=i.scrollLeft,i.scrollLeft+=a-o,n&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var s=this.container.scrollWidth+a-o}else s=Math.max(i.clientWidth,i.scrollWidth)+a-o,e=this.view.getCanvas();e.style.width=s+"px",i.scrollLeft+=a-o}}else(o=e-i.scrollLeft)<a&&(i.scrollLeft-=a-o);(o=i.scrollTop+i.clientHeight-t)<a?(e=i.scrollTop,i.scrollTop+=a-o,e==i.scrollTop&&n&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,t=this.container.scrollHeight+a-o):(t=Math.max(i.clientHeight,i.scrollHeight)+a-o,e=this.view.getCanvas()),e.style.height=t+"px",i.scrollTop+=a-o)):(o=t-i.scrollTop)<a&&(i.scrollTop-=a-o)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var t=0,t="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(t)&&(t=0),t}var t=mxUtils.getCurrentStyle(this.container),n=new mxRectangle;return n.x=e(t.borderLeftWidth)+parseInt(t.paddingLeft||0),n.y=e(t.borderTopWidth)+parseInt(t.paddingTop||0),n.width=e(t.borderRightWidth)+parseInt(t.paddingRight||0),n.height=e(t.borderBottomWidth)+parseInt(t.paddingBottom||0),n},mxGraph.prototype.getPreferredPageSize=function(e,t,n){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,o=e*this.pageScale,i=new mxRectangle(0,0,i.width*o,i.height*o);return t=this.pageBreaksVisible?Math.ceil(t/i.width):1,n=this.pageBreaksVisible?Math.ceil(n/i.height):1,new mxRectangle(0,0,t*i.width+2+a.x/e,n*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var t=this.getBorder(),n=Math.max(0,e.x+e.width+1+t),t=Math.max(0,e.y+e.height+1+t);if(null!=this.minimumContainerSize&&(n=Math.max(n,this.minimumContainerSize.width),t=Math.max(t,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(n,t),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,n,t);null!=a&&(n=a.width,t=a.height)}null!=this.minimumGraphSize&&(n=Math.max(n,this.minimumGraphSize.width*this.view.scale),t=Math.max(t,this.minimumGraphSize.height*this.view.scale)),n=Math.ceil(n-1),t=Math.ceil(t-1),this.dialect==mxConstants.DIALECT_SVG?(a=this.view.getDrawPane().ownerSVGElement,a.style.minWidth=Math.max(1,n)+"px",a.style.minHeight=Math.max(1,t)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,n),Math.max(1,t)):(this.view.canvas.style.minWidth=Math.max(1,n)+"px",this.view.canvas.style.minHeight=Math.max(1,t)+"px"),this.updatePageBreaks(this.pageBreaksVisible,n-1,t-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,t){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var n=this.getBorderSizes();e+=Math.max(2,n.x+n.width+1),t+=Math.max(2,n.y+n.height+1)}else 9<=document.documentMode?(e+=3,t+=5):(e+=1,t+=1);else t+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),t=Math.min(this.maximumContainerSize.height,t)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(t)+"px"},mxGraph.prototype.updatePageBreaks=function(e,t,n){var a=this.view.scale,i=this.view.translate,o=this.pageFormat,s=a*this.pageScale,i=new mxRectangle(a*i.x,a*i.y,o.width*s,o.height*s);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),o=e?Math.ceil((t-i.x)/i.width):0,e=e?Math.ceil((n-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<o&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(s=0;s<=o;s++){var r=[new mxPoint(i.x+s*i.width,1),new mxPoint(i.x+s*i.width,n)];null!=this.horizontalPageBreaks[s]?(this.horizontalPageBreaks[s].scale=1,this.horizontalPageBreaks[s].points=r,this.horizontalPageBreaks[s].redraw()):(r=new mxPolyline(r,this.pageBreakColor,this.scale),r.dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[s]=r)}for(s=o;s<this.horizontalPageBreaks.length;s++)this.horizontalPageBreaks[s].destroy();this.horizontalPageBreaks.splice(o,this.horizontalPageBreaks.length-o)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(s=0;s<=e;s++)r=[new mxPoint(1,i.y+s*i.height),new mxPoint(t,i.y+s*i.height)],null!=this.verticalPageBreaks[s]?(this.verticalPageBreaks[s].scale=1,this.verticalPageBreaks[s].points=r,this.verticalPageBreaks[s].redraw()):(r=new mxPolyline(r,this.pageBreakColor,a),r.dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[s]=r);for(s=e;s<this.verticalPageBreaks.length;s++)this.verticalPageBreaks[s].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var t=this.model.getStyle(e),n=null,n=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=t&&(n=this.postProcessCellStyle(this.stylesheet.getCellStyle(t,n))),null==n&&(n=mxGraph.prototype.EMPTY_ARRAY),n},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var t=e[mxConstants.STYLE_IMAGE],n=this.getImageFromBundles(t);null!=n?e[mxConstants.STYLE_IMAGE]=n:n=t,null!=n&&"data:image/"==n.substring(0,11)&&(0<(t=n.indexOf(","))&&(n=n.substring(0,t)+";base64,"+n.substring(t+1)),e[mxConstants.STYLE_IMAGE]=n)}return e},mxGraph.prototype.setCellStyle=function(e,t){if(null!=(t=t||this.getSelectionCells())){this.model.beginUpdate();try{for(var n=0;n<t.length;n++)this.model.setStyle(t[n],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,t,n){n=n||this.getSelectionCell(),this.toggleCellStyles(e,t,[n])},mxGraph.prototype.toggleCellStyles=function(e,t,n){if(t=null!=t&&t,null!=(n=n||this.getSelectionCells())&&0<n.length){var a=this.view.getState(n[0]);null!=(a=null!=a?a.style:this.getCellStyle(n[0]))&&(t=mxUtils.getValue(a,e,t)?0:1,this.setCellStyles(e,t,n))}},mxGraph.prototype.setCellStyles=function(e,t,n){n=n||this.getSelectionCells(),mxUtils.setCellStyles(this.model,n,e,t)},mxGraph.prototype.toggleCellStyleFlags=function(e,t,n){this.setCellStyleFlags(e,t,null,n)},mxGraph.prototype.setCellStyleFlags=function(e,t,n,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){if(null==n){var i=this.view.getState(a[0]);null!=(i=null!=i?i.style:this.getCellStyle(a[0]))&&(n=(parseInt(i[e]||0)&t)!=t)}mxUtils.setCellStyleFlags(this.model,a,e,t,n)}},mxGraph.prototype.alignCells=function(e,t,n){if(null==t&&(t=this.getSelectionCells()),null!=t&&1<t.length){if(null==n)for(var a=0;a<t.length;a++){var i=this.getCellGeometry(t[a]);if(null!=i&&!this.model.isEdge(t[a]))if(null==n){if(e==mxConstants.ALIGN_CENTER){n=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)n=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)n=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){n=i.y+i.height/2;break}n=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else n=e==mxConstants.ALIGN_RIGHT?Math.max(n,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(n,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(n,i.y+i.height):Math.min(n,i.x)}if(null!=n){this.model.beginUpdate();try{for(a=0;a<t.length;a++)null!=(i=this.getCellGeometry(t[a]))&&!this.model.isEdge(t[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=n-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=n-i.width:e==mxConstants.ALIGN_TOP?i.y=n:e==mxConstants.ALIGN_MIDDLE?i.y=n-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=n-i.height:i.x=n,this.model.setGeometry(t[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",t))}finally{this.model.endUpdate()}}}return t},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var t=this.model.getStyle(e);null==t||0==t.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var t=[],n=0;n<this.imageBundles.length;n++)this.imageBundles[n]!=e&&t.push(this.imageBundles[n]);this.imageBundles=t},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var t=0;t<this.imageBundles.length;t++){var n=this.imageBundles[t].getImage(e);if(null!=n)return n}return null},mxGraph.prototype.orderCells=function(e,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(t,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsOrdered=function(e,t){if(null!=e){this.model.beginUpdate();try{for(var n=0;n<e.length;n++){var a=this.model.getParent(e[n]);t?this.model.add(a,e[n],n):this.model.add(a,e[n],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",t,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,t,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),n=this.getCellsForGroup(n),null==e&&(e=this.createGroupCell(n));var a=this.getBoundsForGroup(e,n,t);if(0<n.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(n[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var o=this.model.getChildCount(i);this.cellsAdded([e],i,o,null,null,!1),o=this.model.getChildCount(e),this.cellsAdded(n,e,o,null,null,!1,!1),this.cellsMoved(n,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",t,"cells",n))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var t=[];if(null!=e&&0<e.length){var n=this.model.getParent(e[0]);t.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==n&&t.push(e[a])}return t},mxGraph.prototype.getBoundsForGroup=function(e,t,n){return null!=(t=this.getBoundingBoxFromGeometry(t))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),t.x-=e.width,t.y-=e.height,t.width+=e.width,t.height+=e.height),t.x-=n,t.y-=n,t.width+=2*n,t.height+=2*n),t},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var t=[];if(null==e){e=this.getSelectionCells();for(var n=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&n.push(e[a]);e=n}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++)if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),o=this.model.getParent(e[a]),s=this.model.getChildCount(o);this.cellsAdded(i,o,s,null,null,!0),t=t.concat(i)}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return t},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var t=this.getDefaultParent(),n=this.model.getChildCount(t);this.cellsAdded(e,t,n,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,t,n){null==e&&(e=this.getSelectionCells()),t=null!=t?t:0,n=null!=n&&n,this.model.beginUpdate();try{for(var a=0;a<e.length;a++)if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var o=this.getBoundingBoxFromGeometry(i);if(0<o.width&&0<o.height){var s=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();n&&(r.x+=o.x-s.width-t,r.y+=o.y-s.height-t),r.width=o.width+s.width+2*t,r.height=o.height+s.height+2*t,this.model.setGeometry(e[a],r),this.moveCells(i,-o.x+s.width+t,-o.y+s.height+t)}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,t){t=null==t||t;a=null;if(null!=e){for(var n={},a=[],i=0;i<e.length;i++)n[o=mxCellPath.create(e[i])]=e[i],a.push(e[i]);if(0<a.length)for(var o=this.view.scale,s=this.view.translate,a=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!t&&this.model.isEdge(a[i])&&null!=this.getEdgeValidationError(a[i],this.model.getTerminal(a[i],!0),this.model.getTerminal(a[i],!1)))a[i]=null;else{var r=this.model.getGeometry(a[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x,d=d.origin.y;if(this.model.isEdge(a[i])){for(var l=l.absolutePoints,m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==n[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/o-s.x,l[0].y/o-s.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==n[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/o-s.x,l[m].y/o-s.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}else a=[]}return a},mxGraph.prototype.insertVertex=function(e,t,n,a,i,o,s,r,l){return t=this.createVertex(e,t,n,a,i,o,s,r,l),this.addCell(t,e)},mxGraph.prototype.createVertex=function(e,t,n,a,i,o,s,r,l){return e=new mxGeometry(a,i,o,s),e.relative=null!=l&&l,(n=new mxCell(n,e,r)).setId(t),n.setVertex(!0),n.setConnectable(!0),n},mxGraph.prototype.insertEdge=function(e,t,n,a,i,o){return t=this.createEdge(e,t,n,a,i,o),this.addEdge(t,e,a,i)},mxGraph.prototype.createEdge=function(e,t,n,a,i,o){return(e=new mxCell(n,new mxGeometry,o)).setId(t),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,t,n,a,i){return this.addCell(e,t,i,n,a)},mxGraph.prototype.addCell=function(e,t,n,a,i){return this.addCells([e],t,n,a,i)[0]},mxGraph.prototype.addCells=function(e,t,n,a,i){null==t&&(t=this.getDefaultParent()),null==n&&(n=this.model.getChildCount(t)),this.model.beginUpdate();try{this.cellsAdded(e,t,n,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",t,"index",n,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,t,n,a,i,o,s){if(null!=e&&null!=t&&null!=n){this.model.beginUpdate();try{for(var r=null!=(d=o?this.view.getState(t):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])n--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=t&&t!=c){var m=this.view.getState(c),u=null!=m?m.origin:l,p=this.model.getGeometry(e[d]);if(null!=p){var g=u.x-r.x,h=u.y-r.y;(p=p.clone()).translate(g,h),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}t==c&&n+d>this.model.getChildCount(t)&&n--,this.model.add(t,e[d],n+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==s||s)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",t,"index",n,"source",a,"target",i,"absolute",o))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,t){t=null==t||t,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),t&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var t=this.view.scale,n=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var o=mxCellPath.create(e[i]);a[o]=e[i]}for(i=0;i<e.length;i++){for(var s=this.getConnections(e[i]),r=0;r<s.length;r++)if(o=mxCellPath.create(s[r]),null==a[o]&&null!=(d=this.model.getGeometry(s[r]))){var l=this.view.getState(s[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/t-n.x,m[u].y/t-n.y),c),this.model.setTerminal(s[r],null,c),this.model.setGeometry(s[r],d)}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,t,n,a,i){a=a||0,i=i||0,null==n&&(n=this.cloneCells([e])[0]);var o=this.model.getParent(e),s=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(t,a,i,!1,!1),this.cellsAdded(t,o,this.model.getChildCount(o),null,null,!0),this.cellsAdded([n],o,this.model.getChildCount(o),s,t[0],!1),this.cellConnected(e,t[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",t,"newEdge",n,"dx",a,"dy",i))}finally{this.model.endUpdate()}return n},mxGraph.prototype.toggleCells=function(e,t,n){null==t&&(t=this.getSelectionCells()),n&&(t=this.addAllEdges(t)),this.model.beginUpdate();try{this.cellsToggled(t,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",t,"includeEdges",n))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsToggled=function(e,t){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var n=0;n<e.length;n++)this.model.setVisible(e[n],t)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,t,n,a){t=null!=t&&t,null==n&&(n=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(n,e,t,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",t,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsFolded=function(e,t,n,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],t))&&t!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],t),this.swapBounds(e[i],t),this.isExtendParent(e[i])&&this.extendParent(e[i]),n)){var o=this.model.getChildren(e[i]);this.foldCells(o,t,n)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",t,"recurse",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,t){if(null!=e){var n=this.model.getGeometry(e);null!=n&&(n=n.clone(),this.updateAlternateBounds(e,n,t),n.swap(),this.model.setGeometry(e,n))}},mxGraph.prototype.updateAlternateBounds=function(e,t,n){if(null!=e&&null!=t){if(n=this.view.getState(e),n=null!=n?n.style:this.getCellStyle(e),null==t.alternateBounds){var a=t;this.collapseToPreferredSize&&null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(n,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e))),t.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=t.alternateBounds){t.alternateBounds.x=t.x,t.alternateBounds.y=t.y;var i=mxUtils.toRadians(n[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=t.alternateBounds.getCenterX()-t.getCenterX(),n=t.alternateBounds.getCenterY()-t.getCenterY(),a=Math.cos(i),i=Math.sin(i),t.alternateBounds.x+=a*e-i*n-e,t.alternateBounds.y+=i*e+a*n-n)}}},mxGraph.prototype.addAllEdges=function(e){var t=e.slice();return t=t.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var t=[];if(null!=e)for(var n=0;n<e.length;n++){for(var a=this.model.getEdgeCount(e[n]),i=0;i<a;i++)t.push(this.model.getEdgeAt(e[n],i));a=this.model.getChildren(e[n]),t=t.concat(this.getAllEdges(a))}return t},mxGraph.prototype.updateCellSize=function(e,t){t=null!=t&&t,this.model.beginUpdate();try{this.cellSizeUpdated(e,t),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,t){if(null!=e){this.model.beginUpdate();try{var n=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=n&&null!=a){var i=this.isCellCollapsed(e),a=a.clone();if(this.isSwimlane(e)){var o=this.view.getState(e),s=null!=o?o.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(s,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,n.height+8),i&&(a.height=n.height+8),a.width=n.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,n.width+8),i&&(a.width=n.width+8),a.height=n.height),this.model.setStyle(e,r)}else a.width=n.width,a.height=n.height;if(!t&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){o=null;if(null!=e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);if(null!=n&&!this.model.isEdge(e)){var a=n[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,i=0,o=0;null==this.getImage(t)&&null==n[mxConstants.STYLE_IMAGE]||n[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(n[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(i+=parseFloat(n[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),n[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(o+=parseFloat(n[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),i+=2*(n[mxConstants.STYLE_SPACING]||0),i+=n[mxConstants.STYLE_SPACING_LEFT]||0,i+=n[mxConstants.STYLE_SPACING_RIGHT]||0,o+=2*(n[mxConstants.STYLE_SPACING]||0),o+=n[mxConstants.STYLE_SPACING_TOP]||0,o+=n[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(i+=t.width+8),null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),a=mxUtils.getSizeForString(t,a,n[mxConstants.STYLE_FONTFAMILY]),e=a.width+i,o=a.height+o,mxUtils.getValue(n,mxConstants.STYLE_HORIZONTAL,!0)||(n=o,o=e,e=n),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),o=this.snap(o+this.gridSize/2)),o=new mxRectangle(0,0,e,o)):(n=4*this.gridSize,o=new mxRectangle(0,0,n,n))}}return o},mxGraph.prototype.handleGesture=function(e,t){if(.2<Math.abs(1-t.scale)){var n=this.view.scale,a=this.view.translate,i=e.width*t.scale,o=e.height*t.scale,s=e.y-(o-e.height)/2,n=new mxRectangle(this.snap((e.x-(i-e.width)/2)/n)-a.x,this.snap(s/n)-a.y,this.snap(i/n),this.snap(o/n));this.resizeCell(e.cell,n)}},mxGraph.prototype.resizeCell=function(e,t){return this.resizeCells([e],[t])[0]},mxGraph.prototype.resizeCells=function(e,t){this.model.beginUpdate();try{this.cellsResized(e,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,t){if(null!=e&&null!=t&&e.length==t.length){this.model.beginUpdate();try{for(var n=0;n<e.length;n++){var a=t[n],i=this.model.getGeometry(e[n]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var o=i.offset;null!=o&&(o.x+=a.x-i.x,o.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[n])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[n],i),this.isExtendParent(e[n])&&this.extendParent(e[n])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var t=this.model.getParent(e),n=this.model.getGeometry(t);null!=t&&null!=n&&!this.isCellCollapsed(t)&&null!=(e=this.model.getGeometry(e))&&(n.width<e.x+e.width||n.height<e.y+e.height)&&(n=n.clone(),n.width=Math.max(n.width,e.x+e.width),n.height=Math.max(n.height,e.y+e.height),this.cellsResized([t],[n]))}},mxGraph.prototype.importCells=function(e,t,n,a,i){return this.moveCells(e,t,n,!0,a,i)},mxGraph.prototype.moveCells=function(e,t,n,a,i,o){if(t=null!=t?t:0,n=null!=n?n:0,a=null!=a&&a,null!=e&&(0!=t||0!=n||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var s=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,t,n,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(s),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",t,"dy",n,"clone",a,"target",i,"event",o))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,t,n,a,i){if(null!=e&&(0!=t||0!=n)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var o=0;o<e.length;o++)this.translateCell(e[o],t,n),i&&this.constrainChild(e[o]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",n,"dy",n,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,t,n){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(t,n),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(t,n):(a.offset.x+=t,a.offset.y+=n)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var t=this.model.getParent(e);if(t==this.getDefaultParent()||t==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=t&&t!=this.getDefaultParent()&&null!=(i=this.model.getGeometry(t))){var n=e=0,a=i.width,i=i.height;return this.isSwimlane(t)&&(t=this.getStartSize(t),e=t.width,a-=t.width,n=t.height,i-=t.height),new mxRectangle(e,n,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var t=this.model.getGeometry(e),n=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=t&&null!=n&&!t.relative&&(t.x<n.x||t.y<n.y||n.width<t.x+t.width||n.height<t.y+t.height)&&(e=this.getOverlap(e),0<n.width&&(t.x=Math.min(t.x,n.x+n.width-(1-e)*t.width)),0<n.height&&(t.y=Math.min(t.y,n.y+n.height-(1-e)*t.height)),t.x=Math.max(t.x,n.x-t.width*e),t.y=Math.max(t.y,n.y-t.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var t={},n=0;n<e.length;n++){var a=mxCellPath.create(e[n]);t[a]=e[n]}this.model.beginUpdate();try{for(n=0;n<e.length;n++){var i=this.model.getEdges(e[n]);if(null!=i)for(a=0;a<i.length;a++){var o=this.view.getState(i[a]),s=null!=o?o.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=o?o.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(s),d=mxCellPath.create(r);(null==t[l]||null==t[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[n]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var t=this.model.getGeometry(e);return null!=t&&null!=t.points&&0<t.points.length&&(t=t.clone(),t.points=[],this.model.setGeometry(e,t)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,t){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,t,n){t=null;var a=e.style[n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(t=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=t&&(a=mxUtils.getValue(e.style,n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(t,a)},mxGraph.prototype.setConnectionConstraint=function(e,t,n,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,t){var n=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),o=e.style[mxConstants.STYLE_DIRECTION],s=0;if(null!=o&&("north"==o?s+=270:"west"==o?s+=180:"south"==o&&(s+=90),"north"==o||"south"==o)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=t.point){var l=n=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=o&&"south"!=o||(r=m,m=u,u=r),m&&(n=-1,d=-a.width),u&&(l=-1,c=-a.height)}n=new mxPoint(a.x+t.point.x*a.width*n-d,a.y+t.point.y*a.height*l-c)}o=e.style[mxConstants.STYLE_ROTATION]||0,t.perimeter?(0!=s&&null!=n&&(r=a=0,90==s?r=1:180==s?a=-1:270==o&&(r=-1),n=mxUtils.getRotatedPoint(n,a,r,i)),null!=n&&t.perimeter&&(n=this.view.getPerimeterPoint(e,n,!1))):o+=s,0!=o&&null!=n&&(s=mxUtils.toRadians(o),a=Math.cos(s),r=Math.sin(s),n=mxUtils.getRotatedPoint(n,a,r,i))}return n},mxGraph.prototype.connectCell=function(e,t,n,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,n);this.cellConnected(e,t,n,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",t,"source",n,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,t,n,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,n);this.setConnectionConstraint(e,t,n,a),this.isPortsEnabled()&&(a=null,this.isPort(t)&&(a=t.getId(),t=this.getTerminalForPort(t,n)),this.setCellStyles(n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,t,n),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",t,"source",n,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var t=this.view.scale,n=this.view.translate,a={},i=0;i<e.length;i++)a[mxCellPath.create(e[i])]=e[i];for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])&&null!=(r=this.model.getGeometry(e[i]))){var o=this.view.getState(e[i]),s=this.view.getState(this.model.getParent(e[i]));if(null!=o&&null!=s){var r=r.clone(),l=-s.origin.x,d=-s.origin.y,c=o.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/t-n.x+l,c[0].y/t-n.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var h=c.length-1;r.setTerminalPoint(new mxPoint(c[h].x/t-n.x+l,c[h].y/t-n.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,t){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),t=this.getCurrentRoot();if(null!=t){for(var n=this.model.getParent(t);n!=e&&!this.isValidRoot(n)&&this.model.getParent(n)!=e;)n=this.model.getParent(n);n==e||this.model.getParent(n)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(n),null!=this.view.getState(t)&&this.setSelectionCell(t)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,t,n){var a=[e];if(t&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),n){n=this.model.getChildCount(e);for(var i=0;i<n;i++){var o=this.getCellBounds(this.model.getChildAt(e,i),t,!0);null!=a?a.add(o):a=o}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,t){t=null!=t&&t;var n=null;if(null!=e)for(var a=0;a<e.length;a++)if(t||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var o=i.points;if(null!=o&&0<o.length){for(var s=new mxRectangle(o[0].x,o[0].y,0,0),r=function(e){null!=e&&s.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<o.length;l++)r(o[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i)}}return n},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,t){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-t;else{var n=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==t){if(mxClient.IS_IE?n.setAttribute("transform","translate("+e+","+t+")"):n.removeAttribute("transform"),null!=this.shiftPreview1){for(o=this.shiftPreview1.firstChild;null!=o;){var a=o.nextSibling;this.container.appendChild(o),o=a}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(n.parentNode),o=this.shiftPreview2.firstChild;null!=o;)a=o.nextSibling,this.container.appendChild(o),o=a;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(n.setAttribute("transform","translate("+e+","+t+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";for(var i=this.shiftPreview1,o=this.container.firstChild;null!=o;)a=o.nextSibling,o!=n.parentNode?i.appendChild(o):i=this.shiftPreview2,o=a;this.container.insertBefore(this.shiftPreview1,n.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=t+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=t+"px"}else n.style.left=e+"px",n.style.top=t+"px";this.panDx=e,this.panDy=t,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,t){this.zoom(e/this.view.scale,t)},mxGraph.prototype.zoom=function(e,t){t=null!=t?t:this.centerZoom;var n=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=n,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(n));else if(t&&!mxUtils.hasScrollbars(this.container)){var a=this.container.offsetWidth,i=this.container.offsetHeight;if(1<e)var o=(e-1)/(2*n),a=a*-o,i=i*-o;else o=(1/e-1)/(2*this.view.scale),a*=o,i*=o;this.view.scaleAndTranslate(n,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(n),mxUtils.hasScrollbars(this.container)&&(i=a=0,t&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var t=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var n=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=n-e.x,e.height=a-e.y,1>t?(t=e.height/t,n=(t-e.height)/2,e.height=t,t=Math.min(e.y,n),e.y-=t,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t*=e.width,n=(t-e.width)/2,e.width=t,t=Math.min(e.x,n),e.x-=t,n=Math.min(this.container.scrollWidth,e.x+e.width),e.width=n-e.x),t=this.container.clientWidth/e.width,n=this.view.scale*t,mxUtils.hasScrollbars(this.container)?(this.view.setScale(n),this.container.scrollLeft=Math.round(e.x*t),this.container.scrollTop=Math.round(e.y*t)):this.view.scaleAndTranslate(n,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,t){if(null!=this.container){e=null!=e?e:0,t=null!=t&&t;var n=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();t&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var o=this.view.scale,s=i.width/o,r=i.height/o;null!=this.backgroundImage&&(s=Math.max(s,this.backgroundImage.width-i.x/o),r=Math.max(r,this.backgroundImage.height-i.y/o));var l=t?e:2*e,n=Math.floor(100*Math.min(n/(s+l),a/(r+l)))/100;null!=this.minFitScale&&(n=Math.max(n,this.minFitScale)),null!=this.maxFitScale&&(n=Math.min(n,this.maxFitScale)),t?this.view.scale!=n&&this.view.setScale(n):mxUtils.hasScrollbars(this.container)?(this.view.setScale(n),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/o)*n-e-Math.max(0,(this.container.clientWidth-s*n)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/o)*n-e-Math.max(0,(this.container.clientHeight-r*n)/2))):this.view.scaleAndTranslate(n,null!=i.x?Math.floor(this.view.translate.x-i.x/o+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/o+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,t){var n=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(n=new mxRectangle(n+i.x,a+i.y,i.width,i.height),t&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,n.x=n.getCenterX()-a/2,n.width=a,n.y=n.getCenterY()-i/2,n.height=i),this.scrollRectToVisible(n)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var t=!1;if(null!=e){var n=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(n,e.width),o=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){n=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var s=n.scrollLeft-e.x,a=Math.max(s-n.scrollLeft,0);0<s?n.scrollLeft-=s+2:0<(s=e.x+i-n.scrollLeft-n.clientWidth)&&(n.scrollLeft+=s+2),i=n.scrollTop-e.y,s=Math.max(0,i-n.scrollTop),0<i?n.scrollTop-=i+2:0<(i=e.y+o-n.scrollTop-n.clientHeight)&&(n.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=s)&&this.view.setTranslate(a,s)}else{var s=-this.view.translate.x,r=-this.view.translate.y,l=this.view.scale;e.x+i>s+n&&(this.view.translate.x-=(e.x+i-n-s)/l,t=!0),e.y+o>r+a&&(this.view.translate.y-=(e.y+o-a-r)/l,t=!0),e.x<s&&(this.view.translate.x+=(s-e.x)/l,t=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,t=!0),t&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return t},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var t=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=t?t:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var t=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=t&&t==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,t,n){return null==this.getEdgeValidationError(e,t,n)},mxGraph.prototype.getEdgeValidationError=function(e,t,n){if(null!=e&&!this.isAllowDanglingEdges()&&(null==t||null==n))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&t==n&&null!=t||!this.isValidConnection(t,n))return"";if(null!=t&&null!=n){var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(t,n,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(t,!0,e),o=this.model.getDirectedEdgeCount(n,!1,e);if(null!=this.multiplicities)for(var s=0;s<this.multiplicities.length;s++){var r=this.multiplicities[s].check(this,e,t,n,i,o);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,t,n))&&(a+=r),0<a.length?a:null}return this.allowDanglingEdges?null:""},mxGraph.prototype.validateEdge=function(e,t,n){return null},mxGraph.prototype.validateGraph=function(e,t){e=null!=e?e:this.model.getRoot(),t=null!=t?t:{};for(var n=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var o=this.model.getChildAt(e,i),s=t;this.isValidRoot(o)&&(s={}),null!=(s=this.validateGraph(o,s))?this.setCellWarning(o,s.replace(/\n/g,"<br>")):this.setCellWarning(o,null),n=n&&null==s}return a="",this.isCellCollapsed(e)&&!n&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,t))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!n?a:null},mxGraph.prototype.getCellValidationError=function(e){var t=this.model.getDirectedEdgeCount(e,!0),n=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var o=this.multiplicities[i];o.source&&mxUtils.isNode(e,o.type,o.attr,o.value)&&(0==o.max&&0<t||1==o.min&&0==t||1==o.max&&1<t)?a+=o.countError+"\n":!o.source&&mxUtils.isNode(e,o.type,o.attr,o.value)&&(0==o.max&&0<n||1==o.min&&0==n||1==o.max&&1<n)&&(a+=o.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,t){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var t=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!t))return t?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var t="";if(this.labelsVisible&&null!=e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);mxUtils.getValue(n,mxConstants.STYLE_NOLABEL,!1)||(t=this.convertValueToString(e))}return t},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t)),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var t=new mxRectangle,n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&(n=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?t.height=n:t.width=n),t},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){if(null!=e&&this.model.getParent(e)!=this.model.getRoot()){var t=this.view.getState(e);if(null!=(t=null!=t?t.style:this.getCellStyle(e))&&!this.model.isEdge(e))return t[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var t=this.model.getGeometry(e);return this.isCellsLocked()||null!=t&&this.model.isVertex(e)&&t.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,t){return!0},mxGraph.prototype.isCellBendable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,t,n){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,t){return this.isValidSource(e)&&this.isValidTarget(t)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null!=this.cellEditor){var t=this.cellEditor.getEditingCell();return null==e?null!=t:e==t}return!1},mxGraph.prototype.isAutoSizeCell=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,t){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,t)}))},mxGraph.prototype.isCellFoldable=function(e,t){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=n[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,t,n){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,t,n)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,t,n){return!(!this.model.isEdge(e)||null==t||1!=t.length||!this.isCellConnectable(t[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),t[0]))&&(n=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(t[0],n)&&!this.model.isAncestor(t[0],e))},mxGraph.prototype.getDropTarget=function(e,t,n){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if(a=mxUtils.convertPoint(this.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a.x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==n)n=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=n;)i=this.model.getParent(i);i==n&&(n=a)}for(;null!=n&&!this.isValidDropTarget(n,e,t)&&!this.model.isLayer(n);)n=this.model.getParent(n);return!this.model.isLayer(n)&&0>mxUtils.indexOf(e,n)?n:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0)),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,t,n){if(null!=(n=n||this.getDefaultParent()))for(var a=this.model.getChildCount(n),i=0;i<a;i++){var o=this.model.getChildAt(n,i),s=this.getSwimlaneAt(e,t,o);if(null!=s)return s;if(this.isSwimlane(o)&&(s=this.view.getState(o),this.intersects(s,e,t)))return o}return null},mxGraph.prototype.getCellAt=function(e,t,n,a,i){if(a=null==a||a,i=null==i||i,null!=(n=null!=n?n:this.getDefaultParent()))for(var o=this.model.getChildCount(n)-1;0<=o;o--){var s=this.model.getChildAt(n,o),r=this.getCellAt(e,t,s,a,i);if(null!=r)return r;if(this.isCellVisible(s)&&(i&&this.model.isEdge(s)||a&&this.model.isVertex(s))&&(r=this.view.getState(s),this.intersects(r,e,t)))return s}return null},mxGraph.prototype.intersects=function(e,t,n){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],o=1;o<a.length;o++){var s=a[o];if(mxUtils.ptSegDistSq(i.x,i.y,s.x,s.y,t,n)<=e)return!0;i=s}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),o=new mxPoint(e.getCenterX(),e.getCenterY()),i=mxUtils.getRotatedPoint(new mxPoint(t,n),a,i,o),t=i.x,n=i.y),mxUtils.contains(e,t,n))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,t,n){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(t-=a.x,n-=a.y,0<e.width&&0<t&&t>e.width*i||0<e.height&&0<n&&n>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,t,n){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=t&&t,null!=n&&n),t=[],n=0;n<e.length;n++)this.isCellVisible(e[n])&&t.push(e[n]);return t},mxGraph.prototype.getConnections=function(e,t){return this.getEdges(e,t,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,t){return this.getEdges(e,t,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,t){return this.getEdges(e,t,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,t,n,a,i,o){n=null==n||n,a=null==a||a,i=null==i||i,o=null!=o&&o;for(var s=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(s=s.concat(this.model.getEdges(c,n,a)))}for(s=s.concat(this.model.getEdges(e,n,a)),r=[],d=0;d<s.length;d++)c=this.view.getState(s[d]),l=null!=c?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(s[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(s[d],!1),(i&&l==c||l!=c&&(n&&c==e&&(null==t||this.isValidAncestor(l,t,o))||a&&l==e&&(null==t||this.isValidAncestor(c,t,o))))&&r.push(s[d]);return r},mxGraph.prototype.isValidAncestor=function(e,t,n){return n?this.model.isAncestor(t,e):this.model.getParent(e)==t},mxGraph.prototype.getOpposites=function(e,t,n,a){n=null==n||n,a=null==a||a;var i=[],o={};if(null!=e)for(var s=0;s<e.length;s++){var r=null!=(l=this.view.getState(e[s]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[s],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[s],!1);if(r==t&&null!=l&&l!=t&&a){var d=mxCellPath.create(l);null==o[d]&&(o[d]=l,i.push(l))}else l==t&&null!=r&&r!=t&&n&&(d=mxCellPath.create(r),null==o[d]&&(o[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;for(var a=this.getEdges(e),i=[],o=0;o<a.length;o++){var s=null!=(r=this.view.getState(a[o]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[o],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[o],!1);(s==e&&r==t||!n&&s==t&&r==e)&&i.push(a[o])}return i},mxGraph.prototype.getPointForEvent=function(e,t){var n=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,o=0!=t?this.gridSize/2:0;return n.x=this.snap(n.x/a-i.x-o),n.y=this.snap(n.y/a-i.y-o),n},mxGraph.prototype.getCells=function(e,t,n,a,i,o){if(o=null!=o?o:[],0<n||0<a){var s=e+n,r=t+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=t&&u.x+u.width<=s?o.push(c):this.getCells(e,t,n,a,c,o)}}}return o},mxGraph.prototype.getCellsBeyond=function(e,t,n,a,i){var o=[];if((a||i)&&(null==n&&(n=this.getDefaultParent()),null!=n))for(var s=this.model.getChildCount(n),r=0;r<s;r++){var l=this.model.getChildAt(n,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=t)&&o.push(l)}return o},mxGraph.prototype.findTreeRoots=function(e,t,n){t=null!=t&&t,n=null!=n&&n;var a=[];if(null!=e){for(var i=this.getModel(),o=i.getChildCount(e),s=null,r=0,l=0;l<o;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,t?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(n&&0==m&&0<u||!n&&0==u&&0<m)&&a.push(d),(c=n?u-m:m-u)>r&&(r=c,s=d)}}0==a.length&&null!=s&&a.push(s)}return a},mxGraph.prototype.traverse=function(e,t,n,a,i){if(null!=n&&null!=e){t=null==t||t,i=i||[];var o=mxCellPath.create(e);if(null==i[o]&&(i[o]=e,null==(a=n(e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(o=0;o<a;o++){var s=this.model.getEdgeAt(e,o),r=this.model.getTerminal(s,!0)==e;t&&!r||(r=this.model.getTerminal(s,!r),this.traverse(r,t,n,s,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,t){var n=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(n,t),n},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,t,n){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),o=this.model.getChildCount(i);null==a&&0<o?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!t||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&n?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<o&&(t=i.getIndex(a),e?(t++,e=this.model.getChildAt(i,t%o)):(t--,e=this.model.getChildAt(i,0>t?o-1:t)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(e,t,n){n=n||this.getDefaultParent();var a=mxUtils.bind(this,function(n){return null!=this.view.getState(n)&&0==this.model.getChildCount(n)&&(this.model.isVertex(n)&&e||this.model.isEdge(n)&&t)});n=this.model.filterDescendants(a,n),this.setSelectionCells(n)},mxGraph.prototype.selectCellForEvent=function(e,t){var n=this.isCellSelected(e);this.isToggleEvent(t)?n?this.removeSelectionCell(e):this.addSelectionCell(e):(!n||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,t){this.isToggleEvent(t)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var t=null;return null!=e&&(this.model.isEdge(e.cell)?(t=this.view.getEdgeStyle(e),t=this.isLoop(e)||t==mxEdgeStyle.ElbowConnector||t==mxEdgeStyle.SideToSide||t==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):t==mxEdgeStyle.SegmentConnector||t==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):t=new mxVertexHandler(e)),t},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var t=0;t<this.mouseListeners.length;t++)if(this.mouseListeners[t]==e){this.mouseListeners.splice(t,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var t=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=t.x-this.panDx,e.graphY=t.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,t,n){if(null==n&&(n=this),this.updateMouseEvent(t),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-t.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-t.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(t.getEvent(),t.getCell()),t.getEvent().cancelBubble=!0):(this.lastTouchX=t.getX(),this.lastTouchY=t.getY(),this.lastTouchTime=a)}if(a=2!=t.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-t.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-t.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=t.getX(),this.lastMouseY=t.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||t.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(t.getGraphX(),t.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(n=[n,t],t.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,n):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,n):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,n)}e==mxEvent.MOUSE_UP&&this.click(t)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var t=e.view.graph.getModel().isEdge(e.cell),n=e.view.scale,a=null,i=this.image.width,o=this.image.height;return t?(t=e.absolutePoints,1==t.length%2?a=t[Math.floor(t.length/2)]:(a=t.length/2,e=t[a-1],t=t[a],a=new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2))):(a=new mxPoint,a.x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*n),Math.round(a.y-(o*this.defaultOverlap-this.offset.y)*n),i*n,o*n)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var t=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&t.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,t){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var t=this.source.view.scale,n=new mxRectangle((n=this.source.getGraphBounds()).x/t+this.source.panDx,n.y/t+this.source.panDy,n.width/t,n.height/t),a=new mxRectangle(0,0,this.source.container.clientWidth/t,this.source.container.clientHeight/t);(o=n.clone()).add(a);var i=this.getSourceContainerSize(),a=Math.max(i.width/t,o.width),t=Math.max(i.height/t,o.height),o=Math.max(0,this.outline.container.clientWidth-this.border),i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(o=Math.min(o/a,i/t))){this.outline.getView().scale!=o&&(this.outline.getView().scale=o,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);var i=(t=this.source.view.translate).x+this.source.panDx,s=t.y+this.source.panDy;null!=(o=this.getOutlineOffset(o))&&(i+=o.x,s+=o.y),0>n.x&&(i-=n.x),0>n.y&&(s-=n.y),a.translate.x==i&&a.translate.y==s||(a.translate.x=i,a.translate.y=s,e=!0);var n=a.translate,i=(o=this.source.getView().scale)/a.scale,s=1/a.scale,r=this.source.container;this.bounds=new mxRectangle((n.x-t.x-this.source.panDx)/s,(n.y-t.y-this.source.panDy)/s,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/o,this.bounds.y+=this.source.container.scrollTop*a.scale/o,(n=this.selectionBorder.bounds).x==this.bounds.x&&n.y==this.bounds.y&&n.width==this.bounds.width&&n.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),n=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-n.width/2,this.bounds.y+this.bounds.height-n.height/2,n.width,n.height),n.x==a.x&&n.y==a.y&&n.width==a.width&&n.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,t){this.enabled&&this.showViewport&&(this.zoom=t.isSource(this.sizer),this.startX=t.getX(),this.startY=t.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),t.consume()},mxOutline.prototype.mouseMove=function(e,t){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var n=t.getX()-this.startX,a=t.getY()-this.startY,i=null;if(this.zoom)i=this.source.container,a=n/(i.clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+n),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var o=this.outline.getView().scale,i=new mxRectangle(this.bounds.x+n,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),n=n/o*this.source.getView().scale,a=a/o*this.source.getView().scale,this.source.panGraph(-n-this.dx0,-a-this.dy0)}n=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-n.width/2,i.y+i.height-n.height/2,n.width,n.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),t.consume()}},mxOutline.prototype.mouseUp=function(e,t){if(this.active){var n=t.getX()-this.startX,a=t.getY()-this.startY;if(0<Math.abs(n)||0<Math.abs(a)){if(this.zoom){var a=this.selectionBorder.bounds.width,i=this.source.getView().scale;this.source.zoomTo(i-n*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),n/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-n,i.y-a));this.update(),t.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,t,n,a,i,o){var s="";return(this.source&&this.checkTerminal(e,n,t)||!this.source&&this.checkTerminal(e,a,t))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||o>=this.max))&&(s+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,t,n,a)||(s+=this.typeError+"\n"))),0<s.length?s:null},mxMultiplicity.prototype.checkNeighbors=function(e,t,n,a){t=e.model.getValue(n),a=e.model.getValue(a),n=!this.validNeighborsAllowed;for(var i=this.validNeighbors,o=0;o<i.length;o++){if(this.source&&this.checkType(e,a,i[o])){n=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,t,i[o])){n=this.validNeighborsAllowed;break}}return n},mxMultiplicity.prototype.checkTerminal=function(e,t,n){return t=e.model.getValue(t),this.checkType(e,t,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,t,n,a,i){return null!=t&&(isNaN(t.nodeType)?t==n:mxUtils.isNode(t,n,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var t=this.graph.getModel();t.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((t=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var t=this.getGraph().getModel();if(this.isBubbling())for(var n=t.getParents(e);0<n.length;)e=e.concat(n),n=t.getParents(n);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,t){if(null!=e&&null!=t)for(var n=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var o=this.getLayout(a.getParent(e[i]));null!=o&&o.moveCell(e[i],n.x,n.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var t=[],n={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),o=0;o<i.length;o++)if(null!=i[o]){var s=mxCellPath.create(i[o]);null==n[s]&&(n[s]=i[o],t.push(i[o]))}}return t},mxLayoutManager.prototype.getCellsForChange=function(e){var t=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,t.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,t.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=null,a=0;a<e.length;a++)e[a]!=t.getRoot()&&e[a]!=n&&(n=e[a],this.executeLayout(this.getLayout(n),n));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{t.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,t){null!=e&&null!=t&&e.execute(t)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)if(!this.isCellIgnored(e[n])){this.cellResized(e[n]);break}}finally{t.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var t=this.getGraph(),n=t.getView(),a=t.getModel(),i=n.getState(e),o=n.getState(a.getParent(e));if(null!=i&&null!=o){var s=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=s&&null!=r){var l=n.translate,d=n.scale,n=i.x-o.origin.x-l.x*d,o=i.y-o.origin.y-l.y*d,l=i.x+i.width,c=i.y+i.height,m=i.width-r.width*d+n-r.x*d,u=i.height-r.height*d+o-r.y*d,p=1-r.width*d/i.width,i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<s.length;r++)s[r]!=e&&this.isCellShiftable(s[r])&&this.shiftCell(s[r],m,u,n,o,l,c,p,i,this.isExtendParents()&&t.isExtendParent(s[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,t,n,a,i,o,s,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel(),u=m.getGeometry(e);if(null!=u){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=o)(u=u.clone()).translate(-t,0);else{var p=Math.max(0,c.x-x0);(u=u.clone()).translate(-r*p,0)}if(this.isShiftDownwards())if(c.y>=s)(u=u.clone()).translate(0,-n);else{var g=Math.max(0,c.y-i);(u=u.clone()).translate(0,-l*g)}u!=m.getGeometry(e)&&(m.setGeometry(e,u),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var t=this.getGraph(),n=t.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return t.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),n,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var t=this.graph.view.getState(e);return e=null!=t?t.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)this.isSwimlaneIgnored(e[n])||this.swimlaneAdded(e[n])}finally{t.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var t=this.getGraph().getModel(),n=t.getParent(e),a=t.getChildCount(n),i=null,o=0;o<a;o++){var s=t.getChildAt(n,o);if(s!=e&&!this.isSwimlaneIgnored(s)&&null!=(i=t.getGeometry(s)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)if(!this.isSwimlaneIgnored(e[n])){var a=t.getGeometry(e[n]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),o=s=e[n];null!=o;){var s=o,o=t.getParent(o),r=this.graph.isSwimlane(o)?this.graph.getStartSize(o):new mxRectangle;i.width+=r.width,i.height+=r.height}this.resizeSwimlane(s,i.width,i.height)}}}finally{t.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,t,n){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e)&&null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=n||!i&&r.width!=t)&&(r=r.clone(),i?r.height=n:r.width=t,a.setGeometry(e,r))}var o=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;t-=o.width,n-=o.height;for(var s=a.getChildCount(e),r=0;r<s;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,t,n)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,t,n,a,i){a=null==a||a,i=null==i||i;var o=mxCellPath.create(e.cell),s=this.deltas[o];return null==s?(s=new mxPoint(t,n),this.deltas[o]=s,this.count++):a?(s.X+=t,s.Y+=n):(s.X=t,s.Y=n),i&&this.addEdges(e),s},mxCellStatePreview.prototype.show=function(e){var t,n=this.graph.getModel(),a=n.getRoot();for(t in this.deltas){var i=mxCellPath.resolve(a,t),o=this.graph.view.getState(i),s=this.deltas[t],i=this.graph.view.getState(n.getParent(i));this.translateState(i,o,s.x,s.y)}for(t in this.deltas)i=mxCellPath.resolve(a,t),o=this.graph.view.getState(i),s=this.deltas[t],i=this.graph.view.getState(n.getParent(i)),this.revalidateState(i,o,s.x,s.y,e)},mxCellStatePreview.prototype.translateState=function(e,t,n,a){if(null!=t){var i=this.graph.getModel();if(i.isVertex(t.cell)){t.invalid=!0,this.graph.view.validateBounds(e,t.cell),e=i.getGeometry(t.cell);var o=mxCellPath.create(t.cell);0==n&&0==a||null==e||e.relative&&null==this.deltas[o]||(t.x+=n,t.y+=a)}for(e=i.getChildCount(t.cell),o=0;o<e;o++)this.translateState(t,this.graph.view.getState(i.getChildAt(t.cell,o)),n,a)}},mxCellStatePreview.prototype.revalidateState=function(e,t,n,a,i){if(null!=t){t.invalid=!0,this.graph.view.validatePoints(e,t.cell);var o=mxCellPath.create(t.cell),s=this.graph.getModel(),r=this.graph.getCellGeometry(t.cell);for(0==n&&0==a||null==r||!r.relative||!s.isVertex(t.cell)||null!=e&&!s.isVertex(e.cell)&&null==this.deltas[o]||(t.x+=n,t.y+=a,this.graph.cellRenderer.redraw(t)),null!=i&&i(t),e=s.getChildCount(t.cell),o=0;o<e;o++)this.revalidateState(t,this.graph.view.getState(s.getChildAt(t.cell,o)),n,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var t=this.graph.getModel(),n=t.getEdgeCount(e.cell),a=0;a<n;a++){var i=this.graph.view.getState(t.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&null!=t.getState()){var n=this.getInitialCellForEvent(t);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(n),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(n,t.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(n);this.graph.isCellMovable(n)&&(!a.isEdge(n)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(n,!0)||null==a.getTerminal(n,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(t.getEvent())&&this.graph.isCellsCloneable())&&this.start(n,t.getX(),t.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=t.getSource().nodeName?t.consume():mxClient.IS_SF&&"SELECT"==t.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),t=this.graph.getModel(),n=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&t.isVertex(e)&&null!=t.getGeometry(e)&&!t.getGeometry(e).relative});return this.graph.view.getCellStates(t.filterDescendants(n,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var t=null;if(null!=e&&0<e.length)for(var n=this.graph.getModel(),a=0;a<e.length;a++)if(n.isVertex(e[a])||n.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var o=i;n.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(o=i.shape.boundingBox),null==t?t=new mxRectangle(o.x,o.y,o.width,o.height):t.add(o)}}return t},mxGraphHandler.prototype.createPreviewShape=function(e){return e=new mxRectangleShape(e,null,this.previewColor),e.isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,t,n){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,t,n),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var t=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/t)*t,e.y=this.graph.snap(e.y/t)*t,e},mxGraphHandler.prototype.mouseMove=function(e,t){var n=this.graph;if(!t.isConsumed()&&n.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(o=mxUtils.convertPoint(n.container,t.getX(),t.getY())).x-this.first.x,i=o.y-this.first.y,o=n.tolerance;if(null!=this.shape||Math.abs(a)>o||Math.abs(i)>o){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var s=n.isGridEnabledEvent(t.getEvent()),o=!0;if(null!=this.guide&&this.useGuidesForEvent(t))i=this.guide.move(this.bounds,new mxPoint(a,i),s),o=!1,a=i.x,i=i.y;else if(s)var r=n.getView().translate,l=n.getView().scale,s=this.bounds.x-(n.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(n.snap(this.bounds.y/l-r.y)+r.y)*l,i=this.snap(new mxPoint(a,i)),a=i.x-s,i=i.y-r;for(null!=this.guide&&o&&this.guide.hide(),n.isConstrainedEvent(t.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),o=null,i=t.getCell(),n.isDropEnabled()&&this.highlightEnabled&&(o=n.getDropTarget(this.cells,t.getEvent(),i)),s=o,r=n.getModel();null!=s&&s!=this.cells[0];)s=r.getParent(s);var l=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),d=!1;null==(a=n.getView().getState(o))||null!=s||r.getParent(this.cell)==o&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&n.getModel().isVertex(i)&&n.isCellConnectable(i)&&null!=(a=n.getView().getState(i))&&(n=null==n.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(n),d=!0)):(this.target!=o&&(this.target=o,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}t.consume(),mxEvent.consume(t.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||t.isConsumed()||null==t.getState()||n.isMouseDown||(null==(a=n.getCursorForCell(t.getCell()))&&n.isEnabled()&&n.isCellMovable(t.getCell())&&(a=n.getModel().isEdge(t.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),t.getState().setCursor(a),t.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()){var n=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=n.getView().scale,i=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),o=this.currentDx/a,a=this.currentDy/a,s=t.getCell();this.connectOnDrop&&null==this.target&&null!=s&&n.getModel().isVertex(s)&&n.isCellConnectable(s)&&n.isEdgeValid(null,this.cell,s)?n.connectionHandler.connect(this.cell,s,t.getEvent()):(s=this.target,n.isSplitEnabled()&&n.isSplitTarget(s,this.cells,t.getEvent())?n.splitEdge(s,this.cells,null,o,a):this.moveCells(this.cells,o,a,i,this.target,t.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(t)}this.cellWasClicked&&t.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());n=mxUtils.getRotatedPoint(n,t,a,i)}return null!=e&&!mxUtils.contains(e,n.x,n.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,t,n,a,i,o){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,o)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,t-this.graph.panDx/this.graph.view.scale,n-this.graph.panDy/this.graph.view.scale,a,i,o),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var t=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(t)||mxEvent.isControlDown(t)&&mxEvent.isShiftDown(t)||this.usePopupTrigger&&mxEvent.isPopupTrigger(t)},mxPanningHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var n=mxUtils.convertPoint(this.graph.container,t.getX(),t.getY());this.triggerX=n.x,this.triggerY=n.y,this.popupTrigger=this.isPopupTrigger(t),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(t),this.startX=t.getX(),this.startY=t.getY(),this.panningTrigger&&this.consumePanningTrigger(t)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,t){var n=t.getX()-this.startX,a=t.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(n=this.graph.snap(n),a=this.graph.snap(a)),this.graph.panGraph(n+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",t)),t.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(n)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",t))}},mxPanningHandler.prototype.mouseUp=function(e,t){var n=Math.abs(t.getX()-this.startX),a=Math.abs(t.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){n=t.getX()-this.startX,a=t.getY()-this.startY,this.useGrid&&(n=this.graph.snap(n),a=this.graph.snap(a));var i=this.graph.getView().scale,o=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(o.x+n/i,o.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",t)),t.consume()}else this.popupTrigger&&n<this.graph.tolerance&&a<this.graph.tolerance&&(n=this.getCellForPopupEvent(t),this.graph.isEnabled()&&this.selectOnPopup&&null!=n&&!this.graph.isCellSelected(n)?this.graph.setSelectionCell(n):this.clearSelectionOnBackground&&null==n&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(t.getX()+a.x,t.getY()+a.y),this.popup(a.x+1,a.y+1,n,t.getEvent()),t.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,t){this.graph.getView().setTranslate(e,t)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){this.validState=null,null!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var t=null;if(this.isEnabled()){var n=null!=(t=this.getState(e))&&this.isValidState(t);e=this.getMarkerColor(e.getEvent(),t,n),this.validState=n?t:null,t==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=t&&null!=this.currentColor?(this.markedState=t,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return t},mxCellMarker.prototype.markCell=function(e,t){var n=this.graph.getView().getState(e);null!=n&&(this.currentColor=null!=t?t:this.validColor,this.markedState=n,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,t,n){return n?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var t=this.graph.getView();return cell=this.getCell(e),t=this.getStateToMark(t.getState(cell)),null!=t&&this.intersects(t,e)?t:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,t){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,t.getGraphX(),t.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,t){t.reset.apply(t)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var t=this.graph.getSelectionCells(),n=0;n<t.length;n++){var a=this.graph.view.getState(t[n]);if(null!=a){var i=e.remove(t[n]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(t[n],i)}}e.visit(mxUtils.bind(this,function(e,t){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",t.state)),t.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseDown.apply(t,n)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseMove.apply(t,n)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseUp.apply(t,n)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var t=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,t)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph);return e.hotspotEnabled=!0,e.getCell=mxUtils.bind(this,function(t,n){return n=mxCellMarker.prototype.getCell.apply(e,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),e.isValidState=mxUtils.bind(this,function(t){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(e,arguments)}),e.getMarkerColor=mxUtils.bind(this,function(t,n,a){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(e,arguments):null}),e.intersects=mxUtils.bind(this,function(t,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(e,arguments)}),e},mxConnectionHandler.prototype.start=function(e,t,n,a){this.previous=e,this.first=new mxPoint(t,n),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,t){return this.isValidTarget(t)?this.graph.getEdgeValidationError(null,e,t):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null!=(i=this.getConnectImage(e))&&null!=e){this.iconState=e;var t=[],n=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);n.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(n.dialect=mxConstants.DIALECT_STRICTHTML,n.init(this.graph.container)):(n.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,n.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=n.node.previousSibling&&n.node.parentNode.insertBefore(n.node,n.node.parentNode.firstChild)),n.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=n,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(n.node,this.graph,a,i),t.push(n),this.redrawIcons(t,this.iconState),t}return null},mxConnectionHandler.prototype.redrawIcons=function(e,t){if(null!=e&&null!=e[0]&&null!=t){var n=this.getIconPosition(e[0],t);e[0].bounds.x=n.x,e[0].bounds.y=n.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,t){var n=this.graph.getView().scale,a=t.getCenterX(),i=t.getCenterY();if(this.graph.isSwimlane(t.cell)){var a=0!=(o=this.graph.getStartSize(t.cell)).width?t.x+o.width*n/2:a,i=0!=o.height?t.y+o.height*n/2:i;if(0!=(o=mxUtils.toRadians(mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0)))var n=Math.cos(o),o=Math.sin(o),s=new mxPoint(t.getCenterX(),t.getCenterY()),i=mxUtils.getRotatedPoint(new mxPoint(a,i),n,o,s),a=i.x,i=i.y}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var t=0;t<e.length;t++)e[t].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,t){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!t.isConsumed()&&!this.isConnecting()&&this.isStartEvent(t)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(t.getGraphX(),t.getGraphY()),this.edgeState=this.createEdgeState(t),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var n=this.graph.getPointForEvent(t.getEvent());this.edgeState.cell.geometry.setTerminalPoint(n,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),t.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=t.getX(),this.initialTouchY=t.getY();var a=this.graph.view.getState(this.marker.getCell(t));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(t,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,t){null!=t&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=t,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=t,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var t=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=t},mxConnectionHandler.prototype.convertWaypoint=function(e){var t=this.graph.getView().getScale(),n=this.graph.getView().getTranslate();e.x=e.x/t-n.x,e.y=e.y/t-n.y},mxConnectionHandler.prototype.mouseMove=function(e,t){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-t.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-t.getY())<this.tapAndHoldTolerance),t.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(t),null!=this.first){var n=this.graph.getView().scale,a=null,i=n=new mxPoint(this.graph.snap(t.getGraphX()/n)*n,this.graph.snap(t.getGraphY()/n)*n);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var o=this.first;if(null!=this.selectedIcon){var s=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(s=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=s.x,this.selectedIcon.bounds.y=s.y):(s=new mxRectangle(t.getGraphX()+this.connectIconOffset.x,t.getGraphY()+this.connectIconOffset.y,s,r),this.selectedIcon.bounds=s),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),o=null,null!=this.waypoints)for(o=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),o[i]=a;this.graph.view.updatePoints(this.edgeState,o,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],o=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&null!=(s=this.getTargetPerimeterPoint(this.currentState,t))&&(i=s),null==this.sourceConstraint&&null!=this.previous&&null!=(s=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,t))&&(o=s);if(null==this.currentState&&this.movePreviewAway){if(s=o,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(s=a),a=i.x-s.x,s=i.y-s.y,0==(r=Math.sqrt(a*a+s*s)))return;i.x-=4*a/r,i.y-=4*s/r}null==this.shape&&(a=Math.abs(n.x-this.first.x),s=Math.abs(n.y-this.first.y),a>this.graph.tolerance||s>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(t)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(n=[o],null!=this.waypoints&&(n=n.concat(this.waypoints)),n.push(i),this.shape.points=n),this.drawPreview()),mxEvent.consume(t.getEvent()),t.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),this.icons=null,null!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),t.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&t.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(n=!1,o=t.getSource(),i=0;i<this.icons.length&&!n;i++)n=o==this.icons[i].node||o.parentNode==this.icons[i].node;n||this.updateIcons(this.currentState,this.icons,t)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,t){var n=null,a=e.view,i=a.getPerimeterFunction(e);if(null!=i){var o=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(a=i(a.getPerimeterBounds(e),this.edgeState,o,!1))&&(n=a)}else n=new mxPoint(e.getCenterX(),e.getCenterY());return n},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,t,n){n=null;var a=e.view,i=a.getPerimeterFunction(e),o=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var s=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-s*(Math.PI/180);0!=s&&(t=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),Math.cos(r),Math.sin(r),o)),null!=(e=i(a.getPerimeterBounds(e),e,t,!1))&&(0!=s&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),o)),n=e)}else n=o;return n},mxConnectionHandler.prototype.updateIcons=function(e,t,n){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var t=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),n=Math.abs(t.x-this.first.x),t=Math.abs(t.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(n>this.graph.tolerance||t>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),n=this.graph.view.scale,t=new mxPoint(this.graph.snap(e.getGraphX()/n)*n,this.graph.snap(e.getGraphY()/n)*n),this.waypoints.push(t))},mxConnectionHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(t))return this.addWaypointForEvent(t),void t.consume();if(null==this.error){var n=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(n,a,t.getEvent(),t.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),t.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,t,n,a){if(null!=t||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),o=null;i.beginUpdate();try{if(null!=e&&null==t&&this.isCreateTarget()&&null!=(t=this.createTargetVertex(n,e))){if(null!=(a=this.graph.getDropTarget([t],n,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var s=this.graph.getView().getState(a);if(null!=s){var r=i.getGeometry(t);r.x-=s.origin.x,r.y-=s.origin.y}}this.graph.addCell(t,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=t&&i.getParent(e)==i.getParent(t)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=t.geometry&&t.geometry.relative&&(l=i.getParent(l))),r=s=null,null!=this.edgeState&&(s=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(o=this.insertEdge(l,null,s,e,t,r))){this.graph.setConnectionConstraint(o,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(o,t,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(o,this.edgeState.cell.geometry);var d=i.getGeometry(o);if(null==d&&(d=new mxGeometry,d.relative=!0,i.setGeometry(o,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==t&&(u=this.graph.getPointForEvent(n,!1),u.x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",o,"event",n,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(o,t)}},mxConnectionHandler.prototype.selectCells=function(e,t){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,t,n,a,i,o){return null==this.factoryMethod?this.graph.insertEdge(e,t,n,a,i,o):(t=this.createEdge(n,a,i,o),t=this.graph.addEdge(t,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,t){for(var n=this.graph.getCellGeometry(t);null!=n&&n.relative;)t=this.graph.getModel().getParent(t),n=this.graph.getCellGeometry(t);var a=this.graph.cloneCells([t])[0];if(null!=(n=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(n.x=this.graph.snap(i.x-n.width/2)-this.graph.panDx/this.graph.view.scale,n.y=this.graph.snap(i.y-n.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var o=this.graph.view.getState(t);if(null!=o){var s=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=s?n.x=o.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=s&&(n.y=o.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,t,n,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(t,n,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),e=new mxGeometry,e.relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,t,n){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,t){return!1},mxConstraintHandler.prototype.update=function(e,t){if(this.isEnabled()&&!this.isEventIgnored(e)){var n=this.getTolerance(),a=new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),t):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),s=this.getImageForConstraint(e.getState(),this.constraints[i],o),r=s.src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(n)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(n=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(n.width-=1,n.height-=1),null==this.focusHighlight?(n=new mxRectangleShape(n,null,this.highlightColor,3),n.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,n.init(this.graph.getView().getOverlayPane()),this.focusHighlight=n,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(n.node,this.graph,r)):(this.focusHighlight.bounds=n,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(t.getEvent())||null==t.getState())){var n=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=n.x,a.y-=n.y,this.start(t.getX()+a.x,t.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,o=function(e){e=new mxMouseEvent(e);var t=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=t.x,e.graphY=t.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,o(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,o(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}t.consume(!1)}},mxRubberband.prototype.start=function(e,t){this.first=new mxPoint(e,t)},mxRubberband.prototype.mouseMove=function(e,t){if(!t.isConsumed()&&null!=this.first){var n=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);n.x-=a.x,n.y-=a.y;var a=t.getX()+n.x,n=t.getY()+n.y,i=this.first.x-a,o=this.first.y-n,s=this.graph.tolerance;(null!=this.div||Math.abs(i)>s||Math.abs(o)>s)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,n),t.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,t){var n=null!=this.div;this.reset(),n&&(n=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(n,t.getEvent()),t.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,t){this.currentX=e,this.currentY=t,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,t=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,t),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,t)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var t=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",t++)),this.sizers.push(this.createSizer("n-resize",t++)),this.sizers.push(this.createSizer("ne-resize",t++)),this.sizers.push(this.createSizer("w-resize",t++)),this.sizers.push(this.createSizer("e-resize",t++)),this.sizers.push(this.createSizer("sw-resize",t++)),this.sizers.push(this.createSizer("s-resize",t++))),this.sizers.push(this.createSizer("se-resize",t++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&2>this.state.width&&2>this.state.height&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return e=new mxRectangleShape(e,null,this.getSelectionColor()),e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,t,n,a){return n=n||mxConstants.HANDLE_SIZE,n=new mxRectangle(0,0,n,n),a=this.createSizerShape(n,t,a),a.isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(t)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,t,n){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):t==mxEvent.ROTATION_HANDLE?new mxEllipse(e,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,t,n){null!=e&&(e.bounds.x=Math.round(t-e.bounds.width/2),e.bounds.y=Math.round(n-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var t=this.tolerance,t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,n=0;n<this.sizers.length;n++)if(e.isSource(this.sizers[n])||null!=t&&mxUtils.intersects(this.sizers[n].bounds,t))return n;return null},mxVertexHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&(0<this.tolerance||t.getState()==this.state)){var n=this.getHandleForEvent(t);null!=n&&(this.start(t.getX(),t.getY(),n),t.consume())}},mxVertexHandler.prototype.start=function(e,t,n){e=mxUtils.convertPoint(this.graph.container,e,t),this.startX=e.x,this.startY=e.y,this.index=n,this.selectionBorder.node.style.display=n==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,t){if(t.isConsumed()||null==this.index)null!=this.getHandleForEvent(t)&&t.consume(!1);else{var n=new mxPoint(t.getGraphX(),t.getGraphY()),a=this.graph.isGridEnabledEvent(t.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(n.x=this.graph.snap(n.x/i)*i,n.y=this.graph.snap(n.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],n.x,n.y);else if(this.index==mxEvent.ROTATION_HANDLE){var o=this.state.x+this.state.width/2-n.x,s=this.state.y+this.state.height/2-n.y;this.currentAlpha=0!=o?180*Math.atan(s/o)/Math.PI+90:0>s?180:0,0<o&&(this.currentAlpha-=180),this.rotationRaster&&(o=n.x-this.state.getCenterX(),s=n.y-this.state.getCenterY(),o=Math.abs(Math.sqrt(o*o+s*s)-this.state.height/2-20),o=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(o))))),this.currentAlpha=Math.round(this.currentAlpha/o)*o),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),o=n.x-this.startX,s=n.y-this.startY,n=this.graph.view.translate,m=d*o+l*s,o=l*o-d*s;this.bounds=this.union(this.selectionBounds,o,m,this.index,a,i,n),l=Math.cos(r),c=(d=Math.sin(r))*(o=(s=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(s=s.y-c.y)-s,this.bounds.x+=l*o-d*s-o,this.bounds.y+=c,this.drawPreview()}t.consume()}},mxVertexHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()&&null!=this.index&&null!=this.state){s=new mxPoint(t.getGraphX(),t.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var n=this.graph.isGridEnabledEvent(t.getEvent()),a=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),i=Math.cos(-a),o=Math.sin(-a),s=o*(r=s.x-this.startX)+i*(l=s.y-this.startY),r=i*r-o*l,l=s,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,n)}}finally{this.graph.getModel().endUpdate()}this.reset(),t.consume()}},mxVertexHandler.prototype.rotateCell=function(e,t){var n=this.graph.getModel();if(n.isVertex(e)){var a=e==this.state?this.state:this.graph.view.getState(e);if(null!=a&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(a.style[mxConstants.STYLE_ROTATION]||0)+t,[e]),this.state.cell!=e&&null!=(a=this.graph.getCellGeometry(e))&&!a.relative)if(0!=t){var i=this.graph.getModel().getParent(e),o=this.graph.getCellGeometry(i);if(!a.relative&&null!=o){var s=mxUtils.toRadians(t),i=Math.cos(s),s=Math.sin(s),r=new mxPoint(a.getCenterX(),a.getCenterY()),o=new mxPoint(o.width/2,o.height/2),i=mxUtils.getRotatedPoint(r,i,s,o);(a=a.clone()).x=i.x-a.width/2,a.y=i.y-a.height/2,n.setGeometry(e,a)}}else a=a.clone(),a.x+=dx,a.y+=dy,n.setGeometry(e,a);for(a=n.getChildCount(e),i=0;i<a;i++)this.rotateCell(n.getChildAt(e,i),t)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,t,n,a,i){var o=this.graph.model.getGeometry(e);if(null!=o)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,t=(this.labelShape.bounds.getCenterX()-this.startX)/a,n=(this.labelShape.bounds.getCenterY()-this.startY)/a,o=o.clone(),null==o.offset?o.offset=new mxPoint(t,n):(o.offset.x+=t,o.offset.y+=n),this.graph.model.setGeometry(e,o);else{if(a=this.union(o,t,n,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){t=a.getCenterX()-o.getCenterX(),n=a.getCenterY()-o.getCenterY(),i=Math.cos(r);var s=Math.sin(r),r=i*t-s*n-t;t=s*t+i*n-n,n=a.x-o.x;var l=a.y-o.y,d=i*n-s*l;i=s*n+i*l,a.x+=r,a.y+=t,this.graph.isCellCollapsed(e)||0==r&&0==t||(n=o.x-a.x+d,l=o.y-a.y+i,this.moveChildren(e,n,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,t,n){for(var a=this.graph.getModel(),i=a.getChildCount(e),o=0;o<i;o++){var s=a.getChildAt(e,o);if(a.isVertex(s)){var r=this.graph.getCellGeometry(s);null!=r&&!r.relative&&(r=r.clone(),r.x+=t,r.y+=n,a.setGeometry(s,r))}}},mxVertexHandler.prototype.union=function(e,t,n,a,i,o,s){if(this.singleSizer){s=e.x+e.width+t;var r=e.y+e.height+n;return i&&(s=this.graph.snap(s/o)*o,r=this.graph.snap(r/o)*o),(o=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(s,r,0,0)),o}var l=(r=e.x-s.x*o)+e.width,d=e.y-s.y*o;return e=d+e.height,4<a?(e+=n,i&&(e=this.graph.snap(e/o)*o)):3>a&&(d+=n,i&&(d=this.graph.snap(d/o)*o)),0==a||3==a||5==a?(r+=t,i&&(r=this.graph.snap(r/o)*o)):2!=a&&4!=a&&7!=a||(l+=t,i&&(l=this.graph.snap(l/o)*o)),i=l-r,e-=d,0>i&&(r+=i,i=Math.abs(i)),0>e&&(d+=e,e=Math.abs(e)),new mxRectangle(r+s.x*o,d+s.y*o,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var t=e.x+e.width,n=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],t,n);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var o=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(o),o=Math.sin(o),r=new mxPoint(e.getCenterX(),e.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),s,o,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=t,l.y=e.y,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=t,l.y=i,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=t,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(o=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(o),o=Math.sin(o),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),s,o,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||0>=mxGraphHandler.prototype.maxCells)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return e=new mxPolyline(e,this.getSelectionColor()),e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),t=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!t.isConnectableCell(n))return null;var a=t.graph.getModel();return(n==t.state.cell||null!=n&&!t.graph.connectableEdges&&a.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=t.graph.getModel(),n=null!=(n=t.graph.view.getTerminalPort(e,t.graph.view.getState(n.getTerminal(t.state.cell,!t.isSource)),!t.isSource))?n.cell:null;return t.error=t.validateConnection(t.isSource?e.cell:n,t.isSource?n:e.cell),null==t.error},e},mxEdgeHandler.prototype.validateConnection=function(e,t){return this.graph.getEdgeValidationError(this.state.cell,e,t)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,t=[],n=0;n<this.abspoints.length;n++)if(this.isHandleVisible(n)){var a=n==this.abspoints.length-1;if((a=0==n||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(n);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(n))if(mxClient.IS_TOUCH){var o=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,o)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);t.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return t},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var t=this.tolerance,t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,n=0;n<this.bends.length;n++)if((e.isSource(this.bends[n])||null!=t&&mxUtils.intersects(this.bends[n].bounds,t))&&"hidden"!=this.bends[n].node.style.visibility)return n;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,t){var n=null;null!=(n=this.getHandleForEvent(t))&&!t.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(t.getEvent())?this.removePoint(this.state,n):(n!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(t.getCell()))&&this.start(t.getX(),t.getY(),n),t.consume())},mxEdgeHandler.prototype.start=function(e,t,n){this.startX=e,this.startY=t,this.isSource=null!=this.bends&&0==n,this.isTarget=null!=this.bends&&n==this.bends.length-1,this.isLabel=n==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(t=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=t&&this.graph.isCellDisconnectable(e,t,this.isSource))&&(this.index=n)):this.index=n},mxEdgeHandler.prototype.clonePreviewState=function(e,t){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),n=this.getSnapToTerminalTolerance(),a=this.graph.getView(),i=!1,o=!1;if(this.snapToTerminals&&0<n){var s=function(e){if(null!=e){var a=e.x;Math.abs(t.x-a)<n&&(t.x=a,i=!0),e=e.y,Math.abs(t.y-e)<n&&(t.y=e,o=!0)}},r=function(e){null!=e&&s.call(this,new mxPoint(a.getRoutingCenterX(e),a.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&s.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=a.scale,r=a.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),o||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var t=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?t=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(t=this.constraintHandler.currentFocus),t},mxEdgeHandler.prototype.getPreviewPoints=function(e){var t=null!=(t=this.graph.getCellGeometry(this.state.cell)).points?t.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(t=null):(this.convertPoint(e,!1),null==t?t=[e]:t[this.index-1]=e),t},mxEdgeHandler.prototype.updatePreviewState=function(e,t,n){var a=this.isSource?n:this.state.getVisibleTerminalState(!0),i=this.isTarget?n:this.state.getVisibleTerminalState(!1),o=this.graph.getConnectionConstraint(e,a,!0),s=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?o=r:this.isTarget&&(s=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,o),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,s),(this.isSource||this.isTarget)&&null==n&&(e.setAbsoluteTerminalPoint(t,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,t){if(null!=this.index&&null!=this.marker){var n=this.getPointForEvent(t);if(this.isLabel)this.label.x=n.x,this.label.y=n.y;else{this.points=this.getPreviewPoints(n);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(t):null,i=this.clonePreviewState(n,null!=a?a.cell:null);this.updatePreviewState(i,n,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(t.getEvent()),t.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(t)&&t.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,t){if(null!=this.index&&null!=this.marker){var n=this.state.cell;if(t.getX()!=this.startX||t.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)n=this.connect(n,a,this.isSource,this.graph.isCloneEvent(t.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),t);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(n));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(n,a,this.isSource)}}else this.active?this.changePoints(n,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),n!=this.state.cell&&this.graph.setSelectionCell(n)),t.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,t){var n=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return t&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/n-a.x),e.y=Math.round(e.y/n-a.y),null!=(n=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=n.origin.x,e.y-=n.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,t,n){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),o=this.graph.getView().getRelativePoint(e,t,n);i.x=o.x,i.y=o.y;var s=this.graph.getView().scale;i.offset=new mxPoint(0,0),o=this.graph.view.getPoint(e,i),i.offset=new mxPoint((t-o.x)/s,(n-o.y)/s),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,t,n,a,i){var o=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var s=e.clone();i.add(o,s,i.getChildCount(o));var r=i.getTerminal(e,!n);this.graph.connectCell(s,r,!n),e=s}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,t,n,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,t,n){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(t,n),a.setGeometry(e,i),this.graph.connectCell(e,null,n,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,t){var n=this.graph.getModel(),a=n.getGeometry(e);null!=a&&(a=a.clone(),a.points=t,n.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,t){var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a=this.graph.isGridEnabledEvent(t);this.convertPoint(n,a),this.addPointAt(e,n.x,n.y),mxEvent.consume(t)},mxEdgeHandler.prototype.addPointAt=function(e,t,n){var a=this.graph.getCellGeometry(e.cell);if(t=new mxPoint(t,n),null!=a){a=a.clone(),n=this.graph.view.translate;var i=this.graph.view.scale;n=mxUtils.findNearestSegment(e,(t.x+n.x)*i,(t.y+n.y)*i),null==a.points?a.points=[t]:a.points.splice(n,0,t),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,t){if(0<t&&t<this.abspoints.length-1){var n=this.graph.getCellGeometry(this.state.cell);null!=n&&null!=n.points&&((n=n.clone()).points.splice(t-1,1),this.graph.getModel().setGeometry(e.cell,n),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var t=this.state.cell,n=this.graph.getModel().getTerminal(t,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=n&&!this.graph.isCellDisconnectable(t,n,e)||null==n&&!this.graph.isTerminalPointMovable(t,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=n&&this.graph.isCellDisconnectable(t,n,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,t=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-t/2),Math.round(this.label.y-t/2),t,t),this.labelShape.redraw(),t=this.graph.getLabel(e),null!=t&&0<t.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var n=this.abspoints.length-1,e=this.abspoints[0],a=this.abspoints[0].y,t=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-t.width/2),Math.round(a-t.height/2),t.width,t.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();var a=this.abspoints[n],i=this.abspoints[n].x,n=this.abspoints[n].y,o=this.bends.length-1,t=this.bends[o].bounds;this.bends[o].bounds=new mxRectangle(Math.round(i-t.width/2),Math.round(n-t.height/2),t.width,t.height),this.bends[o].fill=this.getHandleFillColor(o),this.bends[o].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,t){var n=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=n){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,o=this.abspoints[a].y,s=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-s.width/2),Math.round(o-s.height/2),s.width,s.height),this.bends[a].redraw(),this.points[a-1]=n[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE,e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],t=this.createHandleShape(0);return this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),t=this.createHandleShape(2),this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var t=this.getCursorForBend();return e.node.style.cursor=t,t=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,t),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var t=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(t=this.doubleClickOrientationResource,t=mxResources.get(t)||t),t},mxElbowEdgeHandler.prototype.convertPoint=function(e,t){var n=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;t&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/n-a.x-i.x),e.y=Math.round(e.y/n-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,t){var n=null==(n=null!=(n=this.graph.getModel().getGeometry(this.state.cell).points)?n[0]:null)?new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2):new mxPoint(this.graph.getView().scale*(n.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(n.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var o=new mxRectangle(Math.round(n.x-a/2),Math.round(n.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(o,this.labelShape.bounds)&&(a+=3,i+=3,o=new mxRectangle(Math.round(n.x-a/2),Math.round(n.y-i/2),a,i)),this.bends[1].bounds=o,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var t=this.state.absolutePoints,n=t[0].clone();this.convertPoint(n,!1);for(var a=[],i=1;i<t.length;i++){var o=t[i].clone();this.convertPoint(o,!1),i==this.index&&(n.x==o.x?(n.x=e.x,o.x=e.x):(n.y=e.y,o.y=e.y)),i<t.length-1&&a.push(o),n=o}if(1==a.length){if(n=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(o=this.state.getVisibleTerminalState(!1))&null!=i){var s=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(o,a[0].x+s,a[0].y+r)?t[1].y==t[2].y?a[0].y=n.getRoutingCenterY(i)-r:a[0].x=n.getRoutingCenterX(i)-s:mxUtils.contains(i,a[0].x+s,a[0].y+r)&&(t[1].y==t[0].y?a[0].y=n.getRoutingCenterY(o)-r:a[0].x=n.getRoutingCenterX(o)-s)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],t=this.createHandleShape(0);this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none");var n=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<n.length-1;a++)t=this.createVirtualBend(),e.push(t),t.node.style.cursor=0==n[a].x-n[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none")}return t=this.createHandleShape(n.length),this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,t){if(this.graph.isCellBendable(this.state.cell)){var n=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],t=a[i+1];var o=new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(o.x-n/2),Math.round(o.y-n/2),n,n),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,t){t=[];var n=this.abspoints;if(1<n.length)for(var a=n[0],i=n[1],o=2;o<n.length;o++){var s=n[o];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(s.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(s.y)||(a=i,i=i.clone(),this.convertPoint(i,!1),t.push(i)),i=s}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,t){this.normalKeys[e]=t},mxKeyHandler.prototype.bindShiftKey=function(e,t){this.shiftKeys[e]=t},mxKeyHandler.prototype.bindControlKey=function(e,t){this.controlKeys[e]=t},mxKeyHandler.prototype.bindControlShiftKey=function(e,t){this.controlShiftKeys[e]=t},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var t=this.getFunction(e);null!=t&&(t(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,t){this.reset(t,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,t){t.getX()==this.lastX&&t.getY()==this.lastY||(this.reset(t,!0),(this.isHideOnHover()||t.getState()!=this.state||t.getSource()!=this.node&&(!this.stateSource||null!=t.getState()&&this.stateSource==(t.isSource(t.getState().shape)||!t.isSource(t.getState().text))))&&this.hideTooltip()),this.lastX=t.getX(),this.lastY=t.getY()},mxTooltipHandler.prototype.mouseUp=function(e,t){this.reset(t,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,t){if(this.resetTimer(),t&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var n=e.getState(),a=e.getSource(),i=e.getX(),o=e.getY(),s=e.isSource(n.shape)||e.isSource(n.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(n,a,i,o);this.show(e,i,o),this.state=n,this.node=a,this.stateSource=s}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,t,n){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=t+a.x+"px",this.div.style.top=n+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,t){},mxCellTracker.prototype.mouseMove=function(e,t){this.isEnabled()&&this.process(t)},mxCellTracker.prototype.mouseUp=function(e,t){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,t,n){var a=mxUtils.bind(this,function(){this.editor.execute(t)});n?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,t,n,a){if(null!=this.config){var i=this.createConditions(e,n,a);this.addItems(e,t,n,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,t,n,a,i,o,s){for(var r=!1;null!=o;){if("add"==o.nodeName){if(null==(l=o.getAttribute("if"))||i[l]){var l=o.getAttribute("as"),l=mxResources.get(l)||l,d=mxUtils.eval(mxUtils.getTextContent(o)),c=o.getAttribute("action"),m=o.getAttribute("icon"),u=o.getAttribute("iconCls");r&&(t.addSeparator(s),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(t,e,l,m,d,c,n,s,u),this.addItems(e,t,n,a,i,o.firstChild,l)}}else"separator"==o.nodeName&&(r=!0);o=o.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,t,n,a,i,o,s,r,l){return e.addItem(n,a,function(e){"function"==typeof i&&i.call(t,t,s,e),null!=o&&t.execute(o,s,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,t,n){var a=e.graph.getModel(),i=a.getChildCount(t),o=[];for(o.nocell=null==t,o.ncells=1<e.graph.getSelectionCount(),o.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),o.cell=null!=t,a=null!=t&&1==e.graph.getSelectionCount(),o.nonEmpty=a&&0<i,o.expandable=a&&e.graph.isCellFoldable(t,!1),o.collapsable=a&&e.graph.isCellFoldable(t,!0),o.validRoot=a&&e.graph.isValidRoot(t),o.emptyValidRoot=o.validRoot&&0==i,o.swimlane=a&&e.graph.isSwimlane(t),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var s=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof s&&(o[r]=s(e,t,n))}return o},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,t){var n=t.getProperty("function");this.editor.insertFunction=null!=n?mxUtils.bind(this,function(){n.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,t,n,a){var i=mxUtils.bind(this,function(){null!=n&&0<n.length&&this.editor.execute(n)});return this.toolbar.addItem(e,t,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,t,n){var a=mxUtils.bind(this,function(){this.editor.execute(n)});this.addOption(e,t,a)},mxDefaultToolbar.prototype.addOption=function(e,t,n){return this.toolbar.addOption(e,t,n)},mxDefaultToolbar.prototype.addMode=function(e,t,n,a,i){var o=mxUtils.bind(this,function(){this.editor.setMode(n),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,t,o,a)},mxDefaultToolbar.prototype.addPrototype=function(e,t,n,a,i,o){var s=function(){return"function"==typeof n?n():null!=n?n.clone():null},r=mxUtils.bind(this,function(e,t){"function"==typeof i?i(this.editor,s(),e,t):this.drop(s(),e,t),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,t,r,a,null,o),this.installDropHandler(e,function(e,t,n){r(t,n)}),e},mxDefaultToolbar.prototype.drop=function(e,t,n){var a=this.editor.graph,i=a.getModel();if(null!=n&&!i.isEdge(n)&&this.connectOnDrop&&a.isCellConnectable(n))this.connect(e,t,n);else{for(;null!=n&&!a.isValidDropTarget(n,[e],t);)n=i.getParent(n);this.insert(e,t,n)}},mxDefaultToolbar.prototype.insert=function(e,t,n){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(t),o=mxEvent.getClientY(t),i=mxUtils.convertPoint(a.container,i,o);return a.isSplitEnabled()&&a.isSplitTarget(n,[e],t)?a.splitEdge(n,[e],null,i.x,i.y):this.editor.addVertex(n,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,t,n){var a=(t=this.editor.graph).getModel();if(null!=n&&t.isCellConnectable(e)&&t.isEdgeValid(null,n,e)){var i=null;a.beginUpdate();try{var o=a.getGeometry(n),s=a.getGeometry(e).clone();s.x=o.x+(o.width-s.width)/2,s.y=o.y+(o.height-s.height)/2;var r=this.spacing*t.gridSize,l=20*a.getDirectedEdgeCount(n,!0);this.editor.horizontalFlow?s.x+=(s.width+o.width)/2+r+l:s.y+=(s.height+o.height)/2+r+l,e.setGeometry(s);var d=a.getParent(n);if(t.addCell(e,d),t.constrainChild(e),i=this.editor.createEdge(n,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}t.addEdge(i,d,n,e)}finally{a.endUpdate()}t.setSelectionCells([e,i]),t.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(e,t){var n=document.createElement("img");n.setAttribute("src",e.getAttribute("src"));var a=mxUtils.bind(this,function(i){n.style.width=2*e.offsetWidth+"px",n.style.height=2*e.offsetHeight+"px",mxUtils.makeDraggable(e,this.editor.graph,t,n),mxEvent.removeListener(n,"load",a)});mxClient.IS_IE?a():mxEvent.addListener(n,"load",a)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="&#xa;",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var t=e.getUrlImage();if(null==t||mxClient.IS_LOCAL)e.execute("show");else{var n=mxUtils.getViewXml(e.graph,1),n=mxUtils.getXml(n,"\n");mxUtils.submit(t,e.postParameterName+"="+encodeURIComponent(n),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,t){e.showProperties(t)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,t){e.graph.isEnabled()&&e.graph.isCellEditable(t)&&e.graph.startEditingAtCell(t)}),this.addAction("toBack",function(e,t){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,t){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,t){e.graph.enterGroup(t)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var t=e.graph.getChildVertices();e.graph.foldCells(!0,!1,t)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var t=e.graph.getChildVertices();e.graph.foldCells(!1,!1,t)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var t=100*e.graph.getView().scale,t=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,t))/100;isNaN(t)||e.graph.getView().setScale(t)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,t){this.actions[e]=t},mxEditor.prototype.execute=function(e,t,n){var a=this.actions[e];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(t){throw mxUtils.error("Cannot execute "+e+": "+t.message,280,!0),t}else mxUtils.error("Cannot find action "+e,280,!0)},mxEditor.prototype.addTemplate=function(e,t){this.templates[e]=t},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,t,n){return this.createPopupMenu(e,t,n)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,t){return this.createEdge(e,t)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return e=new mxSwimlaneManager(e,!1),e.isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(e){var t=new mxLayoutManager(e),n=this;return t.getLayout=function(t){var a=null,i=n.graph.getModel();return null!=i.getParent(t)&&(n.layoutSwimlanes&&e.isSwimlane(t)?(null==n.swimlaneLayout&&(n.swimlaneLayout=n.createSwimlaneLayout()),a=n.swimlaneLayout):n.layoutDiagram&&(e.isValidRoot(t)||null==i.getParent(i.getParent(t)))&&(null==n.diagramLayout&&(n.diagramLayout=n.createDiagramLayout()),a=n.diagramLayout)),a},t},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(e){e.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(t,n){var a=n.getProperty("cell");null!=a&&e.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,a),n.consume())}))},mxEditor.prototype.installUndoHandler=function(e){var t=mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");this.undoManager.undoableEditHappened(n)});e.getModel().addListener(mxEvent.UNDO,t),e.getView().addListener(mxEvent.UNDO,t),t=function(t,n){var a=n.getProperty("edit").changes;e.setSelectionCells(e.getSelectionCellsForChanges(a))},this.undoManager.addListener(mxEvent.UNDO,t),this.undoManager.addListener(mxEvent.REDO,t)},mxEditor.prototype.installDrillHandler=function(e){var t=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,t),e.getView().addListener(mxEvent.UP,t)},mxEditor.prototype.installChangeHandler=function(e){var t=mxUtils.bind(this,function(t,n){this.setModified(!0),1==this.validating&&e.validateGraph();for(var a=n.getProperty("edit").changes,i=0;i<a.length;i++){var o=a[i];if(o instanceof mxRootChange||o instanceof mxValueChange&&o.cell==this.graph.model.root||o instanceof mxCellAttributeChange&&o.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});e.getModel().addListener(mxEvent.CHANGE,t)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,t){this.isActive&&t.consume()},mouseUp:function(e,t){this.isActive&&(this.isActive=!1,t.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,t=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return t.isVertexIgnored=function(e){return!t.graph.isSwimlane(e)},t},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(e){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(t){e.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.treeLayout=function(e,t){null!=e&&new mxCompactTreeLayout(this.graph,t).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",t=this.graph,n=t.getCurrentRoot();null!=n&&null!=t.getModel().getParent(t.getModel().getParent(n));)t.isValidRoot(n)&&(e=" > "+t.convertValueToString(n)+e),n=t.getModel().getParent(n);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var t=mxUtils.load(e).getXml();this.readGraphModel(t.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,t){if(null!=(e=e||this.getUrlPost())&&0<e.length){var n=this.writeGraphModel(t);this.postDiagram(e,n),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(e,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(e,this.postParameterName+"="+t,mxUtils.bind(this,function(n){this.fireEvent(new mxEventObject(mxEvent.POST,"request",n,"url",e,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var t=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(t,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,t,n,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,t,n)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,t){null!=t.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,t){var n=this.graph.getStylesheet().styles[t];this.graph.getView().getStylesheet().putCellStyle(t,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,n),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot()),null!=e){this.graph.stopEditing(!0);var t=(n=mxUtils.getOffset(this.graph.container)).x+10,n=n.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(t+=a.x+Math.min(200,a.width),n+=a.y)}else t=this.properties.getX(),n=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,t,n,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(e){var t=this.graph.getModel(),n=t.getValue(e);if(mxUtils.isNode(n)){var a=new mxForm("properties");a.addText("ID",e.getId()).setAttribute("readonly","true");var i=null,o=null,s=null,r=null,l=null;t.isVertex(e)&&null!=(i=t.getGeometry(e))&&(o=a.addText("top",i.y),s=a.addText("left",i.x),r=a.addText("width",i.width),l=a.addText("height",i.height));for(var d=t.getStyle(e),c=a.addText("Style",d||""),m=n.attributes,u=[],n=0;n<m.length;n++)u[n]=a.addTextarea(m[n].nodeName,m[n].nodeValue,"label"==m[n].nodeName?4:2);return n=mxUtils.bind(this,function(){this.hideProperties(),t.beginUpdate();try{null!=i&&(i=i.clone(),i.x=parseFloat(s.value),i.y=parseFloat(o.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),t.setGeometry(e,i)),0<c.value.length?t.setStyle(e,c.value):t.setStyle(e,null);for(var n=0;n<m.length;n++){var a=new mxCellAttributeChange(e,m[n].nodeName,u[n].value);t.execute(a)}this.graph.isAutoSizeCell(e)&&this.graph.updateCellSize(e)}finally{t.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),a.addButtons(n,d),a.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var e=document.createElement("div");e.style.padding="4px",e.style.paddingLeft="20px";var t=document.body.clientWidth;(t=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,e,t-220,this.tasksTop,200)).setClosable(!0),t.destroyOnClose=!1;var n=mxUtils.bind(this,function(t){mxEvent.release(e),e.innerHTML="",this.createTasks(e)});this.graph.getModel().addListener(mxEvent.CHANGE,n),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,n),this.graph.addListener(mxEvent.ROOT,n),null!=this.tasksWindowImage&&t.setImage(this.tasksWindowImage),this.tasks=t,this.createTasks(e)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var t=document.createElement("iframe");t.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),t.setAttribute("height","100%"),t.setAttribute("width","100%"),t.setAttribute("frameBorder","0"),t.style.backgroundColor="white",e=document.body.clientWidth;var n=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,t,(e-this.helpWidth)/2,(n-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){t.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var t=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),n=new mxOutline(this.graph,e);t.setClosable(!0),t.setResizable(!0),t.destroyOnClose=!1,t.addListener(mxEvent.RESIZE_END,function(){n.update()}),this.outline=t,this.outline.outline=n}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,t,n){this.popupHandler.createMenu(this,e,t,n)},mxEditor.prototype.createEdge=function(e,t){var n=null;if(null!=this.defaultEdge)n=this.graph.getModel().cloneCell(this.defaultEdge);else{(n=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,n.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&n.setStyle(a),n},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var t=this.consumeCycleAttribute(e);null!=t&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+t)}},mxEditor.prototype.addVertex=function(e,t,n,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(n,a);var o=this.graph.getView().scale,s=i.getGeometry(t),r=i.getGeometry(e);if(this.graph.isSwimlane(t)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(n-=l.origin.x*o,a-=l.origin.y*o,this.graph.isConstrainedMoving){var r=s.width,d=s.height,c=l.x+l.width;n+r>c&&(n-=n+r-c),a+d>(c=l.y+l.height)&&(a-=a+d-c)}}else null!=r&&(n-=r.x*o,a-=r.y*o)}}(s=s.clone()).x=this.graph.snap(n/o-this.graph.getView().translate.x-this.graph.gridSize/2),s.y=this.graph.snap(a/o-this.graph.getView().translate.y-this.graph.gridSize/2),t.setGeometry(s),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(t),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",t,"parent",e)),i.beginUpdate();try{null!=(t=this.graph.addCell(t,e))&&(this.graph.constrainChild(t),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",t)))}finally{i.endUpdate()}return null!=t&&(this.graph.setSelectionCell(t),this.graph.scrollCellToVisible(t),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",t))),t},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var t=e.getName();mxCodecRegistry.codecs[t]=e;var n=mxUtils.getFunctionName(e.template.constructor);n!=t&&mxCodecRegistry.addAlias(n,t)}return e},addAlias:function(e,t){mxCodecRegistry.aliases[e]=t},getCodec:function(e){t=null;if(null!=e){var t=mxUtils.getFunctionName(e),n=mxCodecRegistry.aliases[t];if(null!=n&&(t=n),null==(t=mxCodecRegistry.codecs[t]))try{t=new mxObjectCodec(new e),mxCodecRegistry.register(t)}catch(e){}}return t}};mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,t){return this.objects[e]=t},mxCodec.prototype.getObject=function(e){var t=null;return null!=e&&null==(t=this.objects[e])&&null==(t=this.lookup(e))&&null!=(e=this.getElementById(e))&&(t=this.decode(e)),t},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,t){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=t?t:"id",e)},mxCodec.prototype.getId=function(e){var t=null;return null!=e&&null==(t=this.reference(e))&&e instanceof mxCell&&null==(t=e.getId())&&0==(t=mxCellPath.create(e)).length&&(t="root"),t},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var t=null;if(null!=e&&null!=e.constructor){var n=mxCodecRegistry.getCodec(e.constructor);null!=n?t=n.encode(this,e):mxUtils.isNode(e)?t=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return t},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0)).removeAttribute("as")}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,t,n){if(t.appendChild(this.encode(e)),null==n||n){n=e.getChildCount();for(var a=0;a<n;a++)this.encodeCell(e.getChildAt(a),t)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,t){t=null==t||t;var n=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(n=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(n))for(var a=e.firstChild;null!=a&&!this.isCellCodec(n);)n=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(n)||(n=mxCodecRegistry.getCodec(mxCell)),n=n.decode(this,e),t&&this.insertIntoGraph(n)}return n},mxCodec.prototype.insertIntoGraph=function(e){var t=e.parent,n=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),e.parent=null,null!=t&&t.insert(e),null!=n&&n.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,t,n){null!=t&&null!=n&&e.setAttribute(t,n)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var t=this.reverse[e];null!=t&&(e=t)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var t=this.mapping[e];null!=t&&(e=t)}return e},mxObjectCodec.prototype.isExcluded=function(e,t,n,a){return t==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,t)},mxObjectCodec.prototype.isReference=function(e,t,n,a){return 0<=mxUtils.indexOf(this.idrefs,t)},mxObjectCodec.prototype.encode=function(e,t){var n=e.document.createElement(this.getName());return t=this.beforeEncode(e,t,n),this.encodeObject(e,t,n),this.afterEncode(e,t,n)},mxObjectCodec.prototype.encodeObject=function(e,t,n){e.setAttribute(n,"id",e.getId(t));for(var a in t){var i=a,o=t[i];null!=o&&!this.isExcluded(t,i,o,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,t,i,o,n))}},mxObjectCodec.prototype.encodeValue=function(e,t,n,a,i){if(null!=a){if(this.isReference(t,n,a,!0)){var o=e.getId(a);if(null==o)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+n+"="+a);a=o}o=this.template[n],(null==n||e.encodeDefaults||o!=a)&&(n=this.getAttributeName(n),this.writeAttribute(e,t,n,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,t,n,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,t,n,a,i):this.writeComplexAttribute(e,t,n,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,t,n,a,i){a=this.convertValueToXml(a),null==n?(t=e.document.createElement("add"),"function"==typeof a?t.appendChild(e.document.createTextNode(a)):e.setAttribute(t,"value",a),i.appendChild(t)):"function"!=typeof a&&e.setAttribute(i,n,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,t,n,a,i){null!=(e=e.encode(a))?(null!=n&&e.setAttribute("as",n),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+n+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,t,n){return t},mxObjectCodec.prototype.afterEncode=function(e,t,n){return n},mxObjectCodec.prototype.decode=function(e,t,n){var a=t.getAttribute("id"),i=e.objects[a];return null==i&&(i=n||this.cloneTemplate(),null!=a&&e.putObject(a,i)),t=this.beforeDecode(e,t,i),this.decodeNode(e,t,i),this.afterDecode(e,t,i)},mxObjectCodec.prototype.decodeNode=function(e,t,n){null!=t&&(this.decodeAttributes(e,t,n),this.decodeChildren(e,t,n))},mxObjectCodec.prototype.decodeAttributes=function(e,t,n){if(null!=(t=t.attributes))for(var a=0;a<t.length;a++)this.decodeAttribute(e,t[a],n)},mxObjectCodec.prototype.decodeAttribute=function(e,t,n){var a=t.nodeName;if("as"!=a&&"id"!=a){t=this.convertValueFromXml(t.nodeValue);var i=this.getFieldName(a);if(this.isReference(n,i,t,!1)){if(null==(e=e.getObject(t)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+t);t=e}this.isExcluded(n,a,t,!1)||(n[a]=t)}},mxObjectCodec.prototype.decodeChildren=function(e,t,n){for(t=t.firstChild;null!=t;){var a=t.nextSibling;t.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,t,n)&&this.decodeChild(e,t,n),t=a}},mxObjectCodec.prototype.decodeChild=function(e,t,n){var a=this.getFieldName(t.getAttribute("as"));if(null==a||!this.isExcluded(n,a,t,!1)){var i=this.getFieldTemplate(n,a,t),o=null;"add"==t.nodeName?null==(o=t.getAttribute("value"))&&(o=mxUtils.eval(mxUtils.getTextContent(t))):o=e.decode(t,i),this.addObjectValue(n,a,o,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,t,n){return(e=e[t])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,t,n,a){null!=n&&n!=a&&(null!=t&&0<t.length?e[t]=n:e.push(n))},mxObjectCodec.prototype.processInclude=function(e,t,n){if("include"==t.nodeName){if(null!=(t=t.getAttribute("name")))try{var a=mxUtils.load(t).getDocumentElement();null!=a&&e.decode(a,n)}catch(e){}return!0}return!1},mxObjectCodec.prototype.beforeDecode=function(e,t,n){return t},mxObjectCodec.prototype.afterDecode=function(e,t,n){return n},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,t,n,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==t&&n.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,t,n){if(null!=t.value&&t.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=n;(n=mxClient.IS_IE?t.value.cloneNode(!0):e.document.importNode(t.value,!0)).appendChild(a),e=a.getAttribute("id"),n.setAttribute("id",e),a.removeAttribute("id")}return n},e.beforeDecode=function(e,t,n){var a=t,i=this.getName();if(t.nodeName!=i?(a=t.getElementsByTagName(i)[0],null!=a&&a.parentNode==t?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,n.value=t.cloneNode(!0),null!=(t=n.value.getAttribute("id"))&&(n.setId(t),n.value.removeAttribute("id"))):n.setId(t.getAttribute("id")),null!=a)for(t=0;t<this.idrefs.length;t++){var i=this.idrefs[t],o=a.getAttribute(i);if(null!=o){a.removeAttribute(i);var s=e.objects[o]||e.lookup(o);null==s&&null!=(o=e.getElementById(o))&&(s=(mxCodecRegistry.codecs[o.nodeName]||this).decode(e,o)),n[i]=s}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,t,n){var a=e.document.createElement("root");e.encodeCell(t.getRoot(),a),n.appendChild(a)},e.decodeChild=function(e,t,n){"root"==t.nodeName?this.decodeRoot(e,t,n):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,t,n){var a=null;for(t=t.firstChild;null!=t;){var i=e.decodeCell(t);null!=i&&null==i.getParent()&&(a=i),t=t.nextSibling}null!=a&&n.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,t,n){return e.encodeCell(t.root,n),n},e.beforeDecode=function(e,t,n){if(null!=t.firstChild&&t.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(t=t.cloneNode(!0)).firstChild;for(n.root=e.decodeCell(a,!1),n=a.nextSibling,a.parentNode.removeChild(a),a=n;null!=a;)n=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=n}return t},e.afterDecode=function(e,t,n){return n.previous=n.root,n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,t,n,a){return!("child"!=t||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,t)},e.afterEncode=function(e,t,n){return this.isReference(t,"child",t.child,!0)?n.setAttribute("child",e.getId(t.child)):e.encodeCell(t.child,n),n},e.beforeDecode=function(e,t,n){if(null!=t.firstChild&&t.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(t=t.cloneNode(!0)).firstChild;for(n.child=e.decodeCell(a,!1),n=a.nextSibling,a.parentNode.removeChild(a),a=n;null!=a;){if(n=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=n}}else a=t.getAttribute("child"),n.child=e.getObject(a);return t},e.afterDecode=function(e,t,n){return n.child.parent=n.previous,n.previous=n.parent,n.previousIndex=n.index,n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,t,n){return n.previous=n.terminal,n},e}());var mxGenericChangeCodec=function(e,t){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,a){return mxUtils.isNode(a.cell)&&(a.cell=e.decodeCell(a.cell,!1)),a.previous=a[t],a},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,t){return this.encodeCell(e,t,t.graph.getModel().getRoot())},e.encodeCell=function(e,t,n){var a=t.graph.getModel(),i=t.getState(n),o=a.getParent(n);if(null==o||null!=i){var s=a.getChildCount(n),r=t.graph.getCellGeometry(n),l=null;if(o==a.getRoot()?l="layer":null==o?l="graph":a.isEdge(n)?l="edge":0<s&&null!=r?l="group":a.isVertex(n)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=t.graph.getLabel(n)&&(d.setAttribute("label",t.graph.getLabel(n)),t.graph.isHtmlLabel(n)&&d.setAttribute("html",!0)),null==o){var c=t.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",t.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(o=i.style[c])&&"object"==typeof o&&(o=mxStyleRegistry.getName(o)),null!=o&&"function"!=typeof o&&"object"!=typeof o&&d.setAttribute(c,o);if(null!=(o=i.absolutePoints)&&0<o.length){for(r=Math.round(o[0].x)+","+Math.round(o[0].y),c=1;c<o.length;c++)r+=" "+Math.round(o[c].x)+","+Math.round(o[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<s;c++)null!=(i=this.encodeCell(e,t,a.getChildAt(n,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,t){var n,a=e.document.createElement(this.getName());for(n in t.styles){var i=t.styles[n],o=e.document.createElement("add");if(null!=n){o.setAttribute("as",n);for(var s in i){var r=this.getStringValue(s,i[s]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",s),o.appendChild(l)}}0<o.childNodes.length&&a.appendChild(o)}}return a},e.getStringValue=function(e,t){var n=typeof t;return"function"==n?t=mxStyleRegistry.getName(style[j]):"object"==n&&(t=null),t},e.decode=function(e,t,n){n=n||new this.template.constructor;var a=t.getAttribute("id");for(null!=a&&(e.objects[a]=n),t=t.firstChild;null!=t;){if(!this.processInclude(e,t,n)&&"add"==t.nodeName&&null!=(a=t.getAttribute("as"))){var i=t.getAttribute("extend"),o=null!=i?mxUtils.clone(n.styles[i]):null;for(null==o&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),o={}),i=t.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var s=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(o[s]=l)}else"remove"==i.nodeName&&delete o[s]}i=i.nextSibling}n.putCellStyle(a,o)}t=t.nextSibling}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,t){return null},e.decode=function(e,t,n){if(null!=n)for(t=t.firstChild;null!=t;){if(!this.processInclude(e,t,n)&&"add"==t.nodeName){var a=t.getAttribute("as"),i=t.getAttribute("action"),o=t.getAttribute("control");n.bindAction(a,i,o)}t=t.nextSibling}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,t){return null},e.decode=function(e,t,n){if(null!=n){var a=n.editor;for(t=t.firstChild;null!=t;){if(t.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,t,n))if("separator"==t.nodeName)n.addSeparator();else if("br"==t.nodeName)n.toolbar.addBreak();else if("hr"==t.nodeName)n.toolbar.addLine();else if("add"==t.nodeName){var i=t.getAttribute("as"),i=mxResources.get(i)||i,o=t.getAttribute("icon"),s=t.getAttribute("pressedIcon"),r=t.getAttribute("action"),l=t.getAttribute("mode"),d=t.getAttribute("template"),c="0"!=t.getAttribute("toggle"),m=mxUtils.getTextContent(t),u=null;if(null!=r)u=n.addItem(i,o,r,s);else if(null!=l)var p=mxUtils.eval(m),u=n.addMode(i,o,l,s,p);else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=t.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),d=null,null!=m&&0<m.length&&(d=mxUtils.eval(m)),u=n.addPrototype(i,o,u,s,d,c);else if(0<(s=mxUtils.getChildNodes(t)).length)if(null==o)for(d=n.addActionCombo(i),i=0;i<s.length;i++)c=s[i],"separator"==c.nodeName?n.addOption(d,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),c=c.getAttribute("action"),n.addActionOption(d,o,c));else{var g=null,h=n.addPrototype(i,o,function(){if(null!=(e=a.templates[g.value])){var e=e.clone(),t=g.options[g.selectedIndex].cellStyle;return null!=t&&e.setStyle(t),e}return mxLog.warn("Template "+e+" not found"),null},null,null,c),g=n.addCombo();for(mxEvent.addListener(g,"change",function(){n.toolbar.selectMode(h,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),n.toolbar.noReset=!1}),i=0;i<s.length;i++)c=s[i],"separator"==c.nodeName?n.addOption(g,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),m=c.getAttribute("template"),n.addOption(g,o,m||d).cellStyle=c.getAttribute("style"))}null!=u&&null!=(d=t.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d)}t=t.nextSibling}}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,t){return null},e.decode=function(e,t,n){var a=t.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,n):null!=n&&(n.config=t),n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,t,n){return null!=(e=t.getAttribute("defaultEdge"))&&(t.removeAttribute("defaultEdge"),n.defaultEdge=n.templates[e]),null!=(e=t.getAttribute("defaultGroup"))&&(t.removeAttribute("defaultGroup"),n.defaultGroup=n.templates[e]),n},e.decodeChild=function(e,t,n){if("Array"==t.nodeName){if("templates"==t.getAttribute("as"))return void this.decodeTemplates(e,t,n)}else if("ui"==t.nodeName)return void this.decodeUi(e,t,n);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,t,n){for(e=t.firstChild;null!=e;){if("add"==e.nodeName){t=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),o=null;if(null!=a)null!=(o=document.getElementById(a))&&null!=i&&(o.style.cssText+=";"+i);else{var a=parseInt(e.getAttribute("x")),s=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(o=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(t)||t,o,a,s,r,l,!1,!0).setVisible(!0)}"graph"==t?n.setGraphContainer(o):"toolbar"==t?n.setToolbarContainer(o):"title"==t?n.setTitleContainer(o):"status"==t?n.setStatusContainer(o):"map"==t&&n.setMapContainer(o)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,t,n){null==n.templates&&(n.templates=[]),t=mxUtils.getChildNodes(t);for(var a=0;a<t.length;a++){for(var i=t[a].getAttribute("as"),o=t[a].firstChild;null!=o&&1!=o.nodeType;)o=o.nextSibling;null!=o&&(n.templates[i]=e.decodeCell(o))}},e}()),EditorUi=function(e,t,n){this.projectDesignController=e,this.editor=t||new Editor,this.container=n||document.body;var a=t.graph,i=this;(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi();var o=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isSelectionAllowed(e)||a.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=o,this.menubarContainer.onmousedown=o,this.toolbarContainer.onselectstart=o,this.toolbarContainer.onmousedown=o,this.diagramContainer.onselectstart=o,this.diagramContainer.onmousedown=o,this.sidebarContainer.onselectstart=o,this.sidebarContainer.onmousedown=o,this.footerContainer.onselectstart=o,this.footerContainer.onmousedown=o),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",o),mxEvent.addListener(this.sidebarContainer,"contextmenu",o)):(this.diagramContainer.oncontextmenu=o,this.sidebarContainer.oncontextmenu=o),a.init(this.diagramContainer),a.refresh(),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+t.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var s=a.fireMouseEvent;a.fireMouseEvent=function(e,t,n){e==mxEvent.MOUSE_DOWN&&this.container.focus(),s.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","tts","ispeechtts","getdigits","getsecretdigits"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax"],[[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch"],o=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(o),!this.isEnabled()||mxEvent.isConsumed(e)||o.isConsumed()||(this.getModel().isEdge(t)?n.indexOf(t.source.value.tagName)>=0&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),o.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,t,n){this.menus.createPopupMenu(e,t,n)}),t.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.createKeyHandler(t);this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=100,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),t=function(){e.setEnabled(!mxClipboard.isEmpty())},n=mxClipboard.cut;mxClipboard.cut=function(){n.apply(this,arguments),t()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),t()}},EditorUi.prototype.isSelectionAllowed=function(e){return!1},EditorUi.prototype.exportXML=function(e){var t=window.document.createElement("a");t.href="data:attachment/text;charset=utf-8,"+encodeURI(e),t.download=this.editor.filename+".xml",t.target="_self",t.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,t){try{var n=mxUtils.parseXml(e);this.editor.setGraphXml(n.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=t&&(this.editor.filename=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,t,n){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=t&&(this.editor.filename=t),null!=n&&(this.editor.data=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,t){for(var n=this.editor.graph,e=null!=e?e:n.model.getRoot(),t=null!=t?t:{},a=!0,i=n.model.getChildCount(e),o=0;o<i;o++){var s=n.model.getChildAt(e,o),r=t;n.isValidRoot(s)&&(r={}),null!=(r=this.validate(s,r))?n.setCellWarning(s,r.replace(/\n/g,"<br>")):n.setCellWarning(s,null),a=a&&null==r}if(i="",n.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("digit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("response")>=0?"":mxResources.get("invalidTimeout")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n",i+=e.value.getAttribute("mindigit")>0?"":mxResources.get("wrongMinDigit")+"\n",i+=e.value.getAttribute("maxdigit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n",i+=e.value.getAttribute("mindigit")>0?"":mxResources.get("wrongMinDigit")+"\n",i+=e.value.getAttribute("maxdigit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("hiddendigitsnum")>=0?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=e.value.getAttribute("odbc_id")>0?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=e.value.getAttribute("priority")>=1?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=e.value.getAttribute("timeout")>=-1?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=e.value.getAttribute("sip_id")>0?"":mxResources.get("noIdentifierSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=e.value.getAttribute("delay")>=0?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=e.value.getAttribute("interval_id")>0?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=e.value.getAttribute("project_id")>0?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=e.value.getAttribute("speed")>=-10&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"ispeechasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=e.value.getAttribute("timeout")>=-1?"":mxResources.get("invalidTimeout")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n"}if(n.model.isEdge(e))switch(n.model.getCell(e.source.getId()).value.nodeName){case"background":i+=(l=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[*]{1}$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrTimeout")+"\n";break;case"menu":if(e.getValue()){l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[*]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"vswitch":if(e.getValue()){var l=/^([a-zA-Z0-9]+)$|^[-]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrLettersOrAll")+"\n"})}else i=i+mxResources.get("numberOrLettersOrAll")+"\n";break;case"getsecretdigits":case"getdigits":e.getValue()?i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n":i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":e.getValue()?i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n":i=i+mxResources.get("trueOrFalse")+"\n"}return n.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(n.containsValidationErrorsResource)||n.containsValidationErrorsResource)+"\n"),i=n.model.isEdge(e)?i+(n.getEdgeValidationError(e,n.model.getTerminal(e,!0),n.model.getTerminal(e,!1))||""):i+(n.getCellValidationError(e)||""),null!=(o=n.validateCell(e,t))&&(i+=o),null==n.model.getParent(e)&&n.view.validate(),i.length>0||!a?i:null},EditorUi.prototype.validateBlock=function(e){var t=this.editor.graph,n=0;return t.getDefaultParent().children.forEach(function(a){t.model.isVertex(a)&&a.value.nodeName==e&&n++}),!(n>1)},EditorUi.prototype.getUrl=function(e){var t=null!=e?e:window.location.pathname,n=t.indexOf("?")>0?1:0;for(var a in urlParams)t+=0==n?"?":"&",t+=a+"="+urlParams[a],n++;return t},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),t=this.actions.get("redo"),n=this.editor.undoManager,a=function(){e.setEnabled(n.canUndo()),t.setEnabled(n.canRedo())};n.addListener(mxEvent.ADD,a),n.addListener(mxEvent.UNDO,a),n.addListener(mxEvent.REDO,a),n.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,t=!e.isSelectionEmpty(),n=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(r=0;r<i.length;r++){var o=i[r];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(n=!0),a&&n)break}for(var s=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"],r=0;r<s.length;r++)this.actions.get(s[r]).setEnabled(t);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(n),this.actions.get("wordWrap").setEnabled(n),this.actions.get("group").setEnabled(e.getSelectionCount()>1),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&e.getModel().getChildCount(e.getSelectionCell())>0);var l=n&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));for(var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"],r=0;r<d.length;r++)this.menus.get(d[r]).setEnabled(t);d=["line","lineend","linestart"];for(r=0;r<d.length;r++)this.menus.get(d[r]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(e.getSelectionCount()>1),this.menus.get("direction").setEnabled(n||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),t=this.container.clientWidth,n=this.container.clientHeight;this.container==document.body&&(t=document.body.clientWidth||document.documentElement.clientWidth,n=e?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,t-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,n-this.menubarHeight-this.toolbarHeight-this.footerHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var o=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(o+=1),this.sidebarContainer.style.top=o+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.outlineContainer.style.bottom=this.footerHeight+"px",this.diagramContainer.style.left=a+this.splitSize+"px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.footerContainer.style.height=this.footerHeight+"px",this.footerContainer.style.display="none",this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=t+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var s=n-i-this.splitSize-this.footerHeight-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=s+"px",this.diagramContainer.style.width=t-a-this.splitSize+"px";var r=n-this.footerHeight-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.footerContainer.style.width=this.menubarContainer.style.width,this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+this.footerHeight+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.footerContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var t=document.createElement("div");return t.className=e,t},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var t=document.createElement("form");return t.className=e,t},EditorUi.prototype.addSplitHandler=function(e,t,n,a){function i(){return parseInt(t?e.style.left:e.style.bottom)}function o(e){if(null!=r){var i=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));a(Math.max(0,l+(t?i.x-r.x:r.y-i.y)-n)),mxEvent.consume(e)}}function s(e){o(e),r=null,l=null}var r=null,l=null;mxEvent.addGestureListeners(e,function(e){r=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),l=i(),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",o),mxEvent.addListener(document,"touchmove",o),mxEvent.addListener(document,"mouseup",s),mxEvent.addListener(document,"touchend",s)},EditorUi.prototype.executeLayout=function(e,t,n){var a=this.editor.graph,i=a.getSelectionCell();t=null!=this.animate?this.animate:t,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(t&&navigator.userAgent.indexOf("Camino")<0){var o=new mxMorphing(a);o.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),o.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){function t(e){if(!n.isSelectionEmpty()){var t=0,a=0;37==e?t=-1:38==e?a=-1:39==e?t=1:40==e&&(a=1),n.moveCells(n.getSelectionCells(),t,a),n.scrollCellToVisible(n.getSelectionCell())}}var n=this.editor.graph,a=new mxKeyHandler(n);a.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var i=mxUtils.bind(this,function(e,t,n,i){var o=this.actions.get(n);if(null!=o){var s=function(){o.enabled&&o.funct()};t?i?a.bindControlShiftKey(e,s):a.bindControlKey(e,s):i?a.bindShiftKey(e,s):a.bindKey(e,s)}});return a.enter=function(){},a.bindKey(8,function(){n.foldCells(!0)}),a.bindKey(13,function(){n.foldCells(!1)}),a.bindKey(33,function(){n.exitGroup()}),a.bindKey(34,function(){n.enterGroup()}),a.bindKey(36,function(){n.home()}),a.bindKey(35,function(){n.refresh()}),a.bindKey(37,function(){t(37)}),a.bindKey(38,function(){t(38)}),a.bindKey(39,function(){t(39)}),a.bindKey(40,function(){t(40)}),a.bindKey(113,function(){n.startEditingAtCell()}),i(46,!1,"delete"),i(82,!0,"tilt"),i(83,!0,"save"),i(83,!0,"saveAs",!0),i(107,!1,"zoomIn"),i(109,!1,"zoomOut"),i(65,!0,"selectAll"),i(86,!0,"selectVertices",!0),i(69,!0,"selectEdges",!0),i(69,!0,"export"),i(66,!0,"toBack"),i(70,!0,"toFront"),i(68,!0,"duplicate"),i(90,!0,"undo"),i(89,!0,"redo"),i(88,!0,"cut"),i(67,!0,"copy"),i(81,!0,"connect"),i(86,!0,"paste"),i(71,!0,"group"),i(71,!0,"grid",!0),i(85,!0,"ungroup"),i(112,!1,"about"),i(80,!0,"publish",!0),a},EditorUi.prototype.createMultiplicities=function(e,t,n,a){for(var i=0;i<t.length;i++)e.push(new mxMultiplicity(!0,t[i],null,null,n[i][0],n[i][1],null,mxResources.get(t[i])+mxResources.get("musthave")+n[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,t[i],null,null,a[i][0],a[i][1],null,mxResources.get(t[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var t=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=1,this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var n=e.getAttribute("pageScale");this.graph.pageScale=null!=n?n:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var o=e.getAttribute("background");null!=o&&o.length>0&&(this.graph.background=o),t.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,t=this.outline;if(null!=e.container&&null!=t.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",t.outline.container.style.backgroundColor=e.container.style.backgroundColor,t.outline.pageVisible==e.pageVisible&&t.outline.pageScale==e.pageScale||(t.outline.pageScale=e.pageScale,t.outline.pageVisible=e.pageVisible,t.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var n=mxClient.IS_IE&&document.documentMode>=9?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":n,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),t=e.width>0?e.x/this.scale-this.translate.x:0,n=e.height>0?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,o=this.graph.pageFormat,s=this.graph.pageScale,r=o.width*s,l=o.height*s,d=Math.floor(Math.min(0,t)/r),c=Math.floor(Math.min(0,n)/l),m=Math.ceil(Math.max(1,t+a)/r)-d,u=Math.ceil(Math.max(1,n+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var n=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();t=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(t,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){var t=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+n.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,t,n){var a=this.view.scale,i=this.view.translate,o=this.pageFormat,s=a*this.pageScale,r=this.view.getBackgroundPageBounds();t=r.width,n=r.height;var l=new mxRectangle(a*i.x,a*i.y,o.width*s,o.height*s),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(t/l.width)-1:0,c=e?Math.ceil(n/l.height)-1:0,m=r.x+t,u=r.y+n;if(null==this.horizontalPageBreaks&&d>0&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(h=0;h<=d;h++){p=[new mxPoint(r.x+(h+1)*l.width,r.y),new mxPoint(r.x+(h+1)*l.width,u)];null!=this.horizontalPageBreaks[h]?(this.horizontalPageBreaks[h].scale=1,this.horizontalPageBreaks[h].points=p,this.horizontalPageBreaks[h].redraw()):((g=new mxPolyline(p,this.pageBreakColor,this.scale)).dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.addPipe=!1,g.scale=a,g.init(this.view.backgroundPane),g.redraw(),this.horizontalPageBreaks[h]=g)}for(h=d;h<this.horizontalPageBreaks.length;h++)this.horizontalPageBreaks[h].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&c>0&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(h=0;h<=c;h++){var p=[new mxPoint(r.x,r.y+(h+1)*l.height),new mxPoint(m,r.y+(h+1)*l.height)];if(null!=this.verticalPageBreaks[h])this.verticalPageBreaks[h].scale=1,this.verticalPageBreaks[h].points=p,this.verticalPageBreaks[h].redraw();else{var g=new mxPolyline(p,this.pageBreakColor,a);g.dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.addPipe=!1,g.scale=a,g.init(this.view.backgroundPane),g.redraw(),this.verticalPageBreaks[h]=g}}for(var h=c;h<this.verticalPageBreaks.length;h++)this.verticalPageBreaks[h].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var a=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){for(var i=0;i<t.length;i++)if(this.graph.getModel().isVertex(t[i])){var o=this.graph.getCellGeometry(t[i]);if(null!=o&&o.relative)return!1}return a.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var i=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,t,n,a,o,s){var r=i.apply(this,arguments);return null==s||s||mxEvent.addListener(r,"mousedown",function(e){mxEvent.consume(e)}),r};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var t=this.graph.getModel(),n=t.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=t.getParent(a);if(null==n||n!=a&&n!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&t.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var s=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var t=s.apply(this,arguments),n=this.graph.getModel(),a=n.getParent(this.graph.getSelectionCell()),i=n.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!n.isVertex(i)||this.graph.isValidRoot(i)||(t=!0)),t},mxGraphHandler.prototype.selectDelayed=function(e){var t=e.getCell();null==t&&(t=this.cell);for(var n=this.graph.getModel(),a=n.getParent(t);this.graph.isCellSelected(t)&&n.isVertex(a)&&!this.graph.isValidRoot(a);)t=a,a=n.getParent(t);this.graph.selectCellForEvent(t,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var t=e.getCell(),n=this.graph.getModel(),a=n.getParent(t);n.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(t=a),a=n.getParent(a);return t}},Editor.prototype.createUndoManager=function(){var e=this.graph,t=new mxUndoManager,n=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};e.getModel().addListener(mxEvent.UNDO,n),e.getView().addListener(mxEvent.UNDO,n);var a=function(t,n){for(var a=e.getSelectionCellsForChanges(n.getProperty("edit").changes),i=[],o=1;o<a.length;o++)null!=e.view.getState(a[o])&&i.push(a[o]);e.setSelectionCells(i)};return t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},function(){mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var t=mxStencilRegistry.stencils[e];if(null==t){var n=mxStencilRegistry.getBasenameForStencil(e);if(null!=n){var a=mxStencilRegistry.libraries[n];if(null!=a){if(null==mxStencilRegistry.packages[n]){mxStencilRegistry.packages[n]=1;for(var i=0;i<a.length;i++){var o=a[i];if(".xml"==o.toLowerCase().substring(o.length-4,o.length))mxStencilRegistry.loadStencilSet(o,null);else if(".js"==o.toLowerCase().substring(o.length-3,o.length)){var s=mxUtils.load(o);null!=s&&eval.call(window,s.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+n+".xml",null);t=mxStencilRegistry.stencils[e]}}return t},mxStencilRegistry.getBasenameForStencil=function(e){var t=e.split("."),n=null;if(t.length>0&&"mxgraph"==t[0]){n=t[1];for(var a=2;a<t.length-1;a++)n+="/"+t[a]}return n},mxStencilRegistry.loadStencilSet=function(e,t,n){n=null!=n&&n;var a=mxStencilRegistry.packages[e];if(n||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,t,i)}},mxStencilRegistry.parseStencilSet=function(e,t,n){n=null==n||n;var a=e.documentElement,i=a.firstChild,o="",s=a.getAttribute("name");for(null!=s&&(o=s+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(s=i.getAttribute("name"))){o=o.toLowerCase();var r=s.replace(/ /g,"_");if(n&&mxStencilRegistry.addStencil(o+r.toLowerCase(),new mxStencil(i)),null!=t){var l=i.getAttribute("w"),d=i.getAttribute("h");t(o,r,s,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}}}(),OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,t){this.data=e,this.filename=t,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","tts","ispeechtts","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("tts"),mxResources.get("ispeechtts"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","ispeechasr"],[mxResources.get("database"),mxResources.get("ispeechasr")]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=document.documentMode>=5?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return e=e.getBoundingClientRect(),{left:e.left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(e,t,n,a,i,o){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=e){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var s=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),n>this.maxTooltipWidth||a>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/n,this.maxTooltipHeight/a))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==o||o,this.graph2.addCells(t);var s=this.graph2.getGraphBounds(),r=s.width+2*this.tooltipBorder+4,l=s.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(l+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=r+"px",this.tooltipTitles&&null!=i&&i.length>0){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG?this.tooltipTitle.style.paddingTop="6px":(this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px"),this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,i);var d=this.tooltipTitle.offsetHeight+10;l+=d,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-d+"px":(l-=6,this.tooltipTitle.style.top=l-d+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=l+"px";var c=-Math.round(s.x-this.tooltipBorder),m=-Math.round(s.y-this.tooltipBorder),u=document.body,p=document.documentElement,g=(u.clientHeight||p.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),h=Math.max(0,this.getOffset(e).top-this.container.scrollTop-l/2+16);mxClient.IS_SVG?0!=c||0!=m?this.graph2.view.canvas.setAttribute("transform","translate("+c+","+m+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=c+"px",this.graph2.view.drawPane.style.top=m+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=g+"px",this.tooltip.style.top=h+"px",this.tooltipImage.style.left=g-13+"px",this.tooltipImage.style.top=h+l/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?s():this.thread=window.setTimeout(s,this.tooltipDelay),this.currentElt=e}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,t){if(null!=this.taglist&&null!=e&&e.length>0)for(var n=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<n.length;a++)if(n[a]=n[a].replace(/\.*\d*$/,""),n[a].length>1){var i=this.taglist[n[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[n[a]]=i),null==i.dict.get(t)&&(i.dict.put(t,t),i.entries.push(t))}return t},Sidebar.prototype.searchEntries=function(e,t,n,a,i){if(null!=this.taglist&&null!=e){for(var o=e.toLowerCase().split(" "),s=new mxDictionary,r=(n+1)*t,l=[],d=0,c=0;c<o.length;c++)if(o[c].length>0){var m=this.taglist[o[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==s.get(m))&&(u.put(m,m),l.push(m),c==o.length-1&&l.length==r))return void a(l.slice(n*t,r),r,!0)}}else l=[];s=u,d++}var h=l.length;a(l.slice(n*t,(n+1)*t),h,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null!=e){for(var t=e.split(" "),n=[],a={},i=0;i<t.length;i++)null==a[t[i]]&&(a[t[i]]="1",n.push(t[i]));return n.join(" ")}return null},Sidebar.prototype.cloneCell=function(e,t){var n=e.clone();return null!=t&&(n.value=t),n},Sidebar.prototype.addSearchPalette=function(e){var t=document.createElement("div");t.style.visibility="hidden",this.container.appendChild(t);var n=document.createElement("div");n.className="geSidebar",n.style.boxSizing="border-box",n.style.overflow="hidden",n.style.width="100%",n.style.padding="8px",n.style.paddingTop="14px",n.style.paddingBottom="0px",e||(n.style.display="none");var a=document.createElement("div");a.style.whiteSpace="nowrap",a.style.textOverflow="clip",a.style.paddingBottom="8px",a.style.cursor="default";var i=document.createElement("input");i.setAttribute("placeholder",mxResources.get("searchShapes")),i.setAttribute("type","text"),i.style.fontSize="12px",i.style.overflow="hidden",i.style.boxSizing="border-box",i.style.border="solid 1px #d5d5d5",i.style.borderRadius="4px",i.style.width="100%",i.style.outline="none",i.style.padding="6px",a.appendChild(i);var o=document.createElement("img");o.setAttribute("src",Sidebar.prototype.searchImage),o.setAttribute("title",mxResources.get("search")),o.style.position="relative",o.style.left="-18px",mxClient.IS_QUIRKS?(i.style.height="28px",o.style.top="-4px"):o.style.top="2px",o.style.background="url('"+this.editorUi.editor.transparentImage+"')";var s;a.appendChild(o),n.appendChild(a);var r=document.createElement("center"),l=mxUtils.button(mxResources.get("moreResults"),function(){s()});l.style.display="none",l.style.lineHeight="normal",l.style.marginTop="4px",l.style.marginBottom="8px",r.style.paddingTop="4px",r.style.paddingBottom="8px",r.appendChild(l),n.appendChild(r);var d="",c=!1,m=!1,u=0,p=new Object,g=12,h=mxUtils.bind(this,function(){c=!1,this.currentSearch=null;for(var e=n.firstChild;null!=e;){var t=e.nextSibling;e!=a&&e!=r&&e.parentNode.removeChild(e),e=t}});s=mxUtils.bind(this,function(){if(g=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=i.value){if(null!=r.parentNode&&(d!=i.value&&(h(),d=i.value,p=new Object,m=!1,u=0),!c&&!m)){l.setAttribute("disabled","true"),l.style.display="",l.style.cursor="wait",l.innerHTML=mxResources.get("loading")+"...",c=!0;var e=new Object;this.currentSearch=e,this.searchEntries(d,g,u,mxUtils.bind(this,function(t,a,i){if(this.currentSearch==e){t=null!=t?t:[],c=!1,u++,r.parentNode.removeChild(r);for(var o=0;o<t.length;o++){var s=t[o]();null==p[s.innerHTML]&&(p[s.innerHTML]="1",n.appendChild(t[o]()))}if(i?(l.removeAttribute("disabled"),l.innerHTML=mxResources.get("moreResults")):(l.innerHTML=mxResources.get("reset"),l.style.display="none",m=!0),l.style.cursor="",0==t.length&&1==u){var g=document.createElement("div");g.className="geTitle",g.style.backgroundColor="transparent",g.style.borderColor="transparent",g.style.color="gray",g.style.padding="0px",g.style.margin="0px 8px 0px 8px",g.style.paddingTop="6px",g.style.textAlign="center",g.style.cursor="default",mxUtils.write(g,mxResources.get("noResultsFor",[d])),n.appendChild(g)}n.appendChild(r)}}),mxUtils.bind(this,function(){l.style.cursor=""}))}}else h(),i.value="",d="",p=new Object,l.style.display="none",m=!1,i.focus()}),mxEvent.addListener(i,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&s()})),mxEvent.addListener(i,"focus",function(){i.style.paddingRight="",o.style.display="none"}),mxEvent.addListener(i,"blur",function(){i.style.paddingRight="20px",o.style.display=""}),i.style.paddingRight="20px",mxEvent.addListener(i,"keyup",mxUtils.bind(this,function(e){""==i.value?(m=!0,l.style.display="none"):i.value!=d?(l.style.display="none",m=!1):c||(l.style.display=m?"none":"")})),mxEvent.addListener(i,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(i,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var v=document.createElement("div");v.appendChild(n),this.container.appendChild(v),this.palettes.search=[t,v]},Sidebar.prototype.createTitle=function(e){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.setAttribute("title",mxResources.get("sidebarTooltip")),t.className="geTitle",mxUtils.write(t,e),t},Sidebar.prototype.createThumb=function(e,t,n,a,i,o,s,r,l){this.graph.labelsVisible=null==o||o;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((t-2*this.thumbBorder)/c.width,(n-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((t-c.width*m)/2/m-c.x),Math.floor((n-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=t+"px",u.style.height=n+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=s){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(e,t,n,a,i,o,s){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(e,this.thumbWidth,this.thumbHeight,r,t,n,a,i,o);var d=new mxRectangle(0,0,i,o);if(e.length>1||e[0].vertex){c=this.createDragSource(r,this.createDropHandler(e,!0,s,d),this.createDragPreview(i,o),e,d);this.addClickHandler(r,c,e),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=e[0]&&e[0].edge){var c=this.createDragSource(r,this.createDropHandler(e,!1,s,d),this.createDragPreview(i,o),e,d);this.addClickHandler(r,c,e)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(a){this.showTooltip(r,e,d.width,d.height,t,n)})),r},Sidebar.prototype.createDropHandler=function(e,t,n,a){return n=null==n||n,mxUtils.bind(this,function(i,o,s,r,l){if(i.isEnabled()){if((e=i.getImportableCells(e)).length>0){i.stopEditing();var d=null!=s&&i.isValidDropTarget(s,e,o),c=null;if(null==s||d||(s=null),!i.isCellLocked(s||i.getDefaultParent())){i.model.beginUpdate();try{if(r=Math.round(r),l=Math.round(l),t&&i.isSplitTarget(s,e,o)){var m=i.cloneCells(e);i.splitEdge(s,m,null,r-a.width/2,l-a.height/2),c=m}else e.length>0&&(c=i.importCells(e,r,l,s));if(null!=i.layoutManager){var u=i.layoutManager.getLayout(s);if(null!=u)for(var p=i.view.scale,g=i.view.translate,h=(r+g.x)*p,v=(l+g.y)*p,b=0;b<c.length;b++)u.moveCell(c[b],h,v)}n&&i.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{i.model.endUpdate()}null!=c&&c.length>0&&(i.scrollCellToVisible(c[0]),i.setSelectionCells(c))}}mxEvent.consume(o)}})},Sidebar.prototype.createDragPreview=function(e,t){var n=document.createElement("div");return n.style.border="1px dashed black",n.style.width=e+"px",n.style.height=t+"px",n},Sidebar.prototype.createDragSource=function(e,t,n){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,t,n,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,t,n){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,t){var n=this.editorUi.editor.graph,a=null;mxEvent.addGestureListeners(e,function(e){a=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var i=t.mouseUp;t.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=a){var o=n.tolerance;if(Math.abs(a.x-mxEvent.getClientX(e))<=o&&Math.abs(a.y-mxEvent.getClientY(e))<=o){var s=n.getGridSize();t.drop(n,e,null,s,s)}}i.apply(this,arguments),a=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,t,n,a,i,o,s,r){return r=null!=r&&r.length>0?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,t,n,a,i,o,s)}))},Sidebar.prototype.createXmlDocument=function(e,t,n,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",t),n.forEach(function(e,t){i.setAttribute(e,a[t]?a[t]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,t,n,a,i,o,s,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","1","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5"];break;case"sendSMS":l=["account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","template_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,t,n),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,t,n,i,o,s,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,t,n,a,i,o,s){return this.createItem(e,a,i,o,t,n,s)},Sidebar.prototype.createEdgeTemplate=function(e,t,n,a,i,o,s){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,t,n),e);return r.geometry.setTerminalPoint(new mxPoint(0,n),!0),r.geometry.setTerminalPoint(new mxPoint(t,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],t,n,i,o,s)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,t,n,a,i,o){return this.createItem(e,a,i,!0,t,n,o)},Sidebar.prototype.addPaletteFunctions=function(e,t,n,a){this.addPalette(e,t,n,mxUtils.bind(this,function(e){for(var t=0;t<a.length;t++)e.appendChild(a[t](e))}))},Sidebar.prototype.addPalette=function(e,t,n,a){var i=this.createTitle(t);this.container.appendChild(i);var o=document.createElement("div");o.className="geSidebar",mxClient.IS_POINTER&&(o.style.touchAction="none"),mxEvent.addListener(o,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==o?o.setAttribute("title",mxResources.get("sidebarTooltip")):o.removeAttribute("title")})),n?(a(o),a=null):o.style.display="none",this.addFoldingHandler(i,o,a);var s=document.createElement("div");return s.appendChild(o),this.container.appendChild(s),null!=e&&(this.palettes[e]=[i,s]),o},Sidebar.prototype.addFoldingHandler=function(e,t,n){var a=!1;(!mxClient.IS_IE||document.documentMode>=8)&&(e.style.backgroundImage="none"==t.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),e.style.backgroundRepeat="no-repeat",e.style.backgroundPosition="0% 50%",mxEvent.addListener(e,"click",mxUtils.bind(this,function(i){if("none"==t.style.display){if(a)t.style.display="block";else if(a=!0,null!=n){e.style.cursor="wait";var o=e.innerHTML;e.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var a=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,n(t),mxClient.NO_FO=a,t.style.display="block",e.style.cursor="",e.innerHTML=o},0)}else t.style.display="block";e.style.backgroundImage="url('"+this.expandedImage+"')"}else e.style.backgroundImage="url('"+this.collapsedImage+"')",t.style.display="none";mxEvent.consume(i)}))},Sidebar.prototype.addImagePalette=function(e,t,n,a,i,o,s){for(var r=[],l=0;l<i.length;l++)mxUtils.bind(this,function(e,t,o){if(null==o){var s=e.lastIndexOf("/"),d=e.lastIndexOf(".");o=e.substring(s>=0?s+1:0,d>=0?d:e.length).replace(/[-_]/g," ")}r.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+n+e+a,this.defaultImageWidth,this.defaultImageHeight,i[l],t,!1,!0,this.filterTags(o)))})(i[l],null!=o?o[l]:null,null!=s?s[i[l]]:null);this.addPaletteFunctions(e,t,!1,r)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,t,n,a){mxGraph.call(this,e,t,n,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);return"1"==n.html||"wrap"==n.whiteSpace},this.cellRenderer.getLabelValue=function(e){var t=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(t=mxUtils.htmlEntities(t,!1)),t},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var o=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,t){null==t?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?o.apply(this,arguments):this.graph.isCellSelected(t.cell)&&this.graph.getSelectionCount()>1&&this.graph.removeSelectionCell(t.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);if(null!=n){var a=mxUtils.getValue(n,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var t=this.getModel().cloneCells([e])[0];null!=t.geometry&&(t.geometry.points=null);var n=t.getStyle();n=mxUtils.setStyle(n,mxConstants.STYLE_ENTRY_X,null),n=mxUtils.setStyle(n,mxConstants.STYLE_ENTRY_Y,null),n=mxUtils.setStyle(n,mxConstants.STYLE_EXIT_X,null),n=mxUtils.setStyle(n,mxConstants.STYLE_EXIT_Y,null),t.setStyle(n),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(t)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([t])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var t="";return this.getModel().isVertex(e)?t+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(t=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),t},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,t,n){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",t),t=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,t){var n=null;null!=e.value&&"object"==typeof e.value?n=e.value.cloneNode(!0):(n=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value),null!=t&&t.length>0?n.setAttribute("link",t):n.removeAttribute("link"),this.model.setValue(e,n)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,t){this.panningHandler.hideMenu()});var e=!1,t=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var t=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(t)&&(e.state=this.view.getState(t),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(n,a,i){if(n==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(e=!1,t=null):(t=a.getCell(),e=null!=t?this.isCellSelected(t):this.isSelectionEmpty());else if(n==mxEvent.MOUSE_UP){if(e&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var o=mxEvent.getClientX(a.getEvent()),s=mxEvent.getClientY(a.getEvent());this.panningHandler.popup(o+16,s,t,a.getEvent())}return e=!1,t=null,void a.consume()}e=!1,t=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),n==mxEvent.MOUSE_MOVE&&a.isConsumed()&&(e=!1,t=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var t=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(t)&&mxEvent.isShiftDown(t)||this.usePopupTrigger&&mxEvent.isPopupTrigger(t)});var e=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(t,n){e.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&this.graph.getSelectionCount()>1&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,t){touchStyle&&null!=t?this.graph.setSelectionCell(t):this.graph.setSelectionCell(e)};var t=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var a=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(a.x,a.y)}t.call(this,e,n)};var n=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=n,mxEdgeHandler.prototype.handleImage=n,mxOutline.prototype.sizerImage=n,(new Image).src=n.src;var a=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(a),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,t.x,t.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};r=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){r.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=a}else{o=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=o,(new Image).src=o.src,"2"==urlParams.connect){var o=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+o.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=o.width+4+"px",this.connectorImg.style.height=o.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(o.src),this.connectorImg.style.width=o.width+"px",this.connectorImg.style.height=o.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,t.x,t.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var r=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){r.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var e=this.editorUi,t=e.editor,n=t.graph;this.addAction("new",function(){e.projectDesignController.newProject()}),this.addAction("open",function(){e.projectDesignController.openProject()}),this.addAction("save",function(){e.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(t.getGraphXml())),e.editor.modified=!1},null,null,"Ctrl+S"),this.addAction("saveAs",function(){e.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(t.getGraphXml()))},null,null,"Ctrl+Shift+S"),this.addAction("publish",function(){e.editor.setStatus(""),null===e.validate()?(e.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(t.getGraphXml()),!0),e.editor.modified=!1):(e.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){e.editor.setStatus("")},3e3))},null,null,"Ctrl+Shift+P"),this.addAction("variable",function(){e.projectDesignController.newVariable()}),this.addAction("import",function(){e.projectDesignController.importXML(function(e){t.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("export",function(){e.exportXML(mxUtils.getPrettyXml(t.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){e.projectDesignController.editXML(mxUtils.getPrettyXml(t.getGraphXml()),function(e){t.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("print",function(){mxUtils.printScreen(n)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(n,null,10,10)}),this.addAction("undo",function(){t.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){t.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(n)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(n)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(n)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){n.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=n.gridSize;n.setSelectionCells(n.moveCells(n.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){n.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){n.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){n.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){n.home()},null,null,"Home"),this.addAction("exitGroup",function(){n.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){n.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){n.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){n.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){n.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){n.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){n.setSelectionCell(n.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){n.setSelectionCells(n.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){n.removeCellsFromParent()}),this.addAction("editLink",function(){var e=n.getSelectionCell(),t=n.getLinkForCell(e);null==t&&(t=""),null!=(t=mxUtils.prompt(mxResources.get("enterValue"),t))&&n.setLinkForCell(e,t)}),this.addAction("openLink",function(){var e=n.getSelectionCell(),t=n.getLinkForCell(e);null!=t&&window.open(t)}),this.addAction("autosize",function(){var e=n.getSelectionCells();if(null!=e){n.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var a=e[t];n.getModel().getChildCount(a)?n.updateGroupBounds([a],20):n.updateCellSize(a)}}finally{n.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=n.getView().getState(n.getSelectionCell()),t="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(t=null),n.setCellStyles(mxConstants.STYLE_WHITE_SPACE,t)}),this.addAction("rotation",function(){var e="0",t=n.getView().getState(n.getSelectionCell());null!=t&&(e=t.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&n.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=n.getSelectionCells();if(null!=e){n.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var a=e[t];if(n.getModel().isVertex(a)&&0==n.getModel().getChildCount(a)){var i=n.getCellGeometry(a);if(null!=i){(i=i.clone()).x+=i.width/2-i.height/2,i.y+=i.height/2-i.width/2;var o=i.width;i.width=i.height,i.height=o,n.getModel().setGeometry(a,i);var s=n.view.getState(a);if(null!=s){var r=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==r?r="south":"south"==r?r="west":"west"==r?r="north":"north"==r&&(r="east"),n.setCellStyles(mxConstants.STYLE_DIRECTION,r,[a])}}}}}finally{n.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){n.zoomTo(1)}),this.addAction("zoomIn",function(){n.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){n.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){n.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){n.pageVisible||this.get("pageView").funct();var e=n.pageFormat,t=n.pageScale,a=n.container.clientWidth-20,i=n.container.clientHeight-20,o=Math.floor(100*Math.min(a/e.width/t,i/e.height/t))/100;n.zoomTo(o),n.container.scrollLeft=Math.round(n.view.translate.x*o-Math.max(10,(n.container.clientWidth-e.width*t*o)/2)),n.container.scrollTop=Math.round(n.view.translate.y*o-Math.max(10,(n.container.clientHeight-e.height*t*o)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){n.pageVisible||this.get("pageView").funct();var e=n.pageFormat,t=n.pageScale,a=n.container.clientWidth-20,i=Math.floor(100*a/e.width/t)/100;n.zoomTo(i),n.container.scrollLeft=Math.round(n.view.translate.x*i-Math.max(10,(n.container.clientWidth-e.width*t*i)/2)),n.container.scrollTop=Math.round(n.view.translate.y*i-Math.max(10,(n.container.clientHeight-e.height*t*i)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*n.getView().getScale()));null!=e&&e.length>0&&!isNaN(parseInt(e))&&n.zoomTo(parseInt(e)/100)}));var a=null;(a=this.addAction("grid",function(){n.setGridEnabled(!n.isGridEnabled()),t.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),a.setSelectedCallback(function(){return n.isGridEnabled()}),(a=this.addAction("guides",function(){n.graphHandler.guidesEnabled=!n.graphHandler.guidesEnabled})).setToggleAction(!0),a.setSelectedCallback(function(){return n.graphHandler.guidesEnabled}),(a=this.addAction("tooltips",function(){n.tooltipHandler.setEnabled(!n.tooltipHandler.isEnabled())})).setToggleAction(!0),a.setSelectedCallback(function(){return n.tooltipHandler.isEnabled()}),(a=this.addAction("navigation",function(){n.foldingEnabled=!n.foldingEnabled,n.view.revalidate()})).setToggleAction(!0),a.setSelectedCallback(function(){return n.foldingEnabled}),(a=this.addAction("scrollbars",function(){if(n.scrollbars=!n.scrollbars,t.updateGraphComponents(),n.scrollbars){var e=n.view.translate.x,a=n.view.translate.y;n.view.translate.x=0,n.view.translate.y=0,n.sizeDidChange(),n.container.scrollLeft-=Math.round(e*n.view.scale),n.container.scrollTop-=Math.round(a*n.view.scale)}else{var i=n.view.translate;n.view.setTranslate(i.x-n.container.scrollLeft/n.view.scale,i.y-n.container.scrollTop/n.view.scale),n.container.scrollLeft=0,n.container.scrollTop=0,n.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),a.setSelectedCallback(function(){return"auto"==n.container.style.overflow}),(a=this.addAction("pageView",mxUtils.bind(this,function(){n.pageVisible=!n.pageVisible,n.pageBreaksVisible=n.pageVisible,n.preferPageSize=n.pageBreaksVisible,n.view.validate(),n.sizeDidChange(),t.updateGraphComponents(),t.outline.update(),mxUtils.hasScrollbars(n.container)&&(n.pageVisible?(n.container.scrollLeft-=20,n.container.scrollTop-=20):(n.container.scrollLeft+=20,n.container.scrollTop+=20))}))).setToggleAction(!0),a.setSelectedCallback(function(){return n.pageVisible}),(a=this.addAction("connect",function(){n.setConnectable(!n.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),a.setSelectedCallback(function(){return n.connectionHandler.isEnabled()}),(a=this.addAction("copyConnect",function(){n.connectionHandler.setCreateTarget(!n.connectionHandler.isCreateTarget())})).setToggleAction(!0),a.setSelectedCallback(function(){return n.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMD/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var i=mxUtils.bind(this,function(e,t){this.addAction(e,function(){n.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,t)})});i("bold",mxConstants.FONT_BOLD),i("italic",mxConstants.FONT_ITALIC),i("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){n.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){n.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){n.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){n.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=n.getSelectionCells();if(null!=e&&e.length>0){var t=n.getModel(),a=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",t.getStyle(e[0])||"");null!=a&&n.setCellStyle(a,e)}}),this.addAction("setAsDefaultEdge",function(){n.setDefaultEdge(n.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=n.getSelectionCell();if(null!=e&&n.getModel().isEdge(e)){var a=t.graph.selectionCellsHandler.getHandler(e);if(a instanceof mxEdgeHandler){var i=n.view.translate,o=n.view.scale,s=i.x,r=i.y,l=n.getModel().getParent(e),d=n.getCellGeometry(l);n.getModel().isVertex(l)&&null!=d&&(s+=d.x,r+=d.y),a.addPointAt(a.state,n.panningHandler.triggerX/o-s,n.panningHandler.triggerY/o-r)}}}),this.addAction("removeWaypoint",function(){var t=e.actions.get("removeWaypoint");null!=t.handler&&t.handler.removePoint(t.handler.state,t.index)}),this.addAction("image",function(){function e(e,t,a){var i=null,o=n.getSelectionCells();n.getModel().beginUpdate();try{if(0==o.length){var s=n.getGridSize();i=o=[n.insertVertex(n.getDefaultParent(),null,"",s,s,t,a)]}if(n.setCellStyles(mxConstants.STYLE_IMAGE,e,o),n.setCellStyles(mxConstants.STYLE_SHAPE,"image",o),1==n.getSelectionCount()&&null!=t&&null!=a){var r=o[0],l=n.getModel().getGeometry(r);null!=l&&((l=l.clone()).width=t,l.height=a,n.getModel().setGeometry(r,l))}}finally{n.getModel().endUpdate()}null!=i&&(n.setSelectionCells(i),n.scrollCellToVisible(i[0]))}var t="",a=n.getView().getState(n.getSelectionCell());if(null!=a&&(t=a.style[mxConstants.STYLE_IMAGE]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",t))&&t.length>0){var i=new Image;i.onload=function(){e(t,i.width,i.height)},i.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},i.src=t}})},Actions.prototype.addAction=function(e,t,n,a,i){return this.put(e,new Action(mxResources.get(e),t,n,a,i))},Actions.prototype.put=function(e,t){return this.actions[e]=t,t},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var e=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,t){for(var n=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<n.length;a++)this.styleChange(e,n[a],[mxConstants.STYLE_FONTFAMILY],[n[a]],null,t).firstChild.nextSibling.style.fontFamily=n[a];e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,t)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,t){for(var n=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<n.length;a++)this.styleChange(e,n[a],[mxConstants.STYLE_FONTSIZE],[n[a]],null,t);e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,t)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,t){for(var n=[1,2,3,4,8,12,16,24],a=0;a<n.length;a++)this.styleChange(e,n[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[n[a]],null,t);e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,t)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,t),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,t),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,t),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,t)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(t,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(t,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(t,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(t,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),t.addSeparator(n),t.addItem(mxResources.get("transparent"),null,function(){e.toggleCellStyles("endFill",!0)},n,null,!0),t.addSeparator(n),this.promptChange(t,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(t,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(t,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(t,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(t,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),t.addSeparator(n),t.addItem(mxResources.get("transparent"),null,function(){e.toggleCellStyles("startFill",!0)},n,null,!0),t.addSeparator(n),this.promptChange(t,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,t){var n=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(n||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,t,n),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,t,n),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,t,n),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,t,n),e.addSeparator(t),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,t,n),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,t,n)),(a||e.showDisabled)&&(e.addSeparator(t),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,t,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,t,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItem(e,"style",t)}))),this.put("text",new Menu(mxUtils.bind(this,function(t,n){var a=this.get("text").enabled;t.addSeparator(n),this.addSubmenu("fontFamily",t,n),this.addSubmenu("fontSize",t,n),this.addMenuItems(t,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",t,n),this.addMenuItem(t,"wordWrap",n),t.addSeparator(n),this.promptChange(t,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,a),t.addItem(mxResources.get("hide"),null,function(){e.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,a)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(t,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(t,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(t,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(t,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),t.addSeparator(n),this.addSubmenu("position",t,n),this.addSubmenu("spacing",t,n),t.addSeparator(n);var a=this.get("text").enabled;t.addItem(mxResources.get("vertical"),null,function(){e.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,a)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,t),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,t),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,t),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,t),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,t)}))),this.put("direction",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("flipH"),null,function(){e.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),t.addItem(mxResources.get("flipV"),null,function(){e.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(t,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("leftAlign"),null,function(){e.alignCells(mxConstants.ALIGN_LEFT)},n),t.addItem(mxResources.get("center"),null,function(){e.alignCells(mxConstants.ALIGN_CENTER)},n),t.addItem(mxResources.get("rightAlign"),null,function(){e.alignCells(mxConstants.ALIGN_RIGHT)},n),t.addSeparator(n),t.addItem(mxResources.get("topAlign"),null,function(){e.alignCells(mxConstants.ALIGN_TOP)},n),t.addItem(mxResources.get("middle"),null,function(){e.alignCells(mxConstants.ALIGN_MIDDLE)},n),t.addItem(mxResources.get("bottomAlign"),null,function(){e.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var t=new mxHierarchicalLayout(e,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(t,!0,!0)}),n),t.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var t=new mxHierarchicalLayout(e,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(t,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],t)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["toFront","toBack","-"],t),this.addSubmenu("layout",e,t),e.addSeparator(t),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],t)}))),this.put("view",new Menu(mxUtils.bind(this,function(t,n){this.addMenuItems(t,["actualSize"],n),t.addSeparator();for(var a=[.25,.5,.75,1,2,4],i=0;i<a.length;i++)!function(a){t.addItem(100*a+"%",null,function(){e.zoomTo(a)},n)}(a[i]);this.addMenuItems(t,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],n)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],t)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,t){this.menus[e]=t},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,t,n){var a=this.get(e).enabled;if(t.showDisabled||a){var i=t.addItem(mxResources.get(e),null,null,n,null,a);this.addMenu(e,t,i)}},Menus.prototype.addMenu=function(e,t,n){var a=this.get(e);null!=a&&(t.showDisabled||a.enabled)&&this.get(e).execute(t,n)},Menus.prototype.styleChange=function(e,t,n,a,i,o){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var t=0;t<n.length;t++)e.setCellStyles(n[t],a[t])}finally{e.getModel().endUpdate()}}),o,i)},Menus.prototype.promptChange=function(e,t,n,a,i,o,s){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,t=a,o=e.getView().getState(e.getSelectionCell());null!=o&&(t=o.style[i]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+(n.length>0?" "+n:""),t))&&t.length>0&&e.setCellStyles(i,t)}),o,null,s)},Menus.prototype.addMenuItem=function(e,t,n){var a=this.editorUi.actions.get(t);if(null!=a&&(e.showDisabled||a.enabled)){var i=e.addItem(a.label,null,a.funct,n,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i}return null},Menus.prototype.addShortcut=function(e,t){if(null!=t.shortcut){var n=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,t.shortcut),n.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var t=e.firstChild.nextSibling;t.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,t,n){for(var a=0;a<t.length;a++)"-"==t[a]?e.addSeparator(n):this.addMenuItem(e,t[a],n)},Menus.prototype.createPopupMenu=function(e,t,n){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),a.getSelectionCount()>0){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(t=a.getSelectionCell())&&a.getModel().isEdge(t)){var o=a.selectionCellsHandler.getHandler(t);if(o instanceof mxEdgeHandler&&null!=o.bends&&o.bends.length>2){var s=o.getHandleForEvent(new mxMouseEvent(n)),r=this.editorUi.actions.get("removeWaypoint");r.handler=o,r.index=s,i=s>0&&s<o.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else a.getSelectionCount()>1&&(e.addSeparator(),this.addMenuItems(e,["group"]));e.addSeparator(),1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){for(var t=new Menubar(this.editorUi,e),n=["file","edit","view","format","text","arrange","help"],a=0;a<n.length;a++)t.addMenu(mxResources.get(n[a]),this.get(n[a]).funct);return t},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,t){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.className="geItem",mxUtils.write(n,e),this.addMenuHandler(n,t),this.container.appendChild(n),n},Menubar.prototype.getOffset=function(e){return e=e.getBoundingClientRect(),{left:e.left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(e,t){if(null!=t){var n=!0,a=mxUtils.bind(this,function(a){if(n&&null==e.enabled||e.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var i=new mxPopupMenu(t);i.div.className+=" geMenubarMenu",i.smartSeparators=!0,i.showDisabled=!0,i.autoExpand=!0,i.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(i,arguments),i.destroy(),this.currentMenu=null,this.currentElt=null});var o=this.getOffset(e).left,s=this.getOffset(e).top+e.offsetHeight;i.popup(o,s,null,a),this.currentMenu=i,this.currentElt=e}n=!0,mxEvent.consume(a)});mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(t){null!=this.currentMenu&&this.currentElt!=e&&(this.hideMenu(),a(t))})),mxEvent.addListener(e,"mousedown",mxUtils.bind(this,function(){n=this.currentElt!=e})),mxEvent.addListener(e,"click",a)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,t){this.funct(e,t)},Toolbar.prototype.init=function(){this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]);this.editorUi.editor.graph},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,t,n,a){var i=this.editorUi.menus.get(a),o=this.addMenuFunction(e,t,n,i.funct);return i.addListener("stateChanged",function(){o.setEnabled(i.enabled)}),o},Toolbar.prototype.addMenuFunction=function(e,t,n,a){var i=n?this.createLabel(e):this.createButton(e);return this.initElement(i,t),this.addMenuHandler(i,n,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var t=0;t<e.length;t++){var n=e[t];"-"==n?this.addSeparator():this.addItem("geSprite-"+n.toLowerCase(),n)}},Toolbar.prototype.addItem=function(e,t){var n=this.editorUi.actions.get(t),a=null;return null!=n&&((a=this.addButton(e,n.label,n.funct)).setEnabled(n.enabled),n.addListener("stateChanged",function(){a.setEnabled(n.enabled)})),a},Toolbar.prototype.addButton=function(e,t,n){var a=this.createButton(e);return this.initElement(a,t),this.addClickHandler(a,n),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(e){var t=this.editorUi.editor.graph,n=function(){for(var n=!t.isSelectionEmpty(),a=0;a<e.length;a++)e[a].setEnabled(n)};t.getSelectionModel().addListener(mxEvent.CHANGE,n),n()},Toolbar.prototype.addEdgeSelectionHandler=function(e){var t=this.editorUi.editor.graph,n=function(){var n=!1;if(!t.isSelectionEmpty())for(var a=t.getSelectionCells(),i=0;i<a.length;i++)if(t.getModel().isEdge(a[i])){n=!0;break}for(i=0;i<e.length;i++)e[i].setEnabled(n)};t.getSelectionModel().addListener(mxEvent.CHANGE,n),n()},Toolbar.prototype.initElement=function(e,t){e.setAttribute("tabindex","0"),null!=t&&e.setAttribute("title",t),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(e){var t=e.className;e.setEnabled=function(n){e.enabled=n,e.className=n?t:t+" geDisabled"},e.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(e,t){null!=t&&mxEvent.addListener(e,"click",function(n){e.enabled&&t(n),mxEvent.consume(n)})},Toolbar.prototype.createButton=function(e){var t=document.createElement("a");t.setAttribute("href","javascript:void(0);"),t.className="geButton";var n=document.createElement("div");return n.className="geSprite "+e,t.appendChild(n),t},Toolbar.prototype.createLabel=function(e,t){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.className="geLabel",mxUtils.write(n,e),n},Toolbar.prototype.addMenuHandler=function(e,t,n,a){if(null!=n){var i=this.editorUi.editor.graph,o=null;mxEvent.addListener(e,"click",mxUtils.bind(this,function(s){(null==e.enabled||e.enabled)&&(i.panningHandler.hideMenu(),(o=new mxPopupMenu(n)).div.className+=" geToolbarMenu",o.showDisabled=a,o.labels=t,o.autoExpand=!0,o.popup(e.offsetLeft,e.offsetTop+e.offsetHeight+34,null,s),this.currentMenu=o),mxEvent.consume(s)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="content pv-24 ph-16">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="text pt-16" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n    <div class="pb-16" layout="row" layout-align="space-between center">\n        <div class="info">\n            <div class="title secondary-text" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h2" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n\n        <div class="media ml-16">\n            <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n        </div>\n    </div>\n\n    <div class="text">\n        {{card.text}}\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n    <div class="header p-16" layout="row" layout-align="start center">\n        <div ng-if="card.avatar">\n            <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n        </div>\n\n        <div class="info">\n            <div class="title" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="text p-16" ng-if="card.text">\n        {{card.text}}\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n    <div layout="column" layout-align="space-between">\n        <div class="info">\n            <div class="title h1" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n\n        <div class="cta">\n            <md-button class="m-0">{{card.cta}}</md-button>\n        </div>\n    </div>\n\n    <div class="media pl-16">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n    <div class="info white-fg ph-16 pv-24">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="text" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n    <div class="info">\n        <div class="title secondary-text" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="event h2" ng-if="card.event">\n            {{card.event}}\n        </div>\n    </div>\n\n    <div class="media ml-16">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n    <div class="content pv-24 ph-16">\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="title h2" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="text pt-8" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n    <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n        <div class="p-16">\n            <div class="title h1" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n\n            <div class="text h4 pt-8" ng-if="card.text">\n                {{card.text}}\n            </div>\n        </div>\n\n        <div>\n            <md-divider></md-divider>\n            <div class="p-8" layout="row">\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n            </div>\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="content pv-24 ph-16">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="buttons pt-16">\n            <md-button class="m-0">{{card.button1}}</md-button>\n            <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n        </div>\n\n        <div class="text pt-16" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n    <div class="header p-16" layout="row" layout-align="start center">\n        <div ng-if="card.avatar">\n            <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n        </div>\n\n        <div class="info">\n            <div class="title" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n\n        </div>\n    </div>\n\n    <div class="text ph-16 pb-16" ng-if="card.text">\n        {{card.text}}\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="buttons m-8">\n        <md-button class="md-icon-button mr-16" aria-label="Favorite">\n            <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n        </md-button>\n        <md-button class="md-icon-button" aria-label="Share">\n            <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n        </md-button>\n    </div>\n\n</div>'),e.put("app/core/directives/ms-dash-clock/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            \x3c!-- Theme START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.THEME">Theme</label>\n                <md-select ng-model="vm.options.data.theme" md-autofocus>\n                    <md-option value="light"> {{ \'TOOLS.LIGHT\' | translate }}</md-option>\n                    <md-option value="dark"> {{ \'TOOLS.DARK\' | translate }}</md-option>\n                </md-select>\n            </md-input-container>\n            \x3c!-- Theme END --\x3e\n\n            \x3c!-- Timezone START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TIMEZONE">Timezone</label>\n                <md-select ng-model="vm.options.data.gmtValue" md-autofocus>\n                    <md-option value="-12.00">−12.00</md-option>\n                    <md-option value="-11.00">−11.00</md-option>\n                    <md-option value="-10.00">−10.00</md-option>\n                    <md-option value="-9.30">−09.30</md-option>\n                    <md-option value="-9.00">−09.00</md-option>\n                    <md-option value="-8.00">−08.00</md-option>\n                    <md-option value="-7.00">−07.00</md-option>\n                    <md-option value="-6.00">−06.00</md-option>\n                    <md-option value="-5.00">−05.00</md-option>\n                    <md-option value="-4.3">−04.30</md-option>\n                    <md-option value="-4.00">−04.00</md-option>\n                    <md-option value="-3.3">−03.30</md-option>\n                    <md-option value="-3.00">−03.00</md-option>\n                    <md-option value="-2.00">−02.00</md-option>\n                    <md-option value="-1.00">−01.00</md-option>\n                    <md-option value="0.00">GMT (00.00)</md-option>\n                    <md-option value="1.00">+01.00</md-option>\n                    <md-option value="2.00">+02.00</md-option>\n                    <md-option value="3.00">+03.00</md-option>\n                    <md-option value="3.30">+03.30</md-option>\n                    <md-option value="4.00">+04.00</md-option>\n                    <md-option value="4.30">+04.30</md-option>\n                    <md-option value="5.00">+05.00</md-option>\n                    <md-option value="5.30">+05.30</md-option>\n                    <md-option value="5.45">+05.45</md-option>\n                    <md-option value="6.00">+06.00</md-option>\n                    <md-option value="6.30">+06.30</md-option>\n                    <md-option value="7.00">+07.00</md-option>\n                    <md-option value="8.00">+08.00</md-option>\n                    <md-option value="8.45">+08.45</md-option>\n                    <md-option value="9.00">+09.00</md-option>\n                    <md-option value="9.30">+09.30</md-option>\n                    <md-option value="10.00">+10.00</md-option>\n                    <md-option value="10.30">+10.30</md-option>\n                    <md-option value="11.00">+11.00</md-option>\n                    <md-option value="11.30">+11.30</md-option>\n                    <md-option value="12.00">+12.00</md-option>\n                    <md-option value="12.45">+12.45</md-option>\n                    <md-option value="13.00">+13.00</md-option>\n                    <md-option value="14.00">+14.00</md-option>\n                </md-select>\n            </md-input-container>\n            \x3c!-- Timezone END --\x3e\n\n            \x3c!-- Digital Format START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DIGITAL_FORMAT">Digital Format</label>\n                <input type="text" name="digitalFormat" ng-model="vm.options.data.digitalFormat">\n            </md-input-container>\n            \x3c!-- Digital Format END --\x3e\n\n\n            \x3c!-- Description START --\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.options.data.description">\n            </md-input-container>\n            \x3c!-- Description END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-clock/ms-dash-clock.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex>\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ \'TOOLS.CLOCK\' | translate }}</span>\n            </div>\n        </div>\n\n        <div class="pt-16 pb-32" layout="column" layout-align="center center">\n            <div>\n                <ds-widget-clock theme="options.data.theme" digital-format="options.data.digitalFormat" gmt-offset="options.data.gmtValue" show-gmt-info></ds-widget-clock>\n            </div>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-counter/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <md-tabs md-dynamic-height md-border-bottom>\n                \x3c!-- Layout Tab START --\x3e\n                <md-tab label="{{\'TOOLS.LAYOUT\' | translate}}">\n\n                    \x3c!-- Title START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.TITLE">Title</label>\n                        <input type="text" name="title" ng-model="vm.options.data.title" required>\n                        <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    \x3c!-- Title END --\x3e\n\n                    \x3c!-- Background START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.background" label="{{\'TOOLS.BACKGROUND_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Background  END--\x3e\n\n                    \x3c!-- Foreground START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.foreground" label="{{\'TOOLS.FOREGROUND_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Foreground END--\x3e\n\n                    \x3c!-- Foreground Title START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.foregroundTitle" label="{{\'TOOLS.FOREGROUND_TITLE_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Foreground END--\x3e\n\n                    \x3c!-- Description Title START --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.DESCRIPTION">Description</label>\n                        <input type="text" name="description" ng-model="vm.options.data.description">\n                    </md-input-container>\n                    \x3c!-- Description END --\x3e\n\n                </md-tab>\n                \x3c!-- Layout Tab END --\x3e\n\n                \x3c!-- Query Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_QUERY\' | translate}}">\n                    \x3c!-- SELECT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.SELECT">Select</label>\n                        <input type="text" name="select" ng-model="vm.options.data.query.fields" required>\n                    </md-input-container>\n                    \x3c!-- <md-chips placeholder="{{\'TOOLS.FIELDS\' | translate}}" ng-model="vm.options.data.query.fields" name="fields" md-max-chips="1" m d-enable-chip-edit="true"></md-chips> --\x3e\n                    \x3c!-- SELECT END --\x3e\n\n                    \x3c!-- FROM  START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.FROM">From</label>\n                        <input type="text" name="from" ng-model="vm.options.data.query.from" required>\n                    </md-input-container>\n                    \x3c!-- FROM END --\x3e\n\n                    \x3c!-- WHERE START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.WHERE">Where</label>\n                        <input type="text" name="where" ng-model="vm.options.data.query.where">\n                    </md-input-container>\n                    \x3c!-- WHERE END --\x3e\n\n                </md-tab>\n                \x3c!-- Query Tab END --\x3e\n            </md-tabs>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-counter/ms-dash-counter.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front ng-style="{background: options.data.background}">\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20" ng-switch="result.error">\n                <md-icon ng-switch-default md-font-icon="icon-timer-sand"></md-icon>\n                <md-icon ng-switch-when="false" class="green-fg" md-font-icon="icon-check"></md-icon>\n                <md-icon ng-switch-when="true" class="red-fg" md-font-icon="icon-block-helper"></md-icon>\n            </div>\n        </div>\n\n        <div class="pt-8 pb-32" layout="column" layout-align="center center">\n            <div ng-if="!result.error" class="font-size-52 line-height-72" ng-style="{color: options.data.foreground}">\n                {{ result.value || 0 }}\n            </div>\n            <div ng-if="!result.error" class="h3 secondary-text font-weight-500" ng-style="{color: options.data.foregroundTitle}">\n                {{ options.data.title || \'TOOLS.TITLE\' | translate }}\n            </div>\n            <div ng-if="result.error" class="padding-20">\n                <span>{{result.message}}</span>\n            </div>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-iframe/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            \x3c!-- Title START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TITLE">Title</label>\n                <input type="text" name="title" ng-model="vm.options.data.title" required>\n                <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            \x3c!-- Title END --\x3e\n\n            \x3c!-- Title START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="url" ng-model="vm.options.data.url" required>\n                <div ng-messages="dashboarditemForm.url.$error" ng-show="dashboarditemForm.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">URL field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            \x3c!-- Title END --\x3e\n\n\n            \x3c!-- Description START --\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.options.data.description">\n            </md-input-container>\n            \x3c!-- Description END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-iframe/ms-dash-iframe.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20">\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ options.data.title || \'TOOLS.TITLE\' | translate }}</span>\n            </div>\n        </div>\n\n        <div layout="row" layout-fill style="min-height: 1000px">\n            <iframe flex ng-src="{{getTrustSrc(options.data.url)}}" allowfullscreen frameborder="0"></iframe>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-table/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <md-tabs md-dynamic-height md-border-bottom>\n                \x3c!-- Layout Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_LAYOUT\' | translate}}">\n\n                    \x3c!-- Title START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.TITLE">Title</label>\n                        <input type="text" name="title" ng-model="vm.options.data.title" required>\n                        <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    \x3c!-- Title END --\x3e\n\n                    \x3c!-- Description START --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.DESCRIPTION">Description</label>\n                        <input type="text" name="description" ng-model="vm.options.data.description">\n                    </md-input-container>\n                    \x3c!-- Description END --\x3e\n\n                </md-tab>\n                \x3c!-- Layout Tab END --\x3e\n\n                \x3c!-- Query Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_QUERY\' | translate}}">\n\n                    \x3c!-- SELECT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.SELECT">Select</label>\n                        <input type="text" name="select" ng-model="vm.options.data.query.fields" required>\n                    </md-input-container>\n                    \x3c!-- <md-chips placeholder="{{\'TOOLS.FIELDS\' | translate}}" ng-model="vm.options.data.query.fields" name="fields" md-max-chips="1" m d-enable-chip-edit="true"></md-chips> --\x3e\n                    \x3c!-- SELECT END --\x3e\n\n                    \x3c!-- FROM  START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.FROM">From</label>\n                        <input type="text" name="from" ng-model="vm.options.data.query.from" required>\n                    </md-input-container>\n                    \x3c!-- FROM END --\x3e\n\n                    \x3c!-- WHERE START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.WHERE">Where</label>\n                        <input type="text" name="where" ng-model="vm.options.data.query.where">\n                    </md-input-container>\n                    \x3c!-- WHERE END --\x3e\n\n                    \x3c!-- LIMIT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.LIMIT">Limit</label>\n                        <input type="text" name="limit" ng-model="vm.options.data.query.limit">\n                    </md-input-container>\n                    \x3c!-- LIMIT END --\x3e\n\n                </md-tab>\n                \x3c!-- Query Tab END --\x3e\n            </md-tabs>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-table/ms-dash-table.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20" ng-switch="result.error">\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ options.data.title || \'TOOLS.TITLE\' | translate }}</span>\n                <md-icon ng-switch-default md-font-icon="icon-timer-sand"></md-icon>\n                <md-icon ng-switch-when="false" class="green-fg" md-font-icon="icon-check"></md-icon>\n                <md-icon ng-switch-when="true" class="red-fg" md-font-icon="icon-block-helper"></md-icon>\n            </div>\n        </div>\n\n        <div layout="row" ng-if="!result.error">\n            <table md-table>\n                <thead md-head>\n                    <tr md-row>\n                        <th md-column ng-repeat="field in result.fields"><span> {{ field }} </span></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-repeat="row in result.rows">\n                        <td md-cell ng-repeat="(key, value) in row"> {{value}} </td>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n        <div layout="row" ng-if="result.error">\n            <span class="padding-20">{{result.message}}</span>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n            <md-tooltip>{{ message || \'TOOLS.TOOLS_VALID_QUERY\' | translate }}</md-tooltip>\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n    <div flex-gt-sm="50" flex="45">\n        <md-input-container class="md-icon-float md-block margin-0">\n            <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n            <input ng-model="query" type="text" placeholder="Search...">\n        </md-input-container>\n        <md-content class="border h-300">\n            <md-list class="md-dense" layout-fill layout-align="center center">\n                <md-list-item class="md-3-line" ng-repeat="item in options.items | filter: query | orderBy: options.orderBy" ng-click="transfer(options.items, options.selectedItems, options.items.indexOf(item), false)">\n                    <div class="md-list-item-text" layout="column">\n                        <h3 ng-if="options.line1">{{ item[options.line1] || \'\' }}</h3>\n                        <h4 ng-if="options.line2">{{ item[options.line2] || \'\' }}</h4>\n                        <p ng-if="options.line3">{{ item[options.line3] || \'\' }}</p>\n                    </div>\n                    <md-icon md-font-icon="icon-arrow-right-bold" aria-label="swap"></md-icon>\n                    <md-divider></md-divider>\n                </md-list-item>\n            </md-list>\n        </md-content>\n        <div class="margin-10" layout="row">\n            <span class="h4" flex>{{options.labelAll || \'All Items\'}} ({{options.items.length}})</span>\n            <md-icon md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="transfer(options.items, options.selectedItems, -1, false)"></md-icon>\n        </div>\n    </div>\n\n    <div flex="10" layout="row" layout-align="center center">\n        <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n    </div>\n\n    <div flex-gt-sm="50" flex="45">\n        <md-input-container class="md-icon-float md-block margin-0">\n            <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n            <input ng-model="selectedQuery" type="text" placeholder="Search...">\n        </md-input-container>\n        <md-content class="border h-300">\n            <md-list class="md-dense" layout-fill layout-align="center center">\n                <md-list-item class="md-3-line" ng-repeat="item in options.selectedItems | filter: selectedQuery | orderBy: options.orderBy" ng-click="transfer(options.selectedItems, options.items, options.selectedItems.indexOf(item), true)">\n                    <md-icon md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n                    <div class="md-list-item-text" layout="column">\n                        <h3 ng-if="options.line1">{{ item[options.line1] || \'\' }}</h3>\n                        <h4 ng-if="options.line2">{{ item[options.line2] || \'\' }}</h4>\n                        <p ng-if="options.line3">{{ item[options.line3] || \'\' }}</p>\n                    </div>\n                    <md-divider></md-divider>\n                </md-list-item>\n            </md-list>\n        </md-content>\n        <div class="margin-10" layout="row">\n            <md-icon md-font-icon="icon-chevron-double-left" aria-label="swap" flex ng-click="transfer(options.selectedItems, options.items, -1, true)"></md-icon>\n            <span class="h4">{{options.labelSelected || \'Selected Items\'}} ({{options.selectedItems.length}})</span>\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n    <div id="ms-info-bar-message" ng-transclude flex></div>\n    <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n        <md-icon md-font-icon="icon-close s24"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n    <div ng-click="$mdOpenMenu($event)">\n        <ms-color-picker-button>\n            <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n                <span ng-show="vm.selectedColor.palette">\n                    {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n                </span>\n                <span ng-show="!vm.selectedColor.palette">\n                    Select Color\n                </span>\n            </md-button>\n        </ms-color-picker-button>\n    </div>\n\n    <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n        <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n            <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n                <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n            </md-button>\n\n            <span ng-if="vm.selectedColor.palette">\n                {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n            </span>\n\n            <span ng-if="!vm.selectedColor.palette">\n                Select Color\n            </span>\n\n            <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n                <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n            </md-button>\n        </header>\n\n        <div class="colors" ms-scroll>\n            <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n                <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n                    <span class="label">\n                        {{palette}}\n                    </span>\n                </div>\n            </div>\n\n            <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n                <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n                    <span class="label">\n                        {{hue}}\n                    </span>\n                    <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n                    </i>\n                </div>\n            </div>\n\n        </div>\n\n    </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n    <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n        <md-icon md-font-icon="icon-menu"></md-icon>\n    </md-button>\n</div>\n\n<ul class="horizontal">\n    <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n    <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n        <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title" ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n            <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n        </div>\n\n        <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}" ng-if="node.uisref && node.title">\n            <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n        </a>\n\n    </div>\n\n    <ul ng-if="vm.hasChildren && !vm.isHidden()">\n        <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n    </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n    <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n    <div ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n        <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n            <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n        </div>\n\n        <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n            <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n        </a>\n\n    </div>\n\n    <ul ng-if="vm.hasChildren && !vm.isHidden()">\n        <li ng-repeat="node in node.children" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n    </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-phonebar/ms-phonebar.html",'<div class="phonebar-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsPhonebar.mobileBarActive}">\n\n    <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n        <div class="phonebar hide show-gt-xs" layout="row" layout-align="start center">\n            <div layout="row" layout-align="center">\n                <md-input-container md-no-float>\n                    <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required placeholder="Insert Number">\n                </md-input-container>\n            </div>\n            <div layout="row" layout-align="center center">\n                <md-button class="md-icon-button">\n                    <md-icon md-font-icon="icon-phone" class="icon s24"></md-icon>\n                    <md-tooltip md-direction="bottom">CALL</md-tooltip>\n                </md-button>\n            </div>\n        </div>\n    </div>\n\n    <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsPhonebar.toggleMobileBar()">\n        <md-icon md-menu-origin md-font-icon="icon-phone" class="icon s24" ng-hide="MsPhonebar.mobileBarActive"></md-icon>\n        <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsPhonebar.mobileBarActive"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n    <label for="ms-search-bar-input">\n        <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar"\n                   ng-click="MsSearchBar.expand()"\n                   ng-if="!MsSearchBar.resultsLoading || MsSearchBar.collapsed">\n            <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n        </md-button>\n        <div class="ms-search-bar-loader" layout="row" layout-align="center center"\n             ng-if="MsSearchBar.resultsLoading && !MsSearchBar.collapsed">\n            <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n        </div>\n    </label>\n    <input id="ms-search-bar-input" type="text" placeholder="Search" flex ng-model="MsSearchBar.query" ng-model-options="MsSearchBar.queryOptions" ng-blur="MsSearchBar.blurCollapse()" ng-keydown="MsSearchBar.handleKeydown($event)">\n    <md-button class="ms-search-bar-collapser md-icon-button" ng-click="MsSearchBar.collapse()" aria-label="Collapse Search Bar">\n        <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n    </md-button>\n\n    <div class="ms-search-bar-results" ng-if="MsSearchBar.results" ms-scroll>\n        <div class="no-results" ng-if="MsSearchBar.results.length === 0">No Results!</div>\n\n        <div class="result" ng-repeat="result in MsSearchBar.results" ng-click="MsSearchBar.handleResultClick(result)" ng-mouseenter="MsSearchBar.handleMouseenter($index)" ng-mousedown="MsSearchBar.absorbEvent($event)" ng-class="{\'selected\': $index == MsSearchBar.selectedResultIndex}"\n            md-ink-ripple>\n            <div layout="row" layout-align="start center">\n                <div class="icon-container" layout="row" layout-align="center center">\n                    <i ng-if="result.icon" class="icon {{result.icon}}"></i>\n                    <div ng-if="!result.icon" class="square md-accent-bg"></div>\n                </div>\n                <div>\n                    <div class="title">{{result.title}}</div>\n                    <div class="description" ng-if="result.description">{{result.description}}</div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n    <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n        <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n            <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n                <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n                    <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n                    <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n                    <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n                </md-button>\n            </div>\n        </div>\n\n        <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n            <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut" ng-click="$mdOpenMenu($event)">\n                <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n                <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n            </md-button>\n\n            <md-menu-content>\n                <div id="ms-shortcut-add-menu">\n                    <div class="shortcut-search" layout="row" layout-align="start center">\n                        <div class="search-icon" layout="row" layout-align="center center" ng-if="!MsShortcuts.resultsLoading">\n                            <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n                        </div>\n                        <div class="shortcut-loader" layout="row" layout-align="center center" ng-if="MsShortcuts.resultsLoading">\n                            <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n                            </md-progress-circular>\n                        </div>\n\n                        <input type="text" placeholder="Search" flex ng-model="MsShortcuts.query" ng-model-options="MsShortcuts.queryOptions" ng-keydown="MsShortcuts.handleKeydown($event)">\n                    </div>\n\n                    <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n                        <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n                        <div class="result" ng-repeat="result in MsShortcuts.results" ng-click="MsShortcuts.handleResultClick(result)" ng-mouseenter="MsShortcuts.handleMouseenter($index)" ng-mousedown="MsShortcuts.absorbEvent($event)" ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n                            md-prevent-menu-close="md-prevent-menu-close" md-ink-ripple>\n                            <div layout="row" layout-align="start space-between">\n                                <div layout="row" layout-align="start center" flex>\n                                    <div class="icon icon-container" layout="row" layout-align="center center">\n                                        <i ng-if="result.icon" class="{{result.icon}}"></i>\n                                        <div ng-if="!result.icon" class="square md-accent-bg"></div>\n                                    </div>\n                                    <div>\n                                        <div class="title">{{result.title}}</div>\n                                    </div>\n                                </div>\n                                <md-icon md-font-icon="icon-pin" class="icon s18" ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </md-menu-content>\n        </md-menu>\n    </div>\n\n    <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n        <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n        <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n    <div class="ms-stepper-navigation-wrapper">\n        <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n            <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}"\n                ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n                <div class="step md-accent-bg" layout="row" layout-align="center center">\n                    <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n                    {{$index + 1}}\n                </span>\n                    <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n                    <i class="icon icon-check s18"></i>\n                </span>\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n                    <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n                </div>\n            </md-button>\n        </div>\n    </div>\n\n    <div class="ms-stepper-steps" ng-transclude></div>\n\n    <div class="ms-stepper-controls" layout="row" layout-align="center center">\n        <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n            Back\n        </md-button>\n\n        <div class="ms-stepper-dots">\n            <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n            </span>\n        </div>\n\n        <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n            Next\n        </md-button>\n\n        <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n            Submit\n        </md-button>\n    </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html","<md-button class=\"ms-stepper-navigation-item\" ng-class=\"{'current': MsStepper.isStepCurrent(stepInfo.stepNumber), 'valid': MsStepper.isStepValid(stepInfo.stepNumber), 'disabled': MsStepper.isStepDisabled(stepInfo.stepNumber), 'optional': MsStepper.isStepOptional(stepInfo.stepNumber)}\"\n"+'    ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n    <div class="step" layout="row" layout-align="center center">\n        <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n            <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n        </span>\n        <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n            <i class="icon icon-check-circle s18 md-accent-fg"></i>\n        </span>\n    </div>\n\n    <div layout="column" layout-align="start start">\n        <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n        <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n        <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n    </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n    <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n        Back\n    </md-button>\n\n    <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n        Next\n    </md-button>\n\n    <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n        Submit\n    </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n    <div class="ms-stepper-vertical-line"></div>\n    <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel">\n    <md-option ng-value="null">NONE</md-option>\n    <md-option ng-repeat="(key, value) in timezone" value="{{key}}">{{value.name}} ({{value.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n    <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n    <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n    <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n        <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n        <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n    </div>\n\n    <div id="content-container" flex layout="column">\n        <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n    </div>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n    <div id="main-container" layout="row" flex>\n        <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n        <div id="content-container" flex layout="column">\n            <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n        </div>\n\n        <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n    </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n    <div id="main-container" layout="row" flex>\n        <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n        <div id="content-container" flex layout="column">\n            <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n        </div>\n\n        <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n    </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n    <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n    <div id="content-container" flex layout="column">\n        <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n        <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n    </div>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n    <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n    <div class="ms-theme-options-list" layout="column">\n        <div class="theme-option layout-options">\n            <div class="option-title">Layout Style:</div>\n            <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n                <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n                    <div layout="column" layout-align="center center">\n                        <img ng-src="{{layoutStyle.figure}}">\n                        <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n                    </div>\n                </md-radio-button>\n            </md-radio-group>\n        </div>\n\n        <md-divider></md-divider>\n\n        <div class="theme-option">\n            <div class="option-title">Layout Mode:</div>\n            <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n                <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n                    {{layoutMode.label}}\n                </md-radio-button>\n            </md-radio-group>\n        </div>\n\n        <md-divider></md-divider>\n\n        <div class="theme-option color-palettes">\n            <div class="option-title">Color Palette:</div>\n            <div layout="row" layout-align="start start" layout-wrap>\n                <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}"\n                    ng-class="{active: vm.getActiveTheme().name === themeName}">\n                    <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n    <div class="content" layout="column" layout-align="center center">\n        <div class="error-code" translate="ERROR404.CODE">404</div>\n\n        <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n        \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n            <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n            <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n        </div> --\x3e\n\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n    </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n    <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n        <div class="error-code" translate="ERROR500.CODE">500</div>\n        <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n        <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n        </div>\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n        <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n    </div>\n    <pre ng-if="!vm.send">\n      {{vm.error}}\n    </pre>\n    <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n        <div class="error-code">#{{vm.code}}</div>\n        <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n        <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n    </div>\n</div>'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n    <div id="login-form-wrapper" layout="column" layout-align="center center">\n        <div id="login-form" class="md-whiteframe-8dp">\n\n            <img src="/api/settings/1/logo_login" alt="logo_login" />\n            \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n            <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n            <form name="loginForm" novalidate>\n                <md-input-container class="md-block" md-no-float>\n                    <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n                    <div ng-messages="loginForm.name.$error" role="alert" multiple>\n                        <div ng-message="required">\n                            <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n\n                <md-input-container class="md-block" md-no-float>\n                    <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n                    <div ng-messages="loginForm.password.$error" role="alert" multiple>\n                        <div ng-message="required">\n                            <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n\n                \x3c!-- <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="space-between center">\n                    <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n                        <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n                    </md-checkbox>\n                    <a ui-sref="app.pages_auth_forgot-password" class="forgot-password md-accent-color" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n                </div> --\x3e\n\n                <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message"><font color="red">{{vm.message}}</font></b>\n                <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOG IN" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n                    LOG IN\n                </md-button>\n            </form>\n\n            <div class="separator">\n                <span class="text" translate="LOGIN.OR">OR</span>\n            </div>\n\n            <md-button ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n                <div layout="row" layout-align="center center">\n                    <span>\n                        <md-icon md-font-icon="icon-google-plus" class="s16"></md-icon>\n                        <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n                    </span>\n                </div>\n            </md-button>\n        </div>\n    </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n    <form name="extractedReportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.extractedReport.name" required autofocus>\n                <div ng-messages="extractedReportForm.name.$error" ng-show="extractedReportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE"\n                    translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n                    ADD EXTRACTEDREPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-extractedReports-count">\n                    <span>{{vm.selectedExtractedReports.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="EXTRACTEDREPORTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" filename="extractedReports.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="EXTRACTEDREPORTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n                                <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n                                <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n                                <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.extractedReports.rows.length">\n                                <td md-cell colspan="9">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n                                <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n                                <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(extractedReport, $event)" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n                                                    Edit ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(extractedReport, $event)" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n                                                    Download ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(extractedReport, $event)" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n                                                    Delete ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n    <form name="metricForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.metric.name" required autofocus>\n                <div ng-messages="metricForm.name.$error" ng-show="metricForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.TABLE">Table</label>\n                <md-select ng-model="vm.metric.table" required>\n                    <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n                    <md-option ng-value="\'report_call\'">Call Report</md-option>\n                    <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n                    <md-option ng-value="\'chat_rooms\'">Chat Rooms</md-option>\n                    <md-option ng-value="\'report_chat_session\'">Chat Session Report</md-option>\n                    <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n                    <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n                    <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n                    <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n                    <md-option ng-value="\'fax_rooms\'">Fax Rooms</md-option>\n                    <md-option ng-value="\'report_fax_session\'">Fax Session Report</md-option>\n                    <md-option ng-value="\'report_integration\'">Integration Report</md-option>\n                    <md-option ng-value="\'mail_messages\'">Mail Messages</md-option>\n                    <md-option ng-value="\'mail_rooms\'">Mail Rooms</md-option>\n                    <md-option ng-value="\'report_mail_session\'">Mail Session Report</md-option>\n                    <md-option ng-value="\'report_member\'">Member Report</md-option>\n                    <md-option ng-value="\'openchannel_messages\'">Open Channel Messages</md-option>\n                    <md-option ng-value="\'openchannel_rooms\'">Open Channel Rooms</md-option>\n                    <md-option ng-value="\'report_openchannel_session\'">Open Channel Session Report</md-option>\n                    <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n                    <md-option ng-value="\'sms_messages\'">Sms Messages</md-option>\n                    <md-option ng-value="\'sms_rooms\'">Sms Rooms</md-option>\n                    <md-option ng-value="\'report_sms_session\'">Sms Session Report</md-option>\n                    <md-option ng-value="\'users\'">Users</md-option>\n                    <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n                    <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n                    <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n                    <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n                </md-select>\n                <div ng-messages="metricForm.table.$error" ng-show="metricForm.table.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.METRIC">Metric</label>\n                <input type="text" name="metric" ng-model="vm.metric.metric" required>\n                <div ng-messages="metricForm.metric.$error" ng-show="metricForm.metric.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.metric.description">\n                <div ng-messages="metricForm.description.$error" ng-show="metricForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n                    ADD METRIC\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-metrics-count">\n                    <span>{{vm.selectedMetrics.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="METRICS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" filename="metrics.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="METRICS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- METRIC TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.metrics.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n                                <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n                                <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(metric, $event)" translate="ANALYTICS.EDIT_METRIC">\n                                                    Edit Metric\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(metric, $event)" translate="ANALYTICS.DELETE_METRIC">\n                                                    Delete Metric\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / METRIC TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD METRIC BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input name="name" ng-model="vm.report.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="md-block">\n                <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n                <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n                    COPY REPORT\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newReport">\n                <label translate="ANALYTICS.TABLE">Table</label>\n                <md-select ng-model="vm.report.table" required>\n                    <md-option value="report_agent">Agent Report</md-option>\n                    <md-option value="report_call">Call Report</md-option>\n                    <md-option value="chat_messages">Chat Messages</md-option>\n                    <md-option value="chat_rooms">Chat Rooms</md-option>\n                    <md-option value="report_chat_session">Chat Session Report</md-option>\n                    <md-option value="cm_contacts">Contacts</md-option>\n                    <md-option value="report_square">CSquare Report</md-option>\n                    <md-option value="report_square_details">CSquare Details Report</md-option>\n                    <md-option value="fax_messages">Fax Messages</md-option>\n                    <md-option value="fax_rooms">Fax Rooms</md-option>\n                    <md-option value="report_fax_session">Fax Session Report</md-option>\n                    <md-option value="report_integration">Integration Report</md-option>\n                    <md-option value="mail_messages">Mail Messages</md-option>\n                    <md-option value="mail_rooms">Mail Rooms</md-option>\n                    <md-option value="report_mail_session">Mail Session Report</md-option>\n                    <md-option value="report_member">Member Report</md-option>\n                    <md-option value="openchannel_messages">Open Channel Messages</md-option>\n                    <md-option value="openchannel_rooms">Open Channel Rooms</md-option>\n                    <md-option value="report_openchannel_session">Open Channel Session Report</md-option>\n                    <md-option value="report_queue">Queue Report</md-option>\n                    <md-option value="sms_messages">Sms Messages</md-option>\n                    <md-option value="sms_rooms">Sms Rooms</md-option>\n                    <md-option value="report_sms_session">Sms Session Report</md-option>\n                    <md-option value="users">Users</md-option>\n                    <md-option value="voice_recordings">Voice Recordings</md-option>\n                    <md-option value="cm_hopper">Dialer Hopper Processing</md-option>\n                    <md-option value="cm_hopper_history">Dialer Hopper Logs</md-option>\n                    <md-option value="cm_hopper_final">Dialer Hopper Final</md-option>\n                </md-select>\n                <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.report.description">\n                <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n                    ADD REPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n    <div layout="row">\n        <md-input-container class="md-block" flex>\n            <label translate="ANALYTICS.OPERATOR">Operator</label>\n            <md-select ng-model="group.operator" required>\n                <md-option value="AND">AND</md-option>\n                <md-option value="OR">OR</md-option>\n            </md-select>\n            <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n                <div ng-message="required">\n                    <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                </div>\n            </div>\n        </md-input-container>\n        <md-input-container class="md-block">\n            <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n                <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}</md-button>\n        </md-input-container>\n        <md-input-container class="md-block">\n            <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n                <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}</md-button>\n        </md-input-container>\n        <div flex></div>\n        <md-input-container class="md-block" ng-if="parent">\n            <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n                <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}</md-button>\n        </md-input-container>\n    </div>\n    <div layout="column" ng-repeat="rule in group.rules track by $index">\n        <div layout="row" ng-if="!rule.group">\n            <md-input-container class="md-block" flex>\n                <label translate="ANALYTICS.COLUMN">COLUMN</label>\n                <md-select name="field" ng-model="rule.field" required>\n                    <md-option ng-repeat="column in vm_rc.columns" ng-value="column">{{column}}</md-option>\n                </md-select>\n                <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" flex>\n                <label translate="ANALYTICS.CONDITION">CONDITION</label>\n                <md-select name="condition" ng-model="rule.condition" required>\n                    <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n                </md-select>\n                <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n                <label translate="ANALYTICS.VALUE">VALUE</label>\n                <input type="text" name="value" ng-model="rule.value" required md-autofocus>\n                <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" flex>\n                <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </md-input-container>\n        </div>\n        <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n    </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n    <form name="reportFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{vm.title}}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.TYPE">Type</label>\n                <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n                    <md-option value="column">Select a column</md-option>\n                    <md-option value="metric">Select an existing metric</md-option>\n                    <md-option value="custom">Write a custom metric</md-option>\n                </md-select>\n                <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div ng-switch on="vm.reportField.type">\n                <md-input-container class="md-block" ng-switch-when="column">\n                    <label translate="ANALYTICS.COLUMN">Column Name</label>\n                    <md-select name="column" ng-model="vm.reportField.field" required>\n                        <md-option ng-repeat="column in vm.columns" ng-value="column">{{column}}</md-option>\n                    </md-select>\n                    <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" ng-switch-when="metric">\n                    <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n                    <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n                        <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n                    </md-select>\n                    <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" ng-switch-when="custom">\n                    <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n                    <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n                    <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.ALIAS">Alias</label>\n                <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n                <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n                <label translate="ANALYTICS.FUNCTION">Function</label>\n                <md-select name="function" ng-model="vm.reportField.function">\n                    <md-option ng-value="null">No Function</md-option>\n                    <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{vm.reportField.field ? function.option(vm.reportField.field) : function.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n                <label translate="ANALYTICS.FORMAT">Format</label>\n                <md-select name="format" ng-model="vm.reportField.format">\n                    <md-option ng-value="null">No Format</md-option>\n                    <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{vm.reportField.field ? format.option(vm.reportField.field) : format.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.GROUP_BY">Group By</label>\n                <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n                    <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{vm.reportField.field ? gb.option(vm.reportField.field) : gb.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.ORDER_BY">Order By</label>\n                <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n                    <md-option ng-value="null">No Order</md-option>\n                    <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{vm.reportField.field ? ob.option(vm.reportField.field) : ob.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n                    ADD REPORT FIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="report-image" hide-xs>\n                    <img ng-src="assets/images/business/reports.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.report.id}} {{vm.report.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span>{{vm.report.description}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="ANALYTICS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.report.name" required md-autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.report.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.FIELDS">FIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n                                <div class="md-toolbar-tools">\n                                    <div layout="row" layout-align="start center">\n                                        <div layout="column" layout-align="start start">\n                                            <div class="md-subhead" translate="ANALYTICS.FIELDS">\n                                                <span translate="ANALYTICS.FIELDS">FIELDS</span>\n                                            </div>\n                                            <div class="h4">\n                                                <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n                                    <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n                                        <tr md-row>\n                                            <th md-column width="10px">\n                                                <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n                                            </th>\n                                            <th md-column>Type</th>\n                                            <th md-column>Column or Metric</th>\n                                            <th md-column>Alias</th>\n                                            <th md-column>Function</th>\n                                            <th md-column>Format</th>\n                                            <th md-column>Group By</th>\n                                            <th md-column>Order By</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body ng-sortable="vm_rf.sortableTable">\n                                        <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n                                            <td md-cell class="handle">\n                                                <md-icon md-font-icon="icon-drag-vertical" class="s16">\n                                            </td>\n                                            <td md-cell>\n                                                <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n                                                <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n                                                <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n                                            </td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? \'No Available\' : vm_rf.functions[reportField.function].option(reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? \'No Available\' : vm_rf.formats[reportField.format].option(reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{vm_rf.groupBy[reportField.groupBy].option(reportField.MetricId ? vm_rf.getMetricValue(reportField.MetricId) : reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{vm_rf.orderBy[reportField.orderBy].option(reportField.MetricId ? vm_rf.getMetricValue(reportField.MetricId) : reportField.field) || \'No\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n                                                                Edit Report\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n                                                                Delete Report\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report)">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n                            </div>\n                            <form name="conditionsForm" novalidate>\n                                <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n                            </form>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab md-on-select="vm.previewReport()">\n                <md-tab-label>\n                    <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                            <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n                        </div>\n                        <dl ng-if="vm.error">\n                            <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                            <dd>{{vm.error.sql}}</dd>\n                            <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                            <dd>{{vm.error.msg}}</dd>\n                        </dl>\n                        <md-table-container ng-if="!vm.error">\n                            <table md-table>\n                                <thead md-head>\n                                    <tr md-row>\n                                        <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-repeat="row in vm.rows">\n                                        <td md-cell ng-repeat="(key, value) in row">{{value}}</td>\n                                    </tr>\n                                    <tr md-row ng-if="!vm.rows.length">\n                                        <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab md-on-select="vm.queryReport()">\n                <md-tab-label>\n                    <span>Query</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                            <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n                        </div>\n                        <dl ng-if="vm.error">\n                            <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                            <dd>{{vm.error.sql}}</dd>\n                            <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                            <dd>{{vm.error.msg}}</dd>\n                        </dl>\n                        <div ng-if="!vm.error">\n                            {{vm.queryResult}}\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div class="md-block">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                    <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n                </div>\n                <dl ng-if="vm.error">\n                    <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                    <dd>{{vm.error.sql}}</dd>\n                    <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                    <dd>{{vm.error.msg}}</dd>\n                </dl>\n                <md-table-container ng-if="!vm.error">\n                    <table md-table>\n                        <thead md-head>\n                            <tr md-row>\n                                <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-repeat="row in vm.rows">\n                                <td md-cell ng-repeat="(key, value) in row">{{value}}</td>\n                            </tr>\n                            <tr md-row ng-if="!vm.rows.length">\n                                <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div flex></div>\n            <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n                CLOSE\n            </md-button>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-reports-count">\n                    <span>{{vm.selectedReports.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedReports" filename="reports.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div layout="column" flex="30">\n            <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n                \x3c!-- SEARCH --\x3e\n                <div layout="row" layout-align="start center">\n                    <label for="searchFolder" class="m-0">\n                        <md-icon md-font-icon="icon-magnify"></md-icon>\n                    </label>\n                    <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n                        <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n                    </md-input-container>\n                </div>\n                \x3c!-- / SEARCH --\x3e\n            </md-card>\n            <md-card class="padding-10 scrollable" ms-scroll>\n                <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n            </md-card>\n            <md-card class="padding-10 scrollable" ms-scroll>\n                <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n            </md-card>\n        </div>\n        <md-card flex="70">\n            <md-toolbar class="md-table-toolbar md-default">\n                <div class="md-toolbar-tools">\n                    <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n                    <div flex></div>\n                    <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n                    <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n                        <md-button ng-if="vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n                            <md-icon md-font-icon="icon-upload"></md-icon>\n                        </md-button>\n                    </div>\n                    <md-button ng-if="vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n                        <md-icon md-font-icon="icon-plus"></md-icon>\n                    </md-button>\n                </div>\n            </md-toolbar>\n            <md-table-container>\n                <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n                    <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n                        <tr md-row>\n                            <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n                            <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                            <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n                            <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n                            <th md-column width="10px"></th>\n                        </tr>\n                    </thead>\n                    <tbody md-body>\n                        <tr md-row ng-hide="vm.reports.rows.length">\n                            <td md-cell colspan="5">\n                                <div layout="row" layout-align="center center">\n                                    <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                </div>\n                            </td>\n                        </tr>\n                        <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n                            <td md-cell class="actions">\n                                <md-menu>\n                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                    </md-button>\n\n                                    <md-menu-content width="3">\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n                                                Copy Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n                                                Preview Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n                                                Run Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n                                                Download Json Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-divider ng-if="vm.currentNode.custom"></md-menu-divider>\n                                        <md-menu-item ng-if="vm.currentNode.custom">\n                                            <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n                                                Edit Report\n                                            </md-button>\n                                        </md-menu-item>\n\n                                        <md-menu-item ng-if="vm.currentNode.custom">\n                                            <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n                                                Delete Report\n                                            </md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n            </md-table-container>\n\n            <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n        </md-card>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input name="name" ng-model="vm.export.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.FORMAT">FORMAT</label>\n                <md-select name="format" ng-model="vm.export.output" required>\n                    <md-option value="csv">CSV</md-option>\n                    <md-option value="xls">Excel (XLS)</md-option>\n                    <md-option value="pdf">PDF</md-option>\n                </md-select>\n                <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div layout="row">\n                <div class="md-block" flex>\n                    <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n                        <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n                            </div>\n                            <div ng-message="maxDate">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n                        <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n                            </div>\n                            <div ng-message="minDate">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n            </div>\n            <div layout="row">\n                <div class="md-block" flex>\n                    <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n                        <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n                        <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.runReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n                    RUN REPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n                    <md-icon md-font-icon="icon-refresh"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n    <form name="odbcForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.odbc.name" required autofocus>\n                <div ng-messages="odbcForm.name.$error" ng-show="odbcForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DSN">DSN</label>\n                <input type="text" name="dsn" ng-model="vm.odbc.dsn" required>\n                <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n                <div ng-messages="odbcForm.dsn.$error" ng-show="odbcForm.dsn.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.odbc.description">\n                <div ng-messages="odbcForm.description.$error" ng-show="odbcForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n                    ADD ODBC\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-odbcs-count">\n                    <span>{{vm.selectedODBC.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ODBC.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" filename="odbcs.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="ODBC.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- ODBC TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.odbcs.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n                                <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n                                <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(odbc, $event)" translate="CALLYSQUARE.EDIT_ODBC">\n                                                    Edit Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(odbc, $event)" translate="CALLYSQUARE.DELETE_ODBC">\n                                                    Delete Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestOdbc(odbc, $event)" translate="CALLYSQUARE.TEST_ODBC">\n                                                    Test Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / ODBC TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD ODBC BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n    <form name="projectForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{vm.title | translate}}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n                <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input name="description" ng-model="vm.project.description">\n                <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.openFromEditor" class="md-block">\n                \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n                    ADD PROJECT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="dialogForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n                <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name  | ucfirst }}</label>\n\n                \x3c!--  START SELECT INPUT --\x3e\n                <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_tts_language|ispeech_tts_language|ispeech_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id"\n                    ng-required="attribute.required">\n                    <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n                    <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]">{{v.option}}</md-option>\n                    <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n                </md-select>\n                \x3c!--  END SELECT INPUT --\x3e\n\n                \x3c!--  START SELECT INPUT --\x3e\n                <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n                    <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n                </md-select>\n                \x3c!--  END SELECT INPUT --\x3e\n\n                \x3c!--  START NUMBER INPUT --\x3e\n                <div ng-switch-when="timeout">\n                    <div ng-switch="vm.cellName">\n                        <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                        <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                        <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                    </div>\n                </div>\n                <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority|delay" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                \x3c!--  END NUMBER INPUT --\x3e\n\n                \x3c!--  START TEXTAREA INPUT --\x3e\n                <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition" ng-required="attribute.required"></textarea>\n                \x3c!--  END TEXTAREA INPUT --\x3e\n\n                \x3c!--  START TEXT INPUT --\x3e\n                <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n                \x3c!--  END TEXT INPUT--\x3e\n\n                <div class="hint" ng-switch="attribute.name">\n                    <span ng-switch-when-separator="|" ng-switch-when="mailbox" translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n                </div>\n                <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="editForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label>XML</label>\n                <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="importForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                    <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n                </div>\n\n                <div class="upload-button" layout="column" layout-align="center center">\n                    <md-button class="md-accent md-raised" flow-btn>\n                        Upload\n                    </md-button>\n                    <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n                    CLOSE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="descriptionFrom" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input name="description" ng-model="vm.project.description" md-autofocus>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NOTES">Description</label>\n                <textarea name="notes" ng-model="vm.project.notes"></textarea>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="openForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.PROJECT">Project</label>\n                <md-select name="id" ng-model="vm.id" required>\n                    <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n                </md-select>\n                <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n                    OPEN\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="newForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input name="name" ng-model="vm.project.name" required md-autofocus>\n                <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n                    COPY\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="project-image" hide-xs>\n                    <img ng-src="assets/images/business/projects.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.project.id}} {{vm.project.name}}\n                    </div>\n                    <div class="subtitle secondary-text text-truncate">\n                        <span ng-if="vm.project.description">{{vm.project.description}}  - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n                <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <md-content class="callysquare-content">\n\n        <div id="geEditor" class="geEditor"></div>\n\n    </md-content>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-projects-count">\n                    <span>{{vm.selectedProjects.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" filename="projects.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PROJECT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n                                <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.projects.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n                                <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n                                <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n                                                    Edit Project\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n                                                    Delete Project\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PROJECT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PROJECT BUTTON --\x3e\n    <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n    <form name="squareRecordingForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE"\n                    translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n                    ADD SQUARERECORDING\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-squareRecordings-count">\n                    <span>{{vm.selectedSquareRecordings.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SQUARERECORDINGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" filename="squareRecordings.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="SQUARERECORDINGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SQUARERECORDING TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n                                <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n                                <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n                                <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.squareRecordings.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n                                <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n                                <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n                                <td md-cell class="audio "><audio controls><source ng-src="{{\'api/square/recordings/\' + squareRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(squareRecording, $event)" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n                                                    Download SquareRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(squareRecording, $event)" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n                                                    Delete SquareRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SQUARERECORDING TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CHAT.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chatQueues-count">\n                    <span>{{vm.selectedChatQueues.length}}</span>\n                <span translate="CHAT.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHATQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" filename="chatQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHATQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHATQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chatQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n                                <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chatQueue, $event)" translate="CHAT.EDIT_CHATQUEUE">\n                                                    Edit ChatQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chatQueue, $event)" translate="CHAT.DELETE_CHATQUEUE">\n                                                    Delete ChatQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHATQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n    <form name="chatQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="chatQueueForm.name.$error" ng-show="chatQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.chatQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'roundrobun\'">Round Robin Memory</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="chatQueueForm.strategy.$error" ng-show="chatQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" required>\n                <div ng-messages="chatQueueForm.timeout.$error" ng-show="chatQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chatQueue.description">\n                <div ng-messages="chatQueueForm.description.$error" ng-show="chatQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n                    ADD CHATQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue">\n    <form name="chatQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="CHAT.TEAMADD_CHATQUEUE">Add Team in CHATQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="CHAT.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="chatQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.chatQueue.userpic" class="chatQueue-image" hide-xs>\n                    <img ng-src="api/users/{{vm.chatQueue.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.chatQueue.userpic" class="chatQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/chatQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chatQueue.id}} {{vm.chatQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.chatQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'roundrobun\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chatQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CHAT.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chatWebsites-count">\n                    <span>{{vm.selectedChatWebsites.length}}</span>\n                <span translate="CHAT.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHATWEBSITES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" filename="chatWebsites.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHATWEBSITES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHATWEBSITE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                <th md-column md-order-by="address">{{ \'CHAT.ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chatWebsites.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n                                <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chatWebsite, $event)" translate="CHAT.EDIT_CHATWEBSITE">\n                                                    Edit ChatWebsite\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chatWebsite, $event)" translate="CHAT.DELETE_CHATWEBSITE">\n                                                    Delete ChatWebsite\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHATWEBSITE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n    <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chatWebsite.name" required autofocus>\n                <div ng-messages="chatWebsiteForm.name.$error" ng-show="chatWebsiteForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.ADDRESS">address</label>\n                <input type="url" name="address" ng-model="vm.chatWebsite.address" required>\n                <div ng-messages="chatWebsiteForm.address.$error" ng-show="chatWebsiteForm.address.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.ADDRESS_REQUIRED">address field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="CHAT.ERRORS.ADDRESS_MUST_VALID_URL">address must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n                <input type="url" name="remote" ng-model="vm.chatWebsite.remote" required>\n                <div class="hint"><span translate="CHAT.HELP.MOTIONADDRESS"></span></div>\n                <div ng-messages="chatWebsiteForm.remote.$error" ng-show="chatWebsiteForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chatWebsite.description">\n                <div ng-messages="chatWebsiteForm.description.$error" ng-show="chatWebsiteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n                    ADD CHATWEBSITE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",'<md-dialog class="chatDisposition-dialog" aria-label="New ChatDisposition">\n    <form name="chatDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.chatDisposition.name" required autofocus>\n                <div ng-messages="chatDispositionForm.name.$error" ng-show="chatDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatDisposition" ng-click="vm.saveChatDisposition()" class="send-button md-accent md-raised" ng-disabled="chatDispositionForm.$invalid || chatDispositionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatDisposition" ng-click="vm.addNewChatDisposition()" class="send-button md-accent md-raised" ng-disabled="chatDispositionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATDISPOSITION" translate-attr-aria-label="CHAT.ADD_CHATDISPOSITION">\n                    ADD CHATDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatDisposition" ng-click="vm.deleteChatDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.chatWebsite.userpic" class="chatWebsite-image" hide-xs>\n                    <img ng-src="api/users/{{vm.chatWebsite.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.chatWebsite.userpic" class="chatWebsite-image" hide-xs>\n                    <img ng-src="assets/images/business/chatWebsites.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chatWebsite.id}} {{vm.chatWebsite.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (embeddingForm.$invalid) || (appearanceForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (labelsForm.$invalid) || (onlinestateForm.$invalid) || (offlinestateForm.$invalid) || (ratingstateForm.$invalid) || (enquiryForm.$invalid) || (onlineForm.$invalid) || (offlineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chatWebsite.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ADDRESS">address</label>\n                                <input type="url" name="address" ng-model="vm.chatWebsite.address" required>\n                                <div ng-messages="generalForm.address.$error" ng-show="generalForm.address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ADDRESS_REQUIRED">address field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.ADDRESS_MUST_VALID_URL">address must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n                                <input type="url" name="remote" ng-model="vm.chatWebsite.remote" required>\n                                <div class="hint"><span translate="CHAT.HELP.MOTIONADDRESS"></span></div>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.LIST">List</label>\n                                <md-select ng-model="vm.chatWebsite.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.fidelity" aria-label="Fidelity"><span translate="CHAT.FIDELITY">Fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n                                <label translate="CHAT.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chatWebsite.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.EMBEDDING">EMBEDDING</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container embedding md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.EMBEDDING">EMBEDDING</div>\n                        </div>\n                        <form name="embeddingForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SNIPPET">SNIPPET</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n                        </div>\n                        <form name="appearanceForm" novalidate>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color_focus" label="{{\'CHAT.FOCUSCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADERSHAPE">headershape</label>\n                                <md-select ng-model="vm.chatWebsite.header_shape">\n\n                                    <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="appearanceForm.header_shape.$error" ng-show="appearanceForm.header_shape.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.animation" aria-label="Animation"><span translate="CHAT.ANIMATION">Animation</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n                        </div>\n                        <form name="whitelabelForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default"><span translate="CHAT.DEFAULT">default</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.defaultWhiteLabel" class="md-block">\n                                <label translate="CHAT.WHITELABEL">whiteLabel</label>\n                                <textarea ng-model="vm.chatWebsite.whiteLabel" md-maxlength="150" max-rows="5" required></textarea>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n                        </div>\n                        <form name="logoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.defaultLogo" aria-label="default"><span translate="CHAT.DEFAULT">default</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container labels md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.LABELS">LABELS</div>\n                        </div>\n                        <form name="labelsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME_TITLE">name_title</label>\n                                <input type="text" name="name_title" ng-model="vm.chatWebsite.name_title" autofocus>\n                                <div ng-messages="labelsForm.name_title.$error" ng-show="labelsForm.name_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_TITLE_REQUIRED">name_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.USERNAME_PLACEHOLDER">username_placeholder</label>\n                                <input type="text" name="username_placeholder" ng-model="vm.chatWebsite.username_placeholder">\n                                <div ng-messages="labelsForm.username_placeholder.$error" ng-show="labelsForm.username_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.USERNAME_PLACEHOLDER_REQUIRED">username_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.EMAIL_TITLE">email_title</label>\n                                <input type="text" name="email_title" ng-model="vm.chatWebsite.email_title">\n                                <div ng-messages="labelsForm.email_title.$error" ng-show="labelsForm.email_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.EMAIL_TITLE_REQUIRED">email_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.EMAIL_PLACEHOLDER">email_placeholder</label>\n                                <input type="text" name="email_placeholder" ng-model="vm.chatWebsite.email_placeholder">\n                                <div ng-messages="labelsForm.email_placeholder.$error" ng-show="labelsForm.email_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.EMAIL_PLACEHOLDER_REQUIRED">email_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container onlinestate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ONLINESTATE">ONLINESTATE</div>\n                        </div>\n                        <form name="onlinestateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADER_ONLINE">header_online</label>\n                                <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" autofocus>\n                                <div ng-messages="onlinestateForm.header_online.$error" ng-show="onlinestateForm.header_online.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ONLINE_MESSAGE">online_message</label>\n                                <input type="text" name="online_message" ng-model="vm.chatWebsite.online_message">\n                                <div ng-messages="onlinestateForm.online_message.$error" ng-show="onlinestateForm.online_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ONLINE_MESSAGE_REQUIRED">online_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n                                <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button">\n                                <div ng-messages="onlinestateForm.start_chat_button.$error" ng-show="onlinestateForm.start_chat_button.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.AGENTS_BUSY">agents_busy</label>\n                                <input type="text" name="agents_busy" ng-model="vm.chatWebsite.agents_busy">\n                                <div ng-messages="onlinestateForm.agents_busy.$error" ng-show="onlinestateForm.agents_busy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.AGENTS_BUSY_REQUIRED">agents_busy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container offlinestate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.OFFLINESTATE">OFFLINESTATE</div>\n                        </div>\n                        <form name="offlinestateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n                                <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" autofocus>\n                                <div ng-messages="offlinestateForm.header_offline.$error" ng-show="offlinestateForm.header_offline.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.OFFLINE_MESSAGE">offline_message</label>\n                                <input type="text" name="offline_message" ng-model="vm.chatWebsite.offline_message">\n                                <div ng-messages="offlinestateForm.offline_message.$error" ng-show="offlinestateForm.offline_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.OFFLINE_MESSAGE_REQUIRED">offline_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.MESSAGE_TITLE">message_title</label>\n                                <input type="text" name="message_title" ng-model="vm.chatWebsite.message_title">\n                                <div ng-messages="offlinestateForm.message_title.$error" ng-show="offlinestateForm.message_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.MESSAGE_TITLE_REQUIRED">message_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ENQUIRY_MESSAGE_PLACEHOLDER">enquiry_message_placeholder</label>\n                                <input type="text" name="enquiry_message_placeholder" ng-model="vm.chatWebsite.enquiry_message_placeholder">\n                                <div ng-messages="offlinestateForm.enquiry_message_placeholder.$error" ng-show="offlinestateForm.enquiry_message_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_MESSAGE_PLACEHOLDER_REQUIRED">enquiry_message_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ENQUIRY_BUTTON">enquiry_button</label>\n                                <input type="text" name="enquiry_button" ng-model="vm.chatWebsite.enquiry_button">\n                                <div ng-messages="offlinestateForm.enquiry_button.$error" ng-show="offlinestateForm.enquiry_button.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_BUTTON_REQUIRED">enquiry_button field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container ratingstate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.RATINGSTATE">RATINGSTATE</div>\n                        </div>\n                        <form name="ratingstateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_MESSAGE">rating_message</label>\n                                <input type="text" name="rating_message" ng-model="vm.chatWebsite.rating_message" autofocus>\n                                <div ng-messages="ratingstateForm.rating_message.$error" ng-show="ratingstateForm.rating_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_MESSAGE_REQUIRED">rating_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_SEND">rating_send</label>\n                                <input type="text" name="rating_send" ng-model="vm.chatWebsite.rating_send">\n                                <div ng-messages="ratingstateForm.rating_send.$error" ng-show="ratingstateForm.rating_send.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_SEND_REQUIRED">rating_send field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_SKIP">rating_skip</label>\n                                <input type="text" name="rating_skip" ng-model="vm.chatWebsite.rating_skip">\n                                <div ng-messages="ratingstateForm.rating_skip.$error" ng-show="ratingstateForm.rating_skip.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_SKIP_REQUIRED">rating_skip field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container enquiry md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ENQUIRY">ENQUIRY</div>\n                        </div>\n                        <form name="enquiryForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.enquiry_enable" aria-label="enquiry_enable"><span translate="CHAT.ENQUIRY_ENABLE">enquiry_enable</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.enquiry_forwarding" aria-label="enquiry_forwarding"><span translate="CHAT.ENQUIRY_FORWARDING">enquiry_forwarding</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.enquiry_forwarding" class="md-block">\n                                <label translate="CHAT.ENQUIRY_FORWARDING_ADDRESS">enquiry_forwarding_address</label>\n                                <input type="text" name="enquiry_forwarding_address" ng-model="vm.chatWebsite.enquiry_forwarding_address" required>\n                                <div ng-messages="enquiryForm.enquiry_forwarding_address.$error" ng-show="enquiryForm.enquiry_forwarding_address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_FORWARDING_ADDRESS_REQUIRED">enquiry_forwarding_address field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.enquiry_forwarding" class="md-block">\n                                <label translate="CHAT.OFFLINETEMPLATE">OfflineTemplate</label>\n                                <md-select ng-model="vm.chatWebsite.OfflineTemplateId" required>\n                                    <md-option ng-value="OfflineTemplateId.id" ng-repeat="OfflineTemplateId in vm.templates">{{ OfflineTemplateId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="enquiryForm.OfflineTemplateId.$error" ng-show="enquiryForm.OfflineTemplateId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.OFFLINETEMPLATE_REQUIRED">OfflineTemplate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.FORMS">FORMS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container online md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ONLINE">ONLINE</div>\n                        </div>\n                        <form name="onlineForm" novalidate>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container offline md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.OFFLINE">OFFLINE</div>\n                        </div>\n                        <form name="offlineForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.PROACTIVE">PROACTIVE</div>\n                        </div>\n                        <form name="proactiveForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ChatWebsiteChatDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CHAT.CHATDISPOSITIONS">ChatDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event)" aria-label="add chatDisposition" translate translate-attr-label="CHAT.ADD_CHATDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatDispositions.length}} {{vm_dc.selectedChatWebsiteChatDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHATWEBSITES.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'CHAT.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="chatDisposition" md-select-id="id" ng-repeat="chatDisposition in vm_dc.chatWebsiteChatDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" translate="CHAT.EDIT_CHATDISPOSITION">\n                                                                Edit ChatDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(chatDisposition, $event)" translate="CHAT.DELETE_CHATDISPOSITION">\n                                                                Delete ChatDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.chatWebsiteChatDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="CHAT.NO_CHATDISPOSITION_AVAILABLE">No chatdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatDispositions.count}}" md-on-paginate="vm_dc.getChatWebsiteChatDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.chatWebsite.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.chatWebsite.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.chatWebsite.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.chatWebsite.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.chatWebsite.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.chatWebsite.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-companies-count">\n                    <span>{{vm.selectedCompanies.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="COMPANIES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" filename="companies.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="COMPANIES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- COMPANY TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.companies.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n                                <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n                                <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(company, $event)" translate="CONTACTMANAGER.EDIT_COMPANY">\n                                                    Edit Company\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotocontactsgoto(company, $event)" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n                                                    goToContacts Company\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(company, $event)" translate="CONTACTMANAGER.DELETE_COMPANY">\n                                                    Delete Company\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / COMPANY TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD COMPANY BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n    <form name="companyForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.company.name" required autofocus>\n                <div ng-messages="companyForm.name.$error" ng-show="companyForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.company.phone">\n                <div ng-messages="companyForm.phone.$error" ng-show="companyForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.VAT">Vat</label>\n                <input type="text" name="vat" ng-model="vm.company.vat">\n                <div ng-messages="companyForm.vat.$error" ng-show="companyForm.vat.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                <input type="text" name="fax" ng-model="vm.company.fax">\n                <div ng-messages="companyForm.fax.$error" ng-show="companyForm.fax.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n                <input type="text" name="companyId" ng-model="vm.company.companyId">\n                <div ng-messages="companyForm.companyId.$error" ng-show="companyForm.companyId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <input type="text" name="type" ng-model="vm.company.type">\n                <div ng-messages="companyForm.type.$error" ng-show="companyForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n                <input type="text" name="website" ng-model="vm.company.website">\n                <div ng-messages="companyForm.website.$error" ng-show="companyForm.website.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n                <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n                <div ng-messages="companyForm.emailDomain.$error" ng-show="companyForm.emailDomain.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.company.email">\n                <div ng-messages="companyForm.email.$error" ng-show="companyForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.company.description">\n                <div ng-messages="companyForm.description.$error" ng-show="companyForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n                    ADD COMPANY\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.company.userpic" class="company-image" hide-xs>\n                    <img ng-src="api/users/{{vm.company.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.company.userpic" class="company-image" hide-xs>\n                    <img ng-src="assets/images/business/companies.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.company.id}} {{vm.company.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n                <md-icon md-font-icon="icon-forward"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.company.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                                <input type="text" name="phone" ng-model="vm.company.phone">\n                                <div ng-messages="generalForm.phone.$error" ng-show="generalForm.phone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.VAT">Vat</label>\n                                <input type="text" name="vat" ng-model="vm.company.vat">\n                                <div ng-messages="generalForm.vat.$error" ng-show="generalForm.vat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                                <input type="text" name="fax" ng-model="vm.company.fax">\n                                <div ng-messages="generalForm.fax.$error" ng-show="generalForm.fax.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n                                <input type="text" name="companyId" ng-model="vm.company.companyId">\n                                <div ng-messages="generalForm.companyId.$error" ng-show="generalForm.companyId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                                <input type="text" name="type" ng-model="vm.company.type">\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n                                <input type="text" name="website" ng-model="vm.company.website">\n                                <div ng-messages="generalForm.website.$error" ng-show="generalForm.website.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n                                <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n                                <div ng-messages="generalForm.emailDomain.$error" ng-show="generalForm.emailDomain.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.company.email">\n                                <div ng-messages="generalForm.email.$error" ng-show="generalForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.company.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n                        </div>\n                        <form name="addressForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.STREET">Street</label>\n                                <input type="text" name="street" ng-model="vm.company.street" autofocus>\n                                <div ng-messages="addressForm.street.$error" ng-show="addressForm.street.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n                                <input type="text" name="postalCode" ng-model="vm.company.postalCode">\n                                <div ng-messages="addressForm.postalCode.$error" ng-show="addressForm.postalCode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.CITY">City</label>\n                                <input type="text" name="city" ng-model="vm.company.city">\n                                <div ng-messages="addressForm.city.$error" ng-show="addressForm.city.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                <input type="text" name="country" ng-model="vm.company.country">\n                                <div ng-messages="addressForm.country.$error" ng-show="addressForm.country.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n                        </div>\n                        <form name="shipmentAddressForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.STREET">Street</label>\n                                <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus>\n                                <div ng-messages="shipmentAddressForm.sStreet.$error" ng-show="shipmentAddressForm.sStreet.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n                                <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode">\n                                <div ng-messages="shipmentAddressForm.sPostalCode.$error" ng-show="shipmentAddressForm.sPostalCode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.CITY">City</label>\n                                <input type="text" name="sCity" ng-model="vm.company.sCity">\n                                <div ng-messages="shipmentAddressForm.sCity.$error" ng-show="shipmentAddressForm.sCity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                <input type="text" name="sCountry" ng-model="vm.company.sCountry">\n                                <div ng-messages="shipmentAddressForm.sCountry.$error" ng-show="shipmentAddressForm.sCountry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="cm-contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <md-button class="md-icon-button sidenav-toggle" hide-gt-md ng-click="vm.toggleSidenav(\'sidenav\')" aria-label="Toggle sidenav" translate translate-attr-aria-label="CONTACTMANAGER.TOGGLE_SIDENAV">\n                <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n            </md-button>\n\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n          <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n        </span>\n                <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n        <md-icon md-font-icon="icon-magnify"></md-icon>\n      </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n        <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n            <div>\n                <span class="selected-contacts-count">\n          <span>{{vm.selectedContacts.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">Selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" filename="contacts.csv">\n          <md-icon md-font-icon="icon-download"></md-icon>\n        </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div md-background-bg layout="row" layout-align="start start">\n        <md-progress-linear ng-disabled="vm.disableDialog" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n    </div>\n\n    <div layout="row">\n        <md-card ng-if="vm.hasPermission()" flex="25">\n            \x3c!-- SIDENAV --\x3e\n            <div ms-scroll class="content scrollable">\n                <md-list>\n                    <md-list-item ng-click="vm.selectedTags = []">\n                        <md-icon md-font-icon="icon-account-multiple"></md-icon>\n                        <p translate="CONTACTMANAGER.ALL_CONTACTS">\n                            All contacts\n                        </p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select lists" flex="100" ng-model="vm.selectedList">\n                            <md-optgroup label="Lists">\n                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createList()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_LIST">New List</p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select companies" flex="100" ng-model="vm.selectedCompany">\n                            <md-optgroup label="Companies">\n                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createCompany()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_COMPANY">New Company</p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select tags" flex="100" ng-model="vm.selectedTags" multiple>\n                            <md-optgroup label="Tags">\n                                <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createTag()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_TAG">New Tag</p>\n                    </md-list-item>\n\n                </md-list>\n            </div>\n            \x3c!-- / SIDENAV --\x3e\n        </md-card>\n\n        <md-card flex>\n            \x3c!-- MAIN --\x3e\n            <div class="main scrollable" ms-scroll>\n                \x3c!-- CONTACT LIST --\x3e\n                \x3c!-- <div class="contacts-list"> --\x3e\n                \x3c!-- CONTACTS TABLE --\x3e\n                <md-table-container class="md-white-bg">\n                    <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                            <tr md-row>\n                                <th md-column md-order-by="id">ID</th>\n                                <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n                                <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n                                <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n                                <th md-column md-order-by="list">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.contacts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="phone">{{contact.phone}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="email">{{contact.email}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n                                                    Edit Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n                                                    Merge Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n                                                    Duplicate Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-divider></md-menu-divider>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n                                                    Delete Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination class="md-white-bg" md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n                \x3c!-- / CONTACTS TABLE --\x3e\n                \x3c!-- </div> --\x3e\n                \x3c!-- / CONTACT LIST --\x3e\n            </div>\n            \x3c!-- / MAIN --\x3e\n        </md-card>\n\n\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CONTACT BUTTON --\x3e\n    <div ng-cloak>\n        <md-fab-speed-dial id="add-contact-button" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n            <md-fab-trigger>\n                <md-button aria-label="menu" class="md-fab md-accent">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n            </md-fab-trigger>\n            <md-fab-actions>\n                <md-button flow-init flow-btn flow-file-added="vm.uploadContacts($event, $file, $flow)" class="md-fab md-mini md-warn" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.UPLOAD_CSV">\n                    <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n                        {{\'CONTACTMANAGER.UPLOAD_CSV\' | translate}}\n                    </md-tooltip>\n                    <md-icon md-font-icon="icon-upload"></md-icon>\n                </md-button>\n                <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n                        {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n                    </md-tooltip>\n                    <md-icon md-font-icon="icon-account-plus"></md-icon>\n                </md-button>\n            </md-fab-actions>\n        </md-fab-speed-dial>\n    </div>\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n                <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus>\n\n                <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n                <input name="lastName" ng-model="vm.contact.lastName">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                <input name="phone" ng-model="vm.contact.phone" required>\n\n                <div ng-messages="contactForm.phone.$error" ng-show="contactForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                <input name="email" type="email" ng-model="vm.contact.email">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n                <input name="mobile" ng-model="vm.contact.mobile">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                <input name="fax" ng-model="vm.contact.fax">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LIST">List</label>\n                <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-init="vm.getCustomFields(vm.contact.ListId)" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n                    <md-optgroup label="Lists">\n                        <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                        <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                    </md-optgroup>\n                </md-select>\n\n                <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n                <div ng-switch-when="datetime">\n                    <label>{{customField.alias}}</label>\n\n                    <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n                        <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                        <mdp-timne-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                    </div>\n                </div>\n\n                <div ng-switch-when="select">\n                    <label>{{customField.alias}}</label>\n\n                    <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                        <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                        <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                    </md-select>\n                </div>\n\n                <div ng-switch-when="switch">\n                    <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                        {{customField.alias}}\n                    </md-switch>\n                </div>\n\n                <md-input-container ng-switch-default>\n                    <label>{{customField.alias}}</label>\n\n                    <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                </md-input-container>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                <md-select name="company" ng-model="vm.contact.CompanyId">\n                    <md-optgroup label="Companies">\n                        <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                    </md-optgroup>\n                </md-select>\n            </md-input-container>\n\n            <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n                <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n            </div>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n                <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                <input type="date" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" class="text-truncate">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                <input type="text" name="country" ng-model="vm.contact.country">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.CITY">City</label>\n                <input type="text" name="city" ng-model="vm.contact.city">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.STREET">Street</label>\n                <input type="text" name="street" ng-model="vm.contact.street">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n                <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.NOTES">Notes</label>\n                <input type="text" name="description" ng-model="vm.contact.description">\n            </md-input-container>\n\n            <div ng-if="vm.allFields" layout="row" layout-align="center center">\n                <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields</md-button>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    ADD CONTACT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LIST">List</label>\n                <md-select name="list" ng-model="vm.contact.ListId">\n                    <md-optgroup label="Lists">\n                        <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    </md-optgroup>\n                </md-select>\n\n                <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    ADD CONTACT\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="contact-image" hide-xs>\n                    <img ng-src="assets/images/business/contacts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n            <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <div ng-repeat="channel in vm_contact_qa.channels">\n                        <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n                            <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n                                {{channel.name}}\n                            </md-tooltip>\n                            <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n                        </md-button>\n                    </div>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div>\n            <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n                <md-icon md-font-icon="icon-file-multiple"></md-icon>\n            </md-button>\n            <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="70">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO</div>\n                            </div>\n                            <form name="detailForm" novalidate>\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- fistName --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n                                        <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n                                        <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required>\n\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- lastName --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n                                        <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate">\n                                    </md-input-container>\n\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- phone --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                                        <md-icon md-font-icon="icon-phone"></md-icon>\n                                        <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" required>\n\n                                        <div ng-messages="detailForm.phone.$error" ng-show="detailForm.phone.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- mobile --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n                                        <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n                                        <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- email --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                                        <md-icon md-font-icon="icon-email" class="email"></md-icon>\n                                        <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate">\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="email">\n                                                <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- fax --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.FAX">Fax</label>\n                                        <md-icon md-font-icon="icon-deskphone"></md-icon>\n                                        <input type="text" name="fax" ng-model="vm.contact.fax">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- date of birdth --\x3e\n                                    \x3c!-- <md-input-container class="md-block" flex-gt-sm="">\n                                      <mdp-date-picker mdp-open-on-click name="dateOfBirth" mdp-placeholder="Date Of Birth" mdp-format="YYYY-MM-DD" ng-model="vm.contact.dateOfBirth">\n                                          <div ng-messages="detailForm.dateOfBirth.$error" ng-show="reportForm.dateOfBirth.$touched" role="alert">\n                                              <div ng-message="format">\n                                                  <span translate="CONTACTMANAGER.ERRORS.DATE_OF_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n                                              </div>\n                                          </div>\n                                      </mdp-date-picker>\n                                    </md-input-container> --\x3e\n\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n                                        <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                                        <input type="date" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                                        <md-icon md-font-icon="icon-domain"></md-icon>\n                                        <md-select name="company" ng-model="vm.contact.CompanyId">\n                                            <md-optgroup label="Companies">\n                                                <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                            </md-optgroup>\n                                        </md-select>\n                                        <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n                                    </md-input-container>\n                                    <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n                                        <md-icon md-font-icon="icon-briefcase"></md-icon>\n                                        <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n                                        <md-button class="md-accent" translate="CONTACTMANAGER.ADD_COMPANY">Add Company</md-button>\n                                    </section>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.TAGS">Tags</label>\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <md-select ng-model="vm.contact.tags" multiple>\n                                            <md-optgroup label="Tags">\n                                                <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n                                            </md-optgroup>\n                                        </md-select>\n                                    </md-input-container>\n                                    <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <label translate="CONTACTMANAGER.NO_TAGS">No Tags</label>\n                                        <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n                                    </section>\n                                </div>\n\n                                <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n                                    <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n                                </div>\n\n                                <div ng-if="vm.allFields">\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        \x3c!-- country --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                            <md-icon md-font-icon="icon-home" class="country"></md-icon>\n                                            <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n                                        </md-input-container>\n                                        <div flex="5"></div>\n                                        \x3c!-- city --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.CITY">City</label>\n                                            <input type="text" name="city" ng-model="vm.contact.city">\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        <div flex="5"></div>\n                                        \x3c!-- street --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.STREET">Street</label>\n                                            <input type="text" name="street" ng-model="vm.contact.street">\n                                        </md-input-container>\n                                        <div flex="5"></div>\n                                        \x3c!-- postalCode --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n                                            <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n                                            <md-icon md-font-icon="icon-note"></md-icon>\n                                            <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout="row" layout-align="center center">\n                                        <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n                                        </md-button>\n                                    </div>\n\n                                </div>\n                            </form>\n                        </div>\n\n                        <div flex></div>\n\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n                            </div>\n                            <form name="customFieldsForm" novalidate>\n                                <md-input-container class="md-block">\n                                    <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n                                    <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n                                    <div ng-switch-when="datetime">\n                                        <label>{{customField.alias}}</label>\n\n                                        <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n                                            <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                                            <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                                        </div>\n                                    </div>\n\n                                    <div ng-switch-when="select">\n                                        <label>{{customField.alias}}</label>\n\n                                        <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                            <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-select>\n                                    </div>\n\n                                    <md-input-container ng-switch-when="switch">\n                                        <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                                            {{customField.alias}}\n                                        </md-switch>\n                                    </md-input-container>\n\n                                    <md-input-container ng-switch-default>\n                                        <label>{{customField.alias}}</label>\n\n                                        <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.hoppers.count">\n                                            <td md-cell colspan="4">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n                                            <td md-cell>{{hopper.id}}</td>\n                                            <td md-cell>{{hopper.phone}}</td>\n                                            <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="2">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.finals.count">\n                                            <td md-cell colspan="5">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n                                            <td md-cell>{{final.uniqueid}}</td>\n                                            <td md-cell>{{final.calleridnum}}</td>\n                                            <td md-cell>{{final.state}}</td>\n                                            <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{final.disposition}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.histories.count">\n                                            <td md-cell colspan="7">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n                                            <td md-cell>{{history.uniqueid}}</td>\n                                            <td md-cell>{{history.calleridnum}}</td>\n                                            <td md-cell>{{history.statedesc}}</td>\n                                            <td md-cell>{{history.scheduledat}}</td>\n                                            <td md-cell>{{history.starttime}}</td>\n                                            <td md-cell>{{history.endtime}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block" flex-gt-sm>\n                <label>Filter</label>\n                <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n            </md-input-container>\n\n            <md-list flex>\n                <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n                <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n                    <img ng-src="assets/images/avatars/profile.jpg" class="md-avatar" alt="{{contact.who}}" />\n                    <div class="md-list-item-text" layout="column">\n                        <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n                        <h4>{{ contact.email }}</h4>\n                        <p>{{ contact.phone }}</p>\n                    </div>\n                </md-list-item>\n            </md-list>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/upload/upload.html",'<md-dialog class="upload-dialog" aria-label="Upload contact">\n    <form name="uploadForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="CONTACTMANAGER.UPLOAD_CONTACTS">Upload Contacts</span>\n                <md-button ng-disabled="vm.uploading" class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <div md-background-bg layout="row" layout-align="start start">\n            <md-progress-linear ng-disabled="!vm.uploading" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n        </div>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div>\n\n                <md-content ng-hide="vm.uploading || vm.stop">\n                    <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n                        <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n                        <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n                            <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n                            <md-option ng-value="null" ng-hide="contactField.required"><em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <label translate="CONTACTMANAGER.LIST">List</label>\n                        <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n                            <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n                        <label>{{customField.alias}}</label>\n                        <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n                            <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n                            <md-option ng-value="null" ng-hide="customField.required"><em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                        <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n                            <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n                            <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n                        </md-select>\n                    </md-input-container>\n                </md-content>\n\n                <div layout="row" ng-if="vm.uploading || vm.stop">\n                    \x3c!-- WIDGET SUCCESS --\x3e\n                    <ms-widget class="h-140" flex>\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 green-fg">{{vm.successAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET SUCCESS --\x3e\n\n                    \x3c!-- WIDGET FAILURE --\x3e\n                    <ms-widget class="h-140" flex>\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 red-fg">{{vm.failureAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET FAILURE --\x3e\n\n                    \x3c!-- WIDGET DUPLICATES --\x3e\n                    <ms-widget class="h-140" flex ng-if="vm.duplicates.length">\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 orange-fg">{{vm.duplicatesAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET DUPLICATES --\x3e\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row">\n                <md-button aria-label="SAVE" ng-disabled="uploadForm.$invalid || uploadForm.$pristine || vm.uploading || vm.stop" ng-click="vm.upload()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.UPLOAD">\n                    UPLOAD\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n    <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n                <input type="" name="alias" ng-model="vm.globalCustomField.alias" required autofocus>\n                <div ng-messages="globalCustomFieldForm.alias.$error" ng-show="globalCustomFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <md-select ng-model="vm.globalCustomField.type" required>\n                    <md-option ng-value="\'text\'">Text</md-option>\n                    <md-option ng-value="\'select\'">Select</md-option>\n                    <md-option ng-value="\'number\'">Number</md-option>\n                    <md-option ng-value="\'switch\'">Switch</md-option>\n                    <md-option ng-value="\'datetime\'">Datetime</md-option>\n                </md-select>\n                <div ng-messages="globalCustomFieldForm.type.$error" ng-show="globalCustomFieldForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n                <label translate="CONTACTMANAGER.VALUE">Value</label>\n                <md-chips name="values" ng-model="vm.globalCustomField.values" placeholder="add value and type enter" required>\n                    <md-chip-template>\n                        <span>{{$chip}}</span>\n                    </md-chip-template>\n                </md-chips>\n                <div ng-messages="globalCustomFieldForm.values.$error" ng-show="globalCustomFieldForm.values.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE"\n                    translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n                    ADD GLOBALCUSTOMFIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-globalCustomFields-count">\n                    <span>{{vm.selectedGlobalCustomFields.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="GLOBALCUSTOMFIELDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" filename="globalCustomFields.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="GLOBALCUSTOMFIELDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n                                <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n                                <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n                                    <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(globalCustomField, $event)" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n                                                    Edit GlobalCustomField\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(globalCustomField, $event)" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n                                                    Delete GlobalCustomField\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n    <form name="listForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.list.name" required autofocus>\n                <div ng-messages="listForm.name.$error" ng-show="listForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.list.description">\n                <div ng-messages="listForm.description.$error" ng-show="listForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n                    ADD LIST\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list">\n    <form name="listForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n    <form name="customFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n                <input type="" name="alias" ng-model="vm.customField.alias" required autofocus>\n                <div ng-messages="customFieldForm.alias.$error" ng-show="customFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <md-select ng-model="vm.customField.type" required>\n                    <md-option ng-value="\'text\'">Text</md-option>\n                    <md-option ng-value="\'select\'">Select</md-option>\n                    <md-option ng-value="\'number\'">Number</md-option>\n                    <md-option ng-value="\'switch\'">Switch</md-option>\n                    <md-option ng-value="\'datetime\'">Datetime</md-option>\n                </md-select>\n                <div ng-messages="customFieldForm.type.$error" ng-show="customFieldForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.customField.type == \'select\'" class="md-block">\n                <label translate="CONTACTMANAGER.VALUE">Value</label>\n                <md-chips name="values" ng-model="vm.customField.values" placeholder="add value and type enter" required>\n                    <md-chip-template>\n                        <span>{{$chip}}</span>\n                    </md-chip-template>\n                </md-chips>\n                <div ng-messages="customFieldForm.values.$error" ng-show="customFieldForm.values.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n                    ADD CUSTOMFIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.list.userpic" class="list-image" hide-xs>\n                    <img ng-src="api/users/{{vm.list.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.list.userpic" class="list-image" hide-xs>\n                    <img ng-src="assets/images/business/lists.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.list.id}} {{vm.list.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n                <md-icon md-font-icon="icon-forward"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n                <md-icon md-font-icon="icon-eye"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.list.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.list.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n                                            <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n                                            <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.alias}}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{ vm_dc.arraytype[customField.type].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.required}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n                                                                Edit CustomField\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n                                                                Delete CustomField\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ListVoiceDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListVoiceDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.VOICEDISPOSITIONS">VoiceDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditListVoiceDisposition($event)" aria-label="add voiceDisposition" translate translate-attr-label="CONTACTMANAGER.ADD_VOICEDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListVoiceDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedListVoiceDispositions.length}} {{vm_dc.selectedListVoiceDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedListVoiceDispositions($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedListVoiceDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListVoiceDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'CONTACTMANAGER.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="voiceDisposition" md-select-id="id" ng-repeat="voiceDisposition in vm_dc.listVoiceDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" translate="CONTACTMANAGER.EDIT_VOICEDISPOSITION">\n                                                                Edit VoiceDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(voiceDisposition, $event)" translate="CONTACTMANAGER.DELETE_VOICEDISPOSITION">\n                                                                Delete VoiceDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.listVoiceDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="CONTACTMANAGER.NO_VOICEDISPOSITION_AVAILABLE">No voicedisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.listVoiceDispositions.count}}" md-on-paginate="vm_dc.getListVoiceDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",'<md-dialog class="voiceDisposition-dialog" aria-label="New VoiceDisposition">\n    <form name="voiceDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.voiceDisposition.name" required autofocus>\n                <div ng-messages="voiceDispositionForm.name.$error" ng-show="voiceDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceDisposition" ng-click="vm.saveVoiceDisposition()" class="send-button md-accent md-raised" ng-disabled="voiceDispositionForm.$invalid || voiceDispositionForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE"\n                    translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceDisposition" ng-click="vm.addNewVoiceDisposition()" class="send-button md-accent md-raised" ng-disabled="voiceDispositionForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_VOICEDISPOSITION" translate-attr-aria-label="CONTACTMANAGER.ADD_VOICEDISPOSITION">\n                    ADD VOICEDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceDisposition" ng-click="vm.deleteVoiceDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-lists-count">\n                    <span>{{vm.selectedLists.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="LISTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedLists" filename="lists.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- LIST TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.lists.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n                                <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n                                <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(list, $event)" translate="CONTACTMANAGER.EDIT_LIST">\n                                                    Edit List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotocontactsgoto(list, $event)" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n                                                    goToContacts List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.exportcsvcontactsexport(list, $event)" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n                                                    exportCsvContacts List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(list, $event)" translate="CONTACTMANAGER.AGENTADD_LIST">\n                                                    AgentAdd List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(list, $event)" translate="CONTACTMANAGER.DELETE_LIST">\n                                                    Delete List\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / LIST TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD LIST BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="dashboard-general" class="page-layout simple right-sidenav" layout="row">\n    \x3c!-- CENTER --\x3e\n    <div class="center" flex ms-scroll>\n        \x3c!-- CONTENT --\x3e\n        <div class="content">\n            <md-tabs md-selected="vm.currentTab" md-dynamic-height>\n                <md-tab label="{{\'DASHBOARDS.DASHBOARD\' | translate}}" ui-sref="app.dashboards.general.dashboard">\n                    <div ui-view="dashboard"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.RECORDINGS\' | translate}}" ui-sref="app.dashboards.general.recordings">\n                    <div ui-view="recordings"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.CONTACTS\' | translate}}" ui-sref="app.dashboards.general.contacts({tab: vm})">\n                    <div ui-view="contacts"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.MYCONTACTS\' | translate}}" ui-sref="app.dashboards.general.mycontacts">\n                    <div ui-view="mycontacts"></div>\n                </md-tab>\n\n                \x3c!-- TABS START --\x3e\n                <md-tab ng-repeat="tab in vm.tabs track by tab.id">\n                    <md-tab-label>\n                        <md-icon md-font-icon="{{tab.icon}}" class="icon s20"></md-icon>\n                        <span class="text-bold"> {{tab.title}} </span>\n                        <md-button class="md-icon-button md-warn" ng-click="vm.closeTab($index, tab)">\n                            <md-icon md-font-icon="icon-close-circle-outline" class="icon s20"></md-icon>\n                        </md-button>\n                    </md-tab-label>\n                    <md-tab-body ng-switch-when="contact">\n                        <contact tab="tab"></contact>\n                    </md-tab-body>\n                </md-tab>\n                \x3c!-- TABS END --\x3e\n            </md-tabs>\n        </div>\n        \x3c!-- / CONTENT --\x3e\n    </div>\n    \x3c!-- / CENTER --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/contacts/agent.general.contacts.html",'<div layout="rows">\n    <md-card flex="25" layout-padding>\n        <md-button translate="CONTACTMANAGER.ALL_CONTACTS" ng-click="vm.refreshContacts()"> AllContacts </md-button>\n        <md-input-container>\n            <label>Select a list</label>\n            <md-select flex="100" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n                <md-optgroup label="Lists">\n                    <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n                </md-optgroup>\n            </md-select>\n        </md-input-container>\n    </md-card>\n    <md-card flex="75">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n                <div flex></div>\n                <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n                <md-button class="md-icon-button" ng-click="vm.openContact($event)" aria-label="add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n                <md-button class="md-icon-button" ng-click="vm.refreshContacts($event)" aria-label="refresh Contacts" translate translate-attr-label="DASHBOARDS.REFRESH_CONTACTS">\n                    <md-icon md-font-icon="icon-reload"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                    <tr md-row>\n                        <th md-column md-order-by="id">ID</th>\n                        <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n                        <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n                        <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n                        <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n                        <th md-column width="10px"></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.contacts.rows.length">\n                        <td md-cell colspan="10">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="contact in vm.contacts.rows">\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="id">{{contact.id}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="phone">{{contact.phone}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="email">{{contact.email}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                        <td md-cell class="actions">\n                            <md-menu>\n                                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n                                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                </md-button>\n\n                                <md-menu-content width="3">\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.openContact(ev, contact)" translate="DASHBOARDS.EDIT">\n                                            Edit Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.mergeContact(ev, contact)" translate="DASHBOARDS.MERGE">\n                                            Merge Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.duplicateContact(ev, contact)" translate="DASHBOARDS.DUPLICATE">\n                                            Duplicate Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                </md-menu-content>\n                            </md-menu>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n    </md-card>\n\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/dashboard/agent.general.dashboard.html",'<div layout="row">\n    <md-card flex="50">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n                <div flex></div>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n                    <tr md-row>\n                        <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                        <th md-column md-order-by="waiting">{{ \'VOICE.WAITING\' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.getSize(vm.voiceQueues)">\n                        <td md-cell colspan="2">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="(key, voiceQueue) in vm.voiceQueues">\n                        <td md-cell class="name">{{voiceQueue.name}}</td>\n                        <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceQueuesTotal}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n    </md-card>\n    <md-card flex="50">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n                <div flex></div>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table>\n                <thead md-head>\n                    <tr md-row>\n                        <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n                        <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n                        <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                        <td md-cell colspan="3">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                        <td md-cell>{{channel.exten}}</td>\n                        <td md-cell>{{channel.queue}}</td>\n                        <td md-cell>{{channel.calleridnum}}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n    </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/contact.html",'<md-content>\n    <md-tabs md-selected="currentTab" md-dynamic-height>\n        <md-tab>\n            <md-tab-label>\n                <span translate="DASHBOARDS.DETAIL">Detail</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-content>\n                    <div layout="row">\n                        \x3c!-- MS-CARD --\x3e\n                        <md-card class="template-7" layout="row" layout-align="space-between" ng-repeat="call in tab.calls track by call.uniqueid">\n                            <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n                                <div layout="row">\n                                    <span class="text-boxed md-green-bg"><timer start-time="tab.openedAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                                    <div flex></div>\n                                    <span ng-if="call.disposedAt" class="text-boxed md-yellow-bg"><timer start-time="call.disposedAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                                </div>\n                                <div class="p-16">\n                                    <div class="title h1">\n                                        <md-icon md-font-icon="icon-phone-forward"></md-icon>\n                                        {{call.calleridnum}}\n                                    </div>\n\n                                    <div class="subtitle h4 secondary-text" ng-if="call.calleridname">\n                                        <md-icon md-font-icon="icon-account"></md-icon>\n                                        Name: {{call.calleridname}}\n                                    </div>\n\n                                    <div class="text h4 pt-8" ng-if="call.queue">\n                                        <md-icon md-font-icon="icon-stackoverflow"></md-icon>\n                                        Queue: {{call.queue}}\n                                    </div>\n                                    <div class="text h4 pt-8" ng-if="call.variables.extravar">\n                                        <md-icon md-font-icon="icon-minus"></md-icon>\n                                        Extra: {{call.variables.extravar}}\n                                    </div>\n                                </div>\n                                <div layout="row" layout-align="end center">\n                                    <md-button ng-if="call.disposedAt" type="submit" ng-click="disposeCall($event, call)" class="send-button md-accent md-raised">\n                                        {{ \'DASHBOARDS.DISPOSE\' | translate}}\n                                    </md-button>\n                                </div>\n                            </div>\n                        </md-card>\n                        \x3c!-- / MS-CARD --\x3e\n                        <div flex layout="row" layout-align="end center">\n                            <md-button type="submit" ng-click="mergeContact($event)" class="send-button md-raised md-teal-A700-bg" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.MERGE\' | translate}}\n                            </md-button>\n                            <md-button type="submit" ng-click="duplicateContact($event)" class="send-button md-raised md-cyan-A700-bg" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.DUPLICATE\' | translate}}\n                            </md-button>\n                            <md-button type="submit" ng-click="addNewContact($event)" class="send-button md-accent md-raised" ng-if="newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.ADD\'| translate }}\n                            </md-button>\n                            <md-button type="submit" ng-click="saveContact($event)" class="send-button md-accent md-raised" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.SAVE\' | translate }}\n                            </md-button>\n                        </div>\n                    </div>\n                    <div layout="row">\n                        <md-card flex="75" layout-padding>\n                            <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">PERSONAL_INFO</div>\n                            <form name="detailForm" novalidate>\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n                                        <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n                                        <input type="text" name="firstName" ng-model="contact.firstName" class="text-truncate" required>\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n                                        <input type="text" name="lastName" ng-model="contact.lastName" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.PHONE">Phone</label>\n                                        <md-icon md-font-icon="icon-phone"></md-icon>\n                                        <input type="text" name="phone" ng-model="contact.phone" class="text-truncate" required>\n                                        <div ng-messages="detailForm.phone.$error" ng-show="detailForm.phone.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="DASHBOARDS.ERRORS.PHONE_REQUIRED">Phone name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.MOBILE">Mobile</label>\n                                        <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n                                        <input type="text" name="mobile" ng-model="contact.mobile" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.EMAIL">Email</label>\n                                        <md-icon md-font-icon="icon-email" class="email"></md-icon>\n                                        <input type="email" name="email" ng-model="contact.email" class="text-truncate">\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="email">\n                                                <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.FAX">Fax</label>\n                                        <md-icon md-font-icon="icon-deskphone"></md-icon>\n                                        <input type="text" name="fax" ng-model="contact.fax">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n                                        <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                                        <input type="date" name="dateOfBirth" ng-model="contact.dateOfBirth" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.COMPANY">Company</label>\n                                        <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n                                        <md-select name="company" ng-model="contact.CompanyId">\n                                            <md-option ng-value="company.id" ng-repeat="company in companies.rows">{{company.name}}</md-option>\n                                            <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em></md-option>\n                                        </md-select>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.TAG">TAG</label>\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <md-select ng-model="contact.tags" multiple>\n                                            <md-option ng-value="tag.name" ng-repeat="tag in tab.tags.rows">{{tag.name}}</md-option>\n                                        </md-select>\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.COUNTRY">Country</label>\n                                        <md-icon md-font-icon="icon-home" class="country"></md-icon>\n                                        <input type="text" name="country" ng-model="contact.country" class="text-truncate">\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.CITY">City</label>\n                                        <input type="text" name="city" ng-model="contact.city">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.STREET">Street</label>\n                                        <input type="text" name="street" ng-model="contact.street">\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n                                        <input type="text" name="postalCode" ng-model="contact.postalCode">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n                                        <md-icon md-font-icon="icon-note"></md-icon>\n                                        <textarea ng-model="contact.description" type="text" max-rows="4"></textarea>\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </md-card>\n                        <md-card flex="25" layout-padding>\n                            <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n                            <form name="customFieldsForm" novalidate>\n\n                                \x3c!-- START INPUT LIST --\x3e\n                                <md-input-container class="md-block" ng-if="newContact">\n                                    <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n                                    <md-select name="list" ng-model="contact.ListId" ng-change="getCustomFields(contact.ListId)" required>\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in tab.userLists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                <md-input-container class="md-block" ng-if="!newContact">\n                                    <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n                                    <md-select ng-disabled="true" name="list" ng-model="contact.ListId" required>\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in tab.lists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                \x3c!-- END INPUT LIST --\x3e\n\n                                <div ng-repeat="customField in tab.customFields.rows" class="md-block" ng-switch="customField.type">\n                                    <div ng-switch-when="datetime">\n                                        <label>{{customField.alias}}</label>\n                                        <div ng-init="contact[\'cf_\' + customField.id] = getDateFromString(contact[\'cf_\' + customField.id])">\n                                            <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                                            <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                                        </div>\n                                    </div>\n\n                                    <div ng-switch-when="select">\n                                        <label>{{customField.alias}}</label>\n                                        <md-select ng-model="contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                            <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-select>\n                                    </div>\n\n                                    <md-input-container ng-switch-when="switch">\n                                        <md-switch aria-label="{{customField.alias}}" ng-model="contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                                            {{customField.alias}}\n                                        </md-switch>\n                                    </md-input-container>\n\n                                    <md-input-container ng-switch-default>\n                                        <label>{{customField.alias}}</label>\n                                        <input type="{{customField.type}}" ng-model="contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </md-card>\n                    </div>\n                </md-content>\n            </md-tab-body>\n        </md-tab>\n\n        <md-tab ng-if="!newContact">\n            <md-tab-label>\n                <span translate="DASHBOARDS.MOTION_BULL">Motion Bull</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryHopper.filter = query;" on-collapse="queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryHopper.sort" md-on-reorder="getHoppers">\n                                    <tr md-row>\n                                        <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                        <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="hoppers.count">\n                                        <td md-cell colspan="3">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, hopper) in hoppers.rows">\n                                        <td md-cell>{{hopper.id}}</td>\n                                        <td md-cell>{{hopper.phone}}</td>\n                                        <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="queryHopper.page" md-total="{{hoppers.count}}" md-on-paginate="getHoppers" md-page-select></md-table-pagination>\n                    </div>\n                </md-card>\n\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryFinal.filter = query;" on-collapse="queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryFinal.sort" md-on-reorder="getFinals">\n                                    <tr md-row>\n                                        <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                        <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="statedesc">{{ \'CONTACTMANAGER.STATUS\' | translate }}</th>\n                                        <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                        <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="finals.count">\n                                        <td md-cell colspan="5">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, final) in finals.rows">\n                                        <td md-cell>{{final.uniqueid}}</td>\n                                        <td md-cell>{{final.calleridnum}}</td>\n                                        <td md-cell>{{final.statedesc}}</td>\n                                        <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n                                        <td md-cell>{{final.disposition}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryFinal.limit" md-limit-options="[10, 15, 20]" md-page="queryFinal.page" md-total="{{finals.count}}" md-on-paginate="getFinals" md-page-select></md-table-pagination>\n                    </div>\n                </md-card>\n\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryHistory.filter = query;" on-collapse="queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryHistory.sort" md-on-reorder="getHistories">\n                                    <tr md-row>\n                                        <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                        <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="statedesc">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                        <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                        <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                        <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="histories.count">\n                                        <td md-cell colspan="7">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, history) in histories.rows">\n                                        <td md-cell>{{history.uniqueid}}</td>\n                                        <td md-cell>{{history.calleridnum}}</td>\n                                        <td md-cell>{{history.statedesc}}</td>\n                                        <td md-cell>{{history.scheduledat}}</td>\n                                        <td md-cell>{{history.starttime}}</td>\n                                        <td md-cell>{{history.endtime}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryHistory.limit" md-limit-options="[10, 15, 20]" md-page="queryHistory.page" md-total="{{histories.count}}" md-on-paginate="getHistories" md-page-select></md-table-pagination>\n\n                    </div>\n                </md-card>\n            </md-tab-body>\n        </md-tab>\n    </md-tabs>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <md-dialog-content ms-scroll>\n        <div layout="row">\n            <div flex>\n                <md-radio-group ng-model="vm.choice" ng-change="vm.saveDisposition()">\n                    <md-radio-button value="fax"><span translate="DASHBOARDS.FAX">Fax</span></md-radio-button>\n                    <md-radio-button value="amd"><span translate="DASHBOARDS.ANSWER_MACHINE">Answer Machine</span></md-radio-button>\n                    <md-radio-button value="interested"><span translate="DASHBOARDS.INTERESTED">Interested</span></md-radio-button>\n                    <md-radio-button value="notinterested"><span translate="DASHBOARDS.NOT_INTERESTED">Not Interested</span></md-radio-button>\n                    <md-radio-button value="sold"><span translate="DASHBOARDS.SOLD">Sold</span></md-radio-button>\n                    <md-radio-button value="special"><span translate="DASHBOARDS.SPECIAL">Special</span></md-radio-button>\n\n                    <md-radio-button value="blacklist"><span translate="DASHBOARDS.BLACKLIST">Blacklist</span></md-radio-button>\n                    <md-radio-button value="reschedule"><span translate="DASHBOARDS.RESCHEDULE">Reschedule</span></md-radio-button>\n                </md-radio-group>\n            </div>\n            <div flex>\n                <md-radio-group ng-model="vm.choice" ng-change="vm.saveDisposition()">\n                    <md-radio-button ng-repeat="disposition in vm.dispositions.rows" value="{{disposition.name}}">{{disposition.name}}</md-radio-button>\n                </md-radio-group>\n            </div>\n        </div>\n    </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <form name="dateTime" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div layout="row">\n                <div flex class="md-block">\n                    <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n                        <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n\n                <div flex class="md-block">\n                    <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n                        <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/mycontacts/agent.general.mycontacts.html",'<div layout="rows">\n    <md-card flex="25" layout-padding>\n        <md-button translate="CONTACTMANAGER.ALL_CONTACTS" ng-click="vm.refreshContacts()"> AllContacts </md-button>\n        <md-input-container>\n            <label>Select a list</label>\n            <md-select flex="100" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n                <md-optgroup label="Lists">\n                    <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n                </md-optgroup>\n            </md-select>\n        </md-input-container>\n    </md-card>\n    <md-card flex="75">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n                <div flex></div>\n                \x3c!-- <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar> --\x3e\n                <md-button class="md-icon-button" ng-click="vm.openContact($event)" aria-label="add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n                <md-button class="md-icon-button" ng-click="vm.refreshContacts($event)" aria-label="refresh Contacts" translate translate-attr-label="DASHBOARDS.REFRESH_CONTACTS">\n                    <md-icon md-font-icon="icon-reload"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                    <tr md-row>\n                        <th md-column md-order-by="id">ID</th>\n                        <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n                        <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n                        <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n                        <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n                        <th md-column width="10px"></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.contacts.rows.length">\n                        <td md-cell colspan="10">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="contact in vm.contacts.rows">\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="id">{{contact.id}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="phone">{{contact.phone}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="email">{{contact.email}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                        <td md-cell class="actions">\n                            <md-menu>\n                                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n                                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                </md-button>\n\n                                <md-menu-content width="3">\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.openContact(ev, contact)" translate="DASHBOARDS.EDIT">\n                                            Edit Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.mergeContact(ev, contact)" translate="DASHBOARDS.MERGE">\n                                            Merge Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.duplicateContact(ev, contact)" translate="DASHBOARDS.DUPLICATE">\n                                            Duplicate Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                </md-menu-content>\n                            </md-menu>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n    </md-card>\n\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/recordings/agent.general.recordings.html",'<md-card>\n    <md-toolbar class="md-table-toolbar md-default">\n        <div class="md-toolbar-tools">\n            <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n            <div flex></div>\n        </div>\n    </md-toolbar>\n    <md-table-container>\n        <table md-table md-progress="vm.promise">\n            <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n                <tr md-row>\n                    <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n                    <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n                    <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n                    <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n                    <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n                    <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n                    <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n                    <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                    <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n                    <th md-column width="10px"></th>\n                </tr>\n            </thead>\n            <tbody md-body>\n                <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n                    <td md-cell colspan="10">\n                        <div layout="row" layout-align="center center">\n                            <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                        </div>\n                    </td>\n                </tr>\n                <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n                    <td md-cell class="type ">{{voiceRecording.type}}</td>\n                    <td md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n                    <td md-cell class="calleridnum ">{{voiceRecording.calleridnum}}</td>\n                    <td md-cell class="exten ">{{voiceRecording.exten}}</td>\n                    <td md-cell class="connectedlinenum ">{{voiceRecording.connectedlinenum}}</td>\n                    <td md-cell class="queue ">{{voiceRecording.queue}}</td>\n                    <td md-cell class="rating ">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span></td>\n                    <td md-cell class="audio " ng-switch="voiceRecording.format">\n                        <audio controls ng-switch-when=".wav">\n                      <source ng-src="{{\'api/voice/recordings/\' + voiceRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source> Your browser does not support the audio element.\n                     </audio>\n                        <span ng-switch-when=".gsm">\n                      <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n                     </span>\n                    </td>\n                    <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n                    <td md-cell class="actions">\n                        <md-menu>\n                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                            </md-button>\n\n                            <md-menu-content width="3">\n                                <md-menu-item>\n                                    <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n                                        Download VoiceRecording\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </td>\n                </tr>\n            </tbody>\n        </table>\n    </md-table-container>\n\n    <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timelapse"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.inbound.waiting || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-52 line-height-72">\n                        {{vm.inbound.talking || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TALKING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TALKING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TALKING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.inbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-missed"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-52 line-height-72">\n                        {{vm.inbound.abandoned || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timer-sand"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_TALK_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_TALK_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-42 line-height-72">\n                        {{ vm.inbound.answerRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.abandonRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDON_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.originated || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" class="page-layout simple right-sidenav" layout="row">\n    \x3c!-- CENTER --\x3e\n    <div class="center" flex ms-scroll>\n        \x3c!-- CONTENT --\x3e\n        <div class="content">\n            \x3c!--  NOTE: aggoiungere nel controller ng-if="vm.hasPermission()" --\x3e\n            <md-tabs md-selected="vm.currentTab" ng-if="vm.hasPermission()" md-dynamic-height>\n                <md-tab label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n                    <div ui-view="voice"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n                    <div ui-view="dialer"></div>\n                </md-tab>\n            </md-tabs>\n        </div>\n        \x3c!-- END CONTENT --\x3e\n\n        <md-card ng-if="!vm.hasPermission()">\n            <md-card-header>\n                <md-card-header-text>\n                    <span class="md-title" translate="DASHBOARDS.WELCOME_TO_MOTION">Welcome to Motion</span>\n                </md-card-header-text>\n            </md-card-header>\n            <md-card-title>\n                <md-card-title-text>\n                    <span class="md-headline" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through sections.</span>\n                </md-card-title-text>\n            </md-card-title>\n            <md-card-content>\n            </md-card-content>\n        </md-card>\n    </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timelapse"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.inbound.waiting || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-52 line-height-72">\n                        {{vm.inbound.talking || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TALKING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TALKING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TALKING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.inbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-missed"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-52 line-height-72">\n                        {{vm.inbound.abandoned || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timer-sand"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_TALK_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_TALK_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-42 line-height-72">\n                        {{ vm.inbound.answerRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.abandonRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDON_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.unmanaged || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n    </div>\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.outbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.outbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-clock"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-division"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-42 line-height-72">\n                        {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n    <form name="faxAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.faxAccount.name" required autofocus>\n                <div ng-messages="faxAccountForm.name.$error" ng-show="faxAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.TRUNK">trunk</label>\n                <md-select ng-model="vm.faxAccount.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="faxAccountForm.TrunkId.$error" ng-show="faxAccountForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.LOCALSTATIONID">localstationid</label>\n                <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" required>\n                <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n                <div ng-messages="faxAccountForm.localstationid.$error" ng-show="faxAccountForm.localstationid.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.faxAccount.description">\n                <div ng-messages="faxAccountForm.description.$error" ng-show="faxAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n                    ADD FAXACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",'<md-dialog class="faxDisposition-dialog" aria-label="New FaxDisposition">\n    <form name="faxDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.faxDisposition.name" required autofocus>\n                <div ng-messages="faxDispositionForm.name.$error" ng-show="faxDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxDisposition" ng-click="vm.saveFaxDisposition()" class="send-button md-accent md-raised" ng-disabled="faxDispositionForm.$invalid || faxDispositionForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxDisposition" ng-click="vm.addNewFaxDisposition()" class="send-button md-accent md-raised" ng-disabled="faxDispositionForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXDISPOSITION" translate-attr-aria-label="FAX.ADD_FAXDISPOSITION">\n                    ADD FAXDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxDisposition" ng-click="vm.deleteFaxDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.faxAccount.userpic" class="faxAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.faxAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.faxAccount.userpic" class="faxAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/faxAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.faxAccount.id}} {{vm.faxAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (faxDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.faxAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.HEADERINFO">headerinfo</label>\n                                <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" required>\n                                <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n                                <div ng-messages="generalForm.headerinfo.$error" ng-show="generalForm.headerinfo.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.TRUNK">trunk</label>\n                                <md-select ng-model="vm.faxAccount.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.LOCALSTATIONID">localstationid</label>\n                                <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" required>\n                                <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n                                <div ng-messages="generalForm.localstationid.$error" ng-show="generalForm.localstationid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.LIST">List</label>\n                                <md-select ng-model="vm.faxAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.faxAccount.fidelity" aria-label="fidelity"><span translate="FAX.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.faxAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.faxAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.faxAccount.ecm" aria-label="ECM"><span translate="FAX.ECM">ECM</span></md-switch>\n                                <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MINRATE">minrate</label>\n                                <md-select ng-model="vm.faxAccount.minrate" required>\n                                    <md-option ng-value="\'2400\'">2400</md-option>\n                                    <md-option ng-value="\'4800\'">4800</md-option>\n                                    <md-option ng-value="\'7200\'">7200</md-option>\n                                    <md-option ng-value="\'9600\'">9600</md-option>\n                                    <md-option ng-value="\'12000\'">12000</md-option>\n                                    <md-option ng-value="\'14400\'">14400</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n                                <div ng-messages="advancedForm.minrate.$error" ng-show="advancedForm.minrate.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MAXRATE">maxrate</label>\n                                <md-select ng-model="vm.faxAccount.maxrate" required>\n                                    <md-option ng-value="\'2400\'">2400</md-option>\n                                    <md-option ng-value="\'4800\'">4800</md-option>\n                                    <md-option ng-value="\'7200\'">7200</md-option>\n                                    <md-option ng-value="\'9600\'">9600</md-option>\n                                    <md-option ng-value="\'12000\'">12000</md-option>\n                                    <md-option ng-value="\'14400\'">14400</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n                                <div ng-messages="advancedForm.maxrate.$error" ng-show="advancedForm.maxrate.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MODEM">modem</label>\n                                <input type="text" name="modem" ng-model="vm.faxAccount.modem" required>\n                                <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n                                <div ng-messages="advancedForm.modem.$error" ng-show="advancedForm.modem.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.GATEWAY">gateway</label>\n                                <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" required>\n                                <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n                                <div ng-messages="advancedForm.gateway.$error" ng-show="advancedForm.gateway.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.FAXDETECT">faxdetect</label>\n                                <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" required>\n                                <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n                                <div ng-messages="advancedForm.faxdetect.$error" ng-show="advancedForm.faxdetect.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.T38TIMEOUT">t38timeout</label>\n                                <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" required>\n                                <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n                                <div ng-messages="advancedForm.t38timeout.$error" ng-show="advancedForm.t38timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.SIP">SIP</label>\n                                <md-select ng-model="vm.faxAccount.tech" required>\n                                    <md-option ng-value="\'SIP\'">SIP</md-option>\n                                    <md-option ng-value="\'IAX\'">IAX</md-option>\n                                    <md-option ng-value="\'DADHI\'">DADHI</md-option>\n                                    <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.tech.$error" ng-show="advancedForm.tech.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="FaxAccountFaxDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountFaxDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="FAX.FAXDISPOSITIONS">FaxDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event)" aria-label="add faxDisposition" translate translate-attr-label="FAX.ADD_FAXDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountFaxDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedFaxAccountFaxDispositions.length}} {{vm_dc.selectedFaxAccountFaxDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountFaxDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAXACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountFaxDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountFaxDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'FAX.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="faxDisposition" md-select-id="id" ng-repeat="faxDisposition in vm_dc.faxAccountFaxDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" translate="FAX.EDIT_FAXDISPOSITION">\n                                                                Edit FaxDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(faxDisposition, $event)" translate="FAX.DELETE_FAXDISPOSITION">\n                                                                Delete FaxDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.faxAccountFaxDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="FAX.NO_FAXDISPOSITION_AVAILABLE">No faxdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountFaxDispositions.count}}" md-on-paginate="vm_dc.getFaxAccountFaxDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.faxAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.faxAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="faxAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.faxAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.faxAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="faxAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.faxAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.faxAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="FAX.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-faxAccounts-count">\n                    <span>{{vm.selectedFaxAccounts.length}}</span>\n                <span translate="FAX.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAXACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" filename="faxAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAXACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FAXACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.faxAccounts.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n                                <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[faxAccount.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(faxAccount, $event)" translate="FAX.EDIT_FAXACCOUNT">\n                                                    Edit FaxAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(faxAccount, $event)" translate="FAX.DELETE_FAXACCOUNT">\n                                                    Delete FaxAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FAXACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n    <form name="faxQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="faxQueueForm.name.$error" ng-show="faxQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.faxQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="faxQueueForm.strategy.$error" ng-show="faxQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" required>\n                <div ng-messages="faxQueueForm.timeout.$error" ng-show="faxQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.faxQueue.description">\n                <div ng-messages="faxQueueForm.description.$error" ng-show="faxQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n                    ADD FAXQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue">\n    <form name="faxQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="FAX.TEAMADD_FAXQUEUE">Add Team in FAXQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="FAX.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="faxQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.faxQueue.userpic" class="faxQueue-image" hide-xs>\n                    <img ng-src="api/users/{{vm.faxQueue.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.faxQueue.userpic" class="faxQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/faxQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.faxQueue.id}} {{vm.faxQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.faxQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.faxQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="FAX.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-faxQueues-count">\n                    <span>{{vm.selectedFaxQueues.length}}</span>\n                <span translate="FAX.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAXQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" filename="faxQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAXQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FAXQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.faxQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n                                <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(faxQueue, $event)" translate="FAX.EDIT_FAXQUEUE">\n                                                    Edit FaxQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(faxQueue, $event)" translate="FAX.DELETE_FAXQUEUE">\n                                                    Delete FaxQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FAXQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n    <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n        <div id="maintenance-form" class="md-whiteframe-8dp">\n            <div>\n                <img src="assets/images/logos/login.png" alt="motion_logo_login" />\n            </div>\n\n            <br>\n\n            <div>\n                <div class="info-line">\n                    <div class="title">Useful pages</div>\n                </div>\n                <section layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMD/Welcome" target="_blank">\n                            <md-icon md-font-icon="icon-wikipedia"></md-icon>\n                        </a>\n                        <div class="info"><a href="https://wiki.xcallymotion.com/display/XMD/Welcome" target="_blank">Wiki</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n                            <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n                        </a>\n                        <div class="info"><a href="/apidoc" target="_blank">API</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n                            <md-icon md-font-icon="icon-headphones"></md-icon>\n                        </a>\n                        <div class="info"><a href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n                            <md-icon md-font-icon="icon-console"></md-icon>\n                        </a>\n                        <div class="info"><a href="/demo" target="_blank">Demo</a></div>\n                    </div>\n\n                </section>\n\n                <br>\n\n                <div class="info-line">\n                    <div class="title">Follow us on</div>\n                </div>\n                <section layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                    <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n                        <md-icon md-font-icon="icon-facebook"></md-icon>\n                    </a>\n\n                    <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n                        <md-icon md-font-icon="icon-twitter"></md-icon>\n                    </a>\n                    <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n                        <md-icon md-font-icon="icon-google-plus"></md-icon>\n                    </a>\n                    <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n                        <md-icon md-font-icon="icon-linkedin"></md-icon>\n                    </a>\n                </section>\n\n                <br>\n\n                <div class="info-line">\n                    <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n                </div>\n                <div class="info-line">\n                    <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n                </div>\n\n                <br>\n\n                <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n                <br>\n\n                <div class="info">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n                <br>\n\n                <div class="info"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n            </div>\n        </div>\n    </div>\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n    <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.freshdeskAccount.name" required autofocus>\n                <div ng-messages="freshdeskAccountForm.name.$error" ng-show="freshdeskAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.freshdeskAccount.username" required>\n                <div ng-messages="freshdeskAccountForm.username.$error" ng-show="freshdeskAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" required>\n                <div ng-messages="freshdeskAccountForm.remoteUri.$error" ng-show="freshdeskAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n                <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" required>\n                <div ng-messages="freshdeskAccountForm.apiKey.$error" ng-show="freshdeskAccountForm.apiKey.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="freshdeskAccountForm.serverUrl.$error" ng-show="freshdeskAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n                <div ng-messages="freshdeskAccountForm.description.$error" ng-show="freshdeskAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n                    ADD FRESHDESKACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n    <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" required autofocus>\n                <div ng-messages="freshdeskConfigurationForm.name.$error" ng-show="freshdeskConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.freshdeskConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="freshdeskConfigurationForm.channel.$error" ng-show="freshdeskConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.freshdeskConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="freshdeskConfigurationForm.type.$error" ng-show="freshdeskConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE"\n                    translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n                    ADD FRESHDESKCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n    <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.freshdeskAccount.userpic" class="freshdeskAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.freshdeskAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.freshdeskAccount.userpic" class="freshdeskAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.freshdeskAccount.id}} {{vm.freshdeskAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.freshdeskAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.freshdeskAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n                                <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" required>\n                                <div ng-messages="generalForm.apiKey.$error" ng-show="generalForm.apiKey.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n                                                        Delete FreshdeskConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.TAGS">TAGS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-table-container class="md-whiteframe-1dp padding-20">\n                                                <md-input-container class="md-block">\n                                                    <label translate="INTEGRATIONS.TAGS">Tags</label>\n                                                    <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n                                                        <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n                                                    </md-select>\n                                                </md-input-container>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-freshdeskAccounts-count">\n                    <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FRESHDESKACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" filename="freshdeskAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="FRESHDESKACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n                                <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(freshdeskAccount, $event)" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n                                                    Edit FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event)" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n                                                    Delete FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n    <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.salesforceAccount.name" required autofocus>\n                <div ng-messages="salesforceAccountForm.name.$error" ng-show="salesforceAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.salesforceAccount.username" required>\n                <div ng-messages="salesforceAccountForm.username.$error" ng-show="salesforceAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" required>\n                <div ng-messages="salesforceAccountForm.remoteUri.$error" ng-show="salesforceAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="salesforceAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSalesforceAccount ">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="salesforceAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n                <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" required>\n                <div ng-messages="salesforceAccountForm.clientId.$error" ng-show="salesforceAccountForm.clientId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n                <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" required>\n                <div ng-messages="salesforceAccountForm.clientSecret.$error" ng-show="salesforceAccountForm.clientSecret.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n                <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" required>\n                <div ng-messages="salesforceAccountForm.securityToken.$error" ng-show="salesforceAccountForm.securityToken.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="salesforceAccountForm.serverUrl.$error" ng-show="salesforceAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n                <div ng-messages="salesforceAccountForm.description.$error" ng-show="salesforceAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n                    ADD SALESFORCEACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n    <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.salesforceConfiguration.name" required autofocus>\n                <div ng-messages="salesforceConfigurationForm.name.$error" ng-show="salesforceConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.salesforceConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="salesforceConfigurationForm.channel.$error" ng-show="salesforceConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.salesforceConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="salesforceConfigurationForm.type.$error" ng-show="salesforceConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE"\n                    translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n                    ADD SALESFORCECONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n    <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.salesforceAccount.userpic" class="salesforceAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.salesforceAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.salesforceAccount.userpic" class="salesforceAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/salesforceAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.salesforceAccount.id}} {{vm.salesforceAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.salesforceAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.salesforceAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSalesforceAccount ">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n                                <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" required>\n                                <div ng-messages="generalForm.clientId.$error" ng-show="generalForm.clientId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n                                <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" required>\n                                <div ng-messages="generalForm.clientSecret.$error" ng-show="generalForm.clientSecret.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n                                <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" required>\n                                <div ng-messages="generalForm.securityToken.$error" ng-show="generalForm.securityToken.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n                                                        Delete SalesforceConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-salesforceAccounts-count">\n                    <span>{{vm.selectedSalesforceAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SALESFORCEACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" filename="salesforceAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="SALESFORCEACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n                                <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(salesforceAccount, $event)" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n                                                    Edit SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event)" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n                                                    Delete SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n    <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" required autofocus>\n                <div ng-messages="sugarcrmAccountForm.name.$error" ng-show="sugarcrmAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" required>\n                <div ng-messages="sugarcrmAccountForm.username.$error" ng-show="sugarcrmAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" required>\n                <div ng-messages="sugarcrmAccountForm.remoteUri.$error" ng-show="sugarcrmAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="sugarcrmAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSugarcrmAccount ">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="sugarcrmAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="sugarcrmAccountForm.serverUrl.$error" ng-show="sugarcrmAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n                <div ng-messages="sugarcrmAccountForm.description.$error" ng-show="sugarcrmAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n                    ADD SUGARCRMACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n    <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" required autofocus>\n                <div ng-messages="sugarcrmConfigurationForm.name.$error" ng-show="sugarcrmConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.sugarcrmConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="sugarcrmConfigurationForm.channel.$error" ng-show="sugarcrmConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.sugarcrmConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="sugarcrmConfigurationForm.type.$error" ng-show="sugarcrmConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n                    ADD SUGARCRMCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n    <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.sugarcrmAccount.userpic" class="sugarcrmAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.sugarcrmAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.sugarcrmAccount.userpic" class="sugarcrmAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.sugarcrmAccount.id}} {{vm.sugarcrmAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSugarcrmAccount ">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n                                                        Delete SugarcrmConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-sugarcrmAccounts-count">\n                    <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SUGARCRMACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" filename="sugarcrmAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="SUGARCRMACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n                                <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(sugarcrmAccount, $event)" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n                                                    Edit SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event)" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n                                                    Delete SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n    <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.zendeskAccount.name" required autofocus>\n                <div ng-messages="zendeskAccountForm.name.$error" ng-show="zendeskAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.zendeskAccount.username" required>\n                <div ng-messages="zendeskAccountForm.username.$error" ng-show="zendeskAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" required>\n                <div ng-messages="zendeskAccountForm.remoteUri.$error" ng-show="zendeskAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n                <md-select ng-model="vm.zendeskAccount.authType" required>\n                    <md-option ng-value="\'password\'">Password</md-option>\n                    <md-option ng-value="\'token\'">Token</md-option>\n                </md-select>\n                <div ng-messages="zendeskAccountForm.authType.$error" ng-show="zendeskAccountForm.authType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="zendeskAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newZendeskAccount  && vm.zendeskAccount.authType == \'password\'">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="zendeskAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n                <label translate="INTEGRATIONS.TOKEN">Token</label>\n                <input type="text" name="token" ng-model="vm.zendeskAccount.token" required>\n                <div ng-messages="zendeskAccountForm.token.$error" ng-show="zendeskAccountForm.token.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="zendeskAccountForm.serverUrl.$error" ng-show="zendeskAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n                <div ng-messages="zendeskAccountForm.description.$error" ng-show="zendeskAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n                    ADD ZENDESKACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n    <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.zendeskAccount.userpic" class="zendeskAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.zendeskAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.zendeskAccount.userpic" class="zendeskAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/zendeskAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.zendeskAccount.id}} {{vm.zendeskAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.zendeskAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.zendeskAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n                                <md-select ng-model="vm.zendeskAccount.authType" required>\n                                    <md-option ng-value="\'password\'">Password</md-option>\n                                    <md-option ng-value="\'token\'">Token</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.authType.$error" ng-show="generalForm.authType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newZendeskAccount  && vm.zendeskAccount.authType == \'password\'">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n                                <label translate="INTEGRATIONS.TOKEN">Token</label>\n                                <input type="text" name="token" ng-model="vm.zendeskAccount.token" required>\n                                <div ng-messages="generalForm.token.$error" ng-show="generalForm.token.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n                                                        Delete ZendeskConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.TAGS">TAGS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-table-container class="md-whiteframe-1dp padding-20">\n                                                <md-input-container class="md-block">\n                                                    <label translate="INTEGRATIONS.TAGS">Tags</label>\n                                                    <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n                                                        <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n                                                    </md-select>\n                                                </md-input-container>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n    <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.zendeskConfiguration.name" required autofocus>\n                <div ng-messages="zendeskConfigurationForm.name.$error" ng-show="zendeskConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.zendeskConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="zendeskConfigurationForm.channel.$error" ng-show="zendeskConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.zendeskConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="zendeskConfigurationForm.type.$error" ng-show="zendeskConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n                    ADD ZENDESKCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-zendeskAccounts-count">\n                    <span>{{vm.selectedZendeskAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ZENDESKACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" filename="zendeskAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="ZENDESKACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n                                <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(zendeskAccount, $event)" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n                                                    Edit ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event)" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n                                                    Delete ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n    <form name="mailAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.mailAccount.name" required autofocus>\n                <div ng-messages="mailAccountForm.name.$error" ng-show="mailAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n                <input type="email" name="address" ng-model="vm.mailAccount.address" required>\n                <div ng-messages="mailAccountForm.address.$error" ng-show="mailAccountForm.address.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.mailAccount.description">\n                <div ng-messages="mailAccountForm.description.$error" ng-show="mailAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n                    ADD MAILACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",'<md-dialog class="mailDisposition-dialog" aria-label="New MailDisposition">\n    <form name="mailDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.mailDisposition.name" required autofocus>\n                <div ng-messages="mailDispositionForm.name.$error" ng-show="mailDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailDisposition" ng-click="vm.saveMailDisposition()" class="send-button md-accent md-raised" ng-disabled="mailDispositionForm.$invalid || mailDispositionForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailDisposition" ng-click="vm.addNewMailDisposition()" class="send-button md-accent md-raised" ng-disabled="mailDispositionForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILDISPOSITION" translate-attr-aria-label="MAIL.ADD_MAILDISPOSITION">\n                    ADD MAILDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailDisposition" ng-click="vm.deleteMailDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.mailAccount.userpic" class="mailAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.mailAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.mailAccount.userpic" class="mailAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/mailAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.mailAccount.id}} {{vm.mailAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (mailDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid) || (whitelabelForm.$invalid) || (signatureForm.$invalid)"\n                translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.mailAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n                                <input type="email" name="address" ng-model="vm.mailAccount.address" required>\n                                <div ng-messages="generalForm.address.$error" ng-show="generalForm.address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.LIST">List</label>\n                                <md-select ng-model="vm.mailAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.TEMPLATE">template</label>\n                                <md-select ng-model="vm.mailAccount.TemplateId">\n                                    <md-option ng-value="TemplateId.id" ng-repeat="TemplateId in vm.templates">{{ TemplateId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TemplateId.$error" ng-show="generalForm.TemplateId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.TEMPLATE_REQUIRED">template field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.fidelity" aria-label="Fidelity"><span translate="MAIL.FIDELITY">Fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.mailAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.service" aria-label="service"><span translate="MAIL.SERVICE">service</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.mailAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.IMAP">IMAP</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n                        </div>\n                        <form name="imapForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.HOST">host</label>\n                                <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" required autofocus>\n                                <div ng-messages="imapForm.Imap.host.$error" ng-show="imapForm.Imap.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.USERNAME">username</label>\n                                <input type="text" name="Imap.username" ng-model="vm.mailAccount.Imap.username" required>\n                                <div ng-messages="imapForm.Imap.username.$error" ng-show="imapForm.Imap.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PASSWORD">password</label>\n                                <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n                                <div ng-messages="imapForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newMailAccount ">\n                                <label translate="MAIL.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="Imap.password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="imapForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="MAIL.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PORT">port</label>\n                                <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" required>\n                                <div ng-messages="imapForm.Imap.port.$error" ng-show="imapForm.Imap.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.MAILBOX">mailbox</label>\n                                <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox">\n                                <div ng-messages="imapForm.Imap.mailbox.$error" ng-show="imapForm.Imap.mailbox.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n                                <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" required>\n                                <div ng-messages="imapForm.Imap.connTimeout.$error" ng-show="imapForm.Imap.connTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n                                <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" required>\n                                <div ng-messages="imapForm.Imap.authTimeout.$error" ng-show="imapForm.Imap.authTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.delete" aria-label="delete"><span translate="MAIL.DELETE">delete</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.ssl" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.keepalive" aria-label="keepalive"><span translate="MAIL.KEEPALIVE">keepalive</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SMTP">SMTP</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n                        </div>\n                        <form name="smtpForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.HOST">host</label>\n                                <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" required autofocus>\n                                <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.USERNAME">username</label>\n                                <input type="text" name="Smtp.username" ng-model="vm.mailAccount.Smtp.username" required>\n                                <div ng-messages="smtpForm.Smtp.username.$error" ng-show="smtpForm.Smtp.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PASSWORD">password</label>\n                                <input type="password" name="Smtp.password" ng-model="vm.mailAccount.Smtp.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n                                <div ng-messages="smtpForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newMailAccount ">\n                                <label translate="MAIL.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="Smtp.password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="MAIL.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PORT">port</label>\n                                <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" required>\n                                <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Smtp.ssl" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="MailAccountMailDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MAIL.MAILDISPOSITIONS">MailDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailDisposition($event)" aria-label="add mailDisposition" translate translate-attr-label="MAIL.ADD_MAILDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedMailAccountMailDispositions.length}} {{vm_dc.selectedMailAccountMailDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAILACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'MAIL.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="mailDisposition" md-select-id="id" ng-repeat="mailDisposition in vm_dc.mailAccountMailDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" translate="MAIL.EDIT_MAILDISPOSITION">\n                                                                Edit MailDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(mailDisposition, $event)" translate="MAIL.DELETE_MAILDISPOSITION">\n                                                                Delete MailDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.mailAccountMailDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="MAIL.NO_MAILDISPOSITION_AVAILABLE">No maildisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailDispositions.count}}" md-on-paginate="vm_dc.getMailAccountMailDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.mailAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.mailAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.mailAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.mailAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.mailAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.mailAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.OTHERS">OTHERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.WHITELABEL">WHITELABEL</div>\n                        </div>\n                        <form name="whitelabelForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.WHITELABEL">whiteLabel</label>\n                                <textarea ng-model="vm.mailAccount.whiteLabel" md-maxlength="150" max-rows="5" autofocus></textarea>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container signature md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.SIGNATURE">SIGNATURE</div>\n                        </div>\n                        <form name="signatureForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MAIL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-mailAccounts-count">\n                    <span>{{vm.selectedMailAccounts.length}}</span>\n                <span translate="MAIL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAILACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" filename="mailAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAILACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MAILACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="address">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.mailAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n                                <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="address ">{{mailAccount.address}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(mailAccount, $event)" translate="MAIL.EDIT_MAILACCOUNT">\n                                                    Edit MailAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(mailAccount, $event)" translate="MAIL.DELETE_MAILACCOUNT">\n                                                    Delete MailAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MAILACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n    <form name="mailQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="mailQueueForm.name.$error" ng-show="mailQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.mailQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="mailQueueForm.strategy.$error" ng-show="mailQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" required>\n                <div ng-messages="mailQueueForm.timeout.$error" ng-show="mailQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.mailQueue.description">\n                <div ng-messages="mailQueueForm.description.$error" ng-show="mailQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n                    ADD MAILQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue">\n    <form name="mailQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MAIL.TEAMADD_MAILQUEUE">Add Team in MAILQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MAIL.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="mailQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.mailQueue.userpic" class="mailQueue-image" hide-xs>\n                    <img ng-src="api/users/{{vm.mailQueue.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.mailQueue.userpic" class="mailQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/mailQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.mailQueue.id}} {{vm.mailQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.mailQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.mailQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MAIL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-mailQueues-count">\n                    <span>{{vm.selectedMailQueues.length}}</span>\n                <span translate="MAIL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAILQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" filename="mailQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAILQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MAILQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.mailQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n                                <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(mailQueue, $event)" translate="MAIL.EDIT_MAILQUEUE">\n                                                    Edit MailQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(mailQueue, $event)" translate="MAIL.DELETE_MAILQUEUE">\n                                                    Delete MailQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MAILQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n    <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newIvrCampaign">\n                <div ng-messages="ivrCampaignForm.name.$error" ng-show="ivrCampaignForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                <md-select ng-model="vm.ivrCampaign.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.TrunkId.$error" ng-show="ivrCampaignForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                <md-select ng-model="vm.ivrCampaign.IntervalId" required>\n                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.IntervalId.$error" ng-show="ivrCampaignForm.IntervalId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                <md-select ng-model="vm.ivrCampaign.SquareProjectId" required>\n                    <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects">{{ SquareProjectId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.SquareProjectId.$error" ng-show="ivrCampaignForm.SquareProjectId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n                <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" required>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n                <div ng-messages="ivrCampaignForm.limitCalls.$error" ng-show="ivrCampaignForm.limitCalls.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n                <div ng-messages="ivrCampaignForm.description.$error" ng-show="ivrCampaignForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n                    ADD IVRCAMPAIGN\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign">\n    <form name="ivrCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign">\n    <form name="ivrCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.ivrCampaign.userpic" class="ivrCampaign-image" hide-xs>\n                    <img ng-src="api/users/{{vm.ivrCampaign.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.ivrCampaign.userpic" class="ivrCampaign-image" hide-xs>\n                    <img ng-src="assets/images/business/ivrCampaigns.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.ivrCampaign.id}} {{vm.ivrCampaign.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n                <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n                <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-block-helper"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"\n                translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                                <md-select ng-model="vm.ivrCampaign.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n                                <md-select ng-model="vm.ivrCampaign.TrunkBackupId">\n                                    <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkBackupId.$error" ng-show="generalForm.TrunkBackupId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                                <md-select ng-model="vm.ivrCampaign.IntervalId" required>\n                                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.IntervalId.$error" ng-show="generalForm.IntervalId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n                        </div>\n                        <form name="campaignForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                                <md-select ng-model="vm.ivrCampaign.SquareProjectId" required autofocus>\n                                    <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects">{{ SquareProjectId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="campaignForm.SquareProjectId.$error" ng-show="campaignForm.SquareProjectId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n                                <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n                                <div ng-messages="campaignForm.limitCalls.$error" ng-show="campaignForm.limitCalls.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n                        </div>\n                        <form name="originateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n                                <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdName.$error" ng-show="originateForm.dialOriginateCallerIdName.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n                                <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdNumber.$error" ng-show="originateForm.dialOriginateCallerIdNumber.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n                                <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n                                <div ng-messages="originateForm.dialOriginateTimeout.$error" ng-show="originateForm.dialOriginateTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n                        </div>\n                        <form name="globalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n                                <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n                                <div ng-messages="globalForm.dialGlobalMaxRetry.$error" ng-show="globalForm.dialGlobalMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n                        </div>\n                        <form name="congestionForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n                                <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionMaxRetry.$error" ng-show="congestionForm.dialCongestionMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n                                <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionRetryFrequency.$error" ng-show="congestionForm.dialCongestionRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n                        </div>\n                        <form name="busyForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n                                <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n                                <div ng-messages="busyForm.dialBusyMaxRetry.$error" ng-show="busyForm.dialBusyMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n                                <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n                                <div ng-messages="busyForm.dialBusyRetryFrequency.$error" ng-show="busyForm.dialBusyRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n                        </div>\n                        <form name="noanswerForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n                                <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerMaxRetry.$error" ng-show="noanswerForm.dialNoAnswerMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n                                <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerRetryFrequency.$error" ng-show="noanswerForm.dialNoAnswerRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n                        </div>\n                        <form name="globalintervalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n                                <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n                                <div ng-messages="globalintervalForm.dialGlobalInterval.$error" ng-show="globalintervalForm.dialGlobalInterval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n                        </div>\n                        <form name="timezoneForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n                                <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus>\n                                    <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n                                    <div ng-messages="timezoneForm.dialTimezone.$error" ng-show="timezoneForm.dialTimezone.$touched" role="alert">\n                                        <div ng-message="required">\n                                            <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n                                        </div>\n                                    </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditIvrCampaignHopper($event)" aria-label="add hopper" translate translate-attr-label="MOTIONDIALER.ADD_HOPPER">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.ContactId}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.phone}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countcongestionretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countbusyretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countnoanswerretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperHistories($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n                                            <td md-cell>{{hopperHistory.uniqueid}}</td>\n                                            <td md-cell>{{hopperHistory.ContactId}}</td>\n                                            <td md-cell>{{hopperHistory.calleridnum}}</td>\n                                            <td md-cell>{{hopperHistory.calleridname}}</td>\n                                            <td md-cell>{{hopperHistory.statedesc}}</td>\n                                            <td md-cell>{{hopperHistory.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.endtime | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperHistory, $event)" translate="MOTIONDIALER.DELETE_HOPPERHISTORY">\n                                                                Delete HopperHistory\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n                                            <td md-cell colspan="11">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.FINAL">FINAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperFinals($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'MOTIONDIALER.DISPOSITION\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n                                            <td md-cell>{{hopperFinal.uniqueid}}</td>\n                                            <td md-cell>{{hopperFinal.calleridnum}}</td>\n                                            <td md-cell>{{hopperFinal.calleridname}}</td>\n                                            <td md-cell>{{hopperFinal.statedesc}}</td>\n                                            <td md-cell>{{hopperFinal.countcongestionretry}}</td>\n                                            <td md-cell>{{hopperFinal.countbusyretry}}</td>\n                                            <td md-cell>{{hopperFinal.countnoanswerretry}}</td>\n                                            <td md-cell>{{hopperFinal.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.disposition}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperFinal, $event)" translate="MOTIONDIALER.DELETE_HOPPERFINAL">\n                                                                Delete HopperFinal\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n                                            <td md-cell colspan="15">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperBlacks($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n                                            <td md-cell>{{hopperBlack.ContactId}}</td>\n                                            <td md-cell>{{hopperBlack.phone}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperBlack, $event)" translate="MOTIONDIALER.DELETE_HOPPERBLACK">\n                                                                Delete HopperBlack\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n                                            <td md-cell colspan="4">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MOTIONDIALER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-ivrCampaigns-count">\n                    <span>{{vm.selectedIvrCampaigns.length}}</span>\n                <span translate="MOTIONDIALER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="IVRCAMPAIGNS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" filename="ivrCampaigns.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- IVRCAMPAIGN TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n                                <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n                                <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[ivrCampaign.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ SquareProjectId = vm.projects[ivrCampaign.SquareProjectId]; SquareProjectId.name }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(ivrCampaign, $event)" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n                                                    Edit IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.listadddialog(ivrCampaign, $event)" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n                                                    listadd IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event)" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n                                                    blacklistadd IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event)" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n                                                    Delete IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n    <form name="queueCampaignForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newQueueCampaign">\n                <div ng-messages="queueCampaignForm.name.$error" ng-show="queueCampaignForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                <md-select ng-model="vm.queueCampaign.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="queueCampaignForm.TrunkId.$error" ng-show="queueCampaignForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                <md-select ng-model="vm.queueCampaign.IntervalId" required>\n                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                </md-select>\n                <div ng-messages="queueCampaignForm.IntervalId.$error" ng-show="queueCampaignForm.IntervalId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.METHOD">Method</label>\n                <md-select ng-model="vm.queueCampaign.dialMethod" required>\n                    <md-option ng-value="\'progressive\'">Progressive</md-option>\n                    <md-option ng-value="\'power\'">PowerDialing</md-option>\n                    <md-option ng-value="\'predictive\'">Predictive</md-option>\n                </md-select>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n                <div ng-messages="queueCampaignForm.dialMethod.$error" ng-show="queueCampaignForm.dialMethod.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n                <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n                <md-select ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n                    <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }}</md-option>\n\n                    <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }}</md-option>\n                </md-select>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n                <div ng-messages="queueCampaignForm.dialPredictiveOptimization.$error" ng-show="queueCampaignForm.dialPredictiveOptimization.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n                <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n                <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" required>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n                <div ng-messages="queueCampaignForm.dialLimitQueue.$error" ng-show="queueCampaignForm.dialLimitQueue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.queueCampaign.description">\n                <div ng-messages="queueCampaignForm.description.$error" ng-show="queueCampaignForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n                    ADD QUEUECAMPAIGN\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">Add Team in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.queueCampaign.userpic" class="queueCampaign-image" hide-xs>\n                    <img ng-src="api/users/{{vm.queueCampaign.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.queueCampaign.userpic" class="queueCampaign-image" hide-xs>\n                    <img ng-src="assets/images/business/queueCampaigns.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.queueCampaign.id}} {{vm.queueCampaign.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n                <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n                <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-block-helper"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"\n                translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                                <md-select ng-model="vm.queueCampaign.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n                                <md-select ng-model="vm.queueCampaign.TrunkBackupId">\n                                    <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkBackupId.$error" ng-show="generalForm.TrunkBackupId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                                <md-select ng-model="vm.queueCampaign.IntervalId" required>\n                                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.IntervalId.$error" ng-show="generalForm.IntervalId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.queueCampaign.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n                        </div>\n                        <form name="campaignForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.METHOD">Method</label>\n                                <md-select ng-model="vm.queueCampaign.dialMethod" required autofocus>\n                                    <md-option ng-value="\'progressive\'">Progressive</md-option>\n                                    <md-option ng-value="\'power\'">PowerDialing</md-option>\n                                    <md-option ng-value="\'predictive\'">Predictive</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n                                <div ng-messages="campaignForm.dialMethod.$error" ng-show="campaignForm.dialMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n                                <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n                                <md-select ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n                                    <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n                                <div ng-messages="campaignForm.dialPredictiveOptimization.$error" ng-show="campaignForm.dialPredictiveOptimization.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n                                <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n                                <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n                                <div ng-messages="campaignForm.dialLimitQueue.$error" ng-show="campaignForm.dialLimitQueue.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n                        </div>\n                        <form name="queueForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n                                <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" autofocus>\n                                <div ng-messages="queueForm.dialQueueOptions.$error" ng-show="queueForm.dialQueueOptions.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n                                <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="99" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n                                <div ng-messages="queueForm.dialQueueTimeout.$error" ng-show="queueForm.dialQueueTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.queueCampaign.strategy" required>\n                                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                                    <md-option ng-value="\'random\'">Random</md-option>\n                                    <md-option ng-value="\'linear\'">Linear</md-option>\n                                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                                </md-select>\n                                <div ng-messages="queueForm.strategy.$error" ng-show="queueForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n                                <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n                                <div ng-messages="queueForm.timeout.$error" ng-show="queueForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.RETRY">Retry</label>\n                                <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n                                <div ng-messages="queueForm.retry.$error" ng-show="queueForm.retry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n                                <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n                                <div ng-messages="queueForm.wrapuptime.$error" ng-show="queueForm.wrapuptime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n                                <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n                                <div ng-messages="queueForm.weight.$error" ng-show="queueForm.weight.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n                                <md-select ng-model="vm.queueCampaign.musiconhold">\n                                    <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n                                <div ng-messages="queueForm.musiconhold.$error" ng-show="queueForm.musiconhold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                                <md-select ng-model="vm.queueCampaign.dialQueueProject">\n                                    <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="queueForm.dialQueueProject.$error" ng-show="queueForm.dialQueueProject.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n                        </div>\n                        <form name="originateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n                                <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdName.$error" ng-show="originateForm.dialOriginateCallerIdName.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n                                <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdNumber.$error" ng-show="originateForm.dialOriginateCallerIdNumber.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n                                <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n                                <div ng-messages="originateForm.dialOriginateTimeout.$error" ng-show="originateForm.dialOriginateTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n                        </div>\n                        <form name="globalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n                                <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n                                <div ng-messages="globalForm.dialGlobalMaxRetry.$error" ng-show="globalForm.dialGlobalMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n                        </div>\n                        <form name="congestionForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n                                <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionMaxRetry.$error" ng-show="congestionForm.dialCongestionMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n                                <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionRetryFrequency.$error" ng-show="congestionForm.dialCongestionRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n                        </div>\n                        <form name="busyForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n                                <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n                                <div ng-messages="busyForm.dialBusyMaxRetry.$error" ng-show="busyForm.dialBusyMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n                                <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n                                <div ng-messages="busyForm.dialBusyRetryFrequency.$error" ng-show="busyForm.dialBusyRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n                        </div>\n                        <form name="noanswerForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n                                <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerMaxRetry.$error" ng-show="noanswerForm.dialNoAnswerMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n                                <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerRetryFrequency.$error" ng-show="noanswerForm.dialNoAnswerRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n                                <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n                                <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n                                <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n                                <md-select ng-model="vm.queueCampaign.autopause">\n\n                                    <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n                                <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n                                <md-select ng-model="vm.queueCampaign.ringinuse">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n                                <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n                                <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n                                <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n                                <md-select ng-model="vm.queueCampaign.timeoutrestart">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n                                <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n                                <md-select ng-model="vm.queueCampaign.monitor_format">\n                                    <md-option ng-value="\'\'">Inactive</md-option>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'wav49\'">wav49</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n                                <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONTEXT">Context</label>\n                                <input type="text" name="context" ng-model="vm.queueCampaign.context">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n                                <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setinterfacevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setqueuevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setqueueentryvar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n                        </div>\n                        <form name="globalintervalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n                                <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n                                <div ng-messages="globalintervalForm.dialGlobalInterval.$error" ng-show="globalintervalForm.dialGlobalInterval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n                        </div>\n                        <form name="timezoneForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n                                <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus>\n                                    <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n                                    <div ng-messages="timezoneForm.dialTimezone.$error" ng-show="timezoneForm.dialTimezone.$touched" role="alert">\n                                        <div ng-message="required">\n                                            <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n                                        </div>\n                                    </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditQueueCampaignHopper($event)" aria-label="add hopper" translate translate-attr-label="MOTIONDIALER.ADD_HOPPER">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.ContactId}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.phone}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countcongestionretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countbusyretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countnoanswerretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperHistories($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n                                            <td md-cell>{{hopperHistory.uniqueid}}</td>\n                                            <td md-cell>{{hopperHistory.ContactId}}</td>\n                                            <td md-cell>{{hopperHistory.calleridnum}}</td>\n                                            <td md-cell>{{hopperHistory.calleridname}}</td>\n                                            <td md-cell>{{hopperHistory.statedesc}}</td>\n                                            <td md-cell>{{hopperHistory.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.endtime | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperHistory, $event)" translate="MOTIONDIALER.DELETE_HOPPERHISTORY">\n                                                                Delete HopperHistory\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n                                            <td md-cell colspan="11">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.FINAL">FINAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperFinals($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'MOTIONDIALER.DISPOSITION\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n                                            <td md-cell>{{hopperFinal.uniqueid}}</td>\n                                            <td md-cell>{{hopperFinal.calleridnum}}</td>\n                                            <td md-cell>{{hopperFinal.calleridname}}</td>\n                                            <td md-cell>{{hopperFinal.statedesc}}</td>\n                                            <td md-cell>{{hopperFinal.countcongestionretry}}</td>\n                                            <td md-cell>{{hopperFinal.countbusyretry}}</td>\n                                            <td md-cell>{{hopperFinal.countnoanswerretry}}</td>\n                                            <td md-cell>{{hopperFinal.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.disposition}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperFinal, $event)" translate="MOTIONDIALER.DELETE_HOPPERFINAL">\n                                                                Delete HopperFinal\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n                                            <td md-cell colspan="15">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperBlacks($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n                                            <td md-cell>{{hopperBlack.ContactId}}</td>\n                                            <td md-cell>{{hopperBlack.phone}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperBlack, $event)" translate="MOTIONDIALER.DELETE_HOPPERBLACK">\n                                                                Delete HopperBlack\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n                                            <td md-cell colspan="4">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MOTIONDIALER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-queueCampaigns-count">\n                    <span>{{vm.selectedQueueCampaigns.length}}</span>\n                <span translate="MOTIONDIALER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="QUEUECAMPAIGNS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" filename="queueCampaigns.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n                                <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n                                <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n                                    <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[queueCampaign.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(queueCampaign, $event)" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n                                                    Edit QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.listadddialog(queueCampaign, $event)" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n                                                    listadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event)" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n                                                    blacklistadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.teamadddialog(queueCampaign, $event)" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n                                                    teamadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(queueCampaign, $event)" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n                                                    agentadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(queueCampaign, $event)" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n                                                    Delete QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.AGENTS">Agents</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'MOTIONDIALER.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n            <tr md-row>\n                <th md-column width="20px"></th>\n                <th md-column md-order-by="fullname">{{ \'MOTIONDIALER.FULLNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'MOTIONDIALER.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PHONE_STATUS\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.agents">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="agent" md-select-id="id" ng-repeat="(id, agent) in vm.agents">\n                <td md-cell>\n                    <div class="avatar-wrapper">\n                        <img md-menu-align-target class="avatar" ng-src="{{agent.userpic && \'api/users/\'+agent.id+\'/avatar\' || \'assets/images/avatars/profile.jpg\'}}">\n                        <md-icon md-font-icon class="icon status s16 icon-checkbox-marked-circle" ng-class="agent.online ? \'green-300-fg\' : \'red-300-fg\'"></md-icon>\n                    </div>\n                </td>\n                <td md-cell>\n                    <div layout="column">\n                        <span class="text-truncate"><span ng-if="agent.online" class="text-boxed"><timer start-time="agent.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>{{agent.fullname}}</span>\n                        <span class="text-truncate" ng-if="agent.voicePause">\n              <span><span class="text-boxed"><timer start-time="agent.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span></span><span class="blink red-fg">{{agent.pauseType || \'dafault\' | uppercase}}</span>\n                        </span>\n                    </div>\n                </td>\n                <td md-cell>\n                    {{agent.internal}}\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[agent.state]">\n            <md-tooltip>{{\'MOTIONDIALER.\' + agent.state | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span class="text-boxed" ng-if="agent.stateTime && vm.isAvailableState(agent.state)">\n            <timer ng-if="agent.stateTime" start-time="agent.stateTime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n          </span>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[agent.status]">\n            <md-tooltip>{{\'MOTIONDIALER.\' + agent.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="agent.status === \'registered\'" class="text-boxed">{{agent.address}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="4">\n                            <md-menu-item>\n                                <md-button ng-click="vm.logout(agent, $event)" translate="MOTIONDIALER.LOGOUT">\n                                    Logout\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.queueAdd(agent, $event)" translate="MOTIONDIALER.AGENTADD_QUEUE">\n                                    Add Agent In Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.PAUSE">Pause</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.pause(agent)"><em translate="MOTIONDIALER.DEFAULT_PAUSE">Default Pause</em></md-button>\n                                        </md-menu-item>\n                                        <md-menu-item ng-if="vm.pauses.rows.length" ng-repeat="pause in vm.pauses.rows">\n                                            <md-button ng-click="vm.pause(agent, pause.name)">{{pause.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.unPause(agent)" translate="MOTIONDIALER.UNPAUSE">\n                                    Unpause\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n            <tr md-row>\n                <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n                <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.campaigns">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n                <td md-cell>\n                    <span>{{campaign.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n                                    Edit Campaign\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n        \x3c!-- <div flex></div>\n    <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar> --\x3e\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                <td md-cell>\n                    <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n                    <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n                </td>\n                <td md-cell>{{channel.exten}}</td>\n                <td md-cell>{{channel.queue}}</td>\n                <td md-cell>{{channel.calleridnum}}</td>\n                <td md-cell>\n                    <span ng-if="channel.queuecallerleaveAt">\n              {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n              <span class="text-boxed">\n                <timer start-time="channel.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n              </span>\n                    </span>\n                    <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n              {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell>\n                    <span class="text-boxed">\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="2">\n                            <md-menu-item>\n                                <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n                                    Hangup\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n                                    Number\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item ng-repeat="agent in vm.agents.rows">\n                                            <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name)">{{agent.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n            \x3c!-- <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n        <td md-cell>\n          <i ng-class="vm.channelStatusClass[call.status.toLowerCase()]"></i>\n        </td>\n        <td md-cell>{{call.exten}}</td>\n        <td md-cell>{{call.queue}}</td>\n        <td md-cell><span ng-if="call.calleridname">{{call.calleridname}}, </span>{{call.calleridnum}}</td>\n        <td md-cell>\n          <span ng-if="call.queuecallerleaveAt">\n            {{call.connectedlinename}}, {{call.connectedlinenum}}\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n          <span ng-if="!call.queuecallerleaveAt" class="text-boxed" translate="MOTIONDIALER.WAITING_FOR_AGENT">\n            Waiting for agent...\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n        </td>\n        <td md-cell>\n          <span class="text-boxed">\n            <timer ng-if="call.queuecallerjoinAt" start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            <span ng-if="call.queuecallercomplete || call.queuecallerabandon || call.queuecallerexit" translate="MOTIONDIALER.CLOSING">Closing</span>\n          </span>\n        </td>\n        <td md-cell class="actions">\n          <md-menu>\n            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n              <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n            </md-button>\n\n            <md-menu-content width="2">\n              <md-menu-item>\n                <md-button ng-click="vm.hangup(call.uniqueid)" translate="MOTIONDIALER.HANGUP">\n                  Hangup\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-button ng-click="vm.redirectToNumber($event, call.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n                  Number\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-menu>\n                  <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                  <md-menu-content>\n                    <md-menu-item ng-repeat="agent in vm.agents.rows">\n                      <md-button ng-click="vm.redirectToAgent(call.uniqueid, agent.name)">{{agent.name}}</md-button>\n                    </md-menu-item>\n                  </md-menu-content>\n                </md-menu>\n              </md-menu-item>\n            </md-menu-content>\n          </md-menu>\n        </td>\n      </tr> --\x3e\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.MANAGED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.ABANDONED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.DROPPED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>\n                    <span>{{queue.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay|| 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.total) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.total) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.READY\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ORIGINATED\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="12">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="queue" md-select-id="id" ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>{{queue.name}}</td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.loggedInDb || 0}} ({{queue.loggedIn || 0}})</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.paused || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.available || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.waiting || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.talking || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.originated || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.dialMethod || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.Trunk ? queue.Trunk.name : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditVoiceQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n                                    Edit Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.agentAdd($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n                                    Add Agents to queue\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.AGENTS">Agents</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUES">Queues</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n                </md-tab-label>\n            </md-tab>\n        </md-tabs>\n\n        <md-card ui-view></md-card>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n    <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>\n                <div ng-messages="openchannelAccountForm.name.$error" ng-show="openchannelAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>\n                <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>\n                <div ng-messages="openchannelAccountForm.remote.$error" ng-show="openchannelAccountForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n                <div ng-messages="openchannelAccountForm.description.$error" ng-show="openchannelAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE"\n                    translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n                    ADD OPENCHANNELACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",'<md-dialog class="openchannelDisposition-dialog" aria-label="New OpenchannelDisposition">\n    <form name="openchannelDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.openchannelDisposition.name" required autofocus>\n                <div ng-messages="openchannelDispositionForm.name.$error" ng-show="openchannelDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelDisposition" ng-click="vm.saveOpenchannelDisposition()" class="send-button md-accent md-raised" ng-disabled="openchannelDispositionForm.$invalid || openchannelDispositionForm.$pristine" aria-label="SAVE"\n                    translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelDisposition" ng-click="vm.addNewOpenchannelDisposition()" class="send-button md-accent md-raised" ng-disabled="openchannelDispositionForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION"\n                    translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">\n                    ADD OPENCHANNELDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelDisposition" ng-click="vm.deleteOpenchannelDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.openchannelAccount.userpic" class="openchannelAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.openchannelAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.openchannelAccount.userpic" class="openchannelAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/openchannelAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.openchannelAccount.id}} {{vm.openchannelAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (openchannelDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.LIST">List</label>\n                                <md-select ng-model="vm.openchannelAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.openchannelAccount.fidelity" aria-label="fidelity"><span translate="OPENCHANNEL.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.openchannelAccount.fidelity" class="md-block">\n                                <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.openchannelAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>\n                                <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.API">API</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container api md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.API">API</div>\n                        </div>\n                        <form name="apiForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="OpenchannelAccountOpenchannelDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELDISPOSITIONS">OpenchannelDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event)" aria-label="add openchannelDisposition" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'OPENCHANNEL.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="openchannelDisposition" md-select-id="id" ng-repeat="openchannelDisposition in vm_dc.openchannelAccountOpenchannelDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" translate="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION">\n                                                                Edit OpenchannelDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(openchannelDisposition, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELDISPOSITION">\n                                                                Delete OpenchannelDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_OPENCHANNELDISPOSITION_AVAILABLE">No openchanneldisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelDispositions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.openchannelAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="openchannelAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.openchannelAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="openchannelAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.openchannelAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="OPENCHANNEL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-openchannelAccounts-count">\n                    <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n                <span translate="OPENCHANNEL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNELACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" filename="openchannelAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n                                <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(openchannelAccount, $event)" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n                                                    Edit OpenchannelAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n                                                    Delete OpenchannelAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n    <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="openchannelQueueForm.name.$error" ng-show="openchannelQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.openchannelQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="openchannelQueueForm.strategy.$error" ng-show="openchannelQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" required>\n                <div ng-messages="openchannelQueueForm.timeout.$error" ng-show="openchannelQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n                <div ng-messages="openchannelQueueForm.description.$error" ng-show="openchannelQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE"\n                    translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n                    ADD OPENCHANNELQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue">\n    <form name="openchannelQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">Add Team in OPENCHANNELQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="OPENCHANNEL.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="openchannelQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.openchannelQueue.userpic" class="openchannelQueue-image" hide-xs>\n                    <img ng-src="api/users/{{vm.openchannelQueue.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.openchannelQueue.userpic" class="openchannelQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/openchannelQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.openchannelQueue.id}} {{vm.openchannelQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.openchannelQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="OPENCHANNEL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-openchannelQueues-count">\n                    <span>{{vm.selectedOpenchannelQueues.length}}</span>\n                <span translate="OPENCHANNEL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNELQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" filename="openchannelQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n                                <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(openchannelQueue, $event)" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n                                                    Edit OpenchannelQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n                                                    Delete OpenchannelQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n    <form name="customizationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n                <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n                <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" required>\n                <div ng-messages="customizationForm.headerWhiteLabel.$error" ng-show="customizationForm.headerWhiteLabel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n                    ADD CUSTOMIZATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="customizationForm.$pristine || customizationForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n                </div>\n                <form name="customizationForm" novalidate>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n                    </md-input-container>\n                    <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n                        <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n                        <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" required>\n                        <div ng-messages="customizationForm.headerWhiteLabel.$error" ng-show="customizationForm.headerWhiteLabel.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n            <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n                </div>\n                <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                    <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()"\n                        flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                        <div class="drop-text hint-text" layout="row" layout-align="center center">\n                            <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                        </div>\n\n                        <div class="upload-button" layout="column" layout-align="center center">\n                            <md-button class="md-accent md-raised" flow-btn>\n                                Upload\n                            </md-button>\n                            <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                        </div>\n\n                        <div layout="row" layout-align="start start" layout-wrap>\n                            <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n                                <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                    <div class="overlay" layout="column" layout-align="center center">\n                                        <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n                                        </md-progress-linear>\n                                    </div>\n                                    <img class="media" flow-img="logoimage.file">\n                                </div>\n\n                                <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                    <img class="media" ng-src="{{logoimage.url}}">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n\n            <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n                </div>\n                <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                    <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()"\n                        flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                        <div class="drop-text hint-text" layout="row" layout-align="center center">\n                            <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                        </div>\n\n                        <div class="upload-button" layout="column" layout-align="center center">\n                            <md-button class="md-accent md-raised" flow-btn>\n                                Upload\n                            </md-button>\n                            <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                        </div>\n\n                        <div layout="row" layout-align="start start" layout-wrap>\n                            <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n                                <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                    <div class="overlay" layout="column" layout-align="center center">\n                                        <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n                                        </md-progress-linear>\n                                    </div>\n                                    <img class="media" flow-img="logologinimage.file">\n                                </div>\n\n                                <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                    <img class="media" ng-src="{{logologinimage.url}}">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n    <form name="generalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n                <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" required autofocus>\n                <div ng-messages="generalForm.min_internal.$error" ng-show="generalForm.min_internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.MIN_MAILBOX">Min_Mailbox</label>\n                <input type="number" name="min_mailbox" ng-model="vm.general.min_mailbox" min="0" required>\n                <div ng-messages="generalForm.min_mailbox.$error" ng-show="generalForm.min_mailbox.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.MIN_MAILBOX_REQUIRED">Min_Mailbox field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.general.securePassword" aria-label="Secure_Password"><span translate="SETTINGS.SECURE_PASSWORD">Secure_Password</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.STUNADDR">Stunaddr</label>\n                <input type="text" name="stunaddr" ng-model="vm.general.stunaddr">\n                <div ng-messages="generalForm.stunaddr.$error" ng-show="generalForm.stunaddr.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n                    ADD GENERAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="generalForm.$pristine || generalForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n                </div>\n                <form name="generalForm" novalidate>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n                        <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" required autofocus>\n                        <div ng-messages="generalForm.min_internal.$error" ng-show="generalForm.min_internal.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.MIN_MAILBOX">Min_Mailbox</label>\n                        <input type="number" name="min_mailbox" ng-model="vm.general.min_mailbox" min="0" required>\n                        <div ng-messages="generalForm.min_mailbox.$error" ng-show="generalForm.min_mailbox.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.MIN_MAILBOX_REQUIRED">Min_Mailbox field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.general.securePassword" aria-label="Secure_Password"><span translate="SETTINGS.SECURE_PASSWORD">Secure_Password</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.STUNADDR">Stunaddr</label>\n                        <input type="text" name="stunaddr" ng-model="vm.general.stunaddr">\n                        <div ng-messages="generalForm.stunaddr.$error" ng-show="generalForm.stunaddr.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n        <div>\n            <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n                REQUEST LICENSE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n            \x3c!-- LICENSE CARD --\x3e\n            <div layout="row" flex>\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="row" layout-align="center">\n                        <div flex layout="row" layout-align="start center">\n                            <div>\n                                <a href="https://www.xcallymotion.com/prices" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n                                    <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n                                    <md-icon md-font-icon="icon-coin"></md-icon>\n                                </a>\n                            </div>\n                        </div>\n                        <div flex>\n                            <div ng-switch="vm.license.months" class="text-center">\n                                <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n                                <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n                                <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n                            </div>\n                        </div>\n                        <div flex layout="row" layout-align="end center">\n                            <div>\n                                <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n                                    <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n                                    <md-icon md-font-icon="icon-pencil"></md-icon>\n                                </md-button>\n                            </div>\n                        </div>\n                    </div>\n\n                    <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n                    <span class="text-center padding-bottom-10"> {{\'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n                    <div ng-if="vm.license.demo" layout="column">\n                        <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n                        <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcallymotion.com/prices" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n                    </div>\n\n                    <div ng-if="vm.license.machineUuid !== vm.license.uuid" layout="column">\n                        <span class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n                        <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n                        <span class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n                        <span class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} <span class="text-italic text-bold"><a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span></span>\n                    </div>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.users || 0 }}</h3>\n                                <p translate="SETTINGS.USERS">Users</p>\n                            </div>\n                        </md-list-item>\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.agents || 0 }}</h3>\n                                <p translate="SETTINGS.AGENTS">Agents</p>\n                            </div>\n                        </md-list-item>\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.telephones || 0 }}</h3>\n                                <p translate="SETTINGS.TELEPHONES">Telephones</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="channel in vm.channels">\n                            <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n                                <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="module in vm.modules">\n                            <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n                                <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ vm.license[module.name] ? \'ENABLED\' : \'DISABLED\' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="other in vm.others">\n                            <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+"                                <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ vm.license[other.name] ? 'ENABLED' : 'DISABLED' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n                </md-card>\n            </div>\n            \x3c!-- / LICENSE CARD --\x3e\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n    <form name="requestForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.license.name" required>\n                <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.license.email" required>\n                <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.USERS">Users</label>\n                    <input type="number" name="users" ng-model="vm.license.users" required>\n                    <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.AGENTS">Agents</label>\n                    <input type="number" name="agents" ng-model="vm.license.agents" required>\n                    <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.TELEPHONES">Telephones</label>\n                    <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n                    <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.DESCRIPTION">Description</label>\n                <textarea name="description" ng-model="vm.license.description"></textarea>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n    <form name="networkForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.TYPE">Type</label>\n                <md-select ng-model="vm.network.type" required autofocus>\n                    <md-option ng-value="\'localnet\'">LocalNET</md-option>\n                    <md-option ng-value="\'externip\'">ExternIP</md-option>\n                </md-select>\n                <div ng-messages="networkForm.type.$error" ng-show="networkForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n                <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n                <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/"\n                    required>\n                <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n                <div ng-messages="networkForm.value.$error" ng-show="networkForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n                <label translate="SETTINGS.ADDRESS">Address</label>\n                <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" required>\n                <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n                <div ng-messages="networkForm.value.$error" ng-show="networkForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n                    ADD NETWORK\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newNetwork" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SETTINGS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-networks-count">\n                    <span>{{vm.selectedNetworks.length}}</span>\n                <span translate="SETTINGS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="NETWORKS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" filename="networks.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="NETWORKS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- NETWORK TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.networks.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n                                <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n                                <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(network, $event)" translate="SETTINGS.EDIT_NETWORK">\n                                                    Edit Network\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(network, $event)" translate="SETTINGS.DELETE_NETWORK">\n                                                    Delete Network\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / NETWORK TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD NETWORK BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n    <form name="smtpForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smtp.name" required autofocus>\n                <div ng-messages="smtpForm.name.$error" ng-show="smtpForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n                <md-select ng-model="vm.smtp.Smtp.service" required>\n                    <md-option ng-value="null">None</md-option>\n                    <md-option ng-value="\'gmail\'">Gmail</md-option>\n                </md-select>\n                <div ng-messages="smtpForm.Smtp.service.$error" ng-show="smtpForm.Smtp.service.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n                <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" required>\n                <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n                <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" required>\n                <div ng-messages="smtpForm.Smtp.user.$error" ng-show="smtpForm.Smtp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n                <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n                <div ng-messages="smtpForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSmtp ">\n                <label translate="SETTINGS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="Smtp.pass" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="SETTINGS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n                <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" required>\n                <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.DESCRIPTION">Description</label>\n                <input type="" name="description" ng-model="vm.smtp.description">\n                <div ng-messages="smtpForm.description.$error" ng-show="smtpForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n                    ADD SMTP\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n                VERIFY\n            </md-button>\n            <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="smtpForm.$pristine || smtpForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n                </div>\n                <form name="smtpForm" novalidate>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.NAME">Name</label>\n                        <input type="text" name="name" ng-model="vm.smtp.name" required autofocus>\n                        <div ng-messages="smtpForm.name.$error" ng-show="smtpForm.name.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n                        <md-select ng-model="vm.smtp.Smtp.service" required>\n                            <md-option ng-value="null">None</md-option>\n                            <md-option ng-value="\'gmail\'">Gmail</md-option>\n                        </md-select>\n                        <div ng-messages="smtpForm.Smtp.service.$error" ng-show="smtpForm.Smtp.service.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n                        <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" required>\n                        <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n                        <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" required>\n                        <div ng-messages="smtpForm.Smtp.user.$error" ng-show="smtpForm.Smtp.user.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n                        <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n                        <div ng-messages="smtpForm.password.$error" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.newSmtp ">\n                        <label translate="SETTINGS.CONFIRM_PASSWORD">Confirm Password</label>\n                        <input type="password" match-password="Smtp.pass" name="confirmPassword" ng-model="confirmPassword">\n                        <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                            </div>\n                            <div ng-message="passwordMatch">\n                                <span translate="SETTINGS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n                        <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" required>\n                        <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.DESCRIPTION">Description</label>\n                        <input type="" name="description" ng-model="vm.smtp.description">\n                        <div ng-messages="smtpForm.description.$error" ng-show="smtpForm.description.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n          <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n        </span>\n                <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SETTINGS.GENERAL">GENERAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget flex="50" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg">\n                                        <div class="h3">OS</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n                                                <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n                                                <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n                                                <div class="h4">Node.js: {{vm.system.node}}</div>\n                                                <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                            <ms-widget flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n                                        <div class="h3">CPU</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n                                                    <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                            <ms-widget flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">MEM</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                            </div>\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.USED">Used</span>\n                                                    <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">DISK {{$index + 1}}</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n                                                <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n                                                <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                            </div>\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.USED">Used</span>\n                                                    <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">NET {{$index + 1}}</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n                                                <div class="h4">IPv4: {{net.ip4}}</div>\n                                                <div class="h4">IPv6: {{net.ip6}}</div>\n                                                <div class="h4">MAC: {{net.mac}}</div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row">\n                            <div flex>\n                                <md-toolbar class="md-table-toolbar md-default">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-table-container>\n                                    <table md-table>\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column>pid</th>\n                                                <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n                                                <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n                                                <th md-column>pmem</th>\n                                                <th md-column>pcpu</th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body>\n                                            <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n                                                <td md-cell>{{process.pid}}</td>\n                                                <td md-cell>{{process.command}}</td>\n                                                <td md-cell>\n                                                    <span class="text-boxed white-fg" ng-class="{\n                          \'green-600-bg\': process.state == \'running\',\n                          \'yellow-600-bg\': process.state == \'sleeping\',\n                          \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n                                                </td>\n                                                <td md-cell>{{process.pmem}}%</td>\n                                                <td md-cell>{{process.pcpu}}%</td>\n                                            </tr>\n                                        </tbody>\n                                    </table>\n                                </md-table-container>\n                            </div>\n                        </md-card>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <md-card class="md-whiteframe-1dp padding-20" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n                                    <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n                                        <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table>\n                                    <thead md-head>\n                                        <tr md-row>\n                                            <th md-column>id</th>\n                                            <th md-column>pid</th>\n                                            <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n                                            <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n                                            <th md-column>MEM</th>\n                                            <th md-column>CPU</th>\n                                            <th md-column width="20px">Actions</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n                                            <td md-cell>{{process.pm_id}}</td>\n                                            <td md-cell>{{process.pid}}</td>\n                                            <td md-cell>{{process.name}}</td>\n                                            <td md-cell>\n                                                <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n                                            </td>\n                                            <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n                                            <td md-cell>{{process.monit.cpu}}%</td>\n                                            <td md-cell>\n                                                <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n                                                    <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n                                                </md-button>\n                                                <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n                                                    <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n                                                </md-button>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                    <tfoot md-foot>\n                                        <tr md-row>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                            </md-table-container>\n                        </md-card>\n                        <md-card class="md-whiteframe-1dp padding-20" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n                                    <div flex></div>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table>\n                                    <thead md-head>\n                                        <tr md-row>\n                                            <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n                                            <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 list</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 start &lt;id | name&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 stop &lt;id | name | all&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 restart &lt;id | name&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 logs [id | name]</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </md-card>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n    <form name="updateForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n            </div>\n        </md-toolbar>\n\n        <div md-background-bg layout="row" layout-align="start start">\n            <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n        </div>\n\n        <md-dialog-content ms-scroll>\n            <div layout="row" layout-align="center center">\n                <div ng-if="vm.updating" layout="column" layout-align="center center">\n                    <span class="text-center md-title">Grab a quick coffee and</span>\n                    <span class="text-center md-title">get back here as soon as completed!</span>\n                    <span class="text-center md-title">{{vm.output}}</span>\n                </div>\n                <div ng-if="!vm.updating">\n                    <div ng-if="vm.success" layout="column" layout-align="center center">\n                        <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n                        <span class="text-center md-title">In order to complete the update,</span>\n                        <span class="text-center md-title">please click on reload button</span>\n                    </div>\n                    <div ng-if="!vm.success" layout="column" layout-align="center center">\n                        <span class="text-center md-title">Update Error!</span>\n                        <span class="text-center md-title">Please contact your administrator!</span>\n                        <span class="text-center md-title">{{vm.output}}</span>\n                    </div>\n                </div>\n                <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n                    RELOAD\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- UPDATE CARD --\x3e\n            <div layout="row" ng-if="!vm.updating">\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n                        <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n                        <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n                            CHANGELOG\n                        </md-button>\n                    </div>\n                </md-card>\n                <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n                        <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n                        <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n                            CHANGELOG\n                        </md-button>\n                        <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n                    </div>\n                </md-card>\n                <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n                        <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n                    </div>\n                </md-card>\n            </div>\n            \x3c!-- / UPDATE CARD --\x3e\n\n            <div ng-if="vm.updating">\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="column" layout-align="center center">\n                        <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n                        <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n                        <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n                        <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n                        <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n                    </div>\n                </md-card>\n            </div>\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n    <form name="smsAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smsAccount.name" required autofocus>\n                <div ng-messages="smsAccountForm.name.$error" ng-show="smsAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.TYPE">Type</label>\n                <md-select ng-model="vm.smsAccount.type" required>\n                    <md-option ng-value="\'twilio\'">Twilio</md-option>\n                    <md-option ng-value="\'skebby\'">Skebby</md-option>\n                </md-select>\n                <div ng-messages="smsAccountForm.type.$error" ng-show="smsAccountForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                <label translate="SMS.SMSTYPE">smstype</label>\n                <md-select ng-model="vm.smsAccount.smstype" required>\n                    <md-option ng-value="\'basic\'">Basic</md-option>\n                    <md-option ng-value="\'classic\'">Classic</md-option>\n                    <md-option ng-value="\'classic+\'">Classic+</md-option>\n                </md-select>\n                <div ng-messages="smsAccountForm.smstype.$error" ng-show="smsAccountForm.smstype.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.SMSTYPE_REQUIRED">smstype field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.PHONE">phone</label>\n                <input type="text" name="phone" ng-model="vm.smsAccount.phone" required>\n                <div ng-messages="smsAccountForm.phone.$error" ng-show="smsAccountForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.PHONE_REQUIRED">phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                <label translate="SMS.SID">sid</label>\n                <input type="text" name="sid" ng-model="vm.smsAccount.sid" required>\n                <div ng-messages="smsAccountForm.sid.$error" ng-show="smsAccountForm.sid.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.SID_REQUIRED">sid field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                <label translate="SMS.TOKEN">token</label>\n                <input type="text" name="token" ng-model="vm.smsAccount.token" required>\n                <div ng-messages="smsAccountForm.token.$error" ng-show="smsAccountForm.token.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                <label translate="SMS.USERNAME">username</label>\n                <input type="text" name="username" ng-model="vm.smsAccount.username" required>\n                <div ng-messages="smsAccountForm.username.$error" ng-show="smsAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\'">\n                <label translate="SMS.PASSWORD">password</label>\n                <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n                <div ng-messages="smsAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSmsAccount  && vm.smsAccount.type == \'skebby\'">\n                <label translate="SMS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="smsAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="SMS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.MOTIONADDRESS">motionaddress</label>\n                <input type="url" name="remote" ng-model="vm.smsAccount.remote" required>\n                <div ng-messages="smsAccountForm.remote.$error" ng-show="smsAccountForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="SMS.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.smsAccount.description">\n                <div ng-messages="smsAccountForm.description.$error" ng-show="smsAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n                    ADD SMSACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",'<md-dialog class="smsDisposition-dialog" aria-label="New SmsDisposition">\n    <form name="smsDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.smsDisposition.name" required autofocus>\n                <div ng-messages="smsDispositionForm.name.$error" ng-show="smsDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsDisposition" ng-click="vm.saveSmsDisposition()" class="send-button md-accent md-raised" ng-disabled="smsDispositionForm.$invalid || smsDispositionForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsDisposition" ng-click="vm.addNewSmsDisposition()" class="send-button md-accent md-raised" ng-disabled="smsDispositionForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSDISPOSITION" translate-attr-aria-label="SMS.ADD_SMSDISPOSITION">\n                    ADD SMSDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsDisposition" ng-click="vm.deleteSmsDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.smsAccount.userpic" class="smsAccount-image" hide-xs>\n                    <img ng-src="api/users/{{vm.smsAccount.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.smsAccount.userpic" class="smsAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/smsAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.smsAccount.id}} {{vm.smsAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (smsDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.smsAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.LIST">List</label>\n                                <md-select ng-model="vm.smsAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.smsAccount.fidelity" aria-label="fidelity"><span translate="SMS.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.fidelity" class="md-block">\n                                <label translate="SMS.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.smsAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.TYPE">Type</label>\n                                <md-select ng-model="vm.smsAccount.type" required>\n                                    <md-option ng-value="\'twilio\'">Twilio</md-option>\n                                    <md-option ng-value="\'skebby\'">Skebby</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                                <label translate="SMS.SMSTYPE">smstype</label>\n                                <md-select ng-model="vm.smsAccount.smstype" required>\n                                    <md-option ng-value="\'basic\'">Basic</md-option>\n                                    <md-option ng-value="\'classic\'">Classic</md-option>\n                                    <md-option ng-value="\'classic+\'">Classic+</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.smstype.$error" ng-show="generalForm.smstype.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.SMSTYPE_REQUIRED">smstype field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.PHONE">phone</label>\n                                <input type="text" name="phone" ng-model="vm.smsAccount.phone" required>\n                                <div ng-messages="generalForm.phone.$error" ng-show="generalForm.phone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.PHONE_REQUIRED">phone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                                <label translate="SMS.SID">sid</label>\n                                <input type="text" name="sid" ng-model="vm.smsAccount.sid" required>\n                                <div ng-messages="generalForm.sid.$error" ng-show="generalForm.sid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.SID_REQUIRED">sid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                                <label translate="SMS.TOKEN">token</label>\n                                <input type="text" name="token" ng-model="vm.smsAccount.token" required>\n                                <div ng-messages="generalForm.token.$error" ng-show="generalForm.token.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                                <label translate="SMS.USERNAME">username</label>\n                                <input type="text" name="username" ng-model="vm.smsAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\'">\n                                <label translate="SMS.PASSWORD">password</label>\n                                <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSmsAccount  && vm.smsAccount.type == \'skebby\'">\n                                <label translate="SMS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="SMS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.MOTIONADDRESS">motionaddress</label>\n                                <input type="url" name="remote" ng-model="vm.smsAccount.remote" required>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.smsAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.API">API</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container api md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.API">API</div>\n                        </div>\n                        <form name="apiForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="SmsAccountSmsDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SMS.SMSDISPOSITIONS">SmsDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event)" aria-label="add smsDisposition" translate translate-attr-label="SMS.ADD_SMSDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsDispositions.length}} {{vm_dc.selectedSmsAccountSmsDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMSACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'SMS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="smsDisposition" md-select-id="id" ng-repeat="smsDisposition in vm_dc.smsAccountSmsDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" translate="SMS.EDIT_SMSDISPOSITION">\n                                                                Edit SmsDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(smsDisposition, $event)" translate="SMS.DELETE_SMSDISPOSITION">\n                                                                Delete SmsDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.smsAccountSmsDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="SMS.NO_SMSDISPOSITION_AVAILABLE">No smsdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsDispositions.count}}" md-on-paginate="vm_dc.getSmsAccountSmsDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.smsAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.smsAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="smsAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.smsAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.smsAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="smsAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.smsAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.smsAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SMS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-smsAccounts-count">\n                    <span>{{vm.selectedSmsAccounts.length}}</span>\n                <span translate="SMS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMSACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" filename="smsAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMSACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SMSACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.smsAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n                                <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(smsAccount, $event)" translate="SMS.EDIT_SMSACCOUNT">\n                                                    Edit SmsAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(smsAccount, $event)" translate="SMS.DELETE_SMSACCOUNT">\n                                                    Delete SmsAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SMSACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n    <form name="smsQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="smsQueueForm.name.$error" ng-show="smsQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.smsQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="smsQueueForm.strategy.$error" ng-show="smsQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" required>\n                <div ng-messages="smsQueueForm.timeout.$error" ng-show="smsQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.smsQueue.description">\n                <div ng-messages="smsQueueForm.description.$error" ng-show="smsQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n                    ADD SMSQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue">\n    <form name="smsQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="SMS.TEAMADD_SMSQUEUE">Add Team in SMSQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="SMS.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="smsQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.smsQueue.userpic" class="smsQueue-image" hide-xs>\n                    <img ng-src="api/users/{{vm.smsQueue.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.smsQueue.userpic" class="smsQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/smsQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.smsQueue.id}} {{vm.smsQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.smsQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.smsQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SMS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-smsQueues-count">\n                    <span>{{vm.selectedSmsQueues.length}}</span>\n                <span translate="SMS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMSQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" filename="smsQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMSQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SMSQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.smsQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n                                <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(smsQueue, $event)" translate="SMS.EDIT_SMSQUEUE">\n                                                    Edit SmsQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(smsQueue, $event)" translate="SMS.DELETE_SMSQUEUE">\n                                                    Delete SmsQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SMSQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-agents-count">\n                    <span>{{vm.selectedAgents.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="AGENTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" filename="agents.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="AGENTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- AGENT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.agents.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n                                <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n                                <td md-cell ng-if="!agent.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(agent, $event)" translate="STAFF.EDIT_AGENT">\n                                                    Edit Agent\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(agent, $event)" translate="STAFF.DELETE_AGENT">\n                                                    Delete Agent\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / AGENT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD AGENT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <form name="agentForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.FULLNAME">Fullname</label>\n                <input type="text" name="fullname" ng-model="vm.agent.fullname" required autofocus>\n                <div ng-messages="agentForm.fullname.$error" ng-show="agentForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newAgent">\n                <div ng-messages="agentForm.name.$error" ng-show="agentForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.agent.email" required>\n                <div ng-messages="agentForm.email.$error" ng-show="agentForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newAgent">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="agentForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newAgent  && vm.newAgent">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.agent.description">\n                <div ng-messages="agentForm.description.$error" ng-show="agentForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newAgent" class="md-block">\n                <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.agent.internal" required ng-disabled="!vm.newAgent">\n                <div ng-messages="agentForm.internal.$error" ng-show="agentForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newAgent" class="md-block">\n                <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n                    ADD AGENT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n    <form name="agentForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="agentForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent">\n    <form name="agentForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>{{vm.title}}</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\'">\n                <label translate="STAFF.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.agent.userpic" class="agent-image" hide-xs>\n                    <img ng-src="api/users/{{vm.agent.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.agent.userpic" class="agent-image" hide-xs>\n                    <img ng-src="assets/images/business/agents.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.agent.id}} {{vm.agent.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak ng-if="vm.agent.role !== \'admin\'">\n            <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="false">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Voice</md-tooltip>\n                        <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n                    </md-button>\n                    <md-button aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Chat</md-tooltip>\n                        <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n                    </md-button>\n                    <md-button aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Mail</md-tooltip>\n                        <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n                    </md-button>\n                    <md-button aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Sms</md-tooltip>\n                        <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n                    </md-button>\n                    <md-button aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Openchannel</md-tooltip>\n                        <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n                    </md-button>\n                    <md-button aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Fax</md-tooltip>\n                        <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n                    </md-button>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid)"\n                translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n                        </div>\n                        <form name="personal_infoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FULLNAME">Fullname</label>\n                                <input type="text" name="fullname" ng-model="vm.agent.fullname" required autofocus>\n                                <div ng-messages="personal_infoForm.fullname.$error" ng-show="personal_infoForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="personal_infoForm.name.$error" ng-show="personal_infoForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.agent.email" required>\n                                <div ng-messages="personal_infoForm.email.$error" ng-show="personal_infoForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.agent.description">\n                                <div ng-messages="personal_infoForm.description.$error" ng-show="personal_infoForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n                        </div>\n                        <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                            <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()"\n                                flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                                    <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                                </div>\n\n                                <div class="upload-button" layout="column" layout-align="center center">\n                                    <md-button class="md-accent md-raised" flow-btn>\n                                        Upload\n                                    </md-button>\n                                    <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                                </div>\n\n                                <div layout="row" layout-align="start start" layout-wrap>\n                                    <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n                                        <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                            <div class="overlay" layout="column" layout-align="center center">\n                                                <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n                                                </md-progress-linear>\n                                            </div>\n                                            <img class="media" flow-img="change_avatarimage.file">\n                                        </div>\n\n                                        <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                            <img class="media" ng-src="{{change_avatarimage.url}}">\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.agent.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.agent.transport" multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.HOST">Host</label>\n                                <input type="text" name="host" ng-model="vm.agent.host" required>\n                                <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n                                <div ng-messages="generalForm.host.$error" ng-show="generalForm.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.agent.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TYPE">Type</label>\n                                <md-select ng-model="vm.agent.type">\n                                    <md-option ng-value="\'friend\'">Friend</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                    <md-option ng-value="\'peer\'">Peer</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.agent.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.agent.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.agent.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n                        </div>\n                        <form name="capacityForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n                                <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" required autofocus>\n                                <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.chatCapacity.$error" ng-show="capacityForm.chatCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n                                <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.mailCapacity.$error" ng-show="capacityForm.mailCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n                                <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.faxCapacity.$error" ng-show="capacityForm.faxCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n                                <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.smsCapacity.$error" ng-show="capacityForm.smsCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n                                <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.openchannelCapacity.$error" ng-show="capacityForm.openchannelCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n                        </div>\n                        <form name="settingsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n                        </div>\n                        <form name="remote_controlForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.agent.phoneBarRemoteControl" class="md-block">\n                                <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n                                <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" required>\n                                <div ng-messages="remote_controlForm.phoneBarRemoteControlPort.$error" ng-show="remote_controlForm.phoneBarRemoteControlPort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n                        </div>\n                        <form name="sipForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n                                <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" required autofocus>\n                                <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n                                <div ng-messages="sipForm.phoneBarExpires.$error" ng-show="sipForm.phoneBarExpires.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SIPPORT">SipPort</label>\n                                <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" required>\n                                <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n                                <div ng-messages="sipForm.phoneBarListenPort.$error" ng-show="sipForm.phoneBarListenPort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n    <form name="teamForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.team.name" required autofocus>\n                <div ng-messages="teamForm.name.$error" ng-show="teamForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.team.description">\n                <div ng-messages="teamForm.description.$error" ng-show="teamForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n                    ADD TEAM\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team">\n    <form name="teamForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-teams-count">\n                    <span>{{vm.selectedTeams.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TEAMS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" filename="teams.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="TEAMS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TEAM TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.teams.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n                                <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n                                <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(team, $event)" translate="STAFF.EDIT_TEAM">\n                                                    Edit Team\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(team, $event)" translate="STAFF.AGENTADD_TEAM">\n                                                    AgentAdd Team\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(team, $event)" translate="STAFF.DELETE_TEAM">\n                                                    Delete Team\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TEAM TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TEAM BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n    <form name="telephoneForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n                <input type="text" name="fullname" ng-model="vm.telephone.fullname" required autofocus>\n                <div ng-messages="telephoneForm.fullname.$error" ng-show="telephoneForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newTelephone">\n                <div ng-messages="telephoneForm.name.$error" ng-show="telephoneForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.telephone.email" required>\n                <div ng-messages="telephoneForm.email.$error" ng-show="telephoneForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTelephone">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="telephoneForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTelephone  && vm.newTelephone">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.telephone.description">\n                <div ng-messages="telephoneForm.description.$error" ng-show="telephoneForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newTelephone" class="md-block">\n                <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.telephone.internal" required ng-disabled="!vm.newTelephone">\n                <div ng-messages="telephoneForm.internal.$error" ng-show="telephoneForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newTelephone" class="md-block">\n                <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n                    ADD TELEPHONE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n    <form name="telephoneForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="telephoneForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.telephone.userpic" class="telephone-image" hide-xs>\n                    <img ng-src="api/users/{{vm.telephone.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.telephone.userpic" class="telephone-image" hide-xs>\n                    <img ng-src="assets/images/business/telephones.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.telephone.id}} {{vm.telephone.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n                        </div>\n                        <form name="accountForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n                                <input type="text" name="fullname" ng-model="vm.telephone.fullname" required autofocus>\n                                <div ng-messages="accountForm.fullname.$error" ng-show="accountForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="accountForm.name.$error" ng-show="accountForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.telephone.email" required>\n                                <div ng-messages="accountForm.email.$error" ng-show="accountForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.telephone.description">\n                                <div ng-messages="accountForm.description.$error" ng-show="accountForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.telephone.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.telephone.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.telephone.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.telephone.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.telephone.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.telephone.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-telephones-count">\n                    <span>{{vm.selectedTelephones.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TELEPHONES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" filename="telephones.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="TELEPHONES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TELEPHONE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.telephones.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n                                <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n                                <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(telephone, $event)" translate="STAFF.EDIT_TELEPHONE">\n                                                    Edit Telephone\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(telephone, $event)" translate="STAFF.DELETE_TELEPHONE">\n                                                    Delete Telephone\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TELEPHONE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TELEPHONE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n    <form name="userForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.ROLE">Role</label>\n                <md-select ng-model="vm.user.role" required autofocus ng-disabled="!vm.newUser">\n                    <md-option ng-value="\'admin\'">Admin</md-option>\n                    <md-option ng-value="\'user\'">User</md-option>\n                </md-select>\n                <div ng-messages="userForm.role.$error" ng-show="userForm.role.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.FULLNAME">Fullname</label>\n                <input type="text" name="fullname" ng-model="vm.user.fullname" required>\n                <div ng-messages="userForm.fullname.$error" ng-show="userForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newUser">\n                <div ng-messages="userForm.name.$error" ng-show="userForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.user.email" required>\n                <div ng-messages="userForm.email.$error" ng-show="userForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newUser">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="userForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newUser  && vm.newUser">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.user.description">\n                <div ng-messages="userForm.description.$error" ng-show="userForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newUser" class="md-block">\n                <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.user.internal" required ng-disabled="!vm.newUser">\n                <div ng-messages="userForm.internal.$error" ng-show="userForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newUser" class="md-block">\n                <md-switch ng-model="vm.user.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n                    ADD USER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n    <form name="userForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="userForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/queueadd/queueadd.html",'<md-dialog class="user-dialog" aria-label="user">\n    <form name="userForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>{{vm.title}}</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin" ng-if="vm.user.role === \'agent\'">\n                <label translate="STAFF.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="userForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.user.userpic" class="user-image" hide-xs>\n                    <img ng-src="api/users/{{vm.user.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.user.userpic" class="user-image" hide-xs>\n                    <img ng-src="assets/images/business/users.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.user.id}} {{vm.user.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak ng-if="vm.user.role !== \'admin\'">\n            <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="false">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-eye" aria-label="queueadd"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'voice\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Voice</md-tooltip>\n                        <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n                    </md-button>\n                    <md-button aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'chat\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Chat</md-tooltip>\n                        <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n                    </md-button>\n                    <md-button aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'mail\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Mail</md-tooltip>\n                        <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n                    </md-button>\n                    <md-button aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'sms\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Sms</md-tooltip>\n                        <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n                    </md-button>\n                    <md-button aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'openchannel\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Openchannel</md-tooltip>\n                        <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n                    </md-button>\n                    <md-button aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'fax\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Fax</md-tooltip>\n                        <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n                    </md-button>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n                        </div>\n                        <form name="personal_infoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ROLE">Role</label>\n                                <md-select ng-model="vm.user.role" required autofocus ng-disabled="true">\n                                    <md-option ng-value="\'admin\'">Admin</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                </md-select>\n                                <div ng-messages="personal_infoForm.role.$error" ng-show="personal_infoForm.role.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FULLNAME">Fullname</label>\n                                <input type="text" name="fullname" ng-model="vm.user.fullname" required>\n                                <div ng-messages="personal_infoForm.fullname.$error" ng-show="personal_infoForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="personal_infoForm.name.$error" ng-show="personal_infoForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.user.email" required>\n                                <div ng-messages="personal_infoForm.email.$error" ng-show="personal_infoForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.user.description">\n                                <div ng-messages="personal_infoForm.description.$error" ng-show="personal_infoForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n                        </div>\n                        <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                            <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()"\n                                flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                                    <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                                </div>\n\n                                <div class="upload-button" layout="column" layout-align="center center">\n                                    <md-button class="md-accent md-raised" flow-btn>\n                                        Upload\n                                    </md-button>\n                                    <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                                </div>\n\n                                <div layout="row" layout-align="start start" layout-wrap>\n                                    <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n                                        <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                            <div class="overlay" layout="column" layout-align="center center">\n                                                <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n                                                </md-progress-linear>\n                                            </div>\n                                            <img class="media" flow-img="change_avatarimage.file">\n                                        </div>\n\n                                        <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                            <img class="media" ng-src="{{change_avatarimage.url}}">\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.user.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.user.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.user.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.user.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.user.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.user.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n                        </div>\n                        <div ng-controller="UserPermissionsController as vm_pc" ng-init="vm_pc.init(vm.user)" class="user-detail-form-container">\n                            <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.user.role !== \'admin\'"></md-list>\n\n                            \x3c!-- Nested navigation template --\x3e\n                            <script type="text/ng-template" id="permission-nested.html">\n                                <md-list-item>\n                                    <md-icon md-font-icon="{{father.icon}}"></md-icon>\n                                    <p translate="{{father.translate}}">{{ father.title }}</p>\n                                    <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.user.permissions.includes(father.id)"></md-switch>\n                                </md-list-item>\n\n                                <md-divider></md-divider>\n\n                                <md-list>\n                                    <md-list-item ng-repeat="child in father.children">\n                                        <md-switch class="md-secondary" ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.user.permissions.includes(child.id)"></md-switch>\n                                        <p translate="{{child.translate}}">{{ child.title }}</p>\n                                    </md-list-item>\n                                </md-list>\n                            <\/script>\n                            \x3c!-- / Nested navigation template --\x3e\n\n                            <span ng-if="vm_pc.user.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.USERS">Users</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-users-count">\n                    <span>{{vm.selectedUsers.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="USERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" filename="users.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedUsers($event)" aria-label="delete selected" translate translate-attr-label="USERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- USER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.users.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n                                <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n                                <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(user, $event)" translate="STAFF.EDIT_USER">\n                                                    Edit User\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(user, $event)" translate="STAFF.DELETE_USER">\n                                                    Delete User\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / USER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD USER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-cannedAnswers-count">\n                    <span>{{vm.selectedCannedAnswers.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CANNEDANSWERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" filename="cannedAnswers.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CANNEDANSWERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CANNEDANSWER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n                                <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n                                <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n                                <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(cannedAnswer, $event)" translate="TOOLS.EDIT_CANNEDANSWER">\n                                                    Edit CannedAnswer\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event)" translate="TOOLS.DELETE_CANNEDANSWER">\n                                                    Delete CannedAnswer\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CANNEDANSWER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n    <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.KEY">Key</label>\n                <input type="text" name="key" ng-model="vm.cannedAnswer.key" required autofocus>\n                <div ng-messages="cannedAnswerForm.key.$error" ng-show="cannedAnswerForm.key.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <textarea ng-model="vm.cannedAnswer.value" md-maxlength="150" max-rows="5" required></textarea>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n                <div ng-messages="cannedAnswerForm.description.$error" ng-show="cannedAnswerForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n                    ADD CANNEDANSWER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n    <form name="customDashboardForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.customDashboard.name" required autofocus>\n                <div ng-messages="customDashboardForm.name.$error" ng-show="customDashboardForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.POLLING_INTERVAL">Polling_Interval</label>\n                <input type="number" name="interval" ng-model="vm.customDashboard.interval" min="5" required>\n                <div ng-messages="customDashboardForm.interval.$error" ng-show="customDashboardForm.interval.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.POLLING_INTERVAL_REQUIRED">Polling_Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.customDashboard.description">\n                <div ng-messages="customDashboardForm.description.$error" ng-show="customDashboardForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n                    ADD CUSTOMDASHBOARD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-customDashboards-count">\n                    <span>{{vm.selectedCustomDashboards.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CUSTOMDASHBOARDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" filename="customDashboards.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="CUSTOMDASHBOARDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="interval">{{ \'TOOLS.POLLING_INTERVAL\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.customDashboards.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n                                <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n                                <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="interval ">{{customDashboard.interval}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(customDashboard, $event)" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n                                                    Edit CustomDashboard\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(customDashboard, $event)" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n                                                    Delete CustomDashboard\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.dashboarditem.type" autofocus>\n\n                    <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }}</md-option>\n\n                    <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }}</md-option>\n\n                    <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="dashboarditemForm.type.$error" ng-show="dashboarditemForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n                    ADD DASHBOARDITEM\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.customDashboard.userpic" class="customDashboard-image" hide-xs>\n                    <img ng-src="api/users/{{vm.customDashboard.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.customDashboard.userpic" class="customDashboard-image" hide-xs>\n                    <img ng-src="assets/images/business/customDashboards.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.customDashboard.id}} {{vm.customDashboard.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.customDashboard.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.POLLING_INTERVAL">Polling_Interval</label>\n                                <input type="number" name="interval" ng-model="vm.customDashboard.interval" min="5" required>\n                                <div ng-messages="generalForm.interval.$error" ng-show="generalForm.interval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.POLLING_INTERVAL_REQUIRED">Polling_Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.customDashboard.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="CustomDashboardCustomDashboardController as vm_cd" ng-init="vm_cd.init(vm.customDashboard)" class="customDashboard-detail-form-container">\n                            <div layout="row" layout-align="end center">\n                                <md-button class="md-icon-button" ng-click="vm_cd.addItem()">\n                                    <md-icon md-font-icon="icon-plus"></md-icon>\n                                </md-button>\n                            </div>\n                            <div gridster="vm_cd.gridOptions">\n                                <div gridster-item="item" ng-repeat="item in vm_cd.items.rows" ng-switch="item.type">\n                                    <ms-dash-counter ng-switch-when="counter" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-counter>\n                                    \x3c!-- <ms-dash-table ng-switch-when="table" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-table> --\x3e\n                                    <ms-dash-iframe ng-switch-when="iframe" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-iframe>\n                                    <ms-dash-clock ng-switch-when="clock" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-clock>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.interval.name" required autofocus>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.interval.description">\n                <div ng-messages="intervalForm.description.$error" ng-show="intervalForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" md-autofocus required>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.interval.name" required autofocus>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.interval.userpic" class="interval-image" hide-xs>\n                    <img ng-src="api/users/{{vm.interval.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.interval.userpic" class="interval-image" hide-xs>\n                    <img ng-src="assets/images/business/intervals.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.interval.id}} {{vm.interval.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.interval.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.interval.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.INTERVALS">INTERVALS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="INTERVALS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n                                        <tr md-row>\n                                            <th md-column width="10px"></th>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="interval">{{ \'TOOLS.INTERVAL\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body ng-sortable="vm_dc.sortableTable">\n                                        <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n                                            <td md-cell>\n                                                <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                            </td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.interval}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n                                                                Edit Interval\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n                                                                Delete Interval\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-intervals-count">\n                    <span>{{vm.selectedIntervals.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTERVALS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" filename="intervals.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="INTERVALS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INTERVAL TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.intervals.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n                                <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n                                <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(interval, $event)" translate="TOOLS.EDIT_INTERVAL">\n                                                    Edit Interval\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n                                                    Delete Interval\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INTERVAL TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INTERVAL BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n    <form name="pauseForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.pause.name" required autofocus>\n                <div ng-messages="pauseForm.name.$error" ng-show="pauseForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.pause.description">\n                <div ng-messages="pauseForm.description.$error" ng-show="pauseForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n                    ADD PAUSE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-pauses-count">\n                    <span>{{vm.selectedPauses.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="PAUSES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" filename="pauses.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="PAUSES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PAUSE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.pauses.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n                                <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n                                <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(pause, $event)" translate="TOOLS.EDIT_PAUSE">\n                                                    Edit Pause\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(pause, $event)" translate="TOOLS.DELETE_PAUSE">\n                                                    Delete Pause\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PAUSE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PAUSE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n    <form name="scheduleForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.schedule.name" required autofocus>\n                <div ng-messages="scheduleForm.name.$error" ng-show="scheduleForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.schedule.type">\n                    <md-option ng-value="\'report\'">Report</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.type.$error" ng-show="scheduleForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.REPORTTYPE">ReportType</label>\n                <md-select ng-model="vm.schedule.reportType" required>\n                    <md-option ng-value="\'default\'">Default</md-option>\n                    <md-option ng-value="\'custom\'">Custom</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportType.$error" ng-show="scheduleForm.reportType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.reportType == \'default\'" class="md-block">\n                <label translate="TOOLS.REPORT">Report</label>\n                <md-select ng-model="vm.schedule.reportId" required>\n                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportId.$error" ng-show="scheduleForm.reportId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.reportType == \'custom\'" class="md-block">\n                <label translate="TOOLS.REPORT">Report</label>\n                <md-select ng-model="vm.schedule.reportId" required>\n                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportId.$error" ng-show="scheduleForm.reportId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OUTPUT">Output</label>\n                <md-select ng-model="vm.schedule.reportOutput" required>\n                    <md-option ng-value="\'CSV\'">CSV</md-option>\n                    <md-option ng-value="\'PDF\'">PDF</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportOutput.$error" ng-show="scheduleForm.reportOutput.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.EXECUTEON">ExecuteOn</label>\n                <md-select ng-model="vm.schedule.cronType" required>\n\n                    <md-option ng-value="\'currentDay\'"> {{ \'TOOLS.CURRENTDAY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'daily\'"> {{ \'TOOLS.DAILY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'weekly\'"> {{ \'TOOLS.WEEKLY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'monthly\'"> {{ \'TOOLS.MONTHLY\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.cronType.$error" ng-show="scheduleForm.cronType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n                <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>\n                <div ng-messages="scheduleForm.validityStart.$error" ng-show="scheduleForm.validityStart.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n                <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>\n                <div ng-messages="scheduleForm.validityEnd.$error" ng-show="scheduleForm.validityEnd.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>\n                <md-select ng-model="vm.schedule.cron" required>\n\n                    <md-option ng-value="\'*/15 * * * *\'"> {{ \'TOOLS.15MIN\' | translate }}</md-option>\n\n                    <md-option ng-value="\'*/30 * * * *\'"> {{ \'TOOLS.30MIN\' | translate }}</md-option>\n\n                    <md-option ng-value="\'0 * * * *\'"> {{ \'TOOLS.1H\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.cron.$error" ng-show="scheduleForm.cron.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'weekly\'" class="md-block">\n                <label translate="TOOLS.WEEKDAYS">WeekDays</label>\n                <md-select ng-model="vm.schedule.weekDays" required multiple>\n\n                    <md-option ng-value="\'monday\'"> {{ \'TOOLS.MON\' | translate }}</md-option>\n\n                    <md-option ng-value="\'tuesday\'"> {{ \'TOOLS.TUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'wednesday\'"> {{ \'TOOLS.WED\' | translate }}</md-option>\n\n                    <md-option ng-value="\'thursday\'"> {{ \'TOOLS.THU\' | translate }}</md-option>\n\n                    <md-option ng-value="\'friday\'"> {{ \'TOOLS.FRI\' | translate }}</md-option>\n\n                    <md-option ng-value="\'saturday\'"> {{ \'TOOLS.SAT\' | translate }}</md-option>\n\n                    <md-option ng-value="\'sunday\'"> {{ \'TOOLS.SUN\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.weekDays.$error" ng-show="scheduleForm.weekDays.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'monthly\'" class="md-block">\n                <label translate="TOOLS.MONTHDAY">MonthDay</label>\n                <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>\n                <div ng-messages="scheduleForm.monthDay.$error" ng-show="scheduleForm.monthDay.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                <label translate="TOOLS.HOUR">Hour</label>\n                <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>\n                <div ng-messages="scheduleForm.hour.$error" ng-show="scheduleForm.hour.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                <label translate="TOOLS.REPORTRANGE">ReportRange</label>\n                <md-select ng-model="vm.schedule.reportRange" required>\n\n                    <md-option ng-value="\'yesterday\'"> {{ \'TOOLS.PREVIOUS_DAY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'last7\'"> {{ \'TOOLS.LAST_SEVEN_DAYS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'last30\'"> {{ \'TOOLS.LAST_THIRTY_DAYS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastMonth\'"> {{ \'TOOLS.LAST_MONTH\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportRange.$error" ng-show="scheduleForm.reportRange.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.schedule.MailServerOutId" required>\n                    <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.MailServerOutId.$error" ng-show="scheduleForm.MailServerOutId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n                <input type="email" name="email" ng-model="vm.schedule.email" required>\n                <div ng-messages="scheduleForm.email.$error" ng-show="scheduleForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="" name="description" ng-model="vm.schedule.description">\n                <div ng-messages="scheduleForm.description.$error" ng-show="scheduleForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n                    ADD SCHEDULE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/edit/view.html",'<div id="tools-schedule" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-schedules-button md-icon-button" aria-label="Go to schedules" ng-click="vm.gotoScheduler()" translate translate-attr-aria-label="TOOLS.GO_TO_SCHEDULER">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.schedule.userpic" class="schedule-image" hide-xs>\n                    <img ng-src="api/users/{{vm.schedule.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.schedule.userpic" class="schedule-image" hide-xs>\n                    <img ng-src="assets/images/business/schedules.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.schedule.id}} {{vm.schedule.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.schedule.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="schedule-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.schedule.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="" name="description" ng-model="vm.schedule.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.CONFIGURATION">CONFIGURATION</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="schedule-detail-form-container configuration md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.CONFIGURATION">CONFIGURATION</div>\n                        </div>\n                        <form name="configurationForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.REPORTTYPE">ReportType</label>\n                                <md-select ng-model="vm.schedule.reportType" required autofocus>\n                                    <md-option ng-value="\'default\'">Default</md-option>\n                                    <md-option ng-value="\'custom\'">Custom</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportType.$error" ng-show="configurationForm.reportType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.reportType == \'default\'" class="md-block">\n                                <label translate="TOOLS.REPORT">Report</label>\n                                <md-select ng-model="vm.schedule.reportId" required>\n                                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.reportType == \'custom\'" class="md-block">\n                                <label translate="TOOLS.REPORT">Report</label>\n                                <md-select ng-model="vm.schedule.reportId" required>\n                                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OUTPUT">Output</label>\n                                <md-select ng-model="vm.schedule.reportOutput" required>\n                                    <md-option ng-value="\'CSV\'">CSV</md-option>\n                                    <md-option ng-value="\'PDF\'">PDF</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportOutput.$error" ng-show="configurationForm.reportOutput.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.EXECUTEON">ExecuteOn</label>\n                                <md-select ng-model="vm.schedule.cronType" required>\n\n                                    <md-option ng-value="\'currentDay\'"> {{ \'TOOLS.CURRENTDAY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'daily\'"> {{ \'TOOLS.DAILY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'weekly\'"> {{ \'TOOLS.WEEKLY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'monthly\'"> {{ \'TOOLS.MONTHLY\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.cronType.$error" ng-show="configurationForm.cronType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n                                <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>\n                                <div ng-messages="configurationForm.validityStart.$error" ng-show="configurationForm.validityStart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n                                <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>\n                                <div ng-messages="configurationForm.validityEnd.$error" ng-show="configurationForm.validityEnd.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>\n                                <md-select ng-model="vm.schedule.cron" required>\n\n                                    <md-option ng-value="\'*/15 * * * *\'"> {{ \'TOOLS.15MIN\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'*/30 * * * *\'"> {{ \'TOOLS.30MIN\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'0 * * * *\'"> {{ \'TOOLS.1H\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.cron.$error" ng-show="configurationForm.cron.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'weekly\'" class="md-block">\n                                <label translate="TOOLS.WEEKDAYS">WeekDays</label>\n                                <md-select ng-model="vm.schedule.weekDays" required multiple>\n\n                                    <md-option ng-value="\'monday\'"> {{ \'TOOLS.MON\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'tuesday\'"> {{ \'TOOLS.TUE\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'wednesday\'"> {{ \'TOOLS.WED\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'thursday\'"> {{ \'TOOLS.THU\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'friday\'"> {{ \'TOOLS.FRI\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'saturday\'"> {{ \'TOOLS.SAT\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'sunday\'"> {{ \'TOOLS.SUN\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.weekDays.$error" ng-show="configurationForm.weekDays.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'monthly\'" class="md-block">\n                                <label translate="TOOLS.MONTHDAY">MonthDay</label>\n                                <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>\n                                <div ng-messages="configurationForm.monthDay.$error" ng-show="configurationForm.monthDay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.HOUR">Hour</label>\n                                <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>\n                                <div ng-messages="configurationForm.hour.$error" ng-show="configurationForm.hour.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.REPORTRANGE">ReportRange</label>\n                                <md-select ng-model="vm.schedule.reportRange" required>\n\n                                    <md-option ng-value="\'yesterday\'"> {{ \'TOOLS.PREVIOUS_DAY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'last7\'"> {{ \'TOOLS.LAST_SEVEN_DAYS\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'last30\'"> {{ \'TOOLS.LAST_THIRTY_DAYS\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'lastMonth\'"> {{ \'TOOLS.LAST_MONTH\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportRange.$error" ng-show="configurationForm.reportRange.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                                <label translate="TOOLS.ACCOUNT">Account</label>\n                                <md-select ng-model="vm.schedule.MailServerOutId" required>\n                                    <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.MailServerOutId.$error" ng-show="configurationForm.MailServerOutId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                                <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n                                <input type="email" name="email" ng-model="vm.schedule.email" required>\n                                <div ng-messages="configurationForm.email.$error" ng-show="configurationForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-schedules-count">\n                    <span>{{vm.selectedScheduler.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SCHEDULER.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" filename="schedules.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="SCHEDULER.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SCHEDULE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="sendMail">{{ \'TOOLS.SENDMAIL\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.schedules.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n                                <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n                                <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="sendMail ">\n                                    <md-icon md-colors="{color: {{schedule.sendMail ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{schedule.sendMail ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(schedule, $event)" translate="TOOLS.EDIT_SCHEDULE">\n                                                    Edit Schedule\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(schedule, $event)" translate="TOOLS.DELETE_SCHEDULE">\n                                                    Delete Schedule\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SCHEDULE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SCHEDULE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n    <form name="soundForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.sound.name" required autofocus>\n                <div ng-messages="soundForm.name.$error" ng-show="soundForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.sound.description">\n                <div ng-messages="soundForm.description.$error" ng-show="soundForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n                    ADD SOUND\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-sounds-count">\n                    <span>{{vm.selectedSounds.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SOUNDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" filename="sounds.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="SOUNDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SOUND TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.sounds.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n                                <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n                                <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n                                <td md-cell class="audio "><audio controls><source ng-src="{{\'api/sounds/\' + sound.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(sound, $event)" translate="TOOLS.EDIT_SOUND">\n                                                    Edit Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(sound, $event)" translate="TOOLS.DOWNLOAD_SOUND">\n                                                    Download Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(sound, $event)" translate="TOOLS.DELETE_SOUND">\n                                                    Delete Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SOUND TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SOUND BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-sound-button" ng-click="vm.uploadSound($event)" aria-label="add sound" translate translate-attr-aria-label="SOUNDS.ADD_SOUND">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/uploadsound/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload Sound">\n    <form name="uploadForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div id="agent-image-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-complete="vm.uploadComplete()" flow-drop\n                flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                    <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n                </div>\n\n                <div class="upload-button" layout="column" layout-align="center center">\n                    <md-button class="md-accent md-raised" flow-btn>\n                        Upload\n                    </md-button>\n                    <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop audio here to upload. Only MP3, WAV, GSM - Max. 15MB</span>\n                </div>\n\n                <div layout="row" layout-align="start start" ng-repeat="sound in vm.uploadSounds" ng-switch="sound.type">\n                    <div class="sound-image" ng-switch-when="uploading" flex>\n                        <img class="media" src="assets/images/music-player/uploading.png">\n                        <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n                        <span class="text-truncate">{{sound.file.name}}</span>\n                    </div>\n                    <div class="sound-image" ng-switch-when="sound" flex>\n                        <img class="media" src="assets/images/music-player/success.png">\n                        <span class="text-truncate">{{sound.file.name}}</span>\n                    </div>\n                </div>\n\n\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center"></div>\n            <div layout="row">\n                <md-button ng-click="vm.closeDialog()" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n                    FINISH\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n    <form name="tagForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.tag.name" required autofocus>\n                <div ng-messages="tagForm.name.$error" ng-show="tagForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.tag.description">\n                <div ng-messages="tagForm.description.$error" ng-show="tagForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n                    ADD TAG\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-tags-count">\n                    <span>{{vm.selectedTags.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TAGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTags" filename="tags.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TAGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TAG TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.tags.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n                                <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n                                <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(tag, $event)" translate="TOOLS.EDIT_TAG">\n                                                    Edit Tag\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(tag, $event)" translate="TOOLS.DELETE_TAG">\n                                                    Delete Tag\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TAG TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TAG BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n    <form name="templateForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.template.name" required autofocus>\n                <div ng-messages="templateForm.name.$error" ng-show="templateForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.SUBJECT">Subject</label>\n                <input type="text" name="subject" ng-model="vm.template.subject">\n                <div ng-messages="templateForm.subject.$error" ng-show="templateForm.subject.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.SUBJECT_REQUIRED">Subject field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <text-angular ng-model="vm.template.html"></text-angular>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.template.description">\n                <div ng-messages="templateForm.description.$error" ng-show="templateForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n                    ADD TEMPLATE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-templates-count">\n                    <span>{{vm.selectedTemplates.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TEMPLATES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" filename="templates.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TEMPLATES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TEMPLATE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.templates.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n                                <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n                                <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(template, $event)" translate="TOOLS.EDIT_TEMPLATE">\n                                                    Edit Template\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(template, $event)" translate="TOOLS.DELETE_TEMPLATE">\n                                                    Delete Template\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TEMPLATE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TEMPLATE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n    <form name="triggerForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.trigger.name" required autofocus>\n                <div ng-messages="triggerForm.name.$error" ng-show="triggerForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n\n                    <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="triggerForm.channel.$error" ng-show="triggerForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.trigger.description">\n                <div ng-messages="triggerForm.description.$error" ng-show="triggerForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n                    ADD TRIGGER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n    <form name="actionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.ACTION">Action</label>\n                <md-select ng-model="vm.action.action" required autofocus>\n\n                    <md-option ng-value="\'contactManager\'"> {{ \'TOOLS.CONTACT_MANAGER\' | translate }}</md-option>\n\n                    <md-option ng-value="\'integration\'"> {{ \'TOOLS.INTEGRATIONS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTION_BAR\' | translate }}</md-option>\n\n                    <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }}</md-option>\n\n                    <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.action.$error" ng-show="actionForm.action.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'0\'">Web Popup</md-option>\n                    <md-option ng-value="\'1\'">Web Tab</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n                <label translate="TOOLS.LIST">List</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="data1.id" ng-repeat="data1 in vm.lists">{{ data1.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'GET\'">GET</md-option>\n                    <md-option ng-value="\'POST\'">POST</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n                <label translate="TOOLS.INTEGRATION">Integration</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'zendesk\'">Zendesk</md-option>\n                    <md-option ng-value="\'salesforce\'">Salesforce</md-option>\n                    <md-option ng-value="\'sugarcrm\'">SugarCRM</md-option>\n                    <md-option ng-value="\'freshdesk\'">Freshdesk</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'zendesk\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.zendeskAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'salesforce\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.salesforceAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'sugarcrm\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.sugarcrmAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'freshdesk\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.freshdeskAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'zendesk\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.zendeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'salesforce\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.salesforceConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'sugarcrm\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.sugarcrmConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'freshdesk\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.freshdeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'0\'">Popup</md-option>\n                    <md-option ng-value="\'1\'">URL</md-option>\n                    <md-option ng-value="\'2\'">Windows App</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n                <label translate="TOOLS.APPLICATION">Application</label>\n                <input type="text" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n                <label translate="TOOLS.ARGUMENTS">Arguments</label>\n                <input type="text" name="data3" ng-model="vm.action.data3">\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n                <label translate="TOOLS.TEMPLATE">Template</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n                <label translate="TOOLS.TEMPLATE">Template</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n                    ADD ACTION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n    <form name="allConditionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.FIELD">Field</label>\n                <md-select ng-model="vm.allCondition.field" required autofocus>\n\n                    <md-option ng-value="\'queue\'"> {{ \'TOOLS.QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastevent\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'routeId\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.field.$error" ng-show="allConditionForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OPERATOR">Operator</label>\n                <md-select ng-model="vm.allCondition.operator" required>\n\n                    <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.operator.$error" ng-show="allConditionForm.operator.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'queue\'" class="md-block">\n                <label translate="TOOLS.QUEUE">Queue</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="value.name" ng-repeat="value in vm.queues">{{ value.name }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'routeId\'" class="md-block">\n                <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="value.id" ng-repeat="value in vm.outboundRoutes">{{ value.exten }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="\'abandoned\'">Abandoned</md-option>\n                    <md-option ng-value="\'complete\'">Hangup</md-option>\n                    <md-option ng-value="\'rejected\'">Rejected</md-option>\n                    <md-option ng-value="\'called\'">Ringing</md-option>\n                    <md-option ng-value="\'connect\'">Up</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n                    ADD ALLCONDITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n    <form name="anyConditionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.FIELD">Field</label>\n                <md-select ng-model="vm.anyCondition.field" required autofocus>\n\n                    <md-option ng-value="\'queue\'"> {{ \'TOOLS.QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastevent\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'routeId\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.field.$error" ng-show="anyConditionForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OPERATOR">Operator</label>\n                <md-select ng-model="vm.anyCondition.operator" required>\n\n                    <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.operator.$error" ng-show="anyConditionForm.operator.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'queue\'" class="md-block">\n                <label translate="TOOLS.QUEUE">Queue</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="value.name" ng-repeat="value in vm.queues">{{ value.name }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'routeId\'" class="md-block">\n                <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="value.id" ng-repeat="value in vm.outboundRoutes">{{ value.exten }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="\'abandoned\'">Abandoned</md-option>\n                    <md-option ng-value="\'complete\'">Hangup</md-option>\n                    <md-option ng-value="\'rejected\'">Rejected</md-option>\n                    <md-option ng-value="\'called\'">Ringing</md-option>\n                    <md-option ng-value="\'connect\'">Up</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n                    ADD ANYCONDITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.trigger.userpic" class="trigger-image" hide-xs>\n                    <img ng-src="api/users/{{vm.trigger.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.trigger.userpic" class="trigger-image" hide-xs>\n                    <img ng-src="assets/images/business/triggers.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.trigger.id}} {{vm.trigger.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trigger.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.trigger.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CHANNEL">Channel</label>\n                                <md-select ng-model="vm.trigger.channel" required ng-disabled="true">\n\n                                    <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.channel.$error" ng-show="generalForm.channel.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.trigger.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerAllConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">AllConditions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerAllConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerAllConditions.length}} {{vm_dc.selectedTriggerAllConditions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerAllConditions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerAllConditions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="field">{{ \'TOOLS.FIELD\' | translate }}</th>\n                                            <th md-column md-order-by="operator">{{ \'TOOLS.OPERATOR\' | translate }}</th>\n                                            <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.triggerAllConditions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{allCondition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayfield[allCondition.field].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayoperator[allCondition.operator].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'queue\'" md-cell>{{ value = vm_dc.queues[allCondition.value]; value.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'routeId\'" md-cell>{{ value = vm_dc.outboundRoutes[allCondition.value]; value.exten }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'lastevent\'" md-cell>{{ vm_dc.arrayvalue[allCondition.value].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{allCondition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n                                                                Edit AllCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n                                                                Delete AllCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerAllConditions.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No allcondition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerAllConditions.count}}" md-on-paginate="vm_dc.getTriggerAllConditions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                    <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerAnyConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerAnyConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerAnyConditions.length}} {{vm_dc.selectedTriggerAnyConditions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerAnyConditions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerAnyConditions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="field">{{ \'TOOLS.FIELD\' | translate }}</th>\n                                            <th md-column md-order-by="operator">{{ \'TOOLS.OPERATOR\' | translate }}</th>\n                                            <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.triggerAnyConditions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{anyCondition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayfield[anyCondition.field].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayoperator[anyCondition.operator].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'queue\'" md-cell>{{ value = vm_dc.queues[anyCondition.value]; value.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'routeId\'" md-cell>{{ value = vm_dc.outboundRoutes[anyCondition.value]; value.exten }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'lastevent\'" md-cell>{{ vm_dc.arrayvalue[anyCondition.value].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{anyCondition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n                                                                Edit AnyCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n                                                                Delete AnyCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerAnyConditions.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerAnyConditions.count}}" md-on-paginate="vm_dc.getTriggerAnyConditions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                    <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerActions.length}} {{vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="action">{{ \'TOOLS.ACTION\' | translate }}</th>\n                                            <th md-column md-order-by="data1">{{ \'TOOLS.TYPE\' | translate }}</th>\n                                            <th md-column md-order-by="data2">{{ \'TOOLS.INFO\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{action.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayaction[action.action].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>{{ vm_dc.browserValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>{{ data1 = vm_dc.lists[action.data1]; data1.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>{{ vm_dc.urlForwardValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>{{ vm_dc.integrationValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>{{ data2 = vm_dc.zendeskAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>{{ data2 = vm_dc.salesforceAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>{{ data2 = vm_dc.sugarcrmAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>{{ data2 = vm_dc.freshdeskAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>{{ vm_dc.motionbarValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'1\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'2\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'0\'" md-cell>{{ data2 = vm_dc.templates[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 == \'0\'" md-cell>{{ data2 = vm_dc.templates[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 == \'1\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{action.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\n                                                                Edit Action\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\n                                                                Delete Action\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\n                                            <td md-cell colspan="26">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ACTION_AVAILABLE">No action available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerActions.count}}" md-on-paginate="vm_dc.getTriggerActions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-triggers-count">\n                    <span>{{vm.selectedTriggers.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TRIGGERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" filename="triggers.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TRIGGER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n                                <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.triggers.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n                                <td md-cell ng-if="trigger.userpic"><img class="avatar" alt="{{trigger.name}}" ng-src="api/users/{{trigger.id}}/avatar" /></td>\n                                <td md-cell ng-if="!trigger.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trigger.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{trigger.id}}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{trigger.name}}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">{{ \'TOOLS.\' + vm.arraychannel[trigger.channel].option | uppercase | translate }}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n                                    <md-icon md-colors="{color: {{trigger.status ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{trigger.status ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">{{trigger.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(trigger, $event)" translate="TOOLS.EDIT_TRIGGER">\n                                                    Edit Trigger\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n                                                    Delete Trigger\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.triggers.count}}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TRIGGER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TRIGGER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n    <form name="trunkForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newTrunk">\n                <div ng-messages="trunkForm.name.$error" ng-show="trunkForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.HOST">host</label>\n                <input type="text" name="host" ng-model="vm.trunk.host" required>\n                <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n                <div ng-messages="trunkForm.host.$error" ng-show="trunkForm.host.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.SECRET">secret</label>\n                <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                <div ng-messages="trunkForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTrunk ">\n                <label translate="TOOLS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="secret" name="confirmPassword" ng-model="confirmPassword">\n                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                <div ng-messages="trunkForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="TOOLS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n                <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" required>\n                <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n                <div ng-messages="trunkForm.defaultuser.$error" ng-show="trunkForm.defaultuser.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.REGISTRY">registry</label>\n                <input type="text" name="registry" ng-model="vm.trunk.registry">\n                <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n                <div ng-messages="trunkForm.registry.$error" ng-show="trunkForm.registry.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.trunk.description">\n                <div ng-messages="trunkForm.description.$error" ng-show="trunkForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n                    ADD TRUNK\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.trunk.userpic" class="trunk-image" hide-xs>\n                    <img ng-src="api/users/{{vm.trunk.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.trunk.userpic" class="trunk-image" hide-xs>\n                    <img ng-src="assets/images/business/trunks.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.trunk.id}} {{vm.trunk.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.HOST">host</label>\n                                <input type="text" name="host" ng-model="vm.trunk.host" required>\n                                <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n                                <div ng-messages="generalForm.host.$error" ng-show="generalForm.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.SECRET">secret</label>\n                                <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n                                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newTrunk ">\n                                <label translate="TOOLS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="secret" name="confirmPassword" ng-model="confirmPassword">\n                                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="TOOLS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n                                <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" required>\n                                <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n                                <div ng-messages="generalForm.defaultuser.$error" ng-show="generalForm.defaultuser.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CONTEXT">context</label>\n                                <md-select ng-model="vm.trunk.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALLERID">callerid</label>\n                                <input type="text" name="callerid" ng-model="vm.trunk.callerid" required>\n                                <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TYPE">Type</label>\n                                <md-select ng-model="vm.trunk.type" required>\n                                    <md-option ng-value="\'friend\'">Friend</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                    <md-option ng-value="\'peer\'">Peer</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n                                <md-select ng-model="vm.trunk.dtmfmode" required>\n                                    <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n                                    <md-option ng-value="\'info\'">info</md-option>\n                                    <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n                                    <md-option ng-value="\'inband\'">inband</md-option>\n                                    <md-option ng-value="\'auto\'">auto</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n                                <div ng-messages="generalForm.dtmfmode.$error" ng-show="generalForm.dtmfmode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAT">nat</label>\n                                <md-select ng-model="vm.trunk.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.QUALIFY">qualify</label>\n                                <md-select ng-model="vm.trunk.qualify" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'user\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n                                <div ng-messages="generalForm.qualify.$error" ng-show="generalForm.qualify.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.trunk.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g723\'">g723</md-option>\n                                    <md-option ng-value="\'g726\'">g726</md-option>\n                                    <md-option ng-value="\'g722\'">g722</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.INSECURE">insecure</label>\n                                <md-select ng-model="vm.trunk.insecure" required multiple>\n                                    <md-option ng-value="\'port\'">port</md-option>\n                                    <md-option ng-value="\'invite\'">invite</md-option>\n                                    <md-option ng-value="\'very\'">very</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n                                <div ng-messages="generalForm.insecure.$error" ng-show="generalForm.insecure.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n                                <input type="number" name="call_limit" ng-model="vm.trunk.call_limit">\n                                <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n                                <div ng-messages="generalForm.call_limit.$error" ng-show="generalForm.call_limit.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.trunk.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.REGISTRY">registry</label>\n                                <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus>\n                                <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n                                <div ng-messages="advancedForm.registry.$error" ng-show="advancedForm.registry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n                                <md-select ng-model="vm.trunk.directmedia" required>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'nonat\'">nonat</md-option>\n                                    <md-option ng-value="\'update\'">update</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n                                <div ng-messages="advancedForm.directmedia.$error" ng-show="advancedForm.directmedia.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n                                <md-select ng-model="vm.trunk.callcounter" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n                                <div ng-messages="advancedForm.callcounter.$error" ng-show="advancedForm.callcounter.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n                                <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain">\n                                <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n                                <div ng-messages="advancedForm.fromdomain.$error" ng-show="advancedForm.fromdomain.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.FROMUSER">fromuser</label>\n                                <input type="text" name="fromuser" ng-model="vm.trunk.fromuser">\n                                <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n                                <div ng-messages="advancedForm.fromuser.$error" ng-show="advancedForm.fromuser.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n                                <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy">\n                                <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n                                <div ng-messages="advancedForm.outboundproxy.$error" ng-show="advancedForm.outboundproxy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n                                <md-select ng-model="vm.trunk.usereqphone" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n                                <div ng-messages="advancedForm.usereqphone.$error" ng-show="advancedForm.usereqphone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n                                <md-select ng-model="vm.trunk.trustrpid" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n                                <div ng-messages="advancedForm.trustrpid.$error" ng-show="advancedForm.trustrpid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n                                <md-select ng-model="vm.trunk.sendrpid" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n                                <div ng-messages="advancedForm.sendrpid.$error" ng-show="advancedForm.sendrpid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ENCRYPTION">encryption</label>\n                                <md-select ng-model="vm.trunk.encryption" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n                                <div ng-messages="advancedForm.encryption.$error" ng-show="advancedForm.encryption.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.PORT">port</label>\n                                <input type="number" name="port" ng-model="vm.trunk.port">\n                                <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n                                <div ng-messages="advancedForm.port.$error" ng-show="advancedForm.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.trunk.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                    <md-option ng-value="\'tls\'">tls</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="advancedForm.transport.$error" ng-show="advancedForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n                        </div>\n                        <form name="otherFieldsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n                                <textarea ng-model="vm.trunk.otherFields" md-maxlength="150" max-rows="5" autofocus></textarea>\n                                <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-trunks-count">\n                    <span>{{vm.selectedTrunks.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TRUNKS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" filename="trunks.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TRUNKS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TRUNK TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n                                <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.trunks.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n                                <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n                                <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(trunk, $event)" translate="TOOLS.EDIT_TRUNK">\n                                                    Edit Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(trunk, $event)" translate="TOOLS.DELETE_TRUNK">\n                                                    Delete Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TRUNK TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TRUNK BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n    <form name="variableForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.variable.name" required autofocus>\n                <div ng-messages="variableForm.name.$error" ng-show="variableForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.variable.description">\n                <div ng-messages="variableForm.description.$error" ng-show="variableForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n                    ADD VARIABLE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-variables-count">\n                    <span>{{vm.selectedVariables.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VARIABLES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" filename="variables.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="VARIABLES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VARIABLE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.variables.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n                                <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n                                <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(variable, $event)" translate="TOOLS.EDIT_VARIABLE">\n                                                    Edit Variable\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(variable, $event)" translate="TOOLS.DELETE_VARIABLE">\n                                                    Delete Variable\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VARIABLE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VARIABLE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chanSpies-count">\n                    <span>{{vm.selectedChanSpies.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHANSPIES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" filename="chanSpies.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="CHANSPIES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHANSPY TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chanSpies.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n                                <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chanSpy, $event)" translate="VOICE.EDIT_CHANSPY">\n                                                    Edit chanSpy\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chanSpy, $event)" translate="VOICE.DELETE_CHANSPY">\n                                                    Delete chanSpy\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHANSPY TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHANSPY BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n    <form name="chanSpyForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chanSpy.name" required autofocus>\n                <div ng-messages="chanSpyForm.name.$error" ng-show="chanSpyForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PREFIX">Prefix</label>\n                <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required>\n                <div ng-messages="chanSpyForm.prefix.$error" ng-show="chanSpyForm.prefix.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <md-select ng-model="vm.chanSpy.options" required multiple>\n                    <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n                    <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n                    <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n                    <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n                    <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n                    <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n                    <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n                    <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n                    <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n                </md-select>\n                <div ng-messages="chanSpyForm.options.$error" ng-show="chanSpyForm.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chanSpy.description">\n                <div ng-messages="chanSpyForm.description.$error" ng-show="chanSpyForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n                    ADD CHANSPY\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/chanSpies/edit/view.html",'<div id="voice-chanSpy" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chanSpies-button md-icon-button" aria-label="Go to chanSpies" ng-click="vm.gotoChanSpies()" translate translate-attr-aria-label="VOICE.GO_TO_CHANSPIES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.chanSpy.userpic" class="chanSpy-image" hide-xs>\n                    <img ng-src="api/users/{{vm.chanSpy.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.chanSpy.userpic" class="chanSpy-image" hide-xs>\n                    <img ng-src="assets/images/business/chanSpies.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chanSpy.id}} {{vm.chanSpy.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.chanSpy.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chanSpy-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chanSpy.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PREFIX">Prefix</label>\n                                <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required>\n                                <div ng-messages="generalForm.prefix.$error" ng-show="generalForm.prefix.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.OPTIONS">Options</label>\n                                <md-select ng-model="vm.chanSpy.options" required multiple>\n                                    <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n                                    <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n                                    <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n                                    <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n                                    <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n                                    <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n                                    <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n                                    <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n                                    <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.options.$error" ng-show="generalForm.options.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n                                <label translate="VOICE.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newchanSpy  && vm.chanSpy.auth">\n                                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n                                <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n                                <md-select ng-model="vm.chanSpy.recordingFormat" required>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.recordingFormat.$error" ng-show="generalForm.recordingFormat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chanSpy.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-contexts-count">\n                    <span>{{vm.selectedContexts.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTEXTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" filename="contexts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="CONTEXTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CONTEXT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.contexts.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n                                <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n                                <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(context, $event)" translate="VOICE.EDIT_CONTEXT">\n                                                    Edit Context\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(context, $event)" translate="VOICE.DELETE_CONTEXT">\n                                                    Delete Context\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CONTEXT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CONTEXT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n    <form name="contextForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.context.name" required autofocus>\n                <div ng-messages="contextForm.name.$error" ng-show="contextForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.context.description">\n                <div ng-messages="contextForm.description.$error" ng-show="contextForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n                    ADD CONTEXT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/create/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.inboundroute.exten" required autofocus>\n                <div ng-messages="inboundrouteForm.exten.$error" ng-show="inboundrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.inboundroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteForm.context.$error" ng-show="inboundrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.inboundroute.description">\n                <div ng-messages="inboundrouteForm.description.$error" ng-show="inboundrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n                    ADD INBOUNDROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/agi/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.project.$error" ng-show="inboundrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/custom/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="inboundrouteFormApp.app.$error" ng-show="inboundrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/dial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="inboundrouteFormApp.tech.$error" ng-show="inboundrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.trunk.$error" ng-show="inboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone" required>\n                <div ng-messages="inboundrouteFormApp.phone.$error" ng-show="inboundrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/goto/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.context.$error" ng-show="inboundrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="inboundrouteFormApp.extension.$error" ng-show="inboundrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="inboundrouteFormApp.priority.$error" ng-show="inboundrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/hangup/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.user.$error" ng-show="inboundrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/playback/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/queue/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.queue.$error" ng-show="inboundrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="inboundrouteFormApp.URL.$error" ng-show="inboundrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.sound.$error" ng-show="inboundrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="inboundrouteFormApp.agi.$error" ng-show="inboundrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="inboundrouteFormApp.macro.$error" ng-show="inboundrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="inboundrouteFormApp.gosub.$error" ng-show="inboundrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="inboundrouteFormApp.rule.$error" ng-show="inboundrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="inboundrouteFormApp.position.$error" ng-show="inboundrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.multipleUsers.$error" ng-show="inboundrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/set/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="inboundrouteFormApp.name.$error" ng-show="inboundrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="inboundrouteFormApp.value.$error" ng-show="inboundrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.voiceMail.$error" ng-show="inboundrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/view.html",'<div id="voice-inboundroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-inboundroutes-button md-icon-button" aria-label="Go to inboundroutes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.inboundroute.userpic" class="inboundroute-image" hide-xs>\n                    <img ng-src="api/users/{{vm.inboundroute.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.inboundroute.userpic" class="inboundroute-image" hide-xs>\n                    <img ng-src="assets/images/business/inboundroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.inboundroute.id}} {{vm.inboundroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="inboundroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.inboundroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.inboundroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.inboundroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="inboundroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="InboundRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.inboundroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedInboundRouteApps.length}} {{vm_ac.selectedInboundRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInboundRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedInboundRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.inboundrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editInboundRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editInboundRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInboundRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.inboundrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/inboundroutes/inboundroutes.html",'<div id="inboundroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-inboundroutes-count">\n                    <span>{{vm.selectedInboundRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INBOUNDROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllInboundRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectInboundRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" filename="inboundroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="INBOUNDROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INBOUNDROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.inboundroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="inboundroute" md-select-id="id" ng-repeat="inboundroute in vm.inboundroutes.rows">\n                                <td md-cell ng-if="inboundroute.userpic"><img class="avatar" alt="{{inboundroute.name}}" ng-src="api/users/{{inboundroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!inboundroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{inboundroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="id ">{{inboundroute.id}}</td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="exten ">{{inboundroute.exten}}</td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="description ">{{inboundroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(inboundroute, $event)" translate="VOICE.EDIT_INBOUNDROUTE">\n                                                    Edit InboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(inboundroute, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n                                                    Delete InboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.inboundroutes.count}}" md-on-paginate="vm.getInboundRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INBOUNDROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INBOUNDROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-inboundroute-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inboundroute" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INBOUNDROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalroutes/create/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>\n                <div ng-messages="internalrouteForm.exten.$error" ng-show="internalrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.internalroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteForm.context.$error" ng-show="internalrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.internalroute.description">\n                <div ng-messages="internalrouteForm.description.$error" ng-show="internalrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n                    ADD INTERNALROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/agi/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.project.$error" ng-show="internalrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/custom/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="internalrouteFormApp.app.$error" ng-show="internalrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/dial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="internalrouteFormApp.tech.$error" ng-show="internalrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.trunk.$error" ng-show="internalrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone">\n                <div ng-messages="internalrouteFormApp.phone.$error" ng-show="internalrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/goto/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.context.$error" ng-show="internalrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="internalrouteFormApp.extension.$error" ng-show="internalrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="internalrouteFormApp.priority.$error" ng-show="internalrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/hangup/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.user.$error" ng-show="internalrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/playback/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/queue/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.queue.$error" ng-show="internalrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="internalrouteFormApp.URL.$error" ng-show="internalrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.sound.$error" ng-show="internalrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="internalrouteFormApp.agi.$error" ng-show="internalrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="internalrouteFormApp.macro.$error" ng-show="internalrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="internalrouteFormApp.gosub.$error" ng-show="internalrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="internalrouteFormApp.rule.$error" ng-show="internalrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="internalrouteFormApp.position.$error" ng-show="internalrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.multipleUsers.$error" ng-show="internalrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/set/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="internalrouteFormApp.name.$error" ng-show="internalrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="internalrouteFormApp.value.$error" ng-show="internalrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.voiceMail.$error" ng-show="internalrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/view.html",'<div id="voice-internalroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-internalroutes-button md-icon-button" aria-label="Go to internalroutes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.internalroute.userpic" class="internalroute-image" hide-xs>\n                    <img ng-src="api/users/{{vm.internalroute.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.internalroute.userpic" class="internalroute-image" hide-xs>\n                    <img ng-src="assets/images/business/internalroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.internalroute.id}} {{vm.internalroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="internalroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.internalroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.internalroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="internalroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="InternalRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.internalroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInternalRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInternalRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedInternalRouteApps.length}} {{vm_ac.selectedInternalRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInternalRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedInternalRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.internalrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInternalRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.internalrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/internalroutes/internalroutes.html",'<div id="internalroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-internalroutes-count">\n                    <span>{{vm.selectedInternalRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTERNALROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllInternalRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectInternalRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" filename="internalroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="INTERNALROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INTERNALROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.internalroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="internalroute" md-select-id="id" ng-repeat="internalroute in vm.internalroutes.rows">\n                                <td md-cell ng-if="internalroute.userpic"><img class="avatar" alt="{{internalroute.name}}" ng-src="api/users/{{internalroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!internalroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{internalroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="id ">{{internalroute.id}}</td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="exten ">{{internalroute.exten}}</td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="description ">{{internalroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(internalroute, $event)" translate="VOICE.EDIT_INTERNALROUTE">\n                                                    Edit InternalRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(internalroute, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n                                                    Delete InternalRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.internalroutes.count}}" md-on-paginate="vm.getInternalRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INTERNALROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INTERNALROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-internalroute-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internalroute" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INTERNALROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n    <form name="musiconholdForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.musiconhold.name" required autofocus ng-disabled="!vm.newMusicOnHold">\n                <div ng-messages="musiconholdForm.name.$error" ng-show="musiconholdForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MODE">Mode</label>\n                <md-select ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n                    <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }}</md-option>\n\n                    <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="musiconholdForm.mode.$error" ng-show="musiconholdForm.mode.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n                <label translate="VOICE.APPLICATION">Application</label>\n                <input type="text" name="application" ng-model="vm.musiconhold.application" required>\n                <div ng-messages="musiconholdForm.application.$error" ng-show="musiconholdForm.application.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n                <label translate="VOICE.SORT">Sort</label>\n                <md-select ng-model="vm.musiconhold.sort">\n\n                    <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }}</md-option>\n\n                    <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="musiconholdForm.sort.$error" ng-show="musiconholdForm.sort.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n                    ADD MUSICONHOLD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n    <form name="mohSoundForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.FILE">File</label>\n                <md-select ng-model="vm.mohSound.id" autofocus>\n                    <md-option ng-value="id.id" ng-repeat="id in vm.sounds">{{ id.name }}</md-option>\n                </md-select>\n                <div ng-messages="mohSoundForm.id.$error" ng-show="mohSoundForm.id.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n                    ADD MOHSOUND\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.musiconhold.userpic" class="musiconhold-image" hide-xs>\n                    <img ng-src="api/users/{{vm.musiconhold.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.musiconhold.userpic" class="musiconhold-image" hide-xs>\n                    <img ng-src="assets/images/business/musiconholds.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.musiconhold.id}} {{vm.musiconhold.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.musiconhold.name" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MODE">Mode</label>\n                                <md-select ng-model="vm.musiconhold.mode" required ng-disabled="true">\n\n                                    <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.mode.$error" ng-show="generalForm.mode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n                                <label translate="VOICE.APPLICATION">Application</label>\n                                <input type="text" name="application" ng-model="vm.musiconhold.application" required>\n                                <div ng-messages="generalForm.application.$error" ng-show="generalForm.application.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n                                <label translate="VOICE.SORT">Sort</label>\n                                <md-select ng-model="vm.musiconhold.sort">\n\n                                    <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.sort.$error" ng-show="generalForm.sort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="MUSICONHOLDS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                            <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'VOICE.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n                                            <td md-cell>{{mohSound.id}}</td>\n                                            <td md-cell><audio controls><source ng-src="{{\'api/sounds/\' + mohSound.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                            <td md-cell>{{mohSound.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-href="api/mohs/{{mohSound.id}}/download" target="_blank" translate="VOICE.DOWNLOAD_MOHSOUND">\n                                                                Download MohSound\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n                                                                Delete MohSound\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n                                            <td md-cell colspan="6">\n                                                <span class="text-boxed-ligth" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-musiconholds-count">\n                    <span>{{vm.selectedMusicOnHolds.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MUSICONHOLDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" filename="musiconholds.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="MUSICONHOLDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MUSICONHOLD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n                                <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.musiconholds.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n                                <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n                                <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(musiconhold, $event)" translate="VOICE.EDIT_MUSICONHOLD">\n                                                    Edit MusicOnHold\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(musiconhold, $event)" translate="VOICE.DELETE_MUSICONHOLD">\n                                                    Delete MusicOnHold\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MUSICONHOLD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundroutes/create/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.outboundroute.exten" required autofocus>\n                <div ng-messages="outboundrouteForm.exten.$error" ng-show="outboundrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.outboundroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteForm.context.$error" ng-show="outboundrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.outboundroute.description">\n                <div ng-messages="outboundrouteForm.description.$error" ng-show="outboundrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n                    ADD OUTBOUNDROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/agi/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.project.$error" ng-show="outboundrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/custom/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="outboundrouteFormApp.app.$error" ng-show="outboundrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/dial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="outboundrouteFormApp.tech.$error" ng-show="outboundrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.trunk.$error" ng-show="outboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone">\n                <div ng-messages="outboundrouteFormApp.phone.$error" ng-show="outboundrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/goto/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.context.$error" ng-show="outboundrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="outboundrouteFormApp.extension.$error" ng-show="outboundrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="outboundrouteFormApp.priority.$error" ng-show="outboundrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/hangup/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.user.$error" ng-show="outboundrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/outbounddial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.outbounddial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.trunk.$error" ng-show="outboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CALLER_ID">Caller_ID</label>\n                <input type="text" name="callerID" ng-model="vm.outbounddial.callerID">\n                <div ng-messages="outboundrouteFormApp.callerID.$error" ng-show="outboundrouteFormApp.callerID.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PREFIX">Prefix</label>\n                <input type="text" name="prefix" ng-model="vm.outbounddial.prefix">\n                <div ng-messages="outboundrouteFormApp.prefix.$error" ng-show="outboundrouteFormApp.prefix.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CUTDIGITS">CutDigits</label>\n                <input type="number" name="cutdigits" ng-model="vm.outbounddial.cutdigits" min="0">\n                <div ng-messages="outboundrouteFormApp.cutdigits.$error" ng-show="outboundrouteFormApp.cutdigits.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RECORDING">Recording</label>\n                <md-select ng-model="vm.outbounddial.recordingFormat" required>\n                    <md-option ng-value="\'none\'">none</md-option>\n                    <md-option ng-value="\'wav\'">wav</md-option>\n                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                </md-select>\n                <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n                <div ng-messages="outboundrouteFormApp.recordingFormat.$error" ng-show="outboundrouteFormApp.recordingFormat.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TAGS">Tags</label>\n                <md-select ng-model="vm.outbounddial.tag">\n                    <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n                    <md-option ng-value="\'--\'">None</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.tag.$error" ng-show="outboundrouteFormApp.tag.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.outbounddial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.outbounddial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.outbounddial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/playback/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/queue/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.queue.$error" ng-show="outboundrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="outboundrouteFormApp.URL.$error" ng-show="outboundrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.sound.$error" ng-show="outboundrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="outboundrouteFormApp.agi.$error" ng-show="outboundrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="outboundrouteFormApp.macro.$error" ng-show="outboundrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="outboundrouteFormApp.gosub.$error" ng-show="outboundrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="outboundrouteFormApp.rule.$error" ng-show="outboundrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="outboundrouteFormApp.position.$error" ng-show="outboundrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.multipleUsers.$error" ng-show="outboundrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/set/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="outboundrouteFormApp.name.$error" ng-show="outboundrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="outboundrouteFormApp.value.$error" ng-show="outboundrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.voiceMail.$error" ng-show="outboundrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/view.html",'<div id="voice-outboundroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-outboundroutes-button md-icon-button" aria-label="Go to outboundroutes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.outboundroute.userpic" class="outboundroute-image" hide-xs>\n                    <img ng-src="api/users/{{vm.outboundroute.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.outboundroute.userpic" class="outboundroute-image" hide-xs>\n                    <img ng-src="assets/images/business/outboundroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.outboundroute.id}} {{vm.outboundroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="outboundroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.outboundroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.outboundroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.outboundroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="outboundroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="OutboundRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.outboundroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOutboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOutboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedOutboundRouteApps.length}} {{vm_ac.selectedOutboundRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedOutboundRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedOutboundRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.outboundrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editOutboundRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editOutboundRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editOutboundRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.outboundrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/outboundroutes/outboundroutes.html",'<div id="outboundroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-outboundroutes-count">\n                    <span>{{vm.selectedOutboundRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OUTBOUNDROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOutboundRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOutboundRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" filename="outboundroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="OUTBOUNDROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OUTBOUNDROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.outboundroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="outboundroute" md-select-id="id" ng-repeat="outboundroute in vm.outboundroutes.rows">\n                                <td md-cell ng-if="outboundroute.userpic"><img class="avatar" alt="{{outboundroute.name}}" ng-src="api/users/{{outboundroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!outboundroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{outboundroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="id ">{{outboundroute.id}}</td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="exten ">{{outboundroute.exten}}</td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="description ">{{outboundroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(outboundroute, $event)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n                                                    Edit OutboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(outboundroute, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n                                                    Delete OutboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.outboundroutes.count}}" md-on-paginate="vm.getOutboundRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OUTBOUNDROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OUTBOUNDROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-outboundroute-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outboundroute" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OUTBOUNDROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n            <tr md-row>\n                <th md-column width="20px"></th>\n                <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.agents">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="agent" md-select-id="id" ng-repeat="(id, agent) in vm.agents">\n                <td md-cell>\n                    <div class="avatar-wrapper">\n                        <img md-menu-align-target class="avatar" ng-src="{{agent.userpic && \'api/users/\'+agent.id+\'/avatar\' || \'assets/images/avatars/profile.jpg\'}}">\n                        <md-icon md-font-icon class="icon status s16 icon-checkbox-marked-circle" ng-class="agent.online ? \'green-300-fg\' : \'red-300-fg\'"></md-icon>\n                    </div>\n                </td>\n                <td md-cell>\n                    <div layout="column">\n                        <span class="text-truncate"><span ng-if="agent.online" class="text-boxed"><timer start-time="agent.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>{{agent.fullname}}</span>\n                        <span class="text-truncate" ng-if="agent.voicePause">\n              <span><span class="text-boxed"><timer start-time="agent.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span></span><span class="blink red-fg">{{agent.pauseType || \'dafault\' | uppercase}}</span>\n                        </span>\n                    </div>\n                </td>\n                <td md-cell>\n                    {{agent.internal}}\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[agent.state]">\n            <md-tooltip>{{\'VOICE.\' + agent.state | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span class="text-boxed" ng-if="agent.stateTime && vm.isAvailableState(agent.state)">\n            <timer ng-if="agent.stateTime" start-time="agent.stateTime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n          </span>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[agent.status]">\n            <md-tooltip>{{\'VOICE.\' + agent.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="agent.status === \'registered\'" class="text-boxed">{{agent.address}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="4">\n                            <md-menu-item>\n                                <md-button ng-click="vm.logout(agent, $event)" translate="VOICE.LOGOUT">\n                                    Logout\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.queueAdd(agent, $event)" translate="VOICE.AGENTADD_QUEUE">\n                                    Add Agent In Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="VOICE.PAUSE">Pause</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.pause(agent)"><em translate="VOICE.DEFAULT_PAUSE">Default Pause</em></md-button>\n                                        </md-menu-item>\n                                        <md-menu-item ng-if="vm.pauses.rows.length" ng-repeat="pause in vm.pauses.rows">\n                                            <md-button ng-click="vm.pause(agent, pause.name)">{{pause.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.unPause(agent)" translate="VOICE.UNPAUSE">\n                                    Unpause\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.calls.count">\n                <td md-cell colspan="4">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n                <td md-cell>\n                    <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n                </td>\n                <td md-cell>\n                    {{call.calleridname}}, {{call.calleridnum}} <span class="text-boxed" ng-if="call.answered"><timer ng-if="call.answertime" start-time="call.answertime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                </td>\n                <td md-cell>{{call.exten}}</td>\n                <td md-cell>\n                    <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n                      <timer ng-if="call.starttime" start-time="call.starttime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                    </span>\n                    <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="vm.query.limitOptions" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n        \x3c!-- <div flex></div>\n    <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar> --\x3e\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n                <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n                <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                <td md-cell>\n                    <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n                    <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n                </td>\n                <td md-cell>{{channel.exten}}</td>\n                <td md-cell>{{channel.queue}}</td>\n                <td md-cell>{{channel.calleridnum}}</td>\n                <td md-cell>\n                    <span ng-if="channel.queuecallerleaveAt">\n              {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n              <span class="text-boxed">\n                <timer start-time="channel.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n              </span>\n                    </span>\n                    <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n              {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell>\n                    <span class="text-boxed">\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="2">\n                            <md-menu-item>\n                                <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n                                    Hangup\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n                                    Number\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="VOICE.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item ng-repeat="agent in vm.agents.rows">\n                                            <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name)">{{agent.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n            \x3c!-- <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n        <td md-cell>\n          <i ng-class="vm.channelStatusClass[call.status.toLowerCase()]"></i>\n        </td>\n        <td md-cell>{{call.exten}}</td>\n        <td md-cell>{{call.queue}}</td>\n        <td md-cell><span ng-if="call.calleridname">{{call.calleridname}}, </span>{{call.calleridnum}}</td>\n        <td md-cell>\n          <span ng-if="call.queuecallerleaveAt">\n            {{call.connectedlinename}}, {{call.connectedlinenum}}\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n          <span ng-if="!call.queuecallerleaveAt" class="text-boxed" translate="VOICE.WAITING_FOR_AGENT">\n            Waiting for agent...\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n        </td>\n        <td md-cell>\n          <span class="text-boxed">\n            <timer ng-if="call.queuecallerjoinAt" start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            <span ng-if="call.queuecallercomplete || call.queuecallerabandon || call.queuecallerexit" translate="VOICE.CLOSING">Closing</span>\n          </span>\n        </td>\n        <td md-cell class="actions">\n          <md-menu>\n            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n              <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n            </md-button>\n\n            <md-menu-content width="2">\n              <md-menu-item>\n                <md-button ng-click="vm.hangup(call.uniqueid)" translate="VOICE.HANGUP">\n                  Hangup\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-button ng-click="vm.redirectToNumber($event, call.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n                  Number\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-menu>\n                  <md-button ng-click="$mdMenu.open()" translate="VOICE.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                  <md-menu-content>\n                    <md-menu-item ng-repeat="agent in vm.agents.rows">\n                      <md-button ng-click="vm.redirectToAgent(call.uniqueid, agent.name)">{{agent.name}}</md-button>\n                    </md-menu-item>\n                  </md-menu-content>\n                </md-menu>\n              </md-menu-item>\n            </md-menu-content>\n          </md-menu>\n        </td>\n      </tr> --\x3e\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{\'VOICE.NAME\' | translate}}</th>\n                <th md-column>{{\'VOICE.TOTAL_OFFERED\' | translate}}</th>\n                <th md-column>{{\'VOICE.ANSWERED\' | translate}}</th>\n                <th md-column>{{\'VOICE.ABANDONED\' | translate}}</th>\n                <th md-column>{{\'VOICE.UNMANAGED\' | translate}}</th>\n                <th md-column>{{\'VOICE.AVG_HOLD_TIME\' | translate}}</th>\n                <th md-column>{{\'VOICE.AVG_DURATION\' | translate}}</th>\n                <th md-column>{{\'VOICE.AVG_BILLABLE\' | translate}}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>\n                    <span>{{queue.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{(queue.total - queue.answered) || 0}} ({{(queue.total) ? ((queue.total - queue.answered) || 0) * 100/queue.total : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n                <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n                <th md-column>{{ \'VOICE.READY\' | translate }}</th>\n                <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n                <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="7">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="queue" md-select-id="id" ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>{{queue.name}}</td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.loggedInDb || 0}} ({{queue.loggedIn || 0}})</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.paused || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.available || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.waiting || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.talking || 0}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditVoiceQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n                                    Edit Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.agentAdd($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n                                    Add Agents to queue\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.AGENTS">Agents</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.TELEPHONES">Telephones</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.TRUNKS">Trunks</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUES">Queues</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n                </md-tab-label>\n            </md-tab>\n        </md-tabs>\n\n        <md-card ui-view></md-card>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n              <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n            </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n            <tr md-row>\n                <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.telephones">\n                <td md-cell colspan="4">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n                <td md-cell>{{telephone.fullname}}</td>\n                <td md-cell>{{telephone.internal}}</td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[telephone.state]">\n                    <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n                  </i>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[telephone.status]">\n                    <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n                  </i>\n                    <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n            <tr md-row>\n                <th md-column md-order-by="fullname">{{ \'VOICE.NAME\' | translate }}</th>\n                <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n                <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.trunks">\n                <td md-cell colspan="3">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n                <td md-cell>{{trunk.name}}</td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n            <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n                </td>\n                <td md-cell>\n                    <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n            <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n                    <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n            No Registry\n          </span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n    <form name="voicemailForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.FULLNAME">FullName</label>\n                <input type="text" name="fullname" ng-model="vm.voicemail.fullname" required autofocus>\n                <div ng-messages="voicemailForm.fullname.$error" ng-show="voicemailForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.voicemail.email" required>\n                <div ng-messages="voicemailForm.email.$error" ng-show="voicemailForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                <div ng-messages="voicemailForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX">MailBox</label>\n                <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" required ng-disabled="!vm.newVoicemail">\n                <div ng-messages="voicemailForm.mailbox.$error" ng-show="voicemailForm.mailbox.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n                    ADD VOICEMAIL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.voicemail.userpic" class="voicemail-image" hide-xs>\n                    <img ng-src="api/users/{{vm.voicemail.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.voicemail.userpic" class="voicemail-image" hide-xs>\n                    <img ng-src="assets/images/business/voicemails.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.voicemail.id}} {{vm.voicemail.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.FULLNAME">FullName</label>\n                                <input type="text" name="fullname" ng-model="vm.voicemail.fullname" required autofocus>\n                                <div ng-messages="generalForm.fullname.$error" ng-show="generalForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.voicemail.email" required>\n                                <div ng-messages="generalForm.email.$error" ng-show="generalForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n                                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAILBOX">MailBox</label>\n                                <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" required ng-disabled="true">\n                                <div ng-messages="generalForm.mailbox.$error" ng-show="generalForm.mailbox.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n                                <md-select ng-model="vm.voicemail.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEZONE">TimeZone</label>\n                                <input type="text" name="tz" ng-model="vm.voicemail.tz" required autofocus>\n                                <div ng-messages="advancedForm.tz.$error" ng-show="advancedForm.tz.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ATTACH">Attach</label>\n                                <md-select ng-model="vm.voicemail.attach">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.attach.$error" ng-show="advancedForm.attach.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ENVELOPE">Envelope</label>\n                                <md-select ng-model="vm.voicemail.envelope">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.envelope.$error" ng-show="advancedForm.envelope.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DELETE">Delete</label>\n                                <md-select ng-model="vm.voicemail.delete">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.delete.$error" ng-show="advancedForm.delete.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAILBODY">EmailBody</label>\n                                <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody">\n                                <div ng-messages="advancedForm.emailbody.$error" ng-show="advancedForm.emailbody.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n                                <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject">\n                                <div ng-messages="advancedForm.emailsubject.$error" ng-show="advancedForm.emailsubject.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n                                <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0">\n                                <div ng-messages="advancedForm.maxsecs.$error" ng-show="advancedForm.maxsecs.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n                                <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999">\n                                <div ng-messages="advancedForm.maxmsg.$error" ng-show="advancedForm.maxmsg.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.MESSAGES">MESSAGES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICEMAILS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                            <th md-column md-order-by="callerid">{{ \'VOICE.CALLER_ID\' | translate }}</th>\n                                            <th md-column md-order-by="duration">{{ \'VOICE.DURATION\' | translate }}</th>\n                                            <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                            <th md-column md-order-by="stamp">{{ \'VOICE.RECEIVED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n                                            <td md-cell>{{message.id}}</td>\n                                            <td md-cell>{{message.callerid}}</td>\n                                            <td md-cell>{{message.duration}}</td>\n                                            <td md-cell><audio controls><source ng-src="{{\'api/voice/mails/messages/\' + message.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                            <td md-cell>{{message.stamp | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-href="api/voice/mails/messages/{{message.id}}/download" target="_blank" translate="VOICE.DOWNLOAD_MESSAGE">\n                                                                Download Message\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n                                                                Delete Message\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voicemails-count">\n                    <span>{{vm.selectedVoicemails.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICEMAILS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" filename="voicemails.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICEMAILS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICEMAIL TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voicemails.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n                                <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(voicemail, $event)" translate="VOICE.EDIT_VOICEMAIL">\n                                                    Edit Voicemail\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voicemail, $event)" translate="VOICE.DELETE_VOICEMAIL">\n                                                    Delete Voicemail\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICEMAIL TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n    <form name="voiceQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newVoiceQueue">\n                <div ng-messages="voiceQueueForm.name.$error" ng-show="voiceQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.voiceQueue.strategy" required>\n                    <md-option ng-value="\'ringall\'">Ringall</md-option>\n                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                    <md-option ng-value="\'random\'">Random</md-option>\n                    <md-option ng-value="\'linear\'">Linear</md-option>\n                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                </md-select>\n                <div ng-messages="voiceQueueForm.strategy.$error" ng-show="voiceQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.voiceQueue.description">\n                <div ng-messages="voiceQueueForm.description.$error" ng-show="voiceQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n                    ADD VOICEQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue">\n    <form name="voiceQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="VOICE.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue">\n    <form name="voiceQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="VOICE.TEAMADD_VOICEQUEUE">Add Team in VOICEQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="VOICE.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div ng-if="vm.voiceQueue.userpic" class="voiceQueue-image" hide-xs>\n                    <img ng-src="api/users/{{vm.voiceQueue.id}}/avatar">\n                </div>\n\n                <div ng-if="!vm.voiceQueue.userpic" class="voiceQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/voiceQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.voiceQueue.id}} {{vm.voiceQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.voiceQueue.strategy" required autofocus>\n                                    <md-option ng-value="\'ringall\'">Ringall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                                    <md-option ng-value="\'random\'">Random</md-option>\n                                    <md-option ng-value="\'linear\'">Linear</md-option>\n                                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" required>\n                                <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXLENGTH">MaxLength</label>\n                                <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n                                <div ng-messages="generalForm.maxlen.$error" ng-show="generalForm.maxlen.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RETRY">Retry</label>\n                                <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n                                <div ng-messages="generalForm.retry.$error" ng-show="generalForm.retry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n                                <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n                                <div ng-messages="generalForm.wrapuptime.$error" ng-show="generalForm.wrapuptime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WEIGHT">Weight</label>\n                                <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n                                <div ng-messages="generalForm.weight.$error" ng-show="generalForm.weight.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n                                <md-select ng-model="vm.voiceQueue.joinempty" multiple>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'strict\'">strict</md-option>\n                                    <md-option ng-value="\'loose\'">loose</md-option>\n                                    <md-option ng-value="\'paused\'">paused</md-option>\n                                    <md-option ng-value="\'penalty\'">penalty</md-option>\n                                    <md-option ng-value="\'inuse\'">inuse</md-option>\n                                    <md-option ng-value="\'ringing\'">ringing</md-option>\n                                    <md-option ng-value="\'unavailable\'">unavailable</md-option>\n                                    <md-option ng-value="\'invalid\'">invalid</md-option>\n                                    <md-option ng-value="\'unknown\'">unknoww</md-option>\n                                    <md-option ng-value="\'wrapup\'">wrapup</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n                                <div ng-messages="generalForm.joinempty.$error" ng-show="generalForm.joinempty.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n                                <md-select ng-model="vm.voiceQueue.leavewhenempty" multiple>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'strict\'">strict</md-option>\n                                    <md-option ng-value="\'loose\'">loose</md-option>\n                                    <md-option ng-value="\'paused\'">paused</md-option>\n                                    <md-option ng-value="\'penalty\'">penalty</md-option>\n                                    <md-option ng-value="\'inuse\'">inuse</md-option>\n                                    <md-option ng-value="\'ringing\'">ringing</md-option>\n                                    <md-option ng-value="\'unavailable\'">unavailable</md-option>\n                                    <md-option ng-value="\'invalid\'">invalid</md-option>\n                                    <md-option ng-value="\'unknown\'">unknoww</md-option>\n                                    <md-option ng-value="\'wrapup\'">wrapup</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n                                <div ng-messages="generalForm.leavewhenempty.$error" ng-show="generalForm.leavewhenempty.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n                                <md-select ng-model="vm.voiceQueue.musiconhold">\n                                    <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n                                <div ng-messages="generalForm.musiconhold.$error" ng-show="generalForm.musiconhold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n                                <md-select ng-model="vm.voiceQueue.announce">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds">{{ announce.name }}</md-option>\n                                    <md-option ng-value="\'\'">None</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n                                <div ng-messages="generalForm.announce.$error" ng-show="generalForm.announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.voiceQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n                        </div>\n                        <form name="settingsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n                                <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.announce_frequency.$error" ng-show="settingsForm.announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n                                <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.min_announce_frequency.$error" ng-show="settingsForm.min_announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n                                <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.periodic_announce_frequency.$error" ng-show="settingsForm.periodic_announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.random_periodic_announce">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n                                <div ng-messages="settingsForm.random_periodic_announce.$error" ng-show="settingsForm.random_periodic_announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n                                <md-select ng-model="vm.voiceQueue.announce_holdtime">\n                                    <md-option ng-value="\'yes\'">Yes</md-option>\n                                    <md-option ng-value="\'no\'">No</md-option>\n                                    <md-option ng-value="\'once\'">Once</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n                                <div ng-messages="settingsForm.announce_holdtime.$error" ng-show="settingsForm.announce_holdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n                                <md-select ng-model="vm.voiceQueue.announce_position">\n                                    <md-option ng-value="\'yes\'">Yes</md-option>\n                                    <md-option ng-value="\'no\'">No</md-option>\n                                    <md-option ng-value="\'limit\'">Limit</md-option>\n                                    <md-option ng-value="\'more\'">More</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n                                <div ng-messages="settingsForm.announce_position.$error" ng-show="settingsForm.announce_position.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n                                <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit">\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n                                <div ng-messages="settingsForm.announce_position_limit.$error" ng-show="settingsForm.announce_position_limit.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n                                <md-select ng-model="vm.voiceQueue.reportholdtime">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n                                <div ng-messages="settingsForm.reportholdtime.$error" ng-show="settingsForm.reportholdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n                        </div>\n                        <form name="announcementsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.periodic_announce" autofocus>\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds">{{ periodic_announce.name }}</md-option>\n                                    <md-option ng-value="\'\'">Default</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.periodic_announce.$error" ng-show="announcementsForm.periodic_announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_reporthold">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds">{{ queue_reporthold.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_reporthold.$error" ng-show="announcementsForm.queue_reporthold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_youarenext">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds">{{ queue_youarenext.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_youarenext.$error" ng-show="announcementsForm.queue_youarenext.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_thereare">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds">{{ queue_thereare.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_thereare.$error" ng-show="announcementsForm.queue_thereare.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_callswaiting">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds">{{ queue_callswaiting.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_callswaiting.$error" ng-show="announcementsForm.queue_callswaiting.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_holdtime">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds">{{ queue_holdtime.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_holdtime.$error" ng-show="announcementsForm.queue_holdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_minutes">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds">{{ queue_minutes.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_minutes.$error" ng-show="announcementsForm.queue_minutes.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_minute">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds">{{ queue_minute.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_minute.$error" ng-show="announcementsForm.queue_minute.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_seconds">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds">{{ queue_seconds.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_seconds.$error" ng-show="announcementsForm.queue_seconds.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_thankyou">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds">{{ queue_thankyou.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_thankyou.$error" ng-show="announcementsForm.queue_thankyou.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n                                <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n                                <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n                                <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" required>\n                                <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n                                <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n                                <md-select ng-model="vm.voiceQueue.autopause">\n\n                                    <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n                                <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RINGINUSE">RingInUse</label>\n                                <md-select ng-model="vm.voiceQueue.ringinuse">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n                                <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n                                <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n                                <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n                                <md-select ng-model="vm.voiceQueue.timeoutrestart">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n                                <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n                                <md-select ng-model="vm.voiceQueue.monitor_format">\n                                    <md-option ng-value="\'\'">Inactive</md-option>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'wav49\'">wav49</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n                                <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <input type="text" name="context" ng-model="vm.voiceQueue.context">\n                                <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n                                <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setinterfacevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setqueuevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setqueueentryvar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voiceQueues-count">\n                    <span>{{vm.selectedVoiceQueues.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICEQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" filename="voiceQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICEQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICEQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voiceQueues.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n                                <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(voiceQueue, $event)" translate="VOICE.EDIT_VOICEQUEUE">\n                                                    Edit VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.teamadddialog(voiceQueue, $event)" translate="VOICE.TEAMADD_VOICEQUEUE">\n                                                    teamadd VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(voiceQueue, $event)" translate="VOICE.AGENTADD_VOICEQUEUE">\n                                                    agentadd VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voiceQueue, $event)" translate="VOICE.DELETE_VOICEQUEUE">\n                                                    Delete VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICEQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n    <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RATING">Rating</label>\n                <md-select ng-model="vm.voiceRecording.rating" autofocus>\n                    <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n                    <md-option value="1">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n                    </md-option>\n                    <md-option value="2">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n                    </md-option>\n                    <md-option value="3">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n                    </md-option>\n                    <md-option value="4">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n                    </md-option>\n                    <md-option value="5">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n                    </md-option>\n                </md-select>\n                <div ng-messages="voiceRecordingForm.rating.$error" ng-show="voiceRecordingForm.rating.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n                    ADD VOICERECORDING\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voiceRecordings-count">\n                    <span>{{vm.selectedVoiceRecordings.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICERECORDINGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" filename="voiceRecordings.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICERECORDINGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICERECORDING TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n                                <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n                                <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n                                <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n                                <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n                                <td md-cell colspan="10">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n                                <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum ">{{voiceRecording.calleridnum}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten ">{{voiceRecording.exten}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum ">{{voiceRecording.connectedlinenum}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n                                    <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span></td>\n                                <td md-cell class="audio " ng-switch="voiceRecording.format">\n                                    <audio controls ng-switch-when=".wav">\n                                  <source ng-src="{{\'api/voice/recordings/\' + voiceRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source> Your browser does not support the audio element.\n                                 </audio>\n                                    <span ng-switch-when=".gsm">\n                                  <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n                                 </span>\n                                </td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n                                                    Download VoiceRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voiceRecording, $event)" translate="VOICE.DELETE_VOICERECORDING">\n                                                    Delete VoiceRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICERECORDING TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n    <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions">\n</ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n    <div class="logo" layout="row" layout-align="start center">\n        <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n        \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n        <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n    </div>\n    <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n    <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n        <md-tab ng-if="vm.license.gray">\n            <md-tab-label>\n                <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n                <span translate="QUICKPANEL.LICENSE">LICENSE</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-list-item>\n                    <dl>\n                        <dt translate="QUICKPANEL.EXPIRATION_REASON"> Expiration reason </dt>\n\n                        <dt translate="QUICKPANEL.EXPIRATION_DATE"> Expiration date </dt>\n                        <dd>{{ vm.license.deadline }}</dd>\n\n                        <dt translate="QUICKPANEL.OLD_TOKEN"> Old Token </dt>\n                        <dd>{{ vm.license.uuid }}</dd>\n\n                        <dt translate="QUICKPANEL.NEW_TOKEN"> New Token </dt>\n                        <dd>{{ vm.license.machineUuid }}</dd>\n\n                        <dt translate="QUICKPANEL.CONTACT_XCALLY_MOTION_SUPPORT"> Contact xCALLY MOTION Support </dt>\n                        <dd>\n                            {{ \'QUICKPANEL.SEND_EMAIL_TO\' | translate }} <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.\n                        </dd>\n                    </dl>\n                </md-list-item>\n            </md-tab-body>\n        </md-tab>\n\n        <md-tab>\n            <md-tab-label>\n                <span translate="QUICKPANEL.TODAY">TODAY</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'">\n                </md-content>\n            </md-tab-body>\n        </md-tab>\n        \x3c!-- <md-tab>\n  <md-tab-label>\n  <span translate="QUICKPANEL.CHAT">CHAT</span>\n</md-tab-label>\n<md-tab-body>\n<md-content class="chat-tab scrollable" ms-scroll\nng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"\nng-controller="ChatTabController as vm">\n</md-content>\n</md-tab-body>\n</md-tab>\n<md-tab>\n<md-tab-label>\n<span translate="QUICKPANEL.ACTIVITY">ACTIVITY</span>\n</md-tab-label>\n<md-tab-body>\n<md-content class="activity-tab scrollable" ms-scroll\nng-include="\'app/quick-panel/tabs/activity/activity-tab.html\'">\n</md-content>\n</md-tab-body>\n</md-tab> --\x3e\n    </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.FRIENDS">Friends</span>\n    </md-subheader>\n\n    <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n        <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n        <div class="status {{friend.status}}"></div>\n\n        <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n        <div class="md-list-item-text">\n            <h3 class="message">{{friend.message}}</h3>\n            <p class="time">{{friend.time}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n    </md-subheader>\n\n    <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n        <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n        <div class="md-list-item-text">\n            <h3>{{server.location}}</h3>\n            <p>{{server.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n    </md-subheader>\n\n    <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n        <div class="md-list-item-text">\n            <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n            <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n        </div>\n    </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm.chatActive">\n    <md-list class="recent">\n        <md-subheader class="md-no-sticky">\n            <span translate="QUICKPANEL.RECENT">Recent</span>\n        </md-subheader>\n\n        <md-list-item class="contact md-3-line" ng-repeat="contact in vm.contacts.recent" ng-click="vm.toggleChat(contact)">\n            <img ng-src="{{contact.avatar}}" class="md-avatar" alt="{{contact.name}}" />\n\n            <div class="status  {{contact.status}}"></div>\n\n            <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n            <div class="md-list-item-text">\n                <h3>{{contact.name}}</h3>\n                <p class="last-message">{{contact.lastMessage}}</p>\n            </div>\n        </md-list-item>\n    </md-list>\n\n    <md-divider></md-divider>\n\n    <md-list class="all">\n        <md-subheader class="md-no-sticky">\n            <span translate="QUICKPANEL.START_NEW_CHAT">Start New Chat</span>\n        </md-subheader>\n\n        <md-list-item class="contact" ng-repeat="contact in vm.contacts.all" ng-click="vm.toggleChat(contact)">\n            <img ng-src="{{contact.avatar}}" class="md-avatar" alt="{{contact.name}}" />\n\n            <div class="status {{contact.status}}"></div>\n\n            <div class="md-list-item-text">\n                <h3>{{contact.name}}</h3>\n            </div>\n        </md-list-item>\n    </md-list>\n\n    <md-divider></md-divider>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm.chatActive" layout="column">\n    <md-toolbar class="md-accent">\n        <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n            <div layout="row" layout-align="start center">\n                <md-button class="md-icon-button" ng-click="vm.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n                    <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n                </md-button>\n                <h4>\n                    <span>{{vm.chat.contact.name}}</span>\n                </h4>\n            </div>\n\n            <div layout="row" layout-align="end center">\n                <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL">\n                    <md-icon md-font-icon="icon-phone"></md-icon>\n                </md-button>\n\n                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="QUICKPANEL.MORE">\n                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                </md-button>\n            </div>\n        </div>\n\n    </md-toolbar>\n    <md-content flex layout-paddings ms-scroll id="chat-dialog">\n        <div layout="row" ng-repeat="dialog in vm.chat.contact.dialog" class="md-padding message-row" ng-class="dialog.who">\n            <img ng-if="dialog.who ===\'contact\'" ng-src="{{vm.chat.contact.avatar}}" class="avatar" alt="{{vm.chat.contact.name}}" />\n            <img ng-if="dialog.who ===\'user\'" class="avatar" src="assets/images/avatars/profile.jpg">\n\n            <div class="bubble" flex>\n                <div class="message">{{dialog.message}}</div>\n                <div class="time secondary-text">{{dialog.time}}</div>\n            </div>\n        </div>\n    </md-content>\n\n    <form ng-submit="vm.reply()" layout="row" class="reply" layout-align="start center">\n        <textarea ng-keyup="$event.keyCode == 13 ? vm.reply() : null" flex ng-model="vm.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER"></textarea>\n\n        <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n            <md-icon md-font-icon="icon-send"></md-icon>\n        </md-button>\n    </form>\n</div>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n    <md-list-item class="md-display-1 md-2-line">\n        <div class="secondary-text">\n            <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n            <div layout="row" layout-align="start start">\n                <span> {{vm.date | date:\'d\'}}</span>\n                <span class="md-subhead">th</span>\n                <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n            </div>\n        </div>\n    </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n    <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n        <div class="md-list-item-text">\n            <h3>{{event.title}}</h3>\n\n            <p>{{event.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n    <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n        <div class="md-list-item-text">\n            <h3>{{note.title}}</h3>\n\n            <p>{{note.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n        <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n                   translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n    </md-list-item>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n        <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n                   translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n    </md-list-item>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n        <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n                   translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n    </md-list-item>\n</md-list> --\x3e'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n    <form name="changePasswordForm" class="md-inline-form" novalidate>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>Change Password</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block" ng-if="vm.user.role == \'agent\'">\n                <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n                <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n                <div ng-messages="changePasswordForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n                <div ng-messages="changePasswordForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/toolbar/layouts/content-with-toolbar/toolbar.html",'<div layout="row" layout-align="space-between center">\n\n    <div layout="row" layout-align="start center">\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/horizontal-navigation/toolbar.html",'<div class="top-row" layout="row" layout-align="space-between center">\n\n    <div layout="row" layout-align="start center">\n        <div class="navigation-toggle" hide-gt-sm>\n            <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n                <md-icon md-font-icon="icon-menu"></md-icon>\n            </md-button>\n        </div>\n\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <md-button class="md-icon-button navigation-fold-toggle" hide show-gt-sm aria-label="Toggle navigation fold" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION_FOLD" ng-click="vm.toggleMsNavigationFolded()">\n            <md-icon class="s18" md-font-icon="icon-backburger"></md-icon>\n        </md-button>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n\n        <div ng-if="vm.license.demo" class="blink md-padding">\n            <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n        </div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32"></md-progress-circular>\n\n        <div class="h5 padding-10" ng-if="vm.isAgent()">\n            <div>\n                <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n                <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n            </div>\n            <div ng-if="vm.user.voicePause">\n                <timer start-time="vm.user.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n                <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n            </div>\n            <div ng-if="vm.user.voicePause">\n                <span class="blink red-fg">{{vm.user.pauseType || \'dafault\' | uppercase}}</span>\n            </div>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg" ng-if="!vm.user.userpic">\n                            <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide show-gt-sm>{{vm.user.fullname}}</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n                        <md-button ng-click="vm.changePassword($event)">Change Password</md-button>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button ng-if="vm.user.role === \'agent\'" class="language-button" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n            <md-icon md-font-icon="icon-fire" class="icon"></md-icon>\n            <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n        </md-button>\n\n        <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n              <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n              <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon ng-if="!vm.license.gray" md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n            <md-icon ng-if="vm.license.gray" md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n        </md-button>\n    </div>\n</div>')}]);
\ No newline at end of file
diff --git a/public/scripts/app.c92f3182.js b/public/scripts/app.c92f3182.js
new file mode 100644 (file)
index 0000000..b4d03d9
--- /dev/null
@@ -0,0 +1 @@
+function mxDictionary(){this.clear()}function mxPoint(e,t){this.x=null!=e?e:0,this.y=null!=t?t:0}function mxRectangle(e,t,n,a){mxPoint.call(this,e,t),this.width=null!=n?n:0,this.height=null!=a?a:0}function mxEventObject(e){this.name=e,this.properties=[];for(var t=1;t<arguments.length;t+=2)null!=arguments[t+1]&&(this.properties[arguments[t]]=arguments[t+1])}function mxMouseEvent(e,t){this.evt=e,this.state=t}function mxEventSource(e){this.setEventSource(e)}function mxXmlRequest(e,t,n,a,i,o){this.url=e,this.params=t,this.method=n||"POST",this.async=null==a||a,this.username=i,this.password=o}function mxWindow(e,t,n,a,i,o,s,r,l,d){null!=t&&(s=null==s||s,this.content=t,this.init(n,a,i,o,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(s),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,t,n){this.src=e,this.width=t,this.height=n}function mxDivResizer(e,t){if("div"==e.nodeName.toLowerCase()){null==t&&(t=window),this.div=e;var n=mxUtils.getCurrentStyle(e);null!=n&&(this.resizeWidth="auto"==n.width,this.resizeHeight="auto"==n.height),mxEvent.addListener(t,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,t){this.element=e,this.dropHandler=t,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(e,t,n,a){this.model=e,this.urlInit=t,this.urlPoll=n,this.urlNotify=a,null!=e&&(this.codec=new mxCodec,this.codec.lookup=function(t){return e.getCell(t)}),e.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");(null!=n&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(n.changes,n.undone)+"</edit>")}))}function mxUndoableEdit(e,t){this.source=e,this.changes=[],this.significant=null==t||t}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}function mxPanningManager(e){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,t){},mouseMove:function(e,t){},mouseUp:mxUtils.bind(this,function(e,t){this.active&&this.stop()})},e.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var t=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(e.container),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var t=-e.container.scrollLeft-Math.ceil(this.dx),n=-e.container.scrollTop-Math.ceil(this.dy);e.panGraph(t,n),e.panDx=this.scrollLeft-e.container.scrollLeft,e.panDy=this.scrollTop-e.container.scrollTop,e.fireEvent(new mxEventObject(mxEvent.PAN))}else e.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=e.view.translate.x,this.t0y=e.view.translate.y,this.active=!0},this.panTo=function(n,a,i,o){this.active||this.start(),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,o=null!=o?o:0;var s=e.container;this.dx=n+(null!=i?i:0)-s.scrollLeft-s.clientWidth,0>this.dx&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=n-s.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=a+o-s.scrollTop-s.clientHeight,0>this.dy&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=a-s.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=t())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)e.panDx=0,e.panDy=0,e.fireEvent(new mxEventObject(mxEvent.PAN));else{var t=e.panDx,n=e.panDy;0==t&&0==n||(e.panGraph(0,0),e.view.setTranslate(this.t0x+t/e.view.scale,this.t0y+n/e.view.scale))}},this.destroy=function(){e.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){this.factoryMethod=e,null!=e&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.graphModelChanged(t.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,t,n,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=t?t:6,this.ease=null!=n?n:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,t){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=t&&t;var n=null;if(e.ownerDocument!=document)for(n=e;null!=n&&"svg"!=n.nodeName;)n=n.parentNode;null!=n&&(0<n.getElementsByTagName("defs").length&&(this.defs=n.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=n.firstChild?n.insertBefore(this.defs,n.firstChild):n.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}function mxGuide(e,t){this.graph=e,this.setStates(t)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}function mxActor(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxCloud(e,t,n,a){mxActor.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxEllipse(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxRhombus(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxPolyline(e,t,n){mxShape.call(this),this.points=e,this.stroke=t,this.strokewidth=null!=n?n:1}function mxArrow(e,t,n,a,i,o,s){mxShape.call(this),this.points=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=o?o:mxConstants.ARROW_SPACING,this.endSize=null!=s?s:mxConstants.ARROW_SIZE}function mxText(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E){mxShape.call(this),this.value=e,this.bounds=t,this.color=null!=i?i:"black",this.align=null!=n?n:"",this.valign=null!=a?a:"",this.family=null!=o?o:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=s?s:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=h,this.wrap=null!=v&&v,this.clipped=null!=b&&b,this.overflow=null!=f?f:"visible",this.labelPadding=null!=E?E:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,t,n){mxShape.call(this),this.bounds=e,this.stroke=t,this.strokewidth=null!=n?n:1}function mxImageShape(e,t,n,a,i){mxShape.call(this),this.bounds=e,this.image=t,this.fill=n,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,t,n,a){mxRectangleShape.call(this,e,t,n,a)}function mxCylinder(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxConnector(e,t,n){mxPolyline.call(this,e,t,n)}function mxSwimlane(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,t,n,a,i,o){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.spacing=null!=n?n:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=o?o:0}function mxPartitionLayout(e,t,n,a){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.spacing=n||0,this.border=a||0}function mxCompactTreeLayout(e,t,n){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.invert=null!=n&&n}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,t){mxGraphLayout.call(this,e),this.radius=null!=t?t:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,t,n){mxGraphLayout.call(this,e),this.layouts=t,this.master=n}function mxEdgeLabelLayout(e,t){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,t,n,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=n,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,n=[],null==t&&(t=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,t,n),a=0;a<t.length;a++){i=n[a].connectsAsSource;for(var o=0;o<i.length;o++){var s=i[o];if(null!=(r=s.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1),l=mxCellPath.create(l),l=this.vertexMapper[l];n[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&n[a]!=l&&(s.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,s)&&l.connectsAsTarget.push(s))}}n[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,t,n,a,i,o){this.layout=e,this.intraCellSpacing=t,this.interRankCellSpacing=n,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=o}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxHierarchicalLayout(e,t,n){mxGraphLayout.call(this,e),this.orientation=null!=t?t:mxConstants.DIRECTION_NORTH,this.deterministic=null==n||n}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,t){this.model=e,this.previous=this.root=t}function mxChildChange(e,t,n,a){this.model=e,this.previous=this.parent=t,this.child=n,this.previousIndex=this.index=a}function mxTerminalChange(e,t,n,a){this.model=e,this.cell=t,this.previous=this.terminal=n,this.source=a}function mxValueChange(e,t,n){this.model=e,this.cell=t,this.previous=this.value=n}function mxStyleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.style=n}function mxGeometryChange(e,t,n){this.model=e,this.cell=t,this.previous=this.geometry=n}function mxCollapseChange(e,t,n){this.model=e,this.cell=t,this.previous=this.collapsed=n}function mxVisibleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.visible=n}function mxCellAttributeChange(e,t,n){this.cell=e,this.attribute=t,this.previous=this.value=n}function mxCell(e,t,n){this.value=e,this.setGeometry(t),this.setStyle(n),null!=this.onInit&&this.onInit()}function mxGeometry(e,t,n,a){mxRectangle.call(this,e,t,n,a)}function mxPrintPreview(e,t,n,a,i,o,s,r,l){this.graph=e,this.scale=null!=t?t:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=n?n:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=o?o:0,this.borderColor=s,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,t,n){this.view=e,this.cell=t,this.style=n,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,t,n){this.selectionModel=e,this.added=null!=t?t.slice():null,this.removed=null!=n?n.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,t){if(this.view=e,this.previous=this.root=t,this.isUp=null==t,!this.isUp)for(var n=this.view.currentRoot,a=this.view.graph.getModel();null!=n;){if(n==t){this.isUp=!0;break}n=a.getParent(n)}}function mxGraph(e,t,n,a){this.mouseListeners=null,this.renderHint=n,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:n==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:n==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:n==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=t?t:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,t){this.graphModelChanged(t.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,t,n,a,i,o){this.image=e,this.tooltip=t,this.align=null!=n?n:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=o?o:"help"}function mxOutline(e,t){this.source=e,null!=t&&this.init(t)}function mxMultiplicity(e,t,n,a,i,o,s,r,l,d){this.source=e,this.type=t,this.attr=n,this.value=a,this.min=null!=i?i:0,this.max=null!=o?o:"n",this.validNeighbors=s,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.beforeUndo(t.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsMoved(t.getProperty("cells"),t.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,t,n,a){this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.shiftRightwards=null==t||t,this.shiftDownwards=null==n||n,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,t,n,a){this.horizontal=null==t||t,this.addEnabled=null==n||n,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(t.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,t,n){if(this.view=e,t=null!=t?t:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(t),null!=n){t=e.createState(new mxCell);for(i=0;i<n.length;i++)e.validateBounds(t,n[i]);for(var a=null,i=0;i<n.length;i++){var o=e.validatePoints(t,n[i]);null==a?a=o:a.add(o)}null==a&&(a=new mxRectangle),e.setGraphBounds(a)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,t){this.point=e,this.perimeter=null==t||t}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,t){null!=e&&(this.graph=e,this.factoryMethod=t,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,t,n,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=t?t:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=t?n:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,t){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=t,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,t){null!=e&&(this.graph=e,this.target=t||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,t){null!=e&&(this.graph=e,this.delay=t||500,this.graph.addMouseListener(this))}function mxCellTracker(e,t,n){mxCellMarker.call(this,e,t),this.graph.addMouseListener(this),null!=n&&(this.getCell=n),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,t,n,a){null!=e&&(this.graph=e,this.highlightColor=null!=t?t:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=n?n:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(e){if(null!=e){this.editor=e,this.handler=new mxKeyHandler(e.graph);var t=this.handler.escape;this.handler.escape=function(n){t.apply(this,arguments),e.hideProperties(),e.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",n))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,t){this.editor=t,null!=e&&null!=t&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,t,n,a){this.template=e,this.exclude=null!=t?t:[],this.idrefs=null!=n?n:[],this.mapping=null!=a?a:[],this.reverse={};for(var i in this.mapping)this.reverse[this.mapping[i]]=i}function Sidebar(e,t){this.editorUi=e,this.container=t,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var t=mxEvent.getSource(e);null!=t;){if(t==this.currentElt)return;t=t.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(t,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,t,n,a,i){mxEventSource.call(this),this.label=e,this.funct=t,this.enabled=null==n||n,this.iconCls=a,this.shortcut=i}function Menubar(e,t){this.editorUi=e,this.container=t,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,t){mxEventSource.call(this),this.funct=e,this.enabled=null==t||t}function Toolbar(e,t){this.editorUi=e,this.container=t,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var t=document.createElement("input");return t.setAttribute("type","checkbox"),e&&t.setAttribute("checked",!0),t}function createDropdownFromApi(e,t,n,a,i,o,s,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+i.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(e){r&&e[n]==r||((m=document.createElement("option")).text=e[n],o&&s?(m.value=s,o.forEach(function(t){m.value=m.value.replace("%"+t+"%",e[t])}),m.selected=m.value==t):(m.value=e[a],m.selected=e[a]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,t,n,a,i,o){var s=new XMLHttpRequest;s.open("GET",e,!1),s.setRequestHeader("Authorization","Bearer "+i.editor.data.token),s.send(null);var r=[];200===s.status&&(r=JSON.parse(s.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,o);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[n],d.value=e[a],d.selected=e[a]==t,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,t,n,a,i,o){var s=new XMLHttpRequest;s.open("GET",e,!1),s.setRequestHeader("Authorization","Bearer "+i.editor.data.token),s.send(null);var r=[];200===s.status&&(r=JSON.parse(s.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[n].toUpperCase(),d.value=e[a],d.selected=e[a]==t,l.appendChild(d),e[o].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[n]),d.value=e[a],d.selected=e[a]==t,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,t){var n=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(t>0||""!=t)&&(i.selected=t===a),n.appendChild(i)}return n.className="form-control select2",n}function createDropdownFromTigerDialList(e){var t=document.createElement("select"),n=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(i.status>0){var o=i.response.RMI.rows;for(var s in o)n[o[s].id]=o[s].name}}}catch(e){console.log(e)}for(var r in n){var l=document.createElement("option");l.text=n[r],l.value=r,(e>0||""!=e)&&(l.selected=e===r),t.appendChild(l)}return t.className="form-control select2",t}function Dialog(e,t,n,a,i,o,s){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),n+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-n)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(t),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=s,this.container=l}function ImportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("import")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var t=e.target.files[0];if(console.log(t),t)if("text/xml"===t.type){var n=new FileReader;n.onload=function(e){var t=e.target.result;mxUtils.write(d,t)},n.readAsText(t)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(t){var n=mxUtils.parseXml(d.value);e.editor.setGraphXml(n.documentElement),e.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function AboutDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("about")+" Cally Square");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function SaveDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("saveAs"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function NewDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("new"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function DescriptionDialog(e){console.log(e.editor.data);var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("description"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.editor.data.description||"",d=e.createDiv("form-group"),c=document.createElement("label");c.className="col-sm-4 control-label",mxUtils.write(c,mxResources.get("description")),d.appendChild(c);var m=document.createElement("input");m.setAttribute("value",l),m.className="form-control",m.setAttribute("id","_description");var u=e.createDiv("col-sm-8");u.appendChild(m),d.appendChild(u),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("update"),function(){e.description(m.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function VariableDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("variable"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var h=document.createElement("input");h.setAttribute("value",c),h.className="form-control",h.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(h),m.appendChild(g),r.appendChild(m),a.appendChild(r);var v=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,h.value),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function OpenDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("open"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var h=document.createElement("option");h.text=u[g].name,h.value=u[g].id,p.appendChild(h)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var v=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function RenameDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("rename"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=e.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var t=new XMLHttpRequest;t.open("PUT",SAVE_URL+e.editor.data.id,!0),t.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),t.setRequestHeader("Authorization","Bearer "+e.editor.data.token),t.send("name="+u.value),t.onload=function(n){200===t.status?(e.editor.setStatus("Project successfully renamed"),e.editor.filename=u.value):(console.log(t.response),e.editor.setStatus(JSON.parse(t.response).errors[0].message))},t.onerror=function(e){mxUtils.alert(t.statusText)},e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function EditFileDialog(e){function t(e){if(e.stopPropagation(),e.preventDefault(),e.dataTransfer.files.length>0){var t=e.dataTransfer.files[0],n=new FileReader;n.onload=function(e){m.value=e.target.result},n.readAsText(t)}}function n(e){e.stopPropagation(),e.preventDefault()}var a=e.createDiv("modal-content"),i=e.createDiv("modal-header"),o=e.createDiv("modal-body"),s=e.createDiv("modal-footer"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit"));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);var d=e.createDiv("row"),c=e.createDiv("col-md-12"),m=document.createElement("textarea");m.style.width="100%",m.style.height="374px",m.value=mxUtils.getPrettyXml(e.editor.getGraphXml()),fileSupport&&(m.addEventListener("dragover",n,!1),m.addEventListener("drop",t,!1)),c.appendChild(m),d.appendChild(c),o.appendChild(d);var u=mxUtils.button(mxResources.get("save"),function(){var t=mxUtils.parseXml(m.value);e.editor.setGraphXml(t.documentElement),e.hideDialog()});u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",s.appendChild(u),s.appendChild(p),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}function ExportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body form"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("export")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",e.editor.getOrCreateFilename()),c.className="form-control";var m=e.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(t){e.save(!1);encodeURIComponent(mxUtils.getXml(e.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+e.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),e.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function GeneralDialog(e,t){console.log("general");var n=e.editor.graph,a=e.createDiv("md-dialog"),i=e.createDiv("md-toolbar"),o=e.createDiv("md-dialog-content"),s=e.createDiv("md-dialog-actions"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(t.value.nodeName));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);for(var d=t.value.attributes.length,c=e.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u=t.value.attributes[m].name,p="_"+u,g=t.value.attributes[m].value,h=e.createDiv(m==d-1?"form-group last":"form-group"),v=document.createElement("label");v.className="col-sm-4 control-label",mxUtils.write(v,mxResources.get(u)),h.appendChild(v);var b;switch(u){case"sip_id":b=createDropdownWithOptgroupFromApi("/api/users/all",g,"fullname","id",e,"role");break;case"queue_id":b=createDropdownFromApi("/api/voice/queues",g,"name","name",e);break;case"trunk_name":b=createDropdownFromApi("/api/trunks",g,"name","name",e);break;case"variable_id":b=createDropdownFromApi("/api/variables",g,"name","id",e);break;case"account_id":b="sendMail"==t.value.nodeName?createDropdownFromApi("/api/mail/servers/out",g,"username","id",e):createDropdownFromApi("/api/sms/accounts",g,"name","id",e);break;case"template_id":b=createDropdownFromApi("/api/templates",g,"name","id",e);break;case"context":b=createDropdownFromApi("/api/voice/contexts",g,"name","name",e);break;case"mailbox":b=createDropdownFromApi("/api/voice/voicemails",g,"mailbox","id",e,["mailbox","context"],"%mailbox%@%context%");break;case"model":b=createDropdownFromArray(ISPEECHASRMODEL,g);break;case"ispeech_asr_language":b=createDropdownFromArray(ISPEECHASRLANG,g);break;case"beep":b=createDropdownFromArray(ISPEECHBEEP,g);break;case"hiddendigitspos":b=createDropdownFromArray(SECRETDIGITSPOS,g);break;case"ispeech_tts_language":b=createDropdownFromArray(ISPEECHLANG,g);break;case"google_tts_language":b=createDropdownFromArray(GOOGLETTSLANG,g);break;case"intKey":b=createDropdownFromArray(ASRINTKEYS,g);break;case"recordingFormat":b=createDropdownFromArray(RECORDINGFORMAT,g);break;case"answer":b=createDropdownFromArray(BOOLSELECT,g);break;case"list_id":b=createDropdownFromTigerDialList(g);break;case"interval_id":b=createGroupedDropdownFromApi("/api/intervals",g,"name","id",e,"SubIntervals");break;case"project_id":b=createDropdownFromApi("/api/square/projects",g,"name","id",e,null,null,e.editor.getOrCreateFilename());break;case"odbc_id":b=createDropdownFromApi("/api/square/odbc",g,"name","id",e);break;case"file_id":b=createDropdownFromApi("/api/sounds",g,"display_name","id",e);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(b=document.createElement("input")).setAttribute("type","number"),b.setAttribute("min",0),b.setAttribute("max",1e3),b.setAttribute("value",g),b.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(b=document.createElement("textarea")).innerHTML=g,b.className="form-control";break;case"sms_text":(b=document.createElement("textarea")).innerHTML=g,b.className="form-control",b.setAttribute("maxlength","160");break;default:(b=document.createElement("input")).setAttribute("value",g),b.className="form-control"}b.setAttribute("id",p);var f=e.createDiv("col-sm-8");if(f.appendChild(b),mxResources.get("help_"+u)){var E=e.createDiv("p");E.className="help-block",mxUtils.write(E,mxResources.get("help_"+u)),f.appendChild(E)}h.appendChild(f),c.appendChild(h)}o.appendChild(c);var y=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(a){for(var i=0;i<t.value.attributes.length;i++){var o="_"+t.value.attributes[i].name,s=t.value.attributes[i].name;t.setAttribute(s,document.getElementById(o).value)}n.refresh(t),e.hideDialog()}));y.className="btn blue";var A=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});A.className="btn default",s.appendChild(y),s.appendChild(A),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router"])}(),function(){"use strict";function e(e,t){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),t.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),t.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.help","app.motiondialer","app.login","app.errors"])}(),function(){"use strict";function e(e,t){e.state("app.login",{url:"/login",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),t.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver",function(e){return e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver",function(e){return e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),t.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams",function(e,t){return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions",id:t.id})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver",function(e){return e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),t.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,t){return e.resolve("squareProject@get",{id:t.id})}],users:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!1})}],trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!1})}],queues:["apiResolver",function(e){return e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!1})}],sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!1})}],variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!1})}],databases:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!1})}],projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!1})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!1})}],intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!1})}],mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!1})}],templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!1})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!1})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver",function(e){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver",function(e){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,t){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),t.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,t){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description",id:t.id})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,t){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:t.id})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),t.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@get",_.merge({sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var t={},n=0;n<e.rows.length;n++)t[e.rows[n].id]=e.rows[n].name;return t}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,permissionId:300,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@get",{id:t.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","contact",function(e,t){return e.resolve("cmHopper@get",{ContactId:t.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","contact",function(e,t){return e.resolve("cmHopperFinal@get",{ContactId:t.id,fields:"uniqueid,phone,status,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","contact",function(e,t){return e.resolve("cmHopperHistory@get",{ContactId:t.id,fields:"uniqueid,ContactId,phone,status,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],companies:["apiResolver","$stateParams",function(e,t){return e.resolve("cmCompany@get")}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,t){return t.ListId?e.resolve("cmList@getCustomFields",{id:t.ListId}):null}],tags:["apiResolver","$stateParams",function(e,t){return e.resolve("tag@get")}]},authenticate:!0,permissionId:300,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),t.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.dashboards.general"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.dashboard",{url:"/dashboard",data:{selectedTab:0},views:{dashboard:{templateUrl:"app/main/apps/dashboards/views/general/agent/dashboard/agent.general.dashboard.html",controller:"AgentDashboardDashboardGeneralController as vm"}},resolve:{rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}],rpcVoiceQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],voiceQueues:["apiResolver","Auth",function(e,t){return e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",limit:10,page:1})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.recordings",{url:"/recordings",data:{selectedTab:1},views:{recordings:{templateUrl:"app/main/apps/dashboards/views/general/agent/recordings/agent.general.recordings.html",controller:"AgentRecordigsDashboardGeneralController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth",function(e,t){return e.resolve("user@getRecordings",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.contacts",{url:"/contacts",data:{selectedTab:2},views:{contacts:{templateUrl:"app/main/apps/dashboards/views/general/agent/contacts/agent.general.contacts.html",controller:"AgentContactsDashboardGeneralController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,t){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name",sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mycontacts",{url:"/mycontacts",data:{selectedTab:3},views:{mycontacts:{templateUrl:"app/main/apps/dashboards/views/general/agent/mycontacts/agent.general.mycontacts.html",controller:"AgentMyContactsDashboardGeneralController as vm"}},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.agent",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",data:{selectedTab:0},views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,t,n){var a=n.getCurrentUser();return a&&"agent"===a.role?t.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):t.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){var t=e.getCurrentUser();return t&&"agent"===t.role?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,t){return e.resolve("user@getLists",{id:t.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver","Auth",function(e,t){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["app.dashboards.general.user","app.dashboards.general.agent"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound"}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound"})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound"}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound"})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver",function(e){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver",function(e){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),t.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.help",{abstract:!0,url:"/help"}),t.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1405,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver",function(e){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver",function(e){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver",function(e){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver",function(e){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),t.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver",function(e){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,offset:0})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",id:t.id})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}),t.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver",function(e){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",id:t.id})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver",function(e){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,t){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",id:t.id})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),t.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.agents",{url:"/agents",controller:"AgentsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role,userpic,internal,online,motiondialerPause,pauseType,lastLoginAt,lastPauseAt",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.telephones",{url:"/telephones",controller:"TelephonesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.trunks",{url:"/trunks",controller:"TrunksMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver",function(e){return e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:410})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",["timer"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver",function(e){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver",function(e){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),t.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,min_mailbox,securePassword,stunaddr",limit:10,offset:0})}]},authenticate:!0,permissionId:1401,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,Smtp.service,Smtp.host,Smtp.user,Smtp.pass,Smtp.port,Smtp.secure,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1402,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1403,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultHeaderWhiteLabel,headerWhiteLabel",limit:10,offset:0})}]},authenticate:!0,permissionId:1407,bodyClass:"settings"}),t.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1405,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1406,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1404,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver",function(e){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver",function(e){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),t.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",id:t.id})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",id:t.id})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",id:t.id})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver",function(e){return e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}),t.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver",function(e){return e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver",function(e){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,t){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,interval,description",id:t.id})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,t){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:t.id})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver",function(e){return e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:42,bodyClass:"tools"}).state("app.tools.schedules.edit",{url:"/:id?tab",params:{schedule:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/edit/view.html",controller:"ScheduleController as vm"}},resolve:{schedule:["apiResolver","$stateParams",function(e,t){return e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",id:t.id})}]},authenticate:!0,permissionId:42,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver",function(e){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,t){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:t.id})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,t){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",id:t.id})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}),t.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},authenticate:!0,permissionId:410}).state("app.voice.realtime.agents",{url:"/agents",controller:"AgentsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role,userpic,internal,online,voicePause,pauseType,lastLoginAt,lastPauseAt",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver",function(e){return e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:410})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",["timer"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver",function(e){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",id:t.id})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.inboundroutes",{url:"/inboundroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundroutes/inboundroutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundroutes.edit",{url:"/:id?tab",params:{inboundroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundroutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.outboundroutes",{url:"/outboundroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundroutes/outboundroutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundroutes.edit",{url:"/:id?tab",params:{outboundroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundroutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.internalroutes",{url:"/internalroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalroutes/internalroutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalroutes.edit",{url:"/:id?tab",params:{internalroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalroutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver",function(e){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:t.id})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver",function(e){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:t.id})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver",function(e){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver",function(e){return e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.chanSpies.edit",{url:"/:id?tab",params:{chanSpy:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/edit/view.html",controller:"ChanSpyController as vm"}},resolve:{chanSpy:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",id:t.id})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}),t.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","angular.filter","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(){}angular.module("app.navigation",[]).config(e)}(),function(){"use strict";function e(e,t){e.addPart("app/quick-panel"),t.register("quickPanel.activities",["app/data/quick-panel/activities.json"]),t.register("quickPanel.contacts",["app/data/quick-panel/contacts.json"]),t.register("quickPanel.events",["app/data/quick-panel/events.json"]),t.register("quickPanel.notes",["app/data/quick-panel/notes.json"])}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e,t,n,a){e.$on("$stateChangeStart",function(e,n){return n.hasOwnProperty("authenticate")&&n.authenticate&&!a.isLoggedIn()?(e.preventDefault(),t.go("app.login",{},{reload:!0,notify:!0})):a.isLoggedIn()&&n.hasOwnProperty("permissionId")&&n.permissionId&&!a.hasPermission(n.permissionId)&&!a.hasRole("admin")?(e.preventDefault(),t.go("app.dashboards.general",{},{reload:!0,notify:!0})):void 0})}e.$inject=["$rootScope","$state","$window","Auth"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(e,t,n,a){function i(){var e=n.defer();return c("agent")?a.user.login({id:h.id}).$promise.then(function(){console.log("AGENT LOGGED IN"),e.resolve()}).catch(function(t){e.reject(t)}):e.resolve(),e.promise}function o(e){var o=n.defer();return a.auth.local(e).$promise.then(function(e){return t.put("motion.token",e.token),a.user.get({id:e.id,fields:"id,role,fullname,name,internal,email,userpic,permissions,voicePause,pauseType"}).$promise}).then(function(e){return h=e,h.lastLoginAt=moment(),t.put("motion.user",JSON.stringify(e)),i()}).then(function(){o.resolve()}).catch(function(e){o.reject(e.data)}),o.promise}function s(){var e=n.defer();return c("agent")?a.user.logout({id:h.id}).$promise.then(function(){console.log("AGENT LOGGED OUT")}).catch(function(e){console.log(e)}).finally(function(){e.resolve()}):e.resolve(),e.promise}function r(){h=null,t.remove("motion.user"),t.remove("motion.token")}function l(e){n.defer();return e?(r(),n.resolve()):s().then(r).catch(function(e){console.error(e)})}function d(){return!(!h||!u())}function c(e){return!!h&&h.role===e}function m(e){return!!h&&_.includes(h.permissions,e)}function u(){return t.get("motion.token")}function p(){return h}function g(e){return h=e,t.put("motion.user",JSON.stringify(e)),h}var h;return function(){t.get("motion.user")&&(h=JSON.parse(t.get("motion.user")))}(),{login:o,logout:l,queueLogin:i,isLoggedIn:d,hasRole:c,hasPermission:m,getToken:u,getCurrentUser:p,updateCurrentUser:g}}e.$inject=["$location","$cookies","$q","api"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(e,t,n,a,i){var o;return{request:function(e){var t=n.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&t&&(e.headers.Authorization="Bearer "+t),e},responseError:function(e){switch(e.status){case 401:n.remove("motion.user"),n.remove("motion.token"),(o||(o=a.get("$state"))).go("app.login")}return t.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(e){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var t=document.createElement("a");return t.href=e,""===t.host&&(t.href=t.href),t},isSameOrigin:function(n,a){return n=t.urlParse(n),a=a&&[].concat(a)||[],(a=a.map(t.urlParse)).push(e.location),(a=a.filter(function(e){var t=n.hostname===e.hostname,a=n.protocol===e.protocol,i=n.port===e.port||""===e.port&&("80"===n.port||"443"===n.port);return t&&a&&i})).length>=1}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=e,this.$get=function(){function e(e){return!angular.isUndefined(t[e])&&t[e]}function n(e,n){t[e]=n}return{getConfig:e,setConfig:n}}}angular.module("app.core").provider("motionConfig",e)}(),function(){"use strict";function e(e,t,n,a){t.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),n.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){t.generate(),n.getConfig("disableMdInkRippleOnMobile")&&e.isMobile()&&angular.element("body").attr("md-no-ink",!0),e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(e,t,n){return{restrict:"E",compile:function(a,i){var o;return i.code||(o=a.html(),a.empty()),function(a,i,s){function r(e,t){var n=t.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],o=new RegExp("^"+i);a=a.map(function(e){return e.replace(o,"").replace(/\s+$/,"")});var r=hljs.highlight(s.language||s.lang,a.join("\n"),!0);r.value=r.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),n.append(r.value).addClass("highlight")}s.code&&(o=a.$eval(s.code));var l=a.$eval(s.shouldInterpolate);t.when(o).then(function(t){if(t){l&&(t=n(t)(a));var o=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');i.append(o),e(function(){r(t,o)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,t){function n(){e.$emit("msCard::cardTemplateLoaded",t)}e.cardTemplateLoaded=n}}}}angular.module("app.core").directive("msCard",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditClockItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditClockItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-clock/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options?a.options.data||(a.options.data={theme:"light",digitalFormat:"hh:mm:ss"}):a.options={},a.options.sizeX=a.options.sizeX<=1?2:a.options.sizeX,a.options.sizeY=a.options.sizeY<=1?2:a.options.sizeY,a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-clock/ms-dash-clock.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashClock",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditCounterItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,i){function o(e){n.result=e}function s(a){e.show({controller:"EditCounterItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-counter/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={background:"#FFFFFF",foreground:"#03A9F4",foregroundTitle:"#7f7f7f",query:{fields:[],limit:1}}),a.on("widget:"+n.options.id,o),n.editItem=s,n.onWidgetUpdate=o}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-counter/ms-dash-counter.html"}}e.$inject=["$mdDialog","$document","$interval","socket","api"],angular.module("app.core").directive("msDashCounter",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditIframeItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditIframeItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-iframe/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options&&!a.options.data&&(a.options.data={url:"https://www.xcallymotion.com/"}),a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-iframe/ms-dash-iframe.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashIframe",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditTableItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,a,o){function s(e){n.result=e}function r(a){e.show({controller:"EditTableItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-table/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={query:{}}),i.on("widget:"+n.options.id,s),n.editItem=r,n.onWidgetUpdate=s}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-table/ms-dash-table.html"}}e.$inject=["$mdDialog","$document","$interval","api","socket"],angular.module("app.core").directive("msDashTable",e)}(),function(){"use strict";function e(){function e(e){n=angular.extend({},n,e)}var t=this,n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};t.config=e,t.$get=function(){return n}}function t(e){return{require:"ngModel",priority:1,link:function(t,n,a,i){i.$formatters.push(e.formatter),i.$parsers.push(e.parser)}}}t.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",e).directive("msDatepickerFix",t)}(),function(){"use strict";function e(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(e){e.transfer=function(t,n,a,i){var o=[];if(a>=0)o.push(t[a]),n.push(t[a]),t.splice(a,1);else{for(var s=0;s<t.length;s+=1)n.push(t[s]);t.length=0,o=n}e.options.transferCallback&&e.options.transferCallback(o,i)}}],templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}}angular.module("app.core").directive("msDualMultiselect",e)}(),function(){"use strict";function e(){function e(e){u.forms.push(e)}function t(){s()||u.selectedIndex--}function n(){r()||u.selectedIndex++}function a(){u.selectedIndex=0}function i(){u.selectedIndex=o()-1}function o(){return u.forms.length}function s(){return 0===u.selectedIndex}function r(){return u.selectedIndex===o()-1}function l(){return angular.isDefined(u.forms[u.selectedIndex])&&u.forms[u.selectedIndex].$invalid}function d(){return u.selectedIndex>0&&angular.isDefined(u.forms[u.selectedIndex-1])&&u.forms[u.selectedIndex-1].$invalid}function c(){for(var e=0;e<u.forms.length;e++)if(u.forms[e].$invalid)return!0;return!1}function m(){u.selectedIndex=0;for(var e=0;e<u.forms.length;e++)u.forms[e].$setPristine(),u.forms[e].$setUntouched()}var u=this;u.forms=[],u.selectedIndex=0,u.registerForm=e,u.previousStep=t,u.nextStep=n,u.firstStep=a,u.lastStep=i,u.totalSteps=o,u.isFirstStep=s,u.isLastStep=r,u.currentStepInvalid=l,u.previousStepInvalid=d,u.formsIncomplete=c,u.resetForm=m}function t(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}function n(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,t,n,a){var i=a[0];a[1].registerForm(i)}}}}angular.module("app.core").controller("MsFormWizardController",e).directive("msFormWizard",t).directive("msFormWizardForm",n)}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(t,n){function a(){i.removeClass(o),n.remove(),t.$destroy()}var i=e.find("body"),o="ms-info-bar-active";i.addClass(o),t.removeInfoBar=a}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(e,t,n,a){function i(){d.options=d.options?angular.extend(c,d.options):c,s()}function o(e,n){"undefined"!=typeof imagesLoaded?t.imagesLoaded(e).on("done",function(){n()}):n()}function s(){e.$watch(function(){return d.container.width()},function(e,t){e!==t&&r()})}function r(){function t(){d.containerPos=d.container[0].getBoundingClientRect(),l(),e.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var t=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var a,i,o,s,r=d.items[n];(r=angular.element(r)).scope()&&r.scope().$broadcast("msMasonryItem:startReLayout"),r.css({width:d.columnWidth}),d.options.respectItemOrder?s=t[o=n%d.columnCount]:(s=Math.min.apply(Math,t),o=t.indexOf(s)),t[o]=s+r[0].getBoundingClientRect().height,a=Math.round(o*d.columnWidth),i=s,r.css({transform:"translate3d("+a+"px,"+i+"px,0px)"}),r.addClass("placed"),r.scope()&&r.scope().$broadcast("msMasonryItem:finishReLayout")}}m&&a.cancel(m),m=a(function(){t(),e.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}function l(){d.columnCount=d.options.columnCount,n("gt-md")?d.columnCount=d.options.columnCount:n("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:n("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs,d.columnWidth=d.containerPos.width/d.columnCount}var d=this,c={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},m=!0;d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=r,d.initialize=i,d.waitImagesLoaded=o,e.$on("msMasonry:relayout",function(){r()})}function t(e){function t(t,n){return{pre:function(e,a,i,o){o.options=angular.fromJson(n.options||"{}"),o.container=t},post:function(t,n,a,i){e(function(){i.initialize()})}}}return{restrict:"AEC",controller:"msMasonryController",compile:t}}function n(){function e(e,t,n,a){a.waitImagesLoaded(t,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return t.height()},function(e,t){e!==t&&a.reLayout()})}),t.on("$destroy",function(){a.reLayout()})}return{restrict:"AEC",require:"^msMasonry",priority:1,link:e}}e.$inject=["$scope","$window","$mdMedia","$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",t).directive("msMasonryItem",n)}(),function(){"use strict";function e(e,t,n,a){function i(e,t){c.selectedPalette=e,c.selectedHues=t}function o(e,t){l(e,t),d(),n.hide()}function s(){c.selectedColor={palette:"",hue:"",class:""},i(!1,!1),d()}function r(){if(c.modelCtrl.$viewValue&&""!==c.modelCtrl.$viewValue){var e,t;if("class"===c.msModelType){var n=c.modelCtrl.$viewValue.split("-");n.length>=5?(e=n[1]+"-"+n[2],t=n[3]):(e=n[1],t=n[2])}else"obj"===c.msModelType&&(e=c.modelCtrl.$viewValue.palette,t=c.modelCtrl.$viewValue.hue||500);l(e,t)}else s()}function l(t,n){c.selectedColor={palette:t,hue:n,class:"md-"+t+"-"+n+"-bg",bgColorValue:a.rgba(c.palettes[t][n].value),fgColorValue:a.rgba(c.palettes[t][n].contrast)},"obj"!==c.msModelType||angular.equals(c.selectedColor,c.modelCtrl.$viewValue)||d(),i(t,c.palettes[t]),e.$selectedColor=c.selectedColor}function d(){"class"===c.msModelType?c.modelCtrl.$setViewValue(c.selectedColor.class):"obj"===c.msModelType&&c.modelCtrl.$setViewValue(c.selectedColor)}var c=this;c.palettes=t,c.selectedPalette=!1,c.selectedHues=!1,e.$selectedColor={},c.activateHueSelection=i,c.selectColor=o,c.removeColor=s,e.$watch("ngModel",r)}function t(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,t,n,a,i){var o=a[0];o.modelCtrl=a[1],o.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,t){return 1===t.nodeType})).length&&t.find("ms-color-picker-button").replaceWith(e)})}}}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",t)}(),function(){"use strict";function e(){function e(e,t){o={scope:e,element:t}}function t(){return o.scope.isNavFoldedOpen()}function n(){o.scope.toggleFold()}function a(){o.scope.openFolded()}function i(){o.scope.closeFolded()}var o={};return{setFoldable:e,isNavFoldedOpen:t,toggleFold:n,openFolded:a,closeFolded:i}}function t(e,t,n){return{restrict:"A",link:function(a,i,o){function s(){return p}function r(){(u=!u)?l():m()}function l(){g.addClass("ms-nav-folded"),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function d(e){angular.isDefined(e)&&e.preventDefault(),g.addClass("ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),b.find(h).remove(),b.parent().append(v),v.on("mouseenter touchstart",function(e){c(e),p=!1})}function c(e){angular.isDefined(e)&&e.preventDefault(),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),g.removeClass("ms-nav-folded-open"),b.parent().find(v).remove(),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function m(){g.removeClass("ms-nav-folded ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),i.off("mouseenter mouseleave")}var u="true"===o.msNavIsFolded,p=!1,g=angular.element(e[0].body),h=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),v=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),b=i.parent();n.setFoldable(a,i,u),u?l():m(),a.toggleFold=r,a.openFolded=d,a.closeFolded=c,a.isNavFoldedOpen=s,a.$on("$destroy",function(){h.off("mouseenter touchstart"),v.off("mouseenter touchstart"),i.off("mouseenter mouseleave")})}}}function n(){function e(){return l}function t(){l=!0}function n(){l=!1}function a(e,t){d.push({element:e,scope:t})}function i(){return c}function o(e,t){c.push({element:e,scope:t})}function s(){c=[]}var r=this,l=!1,d=[],c=[];r.isDisabled=e,r.enable=n,r.disable=t,r.setToggleItem=a,r.getLockedItems=i,r.setLockedItem=o,r.clearLockedItems=s}function a(e,t,n){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(a){return a.addClass("ms-nav"),function(a){e.$broadcast("msNav::expandMatchingToggles");var i=e.$on("$stateChangeSuccess",function(){e.$broadcast("msNav::expandMatchingToggles"),t.when("navigation").then(function(e){e.close(),n.isNavFoldedOpen()&&n.closeFolded()})});a.$on("$destroy",function(){i()})}}}}function i(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}function o(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}function s(e,t,n,a){return{restrict:"A",require:"^msNav",scope:!0,compile:function(i,o){return i.addClass("ms-nav-toggle"),angular.isUndefined(o.collapsed)&&(o.collapsed=!0),i.attr("collapsed",o.collapsed),function(i,o,s,r){function l(){r.isDisabled()||(r.disable(),d()?(r.clearLockedItems(),i.$emit("msNav::pushToLockedList"),e.$broadcast("msNav::collapse"),m().then(function(){r.enable()})):i.$broadcast("msNav::forceCollapse"))}function d(){return"true"===o.attr("collapsed")}function c(){return!d()}function m(){var e=t.defer();if(c())return e.reject({error:!0}),e.promise;o.attr("collapsed",!1);var a=angular.element(o.find("ms-nav-toggle-items")[0]);a.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var s=a[0].offsetHeight;return a.css({position:"",visibility:"",display:"",height:""}),i.$evalAsync(function(){n.animate(a,{display:"block",height:"0px"},{height:s+"px"},p.expandAnimation).then(function(){a.addClass(p.expanded),a.css({height:""}),e.resolve({success:!0})})}),e.promise}function u(){var e=t.defer();if(d())return e.reject({error:!0}),e.promise;o.attr("collapsed",!0);var a=angular.element(o.find("ms-nav-toggle-items")[0]),s=a[0].offsetHeight;return i.$evalAsync(function(){n.animate(a,{height:s+"px"},{height:"0px"},p.collapseAnimation).then(function(){a.removeClass(p.expanded),a.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}var p={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},g=o.find("a"),h=[],v=/\(.*\)/g;angular.forEach(g,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(v,""),h.push(t))}),r.setToggleItem(o,i),o.children(".ms-nav-button").on("click",l),i.$on("$destroy",function(){o.children(".ms-nav-button").off("click")}),i.$on("msNav::collapse",function(){var e=r.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,i)&&(t=!0)}),t||u().then(function(){r.enable()})}),i.$on("msNav::forceCollapse",function(){u().then(function(){r.enable()})}),i.$on("msNav::expandMatchingToggles",function(){var e=a.current.name,t=!1;angular.forEach(h,function(n){e===n&&(t=!0)}),t?m():u()}),i.$on("msNav::pushToLockedList",function(){r.setLockedItem(o,i)})}}}}t.$inject=["$document","$rootScope","msNavFoldService"],a.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],s.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",e).directive("msNavIsFolded",t).controller("MsNavController",n).directive("msNav",a).directive("msNavTitle",i).directive("msNavButton",o).directive("msNavToggle",s)}(),function(){"use strict";function e(){function e(e,t){if(angular.isString(e)){for(var n=e.split("."),i=n[n.length-1],r=a(n),l=!1,d=0;d<r.length;d++)if(r[d]._id===i){l=r[d];break}l?(angular.extend(l,t),l.uisref=o(l)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=i,t._path=e,t.uisref=o(t),r.push(t))}else s.error("path must be a string (eg. `dashboard.project`)")}function t(e){if(angular.isString(e)){for(var t=r,n=e.split("."),a=0;a<n.length;a++)for(var i=n[a],o=0;o<t.length;o++)if(t[o]._id===i){if(t[o]._path===e)return t.splice(o,1),!0;t=t[o].children;break}return!1}s.error("path must be a string (eg. `dashboard.project`)")}function n(e){e||(e=r).sort(i);for(var t=0;t<e.length;t++){var a=e[t].children;a.length>1&&a.sort(i),a.length>0&&n(a)}}function a(e){var t=r;if(1===e.length)return t;e.pop();for(var n=0;n<e.length;n++){for(var a=e[n],i=!0,o=0;o<t.length;o++)if(t[o]._id===a){t=t[o].children,i=!1;break}if(i){var s={_id:a,_path:e.join("."),title:a,weight:1,children:[]};t.push(s),t=s.children}}return t}function i(e,t){return parseInt(e.weight)-parseInt(t.weight)}function o(e){var t="";return angular.isDefined(e.state)&&(t=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(t=t+"("+angular.toJson(e.stateParams)+")")),t}var s=angular.injector(["ng"]).get("$log"),r=[],l=this;l.saveItem=e,l.deleteItem=t,l.sortByWeight=n,this.$get=function(){function a(){r=[],b&&(b.vm.navigation=r)}function i(e,t){v={node:e,scope:t}}function o(){return v}function s(e){if(e){for(var t=0;t<r.length;t++)if(r[t]._id===e)return[r[t]];return null}return r}function l(e){return h(s(e))}function d(e){b=e}function c(e){f=e}function m(){return f}function u(e){E=e}function p(){return E}function g(){b.toggleFolded()}function h(e){for(var t=[],n=0;n<e.length;n++){var a=angular.copy(e[n]);a.children=[],t.push(a),e[n].children.length>0&&(t=t.concat(h(e[n].children)))}return t}var v=null,b=null,f=null,E=null;return{saveItem:e,deleteItem:t,sort:n,clearNavigation:a,setActiveItem:i,getActiveItem:o,getNavigation:s,getFlatNavigation:l,setNavigationScope:d,setFolded:c,getFolded:m,setFoldedOpen:u,getFoldedOpen:p,toggleFolded:g}}}function t(e,t){function n(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")}var a=this;e.root?a.navigation=t.getNavigation(e.root):a.navigation=t.getNavigation(),a.toggleHorizontalMobileMenu=n,function(){t.sort()}()}function n(e,t,n,a){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(i){return i.addClass("ms-navigation"),function(i,o){function s(t){if(a.setFolded(t),t)e.$broadcast("msNavigation::collapse"),u.addClass("ms-navigation-folded"),r();else{var n=a.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),u.removeClass("ms-navigation-folded ms-navigation-folded-open"),d()}}function r(){o.parent().append(p),t(function(){p.on("mouseenter touchstart",c)})}function l(){u.find("#main").append(g),g.on("mouseenter touchstart",m)}function d(){g.remove()}function c(e){e&&e.preventDefault(),a.setFoldedOpen(!0);var t=a.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),u.addClass("ms-navigation-folded-open"),p.remove(),l()}function m(t){t&&t.preventDefault(),a.setFoldedOpen(!1),e.$broadcast("msNavigation::collapse"),u.removeClass("ms-navigation-folded-open"),g.remove(),r()}var u=angular.element("body"),p=angular.element('<div id="ms-navigation-fold-expander"></div>'),g=angular.element('<div id="ms-navigation-fold-collapser"></div>'),h=n("navigation");a.setNavigationScope(i),function(){null===a.getFolded()&&a.setFolded(i.folded),a.getFolded()&&(t(function(){e.$broadcast("msNavigation::collapse")}),u.addClass("ms-navigation-folded"),r())}(),i.$watch(function(){return h.isLockedOpen()},function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&a.getFolded())if(t)e.$broadcast("msNavigation::collapse");else{var i=a.getActiveItem();i&&i.scope.$emit("msNavigation::stateMatched")}}),i.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||s(e)}),i.toggleFolded=function(){s(!a.getFolded())},i.$on("$stateChangeStart",function(){h.close()}),i.$on("$destroy",function(){g.off("mouseenter touchstart"),p.off("mouseenter touchstart")})}}}}function a(e,t,n,a,i,o){function s(){m.collapsed?m.expand():m.collapse()}function r(){var t=m.element.children("ul"),n=t[0].offsetHeight;e.$evalAsync(function(){m.collapsed=!0,m.element.addClass("collapsing"),a.animate(t,{display:"block",height:n+"px"},{height:"0px"},m.animateHeightClass).then(function(){t.css({display:"",height:""}),m.element.removeClass("collapsing")}),e.$broadcast("msNavigation::collapse")})}function l(){var t=m.element.children("ul");t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var i=t[0].offsetHeight;t.css({position:"",visibility:"",display:"",height:""}),e.$evalAsync(function(){m.collapsed=!1,m.element.addClass("expanding"),a.animate(t,{display:"block",height:"0px"},{height:i+"px"},m.animateHeightClass).then(function(){t.css({height:""}),m.element.removeClass("expanding")}),n.$broadcast("msNavigation::collapse",m.node._path)})}function d(){return m.node.class}function c(){return!(!angular.isDefined(m.node.hidden)||!angular.isFunction(m.node.hidden))&&m.node.hidden()}var m=this;m.element=t,m.node=e.node,m.hasChildren=void 0,m.collapsed=void 0,m.collapsable=void 0,m.group=void 0,m.animateHeightClass="animate-height",m.toggleCollapsed=s,m.collapse=r,m.expand=l,m.getClass=d,m.isHidden=c,function(){if(m.hasChildren=m.node.children.length>0,m.group=!(!angular.isDefined(m.node.group)||!0!==m.node.group),!m.hasChildren||m.group?m.collapsable=!1:m.collapsable=!(!angular.isUndefined(m.node.collapsable)&&"boolean"==typeof m.node.collapsable&&!0!==m.node.collapsable),m.collapsable?m.collapsed=!(!angular.isUndefined(m.node.collapsed)&&"boolean"==typeof m.node.collapsed&&!0!==m.node.collapsed):m.collapsed=!1,m.node.state===i.current.name||i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched"),o.setActiveItem(m.node,e)}e.$on("msNavigation::stateMatched",function(){m.collapsable&&m.collapsed&&e.$evalAsync(function(){m.collapsed=!1})}),e.$on("msNavigation::collapse",function(e,t){if(!m.collapsed&&m.collapsable)if(angular.isUndefined(t))m.collapse();else{var n=t.split("."),a=[],i=o.getActiveItem();if(i&&(a=i.node._path.split(".")),n.indexOf(m.node._id)>-1)return;if(a.indexOf(m.node._id)>-1)return;m.collapse()}}),e.$on("$stateChangeSuccess",function(){if(m.node.state===i.current.name){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;o.setActiveItem(m.node,e),n.$broadcast("msNavigation::collapse",m.node._path)}if(i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched")}})}()}function i(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function o(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,t,n,a){a.collapsable&&t.on("click",a.toggleCollapsed),e.$on("$destroy",function(){t.off("click")})}}}}function s(e){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(t){return t.addClass("ms-navigation-horizontal"),function(t){e.setNavigationScope(t)}}}}function r(e,t,n,a,i){function o(){return s.node.class}var s=this;s.element=t,s.node=e.node,s.hasChildren=void 0,s.group=void 0,s.getClass=o,function(){if(s.isActive=!1,s.hasChildren=s.node.children.length>0,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;e.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,e)}e.$on("msNavigation::stateMatched",function(){s.hasChildren&&e.$evalAsync(function(){s.isActive=!0})}),e.$on("msNavigation::clearActive",function(){if(s.hasChildren){var t=[],n=i.getActiveItem();n&&(t=n.node._path.split(".")),t.indexOf(s.node._id)>-1?e.$evalAsync(function(){s.isActive=!0}):e.$evalAsync(function(){s.isActive=!1})}}),e.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,e),n.$broadcast("msNavigation::clearActive")}})}()}function l(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function d(e){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(t){return t.addClass("ms-navigation-horizontal-item"),function(t,n,a,i){function o(){i.hasChildren&&!e("gt-md")&&n.toggleClass("expanded")}n.on("click",o),t.$on("$destroy",function(){n.off("click")})}}}}t.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],a.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],s.$inject=["msNavigationService"],r.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],d.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",e).controller("MsNavigationController",t).directive("msNavigation",n).controller("MsNavigationNodeController",a).directive("msNavigationNode",i).directive("msNavigationItem",o).directive("msNavigationHorizontal",s).controller("MsNavigationHorizontalNodeController",r).directive("msNavigationHorizontalNode",l).directive("msNavigationHorizontalItem",d)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){r.mobileBarActive=!r.mobileBarActive}var r=this;r.mobileBarActive=!1,r.toggleMobileBar=s}function t(){return{restrict:"E",scope:{},require:"msPhonebar",controller:"MsPhonebarController as MsPhonebar",bindToController:{},templateUrl:"app/core/directives/ms-phonebar/ms-phonebar.html",compile:function(e){return e.addClass("ms-phonebar"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",t)}(),function(){"use strict";function e(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,t){var n=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];t.addClass(n)}}}angular.module("app.core").directive("msRandomClass",e)}(),function(){"use strict";function e(){return{restrict:"A",link:function(e,t){var n=angular.element('<div class="ms-responsive-table-wrapper"></div>');t.after(n),n.append(t)}}}angular.module("app.core").directive("msResponsiveTable",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=e,this.$get=function(){function e(){return t}return{getConfig:e}}}function t(e,t,n,a){return{restrict:"AE",compile:function(i){if(!(a.getConfig("disableCustomScrollbars")||a.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return i.addClass("ms-scroll"),function(n,a,i){function o(){PerfectScrollbar.update(a[0])}var s={};i.msScroll&&(s=n.$eval(i.msScroll)),s=angular.extend({},t.getConfig(),s),e(function(){PerfectScrollbar.initialize(a[0],s)},0),a.on("mouseenter",o),n.$watch(function(){return a.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$watch(function(){return a.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$on("$destroy",function(){a.off("mouseenter"),PerfectScrollbar.destroy(a[0])})}}}}t.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",e).directive("msScroll",t)}(),function(){"use strict";function e(e,t,n){function a(e){if(!p.collapsed){var t=null===e;(angular.isArray(e)||t)&&(p.selectedResultIndex=0,p.results=e)}}function i(){p.collapsed=!1,e.expand(),p.onExpand&&angular.isFunction(p.onExpand)&&p.onExpand()}function o(){p.query="",p.populateResults(null),p.collapsed=!0,e.collapse(),p.onCollapse&&angular.isFunction(p.onCollapse)&&p.onCollapse()}function s(){g&&p.collapse()}function r(e){e.preventDefault()}function l(e){var t=e.keyCode;switch([27,38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:if(!p.results)return;p.handleResultClick(p.results[p.selectedResultIndex]);break;case 27:p.collapse();break;case 38:p.selectedResultIndex-1>=0&&(p.selectedResultIndex--,p.ensureSelectedResultIsVisible());break;case 40:if(!p.results)return;p.selectedResultIndex+1<p.results.length&&(p.selectedResultIndex++,p.ensureSelectedResultIsVisible())}}function d(e){p.ignoreMouseEvents||(p.selectedResultIndex=e)}function c(){p.ignoreMouseEvents=!0,n.cancel(p.mouseEventIgnoreTimeout),p.mouseEventIgnoreTimeout=n(function(){p.ignoreMouseEvents=!1},250)}function m(e){p.onResultClick&&p.onResultClick({item:e}),p.collapse()}function u(){var e=t.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[p.selectedResultIndex]);if(e&&n){var a=n.position().top-8,i=n.position().top+n.outerHeight()+8;p.temporarilyIgnoreMouseEvents(),e.scrollTop()>a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}var p=this;p.collapsed=!0,p.query="",p.queryOptions={debounce:p.debounce||0};var g=!(!p.collapseOnBlur||"true"!=p.collapseOnBlur);p.resultsLoading=!1,p.results=null,p.selectedResultIndex=0,p.ignoreMouseEvents=!1,p.populateResults=a,p.expand=i,p.collapse=o,p.blurCollapse=s,p.absorbEvent=r,p.handleKeydown=l,p.handleMouseenter=d,p.temporarilyIgnoreMouseEvents=c,p.handleResultClick=m,p.ensureSelectedResultIsVisible=u,function(){e.$watch("MsSearchBar.query",function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&!p.collapsed){var a=e.$parent.$eval(p.onSearch,{query:t}),i=angular.isArray(a),o=a&&!!a.then;i&&p.populateResults(a),o&&(p.resultsLoading=!0,a.then(function(e){p.populateResults(e)},function(){p.populateResults([])}).finally(function(){p.resultsLoading=!1}))}})}()}function t(e){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as MsSearchBar",bindToController:{debounce:"=?",onSearch:"@",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"@"},templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(t){return t.addClass("ms-search-bar"),function(t,n){function a(){n.addClass("expanded"),s.addClass("ms-search-bar-expanded"),o.focus()}function i(){n.removeClass("expanded"),s.removeClass("ms-search-bar-expanded")}var o,s=e.find("body");t.collapse=i,t.expand=a,function(){o=n.find("#ms-search-bar-input")}()}}}}e.$inject=["$scope","$element","$timeout"],t.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",t)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){for(var e=[],t=o.getFlatNavigation(),n=i.defer(),s=0;s<t.length;s++)t[s].uisref&&e.push(t[s]);if(f.query){e=e.filter(function(e){if(angular.lowercase(e.title).search(angular.lowercase(f.query))>-1)return!0});for(var r=0;r<e.length;r++){e[r].hasShortcut=!1;for(var l=0;l<f.shortcuts.length;l++)if(f.shortcuts[l]._id===e[r]._id){e[r].hasShortcut=!0;break}}}else f.shortcuts.length>0&&(e=f.shortcuts);return f.selectedResultIndex=0,a(function(){n.resolve(e)},250),n.promise}function r(){var e=i.defer(),n=angular.fromJson(t.get("motion.shortcuts"));return angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n))),e.resolve(n),e.promise}function l(){var e=i.defer();return t.put("motion.shortcuts",angular.toJson(f.shortcuts)),a(function(){e.resolve({success:!0})},250),e.promise}function d(e){e.hasShortcut=!0,f.shortcuts.push(e),f.saveShortcuts()}function c(e){e.hasShortcut=!1;for(var t=0;t<f.shortcuts.length;t++)f.shortcuts[t]._id===e._id&&(f.shortcuts.splice(t,1),f.query||(0===f.shortcuts.length?f.results=null:t>=f.shortcuts.length&&(f.selectedResultIndex=f.shortcuts.length-1)));f.saveShortcuts()}function m(e){e.hasShortcut?f.removeShortcut(e):f.addShortcut(e)}function u(e){e.preventDefault()}function p(e){var t=e.keyCode;switch([38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:f.handleResultClick(f.results[f.selectedResultIndex]);break;case 38:f.selectedResultIndex-1>=0&&(f.selectedResultIndex--,f.ensureSelectedResultIsVisible());break;case 40:f.selectedResultIndex+1<f.results.length&&(f.selectedResultIndex++,f.ensureSelectedResultIsVisible())}}function g(e){f.ignoreMouseEvents||(f.selectedResultIndex=e)}function h(){f.ignoreMouseEvents=!0,a.cancel(f.mouseEventIgnoreTimeout),f.mouseEventIgnoreTimeout=a(function(){f.ignoreMouseEvents=!1},250)}function v(){var e=n.find("#ms-shortcut-add-menu").find(".results"),t=angular.element(e.find(".result")[f.selectedResultIndex]);if(e&&t){var a=t.position().top-8,i=t.position().top+t.outerHeight()+8;f.temporarilyIgnoreMouseEvents(),e.scrollTop()>a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}function b(){f.mobileBarActive=!f.mobileBarActive}var f=this;f.query="",f.queryOptions={debounce:300},f.resultsLoading=!1,f.selectedResultIndex=0,f.ignoreMouseEvents=!1,f.mobileBarActive=!1,f.results=null,f.shortcuts=[],f.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){f.saveShortcuts()}},f.populateResults=s,f.loadShortcuts=r,f.saveShortcuts=l,f.addShortcut=d,f.removeShortcut=c,f.handleResultClick=m,f.absorbEvent=u,f.handleKeydown=p,f.handleMouseenter=g,f.temporarilyIgnoreMouseEvents=h,f.ensureSelectedResultIsVisible=v,f.toggleMobileBar=b,function(){f.loadShortcuts().then(function(e){f.shortcuts=e,f.shortcuts.length>0&&(f.results=e)}),e.$watch("MsShortcuts.query",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||(f.resultsLoading=!0,f.populateResults().then(function(e){f.results=e},function(){f.results=[]}).finally(function(){f.resultsLoading=!1}))})}()}function t(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",t)}(),function(){"use strict";function e(){return{restrict:"A",require:"^mdSidenav",link:function(e,t,n,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(t.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}}angular.module("app.core").directive("msSidenavHelper",e)}(),function(){"use strict";function e(e){return{restrict:"E",link:function(t,n){var a=t.$on("msSplashScreen::remove",function(){e.leave(n).then(function(){a(),t=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){function t(e){C.orientation=e||"horizontal"}function n(e){C.mainForm=e}function a(e,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||C.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return C.steps.push(a),C.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a}function i(){C.setCurrentStep(C.currentStepNumber)}function o(){e(function(){for(var e=0;e<C.steps.length;e++)C.steps[e].form.$setPristine(),C.steps[e].form.$setUntouched();C.mainForm.$setPristine(),C.mainForm.$setUntouched(),c()})}function s(e){if(y(e))if(C.currentStepNumber=e,"horizontal"===C.orientation){for(var t=0;t<C.steps.length;t++)C.steps[t].element.hide();C.steps[C.currentStepNumber-1].element.show()}else if("vertical"===C.orientation){for(var n=0;n<C.steps.length;n++)C.steps[n].element.find(".ms-stepper-step-content").hide();C.steps[C.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}}function r(e){b(e)||C.setCurrentStep(e)}function l(){for(var e=C.currentStepNumber-1,t=e;t>=1;t--)if(!b(t)){e=t;break}C.setCurrentStep(e)}function d(){for(var e=C.currentStepNumber+1,t=e;t<=C.steps.length;t++)if(!b(t)){e=t;break}C.setCurrentStep(e)}function c(){C.setCurrentStep(1)}function m(){C.setCurrentStep(C.steps.length)}function u(){return 1===C.currentStepNumber}function p(){return C.currentStepNumber===C.steps.length}function g(e){return y(e)?C.currentStepNumber===e:null}function h(e){if(!y(e))return null;for(var t=!1,n=1;n<e;n++)if(!E(n)){t=!0;break}return t}function v(e){return y(e)?C.steps[e-1].scope.optionalStep:null}function b(e){return y(e)?!!C.steps[e-1].scope.hideStep:null}function f(e){return!b(e.stepNumber)}function E(e){return y(e)?!!v(e)||C.steps[e-1].form.$valid:null}function y(e){return!(angular.isUndefined(e)||e<1||e>C.steps.length)}function A(){return C.mainForm.$valid}var C=this;C.mainForm=void 0,C.orientation="horizontal",C.steps=[],C.currentStep=void 0,C.currentStepNumber=1,C.setOrientation=t,C.registerMainForm=n,C.registerStep=a,C.setupSteps=i,C.resetForm=o,C.setCurrentStep=s,C.gotoStep=r,C.gotoPreviousStep=l,C.gotoNextStep=d,C.gotoFirstStep=c,C.gotoLastStep=m,C.isFirstStep=u,C.isLastStep=p,C.isStepCurrent=g,C.isStepDisabled=h,C.isStepOptional=v,C.isStepHidden=b,C.filterHiddenStep=f,C.isStepValid=E,C.isStepNumberValid=y,C.isFormValid=A}function t(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,t,n,a){var i=a[0],o=a[1];o.setOrientation("horizontal"),o.registerMainForm(i),o.setupSteps()}}}}function n(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),o.registerStep(t,e,i),t.hide()}}}}function a(e){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(t){return t.addClass("ms-stepper"),function(t,n,a,i){var o=i[0],s=i[1];e(function(){s.setOrientation("vertical"),s.registerMainForm(o),s.setupSteps()})}}}}function i(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),e.stepInfo=o.registerStep(t,e,i),e.MsStepper=o,t.find(".ms-stepper-step-content").hide()}}}}e.$inject=["$timeout"],a.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",t).directive("msHorizontalStepperStep",n).directive("msVerticalStepper",a).directive("msVerticalStepperStep",i)}(),function(){"use strict";function e(){function e(e){n.scrollEl=e}function t(){return n.scrollEl}var n=this;n.scrollEl=void 0,n.setScrollEl=e,n.getScrollEl=t}function t(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){function i(){d.scrollTop()+d.height()+c>r.position().top&&(r.addClass("show"),s(),e.loadMore().then(function(){r.removeClass("show"),o()},function(){r.remove()}))}function o(){d.on("scroll",i)}function s(){d.off("scroll",i)}var r=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');t.append(r);var l={scrollEl:"#content"};l=angular.extend(l,e.msTimeline,{});var d=angular.element(l.scrollEl);a.setScrollEl(d);var c=144;o(),e.$on("$destroy",function(){s()})}}}}function n(e,t){return{scope:!0,require:"^msTimeline",compile:function(n){return n.addClass("ms-timeline-item").addClass("hidden"),function(n,a,i,o){function s(e){var n=t.defer(),a=e.find("img");return a.length>0?a.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function r(){m.scrollTop()+m.height()>a.position().top+l&&(e(function(){c=!0}),m.off("scroll",r))}var l=72,d=!1,c=!1,m=o.getScrollEl();!function(){a.find("ms-card")?n.$on("msCard::cardTemplateLoaded",function(t,n){s(angular.element(n[0])).then(function(){e(function(){d=!0})})}):s(a).then(function(){e(function(){d=!0})}),m.on("scroll",r),r()}();var u=n.$watch(function(){return d&&c},function(e,t){angular.equals(e,t)||e&&(a.removeClass("hidden").addClass("animate"),u())},!0)}}}}n.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",e).directive("msTimeline",t).directive("msTimelineItem",n)}(),function(){"use strict";function e(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone={"Europe/Andorra":{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},"Asia/Dubai":{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},"Asia/Kabul":{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},"Europe/Tirane":{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},"Asia/Yerevan":{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},"Antarctica/Rothera":{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Palmer":{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Mawson":{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},"Antarctica/Davis":{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},"Antarctica/Casey":{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},"Antarctica/Vostok":{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},"Antarctica/DumontDUrville":{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},"Antarctica/Syowa":{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},"Antarctica/Troll":{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},"America/Argentina/Buenos_Aires":{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Cordoba":{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Salta":{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Jujuy":{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Tucuman":{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Catamarca":{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/La_Rioja":{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Juan":{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Mendoza":{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Luis":{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Rio_Gallegos":{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Ushuaia":{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"Pacific/Pago_Pago":{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},"Europe/Vienna":{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},"Australia/Lord_Howe":{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Antarctica/Macquarie":{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Hobart":{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Currie":{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Melbourne":{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Sydney":{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Broken_Hill":{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Brisbane":{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Lindeman":{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Adelaide":{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Darwin":{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},"Australia/Perth":{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},"Australia/Eucla":{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},"Asia/Baku":{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},"America/Barbados":{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},"Asia/Dhaka":{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},"Europe/Brussels":{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},"Europe/Sofia":{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},"Atlantic/Bermuda":{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},"Asia/Brunei":{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},"America/La_Paz":{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},"America/Noronha":{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Belem":{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Fortaleza":{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Recife":{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Araguaina":{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Maceio":{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Bahia":{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Sao_Paulo":{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Campo_Grande":{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Cuiaba":{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Santarem":{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Porto_Velho":{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Boa_Vista":{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Manaus":{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Eirunepe":{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Rio_Branco":{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Nassau":{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},"Asia/Thimphu":{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},"Europe/Minsk":{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},"America/Belize":{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},"America/St_Johns":{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},"America/Halifax":{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Glace_Bay":{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Moncton":{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Goose_Bay":{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Blanc-Sablon":{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Toronto":{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Nipigon":{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Thunder_Bay":{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Iqaluit":{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Pangnirtung":{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Resolute":{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Atikokan":{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Rankin_Inlet":{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Winnipeg":{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Rainy_River":{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Regina":{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Swift_Current":{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Edmonton":{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Cambridge_Bay":{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Yellowknife":{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Inuvik":{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Creston":{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Dawson_Creek":{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Fort_Nelson":{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Vancouver":{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Whitehorse":{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Dawson":{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"Indian/Cocos":{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},"Europe/Zurich":{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},"Africa/Abidjan":{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},"Pacific/Rarotonga":{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},"America/Santiago":{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},"Pacific/Easter":{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},"Asia/Shanghai":{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},"Asia/Urumqi":{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},"America/Bogota":{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},"America/Costa_Rica":{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},"America/Havana":{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},"Atlantic/Cape_Verde":{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},"America/Curacao":{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},"Indian/Christmas":{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},"Asia/Nicosia":{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},"Europe/Prague":{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},"Europe/Berlin":{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},"Europe/Copenhagen":{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},"America/Santo_Domingo":{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},"Africa/Algiers":{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},"America/Guayaquil":{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},"Pacific/Galapagos":{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},"Europe/Tallinn":{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},"Africa/Cairo":{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},"Africa/El_Aaiun":{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},"Europe/Madrid":{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Africa/Ceuta":{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Atlantic/Canary":{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},"Europe/Helsinki":{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},"Pacific/Fiji":{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},"Atlantic/Stanley":{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},"Pacific/Chuuk":{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},"Pacific/Pohnpei":{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Pacific/Kosrae":{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Atlantic/Faroe":{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},"Europe/Paris":{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},"Europe/London":{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},"Asia/Tbilisi":{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},"America/Cayenne":{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},"Africa/Accra":{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},"Europe/Gibraltar":{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},"America/Godthab":{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},"America/Danmarkshavn":{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},"America/Scoresbysund":{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},"America/Thule":{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},"Europe/Athens":{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},"Atlantic/South_Georgia":{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},"America/Guatemala":{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},"Pacific/Guam":{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},"Africa/Bissau":{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},"America/Guyana":{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},"Asia/Hong_Kong":{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},"America/Tegucigalpa":{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},"America/Port-au-Prince":{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},"Europe/Budapest":{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},"Asia/Jakarta":{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Pontianak":{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Makassar":{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},"Asia/Jayapura":{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},"Europe/Dublin":{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},"Asia/Jerusalem":{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},"Asia/Kolkata":{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},"Indian/Chagos":{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},"Asia/Baghdad":{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},"Asia/Tehran":{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},"Atlantic/Reykjavik":{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},"Europe/Rome":{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},"America/Jamaica":{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},"Asia/Amman":{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},"Asia/Tokyo":{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},"Africa/Nairobi":{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},"Asia/Bishkek":{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},"Pacific/Tarawa":{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},"Pacific/Enderbury":{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},"Pacific/Kiritimati":{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},"Asia/Pyongyang":{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},"Asia/Seoul":{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},"America/Cayman":{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},"Asia/Almaty":{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Qyzylorda":{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Aqtobe":{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Aqtau":{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Oral":{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Beirut":{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},"Asia/Colombo":{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},"Africa/Monrovia":{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},"Europe/Vilnius":{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},"Europe/Luxembourg":{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},"Europe/Riga":{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},"Africa/Tripoli":{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},"Africa/Casablanca":{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},"Europe/Monaco":{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},"Europe/Chisinau":{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},"Pacific/Majuro":{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Pacific/Kwajalein":{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Asia/Rangoon":{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},"Asia/Ulaanbaatar":{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Hovd":{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},"Asia/Choibalsan":{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Macau":{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},"America/Martinique":{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},"Europe/Malta":{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},"Indian/Mauritius":{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},"Indian/Maldives":{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},"America/Mexico_City":{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Cancun":{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},"America/Merida":{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Monterrey":{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Matamoros":{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Mazatlan":{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Chihuahua":{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Ojinaga":{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Hermosillo":{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Tijuana":{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Santa_Isabel":{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Bahia_Banderas":{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"Asia/Kuala_Lumpur":{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Asia/Kuching":{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Africa/Maputo":{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},"Africa/Windhoek":{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},"Pacific/Noumea":{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},"Pacific/Norfolk":{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},"Africa/Lagos":{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},"America/Managua":{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},"Europe/Amsterdam":{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},"Europe/Oslo":{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},"Asia/Kathmandu":{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},"Pacific/Nauru":{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},"Pacific/Niue":{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},"Pacific/Auckland":{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},"Pacific/Chatham":{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},"America/Panama":{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},"America/Lima":{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},"Pacific/Tahiti":{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},"Pacific/Marquesas":{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},"Pacific/Gambier":{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},"Pacific/Port_Moresby":{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},"Pacific/Bougainville":{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},"Asia/Manila":{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},"Asia/Karachi":{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},"Europe/Warsaw":{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},"America/Miquelon":{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},"Pacific/Pitcairn":{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},"America/Puerto_Rico":{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},"Asia/Gaza":{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Asia/Hebron":{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Europe/Lisbon":{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Madeira":{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Azores":{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},"Pacific/Palau":{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},"America/Asuncion":{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},"Asia/Qatar":{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},"Indian/Reunion":{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},"Europe/Bucharest":{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},"Europe/Belgrade":{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},"Europe/Kaliningrad":{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},"Europe/Moscow":{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Simferopol":{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Volgograd":{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Samara":{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},"Asia/Yekaterinburg":{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},"Asia/Omsk":{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novosibirsk":{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novokuznetsk":{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Krasnoyarsk":{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Irkutsk":{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Chita":{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Yakutsk":{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Khandyga":{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Vladivostok":{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Sakhalin":{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Ust-Nera":{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Magadan":{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Srednekolymsk":{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},"Asia/Kamchatka":{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Anadyr":{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Riyadh":{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},"Pacific/Guadalcanal":{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},"Indian/Mahe":{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},"Africa/Khartoum":{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},"Europe/Stockholm":{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},"Asia/Singapore":{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},"America/Paramaribo":{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},"America/El_Salvador":{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},"Asia/Damascus":{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},"America/Grand_Turk":{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},"Africa/Ndjamena":{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},"Indian/Kerguelen":{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},"Asia/Bangkok":{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},"Asia/Dushanbe":{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},"Pacific/Fakaofo":{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},"Asia/Dili":{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},"Asia/Ashgabat":{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},"Africa/Tunis":{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},"Pacific/Tongatapu":{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},"Europe/Istanbul":{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},"America/Port_of_Spain":{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},"Pacific/Funafuti":{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},"Asia/Taipei":{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},"Europe/Kiev":{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Uzhgorod":{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Zaporozhye":{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Pacific/Wake":{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},"America/New_York":{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Detroit":{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Louisville":{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Monticello":{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Indianapolis":{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vincennes":{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Winamac":{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Marengo":{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Petersburg":{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vevay":{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Chicago":{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Tell_City":{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Knox":{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Menominee":{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Center":{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/New_Salem":{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Beulah":{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Denver":{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Boise":{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Phoenix":{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Los_Angeles":{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Metlakatla":{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Anchorage":{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Juneau":{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Sitka":{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Yakutat":{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Nome":{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Adak":{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},"Pacific/Honolulu":{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},"America/Montevideo":{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},"Asia/Samarkand":{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"Asia/Tashkent":{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"America/Caracas":{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},"Asia/Ho_Chi_Minh":{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},"Pacific/Efate":{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},"Pacific/Wallis":{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},"Pacific/Apia":{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},"Africa/Johannesburg":{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}}}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}}angular.module("app.core").directive("msTimezone",e)}(),function(){"use strict";function e(e,t){function n(){a()&&(i.flipped=!i.flipped,t.toggleClass("flipped",i.flipped))}function a(){return angular.isDefined(e.flippable)&&!0===e.flippable}var i=this;i.flipped=!1,i.flip=n}function t(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)})}}}}function n(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}function a(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",t).directive("msWidgetFront",n).directive("msWidgetBack",a)}(),function(){"use strict";function e(){return function(e){var t=Date.now()-new Date(e);return t<36e5?moment(e).fromNow():t<864e5?moment(e).format("HH:mm"):t<6048e5?moment(e).format("dddd"):moment(e).calendar()}}angular.module("app.core").filter("altDate",e)}(),function(){"use strict";function e(e){return function(t){return e.trustAsHtml(t)}}function t(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}function n(){return function(e){return e?e.replace(/ /g,""):""}}function a(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",t).filter("nospace",n).filter("humanizeDoc",a)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||!t)return e;if(0===t.length)return[];for(var n=[],a=0;a<e.length;a++){for(var i=e[a],o=!1,s=0;s<t.length;s++){var r=t[s];if(i.id===r){o=!0;break}}o&&n.push(i)}return n}}angular.module("app.core").filter("filterByIds",e)}(),function(){"use strict";function e(){return function(e,t,n){if(0===e.length||!n||0===n.length)return e;for(var a=[],i=0;i<e.length;i++){for(var o=e[i],s=!1,r=0;r<n.length;r++){var l=n[r];if(o[t].indexOf(l)>-1){s=!0;break}}s&&a.push(o)}return a}}angular.module("app.core").filter("filterByPropIds",e)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||0===t.length)return e;var n=[];return e.forEach(function(e){t.every(function(t){var n=!1;return e.tags.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e)}),n}}function t(){return function(e,t){if(0!==e.length&&0!==t.length){if(e.length<t.length)return[];var n=[];return t.every(function(t){var n=!1;return e.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e),n}}}angular.module("app.core").filter("filterByTags",e).filter("filterSingleByTags",t)}(),function(){"use strict";function e(e,t,n){function a(n,a){var o=n.split("@"),s=o[0],r=o[1],l=a||{};if(!s||!r)return t.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var d=e.defer(),c=i(s);return c?c[r](l,function(e){d.resolve(e)},function(e){d.reject(e)}):(t.error('Resource "'+s+'" is not defined in the api service!'),d.reject('Resource "'+s+'" is not defined in the api service!')),d.promise}function i(e){for(var a=e.split("."),i=n,o=0;o<a.length;o++){if(angular.isUndefined(i[a[o]])){t.error('Resource part "'+a[o]+'" is not defined!'),i=!1;break}i=i[a[o]]}return i||!1}return{resolve:a}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(){function e(e){s=e}function t(){return s}function n(){return r}function a(e,t){angular.isString(e)?angular.isArray(t)?r[e]={url:s+(t[0]||""),paramDefaults:t[1]||[],actions:t[2]||[],options:t[3]||{}}:o.error('"resource" must be an array and it must follow $resource definition'):o.error('"path" must be a string (eg. `dashboard.project`)')}var i=this,o=angular.injector(["ng"]).get("$log"),s="",r=[];i.setBaseUrl=e,i.getBaseUrl=t,i.getApiObject=n,i.register=a,this.$get=["$log","$q","$resource","$rootScope",function(n,i,o,s){function l(e,t){s.$broadcast("msApi::resolveStart");var a=e.split("@"),l=a[0],d=a[1],c=t||{};if(!l||!d)return n.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var m=i.defer(),u=r[l];return u?o(u.url,u.paramDefaults,u.actions,u.options)[d](c,function(e){m.resolve(e),s.$broadcast("msApi::resolveSuccess")},function(e){m.reject(e),s.$broadcast("msApi::resolveError")}):(n.error('Resource "'+l+'" is not defined in the api service!'),m.reject('Resource "'+l+'" is not defined in the api service!')),m.promise}function d(e,t,a,l){s.$broadcast("msApi::requestStart");var d=e.split("@"),c=d[0],m=d[1],u=t||{};if(!c||!m)return n.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var p=i.defer(),g=r[c];return g?o(g.url,g.paramDefaults,g.actions,g.options)[m](u,function(e){s.$broadcast("msApi::requestSuccess"),p.resolve(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)},function(e){s.$broadcast("msApi::requestError"),p.reject(e),angular.isDefined(l)&&angular.isFunction(l)&&l(e)}):(n.error('Resource "'+c+'" is not defined in the api service!'),p.reject('Resource "'+c+'" is not defined in the api service!')),p.promise}return{setBaseUrl:e,getBaseUrl:t,register:a,resolve:l,request:d}}]}angular.module("app.core").provider("msApi",e)}(),function(){"use strict";function e(e){function t(e,t){return t.indexOf(e)>-1}function n(){function t(e){for(var t=0;t<e.length;t++){var n=e[t].string,a=e[t].prop;if(o=e[t].versionSearch||e[t].identity,n){if(-1!==n.indexOf(e[t].subString))return e[t].identity}else if(a)return e[t].identity}}function n(e){var t=e.indexOf(o);if(-1!==t)return parseInt(e.substring(t+o.length+1))}if(r)return r;var a=[{string:e.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:e.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:e.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:e.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:e.opera,identity:"Opera"},{string:e.navigator.vendor,subString:"iCab",identity:"iCab"},{string:e.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:e.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:e.navigator.vendor,subString:"Camino",identity:"Camino"},{string:e.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:e.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:e.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:e.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:e.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],i=[{string:e.navigator.platform,subString:"Win",identity:"Windows"},{string:e.navigator.platform,subString:"Mac",identity:"Mac"},{string:e.navigator.platform,subString:"Linux",identity:"Linux"},{string:e.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:e.navigator.platform,subString:"iPod",identity:"iPod"},{string:e.navigator.platform,subString:"iPad",identity:"iPad"},{string:e.navigator.platform,subString:"Android",identity:"Android"}],o="",s=t(a)||"unknown-browser",l=n(e.navigator.userAgent)||n(e.navigator.appVersion)||"unknown-version",d=t(i)||"unknown-os";return s=s.toLowerCase(),l=s+"-"+l,d=d.toLowerCase(),r={browser:s,version:l,os:d}}function a(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()}function i(){return s.mobile()}function o(e,t){-1===t.indexOf(e)?t.push(e):t.splice(t.indexOf(e),1)}var s=new MobileDetect(e.navigator.userAgent),r=null;return{exists:t,detectBrowser:n,guidGenerator:a,isMobile:i,toggleInArray:o}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,t){function n(e){t.setActiveTheme(e)}function a(){return t.themes.active}function i(){angular.element("body").toggleClass("boxed","boxed"===s.layoutMode)}function o(){e.put("motion.layoutStyle",s.layoutStyle),location.reload()}var s=this;s.themes=t.themes,s.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],s.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],s.layoutMode="wide",s.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",s.setActiveTheme=n,s.getActiveTheme=a,s.updateLayoutMode=i,s.updateLayoutStyle=o}function t(e){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(t){return t.addClass("ms-theme-options"),function(t){function n(){e("motion-theme-options").toggle()}t.toggleOptionsSidenav=n}}}}e.$inject=["$cookies","motionTheming"],t.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",t)}(),function(){"use strict";function e(e,t,n){function a(){var e=angular.copy(n.getRegisteredThemes()),t=angular.copy(n.getRegisteredPalettes());angular.forEach(e,function(e){d[e.name]={},angular.forEach(e.colors,function(n,a){d[e.name][a]={name:n.name,levels:{default:{color:s(t[n.name][n.hues.default].value),contrast1:s(t[n.name][n.hues.default].contrast,1),contrast2:s(t[n.name][n.hues.default].contrast,2),contrast3:s(t[n.name][n.hues.default].contrast,3),contrast4:s(t[n.name][n.hues.default].contrast,4)},hue1:{color:s(t[n.name][n.hues["hue-1"]].value),contrast1:s(t[n.name][n.hues["hue-1"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-1"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-1"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-1"]].contrast,4)},hue2:{color:s(t[n.name][n.hues["hue-2"]].value),contrast1:s(t[n.name][n.hues["hue-2"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-2"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-2"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-2"]].contrast,4)},hue3:{color:s(t[n.name][n.hues["hue-3"]].value),contrast1:s(t[n.name][n.hues["hue-3"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-3"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-3"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-3"]].contrast,4)}}}})}),i(d);var a={};angular.forEach(d,function(e,t){(a={})["@themeName"]=t,angular.forEach(e,function(e,t){angular.forEach(e.levels,function(e,n){angular.forEach(e,function(e,i){a["@"+t+l(n)+l(i)]=e})})}),o(a)})}function i(t){var a=angular.copy(t);angular.forEach(a,function(e){angular.forEach(e,function(t,n){e[n]=t.levels,e[n].color=t.levels.default.color,e[n].contrast1=t.levels.default.contrast1,e[n].contrast2=t.levels.default.contrast2,e[n].contrast3=t.levels.default.contrast3,e[n].contrast4=t.levels.default.contrast4,delete e[n].default})}),n.setThemesList(a);var i=e.get("motion.selectedTheme");i?n.setActiveTheme(i):n.setActiveTheme("default")}function o(e){var t=new RegExp(Object.keys(e).join("|"),"gi"),n='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n    color: @backgroundHue1Contrast1;\n    background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n    color: @backgroundHue2Contrast1;\n    background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n    color: @backgroundHue3Contrast1;\n    background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n    color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n    color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n    color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n    color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n    background-color: @primaryDefaultColor;\n    color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n    color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n    color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n    color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n    background-color: @primaryHue1Color;\n    color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n    color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n    color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n    color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n    background-color: @primaryHue2Color;\n    color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n    color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n    color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n    color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n    background-color: @primaryHue3Color;\n    color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n    color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n    color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n    color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n    color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n    color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n    color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n    color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n    background-color: @accentDefaultColor;\n    color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n    color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n    color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n    color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n    background-color: @accentHue1Color;\n    color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n    color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n    color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n    color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n    background-color: @accentHue2Color;\n    color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n    color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n    color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n    color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n    background-color: @accentHue3Color;\n    color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n    color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n    color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n    color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n    color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n    color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n    color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n    color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n    background-color: @warnDefaultColor;\n    color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n    color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n    color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n    color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n    background-color: @warnHue1Color;\n    color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n    color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n    color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n    color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n    background-color: @warnHue2Color;\n    color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n    color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n    color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n    color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n    background-color: @warnHue3Color;\n    color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n    color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n    color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n    color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n    color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n    color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n    color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n    color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n    background-color: @backgroundDefaultColor;\n    color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n    color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n    color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n    color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n    background-color: @backgroundHue1Color;\n    color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n    color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n    color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n    color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n    background-color: @backgroundHue2Color;\n    color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n    color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n    color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n    color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n    background-color: @backgroundHue3Color;\n    color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n    color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n    color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n    color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n    color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n    color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n    color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n    color: @backgroundHue3Color !important;\n}'.replace(t,function(t){return e[t]}),a=angular.element("head"),i=angular.element('<style type="text/css"></style>');i.html(n),a.append(i)}function s(e,n){var a=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),a&&(e=r(e,a)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void t.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function r(e,t){var n={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};return 255===e[0]&&255===e[1]&&255===e[2]?e[3]=n.white[t]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=n.black[t]),e}function l(e){return e.charAt(0).toUpperCase()+e.slice(1)}var d={};return{generate:a,rgba:s}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";var e=[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}];angular.module("app.core").constant("motionPalettes",e)}(),function(){"use strict";var e={default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}};angular.module("app.core").constant("motionThemes",e)}(),function(){"use strict";function e(e,t,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),e.alwaysWatchTheme(!0),angular.forEach(t,function(t){e.definePalette(t.name,t.options)}),angular.forEach(n,function(t,n){e.theme(n).primaryPalette(t.primary.name,t.primary.hues).accentPalette(t.accent.name,t.accent.hues).warnPalette(t.warn.name,t.warn.hues).backgroundPalette(t.background.name,t.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){function a(){return n.PALETTES}function i(){return n.THEMES}function o(n){if(angular.isUndefined(r.themes.list[n]))return angular.isUndefined(r.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+n+'" does not exist! Falling back to the "default" theme.'),r.themes.active.name="default",r.themes.active.theme=r.themes.list.default,void e.put("motion.selectedTheme",r.themes.active.name));r.themes.active.name=n,r.themes.active.theme=r.themes.list[n],e.put("motion.selectedTheme",n)}function s(e){r.themes.list=e}var r={getRegisteredPalettes:a,getRegisteredThemes:i,setActiveTheme:o,setThemesList:s,themes:{list:{},active:{name:"",theme:{}}}};return r}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){for(var i=[],o=a.getFlatNavigation(),s=n.defer(),r=0;r<o.length;r+=1)o[r].uisref&&i.push(o[r]);return e&&(i=i.filter(function(t){if(angular.lowercase(t.title).search(angular.lowercase(e))>-1)return!0})),t(function(){s.resolve(i)},1e3),s.promise}function o(t){t.uisref&&(t.stateParams?e.go(t.state,t.stateParams):e.go(t.state))}var s=this;s.search=i,s.searchResultClick=o}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,t){function n(){t.post("/api/jira",a.error).then(function(e){a.send=!0,e.data&&(a.code=e.data.id)},function(e){a.send=!1})}var a=this;a.code="",a.send=!1,a.error=e.params,a.sendReport=n}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e){var t={};return t.baseUrl="api/",t.auth=e(t.baseUrl+"auth/local",{},{local:{method:"post",url:t.baseUrl+"auth/local"},google:{method:"post",url:t.baseUrl+"auth/google"}}),t.jira=e(t.baseUrl+"jira"),t.rpc=e(t.baseUrl+"rpc",{},{getVoiceQueues:{method:"get",url:t.baseUrl+"rpc/voice/queues"},getVoiceQueuesChannels:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:t.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:t.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:t.baseUrl+"rpc/agents"},getTelephones:{method:"get",url:t.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:t.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:t.baseUrl+"rpc/campaigns"}}),t.version=e(t.baseUrl+"version",{},{fetch:{method:"get",url:t.baseUrl+"version/fetch"},reset:{method:"get",url:t.baseUrl+"version/reset"},pull:{method:"get",url:t.baseUrl+"version/pull"},restart:{method:"get",url:t.baseUrl+"version/restart"},migrations:{method:"get",url:t.baseUrl+"version/migrations"}}),t.system=e(t.baseUrl+"system"),t.pm2=e(t.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),t.user=e(t.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"users/describe"},bulkCreate:{method:"post",url:t.baseUrl+"users/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"users/destroy_many",isArray:!0},addContacts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/contacts"},changePassword:{isArray:!1,method:"put",url:t.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/avatar"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues_rt"},getRecordings:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/recordings"},login:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/lists"}}),t.voiceChanSpy=e(t.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/chanspy/describe"}}),t.voiceContext=e(t.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/contexts/describe"}}),t.voiceDisposition=e(t.baseUrl+"voice/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dispositions/describe"}}),t.voiceExtension=e(t.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/extensions/describe"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"voice/extensions/:id/applications"}}),t.voiceMusicOnHold=e(t.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mohs/describe"},addSound:{isArray:!1,method:"post",url:t.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:t.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:t.baseUrl+"voice/mohs/:id/sounds"}}),t.voiceQueue=e(t.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/lists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/black_lists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/black_lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/blacklists"}}),t.voiceRecording=e(t.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/download"}}),t.voiceMail=e(t.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/describe"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/:id/messages"}}),t.voiceMailMessage=e(t.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/messages/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/messages/:id/download"}}),t.voiceCallReport=e(t.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/calls/reports/describe"}}),t.voiceDialReport=e(t.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dials/reports/describe"}}),t.voiceAgentReport=e(t.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/agents/reports/describe"}}),t.voiceQueueReport=e(t.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/reports/describe"}}),t.memberReport=e(t.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"members/reports/describe"}}),t.trunk=e(t.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"trunks/describe"}}),t.voiceTransferReport=e(t.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/transfers/reports/describe"}}),t.mailServerOut=e(t.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/out_servers/describe"}}),t.mailAccount=e(t.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/accounts/describe"},getImap:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/dispositions"},sendMail:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/verify"}}),t.mailQueue=e(t.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/users"}}),t.mailInteraction=e(t.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/messages"}}),t.mailMessage=e(t.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/messages/describe"}}),t.mailApplication=e(t.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/applications/describe"}}),t.mailDisposition=e(t.baseUrl+"mail/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/dispositions/describe"}}),t.mailAttachment=e(t.baseUrl+"mail/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/attachments/describe"}}),t.mailSessionReport=e(t.baseUrl+"mail/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/sessions/reports/describe"}}),t.mailReport=e(t.baseUrl+"mail/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/describe"}}),t.openchannelSessionReport=e(t.baseUrl+"openchannel/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/sessions/reports/describe"}}),t.dashboard=e(t.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/describe"},run:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/run"},addItem:{isArray:!1,method:"post",url:t.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/items"}}),t.dashboardItem=e(t.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/items/describe"}}),t.faxAccount=e(t.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/dispositions"}}),t.faxApplication=e(t.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/applications/describe"}}),t.faxDisposition=e(t.baseUrl+"fax/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/dispositions/describe"}}),t.faxAttachment=e(t.baseUrl+"fax/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/attachments/describe"}}),t.faxInteraction=e(t.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/messages"}}),t.faxMessage=e(t.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/messages/describe"}}),t.faxQueue=e(t.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/users"}}),t.faxSessionReport=e(t.baseUrl+"fax/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/sessions/reports/describe"}}),t.smsAccount=e(t.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/dispositions"}}),t.smsApplication=e(t.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/applications/describe"}}),t.smsDisposition=e(t.baseUrl+"sms/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/dispositions/describe"}}),t.smsInteraction=e(t.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/messages"}}),t.smsMessage=e(t.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/messages/describe"}}),t.smsQueue=e(t.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/users"}}),t.openchannelAccount=e(t.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/dispositions"}}),t.openchannelApplication=e(t.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/applications/describe"}}),t.openchannelDisposition=e(t.baseUrl+"openchannel/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/dispositions/describe"}}),t.openchannelInteraction=e(t.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/messages"}}),t.openchannelMessage=e(t.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/messages/describe"}}),t.openchannelQueue=e(t.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/users"}}),t.chatWebsite=e(t.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/websites/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/dispositions"},addProactiveActions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/proactive_actions"},addWebsiteFields:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/fields"},getWebsiteFields:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/fields"}}),t.openchannelReport=e(t.baseUrl+"openchannel/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/describe"}}),t.chatApplication=e(t.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/applications/describe"}}),t.chatDisposition=e(t.baseUrl+"chat/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/dispositions/describe"}}),t.chatInteraction=e(t.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/messages"}}),t.chatMessage=e(t.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/messages/describe"}}),t.chatQueue=e(t.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/users"}}),t.chatEnquiry=e(t.baseUrl+"chat/enquiries/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/enquiries/describe"}}),t.chatProactiveAction=e(t.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/proactive_actions/describe"}}),t.chatVisitor=e(t.baseUrl+"chat/visitors/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/visitors/describe"}}),t.chatWebsiteField=e(t.baseUrl+"chat/website_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/website_fields/describe"}}),t.cmCompany=e(t.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/companies/describe"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/companies/:id/contacts"}}),t.cmContact=e(t.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/contacts/describe"},bulkCreate:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/create_many"}}),t.cmHopper=e(t.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper/describe"},getDialerContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview"},callDialerContact:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview/:id"}}),t.cmHopperBlack=e(t.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_black/describe"}}),t.cmHopperFinal=e(t.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_final/describe"}}),t.cmHopperHistory=e(t.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_history/describe"}}),t.cmCustomField=e(t.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/custom_fields/describe"}}),t.cmList=e(t.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/lists/describe"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:t.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/contacts/csv"},addCustomField:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/users"}}),t.action=e(t.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"actions/describe"}}),t.automation=e(t.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"automations/describe"},addConditions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/actions"}}),t.cannedAnswer=e(t.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"canned_answers/describe"}}),t.condition=e(t.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"conditions/describe"}}),t.interval=e(t.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"intervals/describe"},addInterval:{isArray:!1,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:t.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals/create_many"}}),t.pause=e(t.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"pauses/describe"}}),t.cdr=e(t.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cdr/describe"}}),t.voiceQueuesLog=e(t.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voiceQueuesLog/describe"}}),t.schedule=e(t.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"schedules/describe"}}),t.sound=e(t.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sounds/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"sounds/:id/download"},delete:{isArray:!1,method:"delete",url:t.baseUrl+"sounds/:id"}}),t.tag=e(t.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"tags/describe"}}),t.template=e(t.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"templates/describe"}}),t.trigger=e(t.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"triggers/describe"},addAllCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/actions"}}),t.variable=e(t.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"variables/describe"}}),t.integration=e(t.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/describe"}}),t.integrationReport=e(t.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/reports/describe"}}),t.analyticCustomReport=e(t.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/custom_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/query"}}),t.analyticDefaultReport=e(t.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/default_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/query"}}),t.analyticExtractedReport=e(t.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/extracted_reports/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"analytics/extracted_reports/:id/download"}}),t.analyticMetric=e(t.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/metrics/describe"}}),t.analyticFieldReport=e(t.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/field_reports/describe"},bulkCreate:{method:"post",url:t.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:t.baseUrl+"analytics/field_reports/:id/create_many"}}),t.analyticTreeReport=e(t.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/tree_reports/describe"}}),t.intSalesforceAccount=e(t.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),t.intSalesforceConfiguration=e(t.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),t.intSalesforceField=e(t.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/fields/describe"}}),t.intSugarcrmAccount=e(t.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),t.intSugarcrmConfiguration=e(t.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),t.intSugarcrmField=e(t.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/fields/describe"}}),t.intZendeskAccount=e(t.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),t.intZendeskConfiguration=e(t.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),t.intZendeskField=e(t.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/fields/describe"}}),t.intFreshdeskAccount=e(t.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),t.intFreshdeskConfiguration=e(t.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),t.intFreshdeskField=e(t.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/fields/describe"}}),t.network=e(t.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"networks/describe"}}),t.chatReport=e(t.baseUrl+"chat/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/describe"}}),t.chatSessionReport=e(t.baseUrl+"chat/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/session/reports/describe"}}),t.faxReport=e(t.baseUrl+"fax/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/describe"}}),t.jscriptyInputReport=e(t.baseUrl+"jscripty/inputs/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/inputs/reports/describe"}}),t.jscriptyQuestionReport=e(t.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/questions/reports/describe"}}),t.jscriptySessionReport=e(t.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/sessions/reports/describe"}}),t.smsReport=e(t.baseUrl+"sms/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/describe"}}),t.smsSessionReport=e(t.baseUrl+"sms/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/session/reports/describe"}}),t.squareReport=e(t.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/reports/describe"}}),t.squareReportDetail=e(t.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/details/reports/describe"}}),t.jscriptyProject=e(t.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/projects/describe"}}),t.setting=e(t.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"settings/describe"},addLogo:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo_login"}}),t.squareOdbc=e(t.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/odbc/describe"},test:{isArray:!1,method:"get",url:t.baseUrl+"square/odbc/:id/test"}}),t.squareProject=e(t.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/projects/describe"}}),t.squareRecording=e(t.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"square/recordings/:id/download"}}),t.team=e(t.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"teams/describe"},getQueues:{isArray:!0,method:"get",url:t.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"teams/:id/users"}}),t.license=e(t.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"license/describe"}}),t.campaign=e(t.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"campaigns/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/blacklists"}}),t}e.$inject=["$resource"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,t,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.useSanitizeValueStrategy("sanitize"),t.decorator("taOptions",["$delegate",function(e){return e.toolbar=[["bold","italics","underline","ul","ol","quote","justifyLeft","justifyCenter","justifyRight","html","insertImage","insertLink"]],e.classes={focussed:"focussed",toolbar:"ta-toolbar",toolbarGroup:"ta-group",toolbarButton:"md-button",toolbarButtonActive:"active",disabled:"",textEditor:"form-control",htmlEditor:"form-control"},e}]),t.decorator("taTools",["$delegate",function(e){return e.quote.iconclass="icon-format-quote",e.bold.iconclass="icon-format-bold",e.italics.iconclass="icon-format-italic",e.underline.iconclass="icon-format-underline",e.strikeThrough.iconclass="icon-format-strikethrough",e.ul.iconclass="icon-format-list-bulleted",e.ol.iconclass="icon-format-list-numbers",e.redo.iconclass="icon-redo",e.undo.iconclass="icon-undo",e.clear.iconclass="icon-close-circle-outline",e.justifyLeft.iconclass="icon-format-align-left",e.justifyCenter.iconclass="icon-format-align-center",e.justifyRight.iconclass="icon-format-align-right",e.justifyFull.iconclass="icon-format-align-justify",e.indent.iconclass="icon-format-indent-increase",e.outdent.iconclass="icon-format-indent-decrease",e.html.iconclass="icon-code-tags",e.insertImage.iconclass="icon-file-image-box",e.insertLink.iconclass="icon-link",e.insertVideo.iconclass="icon-filmstrip",e}])}e.$inject=["$translateProvider","$provide","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e){this.themes=e.themes}e.$inject=["motionTheming"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(){return function(e,t,n){var a,i={},o=0;for(a in e)if(o>=n&&(i[a]=e[a]),++o===n+t)break;return i}}function t(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],t=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],n=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[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];return{getMonthName:function(){return e},getMonthNumber:function(){return t},getDaysOfWeek:function(){return n},getDaysOfMonth:function(){return a}}}angular.module("motion").filter("limitObjectFromTo",e).factory("IndexFactory",t)}(),function(){"use strict";function e(e,t,n){n.html5Mode(!0),t.otherwise("/dashboards/general");var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",o={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:o[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:o[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:o[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver",function(e){return e.resolve("setting@get",{id:1})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,t,n){var a=e.$on("$stateChangeStart",function(){e.loadingProgress=!0}),i=e.$on("$stateChangeSuccess",function(){t(function(){e.loadingProgress=!1})});e.state=n,e.$on("$destroy",function(){a(),i()})}e.$inject=["$rootScope","$timeout","$state"],angular.module("motion").run(e)}(),function(){"use strict";function e(e,t){function n(){a=io({query:"id="+t.getCurrentUser().id,transports:["websocket","polling"]})}var a;return{connect:n,on:function(t,i){i=i||angular.noop,a||n(),a.on(t,function(){var t=arguments;e.$apply(function(){i.apply(a,t)})})},emit:function(t,i,o){o=o||angular.noop,a||n(),a.emit(t,i,function(){var t=arguments;e.$apply(function(){o.apply(a,t)})})},removeAllListeners:function(e){a||n(),a.removeAllListeners(e)},disconnect:function(){a||n(),a.disconnect()}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){i.isLoggedIn()&&e.go("app.dashboards.general")}function s(){return i.login(l.form).then(function(){return e.go("app.dashboards.general")}).catch(function(e){l.message=e.message})}function r(e){t.location.href="/api/auth/"+e}var l=this;l.login=s,l.loginOauth=r,l.$onInit=o}e.$inject=["$state","$window","$cookies","api","Auth"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticExtractedReport.save(p.extractedReport).$promise.then(function(e){p.extractedReports.unshift(e),i.success({title:"ExtractedReport properly created",msg:p.extractedReport.name?p.extractedReport.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.analyticExtractedReport.update({id:p.extractedReport.id},p.extractedReport).$promise.then(function(e){var t=_.find(p.extractedReports,{id:e.id});t&&_.merge(t,e),i.success({title:"ExtractedReport properly saved!",msg:p.extractedReport.name?p.extractedReport.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.analyticExtractedReport.delete({id:p.extractedReport.id}).$promise.then(function(){_.remove(p.extractedReports,{id:p.extractedReport.id}),i.success({title:"ExtractedReport properly deleted!",msg:(p.extractedReport.name||"extractedReport")+" has been deleted!"}),u(p.extractedReport)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="ANALYTICS.EDIT_EXTRACTEDREPORT",p.extractedReport=angular.copy(s),p.extractedReports=o,p.newExtractedReport=!1,p.extractedReport||(p.extractedReport={},p.title="ANALYTICS.NEW_EXTRACTEDREPORT",p.newExtractedReport=!0),p.addNewExtractedReport=l,p.saveExtractedReport=d,p.deleteExtractedReport=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","extractedReports","extractedReport","api"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:C.extractedReports.rows}})}function u(e,n){return l.analyticExtractedReport.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/analytics/extracted_reports/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the extractedReport?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.extractedReports=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.analyticExtractedReport.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:t,extractedReports:C.extractedReports.rows}})}function b(e){l.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(C.extractedReports.rows,{id:e.id}),C.extractedReports.count-=1,C.extractedReports.rows.length||C.getExtractedReports(),c.success({title:"ExtractedReport deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedExtractedReports);return C.selectedExtractedReports=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+C.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedExtractedReports.forEach(function(e){b(e)}),C.selectedExtractedReports=[]})}function y(){C.selectedExtractedReports=[]}function A(){C.selectedExtractedReports=C.extractedReports.rows}var C=this;C.extractedReports=r||{count:0,rows:[]},C.table="extractedReports",C.listOrder="",C.listOrderAsc=null,C.selectedExtractedReports=[],C.query={fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.downloadfile=u,C.deleteconfirm=p,C.success=g,C.getExtractedReports=h,C.createOrEditExtractedReport=v,C.deleteExtractedReport=b,C.exportSelectedExtractedReports=f,C.deleteSelectedExtractedReports=E,C.deselectExtractedReports=y,C.selectAllExtractedReports=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","extractedReports","api","msUtils","toasty"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticMetric.save(p.metric).$promise.then(function(e){p.metrics.unshift(e),i.success({title:"Metric properly created",msg:p.metric.name?p.metric.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.analyticMetric.update({id:p.metric.id},p.metric).$promise.then(function(e){var t=_.find(p.metrics,{id:e.id});t&&_.merge(t,e),i.success({title:"Metric properly saved!",msg:p.metric.name?p.metric.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.analyticMetric.delete({id:p.metric.id}).$promise.then(function(){_.remove(p.metrics,{id:p.metric.id}),i.success({title:"Metric properly deleted!",msg:(p.metric.name||"metric")+" has been deleted!"}),u(p.metric)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="ANALYTICS.EDIT_METRIC",p.metric=angular.copy(s),p.metrics=o,p.newMetric=!1,p.metric||(p.metric={table:"report_agent"},p.title="ANALYTICS.NEW_METRIC",p.newMetric=!0),p.addNewMetric=l,p.saveMetric=d,p.deleteMetric=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","metrics","metric","api"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{metric:e,metrics:A.metrics.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the metric?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.metrics=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.analyticMetric.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:t,metrics:A.metrics.rows}})}function v(e){l.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(A.metrics.rows,{id:e.id}),A.metrics.count-=1,A.metrics.rows.length||A.getMetrics(),c.success({title:"Metric deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticMetric",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMetrics);return A.selectedMetrics=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+A.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMetrics.forEach(function(e){v(e)}),A.selectedMetrics=[]})}function E(){A.selectedMetrics=[]}function y(){A.selectedMetrics=A.metrics.rows}var A=this;A.metrics=r||{count:0,rows:[]},A.table="metrics",A.listOrder="",A.listOrderAsc=null,A.selectedMetrics=[],A.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},A.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Rooms",value:"'chat_rooms'"},{option:"Chat Session Report",value:"'report_chat_session'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Rooms",value:"'fax_rooms'"},{option:"Fax Session Report",value:"'report_fax_session'"},{option:"Integration Report",value:"'report_integration'"},{option:"Mail Messages",value:"'mail_messages'"},{option:"Mail Rooms",value:"'mail_rooms'"},{option:"Mail Session Report",value:"'report_mail_session'"},{option:"Member Report",value:"'report_member'"},{option:"Open Channel Messages",value:"'openchannel_messages'"},{option:"Open Channel Rooms",value:"'openchannel_rooms'"},{option:"Open Channel Session Report",value:"'report_openchannel_session'"},{option:"Queue Report",value:"'report_queue'"},{option:"Sms Messages",value:"'sms_messages'"},{option:"Sms Rooms",value:"'sms_rooms'"},{option:"Sms Session Report",value:"'report_sms_session'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getMetrics=g,A.createOrEditMetric=h,A.deleteMetric=v,A.exportSelectedMetrics=b,A.deleteSelectedMetrics=f,A.deselectMetrics=E,A.selectAllMetrics=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","metrics","api","msUtils","toasty"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){c.errors=[];var e;i.analyticCustomReport.save({name:c.report.name,description:c.report.description,table:c.report.table,conditions:c.report.conditions,parent:c.currentNode.id}).$promise.then(function(t){e=t,n.success({title:"Report properly copied!",msg:c.report.name?c.report.name+" has been copied!":""});var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=c.report.id,i.analyticFieldReport.get(a).$promise}).then(function(t){var t=_.map(t.rows,function(t){return _.extend({},t,{CustomReportId:e.id})});return i.analyticFieldReport.bulkCreate(t).$promise}).then(function(){n.success({title:"Fields copied!",msg:"Fields has been copied!"}),d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(e,t){c.currentNode=t.node}function d(){t.hide()}var c=this;c.errors=[],c.report=angular.copy(a),c.report.name+="-copy",c.treeCustomData=s,c.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},c.treeCustomEvents={select_node:l},c.copyReport=r,c.closeDialog=d}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],o[s].save(u.report).$promise.then(function(e){u.reports.unshift(e),n.success({title:"Report properly created",msg:u.report.name?u.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var t=0;t<e.data.errors.length;t++)n.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){u.errors=[],o[s].update({id:u.report.id},u.report).$promise.then(function(e){var t=_.find(u.reports,{id:e.id});t&&_.merge(t,e),n.success({title:"Report properly saved!",msg:u.report.name?u.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var t=0;t<e.data.errors.length;t++)n.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){u.errors=[];var e=t.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);t.show(e).then(function(){o[s].delete({id:u.report.id}).$promise.then(function(){_.remove(u.reports,{id:u.report.id}),n.success({title:"Report properly deleted!",msg:u.report.name?u.report.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})}function m(){t.hide()}var u=this;u.errors=[],u.title="ANALYTICS.EDIT_REPORT",u.report=angular.copy(i),u.reports=a,u.newReport=!1,u.report||(u.report={name:"",table:"report_agent",description:"",parent:r.id},u.title="ANALYTICS.NEW_REPORT",u.newReport=!0),u.addNewReport=l,u.saveReport=d,u.deleteReport=c,u.closeDialog=m}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){d.report=e,d.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},t.getColumns(d.report.table).then(function(e){d.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){e.unshift({condition:"=",field:"",value:""})}function s(e){e.push({group:{operator:"AND",rules:[]}})}function r(t,n,a){var i=e.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(a).ok("OK").cancel("CANCEL");e.show(i).then(function(){t.splice(n,1)},function(){console.log("CANCEL")})}function l(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}var d=this;d.report={},d.conditions=a.getConditions,d.init=i,d.addCondition=o,d.addGroup=s,d.deleteConfirm=r,d.isValueByCondition=l}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(e){var t={report_agent:"voiceAgentReport",report_call:"voiceCallReport",chat_messages:"chatMessage",chat_rooms:"chatInteraction",report_chat_session:"chatSessionReport",cm_contacts:"cmContact",report_square:"squareReport",report_square_details:"squareReportDetail",fax_messages:"faxMessage",fax_rooms:"faxInteraction",report_fax_session:"faxSessionReport",report_integration:"integrationReport",mail_messages:"mailMessage",mail_rooms:"mailInteraction",report_mail_session:"mailSessionReport",report_member:"memberReport",openchannel_messages:"openchannelMessage",openchannel_rooms:"openchannelInteraction",report_openchannel_session:"openchannelSessionReport",report_queue:"voiceQueueReport",sms_messages:"smsMessage",sms_rooms:"smsInteraction",report_sms_session:"smsSessionReport",users:"user",voice_recordings:"voiceRecording",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory"};return{getColumns:function(n){return e[t[n]].describe().$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){g.errors=[],g.reportField.custom="custom"===g.reportField.type,g.reportField.MetricId="metric"===g.reportField.type?g.reportField.MetricId:null,g.reportField.CustomReportId=g.report.id,d.analyticFieldReport.save(g.reportField).$promise.then(function(e){g.reportFields.push(e),n.success({title:"Report field properly created",msg:g.reportField.field?g.reportField.field+" has been created!":g.reportField.type+" has been created!"}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})}function m(){g.errors=[],g.reportField.custom="custom"===g.reportField.type,g.reportField.MetricId="metric"===g.reportField.type?g.reportField.MetricId:null,d.analyticFieldReport.update({id:g.reportField.id},g.reportField).$promise.then(function(e){var t=_.find(g.reportFields,{id:e.id});t&&_.merge(t,e),n.success({title:"Report Field properly saved!",msg:g.reportField.field?g.reportField.field+" has been saved!":""}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})}function u(e){g.errors=[];var a=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(a).then(function(){d.analyticFieldReport.delete({id:g.reportField.id}).$promise.then(function(){_.remove(g.reportFields,{id:g.reportField.id}),n.success({title:"Report Field properly deleted!",msg:g.reportField.field?g.reportField.field+" has been deleted!":""}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})}function p(){t.hide()}var g=this;g.errors=[],g.title="Edit Report Field",g.report=a,g.reportField=angular.copy(o),g.reportFields=i,g.metrics=s,g.columns=r,g.sqlUtil=l,g.newReportField=!1,g.reportField?g.reportField.type=g.reportField.custom?"custom":g.reportField.MetricId?"metric":"column":(g.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},g.title="New Report Field",g.newReportField=!0),g.addNewReportField=c,g.saveReportField=m,g.deleteReportField=u,g.closeDialog=p}e.$inject=["$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e){E.report=e,E.query.CustomReportId=E.report.id,r.getColumns(E.report.table).then(function(e){return E.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"]),s.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){E.metrics=e.rows}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),E.getReportFields()}function m(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){E.reportFields=e||{count:0,rows:[]}}function p(){E.promise=s.analyticFieldReport.get(E.query,u).$promise}function g(e,t){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:E.report,reportField:t,reportFields:E.reportFields.rows,metrics:E.metrics,columns:E.columns}})}function h(e){s.analyticFieldReport.delete({id:e.id}).$promise.then(function(){E.selectedReportFields=[],_.remove(E.reportFields.rows,{id:e.id}),E.reportFields.count-=1,E.reportFields.rows.length||E.getReportFields(),o.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+E.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){E.selectedReportFields.forEach(function(e){h(e)}),E.selectedReportFields=[]})}function b(e){var t=_.find(E.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")}function f(e){var t=_.find(E.metrics,{id:e});return t?t.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")}var E=this;E.report={},E.reportFields={count:0,rows:[]},E.functions=_.keyBy(l.getFunctions,"value"),E.formats=_.keyBy(l.getFormats,"value"),E.groupBy=_.keyBy(l.getGroupBy,"value"),E.orderBy=_.keyBy(l.getOrderBy,"value"),E.selectedReportFields=[],E.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},E.sortableTable={animation:100,onSort:function(e){s.analyticFieldReport.addFields({id:E.report.id},e.models).$promise.then(function(e){E.reportFields.rows=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},E.init=c,E.deleteConfirm=m,E.success=u,E.getReportFields=p,E.createOrEditReportField=g,E.deleteReportField=h,E.deleteSelectedReportFields=v,E.getMetricName=b,E.getMetricValue=f;var y=!0;t.$watch("vm_rf.query.filter",function(e,t){y?n(function(){y=!1}):E.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";function e(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}}angular.module("app.analytics").factory("sqlUtil",e)}(),function(){"use strict";function e(e,t,n,a){function i(){e.go("app.analytics.reports")}function o(){l.report.conditions=angular.toJson(l.report.condition),n.analyticCustomReport.update({id:l.report.id},l.report).$promise.then(function(){t.success({title:"Report updated!",msg:l.report.name?l.report.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(){l.columns=[],l.rows=[],l.error=!1,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:l.report.id}).$promise.then(function(e){return l.columns=e?e.rows:[],n.analyticCustomReport.preview({id:l.report.id}).$promise}).then(function(e){l.rows=e}).catch(function(e){console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}function r(){return l.queryResult="Loading...",n.analyticCustomReport.query({id:l.report.id}).$promise.then(function(e){l.queryResult=e.sql}).catch(function(e){l.queryResult="",console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}var l=this;l.report=a||{},l.selectedTab=e.params.tab||0,l.gotoReports=i,l.saveReport=o,l.previewReport=s,l.queryReport=r}e.$inject=["$state","toasty","api","report"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){t.hide()}var r=this;r.errors=[],r.report=angular.copy(a),r.closeDialog=s,function(){r.columns=[],r.rows=[],r.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(e).$promise.then(function(e){return r.columns=e?e.rows:[],i[o].preview({id:r.report.id}).$promise}).then(function(e){r.rows=e}).catch(function(e){console.log(e),r.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(r.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,t){i.go("app.analytics.reports.edit",{id:e.id})}function m(e,t){a.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName,treeCustomData:N.treeCustomInstance.jstree(!0).get_json("#",{flat:!0})}}).finally(function(){N.treeCustomInstance.jstree(!0).refresh()})}function u(e,t){a.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function p(e,t){a.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function g(e,t){var n;r.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(t){n=_.keyBy(t.rows,"id");var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===N.apiName?"CustomReportId":"DefaultReportId"]=e.id,r.analyticFieldReport.get(a).$promise}).then(function(t){for(var a=0;a<t.rows.length;a+=1)t.rows[a].MetricId&&(t.rows[a].field=n[t.rows[a].MetricId].metric,t.rows[a].custom=!0),delete t.rows[a].MetricId;var i=o.document.createElement("a");i.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:e.name,description:e.description,table:e.table,conditions:e.conditions,fields:t.rows})),i.download=e.name+".json",i.target="_self",i.click(),d.success({title:"Report downloaded!",msg:e.name?e.name+" has been downloaded!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(e,t){var n=a.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function v(e){N.reports=e||{count:0,rows:[]}}function b(){N.query.offset=(N.query.page-1)*N.query.limit,N.apiName&&(N.promise=r[N.apiName].get(N.query,v).$promise)}function f(e,t){a.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:t,reports:N.reports.rows,apiName:N.apiName,currentNode:N.currentNode}})}function E(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),r.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,parent:N.currentNode.id}).$promise.then(function(e){N.reports.rows.unshift(e),d.success({title:"Report saved!",msg:e.name?e.name+" has been saved!":""});var n=_.map(t.fields,function(t){return _.extend({},t,{CustomReportId:e.id})});return r.analyticFieldReport.bulkCreate(n).$promise}).then(function(e){d.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),d.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else d.error({title:"Format Error",msg:"Please use only json files"})}function y(e){N.apiName&&r[N.apiName].delete({id:e.id}).$promise.then(function(){_.remove(N.reports.rows,{id:e.id}),N.reports.count-=1,N.reports.rows.length||N.getReports(),d.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=_.clone(N.selectedReports);return N.selectedReports=[],e}function C(e){var t=a.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+N.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){N.selectedReports.forEach(function(e){y(e)}),N.selectedReports=[]})}function x(){N.selectedReports=[]}function T(){N.selectedReports=N.reports.rows}function S(e,t){N.treeDefaultInstance.jstree(!0).deselect_all(),N.treeDefaultInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!0,N.apiName="analyticCustomReport",N.query.parent=t.node.id,b()}function O(e,t){N.treeCustomInstance.jstree(!0).deselect_all(),N.treeCustomInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!1,N.apiName="analyticDefaultReport",N.query.parent=t.node.id,b()}function w(e,t){r.analyticTreeReport.update({id:2,tree:angular.toJson(N.treeCustomInstance.jstree(!0).get_json("#",{flat:!0}))}).$promise.then(function(){d.success({title:"Node Updated",msg:t.node.text?t.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function R(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(e){return{create:{label:s.instant("ANALYTICS.CREATE"),action:function(){e=N.treeCustomInstance.jstree(!0).create_node(e),N.treeCustomInstance.jstree(!0).edit(e)}},rename:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.RENAME"),action:function(){N.treeCustomInstance.jstree(!0).edit(e)}},remove:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.REMOVE"),action:function(){var t=a.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(e.text?e.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");a.show(t).then(function(){N.treeCustomInstance.jstree(!0).delete_node(e)})}}}}}}}function I(e){return e?{create_node:w,rename_node:w,move_node:w,delete_node:w,select_node:S}:{select_node:O}}var N=this;N.reports={count:0,rows:[]},N.selectedReports=[],N.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions",limit:10,page:1,sort:"-updatedAt"},N.apiName=null,N.currentPath="",N.customTree=!0,N.editstate=c,N.copydialog=m,N.previewdialog=u,N.rundialog=p,N.downloadfile=g,N.deleteconfirm=h,N.success=v,N.getReports=b,N.createOrEditReport=f,N.importReport=E,N.deleteReport=y,N.exportSelectedReports=A,N.deleteSelectedReports=C,N.deselectReports=x,N.selectAllReports=T,N.treeDefaultData=l.rows[0]?angular.fromJson(l.rows[0].tree):[],N.treeCustomData=l.rows[1]?angular.fromJson(l.rows[1].tree):[],N.treeDefaultConfig=R(!1),N.treeCustomConfig=R(!0),N.treeDefaultEvents=I(!1),N.treeCustomEvents=I(!0);var D=!0,L=1;e.$watch("vm.query.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.query.page),e!==n&&(N.query.page=1),e||(N.query.page=L),N.getReports())}),e.$watch("vm.search",function(e,t){N.treeDefaultInstance&&N.treeDefaultInstance.jstree(!0).search(e),N.treeCustomInstance&&N.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","api","treeReports","toasty"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){d.export={id:d.report.id,name:d.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"csv"}}function r(){d.errors=[],i[o].run(_.merge(d.export,{startDate:moment(d.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(d.export.endDate).format("YYYY-MM-DD HH:mm:ss")})).$promise.then(function(e){n.success({title:"Report properly run!",msg:d.report.name?d.report.name+" has been run!":""}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(){t.hide()}var d=this;d.errors=[],d.report=angular.copy(a),d.export={},d.runReport=r,d.closeDialog=l,d.refreshDate=s,s()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareOdbc.save(p.odbc).$promise.then(function(e){p.odbcs.unshift(e),i.success({title:"Odbc properly created",msg:p.odbc.name?p.odbc.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.squareOdbc.update({id:p.odbc.id},p.odbc).$promise.then(function(e){var t=_.find(p.odbcs,{id:e.id});t&&_.merge(t,e),i.success({title:"Odbc properly saved!",msg:p.odbc.name?p.odbc.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.squareOdbc.delete({id:p.odbc.id}).$promise.then(function(){_.remove(p.odbcs,{id:p.odbc.id}),i.success({title:"Odbc properly deleted!",msg:(p.odbc.name||"odbc")+" has been deleted!"}),u(p.odbc)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CALLYSQUARE.EDIT_ODBC",p.odbc=angular.copy(s),p.odbcs=o,p.newOdbc=!1,p.odbc||(p.odbc={},p.title="CALLYSQUARE.NEW_ODBC",p.newOdbc=!0),p.addNewOdbc=l,p.saveOdbc=d,p.deleteOdbc=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","odbcs","odbc","api"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{odbc:e,odbcs:C.odbcs.rows}})}function u(e,t){return l.squareOdbc.test({id:e.id}).$promise.then(function(){c.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the odbc?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.odbcs=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.squareOdbc.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:t,odbcs:C.odbcs.rows}})}function b(e){l.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(C.odbcs.rows,{id:e.id}),C.odbcs.count-=1,C.odbcs.rows.length||C.getODBC(),c.success({title:"Odbc deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareOdbc",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedODBC);return C.selectedODBC=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+C.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedODBC.forEach(function(e){b(e)}),C.selectedODBC=[]})}function y(){C.selectedODBC=[]}function A(){C.selectedODBC=C.odbcs.rows}var C=this;C.odbcs=r||{count:0,rows:[]},C.table="odbcs",C.listOrder="",C.listOrderAsc=null,C.selectedODBC=[],C.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.testtestOdbc=u,C.deleteconfirm=p,C.success=g,C.getODBC=h,C.createOrEditOdbc=v,C.deleteOdbc=b,C.exportSelectedODBC=f,C.deleteSelectedODBC=E,C.deselectODBC=y,C.selectAllODBC=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","odbcs","api","msUtils","toasty"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],i.squareProject.save(u.project).$promise.then(function(e){u.projects.unshift(e),t.success({title:"Project properly created",msg:u.project.name?u.project.name+" has been created!":""}),m(e),u.openFromEditor&&(u.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):r.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){u.errors=[],i.squareProject.update({id:u.project.id},u.project).$promise.then(function(e){var n=_.find(u.projects,{id:e.id});n&&_.merge(n,e),t.success({title:"Project properly saved!",msg:u.project.name?u.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){u.errors=[];var n=e.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);e.show(n).then(function(){i.squareProject.delete({id:u.project.id}).$promise.then(function(){_.remove(u.projects,{id:u.project.id}),t.success({title:"Project properly deleted!",msg:u.project.name?u.project.name+" has been deleted!":""}),m(u.project)}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})}function m(t){e.hide(t)}var u=this;u.errors=[],u.title="CALLYSQUARE.EDIT_PROJECT",u.project=angular.copy(a),u.newWindow=!0,u.projects=n,u.newProject=!1,u.openFromEditor=o,u.project||(u.project={name:"",description:""},u.title="CALLYSQUARE.NEW_PROJECT",u.newProject=!0),u.addNewProject=l,u.saveProject=d,u.deleteProject=c,u.closeDialog=m}e.$inject=["$mdDialog","toasty","projects","project","api","openFromEditor","$window","$state"],angular.module("app.callysquare").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E){function y(e,t,n,a){return _.map(e,function(e){return{value:e[t],option:e[n],group:a?e[a]:void 0}})}function A(t){t&&E(C.attributes),e.hide()}var C=this,x={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"]},T={queue:["file_id"],database:["variable_id"]};C.cellName=f.tagName,C.attributes=_.map(f.attributes,function(e){return{name:e.name,value:e.value,defaultValue:T[C.cellName]&&_.includes(T[C.cellName],e.name),required:x[C.cellName]&&_.includes(x[C.cellName],e.name)}}),C.values={sip_id:y(s,"id","fullname","role"),trunk_name:y(r,"name","name"),trunk_id:y(r,"id","name"),queue_id:y(l,"id","name"),file_id:y(d,"id","name"),variable_id:y(c,"id","name"),odbc_id:y(m,"id","name"),project_id:y(u,"id","name"),context:y(p,"id","name"),interval_id:function(e,t,n,a){var i=_.filter(e,function(e){return null===e[a]}),o=[];return _.forEach(i,function(i){o.push({value:i[t],option:i[n]});var s=_.filter(e,function(e){return e[a]===i.id});_.forEach(s,function(e){o.push({value:e[t],option:" - "+e[n]})})}),o}(g,"id","name","IntervalId"),account_id:y(h,"id","name"),template_id:y(v,"id","name"),list_id:y(b,"id","name"),answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingformat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gms"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:n,ispeech_asr_language:a,ispeech_tts_language:i,google_tts_language:o},C.closeDialog=A,C.getMap=y}e.$inject=["$mdDialog","toasty","ispeechAsrModel","ispeechAsrLanguage","ispeechTtsLanguage","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";function e(){return{require:"ngModel",link:function(e,t,n,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}}angular.module("app.callysquare").directive("stringToNumber",e)}(),function(){"use strict";function e(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}function t(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}function n(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}function a(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}angular.module("app.callysquare").factory("ispeechAsrModel",a).factory("ispeechAsrLanguage",n).factory("ispeechTtsLanguage",t).factory("googleTtsLanguage",e)}(),function(){"use strict";function e(e,t,n,a){function i(t){t?(a(o.project.preproduction),e.hide(o.project.preproduction)):e.hide()}var o=this;o.project={preproduction:n},o.closeDialog=i}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(e,t){function n(e){if(i.errors=[],"text/xml"!==e.file.type&&i.errors.push({message:"The format "+e.file.type+" is not supported!"}),e.file.size>5242880&&i.errors.push({message:"The file is too big. Max 5MB files are supported!"}),!i.errors.length){var t=new FileReader;t.onload=function(e){a(e.target.result)},t.readAsText(e.file)}}function a(n){n?(t(n),e.hide(n)):e.hide()}var i=this;i.errors=[],i.ngFlowOptions={chunkSize:5242880,maxChunkRetries:1,singleFile:!0,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},i.ngFlow={flow:{}},i.dropping=!1,i.closeDialog=a,i.fileAdded=n}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],a.squareProject.update({id:s.project.id},{notes:s.project.notes,description:s.project.description}).$promise.then(function(n){t.success({title:"Project updated!",msg:s.project.name?s.project.name+" has been updated!":""}),e.hide(n)}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}function o(){e.hide()}var s=this;s.project=_.clone(n),s.closeDialog=o,s.save=i}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){s.errors=[],t?(e.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):e.hide()}var s=this;s.projects=n,s.id="",s.newWindow=!0,s.closeDialog=o}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){delete d.project.id,i.squareProject.save(d.project).$promise.then(function(n){t.success({title:"Project properly created",msg:d.project.name?d.project.name+" has been created!":""}),e.hide(n),d.newWindow?o.open("/callysquare/projects/"+n.id,"_blank"):s.go("app.callysquare.projects.edit",{id:n.id})}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}function l(){e.hide()}var d=this;d.project=angular.copy(n),d.project.name+="_new",d.project.preproduction=a,d.newWindow=!0,d.closeDialog=l,d.save=r}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f){function E(){new EditorUi(N,new Editor,document.getElementById("geEditor")).openString(N.project.preproduction,N.project.name,N.project)}function y(e,a){n.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:s.rows||[],trunks:r.rows||[],queues:l.rows||[],sounds:d.rows||[],variables:c.rows||[],databases:m.rows||[],contexts:u.rows||[],projects:p.rows||[],intervals:g.rows||[],mailAccounts:h.rows||[],templates:v.rows||[],lists:b.rows||[],cell:e,saveCallback:a}})}function A(e){n.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:p.rows,openFromEditor:!0}})}function C(){n.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:p.rows||[]}})}function x(e){n.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:N.project,currentXML:e}}).then(function(e){e&&p.rows.push(e)})}function T(e){n.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:e,variables:c.rows}})}function S(e){n.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:N.project}}).then(function(e){e&&_.merge(N.project,e)})}function O(e,a){n.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:a}}).then(function(e){e&&(N.project.preproduction=e)})}function w(e){n.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(N.project.preproduction=e)})}function R(e,t){var n={preproduction:e};t&&(n.production=e),i.squareProject.update({id:N.project.id},n).$promise.then(function(e){a.success({title:"Project "+(t?"published":"saved")+"!",msg:N.project.name?N.project.name+" has been "+(t?"published":"saved")+"!":""}),N.project.preproduction=e.preproduction}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function I(){e.go("app.callysquare.projects")}var N=this;N.project=o||{},N.saveOrPublishProject=R,N.$onInit=E,N.openDialog=y,N.newProject=A,N.openProject=C,N.saveProjectAs=x,N.newVariable=T,N.updateInfo=S,N.editXML=O,N.importXML=w,N.gotoProjects=I}e.$inject=["$state","$document","$mdDialog","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","$window"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,n){t.go("app.callysquare.projects.edit",{id:e.id})}function m(e,t){var n=s.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){y.projects=e||{count:0,rows:[]}}function p(){y.query.offset=y.query.page-1,y.promise=i.squareProject.get(y.query,u).$promise}function g(e,t){s.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:t,projects:y.projects.rows,openFromEditor:null}})}function h(e){i.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(y.projects.rows,{id:e.id}),y.projects.count-=1,y.projects.rows.length||y.getProjects(),d.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){var e=_.clone(y.selectedProjects);return y.selectedProjects=[],e}function b(e){var t=s.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+y.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).then(function(){y.selectedProjects.forEach(function(e){h(e)}),y.selectedProjects=[]})}function f(){y.selectedProjects=[]}function E(){y.selectedProjects=y.projects.rows}var y=this;y.projects=a||{count:0,rows:[]},y.table="projects",y.listOrder="",y.listOrderAsc=null,y.selectedProjects=[],y.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},y.editstate=c,y.deleteconfirm=m,y.success=u,y.getProjects=p,y.createOrEditProject=g,y.deleteProject=h,y.exportSelectedProjects=v,y.deleteSelectedProjects=b,y.deselectProjects=f,y.selectAllProjects=E;var A=!0,C=1;e.$watch("vm.query.filter",function(e,t){A?l(function(){A=!1}):(t||(C=y.query.page),e!==t&&(y.query.page=1),e||(y.query.page=C),y.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","api","msUtils","$mdDialog","$document","$timeout","toasty"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareRecording.save(p.squareRecording).$promise.then(function(e){p.squareRecordings.unshift(e),i.success({title:"SquareRecording properly created",msg:p.squareRecording.name?p.squareRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.squareRecording.update({id:p.squareRecording.id},p.squareRecording).$promise.then(function(e){var t=_.find(p.squareRecordings,{id:e.id});t&&_.merge(t,e),i.success({title:"SquareRecording properly saved!",msg:p.squareRecording.name?p.squareRecording.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.squareRecording.delete({id:p.squareRecording.id}).$promise.then(function(){_.remove(p.squareRecordings,{id:p.squareRecording.id}),i.success({title:"SquareRecording properly deleted!",msg:(p.squareRecording.name||"squareRecording")+" has been deleted!"}),u(p.squareRecording)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CALLYSQUARE.EDIT_SQUARERECORDING",p.squareRecording=angular.copy(s),p.squareRecordings=o,p.newSquareRecording=!1,p.squareRecording||(p.squareRecording={},p.title="CALLYSQUARE.NEW_SQUARERECORDING",p.newSquareRecording=!0),p.addNewSquareRecording=l,p.saveSquareRecording=d,p.deleteSquareRecording=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","squareRecordings","squareRecording","api"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,n){return l.squareRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/square/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the squareRecording?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.squareRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.squareRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:t,squareRecordings:A.squareRecordings.rows}})}function v(e){l.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.squareRecordings.rows,{id:e.id}),A.squareRecordings.count-=1,A.squareRecordings.rows.length||A.getSquareRecordings(),c.success({title:"SquareRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSquareRecordings);return A.selectedSquareRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+A.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSquareRecordings.forEach(function(e){v(e)}),A.selectedSquareRecordings=[]})}function E(){A.selectedSquareRecordings=[]}function y(){A.selectedSquareRecordings=A.squareRecordings.rows}var A=this;A.squareRecordings=r||{count:0,rows:[]},A.table="squareRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedSquareRecordings=[],A.query={fields:"createdAt,updatedAt,id,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getSquareRecordings=g,A.createOrEditSquareRecording=h,A.deleteSquareRecording=v,A.exportSelectedSquareRecordings=b,A.deleteSelectedSquareRecordings=f,A.deselectSquareRecordings=E,A.selectAllSquareRecordings=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","squareRecordings","api","msUtils","toasty"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatQueue?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:A.chatQueues.rows}})}function v(e){l.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.chatQueues.rows,{id:e.id}),A.chatQueues.count-=1,A.chatQueues.rows.length||A.getChatQueues(),c.success({title:"ChatQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChatQueues);return A.selectedChatQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+A.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatQueues.forEach(function(e){v(e)}),A.selectedChatQueues=[]})}function E(){A.selectedChatQueues=[]}function y(){A.selectedChatQueues=A.chatQueues.rows}var A=this;A.chatQueues=r||{count:0,rows:[]},A.table="chatQueues",A.listOrder="",A.listOrderAsc=null,A.selectedChatQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"Round Robin Memory",value:"'roundrobun'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatQueues=g,A.createOrEditChatQueue=h,A.deleteChatQueue=v,A.exportSelectedChatQueues=b,A.deleteSelectedChatQueues=f,A.deselectChatQueues=E,A.selectAllChatQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatQueues","api","msUtils","toasty"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatQueue.save(p.chatQueue).$promise.then(function(e){p.chatQueues.unshift(e),i.success({title:"ChatQueue properly created",msg:p.chatQueue.name?p.chatQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatQueue.update({id:p.chatQueue.id},p.chatQueue).$promise.then(function(e){var t=_.find(p.chatQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatQueue properly saved!",msg:p.chatQueue.name?p.chatQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatQueue.delete({id:p.chatQueue.id}).$promise.then(function(){_.remove(p.chatQueues,{id:p.chatQueue.id}),i.success({title:"ChatQueue properly deleted!",msg:(p.chatQueue.name||"chatQueue")+" has been deleted!"}),u(p.chatQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATQUEUE",p.chatQueue=angular.copy(s),p.chatQueues=o,p.newChatQueue=!1,p.chatQueue||(p.chatQueue={strategy:"beepall"},p.title="CHAT.NEW_CHATQUEUE",p.newChatQueue=!0),p.addNewChatQueue=l,p.saveChatQueue=d,p.deleteChatQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatQueues","chatQueue","api"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.chatQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("CHAT.ALL_TEAMS"),labelSelected:i.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,a){n.chatQueue[a?"removeTeams":"addTeams"]({id:s.chatQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.chatQueue.getTeams({id:s.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","chatQueue","$translate"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:d.chatQueues?d.chatQueues.rows:[]}})}function r(){e.go("app.chat.chatQueues")}function l(){i.chatQueue.update({id:d.chatQueue.id},d.chatQueue).$promise.then(function(){a.success({title:"ChatQueue updated!",msg:d.chatQueue.name?d.chatQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.chatQueue=e.params.chatQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoChatQueues=r,d.saveChatQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","chatQueue"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatWebsite?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatWebsites=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatWebsite.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:t,chatWebsites:A.chatWebsites.rows}})}function v(e){l.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(A.chatWebsites.rows,{id:e.id}),A.chatWebsites.count-=1,A.chatWebsites.rows.length||A.getChatWebsites(),c.success({title:"ChatWebsite deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChatWebsites);return A.selectedChatWebsites=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+A.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatWebsites.forEach(function(e){v(e)}),A.selectedChatWebsites=[]})}function E(){A.selectedChatWebsites=[]}function y(){A.selectedChatWebsites=A.chatWebsites.rows}var A=this;A.chatWebsites=r||{count:0,rows:[]},A.table="chatWebsites",A.listOrder="",A.listOrderAsc=null,A.selectedChatWebsites=[],A.query={fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatWebsites=g,A.createOrEditChatWebsite=h,A.deleteChatWebsite=v,A.exportSelectedChatWebsites=b,A.deleteSelectedChatWebsites=f,A.deselectChatWebsites=E,A.selectAllChatWebsites=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatWebsites","api","msUtils","toasty"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatWebsite.save(p.chatWebsite).$promise.then(function(e){p.chatWebsites.unshift(e),i.success({title:"ChatWebsite properly created",msg:p.chatWebsite.name?p.chatWebsite.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(e){var t=_.find(p.chatWebsites,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatWebsite properly saved!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatWebsite.delete({id:p.chatWebsite.id}).$promise.then(function(){_.remove(p.chatWebsites,{id:p.chatWebsite.id}),i.success({title:"ChatWebsite properly deleted!",msg:(p.chatWebsite.name||"chatWebsite")+" has been deleted!"}),u(p.chatWebsite)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATWEBSITE",p.chatWebsite=angular.copy(s),p.chatWebsites=o,p.newChatWebsite=!1,p.chatWebsite||(p.chatWebsite={remote:n.protocol()+"://"+n.host()+":"+n.port(),header_shape:"rounded"},p.title="CHAT.NEW_CHATWEBSITE",p.newChatWebsite=!0),p.addNewChatWebsite=l,p.saveChatWebsite=d,p.deleteChatWebsite=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatWebsites","chatWebsite","api"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.chatWebsite=e,h.query.id=h.chatWebsite.id,h.query.ChatWebsiteId=h.chatWebsite.id,h.getChatWebsiteChatDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the chatDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.chatWebsite.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatDisposition:t,chatDispositions:h.chatWebsiteChatDispositions.rows}})}function p(e){r.chatDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.chatWebsiteChatDispositions.rows,{id:e.id}),h.chatWebsiteChatDispositions.count-=1,h.chatWebsiteChatDispositions.rows.length||h.getChatWebsiteChatDispositions(),s.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent("<b>"+h.selectedChatWebsiteChatDispositions.length+" selected</b> will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedChatWebsiteChatDispositions.forEach(function(e){p(e)}),h.selectedChatWebsiteChatDispositions=[]})}var h=this;h.chatWebsite={},h.chatWebsiteChatDispositions={count:0,rows:[]},h.selectedChatWebsiteChatDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getChatWebsiteChatDispositions=m,h.createOrEditChatWebsiteChatDisposition=u,h.deleteChatWebsiteChatDisposition=p,h.deleteSelectedChatWebsiteChatDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getChatWebsiteChatDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.chat").controller("ChatWebsiteChatDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatDisposition.save(p.chatDisposition).$promise.then(function(e){p.chatDispositions.unshift(e),i.success({title:"ChatDisposition properly created",msg:p.chatDisposition.name?p.chatDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatDisposition.update({id:p.chatDisposition.id},p.chatDisposition).$promise.then(function(e){var t=_.find(p.chatDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatDisposition properly saved!",msg:p.chatDisposition.name?p.chatDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatDisposition will be deleted.").ariaLabel("Delete ChatDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatDisposition.delete({id:p.chatDisposition.id}).$promise.then(function(){_.remove(p.chatDispositions,{id:p.chatDisposition.id}),i.success({title:"ChatDisposition properly deleted!",msg:(p.chatDisposition.name||"chatDisposition")+" has been deleted!"}),u(p.chatDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATDISPOSITION",p.chatDisposition=angular.copy(s),p.chatDispositions=o,p.newChatDisposition=!1,p.chatDisposition||(p.chatDisposition={},p.title="CHAT.NEW_CHATDISPOSITION",p.newChatDisposition=!0),t.params.id&&(p.chatDisposition.ChatWebsiteId=t.params.id),p.addNewChatDisposition=l,p.saveChatDisposition=d,p.deleteChatDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatDispositions","chatDisposition","api"],angular.module("app.chat").controller("CreateOrEditChatDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.chat.chatWebsites")}function r(){i.chatWebsite.update({id:l.chatWebsite.id},l.chatWebsite).$promise.then(function(){a.success({title:"ChatWebsite updated!",msg:l.chatWebsite.name?l.chatWebsite.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.chatWebsite=e.params.chatWebsite||o||{},l.selectedTab=e.params.tab||0,l.gotoChatWebsites=s,l.saveChatWebsite=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","chatWebsite"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.contactmanager.companies.edit",{id:e.id,company:e})}function u(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the company?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.companies=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.cmCompany.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:t,companies:C.companies.rows}})}function b(e){l.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(C.companies.rows,{id:e.id}),C.companies.count-=1,C.companies.rows.length||C.getCompanies(),c.success({title:"Company deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedCompanies);return C.selectedCompanies=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+C.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedCompanies.forEach(function(e){b(e)}),C.selectedCompanies=[]})}function y(){C.selectedCompanies=[]}function A(){C.selectedCompanies=C.companies.rows}var C=this;C.companies=r||{count:0,rows:[]},C.table="companies",C.listOrder="",C.listOrderAsc=null,C.selectedCompanies=[],C.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},C.editstate=m,C.gotocontactsgoto=u,C.deleteconfirm=p,C.success=g,C.getCompanies=h,C.createOrEditCompany=v,C.deleteCompany=b,C.exportSelectedCompanies=f,C.deleteSelectedCompanies=E,C.deselectCompanies=y,C.selectAllCompanies=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","companies","api","msUtils","toasty"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCompany.save(p.company).$promise.then(function(e){p.companies.unshift(e),i.success({title:"Company properly created",msg:p.company.name?p.company.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCompany.update({id:p.company.id},p.company).$promise.then(function(e){var t=_.find(p.companies,{id:e.id});t&&_.merge(t,e),i.success({title:"Company properly saved!",msg:p.company.name?p.company.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCompany.delete({id:p.company.id}).$promise.then(function(){_.remove(p.companies,{id:p.company.id}),i.success({title:"Company properly deleted!",msg:(p.company.name||"company")+" has been deleted!"}),u(p.company)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_COMPANY",p.company=angular.copy(s),p.companies=o,p.newCompany=!1,p.company||(p.company={},p.title="CONTACTMANAGER.NEW_COMPANY",p.newCompany=!0),p.addNewCompany=l,p.saveCompany=d,p.deleteCompany=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","companies","company","api"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.contactmanager.contacts",{CompanyId:t.id})}function r(){e.go("app.contactmanager.companies")}function l(){i.cmCompany.update({id:d.company.id},d.company).$promise.then(function(){a.success({title:"Company updated!",msg:d.company.name?d.company.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.company=e.params.company||o||{},d.selectedTab=e.params.tab||0,d.gotogoto=s,d.gotoCompanies=r,d.saveCompany=l}e.$inject=["$state","$mdDialog","$document","toasty","api","company"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(e){var t=i.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.cmList.save({name:e});m.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(N.lists.rows.push(e),m.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})}function g(){return u.hasPermission(303)||u.hasRole("admin")}function h(e){var t=i.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.cmCompany.save({name:e});m.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(N.companies.rows.push(e),m.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})}function v(e){var t=i.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.tag.save({name:e});m.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(N.tags.rows.push(e),m.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})}function b(e,n,a){N.disableDialog=!1,Papa.parse(n.file,{skipEmptyLines:!0,header:!0,woerker:!0,complete:function(n){a.files=[],N.disableDialog=!0,i.show({controller:"UploadContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/upload/upload.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!1,locals:{lists:r,companies:d,contacts:n.data,fields:n.meta.fields}}).then(function(){N.getContacts()}).catch(function(e){console.error()})}})}function f(e,t){a.go("app.contactmanager.contacts.edit",{id:e.id})}function E(e,t){var n=i.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){S(e)})}function y(e){N.contacts=e||{count:0,rows:[]}}function A(){N.query.offset=(N.query.page-1)*N.query.limit,N.promise=o.cmContact.get(N.query,y).$promise}function C(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth)),i.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:N.query.ListId||a.params.ListId,CompanyId:N.query.CompanyId||a.params.CompanyId,contact:n,contacts:N.contacts.rows},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name"})}]}})}function x(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:N.contacts.rows}})}function T(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:N.contacts.rows}})}function S(e){o.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(N.contacts.rows,{id:e.id}),N.contacts.count-=1,N.contacts.rows.length||N.getContacts(),m.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){m.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function O(){var e=_.clone(N.selectedContacts);return N.selectedContacts=[],e}function w(e){var t=i.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+N.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){N.selectedContacts.forEach(function(e){S(e)}),N.selectedContacts=[]})}function R(){N.selectedContacts=[]}function I(){N.selectedContacts=N.contacts.rows}var N=this;u.getCurrentUser();N.contacts=s||{count:0,rows:[]},N.options={hidden:!1,hover:!1,isOpen:!1},N.table="cm_contacts",N.listOrder="",N.listOrderAsc=null,N.disableDialog=!0,N.selectedContacts=[],N.lists=r||{rows:[],count:0},N.companies=d||{rows:[],count:0},N.tags=c||{rows:[],count:0},N.listsMap=l,N.selectedTags=[],N.selectedList=null,N.selectedCompany=null,N.query={fields:"id,firstName,lastName,phone,email,updatedAt",sort:"-updatedAt",limit:10,page:1},N.editdialog=f,N.deleteconfirm=E,N.success=y,N.getContacts=A,N.mergeContact=T,N.duplicateContact=x,N.createOrEditContact=C,N.deleteContact=S,N.exportSelectedContacts=O,N.deleteSelectedContacts=w,N.deselectContacts=R,N.selectAllContacts=I,N.createTag=v,N.createList=p,N.createCompany=h,N.uploadContacts=b,N.hasPermission=g,a.params.ListId&&(N.selectedList=a.params.ListId),a.params.CompanyId&&(N.selectedCompany=a.params.CompanyId),e.$watch("vm.options.isOpen",function(t){t?n(function(){e.tooltipVisible=N.options.isOpen},600):e.tooltipVisible=N.options.isOpen});var D=!0,L=1;e.$watch("vm.query.filter",function(e,t){D?n(function(){D=!1}):(t||(L=N.query.page),e!==t&&(N.query.page=1),e||(N.query.page=L),N.getContacts())},!0),e.$watch("vm.selectedList",function(e,t){e!==t&&(N.query.ListId=N.selectedList||void 0,N.getContacts())}),e.$watch("vm.selectedCompany",function(e,t){e!==t&&(N.query.CompanyId=N.selectedCompany||void 0,N.getContacts())}),e.$watch("vm.selectedTags",function(e,t){(e.length||t.length)&&(N.query.tags=N.selectedTags.length?N.selectedTags.join():void 0,N.getContacts())})}e.$inject=["$scope","$document","$timeout","$state","$mdDialog","api","contacts","lists","listsMap","companies","tags","toasty","Auth"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){h.errors=[],l.cmContact.save(h.contact).$promise.then(function(e){h.contacts.unshift(e),t.success({title:"Contact properly created",msg:h.contact.name?h.contact.name+" has been created!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){h.errors=[],l.cmContact.update({id:h.contact.id},h.contact).$promise.then(function(e){var n=_.find(h.contacts,{id:e.id});n&&_.merge(n,e),t.success({title:"Contact properly saved!",msg:h.contact.name?h.contact.name+" has been saved!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function m(e){if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){e&&(h.customFields=e)}).catch(function(e){console.error(e)});h.customFields={rows:[],count:0}}function u(n){h.errors=[];var a=e.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(n);e.show(a).then(function(){l.cmContact.delete({id:h.contact.id}).$promise.then(function(){_.remove(h.contacts,{id:h.contact.id}),t.success({title:"Contact properly deleted!",msg:h.contact.name?h.contact.name+" has been deleted!":""}),g()}).catch(function(e){console.error(e),h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})}function p(e){return new Date(e)}function g(){e.hide()}var h=this;h.errors=[],h.title="CONTACTMANAGER.EDIT_CONTACT",h.contact=angular.copy(o),h.contacts=n||{rows:[],count:0},h.lists=a||{rows:[],count:0},h.companies=i||{rows:[],count:0},h.customFields={rows:[],count:0},h.newContact=!1,h.contact?(delete h.contact.List,h.ListId=h.contact.ListId||void 0):(h.contact={ListId:s?parseInt(s,10):void 0,CompanyId:r?parseInt(r,10):void 0},h.title="CONTACTMANAGER.NEW_CONTACT",h.newContact=!0),h.addNewContact=d,h.saveContact=c,h.deleteContact=u,h.closeDialog=g,h.getCustomFields=m,h.getDateFromString=p}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){l.errors=[],delete l.contact.id,o.cmContact.save(l.contact).$promise.then(function(e){a.unshift(e),t.success({title:"Contact properly created",msg:l.contact.name?l.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})}function r(){e.hide()}var l=this;l.errors=[],l.title="CONTACTMANAGER.COPY_CONTACT",l.contact=angular.copy(n),l.lists=i||{rows:[],count:0},l.addNewContact=s,l.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){m.errors=[],r.cmHopper.update({id:m.hopper.id},m.hopper).$promise.then(function(e){var t=_.find(m.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:m.hopper.name?m.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})}function d(e){return new Date(e)}function c(e){a.hide(e)}var m=this;m.errors=[],m.title="CONTACTMANAGER.EDIT_HOPPER",m.hopper=angular.copy(s),m.hoppers=o,m.newHopper=!1,m.hopper||(m.hopper={},m.title="CONTACTMANAGER.NEW_HOPPER",m.newHopper=!0),m.saveHopper=l,m.getDateFromString=d,m.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h){function v(e){return function(t){N[e]=t||{count:0,rows:[]}}}function b(e,t){i.show({controller:"EditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:N.hoppers.rows}})}function f(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(e.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function E(e){return s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(N.hoppers.rows,{id:e.id}),N.hoppers.count--,N.hoppers.rows.length||N.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){console.log("getHoppers"),N.queryHopper.offset=(N.queryHopper.page-1)*N.queryHopper.limit,N.promise=s.cmHopper.get(N.queryHopper,v("hoppers")).$promise}function A(){N.queryFinal.offset=(N.queryFinal.page-1)*N.queryFinal.limit,N.promise=s.cmHopperFinal.get(N.queryFinal,v("finals")).$promise}function C(){N.queryHistory.offset=(N.queryHistory.page-1)*N.queryHistory.limit,N.promise=s.cmHopperHistory.get(N.queryHistory,v("histories")).$promise}function x(e){if(N.contact.ListId){var t=i.confirm().title("You are selecting the list number: "+N.contact.ListId).textContent("Warning! You won't select a different list for the contact "+N.contact.firstName||N.contact.lastName||N.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(N.onSelectListSuccess).catch(function(){N.contact.ListId=null})}}function T(){return s.cmList.getCustomFields({id:N.contact.ListId}).$promise.then(function(e){N.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})}function S(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[]},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:t})}]}})}function O(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:m.rows,contact:r}})}function w(){s.cmContact.update({id:N.contact.id},N.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:N.contact.name?N.contact.name+" has been updated!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function R(e){return new Date(e)}function I(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})}var N=this;N.contact=r||{},N.hoppers=l||{rows:[],count:0},N.finals=d||{rows:[],count:0},N.histories=c||{rows:[],count:0},N.companies=u||{rows:[],count:0},N.lists=p||{rows:[],count:0},N.customFields=g||{rows:[],count:0},N.tags=h||{rows:[],count:0},N.queryHopper={ContactId:N.contact.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},N.queryFinal={ContactId:N.contact.id,fields:"uniqueid,phone,status,starttime,disposition",sort:"-updatedAt",limit:10,page:1},N.queryHistory={ContactId:N.contact.id,fields:"id,ContactId,phone,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},N.selectedTab=n.params.tab||0,N.gotoContacts=I,N.duplicateContact=O,N.saveContact=w,N.editCompany=S,N.onSelectList=x,N.onSelectListSuccess=T,N.getDateFromString=R,N.getHoppers=y,N.getFinals=A,N.getHistories=C,N.deleteconfirm=f,N.editHopper=b;var D=!0,L=1;e.$watch("vm.queryHopper.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.queryHopper.page),e!==n&&(N.queryHopper.page=1),e||(N.queryHopper.page=L),N.getHoppers())}),e.$watch("vm.queryFinal.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.queryFinal.page),e!==n&&(N.queryFinal.page=1),e||(N.queryFinal.page=L),N.getFinals())}),e.$watch("vm.queryHistory.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.queryHistory.page),e!==n&&(N.queryHistory.page=1),e||(N.queryHistory.page=L),N.getHistories())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(t,a,o){_.remove(c.contacts,{id:a.id});var r=e.confirm().title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+o.id+" will be overwritten by the fields of the contact #"+a.id+".").targetEvent(t).ok("Ok").cancel("Cancel");e.show(r).then(function(){var e=a.id,t=o.id,r=_.mergeWith(a,o,function(e,t){return Array.isArray(t)&&!t.length?e:t||e});s.cmContact.update({id:r.id},r).$promise.then(function(){return s.cmContact.delete({id:e})}).then(function(){_.remove(i,{id:e}),_.merge(_.find(i,{id:t}),r),n.success({title:"Contact properly merged!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})})}function l(){c.errors=[],delete c.contact.id,s.cmContact.save(c.contact).$promise.then(function(e){i.unshift(e),n.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),d()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})}function d(){e.hide()}var c=this;c.errors=[],c.title="CONTACTMANAGER.MERGE_CONTACT",c.contact=angular.copy(a),c.lists=o||[],c.change=function(){c.searchTerm?s.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:c.searchTerm,ListId:a.ListId}).$promise.then(function(e){c.contacts=e.rows}).catch(function(e){console.error(e)}):c.contacts=[]},c.addNewContact=l,c.showConfirm=r,c.closeDialog=d}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return d.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})}function m(){g.uploading=!0,u(g.contacts.length-1)}function u(e){if(e<0)return g.stop=!0,void(g.uploading=!1);for(var t=[];e>=0&&t.length<h;){var n={};for(var a in g.binding)g.binding.hasOwnProperty(a)&&(n[a]=g.contacts[e][g.binding[a]]),n.ListId=g.ListId,n.CompanyId=g.CompanyId,n.duplicates=g.duplicates;t.push(n),e--}return d.cmContact.bulkCreate(t).$promise.then(function(e){g.successAmount+=e.success,g.failureAmount+=e.failure,g.duplicatesAmount+=e.duplicates}).catch(function(e){console.error(e)}).finally(function(){u(e)})}function p(){t.hide()}var g=this,h=50;g.successAmount=0,g.failureAmount=0,g.duplicatesAmount=0,g.uploading=!1,g.stop=!1,g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.contacts=s,g.binding={},g.fields=r,g.lists=i||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.closeDialog=p,g.onChangeList=c,g.upload=m}e.$inject=["$cookies","$mdDialog","$interval","$q","lists","companies","contacts","fields","toasty","api"],angular.module("app.tools").controller("UploadContactsDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCustomField.save(p.globalCustomField).$promise.then(function(e){p.globalCustomFields.unshift(e),i.success({title:"GlobalCustomField properly created",msg:p.globalCustomField.name?p.globalCustomField.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCustomField.update({id:p.globalCustomField.id},p.globalCustomField).$promise.then(function(e){var t=_.find(p.globalCustomFields,{id:e.id});t&&_.merge(t,e),i.success({title:"GlobalCustomField properly saved!",msg:p.globalCustomField.name?p.globalCustomField.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCustomField.delete({id:p.globalCustomField.id}).$promise.then(function(){_.remove(p.globalCustomFields,{id:p.globalCustomField.id}),i.success({title:"GlobalCustomField properly deleted!",msg:(p.globalCustomField.name||"globalCustomField")+" has been deleted!"}),u(p.globalCustomField)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",p.globalCustomField=angular.copy(s),p.globalCustomFields=o,p.newGlobalCustomField=!1,p.globalCustomField||(p.globalCustomField={type:"text"},p.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",p.newGlobalCustomField=!0),p.addNewGlobalCustomField=l,p.saveGlobalCustomField=d,p.deleteGlobalCustomField=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","globalCustomFields","globalCustomField","api"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:A.globalCustomFields.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the globalCustomField?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.globalCustomFields=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cmCustomField.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:t,globalCustomFields:A.globalCustomFields.rows}})}function v(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(A.globalCustomFields.rows,{id:e.id}),A.globalCustomFields.count-=1,A.globalCustomFields.rows.length||A.getGlobalCustomFields(),c.success({title:"GlobalCustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCustomField",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedGlobalCustomFields);return A.selectedGlobalCustomFields=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+A.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedGlobalCustomFields.forEach(function(e){v(e)}),A.selectedGlobalCustomFields=[]})}function E(){A.selectedGlobalCustomFields=[]}function y(){A.selectedGlobalCustomFields=A.globalCustomFields.rows}var A=this;A.globalCustomFields=r||{count:0,rows:[]},A.table="globalCustomFields",A.listOrder="",A.listOrderAsc=null,A.selectedGlobalCustomFields=[],A.query={fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,page:1},A.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getGlobalCustomFields=g,A.createOrEditGlobalCustomField=h,A.deleteGlobalCustomField=v,A.exportSelectedGlobalCustomFields=b,A.deleteSelectedGlobalCustomFields=f,A.deselectGlobalCustomFields=E,A.selectAllGlobalCustomFields=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","globalCustomFields","api","msUtils","toasty"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.save(p.list).$promise.then(function(e){p.lists.unshift(e),i.success({title:"List properly created",msg:p.list.name?p.list.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmList.update({id:p.list.id},p.list).$promise.then(function(e){var t=_.find(p.lists,{id:e.id});t&&_.merge(t,e),i.success({title:"List properly saved!",msg:p.list.name?p.list.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmList.delete({id:p.list.id}).$promise.then(function(){_.remove(p.lists,{id:p.list.id}),i.success({title:"List properly deleted!",msg:(p.list.name||"list")+" has been deleted!"}),u(p.list)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_LIST",p.list=angular.copy(s),p.lists=o,p.newList=!1,p.list||(p.list={},p.title="CONTACTMANAGER.NEW_LIST",p.newList=!0),p.addNewList=l,p.saveList=d,p.deleteList=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","lists","list","api"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.cmList[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.list=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:s.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,a){n.cmList[a?"removeAgents":"addAgents"]({id:c.list.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:cmList.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","list","lists","realtime","$translate"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.list=e,h.query.id=h.list.id,h.query.ListId=h.list.id,h.getListCustomFields()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.listCustomFields=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.cmList.getCustomFields(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customField:t,customFields:h.listCustomFields.rows}})}function p(e){r.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(h.listCustomFields.rows,{id:e.id}),h.listCustomFields.count-=1,h.listCustomFields.rows.length||h.getListCustomFields(),s.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+h.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedListCustomFields.forEach(function(e){p(e)}),h.selectedListCustomFields=[]})}var h=this;h.list={},h.listCustomFields={count:0,rows:[]},h.selectedListCustomFields=[],h.query={fields:"createdAt,updatedAt,id,alias,type,values,required",limit:10,page:1},h.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getListCustomFields=m,h.createOrEditListCustomField=u,h.deleteListCustomField=p,h.deleteSelectedListCustomFields=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getListCustomFields())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.addCustomField({id:t.params.id},p.customField).$promise.then(function(e){p.customFields.unshift(e),i.success({title:"CustomField properly created",msg:p.customField.name?p.customField.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCustomField.update({id:p.customField.id},p.customField).$promise.then(function(e){var t=_.find(p.customFields,{id:e.id});t&&_.merge(t,e),i.success({title:"CustomField properly saved!",msg:p.customField.name?p.customField.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCustomField.delete({id:p.customField.id}).$promise.then(function(){_.remove(p.customFields,{id:p.customField.id}),i.success({title:"CustomField properly deleted!",msg:(p.customField.name||"customField")+" has been deleted!"}),u(p.customField)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",p.customField=angular.copy(s),p.customFields=o,p.newCustomField=!1,p.customField||(p.customField={type:"text"},p.title="CONTACTMANAGER.NEW_CUSTOMFIELD",p.newCustomField=!0),t.params.id&&(p.customField.ListId=t.params.id),e.$watch("vm.customField.type",function(e,t){if(e!==t)switch(e){case"text":p.customField.values="";break;case"select":p.customField.values=[]}}),p.addNewCustomField=l,p.saveCustomField=d,p.deleteCustomField=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customFields","customField","api"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.contactmanager.contacts",{ListId:t.id})}function r(e,a){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{list:e,lists:c.lists?c.lists.rows:[],realtime:!1}})}function l(){e.go("app.contactmanager.lists")}function d(){i.cmList.update({id:c.list.id},c.list).$promise.then(function(){a.success({title:"List updated!",msg:c.list.name?c.list.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.list=e.params.list||o||{},c.selectedTab=e.params.tab||0,c.gotogoto=s,c.agentadddialog=r,c.gotoLists=l,c.saveList=d}e.$inject=["$state","$mdDialog","$document","toasty","api","list"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.list=e,h.query.id=h.list.id,h.query.ListId=h.list.id,h.getListVoiceDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the voiceDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete voiceDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.listVoiceDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.cmList.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditVoiceDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceDisposition:t,voiceDispositions:h.listVoiceDispositions.rows}})}function p(e){r.voiceDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.listVoiceDispositions.rows,{id:e.id}),h.listVoiceDispositions.count-=1,h.listVoiceDispositions.rows.length||h.getListVoiceDispositions(),s.success({title:"VoiceDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected voiceDispositions?").htmlContent("<b>"+h.selectedListVoiceDispositions.length+" selected</b> will be deleted.").ariaLabel("delete voiceDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedListVoiceDispositions.forEach(function(e){p(e)}),h.selectedListVoiceDispositions=[]})}var h=this;h.list={},h.listVoiceDispositions={count:0,rows:[]},h.selectedListVoiceDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getListVoiceDispositions=m,h.createOrEditListVoiceDisposition=u,h.deleteListVoiceDisposition=p,h.deleteSelectedListVoiceDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getListVoiceDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListVoiceDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceDisposition.save(p.voiceDisposition).$promise.then(function(e){p.voiceDispositions.unshift(e),i.success({title:"VoiceDisposition properly created",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceDisposition.update({id:p.voiceDisposition.id},p.voiceDisposition).$promise.then(function(e){var t=_.find(p.voiceDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceDisposition properly saved!",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceDisposition will be deleted.").ariaLabel("Delete VoiceDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceDisposition.delete({id:p.voiceDisposition.id}).$promise.then(function(){_.remove(p.voiceDispositions,{id:p.voiceDisposition.id}),i.success({title:"VoiceDisposition properly deleted!",msg:(p.voiceDisposition.name||"voiceDisposition")+" has been deleted!"}),u(p.voiceDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_VOICEDISPOSITION",p.voiceDisposition=angular.copy(s),p.voiceDispositions=o,p.newVoiceDisposition=!1,p.voiceDisposition||(p.voiceDisposition={},p.title="CONTACTMANAGER.NEW_VOICEDISPOSITION",p.newVoiceDisposition=!0),t.params.id&&(p.voiceDisposition.ListId=t.params.id),p.addNewVoiceDisposition=l,p.saveVoiceDisposition=d,p.deleteVoiceDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceDispositions","voiceDisposition","api"],angular.module("app.contactmanager").controller("CreateOrEditVoiceDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.contactmanager.lists.edit",{id:e.id,list:e})}function u(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})}function p(e,n){var a=t.document.createElement("a");a.href="/api/cm/lists/"+e.id+"/contacts/csv",a.target="_self",a.click()}function g(e,t){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{list:e,lists:T.lists?T.lists.rows:[],realtime:!1}})}function h(e,t){var n=i.confirm().title("Are you sure want to delete the list?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function v(e){T.lists=e||{count:0,rows:[]}}function b(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.cmList.get(T.query,v).$promise}function f(e,t){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:t,lists:T.lists.rows}})}function E(e){l.cmList.delete({id:e.id}).$promise.then(function(){_.remove(T.lists.rows,{id:e.id}),T.lists.count-=1,T.lists.rows.length||T.getLists(),c.success({title:"List deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){var e=_.clone(T.selectedLists);return T.selectedLists=[],e}function A(e){var t=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+T.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedLists.forEach(function(e){E(e)}),T.selectedLists=[]})}function C(){T.selectedLists=[]}function x(){T.selectedLists=T.lists.rows}var T=this;T.lists=r||{count:0,rows:[]},T.table="lists",T.listOrder="",T.listOrderAsc=null,T.selectedLists=[],T.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},T.editstate=m,T.gotocontactsgoto=u,T.exportcsvcontactsexport=p,T.agentadddialog=g,T.deleteconfirm=h,T.success=v,T.getLists=b,T.createOrEditList=f,T.deleteList=E,T.exportSelectedLists=y,T.deleteSelectedLists=A,T.deselectLists=C,T.selectAllLists=x;var S=!0,O=1;e.$watch("vm.query.filter",function(e,t){S?s(function(){S=!1}):(t||(O=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=O),T.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","lists","api","msUtils","toasty"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p){function g(e){e.id=_.random(1e10),e.openedAt=new Date,e.saved=!1;var t=A.tabs.length;A.tabs.push(e),A.currentTab=C+t}function h(e,t){if(e){var n=_.findLastIndex(A.tabs,function(t){return"contact"===t.type&&t.contact&&t.contact.id===e.id});if(n<0){var a={type:"contact",title:e?e.firstName||e.phone:i.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",contact:e,userLists:c,lists:m,companies:u,tags:p,calls:t?[t]:[]};if(e.ListId)return r.cmList.getDispositions({id:e.ListId}).$promise.then(function(t){return a.dispositions=t,r.cmList.getCustomFields({id:e.ListId}).$promise}).then(function(e){a.customFields=e}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g(a)});g(a)}else t&&A.tabs[n].calls.push(t),A.currentTab=C+n}else g(a)}function v(e){e&&e.uri&&a.open(e.uri)}function b(e){e&&e.html&&g({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",html:e.html})}function f(e){var t={ListId:e.ListId,nolimit:!0},n=!1;return _.isUndefined(e["xmd-contactid"])?t.phone=e.calleridnum:(t.id=e["xmd-contactid"],n=!0),r.cmContact.get(t).$promise.then(function(t){if(n&&t)A.addContactTab(t,e);else if(!n&&t.count)for(var a=0;a<t.rows.length;a+=1)A.addContactTab(t.rows[a],e);else A.addContactTab({firstName:e.calleridname||e.calleridnum||e.uniqueid,ListId:e.ListId,phone:e.calleridnum},e)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(e,t){var a=n.confirm().title("Are you sure want to close the contact?").ariaLabel("Close Contact").ok("OK").cancel("CANCEL");t.saved?A.tabs.splice(e,1):n.show(a).then(function(){A.tabs.splice(e,1)})}function y(){a.localStorage.setItem("motion.user:"+A.user.id,JSON.stringify({tabs:A.tabs}))}var A=this,C=4;A.tabs=[],A.user=s.getCurrentUser(),A.currentTab=0,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.localStorageSet=y,A.onContactManager=f,A.onBrowserUrl=v,A.onBrowserPopup=b,A.addContactTab=h,A.closeTab=E,A.motionUser=a.localStorage.getItem("motion.user:"+A.user.id),A.motionUser&&(A.motionUser=JSON.parse(A.motionUser),A.tabs=A.motionUser.tabs),l.on("trigger:contactmanager",A.onContactManager),l.on("trigger:browser:url",A.onBrowserUrl),l.on("trigger:browser:popup",A.onBrowserPopup);var x=o(A.localStorageSet,1500);e.$watch("vm.currentTab",function(e,n){switch(A.currentTab){case 3:t.go("app.dashboards.general.mycontacts");break;case 2:t.go("app.dashboards.general.contacts");break;case 1:t.go("app.dashboards.general.recordings");break;case 0:t.go("app.dashboards.general.dashboard")}}),e.$on("$stateChangeSuccess",function(e,t,n,a,i){t.data&&(A.currentTab=t.data.selectedTab)}),e.$on("$destroy",function(){l.removeAllListeners("trigger:contactmanager"),l.removeAllListeners("trigger:browser:url"),l.removeAllListeners("trigger:browser:popup"),o.cancel(x)})}e.$inject=["$scope","$state","$mdDialog","$window","$translate","$interval","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){g.contacts=e||{count:0,rows:[]}}function d(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.cmContact.get(g.query,l).$promise}function c(e,n){t.$parent.vm.addContactTab(n)}function m(){g.query.ListId=g.defaultLists,g.getContacts()}function u(t,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:o.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:g.contacts.rows}})}function p(t,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:o.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:g.contacts.rows}})}var g=this;g.contacts={count:0,rows:[]},g.lists=r||{count:0,rows:[]},g.listsMap=_.mapValues(_.keyBy(r.rows,"id"),"name"),g.defaultLists=g.lists.rows?_.map(g.lists.rows,"id").join(","):void 0,g.query={sort:"-updatedAt",limit:10,page:1,ListId:g.defaultLists},g.getContacts=d,g.refreshContacts=m,g.mergeContact=p,g.duplicateContact=u,g.openContact=c,g.getContacts();var h=!0,v=1;t.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(v=g.query.page),e!==t&&(g.query.page=1),e||(g.query.page=v),g.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","Auth","api","lists"],angular.module("app.dashboards").controller("AgentContactsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){g.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function d(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=n.user.getQueues(g.query,l).$promise}function c(e){return _.size(e)}function m(){_.forIn(g.voiceQueues,function(e,t){g.rpcVoiceQueues[t]&&(g.voiceQueues[t].waiting=g.rpcVoiceQueues[t].waiting||0)})}function u(e){g.voiceQueues[e.id]&&g.rpcVoiceQueues[e.id]&&(g.rpcVoiceQueues[e.id]=e,g.voiceQueues[e.id].waiting=e.waiting||0)}function p(e){g.rpcVoiceQueuesChannels[e.uniqueid]&&e.queuecallerleaveAt?delete g.rpcVoiceQueuesChannels[e.uniqueid]:g.rpcVoiceQueuesChannels[e.uniqueid]=e}var g=this;g.voiceQueuesTotal=o.count?o.count:0,g.voiceQueues=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcVoiceQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},g.query={id:a.getCurrentUser().id,fields:"id,name",channel:"voice",limit:10,page:1},g.rpcVoiceQueuesChannels=r?_.keyBy(r.rows?r.rows:[],"uniqueid"):{},g.queryChannels={limit:10,page:1},g.success=l,g.getVoiceQueues=d,g.getSize=c,g.onSaveQueue=u,g.onSaveChannel=p,i.on("voice_queue:save",g.onSaveQueue),i.on("voice_queue_channel:save",g.onSaveChannel),m();var h=!0,v=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=v),g.getVoiceQueues())}),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_queue_channel:save")})}e.$inject=["$scope","$timeout","api","Auth","socket","voiceQueues","rpcVoiceQueues","rpcVoiceQueuesChannels"],angular.module("app.dashboards").controller("AgentDashboardDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(n,l,d){function c(){C.errors=[],i.cmContact.save(C.contact).$promise.then(function(e){return C.contact.id=e.id,C.newContact=!1,C.tab.title=e.firstName||e.phone,C.tab.contact=C.contact,i.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){C.tab.saved=!0,o.success({title:"Contact properly created",msg:C.contact.firstName?C.contact.firstName+" has been created!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){C.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)o.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function m(){C.errors=[],i.cmContact.update({id:C.contact.id},C.contact).$promise.then(function(e){return C.tab.title=e.firstName||e.phone,C.tab.contact=C.contact,i.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){C.tab.saved=!0,o.success({title:"Contact properly updated!",msg:C.contact.name?C.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){C.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)o.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function u(e){return function(t){n[e]=t||{count:0,rows:[]}}}function p(){C.queryHopper.offset=(C.queryHopper.page-1)*C.queryHopper.limit,C.promise=i.cmHopper.get(C.queryHopper,u("hoppers")).$promise}function g(){C.queryFinal.offset=(C.queryFinal.page-1)*C.queryFinal.limit,C.promise=i.cmHopperFinal.get(C.queryFinal,u("finals")).$promise}function h(){C.queryHistory.offset=(C.queryHistory.page-1)*C.queryHistory.limit,C.promise=i.cmHopperHistory.get(C.queryHistory,u("histories")).$promise}function v(n){e.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:C.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})}function b(n){e.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:C.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})}function f(e){var t=_.findLastIndex(C.tab.calls,function(t){return t.uniqueid===e.uniqueid});t>=0&&(C.tab.calls[t].disposedAt=new Date)}function E(n,a){C.newContact?o.error({title:"ATTENTION",msg:"Before to dispose, please save the contact!"}):e.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/dispose/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!1,locals:{dispositions:C.tab.dispositions,contact:C.contact,call:a}}).then(function(e){o.success({title:"Call properly disposed",msg:"Call has been disposed "+e})}).finally(function(){_.remove(C.tab.calls,function(e){return e.uniqueid==a.uniqueid})})}function y(e){return i.cmList.getCustomFields({id:e}).$promise.then(function(e){C.tab.customFields=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(e){return new Date(e)}var C=n;C.contact=C.tab.contact,C.newContact=!1,C.currentTab=0,C.contact&&C.contact.id||(C.newContact=!0,C.contact.ListId&&(C.tab.userLists.rows=_.unionBy(C.tab.userLists.rows,_.filter(C.tab.lists.rows,{id:C.contact.ListId}),"id"))),C.contact&&C.contact.id&&i.user.addContacts({id:s.getCurrentUser().id,ids:[C.contact.id]}),C.queryHopper={ContactId:C.contact.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},C.queryFinal={ContactId:C.contact.id,fields:"uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},C.queryHistory={ContactId:C.contact.id,fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},C.hoppers={rows:[],count:0},C.finals={rows:[],count:0},C.histories={rows:[],count:0},C.addNewContact=c,C.saveContact=m,C.getCustomFields=y,C.disposeCall=E,C.duplicateContact=v,C.mergeContact=b,C.getDateFromString=A,C.getHoppers=p,C.getFinals=g,C.getHistories=h,r.on("voice_queue_channel:remove",f),function(){C.getHoppers(),C.getFinals(),C.getHistories()}(),C.$watch("currentTab",function(e,t){1===C.currentTab&&(C.getHoppers(),C.getFinals(),C.getHistories())});var x=!0,T=1;C.$watch("queryHopper.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryHopper.page),e!==t&&(C.queryHopper.page=1),e||(C.queryHopper.page=T),C.getHoppers())}),C.$watch("queryFinal.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryFinal.page),e!==t&&(C.queryFinal.page=1),e||(C.queryFinal.page=T),C.getFinals())}),C.$watch("queryHistory.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryHistory.page),e!==t&&(C.queryHistory.page=1),e||(C.queryHistory.page=T),C.getHistories())})}return{restrict:"E",transclude:!0,scope:{tab:"="},link:l,templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/contact.html"}}e.$inject=["$mdDialog","$document","$window","$timeout","api","toasty","Auth","socket"],angular.module("app.dashboards").directive("contact",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(){var e=y.choice.toLowerCase();return{id:y.call.uniqueid,disposition:y.choice,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e}}function g(){return l.voiceCallReport.update({id:y.call.uniqueid,userDisposition:y.choice,UserId:u.getCurrentUser().id,ContactId:y.contact.id}).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){return l.cmHopperFinal.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){return l.cmHopperHistory.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(e){if(e)return l.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){for(var t=[],n=0;n<e.rows.length;n+=1){var a=angular.copy(y.contact);delete a.id,a.ListId=e.rows[n].id,t.push(l.cmContact.save(a).$promise)}return o.all(t)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){return a.show({controller:"RescheduleCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/reschedule/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{contact:y.contact,call:y.call}})}function E(){if(console.log(y.call),g(),y.dialerCall)switch(h(),v(),y.choice.toLowerCase()){case"blacklist":y.call&&y.call.variables&&y.call.variables["xmd-voicequeueid"]&&b(y.call.variables["xmd-voicequeueid"]);break;case"reschedule":f()}a.hide(y.choice.toUpperCase())}var y=this;y.choice=void 0,y.dispositions=d,y.contact=m,y.call=c,y.dialerCall=!1,y.call&&y.call.variables&&y.call.variables["xmd-queue"]&&(y.dialerCall=!0),y.saveDisposition=E}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","$q","$document","toasty","api","dispositions","call","contact","Auth"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return s.cmHopper.save({phone:u.contact.phone,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss")}).$promise.then(function(){return s.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss")}).$promise}).then(function(){a.hide()}).catch(function(e){a.cancel(e)})}function m(){a.cancel()}var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=m,u.saveDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(){function e(e,t,n){var a=e;a.tab.saved=!0,a.html=a.tab.html}return{restrict:"E",transclude:!0,scope:{tab:"="},link:e,templateUrl:"app/main/apps/dashboards/views/general/agent/directives/popup/popup.html"}}angular.module("app.dashboards").directive("popup",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e){p.contacts=e||{count:0,rows:[]}}function l(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.getContacts(p.query,r).$promise}function d(e,n){t.$parent.vm.addContactTab(n)}function c(){p.query.ListId=p.defaultLists,p.getContacts()}function m(t,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:i.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:p.contacts.rows}})}function u(t,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:i.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:p.contacts.rows}})}var p=this;p.contacts={count:0,rows:[]},p.lists=s||{count:0,rows:[]},p.listsMap=_.mapValues(_.keyBy(s.rows,"id"),"name"),p.defaultLists=p.lists.rows?_.map(p.lists.rows,"id").join(","):void 0,p.query={id:i.getCurrentUser().id,sort:"-updatedAt",limit:10,page:1,ListId:p.defaultLists},p.getContacts=l,p.refreshContacts=c,p.mergeContact=u,p.duplicateContact=m,p.openContact=d,p.getContacts()}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","lists"],angular.module("app.dashboards").controller("AgentMyContactsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){function u(e,n){return l.voiceRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/voice/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){h.voiceRecordings=e||{count:0,rows:[]}}function g(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=l.user.getRecordings(h.query,p).$promise}var h=this;h.voiceRecordings=r||{count:0,rows:[]},h.table="voiceRecordings",h.query={id:m.getCurrentUser().id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},h.downloadfile=u,h.success=p,h.getVoiceRecordings=g}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty","Auth"],angular.module("app.dashboards").controller("AgentRecordigsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){l({queues:h.outboundQueues,rpcQueues:h.rpcQueues}).then(function(e){h.inbound=e})}function u(){d({rpcCampaigns:h.rpcCampaigns}).then(function(e){h.ivr=e})}function p(e){h.outboundQueues[e.id]&&h.rpcQueues[e.id]&&(h.rpcQueues[e.id]=e,m())}function g(e){h.rpcCampaigns[e.id]&&(h.rpcCampaigns[e.id]=e,u())}var h=this;h.outboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},h.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcCampaigns=c?_.keyBy(c.rows?c.rows:[],"id"):{},h.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},h.ivr={originated:0,limitCalls:0},h.onSaveQueue=p,h.onSaveCampaign=g,i.on("voice_queue:save",h.onSaveQueue),i.on("campaign:save",h.onSaveCampaign),m(),u(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("campaign:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e){var t=[],n=function(){var e=t[0],a={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0};_.forIn(e.queues,function(t,n){if(e.rpcQueues[n]){a.waiting+=e.rpcQueues[n].waiting||0,a.talking+=e.rpcQueues[n].talking||0,a.answered+=e.rpcQueues[n].answered||0,a.unmanaged+=e.rpcQueues[n].unmanaged||0,a.sumHoldTime+=e.rpcQueues[n].sumHoldTime||0,a.sumBillable+=e.rpcQueues[n].sumBillable||0,a.total+=e.rpcQueues[n].total||0,a.originated+=e.rpcQueues[n].originated||0;var i=e.rpcQueues[n].total-e.rpcQueues[n].answered;a.abandoned+=i>0?i:0}}),a.avgHoldTime=Math.round(a.total>0?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(a.answered>0?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((a.total>0?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((a.total>0?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({queues:a.queues,rpcQueues:a.rpcQueues,defer:i}),1===t.length&&n(),i.promise}}function t(e){var t=[],n=function(){var e=t[0],a={originated:0,limitCalls:0};_.forIn(e.rpcCampaigns,function(t,n){e.rpcCampaigns[n]&&(a.originated+=e.rpcCampaigns[n].originated||0,a.limitCalls+=e.rpcCampaigns[n].limitCalls||0)}),t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({rpcCampaigns:a.rpcCampaigns,defer:i}),1===t.length&&n(),i.promise}}function n(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}function a(e,t,n){function a(){return n.hasPermission(101)||n.hasRole("admin")}var i=this;i.hasPermission=a,e.$on("$stateChangeSuccess",function(e,n,a,o,s){if(n.data)switch(i.currentTab=n.data.selectedTab,i.currentTab){case 1:t.go("app.dashboards.general.dialer");break;default:t.go("app.dashboards.general.voice")}})}e.$inject=["$q"],t.$inject=["$q"],a.$inject=["$scope","$state","Auth"],angular.module("app.dashboards").filter("secToTime",n).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",t).controller("UserDashboardGeneralController",a)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){d({queues:p.inboundQueues,rpcQueues:p.rpcQueues}).then(function(e){p.inbound=e})}function m(e){p.inboundQueues[e.id]&&p.rpcQueues[e.id]&&(p.rpcQueues[e.id]=e,c())}function u(e){p.outbound=e}var p=this;p.inboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},p.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},p.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},p.outbound=l||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},p.onSaveQueue=m,p.onSaveOutbound=u,i.on("voice_queue:save",p.onSaveQueue),i.on("voice_outbound:save",p.onSaveOutbound),c(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxAccount.save(p.faxAccount).$promise.then(function(e){p.faxAccounts.unshift(e),i.success({title:"FaxAccount properly created",msg:p.faxAccount.name?p.faxAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxAccount.update({id:p.faxAccount.id},p.faxAccount).$promise.then(function(e){var t=_.find(p.faxAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxAccount properly saved!",msg:p.faxAccount.name?p.faxAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxAccount.delete({id:p.faxAccount.id}).$promise.then(function(){_.remove(p.faxAccounts,{id:p.faxAccount.id}),i.success({title:"FaxAccount properly deleted!",msg:(p.faxAccount.name||"faxAccount")+" has been deleted!"}),u(p.faxAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXACCOUNT",p.faxAccount=angular.copy(s),p.faxAccounts=o,p.newFaxAccount=!1,p.faxAccount||(p.faxAccount={},p.title="FAX.NEW_FAXACCOUNT",p.newFaxAccount=!0),p.addNewFaxAccount=l,p.saveFaxAccount=d,p.deleteFaxAccount=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxAccounts","faxAccount","api"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.faxAccount=e,h.query.id=h.faxAccount.id,h.query.FaxAccountId=h.faxAccount.id,h.getFaxAccountFaxDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the faxDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete faxDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.faxAccountFaxDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.faxAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditFaxDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxDisposition:t,faxDispositions:h.faxAccountFaxDispositions.rows}})}function p(e){r.faxDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.faxAccountFaxDispositions.rows,{id:e.id}),h.faxAccountFaxDispositions.count-=1,h.faxAccountFaxDispositions.rows.length||h.getFaxAccountFaxDispositions(),s.success({title:"FaxDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected faxDispositions?").htmlContent("<b>"+h.selectedFaxAccountFaxDispositions.length+" selected</b> will be deleted.").ariaLabel("delete faxDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedFaxAccountFaxDispositions.forEach(function(e){p(e)}),h.selectedFaxAccountFaxDispositions=[]})}var h=this;h.faxAccount={},h.faxAccountFaxDispositions={count:0,rows:[]},h.selectedFaxAccountFaxDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getFaxAccountFaxDispositions=m,h.createOrEditFaxAccountFaxDisposition=u,h.deleteFaxAccountFaxDisposition=p,h.deleteSelectedFaxAccountFaxDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getFaxAccountFaxDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.fax").controller("FaxAccountFaxDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxDisposition.save(p.faxDisposition).$promise.then(function(e){p.faxDispositions.unshift(e),i.success({title:"FaxDisposition properly created",msg:p.faxDisposition.name?p.faxDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxDisposition.update({id:p.faxDisposition.id},p.faxDisposition).$promise.then(function(e){var t=_.find(p.faxDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxDisposition properly saved!",msg:p.faxDisposition.name?p.faxDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxDisposition will be deleted.").ariaLabel("Delete FaxDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxDisposition.delete({id:p.faxDisposition.id}).$promise.then(function(){_.remove(p.faxDispositions,{id:p.faxDisposition.id}),i.success({title:"FaxDisposition properly deleted!",msg:(p.faxDisposition.name||"faxDisposition")+" has been deleted!"}),u(p.faxDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXDISPOSITION",p.faxDisposition=angular.copy(s),p.faxDispositions=o,p.newFaxDisposition=!1,p.faxDisposition||(p.faxDisposition={},p.title="FAX.NEW_FAXDISPOSITION",p.newFaxDisposition=!0),t.params.id&&(p.faxDisposition.FaxAccountId=t.params.id),p.addNewFaxDisposition=l,p.saveFaxDisposition=d,p.deleteFaxDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxDispositions","faxDisposition","api"],angular.module("app.fax").controller("CreateOrEditFaxDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.fax.faxAccounts")}function r(){i.faxAccount.update({id:l.faxAccount.id},l.faxAccount).$promise.then(function(){a.success({title:"FaxAccount updated!",msg:l.faxAccount.name?l.faxAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.faxAccount=e.params.faxAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoFaxAccounts=s,l.saveFaxAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","faxAccount"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the faxAccount?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:t,faxAccounts:A.faxAccounts.rows}})}function v(e){l.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.faxAccounts.rows,{id:e.id}),A.faxAccounts.count-=1,A.faxAccounts.rows.length||A.getFaxAccounts(),c.success({title:"FaxAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFaxAccounts);return A.selectedFaxAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+A.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxAccounts.forEach(function(e){v(e)}),A.selectedFaxAccounts=[]})}function E(){A.selectedFaxAccounts=[]}function y(){A.selectedFaxAccounts=A.faxAccounts.rows}var A=this;A.faxAccounts=r||{count:0,rows:[]},A.table="faxAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedFaxAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxAccounts=g,A.createOrEditFaxAccount=h,A.deleteFaxAccount=v,A.exportSelectedFaxAccounts=b,A.deleteSelectedFaxAccounts=f,A.deselectFaxAccounts=E,A.selectAllFaxAccounts=y,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxAccounts","api","msUtils","toasty"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxQueue.save(p.faxQueue).$promise.then(function(e){p.faxQueues.unshift(e),i.success({title:"FaxQueue properly created",msg:p.faxQueue.name?p.faxQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxQueue.update({id:p.faxQueue.id},p.faxQueue).$promise.then(function(e){var t=_.find(p.faxQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxQueue properly saved!",msg:p.faxQueue.name?p.faxQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxQueue.delete({id:p.faxQueue.id}).$promise.then(function(){_.remove(p.faxQueues,{id:p.faxQueue.id}),i.success({title:"FaxQueue properly deleted!",msg:(p.faxQueue.name||"faxQueue")+" has been deleted!"}),u(p.faxQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXQUEUE",p.faxQueue=angular.copy(s),p.faxQueues=o,p.newFaxQueue=!1,p.faxQueue||(p.faxQueue={strategy:"beepall"},p.title="FAX.NEW_FAXQUEUE",p.newFaxQueue=!0),p.addNewFaxQueue=l,p.saveFaxQueue=d,p.deleteFaxQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxQueues","faxQueue","api"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.faxQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("FAX.ALL_TEAMS"),labelSelected:i.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,a){n.faxQueue[a?"removeTeams":"addTeams"]({id:s.faxQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.faxQueue.getTeams({id:s.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","faxQueue","$translate"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:d.faxQueues?d.faxQueues.rows:[]}})}function r(){e.go("app.fax.faxQueues")}function l(){i.faxQueue.update({id:d.faxQueue.id},d.faxQueue).$promise.then(function(){a.success({title:"FaxQueue updated!",msg:d.faxQueue.name?d.faxQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.faxQueue=e.params.faxQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoFaxQueues=r,d.saveFaxQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","faxQueue"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the faxQueue?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:A.faxQueues.rows}})}function v(e){l.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.faxQueues.rows,{id:e.id}),A.faxQueues.count-=1,A.faxQueues.rows.length||A.getFaxQueues(),c.success({title:"FaxQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFaxQueues);return A.selectedFaxQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+A.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxQueues.forEach(function(e){v(e)}),A.selectedFaxQueues=[]})}function E(){A.selectedFaxQueues=[]}function y(){A.selectedFaxQueues=A.faxQueues.rows}var A=this;A.faxQueues=r||{count:0,rows:[]},A.table="faxQueues",A.listOrder="",A.listOrderAsc=null,A.selectedFaxQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxQueues=g,A.createOrEditFaxQueue=h,A.deleteFaxQueue=v,A.exportSelectedFaxQueues=b,A.deleteSelectedFaxQueues=f,A.deselectFaxQueues=E,A.selectAllFaxQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxQueues","api","msUtils","toasty"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e){this.info=e}e.$inject=["info"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.save(p.freshdeskAccount).$promise.then(function(e){p.freshdeskAccounts.unshift(e),i.success({title:"FreshdeskAccount properly created",msg:p.freshdeskAccount.name?p.freshdeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intFreshdeskAccount.update({id:p.freshdeskAccount.id},p.freshdeskAccount).$promise.then(function(e){var t=_.find(p.freshdeskAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"FreshdeskAccount properly saved!",msg:p.freshdeskAccount.name?p.freshdeskAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intFreshdeskAccount.delete({id:p.freshdeskAccount.id}).$promise.then(function(){_.remove(p.freshdeskAccounts,{id:p.freshdeskAccount.id}),i.success({title:"FreshdeskAccount properly deleted!",msg:(p.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),u(p.freshdeskAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",p.freshdeskAccount=angular.copy(s),p.freshdeskAccounts=o,p.newFreshdeskAccount=!1,p.freshdeskAccount||(p.freshdeskAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",p.newFreshdeskAccount=!0),p.addNewFreshdeskAccount=l,p.saveFreshdeskAccount=d,p.deleteFreshdeskAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","freshdeskAccounts","freshdeskAccount","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intFreshdeskConfiguration.setTags({id:A.freshdeskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.freshdeskAccount=e,n.intFreshdeskAccount.getConfigurations({id:A.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.configurations=e.rows?e.rows:[],A.configurations.length&&A.getFreshdeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.freshdeskConfiguration=A.configurations[e],A.selectedFreshdeskConfiguration=e,n.intFreshdeskConfiguration.getSubjects({id:A.freshdeskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intFreshdeskConfiguration.getDescriptions({id:A.freshdeskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intFreshdeskConfiguration.getFields({id:A.freshdeskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intFreshdeskConfiguration.getTags({id:A.freshdeskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{freshdeskConfiguration:a,configurations:A.configurations}}).finally(function(){A.getFreshdeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(i.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intFreshdeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.configurations,{id:i.id}),a.success({title:"FreshdeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function c(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+A.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function g(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+A.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function f(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+A.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.freshdeskAccount={},A.freshdeskConfiguration={},A.configurations=[],A.selectedFreshdeskConfiguration=-1,A.init=o,A.getFreshdeskConfiguration=s,A.createOrEditFreshdeskConfiguration=r,A.deleteFreshdeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.addConfiguration({id:t.params.id},p.freshdeskConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"FreshdeskConfiguration properly created",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intFreshdeskConfiguration.update({id:p.freshdeskConfiguration.id},p.freshdeskConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"FreshdeskConfiguration properly saved!",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intFreshdeskConfiguration.delete({id:p.freshdeskConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.freshdeskConfiguration.id}),i.success({title:"FreshdeskConfiguration properly deleted!",msg:(p.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),u(p.freshdeskConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",p.freshdeskConfiguration=angular.copy(s),p.configurations=o,p.newFreshdeskConfiguration=!1,p.freshdeskConfiguration||(p.freshdeskConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",p.newFreshdeskConfiguration=!0),p.addNewFreshdeskConfiguration=l,p.saveFreshdeskConfiguration=d,p.deleteFreshdeskConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","freshdeskConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intFreshdeskField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intFreshdeskField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intFreshdeskField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.freshdeskAccounts")}function r(){i.intFreshdeskAccount.update({id:l.freshdeskAccount.id},l.freshdeskAccount).$promise.then(function(){a.success({title:"FreshdeskAccount updated!",msg:l.freshdeskAccount.name?l.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.freshdeskAccount=e.params.freshdeskAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoFreshdeskAccounts=s,l.saveFreshdeskAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","freshdeskAccount"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e})}function u(e,t){return l.intFreshdeskAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"FreshdeskAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the freshdeskAccount?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.freshdeskAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intFreshdeskAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:t,freshdeskAccounts:C.freshdeskAccounts.rows}})}function b(e){l.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.freshdeskAccounts.rows,{id:e.id}),C.freshdeskAccounts.count-=1,C.freshdeskAccounts.rows.length||C.getFreshdeskAccounts(),c.success({title:"FreshdeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedFreshdeskAccounts);return C.selectedFreshdeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+C.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedFreshdeskAccounts.forEach(function(e){b(e)}),C.selectedFreshdeskAccounts=[]})}function y(){C.selectedFreshdeskAccounts=[]}function A(){C.selectedFreshdeskAccounts=C.freshdeskAccounts.rows}var C=this;C.freshdeskAccounts=r||{count:0,rows:[]},C.table="freshdeskAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedFreshdeskAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,page:1},C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getFreshdeskAccounts=h,C.createOrEditFreshdeskAccount=v,C.deleteFreshdeskAccount=b,C.exportSelectedFreshdeskAccounts=f,C.deleteSelectedFreshdeskAccounts=E,C.deselectFreshdeskAccounts=y,C.selectAllFreshdeskAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","freshdeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.save(p.salesforceAccount).$promise.then(function(e){p.salesforceAccounts.unshift(e),i.success({title:"SalesforceAccount properly created",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSalesforceAccount.update({id:p.salesforceAccount.id},p.salesforceAccount).$promise.then(function(e){var t=_.find(p.salesforceAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SalesforceAccount properly saved!",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSalesforceAccount.delete({id:p.salesforceAccount.id}).$promise.then(function(){_.remove(p.salesforceAccounts,{id:p.salesforceAccount.id}),i.success({title:"SalesforceAccount properly deleted!",msg:(p.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),u(p.salesforceAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",p.salesforceAccount=angular.copy(s),p.salesforceAccounts=o,p.newSalesforceAccount=!1,p.salesforceAccount||(p.salesforceAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",p.newSalesforceAccount=!0),p.addNewSalesforceAccount=l,p.saveSalesforceAccount=d,p.deleteSalesforceAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","salesforceAccounts","salesforceAccount","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){y.salesforceAccount=e,n.intSalesforceAccount.getConfigurations({id:y.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return y.configurations=e.rows?e.rows:[],y.configurations.length&&y.getSalesforceConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){y.variables=e.rows?e.rows:[],y.variablesById=_.keyBy(y.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){y.salesforceConfiguration=y.configurations[e],y.selectedSalesforceConfiguration=e,n.intSalesforceConfiguration.getSubjects({id:y.salesforceConfiguration.id}).$promise.then(function(e){return y.subjects=e.rows?e.rows:[],n.intSalesforceConfiguration.getDescriptions({id:y.salesforceConfiguration.id}).$promise}).then(function(e){return y.descriptions=e.rows?e.rows:[],n.intSalesforceConfiguration.getFields({id:y.salesforceConfiguration.id}).$promise}).then(function(e){y.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(n,a){e.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{salesforceConfiguration:a,configurations:y.configurations}}).finally(function(){y.getSalesforceConfiguration(0)})}function r(t,i){var o=e.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(i.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSalesforceConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SalesforceConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function d(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+y.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function p(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+y.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function b(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+y.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.salesforceAccount={},y.salesforceConfiguration={},y.configurations=[],y.selectedSalesforceConfiguration=-1,y.init=i,y.getSalesforceConfiguration=o,y.createOrEditSalesforceConfiguration=s,y.deleteSalesforceConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.addConfiguration({id:t.params.id},p.salesforceConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"SalesforceConfiguration properly created",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSalesforceConfiguration.update({id:p.salesforceConfiguration.id},p.salesforceConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"SalesforceConfiguration properly saved!",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSalesforceConfiguration.delete({id:p.salesforceConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.salesforceConfiguration.id}),i.success({title:"SalesforceConfiguration properly deleted!",msg:(p.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),u(p.salesforceConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",p.salesforceConfiguration=angular.copy(s),p.configurations=o,p.newSalesforceConfiguration=!1,p.salesforceConfiguration||(p.salesforceConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",p.newSalesforceConfiguration=!0),p.addNewSalesforceConfiguration=l,p.saveSalesforceConfiguration=d,p.deleteSalesforceConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","salesforceConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSalesforceField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSalesforceField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intSalesforceField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.salesforceAccounts")}function r(){i.intSalesforceAccount.update({id:l.salesforceAccount.id},l.salesforceAccount).$promise.then(function(){a.success({title:"SalesforceAccount updated!",msg:l.salesforceAccount.name?l.salesforceAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.salesforceAccount=e.params.salesforceAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSalesforceAccounts=s,l.saveSalesforceAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","salesforceAccount"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e})}function u(e,t){return l.intSalesforceAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SalesforceAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the salesforceAccount?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.salesforceAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intSalesforceAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:t,salesforceAccounts:C.salesforceAccounts.rows}})}function b(e){l.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.salesforceAccounts.rows,{id:e.id}),C.salesforceAccounts.count-=1,C.salesforceAccounts.rows.length||C.getSalesforceAccounts(),c.success({title:"SalesforceAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedSalesforceAccounts);return C.selectedSalesforceAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+C.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedSalesforceAccounts.forEach(function(e){b(e)}),C.selectedSalesforceAccounts=[]})}function y(){C.selectedSalesforceAccounts=[]}function A(){C.selectedSalesforceAccounts=C.salesforceAccounts.rows}var C=this;C.salesforceAccounts=r||{count:0,rows:[]},C.table="salesforceAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedSalesforceAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,page:1},C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getSalesforceAccounts=h,C.createOrEditSalesforceAccount=v,C.deleteSalesforceAccount=b,C.exportSelectedSalesforceAccounts=f,C.deleteSelectedSalesforceAccounts=E,C.deselectSalesforceAccounts=y,C.selectAllSalesforceAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","salesforceAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.save(p.sugarcrmAccount).$promise.then(function(e){p.sugarcrmAccounts.unshift(e),i.success({title:"SugarcrmAccount properly created",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSugarcrmAccount.update({id:p.sugarcrmAccount.id},p.sugarcrmAccount).$promise.then(function(e){var t=_.find(p.sugarcrmAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SugarcrmAccount properly saved!",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSugarcrmAccount.delete({id:p.sugarcrmAccount.id}).$promise.then(function(){_.remove(p.sugarcrmAccounts,{id:p.sugarcrmAccount.id}),i.success({title:"SugarcrmAccount properly deleted!",msg:(p.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),u(p.sugarcrmAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",p.sugarcrmAccount=angular.copy(s),p.sugarcrmAccounts=o,p.newSugarcrmAccount=!1,p.sugarcrmAccount||(p.sugarcrmAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",p.newSugarcrmAccount=!0),p.addNewSugarcrmAccount=l,p.saveSugarcrmAccount=d,p.deleteSugarcrmAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","sugarcrmAccounts","sugarcrmAccount","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){y.sugarcrmAccount=e,n.intSugarcrmAccount.getConfigurations({id:y.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return y.configurations=e.rows?e.rows:[],y.configurations.length&&y.getSugarcrmConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){y.variables=e.rows?e.rows:[],y.variablesById=_.keyBy(y.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){y.sugarcrmConfiguration=y.configurations[e],y.selectedSugarcrmConfiguration=e,n.intSugarcrmConfiguration.getSubjects({id:y.sugarcrmConfiguration.id}).$promise.then(function(e){return y.subjects=e.rows?e.rows:[],n.intSugarcrmConfiguration.getDescriptions({id:y.sugarcrmConfiguration.id}).$promise}).then(function(e){return y.descriptions=e.rows?e.rows:[],n.intSugarcrmConfiguration.getFields({id:y.sugarcrmConfiguration.id}).$promise}).then(function(e){y.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(n,a){e.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:a,configurations:y.configurations}}).finally(function(){y.getSugarcrmConfiguration(0)})}function r(t,i){var o=e.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(i.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSugarcrmConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SugarcrmConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function d(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+y.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function p(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+y.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function b(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+y.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.sugarcrmAccount={},y.sugarcrmConfiguration={},y.configurations=[],y.selectedSugarcrmConfiguration=-1,y.init=i,y.getSugarcrmConfiguration=o,y.createOrEditSugarcrmConfiguration=s,y.deleteSugarcrmConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.addConfiguration({id:t.params.id},p.sugarcrmConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"SugarcrmConfiguration properly created",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSugarcrmConfiguration.update({id:p.sugarcrmConfiguration.id},p.sugarcrmConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"SugarcrmConfiguration properly saved!",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSugarcrmConfiguration.delete({id:p.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.sugarcrmConfiguration.id}),i.success({title:"SugarcrmConfiguration properly deleted!",msg:(p.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),u(p.sugarcrmConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",p.sugarcrmConfiguration=angular.copy(s),p.configurations=o,p.newSugarcrmConfiguration=!1,p.sugarcrmConfiguration||(p.sugarcrmConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",p.newSugarcrmConfiguration=!0),p.addNewSugarcrmConfiguration=l,p.saveSugarcrmConfiguration=d,p.deleteSugarcrmConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","sugarcrmConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSugarcrmField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSugarcrmField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intSugarcrmField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.sugarcrmAccounts")}function r(){i.intSugarcrmAccount.update({id:l.sugarcrmAccount.id},l.sugarcrmAccount).$promise.then(function(){a.success({title:"SugarcrmAccount updated!",msg:l.sugarcrmAccount.name?l.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.sugarcrmAccount=e.params.sugarcrmAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSugarcrmAccounts=s,l.saveSugarcrmAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","sugarcrmAccount"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e})}function u(e,t){return l.intSugarcrmAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SugarcrmAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the sugarcrmAccount?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.sugarcrmAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intSugarcrmAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:t,sugarcrmAccounts:C.sugarcrmAccounts.rows}})}function b(e){l.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.sugarcrmAccounts.rows,{id:e.id}),C.sugarcrmAccounts.count-=1,C.sugarcrmAccounts.rows.length||C.getSugarcrmAccounts(),c.success({title:"SugarcrmAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedSugarcrmAccounts);return C.selectedSugarcrmAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+C.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedSugarcrmAccounts.forEach(function(e){b(e)}),C.selectedSugarcrmAccounts=[]})}function y(){C.selectedSugarcrmAccounts=[]}function A(){C.selectedSugarcrmAccounts=C.sugarcrmAccounts.rows}var C=this;C.sugarcrmAccounts=r||{count:0,rows:[]},C.table="sugarcrmAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedSugarcrmAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,page:1},C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getSugarcrmAccounts=h,C.createOrEditSugarcrmAccount=v,C.deleteSugarcrmAccount=b,C.exportSelectedSugarcrmAccounts=f,C.deleteSelectedSugarcrmAccounts=E,C.deselectSugarcrmAccounts=y,C.selectAllSugarcrmAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sugarcrmAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.save(p.zendeskAccount).$promise.then(function(e){p.zendeskAccounts.unshift(e),i.success({title:"ZendeskAccount properly created",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intZendeskAccount.update({id:p.zendeskAccount.id},p.zendeskAccount).$promise.then(function(e){var t=_.find(p.zendeskAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"ZendeskAccount properly saved!",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intZendeskAccount.delete({id:p.zendeskAccount.id}).$promise.then(function(){_.remove(p.zendeskAccounts,{id:p.zendeskAccount.id}),i.success({title:"ZendeskAccount properly deleted!",msg:(p.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),u(p.zendeskAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",p.zendeskAccount=angular.copy(s),p.zendeskAccounts=o,p.newZendeskAccount=!1,p.zendeskAccount||(p.zendeskAccount={authType:"password",serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",p.newZendeskAccount=!0),p.addNewZendeskAccount=l,p.saveZendeskAccount=d,p.deleteZendeskAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","zendeskAccounts","zendeskAccount","api"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intZendeskField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intZendeskField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intZendeskField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.zendeskAccounts")}function r(){i.intZendeskAccount.update({id:l.zendeskAccount.id},l.zendeskAccount).$promise.then(function(){a.success({title:"ZendeskAccount updated!",msg:l.zendeskAccount.name?l.zendeskAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.zendeskAccount=e.params.zendeskAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoZendeskAccounts=s,l.saveZendeskAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","zendeskAccount"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intZendeskConfiguration.setTags({id:A.zendeskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.zendeskAccount=e,n.intZendeskAccount.getConfigurations({id:A.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.zendeskConfigurations=e.rows?e.rows:[],A.zendeskConfigurations.length&&A.getZendeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.zendeskConfiguration=A.zendeskConfigurations[e],A.selectedZendeskConfiguration=e,n.intZendeskConfiguration.getSubjects({id:A.zendeskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intZendeskConfiguration.getDescriptions({id:A.zendeskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intZendeskConfiguration.getFields({id:A.zendeskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intZendeskConfiguration.getTags({id:A.zendeskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{zendeskConfiguration:a,zendeskConfigurations:A.zendeskConfigurations}}).finally(function(){A.getZendeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(i.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intZendeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.zendeskConfigurations,{id:i.id}),a.success({title:"ZendeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function c(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+A.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function g(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+A.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function f(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+A.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.zendeskAccount={},A.zendeskConfiguration={},A.zendeskConfigurations=[],A.selectedZendeskConfiguration=-1,A.init=o,A.getZendeskConfiguration=s,A.createOrEditZendeskConfiguration=r,A.deleteZendeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.addConfiguration({id:t.params.id},p.zendeskConfiguration).$promise.then(function(e){p.zendeskConfigurations.unshift(e),i.success({title:"ZendeskConfiguration properly created",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intZendeskConfiguration.update({id:p.zendeskConfiguration.id},p.zendeskConfiguration).$promise.then(function(e){var t=_.find(p.zendeskConfigurations,{id:e.id});t&&_.merge(t,e),i.success({title:"ZendeskConfiguration properly saved!",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intZendeskConfiguration.delete({id:p.zendeskConfiguration.id}).$promise.then(function(){_.remove(p.zendeskConfigurations,{id:p.zendeskConfiguration.id}),i.success({title:"ZendeskConfiguration properly deleted!",msg:(p.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),u(p.zendeskConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",p.zendeskConfiguration=angular.copy(s),p.zendeskConfigurations=o,p.newZendeskConfiguration=!1,p.zendeskConfiguration||(p.zendeskConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",p.newZendeskConfiguration=!0),p.addNewZendeskConfiguration=l,p.saveZendeskConfiguration=d,p.deleteZendeskConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","zendeskConfigurations","zendeskConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e})}function u(e,t){return l.intZendeskAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"ZendeskAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the zendeskAccount?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.zendeskAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intZendeskAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:t,zendeskAccounts:C.zendeskAccounts.rows}})}function b(e){l.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.zendeskAccounts.rows,{id:e.id}),C.zendeskAccounts.count-=1,C.zendeskAccounts.rows.length||C.getZendeskAccounts(),c.success({title:"ZendeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedZendeskAccounts);return C.selectedZendeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+C.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedZendeskAccounts.forEach(function(e){b(e)}),C.selectedZendeskAccounts=[]})}function y(){C.selectedZendeskAccounts=[]}function A(){C.selectedZendeskAccounts=C.zendeskAccounts.rows}var C=this;C.zendeskAccounts=r||{count:0,rows:[]},C.table="zendeskAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedZendeskAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",limit:10,page:1},C.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getZendeskAccounts=h,C.createOrEditZendeskAccount=v,C.deleteZendeskAccount=b,C.exportSelectedZendeskAccounts=f,C.deleteSelectedZendeskAccounts=E,C.deselectZendeskAccounts=y,C.selectAllZendeskAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zendeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.mailAccount).$promise.then(function(e){p.mailAccounts.unshift(e),i.success({title:"MailAccount properly created",msg:p.mailAccount.name?p.mailAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(e){var t=_.find(p.mailAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"MailAccount properly saved!",msg:p.mailAccount.name?p.mailAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailAccount.delete({id:p.mailAccount.id}).$promise.then(function(){_.remove(p.mailAccounts,{id:p.mailAccount.id}),i.success({title:"MailAccount properly deleted!",msg:(p.mailAccount.name||"mailAccount")+" has been deleted!"}),u(p.mailAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILACCOUNT",p.mailAccount=angular.copy(s),p.mailAccounts=o,p.newMailAccount=!1,p.mailAccount||(p.mailAccount={},p.title="MAIL.NEW_MAILACCOUNT",p.newMailAccount=!0),p.addNewMailAccount=l,p.saveMailAccount=d,p.deleteMailAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailAccounts","mailAccount","api"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.mailAccount=e,h.query.id=h.mailAccount.id,h.query.MailAccountId=h.mailAccount.id,h.getMailAccountMailDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the mailDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete mailDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.mailAccountMailDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.mailAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMailDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailDisposition:t,mailDispositions:h.mailAccountMailDispositions.rows}})}function p(e){r.mailDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.mailAccountMailDispositions.rows,{id:e.id}),h.mailAccountMailDispositions.count-=1,h.mailAccountMailDispositions.rows.length||h.getMailAccountMailDispositions(),s.success({title:"MailDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected mailDispositions?").htmlContent("<b>"+h.selectedMailAccountMailDispositions.length+" selected</b> will be deleted.").ariaLabel("delete mailDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedMailAccountMailDispositions.forEach(function(e){p(e)}),h.selectedMailAccountMailDispositions=[]})}var h=this;h.mailAccount={},h.mailAccountMailDispositions={count:0,rows:[]},h.selectedMailAccountMailDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getMailAccountMailDispositions=m,h.createOrEditMailAccountMailDisposition=u,h.deleteMailAccountMailDisposition=p,h.deleteSelectedMailAccountMailDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getMailAccountMailDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.mail").controller("MailAccountMailDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailDisposition.save(p.mailDisposition).$promise.then(function(e){p.mailDispositions.unshift(e),i.success({title:"MailDisposition properly created",msg:p.mailDisposition.name?p.mailDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailDisposition.update({id:p.mailDisposition.id},p.mailDisposition).$promise.then(function(e){var t=_.find(p.mailDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"MailDisposition properly saved!",msg:p.mailDisposition.name?p.mailDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailDisposition will be deleted.").ariaLabel("Delete MailDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailDisposition.delete({id:p.mailDisposition.id}).$promise.then(function(){_.remove(p.mailDispositions,{id:p.mailDisposition.id}),i.success({title:"MailDisposition properly deleted!",msg:(p.mailDisposition.name||"mailDisposition")+" has been deleted!"}),u(p.mailDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILDISPOSITION",p.mailDisposition=angular.copy(s),p.mailDispositions=o,p.newMailDisposition=!1,p.mailDisposition||(p.mailDisposition={},p.title="MAIL.NEW_MAILDISPOSITION",p.newMailDisposition=!0),t.params.id&&(p.mailDisposition.MailAccountId=t.params.id),p.addNewMailDisposition=l,p.saveMailDisposition=d,p.deleteMailDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailDispositions","mailDisposition","api"],angular.module("app.mail").controller("CreateOrEditMailDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.mail.mailAccounts")}function r(){i.mailAccount.update({id:l.mailAccount.id},l.mailAccount).$promise.then(function(){a.success({title:"MailAccount updated!",msg:l.mailAccount.name?l.mailAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.mailAccount=e.params.mailAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoMailAccounts=s,l.saveMailAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","mailAccount"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the mailAccount?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:t,mailAccounts:A.mailAccounts.rows}})}function v(e){l.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.mailAccounts.rows,{id:e.id}),A.mailAccounts.count-=1,A.mailAccounts.rows.length||A.getMailAccounts(),c.success({title:"MailAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMailAccounts);return A.selectedMailAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+A.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailAccounts.forEach(function(e){v(e)}),A.selectedMailAccounts=[]})}function E(){A.selectedMailAccounts=[]}function y(){A.selectedMailAccounts=A.mailAccounts.rows}var A=this;A.mailAccounts=r||{count:0,rows:[]},A.table="mailAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedMailAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailAccounts=g,A.createOrEditMailAccount=h,A.deleteMailAccount=v,A.exportSelectedMailAccounts=b,A.deleteSelectedMailAccounts=f,A.deselectMailAccounts=E,A.selectAllMailAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailAccounts","api","msUtils","toasty"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailQueue.save(p.mailQueue).$promise.then(function(e){p.mailQueues.unshift(e),i.success({title:"MailQueue properly created",msg:p.mailQueue.name?p.mailQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailQueue.update({id:p.mailQueue.id},p.mailQueue).$promise.then(function(e){var t=_.find(p.mailQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"MailQueue properly saved!",msg:p.mailQueue.name?p.mailQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailQueue.delete({id:p.mailQueue.id}).$promise.then(function(){_.remove(p.mailQueues,{id:p.mailQueue.id}),i.success({title:"MailQueue properly deleted!",msg:(p.mailQueue.name||"mailQueue")+" has been deleted!"}),u(p.mailQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILQUEUE",p.mailQueue=angular.copy(s),p.mailQueues=o,p.newMailQueue=!1,p.mailQueue||(p.mailQueue={strategy:"beepall"},p.title="MAIL.NEW_MAILQUEUE",p.newMailQueue=!0),p.addNewMailQueue=l,p.saveMailQueue=d,p.deleteMailQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailQueues","mailQueue","api"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.mailQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MAIL.ALL_TEAMS"),labelSelected:i.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,a){n.mailQueue[a?"removeTeams":"addTeams"]({id:s.mailQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.mailQueue.getTeams({id:s.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","mailQueue","$translate"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:d.mailQueues?d.mailQueues.rows:[]}})}function r(){e.go("app.mail.mailQueues")}function l(){i.mailQueue.update({id:d.mailQueue.id},d.mailQueue).$promise.then(function(){a.success({title:"MailQueue updated!",msg:d.mailQueue.name?d.mailQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.mailQueue=e.params.mailQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoMailQueues=r,d.saveMailQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","mailQueue"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the mailQueue?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:A.mailQueues.rows}})}function v(e){l.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.mailQueues.rows,{id:e.id}),A.mailQueues.count-=1,A.mailQueues.rows.length||A.getMailQueues(),c.success({title:"MailQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMailQueues);return A.selectedMailQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+A.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailQueues.forEach(function(e){v(e)}),A.selectedMailQueues=[]})}function E(){A.selectedMailQueues=[]}function y(){A.selectedMailQueues=A.mailQueues.rows}var A=this;A.mailQueues=r||{count:0,rows:[]},A.table="mailQueues",A.listOrder="",A.listOrderAsc=null,A.selectedMailQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailQueues=g,A.createOrEditMailQueue=h,A.deleteMailQueue=v,A.exportSelectedMailQueues=b,A.deleteSelectedMailQueues=f,A.deselectMailQueues=E,A.selectAllMailQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailQueues","api","msUtils","toasty"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.campaign.save(p.ivrCampaign).$promise.then(function(e){p.ivrCampaigns.unshift(e),i.success({title:"IvrCampaign properly created",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.campaign.update({id:p.ivrCampaign.id},p.ivrCampaign).$promise.then(function(e){var t=_.find(p.ivrCampaigns,{id:e.id});t&&_.merge(t,e),i.success({title:"IvrCampaign properly saved!",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.campaign.delete({id:p.ivrCampaign.id}).$promise.then(function(){_.remove(p.ivrCampaigns,{id:p.ivrCampaign.id}),i.success({title:"IvrCampaign properly deleted!",msg:(p.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),u(p.ivrCampaign)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",p.ivrCampaign=angular.copy(s),p.ivrCampaigns=o,p.newIvrCampaign=!1,p.ivrCampaign||(p.ivrCampaign={active:!0,type:"ivr",limitCalls:30,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialGlobalInterval:"07:00-22:00,*,*,*"},p.title="MOTIONDIALER.NEW_IVRCAMPAIGN",p.newIvrCampaign=!0),p.addNewIvrCampaign=l,p.saveIvrCampaign=d,p.deleteIvrCampaign=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","ivrCampaigns","ivrCampaign","api"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.ivrCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.campaign[a?"removeBlackLists":"addBlackLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.campaign.getBlackLists({id:s.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","ivrCampaign","$translate"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperBlacks(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:h.ivrCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperBlacks.rows,{id:e.id}),h.ivrCampaignHopperBlacks.count-=1,h.ivrCampaignHopperBlacks.rows.length||h.getIvrCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+h.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperBlacks.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperBlacks=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperBlacks={count:0,rows:[]},h.selectedIvrCampaignHopperBlacks=[],h.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperBlacks=m,h.createOrEditIvrCampaignHopperBlack=u,h.deleteIvrCampaignHopperBlack=p,h.deleteSelectedIvrCampaignHopperBlacks=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperFinals(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:h.ivrCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperFinals.rows,{id:e.id}),h.ivrCampaignHopperFinals.count-=1,h.ivrCampaignHopperFinals.rows.length||h.getIvrCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+h.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperFinals.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperFinals=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperFinals={count:0,rows:[]},h.selectedIvrCampaignHopperFinals=[],h.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperFinals=m,h.createOrEditIvrCampaignHopperFinal=u,h.deleteIvrCampaignHopperFinal=p,h.deleteSelectedIvrCampaignHopperFinals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperHistories(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:h.ivrCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperHistories.rows,{id:e.id}),h.ivrCampaignHopperHistories.count-=1,h.ivrCampaignHopperHistories.rows.length||h.getIvrCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+h.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperHistories.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperHistories=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperHistories={count:0,rows:[]},h.selectedIvrCampaignHopperHistories=[],h.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperHistories=m,h.createOrEditIvrCampaignHopperHistory=u,h.deleteIvrCampaignHopperHistory=p,h.deleteSelectedIvrCampaignHopperHistories=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHoppers=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHoppers(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:h.ivrCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHoppers.rows,{id:e.id}),h.ivrCampaignHoppers.count-=1,h.ivrCampaignHoppers.rows.length||h.getIvrCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+h.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHoppers.forEach(function(e){p(e)}),h.selectedIvrCampaignHoppers=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHoppers={count:0,rows:[]},h.selectedIvrCampaignHoppers=[],h.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHoppers=m,h.createOrEditIvrCampaignHopper=u,h.deleteIvrCampaignHopper=p,h.deleteSelectedIvrCampaignHoppers=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmHopper.update({id:p.hopper.id},p.hopper).$promise.then(function(e){var t=_.find(p.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:p.hopper.name?p.hopper.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmHopper.delete({id:p.hopper.id}).$promise.then(function(){_.remove(p.hoppers,{id:p.hopper.id}),i.success({title:"Hopper properly deleted!",msg:(p.hopper.name||"hopper")+" has been deleted!"}),u(p.hopper)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_HOPPER",p.hopper=angular.copy(s),p.hoppers=o,p.newHopper=!1,p.hopper||(p.hopper={},p.title="MOTIONDIALER.NEW_HOPPER",p.newHopper=!0),t.params.id&&(p.hopper.CampaignId=t.params.id),p.addNewHopper=l,p.saveHopper=d,p.deleteHopper=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.motiondialer").controller("CreateOrEditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.ivrCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.campaign[a?"removeLists":"addLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.campaign.getLists({id:s.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","ivrCampaign","$translate"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})}function r(e,a){t.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})}function l(){e.go("app.motiondialer.ivrCampaigns")}function d(){i.campaign.update({id:c.ivrCampaign.id},c.ivrCampaign).$promise.then(function(){a.success({title:"IvrCampaign updated!",msg:c.ivrCampaign.name?c.ivrCampaign.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.ivrCampaign=e.params.ivrCampaign||o||{},c.selectedTab=e.params.tab||0,c.listadddialog=s,c.blacklistadddialog=r,c.gotoIvrCampaigns=l,c.saveIvrCampaign=d,i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","ivrCampaign"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e})}function u(e,t){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:x.ivrCampaigns?x.ivrCampaigns.rows:[]}})}function p(e,t){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:x.ivrCampaigns?x.ivrCampaigns.rows:[]}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the ivrCampaign?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){x.ivrCampaigns=e||{count:0,rows:[]}}function v(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.campaign.get(x.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:x.ivrCampaigns.rows}})}function f(e){l.campaign.delete({id:e.id}).$promise.then(function(){_.remove(x.ivrCampaigns.rows,{id:e.id}),x.ivrCampaigns.count-=1,x.ivrCampaigns.rows.length||x.getIvrCampaigns(),c.success({title:"IvrCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=_.clone(x.selectedIvrCampaigns);return x.selectedIvrCampaigns=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+x.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedIvrCampaigns.forEach(function(e){f(e)}),x.selectedIvrCampaigns=[]})}function A(){x.selectedIvrCampaigns=[]}function C(){x.selectedIvrCampaigns=x.ivrCampaigns.rows}var x=this;x.ivrCampaigns=r||{count:0,rows:[]},x.table="ivrCampaigns",x.listOrder="",x.listOrderAsc=null,x.selectedIvrCampaigns=[],x.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",type:"ivr",sort:"-updatedAt",limit:10,page:1},x.editstate=m,x.listadddialog=u,x.blacklistadddialog=p,x.deleteconfirm=g,x.success=h,x.getIvrCampaigns=v,x.createOrEditIvrCampaign=b,x.deleteIvrCampaign=f,x.exportSelectedIvrCampaigns=E,x.deleteSelectedIvrCampaigns=y,x.deselectIvrCampaigns=A,x.selectAllIvrCampaigns=C,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){x.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){x.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){x.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","ivrCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.queueCampaign).$promise.then(function(e){p.queueCampaigns.unshift(e),i.success({title:"QueueCampaign properly created",msg:p.queueCampaign.name?p.queueCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceQueue.update({id:p.queueCampaign.id},p.queueCampaign).$promise.then(function(e){var t=_.find(p.queueCampaigns,{id:e.id});t&&_.merge(t,e),i.success({title:"QueueCampaign properly saved!",msg:p.queueCampaign.name?p.queueCampaign.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceQueue.delete({id:p.queueCampaign.id}).$promise.then(function(){_.remove(p.queueCampaigns,{id:p.queueCampaign.id}),i.success({title:"QueueCampaign properly deleted!",msg:(p.queueCampaign.name||"queueCampaign")+" has been deleted!"}),u(p.queueCampaign)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",p.queueCampaign=angular.copy(s),p.queueCampaigns=o,p.newQueueCampaign=!1,p.queueCampaign||(p.queueCampaign={dialActive:!0,type:"outbound",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialGlobalInterval:"07:00-22:00,*,*,*",dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150},p.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",p.newQueueCampaign=!0),p.addNewQueueCampaign=l,p.saveQueueCampaign=d,p.deleteQueueCampaign=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","queueCampaigns","queueCampaign","api"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.voiceQueue[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.queueCampaign=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:c.queueCampaign.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"QueueCampaign properly "+(a?"removed":"added"),msg:"QueueCampaign has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","queueCampaign","queueCampaigns","realtime","$translate"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeBlackLists":"addBlackLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getBlackLists({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperBlacks(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:h.queueCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperBlacks.rows,{id:e.id}),h.queueCampaignHopperBlacks.count-=1,h.queueCampaignHopperBlacks.rows.length||h.getQueueCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+h.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperBlacks.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperBlacks=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperBlacks={count:0,rows:[]},h.selectedQueueCampaignHopperBlacks=[],h.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperBlacks=m,h.createOrEditQueueCampaignHopperBlack=u,h.deleteQueueCampaignHopperBlack=p,h.deleteSelectedQueueCampaignHopperBlacks=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperFinals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperFinals(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:h.queueCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperFinals.rows,{id:e.id}),h.queueCampaignHopperFinals.count-=1,h.queueCampaignHopperFinals.rows.length||h.getQueueCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+h.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperFinals.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperFinals=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperFinals={count:0,rows:[]},h.selectedQueueCampaignHopperFinals=[],h.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperFinals=m,h.createOrEditQueueCampaignHopperFinal=u,h.deleteQueueCampaignHopperFinal=p,h.deleteSelectedQueueCampaignHopperFinals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperHistories=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperHistories(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:h.queueCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperHistories.rows,{id:e.id}),h.queueCampaignHopperHistories.count-=1,h.queueCampaignHopperHistories.rows.length||h.getQueueCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+h.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperHistories.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperHistories=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperHistories={count:0,rows:[]},h.selectedQueueCampaignHopperHistories=[],h.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperHistories=m,h.createOrEditQueueCampaignHopperHistory=u,h.deleteQueueCampaignHopperHistory=p,h.deleteSelectedQueueCampaignHopperHistories=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHoppers=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHoppers(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:h.queueCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHoppers.rows,{id:e.id}),h.queueCampaignHoppers.count-=1,h.queueCampaignHoppers.rows.length||h.getQueueCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+h.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHoppers.forEach(function(e){p(e)}),h.selectedQueueCampaignHoppers=[]})}var h=this;h.queueCampaign={},h.queueCampaignHoppers={count:0,rows:[]},h.selectedQueueCampaignHoppers=[],h.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHoppers=m,h.createOrEditQueueCampaignHopper=u,h.deleteQueueCampaignHopper=p,h.deleteSelectedQueueCampaignHoppers=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmHopper.update({id:p.hopper.id},p.hopper).$promise.then(function(e){var t=_.find(p.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:p.hopper.name?p.hopper.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmHopper.delete({id:p.hopper.id}).$promise.then(function(){_.remove(p.hoppers,{id:p.hopper.id}),i.success({title:"Hopper properly deleted!",msg:(p.hopper.name||"hopper")+" has been deleted!"}),u(p.hopper)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_HOPPER",p.hopper=angular.copy(s),p.hoppers=o,p.newHopper=!1,p.hopper||(p.hopper={},p.title="MOTIONDIALER.NEW_HOPPER",p.newHopper=!0),t.params.id&&(p.hopper.VoiceQueueId=t.params.id),p.addNewHopper=l,p.saveHopper=d,p.deleteHopper=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.motiondialer").controller("CreateOrEditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeLists":"addLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getLists({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.queueCampaign.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function r(e,a){t.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function l(e,a){t.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function d(e,a){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],realtime:!1}})}function c(){e.go("app.motiondialer.queueCampaigns")}function m(){i.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){a.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var u=this;u.queueCampaign=e.params.queueCampaign||o||{},u.selectedTab=e.params.tab||0,u.listadddialog=s,u.blacklistadddialog=r,u.teamadddialog=l,u.agentadddialog=d,u.gotoQueueCampaigns=c,u.saveQueueCampaign=m,i.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","queueCampaign"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e})}function u(e,t){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function p(e,t){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function g(e,t){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function h(e,t){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[],realtime:!1}})}function v(e,t){var n=i.confirm().title("Are you sure want to delete the queueCampaign?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function b(e){S.queueCampaigns=e||{count:0,rows:[]}}function f(){S.query.offset=(S.query.page-1)*S.query.limit,S.promise=l.voiceQueue.get(S.query,b).$promise}function E(e,t){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:S.queueCampaigns.rows}})}function y(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(S.queueCampaigns.rows,{id:e.id}),S.queueCampaigns.count-=1,S.queueCampaigns.rows.length||S.getQueueCampaigns(),c.success({title:"QueueCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=_.clone(S.selectedQueueCampaigns);return S.selectedQueueCampaigns=[],e}function C(e){var t=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+S.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){S.selectedQueueCampaigns.forEach(function(e){y(e)}),S.selectedQueueCampaigns=[]})}function x(){S.selectedQueueCampaigns=[]}function T(){S.selectedQueueCampaigns=S.queueCampaigns.rows}var S=this;S.queueCampaigns=r||{count:0,rows:[]},S.table="queueCampaigns",S.listOrder="",S.listOrderAsc=null,S.selectedQueueCampaigns=[],S.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",limit:10,page:1},S.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.editstate=m,S.listadddialog=u,S.blacklistadddialog=p,S.teamadddialog=g,S.agentadddialog=h,S.deleteconfirm=v,S.success=b,S.getQueueCampaigns=f,S.createOrEditQueueCampaign=E,S.deleteQueueCampaign=y,S.exportSelectedQueueCampaigns=A,S.deleteSelectedQueueCampaigns=C,S.deselectQueueCampaigns=x,S.selectAllQueueCampaigns=T,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){S.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){S.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var O=!0,w=1;e.$watch("vm.query.filter",function(e,t){O?s(function(){O=!1}):(t||(w=S.query.page),e!==t&&(S.query.page=1),e||(S.query.page=w),S.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","queueCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],C))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+"  properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"outbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,C))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,C=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var x=!0,T=1;e.$watch("vm.query.filter",function(e,n){x?t(function(){x=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.motiondialer").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){_.forIn(g.campaigns,function(e,t){g.rpcCampaigns[t]&&_.merge(e,_.pick(g.rpcCampaigns[t],h))})}function c(e){g.campaigns[e.id]&&(_.merge(g.campaigns[e.id],_.pick(e,h)),_.merge(g.rpcCampaigns[e.id],_.pick(e,h)))}function m(e){g.count=e.count,g.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},d()}function u(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.campaign.get(g.query,m).$promise}function p(e,t){n.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:_.values(g.campaigns)}})}var g=this,h=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];g.count=o.count,g.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcCampaigns=i?_.keyBy(i.rows?i.rows:[],"id"):{},g.query={sort:"-updatedAt",limit:10,page:1},g.success=m,g.getCampaigns=u,g.onSave=c,g.$onInit=d,g.createOrEditIvrCampaign=p,r.on("campaign:save",g.onSave);var v=!0,b=1;e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(b=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=b),g.getCampaigns())}),e.$on("$destroy",function(){r.removeAllListeners("campaign:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","rpcCampaigns","campaigns","api","socket","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"outbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t<e.length;t+=1)for(var n=0;n<e[t].rows.length;n++)e[t].rows[n].paused&&E.queues[e[t].rows[n].VoiceQueueId].paused++,E.queues[e[t].rows[n].VoiceQueueId].loggedInDb++}).catch(function(e){console.error(e)})}function u(e){E.queues[e.id]&&_.merge(E.queues[e.id],_.pick(e,y))}function p(e){}function g(e){E.count=e.count,E.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function h(){E.query.offset=(E.query.page-1)*E.query.limit,c.hasRole("admin")?E.promise=r.voiceQueue.get(E.query,g).$promise:E.promise=r.user.getQueues(E.query,g).$promise}function v(e,t){n.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:_.values(E.queues)}})}function b(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:E.queues?E.queues.rows:[],realtime:!0}})}function f(e){return r.voiceQueue.update(e).$promise.then(function(){d.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){d.error({title:"Error creating queue!",msg:e.message})})}var E=this,y=["loggedIn","available","waiting","talking","originated","message","dialActive","dialMethod","Trunk"];E.count=o.count,E.queues=o?_.keyBy(o.rows?o.rows:[],"id"):{},E.rpcQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.hasRole("admin")?E.query={type:"outbound",sort:"-updatedAt",limit:10,page:1}:E.query={id:c.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1},E.success=g,E.getQueues=h,E.createOrEditVoiceQueue=v,E.agentAdd=b,E.updateQueue=f,E.onSave=u,E.onSaveMember=p,E.$onInit=m,l.on("voice_queue:save",E.onSave),l.on("userVoiceQueueRt:save",E.onSaveMember),l.on("userVoiceQueueRt:update",E.onSaveMember);var A=!0,C=1;e.$watch("vm.query.filter",function(e,n){A?t(function(){A=!1}):(n||(C=E.query.page),e!==n&&(E.query.page=1),e||(E.query.page=C),E.getQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("userVoiceQueueRt:save"),l.removeAllListeners("userVoiceQueueRt:update")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}}angular.module("app.auth").factory("helperClasses",e)}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":a.selectedTab=0;break;case"app.motiondialer.realtime.queues":a.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":a.selectedTab=2;break;case"app.motiondialer.realtime.queue_params":a.selectedTab=3;break;case"app.motiondialer.realtime.ivr_campaigns":a.selectedTab=4;break;default:a.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.queue_params");break;case 4:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelAccount.save(p.openchannelAccount).$promise.then(function(e){p.openchannelAccounts.unshift(e),i.success({title:"OpenchannelAccount properly created",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(e){var t=_.find(p.openchannelAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelAccount properly saved!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelAccount.delete({id:p.openchannelAccount.id}).$promise.then(function(){_.remove(p.openchannelAccounts,{id:p.openchannelAccount.id}),i.success({title:"OpenchannelAccount properly deleted!",msg:(p.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),u(p.openchannelAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",p.openchannelAccount=angular.copy(s),p.openchannelAccounts=o,p.newOpenchannelAccount=!1,p.openchannelAccount||(p.openchannelAccount={remote:n.protocol()+"://"+n.host()+":"+n.port()},p.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",p.newOpenchannelAccount=!0),p.addNewOpenchannelAccount=l,p.saveOpenchannelAccount=d,p.deleteOpenchannelAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelAccounts","openchannelAccount","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.openchannelAccount=e,h.query.id=h.openchannelAccount.id,h.query.OpenchannelAccountId=h.openchannelAccount.id,h.getOpenchannelAccountOpenchannelDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete openchannelDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.openchannelAccountOpenchannelDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.openchannelAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditOpenchannelDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelDisposition:t,openchannelDispositions:h.openchannelAccountOpenchannelDispositions.rows}})}function p(e){r.openchannelDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.openchannelAccountOpenchannelDispositions.rows,{id:e.id}),h.openchannelAccountOpenchannelDispositions.count-=1,h.openchannelAccountOpenchannelDispositions.rows.length||h.getOpenchannelAccountOpenchannelDispositions(),s.success({title:"OpenchannelDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelDispositions?").htmlContent("<b>"+h.selectedOpenchannelAccountOpenchannelDispositions.length+" selected</b> will be deleted.").ariaLabel("delete openchannelDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedOpenchannelAccountOpenchannelDispositions.forEach(function(e){p(e)}),h.selectedOpenchannelAccountOpenchannelDispositions=[]})}var h=this;h.openchannelAccount={},h.openchannelAccountOpenchannelDispositions={count:0,rows:[]},h.selectedOpenchannelAccountOpenchannelDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getOpenchannelAccountOpenchannelDispositions=m,h.createOrEditOpenchannelAccountOpenchannelDisposition=u,h.deleteOpenchannelAccountOpenchannelDisposition=p,h.deleteSelectedOpenchannelAccountOpenchannelDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getOpenchannelAccountOpenchannelDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelDisposition.save(p.openchannelDisposition).$promise.then(function(e){p.openchannelDispositions.unshift(e),i.success({title:"OpenchannelDisposition properly created",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelDisposition.update({id:p.openchannelDisposition.id},p.openchannelDisposition).$promise.then(function(e){var t=_.find(p.openchannelDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelDisposition properly saved!",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelDisposition will be deleted.").ariaLabel("Delete OpenchannelDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelDisposition.delete({id:p.openchannelDisposition.id}).$promise.then(function(){_.remove(p.openchannelDispositions,{id:p.openchannelDisposition.id}),i.success({title:"OpenchannelDisposition properly deleted!",msg:(p.openchannelDisposition.name||"openchannelDisposition")+" has been deleted!"}),u(p.openchannelDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION",p.openchannelDisposition=angular.copy(s),p.openchannelDispositions=o,p.newOpenchannelDisposition=!1,p.openchannelDisposition||(p.openchannelDisposition={},p.title="OPENCHANNEL.NEW_OPENCHANNELDISPOSITION",p.newOpenchannelDisposition=!0),t.params.id&&(p.openchannelDisposition.OpenchannelAccountId=t.params.id),p.addNewOpenchannelDisposition=l,p.saveOpenchannelDisposition=d,p.deleteOpenchannelDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelDispositions","openchannelDisposition","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.openchannel.openchannelAccounts")}function r(){i.openchannelAccount.update({id:l.openchannelAccount.id},l.openchannelAccount).$promise.then(function(){a.success({title:"OpenchannelAccount updated!",msg:l.openchannelAccount.name?l.openchannelAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.openchannelAccount=e.params.openchannelAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoOpenchannelAccounts=s,l.saveOpenchannelAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","openchannelAccount"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelAccount?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:t,openchannelAccounts:A.openchannelAccounts.rows}})}function v(e){l.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelAccounts.rows,{id:e.id}),A.openchannelAccounts.count-=1,A.openchannelAccounts.rows.length||A.getOpenchannelAccounts(),c.success({title:"OpenchannelAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOpenchannelAccounts);return A.selectedOpenchannelAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+A.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelAccounts.forEach(function(e){v(e)}),A.selectedOpenchannelAccounts=[]})}function E(){A.selectedOpenchannelAccounts=[]}function y(){A.selectedOpenchannelAccounts=A.openchannelAccounts.rows}var A=this;A.openchannelAccounts=r||{count:0,rows:[]},A.table="openchannelAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelAccounts=g,A.createOrEditOpenchannelAccount=h,A.deleteOpenchannelAccount=v,A.exportSelectedOpenchannelAccounts=b,A.deleteSelectedOpenchannelAccounts=f,A.deselectOpenchannelAccounts=E,A.selectAllOpenchannelAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelAccounts","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelQueue.save(p.openchannelQueue).$promise.then(function(e){p.openchannelQueues.unshift(e),i.success({title:"OpenchannelQueue properly created",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelQueue.update({id:p.openchannelQueue.id},p.openchannelQueue).$promise.then(function(e){var t=_.find(p.openchannelQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelQueue properly saved!",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelQueue.delete({id:p.openchannelQueue.id}).$promise.then(function(){_.remove(p.openchannelQueues,{id:p.openchannelQueue.id}),i.success({title:"OpenchannelQueue properly deleted!",msg:(p.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),u(p.openchannelQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",p.openchannelQueue=angular.copy(s),p.openchannelQueues=o,p.newOpenchannelQueue=!1,p.openchannelQueue||(p.openchannelQueue={strategy:"beepall"},p.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",p.newOpenchannelQueue=!0),p.addNewOpenchannelQueue=l,p.saveOpenchannelQueue=d,p.deleteOpenchannelQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelQueues","openchannelQueue","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.openchannelQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:i.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,a){n.openchannelQueue[a?"removeTeams":"addTeams"]({id:s.openchannelQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.openchannelQueue.getTeams({id:s.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","openchannelQueue","$translate"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:d.openchannelQueues?d.openchannelQueues.rows:[]}})}function r(){e.go("app.openchannel.openchannelQueues")}function l(){i.openchannelQueue.update({id:d.openchannelQueue.id},d.openchannelQueue).$promise.then(function(){a.success({title:"OpenchannelQueue updated!",msg:d.openchannelQueue.name?d.openchannelQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.openchannelQueue=e.params.openchannelQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoOpenchannelQueues=r,d.saveOpenchannelQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","openchannelQueue"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelQueue?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:A.openchannelQueues.rows}})}function v(e){l.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelQueues.rows,{id:e.id}),A.openchannelQueues.count-=1,A.openchannelQueues.rows.length||A.getOpenchannelQueues(),c.success({title:"OpenchannelQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOpenchannelQueues);return A.selectedOpenchannelQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+A.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelQueues.forEach(function(e){v(e)}),A.selectedOpenchannelQueues=[]})}function E(){A.selectedOpenchannelQueues=[]}function y(){A.selectedOpenchannelQueues=A.openchannelQueues.rows}var A=this;A.openchannelQueues=r||{count:0,rows:[]},A.table="openchannelQueues",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelQueues=g,A.createOrEditOpenchannelQueue=h,A.deleteOpenchannelQueue=v,A.exportSelectedOpenchannelQueues=b,A.deleteSelectedOpenchannelQueues=f,A.deselectOpenchannelQueues=E,A.selectAllOpenchannelQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelQueues","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.customization).$promise.then(function(e){p.customizations.unshift(e),i.success({title:"Customization properly created",msg:p.customization.name?p.customization.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.setting.update({id:p.customization.id},p.customization).$promise.then(function(e){var t=_.find(p.customizations,{id:e.id});t&&_.merge(t,e),i.success({title:"Customization properly saved!",msg:p.customization.name?p.customization.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.setting.delete({id:p.customization.id}).$promise.then(function(){_.remove(p.customizations,{id:p.customization.id}),i.success({title:"Customization properly deleted!",msg:(p.customization.name||"customization")+" has been deleted!"}),u(p.customization)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_CUSTOMIZATION",p.customization=angular.copy(s),p.customizations=o,p.newCustomization=!1,p.customization||(p.customization={},p.title="SETTINGS.NEW_CUSTOMIZATION",p.newCustomization=!0),p.addNewCustomization=l,p.saveCustomization=d,p.deleteCustomization=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customizations","customization","api"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){i.customization.id?t.setting.update({id:i.customization.id},i.customization).$promise.then(function(){n.success({title:"Customization updated!",msg:i.customization.name?i.customization.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.setting.save(i.customization).$promise.then(function(e){_.merge(i.customization,e),n.success({title:"Customization updated!",msg:i.customization.name?i.customization.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}var i=this;i.customizations=e,i.customization={},i.customizations&&i.customizations.rows&&i.customizations.rows.length&&(i.customization=i.customizations.rows[0]),i.saveCustomization=a}e.$inject=["customizations","api","toasty"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo",s.customization.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo_login",s.customization.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.general).$promise.then(function(e){p.generals.unshift(e),i.success({title:"General properly created",msg:p.general.name?p.general.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.setting.update({id:p.general.id},p.general).$promise.then(function(e){var t=_.find(p.generals,{id:e.id});t&&_.merge(t,e),i.success({title:"General properly saved!",msg:p.general.name?p.general.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.setting.delete({id:p.general.id}).$promise.then(function(){_.remove(p.generals,{id:p.general.id}),i.success({title:"General properly deleted!",msg:(p.general.name||"general")+" has been deleted!"}),u(p.general)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_GENERAL",p.general=angular.copy(s),p.generals=o,p.newGeneral=!1,p.general||(p.general={min_internal:1e3,min_mailbox:1e3},p.title="SETTINGS.NEW_GENERAL",p.newGeneral=!0),p.addNewGeneral=l,p.saveGeneral=d,p.deleteGeneral=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","generals","general","api"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){i.general.id?t.setting.update({id:i.general.id},i.general).$promise.then(function(){n.success({title:"General updated!",msg:i.general.name?i.general.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.setting.save(i.general).$promise.then(function(e){_.merge(i.general,e),n.success({title:"General updated!",msg:i.general.name?i.general.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}var i=this;i.generals=e,i.general={},i.generals&&i.generals.rows&&i.generals.rows.length&&(i.general=i.generals.rows[0]),i.saveGeneral=a}e.$inject=["generals","api","toasty"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var n=t.prompt().title("Do you want update manually your license?").textContent("Enter your license.").targetEvent(e).ok("Ok").cancel("Cancel");t.show(n).then(function(e){if(e)return i.license.update({id:1,license:e}).$promise.then(function(){a.success({title:"License properly updated!",msg:"The license has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){console.error(e)})}function s(a){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(e.body),targetEvent:a,clickOutsideToClose:!0,locals:{license:n,channels:r.channels,modules:r.modules,others:r.others}})}var r=this;r.license=n||{},r.license.gray&&(r.license.deadline=moment(r.license.gray).add(7,"days").format("MMMM Do YYYY, HH:MM")),r.channels=[{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"}],r.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],r.others=[{name:"custom",icon:"icon-table-edit"},{name:"update",icon:"icon-cloud-download"}],r.requestLicense=s,r.updateLicense=o}e.$inject=["$document","$mdDialog","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){c.errors=[],c.table="||FIELD||VALUE||\n";for(var e in c.license)c.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(c.table+="|"+e+"|"+c.license[e]+"\n");s.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:c.table,issuetype:"Task"}).$promise.then(function(e){t.success({title:"Request "+e.id+" sent!",msg:"The license request has been sent! We will respond as soon as possible."}),d()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.jira"}]})}function d(){e.hide()}var c=this;c.errors=[],c.user=r.getCurrentUser(),c.license=angular.copy(n),c.channels=a,c.modules=i,c.others=o,c.license.name=c.user.fullname,c.license.email=c.user.email,c.sendRequest=l,c.closeDialog=d}e.$inject=["$mdDialog","toasty","license","channels","modules","others","api","Auth"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.network.save(p.network).$promise.then(function(e){p.networks.unshift(e),i.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.network.update({id:p.network.id},p.network).$promise.then(function(e){var t=_.find(p.networks,{id:e.id});t&&_.merge(t,e),i.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),i.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),u(p.network)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(s),p.networks=o,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=l,p.saveNetwork=d,p.deleteNetwork=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","networks","network","api"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{network:e,networks:A.networks.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the network?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.networks=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.network.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:t,networks:A.networks.rows}})}function v(e){l.network.delete({id:e.id}).$promise.then(function(){_.remove(A.networks.rows,{id:e.id}),A.networks.count-=1,A.networks.rows.length||A.getNetworks(),c.success({title:"Network deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETnetwork",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedNetworks);return A.selectedNetworks=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+A.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedNetworks.forEach(function(e){v(e)}),A.selectedNetworks=[]})}function E(){A.selectedNetworks=[]}function y(){A.selectedNetworks=A.networks.rows}var A=this;A.networks=r||{count:0,rows:[]},A.table="networks",A.listOrder="",A.listOrderAsc=null,A.selectedNetworks=[],A.query={fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getNetworks=g,A.createOrEditNetwork=h,A.deleteNetwork=v,A.exportSelectedNetworks=b,A.deleteSelectedNetworks=f,A.deselectNetworks=E,A.selectAllNetworks=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","networks","api","msUtils","toasty"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.smtp).$promise.then(function(e){p.smtps.unshift(e),i.success({title:"Smtp properly created",msg:p.smtp.name?p.smtp.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailAccount.update({id:p.smtp.id},p.smtp).$promise.then(function(e){var t=_.find(p.smtps,{id:e.id});t&&_.merge(t,e),i.success({title:"Smtp properly saved!",msg:p.smtp.name?p.smtp.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailAccount.delete({id:p.smtp.id}).$promise.then(function(){_.remove(p.smtps,{id:p.smtp.id}),i.success({title:"Smtp properly deleted!",msg:(p.smtp.name||"smtp")+" has been deleted!"}),u(p.smtp)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_SMTP",p.smtp=angular.copy(s),p.smtps=o,p.newSmtp=!1,p.smtp||(p.smtp={service:"true"},p.title="SETTINGS.NEW_SMTP",p.newSmtp=!0),p.addNewSmtp=l,p.saveSmtp=d,p.deleteSmtp=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smtps","smtp","api"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){o.smtp.id&&t.mailAccount.verifySmtp({id:o.smtp.id}).$promise.then(function(){n.success({title:"Smtp verified!",msg:o.smtp.name?o.smtp.name+" has been verified!":""})}).catch(function(e){n.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}function i(){o.smtp.id?t.mailAccount.update({id:o.smtp.id},o.smtp).$promise.then(function(){n.success({title:"Smtp updated!",msg:o.smtp.name?o.smtp.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.mailAccount.save(o.smtp).$promise.then(function(e){_.merge(o.smtp,e),n.success({title:"Smtp updated!",msg:o.smtp.name?o.smtp.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var o=this;o.smtps=e,o.smtp={},o.smtps&&o.smtps.rows&&o.smtps.rows.length?o.smtp=o.smtps.rows[0]:o.smtp={service:!0,Smtp:{service:null}},o.saveSmtp=i,o.verifySmtp=a}e.$inject=["smtps","api","toasty"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e){t.cancel(m)}function l(e,a,i){var r=n.confirm().title("Would you like to change the status of the process #"+a+"?").textContent("The status will be changed to: "+i.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");n.show(r).then(function(){return s.pm2.update({id:a,status:i})}).then(function(){t(u.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+i})})}function d(){return s.system.get().$promise.then(function(e){_.merge(u.system,e)}).catch(u.cancelInterval)}function c(){return s.pm2.get().$promise.then(function(e){_.merge(u.processes,e?e.rows:[])}).catch(u.cancelInterval)}var m,u=this;u.system=a||{},u.processes=i?i.rows:[],u.processLimit=7,u.getInfo=d,u.getProcesses=c,u.cancelInterval=r,u.updateProcess=l,m=t(u.getInfo,5e3),e.$on("$destroy",function(){u.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){angular.isDefined(l.interval)&&(t.cancel(l.interval),l.interval=void 0),l.progress=100,l.updating=!1}function s(){n.location.reload()}function r(){e.hide()}var l=this;l.title="SETTINGS.UPDATE",l.progress=0,l.updating=!0,l.output="Waiting...",l.success=!0,l.interval=t(function(){l.progress<90&&(l.progress+=1)},1e3),l.closeDialog=r,l.reload=s,l.stopInterval=o,i.version.fetch().$promise.then(function(e){return l.output=e.output+"...",i.version.reset().$promise}).then(function(e){return l.output=e.output+"...",i.version.pull().$promise}).then(function(e){return l.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return l.output=e.output+"...",i.version.restart().$promise}).then(function(e){l.output="Waiting to restart motion...",a(function(){l.stopInterval()},3e4)}).catch(function(e){l.success=!1,l.stopInterval(),l.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){var a=e.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(t).clickOutsideToClose(!0).parent(angular.element(n.body)).ok("I agree").cancel("Disagree");e.show(a).then(function(){e.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!1})})}var s=this;s.version=a||{},s.updateConfirm=o}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsAccount.save(p.smsAccount).$promise.then(function(e){p.smsAccounts.unshift(e),i.success({title:"SmsAccount properly created",msg:p.smsAccount.name?p.smsAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(e){var t=_.find(p.smsAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsAccount properly saved!",msg:p.smsAccount.name?p.smsAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsAccount.delete({id:p.smsAccount.id}).$promise.then(function(){_.remove(p.smsAccounts,{id:p.smsAccount.id}),i.success({title:"SmsAccount properly deleted!",msg:(p.smsAccount.name||"smsAccount")+" has been deleted!"}),u(p.smsAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSACCOUNT",p.smsAccount=angular.copy(s),p.smsAccounts=o,p.newSmsAccount=!1,p.smsAccount||(p.smsAccount={smstype:"basic",remote:n.protocol()+"://"+n.host()+":"+n.port()},p.title="SMS.NEW_SMSACCOUNT",p.newSmsAccount=!0),p.addNewSmsAccount=l,p.saveSmsAccount=d,p.deleteSmsAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsAccounts","smsAccount","api"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.smsAccount=e,h.query.id=h.smsAccount.id,h.query.SmsAccountId=h.smsAccount.id,h.getSmsAccountSmsDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the smsDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete smsDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.smsAccountSmsDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.smsAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditSmsDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsDisposition:t,smsDispositions:h.smsAccountSmsDispositions.rows}})}function p(e){r.smsDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.smsAccountSmsDispositions.rows,{id:e.id}),h.smsAccountSmsDispositions.count-=1,h.smsAccountSmsDispositions.rows.length||h.getSmsAccountSmsDispositions(),s.success({title:"SmsDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected smsDispositions?").htmlContent("<b>"+h.selectedSmsAccountSmsDispositions.length+" selected</b> will be deleted.").ariaLabel("delete smsDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedSmsAccountSmsDispositions.forEach(function(e){p(e)}),h.selectedSmsAccountSmsDispositions=[]})}var h=this;h.smsAccount={},h.smsAccountSmsDispositions={count:0,rows:[]},h.selectedSmsAccountSmsDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getSmsAccountSmsDispositions=m,h.createOrEditSmsAccountSmsDisposition=u,h.deleteSmsAccountSmsDisposition=p,h.deleteSelectedSmsAccountSmsDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getSmsAccountSmsDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.sms").controller("SmsAccountSmsDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsDisposition.save(p.smsDisposition).$promise.then(function(e){p.smsDispositions.unshift(e),i.success({title:"SmsDisposition properly created",msg:p.smsDisposition.name?p.smsDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsDisposition.update({id:p.smsDisposition.id},p.smsDisposition).$promise.then(function(e){var t=_.find(p.smsDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsDisposition properly saved!",msg:p.smsDisposition.name?p.smsDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsDisposition will be deleted.").ariaLabel("Delete SmsDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsDisposition.delete({id:p.smsDisposition.id}).$promise.then(function(){_.remove(p.smsDispositions,{id:p.smsDisposition.id}),i.success({title:"SmsDisposition properly deleted!",msg:(p.smsDisposition.name||"smsDisposition")+" has been deleted!"}),u(p.smsDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSDISPOSITION",p.smsDisposition=angular.copy(s),p.smsDispositions=o,p.newSmsDisposition=!1,p.smsDisposition||(p.smsDisposition={},p.title="SMS.NEW_SMSDISPOSITION",p.newSmsDisposition=!0),t.params.id&&(p.smsDisposition.SmsAccountId=t.params.id),p.addNewSmsDisposition=l,p.saveSmsDisposition=d,p.deleteSmsDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsDispositions","smsDisposition","api"],angular.module("app.sms").controller("CreateOrEditSmsDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.sms.smsAccounts")}function r(){i.smsAccount.update({id:l.smsAccount.id},l.smsAccount).$promise.then(function(){a.success({title:"SmsAccount updated!",msg:l.smsAccount.name?l.smsAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.smsAccount=e.params.smsAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSmsAccounts=s,l.saveSmsAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","smsAccount"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the smsAccount?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:t,smsAccounts:A.smsAccounts.rows}})}function v(e){l.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.smsAccounts.rows,{id:e.id}),A.smsAccounts.count-=1,A.smsAccounts.rows.length||A.getSmsAccounts(),c.success({title:"SmsAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSmsAccounts);return A.selectedSmsAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+A.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsAccounts.forEach(function(e){v(e)}),A.selectedSmsAccounts=[]})}function E(){A.selectedSmsAccounts=[]}function y(){A.selectedSmsAccounts=A.smsAccounts.rows}var A=this;A.smsAccounts=r||{count:0,rows:[]},A.table="smsAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedSmsAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysmstype=_.keyBy([{option:"Basic",value:"'basic'"},{option:"Classic",value:"'classic'"},{option:"Classic+",value:"'classic+'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsAccounts=g,A.createOrEditSmsAccount=h,A.deleteSmsAccount=v,A.exportSelectedSmsAccounts=b,A.deleteSelectedSmsAccounts=f,A.deselectSmsAccounts=E,A.selectAllSmsAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsAccounts","api","msUtils","toasty"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsQueue.save(p.smsQueue).$promise.then(function(e){p.smsQueues.unshift(e),i.success({title:"SmsQueue properly created",msg:p.smsQueue.name?p.smsQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsQueue.update({id:p.smsQueue.id},p.smsQueue).$promise.then(function(e){var t=_.find(p.smsQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsQueue properly saved!",msg:p.smsQueue.name?p.smsQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsQueue.delete({id:p.smsQueue.id}).$promise.then(function(){_.remove(p.smsQueues,{id:p.smsQueue.id}),i.success({title:"SmsQueue properly deleted!",msg:(p.smsQueue.name||"smsQueue")+" has been deleted!"}),u(p.smsQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSQUEUE",p.smsQueue=angular.copy(s),p.smsQueues=o,p.newSmsQueue=!1,p.smsQueue||(p.smsQueue={strategy:"beepall"},p.title="SMS.NEW_SMSQUEUE",p.newSmsQueue=!0),p.addNewSmsQueue=l,p.saveSmsQueue=d,p.deleteSmsQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsQueues","smsQueue","api"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.smsQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("SMS.ALL_TEAMS"),labelSelected:i.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,a){n.smsQueue[a?"removeTeams":"addTeams"]({id:s.smsQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.smsQueue.getTeams({id:s.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","smsQueue","$translate"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:d.smsQueues?d.smsQueues.rows:[]}})}function r(){e.go("app.sms.smsQueues")}function l(){i.smsQueue.update({id:d.smsQueue.id},d.smsQueue).$promise.then(function(){a.success({title:"SmsQueue updated!",msg:d.smsQueue.name?d.smsQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.smsQueue=e.params.smsQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoSmsQueues=r,d.saveSmsQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","smsQueue"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the smsQueue?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:A.smsQueues.rows}})}function v(e){l.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.smsQueues.rows,{id:e.id}),A.smsQueues.count-=1,A.smsQueues.rows.length||A.getSmsQueues(),c.success({title:"SmsQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSmsQueues);return A.selectedSmsQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+A.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsQueues.forEach(function(e){v(e)}),A.selectedSmsQueues=[]})}function E(){A.selectedSmsQueues=[]}function y(){A.selectedSmsQueues=A.smsQueues.rows}var A=this;A.smsQueues=r||{count:0,rows:[]},A.table="smsQueues",A.listOrder="",A.listOrderAsc=null,A.selectedSmsQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsQueues=g,A.createOrEditSmsQueue=h,A.deleteSmsQueue=v,A.exportSelectedSmsQueues=b,A.deleteSelectedSmsQueues=f,A.deselectSmsQueues=E,A.selectAllSmsQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsQueues","api","msUtils","toasty"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.agents.edit",{id:e.id,agent:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.agents=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:t,agents:A.agents.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.agents.rows,{id:e.id}),A.agents.count-=1,A.agents.rows.length||A.getAgents(),c.success({title:"Agent deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedAgents);return A.selectedAgents=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+A.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedAgents.forEach(function(e){v(e)}),A.selectedAgents=[]})}function E(){A.selectedAgents=[]}function y(){A.selectedAgents=A.agents.rows}var A=this;A.agents=r||{count:0,rows:[]},A.table="agents",A.listOrder="",A.listOrderAsc=null,A.selectedAgents=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getAgents=g,A.createOrEditAgent=h,A.deleteAgent=v,A.exportSelectedAgents=b,A.deleteSelectedAgents=f,A.deselectAgents=E,A.selectAllAgents=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","agents","api","msUtils","toasty"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.agent).$promise.then(function(e){p.agents.unshift(e),i.success({title:"Agent properly created",msg:p.agent.name?p.agent.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.agent.id},p.agent).$promise.then(function(e){var t=_.find(p.agents,{id:e.id});t&&_.merge(t,e),i.success({title:"Agent properly saved!",msg:p.agent.name?p.agent.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.agent.id}).$promise.then(function(){_.remove(p.agents,{id:p.agent.id}),i.success({title:"Agent properly deleted!",msg:(p.agent.name||"agent")+" has been deleted!"}),u(p.agent)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_AGENT",p.agent=angular.copy(s),p.agents=o,p.newAgent=!1,p.agent||(p.agent={role:"agent",autointernal:!0,type:"friend"},p.title="STAFF.NEW_AGENT",p.newAgent=!0),p.addNewAgent=l,p.saveAgent=d,p.deleteAgent=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","agents","agent","api"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,t){function n(e){s.agent=angular.copy(e),s.ngFlowOptions.target="api/users/"+s.agent.id+"/avatar",s.agent.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.agent.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.agent.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.agent={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.agent.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Agent password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.agent=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","agent"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){n.user[m.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:m.agent.id,fields:m.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy",channel:i,nolimit:!0}).$promise.then(function(e){return m.isVoiceRealtime()?m.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],n[m.apiname].get({fields:"id,name,strategy",nolimit:!0,type:s}).$promise}).then(function(e){m.items=e.rows?e.rows:[],m.selectedItems=_.intersectionBy(m.selectedItems,m.items,"id"),m.dualMultiselectOptions.selectedItems=m.selectedItems,m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o&&"voice"===i}function c(){e.hide()}var m=this;m.agent=a,m.penalty=0,m.apiname=i+"Queue",m.title=r.instant("STAFF.QUEUEADD_AGENT_"+i.toUpperCase()+"_"+s.toUpperCase()),m.items=[],m.selectedItems=[],m.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"strategy",line3:"penalty",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:m.agent.id,ids:_.map(e,"id"),channel:i,penalty:m.penalty||0,realtime:o}).$promise.then(function(){l(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.closeDialog=c,m.isVoiceRealtime=d,l()}e.$inject=["$mdDialog","toasty","api","agent","channel","realtime","direction","$translate"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a,i){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(n.body),targetEvent:i,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[],channel:a,realtime:!1,direction:"inbound"}})}function r(e,a){t.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[]}})}function l(){e.go("app.staff.agents")}function d(){c.agent=_.omit(c.agent,"userpic"),i.user.update({id:c.agent.id},c.agent).$promise.then(function(){a.success({title:"Agent updated!",msg:c.agent.name?c.agent.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.agent=e.params.agent||o||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=s,c.changepassworddialog=r,c.gotoAgents=l,c.saveAgent=d}e.$inject=["$state","$mdDialog","$document","toasty","api","agent"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.team.save(p.team).$promise.then(function(e){p.teams.unshift(e),i.success({title:"Team properly created",msg:p.team.name?p.team.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.team.update({id:p.team.id},p.team).$promise.then(function(e){var t=_.find(p.teams,{id:e.id});t&&_.merge(t,e),i.success({title:"Team properly saved!",msg:p.team.name?p.team.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.team.delete({id:p.team.id}).$promise.then(function(){_.remove(p.teams,{id:p.team.id}),i.success({title:"Team properly deleted!",msg:(p.team.name||"team")+" has been deleted!"}),u(p.team)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_TEAM",p.team=angular.copy(s),p.teams=o,p.newTeam=!1,p.team||(p.team={},p.title="STAFF.NEW_TEAM",p.newTeam=!0),p.addNewTeam=l,p.saveTeam=d,p.deleteTeam=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","teams","team","api"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.team[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.team=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("STAFF.ALL_AGENTS"),labelSelected:s.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,a){n.team[a?"removeAgents":"addAgents"]({id:c.team.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:team.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","team","teams","realtime","$translate"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:C.teams.rows}})}function u(e,t){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:C.teams?C.teams.rows:[],realtime:!1}})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the team?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.teams=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.team.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:t,teams:C.teams.rows}})}function b(e){l.team.delete({id:e.id}).$promise.then(function(){_.remove(C.teams.rows,{id:e.id}),C.teams.count-=1,C.teams.rows.length||C.getTeams(),c.success({title:"Team deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETteam",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedTeams);return C.selectedTeams=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+C.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedTeams.forEach(function(e){b(e)}),C.selectedTeams=[]})}function y(){C.selectedTeams=[]}function A(){C.selectedTeams=C.teams.rows}var C=this;C.teams=r||{count:0,rows:[]},C.table="teams",C.listOrder="",C.listOrderAsc=null,C.selectedTeams=[],C.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.agentadddialog=u,C.deleteconfirm=p,C.success=g,C.getTeams=h,C.createOrEditTeam=v,C.deleteTeam=b,C.exportSelectedTeams=f,C.deleteSelectedTeams=E,C.deselectTeams=y,C.selectAllTeams=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","teams","api","msUtils","toasty"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.telephone).$promise.then(function(e){p.telephones.unshift(e),i.success({title:"Telephone properly created",msg:p.telephone.name?p.telephone.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.telephone.id},p.telephone).$promise.then(function(e){var t=_.find(p.telephones,{id:e.id});t&&_.merge(t,e),i.success({title:"Telephone properly saved!",msg:p.telephone.name?p.telephone.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.telephone.id}).$promise.then(function(){_.remove(p.telephones,{id:p.telephone.id}),i.success({title:"Telephone properly deleted!",msg:(p.telephone.name||"telephone")+" has been deleted!"}),u(p.telephone)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_TELEPHONE",p.telephone=angular.copy(s),p.telephones=o,p.newTelephone=!1,p.telephone||(p.telephone={role:"telephone",autointernal:!0},p.title="STAFF.NEW_TELEPHONE",p.newTelephone=!0),p.addNewTelephone=l,p.saveTelephone=d,p.deleteTelephone=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","telephones","telephone","api"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.telephone.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Telephone password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.telephone=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","telephone"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{telephone:e,telephones:d.telephones?d.telephones.rows:[]}})}function r(){e.go("app.staff.telephones")}function l(){i.user.update({id:d.telephone.id},d.telephone).$promise.then(function(){a.success({title:"Telephone updated!",msg:d.telephone.name?d.telephone.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.telephone=e.params.telephone||o||{},d.selectedTab=e.params.tab||0,d.changepassworddialog=s,d.gotoTelephones=r,d.saveTelephone=l}e.$inject=["$state","$mdDialog","$document","toasty","api","telephone"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.telephones.edit",{id:e.id,telephone:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the telephone?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.telephones=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:t,telephones:A.telephones.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.telephones.rows,{id:e.id}),A.telephones.count-=1,A.telephones.rows.length||A.getTelephones(),c.success({title:"Telephone deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTelephones);return A.selectedTelephones=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+A.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTelephones.forEach(function(e){v(e)}),A.selectedTelephones=[]})}function E(){A.selectedTelephones=[]}function y(){A.selectedTelephones=A.telephones.rows}var A=this;A.telephones=r||{count:0,rows:[]},A.table="telephones",A.listOrder="",A.listOrderAsc=null,A.selectedTelephones=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTelephones=g,A.createOrEditTelephone=h,A.deleteTelephone=v,A.exportSelectedTelephones=b,A.deleteSelectedTelephones=f,A.deselectTelephones=E,A.selectAllTelephones=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","telephones","api","msUtils","toasty"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.user).$promise.then(function(e){p.users.unshift(e),i.success({title:"User properly created",msg:p.user.name?p.user.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.user.id},p.user).$promise.then(function(e){var t=_.find(p.users,{id:e.id});t&&_.merge(t,e),i.success({title:"User properly saved!",msg:p.user.name?p.user.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.user.id}).$promise.then(function(){_.remove(p.users,{id:p.user.id}),i.success({title:"User properly deleted!",msg:(p.user.name||"user")+" has been deleted!"}),u(p.user)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_USER",p.user=angular.copy(s),p.users=o,p.newUser=!1,p.user||(p.user={role:"user",autointernal:!0},p.title="STAFF.NEW_USER",p.newUser=!0),p.addNewUser=l,p.saveUser=d,p.deleteUser=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","users","user","api"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,t){function n(e){s.user=angular.copy(e),s.ngFlowOptions.target="api/users/"+s.user.id+"/avatar",s.user.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.user.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.user.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.user={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id,newPassword:s.password}).$promise.then(function(){t.success({title:"User password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,t,n){function a(e){o.user=e}function i(t,a){if((a||t).enabled){if(a)a.enabled=!0,o.user.permissions.push(a.id);else for(var i=0;i<t.children.length;i++)t.children[i].enabled=!0,o.user.permissions.push(t.children[i].id);t.enabled=!0,o.user.permissions.push(t.id)}else if(a)a.enabled=!1,_.remove(o.user.permissions,function(e){return a.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(o.user.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(o.user.permissions,function(e){return t.id===e});for(var s=0;s<t.children.length;s++)t.children[s].enabled=!1,_.remove(o.user.permissions,function(e){return t.children[s].id===e})}return e.user.update({id:o.user.id,permissions:_.uniq(o.user.permissions)}).$promise.then(function(){n.success({title:"user updated!",msg:o.user.name?o.user.name+" has been updated!":""})}).catch(function(e){console.error(e)})}var o=this;o.user={},o.navigation=t.getNavigation(),o.init=a,o.onChange=i}e.$inject=["api","msNavigationService","toasty"],angular.module("app.staff").controller("UserPermissionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){n.user[m.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:m.user.id,fields:m.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy",channel:i,nolimit:!0}).$promise.then(function(e){return m.isVoiceRealtime()?m.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],n[m.apiname].get({fields:"id,name,strategy",nolimit:!0,type:s}).$promise}).then(function(e){m.items=e.rows?e.rows:[],m.selectedItems=_.intersectionBy(m.selectedItems,m.items,"id"),m.dualMultiselectOptions.selectedItems=m.selectedItems,m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o&&"voice"===i}function c(){e.hide()}var m=this;m.user=a,m.penalty=0,m.apiname=i+"Queue",m.title=r.instant("STAFF.QUEUEADD_USER_"+i.toUpperCase()+"_"+s.toUpperCase()),m.items=[],m.selectedItems=[],m.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"strategy",line3:"penalty",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:m.user.id,ids:_.map(e,"id"),channel:i,penalty:m.penalty||0,realtime:o}).$promise.then(function(){l(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.closeDialog=c,m.isVoiceRealtime=d,l()}e.$inject=["$mdDialog","toasty","api","user","channel","realtime","direction","$translate"],angular.module("app.staff").controller("UserqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a,i){t.show({controller:"UserqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/queueadd/queueadd.html",parent:angular.element(n.body),targetEvent:i,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[],channel:a,realtime:!1,direction:"inbound"}})}function r(e,a){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[]}})}function l(){e.go("app.staff.users")}function d(){c.user=_.omit(c.user,"userpic"),i.user.update({id:c.user.id},c.user).$promise.then(function(){a.success({title:"User updated!",msg:c.user.name?c.user.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.user=e.params.user||o||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=s,c.changepassworddialog=r,c.gotoUsers=l,c.saveUser=d}e.$inject=["$state","$mdDialog","$document","toasty","api","user"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.users.edit",{id:e.id,user:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the user?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.users=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:t,users:A.users.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.users.rows,{id:e.id}),A.users.count-=1,A.users.rows.length||A.getUsers(),c.success({title:"User deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedUsers);return A.selectedUsers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+A.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedUsers.forEach(function(e){v(e)}),A.selectedUsers=[]})}function E(){A.selectedUsers=[]}function y(){A.selectedUsers=A.users.rows}var A=this;A.users=r||{count:0,rows:[]},A.table="users",A.listOrder="",A.listOrderAsc=null,A.selectedUsers=[],A.query={fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,page:1},A.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getUsers=g,A.createOrEditUser=h,A.deleteUser=v,A.exportSelectedUsers=b,A.deleteSelectedUsers=f,A.deselectUsers=E,A.selectAllUsers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","users","api","msUtils","toasty"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:A.cannedAnswers.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the cannedAnswer?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.cannedAnswers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cannedAnswer.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:t,cannedAnswers:A.cannedAnswers.rows}})}function v(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(A.cannedAnswers.rows,{id:e.id}),A.cannedAnswers.count-=1,A.cannedAnswers.rows.length||A.getCannedAnswers(),c.success({title:"CannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcannedAnswer",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedCannedAnswers);return A.selectedCannedAnswers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+A.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCannedAnswers.forEach(function(e){v(e)}),A.selectedCannedAnswers=[]})}function E(){A.selectedCannedAnswers=[]}function y(){A.selectedCannedAnswers=A.cannedAnswers.rows}var A=this;A.cannedAnswers=r||{count:0,rows:[]},A.table="cannedAnswers",A.listOrder="",A.listOrderAsc=null,A.selectedCannedAnswers=[],A.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getCannedAnswers=g,A.createOrEditCannedAnswer=h,A.deleteCannedAnswer=v,A.exportSelectedCannedAnswers=b,A.deleteSelectedCannedAnswers=f,A.deselectCannedAnswers=E,A.selectAllCannedAnswers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","cannedAnswers","api","msUtils","toasty"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cannedAnswer.save(p.cannedAnswer).$promise.then(function(e){p.cannedAnswers.unshift(e),i.success({title:"CannedAnswer properly created",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cannedAnswer.update({id:p.cannedAnswer.id},p.cannedAnswer).$promise.then(function(e){var t=_.find(p.cannedAnswers,{id:e.id});t&&_.merge(t,e),i.success({title:"CannedAnswer properly saved!",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cannedAnswer.delete({id:p.cannedAnswer.id}).$promise.then(function(){_.remove(p.cannedAnswers,{id:p.cannedAnswer.id}),i.success({title:"CannedAnswer properly deleted!",msg:(p.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),u(p.cannedAnswer)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_CANNEDANSWER",p.cannedAnswer=angular.copy(s),p.cannedAnswers=o,p.newCannedAnswer=!1,p.cannedAnswer||(p.cannedAnswer={},p.title="TOOLS.NEW_CANNEDANSWER",p.newCannedAnswer=!0),p.addNewCannedAnswer=l,p.saveCannedAnswer=d,p.deleteCannedAnswer=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","cannedAnswers","cannedAnswer","api"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.save(p.customDashboard).$promise.then(function(e){p.customDashboards.unshift(e),i.success({title:"CustomDashboard properly created",msg:p.customDashboard.name?p.customDashboard.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.dashboard.update({id:p.customDashboard.id},p.customDashboard).$promise.then(function(e){var t=_.find(p.customDashboards,{id:e.id});t&&_.merge(t,e),i.success({title:"CustomDashboard properly saved!",msg:p.customDashboard.name?p.customDashboard.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.dashboard.delete({id:p.customDashboard.id}).$promise.then(function(){_.remove(p.customDashboards,{id:p.customDashboard.id}),i.success({title:"CustomDashboard properly deleted!",msg:(p.customDashboard.name||"customDashboard")+" has been deleted!"}),u(p.customDashboard)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_CUSTOMDASHBOARD",p.customDashboard=angular.copy(s),p.customDashboards=o,p.newCustomDashboard=!1,p.customDashboard||(p.customDashboard={interval:5},p.title="TOOLS.NEW_CUSTOMDASHBOARD",p.newCustomDashboard=!0),p.addNewCustomDashboard=l,p.saveCustomDashboard=d,p.deleteCustomDashboard=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customDashboards","customDashboard","api"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the customDashboard?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.customDashboards=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.dashboard.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:t,customDashboards:A.customDashboards.rows}})}function v(e){l.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(A.customDashboards.rows,{id:e.id}),A.customDashboards.count-=1,A.customDashboards.rows.length||A.getCustomDashboards(),c.success({title:"CustomDashboard deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedCustomDashboards);return A.selectedCustomDashboards=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+A.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCustomDashboards.forEach(function(e){v(e)}),A.selectedCustomDashboards=[]})}function E(){A.selectedCustomDashboards=[]}function y(){A.selectedCustomDashboards=A.customDashboards.rows}var A=this;A.customDashboards=r||{count:0,rows:[]},A.table="customDashboards",A.listOrder="",A.listOrderAsc=null,A.selectedCustomDashboards=[],A.query={fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getCustomDashboards=g,A.createOrEditCustomDashboard=h,A.deleteCustomDashboard=v,A.exportSelectedCustomDashboards=b,A.deleteSelectedCustomDashboards=f,A.deselectCustomDashboards=E,A.selectAllCustomDashboards=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","customDashboards","api","msUtils","toasty"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){return console.log(e),i.dashboardItem.delete({id:e}).$promise.then(function(t){_.remove(c.items.rows,{id:e})}).catch(function(e){console.error(e)})}function s(e,t,n){return i.dashboardItem.update(n).$promise.catch(function(e){console.error(e)})}function r(e){t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{dashboarditem:null,dashboard:c.items.rows}})}function l(e){return c.customDashboard=e,d=a(function(){return i.dashboard.run({id:c.customDashboard.id})},1e3*c.customDashboard.interval),i.dashboard.getItems({id:e.id,fields:"id,type,sizeX,sizeY,row,col,data"}).$promise.then(function(e){c.items=e}).catch(function(e){console.error(e)})}var d,c=this;c.customDashboard={},c.gridOptions={resizable:{enabled:!0,stop:s},draggable:{enabled:!0,stop:s}},c.items={rows:[],count:0},c.init=l,c.addItem=r,c.updateItem=s,c.deleteItem=o,e.$on("$destroy",function(){a.cancel(d)})}e.$inject=["$scope","$mdDialog","$document","$interval","api"],angular.module("app.tools").controller("CustomDashboardCustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.addItem({id:t.params.id},p.dashboarditem).$promise.then(function(e){p.dashboard.unshift(e),i.success({title:"DashboardItem properly created",msg:p.dashboarditem.name?p.dashboarditem.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.dashboardItem.update({id:p.dashboarditem.id},p.dashboarditem).$promise.then(function(e){var t=_.find(p.dashboard,{id:e.id});t&&_.merge(t,e),i.success({title:"DashboardItem properly saved!",msg:p.dashboarditem.name?p.dashboarditem.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.dashboardItem.delete({id:p.dashboarditem.id}).$promise.then(function(){_.remove(p.dashboard,{id:p.dashboarditem.id}),i.success({title:"DashboardItem properly deleted!",msg:(p.dashboarditem.name||"dashboarditem")+" has been deleted!"}),u(p.dashboarditem)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_DASHBOARDITEM",p.dashboarditem=angular.copy(s),p.dashboard=o,p.newDashboardItem=!1,p.dashboarditem||(p.dashboarditem={type:"counter"},p.title="TOOLS.NEW_DASHBOARDITEM",p.newDashboardItem=!0),p.addNewDashboardItem=l,p.saveDashboardItem=d,p.deleteDashboardItem=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","dashboard","dashboarditem","api"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.customDashboards")}function r(){i.dashboard.update({id:l.customDashboard.id},l.customDashboard).$promise.then(function(){a.success({title:"CustomDashboard updated!",msg:l.customDashboard.name?l.customDashboard.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.customDashboard=e.params.customDashboard||o||{},l.selectedTab=e.params.tab||0,l.gotoCustomDashboards=s,l.saveCustomDashboard=r}e.$inject=["$state","$mdDialog","$document","toasty","api","customDashboard"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.interval.update({id:p.interval.id},p.interval).$promise.then(function(e){var t=_.find(p.intervals,{id:e.id});t&&_.merge(t,e),i.success({title:"Interval properly saved!",msg:p.interval.name?p.interval.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.interval.delete({id:p.interval.id}).$promise.then(function(){_.remove(p.intervals,{id:p.interval.id}),i.success({title:"Interval properly deleted!",msg:(p.interval.name||"interval")+" has been deleted!"}),u(p.interval)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_INTERVAL",p.interval=angular.copy(s),p.intervals=o,p.newInterval=!1,p.interval||(p.interval={},p.title="TOOLS.NEW_INTERVAL",p.newInterval=!0),p.addNewInterval=l,p.saveInterval=d,p.deleteInterval=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","intervals","interval","api"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditIntervalAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.interval=e,h.query.id=h.interval.id,h.getIntervalIntervals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.intervalIntervals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.interval.getIntervals(h.query,c).$promise}function u(e,t){i.show({controller:"EditIntervalAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:h.intervalIntervals.rows}})}function p(e){r.interval.delete({id:e.id}).$promise.then(function(){_.remove(h.intervalIntervals.rows,{id:e.id}),h.intervalIntervals.count-=1,h.intervalIntervals.rows.length||h.getIntervalIntervals(),s.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+h.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIntervalIntervals.forEach(function(e){p(e)}),h.selectedIntervalIntervals=[]})}var h=this;h.interval={},h.intervalIntervals={count:0,rows:[]},h.selectedIntervalIntervals=[],h.sortableTable={animation:100,onSort:function(e){r.interval.addIntervals({id:h.interval.id},e.models).$promise.then(function(e){h.intervalIntervals.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},h.query={fields:"createdAt,updatedAt,id,name,interval,createdAt",nolimit:"true",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIntervalIntervals=m,h.createOrEditIntervalInterval=u,h.deleteIntervalInterval=p,h.deleteSelectedIntervalIntervals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIntervalIntervals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.interval.update({id:p.interval.id},p.interval).$promise.then(function(e){var t=_.find(p.intervals,{id:e.id});t&&_.merge(t,e),i.success({title:"Interval properly saved!",msg:p.interval.name?p.interval.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.interval.delete({id:p.interval.id}).$promise.then(function(){_.remove(p.intervals,{id:p.interval.id}),i.success({title:"Interval properly deleted!",msg:(p.interval.name||"interval")+" has been deleted!"}),u(p.interval)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_INTERVAL",p.interval=angular.copy(s),p.intervals=o,p.newInterval=!1,p.interval||(p.interval={},p.title="TOOLS.NEW_INTERVAL",p.newInterval=!0),p.addNewInterval=l,p.saveInterval=d,p.deleteInterval=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","intervals","interval","api"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.intervals")}function r(){i.interval.update({id:l.interval.id},l.interval).$promise.then(function(){a.success({title:"Interval updated!",msg:l.interval.name?l.interval.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.interval=e.params.interval||o||{},l.selectedTab=e.params.tab||0,l.gotoIntervals=s,l.saveInterval=r}e.$inject=["$state","$mdDialog","$document","toasty","api","interval"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.intervals.edit",{id:e.id,interval:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.intervals=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.interval.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:A.intervals.rows}})}function v(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(A.intervals.rows,{id:e.id}),A.intervals.count-=1,A.intervals.rows.length||A.getIntervals(),c.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedIntervals);return A.selectedIntervals=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+A.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedIntervals.forEach(function(e){v(e)}),A.selectedIntervals=[]})}function E(){A.selectedIntervals=[]}function y(){A.selectedIntervals=A.intervals.rows}var A=this;A.intervals=r||{count:0,rows:[]},A.table="intervals",A.listOrder="",A.listOrderAsc=null,A.selectedIntervals=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getIntervals=g,A.createOrEditInterval=h,A.deleteInterval=v,A.exportSelectedIntervals=b,A.deleteSelectedIntervals=f,A.deselectIntervals=E,A.selectAllIntervals=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","intervals","api","msUtils","toasty"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.pause.save(p.pause).$promise.then(function(e){p.pauses.unshift(e),i.success({title:"Pause properly created",msg:p.pause.name?p.pause.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.pause.update({id:p.pause.id},p.pause).$promise.then(function(e){var t=_.find(p.pauses,{id:e.id});t&&_.merge(t,e),i.success({title:"Pause properly saved!",msg:p.pause.name?p.pause.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.pause.delete({id:p.pause.id}).$promise.then(function(){_.remove(p.pauses,{id:p.pause.id}),i.success({title:"Pause properly deleted!",msg:(p.pause.name||"pause")+" has been deleted!"}),u(p.pause)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_PAUSE",p.pause=angular.copy(s),p.pauses=o,p.newPause=!1,p.pause||(p.pause={},p.title="TOOLS.NEW_PAUSE",p.newPause=!0),p.addNewPause=l,p.savePause=d,p.deletePause=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","pauses","pause","api"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{pause:e,pauses:A.pauses.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the pause?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.pauses=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.pause.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:t,pauses:A.pauses.rows}})}function v(e){l.pause.delete({id:e.id}).$promise.then(function(){_.remove(A.pauses.rows,{id:e.id}),A.pauses.count-=1,A.pauses.rows.length||A.getPauses(),c.success({title:"Pause deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpause",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedPauses);return A.selectedPauses=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+A.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedPauses.forEach(function(e){v(e)}),A.selectedPauses=[]})}function E(){A.selectedPauses=[]}function y(){A.selectedPauses=A.pauses.rows}var A=this;A.pauses=r||{count:0,rows:[]},A.table="pauses",A.listOrder="",A.listOrderAsc=null,A.selectedPauses=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getPauses=g,A.createOrEditPause=h,A.deletePause=v,A.exportSelectedPauses=b,A.deleteSelectedPauses=f,A.deselectPauses=E,A.selectAllPauses=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","pauses","api","msUtils","toasty"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.schedule.save(p.schedule).$promise.then(function(e){p.schedules.unshift(e),i.success({title:"Schedule properly created",msg:p.schedule.name?p.schedule.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.schedule.update({id:p.schedule.id},p.schedule).$promise.then(function(e){var t=_.find(p.schedules,{id:e.id});t&&_.merge(t,e),i.success({title:"Schedule properly saved!",msg:p.schedule.name?p.schedule.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.schedule.delete({id:p.schedule.id}).$promise.then(function(){_.remove(p.schedules,{id:p.schedule.id}),i.success({title:"Schedule properly deleted!",msg:(p.schedule.name||"schedule")+" has been deleted!"}),u(p.schedule)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_SCHEDULE",p.schedule=angular.copy(s),p.schedules=o,p.newSchedule=!1,p.schedule||(p.schedule={type:"report",reportType:"default",reportOutput:"CSV",cronType:"currentDay",cron:"*/15 * * * *",weekDays:"monday",reportRange:"last30",sendMail:!1,active:!0},p.title="TOOLS.NEW_SCHEDULE",p.newSchedule=!0),p.addNewSchedule=l,p.saveSchedule=d,p.deleteSchedule=c,p.getDateFromString=m,p.closeDialog=u,r.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.customReports=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.defaultReports=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","schedules","schedule","api"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.schedules")}function r(){i.schedule.update({id:l.schedule.id},l.schedule).$promise.then(function(){a.success({title:"Schedule updated!",msg:l.schedule.name?l.schedule.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.schedule=e.params.schedule||o||{},l.selectedTab=e.params.tab||0,l.gotoScheduler=s,l.saveSchedule=r,i.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.customReports=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.defaultReports=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","schedule"],angular.module("app.tools").controller("ScheduleController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.schedules.edit",{id:e.id,schedule:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.schedules=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.schedule.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:t,schedules:A.schedules.rows}})}function v(e){l.schedule.delete({id:e.id}).$promise.then(function(){_.remove(A.schedules.rows,{id:e.id}),A.schedules.count-=1,A.schedules.rows.length||A.getScheduler(),c.success({title:"Schedule deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedScheduler);return A.selectedScheduler=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+A.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedScheduler.forEach(function(e){v(e)}),A.selectedScheduler=[]})}function E(){A.selectedScheduler=[]}function y(){A.selectedScheduler=A.schedules.rows}var A=this;A.schedules=r||{count:0,rows:[]},A.table="schedules",A.listOrder="",A.listOrderAsc=null,A.selectedScheduler=[],A.query={fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Report",value:"'report'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportType=_.keyBy([{option:"Default",value:"'default'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportOutput=_.keyBy([{option:"CSV",value:"'CSV'"},{option:"PDF",value:"'PDF'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycronType=_.keyBy([{option:"CurrentDay",value:"'currentDay'"},{option:"Daily",value:"'daily'"},{option:"Weekly",value:"'weekly'"},{option:"Monthly",value:"'monthly'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycron=_.keyBy([{option:"15min",value:"'*/15 * * * *'"},{option:"30min",value:"'*/30 * * * *'"},{option:"1h",value:"'0 * * * *'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayweekDays=_.keyBy([{option:"MON",value:"'monday'"},{option:"TUE",value:"'tuesday'"},{option:"WED",value:"'wednesday'"},{option:"THU",value:"'thursday'"},{option:"FRI",value:"'friday'"},{option:"SAT",value:"'saturday'"},{option:"SUN",value:"'sunday'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportRange=_.keyBy([{option:"PREVIOUS_DAY",value:"'yesterday'"},{option:"LAST_SEVEN_DAYS",value:"'last7'"},{option:"LAST_THIRTY_DAYS",value:"'last30'"},{option:"LAST_MONTH",value:"'lastMonth'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getScheduler=g,A.createOrEditSchedule=h,A.deleteSchedule=v,A.exportSelectedScheduler=b,A.deleteSelectedScheduler=f,A.deselectScheduler=E,A.selectAllScheduler=y,l.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.customReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.defaultReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","schedules","api","msUtils","toasty"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.sound.save(p.sound).$promise.then(function(e){p.sounds.unshift(e),i.success({title:"Sound properly created",msg:p.sound.name?p.sound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.sound.update({id:p.sound.id},p.sound).$promise.then(function(e){var t=_.find(p.sounds,{id:e.id});t&&_.merge(t,e),i.success({title:"Sound properly saved!",msg:p.sound.name?p.sound.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.sound.delete({id:p.sound.id}).$promise.then(function(){_.remove(p.sounds,{id:p.sound.id}),i.success({title:"Sound properly deleted!",msg:(p.sound.name||"sound")+" has been deleted!"}),u(p.sound)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_SOUND",p.sound=angular.copy(s),p.sounds=o,p.newSound=!1,p.sound||(p.sound={},p.title="TOOLS.NEW_SOUND",p.newSound=!0),p.addNewSound=l,p.saveSound=d,p.deleteSound=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","sounds","sound","api"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{sound:e,sounds:x.sounds.rows}})}function u(e,n){return l.sound.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/sounds/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the sound?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){x.sounds=e||{count:0,rows:[]}}function h(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.sound.get(x.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:t,sounds:x.sounds.rows}})}function b(e){l.sound.delete({id:e.id}).$promise.then(function(){_.remove(x.sounds.rows,{id:e.id}),x.sounds.count-=1,x.sounds.rows.length||x.getSounds(),c.success({title:"Sound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(x.selectedSounds);return x.selectedSounds=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+x.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedSounds.forEach(function(e){b(e)}),x.selectedSounds=[]})}function y(){x.selectedSounds=[]}function A(){x.selectedSounds=x.sounds.rows}function C(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/uploadsound/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:x.sounds.rows}})}var x=this;x.sounds=r||{count:0,rows:[]},x.table="sounds",x.listOrder="",x.listOrderAsc=null,x.selectedSounds=[],x.query={fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,page:1},x.editdialog=m,x.downloadfile=u,x.deleteconfirm=p,x.success=g,x.getSounds=h,x.createOrEditSound=v,x.deleteSound=b,x.exportSelectedSounds=f,x.deleteSelectedSounds=E,x.deselectSounds=y,x.selectAllSounds=A,x.uploadSound=C;var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sounds","api","msUtils","toasty"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var t=["wav","mp3","gsm"];if(_.includes(t,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return d.uploadSounds.unshift(a),!0}return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+t.join()}),!1}function s(){d.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},d.ngFlow.flow.upload()}function r(e,t){d.sounds.unshift(JSON.parse(t)),angular.forEach(d.uploadSounds,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="sound"}})}function l(){t.hide()}var d=this;d.errors=[],d.title="TOOLS.UPLOAD_SOUND",d.sounds=a,d.uploadSounds=[],d.sound={},d.ngFlowOptions={chunkSize:15728640,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,target:"api/sounds"},d.ngFlow={flow:{}},d.dropping=!1,d.fileAdded=o,d.upload=s,d.fileSuccess=r,d.closeDialog=l}e.$inject=["$cookies","$mdDialog","toasty","sounds","api"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.tag.save(p.tag).$promise.then(function(e){p.tags.unshift(e),i.success({title:"Tag properly created",msg:p.tag.name?p.tag.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.tag.update({id:p.tag.id},p.tag).$promise.then(function(e){var t=_.find(p.tags,{id:e.id});t&&_.merge(t,e),i.success({title:"Tag properly saved!",msg:p.tag.name?p.tag.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.tag.delete({id:p.tag.id}).$promise.then(function(){_.remove(p.tags,{id:p.tag.id}),i.success({title:"Tag properly deleted!",msg:(p.tag.name||"tag")+" has been deleted!"}),u(p.tag)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TAG",p.tag=angular.copy(s),p.tags=o,p.newTag=!1,p.tag||(p.tag={},p.title="TOOLS.NEW_TAG",p.newTag=!0),p.addNewTag=l,p.saveTag=d,p.deleteTag=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","tags","tag","api"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{tag:e,tags:A.tags.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the tag?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.tags=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.tag.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:t,tags:A.tags.rows}})}function v(e){l.tag.delete({id:e.id}).$promise.then(function(){_.remove(A.tags.rows,{id:e.id}),A.tags.count-=1,A.tags.rows.length||A.getTags(),c.success({title:"Tag deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtag",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTags);return A.selectedTags=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+A.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTags.forEach(function(e){v(e)}),A.selectedTags=[]})}function E(){A.selectedTags=[]}function y(){A.selectedTags=A.tags.rows}var A=this;A.tags=r||{count:0,rows:[]},A.table="tags",A.listOrder="",A.listOrderAsc=null,A.selectedTags=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTags=g,A.createOrEditTag=h,A.deleteTag=v,A.exportSelectedTags=b,A.deleteSelectedTags=f,A.deselectTags=E,A.selectAllTags=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","tags","api","msUtils","toasty"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.template.save(p.template).$promise.then(function(e){p.templates.unshift(e),i.success({title:"Template properly created",msg:p.template.name?p.template.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.template.update({id:p.template.id},p.template).$promise.then(function(e){var t=_.find(p.templates,{id:e.id});t&&_.merge(t,e),i.success({title:"Template properly saved!",msg:p.template.name?p.template.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.template.delete({id:p.template.id}).$promise.then(function(){_.remove(p.templates,{id:p.template.id}),i.success({title:"Template properly deleted!",msg:(p.template.name||"template")+" has been deleted!"}),u(p.template)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TEMPLATE",p.template=angular.copy(s),p.templates=o,p.newTemplate=!1,p.template||(p.template={},p.title="TOOLS.NEW_TEMPLATE",p.newTemplate=!0),p.addNewTemplate=l,p.saveTemplate=d,p.deleteTemplate=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","templates","template","api"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{template:e,templates:A.templates.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the template?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.templates=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.template.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:t,templates:A.templates.rows}})}function v(e){l.template.delete({id:e.id}).$promise.then(function(){_.remove(A.templates.rows,{id:e.id}),A.templates.count-=1,A.templates.rows.length||A.getTemplates(),c.success({title:"Template deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplate",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTemplates);return A.selectedTemplates=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+A.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTemplates.forEach(function(e){v(e)}),A.selectedTemplates=[]})}function E(){A.selectedTemplates=[]}function y(){A.selectedTemplates=A.templates.rows}var A=this;A.templates=r||{count:0,rows:[]},A.table="templates",A.listOrder="",A.listOrderAsc=null,A.selectedTemplates=[],A.query={fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTemplates=g,A.createOrEditTemplate=h,A.deleteTemplate=v,A.exportSelectedTemplates=b,A.deleteSelectedTemplates=f,A.deselectTemplates=E,A.selectAllTemplates=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","templates","api","msUtils","toasty"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.save(p.trigger).$promise.then(function(e){p.triggers.unshift(e),i.success({title:"Trigger properly created",msg:p.trigger.name?p.trigger.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.trigger.update({id:p.trigger.id},p.trigger).$promise.then(function(e){var t=_.find(p.triggers,{id:e.id});t&&_.merge(t,e),i.success({title:"Trigger properly saved!",msg:p.trigger.name?p.trigger.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The trigger will be deleted.").ariaLabel("Delete Trigger").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.trigger.delete({id:p.trigger.id}).$promise.then(function(){_.remove(p.triggers,{id:p.trigger.id}),i.success({title:"Trigger properly deleted!",msg:(p.trigger.name||"trigger")+" has been deleted!"}),u(p.trigger)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TRIGGER",p.trigger=angular.copy(s),p.triggers=o,p.newTrigger=!1,p.trigger||(p.trigger={channel:"voice"},p.title="TOOLS.NEW_TRIGGER",p.newTrigger=!0),p.addNewTrigger=l,p.saveTrigger=d,p.deleteTrigger=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","triggers","trigger","api"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.ActionId=h.trigger.id,h.getTriggerActions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the action?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete action").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerActions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getActions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{action:t,actions:h.triggerActions.rows}})}function p(e){r.action.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerActions.rows,{id:e.id}),h.triggerActions.count-=1,h.triggerActions.rows.length||h.getTriggerActions(),s.success({title:"Action deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected actions?").htmlContent("<b>"+h.selectedTriggerActions.length+" selected</b> will be deleted.").ariaLabel("delete actions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerActions.forEach(function(e){p(e)}),h.selectedTriggerActions=[]})}var h=this;h.trigger={},h.triggerActions={count:0,rows:[]},h.selectedTriggerActions=[],h.query={fields:"createdAt,updatedAt,id,action,data1,data1,data1,data2,data2,data1,data2,data2,data2,data2,data3,data3,data3,data3,data1,data2,data2,data3,data2,data2,data2,createdAt",limit:10,page:1},h.arrayaction=_.keyBy([{option:"CONTACT_MANAGER",value:"'contactManager'"},{option:"INTEGRATIONS",value:"'integration'"},{option:"MOTION_BAR",value:"'motionbar'"},{option:"JSCRIPTY",value:"'jscripty'"},{option:"URL_FORWARD",value:"'urlForward'"},{option:"BROWSER",value:"'browser'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.browserValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.urlForwardValues=_.keyBy([{option:"GET",value:"'GET'"},{option:"POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.integrationValues=_.keyBy([{option:"Zendesk",value:"'zendesk'"},{option:"Salesforce",value:"'salesforce'"},{option:"SugarCRM",value:"'sugarcrm'"},{option:"Freshdesk",value:"'freshdesk'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.motionbarValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"},{option:"Windows App",value:"'2'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerActions=m,h.createOrEditTriggerAction=u,h.deleteTriggerAction=p,h.deleteSelectedTriggerActions=g,r.cmList.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.zendeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.salesforceAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.sugarcrmAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.freshdeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.zendeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.salesforceConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.sugarcrmConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.freshdeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.templates=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerActions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAction({id:t.params.id},p.action).$promise.then(function(e){p.actions.unshift(e),i.success({title:"Action properly created",msg:p.action.name?p.action.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.action.update({id:p.action.id},p.action).$promise.then(function(e){var t=_.find(p.actions,{id:e.id});t&&_.merge(t,e),i.success({title:"Action properly saved!",msg:p.action.name?p.action.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The action will be deleted.").ariaLabel("Delete Action").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.action.delete({id:p.action.id}).$promise.then(function(){_.remove(p.actions,{id:p.action.id}),i.success({title:"Action properly deleted!",msg:(p.action.name||"action")+" has been deleted!"}),u(p.action)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ACTION",p.action=angular.copy(s),p.actions=o,p.newAction=!1,p.action||(p.action={},p.title="TOOLS.NEW_ACTION",p.newAction=!0),t.params.id&&(p.action.ActionId=t.params.id),p.addNewAction=l,p.saveAction=d,p.deleteAction=c,p.getDateFromString=m,p.closeDialog=u,r.cmList.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","actions","action","api"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.TriggerAllId=h.trigger.id,h.getTriggerAllConditions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the allCondition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete allCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerAllConditions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getAllConditions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{allCondition:t,allconditions:h.triggerAllConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerAllConditions.rows,{id:e.id}),h.triggerAllConditions.count-=1,h.triggerAllConditions.rows.length||h.getTriggerAllConditions(),s.success({title:"AllCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected allconditions?").htmlContent("<b>"+h.selectedTriggerAllConditions.length+" selected</b> will be deleted.").ariaLabel("delete allconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerAllConditions.forEach(function(e){p(e)}),h.selectedTriggerAllConditions=[]})}var h=this;h.trigger={},h.triggerAllConditions={count:0,rows:[]},h.selectedTriggerAllConditions=[],h.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},h.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayvalue=_.keyBy([{option:"Abandon",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Reject",value:"'rejected'"},{option:"Ring",value:"'called'"},{option:"Answer",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerAllConditions=m,h.createOrEditTriggerAllCondition=u,h.deleteTriggerAllCondition=p,h.deleteSelectedTriggerAllConditions=g,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){h.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerAllConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAllCondition({id:t.params.id},p.allCondition).$promise.then(function(e){p.allconditions.unshift(e),i.success({title:"AllCondition properly created",msg:p.allCondition.name?p.allCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(e){var t=_.find(p.allconditions,{id:e.id});t&&_.merge(t,e),i.success({title:"AllCondition properly saved!",msg:p.allCondition.name?p.allCondition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The allCondition will be deleted.").ariaLabel("Delete AllCondition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.condition.delete({id:p.allCondition.id}).$promise.then(function(){_.remove(p.allconditions,{id:p.allCondition.id}),i.success({title:"AllCondition properly deleted!",msg:(p.allCondition.name||"allCondition")+" has been deleted!"}),u(p.allCondition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ALLCONDITION",p.allCondition=angular.copy(s),p.allconditions=o,p.newAllCondition=!1,p.allCondition||(p.allCondition={field:"queue",operator:"equals",value:"equals"},p.title="TOOLS.NEW_ALLCONDITION",p.newAllCondition=!0),t.params.id&&(p.allCondition.TriggerAllId=t.params.id),p.addNewAllCondition=l,p.saveAllCondition=d,p.deleteAllCondition=c,p.getDateFromString=m,p.closeDialog=u,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","allconditions","allCondition","api"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.TriggerAnyId=h.trigger.id,h.getTriggerAnyConditions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the anyCondition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete anyCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerAnyConditions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getAnyConditions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{anyCondition:t,anyconditions:h.triggerAnyConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerAnyConditions.rows,{id:e.id}),h.triggerAnyConditions.count-=1,h.triggerAnyConditions.rows.length||h.getTriggerAnyConditions(),s.success({title:"AnyCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected anyconditions?").htmlContent("<b>"+h.selectedTriggerAnyConditions.length+" selected</b> will be deleted.").ariaLabel("delete anyconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerAnyConditions.forEach(function(e){p(e)}),h.selectedTriggerAnyConditions=[]})}var h=this;h.trigger={},h.triggerAnyConditions={count:0,rows:[]},h.selectedTriggerAnyConditions=[],h.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},h.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayvalue=_.keyBy([{option:"Abandon",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Reject",value:"'rejected'"},{option:"Ring",value:"'called'"},{option:"Answer",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerAnyConditions=m,h.createOrEditTriggerAnyCondition=u,h.deleteTriggerAnyCondition=p,h.deleteSelectedTriggerAnyConditions=g,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){h.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerAnyConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAnyCondition({id:t.params.id},p.anyCondition).$promise.then(function(e){p.anyconditions.unshift(e),i.success({title:"AnyCondition properly created",msg:p.anyCondition.name?p.anyCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(e){var t=_.find(p.anyconditions,{id:e.id});t&&_.merge(t,e),i.success({title:"AnyCondition properly saved!",msg:p.anyCondition.name?p.anyCondition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The anyCondition will be deleted.").ariaLabel("Delete AnyCondition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.condition.delete({id:p.anyCondition.id}).$promise.then(function(){_.remove(p.anyconditions,{id:p.anyCondition.id}),i.success({title:"AnyCondition properly deleted!",msg:(p.anyCondition.name||"anyCondition")+" has been deleted!"}),u(p.anyCondition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ANYCONDITION",p.anyCondition=angular.copy(s),p.anyconditions=o,p.newAnyCondition=!1,p.anyCondition||(p.anyCondition={field:"queue",operator:"equals",value:"equals"},p.title="TOOLS.NEW_ANYCONDITION",p.newAnyCondition=!0),t.params.id&&(p.anyCondition.TriggerAnyId=t.params.id),p.addNewAnyCondition=l,p.saveAnyCondition=d,p.deleteAnyCondition=c,p.getDateFromString=m,p.closeDialog=u,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","anyconditions","anyCondition","api"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.triggers")}function r(){i.trigger.update({id:l.trigger.id},l.trigger).$promise.then(function(){a.success({title:"Trigger updated!",msg:l.trigger.name?l.trigger.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.trigger=e.params.trigger||o||{},l.selectedTab=e.params.tab||0,l.gotoTriggers=s,l.saveTrigger=r}e.$inject=["$state","$mdDialog","$document","toasty","api","trigger"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.triggers.edit",{id:e.id,trigger:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the trigger?").htmlContent("<b>"+(e.name||"trigger")+"</b> will be deleted.").ariaLabel("delete trigger").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.triggers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.trigger.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:t,triggers:A.triggers.rows}})}function v(e){l.trigger.delete({id:e.id}).$promise.then(function(){_.remove(A.triggers.rows,{id:e.id}),A.triggers.count-=1,A.triggers.rows.length||A.getTriggers(),c.success({title:"Trigger deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTriggers);return A.selectedTriggers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected triggers?").htmlContent("<b>"+A.selectedTriggers.length+" selected</b> will be deleted.").ariaLabel("delete Triggers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTriggers.forEach(function(e){v(e)}),A.selectedTriggers=[]})}function E(){A.selectedTriggers=[]}function y(){A.selectedTriggers=A.triggers.rows}var A=this;A.triggers=r||{count:0,rows:[]},A.table="triggers",A.listOrder="",A.listOrderAsc=null,A.selectedTriggers=[],A.query={fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,page:1},A.arraychannel=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTriggers=g,A.createOrEditTrigger=h,A.deleteTrigger=v,A.exportSelectedTriggers=b,A.deleteSelectedTriggers=f,A.deselectTriggers=E,A.selectAllTriggers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTriggers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","triggers","api","msUtils","toasty"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trunk.save(p.trunk).$promise.then(function(e){p.trunks.unshift(e),i.success({title:"Trunk properly created",msg:p.trunk.name?p.trunk.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.trunk.update({id:p.trunk.id},p.trunk).$promise.then(function(e){var t=_.find(p.trunks,{id:e.id});t&&_.merge(t,e),i.success({title:"Trunk properly saved!",msg:p.trunk.name?p.trunk.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.trunk.delete({id:p.trunk.id}).$promise.then(function(){_.remove(p.trunks,{id:p.trunk.id}),i.success({title:"Trunk properly deleted!",msg:(p.trunk.name||"trunk")+" has been deleted!"}),u(p.trunk)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TRUNK",p.trunk=angular.copy(s),p.trunks=o,p.newTrunk=!1,p.trunk||(p.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes"},p.title="TOOLS.NEW_TRUNK",p.newTrunk=!0),p.addNewTrunk=l,p.saveTrunk=d,p.deleteTrunk=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","trunks","trunk","api"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.trunks")}function r(){i.trunk.update({id:l.trunk.id},l.trunk).$promise.then(function(){a.success({title:"Trunk updated!",msg:l.trunk.name?l.trunk.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.trunk=e.params.trunk||o||{},l.selectedTab=e.params.tab||0,l.gotoTrunks=s,l.saveTrunk=r,i.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","trunk"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.trunks.edit",{id:e.id,trunk:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the trunk?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.trunks=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.trunk.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:t,trunks:A.trunks.rows}})}function v(e){l.trunk.delete({id:e.id}).$promise.then(function(){_.remove(A.trunks.rows,{id:e.id}),A.trunks.count-=1,A.trunks.rows.length||A.getTrunks(),c.success({title:"Trunk deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTrunks);return A.selectedTrunks=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+A.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTrunks.forEach(function(e){v(e)}),A.selectedTrunks=[]})}function E(){A.selectedTrunks=[]}function y(){A.selectedTrunks=A.trunks.rows}var A=this;A.trunks=r||{count:0,rows:[]},A.table="trunks",A.listOrder="",A.listOrderAsc=null,A.selectedTrunks=[],A.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTrunks=g,A.createOrEditTrunk=h,A.deleteTrunk=v,A.exportSelectedTrunks=b,A.deleteSelectedTrunks=f,A.deselectTrunks=E,A.selectAllTrunks=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","trunks","api","msUtils","toasty"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.variable.save(p.variable).$promise.then(function(e){p.variables.unshift(e),i.success({title:"Variable properly created",msg:p.variable.name?p.variable.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.variable.update({id:p.variable.id},p.variable).$promise.then(function(e){var t=_.find(p.variables,{id:e.id});t&&_.merge(t,e),i.success({title:"Variable properly saved!",msg:p.variable.name?p.variable.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.variable.delete({id:p.variable.id}).$promise.then(function(){_.remove(p.variables,{id:p.variable.id}),i.success({title:"Variable properly deleted!",msg:(p.variable.name||"variable")+" has been deleted!"}),u(p.variable)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_VARIABLE",p.variable=angular.copy(s),p.variables=o,p.newVariable=!1,p.variable||(p.variable={},p.title="TOOLS.NEW_VARIABLE",p.newVariable=!0),p.addNewVariable=l,p.saveVariable=d,p.deleteVariable=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","variables","variable","api"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{variable:e,variables:A.variables.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the variable?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.variables=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.variable.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:t,variables:A.variables.rows}})}function v(e){l.variable.delete({id:e.id}).$promise.then(function(){_.remove(A.variables.rows,{id:e.id}),A.variables.count-=1,A.variables.rows.length||A.getVariables(),c.success({title:"Variable deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariable",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVariables);return A.selectedVariables=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+A.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVariables.forEach(function(e){v(e)}),A.selectedVariables=[]})}function E(){A.selectedVariables=[]}function y(){A.selectedVariables=A.variables.rows}var A=this;A.variables=r||{count:0,rows:[]},A.table="variables",A.listOrder="",A.listOrderAsc=null,A.selectedVariables=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getVariables=g,A.createOrEditVariable=h,A.deleteVariable=v,A.exportSelectedVariables=b,A.deleteSelectedVariables=f,A.deselectVariables=E,A.selectAllVariables=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","variables","api","msUtils","toasty"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.chanSpies.edit",{id:e.id,chanSpy:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chanSpy?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chanSpies=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceChanSpy.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:t,chanSpies:A.chanSpies.rows}})}function v(e){l.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(A.chanSpies.rows,{id:e.id}),A.chanSpies.count-=1,A.chanSpies.rows.length||A.getChanSpies(),c.success({title:"chanSpy deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChanSpies);return A.selectedChanSpies=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+A.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChanSpies.forEach(function(e){v(e)}),A.selectedChanSpies=[]})}function E(){A.selectedChanSpies=[]}function y(){A.selectedChanSpies=A.chanSpies.rows}var A=this;A.chanSpies=r||{count:0,rows:[]},A.table="chanSpies",A.listOrder="",A.listOrderAsc=null,A.selectedChanSpies=[],A.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},A.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChanSpies=g,A.createOrEditchanSpy=h,A.deletechanSpy=v,A.exportSelectedChanSpies=b,A.deleteSelectedChanSpies=f,A.deselectChanSpies=E,A.selectAllChanSpies=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chanSpies","api","msUtils","toasty"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceChanSpy.save(p.chanSpy).$promise.then(function(e){p.chanSpies.unshift(e),i.success({title:"chanSpy properly created",msg:p.chanSpy.name?p.chanSpy.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceChanSpy.update({id:p.chanSpy.id},p.chanSpy).$promise.then(function(e){var t=_.find(p.chanSpies,{id:e.id});t&&_.merge(t,e),i.success({title:"chanSpy properly saved!",msg:p.chanSpy.name?p.chanSpy.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceChanSpy.delete({id:p.chanSpy.id}).$promise.then(function(){_.remove(p.chanSpies,{id:p.chanSpy.id}),i.success({title:"chanSpy properly deleted!",msg:(p.chanSpy.name||"chanSpy")+" has been deleted!"}),u(p.chanSpy)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_CHANSPY",p.chanSpy=angular.copy(s),p.chanSpies=o,p.newchanSpy=!1,p.chanSpy||(p.chanSpy={},p.title="VOICE.NEW_CHANSPY",p.newchanSpy=!0),p.addNewchanSpy=l,p.savechanSpy=d,p.deletechanSpy=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chanSpies","chanSpy","api"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.chanSpies")}function r(){i.voiceChanSpy.update({id:l.chanSpy.id},l.chanSpy).$promise.then(function(){a.success({title:"chanSpy updated!",msg:l.chanSpy.name?l.chanSpy.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.chanSpy=e.params.chanSpy||o||{},l.selectedTab=e.params.tab||0,l.gotoChanSpies=s,l.savechanSpy=r}e.$inject=["$state","$mdDialog","$document","toasty","api","chanSpy"],angular.module("app.voice").controller("ChanSpyController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{context:e,contexts:A.contexts.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the context?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.contexts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceContext.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:t,contexts:A.contexts.rows}})}function v(e){l.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(A.contexts.rows,{id:e.id}),A.contexts.count-=1,A.contexts.rows.length||A.getContexts(),c.success({title:"Context deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceContext",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedContexts);return A.selectedContexts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+A.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedContexts.forEach(function(e){v(e)}),A.selectedContexts=[]})}function E(){A.selectedContexts=[]}function y(){A.selectedContexts=A.contexts.rows}var A=this;A.contexts=r||{count:0,rows:[]},A.table="contexts",A.listOrder="",A.listOrderAsc=null,A.selectedContexts=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getContexts=g,A.createOrEditContext=h,A.deleteContext=v,A.exportSelectedContexts=b,A.deleteSelectedContexts=f,A.deselectContexts=E,A.selectAllContexts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","contexts","api","msUtils","toasty"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceContext.save(p.context).$promise.then(function(e){p.contexts.unshift(e),i.success({title:"Context properly created",msg:p.context.name?p.context.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceContext.update({id:p.context.id},p.context).$promise.then(function(e){var t=_.find(p.contexts,{id:e.id});t&&_.merge(t,e),i.success({title:"Context properly saved!",msg:p.context.name?p.context.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceContext.delete({id:p.context.id}).$promise.then(function(){_.remove(p.contexts,{id:p.context.id}),i.success({title:"Context properly deleted!",msg:(p.context.name||"context")+" has been deleted!"}),u(p.context)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_CONTEXT",p.context=angular.copy(s),p.contexts=o,p.newContext=!1,p.context||(p.context={},p.title="VOICE.NEW_CONTEXT",p.newContext=!0),p.addNewContext=l,p.saveContext=d,p.deleteContext=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","contexts","context","api"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.inboundroute).$promise.then(function(e){p.inboundroutes.unshift(e),i.success({title:"InboundRoute properly created",msg:p.inboundroute.name?p.inboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.inboundroute.id},p.inboundroute).$promise.then(function(e){var t=_.find(p.inboundroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"InboundRoute properly saved!",msg:p.inboundroute.name?p.inboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The inboundroute will be deleted.").ariaLabel("Delete InboundRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.inboundroute.id}).$promise.then(function(){_.remove(p.inboundroutes,{id:p.inboundroute.id}),i.success({title:"InboundRoute properly deleted!",msg:(p.inboundroute.name||"inboundroute")+" has been deleted!"}),u(p.inboundroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_INBOUNDROUTE",p.inboundroute=angular.copy(s),p.inboundroutes=o,p.newInboundRoute=!1,p.inboundroute||(p.inboundroute={appdata:"Inbound Call",type:"inbound",context:"from-voip-provider"},p.title="VOICE.NEW_INBOUNDROUTE",p.newInboundRoute=!0),p.addNewInboundRoute=l,p.saveInboundRoute=d,p.deleteInboundRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","inboundroutes","inboundroute","api"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.inboundroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getInboundRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.inboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.inboundrouteApps.rows.length){var o=g.inboundrouteApps.rows[i]?g.inboundrouteApps.rows[i]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundrouteApp:o}}).then(function(e){e&&(e.id?g.inboundrouteApps.rows[i]=e:g.inboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.inboundrouteApps.rows.length){var i=g.inboundrouteApps.rows[a]?g.inboundrouteApps.rows[a]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"inbound",app:"Set",appdata:"CDR(type)=inbound",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:i++,VoiceExtensionId:g.inboundroute.id});for(var s=0,r=0;s<g.inboundrouteApps.rows.length;s++,r=0){var l=g.inboundrouteApps.rows[s],d=[],c=[];l.intervals="*,*,*,*"!==l.interval?[l.interval]:l.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:l.IntervalId}),"interval"):[],l.context=g.inboundroute.context,l.exten=g.inboundroute.exten,l.hasOwnProperty("answer")&&t.includes(l.app.toLowerCase())&&"custom"!==l.appType&&(!n&&l.answer&&(n=!0,d.push({type:l.type,app:"Answer",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.inboundroute.id})),n||a||l.answer||(a=!0,d.push({type:l.type,app:"Progress",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.inboundroute.id})));for(var m=0;m<l.intervals.length;m++){var u=i+l.intervals.length,p=m===l.intervals.length-1?i+d.length+c.length+2:i+m+1;d.splice(m,0,{type:"inbound",app:"GotoIfTime",appdata:l.intervals[m]+"?"+g.inboundroute.context+",${EXTEN},"+u+":"+g.inboundroute.context+",${EXTEN},"+p,exten:g.inboundroute.exten,context:g.inboundroute.context,priority:i+m,VoiceExtensionId:g.inboundroute.id})}l.priority=d.length?_.last(d).priority+1:i,i=(c.length?_.last(c).priority:l.priority)+1,o=_.concat(o,d,[l],c)}o.push({type:"inbound",app:"Hangup",exten:g.inboundroute.exten,context:g.inboundroute.context,priority:i,VoiceExtensionId:g.inboundroute.id}),e.voiceExtension.addApplications({id:g.inboundroute.id},_.sortBy(o,"priority")).$promise.then(function(e){g.inboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.inboundrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.inboundrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedInboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInboundRouteApps.forEach(function(e){_.remove(g.inboundrouteApps.rows,{id:e.id})}),g.selectedInboundRouteApps=[],l()})}var g=this;g.inboundroute={},g.inboundrouteApps={count:0,rows:[]},g.selectedInboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-voip-provider",type:"Inbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",options:"xX",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",required:!0,type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-voip-provider",type:"Inbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"custom",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-voip-provider",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInboundRouteApps=m,g.editInboundRouteApp=s,g.editInterval=r,g.deleteInboundRouteApp=u,g.deleteSelectedInboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInboundRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.inboundroutes")}function r(){i.voiceExtension.update({id:l.inboundroute.id},l.inboundroute).$promise.then(function(){a.success({title:"InboundRoute updated!",msg:l.inboundroute.name?l.inboundroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.inboundroute=e.params.inboundroute||o||{},l.selectedTab=e.params.tab||0,l.gotoInboundRoutes=s,l.saveInboundRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","inboundroute"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.inboundroutes.edit",{id:e.id,inboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the inboundroute?").htmlContent("<b>"+(e.name||"inboundroute")+"</b> will be deleted.").ariaLabel("delete inboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.inboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundroute:t,inboundroutes:A.inboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.inboundroutes.rows,{id:e.id}),A.inboundroutes.count-=1,A.inboundroutes.rows.length||A.getInboundRoutes(),c.success({title:"InboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedInboundRoutes);return A.selectedInboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected inboundroutes?").htmlContent("<b>"+A.selectedInboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInboundRoutes.forEach(function(e){v(e)}),A.selectedInboundRoutes=[]})}function E(){A.selectedInboundRoutes=[]}function y(){A.selectedInboundRoutes=A.inboundroutes.rows}var A=this;A.inboundroutes=r||{count:0,rows:[]},A.table="inboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInboundRoutes=g,A.createOrEditInboundRoute=h,A.deleteInboundRoute=v,A.exportSelectedInboundRoutes=b,A.deleteSelectedInboundRoutes=f,A.deselectInboundRoutes=E,A.selectAllInboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getInboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","inboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.internalroute).$promise.then(function(e){p.internalroutes.unshift(e),i.success({title:"InternalRoute properly created",msg:p.internalroute.name?p.internalroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.internalroute.id},p.internalroute).$promise.then(function(e){var t=_.find(p.internalroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"InternalRoute properly saved!",msg:p.internalroute.name?p.internalroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The internalroute will be deleted.").ariaLabel("Delete InternalRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.internalroute.id}).$promise.then(function(){_.remove(p.internalroutes,{id:p.internalroute.id}),i.success({title:"InternalRoute properly deleted!",msg:(p.internalroute.name||"internalroute")+" has been deleted!"}),u(p.internalroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_INTERNALROUTE",p.internalroute=angular.copy(s),p.internalroutes=o,p.newInternalRoute=!1,p.internalroute||(p.internalroute={appdata:"Internal Call",type:"internal",context:"from-sip"},p.title="VOICE.NEW_INTERNALROUTE",p.newInternalRoute=!0),p.addNewInternalRoute=l,p.saveInternalRoute=d,p.deleteInternalRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","internalroutes","internalroute","api"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.internalroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getInternalRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.internalrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.internalrouteApps.rows.length){var o=g.internalrouteApps.rows[i]?g.internalrouteApps.rows[i]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalrouteApp:o}}).then(function(e){e&&(e.id?g.internalrouteApps.rows[i]=e:g.internalrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.internalrouteApps.rows.length){var i=g.internalrouteApps.rows[a]?g.internalrouteApps.rows[a]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"internal",app:"Set",appdata:"CDR(type)=internal",context:g.internalroute.context,exten:g.internalroute.exten,priority:i++,VoiceExtensionId:g.internalroute.id});for(var s=0,r=0;s<g.internalrouteApps.rows.length;s++,r=0){var l=g.internalrouteApps.rows[s],d=[],c=[];l.intervals="*,*,*,*"!==l.interval?[l.interval]:l.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:l.IntervalId}),"interval"):[],l.context=g.internalroute.context,l.exten=g.internalroute.exten,l.hasOwnProperty("answer")&&t.includes(l.app.toLowerCase())&&"custom"!==l.appType&&(!n&&l.answer&&(n=!0,d.push({type:l.type,app:"Answer",context:g.internalroute.context,exten:g.internalroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.internalroute.id})),n||a||l.answer||(a=!0,d.push({type:l.type,app:"Progress",context:g.internalroute.context,exten:g.internalroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.internalroute.id})));for(var m=0;m<l.intervals.length;m++){var u=i+l.intervals.length,p=m===l.intervals.length-1?i+d.length+c.length+2:i+m+1;d.splice(m,0,{type:"internal",app:"GotoIfTime",appdata:l.intervals[m]+"?"+g.internalroute.context+",${EXTEN},"+u+":"+g.internalroute.context+",${EXTEN},"+p,exten:g.internalroute.exten,context:g.internalroute.context,priority:i+m,VoiceExtensionId:g.internalroute.id})}l.priority=d.length?_.last(d).priority+1:i,i=(c.length?_.last(c).priority:l.priority)+1,o=_.concat(o,d,[l],c)}o.push({type:"internal",app:"Hangup",exten:g.internalroute.exten,context:g.internalroute.context,priority:i,VoiceExtensionId:g.internalroute.id}),e.voiceExtension.addApplications({id:g.internalroute.id},_.sortBy(o,"priority")).$promise.then(function(e){g.internalrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.internalrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.internalrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedInternalRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInternalRouteApps.forEach(function(e){_.remove(g.internalrouteApps.rows,{id:e.id})}),g.selectedInternalRouteApps=[],l()})}var g=this;g.internalroute={},g.internalrouteApps={count:0,rows:[]},g.selectedInternalRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Internal",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"Custom",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInternalRouteApps=m,g.editInternalRouteApp=s,g.editInterval=r,g.deleteInternalRouteApp=u,g.deleteSelectedInternalRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InternalRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInternalRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.internalroutes")}function r(){i.voiceExtension.update({id:l.internalroute.id},l.internalroute).$promise.then(function(){a.success({title:"InternalRoute updated!",msg:l.internalroute.name?l.internalroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.internalroute=e.params.internalroute||o||{},l.selectedTab=e.params.tab||0,l.gotoInternalRoutes=s,l.saveInternalRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","internalroute"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.internalroutes.edit",{id:e.id,internalroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the internalroute?").htmlContent("<b>"+(e.name||"internalroute")+"</b> will be deleted.").ariaLabel("delete internalroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.internalroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalroute:t,internalroutes:A.internalroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.internalroutes.rows,{id:e.id}),A.internalroutes.count-=1,A.internalroutes.rows.length||A.getInternalRoutes(),c.success({title:"InternalRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedInternalRoutes);return A.selectedInternalRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected internalroutes?").htmlContent("<b>"+A.selectedInternalRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InternalRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInternalRoutes.forEach(function(e){v(e)}),A.selectedInternalRoutes=[]})}function E(){A.selectedInternalRoutes=[]}function y(){A.selectedInternalRoutes=A.internalroutes.rows}var A=this;A.internalroutes=r||{count:0,rows:[]},A.table="internalroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInternalRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInternalRoutes=g,A.createOrEditInternalRoute=h,A.deleteInternalRoute=v,A.exportSelectedInternalRoutes=b,A.deleteSelectedInternalRoutes=f,A.deselectInternalRoutes=E,A.selectAllInternalRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getInternalRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","internalroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.save(p.musiconhold).$promise.then(function(e){p.musiconholds.unshift(e),i.success({title:"MusicOnHold properly created",msg:p.musiconhold.name?p.musiconhold.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMusicOnHold.update({id:p.musiconhold.id},p.musiconhold).$promise.then(function(e){var t=_.find(p.musiconholds,{id:e.id});t&&_.merge(t,e),i.success({title:"MusicOnHold properly saved!",msg:p.musiconhold.name?p.musiconhold.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMusicOnHold.delete({id:p.musiconhold.id}).$promise.then(function(){_.remove(p.musiconholds,{id:p.musiconhold.id}),i.success({title:"MusicOnHold properly deleted!",msg:(p.musiconhold.name||"musiconhold")+" has been deleted!"}),u(p.musiconhold)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_MUSICONHOLD",p.musiconhold=angular.copy(s),p.musiconholds=o,p.newMusicOnHold=!1,p.musiconhold||(p.musiconhold={mode:"files"},p.title="VOICE.NEW_MUSICONHOLD",p.newMusicOnHold=!0),p.addNewMusicOnHold=l,p.saveMusicOnHold=d,p.deleteMusicOnHold=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","musiconholds","musiconhold","api"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.musiconhold=e,h.query.id=h.musiconhold.id,h.query.VoiceMusicOnHoldId=h.musiconhold.id,h.getMusicOnHoldMohSounds()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.musiconholdMohSounds=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceMusicOnHold.getSounds(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mohSound:t,mohSounds:h.musiconholdMohSounds.rows}})}function p(e){r.voiceMusicOnHold.removeSound({id:n.params.id,id2:e.id}).$promise.then(function(){_.remove(h.musiconholdMohSounds.rows,{id:e.id}),h.musiconholdMohSounds.count-=1,h.musiconholdMohSounds.rows.length||h.getMusicOnHoldMohSounds(),s.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+h.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedMusicOnHoldMohSounds.forEach(function(e){p(e)}),h.selectedMusicOnHoldMohSounds=[]})}var h=this;h.musiconhold={},h.musiconholdMohSounds={count:0,rows:[]},h.selectedMusicOnHoldMohSounds=[],h.query={fields:"createdAt,updatedAt,id,audio,id,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getMusicOnHoldMohSounds=m,h.createOrEditMusicOnHoldMohSound=u,h.deleteMusicOnHoldMohSound=p,h.deleteSelectedMusicOnHoldMohSounds=g,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){h.sounds=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getMusicOnHoldMohSounds())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.addSound({id:t.params.id},p.mohSound).$promise.then(function(e){p.mohSounds.unshift(e),i.success({title:"MohSound properly created",msg:p.mohSound.name?p.mohSound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMusicOnHold.update({id:p.mohSound.id},p.mohSound).$promise.then(function(e){var t=_.find(p.mohSounds,{id:e.id});t&&_.merge(t,e),i.success({title:"MohSound properly saved!",msg:p.mohSound.name?p.mohSound.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMusicOnHold.delete({id:p.mohSound.id}).$promise.then(function(){_.remove(p.mohSounds,{id:p.mohSound.id}),i.success({title:"MohSound properly deleted!",msg:(p.mohSound.name||"mohSound")+" has been deleted!"}),u(p.mohSound)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_MOHSOUND",p.mohSound=angular.copy(s),p.mohSounds=o,p.newMohSound=!1,p.mohSound||(p.mohSound={},p.title="VOICE.NEW_MOHSOUND",p.newMohSound=!0),t.params.id&&(p.mohSound.VoiceMusicOnHoldId=t.params.id),p.addNewMohSound=l,p.saveMohSound=d,p.deleteMohSound=c,p.getDateFromString=m,p.closeDialog=u,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){p.sounds=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mohSounds","mohSound","api"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.musiconholds")}function r(){i.voiceMusicOnHold.update({id:l.musiconhold.id},l.musiconhold).$promise.then(function(){a.success({title:"MusicOnHold updated!",msg:l.musiconhold.name?l.musiconhold.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.musiconhold=e.params.musiconhold||o||{},l.selectedTab=e.params.tab||0,l.gotoMusicOnHolds=s,l.saveMusicOnHold=r}e.$inject=["$state","$mdDialog","$document","toasty","api","musiconhold"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the musiconhold?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.musiconholds=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMusicOnHold.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:t,musiconholds:A.musiconholds.rows}})}function v(e){l.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(A.musiconholds.rows,{id:e.id}),A.musiconholds.count-=1,A.musiconholds.rows.length||A.getMusicOnHolds(),c.success({title:"MusicOnHold deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMusicOnHolds);return A.selectedMusicOnHolds=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+A.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMusicOnHolds.forEach(function(e){v(e)}),A.selectedMusicOnHolds=[]})}function E(){A.selectedMusicOnHolds=[]}function y(){A.selectedMusicOnHolds=A.musiconholds.rows}var A=this;A.musiconholds=r||{count:0,rows:[]},A.table="musiconholds",A.listOrder="",A.listOrderAsc=null,A.selectedMusicOnHolds=[],A.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMusicOnHolds=g,A.createOrEditMusicOnHold=h,A.deleteMusicOnHold=v,A.exportSelectedMusicOnHolds=b,A.deleteSelectedMusicOnHolds=f,A.deselectMusicOnHolds=E,A.selectAllMusicOnHolds=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","musiconholds","api","msUtils","toasty"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.outboundroute).$promise.then(function(e){p.outboundroutes.unshift(e),i.success({title:"OutboundRoute properly created",msg:p.outboundroute.name?p.outboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.outboundroute.id},p.outboundroute).$promise.then(function(e){var t=_.find(p.outboundroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"OutboundRoute properly saved!",msg:p.outboundroute.name?p.outboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The outboundroute will be deleted.").ariaLabel("Delete OutboundRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.outboundroute.id}).$promise.then(function(){_.remove(p.outboundroutes,{id:p.outboundroute.id}),i.success({title:"OutboundRoute properly deleted!",msg:(p.outboundroute.name||"outboundroute")+" has been deleted!"}),u(p.outboundroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_OUTBOUNDROUTE",p.outboundroute=angular.copy(s),p.outboundroutes=o,p.newOutboundRoute=!1,p.outboundroute||(p.outboundroute={appdata:"Outbound Call",type:"outbound",context:"from-sip"},p.title="VOICE.NEW_OUTBOUNDROUTE",p.newOutboundRoute=!0),p.addNewOutboundRoute=l,p.saveOutboundRoute=d,p.deleteOutboundRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","outboundroutes","outboundroute","api"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.outboundroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getOutboundRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.outboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.outboundrouteApps.rows.length){var o=g.outboundrouteApps.rows[i]?g.outboundrouteApps.rows[i]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundrouteApp:o}}).then(function(e){e&&(e.id?g.outboundrouteApps.rows[i]=e:g.outboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.outboundrouteApps.rows.length){var i=g.outboundrouteApps.rows[a]?g.outboundrouteApps.rows[a]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=2,n=[];n.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+g.outboundroute.id,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id});for(var a=0,i=0;a<g.outboundrouteApps.rows.length;a++,i=0){var o=g.outboundrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=g.outboundroute.context,o.exten=g.outboundroute.exten,o.hasOwnProperty("tag")&&o.tag&&"--"!==o.tag&&s.push({type:o.type,app:"Set",appdata:"CDR(tag)="+o.tag,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("callerID")&&o.callerID&&s.push({type:o.type,app:"Set",appdata:"CALLERID(all)="+o.callerID,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("record")&&o.hasOwnProperty("recordingFormat")&&o.record&&s.push({type:o.type,app:"MixMonitor",appdata:"${UNIQUEID}."+o.recordingFormat+",ab",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("record")&&o.hasOwnProperty("recordingFormat")&&o.record&&r.push({type:o.type,app:"StopMixMonitor",appdata:null,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i+++1,VoiceExtensionId:g.outboundroute.id});for(var l=0;l<o.intervals.length;l++){var d=t+o.intervals.length,c=l===o.intervals.length-1?t+s.length+r.length+2:t+l+1;s.splice(l,0,{type:"outbound",app:"GotoIfTime",appdata:o.intervals[l]+"?"+g.outboundroute.context+",${EXTEN},"+d+":"+g.outboundroute.context+",${EXTEN},"+c,exten:g.outboundroute.exten,context:g.outboundroute.context,priority:t+l,VoiceExtensionId:g.outboundroute.id})}o.priority=s.length?_.last(s).priority+1:t,t=(r.length?_.last(r).priority:o.priority)+1,n=_.concat(n,s,[o],r)}n.push({type:"outbound",app:"Hangup",exten:g.outboundroute.exten,context:g.outboundroute.context,priority:t,VoiceExtensionId:g.outboundroute.id}),e.voiceExtension.addApplications({id:g.outboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){g.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.outboundrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.outboundrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedOutboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedOutboundRouteApps.forEach(function(e){_.remove(g.outboundrouteApps.rows,{id:e.id})}),g.selectedOutboundRouteApps=[],l()})}var g=this;g.outboundroute={},g.outboundrouteApps={count:0,rows:[]},g.selectedOutboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Outbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",appType:"agi",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Outbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Outbound",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]},{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}},{name:"tags",route:"tag",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Caller_ID",name:"callerID",type:"text"},{title:"Prefix",name:"prefix",type:"text"},{title:"CutDigits",name:"cutdigits",type:"number",min:0},{title:"Recording",name:"recordingFormat",type:"select",values:[{option:"none",value:"'none'"},{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],defaultValue:"none",required:!0,general:!0,help:!0},{title:"Tags",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",defaultValues:[{value:"'--'",option:"None"}]},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:null,type:"Outbound",appType:"Custom",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getOutboundRouteApps=m,g.editOutboundRouteApp=s,g.editInterval=r,g.deleteOutboundRouteApp=u,g.deleteSelectedOutboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("OutboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOutboundRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.outbounddial.type.toLowerCase()&&"outboundDial"===s.outbounddial.appType&&(s.outbounddial.phone=s.outbounddial.cutdigits?(s.outbounddial.prefix||"")+"${EXTEN:"+s.outbounddial.cutdigits+"}":(s.outbounddial.prefix||"")+"${EXTEN}",s.outbounddial.record="none"!==s.outbounddial.recordingFormat,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:null),s.outbounddial.appType.toLowerCase()){case"set":s.outbounddial.appdata=s.outbounddial.name+"="+s.outbounddial.value;break;case"custom":break;default:e[0]=["SIP",s.outbounddial.trunk,s.outbounddial.phone].join("/"),e[1]=s.outbounddial.timeout,e[2]=s.outbounddial.options,e[3]=s.outbounddial.url,s.outbounddial.appdata=e.join(",")}o(s.outbounddial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.outbounddial=angular.copy(n),s.outbounddial.appdata)switch(s.outbounddial.appType?s.outbounddial.appType.toLowerCase():s.outbounddial.app.toLowerCase()){case"custom":break;case"set":s.outbounddial.name=s.outbounddial.appdata.split("=")[0],s.outbounddial.value=s.outbounddial.appdata.split("=")[1];break;case"agi":s.outbounddial.project=s.outbounddial.appdata;break;default:var r=s.outbounddial.appdata.split(",");s.outbounddial.trunk=r[0].split("/")[1],s.outbounddial.phone=r[0].split("/")[2],s.outbounddial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.outbounddial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.outbounddial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.outbounddial.type.toLowerCase()&&"outbounddial"===s.outbounddial.appType.toLowerCase()&&(s.outbounddial.prefix=s.outbounddial.phone?s.outbounddial.phone.split("$")[0]:void 0,s.outbounddial.callerId=s.outbounddial.callerID?"CALLERID(all)="+s.outbounddial.callerID:void 0,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.tag.get({fields:"name",sort:"name"}).$promise.then(function(e){s.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppoutbounddialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.outboundroutes")}function r(){i.voiceExtension.update({id:l.outboundroute.id},l.outboundroute).$promise.then(function(){a.success({title:"OutboundRoute updated!",msg:l.outboundroute.name?l.outboundroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.outboundroute=e.params.outboundroute||o||{},l.selectedTab=e.params.tab||0,l.gotoOutboundRoutes=s,l.saveOutboundRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","outboundroute"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.outboundroutes.edit",{id:e.id,outboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the outboundroute?").htmlContent("<b>"+(e.name||"outboundroute")+"</b> will be deleted.").ariaLabel("delete outboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.outboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundroute:t,outboundroutes:A.outboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.outboundroutes.rows,{id:e.id}),A.outboundroutes.count-=1,A.outboundroutes.rows.length||A.getOutboundRoutes(),c.success({title:"OutboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOutboundRoutes);return A.selectedOutboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected outboundroutes?").htmlContent("<b>"+A.selectedOutboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete OutboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOutboundRoutes.forEach(function(e){v(e)}),A.selectedOutboundRoutes=[]})}function E(){A.selectedOutboundRoutes=[]}function y(){A.selectedOutboundRoutes=A.outboundroutes.rows}var A=this;A.outboundroutes=r||{count:0,rows:[]},A.table="outboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedOutboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOutboundRoutes=g,A.createOrEditOutboundRoute=h,A.deleteOutboundRoute=v,A.exportSelectedOutboundRoutes=b,A.deleteSelectedOutboundRoutes=f,A.deselectOutboundRoutes=E,A.selectAllOutboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOutboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","outboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],C))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+"  properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"inbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,C))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,C=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var x=!0,T=1;e.$watch("vm.query.filter",function(e,n){x?t(function(){x=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e){var t=_.find(l.calls.rows,{channel:e.channel});e.channelstatedesc=e.answered?"up":"ring",t?_.merge(t,e):l.calls.rows.push(e)}function r(e){var n=_.findIndex(l.calls.rows,{channel:e.channel});n>=0&&(l.calls.rows[n].status="hangup"),t(function(){l.calls.rows.splice(n,1)},5e3)}var l=this;l.calls=i||{rows:[],count:0},l.query={limit:10,page:1,limitOptions:[10,20,30]},l.channelStatus=o.channelStatusOut,l.onSave=s,l.onRemove=r,a.on("voice_outbound_channel:save",l.onSave),a.on("voice_outbound_channel:remove",l.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"inbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","unmanaged","sumHoldTime","sumDuration","sumBillable"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t<e.length;t+=1)for(var n=0;n<e[t].rows.length;n++)e[t].rows[n].paused&&E.queues[e[t].rows[n].VoiceQueueId].paused++,E.queues[e[t].rows[n].VoiceQueueId].loggedInDb++}).catch(function(e){console.error(e)})}function u(e){E.queues[e.id]&&_.merge(E.queues[e.id],_.pick(e,y))}function p(e){}function g(e){E.count=e.count,E.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function h(){E.query.offset=(E.query.page-1)*E.query.limit,c.hasRole("admin")?E.promise=r.voiceQueue.get(E.query,g).$promise:E.promise=r.user.getQueues(E.query,g).$promise}function v(e,t){n.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:_.values(E.queues)}})}function b(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:E.queues?E.queues.rows:[],realtime:!0}})}function f(e){return r.voiceQueue.update(e).$promise.then(function(){d.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){d.error({title:"Error creating queue!",msg:e.message})})}var E=this,y=["loggedIn","available","waiting","talking","originated","message","dialActive","dialMethod","Trunk"];E.count=o.count,E.queues=o?_.keyBy(o.rows?o.rows:[],"id"):{},E.rpcQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.hasRole("admin")?E.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:E.query={id:c.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1},E.success=g,E.getQueues=h,E.createOrEditVoiceQueue=v,E.agentAdd=b,E.updateQueue=f,E.onSave=u,E.onSaveMember=p,E.$onInit=m,l.on("voice_queue:save",E.onSave),l.on("userVoiceQueueRt:save",E.onSaveMember),l.on("userVoiceQueueRt:update",E.onSaveMember);var A=!0,C=1;e.$watch("vm.query.filter",function(e,n){A?t(function(){A=!1}):(n||(C=E.query.page),e!==n&&(E.query.page=1),e||(E.query.page=C),E.getQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("userVoiceQueueRt:save"),l.removeAllListeners("userVoiceQueueRt:update")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";function e(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}}angular.module("app.auth").factory("helperClasses",e)}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.queue_params":a.selectedTab=5;break;case"app.voice.realtime.outbound_calls":a.selectedTab=6;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.queue_params");break;case 6:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.telephones,function(e,t){p.rpcTelephones[t]&&_.merge(e,_.pick(p.rpcTelephones[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function c(e){p.telephones[e.id]&&_.merge(p.telephones[e.id],_.pick(e,g))}function m(e){p.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.get(p.query,m).$promise}var p=this,g=["fullname","internal","state","status"];p.count=a.count,p.attributes=["fullname","internal","state","status","address"],p.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTelephones=u,p.onSave=c,s.on("telephone:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTelephones())}),e.$on("$destroy",function(){s.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.trunks,function(e,t){p.rpcTrunks[t]&&_.merge(e,_.pick(p.rpcTrunks[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function c(e){p.trunks[e.id]&&_.merge(p.trunks[e.id],_.pick(e,g))}function m(e){p.count=e.count,p.trunks=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.trunk.get(p.query,m).$promise}var p=this,g=["status","stateRegistry","registry","host","port","internal","state","status"];p.count=a.count,p.trunks=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTrunks=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTrunks=u,p.onSave=c,s.on("trunk:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMail.save(p.voicemail).$promise.then(function(e){p.voicemails.unshift(e),i.success({title:"Voicemail properly created",msg:p.voicemail.name?p.voicemail.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMail.update({id:p.voicemail.id},p.voicemail).$promise.then(function(e){var t=_.find(p.voicemails,{id:e.id});t&&_.merge(t,e),i.success({title:"Voicemail properly saved!",msg:p.voicemail.name?p.voicemail.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMail.delete({id:p.voicemail.id}).$promise.then(function(){_.remove(p.voicemails,{id:p.voicemail.id}),i.success({title:"Voicemail properly deleted!",msg:(p.voicemail.name||"voicemail")+" has been deleted!"}),u(p.voicemail)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICEMAIL",p.voicemail=angular.copy(s),p.voicemails=o,p.newVoicemail=!1,p.voicemail||(p.voicemail={},p.title="VOICE.NEW_VOICEMAIL",p.newVoicemail=!0),p.addNewVoicemail=l,p.saveVoicemail=d,p.deleteVoicemail=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voicemails","voicemail","api"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.voicemail=e,h.query.id=h.voicemail.id,h.getVoicemailMessages()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete message").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.voicemailMessages=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceMail.getMessages(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:t,messages:h.voicemailMessages.rows}})}function p(e){r.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(h.voicemailMessages.rows,{id:e.id}),h.voicemailMessages.count-=1,h.voicemailMessages.rows.length||h.getVoicemailMessages(),s.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+h.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedVoicemailMessages.forEach(function(e){p(e)}),h.selectedVoicemailMessages=[]})}var h=this;h.voicemail={},h.voicemailMessages={count:0,rows:[]},h.selectedVoicemailMessages=[],h.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getVoicemailMessages=m,h.createOrEditVoicemailMessage=u,h.deleteVoicemailMessage=p,h.deleteSelectedVoicemailMessages=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getVoicemailMessages())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.voicemails")}function r(){i.voiceMail.update({id:l.voicemail.id},l.voicemail).$promise.then(function(){a.success({title:"Voicemail updated!",msg:l.voicemail.name?l.voicemail.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.voicemail=e.params.voicemail||o||{},l.selectedTab=e.params.tab||0,l.gotoVoicemails=s,l.saveVoicemail=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","voicemail"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voicemails.edit",{id:e.id,voicemail:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voicemail?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voicemails=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMail.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:t,voicemails:A.voicemails.rows}})}function v(e){l.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(A.voicemails.rows,{id:e.id}),A.voicemails.count-=1,A.voicemails.rows.length||A.getVoicemails(),c.success({title:"Voicemail deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVoicemails);return A.selectedVoicemails=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+A.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoicemails.forEach(function(e){v(e)}),A.selectedVoicemails=[]})}function E(){A.selectedVoicemails=[]}function y(){A.selectedVoicemails=A.voicemails.rows}var A=this;A.voicemails=r||{count:0,rows:[]},A.table="voicemails",A.listOrder="",A.listOrderAsc=null,A.selectedVoicemails=[],A.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},A.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getVoicemails=g,A.createOrEditVoicemail=h,A.deleteVoicemail=v,A.exportSelectedVoicemails=b,A.deleteSelectedVoicemails=f,A.deselectVoicemails=E,A.selectAllVoicemails=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicemails","api","msUtils","toasty"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.voiceQueue).$promise.then(function(e){p.voiceQueues.unshift(e),i.success({title:"VoiceQueue properly created",msg:p.voiceQueue.name?p.voiceQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceQueue.update({id:p.voiceQueue.id},p.voiceQueue).$promise.then(function(e){var t=_.find(p.voiceQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceQueue properly saved!",msg:p.voiceQueue.name?p.voiceQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceQueue.delete({id:p.voiceQueue.id}).$promise.then(function(){_.remove(p.voiceQueues,{id:p.voiceQueue.id}),i.success({title:"VoiceQueue properly deleted!",msg:(p.voiceQueue.name||"voiceQueue")+" has been deleted!"}),u(p.voiceQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICEQUEUE",p.voiceQueue=angular.copy(s),p.voiceQueues=o,p.newVoiceQueue=!1,p.voiceQueue||(p.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},p.title="VOICE.NEW_VOICEQUEUE",p.newVoiceQueue=!0),p.addNewVoiceQueue=l,p.saveVoiceQueue=d,p.deleteVoiceQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceQueues","voiceQueue","api"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.voiceQueue[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.voiceQueue=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:c.voiceQueue.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"VoiceQueue properly "+(a?"removed":"added"),msg:"VoiceQueue has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","voiceQueue","voiceQueues","realtime","$translate"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.voiceQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("VOICE.ALL_TEAMS"),labelSelected:i.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.voiceQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","voiceQueue","$translate"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[]}})}function r(e,a){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[],realtime:!1}})}function l(){e.go("app.voice.voiceQueues")}function d(){i.voiceQueue.update({id:c.voiceQueue.id},c.voiceQueue).$promise.then(function(){a.success({title:"VoiceQueue updated!",msg:c.voiceQueue.name?c.voiceQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.voiceQueue=e.params.voiceQueue||o||{},c.selectedTab=e.params.tab||0,c.teamadddialog=s,c.agentadddialog=r,c.gotoVoiceQueues=l,c.saveVoiceQueue=d,i.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.sound.get({fields:"name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.sounds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","voiceQueue"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e})}function u(e,t){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:x.voiceQueues?x.voiceQueues.rows:[]}})}function p(e,t){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:x.voiceQueues?x.voiceQueues.rows:[],realtime:!1}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the voiceQueue?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){x.voiceQueues=e||{count:0,rows:[]}}function v(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.voiceQueue.get(x.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:x.voiceQueues.rows}})}function f(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(x.voiceQueues.rows,{id:e.id}),x.voiceQueues.count-=1,x.voiceQueues.rows.length||x.getVoiceQueues(),c.success({title:"VoiceQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=_.clone(x.selectedVoiceQueues);return x.selectedVoiceQueues=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+x.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedVoiceQueues.forEach(function(e){f(e)}),x.selectedVoiceQueues=[]})}function A(){x.selectedVoiceQueues=[]}function C(){x.selectedVoiceQueues=x.voiceQueues.rows}var x=this;x.voiceQueues=r||{count:0,rows:[]},x.table="voiceQueues",x.listOrder="",x.listOrderAsc=null,x.selectedVoiceQueues=[],x.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",limit:10,page:1},x.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayjoinempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.editstate=m,x.teamadddialog=u,x.agentadddialog=p,x.deleteconfirm=g,x.success=h,x.getVoiceQueues=v,x.createOrEditVoiceQueue=b,x.deleteVoiceQueue=f,x.exportSelectedVoiceQueues=E,x.deleteSelectedVoiceQueues=y,x.deselectVoiceQueues=A,x.selectAllVoiceQueues=C;var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceQueues","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceRecording.save(p.voiceRecording).$promise.then(function(e){p.voiceRecordings.unshift(e),i.success({title:"VoiceRecording properly created",msg:p.voiceRecording.name?p.voiceRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceRecording.update({id:p.voiceRecording.id},p.voiceRecording).$promise.then(function(e){var t=_.find(p.voiceRecordings,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceRecording properly saved!",msg:p.voiceRecording.name?p.voiceRecording.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceRecording.delete({id:p.voiceRecording.id}).$promise.then(function(){_.remove(p.voiceRecordings,{id:p.voiceRecording.id}),i.success({title:"VoiceRecording properly deleted!",msg:(p.voiceRecording.name||"voiceRecording")+" has been deleted!"}),u(p.voiceRecording)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICERECORDING",p.voiceRecording=angular.copy(s),p.voiceRecordings=o,p.newVoiceRecording=!1,p.voiceRecording||(p.voiceRecording={},p.title="VOICE.NEW_VOICERECORDING",p.newVoiceRecording=!0),p.addNewVoiceRecording=l,p.saveVoiceRecording=d,p.deleteVoiceRecording=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceRecordings","voiceRecording","api"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,n){return l.voiceRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/voice/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voiceRecording?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voiceRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:t,voiceRecordings:A.voiceRecordings.rows}})}function v(e){l.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.voiceRecordings.rows,{id:e.id}),A.voiceRecordings.count-=1,A.voiceRecordings.rows.length||A.getVoiceRecordings(),c.success({title:"VoiceRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVoiceRecordings);return A.selectedVoiceRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+A.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoiceRecordings.forEach(function(e){v(e)}),A.selectedVoiceRecordings=[]})}function E(){A.selectedVoiceRecordings=[]}function y(){A.selectedVoiceRecordings=A.voiceRecordings.rows}var A=this;A.voiceRecordings=r||{count:0,rows:[]},A.table="voiceRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedVoiceRecordings=[],A.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getVoiceRecordings=g,A.createOrEditVoiceRecording=h,A.deleteVoiceRecording=v,A.exportSelectedVoiceRecordings=b,A.deleteSelectedVoiceRecordings=f,A.deselectVoiceRecordings=E,A.selectAllVoiceRecordings=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){return a.getCurrentUser()&&a.hasRole("agent")}this.isAgent=o,n.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return a.hasRole("agent")}}),n.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(100)&&!a.hasRole("admin")}}),n.saveItem("apps.dashboards.general",{id:101,title:"General",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(101)&&!a.hasRole("admin")}}),n.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(200)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.users",{id:201,title:"Users",translate:"STAFF.USERS",state:"app.staff.users",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(201)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.agents",{id:202,title:"Agents",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(202)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.telephones",{id:203,title:"Telephones",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(203)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.teams",{id:204,title:"Teams",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(204)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",weight:4,hidden:function(){return!i.cm||a.hasRole("agent")||!a.hasPermission(300)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(301)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(302)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",weight:4,hidden:function(){return a.hasRole("agent")||!a.hasPermission(304)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(303)&&!a.hasRole("admin")}}),n.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",weight:5,hidden:function(){return a.hasRole("agent")||!a.hasPermission(400)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(401)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.inboundroutes",{id:402,title:"InboundRoutes",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(402)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.outboundroutes",{id:403,title:"OutboundRoutes",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(403)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.internalroutes",{id:404,title:"InternalRoutes",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(404)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.contexts",{id:405,title:"Contexts",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(405)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(406)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(407)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(408)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(409)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.realtime",{id:410,title:"Realtime",translate:"VOICE.REALTIME",state:"app.voice.realtime",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(410)&&!a.hasRole("admin")}}),n.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",weight:6,hidden:function(){return!i.chat||a.hasRole("agent")||!a.hasPermission(500)&&!a.hasRole("admin")}}),n.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(501)&&!a.hasRole("admin")}}),n.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(502)&&!a.hasRole("admin")}}),n.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",weight:7,hidden:function(){return!i.license||a.hasRole("agent")||!a.hasPermission(600)&&!a.hasRole("admin")}}),n.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(601)&&!a.hasRole("admin")}}),n.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(602)&&!a.hasRole("admin")}}),n.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",weight:8,hidden:function(){return!i.messaging||a.hasRole("agent")||!a.hasPermission(700)&&!a.hasRole("admin")}}),n.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(701)&&!a.hasRole("admin")}}),n.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(702)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",weight:9,hidden:function(){return!i.openchannel||a.hasRole("agent")||!a.hasPermission(800)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(801)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(802)&&!a.hasRole("admin")}}),n.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",weight:10,hidden:function(){return!i.fax||a.hasRole("agent")||!a.hasPermission(900)&&!a.hasRole("admin")}}),n.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(901)&&!a.hasRole("admin")}}),n.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(902)&&!a.hasRole("admin")}}),n.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:11,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1e3)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.cannedAnswers",{id:1002,title:"CannedAnswers",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1002)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1003)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1004)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1005)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.schedules",{id:42,title:"Scheduler",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return a.hasRole("agent")||!a.hasPermission(42)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.sounds",{id:1006,title:"Sounds",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1006)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.tags",{id:1007,title:"Tags",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1007)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.templates",{id:1008,title:"Templates",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1008)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.triggers",{id:1009,title:"Triggers",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1009)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.trunks",{id:1010,title:"Trunks",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1010)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.variables",{id:1011,title:"Variables",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1011)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",weight:12,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1100)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1101)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1102)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1103)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:13,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1200)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1201)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1202)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.reports",{id:1203,title:"Reports",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1203)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:14,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1300)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1301)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1302)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1303)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.sugarcrmAccounts",{id:1304,title:"SugarcrmAccounts",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1304)&&!a.hasRole("admin")}}),n.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",weight:15,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1400)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.generals",{id:1401,title:"General",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1401)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1402)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.networks",{id:1403,title:"Networks",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1403)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!i.custom||a.hasRole("agent")||!a.hasPermission(1407)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.updates",{id:1404,title:"Updates",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!i.update||a.hasRole("agent")||!a.hasPermission(1404)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.license",{id:1405,title:"License",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1405)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.system",{id:1406,title:"System",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1406)&&!a.hasRole("admin")}}),n.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",weight:16,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1600)&&!a.hasRole("admin")}}),n.saveItem("apps.help.about",{id:1601,title:"About",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1601)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",weight:5,hidden:function(){return!i.dialer||a.hasRole("agent")||!a.hasPermission(1500)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1501)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1502)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1510)&&!a.hasRole("admin")}}),e.$on("$viewContentAnimationEnded",function(n){n.targetScope.$id===e.$id&&t.$broadcast("msSplashScreen::remove")})}e.$inject=["$scope","$rootScope","msNavigationService","Auth","license"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,t){function n(){i.folded=!i.folded}function a(){return i.setting.defaultHeaderWhiteLabel?"Motion":i.setting.headerWhiteLabel}var i=this;i.bodyEl=angular.element("body"),i.folded=!1,i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.toggleMsNavigationFolded=n,i.getLogo=a,e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","setting"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,t){var n=this;n.date=new Date,n.license=t,n.license.gray&&(n.license.deadline=moment(n.license.gray).add(7,"days").format("MMMM Do YYYY, HH:MM"))}e.$inject=["msApi","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,t){function n(e){o.chatActive=!o.chatActive,o.chatActive&&(o.replyMessage="",o.chat.contact=e,i(0))}function a(){""!==o.replyMessage&&(o.chat.contact.dialog||(o.chat.contact.dialog=[]),o.chat.contact.dialog.push({who:"user",message:o.replyMessage,time:"Just now"}),o.replyMessage="",i(400))}function i(e){var n=angular.element("#chat-dialog");t(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}var o=this;o.chat={},o.chatActive=!1,o.replyMessage="",e.request("quickPanel.contacts@get",{},function(e){o.contacts=e.data}),o.toggleChat=n,o.reply=a}e.$inject=["msApi","$timeout"],angular.module("app.quick-panel").controller("ChatTabController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id},{oldPassword:s.oldPassword,newPassword:s.password}).$promise.then(function(){t.show(t.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","$mdToast","api","user"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v){function b(e){return h.cmHopper.getDialerContacts({limit:1}).$promise.then(function(t){if(t&&t.count){var n=t.rows[0],a=n.Contact,i=a.fullName||a.lastName||a.phone,o=a.phone,s=l.confirm().title("Preview Call").clickOutsideToClose(!0).textContent("Do you want to call the contact "+i+" ("+o+")?").ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");l.show(s).then(function(){return h.cmHopper.callDialerContact({id:n.id}).$promise.then(function(e){console.log("data",e)}).catch(function(e){console.error(e)})}).catch(function(e){return h.cmHopper.update({id:n.id,active:!1}).$promise.then(function(){m.success({title:"Contact rejected",msg:"Contact "+a.phone+" properly rejected"})}).catch(function(e){m.error({title:e.message,msg:e.message})})})}else m.info({title:"No available contacts",msg:"No contacts found"})}).catch(function(e){console.error(e)})}function f(e){i(e).toggle()}function E(e){I.userStatus=e}function y(e){return p.logout(e).then(function(){return g.disconnect(),n.go("app.login")}).catch(function(e){console.error(e)})}function A(e){if(I.languages.hasOwnProperty(e.code))I.selectedLanguage=e,c.put("motion.language",e.code),o.use(e.code),"app.callysquare.projects.edit"===n.current.name&&r.location.reload();else{s.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}}function C(){I.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")}function x(){u.toggleFolded()}function T(e){for(var n=[],i=u.getFlatNavigation(),o=t.defer(),s=0;s<i.length;s++)i[s].uisref&&n.push(i[s]);return e&&(n=n.filter(function(t){if(angular.lowercase(t.title).search(angular.lowercase(e))>-1)return!0})),a(function(){o.resolve(n)},1e3),o.promise}function S(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}function O(e){l.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:I.user}})}function w(){return p.getCurrentUser()&&p.hasRole("agent")}function R(e){if(e.id===I.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online){var t=l.confirm().title(o.instant("TOOLBAR.WARNING")+"!").textContent(o.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")).ariaLabel(o.instant("TOOLBAR.WARNING")+"!").ok(o.instant("TOOLBAR.STAY_LOGGED")).cancel("Logout");l.show(t).then(function(){p.queueLogin()}).catch(function(e){y(!0)}).finally(function(){_.merge(I.user,e),p.updateCurrentUser(I.user)})}else _.merge(I.user,e),p.updateCurrentUser(I.user)}var I=this;e.global={search:""},I.license=v,I.bodyEl=angular.element("body"),I.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],I.languages={en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"}},I.toggleSidenav=f,I.logout=y,I.changeLanguage=A,I.setUserStatus=E,I.toggleHorizontalMobileMenu=C,I.toggleMsNavigationFolded=x,I.search=T,I.searchResultClick=S,I.changePassword=O,I.isAgent=w,I.onUserUpdate=R,I.preview=b,g.connect(),g.on("user:update",I.onUserUpdate),function(){I.user=p.getCurrentUser(),I.userStatus=I.userStatusOptions[0];var e=c.get("motion.language");e&&I.languages.hasOwnProperty(e)?I.selectedLanguage=I.languages[e]:I.selectedLanguage=I.languages[o.preferredLanguage()]}()}e.$inject=["$rootScope","$q","$state","$timeout","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var t=new Object,n=e.lastIndexOf("?");if(n>0)for(var a=e.substring(n+1).split("&"),i=0;i<a.length;i++)(n=a[i].indexOf("="))>0&&(t[a[i].substring(0,n)]=a[i].substring(n+1));return t}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE"),IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&0>navigator.userAgent.indexOf("Chrome/"),IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:0>document.location.href.indexOf("http://")&&0>document.location.href.indexOf("https://"),isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,t,n){if(n=n||document,mxClient.IS_IE6)n.write('<link rel="'+e+'" href="'+t+'" charset="ISO-8859-1" type="text/css"/>');else{var a=n.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",t),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),n.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,t=document.createElement("table");t.setAttribute("width","100%"),t.setAttribute("height","100%");var n=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),n.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),n.appendChild(a),t.appendChild(n),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=n=0,"number"==typeof window.innerWidth?(n=window.innerHeight,a=window.innerWidth):(n=document.documentElement.clientHeight||document.body.clientHeight,a=document.body.clientWidth),mxLog.window=new mxWindow(e,t,Math.max(0,a-320),Math.max(0,n-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var o=mxLog.window.getElement(),e=function(e,t){mxLog.textarea.style.height=Math.max(0,o.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,t){var n=document.createElement("button");mxUtils.write(n,e),mxEvent.addListener(n,"click",t),mxLog.td.appendChild(n)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,t){if(mxLog.TRACE){var n=0!=t?" ("+((new Date).getTime()-t)+" ms)":"";mxLog.writeln("Leaving "+e+n)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",t=0;t<arguments.length;t++)e+=arguments[t],t<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",t=0;t<arguments.length;t++)e+=arguments[t],t<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var t=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=t+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,t){var n=mxObjectIdentity.get(e),a=this.map[n];return this.map[n]=t,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var t=this.map[e];return delete this.map[e],t},mxDictionary.prototype.getKeys=function(){var e,t=[];for(e in this.map)t.push(e);return t},mxDictionary.prototype.getValues=function(){var e,t=[];for(e in this.map)t.push(this.map[e]);return t},mxDictionary.prototype.visit=function(e){for(var t in this.map)e(t,this.map[t])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,t){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(t)?e+mxResources.extension:null},getSpecialBundle:function(e,t){if(null==mxClient.languages||!this.isLanguageSupported(t)){var n=t.indexOf("-");0<n&&(t=t.substring(0,n))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(t)&&t!=mxClient.defaultLanguage?e+"_"+t+mxResources.extension:null},add:function(e,t){if((t=null!=t?t:mxClient.language.toLowerCase())!=mxConstants.NONE){var n=mxResources.getDefaultBundle(e,t);if(null!=n)try{var a=mxUtils.load(n);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(n=mxResources.getSpecialBundle(e,t)))try{(a=mxUtils.load(n)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var t=0;t<e.length;t++)if("#"!=e[t].charAt(0)){var n=e[t].indexOf("=");if(0<n){var a=e[t].substring(0,n),i=e[t].length;13==e[t].charCodeAt(i-1)&&i--,n=e[t].substring(n+1,i),this.resourcesEncoded?(n=n.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(n)):mxResources.resources[a]=n}}}},get:function(e,t,n){if(null==(e=mxResources.resources[e])&&(e=n),null!=e&&null!=t){n=[];for(var a=null,i=0;i<e.length;i++){var o=e.charAt(i);"{"==o?a="":null!=a&&"}"==o?(0<=(a=parseInt(a)-1)&&a<t.length&&n.push(t[a]),a=null):null!=a?a+=o:n.push(o)}e=n.join("")}return e}};mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,t,n,a){this.x=e,this.y=t,this.width=n,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=t,this.y=n,this.width=a-t,this.height=e-n}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(e,t,n){var a=0,i=function(){for(var s=!1,r=0;r<t.length;r++){var l=t[r];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var d=e.getView().getState(l.cell||l.child,!1);if(null!=d)if(s=!0,l.constructor!=mxGeometryChange||e.model.isEdge(l.cell))mxUtils.setOpacity(d.shape.node,100*a/10);else{var c=e.getView().scale,m=(l.geometry.x-l.previous.x)*c,u=(l.geometry.y-l.previous.y)*c,p=(l.geometry.width-l.previous.width)*c,c=(l.geometry.height-l.previous.height)*c;0==a?(d.x-=m,d.y-=u,d.width-=p,d.height-=c):(d.x+=m/10,d.y+=u/10,d.width+=p/10,d.height+=c/10),e.cellRenderer.redraw(d),mxEffects.cascadeOpacity(e,l.cell,100*a/10)}}}10>a&&s?(a++,window.setTimeout(i,o)):null!=n&&n()},o=30;i()},cascadeOpacity:function(e,t,n){for(var a=e.model.getChildCount(t),i=0;i<a;i++){var o=e.model.getChildAt(t,i),s=e.getView().getState(o);null!=s&&(mxUtils.setOpacity(s.shape.node,n),mxEffects.cascadeOpacity(e,o,n))}if(null!=(t=e.model.getEdges(t)))for(i=0;i<t.length;i++)null!=(a=e.getView().getState(t[i]))&&mxUtils.setOpacity(a.shape.node,n)},fadeOut:function(e,t,n,a,i,o){a=a||40,i=i||30;var s=t||100;if(mxUtils.setOpacity(e,s),o||null==o){var r=function(){s=Math.max(s-a,0),mxUtils.setOpacity(e,s),0<s?window.setTimeout(r,i):(e.style.visibility="hidden",n&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",n&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var t=e.length,n=0;n<t;n+=1)mxUtils.removeCursors(e[n])},getCurrentStyle:function(){return mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null}}(),hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,t){return function(){return t.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,t,n){var a=e.getAttribute(t);if(null!=a&&a==n)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,t,n)))return a;e=e.nextSibling}return null},findNodeByAttribute:function(){return 9<=document.documentMode?function(e,t,n){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(t)==n)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,t,n),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,t,n){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+t+"='"+n+"']")}:function(e,t,n){return null==e?null:e.ownerDocument.evaluate("//*[@"+t+"='"+n+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()}}(),getFunctionName:function(e){n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n),n=e.substring(n,t)}return n},indexOf:function(e,t){if(null!=e&&null!=t)for(var n=0;n<e.length;n++)if(e[n]==t)return n;return-1},remove:function(e,t){var n=null;if("object"==typeof t)for(var a=mxUtils.indexOf(t,e);0<=a;)t.splice(a,1),n=e,a=mxUtils.indexOf(t,e);for(var i in t)t[i]==e&&(delete t[i],n=e);return n},isNode:function(e,t,n,a){return!(null==e||isNaN(e.nodeType)||null!=t&&e.nodeName.toLowerCase()!=t.toLowerCase())&&(null==n||e.getAttribute(n)==a)},getChildNodes:function(e,t){t=t||mxConstants.NODETYPE_ELEMENT;for(var n=[],a=e.firstChild;null!=a;)a.nodeType==t&&n.push(a),a=a.nextSibling;return n},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:function(){return mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?function(e){var t=mxUtils.createXmlDocument();return t.async="false",t.loadXML(e),t}:function(e){return(new DOMParser).parseFromString(e,"text/xml")}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0}(),getPrettyXml:function(e,t,n){var a=[];if(null!=e)if(t=t||"  ",n=n||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(n+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var o=0;o<i.length;o++){var s=mxUtils.htmlEntities(i[o].nodeValue);a.push(" "+i[o].nodeName+'="'+s+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,t,n+t)),i=i.nextSibling;a.push(n+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,t){for(var n=t?e.previousSibling:e.nextSibling;null!=n&&n.nodeType==mxConstants.NODETYPE_TEXT;){var a=t?n.previousSibling:n.nextSibling,i=mxUtils.getTextContent(n);0==mxUtils.trim(i).length&&n.parentNode.removeChild(n),n=a}},htmlEntities:function(e,t){return e=(e||"").replace(/&/g,"&amp;"),e=e.replace(/"/g,"&quot;"),e=e.replace(/\'/g,"&#39;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),(null==t||t)&&(e=e.replace(/\n/g,"&#xa;")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,t){var n="";return null!=e&&(n=e.xml,n=null==n?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):n.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),n=n.replace(/\n/g,t||"&#xa;")},getTextContent:function(e){var t="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),t=e.nodeValue||""),t},getInnerHtml:function(){return mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(e){if(null!=e){if(null!=e.outerHTML)return e.outerHTML;var t=[];t.push("<"+e.nodeName);var n=e.attributes;if(null!=n)for(var a=0;a<n.length;a++){var i=n[a].nodeValue;null!=i&&0<i.length&&(t.push(" "),t.push(n[a].nodeName),t.push('="'),t.push(i),t.push('"'))}return 0==e.innerHTML.length?t.push("/>"):(t.push(">"),t.push(e.innerHTML),t.push("</"+e.nodeName+">")),t.join("")}return""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""}}(),write:function(e,t){var n=e.ownerDocument.createTextNode(t);return null!=e&&e.appendChild(n),n},writeln:function(e,t){var n=e.ownerDocument.createTextNode(t);return null!=e&&(e.appendChild(n),e.appendChild(document.createElement("br"))),n},br:function(e,t){t=t||1;for(var n=null,a=0;a<t;a++)null!=e&&(n=e.ownerDocument.createElement("br"),e.appendChild(n));return n},button:function(e,t,n){return n=null!=n?n:document,n=n.createElement("button"),mxUtils.write(n,e),mxEvent.addListener(n,"click",function(e){t(e)}),n},para:function(e,t){var n=document.createElement("p");return mxUtils.write(n,t),null!=e&&e.appendChild(n),n},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,t,n,a,i){return mxUtils.link(e,t,function(){n.execute(a)},i)},linkInvoke:function(e,t,n,a,i,o){return mxUtils.link(e,t,function(){n[a](i)},o)},link:function(e,t,n,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",n),mxUtils.write(i,t),null!=e&&e.appendChild(i),i},fit:function(e){var t=parseInt(e.offsetLeft),n=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,o=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);t+n>o&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,o-n)+"px"),(t=parseInt(e.offsetTop))+(n=parseInt(e.offsetHeight))>(o=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,o-n)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return t.initWithPath(e),t.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(t,1,4,null),(t=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),t.read(t.available())):(mxUtils.alert("File not found."),"")}return t=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1),e=t.readAll(),t.close(),e},save:function(e,t){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);n.initWithPath(e),n.exists()||n.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(n,34,4,null),a.write(t,t.length),a.flush(),a.close()}else(n=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(t),n.Close()},saveAs:function(e){var t=document.createElement("iframe");t.setAttribute("src",""),t.style.visibility="hidden",document.body.appendChild(t);try{if(mxClient.IS_NS){var n=t.contentDocument;n.open(),n.write(e),n.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),t.focus(),saveDocument(n)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(n=t.contentWindow.document).write(e),n.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(t)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var t=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(t){var n=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(n){n.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,n.setTransferData("text/unicode",a,2*e.length),t.setData(n,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,t,n){return new mxXmlRequest(e,null,"GET").send(t,n)},post:function(e,t,n,a){return new mxXmlRequest(e,t).send(n,a)},submit:function(e,t,n,a){return new mxXmlRequest(e,t).simulate(n,a)},loadInto:function(e,t,n){mxClient.IS_IE?t.onreadystatechange=function(){4==t.readyState&&n()}:t.addEventListener("load",n,!1),t.load(e)},getValue:function(e,t,n){return null==(e=null!=e?e[t]:null)&&(e=n),e},getNumber:function(e,t,n){return null==(e=null!=e?e[t]:null)&&(e=n||0),Number(e)},getColor:function(e,t,n){return e=null!=e?e[t]:null,null==e?e=n:e==mxConstants.NONE&&(e=null),e},clone:function(e,t,n){n=null!=n&&n;i=null;if(null!=e&&"function"==typeof e.constructor){var a,i=new e.constructor;for(a in e)a!=mxObjectIdentity.FIELD_NAME&&(null==t||0>mxUtils.indexOf(t,a))&&(i[a]=n||"object"!=typeof e[a]?e[a]:mxUtils.clone(e[a]))}return i},equalPoints:function(e,t){if(null==e&&null!=t||null!=e&&null==t||null!=e&&null!=t&&e.length!=t.length)return!1;if(null!=e&&null!=t)for(var n=0;n<e.length;n++)if(e[n]==t[n]||null!=e[n]&&!e[n].equals(t[n]))return!1;return!0},equalEntries:function(e,t){if(null==e&&null!=t||null!=e&&null==t||null!=e&&null!=t&&e.length!=t.length)return!1;if(null!=e&&null!=t)for(var n in e)if(e[n]!=t[n])return!1;return!0},extend:function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},toString:function(e){var t,n="";for(t in e)try{if(null==e[t])n+=t+" = [null]\n";else if("function"==typeof e[t])n+=t+" => [Function]\n";else if("object"==typeof e[t])var a=mxUtils.getFunctionName(e[t].constructor),n=n+(t+" => [")+a+"]\n";else n+=t+" = "+e[t]+"\n"}catch(e){n+=t+"="+e.message}return n},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,t,n,a,i,o,s,r,l){if(r-=e,l-=t,0===n||0===a)return b;n=Math.abs(n),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(b=Math.sin(i*Math.PI/180))*c;d=-1*b*d+m*c;1<(v=(c=i*i)/(h=n*n)+(g=d*d)/(E=a*a))?(n*=Math.sqrt(v),a*=Math.sqrt(v),o=0):(v=1,o===s&&(v=-1),o=v*Math.sqrt((h*E-h*g-E*c)/(h*g+E*c))),r=m*(c=o*n*d/a)-b*(g=-1*o*a*i/n)+r/2,l=b*c+m*g+l/2,o=0<=(h=Math.atan2((d-g)/a,(i-c)/n)-Math.atan2(0,1))?h:2*Math.PI+h,i=0<=(h=Math.atan2((-d-g)/a,(-i-c)/n)-Math.atan2((d-g)/a,(i-c)/n))?h:2*Math.PI+h,0==s&&0<i?i-=2*Math.PI:0!=s&&0>i&&(i+=2*Math.PI),s=2*i/Math.PI,i/=s=Math.ceil(0>s?-1*s:s),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*n,m*=a,n*=b,a*=b;for(var u=Math.cos(o),p=Math.sin(o),g=-d*(c*p+a*u),h=-d*(n*p-m*u),v=E=0,b=[],f=0;f<s;++f){o+=i;var E=c*(u=Math.cos(o))-a*(p=Math.sin(o))+r,v=n*u+m*p+l,y=-d*(c*p+a*u),u=-d*(n*p-m*u);b[p=6*f]=Number(g+e),b[p+1]=Number(h+t),b[p+2]=Number(E-y+e),b[p+3]=Number(v-u+t),b[p+4]=Number(E+e),b[p+5]=Number(v+t),g=E+y,h=v+u}return b},getBoundingBox:function(e,t){a=null;if(null!=e&&null!=t&&0!=t){var n=mxUtils.toRadians(t),a=Math.cos(n),i=Math.sin(n),o=new mxPoint(e.x+e.width/2,e.y+e.height/2),s=new mxPoint(e.x,e.y),r=new mxPoint((n=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y),s=mxUtils.getRotatedPoint(s,a,i,o),n=mxUtils.getRotatedPoint(n,a,i,o),r=mxUtils.getRotatedPoint(r,a,i,o),l=mxUtils.getRotatedPoint(l,a,i,o);(a=new mxRectangle(s.x,s.y,0,0)).add(new mxRectangle(n.x,n.y,0,0)),a.add(new mxRectangle(r.x,r.y,0,0)),a.add(new mxRectangle(l.x,l.y,0,0))}return a},getRotatedPoint:function(e,t,n,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return e=e.y-a.y,new mxPoint(i*t-e*n+a.x,e*t+i*n+a.y)},getPortConstraints:function(e,t,n,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){var t=0,t=(t=(t=(e&mxConstants.DIRECTION_MASK_WEST)<<3)|(e&mxConstants.DIRECTION_MASK_NORTH)<<1)|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1;return t|=(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,t,n){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],o=null,s=1;s<e.absolutePoints.length;s++){var r=e.absolutePoints[s],i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,t,n);(null==o||i<o)&&(o=i,a=s-1),i=r}return a},rectangleIntersectsSegment:function(e,t,n){var a=e.y,i=e.x,o=a+e.height,s=i+e.width;e=t.x;var r=n.x;if(t.x>n.x&&(e=n.x,r=t.x),r>s&&(r=s),e<i&&(e=i),e>r)return!1;var i=t.y,s=n.y,l=n.x-t.x;return 1e-7<Math.abs(l)&&(n=(n.y-t.y)/l,t=t.y-n*t.x,i=n*e+t,s=n*r+t),i>s&&(t=s,s=i,i=t),s>o&&(s=o),i<a&&(i=a),!(i>s)},contains:function(e,t,n){return e.x<=t&&e.x+e.width>=t&&e.y<=n&&e.y+e.height>=n},intersects:function(e,t){var n=e.width,a=e.height,i=t.width,o=t.height;if(0>=i||0>=o||0>=n||0>=a)return!1;var s=e.x,r=e.y,l=t.x,d=t.y,o=o+d,n=n+s,a=a+r;return((i=i+l)<l||i>s)&&(o<d||o>r)&&(n<s||n>l)&&(a<r||a>d)},intersectsHotspot:function(e,t,n,a,i,o){if(a=null!=a?a:1,i=null!=i?i:0,o=null!=o?o:0,0<a){var s=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(s=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<o&&(l=Math.min(l,o),d=Math.min(d,o)),a=new mxRectangle(s-l/2,r-d/2,l,d),0!=(s=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-s),o=Math.sin(-s),s=new mxPoint(e.getCenterX(),e.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(t,n),i,o,s),t=e.x,n=e.y),mxUtils.contains(a,t,n)}return!0},getOffset:function(e,t){var n=0,a=0;if(null!=t&&t)var i=document.body,o=document.documentElement,n=n+(i.scrollLeft||o.scrollLeft),a=a+(i.scrollTop||o.scrollTop);for(;e.offsetParent;)n+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(n,a)},getScrollOrigin:function(e){for(var t=document.body,n=document.documentElement,a=new mxPoint(t.scrollLeft||n.scrollLeft,t.scrollTop||n.scrollTop);null!=e&&e!=t&&e!=n;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,t,n){var a=mxUtils.getScrollOrigin(e);return e=mxUtils.getOffset(e),e.x-=a.x,e.y-=a.y,new mxPoint(t-e.x,n-e.y)},ltrim:function(e,t){return e.replace(RegExp("^["+(t||"\\s")+"]+","g"),"")},rtrim:function(e,t){return e.replace(RegExp("["+(t||"\\s")+"]+$","g"),"")},trim:function(e,t){return mxUtils.ltrim(mxUtils.rtrim(e,t),t)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&0>e.indexOf("0x")&&0>e.indexOf("0X"))&&!isNaN(e)},mod:function(e,t){return(e%t+t)%t},intersection:function(e,t,n,a,i,o,s,r){var l=(r-o)*(n-e)-(s-i)*(a-t);return s=((s-i)*(t-o)-(r-o)*(e-i))/l,i=((n-e)*(t-o)-(a-t)*(e-i))/l,0<=s&&1>=s&&0<=i&&1>=i?new mxPoint(e+s*(n-e),t+s*(a-t)):null},ptSegDistSq:function(e,t,n,a,i,o){return n-=e,a-=t,i-=e,o-=t,0>=i*n+o*a?n=0:(i=n-i,o=a-o,e=i*n+o*a,n=0>=e?0:e*e/(n*n+a*a)),0>(i=i*i+o*o-n)&&(i=0),i},relativeCcw:function(e,t,n,a,i,o){return n-=e,a-=t,i-=e,o-=t,0==(e=i*a-o*n)&&0<(e=i*n+o*a)&&0>(e=(i-n)*n+(o-a)*a)&&(e=0),0>e?-1:0<e?1:0},animateChanges:function(e,t){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,t,n){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,t,n,a,i,o){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,t){mxUtils.isVml(e)?e.style.filter=100<=t?null:"alpha(opacity="+t/5+")":mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?e.style.filter=100<=t?null:"alpha(opacity="+t+")":e.style.opacity=t/100},createImage:function(e){var t=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((t=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),t.style.borderStyle="none"):((t=document.createElement("img")).setAttribute("src",e),t.setAttribute("border","0")),t},sortCells:function(e,t){t=null==t||t;var n=new mxDictionary;return e.sort(function(e,a){var i=n.get(e);null==i&&(i=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),n.put(e,i));var o=n.get(a);return null==o&&(o=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),n.put(a,o)),i=mxCellPath.compare(i,o),0==i?0:0<i==t?1:-1}),e},getStylename:function(e){return null!=e&&0>(e=e.split(";")[0]).indexOf("=")?e:""},getStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)0>e[n].indexOf("=")&&t.push(e[n])}return t},indexOfStylename:function(e,t){if(null!=e&&null!=t)for(var n=e.split(";"),a=0,i=0;i<n.length;i++){if(n[i]==t)return a;a+=n[i].length+1}return-1},addStylename:function(e,t){return 0>mxUtils.indexOfStylename(e,t)&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=t),e},removeStylename:function(e,t){var n=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=t&&n.push(a[i]);return n.join(";")},removeAllStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)0<=e[n].indexOf("=")&&t.push(e[n])}return t.join(";")},setCellStyles:function(e,t,n,a){if(null!=t&&0<t.length){e.beginUpdate();try{for(var i=0;i<t.length;i++)if(null!=t[i]){var o=mxUtils.setStyle(e.getStyle(t[i]),n,a);e.setStyle(t[i],o)}}finally{e.endUpdate()}}},setStyle:function(e,t,n){var a=null!=n&&(void 0===n.length||0<n.length);if(null==e||0==e.length)a&&(e=t+"="+n);else{var i=e.indexOf(t+"=");0>i?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+t+"="+n):(t=a?t+"="+n:"",n=e.indexOf(";",i),a||n++,e=e.substring(0,i)+t+(n>i?e.substring(n):""))}return e},setCellStyleFlags:function(e,t,n,a,i){if(null!=t&&0<t.length){e.beginUpdate();try{for(var o=0;o<t.length;o++)if(null!=t[o]){var s=mxUtils.setStyleFlag(e.getStyle(t[o]),n,a,i);e.setStyle(t[o],s)}}finally{e.endUpdate()}}},setStyleFlag:function(e,t,n,a){if(null==e||0==e.length)e=a||null==a?t+"="+n:t+"=0";else{var i=e.indexOf(t+"=");if(0>i)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+t+"="+n:e+i+t+"=0";else{var o=e.indexOf(";",i),s="",s=0>o?e.substring(i+t.length+1):e.substring(i+t.length+1,o),s=null==a?parseInt(s)^n:a?parseInt(s)|n:parseInt(s)&~n;e=e.substring(0,i)+t+"="+s+(0<=o?e.substring(o):"")}}return e},getAlignmentAsPoint:function(e,t){var n=0,a=0;return e==mxConstants.ALIGN_CENTER?n=-.5:e==mxConstants.ALIGN_RIGHT&&(n=-1),t==mxConstants.ALIGN_MIDDLE?a=-.5:t==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(n,a)},getSizeForString:function(e,t,n){t=null!=t?t:mxConstants.DEFAULT_FONTSIZE,n=null!=n?n:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=n,a.style.fontSize=Math.round(t)+"px",a.style.lineHeight=Math.round(t*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,t,n,a,i){a=null!=a?a:0,i=null!=i?i:0,t=null!=t?t:1,null==n&&(n=[e.getModel().getRoot()]);var o=e.getView(),s=null,r=o.isEventsEnabled();o.setEventsEnabled(!1);var l=o.drawPane,d=o.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(o.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),o.canvas.appendChild(o.drawPane),o.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(o.drawPane=o.drawPane.cloneNode(!1),o.canvas.appendChild(o.drawPane),o.overlayPane=o.overlayPane.cloneNode(!1)),o.canvas.appendChild(o.overlayPane);var c=o.getTranslate();o.translate=new mxPoint(a,i),t=new mxTemporaryCellStates(e.getView(),t,n);try{s=(new mxCodec).encode(e.getView())}finally{t.destroy(),o.translate=c,o.canvas.removeChild(o.drawPane),o.canvas.removeChild(o.overlayPane),o.drawPane=l,o.overlayPane=d,o.setEventsEnabled(r)}return s},getScaleForPageCount:function(e,t,n,a){if(1>e)return 1;n=null!=n?n:mxConstants.PAGE_FORMAT_A4_PORTRAIT,a=null!=a?a:0;var i=n.width-2*a;n=n.height-2*a,a=t.getGraphBounds().clone(),t=t.getView().getScale(),a.width/=t,a.height/=t,n=(t=a.width)/a.height/(i/n),a=Math.sqrt(e);var o=Math.sqrt(n);if(n=a*o,a/=o,1>n&&a>e){s=a/e;a=e,n/=s}for(1>a&&n>e&&(s=n/e,n=e,a/=s),s=Math.ceil(n)*Math.ceil(a),o=0;s>e;){var s=Math.floor(n)/n,r=Math.floor(a)/a;if(1==s&&(s=Math.floor(n-1)/n),1==r&&(r=Math.floor(a-1)/a),s=s>r?s:r,n*=s,a*=s,s=Math.ceil(n)*Math.ceil(a),10<++o)break}return i*n/t*.99999},show:function(e,t,n,a){if(n=null!=n?n:0,a=null!=a?a:0,null==t?t=window.open().document:t.open(),n=-(i=e.getGraphBounds()).x+n,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",o=document.getElementsByTagName("base"),s=0;s<o.length;s++)i+=o[s].outerHTML;for(i+="<style>",s=0;s<document.styleSheets.length;s++)try{i+=document.styleSheets(s).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",t.writeln(i),t.close(),null!=(e=t.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=n+"px",e.style.top=a+"px")}else{for(t.writeln("<html"),t.writeln("<head>"),o=document.getElementsByTagName("base"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(o=document.getElementsByTagName("link"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(o=document.getElementsByTagName("style"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(t.writeln("</head>"),t.writeln("</html>"),t.close(),null==t.body&&t.documentElement.appendChild(t.createElement("body")),t.body.style.overflow="auto",e=e.container.firstChild;null!=e;)s=e.cloneNode(!0),t.body.appendChild(s),e=e.nextSibling;null!=(e=t.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+n+","+a+")"),(n=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),n.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(t.body),t},printScreen:function(e){var t=window.open();mxUtils.show(e,t.document),e=function(){t.focus(),t.print(),t.close()},mxClient.IS_GC?t.setTimeout(e,500):e()},popup:function(e,t){if(t){var n=document.createElement("div");n.style.overflow="scroll",n.style.width="636px",n.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),n.appendChild(a),(n=new mxWindow("Popup Window",n,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),n.setVisible(!0)}else mxClient.IS_NS?((n=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),n.document.close()):(n=window.open(),a=n.document.createElement("pre"),a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),n.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,t){return prompt(e,t)},confirm:function(e){return confirm(e)},error:function(e,t,n,a){var i=document.createElement("div");i.style.padding="20px";var o=document.createElement("img");o.setAttribute("src",a||mxUtils.errorImage),o.setAttribute("valign","bottom"),o.style.verticalAlign="middle",i.appendChild(o),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var s=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-t)/2,a/4,t,null,!1,!0);return n&&(mxUtils.br(i),t=document.createElement("p"),n=document.createElement("button"),mxClient.IS_IE?n.style.cssText="float:right":n.setAttribute("style","float:right"),mxEvent.addListener(n,"click",function(e){s.destroy()}),mxUtils.write(n,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),t.appendChild(n),i.appendChild(t),mxUtils.br(i),s.setClosable(!0)),s.setVisible(!0),s},makeDraggable:function(e,t,n,a,i,o,s,r,l,d){return e=new mxDragSource(e,n),e.dragOffset=new mxPoint(null!=i?i:0,null!=o?o:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=s,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof t?t(e):t},null!=a&&(e.createDragElement=function(){return a.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var t=a.cloneNode(!0),n=parseInt(t.style.width),i=parseInt(t.style.height);return t.style.width=Math.round(n*e.view.scale)+"px",t.style.height=Math.round(i*e.view.scale)+"px",t})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var t=this.getSource();null!=t;){if(t==e.node)return!0;t=t.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null!=e?e:1)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,t){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(t)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var t=0;t<this.eventListeners.length;)this.eventListeners[t+1]==e?this.eventListeners.splice(t,2):t+=2},mxEventSource.prototype.fireEvent=function(e,t){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==t&&(t=this.getEventSource()),null==t&&(t=this);for(var n=[t,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,n)}}};var mxEvent={objects:[],addListener:function(){var e=function(e,t,n){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:t,f:n})};return window.addEventListener?function(t,n,a){t.addEventListener(n,a,!1),e(t,n,a)}:function(t,n,a){t.attachEvent("on"+n,a),e(t,n,a)}}(),removeListener:function(){var e=function(e,t,n){if(null!=e.mxListenerList){t=e.mxListenerList.length;for(var a=0;a<t;a++)if(e.mxListenerList[a].f==n){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(t,n,a){t.removeEventListener(n,a,!1),e(t,n,a)}:function(t,n,a){t.detachEvent("on"+n,a),e(t,n,a)}}(),removeAllListeners:function(e){var t=e.mxListenerList;if(null!=t)for(;0<t.length;){var n=t[0];mxEvent.removeListener(e,n.name,n.f)}},addGestureListeners:function(e,t,n,a){null!=t&&mxEvent.addListener(e,"mousedown",t),null!=n&&mxEvent.addListener(e,"mousemove",n),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=t&&mxEvent.addListener(e,"touchstart",t),null!=n&&mxEvent.addListener(e,"touchmove",n),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,t,n,a){null!=t&&mxEvent.removeListener(e,"mousedown",t),null!=n&&mxEvent.removeListener(e,"mousemove",n),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=t&&mxEvent.removeListener(e,"touchstart",t),null!=n&&mxEvent.removeListener(e,"touchmove",n),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,o,s){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=o?o(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=s)s(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var t=e.length,n=0;n<t;n+=1)mxEvent.release(e[n])},addMouseWheelListener:function(e){if(null!=e){var t=function(t){null==t&&(t=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?t.wheelDelta/120:-t.detail/2)&&e(t,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",t):mxEvent.addListener(document,"mousewheel",t)}},disableContextMenu:function(){return mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")}}(),getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,t,n){n=null==n||n,(null!=t?t:1)&&(e.preventDefault?(n&&e.stopPropagation(),e.preventDefault()):n&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=function(){return window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0}(),mxXmlRequest.prototype.send=function(e,t){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,t){null!=t&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,t){var n=null;(e=e||document)==document&&(n=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=t&&a.setAttribute("target",t),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),o=0;o<i.length;o++){var s=i[o].indexOf("=");if(0<s){var r=i[o].substring(0,s),l=i[o].substring(s+1);(s=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"&#xa;"),r=e.createTextNode(l),s.appendChild(r),a.appendChild(s)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=n&&(window.onbeforeunload=n)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,t){return t=mxClipboard.copy(e,t),mxClipboard.insertCount=0,mxClipboard.removeCells(e,t),t},removeCells:function(e,t){e.removeCells(t)},copy:function(e,t){t=t||e.getSelectionCells();var n=e.getExportableCells(t);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(n),n},paste:function(e){if(null!=mxClipboard.cells){var t=e.getImportableCells(mxClipboard.cells),n=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent(),t=e.importCells(t,n,n,a);mxClipboard.insertCount++,e.setSelectionCells(t)}}};mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,t,n,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=t+"px",this.table=document.createElement("table"),this.table.className=i,null!=n&&(mxClient.IS_IE||(this.div.style.width=n+"px"),this.table.style.width=n+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),t=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",t.appendChild(this.title),e.appendChild(t),t=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),t.appendChild(this.td),e.appendChild(t),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var t=this.title.firstChild;null!=t;){var n=t.nextSibling;t.nodeType==mxConstants.NODETYPE_TEXT&&t.parentNode.removeChild(t),t=n}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){0>navigator.userAgent.indexOf("Presto/2.5")&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var t=mxWindow.activeWindow.getElement();null!=t&&null!=t.style&&(t.style.zIndex=e)}t=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,mxWindow.activeWindow=this,this.fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",t))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e),a=this.div.offsetWidth,i=this.div.offsetHeight,o=mxUtils.bind(this,function(e){var o=mxEvent.getClientX(e)-t,s=mxEvent.getClientY(e)-n;this.setSize(a+o,i+s),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),s=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,t){e=Math.max(this.minimumSize.width,e),t=Math.max(this.minimumSize.height,t),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=t+"px"),this.table.style.width=e+"px",this.table.style.height=t+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var e=!1,t=null,n=null,a=mxUtils.bind(this,function(a){if(this.activate(),e)e=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=t,mxClient.IS_IE||(this.div.style.height=n),this.table.style.height=n,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",a));else{e=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",t=this.maximize.style.display,this.maximize.style.display="none",n=this.table.style.height;var i=this.getMinimumSize();0<i.height&&(mxClient.IS_IE||(this.div.style.height=i.height+"px"),this.table.style.height=i.height+"px"),0<i.width&&(mxClient.IS_IE||(this.div.style.width=i.width+"px"),this.table.style.width=i.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",a))}mxEvent.consume(a)});mxEvent.addListener(this.minimize,"mousedown",a),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",a)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var e=!1,t=null,n=null,a=null,i=null,o=mxUtils.bind(this,function(o){if(this.activate(),"none"!=this.maximize.style.display){if(e)e=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=t+"px",this.div.style.top=n+"px",mxClient.IS_IE||(this.div.style.height=a,this.div.style.width=i,"auto"!=(s=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=a,this.table.style.width=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",o));else{if(e=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",t=parseInt(this.div.style.left),n=parseInt(this.div.style.top),a=this.table.style.height,i=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var s=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=s.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",o))}mxEvent.consume(o)}});mxEvent.addGestureListeners(this.maximize,o),mxEvent.addListener(this.title,"dblclick",o)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e),a=this.getX(),i=this.getY(),o=mxUtils.bind(this,function(e){var o=mxEvent.getClientX(e)-t,s=mxEvent.getClientY(e)-n;this.setLocation(a+o,i+s),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),s=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,t){this.div.style.left=e+"px",this.div.style.top=t+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,t){var n=document.createElement("tr"),a=document.createElement("td");n.appendChild(a);var a=document.createElement("td"),i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){t()}),n.appendChild(a),this.body.appendChild(n)},mxForm.prototype.addText=function(e,t){var n=document.createElement("input");return n.setAttribute("type","text"),n.value=t,this.addField(e,n)},mxForm.prototype.addCheckbox=function(e,t){var n=document.createElement("input");return n.setAttribute("type","checkbox"),this.addField(e,n),t&&(n.checked=!0),n},mxForm.prototype.addTextarea=function(e,t,n){var a=document.createElement("textarea");return mxClient.IS_NS&&n--,a.setAttribute("rows",n||2),a.value=t,this.addField(e,a)},mxForm.prototype.addCombo=function(e,t,n){var a=document.createElement("select");return null!=n&&a.setAttribute("size",n),t&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,t,n,a){var i=document.createElement("option");mxUtils.writeln(i,t),i.setAttribute("value",n),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,t){var n=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),n.appendChild(a),(a=document.createElement("td")).appendChild(t),n.appendChild(a),this.body.appendChild(n),t},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),t=this.getDocumentHeight(),n=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),o=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(n)&&!isNaN(a)&&0<=n&&0<=a&&0<e-a-n&&(this.div.style.width=e-a-n+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(o)&&0<=i&&0<=o&&0<t-i-o&&(this.div.style.height=t-i-o+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,t,n){return e.getCellAt(t,n)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,t){var n=mxEvent.getClientX(t),a=mxEvent.getClientY(t),i=mxUtils.getOffset(e.container),o=mxUtils.getScrollOrigin();return n>=i.x-o.x&&a>=i.y-o.y&&n<=i.x-o.x+e.container.offsetWidth&&a<=i.y-o.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(t=this.getGraphForEvent(e))&&!this.graphContainsEvent(t,e)&&(t=null),t!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=t,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(t+=this.dragOffset.x,n+=this.dragOffset.y),t+=document.body.scrollLeft||document.documentElement.scrollLeft,n+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=t+"px",this.dragElement.style.top=n+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var t=this.currentGraph.view.scale,n=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/t-n.x,this.currentPoint.y/t-n.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,t){var n=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(t)-n.x+a.x,n=mxEvent.getClientY(t)-n.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,n,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,n),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");var a=this.isGridEnabled()&&e.isGridEnabledEvent(t),o=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(t))var o=parseInt(this.previewElement.style.width),s=parseInt(this.previewElement.style.height),o=new mxRectangle(0,0,o,s),n=new mxPoint(i,n),n=this.currentGuide.move(o,n,a),o=!1,i=n.x,n=n.y;else if(a)var a=e.view.scale,s=e.view.translate,r=e.gridSize/2,i=(e.snap(i/a-s.x-r)+s.x)*a,n=(e.snap(n/a-s.y-r)+s.y)*a;null!=this.currentGuide&&o&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,n+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(n)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,n)},mxDragSource.prototype.drop=function(e,t,n,a,i){this.dropHandler(e,t,n,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,t,n,a,i,o){var s=document.createElement(null!=t?"img":"button"),r=i||(null!=o?"mxToolbarMode":"mxToolbarItem");return s.className=r,s.setAttribute("src",t),null!=e&&(null!=t?s.setAttribute("title",e):mxUtils.write(s,e)),this.container.appendChild(s),null!=n&&(mxEvent.addListener(s,"click",n),mxClient.IS_TOUCH&&mxEvent.addListener(s,"touchend",n)),e=mxUtils.bind(this,function(e){null!=a?s.setAttribute("src",t):s.style.backgroundColor=""}),mxEvent.addGestureListeners(s,mxUtils.bind(this,function(e){if(null!=a?s.setAttribute("src",a):s.style.backgroundColor="gray",null!=o){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var t=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),t!=s&&(this.currentImg=s,this.menu.factoryMethod=o,t=new mxPoint(s.offsetLeft,s.offsetTop+s.offsetHeight),this.menu.popup(t.x,t.y,null,e),this.menu.isMenuShowing()&&(s.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),s.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(s,"mouseout",e),s},mxToolbar.prototype.addCombo=function(e){var t=document.createElement("div");t.style.display="inline",t.className="mxToolbarComboContainer";var n=document.createElement("select");return n.className=e||"mxToolbarCombo",t.appendChild(n),this.container.appendChild(t),n},mxToolbar.prototype.addActionCombo=function(e,t){var n=document.createElement("select");return n.className=t||"mxToolbarCombo",this.addOption(n,e,null),mxEvent.addListener(n,"change",function(e){var t=n.options[n.selectedIndex];n.selectedIndex=0,null!=t.funct&&t.funct(e)}),this.container.appendChild(n),n},mxToolbar.prototype.addOption=function(e,t,n){var a=document.createElement("option");return mxUtils.writeln(a,t),"function"==typeof n?a.funct=n:a.setAttribute("value",n),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,t,n,a,i){var o=document.createElement("img");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",t),o.altIcon=a,null!=e&&o.setAttribute("title",e),mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=o),this.selectedMode=o,null!=(e=o.altIcon)?(o.altIcon=o.getAttribute("src"),o.setAttribute("src",e)):o.className=o.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),n()})),this.container.appendChild(o),null==this.defaultMode&&(this.defaultMode=o,this.selectMode(o),n()),o},mxToolbar.prototype.addMode=function(e,t,n,a,i,o){o=null==o||o;var s=document.createElement(null!=t?"img":"button");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",t),s.altIcon=a,null!=e&&s.setAttribute("title",e),this.enabled&&o&&(mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){this.selectMode(s,n),this.noReset=!1})),mxEvent.addListener(s,"dblclick",mxUtils.bind(this,function(e){this.selectMode(s,n),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=s,this.defaultFunction=n,this.selectMode(s,n))),this.container.appendChild(s),s},mxToolbar.prototype.selectMode=function(e,t){if(this.selectedMode!=e){if(null!=this.selectedMode){var n=this.selectedMode.altIcon;null!=n?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(n=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",t))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="&#xa;",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,t,n){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,t,n){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,t,n))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(e,t,n){if(void 0!==mxUtils){var a=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(e,mxUtils.bind(this,function(n){if(void 0!==mxUtils)if(n.isReady()&&404!=n.getStatus()){if(this.received+=n.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",e,"request",n)),this.isValidResponse(n)){if(0<n.getText().length){var i=n.getDocumentElement();null==i?a("Invalid response: "+n.getText()):this.receive(i)}null!=t&&t(n)}}else a("Response not ready")}),function(e){a("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return 0>e.getText().indexOf("<?php")},mxSession.prototype.encodeChanges=function(e,t){for(var n="",a=t?-1:1,i=t?e.length-1:0;0<=i&&i<e.length;i+=a)var o=this.codec.encode(e[i]),n=n+mxUtils.getXml(o,this.linefeed);return n},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var t=e.getAttribute("namespace");for(null!=t&&(this.model.prefix=t+"-"),t=e.firstChild;null!=t;){var n=t.nodeName.toLowerCase();"state"==n?this.processState(t):"delta"==n&&this.processDelta(t),t=t.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var t=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",t,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",t))}},mxSession.prototype.createUndoableEdit=function(e){var t=new mxUndoableEdit(this.model,this.significantRemoteChanges);return t.changes=e,t.notify=function(){t.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",t,"changes",t.changes)),t.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",t,"changes",t.changes))},t},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var t=[];for(e=e.firstChild;null!=e;){var n=this.decodeChange(e);null!=n&&t.push(n),e=e.nextSibling}return t},mxSession.prototype.decodeChange=function(e){var t=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(t="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(t.model=this.model,t.execute(),"mxChildChange"==e.nodeName&&null==t.parent&&this.cellRemoved(t.child)),t},mxSession.prototype.cellRemoved=function(e,t){this.codec.putObject(e.getId(),e);for(var n=this.model.getChildCount(e),a=0;a<n;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var t=this.changes[e];null!=t.execute?t.execute():null!=t.undo&&t.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,t=0;t<e;t++){var n=this.changes[t];null!=n.execute?n.execute():null!=n.redo&&n.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var t=this.history[this.indexOfNextAdd++];if(t.redo(),t.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",t));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),t=0;t<e.length;t++)e[t].die()};var mxUrlConverter=function(e){var t=!0,n=null,a=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return n},setBaseUrl:function(e){n=e},getBaseDomain:function(){return n},setBaseDomain:function(e){n=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==n){a=location.protocol+"//"+location.host;var i=(n=a+location.pathname).lastIndexOf("/");0<i&&(n=n.substring(0,i+1))}e="/"==e.charAt(0)?a+e:n+e}return e}}};mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,t,n,a,i,o){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var s=document.createElement("tr");s.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=t?(i=document.createElement("img"),i.src=t,r.appendChild(i)):null!=i&&(t=document.createElement("div"),t.className=i,r.appendChild(t)),s.appendChild(r),this.labels&&(r=document.createElement("td"),r.className="mxPopupMenuItem"+(null==o||o?"":" disabled"),mxUtils.write(r,e),r.align="left",s.appendChild(r),e=document.createElement("td"),e.className="mxPopupMenuItem"+(null==o||o?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",s.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(s),(null==o||o)&&(mxEvent.addGestureListeners(s,mxUtils.bind(this,function(e){this.eventReceiver=s,a.activeRow!=s&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=s.div&&(this.showSubmenu(a,s),a.activeRow=s)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=s&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=s.div&&(this.showSubmenu(a,s),a.activeRow=s)),s.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==s&&(a.activeRow!=s&&this.hideMenu(),null!=n&&n(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(s,"mouseout",mxUtils.bind(this,function(e){s.className="mxPopupMenuItem"}))),s},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var t=document.createElement("img");t.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(t)},mxPopupMenu.prototype.showSubmenu=function(e,t){if(null!=t.div){t.div.style.left=e.div.offsetLeft+t.offsetLeft+t.offsetWidth-1+"px",t.div.style.top=e.div.offsetTop+t.offsetTop+"px",document.body.appendChild(t.div);var n=parseInt(t.div.offsetLeft),a=parseInt(t.div.offsetWidth),i=document.body,o=document.documentElement;n+a>(i.scrollLeft||o.scrollLeft)+(i.clientWidth||o.clientWidth)&&(t.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(t.div)}},mxPopupMenu.prototype.addSeparator=function(e,t){if(e=e||this,this.smartSeparators&&!t)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var n=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",n.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),n.appendChild(a),e.tbody.appendChild(n)}},mxPopupMenu.prototype.popup=function(e,t,n,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=t+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,n,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var t=0;t<this.cells.length;t++)this.animateCell(cells[t],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,t,n){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var o=this.graph.view.getTranslate(),s=this.graph.view.getScale();i.x+=o.x*s,i.y+=o.y*s,t.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(n&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),t,n)},mxMorphing.prototype.stopRecursion=function(e,t){return null!=t&&(0!=t.x||0!=t.y)},mxMorphing.prototype.getDelta=function(e){var t=this.getOriginForCell(e.cell),n=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-n.x,e.y/a-n.y),new mxPoint((t.x-e.x)*a,(t.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var t=null;return null!=e&&(t=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(t.x+=e.x,t.y+=e.y)),null==t&&(t=this.graph.view.getTranslate(),t=new mxPoint(-t.x,-t.y)),t},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,t,n){this.images[e]={value:t,fallback:n}},mxImageBundle.prototype.getImage=function(e){var t=null;return null!=e&&null!=(e=this.images[e])&&(t=this.alt?e.fallback:e.value),t},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,t){null!=e&&(this.visitStatesRecursive(e,t,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,t,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,t,n){if(null!=e){n(e,t);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),o=0;o<i;o++){var s=a.view.getState(a.model.getChildAt(e.cell,o));this.visitStatesRecursive(s,t,n)}}},mxImageExport.prototype.drawCellState=function(e,t){e.shape instanceof mxShape&&(t.save(),e.shape.paint(t),t.restore()),null!=e.text&&(t.save(),e.text.paint(t),t.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,t=2;t<arguments.length;t+=2)this.lastX=arguments[t-1],this.lastY=arguments[t],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,t,n,a,i){return n*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,t),Math.cos(n),Math.sin(n),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,t){this.state.dx+=e,this.state.dy+=t},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,t,n,a,i,o,s,r,l){(n=this.state).fillColor=e,n.fillAlpha=null!=r?r:1,n.gradientColor=t,n.gradientAlpha=null!=l?l:1,n.gradientDirection=s},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,t){this.state.shadowDx=e,this.state.shadowDy=t},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,t){this.addOp(this.moveOp,e,t)},mxAbstractCanvas2D.prototype.lineTo=function(e,t){this.addOp(this.lineOp,e,t)},mxAbstractCanvas2D.prototype.quadTo=function(e,t,n,a){this.addOp(this.quadOp,e,t,n,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,t,n,a,i,o){this.addOp(this.curveOp,e,t,n,a,i,o)},mxAbstractCanvas2D.prototype.arcTo=function(e,t,n,a,i,o,s){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,t,n,a,i,o,s),t=0;t<e.length;t+=6)this.curveTo(e[t],e[t+1],e[t+2],e[t+3],e[t+4],e[t+5])},mxAbstractCanvas2D.prototype.close=function(e,t,n,a,i,o){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var t=this.createElement("scale");t.setAttribute("scale",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.translate=function(e,t){var n=this.createElement("translate");n.setAttribute("dx",this.format(e)),n.setAttribute("dy",this.format(t)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rotate=function(e,t,n,a,i){var o=this.createElement("rotate");(0!=e||t||n)&&(o.setAttribute("theta",this.format(e)),o.setAttribute("flipH",t?"1":"0"),o.setAttribute("flipV",n?"1":"0"),o.setAttribute("cx",this.format(a)),o.setAttribute("cy",this.format(i)),this.root.appendChild(o))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var t=this.createElement("alpha");t.setAttribute("alpha",this.format(e)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var t=this.createElement("fillcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setGradient=function(e,t,n,a,i,o,s,r,l){if(null!=e&&null!=t){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",t),d.setAttribute("x",this.format(n)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(o)),null!=s&&d.setAttribute("direction",s),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var t=this.createElement("strokecolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var t=this.createElement("strokewidth");t.setAttribute("width",this.format(e)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var t=this.createElement("dashed");t.setAttribute("dashed",e?"1":"0"),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var t=this.createElement("dashpattern");t.setAttribute("pattern",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var t=this.createElement("linecap");t.setAttribute("cap",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var t=this.createElement("linejoin");t.setAttribute("join",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var t=this.createElement("miterlimit");t.setAttribute("limit",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var t=this.createElement("fontcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var t=this.createElement("fontbackgroundcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var t=this.createElement("fontbordercolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var t=this.createElement("fontsize");t.setAttribute("size",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var t=this.createElement("fontfamily");t.setAttribute("family",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var t=this.createElement("fontstyle");t.setAttribute("style",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var t=this.createElement("shadow");t.setAttribute("enabled",e?"1":"0"),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var t=this.createElement("shadowcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var t=this.createElement("shadowalpha");t.setAttribute("alpha",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,t){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==t)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var n=this.createElement("shadowoffset");n.setAttribute("dx",e),n.setAttribute("dy",t),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rect=function(e,t,n,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(t)),i.setAttribute("w",this.format(n)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){var s=this.createElement("roundrect");s.setAttribute("x",this.format(e)),s.setAttribute("y",this.format(t)),s.setAttribute("w",this.format(n)),s.setAttribute("h",this.format(a)),s.setAttribute("dx",this.format(i)),s.setAttribute("dy",this.format(o)),this.root.appendChild(s)},mxXmlCanvas2D.prototype.ellipse=function(e,t,n,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(t)),i.setAttribute("w",this.format(n)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(t)),l.setAttribute("w",this.format(n)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",o?"1":"0"),l.setAttribute("flipH",s?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,t){var n=this.createElement("move");n.setAttribute("x",this.format(e)),n.setAttribute("y",this.format(t)),this.root.appendChild(n),this.lastX=e,this.lastY=t},mxXmlCanvas2D.prototype.lineTo=function(e,t){var n=this.createElement("line");n.setAttribute("x",this.format(e)),n.setAttribute("y",this.format(t)),this.root.appendChild(n),this.lastX=e,this.lastY=t},mxXmlCanvas2D.prototype.quadTo=function(e,t,n,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(t)),i.setAttribute("x2",this.format(n)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=n,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,t,n,a,i,o){var s=this.createElement("curve");s.setAttribute("x1",this.format(e)),s.setAttribute("y1",this.format(t)),s.setAttribute("x2",this.format(n)),s.setAttribute("y2",this.format(a)),s.setAttribute("x3",this.format(i)),s.setAttribute("y3",this.format(o)),this.root.appendChild(s),this.lastX=i,this.lastY=o},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(t)),u.setAttribute("w",this.format(n)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=o&&u.setAttribute("align",o),null!=s&&u.setAttribute("valign",s),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,t){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(t||mxConstants.NS_SVG,e);var n=this.root.ownerDocument.createElement(e);return null!=t&&n.setAttribute("xmlns",t),n},mxSvgCanvas2D.prototype.createGradientId=function(e,t,n,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==t.charAt(0)&&(t=t.substring(1)),e=e.toLowerCase()+"-"+n,t=t.toLowerCase()+"-"+a,n=null,null==i||i==mxConstants.DIRECTION_SOUTH?n="s":i==mxConstants.DIRECTION_EAST?n="e":(a=e,e=t,t=a,i==mxConstants.DIRECTION_NORTH?n="s":i==mxConstants.DIRECTION_WEST&&(n="e")),"mx-gradient-"+e+"-"+t+"-"+n},mxSvgCanvas2D.prototype.getSvgGradient=function(e,t,n,a,i){var o=this.createGradientId(e,t,n,a,i),s=this.gradients[o];if(null==s){var r=this.root.ownerSVGElement,l=0,d=o+"-"+l;if(null!=r)for(s=r.ownerDocument.getElementById(d);null!=s&&s.ownerSVGElement!=r;)d=o+"-"+l++,s=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==s&&((s=this.createSvgGradient(e,t,n,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(s):r.appendChild(s)),this.gradients[o]=s}return s.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,t,n,a,i){var o=this.createElement("linearGradient");return o.setAttribute("x1","0%"),o.setAttribute("y1","0%"),o.setAttribute("x2","0%"),o.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?o.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?o.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?o.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&o.setAttribute("x1","100%"),n=1>n?";stop-opacity:"+n:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+n),o.appendChild(i),n=1>a?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+t+n),o.appendChild(i),o},mxSvgCanvas2D.prototype.addNode=function(e,t){var n=this.node,a=this.state;if(null!=n){if("path"==n.nodeName){if(!(null!=this.path&&0<this.path.length))return;n.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=n.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?n.setAttribute("fill","none"):n.setAttribute("fill","transparent"),e=!1),t&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||n.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&n.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(n)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(n)),this.pointerEvents&&("path"!=n.nodeName||this.path[this.path.length-1]==this.closeOp)&&n.setAttribute("pointer-events","all"),this.root.appendChild(n)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;1>e.alpha&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),1>e.alpha&&this.node.setAttribute("stroke-opacity",e.alpha);var t=Math.max(1,this.format(e.strokeWidth*e.scale));1!=t&&this.node.setAttribute("stroke-width",t),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(t))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var t=e.lineCap;"flat"==t&&(t="butt"),"butt"!=t&&this.node.setAttribute("stroke-linecap",t)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var t=this.state.dashPattern.split(" "),n=[];if(0<t.length)for(var a=0;a<t.length;a++)n[a]=Number(t[a])*e;return n.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var t=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",t),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var t=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",t.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",t.shadowColor),e.setAttribute("transform","translate("+this.format(t.shadowDx*t.scale)+","+this.format(t.shadowDy*t.scale)+")"+(t.transform||"")),e.setAttribute("opacity",t.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,t,n,a,i){if(0!=e||t||n){var o=this.state;if(a+=o.dx,i+=o.dy,a*=o.scale,i*=o.scale,o.transform=o.transform||"",t&&n)e+=180;else if(t^n){var s=t?a:0,r=t?-1:1,l=n?i:0,d=n?-1:1;o.transform+="translate("+this.format(s)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-s)+","+this.format(-l)+")"}(t?!n:n)&&(e*=-1),0!=e&&(o.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),o.rotation+=e,o.rotationCx=a,o.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,t,n,a){var i=this.state,o=this.createElement("rect");o.setAttribute("x",this.format((e+i.dx)*i.scale)),o.setAttribute("y",this.format((t+i.dy)*i.scale)),o.setAttribute("width",this.format(n*i.scale)),o.setAttribute("height",this.format(a*i.scale)),this.node=o},mxSvgCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){this.rect(e,t,n,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<o&&this.node.setAttribute("ry",this.format(o*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,t,n,a){var i=this.state,o=this.createElement("ellipse");o.setAttribute("cx",Math.round((e+n/2+i.dx)*i.scale)),o.setAttribute("cy",Math.round((t+a/2+i.dy)*i.scale)),o.setAttribute("rx",n/2*i.scale),o.setAttribute("ry",a/2*i.scale),this.node=o},mxSvgCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){i=this.converter.convert(i),o=null==o||o,s=null!=s&&s,r=null!=r&&r;var l=this.state;e+=l.dx,t+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(t*l.scale)),d.setAttribute("width",this.format(n*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),o||d.setAttribute("preserveAspectRatio","none"),1>l.alpha&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",s||r){var c=o=1,m=0,u=0;s&&(o=-1,m=-n-2*e),r&&(c=-1,u=-a-2*t),i+="scale("+o+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(t*l.scale)),d.setAttribute("width",this.format(n*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,t,n,a,i){return n=this.state,a="display:inline-block;font-size:"+Math.round(n.fontSize)+"px;font-family:"+n.fontFamily+";color:"+n.fontColor+";line-height:"+Math.round(n.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),t==mxConstants.ALIGN_CENTER?a+="text-align:center;":t==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),t="",null!=n.fontBackgroundColor&&(t+="background-color:"+n.fontBackgroundColor+";"),null!=n.fontBorderColor&&(t+="border:1px solid "+n.fontBorderColor+";"),mxUtils.isNode(e)||(n=document.createElement("textarea"),n.innerHTML=e.replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),e=n.value,i?a+=t:0<t.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+t+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,t+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<n&&(p+="width:"+Math.round(n)+"px;")):d&&(p+="width:"+Math.round(n)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<n&&(p+="width:"+Math.round(n)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),1>u.alpha&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,o,s,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var h=document.createElement("div");h.style.cssText=p.getAttribute("style"),h.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",h.style.visibility="hidden",h.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(h),g=h.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,h.offsetHeight+2):h.offsetHeight,h.parentNode.removeChild(h),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);n=d?Math.max(n,g):g,1>u.alpha&&r.setAttribute("opacity",u.alpha),d=i=0,o==mxConstants.ALIGN_CENTER?i-=n/2:o==mxConstants.ALIGN_RIGHT&&(i-=n),e+=i,s==mxConstants.ALIGN_MIDDLE?d-=a/2:s==mxConstants.ALIGN_BOTTOM&&(d-=a),t+=d,o=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(o+="rotate("+u.rotation+","+n/2+","+a/2+")",t=this.rotatePoint((e+n/2)*u.scale,(t+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy),e=t.x-n*u.scale/2,t=t.y-a*u.scale/2):(e*=u.scale,t*=u.scale),0!=m&&(o+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(t)+")"+o),l.setAttribute("width",Math.round(Math.max(1,n))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,t,n,a,i,o,s,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,t,n,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(t=Math.round(t))+"-"+(n=Math.round(n))+"-"+(a=Math.round(a)),o=0,s=i+"-"+o;null!=document.getElementById(s);)s=i+"-"+ ++o;return clip=this.createElement("clipPath"),clip.setAttribute("id",s),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("width",n),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,t,n,a,i,o,s,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(t*r.scale)+")"),d&&0<n&&0<a){g=e;c=t,o==mxConstants.ALIGN_CENTER?g-=n/2:o==mxConstants.ALIGN_RIGHT&&(g-=n),s==mxConstants.ALIGN_MIDDLE?c-=a/2:s==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,n*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,o),"start"!=(c=o==mxConstants.ALIGN_RIGHT?"end":o==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),1>r.alpha&&u.setAttribute("opacity",r.alpha);var p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT),h=m+(p.length-1)*g;for(c=t+m-1,s==mxConstants.ALIGN_MIDDLE?(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(h,a):h)/2,c-=a+1):s==mxConstants.ALIGN_BOTTOM&&(a=this.matchHtmlAlignment&&d&&0<a?Math.min(h,a):h,c-=a+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,t,n,h,o,s,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var t=this.state;e.setAttribute("fill",t.fontColor),(!this.styleEnabled||t.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",t.fontFamily),(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,t,n,a,i,o,s,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;l?(s==mxConstants.ALIGN_CENTER?n-=i/2:s==mxConstants.ALIGN_RIGHT&&(n-=i),r==mxConstants.ALIGN_MIDDLE?a-=o/2:r==mxConstants.ALIGN_BOTTOM&&(a-=o),c=new mxRectangle((n+1)*d.scale,a*d.scale,(i-2)*d.scale,(o+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),t=mxClient.IS_IE&&mxClient.IS_SVG,c=new mxRectangle(c.x,c.y+(t?0:1),c.width,c.height+(t?1:0))):(c=document.createElement("div"),c.style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),t=mxUtils.htmlEntities(t,!1),c.innerHTML=t.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,o=c.offsetHeight,c.parentNode.removeChild(c),s==mxConstants.ALIGN_CENTER?n-=i/2:s==mxConstants.ALIGN_RIGHT&&(n-=i),r==mxConstants.ALIGN_MIDDLE?a-=o/2:r==mxConstants.ALIGN_BOTTOM&&(a-=o),c=new mxRectangle((n+1)*d.scale,(a+2)*d.scale,i*d.scale,(o+1)*d.scale)),null!=c&&((t=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),t.setAttribute("stroke",d.fontBorderColor||"none"),t.setAttribute("x",Math.floor(c.x-1)),t.setAttribute("y",Math.floor(c.y-1)),t.setAttribute("width",Math.ceil(c.width+2)),t.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,t.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&t.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(t,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,t){var n=this.node,a=this.state;if(null!=n){if("shape"==n.nodeName){if(!(null!=this.path&&0<this.path.length))return;n.path=this.path.join(" ")+" e",n.style.width=this.root.style.width,n.style.height=this.root.style.height,n.coordsize=parseInt(n.style.width)+" "+parseInt(n.style.height)}n.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(n,e&&null!=a.fillColor,t&&null!=a.strokeColor)),t&&null!=a.strokeColor?(n.stroked="true",n.strokecolor=a.strokeColor):n.stroked="false",n.appendChild(this.createStroke()),e&&null!=a.fillColor?n.appendChild(this.createFill()):!this.pointerEvents||"shape"==n.nodeName&&this.path[this.path.length-1]!=this.closeOp?n.filled="false":n.appendChild(this.createTransparentFill()),this.root.appendChild(n)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,t=document.createElement(mxClient.VML_PREFIX+":fill");if(t.color=e.fillColor,null!=e.gradientColor){t.type="gradient",t.method="none",t.color2=e.gradientColor;var n=180-e.rotation,n=e.gradientDirection==mxConstants.DIRECTION_WEST?n-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?n+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?n-(180+("y"==this.root.style.flip?-180:0)):n+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(n*=-1),t.angle=mxUtils.mod(n,360),t.opacity=100*e.alpha*e.fillAlpha+"%",t.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else 1>e.alpha&&(t.opacity=100*e.alpha+"%");return t},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,t=document.createElement(mxClient.VML_PREFIX+":stroke");return t.endcap=e.lineCap||"flat",t.joinstyle=e.lineJoin||"miter",t.miterlimit=e.miterLimit||"10",1>e.alpha&&(t.opacity=100*e.alpha+"%"),e.dashed&&(t.dashstyle=this.getVmlDashStyle()),t},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var t=this.state.dashPattern.split(" ");0<t.length&&1==t[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,t,n){var a=this.state,i=-a.rotation*(Math.PI/180),o=Math.cos(i),i=Math.sin(i),s=a.shadowDx*a.scale,r=a.shadowDy*a.scale;"x"==this.root.style.flip?s*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(s*o-r*i)+"px",l.style.marginTop=Math.round(s*i+r*o)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),n?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",t?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,t,n,a,i){t&&n?e+=180:t?this.root.style.flip="x":n&&(this.root.style.flip="y"),(t?!n:n)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,t,n,a){var i=this.state,o=(this.lastX+i.dx)*i.scale,s=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;var s=s+2/3*((t=(t+i.dy)*i.scale)-s),r=(n=(n+i.dx)*i.scale)+2/3*(e-n);t=(a=(a+i.dy)*i.scale)+2/3*(t-a),this.path.push("c "+this.format(o+2/3*(e-o))+" "+this.format(s)+" "+this.format(r)+" "+this.format(t)+" "+this.format(n)+" "+this.format(a)),this.lastX=n/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,t,n,a,i){var o=this.state;return e=document.createElement(e),e.style.position="absolute",e.style.left=this.format((t+o.dx)*o.scale)+"px",e.style.top=this.format((n+o.dy)*o.scale)+"px",e.style.width=this.format(a*o.scale)+"px",e.style.height=this.format(i*o.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,t,n,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,t,n,a)},mxVmlCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,t,n,a),this.node.setAttribute("arcsize",Math.max(100*i/n,100*o/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,t,n,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,t,n,a)},mxVmlCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){var l=null;o?(l=this.createRect(mxClient.VML_PREFIX+":rect",e,t,n,a),l.stroked="false",e=document.createElement(mxClient.VML_PREFIX+":fill"),e.aspect=o?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,t,n,a),l.src=i),s&&r?l.style.rotation="180":s?l.style.flip="x":r&&(l.style.flip="y"),1>this.state.alpha&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,t,n,a){n=document.createElement("div");var i=this.state,o="";return null!=i.fontBackgroundColor&&(o+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(o+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?n.appendChild(e):0<o.length&&!a?(a=document.createElement("div"),a.style.cssText=o,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,n.appendChild(a)):(n.style.cssText=o,n.innerHTML=e),e=n.style,e.fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=t||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),n},mxVmlCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(t=this.rotatePoint(e,t,u.rotation,u.rotationCx,u.rotationCy),e=t.x,t=t.y),8==document.documentMode?(e+=u.dx,t+=u.dy):(e*=u.scale,t*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(t)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(h=mxUtils.getAlignmentAsPoint(o,s)).x,h=h.y;if(i=this.createDiv(i,o,s,d),o=document.createElement("div"),r?(!c&&0<n&&(i.style.width=Math.round(n)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(o.style.display="inline",o.style.zoom="1",o.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(o),l.appendChild(p)):l.appendChild(o)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?(m=document.createElement(mxClient.VML_PREFIX+":rect"),m.stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<n&&(i.style.width=Math.round(n)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=n+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){n=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),0>(n%=2*Math.PI)&&(n+=2*Math.PI),(n%=Math.PI)>Math.PI/2&&(n=Math.PI-n),s=Math.cos(n);var v=Math.sin(n);8==document.documentMode&&(i.style.display="inline-block",o.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),n=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&p>a&&(p=a,i.style.height=p+"px"),c=((a=p)-a*s+n*-v)/2-m*n*(g+.5)+r*a*(h+.5),d=(n-n*s+a*-v)/2+r*n*(g+.5)+m*a*(h+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?(g=document.createElement("div"),g.style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-n/2)*u.scale)+"px",g.style.top=this.format(t+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-n/2)*u)+"px",l.style.top=this.format(t+(c-a/2)*u)+"px"),o.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",o.style.backgroundColor=this.rotatedHtmlBackground,1>this.state.alpha&&(o.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",o.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",1>this.state.alpha&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),n=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&p>a&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+n*g*this.state.scale)+"px",l.style.top=this.format(t+a*h*this.state.scale)+"px"):(1>this.state.alpha&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*h+"%")}else this.plainText(e,t,n,a,mxUtils.htmlEntities(i,!1),o,s,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,t,n,a,i,o,s,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,t=(t+a.dy)*a.scale,(n=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",n.style.height="1px",n.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",n.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),n.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+o,d.style.align=o,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",o=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=o+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=o+((i=i.split("\n")).length-1)*o*mxConstants.LINE_HEIGHT,o=i=0,s==mxConstants.ALIGN_BOTTOM?o=-a/2:s!=mxConstants.ALIGN_MIDDLE&&(o=a/2),null!=m&&(n.style.rotation=m,s=m*(Math.PI/180),i=Math.sin(s)*o,o*=Math.cos(s)),n.appendChild(d),n.style.left=this.format(e-i)+"px",n.style.top=this.format(t+o)+"px",this.root.appendChild(n)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH),e.isDashed=!0,e},mxGuide.prototype.move=function(e,t,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=e&&null!=t){var a=this.graph.getView().translate,i=this.graph.getView().scale,o=t.x,s=t.y,r=!1,l=!1,d=b=this.getGuideTolerance(),c=b;(b=e.clone()).x+=t.x,b.y+=t.y;var m=b.x,u=b.x+b.width,p=b.getCenterX(),g=b.y,h=b.y+b.height,v=b.getCenterY();t=function(t){t+=this.graph.panDx;var n=!1;if(Math.abs(t-p)<d?(o=t-e.getCenterX(),d=Math.abs(t-p),n=!0):Math.abs(t-m)<d?(o=t-e.x,d=Math.abs(t-m),n=!0):Math.abs(t-u)<d&&(o=t-e.x-e.width,d=Math.abs(t-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var a=this.graph.container;t-=this.graph.panDx,this.guideX.points=[new mxPoint(t,-this.graph.panDy),new mxPoint(t,a.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var b=function(t){t+=this.graph.panDy;var n=!1;if(Math.abs(t-v)<c?(s=t-e.getCenterY(),c=Math.abs(t-v),n=!0):Math.abs(t-g)<c?(s=t-e.y,c=Math.abs(t-g),n=!0):Math.abs(t-h)<c&&(s=t-e.y-e.height,c=Math.abs(t-h),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var a=this.graph.container;t-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,t),new mxPoint(a.scrollWidth-3-this.graph.panDx,t)]}l=l||n},f=0;f<this.states.length;f++){var E=this.states[f];null!=E&&(this.horizontal&&(t.call(this,E.getCenterX()),t.call(this,E.x),t.call(this,E.x+E.width)),this.vertical&&(b.call(this,E.getCenterY()),b.call(this,E.y),b.call(this,E.y+E.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=e.x-(this.graph.snap(e.x/i-a.x)+a.x)*i,o=this.graph.snap(o/i)*i-n),l||(a=e.y-(this.graph.snap(e.y/i-a.y)+a.y)*i,s=this.graph.snap(s/i)*i-a)),t=new mxPoint(o,s)}return t},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&null!=(e=mxUtils.getChildNodes(e))&&0<e.length){this.constraints=[];for(var t=0;t<e.length;t++)this.constraints.push(this.parseConstraint(e[t]))}},mxStencil.prototype.parseConstraint=function(e){var t=Number(e.getAttribute("x")),n=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(t,n),e)},mxStencil.prototype.evaluateTextAttribute=function(e,t,n){return t=this.evaluateAttribute(e,t,n),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(t=mxResources.get(t)),t},mxStencil.prototype.evaluateAttribute=function(e,t,n){return null==(t=e.getAttribute(t))&&null!=(e=mxUtils.getTextContent(e))&&"function"==typeof(e=mxUtils.eval(e))&&(t=e(n)),t},mxStencil.prototype.drawShape=function(e,t,n,a,i,o){this.drawChildren(e,t,n,a,i,o,this.bgNode,!1),this.drawChildren(e,t,n,a,i,o,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,t,n,a,i,o,s,r){if(null!=s){var l=mxUtils.getValue(t.style,mxConstants.STYLE_DIRECTION,null);for(n=this.computeAspect(t.style,n,a,i,o,l),a=Math.min(n.width,n.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(t.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),s=s.firstChild;null!=s;)s.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,t,s,n,r),s=s.nextSibling}},mxStencil.prototype.computeAspect=function(e,t,n,a,i,o){e=t,t=a/this.w0;var s=i/this.h0;if(o="north"==o||"south"==o){s=a/this.h0,t=i/this.w0;var r=(a-i)/2;e+=r,n-=r}return"fixed"==this.aspect&&(t=s=Math.min(t,s),o?(e+=(i-this.w0*t)/2,n+=(a-this.h0*s)/2):(e+=(a-this.w0*t)/2,n+=(i-this.h0*s)/2)),new mxRectangle(e,n,t,s)},mxStencil.prototype.drawNode=function(e,t,n,a,i){var o=n.nodeName,s=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==o)e.save();else if("restore"==o)e.restore();else if("path"==o)for(e.begin(),n=n.firstChild;null!=n;)n.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,t,n,a,i),n=n.nextSibling;else if("close"==o)e.close();else if("move"==o)e.moveTo(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("line"==o)e.lineTo(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("quad"==o)e.quadTo(s+Number(n.getAttribute("x1"))*l,r+Number(n.getAttribute("y1"))*d,s+Number(n.getAttribute("x2"))*l,r+Number(n.getAttribute("y2"))*d);else if("curve"==o)e.curveTo(s+Number(n.getAttribute("x1"))*l,r+Number(n.getAttribute("y1"))*d,s+Number(n.getAttribute("x2"))*l,r+Number(n.getAttribute("y2"))*d,s+Number(n.getAttribute("x3"))*l,r+Number(n.getAttribute("y3"))*d);else if("arc"==o)e.arcTo(Number(n.getAttribute("rx"))*l,Number(n.getAttribute("ry"))*d,Number(n.getAttribute("x-axis-rotation")),Number(n.getAttribute("large-arc-flag")),Number(n.getAttribute("sweep-flag")),s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("rect"==o)e.rect(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d);else if("roundrect"==o)0==(t=n.getAttribute("arcsize"))&&(t=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(n.getAttribute("w"))*l,a=Number(n.getAttribute("h"))*d,t=Number(t)/100,t=Math.min(c*t,a*t),e.roundrect(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,c,a,t,t);else if("ellipse"==o)e.ellipse(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d);else if("image"==o)t=this.evaluateAttribute(n,"src",t),e.image(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d,t,!1,"1"==n.getAttribute("flipH"),"1"==n.getAttribute("flipV"));else if("text"==o){if(c=this.evaluateTextAttribute(n,"str",t),a="1"==n.getAttribute("vertical")?-90:0,"0"==n.getAttribute("align-shape")){var m=t.rotation,u=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPH,0);t=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPV,0),a=u&&t?a-m:u||t?a+m:a-m}a-=n.getAttribute("rotation"),e.text(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,0,0,c,n.getAttribute("align")||"left",n.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==o)null!=(m=mxStencilRegistry.getStencil(n.getAttribute("name")))&&(s+=Number(n.getAttribute("x"))*l,r+=Number(n.getAttribute("y"))*d,c=Number(n.getAttribute("w"))*l,a=Number(n.getAttribute("h"))*d,m.drawShape(e,t,s,r,c,a));else if("fillstroke"==o)e.fillAndStroke();else if("fill"==o)e.fill();else if("stroke"==o)e.stroke();else if("strokewidth"==o)e.setStrokeWidth(Number(n.getAttribute("width"))*c);else if("dashed"==o)e.setDashed("1"==n.getAttribute("dashed"));else if("dashpattern"==o){if(null!=(n=n.getAttribute("pattern"))){for(n=n.split(" "),l=[],d=0;d<n.length;d++)0<n[d].length&&l.push(Number(n[d])*c);n=l.join(" "),e.setDashPattern(n)}}else"strokecolor"==o?e.setStrokeColor(n.getAttribute("color")):"linecap"==o?e.setLineCap(n.getAttribute("cap")):"linejoin"==o?e.setLineJoin(n.getAttribute("join")):"miterlimit"==o?e.setMiterLimit(Number(n.getAttribute("limit"))):"fillcolor"==o?e.setFillColor(n.getAttribute("color")):"alpha"==o?e.setAlpha(n.getAttribute("alpha")):"fontcolor"==o?e.setFontColor(n.getAttribute("color")):"fontstyle"==o?e.setFontStyle(n.getAttribute("style")):"fontfamily"==o?e.setFontFamily(n.getAttribute("family")):"fontsize"==o&&e.setFontSize(Number(n.getAttribute("size"))*c);i&&("fillstroke"==o||"fill"==o||"stroke"==o)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var t=1;t<this.points.length;t++)null!=e[t]&&this.bounds.add(new mxRectangle(Number(e[t].x),Number(e[t].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,t=null;if(null!=this.node.ownerSVGElement)e=new mxSvgCanvas2D(this.node,!1),e.strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,t=this.getSvgScreenOffset(),0!=t?this.node.setAttribute("transform","translate("+t+","+t+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var n=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height)),t=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(t,!1);""!=t.tagUrn&&(t.coordsize=n*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),t=this.scale,e.translate(-Math.round(this.bounds.x/t),-Math.round(this.bounds.y/t))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),t=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=t+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var t in e.gradients){var n=e.gradients[t];n.mxRefCount=(n.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var t=this.scale,n=this.bounds.x/t,a=this.bounds.y/t,i=this.bounds.width/t,o=this.bounds.height/t;if(this.isPaintBoundsInverted())var s=(i-o)/2,n=n+s,a=a-s,s=i,i=o,o=s;if(this.updateTransform(e,n,a,i,o),this.configureCanvas(e,n,a,i,o),null!=this.stencil)this.paintStencilShape(e,n,a,i,o);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(n=[],a=0;a<this.points.length;a++)n.push(new mxPoint(this.points[a].x/t,this.points[a].y/t));this.paintEdgeShape(e,n)}else this.paintVertexShape(e,n,a,i,o)},mxShape.prototype.configureCanvas=function(e,t,n,a,i){var o=null;null!=this.style&&(o=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=o&&e.setDashPattern(o),null!=this.gradient?(t=this.getGradientBounds(e,t,n,a,i),e.setGradient(this.fill,this.gradient,t.x,t.y,t.width,t.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,t,n,a,i){return new mxRectangle(t,n,a,i)},mxShape.prototype.updateTransform=function(e,t,n,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,t+a/2,n+i/2)},mxShape.prototype.paintStencilShape=function(e,t,n,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,t,n,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,t,n,a,i)},mxShape.prototype.paintVertexShape=function(e,t,n,a,i){this.paintBackground(e,t,n,a,i),e.setShadow(!1),this.paintForeground(e,t,n,a,i)},mxShape.prototype.paintBackground=function(e,t,n,a,i){},mxShape.prototype.paintForeground=function(e,t,n,a,i){},mxShape.prototype.paintEdgeShape=function(e,t){},mxShape.prototype.getArcSize=function(e,t){var n=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*n,t*n)},mxShape.prototype.paintGlassEffect=function(e,t,n,a,i,o){var s=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",t,n,a,.6*i,"south",.9,.1),e.begin(),o+=2*s,this.isRounded?(e.moveTo(t-s+o,n-s),e.quadTo(t-s,n-s,t-s,n-s+o),e.lineTo(t-s,n+.4*i),e.quadTo(t+.5*a,n+.7*i,t+a+s,n+.4*i),e.lineTo(t+a+s,n-s+o),e.quadTo(t+a+s,n-s,t+a+s-o,n-s)):(e.moveTo(t-s,n-s),e.lineTo(t-s,n+.4*i),e.quadTo(t+.5*a,n+.7*i,t+a+s,n+.4*i),e.lineTo(t+a+s,n-s)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var t=this.getShapeRotation();0!=t&&(e=mxUtils.getBoundingBox(e,t)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var t=(e.width-e.height)/2;e.x+=t,e.y-=t,t=e.width,e.width=e.height,e.height=t}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var t=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(t/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,t,n,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",t),e.setAttribute("y",n),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var t in e){var n=e[t];n.mxRefCount=(n.mxRefCount||0)-1,0==n.mxRefCount&&null!=n.parentNode&&n.parentNode.removeChild(n)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,t){mxStencilRegistry.stencils[e]=t},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,t){mxMarker.markers[e]=t},createMarker:function(e,t,n,a,i,o,s,r,l,d){var c=mxMarker.markers[n];return null!=c?c(e,t,n,a,i,o,s,r,l,d):null}};!function(){function e(e,t,n,a,i,o,s,r,l,d){t=1.118*i*l,r=1.118*o*l,i*=s+l,o*=s+l;var c=a.clone();return c.x-=t,c.y-=r,s=n!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*s-t,a.y+=-o*s-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-o/2,c.y-o+i/2),n==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*o/4),e.lineTo(c.x+o/2-i,c.y-o-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function t(e,t,n,a,i,o,s,r,l,d){r=n==mxConstants.ARROW_DIAMOND?.7071:.9862,t=i*l*r,r*=o*l,i*=s+l,o*=s+l;var c=a.clone();c.x-=t,c.y-=r,a.x+=-i-t,a.y+=-o-r;var m=n==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-o/m,c.y+i/m-o/2),e.lineTo(c.x-i,c.y-o),e.lineTo(c.x-i/2+o/m,c.y-o/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,t,n,a,i,o,s,r,l,d){t=1.118*i*l,n=1.118*o*l,i*=s+l,o*=s+l;var c=a.clone();return c.x-=t,c.y-=n,a.x+=2*-t,a.y+=2*-n,function(){e.begin(),e.moveTo(c.x-i-o/2,c.y-o+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+o/2-i,c.y-o-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,t,n,a,i,o,s,r,l,d){var c=s/2,m=a.clone();return a.x-=i*c,a.y-=o*c,function(){e.ellipse(m.x-c,m.y-c,s,s),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",t),mxMarker.addMarker("diamondThin",t)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,t,n,a,i){e.translate(t,n),e.begin(),this.redrawPath(e,t,n,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,t,n,a,i){t=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-t,2*i/5,a/2-t,0,a/2,0),e.curveTo(a/2+t,0,a/2+t,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,t,n,a,i){if(this.isRounded){var o=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,o=Math.min(a*o,i*o);e.roundrect(t,n,a,i,o,o)}else e.rect(t,n,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,t,n,a,i){this.glass&&this.paintGlassEffect(e,t,n,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var t=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,t)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-t/2)+"px",e.style.top=Math.round(this.bounds.y-t/2)+"px","CSS1Compat"==document.compatMode&&(t=-t),e.style.width=Math.round(Math.max(0,this.bounds.width+t))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+t))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var t=this.stroke;null!=t&&t!=mxConstants.NONE?(e.style.borderColor=t,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(t=this.fill)&&t!=mxConstants.NONE?(e.style.backgroundColor=t,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var t="";if(100>this.opacity&&(t+="alpha(opacity="+this.opacity+")"),this.isShadow&&(t+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var n=this.fill,a=this.gradient,i="0",o={east:0,south:1,west:2,north:3},s=null!=this.direction?o[this.direction]:0;null!=this.gradientDirection&&(s=mxUtils.mod(s+o[this.gradientDirection]-1,4)),1==s?(i="1",o=n,n=a,a=o):2==s?(o=n,n=a,a=o):3==s&&(i="1"),t+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+n+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=t},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,t,n,a,i){e.ellipse(t,n,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,t,n,a,i){e.ellipse(t,n,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,t,n,a,i){var o=Math.min(4,Math.min(a/5,i/5));i-=2*o,0<(a-=2*o)&&0<i&&e.ellipse(t+o,n+o,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,t,n,a,i){var o=a/2,s=i/2;e.begin(),e.moveTo(t+o,n),e.lineTo(t+a,n+s),e.lineTo(t+o,n+i),e.lineTo(t,n+s),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,t){this.paintLine(e,t,this.isRounded)},mxPolyline.prototype.paintLine=function(e,t,n){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=t[0],o=t[t.length-1];e.begin(),e.moveTo(i.x,i.y);for(var s=1;s<t.length-1;s++){var r=t[s],l=i.x-r.x,i=i.y-r.y;if(n&&s<t.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=t[s+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(o.x,o.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,t){var n=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,o=t[0],s=t[t.length-1],r=s.x-o.x,l=s.y-o.y,d=(c=Math.sqrt(r*r+l*l))-2*n-i,r=r/c,c=a*(l=l/c)/3,a=-a*r/3,m=(i=o.x-c/2+n*r)+c,u=(o=o.y-a/2+n*l)+a,p=m+d*r,g=p+c,h=(d=u+d*l)+a,v=g-3*c,b=h-3*a;e.begin(),e.moveTo(i,o),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,h),e.lineTo(s.x-n*r,s.y-n*l),e.lineTo(v,b),e.lineTo(v+c,b+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&null!=(e=e.firstChild).firstChild&&(e=e.firstChild),this.boundingBox=this.bounds.clone();var t=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var n=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,n=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(t=e.getBBox()).width&&0==t.height)return;this.boundingBox=new mxRectangle(t.x,t.y,t.width,t.height),t=0}else a=this.state.view.textDiv,null!=this.offsetWidth&&null!=this.offsetHeight?(n=this.wrap?this.bounds.width:this.offsetWidth*this.scale,a=this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(n=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=n),n=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a=a.offsetHeight*this.scale):(n=this.wrap?this.bounds.width:e.offsetWidth*this.scale,a=e.offsetHeight*this.scale);null!=n&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*n,this.bounds.y+this.margin.y*a,n,a))}null!=this.boundingBox&&(0!=t&&(t=mxUtils.getBoundingBox(this.boundingBox,t),this.boundingBox.x=t.x,this.boundingBox.y=t.y,mxClient.IS_QUIRKS||(this.boundingBox.width=t.width,this.boundingBox.height=t.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,t,n,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var t=this.scale,n=this.bounds.x/t,a=this.bounds.y/t,i=this.bounds.width/t,t=this.bounds.height/t;this.updateTransform(e,n,a,i,t),this.configureCanvas(e,n,a,i,t);var o=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,s=o||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!o&&"html"==s&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==s?r.replace(/\n/g,"<br/>"):r,e.text(n,a,i,t,r,this.align,this.valign,this.wrap,s,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=1>this.opacity?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),t=this.node.style,n=this.margin.x,a=this.margin.y;0!=e?(t[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-n+"% "+100*-a+"%",t[mxClient.CSS_PREFIX+"Transform"]="translate("+100*n+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(t[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",t[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*n+"%,"+100*a+"%)"),t.left=Math.round(this.bounds.x)+"px",t.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,t=this.margin.x,n=this.margin.y,a=this.scale;e.filter="";var i=0,o=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{s=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(s=mxUtils.htmlEntities(s,!1)),s=this.replaceLinefeeds?s.replace(/\n/g,"<br/>"):s,r.innerHTML=s}i=r.offsetWidth+2,o=r.offsetHeight+2}else i=this.node.offsetWidth,o=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=o,r=this.bounds.width/a,s=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<s?(s=Math.min(s,o),e.height=Math.round(s+1)+"px"):s=o,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);var s=s*a,r=r*a,i=this.getTextRotation()*(Math.PI/180),o=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),l=parseFloat(parseFloat(Math.sin(-i)).toFixed(8));0>(i=i%(2*Math.PI))&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(s-s*d+r*c)/2+l*(t=r*-(t+.5))-o*(n=s*-(n+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+o+", M12="+l+", M21="+-l+", M22="+o+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+s*c)/2-o*t-l*n)-r/2)+"px",e.top=Math.round(this.bounds.y+m-s/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));var e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e,t=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,n=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=t||null!=n)if("fill"==this.overflow)null!=t&&(this.node.style.backgroundColor=t),null!=n&&(this.node.style.border="1px solid "+n);else{var a="";null!=t&&(a+="background-color:"+t+";"),null!=n&&(a+="border:1px solid "+n+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var t=Math.round(this.bounds.width/this.scale),n=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<n&&(e.maxHeight=n+"px"),0<t&&(e.width=t+"px")):"fill"==this.overflow&&(e.width=t+"px",0<n&&(e.maxHeight=n+"px")),this.wrap?(!this.clipped&&0<t&&(e.width=t+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,t,n,a,i){n+=i/2,e.begin(),e.moveTo(t,n),e.lineTo(t+a,n),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,t,n,a,i){if(null!=this.image){var o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==o&&null==s||(e.setFillColor(o),e.setStrokeColor(s),e.rect(t,n,a,i),e.fillAndStroke()),e.image(t,n,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var t=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=t,this.flipH&&this.flipV?t+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?t+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(t+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=t&&(e.style.filter=t),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,t,n,a,i){this.paintImage(e,t,n,a,i),this.paintIndicator(e,t,n,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,t,n,a,i){null!=this.image&&(t=this.getImageBounds(t,n,a,i),e.image(t.x,t.y,t.width,t.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,t,n,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return e=i==mxConstants.ALIGN_CENTER?e+(n-s)/2:i==mxConstants.ALIGN_RIGHT?e+(n-s-l):e+l,t=o==mxConstants.ALIGN_TOP?t+l:o==mxConstants.ALIGN_BOTTOM?t+(a-r-l):t+(a-r)/2,new mxRectangle(e,t,s,r)},mxLabel.prototype.paintIndicator=function(e,t,n,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(t,n,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(t=this.getIndicatorBounds(t,n,a,i),e.image(t.x,t.y,t.width,t.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,t,n,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return e=i==mxConstants.ALIGN_RIGHT?e+(n-s-l):i==mxConstants.ALIGN_CENTER?e+(n-s)/2:e+l,t=o==mxConstants.ALIGN_BOTTOM?t+(a-r-l):o==mxConstants.ALIGN_TOP?t+l:t+(a-r)/2,new mxRectangle(e,t,s,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var t=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);t.x-=this.bounds.x,t.y-=this.bounds.y,e.style.left=Math.round(t.x)+"px",e.style.top=Math.round(t.y)+"px",e.style.width=Math.round(t.width)+"px",e.style.height=Math.round(t.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,t,n,a,i){e.translate(t,n),e.begin(),this.redrawPath(e,t,n,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,t,n,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,t,n,a,i,o){t=Math.min(this.maxHeight,Math.round(i/5)),(o&&null!=this.fill||!o&&null==this.fill)&&(e.moveTo(0,t),e.curveTo(0,2*t,a,2*t,a,t),o||(e.stroke(),e.begin())),o||(e.moveTo(0,t),e.curveTo(0,-t/3,a,-t/3,a,t),e.lineTo(a,i-t),e.curveTo(a,i+t/3,0,i+t/3,0,i-t),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,t){var n=this.createMarker(e,t,!0),a=this.createMarker(e,t,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,t,this.isRounded):this.paintCurvedLine(e,t),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=n&&n(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,t){e.begin();var n=t[0],a=t.length;for(e.moveTo(n.x,n.y),n=1;n<a-2;n++){var i=t[n],o=t[n+1];e.quadTo(i.x,i.y,(i.x+o.x)/2,(i.y+o.y)/2)}i=t[a-2],o=t[a-1],e.quadTo(i.x,i.y,o.x,o.y),e.stroke()},mxConnector.prototype.createMarker=function(e,t,n){var a=t.length,i=n?t[1]:t[a-2],a=(t=n?t[0]:t[a-1]).x-i.x,o=t.y-i.y,i=a/(s=Math.max(1,Math.sqrt(a*a+o*o))),a=o/s,o=mxUtils.getNumber(this.style,n?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),s=mxUtils.getValue(this.style,n?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW);return mxMarker.createMarker(e,this,s,t,i,a,o,n,this.strokewidth,0!=this.style[n?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var t=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(t=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(t=Math.max(t,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(t*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,t,n,a,i){return e=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),new mxRectangle(t,n,a,e)},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,t,n){return e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,3*n*e},mxSwimlane.prototype.paintVertexShape=function(e,t,n,a,i){var o=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),s=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(t,n),this.isRounded?(l=this.getArcSize(a,i,o),this.paintRoundedSwimlane(e,t,n,a,i,o,l,s,r)):this.paintSwimlane(e,t,n,a,i,o,s,r),s=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,o,i,s),null!=this.image&&(i=this.getImageBounds(t,o,a,i),e.image(i.x-t,i.y-n,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,o,l))},mxSwimlane.prototype.paintSwimlane=function(e,t,n,a,i,o,s,r){s!=mxConstants.NONE&&(e.save(),e.setFillColor(s),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,o),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,o),r&&e.close(),e.fillAndStroke(),o<i&&s==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,o),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,o),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,t,n,a,i,o,s,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,s,s),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,o),e.lineTo(a,s),e.quadTo(a,0,a-Math.min(a/2,s),0),e.lineTo(Math.min(a/2,s),0),e.quadTo(0,0,0,s),e.lineTo(0,o),l&&e.close(),e.fillAndStroke(),o<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,o),e.lineTo(0,i-s),e.quadTo(0,i,Math.min(a/2,s),i),e.lineTo(a-Math.min(a/2,s),i),e.quadTo(a,i,a,i-s),e.lineTo(a,o),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,t,n,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(t,n),e.lineTo(t,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,t,n,a){return new mxRectangle(e+n-this.imageSize,t,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,t,n){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,t,n,a){return n=this.graph.view.getState(t),t=null!=n?n.style:this.graph.getCellStyle(t),null!=t?t[e]:null},mxGraphLayout.traverse=function(e,t,n,a,i){if(null!=n&&null!=e){t=null==t||t,i=i||[];var o=mxCellPath.create(e);if(null==i[o]&&(i[o]=e,null==(a=n(e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(o=0;o<a;o++){var s=this.graph.model.getEdgeAt(e,o),r=this.graph.model.getTerminal(s,!0)==e;t&&!r||(r=this.graph.view.getVisibleTerminal(s,!r),this.traverse(r,t,n,s,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var t=this.graph.getModel();return!t.isEdge(e)||!this.graph.isCellVisible(e)||null==t.getTerminal(e,!0)||null==t.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,t){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,t?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,t){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,t?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var t=new mxPoint;if(null!=e&&e!=this.parent){var n=this.graph.getModel();if(n.isAncestor(this.parent,e))for(var a=n.getGeometry(e);e!=this.parent;)t.x+=a.x,t.y+=a.y,e=n.getParent(e),a=n.getGeometry(e)}return t},mxGraphLayout.prototype.setEdgePoints=function(e,t){if(null!=e){var n=this.graph.model,a=n.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=t)for(var i=n.getParent(e),i=this.getParentOffset(i),o=0;o<t.length;o++)t[o].x-=i.x,t[o].y-=i.y;a.points=t,n.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,t,n){var a=this.graph.getModel(),i=a.getGeometry(e),o=null;if(null!=i){if(o=new mxRectangle(t,n,i.width,i.height),this.useBoundingBox){var s=this.graph.getView().getState(e);if(null!=s&&null!=s.text&&null!=s.text.boundingBox){var r=this.graph.getView().scale,l=s.text.boundingBox;s.text.boundingBox.x<s.x&&(t+=(s.x-l.x)/r,o.width=l.width),s.text.boundingBox.y<s.y&&(n+=(s.y-l.y)/r,o.height=l.height)}}null!=this.parent&&null!=(s=a.getParent(e))&&s!=this.parent&&(s=this.getParentOffset(s),t-=s.x,n-=s.y),i.x==t&&i.y==n||(i=i.clone(),i.x=t,i.y=n,a.setGeometry(e,i))}return o},mxGraphLayout.prototype.getVertexBounds=function(e){r=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&null!=(s=this.graph.getView().getState(e))&&null!=s.text&&null!=s.text.boundingBox)var t=this.graph.getView().scale,n=s.text.boundingBox,a=Math.max(s.x-n.x,0)/t,i=Math.max(s.y-n.y,0)/t,o=Math.max(n.x+n.width-(s.x+s.width),0)/t,s=Math.max(n.y+n.height-(s.y+s.height),0)/t,r=new mxRectangle(r.x-a,r.y-i,r.width+a+o,r.height+i+s);return null!=this.parent&&(e=this.graph.getModel().getParent(e),r=r.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),r.x+=e.x,r.y+=e.y)),new mxRectangle(r.x,r.y,r.width,r.height)},mxGraphLayout.prototype.arrangeGroups=function(e,t){this.graph.getModel().beginUpdate();try{for(var n=e.length-1;0<=n;n--){var a=e[n],i=this.graph.getChildVertices(a),o=this.graph.getBoundingBoxFromGeometry(i),s=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a))var d=this.graph.getStartSize(a),r=d.width,l=d.height;null!=o&&null!=s&&(s=s.clone(),s.x=s.x+o.x-t-r,s.y=s.y+o.y-t-l,s.width=o.width+2*t+r,s.height=o.height+2*t+l,this.graph.getModel().setGeometry(a,s),this.graph.moveCells(i,t+r-o.x,t+l-o.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,t,n){var a=this.graph.getModel(),i=a.getParent(e),o=this.isHorizontal();if(null!=e&&null!=i){var s=0,r=0,l=a.getChildCount(i);for(t=o?t:n,null!=(s=this.graph.getView().getState(i))&&(t-=o?s.x:s.y),s=0;s<l;s++)if((n=a.getChildAt(i,s))!=e&&null!=(n=a.getGeometry(n))){if(n=o?n.x+n.width/2:n.y+n.height/2,r<t&&n>t)break;r=n}o=i.getIndex(e),o=Math.max(0,s-(s>o?1:0)),a.add(i,e,o)}},mxStackLayout.prototype.getParentSize=function(e){var t=this.graph.getModel(),n=t.getGeometry(e);return null!=this.graph.container&&(null==n&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(n=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),n},mxStackLayout.prototype.execute=function(e){if(null!=e){var t=this.isHorizontal(),n=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=t?a.height:a.width);var i=i-(2*this.spacing+2*this.border),o=this.x0+this.border,s=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);t==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),t?s+=l:o+=l}n.beginUpdate();try{for(var l=0,r=null,d=n.getChildCount(e),c=0;c<d;c++){var m=n.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=n.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(t&&r.x+r.width+u.width+2*this.spacing>this.wrap||!t&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,t?s+=l+this.spacing:o+=l+this.spacing,l=0),l=Math.max(l,t?u.height:u.width),null!=r?t?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(t?u.x=o:u.y=s),t?u.y=s:u.x=o,this.fill&&0<i&&(t?u.height=i:u.width=i),n.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),t?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,n.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(t?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{n.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,t,n){var a=(n=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){for(var i=0,o=0,s=n.getChildCount(a),i=0;i<s;i++){var r=n.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,o<t&&r>t)break;o=r}}t=a.getIndex(e),t=Math.max(0,i-(i>t?1:0)),n.add(a,e,t)}},mxPartitionLayout.prototype.execute=function(e){var t=this.isHorizontal(),n=this.graph.getModel(),a=n.getGeometry(e);if(null!=this.graph.container&&(null==a&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],o=n.getChildCount(e),s=0;s<o;s++){c=n.getChildAt(e,s);!this.isVertexIgnored(c)&&this.isVertexMovable(c)&&i.push(c)}if(0<(o=i.length)){var r=this.border,l=this.border,d=(d=t?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,d-=t?e.height:e.width,r+=e.width,l+=e.height,e=this.border+(o-1)*this.spacing,0<(a=t?(a.width-r-e)/o:(a.height-l-e)/o)){n.beginUpdate();try{for(s=0;s<o;s++){var c=i[s],m=n.getGeometry(c);null!=m&&(m=m.clone(),m.x=r,m.y=l,t?(this.resizeVertices&&(m.width=a,m.height=d),r+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=d),l+=a+this.spacing),n.setGeometry(c,m))}}finally{n.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,t){this.parent=e;var n=this.graph.getModel();if(null==t)if(0<this.graph.getEdges(e,n.getParent(e),this.invert,!this.invert,!1).length)t=e;else if(0<(s=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<s.length;a++)if(!this.isVertexIgnored(s[a])&&0<this.graph.getEdges(s[a],null,this.invert,!this.invert,!1).length){t=s[a];break}if(null!=t){this.parentsChanged=this.resizeParent?{}:null,n.beginUpdate();try{var i=this.dfs(t,e);if(null!=i){this.layout(i);var o=this.graph.gridSize,s=o;if(!this.moveTree){var r=this.getVertexBounds(t);null!=r&&(o=r.x,s=r.y)}if(r=null,null!=(r=this.isHorizontal()?this.horizontalLayout(i,o,s):this.verticalLayout(i,null,o,s))){var l=a=0;0>r.x&&(a=Math.abs(o-r.x)),0>r.y&&(l=Math.abs(s-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{n.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,t,n){for(e.x+=t,e.y+=n,this.apply(e),e=e.child;null!=e;)this.moveNode(e,t,n),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,t,n){n=null!=n?n:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==n[a]&&!this.isVertexIgnored(e)){n[a]=e;var i=this.createNode(e),a=this.graph.getModel(),o=null;e=this.graph.getEdges(e,t,this.invert,!this.invert,!1,!0);for(var s=this.graph.getView(),r=0;r<e.length;r++){d=e[r];if(!this.isEdgeIgnored(d)){this.resetEdges&&this.setEdgePoints(d,null),this.edgeRouting&&(this.setEdgeStyleEnabled(d,!1),this.setEdgePoints(d,null));var l=s.getState(d),d=null!=l?l.getVisibleTerminal(this.invert):s.getVisibleTerminal(d,this.invert);null!=(l=this.dfs(d,t,n))&&null!=a.getGeometry(d)&&(null==o?i.child=l:o.next=l,o=l)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var t=e.child;null!=t;)this.layout(t),t=t.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,t,n,a){if(e.x+=t+e.offsetX,e.y+=n+e.offsetY,a=this.apply(e,a),null!=(t=e.child)){a=this.horizontalLayout(t,e.x,e.y,a),n=e.y+t.offsetY;for(var i=t.next;null!=i;)a=this.horizontalLayout(i,e.x+t.offsetX,n,a),n+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,t,n,a,i){if(e.x+=n+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(t=e.child))for(i=this.verticalLayout(t,e,e.x,e.y,i),n=e.x+t.offsetY,a=t.next;null!=a;)i=this.verticalLayout(a,e,n,e.y+t.offsetX,i),n+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,t){var n=this.nodeDistance+this.levelDistance,a=(t-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-t;e.child.offsetX=n+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(n,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(n,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var t=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+t,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-t),e.contour.lowerHead=this.createLine(e.height+t,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var t=2*this.nodeDistance,n=e.child;e.contour=n.contour;for(var a=n.width+t,i=a,n=n.next;null!=n;){var o=this.merge(e.contour,n.contour);n.offsetY=o+a,n.offsetX=0,i+=o+(a=n.width+t),n=n.next}return i},mxCompactTreeLayout.prototype.merge=function(e,t){for(var n=0,a=0,i=0,o=e.lowerHead,s=t.upperHead;null!=s&&null!=o;){var r=this.offset(n,a,s.dx,s.dy,o.dx,o.dy),a=a+r,i=i+r;n+s.dx<=o.dx?(n+=s.dx,a+=s.dy,s=s.next):(n-=o.dx,a-=o.dy,o=o.next)}return null!=s?(n=this.bridge(e.upperTail,0,0,s,n,a),e.upperTail=null!=n.next?t.upperTail:n,e.lowerTail=t.lowerTail):null==(n=this.bridge(t.lowerTail,n,a,o,0,0)).next&&(e.lowerTail=n),e.lowerHead=t.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,t,n,a,i,o){var s=0;return i<=e||0>=e+n?0:(s=0<i*a-n*o?0>e?e*a/n-t:0<e?e*o/i-t:-t:i<e+n?o-(t+(i-e)*a/n):i>e+n?(n+e)*o/i-(t+a):o-(t+a),0<s?s:0)},mxCompactTreeLayout.prototype.bridge=function(e,t,n,a,i,o){return t=i+a.dx-t,i=i=0,0==a.dx?i=a.dy:(i=t*a.dy,i/=a.dx),t=this.createLine(t,i,a.next),e.next=this.createLine(0,o+a.dy-i-n,t),t},mxCompactTreeLayout.prototype.createNode=function(e){var t={};return t.cell=e,t.x=0,t.y=0,t.width=0,t.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(t.width=e.height,t.height=e.width):(t.width=e.width,t.height=e.height)),t.offsetX=0,t.offsetY=0,t.contour={},t},mxCompactTreeLayout.prototype.apply=function(e,t){var n=this.graph.getModel(),a=e.cell,i=n.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(n=n.getParent(a),a=mxCellPath.create(n),null==this.parentsChanged[a]&&(this.parentsChanged[a]=n))),t=null==t?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(t.x,i.x),Math.min(t.y,i.y),Math.max(t.x+t.width,i.x+i.width),Math.max(t.y+t.height,i.y+i.height))),t},mxCompactTreeLayout.prototype.createLine=function(e,t,n){var a={};return a.dx=e,a.dy=t,a.next=n,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,t=[];for(e in this.parentsChanged)t.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var t=e.child,n=e.cell,a=0,i=[];null!=t;){a++;o=t.x;this.horizontal&&(o=t.y),i.push(new WeightedCellSorter(t,o)),t=t.next}i.sort(WeightedCellSorter.prototype.compare),(o=e.width)>(s=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(o-=2*this.prefHozEdgeSep),t=(e=o/a)/2,o>s+2*this.prefHozEdgeSep&&(t+=this.prefHozEdgeSep);for(var o=this.minEdgeJetty-this.prefVertEdgeOff,s=0,r=this.getVertexBounds(n),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),d=this.graph.getEdgesBetween(n,d,!1),m=[],u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+t,m.push(new mxPoint(u,p)),u=r.x+r.width+o,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+t,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+o,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?o+=this.prefVertEdgeOff:l>a/2&&(o-=this.prefVertEdgeOff),t+=e,s=Math.max(s,o)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.weightedValue>e.weightedValue?1:t.weightedValue<e.weightedValue?-1:t.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var t=this.graph.getModel();this.vertexArray=[];for(var n=this.graph.getChildVertices(e),a=0;a<n.length;a++)this.isVertexIgnored(n[a])||this.vertexArray.push(n[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,o=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],.001>this.forceConstant&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var s=this.vertexArray[a];this.cellLocation[a]=[];p=mxCellPath.create(s);this.indices[p]=a;var r=this.getVertexBounds(s),l=r.width,d=r.height,c=r.x,m=r.y;this.cellLocation[a][0]=c+l/2,this.cellLocation[a][1]=m+d/2,this.radius[a]=Math.min(l,d),this.radiusSquared[a]=this.radius[a]*this.radius[a]}t.beginUpdate();try{for(a=0;a<o;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var u=this.graph.getConnections(this.vertexArray[a],e),n=this.graph.getOpposites(u,this.vertexArray[a]);for(this.neighbours[a]=[],l=0;l<n.length;l++){this.resetEdges&&this.graph.resetEdge(u[l]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(u[l],!1);var p=mxCellPath.create(n[l]),g=this.indices[p];this.neighbours[a][l]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(o)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=n=null,a=0;a<this.vertexArray.length;a++)s=this.vertexArray[a],this.isVertexMovable(s)&&null!=(r=this.getVertexBounds(s))&&(this.cellLocation[a][0]-=r.width/2,this.cellLocation[a][1]-=r.height/2,c=this.graph.snap(this.cellLocation[a][0]),m=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(s,c,m),n=null==n?c:Math.min(n,c),e=null==e?m:Math.min(e,m));a=1-(n||0),s=1-(e||0),null!=i&&(a+=i.x,s+=i.y),this.graph.moveCells(this.vertexArray,a,s)}finally{t.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){.001>(n=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))&&(n=.001);var t=this.dispX[e]/n*Math.min(n,this.temperature),n=this.dispY[e]/n*Math.min(n,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=t,this.cellLocation[e][1]+=n}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var t=0;t<this.neighbours[e].length;t++){var n=this.neighbours[e][t];if(e!=n&&this.isMoveable[e]&&this.isMoveable[n]){var a=(o=this.cellLocation[e][0]-this.cellLocation[n][0])*o+(s=this.cellLocation[e][1]-this.cellLocation[n][1])*s-this.radiusSquared[e]-this.radiusSquared[n];a<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var i=Math.sqrt(a),o=o/i*(a=a/this.forceConstant),s=s/i*a;this.dispX[e]-=o,this.dispY[e]-=s,this.dispX[n]+=o,this.dispY[n]+=s}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,t=0;t<e;t++)for(var n=t;n<e;n++){if(!this.allowedToRun)return;if(n!=t&&this.isMoveable[t]&&this.isMoveable[n]){var a=this.cellLocation[t][0]-this.cellLocation[n][0],i=this.cellLocation[t][1]-this.cellLocation[n][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var o=Math.sqrt(a*a+i*i),s=o-this.radius[t]-this.radius[n];s>this.maxDistanceLimit||(s<this.minDistanceLimit&&(s=this.minDistanceLimit),s=this.forceConstantSquared/s,a=a/o*s,i=i/o*s,this.dispX[t]+=a,this.dispY[t]+=i,this.dispX[n]-=a,this.dispY[n]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0,a=null,i=null,o=[],s=t.getChildCount(e),r=0;r<s;r++){var l=t.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{o.push(l);var d=this.getVertexBounds(l),a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),n=Math.max(n,Math.max(d.width,d.height))}}var c=this.getRadius(o.length,n);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(o,c,i,a)}finally{t.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,t){return Math.max(e*t/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,t,n,a){for(var i=e.length,o=2*Math.PI/i,s=0;s<i;s++)this.isVertexMovable(e[s])&&this.setVertexLocation(e[s],n+t+t*Math.sin(s*o),a+t+t*Math.cos(s*o))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var t in e){var n=e[t];1<n.length&&this.layout(n)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var t=this.graph.getModel(),n=[],a=t.getChildCount(e),i=0;i<a;i++){var o=t.getChildAt(e,i);if(!this.isEdgeIgnored(o)){var s=this.getEdgeId(o);null!=s&&(null==n[s]&&(n[s]=[]),n[s].push(o))}}return n},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var t=this.graph.getView(),n=t.getState(e),a=null!=n?n.getVisibleTerminal(!0):t.getVisibleTerminal(e,!0);return e=null!=n?n.getVisibleTerminal(!1):t.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),e=mxCellPath.create(e),a>e?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){t=e[0];if((s=(n=this.graph.getModel()).getGeometry(n.getTerminal(t,!0)))==(o=n.getGeometry(n.getTerminal(t,!1))))for(var t=s.x+s.width+this.spacing,n=s.y+s.height/2,a=0;a<e.length;a++)this.route(e[a],t,n),t+=this.spacing;else if(null!=s&&null!=o)for(var t=s.x+s.width/2,n=s.y+s.height/2,a=o.x+o.width/2-t,i=o.y+o.height/2-n,o=Math.sqrt(a*a+i*i),s=i*this.spacing/o,o=a*this.spacing/o,t=t+a/2+s*(e.length-1)/2,n=n+i/2-o*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],t,n),t-=s,n+=o},mxParallelEdgeLayout.prototype.route=function(e,t,n){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(t,n)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,t,n){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0;n<this.layouts.length;n++)this.layouts[n].execute.apply(this.layouts[n],arguments)}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var t=this.graph.view,n=this.graph.getModel(),a=[],i=[],o=n.getChildCount(e),s=0;s<o;s++){var r=n.getChildAt(e,s),l=t.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,t){var n=this.graph.getModel();n.beginUpdate();try{for(var a=0;a<t.length;a++){var i=t[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var o=0;o<e.length;o++){var s=e[o];null!=s&&this.avoid(i,s)}}}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,t){var n=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,t)){var i=-a.y-a.height+t.y,o=-a.y+t.y+t.height,i=Math.abs(i)<Math.abs(o)?i:o,o=-a.x-a.width+t.x,a=-a.x+t.x+t.width,a=Math.abs(o)<Math.abs(a)?o:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(o=n.getGeometry(e.cell))&&(o=o.clone(),null!=o.offset?(o.offset.x+=a,o.offset.y+=i):o.offset=new mxPoint(a,i),n.setGeometry(e.cell,o))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,t){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,t){this.isVertex()?this.x[0]=t:this.isEdge()&&(this.x[e-this.minRank-1]=t)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,t){this.isVertex()?this.y[0]=t:this.isEdge()&&(this.y[e-this.minRank-1]=t)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var t=0;t<this.connectsAsTarget.length;t++){var n=this.connectsAsTarget[t];-1==n.maxRank||n.maxRank==e+1?this.nextLayerConnectedCells[0].push(n.source):this.nextLayerConnectedCells[0].push(n)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var t=0;t<this.connectsAsSource.length;t++){var n=this.connectsAsSource[t];-1==n.minRank||n.minRank==e-1?this.previousLayerConnectedCells[0].push(n.target):this.previousLayerConnectedCells[0].push(n)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,t){this.temp[0]=t},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var t=0;t<this.hashCode.length;t++)if(this.hashCode[t]!=e.hashCode[t])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var t=0;t<this.temp.length;t++)this.nextLayerConnectedCells[t]=[],t==this.temp.length-1?this.nextLayerConnectedCells[t].push(this.source):this.nextLayerConnectedCells[t].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var t=0;t<this.temp.length;t++)this.previousLayerConnectedCells[t]=[],0==t?this.previousLayerConnectedCells[t].push(this.target):this.previousLayerConnectedCells[t].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,t){this.temp[e-this.minRank-1]=t},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,t,n){for(var a=e.getGraph(),i=0;i<t.length;i++){n[i]=new mxGraphHierarchyNode(t[i]);var o=mxCellPath.create(t[i]);this.vertexMapper[o]=n[i],o=e.getEdges(t[i]),n[i].connectsAsSource=[];for(var s=0;s<o.length;s++)if((d=e.getVisibleTerminal(o[s],!1))!=t[i]&&d!=t[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(t[i],d,!1),l=e.getEdgesBetween(t[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){for(var l=new mxGraphHierarchyEdge(r),c=0;c<r.length;c++){var m=r[c],d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=n[i],0>mxUtils.indexOf(n[i].connectsAsSource,l)&&n[i].connectsAsSource.push(l)}}n[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(l=0;l<this.roots.length;l++){var t=mxCellPath.create(this.roots[l]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var n in this.vertexMapper)t=this.vertexMapper[n],t.temp[0]=-1;for(var a=e.slice();0<e.length;){var i,o;i=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;for(var s=!0,r=this.SOURCESCANSTARTRANK,l=0;l<i.length;l++){var d=i[l];if(5270620!=d.temp[0]){s=!1;break}d=d.source,r=Math.min(r,d.temp[0]-1)}if(s){if(t.temp[0]=r,this.maxRank=Math.min(this.maxRank,r),null!=o)for(l=0;l<o.length;l++)d=o[l],d.temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(l=e.shift(),e.push(t),l==t&&1==e.length)break}for(n in this.vertexMapper)t=this.vertexMapper[n],t.temp[0]-=this.maxRank;for(l=0;l<a.length;l++)for(e=0,i=(t=a[l]).connectsAsSource,n=0;n<i.length;n++)d=i[n],d=d.target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var e=[];this.ranks=[];for(a=0;a<this.maxRank+1;a++)e[a]=[],this.ranks[a]=e[a];n=null;if(null!=this.roots)for(var t=this.roots,n=[],a=0;a<t.length;a++){var i=mxCellPath.create(t[a]);n[a]=this.vertexMapper[i]}this.visit(function(t,n,a,i,o){if(0==o&&0>n.maxRank&&0>n.minRank&&(e[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=e[n.maxRank].length-1),null!=t&&null!=a&&1<t.maxRank-n.maxRank)for(a.maxRank=t.maxRank,a.minRank=n.maxRank,a.temp=[],a.x=[],a.y=[],t=a.minRank+1;t<a.maxRank;t++)e[t].push(a),a.setGeneralPurposeVariable(t,e[t].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,t,n,a){if(null!=t){for(var i=0;i<t.length;i++){var o=t[i];null!=o&&(null==a&&(a={}),n?(o.hashCode=[],o.hashCode[0]=this.dfsCount,o.hashCode[1]=i,this.extendedDfs(null,o,null,e,a,o.hashCode,i,0)):this.dfs(null,o,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,t,n,a,i,o){if(null!=t){var s=mxCellPath.create(t.cell);if(null==i[s])for(i[s]=t,a(e,t,n,o,0),e=t.connectsAsSource.slice(),n=0;n<e.length;n++)s=e[n],this.dfs(t,s.target,s,a,i,o+1);else a(e,t,n,o,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,t,n,a,i,o,s,r){if(null!=t)if(null==e||null!=t.hashCode&&t.hashCode[0]==e.hashCode[0]||(o=e.hashCode.length+1,t.hashCode=e.hashCode.slice(),t.hashCode[o-1]=s),s=mxCellPath.create(t.cell),null==i[s])for(i[s]=t,a(e,t,n,r,0),e=t.connectsAsSource.slice(),n=0;n<e.length;n++)s=e[n],this.extendedDfs(t,s.target,s,a,i,t.hashCode,n,r+1);else a(e,t,n,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(a=0;a<e.ranks.length;a++)this.nestedBestRanks[a]=e.ranks[a].slice();for(var t=0,n=this.calculateCrossings(e),a=0;a<this.maxIterations&&t<this.maxNoImprovementIterations;a++){this.weightedMedian(a,e),this.transpose(a,e);var i=this.calculateCrossings(e);if(i<n)for(n=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var o=e.ranks[i],s=0;s<o.length;s++){var r=o[s];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(o=e.ranks[i],s=0;s<o.length;s++)(r=o[s]).setGeneralPurposeVariable(i,s);if(0==n)break}for(t=[],n=[],a=0;a<e.maxRank+1;a++)n[a]=[],t[a]=n[a];for(a=0;a<this.nestedBestRanks.length;a++)for(i=0;i<this.nestedBestRanks[a].length;i++)n[a].push(this.nestedBestRanks[a][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var t=e.ranks.length,n=0,a=1;a<t;a++)n+=this.calculateRankCrossing(a,e);return n},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,t){for(var n=0,a=t.ranks[e],i=a.length,o=t.ranks[e-1].length,s=[],r=0;r<i;r++)s[r]=[];for(r=0;r<a.length;r++)for(var l=a[r],d=l.getGeneralPurposeVariable(e),c=l.getPreviousLayerConnectedCells(e),l=0;l<c.length;l++){var m=c[l].getGeneralPurposeVariable(e-1);s[d][m]=201207}for(r=0;r<i;r++)for(l=0;l<o;l++)if(201207==s[r][l]){for(a=r+1;a<i;a++)for(d=0;d<l;d++)201207==s[a][d]&&n++;for(a=0;a<r;a++)for(d=l+1;d<o;d++)201207==s[a][d]&&n++}return n/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,t){for(var n=!0,a=0;n&&10>a++;)for(var i=1==e%2&&1==a%2,n=!1,o=0;o<t.ranks.length;o++){for(var s=t.ranks[o],r=[],l=0;l<s.length;l++)0>(f=(b=s[l]).getGeneralPurposeVariable(o))&&(f=l),r[f]=b;for(var d=f=b=null,c=null,m=null,u=null,p=null,g=null,h=null,v=null,l=0;l<s.length-1;l++){if(0==l){for(var b=(h=r[l]).getNextLayerConnectedCells(o),f=h.getPreviousLayerConnectedCells(o),m=[],u=[],E=0;E<b.length;E++)m[E]=b[E].getGeneralPurposeVariable(o+1);for(E=0;E<f.length;E++)u[E]=f[E].getGeneralPurposeVariable(o-1)}else b=d,f=c,m=p,u=g,h=v;for(d=(v=r[l+1]).getNextLayerConnectedCells(o),c=v.getPreviousLayerConnectedCells(o),p=[],g=[],E=0;E<d.length;E++)p[E]=d[E].getGeneralPurposeVariable(o+1);for(E=0;E<c.length;E++)g[E]=c[E].getGeneralPurposeVariable(o-1);for(var y=0,A=0,E=0;E<m.length;E++)for(var C=0;C<p.length;C++)m[E]>p[C]&&y++,m[E]<p[C]&&A++;for(E=0;E<u.length;E++)for(C=0;C<g.length;C++)u[E]>g[C]&&y++,u[E]<g[C]&&A++;(A<y||A==y&&i)&&(d=h.getGeneralPurposeVariable(o),h.setGeneralPurposeVariable(o,v.getGeneralPurposeVariable(o)),v.setGeneralPurposeVariable(o,d),d=b,c=f,p=m,g=u,v=h,i||(n=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,t){var n=0==e%2;if(n)for(var a=t.maxRank-1;0<=a;a--)this.medianRank(a,n);else for(a=1;a<t.maxRank;a++)this.medianRank(a,n)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,t){for(var n=this.nestedBestRanks[e].length,a=[],i=[],o=0;o<n;o++){var s=this.nestedBestRanks[e][o],r=new MedianCellSorter;r.cell=s;var l;l=t?s.getNextLayerConnectedCells(e):s.getPreviousLayerConnectedCells(e);var d;d=t?e+1:e-1,null!=l&&0!=l.length?(r.medianValue=this.medianValue(l,d),a.push(r)):i[s.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),o=0;o<n;o++)null==i[o]&&(s=a.shift().cell).setGeneralPurposeVariable(e,o)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,t){for(var n=[],a=0,i=0;i<e.length;i++){var o=e[i];n[a++]=o.getGeneralPurposeVariable(t)}return n.sort(function(e,t){return e-t}),1==a%2?n[Math.floor(a/2)]:2==a?(n[0]+n[1])/2:(i=a/2,o=n[i-1]-n[0],a=n[a-1]-n[i],(n[i-1]*a+n[i]*o)/(o+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.medianValue>e.medianValue?-1:t.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var t=this.layout.getModel(),n={},a=mxUtils.clone(t.vertexMapper,null,!0),i=null;if(null!=t.roots){var o=t.roots,i=[];for(e=0;e<o.length;e++){var s=mxCellPath.create(o[e]);i[e]=t.vertexMapper[s]}}if(t.visit(function(e,t,i,o,s){t.isAncestor(e)&&(i.invert(),mxUtils.remove(i,e.connectsAsSource),e.connectsAsTarget.push(i),mxUtils.remove(i,t.connectsAsTarget),t.connectsAsSource.push(i)),e=mxCellPath.create(t.cell),n[e]=t,delete a[e]},i,!0,null),i=null,0<a.lenth&&(i=mxUtils.clone(a,null,!0)),e=mxUtils.clone(n,null,!0),t.visit(function(e,t,i,o,s){t.isAncestor(e)&&(i.invert(),mxUtils.remove(i,e.connectsAsSource),t.connectsAsSource.push(i),e.connectsAsTarget.push(i),mxUtils.remove(i,t.connectsAsTarget)),e=mxCellPath.create(t.cell),n[e]=t,delete a[e]},a,!0,e),o=this.layout.getGraph(),null!=i&&0<i.length)for(t=t.roots,e=0;e<i.length;e++)s=i[e].cell,0==o.getIncomingEdges(s).length&&t.push(s)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var t=0;t<e.ranks.length;t++){mxLog.write("Rank ",t," : ");for(var n=e.ranks[t],a=0;a<n.length;a++)mxLog.write(n[a].getGeneralPurposeVariable(t),"  ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var t=1e8;if(this.fineTuning)for(var n=0;n<this.maxIterations;n++){if(0!=n&&(this.medianPos(n,e),this.minNode(e)),this.currentXDelta<t){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],o=0;o<i.length;o++){var s=i[o];s.setX(a,s.getGeneralPurposeVariable(a))}t=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],o=0;o<i.length;o++)(s=i[o]).setGeneralPurposeVariable(a,s.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var t=[],n=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var o=0;o<a[i].length;o++){d=a[i][o];(s=new WeightedCellSorter(d,i)).rankIndex=o,s.visited=!0,t.push(s),n[d=mxCellPath.create(d.getCoreCell())]=s}}for(e=10*t.length,o=0;0<t.length&&o<=e;){var s=t.shift(),i=s.cell,r=s.weightedValue,l=parseInt(s.rankIndex),d=i.getNextLayerConnectedCells(r),c=i.getPreviousLayerConnectedCells(r),m=d.length,u=c.length,p=this.medianXValue(d,r+1),g=this.medianXValue(c,r-1),h=m+u,v=i.getGeneralPurposeVariable(r),b=v;if(0<h&&(b=(p*m+g*u)/h),m=!1,b<v-1?0==l?(i.setGeneralPurposeVariable(r,b),m=!0):(l=a[r][l-1],v=l.getGeneralPurposeVariable(r),v=v+l.width/2+this.intraCellSpacing+i.width/2,v<b?(i.setGeneralPurposeVariable(r,b),m=!0):v<i.getGeneralPurposeVariable(r)-1&&(i.setGeneralPurposeVariable(r,v),m=!0)):b>v+1&&(l==a[r].length-1?(i.setGeneralPurposeVariable(r,b),m=!0):(l=a[r][l+1],v=l.getGeneralPurposeVariable(r),v=v-l.width/2-this.intraCellSpacing-i.width/2,v>b?(i.setGeneralPurposeVariable(r,b),m=!0):v>i.getGeneralPurposeVariable(r)+1&&(i.setGeneralPurposeVariable(r,v),m=!0))),m){for(i=0;i<d.length;i++)r=d[i],r=mxCellPath.create(r.getCoreCell()),null!=(r=n[r])&&0==r.visited&&(r.visited=!0,t.push(r));for(i=0;i<c.length;i++)r=c[i],r=mxCellPath.create(r.getCoreCell()),null!=(r=n[r])&&0==r.visited&&(r.visited=!0,t.push(r))}s.visited=!1,o++}},mxCoordinateAssignment.prototype.medianPos=function(e,t){if(0==e%2)for(var n=t.maxRank;0<n;n--)this.rankMedianPosition(n-1,t,n);else for(n=0;n<t.maxRank-1;n++)this.rankMedianPosition(n+1,t,n)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,t,n){t=t.ranks[e];for(var a=[],i=[],o=0;o<t.length;o++){var s=t[o];a[o]=new WeightedCellSorter,a[o].cell=s,a[o].rankIndex=o;var r=mxCellPath.create(s.getCoreCell());i[r]=a[o];var l=null,l=n<e?s.getPreviousLayerConnectedCells(e):s.getNextLayerConnectedCells(e);a[o].weightedValue=this.calculatedWeightedValue(s,l)}for(a.sort(WeightedCellSorter.prototype.compare),o=0;o<a.length;o++){r=0,s=a[o].cell,r=0,null!=(l=n<e?s.getPreviousLayerConnectedCells(e).slice():s.getNextLayerConnectedCells(e).slice())&&(r=l.length,r=0<r?this.medianXValue(l,n):s.getGeneralPurposeVariable(e));for(var d=0,l=-1e8,c=a[o].rankIndex-1;0<=c;){var m=mxCellPath.create(t[c].getCoreCell());if(null!=(m=i[m])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+s.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[o].rankIndex+1;c<a.length;)if(m=mxCellPath.create(t[c].getCoreCell()),null!=(m=i[m])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-s.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}r>=l&&r<=u?s.setGeneralPurposeVariable(e,r):r<l?(s.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):r>u&&(s.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[o].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,t){for(var n=0,a=0;a<t.length;a++){var i=t[a];e.isVertex()&&i.isVertex()?n++:n=e.isEdge()&&i.isEdge()?n+8:n+2}return n},mxCoordinateAssignment.prototype.medianXValue=function(e,t){if(0==e.length)return 0;for(var n=[],a=0;a<e.length;a++)n[a]=e[a].getGeneralPurposeVariable(t);return n.sort(function(e,t){return e-t}),1==e.length%2?n[Math.floor(e.length/2)]:(a=e.length/2,(n[a-1]+n[a])/2)},mxCoordinateAssignment.prototype.initialCoords=function(e,t){this.calculateWidestRank(e,t);for(var n=this.widestRank;0<=n;n--)n<t.maxRank&&this.rankCoordinates(n,e,t);for(n=this.widestRank+1;n<=t.maxRank;n++)0<n&&this.rankCoordinates(n,e,t)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,t,n){t=n.ranks[e],n=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,o=0;o<t.length;o++){var s=t[o];if(s.isVertex()){var r=this.layout.getVertexBounds(s.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(s.width=r.width,s.height=r.height):(s.width=r.height,s.height=r.width):i=!0,n=Math.max(n,s.height)}else s.isEdge()&&(r=1,null!=s.edges?r=s.edges.length:mxLog.warn("edge.edges is null"),s.width=(r-1)*this.parallelEdgeSpacing);a+=s.width/2,s.setX(e,a),s.setGeneralPurposeVariable(e,a),a+=s.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,t){var n=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=t.maxRank;0<=i;i--){for(var o=0,s=t.ranks[i],r=this.initialX,l=!1,d=0;d<s.length;d++){var c=s[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,o=Math.max(o,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=n,r=o/2+a/2+this.interRankCellSpacing,a=o,n=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?n+r:n-r,d=0;d<s.length;d++)s[d].setY(i,n)}},mxCoordinateAssignment.prototype.minPath=function(e,t){var n,a=t.edgeMapper;for(n in a){var i=a[n];if(!(1>i.maxRank-i.minRank-1)){for(var o=i.getGeneralPurposeVariable(i.minRank+1),s=!0,r=0,l=i.minRank+2;l<i.maxRank;l++)o!=(d=i.getGeneralPurposeVariable(l))?(s=!1,o=d):r++;if(!s){for(var s=o=0,d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1),l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,o++):this.repositionValid(t,i,l+1,m)?(d[l-i.minRank-1]=m,o++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)u=i.getX(l-1),m==u?(c[l-i.minRank-2]=m,s++):this.repositionValid(t,i,l-1,m)?(c[l-i.minRank-2]=m,s++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(s>r||o>r)if(s>=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o>s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,t,n,a){e=e.ranks[n];for(var i=-1,o=0;o<e.length;o++)if(t==e[o]){i=o;break}if(0>i)return!1;if(o=t.getGeneralPurposeVariable(n),a<o){if(0==i)return!0;if(e=e[i-1],n=e.getGeneralPurposeVariable(n),!((n=n+e.width/2+this.intraCellSpacing+t.width/2)<=a))return!1}else if(a>o){if(i==e.length-1)return!0;if(e=e[i+1],n=e.getGeneralPurposeVariable(n),!((n=n-e.width/2-this.intraCellSpacing-t.width/2)>=a))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,t){this.rankTopY=[],this.rankBottomY=[];for(var n=0;n<t.ranks.length;n++)this.rankTopY[n]=Number.MAX_VALUE,this.rankBottomY[n]=0;n=null,this.layout.resizeParent&&(n={});var a,i=t.edgeMapper,o=t.vertexMapper;for(a in o){s=o[a];if(this.setVertexLocation(s),this.layout.resizeParent){var s=e.model.getParent(s.cell),r=mxCellPath.create(s);null==n[r]&&(n[r]=s)}}this.layout.resizeParent&&null!=n&&this.adjustParents(n),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(t);for(a in i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var t,n=[];for(t in e)n.push(e[t]);this.layout.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var t=0;t<e.ranks.length;t++)for(var n=e.ranks[t],a=0;a<n.length;a++){var i=n[a];if(i.isVertex())for(var o=i.getPreviousLayerConnectedCells(t),s=t-1,r=0;2>r;r++){if(-1<s&&s<e.ranks.length&&null!=o&&0<o.length){for(var l=[],d=0;d<o.length;d++){var c=new WeightedCellSorter(o[d],o[d].getX(s));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);for(var m=(c=i.x[0]-i.width/2)+i.width,u=o=0,s=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var h=0;h<p.length;h++)p[h].source!=g&&p[h].target!=g||(o+=p[h].edges.length,u++,s.push(p[h]))}else o+=g.edges.length,u++,s.push(g)}for(i.width>(o+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/o)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<s.length;d++){for(g=s[d].edges.length,h=mxCellPath.create(s[d].edges[0]),null==(p=this.jettyPositions[h])&&(p=[],this.jettyPositions[h]=p),d<o/2?m+=this.prefVertEdgeOff:d>o/2&&(m-=this.prefVertEdgeOff),h=0;h<g;h++)p[4*h+2*r]=c,c+=l,p[4*h+2*r+1]=m;u=Math.max(u,m)}}o=i.getNextLayerConnectedCells(t),s=t+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var t=0;if(101207!=e.temp[0]){var n=e.maxRank,a=e.minRank;n==a&&(n=e.source.maxRank,a=e.target.minRank);for(var i=0,o=mxCellPath.create(e.edges[0]),o=this.jettyPositions[o],s=e.isReversed?e.target.cell:e.source.cell,r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=s&&(p=!p),null!=o){var g=p?2:0,h=p?this.rankTopY[a]:this.rankBottomY[n],v=o[4*i+1+g];p&&(v=-v),h+=v,g=o[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=r.view.getState(m),g=null!=g?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,h)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,h+v))):(u.push(new mxPoint(h,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(h+v,g)))}for(g=e.x.length-1,h=v=-1,c=e.maxRank-1,p&&(g=0,v=e.x.length,h=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=v;g+=h){var m=e.x[g]+t,b=(this.rankTopY[c]+this.rankBottomY[c+1])/2,f=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p)var E=b,b=f,f=E;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,b)),u.push(new mxPoint(m,f))):(u.push(new mxPoint(b,m)),u.push(new mxPoint(f,m))),this.limitX=Math.max(this.limitX,m),c+=h}null!=o&&(g=p?2:0,h=p?this.rankBottomY[n]:this.rankTopY[a],v=o[4*i+3-g],p&&(v=-v),h-=v,g=o[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=r.view.getState(p),g=null!=g?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,h-v)),u.push(new mxPoint(g,h))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(h-v,g)),u.push(new mxPoint(h,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),t=0==t?this.parallelEdgeSpacing:0<t?-t:-t+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var t=e.cell,n=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(t,n,a):this.layout.setVertexLocation(t,a,n),this.limitX=Math.max(this.limitX,n+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,t){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.weightedValue>e.weightedValue?-1:t.weightedValue<e.weightedValue?1:t.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,t){this.parent=e;var n=this.graph.model;if(this.edgesCache={},null!=t||null!=e){if(null!=t&&null!=e){for(var a=[],i=0;i<t.length;i++)n.isAncestor(e,t[i])&&a.push(t[i]);this.roots=a}else this.roots=t;n.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{n.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,t){var n=[];if(null!=e&&null!=t){var a,i=this.graph.model,o=null,s=-1e5;for(a in t){var r=t[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&n.push(r),(l=d-c)>s&&(s=l,o=r)}}0==n.length&&null!=o&&n.push(o)}return n},mxHierarchicalLayout.prototype.getEdges=function(e){var t=mxCellPath.create(e);if(null!=this.edgesCache[t])return this.edgesCache[t];for(var n=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),o=n.getChildCount(e),s=0;s<o;s++){var r=n.getChildAt(e,s);this.isPort(r)?a=a.concat(n.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(n.getEdges(r,!0,!0)))}for(a=a.concat(n.getEdges(e,!0,!0)),n=[],s=0;s<a.length;s++)i=this.getVisibleTerminal(a[s],!0),o=this.getVisibleTerminal(a[s],!1),(i==o||i!=o&&(o==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(o,this.parent,this.traverseAncestors))))&&n.push(a[s]);return this.edgesCache[t]=n},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,t){var n=null!=(n=this.graph.view.getState(e))?n.getVisibleTerminal(t):this.graph.view.getVisibleTerminal(e,t);return this.isPort(n)&&(n=this.graph.model.getParent(n)),n},mxHierarchicalLayout.prototype.run=function(e){var t=[],n=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,o=!0;for(i in a)if(null!=a[i]){o=!1;break}for(;!o;){for(var s=this.findRoots(e,a),o=0;o<s.length;o++){var r=[];t.push(r),this.traverse(s[o],!0,null,n,r,t,a)}for(o=0;o<s.length;o++)this.roots.push(s[o]);o=!0;for(i in a)if(null!=a[i]){o=!1;break}}}else for(o=0;o<roots.length;o++)r=[],t.push(r),traverse(roots.get(o),!0,null,n,r,t,null);for(o=n=0;o<t.length;o++){r=t[o],a=[];for(i in r)a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),n=this.placementStage(n,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,t){var n=this.graph.model;if(n.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(t[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=n.getChildCount(e),i=0;i<a;i++){var o=n.getChildAt(e,i);this.isPort(o)||this.filterDescendants(o,t)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;for(var a=this.getEdges(e),i=[],o=0;o<a.length;o++){var s=this.getVisibleTerminal(a[o],!0),r=this.getVisibleTerminal(a[o],!1);(s==e&&r==t||!n&&s==t&&r==e)&&i.push(a[o])}return i},mxHierarchicalLayout.prototype.traverse=function(e,t,n,a,i,o,s){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=s&&null==s[r]){if(null==i[r])for(n=0;n<o.length;n++)if(null!=(e=o[n])[r]){for(l in i)e[l]=i[l];return o.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete s[r];var l=this.getEdges(e);for(n=0;n<l.length;n++)r=this.getVisibleTerminal(l[n],!0)==e,(!t||r)&&(r=this.getVisibleTerminal(l[n],!r),i=this.traverse(r,t,l[n],a,i,o,s))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,t){var n=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return n.fineTuning=this.fineTuning,n.execute(t),n.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,t){n=null;if(null!=e)for(var n=[],a=0;a<e.length;a++)t(e[a])&&n.push(e[a]);return n},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,t){o=[];t=t||this.getRoot(),(null==e||e(t))&&o.push(t);for(var n=this.getChildCount(t),a=0;a<n;a++)var i=this.getChildAt(t,a),o=o.concat(this.filterDescendants(e,i));return o},mxGraphModel.prototype.getRoot=function(e){var t=e||this.root;if(null!=e)for(;null!=e;)t=e,e=this.getParent(e);return t},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var t=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),t},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,t){for(;null!=t&&t!=e;)t=this.getParent(t);return t==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,t,n){if(t!=e&&null!=e&&null!=t){null==n&&(n=this.getChildCount(e));var a=e!=this.getParent(t);this.execute(new mxChildChange(this,e,t,n)),this.maintainEdgeParent&&a&&this.updateEdgeParents(t)}return t},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId()&&(t=this.getCell(e.getId()))!=e){for(;null!=t;)e.setId(this.createId(e)),t=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var t=this.getChildCount(e),n=0;n<t;n++)this.cellAdded(this.getChildAt(e,n))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,t){t=t||this.getRoot(e);for(var n=this.getChildCount(e),a=0;a<n;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,t)}for(i=this.getEdgeCount(e),n=[],a=0;a<i;a++)n.push(this.getEdgeAt(e,a));for(a=0;a<n.length;a++)i=n[a],this.isAncestor(t,i)&&this.updateEdgeParent(i,t)},mxGraphModel.prototype.updateEdgeParent=function(e,t){for(var n=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=n&&!this.isEdge(n)&&null!=n.geometry&&n.geometry.relative;)n=this.getParent(n);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(t,n)&&this.isAncestor(t,a)&&null!=(i=n==a?this.getParent(n):this.getNearestCommonAncestor(n,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i){if(null!=(n=this.getGeometry(e))){var o=this.getOrigin(this.getParent(e)),s=this.getOrigin(i),a=s.x-o.x,o=s.y-o.y;(n=n.clone()).translate(-a,-o),this.setGeometry(e,n)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var t=null;return null!=e?(t=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(t.x+=e.x,t.y+=e.y)):t=new mxPoint,t},mxGraphModel.prototype.getNearestCommonAncestor=function(e,t){if(null!=e&&null!=t&&null!=(o=mxCellPath.create(t))&&0<o.length){var n=e,a=mxCellPath.create(n);if(o.length<a.length)var n=t,i=a,a=o,o=i;for(;null!=n;){if(i=this.getParent(n),0==o.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return n;a=mxCellPath.getParentPath(a),n=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var t=this.getChildCount(e)-1;0<=t;t--)this.cellRemoved(this.getChildAt(e,t));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,t,n){var a=this.getParent(e);return null!=t?(t!=a||a.getIndex(e)!=n)&&t.insert(e,n):null!=a&&(n=a.getIndex(e),a.remove(n)),this.contains(a)||null==t?null==t&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,t){return null!=e?e.getChildAt(t):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,t,n){t=null!=t&&t,n=null!=n&&n;for(var a=this.getChildCount(e),i=[],o=0;o<a;o++){var s=this.getChildAt(e,o);(!n&&!t||n&&this.isEdge(s)||t&&this.isVertex(s))&&i.push(s)}return i},mxGraphModel.prototype.getTerminal=function(e,t){return null!=e?e.getTerminal(t):null},mxGraphModel.prototype.setTerminal=function(e,t,n){var a=t!=this.getTerminal(e,n);return this.execute(new mxTerminalChange(this,e,t,n)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),t},mxGraphModel.prototype.setTerminals=function(e,t,n){this.beginUpdate();try{this.setTerminal(e,t,!0),this.setTerminal(e,n,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,t,n){var a=this.getTerminal(e,n);return null!=t?t.insertEdge(e,n):null!=a&&a.removeEdge(e,n),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,t){return null!=e?e.getEdgeAt(t):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,t,n){for(var a=0,i=this.getEdgeCount(e),o=0;o<i;o++){var s=this.getEdgeAt(e,o);s!=n&&this.getTerminal(s,t)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,t,n,a){t=null==t||t,n=null==n||n,a=null==a||a;for(var i=this.getEdgeCount(e),o=[],s=0;s<i;s++){var r=this.getEdgeAt(e,s),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(t&&d==e||n&&l==e))&&o.push(r)}return o},mxGraphModel.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;var a=this.getEdgeCount(e),i=this.getEdgeCount(t),o=e,s=a;for(i<a&&(s=i,o=t),a=[],i=0;i<s;i++){var r=this.getEdgeAt(o,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1),c=d==e&&l==t;(l==e&&d==t||!n&&c)&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,t,n,a){n=null==n||n,a=null==a||a;var i=[];if(null!=e)for(var o=0;o<e.length;o++){var s=this.getTerminal(e[o],!0),r=this.getTerminal(e[o],!1);s==t&&null!=r&&r!=t&&a?i.push(r):r==t&&null!=s&&s!=t&&n&&i.push(s)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var t=[],n=0;n<e.length;n++){for(var a=e[n],i=!0,o=this.getParent(a);null!=o;){if(0<=mxUtils.indexOf(e,o)){i=!1;break}o=this.getParent(o)}i&&t.push(a)}return t},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,t){return this.execute(new mxValueChange(this,e,t)),t},mxGraphModel.prototype.valueForCellChanged=function(e,t){return e.valueChanged(t)},mxGraphModel.prototype.getGeometry=function(e,t){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,t){return t!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,t)),t},mxGraphModel.prototype.geometryForCellChanged=function(e,t){var n=this.getGeometry(e);return e.setGeometry(t),n},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,t){return t!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,t)),t},mxGraphModel.prototype.styleForCellChanged=function(e,t){var n=this.getStyle(e);return e.setStyle(t),n},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,t){return t!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,t)),t},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,t){var n=this.isCollapsed(e);return e.setCollapsed(t),n},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,t){return t!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,t)),t},mxGraphModel.prototype.visibleStateForCellChanged=function(e,t){var n=this.isVisible(e);return e.setVisible(t),n},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(0==--this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,t,n){n=null==n||n,this.beginUpdate();try{var a={};this.mergeChildrenImpl(e,t,n,a);for(var i in a){var o=a[i],s=this.getTerminal(o,!0);null!=s&&(s=a[mxCellPath.create(s)],this.setTerminal(o,s,!0)),null!=(s=this.getTerminal(o,!1))&&(s=a[mxCellPath.create(s)],this.setTerminal(o,s,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,t,n,a){this.beginUpdate();try{for(var i=e.getChildCount(),o=0;o<i;o++){var s=e.getChildAt(o);if("function"==typeof s.getId){var r=s.getId(),l=null==r||this.isEdge(s)&&n?null:this.getCell(r);if(null==l){var d=s.clone();d.setId(r),d.setTerminal(s.getTerminal(!0),!0),d.setTerminal(s.getTerminal(!1),!1),l=t.insert(d),this.cellAdded(l)}a[mxCellPath.create(s)]=l,this.mergeChildrenImpl(s,l,n,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var t=[];if(null!=e)for(var n={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var o=mxCellPath.create(i);null==n[o]&&(n[o]=i,t.push(i))}}return t},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,t){for(var n={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],n,t)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],n);return a},mxGraphModel.prototype.cloneCellImpl=function(e,t,n){var a=this.cellCloned(e);if(t[mxObjectIdentity.get(e)]=a,n){n=this.getChildCount(e);for(var i=0;i<n;i++){var o=this.cloneCellImpl(this.getChildAt(e,i),t,!0);a.insert(o)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,t,n){null!=(a=this.getTerminal(t,!0))&&null!=(a=n[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0),null!=(a=this.getTerminal(t,!1))&&null!=(a=n[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1);for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(t,i),n)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),t=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=t},mxChildChange.prototype.connect=function(e,t){t=null==t||t;var n=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=n&&(t?this.model.terminalForCellChanged(e,n,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(t?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(n,!0),e.setTerminal(a,!1),n=this.model.getChildCount(e),a=0;a<n;a++)this.connect(this.model.getChildAt(e,a),t)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var t=this.getValue();return this.setValue(e),t},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,t){return t?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,t){return null!=e&&(null==t&&(t=this.getChildCount(),e.getParent()==this&&t--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(t,0,e)),e},mxCell.prototype.remove=function(e){var t=null;return null!=this.children&&0<=e&&null!=(t=this.getChildAt(e))&&(this.children.splice(e,1),t.setParent(null)),t},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,t){return null!=e&&(e.removeFromTerminal(t),e.setTerminal(this,t),null==this.edges||e.getTerminal(!t)!=this||0>mxUtils.indexOf(this.edges,e))&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,t){if(null!=e){if(e.getTerminal(!t)!=this&&null!=this.edges){var n=this.getEdgeIndex(e);0<=n&&this.edges.splice(n,1)}e.setTerminal(null,t)}return e},mxCell.prototype.removeFromTerminal=function(e){var t=this.getTerminal(e);null!=t&&t.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,t){var n=this.getValue();return(null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT?n.getAttribute(e):null)||t},mxCell.prototype.setAttribute=function(e,t){var n=this.getValue();null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT&&n.setAttribute(e,t)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,t){return t?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,t){if(this.clone(),this.relative||(this.x+=e,this.y+=t),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=t),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=t),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var n=this.points.length,a=0;a<n;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=t)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var t="";if(null!=e)for(var n=e.getParent();null!=n;)t=n.getIndex(e)+mxCellPath.PATH_SEPARATOR+t,e=n,n=e.getParent();return 1<(e=t.length)&&(t=t.substring(0,e-1)),t},getParentPath:function(e){if(null!=e){var t=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=t)return e.substring(0,t);if(0<e.length)return""}return null},resolve:function(e,t){var n=e;if(null!=t)for(var a=t.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)n=n.getChildAt(parseInt(a[i]));return n},compare:function(e,t){for(var n=Math.min(e.length,t.length),a=0,i=0;i<n;i++)if(e[i]!=t[i]){0==e[i].length||0==t[i].length?a=e[i]==t[i]?0:e[i]>t[i]?1:-1:(n=parseInt(e[i]),i=parseInt(t[i]),a=n==i?0:n>i?1:-1);break}return 0==a&&(n=e.length,i=t.length,n!=i&&(a=n>i?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,t,n,a){t=e.getCenterX();var i=e.getCenterY(),o=Math.atan2(n.y-i,n.x-t),s=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-o,d=Math.atan2(e.height,e.width);return o<-r+d||o>r-d?(s.x=e.x,s.y=i-e.width*Math.tan(o)/2):o<-d?(s.y=e.y,s.x=t-e.height*Math.tan(l)/2):o<d?(s.x=e.x+e.width,s.y=i+e.width*Math.tan(o)/2):(s.y=e.y+e.height,s.x=t+e.height*Math.tan(l)/2),a&&(n.x>=e.x&&n.x<=e.x+e.width?s.x=n.x:n.y>=e.y&&n.y<=e.y+e.height&&(s.y=n.y),n.x<e.x?s.x=e.x:n.x>e.x+e.width&&(s.x=e.x+e.width),n.y<e.y?s.y=e.y:n.y>e.y+e.height&&(s.y=e.y+e.height)),s},EllipsePerimeter:function(e,t,n,a){var i=e.x,o=e.y,s=e.width/2,r=e.height/2,l=i+s,d=o+r;t=n.x,n=n.y;var c=parseInt(t-l),m=parseInt(n-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(t,n);if(a){if(n>=o&&n<=o+e.height)return e=n-d,e=Math.sqrt(s*s*(1-e*e/(r*r)))||0,t<=i&&(e=-e),new mxPoint(l+e,n);if(t>=i&&t<=i+e.width)return e=t-l,e=Math.sqrt(r*r*(1-e*e/(s*s)))||0,n<=o&&(e=-e),new mxPoint(t,d+e)}return i=m/c,d-=i*l,o=s*s*i*i+r*r,e=-2*l*o,r=Math.sqrt(e*e-4*o*(s*s*i*i*l*l+r*r*l*l-s*s*r*r)),s=(-e+r)/(2*o),r=(-e-r)/(2*o),l=i*s+d,d=i*r+d,i=Math.sqrt(Math.pow(s-t,2)+Math.pow(l-n,2)),t=Math.sqrt(Math.pow(r-t,2)+Math.pow(d-n,2)),o=n=0,i<t?(n=s,o=l):(n=r,o=d),new mxPoint(n,o)},RhombusPerimeter:function(e,t,n,a){t=e.x;var i=e.y,o=e.width,s=t+o/2,r=i+(e=e.height)/2,l=n.x;if(n=n.y,s==l)return r>n?new mxPoint(s,i):new mxPoint(s,i+e);if(r==n)return s>l?new mxPoint(t,r):new mxPoint(t+o,r);var d=s,c=r;return a&&(l>=t&&l<=t+o?d=l:n>=i&&n<=i+e&&(c=n)),l<s?n<r?mxUtils.intersection(l,n,d,c,s,i,t,r):mxUtils.intersection(l,n,d,c,s,i+e,t,r):n<r?mxUtils.intersection(l,n,d,c,s,i,t+o,r):mxUtils.intersection(l,n,d,c,s,i+e,t+o,r)},TrianglePerimeter:function(e,t,n,a){var i=(t=null!=t?t.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_SOUTH,o=e.x,s=e.y,r=e.width,l=o+r/2,d=s+(e=e.height)/2,c=new mxPoint(o,s),m=new mxPoint(o+r,d),u=new mxPoint(o,s+e);t==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,s),u=new mxPoint(o+r,s+e)):t==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,s+e),u=new mxPoint(o+r,s)):t==mxConstants.DIRECTION_WEST&&(c=new mxPoint(o+r,s),m=new mxPoint(o,d),u=new mxPoint(o+r,s+e));var p=n.x-l,g=n.y-d,p=i?Math.atan2(p,g):Math.atan2(g,p),h=i?Math.atan2(r,e):Math.atan2(e,r),g=!1,g=t==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_WEST?p>-h&&p<h:p<-Math.PI+h||p>Math.PI-h,h=null;return g?h=a&&(i&&n.x>=c.x&&n.x<=u.x||!i&&n.y>=c.y&&n.y<=u.y)?i?new mxPoint(n.x,c.y):new mxPoint(c.x,n.y):t==mxConstants.DIRECTION_NORTH?new mxPoint(o+r/2+e*Math.tan(p)/2,s+e):t==mxConstants.DIRECTION_SOUTH?new mxPoint(o+r/2-e*Math.tan(p)/2,s):t==mxConstants.DIRECTION_WEST?new mxPoint(o+r,s+e/2+r*Math.tan(p)/2):new mxPoint(o,s+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),n.y>=s&&n.y<=s+e?(a.x=i?l:t==mxConstants.DIRECTION_WEST?o+r:o,a.y=n.y):n.x>=o&&n.x<=o+r&&(a.x=n.x,a.y=i?t==mxConstants.DIRECTION_NORTH?s+e:s:d),l=a.x,d=a.y),h=i&&n.x<=o+r/2||!i&&n.y<=s+e/2?mxUtils.intersection(n.x,n.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(n.x,n.y,l,d,m.x,m.y,u.x,u.y)),null==h&&(h=new mxPoint(l,d)),h}};mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var t=this.graph.cellRenderer.initializeOverlay,n=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,t){t.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var o=this.graph.getGraphBounds().clone(),s=this.graph.getView().getScale(),r=s/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,o.width+=o.x,o.height+=o.y,o.x=0,this.border=o.y=0),o.width/=r,o.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((o.width+this.x0)/d)),u=Math.max(1,Math.ceil((o.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var t=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){t()}),mxEvent.addListener(this.wnd,"resize",function(e){t()})}}});if(e=function(e,t){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",t&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),t){var n=a.createElement("hr");n.className="mxPageBreak",a.body.appendChild(n)}},null!=(b=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(h=0;h<b.length;h++)e(b[h],!0);for(var g=this.getAppendices(this.pageFormat.width,this.pageFormat.height),h=0;h<u;h++)for(var v=h*c/this.scale-this.y0/this.scale+(o.y-l.y*s)/s,b=0;b<m;b++){if(null==this.wnd)return null;var f=b*d/this.scale-this.x0/this.scale+(o.x-l.x*s)/s,E=h*m+b+1;(n=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-f,-v,this.scale,E,e)}))).setAttribute("id","mxPage-"+E),e(n,null!=g||h<u-1||b<m-1)}if(null!=g)for(h=0;h<g.length;h++)e(g[h],h<g.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n)}finally{this.graph.cellRenderer.initializeOverlay=t}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,t){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("  table.mxPageSelector { display: none; }"),e.writeln("  hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln("  table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln("  table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln("  body.mxPage { background: gray; }"),e.writeln("}"),null!=t&&e.writeln(t),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,t){var n=this.wnd.document,a=n.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=n.createElement("tbody"),o=0;o<e;o++){for(var s=n.createElement("tr"),r=0;r<t;r++){var l=o*t+r+1,d=n.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=n.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,n),d.appendChild(c)}else mxUtils.write(d,l,n);s.appendChild(d)}i.appendChild(s)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,t,n){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=t+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=t-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),n(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,t,n,a,i){a=this.graph.getView();var o=this.graph.container;this.graph.container=i;var s=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,t),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,n,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(n=i.firstChild;null!=n;)p=n.nextSibling,t=n.nodeName.toLowerCase(),"svg"==t?(n.setAttribute("width",parseInt(i.style.width)),n.setAttribute("height",parseInt(i.style.height))):"default"!=n.style.cursor&&"table"!=t&&n.parentNode.removeChild(n),n=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=o,a.canvas=s,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,t){this.styles[e]=t},mxStylesheet.prototype.getCellStyle=function(e,t){a=t;if(null!=e&&0<e.length)for(var n=e.split(";"),a=null!=a&&";"!=e.charAt(0)?mxUtils.clone(a):{},i=0;i<n.length;i++){var o=n[i],s=o.indexOf("=");if(0<=s){var r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete a[r]:mxUtils.isNumeric(o)?a[r]=parseFloat(o):a[r]=o}else if(null!=(o=this.styles[o]))for(r in o)a[r]=o[r]}return a},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,t){if(e=e||0,t=null!=t?t:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var n=this.shape.stencil.computeAspect(this.style,t.x,t.y,t.width,t.height);t.x=n.x,t.y=n.y,t.width=this.shape.stencil.w0*n.width,t.height=this.shape.stencil.h0*n.height}return 0!=e&&t.grow(e),t},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,t){t?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return e=this.getVisibleTerminalState(e),null!=e?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,t){t?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var t=0;t<this.absolutePoints.length;t++)e.absolutePoints[t]=this.absolutePoints[t].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var t=[],n=0;n<e.length;n++)this.graph.isCellSelectable(e[n])&&t.push(e[n]);this.changeSelection(t,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var t=0;t<e.length;t++)if(this.graph.isCellSelectable(e[t]))return e[t];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var t=null;this.singleSelection&&(t=this.cells,e=[this.getFirstSelectableCell(e)]);for(var n=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&n.push(e[a]);this.changeSelection(n,t)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var t=[],n=0;n<e.length;n++)this.isSelected(e[n])&&t.push(e[n]);this.changeSelection(null,t)}},mxGraphSelectionModel.prototype.changeSelection=function(e,t){if(null!=e&&0<e.length&&null!=e[0]||null!=t&&0<t.length&&null!=t[0]){var n=new mxSelectionChange(this,e,t);n.execute();var a=new mxUndoableEdit(this,!1);a.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1)},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var t=0;t<this.removed.length;t++)this.selectionModel.cellRemoved(this.removed[t]);if(null!=this.added)for(t=0;t<this.added.length;t++)this.selectionModel.cellAdded(this.added[t]);t=this.added,this.added=this.removed,this.removed=t,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),t=this.graph.isLabelClipped(e.cell),n=this.graph.isWrapping(e.cell);this.graph.getModel().isEdge(e.cell)?(this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0):null!=this.bounds&&(this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)),"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+="&nbsp;"),a=mxUtils.htmlEntities(a,!1),n?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g,"&nbsp;"),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16,a=Math.max(a,40),i=Math.max(i,20);t&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var o=null!=e.text?e.text.margin:null;null==o&&(o=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getAlignmentAsPoint(o,e)),null!=o&&(!t&&n||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-o.x*this.bounds.width+o.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-o.y*this.bounds.height+o.y*i)+4)+"px"),!t&&n||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,t){null==this.textarea&&this.init(),this.stopEditing(!0);var n=this.graph.getView().getState(e);if(null!=n){this.editingCell=e,this.trigger=t,this.textNode=null,null!=n.text&&this.isHideLabel(n)&&(this.textNode=n.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,a=mxUtils.getValue(n.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,i=mxUtils.getValue(n.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),o=mxUtils.getValue(n.style,mxConstants.STYLE_FONTCOLOR,"black"),s=mxUtils.getValue(n.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=s,this.textarea.style.color=o,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(n),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(n=this.getInitialValue(n,t))||0==n.length?(n=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=n,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),t=e.style;return t.position="absolute",t.whiteSpace="nowrap",t.visibility="hidden",t.display=mxClient.IS_QUIRKS?"inline":"inline-block",t.zoom="1",t.verticalAlign="top",t.lineHeight=this.textarea.style.lineHeight,t.fontSize=this.textarea.style.fontSize,t.fontFamily=this.textarea.style.fontFamily,t.fontWeight=this.textarea.style.fontWeight,t.textAlign=this.textarea.style.textAlign,t.fontStyle=this.textarea.style.fontStyle,t.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,t){return this.graph.getEditingValue(e.cell,t)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var t=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*t+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var t=this.graph.getModel().isEdge(e.cell),n=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,o=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*n,s=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*n+o,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*n+o,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*n+o,n=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*n+o,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-n-r),Math.max(i,e.height-s-l));return t?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=n,r.y+=s,null!=e.text&&null!=e.text.boundingBox&&(t?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&(t=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),t==mxConstants.ALIGN_LEFT?r.x-=e.width:t==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),t=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),t==mxConstants.ALIGN_TOP?r.y-=e.height:t==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,t){mxCellRenderer.prototype.defaultShapes[e]=t},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,t){var n=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(n.isVertex(e.cell)||n.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=t&&!t||(this.initializeShape(e),e.view.graph.ordered||n.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,t){for(var n=null,a=e.view.graph,i=a.getModel(),o=e.cell,s=i.getParent(o);null!=s&&null==n;)n=this.findPreviousStateInContainer(a,s,o,t),o=s,s=i.getParent(o);return n},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,t,n,a){var i=null,o=e.getModel();for(n=null!=n?t.getIndex(n)-1:o.getChildCount(t)-1;0<=n&&null==i;n--)i=this.findPreviousStateInContainer(e,o.getChildAt(t,n),null,a);return null!=i||null==(i=e.view.getState(t))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a||(i=null),i},mxCellRenderer.prototype.order=function(e){var t=e.shape.node.parentNode,n=this.getPreviousStateInContainer(e,t),a=t.firstChild;null!=n&&(a=n.shape.node,null!=n.text&&null!=n.text.node&&n.text.node.parentNode==t&&(a=n.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var t=e.view,n=t.graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var a=e.shape.node,i=a.parentNode,n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,t){e.shape.node.parentNode.insertBefore(e.shape.node,t),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var t=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=t?e.shape=new mxShape(t):(t=this.getShapeConstructor(e),e.shape=new t),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var t=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==t&&(t=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),t},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,t,n){var a=e.shape[t],i=e.view.graph,o=null;"inherit"==a?o=i.model.getParent(e.cell):"swimlane"==a?(o=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,o=i.getSwimlane(o),n=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[t]=e.shape.indicatorColor),null!=o&&(a=i.getView().getState(o),e.shape[t]=null,null!=a&&(e.shape[t]=null!=a.shape&&"indicatorColor"!=t?a.shape[t]:a.style[n]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(e,t){var n=e.view.graph;if(n.getModel().isEdge(e.cell),0<e.style[mxConstants.STYLE_FONTSIZE]||null==e.style[mxConstants.STYLE_FONTSIZE]){var a=n.isHtmlLabel(e.cell)||null!=t&&mxUtils.isNode(t);e.text=new this.defaultTextShape(t,new mxRectangle,e.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,n.getVerticalAlign(e),e.style[mxConstants.STYLE_FONTCOLOR],e.style[mxConstants.STYLE_FONTFAMILY],e.style[mxConstants.STYLE_FONTSIZE],e.style[mxConstants.STYLE_FONTSTYLE],e.style[mxConstants.STYLE_SPACING],e.style[mxConstants.STYLE_SPACING_TOP],e.style[mxConstants.STYLE_SPACING_RIGHT],e.style[mxConstants.STYLE_SPACING_BOTTOM],e.style[mxConstants.STYLE_SPACING_LEFT],e.style[mxConstants.STYLE_HORIZONTAL],e.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],e.style[mxConstants.STYLE_LABEL_BORDERCOLOR],n.isWrapping(e.cell)&&n.isHtmlLabel(e.cell),n.isLabelClipped(e.cell),e.style[mxConstants.STYLE_OVERFLOW],e.style[mxConstants.STYLE_LABEL_PADDING]),e.text.opacity=mxUtils.getValue(e.style,mxConstants.STYLE_TEXT_OPACITY,100),e.text.dialect=a?mxConstants.DIALECT_STRICTHTML:e.view.graph.dialect,e.text.state=e,this.initializeLabel(e);var i=!1,o=function(t){var a=e;return(mxClient.IS_TOUCH||i)&&(a=mxEvent.getClientX(t),t=mxEvent.getClientY(t),t=mxUtils.convertPoint(n.container,a,t),a=n.view.getState(n.getCellAt(t.x,t.y))),a};mxEvent.addGestureListeners(e.text.node,mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,e)),i=n.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(t).nodeName)}),mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&n.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,o(t)))}),mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t,o(t))),i=!1)})),mxEvent.addListener(e.text.node,"dblclick",mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.dblClick(t,e.cell),mxEvent.consume(t))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var t=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(t.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var t=e.view.graph.getCellOverlays(e.cell),n=null;if(null!=t)for(var n=new mxDictionary,a=0;a<t.length;a++){var i=null!=e.overlays?e.overlays.remove(t[a]):null;null==i&&(i=new mxImageShape(new mxRectangle,t[a].image.src),i.dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=t[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,t[a],i),null!=t[a].cursor&&(i.node.style.cursor=t[a].cursor)),n.put(t[a],i)}null!=e.overlays&&e.overlays.visit(function(e,t){t.destroy()}),e.overlays=n},mxCellRenderer.prototype.initializeOverlay=function(e,t){t.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(e,t,n){var a=e.view.graph;mxEvent.addListener(n.node,"click",function(n){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",e.cell))}),mxEvent.addGestureListeners(n.node,function(e){mxEvent.consume(e)},function(t){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,e))}),mxClient.IS_TOUCH&&mxEvent.addListener(n.node,"touchend",function(n){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",e.cell))})},mxCellRenderer.prototype.createControl=function(e){var t=e.view.graph,n=t.getFoldingImage(e);if(t.foldingEnabled&&null!=n){if(null==e.control){var a=new mxRectangle(0,0,n.width,n.height);e.control=new mxImageShape(a,n.src),e.control.preserveImageAspect=!1,e.control.dialect=t.dialect,this.initControl(e,e.control,!0,function(n){if(t.isEnabled()){var a=!t.isCellCollapsed(e.cell);t.foldCells(a,!1,[e.cell]),mxEvent.consume(n)}})}}else null!=e.control&&(e.control.destroy(),e.control=null)},mxCellRenderer.prototype.initControl=function(e,t,n,a){var i=e.view.graph;return i.isHtmlLabel(e.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(t.dialect=mxConstants.DIALECT_PREFERHTML,t.init(i.container),t.node.style.zIndex=1):t.init(e.view.getOverlayPane()),t=t.innerNode||t.node,a&&(i.isEnabled()&&(t.style.cursor="pointer"),mxEvent.addListener(t,"click",a)),n&&mxEvent.addGestureListeners(t,function(t){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,e)),mxEvent.consume(t)},function(t){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,e))}),t},mxCellRenderer.prototype.isShapeEvent=function(e,t){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,t){return!0},mxCellRenderer.prototype.installListeners=function(e){var t=e.view.graph,n=function(n){var a=e;return(t.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(n).nodeName||mxClient.IS_TOUCH)&&(a=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(t.container,a,n),a=t.view.getState(t.getCellAt(n.x,n.y))),a},a=!1;mxEvent.addListener(e.shape.node,"gesturestart",mxUtils.bind(this,function(e){t.lastTouchTime=0,a=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(e.shape.node,mxUtils.bind(this,function(n){this.isShapeEvent(e,n)&&!a?t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(n,null!=e.shape&&mxEvent.getSource(n)==e.shape.content?null:e)):a&&mxEvent.consume(n)}),mxUtils.bind(this,function(i){this.isShapeEvent(e,i)&&!a?t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(i,null!=e.shape&&mxEvent.getSource(i)==e.shape.content?null:n(i))):a&&mxEvent.consume(i)}),mxUtils.bind(this,function(i){this.isShapeEvent(e,i)&&!a?t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(i,null!=e.shape&&mxEvent.getSource(i)==e.shape.content?null:n(i))):a&&mxEvent.consume(i)}));var i=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(e.shape.node,i,mxUtils.bind(this,function(n){a=!1,"gestureend"==i?(t.lastTouchTime=0,t.gestureEnabled&&(t.handleGesture(e,n),mxEvent.consume(n))):this.isShapeEvent(e,n)&&(t.dblClick(n,null!=e.shape&&mxEvent.getSource(n)==e.shape.content?null:e.cell),mxEvent.consume(n))}))},mxCellRenderer.prototype.redrawLabel=function(e,t){var n=this.getLabelValue(e);if(null==e.text&&null!=n&&(mxUtils.isNode(n)||0<n.length)?this.createLabel(e,n):null==e.text||null!=n&&0!=n.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),o=this.getLabelBounds(e);!t&&e.text.value==n&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(o)||(e.text.value=n,e.text.bounds=o,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var t=e.view.graph,n=e.view.scale,a=t.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*n,i.y+=a.y*n,null!=(t=t.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*t.width*n-e.text.spacingLeft*n-e.text.spacingRight*n),i.height=Math.max(0,e.text.margin.y*t.height*n-e.text.spacingTop*n-e.text.spacingBottom*n))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),t.isSwimlane(e.cell)&&(t=t.getStartSize(e.cell),0<t.width?(a=Math.min(i.width,t.width*n),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<t.height&&(a=Math.min(i.height,t.height*n),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,t){if(e.text.isPaintBoundsInverted()){n=(e.width-e.height)/2;t.x+=n,t.y-=n,n=t.width,t.width=t.height,t.height=n}if(t.x-=e.text.margin.x*t.width,t.y-=e.text.margin.y*t.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){var n=e.view.scale,a=e.text.getSpacing();t.x+=a.x*n,t.y+=a.y*n,t.width=Math.max(0,t.width-e.text.spacingLeft*n-e.text.spacingRight*n),t.height=Math.max(0,t.height-e.text.spacingTop*n-e.text.spacingBottom*n)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(n=e.getCenterX(),a=e.getCenterY(),t.x!=n||t.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),Math.cos(i),Math.sin(i),new mxPoint(n,a)),t.x=pt.x,t.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(e,t){if(this.createCellOverlays(e),null!=e.overlays){var n=mxUtils.mod(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),90),a=mxUtils.toRadians(n),i=Math.cos(a),o=Math.sin(a);e.overlays.visit(function(a,s){var r=s.overlay.getBounds(e);if(!e.view.graph.getModel().isEdge(e.cell)&&null!=e.shape&&0!=n){var l=r.getCenterX(),d=r.getCenterY(),l=(d=mxUtils.getRotatedPoint(new mxPoint(l,d),i,o,new mxPoint(e.getCenterX(),e.getCenterY()))).x,d=d.y;r.x=Math.round(l-r.width/2),r.y=Math.round(d-r.height/2)}!t&&null!=s.bounds&&s.scale==e.view.scale&&s.bounds.equals(r)||(s.bounds=r,s.scale=e.view.scale,s.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,t){if(null!=e.control){var n=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!t&&e.control.scale==i&&e.control.bounds.equals(n)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=n,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null!=e.control){var t=e.control.scale,n=e.control.bounds.width/t,t=e.control.bounds.height/t,a=e.view.scale,i=e.getCenterX(),o=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+n*a,o=e.y+t*a,null!=e.shape)){var s=e.shape.getShapeRotation();if(this.legacyControlPosition)s=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted())var r=(e.width-e.height)/2,i=i+r,o=o-r;0!=s&&(r=mxUtils.toRadians(s),s=Math.cos(r),r=Math.sin(r),o=mxUtils.getRotatedPoint(new mxPoint(i,o),s,r,new mxPoint(e.getCenterX(),e.getCenterY())),i=o.x,o=o.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-n/2*a),Math.round(o-t/2*a),Math.round(n*a),Math.round(t*a))}return null},mxCellRenderer.prototype.redraw=function(e,t,n){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=t&&t,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),t=!0),delete e.invalidOrder,delete e.orderChanged,!t&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==n||n?e.shape.redraw():e.shape.updateBoundingBox()),(null==n||n)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,t){t.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,t,n,a,i){var o=e.view,s=o.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*o.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)t=new mxCellState,t.x=r.x,t.y=r.y;else{if(null==t)return;var c=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=s.getCellGeometry(t.cell),r.relative?d=.5>=r.x:null!=n&&(d=n.x+n.width<t.x))}r=!0,null!=l?(n=new mxCellState,n.x=l.x,n.y=l.y):null!=n&&(c=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_NONE),c!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=s.getCellGeometry(n.cell),e.relative?r=.5>=e.x:null!=t&&(r=t.x+t.width<n.x))),null!=t&&null!=n&&(e=d?t.x:t.x+t.width,t=o.getRoutingCenterY(t),s=r?n.x:n.x+n.width,n=o.getRoutingCenterY(n),o=new mxPoint(e+(d?-a:a),t),l=new mxPoint(s+(r?-a:a),n),d==r?(a=d?Math.min(e,s)-a:Math.max(e,s)+a,i.push(new mxPoint(a,t)),i.push(new mxPoint(a,n))):(o.x<l.x==d?(a=t+(n-t)/2,i.push(o),i.push(new mxPoint(o.x,a)),i.push(new mxPoint(l.x,a))):i.push(o),i.push(l)))},Loop:function(e,t,n,a,i){if(null!=t){d=(n=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=n.transformControlPoint(e,a),mxUtils.contains(t,a.x,a.y)&&(a=null));var o=0,s=0,r=0,l=0,d=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,d.gridSize)*n.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=n.getRoutingCenterX(t),s=d):(r=n.getRoutingCenterY(t),l=d),null==a||a.x<t.x||a.x>t.x+t.width?null!=a?(o=a.x,l=Math.max(Math.abs(r-a.y),l)):e==mxConstants.DIRECTION_NORTH?r=t.y-2*s:e==mxConstants.DIRECTION_SOUTH?r=t.y+t.height+2*s:o=e==mxConstants.DIRECTION_EAST?t.x-2*l:t.x+t.width+2*l:null!=a&&(o=n.getRoutingCenterX(t),s=Math.max(Math.abs(o-a.x),l),r=a.y,l=0),i.push(new mxPoint(o-s,r-l)),i.push(new mxPoint(o+s,r+l))}},ElbowConnector:function(e,t,n,a,i){var o=null!=a&&0<a.length?a[0]:null,s=!1,r=!1;if(null!=t&&null!=n)if(null!=o)var l=Math.min(t.x,n.x),d=Math.max(t.x+t.width,n.x+n.width),r=Math.min(t.y,n.y),c=Math.max(t.y+t.height,n.y+n.height),o=e.view.transformControlPoint(e,o),s=o.y<r||o.y>c,r=o.x<l||o.x>d;else l=Math.max(t.x,n.x),d=Math.min(t.x+t.width,n.x+n.width),(s=l==d)||(r=Math.max(t.y,n.y),c=Math.min(t.y+t.height,n.y+n.height),r=r==c);r||!s&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,t,n,a,i):mxEdgeStyle.TopToBottom(e,t,n,a,i)},SideToSide:function(e,t,n,a,i){var o=e.view;a=null!=a&&0<a.length?a[0]:null;var s=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=o.transformControlPoint(e,a)),null!=s&&(t=new mxCellState,t.x=s.x,t.y=s.y),null!=r&&(n=new mxCellState,n.x=r.x,n.y=r.y),null!=t&&null!=n&&(e=Math.max(t.x,n.x),s=Math.min(t.x+t.width,n.x+n.width),e=null!=a?a.x:s+(e-s)/2,s=o.getRoutingCenterY(t),o=o.getRoutingCenterY(n),null!=a&&(a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y),a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y)),!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),!mxUtils.contains(n,e,o)&&!mxUtils.contains(t,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a?!mxUtils.contains(n,e,a.y)&&!mxUtils.contains(t,e,a.y)&&i.push(new mxPoint(e,a.y)):(o=Math.max(t.y,n.y),t=Math.min(t.y+t.height,n.y+n.height),i.push(new mxPoint(e,o+(t-o)/2)))))},TopToBottom:function(e,t,n,a,i){var o=e.view;a=null!=a&&0<a.length?a[0]:null;var s=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=o.transformControlPoint(e,a)),null!=s&&(t=new mxCellState,t.x=s.x,t.y=s.y),null!=r&&(n=new mxCellState,n.x=r.x,n.y=r.y),null!=t&&null!=n&&(s=Math.max(t.y,n.y),r=Math.min(t.y+t.height,n.y+n.height),e=o.getRoutingCenterX(t),null!=a&&a.x>=t.x&&a.x<=t.x+t.width&&(e=a.x),s=null!=a?a.y:r+(s-r)/2,!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),e=null!=a&&a.x>=n.x&&a.x<=n.x+n.width?a.x:o.getRoutingCenterX(n),!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(n,a.x,s)&&!mxUtils.contains(t,a.x,s)&&i.push(new mxPoint(a.x,s)):(o=Math.max(t.x,n.x),t=Math.min(t.x+t.width,n.x+n.width),i.push(new mxPoint(o+(t-o)/2,s)))))},SegmentConnector:function(e,t,n,a,i){var o=e.absolutePoints,s=!0,r=null,l=o[0];null==l&&null!=t?l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t)):null!=l&&(l=l.clone());var d=o.length-1;if(null!=a&&0<a.length){for(var r=e.view.transformControlPoint(e,a[0]),c=t,m=o[0],u=!1,p=!1,u=r,g=a.length,h=0;2>h;h++){var v=null!=m&&m.x==u.x,b=null!=m&&m.y==u.y,f=null!=c&&u.y>=c.y&&u.y<=c.y+c.height,c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=b||null==m&&f,p=v||null==m&&c;if(null!=m&&!b&&!v&&(f||c)){s=!f;break}if(p||u){s=u,1==h&&(s=0==a.length%2?u:p);break}c=n,m=o[d],u=e.view.transformControlPoint(e,a[g-1])}for(s&&(null!=o[0]&&o[0].y!=r.y||null==o[0]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!s&&(null!=o[0]&&o[0].x!=r.x||null==o[0]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),s?l.y=r.y:l.x=r.x,h=0;h<a.length;h++)s=!s,r=e.view.transformControlPoint(e,a[h]),s?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,s=!0;if(null==(l=o[d])&&null!=n&&(l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n))),s&&(null!=o[d]&&o[d].y!=r.y||null==o[d]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!s&&(null!=o[d]&&o[d].x!=r.x||null==o[d]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),null==o[0]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[1].x,i[1].y);)i=i.splice(1,1);if(null==o[d]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,t,n,a,i){var o=e.view.graph,s=null!=t&&o.getModel().isEdge(t.cell),o=null!=n&&o.getModel().isEdge(n.cell);if(null!=a&&0<a.length||s||o)mxEdgeStyle.SegmentConnector(e,t,n,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=t?t.x:r.x;var s=null!=t?t.y:r.y,d=null!=t?t.width:1,c=null!=t?t.height:1,m=null!=n?n.x:l.x,u=null!=n?n.y:l.y,p=null!=n?n.width:1,g=null!=n?n.height:1,o=e.view.scale*mxEdgeStyle.orthBuffer,h=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];for(null!=t&&(h[0]=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=n&&(h[1]=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,s,d,c],[m,u,p,g]],d=0;2>d;d++)mxEdgeStyle.limits[d][1]=a[d][0]-o,mxEdgeStyle.limits[d][2]=a[d][1]-o,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+o,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+o;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),s=0,0>d?s=0>c?2:1:0>=c&&(s=3,0==d&&(s=2)),c=null,null!=t&&(c=r),t=[[.5,.5],[.5,.5]],d=0;2>d;d++)null!=c&&(t[d][0]=(c.x-a[d][0])/a[d][2],.01>t[d][0]?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<t[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),t[d][1]=(c.y-a[d][1])/a[d][3],.01>t[d][1]?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<t[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),c=null,null!=n&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*o,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*o,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*o,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*o,0),n=[],l=[],(r=[])[0]=c>=u?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=d>=m?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=c>=u?c:u,m=d>=m?d:m,u=[[0,0],[0,0]],p=!1,d=0;2>d;d++)0==e[d]&&(0==(r[d]&h[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&h[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(m>2*o&&c>2*o&&(0<(r[0]&h[0])&&0<(l[1]&h[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&h[0])&&0<(r[1]&h[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),m>2*o&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),c>2*o&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;2>d;d++)0==e[d]&&(0==(u[d][0]&h[d])&&(u[d][0]=u[d][1]),n[d]=u[d][0]&h[d],n[d]|=(u[d][1]&h[d])<<8,n[d]|=(u[1-d][d]&h[d])<<16,n[d]|=(u[1-d][1-d]&h[d])<<24,0==(15&n[d])&&(n[d]<<=8),0==(3840&n[d])&&(n[d]=15&n[d]|n[d]>>8),0==(983040&n[d])&&(n[d]=65535&n[d]|(251658240&n[d])>>8),e[d]=15&n[d],h[d]==mxConstants.DIRECTION_MASK_WEST||h[d]==mxConstants.DIRECTION_MASK_NORTH||h[d]==mxConstants.DIRECTION_MASK_EAST||h[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=h[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],h=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],d-=s,h-=s,1>d&&(d+=4),1>h&&(h+=4),h=mxEdgeStyle.routePatterns[d-1][h-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=o,mxEdgeStyle.wayPoints1[0][1]+=t[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=t[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+o;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+o,mxEdgeStyle.wayPoints1[0][1]+=t[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=t[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=o}for(o=0,r=n=0<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<h.length;d++){g=(l=15&h[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=s)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=n&&(o++,mxEdgeStyle.wayPoints1[o][0]=mxEdgeStyle.wayPoints1[o-1][0],mxEdgeStyle.wayPoints1[o][1]=mxEdgeStyle.wayPoints1[o-1][1]);var v=0<(h[d]&mxEdgeStyle.TARGET_MASK),p=0<(h[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(h[d]&mxEdgeStyle.SIDE_MASK)>>5)<<s)&&(m>>=4),u=0<(h[d]&mxEdgeStyle.CENTER_MASK),(p||v)&&9>m?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+t[p][0]*a[p][2]:u?a[p][1]+t[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[o][0])*c[0])&&(mxEdgeStyle.wayPoints1[o][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[o][1])*c[1])&&(mxEdgeStyle.wayPoints1[o][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[o][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[o][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<o&&mxEdgeStyle.wayPoints1[o][l]==mxEdgeStyle.wayPoints1[o-1][l]?o--:n=l}for(d=0;d<=o&&(d!=o||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(o+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,t,n,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],i-=t,e-=t,1>i&&(i+=4),1>e&&(e+=4),t=routePatterns[i-1][e-1],0!=n&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(t=inlineRoutePatterns[i-1][e-1]),t}},mxStyleRegistry={values:[],putValue:function(e,t){mxStyleRegistry.values[e]=t},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var t in mxStyleRegistry.values)if(mxStyleRegistry.values[t]==e)return t;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var t=null;if(null!=e&&0<e.length)for(var n=this.graph.getModel(),a=0;a<e.length;a++)if(n.isVertex(e[a])||n.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i))}return t},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var t=new mxCurrentRootChange(this,e);t.execute();var n=new mxUndoableEdit(this,!1);n.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,t,n){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==t&&this.translate.y==n||(this.scale=e,this.translate.x=t,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var t=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",t))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,t){var n=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==t||(this.translate.x=e,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",n))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,t,n){var a=this.graph.getModel();if(e=e||a.getRoot(),t=null!=t&&t,n=null==n||n,this.removeState(e),n&&(t||e!=this.currentRoot)){n=a.getChildCount(e);for(var i=0;i<n;i++)this.clear(a.getChildAt(e,i),t)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,t,n,a){var i=this.graph.getModel();if(e=e||i.getRoot(),t=null==t||t,n=null==n||n,a=null!=a&&a,null!=(s=this.getState(e))&&(s.invalid=!0,a&&(s.orderChanged=!0)),t)for(var o=i.getChildCount(e),s=0;s<o;s++){var r=i.getChildAt(e,s);this.invalidate(r,t,n,a)}if(n)for(a=i.getEdgeCount(e),s=0;s<a;s++)this.invalidate(i.getEdgeAt(e,s),t,n)},mxGraphView.prototype.validate=function(e){var t=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var n=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){n=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=n&&(this.canvas.style.display=n,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",t)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var t=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(t,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(t=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,t=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*t,e.height*t)},mxGraphView.prototype.redrawBackgroundImage=function(e,t){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*t.width,e.bounds.height=this.scale*t.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,t){var n=this.graph.getModel(),a=this.getState(t,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(t)){if(t!=this.currentRoot&&null!=e&&(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(i=this.graph.getCellGeometry(t)))){if(!n.isEdge(t)){o=i.offset||this.EMPTY_POINT;i.relative?(a.origin.x+=i.x*e.width/this.scale+o.x,a.origin.y+=i.y*e.height/this.scale+o.y):(a.absoluteOffset.x=this.scale*o.x,a.absoluteOffset.y=this.scale*o.y,a.origin.x+=i.x,a.origin.y+=i.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*i.width,a.height=this.scale*i.height,n.isVertex(t)){if(i.relative&&0!=(o=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var i=Math.cos(o),o=Math.sin(o),s=new mxPoint(a.getCenterX(),a.getCenterY()),r=new mxPoint(e.getCenterX(),e.getCenterY()),i=mxUtils.getRotatedPoint(s,i,o,r);a.x=i.x-a.width/2,a.y=i.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(t);null!=(o=this.graph.getChildOffsetForCell(t))&&(a.origin.x+=o.x,a.origin.y+=o.y)}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(i=n.getChildCount(t),o=0;o<i;o++)s=n.getChildAt(t,o),this.validateBounds(a,s)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var t=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);t==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:t==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(t=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:t==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,t){var n=this.graph.getModel(),a=this.getState(t),i=null;if(null!=a){if(a.invalid){var o=this.graph.getCellGeometry(t);if(null!=o&&n.isEdge(t)){var s=this.getState(this.getVisibleTerminal(t,!0));if(a.setVisibleTerminalState(s,!0),null!=s&&n.isEdge(s.cell)&&!n.isAncestor(s.cell,t)){var r=this.getState(n.getParent(s.cell));this.validatePoints(r,s.cell)}var l=this.getState(this.getVisibleTerminal(t,!1));a.setVisibleTerminalState(l,!1),null!=l&&n.isEdge(l.cell)&&!n.isAncestor(l.cell,t)&&(r=this.getState(n.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,s,l),this.updatePoints(a,o.points,s,l),this.updateFloatingTerminalPoints(a,s,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=o&&o.relative&&null!=e&&n.isEdge(e.cell)&&null!=(o=this.getPoint(e,o))&&(a.x=o.x,a.y=o.y,o.x=o.x/this.scale-this.translate.x,o.y=o.y/this.scale-this.translate.y,a.origin=o,this.childMoved(e,a));a.invalid=!1,t!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(n.isEdge(t)||n.isVertex(t))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(o=n.getChildCount(t),s=0;s<o;s++)r=n.getChildAt(t,s),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,t){var n=t.cell;if(!this.graph.isCellCollapsed(n)||n==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(n),o=0;o<i;o++)this.validateBounds(t,a.getChildAt(n,o))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,t,n){this.updateFixedTerminalPoint(e,t,!0,this.graph.getConnectionConstraint(e,t,!0)),this.updateFixedTerminalPoint(e,n,!1,this.graph.getConnectionConstraint(e,n,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,t,n,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(t,a)),null==i&&null==t){t=this.scale,a=this.translate;var o=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(n))&&(i=new mxPoint(t*(a.x+i.x+o.x),t*(a.y+i.y+o.y)))}e.setAbsoluteTerminalPoint(i,n)},mxGraphView.prototype.updatePoints=function(e,t,n,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var o=this.getEdgeStyle(e,t,n,a);if(null!=o)n=this.getTerminalPort(e,n,!0),a=this.getTerminalPort(e,a,!1),o(e,n,a,t,i);else if(null!=t)for(o=0;o<t.length;o++)null!=t[o]&&(a=mxUtils.clone(t[o]),i.push(this.transformControlPoint(e,a)));t=e.absolutePoints,i.push(t[t.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,t){var n=e.origin;return new mxPoint(this.scale*(t.x+this.translate.x+n.x),this.scale*(t.y+this.translate.y+n.y))},mxGraphView.prototype.getEdgeStyle=function(e,t,n,a){return"string"==typeof(e=null!=n&&n==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(t=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(t=mxUtils.eval(e)),e=t),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,t,n){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!1),null==i&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,t,n,a){t=this.getTerminalPort(e,t,a);var i=this.getNextPoint(e,n,a),o=this.graph.isOrthogonal(e);n=mxUtils.toRadians(Number(t.style[mxConstants.STYLE_ROTATION]||"0"));var s=new mxPoint(t.getCenterX(),t.getCenterY());if(0!=n)var r=Math.cos(-n),l=Math.sin(-n),i=mxUtils.getRotatedPoint(i,r,l,s);r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),t=this.getPerimeterPoint(t,i,0==n&&o,r),0!=n&&(r=Math.cos(n),l=Math.sin(n),t=mxUtils.getRotatedPoint(t,r,l,s)),e.setAbsoluteTerminalPoint(t,a)},mxGraphView.prototype.getTerminalPort=function(e,t,n){return null!=(e=mxUtils.getValue(e.style,n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(t=e),t},mxGraphView.prototype.getPerimeterPoint=function(e,t,n,a){var i=null;if(null!=e){var o=this.getPerimeterFunction(e);null!=o&&null!=t&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=o(a,e,t,n)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var t=null!=e.style?parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0:0;return e.getCenterX()+t*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var t=null!=e.style?parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return e.getCenterY()+t*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,t){return t=null!=t?t:0,null!=e&&(t+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(t*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var t=mxStyleRegistry.getValue(e);null==t&&this.isAllowEval()&&(t=mxUtils.eval(e)),e=t}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,t,n){var a=null;return null!=(e=e.absolutePoints)&&(n||2<e.length||null==t)&&(a=e.length,a=e[n?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=t&&(a=new mxPoint(t.getCenterX(),t.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,t){for(var n=this.graph.getModel(),a=n.getTerminal(e,t),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=n.getParent(a);return n.getParent(i)==n.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var t=e.absolutePoints;if(e.length=0,null!=t&&0<t.length){var n=t[0],a=t[t.length-1];if(null==n||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(n.x!=a.x||n.y!=a.y){var i=a.x-n.x,o=a.y-n.y;e.terminalDistance=Math.sqrt(i*i+o*o)}else e.terminalDistance=0;var a=0,s=[];if(null!=(o=n)){for(var n=o.x,r=o.y,l=n,d=r,c=1;c<t.length;c++){var m=t[c];null!=m&&(i=o.x-m.x,o=o.y-m.y,i=Math.sqrt(i*i+o*o),s.push(i),a+=i,o=m,n=Math.min(o.x,n),r=Math.min(o.y,r),l=Math.max(o.x,l),d=Math.max(o.y,d))}e.length=a,e.segments=s,e.x=n,e.y=r,e.width=Math.max(1,l-n),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,t){var n=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=t&&!t.relative)null!=t&&null!=(d=t.offset)&&(n+=d.x,a+=d.y);else{for(var i=e.absolutePoints.length,o=(.5+(null!=t?t.x/2:0))*e.length,s=e.segments[0],r=0,l=1;o>r+s&&l<i-1;)r+=s,s=e.segments[l++];if(i=0==s?0:(o-r)/s,o=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=o&&null!=l){if(r=n=a=0,null!=t){var a=t.y,d=t.offset;null!=d&&(n=d.x,r=d.y)}d=l.x-o.x,l=l.y-o.y,n=o.x+d*i+((0==s?0:l/s)*a+n)*this.scale,a=o.y+l*i-((0==s?0:d/s)*a-r)*this.scale}}return new mxPoint(n,a)},mxGraphView.prototype.getRelativePoint=function(e,t,n){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,o=e.segments,s=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n),d=0,c=0,m=0,u=2;u<a;u++)c+=o[u-2],r=e.absolutePoints[u],(s=mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n))<=l&&(l=s,d=u-1,m=c),s=r;return a=o[d],s=e.absolutePoints[d],r=e.absolutePoints[d+1],l=r.x,o=r.y,e=s.x-l,d=s.y-o,l=t-l,o=n-o,l=e-l,o=d-o,o=l*e+o*d,(e=Math.sqrt(0>=o?0:o*o/(e*e+d*d)))>a&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n)),-1==mxUtils.relativeCcw(s.x,s.y,r.x,r.y,t,n)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){i=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=i&&0<i.length&&null!=e.segments){var t=this.graph.getCellGeometry(e.cell);if(t.relative)null!=(n=this.getPoint(e,t))&&(e.absoluteOffset=n);else{var n=i[0],a=i[i.length-1];if(null!=n&&null!=a){var i=a.x-n.x,o=a.y-n.y,s=a=0;null!=(t=t.offset)&&(a=t.x,s=t.y),t=n.y+o/2+s*this.scale,e.absoluteOffset.x=n.x+i/2+a*this.scale,e.absoluteOffset.y=t}}}},mxGraphView.prototype.getState=function(e,t){t=t||!1;var n=null;return null!=e&&(n=this.states.get(e),this.graph.isCellVisible(e)&&(null==n&&t&&this.graph.isCellVisible(e)?(n=this.createState(e),this.states.put(e,n)):t&&null!=n&&this.updateStyle&&(n.style=this.graph.getCellStyle(e)))),n},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var t=[],n=0;n<e.length;n++){var a=this.getState(e[n]);null!=a&&t.push(a)}return t},mxGraphView.prototype.removeState=function(e){var t=null;return null!=e&&null!=(t=this.states.remove(e))&&(this.graph.cellRenderer.destroy(t),t.destroy()),t},mxGraphView.prototype.createState=function(e){return e=new mxCellState(this,e,this.graph.getCellStyle(e)),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){t=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-t.x,e.clientY-t.y);var t=this.graph.container.offsetWidth,n=this.graph.container.clientWidth;return t>n&&e.x>n+2&&e.x<=t||(t=this.graph.container.offsetHeight,n=this.graph.container.clientHeight,t>n&&e.y>n+2&&e.y<=t)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var e=this.graph,t=e.container;if(null!=t){mxEvent.addGestureListeners(t,mxUtils.bind(this,function(t){mxClient.IS_TOUCH&&e.isEditing()&&e.stopEditing(!e.isInvokesStopCellEditing()),this.isContainerEvent(t)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(t))&&e.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t))}),mxUtils.bind(this,function(t){this.isContainerEvent(t)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t))}),mxUtils.bind(this,function(t){this.isContainerEvent(t)&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))})),mxEvent.addListener(t,"dblclick",mxUtils.bind(this,function(t){e.dblClick(t)}));var n=function(n){var a=null;return mxClient.IS_TOUCH&&(a=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(t,a,n),a=e.view.getState(e.getCellAt(n.x,n.y))),a};e.addMouseListener({mouseDown:function(t,n){e.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(t){null!=e.tooltipHandler&&e.tooltipHandler.isHideOnHover()&&e.tooltipHandler.hide(),this.captureDocumentGesture&&e.isMouseDown&&!mxEvent.isConsumed(t)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,n(t)))}),this.endHandler=mxUtils.bind(this,function(t){this.captureDocumentGesture&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,t){if(null!=this.graph.container){var n=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=n<t?t+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,t){var n=document.createElement("DIV");return null!=e&&null!=t?(n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=e,n.style.height=t):n.style.position="relative",n},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var t=e.offsetWidth,n=e.offsetHeight;this.canvas=this.createVmlPane(t,n),this.backgroundPane=this.createVmlPane(t,n),this.drawPane=this.createVmlPane(t,n),this.overlayPane=this.createVmlPane(t,n),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,t){var n=document.createElement(mxClient.VML_PREFIX+":group");return n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=e+"px",n.style.height=t+"px",n.setAttribute("coordsize",e+","+t),n.setAttribute("coordorigin","0,0"),n},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var t=document.createElementNS(mxConstants.NS_SVG,"svg");t.style.width="100%",t.style.height="100%",t.style.display="block",t.appendChild(this.canvas),null!=e&&(e.appendChild(t),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var t=[],n=0;n<e.length;n++){var a=e[n];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&0>mxUtils.indexOf(t,i)&&t.push(i)}}return this.getModel().getTopmostCells(t)},mxGraph.prototype.graphModelChanged=function(e){for(var t=0;t<e.length;t++)this.processChange(e[t]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var t=[],n=0;n<e.length;n++){var a=e[n];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(t=t.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(t=t.concat(this.model.getDescendants(a.cell)))}return t},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var t=this.model.getParent(e.child);null!=t?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),t!=e.previous&&(null!=t&&this.view.invalidate(t,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var t=this.model.getChildCount(e),n=0;n<t;n++)this.removeStateForCell(this.model.getChildAt(e,n));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,t){null==e.overlays&&(e.overlays=[]),e.overlays.push(t);var n=this.view.getState(e);return null!=n&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",t)),t},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,t){if(null==t)this.removeCellOverlays(e);else{var n=mxUtils.indexOf(e.overlays,t);0<=n?(e.overlays.splice(n,1),0==e.overlays.length&&(e.overlays=null),null!=(n=this.view.getState(e))&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",t))):t=null}return t},mxGraph.prototype.removeCellOverlays=function(e){var t=e.overlays;if(null!=t){e.overlays=null;var n=this.view.getState(e);for(null!=n&&this.cellRenderer.redraw(n),n=0;n<t.length;n++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",t[n]))}return t},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var t=this.model.getChildCount(e),n=0;n<t;n++){var a=this.model.getChildAt(e,n);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(e,t,n,a){return null!=t&&0<t.length?(n=null!=n?n:this.warningImage,t=new mxCellOverlay(n,"<font color=red>"+t+"</font>"),a&&t.addListener(mxEvent.CLICK,mxUtils.bind(this,function(t,n){this.isEnabled()&&this.setSelectionCell(e)})),this.addCellOverlay(e,t)):(this.removeCellOverlays(e),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,t){null==e&&null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",t)),this.cellEditor.startEditing(e,t))},mxGraph.prototype.getEditingValue=function(e,t){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,t,n){this.model.beginUpdate();try{this.cellLabelChanged(e,t,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",t,"event",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,t,n){this.model.beginUpdate();try{this.model.setValue(e,t),n&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var t=0;t<e.length;t++){var n=this.view.getState(e[t]);null!=n&&null!=n.handler&&n.handler.reset()}},mxGraph.prototype.click=function(e){var t=e.getEvent(),n=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",t,"cell",n);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(t)&&!a.isConsumed()&&(null!=n?this.selectCellForEvent(n,t):(n=null,this.isSwimlaneSelectionEnabled()&&(n=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=n?this.selectCellForEvent(n,t):this.isToggleEvent(t)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),this.isEnabled()&&!mxEvent.isConsumed(e)&&!n.isConsumed()&&null!=t&&this.isCellEditable(t)&&this.startEditingAtCell(t,e)},mxGraph.prototype.scrollPointToVisible=function(e,t,n,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,t+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&t>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&t<=i.scrollTop+i.clientHeight){var o=i.scrollLeft+i.clientWidth-e;if(o<a){if(e=i.scrollLeft,i.scrollLeft+=a-o,n&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var s=this.container.scrollWidth+a-o}else s=Math.max(i.clientWidth,i.scrollWidth)+a-o,e=this.view.getCanvas();e.style.width=s+"px",i.scrollLeft+=a-o}}else(o=e-i.scrollLeft)<a&&(i.scrollLeft-=a-o);(o=i.scrollTop+i.clientHeight-t)<a?(e=i.scrollTop,i.scrollTop+=a-o,e==i.scrollTop&&n&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,t=this.container.scrollHeight+a-o):(t=Math.max(i.clientHeight,i.scrollHeight)+a-o,e=this.view.getCanvas()),e.style.height=t+"px",i.scrollTop+=a-o)):(o=t-i.scrollTop)<a&&(i.scrollTop-=a-o)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var t=0,t="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(t)&&(t=0),t}var t=mxUtils.getCurrentStyle(this.container),n=new mxRectangle;return n.x=e(t.borderLeftWidth)+parseInt(t.paddingLeft||0),n.y=e(t.borderTopWidth)+parseInt(t.paddingTop||0),n.width=e(t.borderRightWidth)+parseInt(t.paddingRight||0),n.height=e(t.borderBottomWidth)+parseInt(t.paddingBottom||0),n},mxGraph.prototype.getPreferredPageSize=function(e,t,n){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,o=e*this.pageScale,i=new mxRectangle(0,0,i.width*o,i.height*o);return t=this.pageBreaksVisible?Math.ceil(t/i.width):1,n=this.pageBreaksVisible?Math.ceil(n/i.height):1,new mxRectangle(0,0,t*i.width+2+a.x/e,n*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var t=this.getBorder(),n=Math.max(0,e.x+e.width+1+t),t=Math.max(0,e.y+e.height+1+t);if(null!=this.minimumContainerSize&&(n=Math.max(n,this.minimumContainerSize.width),t=Math.max(t,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(n,t),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,n,t);null!=a&&(n=a.width,t=a.height)}null!=this.minimumGraphSize&&(n=Math.max(n,this.minimumGraphSize.width*this.view.scale),t=Math.max(t,this.minimumGraphSize.height*this.view.scale)),n=Math.ceil(n-1),t=Math.ceil(t-1),this.dialect==mxConstants.DIALECT_SVG?(a=this.view.getDrawPane().ownerSVGElement,a.style.minWidth=Math.max(1,n)+"px",a.style.minHeight=Math.max(1,t)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,n),Math.max(1,t)):(this.view.canvas.style.minWidth=Math.max(1,n)+"px",this.view.canvas.style.minHeight=Math.max(1,t)+"px"),this.updatePageBreaks(this.pageBreaksVisible,n-1,t-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,t){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var n=this.getBorderSizes();e+=Math.max(2,n.x+n.width+1),t+=Math.max(2,n.y+n.height+1)}else 9<=document.documentMode?(e+=3,t+=5):(e+=1,t+=1);else t+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),t=Math.min(this.maximumContainerSize.height,t)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(t)+"px"},mxGraph.prototype.updatePageBreaks=function(e,t,n){var a=this.view.scale,i=this.view.translate,o=this.pageFormat,s=a*this.pageScale,i=new mxRectangle(a*i.x,a*i.y,o.width*s,o.height*s);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),o=e?Math.ceil((t-i.x)/i.width):0,e=e?Math.ceil((n-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<o&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(s=0;s<=o;s++){var r=[new mxPoint(i.x+s*i.width,1),new mxPoint(i.x+s*i.width,n)];null!=this.horizontalPageBreaks[s]?(this.horizontalPageBreaks[s].scale=1,this.horizontalPageBreaks[s].points=r,this.horizontalPageBreaks[s].redraw()):(r=new mxPolyline(r,this.pageBreakColor,this.scale),r.dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[s]=r)}for(s=o;s<this.horizontalPageBreaks.length;s++)this.horizontalPageBreaks[s].destroy();this.horizontalPageBreaks.splice(o,this.horizontalPageBreaks.length-o)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(s=0;s<=e;s++)r=[new mxPoint(1,i.y+s*i.height),new mxPoint(t,i.y+s*i.height)],null!=this.verticalPageBreaks[s]?(this.verticalPageBreaks[s].scale=1,this.verticalPageBreaks[s].points=r,this.verticalPageBreaks[s].redraw()):(r=new mxPolyline(r,this.pageBreakColor,a),r.dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[s]=r);for(s=e;s<this.verticalPageBreaks.length;s++)this.verticalPageBreaks[s].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var t=this.model.getStyle(e),n=null,n=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=t&&(n=this.postProcessCellStyle(this.stylesheet.getCellStyle(t,n))),null==n&&(n=mxGraph.prototype.EMPTY_ARRAY),n},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var t=e[mxConstants.STYLE_IMAGE],n=this.getImageFromBundles(t);null!=n?e[mxConstants.STYLE_IMAGE]=n:n=t,null!=n&&"data:image/"==n.substring(0,11)&&(0<(t=n.indexOf(","))&&(n=n.substring(0,t)+";base64,"+n.substring(t+1)),e[mxConstants.STYLE_IMAGE]=n)}return e},mxGraph.prototype.setCellStyle=function(e,t){if(null!=(t=t||this.getSelectionCells())){this.model.beginUpdate();try{for(var n=0;n<t.length;n++)this.model.setStyle(t[n],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,t,n){n=n||this.getSelectionCell(),this.toggleCellStyles(e,t,[n])},mxGraph.prototype.toggleCellStyles=function(e,t,n){if(t=null!=t&&t,null!=(n=n||this.getSelectionCells())&&0<n.length){var a=this.view.getState(n[0]);null!=(a=null!=a?a.style:this.getCellStyle(n[0]))&&(t=mxUtils.getValue(a,e,t)?0:1,this.setCellStyles(e,t,n))}},mxGraph.prototype.setCellStyles=function(e,t,n){n=n||this.getSelectionCells(),mxUtils.setCellStyles(this.model,n,e,t)},mxGraph.prototype.toggleCellStyleFlags=function(e,t,n){this.setCellStyleFlags(e,t,null,n)},mxGraph.prototype.setCellStyleFlags=function(e,t,n,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){if(null==n){var i=this.view.getState(a[0]);null!=(i=null!=i?i.style:this.getCellStyle(a[0]))&&(n=(parseInt(i[e]||0)&t)!=t)}mxUtils.setCellStyleFlags(this.model,a,e,t,n)}},mxGraph.prototype.alignCells=function(e,t,n){if(null==t&&(t=this.getSelectionCells()),null!=t&&1<t.length){if(null==n)for(var a=0;a<t.length;a++){var i=this.getCellGeometry(t[a]);if(null!=i&&!this.model.isEdge(t[a]))if(null==n){if(e==mxConstants.ALIGN_CENTER){n=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)n=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)n=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){n=i.y+i.height/2;break}n=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else n=e==mxConstants.ALIGN_RIGHT?Math.max(n,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(n,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(n,i.y+i.height):Math.min(n,i.x)}if(null!=n){this.model.beginUpdate();try{for(a=0;a<t.length;a++)null!=(i=this.getCellGeometry(t[a]))&&!this.model.isEdge(t[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=n-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=n-i.width:e==mxConstants.ALIGN_TOP?i.y=n:e==mxConstants.ALIGN_MIDDLE?i.y=n-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=n-i.height:i.x=n,this.model.setGeometry(t[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",t))}finally{this.model.endUpdate()}}}return t},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var t=this.model.getStyle(e);null==t||0==t.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var t=[],n=0;n<this.imageBundles.length;n++)this.imageBundles[n]!=e&&t.push(this.imageBundles[n]);this.imageBundles=t},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var t=0;t<this.imageBundles.length;t++){var n=this.imageBundles[t].getImage(e);if(null!=n)return n}return null},mxGraph.prototype.orderCells=function(e,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(t,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsOrdered=function(e,t){if(null!=e){this.model.beginUpdate();try{for(var n=0;n<e.length;n++){var a=this.model.getParent(e[n]);t?this.model.add(a,e[n],n):this.model.add(a,e[n],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",t,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,t,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),n=this.getCellsForGroup(n),null==e&&(e=this.createGroupCell(n));var a=this.getBoundsForGroup(e,n,t);if(0<n.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(n[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var o=this.model.getChildCount(i);this.cellsAdded([e],i,o,null,null,!1),o=this.model.getChildCount(e),this.cellsAdded(n,e,o,null,null,!1,!1),this.cellsMoved(n,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",t,"cells",n))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var t=[];if(null!=e&&0<e.length){var n=this.model.getParent(e[0]);t.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==n&&t.push(e[a])}return t},mxGraph.prototype.getBoundsForGroup=function(e,t,n){return null!=(t=this.getBoundingBoxFromGeometry(t))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),t.x-=e.width,t.y-=e.height,t.width+=e.width,t.height+=e.height),t.x-=n,t.y-=n,t.width+=2*n,t.height+=2*n),t},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var t=[];if(null==e){e=this.getSelectionCells();for(var n=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&n.push(e[a]);e=n}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++)if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),o=this.model.getParent(e[a]),s=this.model.getChildCount(o);this.cellsAdded(i,o,s,null,null,!0),t=t.concat(i)}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return t},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var t=this.getDefaultParent(),n=this.model.getChildCount(t);this.cellsAdded(e,t,n,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,t,n){null==e&&(e=this.getSelectionCells()),t=null!=t?t:0,n=null!=n&&n,this.model.beginUpdate();try{for(var a=0;a<e.length;a++)if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var o=this.getBoundingBoxFromGeometry(i);if(0<o.width&&0<o.height){var s=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();n&&(r.x+=o.x-s.width-t,r.y+=o.y-s.height-t),r.width=o.width+s.width+2*t,r.height=o.height+s.height+2*t,this.model.setGeometry(e[a],r),this.moveCells(i,-o.x+s.width+t,-o.y+s.height+t)}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,t){t=null==t||t;a=null;if(null!=e){for(var n={},a=[],i=0;i<e.length;i++)n[o=mxCellPath.create(e[i])]=e[i],a.push(e[i]);if(0<a.length)for(var o=this.view.scale,s=this.view.translate,a=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!t&&this.model.isEdge(a[i])&&null!=this.getEdgeValidationError(a[i],this.model.getTerminal(a[i],!0),this.model.getTerminal(a[i],!1)))a[i]=null;else{var r=this.model.getGeometry(a[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x,d=d.origin.y;if(this.model.isEdge(a[i])){for(var l=l.absolutePoints,m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==n[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/o-s.x,l[0].y/o-s.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==n[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/o-s.x,l[m].y/o-s.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}else a=[]}return a},mxGraph.prototype.insertVertex=function(e,t,n,a,i,o,s,r,l){return t=this.createVertex(e,t,n,a,i,o,s,r,l),this.addCell(t,e)},mxGraph.prototype.createVertex=function(e,t,n,a,i,o,s,r,l){return e=new mxGeometry(a,i,o,s),e.relative=null!=l&&l,(n=new mxCell(n,e,r)).setId(t),n.setVertex(!0),n.setConnectable(!0),n},mxGraph.prototype.insertEdge=function(e,t,n,a,i,o){return t=this.createEdge(e,t,n,a,i,o),this.addEdge(t,e,a,i)},mxGraph.prototype.createEdge=function(e,t,n,a,i,o){return(e=new mxCell(n,new mxGeometry,o)).setId(t),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,t,n,a,i){return this.addCell(e,t,i,n,a)},mxGraph.prototype.addCell=function(e,t,n,a,i){return this.addCells([e],t,n,a,i)[0]},mxGraph.prototype.addCells=function(e,t,n,a,i){null==t&&(t=this.getDefaultParent()),null==n&&(n=this.model.getChildCount(t)),this.model.beginUpdate();try{this.cellsAdded(e,t,n,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",t,"index",n,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,t,n,a,i,o,s){if(null!=e&&null!=t&&null!=n){this.model.beginUpdate();try{for(var r=null!=(d=o?this.view.getState(t):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])n--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=t&&t!=c){var m=this.view.getState(c),u=null!=m?m.origin:l,p=this.model.getGeometry(e[d]);if(null!=p){var g=u.x-r.x,h=u.y-r.y;(p=p.clone()).translate(g,h),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}t==c&&n+d>this.model.getChildCount(t)&&n--,this.model.add(t,e[d],n+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==s||s)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",t,"index",n,"source",a,"target",i,"absolute",o))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,t){t=null==t||t,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),t&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var t=this.view.scale,n=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var o=mxCellPath.create(e[i]);a[o]=e[i]}for(i=0;i<e.length;i++){for(var s=this.getConnections(e[i]),r=0;r<s.length;r++)if(o=mxCellPath.create(s[r]),null==a[o]&&null!=(d=this.model.getGeometry(s[r]))){var l=this.view.getState(s[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/t-n.x,m[u].y/t-n.y),c),this.model.setTerminal(s[r],null,c),this.model.setGeometry(s[r],d)}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,t,n,a,i){a=a||0,i=i||0,null==n&&(n=this.cloneCells([e])[0]);var o=this.model.getParent(e),s=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(t,a,i,!1,!1),this.cellsAdded(t,o,this.model.getChildCount(o),null,null,!0),this.cellsAdded([n],o,this.model.getChildCount(o),s,t[0],!1),this.cellConnected(e,t[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",t,"newEdge",n,"dx",a,"dy",i))}finally{this.model.endUpdate()}return n},mxGraph.prototype.toggleCells=function(e,t,n){null==t&&(t=this.getSelectionCells()),n&&(t=this.addAllEdges(t)),this.model.beginUpdate();try{this.cellsToggled(t,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",t,"includeEdges",n))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsToggled=function(e,t){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var n=0;n<e.length;n++)this.model.setVisible(e[n],t)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,t,n,a){t=null!=t&&t,null==n&&(n=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(n,e,t,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",t,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsFolded=function(e,t,n,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],t))&&t!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],t),this.swapBounds(e[i],t),this.isExtendParent(e[i])&&this.extendParent(e[i]),n)){var o=this.model.getChildren(e[i]);this.foldCells(o,t,n)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",t,"recurse",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,t){if(null!=e){var n=this.model.getGeometry(e);null!=n&&(n=n.clone(),this.updateAlternateBounds(e,n,t),n.swap(),this.model.setGeometry(e,n))}},mxGraph.prototype.updateAlternateBounds=function(e,t,n){if(null!=e&&null!=t){if(n=this.view.getState(e),n=null!=n?n.style:this.getCellStyle(e),null==t.alternateBounds){var a=t;this.collapseToPreferredSize&&null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(n,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e))),t.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=t.alternateBounds){t.alternateBounds.x=t.x,t.alternateBounds.y=t.y;var i=mxUtils.toRadians(n[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=t.alternateBounds.getCenterX()-t.getCenterX(),n=t.alternateBounds.getCenterY()-t.getCenterY(),a=Math.cos(i),i=Math.sin(i),t.alternateBounds.x+=a*e-i*n-e,t.alternateBounds.y+=i*e+a*n-n)}}},mxGraph.prototype.addAllEdges=function(e){var t=e.slice();return t=t.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var t=[];if(null!=e)for(var n=0;n<e.length;n++){for(var a=this.model.getEdgeCount(e[n]),i=0;i<a;i++)t.push(this.model.getEdgeAt(e[n],i));a=this.model.getChildren(e[n]),t=t.concat(this.getAllEdges(a))}return t},mxGraph.prototype.updateCellSize=function(e,t){t=null!=t&&t,this.model.beginUpdate();try{this.cellSizeUpdated(e,t),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,t){if(null!=e){this.model.beginUpdate();try{var n=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=n&&null!=a){var i=this.isCellCollapsed(e),a=a.clone();if(this.isSwimlane(e)){var o=this.view.getState(e),s=null!=o?o.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(s,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,n.height+8),i&&(a.height=n.height+8),a.width=n.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,n.width+8),i&&(a.width=n.width+8),a.height=n.height),this.model.setStyle(e,r)}else a.width=n.width,a.height=n.height;if(!t&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){o=null;if(null!=e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);if(null!=n&&!this.model.isEdge(e)){var a=n[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,i=0,o=0;null==this.getImage(t)&&null==n[mxConstants.STYLE_IMAGE]||n[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(n[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(i+=parseFloat(n[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),n[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(o+=parseFloat(n[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),i+=2*(n[mxConstants.STYLE_SPACING]||0),i+=n[mxConstants.STYLE_SPACING_LEFT]||0,i+=n[mxConstants.STYLE_SPACING_RIGHT]||0,o+=2*(n[mxConstants.STYLE_SPACING]||0),o+=n[mxConstants.STYLE_SPACING_TOP]||0,o+=n[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(i+=t.width+8),null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),a=mxUtils.getSizeForString(t,a,n[mxConstants.STYLE_FONTFAMILY]),e=a.width+i,o=a.height+o,mxUtils.getValue(n,mxConstants.STYLE_HORIZONTAL,!0)||(n=o,o=e,e=n),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),o=this.snap(o+this.gridSize/2)),o=new mxRectangle(0,0,e,o)):(n=4*this.gridSize,o=new mxRectangle(0,0,n,n))}}return o},mxGraph.prototype.handleGesture=function(e,t){if(.2<Math.abs(1-t.scale)){var n=this.view.scale,a=this.view.translate,i=e.width*t.scale,o=e.height*t.scale,s=e.y-(o-e.height)/2,n=new mxRectangle(this.snap((e.x-(i-e.width)/2)/n)-a.x,this.snap(s/n)-a.y,this.snap(i/n),this.snap(o/n));this.resizeCell(e.cell,n)}},mxGraph.prototype.resizeCell=function(e,t){return this.resizeCells([e],[t])[0]},mxGraph.prototype.resizeCells=function(e,t){this.model.beginUpdate();try{this.cellsResized(e,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,t){if(null!=e&&null!=t&&e.length==t.length){this.model.beginUpdate();try{for(var n=0;n<e.length;n++){var a=t[n],i=this.model.getGeometry(e[n]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var o=i.offset;null!=o&&(o.x+=a.x-i.x,o.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[n])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[n],i),this.isExtendParent(e[n])&&this.extendParent(e[n])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var t=this.model.getParent(e),n=this.model.getGeometry(t);null!=t&&null!=n&&!this.isCellCollapsed(t)&&null!=(e=this.model.getGeometry(e))&&(n.width<e.x+e.width||n.height<e.y+e.height)&&(n=n.clone(),n.width=Math.max(n.width,e.x+e.width),n.height=Math.max(n.height,e.y+e.height),this.cellsResized([t],[n]))}},mxGraph.prototype.importCells=function(e,t,n,a,i){return this.moveCells(e,t,n,!0,a,i)},mxGraph.prototype.moveCells=function(e,t,n,a,i,o){if(t=null!=t?t:0,n=null!=n?n:0,a=null!=a&&a,null!=e&&(0!=t||0!=n||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var s=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,t,n,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(s),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",t,"dy",n,"clone",a,"target",i,"event",o))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,t,n,a,i){if(null!=e&&(0!=t||0!=n)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var o=0;o<e.length;o++)this.translateCell(e[o],t,n),i&&this.constrainChild(e[o]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",n,"dy",n,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,t,n){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(t,n),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(t,n):(a.offset.x+=t,a.offset.y+=n)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var t=this.model.getParent(e);if(t==this.getDefaultParent()||t==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=t&&t!=this.getDefaultParent()&&null!=(i=this.model.getGeometry(t))){var n=e=0,a=i.width,i=i.height;return this.isSwimlane(t)&&(t=this.getStartSize(t),e=t.width,a-=t.width,n=t.height,i-=t.height),new mxRectangle(e,n,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var t=this.model.getGeometry(e),n=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=t&&null!=n&&!t.relative&&(t.x<n.x||t.y<n.y||n.width<t.x+t.width||n.height<t.y+t.height)&&(e=this.getOverlap(e),0<n.width&&(t.x=Math.min(t.x,n.x+n.width-(1-e)*t.width)),0<n.height&&(t.y=Math.min(t.y,n.y+n.height-(1-e)*t.height)),t.x=Math.max(t.x,n.x-t.width*e),t.y=Math.max(t.y,n.y-t.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var t={},n=0;n<e.length;n++){var a=mxCellPath.create(e[n]);t[a]=e[n]}this.model.beginUpdate();try{for(n=0;n<e.length;n++){var i=this.model.getEdges(e[n]);if(null!=i)for(a=0;a<i.length;a++){var o=this.view.getState(i[a]),s=null!=o?o.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=o?o.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(s),d=mxCellPath.create(r);(null==t[l]||null==t[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[n]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var t=this.model.getGeometry(e);return null!=t&&null!=t.points&&0<t.points.length&&(t=t.clone(),t.points=[],this.model.setGeometry(e,t)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,t){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,t,n){t=null;var a=e.style[n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(t=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=t&&(a=mxUtils.getValue(e.style,n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(t,a)},mxGraph.prototype.setConnectionConstraint=function(e,t,n,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,t){var n=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),o=e.style[mxConstants.STYLE_DIRECTION],s=0;if(null!=o&&("north"==o?s+=270:"west"==o?s+=180:"south"==o&&(s+=90),"north"==o||"south"==o)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=t.point){var l=n=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=o&&"south"!=o||(r=m,m=u,u=r),m&&(n=-1,d=-a.width),u&&(l=-1,c=-a.height)}n=new mxPoint(a.x+t.point.x*a.width*n-d,a.y+t.point.y*a.height*l-c)}o=e.style[mxConstants.STYLE_ROTATION]||0,t.perimeter?(0!=s&&null!=n&&(r=a=0,90==s?r=1:180==s?a=-1:270==o&&(r=-1),n=mxUtils.getRotatedPoint(n,a,r,i)),null!=n&&t.perimeter&&(n=this.view.getPerimeterPoint(e,n,!1))):o+=s,0!=o&&null!=n&&(s=mxUtils.toRadians(o),a=Math.cos(s),r=Math.sin(s),n=mxUtils.getRotatedPoint(n,a,r,i))}return n},mxGraph.prototype.connectCell=function(e,t,n,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,n);this.cellConnected(e,t,n,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",t,"source",n,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,t,n,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,n);this.setConnectionConstraint(e,t,n,a),this.isPortsEnabled()&&(a=null,this.isPort(t)&&(a=t.getId(),t=this.getTerminalForPort(t,n)),this.setCellStyles(n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,t,n),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",t,"source",n,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var t=this.view.scale,n=this.view.translate,a={},i=0;i<e.length;i++)a[mxCellPath.create(e[i])]=e[i];for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])&&null!=(r=this.model.getGeometry(e[i]))){var o=this.view.getState(e[i]),s=this.view.getState(this.model.getParent(e[i]));if(null!=o&&null!=s){var r=r.clone(),l=-s.origin.x,d=-s.origin.y,c=o.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/t-n.x+l,c[0].y/t-n.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var h=c.length-1;r.setTerminalPoint(new mxPoint(c[h].x/t-n.x+l,c[h].y/t-n.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,t){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),t=this.getCurrentRoot();if(null!=t){for(var n=this.model.getParent(t);n!=e&&!this.isValidRoot(n)&&this.model.getParent(n)!=e;)n=this.model.getParent(n);n==e||this.model.getParent(n)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(n),null!=this.view.getState(t)&&this.setSelectionCell(t)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,t,n){var a=[e];if(t&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),n){n=this.model.getChildCount(e);for(var i=0;i<n;i++){var o=this.getCellBounds(this.model.getChildAt(e,i),t,!0);null!=a?a.add(o):a=o}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,t){t=null!=t&&t;var n=null;if(null!=e)for(var a=0;a<e.length;a++)if(t||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var o=i.points;if(null!=o&&0<o.length){for(var s=new mxRectangle(o[0].x,o[0].y,0,0),r=function(e){null!=e&&s.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<o.length;l++)r(o[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i)}}return n},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,t){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-t;else{var n=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==t){if(mxClient.IS_IE?n.setAttribute("transform","translate("+e+","+t+")"):n.removeAttribute("transform"),null!=this.shiftPreview1){for(o=this.shiftPreview1.firstChild;null!=o;){var a=o.nextSibling;this.container.appendChild(o),o=a}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(n.parentNode),o=this.shiftPreview2.firstChild;null!=o;)a=o.nextSibling,this.container.appendChild(o),o=a;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(n.setAttribute("transform","translate("+e+","+t+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";for(var i=this.shiftPreview1,o=this.container.firstChild;null!=o;)a=o.nextSibling,o!=n.parentNode?i.appendChild(o):i=this.shiftPreview2,o=a;this.container.insertBefore(this.shiftPreview1,n.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=t+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=t+"px"}else n.style.left=e+"px",n.style.top=t+"px";this.panDx=e,this.panDy=t,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,t){this.zoom(e/this.view.scale,t)},mxGraph.prototype.zoom=function(e,t){t=null!=t?t:this.centerZoom;var n=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=n,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(n));else if(t&&!mxUtils.hasScrollbars(this.container)){var a=this.container.offsetWidth,i=this.container.offsetHeight;if(1<e)var o=(e-1)/(2*n),a=a*-o,i=i*-o;else o=(1/e-1)/(2*this.view.scale),a*=o,i*=o;this.view.scaleAndTranslate(n,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(n),mxUtils.hasScrollbars(this.container)&&(i=a=0,t&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var t=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var n=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=n-e.x,e.height=a-e.y,1>t?(t=e.height/t,n=(t-e.height)/2,e.height=t,t=Math.min(e.y,n),e.y-=t,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t*=e.width,n=(t-e.width)/2,e.width=t,t=Math.min(e.x,n),e.x-=t,n=Math.min(this.container.scrollWidth,e.x+e.width),e.width=n-e.x),t=this.container.clientWidth/e.width,n=this.view.scale*t,mxUtils.hasScrollbars(this.container)?(this.view.setScale(n),this.container.scrollLeft=Math.round(e.x*t),this.container.scrollTop=Math.round(e.y*t)):this.view.scaleAndTranslate(n,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,t){if(null!=this.container){e=null!=e?e:0,t=null!=t&&t;var n=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();t&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var o=this.view.scale,s=i.width/o,r=i.height/o;null!=this.backgroundImage&&(s=Math.max(s,this.backgroundImage.width-i.x/o),r=Math.max(r,this.backgroundImage.height-i.y/o));var l=t?e:2*e,n=Math.floor(100*Math.min(n/(s+l),a/(r+l)))/100;null!=this.minFitScale&&(n=Math.max(n,this.minFitScale)),null!=this.maxFitScale&&(n=Math.min(n,this.maxFitScale)),t?this.view.scale!=n&&this.view.setScale(n):mxUtils.hasScrollbars(this.container)?(this.view.setScale(n),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/o)*n-e-Math.max(0,(this.container.clientWidth-s*n)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/o)*n-e-Math.max(0,(this.container.clientHeight-r*n)/2))):this.view.scaleAndTranslate(n,null!=i.x?Math.floor(this.view.translate.x-i.x/o+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/o+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,t){var n=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(n=new mxRectangle(n+i.x,a+i.y,i.width,i.height),t&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,n.x=n.getCenterX()-a/2,n.width=a,n.y=n.getCenterY()-i/2,n.height=i),this.scrollRectToVisible(n)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var t=!1;if(null!=e){var n=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(n,e.width),o=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){n=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var s=n.scrollLeft-e.x,a=Math.max(s-n.scrollLeft,0);0<s?n.scrollLeft-=s+2:0<(s=e.x+i-n.scrollLeft-n.clientWidth)&&(n.scrollLeft+=s+2),i=n.scrollTop-e.y,s=Math.max(0,i-n.scrollTop),0<i?n.scrollTop-=i+2:0<(i=e.y+o-n.scrollTop-n.clientHeight)&&(n.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=s)&&this.view.setTranslate(a,s)}else{var s=-this.view.translate.x,r=-this.view.translate.y,l=this.view.scale;e.x+i>s+n&&(this.view.translate.x-=(e.x+i-n-s)/l,t=!0),e.y+o>r+a&&(this.view.translate.y-=(e.y+o-a-r)/l,t=!0),e.x<s&&(this.view.translate.x+=(s-e.x)/l,t=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,t=!0),t&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return t},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var t=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=t?t:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var t=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=t&&t==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,t,n){return null==this.getEdgeValidationError(e,t,n)},mxGraph.prototype.getEdgeValidationError=function(e,t,n){if(null!=e&&!this.isAllowDanglingEdges()&&(null==t||null==n))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&t==n&&null!=t||!this.isValidConnection(t,n))return"";if(null!=t&&null!=n){var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(t,n,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(t,!0,e),o=this.model.getDirectedEdgeCount(n,!1,e);if(null!=this.multiplicities)for(var s=0;s<this.multiplicities.length;s++){var r=this.multiplicities[s].check(this,e,t,n,i,o);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,t,n))&&(a+=r),0<a.length?a:null}return this.allowDanglingEdges?null:""},mxGraph.prototype.validateEdge=function(e,t,n){return null},mxGraph.prototype.validateGraph=function(e,t){e=null!=e?e:this.model.getRoot(),t=null!=t?t:{};for(var n=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var o=this.model.getChildAt(e,i),s=t;this.isValidRoot(o)&&(s={}),null!=(s=this.validateGraph(o,s))?this.setCellWarning(o,s.replace(/\n/g,"<br>")):this.setCellWarning(o,null),n=n&&null==s}return a="",this.isCellCollapsed(e)&&!n&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,t))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!n?a:null},mxGraph.prototype.getCellValidationError=function(e){var t=this.model.getDirectedEdgeCount(e,!0),n=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var o=this.multiplicities[i];o.source&&mxUtils.isNode(e,o.type,o.attr,o.value)&&(0==o.max&&0<t||1==o.min&&0==t||1==o.max&&1<t)?a+=o.countError+"\n":!o.source&&mxUtils.isNode(e,o.type,o.attr,o.value)&&(0==o.max&&0<n||1==o.min&&0==n||1==o.max&&1<n)&&(a+=o.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,t){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var t=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!t))return t?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var t="";if(this.labelsVisible&&null!=e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);mxUtils.getValue(n,mxConstants.STYLE_NOLABEL,!1)||(t=this.convertValueToString(e))}return t},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t)),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var t=new mxRectangle,n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&(n=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?t.height=n:t.width=n),t},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){if(null!=e&&this.model.getParent(e)!=this.model.getRoot()){var t=this.view.getState(e);if(null!=(t=null!=t?t.style:this.getCellStyle(e))&&!this.model.isEdge(e))return t[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var t=this.model.getGeometry(e);return this.isCellsLocked()||null!=t&&this.model.isVertex(e)&&t.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,t){return!0},mxGraph.prototype.isCellBendable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,t,n){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,t){return this.isValidSource(e)&&this.isValidTarget(t)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null!=this.cellEditor){var t=this.cellEditor.getEditingCell();return null==e?null!=t:e==t}return!1},mxGraph.prototype.isAutoSizeCell=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,t){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,t)}))},mxGraph.prototype.isCellFoldable=function(e,t){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=n[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,t,n){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,t,n)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,t,n){return!(!this.model.isEdge(e)||null==t||1!=t.length||!this.isCellConnectable(t[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),t[0]))&&(n=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(t[0],n)&&!this.model.isAncestor(t[0],e))},mxGraph.prototype.getDropTarget=function(e,t,n){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if(a=mxUtils.convertPoint(this.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a.x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==n)n=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=n;)i=this.model.getParent(i);i==n&&(n=a)}for(;null!=n&&!this.isValidDropTarget(n,e,t)&&!this.model.isLayer(n);)n=this.model.getParent(n);return!this.model.isLayer(n)&&0>mxUtils.indexOf(e,n)?n:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0)),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,t,n){if(null!=(n=n||this.getDefaultParent()))for(var a=this.model.getChildCount(n),i=0;i<a;i++){var o=this.model.getChildAt(n,i),s=this.getSwimlaneAt(e,t,o);if(null!=s)return s;if(this.isSwimlane(o)&&(s=this.view.getState(o),this.intersects(s,e,t)))return o}return null},mxGraph.prototype.getCellAt=function(e,t,n,a,i){if(a=null==a||a,i=null==i||i,null!=(n=null!=n?n:this.getDefaultParent()))for(var o=this.model.getChildCount(n)-1;0<=o;o--){var s=this.model.getChildAt(n,o),r=this.getCellAt(e,t,s,a,i);if(null!=r)return r;if(this.isCellVisible(s)&&(i&&this.model.isEdge(s)||a&&this.model.isVertex(s))&&(r=this.view.getState(s),this.intersects(r,e,t)))return s}return null},mxGraph.prototype.intersects=function(e,t,n){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],o=1;o<a.length;o++){var s=a[o];if(mxUtils.ptSegDistSq(i.x,i.y,s.x,s.y,t,n)<=e)return!0;i=s}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),o=new mxPoint(e.getCenterX(),e.getCenterY()),i=mxUtils.getRotatedPoint(new mxPoint(t,n),a,i,o),t=i.x,n=i.y),mxUtils.contains(e,t,n))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,t,n){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(t-=a.x,n-=a.y,0<e.width&&0<t&&t>e.width*i||0<e.height&&0<n&&n>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,t,n){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=t&&t,null!=n&&n),t=[],n=0;n<e.length;n++)this.isCellVisible(e[n])&&t.push(e[n]);return t},mxGraph.prototype.getConnections=function(e,t){return this.getEdges(e,t,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,t){return this.getEdges(e,t,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,t){return this.getEdges(e,t,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,t,n,a,i,o){n=null==n||n,a=null==a||a,i=null==i||i,o=null!=o&&o;for(var s=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(s=s.concat(this.model.getEdges(c,n,a)))}for(s=s.concat(this.model.getEdges(e,n,a)),r=[],d=0;d<s.length;d++)c=this.view.getState(s[d]),l=null!=c?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(s[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(s[d],!1),(i&&l==c||l!=c&&(n&&c==e&&(null==t||this.isValidAncestor(l,t,o))||a&&l==e&&(null==t||this.isValidAncestor(c,t,o))))&&r.push(s[d]);return r},mxGraph.prototype.isValidAncestor=function(e,t,n){return n?this.model.isAncestor(t,e):this.model.getParent(e)==t},mxGraph.prototype.getOpposites=function(e,t,n,a){n=null==n||n,a=null==a||a;var i=[],o={};if(null!=e)for(var s=0;s<e.length;s++){var r=null!=(l=this.view.getState(e[s]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[s],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[s],!1);if(r==t&&null!=l&&l!=t&&a){var d=mxCellPath.create(l);null==o[d]&&(o[d]=l,i.push(l))}else l==t&&null!=r&&r!=t&&n&&(d=mxCellPath.create(r),null==o[d]&&(o[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;for(var a=this.getEdges(e),i=[],o=0;o<a.length;o++){var s=null!=(r=this.view.getState(a[o]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[o],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[o],!1);(s==e&&r==t||!n&&s==t&&r==e)&&i.push(a[o])}return i},mxGraph.prototype.getPointForEvent=function(e,t){var n=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,o=0!=t?this.gridSize/2:0;return n.x=this.snap(n.x/a-i.x-o),n.y=this.snap(n.y/a-i.y-o),n},mxGraph.prototype.getCells=function(e,t,n,a,i,o){if(o=null!=o?o:[],0<n||0<a){var s=e+n,r=t+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=t&&u.x+u.width<=s?o.push(c):this.getCells(e,t,n,a,c,o)}}}return o},mxGraph.prototype.getCellsBeyond=function(e,t,n,a,i){var o=[];if((a||i)&&(null==n&&(n=this.getDefaultParent()),null!=n))for(var s=this.model.getChildCount(n),r=0;r<s;r++){var l=this.model.getChildAt(n,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=t)&&o.push(l)}return o},mxGraph.prototype.findTreeRoots=function(e,t,n){t=null!=t&&t,n=null!=n&&n;var a=[];if(null!=e){for(var i=this.getModel(),o=i.getChildCount(e),s=null,r=0,l=0;l<o;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,t?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(n&&0==m&&0<u||!n&&0==u&&0<m)&&a.push(d),(c=n?u-m:m-u)>r&&(r=c,s=d)}}0==a.length&&null!=s&&a.push(s)}return a},mxGraph.prototype.traverse=function(e,t,n,a,i){if(null!=n&&null!=e){t=null==t||t,i=i||[];var o=mxCellPath.create(e);if(null==i[o]&&(i[o]=e,null==(a=n(e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(o=0;o<a;o++){var s=this.model.getEdgeAt(e,o),r=this.model.getTerminal(s,!0)==e;t&&!r||(r=this.model.getTerminal(s,!r),this.traverse(r,t,n,s,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,t){var n=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(n,t),n},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,t,n){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),o=this.model.getChildCount(i);null==a&&0<o?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!t||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&n?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<o&&(t=i.getIndex(a),e?(t++,e=this.model.getChildAt(i,t%o)):(t--,e=this.model.getChildAt(i,0>t?o-1:t)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(e,t,n){n=n||this.getDefaultParent();var a=mxUtils.bind(this,function(n){return null!=this.view.getState(n)&&0==this.model.getChildCount(n)&&(this.model.isVertex(n)&&e||this.model.isEdge(n)&&t)});n=this.model.filterDescendants(a,n),this.setSelectionCells(n)},mxGraph.prototype.selectCellForEvent=function(e,t){var n=this.isCellSelected(e);this.isToggleEvent(t)?n?this.removeSelectionCell(e):this.addSelectionCell(e):(!n||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,t){this.isToggleEvent(t)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var t=null;return null!=e&&(this.model.isEdge(e.cell)?(t=this.view.getEdgeStyle(e),t=this.isLoop(e)||t==mxEdgeStyle.ElbowConnector||t==mxEdgeStyle.SideToSide||t==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):t==mxEdgeStyle.SegmentConnector||t==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):t=new mxVertexHandler(e)),t},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var t=0;t<this.mouseListeners.length;t++)if(this.mouseListeners[t]==e){this.mouseListeners.splice(t,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var t=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=t.x-this.panDx,e.graphY=t.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,t,n){if(null==n&&(n=this),this.updateMouseEvent(t),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-t.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-t.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(t.getEvent(),t.getCell()),t.getEvent().cancelBubble=!0):(this.lastTouchX=t.getX(),this.lastTouchY=t.getY(),this.lastTouchTime=a)}if(a=2!=t.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-t.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-t.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=t.getX(),this.lastMouseY=t.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||t.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(t.getGraphX(),t.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(n=[n,t],t.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,n):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,n):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,n)}e==mxEvent.MOUSE_UP&&this.click(t)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var t=e.view.graph.getModel().isEdge(e.cell),n=e.view.scale,a=null,i=this.image.width,o=this.image.height;return t?(t=e.absolutePoints,1==t.length%2?a=t[Math.floor(t.length/2)]:(a=t.length/2,e=t[a-1],t=t[a],a=new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2))):(a=new mxPoint,a.x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*n),Math.round(a.y-(o*this.defaultOverlap-this.offset.y)*n),i*n,o*n)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var t=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&t.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,t){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var t=this.source.view.scale,n=new mxRectangle((n=this.source.getGraphBounds()).x/t+this.source.panDx,n.y/t+this.source.panDy,n.width/t,n.height/t),a=new mxRectangle(0,0,this.source.container.clientWidth/t,this.source.container.clientHeight/t);(o=n.clone()).add(a);var i=this.getSourceContainerSize(),a=Math.max(i.width/t,o.width),t=Math.max(i.height/t,o.height),o=Math.max(0,this.outline.container.clientWidth-this.border),i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(o=Math.min(o/a,i/t))){this.outline.getView().scale!=o&&(this.outline.getView().scale=o,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);var i=(t=this.source.view.translate).x+this.source.panDx,s=t.y+this.source.panDy;null!=(o=this.getOutlineOffset(o))&&(i+=o.x,s+=o.y),0>n.x&&(i-=n.x),0>n.y&&(s-=n.y),a.translate.x==i&&a.translate.y==s||(a.translate.x=i,a.translate.y=s,e=!0);var n=a.translate,i=(o=this.source.getView().scale)/a.scale,s=1/a.scale,r=this.source.container;this.bounds=new mxRectangle((n.x-t.x-this.source.panDx)/s,(n.y-t.y-this.source.panDy)/s,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/o,this.bounds.y+=this.source.container.scrollTop*a.scale/o,(n=this.selectionBorder.bounds).x==this.bounds.x&&n.y==this.bounds.y&&n.width==this.bounds.width&&n.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),n=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-n.width/2,this.bounds.y+this.bounds.height-n.height/2,n.width,n.height),n.x==a.x&&n.y==a.y&&n.width==a.width&&n.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,t){this.enabled&&this.showViewport&&(this.zoom=t.isSource(this.sizer),this.startX=t.getX(),this.startY=t.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),t.consume()},mxOutline.prototype.mouseMove=function(e,t){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var n=t.getX()-this.startX,a=t.getY()-this.startY,i=null;if(this.zoom)i=this.source.container,a=n/(i.clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+n),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var o=this.outline.getView().scale,i=new mxRectangle(this.bounds.x+n,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),n=n/o*this.source.getView().scale,a=a/o*this.source.getView().scale,this.source.panGraph(-n-this.dx0,-a-this.dy0)}n=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-n.width/2,i.y+i.height-n.height/2,n.width,n.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),t.consume()}},mxOutline.prototype.mouseUp=function(e,t){if(this.active){var n=t.getX()-this.startX,a=t.getY()-this.startY;if(0<Math.abs(n)||0<Math.abs(a)){if(this.zoom){var a=this.selectionBorder.bounds.width,i=this.source.getView().scale;this.source.zoomTo(i-n*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),n/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-n,i.y-a));this.update(),t.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,t,n,a,i,o){var s="";return(this.source&&this.checkTerminal(e,n,t)||!this.source&&this.checkTerminal(e,a,t))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||o>=this.max))&&(s+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,t,n,a)||(s+=this.typeError+"\n"))),0<s.length?s:null},mxMultiplicity.prototype.checkNeighbors=function(e,t,n,a){t=e.model.getValue(n),a=e.model.getValue(a),n=!this.validNeighborsAllowed;for(var i=this.validNeighbors,o=0;o<i.length;o++){if(this.source&&this.checkType(e,a,i[o])){n=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,t,i[o])){n=this.validNeighborsAllowed;break}}return n},mxMultiplicity.prototype.checkTerminal=function(e,t,n){return t=e.model.getValue(t),this.checkType(e,t,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,t,n,a,i){return null!=t&&(isNaN(t.nodeType)?t==n:mxUtils.isNode(t,n,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var t=this.graph.getModel();t.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((t=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var t=this.getGraph().getModel();if(this.isBubbling())for(var n=t.getParents(e);0<n.length;)e=e.concat(n),n=t.getParents(n);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,t){if(null!=e&&null!=t)for(var n=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var o=this.getLayout(a.getParent(e[i]));null!=o&&o.moveCell(e[i],n.x,n.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var t=[],n={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),o=0;o<i.length;o++)if(null!=i[o]){var s=mxCellPath.create(i[o]);null==n[s]&&(n[s]=i[o],t.push(i[o]))}}return t},mxLayoutManager.prototype.getCellsForChange=function(e){var t=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,t.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,t.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=null,a=0;a<e.length;a++)e[a]!=t.getRoot()&&e[a]!=n&&(n=e[a],this.executeLayout(this.getLayout(n),n));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{t.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,t){null!=e&&null!=t&&e.execute(t)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)if(!this.isCellIgnored(e[n])){this.cellResized(e[n]);break}}finally{t.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var t=this.getGraph(),n=t.getView(),a=t.getModel(),i=n.getState(e),o=n.getState(a.getParent(e));if(null!=i&&null!=o){var s=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=s&&null!=r){var l=n.translate,d=n.scale,n=i.x-o.origin.x-l.x*d,o=i.y-o.origin.y-l.y*d,l=i.x+i.width,c=i.y+i.height,m=i.width-r.width*d+n-r.x*d,u=i.height-r.height*d+o-r.y*d,p=1-r.width*d/i.width,i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<s.length;r++)s[r]!=e&&this.isCellShiftable(s[r])&&this.shiftCell(s[r],m,u,n,o,l,c,p,i,this.isExtendParents()&&t.isExtendParent(s[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,t,n,a,i,o,s,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel(),u=m.getGeometry(e);if(null!=u){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=o)(u=u.clone()).translate(-t,0);else{var p=Math.max(0,c.x-x0);(u=u.clone()).translate(-r*p,0)}if(this.isShiftDownwards())if(c.y>=s)(u=u.clone()).translate(0,-n);else{var g=Math.max(0,c.y-i);(u=u.clone()).translate(0,-l*g)}u!=m.getGeometry(e)&&(m.setGeometry(e,u),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var t=this.getGraph(),n=t.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return t.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),n,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var t=this.graph.view.getState(e);return e=null!=t?t.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)this.isSwimlaneIgnored(e[n])||this.swimlaneAdded(e[n])}finally{t.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var t=this.getGraph().getModel(),n=t.getParent(e),a=t.getChildCount(n),i=null,o=0;o<a;o++){var s=t.getChildAt(n,o);if(s!=e&&!this.isSwimlaneIgnored(s)&&null!=(i=t.getGeometry(s)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)if(!this.isSwimlaneIgnored(e[n])){var a=t.getGeometry(e[n]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),o=s=e[n];null!=o;){var s=o,o=t.getParent(o),r=this.graph.isSwimlane(o)?this.graph.getStartSize(o):new mxRectangle;i.width+=r.width,i.height+=r.height}this.resizeSwimlane(s,i.width,i.height)}}}finally{t.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,t,n){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e)&&null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=n||!i&&r.width!=t)&&(r=r.clone(),i?r.height=n:r.width=t,a.setGeometry(e,r))}var o=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;t-=o.width,n-=o.height;for(var s=a.getChildCount(e),r=0;r<s;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,t,n)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,t,n,a,i){a=null==a||a,i=null==i||i;var o=mxCellPath.create(e.cell),s=this.deltas[o];return null==s?(s=new mxPoint(t,n),this.deltas[o]=s,this.count++):a?(s.X+=t,s.Y+=n):(s.X=t,s.Y=n),i&&this.addEdges(e),s},mxCellStatePreview.prototype.show=function(e){var t,n=this.graph.getModel(),a=n.getRoot();for(t in this.deltas){var i=mxCellPath.resolve(a,t),o=this.graph.view.getState(i),s=this.deltas[t],i=this.graph.view.getState(n.getParent(i));this.translateState(i,o,s.x,s.y)}for(t in this.deltas)i=mxCellPath.resolve(a,t),o=this.graph.view.getState(i),s=this.deltas[t],i=this.graph.view.getState(n.getParent(i)),this.revalidateState(i,o,s.x,s.y,e)},mxCellStatePreview.prototype.translateState=function(e,t,n,a){if(null!=t){var i=this.graph.getModel();if(i.isVertex(t.cell)){t.invalid=!0,this.graph.view.validateBounds(e,t.cell),e=i.getGeometry(t.cell);var o=mxCellPath.create(t.cell);0==n&&0==a||null==e||e.relative&&null==this.deltas[o]||(t.x+=n,t.y+=a)}for(e=i.getChildCount(t.cell),o=0;o<e;o++)this.translateState(t,this.graph.view.getState(i.getChildAt(t.cell,o)),n,a)}},mxCellStatePreview.prototype.revalidateState=function(e,t,n,a,i){if(null!=t){t.invalid=!0,this.graph.view.validatePoints(e,t.cell);var o=mxCellPath.create(t.cell),s=this.graph.getModel(),r=this.graph.getCellGeometry(t.cell);for(0==n&&0==a||null==r||!r.relative||!s.isVertex(t.cell)||null!=e&&!s.isVertex(e.cell)&&null==this.deltas[o]||(t.x+=n,t.y+=a,this.graph.cellRenderer.redraw(t)),null!=i&&i(t),e=s.getChildCount(t.cell),o=0;o<e;o++)this.revalidateState(t,this.graph.view.getState(s.getChildAt(t.cell,o)),n,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var t=this.graph.getModel(),n=t.getEdgeCount(e.cell),a=0;a<n;a++){var i=this.graph.view.getState(t.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&null!=t.getState()){var n=this.getInitialCellForEvent(t);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(n),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(n,t.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(n);this.graph.isCellMovable(n)&&(!a.isEdge(n)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(n,!0)||null==a.getTerminal(n,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(t.getEvent())&&this.graph.isCellsCloneable())&&this.start(n,t.getX(),t.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=t.getSource().nodeName?t.consume():mxClient.IS_SF&&"SELECT"==t.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),t=this.graph.getModel(),n=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&t.isVertex(e)&&null!=t.getGeometry(e)&&!t.getGeometry(e).relative});return this.graph.view.getCellStates(t.filterDescendants(n,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var t=null;if(null!=e&&0<e.length)for(var n=this.graph.getModel(),a=0;a<e.length;a++)if(n.isVertex(e[a])||n.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var o=i;n.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(o=i.shape.boundingBox),null==t?t=new mxRectangle(o.x,o.y,o.width,o.height):t.add(o)}}return t},mxGraphHandler.prototype.createPreviewShape=function(e){return e=new mxRectangleShape(e,null,this.previewColor),e.isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,t,n){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,t,n),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var t=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/t)*t,e.y=this.graph.snap(e.y/t)*t,e},mxGraphHandler.prototype.mouseMove=function(e,t){var n=this.graph;if(!t.isConsumed()&&n.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(o=mxUtils.convertPoint(n.container,t.getX(),t.getY())).x-this.first.x,i=o.y-this.first.y,o=n.tolerance;if(null!=this.shape||Math.abs(a)>o||Math.abs(i)>o){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var s=n.isGridEnabledEvent(t.getEvent()),o=!0;if(null!=this.guide&&this.useGuidesForEvent(t))i=this.guide.move(this.bounds,new mxPoint(a,i),s),o=!1,a=i.x,i=i.y;else if(s)var r=n.getView().translate,l=n.getView().scale,s=this.bounds.x-(n.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(n.snap(this.bounds.y/l-r.y)+r.y)*l,i=this.snap(new mxPoint(a,i)),a=i.x-s,i=i.y-r;for(null!=this.guide&&o&&this.guide.hide(),n.isConstrainedEvent(t.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),o=null,i=t.getCell(),n.isDropEnabled()&&this.highlightEnabled&&(o=n.getDropTarget(this.cells,t.getEvent(),i)),s=o,r=n.getModel();null!=s&&s!=this.cells[0];)s=r.getParent(s);var l=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),d=!1;null==(a=n.getView().getState(o))||null!=s||r.getParent(this.cell)==o&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&n.getModel().isVertex(i)&&n.isCellConnectable(i)&&null!=(a=n.getView().getState(i))&&(n=null==n.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(n),d=!0)):(this.target!=o&&(this.target=o,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}t.consume(),mxEvent.consume(t.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||t.isConsumed()||null==t.getState()||n.isMouseDown||(null==(a=n.getCursorForCell(t.getCell()))&&n.isEnabled()&&n.isCellMovable(t.getCell())&&(a=n.getModel().isEdge(t.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),t.getState().setCursor(a),t.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()){var n=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=n.getView().scale,i=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),o=this.currentDx/a,a=this.currentDy/a,s=t.getCell();this.connectOnDrop&&null==this.target&&null!=s&&n.getModel().isVertex(s)&&n.isCellConnectable(s)&&n.isEdgeValid(null,this.cell,s)?n.connectionHandler.connect(this.cell,s,t.getEvent()):(s=this.target,n.isSplitEnabled()&&n.isSplitTarget(s,this.cells,t.getEvent())?n.splitEdge(s,this.cells,null,o,a):this.moveCells(this.cells,o,a,i,this.target,t.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(t)}this.cellWasClicked&&t.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());n=mxUtils.getRotatedPoint(n,t,a,i)}return null!=e&&!mxUtils.contains(e,n.x,n.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,t,n,a,i,o){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,o)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,t-this.graph.panDx/this.graph.view.scale,n-this.graph.panDy/this.graph.view.scale,a,i,o),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var t=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(t)||mxEvent.isControlDown(t)&&mxEvent.isShiftDown(t)||this.usePopupTrigger&&mxEvent.isPopupTrigger(t)},mxPanningHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var n=mxUtils.convertPoint(this.graph.container,t.getX(),t.getY());this.triggerX=n.x,this.triggerY=n.y,this.popupTrigger=this.isPopupTrigger(t),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(t),this.startX=t.getX(),this.startY=t.getY(),this.panningTrigger&&this.consumePanningTrigger(t)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,t){var n=t.getX()-this.startX,a=t.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(n=this.graph.snap(n),a=this.graph.snap(a)),this.graph.panGraph(n+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",t)),t.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(n)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",t))}},mxPanningHandler.prototype.mouseUp=function(e,t){var n=Math.abs(t.getX()-this.startX),a=Math.abs(t.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){n=t.getX()-this.startX,a=t.getY()-this.startY,this.useGrid&&(n=this.graph.snap(n),a=this.graph.snap(a));var i=this.graph.getView().scale,o=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(o.x+n/i,o.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",t)),t.consume()}else this.popupTrigger&&n<this.graph.tolerance&&a<this.graph.tolerance&&(n=this.getCellForPopupEvent(t),this.graph.isEnabled()&&this.selectOnPopup&&null!=n&&!this.graph.isCellSelected(n)?this.graph.setSelectionCell(n):this.clearSelectionOnBackground&&null==n&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(t.getX()+a.x,t.getY()+a.y),this.popup(a.x+1,a.y+1,n,t.getEvent()),t.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,t){this.graph.getView().setTranslate(e,t)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){this.validState=null,null!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var t=null;if(this.isEnabled()){var n=null!=(t=this.getState(e))&&this.isValidState(t);e=this.getMarkerColor(e.getEvent(),t,n),this.validState=n?t:null,t==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=t&&null!=this.currentColor?(this.markedState=t,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return t},mxCellMarker.prototype.markCell=function(e,t){var n=this.graph.getView().getState(e);null!=n&&(this.currentColor=null!=t?t:this.validColor,this.markedState=n,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,t,n){return n?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var t=this.graph.getView();return cell=this.getCell(e),t=this.getStateToMark(t.getState(cell)),null!=t&&this.intersects(t,e)?t:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,t){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,t.getGraphX(),t.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,t){t.reset.apply(t)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var t=this.graph.getSelectionCells(),n=0;n<t.length;n++){var a=this.graph.view.getState(t[n]);if(null!=a){var i=e.remove(t[n]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(t[n],i)}}e.visit(mxUtils.bind(this,function(e,t){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",t.state)),t.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseDown.apply(t,n)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseMove.apply(t,n)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseUp.apply(t,n)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var t=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,t)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph);return e.hotspotEnabled=!0,e.getCell=mxUtils.bind(this,function(t,n){return n=mxCellMarker.prototype.getCell.apply(e,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),e.isValidState=mxUtils.bind(this,function(t){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(e,arguments)}),e.getMarkerColor=mxUtils.bind(this,function(t,n,a){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(e,arguments):null}),e.intersects=mxUtils.bind(this,function(t,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(e,arguments)}),e},mxConnectionHandler.prototype.start=function(e,t,n,a){this.previous=e,this.first=new mxPoint(t,n),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,t){return this.isValidTarget(t)?this.graph.getEdgeValidationError(null,e,t):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null!=(i=this.getConnectImage(e))&&null!=e){this.iconState=e;var t=[],n=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);n.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(n.dialect=mxConstants.DIALECT_STRICTHTML,n.init(this.graph.container)):(n.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,n.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=n.node.previousSibling&&n.node.parentNode.insertBefore(n.node,n.node.parentNode.firstChild)),n.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=n,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(n.node,this.graph,a,i),t.push(n),this.redrawIcons(t,this.iconState),t}return null},mxConnectionHandler.prototype.redrawIcons=function(e,t){if(null!=e&&null!=e[0]&&null!=t){var n=this.getIconPosition(e[0],t);e[0].bounds.x=n.x,e[0].bounds.y=n.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,t){var n=this.graph.getView().scale,a=t.getCenterX(),i=t.getCenterY();if(this.graph.isSwimlane(t.cell)){var a=0!=(o=this.graph.getStartSize(t.cell)).width?t.x+o.width*n/2:a,i=0!=o.height?t.y+o.height*n/2:i;if(0!=(o=mxUtils.toRadians(mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0)))var n=Math.cos(o),o=Math.sin(o),s=new mxPoint(t.getCenterX(),t.getCenterY()),i=mxUtils.getRotatedPoint(new mxPoint(a,i),n,o,s),a=i.x,i=i.y}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var t=0;t<e.length;t++)e[t].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,t){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!t.isConsumed()&&!this.isConnecting()&&this.isStartEvent(t)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(t.getGraphX(),t.getGraphY()),this.edgeState=this.createEdgeState(t),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var n=this.graph.getPointForEvent(t.getEvent());this.edgeState.cell.geometry.setTerminalPoint(n,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),t.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=t.getX(),this.initialTouchY=t.getY();var a=this.graph.view.getState(this.marker.getCell(t));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(t,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,t){null!=t&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=t,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=t,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var t=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=t},mxConnectionHandler.prototype.convertWaypoint=function(e){var t=this.graph.getView().getScale(),n=this.graph.getView().getTranslate();e.x=e.x/t-n.x,e.y=e.y/t-n.y},mxConnectionHandler.prototype.mouseMove=function(e,t){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-t.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-t.getY())<this.tapAndHoldTolerance),t.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(t),null!=this.first){var n=this.graph.getView().scale,a=null,i=n=new mxPoint(this.graph.snap(t.getGraphX()/n)*n,this.graph.snap(t.getGraphY()/n)*n);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var o=this.first;if(null!=this.selectedIcon){var s=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(s=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=s.x,this.selectedIcon.bounds.y=s.y):(s=new mxRectangle(t.getGraphX()+this.connectIconOffset.x,t.getGraphY()+this.connectIconOffset.y,s,r),this.selectedIcon.bounds=s),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),o=null,null!=this.waypoints)for(o=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),o[i]=a;this.graph.view.updatePoints(this.edgeState,o,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],o=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&null!=(s=this.getTargetPerimeterPoint(this.currentState,t))&&(i=s),null==this.sourceConstraint&&null!=this.previous&&null!=(s=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,t))&&(o=s);if(null==this.currentState&&this.movePreviewAway){if(s=o,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(s=a),a=i.x-s.x,s=i.y-s.y,0==(r=Math.sqrt(a*a+s*s)))return;i.x-=4*a/r,i.y-=4*s/r}null==this.shape&&(a=Math.abs(n.x-this.first.x),s=Math.abs(n.y-this.first.y),a>this.graph.tolerance||s>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(t)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(n=[o],null!=this.waypoints&&(n=n.concat(this.waypoints)),n.push(i),this.shape.points=n),this.drawPreview()),mxEvent.consume(t.getEvent()),t.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),this.icons=null,null!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),t.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&t.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(n=!1,o=t.getSource(),i=0;i<this.icons.length&&!n;i++)n=o==this.icons[i].node||o.parentNode==this.icons[i].node;n||this.updateIcons(this.currentState,this.icons,t)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,t){var n=null,a=e.view,i=a.getPerimeterFunction(e);if(null!=i){var o=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(a=i(a.getPerimeterBounds(e),this.edgeState,o,!1))&&(n=a)}else n=new mxPoint(e.getCenterX(),e.getCenterY());return n},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,t,n){n=null;var a=e.view,i=a.getPerimeterFunction(e),o=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var s=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-s*(Math.PI/180);0!=s&&(t=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),Math.cos(r),Math.sin(r),o)),null!=(e=i(a.getPerimeterBounds(e),e,t,!1))&&(0!=s&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),o)),n=e)}else n=o;return n},mxConnectionHandler.prototype.updateIcons=function(e,t,n){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var t=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),n=Math.abs(t.x-this.first.x),t=Math.abs(t.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(n>this.graph.tolerance||t>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),n=this.graph.view.scale,t=new mxPoint(this.graph.snap(e.getGraphX()/n)*n,this.graph.snap(e.getGraphY()/n)*n),this.waypoints.push(t))},mxConnectionHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(t))return this.addWaypointForEvent(t),void t.consume();if(null==this.error){var n=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(n,a,t.getEvent(),t.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),t.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,t,n,a){if(null!=t||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),o=null;i.beginUpdate();try{if(null!=e&&null==t&&this.isCreateTarget()&&null!=(t=this.createTargetVertex(n,e))){if(null!=(a=this.graph.getDropTarget([t],n,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var s=this.graph.getView().getState(a);if(null!=s){var r=i.getGeometry(t);r.x-=s.origin.x,r.y-=s.origin.y}}this.graph.addCell(t,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=t&&i.getParent(e)==i.getParent(t)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=t.geometry&&t.geometry.relative&&(l=i.getParent(l))),r=s=null,null!=this.edgeState&&(s=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(o=this.insertEdge(l,null,s,e,t,r))){this.graph.setConnectionConstraint(o,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(o,t,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(o,this.edgeState.cell.geometry);var d=i.getGeometry(o);if(null==d&&(d=new mxGeometry,d.relative=!0,i.setGeometry(o,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==t&&(u=this.graph.getPointForEvent(n,!1),u.x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",o,"event",n,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(o,t)}},mxConnectionHandler.prototype.selectCells=function(e,t){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,t,n,a,i,o){return null==this.factoryMethod?this.graph.insertEdge(e,t,n,a,i,o):(t=this.createEdge(n,a,i,o),t=this.graph.addEdge(t,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,t){for(var n=this.graph.getCellGeometry(t);null!=n&&n.relative;)t=this.graph.getModel().getParent(t),n=this.graph.getCellGeometry(t);var a=this.graph.cloneCells([t])[0];if(null!=(n=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(n.x=this.graph.snap(i.x-n.width/2)-this.graph.panDx/this.graph.view.scale,n.y=this.graph.snap(i.y-n.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var o=this.graph.view.getState(t);if(null!=o){var s=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=s?n.x=o.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=s&&(n.y=o.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,t,n,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(t,n,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),e=new mxGeometry,e.relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,t,n){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,t){return!1},mxConstraintHandler.prototype.update=function(e,t){if(this.isEnabled()&&!this.isEventIgnored(e)){var n=this.getTolerance(),a=new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),t):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),s=this.getImageForConstraint(e.getState(),this.constraints[i],o),r=s.src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(n)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(n=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(n.width-=1,n.height-=1),null==this.focusHighlight?(n=new mxRectangleShape(n,null,this.highlightColor,3),n.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,n.init(this.graph.getView().getOverlayPane()),this.focusHighlight=n,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(n.node,this.graph,r)):(this.focusHighlight.bounds=n,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(t.getEvent())||null==t.getState())){var n=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=n.x,a.y-=n.y,this.start(t.getX()+a.x,t.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,o=function(e){e=new mxMouseEvent(e);var t=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=t.x,e.graphY=t.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,o(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,o(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}t.consume(!1)}},mxRubberband.prototype.start=function(e,t){this.first=new mxPoint(e,t)},mxRubberband.prototype.mouseMove=function(e,t){if(!t.isConsumed()&&null!=this.first){var n=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);n.x-=a.x,n.y-=a.y;var a=t.getX()+n.x,n=t.getY()+n.y,i=this.first.x-a,o=this.first.y-n,s=this.graph.tolerance;(null!=this.div||Math.abs(i)>s||Math.abs(o)>s)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,n),t.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,t){var n=null!=this.div;this.reset(),n&&(n=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(n,t.getEvent()),t.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,t){this.currentX=e,this.currentY=t,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,t=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,t),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,t)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var t=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",t++)),this.sizers.push(this.createSizer("n-resize",t++)),this.sizers.push(this.createSizer("ne-resize",t++)),this.sizers.push(this.createSizer("w-resize",t++)),this.sizers.push(this.createSizer("e-resize",t++)),this.sizers.push(this.createSizer("sw-resize",t++)),this.sizers.push(this.createSizer("s-resize",t++))),this.sizers.push(this.createSizer("se-resize",t++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&2>this.state.width&&2>this.state.height&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return e=new mxRectangleShape(e,null,this.getSelectionColor()),e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,t,n,a){return n=n||mxConstants.HANDLE_SIZE,n=new mxRectangle(0,0,n,n),a=this.createSizerShape(n,t,a),a.isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(t)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,t,n){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):t==mxEvent.ROTATION_HANDLE?new mxEllipse(e,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,t,n){null!=e&&(e.bounds.x=Math.round(t-e.bounds.width/2),e.bounds.y=Math.round(n-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var t=this.tolerance,t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,n=0;n<this.sizers.length;n++)if(e.isSource(this.sizers[n])||null!=t&&mxUtils.intersects(this.sizers[n].bounds,t))return n;return null},mxVertexHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&(0<this.tolerance||t.getState()==this.state)){var n=this.getHandleForEvent(t);null!=n&&(this.start(t.getX(),t.getY(),n),t.consume())}},mxVertexHandler.prototype.start=function(e,t,n){e=mxUtils.convertPoint(this.graph.container,e,t),this.startX=e.x,this.startY=e.y,this.index=n,this.selectionBorder.node.style.display=n==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,t){if(t.isConsumed()||null==this.index)null!=this.getHandleForEvent(t)&&t.consume(!1);else{var n=new mxPoint(t.getGraphX(),t.getGraphY()),a=this.graph.isGridEnabledEvent(t.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(n.x=this.graph.snap(n.x/i)*i,n.y=this.graph.snap(n.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],n.x,n.y);else if(this.index==mxEvent.ROTATION_HANDLE){var o=this.state.x+this.state.width/2-n.x,s=this.state.y+this.state.height/2-n.y;this.currentAlpha=0!=o?180*Math.atan(s/o)/Math.PI+90:0>s?180:0,0<o&&(this.currentAlpha-=180),this.rotationRaster&&(o=n.x-this.state.getCenterX(),s=n.y-this.state.getCenterY(),o=Math.abs(Math.sqrt(o*o+s*s)-this.state.height/2-20),o=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(o))))),this.currentAlpha=Math.round(this.currentAlpha/o)*o),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),o=n.x-this.startX,s=n.y-this.startY,n=this.graph.view.translate,m=d*o+l*s,o=l*o-d*s;this.bounds=this.union(this.selectionBounds,o,m,this.index,a,i,n),l=Math.cos(r),c=(d=Math.sin(r))*(o=(s=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(s=s.y-c.y)-s,this.bounds.x+=l*o-d*s-o,this.bounds.y+=c,this.drawPreview()}t.consume()}},mxVertexHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()&&null!=this.index&&null!=this.state){s=new mxPoint(t.getGraphX(),t.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var n=this.graph.isGridEnabledEvent(t.getEvent()),a=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),i=Math.cos(-a),o=Math.sin(-a),s=o*(r=s.x-this.startX)+i*(l=s.y-this.startY),r=i*r-o*l,l=s,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,n)}}finally{this.graph.getModel().endUpdate()}this.reset(),t.consume()}},mxVertexHandler.prototype.rotateCell=function(e,t){var n=this.graph.getModel();if(n.isVertex(e)){var a=e==this.state?this.state:this.graph.view.getState(e);if(null!=a&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(a.style[mxConstants.STYLE_ROTATION]||0)+t,[e]),this.state.cell!=e&&null!=(a=this.graph.getCellGeometry(e))&&!a.relative)if(0!=t){var i=this.graph.getModel().getParent(e),o=this.graph.getCellGeometry(i);if(!a.relative&&null!=o){var s=mxUtils.toRadians(t),i=Math.cos(s),s=Math.sin(s),r=new mxPoint(a.getCenterX(),a.getCenterY()),o=new mxPoint(o.width/2,o.height/2),i=mxUtils.getRotatedPoint(r,i,s,o);(a=a.clone()).x=i.x-a.width/2,a.y=i.y-a.height/2,n.setGeometry(e,a)}}else a=a.clone(),a.x+=dx,a.y+=dy,n.setGeometry(e,a);for(a=n.getChildCount(e),i=0;i<a;i++)this.rotateCell(n.getChildAt(e,i),t)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,t,n,a,i){var o=this.graph.model.getGeometry(e);if(null!=o)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,t=(this.labelShape.bounds.getCenterX()-this.startX)/a,n=(this.labelShape.bounds.getCenterY()-this.startY)/a,o=o.clone(),null==o.offset?o.offset=new mxPoint(t,n):(o.offset.x+=t,o.offset.y+=n),this.graph.model.setGeometry(e,o);else{if(a=this.union(o,t,n,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){t=a.getCenterX()-o.getCenterX(),n=a.getCenterY()-o.getCenterY(),i=Math.cos(r);var s=Math.sin(r),r=i*t-s*n-t;t=s*t+i*n-n,n=a.x-o.x;var l=a.y-o.y,d=i*n-s*l;i=s*n+i*l,a.x+=r,a.y+=t,this.graph.isCellCollapsed(e)||0==r&&0==t||(n=o.x-a.x+d,l=o.y-a.y+i,this.moveChildren(e,n,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,t,n){for(var a=this.graph.getModel(),i=a.getChildCount(e),o=0;o<i;o++){var s=a.getChildAt(e,o);if(a.isVertex(s)){var r=this.graph.getCellGeometry(s);null!=r&&!r.relative&&(r=r.clone(),r.x+=t,r.y+=n,a.setGeometry(s,r))}}},mxVertexHandler.prototype.union=function(e,t,n,a,i,o,s){if(this.singleSizer){s=e.x+e.width+t;var r=e.y+e.height+n;return i&&(s=this.graph.snap(s/o)*o,r=this.graph.snap(r/o)*o),(o=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(s,r,0,0)),o}var l=(r=e.x-s.x*o)+e.width,d=e.y-s.y*o;return e=d+e.height,4<a?(e+=n,i&&(e=this.graph.snap(e/o)*o)):3>a&&(d+=n,i&&(d=this.graph.snap(d/o)*o)),0==a||3==a||5==a?(r+=t,i&&(r=this.graph.snap(r/o)*o)):2!=a&&4!=a&&7!=a||(l+=t,i&&(l=this.graph.snap(l/o)*o)),i=l-r,e-=d,0>i&&(r+=i,i=Math.abs(i)),0>e&&(d+=e,e=Math.abs(e)),new mxRectangle(r+s.x*o,d+s.y*o,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var t=e.x+e.width,n=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],t,n);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var o=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(o),o=Math.sin(o),r=new mxPoint(e.getCenterX(),e.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),s,o,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=t,l.y=e.y,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=t,l.y=i,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=t,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(o=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(o),o=Math.sin(o),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),s,o,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||0>=mxGraphHandler.prototype.maxCells)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return e=new mxPolyline(e,this.getSelectionColor()),e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),t=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!t.isConnectableCell(n))return null;var a=t.graph.getModel();return(n==t.state.cell||null!=n&&!t.graph.connectableEdges&&a.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=t.graph.getModel(),n=null!=(n=t.graph.view.getTerminalPort(e,t.graph.view.getState(n.getTerminal(t.state.cell,!t.isSource)),!t.isSource))?n.cell:null;return t.error=t.validateConnection(t.isSource?e.cell:n,t.isSource?n:e.cell),null==t.error},e},mxEdgeHandler.prototype.validateConnection=function(e,t){return this.graph.getEdgeValidationError(this.state.cell,e,t)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,t=[],n=0;n<this.abspoints.length;n++)if(this.isHandleVisible(n)){var a=n==this.abspoints.length-1;if((a=0==n||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(n);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(n))if(mxClient.IS_TOUCH){var o=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,o)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);t.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return t},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var t=this.tolerance,t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,n=0;n<this.bends.length;n++)if((e.isSource(this.bends[n])||null!=t&&mxUtils.intersects(this.bends[n].bounds,t))&&"hidden"!=this.bends[n].node.style.visibility)return n;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,t){var n=null;null!=(n=this.getHandleForEvent(t))&&!t.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(t.getEvent())?this.removePoint(this.state,n):(n!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(t.getCell()))&&this.start(t.getX(),t.getY(),n),t.consume())},mxEdgeHandler.prototype.start=function(e,t,n){this.startX=e,this.startY=t,this.isSource=null!=this.bends&&0==n,this.isTarget=null!=this.bends&&n==this.bends.length-1,this.isLabel=n==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(t=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=t&&this.graph.isCellDisconnectable(e,t,this.isSource))&&(this.index=n)):this.index=n},mxEdgeHandler.prototype.clonePreviewState=function(e,t){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),n=this.getSnapToTerminalTolerance(),a=this.graph.getView(),i=!1,o=!1;if(this.snapToTerminals&&0<n){var s=function(e){if(null!=e){var a=e.x;Math.abs(t.x-a)<n&&(t.x=a,i=!0),e=e.y,Math.abs(t.y-e)<n&&(t.y=e,o=!0)}},r=function(e){null!=e&&s.call(this,new mxPoint(a.getRoutingCenterX(e),a.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&s.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=a.scale,r=a.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),o||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var t=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?t=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(t=this.constraintHandler.currentFocus),t},mxEdgeHandler.prototype.getPreviewPoints=function(e){var t=null!=(t=this.graph.getCellGeometry(this.state.cell)).points?t.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(t=null):(this.convertPoint(e,!1),null==t?t=[e]:t[this.index-1]=e),t},mxEdgeHandler.prototype.updatePreviewState=function(e,t,n){var a=this.isSource?n:this.state.getVisibleTerminalState(!0),i=this.isTarget?n:this.state.getVisibleTerminalState(!1),o=this.graph.getConnectionConstraint(e,a,!0),s=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?o=r:this.isTarget&&(s=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,o),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,s),(this.isSource||this.isTarget)&&null==n&&(e.setAbsoluteTerminalPoint(t,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,t){if(null!=this.index&&null!=this.marker){var n=this.getPointForEvent(t);if(this.isLabel)this.label.x=n.x,this.label.y=n.y;else{this.points=this.getPreviewPoints(n);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(t):null,i=this.clonePreviewState(n,null!=a?a.cell:null);this.updatePreviewState(i,n,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(t.getEvent()),t.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(t)&&t.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,t){if(null!=this.index&&null!=this.marker){var n=this.state.cell;if(t.getX()!=this.startX||t.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)n=this.connect(n,a,this.isSource,this.graph.isCloneEvent(t.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),t);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(n));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(n,a,this.isSource)}}else this.active?this.changePoints(n,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),n!=this.state.cell&&this.graph.setSelectionCell(n)),t.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,t){var n=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return t&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/n-a.x),e.y=Math.round(e.y/n-a.y),null!=(n=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=n.origin.x,e.y-=n.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,t,n){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),o=this.graph.getView().getRelativePoint(e,t,n);i.x=o.x,i.y=o.y;var s=this.graph.getView().scale;i.offset=new mxPoint(0,0),o=this.graph.view.getPoint(e,i),i.offset=new mxPoint((t-o.x)/s,(n-o.y)/s),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,t,n,a,i){var o=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var s=e.clone();i.add(o,s,i.getChildCount(o));var r=i.getTerminal(e,!n);this.graph.connectCell(s,r,!n),e=s}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,t,n,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,t,n){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(t,n),a.setGeometry(e,i),this.graph.connectCell(e,null,n,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,t){var n=this.graph.getModel(),a=n.getGeometry(e);null!=a&&(a=a.clone(),a.points=t,n.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,t){var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a=this.graph.isGridEnabledEvent(t);this.convertPoint(n,a),this.addPointAt(e,n.x,n.y),mxEvent.consume(t)},mxEdgeHandler.prototype.addPointAt=function(e,t,n){var a=this.graph.getCellGeometry(e.cell);if(t=new mxPoint(t,n),null!=a){a=a.clone(),n=this.graph.view.translate;var i=this.graph.view.scale;n=mxUtils.findNearestSegment(e,(t.x+n.x)*i,(t.y+n.y)*i),null==a.points?a.points=[t]:a.points.splice(n,0,t),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,t){if(0<t&&t<this.abspoints.length-1){var n=this.graph.getCellGeometry(this.state.cell);null!=n&&null!=n.points&&((n=n.clone()).points.splice(t-1,1),this.graph.getModel().setGeometry(e.cell,n),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var t=this.state.cell,n=this.graph.getModel().getTerminal(t,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=n&&!this.graph.isCellDisconnectable(t,n,e)||null==n&&!this.graph.isTerminalPointMovable(t,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=n&&this.graph.isCellDisconnectable(t,n,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,t=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-t/2),Math.round(this.label.y-t/2),t,t),this.labelShape.redraw(),t=this.graph.getLabel(e),null!=t&&0<t.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var n=this.abspoints.length-1,e=this.abspoints[0],a=this.abspoints[0].y,t=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-t.width/2),Math.round(a-t.height/2),t.width,t.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();var a=this.abspoints[n],i=this.abspoints[n].x,n=this.abspoints[n].y,o=this.bends.length-1,t=this.bends[o].bounds;this.bends[o].bounds=new mxRectangle(Math.round(i-t.width/2),Math.round(n-t.height/2),t.width,t.height),this.bends[o].fill=this.getHandleFillColor(o),this.bends[o].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,t){var n=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=n){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,o=this.abspoints[a].y,s=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-s.width/2),Math.round(o-s.height/2),s.width,s.height),this.bends[a].redraw(),this.points[a-1]=n[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE,e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],t=this.createHandleShape(0);return this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),t=this.createHandleShape(2),this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var t=this.getCursorForBend();return e.node.style.cursor=t,t=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,t),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var t=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(t=this.doubleClickOrientationResource,t=mxResources.get(t)||t),t},mxElbowEdgeHandler.prototype.convertPoint=function(e,t){var n=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;t&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/n-a.x-i.x),e.y=Math.round(e.y/n-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,t){var n=null==(n=null!=(n=this.graph.getModel().getGeometry(this.state.cell).points)?n[0]:null)?new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2):new mxPoint(this.graph.getView().scale*(n.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(n.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var o=new mxRectangle(Math.round(n.x-a/2),Math.round(n.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(o,this.labelShape.bounds)&&(a+=3,i+=3,o=new mxRectangle(Math.round(n.x-a/2),Math.round(n.y-i/2),a,i)),this.bends[1].bounds=o,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var t=this.state.absolutePoints,n=t[0].clone();this.convertPoint(n,!1);for(var a=[],i=1;i<t.length;i++){var o=t[i].clone();this.convertPoint(o,!1),i==this.index&&(n.x==o.x?(n.x=e.x,o.x=e.x):(n.y=e.y,o.y=e.y)),i<t.length-1&&a.push(o),n=o}if(1==a.length){if(n=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(o=this.state.getVisibleTerminalState(!1))&null!=i){var s=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(o,a[0].x+s,a[0].y+r)?t[1].y==t[2].y?a[0].y=n.getRoutingCenterY(i)-r:a[0].x=n.getRoutingCenterX(i)-s:mxUtils.contains(i,a[0].x+s,a[0].y+r)&&(t[1].y==t[0].y?a[0].y=n.getRoutingCenterY(o)-r:a[0].x=n.getRoutingCenterX(o)-s)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],t=this.createHandleShape(0);this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none");var n=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<n.length-1;a++)t=this.createVirtualBend(),e.push(t),t.node.style.cursor=0==n[a].x-n[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none")}return t=this.createHandleShape(n.length),this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,t){if(this.graph.isCellBendable(this.state.cell)){var n=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],t=a[i+1];var o=new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(o.x-n/2),Math.round(o.y-n/2),n,n),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,t){t=[];var n=this.abspoints;if(1<n.length)for(var a=n[0],i=n[1],o=2;o<n.length;o++){var s=n[o];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(s.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(s.y)||(a=i,i=i.clone(),this.convertPoint(i,!1),t.push(i)),i=s}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,t){this.normalKeys[e]=t},mxKeyHandler.prototype.bindShiftKey=function(e,t){this.shiftKeys[e]=t},mxKeyHandler.prototype.bindControlKey=function(e,t){this.controlKeys[e]=t},mxKeyHandler.prototype.bindControlShiftKey=function(e,t){this.controlShiftKeys[e]=t},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var t=this.getFunction(e);null!=t&&(t(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,t){this.reset(t,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,t){t.getX()==this.lastX&&t.getY()==this.lastY||(this.reset(t,!0),(this.isHideOnHover()||t.getState()!=this.state||t.getSource()!=this.node&&(!this.stateSource||null!=t.getState()&&this.stateSource==(t.isSource(t.getState().shape)||!t.isSource(t.getState().text))))&&this.hideTooltip()),this.lastX=t.getX(),this.lastY=t.getY()},mxTooltipHandler.prototype.mouseUp=function(e,t){this.reset(t,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,t){if(this.resetTimer(),t&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var n=e.getState(),a=e.getSource(),i=e.getX(),o=e.getY(),s=e.isSource(n.shape)||e.isSource(n.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(n,a,i,o);this.show(e,i,o),this.state=n,this.node=a,this.stateSource=s}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,t,n){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=t+a.x+"px",this.div.style.top=n+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,t){},mxCellTracker.prototype.mouseMove=function(e,t){this.isEnabled()&&this.process(t)},mxCellTracker.prototype.mouseUp=function(e,t){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,t,n){var a=mxUtils.bind(this,function(){this.editor.execute(t)});n?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,t,n,a){if(null!=this.config){var i=this.createConditions(e,n,a);this.addItems(e,t,n,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,t,n,a,i,o,s){for(var r=!1;null!=o;){if("add"==o.nodeName){if(null==(l=o.getAttribute("if"))||i[l]){var l=o.getAttribute("as"),l=mxResources.get(l)||l,d=mxUtils.eval(mxUtils.getTextContent(o)),c=o.getAttribute("action"),m=o.getAttribute("icon"),u=o.getAttribute("iconCls");r&&(t.addSeparator(s),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(t,e,l,m,d,c,n,s,u),this.addItems(e,t,n,a,i,o.firstChild,l)}}else"separator"==o.nodeName&&(r=!0);o=o.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,t,n,a,i,o,s,r,l){return e.addItem(n,a,function(e){"function"==typeof i&&i.call(t,t,s,e),null!=o&&t.execute(o,s,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,t,n){var a=e.graph.getModel(),i=a.getChildCount(t),o=[];for(o.nocell=null==t,o.ncells=1<e.graph.getSelectionCount(),o.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),o.cell=null!=t,a=null!=t&&1==e.graph.getSelectionCount(),o.nonEmpty=a&&0<i,o.expandable=a&&e.graph.isCellFoldable(t,!1),o.collapsable=a&&e.graph.isCellFoldable(t,!0),o.validRoot=a&&e.graph.isValidRoot(t),o.emptyValidRoot=o.validRoot&&0==i,o.swimlane=a&&e.graph.isSwimlane(t),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var s=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof s&&(o[r]=s(e,t,n))}return o},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,t){var n=t.getProperty("function");this.editor.insertFunction=null!=n?mxUtils.bind(this,function(){n.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,t,n,a){var i=mxUtils.bind(this,function(){null!=n&&0<n.length&&this.editor.execute(n)});return this.toolbar.addItem(e,t,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,t,n){var a=mxUtils.bind(this,function(){this.editor.execute(n)});this.addOption(e,t,a)},mxDefaultToolbar.prototype.addOption=function(e,t,n){return this.toolbar.addOption(e,t,n)},mxDefaultToolbar.prototype.addMode=function(e,t,n,a,i){var o=mxUtils.bind(this,function(){this.editor.setMode(n),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,t,o,a)},mxDefaultToolbar.prototype.addPrototype=function(e,t,n,a,i,o){var s=function(){return"function"==typeof n?n():null!=n?n.clone():null},r=mxUtils.bind(this,function(e,t){"function"==typeof i?i(this.editor,s(),e,t):this.drop(s(),e,t),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,t,r,a,null,o),this.installDropHandler(e,function(e,t,n){r(t,n)}),e},mxDefaultToolbar.prototype.drop=function(e,t,n){var a=this.editor.graph,i=a.getModel();if(null!=n&&!i.isEdge(n)&&this.connectOnDrop&&a.isCellConnectable(n))this.connect(e,t,n);else{for(;null!=n&&!a.isValidDropTarget(n,[e],t);)n=i.getParent(n);this.insert(e,t,n)}},mxDefaultToolbar.prototype.insert=function(e,t,n){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(t),o=mxEvent.getClientY(t),i=mxUtils.convertPoint(a.container,i,o);return a.isSplitEnabled()&&a.isSplitTarget(n,[e],t)?a.splitEdge(n,[e],null,i.x,i.y):this.editor.addVertex(n,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,t,n){var a=(t=this.editor.graph).getModel();if(null!=n&&t.isCellConnectable(e)&&t.isEdgeValid(null,n,e)){var i=null;a.beginUpdate();try{var o=a.getGeometry(n),s=a.getGeometry(e).clone();s.x=o.x+(o.width-s.width)/2,s.y=o.y+(o.height-s.height)/2;var r=this.spacing*t.gridSize,l=20*a.getDirectedEdgeCount(n,!0);this.editor.horizontalFlow?s.x+=(s.width+o.width)/2+r+l:s.y+=(s.height+o.height)/2+r+l,e.setGeometry(s);var d=a.getParent(n);if(t.addCell(e,d),t.constrainChild(e),i=this.editor.createEdge(n,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}t.addEdge(i,d,n,e)}finally{a.endUpdate()}t.setSelectionCells([e,i]),t.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(e,t){var n=document.createElement("img");n.setAttribute("src",e.getAttribute("src"));var a=mxUtils.bind(this,function(i){n.style.width=2*e.offsetWidth+"px",n.style.height=2*e.offsetHeight+"px",mxUtils.makeDraggable(e,this.editor.graph,t,n),mxEvent.removeListener(n,"load",a)});mxClient.IS_IE?a():mxEvent.addListener(n,"load",a)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="&#xa;",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var t=e.getUrlImage();if(null==t||mxClient.IS_LOCAL)e.execute("show");else{var n=mxUtils.getViewXml(e.graph,1),n=mxUtils.getXml(n,"\n");mxUtils.submit(t,e.postParameterName+"="+encodeURIComponent(n),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,t){e.showProperties(t)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,t){e.graph.isEnabled()&&e.graph.isCellEditable(t)&&e.graph.startEditingAtCell(t)}),this.addAction("toBack",function(e,t){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,t){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,t){e.graph.enterGroup(t)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var t=e.graph.getChildVertices();e.graph.foldCells(!0,!1,t)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var t=e.graph.getChildVertices();e.graph.foldCells(!1,!1,t)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var t=100*e.graph.getView().scale,t=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,t))/100;isNaN(t)||e.graph.getView().setScale(t)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,t){this.actions[e]=t},mxEditor.prototype.execute=function(e,t,n){var a=this.actions[e];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(t){throw mxUtils.error("Cannot execute "+e+": "+t.message,280,!0),t}else mxUtils.error("Cannot find action "+e,280,!0)},mxEditor.prototype.addTemplate=function(e,t){this.templates[e]=t},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,t,n){return this.createPopupMenu(e,t,n)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,t){return this.createEdge(e,t)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return e=new mxSwimlaneManager(e,!1),e.isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(e){var t=new mxLayoutManager(e),n=this;return t.getLayout=function(t){var a=null,i=n.graph.getModel();return null!=i.getParent(t)&&(n.layoutSwimlanes&&e.isSwimlane(t)?(null==n.swimlaneLayout&&(n.swimlaneLayout=n.createSwimlaneLayout()),a=n.swimlaneLayout):n.layoutDiagram&&(e.isValidRoot(t)||null==i.getParent(i.getParent(t)))&&(null==n.diagramLayout&&(n.diagramLayout=n.createDiagramLayout()),a=n.diagramLayout)),a},t},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(e){e.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(t,n){var a=n.getProperty("cell");null!=a&&e.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,a),n.consume())}))},mxEditor.prototype.installUndoHandler=function(e){var t=mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");this.undoManager.undoableEditHappened(n)});e.getModel().addListener(mxEvent.UNDO,t),e.getView().addListener(mxEvent.UNDO,t),t=function(t,n){var a=n.getProperty("edit").changes;e.setSelectionCells(e.getSelectionCellsForChanges(a))},this.undoManager.addListener(mxEvent.UNDO,t),this.undoManager.addListener(mxEvent.REDO,t)},mxEditor.prototype.installDrillHandler=function(e){var t=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,t),e.getView().addListener(mxEvent.UP,t)},mxEditor.prototype.installChangeHandler=function(e){var t=mxUtils.bind(this,function(t,n){this.setModified(!0),1==this.validating&&e.validateGraph();for(var a=n.getProperty("edit").changes,i=0;i<a.length;i++){var o=a[i];if(o instanceof mxRootChange||o instanceof mxValueChange&&o.cell==this.graph.model.root||o instanceof mxCellAttributeChange&&o.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});e.getModel().addListener(mxEvent.CHANGE,t)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,t){this.isActive&&t.consume()},mouseUp:function(e,t){this.isActive&&(this.isActive=!1,t.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,t=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return t.isVertexIgnored=function(e){return!t.graph.isSwimlane(e)},t},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(e){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(t){e.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.treeLayout=function(e,t){null!=e&&new mxCompactTreeLayout(this.graph,t).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",t=this.graph,n=t.getCurrentRoot();null!=n&&null!=t.getModel().getParent(t.getModel().getParent(n));)t.isValidRoot(n)&&(e=" > "+t.convertValueToString(n)+e),n=t.getModel().getParent(n);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var t=mxUtils.load(e).getXml();this.readGraphModel(t.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,t){if(null!=(e=e||this.getUrlPost())&&0<e.length){var n=this.writeGraphModel(t);this.postDiagram(e,n),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(e,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(e,this.postParameterName+"="+t,mxUtils.bind(this,function(n){this.fireEvent(new mxEventObject(mxEvent.POST,"request",n,"url",e,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var t=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(t,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,t,n,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,t,n)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,t){null!=t.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,t){var n=this.graph.getStylesheet().styles[t];this.graph.getView().getStylesheet().putCellStyle(t,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,n),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot()),null!=e){this.graph.stopEditing(!0);var t=(n=mxUtils.getOffset(this.graph.container)).x+10,n=n.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(t+=a.x+Math.min(200,a.width),n+=a.y)}else t=this.properties.getX(),n=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,t,n,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(e){var t=this.graph.getModel(),n=t.getValue(e);if(mxUtils.isNode(n)){var a=new mxForm("properties");a.addText("ID",e.getId()).setAttribute("readonly","true");var i=null,o=null,s=null,r=null,l=null;t.isVertex(e)&&null!=(i=t.getGeometry(e))&&(o=a.addText("top",i.y),s=a.addText("left",i.x),r=a.addText("width",i.width),l=a.addText("height",i.height));for(var d=t.getStyle(e),c=a.addText("Style",d||""),m=n.attributes,u=[],n=0;n<m.length;n++)u[n]=a.addTextarea(m[n].nodeName,m[n].nodeValue,"label"==m[n].nodeName?4:2);return n=mxUtils.bind(this,function(){this.hideProperties(),t.beginUpdate();try{null!=i&&(i=i.clone(),i.x=parseFloat(s.value),i.y=parseFloat(o.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),t.setGeometry(e,i)),0<c.value.length?t.setStyle(e,c.value):t.setStyle(e,null);for(var n=0;n<m.length;n++){var a=new mxCellAttributeChange(e,m[n].nodeName,u[n].value);t.execute(a)}this.graph.isAutoSizeCell(e)&&this.graph.updateCellSize(e)}finally{t.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),a.addButtons(n,d),a.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var e=document.createElement("div");e.style.padding="4px",e.style.paddingLeft="20px";var t=document.body.clientWidth;(t=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,e,t-220,this.tasksTop,200)).setClosable(!0),t.destroyOnClose=!1;var n=mxUtils.bind(this,function(t){mxEvent.release(e),e.innerHTML="",this.createTasks(e)});this.graph.getModel().addListener(mxEvent.CHANGE,n),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,n),this.graph.addListener(mxEvent.ROOT,n),null!=this.tasksWindowImage&&t.setImage(this.tasksWindowImage),this.tasks=t,this.createTasks(e)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var t=document.createElement("iframe");t.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),t.setAttribute("height","100%"),t.setAttribute("width","100%"),t.setAttribute("frameBorder","0"),t.style.backgroundColor="white",e=document.body.clientWidth;var n=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,t,(e-this.helpWidth)/2,(n-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){t.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var t=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),n=new mxOutline(this.graph,e);t.setClosable(!0),t.setResizable(!0),t.destroyOnClose=!1,t.addListener(mxEvent.RESIZE_END,function(){n.update()}),this.outline=t,this.outline.outline=n}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,t,n){this.popupHandler.createMenu(this,e,t,n)},mxEditor.prototype.createEdge=function(e,t){var n=null;if(null!=this.defaultEdge)n=this.graph.getModel().cloneCell(this.defaultEdge);else{(n=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,n.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&n.setStyle(a),n},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var t=this.consumeCycleAttribute(e);null!=t&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+t)}},mxEditor.prototype.addVertex=function(e,t,n,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(n,a);var o=this.graph.getView().scale,s=i.getGeometry(t),r=i.getGeometry(e);if(this.graph.isSwimlane(t)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(n-=l.origin.x*o,a-=l.origin.y*o,this.graph.isConstrainedMoving){var r=s.width,d=s.height,c=l.x+l.width;n+r>c&&(n-=n+r-c),a+d>(c=l.y+l.height)&&(a-=a+d-c)}}else null!=r&&(n-=r.x*o,a-=r.y*o)}}(s=s.clone()).x=this.graph.snap(n/o-this.graph.getView().translate.x-this.graph.gridSize/2),s.y=this.graph.snap(a/o-this.graph.getView().translate.y-this.graph.gridSize/2),t.setGeometry(s),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(t),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",t,"parent",e)),i.beginUpdate();try{null!=(t=this.graph.addCell(t,e))&&(this.graph.constrainChild(t),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",t)))}finally{i.endUpdate()}return null!=t&&(this.graph.setSelectionCell(t),this.graph.scrollCellToVisible(t),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",t))),t},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var t=e.getName();mxCodecRegistry.codecs[t]=e;var n=mxUtils.getFunctionName(e.template.constructor);n!=t&&mxCodecRegistry.addAlias(n,t)}return e},addAlias:function(e,t){mxCodecRegistry.aliases[e]=t},getCodec:function(e){t=null;if(null!=e){var t=mxUtils.getFunctionName(e),n=mxCodecRegistry.aliases[t];if(null!=n&&(t=n),null==(t=mxCodecRegistry.codecs[t]))try{t=new mxObjectCodec(new e),mxCodecRegistry.register(t)}catch(e){}}return t}};mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,t){return this.objects[e]=t},mxCodec.prototype.getObject=function(e){var t=null;return null!=e&&null==(t=this.objects[e])&&null==(t=this.lookup(e))&&null!=(e=this.getElementById(e))&&(t=this.decode(e)),t},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,t){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=t?t:"id",e)},mxCodec.prototype.getId=function(e){var t=null;return null!=e&&null==(t=this.reference(e))&&e instanceof mxCell&&null==(t=e.getId())&&0==(t=mxCellPath.create(e)).length&&(t="root"),t},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var t=null;if(null!=e&&null!=e.constructor){var n=mxCodecRegistry.getCodec(e.constructor);null!=n?t=n.encode(this,e):mxUtils.isNode(e)?t=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return t},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0)).removeAttribute("as")}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,t,n){if(t.appendChild(this.encode(e)),null==n||n){n=e.getChildCount();for(var a=0;a<n;a++)this.encodeCell(e.getChildAt(a),t)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,t){t=null==t||t;var n=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(n=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(n))for(var a=e.firstChild;null!=a&&!this.isCellCodec(n);)n=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(n)||(n=mxCodecRegistry.getCodec(mxCell)),n=n.decode(this,e),t&&this.insertIntoGraph(n)}return n},mxCodec.prototype.insertIntoGraph=function(e){var t=e.parent,n=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),e.parent=null,null!=t&&t.insert(e),null!=n&&n.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,t,n){null!=t&&null!=n&&e.setAttribute(t,n)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var t=this.reverse[e];null!=t&&(e=t)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var t=this.mapping[e];null!=t&&(e=t)}return e},mxObjectCodec.prototype.isExcluded=function(e,t,n,a){return t==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,t)},mxObjectCodec.prototype.isReference=function(e,t,n,a){return 0<=mxUtils.indexOf(this.idrefs,t)},mxObjectCodec.prototype.encode=function(e,t){var n=e.document.createElement(this.getName());return t=this.beforeEncode(e,t,n),this.encodeObject(e,t,n),this.afterEncode(e,t,n)},mxObjectCodec.prototype.encodeObject=function(e,t,n){e.setAttribute(n,"id",e.getId(t));for(var a in t){var i=a,o=t[i];null!=o&&!this.isExcluded(t,i,o,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,t,i,o,n))}},mxObjectCodec.prototype.encodeValue=function(e,t,n,a,i){if(null!=a){if(this.isReference(t,n,a,!0)){var o=e.getId(a);if(null==o)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+n+"="+a);a=o}o=this.template[n],(null==n||e.encodeDefaults||o!=a)&&(n=this.getAttributeName(n),this.writeAttribute(e,t,n,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,t,n,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,t,n,a,i):this.writeComplexAttribute(e,t,n,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,t,n,a,i){a=this.convertValueToXml(a),null==n?(t=e.document.createElement("add"),"function"==typeof a?t.appendChild(e.document.createTextNode(a)):e.setAttribute(t,"value",a),i.appendChild(t)):"function"!=typeof a&&e.setAttribute(i,n,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,t,n,a,i){null!=(e=e.encode(a))?(null!=n&&e.setAttribute("as",n),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+n+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,t,n){return t},mxObjectCodec.prototype.afterEncode=function(e,t,n){return n},mxObjectCodec.prototype.decode=function(e,t,n){var a=t.getAttribute("id"),i=e.objects[a];return null==i&&(i=n||this.cloneTemplate(),null!=a&&e.putObject(a,i)),t=this.beforeDecode(e,t,i),this.decodeNode(e,t,i),this.afterDecode(e,t,i)},mxObjectCodec.prototype.decodeNode=function(e,t,n){null!=t&&(this.decodeAttributes(e,t,n),this.decodeChildren(e,t,n))},mxObjectCodec.prototype.decodeAttributes=function(e,t,n){if(null!=(t=t.attributes))for(var a=0;a<t.length;a++)this.decodeAttribute(e,t[a],n)},mxObjectCodec.prototype.decodeAttribute=function(e,t,n){var a=t.nodeName;if("as"!=a&&"id"!=a){t=this.convertValueFromXml(t.nodeValue);var i=this.getFieldName(a);if(this.isReference(n,i,t,!1)){if(null==(e=e.getObject(t)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+t);t=e}this.isExcluded(n,a,t,!1)||(n[a]=t)}},mxObjectCodec.prototype.decodeChildren=function(e,t,n){for(t=t.firstChild;null!=t;){var a=t.nextSibling;t.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,t,n)&&this.decodeChild(e,t,n),t=a}},mxObjectCodec.prototype.decodeChild=function(e,t,n){var a=this.getFieldName(t.getAttribute("as"));if(null==a||!this.isExcluded(n,a,t,!1)){var i=this.getFieldTemplate(n,a,t),o=null;"add"==t.nodeName?null==(o=t.getAttribute("value"))&&(o=mxUtils.eval(mxUtils.getTextContent(t))):o=e.decode(t,i),this.addObjectValue(n,a,o,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,t,n){return(e=e[t])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,t,n,a){null!=n&&n!=a&&(null!=t&&0<t.length?e[t]=n:e.push(n))},mxObjectCodec.prototype.processInclude=function(e,t,n){if("include"==t.nodeName){if(null!=(t=t.getAttribute("name")))try{var a=mxUtils.load(t).getDocumentElement();null!=a&&e.decode(a,n)}catch(e){}return!0}return!1},mxObjectCodec.prototype.beforeDecode=function(e,t,n){return t},mxObjectCodec.prototype.afterDecode=function(e,t,n){return n},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,t,n,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==t&&n.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,t,n){if(null!=t.value&&t.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=n;(n=mxClient.IS_IE?t.value.cloneNode(!0):e.document.importNode(t.value,!0)).appendChild(a),e=a.getAttribute("id"),n.setAttribute("id",e),a.removeAttribute("id")}return n},e.beforeDecode=function(e,t,n){var a=t,i=this.getName();if(t.nodeName!=i?(a=t.getElementsByTagName(i)[0],null!=a&&a.parentNode==t?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,n.value=t.cloneNode(!0),null!=(t=n.value.getAttribute("id"))&&(n.setId(t),n.value.removeAttribute("id"))):n.setId(t.getAttribute("id")),null!=a)for(t=0;t<this.idrefs.length;t++){var i=this.idrefs[t],o=a.getAttribute(i);if(null!=o){a.removeAttribute(i);var s=e.objects[o]||e.lookup(o);null==s&&null!=(o=e.getElementById(o))&&(s=(mxCodecRegistry.codecs[o.nodeName]||this).decode(e,o)),n[i]=s}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,t,n){var a=e.document.createElement("root");e.encodeCell(t.getRoot(),a),n.appendChild(a)},e.decodeChild=function(e,t,n){"root"==t.nodeName?this.decodeRoot(e,t,n):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,t,n){var a=null;for(t=t.firstChild;null!=t;){var i=e.decodeCell(t);null!=i&&null==i.getParent()&&(a=i),t=t.nextSibling}null!=a&&n.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,t,n){return e.encodeCell(t.root,n),n},e.beforeDecode=function(e,t,n){if(null!=t.firstChild&&t.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(t=t.cloneNode(!0)).firstChild;for(n.root=e.decodeCell(a,!1),n=a.nextSibling,a.parentNode.removeChild(a),a=n;null!=a;)n=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=n}return t},e.afterDecode=function(e,t,n){return n.previous=n.root,n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,t,n,a){return!("child"!=t||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,t)},e.afterEncode=function(e,t,n){return this.isReference(t,"child",t.child,!0)?n.setAttribute("child",e.getId(t.child)):e.encodeCell(t.child,n),n},e.beforeDecode=function(e,t,n){if(null!=t.firstChild&&t.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(t=t.cloneNode(!0)).firstChild;for(n.child=e.decodeCell(a,!1),n=a.nextSibling,a.parentNode.removeChild(a),a=n;null!=a;){if(n=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=n}}else a=t.getAttribute("child"),n.child=e.getObject(a);return t},e.afterDecode=function(e,t,n){return n.child.parent=n.previous,n.previous=n.parent,n.previousIndex=n.index,n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,t,n){return n.previous=n.terminal,n},e}());var mxGenericChangeCodec=function(e,t){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,a){return mxUtils.isNode(a.cell)&&(a.cell=e.decodeCell(a.cell,!1)),a.previous=a[t],a},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,t){return this.encodeCell(e,t,t.graph.getModel().getRoot())},e.encodeCell=function(e,t,n){var a=t.graph.getModel(),i=t.getState(n),o=a.getParent(n);if(null==o||null!=i){var s=a.getChildCount(n),r=t.graph.getCellGeometry(n),l=null;if(o==a.getRoot()?l="layer":null==o?l="graph":a.isEdge(n)?l="edge":0<s&&null!=r?l="group":a.isVertex(n)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=t.graph.getLabel(n)&&(d.setAttribute("label",t.graph.getLabel(n)),t.graph.isHtmlLabel(n)&&d.setAttribute("html",!0)),null==o){var c=t.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",t.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(o=i.style[c])&&"object"==typeof o&&(o=mxStyleRegistry.getName(o)),null!=o&&"function"!=typeof o&&"object"!=typeof o&&d.setAttribute(c,o);if(null!=(o=i.absolutePoints)&&0<o.length){for(r=Math.round(o[0].x)+","+Math.round(o[0].y),c=1;c<o.length;c++)r+=" "+Math.round(o[c].x)+","+Math.round(o[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<s;c++)null!=(i=this.encodeCell(e,t,a.getChildAt(n,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,t){var n,a=e.document.createElement(this.getName());for(n in t.styles){var i=t.styles[n],o=e.document.createElement("add");if(null!=n){o.setAttribute("as",n);for(var s in i){var r=this.getStringValue(s,i[s]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",s),o.appendChild(l)}}0<o.childNodes.length&&a.appendChild(o)}}return a},e.getStringValue=function(e,t){var n=typeof t;return"function"==n?t=mxStyleRegistry.getName(style[j]):"object"==n&&(t=null),t},e.decode=function(e,t,n){n=n||new this.template.constructor;var a=t.getAttribute("id");for(null!=a&&(e.objects[a]=n),t=t.firstChild;null!=t;){if(!this.processInclude(e,t,n)&&"add"==t.nodeName&&null!=(a=t.getAttribute("as"))){var i=t.getAttribute("extend"),o=null!=i?mxUtils.clone(n.styles[i]):null;for(null==o&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),o={}),i=t.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var s=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(o[s]=l)}else"remove"==i.nodeName&&delete o[s]}i=i.nextSibling}n.putCellStyle(a,o)}t=t.nextSibling}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,t){return null},e.decode=function(e,t,n){if(null!=n)for(t=t.firstChild;null!=t;){if(!this.processInclude(e,t,n)&&"add"==t.nodeName){var a=t.getAttribute("as"),i=t.getAttribute("action"),o=t.getAttribute("control");n.bindAction(a,i,o)}t=t.nextSibling}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,t){return null},e.decode=function(e,t,n){if(null!=n){var a=n.editor;for(t=t.firstChild;null!=t;){if(t.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,t,n))if("separator"==t.nodeName)n.addSeparator();else if("br"==t.nodeName)n.toolbar.addBreak();else if("hr"==t.nodeName)n.toolbar.addLine();else if("add"==t.nodeName){var i=t.getAttribute("as"),i=mxResources.get(i)||i,o=t.getAttribute("icon"),s=t.getAttribute("pressedIcon"),r=t.getAttribute("action"),l=t.getAttribute("mode"),d=t.getAttribute("template"),c="0"!=t.getAttribute("toggle"),m=mxUtils.getTextContent(t),u=null;if(null!=r)u=n.addItem(i,o,r,s);else if(null!=l)var p=mxUtils.eval(m),u=n.addMode(i,o,l,s,p);else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=t.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),d=null,null!=m&&0<m.length&&(d=mxUtils.eval(m)),u=n.addPrototype(i,o,u,s,d,c);else if(0<(s=mxUtils.getChildNodes(t)).length)if(null==o)for(d=n.addActionCombo(i),i=0;i<s.length;i++)c=s[i],"separator"==c.nodeName?n.addOption(d,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),c=c.getAttribute("action"),n.addActionOption(d,o,c));else{var g=null,h=n.addPrototype(i,o,function(){if(null!=(e=a.templates[g.value])){var e=e.clone(),t=g.options[g.selectedIndex].cellStyle;return null!=t&&e.setStyle(t),e}return mxLog.warn("Template "+e+" not found"),null},null,null,c),g=n.addCombo();for(mxEvent.addListener(g,"change",function(){n.toolbar.selectMode(h,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),n.toolbar.noReset=!1}),i=0;i<s.length;i++)c=s[i],"separator"==c.nodeName?n.addOption(g,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),m=c.getAttribute("template"),n.addOption(g,o,m||d).cellStyle=c.getAttribute("style"))}null!=u&&null!=(d=t.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d)}t=t.nextSibling}}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,t){return null},e.decode=function(e,t,n){var a=t.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,n):null!=n&&(n.config=t),n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,t,n){return null!=(e=t.getAttribute("defaultEdge"))&&(t.removeAttribute("defaultEdge"),n.defaultEdge=n.templates[e]),null!=(e=t.getAttribute("defaultGroup"))&&(t.removeAttribute("defaultGroup"),n.defaultGroup=n.templates[e]),n},e.decodeChild=function(e,t,n){if("Array"==t.nodeName){if("templates"==t.getAttribute("as"))return void this.decodeTemplates(e,t,n)}else if("ui"==t.nodeName)return void this.decodeUi(e,t,n);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,t,n){for(e=t.firstChild;null!=e;){if("add"==e.nodeName){t=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),o=null;if(null!=a)null!=(o=document.getElementById(a))&&null!=i&&(o.style.cssText+=";"+i);else{var a=parseInt(e.getAttribute("x")),s=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(o=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(t)||t,o,a,s,r,l,!1,!0).setVisible(!0)}"graph"==t?n.setGraphContainer(o):"toolbar"==t?n.setToolbarContainer(o):"title"==t?n.setTitleContainer(o):"status"==t?n.setStatusContainer(o):"map"==t&&n.setMapContainer(o)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,t,n){null==n.templates&&(n.templates=[]),t=mxUtils.getChildNodes(t);for(var a=0;a<t.length;a++){for(var i=t[a].getAttribute("as"),o=t[a].firstChild;null!=o&&1!=o.nodeType;)o=o.nextSibling;null!=o&&(n.templates[i]=e.decodeCell(o))}},e}()),EditorUi=function(e,t,n){this.projectDesignController=e,this.editor=t||new Editor,this.container=n||document.body;var a=t.graph,i=this;(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi();var o=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isSelectionAllowed(e)||a.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=o,this.menubarContainer.onmousedown=o,this.toolbarContainer.onselectstart=o,this.toolbarContainer.onmousedown=o,this.diagramContainer.onselectstart=o,this.diagramContainer.onmousedown=o,this.sidebarContainer.onselectstart=o,this.sidebarContainer.onmousedown=o,this.footerContainer.onselectstart=o,this.footerContainer.onmousedown=o),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",o),mxEvent.addListener(this.sidebarContainer,"contextmenu",o)):(this.diagramContainer.oncontextmenu=o,this.sidebarContainer.oncontextmenu=o),a.init(this.diagramContainer),a.refresh(),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+t.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var s=a.fireMouseEvent;a.fireMouseEvent=function(e,t,n){e==mxEvent.MOUSE_DOWN&&this.container.focus(),s.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","tts","ispeechtts","getdigits","getsecretdigits"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax"],[[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch"],o=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(o),!this.isEnabled()||mxEvent.isConsumed(e)||o.isConsumed()||(this.getModel().isEdge(t)?n.indexOf(t.source.value.tagName)>=0&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),o.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,t,n){this.menus.createPopupMenu(e,t,n)}),t.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.createKeyHandler(t);this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=100,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),t=function(){e.setEnabled(!mxClipboard.isEmpty())},n=mxClipboard.cut;mxClipboard.cut=function(){n.apply(this,arguments),t()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),t()}},EditorUi.prototype.isSelectionAllowed=function(e){return!1},EditorUi.prototype.exportXML=function(e){var t=window.document.createElement("a");t.href="data:attachment/text;charset=utf-8,"+encodeURI(e),t.download=this.editor.filename+".xml",t.target="_self",t.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,t){try{var n=mxUtils.parseXml(e);this.editor.setGraphXml(n.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=t&&(this.editor.filename=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,t,n){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=t&&(this.editor.filename=t),null!=n&&(this.editor.data=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,t){for(var n=this.editor.graph,e=null!=e?e:n.model.getRoot(),t=null!=t?t:{},a=!0,i=n.model.getChildCount(e),o=0;o<i;o++){var s=n.model.getChildAt(e,o),r=t;n.isValidRoot(s)&&(r={}),null!=(r=this.validate(s,r))?n.setCellWarning(s,r.replace(/\n/g,"<br>")):n.setCellWarning(s,null),a=a&&null==r}if(i="",n.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("digit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("response")>=0?"":mxResources.get("invalidTimeout")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n",i+=e.value.getAttribute("mindigit")>0?"":mxResources.get("wrongMinDigit")+"\n",i+=e.value.getAttribute("maxdigit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n",i+=e.value.getAttribute("mindigit")>0?"":mxResources.get("wrongMinDigit")+"\n",i+=e.value.getAttribute("maxdigit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("hiddendigitsnum")>=0?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=e.value.getAttribute("odbc_id")>0?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=e.value.getAttribute("priority")>=1?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=e.value.getAttribute("timeout")>=-1?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=e.value.getAttribute("sip_id")>0?"":mxResources.get("noIdentifierSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=e.value.getAttribute("delay")>=0?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=e.value.getAttribute("interval_id")>0?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=e.value.getAttribute("project_id")>0?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=e.value.getAttribute("speed")>=-10&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"ispeechasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=e.value.getAttribute("timeout")>=-1?"":mxResources.get("invalidTimeout")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n"}if(n.model.isEdge(e))switch(n.model.getCell(e.source.getId()).value.nodeName){case"background":i+=(l=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[*]{1}$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrTimeout")+"\n";break;case"menu":if(e.getValue()){l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[*]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"vswitch":if(e.getValue()){var l=/^([a-zA-Z0-9]+)$|^[-]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrLettersOrAll")+"\n"})}else i=i+mxResources.get("numberOrLettersOrAll")+"\n";break;case"getsecretdigits":case"getdigits":e.getValue()?i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n":i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":e.getValue()?i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n":i=i+mxResources.get("trueOrFalse")+"\n"}return n.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(n.containsValidationErrorsResource)||n.containsValidationErrorsResource)+"\n"),i=n.model.isEdge(e)?i+(n.getEdgeValidationError(e,n.model.getTerminal(e,!0),n.model.getTerminal(e,!1))||""):i+(n.getCellValidationError(e)||""),null!=(o=n.validateCell(e,t))&&(i+=o),null==n.model.getParent(e)&&n.view.validate(),i.length>0||!a?i:null},EditorUi.prototype.validateBlock=function(e){var t=this.editor.graph,n=0;return t.getDefaultParent().children.forEach(function(a){t.model.isVertex(a)&&a.value.nodeName==e&&n++}),!(n>1)},EditorUi.prototype.getUrl=function(e){var t=null!=e?e:window.location.pathname,n=t.indexOf("?")>0?1:0;for(var a in urlParams)t+=0==n?"?":"&",t+=a+"="+urlParams[a],n++;return t},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),t=this.actions.get("redo"),n=this.editor.undoManager,a=function(){e.setEnabled(n.canUndo()),t.setEnabled(n.canRedo())};n.addListener(mxEvent.ADD,a),n.addListener(mxEvent.UNDO,a),n.addListener(mxEvent.REDO,a),n.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,t=!e.isSelectionEmpty(),n=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(r=0;r<i.length;r++){var o=i[r];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(n=!0),a&&n)break}for(var s=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"],r=0;r<s.length;r++)this.actions.get(s[r]).setEnabled(t);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(n),this.actions.get("wordWrap").setEnabled(n),this.actions.get("group").setEnabled(e.getSelectionCount()>1),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&e.getModel().getChildCount(e.getSelectionCell())>0);var l=n&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));for(var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"],r=0;r<d.length;r++)this.menus.get(d[r]).setEnabled(t);d=["line","lineend","linestart"];for(r=0;r<d.length;r++)this.menus.get(d[r]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(e.getSelectionCount()>1),this.menus.get("direction").setEnabled(n||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),t=this.container.clientWidth,n=this.container.clientHeight;this.container==document.body&&(t=document.body.clientWidth||document.documentElement.clientWidth,n=e?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,t-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,n-this.menubarHeight-this.toolbarHeight-this.footerHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var o=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(o+=1),this.sidebarContainer.style.top=o+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.outlineContainer.style.bottom=this.footerHeight+"px",this.diagramContainer.style.left=a+this.splitSize+"px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.footerContainer.style.height=this.footerHeight+"px",this.footerContainer.style.display="none",this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=t+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var s=n-i-this.splitSize-this.footerHeight-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=s+"px",this.diagramContainer.style.width=t-a-this.splitSize+"px";var r=n-this.footerHeight-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.footerContainer.style.width=this.menubarContainer.style.width,this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+this.footerHeight+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.footerContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var t=document.createElement("div");return t.className=e,t},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var t=document.createElement("form");return t.className=e,t},EditorUi.prototype.addSplitHandler=function(e,t,n,a){function i(){return parseInt(t?e.style.left:e.style.bottom)}function o(e){if(null!=r){var i=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));a(Math.max(0,l+(t?i.x-r.x:r.y-i.y)-n)),mxEvent.consume(e)}}function s(e){o(e),r=null,l=null}var r=null,l=null;mxEvent.addGestureListeners(e,function(e){r=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),l=i(),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",o),mxEvent.addListener(document,"touchmove",o),mxEvent.addListener(document,"mouseup",s),mxEvent.addListener(document,"touchend",s)},EditorUi.prototype.executeLayout=function(e,t,n){var a=this.editor.graph,i=a.getSelectionCell();t=null!=this.animate?this.animate:t,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(t&&navigator.userAgent.indexOf("Camino")<0){var o=new mxMorphing(a);o.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),o.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){function t(e){if(!n.isSelectionEmpty()){var t=0,a=0;37==e?t=-1:38==e?a=-1:39==e?t=1:40==e&&(a=1),n.moveCells(n.getSelectionCells(),t,a),n.scrollCellToVisible(n.getSelectionCell())}}var n=this.editor.graph,a=new mxKeyHandler(n);a.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var i=mxUtils.bind(this,function(e,t,n,i){var o=this.actions.get(n);if(null!=o){var s=function(){o.enabled&&o.funct()};t?i?a.bindControlShiftKey(e,s):a.bindControlKey(e,s):i?a.bindShiftKey(e,s):a.bindKey(e,s)}});return a.enter=function(){},a.bindKey(8,function(){n.foldCells(!0)}),a.bindKey(13,function(){n.foldCells(!1)}),a.bindKey(33,function(){n.exitGroup()}),a.bindKey(34,function(){n.enterGroup()}),a.bindKey(36,function(){n.home()}),a.bindKey(35,function(){n.refresh()}),a.bindKey(37,function(){t(37)}),a.bindKey(38,function(){t(38)}),a.bindKey(39,function(){t(39)}),a.bindKey(40,function(){t(40)}),a.bindKey(113,function(){n.startEditingAtCell()}),i(46,!1,"delete"),i(82,!0,"tilt"),i(83,!0,"save"),i(83,!0,"saveAs",!0),i(107,!1,"zoomIn"),i(109,!1,"zoomOut"),i(65,!0,"selectAll"),i(86,!0,"selectVertices",!0),i(69,!0,"selectEdges",!0),i(69,!0,"export"),i(66,!0,"toBack"),i(70,!0,"toFront"),i(68,!0,"duplicate"),i(90,!0,"undo"),i(89,!0,"redo"),i(88,!0,"cut"),i(67,!0,"copy"),i(81,!0,"connect"),i(86,!0,"paste"),i(71,!0,"group"),i(71,!0,"grid",!0),i(85,!0,"ungroup"),i(112,!1,"about"),i(80,!0,"publish",!0),a},EditorUi.prototype.createMultiplicities=function(e,t,n,a){for(var i=0;i<t.length;i++)e.push(new mxMultiplicity(!0,t[i],null,null,n[i][0],n[i][1],null,mxResources.get(t[i])+mxResources.get("musthave")+n[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,t[i],null,null,a[i][0],a[i][1],null,mxResources.get(t[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var t=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=1,this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var n=e.getAttribute("pageScale");this.graph.pageScale=null!=n?n:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var o=e.getAttribute("background");null!=o&&o.length>0&&(this.graph.background=o),t.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,t=this.outline;if(null!=e.container&&null!=t.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",t.outline.container.style.backgroundColor=e.container.style.backgroundColor,t.outline.pageVisible==e.pageVisible&&t.outline.pageScale==e.pageScale||(t.outline.pageScale=e.pageScale,t.outline.pageVisible=e.pageVisible,t.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var n=mxClient.IS_IE&&document.documentMode>=9?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":n,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),t=e.width>0?e.x/this.scale-this.translate.x:0,n=e.height>0?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,o=this.graph.pageFormat,s=this.graph.pageScale,r=o.width*s,l=o.height*s,d=Math.floor(Math.min(0,t)/r),c=Math.floor(Math.min(0,n)/l),m=Math.ceil(Math.max(1,t+a)/r)-d,u=Math.ceil(Math.max(1,n+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var n=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();t=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(t,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){var t=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+n.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,t,n){var a=this.view.scale,i=this.view.translate,o=this.pageFormat,s=a*this.pageScale,r=this.view.getBackgroundPageBounds();t=r.width,n=r.height;var l=new mxRectangle(a*i.x,a*i.y,o.width*s,o.height*s),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(t/l.width)-1:0,c=e?Math.ceil(n/l.height)-1:0,m=r.x+t,u=r.y+n;if(null==this.horizontalPageBreaks&&d>0&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(h=0;h<=d;h++){p=[new mxPoint(r.x+(h+1)*l.width,r.y),new mxPoint(r.x+(h+1)*l.width,u)];null!=this.horizontalPageBreaks[h]?(this.horizontalPageBreaks[h].scale=1,this.horizontalPageBreaks[h].points=p,this.horizontalPageBreaks[h].redraw()):((g=new mxPolyline(p,this.pageBreakColor,this.scale)).dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.addPipe=!1,g.scale=a,g.init(this.view.backgroundPane),g.redraw(),this.horizontalPageBreaks[h]=g)}for(h=d;h<this.horizontalPageBreaks.length;h++)this.horizontalPageBreaks[h].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&c>0&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(h=0;h<=c;h++){var p=[new mxPoint(r.x,r.y+(h+1)*l.height),new mxPoint(m,r.y+(h+1)*l.height)];if(null!=this.verticalPageBreaks[h])this.verticalPageBreaks[h].scale=1,this.verticalPageBreaks[h].points=p,this.verticalPageBreaks[h].redraw();else{var g=new mxPolyline(p,this.pageBreakColor,a);g.dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.addPipe=!1,g.scale=a,g.init(this.view.backgroundPane),g.redraw(),this.verticalPageBreaks[h]=g}}for(var h=c;h<this.verticalPageBreaks.length;h++)this.verticalPageBreaks[h].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var a=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){for(var i=0;i<t.length;i++)if(this.graph.getModel().isVertex(t[i])){var o=this.graph.getCellGeometry(t[i]);if(null!=o&&o.relative)return!1}return a.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var i=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,t,n,a,o,s){var r=i.apply(this,arguments);return null==s||s||mxEvent.addListener(r,"mousedown",function(e){mxEvent.consume(e)}),r};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var t=this.graph.getModel(),n=t.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=t.getParent(a);if(null==n||n!=a&&n!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&t.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var s=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var t=s.apply(this,arguments),n=this.graph.getModel(),a=n.getParent(this.graph.getSelectionCell()),i=n.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!n.isVertex(i)||this.graph.isValidRoot(i)||(t=!0)),t},mxGraphHandler.prototype.selectDelayed=function(e){var t=e.getCell();null==t&&(t=this.cell);for(var n=this.graph.getModel(),a=n.getParent(t);this.graph.isCellSelected(t)&&n.isVertex(a)&&!this.graph.isValidRoot(a);)t=a,a=n.getParent(t);this.graph.selectCellForEvent(t,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var t=e.getCell(),n=this.graph.getModel(),a=n.getParent(t);n.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(t=a),a=n.getParent(a);return t}},Editor.prototype.createUndoManager=function(){var e=this.graph,t=new mxUndoManager,n=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};e.getModel().addListener(mxEvent.UNDO,n),e.getView().addListener(mxEvent.UNDO,n);var a=function(t,n){for(var a=e.getSelectionCellsForChanges(n.getProperty("edit").changes),i=[],o=1;o<a.length;o++)null!=e.view.getState(a[o])&&i.push(a[o]);e.setSelectionCells(i)};return t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},function(){mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var t=mxStencilRegistry.stencils[e];if(null==t){var n=mxStencilRegistry.getBasenameForStencil(e);if(null!=n){var a=mxStencilRegistry.libraries[n];if(null!=a){if(null==mxStencilRegistry.packages[n]){mxStencilRegistry.packages[n]=1;for(var i=0;i<a.length;i++){var o=a[i];if(".xml"==o.toLowerCase().substring(o.length-4,o.length))mxStencilRegistry.loadStencilSet(o,null);else if(".js"==o.toLowerCase().substring(o.length-3,o.length)){var s=mxUtils.load(o);null!=s&&eval.call(window,s.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+n+".xml",null);t=mxStencilRegistry.stencils[e]}}return t},mxStencilRegistry.getBasenameForStencil=function(e){var t=e.split("."),n=null;if(t.length>0&&"mxgraph"==t[0]){n=t[1];for(var a=2;a<t.length-1;a++)n+="/"+t[a]}return n},mxStencilRegistry.loadStencilSet=function(e,t,n){n=null!=n&&n;var a=mxStencilRegistry.packages[e];if(n||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,t,i)}},mxStencilRegistry.parseStencilSet=function(e,t,n){n=null==n||n;var a=e.documentElement,i=a.firstChild,o="",s=a.getAttribute("name");for(null!=s&&(o=s+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(s=i.getAttribute("name"))){o=o.toLowerCase();var r=s.replace(/ /g,"_");if(n&&mxStencilRegistry.addStencil(o+r.toLowerCase(),new mxStencil(i)),null!=t){var l=i.getAttribute("w"),d=i.getAttribute("h");t(o,r,s,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}}}(),OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,t){this.data=e,this.filename=t,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","tts","ispeechtts","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("tts"),mxResources.get("ispeechtts"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","ispeechasr"],[mxResources.get("database"),mxResources.get("ispeechasr")]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=document.documentMode>=5?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return e=e.getBoundingClientRect(),{left:e.left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(e,t,n,a,i,o){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=e){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var s=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),n>this.maxTooltipWidth||a>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/n,this.maxTooltipHeight/a))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==o||o,this.graph2.addCells(t);var s=this.graph2.getGraphBounds(),r=s.width+2*this.tooltipBorder+4,l=s.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(l+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=r+"px",this.tooltipTitles&&null!=i&&i.length>0){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG?this.tooltipTitle.style.paddingTop="6px":(this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px"),this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,i);var d=this.tooltipTitle.offsetHeight+10;l+=d,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-d+"px":(l-=6,this.tooltipTitle.style.top=l-d+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=l+"px";var c=-Math.round(s.x-this.tooltipBorder),m=-Math.round(s.y-this.tooltipBorder),u=document.body,p=document.documentElement,g=(u.clientHeight||p.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),h=Math.max(0,this.getOffset(e).top-this.container.scrollTop-l/2+16);mxClient.IS_SVG?0!=c||0!=m?this.graph2.view.canvas.setAttribute("transform","translate("+c+","+m+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=c+"px",this.graph2.view.drawPane.style.top=m+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=g+"px",this.tooltip.style.top=h+"px",this.tooltipImage.style.left=g-13+"px",this.tooltipImage.style.top=h+l/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?s():this.thread=window.setTimeout(s,this.tooltipDelay),this.currentElt=e}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,t){if(null!=this.taglist&&null!=e&&e.length>0)for(var n=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<n.length;a++)if(n[a]=n[a].replace(/\.*\d*$/,""),n[a].length>1){var i=this.taglist[n[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[n[a]]=i),null==i.dict.get(t)&&(i.dict.put(t,t),i.entries.push(t))}return t},Sidebar.prototype.searchEntries=function(e,t,n,a,i){if(null!=this.taglist&&null!=e){for(var o=e.toLowerCase().split(" "),s=new mxDictionary,r=(n+1)*t,l=[],d=0,c=0;c<o.length;c++)if(o[c].length>0){var m=this.taglist[o[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==s.get(m))&&(u.put(m,m),l.push(m),c==o.length-1&&l.length==r))return void a(l.slice(n*t,r),r,!0)}}else l=[];s=u,d++}var h=l.length;a(l.slice(n*t,(n+1)*t),h,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null!=e){for(var t=e.split(" "),n=[],a={},i=0;i<t.length;i++)null==a[t[i]]&&(a[t[i]]="1",n.push(t[i]));return n.join(" ")}return null},Sidebar.prototype.cloneCell=function(e,t){var n=e.clone();return null!=t&&(n.value=t),n},Sidebar.prototype.addSearchPalette=function(e){var t=document.createElement("div");t.style.visibility="hidden",this.container.appendChild(t);var n=document.createElement("div");n.className="geSidebar",n.style.boxSizing="border-box",n.style.overflow="hidden",n.style.width="100%",n.style.padding="8px",n.style.paddingTop="14px",n.style.paddingBottom="0px",e||(n.style.display="none");var a=document.createElement("div");a.style.whiteSpace="nowrap",a.style.textOverflow="clip",a.style.paddingBottom="8px",a.style.cursor="default";var i=document.createElement("input");i.setAttribute("placeholder",mxResources.get("searchShapes")),i.setAttribute("type","text"),i.style.fontSize="12px",i.style.overflow="hidden",i.style.boxSizing="border-box",i.style.border="solid 1px #d5d5d5",i.style.borderRadius="4px",i.style.width="100%",i.style.outline="none",i.style.padding="6px",a.appendChild(i);var o=document.createElement("img");o.setAttribute("src",Sidebar.prototype.searchImage),o.setAttribute("title",mxResources.get("search")),o.style.position="relative",o.style.left="-18px",mxClient.IS_QUIRKS?(i.style.height="28px",o.style.top="-4px"):o.style.top="2px",o.style.background="url('"+this.editorUi.editor.transparentImage+"')";var s;a.appendChild(o),n.appendChild(a);var r=document.createElement("center"),l=mxUtils.button(mxResources.get("moreResults"),function(){s()});l.style.display="none",l.style.lineHeight="normal",l.style.marginTop="4px",l.style.marginBottom="8px",r.style.paddingTop="4px",r.style.paddingBottom="8px",r.appendChild(l),n.appendChild(r);var d="",c=!1,m=!1,u=0,p=new Object,g=12,h=mxUtils.bind(this,function(){c=!1,this.currentSearch=null;for(var e=n.firstChild;null!=e;){var t=e.nextSibling;e!=a&&e!=r&&e.parentNode.removeChild(e),e=t}});s=mxUtils.bind(this,function(){if(g=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=i.value){if(null!=r.parentNode&&(d!=i.value&&(h(),d=i.value,p=new Object,m=!1,u=0),!c&&!m)){l.setAttribute("disabled","true"),l.style.display="",l.style.cursor="wait",l.innerHTML=mxResources.get("loading")+"...",c=!0;var e=new Object;this.currentSearch=e,this.searchEntries(d,g,u,mxUtils.bind(this,function(t,a,i){if(this.currentSearch==e){t=null!=t?t:[],c=!1,u++,r.parentNode.removeChild(r);for(var o=0;o<t.length;o++){var s=t[o]();null==p[s.innerHTML]&&(p[s.innerHTML]="1",n.appendChild(t[o]()))}if(i?(l.removeAttribute("disabled"),l.innerHTML=mxResources.get("moreResults")):(l.innerHTML=mxResources.get("reset"),l.style.display="none",m=!0),l.style.cursor="",0==t.length&&1==u){var g=document.createElement("div");g.className="geTitle",g.style.backgroundColor="transparent",g.style.borderColor="transparent",g.style.color="gray",g.style.padding="0px",g.style.margin="0px 8px 0px 8px",g.style.paddingTop="6px",g.style.textAlign="center",g.style.cursor="default",mxUtils.write(g,mxResources.get("noResultsFor",[d])),n.appendChild(g)}n.appendChild(r)}}),mxUtils.bind(this,function(){l.style.cursor=""}))}}else h(),i.value="",d="",p=new Object,l.style.display="none",m=!1,i.focus()}),mxEvent.addListener(i,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&s()})),mxEvent.addListener(i,"focus",function(){i.style.paddingRight="",o.style.display="none"}),mxEvent.addListener(i,"blur",function(){i.style.paddingRight="20px",o.style.display=""}),i.style.paddingRight="20px",mxEvent.addListener(i,"keyup",mxUtils.bind(this,function(e){""==i.value?(m=!0,l.style.display="none"):i.value!=d?(l.style.display="none",m=!1):c||(l.style.display=m?"none":"")})),mxEvent.addListener(i,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(i,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var v=document.createElement("div");v.appendChild(n),this.container.appendChild(v),this.palettes.search=[t,v]},Sidebar.prototype.createTitle=function(e){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.setAttribute("title",mxResources.get("sidebarTooltip")),t.className="geTitle",mxUtils.write(t,e),t},Sidebar.prototype.createThumb=function(e,t,n,a,i,o,s,r,l){this.graph.labelsVisible=null==o||o;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((t-2*this.thumbBorder)/c.width,(n-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((t-c.width*m)/2/m-c.x),Math.floor((n-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=t+"px",u.style.height=n+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=s){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(e,t,n,a,i,o,s){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(e,this.thumbWidth,this.thumbHeight,r,t,n,a,i,o);var d=new mxRectangle(0,0,i,o);if(e.length>1||e[0].vertex){c=this.createDragSource(r,this.createDropHandler(e,!0,s,d),this.createDragPreview(i,o),e,d);this.addClickHandler(r,c,e),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=e[0]&&e[0].edge){var c=this.createDragSource(r,this.createDropHandler(e,!1,s,d),this.createDragPreview(i,o),e,d);this.addClickHandler(r,c,e)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(a){this.showTooltip(r,e,d.width,d.height,t,n)})),r},Sidebar.prototype.createDropHandler=function(e,t,n,a){return n=null==n||n,mxUtils.bind(this,function(i,o,s,r,l){if(i.isEnabled()){if((e=i.getImportableCells(e)).length>0){i.stopEditing();var d=null!=s&&i.isValidDropTarget(s,e,o),c=null;if(null==s||d||(s=null),!i.isCellLocked(s||i.getDefaultParent())){i.model.beginUpdate();try{if(r=Math.round(r),l=Math.round(l),t&&i.isSplitTarget(s,e,o)){var m=i.cloneCells(e);i.splitEdge(s,m,null,r-a.width/2,l-a.height/2),c=m}else e.length>0&&(c=i.importCells(e,r,l,s));if(null!=i.layoutManager){var u=i.layoutManager.getLayout(s);if(null!=u)for(var p=i.view.scale,g=i.view.translate,h=(r+g.x)*p,v=(l+g.y)*p,b=0;b<c.length;b++)u.moveCell(c[b],h,v)}n&&i.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{i.model.endUpdate()}null!=c&&c.length>0&&(i.scrollCellToVisible(c[0]),i.setSelectionCells(c))}}mxEvent.consume(o)}})},Sidebar.prototype.createDragPreview=function(e,t){var n=document.createElement("div");return n.style.border="1px dashed black",n.style.width=e+"px",n.style.height=t+"px",n},Sidebar.prototype.createDragSource=function(e,t,n){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,t,n,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,t,n){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,t){var n=this.editorUi.editor.graph,a=null;mxEvent.addGestureListeners(e,function(e){a=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var i=t.mouseUp;t.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=a){var o=n.tolerance;if(Math.abs(a.x-mxEvent.getClientX(e))<=o&&Math.abs(a.y-mxEvent.getClientY(e))<=o){var s=n.getGridSize();t.drop(n,e,null,s,s)}}i.apply(this,arguments),a=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,t,n,a,i,o,s,r){return r=null!=r&&r.length>0?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,t,n,a,i,o,s)}))},Sidebar.prototype.createXmlDocument=function(e,t,n,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",t),n.forEach(function(e,t){i.setAttribute(e,a[t]?a[t]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,t,n,a,i,o,s,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","1","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5"];break;case"sendSMS":l=["account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","template_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,t,n),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,t,n,i,o,s,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,t,n,a,i,o,s){return this.createItem(e,a,i,o,t,n,s)},Sidebar.prototype.createEdgeTemplate=function(e,t,n,a,i,o,s){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,t,n),e);return r.geometry.setTerminalPoint(new mxPoint(0,n),!0),r.geometry.setTerminalPoint(new mxPoint(t,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],t,n,i,o,s)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,t,n,a,i,o){return this.createItem(e,a,i,!0,t,n,o)},Sidebar.prototype.addPaletteFunctions=function(e,t,n,a){this.addPalette(e,t,n,mxUtils.bind(this,function(e){for(var t=0;t<a.length;t++)e.appendChild(a[t](e))}))},Sidebar.prototype.addPalette=function(e,t,n,a){var i=this.createTitle(t);this.container.appendChild(i);var o=document.createElement("div");o.className="geSidebar",mxClient.IS_POINTER&&(o.style.touchAction="none"),mxEvent.addListener(o,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==o?o.setAttribute("title",mxResources.get("sidebarTooltip")):o.removeAttribute("title")})),n?(a(o),a=null):o.style.display="none",this.addFoldingHandler(i,o,a);var s=document.createElement("div");return s.appendChild(o),this.container.appendChild(s),null!=e&&(this.palettes[e]=[i,s]),o},Sidebar.prototype.addFoldingHandler=function(e,t,n){var a=!1;(!mxClient.IS_IE||document.documentMode>=8)&&(e.style.backgroundImage="none"==t.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),e.style.backgroundRepeat="no-repeat",e.style.backgroundPosition="0% 50%",mxEvent.addListener(e,"click",mxUtils.bind(this,function(i){if("none"==t.style.display){if(a)t.style.display="block";else if(a=!0,null!=n){e.style.cursor="wait";var o=e.innerHTML;e.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var a=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,n(t),mxClient.NO_FO=a,t.style.display="block",e.style.cursor="",e.innerHTML=o},0)}else t.style.display="block";e.style.backgroundImage="url('"+this.expandedImage+"')"}else e.style.backgroundImage="url('"+this.collapsedImage+"')",t.style.display="none";mxEvent.consume(i)}))},Sidebar.prototype.addImagePalette=function(e,t,n,a,i,o,s){for(var r=[],l=0;l<i.length;l++)mxUtils.bind(this,function(e,t,o){if(null==o){var s=e.lastIndexOf("/"),d=e.lastIndexOf(".");o=e.substring(s>=0?s+1:0,d>=0?d:e.length).replace(/[-_]/g," ")}r.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+n+e+a,this.defaultImageWidth,this.defaultImageHeight,i[l],t,!1,!0,this.filterTags(o)))})(i[l],null!=o?o[l]:null,null!=s?s[i[l]]:null);this.addPaletteFunctions(e,t,!1,r)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,t,n,a){mxGraph.call(this,e,t,n,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);return"1"==n.html||"wrap"==n.whiteSpace},this.cellRenderer.getLabelValue=function(e){var t=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(t=mxUtils.htmlEntities(t,!1)),t},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var o=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,t){null==t?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?o.apply(this,arguments):this.graph.isCellSelected(t.cell)&&this.graph.getSelectionCount()>1&&this.graph.removeSelectionCell(t.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);if(null!=n){var a=mxUtils.getValue(n,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var t=this.getModel().cloneCells([e])[0];null!=t.geometry&&(t.geometry.points=null);var n=t.getStyle();n=mxUtils.setStyle(n,mxConstants.STYLE_ENTRY_X,null),n=mxUtils.setStyle(n,mxConstants.STYLE_ENTRY_Y,null),n=mxUtils.setStyle(n,mxConstants.STYLE_EXIT_X,null),n=mxUtils.setStyle(n,mxConstants.STYLE_EXIT_Y,null),t.setStyle(n),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(t)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([t])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var t="";return this.getModel().isVertex(e)?t+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(t=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),t},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,t,n){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",t),t=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,t){var n=null;null!=e.value&&"object"==typeof e.value?n=e.value.cloneNode(!0):(n=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value),null!=t&&t.length>0?n.setAttribute("link",t):n.removeAttribute("link"),this.model.setValue(e,n)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,t){this.panningHandler.hideMenu()});var e=!1,t=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var t=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(t)&&(e.state=this.view.getState(t),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(n,a,i){if(n==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(e=!1,t=null):(t=a.getCell(),e=null!=t?this.isCellSelected(t):this.isSelectionEmpty());else if(n==mxEvent.MOUSE_UP){if(e&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var o=mxEvent.getClientX(a.getEvent()),s=mxEvent.getClientY(a.getEvent());this.panningHandler.popup(o+16,s,t,a.getEvent())}return e=!1,t=null,void a.consume()}e=!1,t=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),n==mxEvent.MOUSE_MOVE&&a.isConsumed()&&(e=!1,t=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var t=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(t)&&mxEvent.isShiftDown(t)||this.usePopupTrigger&&mxEvent.isPopupTrigger(t)});var e=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(t,n){e.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&this.graph.getSelectionCount()>1&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,t){touchStyle&&null!=t?this.graph.setSelectionCell(t):this.graph.setSelectionCell(e)};var t=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var a=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(a.x,a.y)}t.call(this,e,n)};var n=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=n,mxEdgeHandler.prototype.handleImage=n,mxOutline.prototype.sizerImage=n,(new Image).src=n.src;var a=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(a),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,t.x,t.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};r=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){r.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=a}else{o=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=o,(new Image).src=o.src,"2"==urlParams.connect){var o=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+o.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=o.width+4+"px",this.connectorImg.style.height=o.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(o.src),this.connectorImg.style.width=o.width+"px",this.connectorImg.style.height=o.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,t.x,t.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var r=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){r.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var e=this.editorUi,t=e.editor,n=t.graph;this.addAction("new",function(){e.projectDesignController.newProject()}),this.addAction("open",function(){e.projectDesignController.openProject()}),this.addAction("save",function(){e.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(t.getGraphXml())),e.editor.modified=!1},null,null,"Ctrl+S"),this.addAction("saveAs",function(){e.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(t.getGraphXml()))},null,null,"Ctrl+Shift+S"),this.addAction("publish",function(){e.editor.setStatus(""),null===e.validate()?(e.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(t.getGraphXml()),!0),e.editor.modified=!1):(e.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){e.editor.setStatus("")},3e3))},null,null,"Ctrl+Shift+P"),this.addAction("variable",function(){e.projectDesignController.newVariable()}),this.addAction("import",function(){e.projectDesignController.importXML(function(e){t.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("export",function(){e.exportXML(mxUtils.getPrettyXml(t.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){e.projectDesignController.editXML(mxUtils.getPrettyXml(t.getGraphXml()),function(e){t.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("print",function(){mxUtils.printScreen(n)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(n,null,10,10)}),this.addAction("undo",function(){t.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){t.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(n)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(n)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(n)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){n.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=n.gridSize;n.setSelectionCells(n.moveCells(n.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){n.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){n.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){n.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){n.home()},null,null,"Home"),this.addAction("exitGroup",function(){n.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){n.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){n.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){n.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){n.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){n.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){n.setSelectionCell(n.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){n.setSelectionCells(n.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){n.removeCellsFromParent()}),this.addAction("editLink",function(){var e=n.getSelectionCell(),t=n.getLinkForCell(e);null==t&&(t=""),null!=(t=mxUtils.prompt(mxResources.get("enterValue"),t))&&n.setLinkForCell(e,t)}),this.addAction("openLink",function(){var e=n.getSelectionCell(),t=n.getLinkForCell(e);null!=t&&window.open(t)}),this.addAction("autosize",function(){var e=n.getSelectionCells();if(null!=e){n.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var a=e[t];n.getModel().getChildCount(a)?n.updateGroupBounds([a],20):n.updateCellSize(a)}}finally{n.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=n.getView().getState(n.getSelectionCell()),t="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(t=null),n.setCellStyles(mxConstants.STYLE_WHITE_SPACE,t)}),this.addAction("rotation",function(){var e="0",t=n.getView().getState(n.getSelectionCell());null!=t&&(e=t.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&n.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=n.getSelectionCells();if(null!=e){n.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var a=e[t];if(n.getModel().isVertex(a)&&0==n.getModel().getChildCount(a)){var i=n.getCellGeometry(a);if(null!=i){(i=i.clone()).x+=i.width/2-i.height/2,i.y+=i.height/2-i.width/2;var o=i.width;i.width=i.height,i.height=o,n.getModel().setGeometry(a,i);var s=n.view.getState(a);if(null!=s){var r=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==r?r="south":"south"==r?r="west":"west"==r?r="north":"north"==r&&(r="east"),n.setCellStyles(mxConstants.STYLE_DIRECTION,r,[a])}}}}}finally{n.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){n.zoomTo(1)}),this.addAction("zoomIn",function(){n.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){n.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){n.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){n.pageVisible||this.get("pageView").funct();var e=n.pageFormat,t=n.pageScale,a=n.container.clientWidth-20,i=n.container.clientHeight-20,o=Math.floor(100*Math.min(a/e.width/t,i/e.height/t))/100;n.zoomTo(o),n.container.scrollLeft=Math.round(n.view.translate.x*o-Math.max(10,(n.container.clientWidth-e.width*t*o)/2)),n.container.scrollTop=Math.round(n.view.translate.y*o-Math.max(10,(n.container.clientHeight-e.height*t*o)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){n.pageVisible||this.get("pageView").funct();var e=n.pageFormat,t=n.pageScale,a=n.container.clientWidth-20,i=Math.floor(100*a/e.width/t)/100;n.zoomTo(i),n.container.scrollLeft=Math.round(n.view.translate.x*i-Math.max(10,(n.container.clientWidth-e.width*t*i)/2)),n.container.scrollTop=Math.round(n.view.translate.y*i-Math.max(10,(n.container.clientHeight-e.height*t*i)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*n.getView().getScale()));null!=e&&e.length>0&&!isNaN(parseInt(e))&&n.zoomTo(parseInt(e)/100)}));var a=null;(a=this.addAction("grid",function(){n.setGridEnabled(!n.isGridEnabled()),t.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),a.setSelectedCallback(function(){return n.isGridEnabled()}),(a=this.addAction("guides",function(){n.graphHandler.guidesEnabled=!n.graphHandler.guidesEnabled})).setToggleAction(!0),a.setSelectedCallback(function(){return n.graphHandler.guidesEnabled}),(a=this.addAction("tooltips",function(){n.tooltipHandler.setEnabled(!n.tooltipHandler.isEnabled())})).setToggleAction(!0),a.setSelectedCallback(function(){return n.tooltipHandler.isEnabled()}),(a=this.addAction("navigation",function(){n.foldingEnabled=!n.foldingEnabled,n.view.revalidate()})).setToggleAction(!0),a.setSelectedCallback(function(){return n.foldingEnabled}),(a=this.addAction("scrollbars",function(){if(n.scrollbars=!n.scrollbars,t.updateGraphComponents(),n.scrollbars){var e=n.view.translate.x,a=n.view.translate.y;n.view.translate.x=0,n.view.translate.y=0,n.sizeDidChange(),n.container.scrollLeft-=Math.round(e*n.view.scale),n.container.scrollTop-=Math.round(a*n.view.scale)}else{var i=n.view.translate;n.view.setTranslate(i.x-n.container.scrollLeft/n.view.scale,i.y-n.container.scrollTop/n.view.scale),n.container.scrollLeft=0,n.container.scrollTop=0,n.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),a.setSelectedCallback(function(){return"auto"==n.container.style.overflow}),(a=this.addAction("pageView",mxUtils.bind(this,function(){n.pageVisible=!n.pageVisible,n.pageBreaksVisible=n.pageVisible,n.preferPageSize=n.pageBreaksVisible,n.view.validate(),n.sizeDidChange(),t.updateGraphComponents(),t.outline.update(),mxUtils.hasScrollbars(n.container)&&(n.pageVisible?(n.container.scrollLeft-=20,n.container.scrollTop-=20):(n.container.scrollLeft+=20,n.container.scrollTop+=20))}))).setToggleAction(!0),a.setSelectedCallback(function(){return n.pageVisible}),(a=this.addAction("connect",function(){n.setConnectable(!n.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),a.setSelectedCallback(function(){return n.connectionHandler.isEnabled()}),(a=this.addAction("copyConnect",function(){n.connectionHandler.setCreateTarget(!n.connectionHandler.isCreateTarget())})).setToggleAction(!0),a.setSelectedCallback(function(){return n.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMD/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var i=mxUtils.bind(this,function(e,t){this.addAction(e,function(){n.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,t)})});i("bold",mxConstants.FONT_BOLD),i("italic",mxConstants.FONT_ITALIC),i("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){n.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){n.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){n.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){n.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=n.getSelectionCells();if(null!=e&&e.length>0){var t=n.getModel(),a=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",t.getStyle(e[0])||"");null!=a&&n.setCellStyle(a,e)}}),this.addAction("setAsDefaultEdge",function(){n.setDefaultEdge(n.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=n.getSelectionCell();if(null!=e&&n.getModel().isEdge(e)){var a=t.graph.selectionCellsHandler.getHandler(e);if(a instanceof mxEdgeHandler){var i=n.view.translate,o=n.view.scale,s=i.x,r=i.y,l=n.getModel().getParent(e),d=n.getCellGeometry(l);n.getModel().isVertex(l)&&null!=d&&(s+=d.x,r+=d.y),a.addPointAt(a.state,n.panningHandler.triggerX/o-s,n.panningHandler.triggerY/o-r)}}}),this.addAction("removeWaypoint",function(){var t=e.actions.get("removeWaypoint");null!=t.handler&&t.handler.removePoint(t.handler.state,t.index)}),this.addAction("image",function(){function e(e,t,a){var i=null,o=n.getSelectionCells();n.getModel().beginUpdate();try{if(0==o.length){var s=n.getGridSize();i=o=[n.insertVertex(n.getDefaultParent(),null,"",s,s,t,a)]}if(n.setCellStyles(mxConstants.STYLE_IMAGE,e,o),n.setCellStyles(mxConstants.STYLE_SHAPE,"image",o),1==n.getSelectionCount()&&null!=t&&null!=a){var r=o[0],l=n.getModel().getGeometry(r);null!=l&&((l=l.clone()).width=t,l.height=a,n.getModel().setGeometry(r,l))}}finally{n.getModel().endUpdate()}null!=i&&(n.setSelectionCells(i),n.scrollCellToVisible(i[0]))}var t="",a=n.getView().getState(n.getSelectionCell());if(null!=a&&(t=a.style[mxConstants.STYLE_IMAGE]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",t))&&t.length>0){var i=new Image;i.onload=function(){e(t,i.width,i.height)},i.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},i.src=t}})},Actions.prototype.addAction=function(e,t,n,a,i){return this.put(e,new Action(mxResources.get(e),t,n,a,i))},Actions.prototype.put=function(e,t){return this.actions[e]=t,t},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var e=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,t){for(var n=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<n.length;a++)this.styleChange(e,n[a],[mxConstants.STYLE_FONTFAMILY],[n[a]],null,t).firstChild.nextSibling.style.fontFamily=n[a];e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,t)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,t){for(var n=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<n.length;a++)this.styleChange(e,n[a],[mxConstants.STYLE_FONTSIZE],[n[a]],null,t);e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,t)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,t){for(var n=[1,2,3,4,8,12,16,24],a=0;a<n.length;a++)this.styleChange(e,n[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[n[a]],null,t);e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,t)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,t),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,t),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,t),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,t)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(t,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(t,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(t,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(t,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),t.addSeparator(n),t.addItem(mxResources.get("transparent"),null,function(){e.toggleCellStyles("endFill",!0)},n,null,!0),t.addSeparator(n),this.promptChange(t,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(t,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(t,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(t,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(t,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),t.addSeparator(n),t.addItem(mxResources.get("transparent"),null,function(){e.toggleCellStyles("startFill",!0)},n,null,!0),t.addSeparator(n),this.promptChange(t,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,t){var n=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(n||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,t,n),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,t,n),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,t,n),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,t,n),e.addSeparator(t),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,t,n),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,t,n)),(a||e.showDisabled)&&(e.addSeparator(t),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,t,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,t,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItem(e,"style",t)}))),this.put("text",new Menu(mxUtils.bind(this,function(t,n){var a=this.get("text").enabled;t.addSeparator(n),this.addSubmenu("fontFamily",t,n),this.addSubmenu("fontSize",t,n),this.addMenuItems(t,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",t,n),this.addMenuItem(t,"wordWrap",n),t.addSeparator(n),this.promptChange(t,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,a),t.addItem(mxResources.get("hide"),null,function(){e.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,a)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(t,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(t,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(t,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(t,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),t.addSeparator(n),this.addSubmenu("position",t,n),this.addSubmenu("spacing",t,n),t.addSeparator(n);var a=this.get("text").enabled;t.addItem(mxResources.get("vertical"),null,function(){e.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,a)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,t),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,t),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,t),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,t),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,t)}))),this.put("direction",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("flipH"),null,function(){e.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),t.addItem(mxResources.get("flipV"),null,function(){e.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(t,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("leftAlign"),null,function(){e.alignCells(mxConstants.ALIGN_LEFT)},n),t.addItem(mxResources.get("center"),null,function(){e.alignCells(mxConstants.ALIGN_CENTER)},n),t.addItem(mxResources.get("rightAlign"),null,function(){e.alignCells(mxConstants.ALIGN_RIGHT)},n),t.addSeparator(n),t.addItem(mxResources.get("topAlign"),null,function(){e.alignCells(mxConstants.ALIGN_TOP)},n),t.addItem(mxResources.get("middle"),null,function(){e.alignCells(mxConstants.ALIGN_MIDDLE)},n),t.addItem(mxResources.get("bottomAlign"),null,function(){e.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var t=new mxHierarchicalLayout(e,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(t,!0,!0)}),n),t.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var t=new mxHierarchicalLayout(e,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(t,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],t)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["toFront","toBack","-"],t),this.addSubmenu("layout",e,t),e.addSeparator(t),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],t)}))),this.put("view",new Menu(mxUtils.bind(this,function(t,n){this.addMenuItems(t,["actualSize"],n),t.addSeparator();for(var a=[.25,.5,.75,1,2,4],i=0;i<a.length;i++)!function(a){t.addItem(100*a+"%",null,function(){e.zoomTo(a)},n)}(a[i]);this.addMenuItems(t,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],n)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],t)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,t){this.menus[e]=t},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,t,n){var a=this.get(e).enabled;if(t.showDisabled||a){var i=t.addItem(mxResources.get(e),null,null,n,null,a);this.addMenu(e,t,i)}},Menus.prototype.addMenu=function(e,t,n){var a=this.get(e);null!=a&&(t.showDisabled||a.enabled)&&this.get(e).execute(t,n)},Menus.prototype.styleChange=function(e,t,n,a,i,o){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var t=0;t<n.length;t++)e.setCellStyles(n[t],a[t])}finally{e.getModel().endUpdate()}}),o,i)},Menus.prototype.promptChange=function(e,t,n,a,i,o,s){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,t=a,o=e.getView().getState(e.getSelectionCell());null!=o&&(t=o.style[i]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+(n.length>0?" "+n:""),t))&&t.length>0&&e.setCellStyles(i,t)}),o,null,s)},Menus.prototype.addMenuItem=function(e,t,n){var a=this.editorUi.actions.get(t);if(null!=a&&(e.showDisabled||a.enabled)){var i=e.addItem(a.label,null,a.funct,n,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i}return null},Menus.prototype.addShortcut=function(e,t){if(null!=t.shortcut){var n=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,t.shortcut),n.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var t=e.firstChild.nextSibling;t.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,t,n){for(var a=0;a<t.length;a++)"-"==t[a]?e.addSeparator(n):this.addMenuItem(e,t[a],n)},Menus.prototype.createPopupMenu=function(e,t,n){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),a.getSelectionCount()>0){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(t=a.getSelectionCell())&&a.getModel().isEdge(t)){var o=a.selectionCellsHandler.getHandler(t);if(o instanceof mxEdgeHandler&&null!=o.bends&&o.bends.length>2){var s=o.getHandleForEvent(new mxMouseEvent(n)),r=this.editorUi.actions.get("removeWaypoint");r.handler=o,r.index=s,i=s>0&&s<o.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else a.getSelectionCount()>1&&(e.addSeparator(),this.addMenuItems(e,["group"]));e.addSeparator(),1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){for(var t=new Menubar(this.editorUi,e),n=["file","edit","view","format","text","arrange","help"],a=0;a<n.length;a++)t.addMenu(mxResources.get(n[a]),this.get(n[a]).funct);return t},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,t){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.className="geItem",mxUtils.write(n,e),this.addMenuHandler(n,t),this.container.appendChild(n),n},Menubar.prototype.getOffset=function(e){return e=e.getBoundingClientRect(),{left:e.left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(e,t){if(null!=t){var n=!0,a=mxUtils.bind(this,function(a){if(n&&null==e.enabled||e.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var i=new mxPopupMenu(t);i.div.className+=" geMenubarMenu",i.smartSeparators=!0,i.showDisabled=!0,i.autoExpand=!0,i.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(i,arguments),i.destroy(),this.currentMenu=null,this.currentElt=null});var o=this.getOffset(e).left,s=this.getOffset(e).top+e.offsetHeight;i.popup(o,s,null,a),this.currentMenu=i,this.currentElt=e}n=!0,mxEvent.consume(a)});mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(t){null!=this.currentMenu&&this.currentElt!=e&&(this.hideMenu(),a(t))})),mxEvent.addListener(e,"mousedown",mxUtils.bind(this,function(){n=this.currentElt!=e})),mxEvent.addListener(e,"click",a)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,t){this.funct(e,t)},Toolbar.prototype.init=function(){this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]);this.editorUi.editor.graph},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,t,n,a){var i=this.editorUi.menus.get(a),o=this.addMenuFunction(e,t,n,i.funct);return i.addListener("stateChanged",function(){o.setEnabled(i.enabled)}),o},Toolbar.prototype.addMenuFunction=function(e,t,n,a){var i=n?this.createLabel(e):this.createButton(e);return this.initElement(i,t),this.addMenuHandler(i,n,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var t=0;t<e.length;t++){var n=e[t];"-"==n?this.addSeparator():this.addItem("geSprite-"+n.toLowerCase(),n)}},Toolbar.prototype.addItem=function(e,t){var n=this.editorUi.actions.get(t),a=null;return null!=n&&((a=this.addButton(e,n.label,n.funct)).setEnabled(n.enabled),n.addListener("stateChanged",function(){a.setEnabled(n.enabled)})),a},Toolbar.prototype.addButton=function(e,t,n){var a=this.createButton(e);return this.initElement(a,t),this.addClickHandler(a,n),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(e){var t=this.editorUi.editor.graph,n=function(){for(var n=!t.isSelectionEmpty(),a=0;a<e.length;a++)e[a].setEnabled(n)};t.getSelectionModel().addListener(mxEvent.CHANGE,n),n()},Toolbar.prototype.addEdgeSelectionHandler=function(e){var t=this.editorUi.editor.graph,n=function(){var n=!1;if(!t.isSelectionEmpty())for(var a=t.getSelectionCells(),i=0;i<a.length;i++)if(t.getModel().isEdge(a[i])){n=!0;break}for(i=0;i<e.length;i++)e[i].setEnabled(n)};t.getSelectionModel().addListener(mxEvent.CHANGE,n),n()},Toolbar.prototype.initElement=function(e,t){e.setAttribute("tabindex","0"),null!=t&&e.setAttribute("title",t),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(e){var t=e.className;e.setEnabled=function(n){e.enabled=n,e.className=n?t:t+" geDisabled"},e.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(e,t){null!=t&&mxEvent.addListener(e,"click",function(n){e.enabled&&t(n),mxEvent.consume(n)})},Toolbar.prototype.createButton=function(e){var t=document.createElement("a");t.setAttribute("href","javascript:void(0);"),t.className="geButton";var n=document.createElement("div");return n.className="geSprite "+e,t.appendChild(n),t},Toolbar.prototype.createLabel=function(e,t){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.className="geLabel",mxUtils.write(n,e),n},Toolbar.prototype.addMenuHandler=function(e,t,n,a){if(null!=n){var i=this.editorUi.editor.graph,o=null;mxEvent.addListener(e,"click",mxUtils.bind(this,function(s){(null==e.enabled||e.enabled)&&(i.panningHandler.hideMenu(),(o=new mxPopupMenu(n)).div.className+=" geToolbarMenu",o.showDisabled=a,o.labels=t,o.autoExpand=!0,o.popup(e.offsetLeft,e.offsetTop+e.offsetHeight+34,null,s),this.currentMenu=o),mxEvent.consume(s)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="content pv-24 ph-16">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="text pt-16" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n    <div class="pb-16" layout="row" layout-align="space-between center">\n        <div class="info">\n            <div class="title secondary-text" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h2" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n\n        <div class="media ml-16">\n            <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n        </div>\n    </div>\n\n    <div class="text">\n        {{card.text}}\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n    <div class="header p-16" layout="row" layout-align="start center">\n        <div ng-if="card.avatar">\n            <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n        </div>\n\n        <div class="info">\n            <div class="title" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="text p-16" ng-if="card.text">\n        {{card.text}}\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n    <div layout="column" layout-align="space-between">\n        <div class="info">\n            <div class="title h1" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n\n        <div class="cta">\n            <md-button class="m-0">{{card.cta}}</md-button>\n        </div>\n    </div>\n\n    <div class="media pl-16">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n    <div class="info white-fg ph-16 pv-24">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="text" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n    <div class="info">\n        <div class="title secondary-text" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="event h2" ng-if="card.event">\n            {{card.event}}\n        </div>\n    </div>\n\n    <div class="media ml-16">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n    <div class="content pv-24 ph-16">\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="title h2" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="text pt-8" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n    <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n        <div class="p-16">\n            <div class="title h1" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n\n            <div class="text h4 pt-8" ng-if="card.text">\n                {{card.text}}\n            </div>\n        </div>\n\n        <div>\n            <md-divider></md-divider>\n            <div class="p-8" layout="row">\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n            </div>\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="content pv-24 ph-16">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="buttons pt-16">\n            <md-button class="m-0">{{card.button1}}</md-button>\n            <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n        </div>\n\n        <div class="text pt-16" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n    <div class="header p-16" layout="row" layout-align="start center">\n        <div ng-if="card.avatar">\n            <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n        </div>\n\n        <div class="info">\n            <div class="title" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n\n        </div>\n    </div>\n\n    <div class="text ph-16 pb-16" ng-if="card.text">\n        {{card.text}}\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="buttons m-8">\n        <md-button class="md-icon-button mr-16" aria-label="Favorite">\n            <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n        </md-button>\n        <md-button class="md-icon-button" aria-label="Share">\n            <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n        </md-button>\n    </div>\n\n</div>'),e.put("app/core/directives/ms-dash-clock/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            \x3c!-- Theme START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.THEME">Theme</label>\n                <md-select ng-model="vm.options.data.theme" md-autofocus>\n                    <md-option value="light"> {{ \'TOOLS.LIGHT\' | translate }}</md-option>\n                    <md-option value="dark"> {{ \'TOOLS.DARK\' | translate }}</md-option>\n                </md-select>\n            </md-input-container>\n            \x3c!-- Theme END --\x3e\n\n            \x3c!-- Timezone START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TIMEZONE">Timezone</label>\n                <md-select ng-model="vm.options.data.gmtValue" md-autofocus>\n                    <md-option value="-12.00">−12.00</md-option>\n                    <md-option value="-11.00">−11.00</md-option>\n                    <md-option value="-10.00">−10.00</md-option>\n                    <md-option value="-9.30">−09.30</md-option>\n                    <md-option value="-9.00">−09.00</md-option>\n                    <md-option value="-8.00">−08.00</md-option>\n                    <md-option value="-7.00">−07.00</md-option>\n                    <md-option value="-6.00">−06.00</md-option>\n                    <md-option value="-5.00">−05.00</md-option>\n                    <md-option value="-4.3">−04.30</md-option>\n                    <md-option value="-4.00">−04.00</md-option>\n                    <md-option value="-3.3">−03.30</md-option>\n                    <md-option value="-3.00">−03.00</md-option>\n                    <md-option value="-2.00">−02.00</md-option>\n                    <md-option value="-1.00">−01.00</md-option>\n                    <md-option value="0.00">GMT (00.00)</md-option>\n                    <md-option value="1.00">+01.00</md-option>\n                    <md-option value="2.00">+02.00</md-option>\n                    <md-option value="3.00">+03.00</md-option>\n                    <md-option value="3.30">+03.30</md-option>\n                    <md-option value="4.00">+04.00</md-option>\n                    <md-option value="4.30">+04.30</md-option>\n                    <md-option value="5.00">+05.00</md-option>\n                    <md-option value="5.30">+05.30</md-option>\n                    <md-option value="5.45">+05.45</md-option>\n                    <md-option value="6.00">+06.00</md-option>\n                    <md-option value="6.30">+06.30</md-option>\n                    <md-option value="7.00">+07.00</md-option>\n                    <md-option value="8.00">+08.00</md-option>\n                    <md-option value="8.45">+08.45</md-option>\n                    <md-option value="9.00">+09.00</md-option>\n                    <md-option value="9.30">+09.30</md-option>\n                    <md-option value="10.00">+10.00</md-option>\n                    <md-option value="10.30">+10.30</md-option>\n                    <md-option value="11.00">+11.00</md-option>\n                    <md-option value="11.30">+11.30</md-option>\n                    <md-option value="12.00">+12.00</md-option>\n                    <md-option value="12.45">+12.45</md-option>\n                    <md-option value="13.00">+13.00</md-option>\n                    <md-option value="14.00">+14.00</md-option>\n                </md-select>\n            </md-input-container>\n            \x3c!-- Timezone END --\x3e\n\n            \x3c!-- Digital Format START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DIGITAL_FORMAT">Digital Format</label>\n                <input type="text" name="digitalFormat" ng-model="vm.options.data.digitalFormat">\n            </md-input-container>\n            \x3c!-- Digital Format END --\x3e\n\n\n            \x3c!-- Description START --\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.options.data.description">\n            </md-input-container>\n            \x3c!-- Description END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-clock/ms-dash-clock.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex>\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ \'TOOLS.CLOCK\' | translate }}</span>\n            </div>\n        </div>\n\n        <div class="pt-16 pb-32" layout="column" layout-align="center center">\n            <div>\n                <ds-widget-clock theme="options.data.theme" digital-format="options.data.digitalFormat" gmt-offset="options.data.gmtValue" show-gmt-info></ds-widget-clock>\n            </div>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-counter/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <md-tabs md-dynamic-height md-border-bottom>\n                \x3c!-- Layout Tab START --\x3e\n                <md-tab label="{{\'TOOLS.LAYOUT\' | translate}}">\n\n                    \x3c!-- Title START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.TITLE">Title</label>\n                        <input type="text" name="title" ng-model="vm.options.data.title" required>\n                        <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    \x3c!-- Title END --\x3e\n\n                    \x3c!-- Background START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.background" label="{{\'TOOLS.BACKGROUND_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Background  END--\x3e\n\n                    \x3c!-- Foreground START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.foreground" label="{{\'TOOLS.FOREGROUND_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Foreground END--\x3e\n\n                    \x3c!-- Foreground Title START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.foregroundTitle" label="{{\'TOOLS.FOREGROUND_TITLE_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Foreground END--\x3e\n\n                    \x3c!-- Description Title START --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.DESCRIPTION">Description</label>\n                        <input type="text" name="description" ng-model="vm.options.data.description">\n                    </md-input-container>\n                    \x3c!-- Description END --\x3e\n\n                </md-tab>\n                \x3c!-- Layout Tab END --\x3e\n\n                \x3c!-- Query Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_QUERY\' | translate}}">\n                    \x3c!-- SELECT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.SELECT">Select</label>\n                        <input type="text" name="select" ng-model="vm.options.data.query.fields" required>\n                    </md-input-container>\n                    \x3c!-- <md-chips placeholder="{{\'TOOLS.FIELDS\' | translate}}" ng-model="vm.options.data.query.fields" name="fields" md-max-chips="1" m d-enable-chip-edit="true"></md-chips> --\x3e\n                    \x3c!-- SELECT END --\x3e\n\n                    \x3c!-- FROM  START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.FROM">From</label>\n                        <input type="text" name="from" ng-model="vm.options.data.query.from" required>\n                    </md-input-container>\n                    \x3c!-- FROM END --\x3e\n\n                    \x3c!-- WHERE START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.WHERE">Where</label>\n                        <input type="text" name="where" ng-model="vm.options.data.query.where">\n                    </md-input-container>\n                    \x3c!-- WHERE END --\x3e\n\n                </md-tab>\n                \x3c!-- Query Tab END --\x3e\n            </md-tabs>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-counter/ms-dash-counter.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front ng-style="{background: options.data.background}">\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20" ng-switch="result.error">\n                <md-icon ng-switch-default md-font-icon="icon-timer-sand"></md-icon>\n                <md-icon ng-switch-when="false" class="green-fg" md-font-icon="icon-check"></md-icon>\n                <md-icon ng-switch-when="true" class="red-fg" md-font-icon="icon-block-helper"></md-icon>\n            </div>\n        </div>\n\n        <div class="pt-8 pb-32" layout="column" layout-align="center center">\n            <div ng-if="!result.error" class="font-size-52 line-height-72" ng-style="{color: options.data.foreground}">\n                {{ result.value || 0 }}\n            </div>\n            <div ng-if="!result.error" class="h3 secondary-text font-weight-500" ng-style="{color: options.data.foregroundTitle}">\n                {{ options.data.title || \'TOOLS.TITLE\' | translate }}\n            </div>\n            <div ng-if="result.error" class="padding-20">\n                <span>{{result.message}}</span>\n            </div>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-iframe/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            \x3c!-- Title START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TITLE">Title</label>\n                <input type="text" name="title" ng-model="vm.options.data.title" required>\n                <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            \x3c!-- Title END --\x3e\n\n            \x3c!-- Title START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="url" ng-model="vm.options.data.url" required>\n                <div ng-messages="dashboarditemForm.url.$error" ng-show="dashboarditemForm.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">URL field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            \x3c!-- Title END --\x3e\n\n\n            \x3c!-- Description START --\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.options.data.description">\n            </md-input-container>\n            \x3c!-- Description END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-iframe/ms-dash-iframe.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20">\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ options.data.title || \'TOOLS.TITLE\' | translate }}</span>\n            </div>\n        </div>\n\n        <div layout="row" layout-fill style="min-height: 1000px">\n            <iframe flex ng-src="{{getTrustSrc(options.data.url)}}" allowfullscreen frameborder="0"></iframe>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-table/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <md-tabs md-dynamic-height md-border-bottom>\n                \x3c!-- Layout Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_LAYOUT\' | translate}}">\n\n                    \x3c!-- Title START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.TITLE">Title</label>\n                        <input type="text" name="title" ng-model="vm.options.data.title" required>\n                        <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    \x3c!-- Title END --\x3e\n\n                    \x3c!-- Description START --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.DESCRIPTION">Description</label>\n                        <input type="text" name="description" ng-model="vm.options.data.description">\n                    </md-input-container>\n                    \x3c!-- Description END --\x3e\n\n                </md-tab>\n                \x3c!-- Layout Tab END --\x3e\n\n                \x3c!-- Query Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_QUERY\' | translate}}">\n\n                    \x3c!-- SELECT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.SELECT">Select</label>\n                        <input type="text" name="select" ng-model="vm.options.data.query.fields" required>\n                    </md-input-container>\n                    \x3c!-- <md-chips placeholder="{{\'TOOLS.FIELDS\' | translate}}" ng-model="vm.options.data.query.fields" name="fields" md-max-chips="1" m d-enable-chip-edit="true"></md-chips> --\x3e\n                    \x3c!-- SELECT END --\x3e\n\n                    \x3c!-- FROM  START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.FROM">From</label>\n                        <input type="text" name="from" ng-model="vm.options.data.query.from" required>\n                    </md-input-container>\n                    \x3c!-- FROM END --\x3e\n\n                    \x3c!-- WHERE START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.WHERE">Where</label>\n                        <input type="text" name="where" ng-model="vm.options.data.query.where">\n                    </md-input-container>\n                    \x3c!-- WHERE END --\x3e\n\n                    \x3c!-- LIMIT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.LIMIT">Limit</label>\n                        <input type="text" name="limit" ng-model="vm.options.data.query.limit">\n                    </md-input-container>\n                    \x3c!-- LIMIT END --\x3e\n\n                </md-tab>\n                \x3c!-- Query Tab END --\x3e\n            </md-tabs>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-table/ms-dash-table.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20" ng-switch="result.error">\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ options.data.title || \'TOOLS.TITLE\' | translate }}</span>\n                <md-icon ng-switch-default md-font-icon="icon-timer-sand"></md-icon>\n                <md-icon ng-switch-when="false" class="green-fg" md-font-icon="icon-check"></md-icon>\n                <md-icon ng-switch-when="true" class="red-fg" md-font-icon="icon-block-helper"></md-icon>\n            </div>\n        </div>\n\n        <div layout="row" ng-if="!result.error">\n            <table md-table>\n                <thead md-head>\n                    <tr md-row>\n                        <th md-column ng-repeat="field in result.fields"><span> {{ field }} </span></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-repeat="row in result.rows">\n                        <td md-cell ng-repeat="(key, value) in row"> {{value}} </td>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n        <div layout="row" ng-if="result.error">\n            <span class="padding-20">{{result.message}}</span>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n            <md-tooltip>{{ message || \'TOOLS.TOOLS_VALID_QUERY\' | translate }}</md-tooltip>\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n    <div flex-gt-sm="50" flex="45">\n        <md-input-container class="md-icon-float md-block margin-0">\n            <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n            <input ng-model="query" type="text" placeholder="Search...">\n        </md-input-container>\n        <md-content class="border h-300">\n            <md-list class="md-dense" layout-fill layout-align="center center">\n                <md-list-item class="md-3-line" ng-repeat="item in options.items | filter: query | orderBy: options.orderBy" ng-click="transfer(options.items, options.selectedItems, options.items.indexOf(item), false)">\n                    <div class="md-list-item-text" layout="column">\n                        <h3 ng-if="options.line1">{{ item[options.line1] || \'\' }}</h3>\n                        <h4 ng-if="options.line2">{{ item[options.line2] || \'\' }}</h4>\n                        <p ng-if="options.line3">{{ item[options.line3] || \'\' }}</p>\n                    </div>\n                    <md-icon md-font-icon="icon-arrow-right-bold" aria-label="swap"></md-icon>\n                    <md-divider></md-divider>\n                </md-list-item>\n            </md-list>\n        </md-content>\n        <div class="margin-10" layout="row">\n            <span class="h4" flex>{{options.labelAll || \'All Items\'}} ({{options.items.length}})</span>\n            <md-icon md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="transfer(options.items, options.selectedItems, -1, false)"></md-icon>\n        </div>\n    </div>\n\n    <div flex="10" layout="row" layout-align="center center">\n        <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n    </div>\n\n    <div flex-gt-sm="50" flex="45">\n        <md-input-container class="md-icon-float md-block margin-0">\n            <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n            <input ng-model="selectedQuery" type="text" placeholder="Search...">\n        </md-input-container>\n        <md-content class="border h-300">\n            <md-list class="md-dense" layout-fill layout-align="center center">\n                <md-list-item class="md-3-line" ng-repeat="item in options.selectedItems | filter: selectedQuery | orderBy: options.orderBy" ng-click="transfer(options.selectedItems, options.items, options.selectedItems.indexOf(item), true)">\n                    <md-icon md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n                    <div class="md-list-item-text" layout="column">\n                        <h3 ng-if="options.line1">{{ item[options.line1] || \'\' }}</h3>\n                        <h4 ng-if="options.line2">{{ item[options.line2] || \'\' }}</h4>\n                        <p ng-if="options.line3">{{ item[options.line3] || \'\' }}</p>\n                    </div>\n                    <md-divider></md-divider>\n                </md-list-item>\n            </md-list>\n        </md-content>\n        <div class="margin-10" layout="row">\n            <md-icon md-font-icon="icon-chevron-double-left" aria-label="swap" flex ng-click="transfer(options.selectedItems, options.items, -1, true)"></md-icon>\n            <span class="h4">{{options.labelSelected || \'Selected Items\'}} ({{options.selectedItems.length}})</span>\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n    <div id="ms-info-bar-message" ng-transclude flex></div>\n    <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n        <md-icon md-font-icon="icon-close s24"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n    <div ng-click="$mdOpenMenu($event)">\n        <ms-color-picker-button>\n            <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n                <span ng-show="vm.selectedColor.palette">\n                    {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n                </span>\n                <span ng-show="!vm.selectedColor.palette">\n                    Select Color\n                </span>\n            </md-button>\n        </ms-color-picker-button>\n    </div>\n\n    <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n        <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n            <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n                <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n            </md-button>\n\n            <span ng-if="vm.selectedColor.palette">\n                {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n            </span>\n\n            <span ng-if="!vm.selectedColor.palette">\n                Select Color\n            </span>\n\n            <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n                <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n            </md-button>\n        </header>\n\n        <div class="colors" ms-scroll>\n            <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n                <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n                    <span class="label">\n                        {{palette}}\n                    </span>\n                </div>\n            </div>\n\n            <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n                <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n                    <span class="label">\n                        {{hue}}\n                    </span>\n                    <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n                    </i>\n                </div>\n            </div>\n\n        </div>\n\n    </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n    <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n        <md-icon md-font-icon="icon-menu"></md-icon>\n    </md-button>\n</div>\n\n<ul class="horizontal">\n    <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n    <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n        <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title" ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n            <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n        </div>\n\n        <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}" ng-if="node.uisref && node.title">\n            <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n        </a>\n\n    </div>\n\n    <ul ng-if="vm.hasChildren && !vm.isHidden()">\n        <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n    </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n    <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n    <div ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n        <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n            <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n        </div>\n\n        <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n            <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n        </a>\n\n    </div>\n\n    <ul ng-if="vm.hasChildren && !vm.isHidden()">\n        <li ng-repeat="node in node.children" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n    </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-phonebar/ms-phonebar.html",'<div class="phonebar-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsPhonebar.mobileBarActive}">\n\n    <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n        <div class="phonebar hide show-gt-xs" layout="row" layout-align="start center">\n            <div layout="row" layout-align="center">\n                <md-input-container md-no-float>\n                    <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required placeholder="Insert Number">\n                </md-input-container>\n            </div>\n            <div layout="row" layout-align="center center">\n                <md-button class="md-icon-button">\n                    <md-icon md-font-icon="icon-phone" class="icon s24"></md-icon>\n                    <md-tooltip md-direction="bottom">CALL</md-tooltip>\n                </md-button>\n            </div>\n        </div>\n    </div>\n\n    <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsPhonebar.toggleMobileBar()">\n        <md-icon md-menu-origin md-font-icon="icon-phone" class="icon s24" ng-hide="MsPhonebar.mobileBarActive"></md-icon>\n        <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsPhonebar.mobileBarActive"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n    <label for="ms-search-bar-input">\n        <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar"\n                   ng-click="MsSearchBar.expand()"\n                   ng-if="!MsSearchBar.resultsLoading || MsSearchBar.collapsed">\n            <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n        </md-button>\n        <div class="ms-search-bar-loader" layout="row" layout-align="center center"\n             ng-if="MsSearchBar.resultsLoading && !MsSearchBar.collapsed">\n            <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n        </div>\n    </label>\n    <input id="ms-search-bar-input" type="text" placeholder="Search" flex ng-model="MsSearchBar.query" ng-model-options="MsSearchBar.queryOptions" ng-blur="MsSearchBar.blurCollapse()" ng-keydown="MsSearchBar.handleKeydown($event)">\n    <md-button class="ms-search-bar-collapser md-icon-button" ng-click="MsSearchBar.collapse()" aria-label="Collapse Search Bar">\n        <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n    </md-button>\n\n    <div class="ms-search-bar-results" ng-if="MsSearchBar.results" ms-scroll>\n        <div class="no-results" ng-if="MsSearchBar.results.length === 0">No Results!</div>\n\n        <div class="result" ng-repeat="result in MsSearchBar.results" ng-click="MsSearchBar.handleResultClick(result)" ng-mouseenter="MsSearchBar.handleMouseenter($index)" ng-mousedown="MsSearchBar.absorbEvent($event)" ng-class="{\'selected\': $index == MsSearchBar.selectedResultIndex}"\n            md-ink-ripple>\n            <div layout="row" layout-align="start center">\n                <div class="icon-container" layout="row" layout-align="center center">\n                    <i ng-if="result.icon" class="icon {{result.icon}}"></i>\n                    <div ng-if="!result.icon" class="square md-accent-bg"></div>\n                </div>\n                <div>\n                    <div class="title">{{result.title}}</div>\n                    <div class="description" ng-if="result.description">{{result.description}}</div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n    <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n        <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n            <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n                <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n                    <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n                    <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n                    <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n                </md-button>\n            </div>\n        </div>\n\n        <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n            <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut" ng-click="$mdOpenMenu($event)">\n                <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n                <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n            </md-button>\n\n            <md-menu-content>\n                <div id="ms-shortcut-add-menu">\n                    <div class="shortcut-search" layout="row" layout-align="start center">\n                        <div class="search-icon" layout="row" layout-align="center center" ng-if="!MsShortcuts.resultsLoading">\n                            <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n                        </div>\n                        <div class="shortcut-loader" layout="row" layout-align="center center" ng-if="MsShortcuts.resultsLoading">\n                            <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n                            </md-progress-circular>\n                        </div>\n\n                        <input type="text" placeholder="Search" flex ng-model="MsShortcuts.query" ng-model-options="MsShortcuts.queryOptions" ng-keydown="MsShortcuts.handleKeydown($event)">\n                    </div>\n\n                    <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n                        <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n                        <div class="result" ng-repeat="result in MsShortcuts.results" ng-click="MsShortcuts.handleResultClick(result)" ng-mouseenter="MsShortcuts.handleMouseenter($index)" ng-mousedown="MsShortcuts.absorbEvent($event)" ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n                            md-prevent-menu-close="md-prevent-menu-close" md-ink-ripple>\n                            <div layout="row" layout-align="start space-between">\n                                <div layout="row" layout-align="start center" flex>\n                                    <div class="icon icon-container" layout="row" layout-align="center center">\n                                        <i ng-if="result.icon" class="{{result.icon}}"></i>\n                                        <div ng-if="!result.icon" class="square md-accent-bg"></div>\n                                    </div>\n                                    <div>\n                                        <div class="title">{{result.title}}</div>\n                                    </div>\n                                </div>\n                                <md-icon md-font-icon="icon-pin" class="icon s18" ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </md-menu-content>\n        </md-menu>\n    </div>\n\n    <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n        <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n        <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n    <div class="ms-stepper-navigation-wrapper">\n        <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n            <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}"\n                ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n                <div class="step md-accent-bg" layout="row" layout-align="center center">\n                    <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n                    {{$index + 1}}\n                </span>\n                    <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n                    <i class="icon icon-check s18"></i>\n                </span>\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n                    <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n                </div>\n            </md-button>\n        </div>\n    </div>\n\n    <div class="ms-stepper-steps" ng-transclude></div>\n\n    <div class="ms-stepper-controls" layout="row" layout-align="center center">\n        <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n            Back\n        </md-button>\n\n        <div class="ms-stepper-dots">\n            <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n            </span>\n        </div>\n\n        <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n            Next\n        </md-button>\n\n        <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n            Submit\n        </md-button>\n    </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html","<md-button class=\"ms-stepper-navigation-item\" ng-class=\"{'current': MsStepper.isStepCurrent(stepInfo.stepNumber), 'valid': MsStepper.isStepValid(stepInfo.stepNumber), 'disabled': MsStepper.isStepDisabled(stepInfo.stepNumber), 'optional': MsStepper.isStepOptional(stepInfo.stepNumber)}\"\n"+'    ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n    <div class="step" layout="row" layout-align="center center">\n        <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n            <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n        </span>\n        <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n            <i class="icon icon-check-circle s18 md-accent-fg"></i>\n        </span>\n    </div>\n\n    <div layout="column" layout-align="start start">\n        <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n        <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n        <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n    </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n    <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n        Back\n    </md-button>\n\n    <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n        Next\n    </md-button>\n\n    <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n        Submit\n    </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n    <div class="ms-stepper-vertical-line"></div>\n    <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel">\n    <md-option ng-value="null">NONE</md-option>\n    <md-option ng-repeat="(key, value) in timezone" value="{{key}}">{{value.name}} ({{value.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n    <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n    <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n    <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n        <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n        <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n    </div>\n\n    <div id="content-container" flex layout="column">\n        <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n    </div>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n    <div id="main-container" layout="row" flex>\n        <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n        <div id="content-container" flex layout="column">\n            <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n        </div>\n\n        <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n    </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n    <div id="main-container" layout="row" flex>\n        <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n        <div id="content-container" flex layout="column">\n            <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n        </div>\n\n        <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n    </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n    <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n    <div id="content-container" flex layout="column">\n        <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n        <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n    </div>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n    <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n    <div class="ms-theme-options-list" layout="column">\n        <div class="theme-option layout-options">\n            <div class="option-title">Layout Style:</div>\n            <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n                <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n                    <div layout="column" layout-align="center center">\n                        <img ng-src="{{layoutStyle.figure}}">\n                        <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n                    </div>\n                </md-radio-button>\n            </md-radio-group>\n        </div>\n\n        <md-divider></md-divider>\n\n        <div class="theme-option">\n            <div class="option-title">Layout Mode:</div>\n            <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n                <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n                    {{layoutMode.label}}\n                </md-radio-button>\n            </md-radio-group>\n        </div>\n\n        <md-divider></md-divider>\n\n        <div class="theme-option color-palettes">\n            <div class="option-title">Color Palette:</div>\n            <div layout="row" layout-align="start start" layout-wrap>\n                <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}"\n                    ng-class="{active: vm.getActiveTheme().name === themeName}">\n                    <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n    <div class="content" layout="column" layout-align="center center">\n        <div class="error-code" translate="ERROR404.CODE">404</div>\n\n        <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n        \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n            <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n            <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n        </div> --\x3e\n\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n    </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n    <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n        <div class="error-code" translate="ERROR500.CODE">500</div>\n        <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n        <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n        </div>\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n        <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n    </div>\n    <pre ng-if="!vm.send">\n      {{vm.error}}\n    </pre>\n    <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n        <div class="error-code">#{{vm.code}}</div>\n        <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n        <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n    </div>\n</div>'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n    <div id="login-form-wrapper" layout="column" layout-align="center center">\n        <div id="login-form" class="md-whiteframe-8dp">\n\n            <img src="/api/settings/1/logo_login" alt="logo_login" />\n            \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n            <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n            <form name="loginForm" novalidate>\n                <md-input-container class="md-block" md-no-float>\n                    <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n                    <div ng-messages="loginForm.name.$error" role="alert" multiple>\n                        <div ng-message="required">\n                            <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n\n                <md-input-container class="md-block" md-no-float>\n                    <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n                    <div ng-messages="loginForm.password.$error" role="alert" multiple>\n                        <div ng-message="required">\n                            <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n\n                \x3c!-- <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="space-between center">\n                    <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n                        <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n                    </md-checkbox>\n                    <a ui-sref="app.pages_auth_forgot-password" class="forgot-password md-accent-color" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n                </div> --\x3e\n\n                <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message"><font color="red">{{vm.message}}</font></b>\n                <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOG IN" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n                    LOG IN\n                </md-button>\n            </form>\n\n            <div class="separator">\n                <span class="text" translate="LOGIN.OR">OR</span>\n            </div>\n\n            <md-button ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n                <div layout="row" layout-align="center center">\n                    <span>\n                        <md-icon md-font-icon="icon-google-plus" class="s16"></md-icon>\n                        <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n                    </span>\n                </div>\n            </md-button>\n        </div>\n    </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n    <form name="extractedReportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.extractedReport.name" required autofocus>\n                <div ng-messages="extractedReportForm.name.$error" ng-show="extractedReportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE"\n                    translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n                    ADD EXTRACTEDREPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-extractedReports-count">\n                    <span>{{vm.selectedExtractedReports.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="EXTRACTEDREPORTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" filename="extractedReports.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="EXTRACTEDREPORTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n                                <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n                                <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n                                <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.extractedReports.rows.length">\n                                <td md-cell colspan="9">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n                                <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n                                <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(extractedReport, $event)" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n                                                    Edit ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(extractedReport, $event)" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n                                                    Download ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(extractedReport, $event)" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n                                                    Delete ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n    <form name="metricForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.metric.name" required autofocus>\n                <div ng-messages="metricForm.name.$error" ng-show="metricForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.TABLE">Table</label>\n                <md-select ng-model="vm.metric.table" required>\n                    <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n                    <md-option ng-value="\'report_call\'">Call Report</md-option>\n                    <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n                    <md-option ng-value="\'chat_rooms\'">Chat Rooms</md-option>\n                    <md-option ng-value="\'report_chat_session\'">Chat Session Report</md-option>\n                    <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n                    <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n                    <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n                    <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n                    <md-option ng-value="\'fax_rooms\'">Fax Rooms</md-option>\n                    <md-option ng-value="\'report_fax_session\'">Fax Session Report</md-option>\n                    <md-option ng-value="\'report_integration\'">Integration Report</md-option>\n                    <md-option ng-value="\'mail_messages\'">Mail Messages</md-option>\n                    <md-option ng-value="\'mail_rooms\'">Mail Rooms</md-option>\n                    <md-option ng-value="\'report_mail_session\'">Mail Session Report</md-option>\n                    <md-option ng-value="\'report_member\'">Member Report</md-option>\n                    <md-option ng-value="\'openchannel_messages\'">Open Channel Messages</md-option>\n                    <md-option ng-value="\'openchannel_rooms\'">Open Channel Rooms</md-option>\n                    <md-option ng-value="\'report_openchannel_session\'">Open Channel Session Report</md-option>\n                    <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n                    <md-option ng-value="\'sms_messages\'">Sms Messages</md-option>\n                    <md-option ng-value="\'sms_rooms\'">Sms Rooms</md-option>\n                    <md-option ng-value="\'report_sms_session\'">Sms Session Report</md-option>\n                    <md-option ng-value="\'users\'">Users</md-option>\n                    <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n                    <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n                    <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n                    <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n                </md-select>\n                <div ng-messages="metricForm.table.$error" ng-show="metricForm.table.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.METRIC">Metric</label>\n                <input type="text" name="metric" ng-model="vm.metric.metric" required>\n                <div ng-messages="metricForm.metric.$error" ng-show="metricForm.metric.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.metric.description">\n                <div ng-messages="metricForm.description.$error" ng-show="metricForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n                    ADD METRIC\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-metrics-count">\n                    <span>{{vm.selectedMetrics.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="METRICS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" filename="metrics.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="METRICS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- METRIC TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.metrics.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n                                <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n                                <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(metric, $event)" translate="ANALYTICS.EDIT_METRIC">\n                                                    Edit Metric\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(metric, $event)" translate="ANALYTICS.DELETE_METRIC">\n                                                    Delete Metric\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / METRIC TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD METRIC BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input name="name" ng-model="vm.report.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="md-block">\n                <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n                <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n                    COPY REPORT\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newReport">\n                <label translate="ANALYTICS.TABLE">Table</label>\n                <md-select ng-model="vm.report.table" required>\n                    <md-option value="report_agent">Agent Report</md-option>\n                    <md-option value="report_call">Call Report</md-option>\n                    <md-option value="chat_messages">Chat Messages</md-option>\n                    <md-option value="chat_rooms">Chat Rooms</md-option>\n                    <md-option value="report_chat_session">Chat Session Report</md-option>\n                    <md-option value="cm_contacts">Contacts</md-option>\n                    <md-option value="report_square">CSquare Report</md-option>\n                    <md-option value="report_square_details">CSquare Details Report</md-option>\n                    <md-option value="fax_messages">Fax Messages</md-option>\n                    <md-option value="fax_rooms">Fax Rooms</md-option>\n                    <md-option value="report_fax_session">Fax Session Report</md-option>\n                    <md-option value="report_integration">Integration Report</md-option>\n                    <md-option value="mail_messages">Mail Messages</md-option>\n                    <md-option value="mail_rooms">Mail Rooms</md-option>\n                    <md-option value="report_mail_session">Mail Session Report</md-option>\n                    <md-option value="report_member">Member Report</md-option>\n                    <md-option value="openchannel_messages">Open Channel Messages</md-option>\n                    <md-option value="openchannel_rooms">Open Channel Rooms</md-option>\n                    <md-option value="report_openchannel_session">Open Channel Session Report</md-option>\n                    <md-option value="report_queue">Queue Report</md-option>\n                    <md-option value="sms_messages">Sms Messages</md-option>\n                    <md-option value="sms_rooms">Sms Rooms</md-option>\n                    <md-option value="report_sms_session">Sms Session Report</md-option>\n                    <md-option value="users">Users</md-option>\n                    <md-option value="voice_recordings">Voice Recordings</md-option>\n                    <md-option value="cm_hopper">Dialer Hopper Processing</md-option>\n                    <md-option value="cm_hopper_history">Dialer Hopper Logs</md-option>\n                    <md-option value="cm_hopper_final">Dialer Hopper Final</md-option>\n                </md-select>\n                <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.report.description">\n                <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n                    ADD REPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n    <div layout="row">\n        <md-input-container class="md-block" flex>\n            <label translate="ANALYTICS.OPERATOR">Operator</label>\n            <md-select ng-model="group.operator" required>\n                <md-option value="AND">AND</md-option>\n                <md-option value="OR">OR</md-option>\n            </md-select>\n            <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n                <div ng-message="required">\n                    <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                </div>\n            </div>\n        </md-input-container>\n        <md-input-container class="md-block">\n            <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n                <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}</md-button>\n        </md-input-container>\n        <md-input-container class="md-block">\n            <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n                <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}</md-button>\n        </md-input-container>\n        <div flex></div>\n        <md-input-container class="md-block" ng-if="parent">\n            <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n                <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}</md-button>\n        </md-input-container>\n    </div>\n    <div layout="column" ng-repeat="rule in group.rules track by $index">\n        <div layout="row" ng-if="!rule.group">\n            <md-input-container class="md-block" flex>\n                <label translate="ANALYTICS.COLUMN">COLUMN</label>\n                <md-select name="field" ng-model="rule.field" required>\n                    <md-option ng-repeat="column in vm_rc.columns" ng-value="column">{{column}}</md-option>\n                </md-select>\n                <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" flex>\n                <label translate="ANALYTICS.CONDITION">CONDITION</label>\n                <md-select name="condition" ng-model="rule.condition" required>\n                    <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n                </md-select>\n                <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n                <label translate="ANALYTICS.VALUE">VALUE</label>\n                <input type="text" name="value" ng-model="rule.value" required md-autofocus>\n                <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" flex>\n                <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </md-input-container>\n        </div>\n        <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n    </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n    <form name="reportFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{vm.title}}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.TYPE">Type</label>\n                <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n                    <md-option value="column">Select a column</md-option>\n                    <md-option value="metric">Select an existing metric</md-option>\n                    <md-option value="custom">Write a custom metric</md-option>\n                </md-select>\n                <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div ng-switch on="vm.reportField.type">\n                <md-input-container class="md-block" ng-switch-when="column">\n                    <label translate="ANALYTICS.COLUMN">Column Name</label>\n                    <md-select name="column" ng-model="vm.reportField.field" required>\n                        <md-option ng-repeat="column in vm.columns" ng-value="column">{{column}}</md-option>\n                    </md-select>\n                    <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" ng-switch-when="metric">\n                    <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n                    <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n                        <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n                    </md-select>\n                    <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" ng-switch-when="custom">\n                    <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n                    <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n                    <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.ALIAS">Alias</label>\n                <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n                <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n                <label translate="ANALYTICS.FUNCTION">Function</label>\n                <md-select name="function" ng-model="vm.reportField.function">\n                    <md-option ng-value="null">No Function</md-option>\n                    <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{vm.reportField.field ? function.option(vm.reportField.field) : function.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n                <label translate="ANALYTICS.FORMAT">Format</label>\n                <md-select name="format" ng-model="vm.reportField.format">\n                    <md-option ng-value="null">No Format</md-option>\n                    <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{vm.reportField.field ? format.option(vm.reportField.field) : format.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.GROUP_BY">Group By</label>\n                <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n                    <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{vm.reportField.field ? gb.option(vm.reportField.field) : gb.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.ORDER_BY">Order By</label>\n                <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n                    <md-option ng-value="null">No Order</md-option>\n                    <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{vm.reportField.field ? ob.option(vm.reportField.field) : ob.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n                    ADD REPORT FIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="report-image" hide-xs>\n                    <img ng-src="assets/images/business/reports.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.report.id}} {{vm.report.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span>{{vm.report.description}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="ANALYTICS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.report.name" required md-autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.report.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.FIELDS">FIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n                                <div class="md-toolbar-tools">\n                                    <div layout="row" layout-align="start center">\n                                        <div layout="column" layout-align="start start">\n                                            <div class="md-subhead" translate="ANALYTICS.FIELDS">\n                                                <span translate="ANALYTICS.FIELDS">FIELDS</span>\n                                            </div>\n                                            <div class="h4">\n                                                <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n                                    <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n                                        <tr md-row>\n                                            <th md-column width="10px">\n                                                <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n                                            </th>\n                                            <th md-column>Type</th>\n                                            <th md-column>Column or Metric</th>\n                                            <th md-column>Alias</th>\n                                            <th md-column>Function</th>\n                                            <th md-column>Format</th>\n                                            <th md-column>Group By</th>\n                                            <th md-column>Order By</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body ng-sortable="vm_rf.sortableTable">\n                                        <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n                                            <td md-cell class="handle">\n                                                <md-icon md-font-icon="icon-drag-vertical" class="s16">\n                                            </td>\n                                            <td md-cell>\n                                                <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n                                                <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n                                                <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n                                            </td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? \'No Available\' : vm_rf.functions[reportField.function].option(reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? \'No Available\' : vm_rf.formats[reportField.format].option(reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{vm_rf.groupBy[reportField.groupBy].option(reportField.MetricId ? vm_rf.getMetricValue(reportField.MetricId) : reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{vm_rf.orderBy[reportField.orderBy].option(reportField.MetricId ? vm_rf.getMetricValue(reportField.MetricId) : reportField.field) || \'No\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n                                                                Edit Report\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n                                                                Delete Report\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report)">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n                            </div>\n                            <form name="conditionsForm" novalidate>\n                                <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n                            </form>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab md-on-select="vm.previewReport()">\n                <md-tab-label>\n                    <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                            <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n                        </div>\n                        <dl ng-if="vm.error">\n                            <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                            <dd>{{vm.error.sql}}</dd>\n                            <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                            <dd>{{vm.error.msg}}</dd>\n                        </dl>\n                        <md-table-container ng-if="!vm.error">\n                            <table md-table>\n                                <thead md-head>\n                                    <tr md-row>\n                                        <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-repeat="row in vm.rows">\n                                        <td md-cell ng-repeat="(key, value) in row">{{value}}</td>\n                                    </tr>\n                                    <tr md-row ng-if="!vm.rows.length">\n                                        <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab md-on-select="vm.queryReport()">\n                <md-tab-label>\n                    <span>Query</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                            <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n                        </div>\n                        <dl ng-if="vm.error">\n                            <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                            <dd>{{vm.error.sql}}</dd>\n                            <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                            <dd>{{vm.error.msg}}</dd>\n                        </dl>\n                        <div ng-if="!vm.error">\n                            {{vm.queryResult}}\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div class="md-block">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                    <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n                </div>\n                <dl ng-if="vm.error">\n                    <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                    <dd>{{vm.error.sql}}</dd>\n                    <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                    <dd>{{vm.error.msg}}</dd>\n                </dl>\n                <md-table-container ng-if="!vm.error">\n                    <table md-table>\n                        <thead md-head>\n                            <tr md-row>\n                                <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-repeat="row in vm.rows">\n                                <td md-cell ng-repeat="(key, value) in row">{{value}}</td>\n                            </tr>\n                            <tr md-row ng-if="!vm.rows.length">\n                                <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div flex></div>\n            <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n                CLOSE\n            </md-button>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-reports-count">\n                    <span>{{vm.selectedReports.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedReports" filename="reports.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button ng-if="vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div layout="column" flex="30">\n            <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n                \x3c!-- SEARCH --\x3e\n                <div layout="row" layout-align="start center">\n                    <label for="searchFolder" class="m-0">\n                        <md-icon md-font-icon="icon-magnify"></md-icon>\n                    </label>\n                    <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n                        <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n                    </md-input-container>\n                </div>\n                \x3c!-- / SEARCH --\x3e\n            </md-card>\n            <md-card class="padding-10 scrollable" ms-scroll>\n                <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n            </md-card>\n            <md-card class="padding-10 scrollable" ms-scroll>\n                <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n            </md-card>\n        </div>\n        <md-card flex="70">\n            <md-toolbar class="md-table-toolbar md-default">\n                <div class="md-toolbar-tools">\n                    <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n                    <div flex></div>\n                    <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n                    <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n                        <md-button ng-if="vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n                            <md-icon md-font-icon="icon-upload"></md-icon>\n                        </md-button>\n                    </div>\n                    <md-button ng-if="vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n                        <md-icon md-font-icon="icon-plus"></md-icon>\n                    </md-button>\n                </div>\n            </md-toolbar>\n            <md-table-container>\n                <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n                    <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n                        <tr md-row>\n                            <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n                            <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                            <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n                            <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n                            <th md-column width="10px"></th>\n                        </tr>\n                    </thead>\n                    <tbody md-body>\n                        <tr md-row ng-hide="vm.reports.rows.length">\n                            <td md-cell colspan="5">\n                                <div layout="row" layout-align="center center">\n                                    <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                </div>\n                            </td>\n                        </tr>\n                        <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n                            <td md-cell class="actions">\n                                <md-menu>\n                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                    </md-button>\n\n                                    <md-menu-content width="3">\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n                                                Copy Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n                                                Preview Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n                                                Run Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n                                                Download Json Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-divider ng-if="vm.currentNode.custom"></md-menu-divider>\n                                        <md-menu-item ng-if="vm.currentNode.custom">\n                                            <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n                                                Edit Report\n                                            </md-button>\n                                        </md-menu-item>\n\n                                        <md-menu-item ng-if="vm.currentNode.custom">\n                                            <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n                                                Delete Report\n                                            </md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n            </md-table-container>\n\n            <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n        </md-card>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input name="name" ng-model="vm.export.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.FORMAT">FORMAT</label>\n                <md-select name="format" ng-model="vm.export.output" required>\n                    <md-option value="csv">CSV</md-option>\n                    <md-option value="xls">Excel (XLS)</md-option>\n                    <md-option value="pdf">PDF</md-option>\n                </md-select>\n                <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div layout="row">\n                <div class="md-block" flex>\n                    <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n                        <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n                            </div>\n                            <div ng-message="maxDate">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n                        <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n                            </div>\n                            <div ng-message="minDate">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n            </div>\n            <div layout="row">\n                <div class="md-block" flex>\n                    <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n                        <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n                        <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.runReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n                    RUN REPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n                    <md-icon md-font-icon="icon-refresh"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n    <form name="odbcForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.odbc.name" required autofocus>\n                <div ng-messages="odbcForm.name.$error" ng-show="odbcForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DSN">DSN</label>\n                <input type="text" name="dsn" ng-model="vm.odbc.dsn" required>\n                <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n                <div ng-messages="odbcForm.dsn.$error" ng-show="odbcForm.dsn.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.odbc.description">\n                <div ng-messages="odbcForm.description.$error" ng-show="odbcForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n                    ADD ODBC\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-odbcs-count">\n                    <span>{{vm.selectedODBC.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ODBC.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" filename="odbcs.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="ODBC.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- ODBC TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.odbcs.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n                                <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n                                <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(odbc, $event)" translate="CALLYSQUARE.EDIT_ODBC">\n                                                    Edit Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestOdbc(odbc, $event)" translate="CALLYSQUARE.TEST_ODBC">\n                                                    Test Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(odbc, $event)" translate="CALLYSQUARE.DELETE_ODBC">\n                                                    Delete Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / ODBC TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD ODBC BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n    <form name="projectForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{vm.title | translate}}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n                <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input name="description" ng-model="vm.project.description">\n                <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.openFromEditor" class="md-block">\n                \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n                    ADD PROJECT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="dialogForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n                <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name  | ucfirst }}</label>\n\n                \x3c!--  START SELECT INPUT --\x3e\n                <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_tts_language|ispeech_tts_language|ispeech_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id"\n                    ng-required="attribute.required">\n                    <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n                    <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]">{{v.option}}</md-option>\n                    <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n                </md-select>\n                \x3c!--  END SELECT INPUT --\x3e\n\n                \x3c!--  START SELECT INPUT --\x3e\n                <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n                    <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n                </md-select>\n                \x3c!--  END SELECT INPUT --\x3e\n\n                \x3c!--  START NUMBER INPUT --\x3e\n                <div ng-switch-when="timeout">\n                    <div ng-switch="vm.cellName">\n                        <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                        <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                        <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                    </div>\n                </div>\n                <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority|delay" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                \x3c!--  END NUMBER INPUT --\x3e\n\n                \x3c!--  START TEXTAREA INPUT --\x3e\n                <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition" ng-required="attribute.required"></textarea>\n                \x3c!--  END TEXTAREA INPUT --\x3e\n\n                \x3c!--  START TEXT INPUT --\x3e\n                <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n                \x3c!--  END TEXT INPUT--\x3e\n\n                <div class="hint" ng-switch="attribute.name">\n                    <span ng-switch-when-separator="|" ng-switch-when="mailbox" translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n                </div>\n                <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="editForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label>XML</label>\n                <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="importForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                    <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n                </div>\n\n                <div class="upload-button" layout="column" layout-align="center center">\n                    <md-button class="md-accent md-raised" flow-btn>\n                        Upload\n                    </md-button>\n                    <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n                    CLOSE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="descriptionFrom" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input name="description" ng-model="vm.project.description" md-autofocus>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NOTES">Description</label>\n                <textarea name="notes" ng-model="vm.project.notes"></textarea>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="openForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.PROJECT">Project</label>\n                <md-select name="id" ng-model="vm.id" required>\n                    <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n                </md-select>\n                <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n                    OPEN\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="newForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input name="name" ng-model="vm.project.name" required md-autofocus>\n                <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n                    COPY\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="project-image" hide-xs>\n                    <img ng-src="assets/images/business/projects.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.project.id}} {{vm.project.name}}\n                    </div>\n                    <div class="subtitle secondary-text text-truncate">\n                        <span ng-if="vm.project.description">{{vm.project.description}}  - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n                <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <md-content class="callysquare-content">\n\n        <div id="geEditor" class="geEditor"></div>\n\n    </md-content>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-projects-count">\n                    <span>{{vm.selectedProjects.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" filename="projects.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PROJECT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n                                <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.projects.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n                                <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n                                <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n                                                    Edit Project\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n                                                    Delete Project\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PROJECT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PROJECT BUTTON --\x3e\n    <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n    <form name="squareRecordingForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE"\n                    translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n                    ADD SQUARERECORDING\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-squareRecordings-count">\n                    <span>{{vm.selectedSquareRecordings.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SQUARERECORDINGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" filename="squareRecordings.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="SQUARERECORDINGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SQUARERECORDING TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n                                <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n                                <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n                                <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.squareRecordings.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n                                <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n                                <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n                                <td md-cell class="audio "><audio controls><source ng-src="{{\'api/square/recordings/\' + squareRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(squareRecording, $event)" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n                                                    Download SquareRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(squareRecording, $event)" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n                                                    Delete SquareRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SQUARERECORDING TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CHAT.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chatQueues-count">\n                    <span>{{vm.selectedChatQueues.length}}</span>\n                <span translate="CHAT.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHATQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" filename="chatQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHATQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHATQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chatQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n                                <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chatQueue, $event)" translate="CHAT.EDIT_CHATQUEUE">\n                                                    Edit ChatQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chatQueue, $event)" translate="CHAT.DELETE_CHATQUEUE">\n                                                    Delete ChatQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHATQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n    <form name="chatQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="chatQueueForm.name.$error" ng-show="chatQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.chatQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'roundrobun\'">Round Robin Memory</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="chatQueueForm.strategy.$error" ng-show="chatQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" required>\n                <div ng-messages="chatQueueForm.timeout.$error" ng-show="chatQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chatQueue.description">\n                <div ng-messages="chatQueueForm.description.$error" ng-show="chatQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n                    ADD CHATQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue">\n    <form name="chatQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="CHAT.TEAMADD_CHATQUEUE">Add Team in CHATQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="CHAT.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="chatQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="chatQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/chatQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chatQueue.id}} {{vm.chatQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.chatQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'roundrobun\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chatQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CHAT.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chatWebsites-count">\n                    <span>{{vm.selectedChatWebsites.length}}</span>\n                <span translate="CHAT.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHATWEBSITES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" filename="chatWebsites.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHATWEBSITES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHATWEBSITE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                <th md-column md-order-by="address">{{ \'CHAT.ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chatWebsites.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n                                <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chatWebsite, $event)" translate="CHAT.EDIT_CHATWEBSITE">\n                                                    Edit ChatWebsite\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chatWebsite, $event)" translate="CHAT.DELETE_CHATWEBSITE">\n                                                    Delete ChatWebsite\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHATWEBSITE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n    <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chatWebsite.name" required autofocus>\n                <div ng-messages="chatWebsiteForm.name.$error" ng-show="chatWebsiteForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.ADDRESS">address</label>\n                <input type="url" name="address" ng-model="vm.chatWebsite.address" required>\n                <div ng-messages="chatWebsiteForm.address.$error" ng-show="chatWebsiteForm.address.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.ADDRESS_REQUIRED">address field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="CHAT.ERRORS.ADDRESS_MUST_VALID_URL">address must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n                <input type="url" name="remote" ng-model="vm.chatWebsite.remote" required>\n                <div class="hint"><span translate="CHAT.HELP.MOTIONADDRESS"></span></div>\n                <div ng-messages="chatWebsiteForm.remote.$error" ng-show="chatWebsiteForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chatWebsite.description">\n                <div ng-messages="chatWebsiteForm.description.$error" ng-show="chatWebsiteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n                    ADD CHATWEBSITE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",'<md-dialog class="chatDisposition-dialog" aria-label="New ChatDisposition">\n    <form name="chatDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.chatDisposition.name" required autofocus>\n                <div ng-messages="chatDispositionForm.name.$error" ng-show="chatDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatDisposition" ng-click="vm.saveChatDisposition()" class="send-button md-accent md-raised" ng-disabled="chatDispositionForm.$invalid || chatDispositionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatDisposition" ng-click="vm.addNewChatDisposition()" class="send-button md-accent md-raised" ng-disabled="chatDispositionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATDISPOSITION" translate-attr-aria-label="CHAT.ADD_CHATDISPOSITION">\n                    ADD CHATDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatDisposition" ng-click="vm.deleteChatDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="chatWebsite-image" hide-xs>\n                    <img ng-src="assets/images/business/chatWebsites.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chatWebsite.id}} {{vm.chatWebsite.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (embeddingForm.$invalid) || (appearanceForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (labelsForm.$invalid) || (onlinestateForm.$invalid) || (offlinestateForm.$invalid) || (ratingstateForm.$invalid) || (enquiryForm.$invalid) || (onlineForm.$invalid) || (offlineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chatWebsite.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ADDRESS">address</label>\n                                <input type="url" name="address" ng-model="vm.chatWebsite.address" required>\n                                <div ng-messages="generalForm.address.$error" ng-show="generalForm.address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ADDRESS_REQUIRED">address field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.ADDRESS_MUST_VALID_URL">address must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n                                <input type="url" name="remote" ng-model="vm.chatWebsite.remote" required>\n                                <div class="hint"><span translate="CHAT.HELP.MOTIONADDRESS"></span></div>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.LIST">List</label>\n                                <md-select ng-model="vm.chatWebsite.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.fidelity" aria-label="Fidelity"><span translate="CHAT.FIDELITY">Fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n                                <label translate="CHAT.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chatWebsite.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.EMBEDDING">EMBEDDING</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container embedding md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.EMBEDDING">EMBEDDING</div>\n                        </div>\n                        <form name="embeddingForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SNIPPET">SNIPPET</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n                        </div>\n                        <form name="appearanceForm" novalidate>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color_focus" label="{{\'CHAT.FOCUSCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADERSHAPE">headershape</label>\n                                <md-select ng-model="vm.chatWebsite.header_shape">\n\n                                    <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="appearanceForm.header_shape.$error" ng-show="appearanceForm.header_shape.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.animation" aria-label="Animation"><span translate="CHAT.ANIMATION">Animation</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n                        </div>\n                        <form name="whitelabelForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default"><span translate="CHAT.DEFAULT">default</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.defaultWhiteLabel" class="md-block">\n                                <label translate="CHAT.WHITELABEL">whiteLabel</label>\n                                <textarea ng-model="vm.chatWebsite.whiteLabel" md-maxlength="150" max-rows="5" required></textarea>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n                        </div>\n                        <form name="logoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.defaultLogo" aria-label="default"><span translate="CHAT.DEFAULT">default</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container labels md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.LABELS">LABELS</div>\n                        </div>\n                        <form name="labelsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME_TITLE">name_title</label>\n                                <input type="text" name="name_title" ng-model="vm.chatWebsite.name_title" autofocus>\n                                <div ng-messages="labelsForm.name_title.$error" ng-show="labelsForm.name_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_TITLE_REQUIRED">name_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.USERNAME_PLACEHOLDER">username_placeholder</label>\n                                <input type="text" name="username_placeholder" ng-model="vm.chatWebsite.username_placeholder">\n                                <div ng-messages="labelsForm.username_placeholder.$error" ng-show="labelsForm.username_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.USERNAME_PLACEHOLDER_REQUIRED">username_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.EMAIL_TITLE">email_title</label>\n                                <input type="text" name="email_title" ng-model="vm.chatWebsite.email_title">\n                                <div ng-messages="labelsForm.email_title.$error" ng-show="labelsForm.email_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.EMAIL_TITLE_REQUIRED">email_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.EMAIL_PLACEHOLDER">email_placeholder</label>\n                                <input type="text" name="email_placeholder" ng-model="vm.chatWebsite.email_placeholder">\n                                <div ng-messages="labelsForm.email_placeholder.$error" ng-show="labelsForm.email_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.EMAIL_PLACEHOLDER_REQUIRED">email_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container onlinestate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ONLINESTATE">ONLINESTATE</div>\n                        </div>\n                        <form name="onlinestateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADER_ONLINE">header_online</label>\n                                <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" autofocus>\n                                <div ng-messages="onlinestateForm.header_online.$error" ng-show="onlinestateForm.header_online.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ONLINE_MESSAGE">online_message</label>\n                                <input type="text" name="online_message" ng-model="vm.chatWebsite.online_message">\n                                <div ng-messages="onlinestateForm.online_message.$error" ng-show="onlinestateForm.online_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ONLINE_MESSAGE_REQUIRED">online_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n                                <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button">\n                                <div ng-messages="onlinestateForm.start_chat_button.$error" ng-show="onlinestateForm.start_chat_button.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.AGENTS_BUSY">agents_busy</label>\n                                <input type="text" name="agents_busy" ng-model="vm.chatWebsite.agents_busy">\n                                <div ng-messages="onlinestateForm.agents_busy.$error" ng-show="onlinestateForm.agents_busy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.AGENTS_BUSY_REQUIRED">agents_busy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container offlinestate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.OFFLINESTATE">OFFLINESTATE</div>\n                        </div>\n                        <form name="offlinestateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n                                <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" autofocus>\n                                <div ng-messages="offlinestateForm.header_offline.$error" ng-show="offlinestateForm.header_offline.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.OFFLINE_MESSAGE">offline_message</label>\n                                <input type="text" name="offline_message" ng-model="vm.chatWebsite.offline_message">\n                                <div ng-messages="offlinestateForm.offline_message.$error" ng-show="offlinestateForm.offline_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.OFFLINE_MESSAGE_REQUIRED">offline_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.MESSAGE_TITLE">message_title</label>\n                                <input type="text" name="message_title" ng-model="vm.chatWebsite.message_title">\n                                <div ng-messages="offlinestateForm.message_title.$error" ng-show="offlinestateForm.message_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.MESSAGE_TITLE_REQUIRED">message_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ENQUIRY_MESSAGE_PLACEHOLDER">enquiry_message_placeholder</label>\n                                <input type="text" name="enquiry_message_placeholder" ng-model="vm.chatWebsite.enquiry_message_placeholder">\n                                <div ng-messages="offlinestateForm.enquiry_message_placeholder.$error" ng-show="offlinestateForm.enquiry_message_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_MESSAGE_PLACEHOLDER_REQUIRED">enquiry_message_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ENQUIRY_BUTTON">enquiry_button</label>\n                                <input type="text" name="enquiry_button" ng-model="vm.chatWebsite.enquiry_button">\n                                <div ng-messages="offlinestateForm.enquiry_button.$error" ng-show="offlinestateForm.enquiry_button.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_BUTTON_REQUIRED">enquiry_button field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container ratingstate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.RATINGSTATE">RATINGSTATE</div>\n                        </div>\n                        <form name="ratingstateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_MESSAGE">rating_message</label>\n                                <input type="text" name="rating_message" ng-model="vm.chatWebsite.rating_message" autofocus>\n                                <div ng-messages="ratingstateForm.rating_message.$error" ng-show="ratingstateForm.rating_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_MESSAGE_REQUIRED">rating_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_SEND">rating_send</label>\n                                <input type="text" name="rating_send" ng-model="vm.chatWebsite.rating_send">\n                                <div ng-messages="ratingstateForm.rating_send.$error" ng-show="ratingstateForm.rating_send.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_SEND_REQUIRED">rating_send field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_SKIP">rating_skip</label>\n                                <input type="text" name="rating_skip" ng-model="vm.chatWebsite.rating_skip">\n                                <div ng-messages="ratingstateForm.rating_skip.$error" ng-show="ratingstateForm.rating_skip.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_SKIP_REQUIRED">rating_skip field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container enquiry md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ENQUIRY">ENQUIRY</div>\n                        </div>\n                        <form name="enquiryForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.enquiry_enable" aria-label="enquiry_enable"><span translate="CHAT.ENQUIRY_ENABLE">enquiry_enable</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.enquiry_forwarding" aria-label="enquiry_forwarding"><span translate="CHAT.ENQUIRY_FORWARDING">enquiry_forwarding</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.enquiry_forwarding" class="md-block">\n                                <label translate="CHAT.ENQUIRY_FORWARDING_ADDRESS">enquiry_forwarding_address</label>\n                                <input type="text" name="enquiry_forwarding_address" ng-model="vm.chatWebsite.enquiry_forwarding_address" required>\n                                <div ng-messages="enquiryForm.enquiry_forwarding_address.$error" ng-show="enquiryForm.enquiry_forwarding_address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_FORWARDING_ADDRESS_REQUIRED">enquiry_forwarding_address field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.enquiry_forwarding" class="md-block">\n                                <label translate="CHAT.OFFLINETEMPLATE">OfflineTemplate</label>\n                                <md-select ng-model="vm.chatWebsite.OfflineTemplateId" required>\n                                    <md-option ng-value="OfflineTemplateId.id" ng-repeat="OfflineTemplateId in vm.templates">{{ OfflineTemplateId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="enquiryForm.OfflineTemplateId.$error" ng-show="enquiryForm.OfflineTemplateId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.OFFLINETEMPLATE_REQUIRED">OfflineTemplate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.FORMS">FORMS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container online md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ONLINE">ONLINE</div>\n                        </div>\n                        <form name="onlineForm" novalidate>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container offline md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.OFFLINE">OFFLINE</div>\n                        </div>\n                        <form name="offlineForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.PROACTIVE">PROACTIVE</div>\n                        </div>\n                        <form name="proactiveForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ChatWebsiteChatDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CHAT.CHATDISPOSITIONS">ChatDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event)" aria-label="add chatDisposition" translate translate-attr-label="CHAT.ADD_CHATDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatDispositions.length}} {{vm_dc.selectedChatWebsiteChatDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHATWEBSITES.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'CHAT.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="chatDisposition" md-select-id="id" ng-repeat="chatDisposition in vm_dc.chatWebsiteChatDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" translate="CHAT.EDIT_CHATDISPOSITION">\n                                                                Edit ChatDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(chatDisposition, $event)" translate="CHAT.DELETE_CHATDISPOSITION">\n                                                                Delete ChatDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.chatWebsiteChatDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="CHAT.NO_CHATDISPOSITION_AVAILABLE">No chatdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatDispositions.count}}" md-on-paginate="vm_dc.getChatWebsiteChatDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.chatWebsite.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.chatWebsite.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.chatWebsite.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.chatWebsite.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.chatWebsite.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.chatWebsite.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-companies-count">\n                    <span>{{vm.selectedCompanies.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="COMPANIES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" filename="companies.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="COMPANIES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- COMPANY TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.companies.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n                                <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n                                <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(company, $event)" translate="CONTACTMANAGER.EDIT_COMPANY">\n                                                    Edit Company\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotocontactsgoto(company, $event)" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n                                                    goToContacts Company\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(company, $event)" translate="CONTACTMANAGER.DELETE_COMPANY">\n                                                    Delete Company\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / COMPANY TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD COMPANY BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n    <form name="companyForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.company.name" required autofocus>\n                <div ng-messages="companyForm.name.$error" ng-show="companyForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.company.phone">\n                <div ng-messages="companyForm.phone.$error" ng-show="companyForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.VAT">Vat</label>\n                <input type="text" name="vat" ng-model="vm.company.vat">\n                <div ng-messages="companyForm.vat.$error" ng-show="companyForm.vat.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                <input type="text" name="fax" ng-model="vm.company.fax">\n                <div ng-messages="companyForm.fax.$error" ng-show="companyForm.fax.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n                <input type="text" name="companyId" ng-model="vm.company.companyId">\n                <div ng-messages="companyForm.companyId.$error" ng-show="companyForm.companyId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <input type="text" name="type" ng-model="vm.company.type">\n                <div ng-messages="companyForm.type.$error" ng-show="companyForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n                <input type="text" name="website" ng-model="vm.company.website">\n                <div ng-messages="companyForm.website.$error" ng-show="companyForm.website.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n                <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n                <div ng-messages="companyForm.emailDomain.$error" ng-show="companyForm.emailDomain.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.company.email">\n                <div ng-messages="companyForm.email.$error" ng-show="companyForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.company.description">\n                <div ng-messages="companyForm.description.$error" ng-show="companyForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n                    ADD COMPANY\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="company-image" hide-xs>\n                    <img ng-src="assets/images/business/companies.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.company.id}} {{vm.company.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n                <md-icon md-font-icon="icon-forward"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.company.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                                <input type="text" name="phone" ng-model="vm.company.phone">\n                                <div ng-messages="generalForm.phone.$error" ng-show="generalForm.phone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.VAT">Vat</label>\n                                <input type="text" name="vat" ng-model="vm.company.vat">\n                                <div ng-messages="generalForm.vat.$error" ng-show="generalForm.vat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                                <input type="text" name="fax" ng-model="vm.company.fax">\n                                <div ng-messages="generalForm.fax.$error" ng-show="generalForm.fax.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n                                <input type="text" name="companyId" ng-model="vm.company.companyId">\n                                <div ng-messages="generalForm.companyId.$error" ng-show="generalForm.companyId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                                <input type="text" name="type" ng-model="vm.company.type">\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n                                <input type="text" name="website" ng-model="vm.company.website">\n                                <div ng-messages="generalForm.website.$error" ng-show="generalForm.website.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n                                <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n                                <div ng-messages="generalForm.emailDomain.$error" ng-show="generalForm.emailDomain.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.company.email">\n                                <div ng-messages="generalForm.email.$error" ng-show="generalForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.company.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n                        </div>\n                        <form name="addressForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.STREET">Street</label>\n                                <input type="text" name="street" ng-model="vm.company.street" autofocus>\n                                <div ng-messages="addressForm.street.$error" ng-show="addressForm.street.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n                                <input type="text" name="postalCode" ng-model="vm.company.postalCode">\n                                <div ng-messages="addressForm.postalCode.$error" ng-show="addressForm.postalCode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.CITY">City</label>\n                                <input type="text" name="city" ng-model="vm.company.city">\n                                <div ng-messages="addressForm.city.$error" ng-show="addressForm.city.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                <input type="text" name="country" ng-model="vm.company.country">\n                                <div ng-messages="addressForm.country.$error" ng-show="addressForm.country.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n                        </div>\n                        <form name="shipmentAddressForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.STREET">Street</label>\n                                <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus>\n                                <div ng-messages="shipmentAddressForm.sStreet.$error" ng-show="shipmentAddressForm.sStreet.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n                                <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode">\n                                <div ng-messages="shipmentAddressForm.sPostalCode.$error" ng-show="shipmentAddressForm.sPostalCode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.CITY">City</label>\n                                <input type="text" name="sCity" ng-model="vm.company.sCity">\n                                <div ng-messages="shipmentAddressForm.sCity.$error" ng-show="shipmentAddressForm.sCity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                <input type="text" name="sCountry" ng-model="vm.company.sCountry">\n                                <div ng-messages="shipmentAddressForm.sCountry.$error" ng-show="shipmentAddressForm.sCountry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="cm-contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <md-button class="md-icon-button sidenav-toggle" hide-gt-md ng-click="vm.toggleSidenav(\'sidenav\')" aria-label="Toggle sidenav" translate translate-attr-aria-label="CONTACTMANAGER.TOGGLE_SIDENAV">\n                <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n            </md-button>\n\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n          <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n        </span>\n                <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n        <md-icon md-font-icon="icon-magnify"></md-icon>\n      </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n        <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n            <div>\n                <span class="selected-contacts-count">\n          <span>{{vm.selectedContacts.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">Selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" filename="contacts.csv">\n          <md-icon md-font-icon="icon-download"></md-icon>\n        </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div md-background-bg layout="row" layout-align="start start">\n        <md-progress-linear ng-disabled="vm.disableDialog" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n    </div>\n\n    <div layout="row">\n        <md-card ng-if="vm.hasPermission()" flex="25">\n            \x3c!-- SIDENAV --\x3e\n            <div ms-scroll class="content scrollable">\n                <md-list>\n                    <md-list-item ng-click="vm.selectedTags = []">\n                        <md-icon md-font-icon="icon-account-multiple"></md-icon>\n                        <p translate="CONTACTMANAGER.ALL_CONTACTS">\n                            All contacts\n                        </p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select lists" flex="100" ng-model="vm.selectedList">\n                            <md-optgroup label="Lists">\n                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createList()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_LIST">New List</p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select companies" flex="100" ng-model="vm.selectedCompany">\n                            <md-optgroup label="Companies">\n                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createCompany()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_COMPANY">New Company</p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select tags" flex="100" ng-model="vm.selectedTags" multiple>\n                            <md-optgroup label="Tags">\n                                <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createTag()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_TAG">New Tag</p>\n                    </md-list-item>\n\n                </md-list>\n            </div>\n            \x3c!-- / SIDENAV --\x3e\n        </md-card>\n\n        <md-card flex>\n            \x3c!-- MAIN --\x3e\n            <div class="main scrollable" ms-scroll>\n                \x3c!-- CONTACT LIST --\x3e\n                \x3c!-- <div class="contacts-list"> --\x3e\n                \x3c!-- CONTACTS TABLE --\x3e\n                <md-table-container class="md-white-bg">\n                    <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                            <tr md-row>\n                                <th md-column md-order-by="id">ID</th>\n                                <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n                                <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n                                <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n                                <th md-column md-order-by="list">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.contacts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="phone">{{contact.phone}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="email">{{contact.email}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n                                                    Edit Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n                                                    Merge Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n                                                    Duplicate Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-divider></md-menu-divider>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n                                                    Delete Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination class="md-white-bg" md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n                \x3c!-- / CONTACTS TABLE --\x3e\n                \x3c!-- </div> --\x3e\n                \x3c!-- / CONTACT LIST --\x3e\n            </div>\n            \x3c!-- / MAIN --\x3e\n        </md-card>\n\n\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CONTACT BUTTON --\x3e\n    <div ng-cloak>\n        <md-fab-speed-dial id="add-contact-button" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n            <md-fab-trigger>\n                <md-button aria-label="menu" class="md-fab md-accent">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n            </md-fab-trigger>\n            <md-fab-actions>\n                <md-button flow-init flow-btn flow-file-added="vm.uploadContacts($event, $file, $flow)" class="md-fab md-mini md-warn" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.UPLOAD_CSV">\n                    <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n                        {{\'CONTACTMANAGER.UPLOAD_CSV\' | translate}}\n                    </md-tooltip>\n                    <md-icon md-font-icon="icon-upload"></md-icon>\n                </md-button>\n                <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n                        {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n                    </md-tooltip>\n                    <md-icon md-font-icon="icon-account-plus"></md-icon>\n                </md-button>\n            </md-fab-actions>\n        </md-fab-speed-dial>\n    </div>\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n                <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus>\n\n                <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n                <input name="lastName" ng-model="vm.contact.lastName">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                <input name="phone" ng-model="vm.contact.phone" required>\n\n                <div ng-messages="contactForm.phone.$error" ng-show="contactForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                <input name="email" type="email" ng-model="vm.contact.email">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n                <input name="mobile" ng-model="vm.contact.mobile">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                <input name="fax" ng-model="vm.contact.fax">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LIST">List</label>\n                <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-init="vm.getCustomFields(vm.contact.ListId)" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n                    <md-optgroup label="Lists">\n                        <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                        <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                    </md-optgroup>\n                </md-select>\n\n                <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n                <div ng-switch-when="datetime">\n                    <label>{{customField.alias}}</label>\n\n                    <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n                        <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                        <mdp-timne-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                    </div>\n                </div>\n\n                <div ng-switch-when="select">\n                    <label>{{customField.alias}}</label>\n\n                    <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                        <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                        <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                    </md-select>\n                </div>\n\n                <div ng-switch-when="switch">\n                    <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                        {{customField.alias}}\n                    </md-switch>\n                </div>\n\n                <md-input-container ng-switch-default>\n                    <label>{{customField.alias}}</label>\n\n                    <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                </md-input-container>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                <md-select name="company" ng-model="vm.contact.CompanyId">\n                    <md-optgroup label="Companies">\n                        <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                    </md-optgroup>\n                </md-select>\n            </md-input-container>\n\n            <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n                <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n            </div>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n                <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                <input type="date" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" class="text-truncate">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                <input type="text" name="country" ng-model="vm.contact.country">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.CITY">City</label>\n                <input type="text" name="city" ng-model="vm.contact.city">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.STREET">Street</label>\n                <input type="text" name="street" ng-model="vm.contact.street">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n                <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.NOTES">Notes</label>\n                <input type="text" name="description" ng-model="vm.contact.description">\n            </md-input-container>\n\n            <div ng-if="vm.allFields" layout="row" layout-align="center center">\n                <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields</md-button>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    ADD CONTACT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LIST">List</label>\n                <md-select name="list" ng-model="vm.contact.ListId">\n                    <md-optgroup label="Lists">\n                        <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    </md-optgroup>\n                </md-select>\n\n                <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    ADD CONTACT\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="contact-image" hide-xs>\n                    <img ng-src="assets/images/business/contacts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n            <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <div ng-repeat="channel in vm_contact_qa.channels">\n                        <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n                            <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n                                {{channel.name}}\n                            </md-tooltip>\n                            <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n                        </md-button>\n                    </div>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div>\n            <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n                <md-icon md-font-icon="icon-file-multiple"></md-icon>\n            </md-button>\n            <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="70">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO</div>\n                            </div>\n                            <form name="detailForm" novalidate>\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- fistName --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n                                        <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n                                        <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required>\n\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- lastName --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n                                        <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate">\n                                    </md-input-container>\n\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- phone --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                                        <md-icon md-font-icon="icon-phone"></md-icon>\n                                        <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" required>\n\n                                        <div ng-messages="detailForm.phone.$error" ng-show="detailForm.phone.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- mobile --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n                                        <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n                                        <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- email --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                                        <md-icon md-font-icon="icon-email" class="email"></md-icon>\n                                        <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate">\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="email">\n                                                <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- fax --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.FAX">Fax</label>\n                                        <md-icon md-font-icon="icon-deskphone"></md-icon>\n                                        <input type="text" name="fax" ng-model="vm.contact.fax">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- date of birdth --\x3e\n                                    \x3c!-- <md-input-container class="md-block" flex-gt-sm="">\n                                      <mdp-date-picker mdp-open-on-click name="dateOfBirth" mdp-placeholder="Date Of Birth" mdp-format="YYYY-MM-DD" ng-model="vm.contact.dateOfBirth">\n                                          <div ng-messages="detailForm.dateOfBirth.$error" ng-show="reportForm.dateOfBirth.$touched" role="alert">\n                                              <div ng-message="format">\n                                                  <span translate="CONTACTMANAGER.ERRORS.DATE_OF_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n                                              </div>\n                                          </div>\n                                      </mdp-date-picker>\n                                    </md-input-container> --\x3e\n\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n                                        <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                                        <input type="date" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                                        <md-icon md-font-icon="icon-domain"></md-icon>\n                                        <md-select name="company" ng-model="vm.contact.CompanyId">\n                                            <md-optgroup label="Companies">\n                                                <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                            </md-optgroup>\n                                        </md-select>\n                                        <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n                                    </md-input-container>\n                                    <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n                                        <md-icon md-font-icon="icon-briefcase"></md-icon>\n                                        <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n                                        <md-button class="md-accent" translate="CONTACTMANAGER.ADD_COMPANY">Add Company</md-button>\n                                    </section>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.TAGS">Tags</label>\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <md-select ng-model="vm.contact.tags" multiple>\n                                            <md-optgroup label="Tags">\n                                                <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n                                            </md-optgroup>\n                                        </md-select>\n                                    </md-input-container>\n                                    <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <label translate="CONTACTMANAGER.NO_TAGS">No Tags</label>\n                                        <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n                                    </section>\n                                </div>\n\n                                <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n                                    <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n                                </div>\n\n                                <div ng-if="vm.allFields">\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        \x3c!-- country --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                            <md-icon md-font-icon="icon-home" class="country"></md-icon>\n                                            <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n                                        </md-input-container>\n                                        <div flex="5"></div>\n                                        \x3c!-- city --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.CITY">City</label>\n                                            <input type="text" name="city" ng-model="vm.contact.city">\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        <div flex="5"></div>\n                                        \x3c!-- street --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.STREET">Street</label>\n                                            <input type="text" name="street" ng-model="vm.contact.street">\n                                        </md-input-container>\n                                        <div flex="5"></div>\n                                        \x3c!-- postalCode --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n                                            <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n                                            <md-icon md-font-icon="icon-note"></md-icon>\n                                            <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout="row" layout-align="center center">\n                                        <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n                                        </md-button>\n                                    </div>\n\n                                </div>\n                            </form>\n                        </div>\n\n                        <div flex></div>\n\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n                            </div>\n                            <form name="customFieldsForm" novalidate>\n                                <md-input-container class="md-block">\n                                    <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n                                    <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n                                    <div ng-switch-when="datetime">\n                                        <label>{{customField.alias}}</label>\n\n                                        <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n                                            <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                                            <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                                        </div>\n                                    </div>\n\n                                    <div ng-switch-when="select">\n                                        <label>{{customField.alias}}</label>\n\n                                        <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                            <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-select>\n                                    </div>\n\n                                    <md-input-container ng-switch-when="switch">\n                                        <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                                            {{customField.alias}}\n                                        </md-switch>\n                                    </md-input-container>\n\n                                    <md-input-container ng-switch-default>\n                                        <label>{{customField.alias}}</label>\n\n                                        <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.hoppers.count">\n                                            <td md-cell colspan="4">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n                                            <td md-cell>{{hopper.id}}</td>\n                                            <td md-cell>{{hopper.phone}}</td>\n                                            <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="2">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.finals.count">\n                                            <td md-cell colspan="5">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n                                            <td md-cell>{{final.uniqueid}}</td>\n                                            <td md-cell>{{final.calleridnum}}</td>\n                                            <td md-cell>{{final.state}}</td>\n                                            <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{final.disposition}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.histories.count">\n                                            <td md-cell colspan="7">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n                                            <td md-cell>{{history.uniqueid}}</td>\n                                            <td md-cell>{{history.calleridnum}}</td>\n                                            <td md-cell>{{history.statedesc}}</td>\n                                            <td md-cell>{{history.scheduledat}}</td>\n                                            <td md-cell>{{history.starttime}}</td>\n                                            <td md-cell>{{history.endtime}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block" flex-gt-sm>\n                <label>Filter</label>\n                <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n            </md-input-container>\n\n            <md-list flex>\n                <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n                <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n                    <img ng-src="assets/images/avatars/profile.jpg" class="md-avatar" alt="{{contact.who}}" />\n                    <div class="md-list-item-text" layout="column">\n                        <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n                        <h4>{{ contact.email }}</h4>\n                        <p>{{ contact.phone }}</p>\n                    </div>\n                </md-list-item>\n            </md-list>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/upload/upload.html",'<md-dialog class="upload-dialog" aria-label="Upload contact">\n    <form name="uploadForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="CONTACTMANAGER.UPLOAD_CONTACTS">Upload Contacts</span>\n                <md-button ng-disabled="vm.uploading" class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <div md-background-bg layout="row" layout-align="start start">\n            <md-progress-linear ng-disabled="!vm.uploading" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n        </div>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div>\n\n                <md-content ng-hide="vm.uploading || vm.stop">\n                    <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n                        <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n                        <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n                            <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n                            <md-option ng-value="null" ng-hide="contactField.required"><em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <label translate="CONTACTMANAGER.LIST">List</label>\n                        <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n                            <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n                        <label>{{customField.alias}}</label>\n                        <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n                            <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n                            <md-option ng-value="null" ng-hide="customField.required"><em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                        <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n                            <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n                            <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n                        </md-select>\n                    </md-input-container>\n                </md-content>\n\n                <div layout="row" ng-if="vm.uploading || vm.stop">\n                    \x3c!-- WIDGET SUCCESS --\x3e\n                    <ms-widget class="h-140" flex>\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 green-fg">{{vm.successAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET SUCCESS --\x3e\n\n                    \x3c!-- WIDGET FAILURE --\x3e\n                    <ms-widget class="h-140" flex>\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 red-fg">{{vm.failureAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET FAILURE --\x3e\n\n                    \x3c!-- WIDGET DUPLICATES --\x3e\n                    <ms-widget class="h-140" flex ng-if="vm.duplicates.length">\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 orange-fg">{{vm.duplicatesAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET DUPLICATES --\x3e\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row">\n                <md-button aria-label="SAVE" ng-disabled="uploadForm.$invalid || uploadForm.$pristine || vm.uploading || vm.stop" ng-click="vm.upload()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.UPLOAD">\n                    UPLOAD\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n    <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n                <input type="" name="alias" ng-model="vm.globalCustomField.alias" required autofocus>\n                <div ng-messages="globalCustomFieldForm.alias.$error" ng-show="globalCustomFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <md-select ng-model="vm.globalCustomField.type" required>\n                    <md-option ng-value="\'text\'">Text</md-option>\n                    <md-option ng-value="\'select\'">Select</md-option>\n                    <md-option ng-value="\'number\'">Number</md-option>\n                    <md-option ng-value="\'switch\'">Switch</md-option>\n                    <md-option ng-value="\'datetime\'">Datetime</md-option>\n                </md-select>\n                <div ng-messages="globalCustomFieldForm.type.$error" ng-show="globalCustomFieldForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n                <label translate="CONTACTMANAGER.VALUE">Value</label>\n                <md-chips name="values" ng-model="vm.globalCustomField.values" placeholder="add value and type enter" required>\n                    <md-chip-template>\n                        <span>{{$chip}}</span>\n                    </md-chip-template>\n                </md-chips>\n                <div ng-messages="globalCustomFieldForm.values.$error" ng-show="globalCustomFieldForm.values.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE"\n                    translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n                    ADD GLOBALCUSTOMFIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-globalCustomFields-count">\n                    <span>{{vm.selectedGlobalCustomFields.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="GLOBALCUSTOMFIELDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" filename="globalCustomFields.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="GLOBALCUSTOMFIELDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n                                <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n                                <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n                                    <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(globalCustomField, $event)" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n                                                    Edit GlobalCustomField\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(globalCustomField, $event)" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n                                                    Delete GlobalCustomField\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n    <form name="listForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.list.name" required autofocus>\n                <div ng-messages="listForm.name.$error" ng-show="listForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.list.description">\n                <div ng-messages="listForm.description.$error" ng-show="listForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n                    ADD LIST\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list">\n    <form name="listForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n    <form name="customFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n                <input type="" name="alias" ng-model="vm.customField.alias" required autofocus>\n                <div ng-messages="customFieldForm.alias.$error" ng-show="customFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <md-select ng-model="vm.customField.type" required>\n                    <md-option ng-value="\'text\'">Text</md-option>\n                    <md-option ng-value="\'select\'">Select</md-option>\n                    <md-option ng-value="\'number\'">Number</md-option>\n                    <md-option ng-value="\'switch\'">Switch</md-option>\n                    <md-option ng-value="\'datetime\'">Datetime</md-option>\n                </md-select>\n                <div ng-messages="customFieldForm.type.$error" ng-show="customFieldForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.customField.type == \'select\'" class="md-block">\n                <label translate="CONTACTMANAGER.VALUE">Value</label>\n                <md-chips name="values" ng-model="vm.customField.values" placeholder="add value and type enter" required>\n                    <md-chip-template>\n                        <span>{{$chip}}</span>\n                    </md-chip-template>\n                </md-chips>\n                <div ng-messages="customFieldForm.values.$error" ng-show="customFieldForm.values.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n                    ADD CUSTOMFIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="list-image" hide-xs>\n                    <img ng-src="assets/images/business/lists.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.list.id}} {{vm.list.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n                <md-icon md-font-icon="icon-forward"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n                <md-icon md-font-icon="icon-eye"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.list.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.list.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n                                            <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n                                            <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.alias}}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{ vm_dc.arraytype[customField.type].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.required}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n                                                                Edit CustomField\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n                                                                Delete CustomField\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ListVoiceDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListVoiceDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.VOICEDISPOSITIONS">VoiceDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditListVoiceDisposition($event)" aria-label="add voiceDisposition" translate translate-attr-label="CONTACTMANAGER.ADD_VOICEDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListVoiceDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedListVoiceDispositions.length}} {{vm_dc.selectedListVoiceDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedListVoiceDispositions($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedListVoiceDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListVoiceDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'CONTACTMANAGER.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="voiceDisposition" md-select-id="id" ng-repeat="voiceDisposition in vm_dc.listVoiceDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" translate="CONTACTMANAGER.EDIT_VOICEDISPOSITION">\n                                                                Edit VoiceDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(voiceDisposition, $event)" translate="CONTACTMANAGER.DELETE_VOICEDISPOSITION">\n                                                                Delete VoiceDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.listVoiceDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="CONTACTMANAGER.NO_VOICEDISPOSITION_AVAILABLE">No voicedisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.listVoiceDispositions.count}}" md-on-paginate="vm_dc.getListVoiceDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",'<md-dialog class="voiceDisposition-dialog" aria-label="New VoiceDisposition">\n    <form name="voiceDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.voiceDisposition.name" required autofocus>\n                <div ng-messages="voiceDispositionForm.name.$error" ng-show="voiceDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceDisposition" ng-click="vm.saveVoiceDisposition()" class="send-button md-accent md-raised" ng-disabled="voiceDispositionForm.$invalid || voiceDispositionForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE"\n                    translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceDisposition" ng-click="vm.addNewVoiceDisposition()" class="send-button md-accent md-raised" ng-disabled="voiceDispositionForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_VOICEDISPOSITION" translate-attr-aria-label="CONTACTMANAGER.ADD_VOICEDISPOSITION">\n                    ADD VOICEDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceDisposition" ng-click="vm.deleteVoiceDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-lists-count">\n                    <span>{{vm.selectedLists.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="LISTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedLists" filename="lists.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- LIST TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.lists.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n                                <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n                                <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(list, $event)" translate="CONTACTMANAGER.EDIT_LIST">\n                                                    Edit List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotocontactsgoto(list, $event)" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n                                                    goToContacts List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.exportcsvcontactsexport(list, $event)" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n                                                    exportCsvContacts List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(list, $event)" translate="CONTACTMANAGER.AGENTADD_LIST">\n                                                    AgentAdd List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(list, $event)" translate="CONTACTMANAGER.DELETE_LIST">\n                                                    Delete List\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / LIST TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD LIST BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="dashboard-general" class="page-layout simple right-sidenav" layout="row">\n    \x3c!-- CENTER --\x3e\n    <div class="center" flex ms-scroll>\n        \x3c!-- CONTENT --\x3e\n        <div class="content">\n            <md-tabs md-selected="vm.currentTab" md-dynamic-height>\n                <md-tab label="{{\'DASHBOARDS.DASHBOARD\' | translate}}" ui-sref="app.dashboards.general.dashboard">\n                    <div ui-view="dashboard"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.RECORDINGS\' | translate}}" ui-sref="app.dashboards.general.recordings">\n                    <div ui-view="recordings"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.CONTACTS\' | translate}}" ui-sref="app.dashboards.general.contacts({tab: vm})">\n                    <div ui-view="contacts"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.MYCONTACTS\' | translate}}" ui-sref="app.dashboards.general.mycontacts">\n                    <div ui-view="mycontacts"></div>\n                </md-tab>\n\n                \x3c!-- TABS START --\x3e\n                <md-tab ng-repeat="tab in vm.tabs track by tab.id">\n                    <md-tab-label>\n                        <md-icon md-font-icon="{{tab.icon}}" class="icon s20"></md-icon>\n                        <span class="text-bold"> {{tab.title}} </span>\n                        <md-button class="md-icon-button md-warn" ng-click="vm.closeTab($index, tab)">\n                            <md-icon md-font-icon="icon-close-circle-outline" class="icon s20"></md-icon>\n                        </md-button>\n                    </md-tab-label>\n                    <md-tab-body>\n                        <div ng-switch="tab.type">\n                            <div ng-switch-when="contact">\n                                <contact tab="tab"></contact>\n                            </div>\n                            <div ng-switch-when="popup">\n                                <popup tab="tab"></popup>\n                            </div>\n                        </div>\n                    </md-tab-body>\n                </md-tab>\n                \x3c!-- TABS END --\x3e\n            </md-tabs>\n        </div>\n        \x3c!-- / CONTENT --\x3e\n    </div>\n    \x3c!-- / CENTER --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/contacts/agent.general.contacts.html",'<div layout="rows">\n    <md-card flex="25" layout-padding>\n        <md-button translate="CONTACTMANAGER.ALL_CONTACTS" ng-click="vm.refreshContacts()"> AllContacts </md-button>\n        <md-input-container>\n            <label>Select a list</label>\n            <md-select flex="100" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n                <md-optgroup label="Lists">\n                    <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n                </md-optgroup>\n            </md-select>\n        </md-input-container>\n    </md-card>\n    <md-card flex="75">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n                <div flex></div>\n                <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n                <md-button class="md-icon-button" ng-click="vm.openContact($event)" aria-label="add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n                <md-button class="md-icon-button" ng-click="vm.refreshContacts($event)" aria-label="refresh Contacts" translate translate-attr-label="DASHBOARDS.REFRESH_CONTACTS">\n                    <md-icon md-font-icon="icon-reload"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                    <tr md-row>\n                        <th md-column md-order-by="id">ID</th>\n                        <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n                        <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n                        <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n                        <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n                        <th md-column width="10px"></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.contacts.rows.length">\n                        <td md-cell colspan="10">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="contact in vm.contacts.rows">\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="id">{{contact.id}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="phone">{{contact.phone}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="email">{{contact.email}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                        <td md-cell class="actions">\n                            <md-menu>\n                                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n                                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                </md-button>\n\n                                <md-menu-content width="3">\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.openContact(ev, contact)" translate="DASHBOARDS.EDIT">\n                                            Edit Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.mergeContact(ev, contact)" translate="DASHBOARDS.MERGE">\n                                            Merge Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.duplicateContact(ev, contact)" translate="DASHBOARDS.DUPLICATE">\n                                            Duplicate Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                </md-menu-content>\n                            </md-menu>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n    </md-card>\n\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/dashboard/agent.general.dashboard.html",'<div layout="row">\n    <md-card flex="50">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n                <div flex></div>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n                    <tr md-row>\n                        <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                        <th md-column md-order-by="waiting">{{ \'VOICE.WAITING\' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.getSize(vm.voiceQueues)">\n                        <td md-cell colspan="2">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="(key, voiceQueue) in vm.voiceQueues">\n                        <td md-cell class="name">{{voiceQueue.name}}</td>\n                        <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceQueuesTotal}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n    </md-card>\n    <md-card flex="50">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n                <div flex></div>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table>\n                <thead md-head>\n                    <tr md-row>\n                        <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n                        <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n                        <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                        <td md-cell colspan="3">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                        <td md-cell>{{channel.exten}}</td>\n                        <td md-cell>{{channel.queue}}</td>\n                        <td md-cell>{{channel.calleridnum}}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n    </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/contact.html",'<md-content>\n    <md-tabs md-selected="currentTab" md-dynamic-height>\n        <md-tab>\n            <md-tab-label>\n                <span translate="DASHBOARDS.DETAIL">Detail</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-content>\n                    <div layout="row">\n                        \x3c!-- MS-CARD --\x3e\n                        <md-card class="template-7" layout="row" layout-align="space-between" ng-repeat="call in tab.calls track by call.uniqueid">\n                            <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n                                <div layout="row">\n                                    <span class="text-boxed md-green-bg"><timer start-time="tab.openedAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                                    <div flex></div>\n                                    <span ng-if="call.disposedAt" class="text-boxed md-yellow-bg"><timer start-time="call.disposedAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                                </div>\n                                <div class="p-16">\n                                    <div class="title h1">\n                                        <md-icon md-font-icon="icon-phone-forward"></md-icon>\n                                        {{call.calleridnum}}\n                                    </div>\n\n                                    <div class="subtitle h4 secondary-text" ng-if="call.calleridname">\n                                        <md-icon md-font-icon="icon-account"></md-icon>\n                                        Name: {{call.calleridname}}\n                                    </div>\n\n                                    <div class="text h4 pt-8" ng-if="call.queue">\n                                        <md-icon md-font-icon="icon-stackoverflow"></md-icon>\n                                        Queue: {{call.queue}}\n                                    </div>\n                                    <div class="text h4 pt-8" ng-if="call.variables.extravar">\n                                        <md-icon md-font-icon="icon-minus"></md-icon>\n                                        Extra: {{call.variables.extravar}}\n                                    </div>\n                                </div>\n                                <div layout="row" layout-align="end center">\n                                    <md-button ng-if="call.disposedAt" type="submit" ng-click="disposeCall($event, call)" class="send-button md-accent md-raised">\n                                        {{ \'DASHBOARDS.DISPOSE\' | translate}}\n                                    </md-button>\n                                </div>\n                            </div>\n                        </md-card>\n                        \x3c!-- / MS-CARD --\x3e\n                        <div flex layout="row" layout-align="end center">\n                            <md-button type="submit" ng-click="mergeContact($event)" class="send-button md-raised md-teal-A700-bg" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.MERGE\' | translate}}\n                            </md-button>\n                            <md-button type="submit" ng-click="duplicateContact($event)" class="send-button md-raised md-cyan-A700-bg" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.DUPLICATE\' | translate}}\n                            </md-button>\n                            <md-button type="submit" ng-click="addNewContact($event)" class="send-button md-accent md-raised" ng-if="newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.ADD\'| translate }}\n                            </md-button>\n                            <md-button type="submit" ng-click="saveContact($event)" class="send-button md-accent md-raised" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.SAVE\' | translate }}\n                            </md-button>\n                        </div>\n                    </div>\n                    <div layout="row">\n                        <md-card flex="75" layout-padding>\n                            <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">PERSONAL_INFO</div>\n                            <form name="detailForm" novalidate>\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n                                        <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n                                        <input type="text" name="firstName" ng-model="contact.firstName" class="text-truncate" required>\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n                                        <input type="text" name="lastName" ng-model="contact.lastName" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.PHONE">Phone</label>\n                                        <md-icon md-font-icon="icon-phone"></md-icon>\n                                        <input type="text" name="phone" ng-model="contact.phone" class="text-truncate" required>\n                                        <div ng-messages="detailForm.phone.$error" ng-show="detailForm.phone.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="DASHBOARDS.ERRORS.PHONE_REQUIRED">Phone name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.MOBILE">Mobile</label>\n                                        <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n                                        <input type="text" name="mobile" ng-model="contact.mobile" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.EMAIL">Email</label>\n                                        <md-icon md-font-icon="icon-email" class="email"></md-icon>\n                                        <input type="email" name="email" ng-model="contact.email" class="text-truncate">\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="email">\n                                                <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.FAX">Fax</label>\n                                        <md-icon md-font-icon="icon-deskphone"></md-icon>\n                                        <input type="text" name="fax" ng-model="contact.fax">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n                                        <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                                        <input type="date" name="dateOfBirth" ng-model="contact.dateOfBirth" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.COMPANY">Company</label>\n                                        <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n                                        <md-select name="company" ng-model="contact.CompanyId">\n                                            <md-option ng-value="company.id" ng-repeat="company in companies.rows">{{company.name}}</md-option>\n                                            <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em></md-option>\n                                        </md-select>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.TAG">TAG</label>\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <md-select ng-model="contact.tags" multiple>\n                                            <md-option ng-value="tag.name" ng-repeat="tag in tab.tags.rows">{{tag.name}}</md-option>\n                                        </md-select>\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.COUNTRY">Country</label>\n                                        <md-icon md-font-icon="icon-home" class="country"></md-icon>\n                                        <input type="text" name="country" ng-model="contact.country" class="text-truncate">\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.CITY">City</label>\n                                        <input type="text" name="city" ng-model="contact.city">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.STREET">Street</label>\n                                        <input type="text" name="street" ng-model="contact.street">\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n                                        <input type="text" name="postalCode" ng-model="contact.postalCode">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n                                        <md-icon md-font-icon="icon-note"></md-icon>\n                                        <textarea ng-model="contact.description" type="text" max-rows="4"></textarea>\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </md-card>\n                        <md-card flex="25" layout-padding>\n                            <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n                            <form name="customFieldsForm" novalidate>\n\n                                \x3c!-- START INPUT LIST --\x3e\n                                <md-input-container class="md-block" ng-if="newContact">\n                                    <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n                                    <md-select name="list" ng-model="contact.ListId" ng-change="getCustomFields(contact.ListId)" required>\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in tab.userLists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                <md-input-container class="md-block" ng-if="!newContact">\n                                    <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n                                    <md-select ng-disabled="true" name="list" ng-model="contact.ListId" required>\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in tab.lists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                \x3c!-- END INPUT LIST --\x3e\n\n                                <div ng-repeat="customField in tab.customFields.rows" class="md-block" ng-switch="customField.type">\n                                    <div ng-switch-when="datetime">\n                                        <label>{{customField.alias}}</label>\n                                        <div ng-init="contact[\'cf_\' + customField.id] = getDateFromString(contact[\'cf_\' + customField.id])">\n                                            <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                                            <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                                        </div>\n                                    </div>\n\n                                    <div ng-switch-when="select">\n                                        <label>{{customField.alias}}</label>\n                                        <md-select ng-model="contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                            <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-select>\n                                    </div>\n\n                                    <md-input-container ng-switch-when="switch">\n                                        <md-switch aria-label="{{customField.alias}}" ng-model="contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                                            {{customField.alias}}\n                                        </md-switch>\n                                    </md-input-container>\n\n                                    <md-input-container ng-switch-default>\n                                        <label>{{customField.alias}}</label>\n                                        <input type="{{customField.type}}" ng-model="contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </md-card>\n                    </div>\n                </md-content>\n            </md-tab-body>\n        </md-tab>\n\n        <md-tab ng-if="!newContact">\n            <md-tab-label>\n                <span translate="DASHBOARDS.MOTION_BULL">Motion Bull</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryHopper.filter = query;" on-collapse="queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryHopper.sort" md-on-reorder="getHoppers">\n                                    <tr md-row>\n                                        <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                        <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="hoppers.count">\n                                        <td md-cell colspan="3">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, hopper) in hoppers.rows">\n                                        <td md-cell>{{hopper.id}}</td>\n                                        <td md-cell>{{hopper.phone}}</td>\n                                        <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="queryHopper.page" md-total="{{hoppers.count}}" md-on-paginate="getHoppers" md-page-select></md-table-pagination>\n                    </div>\n                </md-card>\n\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryFinal.filter = query;" on-collapse="queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryFinal.sort" md-on-reorder="getFinals">\n                                    <tr md-row>\n                                        <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                        <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="statedesc">{{ \'CONTACTMANAGER.STATUS\' | translate }}</th>\n                                        <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                        <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="finals.count">\n                                        <td md-cell colspan="5">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, final) in finals.rows">\n                                        <td md-cell>{{final.uniqueid}}</td>\n                                        <td md-cell>{{final.calleridnum}}</td>\n                                        <td md-cell>{{final.statedesc}}</td>\n                                        <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n                                        <td md-cell>{{final.disposition}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryFinal.limit" md-limit-options="[10, 15, 20]" md-page="queryFinal.page" md-total="{{finals.count}}" md-on-paginate="getFinals" md-page-select></md-table-pagination>\n                    </div>\n                </md-card>\n\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryHistory.filter = query;" on-collapse="queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryHistory.sort" md-on-reorder="getHistories">\n                                    <tr md-row>\n                                        <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                        <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="statedesc">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                        <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                        <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                        <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="histories.count">\n                                        <td md-cell colspan="7">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, history) in histories.rows">\n                                        <td md-cell>{{history.uniqueid}}</td>\n                                        <td md-cell>{{history.calleridnum}}</td>\n                                        <td md-cell>{{history.statedesc}}</td>\n                                        <td md-cell>{{history.scheduledat}}</td>\n                                        <td md-cell>{{history.starttime}}</td>\n                                        <td md-cell>{{history.endtime}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryHistory.limit" md-limit-options="[10, 15, 20]" md-page="queryHistory.page" md-total="{{histories.count}}" md-on-paginate="getHistories" md-page-select></md-table-pagination>\n\n                    </div>\n                </md-card>\n            </md-tab-body>\n        </md-tab>\n    </md-tabs>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <md-dialog-content ms-scroll>\n        <div layout="row">\n            <div flex>\n                <md-radio-group ng-model="vm.choice" ng-change="vm.saveDisposition()">\n                    <md-radio-button value="fax"><span translate="DASHBOARDS.FAX">Fax</span></md-radio-button>\n                    <md-radio-button value="amd"><span translate="DASHBOARDS.ANSWER_MACHINE">Answer Machine</span></md-radio-button>\n                    <md-radio-button value="interested"><span translate="DASHBOARDS.INTERESTED">Interested</span></md-radio-button>\n                    <md-radio-button value="notinterested"><span translate="DASHBOARDS.NOT_INTERESTED">Not Interested</span></md-radio-button>\n                    <md-radio-button value="sold"><span translate="DASHBOARDS.SOLD">Sold</span></md-radio-button>\n                    <md-radio-button value="special"><span translate="DASHBOARDS.SPECIAL">Special</span></md-radio-button>\n\n                    <md-radio-button value="blacklist"><span translate="DASHBOARDS.BLACKLIST">Blacklist</span></md-radio-button>\n                    <md-radio-button value="reschedule"><span translate="DASHBOARDS.RESCHEDULE">Reschedule</span></md-radio-button>\n                </md-radio-group>\n            </div>\n            <div flex>\n                <md-radio-group ng-model="vm.choice" ng-change="vm.saveDisposition()">\n                    <md-radio-button ng-repeat="disposition in vm.dispositions.rows" value="{{disposition.name}}">{{disposition.name}}</md-radio-button>\n                </md-radio-group>\n            </div>\n        </div>\n    </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <form name="dateTime" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div layout="row">\n                <div flex class="md-block">\n                    <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n                        <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n\n                <div flex class="md-block">\n                    <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n                        <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/directives/popup/popup.html",'<md-content class="md-padding">\n    <div ng-bind-html="html"></div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/mycontacts/agent.general.mycontacts.html",'<div layout="rows">\n    <md-card flex="25" layout-padding>\n        <md-button translate="CONTACTMANAGER.ALL_CONTACTS" ng-click="vm.refreshContacts()"> AllContacts </md-button>\n        <md-input-container>\n            <label>Select a list</label>\n            <md-select flex="100" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n                <md-optgroup label="Lists">\n                    <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n                </md-optgroup>\n            </md-select>\n        </md-input-container>\n    </md-card>\n    <md-card flex="75">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n                <div flex></div>\n                \x3c!-- <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar> --\x3e\n                <md-button class="md-icon-button" ng-click="vm.openContact($event)" aria-label="add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n                <md-button class="md-icon-button" ng-click="vm.refreshContacts($event)" aria-label="refresh Contacts" translate translate-attr-label="DASHBOARDS.REFRESH_CONTACTS">\n                    <md-icon md-font-icon="icon-reload"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                    <tr md-row>\n                        <th md-column md-order-by="id">ID</th>\n                        <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n                        <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n                        <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n                        <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n                        <th md-column width="10px"></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.contacts.rows.length">\n                        <td md-cell colspan="10">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="contact in vm.contacts.rows">\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="id">{{contact.id}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="phone">{{contact.phone}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="email">{{contact.email}}</td>\n                        <td ng-click="vm.openContact(ev, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                        <td md-cell class="actions">\n                            <md-menu>\n                                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n                                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                </md-button>\n\n                                <md-menu-content width="3">\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.openContact(ev, contact)" translate="DASHBOARDS.EDIT">\n                                            Edit Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.mergeContact(ev, contact)" translate="DASHBOARDS.MERGE">\n                                            Merge Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.duplicateContact(ev, contact)" translate="DASHBOARDS.DUPLICATE">\n                                            Duplicate Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                </md-menu-content>\n                            </md-menu>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n    </md-card>\n\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/recordings/agent.general.recordings.html",'<md-card>\n    <md-toolbar class="md-table-toolbar md-default">\n        <div class="md-toolbar-tools">\n            <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n            <div flex></div>\n        </div>\n    </md-toolbar>\n    <md-table-container>\n        <table md-table md-progress="vm.promise">\n            <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n                <tr md-row>\n                    <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n                    <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n                    <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n                    <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n                    <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n                    <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n                    <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n                    <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                    <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n                    <th md-column width="10px"></th>\n                </tr>\n            </thead>\n            <tbody md-body>\n                <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n                    <td md-cell colspan="10">\n                        <div layout="row" layout-align="center center">\n                            <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                        </div>\n                    </td>\n                </tr>\n                <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n                    <td md-cell class="type ">{{voiceRecording.type}}</td>\n                    <td md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n                    <td md-cell class="calleridnum ">{{voiceRecording.calleridnum}}</td>\n                    <td md-cell class="exten ">{{voiceRecording.exten}}</td>\n                    <td md-cell class="connectedlinenum ">{{voiceRecording.connectedlinenum}}</td>\n                    <td md-cell class="queue ">{{voiceRecording.queue}}</td>\n                    <td md-cell class="rating ">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span></td>\n                    <td md-cell class="audio " ng-switch="voiceRecording.format">\n                        <audio controls ng-switch-when=".wav">\n                      <source ng-src="{{\'api/voice/recordings/\' + voiceRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source> Your browser does not support the audio element.\n                     </audio>\n                        <span ng-switch-when=".gsm">\n                      <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n                     </span>\n                    </td>\n                    <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n                    <td md-cell class="actions">\n                        <md-menu>\n                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                            </md-button>\n\n                            <md-menu-content width="3">\n                                <md-menu-item>\n                                    <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n                                        Download VoiceRecording\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </td>\n                </tr>\n            </tbody>\n        </table>\n    </md-table-container>\n\n    <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timelapse"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.inbound.waiting || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-52 line-height-72">\n                        {{vm.inbound.talking || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TALKING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TALKING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TALKING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.inbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-missed"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-52 line-height-72">\n                        {{vm.inbound.abandoned || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timer-sand"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_TALK_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_TALK_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-42 line-height-72">\n                        {{ vm.inbound.answerRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.abandonRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDON_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.originated || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" class="page-layout simple right-sidenav" layout="row">\n    \x3c!-- CENTER --\x3e\n    <div class="center" flex ms-scroll>\n        \x3c!-- CONTENT --\x3e\n        <div class="content">\n            \x3c!--  NOTE: aggoiungere nel controller ng-if="vm.hasPermission()" --\x3e\n            <md-tabs md-selected="vm.currentTab" ng-if="vm.hasPermission()" md-dynamic-height>\n                <md-tab label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n                    <div ui-view="voice"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n                    <div ui-view="dialer"></div>\n                </md-tab>\n            </md-tabs>\n        </div>\n        \x3c!-- END CONTENT --\x3e\n\n        <md-card ng-if="!vm.hasPermission()">\n            <md-card-header>\n                <md-card-header-text>\n                    <span class="md-title" translate="DASHBOARDS.WELCOME_TO_MOTION">Welcome to Motion</span>\n                </md-card-header-text>\n            </md-card-header>\n            <md-card-title>\n                <md-card-title-text>\n                    <span class="md-headline" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through sections.</span>\n                </md-card-title-text>\n            </md-card-title>\n            <md-card-content>\n            </md-card-content>\n        </md-card>\n    </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timelapse"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.inbound.waiting || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-52 line-height-72">\n                        {{vm.inbound.talking || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TALKING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TALKING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TALKING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.inbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-missed"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-52 line-height-72">\n                        {{vm.inbound.abandoned || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timer-sand"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_TALK_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_TALK_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-42 line-height-72">\n                        {{ vm.inbound.answerRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.abandonRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDON_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.unmanaged || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n    </div>\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.outbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.outbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-clock"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-division"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-42 line-height-72">\n                        {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n    <form name="faxAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.faxAccount.name" required autofocus>\n                <div ng-messages="faxAccountForm.name.$error" ng-show="faxAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.TRUNK">trunk</label>\n                <md-select ng-model="vm.faxAccount.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="faxAccountForm.TrunkId.$error" ng-show="faxAccountForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.LOCALSTATIONID">localstationid</label>\n                <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" required>\n                <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n                <div ng-messages="faxAccountForm.localstationid.$error" ng-show="faxAccountForm.localstationid.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.faxAccount.description">\n                <div ng-messages="faxAccountForm.description.$error" ng-show="faxAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n                    ADD FAXACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",'<md-dialog class="faxDisposition-dialog" aria-label="New FaxDisposition">\n    <form name="faxDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.faxDisposition.name" required autofocus>\n                <div ng-messages="faxDispositionForm.name.$error" ng-show="faxDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxDisposition" ng-click="vm.saveFaxDisposition()" class="send-button md-accent md-raised" ng-disabled="faxDispositionForm.$invalid || faxDispositionForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxDisposition" ng-click="vm.addNewFaxDisposition()" class="send-button md-accent md-raised" ng-disabled="faxDispositionForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXDISPOSITION" translate-attr-aria-label="FAX.ADD_FAXDISPOSITION">\n                    ADD FAXDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxDisposition" ng-click="vm.deleteFaxDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="faxAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/faxAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.faxAccount.id}} {{vm.faxAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (faxDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.faxAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.HEADERINFO">headerinfo</label>\n                                <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" required>\n                                <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n                                <div ng-messages="generalForm.headerinfo.$error" ng-show="generalForm.headerinfo.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.TRUNK">trunk</label>\n                                <md-select ng-model="vm.faxAccount.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.LOCALSTATIONID">localstationid</label>\n                                <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" required>\n                                <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n                                <div ng-messages="generalForm.localstationid.$error" ng-show="generalForm.localstationid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.LIST">List</label>\n                                <md-select ng-model="vm.faxAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.faxAccount.fidelity" aria-label="fidelity"><span translate="FAX.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.faxAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.faxAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.faxAccount.ecm" aria-label="ECM"><span translate="FAX.ECM">ECM</span></md-switch>\n                                <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MINRATE">minrate</label>\n                                <md-select ng-model="vm.faxAccount.minrate" required>\n                                    <md-option ng-value="\'2400\'">2400</md-option>\n                                    <md-option ng-value="\'4800\'">4800</md-option>\n                                    <md-option ng-value="\'7200\'">7200</md-option>\n                                    <md-option ng-value="\'9600\'">9600</md-option>\n                                    <md-option ng-value="\'12000\'">12000</md-option>\n                                    <md-option ng-value="\'14400\'">14400</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n                                <div ng-messages="advancedForm.minrate.$error" ng-show="advancedForm.minrate.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MAXRATE">maxrate</label>\n                                <md-select ng-model="vm.faxAccount.maxrate" required>\n                                    <md-option ng-value="\'2400\'">2400</md-option>\n                                    <md-option ng-value="\'4800\'">4800</md-option>\n                                    <md-option ng-value="\'7200\'">7200</md-option>\n                                    <md-option ng-value="\'9600\'">9600</md-option>\n                                    <md-option ng-value="\'12000\'">12000</md-option>\n                                    <md-option ng-value="\'14400\'">14400</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n                                <div ng-messages="advancedForm.maxrate.$error" ng-show="advancedForm.maxrate.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MODEM">modem</label>\n                                <input type="text" name="modem" ng-model="vm.faxAccount.modem" required>\n                                <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n                                <div ng-messages="advancedForm.modem.$error" ng-show="advancedForm.modem.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.GATEWAY">gateway</label>\n                                <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" required>\n                                <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n                                <div ng-messages="advancedForm.gateway.$error" ng-show="advancedForm.gateway.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.FAXDETECT">faxdetect</label>\n                                <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" required>\n                                <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n                                <div ng-messages="advancedForm.faxdetect.$error" ng-show="advancedForm.faxdetect.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.T38TIMEOUT">t38timeout</label>\n                                <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" required>\n                                <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n                                <div ng-messages="advancedForm.t38timeout.$error" ng-show="advancedForm.t38timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.SIP">SIP</label>\n                                <md-select ng-model="vm.faxAccount.tech" required>\n                                    <md-option ng-value="\'SIP\'">SIP</md-option>\n                                    <md-option ng-value="\'IAX\'">IAX</md-option>\n                                    <md-option ng-value="\'DADHI\'">DADHI</md-option>\n                                    <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.tech.$error" ng-show="advancedForm.tech.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="FaxAccountFaxDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountFaxDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="FAX.FAXDISPOSITIONS">FaxDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event)" aria-label="add faxDisposition" translate translate-attr-label="FAX.ADD_FAXDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountFaxDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedFaxAccountFaxDispositions.length}} {{vm_dc.selectedFaxAccountFaxDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountFaxDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAXACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountFaxDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountFaxDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'FAX.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="faxDisposition" md-select-id="id" ng-repeat="faxDisposition in vm_dc.faxAccountFaxDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" translate="FAX.EDIT_FAXDISPOSITION">\n                                                                Edit FaxDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(faxDisposition, $event)" translate="FAX.DELETE_FAXDISPOSITION">\n                                                                Delete FaxDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.faxAccountFaxDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="FAX.NO_FAXDISPOSITION_AVAILABLE">No faxdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountFaxDispositions.count}}" md-on-paginate="vm_dc.getFaxAccountFaxDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.faxAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.faxAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="faxAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.faxAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.faxAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="faxAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.faxAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.faxAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="FAX.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-faxAccounts-count">\n                    <span>{{vm.selectedFaxAccounts.length}}</span>\n                <span translate="FAX.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAXACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" filename="faxAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAXACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FAXACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.faxAccounts.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n                                <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[faxAccount.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(faxAccount, $event)" translate="FAX.EDIT_FAXACCOUNT">\n                                                    Edit FaxAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(faxAccount, $event)" translate="FAX.DELETE_FAXACCOUNT">\n                                                    Delete FaxAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FAXACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n    <form name="faxQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="faxQueueForm.name.$error" ng-show="faxQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.faxQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="faxQueueForm.strategy.$error" ng-show="faxQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" required>\n                <div ng-messages="faxQueueForm.timeout.$error" ng-show="faxQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.faxQueue.description">\n                <div ng-messages="faxQueueForm.description.$error" ng-show="faxQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n                    ADD FAXQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue">\n    <form name="faxQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="FAX.TEAMADD_FAXQUEUE">Add Team in FAXQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="FAX.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="faxQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="faxQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/faxQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.faxQueue.id}} {{vm.faxQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.faxQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.faxQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="FAX.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-faxQueues-count">\n                    <span>{{vm.selectedFaxQueues.length}}</span>\n                <span translate="FAX.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAXQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" filename="faxQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAXQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FAXQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.faxQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n                                <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(faxQueue, $event)" translate="FAX.EDIT_FAXQUEUE">\n                                                    Edit FaxQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(faxQueue, $event)" translate="FAX.DELETE_FAXQUEUE">\n                                                    Delete FaxQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FAXQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n    <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n        <div id="maintenance-form" class="md-whiteframe-8dp">\n            <div>\n                <img src="assets/images/logos/login.png" alt="motion_logo_login" />\n            </div>\n\n            <br>\n\n            <div>\n                <div class="info-line">\n                    <div class="title">Useful pages</div>\n                </div>\n                <section layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMD/Welcome" target="_blank">\n                            <md-icon md-font-icon="icon-wikipedia"></md-icon>\n                        </a>\n                        <div class="info"><a href="https://wiki.xcallymotion.com/display/XMD/Welcome" target="_blank">Wiki</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n                            <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n                        </a>\n                        <div class="info"><a href="/apidoc" target="_blank">API</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n                            <md-icon md-font-icon="icon-headphones"></md-icon>\n                        </a>\n                        <div class="info"><a href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n                            <md-icon md-font-icon="icon-console"></md-icon>\n                        </a>\n                        <div class="info"><a href="/demo" target="_blank">Demo</a></div>\n                    </div>\n\n                </section>\n\n                <br>\n\n                <div class="info-line">\n                    <div class="title">Follow us on</div>\n                </div>\n                <section layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                    <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n                        <md-icon md-font-icon="icon-facebook"></md-icon>\n                    </a>\n\n                    <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n                        <md-icon md-font-icon="icon-twitter"></md-icon>\n                    </a>\n                    <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n                        <md-icon md-font-icon="icon-google-plus"></md-icon>\n                    </a>\n                    <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n                        <md-icon md-font-icon="icon-linkedin"></md-icon>\n                    </a>\n                </section>\n\n                <br>\n\n                <div class="info-line">\n                    <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n                </div>\n                <div class="info-line">\n                    <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n                </div>\n\n                <br>\n\n                <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n                <br>\n\n                <div class="info">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n                <br>\n\n                <div class="info"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n            </div>\n        </div>\n    </div>\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n    <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.freshdeskAccount.name" required autofocus>\n                <div ng-messages="freshdeskAccountForm.name.$error" ng-show="freshdeskAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.freshdeskAccount.username" required>\n                <div ng-messages="freshdeskAccountForm.username.$error" ng-show="freshdeskAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" required>\n                <div ng-messages="freshdeskAccountForm.remoteUri.$error" ng-show="freshdeskAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n                <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" required>\n                <div ng-messages="freshdeskAccountForm.apiKey.$error" ng-show="freshdeskAccountForm.apiKey.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="freshdeskAccountForm.serverUrl.$error" ng-show="freshdeskAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n                <div ng-messages="freshdeskAccountForm.description.$error" ng-show="freshdeskAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n                    ADD FRESHDESKACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n    <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" required autofocus>\n                <div ng-messages="freshdeskConfigurationForm.name.$error" ng-show="freshdeskConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.freshdeskConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="freshdeskConfigurationForm.channel.$error" ng-show="freshdeskConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.freshdeskConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="freshdeskConfigurationForm.type.$error" ng-show="freshdeskConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE"\n                    translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n                    ADD FRESHDESKCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n    <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="freshdeskAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.freshdeskAccount.id}} {{vm.freshdeskAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.freshdeskAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.freshdeskAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n                                <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" required>\n                                <div ng-messages="generalForm.apiKey.$error" ng-show="generalForm.apiKey.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n                                                        Delete FreshdeskConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.TAGS">TAGS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-table-container class="md-whiteframe-1dp padding-20">\n                                                <md-input-container class="md-block">\n                                                    <label translate="INTEGRATIONS.TAGS">Tags</label>\n                                                    <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n                                                        <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n                                                    </md-select>\n                                                </md-input-container>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-freshdeskAccounts-count">\n                    <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FRESHDESKACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" filename="freshdeskAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="FRESHDESKACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n                                <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(freshdeskAccount, $event)" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n                                                    Edit FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event)" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n                                                    Test FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event)" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n                                                    Delete FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n    <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.salesforceAccount.name" required autofocus>\n                <div ng-messages="salesforceAccountForm.name.$error" ng-show="salesforceAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.salesforceAccount.username" required>\n                <div ng-messages="salesforceAccountForm.username.$error" ng-show="salesforceAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" required>\n                <div ng-messages="salesforceAccountForm.remoteUri.$error" ng-show="salesforceAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="salesforceAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSalesforceAccount ">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="salesforceAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n                <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" required>\n                <div ng-messages="salesforceAccountForm.clientId.$error" ng-show="salesforceAccountForm.clientId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n                <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" required>\n                <div ng-messages="salesforceAccountForm.clientSecret.$error" ng-show="salesforceAccountForm.clientSecret.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n                <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" required>\n                <div ng-messages="salesforceAccountForm.securityToken.$error" ng-show="salesforceAccountForm.securityToken.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="salesforceAccountForm.serverUrl.$error" ng-show="salesforceAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n                <div ng-messages="salesforceAccountForm.description.$error" ng-show="salesforceAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n                    ADD SALESFORCEACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n    <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.salesforceConfiguration.name" required autofocus>\n                <div ng-messages="salesforceConfigurationForm.name.$error" ng-show="salesforceConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.salesforceConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="salesforceConfigurationForm.channel.$error" ng-show="salesforceConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.salesforceConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="salesforceConfigurationForm.type.$error" ng-show="salesforceConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE"\n                    translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n                    ADD SALESFORCECONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n    <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="salesforceAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/salesforceAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.salesforceAccount.id}} {{vm.salesforceAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.salesforceAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.salesforceAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSalesforceAccount ">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n                                <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" required>\n                                <div ng-messages="generalForm.clientId.$error" ng-show="generalForm.clientId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n                                <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" required>\n                                <div ng-messages="generalForm.clientSecret.$error" ng-show="generalForm.clientSecret.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n                                <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" required>\n                                <div ng-messages="generalForm.securityToken.$error" ng-show="generalForm.securityToken.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n                                                        Delete SalesforceConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-salesforceAccounts-count">\n                    <span>{{vm.selectedSalesforceAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SALESFORCEACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" filename="salesforceAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="SALESFORCEACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n                                <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(salesforceAccount, $event)" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n                                                    Edit SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event)" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n                                                    Test SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event)" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n                                                    Delete SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n    <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" required autofocus>\n                <div ng-messages="sugarcrmAccountForm.name.$error" ng-show="sugarcrmAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" required>\n                <div ng-messages="sugarcrmAccountForm.username.$error" ng-show="sugarcrmAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" required>\n                <div ng-messages="sugarcrmAccountForm.remoteUri.$error" ng-show="sugarcrmAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="sugarcrmAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSugarcrmAccount ">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="sugarcrmAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="sugarcrmAccountForm.serverUrl.$error" ng-show="sugarcrmAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n                <div ng-messages="sugarcrmAccountForm.description.$error" ng-show="sugarcrmAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n                    ADD SUGARCRMACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n    <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" required autofocus>\n                <div ng-messages="sugarcrmConfigurationForm.name.$error" ng-show="sugarcrmConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.sugarcrmConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="sugarcrmConfigurationForm.channel.$error" ng-show="sugarcrmConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.sugarcrmConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="sugarcrmConfigurationForm.type.$error" ng-show="sugarcrmConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n                    ADD SUGARCRMCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n    <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="sugarcrmAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.sugarcrmAccount.id}} {{vm.sugarcrmAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSugarcrmAccount ">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n                                                        Delete SugarcrmConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-sugarcrmAccounts-count">\n                    <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SUGARCRMACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" filename="sugarcrmAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="SUGARCRMACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n                                <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(sugarcrmAccount, $event)" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n                                                    Edit SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event)" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n                                                    Test SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event)" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n                                                    Delete SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n    <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.zendeskAccount.name" required autofocus>\n                <div ng-messages="zendeskAccountForm.name.$error" ng-show="zendeskAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.zendeskAccount.username" required>\n                <div ng-messages="zendeskAccountForm.username.$error" ng-show="zendeskAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" required>\n                <div ng-messages="zendeskAccountForm.remoteUri.$error" ng-show="zendeskAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n                <md-select ng-model="vm.zendeskAccount.authType" required>\n                    <md-option ng-value="\'password\'">Password</md-option>\n                    <md-option ng-value="\'token\'">Token</md-option>\n                </md-select>\n                <div ng-messages="zendeskAccountForm.authType.$error" ng-show="zendeskAccountForm.authType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="zendeskAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newZendeskAccount  && vm.zendeskAccount.authType == \'password\'">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="zendeskAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n                <label translate="INTEGRATIONS.TOKEN">Token</label>\n                <input type="text" name="token" ng-model="vm.zendeskAccount.token" required>\n                <div ng-messages="zendeskAccountForm.token.$error" ng-show="zendeskAccountForm.token.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="zendeskAccountForm.serverUrl.$error" ng-show="zendeskAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n                <div ng-messages="zendeskAccountForm.description.$error" ng-show="zendeskAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n                    ADD ZENDESKACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n    <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="zendeskAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/zendeskAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.zendeskAccount.id}} {{vm.zendeskAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.zendeskAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.zendeskAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n                                <md-select ng-model="vm.zendeskAccount.authType" required>\n                                    <md-option ng-value="\'password\'">Password</md-option>\n                                    <md-option ng-value="\'token\'">Token</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.authType.$error" ng-show="generalForm.authType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newZendeskAccount  && vm.zendeskAccount.authType == \'password\'">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n                                <label translate="INTEGRATIONS.TOKEN">Token</label>\n                                <input type="text" name="token" ng-model="vm.zendeskAccount.token" required>\n                                <div ng-messages="generalForm.token.$error" ng-show="generalForm.token.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n                                                        Delete ZendeskConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.TAGS">TAGS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-table-container class="md-whiteframe-1dp padding-20">\n                                                <md-input-container class="md-block">\n                                                    <label translate="INTEGRATIONS.TAGS">Tags</label>\n                                                    <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n                                                        <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n                                                    </md-select>\n                                                </md-input-container>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n    <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.zendeskConfiguration.name" required autofocus>\n                <div ng-messages="zendeskConfigurationForm.name.$error" ng-show="zendeskConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.zendeskConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="zendeskConfigurationForm.channel.$error" ng-show="zendeskConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.zendeskConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="zendeskConfigurationForm.type.$error" ng-show="zendeskConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n                    ADD ZENDESKCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-zendeskAccounts-count">\n                    <span>{{vm.selectedZendeskAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ZENDESKACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" filename="zendeskAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="ZENDESKACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n                                <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(zendeskAccount, $event)" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n                                                    Edit ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event)" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n                                                    Test ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event)" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n                                                    Delete ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n    <form name="mailAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.mailAccount.name" required autofocus>\n                <div ng-messages="mailAccountForm.name.$error" ng-show="mailAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n                <input type="email" name="address" ng-model="vm.mailAccount.address" required>\n                <div ng-messages="mailAccountForm.address.$error" ng-show="mailAccountForm.address.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.mailAccount.description">\n                <div ng-messages="mailAccountForm.description.$error" ng-show="mailAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n                    ADD MAILACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",'<md-dialog class="mailDisposition-dialog" aria-label="New MailDisposition">\n    <form name="mailDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.mailDisposition.name" required autofocus>\n                <div ng-messages="mailDispositionForm.name.$error" ng-show="mailDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailDisposition" ng-click="vm.saveMailDisposition()" class="send-button md-accent md-raised" ng-disabled="mailDispositionForm.$invalid || mailDispositionForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailDisposition" ng-click="vm.addNewMailDisposition()" class="send-button md-accent md-raised" ng-disabled="mailDispositionForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILDISPOSITION" translate-attr-aria-label="MAIL.ADD_MAILDISPOSITION">\n                    ADD MAILDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailDisposition" ng-click="vm.deleteMailDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="mailAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/mailAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.mailAccount.id}} {{vm.mailAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (mailDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid) || (whitelabelForm.$invalid) || (signatureForm.$invalid)"\n                translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.mailAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n                                <input type="email" name="address" ng-model="vm.mailAccount.address" required>\n                                <div ng-messages="generalForm.address.$error" ng-show="generalForm.address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.LIST">List</label>\n                                <md-select ng-model="vm.mailAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.TEMPLATE">template</label>\n                                <md-select ng-model="vm.mailAccount.TemplateId">\n                                    <md-option ng-value="TemplateId.id" ng-repeat="TemplateId in vm.templates">{{ TemplateId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TemplateId.$error" ng-show="generalForm.TemplateId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.TEMPLATE_REQUIRED">template field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.fidelity" aria-label="Fidelity"><span translate="MAIL.FIDELITY">Fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.mailAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.service" aria-label="service"><span translate="MAIL.SERVICE">service</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.mailAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.IMAP">IMAP</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n                        </div>\n                        <form name="imapForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.HOST">host</label>\n                                <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" required autofocus>\n                                <div ng-messages="imapForm.Imap.host.$error" ng-show="imapForm.Imap.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.USERNAME">username</label>\n                                <input type="text" name="Imap.username" ng-model="vm.mailAccount.Imap.username" required>\n                                <div ng-messages="imapForm.Imap.username.$error" ng-show="imapForm.Imap.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PASSWORD">password</label>\n                                <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n                                <div ng-messages="imapForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newMailAccount ">\n                                <label translate="MAIL.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="Imap.password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="imapForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="MAIL.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PORT">port</label>\n                                <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" required>\n                                <div ng-messages="imapForm.Imap.port.$error" ng-show="imapForm.Imap.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.MAILBOX">mailbox</label>\n                                <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox">\n                                <div ng-messages="imapForm.Imap.mailbox.$error" ng-show="imapForm.Imap.mailbox.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n                                <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" required>\n                                <div ng-messages="imapForm.Imap.connTimeout.$error" ng-show="imapForm.Imap.connTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n                                <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" required>\n                                <div ng-messages="imapForm.Imap.authTimeout.$error" ng-show="imapForm.Imap.authTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.delete" aria-label="delete"><span translate="MAIL.DELETE">delete</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.ssl" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.keepalive" aria-label="keepalive"><span translate="MAIL.KEEPALIVE">keepalive</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SMTP">SMTP</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n                        </div>\n                        <form name="smtpForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.HOST">host</label>\n                                <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" required autofocus>\n                                <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.USERNAME">username</label>\n                                <input type="text" name="Smtp.username" ng-model="vm.mailAccount.Smtp.username" required>\n                                <div ng-messages="smtpForm.Smtp.username.$error" ng-show="smtpForm.Smtp.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PASSWORD">password</label>\n                                <input type="password" name="Smtp.password" ng-model="vm.mailAccount.Smtp.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n                                <div ng-messages="smtpForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newMailAccount ">\n                                <label translate="MAIL.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="Smtp.password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="MAIL.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PORT">port</label>\n                                <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" required>\n                                <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Smtp.ssl" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="MailAccountMailDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MAIL.MAILDISPOSITIONS">MailDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailDisposition($event)" aria-label="add mailDisposition" translate translate-attr-label="MAIL.ADD_MAILDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedMailAccountMailDispositions.length}} {{vm_dc.selectedMailAccountMailDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAILACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'MAIL.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="mailDisposition" md-select-id="id" ng-repeat="mailDisposition in vm_dc.mailAccountMailDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" translate="MAIL.EDIT_MAILDISPOSITION">\n                                                                Edit MailDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(mailDisposition, $event)" translate="MAIL.DELETE_MAILDISPOSITION">\n                                                                Delete MailDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.mailAccountMailDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="MAIL.NO_MAILDISPOSITION_AVAILABLE">No maildisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailDispositions.count}}" md-on-paginate="vm_dc.getMailAccountMailDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.mailAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.mailAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.mailAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.mailAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.mailAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.mailAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.OTHERS">OTHERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.WHITELABEL">WHITELABEL</div>\n                        </div>\n                        <form name="whitelabelForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.WHITELABEL">whiteLabel</label>\n                                <textarea ng-model="vm.mailAccount.whiteLabel" md-maxlength="150" max-rows="5" autofocus></textarea>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container signature md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.SIGNATURE">SIGNATURE</div>\n                        </div>\n                        <form name="signatureForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MAIL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-mailAccounts-count">\n                    <span>{{vm.selectedMailAccounts.length}}</span>\n                <span translate="MAIL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAILACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" filename="mailAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAILACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MAILACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="address">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.mailAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n                                <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="address ">{{mailAccount.address}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(mailAccount, $event)" translate="MAIL.EDIT_MAILACCOUNT">\n                                                    Edit MailAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(mailAccount, $event)" translate="MAIL.DELETE_MAILACCOUNT">\n                                                    Delete MailAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MAILACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n    <form name="mailQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="mailQueueForm.name.$error" ng-show="mailQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.mailQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="mailQueueForm.strategy.$error" ng-show="mailQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" required>\n                <div ng-messages="mailQueueForm.timeout.$error" ng-show="mailQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.mailQueue.description">\n                <div ng-messages="mailQueueForm.description.$error" ng-show="mailQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n                    ADD MAILQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue">\n    <form name="mailQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MAIL.TEAMADD_MAILQUEUE">Add Team in MAILQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MAIL.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="mailQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="mailQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/mailQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.mailQueue.id}} {{vm.mailQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.mailQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.mailQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MAIL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-mailQueues-count">\n                    <span>{{vm.selectedMailQueues.length}}</span>\n                <span translate="MAIL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAILQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" filename="mailQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAILQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MAILQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.mailQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n                                <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(mailQueue, $event)" translate="MAIL.EDIT_MAILQUEUE">\n                                                    Edit MailQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(mailQueue, $event)" translate="MAIL.DELETE_MAILQUEUE">\n                                                    Delete MailQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MAILQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n    <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newIvrCampaign">\n                <div ng-messages="ivrCampaignForm.name.$error" ng-show="ivrCampaignForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                <md-select ng-model="vm.ivrCampaign.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.TrunkId.$error" ng-show="ivrCampaignForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                <md-select ng-model="vm.ivrCampaign.IntervalId" required>\n                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.IntervalId.$error" ng-show="ivrCampaignForm.IntervalId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                <md-select ng-model="vm.ivrCampaign.SquareProjectId" required>\n                    <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects">{{ SquareProjectId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.SquareProjectId.$error" ng-show="ivrCampaignForm.SquareProjectId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n                <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" required>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n                <div ng-messages="ivrCampaignForm.limitCalls.$error" ng-show="ivrCampaignForm.limitCalls.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n                <div ng-messages="ivrCampaignForm.description.$error" ng-show="ivrCampaignForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n                    ADD IVRCAMPAIGN\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign">\n    <form name="ivrCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign">\n    <form name="ivrCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="ivrCampaign-image" hide-xs>\n                    <img ng-src="assets/images/business/ivrCampaigns.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.ivrCampaign.id}} {{vm.ivrCampaign.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n                <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n                <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-block-helper"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"\n                translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                                <md-select ng-model="vm.ivrCampaign.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n                                <md-select ng-model="vm.ivrCampaign.TrunkBackupId">\n                                    <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkBackupId.$error" ng-show="generalForm.TrunkBackupId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                                <md-select ng-model="vm.ivrCampaign.IntervalId" required>\n                                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.IntervalId.$error" ng-show="generalForm.IntervalId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n                        </div>\n                        <form name="campaignForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                                <md-select ng-model="vm.ivrCampaign.SquareProjectId" required autofocus>\n                                    <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects">{{ SquareProjectId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="campaignForm.SquareProjectId.$error" ng-show="campaignForm.SquareProjectId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n                                <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n                                <div ng-messages="campaignForm.limitCalls.$error" ng-show="campaignForm.limitCalls.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n                        </div>\n                        <form name="originateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n                                <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdName.$error" ng-show="originateForm.dialOriginateCallerIdName.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n                                <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdNumber.$error" ng-show="originateForm.dialOriginateCallerIdNumber.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n                                <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n                                <div ng-messages="originateForm.dialOriginateTimeout.$error" ng-show="originateForm.dialOriginateTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n                        </div>\n                        <form name="globalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n                                <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n                                <div ng-messages="globalForm.dialGlobalMaxRetry.$error" ng-show="globalForm.dialGlobalMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n                        </div>\n                        <form name="congestionForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n                                <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionMaxRetry.$error" ng-show="congestionForm.dialCongestionMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n                                <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionRetryFrequency.$error" ng-show="congestionForm.dialCongestionRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n                        </div>\n                        <form name="busyForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n                                <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n                                <div ng-messages="busyForm.dialBusyMaxRetry.$error" ng-show="busyForm.dialBusyMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n                                <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n                                <div ng-messages="busyForm.dialBusyRetryFrequency.$error" ng-show="busyForm.dialBusyRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n                        </div>\n                        <form name="noanswerForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n                                <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerMaxRetry.$error" ng-show="noanswerForm.dialNoAnswerMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n                                <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerRetryFrequency.$error" ng-show="noanswerForm.dialNoAnswerRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n                        </div>\n                        <form name="globalintervalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n                                <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n                                <div ng-messages="globalintervalForm.dialGlobalInterval.$error" ng-show="globalintervalForm.dialGlobalInterval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n                        </div>\n                        <form name="timezoneForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n                                <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus>\n                                    <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n                                    <div ng-messages="timezoneForm.dialTimezone.$error" ng-show="timezoneForm.dialTimezone.$touched" role="alert">\n                                        <div ng-message="required">\n                                            <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n                                        </div>\n                                    </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditIvrCampaignHopper($event)" aria-label="add hopper" translate translate-attr-label="MOTIONDIALER.ADD_HOPPER">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.ContactId}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.phone}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countcongestionretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countbusyretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countnoanswerretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperHistories($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n                                            <td md-cell>{{hopperHistory.uniqueid}}</td>\n                                            <td md-cell>{{hopperHistory.ContactId}}</td>\n                                            <td md-cell>{{hopperHistory.calleridnum}}</td>\n                                            <td md-cell>{{hopperHistory.calleridname}}</td>\n                                            <td md-cell>{{hopperHistory.statedesc}}</td>\n                                            <td md-cell>{{hopperHistory.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.endtime | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperHistory, $event)" translate="MOTIONDIALER.DELETE_HOPPERHISTORY">\n                                                                Delete HopperHistory\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n                                            <td md-cell colspan="11">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.FINAL">FINAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperFinals($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'MOTIONDIALER.DISPOSITION\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n                                            <td md-cell>{{hopperFinal.uniqueid}}</td>\n                                            <td md-cell>{{hopperFinal.calleridnum}}</td>\n                                            <td md-cell>{{hopperFinal.calleridname}}</td>\n                                            <td md-cell>{{hopperFinal.statedesc}}</td>\n                                            <td md-cell>{{hopperFinal.countcongestionretry}}</td>\n                                            <td md-cell>{{hopperFinal.countbusyretry}}</td>\n                                            <td md-cell>{{hopperFinal.countnoanswerretry}}</td>\n                                            <td md-cell>{{hopperFinal.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.disposition}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperFinal, $event)" translate="MOTIONDIALER.DELETE_HOPPERFINAL">\n                                                                Delete HopperFinal\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n                                            <td md-cell colspan="15">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperBlacks($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n                                            <td md-cell>{{hopperBlack.ContactId}}</td>\n                                            <td md-cell>{{hopperBlack.phone}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperBlack, $event)" translate="MOTIONDIALER.DELETE_HOPPERBLACK">\n                                                                Delete HopperBlack\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n                                            <td md-cell colspan="4">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MOTIONDIALER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-ivrCampaigns-count">\n                    <span>{{vm.selectedIvrCampaigns.length}}</span>\n                <span translate="MOTIONDIALER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="IVRCAMPAIGNS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" filename="ivrCampaigns.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- IVRCAMPAIGN TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n                                <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n                                <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[ivrCampaign.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ SquareProjectId = vm.projects[ivrCampaign.SquareProjectId]; SquareProjectId.name }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(ivrCampaign, $event)" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n                                                    Edit IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.listadddialog(ivrCampaign, $event)" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n                                                    listadd IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event)" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n                                                    blacklistadd IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event)" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n                                                    Delete IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n    <form name="queueCampaignForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newQueueCampaign">\n                <div ng-messages="queueCampaignForm.name.$error" ng-show="queueCampaignForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                <md-select ng-model="vm.queueCampaign.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="queueCampaignForm.TrunkId.$error" ng-show="queueCampaignForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                <md-select ng-model="vm.queueCampaign.IntervalId" required>\n                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                </md-select>\n                <div ng-messages="queueCampaignForm.IntervalId.$error" ng-show="queueCampaignForm.IntervalId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.METHOD">Method</label>\n                <md-select ng-model="vm.queueCampaign.dialMethod" required>\n                    <md-option ng-value="\'progressive\'">Progressive</md-option>\n                    <md-option ng-value="\'power\'">PowerDialing</md-option>\n                    <md-option ng-value="\'predictive\'">Predictive</md-option>\n                </md-select>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n                <div ng-messages="queueCampaignForm.dialMethod.$error" ng-show="queueCampaignForm.dialMethod.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n                <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n                <md-select ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n                    <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }}</md-option>\n\n                    <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }}</md-option>\n                </md-select>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n                <div ng-messages="queueCampaignForm.dialPredictiveOptimization.$error" ng-show="queueCampaignForm.dialPredictiveOptimization.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n                <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n                <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" required>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n                <div ng-messages="queueCampaignForm.dialLimitQueue.$error" ng-show="queueCampaignForm.dialLimitQueue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.queueCampaign.description">\n                <div ng-messages="queueCampaignForm.description.$error" ng-show="queueCampaignForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n                    ADD QUEUECAMPAIGN\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">Add Team in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="queueCampaign-image" hide-xs>\n                    <img ng-src="assets/images/business/queueCampaigns.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.queueCampaign.id}} {{vm.queueCampaign.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n                <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n                <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-block-helper"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"\n                translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                                <md-select ng-model="vm.queueCampaign.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n                                <md-select ng-model="vm.queueCampaign.TrunkBackupId">\n                                    <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkBackupId.$error" ng-show="generalForm.TrunkBackupId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                                <md-select ng-model="vm.queueCampaign.IntervalId" required>\n                                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.IntervalId.$error" ng-show="generalForm.IntervalId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.queueCampaign.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n                        </div>\n                        <form name="campaignForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.METHOD">Method</label>\n                                <md-select ng-model="vm.queueCampaign.dialMethod" required autofocus>\n                                    <md-option ng-value="\'progressive\'">Progressive</md-option>\n                                    <md-option ng-value="\'power\'">PowerDialing</md-option>\n                                    <md-option ng-value="\'predictive\'">Predictive</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n                                <div ng-messages="campaignForm.dialMethod.$error" ng-show="campaignForm.dialMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n                                <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n                                <md-select ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n                                    <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n                                <div ng-messages="campaignForm.dialPredictiveOptimization.$error" ng-show="campaignForm.dialPredictiveOptimization.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n                                <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n                                <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n                                <div ng-messages="campaignForm.dialLimitQueue.$error" ng-show="campaignForm.dialLimitQueue.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n                        </div>\n                        <form name="queueForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n                                <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" autofocus>\n                                <div ng-messages="queueForm.dialQueueOptions.$error" ng-show="queueForm.dialQueueOptions.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n                                <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="99" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n                                <div ng-messages="queueForm.dialQueueTimeout.$error" ng-show="queueForm.dialQueueTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.queueCampaign.strategy" required>\n                                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                                    <md-option ng-value="\'random\'">Random</md-option>\n                                    <md-option ng-value="\'linear\'">Linear</md-option>\n                                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                                </md-select>\n                                <div ng-messages="queueForm.strategy.$error" ng-show="queueForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n                                <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n                                <div ng-messages="queueForm.timeout.$error" ng-show="queueForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.RETRY">Retry</label>\n                                <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n                                <div ng-messages="queueForm.retry.$error" ng-show="queueForm.retry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n                                <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n                                <div ng-messages="queueForm.wrapuptime.$error" ng-show="queueForm.wrapuptime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n                                <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n                                <div ng-messages="queueForm.weight.$error" ng-show="queueForm.weight.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n                                <md-select ng-model="vm.queueCampaign.musiconhold">\n                                    <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n                                <div ng-messages="queueForm.musiconhold.$error" ng-show="queueForm.musiconhold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                                <md-select ng-model="vm.queueCampaign.dialQueueProject">\n                                    <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="queueForm.dialQueueProject.$error" ng-show="queueForm.dialQueueProject.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n                        </div>\n                        <form name="originateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n                                <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdName.$error" ng-show="originateForm.dialOriginateCallerIdName.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n                                <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdNumber.$error" ng-show="originateForm.dialOriginateCallerIdNumber.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n                                <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n                                <div ng-messages="originateForm.dialOriginateTimeout.$error" ng-show="originateForm.dialOriginateTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n                        </div>\n                        <form name="globalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n                                <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n                                <div ng-messages="globalForm.dialGlobalMaxRetry.$error" ng-show="globalForm.dialGlobalMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n                        </div>\n                        <form name="congestionForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n                                <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionMaxRetry.$error" ng-show="congestionForm.dialCongestionMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n                                <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionRetryFrequency.$error" ng-show="congestionForm.dialCongestionRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n                        </div>\n                        <form name="busyForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n                                <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n                                <div ng-messages="busyForm.dialBusyMaxRetry.$error" ng-show="busyForm.dialBusyMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n                                <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n                                <div ng-messages="busyForm.dialBusyRetryFrequency.$error" ng-show="busyForm.dialBusyRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n                        </div>\n                        <form name="noanswerForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n                                <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerMaxRetry.$error" ng-show="noanswerForm.dialNoAnswerMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n                                <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerRetryFrequency.$error" ng-show="noanswerForm.dialNoAnswerRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n                                <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n                                <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n                                <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n                                <md-select ng-model="vm.queueCampaign.autopause">\n\n                                    <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n                                <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n                                <md-select ng-model="vm.queueCampaign.ringinuse">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n                                <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n                                <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n                                <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n                                <md-select ng-model="vm.queueCampaign.timeoutrestart">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n                                <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n                                <md-select ng-model="vm.queueCampaign.monitor_format">\n                                    <md-option ng-value="\'\'">Inactive</md-option>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'wav49\'">wav49</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n                                <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONTEXT">Context</label>\n                                <input type="text" name="context" ng-model="vm.queueCampaign.context">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n                                <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setinterfacevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setqueuevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setqueueentryvar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n                        </div>\n                        <form name="globalintervalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n                                <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n                                <div ng-messages="globalintervalForm.dialGlobalInterval.$error" ng-show="globalintervalForm.dialGlobalInterval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n                        </div>\n                        <form name="timezoneForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n                                <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus>\n                                    <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n                                    <div ng-messages="timezoneForm.dialTimezone.$error" ng-show="timezoneForm.dialTimezone.$touched" role="alert">\n                                        <div ng-message="required">\n                                            <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n                                        </div>\n                                    </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.ContactId}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.phone}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countcongestionretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countbusyretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countnoanswerretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperHistories($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n                                            <td md-cell>{{hopperHistory.uniqueid}}</td>\n                                            <td md-cell>{{hopperHistory.ContactId}}</td>\n                                            <td md-cell>{{hopperHistory.calleridnum}}</td>\n                                            <td md-cell>{{hopperHistory.calleridname}}</td>\n                                            <td md-cell>{{hopperHistory.statedesc}}</td>\n                                            <td md-cell>{{hopperHistory.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.endtime | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperHistory, $event)" translate="MOTIONDIALER.DELETE_HOPPERHISTORY">\n                                                                Delete HopperHistory\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n                                            <td md-cell colspan="11">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.FINAL">FINAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperFinals($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'MOTIONDIALER.DISPOSITION\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n                                            <td md-cell>{{hopperFinal.uniqueid}}</td>\n                                            <td md-cell>{{hopperFinal.calleridnum}}</td>\n                                            <td md-cell>{{hopperFinal.calleridname}}</td>\n                                            <td md-cell>{{hopperFinal.statedesc}}</td>\n                                            <td md-cell>{{hopperFinal.countcongestionretry}}</td>\n                                            <td md-cell>{{hopperFinal.countbusyretry}}</td>\n                                            <td md-cell>{{hopperFinal.countnoanswerretry}}</td>\n                                            <td md-cell>{{hopperFinal.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.disposition}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperFinal, $event)" translate="MOTIONDIALER.DELETE_HOPPERFINAL">\n                                                                Delete HopperFinal\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n                                            <td md-cell colspan="15">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperBlacks($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n                                            <td md-cell>{{hopperBlack.ContactId}}</td>\n                                            <td md-cell>{{hopperBlack.phone}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopperBlack, $event)" translate="MOTIONDIALER.DELETE_HOPPERBLACK">\n                                                                Delete HopperBlack\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n                                            <td md-cell colspan="4">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MOTIONDIALER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-queueCampaigns-count">\n                    <span>{{vm.selectedQueueCampaigns.length}}</span>\n                <span translate="MOTIONDIALER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="QUEUECAMPAIGNS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" filename="queueCampaigns.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n                                <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n                                <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n                                    <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[queueCampaign.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(queueCampaign, $event)" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n                                                    Edit QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.listadddialog(queueCampaign, $event)" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n                                                    listadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event)" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n                                                    blacklistadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.teamadddialog(queueCampaign, $event)" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n                                                    teamadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(queueCampaign, $event)" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n                                                    agentadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(queueCampaign, $event)" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n                                                    Delete QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.AGENTS">Agents</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'MOTIONDIALER.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n            <tr md-row>\n                <th md-column width="20px"></th>\n                <th md-column md-order-by="fullname">{{ \'MOTIONDIALER.FULLNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'MOTIONDIALER.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PHONE_STATUS\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.agents">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="agent" md-select-id="id" ng-repeat="(id, agent) in vm.agents">\n                <td md-cell>\n                    <div class="avatar-wrapper">\n                        <img md-menu-align-target class="avatar" ng-src="{{agent.userpic && \'api/users/\'+agent.id+\'/avatar\' || \'assets/images/avatars/profile.jpg\'}}">\n                        <md-icon md-font-icon class="icon status s16 icon-checkbox-marked-circle" ng-class="agent.online ? \'green-300-fg\' : \'red-300-fg\'"></md-icon>\n                    </div>\n                </td>\n                <td md-cell>\n                    <div layout="column">\n                        <span class="text-truncate"><span ng-if="agent.online" class="text-boxed"><timer start-time="agent.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>{{agent.fullname}}</span>\n                        <span class="text-truncate" ng-if="agent.voicePause">\n              <span><span class="text-boxed"><timer start-time="agent.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span></span><span class="blink red-fg">{{agent.pauseType || \'dafault\' | uppercase}}</span>\n                        </span>\n                    </div>\n                </td>\n                <td md-cell>\n                    {{agent.internal}}\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[agent.state]">\n            <md-tooltip>{{\'MOTIONDIALER.\' + agent.state | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span class="text-boxed" ng-if="agent.stateTime && vm.isAvailableState(agent.state)">\n            <timer ng-if="agent.stateTime" start-time="agent.stateTime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n          </span>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[agent.status]">\n            <md-tooltip>{{\'MOTIONDIALER.\' + agent.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="agent.status === \'registered\'" class="text-boxed">{{agent.address}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="4">\n                            <md-menu-item>\n                                <md-button ng-click="vm.logout(agent, $event)" translate="MOTIONDIALER.LOGOUT">\n                                    Logout\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.queueAdd(agent, $event)" translate="MOTIONDIALER.AGENTADD_QUEUE">\n                                    Add Agent In Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.PAUSE">Pause</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.pause(agent)"><em translate="MOTIONDIALER.DEFAULT_PAUSE">Default Pause</em></md-button>\n                                        </md-menu-item>\n                                        <md-menu-item ng-if="vm.pauses.rows.length" ng-repeat="pause in vm.pauses.rows">\n                                            <md-button ng-click="vm.pause(agent, pause.name)">{{pause.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.unPause(agent)" translate="MOTIONDIALER.UNPAUSE">\n                                    Unpause\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n            <tr md-row>\n                <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n                <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.campaigns">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n                <td md-cell>\n                    <span>{{campaign.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n                                    Edit Campaign\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n        \x3c!-- <div flex></div>\n    <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar> --\x3e\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                <td md-cell>\n                    <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n                    <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n                </td>\n                <td md-cell>{{channel.exten}}</td>\n                <td md-cell>{{channel.queue}}</td>\n                <td md-cell>{{channel.calleridnum}}</td>\n                <td md-cell>\n                    <span ng-if="channel.queuecallerleaveAt">\n              {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n              <span class="text-boxed">\n                <timer start-time="channel.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n              </span>\n                    </span>\n                    <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n              {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell>\n                    <span class="text-boxed">\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="2">\n                            <md-menu-item>\n                                <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n                                    Hangup\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n                                    Number\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item ng-repeat="agent in vm.agents.rows">\n                                            <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name)">{{agent.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n            \x3c!-- <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n        <td md-cell>\n          <i ng-class="vm.channelStatusClass[call.status.toLowerCase()]"></i>\n        </td>\n        <td md-cell>{{call.exten}}</td>\n        <td md-cell>{{call.queue}}</td>\n        <td md-cell><span ng-if="call.calleridname">{{call.calleridname}}, </span>{{call.calleridnum}}</td>\n        <td md-cell>\n          <span ng-if="call.queuecallerleaveAt">\n            {{call.connectedlinename}}, {{call.connectedlinenum}}\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n          <span ng-if="!call.queuecallerleaveAt" class="text-boxed" translate="MOTIONDIALER.WAITING_FOR_AGENT">\n            Waiting for agent...\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n        </td>\n        <td md-cell>\n          <span class="text-boxed">\n            <timer ng-if="call.queuecallerjoinAt" start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            <span ng-if="call.queuecallercomplete || call.queuecallerabandon || call.queuecallerexit" translate="MOTIONDIALER.CLOSING">Closing</span>\n          </span>\n        </td>\n        <td md-cell class="actions">\n          <md-menu>\n            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n              <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n            </md-button>\n\n            <md-menu-content width="2">\n              <md-menu-item>\n                <md-button ng-click="vm.hangup(call.uniqueid)" translate="MOTIONDIALER.HANGUP">\n                  Hangup\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-button ng-click="vm.redirectToNumber($event, call.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n                  Number\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-menu>\n                  <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                  <md-menu-content>\n                    <md-menu-item ng-repeat="agent in vm.agents.rows">\n                      <md-button ng-click="vm.redirectToAgent(call.uniqueid, agent.name)">{{agent.name}}</md-button>\n                    </md-menu-item>\n                  </md-menu-content>\n                </md-menu>\n              </md-menu-item>\n            </md-menu-content>\n          </md-menu>\n        </td>\n      </tr> --\x3e\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.MANAGED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.ABANDONED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.DROPPED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>\n                    <span>{{queue.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay|| 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.total) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.total) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.READY\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ORIGINATED\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="12">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="queue" md-select-id="id" ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>{{queue.name}}</td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.loggedInDb || 0}} ({{queue.loggedIn || 0}})</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.paused || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.available || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.waiting || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.talking || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.originated || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.dialMethod || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.Trunk ? queue.Trunk.name : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditVoiceQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n                                    Edit Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.agentAdd($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n                                    Add Agents to queue\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.AGENTS">Agents</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUES">Queues</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n                </md-tab-label>\n            </md-tab>\n        </md-tabs>\n\n        <md-card ui-view></md-card>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n    <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>\n                <div ng-messages="openchannelAccountForm.name.$error" ng-show="openchannelAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>\n                <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>\n                <div ng-messages="openchannelAccountForm.remote.$error" ng-show="openchannelAccountForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n                <div ng-messages="openchannelAccountForm.description.$error" ng-show="openchannelAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE"\n                    translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n                    ADD OPENCHANNELACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",'<md-dialog class="openchannelDisposition-dialog" aria-label="New OpenchannelDisposition">\n    <form name="openchannelDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.openchannelDisposition.name" required autofocus>\n                <div ng-messages="openchannelDispositionForm.name.$error" ng-show="openchannelDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelDisposition" ng-click="vm.saveOpenchannelDisposition()" class="send-button md-accent md-raised" ng-disabled="openchannelDispositionForm.$invalid || openchannelDispositionForm.$pristine" aria-label="SAVE"\n                    translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelDisposition" ng-click="vm.addNewOpenchannelDisposition()" class="send-button md-accent md-raised" ng-disabled="openchannelDispositionForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION"\n                    translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">\n                    ADD OPENCHANNELDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelDisposition" ng-click="vm.deleteOpenchannelDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="openchannelAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/openchannelAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.openchannelAccount.id}} {{vm.openchannelAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (openchannelDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.LIST">List</label>\n                                <md-select ng-model="vm.openchannelAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.openchannelAccount.fidelity" aria-label="fidelity"><span translate="OPENCHANNEL.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.openchannelAccount.fidelity" class="md-block">\n                                <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.openchannelAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>\n                                <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.API">API</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container api md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.API">API</div>\n                        </div>\n                        <form name="apiForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="OpenchannelAccountOpenchannelDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELDISPOSITIONS">OpenchannelDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event)" aria-label="add openchannelDisposition" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'OPENCHANNEL.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="openchannelDisposition" md-select-id="id" ng-repeat="openchannelDisposition in vm_dc.openchannelAccountOpenchannelDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" translate="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION">\n                                                                Edit OpenchannelDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(openchannelDisposition, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELDISPOSITION">\n                                                                Delete OpenchannelDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_OPENCHANNELDISPOSITION_AVAILABLE">No openchanneldisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelDispositions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.openchannelAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="openchannelAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.openchannelAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="openchannelAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.openchannelAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="OPENCHANNEL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-openchannelAccounts-count">\n                    <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n                <span translate="OPENCHANNEL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNELACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" filename="openchannelAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n                                <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(openchannelAccount, $event)" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n                                                    Edit OpenchannelAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n                                                    Delete OpenchannelAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n    <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="openchannelQueueForm.name.$error" ng-show="openchannelQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.openchannelQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="openchannelQueueForm.strategy.$error" ng-show="openchannelQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" required>\n                <div ng-messages="openchannelQueueForm.timeout.$error" ng-show="openchannelQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n                <div ng-messages="openchannelQueueForm.description.$error" ng-show="openchannelQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE"\n                    translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n                    ADD OPENCHANNELQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue">\n    <form name="openchannelQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">Add Team in OPENCHANNELQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="OPENCHANNEL.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="openchannelQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="openchannelQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/openchannelQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.openchannelQueue.id}} {{vm.openchannelQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.openchannelQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="OPENCHANNEL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-openchannelQueues-count">\n                    <span>{{vm.selectedOpenchannelQueues.length}}</span>\n                <span translate="OPENCHANNEL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNELQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" filename="openchannelQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n                                <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(openchannelQueue, $event)" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n                                                    Edit OpenchannelQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n                                                    Delete OpenchannelQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n    <form name="customizationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n                <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n                <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" required>\n                <div ng-messages="customizationForm.headerWhiteLabel.$error" ng-show="customizationForm.headerWhiteLabel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n                    ADD CUSTOMIZATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="customizationForm.$pristine || customizationForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n                </div>\n                <form name="customizationForm" novalidate>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n                    </md-input-container>\n                    <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n                        <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n                        <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" required>\n                        <div ng-messages="customizationForm.headerWhiteLabel.$error" ng-show="customizationForm.headerWhiteLabel.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n            <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n                </div>\n                <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                    <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()"\n                        flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                        <div class="drop-text hint-text" layout="row" layout-align="center center">\n                            <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                        </div>\n\n                        <div class="upload-button" layout="column" layout-align="center center">\n                            <md-button class="md-accent md-raised" flow-btn>\n                                Upload\n                            </md-button>\n                            <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                        </div>\n\n                        <div layout="row" layout-align="start start" layout-wrap>\n                            <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n                                <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                    <div class="overlay" layout="column" layout-align="center center">\n                                        <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n                                        </md-progress-linear>\n                                    </div>\n                                    <img class="media" flow-img="logoimage.file">\n                                </div>\n\n                                <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                    <img class="media" ng-src="{{logoimage.url}}">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n\n            <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n                </div>\n                <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                    <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()"\n                        flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                        <div class="drop-text hint-text" layout="row" layout-align="center center">\n                            <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                        </div>\n\n                        <div class="upload-button" layout="column" layout-align="center center">\n                            <md-button class="md-accent md-raised" flow-btn>\n                                Upload\n                            </md-button>\n                            <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                        </div>\n\n                        <div layout="row" layout-align="start start" layout-wrap>\n                            <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n                                <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                    <div class="overlay" layout="column" layout-align="center center">\n                                        <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n                                        </md-progress-linear>\n                                    </div>\n                                    <img class="media" flow-img="logologinimage.file">\n                                </div>\n\n                                <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                    <img class="media" ng-src="{{logologinimage.url}}">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n    <form name="generalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n                <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" required autofocus>\n                <div ng-messages="generalForm.min_internal.$error" ng-show="generalForm.min_internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.MIN_MAILBOX">Min_Mailbox</label>\n                <input type="number" name="min_mailbox" ng-model="vm.general.min_mailbox" min="0" required>\n                <div ng-messages="generalForm.min_mailbox.$error" ng-show="generalForm.min_mailbox.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.MIN_MAILBOX_REQUIRED">Min_Mailbox field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.general.securePassword" aria-label="Secure_Password"><span translate="SETTINGS.SECURE_PASSWORD">Secure_Password</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.STUNADDR">Stunaddr</label>\n                <input type="text" name="stunaddr" ng-model="vm.general.stunaddr">\n                <div ng-messages="generalForm.stunaddr.$error" ng-show="generalForm.stunaddr.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n                    ADD GENERAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="generalForm.$pristine || generalForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n                </div>\n                <form name="generalForm" novalidate>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n                        <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" required autofocus>\n                        <div ng-messages="generalForm.min_internal.$error" ng-show="generalForm.min_internal.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.MIN_MAILBOX">Min_Mailbox</label>\n                        <input type="number" name="min_mailbox" ng-model="vm.general.min_mailbox" min="0" required>\n                        <div ng-messages="generalForm.min_mailbox.$error" ng-show="generalForm.min_mailbox.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.MIN_MAILBOX_REQUIRED">Min_Mailbox field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.general.securePassword" aria-label="Secure_Password"><span translate="SETTINGS.SECURE_PASSWORD">Secure_Password</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.STUNADDR">Stunaddr</label>\n                        <input type="text" name="stunaddr" ng-model="vm.general.stunaddr">\n                        <div ng-messages="generalForm.stunaddr.$error" ng-show="generalForm.stunaddr.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n        <div>\n            <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n                REQUEST LICENSE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n            \x3c!-- LICENSE CARD --\x3e\n            <div layout="row" flex>\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="row" layout-align="center">\n                        <div flex layout="row" layout-align="start center">\n                            <div>\n                                <a href="https://www.xcallymotion.com/prices" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n                                    <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n                                    <md-icon md-font-icon="icon-coin"></md-icon>\n                                </a>\n                            </div>\n                        </div>\n                        <div flex>\n                            <div ng-switch="vm.license.months" class="text-center">\n                                <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n                                <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n                                <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n                            </div>\n                        </div>\n                        <div flex layout="row" layout-align="end center">\n                            <div>\n                                <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n                                    <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n                                    <md-icon md-font-icon="icon-pencil"></md-icon>\n                                </md-button>\n                            </div>\n                        </div>\n                    </div>\n\n                    <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n                    <span class="text-center padding-bottom-10"> {{\'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n                    <div ng-if="vm.license.demo" layout="column">\n                        <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n                        <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcallymotion.com/prices" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n                    </div>\n\n                    <div ng-if="vm.license.machineUuid !== vm.license.uuid" layout="column">\n                        <span class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n                        <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n                        <span class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n                        <span class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} <span class="text-italic text-bold"><a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span></span>\n                    </div>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.users || 0 }}</h3>\n                                <p translate="SETTINGS.USERS">Users</p>\n                            </div>\n                        </md-list-item>\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.agents || 0 }}</h3>\n                                <p translate="SETTINGS.AGENTS">Agents</p>\n                            </div>\n                        </md-list-item>\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.telephones || 0 }}</h3>\n                                <p translate="SETTINGS.TELEPHONES">Telephones</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="channel in vm.channels">\n                            <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n                                <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="module in vm.modules">\n                            <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n                                <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ vm.license[module.name] ? \'ENABLED\' : \'DISABLED\' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="other in vm.others">\n                            <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+"                                <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ vm.license[other.name] ? 'ENABLED' : 'DISABLED' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n                </md-card>\n            </div>\n            \x3c!-- / LICENSE CARD --\x3e\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n    <form name="requestForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.license.name" required>\n                <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.license.email" required>\n                <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.USERS">Users</label>\n                    <input type="number" name="users" ng-model="vm.license.users" required>\n                    <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.AGENTS">Agents</label>\n                    <input type="number" name="agents" ng-model="vm.license.agents" required>\n                    <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.TELEPHONES">Telephones</label>\n                    <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n                    <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.DESCRIPTION">Description</label>\n                <textarea name="description" ng-model="vm.license.description"></textarea>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n    <form name="networkForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.TYPE">Type</label>\n                <md-select ng-model="vm.network.type" required autofocus>\n                    <md-option ng-value="\'localnet\'">LocalNET</md-option>\n                    <md-option ng-value="\'externip\'">ExternIP</md-option>\n                </md-select>\n                <div ng-messages="networkForm.type.$error" ng-show="networkForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n                <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n                <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/"\n                    required>\n                <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n                <div ng-messages="networkForm.value.$error" ng-show="networkForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n                <label translate="SETTINGS.ADDRESS">Address</label>\n                <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" required>\n                <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n                <div ng-messages="networkForm.value.$error" ng-show="networkForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n                    ADD NETWORK\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newNetwork" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SETTINGS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-networks-count">\n                    <span>{{vm.selectedNetworks.length}}</span>\n                <span translate="SETTINGS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="NETWORKS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" filename="networks.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="NETWORKS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- NETWORK TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.networks.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n                                <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n                                <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(network, $event)" translate="SETTINGS.EDIT_NETWORK">\n                                                    Edit Network\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(network, $event)" translate="SETTINGS.DELETE_NETWORK">\n                                                    Delete Network\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / NETWORK TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD NETWORK BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n    <form name="smtpForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smtp.name" required autofocus>\n                <div ng-messages="smtpForm.name.$error" ng-show="smtpForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n                <md-select ng-model="vm.smtp.Smtp.service" required>\n                    <md-option ng-value="null">None</md-option>\n                    <md-option ng-value="\'gmail\'">Gmail</md-option>\n                </md-select>\n                <div ng-messages="smtpForm.Smtp.service.$error" ng-show="smtpForm.Smtp.service.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n                <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" required>\n                <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n                <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" required>\n                <div ng-messages="smtpForm.Smtp.user.$error" ng-show="smtpForm.Smtp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n                <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n                <div ng-messages="smtpForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSmtp ">\n                <label translate="SETTINGS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="Smtp.pass" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="SETTINGS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n                <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" required>\n                <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.DESCRIPTION">Description</label>\n                <input type="" name="description" ng-model="vm.smtp.description">\n                <div ng-messages="smtpForm.description.$error" ng-show="smtpForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n                    ADD SMTP\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n                VERIFY\n            </md-button>\n            <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="smtpForm.$pristine || smtpForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n                </div>\n                <form name="smtpForm" novalidate>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.NAME">Name</label>\n                        <input type="text" name="name" ng-model="vm.smtp.name" required autofocus>\n                        <div ng-messages="smtpForm.name.$error" ng-show="smtpForm.name.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n                        <md-select ng-model="vm.smtp.Smtp.service" required>\n                            <md-option ng-value="null">None</md-option>\n                            <md-option ng-value="\'gmail\'">Gmail</md-option>\n                        </md-select>\n                        <div ng-messages="smtpForm.Smtp.service.$error" ng-show="smtpForm.Smtp.service.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n                        <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" required>\n                        <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n                        <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" required>\n                        <div ng-messages="smtpForm.Smtp.user.$error" ng-show="smtpForm.Smtp.user.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n                        <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n                        <div ng-messages="smtpForm.password.$error" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.newSmtp ">\n                        <label translate="SETTINGS.CONFIRM_PASSWORD">Confirm Password</label>\n                        <input type="password" match-password="Smtp.pass" name="confirmPassword" ng-model="confirmPassword">\n                        <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                            </div>\n                            <div ng-message="passwordMatch">\n                                <span translate="SETTINGS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n                        <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" required>\n                        <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.DESCRIPTION">Description</label>\n                        <input type="" name="description" ng-model="vm.smtp.description">\n                        <div ng-messages="smtpForm.description.$error" ng-show="smtpForm.description.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n          <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n        </span>\n                <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SETTINGS.GENERAL">GENERAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget flex="50" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg">\n                                        <div class="h3">OS</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n                                                <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n                                                <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n                                                <div class="h4">Node.js: {{vm.system.node}}</div>\n                                                <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                            <ms-widget flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n                                        <div class="h3">CPU</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n                                                    <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                            <ms-widget flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">MEM</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                            </div>\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.USED">Used</span>\n                                                    <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">DISK {{$index + 1}}</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n                                                <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n                                                <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                            </div>\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.USED">Used</span>\n                                                    <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">NET {{$index + 1}}</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n                                                <div class="h4">IPv4: {{net.ip4}}</div>\n                                                <div class="h4">IPv6: {{net.ip6}}</div>\n                                                <div class="h4">MAC: {{net.mac}}</div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row">\n                            <div flex>\n                                <md-toolbar class="md-table-toolbar md-default">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-table-container>\n                                    <table md-table>\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column>pid</th>\n                                                <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n                                                <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n                                                <th md-column>pmem</th>\n                                                <th md-column>pcpu</th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body>\n                                            <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n                                                <td md-cell>{{process.pid}}</td>\n                                                <td md-cell>{{process.command}}</td>\n                                                <td md-cell>\n                                                    <span class="text-boxed white-fg" ng-class="{\n                          \'green-600-bg\': process.state == \'running\',\n                          \'yellow-600-bg\': process.state == \'sleeping\',\n                          \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n                                                </td>\n                                                <td md-cell>{{process.pmem}}%</td>\n                                                <td md-cell>{{process.pcpu}}%</td>\n                                            </tr>\n                                        </tbody>\n                                    </table>\n                                </md-table-container>\n                            </div>\n                        </md-card>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <md-card class="md-whiteframe-1dp padding-20" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n                                    <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n                                        <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table>\n                                    <thead md-head>\n                                        <tr md-row>\n                                            <th md-column>id</th>\n                                            <th md-column>pid</th>\n                                            <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n                                            <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n                                            <th md-column>MEM</th>\n                                            <th md-column>CPU</th>\n                                            <th md-column width="20px">Actions</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n                                            <td md-cell>{{process.pm_id}}</td>\n                                            <td md-cell>{{process.pid}}</td>\n                                            <td md-cell>{{process.name}}</td>\n                                            <td md-cell>\n                                                <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n                                            </td>\n                                            <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n                                            <td md-cell>{{process.monit.cpu}}%</td>\n                                            <td md-cell>\n                                                <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n                                                    <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n                                                </md-button>\n                                                <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n                                                    <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n                                                </md-button>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                    <tfoot md-foot>\n                                        <tr md-row>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                            </md-table-container>\n                        </md-card>\n                        <md-card class="md-whiteframe-1dp padding-20" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n                                    <div flex></div>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table>\n                                    <thead md-head>\n                                        <tr md-row>\n                                            <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n                                            <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 list</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 start &lt;id | name&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 stop &lt;id | name | all&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 restart &lt;id | name&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 logs [id | name]</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </md-card>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n    <form name="updateForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n            </div>\n        </md-toolbar>\n\n        <div md-background-bg layout="row" layout-align="start start">\n            <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n        </div>\n\n        <md-dialog-content ms-scroll>\n            <div layout="row" layout-align="center center">\n                <div ng-if="vm.updating" layout="column" layout-align="center center">\n                    <span class="text-center md-title">Grab a quick coffee and</span>\n                    <span class="text-center md-title">get back here as soon as completed!</span>\n                    <span class="text-center md-title">{{vm.output}}</span>\n                </div>\n                <div ng-if="!vm.updating">\n                    <div ng-if="vm.success" layout="column" layout-align="center center">\n                        <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n                        <span class="text-center md-title">In order to complete the update,</span>\n                        <span class="text-center md-title">please click on reload button</span>\n                    </div>\n                    <div ng-if="!vm.success" layout="column" layout-align="center center">\n                        <span class="text-center md-title">Update Error!</span>\n                        <span class="text-center md-title">Please contact your administrator!</span>\n                        <span class="text-center md-title">{{vm.output}}</span>\n                    </div>\n                </div>\n                <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n                    RELOAD\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- UPDATE CARD --\x3e\n            <div layout="row" ng-if="!vm.updating">\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n                        <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n                        <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n                            CHANGELOG\n                        </md-button>\n                    </div>\n                </md-card>\n                <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n                        <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n                        <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n                            CHANGELOG\n                        </md-button>\n                        <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n                    </div>\n                </md-card>\n                <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n                        <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n                    </div>\n                </md-card>\n            </div>\n            \x3c!-- / UPDATE CARD --\x3e\n\n            <div ng-if="vm.updating">\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="column" layout-align="center center">\n                        <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n                        <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n                        <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n                        <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n                        <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n                    </div>\n                </md-card>\n            </div>\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n    <form name="smsAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smsAccount.name" required autofocus>\n                <div ng-messages="smsAccountForm.name.$error" ng-show="smsAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.TYPE">Type</label>\n                <md-select ng-model="vm.smsAccount.type" required>\n                    <md-option ng-value="\'twilio\'">Twilio</md-option>\n                    <md-option ng-value="\'skebby\'">Skebby</md-option>\n                </md-select>\n                <div ng-messages="smsAccountForm.type.$error" ng-show="smsAccountForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                <label translate="SMS.SMSTYPE">smstype</label>\n                <md-select ng-model="vm.smsAccount.smstype" required>\n                    <md-option ng-value="\'basic\'">Basic</md-option>\n                    <md-option ng-value="\'classic\'">Classic</md-option>\n                    <md-option ng-value="\'classic+\'">Classic+</md-option>\n                </md-select>\n                <div ng-messages="smsAccountForm.smstype.$error" ng-show="smsAccountForm.smstype.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.SMSTYPE_REQUIRED">smstype field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.PHONE">phone</label>\n                <input type="text" name="phone" ng-model="vm.smsAccount.phone" required>\n                <div ng-messages="smsAccountForm.phone.$error" ng-show="smsAccountForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.PHONE_REQUIRED">phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                <label translate="SMS.SID">sid</label>\n                <input type="text" name="sid" ng-model="vm.smsAccount.sid" required>\n                <div ng-messages="smsAccountForm.sid.$error" ng-show="smsAccountForm.sid.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.SID_REQUIRED">sid field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                <label translate="SMS.TOKEN">token</label>\n                <input type="text" name="token" ng-model="vm.smsAccount.token" required>\n                <div ng-messages="smsAccountForm.token.$error" ng-show="smsAccountForm.token.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                <label translate="SMS.USERNAME">username</label>\n                <input type="text" name="username" ng-model="vm.smsAccount.username" required>\n                <div ng-messages="smsAccountForm.username.$error" ng-show="smsAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\'">\n                <label translate="SMS.PASSWORD">password</label>\n                <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n                <div ng-messages="smsAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSmsAccount  && vm.smsAccount.type == \'skebby\'">\n                <label translate="SMS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="smsAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="SMS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.MOTIONADDRESS">motionaddress</label>\n                <input type="url" name="remote" ng-model="vm.smsAccount.remote" required>\n                <div ng-messages="smsAccountForm.remote.$error" ng-show="smsAccountForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="SMS.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.smsAccount.description">\n                <div ng-messages="smsAccountForm.description.$error" ng-show="smsAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n                    ADD SMSACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",'<md-dialog class="smsDisposition-dialog" aria-label="New SmsDisposition">\n    <form name="smsDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.smsDisposition.name" required autofocus>\n                <div ng-messages="smsDispositionForm.name.$error" ng-show="smsDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsDisposition" ng-click="vm.saveSmsDisposition()" class="send-button md-accent md-raised" ng-disabled="smsDispositionForm.$invalid || smsDispositionForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsDisposition" ng-click="vm.addNewSmsDisposition()" class="send-button md-accent md-raised" ng-disabled="smsDispositionForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSDISPOSITION" translate-attr-aria-label="SMS.ADD_SMSDISPOSITION">\n                    ADD SMSDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsDisposition" ng-click="vm.deleteSmsDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="smsAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/smsAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.smsAccount.id}} {{vm.smsAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (smsDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.smsAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.LIST">List</label>\n                                <md-select ng-model="vm.smsAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.smsAccount.fidelity" aria-label="fidelity"><span translate="SMS.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.fidelity" class="md-block">\n                                <label translate="SMS.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.smsAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.TYPE">Type</label>\n                                <md-select ng-model="vm.smsAccount.type" required>\n                                    <md-option ng-value="\'twilio\'">Twilio</md-option>\n                                    <md-option ng-value="\'skebby\'">Skebby</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                                <label translate="SMS.SMSTYPE">smstype</label>\n                                <md-select ng-model="vm.smsAccount.smstype" required>\n                                    <md-option ng-value="\'basic\'">Basic</md-option>\n                                    <md-option ng-value="\'classic\'">Classic</md-option>\n                                    <md-option ng-value="\'classic+\'">Classic+</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.smstype.$error" ng-show="generalForm.smstype.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.SMSTYPE_REQUIRED">smstype field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.PHONE">phone</label>\n                                <input type="text" name="phone" ng-model="vm.smsAccount.phone" required>\n                                <div ng-messages="generalForm.phone.$error" ng-show="generalForm.phone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.PHONE_REQUIRED">phone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                                <label translate="SMS.SID">sid</label>\n                                <input type="text" name="sid" ng-model="vm.smsAccount.sid" required>\n                                <div ng-messages="generalForm.sid.$error" ng-show="generalForm.sid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.SID_REQUIRED">sid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                                <label translate="SMS.TOKEN">token</label>\n                                <input type="text" name="token" ng-model="vm.smsAccount.token" required>\n                                <div ng-messages="generalForm.token.$error" ng-show="generalForm.token.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                                <label translate="SMS.USERNAME">username</label>\n                                <input type="text" name="username" ng-model="vm.smsAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\'">\n                                <label translate="SMS.PASSWORD">password</label>\n                                <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSmsAccount  && vm.smsAccount.type == \'skebby\'">\n                                <label translate="SMS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="SMS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.MOTIONADDRESS">motionaddress</label>\n                                <input type="url" name="remote" ng-model="vm.smsAccount.remote" required>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.smsAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.API">API</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container api md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.API">API</div>\n                        </div>\n                        <form name="apiForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="SmsAccountSmsDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SMS.SMSDISPOSITIONS">SmsDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event)" aria-label="add smsDisposition" translate translate-attr-label="SMS.ADD_SMSDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsDispositions.length}} {{vm_dc.selectedSmsAccountSmsDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMSACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'SMS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="smsDisposition" md-select-id="id" ng-repeat="smsDisposition in vm_dc.smsAccountSmsDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" translate="SMS.EDIT_SMSDISPOSITION">\n                                                                Edit SmsDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(smsDisposition, $event)" translate="SMS.DELETE_SMSDISPOSITION">\n                                                                Delete SmsDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.smsAccountSmsDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="SMS.NO_SMSDISPOSITION_AVAILABLE">No smsdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsDispositions.count}}" md-on-paginate="vm_dc.getSmsAccountSmsDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.smsAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.smsAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="smsAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.smsAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.smsAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="smsAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.smsAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.smsAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SMS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-smsAccounts-count">\n                    <span>{{vm.selectedSmsAccounts.length}}</span>\n                <span translate="SMS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMSACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" filename="smsAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMSACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SMSACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.smsAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n                                <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(smsAccount, $event)" translate="SMS.EDIT_SMSACCOUNT">\n                                                    Edit SmsAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(smsAccount, $event)" translate="SMS.DELETE_SMSACCOUNT">\n                                                    Delete SmsAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SMSACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n    <form name="smsQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="smsQueueForm.name.$error" ng-show="smsQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.smsQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="smsQueueForm.strategy.$error" ng-show="smsQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" required>\n                <div ng-messages="smsQueueForm.timeout.$error" ng-show="smsQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.smsQueue.description">\n                <div ng-messages="smsQueueForm.description.$error" ng-show="smsQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n                    ADD SMSQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue">\n    <form name="smsQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="SMS.TEAMADD_SMSQUEUE">Add Team in SMSQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="SMS.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="smsQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="smsQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/smsQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.smsQueue.id}} {{vm.smsQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.smsQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.smsQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SMS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-smsQueues-count">\n                    <span>{{vm.selectedSmsQueues.length}}</span>\n                <span translate="SMS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMSQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" filename="smsQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMSQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SMSQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.smsQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n                                <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(smsQueue, $event)" translate="SMS.EDIT_SMSQUEUE">\n                                                    Edit SmsQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(smsQueue, $event)" translate="SMS.DELETE_SMSQUEUE">\n                                                    Delete SmsQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SMSQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-agents-count">\n                    <span>{{vm.selectedAgents.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="AGENTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" filename="agents.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="AGENTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- AGENT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.agents.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n                                <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n                                <td md-cell ng-if="!agent.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(agent, $event)" translate="STAFF.EDIT_AGENT">\n                                                    Edit Agent\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(agent, $event)" translate="STAFF.DELETE_AGENT">\n                                                    Delete Agent\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / AGENT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD AGENT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <form name="agentForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.FULLNAME">Fullname</label>\n                <input type="text" name="fullname" ng-model="vm.agent.fullname" required autofocus>\n                <div ng-messages="agentForm.fullname.$error" ng-show="agentForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newAgent">\n                <div ng-messages="agentForm.name.$error" ng-show="agentForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.agent.email" required>\n                <div ng-messages="agentForm.email.$error" ng-show="agentForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newAgent">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="agentForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newAgent  && vm.newAgent">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.agent.description">\n                <div ng-messages="agentForm.description.$error" ng-show="agentForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newAgent" class="md-block">\n                <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.agent.internal" required ng-disabled="!vm.newAgent">\n                <div ng-messages="agentForm.internal.$error" ng-show="agentForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newAgent" class="md-block">\n                <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n                    ADD AGENT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n    <form name="agentForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="agentForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent">\n    <form name="agentForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>{{vm.title}}</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\'">\n                <label translate="STAFF.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="agent-image" hide-xs>\n                    <img ng-src="assets/images/business/agents.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.agent.id}} {{vm.agent.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak ng-if="vm.agent.role !== \'admin\'">\n            <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="false">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Voice</md-tooltip>\n                        <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n                    </md-button>\n                    <md-button aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Chat</md-tooltip>\n                        <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n                    </md-button>\n                    <md-button aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Mail</md-tooltip>\n                        <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n                    </md-button>\n                    <md-button aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Sms</md-tooltip>\n                        <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n                    </md-button>\n                    <md-button aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Openchannel</md-tooltip>\n                        <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n                    </md-button>\n                    <md-button aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Fax</md-tooltip>\n                        <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n                    </md-button>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid)"\n                translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n                        </div>\n                        <form name="personal_infoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FULLNAME">Fullname</label>\n                                <input type="text" name="fullname" ng-model="vm.agent.fullname" required autofocus>\n                                <div ng-messages="personal_infoForm.fullname.$error" ng-show="personal_infoForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="personal_infoForm.name.$error" ng-show="personal_infoForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.agent.email" required>\n                                <div ng-messages="personal_infoForm.email.$error" ng-show="personal_infoForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.agent.description">\n                                <div ng-messages="personal_infoForm.description.$error" ng-show="personal_infoForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n                        </div>\n                        <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                            <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()"\n                                flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                                    <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                                </div>\n\n                                <div class="upload-button" layout="column" layout-align="center center">\n                                    <md-button class="md-accent md-raised" flow-btn>\n                                        Upload\n                                    </md-button>\n                                    <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                                </div>\n\n                                <div layout="row" layout-align="start start" layout-wrap>\n                                    <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n                                        <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                            <div class="overlay" layout="column" layout-align="center center">\n                                                <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n                                                </md-progress-linear>\n                                            </div>\n                                            <img class="media" flow-img="change_avatarimage.file">\n                                        </div>\n\n                                        <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                            <img class="media" ng-src="{{change_avatarimage.url}}">\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.agent.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.agent.transport" multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.HOST">Host</label>\n                                <input type="text" name="host" ng-model="vm.agent.host" required>\n                                <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n                                <div ng-messages="generalForm.host.$error" ng-show="generalForm.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.agent.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TYPE">Type</label>\n                                <md-select ng-model="vm.agent.type">\n                                    <md-option ng-value="\'friend\'">Friend</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                    <md-option ng-value="\'peer\'">Peer</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.agent.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.agent.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.agent.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n                        </div>\n                        <form name="capacityForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n                                <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" required autofocus>\n                                <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.chatCapacity.$error" ng-show="capacityForm.chatCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n                                <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.mailCapacity.$error" ng-show="capacityForm.mailCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n                                <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.faxCapacity.$error" ng-show="capacityForm.faxCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n                                <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.smsCapacity.$error" ng-show="capacityForm.smsCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n                                <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.openchannelCapacity.$error" ng-show="capacityForm.openchannelCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n                        </div>\n                        <form name="settingsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n                        </div>\n                        <form name="remote_controlForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.agent.phoneBarRemoteControl" class="md-block">\n                                <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n                                <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" required>\n                                <div ng-messages="remote_controlForm.phoneBarRemoteControlPort.$error" ng-show="remote_controlForm.phoneBarRemoteControlPort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n                        </div>\n                        <form name="sipForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n                                <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" required autofocus>\n                                <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n                                <div ng-messages="sipForm.phoneBarExpires.$error" ng-show="sipForm.phoneBarExpires.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SIPPORT">SipPort</label>\n                                <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" required>\n                                <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n                                <div ng-messages="sipForm.phoneBarListenPort.$error" ng-show="sipForm.phoneBarListenPort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n    <form name="teamForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.team.name" required autofocus>\n                <div ng-messages="teamForm.name.$error" ng-show="teamForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.team.description">\n                <div ng-messages="teamForm.description.$error" ng-show="teamForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n                    ADD TEAM\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team">\n    <form name="teamForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-teams-count">\n                    <span>{{vm.selectedTeams.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TEAMS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" filename="teams.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="TEAMS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TEAM TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.teams.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n                                <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n                                <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(team, $event)" translate="STAFF.EDIT_TEAM">\n                                                    Edit Team\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(team, $event)" translate="STAFF.AGENTADD_TEAM">\n                                                    AgentAdd Team\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(team, $event)" translate="STAFF.DELETE_TEAM">\n                                                    Delete Team\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TEAM TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TEAM BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n    <form name="telephoneForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n                <input type="text" name="fullname" ng-model="vm.telephone.fullname" required autofocus>\n                <div ng-messages="telephoneForm.fullname.$error" ng-show="telephoneForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newTelephone">\n                <div ng-messages="telephoneForm.name.$error" ng-show="telephoneForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.telephone.email" required>\n                <div ng-messages="telephoneForm.email.$error" ng-show="telephoneForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTelephone">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="telephoneForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTelephone  && vm.newTelephone">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.telephone.description">\n                <div ng-messages="telephoneForm.description.$error" ng-show="telephoneForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newTelephone" class="md-block">\n                <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.telephone.internal" required ng-disabled="!vm.newTelephone">\n                <div ng-messages="telephoneForm.internal.$error" ng-show="telephoneForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newTelephone" class="md-block">\n                <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n                    ADD TELEPHONE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n    <form name="telephoneForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="telephoneForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="telephone-image" hide-xs>\n                    <img ng-src="assets/images/business/telephones.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.telephone.id}} {{vm.telephone.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n                        </div>\n                        <form name="accountForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n                                <input type="text" name="fullname" ng-model="vm.telephone.fullname" required autofocus>\n                                <div ng-messages="accountForm.fullname.$error" ng-show="accountForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="accountForm.name.$error" ng-show="accountForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.telephone.email" required>\n                                <div ng-messages="accountForm.email.$error" ng-show="accountForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.telephone.description">\n                                <div ng-messages="accountForm.description.$error" ng-show="accountForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.telephone.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.telephone.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.telephone.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.telephone.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.telephone.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.telephone.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-telephones-count">\n                    <span>{{vm.selectedTelephones.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TELEPHONES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" filename="telephones.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="TELEPHONES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TELEPHONE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.telephones.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n                                <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n                                <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(telephone, $event)" translate="STAFF.EDIT_TELEPHONE">\n                                                    Edit Telephone\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(telephone, $event)" translate="STAFF.DELETE_TELEPHONE">\n                                                    Delete Telephone\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TELEPHONE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TELEPHONE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n    <form name="userForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.ROLE">Role</label>\n                <md-select ng-model="vm.user.role" required autofocus ng-disabled="!vm.newUser">\n                    <md-option ng-value="\'admin\'">Admin</md-option>\n                    <md-option ng-value="\'user\'">User</md-option>\n                </md-select>\n                <div ng-messages="userForm.role.$error" ng-show="userForm.role.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.FULLNAME">Fullname</label>\n                <input type="text" name="fullname" ng-model="vm.user.fullname" required>\n                <div ng-messages="userForm.fullname.$error" ng-show="userForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newUser">\n                <div ng-messages="userForm.name.$error" ng-show="userForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.user.email" required>\n                <div ng-messages="userForm.email.$error" ng-show="userForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newUser">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="userForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newUser  && vm.newUser">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.user.description">\n                <div ng-messages="userForm.description.$error" ng-show="userForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newUser" class="md-block">\n                <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.user.internal" required ng-disabled="!vm.newUser">\n                <div ng-messages="userForm.internal.$error" ng-show="userForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newUser" class="md-block">\n                <md-switch ng-model="vm.user.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n                    ADD USER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n    <form name="userForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="userForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/queueadd/queueadd.html",'<md-dialog class="user-dialog" aria-label="user">\n    <form name="userForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>{{vm.title}}</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin" ng-if="vm.user.role === \'agent\'">\n                <label translate="STAFF.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="userForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="user-image" hide-xs>\n                    <img ng-src="assets/images/business/users.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.user.id}} {{vm.user.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak ng-if="vm.user.role !== \'admin\'">\n            <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="false">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-eye" aria-label="queueadd"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'voice\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Voice</md-tooltip>\n                        <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n                    </md-button>\n                    <md-button aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'chat\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Chat</md-tooltip>\n                        <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n                    </md-button>\n                    <md-button aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'mail\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Mail</md-tooltip>\n                        <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n                    </md-button>\n                    <md-button aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'sms\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Sms</md-tooltip>\n                        <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n                    </md-button>\n                    <md-button aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'openchannel\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Openchannel</md-tooltip>\n                        <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n                    </md-button>\n                    <md-button aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'fax\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Fax</md-tooltip>\n                        <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n                    </md-button>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n                        </div>\n                        <form name="personal_infoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ROLE">Role</label>\n                                <md-select ng-model="vm.user.role" required autofocus ng-disabled="true">\n                                    <md-option ng-value="\'admin\'">Admin</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                </md-select>\n                                <div ng-messages="personal_infoForm.role.$error" ng-show="personal_infoForm.role.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FULLNAME">Fullname</label>\n                                <input type="text" name="fullname" ng-model="vm.user.fullname" required>\n                                <div ng-messages="personal_infoForm.fullname.$error" ng-show="personal_infoForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="personal_infoForm.name.$error" ng-show="personal_infoForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.user.email" required>\n                                <div ng-messages="personal_infoForm.email.$error" ng-show="personal_infoForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.user.description">\n                                <div ng-messages="personal_infoForm.description.$error" ng-show="personal_infoForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n                        </div>\n                        <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                            <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()"\n                                flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                                    <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                                </div>\n\n                                <div class="upload-button" layout="column" layout-align="center center">\n                                    <md-button class="md-accent md-raised" flow-btn>\n                                        Upload\n                                    </md-button>\n                                    <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                                </div>\n\n                                <div layout="row" layout-align="start start" layout-wrap>\n                                    <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n                                        <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                            <div class="overlay" layout="column" layout-align="center center">\n                                                <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n                                                </md-progress-linear>\n                                            </div>\n                                            <img class="media" flow-img="change_avatarimage.file">\n                                        </div>\n\n                                        <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                            <img class="media" ng-src="{{change_avatarimage.url}}">\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.user.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.user.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.user.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.user.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.user.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.user.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n                        </div>\n                        <div ng-controller="UserPermissionsController as vm_pc" ng-init="vm_pc.init(vm.user)" class="user-detail-form-container">\n                            <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.user.role !== \'admin\'"></md-list>\n\n                            \x3c!-- Nested navigation template --\x3e\n                            <script type="text/ng-template" id="permission-nested.html">\n                                <md-list-item>\n                                    <md-icon md-font-icon="{{father.icon}}"></md-icon>\n                                    <p translate="{{father.translate}}">{{ father.title }}</p>\n                                    <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.user.permissions.includes(father.id)"></md-switch>\n                                </md-list-item>\n\n                                <md-divider></md-divider>\n\n                                <md-list>\n                                    <md-list-item ng-repeat="child in father.children">\n                                        <md-switch class="md-secondary" ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.user.permissions.includes(child.id)"></md-switch>\n                                        <p translate="{{child.translate}}">{{ child.title }}</p>\n                                    </md-list-item>\n                                </md-list>\n                            <\/script>\n                            \x3c!-- / Nested navigation template --\x3e\n\n                            <span ng-if="vm_pc.user.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.USERS">Users</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-users-count">\n                    <span>{{vm.selectedUsers.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="USERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" filename="users.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedUsers($event)" aria-label="delete selected" translate translate-attr-label="USERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- USER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.users.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n                                <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n                                <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(user, $event)" translate="STAFF.EDIT_USER">\n                                                    Edit User\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(user, $event)" translate="STAFF.DELETE_USER">\n                                                    Delete User\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / USER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD USER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-cannedAnswers-count">\n                    <span>{{vm.selectedCannedAnswers.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CANNEDANSWERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" filename="cannedAnswers.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CANNEDANSWERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CANNEDANSWER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n                                <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n                                <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n                                <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(cannedAnswer, $event)" translate="TOOLS.EDIT_CANNEDANSWER">\n                                                    Edit CannedAnswer\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event)" translate="TOOLS.DELETE_CANNEDANSWER">\n                                                    Delete CannedAnswer\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CANNEDANSWER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n    <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.KEY">Key</label>\n                <input type="text" name="key" ng-model="vm.cannedAnswer.key" required autofocus>\n                <div ng-messages="cannedAnswerForm.key.$error" ng-show="cannedAnswerForm.key.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <textarea ng-model="vm.cannedAnswer.value" md-maxlength="150" max-rows="5" required></textarea>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n                <div ng-messages="cannedAnswerForm.description.$error" ng-show="cannedAnswerForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n                    ADD CANNEDANSWER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n    <form name="customDashboardForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.customDashboard.name" required autofocus>\n                <div ng-messages="customDashboardForm.name.$error" ng-show="customDashboardForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.POLLING_INTERVAL">Polling_Interval</label>\n                <input type="number" name="interval" ng-model="vm.customDashboard.interval" min="5" required>\n                <div ng-messages="customDashboardForm.interval.$error" ng-show="customDashboardForm.interval.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.POLLING_INTERVAL_REQUIRED">Polling_Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.customDashboard.description">\n                <div ng-messages="customDashboardForm.description.$error" ng-show="customDashboardForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n                    ADD CUSTOMDASHBOARD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-customDashboards-count">\n                    <span>{{vm.selectedCustomDashboards.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CUSTOMDASHBOARDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" filename="customDashboards.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="CUSTOMDASHBOARDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="interval">{{ \'TOOLS.POLLING_INTERVAL\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.customDashboards.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n                                <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n                                <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="interval ">{{customDashboard.interval}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(customDashboard, $event)" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n                                                    Edit CustomDashboard\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(customDashboard, $event)" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n                                                    Delete CustomDashboard\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.dashboarditem.type" autofocus>\n\n                    <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }}</md-option>\n\n                    <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }}</md-option>\n\n                    <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="dashboarditemForm.type.$error" ng-show="dashboarditemForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n                    ADD DASHBOARDITEM\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="customDashboard-image" hide-xs>\n                    <img ng-src="assets/images/business/customDashboards.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.customDashboard.id}} {{vm.customDashboard.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.customDashboard.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.POLLING_INTERVAL">Polling_Interval</label>\n                                <input type="number" name="interval" ng-model="vm.customDashboard.interval" min="5" required>\n                                <div ng-messages="generalForm.interval.$error" ng-show="generalForm.interval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.POLLING_INTERVAL_REQUIRED">Polling_Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.customDashboard.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="CustomDashboardCustomDashboardController as vm_cd" ng-init="vm_cd.init(vm.customDashboard)" class="customDashboard-detail-form-container">\n                            <div layout="row" layout-align="end center">\n                                <md-button class="md-icon-button" ng-click="vm_cd.addItem()">\n                                    <md-icon md-font-icon="icon-plus"></md-icon>\n                                </md-button>\n                            </div>\n                            <div gridster="vm_cd.gridOptions">\n                                <div gridster-item="item" ng-repeat="item in vm_cd.items.rows" ng-switch="item.type">\n                                    <ms-dash-counter ng-switch-when="counter" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-counter>\n                                    \x3c!-- <ms-dash-table ng-switch-when="table" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-table> --\x3e\n                                    <ms-dash-iframe ng-switch-when="iframe" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-iframe>\n                                    <ms-dash-clock ng-switch-when="clock" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-clock>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.interval.name" required autofocus>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.interval.description">\n                <div ng-messages="intervalForm.description.$error" ng-show="intervalForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" md-autofocus required>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.interval.name" required autofocus>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="interval-image" hide-xs>\n                    <img ng-src="assets/images/business/intervals.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.interval.id}} {{vm.interval.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.interval.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.interval.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.INTERVALS">INTERVALS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="INTERVALS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n                                        <tr md-row>\n                                            <th md-column width="10px"></th>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="interval">{{ \'TOOLS.INTERVAL\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body ng-sortable="vm_dc.sortableTable">\n                                        <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n                                            <td md-cell>\n                                                <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                            </td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.interval}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n                                                                Edit Interval\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n                                                                Delete Interval\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-intervals-count">\n                    <span>{{vm.selectedIntervals.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTERVALS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" filename="intervals.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="INTERVALS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INTERVAL TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.intervals.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n                                <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n                                <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(interval, $event)" translate="TOOLS.EDIT_INTERVAL">\n                                                    Edit Interval\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n                                                    Delete Interval\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INTERVAL TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INTERVAL BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n    <form name="pauseForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.pause.name" required autofocus>\n                <div ng-messages="pauseForm.name.$error" ng-show="pauseForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.pause.description">\n                <div ng-messages="pauseForm.description.$error" ng-show="pauseForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n                    ADD PAUSE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-pauses-count">\n                    <span>{{vm.selectedPauses.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="PAUSES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" filename="pauses.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="PAUSES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PAUSE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.pauses.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n                                <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n                                <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(pause, $event)" translate="TOOLS.EDIT_PAUSE">\n                                                    Edit Pause\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(pause, $event)" translate="TOOLS.DELETE_PAUSE">\n                                                    Delete Pause\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PAUSE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PAUSE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n    <form name="scheduleForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.schedule.name" required autofocus>\n                <div ng-messages="scheduleForm.name.$error" ng-show="scheduleForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.schedule.type">\n                    <md-option ng-value="\'report\'">Report</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.type.$error" ng-show="scheduleForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.REPORTTYPE">ReportType</label>\n                <md-select ng-model="vm.schedule.reportType" required>\n                    <md-option ng-value="\'default\'">Default</md-option>\n                    <md-option ng-value="\'custom\'">Custom</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportType.$error" ng-show="scheduleForm.reportType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.reportType == \'default\'" class="md-block">\n                <label translate="TOOLS.REPORT">Report</label>\n                <md-select ng-model="vm.schedule.reportId" required>\n                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportId.$error" ng-show="scheduleForm.reportId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.reportType == \'custom\'" class="md-block">\n                <label translate="TOOLS.REPORT">Report</label>\n                <md-select ng-model="vm.schedule.reportId" required>\n                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportId.$error" ng-show="scheduleForm.reportId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OUTPUT">Output</label>\n                <md-select ng-model="vm.schedule.reportOutput" required>\n                    <md-option ng-value="\'CSV\'">CSV</md-option>\n                    <md-option ng-value="\'PDF\'">PDF</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportOutput.$error" ng-show="scheduleForm.reportOutput.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.EXECUTEON">ExecuteOn</label>\n                <md-select ng-model="vm.schedule.cronType" required>\n\n                    <md-option ng-value="\'currentDay\'"> {{ \'TOOLS.CURRENTDAY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'daily\'"> {{ \'TOOLS.DAILY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'weekly\'"> {{ \'TOOLS.WEEKLY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'monthly\'"> {{ \'TOOLS.MONTHLY\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.cronType.$error" ng-show="scheduleForm.cronType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n                <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>\n                <div ng-messages="scheduleForm.validityStart.$error" ng-show="scheduleForm.validityStart.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n                <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>\n                <div ng-messages="scheduleForm.validityEnd.$error" ng-show="scheduleForm.validityEnd.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>\n                <md-select ng-model="vm.schedule.cron" required>\n\n                    <md-option ng-value="\'*/15 * * * *\'"> {{ \'TOOLS.15MIN\' | translate }}</md-option>\n\n                    <md-option ng-value="\'*/30 * * * *\'"> {{ \'TOOLS.30MIN\' | translate }}</md-option>\n\n                    <md-option ng-value="\'0 * * * *\'"> {{ \'TOOLS.1H\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.cron.$error" ng-show="scheduleForm.cron.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'weekly\'" class="md-block">\n                <label translate="TOOLS.WEEKDAYS">WeekDays</label>\n                <md-select ng-model="vm.schedule.weekDays" required multiple>\n\n                    <md-option ng-value="\'monday\'"> {{ \'TOOLS.MON\' | translate }}</md-option>\n\n                    <md-option ng-value="\'tuesday\'"> {{ \'TOOLS.TUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'wednesday\'"> {{ \'TOOLS.WED\' | translate }}</md-option>\n\n                    <md-option ng-value="\'thursday\'"> {{ \'TOOLS.THU\' | translate }}</md-option>\n\n                    <md-option ng-value="\'friday\'"> {{ \'TOOLS.FRI\' | translate }}</md-option>\n\n                    <md-option ng-value="\'saturday\'"> {{ \'TOOLS.SAT\' | translate }}</md-option>\n\n                    <md-option ng-value="\'sunday\'"> {{ \'TOOLS.SUN\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.weekDays.$error" ng-show="scheduleForm.weekDays.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'monthly\'" class="md-block">\n                <label translate="TOOLS.MONTHDAY">MonthDay</label>\n                <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>\n                <div ng-messages="scheduleForm.monthDay.$error" ng-show="scheduleForm.monthDay.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                <label translate="TOOLS.HOUR">Hour</label>\n                <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>\n                <div ng-messages="scheduleForm.hour.$error" ng-show="scheduleForm.hour.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                <label translate="TOOLS.REPORTRANGE">ReportRange</label>\n                <md-select ng-model="vm.schedule.reportRange" required>\n\n                    <md-option ng-value="\'yesterday\'"> {{ \'TOOLS.PREVIOUS_DAY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'last7\'"> {{ \'TOOLS.LAST_SEVEN_DAYS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'last30\'"> {{ \'TOOLS.LAST_THIRTY_DAYS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastMonth\'"> {{ \'TOOLS.LAST_MONTH\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportRange.$error" ng-show="scheduleForm.reportRange.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.schedule.MailServerOutId" required>\n                    <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.MailServerOutId.$error" ng-show="scheduleForm.MailServerOutId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n                <input type="email" name="email" ng-model="vm.schedule.email" required>\n                <div ng-messages="scheduleForm.email.$error" ng-show="scheduleForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="" name="description" ng-model="vm.schedule.description">\n                <div ng-messages="scheduleForm.description.$error" ng-show="scheduleForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n                    ADD SCHEDULE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/edit/view.html",'<div id="tools-schedule" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-schedules-button md-icon-button" aria-label="Go to schedules" ng-click="vm.gotoScheduler()" translate translate-attr-aria-label="TOOLS.GO_TO_SCHEDULER">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="schedule-image" hide-xs>\n                    <img ng-src="assets/images/business/schedules.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.schedule.id}} {{vm.schedule.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.schedule.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="schedule-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.schedule.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="" name="description" ng-model="vm.schedule.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.CONFIGURATION">CONFIGURATION</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="schedule-detail-form-container configuration md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.CONFIGURATION">CONFIGURATION</div>\n                        </div>\n                        <form name="configurationForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.REPORTTYPE">ReportType</label>\n                                <md-select ng-model="vm.schedule.reportType" required autofocus>\n                                    <md-option ng-value="\'default\'">Default</md-option>\n                                    <md-option ng-value="\'custom\'">Custom</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportType.$error" ng-show="configurationForm.reportType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.reportType == \'default\'" class="md-block">\n                                <label translate="TOOLS.REPORT">Report</label>\n                                <md-select ng-model="vm.schedule.reportId" required>\n                                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.reportType == \'custom\'" class="md-block">\n                                <label translate="TOOLS.REPORT">Report</label>\n                                <md-select ng-model="vm.schedule.reportId" required>\n                                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OUTPUT">Output</label>\n                                <md-select ng-model="vm.schedule.reportOutput" required>\n                                    <md-option ng-value="\'CSV\'">CSV</md-option>\n                                    <md-option ng-value="\'PDF\'">PDF</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportOutput.$error" ng-show="configurationForm.reportOutput.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.EXECUTEON">ExecuteOn</label>\n                                <md-select ng-model="vm.schedule.cronType" required>\n\n                                    <md-option ng-value="\'currentDay\'"> {{ \'TOOLS.CURRENTDAY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'daily\'"> {{ \'TOOLS.DAILY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'weekly\'"> {{ \'TOOLS.WEEKLY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'monthly\'"> {{ \'TOOLS.MONTHLY\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.cronType.$error" ng-show="configurationForm.cronType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n                                <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>\n                                <div ng-messages="configurationForm.validityStart.$error" ng-show="configurationForm.validityStart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n                                <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>\n                                <div ng-messages="configurationForm.validityEnd.$error" ng-show="configurationForm.validityEnd.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>\n                                <md-select ng-model="vm.schedule.cron" required>\n\n                                    <md-option ng-value="\'*/15 * * * *\'"> {{ \'TOOLS.15MIN\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'*/30 * * * *\'"> {{ \'TOOLS.30MIN\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'0 * * * *\'"> {{ \'TOOLS.1H\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.cron.$error" ng-show="configurationForm.cron.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'weekly\'" class="md-block">\n                                <label translate="TOOLS.WEEKDAYS">WeekDays</label>\n                                <md-select ng-model="vm.schedule.weekDays" required multiple>\n\n                                    <md-option ng-value="\'monday\'"> {{ \'TOOLS.MON\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'tuesday\'"> {{ \'TOOLS.TUE\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'wednesday\'"> {{ \'TOOLS.WED\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'thursday\'"> {{ \'TOOLS.THU\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'friday\'"> {{ \'TOOLS.FRI\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'saturday\'"> {{ \'TOOLS.SAT\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'sunday\'"> {{ \'TOOLS.SUN\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.weekDays.$error" ng-show="configurationForm.weekDays.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'monthly\'" class="md-block">\n                                <label translate="TOOLS.MONTHDAY">MonthDay</label>\n                                <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>\n                                <div ng-messages="configurationForm.monthDay.$error" ng-show="configurationForm.monthDay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.HOUR">Hour</label>\n                                <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>\n                                <div ng-messages="configurationForm.hour.$error" ng-show="configurationForm.hour.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.REPORTRANGE">ReportRange</label>\n                                <md-select ng-model="vm.schedule.reportRange" required>\n\n                                    <md-option ng-value="\'yesterday\'"> {{ \'TOOLS.PREVIOUS_DAY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'last7\'"> {{ \'TOOLS.LAST_SEVEN_DAYS\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'last30\'"> {{ \'TOOLS.LAST_THIRTY_DAYS\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'lastMonth\'"> {{ \'TOOLS.LAST_MONTH\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportRange.$error" ng-show="configurationForm.reportRange.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                                <label translate="TOOLS.ACCOUNT">Account</label>\n                                <md-select ng-model="vm.schedule.MailServerOutId" required>\n                                    <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.MailServerOutId.$error" ng-show="configurationForm.MailServerOutId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                                <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n                                <input type="email" name="email" ng-model="vm.schedule.email" required>\n                                <div ng-messages="configurationForm.email.$error" ng-show="configurationForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-schedules-count">\n                    <span>{{vm.selectedScheduler.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SCHEDULER.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" filename="schedules.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="SCHEDULER.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SCHEDULE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="sendMail">{{ \'TOOLS.SENDMAIL\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.schedules.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n                                <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n                                <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="sendMail ">\n                                    <md-icon md-colors="{color: {{schedule.sendMail ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{schedule.sendMail ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(schedule, $event)" translate="TOOLS.EDIT_SCHEDULE">\n                                                    Edit Schedule\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(schedule, $event)" translate="TOOLS.DELETE_SCHEDULE">\n                                                    Delete Schedule\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SCHEDULE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SCHEDULE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n    <form name="soundForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.sound.name" required autofocus>\n                <div ng-messages="soundForm.name.$error" ng-show="soundForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.sound.description">\n                <div ng-messages="soundForm.description.$error" ng-show="soundForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n                    ADD SOUND\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-sounds-count">\n                    <span>{{vm.selectedSounds.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SOUNDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" filename="sounds.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="SOUNDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SOUND TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.sounds.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n                                <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n                                <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n                                <td md-cell class="audio "><audio controls><source ng-src="{{\'api/sounds/\' + sound.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(sound, $event)" translate="TOOLS.EDIT_SOUND">\n                                                    Edit Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(sound, $event)" translate="TOOLS.DOWNLOAD_SOUND">\n                                                    Download Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(sound, $event)" translate="TOOLS.DELETE_SOUND">\n                                                    Delete Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SOUND TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SOUND BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-sound-button" ng-click="vm.uploadSound($event)" aria-label="add sound" translate translate-attr-aria-label="SOUNDS.ADD_SOUND">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/uploadsound/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload Sound">\n    <form name="uploadForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div id="agent-image-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-complete="vm.uploadComplete()" flow-drop\n                flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                    <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n                </div>\n\n                <div class="upload-button" layout="column" layout-align="center center">\n                    <md-button class="md-accent md-raised" flow-btn>\n                        Upload\n                    </md-button>\n                    <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop audio here to upload. Only MP3, WAV, GSM - Max. 15MB</span>\n                </div>\n\n                <div layout="row" layout-align="start start" ng-repeat="sound in vm.uploadSounds" ng-switch="sound.type">\n                    <div class="sound-image" ng-switch-when="uploading" flex>\n                        <img class="media" src="assets/images/music-player/uploading.png">\n                        <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n                        <span class="text-truncate">{{sound.file.name}}</span>\n                    </div>\n                    <div class="sound-image" ng-switch-when="sound" flex>\n                        <img class="media" src="assets/images/music-player/success.png">\n                        <span class="text-truncate">{{sound.file.name}}</span>\n                    </div>\n                </div>\n\n\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center"></div>\n            <div layout="row">\n                <md-button ng-click="vm.closeDialog()" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n                    FINISH\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n    <form name="tagForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.tag.name" required autofocus>\n                <div ng-messages="tagForm.name.$error" ng-show="tagForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.tag.description">\n                <div ng-messages="tagForm.description.$error" ng-show="tagForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n                    ADD TAG\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-tags-count">\n                    <span>{{vm.selectedTags.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TAGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTags" filename="tags.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TAGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TAG TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.tags.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n                                <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n                                <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(tag, $event)" translate="TOOLS.EDIT_TAG">\n                                                    Edit Tag\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(tag, $event)" translate="TOOLS.DELETE_TAG">\n                                                    Delete Tag\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TAG TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TAG BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n    <form name="templateForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.template.name" required autofocus>\n                <div ng-messages="templateForm.name.$error" ng-show="templateForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.SUBJECT">Subject</label>\n                <input type="text" name="subject" ng-model="vm.template.subject">\n                <div ng-messages="templateForm.subject.$error" ng-show="templateForm.subject.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.SUBJECT_REQUIRED">Subject field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <text-angular ng-model="vm.template.html"></text-angular>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.template.description">\n                <div ng-messages="templateForm.description.$error" ng-show="templateForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n                    ADD TEMPLATE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-templates-count">\n                    <span>{{vm.selectedTemplates.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TEMPLATES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" filename="templates.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TEMPLATES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TEMPLATE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.templates.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n                                <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n                                <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(template, $event)" translate="TOOLS.EDIT_TEMPLATE">\n                                                    Edit Template\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(template, $event)" translate="TOOLS.DELETE_TEMPLATE">\n                                                    Delete Template\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TEMPLATE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TEMPLATE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n    <form name="triggerForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.trigger.name" required autofocus>\n                <div ng-messages="triggerForm.name.$error" ng-show="triggerForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n\n                    <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="triggerForm.channel.$error" ng-show="triggerForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.trigger.description">\n                <div ng-messages="triggerForm.description.$error" ng-show="triggerForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n                    ADD TRIGGER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n    <form name="actionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.ACTION">Action</label>\n                <md-select ng-model="vm.action.action" required autofocus>\n\n                    <md-option ng-value="\'contactManager\'"> {{ \'TOOLS.CONTACT_MANAGER\' | translate }}</md-option>\n\n                    <md-option ng-value="\'integration\'"> {{ \'TOOLS.INTEGRATIONS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTION_BAR\' | translate }}</md-option>\n\n                    <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }}</md-option>\n\n                    <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.action.$error" ng-show="actionForm.action.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'0\'">Popup</md-option>\n                    <md-option ng-value="\'1\'">CTI URL</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n                <label translate="TOOLS.LIST">List</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="data1.id" ng-repeat="data1 in vm.lists">{{ data1.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'GET\'">GET</md-option>\n                    <md-option ng-value="\'POST\'">POST</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n                <label translate="TOOLS.INTEGRATION">Integration</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'zendesk\'">Zendesk</md-option>\n                    <md-option ng-value="\'salesforce\'">Salesforce</md-option>\n                    <md-option ng-value="\'sugarcrm\'">SugarCRM</md-option>\n                    <md-option ng-value="\'freshdesk\'">Freshdesk</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'zendesk\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.zendeskAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'salesforce\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.salesforceAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'sugarcrm\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.sugarcrmAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'freshdesk\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.freshdeskAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'zendesk\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.zendeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'salesforce\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.salesforceConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'sugarcrm\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.sugarcrmConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'freshdesk\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.freshdeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'0\'">Popup</md-option>\n                    <md-option ng-value="\'1\'">CTI URL</md-option>\n                    <md-option ng-value="\'2\'">Windows App</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n                <label translate="TOOLS.APPLICATION">Application</label>\n                <input type="text" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n                <label translate="TOOLS.ARGUMENTS">Arguments</label>\n                <input type="text" name="data3" ng-model="vm.action.data3">\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n                <label translate="TOOLS.TEMPLATE">Template</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n                <label translate="TOOLS.TEMPLATE">Template</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n                    ADD ACTION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n    <form name="allConditionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.FIELD">Field</label>\n                <md-select ng-model="vm.allCondition.field" required autofocus>\n\n                    <md-option ng-value="\'queue\'"> {{ \'TOOLS.QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastevent\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'routeId\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.field.$error" ng-show="allConditionForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OPERATOR">Operator</label>\n                <md-select ng-model="vm.allCondition.operator" required>\n\n                    <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.operator.$error" ng-show="allConditionForm.operator.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'queue\'" class="md-block">\n                <label translate="TOOLS.QUEUE">Queue</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="value.name" ng-repeat="value in vm.queues">{{ value.name }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'routeId\'" class="md-block">\n                <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="value.id" ng-repeat="value in vm.outboundRoutes">{{ value.exten }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="\'abandoned\'">Abandon</md-option>\n                    <md-option ng-value="\'complete\'">Hangup</md-option>\n                    <md-option ng-value="\'rejected\'">Reject</md-option>\n                    <md-option ng-value="\'called\'">Ring</md-option>\n                    <md-option ng-value="\'connect\'">Answer</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n                    ADD ALLCONDITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n    <form name="anyConditionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.FIELD">Field</label>\n                <md-select ng-model="vm.anyCondition.field" required autofocus>\n\n                    <md-option ng-value="\'queue\'"> {{ \'TOOLS.QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastevent\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'routeId\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.field.$error" ng-show="anyConditionForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OPERATOR">Operator</label>\n                <md-select ng-model="vm.anyCondition.operator" required>\n\n                    <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.operator.$error" ng-show="anyConditionForm.operator.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'queue\'" class="md-block">\n                <label translate="TOOLS.QUEUE">Queue</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="value.name" ng-repeat="value in vm.queues">{{ value.name }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'routeId\'" class="md-block">\n                <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="value.id" ng-repeat="value in vm.outboundRoutes">{{ value.exten }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="\'abandoned\'">Abandon</md-option>\n                    <md-option ng-value="\'complete\'">Hangup</md-option>\n                    <md-option ng-value="\'rejected\'">Reject</md-option>\n                    <md-option ng-value="\'called\'">Ring</md-option>\n                    <md-option ng-value="\'connect\'">Answer</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n                    ADD ANYCONDITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="trigger-image" hide-xs>\n                    <img ng-src="assets/images/business/triggers.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.trigger.id}} {{vm.trigger.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trigger.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.trigger.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CHANNEL">Channel</label>\n                                <md-select ng-model="vm.trigger.channel" required ng-disabled="true">\n\n                                    <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.channel.$error" ng-show="generalForm.channel.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.trigger.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerAllConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">AllConditions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerAllConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerAllConditions.length}} {{vm_dc.selectedTriggerAllConditions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerAllConditions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerAllConditions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="field">{{ \'TOOLS.FIELD\' | translate }}</th>\n                                            <th md-column md-order-by="operator">{{ \'TOOLS.OPERATOR\' | translate }}</th>\n                                            <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.triggerAllConditions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{allCondition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayfield[allCondition.field].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayoperator[allCondition.operator].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'queue\'" md-cell>{{ value = vm_dc.queues[allCondition.value]; value.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'routeId\'" md-cell>{{ value = vm_dc.outboundRoutes[allCondition.value]; value.exten }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'lastevent\'" md-cell>{{ vm_dc.arrayvalue[allCondition.value].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{allCondition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n                                                                Edit AllCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n                                                                Delete AllCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerAllConditions.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No allcondition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerAllConditions.count}}" md-on-paginate="vm_dc.getTriggerAllConditions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                    <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerAnyConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerAnyConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerAnyConditions.length}} {{vm_dc.selectedTriggerAnyConditions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerAnyConditions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerAnyConditions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="field">{{ \'TOOLS.FIELD\' | translate }}</th>\n                                            <th md-column md-order-by="operator">{{ \'TOOLS.OPERATOR\' | translate }}</th>\n                                            <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.triggerAnyConditions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{anyCondition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayfield[anyCondition.field].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayoperator[anyCondition.operator].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'queue\'" md-cell>{{ value = vm_dc.queues[anyCondition.value]; value.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'routeId\'" md-cell>{{ value = vm_dc.outboundRoutes[anyCondition.value]; value.exten }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'lastevent\'" md-cell>{{ vm_dc.arrayvalue[anyCondition.value].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{anyCondition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n                                                                Edit AnyCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n                                                                Delete AnyCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerAnyConditions.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerAnyConditions.count}}" md-on-paginate="vm_dc.getTriggerAnyConditions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                    <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerActions.length}} {{vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="action">{{ \'TOOLS.ACTION\' | translate }}</th>\n                                            <th md-column md-order-by="data1">{{ \'TOOLS.TYPE\' | translate }}</th>\n                                            <th md-column md-order-by="data2">{{ \'TOOLS.INFO\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{action.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayaction[action.action].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>{{ vm_dc.browserValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>{{ data1 = vm_dc.lists[action.data1]; data1.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>{{ vm_dc.urlForwardValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>{{ vm_dc.integrationValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>{{ data2 = vm_dc.zendeskAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>{{ data2 = vm_dc.salesforceAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>{{ data2 = vm_dc.sugarcrmAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>{{ data2 = vm_dc.freshdeskAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>{{ vm_dc.motionbarValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'1\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'2\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'0\'" md-cell>{{ data2 = vm_dc.templates[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 == \'0\'" md-cell>{{ data2 = vm_dc.templates[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 == \'1\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{action.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\n                                                                Edit Action\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\n                                                                Delete Action\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\n                                            <td md-cell colspan="26">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ACTION_AVAILABLE">No action available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerActions.count}}" md-on-paginate="vm_dc.getTriggerActions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-triggers-count">\n                    <span>{{vm.selectedTriggers.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TRIGGERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" filename="triggers.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TRIGGER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n                                <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.triggers.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n                                <td md-cell ng-if="trigger.userpic"><img class="avatar" alt="{{trigger.name}}" ng-src="api/users/{{trigger.id}}/avatar" /></td>\n                                <td md-cell ng-if="!trigger.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trigger.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{trigger.id}}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{trigger.name}}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">{{ \'TOOLS.\' + vm.arraychannel[trigger.channel].option | uppercase | translate }}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n                                    <md-icon md-colors="{color: {{trigger.status ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{trigger.status ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">{{trigger.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(trigger, $event)" translate="TOOLS.EDIT_TRIGGER">\n                                                    Edit Trigger\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n                                                    Delete Trigger\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.triggers.count}}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TRIGGER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TRIGGER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n    <form name="trunkForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newTrunk">\n                <div ng-messages="trunkForm.name.$error" ng-show="trunkForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.HOST">host</label>\n                <input type="text" name="host" ng-model="vm.trunk.host" required>\n                <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n                <div ng-messages="trunkForm.host.$error" ng-show="trunkForm.host.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.SECRET">secret</label>\n                <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                <div ng-messages="trunkForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTrunk ">\n                <label translate="TOOLS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="secret" name="confirmPassword" ng-model="confirmPassword">\n                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                <div ng-messages="trunkForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="TOOLS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n                <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" required>\n                <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n                <div ng-messages="trunkForm.defaultuser.$error" ng-show="trunkForm.defaultuser.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.REGISTRY">registry</label>\n                <input type="text" name="registry" ng-model="vm.trunk.registry">\n                <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n                <div ng-messages="trunkForm.registry.$error" ng-show="trunkForm.registry.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.trunk.description">\n                <div ng-messages="trunkForm.description.$error" ng-show="trunkForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n                    ADD TRUNK\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="trunk-image" hide-xs>\n                    <img ng-src="assets/images/business/trunks.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.trunk.id}} {{vm.trunk.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.HOST">host</label>\n                                <input type="text" name="host" ng-model="vm.trunk.host" required>\n                                <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n                                <div ng-messages="generalForm.host.$error" ng-show="generalForm.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.SECRET">secret</label>\n                                <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n                                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newTrunk ">\n                                <label translate="TOOLS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="secret" name="confirmPassword" ng-model="confirmPassword">\n                                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="TOOLS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n                                <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" required>\n                                <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n                                <div ng-messages="generalForm.defaultuser.$error" ng-show="generalForm.defaultuser.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CONTEXT">context</label>\n                                <md-select ng-model="vm.trunk.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALLERID">callerid</label>\n                                <input type="text" name="callerid" ng-model="vm.trunk.callerid" required>\n                                <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TYPE">Type</label>\n                                <md-select ng-model="vm.trunk.type" required>\n                                    <md-option ng-value="\'friend\'">Friend</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                    <md-option ng-value="\'peer\'">Peer</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n                                <md-select ng-model="vm.trunk.dtmfmode" required>\n                                    <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n                                    <md-option ng-value="\'info\'">info</md-option>\n                                    <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n                                    <md-option ng-value="\'inband\'">inband</md-option>\n                                    <md-option ng-value="\'auto\'">auto</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n                                <div ng-messages="generalForm.dtmfmode.$error" ng-show="generalForm.dtmfmode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAT">nat</label>\n                                <md-select ng-model="vm.trunk.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.QUALIFY">qualify</label>\n                                <md-select ng-model="vm.trunk.qualify" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'user\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n                                <div ng-messages="generalForm.qualify.$error" ng-show="generalForm.qualify.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.trunk.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g723\'">g723</md-option>\n                                    <md-option ng-value="\'g726\'">g726</md-option>\n                                    <md-option ng-value="\'g722\'">g722</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.INSECURE">insecure</label>\n                                <md-select ng-model="vm.trunk.insecure" required multiple>\n                                    <md-option ng-value="\'port\'">port</md-option>\n                                    <md-option ng-value="\'invite\'">invite</md-option>\n                                    <md-option ng-value="\'very\'">very</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n                                <div ng-messages="generalForm.insecure.$error" ng-show="generalForm.insecure.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n                                <input type="number" name="call_limit" ng-model="vm.trunk.call_limit">\n                                <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n                                <div ng-messages="generalForm.call_limit.$error" ng-show="generalForm.call_limit.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.trunk.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.REGISTRY">registry</label>\n                                <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus>\n                                <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n                                <div ng-messages="advancedForm.registry.$error" ng-show="advancedForm.registry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n                                <md-select ng-model="vm.trunk.directmedia" required>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'nonat\'">nonat</md-option>\n                                    <md-option ng-value="\'update\'">update</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n                                <div ng-messages="advancedForm.directmedia.$error" ng-show="advancedForm.directmedia.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n                                <md-select ng-model="vm.trunk.callcounter" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n                                <div ng-messages="advancedForm.callcounter.$error" ng-show="advancedForm.callcounter.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n                                <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain">\n                                <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n                                <div ng-messages="advancedForm.fromdomain.$error" ng-show="advancedForm.fromdomain.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.FROMUSER">fromuser</label>\n                                <input type="text" name="fromuser" ng-model="vm.trunk.fromuser">\n                                <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n                                <div ng-messages="advancedForm.fromuser.$error" ng-show="advancedForm.fromuser.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n                                <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy">\n                                <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n                                <div ng-messages="advancedForm.outboundproxy.$error" ng-show="advancedForm.outboundproxy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n                                <md-select ng-model="vm.trunk.usereqphone" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n                                <div ng-messages="advancedForm.usereqphone.$error" ng-show="advancedForm.usereqphone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n                                <md-select ng-model="vm.trunk.trustrpid" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n                                <div ng-messages="advancedForm.trustrpid.$error" ng-show="advancedForm.trustrpid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n                                <md-select ng-model="vm.trunk.sendrpid" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n                                <div ng-messages="advancedForm.sendrpid.$error" ng-show="advancedForm.sendrpid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ENCRYPTION">encryption</label>\n                                <md-select ng-model="vm.trunk.encryption" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n                                <div ng-messages="advancedForm.encryption.$error" ng-show="advancedForm.encryption.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.PORT">port</label>\n                                <input type="number" name="port" ng-model="vm.trunk.port">\n                                <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n                                <div ng-messages="advancedForm.port.$error" ng-show="advancedForm.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.trunk.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                    <md-option ng-value="\'tls\'">tls</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="advancedForm.transport.$error" ng-show="advancedForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n                        </div>\n                        <form name="otherFieldsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n                                <textarea ng-model="vm.trunk.otherFields" md-maxlength="150" max-rows="5" autofocus></textarea>\n                                <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-trunks-count">\n                    <span>{{vm.selectedTrunks.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TRUNKS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" filename="trunks.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TRUNKS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TRUNK TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n                                <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.trunks.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n                                <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n                                <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(trunk, $event)" translate="TOOLS.EDIT_TRUNK">\n                                                    Edit Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(trunk, $event)" translate="TOOLS.DELETE_TRUNK">\n                                                    Delete Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TRUNK TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TRUNK BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n    <form name="variableForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.variable.name" required autofocus>\n                <div ng-messages="variableForm.name.$error" ng-show="variableForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.variable.description">\n                <div ng-messages="variableForm.description.$error" ng-show="variableForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n                    ADD VARIABLE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-variables-count">\n                    <span>{{vm.selectedVariables.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VARIABLES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" filename="variables.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="VARIABLES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VARIABLE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.variables.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n                                <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n                                <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(variable, $event)" translate="TOOLS.EDIT_VARIABLE">\n                                                    Edit Variable\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(variable, $event)" translate="TOOLS.DELETE_VARIABLE">\n                                                    Delete Variable\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VARIABLE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VARIABLE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chanSpies-count">\n                    <span>{{vm.selectedChanSpies.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHANSPIES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" filename="chanSpies.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="CHANSPIES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHANSPY TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chanSpies.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n                                <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chanSpy, $event)" translate="VOICE.EDIT_CHANSPY">\n                                                    Edit chanSpy\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chanSpy, $event)" translate="VOICE.DELETE_CHANSPY">\n                                                    Delete chanSpy\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHANSPY TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHANSPY BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n    <form name="chanSpyForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chanSpy.name" required autofocus>\n                <div ng-messages="chanSpyForm.name.$error" ng-show="chanSpyForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PREFIX">Prefix</label>\n                <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required>\n                <div ng-messages="chanSpyForm.prefix.$error" ng-show="chanSpyForm.prefix.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <md-select ng-model="vm.chanSpy.options" required multiple>\n                    <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n                    <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n                    <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n                    <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n                    <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n                    <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n                    <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n                    <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n                    <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n                </md-select>\n                <div ng-messages="chanSpyForm.options.$error" ng-show="chanSpyForm.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chanSpy.description">\n                <div ng-messages="chanSpyForm.description.$error" ng-show="chanSpyForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n                    ADD CHANSPY\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/chanSpies/edit/view.html",'<div id="voice-chanSpy" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chanSpies-button md-icon-button" aria-label="Go to chanSpies" ng-click="vm.gotoChanSpies()" translate translate-attr-aria-label="VOICE.GO_TO_CHANSPIES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="chanSpy-image" hide-xs>\n                    <img ng-src="assets/images/business/chanSpies.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chanSpy.id}} {{vm.chanSpy.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.chanSpy.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chanSpy-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chanSpy.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PREFIX">Prefix</label>\n                                <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required>\n                                <div ng-messages="generalForm.prefix.$error" ng-show="generalForm.prefix.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.OPTIONS">Options</label>\n                                <md-select ng-model="vm.chanSpy.options" required multiple>\n                                    <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n                                    <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n                                    <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n                                    <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n                                    <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n                                    <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n                                    <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n                                    <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n                                    <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.options.$error" ng-show="generalForm.options.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n                                <label translate="VOICE.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newchanSpy  && vm.chanSpy.auth">\n                                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n                                <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n                                <md-select ng-model="vm.chanSpy.recordingFormat" required>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.recordingFormat.$error" ng-show="generalForm.recordingFormat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chanSpy.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-contexts-count">\n                    <span>{{vm.selectedContexts.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTEXTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" filename="contexts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="CONTEXTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CONTEXT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.contexts.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n                                <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n                                <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(context, $event)" translate="VOICE.EDIT_CONTEXT">\n                                                    Edit Context\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(context, $event)" translate="VOICE.DELETE_CONTEXT">\n                                                    Delete Context\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CONTEXT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CONTEXT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n    <form name="contextForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.context.name" required autofocus>\n                <div ng-messages="contextForm.name.$error" ng-show="contextForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.context.description">\n                <div ng-messages="contextForm.description.$error" ng-show="contextForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n                    ADD CONTEXT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/create/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.inboundroute.exten" required autofocus>\n                <div ng-messages="inboundrouteForm.exten.$error" ng-show="inboundrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.inboundroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteForm.context.$error" ng-show="inboundrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.inboundroute.description">\n                <div ng-messages="inboundrouteForm.description.$error" ng-show="inboundrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n                    ADD INBOUNDROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/agi/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.project.$error" ng-show="inboundrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/custom/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="inboundrouteFormApp.app.$error" ng-show="inboundrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/dial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="inboundrouteFormApp.tech.$error" ng-show="inboundrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.trunk.$error" ng-show="inboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone" required>\n                <div ng-messages="inboundrouteFormApp.phone.$error" ng-show="inboundrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/goto/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.context.$error" ng-show="inboundrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="inboundrouteFormApp.extension.$error" ng-show="inboundrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="inboundrouteFormApp.priority.$error" ng-show="inboundrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/hangup/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.user.$error" ng-show="inboundrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/playback/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/queue/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.queue.$error" ng-show="inboundrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="inboundrouteFormApp.URL.$error" ng-show="inboundrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.sound.$error" ng-show="inboundrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="inboundrouteFormApp.agi.$error" ng-show="inboundrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="inboundrouteFormApp.macro.$error" ng-show="inboundrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="inboundrouteFormApp.gosub.$error" ng-show="inboundrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="inboundrouteFormApp.rule.$error" ng-show="inboundrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="inboundrouteFormApp.position.$error" ng-show="inboundrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.multipleUsers.$error" ng-show="inboundrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/set/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="inboundrouteFormApp.name.$error" ng-show="inboundrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="inboundrouteFormApp.value.$error" ng-show="inboundrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.voiceMail.$error" ng-show="inboundrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/view.html",'<div id="voice-inboundroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-inboundroutes-button md-icon-button" aria-label="Go to inboundroutes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="inboundroute-image" hide-xs>\n                    <img ng-src="assets/images/business/inboundroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.inboundroute.id}} {{vm.inboundroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="inboundroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.inboundroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.inboundroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.inboundroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="inboundroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="InboundRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.inboundroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedInboundRouteApps.length}} {{vm_ac.selectedInboundRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInboundRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedInboundRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.inboundrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editInboundRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editInboundRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInboundRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.inboundrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/inboundroutes/inboundroutes.html",'<div id="inboundroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-inboundroutes-count">\n                    <span>{{vm.selectedInboundRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INBOUNDROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllInboundRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectInboundRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" filename="inboundroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="INBOUNDROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INBOUNDROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.inboundroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="inboundroute" md-select-id="id" ng-repeat="inboundroute in vm.inboundroutes.rows">\n                                <td md-cell ng-if="inboundroute.userpic"><img class="avatar" alt="{{inboundroute.name}}" ng-src="api/users/{{inboundroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!inboundroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{inboundroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="id ">{{inboundroute.id}}</td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="exten ">{{inboundroute.exten}}</td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="description ">{{inboundroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(inboundroute, $event)" translate="VOICE.EDIT_INBOUNDROUTE">\n                                                    Edit InboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(inboundroute, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n                                                    Delete InboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.inboundroutes.count}}" md-on-paginate="vm.getInboundRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INBOUNDROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INBOUNDROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-inboundroute-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inboundroute" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INBOUNDROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalroutes/create/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>\n                <div ng-messages="internalrouteForm.exten.$error" ng-show="internalrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.internalroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteForm.context.$error" ng-show="internalrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.internalroute.description">\n                <div ng-messages="internalrouteForm.description.$error" ng-show="internalrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n                    ADD INTERNALROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/agi/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.project.$error" ng-show="internalrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/custom/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="internalrouteFormApp.app.$error" ng-show="internalrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/dial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="internalrouteFormApp.tech.$error" ng-show="internalrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.trunk.$error" ng-show="internalrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone">\n                <div ng-messages="internalrouteFormApp.phone.$error" ng-show="internalrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/goto/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.context.$error" ng-show="internalrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="internalrouteFormApp.extension.$error" ng-show="internalrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="internalrouteFormApp.priority.$error" ng-show="internalrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/hangup/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.user.$error" ng-show="internalrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/playback/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/queue/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.queue.$error" ng-show="internalrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="internalrouteFormApp.URL.$error" ng-show="internalrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.sound.$error" ng-show="internalrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="internalrouteFormApp.agi.$error" ng-show="internalrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="internalrouteFormApp.macro.$error" ng-show="internalrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="internalrouteFormApp.gosub.$error" ng-show="internalrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="internalrouteFormApp.rule.$error" ng-show="internalrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="internalrouteFormApp.position.$error" ng-show="internalrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.multipleUsers.$error" ng-show="internalrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/set/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="internalrouteFormApp.name.$error" ng-show="internalrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="internalrouteFormApp.value.$error" ng-show="internalrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.voiceMail.$error" ng-show="internalrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/view.html",'<div id="voice-internalroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-internalroutes-button md-icon-button" aria-label="Go to internalroutes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="internalroute-image" hide-xs>\n                    <img ng-src="assets/images/business/internalroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.internalroute.id}} {{vm.internalroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="internalroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.internalroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.internalroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="internalroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="InternalRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.internalroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInternalRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInternalRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedInternalRouteApps.length}} {{vm_ac.selectedInternalRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInternalRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedInternalRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.internalrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInternalRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.internalrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/internalroutes/internalroutes.html",'<div id="internalroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-internalroutes-count">\n                    <span>{{vm.selectedInternalRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTERNALROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllInternalRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectInternalRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" filename="internalroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="INTERNALROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INTERNALROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.internalroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="internalroute" md-select-id="id" ng-repeat="internalroute in vm.internalroutes.rows">\n                                <td md-cell ng-if="internalroute.userpic"><img class="avatar" alt="{{internalroute.name}}" ng-src="api/users/{{internalroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!internalroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{internalroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="id ">{{internalroute.id}}</td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="exten ">{{internalroute.exten}}</td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="description ">{{internalroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(internalroute, $event)" translate="VOICE.EDIT_INTERNALROUTE">\n                                                    Edit InternalRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(internalroute, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n                                                    Delete InternalRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.internalroutes.count}}" md-on-paginate="vm.getInternalRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INTERNALROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INTERNALROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-internalroute-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internalroute" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INTERNALROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n    <form name="musiconholdForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.musiconhold.name" required autofocus ng-disabled="!vm.newMusicOnHold">\n                <div ng-messages="musiconholdForm.name.$error" ng-show="musiconholdForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MODE">Mode</label>\n                <md-select ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n                    <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }}</md-option>\n\n                    <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="musiconholdForm.mode.$error" ng-show="musiconholdForm.mode.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n                <label translate="VOICE.APPLICATION">Application</label>\n                <input type="text" name="application" ng-model="vm.musiconhold.application" required>\n                <div ng-messages="musiconholdForm.application.$error" ng-show="musiconholdForm.application.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n                <label translate="VOICE.SORT">Sort</label>\n                <md-select ng-model="vm.musiconhold.sort">\n\n                    <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }}</md-option>\n\n                    <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="musiconholdForm.sort.$error" ng-show="musiconholdForm.sort.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n                    ADD MUSICONHOLD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n    <form name="mohSoundForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.FILE">File</label>\n                <md-select ng-model="vm.mohSound.id" autofocus>\n                    <md-option ng-value="id.id" ng-repeat="id in vm.sounds">{{ id.name }}</md-option>\n                </md-select>\n                <div ng-messages="mohSoundForm.id.$error" ng-show="mohSoundForm.id.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n                    ADD MOHSOUND\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="musiconhold-image" hide-xs>\n                    <img ng-src="assets/images/business/musiconholds.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.musiconhold.id}} {{vm.musiconhold.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.musiconhold.name" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MODE">Mode</label>\n                                <md-select ng-model="vm.musiconhold.mode" required ng-disabled="true">\n\n                                    <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.mode.$error" ng-show="generalForm.mode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n                                <label translate="VOICE.APPLICATION">Application</label>\n                                <input type="text" name="application" ng-model="vm.musiconhold.application" required>\n                                <div ng-messages="generalForm.application.$error" ng-show="generalForm.application.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n                                <label translate="VOICE.SORT">Sort</label>\n                                <md-select ng-model="vm.musiconhold.sort">\n\n                                    <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.sort.$error" ng-show="generalForm.sort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="MUSICONHOLDS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                            <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'VOICE.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n                                            <td md-cell>{{mohSound.id}}</td>\n                                            <td md-cell><audio controls><source ng-src="{{\'api/sounds/\' + mohSound.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                            <td md-cell>{{mohSound.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-href="api/mohs/{{mohSound.id}}/download" target="_blank" translate="VOICE.DOWNLOAD_MOHSOUND">\n                                                                Download MohSound\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n                                                                Delete MohSound\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n                                            <td md-cell colspan="6">\n                                                <span class="text-boxed-ligth" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-musiconholds-count">\n                    <span>{{vm.selectedMusicOnHolds.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MUSICONHOLDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" filename="musiconholds.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="MUSICONHOLDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MUSICONHOLD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n                                <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.musiconholds.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n                                <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n                                <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(musiconhold, $event)" translate="VOICE.EDIT_MUSICONHOLD">\n                                                    Edit MusicOnHold\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(musiconhold, $event)" translate="VOICE.DELETE_MUSICONHOLD">\n                                                    Delete MusicOnHold\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MUSICONHOLD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundroutes/create/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.outboundroute.exten" required autofocus>\n                <div ng-messages="outboundrouteForm.exten.$error" ng-show="outboundrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.outboundroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteForm.context.$error" ng-show="outboundrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.outboundroute.description">\n                <div ng-messages="outboundrouteForm.description.$error" ng-show="outboundrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n                    ADD OUTBOUNDROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/agi/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.project.$error" ng-show="outboundrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/custom/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="outboundrouteFormApp.app.$error" ng-show="outboundrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/dial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="outboundrouteFormApp.tech.$error" ng-show="outboundrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.trunk.$error" ng-show="outboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone">\n                <div ng-messages="outboundrouteFormApp.phone.$error" ng-show="outboundrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/goto/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.context.$error" ng-show="outboundrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="outboundrouteFormApp.extension.$error" ng-show="outboundrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="outboundrouteFormApp.priority.$error" ng-show="outboundrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/hangup/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.user.$error" ng-show="outboundrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/outbounddial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.outbounddial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.trunk.$error" ng-show="outboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CALLER_ID">Caller_ID</label>\n                <input type="text" name="callerID" ng-model="vm.outbounddial.callerID">\n                <div ng-messages="outboundrouteFormApp.callerID.$error" ng-show="outboundrouteFormApp.callerID.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PREFIX">Prefix</label>\n                <input type="text" name="prefix" ng-model="vm.outbounddial.prefix">\n                <div ng-messages="outboundrouteFormApp.prefix.$error" ng-show="outboundrouteFormApp.prefix.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CUTDIGITS">CutDigits</label>\n                <input type="number" name="cutdigits" ng-model="vm.outbounddial.cutdigits" min="0">\n                <div ng-messages="outboundrouteFormApp.cutdigits.$error" ng-show="outboundrouteFormApp.cutdigits.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RECORDING">Recording</label>\n                <md-select ng-model="vm.outbounddial.recordingFormat" required>\n                    <md-option ng-value="\'none\'">none</md-option>\n                    <md-option ng-value="\'wav\'">wav</md-option>\n                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                </md-select>\n                <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n                <div ng-messages="outboundrouteFormApp.recordingFormat.$error" ng-show="outboundrouteFormApp.recordingFormat.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TAGS">Tags</label>\n                <md-select ng-model="vm.outbounddial.tag">\n                    <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n                    <md-option ng-value="\'--\'">None</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.tag.$error" ng-show="outboundrouteFormApp.tag.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.outbounddial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.outbounddial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.outbounddial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/playback/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/queue/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.queue.$error" ng-show="outboundrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="outboundrouteFormApp.URL.$error" ng-show="outboundrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.sound.$error" ng-show="outboundrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="outboundrouteFormApp.agi.$error" ng-show="outboundrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="outboundrouteFormApp.macro.$error" ng-show="outboundrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="outboundrouteFormApp.gosub.$error" ng-show="outboundrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="outboundrouteFormApp.rule.$error" ng-show="outboundrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="outboundrouteFormApp.position.$error" ng-show="outboundrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.multipleUsers.$error" ng-show="outboundrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/set/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="outboundrouteFormApp.name.$error" ng-show="outboundrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="outboundrouteFormApp.value.$error" ng-show="outboundrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.voiceMail.$error" ng-show="outboundrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/view.html",'<div id="voice-outboundroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-outboundroutes-button md-icon-button" aria-label="Go to outboundroutes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="outboundroute-image" hide-xs>\n                    <img ng-src="assets/images/business/outboundroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.outboundroute.id}} {{vm.outboundroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="outboundroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.outboundroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.outboundroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.outboundroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="outboundroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="OutboundRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.outboundroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOutboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOutboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedOutboundRouteApps.length}} {{vm_ac.selectedOutboundRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedOutboundRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedOutboundRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.outboundrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editOutboundRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editOutboundRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editOutboundRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.outboundrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/outboundroutes/outboundroutes.html",'<div id="outboundroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-outboundroutes-count">\n                    <span>{{vm.selectedOutboundRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OUTBOUNDROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOutboundRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOutboundRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" filename="outboundroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="OUTBOUNDROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OUTBOUNDROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.outboundroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="outboundroute" md-select-id="id" ng-repeat="outboundroute in vm.outboundroutes.rows">\n                                <td md-cell ng-if="outboundroute.userpic"><img class="avatar" alt="{{outboundroute.name}}" ng-src="api/users/{{outboundroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!outboundroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{outboundroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="id ">{{outboundroute.id}}</td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="exten ">{{outboundroute.exten}}</td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="description ">{{outboundroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(outboundroute, $event)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n                                                    Edit OutboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(outboundroute, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n                                                    Delete OutboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.outboundroutes.count}}" md-on-paginate="vm.getOutboundRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OUTBOUNDROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OUTBOUNDROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-outboundroute-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outboundroute" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OUTBOUNDROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n            <tr md-row>\n                <th md-column width="20px"></th>\n                <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.agents">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="agent" md-select-id="id" ng-repeat="(id, agent) in vm.agents">\n                <td md-cell>\n                    <div class="avatar-wrapper">\n                        <img md-menu-align-target class="avatar" ng-src="{{agent.userpic && \'api/users/\'+agent.id+\'/avatar\' || \'assets/images/avatars/profile.jpg\'}}">\n                        <md-icon md-font-icon class="icon status s16 icon-checkbox-marked-circle" ng-class="agent.online ? \'green-300-fg\' : \'red-300-fg\'"></md-icon>\n                    </div>\n                </td>\n                <td md-cell>\n                    <div layout="column">\n                        <span class="text-truncate"><span ng-if="agent.online" class="text-boxed"><timer start-time="agent.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>{{agent.fullname}}</span>\n                        <span class="text-truncate" ng-if="agent.voicePause">\n              <span><span class="text-boxed"><timer start-time="agent.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span></span><span class="blink red-fg">{{agent.pauseType || \'dafault\' | uppercase}}</span>\n                        </span>\n                    </div>\n                </td>\n                <td md-cell>\n                    {{agent.internal}}\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[agent.state]">\n            <md-tooltip>{{\'VOICE.\' + agent.state | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span class="text-boxed" ng-if="agent.stateTime && vm.isAvailableState(agent.state)">\n            <timer ng-if="agent.stateTime" start-time="agent.stateTime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n          </span>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[agent.status]">\n            <md-tooltip>{{\'VOICE.\' + agent.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="agent.status === \'registered\'" class="text-boxed">{{agent.address}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="4">\n                            <md-menu-item>\n                                <md-button ng-click="vm.logout(agent, $event)" translate="VOICE.LOGOUT">\n                                    Logout\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.queueAdd(agent, $event)" translate="VOICE.AGENTADD_QUEUE">\n                                    Add Agent In Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="VOICE.PAUSE">Pause</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.pause(agent)"><em translate="VOICE.DEFAULT_PAUSE">Default Pause</em></md-button>\n                                        </md-menu-item>\n                                        <md-menu-item ng-if="vm.pauses.rows.length" ng-repeat="pause in vm.pauses.rows">\n                                            <md-button ng-click="vm.pause(agent, pause.name)">{{pause.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.unPause(agent)" translate="VOICE.UNPAUSE">\n                                    Unpause\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.calls.count">\n                <td md-cell colspan="4">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n                <td md-cell>\n                    <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n                </td>\n                <td md-cell>\n                    {{call.calleridname}}, {{call.calleridnum}} <span class="text-boxed" ng-if="call.answered"><timer ng-if="call.answertime" start-time="call.answertime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                </td>\n                <td md-cell>{{call.exten}}</td>\n                <td md-cell>\n                    <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n                      <timer ng-if="call.starttime" start-time="call.starttime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                    </span>\n                    <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="vm.query.limitOptions" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n        \x3c!-- <div flex></div>\n    <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar> --\x3e\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n                <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n                <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                <td md-cell>\n                    <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n                    <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n                </td>\n                <td md-cell>{{channel.exten}}</td>\n                <td md-cell>{{channel.queue}}</td>\n                <td md-cell>{{channel.calleridnum}}</td>\n                <td md-cell>\n                    <span ng-if="channel.queuecallerleaveAt">\n              {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n              <span class="text-boxed">\n                <timer start-time="channel.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n              </span>\n                    </span>\n                    <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n              {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell>\n                    <span class="text-boxed">\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="2">\n                            <md-menu-item>\n                                <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n                                    Hangup\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n                                    Number\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="VOICE.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item ng-repeat="agent in vm.agents.rows">\n                                            <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name)">{{agent.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n            \x3c!-- <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n        <td md-cell>\n          <i ng-class="vm.channelStatusClass[call.status.toLowerCase()]"></i>\n        </td>\n        <td md-cell>{{call.exten}}</td>\n        <td md-cell>{{call.queue}}</td>\n        <td md-cell><span ng-if="call.calleridname">{{call.calleridname}}, </span>{{call.calleridnum}}</td>\n        <td md-cell>\n          <span ng-if="call.queuecallerleaveAt">\n            {{call.connectedlinename}}, {{call.connectedlinenum}}\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n          <span ng-if="!call.queuecallerleaveAt" class="text-boxed" translate="VOICE.WAITING_FOR_AGENT">\n            Waiting for agent...\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n        </td>\n        <td md-cell>\n          <span class="text-boxed">\n            <timer ng-if="call.queuecallerjoinAt" start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            <span ng-if="call.queuecallercomplete || call.queuecallerabandon || call.queuecallerexit" translate="VOICE.CLOSING">Closing</span>\n          </span>\n        </td>\n        <td md-cell class="actions">\n          <md-menu>\n            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n              <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n            </md-button>\n\n            <md-menu-content width="2">\n              <md-menu-item>\n                <md-button ng-click="vm.hangup(call.uniqueid)" translate="VOICE.HANGUP">\n                  Hangup\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-button ng-click="vm.redirectToNumber($event, call.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n                  Number\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-menu>\n                  <md-button ng-click="$mdMenu.open()" translate="VOICE.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                  <md-menu-content>\n                    <md-menu-item ng-repeat="agent in vm.agents.rows">\n                      <md-button ng-click="vm.redirectToAgent(call.uniqueid, agent.name)">{{agent.name}}</md-button>\n                    </md-menu-item>\n                  </md-menu-content>\n                </md-menu>\n              </md-menu-item>\n            </md-menu-content>\n          </md-menu>\n        </td>\n      </tr> --\x3e\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{\'VOICE.NAME\' | translate}}</th>\n                <th md-column>{{\'VOICE.TOTAL_OFFERED\' | translate}}</th>\n                <th md-column>{{\'VOICE.ANSWERED\' | translate}}</th>\n                <th md-column>{{\'VOICE.ABANDONED\' | translate}}</th>\n                <th md-column>{{\'VOICE.UNMANAGED\' | translate}}</th>\n                <th md-column>{{\'VOICE.AVG_HOLD_TIME\' | translate}}</th>\n                <th md-column>{{\'VOICE.AVG_DURATION\' | translate}}</th>\n                <th md-column>{{\'VOICE.AVG_BILLABLE\' | translate}}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>\n                    <span>{{queue.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{(queue.total - queue.answered) || 0}} ({{(queue.total) ? ((queue.total - queue.answered) || 0) * 100/queue.total : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n                <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n                <th md-column>{{ \'VOICE.READY\' | translate }}</th>\n                <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n                <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="7">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="queue" md-select-id="id" ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>{{queue.name}}</td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.loggedInDb || 0}} ({{queue.loggedIn || 0}})</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.paused || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.available || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.waiting || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.talking || 0}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditVoiceQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n                                    Edit Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.agentAdd($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n                                    Add Agents to queue\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.AGENTS">Agents</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.TELEPHONES">Telephones</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.TRUNKS">Trunks</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUES">Queues</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n                </md-tab-label>\n            </md-tab>\n        </md-tabs>\n\n        <md-card ui-view></md-card>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n              <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n            </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n            <tr md-row>\n                <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.telephones">\n                <td md-cell colspan="4">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n                <td md-cell>{{telephone.fullname}}</td>\n                <td md-cell>{{telephone.internal}}</td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[telephone.state]">\n                    <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n                  </i>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[telephone.status]">\n                    <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n                  </i>\n                    <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n            <tr md-row>\n                <th md-column md-order-by="fullname">{{ \'VOICE.NAME\' | translate }}</th>\n                <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n                <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.trunks">\n                <td md-cell colspan="3">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n                <td md-cell>{{trunk.name}}</td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n            <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n                </td>\n                <td md-cell>\n                    <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n            <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n                    <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n            No Registry\n          </span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n    <form name="voicemailForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.FULLNAME">FullName</label>\n                <input type="text" name="fullname" ng-model="vm.voicemail.fullname" required autofocus>\n                <div ng-messages="voicemailForm.fullname.$error" ng-show="voicemailForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.voicemail.email" required>\n                <div ng-messages="voicemailForm.email.$error" ng-show="voicemailForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                <div ng-messages="voicemailForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX">MailBox</label>\n                <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" required ng-disabled="!vm.newVoicemail">\n                <div ng-messages="voicemailForm.mailbox.$error" ng-show="voicemailForm.mailbox.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n                    ADD VOICEMAIL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="voicemail-image" hide-xs>\n                    <img ng-src="assets/images/business/voicemails.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.voicemail.id}} {{vm.voicemail.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.FULLNAME">FullName</label>\n                                <input type="text" name="fullname" ng-model="vm.voicemail.fullname" required autofocus>\n                                <div ng-messages="generalForm.fullname.$error" ng-show="generalForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.voicemail.email" required>\n                                <div ng-messages="generalForm.email.$error" ng-show="generalForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n                                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAILBOX">MailBox</label>\n                                <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" required ng-disabled="true">\n                                <div ng-messages="generalForm.mailbox.$error" ng-show="generalForm.mailbox.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n                                <md-select ng-model="vm.voicemail.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEZONE">TimeZone</label>\n                                <input type="text" name="tz" ng-model="vm.voicemail.tz" required autofocus>\n                                <div ng-messages="advancedForm.tz.$error" ng-show="advancedForm.tz.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ATTACH">Attach</label>\n                                <md-select ng-model="vm.voicemail.attach">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.attach.$error" ng-show="advancedForm.attach.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ENVELOPE">Envelope</label>\n                                <md-select ng-model="vm.voicemail.envelope">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.envelope.$error" ng-show="advancedForm.envelope.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DELETE">Delete</label>\n                                <md-select ng-model="vm.voicemail.delete">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.delete.$error" ng-show="advancedForm.delete.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAILBODY">EmailBody</label>\n                                <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody">\n                                <div ng-messages="advancedForm.emailbody.$error" ng-show="advancedForm.emailbody.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n                                <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject">\n                                <div ng-messages="advancedForm.emailsubject.$error" ng-show="advancedForm.emailsubject.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n                                <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0">\n                                <div ng-messages="advancedForm.maxsecs.$error" ng-show="advancedForm.maxsecs.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n                                <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999">\n                                <div ng-messages="advancedForm.maxmsg.$error" ng-show="advancedForm.maxmsg.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.MESSAGES">MESSAGES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICEMAILS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                            <th md-column md-order-by="callerid">{{ \'VOICE.CALLER_ID\' | translate }}</th>\n                                            <th md-column md-order-by="duration">{{ \'VOICE.DURATION\' | translate }}</th>\n                                            <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                            <th md-column md-order-by="stamp">{{ \'VOICE.RECEIVED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n                                            <td md-cell>{{message.id}}</td>\n                                            <td md-cell>{{message.callerid}}</td>\n                                            <td md-cell>{{message.duration}}</td>\n                                            <td md-cell><audio controls><source ng-src="{{\'api/voice/mails/messages/\' + message.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                            <td md-cell>{{message.stamp | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-href="api/voice/mails/messages/{{message.id}}/download" target="_blank" translate="VOICE.DOWNLOAD_MESSAGE">\n                                                                Download Message\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n                                                                Delete Message\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voicemails-count">\n                    <span>{{vm.selectedVoicemails.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICEMAILS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" filename="voicemails.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICEMAILS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICEMAIL TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voicemails.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n                                <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(voicemail, $event)" translate="VOICE.EDIT_VOICEMAIL">\n                                                    Edit Voicemail\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voicemail, $event)" translate="VOICE.DELETE_VOICEMAIL">\n                                                    Delete Voicemail\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICEMAIL TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n    <form name="voiceQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newVoiceQueue">\n                <div ng-messages="voiceQueueForm.name.$error" ng-show="voiceQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.voiceQueue.strategy" required>\n                    <md-option ng-value="\'ringall\'">Ringall</md-option>\n                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                    <md-option ng-value="\'random\'">Random</md-option>\n                    <md-option ng-value="\'linear\'">Linear</md-option>\n                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                </md-select>\n                <div ng-messages="voiceQueueForm.strategy.$error" ng-show="voiceQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.voiceQueue.description">\n                <div ng-messages="voiceQueueForm.description.$error" ng-show="voiceQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n                    ADD VOICEQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue">\n    <form name="voiceQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="VOICE.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue">\n    <form name="voiceQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="VOICE.TEAMADD_VOICEQUEUE">Add Team in VOICEQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="VOICE.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="voiceQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/voiceQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.voiceQueue.id}} {{vm.voiceQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.voiceQueue.strategy" required autofocus>\n                                    <md-option ng-value="\'ringall\'">Ringall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                                    <md-option ng-value="\'random\'">Random</md-option>\n                                    <md-option ng-value="\'linear\'">Linear</md-option>\n                                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" required>\n                                <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXLENGTH">MaxLength</label>\n                                <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n                                <div ng-messages="generalForm.maxlen.$error" ng-show="generalForm.maxlen.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RETRY">Retry</label>\n                                <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n                                <div ng-messages="generalForm.retry.$error" ng-show="generalForm.retry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n                                <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n                                <div ng-messages="generalForm.wrapuptime.$error" ng-show="generalForm.wrapuptime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WEIGHT">Weight</label>\n                                <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n                                <div ng-messages="generalForm.weight.$error" ng-show="generalForm.weight.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n                                <md-select ng-model="vm.voiceQueue.joinempty" multiple>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'strict\'">strict</md-option>\n                                    <md-option ng-value="\'loose\'">loose</md-option>\n                                    <md-option ng-value="\'paused\'">paused</md-option>\n                                    <md-option ng-value="\'penalty\'">penalty</md-option>\n                                    <md-option ng-value="\'inuse\'">inuse</md-option>\n                                    <md-option ng-value="\'ringing\'">ringing</md-option>\n                                    <md-option ng-value="\'unavailable\'">unavailable</md-option>\n                                    <md-option ng-value="\'invalid\'">invalid</md-option>\n                                    <md-option ng-value="\'unknown\'">unknoww</md-option>\n                                    <md-option ng-value="\'wrapup\'">wrapup</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n                                <div ng-messages="generalForm.joinempty.$error" ng-show="generalForm.joinempty.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n                                <md-select ng-model="vm.voiceQueue.leavewhenempty" multiple>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'strict\'">strict</md-option>\n                                    <md-option ng-value="\'loose\'">loose</md-option>\n                                    <md-option ng-value="\'paused\'">paused</md-option>\n                                    <md-option ng-value="\'penalty\'">penalty</md-option>\n                                    <md-option ng-value="\'inuse\'">inuse</md-option>\n                                    <md-option ng-value="\'ringing\'">ringing</md-option>\n                                    <md-option ng-value="\'unavailable\'">unavailable</md-option>\n                                    <md-option ng-value="\'invalid\'">invalid</md-option>\n                                    <md-option ng-value="\'unknown\'">unknoww</md-option>\n                                    <md-option ng-value="\'wrapup\'">wrapup</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n                                <div ng-messages="generalForm.leavewhenempty.$error" ng-show="generalForm.leavewhenempty.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n                                <md-select ng-model="vm.voiceQueue.musiconhold">\n                                    <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n                                <div ng-messages="generalForm.musiconhold.$error" ng-show="generalForm.musiconhold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n                                <md-select ng-model="vm.voiceQueue.announce">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds">{{ announce.name }}</md-option>\n                                    <md-option ng-value="\'\'">None</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n                                <div ng-messages="generalForm.announce.$error" ng-show="generalForm.announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.voiceQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n                        </div>\n                        <form name="settingsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n                                <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.announce_frequency.$error" ng-show="settingsForm.announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n                                <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.min_announce_frequency.$error" ng-show="settingsForm.min_announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n                                <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.periodic_announce_frequency.$error" ng-show="settingsForm.periodic_announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.random_periodic_announce">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n                                <div ng-messages="settingsForm.random_periodic_announce.$error" ng-show="settingsForm.random_periodic_announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n                                <md-select ng-model="vm.voiceQueue.announce_holdtime">\n                                    <md-option ng-value="\'yes\'">Yes</md-option>\n                                    <md-option ng-value="\'no\'">No</md-option>\n                                    <md-option ng-value="\'once\'">Once</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n                                <div ng-messages="settingsForm.announce_holdtime.$error" ng-show="settingsForm.announce_holdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n                                <md-select ng-model="vm.voiceQueue.announce_position">\n                                    <md-option ng-value="\'yes\'">Yes</md-option>\n                                    <md-option ng-value="\'no\'">No</md-option>\n                                    <md-option ng-value="\'limit\'">Limit</md-option>\n                                    <md-option ng-value="\'more\'">More</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n                                <div ng-messages="settingsForm.announce_position.$error" ng-show="settingsForm.announce_position.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n                                <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit">\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n                                <div ng-messages="settingsForm.announce_position_limit.$error" ng-show="settingsForm.announce_position_limit.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n                                <md-select ng-model="vm.voiceQueue.reportholdtime">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n                                <div ng-messages="settingsForm.reportholdtime.$error" ng-show="settingsForm.reportholdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n                        </div>\n                        <form name="announcementsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.periodic_announce" autofocus>\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds">{{ periodic_announce.name }}</md-option>\n                                    <md-option ng-value="\'\'">Default</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.periodic_announce.$error" ng-show="announcementsForm.periodic_announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_reporthold">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds">{{ queue_reporthold.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_reporthold.$error" ng-show="announcementsForm.queue_reporthold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_youarenext">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds">{{ queue_youarenext.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_youarenext.$error" ng-show="announcementsForm.queue_youarenext.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_thereare">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds">{{ queue_thereare.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_thereare.$error" ng-show="announcementsForm.queue_thereare.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_callswaiting">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds">{{ queue_callswaiting.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_callswaiting.$error" ng-show="announcementsForm.queue_callswaiting.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_holdtime">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds">{{ queue_holdtime.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_holdtime.$error" ng-show="announcementsForm.queue_holdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_minutes">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds">{{ queue_minutes.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_minutes.$error" ng-show="announcementsForm.queue_minutes.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_minute">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds">{{ queue_minute.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_minute.$error" ng-show="announcementsForm.queue_minute.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_seconds">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds">{{ queue_seconds.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_seconds.$error" ng-show="announcementsForm.queue_seconds.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_thankyou">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds">{{ queue_thankyou.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_thankyou.$error" ng-show="announcementsForm.queue_thankyou.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n                                <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n                                <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n                                <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" required>\n                                <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n                                <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n                                <md-select ng-model="vm.voiceQueue.autopause">\n\n                                    <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n                                <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RINGINUSE">RingInUse</label>\n                                <md-select ng-model="vm.voiceQueue.ringinuse">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n                                <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n                                <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n                                <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n                                <md-select ng-model="vm.voiceQueue.timeoutrestart">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n                                <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n                                <md-select ng-model="vm.voiceQueue.monitor_format">\n                                    <md-option ng-value="\'\'">Inactive</md-option>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'wav49\'">wav49</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n                                <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <input type="text" name="context" ng-model="vm.voiceQueue.context">\n                                <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n                                <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setinterfacevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setqueuevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setqueueentryvar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voiceQueues-count">\n                    <span>{{vm.selectedVoiceQueues.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICEQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" filename="voiceQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICEQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICEQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voiceQueues.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n                                <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(voiceQueue, $event)" translate="VOICE.EDIT_VOICEQUEUE">\n                                                    Edit VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.teamadddialog(voiceQueue, $event)" translate="VOICE.TEAMADD_VOICEQUEUE">\n                                                    teamadd VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(voiceQueue, $event)" translate="VOICE.AGENTADD_VOICEQUEUE">\n                                                    agentadd VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voiceQueue, $event)" translate="VOICE.DELETE_VOICEQUEUE">\n                                                    Delete VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICEQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n    <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RATING">Rating</label>\n                <md-select ng-model="vm.voiceRecording.rating" autofocus>\n                    <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n                    <md-option value="1">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n                    </md-option>\n                    <md-option value="2">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n                    </md-option>\n                    <md-option value="3">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n                    </md-option>\n                    <md-option value="4">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n                    </md-option>\n                    <md-option value="5">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n                    </md-option>\n                </md-select>\n                <div ng-messages="voiceRecordingForm.rating.$error" ng-show="voiceRecordingForm.rating.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n                    ADD VOICERECORDING\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voiceRecordings-count">\n                    <span>{{vm.selectedVoiceRecordings.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICERECORDINGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" filename="voiceRecordings.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICERECORDINGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICERECORDING TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n                                <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n                                <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n                                <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n                                <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n                                <td md-cell colspan="10">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n                                <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum ">{{voiceRecording.calleridnum}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten ">{{voiceRecording.exten}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum ">{{voiceRecording.connectedlinenum}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n                                    <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span></td>\n                                <td md-cell class="audio " ng-switch="voiceRecording.format">\n                                    <audio controls ng-switch-when=".wav">\n                                  <source ng-src="{{\'api/voice/recordings/\' + voiceRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source> Your browser does not support the audio element.\n                                 </audio>\n                                    <span ng-switch-when=".gsm">\n                                  <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n                                 </span>\n                                </td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n                                                    Download VoiceRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voiceRecording, $event)" translate="VOICE.DELETE_VOICERECORDING">\n                                                    Delete VoiceRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICERECORDING TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n    <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions">\n</ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n    <div class="logo" layout="row" layout-align="start center">\n        <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n        \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n        <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n    </div>\n    <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n    <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n        <md-tab ng-if="vm.license.gray">\n            <md-tab-label>\n                <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n                <span translate="QUICKPANEL.LICENSE">LICENSE</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-list-item>\n                    <dl>\n                        <dt translate="QUICKPANEL.EXPIRATION_REASON"> Expiration reason </dt>\n\n                        <dt translate="QUICKPANEL.EXPIRATION_DATE"> Expiration date </dt>\n                        <dd>{{ vm.license.deadline }}</dd>\n\n                        <dt translate="QUICKPANEL.OLD_TOKEN"> Old Token </dt>\n                        <dd>{{ vm.license.uuid }}</dd>\n\n                        <dt translate="QUICKPANEL.NEW_TOKEN"> New Token </dt>\n                        <dd>{{ vm.license.machineUuid }}</dd>\n\n                        <dt translate="QUICKPANEL.CONTACT_XCALLY_MOTION_SUPPORT"> Contact xCALLY MOTION Support </dt>\n                        <dd>\n                            {{ \'QUICKPANEL.SEND_EMAIL_TO\' | translate }} <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.\n                        </dd>\n                    </dl>\n                </md-list-item>\n            </md-tab-body>\n        </md-tab>\n\n        <md-tab>\n            <md-tab-label>\n                <span translate="QUICKPANEL.TODAY">TODAY</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'">\n                </md-content>\n            </md-tab-body>\n        </md-tab>\n        \x3c!-- <md-tab>\n  <md-tab-label>\n  <span translate="QUICKPANEL.CHAT">CHAT</span>\n</md-tab-label>\n<md-tab-body>\n<md-content class="chat-tab scrollable" ms-scroll\nng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"\nng-controller="ChatTabController as vm">\n</md-content>\n</md-tab-body>\n</md-tab>\n<md-tab>\n<md-tab-label>\n<span translate="QUICKPANEL.ACTIVITY">ACTIVITY</span>\n</md-tab-label>\n<md-tab-body>\n<md-content class="activity-tab scrollable" ms-scroll\nng-include="\'app/quick-panel/tabs/activity/activity-tab.html\'">\n</md-content>\n</md-tab-body>\n</md-tab> --\x3e\n    </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.FRIENDS">Friends</span>\n    </md-subheader>\n\n    <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n        <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n        <div class="status {{friend.status}}"></div>\n\n        <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n        <div class="md-list-item-text">\n            <h3 class="message">{{friend.message}}</h3>\n            <p class="time">{{friend.time}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n    </md-subheader>\n\n    <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n        <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n        <div class="md-list-item-text">\n            <h3>{{server.location}}</h3>\n            <p>{{server.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n    </md-subheader>\n\n    <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n        <div class="md-list-item-text">\n            <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n            <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n        </div>\n    </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm.chatActive">\n    <md-list class="recent">\n        <md-subheader class="md-no-sticky">\n            <span translate="QUICKPANEL.RECENT">Recent</span>\n        </md-subheader>\n\n        <md-list-item class="contact md-3-line" ng-repeat="contact in vm.contacts.recent" ng-click="vm.toggleChat(contact)">\n            <img ng-src="{{contact.avatar}}" class="md-avatar" alt="{{contact.name}}" />\n\n            <div class="status  {{contact.status}}"></div>\n\n            <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n            <div class="md-list-item-text">\n                <h3>{{contact.name}}</h3>\n                <p class="last-message">{{contact.lastMessage}}</p>\n            </div>\n        </md-list-item>\n    </md-list>\n\n    <md-divider></md-divider>\n\n    <md-list class="all">\n        <md-subheader class="md-no-sticky">\n            <span translate="QUICKPANEL.START_NEW_CHAT">Start New Chat</span>\n        </md-subheader>\n\n        <md-list-item class="contact" ng-repeat="contact in vm.contacts.all" ng-click="vm.toggleChat(contact)">\n            <img ng-src="{{contact.avatar}}" class="md-avatar" alt="{{contact.name}}" />\n\n            <div class="status {{contact.status}}"></div>\n\n            <div class="md-list-item-text">\n                <h3>{{contact.name}}</h3>\n            </div>\n        </md-list-item>\n    </md-list>\n\n    <md-divider></md-divider>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm.chatActive" layout="column">\n    <md-toolbar class="md-accent">\n        <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n            <div layout="row" layout-align="start center">\n                <md-button class="md-icon-button" ng-click="vm.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n                    <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n                </md-button>\n                <h4>\n                    <span>{{vm.chat.contact.name}}</span>\n                </h4>\n            </div>\n\n            <div layout="row" layout-align="end center">\n                <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL">\n                    <md-icon md-font-icon="icon-phone"></md-icon>\n                </md-button>\n\n                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="QUICKPANEL.MORE">\n                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                </md-button>\n            </div>\n        </div>\n\n    </md-toolbar>\n    <md-content flex layout-paddings ms-scroll id="chat-dialog">\n        <div layout="row" ng-repeat="dialog in vm.chat.contact.dialog" class="md-padding message-row" ng-class="dialog.who">\n            <img ng-if="dialog.who ===\'contact\'" ng-src="{{vm.chat.contact.avatar}}" class="avatar" alt="{{vm.chat.contact.name}}" />\n            <img ng-if="dialog.who ===\'user\'" class="avatar" src="assets/images/avatars/profile.jpg">\n\n            <div class="bubble" flex>\n                <div class="message">{{dialog.message}}</div>\n                <div class="time secondary-text">{{dialog.time}}</div>\n            </div>\n        </div>\n    </md-content>\n\n    <form ng-submit="vm.reply()" layout="row" class="reply" layout-align="start center">\n        <textarea ng-keyup="$event.keyCode == 13 ? vm.reply() : null" flex ng-model="vm.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER"></textarea>\n\n        <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n            <md-icon md-font-icon="icon-send"></md-icon>\n        </md-button>\n    </form>\n</div>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n    <md-list-item class="md-display-1 md-2-line">\n        <div class="secondary-text">\n            <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n            <div layout="row" layout-align="start start">\n                <span> {{vm.date | date:\'d\'}}</span>\n                <span class="md-subhead">th</span>\n                <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n            </div>\n        </div>\n    </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n    <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n        <div class="md-list-item-text">\n            <h3>{{event.title}}</h3>\n\n            <p>{{event.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n    <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n        <div class="md-list-item-text">\n            <h3>{{note.title}}</h3>\n\n            <p>{{note.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n        <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n                   translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n    </md-list-item>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n        <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n                   translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n    </md-list-item>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n        <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n                   translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n    </md-list-item>\n</md-list> --\x3e'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n    <form name="changePasswordForm" class="md-inline-form" novalidate>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>Change Password</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block" ng-if="vm.user.role == \'agent\'">\n                <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n                <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n                <div ng-messages="changePasswordForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n                <div ng-messages="changePasswordForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/toolbar/layouts/content-with-toolbar/toolbar.html",'<div layout="row" layout-align="space-between center">\n\n    <div layout="row" layout-align="start center">\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/horizontal-navigation/toolbar.html",'<div class="top-row" layout="row" layout-align="space-between center">\n\n    <div layout="row" layout-align="start center">\n        <div class="navigation-toggle" hide-gt-sm>\n            <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n                <md-icon md-font-icon="icon-menu"></md-icon>\n            </md-button>\n        </div>\n\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <md-button class="md-icon-button navigation-fold-toggle" hide show-gt-sm aria-label="Toggle navigation fold" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION_FOLD" ng-click="vm.toggleMsNavigationFolded()">\n            <md-icon class="s18" md-font-icon="icon-backburger"></md-icon>\n        </md-button>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n\n        <div ng-if="vm.license.demo" class="blink md-padding">\n            <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n        </div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32"></md-progress-circular>\n\n        <div class="h5 padding-10" ng-if="vm.isAgent()">\n            <div>\n                <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n                <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n            </div>\n            <div ng-if="vm.user.voicePause">\n                <timer start-time="vm.user.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n                <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n            </div>\n            <div ng-if="vm.user.voicePause">\n                <span class="blink red-fg">{{vm.user.pauseType || \'dafault\' | uppercase}}</span>\n            </div>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg" ng-if="!vm.user.userpic">\n                            <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide show-gt-sm>{{vm.user.fullname}}</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n                        <md-button ng-click="vm.changePassword($event)">Change Password</md-button>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button ng-if="vm.user.role === \'agent\'" class="language-button" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n            <md-icon md-font-icon="icon-fire" class="icon"></md-icon>\n            <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n        </md-button>\n\n        <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n              <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n              <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon ng-if="!vm.license.gray" md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n            <md-icon ng-if="vm.license.gray" md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n        </md-button>\n    </div>\n</div>')}]);
\ No newline at end of file
diff --git a/public/styles/32px.png b/public/styles/32px.png
new file mode 100644 (file)
index 0000000..1532715
Binary files /dev/null and b/public/styles/32px.png differ
diff --git a/public/styles/40px.png b/public/styles/40px.png
new file mode 100644 (file)
index 0000000..1959347
Binary files /dev/null and b/public/styles/40px.png differ
diff --git a/public/styles/throbber.gif b/public/styles/throbber.gif
new file mode 100644 (file)
index 0000000..1b5b2fd
Binary files /dev/null and b/public/styles/throbber.gif differ
index fe7188e..fe8e72d 100644 (file)
@@ -1 +1 @@
-var _0x493d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x6A\x73\x63\x72\x69\x70\x74\x79","\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64","\x62\x72\x6F\x77\x73\x65\x72","\x41\x6C\x6C\x6F\x77\x65\x64\x20\x76\x61\x6C\x75\x65\x73\x3A\x20\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2C\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x2C\x20\x62\x72\x6F\x77\x73\x65\x72","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72\x5B\x4C\x69\x73\x74\x49\x64\x5D\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5B\x69\x6E\x74\x4E\x61\x6D\x65\x28\x7A\x65\x6E\x64\x65\x73\x6B\x29\x5D\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x50\x6F\x70\x75\x70\x28\x30\x29\x2C\x55\x52\x4C\x28\x31\x29\x2C\x57\x69\x6E\x41\x70\x70\x28\x32\x29\x5D\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x5B\x47\x45\x54\x2C\x50\x4F\x53\x54\x5D\x2C\x20\x62\x72\x6F\x77\x73\x65\x72\x5B\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64\x28\x30\x29\x2C\x55\x52\x4C\x28\x31\x29\x5D","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5B\x41\x63\x63\x6F\x75\x6E\x74\x49\x64\x5D\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64\x2C\x55\x52\x4C\x2C\x57\x69\x6E\x41\x70\x70\x50\x61\x74\x68\x5D\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x5B\x55\x52\x4C\x5D","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x4E\x55\x4C\x4C\x2C\x4E\x55\x4C\x4C\x2C\x57\x69\x6E\x41\x70\x70\x41\x72\x67\x75\x6D\x65\x6E\x74\x73\x5D"];_0x493d[0];var Sequelize=require(_0x493d[1]);module[_0x493d[2]]= {name:{type:Sequelize[_0x493d[3]],get:function(_0xcb37x2){return this[_0x493d[5]](_0x493d[4])}},action:{type:Sequelize[_0x493d[6]],allowNull:false,validate:{isIn:{args:[[_0x493d[7],_0x493d[8],_0x493d[9],_0x493d[10],_0x493d[11],_0x493d[12]]],msg:_0x493d[13]}},comment:_0x493d[13]},data1:{type:Sequelize.STRING(4096),comment:_0x493d[14]},data2:{type:Sequelize.STRING(4096),comment:_0x493d[15]},data3:{type:Sequelize.STRING(4096),comment:_0x493d[16]},data4:{type:Sequelize.STRING(4096)},data5:{type:Sequelize.STRING(4096)},data6:{type:Sequelize[_0x493d[6]]}}
\ No newline at end of file
+var _0xe34d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x6A\x73\x63\x72\x69\x70\x74\x79","\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64","\x62\x72\x6F\x77\x73\x65\x72","\x41\x6C\x6C\x6F\x77\x65\x64\x20\x76\x61\x6C\x75\x65\x73\x3A\x20\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2C\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x2C\x20\x62\x72\x6F\x77\x73\x65\x72","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72\x5B\x4C\x69\x73\x74\x49\x64\x5D\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5B\x69\x6E\x74\x4E\x61\x6D\x65\x28\x7A\x65\x6E\x64\x65\x73\x6B\x29\x5D\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x50\x6F\x70\x75\x70\x28\x30\x29\x2C\x55\x52\x4C\x28\x31\x29\x2C\x57\x69\x6E\x41\x70\x70\x28\x32\x29\x5D\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x5B\x47\x45\x54\x2C\x50\x4F\x53\x54\x5D\x2C\x20\x62\x72\x6F\x77\x73\x65\x72\x5B\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64\x28\x30\x29\x2C\x55\x52\x4C\x28\x31\x29\x5D","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5B\x41\x63\x63\x6F\x75\x6E\x74\x49\x64\x5D\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64\x2C\x55\x52\x4C\x2C\x57\x69\x6E\x41\x70\x70\x50\x61\x74\x68\x5D\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x5B\x55\x52\x4C\x5D","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x4E\x55\x4C\x4C\x2C\x4E\x55\x4C\x4C\x2C\x57\x69\x6E\x41\x70\x70\x41\x72\x67\x75\x6D\x65\x6E\x74\x73\x5D"];_0xe34d[0];var Sequelize=require(_0xe34d[1]);module[_0xe34d[2]]= {name:{type:Sequelize[_0xe34d[3]],get:function(_0xcf1bx2){return this[_0xe34d[5]](_0xe34d[4])}},action:{type:Sequelize[_0xe34d[6]],allowNull:false,validate:{isIn:{args:[[_0xe34d[7],_0xe34d[8],_0xe34d[9],_0xe34d[10],_0xe34d[11],_0xe34d[12]]],msg:_0xe34d[13]}},comment:_0xe34d[13]},data1:{type:Sequelize.STRING(4096),comment:_0xe34d[14]},data2:{type:Sequelize.STRING(4096),comment:_0xe34d[15]},data3:{type:Sequelize.STRING(4096),comment:_0xe34d[16]},data4:{type:Sequelize.STRING(4096)},data5:{type:Sequelize.STRING(4096)},data6:{type:Sequelize[_0xe34d[6]]}}
\ No newline at end of file
index d4c5d15..6ffebdb 100644 (file)
@@ -1 +1 @@
-var _0x8d63=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x41\x63\x74\x69\x6F\x6E"];_0x8d63[0];var jsonpatch=require(_0x8d63[1]);var rp=require(_0x8d63[2]);var moment=require(_0x8d63[3]);var BPromise=require(_0x8d63[4]);var util=require(_0x8d63[5]);var path=require(_0x8d63[6]);var sox=require(_0x8d63[7]);var ejs=require(_0x8d63[8]);var fs=require(_0x8d63[9]);var _=require(_0x8d63[10]);var squel=require(_0x8d63[11]);var crypto=require(_0x8d63[12]);var jsforce=require(_0x8d63[13]);var toCsv=require(_0x8d63[14]);var qs=require(_0x8d63[15]);var logger=require(_0x8d63[17])(_0x8d63[16]);var utils=require(_0x8d63[18]);var config=require(_0x8d63[19]);var db=require(_0x8d63[21])[_0x8d63[20]];function respondWithStatusCode(_0x4dbbx15,_0x4dbbx16,_0x4dbbx17){_0x4dbbx16= _0x4dbbx16|| 204;return function(_0x4dbbx18){if(_0x4dbbx18){logger[_0x8d63[24]](_0x8d63[22],_0x4dbbx17,_0x4dbbx16,_0x8d63[23]);logger[_0x8d63[26]](_0x8d63[25],_0x4dbbx17,_0x4dbbx16,_0x8d63[23]);return _0x4dbbx15[_0x8d63[27]](_0x4dbbx16)};return _0x4dbbx15[_0x8d63[29]](304)[_0x8d63[28]]()}}function respondWithResult(_0x4dbbx15,_0x4dbbx16,_0x4dbbx17){_0x4dbbx16= _0x4dbbx16|| 200;return function(_0x4dbbx18){if(_0x4dbbx18){logger[_0x8d63[24]](_0x8d63[22],_0x4dbbx17,_0x4dbbx16,_0x8d63[30]);logger[_0x8d63[26]](_0x8d63[25],_0x4dbbx17,_0x4dbbx16,_0x8d63[30],JSON[_0x8d63[31]](_0x4dbbx18));return _0x4dbbx15[_0x8d63[29]](_0x4dbbx16)[_0x8d63[32]](_0x4dbbx18)};return _0x4dbbx15[_0x8d63[29]](304)[_0x8d63[28]]()}}function respondWithFilteredResult(_0x4dbbx15,_0x4dbbx1b,_0x4dbbx17){return function(_0x4dbbx18){if(_0x4dbbx18){var _0x4dbbx1c=_0x4dbbx18[_0x8d63[33]],_0x4dbbx1d=_0x4dbbx1b[_0x8d63[34]],_0x4dbbx1e=_0x4dbbx1b[_0x8d63[34]]+ _0x4dbbx1b[_0x8d63[35]],_0x4dbbx16;if(_0x4dbbx1e>= _0x4dbbx1c){_0x4dbbx1e= _0x4dbbx1c;_0x4dbbx16= 200}else {_0x4dbbx16= 206};_0x4dbbx15[_0x8d63[29]](_0x4dbbx16);logger[_0x8d63[24]](_0x8d63[22],_0x4dbbx17,_0x4dbbx16,_0x8d63[36]);logger[_0x8d63[26]](_0x8d63[25],_0x4dbbx17,_0x4dbbx16,_0x8d63[30],JSON[_0x8d63[31]](_0x4dbbx18));return _0x4dbbx15[_0x8d63[40]](_0x8d63[37],_0x4dbbx1d+ _0x8d63[38]+ _0x4dbbx1e+ _0x8d63[39]+ _0x4dbbx1c)[_0x8d63[32]](_0x4dbbx18)};return null}}function patchUpdates(_0x4dbbx20){return function(_0x4dbbx18){try{jsonpatch[_0x8d63[41]](_0x4dbbx18,_0x4dbbx20,true)}catch(err){return BPromise[_0x8d63[42]](err)};return _0x4dbbx18[_0x8d63[43]]()}}function saveUpdates(_0x4dbbx22,_0x4dbbx16,_0x4dbbx17){return function(_0x4dbbx18){if(_0x4dbbx18){return _0x4dbbx18[_0x8d63[46]](_0x4dbbx22)[_0x8d63[45]](function(_0x4dbbx23){logger[_0x8d63[24]](_0x8d63[22],_0x4dbbx17,_0x4dbbx16,_0x8d63[44]);logger[_0x8d63[26]](_0x8d63[25],_0x4dbbx17,_0x4dbbx16,_0x8d63[44],JSON[_0x8d63[31]](_0x4dbbx18));return _0x4dbbx23})};return null}}function removeEntity(_0x4dbbx15,_0x4dbbx16,_0x4dbbx17){return function(_0x4dbbx18){if(_0x4dbbx18){return _0x4dbbx18[_0x8d63[48]]()[_0x8d63[45]](function(){logger[_0x8d63[24]](_0x8d63[22],_0x4dbbx17,_0x4dbbx16,_0x8d63[47]);logger[_0x8d63[26]](_0x8d63[25],_0x4dbbx17,_0x4dbbx16,_0x8d63[47],JSON[_0x8d63[31]](_0x4dbbx18));_0x4dbbx15[_0x8d63[29]](204)[_0x8d63[28]]()})}}}function handleEntityNotFound(_0x4dbbx15,_0x4dbbx16,_0x4dbbx17){return function(_0x4dbbx18){if(!_0x4dbbx18){logger[_0x8d63[50]](_0x8d63[22],_0x4dbbx17,404,_0x8d63[49]);_0x4dbbx15[_0x8d63[29]](404)[_0x8d63[28]]();return null};return _0x4dbbx18}}function handleError(_0x4dbbx15,_0x4dbbx16,_0x4dbbx17){_0x4dbbx16= _0x4dbbx16|| 500;return function(_0x4dbbx27){logger[_0x8d63[50]](_0x8d63[22],_0x4dbbx17,_0x4dbbx16,JSON[_0x8d63[31]](_0x4dbbx27));delete _0x4dbbx27[_0x8d63[51]];_0x4dbbx15[_0x8d63[29]](_0x4dbbx16)[_0x8d63[52]](_0x4dbbx27)}}exports[_0x8d63[46]]= function(_0x4dbbx28,_0x4dbbx15){if(_0x4dbbx28[_0x8d63[54]][_0x8d63[53]]){delete _0x4dbbx28[_0x8d63[54]][_0x8d63[53]]};return db[_0x8d63[58]][_0x8d63[57]]({where:{id:_0x4dbbx28[_0x8d63[56]][_0x8d63[53]]}})[_0x8d63[45]](handleEntityNotFound(_0x4dbbx15,null,_0x8d63[46]))[_0x8d63[45]](saveUpdates(_0x4dbbx28[_0x8d63[54]],null,_0x8d63[46]))[_0x8d63[45]](respondWithResult(_0x4dbbx15,null,_0x8d63[46]))[_0x8d63[55]](handleError(_0x4dbbx15,null,_0x8d63[46]))};exports[_0x8d63[48]]= function(_0x4dbbx28,_0x4dbbx15){return db[_0x8d63[58]][_0x8d63[57]]({where:{id:_0x4dbbx28[_0x8d63[56]][_0x8d63[53]]}})[_0x8d63[45]](handleEntityNotFound(_0x4dbbx15,null,_0x8d63[48]))[_0x8d63[45]](removeEntity(_0x4dbbx15,null,_0x8d63[48]))[_0x8d63[55]](handleError(_0x4dbbx15,null,_0x8d63[48]))}
\ No newline at end of file
+var _0x8034=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x41\x63\x74\x69\x6F\x6E"];_0x8034[0];var jsonpatch=require(_0x8034[1]);var rp=require(_0x8034[2]);var moment=require(_0x8034[3]);var BPromise=require(_0x8034[4]);var util=require(_0x8034[5]);var path=require(_0x8034[6]);var sox=require(_0x8034[7]);var ejs=require(_0x8034[8]);var fs=require(_0x8034[9]);var _=require(_0x8034[10]);var squel=require(_0x8034[11]);var crypto=require(_0x8034[12]);var jsforce=require(_0x8034[13]);var toCsv=require(_0x8034[14]);var qs=require(_0x8034[15]);var logger=require(_0x8034[17])(_0x8034[16]);var utils=require(_0x8034[18]);var config=require(_0x8034[19]);var db=require(_0x8034[21])[_0x8034[20]];function respondWithStatusCode(_0x6783x15,_0x6783x16,_0x6783x17){_0x6783x16= _0x6783x16|| 204;return function(_0x6783x18){if(_0x6783x18){logger[_0x8034[24]](_0x8034[22],_0x6783x17,_0x6783x16,_0x8034[23]);logger[_0x8034[26]](_0x8034[25],_0x6783x17,_0x6783x16,_0x8034[23]);return _0x6783x15[_0x8034[27]](_0x6783x16)};return _0x6783x15[_0x8034[29]](304)[_0x8034[28]]()}}function respondWithResult(_0x6783x15,_0x6783x16,_0x6783x17){_0x6783x16= _0x6783x16|| 200;return function(_0x6783x18){if(_0x6783x18){logger[_0x8034[24]](_0x8034[22],_0x6783x17,_0x6783x16,_0x8034[30]);logger[_0x8034[26]](_0x8034[25],_0x6783x17,_0x6783x16,_0x8034[30],JSON[_0x8034[31]](_0x6783x18));return _0x6783x15[_0x8034[29]](_0x6783x16)[_0x8034[32]](_0x6783x18)};return _0x6783x15[_0x8034[29]](304)[_0x8034[28]]()}}function respondWithFilteredResult(_0x6783x15,_0x6783x1b,_0x6783x17){return function(_0x6783x18){if(_0x6783x18){var _0x6783x1c=_0x6783x18[_0x8034[33]],_0x6783x1d=_0x6783x1b[_0x8034[34]],_0x6783x1e=_0x6783x1b[_0x8034[34]]+ _0x6783x1b[_0x8034[35]],_0x6783x16;if(_0x6783x1e>= _0x6783x1c){_0x6783x1e= _0x6783x1c;_0x6783x16= 200}else {_0x6783x16= 206};_0x6783x15[_0x8034[29]](_0x6783x16);logger[_0x8034[24]](_0x8034[22],_0x6783x17,_0x6783x16,_0x8034[36]);logger[_0x8034[26]](_0x8034[25],_0x6783x17,_0x6783x16,_0x8034[30],JSON[_0x8034[31]](_0x6783x18));return _0x6783x15[_0x8034[40]](_0x8034[37],_0x6783x1d+ _0x8034[38]+ _0x6783x1e+ _0x8034[39]+ _0x6783x1c)[_0x8034[32]](_0x6783x18)};return null}}function patchUpdates(_0x6783x20){return function(_0x6783x18){try{jsonpatch[_0x8034[41]](_0x6783x18,_0x6783x20,true)}catch(err){return BPromise[_0x8034[42]](err)};return _0x6783x18[_0x8034[43]]()}}function saveUpdates(_0x6783x22,_0x6783x16,_0x6783x17){return function(_0x6783x18){if(_0x6783x18){return _0x6783x18[_0x8034[46]](_0x6783x22)[_0x8034[45]](function(_0x6783x23){logger[_0x8034[24]](_0x8034[22],_0x6783x17,_0x6783x16,_0x8034[44]);logger[_0x8034[26]](_0x8034[25],_0x6783x17,_0x6783x16,_0x8034[44],JSON[_0x8034[31]](_0x6783x18));return _0x6783x23})};return null}}function removeEntity(_0x6783x15,_0x6783x16,_0x6783x17){return function(_0x6783x18){if(_0x6783x18){return _0x6783x18[_0x8034[48]]()[_0x8034[45]](function(){logger[_0x8034[24]](_0x8034[22],_0x6783x17,_0x6783x16,_0x8034[47]);logger[_0x8034[26]](_0x8034[25],_0x6783x17,_0x6783x16,_0x8034[47],JSON[_0x8034[31]](_0x6783x18));_0x6783x15[_0x8034[29]](204)[_0x8034[28]]()})}}}function handleEntityNotFound(_0x6783x15,_0x6783x16,_0x6783x17){return function(_0x6783x18){if(!_0x6783x18){logger[_0x8034[50]](_0x8034[22],_0x6783x17,404,_0x8034[49]);_0x6783x15[_0x8034[29]](404)[_0x8034[28]]();return null};return _0x6783x18}}function handleError(_0x6783x15,_0x6783x16,_0x6783x17){_0x6783x16= _0x6783x16|| 500;return function(_0x6783x27){logger[_0x8034[50]](_0x8034[22],_0x6783x17,_0x6783x16,JSON[_0x8034[31]](_0x6783x27));delete _0x6783x27[_0x8034[51]];_0x6783x15[_0x8034[29]](_0x6783x16)[_0x8034[52]](_0x6783x27)}}exports[_0x8034[46]]= function(_0x6783x28,_0x6783x15){if(_0x6783x28[_0x8034[54]][_0x8034[53]]){delete _0x6783x28[_0x8034[54]][_0x8034[53]]};return db[_0x8034[58]][_0x8034[57]]({where:{id:_0x6783x28[_0x8034[56]][_0x8034[53]]}})[_0x8034[45]](handleEntityNotFound(_0x6783x15,null,_0x8034[46]))[_0x8034[45]](saveUpdates(_0x6783x28[_0x8034[54]],null,_0x8034[46]))[_0x8034[45]](respondWithResult(_0x6783x15,null,_0x8034[46]))[_0x8034[55]](handleError(_0x6783x15,null,_0x8034[46]))};exports[_0x8034[48]]= function(_0x6783x28,_0x6783x15){return db[_0x8034[58]][_0x8034[57]]({where:{id:_0x6783x28[_0x8034[56]][_0x8034[53]]}})[_0x8034[45]](handleEntityNotFound(_0x6783x15,null,_0x8034[48]))[_0x8034[45]](removeEntity(_0x6783x15,null,_0x8034[48]))[_0x8034[55]](handleError(_0x6783x15,null,_0x8034[48]))}
\ No newline at end of file
index c147f1f..3c5232f 100644 (file)
@@ -1 +1 @@
-var _0xcbcf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x63\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xcbcf[0];var _=require(_0xcbcf[1]);var util=require(_0xcbcf[2]);var logger=require(_0xcbcf[4])(_0xcbcf[3]);var attributes=require(_0xcbcf[5]);module[_0xcbcf[6]]= function(_0x6052x5,_0x6052x6){return _0x6052x5[_0xcbcf[9]](_0xcbcf[7],attributes,{tableName:_0xcbcf[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd4ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x63\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xd4ae[0];var _=require(_0xd4ae[1]);var util=require(_0xd4ae[2]);var logger=require(_0xd4ae[4])(_0xd4ae[3]);var attributes=require(_0xd4ae[5]);module[_0xd4ae[6]]= function(_0x17bfx5,_0x17bfx6){return _0x17bfx5[_0xd4ae[9]](_0xd4ae[7],attributes,{tableName:_0xd4ae[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 90d70ca..1ba7ce8 100644 (file)
@@ -1 +1 @@
-var _0xc43e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc43e[0];var _=require(_0xc43e[1]);var util=require(_0xc43e[2]);var moment=require(_0xc43e[3]);var BPromise=require(_0xc43e[4]);var db=require(_0xc43e[6])[_0xc43e[5]];var utils=require(_0xc43e[7]);var logger=require(_0xc43e[9])(_0xc43e[8]);var jayson=require(_0xc43e[10]);var client=jayson[_0xc43e[12]][_0xc43e[11]]({port:9002});function respondWithRpcPromise(_0x5d11xb,_0x5d11xc,_0x5d11xd){return  new BPromise(function(_0x5d11xe,_0x5d11xf){return client[_0xc43e[25]](_0x5d11xb,_0x5d11xd)[_0xc43e[24]](function(_0x5d11x11){logger[_0xc43e[17]](_0xc43e[13],_0x5d11xc,_0xc43e[16]);logger[_0xc43e[20]](_0xc43e[18],_0x5d11xc,_0xc43e[16],JSON[_0xc43e[19]](_0x5d11x11));if(_0x5d11x11[_0xc43e[14]]){if(_0x5d11x11[_0xc43e[14]][_0xc43e[21]]=== 500){logger[_0xc43e[14]](_0xc43e[13],_0x5d11xc,_0x5d11x11[_0xc43e[14]][_0xc43e[22]]);return _0x5d11xf(_0x5d11x11[_0xc43e[14]][_0xc43e[22]])};logger[_0xc43e[14]](_0xc43e[13],_0x5d11xc,_0x5d11x11[_0xc43e[14]][_0xc43e[22]]);return _0x5d11xe(_0x5d11x11[_0xc43e[14]][_0xc43e[22]])}else {logger[_0xc43e[17]](_0xc43e[13],_0x5d11xc,_0xc43e[16]);_0x5d11xe(_0x5d11x11[_0xc43e[23]][_0xc43e[22]])}})[_0xc43e[15]](function(_0x5d11x10){logger[_0xc43e[14]](_0xc43e[13],_0x5d11xc,_0x5d11x10);_0x5d11xf(_0x5d11x10)})})}
\ No newline at end of file
+var _0xe190=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe190[0];var _=require(_0xe190[1]);var util=require(_0xe190[2]);var moment=require(_0xe190[3]);var BPromise=require(_0xe190[4]);var db=require(_0xe190[6])[_0xe190[5]];var utils=require(_0xe190[7]);var logger=require(_0xe190[9])(_0xe190[8]);var jayson=require(_0xe190[10]);var client=jayson[_0xe190[12]][_0xe190[11]]({port:9002});function respondWithRpcPromise(_0x2da0xb,_0x2da0xc,_0x2da0xd){return  new BPromise(function(_0x2da0xe,_0x2da0xf){return client[_0xe190[25]](_0x2da0xb,_0x2da0xd)[_0xe190[24]](function(_0x2da0x11){logger[_0xe190[17]](_0xe190[13],_0x2da0xc,_0xe190[16]);logger[_0xe190[20]](_0xe190[18],_0x2da0xc,_0xe190[16],JSON[_0xe190[19]](_0x2da0x11));if(_0x2da0x11[_0xe190[14]]){if(_0x2da0x11[_0xe190[14]][_0xe190[21]]=== 500){logger[_0xe190[14]](_0xe190[13],_0x2da0xc,_0x2da0x11[_0xe190[14]][_0xe190[22]]);return _0x2da0xf(_0x2da0x11[_0xe190[14]][_0xe190[22]])};logger[_0xe190[14]](_0xe190[13],_0x2da0xc,_0x2da0x11[_0xe190[14]][_0xe190[22]]);return _0x2da0xe(_0x2da0x11[_0xe190[14]][_0xe190[22]])}else {logger[_0xe190[17]](_0xe190[13],_0x2da0xc,_0xe190[16]);_0x2da0xe(_0x2da0x11[_0xe190[23]][_0xe190[22]])}})[_0xe190[15]](function(_0x2da0x10){logger[_0xe190[14]](_0xe190[13],_0x2da0xc,_0x2da0x10);_0x2da0xf(_0x2da0x10)})})}
\ No newline at end of file
index 390fb6e..4046743 100644 (file)
@@ -1 +1 @@
-var _0x7e18=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7e18[0];var multer=require(_0x7e18[1]);var util=require(_0x7e18[2]);var path=require(_0x7e18[3]);var express=require(_0x7e18[4]);var router=express.Router();var auth=require(_0x7e18[5]);var config=require(_0x7e18[6]);var controller=require(_0x7e18[7]);router[_0x7e18[11]](_0x7e18[8],auth[_0x7e18[9]](),controller[_0x7e18[10]]);router[_0x7e18[13]](_0x7e18[8],auth[_0x7e18[9]](),controller[_0x7e18[12]]);module[_0x7e18[14]]= router
\ No newline at end of file
+var _0xaa31=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xaa31[0];var multer=require(_0xaa31[1]);var util=require(_0xaa31[2]);var path=require(_0xaa31[3]);var express=require(_0xaa31[4]);var router=express.Router();var auth=require(_0xaa31[5]);var config=require(_0xaa31[6]);var controller=require(_0xaa31[7]);router[_0xaa31[11]](_0xaa31[8],auth[_0xaa31[9]](),controller[_0xaa31[10]]);router[_0xaa31[13]](_0xaa31[8],auth[_0xaa31[9]](),controller[_0xaa31[12]]);module[_0xaa31[14]]= router
\ No newline at end of file
index 2b76dc1..2987c3c 100644 (file)
@@ -1 +1 @@
-var _0xbbc3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xbbc3[0];var Sequelize=require(_0xbbc3[1]);module[_0xbbc3[2]]= {name:{type:Sequelize[_0xbbc3[3]],allowNull:false},description:{type:Sequelize[_0xbbc3[3]]},parent:{type:Sequelize[_0xbbc3[3]]},table:{type:Sequelize[_0xbbc3[3]]},conditions:{type:Sequelize[_0xbbc3[4]]}}
\ No newline at end of file
+var _0x80a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x80a0[0];var Sequelize=require(_0x80a0[1]);module[_0x80a0[2]]= {name:{type:Sequelize[_0x80a0[3]],allowNull:false},description:{type:Sequelize[_0x80a0[3]]},parent:{type:Sequelize[_0x80a0[3]]},table:{type:Sequelize[_0x80a0[3]]},conditions:{type:Sequelize[_0x80a0[4]]}}
\ No newline at end of file
index 3b5b34e..026de3b 100644 (file)
@@ -1 +1 @@
-var _0xf1fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x70\x72\x65\x76\x69\x65\x77","\x53\x55\x4D\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x4D\x41\x58\x28\x25\x73\x29","\x4D\x49\x4E\x28\x25\x73\x29","\x41\x56\x47\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x25\x73\x29","\x44\x41\x54\x45\x28\x25\x73\x29","\x48\x4F\x55\x52\x28\x25\x73\x29","\x52\x4F\x55\x4E\x44\x28\x25\x73\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x25\x73\x29","\x49\x53\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x45\x4D\x50\x54\x59","\x49\x53\x20\x4E\x4F\x54\x20\x45\x4D\x50\x54\x59","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x75\x6C\x65\x73","","\x28","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x76\x61\x6C\x75\x65","\x29","\x6B\x65\x79\x42\x79","\x73\x65\x6C\x65\x63\x74","\x74\x61\x62\x6C\x65","\x66\x72\x6F\x6D","\x4D\x65\x74\x72\x69\x63\x49\x64","\x6D\x65\x74\x72\x69\x63","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x44\x45\x53\x43","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x25\x73","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x6D\x61\x74","\x61\x6C\x69\x61\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x63\x6C\x6F\x6E\x65","\x4C\x69\x6D\x69\x74\x65\x64\x20\x51\x75\x65\x72\x79\x3A","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x50\x6C\x65\x61\x73\x65\x20\x69\x6E\x73\x65\x72\x74\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x66\x69\x65\x6C\x64\x21","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x75\x6E","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x42\x45\x54\x57\x45\x45\x4E\x20\x3F\x20\x41\x4E\x44\x20\x3F","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x52\x75\x6E\x20\x51\x75\x65\x72\x79\x3A","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x70\x6F\x72\x74\x2F","\x6F\x75\x74\x70\x75\x74","\x6A\x6F\x69\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x4E\x6F\x20\x44\x61\x74\x61\x21","\x25\x73\x2D\x25\x73\x2E\x25\x73","\x67\x65\x6E\x65\x72\x61\x74\x65","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x63\x73\x76","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74"];_0xf1fe[0];var jsonpatch=require(_0xf1fe[1]);var rp=require(_0xf1fe[2]);var moment=require(_0xf1fe[3]);var BPromise=require(_0xf1fe[4]);var util=require(_0xf1fe[5]);var path=require(_0xf1fe[6]);var sox=require(_0xf1fe[7]);var ejs=require(_0xf1fe[8]);var fs=require(_0xf1fe[9]);var _=require(_0xf1fe[10]);var squel=require(_0xf1fe[11]);var crypto=require(_0xf1fe[12]);var jsforce=require(_0xf1fe[13]);var toCsv=require(_0xf1fe[14]);var qs=require(_0xf1fe[15]);var logger=require(_0xf1fe[17])(_0xf1fe[16]);var utils=require(_0xf1fe[18]);var config=require(_0xf1fe[19]);var db=require(_0xf1fe[21])[_0xf1fe[20]];function respondWithStatusCode(_0xb3e1x15,_0xb3e1x16,_0xb3e1x17){_0xb3e1x16= _0xb3e1x16|| 204;return function(_0xb3e1x18){if(_0xb3e1x18){logger[_0xf1fe[24]](_0xf1fe[22],_0xb3e1x17,_0xb3e1x16,_0xf1fe[23]);logger[_0xf1fe[26]](_0xf1fe[25],_0xb3e1x17,_0xb3e1x16,_0xf1fe[23]);return _0xb3e1x15[_0xf1fe[27]](_0xb3e1x16)};return _0xb3e1x15[_0xf1fe[29]](304)[_0xf1fe[28]]()}}function respondWithResult(_0xb3e1x15,_0xb3e1x16,_0xb3e1x17){_0xb3e1x16= _0xb3e1x16|| 200;return function(_0xb3e1x18){if(_0xb3e1x18){logger[_0xf1fe[24]](_0xf1fe[22],_0xb3e1x17,_0xb3e1x16,_0xf1fe[30]);logger[_0xf1fe[26]](_0xf1fe[25],_0xb3e1x17,_0xb3e1x16,_0xf1fe[30],JSON[_0xf1fe[31]](_0xb3e1x18));return _0xb3e1x15[_0xf1fe[29]](_0xb3e1x16)[_0xf1fe[32]](_0xb3e1x18)};return _0xb3e1x15[_0xf1fe[29]](304)[_0xf1fe[28]]()}}function respondWithFilteredResult(_0xb3e1x15,_0xb3e1x1b,_0xb3e1x17){return function(_0xb3e1x18){if(_0xb3e1x18){var _0xb3e1x1c=_0xb3e1x18[_0xf1fe[33]],_0xb3e1x1d=_0xb3e1x1b[_0xf1fe[34]],_0xb3e1x1e=_0xb3e1x1b[_0xf1fe[34]]+ _0xb3e1x1b[_0xf1fe[35]],_0xb3e1x16;if(_0xb3e1x1e>= _0xb3e1x1c){_0xb3e1x1e= _0xb3e1x1c;_0xb3e1x16= 200}else {_0xb3e1x16= 206};_0xb3e1x15[_0xf1fe[29]](_0xb3e1x16);logger[_0xf1fe[24]](_0xf1fe[22],_0xb3e1x17,_0xb3e1x16,_0xf1fe[36]);logger[_0xf1fe[26]](_0xf1fe[25],_0xb3e1x17,_0xb3e1x16,_0xf1fe[30],JSON[_0xf1fe[31]](_0xb3e1x18));return _0xb3e1x15[_0xf1fe[40]](_0xf1fe[37],_0xb3e1x1d+ _0xf1fe[38]+ _0xb3e1x1e+ _0xf1fe[39]+ _0xb3e1x1c)[_0xf1fe[32]](_0xb3e1x18)};return null}}function patchUpdates(_0xb3e1x20){return function(_0xb3e1x18){try{jsonpatch[_0xf1fe[41]](_0xb3e1x18,_0xb3e1x20,true)}catch(err){return BPromise[_0xf1fe[42]](err)};return _0xb3e1x18[_0xf1fe[43]]()}}function saveUpdates(_0xb3e1x22,_0xb3e1x16,_0xb3e1x17){return function(_0xb3e1x18){if(_0xb3e1x18){return _0xb3e1x18[_0xf1fe[46]](_0xb3e1x22)[_0xf1fe[45]](function(_0xb3e1x23){logger[_0xf1fe[24]](_0xf1fe[22],_0xb3e1x17,_0xb3e1x16,_0xf1fe[44]);logger[_0xf1fe[26]](_0xf1fe[25],_0xb3e1x17,_0xb3e1x16,_0xf1fe[44],JSON[_0xf1fe[31]](_0xb3e1x18));return _0xb3e1x23})};return null}}function removeEntity(_0xb3e1x15,_0xb3e1x16,_0xb3e1x17){return function(_0xb3e1x18){if(_0xb3e1x18){return _0xb3e1x18[_0xf1fe[48]]()[_0xf1fe[45]](function(){logger[_0xf1fe[24]](_0xf1fe[22],_0xb3e1x17,_0xb3e1x16,_0xf1fe[47]);logger[_0xf1fe[26]](_0xf1fe[25],_0xb3e1x17,_0xb3e1x16,_0xf1fe[47],JSON[_0xf1fe[31]](_0xb3e1x18));_0xb3e1x15[_0xf1fe[29]](204)[_0xf1fe[28]]()})}}}function handleEntityNotFound(_0xb3e1x15,_0xb3e1x16,_0xb3e1x17){return function(_0xb3e1x18){if(!_0xb3e1x18){logger[_0xf1fe[50]](_0xf1fe[22],_0xb3e1x17,404,_0xf1fe[49]);_0xb3e1x15[_0xf1fe[29]](404)[_0xf1fe[28]]();return null};return _0xb3e1x18}}function handleError(_0xb3e1x15,_0xb3e1x16,_0xb3e1x17){_0xb3e1x16= _0xb3e1x16|| 500;return function(_0xb3e1x27){logger[_0xf1fe[50]](_0xf1fe[22],_0xb3e1x17,_0xb3e1x16,JSON[_0xf1fe[31]](_0xb3e1x27));delete _0xb3e1x27[_0xf1fe[51]];_0xb3e1x15[_0xf1fe[29]](_0xb3e1x16)[_0xf1fe[52]](_0xb3e1x27)}}exports[_0xf1fe[53]]= function(_0xb3e1x28,_0xb3e1x15){var _0xb3e1x1b={},_0xb3e1x29={};_0xb3e1x29[_0xf1fe[54]]= _[_0xf1fe[57]](db[_0xf1fe[56]][_0xf1fe[55]]);_0xb3e1x29[_0xf1fe[58]]= _[_0xf1fe[57]](_0xb3e1x28[_0xf1fe[58]]);_0xb3e1x29[_0xf1fe[59]]= _[_0xf1fe[60]](_0xb3e1x29[_0xf1fe[54]],_0xb3e1x29[_0xf1fe[58]]);_0xb3e1x1b[_0xf1fe[61]]= _[_0xf1fe[60]](_0xb3e1x29[_0xf1fe[54]],qs[_0xf1fe[62]](_0xb3e1x28[_0xf1fe[58]][_0xf1fe[62]]));_0xb3e1x1b[_0xf1fe[61]]= (_0xb3e1x1b[_0xf1fe[61]][_0xf1fe[63]])?_0xb3e1x1b[_0xf1fe[61]]:_0xb3e1x29[_0xf1fe[54]];if(!_0xb3e1x28[_0xf1fe[58]][_0xf1fe[65]](_0xf1fe[64])){_0xb3e1x1b[_0xf1fe[35]]= qs[_0xf1fe[35]](_0xb3e1x28[_0xf1fe[58]][_0xf1fe[35]]);_0xb3e1x1b[_0xf1fe[34]]= qs[_0xf1fe[34]](_0xb3e1x28[_0xf1fe[58]][_0xf1fe[34]])};_0xb3e1x1b[_0xf1fe[66]]= qs[_0xf1fe[67]](_0xb3e1x28[_0xf1fe[58]][_0xf1fe[67]]);_0xb3e1x1b[_0xf1fe[68]]= qs[_0xf1fe[59]](_[_0xf1fe[69]](_0xb3e1x28[_0xf1fe[58]],_0xb3e1x29[_0xf1fe[59]]));if(_0xb3e1x28[_0xf1fe[58]][_0xf1fe[70]]){_0xb3e1x1b[_0xf1fe[68]]= _[_0xf1fe[73]](_0xb3e1x1b[_0xf1fe[68]],{$or:_[_0xf1fe[72]](_0xb3e1x1b[_0xf1fe[61]],function(_0xb3e1x2a){var _0xb3e1x2b={};_0xb3e1x2b[_0xb3e1x2a]= {$like:_0xf1fe[71]+ _0xb3e1x28[_0xf1fe[58]][_0xf1fe[70]]+ _0xf1fe[71]};return _0xb3e1x2b})})};_0xb3e1x1b= _[_0xf1fe[73]]({},_0xb3e1x1b,_0xb3e1x28[_0xf1fe[74]]);return db[_0xf1fe[56]][_0xf1fe[76]](_0xb3e1x1b)[_0xf1fe[45]](respondWithFilteredResult(_0xb3e1x15,_0xb3e1x1b,_0xf1fe[53]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[53]))};exports[_0xf1fe[77]]= function(_0xb3e1x28,_0xb3e1x15){var _0xb3e1x1b={raw:true,where:{id:_0xb3e1x28[_0xf1fe[79]][_0xf1fe[78]]}},_0xb3e1x29={};_0xb3e1x29[_0xf1fe[54]]= _[_0xf1fe[57]](db[_0xf1fe[56]][_0xf1fe[55]]);_0xb3e1x29[_0xf1fe[58]]= _[_0xf1fe[57]](_0xb3e1x28[_0xf1fe[58]]);_0xb3e1x29[_0xf1fe[59]]= _[_0xf1fe[60]](_0xb3e1x29[_0xf1fe[54]],_0xb3e1x29[_0xf1fe[58]]);_0xb3e1x1b[_0xf1fe[61]]= _[_0xf1fe[60]](_0xb3e1x29[_0xf1fe[54]],qs[_0xf1fe[62]](_0xb3e1x28[_0xf1fe[58]][_0xf1fe[62]]));_0xb3e1x1b[_0xf1fe[61]]= (_0xb3e1x1b[_0xf1fe[61]][_0xf1fe[63]])?_0xb3e1x1b[_0xf1fe[61]]:_0xb3e1x29[_0xf1fe[54]];_0xb3e1x1b= _[_0xf1fe[73]]({},_0xb3e1x1b,_0xb3e1x28[_0xf1fe[74]]);return db[_0xf1fe[56]][_0xf1fe[80]](_0xb3e1x1b)[_0xf1fe[45]](handleEntityNotFound(_0xb3e1x15,null,_0xf1fe[77]))[_0xf1fe[45]](respondWithResult(_0xb3e1x15,null,_0xf1fe[77]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[77]))};exports[_0xf1fe[81]]= function(_0xb3e1x28,_0xb3e1x15){return db[_0xf1fe[56]][_0xf1fe[81]](_0xb3e1x28[_0xf1fe[82]],{})[_0xf1fe[45]](respondWithResult(_0xb3e1x15,201,_0xf1fe[81]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[81]))};exports[_0xf1fe[46]]= function(_0xb3e1x28,_0xb3e1x15){if(_0xb3e1x28[_0xf1fe[82]][_0xf1fe[78]]){delete _0xb3e1x28[_0xf1fe[82]][_0xf1fe[78]]};return db[_0xf1fe[56]][_0xf1fe[80]]({where:{id:_0xb3e1x28[_0xf1fe[79]][_0xf1fe[78]]}})[_0xf1fe[45]](handleEntityNotFound(_0xb3e1x15,null,_0xf1fe[46]))[_0xf1fe[45]](saveUpdates(_0xb3e1x28[_0xf1fe[82]],null,_0xf1fe[46]))[_0xf1fe[45]](respondWithResult(_0xb3e1x15,null,_0xf1fe[46]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[46]))};exports[_0xf1fe[48]]= function(_0xb3e1x28,_0xb3e1x15){return db[_0xf1fe[56]][_0xf1fe[80]]({where:{id:_0xb3e1x28[_0xf1fe[79]][_0xf1fe[78]]}})[_0xf1fe[45]](handleEntityNotFound(_0xb3e1x15,null,_0xf1fe[48]))[_0xf1fe[45]](removeEntity(_0xb3e1x15,null,_0xf1fe[48]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[48]))};exports[_0xf1fe[83]]= function(_0xb3e1x28,_0xb3e1x15){var _0xb3e1x2c=10;var _0xb3e1x2d={"\x53\x55\x4D":_0xf1fe[84],"\x43\x4F\x55\x4E\x54":_0xf1fe[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xf1fe[86],"\x4D\x41\x58":_0xf1fe[87],"\x4D\x49\x4E":_0xf1fe[88],"\x41\x56\x47":_0xf1fe[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xf1fe[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xf1fe[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xf1fe[92]};var _0xb3e1x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xf1fe[93],"\x44\x41\x54\x45":_0xf1fe[94],"\x48\x4F\x55\x52":_0xf1fe[95],"\x52\x4F\x55\x4E\x44":_0xf1fe[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xf1fe[97]};var _0xb3e1x2f=function(_0xb3e1x30){return !_[_0xf1fe[102]]([_0xf1fe[98],_0xf1fe[99],_0xf1fe[100],_0xf1fe[101]],_0xb3e1x30)};var _0xb3e1x31=function(_0xb3e1x32){if(!_0xb3e1x32||  !_0xb3e1x32[_0xf1fe[103]][_0xf1fe[63]]){return _0xf1fe[104]};for(var _0xb3e1x33=_0xf1fe[105],_0xb3e1x34=0;_0xb3e1x34< _0xb3e1x32[_0xf1fe[103]][_0xf1fe[63]];_0xb3e1x34+= 1){_0xb3e1x34> 0&& (_0xb3e1x33+= _0xf1fe[106]+ _0xb3e1x32[_0xf1fe[107]]+ _0xf1fe[106]);_0xb3e1x33+= _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[108]]?_0xb3e1x31(_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[108]]):_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[109]]+ _0xf1fe[106]+ _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[110]]+ (_0xb3e1x2f(_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[110]])?_0xf1fe[106]+ _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[111]]:_0xf1fe[104])};return _0xb3e1x33+ _0xf1fe[112]};var _0xb3e1x1b={where:{id:_0xb3e1x28[_0xf1fe[79]][_0xf1fe[78]]}},_0xb3e1x35,_0xb3e1x36,_0xb3e1x37,_0xb3e1x38,_0xb3e1x39;_0xb3e1x1b= _[_0xf1fe[73]]({},_0xb3e1x1b,_0xb3e1x28[_0xf1fe[74]]);return db[_0xf1fe[56]][_0xf1fe[80]](_0xb3e1x1b)[_0xf1fe[45]](handleEntityNotFound(_0xb3e1x15,null,_0xf1fe[83]))[_0xf1fe[45]](function(_0xb3e1x18){if(_0xb3e1x18){_0xb3e1x35= _0xb3e1x18;return _0xb3e1x18[_0xf1fe[138]]()};return null})[_0xf1fe[45]](function(_0xb3e1x3a){if(_0xb3e1x3a){if(!_0xb3e1x3a[_0xf1fe[63]]){throw  new db[_0xf1fe[135]].ValidationError(_0xf1fe[134])};_0xb3e1x36= _0xb3e1x3a;return db[_0xf1fe[137]][_0xf1fe[136]]({raw:true})};return null})[_0xf1fe[45]](function(_0xb3e1x3a){if(_0xb3e1x3a){_0xb3e1x37= _[_0xf1fe[113]](_0xb3e1x3a,_0xf1fe[78]);var _0xb3e1x3b;var _0xb3e1x3c=squel[_0xf1fe[114]]();_0xb3e1x3c[_0xf1fe[116]](_0xb3e1x35[_0xf1fe[115]]);for(var _0xb3e1x34=0;_0xb3e1x34< _0xb3e1x36[_0xf1fe[63]];_0xb3e1x34+= 1){_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[117]]?_0xb3e1x37[_0xb3e1x36[_0xb3e1x34][_0xf1fe[117]]][_0xf1fe[118]]:_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]];_0xb3e1x36[_0xb3e1x34][_0xf1fe[119]]&& _0xb3e1x3c[_0xf1fe[108]](_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]]);_0xb3e1x36[_0xb3e1x34][_0xf1fe[120]]&& _0xb3e1x3c[_0xf1fe[66]](_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]],_0xb3e1x36[_0xb3e1x34][_0xf1fe[120]]=== _0xf1fe[121]?false:true);_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[122]]?_[_0xf1fe[124]](_0xb3e1x2d[_0xb3e1x36[_0xb3e1x34][_0xf1fe[122]]],_0xf1fe[123],_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]]):_0xb3e1x3b;_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[125]]?_[_0xf1fe[124]](_0xb3e1x2e[_0xb3e1x36[_0xb3e1x34][_0xf1fe[125]]],_0xf1fe[123],_0xb3e1x3b):_0xb3e1x3b;_0xb3e1x3c[_0xf1fe[109]](_0xb3e1x3b,_0xb3e1x36[_0xb3e1x34][_0xf1fe[126]]|| _0xb3e1x3b)};_0xb3e1x35[_0xf1fe[127]]&& _0xb3e1x3c[_0xf1fe[68]](_0xb3e1x31(JSON[_0xf1fe[128]](_0xb3e1x35[_0xf1fe[127]])[_0xf1fe[108]]));_0xb3e1x39= _0xb3e1x3c[_0xf1fe[129]]();_0xb3e1x3c[_0xf1fe[35]](_0xb3e1x2c);_0xb3e1x3c[_0xf1fe[34]](0);logger[_0xf1fe[24]](_0xf1fe[130],_0xb3e1x3c.toString());return db[_0xf1fe[133]][_0xf1fe[58]](_0xb3e1x3c.toString(),{type:db[_0xf1fe[133]][_0xf1fe[132]][_0xf1fe[131]]})}})[_0xf1fe[45]](respondWithResult(_0xb3e1x15,null,_0xf1fe[83]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[83]))};exports[_0xf1fe[139]]= function(_0xb3e1x28,_0xb3e1x15){var _0xb3e1x2c=10;var _0xb3e1x2d={"\x53\x55\x4D":_0xf1fe[84],"\x43\x4F\x55\x4E\x54":_0xf1fe[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xf1fe[86],"\x4D\x41\x58":_0xf1fe[87],"\x4D\x49\x4E":_0xf1fe[88],"\x41\x56\x47":_0xf1fe[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xf1fe[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xf1fe[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xf1fe[92]};var _0xb3e1x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xf1fe[93],"\x44\x41\x54\x45":_0xf1fe[94],"\x48\x4F\x55\x52":_0xf1fe[95],"\x52\x4F\x55\x4E\x44":_0xf1fe[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xf1fe[97]};var _0xb3e1x2f=function(_0xb3e1x30){return !_[_0xf1fe[102]]([_0xf1fe[98],_0xf1fe[99],_0xf1fe[100],_0xf1fe[101]],_0xb3e1x30)};var _0xb3e1x31=function(_0xb3e1x32){if(!_0xb3e1x32||  !_0xb3e1x32[_0xf1fe[103]][_0xf1fe[63]]){return _0xf1fe[104]};for(var _0xb3e1x33=_0xf1fe[105],_0xb3e1x34=0;_0xb3e1x34< _0xb3e1x32[_0xf1fe[103]][_0xf1fe[63]];_0xb3e1x34+= 1){_0xb3e1x34> 0&& (_0xb3e1x33+= _0xf1fe[106]+ _0xb3e1x32[_0xf1fe[107]]+ _0xf1fe[106]);_0xb3e1x33+= _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[108]]?_0xb3e1x31(_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[108]]):_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[109]]+ _0xf1fe[106]+ _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[110]]+ (_0xb3e1x2f(_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[110]])?_0xf1fe[106]+ _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[111]]:_0xf1fe[104])};return _0xb3e1x33+ _0xf1fe[112]};var _0xb3e1x1b={where:{id:_0xb3e1x28[_0xf1fe[79]][_0xf1fe[78]]}},_0xb3e1x35,_0xb3e1x36,_0xb3e1x37,_0xb3e1x38,_0xb3e1x39;_0xb3e1x1b= _[_0xf1fe[73]]({},_0xb3e1x1b,_0xb3e1x28[_0xf1fe[74]]);return db[_0xf1fe[56]][_0xf1fe[80]](_0xb3e1x1b)[_0xf1fe[45]](handleEntityNotFound(_0xb3e1x15,null,_0xf1fe[83]))[_0xf1fe[45]](function(_0xb3e1x18){if(_0xb3e1x18){_0xb3e1x35= _0xb3e1x18;return _0xb3e1x18[_0xf1fe[138]]()};return null})[_0xf1fe[45]](function(_0xb3e1x3a){if(_0xb3e1x3a){if(!_0xb3e1x3a[_0xf1fe[63]]){throw  new db[_0xf1fe[135]].ValidationError(_0xf1fe[134])};_0xb3e1x36= _0xb3e1x3a;return db[_0xf1fe[137]][_0xf1fe[136]]({raw:true})};return null})[_0xf1fe[45]](function(_0xb3e1x3a){if(_0xb3e1x3a){_0xb3e1x37= _[_0xf1fe[113]](_0xb3e1x3a,_0xf1fe[78]);var _0xb3e1x3b;var _0xb3e1x3c=squel[_0xf1fe[114]]();_0xb3e1x3c[_0xf1fe[116]](_0xb3e1x35[_0xf1fe[115]]);for(var _0xb3e1x34=0;_0xb3e1x34< _0xb3e1x36[_0xf1fe[63]];_0xb3e1x34+= 1){_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[117]]?_0xb3e1x37[_0xb3e1x36[_0xb3e1x34][_0xf1fe[117]]][_0xf1fe[118]]:_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]];_0xb3e1x36[_0xb3e1x34][_0xf1fe[119]]&& _0xb3e1x3c[_0xf1fe[108]](_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]]);_0xb3e1x36[_0xb3e1x34][_0xf1fe[120]]&& _0xb3e1x3c[_0xf1fe[66]](_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]],_0xb3e1x36[_0xb3e1x34][_0xf1fe[120]]=== _0xf1fe[121]?false:true);_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[122]]?_[_0xf1fe[124]](_0xb3e1x2d[_0xb3e1x36[_0xb3e1x34][_0xf1fe[122]]],_0xf1fe[123],_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]]):_0xb3e1x3b;_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[125]]?_[_0xf1fe[124]](_0xb3e1x2e[_0xb3e1x36[_0xb3e1x34][_0xf1fe[125]]],_0xf1fe[123],_0xb3e1x3b):_0xb3e1x3b;_0xb3e1x3c[_0xf1fe[109]](_0xb3e1x3b,_0xb3e1x36[_0xb3e1x34][_0xf1fe[126]]|| _0xb3e1x3b)};_0xb3e1x35[_0xf1fe[127]]&& _0xb3e1x3c[_0xf1fe[68]](_0xb3e1x31(JSON[_0xf1fe[128]](_0xb3e1x35[_0xf1fe[127]])[_0xf1fe[108]]));_0xb3e1x39= _0xb3e1x3c[_0xf1fe[129]]();_0xb3e1x3c[_0xf1fe[35]](_0xb3e1x2c);_0xb3e1x3c[_0xf1fe[34]](0);logger[_0xf1fe[24]](_0xf1fe[130],_0xb3e1x3c.toString());return db[_0xf1fe[133]][_0xf1fe[58]](_0xb3e1x3c.toString(),{type:db[_0xf1fe[133]][_0xf1fe[132]][_0xf1fe[131]]})}})[_0xf1fe[45]](function(_0xb3e1x3a){if(!_0xb3e1x3a[_0xf1fe[63]]){throw  new db[_0xf1fe[135]].ValidationError(_0xf1fe[151])};var _0xb3e1x3d=_[_0xf1fe[73]](_0xb3e1x28[_0xf1fe[58]],{name:_0xb3e1x28[_0xf1fe[58]][_0xf1fe[51]]|| _0xb3e1x35[_0xf1fe[51]],savename:util[_0xf1fe[125]](_0xf1fe[152],_0xb3e1x28[_0xf1fe[58]][_0xf1fe[51]]|| _0xb3e1x35[_0xf1fe[51]],require(_0xf1fe[154])[_0xf1fe[153]](4),_0xb3e1x28[_0xf1fe[58]][_0xf1fe[145]]|| _0xf1fe[155])});return db[_0xf1fe[156]][_0xf1fe[81]](_0xb3e1x3d,{raw:true})})[_0xf1fe[45]](function(_0xb3e1x18){if(_0xb3e1x18){_0xb3e1x39[_0xf1fe[68]](_0xf1fe[140],_0xb3e1x18[_0xf1fe[141]],_0xb3e1x18[_0xf1fe[142]]);logger[_0xf1fe[24]](_0xf1fe[143],_0xb3e1x39.toString());require(_0xf1fe[150])[_0xf1fe[149]](path[_0xf1fe[146]](__dirname,_0xf1fe[144],_0xb3e1x18[_0xf1fe[145]]),[_0xb3e1x18[_0xf1fe[78]],_0xb3e1x39.toString(),path[_0xf1fe[146]](__dirname,_0xf1fe[147],_0xb3e1x18[_0xf1fe[148]])]);return _0xb3e1x18};return null})[_0xf1fe[45]](respondWithResult(_0xb3e1x15,null,_0xf1fe[139]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[139]))};exports[_0xf1fe[58]]= function(_0xb3e1x28,_0xb3e1x15){var _0xb3e1x2c=10;var _0xb3e1x2d={"\x53\x55\x4D":_0xf1fe[84],"\x43\x4F\x55\x4E\x54":_0xf1fe[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xf1fe[86],"\x4D\x41\x58":_0xf1fe[87],"\x4D\x49\x4E":_0xf1fe[88],"\x41\x56\x47":_0xf1fe[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xf1fe[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xf1fe[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xf1fe[92]};var _0xb3e1x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xf1fe[93],"\x44\x41\x54\x45":_0xf1fe[94],"\x48\x4F\x55\x52":_0xf1fe[95],"\x52\x4F\x55\x4E\x44":_0xf1fe[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xf1fe[97]};var _0xb3e1x2f=function(_0xb3e1x30){return !_[_0xf1fe[102]]([_0xf1fe[98],_0xf1fe[99],_0xf1fe[100],_0xf1fe[101]],_0xb3e1x30)};var _0xb3e1x31=function(_0xb3e1x32){if(!_0xb3e1x32||  !_0xb3e1x32[_0xf1fe[103]][_0xf1fe[63]]){return _0xf1fe[104]};for(var _0xb3e1x33=_0xf1fe[105],_0xb3e1x34=0;_0xb3e1x34< _0xb3e1x32[_0xf1fe[103]][_0xf1fe[63]];_0xb3e1x34+= 1){_0xb3e1x34> 0&& (_0xb3e1x33+= _0xf1fe[106]+ _0xb3e1x32[_0xf1fe[107]]+ _0xf1fe[106]);_0xb3e1x33+= _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[108]]?_0xb3e1x31(_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[108]]):_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[109]]+ _0xf1fe[106]+ _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[110]]+ (_0xb3e1x2f(_0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[110]])?_0xf1fe[106]+ _0xb3e1x32[_0xf1fe[103]][_0xb3e1x34][_0xf1fe[111]]:_0xf1fe[104])};return _0xb3e1x33+ _0xf1fe[112]};var _0xb3e1x1b={where:{id:_0xb3e1x28[_0xf1fe[79]][_0xf1fe[78]]}},_0xb3e1x35,_0xb3e1x36,_0xb3e1x37,_0xb3e1x38,_0xb3e1x39;_0xb3e1x1b= _[_0xf1fe[73]]({},_0xb3e1x1b,_0xb3e1x28[_0xf1fe[74]]);return db[_0xf1fe[56]][_0xf1fe[80]](_0xb3e1x1b)[_0xf1fe[45]](handleEntityNotFound(_0xb3e1x15,null,_0xf1fe[83]))[_0xf1fe[45]](function(_0xb3e1x18){if(_0xb3e1x18){_0xb3e1x35= _0xb3e1x18;return _0xb3e1x18[_0xf1fe[138]]()};return null})[_0xf1fe[45]](function(_0xb3e1x3a){if(_0xb3e1x3a){if(!_0xb3e1x3a[_0xf1fe[63]]){throw  new db[_0xf1fe[135]].ValidationError(_0xf1fe[134])};_0xb3e1x36= _0xb3e1x3a;return db[_0xf1fe[137]][_0xf1fe[136]]({raw:true})};return null})[_0xf1fe[45]](function(_0xb3e1x3a){if(_0xb3e1x3a){_0xb3e1x37= _[_0xf1fe[113]](_0xb3e1x3a,_0xf1fe[78]);var _0xb3e1x3b;var _0xb3e1x3c=squel[_0xf1fe[114]]();_0xb3e1x3c[_0xf1fe[116]](_0xb3e1x35[_0xf1fe[115]]);for(var _0xb3e1x34=0;_0xb3e1x34< _0xb3e1x36[_0xf1fe[63]];_0xb3e1x34+= 1){_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[117]]?_0xb3e1x37[_0xb3e1x36[_0xb3e1x34][_0xf1fe[117]]][_0xf1fe[118]]:_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]];_0xb3e1x36[_0xb3e1x34][_0xf1fe[119]]&& _0xb3e1x3c[_0xf1fe[108]](_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]]);_0xb3e1x36[_0xb3e1x34][_0xf1fe[120]]&& _0xb3e1x3c[_0xf1fe[66]](_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]],_0xb3e1x36[_0xb3e1x34][_0xf1fe[120]]=== _0xf1fe[121]?false:true);_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[122]]?_[_0xf1fe[124]](_0xb3e1x2d[_0xb3e1x36[_0xb3e1x34][_0xf1fe[122]]],_0xf1fe[123],_0xb3e1x36[_0xb3e1x34][_0xf1fe[109]]):_0xb3e1x3b;_0xb3e1x3b= _0xb3e1x36[_0xb3e1x34][_0xf1fe[125]]?_[_0xf1fe[124]](_0xb3e1x2e[_0xb3e1x36[_0xb3e1x34][_0xf1fe[125]]],_0xf1fe[123],_0xb3e1x3b):_0xb3e1x3b;_0xb3e1x3c[_0xf1fe[109]](_0xb3e1x3b,_0xb3e1x36[_0xb3e1x34][_0xf1fe[126]]|| _0xb3e1x3b)};_0xb3e1x35[_0xf1fe[127]]&& _0xb3e1x3c[_0xf1fe[68]](_0xb3e1x31(JSON[_0xf1fe[128]](_0xb3e1x35[_0xf1fe[127]])[_0xf1fe[108]]));_0xb3e1x39= _0xb3e1x3c[_0xf1fe[129]]();_0xb3e1x3c[_0xf1fe[35]](_0xb3e1x2c);_0xb3e1x3c[_0xf1fe[34]](0);logger[_0xf1fe[24]](_0xf1fe[130],_0xb3e1x3c.toString());return db[_0xf1fe[133]][_0xf1fe[58]](_0xb3e1x3c.toString(),{type:db[_0xf1fe[133]][_0xf1fe[132]][_0xf1fe[131]]})}})[_0xf1fe[45]](function(){return {sql:_0xb3e1x39.toString()}})[_0xf1fe[45]](respondWithResult(_0xb3e1x15,null,_0xf1fe[58]))[_0xf1fe[75]](handleError(_0xb3e1x15,null,_0xf1fe[58]))}
\ No newline at end of file
+var _0x43e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x70\x72\x65\x76\x69\x65\x77","\x53\x55\x4D\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x4D\x41\x58\x28\x25\x73\x29","\x4D\x49\x4E\x28\x25\x73\x29","\x41\x56\x47\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x25\x73\x29","\x44\x41\x54\x45\x28\x25\x73\x29","\x48\x4F\x55\x52\x28\x25\x73\x29","\x52\x4F\x55\x4E\x44\x28\x25\x73\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x25\x73\x29","\x49\x53\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x45\x4D\x50\x54\x59","\x49\x53\x20\x4E\x4F\x54\x20\x45\x4D\x50\x54\x59","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x75\x6C\x65\x73","","\x28","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x76\x61\x6C\x75\x65","\x29","\x6B\x65\x79\x42\x79","\x73\x65\x6C\x65\x63\x74","\x74\x61\x62\x6C\x65","\x66\x72\x6F\x6D","\x4D\x65\x74\x72\x69\x63\x49\x64","\x6D\x65\x74\x72\x69\x63","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x44\x45\x53\x43","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x25\x73","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x6D\x61\x74","\x61\x6C\x69\x61\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x63\x6C\x6F\x6E\x65","\x4C\x69\x6D\x69\x74\x65\x64\x20\x51\x75\x65\x72\x79\x3A","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x50\x6C\x65\x61\x73\x65\x20\x69\x6E\x73\x65\x72\x74\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x66\x69\x65\x6C\x64\x21","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x75\x6E","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x42\x45\x54\x57\x45\x45\x4E\x20\x3F\x20\x41\x4E\x44\x20\x3F","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x52\x75\x6E\x20\x51\x75\x65\x72\x79\x3A","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x70\x6F\x72\x74\x2F","\x6F\x75\x74\x70\x75\x74","\x6A\x6F\x69\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x4E\x6F\x20\x44\x61\x74\x61\x21","\x25\x73\x2D\x25\x73\x2E\x25\x73","\x67\x65\x6E\x65\x72\x61\x74\x65","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x63\x73\x76","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74"];_0x43e0[0];var jsonpatch=require(_0x43e0[1]);var rp=require(_0x43e0[2]);var moment=require(_0x43e0[3]);var BPromise=require(_0x43e0[4]);var util=require(_0x43e0[5]);var path=require(_0x43e0[6]);var sox=require(_0x43e0[7]);var ejs=require(_0x43e0[8]);var fs=require(_0x43e0[9]);var _=require(_0x43e0[10]);var squel=require(_0x43e0[11]);var crypto=require(_0x43e0[12]);var jsforce=require(_0x43e0[13]);var toCsv=require(_0x43e0[14]);var qs=require(_0x43e0[15]);var logger=require(_0x43e0[17])(_0x43e0[16]);var utils=require(_0x43e0[18]);var config=require(_0x43e0[19]);var db=require(_0x43e0[21])[_0x43e0[20]];function respondWithStatusCode(_0xae31x15,_0xae31x16,_0xae31x17){_0xae31x16= _0xae31x16|| 204;return function(_0xae31x18){if(_0xae31x18){logger[_0x43e0[24]](_0x43e0[22],_0xae31x17,_0xae31x16,_0x43e0[23]);logger[_0x43e0[26]](_0x43e0[25],_0xae31x17,_0xae31x16,_0x43e0[23]);return _0xae31x15[_0x43e0[27]](_0xae31x16)};return _0xae31x15[_0x43e0[29]](304)[_0x43e0[28]]()}}function respondWithResult(_0xae31x15,_0xae31x16,_0xae31x17){_0xae31x16= _0xae31x16|| 200;return function(_0xae31x18){if(_0xae31x18){logger[_0x43e0[24]](_0x43e0[22],_0xae31x17,_0xae31x16,_0x43e0[30]);logger[_0x43e0[26]](_0x43e0[25],_0xae31x17,_0xae31x16,_0x43e0[30],JSON[_0x43e0[31]](_0xae31x18));return _0xae31x15[_0x43e0[29]](_0xae31x16)[_0x43e0[32]](_0xae31x18)};return _0xae31x15[_0x43e0[29]](304)[_0x43e0[28]]()}}function respondWithFilteredResult(_0xae31x15,_0xae31x1b,_0xae31x17){return function(_0xae31x18){if(_0xae31x18){var _0xae31x1c=_0xae31x18[_0x43e0[33]],_0xae31x1d=_0xae31x1b[_0x43e0[34]],_0xae31x1e=_0xae31x1b[_0x43e0[34]]+ _0xae31x1b[_0x43e0[35]],_0xae31x16;if(_0xae31x1e>= _0xae31x1c){_0xae31x1e= _0xae31x1c;_0xae31x16= 200}else {_0xae31x16= 206};_0xae31x15[_0x43e0[29]](_0xae31x16);logger[_0x43e0[24]](_0x43e0[22],_0xae31x17,_0xae31x16,_0x43e0[36]);logger[_0x43e0[26]](_0x43e0[25],_0xae31x17,_0xae31x16,_0x43e0[30],JSON[_0x43e0[31]](_0xae31x18));return _0xae31x15[_0x43e0[40]](_0x43e0[37],_0xae31x1d+ _0x43e0[38]+ _0xae31x1e+ _0x43e0[39]+ _0xae31x1c)[_0x43e0[32]](_0xae31x18)};return null}}function patchUpdates(_0xae31x20){return function(_0xae31x18){try{jsonpatch[_0x43e0[41]](_0xae31x18,_0xae31x20,true)}catch(err){return BPromise[_0x43e0[42]](err)};return _0xae31x18[_0x43e0[43]]()}}function saveUpdates(_0xae31x22,_0xae31x16,_0xae31x17){return function(_0xae31x18){if(_0xae31x18){return _0xae31x18[_0x43e0[46]](_0xae31x22)[_0x43e0[45]](function(_0xae31x23){logger[_0x43e0[24]](_0x43e0[22],_0xae31x17,_0xae31x16,_0x43e0[44]);logger[_0x43e0[26]](_0x43e0[25],_0xae31x17,_0xae31x16,_0x43e0[44],JSON[_0x43e0[31]](_0xae31x18));return _0xae31x23})};return null}}function removeEntity(_0xae31x15,_0xae31x16,_0xae31x17){return function(_0xae31x18){if(_0xae31x18){return _0xae31x18[_0x43e0[48]]()[_0x43e0[45]](function(){logger[_0x43e0[24]](_0x43e0[22],_0xae31x17,_0xae31x16,_0x43e0[47]);logger[_0x43e0[26]](_0x43e0[25],_0xae31x17,_0xae31x16,_0x43e0[47],JSON[_0x43e0[31]](_0xae31x18));_0xae31x15[_0x43e0[29]](204)[_0x43e0[28]]()})}}}function handleEntityNotFound(_0xae31x15,_0xae31x16,_0xae31x17){return function(_0xae31x18){if(!_0xae31x18){logger[_0x43e0[50]](_0x43e0[22],_0xae31x17,404,_0x43e0[49]);_0xae31x15[_0x43e0[29]](404)[_0x43e0[28]]();return null};return _0xae31x18}}function handleError(_0xae31x15,_0xae31x16,_0xae31x17){_0xae31x16= _0xae31x16|| 500;return function(_0xae31x27){logger[_0x43e0[50]](_0x43e0[22],_0xae31x17,_0xae31x16,JSON[_0x43e0[31]](_0xae31x27));delete _0xae31x27[_0x43e0[51]];_0xae31x15[_0x43e0[29]](_0xae31x16)[_0x43e0[52]](_0xae31x27)}}exports[_0x43e0[53]]= function(_0xae31x28,_0xae31x15){var _0xae31x1b={},_0xae31x29={};_0xae31x29[_0x43e0[54]]= _[_0x43e0[57]](db[_0x43e0[56]][_0x43e0[55]]);_0xae31x29[_0x43e0[58]]= _[_0x43e0[57]](_0xae31x28[_0x43e0[58]]);_0xae31x29[_0x43e0[59]]= _[_0x43e0[60]](_0xae31x29[_0x43e0[54]],_0xae31x29[_0x43e0[58]]);_0xae31x1b[_0x43e0[61]]= _[_0x43e0[60]](_0xae31x29[_0x43e0[54]],qs[_0x43e0[62]](_0xae31x28[_0x43e0[58]][_0x43e0[62]]));_0xae31x1b[_0x43e0[61]]= (_0xae31x1b[_0x43e0[61]][_0x43e0[63]])?_0xae31x1b[_0x43e0[61]]:_0xae31x29[_0x43e0[54]];if(!_0xae31x28[_0x43e0[58]][_0x43e0[65]](_0x43e0[64])){_0xae31x1b[_0x43e0[35]]= qs[_0x43e0[35]](_0xae31x28[_0x43e0[58]][_0x43e0[35]]);_0xae31x1b[_0x43e0[34]]= qs[_0x43e0[34]](_0xae31x28[_0x43e0[58]][_0x43e0[34]])};_0xae31x1b[_0x43e0[66]]= qs[_0x43e0[67]](_0xae31x28[_0x43e0[58]][_0x43e0[67]]);_0xae31x1b[_0x43e0[68]]= qs[_0x43e0[59]](_[_0x43e0[69]](_0xae31x28[_0x43e0[58]],_0xae31x29[_0x43e0[59]]));if(_0xae31x28[_0x43e0[58]][_0x43e0[70]]){_0xae31x1b[_0x43e0[68]]= _[_0x43e0[73]](_0xae31x1b[_0x43e0[68]],{$or:_[_0x43e0[72]](_0xae31x1b[_0x43e0[61]],function(_0xae31x2a){var _0xae31x2b={};_0xae31x2b[_0xae31x2a]= {$like:_0x43e0[71]+ _0xae31x28[_0x43e0[58]][_0x43e0[70]]+ _0x43e0[71]};return _0xae31x2b})})};_0xae31x1b= _[_0x43e0[73]]({},_0xae31x1b,_0xae31x28[_0x43e0[74]]);return db[_0x43e0[56]][_0x43e0[76]](_0xae31x1b)[_0x43e0[45]](respondWithFilteredResult(_0xae31x15,_0xae31x1b,_0x43e0[53]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[53]))};exports[_0x43e0[77]]= function(_0xae31x28,_0xae31x15){var _0xae31x1b={raw:true,where:{id:_0xae31x28[_0x43e0[79]][_0x43e0[78]]}},_0xae31x29={};_0xae31x29[_0x43e0[54]]= _[_0x43e0[57]](db[_0x43e0[56]][_0x43e0[55]]);_0xae31x29[_0x43e0[58]]= _[_0x43e0[57]](_0xae31x28[_0x43e0[58]]);_0xae31x29[_0x43e0[59]]= _[_0x43e0[60]](_0xae31x29[_0x43e0[54]],_0xae31x29[_0x43e0[58]]);_0xae31x1b[_0x43e0[61]]= _[_0x43e0[60]](_0xae31x29[_0x43e0[54]],qs[_0x43e0[62]](_0xae31x28[_0x43e0[58]][_0x43e0[62]]));_0xae31x1b[_0x43e0[61]]= (_0xae31x1b[_0x43e0[61]][_0x43e0[63]])?_0xae31x1b[_0x43e0[61]]:_0xae31x29[_0x43e0[54]];_0xae31x1b= _[_0x43e0[73]]({},_0xae31x1b,_0xae31x28[_0x43e0[74]]);return db[_0x43e0[56]][_0x43e0[80]](_0xae31x1b)[_0x43e0[45]](handleEntityNotFound(_0xae31x15,null,_0x43e0[77]))[_0x43e0[45]](respondWithResult(_0xae31x15,null,_0x43e0[77]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[77]))};exports[_0x43e0[81]]= function(_0xae31x28,_0xae31x15){return db[_0x43e0[56]][_0x43e0[81]](_0xae31x28[_0x43e0[82]],{})[_0x43e0[45]](respondWithResult(_0xae31x15,201,_0x43e0[81]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[81]))};exports[_0x43e0[46]]= function(_0xae31x28,_0xae31x15){if(_0xae31x28[_0x43e0[82]][_0x43e0[78]]){delete _0xae31x28[_0x43e0[82]][_0x43e0[78]]};return db[_0x43e0[56]][_0x43e0[80]]({where:{id:_0xae31x28[_0x43e0[79]][_0x43e0[78]]}})[_0x43e0[45]](handleEntityNotFound(_0xae31x15,null,_0x43e0[46]))[_0x43e0[45]](saveUpdates(_0xae31x28[_0x43e0[82]],null,_0x43e0[46]))[_0x43e0[45]](respondWithResult(_0xae31x15,null,_0x43e0[46]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[46]))};exports[_0x43e0[48]]= function(_0xae31x28,_0xae31x15){return db[_0x43e0[56]][_0x43e0[80]]({where:{id:_0xae31x28[_0x43e0[79]][_0x43e0[78]]}})[_0x43e0[45]](handleEntityNotFound(_0xae31x15,null,_0x43e0[48]))[_0x43e0[45]](removeEntity(_0xae31x15,null,_0x43e0[48]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[48]))};exports[_0x43e0[83]]= function(_0xae31x28,_0xae31x15){var _0xae31x2c=10;var _0xae31x2d={"\x53\x55\x4D":_0x43e0[84],"\x43\x4F\x55\x4E\x54":_0x43e0[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x43e0[86],"\x4D\x41\x58":_0x43e0[87],"\x4D\x49\x4E":_0x43e0[88],"\x41\x56\x47":_0x43e0[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x43e0[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x43e0[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x43e0[92]};var _0xae31x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x43e0[93],"\x44\x41\x54\x45":_0x43e0[94],"\x48\x4F\x55\x52":_0x43e0[95],"\x52\x4F\x55\x4E\x44":_0x43e0[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x43e0[97]};var _0xae31x2f=function(_0xae31x30){return !_[_0x43e0[102]]([_0x43e0[98],_0x43e0[99],_0x43e0[100],_0x43e0[101]],_0xae31x30)};var _0xae31x31=function(_0xae31x32){if(!_0xae31x32||  !_0xae31x32[_0x43e0[103]][_0x43e0[63]]){return _0x43e0[104]};for(var _0xae31x33=_0x43e0[105],_0xae31x34=0;_0xae31x34< _0xae31x32[_0x43e0[103]][_0x43e0[63]];_0xae31x34+= 1){_0xae31x34> 0&& (_0xae31x33+= _0x43e0[106]+ _0xae31x32[_0x43e0[107]]+ _0x43e0[106]);_0xae31x33+= _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[108]]?_0xae31x31(_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[108]]):_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[109]]+ _0x43e0[106]+ _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[110]]+ (_0xae31x2f(_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[110]])?_0x43e0[106]+ _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[111]]:_0x43e0[104])};return _0xae31x33+ _0x43e0[112]};var _0xae31x1b={where:{id:_0xae31x28[_0x43e0[79]][_0x43e0[78]]}},_0xae31x35,_0xae31x36,_0xae31x37,_0xae31x38,_0xae31x39;_0xae31x1b= _[_0x43e0[73]]({},_0xae31x1b,_0xae31x28[_0x43e0[74]]);return db[_0x43e0[56]][_0x43e0[80]](_0xae31x1b)[_0x43e0[45]](handleEntityNotFound(_0xae31x15,null,_0x43e0[83]))[_0x43e0[45]](function(_0xae31x18){if(_0xae31x18){_0xae31x35= _0xae31x18;return _0xae31x18[_0x43e0[138]]()};return null})[_0x43e0[45]](function(_0xae31x3a){if(_0xae31x3a){if(!_0xae31x3a[_0x43e0[63]]){throw  new db[_0x43e0[135]].ValidationError(_0x43e0[134])};_0xae31x36= _0xae31x3a;return db[_0x43e0[137]][_0x43e0[136]]({raw:true})};return null})[_0x43e0[45]](function(_0xae31x3a){if(_0xae31x3a){_0xae31x37= _[_0x43e0[113]](_0xae31x3a,_0x43e0[78]);var _0xae31x3b;var _0xae31x3c=squel[_0x43e0[114]]();_0xae31x3c[_0x43e0[116]](_0xae31x35[_0x43e0[115]]);for(var _0xae31x34=0;_0xae31x34< _0xae31x36[_0x43e0[63]];_0xae31x34+= 1){_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[117]]?_0xae31x37[_0xae31x36[_0xae31x34][_0x43e0[117]]][_0x43e0[118]]:_0xae31x36[_0xae31x34][_0x43e0[109]];_0xae31x36[_0xae31x34][_0x43e0[119]]&& _0xae31x3c[_0x43e0[108]](_0xae31x36[_0xae31x34][_0x43e0[109]]);_0xae31x36[_0xae31x34][_0x43e0[120]]&& _0xae31x3c[_0x43e0[66]](_0xae31x36[_0xae31x34][_0x43e0[109]],_0xae31x36[_0xae31x34][_0x43e0[120]]=== _0x43e0[121]?false:true);_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[122]]?_[_0x43e0[124]](_0xae31x2d[_0xae31x36[_0xae31x34][_0x43e0[122]]],_0x43e0[123],_0xae31x36[_0xae31x34][_0x43e0[109]]):_0xae31x3b;_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[125]]?_[_0x43e0[124]](_0xae31x2e[_0xae31x36[_0xae31x34][_0x43e0[125]]],_0x43e0[123],_0xae31x3b):_0xae31x3b;_0xae31x3c[_0x43e0[109]](_0xae31x3b,_0xae31x36[_0xae31x34][_0x43e0[126]]|| _0xae31x3b)};_0xae31x35[_0x43e0[127]]&& _0xae31x3c[_0x43e0[68]](_0xae31x31(JSON[_0x43e0[128]](_0xae31x35[_0x43e0[127]])[_0x43e0[108]]));_0xae31x39= _0xae31x3c[_0x43e0[129]]();_0xae31x3c[_0x43e0[35]](_0xae31x2c);_0xae31x3c[_0x43e0[34]](0);logger[_0x43e0[24]](_0x43e0[130],_0xae31x3c.toString());return db[_0x43e0[133]][_0x43e0[58]](_0xae31x3c.toString(),{type:db[_0x43e0[133]][_0x43e0[132]][_0x43e0[131]]})}})[_0x43e0[45]](respondWithResult(_0xae31x15,null,_0x43e0[83]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[83]))};exports[_0x43e0[139]]= function(_0xae31x28,_0xae31x15){var _0xae31x2c=10;var _0xae31x2d={"\x53\x55\x4D":_0x43e0[84],"\x43\x4F\x55\x4E\x54":_0x43e0[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x43e0[86],"\x4D\x41\x58":_0x43e0[87],"\x4D\x49\x4E":_0x43e0[88],"\x41\x56\x47":_0x43e0[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x43e0[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x43e0[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x43e0[92]};var _0xae31x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x43e0[93],"\x44\x41\x54\x45":_0x43e0[94],"\x48\x4F\x55\x52":_0x43e0[95],"\x52\x4F\x55\x4E\x44":_0x43e0[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x43e0[97]};var _0xae31x2f=function(_0xae31x30){return !_[_0x43e0[102]]([_0x43e0[98],_0x43e0[99],_0x43e0[100],_0x43e0[101]],_0xae31x30)};var _0xae31x31=function(_0xae31x32){if(!_0xae31x32||  !_0xae31x32[_0x43e0[103]][_0x43e0[63]]){return _0x43e0[104]};for(var _0xae31x33=_0x43e0[105],_0xae31x34=0;_0xae31x34< _0xae31x32[_0x43e0[103]][_0x43e0[63]];_0xae31x34+= 1){_0xae31x34> 0&& (_0xae31x33+= _0x43e0[106]+ _0xae31x32[_0x43e0[107]]+ _0x43e0[106]);_0xae31x33+= _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[108]]?_0xae31x31(_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[108]]):_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[109]]+ _0x43e0[106]+ _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[110]]+ (_0xae31x2f(_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[110]])?_0x43e0[106]+ _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[111]]:_0x43e0[104])};return _0xae31x33+ _0x43e0[112]};var _0xae31x1b={where:{id:_0xae31x28[_0x43e0[79]][_0x43e0[78]]}},_0xae31x35,_0xae31x36,_0xae31x37,_0xae31x38,_0xae31x39;_0xae31x1b= _[_0x43e0[73]]({},_0xae31x1b,_0xae31x28[_0x43e0[74]]);return db[_0x43e0[56]][_0x43e0[80]](_0xae31x1b)[_0x43e0[45]](handleEntityNotFound(_0xae31x15,null,_0x43e0[83]))[_0x43e0[45]](function(_0xae31x18){if(_0xae31x18){_0xae31x35= _0xae31x18;return _0xae31x18[_0x43e0[138]]()};return null})[_0x43e0[45]](function(_0xae31x3a){if(_0xae31x3a){if(!_0xae31x3a[_0x43e0[63]]){throw  new db[_0x43e0[135]].ValidationError(_0x43e0[134])};_0xae31x36= _0xae31x3a;return db[_0x43e0[137]][_0x43e0[136]]({raw:true})};return null})[_0x43e0[45]](function(_0xae31x3a){if(_0xae31x3a){_0xae31x37= _[_0x43e0[113]](_0xae31x3a,_0x43e0[78]);var _0xae31x3b;var _0xae31x3c=squel[_0x43e0[114]]();_0xae31x3c[_0x43e0[116]](_0xae31x35[_0x43e0[115]]);for(var _0xae31x34=0;_0xae31x34< _0xae31x36[_0x43e0[63]];_0xae31x34+= 1){_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[117]]?_0xae31x37[_0xae31x36[_0xae31x34][_0x43e0[117]]][_0x43e0[118]]:_0xae31x36[_0xae31x34][_0x43e0[109]];_0xae31x36[_0xae31x34][_0x43e0[119]]&& _0xae31x3c[_0x43e0[108]](_0xae31x36[_0xae31x34][_0x43e0[109]]);_0xae31x36[_0xae31x34][_0x43e0[120]]&& _0xae31x3c[_0x43e0[66]](_0xae31x36[_0xae31x34][_0x43e0[109]],_0xae31x36[_0xae31x34][_0x43e0[120]]=== _0x43e0[121]?false:true);_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[122]]?_[_0x43e0[124]](_0xae31x2d[_0xae31x36[_0xae31x34][_0x43e0[122]]],_0x43e0[123],_0xae31x36[_0xae31x34][_0x43e0[109]]):_0xae31x3b;_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[125]]?_[_0x43e0[124]](_0xae31x2e[_0xae31x36[_0xae31x34][_0x43e0[125]]],_0x43e0[123],_0xae31x3b):_0xae31x3b;_0xae31x3c[_0x43e0[109]](_0xae31x3b,_0xae31x36[_0xae31x34][_0x43e0[126]]|| _0xae31x3b)};_0xae31x35[_0x43e0[127]]&& _0xae31x3c[_0x43e0[68]](_0xae31x31(JSON[_0x43e0[128]](_0xae31x35[_0x43e0[127]])[_0x43e0[108]]));_0xae31x39= _0xae31x3c[_0x43e0[129]]();_0xae31x3c[_0x43e0[35]](_0xae31x2c);_0xae31x3c[_0x43e0[34]](0);logger[_0x43e0[24]](_0x43e0[130],_0xae31x3c.toString());return db[_0x43e0[133]][_0x43e0[58]](_0xae31x3c.toString(),{type:db[_0x43e0[133]][_0x43e0[132]][_0x43e0[131]]})}})[_0x43e0[45]](function(_0xae31x3a){if(!_0xae31x3a[_0x43e0[63]]){throw  new db[_0x43e0[135]].ValidationError(_0x43e0[151])};var _0xae31x3d=_[_0x43e0[73]](_0xae31x28[_0x43e0[58]],{name:_0xae31x28[_0x43e0[58]][_0x43e0[51]]|| _0xae31x35[_0x43e0[51]],savename:util[_0x43e0[125]](_0x43e0[152],_0xae31x28[_0x43e0[58]][_0x43e0[51]]|| _0xae31x35[_0x43e0[51]],require(_0x43e0[154])[_0x43e0[153]](4),_0xae31x28[_0x43e0[58]][_0x43e0[145]]|| _0x43e0[155])});return db[_0x43e0[156]][_0x43e0[81]](_0xae31x3d,{raw:true})})[_0x43e0[45]](function(_0xae31x18){if(_0xae31x18){_0xae31x39[_0x43e0[68]](_0x43e0[140],_0xae31x18[_0x43e0[141]],_0xae31x18[_0x43e0[142]]);logger[_0x43e0[24]](_0x43e0[143],_0xae31x39.toString());require(_0x43e0[150])[_0x43e0[149]](path[_0x43e0[146]](__dirname,_0x43e0[144],_0xae31x18[_0x43e0[145]]),[_0xae31x18[_0x43e0[78]],_0xae31x39.toString(),path[_0x43e0[146]](__dirname,_0x43e0[147],_0xae31x18[_0x43e0[148]])]);return _0xae31x18};return null})[_0x43e0[45]](respondWithResult(_0xae31x15,null,_0x43e0[139]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[139]))};exports[_0x43e0[58]]= function(_0xae31x28,_0xae31x15){var _0xae31x2c=10;var _0xae31x2d={"\x53\x55\x4D":_0x43e0[84],"\x43\x4F\x55\x4E\x54":_0x43e0[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x43e0[86],"\x4D\x41\x58":_0x43e0[87],"\x4D\x49\x4E":_0x43e0[88],"\x41\x56\x47":_0x43e0[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x43e0[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x43e0[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x43e0[92]};var _0xae31x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x43e0[93],"\x44\x41\x54\x45":_0x43e0[94],"\x48\x4F\x55\x52":_0x43e0[95],"\x52\x4F\x55\x4E\x44":_0x43e0[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x43e0[97]};var _0xae31x2f=function(_0xae31x30){return !_[_0x43e0[102]]([_0x43e0[98],_0x43e0[99],_0x43e0[100],_0x43e0[101]],_0xae31x30)};var _0xae31x31=function(_0xae31x32){if(!_0xae31x32||  !_0xae31x32[_0x43e0[103]][_0x43e0[63]]){return _0x43e0[104]};for(var _0xae31x33=_0x43e0[105],_0xae31x34=0;_0xae31x34< _0xae31x32[_0x43e0[103]][_0x43e0[63]];_0xae31x34+= 1){_0xae31x34> 0&& (_0xae31x33+= _0x43e0[106]+ _0xae31x32[_0x43e0[107]]+ _0x43e0[106]);_0xae31x33+= _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[108]]?_0xae31x31(_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[108]]):_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[109]]+ _0x43e0[106]+ _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[110]]+ (_0xae31x2f(_0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[110]])?_0x43e0[106]+ _0xae31x32[_0x43e0[103]][_0xae31x34][_0x43e0[111]]:_0x43e0[104])};return _0xae31x33+ _0x43e0[112]};var _0xae31x1b={where:{id:_0xae31x28[_0x43e0[79]][_0x43e0[78]]}},_0xae31x35,_0xae31x36,_0xae31x37,_0xae31x38,_0xae31x39;_0xae31x1b= _[_0x43e0[73]]({},_0xae31x1b,_0xae31x28[_0x43e0[74]]);return db[_0x43e0[56]][_0x43e0[80]](_0xae31x1b)[_0x43e0[45]](handleEntityNotFound(_0xae31x15,null,_0x43e0[83]))[_0x43e0[45]](function(_0xae31x18){if(_0xae31x18){_0xae31x35= _0xae31x18;return _0xae31x18[_0x43e0[138]]()};return null})[_0x43e0[45]](function(_0xae31x3a){if(_0xae31x3a){if(!_0xae31x3a[_0x43e0[63]]){throw  new db[_0x43e0[135]].ValidationError(_0x43e0[134])};_0xae31x36= _0xae31x3a;return db[_0x43e0[137]][_0x43e0[136]]({raw:true})};return null})[_0x43e0[45]](function(_0xae31x3a){if(_0xae31x3a){_0xae31x37= _[_0x43e0[113]](_0xae31x3a,_0x43e0[78]);var _0xae31x3b;var _0xae31x3c=squel[_0x43e0[114]]();_0xae31x3c[_0x43e0[116]](_0xae31x35[_0x43e0[115]]);for(var _0xae31x34=0;_0xae31x34< _0xae31x36[_0x43e0[63]];_0xae31x34+= 1){_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[117]]?_0xae31x37[_0xae31x36[_0xae31x34][_0x43e0[117]]][_0x43e0[118]]:_0xae31x36[_0xae31x34][_0x43e0[109]];_0xae31x36[_0xae31x34][_0x43e0[119]]&& _0xae31x3c[_0x43e0[108]](_0xae31x36[_0xae31x34][_0x43e0[109]]);_0xae31x36[_0xae31x34][_0x43e0[120]]&& _0xae31x3c[_0x43e0[66]](_0xae31x36[_0xae31x34][_0x43e0[109]],_0xae31x36[_0xae31x34][_0x43e0[120]]=== _0x43e0[121]?false:true);_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[122]]?_[_0x43e0[124]](_0xae31x2d[_0xae31x36[_0xae31x34][_0x43e0[122]]],_0x43e0[123],_0xae31x36[_0xae31x34][_0x43e0[109]]):_0xae31x3b;_0xae31x3b= _0xae31x36[_0xae31x34][_0x43e0[125]]?_[_0x43e0[124]](_0xae31x2e[_0xae31x36[_0xae31x34][_0x43e0[125]]],_0x43e0[123],_0xae31x3b):_0xae31x3b;_0xae31x3c[_0x43e0[109]](_0xae31x3b,_0xae31x36[_0xae31x34][_0x43e0[126]]|| _0xae31x3b)};_0xae31x35[_0x43e0[127]]&& _0xae31x3c[_0x43e0[68]](_0xae31x31(JSON[_0x43e0[128]](_0xae31x35[_0x43e0[127]])[_0x43e0[108]]));_0xae31x39= _0xae31x3c[_0x43e0[129]]();_0xae31x3c[_0x43e0[35]](_0xae31x2c);_0xae31x3c[_0x43e0[34]](0);logger[_0x43e0[24]](_0x43e0[130],_0xae31x3c.toString());return db[_0x43e0[133]][_0x43e0[58]](_0xae31x3c.toString(),{type:db[_0x43e0[133]][_0x43e0[132]][_0x43e0[131]]})}})[_0x43e0[45]](function(){return {sql:_0xae31x39.toString()}})[_0x43e0[45]](respondWithResult(_0xae31x15,null,_0x43e0[58]))[_0x43e0[75]](handleError(_0xae31x15,null,_0x43e0[58]))}
\ No newline at end of file
index 96132c1..3bb244d 100644 (file)
@@ -1 +1 @@
-var _0x60aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x60aa[0];var _=require(_0x60aa[1]);var util=require(_0x60aa[2]);var logger=require(_0x60aa[4])(_0x60aa[3]);var attributes=require(_0x60aa[5]);module[_0x60aa[6]]= function(_0x4fddx5,_0x4fddx6){return _0x4fddx5[_0x60aa[9]](_0x60aa[7],attributes,{tableName:_0x60aa[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x140a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x140a[0];var _=require(_0x140a[1]);var util=require(_0x140a[2]);var logger=require(_0x140a[4])(_0x140a[3]);var attributes=require(_0x140a[5]);module[_0x140a[6]]= function(_0x9434x5,_0x9434x6){return _0x9434x5[_0x140a[9]](_0x140a[7],attributes,{tableName:_0x140a[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
index 29a7720..b909e06 100644 (file)
@@ -1 +1 @@
-var _0xceb0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xceb0[0];var _=require(_0xceb0[1]);var util=require(_0xceb0[2]);var moment=require(_0xceb0[3]);var BPromise=require(_0xceb0[4]);var db=require(_0xceb0[6])[_0xceb0[5]];var utils=require(_0xceb0[7]);var logger=require(_0xceb0[9])(_0xceb0[8]);var jayson=require(_0xceb0[10]);var client=jayson[_0xceb0[12]][_0xceb0[11]]({port:9002});function respondWithRpcPromise(_0x5808xb,_0x5808xc,_0x5808xd){return  new BPromise(function(_0x5808xe,_0x5808xf){return client[_0xceb0[25]](_0x5808xb,_0x5808xd)[_0xceb0[24]](function(_0x5808x11){logger[_0xceb0[17]](_0xceb0[13],_0x5808xc,_0xceb0[16]);logger[_0xceb0[20]](_0xceb0[18],_0x5808xc,_0xceb0[16],JSON[_0xceb0[19]](_0x5808x11));if(_0x5808x11[_0xceb0[14]]){if(_0x5808x11[_0xceb0[14]][_0xceb0[21]]=== 500){logger[_0xceb0[14]](_0xceb0[13],_0x5808xc,_0x5808x11[_0xceb0[14]][_0xceb0[22]]);return _0x5808xf(_0x5808x11[_0xceb0[14]][_0xceb0[22]])};logger[_0xceb0[14]](_0xceb0[13],_0x5808xc,_0x5808x11[_0xceb0[14]][_0xceb0[22]]);return _0x5808xe(_0x5808x11[_0xceb0[14]][_0xceb0[22]])}else {logger[_0xceb0[17]](_0xceb0[13],_0x5808xc,_0xceb0[16]);_0x5808xe(_0x5808x11[_0xceb0[23]][_0xceb0[22]])}})[_0xceb0[15]](function(_0x5808x10){logger[_0xceb0[14]](_0xceb0[13],_0x5808xc,_0x5808x10);_0x5808xf(_0x5808x10)})})}
\ No newline at end of file
+var _0x1bbb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1bbb[0];var _=require(_0x1bbb[1]);var util=require(_0x1bbb[2]);var moment=require(_0x1bbb[3]);var BPromise=require(_0x1bbb[4]);var db=require(_0x1bbb[6])[_0x1bbb[5]];var utils=require(_0x1bbb[7]);var logger=require(_0x1bbb[9])(_0x1bbb[8]);var jayson=require(_0x1bbb[10]);var client=jayson[_0x1bbb[12]][_0x1bbb[11]]({port:9002});function respondWithRpcPromise(_0xa067xb,_0xa067xc,_0xa067xd){return  new BPromise(function(_0xa067xe,_0xa067xf){return client[_0x1bbb[25]](_0xa067xb,_0xa067xd)[_0x1bbb[24]](function(_0xa067x11){logger[_0x1bbb[17]](_0x1bbb[13],_0xa067xc,_0x1bbb[16]);logger[_0x1bbb[20]](_0x1bbb[18],_0xa067xc,_0x1bbb[16],JSON[_0x1bbb[19]](_0xa067x11));if(_0xa067x11[_0x1bbb[14]]){if(_0xa067x11[_0x1bbb[14]][_0x1bbb[21]]=== 500){logger[_0x1bbb[14]](_0x1bbb[13],_0xa067xc,_0xa067x11[_0x1bbb[14]][_0x1bbb[22]]);return _0xa067xf(_0xa067x11[_0x1bbb[14]][_0x1bbb[22]])};logger[_0x1bbb[14]](_0x1bbb[13],_0xa067xc,_0xa067x11[_0x1bbb[14]][_0x1bbb[22]]);return _0xa067xe(_0xa067x11[_0x1bbb[14]][_0x1bbb[22]])}else {logger[_0x1bbb[17]](_0x1bbb[13],_0xa067xc,_0x1bbb[16]);_0xa067xe(_0xa067x11[_0x1bbb[23]][_0x1bbb[22]])}})[_0x1bbb[15]](function(_0xa067x10){logger[_0x1bbb[14]](_0x1bbb[13],_0xa067xc,_0xa067x10);_0xa067xf(_0xa067x10)})})}
\ No newline at end of file
index 345a196..0818954 100644 (file)
@@ -1 +1 @@
-var _0x5272=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x72\x79","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5272[0];var multer=require(_0x5272[1]);var util=require(_0x5272[2]);var path=require(_0x5272[3]);var express=require(_0x5272[4]);var router=express.Router();var auth=require(_0x5272[5]);var config=require(_0x5272[6]);var controller=require(_0x5272[7]);router[_0x5272[11]](_0x5272[8],auth[_0x5272[9]](),controller[_0x5272[10]]);router[_0x5272[11]](_0x5272[12],auth[_0x5272[9]](),controller[_0x5272[13]]);router[_0x5272[11]](_0x5272[14],auth[_0x5272[9]](),controller[_0x5272[15]]);router[_0x5272[11]](_0x5272[16],auth[_0x5272[9]](),controller[_0x5272[17]]);router[_0x5272[11]](_0x5272[18],auth[_0x5272[9]](),controller[_0x5272[19]]);router[_0x5272[21]](_0x5272[8],auth[_0x5272[9]](),controller[_0x5272[20]]);router[_0x5272[23]](_0x5272[12],auth[_0x5272[9]](),controller[_0x5272[22]]);router[_0x5272[25]](_0x5272[12],auth[_0x5272[9]](),controller[_0x5272[24]]);module[_0x5272[26]]= router
\ No newline at end of file
+var _0xd545=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x72\x79","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd545[0];var multer=require(_0xd545[1]);var util=require(_0xd545[2]);var path=require(_0xd545[3]);var express=require(_0xd545[4]);var router=express.Router();var auth=require(_0xd545[5]);var config=require(_0xd545[6]);var controller=require(_0xd545[7]);router[_0xd545[11]](_0xd545[8],auth[_0xd545[9]](),controller[_0xd545[10]]);router[_0xd545[11]](_0xd545[12],auth[_0xd545[9]](),controller[_0xd545[13]]);router[_0xd545[11]](_0xd545[14],auth[_0xd545[9]](),controller[_0xd545[15]]);router[_0xd545[11]](_0xd545[16],auth[_0xd545[9]](),controller[_0xd545[17]]);router[_0xd545[11]](_0xd545[18],auth[_0xd545[9]](),controller[_0xd545[19]]);router[_0xd545[21]](_0xd545[8],auth[_0xd545[9]](),controller[_0xd545[20]]);router[_0xd545[23]](_0xd545[12],auth[_0xd545[9]](),controller[_0xd545[22]]);router[_0xd545[25]](_0xd545[12],auth[_0xd545[9]](),controller[_0xd545[24]]);module[_0xd545[26]]= router
\ No newline at end of file
index d1a2d41..46cf4f1 100644 (file)
@@ -1 +1 @@
-var _0xa18c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xa18c[0];var Sequelize=require(_0xa18c[1]);module[_0xa18c[2]]= {name:{type:Sequelize[_0xa18c[3]],allowNull:false},description:{type:Sequelize[_0xa18c[3]]},parent:{type:Sequelize[_0xa18c[3]]},table:{type:Sequelize[_0xa18c[3]]},conditions:{type:Sequelize[_0xa18c[4]]}}
\ No newline at end of file
+var _0x16e8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x16e8[0];var Sequelize=require(_0x16e8[1]);module[_0x16e8[2]]= {name:{type:Sequelize[_0x16e8[3]],allowNull:false},description:{type:Sequelize[_0x16e8[3]]},parent:{type:Sequelize[_0x16e8[3]]},table:{type:Sequelize[_0x16e8[3]]},conditions:{type:Sequelize[_0x16e8[4]]}}
\ No newline at end of file
index f0eef45..024369a 100644 (file)
@@ -1 +1 @@
-var _0xca5e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x70\x72\x65\x76\x69\x65\x77","\x53\x55\x4D\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x4D\x41\x58\x28\x25\x73\x29","\x4D\x49\x4E\x28\x25\x73\x29","\x41\x56\x47\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x25\x73\x29","\x44\x41\x54\x45\x28\x25\x73\x29","\x48\x4F\x55\x52\x28\x25\x73\x29","\x52\x4F\x55\x4E\x44\x28\x25\x73\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x25\x73\x29","\x49\x53\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x45\x4D\x50\x54\x59","\x49\x53\x20\x4E\x4F\x54\x20\x45\x4D\x50\x54\x59","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x75\x6C\x65\x73","","\x28","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x76\x61\x6C\x75\x65","\x29","\x6B\x65\x79\x42\x79","\x73\x65\x6C\x65\x63\x74","\x74\x61\x62\x6C\x65","\x66\x72\x6F\x6D","\x4D\x65\x74\x72\x69\x63\x49\x64","\x6D\x65\x74\x72\x69\x63","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x44\x45\x53\x43","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x25\x73","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x6D\x61\x74","\x61\x6C\x69\x61\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x63\x6C\x6F\x6E\x65","\x4C\x69\x6D\x69\x74\x65\x64\x20\x51\x75\x65\x72\x79\x3A","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x50\x6C\x65\x61\x73\x65\x20\x69\x6E\x73\x65\x72\x74\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x66\x69\x65\x6C\x64\x21","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x75\x6E","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x42\x45\x54\x57\x45\x45\x4E\x20\x3F\x20\x41\x4E\x44\x20\x3F","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x52\x75\x6E\x20\x51\x75\x65\x72\x79\x3A","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x70\x6F\x72\x74\x2F","\x6F\x75\x74\x70\x75\x74","\x6A\x6F\x69\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x4E\x6F\x20\x44\x61\x74\x61\x21","\x25\x73\x2D\x25\x73\x2E\x25\x73","\x67\x65\x6E\x65\x72\x61\x74\x65","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x63\x73\x76","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74"];_0xca5e[0];var jsonpatch=require(_0xca5e[1]);var rp=require(_0xca5e[2]);var moment=require(_0xca5e[3]);var BPromise=require(_0xca5e[4]);var util=require(_0xca5e[5]);var path=require(_0xca5e[6]);var sox=require(_0xca5e[7]);var ejs=require(_0xca5e[8]);var fs=require(_0xca5e[9]);var _=require(_0xca5e[10]);var squel=require(_0xca5e[11]);var crypto=require(_0xca5e[12]);var jsforce=require(_0xca5e[13]);var toCsv=require(_0xca5e[14]);var qs=require(_0xca5e[15]);var logger=require(_0xca5e[17])(_0xca5e[16]);var utils=require(_0xca5e[18]);var config=require(_0xca5e[19]);var db=require(_0xca5e[21])[_0xca5e[20]];function respondWithStatusCode(_0x7719x15,_0x7719x16,_0x7719x17){_0x7719x16= _0x7719x16|| 204;return function(_0x7719x18){if(_0x7719x18){logger[_0xca5e[24]](_0xca5e[22],_0x7719x17,_0x7719x16,_0xca5e[23]);logger[_0xca5e[26]](_0xca5e[25],_0x7719x17,_0x7719x16,_0xca5e[23]);return _0x7719x15[_0xca5e[27]](_0x7719x16)};return _0x7719x15[_0xca5e[29]](304)[_0xca5e[28]]()}}function respondWithResult(_0x7719x15,_0x7719x16,_0x7719x17){_0x7719x16= _0x7719x16|| 200;return function(_0x7719x18){if(_0x7719x18){logger[_0xca5e[24]](_0xca5e[22],_0x7719x17,_0x7719x16,_0xca5e[30]);logger[_0xca5e[26]](_0xca5e[25],_0x7719x17,_0x7719x16,_0xca5e[30],JSON[_0xca5e[31]](_0x7719x18));return _0x7719x15[_0xca5e[29]](_0x7719x16)[_0xca5e[32]](_0x7719x18)};return _0x7719x15[_0xca5e[29]](304)[_0xca5e[28]]()}}function respondWithFilteredResult(_0x7719x15,_0x7719x1b,_0x7719x17){return function(_0x7719x18){if(_0x7719x18){var _0x7719x1c=_0x7719x18[_0xca5e[33]],_0x7719x1d=_0x7719x1b[_0xca5e[34]],_0x7719x1e=_0x7719x1b[_0xca5e[34]]+ _0x7719x1b[_0xca5e[35]],_0x7719x16;if(_0x7719x1e>= _0x7719x1c){_0x7719x1e= _0x7719x1c;_0x7719x16= 200}else {_0x7719x16= 206};_0x7719x15[_0xca5e[29]](_0x7719x16);logger[_0xca5e[24]](_0xca5e[22],_0x7719x17,_0x7719x16,_0xca5e[36]);logger[_0xca5e[26]](_0xca5e[25],_0x7719x17,_0x7719x16,_0xca5e[30],JSON[_0xca5e[31]](_0x7719x18));return _0x7719x15[_0xca5e[40]](_0xca5e[37],_0x7719x1d+ _0xca5e[38]+ _0x7719x1e+ _0xca5e[39]+ _0x7719x1c)[_0xca5e[32]](_0x7719x18)};return null}}function patchUpdates(_0x7719x20){return function(_0x7719x18){try{jsonpatch[_0xca5e[41]](_0x7719x18,_0x7719x20,true)}catch(err){return BPromise[_0xca5e[42]](err)};return _0x7719x18[_0xca5e[43]]()}}function saveUpdates(_0x7719x22,_0x7719x16,_0x7719x17){return function(_0x7719x18){if(_0x7719x18){return _0x7719x18[_0xca5e[46]](_0x7719x22)[_0xca5e[45]](function(_0x7719x23){logger[_0xca5e[24]](_0xca5e[22],_0x7719x17,_0x7719x16,_0xca5e[44]);logger[_0xca5e[26]](_0xca5e[25],_0x7719x17,_0x7719x16,_0xca5e[44],JSON[_0xca5e[31]](_0x7719x18));return _0x7719x23})};return null}}function removeEntity(_0x7719x15,_0x7719x16,_0x7719x17){return function(_0x7719x18){if(_0x7719x18){return _0x7719x18[_0xca5e[48]]()[_0xca5e[45]](function(){logger[_0xca5e[24]](_0xca5e[22],_0x7719x17,_0x7719x16,_0xca5e[47]);logger[_0xca5e[26]](_0xca5e[25],_0x7719x17,_0x7719x16,_0xca5e[47],JSON[_0xca5e[31]](_0x7719x18));_0x7719x15[_0xca5e[29]](204)[_0xca5e[28]]()})}}}function handleEntityNotFound(_0x7719x15,_0x7719x16,_0x7719x17){return function(_0x7719x18){if(!_0x7719x18){logger[_0xca5e[50]](_0xca5e[22],_0x7719x17,404,_0xca5e[49]);_0x7719x15[_0xca5e[29]](404)[_0xca5e[28]]();return null};return _0x7719x18}}function handleError(_0x7719x15,_0x7719x16,_0x7719x17){_0x7719x16= _0x7719x16|| 500;return function(_0x7719x27){logger[_0xca5e[50]](_0xca5e[22],_0x7719x17,_0x7719x16,JSON[_0xca5e[31]](_0x7719x27));delete _0x7719x27[_0xca5e[51]];_0x7719x15[_0xca5e[29]](_0x7719x16)[_0xca5e[52]](_0x7719x27)}}exports[_0xca5e[53]]= function(_0x7719x28,_0x7719x15){var _0x7719x1b={},_0x7719x29={};_0x7719x29[_0xca5e[54]]= _[_0xca5e[57]](db[_0xca5e[56]][_0xca5e[55]]);_0x7719x29[_0xca5e[58]]= _[_0xca5e[57]](_0x7719x28[_0xca5e[58]]);_0x7719x29[_0xca5e[59]]= _[_0xca5e[60]](_0x7719x29[_0xca5e[54]],_0x7719x29[_0xca5e[58]]);_0x7719x1b[_0xca5e[61]]= _[_0xca5e[60]](_0x7719x29[_0xca5e[54]],qs[_0xca5e[62]](_0x7719x28[_0xca5e[58]][_0xca5e[62]]));_0x7719x1b[_0xca5e[61]]= (_0x7719x1b[_0xca5e[61]][_0xca5e[63]])?_0x7719x1b[_0xca5e[61]]:_0x7719x29[_0xca5e[54]];if(!_0x7719x28[_0xca5e[58]][_0xca5e[65]](_0xca5e[64])){_0x7719x1b[_0xca5e[35]]= qs[_0xca5e[35]](_0x7719x28[_0xca5e[58]][_0xca5e[35]]);_0x7719x1b[_0xca5e[34]]= qs[_0xca5e[34]](_0x7719x28[_0xca5e[58]][_0xca5e[34]])};_0x7719x1b[_0xca5e[66]]= qs[_0xca5e[67]](_0x7719x28[_0xca5e[58]][_0xca5e[67]]);_0x7719x1b[_0xca5e[68]]= qs[_0xca5e[59]](_[_0xca5e[69]](_0x7719x28[_0xca5e[58]],_0x7719x29[_0xca5e[59]]));if(_0x7719x28[_0xca5e[58]][_0xca5e[70]]){_0x7719x1b[_0xca5e[68]]= _[_0xca5e[73]](_0x7719x1b[_0xca5e[68]],{$or:_[_0xca5e[72]](_0x7719x1b[_0xca5e[61]],function(_0x7719x2a){var _0x7719x2b={};_0x7719x2b[_0x7719x2a]= {$like:_0xca5e[71]+ _0x7719x28[_0xca5e[58]][_0xca5e[70]]+ _0xca5e[71]};return _0x7719x2b})})};_0x7719x1b= _[_0xca5e[73]]({},_0x7719x1b,_0x7719x28[_0xca5e[74]]);return db[_0xca5e[56]][_0xca5e[76]](_0x7719x1b)[_0xca5e[45]](respondWithFilteredResult(_0x7719x15,_0x7719x1b,_0xca5e[53]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[53]))};exports[_0xca5e[77]]= function(_0x7719x28,_0x7719x15){var _0x7719x1b={raw:true,where:{id:_0x7719x28[_0xca5e[79]][_0xca5e[78]]}},_0x7719x29={};_0x7719x29[_0xca5e[54]]= _[_0xca5e[57]](db[_0xca5e[56]][_0xca5e[55]]);_0x7719x29[_0xca5e[58]]= _[_0xca5e[57]](_0x7719x28[_0xca5e[58]]);_0x7719x29[_0xca5e[59]]= _[_0xca5e[60]](_0x7719x29[_0xca5e[54]],_0x7719x29[_0xca5e[58]]);_0x7719x1b[_0xca5e[61]]= _[_0xca5e[60]](_0x7719x29[_0xca5e[54]],qs[_0xca5e[62]](_0x7719x28[_0xca5e[58]][_0xca5e[62]]));_0x7719x1b[_0xca5e[61]]= (_0x7719x1b[_0xca5e[61]][_0xca5e[63]])?_0x7719x1b[_0xca5e[61]]:_0x7719x29[_0xca5e[54]];_0x7719x1b= _[_0xca5e[73]]({},_0x7719x1b,_0x7719x28[_0xca5e[74]]);return db[_0xca5e[56]][_0xca5e[80]](_0x7719x1b)[_0xca5e[45]](handleEntityNotFound(_0x7719x15,null,_0xca5e[77]))[_0xca5e[45]](respondWithResult(_0x7719x15,null,_0xca5e[77]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[77]))};exports[_0xca5e[81]]= function(_0x7719x28,_0x7719x15){return db[_0xca5e[56]][_0xca5e[81]](_0x7719x28[_0xca5e[82]],{})[_0xca5e[45]](respondWithResult(_0x7719x15,201,_0xca5e[81]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[81]))};exports[_0xca5e[46]]= function(_0x7719x28,_0x7719x15){if(_0x7719x28[_0xca5e[82]][_0xca5e[78]]){delete _0x7719x28[_0xca5e[82]][_0xca5e[78]]};return db[_0xca5e[56]][_0xca5e[80]]({where:{id:_0x7719x28[_0xca5e[79]][_0xca5e[78]]}})[_0xca5e[45]](handleEntityNotFound(_0x7719x15,null,_0xca5e[46]))[_0xca5e[45]](saveUpdates(_0x7719x28[_0xca5e[82]],null,_0xca5e[46]))[_0xca5e[45]](respondWithResult(_0x7719x15,null,_0xca5e[46]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[46]))};exports[_0xca5e[48]]= function(_0x7719x28,_0x7719x15){return db[_0xca5e[56]][_0xca5e[80]]({where:{id:_0x7719x28[_0xca5e[79]][_0xca5e[78]]}})[_0xca5e[45]](handleEntityNotFound(_0x7719x15,null,_0xca5e[48]))[_0xca5e[45]](removeEntity(_0x7719x15,null,_0xca5e[48]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[48]))};exports[_0xca5e[83]]= function(_0x7719x28,_0x7719x15){var _0x7719x2c=10;var _0x7719x2d={"\x53\x55\x4D":_0xca5e[84],"\x43\x4F\x55\x4E\x54":_0xca5e[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xca5e[86],"\x4D\x41\x58":_0xca5e[87],"\x4D\x49\x4E":_0xca5e[88],"\x41\x56\x47":_0xca5e[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xca5e[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xca5e[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xca5e[92]};var _0x7719x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xca5e[93],"\x44\x41\x54\x45":_0xca5e[94],"\x48\x4F\x55\x52":_0xca5e[95],"\x52\x4F\x55\x4E\x44":_0xca5e[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xca5e[97]};var _0x7719x2f=function(_0x7719x30){return !_[_0xca5e[102]]([_0xca5e[98],_0xca5e[99],_0xca5e[100],_0xca5e[101]],_0x7719x30)};var _0x7719x31=function(_0x7719x32){if(!_0x7719x32||  !_0x7719x32[_0xca5e[103]][_0xca5e[63]]){return _0xca5e[104]};for(var _0x7719x33=_0xca5e[105],_0x7719x34=0;_0x7719x34< _0x7719x32[_0xca5e[103]][_0xca5e[63]];_0x7719x34+= 1){_0x7719x34> 0&& (_0x7719x33+= _0xca5e[106]+ _0x7719x32[_0xca5e[107]]+ _0xca5e[106]);_0x7719x33+= _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[108]]?_0x7719x31(_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[108]]):_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[109]]+ _0xca5e[106]+ _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[110]]+ (_0x7719x2f(_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[110]])?_0xca5e[106]+ _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[111]]:_0xca5e[104])};return _0x7719x33+ _0xca5e[112]};var _0x7719x1b={where:{id:_0x7719x28[_0xca5e[79]][_0xca5e[78]]}},_0x7719x35,_0x7719x36,_0x7719x37,_0x7719x38,_0x7719x39;_0x7719x1b= _[_0xca5e[73]]({},_0x7719x1b,_0x7719x28[_0xca5e[74]]);return db[_0xca5e[56]][_0xca5e[80]](_0x7719x1b)[_0xca5e[45]](handleEntityNotFound(_0x7719x15,null,_0xca5e[83]))[_0xca5e[45]](function(_0x7719x18){if(_0x7719x18){_0x7719x35= _0x7719x18;return _0x7719x18[_0xca5e[138]]()};return null})[_0xca5e[45]](function(_0x7719x3a){if(_0x7719x3a){if(!_0x7719x3a[_0xca5e[63]]){throw  new db[_0xca5e[135]].ValidationError(_0xca5e[134])};_0x7719x36= _0x7719x3a;return db[_0xca5e[137]][_0xca5e[136]]({raw:true})};return null})[_0xca5e[45]](function(_0x7719x3a){if(_0x7719x3a){_0x7719x37= _[_0xca5e[113]](_0x7719x3a,_0xca5e[78]);var _0x7719x3b;var _0x7719x3c=squel[_0xca5e[114]]();_0x7719x3c[_0xca5e[116]](_0x7719x35[_0xca5e[115]]);for(var _0x7719x34=0;_0x7719x34< _0x7719x36[_0xca5e[63]];_0x7719x34+= 1){_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[117]]?_0x7719x37[_0x7719x36[_0x7719x34][_0xca5e[117]]][_0xca5e[118]]:_0x7719x36[_0x7719x34][_0xca5e[109]];_0x7719x36[_0x7719x34][_0xca5e[119]]&& _0x7719x3c[_0xca5e[108]](_0x7719x36[_0x7719x34][_0xca5e[109]]);_0x7719x36[_0x7719x34][_0xca5e[120]]&& _0x7719x3c[_0xca5e[66]](_0x7719x36[_0x7719x34][_0xca5e[109]],_0x7719x36[_0x7719x34][_0xca5e[120]]=== _0xca5e[121]?false:true);_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[122]]?_[_0xca5e[124]](_0x7719x2d[_0x7719x36[_0x7719x34][_0xca5e[122]]],_0xca5e[123],_0x7719x36[_0x7719x34][_0xca5e[109]]):_0x7719x3b;_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[125]]?_[_0xca5e[124]](_0x7719x2e[_0x7719x36[_0x7719x34][_0xca5e[125]]],_0xca5e[123],_0x7719x3b):_0x7719x3b;_0x7719x3c[_0xca5e[109]](_0x7719x3b,_0x7719x36[_0x7719x34][_0xca5e[126]]|| _0x7719x3b)};_0x7719x35[_0xca5e[127]]&& _0x7719x3c[_0xca5e[68]](_0x7719x31(JSON[_0xca5e[128]](_0x7719x35[_0xca5e[127]])[_0xca5e[108]]));_0x7719x39= _0x7719x3c[_0xca5e[129]]();_0x7719x3c[_0xca5e[35]](_0x7719x2c);_0x7719x3c[_0xca5e[34]](0);logger[_0xca5e[24]](_0xca5e[130],_0x7719x3c.toString());return db[_0xca5e[133]][_0xca5e[58]](_0x7719x3c.toString(),{type:db[_0xca5e[133]][_0xca5e[132]][_0xca5e[131]]})}})[_0xca5e[45]](respondWithResult(_0x7719x15,null,_0xca5e[83]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[83]))};exports[_0xca5e[139]]= function(_0x7719x28,_0x7719x15){var _0x7719x2c=10;var _0x7719x2d={"\x53\x55\x4D":_0xca5e[84],"\x43\x4F\x55\x4E\x54":_0xca5e[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xca5e[86],"\x4D\x41\x58":_0xca5e[87],"\x4D\x49\x4E":_0xca5e[88],"\x41\x56\x47":_0xca5e[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xca5e[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xca5e[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xca5e[92]};var _0x7719x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xca5e[93],"\x44\x41\x54\x45":_0xca5e[94],"\x48\x4F\x55\x52":_0xca5e[95],"\x52\x4F\x55\x4E\x44":_0xca5e[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xca5e[97]};var _0x7719x2f=function(_0x7719x30){return !_[_0xca5e[102]]([_0xca5e[98],_0xca5e[99],_0xca5e[100],_0xca5e[101]],_0x7719x30)};var _0x7719x31=function(_0x7719x32){if(!_0x7719x32||  !_0x7719x32[_0xca5e[103]][_0xca5e[63]]){return _0xca5e[104]};for(var _0x7719x33=_0xca5e[105],_0x7719x34=0;_0x7719x34< _0x7719x32[_0xca5e[103]][_0xca5e[63]];_0x7719x34+= 1){_0x7719x34> 0&& (_0x7719x33+= _0xca5e[106]+ _0x7719x32[_0xca5e[107]]+ _0xca5e[106]);_0x7719x33+= _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[108]]?_0x7719x31(_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[108]]):_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[109]]+ _0xca5e[106]+ _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[110]]+ (_0x7719x2f(_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[110]])?_0xca5e[106]+ _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[111]]:_0xca5e[104])};return _0x7719x33+ _0xca5e[112]};var _0x7719x1b={where:{id:_0x7719x28[_0xca5e[79]][_0xca5e[78]]}},_0x7719x35,_0x7719x36,_0x7719x37,_0x7719x38,_0x7719x39;_0x7719x1b= _[_0xca5e[73]]({},_0x7719x1b,_0x7719x28[_0xca5e[74]]);return db[_0xca5e[56]][_0xca5e[80]](_0x7719x1b)[_0xca5e[45]](handleEntityNotFound(_0x7719x15,null,_0xca5e[83]))[_0xca5e[45]](function(_0x7719x18){if(_0x7719x18){_0x7719x35= _0x7719x18;return _0x7719x18[_0xca5e[138]]()};return null})[_0xca5e[45]](function(_0x7719x3a){if(_0x7719x3a){if(!_0x7719x3a[_0xca5e[63]]){throw  new db[_0xca5e[135]].ValidationError(_0xca5e[134])};_0x7719x36= _0x7719x3a;return db[_0xca5e[137]][_0xca5e[136]]({raw:true})};return null})[_0xca5e[45]](function(_0x7719x3a){if(_0x7719x3a){_0x7719x37= _[_0xca5e[113]](_0x7719x3a,_0xca5e[78]);var _0x7719x3b;var _0x7719x3c=squel[_0xca5e[114]]();_0x7719x3c[_0xca5e[116]](_0x7719x35[_0xca5e[115]]);for(var _0x7719x34=0;_0x7719x34< _0x7719x36[_0xca5e[63]];_0x7719x34+= 1){_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[117]]?_0x7719x37[_0x7719x36[_0x7719x34][_0xca5e[117]]][_0xca5e[118]]:_0x7719x36[_0x7719x34][_0xca5e[109]];_0x7719x36[_0x7719x34][_0xca5e[119]]&& _0x7719x3c[_0xca5e[108]](_0x7719x36[_0x7719x34][_0xca5e[109]]);_0x7719x36[_0x7719x34][_0xca5e[120]]&& _0x7719x3c[_0xca5e[66]](_0x7719x36[_0x7719x34][_0xca5e[109]],_0x7719x36[_0x7719x34][_0xca5e[120]]=== _0xca5e[121]?false:true);_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[122]]?_[_0xca5e[124]](_0x7719x2d[_0x7719x36[_0x7719x34][_0xca5e[122]]],_0xca5e[123],_0x7719x36[_0x7719x34][_0xca5e[109]]):_0x7719x3b;_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[125]]?_[_0xca5e[124]](_0x7719x2e[_0x7719x36[_0x7719x34][_0xca5e[125]]],_0xca5e[123],_0x7719x3b):_0x7719x3b;_0x7719x3c[_0xca5e[109]](_0x7719x3b,_0x7719x36[_0x7719x34][_0xca5e[126]]|| _0x7719x3b)};_0x7719x35[_0xca5e[127]]&& _0x7719x3c[_0xca5e[68]](_0x7719x31(JSON[_0xca5e[128]](_0x7719x35[_0xca5e[127]])[_0xca5e[108]]));_0x7719x39= _0x7719x3c[_0xca5e[129]]();_0x7719x3c[_0xca5e[35]](_0x7719x2c);_0x7719x3c[_0xca5e[34]](0);logger[_0xca5e[24]](_0xca5e[130],_0x7719x3c.toString());return db[_0xca5e[133]][_0xca5e[58]](_0x7719x3c.toString(),{type:db[_0xca5e[133]][_0xca5e[132]][_0xca5e[131]]})}})[_0xca5e[45]](function(_0x7719x3a){if(!_0x7719x3a[_0xca5e[63]]){throw  new db[_0xca5e[135]].ValidationError(_0xca5e[151])};var _0x7719x3d=_[_0xca5e[73]](_0x7719x28[_0xca5e[58]],{name:_0x7719x28[_0xca5e[58]][_0xca5e[51]]|| _0x7719x35[_0xca5e[51]],savename:util[_0xca5e[125]](_0xca5e[152],_0x7719x28[_0xca5e[58]][_0xca5e[51]]|| _0x7719x35[_0xca5e[51]],require(_0xca5e[154])[_0xca5e[153]](4),_0x7719x28[_0xca5e[58]][_0xca5e[145]]|| _0xca5e[155])});return db[_0xca5e[156]][_0xca5e[81]](_0x7719x3d,{raw:true})})[_0xca5e[45]](function(_0x7719x18){if(_0x7719x18){_0x7719x39[_0xca5e[68]](_0xca5e[140],_0x7719x18[_0xca5e[141]],_0x7719x18[_0xca5e[142]]);logger[_0xca5e[24]](_0xca5e[143],_0x7719x39.toString());require(_0xca5e[150])[_0xca5e[149]](path[_0xca5e[146]](__dirname,_0xca5e[144],_0x7719x18[_0xca5e[145]]),[_0x7719x18[_0xca5e[78]],_0x7719x39.toString(),path[_0xca5e[146]](__dirname,_0xca5e[147],_0x7719x18[_0xca5e[148]])]);return _0x7719x18};return null})[_0xca5e[45]](respondWithResult(_0x7719x15,null,_0xca5e[139]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[139]))};exports[_0xca5e[58]]= function(_0x7719x28,_0x7719x15){var _0x7719x2c=10;var _0x7719x2d={"\x53\x55\x4D":_0xca5e[84],"\x43\x4F\x55\x4E\x54":_0xca5e[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xca5e[86],"\x4D\x41\x58":_0xca5e[87],"\x4D\x49\x4E":_0xca5e[88],"\x41\x56\x47":_0xca5e[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xca5e[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xca5e[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xca5e[92]};var _0x7719x2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xca5e[93],"\x44\x41\x54\x45":_0xca5e[94],"\x48\x4F\x55\x52":_0xca5e[95],"\x52\x4F\x55\x4E\x44":_0xca5e[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xca5e[97]};var _0x7719x2f=function(_0x7719x30){return !_[_0xca5e[102]]([_0xca5e[98],_0xca5e[99],_0xca5e[100],_0xca5e[101]],_0x7719x30)};var _0x7719x31=function(_0x7719x32){if(!_0x7719x32||  !_0x7719x32[_0xca5e[103]][_0xca5e[63]]){return _0xca5e[104]};for(var _0x7719x33=_0xca5e[105],_0x7719x34=0;_0x7719x34< _0x7719x32[_0xca5e[103]][_0xca5e[63]];_0x7719x34+= 1){_0x7719x34> 0&& (_0x7719x33+= _0xca5e[106]+ _0x7719x32[_0xca5e[107]]+ _0xca5e[106]);_0x7719x33+= _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[108]]?_0x7719x31(_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[108]]):_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[109]]+ _0xca5e[106]+ _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[110]]+ (_0x7719x2f(_0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[110]])?_0xca5e[106]+ _0x7719x32[_0xca5e[103]][_0x7719x34][_0xca5e[111]]:_0xca5e[104])};return _0x7719x33+ _0xca5e[112]};var _0x7719x1b={where:{id:_0x7719x28[_0xca5e[79]][_0xca5e[78]]}},_0x7719x35,_0x7719x36,_0x7719x37,_0x7719x38,_0x7719x39;_0x7719x1b= _[_0xca5e[73]]({},_0x7719x1b,_0x7719x28[_0xca5e[74]]);return db[_0xca5e[56]][_0xca5e[80]](_0x7719x1b)[_0xca5e[45]](handleEntityNotFound(_0x7719x15,null,_0xca5e[83]))[_0xca5e[45]](function(_0x7719x18){if(_0x7719x18){_0x7719x35= _0x7719x18;return _0x7719x18[_0xca5e[138]]()};return null})[_0xca5e[45]](function(_0x7719x3a){if(_0x7719x3a){if(!_0x7719x3a[_0xca5e[63]]){throw  new db[_0xca5e[135]].ValidationError(_0xca5e[134])};_0x7719x36= _0x7719x3a;return db[_0xca5e[137]][_0xca5e[136]]({raw:true})};return null})[_0xca5e[45]](function(_0x7719x3a){if(_0x7719x3a){_0x7719x37= _[_0xca5e[113]](_0x7719x3a,_0xca5e[78]);var _0x7719x3b;var _0x7719x3c=squel[_0xca5e[114]]();_0x7719x3c[_0xca5e[116]](_0x7719x35[_0xca5e[115]]);for(var _0x7719x34=0;_0x7719x34< _0x7719x36[_0xca5e[63]];_0x7719x34+= 1){_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[117]]?_0x7719x37[_0x7719x36[_0x7719x34][_0xca5e[117]]][_0xca5e[118]]:_0x7719x36[_0x7719x34][_0xca5e[109]];_0x7719x36[_0x7719x34][_0xca5e[119]]&& _0x7719x3c[_0xca5e[108]](_0x7719x36[_0x7719x34][_0xca5e[109]]);_0x7719x36[_0x7719x34][_0xca5e[120]]&& _0x7719x3c[_0xca5e[66]](_0x7719x36[_0x7719x34][_0xca5e[109]],_0x7719x36[_0x7719x34][_0xca5e[120]]=== _0xca5e[121]?false:true);_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[122]]?_[_0xca5e[124]](_0x7719x2d[_0x7719x36[_0x7719x34][_0xca5e[122]]],_0xca5e[123],_0x7719x36[_0x7719x34][_0xca5e[109]]):_0x7719x3b;_0x7719x3b= _0x7719x36[_0x7719x34][_0xca5e[125]]?_[_0xca5e[124]](_0x7719x2e[_0x7719x36[_0x7719x34][_0xca5e[125]]],_0xca5e[123],_0x7719x3b):_0x7719x3b;_0x7719x3c[_0xca5e[109]](_0x7719x3b,_0x7719x36[_0x7719x34][_0xca5e[126]]|| _0x7719x3b)};_0x7719x35[_0xca5e[127]]&& _0x7719x3c[_0xca5e[68]](_0x7719x31(JSON[_0xca5e[128]](_0x7719x35[_0xca5e[127]])[_0xca5e[108]]));_0x7719x39= _0x7719x3c[_0xca5e[129]]();_0x7719x3c[_0xca5e[35]](_0x7719x2c);_0x7719x3c[_0xca5e[34]](0);logger[_0xca5e[24]](_0xca5e[130],_0x7719x3c.toString());return db[_0xca5e[133]][_0xca5e[58]](_0x7719x3c.toString(),{type:db[_0xca5e[133]][_0xca5e[132]][_0xca5e[131]]})}})[_0xca5e[45]](function(){return {sql:_0x7719x39.toString()}})[_0xca5e[45]](respondWithResult(_0x7719x15,null,_0xca5e[58]))[_0xca5e[75]](handleError(_0x7719x15,null,_0xca5e[58]))}
\ No newline at end of file
+var _0x635d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x70\x72\x65\x76\x69\x65\x77","\x53\x55\x4D\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x4D\x41\x58\x28\x25\x73\x29","\x4D\x49\x4E\x28\x25\x73\x29","\x41\x56\x47\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x25\x73\x29","\x44\x41\x54\x45\x28\x25\x73\x29","\x48\x4F\x55\x52\x28\x25\x73\x29","\x52\x4F\x55\x4E\x44\x28\x25\x73\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x25\x73\x29","\x49\x53\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x45\x4D\x50\x54\x59","\x49\x53\x20\x4E\x4F\x54\x20\x45\x4D\x50\x54\x59","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x75\x6C\x65\x73","","\x28","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x76\x61\x6C\x75\x65","\x29","\x6B\x65\x79\x42\x79","\x73\x65\x6C\x65\x63\x74","\x74\x61\x62\x6C\x65","\x66\x72\x6F\x6D","\x4D\x65\x74\x72\x69\x63\x49\x64","\x6D\x65\x74\x72\x69\x63","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x44\x45\x53\x43","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x25\x73","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x6D\x61\x74","\x61\x6C\x69\x61\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x63\x6C\x6F\x6E\x65","\x4C\x69\x6D\x69\x74\x65\x64\x20\x51\x75\x65\x72\x79\x3A","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x50\x6C\x65\x61\x73\x65\x20\x69\x6E\x73\x65\x72\x74\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x66\x69\x65\x6C\x64\x21","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x75\x6E","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x42\x45\x54\x57\x45\x45\x4E\x20\x3F\x20\x41\x4E\x44\x20\x3F","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x52\x75\x6E\x20\x51\x75\x65\x72\x79\x3A","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x70\x6F\x72\x74\x2F","\x6F\x75\x74\x70\x75\x74","\x6A\x6F\x69\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x4E\x6F\x20\x44\x61\x74\x61\x21","\x25\x73\x2D\x25\x73\x2E\x25\x73","\x67\x65\x6E\x65\x72\x61\x74\x65","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x63\x73\x76","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74"];_0x635d[0];var jsonpatch=require(_0x635d[1]);var rp=require(_0x635d[2]);var moment=require(_0x635d[3]);var BPromise=require(_0x635d[4]);var util=require(_0x635d[5]);var path=require(_0x635d[6]);var sox=require(_0x635d[7]);var ejs=require(_0x635d[8]);var fs=require(_0x635d[9]);var _=require(_0x635d[10]);var squel=require(_0x635d[11]);var crypto=require(_0x635d[12]);var jsforce=require(_0x635d[13]);var toCsv=require(_0x635d[14]);var qs=require(_0x635d[15]);var logger=require(_0x635d[17])(_0x635d[16]);var utils=require(_0x635d[18]);var config=require(_0x635d[19]);var db=require(_0x635d[21])[_0x635d[20]];function respondWithStatusCode(_0x6befx15,_0x6befx16,_0x6befx17){_0x6befx16= _0x6befx16|| 204;return function(_0x6befx18){if(_0x6befx18){logger[_0x635d[24]](_0x635d[22],_0x6befx17,_0x6befx16,_0x635d[23]);logger[_0x635d[26]](_0x635d[25],_0x6befx17,_0x6befx16,_0x635d[23]);return _0x6befx15[_0x635d[27]](_0x6befx16)};return _0x6befx15[_0x635d[29]](304)[_0x635d[28]]()}}function respondWithResult(_0x6befx15,_0x6befx16,_0x6befx17){_0x6befx16= _0x6befx16|| 200;return function(_0x6befx18){if(_0x6befx18){logger[_0x635d[24]](_0x635d[22],_0x6befx17,_0x6befx16,_0x635d[30]);logger[_0x635d[26]](_0x635d[25],_0x6befx17,_0x6befx16,_0x635d[30],JSON[_0x635d[31]](_0x6befx18));return _0x6befx15[_0x635d[29]](_0x6befx16)[_0x635d[32]](_0x6befx18)};return _0x6befx15[_0x635d[29]](304)[_0x635d[28]]()}}function respondWithFilteredResult(_0x6befx15,_0x6befx1b,_0x6befx17){return function(_0x6befx18){if(_0x6befx18){var _0x6befx1c=_0x6befx18[_0x635d[33]],_0x6befx1d=_0x6befx1b[_0x635d[34]],_0x6befx1e=_0x6befx1b[_0x635d[34]]+ _0x6befx1b[_0x635d[35]],_0x6befx16;if(_0x6befx1e>= _0x6befx1c){_0x6befx1e= _0x6befx1c;_0x6befx16= 200}else {_0x6befx16= 206};_0x6befx15[_0x635d[29]](_0x6befx16);logger[_0x635d[24]](_0x635d[22],_0x6befx17,_0x6befx16,_0x635d[36]);logger[_0x635d[26]](_0x635d[25],_0x6befx17,_0x6befx16,_0x635d[30],JSON[_0x635d[31]](_0x6befx18));return _0x6befx15[_0x635d[40]](_0x635d[37],_0x6befx1d+ _0x635d[38]+ _0x6befx1e+ _0x635d[39]+ _0x6befx1c)[_0x635d[32]](_0x6befx18)};return null}}function patchUpdates(_0x6befx20){return function(_0x6befx18){try{jsonpatch[_0x635d[41]](_0x6befx18,_0x6befx20,true)}catch(err){return BPromise[_0x635d[42]](err)};return _0x6befx18[_0x635d[43]]()}}function saveUpdates(_0x6befx22,_0x6befx16,_0x6befx17){return function(_0x6befx18){if(_0x6befx18){return _0x6befx18[_0x635d[46]](_0x6befx22)[_0x635d[45]](function(_0x6befx23){logger[_0x635d[24]](_0x635d[22],_0x6befx17,_0x6befx16,_0x635d[44]);logger[_0x635d[26]](_0x635d[25],_0x6befx17,_0x6befx16,_0x635d[44],JSON[_0x635d[31]](_0x6befx18));return _0x6befx23})};return null}}function removeEntity(_0x6befx15,_0x6befx16,_0x6befx17){return function(_0x6befx18){if(_0x6befx18){return _0x6befx18[_0x635d[48]]()[_0x635d[45]](function(){logger[_0x635d[24]](_0x635d[22],_0x6befx17,_0x6befx16,_0x635d[47]);logger[_0x635d[26]](_0x635d[25],_0x6befx17,_0x6befx16,_0x635d[47],JSON[_0x635d[31]](_0x6befx18));_0x6befx15[_0x635d[29]](204)[_0x635d[28]]()})}}}function handleEntityNotFound(_0x6befx15,_0x6befx16,_0x6befx17){return function(_0x6befx18){if(!_0x6befx18){logger[_0x635d[50]](_0x635d[22],_0x6befx17,404,_0x635d[49]);_0x6befx15[_0x635d[29]](404)[_0x635d[28]]();return null};return _0x6befx18}}function handleError(_0x6befx15,_0x6befx16,_0x6befx17){_0x6befx16= _0x6befx16|| 500;return function(_0x6befx27){logger[_0x635d[50]](_0x635d[22],_0x6befx17,_0x6befx16,JSON[_0x635d[31]](_0x6befx27));delete _0x6befx27[_0x635d[51]];_0x6befx15[_0x635d[29]](_0x6befx16)[_0x635d[52]](_0x6befx27)}}exports[_0x635d[53]]= function(_0x6befx28,_0x6befx15){var _0x6befx1b={},_0x6befx29={};_0x6befx29[_0x635d[54]]= _[_0x635d[57]](db[_0x635d[56]][_0x635d[55]]);_0x6befx29[_0x635d[58]]= _[_0x635d[57]](_0x6befx28[_0x635d[58]]);_0x6befx29[_0x635d[59]]= _[_0x635d[60]](_0x6befx29[_0x635d[54]],_0x6befx29[_0x635d[58]]);_0x6befx1b[_0x635d[61]]= _[_0x635d[60]](_0x6befx29[_0x635d[54]],qs[_0x635d[62]](_0x6befx28[_0x635d[58]][_0x635d[62]]));_0x6befx1b[_0x635d[61]]= (_0x6befx1b[_0x635d[61]][_0x635d[63]])?_0x6befx1b[_0x635d[61]]:_0x6befx29[_0x635d[54]];if(!_0x6befx28[_0x635d[58]][_0x635d[65]](_0x635d[64])){_0x6befx1b[_0x635d[35]]= qs[_0x635d[35]](_0x6befx28[_0x635d[58]][_0x635d[35]]);_0x6befx1b[_0x635d[34]]= qs[_0x635d[34]](_0x6befx28[_0x635d[58]][_0x635d[34]])};_0x6befx1b[_0x635d[66]]= qs[_0x635d[67]](_0x6befx28[_0x635d[58]][_0x635d[67]]);_0x6befx1b[_0x635d[68]]= qs[_0x635d[59]](_[_0x635d[69]](_0x6befx28[_0x635d[58]],_0x6befx29[_0x635d[59]]));if(_0x6befx28[_0x635d[58]][_0x635d[70]]){_0x6befx1b[_0x635d[68]]= _[_0x635d[73]](_0x6befx1b[_0x635d[68]],{$or:_[_0x635d[72]](_0x6befx1b[_0x635d[61]],function(_0x6befx2a){var _0x6befx2b={};_0x6befx2b[_0x6befx2a]= {$like:_0x635d[71]+ _0x6befx28[_0x635d[58]][_0x635d[70]]+ _0x635d[71]};return _0x6befx2b})})};_0x6befx1b= _[_0x635d[73]]({},_0x6befx1b,_0x6befx28[_0x635d[74]]);return db[_0x635d[56]][_0x635d[76]](_0x6befx1b)[_0x635d[45]](respondWithFilteredResult(_0x6befx15,_0x6befx1b,_0x635d[53]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[53]))};exports[_0x635d[77]]= function(_0x6befx28,_0x6befx15){var _0x6befx1b={raw:true,where:{id:_0x6befx28[_0x635d[79]][_0x635d[78]]}},_0x6befx29={};_0x6befx29[_0x635d[54]]= _[_0x635d[57]](db[_0x635d[56]][_0x635d[55]]);_0x6befx29[_0x635d[58]]= _[_0x635d[57]](_0x6befx28[_0x635d[58]]);_0x6befx29[_0x635d[59]]= _[_0x635d[60]](_0x6befx29[_0x635d[54]],_0x6befx29[_0x635d[58]]);_0x6befx1b[_0x635d[61]]= _[_0x635d[60]](_0x6befx29[_0x635d[54]],qs[_0x635d[62]](_0x6befx28[_0x635d[58]][_0x635d[62]]));_0x6befx1b[_0x635d[61]]= (_0x6befx1b[_0x635d[61]][_0x635d[63]])?_0x6befx1b[_0x635d[61]]:_0x6befx29[_0x635d[54]];_0x6befx1b= _[_0x635d[73]]({},_0x6befx1b,_0x6befx28[_0x635d[74]]);return db[_0x635d[56]][_0x635d[80]](_0x6befx1b)[_0x635d[45]](handleEntityNotFound(_0x6befx15,null,_0x635d[77]))[_0x635d[45]](respondWithResult(_0x6befx15,null,_0x635d[77]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[77]))};exports[_0x635d[81]]= function(_0x6befx28,_0x6befx15){return db[_0x635d[56]][_0x635d[81]](_0x6befx28[_0x635d[82]],{})[_0x635d[45]](respondWithResult(_0x6befx15,201,_0x635d[81]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[81]))};exports[_0x635d[46]]= function(_0x6befx28,_0x6befx15){if(_0x6befx28[_0x635d[82]][_0x635d[78]]){delete _0x6befx28[_0x635d[82]][_0x635d[78]]};return db[_0x635d[56]][_0x635d[80]]({where:{id:_0x6befx28[_0x635d[79]][_0x635d[78]]}})[_0x635d[45]](handleEntityNotFound(_0x6befx15,null,_0x635d[46]))[_0x635d[45]](saveUpdates(_0x6befx28[_0x635d[82]],null,_0x635d[46]))[_0x635d[45]](respondWithResult(_0x6befx15,null,_0x635d[46]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[46]))};exports[_0x635d[48]]= function(_0x6befx28,_0x6befx15){return db[_0x635d[56]][_0x635d[80]]({where:{id:_0x6befx28[_0x635d[79]][_0x635d[78]]}})[_0x635d[45]](handleEntityNotFound(_0x6befx15,null,_0x635d[48]))[_0x635d[45]](removeEntity(_0x6befx15,null,_0x635d[48]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[48]))};exports[_0x635d[83]]= function(_0x6befx28,_0x6befx15){var _0x6befx2c=10;var _0x6befx2d={"\x53\x55\x4D":_0x635d[84],"\x43\x4F\x55\x4E\x54":_0x635d[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x635d[86],"\x4D\x41\x58":_0x635d[87],"\x4D\x49\x4E":_0x635d[88],"\x41\x56\x47":_0x635d[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x635d[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x635d[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x635d[92]};var _0x6befx2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x635d[93],"\x44\x41\x54\x45":_0x635d[94],"\x48\x4F\x55\x52":_0x635d[95],"\x52\x4F\x55\x4E\x44":_0x635d[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x635d[97]};var _0x6befx2f=function(_0x6befx30){return !_[_0x635d[102]]([_0x635d[98],_0x635d[99],_0x635d[100],_0x635d[101]],_0x6befx30)};var _0x6befx31=function(_0x6befx32){if(!_0x6befx32||  !_0x6befx32[_0x635d[103]][_0x635d[63]]){return _0x635d[104]};for(var _0x6befx33=_0x635d[105],_0x6befx34=0;_0x6befx34< _0x6befx32[_0x635d[103]][_0x635d[63]];_0x6befx34+= 1){_0x6befx34> 0&& (_0x6befx33+= _0x635d[106]+ _0x6befx32[_0x635d[107]]+ _0x635d[106]);_0x6befx33+= _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[108]]?_0x6befx31(_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[108]]):_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[109]]+ _0x635d[106]+ _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[110]]+ (_0x6befx2f(_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[110]])?_0x635d[106]+ _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[111]]:_0x635d[104])};return _0x6befx33+ _0x635d[112]};var _0x6befx1b={where:{id:_0x6befx28[_0x635d[79]][_0x635d[78]]}},_0x6befx35,_0x6befx36,_0x6befx37,_0x6befx38,_0x6befx39;_0x6befx1b= _[_0x635d[73]]({},_0x6befx1b,_0x6befx28[_0x635d[74]]);return db[_0x635d[56]][_0x635d[80]](_0x6befx1b)[_0x635d[45]](handleEntityNotFound(_0x6befx15,null,_0x635d[83]))[_0x635d[45]](function(_0x6befx18){if(_0x6befx18){_0x6befx35= _0x6befx18;return _0x6befx18[_0x635d[138]]()};return null})[_0x635d[45]](function(_0x6befx3a){if(_0x6befx3a){if(!_0x6befx3a[_0x635d[63]]){throw  new db[_0x635d[135]].ValidationError(_0x635d[134])};_0x6befx36= _0x6befx3a;return db[_0x635d[137]][_0x635d[136]]({raw:true})};return null})[_0x635d[45]](function(_0x6befx3a){if(_0x6befx3a){_0x6befx37= _[_0x635d[113]](_0x6befx3a,_0x635d[78]);var _0x6befx3b;var _0x6befx3c=squel[_0x635d[114]]();_0x6befx3c[_0x635d[116]](_0x6befx35[_0x635d[115]]);for(var _0x6befx34=0;_0x6befx34< _0x6befx36[_0x635d[63]];_0x6befx34+= 1){_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[117]]?_0x6befx37[_0x6befx36[_0x6befx34][_0x635d[117]]][_0x635d[118]]:_0x6befx36[_0x6befx34][_0x635d[109]];_0x6befx36[_0x6befx34][_0x635d[119]]&& _0x6befx3c[_0x635d[108]](_0x6befx36[_0x6befx34][_0x635d[109]]);_0x6befx36[_0x6befx34][_0x635d[120]]&& _0x6befx3c[_0x635d[66]](_0x6befx36[_0x6befx34][_0x635d[109]],_0x6befx36[_0x6befx34][_0x635d[120]]=== _0x635d[121]?false:true);_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[122]]?_[_0x635d[124]](_0x6befx2d[_0x6befx36[_0x6befx34][_0x635d[122]]],_0x635d[123],_0x6befx36[_0x6befx34][_0x635d[109]]):_0x6befx3b;_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[125]]?_[_0x635d[124]](_0x6befx2e[_0x6befx36[_0x6befx34][_0x635d[125]]],_0x635d[123],_0x6befx3b):_0x6befx3b;_0x6befx3c[_0x635d[109]](_0x6befx3b,_0x6befx36[_0x6befx34][_0x635d[126]]|| _0x6befx3b)};_0x6befx35[_0x635d[127]]&& _0x6befx3c[_0x635d[68]](_0x6befx31(JSON[_0x635d[128]](_0x6befx35[_0x635d[127]])[_0x635d[108]]));_0x6befx39= _0x6befx3c[_0x635d[129]]();_0x6befx3c[_0x635d[35]](_0x6befx2c);_0x6befx3c[_0x635d[34]](0);logger[_0x635d[24]](_0x635d[130],_0x6befx3c.toString());return db[_0x635d[133]][_0x635d[58]](_0x6befx3c.toString(),{type:db[_0x635d[133]][_0x635d[132]][_0x635d[131]]})}})[_0x635d[45]](respondWithResult(_0x6befx15,null,_0x635d[83]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[83]))};exports[_0x635d[139]]= function(_0x6befx28,_0x6befx15){var _0x6befx2c=10;var _0x6befx2d={"\x53\x55\x4D":_0x635d[84],"\x43\x4F\x55\x4E\x54":_0x635d[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x635d[86],"\x4D\x41\x58":_0x635d[87],"\x4D\x49\x4E":_0x635d[88],"\x41\x56\x47":_0x635d[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x635d[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x635d[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x635d[92]};var _0x6befx2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x635d[93],"\x44\x41\x54\x45":_0x635d[94],"\x48\x4F\x55\x52":_0x635d[95],"\x52\x4F\x55\x4E\x44":_0x635d[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x635d[97]};var _0x6befx2f=function(_0x6befx30){return !_[_0x635d[102]]([_0x635d[98],_0x635d[99],_0x635d[100],_0x635d[101]],_0x6befx30)};var _0x6befx31=function(_0x6befx32){if(!_0x6befx32||  !_0x6befx32[_0x635d[103]][_0x635d[63]]){return _0x635d[104]};for(var _0x6befx33=_0x635d[105],_0x6befx34=0;_0x6befx34< _0x6befx32[_0x635d[103]][_0x635d[63]];_0x6befx34+= 1){_0x6befx34> 0&& (_0x6befx33+= _0x635d[106]+ _0x6befx32[_0x635d[107]]+ _0x635d[106]);_0x6befx33+= _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[108]]?_0x6befx31(_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[108]]):_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[109]]+ _0x635d[106]+ _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[110]]+ (_0x6befx2f(_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[110]])?_0x635d[106]+ _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[111]]:_0x635d[104])};return _0x6befx33+ _0x635d[112]};var _0x6befx1b={where:{id:_0x6befx28[_0x635d[79]][_0x635d[78]]}},_0x6befx35,_0x6befx36,_0x6befx37,_0x6befx38,_0x6befx39;_0x6befx1b= _[_0x635d[73]]({},_0x6befx1b,_0x6befx28[_0x635d[74]]);return db[_0x635d[56]][_0x635d[80]](_0x6befx1b)[_0x635d[45]](handleEntityNotFound(_0x6befx15,null,_0x635d[83]))[_0x635d[45]](function(_0x6befx18){if(_0x6befx18){_0x6befx35= _0x6befx18;return _0x6befx18[_0x635d[138]]()};return null})[_0x635d[45]](function(_0x6befx3a){if(_0x6befx3a){if(!_0x6befx3a[_0x635d[63]]){throw  new db[_0x635d[135]].ValidationError(_0x635d[134])};_0x6befx36= _0x6befx3a;return db[_0x635d[137]][_0x635d[136]]({raw:true})};return null})[_0x635d[45]](function(_0x6befx3a){if(_0x6befx3a){_0x6befx37= _[_0x635d[113]](_0x6befx3a,_0x635d[78]);var _0x6befx3b;var _0x6befx3c=squel[_0x635d[114]]();_0x6befx3c[_0x635d[116]](_0x6befx35[_0x635d[115]]);for(var _0x6befx34=0;_0x6befx34< _0x6befx36[_0x635d[63]];_0x6befx34+= 1){_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[117]]?_0x6befx37[_0x6befx36[_0x6befx34][_0x635d[117]]][_0x635d[118]]:_0x6befx36[_0x6befx34][_0x635d[109]];_0x6befx36[_0x6befx34][_0x635d[119]]&& _0x6befx3c[_0x635d[108]](_0x6befx36[_0x6befx34][_0x635d[109]]);_0x6befx36[_0x6befx34][_0x635d[120]]&& _0x6befx3c[_0x635d[66]](_0x6befx36[_0x6befx34][_0x635d[109]],_0x6befx36[_0x6befx34][_0x635d[120]]=== _0x635d[121]?false:true);_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[122]]?_[_0x635d[124]](_0x6befx2d[_0x6befx36[_0x6befx34][_0x635d[122]]],_0x635d[123],_0x6befx36[_0x6befx34][_0x635d[109]]):_0x6befx3b;_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[125]]?_[_0x635d[124]](_0x6befx2e[_0x6befx36[_0x6befx34][_0x635d[125]]],_0x635d[123],_0x6befx3b):_0x6befx3b;_0x6befx3c[_0x635d[109]](_0x6befx3b,_0x6befx36[_0x6befx34][_0x635d[126]]|| _0x6befx3b)};_0x6befx35[_0x635d[127]]&& _0x6befx3c[_0x635d[68]](_0x6befx31(JSON[_0x635d[128]](_0x6befx35[_0x635d[127]])[_0x635d[108]]));_0x6befx39= _0x6befx3c[_0x635d[129]]();_0x6befx3c[_0x635d[35]](_0x6befx2c);_0x6befx3c[_0x635d[34]](0);logger[_0x635d[24]](_0x635d[130],_0x6befx3c.toString());return db[_0x635d[133]][_0x635d[58]](_0x6befx3c.toString(),{type:db[_0x635d[133]][_0x635d[132]][_0x635d[131]]})}})[_0x635d[45]](function(_0x6befx3a){if(!_0x6befx3a[_0x635d[63]]){throw  new db[_0x635d[135]].ValidationError(_0x635d[151])};var _0x6befx3d=_[_0x635d[73]](_0x6befx28[_0x635d[58]],{name:_0x6befx28[_0x635d[58]][_0x635d[51]]|| _0x6befx35[_0x635d[51]],savename:util[_0x635d[125]](_0x635d[152],_0x6befx28[_0x635d[58]][_0x635d[51]]|| _0x6befx35[_0x635d[51]],require(_0x635d[154])[_0x635d[153]](4),_0x6befx28[_0x635d[58]][_0x635d[145]]|| _0x635d[155])});return db[_0x635d[156]][_0x635d[81]](_0x6befx3d,{raw:true})})[_0x635d[45]](function(_0x6befx18){if(_0x6befx18){_0x6befx39[_0x635d[68]](_0x635d[140],_0x6befx18[_0x635d[141]],_0x6befx18[_0x635d[142]]);logger[_0x635d[24]](_0x635d[143],_0x6befx39.toString());require(_0x635d[150])[_0x635d[149]](path[_0x635d[146]](__dirname,_0x635d[144],_0x6befx18[_0x635d[145]]),[_0x6befx18[_0x635d[78]],_0x6befx39.toString(),path[_0x635d[146]](__dirname,_0x635d[147],_0x6befx18[_0x635d[148]])]);return _0x6befx18};return null})[_0x635d[45]](respondWithResult(_0x6befx15,null,_0x635d[139]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[139]))};exports[_0x635d[58]]= function(_0x6befx28,_0x6befx15){var _0x6befx2c=10;var _0x6befx2d={"\x53\x55\x4D":_0x635d[84],"\x43\x4F\x55\x4E\x54":_0x635d[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x635d[86],"\x4D\x41\x58":_0x635d[87],"\x4D\x49\x4E":_0x635d[88],"\x41\x56\x47":_0x635d[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x635d[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x635d[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x635d[92]};var _0x6befx2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x635d[93],"\x44\x41\x54\x45":_0x635d[94],"\x48\x4F\x55\x52":_0x635d[95],"\x52\x4F\x55\x4E\x44":_0x635d[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x635d[97]};var _0x6befx2f=function(_0x6befx30){return !_[_0x635d[102]]([_0x635d[98],_0x635d[99],_0x635d[100],_0x635d[101]],_0x6befx30)};var _0x6befx31=function(_0x6befx32){if(!_0x6befx32||  !_0x6befx32[_0x635d[103]][_0x635d[63]]){return _0x635d[104]};for(var _0x6befx33=_0x635d[105],_0x6befx34=0;_0x6befx34< _0x6befx32[_0x635d[103]][_0x635d[63]];_0x6befx34+= 1){_0x6befx34> 0&& (_0x6befx33+= _0x635d[106]+ _0x6befx32[_0x635d[107]]+ _0x635d[106]);_0x6befx33+= _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[108]]?_0x6befx31(_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[108]]):_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[109]]+ _0x635d[106]+ _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[110]]+ (_0x6befx2f(_0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[110]])?_0x635d[106]+ _0x6befx32[_0x635d[103]][_0x6befx34][_0x635d[111]]:_0x635d[104])};return _0x6befx33+ _0x635d[112]};var _0x6befx1b={where:{id:_0x6befx28[_0x635d[79]][_0x635d[78]]}},_0x6befx35,_0x6befx36,_0x6befx37,_0x6befx38,_0x6befx39;_0x6befx1b= _[_0x635d[73]]({},_0x6befx1b,_0x6befx28[_0x635d[74]]);return db[_0x635d[56]][_0x635d[80]](_0x6befx1b)[_0x635d[45]](handleEntityNotFound(_0x6befx15,null,_0x635d[83]))[_0x635d[45]](function(_0x6befx18){if(_0x6befx18){_0x6befx35= _0x6befx18;return _0x6befx18[_0x635d[138]]()};return null})[_0x635d[45]](function(_0x6befx3a){if(_0x6befx3a){if(!_0x6befx3a[_0x635d[63]]){throw  new db[_0x635d[135]].ValidationError(_0x635d[134])};_0x6befx36= _0x6befx3a;return db[_0x635d[137]][_0x635d[136]]({raw:true})};return null})[_0x635d[45]](function(_0x6befx3a){if(_0x6befx3a){_0x6befx37= _[_0x635d[113]](_0x6befx3a,_0x635d[78]);var _0x6befx3b;var _0x6befx3c=squel[_0x635d[114]]();_0x6befx3c[_0x635d[116]](_0x6befx35[_0x635d[115]]);for(var _0x6befx34=0;_0x6befx34< _0x6befx36[_0x635d[63]];_0x6befx34+= 1){_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[117]]?_0x6befx37[_0x6befx36[_0x6befx34][_0x635d[117]]][_0x635d[118]]:_0x6befx36[_0x6befx34][_0x635d[109]];_0x6befx36[_0x6befx34][_0x635d[119]]&& _0x6befx3c[_0x635d[108]](_0x6befx36[_0x6befx34][_0x635d[109]]);_0x6befx36[_0x6befx34][_0x635d[120]]&& _0x6befx3c[_0x635d[66]](_0x6befx36[_0x6befx34][_0x635d[109]],_0x6befx36[_0x6befx34][_0x635d[120]]=== _0x635d[121]?false:true);_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[122]]?_[_0x635d[124]](_0x6befx2d[_0x6befx36[_0x6befx34][_0x635d[122]]],_0x635d[123],_0x6befx36[_0x6befx34][_0x635d[109]]):_0x6befx3b;_0x6befx3b= _0x6befx36[_0x6befx34][_0x635d[125]]?_[_0x635d[124]](_0x6befx2e[_0x6befx36[_0x6befx34][_0x635d[125]]],_0x635d[123],_0x6befx3b):_0x6befx3b;_0x6befx3c[_0x635d[109]](_0x6befx3b,_0x6befx36[_0x6befx34][_0x635d[126]]|| _0x6befx3b)};_0x6befx35[_0x635d[127]]&& _0x6befx3c[_0x635d[68]](_0x6befx31(JSON[_0x635d[128]](_0x6befx35[_0x635d[127]])[_0x635d[108]]));_0x6befx39= _0x6befx3c[_0x635d[129]]();_0x6befx3c[_0x635d[35]](_0x6befx2c);_0x6befx3c[_0x635d[34]](0);logger[_0x635d[24]](_0x635d[130],_0x6befx3c.toString());return db[_0x635d[133]][_0x635d[58]](_0x6befx3c.toString(),{type:db[_0x635d[133]][_0x635d[132]][_0x635d[131]]})}})[_0x635d[45]](function(){return {sql:_0x6befx39.toString()}})[_0x635d[45]](respondWithResult(_0x6befx15,null,_0x635d[58]))[_0x635d[75]](handleError(_0x6befx15,null,_0x635d[58]))}
\ No newline at end of file
index e3f9f4d..ba77552 100644 (file)
@@ -1 +1 @@
-var _0xb620=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xb620[0];var _=require(_0xb620[1]);var util=require(_0xb620[2]);var logger=require(_0xb620[4])(_0xb620[3]);var attributes=require(_0xb620[5]);module[_0xb620[6]]= function(_0x3001x5,_0x3001x6){return _0x3001x5[_0xb620[9]](_0xb620[7],attributes,{tableName:_0xb620[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xf9f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xf9f1[0];var _=require(_0xf9f1[1]);var util=require(_0xf9f1[2]);var logger=require(_0xf9f1[4])(_0xf9f1[3]);var attributes=require(_0xf9f1[5]);module[_0xf9f1[6]]= function(_0x5af6x5,_0x5af6x6){return _0x5af6x5[_0xf9f1[9]](_0xf9f1[7],attributes,{tableName:_0xf9f1[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index d7873ad..0e8bb7a 100644 (file)
@@ -1 +1 @@
-var _0xf2ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf2ae[0];var _=require(_0xf2ae[1]);var util=require(_0xf2ae[2]);var moment=require(_0xf2ae[3]);var BPromise=require(_0xf2ae[4]);var db=require(_0xf2ae[6])[_0xf2ae[5]];var utils=require(_0xf2ae[7]);var logger=require(_0xf2ae[9])(_0xf2ae[8]);var jayson=require(_0xf2ae[10]);var client=jayson[_0xf2ae[12]][_0xf2ae[11]]({port:9002});function respondWithRpcPromise(_0xcec8xb,_0xcec8xc,_0xcec8xd){return  new BPromise(function(_0xcec8xe,_0xcec8xf){return client[_0xf2ae[25]](_0xcec8xb,_0xcec8xd)[_0xf2ae[24]](function(_0xcec8x11){logger[_0xf2ae[17]](_0xf2ae[13],_0xcec8xc,_0xf2ae[16]);logger[_0xf2ae[20]](_0xf2ae[18],_0xcec8xc,_0xf2ae[16],JSON[_0xf2ae[19]](_0xcec8x11));if(_0xcec8x11[_0xf2ae[14]]){if(_0xcec8x11[_0xf2ae[14]][_0xf2ae[21]]=== 500){logger[_0xf2ae[14]](_0xf2ae[13],_0xcec8xc,_0xcec8x11[_0xf2ae[14]][_0xf2ae[22]]);return _0xcec8xf(_0xcec8x11[_0xf2ae[14]][_0xf2ae[22]])};logger[_0xf2ae[14]](_0xf2ae[13],_0xcec8xc,_0xcec8x11[_0xf2ae[14]][_0xf2ae[22]]);return _0xcec8xe(_0xcec8x11[_0xf2ae[14]][_0xf2ae[22]])}else {logger[_0xf2ae[17]](_0xf2ae[13],_0xcec8xc,_0xf2ae[16]);_0xcec8xe(_0xcec8x11[_0xf2ae[23]][_0xf2ae[22]])}})[_0xf2ae[15]](function(_0xcec8x10){logger[_0xf2ae[14]](_0xf2ae[13],_0xcec8xc,_0xcec8x10);_0xcec8xf(_0xcec8x10)})})}
\ No newline at end of file
+var _0x154b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x154b[0];var _=require(_0x154b[1]);var util=require(_0x154b[2]);var moment=require(_0x154b[3]);var BPromise=require(_0x154b[4]);var db=require(_0x154b[6])[_0x154b[5]];var utils=require(_0x154b[7]);var logger=require(_0x154b[9])(_0x154b[8]);var jayson=require(_0x154b[10]);var client=jayson[_0x154b[12]][_0x154b[11]]({port:9002});function respondWithRpcPromise(_0x3be2xb,_0x3be2xc,_0x3be2xd){return  new BPromise(function(_0x3be2xe,_0x3be2xf){return client[_0x154b[25]](_0x3be2xb,_0x3be2xd)[_0x154b[24]](function(_0x3be2x11){logger[_0x154b[17]](_0x154b[13],_0x3be2xc,_0x154b[16]);logger[_0x154b[20]](_0x154b[18],_0x3be2xc,_0x154b[16],JSON[_0x154b[19]](_0x3be2x11));if(_0x3be2x11[_0x154b[14]]){if(_0x3be2x11[_0x154b[14]][_0x154b[21]]=== 500){logger[_0x154b[14]](_0x154b[13],_0x3be2xc,_0x3be2x11[_0x154b[14]][_0x154b[22]]);return _0x3be2xf(_0x3be2x11[_0x154b[14]][_0x154b[22]])};logger[_0x154b[14]](_0x154b[13],_0x3be2xc,_0x3be2x11[_0x154b[14]][_0x154b[22]]);return _0x3be2xe(_0x3be2x11[_0x154b[14]][_0x154b[22]])}else {logger[_0x154b[17]](_0x154b[13],_0x3be2xc,_0x154b[16]);_0x3be2xe(_0x3be2x11[_0x154b[23]][_0x154b[22]])}})[_0x154b[15]](function(_0x3be2x10){logger[_0x154b[14]](_0x154b[13],_0x3be2xc,_0x3be2x10);_0x3be2xf(_0x3be2x10)})})}
\ No newline at end of file
index 22b4057..1f2c00d 100644 (file)
@@ -1 +1 @@
-var _0x668a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x72\x79","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x668a[0];var multer=require(_0x668a[1]);var util=require(_0x668a[2]);var path=require(_0x668a[3]);var express=require(_0x668a[4]);var router=express.Router();var auth=require(_0x668a[5]);var config=require(_0x668a[6]);var controller=require(_0x668a[7]);router[_0x668a[11]](_0x668a[8],auth[_0x668a[9]](),controller[_0x668a[10]]);router[_0x668a[11]](_0x668a[12],auth[_0x668a[9]](),controller[_0x668a[13]]);router[_0x668a[11]](_0x668a[14],auth[_0x668a[9]](),controller[_0x668a[15]]);router[_0x668a[11]](_0x668a[16],auth[_0x668a[9]](),controller[_0x668a[17]]);router[_0x668a[11]](_0x668a[18],auth[_0x668a[9]](),controller[_0x668a[19]]);router[_0x668a[21]](_0x668a[8],auth[_0x668a[9]](),controller[_0x668a[20]]);router[_0x668a[23]](_0x668a[12],auth[_0x668a[9]](),controller[_0x668a[22]]);router[_0x668a[25]](_0x668a[12],auth[_0x668a[9]](),controller[_0x668a[24]]);module[_0x668a[26]]= router
\ No newline at end of file
+var _0x53d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x72\x79","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x53d9[0];var multer=require(_0x53d9[1]);var util=require(_0x53d9[2]);var path=require(_0x53d9[3]);var express=require(_0x53d9[4]);var router=express.Router();var auth=require(_0x53d9[5]);var config=require(_0x53d9[6]);var controller=require(_0x53d9[7]);router[_0x53d9[11]](_0x53d9[8],auth[_0x53d9[9]](),controller[_0x53d9[10]]);router[_0x53d9[11]](_0x53d9[12],auth[_0x53d9[9]](),controller[_0x53d9[13]]);router[_0x53d9[11]](_0x53d9[14],auth[_0x53d9[9]](),controller[_0x53d9[15]]);router[_0x53d9[11]](_0x53d9[16],auth[_0x53d9[9]](),controller[_0x53d9[17]]);router[_0x53d9[11]](_0x53d9[18],auth[_0x53d9[9]](),controller[_0x53d9[19]]);router[_0x53d9[21]](_0x53d9[8],auth[_0x53d9[9]](),controller[_0x53d9[20]]);router[_0x53d9[23]](_0x53d9[12],auth[_0x53d9[9]](),controller[_0x53d9[22]]);router[_0x53d9[25]](_0x53d9[12],auth[_0x53d9[9]](),controller[_0x53d9[24]]);module[_0x53d9[26]]= router
\ No newline at end of file
index 2886d22..9d1d58f 100644 (file)
@@ -1 +1 @@
-var _0x6d65=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x63\x73\x76","\x70\x64\x66","\x78\x6C\x73","\x44\x41\x54\x45","\x4C\x6F\x61\x64\x69\x6E\x67","\x6D\x61\x6E\x75\x61\x6C","\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x6d65[0];var Sequelize=require(_0x6d65[1]);var moment=require(_0x6d65[2]);module[_0x6d65[3]]= {name:{type:Sequelize[_0x6d65[4]],allowNull:false},output:{type:Sequelize.ENUM(_0x6d65[5],_0x6d65[6],_0x6d65[7]),allowNull:false,defaultValue:_0x6d65[5]},savename:{type:Sequelize[_0x6d65[4]],allowNull:false},startDate:{type:Sequelize[_0x6d65[8]]},endDate:{type:Sequelize[_0x6d65[8]]},status:{type:Sequelize[_0x6d65[4]],defaultValue:_0x6d65[9]},type:{type:Sequelize.ENUM(_0x6d65[10],_0x6d65[11]),allowNull:false,defaultValue:_0x6d65[10]}}
\ No newline at end of file
+var _0x693c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x63\x73\x76","\x70\x64\x66","\x78\x6C\x73","\x44\x41\x54\x45","\x4C\x6F\x61\x64\x69\x6E\x67","\x6D\x61\x6E\x75\x61\x6C","\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x693c[0];var Sequelize=require(_0x693c[1]);var moment=require(_0x693c[2]);module[_0x693c[3]]= {name:{type:Sequelize[_0x693c[4]],allowNull:false},output:{type:Sequelize.ENUM(_0x693c[5],_0x693c[6],_0x693c[7]),allowNull:false,defaultValue:_0x693c[5]},savename:{type:Sequelize[_0x693c[4]],allowNull:false},startDate:{type:Sequelize[_0x693c[8]]},endDate:{type:Sequelize[_0x693c[8]]},status:{type:Sequelize[_0x693c[4]],defaultValue:_0x693c[9]},type:{type:Sequelize.ENUM(_0x693c[10],_0x693c[11]),allowNull:false,defaultValue:_0x693c[10]}}
\ No newline at end of file
index 0e53790..c9ca087 100644 (file)
@@ -1 +1 @@
-var _0xd7fa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x44\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x45\x78\x74\x72\x61\x63\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x44\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x45\x78\x74\x72\x61\x63\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x52\x65\x70\x6F\x72\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x69\x73\x74\x73","\x25\x73\x2E\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x6F\x75\x74\x70\x75\x74","\x66\x6F\x72\x6D\x61\x74"];_0xd7fa[0];var jsonpatch=require(_0xd7fa[1]);var rp=require(_0xd7fa[2]);var moment=require(_0xd7fa[3]);var BPromise=require(_0xd7fa[4]);var util=require(_0xd7fa[5]);var path=require(_0xd7fa[6]);var sox=require(_0xd7fa[7]);var ejs=require(_0xd7fa[8]);var fs=require(_0xd7fa[9]);var _=require(_0xd7fa[10]);var squel=require(_0xd7fa[11]);var crypto=require(_0xd7fa[12]);var jsforce=require(_0xd7fa[13]);var toCsv=require(_0xd7fa[14]);var qs=require(_0xd7fa[15]);var logger=require(_0xd7fa[17])(_0xd7fa[16]);var utils=require(_0xd7fa[18]);var config=require(_0xd7fa[19]);var db=require(_0xd7fa[21])[_0xd7fa[20]];function respondWithStatusCode(_0x8100x15,_0x8100x16,_0x8100x17){_0x8100x16= _0x8100x16|| 204;return function(_0x8100x18){if(_0x8100x18){logger[_0xd7fa[24]](_0xd7fa[22],_0x8100x17,_0x8100x16,_0xd7fa[23]);logger[_0xd7fa[26]](_0xd7fa[25],_0x8100x17,_0x8100x16,_0xd7fa[23]);return _0x8100x15[_0xd7fa[27]](_0x8100x16)};return _0x8100x15[_0xd7fa[29]](304)[_0xd7fa[28]]()}}function respondWithResult(_0x8100x15,_0x8100x16,_0x8100x17){_0x8100x16= _0x8100x16|| 200;return function(_0x8100x18){if(_0x8100x18){logger[_0xd7fa[24]](_0xd7fa[22],_0x8100x17,_0x8100x16,_0xd7fa[30]);logger[_0xd7fa[26]](_0xd7fa[25],_0x8100x17,_0x8100x16,_0xd7fa[30],JSON[_0xd7fa[31]](_0x8100x18));return _0x8100x15[_0xd7fa[29]](_0x8100x16)[_0xd7fa[32]](_0x8100x18)};return _0x8100x15[_0xd7fa[29]](304)[_0xd7fa[28]]()}}function respondWithFilteredResult(_0x8100x15,_0x8100x1b,_0x8100x17){return function(_0x8100x18){if(_0x8100x18){var _0x8100x1c=_0x8100x18[_0xd7fa[33]],_0x8100x1d=_0x8100x1b[_0xd7fa[34]],_0x8100x1e=_0x8100x1b[_0xd7fa[34]]+ _0x8100x1b[_0xd7fa[35]],_0x8100x16;if(_0x8100x1e>= _0x8100x1c){_0x8100x1e= _0x8100x1c;_0x8100x16= 200}else {_0x8100x16= 206};_0x8100x15[_0xd7fa[29]](_0x8100x16);logger[_0xd7fa[24]](_0xd7fa[22],_0x8100x17,_0x8100x16,_0xd7fa[36]);logger[_0xd7fa[26]](_0xd7fa[25],_0x8100x17,_0x8100x16,_0xd7fa[30],JSON[_0xd7fa[31]](_0x8100x18));return _0x8100x15[_0xd7fa[40]](_0xd7fa[37],_0x8100x1d+ _0xd7fa[38]+ _0x8100x1e+ _0xd7fa[39]+ _0x8100x1c)[_0xd7fa[32]](_0x8100x18)};return null}}function patchUpdates(_0x8100x20){return function(_0x8100x18){try{jsonpatch[_0xd7fa[41]](_0x8100x18,_0x8100x20,true)}catch(err){return BPromise[_0xd7fa[42]](err)};return _0x8100x18[_0xd7fa[43]]()}}function saveUpdates(_0x8100x22,_0x8100x16,_0x8100x17){return function(_0x8100x18){if(_0x8100x18){return _0x8100x18[_0xd7fa[46]](_0x8100x22)[_0xd7fa[45]](function(_0x8100x23){logger[_0xd7fa[24]](_0xd7fa[22],_0x8100x17,_0x8100x16,_0xd7fa[44]);logger[_0xd7fa[26]](_0xd7fa[25],_0x8100x17,_0x8100x16,_0xd7fa[44],JSON[_0xd7fa[31]](_0x8100x18));return _0x8100x23})};return null}}function removeEntity(_0x8100x15,_0x8100x16,_0x8100x17){return function(_0x8100x18){if(_0x8100x18){return _0x8100x18[_0xd7fa[48]]()[_0xd7fa[45]](function(){logger[_0xd7fa[24]](_0xd7fa[22],_0x8100x17,_0x8100x16,_0xd7fa[47]);logger[_0xd7fa[26]](_0xd7fa[25],_0x8100x17,_0x8100x16,_0xd7fa[47],JSON[_0xd7fa[31]](_0x8100x18));_0x8100x15[_0xd7fa[29]](204)[_0xd7fa[28]]()})}}}function handleEntityNotFound(_0x8100x15,_0x8100x16,_0x8100x17){return function(_0x8100x18){if(!_0x8100x18){logger[_0xd7fa[50]](_0xd7fa[22],_0x8100x17,404,_0xd7fa[49]);_0x8100x15[_0xd7fa[29]](404)[_0xd7fa[28]]();return null};return _0x8100x18}}function handleError(_0x8100x15,_0x8100x16,_0x8100x17){_0x8100x16= _0x8100x16|| 500;return function(_0x8100x27){logger[_0xd7fa[50]](_0xd7fa[22],_0x8100x17,_0x8100x16,JSON[_0xd7fa[31]](_0x8100x27));delete _0x8100x27[_0xd7fa[51]];_0x8100x15[_0xd7fa[29]](_0x8100x16)[_0xd7fa[52]](_0x8100x27)}}exports[_0xd7fa[53]]= function(_0x8100x28,_0x8100x15){var _0x8100x1b={},_0x8100x29={};_0x8100x29[_0xd7fa[54]]= _[_0xd7fa[57]](db[_0xd7fa[56]][_0xd7fa[55]]);_0x8100x29[_0xd7fa[58]]= _[_0xd7fa[57]](_0x8100x28[_0xd7fa[58]]);_0x8100x29[_0xd7fa[59]]= _[_0xd7fa[60]](_0x8100x29[_0xd7fa[54]],_0x8100x29[_0xd7fa[58]]);_0x8100x1b[_0xd7fa[61]]= _[_0xd7fa[60]](_0x8100x29[_0xd7fa[54]],qs[_0xd7fa[62]](_0x8100x28[_0xd7fa[58]][_0xd7fa[62]]));_0x8100x1b[_0xd7fa[61]]= (_0x8100x1b[_0xd7fa[61]][_0xd7fa[63]])?_0x8100x1b[_0xd7fa[61]]:_0x8100x29[_0xd7fa[54]];if(!_0x8100x28[_0xd7fa[58]][_0xd7fa[65]](_0xd7fa[64])){_0x8100x1b[_0xd7fa[35]]= qs[_0xd7fa[35]](_0x8100x28[_0xd7fa[58]][_0xd7fa[35]]);_0x8100x1b[_0xd7fa[34]]= qs[_0xd7fa[34]](_0x8100x28[_0xd7fa[58]][_0xd7fa[34]])};_0x8100x1b[_0xd7fa[66]]= qs[_0xd7fa[67]](_0x8100x28[_0xd7fa[58]][_0xd7fa[67]]);_0x8100x1b[_0xd7fa[68]]= qs[_0xd7fa[59]](_[_0xd7fa[69]](_0x8100x28[_0xd7fa[58]],_0x8100x29[_0xd7fa[59]]));if(_0x8100x28[_0xd7fa[58]][_0xd7fa[70]]){_0x8100x1b[_0xd7fa[68]]= _[_0xd7fa[73]](_0x8100x1b[_0xd7fa[68]],{$or:_[_0xd7fa[72]](_0x8100x1b[_0xd7fa[61]],function(_0x8100x2a){var _0x8100x2b={};_0x8100x2b[_0x8100x2a]= {$like:_0xd7fa[71]+ _0x8100x28[_0xd7fa[58]][_0xd7fa[70]]+ _0xd7fa[71]};return _0x8100x2b})})};_0x8100x1b= _[_0xd7fa[73]]({},_0x8100x1b,_0x8100x28[_0xd7fa[74]]);return db[_0xd7fa[56]][_0xd7fa[76]](_0x8100x1b)[_0xd7fa[45]](respondWithFilteredResult(_0x8100x15,_0x8100x1b,_0xd7fa[53]))[_0xd7fa[75]](handleError(_0x8100x15,null,_0xd7fa[53]))};exports[_0xd7fa[77]]= function(_0x8100x28,_0x8100x15){var _0x8100x1b={raw:true,where:{id:_0x8100x28[_0xd7fa[79]][_0xd7fa[78]]}},_0x8100x29={};_0x8100x29[_0xd7fa[54]]= _[_0xd7fa[57]](db[_0xd7fa[56]][_0xd7fa[55]]);_0x8100x29[_0xd7fa[58]]= _[_0xd7fa[57]](_0x8100x28[_0xd7fa[58]]);_0x8100x29[_0xd7fa[59]]= _[_0xd7fa[60]](_0x8100x29[_0xd7fa[54]],_0x8100x29[_0xd7fa[58]]);_0x8100x1b[_0xd7fa[61]]= _[_0xd7fa[60]](_0x8100x29[_0xd7fa[54]],qs[_0xd7fa[62]](_0x8100x28[_0xd7fa[58]][_0xd7fa[62]]));_0x8100x1b[_0xd7fa[61]]= (_0x8100x1b[_0xd7fa[61]][_0xd7fa[63]])?_0x8100x1b[_0xd7fa[61]]:_0x8100x29[_0xd7fa[54]];_0x8100x1b= _[_0xd7fa[73]]({},_0x8100x1b,_0x8100x28[_0xd7fa[74]]);return db[_0xd7fa[56]][_0xd7fa[80]](_0x8100x1b)[_0xd7fa[45]](handleEntityNotFound(_0x8100x15,null,_0xd7fa[77]))[_0xd7fa[45]](respondWithResult(_0x8100x15,null,_0xd7fa[77]))[_0xd7fa[75]](handleError(_0x8100x15,null,_0xd7fa[77]))};exports[_0xd7fa[81]]= function(_0x8100x28,_0x8100x15){return db[_0xd7fa[56]][_0xd7fa[81]](_0x8100x28[_0xd7fa[82]],{})[_0xd7fa[45]](respondWithResult(_0x8100x15,201,_0xd7fa[81]))[_0xd7fa[75]](handleError(_0x8100x15,null,_0xd7fa[81]))};exports[_0xd7fa[46]]= function(_0x8100x28,_0x8100x15){if(_0x8100x28[_0xd7fa[82]][_0xd7fa[78]]){delete _0x8100x28[_0xd7fa[82]][_0xd7fa[78]]};return db[_0xd7fa[56]][_0xd7fa[80]]({where:{id:_0x8100x28[_0xd7fa[79]][_0xd7fa[78]]}})[_0xd7fa[45]](handleEntityNotFound(_0x8100x15,null,_0xd7fa[46]))[_0xd7fa[45]](saveUpdates(_0x8100x28[_0xd7fa[82]],null,_0xd7fa[46]))[_0xd7fa[45]](respondWithResult(_0x8100x15,null,_0xd7fa[46]))[_0xd7fa[75]](handleError(_0x8100x15,null,_0xd7fa[46]))};exports[_0xd7fa[48]]= function(_0x8100x28,_0x8100x15){return db[_0xd7fa[56]][_0xd7fa[80]]({where:{id:_0x8100x28[_0xd7fa[79]][_0xd7fa[78]]}})[_0xd7fa[45]](handleEntityNotFound(_0x8100x15,null,_0xd7fa[48]))[_0xd7fa[45]](removeEntity(_0x8100x15,null,_0xd7fa[48]))[_0xd7fa[75]](handleError(_0x8100x15,null,_0xd7fa[48]))};exports[_0xd7fa[83]]= function(_0x8100x28,_0x8100x15,_0x8100x2c){return db[_0xd7fa[56]][_0xd7fa[80]]({where:{id:_0x8100x28[_0xd7fa[79]][_0xd7fa[78]]},attributes:[_0xd7fa[51],_0xd7fa[88],_0xd7fa[96]],raw:true})[_0xd7fa[45]](handleEntityNotFound(_0x8100x15,null,_0xd7fa[83]))[_0xd7fa[45]](function(_0x8100x18){if(_0x8100x18){logger[_0xd7fa[24]](_0xd7fa[84],_0xd7fa[83],_0xd7fa[30]);logger[_0xd7fa[26]](_0xd7fa[85],_0xd7fa[83],_0xd7fa[30],JSON[_0xd7fa[31]](_0x8100x18));if(!fs[_0xd7fa[90]](path[_0xd7fa[89]](config[_0xd7fa[86]],_0xd7fa[87],_0x8100x18[_0xd7fa[88]]))){throw  new db[_0xd7fa[92]].ValidationError(_0xd7fa[91])};if(_0x8100x28[_0xd7fa[58]][_0xd7fa[93]]){return _0x8100x15[_0xd7fa[27]](200)};return _0x8100x15[_0xd7fa[83]](path[_0xd7fa[89]](config[_0xd7fa[86]],_0xd7fa[87],_0x8100x18[_0xd7fa[88]]),util[_0xd7fa[97]](_0xd7fa[94],_0x8100x18[_0xd7fa[51]],_0x8100x18[_0xd7fa[96]][_0xd7fa[95]]()))}})[_0xd7fa[75]](handleError(_0x8100x15,null,_0xd7fa[83]))}
\ No newline at end of file
+var _0xdce1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x44\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x45\x78\x74\x72\x61\x63\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x44\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x45\x78\x74\x72\x61\x63\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x52\x65\x70\x6F\x72\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x69\x73\x74\x73","\x25\x73\x2E\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x6F\x75\x74\x70\x75\x74","\x66\x6F\x72\x6D\x61\x74"];_0xdce1[0];var jsonpatch=require(_0xdce1[1]);var rp=require(_0xdce1[2]);var moment=require(_0xdce1[3]);var BPromise=require(_0xdce1[4]);var util=require(_0xdce1[5]);var path=require(_0xdce1[6]);var sox=require(_0xdce1[7]);var ejs=require(_0xdce1[8]);var fs=require(_0xdce1[9]);var _=require(_0xdce1[10]);var squel=require(_0xdce1[11]);var crypto=require(_0xdce1[12]);var jsforce=require(_0xdce1[13]);var toCsv=require(_0xdce1[14]);var qs=require(_0xdce1[15]);var logger=require(_0xdce1[17])(_0xdce1[16]);var utils=require(_0xdce1[18]);var config=require(_0xdce1[19]);var db=require(_0xdce1[21])[_0xdce1[20]];function respondWithStatusCode(_0x230bx15,_0x230bx16,_0x230bx17){_0x230bx16= _0x230bx16|| 204;return function(_0x230bx18){if(_0x230bx18){logger[_0xdce1[24]](_0xdce1[22],_0x230bx17,_0x230bx16,_0xdce1[23]);logger[_0xdce1[26]](_0xdce1[25],_0x230bx17,_0x230bx16,_0xdce1[23]);return _0x230bx15[_0xdce1[27]](_0x230bx16)};return _0x230bx15[_0xdce1[29]](304)[_0xdce1[28]]()}}function respondWithResult(_0x230bx15,_0x230bx16,_0x230bx17){_0x230bx16= _0x230bx16|| 200;return function(_0x230bx18){if(_0x230bx18){logger[_0xdce1[24]](_0xdce1[22],_0x230bx17,_0x230bx16,_0xdce1[30]);logger[_0xdce1[26]](_0xdce1[25],_0x230bx17,_0x230bx16,_0xdce1[30],JSON[_0xdce1[31]](_0x230bx18));return _0x230bx15[_0xdce1[29]](_0x230bx16)[_0xdce1[32]](_0x230bx18)};return _0x230bx15[_0xdce1[29]](304)[_0xdce1[28]]()}}function respondWithFilteredResult(_0x230bx15,_0x230bx1b,_0x230bx17){return function(_0x230bx18){if(_0x230bx18){var _0x230bx1c=_0x230bx18[_0xdce1[33]],_0x230bx1d=_0x230bx1b[_0xdce1[34]],_0x230bx1e=_0x230bx1b[_0xdce1[34]]+ _0x230bx1b[_0xdce1[35]],_0x230bx16;if(_0x230bx1e>= _0x230bx1c){_0x230bx1e= _0x230bx1c;_0x230bx16= 200}else {_0x230bx16= 206};_0x230bx15[_0xdce1[29]](_0x230bx16);logger[_0xdce1[24]](_0xdce1[22],_0x230bx17,_0x230bx16,_0xdce1[36]);logger[_0xdce1[26]](_0xdce1[25],_0x230bx17,_0x230bx16,_0xdce1[30],JSON[_0xdce1[31]](_0x230bx18));return _0x230bx15[_0xdce1[40]](_0xdce1[37],_0x230bx1d+ _0xdce1[38]+ _0x230bx1e+ _0xdce1[39]+ _0x230bx1c)[_0xdce1[32]](_0x230bx18)};return null}}function patchUpdates(_0x230bx20){return function(_0x230bx18){try{jsonpatch[_0xdce1[41]](_0x230bx18,_0x230bx20,true)}catch(err){return BPromise[_0xdce1[42]](err)};return _0x230bx18[_0xdce1[43]]()}}function saveUpdates(_0x230bx22,_0x230bx16,_0x230bx17){return function(_0x230bx18){if(_0x230bx18){return _0x230bx18[_0xdce1[46]](_0x230bx22)[_0xdce1[45]](function(_0x230bx23){logger[_0xdce1[24]](_0xdce1[22],_0x230bx17,_0x230bx16,_0xdce1[44]);logger[_0xdce1[26]](_0xdce1[25],_0x230bx17,_0x230bx16,_0xdce1[44],JSON[_0xdce1[31]](_0x230bx18));return _0x230bx23})};return null}}function removeEntity(_0x230bx15,_0x230bx16,_0x230bx17){return function(_0x230bx18){if(_0x230bx18){return _0x230bx18[_0xdce1[48]]()[_0xdce1[45]](function(){logger[_0xdce1[24]](_0xdce1[22],_0x230bx17,_0x230bx16,_0xdce1[47]);logger[_0xdce1[26]](_0xdce1[25],_0x230bx17,_0x230bx16,_0xdce1[47],JSON[_0xdce1[31]](_0x230bx18));_0x230bx15[_0xdce1[29]](204)[_0xdce1[28]]()})}}}function handleEntityNotFound(_0x230bx15,_0x230bx16,_0x230bx17){return function(_0x230bx18){if(!_0x230bx18){logger[_0xdce1[50]](_0xdce1[22],_0x230bx17,404,_0xdce1[49]);_0x230bx15[_0xdce1[29]](404)[_0xdce1[28]]();return null};return _0x230bx18}}function handleError(_0x230bx15,_0x230bx16,_0x230bx17){_0x230bx16= _0x230bx16|| 500;return function(_0x230bx27){logger[_0xdce1[50]](_0xdce1[22],_0x230bx17,_0x230bx16,JSON[_0xdce1[31]](_0x230bx27));delete _0x230bx27[_0xdce1[51]];_0x230bx15[_0xdce1[29]](_0x230bx16)[_0xdce1[52]](_0x230bx27)}}exports[_0xdce1[53]]= function(_0x230bx28,_0x230bx15){var _0x230bx1b={},_0x230bx29={};_0x230bx29[_0xdce1[54]]= _[_0xdce1[57]](db[_0xdce1[56]][_0xdce1[55]]);_0x230bx29[_0xdce1[58]]= _[_0xdce1[57]](_0x230bx28[_0xdce1[58]]);_0x230bx29[_0xdce1[59]]= _[_0xdce1[60]](_0x230bx29[_0xdce1[54]],_0x230bx29[_0xdce1[58]]);_0x230bx1b[_0xdce1[61]]= _[_0xdce1[60]](_0x230bx29[_0xdce1[54]],qs[_0xdce1[62]](_0x230bx28[_0xdce1[58]][_0xdce1[62]]));_0x230bx1b[_0xdce1[61]]= (_0x230bx1b[_0xdce1[61]][_0xdce1[63]])?_0x230bx1b[_0xdce1[61]]:_0x230bx29[_0xdce1[54]];if(!_0x230bx28[_0xdce1[58]][_0xdce1[65]](_0xdce1[64])){_0x230bx1b[_0xdce1[35]]= qs[_0xdce1[35]](_0x230bx28[_0xdce1[58]][_0xdce1[35]]);_0x230bx1b[_0xdce1[34]]= qs[_0xdce1[34]](_0x230bx28[_0xdce1[58]][_0xdce1[34]])};_0x230bx1b[_0xdce1[66]]= qs[_0xdce1[67]](_0x230bx28[_0xdce1[58]][_0xdce1[67]]);_0x230bx1b[_0xdce1[68]]= qs[_0xdce1[59]](_[_0xdce1[69]](_0x230bx28[_0xdce1[58]],_0x230bx29[_0xdce1[59]]));if(_0x230bx28[_0xdce1[58]][_0xdce1[70]]){_0x230bx1b[_0xdce1[68]]= _[_0xdce1[73]](_0x230bx1b[_0xdce1[68]],{$or:_[_0xdce1[72]](_0x230bx1b[_0xdce1[61]],function(_0x230bx2a){var _0x230bx2b={};_0x230bx2b[_0x230bx2a]= {$like:_0xdce1[71]+ _0x230bx28[_0xdce1[58]][_0xdce1[70]]+ _0xdce1[71]};return _0x230bx2b})})};_0x230bx1b= _[_0xdce1[73]]({},_0x230bx1b,_0x230bx28[_0xdce1[74]]);return db[_0xdce1[56]][_0xdce1[76]](_0x230bx1b)[_0xdce1[45]](respondWithFilteredResult(_0x230bx15,_0x230bx1b,_0xdce1[53]))[_0xdce1[75]](handleError(_0x230bx15,null,_0xdce1[53]))};exports[_0xdce1[77]]= function(_0x230bx28,_0x230bx15){var _0x230bx1b={raw:true,where:{id:_0x230bx28[_0xdce1[79]][_0xdce1[78]]}},_0x230bx29={};_0x230bx29[_0xdce1[54]]= _[_0xdce1[57]](db[_0xdce1[56]][_0xdce1[55]]);_0x230bx29[_0xdce1[58]]= _[_0xdce1[57]](_0x230bx28[_0xdce1[58]]);_0x230bx29[_0xdce1[59]]= _[_0xdce1[60]](_0x230bx29[_0xdce1[54]],_0x230bx29[_0xdce1[58]]);_0x230bx1b[_0xdce1[61]]= _[_0xdce1[60]](_0x230bx29[_0xdce1[54]],qs[_0xdce1[62]](_0x230bx28[_0xdce1[58]][_0xdce1[62]]));_0x230bx1b[_0xdce1[61]]= (_0x230bx1b[_0xdce1[61]][_0xdce1[63]])?_0x230bx1b[_0xdce1[61]]:_0x230bx29[_0xdce1[54]];_0x230bx1b= _[_0xdce1[73]]({},_0x230bx1b,_0x230bx28[_0xdce1[74]]);return db[_0xdce1[56]][_0xdce1[80]](_0x230bx1b)[_0xdce1[45]](handleEntityNotFound(_0x230bx15,null,_0xdce1[77]))[_0xdce1[45]](respondWithResult(_0x230bx15,null,_0xdce1[77]))[_0xdce1[75]](handleError(_0x230bx15,null,_0xdce1[77]))};exports[_0xdce1[81]]= function(_0x230bx28,_0x230bx15){return db[_0xdce1[56]][_0xdce1[81]](_0x230bx28[_0xdce1[82]],{})[_0xdce1[45]](respondWithResult(_0x230bx15,201,_0xdce1[81]))[_0xdce1[75]](handleError(_0x230bx15,null,_0xdce1[81]))};exports[_0xdce1[46]]= function(_0x230bx28,_0x230bx15){if(_0x230bx28[_0xdce1[82]][_0xdce1[78]]){delete _0x230bx28[_0xdce1[82]][_0xdce1[78]]};return db[_0xdce1[56]][_0xdce1[80]]({where:{id:_0x230bx28[_0xdce1[79]][_0xdce1[78]]}})[_0xdce1[45]](handleEntityNotFound(_0x230bx15,null,_0xdce1[46]))[_0xdce1[45]](saveUpdates(_0x230bx28[_0xdce1[82]],null,_0xdce1[46]))[_0xdce1[45]](respondWithResult(_0x230bx15,null,_0xdce1[46]))[_0xdce1[75]](handleError(_0x230bx15,null,_0xdce1[46]))};exports[_0xdce1[48]]= function(_0x230bx28,_0x230bx15){return db[_0xdce1[56]][_0xdce1[80]]({where:{id:_0x230bx28[_0xdce1[79]][_0xdce1[78]]}})[_0xdce1[45]](handleEntityNotFound(_0x230bx15,null,_0xdce1[48]))[_0xdce1[45]](removeEntity(_0x230bx15,null,_0xdce1[48]))[_0xdce1[75]](handleError(_0x230bx15,null,_0xdce1[48]))};exports[_0xdce1[83]]= function(_0x230bx28,_0x230bx15,_0x230bx2c){return db[_0xdce1[56]][_0xdce1[80]]({where:{id:_0x230bx28[_0xdce1[79]][_0xdce1[78]]},attributes:[_0xdce1[51],_0xdce1[88],_0xdce1[96]],raw:true})[_0xdce1[45]](handleEntityNotFound(_0x230bx15,null,_0xdce1[83]))[_0xdce1[45]](function(_0x230bx18){if(_0x230bx18){logger[_0xdce1[24]](_0xdce1[84],_0xdce1[83],_0xdce1[30]);logger[_0xdce1[26]](_0xdce1[85],_0xdce1[83],_0xdce1[30],JSON[_0xdce1[31]](_0x230bx18));if(!fs[_0xdce1[90]](path[_0xdce1[89]](config[_0xdce1[86]],_0xdce1[87],_0x230bx18[_0xdce1[88]]))){throw  new db[_0xdce1[92]].ValidationError(_0xdce1[91])};if(_0x230bx28[_0xdce1[58]][_0xdce1[93]]){return _0x230bx15[_0xdce1[27]](200)};return _0x230bx15[_0xdce1[83]](path[_0xdce1[89]](config[_0xdce1[86]],_0xdce1[87],_0x230bx18[_0xdce1[88]]),util[_0xdce1[97]](_0xdce1[94],_0x230bx18[_0xdce1[51]],_0x230bx18[_0xdce1[96]][_0xdce1[95]]()))}})[_0xdce1[75]](handleError(_0x230bx15,null,_0xdce1[83]))}
\ No newline at end of file
index 258238b..96acab9 100644 (file)
@@ -1 +1 @@
-var _0xe01c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xe01c[0];var _=require(_0xe01c[1]);var util=require(_0xe01c[2]);var logger=require(_0xe01c[4])(_0xe01c[3]);var attributes=require(_0xe01c[5]);module[_0xe01c[6]]= function(_0x4074x5,_0x4074x6){return _0x4074x5[_0xe01c[9]](_0xe01c[7],attributes,{tableName:_0xe01c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x56ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x56ef[0];var _=require(_0x56ef[1]);var util=require(_0x56ef[2]);var logger=require(_0x56ef[4])(_0x56ef[3]);var attributes=require(_0x56ef[5]);module[_0x56ef[6]]= function(_0x8089x5,_0x8089x6){return _0x8089x5[_0x56ef[9]](_0x56ef[7],attributes,{tableName:_0x56ef[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 18d0601..c62b1a8 100644 (file)
@@ -1 +1 @@
-var _0x97db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x97db[0];var _=require(_0x97db[1]);var util=require(_0x97db[2]);var moment=require(_0x97db[3]);var BPromise=require(_0x97db[4]);var db=require(_0x97db[6])[_0x97db[5]];var utils=require(_0x97db[7]);var logger=require(_0x97db[9])(_0x97db[8]);var jayson=require(_0x97db[10]);var client=jayson[_0x97db[12]][_0x97db[11]]({port:9002});function respondWithRpcPromise(_0x72c2xb,_0x72c2xc,_0x72c2xd){return  new BPromise(function(_0x72c2xe,_0x72c2xf){return client[_0x97db[25]](_0x72c2xb,_0x72c2xd)[_0x97db[24]](function(_0x72c2x11){logger[_0x97db[17]](_0x97db[13],_0x72c2xc,_0x97db[16]);logger[_0x97db[20]](_0x97db[18],_0x72c2xc,_0x97db[16],JSON[_0x97db[19]](_0x72c2x11));if(_0x72c2x11[_0x97db[14]]){if(_0x72c2x11[_0x97db[14]][_0x97db[21]]=== 500){logger[_0x97db[14]](_0x97db[13],_0x72c2xc,_0x72c2x11[_0x97db[14]][_0x97db[22]]);return _0x72c2xf(_0x72c2x11[_0x97db[14]][_0x97db[22]])};logger[_0x97db[14]](_0x97db[13],_0x72c2xc,_0x72c2x11[_0x97db[14]][_0x97db[22]]);return _0x72c2xe(_0x72c2x11[_0x97db[14]][_0x97db[22]])}else {logger[_0x97db[17]](_0x97db[13],_0x72c2xc,_0x97db[16]);_0x72c2xe(_0x72c2x11[_0x97db[23]][_0x97db[22]])}})[_0x97db[15]](function(_0x72c2x10){logger[_0x97db[14]](_0x97db[13],_0x72c2xc,_0x72c2x10);_0x72c2xf(_0x72c2x10)})})}
\ No newline at end of file
+var _0x2ce5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2ce5[0];var _=require(_0x2ce5[1]);var util=require(_0x2ce5[2]);var moment=require(_0x2ce5[3]);var BPromise=require(_0x2ce5[4]);var db=require(_0x2ce5[6])[_0x2ce5[5]];var utils=require(_0x2ce5[7]);var logger=require(_0x2ce5[9])(_0x2ce5[8]);var jayson=require(_0x2ce5[10]);var client=jayson[_0x2ce5[12]][_0x2ce5[11]]({port:9002});function respondWithRpcPromise(_0x8843xb,_0x8843xc,_0x8843xd){return  new BPromise(function(_0x8843xe,_0x8843xf){return client[_0x2ce5[25]](_0x8843xb,_0x8843xd)[_0x2ce5[24]](function(_0x8843x11){logger[_0x2ce5[17]](_0x2ce5[13],_0x8843xc,_0x2ce5[16]);logger[_0x2ce5[20]](_0x2ce5[18],_0x8843xc,_0x2ce5[16],JSON[_0x2ce5[19]](_0x8843x11));if(_0x8843x11[_0x2ce5[14]]){if(_0x8843x11[_0x2ce5[14]][_0x2ce5[21]]=== 500){logger[_0x2ce5[14]](_0x2ce5[13],_0x8843xc,_0x8843x11[_0x2ce5[14]][_0x2ce5[22]]);return _0x8843xf(_0x8843x11[_0x2ce5[14]][_0x2ce5[22]])};logger[_0x2ce5[14]](_0x2ce5[13],_0x8843xc,_0x8843x11[_0x2ce5[14]][_0x2ce5[22]]);return _0x8843xe(_0x8843x11[_0x2ce5[14]][_0x2ce5[22]])}else {logger[_0x2ce5[17]](_0x2ce5[13],_0x8843xc,_0x2ce5[16]);_0x8843xe(_0x8843x11[_0x2ce5[23]][_0x2ce5[22]])}})[_0x2ce5[15]](function(_0x8843x10){logger[_0x2ce5[14]](_0x2ce5[13],_0x8843xc,_0x8843x10);_0x8843xf(_0x8843x10)})})}
\ No newline at end of file
index db2f52c..bf453a1 100644 (file)
@@ -1 +1 @@
-var _0xff9e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xff9e[0];var multer=require(_0xff9e[1]);var util=require(_0xff9e[2]);var path=require(_0xff9e[3]);var express=require(_0xff9e[4]);var router=express.Router();var auth=require(_0xff9e[5]);var config=require(_0xff9e[6]);var controller=require(_0xff9e[7]);router[_0xff9e[11]](_0xff9e[8],auth[_0xff9e[9]](),controller[_0xff9e[10]]);router[_0xff9e[11]](_0xff9e[12],auth[_0xff9e[9]](),controller[_0xff9e[13]]);router[_0xff9e[11]](_0xff9e[14],controller[_0xff9e[15]]);router[_0xff9e[17]](_0xff9e[8],auth[_0xff9e[9]](),controller[_0xff9e[16]]);router[_0xff9e[19]](_0xff9e[12],auth[_0xff9e[9]](),controller[_0xff9e[18]]);router[_0xff9e[21]](_0xff9e[12],auth[_0xff9e[9]](),controller[_0xff9e[20]]);module[_0xff9e[22]]= router
\ No newline at end of file
+var _0x89d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x89d8[0];var multer=require(_0x89d8[1]);var util=require(_0x89d8[2]);var path=require(_0x89d8[3]);var express=require(_0x89d8[4]);var router=express.Router();var auth=require(_0x89d8[5]);var config=require(_0x89d8[6]);var controller=require(_0x89d8[7]);router[_0x89d8[11]](_0x89d8[8],auth[_0x89d8[9]](),controller[_0x89d8[10]]);router[_0x89d8[11]](_0x89d8[12],auth[_0x89d8[9]](),controller[_0x89d8[13]]);router[_0x89d8[11]](_0x89d8[14],controller[_0x89d8[15]]);router[_0x89d8[17]](_0x89d8[8],auth[_0x89d8[9]](),controller[_0x89d8[16]]);router[_0x89d8[19]](_0x89d8[12],auth[_0x89d8[9]](),controller[_0x89d8[18]]);router[_0x89d8[21]](_0x89d8[12],auth[_0x89d8[9]](),controller[_0x89d8[20]]);module[_0x89d8[22]]= router
\ No newline at end of file
index 24d32ec..8da9d09 100644 (file)
@@ -1 +1 @@
-var _0xd2f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xd2f6[0];var Sequelize=require(_0xd2f6[1]);module[_0xd2f6[2]]= {field:{type:Sequelize[_0xd2f6[3]],allowNull:false},alias:{type:Sequelize[_0xd2f6[3]]},function:{type:Sequelize[_0xd2f6[3]]},format:{type:Sequelize[_0xd2f6[3]]},groupBy:{type:Sequelize[_0xd2f6[4]],defaultValue:false},orderBy:{type:Sequelize[_0xd2f6[3]]},custom:{type:Sequelize[_0xd2f6[4]],defaultValue:false}}
\ No newline at end of file
+var _0x9d72=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x9d72[0];var Sequelize=require(_0x9d72[1]);module[_0x9d72[2]]= {field:{type:Sequelize[_0x9d72[3]],allowNull:false},alias:{type:Sequelize[_0x9d72[3]]},function:{type:Sequelize[_0x9d72[3]]},format:{type:Sequelize[_0x9d72[3]]},groupBy:{type:Sequelize[_0x9d72[4]],defaultValue:false},orderBy:{type:Sequelize[_0x9d72[3]]},custom:{type:Sequelize[_0x9d72[4]],defaultValue:false}}
\ No newline at end of file
index 7d1e121..59716dd 100644 (file)
@@ -1 +1 @@
-var _0xfa8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x46\x69\x65\x6C\x64\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74"];_0xfa8f[0];var jsonpatch=require(_0xfa8f[1]);var rp=require(_0xfa8f[2]);var moment=require(_0xfa8f[3]);var BPromise=require(_0xfa8f[4]);var util=require(_0xfa8f[5]);var path=require(_0xfa8f[6]);var sox=require(_0xfa8f[7]);var ejs=require(_0xfa8f[8]);var fs=require(_0xfa8f[9]);var _=require(_0xfa8f[10]);var squel=require(_0xfa8f[11]);var crypto=require(_0xfa8f[12]);var jsforce=require(_0xfa8f[13]);var toCsv=require(_0xfa8f[14]);var qs=require(_0xfa8f[15]);var logger=require(_0xfa8f[17])(_0xfa8f[16]);var utils=require(_0xfa8f[18]);var config=require(_0xfa8f[19]);var db=require(_0xfa8f[21])[_0xfa8f[20]];function respondWithStatusCode(_0xa4edx15,_0xa4edx16,_0xa4edx17){_0xa4edx16= _0xa4edx16|| 204;return function(_0xa4edx18){if(_0xa4edx18){logger[_0xfa8f[24]](_0xfa8f[22],_0xa4edx17,_0xa4edx16,_0xfa8f[23]);logger[_0xfa8f[26]](_0xfa8f[25],_0xa4edx17,_0xa4edx16,_0xfa8f[23]);return _0xa4edx15[_0xfa8f[27]](_0xa4edx16)};return _0xa4edx15[_0xfa8f[29]](304)[_0xfa8f[28]]()}}function respondWithResult(_0xa4edx15,_0xa4edx16,_0xa4edx17){_0xa4edx16= _0xa4edx16|| 200;return function(_0xa4edx18){if(_0xa4edx18){logger[_0xfa8f[24]](_0xfa8f[22],_0xa4edx17,_0xa4edx16,_0xfa8f[30]);logger[_0xfa8f[26]](_0xfa8f[25],_0xa4edx17,_0xa4edx16,_0xfa8f[30],JSON[_0xfa8f[31]](_0xa4edx18));return _0xa4edx15[_0xfa8f[29]](_0xa4edx16)[_0xfa8f[32]](_0xa4edx18)};return _0xa4edx15[_0xfa8f[29]](304)[_0xfa8f[28]]()}}function respondWithFilteredResult(_0xa4edx15,_0xa4edx1b,_0xa4edx17){return function(_0xa4edx18){if(_0xa4edx18){var _0xa4edx1c=_0xa4edx18[_0xfa8f[33]],_0xa4edx1d=_0xa4edx1b[_0xfa8f[34]],_0xa4edx1e=_0xa4edx1b[_0xfa8f[34]]+ _0xa4edx1b[_0xfa8f[35]],_0xa4edx16;if(_0xa4edx1e>= _0xa4edx1c){_0xa4edx1e= _0xa4edx1c;_0xa4edx16= 200}else {_0xa4edx16= 206};_0xa4edx15[_0xfa8f[29]](_0xa4edx16);logger[_0xfa8f[24]](_0xfa8f[22],_0xa4edx17,_0xa4edx16,_0xfa8f[36]);logger[_0xfa8f[26]](_0xfa8f[25],_0xa4edx17,_0xa4edx16,_0xfa8f[30],JSON[_0xfa8f[31]](_0xa4edx18));return _0xa4edx15[_0xfa8f[40]](_0xfa8f[37],_0xa4edx1d+ _0xfa8f[38]+ _0xa4edx1e+ _0xfa8f[39]+ _0xa4edx1c)[_0xfa8f[32]](_0xa4edx18)};return null}}function patchUpdates(_0xa4edx20){return function(_0xa4edx18){try{jsonpatch[_0xfa8f[41]](_0xa4edx18,_0xa4edx20,true)}catch(err){return BPromise[_0xfa8f[42]](err)};return _0xa4edx18[_0xfa8f[43]]()}}function saveUpdates(_0xa4edx22,_0xa4edx16,_0xa4edx17){return function(_0xa4edx18){if(_0xa4edx18){return _0xa4edx18[_0xfa8f[46]](_0xa4edx22)[_0xfa8f[45]](function(_0xa4edx23){logger[_0xfa8f[24]](_0xfa8f[22],_0xa4edx17,_0xa4edx16,_0xfa8f[44]);logger[_0xfa8f[26]](_0xfa8f[25],_0xa4edx17,_0xa4edx16,_0xfa8f[44],JSON[_0xfa8f[31]](_0xa4edx18));return _0xa4edx23})};return null}}function removeEntity(_0xa4edx15,_0xa4edx16,_0xa4edx17){return function(_0xa4edx18){if(_0xa4edx18){return _0xa4edx18[_0xfa8f[48]]()[_0xfa8f[45]](function(){logger[_0xfa8f[24]](_0xfa8f[22],_0xa4edx17,_0xa4edx16,_0xfa8f[47]);logger[_0xfa8f[26]](_0xfa8f[25],_0xa4edx17,_0xa4edx16,_0xfa8f[47],JSON[_0xfa8f[31]](_0xa4edx18));_0xa4edx15[_0xfa8f[29]](204)[_0xfa8f[28]]()})}}}function handleEntityNotFound(_0xa4edx15,_0xa4edx16,_0xa4edx17){return function(_0xa4edx18){if(!_0xa4edx18){logger[_0xfa8f[50]](_0xfa8f[22],_0xa4edx17,404,_0xfa8f[49]);_0xa4edx15[_0xfa8f[29]](404)[_0xfa8f[28]]();return null};return _0xa4edx18}}function handleError(_0xa4edx15,_0xa4edx16,_0xa4edx17){_0xa4edx16= _0xa4edx16|| 500;return function(_0xa4edx27){logger[_0xfa8f[50]](_0xfa8f[22],_0xa4edx17,_0xa4edx16,JSON[_0xfa8f[31]](_0xa4edx27));delete _0xa4edx27[_0xfa8f[51]];_0xa4edx15[_0xfa8f[29]](_0xa4edx16)[_0xfa8f[52]](_0xa4edx27)}}exports[_0xfa8f[53]]= function(_0xa4edx28,_0xa4edx15){var _0xa4edx1b={},_0xa4edx29={};_0xa4edx29[_0xfa8f[54]]= _[_0xfa8f[57]](db[_0xfa8f[56]][_0xfa8f[55]]);_0xa4edx29[_0xfa8f[58]]= _[_0xfa8f[57]](_0xa4edx28[_0xfa8f[58]]);_0xa4edx29[_0xfa8f[59]]= _[_0xfa8f[60]](_0xa4edx29[_0xfa8f[54]],_0xa4edx29[_0xfa8f[58]]);_0xa4edx1b[_0xfa8f[61]]= _[_0xfa8f[60]](_0xa4edx29[_0xfa8f[54]],qs[_0xfa8f[62]](_0xa4edx28[_0xfa8f[58]][_0xfa8f[62]]));_0xa4edx1b[_0xfa8f[61]]= (_0xa4edx1b[_0xfa8f[61]][_0xfa8f[63]])?_0xa4edx1b[_0xfa8f[61]]:_0xa4edx29[_0xfa8f[54]];if(!_0xa4edx28[_0xfa8f[58]][_0xfa8f[65]](_0xfa8f[64])){_0xa4edx1b[_0xfa8f[35]]= qs[_0xfa8f[35]](_0xa4edx28[_0xfa8f[58]][_0xfa8f[35]]);_0xa4edx1b[_0xfa8f[34]]= qs[_0xfa8f[34]](_0xa4edx28[_0xfa8f[58]][_0xfa8f[34]])};_0xa4edx1b[_0xfa8f[66]]= qs[_0xfa8f[67]](_0xa4edx28[_0xfa8f[58]][_0xfa8f[67]]);_0xa4edx1b[_0xfa8f[68]]= qs[_0xfa8f[59]](_[_0xfa8f[69]](_0xa4edx28[_0xfa8f[58]],_0xa4edx29[_0xfa8f[59]]));if(_0xa4edx28[_0xfa8f[58]][_0xfa8f[70]]){_0xa4edx1b[_0xfa8f[68]]= _[_0xfa8f[73]](_0xa4edx1b[_0xfa8f[68]],{$or:_[_0xfa8f[72]](_0xa4edx1b[_0xfa8f[61]],function(_0xa4edx2a){var _0xa4edx2b={};_0xa4edx2b[_0xa4edx2a]= {$like:_0xfa8f[71]+ _0xa4edx28[_0xfa8f[58]][_0xfa8f[70]]+ _0xfa8f[71]};return _0xa4edx2b})})};_0xa4edx1b= _[_0xfa8f[73]]({},_0xa4edx1b,_0xa4edx28[_0xfa8f[74]]);return db[_0xfa8f[56]][_0xfa8f[76]](_0xa4edx1b)[_0xfa8f[45]](respondWithFilteredResult(_0xa4edx15,_0xa4edx1b,_0xfa8f[53]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[53]))};exports[_0xfa8f[77]]= function(_0xa4edx28,_0xa4edx15){var _0xa4edx1b={raw:false,where:{id:_0xa4edx28[_0xfa8f[79]][_0xfa8f[78]]}},_0xa4edx29={};_0xa4edx29[_0xfa8f[54]]= _[_0xfa8f[57]](db[_0xfa8f[56]][_0xfa8f[55]]);_0xa4edx29[_0xfa8f[58]]= _[_0xfa8f[57]](_0xa4edx28[_0xfa8f[58]]);_0xa4edx29[_0xfa8f[59]]= _[_0xfa8f[60]](_0xa4edx29[_0xfa8f[54]],_0xa4edx29[_0xfa8f[58]]);_0xa4edx1b[_0xfa8f[61]]= _[_0xfa8f[60]](_0xa4edx29[_0xfa8f[54]],qs[_0xfa8f[62]](_0xa4edx28[_0xfa8f[58]][_0xfa8f[62]]));_0xa4edx1b[_0xfa8f[61]]= (_0xa4edx1b[_0xfa8f[61]][_0xfa8f[63]])?_0xa4edx1b[_0xfa8f[61]]:_0xa4edx29[_0xfa8f[54]];_0xa4edx1b= _[_0xfa8f[73]]({},_0xa4edx1b,_0xa4edx28[_0xfa8f[74]]);return db[_0xfa8f[56]][_0xfa8f[80]](_0xa4edx1b)[_0xfa8f[45]](handleEntityNotFound(_0xa4edx15,null,_0xfa8f[77]))[_0xfa8f[45]](respondWithResult(_0xa4edx15,null,_0xfa8f[77]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[77]))};exports[_0xfa8f[81]]= function(_0xa4edx28,_0xa4edx15){return db[_0xfa8f[56]][_0xfa8f[81]](_0xa4edx28[_0xfa8f[82]],{})[_0xfa8f[45]](respondWithResult(_0xa4edx15,201,_0xfa8f[81]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[81]))};exports[_0xfa8f[83]]= function(_0xa4edx28,_0xa4edx15){return db[_0xfa8f[56]][_0xfa8f[83]](_0xa4edx28[_0xfa8f[82]],{raw:false,individualHooks:true})[_0xfa8f[45]](respondWithResult(_0xa4edx15,201,_0xfa8f[83]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[83]))};exports[_0xfa8f[46]]= function(_0xa4edx28,_0xa4edx15){if(_0xa4edx28[_0xfa8f[82]][_0xfa8f[78]]){delete _0xa4edx28[_0xfa8f[82]][_0xfa8f[78]]};return db[_0xfa8f[56]][_0xfa8f[80]]({where:{id:_0xa4edx28[_0xfa8f[79]][_0xfa8f[78]]}})[_0xfa8f[45]](handleEntityNotFound(_0xa4edx15,null,_0xfa8f[46]))[_0xfa8f[45]](saveUpdates(_0xa4edx28[_0xfa8f[82]],null,_0xfa8f[46]))[_0xfa8f[45]](respondWithResult(_0xa4edx15,null,_0xfa8f[46]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[46]))};exports[_0xfa8f[48]]= function(_0xa4edx28,_0xa4edx15){return db[_0xfa8f[56]][_0xfa8f[80]]({where:{id:_0xa4edx28[_0xfa8f[79]][_0xfa8f[78]]}})[_0xfa8f[45]](handleEntityNotFound(_0xa4edx15,null,_0xfa8f[48]))[_0xfa8f[45]](removeEntity(_0xa4edx15,null,_0xfa8f[48]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[48]))};exports[_0xfa8f[84]]= function(_0xa4edx28,_0xa4edx15){return db[_0xfa8f[56]][_0xfa8f[48]]({where:{id:_0xa4edx28[_0xfa8f[58]][_0xfa8f[85]]|| []},raw:false,individualHooks:true})[_0xfa8f[45]](respondWithResult(_0xa4edx15,204,_0xfa8f[84]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[84]))};exports[_0xfa8f[86]]= function(_0xa4edx28,_0xa4edx15,_0xa4edx2c){return db[_0xfa8f[92]][_0xfa8f[91]]({where:{id:_0xa4edx28[_0xfa8f[79]][_0xfa8f[78]]}})[_0xfa8f[45]](handleEntityNotFound(_0xa4edx15,null,_0xfa8f[86]))[_0xfa8f[45]](function(_0xa4edx18){if(_0xa4edx18){return db[_0xfa8f[90]][_0xfa8f[89]](function(_0xa4edx2d){return db[_0xfa8f[56]][_0xfa8f[48]]({where:{CustomReportId:_0xa4edx28[_0xfa8f[79]][_0xfa8f[78]]},transaction:_0xa4edx2d})[_0xfa8f[45]](function(_0xa4edx2e){var _0xa4edx2f=_[_0xfa8f[72]](_0xa4edx28[_0xfa8f[82]],function(_0xa4edx30){delete _0xa4edx30[_0xfa8f[78]];_0xa4edx30[_0xfa8f[88]]= _0xa4edx28[_0xfa8f[79]][_0xfa8f[78]];return _0xa4edx30});return db[_0xfa8f[56]][_0xfa8f[83]](_0xa4edx2f,{transaction:_0xa4edx2d})})})[_0xfa8f[45]](function(){return db[_0xfa8f[56]][_0xfa8f[87]]({where:{CustomReportId:_0xa4edx28[_0xfa8f[79]][_0xfa8f[78]]}})})}})[_0xfa8f[45]](respondWithResult(_0xa4edx15,null,_0xfa8f[86]))[_0xfa8f[75]](handleError(_0xa4edx15,null,_0xfa8f[86]))}
\ No newline at end of file
+var _0x2e3a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x46\x69\x65\x6C\x64\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74"];_0x2e3a[0];var jsonpatch=require(_0x2e3a[1]);var rp=require(_0x2e3a[2]);var moment=require(_0x2e3a[3]);var BPromise=require(_0x2e3a[4]);var util=require(_0x2e3a[5]);var path=require(_0x2e3a[6]);var sox=require(_0x2e3a[7]);var ejs=require(_0x2e3a[8]);var fs=require(_0x2e3a[9]);var _=require(_0x2e3a[10]);var squel=require(_0x2e3a[11]);var crypto=require(_0x2e3a[12]);var jsforce=require(_0x2e3a[13]);var toCsv=require(_0x2e3a[14]);var qs=require(_0x2e3a[15]);var logger=require(_0x2e3a[17])(_0x2e3a[16]);var utils=require(_0x2e3a[18]);var config=require(_0x2e3a[19]);var db=require(_0x2e3a[21])[_0x2e3a[20]];function respondWithStatusCode(_0xf294x15,_0xf294x16,_0xf294x17){_0xf294x16= _0xf294x16|| 204;return function(_0xf294x18){if(_0xf294x18){logger[_0x2e3a[24]](_0x2e3a[22],_0xf294x17,_0xf294x16,_0x2e3a[23]);logger[_0x2e3a[26]](_0x2e3a[25],_0xf294x17,_0xf294x16,_0x2e3a[23]);return _0xf294x15[_0x2e3a[27]](_0xf294x16)};return _0xf294x15[_0x2e3a[29]](304)[_0x2e3a[28]]()}}function respondWithResult(_0xf294x15,_0xf294x16,_0xf294x17){_0xf294x16= _0xf294x16|| 200;return function(_0xf294x18){if(_0xf294x18){logger[_0x2e3a[24]](_0x2e3a[22],_0xf294x17,_0xf294x16,_0x2e3a[30]);logger[_0x2e3a[26]](_0x2e3a[25],_0xf294x17,_0xf294x16,_0x2e3a[30],JSON[_0x2e3a[31]](_0xf294x18));return _0xf294x15[_0x2e3a[29]](_0xf294x16)[_0x2e3a[32]](_0xf294x18)};return _0xf294x15[_0x2e3a[29]](304)[_0x2e3a[28]]()}}function respondWithFilteredResult(_0xf294x15,_0xf294x1b,_0xf294x17){return function(_0xf294x18){if(_0xf294x18){var _0xf294x1c=_0xf294x18[_0x2e3a[33]],_0xf294x1d=_0xf294x1b[_0x2e3a[34]],_0xf294x1e=_0xf294x1b[_0x2e3a[34]]+ _0xf294x1b[_0x2e3a[35]],_0xf294x16;if(_0xf294x1e>= _0xf294x1c){_0xf294x1e= _0xf294x1c;_0xf294x16= 200}else {_0xf294x16= 206};_0xf294x15[_0x2e3a[29]](_0xf294x16);logger[_0x2e3a[24]](_0x2e3a[22],_0xf294x17,_0xf294x16,_0x2e3a[36]);logger[_0x2e3a[26]](_0x2e3a[25],_0xf294x17,_0xf294x16,_0x2e3a[30],JSON[_0x2e3a[31]](_0xf294x18));return _0xf294x15[_0x2e3a[40]](_0x2e3a[37],_0xf294x1d+ _0x2e3a[38]+ _0xf294x1e+ _0x2e3a[39]+ _0xf294x1c)[_0x2e3a[32]](_0xf294x18)};return null}}function patchUpdates(_0xf294x20){return function(_0xf294x18){try{jsonpatch[_0x2e3a[41]](_0xf294x18,_0xf294x20,true)}catch(err){return BPromise[_0x2e3a[42]](err)};return _0xf294x18[_0x2e3a[43]]()}}function saveUpdates(_0xf294x22,_0xf294x16,_0xf294x17){return function(_0xf294x18){if(_0xf294x18){return _0xf294x18[_0x2e3a[46]](_0xf294x22)[_0x2e3a[45]](function(_0xf294x23){logger[_0x2e3a[24]](_0x2e3a[22],_0xf294x17,_0xf294x16,_0x2e3a[44]);logger[_0x2e3a[26]](_0x2e3a[25],_0xf294x17,_0xf294x16,_0x2e3a[44],JSON[_0x2e3a[31]](_0xf294x18));return _0xf294x23})};return null}}function removeEntity(_0xf294x15,_0xf294x16,_0xf294x17){return function(_0xf294x18){if(_0xf294x18){return _0xf294x18[_0x2e3a[48]]()[_0x2e3a[45]](function(){logger[_0x2e3a[24]](_0x2e3a[22],_0xf294x17,_0xf294x16,_0x2e3a[47]);logger[_0x2e3a[26]](_0x2e3a[25],_0xf294x17,_0xf294x16,_0x2e3a[47],JSON[_0x2e3a[31]](_0xf294x18));_0xf294x15[_0x2e3a[29]](204)[_0x2e3a[28]]()})}}}function handleEntityNotFound(_0xf294x15,_0xf294x16,_0xf294x17){return function(_0xf294x18){if(!_0xf294x18){logger[_0x2e3a[50]](_0x2e3a[22],_0xf294x17,404,_0x2e3a[49]);_0xf294x15[_0x2e3a[29]](404)[_0x2e3a[28]]();return null};return _0xf294x18}}function handleError(_0xf294x15,_0xf294x16,_0xf294x17){_0xf294x16= _0xf294x16|| 500;return function(_0xf294x27){logger[_0x2e3a[50]](_0x2e3a[22],_0xf294x17,_0xf294x16,JSON[_0x2e3a[31]](_0xf294x27));delete _0xf294x27[_0x2e3a[51]];_0xf294x15[_0x2e3a[29]](_0xf294x16)[_0x2e3a[52]](_0xf294x27)}}exports[_0x2e3a[53]]= function(_0xf294x28,_0xf294x15){var _0xf294x1b={},_0xf294x29={};_0xf294x29[_0x2e3a[54]]= _[_0x2e3a[57]](db[_0x2e3a[56]][_0x2e3a[55]]);_0xf294x29[_0x2e3a[58]]= _[_0x2e3a[57]](_0xf294x28[_0x2e3a[58]]);_0xf294x29[_0x2e3a[59]]= _[_0x2e3a[60]](_0xf294x29[_0x2e3a[54]],_0xf294x29[_0x2e3a[58]]);_0xf294x1b[_0x2e3a[61]]= _[_0x2e3a[60]](_0xf294x29[_0x2e3a[54]],qs[_0x2e3a[62]](_0xf294x28[_0x2e3a[58]][_0x2e3a[62]]));_0xf294x1b[_0x2e3a[61]]= (_0xf294x1b[_0x2e3a[61]][_0x2e3a[63]])?_0xf294x1b[_0x2e3a[61]]:_0xf294x29[_0x2e3a[54]];if(!_0xf294x28[_0x2e3a[58]][_0x2e3a[65]](_0x2e3a[64])){_0xf294x1b[_0x2e3a[35]]= qs[_0x2e3a[35]](_0xf294x28[_0x2e3a[58]][_0x2e3a[35]]);_0xf294x1b[_0x2e3a[34]]= qs[_0x2e3a[34]](_0xf294x28[_0x2e3a[58]][_0x2e3a[34]])};_0xf294x1b[_0x2e3a[66]]= qs[_0x2e3a[67]](_0xf294x28[_0x2e3a[58]][_0x2e3a[67]]);_0xf294x1b[_0x2e3a[68]]= qs[_0x2e3a[59]](_[_0x2e3a[69]](_0xf294x28[_0x2e3a[58]],_0xf294x29[_0x2e3a[59]]));if(_0xf294x28[_0x2e3a[58]][_0x2e3a[70]]){_0xf294x1b[_0x2e3a[68]]= _[_0x2e3a[73]](_0xf294x1b[_0x2e3a[68]],{$or:_[_0x2e3a[72]](_0xf294x1b[_0x2e3a[61]],function(_0xf294x2a){var _0xf294x2b={};_0xf294x2b[_0xf294x2a]= {$like:_0x2e3a[71]+ _0xf294x28[_0x2e3a[58]][_0x2e3a[70]]+ _0x2e3a[71]};return _0xf294x2b})})};_0xf294x1b= _[_0x2e3a[73]]({},_0xf294x1b,_0xf294x28[_0x2e3a[74]]);return db[_0x2e3a[56]][_0x2e3a[76]](_0xf294x1b)[_0x2e3a[45]](respondWithFilteredResult(_0xf294x15,_0xf294x1b,_0x2e3a[53]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[53]))};exports[_0x2e3a[77]]= function(_0xf294x28,_0xf294x15){var _0xf294x1b={raw:false,where:{id:_0xf294x28[_0x2e3a[79]][_0x2e3a[78]]}},_0xf294x29={};_0xf294x29[_0x2e3a[54]]= _[_0x2e3a[57]](db[_0x2e3a[56]][_0x2e3a[55]]);_0xf294x29[_0x2e3a[58]]= _[_0x2e3a[57]](_0xf294x28[_0x2e3a[58]]);_0xf294x29[_0x2e3a[59]]= _[_0x2e3a[60]](_0xf294x29[_0x2e3a[54]],_0xf294x29[_0x2e3a[58]]);_0xf294x1b[_0x2e3a[61]]= _[_0x2e3a[60]](_0xf294x29[_0x2e3a[54]],qs[_0x2e3a[62]](_0xf294x28[_0x2e3a[58]][_0x2e3a[62]]));_0xf294x1b[_0x2e3a[61]]= (_0xf294x1b[_0x2e3a[61]][_0x2e3a[63]])?_0xf294x1b[_0x2e3a[61]]:_0xf294x29[_0x2e3a[54]];_0xf294x1b= _[_0x2e3a[73]]({},_0xf294x1b,_0xf294x28[_0x2e3a[74]]);return db[_0x2e3a[56]][_0x2e3a[80]](_0xf294x1b)[_0x2e3a[45]](handleEntityNotFound(_0xf294x15,null,_0x2e3a[77]))[_0x2e3a[45]](respondWithResult(_0xf294x15,null,_0x2e3a[77]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[77]))};exports[_0x2e3a[81]]= function(_0xf294x28,_0xf294x15){return db[_0x2e3a[56]][_0x2e3a[81]](_0xf294x28[_0x2e3a[82]],{})[_0x2e3a[45]](respondWithResult(_0xf294x15,201,_0x2e3a[81]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[81]))};exports[_0x2e3a[83]]= function(_0xf294x28,_0xf294x15){return db[_0x2e3a[56]][_0x2e3a[83]](_0xf294x28[_0x2e3a[82]],{raw:false,individualHooks:true})[_0x2e3a[45]](respondWithResult(_0xf294x15,201,_0x2e3a[83]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[83]))};exports[_0x2e3a[46]]= function(_0xf294x28,_0xf294x15){if(_0xf294x28[_0x2e3a[82]][_0x2e3a[78]]){delete _0xf294x28[_0x2e3a[82]][_0x2e3a[78]]};return db[_0x2e3a[56]][_0x2e3a[80]]({where:{id:_0xf294x28[_0x2e3a[79]][_0x2e3a[78]]}})[_0x2e3a[45]](handleEntityNotFound(_0xf294x15,null,_0x2e3a[46]))[_0x2e3a[45]](saveUpdates(_0xf294x28[_0x2e3a[82]],null,_0x2e3a[46]))[_0x2e3a[45]](respondWithResult(_0xf294x15,null,_0x2e3a[46]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[46]))};exports[_0x2e3a[48]]= function(_0xf294x28,_0xf294x15){return db[_0x2e3a[56]][_0x2e3a[80]]({where:{id:_0xf294x28[_0x2e3a[79]][_0x2e3a[78]]}})[_0x2e3a[45]](handleEntityNotFound(_0xf294x15,null,_0x2e3a[48]))[_0x2e3a[45]](removeEntity(_0xf294x15,null,_0x2e3a[48]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[48]))};exports[_0x2e3a[84]]= function(_0xf294x28,_0xf294x15){return db[_0x2e3a[56]][_0x2e3a[48]]({where:{id:_0xf294x28[_0x2e3a[58]][_0x2e3a[85]]|| []},raw:false,individualHooks:true})[_0x2e3a[45]](respondWithResult(_0xf294x15,204,_0x2e3a[84]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[84]))};exports[_0x2e3a[86]]= function(_0xf294x28,_0xf294x15,_0xf294x2c){return db[_0x2e3a[92]][_0x2e3a[91]]({where:{id:_0xf294x28[_0x2e3a[79]][_0x2e3a[78]]}})[_0x2e3a[45]](handleEntityNotFound(_0xf294x15,null,_0x2e3a[86]))[_0x2e3a[45]](function(_0xf294x18){if(_0xf294x18){return db[_0x2e3a[90]][_0x2e3a[89]](function(_0xf294x2d){return db[_0x2e3a[56]][_0x2e3a[48]]({where:{CustomReportId:_0xf294x28[_0x2e3a[79]][_0x2e3a[78]]},transaction:_0xf294x2d})[_0x2e3a[45]](function(_0xf294x2e){var _0xf294x2f=_[_0x2e3a[72]](_0xf294x28[_0x2e3a[82]],function(_0xf294x30){delete _0xf294x30[_0x2e3a[78]];_0xf294x30[_0x2e3a[88]]= _0xf294x28[_0x2e3a[79]][_0x2e3a[78]];return _0xf294x30});return db[_0x2e3a[56]][_0x2e3a[83]](_0xf294x2f,{transaction:_0xf294x2d})})})[_0x2e3a[45]](function(){return db[_0x2e3a[56]][_0x2e3a[87]]({where:{CustomReportId:_0xf294x28[_0x2e3a[79]][_0x2e3a[78]]}})})}})[_0x2e3a[45]](respondWithResult(_0xf294x15,null,_0x2e3a[86]))[_0x2e3a[75]](handleError(_0xf294x15,null,_0x2e3a[86]))}
\ No newline at end of file
index 936f71a..1d77632 100644 (file)
@@ -1 +1 @@
-var _0x4bfd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x72\x65\x70\x6F\x72\x74\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x4bfd[0];var _=require(_0x4bfd[1]);var util=require(_0x4bfd[2]);var logger=require(_0x4bfd[4])(_0x4bfd[3]);var attributes=require(_0x4bfd[5]);module[_0x4bfd[6]]= function(_0xfac3x5,_0xfac3x6){return _0xfac3x5[_0x4bfd[9]](_0x4bfd[7],attributes,{tableName:_0x4bfd[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x853a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x72\x65\x70\x6F\x72\x74\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x853a[0];var _=require(_0x853a[1]);var util=require(_0x853a[2]);var logger=require(_0x853a[4])(_0x853a[3]);var attributes=require(_0x853a[5]);module[_0x853a[6]]= function(_0x31eax5,_0x31eax6){return _0x31eax5[_0x853a[9]](_0x853a[7],attributes,{tableName:_0x853a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 8534905..e697cb7 100644 (file)
@@ -1 +1 @@
-var _0xda43=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xda43[0];var _=require(_0xda43[1]);var util=require(_0xda43[2]);var moment=require(_0xda43[3]);var BPromise=require(_0xda43[4]);var db=require(_0xda43[6])[_0xda43[5]];var utils=require(_0xda43[7]);var logger=require(_0xda43[9])(_0xda43[8]);var jayson=require(_0xda43[10]);var client=jayson[_0xda43[12]][_0xda43[11]]({port:9002});function respondWithRpcPromise(_0x3aadxb,_0x3aadxc,_0x3aadxd){return  new BPromise(function(_0x3aadxe,_0x3aadxf){return client[_0xda43[25]](_0x3aadxb,_0x3aadxd)[_0xda43[24]](function(_0x3aadx11){logger[_0xda43[17]](_0xda43[13],_0x3aadxc,_0xda43[16]);logger[_0xda43[20]](_0xda43[18],_0x3aadxc,_0xda43[16],JSON[_0xda43[19]](_0x3aadx11));if(_0x3aadx11[_0xda43[14]]){if(_0x3aadx11[_0xda43[14]][_0xda43[21]]=== 500){logger[_0xda43[14]](_0xda43[13],_0x3aadxc,_0x3aadx11[_0xda43[14]][_0xda43[22]]);return _0x3aadxf(_0x3aadx11[_0xda43[14]][_0xda43[22]])};logger[_0xda43[14]](_0xda43[13],_0x3aadxc,_0x3aadx11[_0xda43[14]][_0xda43[22]]);return _0x3aadxe(_0x3aadx11[_0xda43[14]][_0xda43[22]])}else {logger[_0xda43[17]](_0xda43[13],_0x3aadxc,_0xda43[16]);_0x3aadxe(_0x3aadx11[_0xda43[23]][_0xda43[22]])}})[_0xda43[15]](function(_0x3aadx10){logger[_0xda43[14]](_0xda43[13],_0x3aadxc,_0x3aadx10);_0x3aadxf(_0x3aadx10)})})}
\ No newline at end of file
+var _0x6e66=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6e66[0];var _=require(_0x6e66[1]);var util=require(_0x6e66[2]);var moment=require(_0x6e66[3]);var BPromise=require(_0x6e66[4]);var db=require(_0x6e66[6])[_0x6e66[5]];var utils=require(_0x6e66[7]);var logger=require(_0x6e66[9])(_0x6e66[8]);var jayson=require(_0x6e66[10]);var client=jayson[_0x6e66[12]][_0x6e66[11]]({port:9002});function respondWithRpcPromise(_0x4dfbxb,_0x4dfbxc,_0x4dfbxd){return  new BPromise(function(_0x4dfbxe,_0x4dfbxf){return client[_0x6e66[25]](_0x4dfbxb,_0x4dfbxd)[_0x6e66[24]](function(_0x4dfbx11){logger[_0x6e66[17]](_0x6e66[13],_0x4dfbxc,_0x6e66[16]);logger[_0x6e66[20]](_0x6e66[18],_0x4dfbxc,_0x6e66[16],JSON[_0x6e66[19]](_0x4dfbx11));if(_0x4dfbx11[_0x6e66[14]]){if(_0x4dfbx11[_0x6e66[14]][_0x6e66[21]]=== 500){logger[_0x6e66[14]](_0x6e66[13],_0x4dfbxc,_0x4dfbx11[_0x6e66[14]][_0x6e66[22]]);return _0x4dfbxf(_0x4dfbx11[_0x6e66[14]][_0x6e66[22]])};logger[_0x6e66[14]](_0x6e66[13],_0x4dfbxc,_0x4dfbx11[_0x6e66[14]][_0x6e66[22]]);return _0x4dfbxe(_0x4dfbx11[_0x6e66[14]][_0x6e66[22]])}else {logger[_0x6e66[17]](_0x6e66[13],_0x4dfbxc,_0x6e66[16]);_0x4dfbxe(_0x4dfbx11[_0x6e66[23]][_0x6e66[22]])}})[_0x6e66[15]](function(_0x4dfbx10){logger[_0x6e66[14]](_0x6e66[13],_0x4dfbxc,_0x4dfbx10);_0x4dfbxf(_0x4dfbx10)})})}
\ No newline at end of file
index 4a909d3..3b9f818 100644 (file)
@@ -1 +1 @@
-var _0x1477=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x2F\x3A\x69\x64\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x61\x64\x64\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x64\x65\x73\x74\x72\x6F\x79\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x1477[0];var multer=require(_0x1477[1]);var util=require(_0x1477[2]);var path=require(_0x1477[3]);var express=require(_0x1477[4]);var router=express.Router();var auth=require(_0x1477[5]);var config=require(_0x1477[6]);var controller=require(_0x1477[7]);router[_0x1477[11]](_0x1477[8],auth[_0x1477[9]](),controller[_0x1477[10]]);router[_0x1477[11]](_0x1477[12],auth[_0x1477[9]](),controller[_0x1477[13]]);router[_0x1477[15]](_0x1477[8],auth[_0x1477[9]](),controller[_0x1477[14]]);router[_0x1477[15]](_0x1477[16],auth[_0x1477[9]](),controller[_0x1477[17]]);router[_0x1477[15]](_0x1477[18],auth[_0x1477[9]](),controller[_0x1477[19]]);router[_0x1477[21]](_0x1477[12],auth[_0x1477[9]](),controller[_0x1477[20]]);router[_0x1477[24]](_0x1477[22],auth[_0x1477[9]](),controller[_0x1477[23]]);router[_0x1477[24]](_0x1477[12],auth[_0x1477[9]](),controller[_0x1477[25]]);module[_0x1477[26]]= router
\ No newline at end of file
+var _0x4976=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x2F\x3A\x69\x64\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x61\x64\x64\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x64\x65\x73\x74\x72\x6F\x79\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x4976[0];var multer=require(_0x4976[1]);var util=require(_0x4976[2]);var path=require(_0x4976[3]);var express=require(_0x4976[4]);var router=express.Router();var auth=require(_0x4976[5]);var config=require(_0x4976[6]);var controller=require(_0x4976[7]);router[_0x4976[11]](_0x4976[8],auth[_0x4976[9]](),controller[_0x4976[10]]);router[_0x4976[11]](_0x4976[12],auth[_0x4976[9]](),controller[_0x4976[13]]);router[_0x4976[15]](_0x4976[8],auth[_0x4976[9]](),controller[_0x4976[14]]);router[_0x4976[15]](_0x4976[16],auth[_0x4976[9]](),controller[_0x4976[17]]);router[_0x4976[15]](_0x4976[18],auth[_0x4976[9]](),controller[_0x4976[19]]);router[_0x4976[21]](_0x4976[12],auth[_0x4976[9]](),controller[_0x4976[20]]);router[_0x4976[24]](_0x4976[22],auth[_0x4976[9]](),controller[_0x4976[23]]);router[_0x4976[24]](_0x4976[12],auth[_0x4976[9]](),controller[_0x4976[25]]);module[_0x4976[26]]= router
\ No newline at end of file
index 794f330..4b3eea6 100644 (file)
@@ -1 +1 @@
-var _0xd9cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54"];_0xd9cb[0];var Sequelize=require(_0xd9cb[1]);module[_0xd9cb[2]]= {name:{type:Sequelize[_0xd9cb[3]],allowNull:false,unique:_0xd9cb[4]},table:{type:Sequelize[_0xd9cb[3]]},metric:{type:Sequelize[_0xd9cb[5]]},description:{type:Sequelize[_0xd9cb[3]]}}
\ No newline at end of file
+var _0x6904=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54"];_0x6904[0];var Sequelize=require(_0x6904[1]);module[_0x6904[2]]= {name:{type:Sequelize[_0x6904[3]],allowNull:false,unique:_0x6904[4]},table:{type:Sequelize[_0x6904[3]]},metric:{type:Sequelize[_0x6904[5]]},description:{type:Sequelize[_0x6904[3]]}}
\ No newline at end of file
index 7596969..8f5dc34 100644 (file)
@@ -1 +1 @@
-var _0xea28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xea28[0];var jsonpatch=require(_0xea28[1]);var rp=require(_0xea28[2]);var moment=require(_0xea28[3]);var BPromise=require(_0xea28[4]);var util=require(_0xea28[5]);var path=require(_0xea28[6]);var sox=require(_0xea28[7]);var ejs=require(_0xea28[8]);var fs=require(_0xea28[9]);var _=require(_0xea28[10]);var squel=require(_0xea28[11]);var crypto=require(_0xea28[12]);var jsforce=require(_0xea28[13]);var toCsv=require(_0xea28[14]);var qs=require(_0xea28[15]);var logger=require(_0xea28[17])(_0xea28[16]);var utils=require(_0xea28[18]);var config=require(_0xea28[19]);var db=require(_0xea28[21])[_0xea28[20]];function respondWithStatusCode(_0x70c3x15,_0x70c3x16,_0x70c3x17){_0x70c3x16= _0x70c3x16|| 204;return function(_0x70c3x18){if(_0x70c3x18){logger[_0xea28[24]](_0xea28[22],_0x70c3x17,_0x70c3x16,_0xea28[23]);logger[_0xea28[26]](_0xea28[25],_0x70c3x17,_0x70c3x16,_0xea28[23]);return _0x70c3x15[_0xea28[27]](_0x70c3x16)};return _0x70c3x15[_0xea28[29]](304)[_0xea28[28]]()}}function respondWithResult(_0x70c3x15,_0x70c3x16,_0x70c3x17){_0x70c3x16= _0x70c3x16|| 200;return function(_0x70c3x18){if(_0x70c3x18){logger[_0xea28[24]](_0xea28[22],_0x70c3x17,_0x70c3x16,_0xea28[30]);logger[_0xea28[26]](_0xea28[25],_0x70c3x17,_0x70c3x16,_0xea28[30],JSON[_0xea28[31]](_0x70c3x18));return _0x70c3x15[_0xea28[29]](_0x70c3x16)[_0xea28[32]](_0x70c3x18)};return _0x70c3x15[_0xea28[29]](304)[_0xea28[28]]()}}function respondWithFilteredResult(_0x70c3x15,_0x70c3x1b,_0x70c3x17){return function(_0x70c3x18){if(_0x70c3x18){var _0x70c3x1c=_0x70c3x18[_0xea28[33]],_0x70c3x1d=_0x70c3x1b[_0xea28[34]],_0x70c3x1e=_0x70c3x1b[_0xea28[34]]+ _0x70c3x1b[_0xea28[35]],_0x70c3x16;if(_0x70c3x1e>= _0x70c3x1c){_0x70c3x1e= _0x70c3x1c;_0x70c3x16= 200}else {_0x70c3x16= 206};_0x70c3x15[_0xea28[29]](_0x70c3x16);logger[_0xea28[24]](_0xea28[22],_0x70c3x17,_0x70c3x16,_0xea28[36]);logger[_0xea28[26]](_0xea28[25],_0x70c3x17,_0x70c3x16,_0xea28[30],JSON[_0xea28[31]](_0x70c3x18));return _0x70c3x15[_0xea28[40]](_0xea28[37],_0x70c3x1d+ _0xea28[38]+ _0x70c3x1e+ _0xea28[39]+ _0x70c3x1c)[_0xea28[32]](_0x70c3x18)};return null}}function patchUpdates(_0x70c3x20){return function(_0x70c3x18){try{jsonpatch[_0xea28[41]](_0x70c3x18,_0x70c3x20,true)}catch(err){return BPromise[_0xea28[42]](err)};return _0x70c3x18[_0xea28[43]]()}}function saveUpdates(_0x70c3x22,_0x70c3x16,_0x70c3x17){return function(_0x70c3x18){if(_0x70c3x18){return _0x70c3x18[_0xea28[46]](_0x70c3x22)[_0xea28[45]](function(_0x70c3x23){logger[_0xea28[24]](_0xea28[22],_0x70c3x17,_0x70c3x16,_0xea28[44]);logger[_0xea28[26]](_0xea28[25],_0x70c3x17,_0x70c3x16,_0xea28[44],JSON[_0xea28[31]](_0x70c3x18));return _0x70c3x23})};return null}}function removeEntity(_0x70c3x15,_0x70c3x16,_0x70c3x17){return function(_0x70c3x18){if(_0x70c3x18){return _0x70c3x18[_0xea28[48]]()[_0xea28[45]](function(){logger[_0xea28[24]](_0xea28[22],_0x70c3x17,_0x70c3x16,_0xea28[47]);logger[_0xea28[26]](_0xea28[25],_0x70c3x17,_0x70c3x16,_0xea28[47],JSON[_0xea28[31]](_0x70c3x18));_0x70c3x15[_0xea28[29]](204)[_0xea28[28]]()})}}}function handleEntityNotFound(_0x70c3x15,_0x70c3x16,_0x70c3x17){return function(_0x70c3x18){if(!_0x70c3x18){logger[_0xea28[50]](_0xea28[22],_0x70c3x17,404,_0xea28[49]);_0x70c3x15[_0xea28[29]](404)[_0xea28[28]]();return null};return _0x70c3x18}}function handleError(_0x70c3x15,_0x70c3x16,_0x70c3x17){_0x70c3x16= _0x70c3x16|| 500;return function(_0x70c3x27){logger[_0xea28[50]](_0xea28[22],_0x70c3x17,_0x70c3x16,JSON[_0xea28[31]](_0x70c3x27));delete _0x70c3x27[_0xea28[51]];_0x70c3x15[_0xea28[29]](_0x70c3x16)[_0xea28[52]](_0x70c3x27)}}exports[_0xea28[53]]= function(_0x70c3x28,_0x70c3x15){var _0x70c3x1b={},_0x70c3x29={};_0x70c3x29[_0xea28[54]]= _[_0xea28[57]](db[_0xea28[56]][_0xea28[55]]);_0x70c3x29[_0xea28[58]]= _[_0xea28[57]](_0x70c3x28[_0xea28[58]]);_0x70c3x29[_0xea28[59]]= _[_0xea28[60]](_0x70c3x29[_0xea28[54]],_0x70c3x29[_0xea28[58]]);_0x70c3x1b[_0xea28[61]]= _[_0xea28[60]](_0x70c3x29[_0xea28[54]],qs[_0xea28[62]](_0x70c3x28[_0xea28[58]][_0xea28[62]]));_0x70c3x1b[_0xea28[61]]= (_0x70c3x1b[_0xea28[61]][_0xea28[63]])?_0x70c3x1b[_0xea28[61]]:_0x70c3x29[_0xea28[54]];if(!_0x70c3x28[_0xea28[58]][_0xea28[65]](_0xea28[64])){_0x70c3x1b[_0xea28[35]]= qs[_0xea28[35]](_0x70c3x28[_0xea28[58]][_0xea28[35]]);_0x70c3x1b[_0xea28[34]]= qs[_0xea28[34]](_0x70c3x28[_0xea28[58]][_0xea28[34]])};_0x70c3x1b[_0xea28[66]]= qs[_0xea28[67]](_0x70c3x28[_0xea28[58]][_0xea28[67]]);_0x70c3x1b[_0xea28[68]]= qs[_0xea28[59]](_[_0xea28[69]](_0x70c3x28[_0xea28[58]],_0x70c3x29[_0xea28[59]]));if(_0x70c3x28[_0xea28[58]][_0xea28[70]]){_0x70c3x1b[_0xea28[68]]= _[_0xea28[73]](_0x70c3x1b[_0xea28[68]],{$or:_[_0xea28[72]](_0x70c3x1b[_0xea28[61]],function(_0x70c3x2a){var _0x70c3x2b={};_0x70c3x2b[_0x70c3x2a]= {$like:_0xea28[71]+ _0x70c3x28[_0xea28[58]][_0xea28[70]]+ _0xea28[71]};return _0x70c3x2b})})};_0x70c3x1b= _[_0xea28[73]]({},_0x70c3x1b,_0x70c3x28[_0xea28[74]]);return db[_0xea28[56]][_0xea28[76]](_0x70c3x1b)[_0xea28[45]](respondWithFilteredResult(_0x70c3x15,_0x70c3x1b,_0xea28[53]))[_0xea28[75]](handleError(_0x70c3x15,null,_0xea28[53]))};exports[_0xea28[77]]= function(_0x70c3x28,_0x70c3x15){var _0x70c3x1b={raw:true,where:{id:_0x70c3x28[_0xea28[79]][_0xea28[78]]}},_0x70c3x29={};_0x70c3x29[_0xea28[54]]= _[_0xea28[57]](db[_0xea28[56]][_0xea28[55]]);_0x70c3x29[_0xea28[58]]= _[_0xea28[57]](_0x70c3x28[_0xea28[58]]);_0x70c3x29[_0xea28[59]]= _[_0xea28[60]](_0x70c3x29[_0xea28[54]],_0x70c3x29[_0xea28[58]]);_0x70c3x1b[_0xea28[61]]= _[_0xea28[60]](_0x70c3x29[_0xea28[54]],qs[_0xea28[62]](_0x70c3x28[_0xea28[58]][_0xea28[62]]));_0x70c3x1b[_0xea28[61]]= (_0x70c3x1b[_0xea28[61]][_0xea28[63]])?_0x70c3x1b[_0xea28[61]]:_0x70c3x29[_0xea28[54]];_0x70c3x1b= _[_0xea28[73]]({},_0x70c3x1b,_0x70c3x28[_0xea28[74]]);return db[_0xea28[56]][_0xea28[80]](_0x70c3x1b)[_0xea28[45]](handleEntityNotFound(_0x70c3x15,null,_0xea28[77]))[_0xea28[45]](respondWithResult(_0x70c3x15,null,_0xea28[77]))[_0xea28[75]](handleError(_0x70c3x15,null,_0xea28[77]))};exports[_0xea28[81]]= function(_0x70c3x28,_0x70c3x15){return db[_0xea28[56]][_0xea28[81]](_0x70c3x28[_0xea28[82]],{})[_0xea28[45]](respondWithResult(_0x70c3x15,201,_0xea28[81]))[_0xea28[75]](handleError(_0x70c3x15,null,_0xea28[81]))};exports[_0xea28[46]]= function(_0x70c3x28,_0x70c3x15){if(_0x70c3x28[_0xea28[82]][_0xea28[78]]){delete _0x70c3x28[_0xea28[82]][_0xea28[78]]};return db[_0xea28[56]][_0xea28[80]]({where:{id:_0x70c3x28[_0xea28[79]][_0xea28[78]]}})[_0xea28[45]](handleEntityNotFound(_0x70c3x15,null,_0xea28[46]))[_0xea28[45]](saveUpdates(_0x70c3x28[_0xea28[82]],null,_0xea28[46]))[_0xea28[45]](respondWithResult(_0x70c3x15,null,_0xea28[46]))[_0xea28[75]](handleError(_0x70c3x15,null,_0xea28[46]))};exports[_0xea28[48]]= function(_0x70c3x28,_0x70c3x15){return db[_0xea28[56]][_0xea28[80]]({where:{id:_0x70c3x28[_0xea28[79]][_0xea28[78]]}})[_0xea28[45]](handleEntityNotFound(_0x70c3x15,null,_0xea28[48]))[_0xea28[45]](removeEntity(_0x70c3x15,null,_0xea28[48]))[_0xea28[75]](handleError(_0x70c3x15,null,_0xea28[48]))}
\ No newline at end of file
+var _0x5a5e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5a5e[0];var jsonpatch=require(_0x5a5e[1]);var rp=require(_0x5a5e[2]);var moment=require(_0x5a5e[3]);var BPromise=require(_0x5a5e[4]);var util=require(_0x5a5e[5]);var path=require(_0x5a5e[6]);var sox=require(_0x5a5e[7]);var ejs=require(_0x5a5e[8]);var fs=require(_0x5a5e[9]);var _=require(_0x5a5e[10]);var squel=require(_0x5a5e[11]);var crypto=require(_0x5a5e[12]);var jsforce=require(_0x5a5e[13]);var toCsv=require(_0x5a5e[14]);var qs=require(_0x5a5e[15]);var logger=require(_0x5a5e[17])(_0x5a5e[16]);var utils=require(_0x5a5e[18]);var config=require(_0x5a5e[19]);var db=require(_0x5a5e[21])[_0x5a5e[20]];function respondWithStatusCode(_0xc067x15,_0xc067x16,_0xc067x17){_0xc067x16= _0xc067x16|| 204;return function(_0xc067x18){if(_0xc067x18){logger[_0x5a5e[24]](_0x5a5e[22],_0xc067x17,_0xc067x16,_0x5a5e[23]);logger[_0x5a5e[26]](_0x5a5e[25],_0xc067x17,_0xc067x16,_0x5a5e[23]);return _0xc067x15[_0x5a5e[27]](_0xc067x16)};return _0xc067x15[_0x5a5e[29]](304)[_0x5a5e[28]]()}}function respondWithResult(_0xc067x15,_0xc067x16,_0xc067x17){_0xc067x16= _0xc067x16|| 200;return function(_0xc067x18){if(_0xc067x18){logger[_0x5a5e[24]](_0x5a5e[22],_0xc067x17,_0xc067x16,_0x5a5e[30]);logger[_0x5a5e[26]](_0x5a5e[25],_0xc067x17,_0xc067x16,_0x5a5e[30],JSON[_0x5a5e[31]](_0xc067x18));return _0xc067x15[_0x5a5e[29]](_0xc067x16)[_0x5a5e[32]](_0xc067x18)};return _0xc067x15[_0x5a5e[29]](304)[_0x5a5e[28]]()}}function respondWithFilteredResult(_0xc067x15,_0xc067x1b,_0xc067x17){return function(_0xc067x18){if(_0xc067x18){var _0xc067x1c=_0xc067x18[_0x5a5e[33]],_0xc067x1d=_0xc067x1b[_0x5a5e[34]],_0xc067x1e=_0xc067x1b[_0x5a5e[34]]+ _0xc067x1b[_0x5a5e[35]],_0xc067x16;if(_0xc067x1e>= _0xc067x1c){_0xc067x1e= _0xc067x1c;_0xc067x16= 200}else {_0xc067x16= 206};_0xc067x15[_0x5a5e[29]](_0xc067x16);logger[_0x5a5e[24]](_0x5a5e[22],_0xc067x17,_0xc067x16,_0x5a5e[36]);logger[_0x5a5e[26]](_0x5a5e[25],_0xc067x17,_0xc067x16,_0x5a5e[30],JSON[_0x5a5e[31]](_0xc067x18));return _0xc067x15[_0x5a5e[40]](_0x5a5e[37],_0xc067x1d+ _0x5a5e[38]+ _0xc067x1e+ _0x5a5e[39]+ _0xc067x1c)[_0x5a5e[32]](_0xc067x18)};return null}}function patchUpdates(_0xc067x20){return function(_0xc067x18){try{jsonpatch[_0x5a5e[41]](_0xc067x18,_0xc067x20,true)}catch(err){return BPromise[_0x5a5e[42]](err)};return _0xc067x18[_0x5a5e[43]]()}}function saveUpdates(_0xc067x22,_0xc067x16,_0xc067x17){return function(_0xc067x18){if(_0xc067x18){return _0xc067x18[_0x5a5e[46]](_0xc067x22)[_0x5a5e[45]](function(_0xc067x23){logger[_0x5a5e[24]](_0x5a5e[22],_0xc067x17,_0xc067x16,_0x5a5e[44]);logger[_0x5a5e[26]](_0x5a5e[25],_0xc067x17,_0xc067x16,_0x5a5e[44],JSON[_0x5a5e[31]](_0xc067x18));return _0xc067x23})};return null}}function removeEntity(_0xc067x15,_0xc067x16,_0xc067x17){return function(_0xc067x18){if(_0xc067x18){return _0xc067x18[_0x5a5e[48]]()[_0x5a5e[45]](function(){logger[_0x5a5e[24]](_0x5a5e[22],_0xc067x17,_0xc067x16,_0x5a5e[47]);logger[_0x5a5e[26]](_0x5a5e[25],_0xc067x17,_0xc067x16,_0x5a5e[47],JSON[_0x5a5e[31]](_0xc067x18));_0xc067x15[_0x5a5e[29]](204)[_0x5a5e[28]]()})}}}function handleEntityNotFound(_0xc067x15,_0xc067x16,_0xc067x17){return function(_0xc067x18){if(!_0xc067x18){logger[_0x5a5e[50]](_0x5a5e[22],_0xc067x17,404,_0x5a5e[49]);_0xc067x15[_0x5a5e[29]](404)[_0x5a5e[28]]();return null};return _0xc067x18}}function handleError(_0xc067x15,_0xc067x16,_0xc067x17){_0xc067x16= _0xc067x16|| 500;return function(_0xc067x27){logger[_0x5a5e[50]](_0x5a5e[22],_0xc067x17,_0xc067x16,JSON[_0x5a5e[31]](_0xc067x27));delete _0xc067x27[_0x5a5e[51]];_0xc067x15[_0x5a5e[29]](_0xc067x16)[_0x5a5e[52]](_0xc067x27)}}exports[_0x5a5e[53]]= function(_0xc067x28,_0xc067x15){var _0xc067x1b={},_0xc067x29={};_0xc067x29[_0x5a5e[54]]= _[_0x5a5e[57]](db[_0x5a5e[56]][_0x5a5e[55]]);_0xc067x29[_0x5a5e[58]]= _[_0x5a5e[57]](_0xc067x28[_0x5a5e[58]]);_0xc067x29[_0x5a5e[59]]= _[_0x5a5e[60]](_0xc067x29[_0x5a5e[54]],_0xc067x29[_0x5a5e[58]]);_0xc067x1b[_0x5a5e[61]]= _[_0x5a5e[60]](_0xc067x29[_0x5a5e[54]],qs[_0x5a5e[62]](_0xc067x28[_0x5a5e[58]][_0x5a5e[62]]));_0xc067x1b[_0x5a5e[61]]= (_0xc067x1b[_0x5a5e[61]][_0x5a5e[63]])?_0xc067x1b[_0x5a5e[61]]:_0xc067x29[_0x5a5e[54]];if(!_0xc067x28[_0x5a5e[58]][_0x5a5e[65]](_0x5a5e[64])){_0xc067x1b[_0x5a5e[35]]= qs[_0x5a5e[35]](_0xc067x28[_0x5a5e[58]][_0x5a5e[35]]);_0xc067x1b[_0x5a5e[34]]= qs[_0x5a5e[34]](_0xc067x28[_0x5a5e[58]][_0x5a5e[34]])};_0xc067x1b[_0x5a5e[66]]= qs[_0x5a5e[67]](_0xc067x28[_0x5a5e[58]][_0x5a5e[67]]);_0xc067x1b[_0x5a5e[68]]= qs[_0x5a5e[59]](_[_0x5a5e[69]](_0xc067x28[_0x5a5e[58]],_0xc067x29[_0x5a5e[59]]));if(_0xc067x28[_0x5a5e[58]][_0x5a5e[70]]){_0xc067x1b[_0x5a5e[68]]= _[_0x5a5e[73]](_0xc067x1b[_0x5a5e[68]],{$or:_[_0x5a5e[72]](_0xc067x1b[_0x5a5e[61]],function(_0xc067x2a){var _0xc067x2b={};_0xc067x2b[_0xc067x2a]= {$like:_0x5a5e[71]+ _0xc067x28[_0x5a5e[58]][_0x5a5e[70]]+ _0x5a5e[71]};return _0xc067x2b})})};_0xc067x1b= _[_0x5a5e[73]]({},_0xc067x1b,_0xc067x28[_0x5a5e[74]]);return db[_0x5a5e[56]][_0x5a5e[76]](_0xc067x1b)[_0x5a5e[45]](respondWithFilteredResult(_0xc067x15,_0xc067x1b,_0x5a5e[53]))[_0x5a5e[75]](handleError(_0xc067x15,null,_0x5a5e[53]))};exports[_0x5a5e[77]]= function(_0xc067x28,_0xc067x15){var _0xc067x1b={raw:true,where:{id:_0xc067x28[_0x5a5e[79]][_0x5a5e[78]]}},_0xc067x29={};_0xc067x29[_0x5a5e[54]]= _[_0x5a5e[57]](db[_0x5a5e[56]][_0x5a5e[55]]);_0xc067x29[_0x5a5e[58]]= _[_0x5a5e[57]](_0xc067x28[_0x5a5e[58]]);_0xc067x29[_0x5a5e[59]]= _[_0x5a5e[60]](_0xc067x29[_0x5a5e[54]],_0xc067x29[_0x5a5e[58]]);_0xc067x1b[_0x5a5e[61]]= _[_0x5a5e[60]](_0xc067x29[_0x5a5e[54]],qs[_0x5a5e[62]](_0xc067x28[_0x5a5e[58]][_0x5a5e[62]]));_0xc067x1b[_0x5a5e[61]]= (_0xc067x1b[_0x5a5e[61]][_0x5a5e[63]])?_0xc067x1b[_0x5a5e[61]]:_0xc067x29[_0x5a5e[54]];_0xc067x1b= _[_0x5a5e[73]]({},_0xc067x1b,_0xc067x28[_0x5a5e[74]]);return db[_0x5a5e[56]][_0x5a5e[80]](_0xc067x1b)[_0x5a5e[45]](handleEntityNotFound(_0xc067x15,null,_0x5a5e[77]))[_0x5a5e[45]](respondWithResult(_0xc067x15,null,_0x5a5e[77]))[_0x5a5e[75]](handleError(_0xc067x15,null,_0x5a5e[77]))};exports[_0x5a5e[81]]= function(_0xc067x28,_0xc067x15){return db[_0x5a5e[56]][_0x5a5e[81]](_0xc067x28[_0x5a5e[82]],{})[_0x5a5e[45]](respondWithResult(_0xc067x15,201,_0x5a5e[81]))[_0x5a5e[75]](handleError(_0xc067x15,null,_0x5a5e[81]))};exports[_0x5a5e[46]]= function(_0xc067x28,_0xc067x15){if(_0xc067x28[_0x5a5e[82]][_0x5a5e[78]]){delete _0xc067x28[_0x5a5e[82]][_0x5a5e[78]]};return db[_0x5a5e[56]][_0x5a5e[80]]({where:{id:_0xc067x28[_0x5a5e[79]][_0x5a5e[78]]}})[_0x5a5e[45]](handleEntityNotFound(_0xc067x15,null,_0x5a5e[46]))[_0x5a5e[45]](saveUpdates(_0xc067x28[_0x5a5e[82]],null,_0x5a5e[46]))[_0x5a5e[45]](respondWithResult(_0xc067x15,null,_0x5a5e[46]))[_0x5a5e[75]](handleError(_0xc067x15,null,_0x5a5e[46]))};exports[_0x5a5e[48]]= function(_0xc067x28,_0xc067x15){return db[_0x5a5e[56]][_0x5a5e[80]]({where:{id:_0xc067x28[_0x5a5e[79]][_0x5a5e[78]]}})[_0x5a5e[45]](handleEntityNotFound(_0xc067x15,null,_0x5a5e[48]))[_0x5a5e[45]](removeEntity(_0xc067x15,null,_0x5a5e[48]))[_0x5a5e[75]](handleError(_0xc067x15,null,_0x5a5e[48]))}
\ No newline at end of file
index 2109ffb..dfe0a0b 100644 (file)
@@ -1 +1 @@
-var _0xc4c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x6D\x65\x74\x72\x69\x63\x73","\x64\x65\x66\x69\x6E\x65"];_0xc4c6[0];var _=require(_0xc4c6[1]);var util=require(_0xc4c6[2]);var logger=require(_0xc4c6[4])(_0xc4c6[3]);var attributes=require(_0xc4c6[5]);module[_0xc4c6[6]]= function(_0xe1c1x5,_0xe1c1x6){return _0xe1c1x5[_0xc4c6[9]](_0xc4c6[7],attributes,{tableName:_0xc4c6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x1a9e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x6D\x65\x74\x72\x69\x63\x73","\x64\x65\x66\x69\x6E\x65"];_0x1a9e[0];var _=require(_0x1a9e[1]);var util=require(_0x1a9e[2]);var logger=require(_0x1a9e[4])(_0x1a9e[3]);var attributes=require(_0x1a9e[5]);module[_0x1a9e[6]]= function(_0x26b8x5,_0x26b8x6){return _0x26b8x5[_0x1a9e[9]](_0x1a9e[7],attributes,{tableName:_0x1a9e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 0ac49fa..b602bff 100644 (file)
@@ -1 +1 @@
-var _0x1e0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1e0a[0];var _=require(_0x1e0a[1]);var util=require(_0x1e0a[2]);var moment=require(_0x1e0a[3]);var BPromise=require(_0x1e0a[4]);var db=require(_0x1e0a[6])[_0x1e0a[5]];var utils=require(_0x1e0a[7]);var logger=require(_0x1e0a[9])(_0x1e0a[8]);var jayson=require(_0x1e0a[10]);var client=jayson[_0x1e0a[12]][_0x1e0a[11]]({port:9002});function respondWithRpcPromise(_0xe1ccxb,_0xe1ccxc,_0xe1ccxd){return  new BPromise(function(_0xe1ccxe,_0xe1ccxf){return client[_0x1e0a[25]](_0xe1ccxb,_0xe1ccxd)[_0x1e0a[24]](function(_0xe1ccx11){logger[_0x1e0a[17]](_0x1e0a[13],_0xe1ccxc,_0x1e0a[16]);logger[_0x1e0a[20]](_0x1e0a[18],_0xe1ccxc,_0x1e0a[16],JSON[_0x1e0a[19]](_0xe1ccx11));if(_0xe1ccx11[_0x1e0a[14]]){if(_0xe1ccx11[_0x1e0a[14]][_0x1e0a[21]]=== 500){logger[_0x1e0a[14]](_0x1e0a[13],_0xe1ccxc,_0xe1ccx11[_0x1e0a[14]][_0x1e0a[22]]);return _0xe1ccxf(_0xe1ccx11[_0x1e0a[14]][_0x1e0a[22]])};logger[_0x1e0a[14]](_0x1e0a[13],_0xe1ccxc,_0xe1ccx11[_0x1e0a[14]][_0x1e0a[22]]);return _0xe1ccxe(_0xe1ccx11[_0x1e0a[14]][_0x1e0a[22]])}else {logger[_0x1e0a[17]](_0x1e0a[13],_0xe1ccxc,_0x1e0a[16]);_0xe1ccxe(_0xe1ccx11[_0x1e0a[23]][_0x1e0a[22]])}})[_0x1e0a[15]](function(_0xe1ccx10){logger[_0x1e0a[14]](_0x1e0a[13],_0xe1ccxc,_0xe1ccx10);_0xe1ccxf(_0xe1ccx10)})})}
\ No newline at end of file
+var _0xcf3b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcf3b[0];var _=require(_0xcf3b[1]);var util=require(_0xcf3b[2]);var moment=require(_0xcf3b[3]);var BPromise=require(_0xcf3b[4]);var db=require(_0xcf3b[6])[_0xcf3b[5]];var utils=require(_0xcf3b[7]);var logger=require(_0xcf3b[9])(_0xcf3b[8]);var jayson=require(_0xcf3b[10]);var client=jayson[_0xcf3b[12]][_0xcf3b[11]]({port:9002});function respondWithRpcPromise(_0x9682xb,_0x9682xc,_0x9682xd){return  new BPromise(function(_0x9682xe,_0x9682xf){return client[_0xcf3b[25]](_0x9682xb,_0x9682xd)[_0xcf3b[24]](function(_0x9682x11){logger[_0xcf3b[17]](_0xcf3b[13],_0x9682xc,_0xcf3b[16]);logger[_0xcf3b[20]](_0xcf3b[18],_0x9682xc,_0xcf3b[16],JSON[_0xcf3b[19]](_0x9682x11));if(_0x9682x11[_0xcf3b[14]]){if(_0x9682x11[_0xcf3b[14]][_0xcf3b[21]]=== 500){logger[_0xcf3b[14]](_0xcf3b[13],_0x9682xc,_0x9682x11[_0xcf3b[14]][_0xcf3b[22]]);return _0x9682xf(_0x9682x11[_0xcf3b[14]][_0xcf3b[22]])};logger[_0xcf3b[14]](_0xcf3b[13],_0x9682xc,_0x9682x11[_0xcf3b[14]][_0xcf3b[22]]);return _0x9682xe(_0x9682x11[_0xcf3b[14]][_0xcf3b[22]])}else {logger[_0xcf3b[17]](_0xcf3b[13],_0x9682xc,_0xcf3b[16]);_0x9682xe(_0x9682x11[_0xcf3b[23]][_0xcf3b[22]])}})[_0xcf3b[15]](function(_0x9682x10){logger[_0xcf3b[14]](_0xcf3b[13],_0x9682xc,_0x9682x10);_0x9682xf(_0x9682x10)})})}
\ No newline at end of file
index 0b195f5..c6648eb 100644 (file)
@@ -1 +1 @@
-var _0x5636=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5636[0];var multer=require(_0x5636[1]);var util=require(_0x5636[2]);var path=require(_0x5636[3]);var express=require(_0x5636[4]);var router=express.Router();var auth=require(_0x5636[5]);var config=require(_0x5636[6]);var controller=require(_0x5636[7]);router[_0x5636[11]](_0x5636[8],auth[_0x5636[9]](),controller[_0x5636[10]]);router[_0x5636[11]](_0x5636[12],auth[_0x5636[9]](),controller[_0x5636[13]]);router[_0x5636[15]](_0x5636[8],auth[_0x5636[9]](),controller[_0x5636[14]]);router[_0x5636[17]](_0x5636[12],auth[_0x5636[9]](),controller[_0x5636[16]]);router[_0x5636[19]](_0x5636[12],auth[_0x5636[9]](),controller[_0x5636[18]]);module[_0x5636[20]]= router
\ No newline at end of file
+var _0x4fac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4fac[0];var multer=require(_0x4fac[1]);var util=require(_0x4fac[2]);var path=require(_0x4fac[3]);var express=require(_0x4fac[4]);var router=express.Router();var auth=require(_0x4fac[5]);var config=require(_0x4fac[6]);var controller=require(_0x4fac[7]);router[_0x4fac[11]](_0x4fac[8],auth[_0x4fac[9]](),controller[_0x4fac[10]]);router[_0x4fac[11]](_0x4fac[12],auth[_0x4fac[9]](),controller[_0x4fac[13]]);router[_0x4fac[15]](_0x4fac[8],auth[_0x4fac[9]](),controller[_0x4fac[14]]);router[_0x4fac[17]](_0x4fac[12],auth[_0x4fac[9]](),controller[_0x4fac[16]]);router[_0x4fac[19]](_0x4fac[12],auth[_0x4fac[9]](),controller[_0x4fac[18]]);module[_0x4fac[20]]= router
\ No newline at end of file
index 54e0439..fe8f273 100644 (file)
@@ -1 +1 @@
-var _0xc14c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x54\x45\x58\x54"];_0xc14c[0];var Sequelize=require(_0xc14c[1]);module[_0xc14c[2]]= {tree:{type:Sequelize[_0xc14c[3]],allowNull:false}}
\ No newline at end of file
+var _0x30b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x54\x45\x58\x54"];_0x30b8[0];var Sequelize=require(_0x30b8[1]);module[_0x30b8[2]]= {tree:{type:Sequelize[_0x30b8[3]],allowNull:false}}
\ No newline at end of file
index 836cf50..ba26633 100644 (file)
@@ -1 +1 @@
-var _0x9aea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x9aea[0];var jsonpatch=require(_0x9aea[1]);var rp=require(_0x9aea[2]);var moment=require(_0x9aea[3]);var BPromise=require(_0x9aea[4]);var util=require(_0x9aea[5]);var path=require(_0x9aea[6]);var sox=require(_0x9aea[7]);var ejs=require(_0x9aea[8]);var fs=require(_0x9aea[9]);var _=require(_0x9aea[10]);var squel=require(_0x9aea[11]);var crypto=require(_0x9aea[12]);var jsforce=require(_0x9aea[13]);var toCsv=require(_0x9aea[14]);var qs=require(_0x9aea[15]);var logger=require(_0x9aea[17])(_0x9aea[16]);var utils=require(_0x9aea[18]);var config=require(_0x9aea[19]);var db=require(_0x9aea[21])[_0x9aea[20]];function respondWithStatusCode(_0xca5cx15,_0xca5cx16,_0xca5cx17){_0xca5cx16= _0xca5cx16|| 204;return function(_0xca5cx18){if(_0xca5cx18){logger[_0x9aea[24]](_0x9aea[22],_0xca5cx17,_0xca5cx16,_0x9aea[23]);logger[_0x9aea[26]](_0x9aea[25],_0xca5cx17,_0xca5cx16,_0x9aea[23]);return _0xca5cx15[_0x9aea[27]](_0xca5cx16)};return _0xca5cx15[_0x9aea[29]](304)[_0x9aea[28]]()}}function respondWithResult(_0xca5cx15,_0xca5cx16,_0xca5cx17){_0xca5cx16= _0xca5cx16|| 200;return function(_0xca5cx18){if(_0xca5cx18){logger[_0x9aea[24]](_0x9aea[22],_0xca5cx17,_0xca5cx16,_0x9aea[30]);logger[_0x9aea[26]](_0x9aea[25],_0xca5cx17,_0xca5cx16,_0x9aea[30],JSON[_0x9aea[31]](_0xca5cx18));return _0xca5cx15[_0x9aea[29]](_0xca5cx16)[_0x9aea[32]](_0xca5cx18)};return _0xca5cx15[_0x9aea[29]](304)[_0x9aea[28]]()}}function respondWithFilteredResult(_0xca5cx15,_0xca5cx1b,_0xca5cx17){return function(_0xca5cx18){if(_0xca5cx18){var _0xca5cx1c=_0xca5cx18[_0x9aea[33]],_0xca5cx1d=_0xca5cx1b[_0x9aea[34]],_0xca5cx1e=_0xca5cx1b[_0x9aea[34]]+ _0xca5cx1b[_0x9aea[35]],_0xca5cx16;if(_0xca5cx1e>= _0xca5cx1c){_0xca5cx1e= _0xca5cx1c;_0xca5cx16= 200}else {_0xca5cx16= 206};_0xca5cx15[_0x9aea[29]](_0xca5cx16);logger[_0x9aea[24]](_0x9aea[22],_0xca5cx17,_0xca5cx16,_0x9aea[36]);logger[_0x9aea[26]](_0x9aea[25],_0xca5cx17,_0xca5cx16,_0x9aea[30],JSON[_0x9aea[31]](_0xca5cx18));return _0xca5cx15[_0x9aea[40]](_0x9aea[37],_0xca5cx1d+ _0x9aea[38]+ _0xca5cx1e+ _0x9aea[39]+ _0xca5cx1c)[_0x9aea[32]](_0xca5cx18)};return null}}function patchUpdates(_0xca5cx20){return function(_0xca5cx18){try{jsonpatch[_0x9aea[41]](_0xca5cx18,_0xca5cx20,true)}catch(err){return BPromise[_0x9aea[42]](err)};return _0xca5cx18[_0x9aea[43]]()}}function saveUpdates(_0xca5cx22,_0xca5cx16,_0xca5cx17){return function(_0xca5cx18){if(_0xca5cx18){return _0xca5cx18[_0x9aea[46]](_0xca5cx22)[_0x9aea[45]](function(_0xca5cx23){logger[_0x9aea[24]](_0x9aea[22],_0xca5cx17,_0xca5cx16,_0x9aea[44]);logger[_0x9aea[26]](_0x9aea[25],_0xca5cx17,_0xca5cx16,_0x9aea[44],JSON[_0x9aea[31]](_0xca5cx18));return _0xca5cx23})};return null}}function removeEntity(_0xca5cx15,_0xca5cx16,_0xca5cx17){return function(_0xca5cx18){if(_0xca5cx18){return _0xca5cx18[_0x9aea[48]]()[_0x9aea[45]](function(){logger[_0x9aea[24]](_0x9aea[22],_0xca5cx17,_0xca5cx16,_0x9aea[47]);logger[_0x9aea[26]](_0x9aea[25],_0xca5cx17,_0xca5cx16,_0x9aea[47],JSON[_0x9aea[31]](_0xca5cx18));_0xca5cx15[_0x9aea[29]](204)[_0x9aea[28]]()})}}}function handleEntityNotFound(_0xca5cx15,_0xca5cx16,_0xca5cx17){return function(_0xca5cx18){if(!_0xca5cx18){logger[_0x9aea[50]](_0x9aea[22],_0xca5cx17,404,_0x9aea[49]);_0xca5cx15[_0x9aea[29]](404)[_0x9aea[28]]();return null};return _0xca5cx18}}function handleError(_0xca5cx15,_0xca5cx16,_0xca5cx17){_0xca5cx16= _0xca5cx16|| 500;return function(_0xca5cx27){logger[_0x9aea[50]](_0x9aea[22],_0xca5cx17,_0xca5cx16,JSON[_0x9aea[31]](_0xca5cx27));delete _0xca5cx27[_0x9aea[51]];_0xca5cx15[_0x9aea[29]](_0xca5cx16)[_0x9aea[52]](_0xca5cx27)}}exports[_0x9aea[53]]= function(_0xca5cx28,_0xca5cx15){var _0xca5cx1b={},_0xca5cx29={};_0xca5cx29[_0x9aea[54]]= _[_0x9aea[57]](db[_0x9aea[56]][_0x9aea[55]]);_0xca5cx29[_0x9aea[58]]= _[_0x9aea[57]](_0xca5cx28[_0x9aea[58]]);_0xca5cx29[_0x9aea[59]]= _[_0x9aea[60]](_0xca5cx29[_0x9aea[54]],_0xca5cx29[_0x9aea[58]]);_0xca5cx1b[_0x9aea[61]]= _[_0x9aea[60]](_0xca5cx29[_0x9aea[54]],qs[_0x9aea[62]](_0xca5cx28[_0x9aea[58]][_0x9aea[62]]));_0xca5cx1b[_0x9aea[61]]= (_0xca5cx1b[_0x9aea[61]][_0x9aea[63]])?_0xca5cx1b[_0x9aea[61]]:_0xca5cx29[_0x9aea[54]];if(!_0xca5cx28[_0x9aea[58]][_0x9aea[65]](_0x9aea[64])){_0xca5cx1b[_0x9aea[35]]= qs[_0x9aea[35]](_0xca5cx28[_0x9aea[58]][_0x9aea[35]]);_0xca5cx1b[_0x9aea[34]]= qs[_0x9aea[34]](_0xca5cx28[_0x9aea[58]][_0x9aea[34]])};_0xca5cx1b[_0x9aea[66]]= qs[_0x9aea[67]](_0xca5cx28[_0x9aea[58]][_0x9aea[67]]);_0xca5cx1b[_0x9aea[68]]= qs[_0x9aea[59]](_[_0x9aea[69]](_0xca5cx28[_0x9aea[58]],_0xca5cx29[_0x9aea[59]]));if(_0xca5cx28[_0x9aea[58]][_0x9aea[70]]){_0xca5cx1b[_0x9aea[68]]= _[_0x9aea[73]](_0xca5cx1b[_0x9aea[68]],{$or:_[_0x9aea[72]](_0xca5cx1b[_0x9aea[61]],function(_0xca5cx2a){var _0xca5cx2b={};_0xca5cx2b[_0xca5cx2a]= {$like:_0x9aea[71]+ _0xca5cx28[_0x9aea[58]][_0x9aea[70]]+ _0x9aea[71]};return _0xca5cx2b})})};_0xca5cx1b= _[_0x9aea[73]]({},_0xca5cx1b,_0xca5cx28[_0x9aea[74]]);return db[_0x9aea[56]][_0x9aea[76]](_0xca5cx1b)[_0x9aea[45]](respondWithFilteredResult(_0xca5cx15,_0xca5cx1b,_0x9aea[53]))[_0x9aea[75]](handleError(_0xca5cx15,null,_0x9aea[53]))};exports[_0x9aea[77]]= function(_0xca5cx28,_0xca5cx15){var _0xca5cx1b={raw:true,where:{id:_0xca5cx28[_0x9aea[79]][_0x9aea[78]]}},_0xca5cx29={};_0xca5cx29[_0x9aea[54]]= _[_0x9aea[57]](db[_0x9aea[56]][_0x9aea[55]]);_0xca5cx29[_0x9aea[58]]= _[_0x9aea[57]](_0xca5cx28[_0x9aea[58]]);_0xca5cx29[_0x9aea[59]]= _[_0x9aea[60]](_0xca5cx29[_0x9aea[54]],_0xca5cx29[_0x9aea[58]]);_0xca5cx1b[_0x9aea[61]]= _[_0x9aea[60]](_0xca5cx29[_0x9aea[54]],qs[_0x9aea[62]](_0xca5cx28[_0x9aea[58]][_0x9aea[62]]));_0xca5cx1b[_0x9aea[61]]= (_0xca5cx1b[_0x9aea[61]][_0x9aea[63]])?_0xca5cx1b[_0x9aea[61]]:_0xca5cx29[_0x9aea[54]];_0xca5cx1b= _[_0x9aea[73]]({},_0xca5cx1b,_0xca5cx28[_0x9aea[74]]);return db[_0x9aea[56]][_0x9aea[80]](_0xca5cx1b)[_0x9aea[45]](handleEntityNotFound(_0xca5cx15,null,_0x9aea[77]))[_0x9aea[45]](respondWithResult(_0xca5cx15,null,_0x9aea[77]))[_0x9aea[75]](handleError(_0xca5cx15,null,_0x9aea[77]))};exports[_0x9aea[81]]= function(_0xca5cx28,_0xca5cx15){return db[_0x9aea[56]][_0x9aea[81]](_0xca5cx28[_0x9aea[82]],{})[_0x9aea[45]](respondWithResult(_0xca5cx15,201,_0x9aea[81]))[_0x9aea[75]](handleError(_0xca5cx15,null,_0x9aea[81]))};exports[_0x9aea[46]]= function(_0xca5cx28,_0xca5cx15){if(_0xca5cx28[_0x9aea[82]][_0x9aea[78]]){delete _0xca5cx28[_0x9aea[82]][_0x9aea[78]]};return db[_0x9aea[56]][_0x9aea[80]]({where:{id:_0xca5cx28[_0x9aea[79]][_0x9aea[78]]}})[_0x9aea[45]](handleEntityNotFound(_0xca5cx15,null,_0x9aea[46]))[_0x9aea[45]](saveUpdates(_0xca5cx28[_0x9aea[82]],null,_0x9aea[46]))[_0x9aea[45]](respondWithResult(_0xca5cx15,null,_0x9aea[46]))[_0x9aea[75]](handleError(_0xca5cx15,null,_0x9aea[46]))};exports[_0x9aea[48]]= function(_0xca5cx28,_0xca5cx15){return db[_0x9aea[56]][_0x9aea[80]]({where:{id:_0xca5cx28[_0x9aea[79]][_0x9aea[78]]}})[_0x9aea[45]](handleEntityNotFound(_0xca5cx15,null,_0x9aea[48]))[_0x9aea[45]](removeEntity(_0xca5cx15,null,_0x9aea[48]))[_0x9aea[75]](handleError(_0xca5cx15,null,_0x9aea[48]))}
\ No newline at end of file
+var _0xb97a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xb97a[0];var jsonpatch=require(_0xb97a[1]);var rp=require(_0xb97a[2]);var moment=require(_0xb97a[3]);var BPromise=require(_0xb97a[4]);var util=require(_0xb97a[5]);var path=require(_0xb97a[6]);var sox=require(_0xb97a[7]);var ejs=require(_0xb97a[8]);var fs=require(_0xb97a[9]);var _=require(_0xb97a[10]);var squel=require(_0xb97a[11]);var crypto=require(_0xb97a[12]);var jsforce=require(_0xb97a[13]);var toCsv=require(_0xb97a[14]);var qs=require(_0xb97a[15]);var logger=require(_0xb97a[17])(_0xb97a[16]);var utils=require(_0xb97a[18]);var config=require(_0xb97a[19]);var db=require(_0xb97a[21])[_0xb97a[20]];function respondWithStatusCode(_0x9430x15,_0x9430x16,_0x9430x17){_0x9430x16= _0x9430x16|| 204;return function(_0x9430x18){if(_0x9430x18){logger[_0xb97a[24]](_0xb97a[22],_0x9430x17,_0x9430x16,_0xb97a[23]);logger[_0xb97a[26]](_0xb97a[25],_0x9430x17,_0x9430x16,_0xb97a[23]);return _0x9430x15[_0xb97a[27]](_0x9430x16)};return _0x9430x15[_0xb97a[29]](304)[_0xb97a[28]]()}}function respondWithResult(_0x9430x15,_0x9430x16,_0x9430x17){_0x9430x16= _0x9430x16|| 200;return function(_0x9430x18){if(_0x9430x18){logger[_0xb97a[24]](_0xb97a[22],_0x9430x17,_0x9430x16,_0xb97a[30]);logger[_0xb97a[26]](_0xb97a[25],_0x9430x17,_0x9430x16,_0xb97a[30],JSON[_0xb97a[31]](_0x9430x18));return _0x9430x15[_0xb97a[29]](_0x9430x16)[_0xb97a[32]](_0x9430x18)};return _0x9430x15[_0xb97a[29]](304)[_0xb97a[28]]()}}function respondWithFilteredResult(_0x9430x15,_0x9430x1b,_0x9430x17){return function(_0x9430x18){if(_0x9430x18){var _0x9430x1c=_0x9430x18[_0xb97a[33]],_0x9430x1d=_0x9430x1b[_0xb97a[34]],_0x9430x1e=_0x9430x1b[_0xb97a[34]]+ _0x9430x1b[_0xb97a[35]],_0x9430x16;if(_0x9430x1e>= _0x9430x1c){_0x9430x1e= _0x9430x1c;_0x9430x16= 200}else {_0x9430x16= 206};_0x9430x15[_0xb97a[29]](_0x9430x16);logger[_0xb97a[24]](_0xb97a[22],_0x9430x17,_0x9430x16,_0xb97a[36]);logger[_0xb97a[26]](_0xb97a[25],_0x9430x17,_0x9430x16,_0xb97a[30],JSON[_0xb97a[31]](_0x9430x18));return _0x9430x15[_0xb97a[40]](_0xb97a[37],_0x9430x1d+ _0xb97a[38]+ _0x9430x1e+ _0xb97a[39]+ _0x9430x1c)[_0xb97a[32]](_0x9430x18)};return null}}function patchUpdates(_0x9430x20){return function(_0x9430x18){try{jsonpatch[_0xb97a[41]](_0x9430x18,_0x9430x20,true)}catch(err){return BPromise[_0xb97a[42]](err)};return _0x9430x18[_0xb97a[43]]()}}function saveUpdates(_0x9430x22,_0x9430x16,_0x9430x17){return function(_0x9430x18){if(_0x9430x18){return _0x9430x18[_0xb97a[46]](_0x9430x22)[_0xb97a[45]](function(_0x9430x23){logger[_0xb97a[24]](_0xb97a[22],_0x9430x17,_0x9430x16,_0xb97a[44]);logger[_0xb97a[26]](_0xb97a[25],_0x9430x17,_0x9430x16,_0xb97a[44],JSON[_0xb97a[31]](_0x9430x18));return _0x9430x23})};return null}}function removeEntity(_0x9430x15,_0x9430x16,_0x9430x17){return function(_0x9430x18){if(_0x9430x18){return _0x9430x18[_0xb97a[48]]()[_0xb97a[45]](function(){logger[_0xb97a[24]](_0xb97a[22],_0x9430x17,_0x9430x16,_0xb97a[47]);logger[_0xb97a[26]](_0xb97a[25],_0x9430x17,_0x9430x16,_0xb97a[47],JSON[_0xb97a[31]](_0x9430x18));_0x9430x15[_0xb97a[29]](204)[_0xb97a[28]]()})}}}function handleEntityNotFound(_0x9430x15,_0x9430x16,_0x9430x17){return function(_0x9430x18){if(!_0x9430x18){logger[_0xb97a[50]](_0xb97a[22],_0x9430x17,404,_0xb97a[49]);_0x9430x15[_0xb97a[29]](404)[_0xb97a[28]]();return null};return _0x9430x18}}function handleError(_0x9430x15,_0x9430x16,_0x9430x17){_0x9430x16= _0x9430x16|| 500;return function(_0x9430x27){logger[_0xb97a[50]](_0xb97a[22],_0x9430x17,_0x9430x16,JSON[_0xb97a[31]](_0x9430x27));delete _0x9430x27[_0xb97a[51]];_0x9430x15[_0xb97a[29]](_0x9430x16)[_0xb97a[52]](_0x9430x27)}}exports[_0xb97a[53]]= function(_0x9430x28,_0x9430x15){var _0x9430x1b={},_0x9430x29={};_0x9430x29[_0xb97a[54]]= _[_0xb97a[57]](db[_0xb97a[56]][_0xb97a[55]]);_0x9430x29[_0xb97a[58]]= _[_0xb97a[57]](_0x9430x28[_0xb97a[58]]);_0x9430x29[_0xb97a[59]]= _[_0xb97a[60]](_0x9430x29[_0xb97a[54]],_0x9430x29[_0xb97a[58]]);_0x9430x1b[_0xb97a[61]]= _[_0xb97a[60]](_0x9430x29[_0xb97a[54]],qs[_0xb97a[62]](_0x9430x28[_0xb97a[58]][_0xb97a[62]]));_0x9430x1b[_0xb97a[61]]= (_0x9430x1b[_0xb97a[61]][_0xb97a[63]])?_0x9430x1b[_0xb97a[61]]:_0x9430x29[_0xb97a[54]];if(!_0x9430x28[_0xb97a[58]][_0xb97a[65]](_0xb97a[64])){_0x9430x1b[_0xb97a[35]]= qs[_0xb97a[35]](_0x9430x28[_0xb97a[58]][_0xb97a[35]]);_0x9430x1b[_0xb97a[34]]= qs[_0xb97a[34]](_0x9430x28[_0xb97a[58]][_0xb97a[34]])};_0x9430x1b[_0xb97a[66]]= qs[_0xb97a[67]](_0x9430x28[_0xb97a[58]][_0xb97a[67]]);_0x9430x1b[_0xb97a[68]]= qs[_0xb97a[59]](_[_0xb97a[69]](_0x9430x28[_0xb97a[58]],_0x9430x29[_0xb97a[59]]));if(_0x9430x28[_0xb97a[58]][_0xb97a[70]]){_0x9430x1b[_0xb97a[68]]= _[_0xb97a[73]](_0x9430x1b[_0xb97a[68]],{$or:_[_0xb97a[72]](_0x9430x1b[_0xb97a[61]],function(_0x9430x2a){var _0x9430x2b={};_0x9430x2b[_0x9430x2a]= {$like:_0xb97a[71]+ _0x9430x28[_0xb97a[58]][_0xb97a[70]]+ _0xb97a[71]};return _0x9430x2b})})};_0x9430x1b= _[_0xb97a[73]]({},_0x9430x1b,_0x9430x28[_0xb97a[74]]);return db[_0xb97a[56]][_0xb97a[76]](_0x9430x1b)[_0xb97a[45]](respondWithFilteredResult(_0x9430x15,_0x9430x1b,_0xb97a[53]))[_0xb97a[75]](handleError(_0x9430x15,null,_0xb97a[53]))};exports[_0xb97a[77]]= function(_0x9430x28,_0x9430x15){var _0x9430x1b={raw:true,where:{id:_0x9430x28[_0xb97a[79]][_0xb97a[78]]}},_0x9430x29={};_0x9430x29[_0xb97a[54]]= _[_0xb97a[57]](db[_0xb97a[56]][_0xb97a[55]]);_0x9430x29[_0xb97a[58]]= _[_0xb97a[57]](_0x9430x28[_0xb97a[58]]);_0x9430x29[_0xb97a[59]]= _[_0xb97a[60]](_0x9430x29[_0xb97a[54]],_0x9430x29[_0xb97a[58]]);_0x9430x1b[_0xb97a[61]]= _[_0xb97a[60]](_0x9430x29[_0xb97a[54]],qs[_0xb97a[62]](_0x9430x28[_0xb97a[58]][_0xb97a[62]]));_0x9430x1b[_0xb97a[61]]= (_0x9430x1b[_0xb97a[61]][_0xb97a[63]])?_0x9430x1b[_0xb97a[61]]:_0x9430x29[_0xb97a[54]];_0x9430x1b= _[_0xb97a[73]]({},_0x9430x1b,_0x9430x28[_0xb97a[74]]);return db[_0xb97a[56]][_0xb97a[80]](_0x9430x1b)[_0xb97a[45]](handleEntityNotFound(_0x9430x15,null,_0xb97a[77]))[_0xb97a[45]](respondWithResult(_0x9430x15,null,_0xb97a[77]))[_0xb97a[75]](handleError(_0x9430x15,null,_0xb97a[77]))};exports[_0xb97a[81]]= function(_0x9430x28,_0x9430x15){return db[_0xb97a[56]][_0xb97a[81]](_0x9430x28[_0xb97a[82]],{})[_0xb97a[45]](respondWithResult(_0x9430x15,201,_0xb97a[81]))[_0xb97a[75]](handleError(_0x9430x15,null,_0xb97a[81]))};exports[_0xb97a[46]]= function(_0x9430x28,_0x9430x15){if(_0x9430x28[_0xb97a[82]][_0xb97a[78]]){delete _0x9430x28[_0xb97a[82]][_0xb97a[78]]};return db[_0xb97a[56]][_0xb97a[80]]({where:{id:_0x9430x28[_0xb97a[79]][_0xb97a[78]]}})[_0xb97a[45]](handleEntityNotFound(_0x9430x15,null,_0xb97a[46]))[_0xb97a[45]](saveUpdates(_0x9430x28[_0xb97a[82]],null,_0xb97a[46]))[_0xb97a[45]](respondWithResult(_0x9430x15,null,_0xb97a[46]))[_0xb97a[75]](handleError(_0x9430x15,null,_0xb97a[46]))};exports[_0xb97a[48]]= function(_0x9430x28,_0x9430x15){return db[_0xb97a[56]][_0xb97a[80]]({where:{id:_0x9430x28[_0xb97a[79]][_0xb97a[78]]}})[_0xb97a[45]](handleEntityNotFound(_0x9430x15,null,_0xb97a[48]))[_0xb97a[45]](removeEntity(_0x9430x15,null,_0xb97a[48]))[_0xb97a[75]](handleError(_0x9430x15,null,_0xb97a[48]))}
\ No newline at end of file
index e7e3492..0758d3f 100644 (file)
@@ -1 +1 @@
-var _0xec70=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xec70[0];var _=require(_0xec70[1]);var util=require(_0xec70[2]);var logger=require(_0xec70[4])(_0xec70[3]);var attributes=require(_0xec70[5]);module[_0xec70[6]]= function(_0x1aa7x5,_0x1aa7x6){return _0x1aa7x5[_0xec70[9]](_0xec70[7],attributes,{tableName:_0xec70[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xf110=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xf110[0];var _=require(_0xf110[1]);var util=require(_0xf110[2]);var logger=require(_0xf110[4])(_0xf110[3]);var attributes=require(_0xf110[5]);module[_0xf110[6]]= function(_0xa94dx5,_0xa94dx6){return _0xa94dx5[_0xf110[9]](_0xf110[7],attributes,{tableName:_0xf110[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 913b268..61a2de2 100644 (file)
@@ -1 +1 @@
-var _0x959a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x959a[0];var _=require(_0x959a[1]);var util=require(_0x959a[2]);var moment=require(_0x959a[3]);var BPromise=require(_0x959a[4]);var db=require(_0x959a[6])[_0x959a[5]];var utils=require(_0x959a[7]);var logger=require(_0x959a[9])(_0x959a[8]);var jayson=require(_0x959a[10]);var client=jayson[_0x959a[12]][_0x959a[11]]({port:9002});function respondWithRpcPromise(_0x1606xb,_0x1606xc,_0x1606xd){return  new BPromise(function(_0x1606xe,_0x1606xf){return client[_0x959a[25]](_0x1606xb,_0x1606xd)[_0x959a[24]](function(_0x1606x11){logger[_0x959a[17]](_0x959a[13],_0x1606xc,_0x959a[16]);logger[_0x959a[20]](_0x959a[18],_0x1606xc,_0x959a[16],JSON[_0x959a[19]](_0x1606x11));if(_0x1606x11[_0x959a[14]]){if(_0x1606x11[_0x959a[14]][_0x959a[21]]=== 500){logger[_0x959a[14]](_0x959a[13],_0x1606xc,_0x1606x11[_0x959a[14]][_0x959a[22]]);return _0x1606xf(_0x1606x11[_0x959a[14]][_0x959a[22]])};logger[_0x959a[14]](_0x959a[13],_0x1606xc,_0x1606x11[_0x959a[14]][_0x959a[22]]);return _0x1606xe(_0x1606x11[_0x959a[14]][_0x959a[22]])}else {logger[_0x959a[17]](_0x959a[13],_0x1606xc,_0x959a[16]);_0x1606xe(_0x1606x11[_0x959a[23]][_0x959a[22]])}})[_0x959a[15]](function(_0x1606x10){logger[_0x959a[14]](_0x959a[13],_0x1606xc,_0x1606x10);_0x1606xf(_0x1606x10)})})}
\ No newline at end of file
+var _0x9f6e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9f6e[0];var _=require(_0x9f6e[1]);var util=require(_0x9f6e[2]);var moment=require(_0x9f6e[3]);var BPromise=require(_0x9f6e[4]);var db=require(_0x9f6e[6])[_0x9f6e[5]];var utils=require(_0x9f6e[7]);var logger=require(_0x9f6e[9])(_0x9f6e[8]);var jayson=require(_0x9f6e[10]);var client=jayson[_0x9f6e[12]][_0x9f6e[11]]({port:9002});function respondWithRpcPromise(_0x2a7axb,_0x2a7axc,_0x2a7axd){return  new BPromise(function(_0x2a7axe,_0x2a7axf){return client[_0x9f6e[25]](_0x2a7axb,_0x2a7axd)[_0x9f6e[24]](function(_0x2a7ax11){logger[_0x9f6e[17]](_0x9f6e[13],_0x2a7axc,_0x9f6e[16]);logger[_0x9f6e[20]](_0x9f6e[18],_0x2a7axc,_0x9f6e[16],JSON[_0x9f6e[19]](_0x2a7ax11));if(_0x2a7ax11[_0x9f6e[14]]){if(_0x2a7ax11[_0x9f6e[14]][_0x9f6e[21]]=== 500){logger[_0x9f6e[14]](_0x9f6e[13],_0x2a7axc,_0x2a7ax11[_0x9f6e[14]][_0x9f6e[22]]);return _0x2a7axf(_0x2a7ax11[_0x9f6e[14]][_0x9f6e[22]])};logger[_0x9f6e[14]](_0x9f6e[13],_0x2a7axc,_0x2a7ax11[_0x9f6e[14]][_0x9f6e[22]]);return _0x2a7axe(_0x2a7ax11[_0x9f6e[14]][_0x9f6e[22]])}else {logger[_0x9f6e[17]](_0x9f6e[13],_0x2a7axc,_0x9f6e[16]);_0x2a7axe(_0x2a7ax11[_0x9f6e[23]][_0x9f6e[22]])}})[_0x9f6e[15]](function(_0x2a7ax10){logger[_0x9f6e[14]](_0x9f6e[13],_0x2a7axc,_0x2a7ax10);_0x2a7axf(_0x2a7ax10)})})}
\ No newline at end of file
index 5ae0fa2..d378fb5 100644 (file)
@@ -1 +1 @@
-var _0xe333=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe333[0];var multer=require(_0xe333[1]);var util=require(_0xe333[2]);var path=require(_0xe333[3]);var express=require(_0xe333[4]);var router=express.Router();var auth=require(_0xe333[5]);var config=require(_0xe333[6]);var controller=require(_0xe333[7]);router[_0xe333[11]](_0xe333[8],auth[_0xe333[9]](),controller[_0xe333[10]]);router[_0xe333[11]](_0xe333[12],auth[_0xe333[9]](),controller[_0xe333[13]]);router[_0xe333[15]](_0xe333[8],auth[_0xe333[9]](),controller[_0xe333[14]]);router[_0xe333[17]](_0xe333[12],auth[_0xe333[9]](),controller[_0xe333[16]]);router[_0xe333[19]](_0xe333[12],auth[_0xe333[9]](),controller[_0xe333[18]]);module[_0xe333[20]]= router
\ No newline at end of file
+var _0x20cd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x20cd[0];var multer=require(_0x20cd[1]);var util=require(_0x20cd[2]);var path=require(_0x20cd[3]);var express=require(_0x20cd[4]);var router=express.Router();var auth=require(_0x20cd[5]);var config=require(_0x20cd[6]);var controller=require(_0x20cd[7]);router[_0x20cd[11]](_0x20cd[8],auth[_0x20cd[9]](),controller[_0x20cd[10]]);router[_0x20cd[11]](_0x20cd[12],auth[_0x20cd[9]](),controller[_0x20cd[13]]);router[_0x20cd[15]](_0x20cd[8],auth[_0x20cd[9]](),controller[_0x20cd[14]]);router[_0x20cd[17]](_0x20cd[12],auth[_0x20cd[9]](),controller[_0x20cd[16]]);router[_0x20cd[19]](_0x20cd[12],auth[_0x20cd[9]](),controller[_0x20cd[18]]);module[_0x20cd[20]]= router
\ No newline at end of file
index 2be2c7e..33938a5 100644 (file)
@@ -1 +1 @@
-var _0xf6bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x67\x6F\x6F\x67\x6C\x65\x2D\x6F\x61\x75\x74\x68\x32\x30","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x6C\x6F\x67\x69\x6E","\x67\x6F\x6F\x67\x6C\x65","\x2F\x6C\x6F\x67\x69\x6E","\x70\x72\x6F\x66\x69\x6C\x65","\x65\x6D\x61\x69\x6C","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x69\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x20\x65\x6D\x61\x69\x6C\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x21","\x74\x68\x65\x6E","\x65\x6D\x61\x69\x6C\x73","\x76\x61\x6C\x75\x65","\x6D\x61\x70","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x55\x73\x65\x72","\x75\x73\x65"];_0xf6bd[0];var _=require(_0xf6bd[1]);var passport=require(_0xf6bd[2]);var GoogleStrategy=require(_0xf6bd[4])[_0xf6bd[3]];var db=require(_0xf6bd[6])[_0xf6bd[5]];var config=require(_0xf6bd[7]);var signToken=require(_0xf6bd[9])[_0xf6bd[8]];exports[_0xf6bd[10]]= passport[_0xf6bd[15]](_0xf6bd[11],{failureRedirect:_0xf6bd[12],scope:[_0xf6bd[13],_0xf6bd[14]],session:false});exports[_0xf6bd[16]]= passport[_0xf6bd[15]](_0xf6bd[11],{failureRedirect:_0xf6bd[12],session:false});passport[_0xf6bd[34]]( new GoogleStrategy({clientID:config[_0xf6bd[11]]?config[_0xf6bd[11]][_0xf6bd[17]]:_0xf6bd[18],clientSecret:config[_0xf6bd[11]]?config[_0xf6bd[11]][_0xf6bd[19]]:_0xf6bd[20],callbackURL:config[_0xf6bd[11]]?config[_0xf6bd[11]][_0xf6bd[21]]:_0xf6bd[22]},function(_0x74f2x7,_0x74f2x8,_0x74f2x9,_0x74f2xa){db[_0xf6bd[33]][_0xf6bd[32]]({where:{email:_[_0xf6bd[28]](_0x74f2x9[_0xf6bd[26]],_0xf6bd[27]),role:{$or:[_0xf6bd[29],_0xf6bd[30],_0xf6bd[31]]}}})[_0xf6bd[25]](function(_0x74f2xc){if(_0x74f2xc){return _0x74f2xa(null,_0x74f2xc)};_0x74f2xa(_0xf6bd[24])})[_0xf6bd[23]](function(_0x74f2xb){_0x74f2xa(_0x74f2xb)})}))
\ No newline at end of file
+var _0xe977=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x67\x6F\x6F\x67\x6C\x65\x2D\x6F\x61\x75\x74\x68\x32\x30","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x6C\x6F\x67\x69\x6E","\x67\x6F\x6F\x67\x6C\x65","\x2F\x6C\x6F\x67\x69\x6E","\x70\x72\x6F\x66\x69\x6C\x65","\x65\x6D\x61\x69\x6C","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x69\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x20\x65\x6D\x61\x69\x6C\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x21","\x74\x68\x65\x6E","\x65\x6D\x61\x69\x6C\x73","\x76\x61\x6C\x75\x65","\x6D\x61\x70","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x55\x73\x65\x72","\x75\x73\x65"];_0xe977[0];var _=require(_0xe977[1]);var passport=require(_0xe977[2]);var GoogleStrategy=require(_0xe977[4])[_0xe977[3]];var db=require(_0xe977[6])[_0xe977[5]];var config=require(_0xe977[7]);var signToken=require(_0xe977[9])[_0xe977[8]];exports[_0xe977[10]]= passport[_0xe977[15]](_0xe977[11],{failureRedirect:_0xe977[12],scope:[_0xe977[13],_0xe977[14]],session:false});exports[_0xe977[16]]= passport[_0xe977[15]](_0xe977[11],{failureRedirect:_0xe977[12],session:false});passport[_0xe977[34]]( new GoogleStrategy({clientID:config[_0xe977[11]]?config[_0xe977[11]][_0xe977[17]]:_0xe977[18],clientSecret:config[_0xe977[11]]?config[_0xe977[11]][_0xe977[19]]:_0xe977[20],callbackURL:config[_0xe977[11]]?config[_0xe977[11]][_0xe977[21]]:_0xe977[22]},function(_0xbaf3x7,_0xbaf3x8,_0xbaf3x9,_0xbaf3xa){db[_0xe977[33]][_0xe977[32]]({where:{email:_[_0xe977[28]](_0xbaf3x9[_0xe977[26]],_0xe977[27]),role:{$or:[_0xe977[29],_0xe977[30],_0xe977[31]]}}})[_0xe977[25]](function(_0xbaf3xc){if(_0xbaf3xc){return _0xbaf3xa(null,_0xbaf3xc)};_0xbaf3xa(_0xe977[24])})[_0xe977[23]](function(_0xbaf3xb){_0xbaf3xa(_0xbaf3xb)})}))
\ No newline at end of file
index ea6ff09..3ddd99f 100644 (file)
@@ -1 +1 @@
-var _0x5a9f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x61\x75\x74\x68\x47\x6F\x6F\x67\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2F","\x6C\x6F\x67\x69\x6E","\x67\x65\x74","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0x5a9f[0];var express=require(_0x5a9f[1]);var passport=require(_0x5a9f[2]);var router=express.Router();var controller=require(_0x5a9f[3]);var setTokenCookie=require(_0x5a9f[5])[_0x5a9f[4]];router[_0x5a9f[8]](_0x5a9f[6],controller[_0x5a9f[7]]);router[_0x5a9f[8]](_0x5a9f[9],controller[_0x5a9f[10]],setTokenCookie);module[_0x5a9f[11]]= router
\ No newline at end of file
+var _0xcca8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x61\x75\x74\x68\x47\x6F\x6F\x67\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2F","\x6C\x6F\x67\x69\x6E","\x67\x65\x74","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0xcca8[0];var express=require(_0xcca8[1]);var passport=require(_0xcca8[2]);var router=express.Router();var controller=require(_0xcca8[3]);var setTokenCookie=require(_0xcca8[5])[_0xcca8[4]];router[_0xcca8[8]](_0xcca8[6],controller[_0xcca8[7]]);router[_0xcca8[8]](_0xcca8[9],controller[_0xcca8[10]],setTokenCookie);module[_0xcca8[11]]= router
\ No newline at end of file
index 8cfc7bb..63344c3 100644 (file)
@@ -1 +1 @@
-var _0x1395=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x6C\x6F\x63\x61\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x63\x61\x74\x63\x68","\x61\x67\x65\x6E\x74\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x6C\x6F\x67\x69\x6E\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x74\x68\x65\x6E","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x63\x6F\x75\x6E\x74","\x55\x73\x65\x72","\x54\x68\x69\x73\x20\x70\x61\x73\x73\x77\x6F\x72\x64\x20\x69\x73\x20\x6E\x6F\x74\x20\x63\x6F\x72\x72\x65\x63\x74\x2E","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x54\x68\x69\x73\x20\x6E\x61\x6D\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x2E","\x74\x72\x69\x6D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x66\x69\x6E\x64","\x6C\x6F\x67\x69\x6E","\x6C\x6F\x63\x61\x6C","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x69\x64","\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x75\x73\x65"];_0x1395[0];var util=require(_0x1395[1]);var passport=require(_0x1395[2]);var LocalStrategy=require(_0x1395[4])[_0x1395[3]];var BPromise=require(_0x1395[5]);var db=require(_0x1395[7])[_0x1395[6]];var signToken=require(_0x1395[9])[_0x1395[8]];var getLicense=function(_0x334bx8){return  new BPromise(function(_0x334bx9,_0x334bxa){var _0x334bxb=0;_0x334bx8[_0x1395[10]]!== _0x1395[11]&& _0x334bx9(_0x334bx8);return db[_0x1395[19]][_0x1395[18]]({where:{role:_0x1395[11],online:true}})[_0x1395[15]](function(_0x334bxe){_0x334bxb= _0x334bxe;return require(_0x1395[17])[_0x1395[16]]()})[_0x1395[15]](function(_0x334bxd){if(_0x334bxd&& _0x334bxd[_0x1395[13]]&& _0x334bxb>= _0x334bxd[_0x1395[13]]){return _0x334bxa({message:_0x1395[14]})};return _0x334bx9(_0x334bx8)})[_0x1395[12]](function(_0x334bxc){return _0x334bxa(_0x334bxc)})})};function localAuthenticate(_0x334bx10,_0x334bx11,_0x334bx12,_0x334bx13){var _0x334bx14;_0x334bx10[_0x1395[27]]({where:{name:_0x334bx11[_0x1395[24]]()[_0x1395[23]](),role:{$or:[_0x1395[25],_0x1395[26],_0x1395[11]]}}})[_0x1395[15]](function(_0x334bx8){if(!_0x334bx8){return _0x334bx13(null,false,{message:_0x1395[22]})};return getLicense(_0x334bx8)})[_0x1395[15]](function(_0x334bx8){_0x334bx8[_0x1395[21]](_0x334bx12,function(_0x334bx15,_0x334bx16){if(_0x334bx15){return _0x334bx13(_0x334bx15)};if(!_0x334bx16){return _0x334bx13(null,false,{message:_0x1395[20]})}else {return _0x334bx13(null,_0x334bx8)}})})[_0x1395[12]](function(_0x334bxc){_0x334bx13(_0x334bxc)})}exports[_0x1395[28]]= function(_0x334bx17,_0x334bx18,_0x334bx19){passport[_0x1395[21]](_0x1395[29],function(_0x334bxc,_0x334bx8,_0x334bx1a){var _0x334bx1b=_0x334bxc|| _0x334bx1a;if(_0x334bx1b){return _0x334bx18[_0x1395[31]](401)[_0x1395[30]](_0x334bx1b)};if(!_0x334bx8){return _0x334bx18[_0x1395[31]](404)[_0x1395[30]]({message:_0x1395[32]})};var _0x334bx1c=signToken(_0x334bx8[_0x1395[33]],_0x334bx8[_0x1395[10]]);_0x334bx18[_0x1395[30]]({id:_0x334bx8[_0x1395[33]],token:_0x334bx1c})})(_0x334bx17,_0x334bx18,_0x334bx19)};passport[_0x1395[36]]( new LocalStrategy({usernameField:_0x1395[34],passwordField:_0x1395[35]},function(_0x334bx11,_0x334bx12,_0x334bx13){return localAuthenticate(db.User,_0x334bx11,_0x334bx12,_0x334bx13)}))
\ No newline at end of file
+var _0xa457=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x6C\x6F\x63\x61\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x63\x61\x74\x63\x68","\x61\x67\x65\x6E\x74\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x6C\x6F\x67\x69\x6E\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x74\x68\x65\x6E","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x69\x64","\x63\x6F\x75\x6E\x74","\x55\x73\x65\x72","\x54\x68\x69\x73\x20\x70\x61\x73\x73\x77\x6F\x72\x64\x20\x69\x73\x20\x6E\x6F\x74\x20\x63\x6F\x72\x72\x65\x63\x74\x2E","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x54\x68\x69\x73\x20\x6E\x61\x6D\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x2E","\x74\x72\x69\x6D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x66\x69\x6E\x64","\x6C\x6F\x67\x69\x6E","\x6C\x6F\x63\x61\x6C","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x75\x73\x65"];_0xa457[0];var util=require(_0xa457[1]);var passport=require(_0xa457[2]);var LocalStrategy=require(_0xa457[4])[_0xa457[3]];var BPromise=require(_0xa457[5]);var db=require(_0xa457[7])[_0xa457[6]];var signToken=require(_0xa457[9])[_0xa457[8]];var getLicense=function(_0xdd67x8){return  new BPromise(function(_0xdd67x9,_0xdd67xa){var _0xdd67xb=0;_0xdd67x8[_0xa457[10]]!== _0xa457[11]&& _0xdd67x9(_0xdd67x8);return db[_0xa457[20]][_0xa457[19]]({where:{role:_0xa457[11],online:true,id:{$ne:_0xdd67x8[_0xa457[18]]}}})[_0xa457[15]](function(_0xdd67xe){_0xdd67xb= _0xdd67xe;return require(_0xa457[17])[_0xa457[16]]()})[_0xa457[15]](function(_0xdd67xd){if(_0xdd67xd&& _0xdd67xd[_0xa457[13]]&& _0xdd67xb>= _0xdd67xd[_0xa457[13]]){return _0xdd67xa({message:_0xa457[14]})};return _0xdd67x9(_0xdd67x8)})[_0xa457[12]](function(_0xdd67xc){return _0xdd67xa(_0xdd67xc)})})};function localAuthenticate(_0xdd67x10,_0xdd67x11,_0xdd67x12,_0xdd67x13){var _0xdd67x14;_0xdd67x10[_0xa457[28]]({where:{name:_0xdd67x11[_0xa457[25]]()[_0xa457[24]](),role:{$or:[_0xa457[26],_0xa457[27],_0xa457[11]]}}})[_0xa457[15]](function(_0xdd67x8){if(!_0xdd67x8){return _0xdd67x13(null,false,{message:_0xa457[23]})};return getLicense(_0xdd67x8)})[_0xa457[15]](function(_0xdd67x8){_0xdd67x8[_0xa457[22]](_0xdd67x12,function(_0xdd67x15,_0xdd67x16){if(_0xdd67x15){return _0xdd67x13(_0xdd67x15)};if(!_0xdd67x16){return _0xdd67x13(null,false,{message:_0xa457[21]})}else {return _0xdd67x13(null,_0xdd67x8)}})})[_0xa457[12]](function(_0xdd67xc){_0xdd67x13(_0xdd67xc)})}exports[_0xa457[29]]= function(_0xdd67x17,_0xdd67x18,_0xdd67x19){passport[_0xa457[22]](_0xa457[30],function(_0xdd67xc,_0xdd67x8,_0xdd67x1a){var _0xdd67x1b=_0xdd67xc|| _0xdd67x1a;if(_0xdd67x1b){return _0xdd67x18[_0xa457[32]](401)[_0xa457[31]](_0xdd67x1b)};if(!_0xdd67x8){return _0xdd67x18[_0xa457[32]](404)[_0xa457[31]]({message:_0xa457[33]})};var _0xdd67x1c=signToken(_0xdd67x8[_0xa457[18]],_0xdd67x8[_0xa457[10]]);_0xdd67x18[_0xa457[31]]({id:_0xdd67x8[_0xa457[18]],token:_0xdd67x1c})})(_0xdd67x17,_0xdd67x18,_0xdd67x19)};passport[_0xa457[36]]( new LocalStrategy({usernameField:_0xa457[34],passwordField:_0xa457[35]},function(_0xdd67x11,_0xdd67x12,_0xdd67x13){return localAuthenticate(db.User,_0xdd67x11,_0xdd67x12,_0xdd67x13)}))
\ No newline at end of file
index 59603be..1096a4e 100644 (file)
@@ -1 +1 @@
-var _0xca1e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x75\x74\x68\x4C\x6F\x63\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x6C\x6F\x67\x69\x6E","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xca1e[0];var express=require(_0xca1e[1]);var router=express.Router();var controller=require(_0xca1e[2]);router[_0xca1e[5]](_0xca1e[3],controller[_0xca1e[4]]);module[_0xca1e[6]]= router
\ No newline at end of file
+var _0x703b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x75\x74\x68\x4C\x6F\x63\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x6C\x6F\x67\x69\x6E","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x703b[0];var express=require(_0x703b[1]);var router=express.Router();var controller=require(_0x703b[2]);router[_0x703b[5]](_0x703b[3],controller[_0x703b[4]]);module[_0x703b[6]]= router
\ No newline at end of file
index 5cdb28e..c0e3dac 100644 (file)
@@ -1 +1 @@
-var _0x6eba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52"];_0x6eba[0];var Sequelize=require(_0x6eba[1]);module[_0x6eba[2]]= {name:{type:Sequelize[_0x6eba[3]],allowNull:false},channel:{type:Sequelize[_0x6eba[3]]},description:{type:Sequelize[_0x6eba[3]]},status:{type:Sequelize[_0x6eba[4]],defaultValue:false},timeout:{type:Sequelize[_0x6eba[5]],defaultValue:10}}
\ No newline at end of file
+var _0xd383=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52"];_0xd383[0];var Sequelize=require(_0xd383[1]);module[_0xd383[2]]= {name:{type:Sequelize[_0xd383[3]],allowNull:false},channel:{type:Sequelize[_0xd383[3]]},description:{type:Sequelize[_0xd383[3]]},status:{type:Sequelize[_0xd383[4]],defaultValue:false},timeout:{type:Sequelize[_0xd383[5]],defaultValue:10}}
\ No newline at end of file
index 8910004..89b3876 100644 (file)
@@ -1 +1 @@
-var _0x98db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x67\x65\x74\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73"];_0x98db[0];var jsonpatch=require(_0x98db[1]);var rp=require(_0x98db[2]);var moment=require(_0x98db[3]);var BPromise=require(_0x98db[4]);var util=require(_0x98db[5]);var path=require(_0x98db[6]);var sox=require(_0x98db[7]);var ejs=require(_0x98db[8]);var fs=require(_0x98db[9]);var _=require(_0x98db[10]);var squel=require(_0x98db[11]);var crypto=require(_0x98db[12]);var jsforce=require(_0x98db[13]);var toCsv=require(_0x98db[14]);var qs=require(_0x98db[15]);var logger=require(_0x98db[17])(_0x98db[16]);var utils=require(_0x98db[18]);var config=require(_0x98db[19]);var db=require(_0x98db[21])[_0x98db[20]];function respondWithStatusCode(_0x75a6x15,_0x75a6x16,_0x75a6x17){_0x75a6x16= _0x75a6x16|| 204;return function(_0x75a6x18){if(_0x75a6x18){logger[_0x98db[24]](_0x98db[22],_0x75a6x17,_0x75a6x16,_0x98db[23]);logger[_0x98db[26]](_0x98db[25],_0x75a6x17,_0x75a6x16,_0x98db[23]);return _0x75a6x15[_0x98db[27]](_0x75a6x16)};return _0x75a6x15[_0x98db[29]](304)[_0x98db[28]]()}}function respondWithResult(_0x75a6x15,_0x75a6x16,_0x75a6x17){_0x75a6x16= _0x75a6x16|| 200;return function(_0x75a6x18){if(_0x75a6x18){logger[_0x98db[24]](_0x98db[22],_0x75a6x17,_0x75a6x16,_0x98db[30]);logger[_0x98db[26]](_0x98db[25],_0x75a6x17,_0x75a6x16,_0x98db[30],JSON[_0x98db[31]](_0x75a6x18));return _0x75a6x15[_0x98db[29]](_0x75a6x16)[_0x98db[32]](_0x75a6x18)};return _0x75a6x15[_0x98db[29]](304)[_0x98db[28]]()}}function respondWithFilteredResult(_0x75a6x15,_0x75a6x1b,_0x75a6x17){return function(_0x75a6x18){if(_0x75a6x18){var _0x75a6x1c=_0x75a6x18[_0x98db[33]],_0x75a6x1d=_0x75a6x1b[_0x98db[34]],_0x75a6x1e=_0x75a6x1b[_0x98db[34]]+ _0x75a6x1b[_0x98db[35]],_0x75a6x16;if(_0x75a6x1e>= _0x75a6x1c){_0x75a6x1e= _0x75a6x1c;_0x75a6x16= 200}else {_0x75a6x16= 206};_0x75a6x15[_0x98db[29]](_0x75a6x16);logger[_0x98db[24]](_0x98db[22],_0x75a6x17,_0x75a6x16,_0x98db[36]);logger[_0x98db[26]](_0x98db[25],_0x75a6x17,_0x75a6x16,_0x98db[30],JSON[_0x98db[31]](_0x75a6x18));return _0x75a6x15[_0x98db[40]](_0x98db[37],_0x75a6x1d+ _0x98db[38]+ _0x75a6x1e+ _0x98db[39]+ _0x75a6x1c)[_0x98db[32]](_0x75a6x18)};return null}}function patchUpdates(_0x75a6x20){return function(_0x75a6x18){try{jsonpatch[_0x98db[41]](_0x75a6x18,_0x75a6x20,true)}catch(err){return BPromise[_0x98db[42]](err)};return _0x75a6x18[_0x98db[43]]()}}function saveUpdates(_0x75a6x22,_0x75a6x16,_0x75a6x17){return function(_0x75a6x18){if(_0x75a6x18){return _0x75a6x18[_0x98db[46]](_0x75a6x22)[_0x98db[45]](function(_0x75a6x23){logger[_0x98db[24]](_0x98db[22],_0x75a6x17,_0x75a6x16,_0x98db[44]);logger[_0x98db[26]](_0x98db[25],_0x75a6x17,_0x75a6x16,_0x98db[44],JSON[_0x98db[31]](_0x75a6x18));return _0x75a6x23})};return null}}function removeEntity(_0x75a6x15,_0x75a6x16,_0x75a6x17){return function(_0x75a6x18){if(_0x75a6x18){return _0x75a6x18[_0x98db[48]]()[_0x98db[45]](function(){logger[_0x98db[24]](_0x98db[22],_0x75a6x17,_0x75a6x16,_0x98db[47]);logger[_0x98db[26]](_0x98db[25],_0x75a6x17,_0x75a6x16,_0x98db[47],JSON[_0x98db[31]](_0x75a6x18));_0x75a6x15[_0x98db[29]](204)[_0x98db[28]]()})}}}function handleEntityNotFound(_0x75a6x15,_0x75a6x16,_0x75a6x17){return function(_0x75a6x18){if(!_0x75a6x18){logger[_0x98db[50]](_0x98db[22],_0x75a6x17,404,_0x98db[49]);_0x75a6x15[_0x98db[29]](404)[_0x98db[28]]();return null};return _0x75a6x18}}function handleError(_0x75a6x15,_0x75a6x16,_0x75a6x17){_0x75a6x16= _0x75a6x16|| 500;return function(_0x75a6x27){logger[_0x98db[50]](_0x98db[22],_0x75a6x17,_0x75a6x16,JSON[_0x98db[31]](_0x75a6x27));delete _0x75a6x27[_0x98db[51]];_0x75a6x15[_0x98db[29]](_0x75a6x16)[_0x98db[52]](_0x75a6x27)}}exports[_0x98db[53]]= function(_0x75a6x28,_0x75a6x15){var _0x75a6x1b={},_0x75a6x29={};_0x75a6x29[_0x98db[54]]= _[_0x98db[57]](db[_0x98db[56]][_0x98db[55]]);_0x75a6x29[_0x98db[58]]= _[_0x98db[57]](_0x75a6x28[_0x98db[58]]);_0x75a6x29[_0x98db[59]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],_0x75a6x29[_0x98db[58]]);_0x75a6x1b[_0x98db[61]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],qs[_0x98db[62]](_0x75a6x28[_0x98db[58]][_0x98db[62]]));_0x75a6x1b[_0x98db[61]]= (_0x75a6x1b[_0x98db[61]][_0x98db[63]])?_0x75a6x1b[_0x98db[61]]:_0x75a6x29[_0x98db[54]];if(!_0x75a6x28[_0x98db[58]][_0x98db[65]](_0x98db[64])){_0x75a6x1b[_0x98db[35]]= qs[_0x98db[35]](_0x75a6x28[_0x98db[58]][_0x98db[35]]);_0x75a6x1b[_0x98db[34]]= qs[_0x98db[34]](_0x75a6x28[_0x98db[58]][_0x98db[34]])};_0x75a6x1b[_0x98db[66]]= qs[_0x98db[67]](_0x75a6x28[_0x98db[58]][_0x98db[67]]);_0x75a6x1b[_0x98db[68]]= qs[_0x98db[59]](_[_0x98db[69]](_0x75a6x28[_0x98db[58]],_0x75a6x29[_0x98db[59]]));if(_0x75a6x28[_0x98db[58]][_0x98db[70]]){_0x75a6x1b[_0x98db[68]]= _[_0x98db[73]](_0x75a6x1b[_0x98db[68]],{$or:_[_0x98db[72]](_0x75a6x1b[_0x98db[61]],function(_0x75a6x2a){var _0x75a6x2b={};_0x75a6x2b[_0x75a6x2a]= {$like:_0x98db[71]+ _0x75a6x28[_0x98db[58]][_0x98db[70]]+ _0x98db[71]};return _0x75a6x2b})})};_0x75a6x1b= _[_0x98db[73]]({},_0x75a6x1b,_0x75a6x28[_0x98db[74]]);return db[_0x98db[56]][_0x98db[76]](_0x75a6x1b)[_0x98db[45]](respondWithFilteredResult(_0x75a6x15,_0x75a6x1b,_0x98db[53]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[53]))};exports[_0x98db[77]]= function(_0x75a6x28,_0x75a6x15){var _0x75a6x1b={raw:false,where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}},_0x75a6x29={};_0x75a6x29[_0x98db[54]]= _[_0x98db[57]](db[_0x98db[56]][_0x98db[55]]);_0x75a6x29[_0x98db[58]]= _[_0x98db[57]](_0x75a6x28[_0x98db[58]]);_0x75a6x29[_0x98db[59]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],_0x75a6x29[_0x98db[58]]);_0x75a6x1b[_0x98db[61]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],qs[_0x98db[62]](_0x75a6x28[_0x98db[58]][_0x98db[62]]));_0x75a6x1b[_0x98db[61]]= (_0x75a6x1b[_0x98db[61]][_0x98db[63]])?_0x75a6x1b[_0x98db[61]]:_0x75a6x29[_0x98db[54]];_0x75a6x1b= _[_0x98db[73]]({},_0x75a6x1b,_0x75a6x28[_0x98db[74]]);return db[_0x98db[56]][_0x98db[80]](_0x75a6x1b)[_0x98db[45]](handleEntityNotFound(_0x75a6x15,null,_0x98db[77]))[_0x98db[45]](respondWithResult(_0x75a6x15,null,_0x98db[77]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[77]))};exports[_0x98db[81]]= function(_0x75a6x28,_0x75a6x15){return db[_0x98db[56]][_0x98db[81]](_0x75a6x28[_0x98db[82]],{})[_0x98db[45]](respondWithResult(_0x75a6x15,201,_0x98db[81]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[81]))};exports[_0x98db[46]]= function(_0x75a6x28,_0x75a6x15){if(_0x75a6x28[_0x98db[82]][_0x98db[78]]){delete _0x75a6x28[_0x98db[82]][_0x98db[78]]};return db[_0x98db[56]][_0x98db[80]]({where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}})[_0x98db[45]](handleEntityNotFound(_0x75a6x15,null,_0x98db[46]))[_0x98db[45]](saveUpdates(_0x75a6x28[_0x98db[82]],null,_0x98db[46]))[_0x98db[45]](respondWithResult(_0x75a6x15,null,_0x98db[46]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[46]))};exports[_0x98db[48]]= function(_0x75a6x28,_0x75a6x15){return db[_0x98db[56]][_0x98db[80]]({where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}})[_0x98db[45]](handleEntityNotFound(_0x75a6x15,null,_0x98db[48]))[_0x98db[45]](removeEntity(_0x75a6x15,null,_0x98db[48]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[48]))};exports[_0x98db[83]]= function(_0x75a6x28,_0x75a6x15,_0x75a6x2c){return db[_0x98db[86]][_0x98db[80]]({where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}})[_0x98db[45]](handleEntityNotFound(_0x75a6x15,null,_0x98db[83]))[_0x98db[45]](function(_0x75a6x18){if(_0x75a6x18){return _0x75a6x18[_0x98db[83]](_0x75a6x28[_0x98db[82]][_0x98db[84]],_[_0x98db[85]](_0x75a6x28[_0x98db[82]],[_0x98db[84],_0x98db[78]])|| {})};return null})[_0x98db[45]](respondWithResult(_0x75a6x15,null,_0x98db[83]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[83]))};exports[_0x98db[87]]= function(_0x75a6x28,_0x75a6x18,_0x75a6x2c){var _0x75a6x1b={};var _0x75a6x29={};var _0x75a6x2d;var _0x75a6x1c;return db[_0x98db[56]][_0x98db[88]]({where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}})[_0x98db[45]](handleEntityNotFound(_0x75a6x18,null,_0x98db[87]))[_0x98db[45]](function(_0x75a6x18){if(_0x75a6x18){_0x75a6x2d= _0x75a6x18;_0x75a6x29[_0x98db[54]]= _[_0x98db[57]](db[_0x98db[86]][_0x98db[55]]);_0x75a6x29[_0x98db[58]]= _[_0x98db[57]](_0x75a6x28[_0x98db[58]]);_0x75a6x29[_0x98db[59]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],_0x75a6x29[_0x98db[58]]);_0x75a6x1b[_0x98db[61]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],qs[_0x98db[62]](_0x75a6x28[_0x98db[58]][_0x98db[62]]));_0x75a6x1b[_0x98db[61]]= (_0x75a6x1b[_0x98db[61]][_0x98db[63]])?_0x75a6x1b[_0x98db[61]]:_0x75a6x29[_0x98db[54]];_0x75a6x1b[_0x98db[66]]= qs[_0x98db[67]](_0x75a6x28[_0x98db[58]][_0x98db[67]]);_0x75a6x1b[_0x98db[68]]= qs[_0x98db[59]](_[_0x98db[69]](_0x75a6x28[_0x98db[58]],_0x75a6x29[_0x98db[59]]));if(_0x75a6x28[_0x98db[58]][_0x98db[70]]){_0x75a6x1b[_0x98db[68]]= _[_0x98db[73]](_0x75a6x1b[_0x98db[68]],{$or:_[_0x98db[72]](_0x75a6x1b[_0x98db[61]],function(_0x75a6x2a){var _0x75a6x2b={};_0x75a6x2b[_0x75a6x2a]= {$like:_0x98db[71]+ _0x75a6x28[_0x98db[58]][_0x98db[70]]+ _0x98db[71]};return _0x75a6x2b})})};_0x75a6x1b= _[_0x98db[73]]({},_0x75a6x1b,_0x75a6x28[_0x98db[74]]);return _0x75a6x2d[_0x98db[87]](_0x75a6x1b)}})[_0x98db[45]](function(_0x75a6x2f){if(_0x75a6x2f){_0x75a6x1c= _0x75a6x2f[_0x98db[63]];if(!_0x75a6x28[_0x98db[58]][_0x98db[65]](_0x98db[64])){_0x75a6x1b[_0x98db[35]]= qs[_0x98db[35]](_0x75a6x28[_0x98db[58]][_0x98db[35]]);_0x75a6x1b[_0x98db[34]]= qs[_0x98db[34]](_0x75a6x28[_0x98db[58]][_0x98db[34]])};return _0x75a6x2d[_0x98db[87]](_0x75a6x1b)}})[_0x98db[45]](function(_0x75a6x2e){return _0x75a6x2e?{count:_0x75a6x1c,rows:_0x75a6x2e}:null})[_0x98db[45]](respondWithResult(_0x75a6x18,null,_0x98db[87]))[_0x98db[75]](handleError(_0x75a6x18,null,_0x98db[87]))};exports[_0x98db[89]]= function(_0x75a6x28,_0x75a6x15,_0x75a6x2c){return db[_0x98db[90]][_0x98db[80]]({where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}})[_0x98db[45]](handleEntityNotFound(_0x75a6x15,null,_0x98db[89]))[_0x98db[45]](function(_0x75a6x18){if(_0x75a6x18){return _0x75a6x18[_0x98db[89]](_0x75a6x28[_0x98db[82]][_0x98db[84]],_[_0x98db[85]](_0x75a6x28[_0x98db[82]],[_0x98db[84],_0x98db[78]])|| {})};return null})[_0x98db[45]](respondWithResult(_0x75a6x15,null,_0x98db[89]))[_0x98db[75]](handleError(_0x75a6x15,null,_0x98db[89]))};exports[_0x98db[91]]= function(_0x75a6x28,_0x75a6x18,_0x75a6x2c){var _0x75a6x1b={};var _0x75a6x29={};var _0x75a6x2d;var _0x75a6x1c;return db[_0x98db[56]][_0x98db[88]]({where:{id:_0x75a6x28[_0x98db[79]][_0x98db[78]]}})[_0x98db[45]](handleEntityNotFound(_0x75a6x18,null,_0x98db[91]))[_0x98db[45]](function(_0x75a6x18){if(_0x75a6x18){_0x75a6x2d= _0x75a6x18;_0x75a6x29[_0x98db[54]]= _[_0x98db[57]](db[_0x98db[90]][_0x98db[55]]);_0x75a6x29[_0x98db[58]]= _[_0x98db[57]](_0x75a6x28[_0x98db[58]]);_0x75a6x29[_0x98db[59]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],_0x75a6x29[_0x98db[58]]);_0x75a6x1b[_0x98db[61]]= _[_0x98db[60]](_0x75a6x29[_0x98db[54]],qs[_0x98db[62]](_0x75a6x28[_0x98db[58]][_0x98db[62]]));_0x75a6x1b[_0x98db[61]]= (_0x75a6x1b[_0x98db[61]][_0x98db[63]])?_0x75a6x1b[_0x98db[61]]:_0x75a6x29[_0x98db[54]];_0x75a6x1b[_0x98db[66]]= qs[_0x98db[67]](_0x75a6x28[_0x98db[58]][_0x98db[67]]);_0x75a6x1b[_0x98db[68]]= qs[_0x98db[59]](_[_0x98db[69]](_0x75a6x28[_0x98db[58]],_0x75a6x29[_0x98db[59]]));if(_0x75a6x28[_0x98db[58]][_0x98db[70]]){_0x75a6x1b[_0x98db[68]]= _[_0x98db[73]](_0x75a6x1b[_0x98db[68]],{$or:_[_0x98db[72]](_0x75a6x1b[_0x98db[61]],function(_0x75a6x2a){var _0x75a6x2b={};_0x75a6x2b[_0x75a6x2a]= {$like:_0x98db[71]+ _0x75a6x28[_0x98db[58]][_0x98db[70]]+ _0x98db[71]};return _0x75a6x2b})})};_0x75a6x1b= _[_0x98db[73]]({},_0x75a6x1b,_0x75a6x28[_0x98db[74]]);return _0x75a6x2d[_0x98db[91]](_0x75a6x1b)}})[_0x98db[45]](function(_0x75a6x2f){if(_0x75a6x2f){_0x75a6x1c= _0x75a6x2f[_0x98db[63]];if(!_0x75a6x28[_0x98db[58]][_0x98db[65]](_0x98db[64])){_0x75a6x1b[_0x98db[35]]= qs[_0x98db[35]](_0x75a6x28[_0x98db[58]][_0x98db[35]]);_0x75a6x1b[_0x98db[34]]= qs[_0x98db[34]](_0x75a6x28[_0x98db[58]][_0x98db[34]])};return _0x75a6x2d[_0x98db[91]](_0x75a6x1b)}})[_0x98db[45]](function(_0x75a6x2e){return _0x75a6x2e?{count:_0x75a6x1c,rows:_0x75a6x2e}:null})[_0x98db[45]](respondWithResult(_0x75a6x18,null,_0x98db[91]))[_0x98db[75]](handleError(_0x75a6x18,null,_0x98db[91]))}
\ No newline at end of file
+var _0x6af8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x67\x65\x74\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73"];_0x6af8[0];var jsonpatch=require(_0x6af8[1]);var rp=require(_0x6af8[2]);var moment=require(_0x6af8[3]);var BPromise=require(_0x6af8[4]);var util=require(_0x6af8[5]);var path=require(_0x6af8[6]);var sox=require(_0x6af8[7]);var ejs=require(_0x6af8[8]);var fs=require(_0x6af8[9]);var _=require(_0x6af8[10]);var squel=require(_0x6af8[11]);var crypto=require(_0x6af8[12]);var jsforce=require(_0x6af8[13]);var toCsv=require(_0x6af8[14]);var qs=require(_0x6af8[15]);var logger=require(_0x6af8[17])(_0x6af8[16]);var utils=require(_0x6af8[18]);var config=require(_0x6af8[19]);var db=require(_0x6af8[21])[_0x6af8[20]];function respondWithStatusCode(_0xc563x15,_0xc563x16,_0xc563x17){_0xc563x16= _0xc563x16|| 204;return function(_0xc563x18){if(_0xc563x18){logger[_0x6af8[24]](_0x6af8[22],_0xc563x17,_0xc563x16,_0x6af8[23]);logger[_0x6af8[26]](_0x6af8[25],_0xc563x17,_0xc563x16,_0x6af8[23]);return _0xc563x15[_0x6af8[27]](_0xc563x16)};return _0xc563x15[_0x6af8[29]](304)[_0x6af8[28]]()}}function respondWithResult(_0xc563x15,_0xc563x16,_0xc563x17){_0xc563x16= _0xc563x16|| 200;return function(_0xc563x18){if(_0xc563x18){logger[_0x6af8[24]](_0x6af8[22],_0xc563x17,_0xc563x16,_0x6af8[30]);logger[_0x6af8[26]](_0x6af8[25],_0xc563x17,_0xc563x16,_0x6af8[30],JSON[_0x6af8[31]](_0xc563x18));return _0xc563x15[_0x6af8[29]](_0xc563x16)[_0x6af8[32]](_0xc563x18)};return _0xc563x15[_0x6af8[29]](304)[_0x6af8[28]]()}}function respondWithFilteredResult(_0xc563x15,_0xc563x1b,_0xc563x17){return function(_0xc563x18){if(_0xc563x18){var _0xc563x1c=_0xc563x18[_0x6af8[33]],_0xc563x1d=_0xc563x1b[_0x6af8[34]],_0xc563x1e=_0xc563x1b[_0x6af8[34]]+ _0xc563x1b[_0x6af8[35]],_0xc563x16;if(_0xc563x1e>= _0xc563x1c){_0xc563x1e= _0xc563x1c;_0xc563x16= 200}else {_0xc563x16= 206};_0xc563x15[_0x6af8[29]](_0xc563x16);logger[_0x6af8[24]](_0x6af8[22],_0xc563x17,_0xc563x16,_0x6af8[36]);logger[_0x6af8[26]](_0x6af8[25],_0xc563x17,_0xc563x16,_0x6af8[30],JSON[_0x6af8[31]](_0xc563x18));return _0xc563x15[_0x6af8[40]](_0x6af8[37],_0xc563x1d+ _0x6af8[38]+ _0xc563x1e+ _0x6af8[39]+ _0xc563x1c)[_0x6af8[32]](_0xc563x18)};return null}}function patchUpdates(_0xc563x20){return function(_0xc563x18){try{jsonpatch[_0x6af8[41]](_0xc563x18,_0xc563x20,true)}catch(err){return BPromise[_0x6af8[42]](err)};return _0xc563x18[_0x6af8[43]]()}}function saveUpdates(_0xc563x22,_0xc563x16,_0xc563x17){return function(_0xc563x18){if(_0xc563x18){return _0xc563x18[_0x6af8[46]](_0xc563x22)[_0x6af8[45]](function(_0xc563x23){logger[_0x6af8[24]](_0x6af8[22],_0xc563x17,_0xc563x16,_0x6af8[44]);logger[_0x6af8[26]](_0x6af8[25],_0xc563x17,_0xc563x16,_0x6af8[44],JSON[_0x6af8[31]](_0xc563x18));return _0xc563x23})};return null}}function removeEntity(_0xc563x15,_0xc563x16,_0xc563x17){return function(_0xc563x18){if(_0xc563x18){return _0xc563x18[_0x6af8[48]]()[_0x6af8[45]](function(){logger[_0x6af8[24]](_0x6af8[22],_0xc563x17,_0xc563x16,_0x6af8[47]);logger[_0x6af8[26]](_0x6af8[25],_0xc563x17,_0xc563x16,_0x6af8[47],JSON[_0x6af8[31]](_0xc563x18));_0xc563x15[_0x6af8[29]](204)[_0x6af8[28]]()})}}}function handleEntityNotFound(_0xc563x15,_0xc563x16,_0xc563x17){return function(_0xc563x18){if(!_0xc563x18){logger[_0x6af8[50]](_0x6af8[22],_0xc563x17,404,_0x6af8[49]);_0xc563x15[_0x6af8[29]](404)[_0x6af8[28]]();return null};return _0xc563x18}}function handleError(_0xc563x15,_0xc563x16,_0xc563x17){_0xc563x16= _0xc563x16|| 500;return function(_0xc563x27){logger[_0x6af8[50]](_0x6af8[22],_0xc563x17,_0xc563x16,JSON[_0x6af8[31]](_0xc563x27));delete _0xc563x27[_0x6af8[51]];_0xc563x15[_0x6af8[29]](_0xc563x16)[_0x6af8[52]](_0xc563x27)}}exports[_0x6af8[53]]= function(_0xc563x28,_0xc563x15){var _0xc563x1b={},_0xc563x29={};_0xc563x29[_0x6af8[54]]= _[_0x6af8[57]](db[_0x6af8[56]][_0x6af8[55]]);_0xc563x29[_0x6af8[58]]= _[_0x6af8[57]](_0xc563x28[_0x6af8[58]]);_0xc563x29[_0x6af8[59]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],_0xc563x29[_0x6af8[58]]);_0xc563x1b[_0x6af8[61]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],qs[_0x6af8[62]](_0xc563x28[_0x6af8[58]][_0x6af8[62]]));_0xc563x1b[_0x6af8[61]]= (_0xc563x1b[_0x6af8[61]][_0x6af8[63]])?_0xc563x1b[_0x6af8[61]]:_0xc563x29[_0x6af8[54]];if(!_0xc563x28[_0x6af8[58]][_0x6af8[65]](_0x6af8[64])){_0xc563x1b[_0x6af8[35]]= qs[_0x6af8[35]](_0xc563x28[_0x6af8[58]][_0x6af8[35]]);_0xc563x1b[_0x6af8[34]]= qs[_0x6af8[34]](_0xc563x28[_0x6af8[58]][_0x6af8[34]])};_0xc563x1b[_0x6af8[66]]= qs[_0x6af8[67]](_0xc563x28[_0x6af8[58]][_0x6af8[67]]);_0xc563x1b[_0x6af8[68]]= qs[_0x6af8[59]](_[_0x6af8[69]](_0xc563x28[_0x6af8[58]],_0xc563x29[_0x6af8[59]]));if(_0xc563x28[_0x6af8[58]][_0x6af8[70]]){_0xc563x1b[_0x6af8[68]]= _[_0x6af8[73]](_0xc563x1b[_0x6af8[68]],{$or:_[_0x6af8[72]](_0xc563x1b[_0x6af8[61]],function(_0xc563x2a){var _0xc563x2b={};_0xc563x2b[_0xc563x2a]= {$like:_0x6af8[71]+ _0xc563x28[_0x6af8[58]][_0x6af8[70]]+ _0x6af8[71]};return _0xc563x2b})})};_0xc563x1b= _[_0x6af8[73]]({},_0xc563x1b,_0xc563x28[_0x6af8[74]]);return db[_0x6af8[56]][_0x6af8[76]](_0xc563x1b)[_0x6af8[45]](respondWithFilteredResult(_0xc563x15,_0xc563x1b,_0x6af8[53]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[53]))};exports[_0x6af8[77]]= function(_0xc563x28,_0xc563x15){var _0xc563x1b={raw:false,where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}},_0xc563x29={};_0xc563x29[_0x6af8[54]]= _[_0x6af8[57]](db[_0x6af8[56]][_0x6af8[55]]);_0xc563x29[_0x6af8[58]]= _[_0x6af8[57]](_0xc563x28[_0x6af8[58]]);_0xc563x29[_0x6af8[59]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],_0xc563x29[_0x6af8[58]]);_0xc563x1b[_0x6af8[61]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],qs[_0x6af8[62]](_0xc563x28[_0x6af8[58]][_0x6af8[62]]));_0xc563x1b[_0x6af8[61]]= (_0xc563x1b[_0x6af8[61]][_0x6af8[63]])?_0xc563x1b[_0x6af8[61]]:_0xc563x29[_0x6af8[54]];_0xc563x1b= _[_0x6af8[73]]({},_0xc563x1b,_0xc563x28[_0x6af8[74]]);return db[_0x6af8[56]][_0x6af8[80]](_0xc563x1b)[_0x6af8[45]](handleEntityNotFound(_0xc563x15,null,_0x6af8[77]))[_0x6af8[45]](respondWithResult(_0xc563x15,null,_0x6af8[77]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[77]))};exports[_0x6af8[81]]= function(_0xc563x28,_0xc563x15){return db[_0x6af8[56]][_0x6af8[81]](_0xc563x28[_0x6af8[82]],{})[_0x6af8[45]](respondWithResult(_0xc563x15,201,_0x6af8[81]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[81]))};exports[_0x6af8[46]]= function(_0xc563x28,_0xc563x15){if(_0xc563x28[_0x6af8[82]][_0x6af8[78]]){delete _0xc563x28[_0x6af8[82]][_0x6af8[78]]};return db[_0x6af8[56]][_0x6af8[80]]({where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}})[_0x6af8[45]](handleEntityNotFound(_0xc563x15,null,_0x6af8[46]))[_0x6af8[45]](saveUpdates(_0xc563x28[_0x6af8[82]],null,_0x6af8[46]))[_0x6af8[45]](respondWithResult(_0xc563x15,null,_0x6af8[46]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[46]))};exports[_0x6af8[48]]= function(_0xc563x28,_0xc563x15){return db[_0x6af8[56]][_0x6af8[80]]({where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}})[_0x6af8[45]](handleEntityNotFound(_0xc563x15,null,_0x6af8[48]))[_0x6af8[45]](removeEntity(_0xc563x15,null,_0x6af8[48]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[48]))};exports[_0x6af8[83]]= function(_0xc563x28,_0xc563x15,_0xc563x2c){return db[_0x6af8[86]][_0x6af8[80]]({where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}})[_0x6af8[45]](handleEntityNotFound(_0xc563x15,null,_0x6af8[83]))[_0x6af8[45]](function(_0xc563x18){if(_0xc563x18){return _0xc563x18[_0x6af8[83]](_0xc563x28[_0x6af8[82]][_0x6af8[84]],_[_0x6af8[85]](_0xc563x28[_0x6af8[82]],[_0x6af8[84],_0x6af8[78]])|| {})};return null})[_0x6af8[45]](respondWithResult(_0xc563x15,null,_0x6af8[83]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[83]))};exports[_0x6af8[87]]= function(_0xc563x28,_0xc563x18,_0xc563x2c){var _0xc563x1b={};var _0xc563x29={};var _0xc563x2d;var _0xc563x1c;return db[_0x6af8[56]][_0x6af8[88]]({where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}})[_0x6af8[45]](handleEntityNotFound(_0xc563x18,null,_0x6af8[87]))[_0x6af8[45]](function(_0xc563x18){if(_0xc563x18){_0xc563x2d= _0xc563x18;_0xc563x29[_0x6af8[54]]= _[_0x6af8[57]](db[_0x6af8[86]][_0x6af8[55]]);_0xc563x29[_0x6af8[58]]= _[_0x6af8[57]](_0xc563x28[_0x6af8[58]]);_0xc563x29[_0x6af8[59]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],_0xc563x29[_0x6af8[58]]);_0xc563x1b[_0x6af8[61]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],qs[_0x6af8[62]](_0xc563x28[_0x6af8[58]][_0x6af8[62]]));_0xc563x1b[_0x6af8[61]]= (_0xc563x1b[_0x6af8[61]][_0x6af8[63]])?_0xc563x1b[_0x6af8[61]]:_0xc563x29[_0x6af8[54]];_0xc563x1b[_0x6af8[66]]= qs[_0x6af8[67]](_0xc563x28[_0x6af8[58]][_0x6af8[67]]);_0xc563x1b[_0x6af8[68]]= qs[_0x6af8[59]](_[_0x6af8[69]](_0xc563x28[_0x6af8[58]],_0xc563x29[_0x6af8[59]]));if(_0xc563x28[_0x6af8[58]][_0x6af8[70]]){_0xc563x1b[_0x6af8[68]]= _[_0x6af8[73]](_0xc563x1b[_0x6af8[68]],{$or:_[_0x6af8[72]](_0xc563x1b[_0x6af8[61]],function(_0xc563x2a){var _0xc563x2b={};_0xc563x2b[_0xc563x2a]= {$like:_0x6af8[71]+ _0xc563x28[_0x6af8[58]][_0x6af8[70]]+ _0x6af8[71]};return _0xc563x2b})})};_0xc563x1b= _[_0x6af8[73]]({},_0xc563x1b,_0xc563x28[_0x6af8[74]]);return _0xc563x2d[_0x6af8[87]](_0xc563x1b)}})[_0x6af8[45]](function(_0xc563x2f){if(_0xc563x2f){_0xc563x1c= _0xc563x2f[_0x6af8[63]];if(!_0xc563x28[_0x6af8[58]][_0x6af8[65]](_0x6af8[64])){_0xc563x1b[_0x6af8[35]]= qs[_0x6af8[35]](_0xc563x28[_0x6af8[58]][_0x6af8[35]]);_0xc563x1b[_0x6af8[34]]= qs[_0x6af8[34]](_0xc563x28[_0x6af8[58]][_0x6af8[34]])};return _0xc563x2d[_0x6af8[87]](_0xc563x1b)}})[_0x6af8[45]](function(_0xc563x2e){return _0xc563x2e?{count:_0xc563x1c,rows:_0xc563x2e}:null})[_0x6af8[45]](respondWithResult(_0xc563x18,null,_0x6af8[87]))[_0x6af8[75]](handleError(_0xc563x18,null,_0x6af8[87]))};exports[_0x6af8[89]]= function(_0xc563x28,_0xc563x15,_0xc563x2c){return db[_0x6af8[90]][_0x6af8[80]]({where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}})[_0x6af8[45]](handleEntityNotFound(_0xc563x15,null,_0x6af8[89]))[_0x6af8[45]](function(_0xc563x18){if(_0xc563x18){return _0xc563x18[_0x6af8[89]](_0xc563x28[_0x6af8[82]][_0x6af8[84]],_[_0x6af8[85]](_0xc563x28[_0x6af8[82]],[_0x6af8[84],_0x6af8[78]])|| {})};return null})[_0x6af8[45]](respondWithResult(_0xc563x15,null,_0x6af8[89]))[_0x6af8[75]](handleError(_0xc563x15,null,_0x6af8[89]))};exports[_0x6af8[91]]= function(_0xc563x28,_0xc563x18,_0xc563x2c){var _0xc563x1b={};var _0xc563x29={};var _0xc563x2d;var _0xc563x1c;return db[_0x6af8[56]][_0x6af8[88]]({where:{id:_0xc563x28[_0x6af8[79]][_0x6af8[78]]}})[_0x6af8[45]](handleEntityNotFound(_0xc563x18,null,_0x6af8[91]))[_0x6af8[45]](function(_0xc563x18){if(_0xc563x18){_0xc563x2d= _0xc563x18;_0xc563x29[_0x6af8[54]]= _[_0x6af8[57]](db[_0x6af8[90]][_0x6af8[55]]);_0xc563x29[_0x6af8[58]]= _[_0x6af8[57]](_0xc563x28[_0x6af8[58]]);_0xc563x29[_0x6af8[59]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],_0xc563x29[_0x6af8[58]]);_0xc563x1b[_0x6af8[61]]= _[_0x6af8[60]](_0xc563x29[_0x6af8[54]],qs[_0x6af8[62]](_0xc563x28[_0x6af8[58]][_0x6af8[62]]));_0xc563x1b[_0x6af8[61]]= (_0xc563x1b[_0x6af8[61]][_0x6af8[63]])?_0xc563x1b[_0x6af8[61]]:_0xc563x29[_0x6af8[54]];_0xc563x1b[_0x6af8[66]]= qs[_0x6af8[67]](_0xc563x28[_0x6af8[58]][_0x6af8[67]]);_0xc563x1b[_0x6af8[68]]= qs[_0x6af8[59]](_[_0x6af8[69]](_0xc563x28[_0x6af8[58]],_0xc563x29[_0x6af8[59]]));if(_0xc563x28[_0x6af8[58]][_0x6af8[70]]){_0xc563x1b[_0x6af8[68]]= _[_0x6af8[73]](_0xc563x1b[_0x6af8[68]],{$or:_[_0x6af8[72]](_0xc563x1b[_0x6af8[61]],function(_0xc563x2a){var _0xc563x2b={};_0xc563x2b[_0xc563x2a]= {$like:_0x6af8[71]+ _0xc563x28[_0x6af8[58]][_0x6af8[70]]+ _0x6af8[71]};return _0xc563x2b})})};_0xc563x1b= _[_0x6af8[73]]({},_0xc563x1b,_0xc563x28[_0x6af8[74]]);return _0xc563x2d[_0x6af8[91]](_0xc563x1b)}})[_0x6af8[45]](function(_0xc563x2f){if(_0xc563x2f){_0xc563x1c= _0xc563x2f[_0x6af8[63]];if(!_0xc563x28[_0x6af8[58]][_0x6af8[65]](_0x6af8[64])){_0xc563x1b[_0x6af8[35]]= qs[_0x6af8[35]](_0xc563x28[_0x6af8[58]][_0x6af8[35]]);_0xc563x1b[_0x6af8[34]]= qs[_0x6af8[34]](_0xc563x28[_0x6af8[58]][_0x6af8[34]])};return _0xc563x2d[_0x6af8[91]](_0xc563x1b)}})[_0x6af8[45]](function(_0xc563x2e){return _0xc563x2e?{count:_0xc563x1c,rows:_0xc563x2e}:null})[_0x6af8[45]](respondWithResult(_0xc563x18,null,_0x6af8[91]))[_0x6af8[75]](handleError(_0xc563x18,null,_0x6af8[91]))}
\ No newline at end of file
index f12af80..44f1164 100644 (file)
@@ -1 +1 @@
-var _0xa6d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xa6d9[0];var _=require(_0xa6d9[1]);var util=require(_0xa6d9[2]);var logger=require(_0xa6d9[4])(_0xa6d9[3]);var attributes=require(_0xa6d9[5]);module[_0xa6d9[6]]= function(_0xbdd6x5,_0xbdd6x6){return _0xbdd6x5[_0xa6d9[9]](_0xa6d9[7],attributes,{tableName:_0xa6d9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x51ba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x51ba[0];var _=require(_0x51ba[1]);var util=require(_0x51ba[2]);var logger=require(_0x51ba[4])(_0x51ba[3]);var attributes=require(_0x51ba[5]);module[_0x51ba[6]]= function(_0xda9ax5,_0xda9ax6){return _0xda9ax5[_0x51ba[9]](_0x51ba[7],attributes,{tableName:_0x51ba[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index c09c1a7..060cce0 100644 (file)
@@ -1 +1 @@
-var _0xd5c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd5c5[0];var _=require(_0xd5c5[1]);var util=require(_0xd5c5[2]);var moment=require(_0xd5c5[3]);var BPromise=require(_0xd5c5[4]);var db=require(_0xd5c5[6])[_0xd5c5[5]];var utils=require(_0xd5c5[7]);var logger=require(_0xd5c5[9])(_0xd5c5[8]);var jayson=require(_0xd5c5[10]);var client=jayson[_0xd5c5[12]][_0xd5c5[11]]({port:9002});function respondWithRpcPromise(_0x8ca8xb,_0x8ca8xc,_0x8ca8xd){return  new BPromise(function(_0x8ca8xe,_0x8ca8xf){return client[_0xd5c5[25]](_0x8ca8xb,_0x8ca8xd)[_0xd5c5[24]](function(_0x8ca8x11){logger[_0xd5c5[17]](_0xd5c5[13],_0x8ca8xc,_0xd5c5[16]);logger[_0xd5c5[20]](_0xd5c5[18],_0x8ca8xc,_0xd5c5[16],JSON[_0xd5c5[19]](_0x8ca8x11));if(_0x8ca8x11[_0xd5c5[14]]){if(_0x8ca8x11[_0xd5c5[14]][_0xd5c5[21]]=== 500){logger[_0xd5c5[14]](_0xd5c5[13],_0x8ca8xc,_0x8ca8x11[_0xd5c5[14]][_0xd5c5[22]]);return _0x8ca8xf(_0x8ca8x11[_0xd5c5[14]][_0xd5c5[22]])};logger[_0xd5c5[14]](_0xd5c5[13],_0x8ca8xc,_0x8ca8x11[_0xd5c5[14]][_0xd5c5[22]]);return _0x8ca8xe(_0x8ca8x11[_0xd5c5[14]][_0xd5c5[22]])}else {logger[_0xd5c5[17]](_0xd5c5[13],_0x8ca8xc,_0xd5c5[16]);_0x8ca8xe(_0x8ca8x11[_0xd5c5[23]][_0xd5c5[22]])}})[_0xd5c5[15]](function(_0x8ca8x10){logger[_0xd5c5[14]](_0xd5c5[13],_0x8ca8xc,_0x8ca8x10);_0x8ca8xf(_0x8ca8x10)})})}
\ No newline at end of file
+var _0xba82=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xba82[0];var _=require(_0xba82[1]);var util=require(_0xba82[2]);var moment=require(_0xba82[3]);var BPromise=require(_0xba82[4]);var db=require(_0xba82[6])[_0xba82[5]];var utils=require(_0xba82[7]);var logger=require(_0xba82[9])(_0xba82[8]);var jayson=require(_0xba82[10]);var client=jayson[_0xba82[12]][_0xba82[11]]({port:9002});function respondWithRpcPromise(_0xa547xb,_0xa547xc,_0xa547xd){return  new BPromise(function(_0xa547xe,_0xa547xf){return client[_0xba82[25]](_0xa547xb,_0xa547xd)[_0xba82[24]](function(_0xa547x11){logger[_0xba82[17]](_0xba82[13],_0xa547xc,_0xba82[16]);logger[_0xba82[20]](_0xba82[18],_0xa547xc,_0xba82[16],JSON[_0xba82[19]](_0xa547x11));if(_0xa547x11[_0xba82[14]]){if(_0xa547x11[_0xba82[14]][_0xba82[21]]=== 500){logger[_0xba82[14]](_0xba82[13],_0xa547xc,_0xa547x11[_0xba82[14]][_0xba82[22]]);return _0xa547xf(_0xa547x11[_0xba82[14]][_0xba82[22]])};logger[_0xba82[14]](_0xba82[13],_0xa547xc,_0xa547x11[_0xba82[14]][_0xba82[22]]);return _0xa547xe(_0xa547x11[_0xba82[14]][_0xba82[22]])}else {logger[_0xba82[17]](_0xba82[13],_0xa547xc,_0xba82[16]);_0xa547xe(_0xa547x11[_0xba82[23]][_0xba82[22]])}})[_0xba82[15]](function(_0xa547x10){logger[_0xba82[14]](_0xba82[13],_0xa547xc,_0xa547x10);_0xa547xf(_0xa547x10)})})}
\ No newline at end of file
index 8cd39ac..1c44141 100644 (file)
@@ -1 +1 @@
-var _0x3d28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3d28[0];var multer=require(_0x3d28[1]);var util=require(_0x3d28[2]);var path=require(_0x3d28[3]);var express=require(_0x3d28[4]);var router=express.Router();var auth=require(_0x3d28[5]);var config=require(_0x3d28[6]);var controller=require(_0x3d28[7]);router[_0x3d28[11]](_0x3d28[8],auth[_0x3d28[9]](),controller[_0x3d28[10]]);router[_0x3d28[11]](_0x3d28[12],auth[_0x3d28[9]](),controller[_0x3d28[13]]);router[_0x3d28[11]](_0x3d28[14],auth[_0x3d28[9]](),controller[_0x3d28[15]]);router[_0x3d28[11]](_0x3d28[16],auth[_0x3d28[9]](),controller[_0x3d28[17]]);router[_0x3d28[19]](_0x3d28[8],auth[_0x3d28[9]](),controller[_0x3d28[18]]);router[_0x3d28[19]](_0x3d28[14],auth[_0x3d28[9]](),controller[_0x3d28[20]]);router[_0x3d28[19]](_0x3d28[16],auth[_0x3d28[9]](),controller[_0x3d28[21]]);router[_0x3d28[23]](_0x3d28[12],auth[_0x3d28[9]](),controller[_0x3d28[22]]);router[_0x3d28[25]](_0x3d28[12],auth[_0x3d28[9]](),controller[_0x3d28[24]]);module[_0x3d28[26]]= router
\ No newline at end of file
+var _0x5915=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5915[0];var multer=require(_0x5915[1]);var util=require(_0x5915[2]);var path=require(_0x5915[3]);var express=require(_0x5915[4]);var router=express.Router();var auth=require(_0x5915[5]);var config=require(_0x5915[6]);var controller=require(_0x5915[7]);router[_0x5915[11]](_0x5915[8],auth[_0x5915[9]](),controller[_0x5915[10]]);router[_0x5915[11]](_0x5915[12],auth[_0x5915[9]](),controller[_0x5915[13]]);router[_0x5915[11]](_0x5915[14],auth[_0x5915[9]](),controller[_0x5915[15]]);router[_0x5915[11]](_0x5915[16],auth[_0x5915[9]](),controller[_0x5915[17]]);router[_0x5915[19]](_0x5915[8],auth[_0x5915[9]](),controller[_0x5915[18]]);router[_0x5915[19]](_0x5915[14],auth[_0x5915[9]](),controller[_0x5915[20]]);router[_0x5915[19]](_0x5915[16],auth[_0x5915[9]](),controller[_0x5915[21]]);router[_0x5915[23]](_0x5915[12],auth[_0x5915[9]](),controller[_0x5915[22]]);router[_0x5915[25]](_0x5915[12],auth[_0x5915[9]](),controller[_0x5915[24]]);module[_0x5915[26]]= router
\ No newline at end of file
index 6960d23..ee9c962 100644 (file)
@@ -1 +1 @@
-var _0xfbce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x69\x76\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x41\x63\x74\x69\x76\x65\x2F\x44\x69\x73\x61\x63\x74\x69\x76\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x55\x4E\x53\x49\x47\x4E\x45\x44","\x4D\x61\x78\x20\x32\x30\x30\x20\x63\x61\x6C\x6C\x73\x2E","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x23\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x47\x6C\x6F\x62\x61\x6C\x20\x4D\x61\x78\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x30\x37\x3A\x30\x30\x2D\x32\x32\x3A\x30\x30\x2C\x2A\x2C\x2A\x2C\x2A"];_0xfbce[0];var Sequelize=require(_0xfbce[1]);module[_0xfbce[2]]= {name:{type:Sequelize[_0xfbce[3]],unique:_0xfbce[4],allowNull:false,validate:{is:/[A-Za-z0-9._\\+*!-]+/,notEmpty:true}},type:{type:Sequelize.ENUM(_0xfbce[5]),allowNull:false,defaultValue:_0xfbce[5]},description:{type:Sequelize[_0xfbce[3]]},active:{type:Sequelize[_0xfbce[6]],defaultValue:0,comment:_0xfbce[7]},limitCalls:{type:Sequelize.INTEGER(4)[_0xfbce[8]],defaultValue:30,validate:{min:1,max:200},comment:_0xfbce[9]},dialOriginateCallerIdName:{type:Sequelize[_0xfbce[3]]},dialOriginateCallerIdNumber:{type:Sequelize[_0xfbce[3]]},dialOriginateTimeout:{type:Sequelize.INTEGER(3)[_0xfbce[8]],defaultValue:30,validate:{min:1,max:999},comment:_0xfbce[10]},dialCongestionMaxRetry:{type:Sequelize.INTEGER(3)[_0xfbce[8]],defaultValue:3,validate:{min:1,max:999},comment:_0xfbce[11]},dialCongestionRetryFrequency:{type:Sequelize.INTEGER(5)[_0xfbce[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0xfbce[12]},dialBusyMaxRetry:{type:Sequelize.INTEGER(3)[_0xfbce[8]],defaultValue:3,validate:{min:1,max:999},comment:_0xfbce[13]},dialBusyRetryFrequency:{type:Sequelize.INTEGER(5)[_0xfbce[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0xfbce[14]},dialNoAnswerMaxRetry:{type:Sequelize.INTEGER(3)[_0xfbce[8]],defaultValue:3,comment:_0xfbce[15]},dialNoAnswerRetryFrequency:{type:Sequelize.INTEGER(5)[_0xfbce[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0xfbce[16]},dialGlobalMaxRetry:{type:Sequelize.INTEGER(3)[_0xfbce[8]],validate:{min:1,max:999},defaultValue:4,comment:_0xfbce[17]},dialTimezone:{type:Sequelize[_0xfbce[3]],defaultValue:null},dialGlobalInterval:{type:Sequelize[_0xfbce[3]],defaultValue:_0xfbce[18]}}
\ No newline at end of file
+var _0x6dc2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x69\x76\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x41\x63\x74\x69\x76\x65\x2F\x44\x69\x73\x61\x63\x74\x69\x76\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x55\x4E\x53\x49\x47\x4E\x45\x44","\x4D\x61\x78\x20\x32\x30\x30\x20\x63\x61\x6C\x6C\x73\x2E","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x23\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x47\x6C\x6F\x62\x61\x6C\x20\x4D\x61\x78\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x30\x37\x3A\x30\x30\x2D\x32\x32\x3A\x30\x30\x2C\x2A\x2C\x2A\x2C\x2A"];_0x6dc2[0];var Sequelize=require(_0x6dc2[1]);module[_0x6dc2[2]]= {name:{type:Sequelize[_0x6dc2[3]],unique:_0x6dc2[4],allowNull:false,validate:{is:/[A-Za-z0-9._\\+*!-]+/,notEmpty:true}},type:{type:Sequelize.ENUM(_0x6dc2[5]),allowNull:false,defaultValue:_0x6dc2[5]},description:{type:Sequelize[_0x6dc2[3]]},active:{type:Sequelize[_0x6dc2[6]],defaultValue:0,comment:_0x6dc2[7]},limitCalls:{type:Sequelize.INTEGER(4)[_0x6dc2[8]],defaultValue:30,validate:{min:1,max:200},comment:_0x6dc2[9]},dialOriginateCallerIdName:{type:Sequelize[_0x6dc2[3]]},dialOriginateCallerIdNumber:{type:Sequelize[_0x6dc2[3]]},dialOriginateTimeout:{type:Sequelize.INTEGER(3)[_0x6dc2[8]],defaultValue:30,validate:{min:1,max:999},comment:_0x6dc2[10]},dialCongestionMaxRetry:{type:Sequelize.INTEGER(3)[_0x6dc2[8]],defaultValue:3,validate:{min:1,max:999},comment:_0x6dc2[11]},dialCongestionRetryFrequency:{type:Sequelize.INTEGER(5)[_0x6dc2[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0x6dc2[12]},dialBusyMaxRetry:{type:Sequelize.INTEGER(3)[_0x6dc2[8]],defaultValue:3,validate:{min:1,max:999},comment:_0x6dc2[13]},dialBusyRetryFrequency:{type:Sequelize.INTEGER(5)[_0x6dc2[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0x6dc2[14]},dialNoAnswerMaxRetry:{type:Sequelize.INTEGER(3)[_0x6dc2[8]],defaultValue:3,comment:_0x6dc2[15]},dialNoAnswerRetryFrequency:{type:Sequelize.INTEGER(5)[_0x6dc2[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0x6dc2[16]},dialGlobalMaxRetry:{type:Sequelize.INTEGER(3)[_0x6dc2[8]],validate:{min:1,max:999},defaultValue:4,comment:_0x6dc2[17]},dialTimezone:{type:Sequelize[_0x6dc2[3]],defaultValue:null},dialGlobalInterval:{type:Sequelize[_0x6dc2[3]],defaultValue:_0x6dc2[18]}}
\ No newline at end of file
index 372eeae..8a1af3a 100644 (file)
@@ -1 +1 @@
-var _0x8524=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x67\x65\x74","\x70\x68\x6F\x6E\x65","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x4E\x4F\x54\x20\x45\x58\x49\x53\x54\x53\x20\x28\x3F\x29","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x69\x64\x20\x3D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x2E\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64\x20\x3D\x20\x3F","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F\x20","\x43\x6D\x4C\x69\x73\x74\x49\x64","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x66\x72\x6F\x6D","\x4E\x55\x4C\x4C","\x66\x69\x65\x6C\x64","\x73\x65\x6C\x65\x63\x74","\x70\x68\x6F\x6E\x65\x20\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x4E\x4F\x57\x28\x29","\x66\x72\x6F\x6D\x51\x75\x65\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x69\x6E\x74\x6F","\x69\x6E\x73\x65\x72\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x70\x75\x73\x68","\x61\x6C\x6C","\x73\x70\x72\x65\x61\x64","\x69\x64\x73","\x6F\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73"];_0x8524[0];var jsonpatch=require(_0x8524[1]);var rp=require(_0x8524[2]);var moment=require(_0x8524[3]);var BPromise=require(_0x8524[4]);var util=require(_0x8524[5]);var path=require(_0x8524[6]);var sox=require(_0x8524[7]);var ejs=require(_0x8524[8]);var fs=require(_0x8524[9]);var _=require(_0x8524[10]);var squel=require(_0x8524[11]);var crypto=require(_0x8524[12]);var jsforce=require(_0x8524[13]);var toCsv=require(_0x8524[14]);var qs=require(_0x8524[15]);var logger=require(_0x8524[17])(_0x8524[16]);var utils=require(_0x8524[18]);var config=require(_0x8524[19]);var db=require(_0x8524[21])[_0x8524[20]];function respondWithStatusCode(_0x153dx15,_0x153dx16,_0x153dx17){_0x153dx16= _0x153dx16|| 204;return function(_0x153dx18){if(_0x153dx18){logger[_0x8524[24]](_0x8524[22],_0x153dx17,_0x153dx16,_0x8524[23]);logger[_0x8524[26]](_0x8524[25],_0x153dx17,_0x153dx16,_0x8524[23]);return _0x153dx15[_0x8524[27]](_0x153dx16)};return _0x153dx15[_0x8524[29]](304)[_0x8524[28]]()}}function respondWithResult(_0x153dx15,_0x153dx16,_0x153dx17){_0x153dx16= _0x153dx16|| 200;return function(_0x153dx18){if(_0x153dx18){logger[_0x8524[24]](_0x8524[22],_0x153dx17,_0x153dx16,_0x8524[30]);logger[_0x8524[26]](_0x8524[25],_0x153dx17,_0x153dx16,_0x8524[30],JSON[_0x8524[31]](_0x153dx18));return _0x153dx15[_0x8524[29]](_0x153dx16)[_0x8524[32]](_0x153dx18)};return _0x153dx15[_0x8524[29]](304)[_0x8524[28]]()}}function respondWithFilteredResult(_0x153dx15,_0x153dx1b,_0x153dx17){return function(_0x153dx18){if(_0x153dx18){var _0x153dx1c=_0x153dx18[_0x8524[33]],_0x153dx1d=_0x153dx1b[_0x8524[34]],_0x153dx1e=_0x153dx1b[_0x8524[34]]+ _0x153dx1b[_0x8524[35]],_0x153dx16;if(_0x153dx1e>= _0x153dx1c){_0x153dx1e= _0x153dx1c;_0x153dx16= 200}else {_0x153dx16= 206};_0x153dx15[_0x8524[29]](_0x153dx16);logger[_0x8524[24]](_0x8524[22],_0x153dx17,_0x153dx16,_0x8524[36]);logger[_0x8524[26]](_0x8524[25],_0x153dx17,_0x153dx16,_0x8524[30],JSON[_0x8524[31]](_0x153dx18));return _0x153dx15[_0x8524[40]](_0x8524[37],_0x153dx1d+ _0x8524[38]+ _0x153dx1e+ _0x8524[39]+ _0x153dx1c)[_0x8524[32]](_0x153dx18)};return null}}function patchUpdates(_0x153dx20){return function(_0x153dx18){try{jsonpatch[_0x8524[41]](_0x153dx18,_0x153dx20,true)}catch(err){return BPromise[_0x8524[42]](err)};return _0x153dx18[_0x8524[43]]()}}function saveUpdates(_0x153dx22,_0x153dx16,_0x153dx17){return function(_0x153dx18){if(_0x153dx18){return _0x153dx18[_0x8524[46]](_0x153dx22)[_0x8524[45]](function(_0x153dx23){logger[_0x8524[24]](_0x8524[22],_0x153dx17,_0x153dx16,_0x8524[44]);logger[_0x8524[26]](_0x8524[25],_0x153dx17,_0x153dx16,_0x8524[44],JSON[_0x8524[31]](_0x153dx18));return _0x153dx23})};return null}}function removeEntity(_0x153dx15,_0x153dx16,_0x153dx17){return function(_0x153dx18){if(_0x153dx18){return _0x153dx18[_0x8524[48]]()[_0x8524[45]](function(){logger[_0x8524[24]](_0x8524[22],_0x153dx17,_0x153dx16,_0x8524[47]);logger[_0x8524[26]](_0x8524[25],_0x153dx17,_0x153dx16,_0x8524[47],JSON[_0x8524[31]](_0x153dx18));_0x153dx15[_0x8524[29]](204)[_0x8524[28]]()})}}}function handleEntityNotFound(_0x153dx15,_0x153dx16,_0x153dx17){return function(_0x153dx18){if(!_0x153dx18){logger[_0x8524[50]](_0x8524[22],_0x153dx17,404,_0x8524[49]);_0x153dx15[_0x8524[29]](404)[_0x8524[28]]();return null};return _0x153dx18}}function handleError(_0x153dx15,_0x153dx16,_0x153dx17){_0x153dx16= _0x153dx16|| 500;return function(_0x153dx27){logger[_0x8524[50]](_0x8524[22],_0x153dx17,_0x153dx16,JSON[_0x8524[31]](_0x153dx27));delete _0x153dx27[_0x8524[51]];_0x153dx15[_0x8524[29]](_0x153dx16)[_0x8524[52]](_0x153dx27)}}exports[_0x8524[53]]= function(_0x153dx28,_0x153dx15){var _0x153dx1b={},_0x153dx29={};_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[56]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return db[_0x8524[56]][_0x8524[76]](_0x153dx1b)[_0x8524[45]](respondWithFilteredResult(_0x153dx15,_0x153dx1b,_0x8524[53]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[53]))};exports[_0x8524[77]]= function(_0x153dx28,_0x153dx15){var _0x153dx1b={raw:false,where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}},_0x153dx29={};_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[56]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return db[_0x8524[56]][_0x8524[80]](_0x153dx1b)[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[77]))[_0x8524[45]](respondWithResult(_0x153dx15,null,_0x8524[77]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[77]))};exports[_0x8524[81]]= function(_0x153dx28,_0x153dx15){return db[_0x8524[56]][_0x8524[81]](_0x153dx28[_0x8524[82]],{})[_0x8524[45]](respondWithResult(_0x153dx15,201,_0x8524[81]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[81]))};exports[_0x8524[46]]= function(_0x153dx28,_0x153dx15){if(_0x153dx28[_0x8524[82]][_0x8524[78]]){delete _0x153dx28[_0x8524[82]][_0x8524[78]]};return db[_0x8524[56]][_0x8524[80]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[46]))[_0x8524[45]](saveUpdates(_0x153dx28[_0x8524[82]],null,_0x8524[46]))[_0x8524[45]](respondWithResult(_0x153dx15,null,_0x8524[46]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[46]))};exports[_0x8524[48]]= function(_0x153dx28,_0x153dx15){return db[_0x8524[56]][_0x8524[80]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[48]))[_0x8524[45]](removeEntity(_0x153dx15,null,_0x8524[48]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[48]))};exports[_0x8524[83]]= function(_0x153dx28,_0x153dx18,_0x153dx2c){var _0x153dx1b={};var _0x153dx29={};var _0x153dx2d;var _0x153dx1c;return db[_0x8524[56]][_0x8524[85]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx18,null,_0x8524[83]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){_0x153dx2d= _0x153dx18;_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[84]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return _0x153dx2d[_0x8524[83]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2f){if(_0x153dx2f){_0x153dx1c= _0x153dx2f[_0x8524[63]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};return _0x153dx2d[_0x8524[83]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2e){return _0x153dx2e?{count:_0x153dx1c,rows:_0x153dx2e}:null})[_0x8524[45]](respondWithResult(_0x153dx18,null,_0x8524[83]))[_0x8524[75]](handleError(_0x153dx18,null,_0x8524[83]))};exports[_0x8524[86]]= function(_0x153dx28,_0x153dx18,_0x153dx2c){var _0x153dx1b={};var _0x153dx29={};var _0x153dx2d;var _0x153dx1c;return db[_0x8524[56]][_0x8524[85]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx18,null,_0x8524[86]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){_0x153dx2d= _0x153dx18;_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[87]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return _0x153dx2d[_0x8524[86]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2f){if(_0x153dx2f){_0x153dx1c= _0x153dx2f[_0x8524[63]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};return _0x153dx2d[_0x8524[86]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2e){return _0x153dx2e?{count:_0x153dx1c,rows:_0x153dx2e}:null})[_0x8524[45]](respondWithResult(_0x153dx18,null,_0x8524[86]))[_0x8524[75]](handleError(_0x153dx18,null,_0x8524[86]))};exports[_0x8524[88]]= function(_0x153dx28,_0x153dx18,_0x153dx2c){var _0x153dx1b={};var _0x153dx29={};var _0x153dx2d;var _0x153dx1c;return db[_0x8524[56]][_0x8524[85]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx18,null,_0x8524[88]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){_0x153dx2d= _0x153dx18;_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[89]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return _0x153dx2d[_0x8524[88]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2f){if(_0x153dx2f){_0x153dx1c= _0x153dx2f[_0x8524[63]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};return _0x153dx2d[_0x8524[88]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2e){return _0x153dx2e?{count:_0x153dx1c,rows:_0x153dx2e}:null})[_0x8524[45]](respondWithResult(_0x153dx18,null,_0x8524[88]))[_0x8524[75]](handleError(_0x153dx18,null,_0x8524[88]))};exports[_0x8524[90]]= function(_0x153dx28,_0x153dx18,_0x153dx2c){var _0x153dx1b={};var _0x153dx29={};var _0x153dx2d;var _0x153dx1c;return db[_0x8524[56]][_0x8524[85]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx18,null,_0x8524[90]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){_0x153dx2d= _0x153dx18;_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[91]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return _0x153dx2d[_0x8524[90]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2f){if(_0x153dx2f){_0x153dx1c= _0x153dx2f[_0x8524[63]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};return _0x153dx2d[_0x8524[90]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2e){return _0x153dx2e?{count:_0x153dx1c,rows:_0x153dx2e}:null})[_0x8524[45]](respondWithResult(_0x153dx18,null,_0x8524[90]))[_0x8524[75]](handleError(_0x153dx18,null,_0x8524[90]))};exports[_0x8524[92]]= function(_0x153dx28,_0x153dx18,_0x153dx2c){var _0x153dx1b={};var _0x153dx29={};var _0x153dx2d;var _0x153dx1c;return db[_0x8524[56]][_0x8524[85]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx18,null,_0x8524[92]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){_0x153dx2d= _0x153dx18;_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[93]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return _0x153dx2d[_0x8524[92]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2f){if(_0x153dx2f){_0x153dx1c= _0x153dx2f[_0x8524[63]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};return _0x153dx2d[_0x8524[92]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2e){return _0x153dx2e?{count:_0x153dx1c,rows:_0x153dx2e}:null})[_0x8524[45]](respondWithResult(_0x153dx18,null,_0x8524[92]))[_0x8524[75]](handleError(_0x153dx18,null,_0x8524[92]))};exports[_0x8524[94]]= function(_0x153dx28,_0x153dx15,_0x153dx2c){var _0x153dx30;return db[_0x8524[56]][_0x8524[80]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[94]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){return _0x153dx18[_0x8524[94]](_0x153dx28[_0x8524[82]][_0x8524[125]],_[_0x8524[126]](_0x153dx28[_0x8524[82]],[_0x8524[125],_0x8524[78]])|| {})};return null})[_0x8524[124]](function(_0x153dx31){_0x153dx30= _0x153dx31|| [];var _0x153dx32=[];if(_0x153dx31){for(var _0x153dx33=0;_0x153dx33< _0x153dx31[_0x8524[63]];_0x153dx33++){var _0x153dx34=_0x153dx31[_0x153dx33][_0x8524[95]]({plain:true});var _0x153dx35=squel[_0x8524[120]]()[_0x8524[119]](_0x8524[118])[_0x8524[117]]([_0x8524[96],_0x8524[97],_0x8524[98],_0x8524[99],_0x8524[100],_0x8524[101],_0x8524[102]],squel[_0x8524[112]]()[_0x8524[111]](_0x8524[96])[_0x8524[111]](_0x8524[116],_0x8524[97])[_0x8524[111]](_0x8524[78])[_0x8524[111]](_0x153dx34[_0x8524[107]].toString())[_0x8524[111]](_0x153dx28[_0x8524[79]][_0x8524[78]])[_0x8524[111]](_0x8524[116],_0x8524[101])[_0x8524[111]](_0x8524[116],_0x8524[102])[_0x8524[109]](_0x8524[115])[_0x8524[68]](_0x8524[114],_0x153dx34[_0x8524[107]].toString())[_0x8524[68]](_0x8524[113])[_0x8524[68]](_0x8524[103],squel[_0x8524[112]]()[_0x8524[111]](_0x8524[110])[_0x8524[109]](_0x8524[108])[_0x8524[68]](_0x8524[106],_0x153dx34[_0x8524[107]].toString())[_0x8524[68]](_0x8524[105],_0x153dx28[_0x8524[79]][_0x8524[78]].toString())[_0x8524[68]](_0x8524[104]))).toString();_0x153dx32[_0x8524[122]](db[_0x8524[121]][_0x8524[58]](_0x153dx35))};return BPromise[_0x8524[123]](_0x153dx32)}})[_0x8524[45]](function(){return _0x153dx30})[_0x8524[45]](respondWithResult(_0x153dx15,null,_0x8524[94]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[94]))};exports[_0x8524[127]]= function(_0x153dx28,_0x153dx15,_0x153dx2c){var _0x153dx2f;return db[_0x8524[56]][_0x8524[80]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[127]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){return _0x153dx18[_0x8524[127]](_0x153dx28[_0x8524[58]][_0x8524[125]])}})[_0x8524[45]](function(_0x153dx31){if(_0x153dx31){_0x153dx2f= _0x153dx31;return db[_0x8524[84]][_0x8524[48]]({where:{ListId:_0x153dx28[_0x8524[58]][_0x8524[125]],CampaignId:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](function(){return _0x153dx2f})}})[_0x8524[45]](respondWithStatusCode(_0x153dx15,null,_0x8524[127]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[127]))};exports[_0x8524[128]]= function(_0x153dx28,_0x153dx18,_0x153dx2c){var _0x153dx1b={};var _0x153dx29={};var _0x153dx2d;var _0x153dx1c;return db[_0x8524[56]][_0x8524[85]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx18,null,_0x8524[128]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){_0x153dx2d= _0x153dx18;_0x153dx29[_0x8524[54]]= _[_0x8524[57]](db[_0x8524[93]][_0x8524[55]]);_0x153dx29[_0x8524[58]]= _[_0x8524[57]](_0x153dx28[_0x8524[58]]);_0x153dx29[_0x8524[59]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],_0x153dx29[_0x8524[58]]);_0x153dx1b[_0x8524[61]]= _[_0x8524[60]](_0x153dx29[_0x8524[54]],qs[_0x8524[62]](_0x153dx28[_0x8524[58]][_0x8524[62]]));_0x153dx1b[_0x8524[61]]= (_0x153dx1b[_0x8524[61]][_0x8524[63]])?_0x153dx1b[_0x8524[61]]:_0x153dx29[_0x8524[54]];_0x153dx1b[_0x8524[66]]= qs[_0x8524[67]](_0x153dx28[_0x8524[58]][_0x8524[67]]);_0x153dx1b[_0x8524[68]]= qs[_0x8524[59]](_[_0x8524[69]](_0x153dx28[_0x8524[58]],_0x153dx29[_0x8524[59]]));if(_0x153dx28[_0x8524[58]][_0x8524[70]]){_0x153dx1b[_0x8524[68]]= _[_0x8524[73]](_0x153dx1b[_0x8524[68]],{$or:_[_0x8524[72]](_0x153dx1b[_0x8524[61]],function(_0x153dx2a){var _0x153dx2b={};_0x153dx2b[_0x153dx2a]= {$like:_0x8524[71]+ _0x153dx28[_0x8524[58]][_0x8524[70]]+ _0x8524[71]};return _0x153dx2b})})};_0x153dx1b= _[_0x8524[73]]({},_0x153dx1b,_0x153dx28[_0x8524[74]]);return _0x153dx2d[_0x8524[128]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2f){if(_0x153dx2f){_0x153dx1c= _0x153dx2f[_0x8524[63]];if(!_0x153dx28[_0x8524[58]][_0x8524[65]](_0x8524[64])){_0x153dx1b[_0x8524[35]]= qs[_0x8524[35]](_0x153dx28[_0x8524[58]][_0x8524[35]]);_0x153dx1b[_0x8524[34]]= qs[_0x8524[34]](_0x153dx28[_0x8524[58]][_0x8524[34]])};return _0x153dx2d[_0x8524[128]](_0x153dx1b)}})[_0x8524[45]](function(_0x153dx2e){return _0x153dx2e?{count:_0x153dx1c,rows:_0x153dx2e}:null})[_0x8524[45]](respondWithResult(_0x153dx18,null,_0x8524[128]))[_0x8524[75]](handleError(_0x153dx18,null,_0x8524[128]))};exports[_0x8524[129]]= function(_0x153dx28,_0x153dx15,_0x153dx2c){var _0x153dx30;return db[_0x8524[56]][_0x8524[80]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[129]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){return _0x153dx18[_0x8524[129]](_0x153dx28[_0x8524[82]][_0x8524[125]],_[_0x8524[126]](_0x153dx28[_0x8524[82]],[_0x8524[125],_0x8524[78]])|| {})};return null})[_0x8524[124]](function(_0x153dx31){_0x153dx30= _0x153dx31|| [];var _0x153dx32=[];if(_0x153dx31){for(var _0x153dx33=0;_0x153dx33< _0x153dx31[_0x8524[63]];_0x153dx33++){var _0x153dx34=_0x153dx31[_0x153dx33][_0x8524[95]]({plain:true});var _0x153dx35=squel[_0x8524[120]]()[_0x8524[119]](_0x8524[130])[_0x8524[117]]([_0x8524[96],_0x8524[98],_0x8524[99],_0x8524[100],_0x8524[101],_0x8524[102]],squel[_0x8524[112]]()[_0x8524[111]](_0x8524[96])[_0x8524[111]](_0x8524[78])[_0x8524[111]](_0x153dx34[_0x8524[107]].toString())[_0x8524[111]](_0x153dx28[_0x8524[79]][_0x8524[78]])[_0x8524[111]](_0x8524[116],_0x8524[101])[_0x8524[111]](_0x8524[116],_0x8524[102])[_0x8524[109]](_0x8524[115])[_0x8524[68]](_0x8524[114],_0x153dx34[_0x8524[107]].toString())[_0x8524[68]](_0x8524[113])).toString();_0x153dx32[_0x8524[122]](db[_0x8524[121]][_0x8524[58]](_0x153dx35))};return BPromise[_0x8524[123]](_0x153dx32)}})[_0x8524[45]](function(){return _0x153dx30})[_0x8524[45]](respondWithResult(_0x153dx15,null,_0x8524[129]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[129]))};exports[_0x8524[131]]= function(_0x153dx28,_0x153dx15,_0x153dx2c){var _0x153dx2f;return db[_0x8524[56]][_0x8524[80]]({where:{id:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](handleEntityNotFound(_0x153dx15,null,_0x8524[131]))[_0x8524[45]](function(_0x153dx18){if(_0x153dx18){return _0x153dx18[_0x8524[131]](_0x153dx28[_0x8524[58]][_0x8524[125]])}})[_0x8524[45]](function(_0x153dx31){if(_0x153dx31){_0x153dx2f= _0x153dx31;return db[_0x8524[91]][_0x8524[48]]({where:{ListId:_0x153dx28[_0x8524[58]][_0x8524[125]],CampaignId:_0x153dx28[_0x8524[79]][_0x8524[78]]}})[_0x8524[45]](function(){return _0x153dx2f})}})[_0x8524[45]](respondWithStatusCode(_0x153dx15,null,_0x8524[131]))[_0x8524[75]](handleError(_0x153dx15,null,_0x8524[131]))}
\ No newline at end of file
+var _0xdd96=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x67\x65\x74","\x70\x68\x6F\x6E\x65","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x4E\x4F\x54\x20\x45\x58\x49\x53\x54\x53\x20\x28\x3F\x29","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x69\x64\x20\x3D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x2E\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64\x20\x3D\x20\x3F","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F\x20","\x43\x6D\x4C\x69\x73\x74\x49\x64","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x66\x72\x6F\x6D","\x4E\x55\x4C\x4C","\x66\x69\x65\x6C\x64","\x73\x65\x6C\x65\x63\x74","\x70\x68\x6F\x6E\x65\x20\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x4E\x4F\x57\x28\x29","\x66\x72\x6F\x6D\x51\x75\x65\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x69\x6E\x74\x6F","\x69\x6E\x73\x65\x72\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x70\x75\x73\x68","\x61\x6C\x6C","\x73\x70\x72\x65\x61\x64","\x69\x64\x73","\x6F\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73"];_0xdd96[0];var jsonpatch=require(_0xdd96[1]);var rp=require(_0xdd96[2]);var moment=require(_0xdd96[3]);var BPromise=require(_0xdd96[4]);var util=require(_0xdd96[5]);var path=require(_0xdd96[6]);var sox=require(_0xdd96[7]);var ejs=require(_0xdd96[8]);var fs=require(_0xdd96[9]);var _=require(_0xdd96[10]);var squel=require(_0xdd96[11]);var crypto=require(_0xdd96[12]);var jsforce=require(_0xdd96[13]);var toCsv=require(_0xdd96[14]);var qs=require(_0xdd96[15]);var logger=require(_0xdd96[17])(_0xdd96[16]);var utils=require(_0xdd96[18]);var config=require(_0xdd96[19]);var db=require(_0xdd96[21])[_0xdd96[20]];function respondWithStatusCode(_0x4ee8x15,_0x4ee8x16,_0x4ee8x17){_0x4ee8x16= _0x4ee8x16|| 204;return function(_0x4ee8x18){if(_0x4ee8x18){logger[_0xdd96[24]](_0xdd96[22],_0x4ee8x17,_0x4ee8x16,_0xdd96[23]);logger[_0xdd96[26]](_0xdd96[25],_0x4ee8x17,_0x4ee8x16,_0xdd96[23]);return _0x4ee8x15[_0xdd96[27]](_0x4ee8x16)};return _0x4ee8x15[_0xdd96[29]](304)[_0xdd96[28]]()}}function respondWithResult(_0x4ee8x15,_0x4ee8x16,_0x4ee8x17){_0x4ee8x16= _0x4ee8x16|| 200;return function(_0x4ee8x18){if(_0x4ee8x18){logger[_0xdd96[24]](_0xdd96[22],_0x4ee8x17,_0x4ee8x16,_0xdd96[30]);logger[_0xdd96[26]](_0xdd96[25],_0x4ee8x17,_0x4ee8x16,_0xdd96[30],JSON[_0xdd96[31]](_0x4ee8x18));return _0x4ee8x15[_0xdd96[29]](_0x4ee8x16)[_0xdd96[32]](_0x4ee8x18)};return _0x4ee8x15[_0xdd96[29]](304)[_0xdd96[28]]()}}function respondWithFilteredResult(_0x4ee8x15,_0x4ee8x1b,_0x4ee8x17){return function(_0x4ee8x18){if(_0x4ee8x18){var _0x4ee8x1c=_0x4ee8x18[_0xdd96[33]],_0x4ee8x1d=_0x4ee8x1b[_0xdd96[34]],_0x4ee8x1e=_0x4ee8x1b[_0xdd96[34]]+ _0x4ee8x1b[_0xdd96[35]],_0x4ee8x16;if(_0x4ee8x1e>= _0x4ee8x1c){_0x4ee8x1e= _0x4ee8x1c;_0x4ee8x16= 200}else {_0x4ee8x16= 206};_0x4ee8x15[_0xdd96[29]](_0x4ee8x16);logger[_0xdd96[24]](_0xdd96[22],_0x4ee8x17,_0x4ee8x16,_0xdd96[36]);logger[_0xdd96[26]](_0xdd96[25],_0x4ee8x17,_0x4ee8x16,_0xdd96[30],JSON[_0xdd96[31]](_0x4ee8x18));return _0x4ee8x15[_0xdd96[40]](_0xdd96[37],_0x4ee8x1d+ _0xdd96[38]+ _0x4ee8x1e+ _0xdd96[39]+ _0x4ee8x1c)[_0xdd96[32]](_0x4ee8x18)};return null}}function patchUpdates(_0x4ee8x20){return function(_0x4ee8x18){try{jsonpatch[_0xdd96[41]](_0x4ee8x18,_0x4ee8x20,true)}catch(err){return BPromise[_0xdd96[42]](err)};return _0x4ee8x18[_0xdd96[43]]()}}function saveUpdates(_0x4ee8x22,_0x4ee8x16,_0x4ee8x17){return function(_0x4ee8x18){if(_0x4ee8x18){return _0x4ee8x18[_0xdd96[46]](_0x4ee8x22)[_0xdd96[45]](function(_0x4ee8x23){logger[_0xdd96[24]](_0xdd96[22],_0x4ee8x17,_0x4ee8x16,_0xdd96[44]);logger[_0xdd96[26]](_0xdd96[25],_0x4ee8x17,_0x4ee8x16,_0xdd96[44],JSON[_0xdd96[31]](_0x4ee8x18));return _0x4ee8x23})};return null}}function removeEntity(_0x4ee8x15,_0x4ee8x16,_0x4ee8x17){return function(_0x4ee8x18){if(_0x4ee8x18){return _0x4ee8x18[_0xdd96[48]]()[_0xdd96[45]](function(){logger[_0xdd96[24]](_0xdd96[22],_0x4ee8x17,_0x4ee8x16,_0xdd96[47]);logger[_0xdd96[26]](_0xdd96[25],_0x4ee8x17,_0x4ee8x16,_0xdd96[47],JSON[_0xdd96[31]](_0x4ee8x18));_0x4ee8x15[_0xdd96[29]](204)[_0xdd96[28]]()})}}}function handleEntityNotFound(_0x4ee8x15,_0x4ee8x16,_0x4ee8x17){return function(_0x4ee8x18){if(!_0x4ee8x18){logger[_0xdd96[50]](_0xdd96[22],_0x4ee8x17,404,_0xdd96[49]);_0x4ee8x15[_0xdd96[29]](404)[_0xdd96[28]]();return null};return _0x4ee8x18}}function handleError(_0x4ee8x15,_0x4ee8x16,_0x4ee8x17){_0x4ee8x16= _0x4ee8x16|| 500;return function(_0x4ee8x27){logger[_0xdd96[50]](_0xdd96[22],_0x4ee8x17,_0x4ee8x16,JSON[_0xdd96[31]](_0x4ee8x27));delete _0x4ee8x27[_0xdd96[51]];_0x4ee8x15[_0xdd96[29]](_0x4ee8x16)[_0xdd96[52]](_0x4ee8x27)}}exports[_0xdd96[53]]= function(_0x4ee8x28,_0x4ee8x15){var _0x4ee8x1b={},_0x4ee8x29={};_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[56]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return db[_0xdd96[56]][_0xdd96[76]](_0x4ee8x1b)[_0xdd96[45]](respondWithFilteredResult(_0x4ee8x15,_0x4ee8x1b,_0xdd96[53]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[53]))};exports[_0xdd96[77]]= function(_0x4ee8x28,_0x4ee8x15){var _0x4ee8x1b={raw:false,where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}},_0x4ee8x29={};_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[56]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return db[_0xdd96[56]][_0xdd96[80]](_0x4ee8x1b)[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[77]))[_0xdd96[45]](respondWithResult(_0x4ee8x15,null,_0xdd96[77]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[77]))};exports[_0xdd96[81]]= function(_0x4ee8x28,_0x4ee8x15){return db[_0xdd96[56]][_0xdd96[81]](_0x4ee8x28[_0xdd96[82]],{})[_0xdd96[45]](respondWithResult(_0x4ee8x15,201,_0xdd96[81]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[81]))};exports[_0xdd96[46]]= function(_0x4ee8x28,_0x4ee8x15){if(_0x4ee8x28[_0xdd96[82]][_0xdd96[78]]){delete _0x4ee8x28[_0xdd96[82]][_0xdd96[78]]};return db[_0xdd96[56]][_0xdd96[80]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[46]))[_0xdd96[45]](saveUpdates(_0x4ee8x28[_0xdd96[82]],null,_0xdd96[46]))[_0xdd96[45]](respondWithResult(_0x4ee8x15,null,_0xdd96[46]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[46]))};exports[_0xdd96[48]]= function(_0x4ee8x28,_0x4ee8x15){return db[_0xdd96[56]][_0xdd96[80]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[48]))[_0xdd96[45]](removeEntity(_0x4ee8x15,null,_0xdd96[48]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[48]))};exports[_0xdd96[83]]= function(_0x4ee8x28,_0x4ee8x18,_0x4ee8x2c){var _0x4ee8x1b={};var _0x4ee8x29={};var _0x4ee8x2d;var _0x4ee8x1c;return db[_0xdd96[56]][_0xdd96[85]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x18,null,_0xdd96[83]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){_0x4ee8x2d= _0x4ee8x18;_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[84]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return _0x4ee8x2d[_0xdd96[83]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2f){if(_0x4ee8x2f){_0x4ee8x1c= _0x4ee8x2f[_0xdd96[63]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};return _0x4ee8x2d[_0xdd96[83]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2e){return _0x4ee8x2e?{count:_0x4ee8x1c,rows:_0x4ee8x2e}:null})[_0xdd96[45]](respondWithResult(_0x4ee8x18,null,_0xdd96[83]))[_0xdd96[75]](handleError(_0x4ee8x18,null,_0xdd96[83]))};exports[_0xdd96[86]]= function(_0x4ee8x28,_0x4ee8x18,_0x4ee8x2c){var _0x4ee8x1b={};var _0x4ee8x29={};var _0x4ee8x2d;var _0x4ee8x1c;return db[_0xdd96[56]][_0xdd96[85]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x18,null,_0xdd96[86]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){_0x4ee8x2d= _0x4ee8x18;_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[87]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return _0x4ee8x2d[_0xdd96[86]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2f){if(_0x4ee8x2f){_0x4ee8x1c= _0x4ee8x2f[_0xdd96[63]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};return _0x4ee8x2d[_0xdd96[86]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2e){return _0x4ee8x2e?{count:_0x4ee8x1c,rows:_0x4ee8x2e}:null})[_0xdd96[45]](respondWithResult(_0x4ee8x18,null,_0xdd96[86]))[_0xdd96[75]](handleError(_0x4ee8x18,null,_0xdd96[86]))};exports[_0xdd96[88]]= function(_0x4ee8x28,_0x4ee8x18,_0x4ee8x2c){var _0x4ee8x1b={};var _0x4ee8x29={};var _0x4ee8x2d;var _0x4ee8x1c;return db[_0xdd96[56]][_0xdd96[85]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x18,null,_0xdd96[88]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){_0x4ee8x2d= _0x4ee8x18;_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[89]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return _0x4ee8x2d[_0xdd96[88]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2f){if(_0x4ee8x2f){_0x4ee8x1c= _0x4ee8x2f[_0xdd96[63]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};return _0x4ee8x2d[_0xdd96[88]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2e){return _0x4ee8x2e?{count:_0x4ee8x1c,rows:_0x4ee8x2e}:null})[_0xdd96[45]](respondWithResult(_0x4ee8x18,null,_0xdd96[88]))[_0xdd96[75]](handleError(_0x4ee8x18,null,_0xdd96[88]))};exports[_0xdd96[90]]= function(_0x4ee8x28,_0x4ee8x18,_0x4ee8x2c){var _0x4ee8x1b={};var _0x4ee8x29={};var _0x4ee8x2d;var _0x4ee8x1c;return db[_0xdd96[56]][_0xdd96[85]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x18,null,_0xdd96[90]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){_0x4ee8x2d= _0x4ee8x18;_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[91]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return _0x4ee8x2d[_0xdd96[90]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2f){if(_0x4ee8x2f){_0x4ee8x1c= _0x4ee8x2f[_0xdd96[63]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};return _0x4ee8x2d[_0xdd96[90]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2e){return _0x4ee8x2e?{count:_0x4ee8x1c,rows:_0x4ee8x2e}:null})[_0xdd96[45]](respondWithResult(_0x4ee8x18,null,_0xdd96[90]))[_0xdd96[75]](handleError(_0x4ee8x18,null,_0xdd96[90]))};exports[_0xdd96[92]]= function(_0x4ee8x28,_0x4ee8x18,_0x4ee8x2c){var _0x4ee8x1b={};var _0x4ee8x29={};var _0x4ee8x2d;var _0x4ee8x1c;return db[_0xdd96[56]][_0xdd96[85]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x18,null,_0xdd96[92]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){_0x4ee8x2d= _0x4ee8x18;_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[93]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return _0x4ee8x2d[_0xdd96[92]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2f){if(_0x4ee8x2f){_0x4ee8x1c= _0x4ee8x2f[_0xdd96[63]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};return _0x4ee8x2d[_0xdd96[92]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2e){return _0x4ee8x2e?{count:_0x4ee8x1c,rows:_0x4ee8x2e}:null})[_0xdd96[45]](respondWithResult(_0x4ee8x18,null,_0xdd96[92]))[_0xdd96[75]](handleError(_0x4ee8x18,null,_0xdd96[92]))};exports[_0xdd96[94]]= function(_0x4ee8x28,_0x4ee8x15,_0x4ee8x2c){var _0x4ee8x30;return db[_0xdd96[56]][_0xdd96[80]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[94]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){return _0x4ee8x18[_0xdd96[94]](_0x4ee8x28[_0xdd96[82]][_0xdd96[125]],_[_0xdd96[126]](_0x4ee8x28[_0xdd96[82]],[_0xdd96[125],_0xdd96[78]])|| {})};return null})[_0xdd96[124]](function(_0x4ee8x31){_0x4ee8x30= _0x4ee8x31|| [];var _0x4ee8x32=[];if(_0x4ee8x31){for(var _0x4ee8x33=0;_0x4ee8x33< _0x4ee8x31[_0xdd96[63]];_0x4ee8x33++){var _0x4ee8x34=_0x4ee8x31[_0x4ee8x33][_0xdd96[95]]({plain:true});var _0x4ee8x35=squel[_0xdd96[120]]()[_0xdd96[119]](_0xdd96[118])[_0xdd96[117]]([_0xdd96[96],_0xdd96[97],_0xdd96[98],_0xdd96[99],_0xdd96[100],_0xdd96[101],_0xdd96[102]],squel[_0xdd96[112]]()[_0xdd96[111]](_0xdd96[96],_0xdd96[96])[_0xdd96[111]](_0xdd96[116],_0xdd96[97])[_0xdd96[111]](_0xdd96[78],_0xdd96[98])[_0xdd96[111]](_0x4ee8x34[_0xdd96[107]].toString(),_0xdd96[99])[_0xdd96[111]](_0x4ee8x28[_0xdd96[79]][_0xdd96[78]].toString(),_0xdd96[100])[_0xdd96[111]](_0xdd96[116],_0xdd96[101])[_0xdd96[111]](_0xdd96[116],_0xdd96[102])[_0xdd96[109]](_0xdd96[115])[_0xdd96[68]](_0xdd96[114],_0x4ee8x34[_0xdd96[107]].toString())[_0xdd96[68]](_0xdd96[113])[_0xdd96[68]](_0xdd96[103],squel[_0xdd96[112]]()[_0xdd96[111]](_0xdd96[110])[_0xdd96[109]](_0xdd96[108])[_0xdd96[68]](_0xdd96[106],_0x4ee8x34[_0xdd96[107]].toString())[_0xdd96[68]](_0xdd96[105],_0x4ee8x28[_0xdd96[79]][_0xdd96[78]].toString())[_0xdd96[68]](_0xdd96[104]))).toString();_0x4ee8x32[_0xdd96[122]](db[_0xdd96[121]][_0xdd96[58]](_0x4ee8x35))};return BPromise[_0xdd96[123]](_0x4ee8x32)}})[_0xdd96[45]](function(){return _0x4ee8x30})[_0xdd96[45]](respondWithResult(_0x4ee8x15,null,_0xdd96[94]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[94]))};exports[_0xdd96[127]]= function(_0x4ee8x28,_0x4ee8x15,_0x4ee8x2c){var _0x4ee8x2f;return db[_0xdd96[56]][_0xdd96[80]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[127]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){return _0x4ee8x18[_0xdd96[127]](_0x4ee8x28[_0xdd96[58]][_0xdd96[125]])}})[_0xdd96[45]](function(_0x4ee8x31){if(_0x4ee8x31){_0x4ee8x2f= _0x4ee8x31;return db[_0xdd96[84]][_0xdd96[48]]({where:{ListId:_0x4ee8x28[_0xdd96[58]][_0xdd96[125]],CampaignId:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](function(){return _0x4ee8x2f})}})[_0xdd96[45]](respondWithStatusCode(_0x4ee8x15,null,_0xdd96[127]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[127]))};exports[_0xdd96[128]]= function(_0x4ee8x28,_0x4ee8x18,_0x4ee8x2c){var _0x4ee8x1b={};var _0x4ee8x29={};var _0x4ee8x2d;var _0x4ee8x1c;return db[_0xdd96[56]][_0xdd96[85]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x18,null,_0xdd96[128]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){_0x4ee8x2d= _0x4ee8x18;_0x4ee8x29[_0xdd96[54]]= _[_0xdd96[57]](db[_0xdd96[93]][_0xdd96[55]]);_0x4ee8x29[_0xdd96[58]]= _[_0xdd96[57]](_0x4ee8x28[_0xdd96[58]]);_0x4ee8x29[_0xdd96[59]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],_0x4ee8x29[_0xdd96[58]]);_0x4ee8x1b[_0xdd96[61]]= _[_0xdd96[60]](_0x4ee8x29[_0xdd96[54]],qs[_0xdd96[62]](_0x4ee8x28[_0xdd96[58]][_0xdd96[62]]));_0x4ee8x1b[_0xdd96[61]]= (_0x4ee8x1b[_0xdd96[61]][_0xdd96[63]])?_0x4ee8x1b[_0xdd96[61]]:_0x4ee8x29[_0xdd96[54]];_0x4ee8x1b[_0xdd96[66]]= qs[_0xdd96[67]](_0x4ee8x28[_0xdd96[58]][_0xdd96[67]]);_0x4ee8x1b[_0xdd96[68]]= qs[_0xdd96[59]](_[_0xdd96[69]](_0x4ee8x28[_0xdd96[58]],_0x4ee8x29[_0xdd96[59]]));if(_0x4ee8x28[_0xdd96[58]][_0xdd96[70]]){_0x4ee8x1b[_0xdd96[68]]= _[_0xdd96[73]](_0x4ee8x1b[_0xdd96[68]],{$or:_[_0xdd96[72]](_0x4ee8x1b[_0xdd96[61]],function(_0x4ee8x2a){var _0x4ee8x2b={};_0x4ee8x2b[_0x4ee8x2a]= {$like:_0xdd96[71]+ _0x4ee8x28[_0xdd96[58]][_0xdd96[70]]+ _0xdd96[71]};return _0x4ee8x2b})})};_0x4ee8x1b= _[_0xdd96[73]]({},_0x4ee8x1b,_0x4ee8x28[_0xdd96[74]]);return _0x4ee8x2d[_0xdd96[128]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2f){if(_0x4ee8x2f){_0x4ee8x1c= _0x4ee8x2f[_0xdd96[63]];if(!_0x4ee8x28[_0xdd96[58]][_0xdd96[65]](_0xdd96[64])){_0x4ee8x1b[_0xdd96[35]]= qs[_0xdd96[35]](_0x4ee8x28[_0xdd96[58]][_0xdd96[35]]);_0x4ee8x1b[_0xdd96[34]]= qs[_0xdd96[34]](_0x4ee8x28[_0xdd96[58]][_0xdd96[34]])};return _0x4ee8x2d[_0xdd96[128]](_0x4ee8x1b)}})[_0xdd96[45]](function(_0x4ee8x2e){return _0x4ee8x2e?{count:_0x4ee8x1c,rows:_0x4ee8x2e}:null})[_0xdd96[45]](respondWithResult(_0x4ee8x18,null,_0xdd96[128]))[_0xdd96[75]](handleError(_0x4ee8x18,null,_0xdd96[128]))};exports[_0xdd96[129]]= function(_0x4ee8x28,_0x4ee8x15,_0x4ee8x2c){var _0x4ee8x30;return db[_0xdd96[56]][_0xdd96[80]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[129]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){return _0x4ee8x18[_0xdd96[129]](_0x4ee8x28[_0xdd96[82]][_0xdd96[125]],_[_0xdd96[126]](_0x4ee8x28[_0xdd96[82]],[_0xdd96[125],_0xdd96[78]])|| {})};return null})[_0xdd96[124]](function(_0x4ee8x31){_0x4ee8x30= _0x4ee8x31|| [];var _0x4ee8x32=[];if(_0x4ee8x31){for(var _0x4ee8x33=0;_0x4ee8x33< _0x4ee8x31[_0xdd96[63]];_0x4ee8x33++){var _0x4ee8x34=_0x4ee8x31[_0x4ee8x33][_0xdd96[95]]({plain:true});var _0x4ee8x35=squel[_0xdd96[120]]()[_0xdd96[119]](_0xdd96[130])[_0xdd96[117]]([_0xdd96[96],_0xdd96[98],_0xdd96[99],_0xdd96[100],_0xdd96[101],_0xdd96[102]],squel[_0xdd96[112]]()[_0xdd96[111]](_0xdd96[96])[_0xdd96[111]](_0xdd96[78])[_0xdd96[111]](_0x4ee8x34[_0xdd96[107]].toString())[_0xdd96[111]](_0x4ee8x28[_0xdd96[79]][_0xdd96[78]])[_0xdd96[111]](_0xdd96[116],_0xdd96[101])[_0xdd96[111]](_0xdd96[116],_0xdd96[102])[_0xdd96[109]](_0xdd96[115])[_0xdd96[68]](_0xdd96[114],_0x4ee8x34[_0xdd96[107]].toString())[_0xdd96[68]](_0xdd96[113])).toString();_0x4ee8x32[_0xdd96[122]](db[_0xdd96[121]][_0xdd96[58]](_0x4ee8x35))};return BPromise[_0xdd96[123]](_0x4ee8x32)}})[_0xdd96[45]](function(){return _0x4ee8x30})[_0xdd96[45]](respondWithResult(_0x4ee8x15,null,_0xdd96[129]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[129]))};exports[_0xdd96[131]]= function(_0x4ee8x28,_0x4ee8x15,_0x4ee8x2c){var _0x4ee8x2f;return db[_0xdd96[56]][_0xdd96[80]]({where:{id:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](handleEntityNotFound(_0x4ee8x15,null,_0xdd96[131]))[_0xdd96[45]](function(_0x4ee8x18){if(_0x4ee8x18){return _0x4ee8x18[_0xdd96[131]](_0x4ee8x28[_0xdd96[58]][_0xdd96[125]])}})[_0xdd96[45]](function(_0x4ee8x31){if(_0x4ee8x31){_0x4ee8x2f= _0x4ee8x31;return db[_0xdd96[91]][_0xdd96[48]]({where:{ListId:_0x4ee8x28[_0xdd96[58]][_0xdd96[125]],CampaignId:_0x4ee8x28[_0xdd96[79]][_0xdd96[78]]}})[_0xdd96[45]](function(){return _0x4ee8x2f})}})[_0xdd96[45]](respondWithStatusCode(_0x4ee8x15,null,_0xdd96[131]))[_0xdd96[75]](handleError(_0x4ee8x15,null,_0xdd96[131]))}
\ No newline at end of file
index c084008..a43e07d 100644 (file)
@@ -1 +1 @@
-var _0xf364=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xf364[0];var _=require(_0xf364[1]);var util=require(_0xf364[2]);var logger=require(_0xf364[4])(_0xf364[3]);var attributes=require(_0xf364[5]);module[_0xf364[6]]= function(_0x9933x5,_0x9933x6){return _0x9933x5[_0xf364[9]](_0xf364[7],attributes,{tableName:_0xf364[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe00d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xe00d[0];var _=require(_0xe00d[1]);var util=require(_0xe00d[2]);var logger=require(_0xe00d[4])(_0xe00d[3]);var attributes=require(_0xe00d[5]);module[_0xe00d[6]]= function(_0x7d7dx5,_0x7d7dx6){return _0x7d7dx5[_0xe00d[9]](_0xe00d[7],attributes,{tableName:_0xe00d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 88fd5cf..23079af 100644 (file)
@@ -1 +1 @@
-var _0xdcd2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E"];_0xdcd2[0];var _=require(_0xdcd2[1]);var util=require(_0xdcd2[2]);var moment=require(_0xdcd2[3]);var BPromise=require(_0xdcd2[4]);var db=require(_0xdcd2[6])[_0xdcd2[5]];var utils=require(_0xdcd2[7]);var logger=require(_0xdcd2[9])(_0xdcd2[8]);var jayson=require(_0xdcd2[10]);var client=jayson[_0xdcd2[12]][_0xdcd2[11]]({port:9002});function respondWithRpcPromise(_0xb8edxb,_0xb8edxc,_0xb8edxd){return  new BPromise(function(_0xb8edxe,_0xb8edxf){return client[_0xdcd2[25]](_0xb8edxb,_0xb8edxd)[_0xdcd2[24]](function(_0xb8edx11){logger[_0xdcd2[17]](_0xdcd2[13],_0xb8edxc,_0xdcd2[16]);logger[_0xdcd2[20]](_0xdcd2[18],_0xb8edxc,_0xdcd2[16],JSON[_0xdcd2[19]](_0xb8edx11));if(_0xb8edx11[_0xdcd2[14]]){if(_0xb8edx11[_0xdcd2[14]][_0xdcd2[21]]=== 500){logger[_0xdcd2[14]](_0xdcd2[13],_0xb8edxc,_0xb8edx11[_0xdcd2[14]][_0xdcd2[22]]);return _0xb8edxf(_0xb8edx11[_0xdcd2[14]][_0xdcd2[22]])};logger[_0xdcd2[14]](_0xdcd2[13],_0xb8edxc,_0xb8edx11[_0xdcd2[14]][_0xdcd2[22]]);return _0xb8edxe(_0xb8edx11[_0xdcd2[14]][_0xdcd2[22]])}else {logger[_0xdcd2[17]](_0xdcd2[13],_0xb8edxc,_0xdcd2[16]);_0xb8edxe(_0xb8edx11[_0xdcd2[23]][_0xdcd2[22]])}})[_0xdcd2[15]](function(_0xb8edx10){logger[_0xdcd2[14]](_0xdcd2[13],_0xb8edxc,_0xb8edx10);_0xb8edxf(_0xb8edx10)})})}exports[_0xdcd2[26]]= function(_0xb8edxd){var _0xb8edx12=this;return  new Promise(function(_0xb8edxe,_0xb8edxf){return db[_0xdcd2[37]][_0xdcd2[36]]({raw:_0xb8edxd[_0xdcd2[27]]?(_0xb8edxd[_0xdcd2[27]][_0xdcd2[28]]=== undefined)?true:false:true,where:_0xb8edxd[_0xdcd2[27]]?_0xb8edxd[_0xdcd2[27]][_0xdcd2[29]]|| null:null,attributes:_0xb8edxd[_0xdcd2[27]]?_0xb8edxd[_0xdcd2[27]][_0xdcd2[30]]|| null:null,limit:_0xb8edxd[_0xdcd2[27]]?_0xb8edxd[_0xdcd2[27]][_0xdcd2[31]]|| null:null,include:_0xb8edxd[_0xdcd2[27]]?(_0xb8edxd[_0xdcd2[27]][_0xdcd2[32]]?_[_0xdcd2[35]](_0xb8edxd[_0xdcd2[27]][_0xdcd2[32]],function(_0xb8edx13){return {model:db[_0xb8edx13[_0xdcd2[33]]],as:_0xb8edx13[_0xdcd2[34]],attributes:_0xb8edx13[_0xdcd2[30]],include:_0xb8edx13[_0xdcd2[32]]?_[_0xdcd2[35]](_0xb8edx13[_0xdcd2[32]],function(_0xb8edx14){return {model:db[_0xb8edx14[_0xdcd2[33]]],as:_0xb8edx14[_0xdcd2[34]],attributes:_0xb8edx14[_0xdcd2[30]],include:_0xb8edx14[_0xdcd2[32]]?_[_0xdcd2[35]](_0xb8edx14[_0xdcd2[32]],function(_0xb8edx15){return {model:db[_0xb8edx15[_0xdcd2[33]]],as:_0xb8edx15[_0xdcd2[34]],attributes:_0xb8edx15[_0xdcd2[30]]}}):[]}}):[]}}):[]):[]})[_0xdcd2[24]](function(_0xb8edx11){logger[_0xdcd2[17]](_0xdcd2[26],_0xb8edxd);logger[_0xdcd2[20]](_0xdcd2[26],_0xb8edxd,JSON[_0xdcd2[19]](_0xb8edx11));_0xb8edxe(_0xb8edx11)})[_0xdcd2[15]](function(_0xb8edx10){logger[_0xdcd2[14]](_0xdcd2[26],_0xb8edx10[_0xdcd2[22]],_0xb8edxd);_0xb8edxf(_0xb8edx12[_0xdcd2[14]](500,_0xb8edx10[_0xdcd2[22]]))})})}
\ No newline at end of file
+var _0x63b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E"];_0x63b1[0];var _=require(_0x63b1[1]);var util=require(_0x63b1[2]);var moment=require(_0x63b1[3]);var BPromise=require(_0x63b1[4]);var db=require(_0x63b1[6])[_0x63b1[5]];var utils=require(_0x63b1[7]);var logger=require(_0x63b1[9])(_0x63b1[8]);var jayson=require(_0x63b1[10]);var client=jayson[_0x63b1[12]][_0x63b1[11]]({port:9002});function respondWithRpcPromise(_0xf48bxb,_0xf48bxc,_0xf48bxd){return  new BPromise(function(_0xf48bxe,_0xf48bxf){return client[_0x63b1[25]](_0xf48bxb,_0xf48bxd)[_0x63b1[24]](function(_0xf48bx11){logger[_0x63b1[17]](_0x63b1[13],_0xf48bxc,_0x63b1[16]);logger[_0x63b1[20]](_0x63b1[18],_0xf48bxc,_0x63b1[16],JSON[_0x63b1[19]](_0xf48bx11));if(_0xf48bx11[_0x63b1[14]]){if(_0xf48bx11[_0x63b1[14]][_0x63b1[21]]=== 500){logger[_0x63b1[14]](_0x63b1[13],_0xf48bxc,_0xf48bx11[_0x63b1[14]][_0x63b1[22]]);return _0xf48bxf(_0xf48bx11[_0x63b1[14]][_0x63b1[22]])};logger[_0x63b1[14]](_0x63b1[13],_0xf48bxc,_0xf48bx11[_0x63b1[14]][_0x63b1[22]]);return _0xf48bxe(_0xf48bx11[_0x63b1[14]][_0x63b1[22]])}else {logger[_0x63b1[17]](_0x63b1[13],_0xf48bxc,_0x63b1[16]);_0xf48bxe(_0xf48bx11[_0x63b1[23]][_0x63b1[22]])}})[_0x63b1[15]](function(_0xf48bx10){logger[_0x63b1[14]](_0x63b1[13],_0xf48bxc,_0xf48bx10);_0xf48bxf(_0xf48bx10)})})}exports[_0x63b1[26]]= function(_0xf48bxd){var _0xf48bx12=this;return  new Promise(function(_0xf48bxe,_0xf48bxf){return db[_0x63b1[37]][_0x63b1[36]]({raw:_0xf48bxd[_0x63b1[27]]?(_0xf48bxd[_0x63b1[27]][_0x63b1[28]]=== undefined)?true:false:true,where:_0xf48bxd[_0x63b1[27]]?_0xf48bxd[_0x63b1[27]][_0x63b1[29]]|| null:null,attributes:_0xf48bxd[_0x63b1[27]]?_0xf48bxd[_0x63b1[27]][_0x63b1[30]]|| null:null,limit:_0xf48bxd[_0x63b1[27]]?_0xf48bxd[_0x63b1[27]][_0x63b1[31]]|| null:null,include:_0xf48bxd[_0x63b1[27]]?(_0xf48bxd[_0x63b1[27]][_0x63b1[32]]?_[_0x63b1[35]](_0xf48bxd[_0x63b1[27]][_0x63b1[32]],function(_0xf48bx13){return {model:db[_0xf48bx13[_0x63b1[33]]],as:_0xf48bx13[_0x63b1[34]],attributes:_0xf48bx13[_0x63b1[30]],include:_0xf48bx13[_0x63b1[32]]?_[_0x63b1[35]](_0xf48bx13[_0x63b1[32]],function(_0xf48bx14){return {model:db[_0xf48bx14[_0x63b1[33]]],as:_0xf48bx14[_0x63b1[34]],attributes:_0xf48bx14[_0x63b1[30]],include:_0xf48bx14[_0x63b1[32]]?_[_0x63b1[35]](_0xf48bx14[_0x63b1[32]],function(_0xf48bx15){return {model:db[_0xf48bx15[_0x63b1[33]]],as:_0xf48bx15[_0x63b1[34]],attributes:_0xf48bx15[_0x63b1[30]]}}):[]}}):[]}}):[]):[]})[_0x63b1[24]](function(_0xf48bx11){logger[_0x63b1[17]](_0x63b1[26],_0xf48bxd);logger[_0x63b1[20]](_0x63b1[26],_0xf48bxd,JSON[_0x63b1[19]](_0xf48bx11));_0xf48bxe(_0xf48bx11)})[_0x63b1[15]](function(_0xf48bx10){logger[_0x63b1[14]](_0x63b1[26],_0xf48bx10[_0x63b1[22]],_0xf48bxd);_0xf48bxf(_0xf48bx12[_0x63b1[14]](500,_0xf48bx10[_0x63b1[22]]))})})}
\ No newline at end of file
index 7a0640c..1b355a4 100644 (file)
@@ -1 +1 @@
-var _0x391f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x391f[0];var multer=require(_0x391f[1]);var util=require(_0x391f[2]);var path=require(_0x391f[3]);var express=require(_0x391f[4]);var router=express.Router();var auth=require(_0x391f[5]);var config=require(_0x391f[6]);var controller=require(_0x391f[7]);router[_0x391f[11]](_0x391f[8],auth[_0x391f[9]](),controller[_0x391f[10]]);router[_0x391f[11]](_0x391f[12],auth[_0x391f[9]](),controller[_0x391f[13]]);router[_0x391f[11]](_0x391f[14],auth[_0x391f[9]](),controller[_0x391f[15]]);router[_0x391f[11]](_0x391f[16],auth[_0x391f[9]](),controller[_0x391f[17]]);router[_0x391f[11]](_0x391f[18],auth[_0x391f[9]](),controller[_0x391f[19]]);router[_0x391f[11]](_0x391f[20],auth[_0x391f[9]](),controller[_0x391f[21]]);router[_0x391f[11]](_0x391f[22],auth[_0x391f[9]](),controller[_0x391f[23]]);router[_0x391f[11]](_0x391f[24],auth[_0x391f[9]](),controller[_0x391f[25]]);router[_0x391f[27]](_0x391f[8],auth[_0x391f[9]](),controller[_0x391f[26]]);router[_0x391f[27]](_0x391f[22],auth[_0x391f[9]](),controller[_0x391f[28]]);router[_0x391f[27]](_0x391f[24],auth[_0x391f[9]](),controller[_0x391f[29]]);router[_0x391f[31]](_0x391f[12],auth[_0x391f[9]](),controller[_0x391f[30]]);router[_0x391f[33]](_0x391f[12],auth[_0x391f[9]](),controller[_0x391f[32]]);router[_0x391f[33]](_0x391f[22],auth[_0x391f[9]](),controller[_0x391f[34]]);router[_0x391f[33]](_0x391f[24],auth[_0x391f[9]](),controller[_0x391f[35]]);module[_0x391f[36]]= router
\ No newline at end of file
+var _0x2b3e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x2b3e[0];var multer=require(_0x2b3e[1]);var util=require(_0x2b3e[2]);var path=require(_0x2b3e[3]);var express=require(_0x2b3e[4]);var router=express.Router();var auth=require(_0x2b3e[5]);var config=require(_0x2b3e[6]);var controller=require(_0x2b3e[7]);router[_0x2b3e[11]](_0x2b3e[8],auth[_0x2b3e[9]](),controller[_0x2b3e[10]]);router[_0x2b3e[11]](_0x2b3e[12],auth[_0x2b3e[9]](),controller[_0x2b3e[13]]);router[_0x2b3e[11]](_0x2b3e[14],auth[_0x2b3e[9]](),controller[_0x2b3e[15]]);router[_0x2b3e[11]](_0x2b3e[16],auth[_0x2b3e[9]](),controller[_0x2b3e[17]]);router[_0x2b3e[11]](_0x2b3e[18],auth[_0x2b3e[9]](),controller[_0x2b3e[19]]);router[_0x2b3e[11]](_0x2b3e[20],auth[_0x2b3e[9]](),controller[_0x2b3e[21]]);router[_0x2b3e[11]](_0x2b3e[22],auth[_0x2b3e[9]](),controller[_0x2b3e[23]]);router[_0x2b3e[11]](_0x2b3e[24],auth[_0x2b3e[9]](),controller[_0x2b3e[25]]);router[_0x2b3e[27]](_0x2b3e[8],auth[_0x2b3e[9]](),controller[_0x2b3e[26]]);router[_0x2b3e[27]](_0x2b3e[22],auth[_0x2b3e[9]](),controller[_0x2b3e[28]]);router[_0x2b3e[27]](_0x2b3e[24],auth[_0x2b3e[9]](),controller[_0x2b3e[29]]);router[_0x2b3e[31]](_0x2b3e[12],auth[_0x2b3e[9]](),controller[_0x2b3e[30]]);router[_0x2b3e[33]](_0x2b3e[12],auth[_0x2b3e[9]](),controller[_0x2b3e[32]]);router[_0x2b3e[33]](_0x2b3e[22],auth[_0x2b3e[9]](),controller[_0x2b3e[34]]);router[_0x2b3e[33]](_0x2b3e[24],auth[_0x2b3e[9]](),controller[_0x2b3e[35]]);module[_0x2b3e[36]]= router
\ No newline at end of file
index 9973a90..efd6f96 100644 (file)
@@ -1 +1 @@
-var _0x1513=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x1513[0];var Sequelize=require(_0x1513[1]);module[_0x1513[2]]= {key:{type:Sequelize[_0x1513[3]],allowNull:false},value:{type:Sequelize[_0x1513[4]],allowNull:false},description:{type:Sequelize[_0x1513[3]]}}
\ No newline at end of file
+var _0x5288=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x5288[0];var Sequelize=require(_0x5288[1]);module[_0x5288[2]]= {key:{type:Sequelize[_0x5288[3]],allowNull:false},value:{type:Sequelize[_0x5288[4]],allowNull:false},description:{type:Sequelize[_0x5288[3]]}}
\ No newline at end of file
index bb56549..8bdf1e6 100644 (file)
@@ -1 +1 @@
-var _0x40ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x40ad[0];var jsonpatch=require(_0x40ad[1]);var rp=require(_0x40ad[2]);var moment=require(_0x40ad[3]);var BPromise=require(_0x40ad[4]);var util=require(_0x40ad[5]);var path=require(_0x40ad[6]);var sox=require(_0x40ad[7]);var ejs=require(_0x40ad[8]);var fs=require(_0x40ad[9]);var _=require(_0x40ad[10]);var squel=require(_0x40ad[11]);var crypto=require(_0x40ad[12]);var jsforce=require(_0x40ad[13]);var toCsv=require(_0x40ad[14]);var qs=require(_0x40ad[15]);var logger=require(_0x40ad[17])(_0x40ad[16]);var utils=require(_0x40ad[18]);var config=require(_0x40ad[19]);var db=require(_0x40ad[21])[_0x40ad[20]];function respondWithStatusCode(_0x4080x15,_0x4080x16,_0x4080x17){_0x4080x16= _0x4080x16|| 204;return function(_0x4080x18){if(_0x4080x18){logger[_0x40ad[24]](_0x40ad[22],_0x4080x17,_0x4080x16,_0x40ad[23]);logger[_0x40ad[26]](_0x40ad[25],_0x4080x17,_0x4080x16,_0x40ad[23]);return _0x4080x15[_0x40ad[27]](_0x4080x16)};return _0x4080x15[_0x40ad[29]](304)[_0x40ad[28]]()}}function respondWithResult(_0x4080x15,_0x4080x16,_0x4080x17){_0x4080x16= _0x4080x16|| 200;return function(_0x4080x18){if(_0x4080x18){logger[_0x40ad[24]](_0x40ad[22],_0x4080x17,_0x4080x16,_0x40ad[30]);logger[_0x40ad[26]](_0x40ad[25],_0x4080x17,_0x4080x16,_0x40ad[30],JSON[_0x40ad[31]](_0x4080x18));return _0x4080x15[_0x40ad[29]](_0x4080x16)[_0x40ad[32]](_0x4080x18)};return _0x4080x15[_0x40ad[29]](304)[_0x40ad[28]]()}}function respondWithFilteredResult(_0x4080x15,_0x4080x1b,_0x4080x17){return function(_0x4080x18){if(_0x4080x18){var _0x4080x1c=_0x4080x18[_0x40ad[33]],_0x4080x1d=_0x4080x1b[_0x40ad[34]],_0x4080x1e=_0x4080x1b[_0x40ad[34]]+ _0x4080x1b[_0x40ad[35]],_0x4080x16;if(_0x4080x1e>= _0x4080x1c){_0x4080x1e= _0x4080x1c;_0x4080x16= 200}else {_0x4080x16= 206};_0x4080x15[_0x40ad[29]](_0x4080x16);logger[_0x40ad[24]](_0x40ad[22],_0x4080x17,_0x4080x16,_0x40ad[36]);logger[_0x40ad[26]](_0x40ad[25],_0x4080x17,_0x4080x16,_0x40ad[30],JSON[_0x40ad[31]](_0x4080x18));return _0x4080x15[_0x40ad[40]](_0x40ad[37],_0x4080x1d+ _0x40ad[38]+ _0x4080x1e+ _0x40ad[39]+ _0x4080x1c)[_0x40ad[32]](_0x4080x18)};return null}}function patchUpdates(_0x4080x20){return function(_0x4080x18){try{jsonpatch[_0x40ad[41]](_0x4080x18,_0x4080x20,true)}catch(err){return BPromise[_0x40ad[42]](err)};return _0x4080x18[_0x40ad[43]]()}}function saveUpdates(_0x4080x22,_0x4080x16,_0x4080x17){return function(_0x4080x18){if(_0x4080x18){return _0x4080x18[_0x40ad[46]](_0x4080x22)[_0x40ad[45]](function(_0x4080x23){logger[_0x40ad[24]](_0x40ad[22],_0x4080x17,_0x4080x16,_0x40ad[44]);logger[_0x40ad[26]](_0x40ad[25],_0x4080x17,_0x4080x16,_0x40ad[44],JSON[_0x40ad[31]](_0x4080x18));return _0x4080x23})};return null}}function removeEntity(_0x4080x15,_0x4080x16,_0x4080x17){return function(_0x4080x18){if(_0x4080x18){return _0x4080x18[_0x40ad[48]]()[_0x40ad[45]](function(){logger[_0x40ad[24]](_0x40ad[22],_0x4080x17,_0x4080x16,_0x40ad[47]);logger[_0x40ad[26]](_0x40ad[25],_0x4080x17,_0x4080x16,_0x40ad[47],JSON[_0x40ad[31]](_0x4080x18));_0x4080x15[_0x40ad[29]](204)[_0x40ad[28]]()})}}}function handleEntityNotFound(_0x4080x15,_0x4080x16,_0x4080x17){return function(_0x4080x18){if(!_0x4080x18){logger[_0x40ad[50]](_0x40ad[22],_0x4080x17,404,_0x40ad[49]);_0x4080x15[_0x40ad[29]](404)[_0x40ad[28]]();return null};return _0x4080x18}}function handleError(_0x4080x15,_0x4080x16,_0x4080x17){_0x4080x16= _0x4080x16|| 500;return function(_0x4080x27){logger[_0x40ad[50]](_0x40ad[22],_0x4080x17,_0x4080x16,JSON[_0x40ad[31]](_0x4080x27));delete _0x4080x27[_0x40ad[51]];_0x4080x15[_0x40ad[29]](_0x4080x16)[_0x40ad[52]](_0x4080x27)}}exports[_0x40ad[53]]= function(_0x4080x28,_0x4080x15){var _0x4080x1b={},_0x4080x29={};_0x4080x29[_0x40ad[54]]= _[_0x40ad[57]](db[_0x40ad[56]][_0x40ad[55]]);_0x4080x29[_0x40ad[58]]= _[_0x40ad[57]](_0x4080x28[_0x40ad[58]]);_0x4080x29[_0x40ad[59]]= _[_0x40ad[60]](_0x4080x29[_0x40ad[54]],_0x4080x29[_0x40ad[58]]);_0x4080x1b[_0x40ad[61]]= _[_0x40ad[60]](_0x4080x29[_0x40ad[54]],qs[_0x40ad[62]](_0x4080x28[_0x40ad[58]][_0x40ad[62]]));_0x4080x1b[_0x40ad[61]]= (_0x4080x1b[_0x40ad[61]][_0x40ad[63]])?_0x4080x1b[_0x40ad[61]]:_0x4080x29[_0x40ad[54]];if(!_0x4080x28[_0x40ad[58]][_0x40ad[65]](_0x40ad[64])){_0x4080x1b[_0x40ad[35]]= qs[_0x40ad[35]](_0x4080x28[_0x40ad[58]][_0x40ad[35]]);_0x4080x1b[_0x40ad[34]]= qs[_0x40ad[34]](_0x4080x28[_0x40ad[58]][_0x40ad[34]])};_0x4080x1b[_0x40ad[66]]= qs[_0x40ad[67]](_0x4080x28[_0x40ad[58]][_0x40ad[67]]);_0x4080x1b[_0x40ad[68]]= qs[_0x40ad[59]](_[_0x40ad[69]](_0x4080x28[_0x40ad[58]],_0x4080x29[_0x40ad[59]]));if(_0x4080x28[_0x40ad[58]][_0x40ad[70]]){_0x4080x1b[_0x40ad[68]]= _[_0x40ad[73]](_0x4080x1b[_0x40ad[68]],{$or:_[_0x40ad[72]](_0x4080x1b[_0x40ad[61]],function(_0x4080x2a){var _0x4080x2b={};_0x4080x2b[_0x4080x2a]= {$like:_0x40ad[71]+ _0x4080x28[_0x40ad[58]][_0x40ad[70]]+ _0x40ad[71]};return _0x4080x2b})})};_0x4080x1b= _[_0x40ad[73]]({},_0x4080x1b,_0x4080x28[_0x40ad[74]]);return db[_0x40ad[56]][_0x40ad[76]](_0x4080x1b)[_0x40ad[45]](respondWithFilteredResult(_0x4080x15,_0x4080x1b,_0x40ad[53]))[_0x40ad[75]](handleError(_0x4080x15,null,_0x40ad[53]))};exports[_0x40ad[77]]= function(_0x4080x28,_0x4080x15){var _0x4080x1b={raw:true,where:{id:_0x4080x28[_0x40ad[79]][_0x40ad[78]]}},_0x4080x29={};_0x4080x29[_0x40ad[54]]= _[_0x40ad[57]](db[_0x40ad[56]][_0x40ad[55]]);_0x4080x29[_0x40ad[58]]= _[_0x40ad[57]](_0x4080x28[_0x40ad[58]]);_0x4080x29[_0x40ad[59]]= _[_0x40ad[60]](_0x4080x29[_0x40ad[54]],_0x4080x29[_0x40ad[58]]);_0x4080x1b[_0x40ad[61]]= _[_0x40ad[60]](_0x4080x29[_0x40ad[54]],qs[_0x40ad[62]](_0x4080x28[_0x40ad[58]][_0x40ad[62]]));_0x4080x1b[_0x40ad[61]]= (_0x4080x1b[_0x40ad[61]][_0x40ad[63]])?_0x4080x1b[_0x40ad[61]]:_0x4080x29[_0x40ad[54]];_0x4080x1b= _[_0x40ad[73]]({},_0x4080x1b,_0x4080x28[_0x40ad[74]]);return db[_0x40ad[56]][_0x40ad[80]](_0x4080x1b)[_0x40ad[45]](handleEntityNotFound(_0x4080x15,null,_0x40ad[77]))[_0x40ad[45]](respondWithResult(_0x4080x15,null,_0x40ad[77]))[_0x40ad[75]](handleError(_0x4080x15,null,_0x40ad[77]))};exports[_0x40ad[81]]= function(_0x4080x28,_0x4080x15){return db[_0x40ad[56]][_0x40ad[81]](_0x4080x28[_0x40ad[82]],{})[_0x40ad[45]](respondWithResult(_0x4080x15,201,_0x40ad[81]))[_0x40ad[75]](handleError(_0x4080x15,null,_0x40ad[81]))};exports[_0x40ad[46]]= function(_0x4080x28,_0x4080x15){if(_0x4080x28[_0x40ad[82]][_0x40ad[78]]){delete _0x4080x28[_0x40ad[82]][_0x40ad[78]]};return db[_0x40ad[56]][_0x40ad[80]]({where:{id:_0x4080x28[_0x40ad[79]][_0x40ad[78]]}})[_0x40ad[45]](handleEntityNotFound(_0x4080x15,null,_0x40ad[46]))[_0x40ad[45]](saveUpdates(_0x4080x28[_0x40ad[82]],null,_0x40ad[46]))[_0x40ad[45]](respondWithResult(_0x4080x15,null,_0x40ad[46]))[_0x40ad[75]](handleError(_0x4080x15,null,_0x40ad[46]))};exports[_0x40ad[48]]= function(_0x4080x28,_0x4080x15){return db[_0x40ad[56]][_0x40ad[80]]({where:{id:_0x4080x28[_0x40ad[79]][_0x40ad[78]]}})[_0x40ad[45]](handleEntityNotFound(_0x4080x15,null,_0x40ad[48]))[_0x40ad[45]](removeEntity(_0x4080x15,null,_0x40ad[48]))[_0x40ad[75]](handleError(_0x4080x15,null,_0x40ad[48]))}
\ No newline at end of file
+var _0xe4c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xe4c8[0];var jsonpatch=require(_0xe4c8[1]);var rp=require(_0xe4c8[2]);var moment=require(_0xe4c8[3]);var BPromise=require(_0xe4c8[4]);var util=require(_0xe4c8[5]);var path=require(_0xe4c8[6]);var sox=require(_0xe4c8[7]);var ejs=require(_0xe4c8[8]);var fs=require(_0xe4c8[9]);var _=require(_0xe4c8[10]);var squel=require(_0xe4c8[11]);var crypto=require(_0xe4c8[12]);var jsforce=require(_0xe4c8[13]);var toCsv=require(_0xe4c8[14]);var qs=require(_0xe4c8[15]);var logger=require(_0xe4c8[17])(_0xe4c8[16]);var utils=require(_0xe4c8[18]);var config=require(_0xe4c8[19]);var db=require(_0xe4c8[21])[_0xe4c8[20]];function respondWithStatusCode(_0x669fx15,_0x669fx16,_0x669fx17){_0x669fx16= _0x669fx16|| 204;return function(_0x669fx18){if(_0x669fx18){logger[_0xe4c8[24]](_0xe4c8[22],_0x669fx17,_0x669fx16,_0xe4c8[23]);logger[_0xe4c8[26]](_0xe4c8[25],_0x669fx17,_0x669fx16,_0xe4c8[23]);return _0x669fx15[_0xe4c8[27]](_0x669fx16)};return _0x669fx15[_0xe4c8[29]](304)[_0xe4c8[28]]()}}function respondWithResult(_0x669fx15,_0x669fx16,_0x669fx17){_0x669fx16= _0x669fx16|| 200;return function(_0x669fx18){if(_0x669fx18){logger[_0xe4c8[24]](_0xe4c8[22],_0x669fx17,_0x669fx16,_0xe4c8[30]);logger[_0xe4c8[26]](_0xe4c8[25],_0x669fx17,_0x669fx16,_0xe4c8[30],JSON[_0xe4c8[31]](_0x669fx18));return _0x669fx15[_0xe4c8[29]](_0x669fx16)[_0xe4c8[32]](_0x669fx18)};return _0x669fx15[_0xe4c8[29]](304)[_0xe4c8[28]]()}}function respondWithFilteredResult(_0x669fx15,_0x669fx1b,_0x669fx17){return function(_0x669fx18){if(_0x669fx18){var _0x669fx1c=_0x669fx18[_0xe4c8[33]],_0x669fx1d=_0x669fx1b[_0xe4c8[34]],_0x669fx1e=_0x669fx1b[_0xe4c8[34]]+ _0x669fx1b[_0xe4c8[35]],_0x669fx16;if(_0x669fx1e>= _0x669fx1c){_0x669fx1e= _0x669fx1c;_0x669fx16= 200}else {_0x669fx16= 206};_0x669fx15[_0xe4c8[29]](_0x669fx16);logger[_0xe4c8[24]](_0xe4c8[22],_0x669fx17,_0x669fx16,_0xe4c8[36]);logger[_0xe4c8[26]](_0xe4c8[25],_0x669fx17,_0x669fx16,_0xe4c8[30],JSON[_0xe4c8[31]](_0x669fx18));return _0x669fx15[_0xe4c8[40]](_0xe4c8[37],_0x669fx1d+ _0xe4c8[38]+ _0x669fx1e+ _0xe4c8[39]+ _0x669fx1c)[_0xe4c8[32]](_0x669fx18)};return null}}function patchUpdates(_0x669fx20){return function(_0x669fx18){try{jsonpatch[_0xe4c8[41]](_0x669fx18,_0x669fx20,true)}catch(err){return BPromise[_0xe4c8[42]](err)};return _0x669fx18[_0xe4c8[43]]()}}function saveUpdates(_0x669fx22,_0x669fx16,_0x669fx17){return function(_0x669fx18){if(_0x669fx18){return _0x669fx18[_0xe4c8[46]](_0x669fx22)[_0xe4c8[45]](function(_0x669fx23){logger[_0xe4c8[24]](_0xe4c8[22],_0x669fx17,_0x669fx16,_0xe4c8[44]);logger[_0xe4c8[26]](_0xe4c8[25],_0x669fx17,_0x669fx16,_0xe4c8[44],JSON[_0xe4c8[31]](_0x669fx18));return _0x669fx23})};return null}}function removeEntity(_0x669fx15,_0x669fx16,_0x669fx17){return function(_0x669fx18){if(_0x669fx18){return _0x669fx18[_0xe4c8[48]]()[_0xe4c8[45]](function(){logger[_0xe4c8[24]](_0xe4c8[22],_0x669fx17,_0x669fx16,_0xe4c8[47]);logger[_0xe4c8[26]](_0xe4c8[25],_0x669fx17,_0x669fx16,_0xe4c8[47],JSON[_0xe4c8[31]](_0x669fx18));_0x669fx15[_0xe4c8[29]](204)[_0xe4c8[28]]()})}}}function handleEntityNotFound(_0x669fx15,_0x669fx16,_0x669fx17){return function(_0x669fx18){if(!_0x669fx18){logger[_0xe4c8[50]](_0xe4c8[22],_0x669fx17,404,_0xe4c8[49]);_0x669fx15[_0xe4c8[29]](404)[_0xe4c8[28]]();return null};return _0x669fx18}}function handleError(_0x669fx15,_0x669fx16,_0x669fx17){_0x669fx16= _0x669fx16|| 500;return function(_0x669fx27){logger[_0xe4c8[50]](_0xe4c8[22],_0x669fx17,_0x669fx16,JSON[_0xe4c8[31]](_0x669fx27));delete _0x669fx27[_0xe4c8[51]];_0x669fx15[_0xe4c8[29]](_0x669fx16)[_0xe4c8[52]](_0x669fx27)}}exports[_0xe4c8[53]]= function(_0x669fx28,_0x669fx15){var _0x669fx1b={},_0x669fx29={};_0x669fx29[_0xe4c8[54]]= _[_0xe4c8[57]](db[_0xe4c8[56]][_0xe4c8[55]]);_0x669fx29[_0xe4c8[58]]= _[_0xe4c8[57]](_0x669fx28[_0xe4c8[58]]);_0x669fx29[_0xe4c8[59]]= _[_0xe4c8[60]](_0x669fx29[_0xe4c8[54]],_0x669fx29[_0xe4c8[58]]);_0x669fx1b[_0xe4c8[61]]= _[_0xe4c8[60]](_0x669fx29[_0xe4c8[54]],qs[_0xe4c8[62]](_0x669fx28[_0xe4c8[58]][_0xe4c8[62]]));_0x669fx1b[_0xe4c8[61]]= (_0x669fx1b[_0xe4c8[61]][_0xe4c8[63]])?_0x669fx1b[_0xe4c8[61]]:_0x669fx29[_0xe4c8[54]];if(!_0x669fx28[_0xe4c8[58]][_0xe4c8[65]](_0xe4c8[64])){_0x669fx1b[_0xe4c8[35]]= qs[_0xe4c8[35]](_0x669fx28[_0xe4c8[58]][_0xe4c8[35]]);_0x669fx1b[_0xe4c8[34]]= qs[_0xe4c8[34]](_0x669fx28[_0xe4c8[58]][_0xe4c8[34]])};_0x669fx1b[_0xe4c8[66]]= qs[_0xe4c8[67]](_0x669fx28[_0xe4c8[58]][_0xe4c8[67]]);_0x669fx1b[_0xe4c8[68]]= qs[_0xe4c8[59]](_[_0xe4c8[69]](_0x669fx28[_0xe4c8[58]],_0x669fx29[_0xe4c8[59]]));if(_0x669fx28[_0xe4c8[58]][_0xe4c8[70]]){_0x669fx1b[_0xe4c8[68]]= _[_0xe4c8[73]](_0x669fx1b[_0xe4c8[68]],{$or:_[_0xe4c8[72]](_0x669fx1b[_0xe4c8[61]],function(_0x669fx2a){var _0x669fx2b={};_0x669fx2b[_0x669fx2a]= {$like:_0xe4c8[71]+ _0x669fx28[_0xe4c8[58]][_0xe4c8[70]]+ _0xe4c8[71]};return _0x669fx2b})})};_0x669fx1b= _[_0xe4c8[73]]({},_0x669fx1b,_0x669fx28[_0xe4c8[74]]);return db[_0xe4c8[56]][_0xe4c8[76]](_0x669fx1b)[_0xe4c8[45]](respondWithFilteredResult(_0x669fx15,_0x669fx1b,_0xe4c8[53]))[_0xe4c8[75]](handleError(_0x669fx15,null,_0xe4c8[53]))};exports[_0xe4c8[77]]= function(_0x669fx28,_0x669fx15){var _0x669fx1b={raw:true,where:{id:_0x669fx28[_0xe4c8[79]][_0xe4c8[78]]}},_0x669fx29={};_0x669fx29[_0xe4c8[54]]= _[_0xe4c8[57]](db[_0xe4c8[56]][_0xe4c8[55]]);_0x669fx29[_0xe4c8[58]]= _[_0xe4c8[57]](_0x669fx28[_0xe4c8[58]]);_0x669fx29[_0xe4c8[59]]= _[_0xe4c8[60]](_0x669fx29[_0xe4c8[54]],_0x669fx29[_0xe4c8[58]]);_0x669fx1b[_0xe4c8[61]]= _[_0xe4c8[60]](_0x669fx29[_0xe4c8[54]],qs[_0xe4c8[62]](_0x669fx28[_0xe4c8[58]][_0xe4c8[62]]));_0x669fx1b[_0xe4c8[61]]= (_0x669fx1b[_0xe4c8[61]][_0xe4c8[63]])?_0x669fx1b[_0xe4c8[61]]:_0x669fx29[_0xe4c8[54]];_0x669fx1b= _[_0xe4c8[73]]({},_0x669fx1b,_0x669fx28[_0xe4c8[74]]);return db[_0xe4c8[56]][_0xe4c8[80]](_0x669fx1b)[_0xe4c8[45]](handleEntityNotFound(_0x669fx15,null,_0xe4c8[77]))[_0xe4c8[45]](respondWithResult(_0x669fx15,null,_0xe4c8[77]))[_0xe4c8[75]](handleError(_0x669fx15,null,_0xe4c8[77]))};exports[_0xe4c8[81]]= function(_0x669fx28,_0x669fx15){return db[_0xe4c8[56]][_0xe4c8[81]](_0x669fx28[_0xe4c8[82]],{})[_0xe4c8[45]](respondWithResult(_0x669fx15,201,_0xe4c8[81]))[_0xe4c8[75]](handleError(_0x669fx15,null,_0xe4c8[81]))};exports[_0xe4c8[46]]= function(_0x669fx28,_0x669fx15){if(_0x669fx28[_0xe4c8[82]][_0xe4c8[78]]){delete _0x669fx28[_0xe4c8[82]][_0xe4c8[78]]};return db[_0xe4c8[56]][_0xe4c8[80]]({where:{id:_0x669fx28[_0xe4c8[79]][_0xe4c8[78]]}})[_0xe4c8[45]](handleEntityNotFound(_0x669fx15,null,_0xe4c8[46]))[_0xe4c8[45]](saveUpdates(_0x669fx28[_0xe4c8[82]],null,_0xe4c8[46]))[_0xe4c8[45]](respondWithResult(_0x669fx15,null,_0xe4c8[46]))[_0xe4c8[75]](handleError(_0x669fx15,null,_0xe4c8[46]))};exports[_0xe4c8[48]]= function(_0x669fx28,_0x669fx15){return db[_0xe4c8[56]][_0xe4c8[80]]({where:{id:_0x669fx28[_0xe4c8[79]][_0xe4c8[78]]}})[_0xe4c8[45]](handleEntityNotFound(_0x669fx15,null,_0xe4c8[48]))[_0xe4c8[45]](removeEntity(_0x669fx15,null,_0xe4c8[48]))[_0xe4c8[75]](handleError(_0x669fx15,null,_0xe4c8[48]))}
\ No newline at end of file
index a1625a5..7d49851 100644 (file)
@@ -1 +1 @@
-var _0xb153=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x74\x6F\x6F\x6C\x73\x5F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xb153[0];var _=require(_0xb153[1]);var util=require(_0xb153[2]);var logger=require(_0xb153[4])(_0xb153[3]);var attributes=require(_0xb153[5]);module[_0xb153[6]]= function(_0xe9f9x5,_0xe9f9x6){return _0xe9f9x5[_0xb153[9]](_0xb153[7],attributes,{tableName:_0xb153[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xf2a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x74\x6F\x6F\x6C\x73\x5F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xf2a0[0];var _=require(_0xf2a0[1]);var util=require(_0xf2a0[2]);var logger=require(_0xf2a0[4])(_0xf2a0[3]);var attributes=require(_0xf2a0[5]);module[_0xf2a0[6]]= function(_0x6501x5,_0x6501x6){return _0x6501x5[_0xf2a0[9]](_0xf2a0[7],attributes,{tableName:_0xf2a0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 87508ca..0289696 100644 (file)
@@ -1 +1 @@
-var _0x505e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x505e[0];var _=require(_0x505e[1]);var util=require(_0x505e[2]);var moment=require(_0x505e[3]);var BPromise=require(_0x505e[4]);var db=require(_0x505e[6])[_0x505e[5]];var utils=require(_0x505e[7]);var logger=require(_0x505e[9])(_0x505e[8]);var jayson=require(_0x505e[10]);var client=jayson[_0x505e[12]][_0x505e[11]]({port:9002});function respondWithRpcPromise(_0xf56bxb,_0xf56bxc,_0xf56bxd){return  new BPromise(function(_0xf56bxe,_0xf56bxf){return client[_0x505e[25]](_0xf56bxb,_0xf56bxd)[_0x505e[24]](function(_0xf56bx11){logger[_0x505e[17]](_0x505e[13],_0xf56bxc,_0x505e[16]);logger[_0x505e[20]](_0x505e[18],_0xf56bxc,_0x505e[16],JSON[_0x505e[19]](_0xf56bx11));if(_0xf56bx11[_0x505e[14]]){if(_0xf56bx11[_0x505e[14]][_0x505e[21]]=== 500){logger[_0x505e[14]](_0x505e[13],_0xf56bxc,_0xf56bx11[_0x505e[14]][_0x505e[22]]);return _0xf56bxf(_0xf56bx11[_0x505e[14]][_0x505e[22]])};logger[_0x505e[14]](_0x505e[13],_0xf56bxc,_0xf56bx11[_0x505e[14]][_0x505e[22]]);return _0xf56bxe(_0xf56bx11[_0x505e[14]][_0x505e[22]])}else {logger[_0x505e[17]](_0x505e[13],_0xf56bxc,_0x505e[16]);_0xf56bxe(_0xf56bx11[_0x505e[23]][_0x505e[22]])}})[_0x505e[15]](function(_0xf56bx10){logger[_0x505e[14]](_0x505e[13],_0xf56bxc,_0xf56bx10);_0xf56bxf(_0xf56bx10)})})}
\ No newline at end of file
+var _0x8f2e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8f2e[0];var _=require(_0x8f2e[1]);var util=require(_0x8f2e[2]);var moment=require(_0x8f2e[3]);var BPromise=require(_0x8f2e[4]);var db=require(_0x8f2e[6])[_0x8f2e[5]];var utils=require(_0x8f2e[7]);var logger=require(_0x8f2e[9])(_0x8f2e[8]);var jayson=require(_0x8f2e[10]);var client=jayson[_0x8f2e[12]][_0x8f2e[11]]({port:9002});function respondWithRpcPromise(_0x58d6xb,_0x58d6xc,_0x58d6xd){return  new BPromise(function(_0x58d6xe,_0x58d6xf){return client[_0x8f2e[25]](_0x58d6xb,_0x58d6xd)[_0x8f2e[24]](function(_0x58d6x11){logger[_0x8f2e[17]](_0x8f2e[13],_0x58d6xc,_0x8f2e[16]);logger[_0x8f2e[20]](_0x8f2e[18],_0x58d6xc,_0x8f2e[16],JSON[_0x8f2e[19]](_0x58d6x11));if(_0x58d6x11[_0x8f2e[14]]){if(_0x58d6x11[_0x8f2e[14]][_0x8f2e[21]]=== 500){logger[_0x8f2e[14]](_0x8f2e[13],_0x58d6xc,_0x58d6x11[_0x8f2e[14]][_0x8f2e[22]]);return _0x58d6xf(_0x58d6x11[_0x8f2e[14]][_0x8f2e[22]])};logger[_0x8f2e[14]](_0x8f2e[13],_0x58d6xc,_0x58d6x11[_0x8f2e[14]][_0x8f2e[22]]);return _0x58d6xe(_0x58d6x11[_0x8f2e[14]][_0x8f2e[22]])}else {logger[_0x8f2e[17]](_0x8f2e[13],_0x58d6xc,_0x8f2e[16]);_0x58d6xe(_0x58d6x11[_0x8f2e[23]][_0x8f2e[22]])}})[_0x8f2e[15]](function(_0x58d6x10){logger[_0x8f2e[14]](_0x8f2e[13],_0x58d6xc,_0x58d6x10);_0x58d6xf(_0x58d6x10)})})}
\ No newline at end of file
index 7035c72..1bcb90e 100644 (file)
@@ -1 +1 @@
-var _0xc5d1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc5d1[0];var multer=require(_0xc5d1[1]);var util=require(_0xc5d1[2]);var path=require(_0xc5d1[3]);var express=require(_0xc5d1[4]);var router=express.Router();var auth=require(_0xc5d1[5]);var config=require(_0xc5d1[6]);var controller=require(_0xc5d1[7]);router[_0xc5d1[11]](_0xc5d1[8],auth[_0xc5d1[9]](),controller[_0xc5d1[10]]);router[_0xc5d1[11]](_0xc5d1[12],auth[_0xc5d1[9]](),controller[_0xc5d1[13]]);router[_0xc5d1[15]](_0xc5d1[8],auth[_0xc5d1[9]](),controller[_0xc5d1[14]]);router[_0xc5d1[17]](_0xc5d1[12],auth[_0xc5d1[9]](),controller[_0xc5d1[16]]);router[_0xc5d1[19]](_0xc5d1[12],auth[_0xc5d1[9]](),controller[_0xc5d1[18]]);module[_0xc5d1[20]]= router
\ No newline at end of file
+var _0x1c30=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1c30[0];var multer=require(_0x1c30[1]);var util=require(_0x1c30[2]);var path=require(_0x1c30[3]);var express=require(_0x1c30[4]);var router=express.Router();var auth=require(_0x1c30[5]);var config=require(_0x1c30[6]);var controller=require(_0x1c30[7]);router[_0x1c30[11]](_0x1c30[8],auth[_0x1c30[9]](),controller[_0x1c30[10]]);router[_0x1c30[11]](_0x1c30[12],auth[_0x1c30[9]](),controller[_0x1c30[13]]);router[_0x1c30[15]](_0x1c30[8],auth[_0x1c30[9]](),controller[_0x1c30[14]]);router[_0x1c30[17]](_0x1c30[12],auth[_0x1c30[9]](),controller[_0x1c30[16]]);router[_0x1c30[19]](_0x1c30[12],auth[_0x1c30[9]](),controller[_0x1c30[18]]);module[_0x1c30[20]]= router
\ No newline at end of file
index 0d5f4f0..44e62f0 100644 (file)
@@ -1 +1 @@
-var _0x9710=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x44\x41\x54\x45","\x31\x39\x37\x30\x2D\x30\x31\x2D\x30\x31\x20\x30\x30\x3A\x30\x30\x3A\x30\x31","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52"];_0x9710[0];var Sequelize=require(_0x9710[1]);module[_0x9710[2]]= {calldate:{type:Sequelize[_0x9710[3]],allowNull:false,defaultValue:_0x9710[4]},clid:{type:Sequelize[_0x9710[5]]},src:{type:Sequelize[_0x9710[5]]},dst:{type:Sequelize[_0x9710[5]]},dcontext:{type:Sequelize[_0x9710[5]]},channel:{type:Sequelize[_0x9710[5]]},dstchannel:{type:Sequelize[_0x9710[5]]},lastapp:{type:Sequelize[_0x9710[5]]},lastdata:{type:Sequelize[_0x9710[5]]},duration:{type:Sequelize[_0x9710[6]],allowNull:false,defaultValue:0},billsec:{type:Sequelize[_0x9710[6]],allowNull:false,defaultValue:0},disposition:{type:Sequelize[_0x9710[5]]},amaflags:{type:Sequelize[_0x9710[6]],allowNull:false,defaultValue:0},accountcode:{type:Sequelize[_0x9710[5]]},userfield:{type:Sequelize[_0x9710[5]]},uniqueid:{type:Sequelize[_0x9710[5]]},linkedid:{type:Sequelize[_0x9710[5]]},sequence:{type:Sequelize[_0x9710[5]]},peeraccount:{type:Sequelize[_0x9710[5]]},type:{type:Sequelize[_0x9710[5]]},tag:{type:Sequelize[_0x9710[5]]}}
\ No newline at end of file
+var _0x6ec9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x44\x41\x54\x45","\x31\x39\x37\x30\x2D\x30\x31\x2D\x30\x31\x20\x30\x30\x3A\x30\x30\x3A\x30\x31","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52"];_0x6ec9[0];var Sequelize=require(_0x6ec9[1]);module[_0x6ec9[2]]= {calldate:{type:Sequelize[_0x6ec9[3]],allowNull:false,defaultValue:_0x6ec9[4]},clid:{type:Sequelize[_0x6ec9[5]]},src:{type:Sequelize[_0x6ec9[5]]},dst:{type:Sequelize[_0x6ec9[5]]},dcontext:{type:Sequelize[_0x6ec9[5]]},channel:{type:Sequelize[_0x6ec9[5]]},dstchannel:{type:Sequelize[_0x6ec9[5]]},lastapp:{type:Sequelize[_0x6ec9[5]]},lastdata:{type:Sequelize[_0x6ec9[5]]},duration:{type:Sequelize[_0x6ec9[6]],allowNull:false,defaultValue:0},billsec:{type:Sequelize[_0x6ec9[6]],allowNull:false,defaultValue:0},disposition:{type:Sequelize[_0x6ec9[5]]},amaflags:{type:Sequelize[_0x6ec9[6]],allowNull:false,defaultValue:0},accountcode:{type:Sequelize[_0x6ec9[5]]},userfield:{type:Sequelize[_0x6ec9[5]]},uniqueid:{type:Sequelize[_0x6ec9[5]]},linkedid:{type:Sequelize[_0x6ec9[5]]},sequence:{type:Sequelize[_0x6ec9[5]]},peeraccount:{type:Sequelize[_0x6ec9[5]]},type:{type:Sequelize[_0x6ec9[5]]},tag:{type:Sequelize[_0x6ec9[5]]}}
\ No newline at end of file
index e0bbd30..27d66f6 100644 (file)
@@ -1 +1 @@
-var _0xad8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x64\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xad8f[0];var jsonpatch=require(_0xad8f[1]);var rp=require(_0xad8f[2]);var moment=require(_0xad8f[3]);var BPromise=require(_0xad8f[4]);var util=require(_0xad8f[5]);var path=require(_0xad8f[6]);var sox=require(_0xad8f[7]);var ejs=require(_0xad8f[8]);var fs=require(_0xad8f[9]);var _=require(_0xad8f[10]);var squel=require(_0xad8f[11]);var crypto=require(_0xad8f[12]);var jsforce=require(_0xad8f[13]);var toCsv=require(_0xad8f[14]);var qs=require(_0xad8f[15]);var logger=require(_0xad8f[17])(_0xad8f[16]);var utils=require(_0xad8f[18]);var config=require(_0xad8f[19]);var db=require(_0xad8f[21])[_0xad8f[20]];function respondWithStatusCode(_0xe8a6x15,_0xe8a6x16,_0xe8a6x17){_0xe8a6x16= _0xe8a6x16|| 204;return function(_0xe8a6x18){if(_0xe8a6x18){logger[_0xad8f[24]](_0xad8f[22],_0xe8a6x17,_0xe8a6x16,_0xad8f[23]);logger[_0xad8f[26]](_0xad8f[25],_0xe8a6x17,_0xe8a6x16,_0xad8f[23]);return _0xe8a6x15[_0xad8f[27]](_0xe8a6x16)};return _0xe8a6x15[_0xad8f[29]](304)[_0xad8f[28]]()}}function respondWithResult(_0xe8a6x15,_0xe8a6x16,_0xe8a6x17){_0xe8a6x16= _0xe8a6x16|| 200;return function(_0xe8a6x18){if(_0xe8a6x18){logger[_0xad8f[24]](_0xad8f[22],_0xe8a6x17,_0xe8a6x16,_0xad8f[30]);logger[_0xad8f[26]](_0xad8f[25],_0xe8a6x17,_0xe8a6x16,_0xad8f[30],JSON[_0xad8f[31]](_0xe8a6x18));return _0xe8a6x15[_0xad8f[29]](_0xe8a6x16)[_0xad8f[32]](_0xe8a6x18)};return _0xe8a6x15[_0xad8f[29]](304)[_0xad8f[28]]()}}function respondWithFilteredResult(_0xe8a6x15,_0xe8a6x1b,_0xe8a6x17){return function(_0xe8a6x18){if(_0xe8a6x18){var _0xe8a6x1c=_0xe8a6x18[_0xad8f[33]],_0xe8a6x1d=_0xe8a6x1b[_0xad8f[34]],_0xe8a6x1e=_0xe8a6x1b[_0xad8f[34]]+ _0xe8a6x1b[_0xad8f[35]],_0xe8a6x16;if(_0xe8a6x1e>= _0xe8a6x1c){_0xe8a6x1e= _0xe8a6x1c;_0xe8a6x16= 200}else {_0xe8a6x16= 206};_0xe8a6x15[_0xad8f[29]](_0xe8a6x16);logger[_0xad8f[24]](_0xad8f[22],_0xe8a6x17,_0xe8a6x16,_0xad8f[36]);logger[_0xad8f[26]](_0xad8f[25],_0xe8a6x17,_0xe8a6x16,_0xad8f[30],JSON[_0xad8f[31]](_0xe8a6x18));return _0xe8a6x15[_0xad8f[40]](_0xad8f[37],_0xe8a6x1d+ _0xad8f[38]+ _0xe8a6x1e+ _0xad8f[39]+ _0xe8a6x1c)[_0xad8f[32]](_0xe8a6x18)};return null}}function patchUpdates(_0xe8a6x20){return function(_0xe8a6x18){try{jsonpatch[_0xad8f[41]](_0xe8a6x18,_0xe8a6x20,true)}catch(err){return BPromise[_0xad8f[42]](err)};return _0xe8a6x18[_0xad8f[43]]()}}function saveUpdates(_0xe8a6x22,_0xe8a6x16,_0xe8a6x17){return function(_0xe8a6x18){if(_0xe8a6x18){return _0xe8a6x18[_0xad8f[46]](_0xe8a6x22)[_0xad8f[45]](function(_0xe8a6x23){logger[_0xad8f[24]](_0xad8f[22],_0xe8a6x17,_0xe8a6x16,_0xad8f[44]);logger[_0xad8f[26]](_0xad8f[25],_0xe8a6x17,_0xe8a6x16,_0xad8f[44],JSON[_0xad8f[31]](_0xe8a6x18));return _0xe8a6x23})};return null}}function removeEntity(_0xe8a6x15,_0xe8a6x16,_0xe8a6x17){return function(_0xe8a6x18){if(_0xe8a6x18){return _0xe8a6x18[_0xad8f[48]]()[_0xad8f[45]](function(){logger[_0xad8f[24]](_0xad8f[22],_0xe8a6x17,_0xe8a6x16,_0xad8f[47]);logger[_0xad8f[26]](_0xad8f[25],_0xe8a6x17,_0xe8a6x16,_0xad8f[47],JSON[_0xad8f[31]](_0xe8a6x18));_0xe8a6x15[_0xad8f[29]](204)[_0xad8f[28]]()})}}}function handleEntityNotFound(_0xe8a6x15,_0xe8a6x16,_0xe8a6x17){return function(_0xe8a6x18){if(!_0xe8a6x18){logger[_0xad8f[50]](_0xad8f[22],_0xe8a6x17,404,_0xad8f[49]);_0xe8a6x15[_0xad8f[29]](404)[_0xad8f[28]]();return null};return _0xe8a6x18}}function handleError(_0xe8a6x15,_0xe8a6x16,_0xe8a6x17){_0xe8a6x16= _0xe8a6x16|| 500;return function(_0xe8a6x27){logger[_0xad8f[50]](_0xad8f[22],_0xe8a6x17,_0xe8a6x16,JSON[_0xad8f[31]](_0xe8a6x27));delete _0xe8a6x27[_0xad8f[51]];_0xe8a6x15[_0xad8f[29]](_0xe8a6x16)[_0xad8f[52]](_0xe8a6x27)}}exports[_0xad8f[53]]= function(_0xe8a6x28,_0xe8a6x15){var _0xe8a6x1b={},_0xe8a6x29={};_0xe8a6x29[_0xad8f[54]]= _[_0xad8f[57]](db[_0xad8f[56]][_0xad8f[55]]);_0xe8a6x29[_0xad8f[58]]= _[_0xad8f[57]](_0xe8a6x28[_0xad8f[58]]);_0xe8a6x29[_0xad8f[59]]= _[_0xad8f[60]](_0xe8a6x29[_0xad8f[54]],_0xe8a6x29[_0xad8f[58]]);_0xe8a6x1b[_0xad8f[61]]= _[_0xad8f[60]](_0xe8a6x29[_0xad8f[54]],qs[_0xad8f[62]](_0xe8a6x28[_0xad8f[58]][_0xad8f[62]]));_0xe8a6x1b[_0xad8f[61]]= (_0xe8a6x1b[_0xad8f[61]][_0xad8f[63]])?_0xe8a6x1b[_0xad8f[61]]:_0xe8a6x29[_0xad8f[54]];if(!_0xe8a6x28[_0xad8f[58]][_0xad8f[65]](_0xad8f[64])){_0xe8a6x1b[_0xad8f[35]]= qs[_0xad8f[35]](_0xe8a6x28[_0xad8f[58]][_0xad8f[35]]);_0xe8a6x1b[_0xad8f[34]]= qs[_0xad8f[34]](_0xe8a6x28[_0xad8f[58]][_0xad8f[34]])};_0xe8a6x1b[_0xad8f[66]]= qs[_0xad8f[67]](_0xe8a6x28[_0xad8f[58]][_0xad8f[67]]);_0xe8a6x1b[_0xad8f[68]]= qs[_0xad8f[59]](_[_0xad8f[69]](_0xe8a6x28[_0xad8f[58]],_0xe8a6x29[_0xad8f[59]]));if(_0xe8a6x28[_0xad8f[58]][_0xad8f[70]]){_0xe8a6x1b[_0xad8f[68]]= _[_0xad8f[73]](_0xe8a6x1b[_0xad8f[68]],{$or:_[_0xad8f[72]](_0xe8a6x1b[_0xad8f[61]],function(_0xe8a6x2a){var _0xe8a6x2b={};_0xe8a6x2b[_0xe8a6x2a]= {$like:_0xad8f[71]+ _0xe8a6x28[_0xad8f[58]][_0xad8f[70]]+ _0xad8f[71]};return _0xe8a6x2b})})};_0xe8a6x1b= _[_0xad8f[73]]({},_0xe8a6x1b,_0xe8a6x28[_0xad8f[74]]);return db[_0xad8f[56]][_0xad8f[76]](_0xe8a6x1b)[_0xad8f[45]](respondWithFilteredResult(_0xe8a6x15,_0xe8a6x1b,_0xad8f[53]))[_0xad8f[75]](handleError(_0xe8a6x15,null,_0xad8f[53]))};exports[_0xad8f[77]]= function(_0xe8a6x28,_0xe8a6x15){var _0xe8a6x1b={raw:true,where:{id:_0xe8a6x28[_0xad8f[79]][_0xad8f[78]]}},_0xe8a6x29={};_0xe8a6x29[_0xad8f[54]]= _[_0xad8f[57]](db[_0xad8f[56]][_0xad8f[55]]);_0xe8a6x29[_0xad8f[58]]= _[_0xad8f[57]](_0xe8a6x28[_0xad8f[58]]);_0xe8a6x29[_0xad8f[59]]= _[_0xad8f[60]](_0xe8a6x29[_0xad8f[54]],_0xe8a6x29[_0xad8f[58]]);_0xe8a6x1b[_0xad8f[61]]= _[_0xad8f[60]](_0xe8a6x29[_0xad8f[54]],qs[_0xad8f[62]](_0xe8a6x28[_0xad8f[58]][_0xad8f[62]]));_0xe8a6x1b[_0xad8f[61]]= (_0xe8a6x1b[_0xad8f[61]][_0xad8f[63]])?_0xe8a6x1b[_0xad8f[61]]:_0xe8a6x29[_0xad8f[54]];_0xe8a6x1b= _[_0xad8f[73]]({},_0xe8a6x1b,_0xe8a6x28[_0xad8f[74]]);return db[_0xad8f[56]][_0xad8f[80]](_0xe8a6x1b)[_0xad8f[45]](handleEntityNotFound(_0xe8a6x15,null,_0xad8f[77]))[_0xad8f[45]](respondWithResult(_0xe8a6x15,null,_0xad8f[77]))[_0xad8f[75]](handleError(_0xe8a6x15,null,_0xad8f[77]))};exports[_0xad8f[81]]= function(_0xe8a6x28,_0xe8a6x15){return db[_0xad8f[56]][_0xad8f[81]](_0xe8a6x28[_0xad8f[82]],{})[_0xad8f[45]](respondWithResult(_0xe8a6x15,201,_0xad8f[81]))[_0xad8f[75]](handleError(_0xe8a6x15,null,_0xad8f[81]))};exports[_0xad8f[46]]= function(_0xe8a6x28,_0xe8a6x15){if(_0xe8a6x28[_0xad8f[82]][_0xad8f[78]]){delete _0xe8a6x28[_0xad8f[82]][_0xad8f[78]]};return db[_0xad8f[56]][_0xad8f[80]]({where:{id:_0xe8a6x28[_0xad8f[79]][_0xad8f[78]]}})[_0xad8f[45]](handleEntityNotFound(_0xe8a6x15,null,_0xad8f[46]))[_0xad8f[45]](saveUpdates(_0xe8a6x28[_0xad8f[82]],null,_0xad8f[46]))[_0xad8f[45]](respondWithResult(_0xe8a6x15,null,_0xad8f[46]))[_0xad8f[75]](handleError(_0xe8a6x15,null,_0xad8f[46]))};exports[_0xad8f[48]]= function(_0xe8a6x28,_0xe8a6x15){return db[_0xad8f[56]][_0xad8f[80]]({where:{id:_0xe8a6x28[_0xad8f[79]][_0xad8f[78]]}})[_0xad8f[45]](handleEntityNotFound(_0xe8a6x15,null,_0xad8f[48]))[_0xad8f[45]](removeEntity(_0xe8a6x15,null,_0xad8f[48]))[_0xad8f[75]](handleError(_0xe8a6x15,null,_0xad8f[48]))}
\ No newline at end of file
+var _0xd0f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x64\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd0f1[0];var jsonpatch=require(_0xd0f1[1]);var rp=require(_0xd0f1[2]);var moment=require(_0xd0f1[3]);var BPromise=require(_0xd0f1[4]);var util=require(_0xd0f1[5]);var path=require(_0xd0f1[6]);var sox=require(_0xd0f1[7]);var ejs=require(_0xd0f1[8]);var fs=require(_0xd0f1[9]);var _=require(_0xd0f1[10]);var squel=require(_0xd0f1[11]);var crypto=require(_0xd0f1[12]);var jsforce=require(_0xd0f1[13]);var toCsv=require(_0xd0f1[14]);var qs=require(_0xd0f1[15]);var logger=require(_0xd0f1[17])(_0xd0f1[16]);var utils=require(_0xd0f1[18]);var config=require(_0xd0f1[19]);var db=require(_0xd0f1[21])[_0xd0f1[20]];function respondWithStatusCode(_0xca2ax15,_0xca2ax16,_0xca2ax17){_0xca2ax16= _0xca2ax16|| 204;return function(_0xca2ax18){if(_0xca2ax18){logger[_0xd0f1[24]](_0xd0f1[22],_0xca2ax17,_0xca2ax16,_0xd0f1[23]);logger[_0xd0f1[26]](_0xd0f1[25],_0xca2ax17,_0xca2ax16,_0xd0f1[23]);return _0xca2ax15[_0xd0f1[27]](_0xca2ax16)};return _0xca2ax15[_0xd0f1[29]](304)[_0xd0f1[28]]()}}function respondWithResult(_0xca2ax15,_0xca2ax16,_0xca2ax17){_0xca2ax16= _0xca2ax16|| 200;return function(_0xca2ax18){if(_0xca2ax18){logger[_0xd0f1[24]](_0xd0f1[22],_0xca2ax17,_0xca2ax16,_0xd0f1[30]);logger[_0xd0f1[26]](_0xd0f1[25],_0xca2ax17,_0xca2ax16,_0xd0f1[30],JSON[_0xd0f1[31]](_0xca2ax18));return _0xca2ax15[_0xd0f1[29]](_0xca2ax16)[_0xd0f1[32]](_0xca2ax18)};return _0xca2ax15[_0xd0f1[29]](304)[_0xd0f1[28]]()}}function respondWithFilteredResult(_0xca2ax15,_0xca2ax1b,_0xca2ax17){return function(_0xca2ax18){if(_0xca2ax18){var _0xca2ax1c=_0xca2ax18[_0xd0f1[33]],_0xca2ax1d=_0xca2ax1b[_0xd0f1[34]],_0xca2ax1e=_0xca2ax1b[_0xd0f1[34]]+ _0xca2ax1b[_0xd0f1[35]],_0xca2ax16;if(_0xca2ax1e>= _0xca2ax1c){_0xca2ax1e= _0xca2ax1c;_0xca2ax16= 200}else {_0xca2ax16= 206};_0xca2ax15[_0xd0f1[29]](_0xca2ax16);logger[_0xd0f1[24]](_0xd0f1[22],_0xca2ax17,_0xca2ax16,_0xd0f1[36]);logger[_0xd0f1[26]](_0xd0f1[25],_0xca2ax17,_0xca2ax16,_0xd0f1[30],JSON[_0xd0f1[31]](_0xca2ax18));return _0xca2ax15[_0xd0f1[40]](_0xd0f1[37],_0xca2ax1d+ _0xd0f1[38]+ _0xca2ax1e+ _0xd0f1[39]+ _0xca2ax1c)[_0xd0f1[32]](_0xca2ax18)};return null}}function patchUpdates(_0xca2ax20){return function(_0xca2ax18){try{jsonpatch[_0xd0f1[41]](_0xca2ax18,_0xca2ax20,true)}catch(err){return BPromise[_0xd0f1[42]](err)};return _0xca2ax18[_0xd0f1[43]]()}}function saveUpdates(_0xca2ax22,_0xca2ax16,_0xca2ax17){return function(_0xca2ax18){if(_0xca2ax18){return _0xca2ax18[_0xd0f1[46]](_0xca2ax22)[_0xd0f1[45]](function(_0xca2ax23){logger[_0xd0f1[24]](_0xd0f1[22],_0xca2ax17,_0xca2ax16,_0xd0f1[44]);logger[_0xd0f1[26]](_0xd0f1[25],_0xca2ax17,_0xca2ax16,_0xd0f1[44],JSON[_0xd0f1[31]](_0xca2ax18));return _0xca2ax23})};return null}}function removeEntity(_0xca2ax15,_0xca2ax16,_0xca2ax17){return function(_0xca2ax18){if(_0xca2ax18){return _0xca2ax18[_0xd0f1[48]]()[_0xd0f1[45]](function(){logger[_0xd0f1[24]](_0xd0f1[22],_0xca2ax17,_0xca2ax16,_0xd0f1[47]);logger[_0xd0f1[26]](_0xd0f1[25],_0xca2ax17,_0xca2ax16,_0xd0f1[47],JSON[_0xd0f1[31]](_0xca2ax18));_0xca2ax15[_0xd0f1[29]](204)[_0xd0f1[28]]()})}}}function handleEntityNotFound(_0xca2ax15,_0xca2ax16,_0xca2ax17){return function(_0xca2ax18){if(!_0xca2ax18){logger[_0xd0f1[50]](_0xd0f1[22],_0xca2ax17,404,_0xd0f1[49]);_0xca2ax15[_0xd0f1[29]](404)[_0xd0f1[28]]();return null};return _0xca2ax18}}function handleError(_0xca2ax15,_0xca2ax16,_0xca2ax17){_0xca2ax16= _0xca2ax16|| 500;return function(_0xca2ax27){logger[_0xd0f1[50]](_0xd0f1[22],_0xca2ax17,_0xca2ax16,JSON[_0xd0f1[31]](_0xca2ax27));delete _0xca2ax27[_0xd0f1[51]];_0xca2ax15[_0xd0f1[29]](_0xca2ax16)[_0xd0f1[52]](_0xca2ax27)}}exports[_0xd0f1[53]]= function(_0xca2ax28,_0xca2ax15){var _0xca2ax1b={},_0xca2ax29={};_0xca2ax29[_0xd0f1[54]]= _[_0xd0f1[57]](db[_0xd0f1[56]][_0xd0f1[55]]);_0xca2ax29[_0xd0f1[58]]= _[_0xd0f1[57]](_0xca2ax28[_0xd0f1[58]]);_0xca2ax29[_0xd0f1[59]]= _[_0xd0f1[60]](_0xca2ax29[_0xd0f1[54]],_0xca2ax29[_0xd0f1[58]]);_0xca2ax1b[_0xd0f1[61]]= _[_0xd0f1[60]](_0xca2ax29[_0xd0f1[54]],qs[_0xd0f1[62]](_0xca2ax28[_0xd0f1[58]][_0xd0f1[62]]));_0xca2ax1b[_0xd0f1[61]]= (_0xca2ax1b[_0xd0f1[61]][_0xd0f1[63]])?_0xca2ax1b[_0xd0f1[61]]:_0xca2ax29[_0xd0f1[54]];if(!_0xca2ax28[_0xd0f1[58]][_0xd0f1[65]](_0xd0f1[64])){_0xca2ax1b[_0xd0f1[35]]= qs[_0xd0f1[35]](_0xca2ax28[_0xd0f1[58]][_0xd0f1[35]]);_0xca2ax1b[_0xd0f1[34]]= qs[_0xd0f1[34]](_0xca2ax28[_0xd0f1[58]][_0xd0f1[34]])};_0xca2ax1b[_0xd0f1[66]]= qs[_0xd0f1[67]](_0xca2ax28[_0xd0f1[58]][_0xd0f1[67]]);_0xca2ax1b[_0xd0f1[68]]= qs[_0xd0f1[59]](_[_0xd0f1[69]](_0xca2ax28[_0xd0f1[58]],_0xca2ax29[_0xd0f1[59]]));if(_0xca2ax28[_0xd0f1[58]][_0xd0f1[70]]){_0xca2ax1b[_0xd0f1[68]]= _[_0xd0f1[73]](_0xca2ax1b[_0xd0f1[68]],{$or:_[_0xd0f1[72]](_0xca2ax1b[_0xd0f1[61]],function(_0xca2ax2a){var _0xca2ax2b={};_0xca2ax2b[_0xca2ax2a]= {$like:_0xd0f1[71]+ _0xca2ax28[_0xd0f1[58]][_0xd0f1[70]]+ _0xd0f1[71]};return _0xca2ax2b})})};_0xca2ax1b= _[_0xd0f1[73]]({},_0xca2ax1b,_0xca2ax28[_0xd0f1[74]]);return db[_0xd0f1[56]][_0xd0f1[76]](_0xca2ax1b)[_0xd0f1[45]](respondWithFilteredResult(_0xca2ax15,_0xca2ax1b,_0xd0f1[53]))[_0xd0f1[75]](handleError(_0xca2ax15,null,_0xd0f1[53]))};exports[_0xd0f1[77]]= function(_0xca2ax28,_0xca2ax15){var _0xca2ax1b={raw:true,where:{id:_0xca2ax28[_0xd0f1[79]][_0xd0f1[78]]}},_0xca2ax29={};_0xca2ax29[_0xd0f1[54]]= _[_0xd0f1[57]](db[_0xd0f1[56]][_0xd0f1[55]]);_0xca2ax29[_0xd0f1[58]]= _[_0xd0f1[57]](_0xca2ax28[_0xd0f1[58]]);_0xca2ax29[_0xd0f1[59]]= _[_0xd0f1[60]](_0xca2ax29[_0xd0f1[54]],_0xca2ax29[_0xd0f1[58]]);_0xca2ax1b[_0xd0f1[61]]= _[_0xd0f1[60]](_0xca2ax29[_0xd0f1[54]],qs[_0xd0f1[62]](_0xca2ax28[_0xd0f1[58]][_0xd0f1[62]]));_0xca2ax1b[_0xd0f1[61]]= (_0xca2ax1b[_0xd0f1[61]][_0xd0f1[63]])?_0xca2ax1b[_0xd0f1[61]]:_0xca2ax29[_0xd0f1[54]];_0xca2ax1b= _[_0xd0f1[73]]({},_0xca2ax1b,_0xca2ax28[_0xd0f1[74]]);return db[_0xd0f1[56]][_0xd0f1[80]](_0xca2ax1b)[_0xd0f1[45]](handleEntityNotFound(_0xca2ax15,null,_0xd0f1[77]))[_0xd0f1[45]](respondWithResult(_0xca2ax15,null,_0xd0f1[77]))[_0xd0f1[75]](handleError(_0xca2ax15,null,_0xd0f1[77]))};exports[_0xd0f1[81]]= function(_0xca2ax28,_0xca2ax15){return db[_0xd0f1[56]][_0xd0f1[81]](_0xca2ax28[_0xd0f1[82]],{})[_0xd0f1[45]](respondWithResult(_0xca2ax15,201,_0xd0f1[81]))[_0xd0f1[75]](handleError(_0xca2ax15,null,_0xd0f1[81]))};exports[_0xd0f1[46]]= function(_0xca2ax28,_0xca2ax15){if(_0xca2ax28[_0xd0f1[82]][_0xd0f1[78]]){delete _0xca2ax28[_0xd0f1[82]][_0xd0f1[78]]};return db[_0xd0f1[56]][_0xd0f1[80]]({where:{id:_0xca2ax28[_0xd0f1[79]][_0xd0f1[78]]}})[_0xd0f1[45]](handleEntityNotFound(_0xca2ax15,null,_0xd0f1[46]))[_0xd0f1[45]](saveUpdates(_0xca2ax28[_0xd0f1[82]],null,_0xd0f1[46]))[_0xd0f1[45]](respondWithResult(_0xca2ax15,null,_0xd0f1[46]))[_0xd0f1[75]](handleError(_0xca2ax15,null,_0xd0f1[46]))};exports[_0xd0f1[48]]= function(_0xca2ax28,_0xca2ax15){return db[_0xd0f1[56]][_0xd0f1[80]]({where:{id:_0xca2ax28[_0xd0f1[79]][_0xd0f1[78]]}})[_0xd0f1[45]](handleEntityNotFound(_0xca2ax15,null,_0xd0f1[48]))[_0xd0f1[45]](removeEntity(_0xca2ax15,null,_0xd0f1[48]))[_0xd0f1[75]](handleError(_0xca2ax15,null,_0xd0f1[48]))}
\ No newline at end of file
index dd62e15..249be83 100644 (file)
@@ -1 +1 @@
-var _0x3c46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x64\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x64\x72","\x63\x64\x72","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x61\x6C\x6C\x64\x61\x74\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x73\x74","\x73\x72\x63","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0x3c46[0];var _=require(_0x3c46[1]);var util=require(_0x3c46[2]);var logger=require(_0x3c46[4])(_0x3c46[3]);var attributes=require(_0x3c46[5]);module[_0x3c46[6]]= function(_0x20c9x5,_0x20c9x6){return _0x20c9x5[_0x3c46[15]](_0x3c46[7],attributes,{tableName:_0x3c46[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x3c46[9],"\x66\x69\x65\x6C\x64\x73":[_0x3c46[9]]},{"\x6E\x61\x6D\x65":_0x3c46[10],"\x66\x69\x65\x6C\x64\x73":[_0x3c46[10]]},{"\x6E\x61\x6D\x65":_0x3c46[11],"\x66\x69\x65\x6C\x64\x73":[_0x3c46[11]]},{"\x6E\x61\x6D\x65":_0x3c46[12],"\x66\x69\x65\x6C\x64\x73":[_0x3c46[12]]},{"\x6E\x61\x6D\x65":_0x3c46[13],"\x66\x69\x65\x6C\x64\x73":[_0x3c46[13]]},{"\x6E\x61\x6D\x65":_0x3c46[14],"\x66\x69\x65\x6C\x64\x73":[_0x3c46[14]]}],timestamps:false})}
\ No newline at end of file
+var _0xd90b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x64\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x64\x72","\x63\x64\x72","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x61\x6C\x6C\x64\x61\x74\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x73\x74","\x73\x72\x63","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0xd90b[0];var _=require(_0xd90b[1]);var util=require(_0xd90b[2]);var logger=require(_0xd90b[4])(_0xd90b[3]);var attributes=require(_0xd90b[5]);module[_0xd90b[6]]= function(_0x5edbx5,_0x5edbx6){return _0x5edbx5[_0xd90b[15]](_0xd90b[7],attributes,{tableName:_0xd90b[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xd90b[9],"\x66\x69\x65\x6C\x64\x73":[_0xd90b[9]]},{"\x6E\x61\x6D\x65":_0xd90b[10],"\x66\x69\x65\x6C\x64\x73":[_0xd90b[10]]},{"\x6E\x61\x6D\x65":_0xd90b[11],"\x66\x69\x65\x6C\x64\x73":[_0xd90b[11]]},{"\x6E\x61\x6D\x65":_0xd90b[12],"\x66\x69\x65\x6C\x64\x73":[_0xd90b[12]]},{"\x6E\x61\x6D\x65":_0xd90b[13],"\x66\x69\x65\x6C\x64\x73":[_0xd90b[13]]},{"\x6E\x61\x6D\x65":_0xd90b[14],"\x66\x69\x65\x6C\x64\x73":[_0xd90b[14]]}],timestamps:false})}
\ No newline at end of file
index ab66853..29a20b9 100644 (file)
@@ -1 +1 @@
-var _0x8f0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8f0e[0];var _=require(_0x8f0e[1]);var util=require(_0x8f0e[2]);var moment=require(_0x8f0e[3]);var BPromise=require(_0x8f0e[4]);var db=require(_0x8f0e[6])[_0x8f0e[5]];var utils=require(_0x8f0e[7]);var logger=require(_0x8f0e[9])(_0x8f0e[8]);var jayson=require(_0x8f0e[10]);var client=jayson[_0x8f0e[12]][_0x8f0e[11]]({port:9002});function respondWithRpcPromise(_0xd632xb,_0xd632xc,_0xd632xd){return  new BPromise(function(_0xd632xe,_0xd632xf){return client[_0x8f0e[25]](_0xd632xb,_0xd632xd)[_0x8f0e[24]](function(_0xd632x11){logger[_0x8f0e[17]](_0x8f0e[13],_0xd632xc,_0x8f0e[16]);logger[_0x8f0e[20]](_0x8f0e[18],_0xd632xc,_0x8f0e[16],JSON[_0x8f0e[19]](_0xd632x11));if(_0xd632x11[_0x8f0e[14]]){if(_0xd632x11[_0x8f0e[14]][_0x8f0e[21]]=== 500){logger[_0x8f0e[14]](_0x8f0e[13],_0xd632xc,_0xd632x11[_0x8f0e[14]][_0x8f0e[22]]);return _0xd632xf(_0xd632x11[_0x8f0e[14]][_0x8f0e[22]])};logger[_0x8f0e[14]](_0x8f0e[13],_0xd632xc,_0xd632x11[_0x8f0e[14]][_0x8f0e[22]]);return _0xd632xe(_0xd632x11[_0x8f0e[14]][_0x8f0e[22]])}else {logger[_0x8f0e[17]](_0x8f0e[13],_0xd632xc,_0x8f0e[16]);_0xd632xe(_0xd632x11[_0x8f0e[23]][_0x8f0e[22]])}})[_0x8f0e[15]](function(_0xd632x10){logger[_0x8f0e[14]](_0x8f0e[13],_0xd632xc,_0xd632x10);_0xd632xf(_0xd632x10)})})}
\ No newline at end of file
+var _0xa3a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa3a8[0];var _=require(_0xa3a8[1]);var util=require(_0xa3a8[2]);var moment=require(_0xa3a8[3]);var BPromise=require(_0xa3a8[4]);var db=require(_0xa3a8[6])[_0xa3a8[5]];var utils=require(_0xa3a8[7]);var logger=require(_0xa3a8[9])(_0xa3a8[8]);var jayson=require(_0xa3a8[10]);var client=jayson[_0xa3a8[12]][_0xa3a8[11]]({port:9002});function respondWithRpcPromise(_0x93c5xb,_0x93c5xc,_0x93c5xd){return  new BPromise(function(_0x93c5xe,_0x93c5xf){return client[_0xa3a8[25]](_0x93c5xb,_0x93c5xd)[_0xa3a8[24]](function(_0x93c5x11){logger[_0xa3a8[17]](_0xa3a8[13],_0x93c5xc,_0xa3a8[16]);logger[_0xa3a8[20]](_0xa3a8[18],_0x93c5xc,_0xa3a8[16],JSON[_0xa3a8[19]](_0x93c5x11));if(_0x93c5x11[_0xa3a8[14]]){if(_0x93c5x11[_0xa3a8[14]][_0xa3a8[21]]=== 500){logger[_0xa3a8[14]](_0xa3a8[13],_0x93c5xc,_0x93c5x11[_0xa3a8[14]][_0xa3a8[22]]);return _0x93c5xf(_0x93c5x11[_0xa3a8[14]][_0xa3a8[22]])};logger[_0xa3a8[14]](_0xa3a8[13],_0x93c5xc,_0x93c5x11[_0xa3a8[14]][_0xa3a8[22]]);return _0x93c5xe(_0x93c5x11[_0xa3a8[14]][_0xa3a8[22]])}else {logger[_0xa3a8[17]](_0xa3a8[13],_0x93c5xc,_0xa3a8[16]);_0x93c5xe(_0x93c5x11[_0xa3a8[23]][_0xa3a8[22]])}})[_0xa3a8[15]](function(_0x93c5x10){logger[_0xa3a8[14]](_0xa3a8[13],_0x93c5xc,_0x93c5x10);_0x93c5xf(_0x93c5x10)})})}
\ No newline at end of file
index 5456f64..215c70b 100644 (file)
@@ -1 +1 @@
-var _0xff63=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x64\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xff63[0];var multer=require(_0xff63[1]);var util=require(_0xff63[2]);var path=require(_0xff63[3]);var express=require(_0xff63[4]);var router=express.Router();var auth=require(_0xff63[5]);var config=require(_0xff63[6]);var controller=require(_0xff63[7]);router[_0xff63[11]](_0xff63[8],auth[_0xff63[9]](),controller[_0xff63[10]]);router[_0xff63[11]](_0xff63[12],auth[_0xff63[9]](),controller[_0xff63[13]]);router[_0xff63[15]](_0xff63[8],auth[_0xff63[9]](),controller[_0xff63[14]]);router[_0xff63[17]](_0xff63[12],auth[_0xff63[9]](),controller[_0xff63[16]]);router[_0xff63[19]](_0xff63[12],auth[_0xff63[9]](),controller[_0xff63[18]]);module[_0xff63[20]]= router
\ No newline at end of file
+var _0x52d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x64\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x52d2[0];var multer=require(_0x52d2[1]);var util=require(_0x52d2[2]);var path=require(_0x52d2[3]);var express=require(_0x52d2[4]);var router=express.Router();var auth=require(_0x52d2[5]);var config=require(_0x52d2[6]);var controller=require(_0x52d2[7]);router[_0x52d2[11]](_0x52d2[8],auth[_0x52d2[9]](),controller[_0x52d2[10]]);router[_0x52d2[11]](_0x52d2[12],auth[_0x52d2[9]](),controller[_0x52d2[13]]);router[_0x52d2[15]](_0x52d2[8],auth[_0x52d2[9]](),controller[_0x52d2[14]]);router[_0x52d2[17]](_0x52d2[12],auth[_0x52d2[9]](),controller[_0x52d2[16]]);router[_0x52d2[19]](_0x52d2[12],auth[_0x52d2[9]](),controller[_0x52d2[18]]);module[_0x52d2[20]]= router
\ No newline at end of file
index 51f69c3..376de45 100644 (file)
@@ -1 +1 @@
-var _0x53b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x53b4[0];var Sequelize=require(_0x53b4[1]);module[_0x53b4[2]]= {app:{type:Sequelize.ENUM(_0x53b4[3],_0x53b4[4],_0x53b4[5],_0x53b4[6]),allowNull:false},priority:{type:Sequelize[_0x53b4[7]],allowNull:false},timeout:{type:Sequelize[_0x53b4[7]],allowNull:false,validate:{min:1}},interval:{type:Sequelize[_0x53b4[8]]},data1:{type:Sequelize[_0x53b4[8]]},data2:{type:Sequelize[_0x53b4[8]]},data3:{type:Sequelize[_0x53b4[8]]},data4:{type:Sequelize[_0x53b4[8]]},data5:{type:Sequelize[_0x53b4[8]]},data6:{type:Sequelize[_0x53b4[8]]},data7:{type:Sequelize[_0x53b4[9]]},data8:{type:Sequelize[_0x53b4[7]]},data9:{type:Sequelize[_0x53b4[7]]},data10:{type:Sequelize[_0x53b4[7]]}}
\ No newline at end of file
+var _0x174b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x174b[0];var Sequelize=require(_0x174b[1]);module[_0x174b[2]]= {app:{type:Sequelize.ENUM(_0x174b[3],_0x174b[4],_0x174b[5],_0x174b[6]),allowNull:false},priority:{type:Sequelize[_0x174b[7]],allowNull:false},timeout:{type:Sequelize[_0x174b[7]],allowNull:false,validate:{min:1}},interval:{type:Sequelize[_0x174b[8]]},data1:{type:Sequelize[_0x174b[8]]},data2:{type:Sequelize[_0x174b[8]]},data3:{type:Sequelize[_0x174b[8]]},data4:{type:Sequelize[_0x174b[8]]},data5:{type:Sequelize[_0x174b[8]]},data6:{type:Sequelize[_0x174b[8]]},data7:{type:Sequelize[_0x174b[9]]},data8:{type:Sequelize[_0x174b[7]]},data9:{type:Sequelize[_0x174b[7]]},data10:{type:Sequelize[_0x174b[7]]}}
\ No newline at end of file
index f8d3b7b..542c0a3 100644 (file)
@@ -1 +1 @@
-var _0xe9c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xe9c1[0];var jsonpatch=require(_0xe9c1[1]);var rp=require(_0xe9c1[2]);var moment=require(_0xe9c1[3]);var BPromise=require(_0xe9c1[4]);var util=require(_0xe9c1[5]);var path=require(_0xe9c1[6]);var sox=require(_0xe9c1[7]);var ejs=require(_0xe9c1[8]);var fs=require(_0xe9c1[9]);var _=require(_0xe9c1[10]);var squel=require(_0xe9c1[11]);var crypto=require(_0xe9c1[12]);var jsforce=require(_0xe9c1[13]);var toCsv=require(_0xe9c1[14]);var qs=require(_0xe9c1[15]);var logger=require(_0xe9c1[17])(_0xe9c1[16]);var utils=require(_0xe9c1[18]);var config=require(_0xe9c1[19]);var db=require(_0xe9c1[21])[_0xe9c1[20]];function respondWithStatusCode(_0x1098x15,_0x1098x16,_0x1098x17){_0x1098x16= _0x1098x16|| 204;return function(_0x1098x18){if(_0x1098x18){logger[_0xe9c1[24]](_0xe9c1[22],_0x1098x17,_0x1098x16,_0xe9c1[23]);logger[_0xe9c1[26]](_0xe9c1[25],_0x1098x17,_0x1098x16,_0xe9c1[23]);return _0x1098x15[_0xe9c1[27]](_0x1098x16)};return _0x1098x15[_0xe9c1[29]](304)[_0xe9c1[28]]()}}function respondWithResult(_0x1098x15,_0x1098x16,_0x1098x17){_0x1098x16= _0x1098x16|| 200;return function(_0x1098x18){if(_0x1098x18){logger[_0xe9c1[24]](_0xe9c1[22],_0x1098x17,_0x1098x16,_0xe9c1[30]);logger[_0xe9c1[26]](_0xe9c1[25],_0x1098x17,_0x1098x16,_0xe9c1[30],JSON[_0xe9c1[31]](_0x1098x18));return _0x1098x15[_0xe9c1[29]](_0x1098x16)[_0xe9c1[32]](_0x1098x18)};return _0x1098x15[_0xe9c1[29]](304)[_0xe9c1[28]]()}}function respondWithFilteredResult(_0x1098x15,_0x1098x1b,_0x1098x17){return function(_0x1098x18){if(_0x1098x18){var _0x1098x1c=_0x1098x18[_0xe9c1[33]],_0x1098x1d=_0x1098x1b[_0xe9c1[34]],_0x1098x1e=_0x1098x1b[_0xe9c1[34]]+ _0x1098x1b[_0xe9c1[35]],_0x1098x16;if(_0x1098x1e>= _0x1098x1c){_0x1098x1e= _0x1098x1c;_0x1098x16= 200}else {_0x1098x16= 206};_0x1098x15[_0xe9c1[29]](_0x1098x16);logger[_0xe9c1[24]](_0xe9c1[22],_0x1098x17,_0x1098x16,_0xe9c1[36]);logger[_0xe9c1[26]](_0xe9c1[25],_0x1098x17,_0x1098x16,_0xe9c1[30],JSON[_0xe9c1[31]](_0x1098x18));return _0x1098x15[_0xe9c1[40]](_0xe9c1[37],_0x1098x1d+ _0xe9c1[38]+ _0x1098x1e+ _0xe9c1[39]+ _0x1098x1c)[_0xe9c1[32]](_0x1098x18)};return null}}function patchUpdates(_0x1098x20){return function(_0x1098x18){try{jsonpatch[_0xe9c1[41]](_0x1098x18,_0x1098x20,true)}catch(err){return BPromise[_0xe9c1[42]](err)};return _0x1098x18[_0xe9c1[43]]()}}function saveUpdates(_0x1098x22,_0x1098x16,_0x1098x17){return function(_0x1098x18){if(_0x1098x18){return _0x1098x18[_0xe9c1[46]](_0x1098x22)[_0xe9c1[45]](function(_0x1098x23){logger[_0xe9c1[24]](_0xe9c1[22],_0x1098x17,_0x1098x16,_0xe9c1[44]);logger[_0xe9c1[26]](_0xe9c1[25],_0x1098x17,_0x1098x16,_0xe9c1[44],JSON[_0xe9c1[31]](_0x1098x18));return _0x1098x23})};return null}}function removeEntity(_0x1098x15,_0x1098x16,_0x1098x17){return function(_0x1098x18){if(_0x1098x18){return _0x1098x18[_0xe9c1[48]]()[_0xe9c1[45]](function(){logger[_0xe9c1[24]](_0xe9c1[22],_0x1098x17,_0x1098x16,_0xe9c1[47]);logger[_0xe9c1[26]](_0xe9c1[25],_0x1098x17,_0x1098x16,_0xe9c1[47],JSON[_0xe9c1[31]](_0x1098x18));_0x1098x15[_0xe9c1[29]](204)[_0xe9c1[28]]()})}}}function handleEntityNotFound(_0x1098x15,_0x1098x16,_0x1098x17){return function(_0x1098x18){if(!_0x1098x18){logger[_0xe9c1[50]](_0xe9c1[22],_0x1098x17,404,_0xe9c1[49]);_0x1098x15[_0xe9c1[29]](404)[_0xe9c1[28]]();return null};return _0x1098x18}}function handleError(_0x1098x15,_0x1098x16,_0x1098x17){_0x1098x16= _0x1098x16|| 500;return function(_0x1098x27){logger[_0xe9c1[50]](_0xe9c1[22],_0x1098x17,_0x1098x16,JSON[_0xe9c1[31]](_0x1098x27));delete _0x1098x27[_0xe9c1[51]];_0x1098x15[_0xe9c1[29]](_0x1098x16)[_0xe9c1[52]](_0x1098x27)}}exports[_0xe9c1[53]]= function(_0x1098x28,_0x1098x15){var _0x1098x1b={raw:true,where:{id:_0x1098x28[_0xe9c1[55]][_0xe9c1[54]]}},_0x1098x29={};_0x1098x29[_0xe9c1[56]]= _[_0xe9c1[59]](db[_0xe9c1[58]][_0xe9c1[57]]);_0x1098x29[_0xe9c1[60]]= _[_0xe9c1[59]](_0x1098x28[_0xe9c1[60]]);_0x1098x29[_0xe9c1[61]]= _[_0xe9c1[62]](_0x1098x29[_0xe9c1[56]],_0x1098x29[_0xe9c1[60]]);_0x1098x1b[_0xe9c1[63]]= _[_0xe9c1[62]](_0x1098x29[_0xe9c1[56]],qs[_0xe9c1[64]](_0x1098x28[_0xe9c1[60]][_0xe9c1[64]]));_0x1098x1b[_0xe9c1[63]]= (_0x1098x1b[_0xe9c1[63]][_0xe9c1[65]])?_0x1098x1b[_0xe9c1[63]]:_0x1098x29[_0xe9c1[56]];_0x1098x1b= _[_0xe9c1[67]]({},_0x1098x1b,_0x1098x28[_0xe9c1[66]]);return db[_0xe9c1[58]][_0xe9c1[69]](_0x1098x1b)[_0xe9c1[45]](handleEntityNotFound(_0x1098x15,null,_0xe9c1[53]))[_0xe9c1[45]](respondWithResult(_0x1098x15,null,_0xe9c1[53]))[_0xe9c1[68]](handleError(_0x1098x15,null,_0xe9c1[53]))};exports[_0xe9c1[46]]= function(_0x1098x28,_0x1098x15){if(_0x1098x28[_0xe9c1[70]][_0xe9c1[54]]){delete _0x1098x28[_0xe9c1[70]][_0xe9c1[54]]};return db[_0xe9c1[58]][_0xe9c1[69]]({where:{id:_0x1098x28[_0xe9c1[55]][_0xe9c1[54]]}})[_0xe9c1[45]](handleEntityNotFound(_0x1098x15,null,_0xe9c1[46]))[_0xe9c1[45]](saveUpdates(_0x1098x28[_0xe9c1[70]],null,_0xe9c1[46]))[_0xe9c1[45]](respondWithResult(_0x1098x15,null,_0xe9c1[46]))[_0xe9c1[68]](handleError(_0x1098x15,null,_0xe9c1[46]))};exports[_0xe9c1[48]]= function(_0x1098x28,_0x1098x15){return db[_0xe9c1[58]][_0xe9c1[69]]({where:{id:_0x1098x28[_0xe9c1[55]][_0xe9c1[54]]}})[_0xe9c1[45]](handleEntityNotFound(_0x1098x15,null,_0xe9c1[48]))[_0xe9c1[45]](removeEntity(_0x1098x15,null,_0xe9c1[48]))[_0xe9c1[68]](handleError(_0x1098x15,null,_0xe9c1[48]))}
\ No newline at end of file
+var _0xbcdb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xbcdb[0];var jsonpatch=require(_0xbcdb[1]);var rp=require(_0xbcdb[2]);var moment=require(_0xbcdb[3]);var BPromise=require(_0xbcdb[4]);var util=require(_0xbcdb[5]);var path=require(_0xbcdb[6]);var sox=require(_0xbcdb[7]);var ejs=require(_0xbcdb[8]);var fs=require(_0xbcdb[9]);var _=require(_0xbcdb[10]);var squel=require(_0xbcdb[11]);var crypto=require(_0xbcdb[12]);var jsforce=require(_0xbcdb[13]);var toCsv=require(_0xbcdb[14]);var qs=require(_0xbcdb[15]);var logger=require(_0xbcdb[17])(_0xbcdb[16]);var utils=require(_0xbcdb[18]);var config=require(_0xbcdb[19]);var db=require(_0xbcdb[21])[_0xbcdb[20]];function respondWithStatusCode(_0x50b0x15,_0x50b0x16,_0x50b0x17){_0x50b0x16= _0x50b0x16|| 204;return function(_0x50b0x18){if(_0x50b0x18){logger[_0xbcdb[24]](_0xbcdb[22],_0x50b0x17,_0x50b0x16,_0xbcdb[23]);logger[_0xbcdb[26]](_0xbcdb[25],_0x50b0x17,_0x50b0x16,_0xbcdb[23]);return _0x50b0x15[_0xbcdb[27]](_0x50b0x16)};return _0x50b0x15[_0xbcdb[29]](304)[_0xbcdb[28]]()}}function respondWithResult(_0x50b0x15,_0x50b0x16,_0x50b0x17){_0x50b0x16= _0x50b0x16|| 200;return function(_0x50b0x18){if(_0x50b0x18){logger[_0xbcdb[24]](_0xbcdb[22],_0x50b0x17,_0x50b0x16,_0xbcdb[30]);logger[_0xbcdb[26]](_0xbcdb[25],_0x50b0x17,_0x50b0x16,_0xbcdb[30],JSON[_0xbcdb[31]](_0x50b0x18));return _0x50b0x15[_0xbcdb[29]](_0x50b0x16)[_0xbcdb[32]](_0x50b0x18)};return _0x50b0x15[_0xbcdb[29]](304)[_0xbcdb[28]]()}}function respondWithFilteredResult(_0x50b0x15,_0x50b0x1b,_0x50b0x17){return function(_0x50b0x18){if(_0x50b0x18){var _0x50b0x1c=_0x50b0x18[_0xbcdb[33]],_0x50b0x1d=_0x50b0x1b[_0xbcdb[34]],_0x50b0x1e=_0x50b0x1b[_0xbcdb[34]]+ _0x50b0x1b[_0xbcdb[35]],_0x50b0x16;if(_0x50b0x1e>= _0x50b0x1c){_0x50b0x1e= _0x50b0x1c;_0x50b0x16= 200}else {_0x50b0x16= 206};_0x50b0x15[_0xbcdb[29]](_0x50b0x16);logger[_0xbcdb[24]](_0xbcdb[22],_0x50b0x17,_0x50b0x16,_0xbcdb[36]);logger[_0xbcdb[26]](_0xbcdb[25],_0x50b0x17,_0x50b0x16,_0xbcdb[30],JSON[_0xbcdb[31]](_0x50b0x18));return _0x50b0x15[_0xbcdb[40]](_0xbcdb[37],_0x50b0x1d+ _0xbcdb[38]+ _0x50b0x1e+ _0xbcdb[39]+ _0x50b0x1c)[_0xbcdb[32]](_0x50b0x18)};return null}}function patchUpdates(_0x50b0x20){return function(_0x50b0x18){try{jsonpatch[_0xbcdb[41]](_0x50b0x18,_0x50b0x20,true)}catch(err){return BPromise[_0xbcdb[42]](err)};return _0x50b0x18[_0xbcdb[43]]()}}function saveUpdates(_0x50b0x22,_0x50b0x16,_0x50b0x17){return function(_0x50b0x18){if(_0x50b0x18){return _0x50b0x18[_0xbcdb[46]](_0x50b0x22)[_0xbcdb[45]](function(_0x50b0x23){logger[_0xbcdb[24]](_0xbcdb[22],_0x50b0x17,_0x50b0x16,_0xbcdb[44]);logger[_0xbcdb[26]](_0xbcdb[25],_0x50b0x17,_0x50b0x16,_0xbcdb[44],JSON[_0xbcdb[31]](_0x50b0x18));return _0x50b0x23})};return null}}function removeEntity(_0x50b0x15,_0x50b0x16,_0x50b0x17){return function(_0x50b0x18){if(_0x50b0x18){return _0x50b0x18[_0xbcdb[48]]()[_0xbcdb[45]](function(){logger[_0xbcdb[24]](_0xbcdb[22],_0x50b0x17,_0x50b0x16,_0xbcdb[47]);logger[_0xbcdb[26]](_0xbcdb[25],_0x50b0x17,_0x50b0x16,_0xbcdb[47],JSON[_0xbcdb[31]](_0x50b0x18));_0x50b0x15[_0xbcdb[29]](204)[_0xbcdb[28]]()})}}}function handleEntityNotFound(_0x50b0x15,_0x50b0x16,_0x50b0x17){return function(_0x50b0x18){if(!_0x50b0x18){logger[_0xbcdb[50]](_0xbcdb[22],_0x50b0x17,404,_0xbcdb[49]);_0x50b0x15[_0xbcdb[29]](404)[_0xbcdb[28]]();return null};return _0x50b0x18}}function handleError(_0x50b0x15,_0x50b0x16,_0x50b0x17){_0x50b0x16= _0x50b0x16|| 500;return function(_0x50b0x27){logger[_0xbcdb[50]](_0xbcdb[22],_0x50b0x17,_0x50b0x16,JSON[_0xbcdb[31]](_0x50b0x27));delete _0x50b0x27[_0xbcdb[51]];_0x50b0x15[_0xbcdb[29]](_0x50b0x16)[_0xbcdb[52]](_0x50b0x27)}}exports[_0xbcdb[53]]= function(_0x50b0x28,_0x50b0x15){var _0x50b0x1b={raw:true,where:{id:_0x50b0x28[_0xbcdb[55]][_0xbcdb[54]]}},_0x50b0x29={};_0x50b0x29[_0xbcdb[56]]= _[_0xbcdb[59]](db[_0xbcdb[58]][_0xbcdb[57]]);_0x50b0x29[_0xbcdb[60]]= _[_0xbcdb[59]](_0x50b0x28[_0xbcdb[60]]);_0x50b0x29[_0xbcdb[61]]= _[_0xbcdb[62]](_0x50b0x29[_0xbcdb[56]],_0x50b0x29[_0xbcdb[60]]);_0x50b0x1b[_0xbcdb[63]]= _[_0xbcdb[62]](_0x50b0x29[_0xbcdb[56]],qs[_0xbcdb[64]](_0x50b0x28[_0xbcdb[60]][_0xbcdb[64]]));_0x50b0x1b[_0xbcdb[63]]= (_0x50b0x1b[_0xbcdb[63]][_0xbcdb[65]])?_0x50b0x1b[_0xbcdb[63]]:_0x50b0x29[_0xbcdb[56]];_0x50b0x1b= _[_0xbcdb[67]]({},_0x50b0x1b,_0x50b0x28[_0xbcdb[66]]);return db[_0xbcdb[58]][_0xbcdb[69]](_0x50b0x1b)[_0xbcdb[45]](handleEntityNotFound(_0x50b0x15,null,_0xbcdb[53]))[_0xbcdb[45]](respondWithResult(_0x50b0x15,null,_0xbcdb[53]))[_0xbcdb[68]](handleError(_0x50b0x15,null,_0xbcdb[53]))};exports[_0xbcdb[46]]= function(_0x50b0x28,_0x50b0x15){if(_0x50b0x28[_0xbcdb[70]][_0xbcdb[54]]){delete _0x50b0x28[_0xbcdb[70]][_0xbcdb[54]]};return db[_0xbcdb[58]][_0xbcdb[69]]({where:{id:_0x50b0x28[_0xbcdb[55]][_0xbcdb[54]]}})[_0xbcdb[45]](handleEntityNotFound(_0x50b0x15,null,_0xbcdb[46]))[_0xbcdb[45]](saveUpdates(_0x50b0x28[_0xbcdb[70]],null,_0xbcdb[46]))[_0xbcdb[45]](respondWithResult(_0x50b0x15,null,_0xbcdb[46]))[_0xbcdb[68]](handleError(_0x50b0x15,null,_0xbcdb[46]))};exports[_0xbcdb[48]]= function(_0x50b0x28,_0x50b0x15){return db[_0xbcdb[58]][_0xbcdb[69]]({where:{id:_0x50b0x28[_0xbcdb[55]][_0xbcdb[54]]}})[_0xbcdb[45]](handleEntityNotFound(_0x50b0x15,null,_0xbcdb[48]))[_0xbcdb[45]](removeEntity(_0x50b0x15,null,_0xbcdb[48]))[_0xbcdb[68]](handleError(_0x50b0x15,null,_0xbcdb[48]))}
\ No newline at end of file
index b1302cb..dda2bcf 100644 (file)
@@ -1 +1 @@
-var _0xdda3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xdda3[0];var _=require(_0xdda3[1]);var util=require(_0xdda3[2]);var logger=require(_0xdda3[4])(_0xdda3[3]);var attributes=require(_0xdda3[5]);module[_0xdda3[6]]= function(_0x1505x5,_0x1505x6){return _0x1505x5[_0xdda3[9]](_0xdda3[7],attributes,{tableName:_0xdda3[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x3a52=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x3a52[0];var _=require(_0x3a52[1]);var util=require(_0x3a52[2]);var logger=require(_0x3a52[4])(_0x3a52[3]);var attributes=require(_0x3a52[5]);module[_0x3a52[6]]= function(_0x2c4bx5,_0x2c4bx6){return _0x2c4bx5[_0x3a52[9]](_0x3a52[7],attributes,{tableName:_0x3a52[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 7a24a8a..24da432 100644 (file)
@@ -1 +1 @@
-var _0x1936=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1936[0];var _=require(_0x1936[1]);var util=require(_0x1936[2]);var moment=require(_0x1936[3]);var BPromise=require(_0x1936[4]);var db=require(_0x1936[6])[_0x1936[5]];var utils=require(_0x1936[7]);var logger=require(_0x1936[9])(_0x1936[8]);var jayson=require(_0x1936[10]);var client=jayson[_0x1936[12]][_0x1936[11]]({port:9002});function respondWithRpcPromise(_0x6edbxb,_0x6edbxc,_0x6edbxd){return  new BPromise(function(_0x6edbxe,_0x6edbxf){return client[_0x1936[25]](_0x6edbxb,_0x6edbxd)[_0x1936[24]](function(_0x6edbx11){logger[_0x1936[17]](_0x1936[13],_0x6edbxc,_0x1936[16]);logger[_0x1936[20]](_0x1936[18],_0x6edbxc,_0x1936[16],JSON[_0x1936[19]](_0x6edbx11));if(_0x6edbx11[_0x1936[14]]){if(_0x6edbx11[_0x1936[14]][_0x1936[21]]=== 500){logger[_0x1936[14]](_0x1936[13],_0x6edbxc,_0x6edbx11[_0x1936[14]][_0x1936[22]]);return _0x6edbxf(_0x6edbx11[_0x1936[14]][_0x1936[22]])};logger[_0x1936[14]](_0x1936[13],_0x6edbxc,_0x6edbx11[_0x1936[14]][_0x1936[22]]);return _0x6edbxe(_0x6edbx11[_0x1936[14]][_0x1936[22]])}else {logger[_0x1936[17]](_0x1936[13],_0x6edbxc,_0x1936[16]);_0x6edbxe(_0x6edbx11[_0x1936[23]][_0x1936[22]])}})[_0x1936[15]](function(_0x6edbx10){logger[_0x1936[14]](_0x1936[13],_0x6edbxc,_0x6edbx10);_0x6edbxf(_0x6edbx10)})})}
\ No newline at end of file
+var _0xfa24=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfa24[0];var _=require(_0xfa24[1]);var util=require(_0xfa24[2]);var moment=require(_0xfa24[3]);var BPromise=require(_0xfa24[4]);var db=require(_0xfa24[6])[_0xfa24[5]];var utils=require(_0xfa24[7]);var logger=require(_0xfa24[9])(_0xfa24[8]);var jayson=require(_0xfa24[10]);var client=jayson[_0xfa24[12]][_0xfa24[11]]({port:9002});function respondWithRpcPromise(_0xc184xb,_0xc184xc,_0xc184xd){return  new BPromise(function(_0xc184xe,_0xc184xf){return client[_0xfa24[25]](_0xc184xb,_0xc184xd)[_0xfa24[24]](function(_0xc184x11){logger[_0xfa24[17]](_0xfa24[13],_0xc184xc,_0xfa24[16]);logger[_0xfa24[20]](_0xfa24[18],_0xc184xc,_0xfa24[16],JSON[_0xfa24[19]](_0xc184x11));if(_0xc184x11[_0xfa24[14]]){if(_0xc184x11[_0xfa24[14]][_0xfa24[21]]=== 500){logger[_0xfa24[14]](_0xfa24[13],_0xc184xc,_0xc184x11[_0xfa24[14]][_0xfa24[22]]);return _0xc184xf(_0xc184x11[_0xfa24[14]][_0xfa24[22]])};logger[_0xfa24[14]](_0xfa24[13],_0xc184xc,_0xc184x11[_0xfa24[14]][_0xfa24[22]]);return _0xc184xe(_0xc184x11[_0xfa24[14]][_0xfa24[22]])}else {logger[_0xfa24[17]](_0xfa24[13],_0xc184xc,_0xfa24[16]);_0xc184xe(_0xc184x11[_0xfa24[23]][_0xfa24[22]])}})[_0xfa24[15]](function(_0xc184x10){logger[_0xfa24[14]](_0xfa24[13],_0xc184xc,_0xc184x10);_0xc184xf(_0xc184x10)})})}
\ No newline at end of file
index 0757c88..b6d19e6 100644 (file)
@@ -1 +1 @@
-var _0x379b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x379b[0];var multer=require(_0x379b[1]);var util=require(_0x379b[2]);var path=require(_0x379b[3]);var express=require(_0x379b[4]);var router=express.Router();var auth=require(_0x379b[5]);var config=require(_0x379b[6]);var controller=require(_0x379b[7]);router[_0x379b[11]](_0x379b[8],auth[_0x379b[9]](),controller[_0x379b[10]]);router[_0x379b[13]](_0x379b[8],auth[_0x379b[9]](),controller[_0x379b[12]]);router[_0x379b[15]](_0x379b[8],auth[_0x379b[9]](),controller[_0x379b[14]]);module[_0x379b[16]]= router
\ No newline at end of file
+var _0xe49a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe49a[0];var multer=require(_0xe49a[1]);var util=require(_0xe49a[2]);var path=require(_0xe49a[3]);var express=require(_0xe49a[4]);var router=express.Router();var auth=require(_0xe49a[5]);var config=require(_0xe49a[6]);var controller=require(_0xe49a[7]);router[_0xe49a[11]](_0xe49a[8],auth[_0xe49a[9]](),controller[_0xe49a[10]]);router[_0xe49a[13]](_0xe49a[8],auth[_0xe49a[9]](),controller[_0xe49a[12]]);router[_0xe49a[15]](_0xe49a[8],auth[_0xe49a[9]](),controller[_0xe49a[14]]);module[_0xe49a[16]]= router
\ No newline at end of file
index 7329ea7..ebf55c0 100644 (file)
@@ -1 +1 @@
-var _0x50e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x50e0[0];var Sequelize=require(_0x50e0[1]);module[_0x50e0[2]]= {name:{type:Sequelize[_0x50e0[3]],allowNull:false}}
\ No newline at end of file
+var _0xe8d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xe8d0[0];var Sequelize=require(_0xe8d0[1]);module[_0xe8d0[2]]= {name:{type:Sequelize[_0xe8d0[3]],allowNull:false}}
\ No newline at end of file
index 4b5b380..5389199 100644 (file)
@@ -1 +1 @@
-var _0x2ba5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x2ba5[0];var jsonpatch=require(_0x2ba5[1]);var rp=require(_0x2ba5[2]);var moment=require(_0x2ba5[3]);var BPromise=require(_0x2ba5[4]);var util=require(_0x2ba5[5]);var path=require(_0x2ba5[6]);var sox=require(_0x2ba5[7]);var ejs=require(_0x2ba5[8]);var fs=require(_0x2ba5[9]);var _=require(_0x2ba5[10]);var squel=require(_0x2ba5[11]);var crypto=require(_0x2ba5[12]);var jsforce=require(_0x2ba5[13]);var toCsv=require(_0x2ba5[14]);var qs=require(_0x2ba5[15]);var logger=require(_0x2ba5[17])(_0x2ba5[16]);var utils=require(_0x2ba5[18]);var config=require(_0x2ba5[19]);var db=require(_0x2ba5[21])[_0x2ba5[20]];function respondWithStatusCode(_0x8ce8x15,_0x8ce8x16,_0x8ce8x17){_0x8ce8x16= _0x8ce8x16|| 204;return function(_0x8ce8x18){if(_0x8ce8x18){logger[_0x2ba5[24]](_0x2ba5[22],_0x8ce8x17,_0x8ce8x16,_0x2ba5[23]);logger[_0x2ba5[26]](_0x2ba5[25],_0x8ce8x17,_0x8ce8x16,_0x2ba5[23]);return _0x8ce8x15[_0x2ba5[27]](_0x8ce8x16)};return _0x8ce8x15[_0x2ba5[29]](304)[_0x2ba5[28]]()}}function respondWithResult(_0x8ce8x15,_0x8ce8x16,_0x8ce8x17){_0x8ce8x16= _0x8ce8x16|| 200;return function(_0x8ce8x18){if(_0x8ce8x18){logger[_0x2ba5[24]](_0x2ba5[22],_0x8ce8x17,_0x8ce8x16,_0x2ba5[30]);logger[_0x2ba5[26]](_0x2ba5[25],_0x8ce8x17,_0x8ce8x16,_0x2ba5[30],JSON[_0x2ba5[31]](_0x8ce8x18));return _0x8ce8x15[_0x2ba5[29]](_0x8ce8x16)[_0x2ba5[32]](_0x8ce8x18)};return _0x8ce8x15[_0x2ba5[29]](304)[_0x2ba5[28]]()}}function respondWithFilteredResult(_0x8ce8x15,_0x8ce8x1b,_0x8ce8x17){return function(_0x8ce8x18){if(_0x8ce8x18){var _0x8ce8x1c=_0x8ce8x18[_0x2ba5[33]],_0x8ce8x1d=_0x8ce8x1b[_0x2ba5[34]],_0x8ce8x1e=_0x8ce8x1b[_0x2ba5[34]]+ _0x8ce8x1b[_0x2ba5[35]],_0x8ce8x16;if(_0x8ce8x1e>= _0x8ce8x1c){_0x8ce8x1e= _0x8ce8x1c;_0x8ce8x16= 200}else {_0x8ce8x16= 206};_0x8ce8x15[_0x2ba5[29]](_0x8ce8x16);logger[_0x2ba5[24]](_0x2ba5[22],_0x8ce8x17,_0x8ce8x16,_0x2ba5[36]);logger[_0x2ba5[26]](_0x2ba5[25],_0x8ce8x17,_0x8ce8x16,_0x2ba5[30],JSON[_0x2ba5[31]](_0x8ce8x18));return _0x8ce8x15[_0x2ba5[40]](_0x2ba5[37],_0x8ce8x1d+ _0x2ba5[38]+ _0x8ce8x1e+ _0x2ba5[39]+ _0x8ce8x1c)[_0x2ba5[32]](_0x8ce8x18)};return null}}function patchUpdates(_0x8ce8x20){return function(_0x8ce8x18){try{jsonpatch[_0x2ba5[41]](_0x8ce8x18,_0x8ce8x20,true)}catch(err){return BPromise[_0x2ba5[42]](err)};return _0x8ce8x18[_0x2ba5[43]]()}}function saveUpdates(_0x8ce8x22,_0x8ce8x16,_0x8ce8x17){return function(_0x8ce8x18){if(_0x8ce8x18){return _0x8ce8x18[_0x2ba5[46]](_0x8ce8x22)[_0x2ba5[45]](function(_0x8ce8x23){logger[_0x2ba5[24]](_0x2ba5[22],_0x8ce8x17,_0x8ce8x16,_0x2ba5[44]);logger[_0x2ba5[26]](_0x2ba5[25],_0x8ce8x17,_0x8ce8x16,_0x2ba5[44],JSON[_0x2ba5[31]](_0x8ce8x18));return _0x8ce8x23})};return null}}function removeEntity(_0x8ce8x15,_0x8ce8x16,_0x8ce8x17){return function(_0x8ce8x18){if(_0x8ce8x18){return _0x8ce8x18[_0x2ba5[48]]()[_0x2ba5[45]](function(){logger[_0x2ba5[24]](_0x2ba5[22],_0x8ce8x17,_0x8ce8x16,_0x2ba5[47]);logger[_0x2ba5[26]](_0x2ba5[25],_0x8ce8x17,_0x8ce8x16,_0x2ba5[47],JSON[_0x2ba5[31]](_0x8ce8x18));_0x8ce8x15[_0x2ba5[29]](204)[_0x2ba5[28]]()})}}}function handleEntityNotFound(_0x8ce8x15,_0x8ce8x16,_0x8ce8x17){return function(_0x8ce8x18){if(!_0x8ce8x18){logger[_0x2ba5[50]](_0x2ba5[22],_0x8ce8x17,404,_0x2ba5[49]);_0x8ce8x15[_0x2ba5[29]](404)[_0x2ba5[28]]();return null};return _0x8ce8x18}}function handleError(_0x8ce8x15,_0x8ce8x16,_0x8ce8x17){_0x8ce8x16= _0x8ce8x16|| 500;return function(_0x8ce8x27){logger[_0x2ba5[50]](_0x2ba5[22],_0x8ce8x17,_0x8ce8x16,JSON[_0x2ba5[31]](_0x8ce8x27));delete _0x8ce8x27[_0x2ba5[51]];_0x8ce8x15[_0x2ba5[29]](_0x8ce8x16)[_0x2ba5[52]](_0x8ce8x27)}}exports[_0x2ba5[53]]= function(_0x8ce8x28,_0x8ce8x15){var _0x8ce8x1b={raw:true,where:{id:_0x8ce8x28[_0x2ba5[55]][_0x2ba5[54]]}},_0x8ce8x29={};_0x8ce8x29[_0x2ba5[56]]= _[_0x2ba5[59]](db[_0x2ba5[58]][_0x2ba5[57]]);_0x8ce8x29[_0x2ba5[60]]= _[_0x2ba5[59]](_0x8ce8x28[_0x2ba5[60]]);_0x8ce8x29[_0x2ba5[61]]= _[_0x2ba5[62]](_0x8ce8x29[_0x2ba5[56]],_0x8ce8x29[_0x2ba5[60]]);_0x8ce8x1b[_0x2ba5[63]]= _[_0x2ba5[62]](_0x8ce8x29[_0x2ba5[56]],qs[_0x2ba5[64]](_0x8ce8x28[_0x2ba5[60]][_0x2ba5[64]]));_0x8ce8x1b[_0x2ba5[63]]= (_0x8ce8x1b[_0x2ba5[63]][_0x2ba5[65]])?_0x8ce8x1b[_0x2ba5[63]]:_0x8ce8x29[_0x2ba5[56]];_0x8ce8x1b= _[_0x2ba5[67]]({},_0x8ce8x1b,_0x8ce8x28[_0x2ba5[66]]);return db[_0x2ba5[58]][_0x2ba5[69]](_0x8ce8x1b)[_0x2ba5[45]](handleEntityNotFound(_0x8ce8x15,null,_0x2ba5[53]))[_0x2ba5[45]](respondWithResult(_0x8ce8x15,null,_0x2ba5[53]))[_0x2ba5[68]](handleError(_0x8ce8x15,null,_0x2ba5[53]))};exports[_0x2ba5[70]]= function(_0x8ce8x28,_0x8ce8x15){return db[_0x2ba5[58]][_0x2ba5[70]](_0x8ce8x28[_0x2ba5[71]],{})[_0x2ba5[45]](respondWithResult(_0x8ce8x15,201,_0x2ba5[70]))[_0x2ba5[68]](handleError(_0x8ce8x15,null,_0x2ba5[70]))};exports[_0x2ba5[46]]= function(_0x8ce8x28,_0x8ce8x15){if(_0x8ce8x28[_0x2ba5[71]][_0x2ba5[54]]){delete _0x8ce8x28[_0x2ba5[71]][_0x2ba5[54]]};return db[_0x2ba5[58]][_0x2ba5[69]]({where:{id:_0x8ce8x28[_0x2ba5[55]][_0x2ba5[54]]}})[_0x2ba5[45]](handleEntityNotFound(_0x8ce8x15,null,_0x2ba5[46]))[_0x2ba5[45]](saveUpdates(_0x8ce8x28[_0x2ba5[71]],null,_0x2ba5[46]))[_0x2ba5[45]](respondWithResult(_0x8ce8x15,null,_0x2ba5[46]))[_0x2ba5[68]](handleError(_0x8ce8x15,null,_0x2ba5[46]))};exports[_0x2ba5[48]]= function(_0x8ce8x28,_0x8ce8x15){return db[_0x2ba5[58]][_0x2ba5[69]]({where:{id:_0x8ce8x28[_0x2ba5[55]][_0x2ba5[54]]}})[_0x2ba5[45]](handleEntityNotFound(_0x8ce8x15,null,_0x2ba5[48]))[_0x2ba5[45]](removeEntity(_0x8ce8x15,null,_0x2ba5[48]))[_0x2ba5[68]](handleError(_0x8ce8x15,null,_0x2ba5[48]))}
\ No newline at end of file
+var _0x7b62=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x7b62[0];var jsonpatch=require(_0x7b62[1]);var rp=require(_0x7b62[2]);var moment=require(_0x7b62[3]);var BPromise=require(_0x7b62[4]);var util=require(_0x7b62[5]);var path=require(_0x7b62[6]);var sox=require(_0x7b62[7]);var ejs=require(_0x7b62[8]);var fs=require(_0x7b62[9]);var _=require(_0x7b62[10]);var squel=require(_0x7b62[11]);var crypto=require(_0x7b62[12]);var jsforce=require(_0x7b62[13]);var toCsv=require(_0x7b62[14]);var qs=require(_0x7b62[15]);var logger=require(_0x7b62[17])(_0x7b62[16]);var utils=require(_0x7b62[18]);var config=require(_0x7b62[19]);var db=require(_0x7b62[21])[_0x7b62[20]];function respondWithStatusCode(_0x4f9fx15,_0x4f9fx16,_0x4f9fx17){_0x4f9fx16= _0x4f9fx16|| 204;return function(_0x4f9fx18){if(_0x4f9fx18){logger[_0x7b62[24]](_0x7b62[22],_0x4f9fx17,_0x4f9fx16,_0x7b62[23]);logger[_0x7b62[26]](_0x7b62[25],_0x4f9fx17,_0x4f9fx16,_0x7b62[23]);return _0x4f9fx15[_0x7b62[27]](_0x4f9fx16)};return _0x4f9fx15[_0x7b62[29]](304)[_0x7b62[28]]()}}function respondWithResult(_0x4f9fx15,_0x4f9fx16,_0x4f9fx17){_0x4f9fx16= _0x4f9fx16|| 200;return function(_0x4f9fx18){if(_0x4f9fx18){logger[_0x7b62[24]](_0x7b62[22],_0x4f9fx17,_0x4f9fx16,_0x7b62[30]);logger[_0x7b62[26]](_0x7b62[25],_0x4f9fx17,_0x4f9fx16,_0x7b62[30],JSON[_0x7b62[31]](_0x4f9fx18));return _0x4f9fx15[_0x7b62[29]](_0x4f9fx16)[_0x7b62[32]](_0x4f9fx18)};return _0x4f9fx15[_0x7b62[29]](304)[_0x7b62[28]]()}}function respondWithFilteredResult(_0x4f9fx15,_0x4f9fx1b,_0x4f9fx17){return function(_0x4f9fx18){if(_0x4f9fx18){var _0x4f9fx1c=_0x4f9fx18[_0x7b62[33]],_0x4f9fx1d=_0x4f9fx1b[_0x7b62[34]],_0x4f9fx1e=_0x4f9fx1b[_0x7b62[34]]+ _0x4f9fx1b[_0x7b62[35]],_0x4f9fx16;if(_0x4f9fx1e>= _0x4f9fx1c){_0x4f9fx1e= _0x4f9fx1c;_0x4f9fx16= 200}else {_0x4f9fx16= 206};_0x4f9fx15[_0x7b62[29]](_0x4f9fx16);logger[_0x7b62[24]](_0x7b62[22],_0x4f9fx17,_0x4f9fx16,_0x7b62[36]);logger[_0x7b62[26]](_0x7b62[25],_0x4f9fx17,_0x4f9fx16,_0x7b62[30],JSON[_0x7b62[31]](_0x4f9fx18));return _0x4f9fx15[_0x7b62[40]](_0x7b62[37],_0x4f9fx1d+ _0x7b62[38]+ _0x4f9fx1e+ _0x7b62[39]+ _0x4f9fx1c)[_0x7b62[32]](_0x4f9fx18)};return null}}function patchUpdates(_0x4f9fx20){return function(_0x4f9fx18){try{jsonpatch[_0x7b62[41]](_0x4f9fx18,_0x4f9fx20,true)}catch(err){return BPromise[_0x7b62[42]](err)};return _0x4f9fx18[_0x7b62[43]]()}}function saveUpdates(_0x4f9fx22,_0x4f9fx16,_0x4f9fx17){return function(_0x4f9fx18){if(_0x4f9fx18){return _0x4f9fx18[_0x7b62[46]](_0x4f9fx22)[_0x7b62[45]](function(_0x4f9fx23){logger[_0x7b62[24]](_0x7b62[22],_0x4f9fx17,_0x4f9fx16,_0x7b62[44]);logger[_0x7b62[26]](_0x7b62[25],_0x4f9fx17,_0x4f9fx16,_0x7b62[44],JSON[_0x7b62[31]](_0x4f9fx18));return _0x4f9fx23})};return null}}function removeEntity(_0x4f9fx15,_0x4f9fx16,_0x4f9fx17){return function(_0x4f9fx18){if(_0x4f9fx18){return _0x4f9fx18[_0x7b62[48]]()[_0x7b62[45]](function(){logger[_0x7b62[24]](_0x7b62[22],_0x4f9fx17,_0x4f9fx16,_0x7b62[47]);logger[_0x7b62[26]](_0x7b62[25],_0x4f9fx17,_0x4f9fx16,_0x7b62[47],JSON[_0x7b62[31]](_0x4f9fx18));_0x4f9fx15[_0x7b62[29]](204)[_0x7b62[28]]()})}}}function handleEntityNotFound(_0x4f9fx15,_0x4f9fx16,_0x4f9fx17){return function(_0x4f9fx18){if(!_0x4f9fx18){logger[_0x7b62[50]](_0x7b62[22],_0x4f9fx17,404,_0x7b62[49]);_0x4f9fx15[_0x7b62[29]](404)[_0x7b62[28]]();return null};return _0x4f9fx18}}function handleError(_0x4f9fx15,_0x4f9fx16,_0x4f9fx17){_0x4f9fx16= _0x4f9fx16|| 500;return function(_0x4f9fx27){logger[_0x7b62[50]](_0x7b62[22],_0x4f9fx17,_0x4f9fx16,JSON[_0x7b62[31]](_0x4f9fx27));delete _0x4f9fx27[_0x7b62[51]];_0x4f9fx15[_0x7b62[29]](_0x4f9fx16)[_0x7b62[52]](_0x4f9fx27)}}exports[_0x7b62[53]]= function(_0x4f9fx28,_0x4f9fx15){var _0x4f9fx1b={raw:true,where:{id:_0x4f9fx28[_0x7b62[55]][_0x7b62[54]]}},_0x4f9fx29={};_0x4f9fx29[_0x7b62[56]]= _[_0x7b62[59]](db[_0x7b62[58]][_0x7b62[57]]);_0x4f9fx29[_0x7b62[60]]= _[_0x7b62[59]](_0x4f9fx28[_0x7b62[60]]);_0x4f9fx29[_0x7b62[61]]= _[_0x7b62[62]](_0x4f9fx29[_0x7b62[56]],_0x4f9fx29[_0x7b62[60]]);_0x4f9fx1b[_0x7b62[63]]= _[_0x7b62[62]](_0x4f9fx29[_0x7b62[56]],qs[_0x7b62[64]](_0x4f9fx28[_0x7b62[60]][_0x7b62[64]]));_0x4f9fx1b[_0x7b62[63]]= (_0x4f9fx1b[_0x7b62[63]][_0x7b62[65]])?_0x4f9fx1b[_0x7b62[63]]:_0x4f9fx29[_0x7b62[56]];_0x4f9fx1b= _[_0x7b62[67]]({},_0x4f9fx1b,_0x4f9fx28[_0x7b62[66]]);return db[_0x7b62[58]][_0x7b62[69]](_0x4f9fx1b)[_0x7b62[45]](handleEntityNotFound(_0x4f9fx15,null,_0x7b62[53]))[_0x7b62[45]](respondWithResult(_0x4f9fx15,null,_0x7b62[53]))[_0x7b62[68]](handleError(_0x4f9fx15,null,_0x7b62[53]))};exports[_0x7b62[70]]= function(_0x4f9fx28,_0x4f9fx15){return db[_0x7b62[58]][_0x7b62[70]](_0x4f9fx28[_0x7b62[71]],{})[_0x7b62[45]](respondWithResult(_0x4f9fx15,201,_0x7b62[70]))[_0x7b62[68]](handleError(_0x4f9fx15,null,_0x7b62[70]))};exports[_0x7b62[46]]= function(_0x4f9fx28,_0x4f9fx15){if(_0x4f9fx28[_0x7b62[71]][_0x7b62[54]]){delete _0x4f9fx28[_0x7b62[71]][_0x7b62[54]]};return db[_0x7b62[58]][_0x7b62[69]]({where:{id:_0x4f9fx28[_0x7b62[55]][_0x7b62[54]]}})[_0x7b62[45]](handleEntityNotFound(_0x4f9fx15,null,_0x7b62[46]))[_0x7b62[45]](saveUpdates(_0x4f9fx28[_0x7b62[71]],null,_0x7b62[46]))[_0x7b62[45]](respondWithResult(_0x4f9fx15,null,_0x7b62[46]))[_0x7b62[68]](handleError(_0x4f9fx15,null,_0x7b62[46]))};exports[_0x7b62[48]]= function(_0x4f9fx28,_0x4f9fx15){return db[_0x7b62[58]][_0x7b62[69]]({where:{id:_0x4f9fx28[_0x7b62[55]][_0x7b62[54]]}})[_0x7b62[45]](handleEntityNotFound(_0x4f9fx15,null,_0x7b62[48]))[_0x7b62[45]](removeEntity(_0x4f9fx15,null,_0x7b62[48]))[_0x7b62[68]](handleError(_0x4f9fx15,null,_0x7b62[48]))}
\ No newline at end of file
index ed2a40f..b27544f 100644 (file)
@@ -1 +1 @@
-var _0xbbfe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xbbfe[0];var _=require(_0xbbfe[1]);var util=require(_0xbbfe[2]);var logger=require(_0xbbfe[4])(_0xbbfe[3]);var attributes=require(_0xbbfe[5]);module[_0xbbfe[6]]= function(_0x9f7bx5,_0x9f7bx6){return _0x9f7bx5[_0xbbfe[9]](_0xbbfe[7],attributes,{tableName:_0xbbfe[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xc721=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xc721[0];var _=require(_0xc721[1]);var util=require(_0xc721[2]);var logger=require(_0xc721[4])(_0xc721[3]);var attributes=require(_0xc721[5]);module[_0xc721[6]]= function(_0x44d7x5,_0x44d7x6){return _0x44d7x5[_0xc721[9]](_0xc721[7],attributes,{tableName:_0xc721[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 85fcda9..6b54318 100644 (file)
@@ -1 +1 @@
-var _0x56bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x56bc[0];var _=require(_0x56bc[1]);var util=require(_0x56bc[2]);var moment=require(_0x56bc[3]);var BPromise=require(_0x56bc[4]);var db=require(_0x56bc[6])[_0x56bc[5]];var utils=require(_0x56bc[7]);var logger=require(_0x56bc[9])(_0x56bc[8]);var jayson=require(_0x56bc[10]);var client=jayson[_0x56bc[12]][_0x56bc[11]]({port:9002});function respondWithRpcPromise(_0x40afxb,_0x40afxc,_0x40afxd){return  new BPromise(function(_0x40afxe,_0x40afxf){return client[_0x56bc[25]](_0x40afxb,_0x40afxd)[_0x56bc[24]](function(_0x40afx11){logger[_0x56bc[17]](_0x56bc[13],_0x40afxc,_0x56bc[16]);logger[_0x56bc[20]](_0x56bc[18],_0x40afxc,_0x56bc[16],JSON[_0x56bc[19]](_0x40afx11));if(_0x40afx11[_0x56bc[14]]){if(_0x40afx11[_0x56bc[14]][_0x56bc[21]]=== 500){logger[_0x56bc[14]](_0x56bc[13],_0x40afxc,_0x40afx11[_0x56bc[14]][_0x56bc[22]]);return _0x40afxf(_0x40afx11[_0x56bc[14]][_0x56bc[22]])};logger[_0x56bc[14]](_0x56bc[13],_0x40afxc,_0x40afx11[_0x56bc[14]][_0x56bc[22]]);return _0x40afxe(_0x40afx11[_0x56bc[14]][_0x56bc[22]])}else {logger[_0x56bc[17]](_0x56bc[13],_0x40afxc,_0x56bc[16]);_0x40afxe(_0x40afx11[_0x56bc[23]][_0x56bc[22]])}})[_0x56bc[15]](function(_0x40afx10){logger[_0x56bc[14]](_0x56bc[13],_0x40afxc,_0x40afx10);_0x40afxf(_0x40afx10)})})}
\ No newline at end of file
+var _0xb254=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb254[0];var _=require(_0xb254[1]);var util=require(_0xb254[2]);var moment=require(_0xb254[3]);var BPromise=require(_0xb254[4]);var db=require(_0xb254[6])[_0xb254[5]];var utils=require(_0xb254[7]);var logger=require(_0xb254[9])(_0xb254[8]);var jayson=require(_0xb254[10]);var client=jayson[_0xb254[12]][_0xb254[11]]({port:9002});function respondWithRpcPromise(_0xb212xb,_0xb212xc,_0xb212xd){return  new BPromise(function(_0xb212xe,_0xb212xf){return client[_0xb254[25]](_0xb212xb,_0xb212xd)[_0xb254[24]](function(_0xb212x11){logger[_0xb254[17]](_0xb254[13],_0xb212xc,_0xb254[16]);logger[_0xb254[20]](_0xb254[18],_0xb212xc,_0xb254[16],JSON[_0xb254[19]](_0xb212x11));if(_0xb212x11[_0xb254[14]]){if(_0xb212x11[_0xb254[14]][_0xb254[21]]=== 500){logger[_0xb254[14]](_0xb254[13],_0xb212xc,_0xb212x11[_0xb254[14]][_0xb254[22]]);return _0xb212xf(_0xb212x11[_0xb254[14]][_0xb254[22]])};logger[_0xb254[14]](_0xb254[13],_0xb212xc,_0xb212x11[_0xb254[14]][_0xb254[22]]);return _0xb212xe(_0xb212x11[_0xb254[14]][_0xb254[22]])}else {logger[_0xb254[17]](_0xb254[13],_0xb212xc,_0xb254[16]);_0xb212xe(_0xb212x11[_0xb254[23]][_0xb254[22]])}})[_0xb254[15]](function(_0xb212x10){logger[_0xb254[14]](_0xb254[13],_0xb212xc,_0xb212x10);_0xb212xf(_0xb212x10)})})}
\ No newline at end of file
index d0b1615..e033085 100644 (file)
@@ -1 +1 @@
-var _0x19e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x19e7[0];var multer=require(_0x19e7[1]);var util=require(_0x19e7[2]);var path=require(_0x19e7[3]);var express=require(_0x19e7[4]);var router=express.Router();var auth=require(_0x19e7[5]);var config=require(_0x19e7[6]);var controller=require(_0x19e7[7]);router[_0x19e7[11]](_0x19e7[8],auth[_0x19e7[9]](),controller[_0x19e7[10]]);router[_0x19e7[14]](_0x19e7[12],auth[_0x19e7[9]](),controller[_0x19e7[13]]);router[_0x19e7[16]](_0x19e7[8],auth[_0x19e7[9]](),controller[_0x19e7[15]]);router[_0x19e7[18]](_0x19e7[8],auth[_0x19e7[9]](),controller[_0x19e7[17]]);module[_0x19e7[19]]= router
\ No newline at end of file
+var _0x9137=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9137[0];var multer=require(_0x9137[1]);var util=require(_0x9137[2]);var path=require(_0x9137[3]);var express=require(_0x9137[4]);var router=express.Router();var auth=require(_0x9137[5]);var config=require(_0x9137[6]);var controller=require(_0x9137[7]);router[_0x9137[11]](_0x9137[8],auth[_0x9137[9]](),controller[_0x9137[10]]);router[_0x9137[14]](_0x9137[12],auth[_0x9137[9]](),controller[_0x9137[13]]);router[_0x9137[16]](_0x9137[8],auth[_0x9137[9]](),controller[_0x9137[15]]);router[_0x9137[18]](_0x9137[8],auth[_0x9137[9]](),controller[_0x9137[17]]);module[_0x9137[19]]= router
\ No newline at end of file
index 3f038e0..26bced9 100644 (file)
@@ -1 +1 @@
-var _0x8fd3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x8fd3[0];var Sequelize=require(_0x8fd3[1]);module[_0x8fd3[2]]= {username:{type:Sequelize[_0x8fd3[3]]},email:{type:Sequelize[_0x8fd3[3]],validate:{isEmail:true}},text:{type:Sequelize[_0x8fd3[4]]},read:{type:Sequelize[_0x8fd3[5]],defaultValue:false}}
\ No newline at end of file
+var _0xcb2b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xcb2b[0];var Sequelize=require(_0xcb2b[1]);module[_0xcb2b[2]]= {username:{type:Sequelize[_0xcb2b[3]]},email:{type:Sequelize[_0xcb2b[3]],validate:{isEmail:true}},text:{type:Sequelize[_0xcb2b[4]]},read:{type:Sequelize[_0xcb2b[5]],defaultValue:false}}
\ No newline at end of file
index 187b83c..ee66a95 100644 (file)
@@ -1 +1 @@
-var _0xad5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xad5d[0];var jsonpatch=require(_0xad5d[1]);var rp=require(_0xad5d[2]);var moment=require(_0xad5d[3]);var BPromise=require(_0xad5d[4]);var util=require(_0xad5d[5]);var path=require(_0xad5d[6]);var sox=require(_0xad5d[7]);var ejs=require(_0xad5d[8]);var fs=require(_0xad5d[9]);var _=require(_0xad5d[10]);var squel=require(_0xad5d[11]);var crypto=require(_0xad5d[12]);var jsforce=require(_0xad5d[13]);var toCsv=require(_0xad5d[14]);var qs=require(_0xad5d[15]);var logger=require(_0xad5d[17])(_0xad5d[16]);var utils=require(_0xad5d[18]);var config=require(_0xad5d[19]);var db=require(_0xad5d[21])[_0xad5d[20]];function respondWithStatusCode(_0x6511x15,_0x6511x16,_0x6511x17){_0x6511x16= _0x6511x16|| 204;return function(_0x6511x18){if(_0x6511x18){logger[_0xad5d[24]](_0xad5d[22],_0x6511x17,_0x6511x16,_0xad5d[23]);logger[_0xad5d[26]](_0xad5d[25],_0x6511x17,_0x6511x16,_0xad5d[23]);return _0x6511x15[_0xad5d[27]](_0x6511x16)};return _0x6511x15[_0xad5d[29]](304)[_0xad5d[28]]()}}function respondWithResult(_0x6511x15,_0x6511x16,_0x6511x17){_0x6511x16= _0x6511x16|| 200;return function(_0x6511x18){if(_0x6511x18){logger[_0xad5d[24]](_0xad5d[22],_0x6511x17,_0x6511x16,_0xad5d[30]);logger[_0xad5d[26]](_0xad5d[25],_0x6511x17,_0x6511x16,_0xad5d[30],JSON[_0xad5d[31]](_0x6511x18));return _0x6511x15[_0xad5d[29]](_0x6511x16)[_0xad5d[32]](_0x6511x18)};return _0x6511x15[_0xad5d[29]](304)[_0xad5d[28]]()}}function respondWithFilteredResult(_0x6511x15,_0x6511x1b,_0x6511x17){return function(_0x6511x18){if(_0x6511x18){var _0x6511x1c=_0x6511x18[_0xad5d[33]],_0x6511x1d=_0x6511x1b[_0xad5d[34]],_0x6511x1e=_0x6511x1b[_0xad5d[34]]+ _0x6511x1b[_0xad5d[35]],_0x6511x16;if(_0x6511x1e>= _0x6511x1c){_0x6511x1e= _0x6511x1c;_0x6511x16= 200}else {_0x6511x16= 206};_0x6511x15[_0xad5d[29]](_0x6511x16);logger[_0xad5d[24]](_0xad5d[22],_0x6511x17,_0x6511x16,_0xad5d[36]);logger[_0xad5d[26]](_0xad5d[25],_0x6511x17,_0x6511x16,_0xad5d[30],JSON[_0xad5d[31]](_0x6511x18));return _0x6511x15[_0xad5d[40]](_0xad5d[37],_0x6511x1d+ _0xad5d[38]+ _0x6511x1e+ _0xad5d[39]+ _0x6511x1c)[_0xad5d[32]](_0x6511x18)};return null}}function patchUpdates(_0x6511x20){return function(_0x6511x18){try{jsonpatch[_0xad5d[41]](_0x6511x18,_0x6511x20,true)}catch(err){return BPromise[_0xad5d[42]](err)};return _0x6511x18[_0xad5d[43]]()}}function saveUpdates(_0x6511x22,_0x6511x16,_0x6511x17){return function(_0x6511x18){if(_0x6511x18){return _0x6511x18[_0xad5d[46]](_0x6511x22)[_0xad5d[45]](function(_0x6511x23){logger[_0xad5d[24]](_0xad5d[22],_0x6511x17,_0x6511x16,_0xad5d[44]);logger[_0xad5d[26]](_0xad5d[25],_0x6511x17,_0x6511x16,_0xad5d[44],JSON[_0xad5d[31]](_0x6511x18));return _0x6511x23})};return null}}function removeEntity(_0x6511x15,_0x6511x16,_0x6511x17){return function(_0x6511x18){if(_0x6511x18){return _0x6511x18[_0xad5d[48]]()[_0xad5d[45]](function(){logger[_0xad5d[24]](_0xad5d[22],_0x6511x17,_0x6511x16,_0xad5d[47]);logger[_0xad5d[26]](_0xad5d[25],_0x6511x17,_0x6511x16,_0xad5d[47],JSON[_0xad5d[31]](_0x6511x18));_0x6511x15[_0xad5d[29]](204)[_0xad5d[28]]()})}}}function handleEntityNotFound(_0x6511x15,_0x6511x16,_0x6511x17){return function(_0x6511x18){if(!_0x6511x18){logger[_0xad5d[50]](_0xad5d[22],_0x6511x17,404,_0xad5d[49]);_0x6511x15[_0xad5d[29]](404)[_0xad5d[28]]();return null};return _0x6511x18}}function handleError(_0x6511x15,_0x6511x16,_0x6511x17){_0x6511x16= _0x6511x16|| 500;return function(_0x6511x27){logger[_0xad5d[50]](_0xad5d[22],_0x6511x17,_0x6511x16,JSON[_0xad5d[31]](_0x6511x27));delete _0x6511x27[_0xad5d[51]];_0x6511x15[_0xad5d[29]](_0x6511x16)[_0xad5d[52]](_0x6511x27)}}exports[_0xad5d[53]]= function(_0x6511x28,_0x6511x15){var _0x6511x1b={raw:false,where:{id:_0x6511x28[_0xad5d[55]][_0xad5d[54]]}},_0x6511x29={};_0x6511x29[_0xad5d[56]]= _[_0xad5d[59]](db[_0xad5d[58]][_0xad5d[57]]);_0x6511x29[_0xad5d[60]]= _[_0xad5d[59]](_0x6511x28[_0xad5d[60]]);_0x6511x29[_0xad5d[61]]= _[_0xad5d[62]](_0x6511x29[_0xad5d[56]],_0x6511x29[_0xad5d[60]]);_0x6511x1b[_0xad5d[63]]= _[_0xad5d[62]](_0x6511x29[_0xad5d[56]],qs[_0xad5d[64]](_0x6511x28[_0xad5d[60]][_0xad5d[64]]));_0x6511x1b[_0xad5d[63]]= (_0x6511x1b[_0xad5d[63]][_0xad5d[65]])?_0x6511x1b[_0xad5d[63]]:_0x6511x29[_0xad5d[56]];_0x6511x1b= _[_0xad5d[67]]({},_0x6511x1b,_0x6511x28[_0xad5d[66]]);return db[_0xad5d[58]][_0xad5d[69]](_0x6511x1b)[_0xad5d[45]](handleEntityNotFound(_0x6511x15,null,_0xad5d[53]))[_0xad5d[45]](respondWithResult(_0x6511x15,null,_0xad5d[53]))[_0xad5d[68]](handleError(_0x6511x15,null,_0xad5d[53]))};exports[_0xad5d[46]]= function(_0x6511x28,_0x6511x15){if(_0x6511x28[_0xad5d[70]][_0xad5d[54]]){delete _0x6511x28[_0xad5d[70]][_0xad5d[54]]};return db[_0xad5d[58]][_0xad5d[69]]({where:{id:_0x6511x28[_0xad5d[55]][_0xad5d[54]]}})[_0xad5d[45]](handleEntityNotFound(_0x6511x15,null,_0xad5d[46]))[_0xad5d[45]](saveUpdates(_0x6511x28[_0xad5d[70]],null,_0xad5d[46]))[_0xad5d[45]](respondWithResult(_0x6511x15,null,_0xad5d[46]))[_0xad5d[68]](handleError(_0x6511x15,null,_0xad5d[46]))};exports[_0xad5d[48]]= function(_0x6511x28,_0x6511x15){return db[_0xad5d[58]][_0xad5d[69]]({where:{id:_0x6511x28[_0xad5d[55]][_0xad5d[54]]}})[_0xad5d[45]](handleEntityNotFound(_0x6511x15,null,_0xad5d[48]))[_0xad5d[45]](removeEntity(_0x6511x15,null,_0xad5d[48]))[_0xad5d[68]](handleError(_0x6511x15,null,_0xad5d[48]))}
\ No newline at end of file
+var _0x312b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x312b[0];var jsonpatch=require(_0x312b[1]);var rp=require(_0x312b[2]);var moment=require(_0x312b[3]);var BPromise=require(_0x312b[4]);var util=require(_0x312b[5]);var path=require(_0x312b[6]);var sox=require(_0x312b[7]);var ejs=require(_0x312b[8]);var fs=require(_0x312b[9]);var _=require(_0x312b[10]);var squel=require(_0x312b[11]);var crypto=require(_0x312b[12]);var jsforce=require(_0x312b[13]);var toCsv=require(_0x312b[14]);var qs=require(_0x312b[15]);var logger=require(_0x312b[17])(_0x312b[16]);var utils=require(_0x312b[18]);var config=require(_0x312b[19]);var db=require(_0x312b[21])[_0x312b[20]];function respondWithStatusCode(_0x736bx15,_0x736bx16,_0x736bx17){_0x736bx16= _0x736bx16|| 204;return function(_0x736bx18){if(_0x736bx18){logger[_0x312b[24]](_0x312b[22],_0x736bx17,_0x736bx16,_0x312b[23]);logger[_0x312b[26]](_0x312b[25],_0x736bx17,_0x736bx16,_0x312b[23]);return _0x736bx15[_0x312b[27]](_0x736bx16)};return _0x736bx15[_0x312b[29]](304)[_0x312b[28]]()}}function respondWithResult(_0x736bx15,_0x736bx16,_0x736bx17){_0x736bx16= _0x736bx16|| 200;return function(_0x736bx18){if(_0x736bx18){logger[_0x312b[24]](_0x312b[22],_0x736bx17,_0x736bx16,_0x312b[30]);logger[_0x312b[26]](_0x312b[25],_0x736bx17,_0x736bx16,_0x312b[30],JSON[_0x312b[31]](_0x736bx18));return _0x736bx15[_0x312b[29]](_0x736bx16)[_0x312b[32]](_0x736bx18)};return _0x736bx15[_0x312b[29]](304)[_0x312b[28]]()}}function respondWithFilteredResult(_0x736bx15,_0x736bx1b,_0x736bx17){return function(_0x736bx18){if(_0x736bx18){var _0x736bx1c=_0x736bx18[_0x312b[33]],_0x736bx1d=_0x736bx1b[_0x312b[34]],_0x736bx1e=_0x736bx1b[_0x312b[34]]+ _0x736bx1b[_0x312b[35]],_0x736bx16;if(_0x736bx1e>= _0x736bx1c){_0x736bx1e= _0x736bx1c;_0x736bx16= 200}else {_0x736bx16= 206};_0x736bx15[_0x312b[29]](_0x736bx16);logger[_0x312b[24]](_0x312b[22],_0x736bx17,_0x736bx16,_0x312b[36]);logger[_0x312b[26]](_0x312b[25],_0x736bx17,_0x736bx16,_0x312b[30],JSON[_0x312b[31]](_0x736bx18));return _0x736bx15[_0x312b[40]](_0x312b[37],_0x736bx1d+ _0x312b[38]+ _0x736bx1e+ _0x312b[39]+ _0x736bx1c)[_0x312b[32]](_0x736bx18)};return null}}function patchUpdates(_0x736bx20){return function(_0x736bx18){try{jsonpatch[_0x312b[41]](_0x736bx18,_0x736bx20,true)}catch(err){return BPromise[_0x312b[42]](err)};return _0x736bx18[_0x312b[43]]()}}function saveUpdates(_0x736bx22,_0x736bx16,_0x736bx17){return function(_0x736bx18){if(_0x736bx18){return _0x736bx18[_0x312b[46]](_0x736bx22)[_0x312b[45]](function(_0x736bx23){logger[_0x312b[24]](_0x312b[22],_0x736bx17,_0x736bx16,_0x312b[44]);logger[_0x312b[26]](_0x312b[25],_0x736bx17,_0x736bx16,_0x312b[44],JSON[_0x312b[31]](_0x736bx18));return _0x736bx23})};return null}}function removeEntity(_0x736bx15,_0x736bx16,_0x736bx17){return function(_0x736bx18){if(_0x736bx18){return _0x736bx18[_0x312b[48]]()[_0x312b[45]](function(){logger[_0x312b[24]](_0x312b[22],_0x736bx17,_0x736bx16,_0x312b[47]);logger[_0x312b[26]](_0x312b[25],_0x736bx17,_0x736bx16,_0x312b[47],JSON[_0x312b[31]](_0x736bx18));_0x736bx15[_0x312b[29]](204)[_0x312b[28]]()})}}}function handleEntityNotFound(_0x736bx15,_0x736bx16,_0x736bx17){return function(_0x736bx18){if(!_0x736bx18){logger[_0x312b[50]](_0x312b[22],_0x736bx17,404,_0x312b[49]);_0x736bx15[_0x312b[29]](404)[_0x312b[28]]();return null};return _0x736bx18}}function handleError(_0x736bx15,_0x736bx16,_0x736bx17){_0x736bx16= _0x736bx16|| 500;return function(_0x736bx27){logger[_0x312b[50]](_0x312b[22],_0x736bx17,_0x736bx16,JSON[_0x312b[31]](_0x736bx27));delete _0x736bx27[_0x312b[51]];_0x736bx15[_0x312b[29]](_0x736bx16)[_0x312b[52]](_0x736bx27)}}exports[_0x312b[53]]= function(_0x736bx28,_0x736bx15){var _0x736bx1b={raw:false,where:{id:_0x736bx28[_0x312b[55]][_0x312b[54]]}},_0x736bx29={};_0x736bx29[_0x312b[56]]= _[_0x312b[59]](db[_0x312b[58]][_0x312b[57]]);_0x736bx29[_0x312b[60]]= _[_0x312b[59]](_0x736bx28[_0x312b[60]]);_0x736bx29[_0x312b[61]]= _[_0x312b[62]](_0x736bx29[_0x312b[56]],_0x736bx29[_0x312b[60]]);_0x736bx1b[_0x312b[63]]= _[_0x312b[62]](_0x736bx29[_0x312b[56]],qs[_0x312b[64]](_0x736bx28[_0x312b[60]][_0x312b[64]]));_0x736bx1b[_0x312b[63]]= (_0x736bx1b[_0x312b[63]][_0x312b[65]])?_0x736bx1b[_0x312b[63]]:_0x736bx29[_0x312b[56]];_0x736bx1b= _[_0x312b[67]]({},_0x736bx1b,_0x736bx28[_0x312b[66]]);return db[_0x312b[58]][_0x312b[69]](_0x736bx1b)[_0x312b[45]](handleEntityNotFound(_0x736bx15,null,_0x312b[53]))[_0x312b[45]](respondWithResult(_0x736bx15,null,_0x312b[53]))[_0x312b[68]](handleError(_0x736bx15,null,_0x312b[53]))};exports[_0x312b[46]]= function(_0x736bx28,_0x736bx15){if(_0x736bx28[_0x312b[70]][_0x312b[54]]){delete _0x736bx28[_0x312b[70]][_0x312b[54]]};return db[_0x312b[58]][_0x312b[69]]({where:{id:_0x736bx28[_0x312b[55]][_0x312b[54]]}})[_0x312b[45]](handleEntityNotFound(_0x736bx15,null,_0x312b[46]))[_0x312b[45]](saveUpdates(_0x736bx28[_0x312b[70]],null,_0x312b[46]))[_0x312b[45]](respondWithResult(_0x736bx15,null,_0x312b[46]))[_0x312b[68]](handleError(_0x736bx15,null,_0x312b[46]))};exports[_0x312b[48]]= function(_0x736bx28,_0x736bx15){return db[_0x312b[58]][_0x312b[69]]({where:{id:_0x736bx28[_0x312b[55]][_0x312b[54]]}})[_0x312b[45]](handleEntityNotFound(_0x736bx15,null,_0x312b[48]))[_0x312b[45]](removeEntity(_0x736bx15,null,_0x312b[48]))[_0x312b[68]](handleError(_0x736bx15,null,_0x312b[48]))}
\ No newline at end of file
index 2135792..eed6f37 100644 (file)
@@ -1 +1 @@
-var _0x543a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x543a[0];var _=require(_0x543a[1]);var util=require(_0x543a[2]);var logger=require(_0x543a[4])(_0x543a[3]);var attributes=require(_0x543a[5]);module[_0x543a[6]]= function(_0x6d46x5,_0x6d46x6){return _0x6d46x5[_0x543a[9]](_0x543a[7],attributes,{tableName:_0x543a[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xc9ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xc9ad[0];var _=require(_0xc9ad[1]);var util=require(_0xc9ad[2]);var logger=require(_0xc9ad[4])(_0xc9ad[3]);var attributes=require(_0xc9ad[5]);module[_0xc9ad[6]]= function(_0xcaebx5,_0xcaebx6){return _0xcaebx5[_0xc9ad[9]](_0xc9ad[7],attributes,{tableName:_0xc9ad[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
index 5235df5..de4643f 100644 (file)
@@ -1 +1 @@
-var _0x1ef3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1ef3[0];var _=require(_0x1ef3[1]);var util=require(_0x1ef3[2]);var moment=require(_0x1ef3[3]);var BPromise=require(_0x1ef3[4]);var db=require(_0x1ef3[6])[_0x1ef3[5]];var utils=require(_0x1ef3[7]);var logger=require(_0x1ef3[9])(_0x1ef3[8]);var jayson=require(_0x1ef3[10]);var client=jayson[_0x1ef3[12]][_0x1ef3[11]]({port:9002});function respondWithRpcPromise(_0x89b9xb,_0x89b9xc,_0x89b9xd){return  new BPromise(function(_0x89b9xe,_0x89b9xf){return client[_0x1ef3[25]](_0x89b9xb,_0x89b9xd)[_0x1ef3[24]](function(_0x89b9x11){logger[_0x1ef3[17]](_0x1ef3[13],_0x89b9xc,_0x1ef3[16]);logger[_0x1ef3[20]](_0x1ef3[18],_0x89b9xc,_0x1ef3[16],JSON[_0x1ef3[19]](_0x89b9x11));if(_0x89b9x11[_0x1ef3[14]]){if(_0x89b9x11[_0x1ef3[14]][_0x1ef3[21]]=== 500){logger[_0x1ef3[14]](_0x1ef3[13],_0x89b9xc,_0x89b9x11[_0x1ef3[14]][_0x1ef3[22]]);return _0x89b9xf(_0x89b9x11[_0x1ef3[14]][_0x1ef3[22]])};logger[_0x1ef3[14]](_0x1ef3[13],_0x89b9xc,_0x89b9x11[_0x1ef3[14]][_0x1ef3[22]]);return _0x89b9xe(_0x89b9x11[_0x1ef3[14]][_0x1ef3[22]])}else {logger[_0x1ef3[17]](_0x1ef3[13],_0x89b9xc,_0x1ef3[16]);_0x89b9xe(_0x89b9x11[_0x1ef3[23]][_0x1ef3[22]])}})[_0x1ef3[15]](function(_0x89b9x10){logger[_0x1ef3[14]](_0x1ef3[13],_0x89b9xc,_0x89b9x10);_0x89b9xf(_0x89b9x10)})})}
\ No newline at end of file
+var _0x4ee3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4ee3[0];var _=require(_0x4ee3[1]);var util=require(_0x4ee3[2]);var moment=require(_0x4ee3[3]);var BPromise=require(_0x4ee3[4]);var db=require(_0x4ee3[6])[_0x4ee3[5]];var utils=require(_0x4ee3[7]);var logger=require(_0x4ee3[9])(_0x4ee3[8]);var jayson=require(_0x4ee3[10]);var client=jayson[_0x4ee3[12]][_0x4ee3[11]]({port:9002});function respondWithRpcPromise(_0x7a1exb,_0x7a1exc,_0x7a1exd){return  new BPromise(function(_0x7a1exe,_0x7a1exf){return client[_0x4ee3[25]](_0x7a1exb,_0x7a1exd)[_0x4ee3[24]](function(_0x7a1ex11){logger[_0x4ee3[17]](_0x4ee3[13],_0x7a1exc,_0x4ee3[16]);logger[_0x4ee3[20]](_0x4ee3[18],_0x7a1exc,_0x4ee3[16],JSON[_0x4ee3[19]](_0x7a1ex11));if(_0x7a1ex11[_0x4ee3[14]]){if(_0x7a1ex11[_0x4ee3[14]][_0x4ee3[21]]=== 500){logger[_0x4ee3[14]](_0x4ee3[13],_0x7a1exc,_0x7a1ex11[_0x4ee3[14]][_0x4ee3[22]]);return _0x7a1exf(_0x7a1ex11[_0x4ee3[14]][_0x4ee3[22]])};logger[_0x4ee3[14]](_0x4ee3[13],_0x7a1exc,_0x7a1ex11[_0x4ee3[14]][_0x4ee3[22]]);return _0x7a1exe(_0x7a1ex11[_0x4ee3[14]][_0x4ee3[22]])}else {logger[_0x4ee3[17]](_0x4ee3[13],_0x7a1exc,_0x4ee3[16]);_0x7a1exe(_0x7a1ex11[_0x4ee3[23]][_0x4ee3[22]])}})[_0x4ee3[15]](function(_0x7a1ex10){logger[_0x4ee3[14]](_0x4ee3[13],_0x7a1exc,_0x7a1ex10);_0x7a1exf(_0x7a1ex10)})})}
\ No newline at end of file
index 67dcf16..2aac8c4 100644 (file)
@@ -1 +1 @@
-var _0x912d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x912d[0];var multer=require(_0x912d[1]);var util=require(_0x912d[2]);var path=require(_0x912d[3]);var express=require(_0x912d[4]);var router=express.Router();var auth=require(_0x912d[5]);var config=require(_0x912d[6]);var controller=require(_0x912d[7]);router[_0x912d[11]](_0x912d[8],auth[_0x912d[9]](),controller[_0x912d[10]]);router[_0x912d[13]](_0x912d[8],auth[_0x912d[9]](),controller[_0x912d[12]]);router[_0x912d[15]](_0x912d[8],auth[_0x912d[9]](),controller[_0x912d[14]]);module[_0x912d[16]]= router
\ No newline at end of file
+var _0xec47=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xec47[0];var multer=require(_0xec47[1]);var util=require(_0xec47[2]);var path=require(_0xec47[3]);var express=require(_0xec47[4]);var router=express.Router();var auth=require(_0xec47[5]);var config=require(_0xec47[6]);var controller=require(_0xec47[7]);router[_0xec47[11]](_0xec47[8],auth[_0xec47[9]](),controller[_0xec47[10]]);router[_0xec47[13]](_0xec47[8],auth[_0xec47[9]](),controller[_0xec47[12]]);router[_0xec47[15]](_0xec47[8],auth[_0xec47[9]](),controller[_0xec47[14]]);module[_0xec47[16]]= router
\ No newline at end of file
index a1365fb..90c7ca2 100644 (file)
@@ -1 +1 @@
-var _0x9899=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x67\x72\x6F\x75\x70","\x53\x54\x52\x49\x4E\x47","\x74\x6F\x6B\x65\x6E","\x4E\x45\x57","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x41\x42\x41\x4E\x44\x4F\x4E","\x55\x4E\x4D\x41\x4E\x41\x47\x45\x44","\x67\x6F\x6F\x64","\x62\x61\x64","\x54\x45\x58\x54","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x9899[0];var Sequelize=require(_0x9899[1]);module[_0x9899[2]]= {type:{type:Sequelize.ENUM(_0x9899[3],_0x9899[4],_0x9899[5]),allowNull:false},token:{type:Sequelize[_0x9899[6]],unique:_0x9899[7]},status:{type:Sequelize.ENUM(_0x9899[8],_0x9899[9],_0x9899[10],_0x9899[11],_0x9899[12]),defaultValue:_0x9899[8]},rating:{type:Sequelize.ENUM(_0x9899[13],_0x9899[14])},ratingMessage:{type:Sequelize[_0x9899[15]]},completeReason:{type:Sequelize.ENUM(_0x9899[16],_0x9899[17])},ChatVisitorId:{type:Sequelize[_0x9899[18]],unique:_0x9899[7]},waiting:{type:Sequelize[_0x9899[19]],defaultValue:false},tags:{type:Sequelize[_0x9899[15]],get:function(){var _0x9a19x2;if(this[_0x9899[21]](_0x9899[20])){_0x9a19x2= this[_0x9899[21]](_0x9899[20])[_0x9899[23]](_0x9899[22]);_0x9a19x2[_0x9899[24]]()}else {_0x9a19x2= []};return _0x9a19x2},set:function(_0x9a19x3){this[_0x9899[27]](_0x9899[20],_0x9a19x3&& _0x9a19x3[_0x9899[25]]?_0x9a19x3[_0x9899[26]](_0x9899[22])+ _0x9899[22]:null)}},disposition:{type:Sequelize[_0x9899[6]]},openReason:{type:Sequelize[_0x9899[6]]},contact:{type:Sequelize[_0x9899[6]]},website:{type:Sequelize[_0x9899[6]]}}
\ No newline at end of file
+var _0x802e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x67\x72\x6F\x75\x70","\x53\x54\x52\x49\x4E\x47","\x74\x6F\x6B\x65\x6E","\x4E\x45\x57","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x41\x42\x41\x4E\x44\x4F\x4E","\x55\x4E\x4D\x41\x4E\x41\x47\x45\x44","\x67\x6F\x6F\x64","\x62\x61\x64","\x54\x45\x58\x54","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x802e[0];var Sequelize=require(_0x802e[1]);module[_0x802e[2]]= {type:{type:Sequelize.ENUM(_0x802e[3],_0x802e[4],_0x802e[5]),allowNull:false},token:{type:Sequelize[_0x802e[6]],unique:_0x802e[7]},status:{type:Sequelize.ENUM(_0x802e[8],_0x802e[9],_0x802e[10],_0x802e[11],_0x802e[12]),defaultValue:_0x802e[8]},rating:{type:Sequelize.ENUM(_0x802e[13],_0x802e[14])},ratingMessage:{type:Sequelize[_0x802e[15]]},completeReason:{type:Sequelize.ENUM(_0x802e[16],_0x802e[17])},ChatVisitorId:{type:Sequelize[_0x802e[18]],unique:_0x802e[7]},waiting:{type:Sequelize[_0x802e[19]],defaultValue:false},tags:{type:Sequelize[_0x802e[15]],get:function(){var _0xacdcx2;if(this[_0x802e[21]](_0x802e[20])){_0xacdcx2= this[_0x802e[21]](_0x802e[20])[_0x802e[23]](_0x802e[22]);_0xacdcx2[_0x802e[24]]()}else {_0xacdcx2= []};return _0xacdcx2},set:function(_0xacdcx3){this[_0x802e[27]](_0x802e[20],_0xacdcx3&& _0xacdcx3[_0x802e[25]]?_0xacdcx3[_0x802e[26]](_0x802e[22])+ _0x802e[22]:null)}},disposition:{type:Sequelize[_0x802e[6]]},openReason:{type:Sequelize[_0x802e[6]]},contact:{type:Sequelize[_0x802e[6]]},website:{type:Sequelize[_0x802e[6]]}}
\ No newline at end of file
index 426e19c..c20a3f9 100644 (file)
@@ -1 +1 @@
-var _0x38c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x38c3[0];var jsonpatch=require(_0x38c3[1]);var rp=require(_0x38c3[2]);var moment=require(_0x38c3[3]);var BPromise=require(_0x38c3[4]);var util=require(_0x38c3[5]);var path=require(_0x38c3[6]);var sox=require(_0x38c3[7]);var ejs=require(_0x38c3[8]);var fs=require(_0x38c3[9]);var _=require(_0x38c3[10]);var squel=require(_0x38c3[11]);var crypto=require(_0x38c3[12]);var jsforce=require(_0x38c3[13]);var toCsv=require(_0x38c3[14]);var qs=require(_0x38c3[15]);var logger=require(_0x38c3[17])(_0x38c3[16]);var utils=require(_0x38c3[18]);var config=require(_0x38c3[19]);var db=require(_0x38c3[21])[_0x38c3[20]];function respondWithStatusCode(_0xd52ax15,_0xd52ax16,_0xd52ax17){_0xd52ax16= _0xd52ax16|| 204;return function(_0xd52ax18){if(_0xd52ax18){logger[_0x38c3[24]](_0x38c3[22],_0xd52ax17,_0xd52ax16,_0x38c3[23]);logger[_0x38c3[26]](_0x38c3[25],_0xd52ax17,_0xd52ax16,_0x38c3[23]);return _0xd52ax15[_0x38c3[27]](_0xd52ax16)};return _0xd52ax15[_0x38c3[29]](304)[_0x38c3[28]]()}}function respondWithResult(_0xd52ax15,_0xd52ax16,_0xd52ax17){_0xd52ax16= _0xd52ax16|| 200;return function(_0xd52ax18){if(_0xd52ax18){logger[_0x38c3[24]](_0x38c3[22],_0xd52ax17,_0xd52ax16,_0x38c3[30]);logger[_0x38c3[26]](_0x38c3[25],_0xd52ax17,_0xd52ax16,_0x38c3[30],JSON[_0x38c3[31]](_0xd52ax18));return _0xd52ax15[_0x38c3[29]](_0xd52ax16)[_0x38c3[32]](_0xd52ax18)};return _0xd52ax15[_0x38c3[29]](304)[_0x38c3[28]]()}}function respondWithFilteredResult(_0xd52ax15,_0xd52ax1b,_0xd52ax17){return function(_0xd52ax18){if(_0xd52ax18){var _0xd52ax1c=_0xd52ax18[_0x38c3[33]],_0xd52ax1d=_0xd52ax1b[_0x38c3[34]],_0xd52ax1e=_0xd52ax1b[_0x38c3[34]]+ _0xd52ax1b[_0x38c3[35]],_0xd52ax16;if(_0xd52ax1e>= _0xd52ax1c){_0xd52ax1e= _0xd52ax1c;_0xd52ax16= 200}else {_0xd52ax16= 206};_0xd52ax15[_0x38c3[29]](_0xd52ax16);logger[_0x38c3[24]](_0x38c3[22],_0xd52ax17,_0xd52ax16,_0x38c3[36]);logger[_0x38c3[26]](_0x38c3[25],_0xd52ax17,_0xd52ax16,_0x38c3[30],JSON[_0x38c3[31]](_0xd52ax18));return _0xd52ax15[_0x38c3[40]](_0x38c3[37],_0xd52ax1d+ _0x38c3[38]+ _0xd52ax1e+ _0x38c3[39]+ _0xd52ax1c)[_0x38c3[32]](_0xd52ax18)};return null}}function patchUpdates(_0xd52ax20){return function(_0xd52ax18){try{jsonpatch[_0x38c3[41]](_0xd52ax18,_0xd52ax20,true)}catch(err){return BPromise[_0x38c3[42]](err)};return _0xd52ax18[_0x38c3[43]]()}}function saveUpdates(_0xd52ax22,_0xd52ax16,_0xd52ax17){return function(_0xd52ax18){if(_0xd52ax18){return _0xd52ax18[_0x38c3[46]](_0xd52ax22)[_0x38c3[45]](function(_0xd52ax23){logger[_0x38c3[24]](_0x38c3[22],_0xd52ax17,_0xd52ax16,_0x38c3[44]);logger[_0x38c3[26]](_0x38c3[25],_0xd52ax17,_0xd52ax16,_0x38c3[44],JSON[_0x38c3[31]](_0xd52ax18));return _0xd52ax23})};return null}}function removeEntity(_0xd52ax15,_0xd52ax16,_0xd52ax17){return function(_0xd52ax18){if(_0xd52ax18){return _0xd52ax18[_0x38c3[48]]()[_0x38c3[45]](function(){logger[_0x38c3[24]](_0x38c3[22],_0xd52ax17,_0xd52ax16,_0x38c3[47]);logger[_0x38c3[26]](_0x38c3[25],_0xd52ax17,_0xd52ax16,_0x38c3[47],JSON[_0x38c3[31]](_0xd52ax18));_0xd52ax15[_0x38c3[29]](204)[_0x38c3[28]]()})}}}function handleEntityNotFound(_0xd52ax15,_0xd52ax16,_0xd52ax17){return function(_0xd52ax18){if(!_0xd52ax18){logger[_0x38c3[50]](_0x38c3[22],_0xd52ax17,404,_0x38c3[49]);_0xd52ax15[_0x38c3[29]](404)[_0x38c3[28]]();return null};return _0xd52ax18}}function handleError(_0xd52ax15,_0xd52ax16,_0xd52ax17){_0xd52ax16= _0xd52ax16|| 500;return function(_0xd52ax27){logger[_0x38c3[50]](_0x38c3[22],_0xd52ax17,_0xd52ax16,JSON[_0x38c3[31]](_0xd52ax27));delete _0xd52ax27[_0x38c3[51]];_0xd52ax15[_0x38c3[29]](_0xd52ax16)[_0x38c3[52]](_0xd52ax27)}}exports[_0x38c3[53]]= function(_0xd52ax28,_0xd52ax15){var _0xd52ax1b={},_0xd52ax29={};_0xd52ax29[_0x38c3[54]]= _[_0x38c3[57]](db[_0x38c3[56]][_0x38c3[55]]);_0xd52ax29[_0x38c3[58]]= _[_0x38c3[57]](_0xd52ax28[_0x38c3[58]]);_0xd52ax29[_0x38c3[59]]= _[_0x38c3[60]](_0xd52ax29[_0x38c3[54]],_0xd52ax29[_0x38c3[58]]);_0xd52ax1b[_0x38c3[61]]= _[_0x38c3[60]](_0xd52ax29[_0x38c3[54]],qs[_0x38c3[62]](_0xd52ax28[_0x38c3[58]][_0x38c3[62]]));_0xd52ax1b[_0x38c3[61]]= (_0xd52ax1b[_0x38c3[61]][_0x38c3[63]])?_0xd52ax1b[_0x38c3[61]]:_0xd52ax29[_0x38c3[54]];if(!_0xd52ax28[_0x38c3[58]][_0x38c3[65]](_0x38c3[64])){_0xd52ax1b[_0x38c3[35]]= qs[_0x38c3[35]](_0xd52ax28[_0x38c3[58]][_0x38c3[35]]);_0xd52ax1b[_0x38c3[34]]= qs[_0x38c3[34]](_0xd52ax28[_0x38c3[58]][_0x38c3[34]])};_0xd52ax1b[_0x38c3[66]]= qs[_0x38c3[67]](_0xd52ax28[_0x38c3[58]][_0x38c3[67]]);_0xd52ax1b[_0x38c3[68]]= qs[_0x38c3[59]](_[_0x38c3[69]](_0xd52ax28[_0x38c3[58]],_0xd52ax29[_0x38c3[59]]));if(_0xd52ax28[_0x38c3[58]][_0x38c3[70]]){_0xd52ax1b[_0x38c3[68]]= _[_0x38c3[73]](_0xd52ax1b[_0x38c3[68]],{$or:_[_0x38c3[72]](_0xd52ax1b[_0x38c3[61]],function(_0xd52ax2a){var _0xd52ax2b={};_0xd52ax2b[_0xd52ax2a]= {$like:_0x38c3[71]+ _0xd52ax28[_0x38c3[58]][_0x38c3[70]]+ _0x38c3[71]};return _0xd52ax2b})})};_0xd52ax1b= _[_0x38c3[73]]({},_0xd52ax1b,_0xd52ax28[_0x38c3[74]]);return db[_0x38c3[56]][_0x38c3[76]](_0xd52ax1b)[_0x38c3[45]](respondWithFilteredResult(_0xd52ax15,_0xd52ax1b,_0x38c3[53]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[53]))};exports[_0x38c3[77]]= function(_0xd52ax28,_0xd52ax15){var _0xd52ax1b={raw:false,where:{id:_0xd52ax28[_0x38c3[79]][_0x38c3[78]]}},_0xd52ax29={};_0xd52ax29[_0x38c3[54]]= _[_0x38c3[57]](db[_0x38c3[56]][_0x38c3[55]]);_0xd52ax29[_0x38c3[58]]= _[_0x38c3[57]](_0xd52ax28[_0x38c3[58]]);_0xd52ax29[_0x38c3[59]]= _[_0x38c3[60]](_0xd52ax29[_0x38c3[54]],_0xd52ax29[_0x38c3[58]]);_0xd52ax1b[_0x38c3[61]]= _[_0x38c3[60]](_0xd52ax29[_0x38c3[54]],qs[_0x38c3[62]](_0xd52ax28[_0x38c3[58]][_0x38c3[62]]));_0xd52ax1b[_0x38c3[61]]= (_0xd52ax1b[_0x38c3[61]][_0x38c3[63]])?_0xd52ax1b[_0x38c3[61]]:_0xd52ax29[_0x38c3[54]];_0xd52ax1b= _[_0x38c3[73]]({},_0xd52ax1b,_0xd52ax28[_0x38c3[74]]);return db[_0x38c3[56]][_0x38c3[80]](_0xd52ax1b)[_0x38c3[45]](handleEntityNotFound(_0xd52ax15,null,_0x38c3[77]))[_0x38c3[45]](respondWithResult(_0xd52ax15,null,_0x38c3[77]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[77]))};exports[_0x38c3[81]]= function(_0xd52ax28,_0xd52ax15){return db[_0x38c3[56]][_0x38c3[81]](_0xd52ax28[_0x38c3[82]],{})[_0x38c3[45]](respondWithResult(_0xd52ax15,201,_0x38c3[81]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[81]))};exports[_0x38c3[46]]= function(_0xd52ax28,_0xd52ax15){if(_0xd52ax28[_0x38c3[82]][_0x38c3[78]]){delete _0xd52ax28[_0x38c3[82]][_0x38c3[78]]};return db[_0x38c3[56]][_0x38c3[80]]({where:{id:_0xd52ax28[_0x38c3[79]][_0x38c3[78]]}})[_0x38c3[45]](handleEntityNotFound(_0xd52ax15,null,_0x38c3[46]))[_0x38c3[45]](saveUpdates(_0xd52ax28[_0x38c3[82]],null,_0x38c3[46]))[_0x38c3[45]](respondWithResult(_0xd52ax15,null,_0x38c3[46]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[46]))};exports[_0x38c3[48]]= function(_0xd52ax28,_0xd52ax15){return db[_0x38c3[56]][_0x38c3[80]]({where:{id:_0xd52ax28[_0x38c3[79]][_0x38c3[78]]}})[_0x38c3[45]](handleEntityNotFound(_0xd52ax15,null,_0x38c3[48]))[_0x38c3[45]](removeEntity(_0xd52ax15,null,_0x38c3[48]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[48]))};exports[_0x38c3[83]]= function(_0xd52ax28,_0xd52ax15){return db[_0x38c3[56]][_0x38c3[83]]()[_0x38c3[45]](respondWithResult(_0xd52ax15,null,_0x38c3[83]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[83]))};exports[_0x38c3[84]]= function(_0xd52ax28,_0xd52ax15,_0xd52ax2c){return db[_0x38c3[87]][_0x38c3[80]]({where:{id:_0xd52ax28[_0x38c3[79]][_0x38c3[78]]}})[_0x38c3[45]](handleEntityNotFound(_0xd52ax15,null,_0x38c3[84]))[_0x38c3[45]](function(_0xd52ax18){if(_0xd52ax18){return _0xd52ax18[_0x38c3[84]](_0xd52ax28[_0x38c3[82]][_0x38c3[85]],_[_0x38c3[86]](_0xd52ax28[_0x38c3[82]],[_0x38c3[85],_0x38c3[78]])|| {})};return null})[_0x38c3[45]](respondWithResult(_0xd52ax15,null,_0x38c3[84]))[_0x38c3[75]](handleError(_0xd52ax15,null,_0x38c3[84]))};exports[_0x38c3[88]]= function(_0xd52ax28,_0xd52ax18,_0xd52ax2c){var _0xd52ax1b={};var _0xd52ax29={};var _0xd52ax2d;var _0xd52ax1c;return db[_0x38c3[56]][_0x38c3[89]]({where:{id:_0xd52ax28[_0x38c3[79]][_0x38c3[78]]}})[_0x38c3[45]](handleEntityNotFound(_0xd52ax18,null,_0x38c3[88]))[_0x38c3[45]](function(_0xd52ax18){if(_0xd52ax18){_0xd52ax2d= _0xd52ax18;_0xd52ax29[_0x38c3[54]]= _[_0x38c3[57]](db[_0x38c3[87]][_0x38c3[55]]);_0xd52ax29[_0x38c3[58]]= _[_0x38c3[57]](_0xd52ax28[_0x38c3[58]]);_0xd52ax29[_0x38c3[59]]= _[_0x38c3[60]](_0xd52ax29[_0x38c3[54]],_0xd52ax29[_0x38c3[58]]);_0xd52ax1b[_0x38c3[61]]= _[_0x38c3[60]](_0xd52ax29[_0x38c3[54]],qs[_0x38c3[62]](_0xd52ax28[_0x38c3[58]][_0x38c3[62]]));_0xd52ax1b[_0x38c3[61]]= (_0xd52ax1b[_0x38c3[61]][_0x38c3[63]])?_0xd52ax1b[_0x38c3[61]]:_0xd52ax29[_0x38c3[54]];_0xd52ax1b[_0x38c3[66]]= qs[_0x38c3[67]](_0xd52ax28[_0x38c3[58]][_0x38c3[67]]);_0xd52ax1b[_0x38c3[68]]= qs[_0x38c3[59]](_[_0x38c3[69]](_0xd52ax28[_0x38c3[58]],_0xd52ax29[_0x38c3[59]]));if(_0xd52ax28[_0x38c3[58]][_0x38c3[70]]){_0xd52ax1b[_0x38c3[68]]= _[_0x38c3[73]](_0xd52ax1b[_0x38c3[68]],{$or:_[_0x38c3[72]](_0xd52ax1b[_0x38c3[61]],function(_0xd52ax2a){var _0xd52ax2b={};_0xd52ax2b[_0xd52ax2a]= {$like:_0x38c3[71]+ _0xd52ax28[_0x38c3[58]][_0x38c3[70]]+ _0x38c3[71]};return _0xd52ax2b})})};_0xd52ax1b= _[_0x38c3[73]]({},_0xd52ax1b,_0xd52ax28[_0x38c3[74]]);return _0xd52ax2d[_0x38c3[88]](_0xd52ax1b)}})[_0x38c3[45]](function(_0xd52ax2f){if(_0xd52ax2f){_0xd52ax1c= _0xd52ax2f[_0x38c3[63]];if(!_0xd52ax28[_0x38c3[58]][_0x38c3[65]](_0x38c3[64])){_0xd52ax1b[_0x38c3[35]]= qs[_0x38c3[35]](_0xd52ax28[_0x38c3[58]][_0x38c3[35]]);_0xd52ax1b[_0x38c3[34]]= qs[_0x38c3[34]](_0xd52ax28[_0x38c3[58]][_0x38c3[34]])};return _0xd52ax2d[_0x38c3[88]](_0xd52ax1b)}})[_0x38c3[45]](function(_0xd52ax2e){return _0xd52ax2e?{count:_0xd52ax1c,rows:_0xd52ax2e}:null})[_0x38c3[45]](respondWithResult(_0xd52ax18,null,_0x38c3[88]))[_0x38c3[75]](handleError(_0xd52ax18,null,_0x38c3[88]))}
\ No newline at end of file
+var _0x593c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x593c[0];var jsonpatch=require(_0x593c[1]);var rp=require(_0x593c[2]);var moment=require(_0x593c[3]);var BPromise=require(_0x593c[4]);var util=require(_0x593c[5]);var path=require(_0x593c[6]);var sox=require(_0x593c[7]);var ejs=require(_0x593c[8]);var fs=require(_0x593c[9]);var _=require(_0x593c[10]);var squel=require(_0x593c[11]);var crypto=require(_0x593c[12]);var jsforce=require(_0x593c[13]);var toCsv=require(_0x593c[14]);var qs=require(_0x593c[15]);var logger=require(_0x593c[17])(_0x593c[16]);var utils=require(_0x593c[18]);var config=require(_0x593c[19]);var db=require(_0x593c[21])[_0x593c[20]];function respondWithStatusCode(_0xf849x15,_0xf849x16,_0xf849x17){_0xf849x16= _0xf849x16|| 204;return function(_0xf849x18){if(_0xf849x18){logger[_0x593c[24]](_0x593c[22],_0xf849x17,_0xf849x16,_0x593c[23]);logger[_0x593c[26]](_0x593c[25],_0xf849x17,_0xf849x16,_0x593c[23]);return _0xf849x15[_0x593c[27]](_0xf849x16)};return _0xf849x15[_0x593c[29]](304)[_0x593c[28]]()}}function respondWithResult(_0xf849x15,_0xf849x16,_0xf849x17){_0xf849x16= _0xf849x16|| 200;return function(_0xf849x18){if(_0xf849x18){logger[_0x593c[24]](_0x593c[22],_0xf849x17,_0xf849x16,_0x593c[30]);logger[_0x593c[26]](_0x593c[25],_0xf849x17,_0xf849x16,_0x593c[30],JSON[_0x593c[31]](_0xf849x18));return _0xf849x15[_0x593c[29]](_0xf849x16)[_0x593c[32]](_0xf849x18)};return _0xf849x15[_0x593c[29]](304)[_0x593c[28]]()}}function respondWithFilteredResult(_0xf849x15,_0xf849x1b,_0xf849x17){return function(_0xf849x18){if(_0xf849x18){var _0xf849x1c=_0xf849x18[_0x593c[33]],_0xf849x1d=_0xf849x1b[_0x593c[34]],_0xf849x1e=_0xf849x1b[_0x593c[34]]+ _0xf849x1b[_0x593c[35]],_0xf849x16;if(_0xf849x1e>= _0xf849x1c){_0xf849x1e= _0xf849x1c;_0xf849x16= 200}else {_0xf849x16= 206};_0xf849x15[_0x593c[29]](_0xf849x16);logger[_0x593c[24]](_0x593c[22],_0xf849x17,_0xf849x16,_0x593c[36]);logger[_0x593c[26]](_0x593c[25],_0xf849x17,_0xf849x16,_0x593c[30],JSON[_0x593c[31]](_0xf849x18));return _0xf849x15[_0x593c[40]](_0x593c[37],_0xf849x1d+ _0x593c[38]+ _0xf849x1e+ _0x593c[39]+ _0xf849x1c)[_0x593c[32]](_0xf849x18)};return null}}function patchUpdates(_0xf849x20){return function(_0xf849x18){try{jsonpatch[_0x593c[41]](_0xf849x18,_0xf849x20,true)}catch(err){return BPromise[_0x593c[42]](err)};return _0xf849x18[_0x593c[43]]()}}function saveUpdates(_0xf849x22,_0xf849x16,_0xf849x17){return function(_0xf849x18){if(_0xf849x18){return _0xf849x18[_0x593c[46]](_0xf849x22)[_0x593c[45]](function(_0xf849x23){logger[_0x593c[24]](_0x593c[22],_0xf849x17,_0xf849x16,_0x593c[44]);logger[_0x593c[26]](_0x593c[25],_0xf849x17,_0xf849x16,_0x593c[44],JSON[_0x593c[31]](_0xf849x18));return _0xf849x23})};return null}}function removeEntity(_0xf849x15,_0xf849x16,_0xf849x17){return function(_0xf849x18){if(_0xf849x18){return _0xf849x18[_0x593c[48]]()[_0x593c[45]](function(){logger[_0x593c[24]](_0x593c[22],_0xf849x17,_0xf849x16,_0x593c[47]);logger[_0x593c[26]](_0x593c[25],_0xf849x17,_0xf849x16,_0x593c[47],JSON[_0x593c[31]](_0xf849x18));_0xf849x15[_0x593c[29]](204)[_0x593c[28]]()})}}}function handleEntityNotFound(_0xf849x15,_0xf849x16,_0xf849x17){return function(_0xf849x18){if(!_0xf849x18){logger[_0x593c[50]](_0x593c[22],_0xf849x17,404,_0x593c[49]);_0xf849x15[_0x593c[29]](404)[_0x593c[28]]();return null};return _0xf849x18}}function handleError(_0xf849x15,_0xf849x16,_0xf849x17){_0xf849x16= _0xf849x16|| 500;return function(_0xf849x27){logger[_0x593c[50]](_0x593c[22],_0xf849x17,_0xf849x16,JSON[_0x593c[31]](_0xf849x27));delete _0xf849x27[_0x593c[51]];_0xf849x15[_0x593c[29]](_0xf849x16)[_0x593c[52]](_0xf849x27)}}exports[_0x593c[53]]= function(_0xf849x28,_0xf849x15){var _0xf849x1b={},_0xf849x29={};_0xf849x29[_0x593c[54]]= _[_0x593c[57]](db[_0x593c[56]][_0x593c[55]]);_0xf849x29[_0x593c[58]]= _[_0x593c[57]](_0xf849x28[_0x593c[58]]);_0xf849x29[_0x593c[59]]= _[_0x593c[60]](_0xf849x29[_0x593c[54]],_0xf849x29[_0x593c[58]]);_0xf849x1b[_0x593c[61]]= _[_0x593c[60]](_0xf849x29[_0x593c[54]],qs[_0x593c[62]](_0xf849x28[_0x593c[58]][_0x593c[62]]));_0xf849x1b[_0x593c[61]]= (_0xf849x1b[_0x593c[61]][_0x593c[63]])?_0xf849x1b[_0x593c[61]]:_0xf849x29[_0x593c[54]];if(!_0xf849x28[_0x593c[58]][_0x593c[65]](_0x593c[64])){_0xf849x1b[_0x593c[35]]= qs[_0x593c[35]](_0xf849x28[_0x593c[58]][_0x593c[35]]);_0xf849x1b[_0x593c[34]]= qs[_0x593c[34]](_0xf849x28[_0x593c[58]][_0x593c[34]])};_0xf849x1b[_0x593c[66]]= qs[_0x593c[67]](_0xf849x28[_0x593c[58]][_0x593c[67]]);_0xf849x1b[_0x593c[68]]= qs[_0x593c[59]](_[_0x593c[69]](_0xf849x28[_0x593c[58]],_0xf849x29[_0x593c[59]]));if(_0xf849x28[_0x593c[58]][_0x593c[70]]){_0xf849x1b[_0x593c[68]]= _[_0x593c[73]](_0xf849x1b[_0x593c[68]],{$or:_[_0x593c[72]](_0xf849x1b[_0x593c[61]],function(_0xf849x2a){var _0xf849x2b={};_0xf849x2b[_0xf849x2a]= {$like:_0x593c[71]+ _0xf849x28[_0x593c[58]][_0x593c[70]]+ _0x593c[71]};return _0xf849x2b})})};_0xf849x1b= _[_0x593c[73]]({},_0xf849x1b,_0xf849x28[_0x593c[74]]);return db[_0x593c[56]][_0x593c[76]](_0xf849x1b)[_0x593c[45]](respondWithFilteredResult(_0xf849x15,_0xf849x1b,_0x593c[53]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[53]))};exports[_0x593c[77]]= function(_0xf849x28,_0xf849x15){var _0xf849x1b={raw:false,where:{id:_0xf849x28[_0x593c[79]][_0x593c[78]]}},_0xf849x29={};_0xf849x29[_0x593c[54]]= _[_0x593c[57]](db[_0x593c[56]][_0x593c[55]]);_0xf849x29[_0x593c[58]]= _[_0x593c[57]](_0xf849x28[_0x593c[58]]);_0xf849x29[_0x593c[59]]= _[_0x593c[60]](_0xf849x29[_0x593c[54]],_0xf849x29[_0x593c[58]]);_0xf849x1b[_0x593c[61]]= _[_0x593c[60]](_0xf849x29[_0x593c[54]],qs[_0x593c[62]](_0xf849x28[_0x593c[58]][_0x593c[62]]));_0xf849x1b[_0x593c[61]]= (_0xf849x1b[_0x593c[61]][_0x593c[63]])?_0xf849x1b[_0x593c[61]]:_0xf849x29[_0x593c[54]];_0xf849x1b= _[_0x593c[73]]({},_0xf849x1b,_0xf849x28[_0x593c[74]]);return db[_0x593c[56]][_0x593c[80]](_0xf849x1b)[_0x593c[45]](handleEntityNotFound(_0xf849x15,null,_0x593c[77]))[_0x593c[45]](respondWithResult(_0xf849x15,null,_0x593c[77]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[77]))};exports[_0x593c[81]]= function(_0xf849x28,_0xf849x15){return db[_0x593c[56]][_0x593c[81]](_0xf849x28[_0x593c[82]],{})[_0x593c[45]](respondWithResult(_0xf849x15,201,_0x593c[81]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[81]))};exports[_0x593c[46]]= function(_0xf849x28,_0xf849x15){if(_0xf849x28[_0x593c[82]][_0x593c[78]]){delete _0xf849x28[_0x593c[82]][_0x593c[78]]};return db[_0x593c[56]][_0x593c[80]]({where:{id:_0xf849x28[_0x593c[79]][_0x593c[78]]}})[_0x593c[45]](handleEntityNotFound(_0xf849x15,null,_0x593c[46]))[_0x593c[45]](saveUpdates(_0xf849x28[_0x593c[82]],null,_0x593c[46]))[_0x593c[45]](respondWithResult(_0xf849x15,null,_0x593c[46]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[46]))};exports[_0x593c[48]]= function(_0xf849x28,_0xf849x15){return db[_0x593c[56]][_0x593c[80]]({where:{id:_0xf849x28[_0x593c[79]][_0x593c[78]]}})[_0x593c[45]](handleEntityNotFound(_0xf849x15,null,_0x593c[48]))[_0x593c[45]](removeEntity(_0xf849x15,null,_0x593c[48]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[48]))};exports[_0x593c[83]]= function(_0xf849x28,_0xf849x15){return db[_0x593c[56]][_0x593c[83]]()[_0x593c[45]](respondWithResult(_0xf849x15,null,_0x593c[83]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[83]))};exports[_0x593c[84]]= function(_0xf849x28,_0xf849x15,_0xf849x2c){return db[_0x593c[87]][_0x593c[80]]({where:{id:_0xf849x28[_0x593c[79]][_0x593c[78]]}})[_0x593c[45]](handleEntityNotFound(_0xf849x15,null,_0x593c[84]))[_0x593c[45]](function(_0xf849x18){if(_0xf849x18){return _0xf849x18[_0x593c[84]](_0xf849x28[_0x593c[82]][_0x593c[85]],_[_0x593c[86]](_0xf849x28[_0x593c[82]],[_0x593c[85],_0x593c[78]])|| {})};return null})[_0x593c[45]](respondWithResult(_0xf849x15,null,_0x593c[84]))[_0x593c[75]](handleError(_0xf849x15,null,_0x593c[84]))};exports[_0x593c[88]]= function(_0xf849x28,_0xf849x18,_0xf849x2c){var _0xf849x1b={};var _0xf849x29={};var _0xf849x2d;var _0xf849x1c;return db[_0x593c[56]][_0x593c[89]]({where:{id:_0xf849x28[_0x593c[79]][_0x593c[78]]}})[_0x593c[45]](handleEntityNotFound(_0xf849x18,null,_0x593c[88]))[_0x593c[45]](function(_0xf849x18){if(_0xf849x18){_0xf849x2d= _0xf849x18;_0xf849x29[_0x593c[54]]= _[_0x593c[57]](db[_0x593c[87]][_0x593c[55]]);_0xf849x29[_0x593c[58]]= _[_0x593c[57]](_0xf849x28[_0x593c[58]]);_0xf849x29[_0x593c[59]]= _[_0x593c[60]](_0xf849x29[_0x593c[54]],_0xf849x29[_0x593c[58]]);_0xf849x1b[_0x593c[61]]= _[_0x593c[60]](_0xf849x29[_0x593c[54]],qs[_0x593c[62]](_0xf849x28[_0x593c[58]][_0x593c[62]]));_0xf849x1b[_0x593c[61]]= (_0xf849x1b[_0x593c[61]][_0x593c[63]])?_0xf849x1b[_0x593c[61]]:_0xf849x29[_0x593c[54]];_0xf849x1b[_0x593c[66]]= qs[_0x593c[67]](_0xf849x28[_0x593c[58]][_0x593c[67]]);_0xf849x1b[_0x593c[68]]= qs[_0x593c[59]](_[_0x593c[69]](_0xf849x28[_0x593c[58]],_0xf849x29[_0x593c[59]]));if(_0xf849x28[_0x593c[58]][_0x593c[70]]){_0xf849x1b[_0x593c[68]]= _[_0x593c[73]](_0xf849x1b[_0x593c[68]],{$or:_[_0x593c[72]](_0xf849x1b[_0x593c[61]],function(_0xf849x2a){var _0xf849x2b={};_0xf849x2b[_0xf849x2a]= {$like:_0x593c[71]+ _0xf849x28[_0x593c[58]][_0x593c[70]]+ _0x593c[71]};return _0xf849x2b})})};_0xf849x1b= _[_0x593c[73]]({},_0xf849x1b,_0xf849x28[_0x593c[74]]);return _0xf849x2d[_0x593c[88]](_0xf849x1b)}})[_0x593c[45]](function(_0xf849x2f){if(_0xf849x2f){_0xf849x1c= _0xf849x2f[_0x593c[63]];if(!_0xf849x28[_0x593c[58]][_0x593c[65]](_0x593c[64])){_0xf849x1b[_0x593c[35]]= qs[_0x593c[35]](_0xf849x28[_0x593c[58]][_0x593c[35]]);_0xf849x1b[_0x593c[34]]= qs[_0x593c[34]](_0xf849x28[_0x593c[58]][_0x593c[34]])};return _0xf849x2d[_0x593c[88]](_0xf849x1b)}})[_0x593c[45]](function(_0xf849x2e){return _0xf849x2e?{count:_0xf849x1c,rows:_0xf849x2e}:null})[_0x593c[45]](respondWithResult(_0xf849x18,null,_0x593c[88]))[_0x593c[75]](handleError(_0xf849x18,null,_0x593c[88]))}
\ No newline at end of file
index ad4fd0c..b3b8076 100644 (file)
@@ -1 +1 @@
-var _0x4ede=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x4ede[0];var _=require(_0x4ede[1]);var util=require(_0x4ede[2]);var logger=require(_0x4ede[4])(_0x4ede[3]);var attributes=require(_0x4ede[5]);module[_0x4ede[6]]= function(_0xcf91x5,_0xcf91x6){return _0xcf91x5[_0x4ede[9]](_0x4ede[7],attributes,{tableName:_0x4ede[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7c76=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x7c76[0];var _=require(_0x7c76[1]);var util=require(_0x7c76[2]);var logger=require(_0x7c76[4])(_0x7c76[3]);var attributes=require(_0x7c76[5]);module[_0x7c76[6]]= function(_0x9f52x5,_0x9f52x6){return _0x9f52x5[_0x7c76[9]](_0x7c76[7],attributes,{tableName:_0x7c76[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 379854d..6df9389 100644 (file)
@@ -1 +1 @@
-var _0x50de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x50de[0];var _=require(_0x50de[1]);var util=require(_0x50de[2]);var moment=require(_0x50de[3]);var BPromise=require(_0x50de[4]);var db=require(_0x50de[6])[_0x50de[5]];var utils=require(_0x50de[7]);var logger=require(_0x50de[9])(_0x50de[8]);var jayson=require(_0x50de[10]);var client=jayson[_0x50de[12]][_0x50de[11]]({port:9002});function respondWithRpcPromise(_0x2185xb,_0x2185xc,_0x2185xd){return  new BPromise(function(_0x2185xe,_0x2185xf){return client[_0x50de[25]](_0x2185xb,_0x2185xd)[_0x50de[24]](function(_0x2185x11){logger[_0x50de[17]](_0x50de[13],_0x2185xc,_0x50de[16]);logger[_0x50de[20]](_0x50de[18],_0x2185xc,_0x50de[16],JSON[_0x50de[19]](_0x2185x11));if(_0x2185x11[_0x50de[14]]){if(_0x2185x11[_0x50de[14]][_0x50de[21]]=== 500){logger[_0x50de[14]](_0x50de[13],_0x2185xc,_0x2185x11[_0x50de[14]][_0x50de[22]]);return _0x2185xf(_0x2185x11[_0x50de[14]][_0x50de[22]])};logger[_0x50de[14]](_0x50de[13],_0x2185xc,_0x2185x11[_0x50de[14]][_0x50de[22]]);return _0x2185xe(_0x2185x11[_0x50de[14]][_0x50de[22]])}else {logger[_0x50de[17]](_0x50de[13],_0x2185xc,_0x50de[16]);_0x2185xe(_0x2185x11[_0x50de[23]][_0x50de[22]])}})[_0x50de[15]](function(_0x2185x10){logger[_0x50de[14]](_0x50de[13],_0x2185xc,_0x2185x10);_0x2185xf(_0x2185x10)})})}
\ No newline at end of file
+var _0xc140=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc140[0];var _=require(_0xc140[1]);var util=require(_0xc140[2]);var moment=require(_0xc140[3]);var BPromise=require(_0xc140[4]);var db=require(_0xc140[6])[_0xc140[5]];var utils=require(_0xc140[7]);var logger=require(_0xc140[9])(_0xc140[8]);var jayson=require(_0xc140[10]);var client=jayson[_0xc140[12]][_0xc140[11]]({port:9002});function respondWithRpcPromise(_0x13c2xb,_0x13c2xc,_0x13c2xd){return  new BPromise(function(_0x13c2xe,_0x13c2xf){return client[_0xc140[25]](_0x13c2xb,_0x13c2xd)[_0xc140[24]](function(_0x13c2x11){logger[_0xc140[17]](_0xc140[13],_0x13c2xc,_0xc140[16]);logger[_0xc140[20]](_0xc140[18],_0x13c2xc,_0xc140[16],JSON[_0xc140[19]](_0x13c2x11));if(_0x13c2x11[_0xc140[14]]){if(_0x13c2x11[_0xc140[14]][_0xc140[21]]=== 500){logger[_0xc140[14]](_0xc140[13],_0x13c2xc,_0x13c2x11[_0xc140[14]][_0xc140[22]]);return _0x13c2xf(_0x13c2x11[_0xc140[14]][_0xc140[22]])};logger[_0xc140[14]](_0xc140[13],_0x13c2xc,_0x13c2x11[_0xc140[14]][_0xc140[22]]);return _0x13c2xe(_0x13c2x11[_0xc140[14]][_0xc140[22]])}else {logger[_0xc140[17]](_0xc140[13],_0x13c2xc,_0xc140[16]);_0x13c2xe(_0x13c2x11[_0xc140[23]][_0xc140[22]])}})[_0xc140[15]](function(_0x13c2x10){logger[_0xc140[14]](_0xc140[13],_0x13c2xc,_0x13c2x10);_0x13c2xf(_0x13c2x10)})})}
\ No newline at end of file
index fe2bffa..110ae7a 100644 (file)
@@ -1 +1 @@
-var _0xf9b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf9b3[0];var multer=require(_0xf9b3[1]);var util=require(_0xf9b3[2]);var path=require(_0xf9b3[3]);var express=require(_0xf9b3[4]);var router=express.Router();var auth=require(_0xf9b3[5]);var config=require(_0xf9b3[6]);var controller=require(_0xf9b3[7]);router[_0xf9b3[11]](_0xf9b3[8],auth[_0xf9b3[9]](),controller[_0xf9b3[10]]);router[_0xf9b3[11]](_0xf9b3[12],auth[_0xf9b3[9]](),controller[_0xf9b3[13]]);router[_0xf9b3[11]](_0xf9b3[14],auth[_0xf9b3[9]](),controller[_0xf9b3[15]]);router[_0xf9b3[11]](_0xf9b3[16],auth[_0xf9b3[9]](),controller[_0xf9b3[17]]);router[_0xf9b3[19]](_0xf9b3[8],auth[_0xf9b3[9]](),controller[_0xf9b3[18]]);router[_0xf9b3[19]](_0xf9b3[16],auth[_0xf9b3[9]](),controller[_0xf9b3[20]]);router[_0xf9b3[22]](_0xf9b3[14],auth[_0xf9b3[9]](),controller[_0xf9b3[21]]);router[_0xf9b3[24]](_0xf9b3[14],auth[_0xf9b3[9]](),controller[_0xf9b3[23]]);module[_0xf9b3[25]]= router
\ No newline at end of file
+var _0x77f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x77f5[0];var multer=require(_0x77f5[1]);var util=require(_0x77f5[2]);var path=require(_0x77f5[3]);var express=require(_0x77f5[4]);var router=express.Router();var auth=require(_0x77f5[5]);var config=require(_0x77f5[6]);var controller=require(_0x77f5[7]);router[_0x77f5[11]](_0x77f5[8],auth[_0x77f5[9]](),controller[_0x77f5[10]]);router[_0x77f5[11]](_0x77f5[12],auth[_0x77f5[9]](),controller[_0x77f5[13]]);router[_0x77f5[11]](_0x77f5[14],auth[_0x77f5[9]](),controller[_0x77f5[15]]);router[_0x77f5[11]](_0x77f5[16],auth[_0x77f5[9]](),controller[_0x77f5[17]]);router[_0x77f5[19]](_0x77f5[8],auth[_0x77f5[9]](),controller[_0x77f5[18]]);router[_0x77f5[19]](_0x77f5[16],auth[_0x77f5[9]](),controller[_0x77f5[20]]);router[_0x77f5[22]](_0x77f5[14],auth[_0x77f5[9]](),controller[_0x77f5[21]]);router[_0x77f5[24]](_0x77f5[14],auth[_0x77f5[9]](),controller[_0x77f5[23]]);module[_0x77f5[25]]= router
\ No newline at end of file
index 9e3efc5..0dc847f 100644 (file)
@@ -1 +1 @@
-var _0x9b23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x42\x4C\x4F\x42","\x62\x6F\x64\x79","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x67\x72\x6F\x75\x70"];_0x9b23[0];var Sequelize=require(_0x9b23[1]);module[_0x9b23[2]]= {body:{type:Sequelize[_0x9b23[3]],allowNull:false,validate:{notNull:true,notEmpty:true},get:function(){return this[_0x9b23[5]](_0x9b23[4]).toString()}},type:{type:Sequelize.ENUM(_0x9b23[6],_0x9b23[7],_0x9b23[8])}}
\ No newline at end of file
+var _0xcc0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x42\x4C\x4F\x42","\x62\x6F\x64\x79","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x67\x72\x6F\x75\x70"];_0xcc0a[0];var Sequelize=require(_0xcc0a[1]);module[_0xcc0a[2]]= {body:{type:Sequelize[_0xcc0a[3]],allowNull:false,validate:{notNull:true,notEmpty:true},get:function(){return this[_0xcc0a[5]](_0xcc0a[4]).toString()}},type:{type:Sequelize.ENUM(_0xcc0a[6],_0xcc0a[7],_0xcc0a[8])}}
\ No newline at end of file
index 1bfbe09..71ce274 100644 (file)
@@ -1 +1 @@
-var _0x2b9a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x2b9a[0];var jsonpatch=require(_0x2b9a[1]);var rp=require(_0x2b9a[2]);var moment=require(_0x2b9a[3]);var BPromise=require(_0x2b9a[4]);var util=require(_0x2b9a[5]);var path=require(_0x2b9a[6]);var sox=require(_0x2b9a[7]);var ejs=require(_0x2b9a[8]);var fs=require(_0x2b9a[9]);var _=require(_0x2b9a[10]);var squel=require(_0x2b9a[11]);var crypto=require(_0x2b9a[12]);var jsforce=require(_0x2b9a[13]);var toCsv=require(_0x2b9a[14]);var qs=require(_0x2b9a[15]);var logger=require(_0x2b9a[17])(_0x2b9a[16]);var utils=require(_0x2b9a[18]);var config=require(_0x2b9a[19]);var db=require(_0x2b9a[21])[_0x2b9a[20]];function respondWithStatusCode(_0xf8dfx15,_0xf8dfx16,_0xf8dfx17){_0xf8dfx16= _0xf8dfx16|| 204;return function(_0xf8dfx18){if(_0xf8dfx18){logger[_0x2b9a[24]](_0x2b9a[22],_0xf8dfx17,_0xf8dfx16,_0x2b9a[23]);logger[_0x2b9a[26]](_0x2b9a[25],_0xf8dfx17,_0xf8dfx16,_0x2b9a[23]);return _0xf8dfx15[_0x2b9a[27]](_0xf8dfx16)};return _0xf8dfx15[_0x2b9a[29]](304)[_0x2b9a[28]]()}}function respondWithResult(_0xf8dfx15,_0xf8dfx16,_0xf8dfx17){_0xf8dfx16= _0xf8dfx16|| 200;return function(_0xf8dfx18){if(_0xf8dfx18){logger[_0x2b9a[24]](_0x2b9a[22],_0xf8dfx17,_0xf8dfx16,_0x2b9a[30]);logger[_0x2b9a[26]](_0x2b9a[25],_0xf8dfx17,_0xf8dfx16,_0x2b9a[30],JSON[_0x2b9a[31]](_0xf8dfx18));return _0xf8dfx15[_0x2b9a[29]](_0xf8dfx16)[_0x2b9a[32]](_0xf8dfx18)};return _0xf8dfx15[_0x2b9a[29]](304)[_0x2b9a[28]]()}}function respondWithFilteredResult(_0xf8dfx15,_0xf8dfx1b,_0xf8dfx17){return function(_0xf8dfx18){if(_0xf8dfx18){var _0xf8dfx1c=_0xf8dfx18[_0x2b9a[33]],_0xf8dfx1d=_0xf8dfx1b[_0x2b9a[34]],_0xf8dfx1e=_0xf8dfx1b[_0x2b9a[34]]+ _0xf8dfx1b[_0x2b9a[35]],_0xf8dfx16;if(_0xf8dfx1e>= _0xf8dfx1c){_0xf8dfx1e= _0xf8dfx1c;_0xf8dfx16= 200}else {_0xf8dfx16= 206};_0xf8dfx15[_0x2b9a[29]](_0xf8dfx16);logger[_0x2b9a[24]](_0x2b9a[22],_0xf8dfx17,_0xf8dfx16,_0x2b9a[36]);logger[_0x2b9a[26]](_0x2b9a[25],_0xf8dfx17,_0xf8dfx16,_0x2b9a[30],JSON[_0x2b9a[31]](_0xf8dfx18));return _0xf8dfx15[_0x2b9a[40]](_0x2b9a[37],_0xf8dfx1d+ _0x2b9a[38]+ _0xf8dfx1e+ _0x2b9a[39]+ _0xf8dfx1c)[_0x2b9a[32]](_0xf8dfx18)};return null}}function patchUpdates(_0xf8dfx20){return function(_0xf8dfx18){try{jsonpatch[_0x2b9a[41]](_0xf8dfx18,_0xf8dfx20,true)}catch(err){return BPromise[_0x2b9a[42]](err)};return _0xf8dfx18[_0x2b9a[43]]()}}function saveUpdates(_0xf8dfx22,_0xf8dfx16,_0xf8dfx17){return function(_0xf8dfx18){if(_0xf8dfx18){return _0xf8dfx18[_0x2b9a[46]](_0xf8dfx22)[_0x2b9a[45]](function(_0xf8dfx23){logger[_0x2b9a[24]](_0x2b9a[22],_0xf8dfx17,_0xf8dfx16,_0x2b9a[44]);logger[_0x2b9a[26]](_0x2b9a[25],_0xf8dfx17,_0xf8dfx16,_0x2b9a[44],JSON[_0x2b9a[31]](_0xf8dfx18));return _0xf8dfx23})};return null}}function removeEntity(_0xf8dfx15,_0xf8dfx16,_0xf8dfx17){return function(_0xf8dfx18){if(_0xf8dfx18){return _0xf8dfx18[_0x2b9a[48]]()[_0x2b9a[45]](function(){logger[_0x2b9a[24]](_0x2b9a[22],_0xf8dfx17,_0xf8dfx16,_0x2b9a[47]);logger[_0x2b9a[26]](_0x2b9a[25],_0xf8dfx17,_0xf8dfx16,_0x2b9a[47],JSON[_0x2b9a[31]](_0xf8dfx18));_0xf8dfx15[_0x2b9a[29]](204)[_0x2b9a[28]]()})}}}function handleEntityNotFound(_0xf8dfx15,_0xf8dfx16,_0xf8dfx17){return function(_0xf8dfx18){if(!_0xf8dfx18){logger[_0x2b9a[50]](_0x2b9a[22],_0xf8dfx17,404,_0x2b9a[49]);_0xf8dfx15[_0x2b9a[29]](404)[_0x2b9a[28]]();return null};return _0xf8dfx18}}function handleError(_0xf8dfx15,_0xf8dfx16,_0xf8dfx17){_0xf8dfx16= _0xf8dfx16|| 500;return function(_0xf8dfx27){logger[_0x2b9a[50]](_0x2b9a[22],_0xf8dfx17,_0xf8dfx16,JSON[_0x2b9a[31]](_0xf8dfx27));delete _0xf8dfx27[_0x2b9a[51]];_0xf8dfx15[_0x2b9a[29]](_0xf8dfx16)[_0x2b9a[52]](_0xf8dfx27)}}exports[_0x2b9a[53]]= function(_0xf8dfx28,_0xf8dfx15){var _0xf8dfx1b={},_0xf8dfx29={};_0xf8dfx29[_0x2b9a[54]]= _[_0x2b9a[57]](db[_0x2b9a[56]][_0x2b9a[55]]);_0xf8dfx29[_0x2b9a[58]]= _[_0x2b9a[57]](_0xf8dfx28[_0x2b9a[58]]);_0xf8dfx29[_0x2b9a[59]]= _[_0x2b9a[60]](_0xf8dfx29[_0x2b9a[54]],_0xf8dfx29[_0x2b9a[58]]);_0xf8dfx1b[_0x2b9a[61]]= _[_0x2b9a[60]](_0xf8dfx29[_0x2b9a[54]],qs[_0x2b9a[62]](_0xf8dfx28[_0x2b9a[58]][_0x2b9a[62]]));_0xf8dfx1b[_0x2b9a[61]]= (_0xf8dfx1b[_0x2b9a[61]][_0x2b9a[63]])?_0xf8dfx1b[_0x2b9a[61]]:_0xf8dfx29[_0x2b9a[54]];if(!_0xf8dfx28[_0x2b9a[58]][_0x2b9a[65]](_0x2b9a[64])){_0xf8dfx1b[_0x2b9a[35]]= qs[_0x2b9a[35]](_0xf8dfx28[_0x2b9a[58]][_0x2b9a[35]]);_0xf8dfx1b[_0x2b9a[34]]= qs[_0x2b9a[34]](_0xf8dfx28[_0x2b9a[58]][_0x2b9a[34]])};_0xf8dfx1b[_0x2b9a[66]]= qs[_0x2b9a[67]](_0xf8dfx28[_0x2b9a[58]][_0x2b9a[67]]);_0xf8dfx1b[_0x2b9a[68]]= qs[_0x2b9a[59]](_[_0x2b9a[69]](_0xf8dfx28[_0x2b9a[58]],_0xf8dfx29[_0x2b9a[59]]));if(_0xf8dfx28[_0x2b9a[58]][_0x2b9a[70]]){_0xf8dfx1b[_0x2b9a[68]]= _[_0x2b9a[73]](_0xf8dfx1b[_0x2b9a[68]],{$or:_[_0x2b9a[72]](_0xf8dfx1b[_0x2b9a[61]],function(_0xf8dfx2a){var _0xf8dfx2b={};_0xf8dfx2b[_0xf8dfx2a]= {$like:_0x2b9a[71]+ _0xf8dfx28[_0x2b9a[58]][_0x2b9a[70]]+ _0x2b9a[71]};return _0xf8dfx2b})})};_0xf8dfx1b= _[_0x2b9a[73]]({},_0xf8dfx1b,_0xf8dfx28[_0x2b9a[74]]);return db[_0x2b9a[56]][_0x2b9a[76]](_0xf8dfx1b)[_0x2b9a[45]](respondWithFilteredResult(_0xf8dfx15,_0xf8dfx1b,_0x2b9a[53]))[_0x2b9a[75]](handleError(_0xf8dfx15,null,_0x2b9a[53]))};exports[_0x2b9a[77]]= function(_0xf8dfx28,_0xf8dfx15){var _0xf8dfx1b={raw:true,where:{id:_0xf8dfx28[_0x2b9a[79]][_0x2b9a[78]]}},_0xf8dfx29={};_0xf8dfx29[_0x2b9a[54]]= _[_0x2b9a[57]](db[_0x2b9a[56]][_0x2b9a[55]]);_0xf8dfx29[_0x2b9a[58]]= _[_0x2b9a[57]](_0xf8dfx28[_0x2b9a[58]]);_0xf8dfx29[_0x2b9a[59]]= _[_0x2b9a[60]](_0xf8dfx29[_0x2b9a[54]],_0xf8dfx29[_0x2b9a[58]]);_0xf8dfx1b[_0x2b9a[61]]= _[_0x2b9a[60]](_0xf8dfx29[_0x2b9a[54]],qs[_0x2b9a[62]](_0xf8dfx28[_0x2b9a[58]][_0x2b9a[62]]));_0xf8dfx1b[_0x2b9a[61]]= (_0xf8dfx1b[_0x2b9a[61]][_0x2b9a[63]])?_0xf8dfx1b[_0x2b9a[61]]:_0xf8dfx29[_0x2b9a[54]];_0xf8dfx1b= _[_0x2b9a[73]]({},_0xf8dfx1b,_0xf8dfx28[_0x2b9a[74]]);return db[_0x2b9a[56]][_0x2b9a[80]](_0xf8dfx1b)[_0x2b9a[45]](handleEntityNotFound(_0xf8dfx15,null,_0x2b9a[77]))[_0x2b9a[45]](respondWithResult(_0xf8dfx15,null,_0x2b9a[77]))[_0x2b9a[75]](handleError(_0xf8dfx15,null,_0x2b9a[77]))};exports[_0x2b9a[81]]= function(_0xf8dfx28,_0xf8dfx15){return db[_0x2b9a[56]][_0x2b9a[81]](_0xf8dfx28[_0x2b9a[82]],{})[_0x2b9a[45]](respondWithResult(_0xf8dfx15,201,_0x2b9a[81]))[_0x2b9a[75]](handleError(_0xf8dfx15,null,_0x2b9a[81]))};exports[_0x2b9a[46]]= function(_0xf8dfx28,_0xf8dfx15){if(_0xf8dfx28[_0x2b9a[82]][_0x2b9a[78]]){delete _0xf8dfx28[_0x2b9a[82]][_0x2b9a[78]]};return db[_0x2b9a[56]][_0x2b9a[80]]({where:{id:_0xf8dfx28[_0x2b9a[79]][_0x2b9a[78]]}})[_0x2b9a[45]](handleEntityNotFound(_0xf8dfx15,null,_0x2b9a[46]))[_0x2b9a[45]](saveUpdates(_0xf8dfx28[_0x2b9a[82]],null,_0x2b9a[46]))[_0x2b9a[45]](respondWithResult(_0xf8dfx15,null,_0x2b9a[46]))[_0x2b9a[75]](handleError(_0xf8dfx15,null,_0x2b9a[46]))};exports[_0x2b9a[48]]= function(_0xf8dfx28,_0xf8dfx15){return db[_0x2b9a[56]][_0x2b9a[80]]({where:{id:_0xf8dfx28[_0x2b9a[79]][_0x2b9a[78]]}})[_0x2b9a[45]](handleEntityNotFound(_0xf8dfx15,null,_0x2b9a[48]))[_0x2b9a[45]](removeEntity(_0xf8dfx15,null,_0x2b9a[48]))[_0x2b9a[75]](handleError(_0xf8dfx15,null,_0x2b9a[48]))};exports[_0x2b9a[83]]= function(_0xf8dfx28,_0xf8dfx15){return db[_0x2b9a[56]][_0x2b9a[83]]()[_0x2b9a[45]](respondWithResult(_0xf8dfx15,null,_0x2b9a[83]))[_0x2b9a[75]](handleError(_0xf8dfx15,null,_0x2b9a[83]))}
\ No newline at end of file
+var _0xf86f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xf86f[0];var jsonpatch=require(_0xf86f[1]);var rp=require(_0xf86f[2]);var moment=require(_0xf86f[3]);var BPromise=require(_0xf86f[4]);var util=require(_0xf86f[5]);var path=require(_0xf86f[6]);var sox=require(_0xf86f[7]);var ejs=require(_0xf86f[8]);var fs=require(_0xf86f[9]);var _=require(_0xf86f[10]);var squel=require(_0xf86f[11]);var crypto=require(_0xf86f[12]);var jsforce=require(_0xf86f[13]);var toCsv=require(_0xf86f[14]);var qs=require(_0xf86f[15]);var logger=require(_0xf86f[17])(_0xf86f[16]);var utils=require(_0xf86f[18]);var config=require(_0xf86f[19]);var db=require(_0xf86f[21])[_0xf86f[20]];function respondWithStatusCode(_0xf537x15,_0xf537x16,_0xf537x17){_0xf537x16= _0xf537x16|| 204;return function(_0xf537x18){if(_0xf537x18){logger[_0xf86f[24]](_0xf86f[22],_0xf537x17,_0xf537x16,_0xf86f[23]);logger[_0xf86f[26]](_0xf86f[25],_0xf537x17,_0xf537x16,_0xf86f[23]);return _0xf537x15[_0xf86f[27]](_0xf537x16)};return _0xf537x15[_0xf86f[29]](304)[_0xf86f[28]]()}}function respondWithResult(_0xf537x15,_0xf537x16,_0xf537x17){_0xf537x16= _0xf537x16|| 200;return function(_0xf537x18){if(_0xf537x18){logger[_0xf86f[24]](_0xf86f[22],_0xf537x17,_0xf537x16,_0xf86f[30]);logger[_0xf86f[26]](_0xf86f[25],_0xf537x17,_0xf537x16,_0xf86f[30],JSON[_0xf86f[31]](_0xf537x18));return _0xf537x15[_0xf86f[29]](_0xf537x16)[_0xf86f[32]](_0xf537x18)};return _0xf537x15[_0xf86f[29]](304)[_0xf86f[28]]()}}function respondWithFilteredResult(_0xf537x15,_0xf537x1b,_0xf537x17){return function(_0xf537x18){if(_0xf537x18){var _0xf537x1c=_0xf537x18[_0xf86f[33]],_0xf537x1d=_0xf537x1b[_0xf86f[34]],_0xf537x1e=_0xf537x1b[_0xf86f[34]]+ _0xf537x1b[_0xf86f[35]],_0xf537x16;if(_0xf537x1e>= _0xf537x1c){_0xf537x1e= _0xf537x1c;_0xf537x16= 200}else {_0xf537x16= 206};_0xf537x15[_0xf86f[29]](_0xf537x16);logger[_0xf86f[24]](_0xf86f[22],_0xf537x17,_0xf537x16,_0xf86f[36]);logger[_0xf86f[26]](_0xf86f[25],_0xf537x17,_0xf537x16,_0xf86f[30],JSON[_0xf86f[31]](_0xf537x18));return _0xf537x15[_0xf86f[40]](_0xf86f[37],_0xf537x1d+ _0xf86f[38]+ _0xf537x1e+ _0xf86f[39]+ _0xf537x1c)[_0xf86f[32]](_0xf537x18)};return null}}function patchUpdates(_0xf537x20){return function(_0xf537x18){try{jsonpatch[_0xf86f[41]](_0xf537x18,_0xf537x20,true)}catch(err){return BPromise[_0xf86f[42]](err)};return _0xf537x18[_0xf86f[43]]()}}function saveUpdates(_0xf537x22,_0xf537x16,_0xf537x17){return function(_0xf537x18){if(_0xf537x18){return _0xf537x18[_0xf86f[46]](_0xf537x22)[_0xf86f[45]](function(_0xf537x23){logger[_0xf86f[24]](_0xf86f[22],_0xf537x17,_0xf537x16,_0xf86f[44]);logger[_0xf86f[26]](_0xf86f[25],_0xf537x17,_0xf537x16,_0xf86f[44],JSON[_0xf86f[31]](_0xf537x18));return _0xf537x23})};return null}}function removeEntity(_0xf537x15,_0xf537x16,_0xf537x17){return function(_0xf537x18){if(_0xf537x18){return _0xf537x18[_0xf86f[48]]()[_0xf86f[45]](function(){logger[_0xf86f[24]](_0xf86f[22],_0xf537x17,_0xf537x16,_0xf86f[47]);logger[_0xf86f[26]](_0xf86f[25],_0xf537x17,_0xf537x16,_0xf86f[47],JSON[_0xf86f[31]](_0xf537x18));_0xf537x15[_0xf86f[29]](204)[_0xf86f[28]]()})}}}function handleEntityNotFound(_0xf537x15,_0xf537x16,_0xf537x17){return function(_0xf537x18){if(!_0xf537x18){logger[_0xf86f[50]](_0xf86f[22],_0xf537x17,404,_0xf86f[49]);_0xf537x15[_0xf86f[29]](404)[_0xf86f[28]]();return null};return _0xf537x18}}function handleError(_0xf537x15,_0xf537x16,_0xf537x17){_0xf537x16= _0xf537x16|| 500;return function(_0xf537x27){logger[_0xf86f[50]](_0xf86f[22],_0xf537x17,_0xf537x16,JSON[_0xf86f[31]](_0xf537x27));delete _0xf537x27[_0xf86f[51]];_0xf537x15[_0xf86f[29]](_0xf537x16)[_0xf86f[52]](_0xf537x27)}}exports[_0xf86f[53]]= function(_0xf537x28,_0xf537x15){var _0xf537x1b={},_0xf537x29={};_0xf537x29[_0xf86f[54]]= _[_0xf86f[57]](db[_0xf86f[56]][_0xf86f[55]]);_0xf537x29[_0xf86f[58]]= _[_0xf86f[57]](_0xf537x28[_0xf86f[58]]);_0xf537x29[_0xf86f[59]]= _[_0xf86f[60]](_0xf537x29[_0xf86f[54]],_0xf537x29[_0xf86f[58]]);_0xf537x1b[_0xf86f[61]]= _[_0xf86f[60]](_0xf537x29[_0xf86f[54]],qs[_0xf86f[62]](_0xf537x28[_0xf86f[58]][_0xf86f[62]]));_0xf537x1b[_0xf86f[61]]= (_0xf537x1b[_0xf86f[61]][_0xf86f[63]])?_0xf537x1b[_0xf86f[61]]:_0xf537x29[_0xf86f[54]];if(!_0xf537x28[_0xf86f[58]][_0xf86f[65]](_0xf86f[64])){_0xf537x1b[_0xf86f[35]]= qs[_0xf86f[35]](_0xf537x28[_0xf86f[58]][_0xf86f[35]]);_0xf537x1b[_0xf86f[34]]= qs[_0xf86f[34]](_0xf537x28[_0xf86f[58]][_0xf86f[34]])};_0xf537x1b[_0xf86f[66]]= qs[_0xf86f[67]](_0xf537x28[_0xf86f[58]][_0xf86f[67]]);_0xf537x1b[_0xf86f[68]]= qs[_0xf86f[59]](_[_0xf86f[69]](_0xf537x28[_0xf86f[58]],_0xf537x29[_0xf86f[59]]));if(_0xf537x28[_0xf86f[58]][_0xf86f[70]]){_0xf537x1b[_0xf86f[68]]= _[_0xf86f[73]](_0xf537x1b[_0xf86f[68]],{$or:_[_0xf86f[72]](_0xf537x1b[_0xf86f[61]],function(_0xf537x2a){var _0xf537x2b={};_0xf537x2b[_0xf537x2a]= {$like:_0xf86f[71]+ _0xf537x28[_0xf86f[58]][_0xf86f[70]]+ _0xf86f[71]};return _0xf537x2b})})};_0xf537x1b= _[_0xf86f[73]]({},_0xf537x1b,_0xf537x28[_0xf86f[74]]);return db[_0xf86f[56]][_0xf86f[76]](_0xf537x1b)[_0xf86f[45]](respondWithFilteredResult(_0xf537x15,_0xf537x1b,_0xf86f[53]))[_0xf86f[75]](handleError(_0xf537x15,null,_0xf86f[53]))};exports[_0xf86f[77]]= function(_0xf537x28,_0xf537x15){var _0xf537x1b={raw:true,where:{id:_0xf537x28[_0xf86f[79]][_0xf86f[78]]}},_0xf537x29={};_0xf537x29[_0xf86f[54]]= _[_0xf86f[57]](db[_0xf86f[56]][_0xf86f[55]]);_0xf537x29[_0xf86f[58]]= _[_0xf86f[57]](_0xf537x28[_0xf86f[58]]);_0xf537x29[_0xf86f[59]]= _[_0xf86f[60]](_0xf537x29[_0xf86f[54]],_0xf537x29[_0xf86f[58]]);_0xf537x1b[_0xf86f[61]]= _[_0xf86f[60]](_0xf537x29[_0xf86f[54]],qs[_0xf86f[62]](_0xf537x28[_0xf86f[58]][_0xf86f[62]]));_0xf537x1b[_0xf86f[61]]= (_0xf537x1b[_0xf86f[61]][_0xf86f[63]])?_0xf537x1b[_0xf86f[61]]:_0xf537x29[_0xf86f[54]];_0xf537x1b= _[_0xf86f[73]]({},_0xf537x1b,_0xf537x28[_0xf86f[74]]);return db[_0xf86f[56]][_0xf86f[80]](_0xf537x1b)[_0xf86f[45]](handleEntityNotFound(_0xf537x15,null,_0xf86f[77]))[_0xf86f[45]](respondWithResult(_0xf537x15,null,_0xf86f[77]))[_0xf86f[75]](handleError(_0xf537x15,null,_0xf86f[77]))};exports[_0xf86f[81]]= function(_0xf537x28,_0xf537x15){return db[_0xf86f[56]][_0xf86f[81]](_0xf537x28[_0xf86f[82]],{})[_0xf86f[45]](respondWithResult(_0xf537x15,201,_0xf86f[81]))[_0xf86f[75]](handleError(_0xf537x15,null,_0xf86f[81]))};exports[_0xf86f[46]]= function(_0xf537x28,_0xf537x15){if(_0xf537x28[_0xf86f[82]][_0xf86f[78]]){delete _0xf537x28[_0xf86f[82]][_0xf86f[78]]};return db[_0xf86f[56]][_0xf86f[80]]({where:{id:_0xf537x28[_0xf86f[79]][_0xf86f[78]]}})[_0xf86f[45]](handleEntityNotFound(_0xf537x15,null,_0xf86f[46]))[_0xf86f[45]](saveUpdates(_0xf537x28[_0xf86f[82]],null,_0xf86f[46]))[_0xf86f[45]](respondWithResult(_0xf537x15,null,_0xf86f[46]))[_0xf86f[75]](handleError(_0xf537x15,null,_0xf86f[46]))};exports[_0xf86f[48]]= function(_0xf537x28,_0xf537x15){return db[_0xf86f[56]][_0xf86f[80]]({where:{id:_0xf537x28[_0xf86f[79]][_0xf86f[78]]}})[_0xf86f[45]](handleEntityNotFound(_0xf537x15,null,_0xf86f[48]))[_0xf86f[45]](removeEntity(_0xf537x15,null,_0xf86f[48]))[_0xf86f[75]](handleError(_0xf537x15,null,_0xf86f[48]))};exports[_0xf86f[83]]= function(_0xf537x28,_0xf537x15){return db[_0xf86f[56]][_0xf86f[83]]()[_0xf86f[45]](respondWithResult(_0xf537x15,null,_0xf86f[83]))[_0xf86f[75]](handleError(_0xf537x15,null,_0xf86f[83]))}
\ No newline at end of file
index 764f223..7802b3f 100644 (file)
@@ -1 +1 @@
-var _0x1610=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x1610[0];var _=require(_0x1610[1]);var util=require(_0x1610[2]);var logger=require(_0x1610[4])(_0x1610[3]);var attributes=require(_0x1610[5]);module[_0x1610[6]]= function(_0x806dx5,_0x806dx6){return _0x806dx5[_0x1610[9]](_0x1610[7],attributes,{tableName:_0x1610[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x6a55=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x6a55[0];var _=require(_0x6a55[1]);var util=require(_0x6a55[2]);var logger=require(_0x6a55[4])(_0x6a55[3]);var attributes=require(_0x6a55[5]);module[_0x6a55[6]]= function(_0x9544x5,_0x9544x6){return _0x9544x5[_0x6a55[9]](_0x6a55[7],attributes,{tableName:_0x6a55[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index a2b6319..f4f97c6 100644 (file)
@@ -1 +1 @@
-var _0x877d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x877d[0];var _=require(_0x877d[1]);var util=require(_0x877d[2]);var moment=require(_0x877d[3]);var BPromise=require(_0x877d[4]);var db=require(_0x877d[6])[_0x877d[5]];var utils=require(_0x877d[7]);var logger=require(_0x877d[9])(_0x877d[8]);var jayson=require(_0x877d[10]);var client=jayson[_0x877d[12]][_0x877d[11]]({port:9002});function respondWithRpcPromise(_0x69ebxb,_0x69ebxc,_0x69ebxd){return  new BPromise(function(_0x69ebxe,_0x69ebxf){return client[_0x877d[25]](_0x69ebxb,_0x69ebxd)[_0x877d[24]](function(_0x69ebx11){logger[_0x877d[17]](_0x877d[13],_0x69ebxc,_0x877d[16]);logger[_0x877d[20]](_0x877d[18],_0x69ebxc,_0x877d[16],JSON[_0x877d[19]](_0x69ebx11));if(_0x69ebx11[_0x877d[14]]){if(_0x69ebx11[_0x877d[14]][_0x877d[21]]=== 500){logger[_0x877d[14]](_0x877d[13],_0x69ebxc,_0x69ebx11[_0x877d[14]][_0x877d[22]]);return _0x69ebxf(_0x69ebx11[_0x877d[14]][_0x877d[22]])};logger[_0x877d[14]](_0x877d[13],_0x69ebxc,_0x69ebx11[_0x877d[14]][_0x877d[22]]);return _0x69ebxe(_0x69ebx11[_0x877d[14]][_0x877d[22]])}else {logger[_0x877d[17]](_0x877d[13],_0x69ebxc,_0x877d[16]);_0x69ebxe(_0x69ebx11[_0x877d[23]][_0x877d[22]])}})[_0x877d[15]](function(_0x69ebx10){logger[_0x877d[14]](_0x877d[13],_0x69ebxc,_0x69ebx10);_0x69ebxf(_0x69ebx10)})})}
\ No newline at end of file
+var _0x56d3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x56d3[0];var _=require(_0x56d3[1]);var util=require(_0x56d3[2]);var moment=require(_0x56d3[3]);var BPromise=require(_0x56d3[4]);var db=require(_0x56d3[6])[_0x56d3[5]];var utils=require(_0x56d3[7]);var logger=require(_0x56d3[9])(_0x56d3[8]);var jayson=require(_0x56d3[10]);var client=jayson[_0x56d3[12]][_0x56d3[11]]({port:9002});function respondWithRpcPromise(_0xd47bxb,_0xd47bxc,_0xd47bxd){return  new BPromise(function(_0xd47bxe,_0xd47bxf){return client[_0x56d3[25]](_0xd47bxb,_0xd47bxd)[_0x56d3[24]](function(_0xd47bx11){logger[_0x56d3[17]](_0x56d3[13],_0xd47bxc,_0x56d3[16]);logger[_0x56d3[20]](_0x56d3[18],_0xd47bxc,_0x56d3[16],JSON[_0x56d3[19]](_0xd47bx11));if(_0xd47bx11[_0x56d3[14]]){if(_0xd47bx11[_0x56d3[14]][_0x56d3[21]]=== 500){logger[_0x56d3[14]](_0x56d3[13],_0xd47bxc,_0xd47bx11[_0x56d3[14]][_0x56d3[22]]);return _0xd47bxf(_0xd47bx11[_0x56d3[14]][_0x56d3[22]])};logger[_0x56d3[14]](_0x56d3[13],_0xd47bxc,_0xd47bx11[_0x56d3[14]][_0x56d3[22]]);return _0xd47bxe(_0xd47bx11[_0x56d3[14]][_0x56d3[22]])}else {logger[_0x56d3[17]](_0x56d3[13],_0xd47bxc,_0x56d3[16]);_0xd47bxe(_0xd47bx11[_0x56d3[23]][_0x56d3[22]])}})[_0x56d3[15]](function(_0xd47bx10){logger[_0x56d3[14]](_0x56d3[13],_0xd47bxc,_0xd47bx10);_0xd47bxf(_0xd47bx10)})})}
\ No newline at end of file
index cd818c4..245ddd1 100644 (file)
@@ -1 +1 @@
-var _0xdb7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdb7a[0];var multer=require(_0xdb7a[1]);var util=require(_0xdb7a[2]);var path=require(_0xdb7a[3]);var express=require(_0xdb7a[4]);var router=express.Router();var auth=require(_0xdb7a[5]);var config=require(_0xdb7a[6]);var controller=require(_0xdb7a[7]);router[_0xdb7a[11]](_0xdb7a[8],auth[_0xdb7a[9]](),controller[_0xdb7a[10]]);router[_0xdb7a[11]](_0xdb7a[12],auth[_0xdb7a[9]](),controller[_0xdb7a[13]]);router[_0xdb7a[11]](_0xdb7a[14],auth[_0xdb7a[9]](),controller[_0xdb7a[15]]);router[_0xdb7a[17]](_0xdb7a[8],auth[_0xdb7a[9]](),controller[_0xdb7a[16]]);router[_0xdb7a[19]](_0xdb7a[14],auth[_0xdb7a[9]](),controller[_0xdb7a[18]]);router[_0xdb7a[21]](_0xdb7a[14],auth[_0xdb7a[9]](),controller[_0xdb7a[20]]);module[_0xdb7a[22]]= router
\ No newline at end of file
+var _0x665f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x665f[0];var multer=require(_0x665f[1]);var util=require(_0x665f[2]);var path=require(_0x665f[3]);var express=require(_0x665f[4]);var router=express.Router();var auth=require(_0x665f[5]);var config=require(_0x665f[6]);var controller=require(_0x665f[7]);router[_0x665f[11]](_0x665f[8],auth[_0x665f[9]](),controller[_0x665f[10]]);router[_0x665f[11]](_0x665f[12],auth[_0x665f[9]](),controller[_0x665f[13]]);router[_0x665f[11]](_0x665f[14],auth[_0x665f[9]](),controller[_0x665f[15]]);router[_0x665f[17]](_0x665f[8],auth[_0x665f[9]](),controller[_0x665f[16]]);router[_0x665f[19]](_0x665f[14],auth[_0x665f[9]](),controller[_0x665f[18]]);router[_0x665f[21]](_0x665f[14],auth[_0x665f[9]](),controller[_0x665f[20]]);module[_0x665f[22]]= router
\ No newline at end of file
index cf4fb61..b56a33e 100644 (file)
@@ -1 +1 @@
-var _0xccf4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x75\x73\x65\x4F\x76\x65\x72","\x74\x69\x6D\x65\x6F\x75\x74","\x49\x4E\x54\x45\x47\x45\x52"];_0xccf4[0];var Sequelize=require(_0xccf4[1]);module[_0xccf4[2]]= {name:{type:Sequelize[_0xccf4[3]],allowNull:false},type:{type:Sequelize.ENUM(_0xccf4[4],_0xccf4[5]),defaultValue:_0xccf4[4]},selector:{type:Sequelize[_0xccf4[3]]},timeout:{type:Sequelize[_0xccf4[6]]}}
\ No newline at end of file
+var _0x1b6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x75\x73\x65\x4F\x76\x65\x72","\x74\x69\x6D\x65\x6F\x75\x74","\x49\x4E\x54\x45\x47\x45\x52"];_0x1b6d[0];var Sequelize=require(_0x1b6d[1]);module[_0x1b6d[2]]= {name:{type:Sequelize[_0x1b6d[3]],allowNull:false},type:{type:Sequelize.ENUM(_0x1b6d[4],_0x1b6d[5]),defaultValue:_0x1b6d[4]},selector:{type:Sequelize[_0x1b6d[3]]},timeout:{type:Sequelize[_0x1b6d[6]]}}
\ No newline at end of file
index 9b74ee7..1ec70a9 100644 (file)
@@ -1 +1 @@
-var _0x953f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x953f[0];var jsonpatch=require(_0x953f[1]);var rp=require(_0x953f[2]);var moment=require(_0x953f[3]);var BPromise=require(_0x953f[4]);var util=require(_0x953f[5]);var path=require(_0x953f[6]);var sox=require(_0x953f[7]);var ejs=require(_0x953f[8]);var fs=require(_0x953f[9]);var _=require(_0x953f[10]);var squel=require(_0x953f[11]);var crypto=require(_0x953f[12]);var jsforce=require(_0x953f[13]);var toCsv=require(_0x953f[14]);var qs=require(_0x953f[15]);var logger=require(_0x953f[17])(_0x953f[16]);var utils=require(_0x953f[18]);var config=require(_0x953f[19]);var db=require(_0x953f[21])[_0x953f[20]];function respondWithStatusCode(_0xa35ex15,_0xa35ex16,_0xa35ex17){_0xa35ex16= _0xa35ex16|| 204;return function(_0xa35ex18){if(_0xa35ex18){logger[_0x953f[24]](_0x953f[22],_0xa35ex17,_0xa35ex16,_0x953f[23]);logger[_0x953f[26]](_0x953f[25],_0xa35ex17,_0xa35ex16,_0x953f[23]);return _0xa35ex15[_0x953f[27]](_0xa35ex16)};return _0xa35ex15[_0x953f[29]](304)[_0x953f[28]]()}}function respondWithResult(_0xa35ex15,_0xa35ex16,_0xa35ex17){_0xa35ex16= _0xa35ex16|| 200;return function(_0xa35ex18){if(_0xa35ex18){logger[_0x953f[24]](_0x953f[22],_0xa35ex17,_0xa35ex16,_0x953f[30]);logger[_0x953f[26]](_0x953f[25],_0xa35ex17,_0xa35ex16,_0x953f[30],JSON[_0x953f[31]](_0xa35ex18));return _0xa35ex15[_0x953f[29]](_0xa35ex16)[_0x953f[32]](_0xa35ex18)};return _0xa35ex15[_0x953f[29]](304)[_0x953f[28]]()}}function respondWithFilteredResult(_0xa35ex15,_0xa35ex1b,_0xa35ex17){return function(_0xa35ex18){if(_0xa35ex18){var _0xa35ex1c=_0xa35ex18[_0x953f[33]],_0xa35ex1d=_0xa35ex1b[_0x953f[34]],_0xa35ex1e=_0xa35ex1b[_0x953f[34]]+ _0xa35ex1b[_0x953f[35]],_0xa35ex16;if(_0xa35ex1e>= _0xa35ex1c){_0xa35ex1e= _0xa35ex1c;_0xa35ex16= 200}else {_0xa35ex16= 206};_0xa35ex15[_0x953f[29]](_0xa35ex16);logger[_0x953f[24]](_0x953f[22],_0xa35ex17,_0xa35ex16,_0x953f[36]);logger[_0x953f[26]](_0x953f[25],_0xa35ex17,_0xa35ex16,_0x953f[30],JSON[_0x953f[31]](_0xa35ex18));return _0xa35ex15[_0x953f[40]](_0x953f[37],_0xa35ex1d+ _0x953f[38]+ _0xa35ex1e+ _0x953f[39]+ _0xa35ex1c)[_0x953f[32]](_0xa35ex18)};return null}}function patchUpdates(_0xa35ex20){return function(_0xa35ex18){try{jsonpatch[_0x953f[41]](_0xa35ex18,_0xa35ex20,true)}catch(err){return BPromise[_0x953f[42]](err)};return _0xa35ex18[_0x953f[43]]()}}function saveUpdates(_0xa35ex22,_0xa35ex16,_0xa35ex17){return function(_0xa35ex18){if(_0xa35ex18){return _0xa35ex18[_0x953f[46]](_0xa35ex22)[_0x953f[45]](function(_0xa35ex23){logger[_0x953f[24]](_0x953f[22],_0xa35ex17,_0xa35ex16,_0x953f[44]);logger[_0x953f[26]](_0x953f[25],_0xa35ex17,_0xa35ex16,_0x953f[44],JSON[_0x953f[31]](_0xa35ex18));return _0xa35ex23})};return null}}function removeEntity(_0xa35ex15,_0xa35ex16,_0xa35ex17){return function(_0xa35ex18){if(_0xa35ex18){return _0xa35ex18[_0x953f[48]]()[_0x953f[45]](function(){logger[_0x953f[24]](_0x953f[22],_0xa35ex17,_0xa35ex16,_0x953f[47]);logger[_0x953f[26]](_0x953f[25],_0xa35ex17,_0xa35ex16,_0x953f[47],JSON[_0x953f[31]](_0xa35ex18));_0xa35ex15[_0x953f[29]](204)[_0x953f[28]]()})}}}function handleEntityNotFound(_0xa35ex15,_0xa35ex16,_0xa35ex17){return function(_0xa35ex18){if(!_0xa35ex18){logger[_0x953f[50]](_0x953f[22],_0xa35ex17,404,_0x953f[49]);_0xa35ex15[_0x953f[29]](404)[_0x953f[28]]();return null};return _0xa35ex18}}function handleError(_0xa35ex15,_0xa35ex16,_0xa35ex17){_0xa35ex16= _0xa35ex16|| 500;return function(_0xa35ex27){logger[_0x953f[50]](_0x953f[22],_0xa35ex17,_0xa35ex16,JSON[_0x953f[31]](_0xa35ex27));delete _0xa35ex27[_0x953f[51]];_0xa35ex15[_0x953f[29]](_0xa35ex16)[_0x953f[52]](_0xa35ex27)}}exports[_0x953f[53]]= function(_0xa35ex28,_0xa35ex15){var _0xa35ex1b={raw:true,where:{id:_0xa35ex28[_0x953f[55]][_0x953f[54]]}},_0xa35ex29={};_0xa35ex29[_0x953f[56]]= _[_0x953f[59]](db[_0x953f[58]][_0x953f[57]]);_0xa35ex29[_0x953f[60]]= _[_0x953f[59]](_0xa35ex28[_0x953f[60]]);_0xa35ex29[_0x953f[61]]= _[_0x953f[62]](_0xa35ex29[_0x953f[56]],_0xa35ex29[_0x953f[60]]);_0xa35ex1b[_0x953f[63]]= _[_0x953f[62]](_0xa35ex29[_0x953f[56]],qs[_0x953f[64]](_0xa35ex28[_0x953f[60]][_0x953f[64]]));_0xa35ex1b[_0x953f[63]]= (_0xa35ex1b[_0x953f[63]][_0x953f[65]])?_0xa35ex1b[_0x953f[63]]:_0xa35ex29[_0x953f[56]];_0xa35ex1b= _[_0x953f[67]]({},_0xa35ex1b,_0xa35ex28[_0x953f[66]]);return db[_0x953f[58]][_0x953f[69]](_0xa35ex1b)[_0x953f[45]](handleEntityNotFound(_0xa35ex15,null,_0x953f[53]))[_0x953f[45]](respondWithResult(_0xa35ex15,null,_0x953f[53]))[_0x953f[68]](handleError(_0xa35ex15,null,_0x953f[53]))};exports[_0x953f[46]]= function(_0xa35ex28,_0xa35ex15){if(_0xa35ex28[_0x953f[70]][_0x953f[54]]){delete _0xa35ex28[_0x953f[70]][_0x953f[54]]};return db[_0x953f[58]][_0x953f[69]]({where:{id:_0xa35ex28[_0x953f[55]][_0x953f[54]]}})[_0x953f[45]](handleEntityNotFound(_0xa35ex15,null,_0x953f[46]))[_0x953f[45]](saveUpdates(_0xa35ex28[_0x953f[70]],null,_0x953f[46]))[_0x953f[45]](respondWithResult(_0xa35ex15,null,_0x953f[46]))[_0x953f[68]](handleError(_0xa35ex15,null,_0x953f[46]))};exports[_0x953f[48]]= function(_0xa35ex28,_0xa35ex15){return db[_0x953f[58]][_0x953f[69]]({where:{id:_0xa35ex28[_0x953f[55]][_0x953f[54]]}})[_0x953f[45]](handleEntityNotFound(_0xa35ex15,null,_0x953f[48]))[_0x953f[45]](removeEntity(_0xa35ex15,null,_0x953f[48]))[_0x953f[68]](handleError(_0xa35ex15,null,_0x953f[48]))}
\ No newline at end of file
+var _0xda2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xda2f[0];var jsonpatch=require(_0xda2f[1]);var rp=require(_0xda2f[2]);var moment=require(_0xda2f[3]);var BPromise=require(_0xda2f[4]);var util=require(_0xda2f[5]);var path=require(_0xda2f[6]);var sox=require(_0xda2f[7]);var ejs=require(_0xda2f[8]);var fs=require(_0xda2f[9]);var _=require(_0xda2f[10]);var squel=require(_0xda2f[11]);var crypto=require(_0xda2f[12]);var jsforce=require(_0xda2f[13]);var toCsv=require(_0xda2f[14]);var qs=require(_0xda2f[15]);var logger=require(_0xda2f[17])(_0xda2f[16]);var utils=require(_0xda2f[18]);var config=require(_0xda2f[19]);var db=require(_0xda2f[21])[_0xda2f[20]];function respondWithStatusCode(_0xc185x15,_0xc185x16,_0xc185x17){_0xc185x16= _0xc185x16|| 204;return function(_0xc185x18){if(_0xc185x18){logger[_0xda2f[24]](_0xda2f[22],_0xc185x17,_0xc185x16,_0xda2f[23]);logger[_0xda2f[26]](_0xda2f[25],_0xc185x17,_0xc185x16,_0xda2f[23]);return _0xc185x15[_0xda2f[27]](_0xc185x16)};return _0xc185x15[_0xda2f[29]](304)[_0xda2f[28]]()}}function respondWithResult(_0xc185x15,_0xc185x16,_0xc185x17){_0xc185x16= _0xc185x16|| 200;return function(_0xc185x18){if(_0xc185x18){logger[_0xda2f[24]](_0xda2f[22],_0xc185x17,_0xc185x16,_0xda2f[30]);logger[_0xda2f[26]](_0xda2f[25],_0xc185x17,_0xc185x16,_0xda2f[30],JSON[_0xda2f[31]](_0xc185x18));return _0xc185x15[_0xda2f[29]](_0xc185x16)[_0xda2f[32]](_0xc185x18)};return _0xc185x15[_0xda2f[29]](304)[_0xda2f[28]]()}}function respondWithFilteredResult(_0xc185x15,_0xc185x1b,_0xc185x17){return function(_0xc185x18){if(_0xc185x18){var _0xc185x1c=_0xc185x18[_0xda2f[33]],_0xc185x1d=_0xc185x1b[_0xda2f[34]],_0xc185x1e=_0xc185x1b[_0xda2f[34]]+ _0xc185x1b[_0xda2f[35]],_0xc185x16;if(_0xc185x1e>= _0xc185x1c){_0xc185x1e= _0xc185x1c;_0xc185x16= 200}else {_0xc185x16= 206};_0xc185x15[_0xda2f[29]](_0xc185x16);logger[_0xda2f[24]](_0xda2f[22],_0xc185x17,_0xc185x16,_0xda2f[36]);logger[_0xda2f[26]](_0xda2f[25],_0xc185x17,_0xc185x16,_0xda2f[30],JSON[_0xda2f[31]](_0xc185x18));return _0xc185x15[_0xda2f[40]](_0xda2f[37],_0xc185x1d+ _0xda2f[38]+ _0xc185x1e+ _0xda2f[39]+ _0xc185x1c)[_0xda2f[32]](_0xc185x18)};return null}}function patchUpdates(_0xc185x20){return function(_0xc185x18){try{jsonpatch[_0xda2f[41]](_0xc185x18,_0xc185x20,true)}catch(err){return BPromise[_0xda2f[42]](err)};return _0xc185x18[_0xda2f[43]]()}}function saveUpdates(_0xc185x22,_0xc185x16,_0xc185x17){return function(_0xc185x18){if(_0xc185x18){return _0xc185x18[_0xda2f[46]](_0xc185x22)[_0xda2f[45]](function(_0xc185x23){logger[_0xda2f[24]](_0xda2f[22],_0xc185x17,_0xc185x16,_0xda2f[44]);logger[_0xda2f[26]](_0xda2f[25],_0xc185x17,_0xc185x16,_0xda2f[44],JSON[_0xda2f[31]](_0xc185x18));return _0xc185x23})};return null}}function removeEntity(_0xc185x15,_0xc185x16,_0xc185x17){return function(_0xc185x18){if(_0xc185x18){return _0xc185x18[_0xda2f[48]]()[_0xda2f[45]](function(){logger[_0xda2f[24]](_0xda2f[22],_0xc185x17,_0xc185x16,_0xda2f[47]);logger[_0xda2f[26]](_0xda2f[25],_0xc185x17,_0xc185x16,_0xda2f[47],JSON[_0xda2f[31]](_0xc185x18));_0xc185x15[_0xda2f[29]](204)[_0xda2f[28]]()})}}}function handleEntityNotFound(_0xc185x15,_0xc185x16,_0xc185x17){return function(_0xc185x18){if(!_0xc185x18){logger[_0xda2f[50]](_0xda2f[22],_0xc185x17,404,_0xda2f[49]);_0xc185x15[_0xda2f[29]](404)[_0xda2f[28]]();return null};return _0xc185x18}}function handleError(_0xc185x15,_0xc185x16,_0xc185x17){_0xc185x16= _0xc185x16|| 500;return function(_0xc185x27){logger[_0xda2f[50]](_0xda2f[22],_0xc185x17,_0xc185x16,JSON[_0xda2f[31]](_0xc185x27));delete _0xc185x27[_0xda2f[51]];_0xc185x15[_0xda2f[29]](_0xc185x16)[_0xda2f[52]](_0xc185x27)}}exports[_0xda2f[53]]= function(_0xc185x28,_0xc185x15){var _0xc185x1b={raw:true,where:{id:_0xc185x28[_0xda2f[55]][_0xda2f[54]]}},_0xc185x29={};_0xc185x29[_0xda2f[56]]= _[_0xda2f[59]](db[_0xda2f[58]][_0xda2f[57]]);_0xc185x29[_0xda2f[60]]= _[_0xda2f[59]](_0xc185x28[_0xda2f[60]]);_0xc185x29[_0xda2f[61]]= _[_0xda2f[62]](_0xc185x29[_0xda2f[56]],_0xc185x29[_0xda2f[60]]);_0xc185x1b[_0xda2f[63]]= _[_0xda2f[62]](_0xc185x29[_0xda2f[56]],qs[_0xda2f[64]](_0xc185x28[_0xda2f[60]][_0xda2f[64]]));_0xc185x1b[_0xda2f[63]]= (_0xc185x1b[_0xda2f[63]][_0xda2f[65]])?_0xc185x1b[_0xda2f[63]]:_0xc185x29[_0xda2f[56]];_0xc185x1b= _[_0xda2f[67]]({},_0xc185x1b,_0xc185x28[_0xda2f[66]]);return db[_0xda2f[58]][_0xda2f[69]](_0xc185x1b)[_0xda2f[45]](handleEntityNotFound(_0xc185x15,null,_0xda2f[53]))[_0xda2f[45]](respondWithResult(_0xc185x15,null,_0xda2f[53]))[_0xda2f[68]](handleError(_0xc185x15,null,_0xda2f[53]))};exports[_0xda2f[46]]= function(_0xc185x28,_0xc185x15){if(_0xc185x28[_0xda2f[70]][_0xda2f[54]]){delete _0xc185x28[_0xda2f[70]][_0xda2f[54]]};return db[_0xda2f[58]][_0xda2f[69]]({where:{id:_0xc185x28[_0xda2f[55]][_0xda2f[54]]}})[_0xda2f[45]](handleEntityNotFound(_0xc185x15,null,_0xda2f[46]))[_0xda2f[45]](saveUpdates(_0xc185x28[_0xda2f[70]],null,_0xda2f[46]))[_0xda2f[45]](respondWithResult(_0xc185x15,null,_0xda2f[46]))[_0xda2f[68]](handleError(_0xc185x15,null,_0xda2f[46]))};exports[_0xda2f[48]]= function(_0xc185x28,_0xc185x15){return db[_0xda2f[58]][_0xda2f[69]]({where:{id:_0xc185x28[_0xda2f[55]][_0xda2f[54]]}})[_0xda2f[45]](handleEntityNotFound(_0xc185x15,null,_0xda2f[48]))[_0xda2f[45]](removeEntity(_0xc185x15,null,_0xda2f[48]))[_0xda2f[68]](handleError(_0xc185x15,null,_0xda2f[48]))}
\ No newline at end of file
index cbc730f..8b9972f 100644 (file)
@@ -1 +1 @@
-var _0x8e17=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x8e17[0];var _=require(_0x8e17[1]);var util=require(_0x8e17[2]);var logger=require(_0x8e17[4])(_0x8e17[3]);var attributes=require(_0x8e17[5]);module[_0x8e17[6]]= function(_0xcb95x5,_0xcb95x6){return _0xcb95x5[_0x8e17[9]](_0x8e17[7],attributes,{tableName:_0x8e17[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x604b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x604b[0];var _=require(_0x604b[1]);var util=require(_0x604b[2]);var logger=require(_0x604b[4])(_0x604b[3]);var attributes=require(_0x604b[5]);module[_0x604b[6]]= function(_0xc137x5,_0xc137x6){return _0xc137x5[_0x604b[9]](_0x604b[7],attributes,{tableName:_0x604b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 53b9d9d..d7c29fd 100644 (file)
@@ -1 +1 @@
-var _0x6476=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6476[0];var _=require(_0x6476[1]);var util=require(_0x6476[2]);var moment=require(_0x6476[3]);var BPromise=require(_0x6476[4]);var db=require(_0x6476[6])[_0x6476[5]];var utils=require(_0x6476[7]);var logger=require(_0x6476[9])(_0x6476[8]);var jayson=require(_0x6476[10]);var client=jayson[_0x6476[12]][_0x6476[11]]({port:9002});function respondWithRpcPromise(_0xe456xb,_0xe456xc,_0xe456xd){return  new BPromise(function(_0xe456xe,_0xe456xf){return client[_0x6476[25]](_0xe456xb,_0xe456xd)[_0x6476[24]](function(_0xe456x11){logger[_0x6476[17]](_0x6476[13],_0xe456xc,_0x6476[16]);logger[_0x6476[20]](_0x6476[18],_0xe456xc,_0x6476[16],JSON[_0x6476[19]](_0xe456x11));if(_0xe456x11[_0x6476[14]]){if(_0xe456x11[_0x6476[14]][_0x6476[21]]=== 500){logger[_0x6476[14]](_0x6476[13],_0xe456xc,_0xe456x11[_0x6476[14]][_0x6476[22]]);return _0xe456xf(_0xe456x11[_0x6476[14]][_0x6476[22]])};logger[_0x6476[14]](_0x6476[13],_0xe456xc,_0xe456x11[_0x6476[14]][_0x6476[22]]);return _0xe456xe(_0xe456x11[_0x6476[14]][_0x6476[22]])}else {logger[_0x6476[17]](_0x6476[13],_0xe456xc,_0x6476[16]);_0xe456xe(_0xe456x11[_0x6476[23]][_0x6476[22]])}})[_0x6476[15]](function(_0xe456x10){logger[_0x6476[14]](_0x6476[13],_0xe456xc,_0xe456x10);_0xe456xf(_0xe456x10)})})}
\ No newline at end of file
+var _0x3881=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3881[0];var _=require(_0x3881[1]);var util=require(_0x3881[2]);var moment=require(_0x3881[3]);var BPromise=require(_0x3881[4]);var db=require(_0x3881[6])[_0x3881[5]];var utils=require(_0x3881[7]);var logger=require(_0x3881[9])(_0x3881[8]);var jayson=require(_0x3881[10]);var client=jayson[_0x3881[12]][_0x3881[11]]({port:9002});function respondWithRpcPromise(_0x6871xb,_0x6871xc,_0x6871xd){return  new BPromise(function(_0x6871xe,_0x6871xf){return client[_0x3881[25]](_0x6871xb,_0x6871xd)[_0x3881[24]](function(_0x6871x11){logger[_0x3881[17]](_0x3881[13],_0x6871xc,_0x3881[16]);logger[_0x3881[20]](_0x3881[18],_0x6871xc,_0x3881[16],JSON[_0x3881[19]](_0x6871x11));if(_0x6871x11[_0x3881[14]]){if(_0x6871x11[_0x3881[14]][_0x3881[21]]=== 500){logger[_0x3881[14]](_0x3881[13],_0x6871xc,_0x6871x11[_0x3881[14]][_0x3881[22]]);return _0x6871xf(_0x6871x11[_0x3881[14]][_0x3881[22]])};logger[_0x3881[14]](_0x3881[13],_0x6871xc,_0x6871x11[_0x3881[14]][_0x3881[22]]);return _0x6871xe(_0x6871x11[_0x3881[14]][_0x3881[22]])}else {logger[_0x3881[17]](_0x3881[13],_0x6871xc,_0x3881[16]);_0x6871xe(_0x6871x11[_0x3881[23]][_0x3881[22]])}})[_0x3881[15]](function(_0x6871x10){logger[_0x3881[14]](_0x3881[13],_0x6871xc,_0x6871x10);_0x6871xf(_0x6871x10)})})}
\ No newline at end of file
index bee09ee..59d5e2f 100644 (file)
@@ -1 +1 @@
-var _0x64ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x64ea[0];var multer=require(_0x64ea[1]);var util=require(_0x64ea[2]);var path=require(_0x64ea[3]);var express=require(_0x64ea[4]);var router=express.Router();var auth=require(_0x64ea[5]);var config=require(_0x64ea[6]);var controller=require(_0x64ea[7]);router[_0x64ea[11]](_0x64ea[8],auth[_0x64ea[9]](),controller[_0x64ea[10]]);router[_0x64ea[13]](_0x64ea[8],auth[_0x64ea[9]](),controller[_0x64ea[12]]);router[_0x64ea[15]](_0x64ea[8],auth[_0x64ea[9]](),controller[_0x64ea[14]]);module[_0x64ea[16]]= router
\ No newline at end of file
+var _0x2375=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2375[0];var multer=require(_0x2375[1]);var util=require(_0x2375[2]);var path=require(_0x2375[3]);var express=require(_0x2375[4]);var router=express.Router();var auth=require(_0x2375[5]);var config=require(_0x2375[6]);var controller=require(_0x2375[7]);router[_0x2375[11]](_0x2375[8],auth[_0x2375[9]](),controller[_0x2375[10]]);router[_0x2375[13]](_0x2375[8],auth[_0x2375[9]](),controller[_0x2375[12]]);router[_0x2375[15]](_0x2375[8],auth[_0x2375[9]](),controller[_0x2375[14]]);module[_0x2375[16]]= router
\ No newline at end of file
index 5762adf..18bb12b 100644 (file)
@@ -1 +1 @@
-var _0x372c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x372c[0];var Sequelize=require(_0x372c[1]);module[_0x372c[2]]= {name:{type:Sequelize[_0x372c[3]],unique:_0x372c[4],allowNull:false,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x372c[3]]},timeout:{type:Sequelize[_0x372c[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x372c[6],_0x372c[7],_0x372c[8])},lastAgent:{type:Sequelize[_0x372c[5]],defaultValue:0}}
\ No newline at end of file
+var _0x7ace=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x7ace[0];var Sequelize=require(_0x7ace[1]);module[_0x7ace[2]]= {name:{type:Sequelize[_0x7ace[3]],unique:_0x7ace[4],allowNull:false,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x7ace[3]]},timeout:{type:Sequelize[_0x7ace[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x7ace[6],_0x7ace[7],_0x7ace[8])},lastAgent:{type:Sequelize[_0x7ace[5]],defaultValue:0}}
\ No newline at end of file
index 6c87d22..1038194 100644 (file)
@@ -1 +1 @@
-var _0xdd7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xdd7d[0];var jsonpatch=require(_0xdd7d[1]);var rp=require(_0xdd7d[2]);var moment=require(_0xdd7d[3]);var BPromise=require(_0xdd7d[4]);var util=require(_0xdd7d[5]);var path=require(_0xdd7d[6]);var sox=require(_0xdd7d[7]);var ejs=require(_0xdd7d[8]);var fs=require(_0xdd7d[9]);var _=require(_0xdd7d[10]);var squel=require(_0xdd7d[11]);var crypto=require(_0xdd7d[12]);var jsforce=require(_0xdd7d[13]);var toCsv=require(_0xdd7d[14]);var qs=require(_0xdd7d[15]);var logger=require(_0xdd7d[17])(_0xdd7d[16]);var utils=require(_0xdd7d[18]);var config=require(_0xdd7d[19]);var db=require(_0xdd7d[21])[_0xdd7d[20]];function respondWithStatusCode(_0x8867x15,_0x8867x16,_0x8867x17){_0x8867x16= _0x8867x16|| 204;return function(_0x8867x18){if(_0x8867x18){logger[_0xdd7d[24]](_0xdd7d[22],_0x8867x17,_0x8867x16,_0xdd7d[23]);logger[_0xdd7d[26]](_0xdd7d[25],_0x8867x17,_0x8867x16,_0xdd7d[23]);return _0x8867x15[_0xdd7d[27]](_0x8867x16)};return _0x8867x15[_0xdd7d[29]](304)[_0xdd7d[28]]()}}function respondWithResult(_0x8867x15,_0x8867x16,_0x8867x17){_0x8867x16= _0x8867x16|| 200;return function(_0x8867x18){if(_0x8867x18){logger[_0xdd7d[24]](_0xdd7d[22],_0x8867x17,_0x8867x16,_0xdd7d[30]);logger[_0xdd7d[26]](_0xdd7d[25],_0x8867x17,_0x8867x16,_0xdd7d[30],JSON[_0xdd7d[31]](_0x8867x18));return _0x8867x15[_0xdd7d[29]](_0x8867x16)[_0xdd7d[32]](_0x8867x18)};return _0x8867x15[_0xdd7d[29]](304)[_0xdd7d[28]]()}}function respondWithFilteredResult(_0x8867x15,_0x8867x1b,_0x8867x17){return function(_0x8867x18){if(_0x8867x18){var _0x8867x1c=_0x8867x18[_0xdd7d[33]],_0x8867x1d=_0x8867x1b[_0xdd7d[34]],_0x8867x1e=_0x8867x1b[_0xdd7d[34]]+ _0x8867x1b[_0xdd7d[35]],_0x8867x16;if(_0x8867x1e>= _0x8867x1c){_0x8867x1e= _0x8867x1c;_0x8867x16= 200}else {_0x8867x16= 206};_0x8867x15[_0xdd7d[29]](_0x8867x16);logger[_0xdd7d[24]](_0xdd7d[22],_0x8867x17,_0x8867x16,_0xdd7d[36]);logger[_0xdd7d[26]](_0xdd7d[25],_0x8867x17,_0x8867x16,_0xdd7d[30],JSON[_0xdd7d[31]](_0x8867x18));return _0x8867x15[_0xdd7d[40]](_0xdd7d[37],_0x8867x1d+ _0xdd7d[38]+ _0x8867x1e+ _0xdd7d[39]+ _0x8867x1c)[_0xdd7d[32]](_0x8867x18)};return null}}function patchUpdates(_0x8867x20){return function(_0x8867x18){try{jsonpatch[_0xdd7d[41]](_0x8867x18,_0x8867x20,true)}catch(err){return BPromise[_0xdd7d[42]](err)};return _0x8867x18[_0xdd7d[43]]()}}function saveUpdates(_0x8867x22,_0x8867x16,_0x8867x17){return function(_0x8867x18){if(_0x8867x18){return _0x8867x18[_0xdd7d[46]](_0x8867x22)[_0xdd7d[45]](function(_0x8867x23){logger[_0xdd7d[24]](_0xdd7d[22],_0x8867x17,_0x8867x16,_0xdd7d[44]);logger[_0xdd7d[26]](_0xdd7d[25],_0x8867x17,_0x8867x16,_0xdd7d[44],JSON[_0xdd7d[31]](_0x8867x18));return _0x8867x23})};return null}}function removeEntity(_0x8867x15,_0x8867x16,_0x8867x17){return function(_0x8867x18){if(_0x8867x18){return _0x8867x18[_0xdd7d[48]]()[_0xdd7d[45]](function(){logger[_0xdd7d[24]](_0xdd7d[22],_0x8867x17,_0x8867x16,_0xdd7d[47]);logger[_0xdd7d[26]](_0xdd7d[25],_0x8867x17,_0x8867x16,_0xdd7d[47],JSON[_0xdd7d[31]](_0x8867x18));_0x8867x15[_0xdd7d[29]](204)[_0xdd7d[28]]()})}}}function handleEntityNotFound(_0x8867x15,_0x8867x16,_0x8867x17){return function(_0x8867x18){if(!_0x8867x18){logger[_0xdd7d[50]](_0xdd7d[22],_0x8867x17,404,_0xdd7d[49]);_0x8867x15[_0xdd7d[29]](404)[_0xdd7d[28]]();return null};return _0x8867x18}}function handleError(_0x8867x15,_0x8867x16,_0x8867x17){_0x8867x16= _0x8867x16|| 500;return function(_0x8867x27){logger[_0xdd7d[50]](_0xdd7d[22],_0x8867x17,_0x8867x16,JSON[_0xdd7d[31]](_0x8867x27));delete _0x8867x27[_0xdd7d[51]];_0x8867x15[_0xdd7d[29]](_0x8867x16)[_0xdd7d[52]](_0x8867x27)}}exports[_0xdd7d[53]]= function(_0x8867x28,_0x8867x15){var _0x8867x1b={},_0x8867x29={};_0x8867x29[_0xdd7d[54]]= _[_0xdd7d[57]](db[_0xdd7d[56]][_0xdd7d[55]]);_0x8867x29[_0xdd7d[58]]= _[_0xdd7d[57]](_0x8867x28[_0xdd7d[58]]);_0x8867x29[_0xdd7d[59]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],_0x8867x29[_0xdd7d[58]]);_0x8867x1b[_0xdd7d[61]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],qs[_0xdd7d[62]](_0x8867x28[_0xdd7d[58]][_0xdd7d[62]]));_0x8867x1b[_0xdd7d[61]]= (_0x8867x1b[_0xdd7d[61]][_0xdd7d[63]])?_0x8867x1b[_0xdd7d[61]]:_0x8867x29[_0xdd7d[54]];if(!_0x8867x28[_0xdd7d[58]][_0xdd7d[65]](_0xdd7d[64])){_0x8867x1b[_0xdd7d[35]]= qs[_0xdd7d[35]](_0x8867x28[_0xdd7d[58]][_0xdd7d[35]]);_0x8867x1b[_0xdd7d[34]]= qs[_0xdd7d[34]](_0x8867x28[_0xdd7d[58]][_0xdd7d[34]])};_0x8867x1b[_0xdd7d[66]]= qs[_0xdd7d[67]](_0x8867x28[_0xdd7d[58]][_0xdd7d[67]]);_0x8867x1b[_0xdd7d[68]]= qs[_0xdd7d[59]](_[_0xdd7d[69]](_0x8867x28[_0xdd7d[58]],_0x8867x29[_0xdd7d[59]]));if(_0x8867x28[_0xdd7d[58]][_0xdd7d[70]]){_0x8867x1b[_0xdd7d[68]]= _[_0xdd7d[73]](_0x8867x1b[_0xdd7d[68]],{$or:_[_0xdd7d[72]](_0x8867x1b[_0xdd7d[61]],function(_0x8867x2a){var _0x8867x2b={};_0x8867x2b[_0x8867x2a]= {$like:_0xdd7d[71]+ _0x8867x28[_0xdd7d[58]][_0xdd7d[70]]+ _0xdd7d[71]};return _0x8867x2b})})};_0x8867x1b= _[_0xdd7d[73]]({},_0x8867x1b,_0x8867x28[_0xdd7d[74]]);return db[_0xdd7d[56]][_0xdd7d[76]](_0x8867x1b)[_0xdd7d[45]](respondWithFilteredResult(_0x8867x15,_0x8867x1b,_0xdd7d[53]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[53]))};exports[_0xdd7d[77]]= function(_0x8867x28,_0x8867x15){var _0x8867x1b={raw:true,where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}},_0x8867x29={};_0x8867x29[_0xdd7d[54]]= _[_0xdd7d[57]](db[_0xdd7d[56]][_0xdd7d[55]]);_0x8867x29[_0xdd7d[58]]= _[_0xdd7d[57]](_0x8867x28[_0xdd7d[58]]);_0x8867x29[_0xdd7d[59]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],_0x8867x29[_0xdd7d[58]]);_0x8867x1b[_0xdd7d[61]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],qs[_0xdd7d[62]](_0x8867x28[_0xdd7d[58]][_0xdd7d[62]]));_0x8867x1b[_0xdd7d[61]]= (_0x8867x1b[_0xdd7d[61]][_0xdd7d[63]])?_0x8867x1b[_0xdd7d[61]]:_0x8867x29[_0xdd7d[54]];_0x8867x1b= _[_0xdd7d[73]]({},_0x8867x1b,_0x8867x28[_0xdd7d[74]]);return db[_0xdd7d[56]][_0xdd7d[80]](_0x8867x1b)[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[77]))[_0xdd7d[45]](respondWithResult(_0x8867x15,null,_0xdd7d[77]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[77]))};exports[_0xdd7d[81]]= function(_0x8867x28,_0x8867x15){return db[_0xdd7d[56]][_0xdd7d[81]](_0x8867x28[_0xdd7d[82]],{})[_0xdd7d[45]](respondWithResult(_0x8867x15,201,_0xdd7d[81]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[81]))};exports[_0xdd7d[46]]= function(_0x8867x28,_0x8867x15){if(_0x8867x28[_0xdd7d[82]][_0xdd7d[78]]){delete _0x8867x28[_0xdd7d[82]][_0xdd7d[78]]};return db[_0xdd7d[56]][_0xdd7d[80]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[46]))[_0xdd7d[45]](saveUpdates(_0x8867x28[_0xdd7d[82]],null,_0xdd7d[46]))[_0xdd7d[45]](respondWithResult(_0x8867x15,null,_0xdd7d[46]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[46]))};exports[_0xdd7d[48]]= function(_0x8867x28,_0x8867x15){return db[_0xdd7d[56]][_0xdd7d[80]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[48]))[_0xdd7d[45]](removeEntity(_0x8867x15,null,_0xdd7d[48]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[48]))};exports[_0xdd7d[83]]= function(_0x8867x28,_0x8867x18,_0x8867x2c){var _0x8867x1b={};var _0x8867x29={};var _0x8867x2d;var _0x8867x1c;return db[_0xdd7d[56]][_0xdd7d[85]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x18,null,_0xdd7d[83]))[_0xdd7d[45]](function(_0x8867x18){if(_0x8867x18){_0x8867x2d= _0x8867x18;_0x8867x29[_0xdd7d[54]]= _[_0xdd7d[57]](db[_0xdd7d[84]][_0xdd7d[55]]);_0x8867x29[_0xdd7d[58]]= _[_0xdd7d[57]](_0x8867x28[_0xdd7d[58]]);_0x8867x29[_0xdd7d[59]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],_0x8867x29[_0xdd7d[58]]);_0x8867x1b[_0xdd7d[61]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],qs[_0xdd7d[62]](_0x8867x28[_0xdd7d[58]][_0xdd7d[62]]));_0x8867x1b[_0xdd7d[61]]= (_0x8867x1b[_0xdd7d[61]][_0xdd7d[63]])?_0x8867x1b[_0xdd7d[61]]:_0x8867x29[_0xdd7d[54]];_0x8867x1b[_0xdd7d[66]]= qs[_0xdd7d[67]](_0x8867x28[_0xdd7d[58]][_0xdd7d[67]]);_0x8867x1b[_0xdd7d[68]]= qs[_0xdd7d[59]](_[_0xdd7d[69]](_0x8867x28[_0xdd7d[58]],_0x8867x29[_0xdd7d[59]]));if(_0x8867x28[_0xdd7d[58]][_0xdd7d[70]]){_0x8867x1b[_0xdd7d[68]]= _[_0xdd7d[73]](_0x8867x1b[_0xdd7d[68]],{$or:_[_0xdd7d[72]](_0x8867x1b[_0xdd7d[61]],function(_0x8867x2a){var _0x8867x2b={};_0x8867x2b[_0x8867x2a]= {$like:_0xdd7d[71]+ _0x8867x28[_0xdd7d[58]][_0xdd7d[70]]+ _0xdd7d[71]};return _0x8867x2b})})};_0x8867x1b= _[_0xdd7d[73]]({},_0x8867x1b,_0x8867x28[_0xdd7d[74]]);return _0x8867x2d[_0xdd7d[83]](_0x8867x1b)}})[_0xdd7d[45]](function(_0x8867x2f){if(_0x8867x2f){_0x8867x1c= _0x8867x2f[_0xdd7d[63]];if(!_0x8867x28[_0xdd7d[58]][_0xdd7d[65]](_0xdd7d[64])){_0x8867x1b[_0xdd7d[35]]= qs[_0xdd7d[35]](_0x8867x28[_0xdd7d[58]][_0xdd7d[35]]);_0x8867x1b[_0xdd7d[34]]= qs[_0xdd7d[34]](_0x8867x28[_0xdd7d[58]][_0xdd7d[34]])};return _0x8867x2d[_0xdd7d[83]](_0x8867x1b)}})[_0xdd7d[45]](function(_0x8867x2e){return _0x8867x2e?{count:_0x8867x1c,rows:_0x8867x2e}:null})[_0xdd7d[45]](respondWithResult(_0x8867x18,null,_0xdd7d[83]))[_0xdd7d[75]](handleError(_0x8867x18,null,_0xdd7d[83]))};exports[_0xdd7d[86]]= function(_0x8867x28,_0x8867x15,_0x8867x2c){var _0x8867x30=[];var _0x8867x31;return db[_0xdd7d[84]][_0xdd7d[93]]({where:{id:_0x8867x28[_0xdd7d[82]][_0xdd7d[87]]},attributes:[_0xdd7d[78]],include:[{model:db[_0xdd7d[92]],as:_0xdd7d[90],attributes:[_0xdd7d[78]],raw:true}]})[_0xdd7d[45]](function(_0x8867x34){if(_0x8867x34){for(var _0x8867x35=0;_0x8867x35< _0x8867x34[_0xdd7d[63]];_0x8867x35+= 1){for(var _0x8867x36=0;_0x8867x36< _0x8867x34[_0x8867x35][_0xdd7d[90]][_0xdd7d[63]];_0x8867x36+= 1){_0x8867x30= _[_0xdd7d[91]](_0x8867x30,[_0x8867x34[_0x8867x35][_0xdd7d[90]][_0x8867x36][_0xdd7d[78]]])}};return _0x8867x30}})[_0xdd7d[45]](function(_0x8867x33){if(_0x8867x33){return db[_0xdd7d[56]][_0xdd7d[80]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})}})[_0xdd7d[45]](function(_0x8867x32){if(_0x8867x32){_0x8867x31= _0x8867x32;return _0x8867x31[_0xdd7d[89]](_0x8867x30,{penalty:_0x8867x28[_0xdd7d[82]][_0xdd7d[88]]})}})[_0xdd7d[45]](function(_0x8867x18){if(_0x8867x18){return _0x8867x31[_0xdd7d[86]](_0x8867x28[_0xdd7d[82]][_0xdd7d[87]])}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[86]))[_0xdd7d[45]](respondWithStatusCode(_0x8867x15,null,_0xdd7d[86]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[86]))};exports[_0xdd7d[94]]= function(_0x8867x28,_0x8867x15,_0x8867x2c){var _0x8867x30=[];var _0x8867x31;return db[_0xdd7d[84]][_0xdd7d[93]]({where:{id:_0x8867x28[_0xdd7d[58]][_0xdd7d[87]]},attributes:[_0xdd7d[78]],include:[{model:db[_0xdd7d[92]],as:_0xdd7d[90],attributes:[_0xdd7d[78]],raw:true}]})[_0xdd7d[45]](function(_0x8867x34){if(_0x8867x34){for(var _0x8867x35=0;_0x8867x35< _0x8867x34[_0xdd7d[63]];_0x8867x35+= 1){for(var _0x8867x36=0;_0x8867x36< _0x8867x34[_0x8867x35][_0xdd7d[90]][_0xdd7d[63]];_0x8867x36+= 1){_0x8867x30= _[_0xdd7d[91]](_0x8867x30,[_0x8867x34[_0x8867x35][_0xdd7d[90]][_0x8867x36][_0xdd7d[78]]])}};return _0x8867x30}})[_0xdd7d[45]](function(_0x8867x33){if(_0x8867x33){return db[_0xdd7d[56]][_0xdd7d[80]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})}})[_0xdd7d[45]](function(_0x8867x32){if(_0x8867x32){_0x8867x31= _0x8867x32;return _0x8867x31[_0xdd7d[95]](_0x8867x30)}})[_0xdd7d[45]](function(_0x8867x18){if(_0x8867x31){return _0x8867x31[_0xdd7d[94]](_0x8867x28[_0xdd7d[58]][_0xdd7d[87]])}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[94]))[_0xdd7d[45]](respondWithStatusCode(_0x8867x15,null,_0xdd7d[94]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[94]))};exports[_0xdd7d[89]]= function(_0x8867x28,_0x8867x15,_0x8867x2c){return db[_0xdd7d[56]][_0xdd7d[80]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[89]))[_0xdd7d[45]](function(_0x8867x18){if(_0x8867x18){return _0x8867x18[_0xdd7d[89]](_0x8867x28[_0xdd7d[82]][_0xdd7d[87]],_[_0xdd7d[96]](_0x8867x28[_0xdd7d[82]],[_0xdd7d[87],_0xdd7d[78]])|| {})};return null})[_0xdd7d[45]](respondWithResult(_0x8867x15,null,_0xdd7d[89]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[89]))};exports[_0xdd7d[95]]= function(_0x8867x28,_0x8867x15,_0x8867x2c){var _0x8867x2f;return db[_0xdd7d[56]][_0xdd7d[80]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x15,null,_0xdd7d[95]))[_0xdd7d[45]](function(_0x8867x18){if(_0x8867x18){return _0x8867x18[_0xdd7d[95]](_0x8867x28[_0xdd7d[58]][_0xdd7d[87]])}})[_0xdd7d[45]](respondWithStatusCode(_0x8867x15,null,_0xdd7d[95]))[_0xdd7d[75]](handleError(_0x8867x15,null,_0xdd7d[95]))};exports[_0xdd7d[97]]= function(_0x8867x28,_0x8867x18,_0x8867x2c){var _0x8867x1b={};var _0x8867x29={};var _0x8867x2d;var _0x8867x1c;return db[_0xdd7d[56]][_0xdd7d[85]]({where:{id:_0x8867x28[_0xdd7d[79]][_0xdd7d[78]]}})[_0xdd7d[45]](handleEntityNotFound(_0x8867x18,null,_0xdd7d[97]))[_0xdd7d[45]](function(_0x8867x18){if(_0x8867x18){_0x8867x2d= _0x8867x18;_0x8867x29[_0xdd7d[54]]= _[_0xdd7d[57]](db[_0xdd7d[92]][_0xdd7d[55]]);_0x8867x29[_0xdd7d[58]]= _[_0xdd7d[57]](_0x8867x28[_0xdd7d[58]]);_0x8867x29[_0xdd7d[59]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],_0x8867x29[_0xdd7d[58]]);_0x8867x1b[_0xdd7d[61]]= _[_0xdd7d[60]](_0x8867x29[_0xdd7d[54]],qs[_0xdd7d[62]](_0x8867x28[_0xdd7d[58]][_0xdd7d[62]]));_0x8867x1b[_0xdd7d[61]]= (_0x8867x1b[_0xdd7d[61]][_0xdd7d[63]])?_0x8867x1b[_0xdd7d[61]]:_0x8867x29[_0xdd7d[54]];_0x8867x1b[_0xdd7d[66]]= qs[_0xdd7d[67]](_0x8867x28[_0xdd7d[58]][_0xdd7d[67]]);_0x8867x1b[_0xdd7d[68]]= qs[_0xdd7d[59]](_[_0xdd7d[69]](_0x8867x28[_0xdd7d[58]],_0x8867x29[_0xdd7d[59]]));if(_0x8867x28[_0xdd7d[58]][_0xdd7d[70]]){_0x8867x1b[_0xdd7d[68]]= _[_0xdd7d[73]](_0x8867x1b[_0xdd7d[68]],{$or:_[_0xdd7d[72]](_0x8867x1b[_0xdd7d[61]],function(_0x8867x2a){var _0x8867x2b={};_0x8867x2b[_0x8867x2a]= {$like:_0xdd7d[71]+ _0x8867x28[_0xdd7d[58]][_0xdd7d[70]]+ _0xdd7d[71]};return _0x8867x2b})})};_0x8867x1b= _[_0xdd7d[73]]({},_0x8867x1b,_0x8867x28[_0xdd7d[74]]);return _0x8867x2d[_0xdd7d[97]](_0x8867x1b)}})[_0xdd7d[45]](function(_0x8867x2f){if(_0x8867x2f){_0x8867x1c= _0x8867x2f[_0xdd7d[63]];if(!_0x8867x28[_0xdd7d[58]][_0xdd7d[65]](_0xdd7d[64])){_0x8867x1b[_0xdd7d[35]]= qs[_0xdd7d[35]](_0x8867x28[_0xdd7d[58]][_0xdd7d[35]]);_0x8867x1b[_0xdd7d[34]]= qs[_0xdd7d[34]](_0x8867x28[_0xdd7d[58]][_0xdd7d[34]])};return _0x8867x2d[_0xdd7d[97]](_0x8867x1b)}})[_0xdd7d[45]](function(_0x8867x2e){return _0x8867x2e?{count:_0x8867x1c,rows:_0x8867x2e}:null})[_0xdd7d[45]](respondWithResult(_0x8867x18,null,_0xdd7d[97]))[_0xdd7d[75]](handleError(_0x8867x18,null,_0xdd7d[97]))}
\ No newline at end of file
+var _0xef22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xef22[0];var jsonpatch=require(_0xef22[1]);var rp=require(_0xef22[2]);var moment=require(_0xef22[3]);var BPromise=require(_0xef22[4]);var util=require(_0xef22[5]);var path=require(_0xef22[6]);var sox=require(_0xef22[7]);var ejs=require(_0xef22[8]);var fs=require(_0xef22[9]);var _=require(_0xef22[10]);var squel=require(_0xef22[11]);var crypto=require(_0xef22[12]);var jsforce=require(_0xef22[13]);var toCsv=require(_0xef22[14]);var qs=require(_0xef22[15]);var logger=require(_0xef22[17])(_0xef22[16]);var utils=require(_0xef22[18]);var config=require(_0xef22[19]);var db=require(_0xef22[21])[_0xef22[20]];function respondWithStatusCode(_0x4e38x15,_0x4e38x16,_0x4e38x17){_0x4e38x16= _0x4e38x16|| 204;return function(_0x4e38x18){if(_0x4e38x18){logger[_0xef22[24]](_0xef22[22],_0x4e38x17,_0x4e38x16,_0xef22[23]);logger[_0xef22[26]](_0xef22[25],_0x4e38x17,_0x4e38x16,_0xef22[23]);return _0x4e38x15[_0xef22[27]](_0x4e38x16)};return _0x4e38x15[_0xef22[29]](304)[_0xef22[28]]()}}function respondWithResult(_0x4e38x15,_0x4e38x16,_0x4e38x17){_0x4e38x16= _0x4e38x16|| 200;return function(_0x4e38x18){if(_0x4e38x18){logger[_0xef22[24]](_0xef22[22],_0x4e38x17,_0x4e38x16,_0xef22[30]);logger[_0xef22[26]](_0xef22[25],_0x4e38x17,_0x4e38x16,_0xef22[30],JSON[_0xef22[31]](_0x4e38x18));return _0x4e38x15[_0xef22[29]](_0x4e38x16)[_0xef22[32]](_0x4e38x18)};return _0x4e38x15[_0xef22[29]](304)[_0xef22[28]]()}}function respondWithFilteredResult(_0x4e38x15,_0x4e38x1b,_0x4e38x17){return function(_0x4e38x18){if(_0x4e38x18){var _0x4e38x1c=_0x4e38x18[_0xef22[33]],_0x4e38x1d=_0x4e38x1b[_0xef22[34]],_0x4e38x1e=_0x4e38x1b[_0xef22[34]]+ _0x4e38x1b[_0xef22[35]],_0x4e38x16;if(_0x4e38x1e>= _0x4e38x1c){_0x4e38x1e= _0x4e38x1c;_0x4e38x16= 200}else {_0x4e38x16= 206};_0x4e38x15[_0xef22[29]](_0x4e38x16);logger[_0xef22[24]](_0xef22[22],_0x4e38x17,_0x4e38x16,_0xef22[36]);logger[_0xef22[26]](_0xef22[25],_0x4e38x17,_0x4e38x16,_0xef22[30],JSON[_0xef22[31]](_0x4e38x18));return _0x4e38x15[_0xef22[40]](_0xef22[37],_0x4e38x1d+ _0xef22[38]+ _0x4e38x1e+ _0xef22[39]+ _0x4e38x1c)[_0xef22[32]](_0x4e38x18)};return null}}function patchUpdates(_0x4e38x20){return function(_0x4e38x18){try{jsonpatch[_0xef22[41]](_0x4e38x18,_0x4e38x20,true)}catch(err){return BPromise[_0xef22[42]](err)};return _0x4e38x18[_0xef22[43]]()}}function saveUpdates(_0x4e38x22,_0x4e38x16,_0x4e38x17){return function(_0x4e38x18){if(_0x4e38x18){return _0x4e38x18[_0xef22[46]](_0x4e38x22)[_0xef22[45]](function(_0x4e38x23){logger[_0xef22[24]](_0xef22[22],_0x4e38x17,_0x4e38x16,_0xef22[44]);logger[_0xef22[26]](_0xef22[25],_0x4e38x17,_0x4e38x16,_0xef22[44],JSON[_0xef22[31]](_0x4e38x18));return _0x4e38x23})};return null}}function removeEntity(_0x4e38x15,_0x4e38x16,_0x4e38x17){return function(_0x4e38x18){if(_0x4e38x18){return _0x4e38x18[_0xef22[48]]()[_0xef22[45]](function(){logger[_0xef22[24]](_0xef22[22],_0x4e38x17,_0x4e38x16,_0xef22[47]);logger[_0xef22[26]](_0xef22[25],_0x4e38x17,_0x4e38x16,_0xef22[47],JSON[_0xef22[31]](_0x4e38x18));_0x4e38x15[_0xef22[29]](204)[_0xef22[28]]()})}}}function handleEntityNotFound(_0x4e38x15,_0x4e38x16,_0x4e38x17){return function(_0x4e38x18){if(!_0x4e38x18){logger[_0xef22[50]](_0xef22[22],_0x4e38x17,404,_0xef22[49]);_0x4e38x15[_0xef22[29]](404)[_0xef22[28]]();return null};return _0x4e38x18}}function handleError(_0x4e38x15,_0x4e38x16,_0x4e38x17){_0x4e38x16= _0x4e38x16|| 500;return function(_0x4e38x27){logger[_0xef22[50]](_0xef22[22],_0x4e38x17,_0x4e38x16,JSON[_0xef22[31]](_0x4e38x27));delete _0x4e38x27[_0xef22[51]];_0x4e38x15[_0xef22[29]](_0x4e38x16)[_0xef22[52]](_0x4e38x27)}}exports[_0xef22[53]]= function(_0x4e38x28,_0x4e38x15){var _0x4e38x1b={},_0x4e38x29={};_0x4e38x29[_0xef22[54]]= _[_0xef22[57]](db[_0xef22[56]][_0xef22[55]]);_0x4e38x29[_0xef22[58]]= _[_0xef22[57]](_0x4e38x28[_0xef22[58]]);_0x4e38x29[_0xef22[59]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],_0x4e38x29[_0xef22[58]]);_0x4e38x1b[_0xef22[61]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],qs[_0xef22[62]](_0x4e38x28[_0xef22[58]][_0xef22[62]]));_0x4e38x1b[_0xef22[61]]= (_0x4e38x1b[_0xef22[61]][_0xef22[63]])?_0x4e38x1b[_0xef22[61]]:_0x4e38x29[_0xef22[54]];if(!_0x4e38x28[_0xef22[58]][_0xef22[65]](_0xef22[64])){_0x4e38x1b[_0xef22[35]]= qs[_0xef22[35]](_0x4e38x28[_0xef22[58]][_0xef22[35]]);_0x4e38x1b[_0xef22[34]]= qs[_0xef22[34]](_0x4e38x28[_0xef22[58]][_0xef22[34]])};_0x4e38x1b[_0xef22[66]]= qs[_0xef22[67]](_0x4e38x28[_0xef22[58]][_0xef22[67]]);_0x4e38x1b[_0xef22[68]]= qs[_0xef22[59]](_[_0xef22[69]](_0x4e38x28[_0xef22[58]],_0x4e38x29[_0xef22[59]]));if(_0x4e38x28[_0xef22[58]][_0xef22[70]]){_0x4e38x1b[_0xef22[68]]= _[_0xef22[73]](_0x4e38x1b[_0xef22[68]],{$or:_[_0xef22[72]](_0x4e38x1b[_0xef22[61]],function(_0x4e38x2a){var _0x4e38x2b={};_0x4e38x2b[_0x4e38x2a]= {$like:_0xef22[71]+ _0x4e38x28[_0xef22[58]][_0xef22[70]]+ _0xef22[71]};return _0x4e38x2b})})};_0x4e38x1b= _[_0xef22[73]]({},_0x4e38x1b,_0x4e38x28[_0xef22[74]]);return db[_0xef22[56]][_0xef22[76]](_0x4e38x1b)[_0xef22[45]](respondWithFilteredResult(_0x4e38x15,_0x4e38x1b,_0xef22[53]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[53]))};exports[_0xef22[77]]= function(_0x4e38x28,_0x4e38x15){var _0x4e38x1b={raw:true,where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}},_0x4e38x29={};_0x4e38x29[_0xef22[54]]= _[_0xef22[57]](db[_0xef22[56]][_0xef22[55]]);_0x4e38x29[_0xef22[58]]= _[_0xef22[57]](_0x4e38x28[_0xef22[58]]);_0x4e38x29[_0xef22[59]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],_0x4e38x29[_0xef22[58]]);_0x4e38x1b[_0xef22[61]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],qs[_0xef22[62]](_0x4e38x28[_0xef22[58]][_0xef22[62]]));_0x4e38x1b[_0xef22[61]]= (_0x4e38x1b[_0xef22[61]][_0xef22[63]])?_0x4e38x1b[_0xef22[61]]:_0x4e38x29[_0xef22[54]];_0x4e38x1b= _[_0xef22[73]]({},_0x4e38x1b,_0x4e38x28[_0xef22[74]]);return db[_0xef22[56]][_0xef22[80]](_0x4e38x1b)[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[77]))[_0xef22[45]](respondWithResult(_0x4e38x15,null,_0xef22[77]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[77]))};exports[_0xef22[81]]= function(_0x4e38x28,_0x4e38x15){return db[_0xef22[56]][_0xef22[81]](_0x4e38x28[_0xef22[82]],{})[_0xef22[45]](respondWithResult(_0x4e38x15,201,_0xef22[81]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[81]))};exports[_0xef22[46]]= function(_0x4e38x28,_0x4e38x15){if(_0x4e38x28[_0xef22[82]][_0xef22[78]]){delete _0x4e38x28[_0xef22[82]][_0xef22[78]]};return db[_0xef22[56]][_0xef22[80]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[46]))[_0xef22[45]](saveUpdates(_0x4e38x28[_0xef22[82]],null,_0xef22[46]))[_0xef22[45]](respondWithResult(_0x4e38x15,null,_0xef22[46]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[46]))};exports[_0xef22[48]]= function(_0x4e38x28,_0x4e38x15){return db[_0xef22[56]][_0xef22[80]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[48]))[_0xef22[45]](removeEntity(_0x4e38x15,null,_0xef22[48]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[48]))};exports[_0xef22[83]]= function(_0x4e38x28,_0x4e38x18,_0x4e38x2c){var _0x4e38x1b={};var _0x4e38x29={};var _0x4e38x2d;var _0x4e38x1c;return db[_0xef22[56]][_0xef22[85]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})[_0xef22[45]](handleEntityNotFound(_0x4e38x18,null,_0xef22[83]))[_0xef22[45]](function(_0x4e38x18){if(_0x4e38x18){_0x4e38x2d= _0x4e38x18;_0x4e38x29[_0xef22[54]]= _[_0xef22[57]](db[_0xef22[84]][_0xef22[55]]);_0x4e38x29[_0xef22[58]]= _[_0xef22[57]](_0x4e38x28[_0xef22[58]]);_0x4e38x29[_0xef22[59]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],_0x4e38x29[_0xef22[58]]);_0x4e38x1b[_0xef22[61]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],qs[_0xef22[62]](_0x4e38x28[_0xef22[58]][_0xef22[62]]));_0x4e38x1b[_0xef22[61]]= (_0x4e38x1b[_0xef22[61]][_0xef22[63]])?_0x4e38x1b[_0xef22[61]]:_0x4e38x29[_0xef22[54]];_0x4e38x1b[_0xef22[66]]= qs[_0xef22[67]](_0x4e38x28[_0xef22[58]][_0xef22[67]]);_0x4e38x1b[_0xef22[68]]= qs[_0xef22[59]](_[_0xef22[69]](_0x4e38x28[_0xef22[58]],_0x4e38x29[_0xef22[59]]));if(_0x4e38x28[_0xef22[58]][_0xef22[70]]){_0x4e38x1b[_0xef22[68]]= _[_0xef22[73]](_0x4e38x1b[_0xef22[68]],{$or:_[_0xef22[72]](_0x4e38x1b[_0xef22[61]],function(_0x4e38x2a){var _0x4e38x2b={};_0x4e38x2b[_0x4e38x2a]= {$like:_0xef22[71]+ _0x4e38x28[_0xef22[58]][_0xef22[70]]+ _0xef22[71]};return _0x4e38x2b})})};_0x4e38x1b= _[_0xef22[73]]({},_0x4e38x1b,_0x4e38x28[_0xef22[74]]);return _0x4e38x2d[_0xef22[83]](_0x4e38x1b)}})[_0xef22[45]](function(_0x4e38x2f){if(_0x4e38x2f){_0x4e38x1c= _0x4e38x2f[_0xef22[63]];if(!_0x4e38x28[_0xef22[58]][_0xef22[65]](_0xef22[64])){_0x4e38x1b[_0xef22[35]]= qs[_0xef22[35]](_0x4e38x28[_0xef22[58]][_0xef22[35]]);_0x4e38x1b[_0xef22[34]]= qs[_0xef22[34]](_0x4e38x28[_0xef22[58]][_0xef22[34]])};return _0x4e38x2d[_0xef22[83]](_0x4e38x1b)}})[_0xef22[45]](function(_0x4e38x2e){return _0x4e38x2e?{count:_0x4e38x1c,rows:_0x4e38x2e}:null})[_0xef22[45]](respondWithResult(_0x4e38x18,null,_0xef22[83]))[_0xef22[75]](handleError(_0x4e38x18,null,_0xef22[83]))};exports[_0xef22[86]]= function(_0x4e38x28,_0x4e38x15,_0x4e38x2c){var _0x4e38x30=[];var _0x4e38x31;return db[_0xef22[84]][_0xef22[93]]({where:{id:_0x4e38x28[_0xef22[82]][_0xef22[87]]},attributes:[_0xef22[78]],include:[{model:db[_0xef22[92]],as:_0xef22[90],attributes:[_0xef22[78]],raw:true}]})[_0xef22[45]](function(_0x4e38x34){if(_0x4e38x34){for(var _0x4e38x35=0;_0x4e38x35< _0x4e38x34[_0xef22[63]];_0x4e38x35+= 1){for(var _0x4e38x36=0;_0x4e38x36< _0x4e38x34[_0x4e38x35][_0xef22[90]][_0xef22[63]];_0x4e38x36+= 1){_0x4e38x30= _[_0xef22[91]](_0x4e38x30,[_0x4e38x34[_0x4e38x35][_0xef22[90]][_0x4e38x36][_0xef22[78]]])}};return _0x4e38x30}})[_0xef22[45]](function(_0x4e38x33){if(_0x4e38x33){return db[_0xef22[56]][_0xef22[80]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})}})[_0xef22[45]](function(_0x4e38x32){if(_0x4e38x32){_0x4e38x31= _0x4e38x32;return _0x4e38x31[_0xef22[89]](_0x4e38x30,{penalty:_0x4e38x28[_0xef22[82]][_0xef22[88]]})}})[_0xef22[45]](function(_0x4e38x18){if(_0x4e38x18){return _0x4e38x31[_0xef22[86]](_0x4e38x28[_0xef22[82]][_0xef22[87]])}})[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[86]))[_0xef22[45]](respondWithStatusCode(_0x4e38x15,null,_0xef22[86]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[86]))};exports[_0xef22[94]]= function(_0x4e38x28,_0x4e38x15,_0x4e38x2c){var _0x4e38x30=[];var _0x4e38x31;return db[_0xef22[84]][_0xef22[93]]({where:{id:_0x4e38x28[_0xef22[58]][_0xef22[87]]},attributes:[_0xef22[78]],include:[{model:db[_0xef22[92]],as:_0xef22[90],attributes:[_0xef22[78]],raw:true}]})[_0xef22[45]](function(_0x4e38x34){if(_0x4e38x34){for(var _0x4e38x35=0;_0x4e38x35< _0x4e38x34[_0xef22[63]];_0x4e38x35+= 1){for(var _0x4e38x36=0;_0x4e38x36< _0x4e38x34[_0x4e38x35][_0xef22[90]][_0xef22[63]];_0x4e38x36+= 1){_0x4e38x30= _[_0xef22[91]](_0x4e38x30,[_0x4e38x34[_0x4e38x35][_0xef22[90]][_0x4e38x36][_0xef22[78]]])}};return _0x4e38x30}})[_0xef22[45]](function(_0x4e38x33){if(_0x4e38x33){return db[_0xef22[56]][_0xef22[80]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})}})[_0xef22[45]](function(_0x4e38x32){if(_0x4e38x32){_0x4e38x31= _0x4e38x32;return _0x4e38x31[_0xef22[95]](_0x4e38x30)}})[_0xef22[45]](function(_0x4e38x18){if(_0x4e38x31){return _0x4e38x31[_0xef22[94]](_0x4e38x28[_0xef22[58]][_0xef22[87]])}})[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[94]))[_0xef22[45]](respondWithStatusCode(_0x4e38x15,null,_0xef22[94]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[94]))};exports[_0xef22[89]]= function(_0x4e38x28,_0x4e38x15,_0x4e38x2c){return db[_0xef22[56]][_0xef22[80]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[89]))[_0xef22[45]](function(_0x4e38x18){if(_0x4e38x18){return _0x4e38x18[_0xef22[89]](_0x4e38x28[_0xef22[82]][_0xef22[87]],_[_0xef22[96]](_0x4e38x28[_0xef22[82]],[_0xef22[87],_0xef22[78]])|| {})};return null})[_0xef22[45]](respondWithResult(_0x4e38x15,null,_0xef22[89]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[89]))};exports[_0xef22[95]]= function(_0x4e38x28,_0x4e38x15,_0x4e38x2c){var _0x4e38x2f;return db[_0xef22[56]][_0xef22[80]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})[_0xef22[45]](handleEntityNotFound(_0x4e38x15,null,_0xef22[95]))[_0xef22[45]](function(_0x4e38x18){if(_0x4e38x18){return _0x4e38x18[_0xef22[95]](_0x4e38x28[_0xef22[58]][_0xef22[87]])}})[_0xef22[45]](respondWithStatusCode(_0x4e38x15,null,_0xef22[95]))[_0xef22[75]](handleError(_0x4e38x15,null,_0xef22[95]))};exports[_0xef22[97]]= function(_0x4e38x28,_0x4e38x18,_0x4e38x2c){var _0x4e38x1b={};var _0x4e38x29={};var _0x4e38x2d;var _0x4e38x1c;return db[_0xef22[56]][_0xef22[85]]({where:{id:_0x4e38x28[_0xef22[79]][_0xef22[78]]}})[_0xef22[45]](handleEntityNotFound(_0x4e38x18,null,_0xef22[97]))[_0xef22[45]](function(_0x4e38x18){if(_0x4e38x18){_0x4e38x2d= _0x4e38x18;_0x4e38x29[_0xef22[54]]= _[_0xef22[57]](db[_0xef22[92]][_0xef22[55]]);_0x4e38x29[_0xef22[58]]= _[_0xef22[57]](_0x4e38x28[_0xef22[58]]);_0x4e38x29[_0xef22[59]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],_0x4e38x29[_0xef22[58]]);_0x4e38x1b[_0xef22[61]]= _[_0xef22[60]](_0x4e38x29[_0xef22[54]],qs[_0xef22[62]](_0x4e38x28[_0xef22[58]][_0xef22[62]]));_0x4e38x1b[_0xef22[61]]= (_0x4e38x1b[_0xef22[61]][_0xef22[63]])?_0x4e38x1b[_0xef22[61]]:_0x4e38x29[_0xef22[54]];_0x4e38x1b[_0xef22[66]]= qs[_0xef22[67]](_0x4e38x28[_0xef22[58]][_0xef22[67]]);_0x4e38x1b[_0xef22[68]]= qs[_0xef22[59]](_[_0xef22[69]](_0x4e38x28[_0xef22[58]],_0x4e38x29[_0xef22[59]]));if(_0x4e38x28[_0xef22[58]][_0xef22[70]]){_0x4e38x1b[_0xef22[68]]= _[_0xef22[73]](_0x4e38x1b[_0xef22[68]],{$or:_[_0xef22[72]](_0x4e38x1b[_0xef22[61]],function(_0x4e38x2a){var _0x4e38x2b={};_0x4e38x2b[_0x4e38x2a]= {$like:_0xef22[71]+ _0x4e38x28[_0xef22[58]][_0xef22[70]]+ _0xef22[71]};return _0x4e38x2b})})};_0x4e38x1b= _[_0xef22[73]]({},_0x4e38x1b,_0x4e38x28[_0xef22[74]]);return _0x4e38x2d[_0xef22[97]](_0x4e38x1b)}})[_0xef22[45]](function(_0x4e38x2f){if(_0x4e38x2f){_0x4e38x1c= _0x4e38x2f[_0xef22[63]];if(!_0x4e38x28[_0xef22[58]][_0xef22[65]](_0xef22[64])){_0x4e38x1b[_0xef22[35]]= qs[_0xef22[35]](_0x4e38x28[_0xef22[58]][_0xef22[35]]);_0x4e38x1b[_0xef22[34]]= qs[_0xef22[34]](_0x4e38x28[_0xef22[58]][_0xef22[34]])};return _0x4e38x2d[_0xef22[97]](_0x4e38x1b)}})[_0xef22[45]](function(_0x4e38x2e){return _0x4e38x2e?{count:_0x4e38x1c,rows:_0x4e38x2e}:null})[_0xef22[45]](respondWithResult(_0x4e38x18,null,_0xef22[97]))[_0xef22[75]](handleError(_0x4e38x18,null,_0xef22[97]))}
\ No newline at end of file
index 86f8e57..9e48d56 100644 (file)
@@ -1 +1 @@
-var _0x22d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x22d2[0];var _=require(_0x22d2[1]);var util=require(_0x22d2[2]);var logger=require(_0x22d2[4])(_0x22d2[3]);var attributes=require(_0x22d2[5]);module[_0x22d2[6]]= function(_0x8b50x5,_0x8b50x6){return _0x8b50x5[_0x22d2[9]](_0x22d2[7],attributes,{tableName:_0x22d2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4a9e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x4a9e[0];var _=require(_0x4a9e[1]);var util=require(_0x4a9e[2]);var logger=require(_0x4a9e[4])(_0x4a9e[3]);var attributes=require(_0x4a9e[5]);module[_0x4a9e[6]]= function(_0x20d0x5,_0x20d0x6){return _0x20d0x5[_0x4a9e[9]](_0x4a9e[7],attributes,{tableName:_0x4a9e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 352094c..1c7d6ab 100644 (file)
@@ -1 +1 @@
-var _0x42ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x42ef[0];var _=require(_0x42ef[1]);var util=require(_0x42ef[2]);var moment=require(_0x42ef[3]);var BPromise=require(_0x42ef[4]);var db=require(_0x42ef[6])[_0x42ef[5]];var utils=require(_0x42ef[7]);var logger=require(_0x42ef[9])(_0x42ef[8]);var jayson=require(_0x42ef[10]);var client=jayson[_0x42ef[12]][_0x42ef[11]]({port:9002});function respondWithRpcPromise(_0x6f2dxb,_0x6f2dxc,_0x6f2dxd){return  new BPromise(function(_0x6f2dxe,_0x6f2dxf){return client[_0x42ef[25]](_0x6f2dxb,_0x6f2dxd)[_0x42ef[24]](function(_0x6f2dx11){logger[_0x42ef[17]](_0x42ef[13],_0x6f2dxc,_0x42ef[16]);logger[_0x42ef[20]](_0x42ef[18],_0x6f2dxc,_0x42ef[16],JSON[_0x42ef[19]](_0x6f2dx11));if(_0x6f2dx11[_0x42ef[14]]){if(_0x6f2dx11[_0x42ef[14]][_0x42ef[21]]=== 500){logger[_0x42ef[14]](_0x42ef[13],_0x6f2dxc,_0x6f2dx11[_0x42ef[14]][_0x42ef[22]]);return _0x6f2dxf(_0x6f2dx11[_0x42ef[14]][_0x42ef[22]])};logger[_0x42ef[14]](_0x42ef[13],_0x6f2dxc,_0x6f2dx11[_0x42ef[14]][_0x42ef[22]]);return _0x6f2dxe(_0x6f2dx11[_0x42ef[14]][_0x42ef[22]])}else {logger[_0x42ef[17]](_0x42ef[13],_0x6f2dxc,_0x42ef[16]);_0x6f2dxe(_0x6f2dx11[_0x42ef[23]][_0x42ef[22]])}})[_0x42ef[15]](function(_0x6f2dx10){logger[_0x42ef[14]](_0x42ef[13],_0x6f2dxc,_0x6f2dx10);_0x6f2dxf(_0x6f2dx10)})})}
\ No newline at end of file
+var _0x5792=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5792[0];var _=require(_0x5792[1]);var util=require(_0x5792[2]);var moment=require(_0x5792[3]);var BPromise=require(_0x5792[4]);var db=require(_0x5792[6])[_0x5792[5]];var utils=require(_0x5792[7]);var logger=require(_0x5792[9])(_0x5792[8]);var jayson=require(_0x5792[10]);var client=jayson[_0x5792[12]][_0x5792[11]]({port:9002});function respondWithRpcPromise(_0xc4f7xb,_0xc4f7xc,_0xc4f7xd){return  new BPromise(function(_0xc4f7xe,_0xc4f7xf){return client[_0x5792[25]](_0xc4f7xb,_0xc4f7xd)[_0x5792[24]](function(_0xc4f7x11){logger[_0x5792[17]](_0x5792[13],_0xc4f7xc,_0x5792[16]);logger[_0x5792[20]](_0x5792[18],_0xc4f7xc,_0x5792[16],JSON[_0x5792[19]](_0xc4f7x11));if(_0xc4f7x11[_0x5792[14]]){if(_0xc4f7x11[_0x5792[14]][_0x5792[21]]=== 500){logger[_0x5792[14]](_0x5792[13],_0xc4f7xc,_0xc4f7x11[_0x5792[14]][_0x5792[22]]);return _0xc4f7xf(_0xc4f7x11[_0x5792[14]][_0x5792[22]])};logger[_0x5792[14]](_0x5792[13],_0xc4f7xc,_0xc4f7x11[_0x5792[14]][_0x5792[22]]);return _0xc4f7xe(_0xc4f7x11[_0x5792[14]][_0x5792[22]])}else {logger[_0x5792[17]](_0x5792[13],_0xc4f7xc,_0x5792[16]);_0xc4f7xe(_0xc4f7x11[_0x5792[23]][_0x5792[22]])}})[_0x5792[15]](function(_0xc4f7x10){logger[_0x5792[14]](_0x5792[13],_0xc4f7xc,_0xc4f7x10);_0xc4f7xf(_0xc4f7x10)})})}
\ No newline at end of file
index 09bef52..3329e9c 100644 (file)
@@ -1 +1 @@
-var _0xc7c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xc7c6[0];var multer=require(_0xc7c6[1]);var util=require(_0xc7c6[2]);var path=require(_0xc7c6[3]);var express=require(_0xc7c6[4]);var router=express.Router();var auth=require(_0xc7c6[5]);var config=require(_0xc7c6[6]);var controller=require(_0xc7c6[7]);router[_0xc7c6[11]](_0xc7c6[8],auth[_0xc7c6[9]](),controller[_0xc7c6[10]]);router[_0xc7c6[11]](_0xc7c6[12],auth[_0xc7c6[9]](),controller[_0xc7c6[13]]);router[_0xc7c6[11]](_0xc7c6[14],auth[_0xc7c6[9]](),controller[_0xc7c6[15]]);router[_0xc7c6[11]](_0xc7c6[16],auth[_0xc7c6[9]](),controller[_0xc7c6[17]]);router[_0xc7c6[19]](_0xc7c6[8],auth[_0xc7c6[9]](),controller[_0xc7c6[18]]);router[_0xc7c6[19]](_0xc7c6[14],auth[_0xc7c6[9]](),controller[_0xc7c6[20]]);router[_0xc7c6[19]](_0xc7c6[16],auth[_0xc7c6[9]](),controller[_0xc7c6[21]]);router[_0xc7c6[23]](_0xc7c6[12],auth[_0xc7c6[9]](),controller[_0xc7c6[22]]);router[_0xc7c6[25]](_0xc7c6[12],auth[_0xc7c6[9]](),controller[_0xc7c6[24]]);router[_0xc7c6[25]](_0xc7c6[14],auth[_0xc7c6[9]](),controller[_0xc7c6[26]]);router[_0xc7c6[25]](_0xc7c6[16],auth[_0xc7c6[9]](),controller[_0xc7c6[27]]);module[_0xc7c6[28]]= router
\ No newline at end of file
+var _0x93ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x93ce[0];var multer=require(_0x93ce[1]);var util=require(_0x93ce[2]);var path=require(_0x93ce[3]);var express=require(_0x93ce[4]);var router=express.Router();var auth=require(_0x93ce[5]);var config=require(_0x93ce[6]);var controller=require(_0x93ce[7]);router[_0x93ce[11]](_0x93ce[8],auth[_0x93ce[9]](),controller[_0x93ce[10]]);router[_0x93ce[11]](_0x93ce[12],auth[_0x93ce[9]](),controller[_0x93ce[13]]);router[_0x93ce[11]](_0x93ce[14],auth[_0x93ce[9]](),controller[_0x93ce[15]]);router[_0x93ce[11]](_0x93ce[16],auth[_0x93ce[9]](),controller[_0x93ce[17]]);router[_0x93ce[19]](_0x93ce[8],auth[_0x93ce[9]](),controller[_0x93ce[18]]);router[_0x93ce[19]](_0x93ce[14],auth[_0x93ce[9]](),controller[_0x93ce[20]]);router[_0x93ce[19]](_0x93ce[16],auth[_0x93ce[9]](),controller[_0x93ce[21]]);router[_0x93ce[23]](_0x93ce[12],auth[_0x93ce[9]](),controller[_0x93ce[22]]);router[_0x93ce[25]](_0x93ce[12],auth[_0x93ce[9]](),controller[_0x93ce[24]]);router[_0x93ce[25]](_0x93ce[14],auth[_0x93ce[9]](),controller[_0x93ce[26]]);router[_0x93ce[25]](_0x93ce[16],auth[_0x93ce[9]](),controller[_0x93ce[27]]);module[_0x93ce[28]]= router
\ No newline at end of file
index c4513b3..eaf52f0 100644 (file)
@@ -1 +1 @@
-var _0x19d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x19d7[0];var moment=require(_0x19d7[1]);var Sequelize=require(_0x19d7[2]);module[_0x19d7[3]]= {uniqueid:{type:Sequelize[_0x19d7[4]]},timeslot:{type:Sequelize[_0x19d7[4]]},websitename:{type:Sequelize[_0x19d7[4]]},websiteaddress:{type:Sequelize[_0x19d7[4]]},websiteid:{type:Sequelize[_0x19d7[5]]},application:{type:Sequelize[_0x19d7[4]]},memberid:{type:Sequelize[_0x19d7[5]]},membername:{type:Sequelize[_0x19d7[4]]},visitorid:{type:Sequelize[_0x19d7[4]]},visitorname:{type:Sequelize[_0x19d7[4]]},visitoremail:{type:Sequelize[_0x19d7[4]],validate:{isEmail:true}},queue:{type:Sequelize[_0x19d7[5]]},queuename:{type:Sequelize[_0x19d7[4]]},roomid:{type:Sequelize[_0x19d7[5]]},reason:{type:Sequelize[_0x19d7[4]],defaultValue:_0x19d7[6]},connectid:{type:Sequelize[_0x19d7[4]],unique:_0x19d7[7],set:function(_0xb6efx3){this[_0x19d7[8]](_0x19d7[7],_0xb6efx3);this[_0x19d7[8]](_0x19d7[9],_0x19d7[10]);this[_0x19d7[8]](_0x19d7[11],moment()[_0x19d7[13]](_0x19d7[12]))}},calledAt:{type:Sequelize[_0x19d7[14]]},rejectedAt:{type:Sequelize[_0x19d7[14]],set:function(_0xb6efx4){this[_0x19d7[8]](_0x19d7[15],_0xb6efx4);this[_0x19d7[8]](_0x19d7[9],_0x19d7[16])}},connectedAt:{type:Sequelize[_0x19d7[14]]}}
\ No newline at end of file
+var _0xc60f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xc60f[0];var moment=require(_0xc60f[1]);var Sequelize=require(_0xc60f[2]);module[_0xc60f[3]]= {uniqueid:{type:Sequelize[_0xc60f[4]]},timeslot:{type:Sequelize[_0xc60f[4]]},websitename:{type:Sequelize[_0xc60f[4]]},websiteaddress:{type:Sequelize[_0xc60f[4]]},websiteid:{type:Sequelize[_0xc60f[5]]},application:{type:Sequelize[_0xc60f[4]]},memberid:{type:Sequelize[_0xc60f[5]]},membername:{type:Sequelize[_0xc60f[4]]},visitorid:{type:Sequelize[_0xc60f[4]]},visitorname:{type:Sequelize[_0xc60f[4]]},visitoremail:{type:Sequelize[_0xc60f[4]],validate:{isEmail:true}},queue:{type:Sequelize[_0xc60f[5]]},queuename:{type:Sequelize[_0xc60f[4]]},roomid:{type:Sequelize[_0xc60f[5]]},reason:{type:Sequelize[_0xc60f[4]],defaultValue:_0xc60f[6]},connectid:{type:Sequelize[_0xc60f[4]],unique:_0xc60f[7],set:function(_0xf78dx3){this[_0xc60f[8]](_0xc60f[7],_0xf78dx3);this[_0xc60f[8]](_0xc60f[9],_0xc60f[10]);this[_0xc60f[8]](_0xc60f[11],moment()[_0xc60f[13]](_0xc60f[12]))}},calledAt:{type:Sequelize[_0xc60f[14]]},rejectedAt:{type:Sequelize[_0xc60f[14]],set:function(_0xf78dx4){this[_0xc60f[8]](_0xc60f[15],_0xf78dx4);this[_0xc60f[8]](_0xc60f[9],_0xc60f[16])}},connectedAt:{type:Sequelize[_0xc60f[14]]}}
\ No newline at end of file
index a7490dd..548791b 100644 (file)
@@ -1 +1 @@
-var _0x5efc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5efc[0];var jsonpatch=require(_0x5efc[1]);var rp=require(_0x5efc[2]);var moment=require(_0x5efc[3]);var BPromise=require(_0x5efc[4]);var util=require(_0x5efc[5]);var path=require(_0x5efc[6]);var sox=require(_0x5efc[7]);var ejs=require(_0x5efc[8]);var fs=require(_0x5efc[9]);var _=require(_0x5efc[10]);var squel=require(_0x5efc[11]);var crypto=require(_0x5efc[12]);var jsforce=require(_0x5efc[13]);var toCsv=require(_0x5efc[14]);var qs=require(_0x5efc[15]);var logger=require(_0x5efc[17])(_0x5efc[16]);var utils=require(_0x5efc[18]);var config=require(_0x5efc[19]);var db=require(_0x5efc[21])[_0x5efc[20]];function respondWithStatusCode(_0x5aecx15,_0x5aecx16,_0x5aecx17){_0x5aecx16= _0x5aecx16|| 204;return function(_0x5aecx18){if(_0x5aecx18){logger[_0x5efc[24]](_0x5efc[22],_0x5aecx17,_0x5aecx16,_0x5efc[23]);logger[_0x5efc[26]](_0x5efc[25],_0x5aecx17,_0x5aecx16,_0x5efc[23]);return _0x5aecx15[_0x5efc[27]](_0x5aecx16)};return _0x5aecx15[_0x5efc[29]](304)[_0x5efc[28]]()}}function respondWithResult(_0x5aecx15,_0x5aecx16,_0x5aecx17){_0x5aecx16= _0x5aecx16|| 200;return function(_0x5aecx18){if(_0x5aecx18){logger[_0x5efc[24]](_0x5efc[22],_0x5aecx17,_0x5aecx16,_0x5efc[30]);logger[_0x5efc[26]](_0x5efc[25],_0x5aecx17,_0x5aecx16,_0x5efc[30],JSON[_0x5efc[31]](_0x5aecx18));return _0x5aecx15[_0x5efc[29]](_0x5aecx16)[_0x5efc[32]](_0x5aecx18)};return _0x5aecx15[_0x5efc[29]](304)[_0x5efc[28]]()}}function respondWithFilteredResult(_0x5aecx15,_0x5aecx1b,_0x5aecx17){return function(_0x5aecx18){if(_0x5aecx18){var _0x5aecx1c=_0x5aecx18[_0x5efc[33]],_0x5aecx1d=_0x5aecx1b[_0x5efc[34]],_0x5aecx1e=_0x5aecx1b[_0x5efc[34]]+ _0x5aecx1b[_0x5efc[35]],_0x5aecx16;if(_0x5aecx1e>= _0x5aecx1c){_0x5aecx1e= _0x5aecx1c;_0x5aecx16= 200}else {_0x5aecx16= 206};_0x5aecx15[_0x5efc[29]](_0x5aecx16);logger[_0x5efc[24]](_0x5efc[22],_0x5aecx17,_0x5aecx16,_0x5efc[36]);logger[_0x5efc[26]](_0x5efc[25],_0x5aecx17,_0x5aecx16,_0x5efc[30],JSON[_0x5efc[31]](_0x5aecx18));return _0x5aecx15[_0x5efc[40]](_0x5efc[37],_0x5aecx1d+ _0x5efc[38]+ _0x5aecx1e+ _0x5efc[39]+ _0x5aecx1c)[_0x5efc[32]](_0x5aecx18)};return null}}function patchUpdates(_0x5aecx20){return function(_0x5aecx18){try{jsonpatch[_0x5efc[41]](_0x5aecx18,_0x5aecx20,true)}catch(err){return BPromise[_0x5efc[42]](err)};return _0x5aecx18[_0x5efc[43]]()}}function saveUpdates(_0x5aecx22,_0x5aecx16,_0x5aecx17){return function(_0x5aecx18){if(_0x5aecx18){return _0x5aecx18[_0x5efc[46]](_0x5aecx22)[_0x5efc[45]](function(_0x5aecx23){logger[_0x5efc[24]](_0x5efc[22],_0x5aecx17,_0x5aecx16,_0x5efc[44]);logger[_0x5efc[26]](_0x5efc[25],_0x5aecx17,_0x5aecx16,_0x5efc[44],JSON[_0x5efc[31]](_0x5aecx18));return _0x5aecx23})};return null}}function removeEntity(_0x5aecx15,_0x5aecx16,_0x5aecx17){return function(_0x5aecx18){if(_0x5aecx18){return _0x5aecx18[_0x5efc[48]]()[_0x5efc[45]](function(){logger[_0x5efc[24]](_0x5efc[22],_0x5aecx17,_0x5aecx16,_0x5efc[47]);logger[_0x5efc[26]](_0x5efc[25],_0x5aecx17,_0x5aecx16,_0x5efc[47],JSON[_0x5efc[31]](_0x5aecx18));_0x5aecx15[_0x5efc[29]](204)[_0x5efc[28]]()})}}}function handleEntityNotFound(_0x5aecx15,_0x5aecx16,_0x5aecx17){return function(_0x5aecx18){if(!_0x5aecx18){logger[_0x5efc[50]](_0x5efc[22],_0x5aecx17,404,_0x5efc[49]);_0x5aecx15[_0x5efc[29]](404)[_0x5efc[28]]();return null};return _0x5aecx18}}function handleError(_0x5aecx15,_0x5aecx16,_0x5aecx17){_0x5aecx16= _0x5aecx16|| 500;return function(_0x5aecx27){logger[_0x5efc[50]](_0x5efc[22],_0x5aecx17,_0x5aecx16,JSON[_0x5efc[31]](_0x5aecx27));delete _0x5aecx27[_0x5efc[51]];_0x5aecx15[_0x5efc[29]](_0x5aecx16)[_0x5efc[52]](_0x5aecx27)}}exports[_0x5efc[53]]= function(_0x5aecx28,_0x5aecx15){var _0x5aecx1b={},_0x5aecx29={};_0x5aecx29[_0x5efc[54]]= _[_0x5efc[57]](db[_0x5efc[56]][_0x5efc[55]]);_0x5aecx29[_0x5efc[58]]= _[_0x5efc[57]](_0x5aecx28[_0x5efc[58]]);_0x5aecx29[_0x5efc[59]]= _[_0x5efc[60]](_0x5aecx29[_0x5efc[54]],_0x5aecx29[_0x5efc[58]]);_0x5aecx1b[_0x5efc[61]]= _[_0x5efc[60]](_0x5aecx29[_0x5efc[54]],qs[_0x5efc[62]](_0x5aecx28[_0x5efc[58]][_0x5efc[62]]));_0x5aecx1b[_0x5efc[61]]= (_0x5aecx1b[_0x5efc[61]][_0x5efc[63]])?_0x5aecx1b[_0x5efc[61]]:_0x5aecx29[_0x5efc[54]];if(!_0x5aecx28[_0x5efc[58]][_0x5efc[65]](_0x5efc[64])){_0x5aecx1b[_0x5efc[35]]= qs[_0x5efc[35]](_0x5aecx28[_0x5efc[58]][_0x5efc[35]]);_0x5aecx1b[_0x5efc[34]]= qs[_0x5efc[34]](_0x5aecx28[_0x5efc[58]][_0x5efc[34]])};_0x5aecx1b[_0x5efc[66]]= qs[_0x5efc[67]](_0x5aecx28[_0x5efc[58]][_0x5efc[67]]);_0x5aecx1b[_0x5efc[68]]= qs[_0x5efc[59]](_[_0x5efc[69]](_0x5aecx28[_0x5efc[58]],_0x5aecx29[_0x5efc[59]]));if(_0x5aecx28[_0x5efc[58]][_0x5efc[70]]){_0x5aecx1b[_0x5efc[68]]= _[_0x5efc[73]](_0x5aecx1b[_0x5efc[68]],{$or:_[_0x5efc[72]](_0x5aecx1b[_0x5efc[61]],function(_0x5aecx2a){var _0x5aecx2b={};_0x5aecx2b[_0x5aecx2a]= {$like:_0x5efc[71]+ _0x5aecx28[_0x5efc[58]][_0x5efc[70]]+ _0x5efc[71]};return _0x5aecx2b})})};_0x5aecx1b= _[_0x5efc[73]]({},_0x5aecx1b,_0x5aecx28[_0x5efc[74]]);return db[_0x5efc[56]][_0x5efc[76]](_0x5aecx1b)[_0x5efc[45]](respondWithFilteredResult(_0x5aecx15,_0x5aecx1b,_0x5efc[53]))[_0x5efc[75]](handleError(_0x5aecx15,null,_0x5efc[53]))};exports[_0x5efc[77]]= function(_0x5aecx28,_0x5aecx15){var _0x5aecx1b={raw:true,where:{id:_0x5aecx28[_0x5efc[79]][_0x5efc[78]]}},_0x5aecx29={};_0x5aecx29[_0x5efc[54]]= _[_0x5efc[57]](db[_0x5efc[56]][_0x5efc[55]]);_0x5aecx29[_0x5efc[58]]= _[_0x5efc[57]](_0x5aecx28[_0x5efc[58]]);_0x5aecx29[_0x5efc[59]]= _[_0x5efc[60]](_0x5aecx29[_0x5efc[54]],_0x5aecx29[_0x5efc[58]]);_0x5aecx1b[_0x5efc[61]]= _[_0x5efc[60]](_0x5aecx29[_0x5efc[54]],qs[_0x5efc[62]](_0x5aecx28[_0x5efc[58]][_0x5efc[62]]));_0x5aecx1b[_0x5efc[61]]= (_0x5aecx1b[_0x5efc[61]][_0x5efc[63]])?_0x5aecx1b[_0x5efc[61]]:_0x5aecx29[_0x5efc[54]];_0x5aecx1b= _[_0x5efc[73]]({},_0x5aecx1b,_0x5aecx28[_0x5efc[74]]);return db[_0x5efc[56]][_0x5efc[80]](_0x5aecx1b)[_0x5efc[45]](handleEntityNotFound(_0x5aecx15,null,_0x5efc[77]))[_0x5efc[45]](respondWithResult(_0x5aecx15,null,_0x5efc[77]))[_0x5efc[75]](handleError(_0x5aecx15,null,_0x5efc[77]))};exports[_0x5efc[81]]= function(_0x5aecx28,_0x5aecx15){return db[_0x5efc[56]][_0x5efc[81]](_0x5aecx28[_0x5efc[82]],{})[_0x5efc[45]](respondWithResult(_0x5aecx15,201,_0x5efc[81]))[_0x5efc[75]](handleError(_0x5aecx15,null,_0x5efc[81]))};exports[_0x5efc[46]]= function(_0x5aecx28,_0x5aecx15){if(_0x5aecx28[_0x5efc[82]][_0x5efc[78]]){delete _0x5aecx28[_0x5efc[82]][_0x5efc[78]]};return db[_0x5efc[56]][_0x5efc[80]]({where:{id:_0x5aecx28[_0x5efc[79]][_0x5efc[78]]}})[_0x5efc[45]](handleEntityNotFound(_0x5aecx15,null,_0x5efc[46]))[_0x5efc[45]](saveUpdates(_0x5aecx28[_0x5efc[82]],null,_0x5efc[46]))[_0x5efc[45]](respondWithResult(_0x5aecx15,null,_0x5efc[46]))[_0x5efc[75]](handleError(_0x5aecx15,null,_0x5efc[46]))};exports[_0x5efc[48]]= function(_0x5aecx28,_0x5aecx15){return db[_0x5efc[56]][_0x5efc[80]]({where:{id:_0x5aecx28[_0x5efc[79]][_0x5efc[78]]}})[_0x5efc[45]](handleEntityNotFound(_0x5aecx15,null,_0x5efc[48]))[_0x5efc[45]](removeEntity(_0x5aecx15,null,_0x5efc[48]))[_0x5efc[75]](handleError(_0x5aecx15,null,_0x5efc[48]))}
\ No newline at end of file
+var _0x17e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x17e9[0];var jsonpatch=require(_0x17e9[1]);var rp=require(_0x17e9[2]);var moment=require(_0x17e9[3]);var BPromise=require(_0x17e9[4]);var util=require(_0x17e9[5]);var path=require(_0x17e9[6]);var sox=require(_0x17e9[7]);var ejs=require(_0x17e9[8]);var fs=require(_0x17e9[9]);var _=require(_0x17e9[10]);var squel=require(_0x17e9[11]);var crypto=require(_0x17e9[12]);var jsforce=require(_0x17e9[13]);var toCsv=require(_0x17e9[14]);var qs=require(_0x17e9[15]);var logger=require(_0x17e9[17])(_0x17e9[16]);var utils=require(_0x17e9[18]);var config=require(_0x17e9[19]);var db=require(_0x17e9[21])[_0x17e9[20]];function respondWithStatusCode(_0x8f1dx15,_0x8f1dx16,_0x8f1dx17){_0x8f1dx16= _0x8f1dx16|| 204;return function(_0x8f1dx18){if(_0x8f1dx18){logger[_0x17e9[24]](_0x17e9[22],_0x8f1dx17,_0x8f1dx16,_0x17e9[23]);logger[_0x17e9[26]](_0x17e9[25],_0x8f1dx17,_0x8f1dx16,_0x17e9[23]);return _0x8f1dx15[_0x17e9[27]](_0x8f1dx16)};return _0x8f1dx15[_0x17e9[29]](304)[_0x17e9[28]]()}}function respondWithResult(_0x8f1dx15,_0x8f1dx16,_0x8f1dx17){_0x8f1dx16= _0x8f1dx16|| 200;return function(_0x8f1dx18){if(_0x8f1dx18){logger[_0x17e9[24]](_0x17e9[22],_0x8f1dx17,_0x8f1dx16,_0x17e9[30]);logger[_0x17e9[26]](_0x17e9[25],_0x8f1dx17,_0x8f1dx16,_0x17e9[30],JSON[_0x17e9[31]](_0x8f1dx18));return _0x8f1dx15[_0x17e9[29]](_0x8f1dx16)[_0x17e9[32]](_0x8f1dx18)};return _0x8f1dx15[_0x17e9[29]](304)[_0x17e9[28]]()}}function respondWithFilteredResult(_0x8f1dx15,_0x8f1dx1b,_0x8f1dx17){return function(_0x8f1dx18){if(_0x8f1dx18){var _0x8f1dx1c=_0x8f1dx18[_0x17e9[33]],_0x8f1dx1d=_0x8f1dx1b[_0x17e9[34]],_0x8f1dx1e=_0x8f1dx1b[_0x17e9[34]]+ _0x8f1dx1b[_0x17e9[35]],_0x8f1dx16;if(_0x8f1dx1e>= _0x8f1dx1c){_0x8f1dx1e= _0x8f1dx1c;_0x8f1dx16= 200}else {_0x8f1dx16= 206};_0x8f1dx15[_0x17e9[29]](_0x8f1dx16);logger[_0x17e9[24]](_0x17e9[22],_0x8f1dx17,_0x8f1dx16,_0x17e9[36]);logger[_0x17e9[26]](_0x17e9[25],_0x8f1dx17,_0x8f1dx16,_0x17e9[30],JSON[_0x17e9[31]](_0x8f1dx18));return _0x8f1dx15[_0x17e9[40]](_0x17e9[37],_0x8f1dx1d+ _0x17e9[38]+ _0x8f1dx1e+ _0x17e9[39]+ _0x8f1dx1c)[_0x17e9[32]](_0x8f1dx18)};return null}}function patchUpdates(_0x8f1dx20){return function(_0x8f1dx18){try{jsonpatch[_0x17e9[41]](_0x8f1dx18,_0x8f1dx20,true)}catch(err){return BPromise[_0x17e9[42]](err)};return _0x8f1dx18[_0x17e9[43]]()}}function saveUpdates(_0x8f1dx22,_0x8f1dx16,_0x8f1dx17){return function(_0x8f1dx18){if(_0x8f1dx18){return _0x8f1dx18[_0x17e9[46]](_0x8f1dx22)[_0x17e9[45]](function(_0x8f1dx23){logger[_0x17e9[24]](_0x17e9[22],_0x8f1dx17,_0x8f1dx16,_0x17e9[44]);logger[_0x17e9[26]](_0x17e9[25],_0x8f1dx17,_0x8f1dx16,_0x17e9[44],JSON[_0x17e9[31]](_0x8f1dx18));return _0x8f1dx23})};return null}}function removeEntity(_0x8f1dx15,_0x8f1dx16,_0x8f1dx17){return function(_0x8f1dx18){if(_0x8f1dx18){return _0x8f1dx18[_0x17e9[48]]()[_0x17e9[45]](function(){logger[_0x17e9[24]](_0x17e9[22],_0x8f1dx17,_0x8f1dx16,_0x17e9[47]);logger[_0x17e9[26]](_0x17e9[25],_0x8f1dx17,_0x8f1dx16,_0x17e9[47],JSON[_0x17e9[31]](_0x8f1dx18));_0x8f1dx15[_0x17e9[29]](204)[_0x17e9[28]]()})}}}function handleEntityNotFound(_0x8f1dx15,_0x8f1dx16,_0x8f1dx17){return function(_0x8f1dx18){if(!_0x8f1dx18){logger[_0x17e9[50]](_0x17e9[22],_0x8f1dx17,404,_0x17e9[49]);_0x8f1dx15[_0x17e9[29]](404)[_0x17e9[28]]();return null};return _0x8f1dx18}}function handleError(_0x8f1dx15,_0x8f1dx16,_0x8f1dx17){_0x8f1dx16= _0x8f1dx16|| 500;return function(_0x8f1dx27){logger[_0x17e9[50]](_0x17e9[22],_0x8f1dx17,_0x8f1dx16,JSON[_0x17e9[31]](_0x8f1dx27));delete _0x8f1dx27[_0x17e9[51]];_0x8f1dx15[_0x17e9[29]](_0x8f1dx16)[_0x17e9[52]](_0x8f1dx27)}}exports[_0x17e9[53]]= function(_0x8f1dx28,_0x8f1dx15){var _0x8f1dx1b={},_0x8f1dx29={};_0x8f1dx29[_0x17e9[54]]= _[_0x17e9[57]](db[_0x17e9[56]][_0x17e9[55]]);_0x8f1dx29[_0x17e9[58]]= _[_0x17e9[57]](_0x8f1dx28[_0x17e9[58]]);_0x8f1dx29[_0x17e9[59]]= _[_0x17e9[60]](_0x8f1dx29[_0x17e9[54]],_0x8f1dx29[_0x17e9[58]]);_0x8f1dx1b[_0x17e9[61]]= _[_0x17e9[60]](_0x8f1dx29[_0x17e9[54]],qs[_0x17e9[62]](_0x8f1dx28[_0x17e9[58]][_0x17e9[62]]));_0x8f1dx1b[_0x17e9[61]]= (_0x8f1dx1b[_0x17e9[61]][_0x17e9[63]])?_0x8f1dx1b[_0x17e9[61]]:_0x8f1dx29[_0x17e9[54]];if(!_0x8f1dx28[_0x17e9[58]][_0x17e9[65]](_0x17e9[64])){_0x8f1dx1b[_0x17e9[35]]= qs[_0x17e9[35]](_0x8f1dx28[_0x17e9[58]][_0x17e9[35]]);_0x8f1dx1b[_0x17e9[34]]= qs[_0x17e9[34]](_0x8f1dx28[_0x17e9[58]][_0x17e9[34]])};_0x8f1dx1b[_0x17e9[66]]= qs[_0x17e9[67]](_0x8f1dx28[_0x17e9[58]][_0x17e9[67]]);_0x8f1dx1b[_0x17e9[68]]= qs[_0x17e9[59]](_[_0x17e9[69]](_0x8f1dx28[_0x17e9[58]],_0x8f1dx29[_0x17e9[59]]));if(_0x8f1dx28[_0x17e9[58]][_0x17e9[70]]){_0x8f1dx1b[_0x17e9[68]]= _[_0x17e9[73]](_0x8f1dx1b[_0x17e9[68]],{$or:_[_0x17e9[72]](_0x8f1dx1b[_0x17e9[61]],function(_0x8f1dx2a){var _0x8f1dx2b={};_0x8f1dx2b[_0x8f1dx2a]= {$like:_0x17e9[71]+ _0x8f1dx28[_0x17e9[58]][_0x17e9[70]]+ _0x17e9[71]};return _0x8f1dx2b})})};_0x8f1dx1b= _[_0x17e9[73]]({},_0x8f1dx1b,_0x8f1dx28[_0x17e9[74]]);return db[_0x17e9[56]][_0x17e9[76]](_0x8f1dx1b)[_0x17e9[45]](respondWithFilteredResult(_0x8f1dx15,_0x8f1dx1b,_0x17e9[53]))[_0x17e9[75]](handleError(_0x8f1dx15,null,_0x17e9[53]))};exports[_0x17e9[77]]= function(_0x8f1dx28,_0x8f1dx15){var _0x8f1dx1b={raw:true,where:{id:_0x8f1dx28[_0x17e9[79]][_0x17e9[78]]}},_0x8f1dx29={};_0x8f1dx29[_0x17e9[54]]= _[_0x17e9[57]](db[_0x17e9[56]][_0x17e9[55]]);_0x8f1dx29[_0x17e9[58]]= _[_0x17e9[57]](_0x8f1dx28[_0x17e9[58]]);_0x8f1dx29[_0x17e9[59]]= _[_0x17e9[60]](_0x8f1dx29[_0x17e9[54]],_0x8f1dx29[_0x17e9[58]]);_0x8f1dx1b[_0x17e9[61]]= _[_0x17e9[60]](_0x8f1dx29[_0x17e9[54]],qs[_0x17e9[62]](_0x8f1dx28[_0x17e9[58]][_0x17e9[62]]));_0x8f1dx1b[_0x17e9[61]]= (_0x8f1dx1b[_0x17e9[61]][_0x17e9[63]])?_0x8f1dx1b[_0x17e9[61]]:_0x8f1dx29[_0x17e9[54]];_0x8f1dx1b= _[_0x17e9[73]]({},_0x8f1dx1b,_0x8f1dx28[_0x17e9[74]]);return db[_0x17e9[56]][_0x17e9[80]](_0x8f1dx1b)[_0x17e9[45]](handleEntityNotFound(_0x8f1dx15,null,_0x17e9[77]))[_0x17e9[45]](respondWithResult(_0x8f1dx15,null,_0x17e9[77]))[_0x17e9[75]](handleError(_0x8f1dx15,null,_0x17e9[77]))};exports[_0x17e9[81]]= function(_0x8f1dx28,_0x8f1dx15){return db[_0x17e9[56]][_0x17e9[81]](_0x8f1dx28[_0x17e9[82]],{})[_0x17e9[45]](respondWithResult(_0x8f1dx15,201,_0x17e9[81]))[_0x17e9[75]](handleError(_0x8f1dx15,null,_0x17e9[81]))};exports[_0x17e9[46]]= function(_0x8f1dx28,_0x8f1dx15){if(_0x8f1dx28[_0x17e9[82]][_0x17e9[78]]){delete _0x8f1dx28[_0x17e9[82]][_0x17e9[78]]};return db[_0x17e9[56]][_0x17e9[80]]({where:{id:_0x8f1dx28[_0x17e9[79]][_0x17e9[78]]}})[_0x17e9[45]](handleEntityNotFound(_0x8f1dx15,null,_0x17e9[46]))[_0x17e9[45]](saveUpdates(_0x8f1dx28[_0x17e9[82]],null,_0x17e9[46]))[_0x17e9[45]](respondWithResult(_0x8f1dx15,null,_0x17e9[46]))[_0x17e9[75]](handleError(_0x8f1dx15,null,_0x17e9[46]))};exports[_0x17e9[48]]= function(_0x8f1dx28,_0x8f1dx15){return db[_0x17e9[56]][_0x17e9[80]]({where:{id:_0x8f1dx28[_0x17e9[79]][_0x17e9[78]]}})[_0x17e9[45]](handleEntityNotFound(_0x8f1dx15,null,_0x17e9[48]))[_0x17e9[45]](removeEntity(_0x8f1dx15,null,_0x17e9[48]))[_0x17e9[75]](handleError(_0x8f1dx15,null,_0x17e9[48]))}
\ No newline at end of file
index cbd8dd7..409a4d2 100644 (file)
@@ -1 +1 @@
-var _0x43a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x64\x65\x66\x69\x6E\x65"];_0x43a6[0];var _=require(_0x43a6[1]);var util=require(_0x43a6[2]);var logger=require(_0x43a6[4])(_0x43a6[3]);var attributes=require(_0x43a6[5]);module[_0x43a6[6]]= function(_0xf72dx5,_0xf72dx6){return _0xf72dx5[_0x43a6[9]](_0x43a6[7],attributes,{tableName:_0x43a6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe4f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x64\x65\x66\x69\x6E\x65"];_0xe4f9[0];var _=require(_0xe4f9[1]);var util=require(_0xe4f9[2]);var logger=require(_0xe4f9[4])(_0xe4f9[3]);var attributes=require(_0xe4f9[5]);module[_0xe4f9[6]]= function(_0x9b66x5,_0x9b66x6){return _0x9b66x5[_0xe4f9[9]](_0xe4f9[7],attributes,{tableName:_0xe4f9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 8a64c16..1ade787 100644 (file)
@@ -1 +1 @@
-var _0xba46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xba46[0];var _=require(_0xba46[1]);var util=require(_0xba46[2]);var moment=require(_0xba46[3]);var BPromise=require(_0xba46[4]);var db=require(_0xba46[6])[_0xba46[5]];var utils=require(_0xba46[7]);var logger=require(_0xba46[9])(_0xba46[8]);var jayson=require(_0xba46[10]);var client=jayson[_0xba46[12]][_0xba46[11]]({port:9002});function respondWithRpcPromise(_0x3aadxb,_0x3aadxc,_0x3aadxd){return  new BPromise(function(_0x3aadxe,_0x3aadxf){return client[_0xba46[25]](_0x3aadxb,_0x3aadxd)[_0xba46[24]](function(_0x3aadx11){logger[_0xba46[17]](_0xba46[13],_0x3aadxc,_0xba46[16]);logger[_0xba46[20]](_0xba46[18],_0x3aadxc,_0xba46[16],JSON[_0xba46[19]](_0x3aadx11));if(_0x3aadx11[_0xba46[14]]){if(_0x3aadx11[_0xba46[14]][_0xba46[21]]=== 500){logger[_0xba46[14]](_0xba46[13],_0x3aadxc,_0x3aadx11[_0xba46[14]][_0xba46[22]]);return _0x3aadxf(_0x3aadx11[_0xba46[14]][_0xba46[22]])};logger[_0xba46[14]](_0xba46[13],_0x3aadxc,_0x3aadx11[_0xba46[14]][_0xba46[22]]);return _0x3aadxe(_0x3aadx11[_0xba46[14]][_0xba46[22]])}else {logger[_0xba46[17]](_0xba46[13],_0x3aadxc,_0xba46[16]);_0x3aadxe(_0x3aadx11[_0xba46[23]][_0xba46[22]])}})[_0xba46[15]](function(_0x3aadx10){logger[_0xba46[14]](_0xba46[13],_0x3aadxc,_0x3aadx10);_0x3aadxf(_0x3aadx10)})})}
\ No newline at end of file
+var _0x9d92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9d92[0];var _=require(_0x9d92[1]);var util=require(_0x9d92[2]);var moment=require(_0x9d92[3]);var BPromise=require(_0x9d92[4]);var db=require(_0x9d92[6])[_0x9d92[5]];var utils=require(_0x9d92[7]);var logger=require(_0x9d92[9])(_0x9d92[8]);var jayson=require(_0x9d92[10]);var client=jayson[_0x9d92[12]][_0x9d92[11]]({port:9002});function respondWithRpcPromise(_0x5d54xb,_0x5d54xc,_0x5d54xd){return  new BPromise(function(_0x5d54xe,_0x5d54xf){return client[_0x9d92[25]](_0x5d54xb,_0x5d54xd)[_0x9d92[24]](function(_0x5d54x11){logger[_0x9d92[17]](_0x9d92[13],_0x5d54xc,_0x9d92[16]);logger[_0x9d92[20]](_0x9d92[18],_0x5d54xc,_0x9d92[16],JSON[_0x9d92[19]](_0x5d54x11));if(_0x5d54x11[_0x9d92[14]]){if(_0x5d54x11[_0x9d92[14]][_0x9d92[21]]=== 500){logger[_0x9d92[14]](_0x9d92[13],_0x5d54xc,_0x5d54x11[_0x9d92[14]][_0x9d92[22]]);return _0x5d54xf(_0x5d54x11[_0x9d92[14]][_0x9d92[22]])};logger[_0x9d92[14]](_0x9d92[13],_0x5d54xc,_0x5d54x11[_0x9d92[14]][_0x9d92[22]]);return _0x5d54xe(_0x5d54x11[_0x9d92[14]][_0x9d92[22]])}else {logger[_0x9d92[17]](_0x9d92[13],_0x5d54xc,_0x9d92[16]);_0x5d54xe(_0x5d54x11[_0x9d92[23]][_0x9d92[22]])}})[_0x9d92[15]](function(_0x5d54x10){logger[_0x9d92[14]](_0x9d92[13],_0x5d54xc,_0x5d54x10);_0x5d54xf(_0x5d54x10)})})}
\ No newline at end of file
index 2cfbd37..00dba9f 100644 (file)
@@ -1 +1 @@
-var _0x5078=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5078[0];var multer=require(_0x5078[1]);var util=require(_0x5078[2]);var path=require(_0x5078[3]);var express=require(_0x5078[4]);var router=express.Router();var auth=require(_0x5078[5]);var config=require(_0x5078[6]);var controller=require(_0x5078[7]);router[_0x5078[11]](_0x5078[8],auth[_0x5078[9]](),controller[_0x5078[10]]);router[_0x5078[11]](_0x5078[12],auth[_0x5078[9]](),controller[_0x5078[13]]);router[_0x5078[15]](_0x5078[8],auth[_0x5078[9]](),controller[_0x5078[14]]);router[_0x5078[17]](_0x5078[12],auth[_0x5078[9]](),controller[_0x5078[16]]);router[_0x5078[19]](_0x5078[12],auth[_0x5078[9]](),controller[_0x5078[18]]);module[_0x5078[20]]= router
\ No newline at end of file
+var _0x22b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x22b3[0];var multer=require(_0x22b3[1]);var util=require(_0x22b3[2]);var path=require(_0x22b3[3]);var express=require(_0x22b3[4]);var router=express.Router();var auth=require(_0x22b3[5]);var config=require(_0x22b3[6]);var controller=require(_0x22b3[7]);router[_0x22b3[11]](_0x22b3[8],auth[_0x22b3[9]](),controller[_0x22b3[10]]);router[_0x22b3[11]](_0x22b3[12],auth[_0x22b3[9]](),controller[_0x22b3[13]]);router[_0x22b3[15]](_0x22b3[8],auth[_0x22b3[9]](),controller[_0x22b3[14]]);router[_0x22b3[17]](_0x22b3[12],auth[_0x22b3[9]](),controller[_0x22b3[16]]);router[_0x22b3[19]](_0x22b3[12],auth[_0x22b3[9]](),controller[_0x22b3[18]]);module[_0x22b3[20]]= router
\ No newline at end of file
index f5f530e..e1e2b24 100644 (file)
@@ -1 +1 @@
-var _0x399d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72"];_0x399d[0];var Sequelize=require(_0x399d[1]);module[_0x399d[2]]= {uniqueid:{type:Sequelize[_0x399d[3]]},websitename:{type:Sequelize[_0x399d[3]]},websiteaddress:{type:Sequelize[_0x399d[3]]},websiteid:{type:Sequelize[_0x399d[4]]},application:{type:Sequelize[_0x399d[3]]},visitorid:{type:Sequelize[_0x399d[3]]},visitorname:{type:Sequelize[_0x399d[3]]},visitoremail:{type:Sequelize[_0x399d[3]],validate:{isEmail:true}},memberid:{type:Sequelize[_0x399d[3]]},membername:{type:Sequelize[_0x399d[3]]},queue:{type:Sequelize[_0x399d[4]]},queuename:{type:Sequelize[_0x399d[3]]},roomid:{type:Sequelize[_0x399d[4]]},fidelity:{type:Sequelize[_0x399d[4]],defaultValue:0},joinAt:{type:Sequelize[_0x399d[5]]},leaveAt:{type:Sequelize[_0x399d[5]]},completeAt:{type:Sequelize[_0x399d[5]]},complete:{type:Sequelize[_0x399d[6]],defaultValue:0},completeReason:{type:Sequelize.ENUM(_0x399d[7],_0x399d[8])},abandon:{type:Sequelize[_0x399d[6]],defaultValue:0},timeout:{type:Sequelize[_0x399d[6]],defaultValue:0},timeslot:{type:Sequelize[_0x399d[4]]}}
\ No newline at end of file
+var _0x2ec7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72"];_0x2ec7[0];var Sequelize=require(_0x2ec7[1]);module[_0x2ec7[2]]= {uniqueid:{type:Sequelize[_0x2ec7[3]]},websitename:{type:Sequelize[_0x2ec7[3]]},websiteaddress:{type:Sequelize[_0x2ec7[3]]},websiteid:{type:Sequelize[_0x2ec7[4]]},application:{type:Sequelize[_0x2ec7[3]]},visitorid:{type:Sequelize[_0x2ec7[3]]},visitorname:{type:Sequelize[_0x2ec7[3]]},visitoremail:{type:Sequelize[_0x2ec7[3]],validate:{isEmail:true}},memberid:{type:Sequelize[_0x2ec7[3]]},membername:{type:Sequelize[_0x2ec7[3]]},queue:{type:Sequelize[_0x2ec7[4]]},queuename:{type:Sequelize[_0x2ec7[3]]},roomid:{type:Sequelize[_0x2ec7[4]]},fidelity:{type:Sequelize[_0x2ec7[4]],defaultValue:0},joinAt:{type:Sequelize[_0x2ec7[5]]},leaveAt:{type:Sequelize[_0x2ec7[5]]},completeAt:{type:Sequelize[_0x2ec7[5]]},complete:{type:Sequelize[_0x2ec7[6]],defaultValue:0},completeReason:{type:Sequelize.ENUM(_0x2ec7[7],_0x2ec7[8])},abandon:{type:Sequelize[_0x2ec7[6]],defaultValue:0},timeout:{type:Sequelize[_0x2ec7[6]],defaultValue:0},timeslot:{type:Sequelize[_0x2ec7[4]]}}
\ No newline at end of file
index a83557b..2f077b0 100644 (file)
@@ -1 +1 @@
-var _0x3467=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x3467[0];var jsonpatch=require(_0x3467[1]);var rp=require(_0x3467[2]);var moment=require(_0x3467[3]);var BPromise=require(_0x3467[4]);var util=require(_0x3467[5]);var path=require(_0x3467[6]);var sox=require(_0x3467[7]);var ejs=require(_0x3467[8]);var fs=require(_0x3467[9]);var _=require(_0x3467[10]);var squel=require(_0x3467[11]);var crypto=require(_0x3467[12]);var jsforce=require(_0x3467[13]);var toCsv=require(_0x3467[14]);var qs=require(_0x3467[15]);var logger=require(_0x3467[17])(_0x3467[16]);var utils=require(_0x3467[18]);var config=require(_0x3467[19]);var db=require(_0x3467[21])[_0x3467[20]];function respondWithStatusCode(_0x4851x15,_0x4851x16,_0x4851x17){_0x4851x16= _0x4851x16|| 204;return function(_0x4851x18){if(_0x4851x18){logger[_0x3467[24]](_0x3467[22],_0x4851x17,_0x4851x16,_0x3467[23]);logger[_0x3467[26]](_0x3467[25],_0x4851x17,_0x4851x16,_0x3467[23]);return _0x4851x15[_0x3467[27]](_0x4851x16)};return _0x4851x15[_0x3467[29]](304)[_0x3467[28]]()}}function respondWithResult(_0x4851x15,_0x4851x16,_0x4851x17){_0x4851x16= _0x4851x16|| 200;return function(_0x4851x18){if(_0x4851x18){logger[_0x3467[24]](_0x3467[22],_0x4851x17,_0x4851x16,_0x3467[30]);logger[_0x3467[26]](_0x3467[25],_0x4851x17,_0x4851x16,_0x3467[30],JSON[_0x3467[31]](_0x4851x18));return _0x4851x15[_0x3467[29]](_0x4851x16)[_0x3467[32]](_0x4851x18)};return _0x4851x15[_0x3467[29]](304)[_0x3467[28]]()}}function respondWithFilteredResult(_0x4851x15,_0x4851x1b,_0x4851x17){return function(_0x4851x18){if(_0x4851x18){var _0x4851x1c=_0x4851x18[_0x3467[33]],_0x4851x1d=_0x4851x1b[_0x3467[34]],_0x4851x1e=_0x4851x1b[_0x3467[34]]+ _0x4851x1b[_0x3467[35]],_0x4851x16;if(_0x4851x1e>= _0x4851x1c){_0x4851x1e= _0x4851x1c;_0x4851x16= 200}else {_0x4851x16= 206};_0x4851x15[_0x3467[29]](_0x4851x16);logger[_0x3467[24]](_0x3467[22],_0x4851x17,_0x4851x16,_0x3467[36]);logger[_0x3467[26]](_0x3467[25],_0x4851x17,_0x4851x16,_0x3467[30],JSON[_0x3467[31]](_0x4851x18));return _0x4851x15[_0x3467[40]](_0x3467[37],_0x4851x1d+ _0x3467[38]+ _0x4851x1e+ _0x3467[39]+ _0x4851x1c)[_0x3467[32]](_0x4851x18)};return null}}function patchUpdates(_0x4851x20){return function(_0x4851x18){try{jsonpatch[_0x3467[41]](_0x4851x18,_0x4851x20,true)}catch(err){return BPromise[_0x3467[42]](err)};return _0x4851x18[_0x3467[43]]()}}function saveUpdates(_0x4851x22,_0x4851x16,_0x4851x17){return function(_0x4851x18){if(_0x4851x18){return _0x4851x18[_0x3467[46]](_0x4851x22)[_0x3467[45]](function(_0x4851x23){logger[_0x3467[24]](_0x3467[22],_0x4851x17,_0x4851x16,_0x3467[44]);logger[_0x3467[26]](_0x3467[25],_0x4851x17,_0x4851x16,_0x3467[44],JSON[_0x3467[31]](_0x4851x18));return _0x4851x23})};return null}}function removeEntity(_0x4851x15,_0x4851x16,_0x4851x17){return function(_0x4851x18){if(_0x4851x18){return _0x4851x18[_0x3467[48]]()[_0x3467[45]](function(){logger[_0x3467[24]](_0x3467[22],_0x4851x17,_0x4851x16,_0x3467[47]);logger[_0x3467[26]](_0x3467[25],_0x4851x17,_0x4851x16,_0x3467[47],JSON[_0x3467[31]](_0x4851x18));_0x4851x15[_0x3467[29]](204)[_0x3467[28]]()})}}}function handleEntityNotFound(_0x4851x15,_0x4851x16,_0x4851x17){return function(_0x4851x18){if(!_0x4851x18){logger[_0x3467[50]](_0x3467[22],_0x4851x17,404,_0x3467[49]);_0x4851x15[_0x3467[29]](404)[_0x3467[28]]();return null};return _0x4851x18}}function handleError(_0x4851x15,_0x4851x16,_0x4851x17){_0x4851x16= _0x4851x16|| 500;return function(_0x4851x27){logger[_0x3467[50]](_0x3467[22],_0x4851x17,_0x4851x16,JSON[_0x3467[31]](_0x4851x27));delete _0x4851x27[_0x3467[51]];_0x4851x15[_0x3467[29]](_0x4851x16)[_0x3467[52]](_0x4851x27)}}exports[_0x3467[53]]= function(_0x4851x28,_0x4851x15){var _0x4851x1b={},_0x4851x29={};_0x4851x29[_0x3467[54]]= _[_0x3467[57]](db[_0x3467[56]][_0x3467[55]]);_0x4851x29[_0x3467[58]]= _[_0x3467[57]](_0x4851x28[_0x3467[58]]);_0x4851x29[_0x3467[59]]= _[_0x3467[60]](_0x4851x29[_0x3467[54]],_0x4851x29[_0x3467[58]]);_0x4851x1b[_0x3467[61]]= _[_0x3467[60]](_0x4851x29[_0x3467[54]],qs[_0x3467[62]](_0x4851x28[_0x3467[58]][_0x3467[62]]));_0x4851x1b[_0x3467[61]]= (_0x4851x1b[_0x3467[61]][_0x3467[63]])?_0x4851x1b[_0x3467[61]]:_0x4851x29[_0x3467[54]];if(!_0x4851x28[_0x3467[58]][_0x3467[65]](_0x3467[64])){_0x4851x1b[_0x3467[35]]= qs[_0x3467[35]](_0x4851x28[_0x3467[58]][_0x3467[35]]);_0x4851x1b[_0x3467[34]]= qs[_0x3467[34]](_0x4851x28[_0x3467[58]][_0x3467[34]])};_0x4851x1b[_0x3467[66]]= qs[_0x3467[67]](_0x4851x28[_0x3467[58]][_0x3467[67]]);_0x4851x1b[_0x3467[68]]= qs[_0x3467[59]](_[_0x3467[69]](_0x4851x28[_0x3467[58]],_0x4851x29[_0x3467[59]]));if(_0x4851x28[_0x3467[58]][_0x3467[70]]){_0x4851x1b[_0x3467[68]]= _[_0x3467[73]](_0x4851x1b[_0x3467[68]],{$or:_[_0x3467[72]](_0x4851x1b[_0x3467[61]],function(_0x4851x2a){var _0x4851x2b={};_0x4851x2b[_0x4851x2a]= {$like:_0x3467[71]+ _0x4851x28[_0x3467[58]][_0x3467[70]]+ _0x3467[71]};return _0x4851x2b})})};_0x4851x1b= _[_0x3467[73]]({},_0x4851x1b,_0x4851x28[_0x3467[74]]);return db[_0x3467[56]][_0x3467[76]](_0x4851x1b)[_0x3467[45]](respondWithFilteredResult(_0x4851x15,_0x4851x1b,_0x3467[53]))[_0x3467[75]](handleError(_0x4851x15,null,_0x3467[53]))};exports[_0x3467[77]]= function(_0x4851x28,_0x4851x15){var _0x4851x1b={raw:false,where:{id:_0x4851x28[_0x3467[79]][_0x3467[78]]}},_0x4851x29={};_0x4851x29[_0x3467[54]]= _[_0x3467[57]](db[_0x3467[56]][_0x3467[55]]);_0x4851x29[_0x3467[58]]= _[_0x3467[57]](_0x4851x28[_0x3467[58]]);_0x4851x29[_0x3467[59]]= _[_0x3467[60]](_0x4851x29[_0x3467[54]],_0x4851x29[_0x3467[58]]);_0x4851x1b[_0x3467[61]]= _[_0x3467[60]](_0x4851x29[_0x3467[54]],qs[_0x3467[62]](_0x4851x28[_0x3467[58]][_0x3467[62]]));_0x4851x1b[_0x3467[61]]= (_0x4851x1b[_0x3467[61]][_0x3467[63]])?_0x4851x1b[_0x3467[61]]:_0x4851x29[_0x3467[54]];_0x4851x1b= _[_0x3467[73]]({},_0x4851x1b,_0x4851x28[_0x3467[74]]);return db[_0x3467[56]][_0x3467[80]](_0x4851x1b)[_0x3467[45]](handleEntityNotFound(_0x4851x15,null,_0x3467[77]))[_0x3467[45]](respondWithResult(_0x4851x15,null,_0x3467[77]))[_0x3467[75]](handleError(_0x4851x15,null,_0x3467[77]))};exports[_0x3467[81]]= function(_0x4851x28,_0x4851x15){return db[_0x3467[56]][_0x3467[81]](_0x4851x28[_0x3467[82]],{})[_0x3467[45]](respondWithResult(_0x4851x15,201,_0x3467[81]))[_0x3467[75]](handleError(_0x4851x15,null,_0x3467[81]))};exports[_0x3467[46]]= function(_0x4851x28,_0x4851x15){if(_0x4851x28[_0x3467[82]][_0x3467[78]]){delete _0x4851x28[_0x3467[82]][_0x3467[78]]};return db[_0x3467[56]][_0x3467[80]]({where:{id:_0x4851x28[_0x3467[79]][_0x3467[78]]}})[_0x3467[45]](handleEntityNotFound(_0x4851x15,null,_0x3467[46]))[_0x3467[45]](saveUpdates(_0x4851x28[_0x3467[82]],null,_0x3467[46]))[_0x3467[45]](respondWithResult(_0x4851x15,null,_0x3467[46]))[_0x3467[75]](handleError(_0x4851x15,null,_0x3467[46]))};exports[_0x3467[48]]= function(_0x4851x28,_0x4851x15){return db[_0x3467[56]][_0x3467[80]]({where:{id:_0x4851x28[_0x3467[79]][_0x3467[78]]}})[_0x3467[45]](handleEntityNotFound(_0x4851x15,null,_0x3467[48]))[_0x3467[45]](removeEntity(_0x4851x15,null,_0x3467[48]))[_0x3467[75]](handleError(_0x4851x15,null,_0x3467[48]))};exports[_0x3467[83]]= function(_0x4851x28,_0x4851x15){return db[_0x3467[56]][_0x3467[83]]()[_0x3467[45]](respondWithResult(_0x4851x15,null,_0x3467[83]))[_0x3467[75]](handleError(_0x4851x15,null,_0x3467[83]))}
\ No newline at end of file
+var _0xf2f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xf2f1[0];var jsonpatch=require(_0xf2f1[1]);var rp=require(_0xf2f1[2]);var moment=require(_0xf2f1[3]);var BPromise=require(_0xf2f1[4]);var util=require(_0xf2f1[5]);var path=require(_0xf2f1[6]);var sox=require(_0xf2f1[7]);var ejs=require(_0xf2f1[8]);var fs=require(_0xf2f1[9]);var _=require(_0xf2f1[10]);var squel=require(_0xf2f1[11]);var crypto=require(_0xf2f1[12]);var jsforce=require(_0xf2f1[13]);var toCsv=require(_0xf2f1[14]);var qs=require(_0xf2f1[15]);var logger=require(_0xf2f1[17])(_0xf2f1[16]);var utils=require(_0xf2f1[18]);var config=require(_0xf2f1[19]);var db=require(_0xf2f1[21])[_0xf2f1[20]];function respondWithStatusCode(_0xdf1cx15,_0xdf1cx16,_0xdf1cx17){_0xdf1cx16= _0xdf1cx16|| 204;return function(_0xdf1cx18){if(_0xdf1cx18){logger[_0xf2f1[24]](_0xf2f1[22],_0xdf1cx17,_0xdf1cx16,_0xf2f1[23]);logger[_0xf2f1[26]](_0xf2f1[25],_0xdf1cx17,_0xdf1cx16,_0xf2f1[23]);return _0xdf1cx15[_0xf2f1[27]](_0xdf1cx16)};return _0xdf1cx15[_0xf2f1[29]](304)[_0xf2f1[28]]()}}function respondWithResult(_0xdf1cx15,_0xdf1cx16,_0xdf1cx17){_0xdf1cx16= _0xdf1cx16|| 200;return function(_0xdf1cx18){if(_0xdf1cx18){logger[_0xf2f1[24]](_0xf2f1[22],_0xdf1cx17,_0xdf1cx16,_0xf2f1[30]);logger[_0xf2f1[26]](_0xf2f1[25],_0xdf1cx17,_0xdf1cx16,_0xf2f1[30],JSON[_0xf2f1[31]](_0xdf1cx18));return _0xdf1cx15[_0xf2f1[29]](_0xdf1cx16)[_0xf2f1[32]](_0xdf1cx18)};return _0xdf1cx15[_0xf2f1[29]](304)[_0xf2f1[28]]()}}function respondWithFilteredResult(_0xdf1cx15,_0xdf1cx1b,_0xdf1cx17){return function(_0xdf1cx18){if(_0xdf1cx18){var _0xdf1cx1c=_0xdf1cx18[_0xf2f1[33]],_0xdf1cx1d=_0xdf1cx1b[_0xf2f1[34]],_0xdf1cx1e=_0xdf1cx1b[_0xf2f1[34]]+ _0xdf1cx1b[_0xf2f1[35]],_0xdf1cx16;if(_0xdf1cx1e>= _0xdf1cx1c){_0xdf1cx1e= _0xdf1cx1c;_0xdf1cx16= 200}else {_0xdf1cx16= 206};_0xdf1cx15[_0xf2f1[29]](_0xdf1cx16);logger[_0xf2f1[24]](_0xf2f1[22],_0xdf1cx17,_0xdf1cx16,_0xf2f1[36]);logger[_0xf2f1[26]](_0xf2f1[25],_0xdf1cx17,_0xdf1cx16,_0xf2f1[30],JSON[_0xf2f1[31]](_0xdf1cx18));return _0xdf1cx15[_0xf2f1[40]](_0xf2f1[37],_0xdf1cx1d+ _0xf2f1[38]+ _0xdf1cx1e+ _0xf2f1[39]+ _0xdf1cx1c)[_0xf2f1[32]](_0xdf1cx18)};return null}}function patchUpdates(_0xdf1cx20){return function(_0xdf1cx18){try{jsonpatch[_0xf2f1[41]](_0xdf1cx18,_0xdf1cx20,true)}catch(err){return BPromise[_0xf2f1[42]](err)};return _0xdf1cx18[_0xf2f1[43]]()}}function saveUpdates(_0xdf1cx22,_0xdf1cx16,_0xdf1cx17){return function(_0xdf1cx18){if(_0xdf1cx18){return _0xdf1cx18[_0xf2f1[46]](_0xdf1cx22)[_0xf2f1[45]](function(_0xdf1cx23){logger[_0xf2f1[24]](_0xf2f1[22],_0xdf1cx17,_0xdf1cx16,_0xf2f1[44]);logger[_0xf2f1[26]](_0xf2f1[25],_0xdf1cx17,_0xdf1cx16,_0xf2f1[44],JSON[_0xf2f1[31]](_0xdf1cx18));return _0xdf1cx23})};return null}}function removeEntity(_0xdf1cx15,_0xdf1cx16,_0xdf1cx17){return function(_0xdf1cx18){if(_0xdf1cx18){return _0xdf1cx18[_0xf2f1[48]]()[_0xf2f1[45]](function(){logger[_0xf2f1[24]](_0xf2f1[22],_0xdf1cx17,_0xdf1cx16,_0xf2f1[47]);logger[_0xf2f1[26]](_0xf2f1[25],_0xdf1cx17,_0xdf1cx16,_0xf2f1[47],JSON[_0xf2f1[31]](_0xdf1cx18));_0xdf1cx15[_0xf2f1[29]](204)[_0xf2f1[28]]()})}}}function handleEntityNotFound(_0xdf1cx15,_0xdf1cx16,_0xdf1cx17){return function(_0xdf1cx18){if(!_0xdf1cx18){logger[_0xf2f1[50]](_0xf2f1[22],_0xdf1cx17,404,_0xf2f1[49]);_0xdf1cx15[_0xf2f1[29]](404)[_0xf2f1[28]]();return null};return _0xdf1cx18}}function handleError(_0xdf1cx15,_0xdf1cx16,_0xdf1cx17){_0xdf1cx16= _0xdf1cx16|| 500;return function(_0xdf1cx27){logger[_0xf2f1[50]](_0xf2f1[22],_0xdf1cx17,_0xdf1cx16,JSON[_0xf2f1[31]](_0xdf1cx27));delete _0xdf1cx27[_0xf2f1[51]];_0xdf1cx15[_0xf2f1[29]](_0xdf1cx16)[_0xf2f1[52]](_0xdf1cx27)}}exports[_0xf2f1[53]]= function(_0xdf1cx28,_0xdf1cx15){var _0xdf1cx1b={},_0xdf1cx29={};_0xdf1cx29[_0xf2f1[54]]= _[_0xf2f1[57]](db[_0xf2f1[56]][_0xf2f1[55]]);_0xdf1cx29[_0xf2f1[58]]= _[_0xf2f1[57]](_0xdf1cx28[_0xf2f1[58]]);_0xdf1cx29[_0xf2f1[59]]= _[_0xf2f1[60]](_0xdf1cx29[_0xf2f1[54]],_0xdf1cx29[_0xf2f1[58]]);_0xdf1cx1b[_0xf2f1[61]]= _[_0xf2f1[60]](_0xdf1cx29[_0xf2f1[54]],qs[_0xf2f1[62]](_0xdf1cx28[_0xf2f1[58]][_0xf2f1[62]]));_0xdf1cx1b[_0xf2f1[61]]= (_0xdf1cx1b[_0xf2f1[61]][_0xf2f1[63]])?_0xdf1cx1b[_0xf2f1[61]]:_0xdf1cx29[_0xf2f1[54]];if(!_0xdf1cx28[_0xf2f1[58]][_0xf2f1[65]](_0xf2f1[64])){_0xdf1cx1b[_0xf2f1[35]]= qs[_0xf2f1[35]](_0xdf1cx28[_0xf2f1[58]][_0xf2f1[35]]);_0xdf1cx1b[_0xf2f1[34]]= qs[_0xf2f1[34]](_0xdf1cx28[_0xf2f1[58]][_0xf2f1[34]])};_0xdf1cx1b[_0xf2f1[66]]= qs[_0xf2f1[67]](_0xdf1cx28[_0xf2f1[58]][_0xf2f1[67]]);_0xdf1cx1b[_0xf2f1[68]]= qs[_0xf2f1[59]](_[_0xf2f1[69]](_0xdf1cx28[_0xf2f1[58]],_0xdf1cx29[_0xf2f1[59]]));if(_0xdf1cx28[_0xf2f1[58]][_0xf2f1[70]]){_0xdf1cx1b[_0xf2f1[68]]= _[_0xf2f1[73]](_0xdf1cx1b[_0xf2f1[68]],{$or:_[_0xf2f1[72]](_0xdf1cx1b[_0xf2f1[61]],function(_0xdf1cx2a){var _0xdf1cx2b={};_0xdf1cx2b[_0xdf1cx2a]= {$like:_0xf2f1[71]+ _0xdf1cx28[_0xf2f1[58]][_0xf2f1[70]]+ _0xf2f1[71]};return _0xdf1cx2b})})};_0xdf1cx1b= _[_0xf2f1[73]]({},_0xdf1cx1b,_0xdf1cx28[_0xf2f1[74]]);return db[_0xf2f1[56]][_0xf2f1[76]](_0xdf1cx1b)[_0xf2f1[45]](respondWithFilteredResult(_0xdf1cx15,_0xdf1cx1b,_0xf2f1[53]))[_0xf2f1[75]](handleError(_0xdf1cx15,null,_0xf2f1[53]))};exports[_0xf2f1[77]]= function(_0xdf1cx28,_0xdf1cx15){var _0xdf1cx1b={raw:false,where:{id:_0xdf1cx28[_0xf2f1[79]][_0xf2f1[78]]}},_0xdf1cx29={};_0xdf1cx29[_0xf2f1[54]]= _[_0xf2f1[57]](db[_0xf2f1[56]][_0xf2f1[55]]);_0xdf1cx29[_0xf2f1[58]]= _[_0xf2f1[57]](_0xdf1cx28[_0xf2f1[58]]);_0xdf1cx29[_0xf2f1[59]]= _[_0xf2f1[60]](_0xdf1cx29[_0xf2f1[54]],_0xdf1cx29[_0xf2f1[58]]);_0xdf1cx1b[_0xf2f1[61]]= _[_0xf2f1[60]](_0xdf1cx29[_0xf2f1[54]],qs[_0xf2f1[62]](_0xdf1cx28[_0xf2f1[58]][_0xf2f1[62]]));_0xdf1cx1b[_0xf2f1[61]]= (_0xdf1cx1b[_0xf2f1[61]][_0xf2f1[63]])?_0xdf1cx1b[_0xf2f1[61]]:_0xdf1cx29[_0xf2f1[54]];_0xdf1cx1b= _[_0xf2f1[73]]({},_0xdf1cx1b,_0xdf1cx28[_0xf2f1[74]]);return db[_0xf2f1[56]][_0xf2f1[80]](_0xdf1cx1b)[_0xf2f1[45]](handleEntityNotFound(_0xdf1cx15,null,_0xf2f1[77]))[_0xf2f1[45]](respondWithResult(_0xdf1cx15,null,_0xf2f1[77]))[_0xf2f1[75]](handleError(_0xdf1cx15,null,_0xf2f1[77]))};exports[_0xf2f1[81]]= function(_0xdf1cx28,_0xdf1cx15){return db[_0xf2f1[56]][_0xf2f1[81]](_0xdf1cx28[_0xf2f1[82]],{})[_0xf2f1[45]](respondWithResult(_0xdf1cx15,201,_0xf2f1[81]))[_0xf2f1[75]](handleError(_0xdf1cx15,null,_0xf2f1[81]))};exports[_0xf2f1[46]]= function(_0xdf1cx28,_0xdf1cx15){if(_0xdf1cx28[_0xf2f1[82]][_0xf2f1[78]]){delete _0xdf1cx28[_0xf2f1[82]][_0xf2f1[78]]};return db[_0xf2f1[56]][_0xf2f1[80]]({where:{id:_0xdf1cx28[_0xf2f1[79]][_0xf2f1[78]]}})[_0xf2f1[45]](handleEntityNotFound(_0xdf1cx15,null,_0xf2f1[46]))[_0xf2f1[45]](saveUpdates(_0xdf1cx28[_0xf2f1[82]],null,_0xf2f1[46]))[_0xf2f1[45]](respondWithResult(_0xdf1cx15,null,_0xf2f1[46]))[_0xf2f1[75]](handleError(_0xdf1cx15,null,_0xf2f1[46]))};exports[_0xf2f1[48]]= function(_0xdf1cx28,_0xdf1cx15){return db[_0xf2f1[56]][_0xf2f1[80]]({where:{id:_0xdf1cx28[_0xf2f1[79]][_0xf2f1[78]]}})[_0xf2f1[45]](handleEntityNotFound(_0xdf1cx15,null,_0xf2f1[48]))[_0xf2f1[45]](removeEntity(_0xdf1cx15,null,_0xf2f1[48]))[_0xf2f1[75]](handleError(_0xdf1cx15,null,_0xf2f1[48]))};exports[_0xf2f1[83]]= function(_0xdf1cx28,_0xdf1cx15){return db[_0xf2f1[56]][_0xf2f1[83]]()[_0xf2f1[45]](respondWithResult(_0xdf1cx15,null,_0xf2f1[83]))[_0xf2f1[75]](handleError(_0xdf1cx15,null,_0xf2f1[83]))}
\ No newline at end of file
index 8f2e6a7..0376c78 100644 (file)
@@ -1 +1 @@
-var _0x516e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x516e[0];var _=require(_0x516e[1]);var util=require(_0x516e[2]);var logger=require(_0x516e[4])(_0x516e[3]);var attributes=require(_0x516e[5]);module[_0x516e[6]]= function(_0x168ax5,_0x168ax6){return _0x168ax5[_0x516e[9]](_0x516e[7],attributes,{tableName:_0x516e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xbf16=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xbf16[0];var _=require(_0xbf16[1]);var util=require(_0xbf16[2]);var logger=require(_0xbf16[4])(_0xbf16[3]);var attributes=require(_0xbf16[5]);module[_0xbf16[6]]= function(_0x1ed2x5,_0x1ed2x6){return _0x1ed2x5[_0xbf16[9]](_0xbf16[7],attributes,{tableName:_0xbf16[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 6c87997..f9ffd5a 100644 (file)
@@ -1 +1 @@
-var _0xfa73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfa73[0];var _=require(_0xfa73[1]);var util=require(_0xfa73[2]);var moment=require(_0xfa73[3]);var BPromise=require(_0xfa73[4]);var db=require(_0xfa73[6])[_0xfa73[5]];var utils=require(_0xfa73[7]);var logger=require(_0xfa73[9])(_0xfa73[8]);var jayson=require(_0xfa73[10]);var client=jayson[_0xfa73[12]][_0xfa73[11]]({port:9002});function respondWithRpcPromise(_0x4b2exb,_0x4b2exc,_0x4b2exd){return  new BPromise(function(_0x4b2exe,_0x4b2exf){return client[_0xfa73[25]](_0x4b2exb,_0x4b2exd)[_0xfa73[24]](function(_0x4b2ex11){logger[_0xfa73[17]](_0xfa73[13],_0x4b2exc,_0xfa73[16]);logger[_0xfa73[20]](_0xfa73[18],_0x4b2exc,_0xfa73[16],JSON[_0xfa73[19]](_0x4b2ex11));if(_0x4b2ex11[_0xfa73[14]]){if(_0x4b2ex11[_0xfa73[14]][_0xfa73[21]]=== 500){logger[_0xfa73[14]](_0xfa73[13],_0x4b2exc,_0x4b2ex11[_0xfa73[14]][_0xfa73[22]]);return _0x4b2exf(_0x4b2ex11[_0xfa73[14]][_0xfa73[22]])};logger[_0xfa73[14]](_0xfa73[13],_0x4b2exc,_0x4b2ex11[_0xfa73[14]][_0xfa73[22]]);return _0x4b2exe(_0x4b2ex11[_0xfa73[14]][_0xfa73[22]])}else {logger[_0xfa73[17]](_0xfa73[13],_0x4b2exc,_0xfa73[16]);_0x4b2exe(_0x4b2ex11[_0xfa73[23]][_0xfa73[22]])}})[_0xfa73[15]](function(_0x4b2ex10){logger[_0xfa73[14]](_0xfa73[13],_0x4b2exc,_0x4b2ex10);_0x4b2exf(_0x4b2ex10)})})}
\ No newline at end of file
+var _0xcd1a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcd1a[0];var _=require(_0xcd1a[1]);var util=require(_0xcd1a[2]);var moment=require(_0xcd1a[3]);var BPromise=require(_0xcd1a[4]);var db=require(_0xcd1a[6])[_0xcd1a[5]];var utils=require(_0xcd1a[7]);var logger=require(_0xcd1a[9])(_0xcd1a[8]);var jayson=require(_0xcd1a[10]);var client=jayson[_0xcd1a[12]][_0xcd1a[11]]({port:9002});function respondWithRpcPromise(_0xb365xb,_0xb365xc,_0xb365xd){return  new BPromise(function(_0xb365xe,_0xb365xf){return client[_0xcd1a[25]](_0xb365xb,_0xb365xd)[_0xcd1a[24]](function(_0xb365x11){logger[_0xcd1a[17]](_0xcd1a[13],_0xb365xc,_0xcd1a[16]);logger[_0xcd1a[20]](_0xcd1a[18],_0xb365xc,_0xcd1a[16],JSON[_0xcd1a[19]](_0xb365x11));if(_0xb365x11[_0xcd1a[14]]){if(_0xb365x11[_0xcd1a[14]][_0xcd1a[21]]=== 500){logger[_0xcd1a[14]](_0xcd1a[13],_0xb365xc,_0xb365x11[_0xcd1a[14]][_0xcd1a[22]]);return _0xb365xf(_0xb365x11[_0xcd1a[14]][_0xcd1a[22]])};logger[_0xcd1a[14]](_0xcd1a[13],_0xb365xc,_0xb365x11[_0xcd1a[14]][_0xcd1a[22]]);return _0xb365xe(_0xb365x11[_0xcd1a[14]][_0xcd1a[22]])}else {logger[_0xcd1a[17]](_0xcd1a[13],_0xb365xc,_0xcd1a[16]);_0xb365xe(_0xb365x11[_0xcd1a[23]][_0xcd1a[22]])}})[_0xcd1a[15]](function(_0xb365x10){logger[_0xcd1a[14]](_0xcd1a[13],_0xb365xc,_0xb365x10);_0xb365xf(_0xb365x10)})})}
\ No newline at end of file
index 074ad5d..7bce9ac 100644 (file)
@@ -1 +1 @@
-var _0xa679=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa679[0];var multer=require(_0xa679[1]);var util=require(_0xa679[2]);var path=require(_0xa679[3]);var express=require(_0xa679[4]);var router=express.Router();var auth=require(_0xa679[5]);var config=require(_0xa679[6]);var controller=require(_0xa679[7]);router[_0xa679[11]](_0xa679[8],auth[_0xa679[9]](),controller[_0xa679[10]]);router[_0xa679[11]](_0xa679[12],auth[_0xa679[9]](),controller[_0xa679[13]]);router[_0xa679[11]](_0xa679[14],auth[_0xa679[9]](),controller[_0xa679[15]]);router[_0xa679[17]](_0xa679[8],auth[_0xa679[9]](),controller[_0xa679[16]]);router[_0xa679[19]](_0xa679[14],auth[_0xa679[9]](),controller[_0xa679[18]]);router[_0xa679[21]](_0xa679[14],auth[_0xa679[9]](),controller[_0xa679[20]]);module[_0xa679[22]]= router
\ No newline at end of file
+var _0x7611=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7611[0];var multer=require(_0x7611[1]);var util=require(_0x7611[2]);var path=require(_0x7611[3]);var express=require(_0x7611[4]);var router=express.Router();var auth=require(_0x7611[5]);var config=require(_0x7611[6]);var controller=require(_0x7611[7]);router[_0x7611[11]](_0x7611[8],auth[_0x7611[9]](),controller[_0x7611[10]]);router[_0x7611[11]](_0x7611[12],auth[_0x7611[9]](),controller[_0x7611[13]]);router[_0x7611[11]](_0x7611[14],auth[_0x7611[9]](),controller[_0x7611[15]]);router[_0x7611[17]](_0x7611[8],auth[_0x7611[9]](),controller[_0x7611[16]]);router[_0x7611[19]](_0x7611[14],auth[_0x7611[9]](),controller[_0x7611[18]]);router[_0x7611[21]](_0x7611[14],auth[_0x7611[9]](),controller[_0x7611[20]]);module[_0x7611[22]]= router
\ No newline at end of file
index 6e1e2a2..d12d178 100644 (file)
@@ -1 +1 @@
-var _0x83db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x77\x65\x62\x63\x68\x61\x74","\x65\x6E\x71\x75\x69\x72\x79","\x70\x65\x6E\x64\x69\x6E\x67","\x61\x63\x63\x65\x70\x74\x65\x64","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x65\x72\x76\x65\x64","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x61\x62\x61\x6E\x64\x6F\x6E"];_0x83db[0];var Sequelize=require(_0x83db[1]);module[_0x83db[2]]= {fullname:{type:Sequelize[_0x83db[3]]},email:{type:Sequelize[_0x83db[3]],validate:{isEmail:true}},remote_address:{type:Sequelize[_0x83db[3]]},user_agent:{type:Sequelize[_0x83db[3]]},visitor_language:{type:Sequelize[_0x83db[3]]},referer:{type:Sequelize[_0x83db[3]]},browser:{type:Sequelize[_0x83db[3]]},engine:{type:Sequelize[_0x83db[3]]},os:{type:Sequelize[_0x83db[3]]},device:{type:Sequelize[_0x83db[3]]},country:{type:Sequelize[_0x83db[3]]},region:{type:Sequelize[_0x83db[3]]},city:{type:Sequelize[_0x83db[3]]},latitude:{type:Sequelize[_0x83db[3]]},longitude:{type:Sequelize[_0x83db[3]]},origin:{type:Sequelize.ENUM(_0x83db[4],_0x83db[5])},status:{type:Sequelize.ENUM(_0x83db[6],_0x83db[7],_0x83db[8],_0x83db[9],_0x83db[10],_0x83db[11]),defaultValue:_0x83db[6]},data1:{type:Sequelize[_0x83db[3]]},data2:{type:Sequelize[_0x83db[3]]},data3:{type:Sequelize[_0x83db[3]]},offlineData1:{type:Sequelize[_0x83db[3]]},offlineData2:{type:Sequelize[_0x83db[3]]},offlineData3:{type:Sequelize[_0x83db[3]]},labelData1:{type:Sequelize[_0x83db[3]]},labelData2:{type:Sequelize[_0x83db[3]]},labelData3:{type:Sequelize[_0x83db[3]]},labelOfflineData1:{type:Sequelize[_0x83db[3]]},labelOfflineData2:{type:Sequelize[_0x83db[3]]},labelOfflineData3:{type:Sequelize[_0x83db[3]]}}
\ No newline at end of file
+var _0xbcc0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x77\x65\x62\x63\x68\x61\x74","\x65\x6E\x71\x75\x69\x72\x79","\x70\x65\x6E\x64\x69\x6E\x67","\x61\x63\x63\x65\x70\x74\x65\x64","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x65\x72\x76\x65\x64","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x61\x62\x61\x6E\x64\x6F\x6E"];_0xbcc0[0];var Sequelize=require(_0xbcc0[1]);module[_0xbcc0[2]]= {fullname:{type:Sequelize[_0xbcc0[3]]},email:{type:Sequelize[_0xbcc0[3]],validate:{isEmail:true}},remote_address:{type:Sequelize[_0xbcc0[3]]},user_agent:{type:Sequelize[_0xbcc0[3]]},visitor_language:{type:Sequelize[_0xbcc0[3]]},referer:{type:Sequelize[_0xbcc0[3]]},browser:{type:Sequelize[_0xbcc0[3]]},engine:{type:Sequelize[_0xbcc0[3]]},os:{type:Sequelize[_0xbcc0[3]]},device:{type:Sequelize[_0xbcc0[3]]},country:{type:Sequelize[_0xbcc0[3]]},region:{type:Sequelize[_0xbcc0[3]]},city:{type:Sequelize[_0xbcc0[3]]},latitude:{type:Sequelize[_0xbcc0[3]]},longitude:{type:Sequelize[_0xbcc0[3]]},origin:{type:Sequelize.ENUM(_0xbcc0[4],_0xbcc0[5])},status:{type:Sequelize.ENUM(_0xbcc0[6],_0xbcc0[7],_0xbcc0[8],_0xbcc0[9],_0xbcc0[10],_0xbcc0[11]),defaultValue:_0xbcc0[6]},data1:{type:Sequelize[_0xbcc0[3]]},data2:{type:Sequelize[_0xbcc0[3]]},data3:{type:Sequelize[_0xbcc0[3]]},offlineData1:{type:Sequelize[_0xbcc0[3]]},offlineData2:{type:Sequelize[_0xbcc0[3]]},offlineData3:{type:Sequelize[_0xbcc0[3]]},labelData1:{type:Sequelize[_0xbcc0[3]]},labelData2:{type:Sequelize[_0xbcc0[3]]},labelData3:{type:Sequelize[_0xbcc0[3]]},labelOfflineData1:{type:Sequelize[_0xbcc0[3]]},labelOfflineData2:{type:Sequelize[_0xbcc0[3]]},labelOfflineData3:{type:Sequelize[_0xbcc0[3]]}}
\ No newline at end of file
index 53943f7..cf60e44 100644 (file)
@@ -1 +1 @@
-var _0xb058=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xb058[0];var jsonpatch=require(_0xb058[1]);var rp=require(_0xb058[2]);var moment=require(_0xb058[3]);var BPromise=require(_0xb058[4]);var util=require(_0xb058[5]);var path=require(_0xb058[6]);var sox=require(_0xb058[7]);var ejs=require(_0xb058[8]);var fs=require(_0xb058[9]);var _=require(_0xb058[10]);var squel=require(_0xb058[11]);var crypto=require(_0xb058[12]);var jsforce=require(_0xb058[13]);var toCsv=require(_0xb058[14]);var qs=require(_0xb058[15]);var logger=require(_0xb058[17])(_0xb058[16]);var utils=require(_0xb058[18]);var config=require(_0xb058[19]);var db=require(_0xb058[21])[_0xb058[20]];function respondWithStatusCode(_0xe7f9x15,_0xe7f9x16,_0xe7f9x17){_0xe7f9x16= _0xe7f9x16|| 204;return function(_0xe7f9x18){if(_0xe7f9x18){logger[_0xb058[24]](_0xb058[22],_0xe7f9x17,_0xe7f9x16,_0xb058[23]);logger[_0xb058[26]](_0xb058[25],_0xe7f9x17,_0xe7f9x16,_0xb058[23]);return _0xe7f9x15[_0xb058[27]](_0xe7f9x16)};return _0xe7f9x15[_0xb058[29]](304)[_0xb058[28]]()}}function respondWithResult(_0xe7f9x15,_0xe7f9x16,_0xe7f9x17){_0xe7f9x16= _0xe7f9x16|| 200;return function(_0xe7f9x18){if(_0xe7f9x18){logger[_0xb058[24]](_0xb058[22],_0xe7f9x17,_0xe7f9x16,_0xb058[30]);logger[_0xb058[26]](_0xb058[25],_0xe7f9x17,_0xe7f9x16,_0xb058[30],JSON[_0xb058[31]](_0xe7f9x18));return _0xe7f9x15[_0xb058[29]](_0xe7f9x16)[_0xb058[32]](_0xe7f9x18)};return _0xe7f9x15[_0xb058[29]](304)[_0xb058[28]]()}}function respondWithFilteredResult(_0xe7f9x15,_0xe7f9x1b,_0xe7f9x17){return function(_0xe7f9x18){if(_0xe7f9x18){var _0xe7f9x1c=_0xe7f9x18[_0xb058[33]],_0xe7f9x1d=_0xe7f9x1b[_0xb058[34]],_0xe7f9x1e=_0xe7f9x1b[_0xb058[34]]+ _0xe7f9x1b[_0xb058[35]],_0xe7f9x16;if(_0xe7f9x1e>= _0xe7f9x1c){_0xe7f9x1e= _0xe7f9x1c;_0xe7f9x16= 200}else {_0xe7f9x16= 206};_0xe7f9x15[_0xb058[29]](_0xe7f9x16);logger[_0xb058[24]](_0xb058[22],_0xe7f9x17,_0xe7f9x16,_0xb058[36]);logger[_0xb058[26]](_0xb058[25],_0xe7f9x17,_0xe7f9x16,_0xb058[30],JSON[_0xb058[31]](_0xe7f9x18));return _0xe7f9x15[_0xb058[40]](_0xb058[37],_0xe7f9x1d+ _0xb058[38]+ _0xe7f9x1e+ _0xb058[39]+ _0xe7f9x1c)[_0xb058[32]](_0xe7f9x18)};return null}}function patchUpdates(_0xe7f9x20){return function(_0xe7f9x18){try{jsonpatch[_0xb058[41]](_0xe7f9x18,_0xe7f9x20,true)}catch(err){return BPromise[_0xb058[42]](err)};return _0xe7f9x18[_0xb058[43]]()}}function saveUpdates(_0xe7f9x22,_0xe7f9x16,_0xe7f9x17){return function(_0xe7f9x18){if(_0xe7f9x18){return _0xe7f9x18[_0xb058[46]](_0xe7f9x22)[_0xb058[45]](function(_0xe7f9x23){logger[_0xb058[24]](_0xb058[22],_0xe7f9x17,_0xe7f9x16,_0xb058[44]);logger[_0xb058[26]](_0xb058[25],_0xe7f9x17,_0xe7f9x16,_0xb058[44],JSON[_0xb058[31]](_0xe7f9x18));return _0xe7f9x23})};return null}}function removeEntity(_0xe7f9x15,_0xe7f9x16,_0xe7f9x17){return function(_0xe7f9x18){if(_0xe7f9x18){return _0xe7f9x18[_0xb058[48]]()[_0xb058[45]](function(){logger[_0xb058[24]](_0xb058[22],_0xe7f9x17,_0xe7f9x16,_0xb058[47]);logger[_0xb058[26]](_0xb058[25],_0xe7f9x17,_0xe7f9x16,_0xb058[47],JSON[_0xb058[31]](_0xe7f9x18));_0xe7f9x15[_0xb058[29]](204)[_0xb058[28]]()})}}}function handleEntityNotFound(_0xe7f9x15,_0xe7f9x16,_0xe7f9x17){return function(_0xe7f9x18){if(!_0xe7f9x18){logger[_0xb058[50]](_0xb058[22],_0xe7f9x17,404,_0xb058[49]);_0xe7f9x15[_0xb058[29]](404)[_0xb058[28]]();return null};return _0xe7f9x18}}function handleError(_0xe7f9x15,_0xe7f9x16,_0xe7f9x17){_0xe7f9x16= _0xe7f9x16|| 500;return function(_0xe7f9x27){logger[_0xb058[50]](_0xb058[22],_0xe7f9x17,_0xe7f9x16,JSON[_0xb058[31]](_0xe7f9x27));delete _0xe7f9x27[_0xb058[51]];_0xe7f9x15[_0xb058[29]](_0xe7f9x16)[_0xb058[52]](_0xe7f9x27)}}exports[_0xb058[53]]= function(_0xe7f9x28,_0xe7f9x15){var _0xe7f9x1b={raw:true,where:{id:_0xe7f9x28[_0xb058[55]][_0xb058[54]]}},_0xe7f9x29={};_0xe7f9x29[_0xb058[56]]= _[_0xb058[59]](db[_0xb058[58]][_0xb058[57]]);_0xe7f9x29[_0xb058[60]]= _[_0xb058[59]](_0xe7f9x28[_0xb058[60]]);_0xe7f9x29[_0xb058[61]]= _[_0xb058[62]](_0xe7f9x29[_0xb058[56]],_0xe7f9x29[_0xb058[60]]);_0xe7f9x1b[_0xb058[63]]= _[_0xb058[62]](_0xe7f9x29[_0xb058[56]],qs[_0xb058[64]](_0xe7f9x28[_0xb058[60]][_0xb058[64]]));_0xe7f9x1b[_0xb058[63]]= (_0xe7f9x1b[_0xb058[63]][_0xb058[65]])?_0xe7f9x1b[_0xb058[63]]:_0xe7f9x29[_0xb058[56]];_0xe7f9x1b= _[_0xb058[67]]({},_0xe7f9x1b,_0xe7f9x28[_0xb058[66]]);return db[_0xb058[58]][_0xb058[69]](_0xe7f9x1b)[_0xb058[45]](handleEntityNotFound(_0xe7f9x15,null,_0xb058[53]))[_0xb058[45]](respondWithResult(_0xe7f9x15,null,_0xb058[53]))[_0xb058[68]](handleError(_0xe7f9x15,null,_0xb058[53]))};exports[_0xb058[46]]= function(_0xe7f9x28,_0xe7f9x15){if(_0xe7f9x28[_0xb058[70]][_0xb058[54]]){delete _0xe7f9x28[_0xb058[70]][_0xb058[54]]};return db[_0xb058[58]][_0xb058[69]]({where:{id:_0xe7f9x28[_0xb058[55]][_0xb058[54]]}})[_0xb058[45]](handleEntityNotFound(_0xe7f9x15,null,_0xb058[46]))[_0xb058[45]](saveUpdates(_0xe7f9x28[_0xb058[70]],null,_0xb058[46]))[_0xb058[45]](respondWithResult(_0xe7f9x15,null,_0xb058[46]))[_0xb058[68]](handleError(_0xe7f9x15,null,_0xb058[46]))};exports[_0xb058[48]]= function(_0xe7f9x28,_0xe7f9x15){return db[_0xb058[58]][_0xb058[69]]({where:{id:_0xe7f9x28[_0xb058[55]][_0xb058[54]]}})[_0xb058[45]](handleEntityNotFound(_0xe7f9x15,null,_0xb058[48]))[_0xb058[45]](removeEntity(_0xe7f9x15,null,_0xb058[48]))[_0xb058[68]](handleError(_0xe7f9x15,null,_0xb058[48]))}
\ No newline at end of file
+var _0xeafd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xeafd[0];var jsonpatch=require(_0xeafd[1]);var rp=require(_0xeafd[2]);var moment=require(_0xeafd[3]);var BPromise=require(_0xeafd[4]);var util=require(_0xeafd[5]);var path=require(_0xeafd[6]);var sox=require(_0xeafd[7]);var ejs=require(_0xeafd[8]);var fs=require(_0xeafd[9]);var _=require(_0xeafd[10]);var squel=require(_0xeafd[11]);var crypto=require(_0xeafd[12]);var jsforce=require(_0xeafd[13]);var toCsv=require(_0xeafd[14]);var qs=require(_0xeafd[15]);var logger=require(_0xeafd[17])(_0xeafd[16]);var utils=require(_0xeafd[18]);var config=require(_0xeafd[19]);var db=require(_0xeafd[21])[_0xeafd[20]];function respondWithStatusCode(_0x6356x15,_0x6356x16,_0x6356x17){_0x6356x16= _0x6356x16|| 204;return function(_0x6356x18){if(_0x6356x18){logger[_0xeafd[24]](_0xeafd[22],_0x6356x17,_0x6356x16,_0xeafd[23]);logger[_0xeafd[26]](_0xeafd[25],_0x6356x17,_0x6356x16,_0xeafd[23]);return _0x6356x15[_0xeafd[27]](_0x6356x16)};return _0x6356x15[_0xeafd[29]](304)[_0xeafd[28]]()}}function respondWithResult(_0x6356x15,_0x6356x16,_0x6356x17){_0x6356x16= _0x6356x16|| 200;return function(_0x6356x18){if(_0x6356x18){logger[_0xeafd[24]](_0xeafd[22],_0x6356x17,_0x6356x16,_0xeafd[30]);logger[_0xeafd[26]](_0xeafd[25],_0x6356x17,_0x6356x16,_0xeafd[30],JSON[_0xeafd[31]](_0x6356x18));return _0x6356x15[_0xeafd[29]](_0x6356x16)[_0xeafd[32]](_0x6356x18)};return _0x6356x15[_0xeafd[29]](304)[_0xeafd[28]]()}}function respondWithFilteredResult(_0x6356x15,_0x6356x1b,_0x6356x17){return function(_0x6356x18){if(_0x6356x18){var _0x6356x1c=_0x6356x18[_0xeafd[33]],_0x6356x1d=_0x6356x1b[_0xeafd[34]],_0x6356x1e=_0x6356x1b[_0xeafd[34]]+ _0x6356x1b[_0xeafd[35]],_0x6356x16;if(_0x6356x1e>= _0x6356x1c){_0x6356x1e= _0x6356x1c;_0x6356x16= 200}else {_0x6356x16= 206};_0x6356x15[_0xeafd[29]](_0x6356x16);logger[_0xeafd[24]](_0xeafd[22],_0x6356x17,_0x6356x16,_0xeafd[36]);logger[_0xeafd[26]](_0xeafd[25],_0x6356x17,_0x6356x16,_0xeafd[30],JSON[_0xeafd[31]](_0x6356x18));return _0x6356x15[_0xeafd[40]](_0xeafd[37],_0x6356x1d+ _0xeafd[38]+ _0x6356x1e+ _0xeafd[39]+ _0x6356x1c)[_0xeafd[32]](_0x6356x18)};return null}}function patchUpdates(_0x6356x20){return function(_0x6356x18){try{jsonpatch[_0xeafd[41]](_0x6356x18,_0x6356x20,true)}catch(err){return BPromise[_0xeafd[42]](err)};return _0x6356x18[_0xeafd[43]]()}}function saveUpdates(_0x6356x22,_0x6356x16,_0x6356x17){return function(_0x6356x18){if(_0x6356x18){return _0x6356x18[_0xeafd[46]](_0x6356x22)[_0xeafd[45]](function(_0x6356x23){logger[_0xeafd[24]](_0xeafd[22],_0x6356x17,_0x6356x16,_0xeafd[44]);logger[_0xeafd[26]](_0xeafd[25],_0x6356x17,_0x6356x16,_0xeafd[44],JSON[_0xeafd[31]](_0x6356x18));return _0x6356x23})};return null}}function removeEntity(_0x6356x15,_0x6356x16,_0x6356x17){return function(_0x6356x18){if(_0x6356x18){return _0x6356x18[_0xeafd[48]]()[_0xeafd[45]](function(){logger[_0xeafd[24]](_0xeafd[22],_0x6356x17,_0x6356x16,_0xeafd[47]);logger[_0xeafd[26]](_0xeafd[25],_0x6356x17,_0x6356x16,_0xeafd[47],JSON[_0xeafd[31]](_0x6356x18));_0x6356x15[_0xeafd[29]](204)[_0xeafd[28]]()})}}}function handleEntityNotFound(_0x6356x15,_0x6356x16,_0x6356x17){return function(_0x6356x18){if(!_0x6356x18){logger[_0xeafd[50]](_0xeafd[22],_0x6356x17,404,_0xeafd[49]);_0x6356x15[_0xeafd[29]](404)[_0xeafd[28]]();return null};return _0x6356x18}}function handleError(_0x6356x15,_0x6356x16,_0x6356x17){_0x6356x16= _0x6356x16|| 500;return function(_0x6356x27){logger[_0xeafd[50]](_0xeafd[22],_0x6356x17,_0x6356x16,JSON[_0xeafd[31]](_0x6356x27));delete _0x6356x27[_0xeafd[51]];_0x6356x15[_0xeafd[29]](_0x6356x16)[_0xeafd[52]](_0x6356x27)}}exports[_0xeafd[53]]= function(_0x6356x28,_0x6356x15){var _0x6356x1b={raw:true,where:{id:_0x6356x28[_0xeafd[55]][_0xeafd[54]]}},_0x6356x29={};_0x6356x29[_0xeafd[56]]= _[_0xeafd[59]](db[_0xeafd[58]][_0xeafd[57]]);_0x6356x29[_0xeafd[60]]= _[_0xeafd[59]](_0x6356x28[_0xeafd[60]]);_0x6356x29[_0xeafd[61]]= _[_0xeafd[62]](_0x6356x29[_0xeafd[56]],_0x6356x29[_0xeafd[60]]);_0x6356x1b[_0xeafd[63]]= _[_0xeafd[62]](_0x6356x29[_0xeafd[56]],qs[_0xeafd[64]](_0x6356x28[_0xeafd[60]][_0xeafd[64]]));_0x6356x1b[_0xeafd[63]]= (_0x6356x1b[_0xeafd[63]][_0xeafd[65]])?_0x6356x1b[_0xeafd[63]]:_0x6356x29[_0xeafd[56]];_0x6356x1b= _[_0xeafd[67]]({},_0x6356x1b,_0x6356x28[_0xeafd[66]]);return db[_0xeafd[58]][_0xeafd[69]](_0x6356x1b)[_0xeafd[45]](handleEntityNotFound(_0x6356x15,null,_0xeafd[53]))[_0xeafd[45]](respondWithResult(_0x6356x15,null,_0xeafd[53]))[_0xeafd[68]](handleError(_0x6356x15,null,_0xeafd[53]))};exports[_0xeafd[46]]= function(_0x6356x28,_0x6356x15){if(_0x6356x28[_0xeafd[70]][_0xeafd[54]]){delete _0x6356x28[_0xeafd[70]][_0xeafd[54]]};return db[_0xeafd[58]][_0xeafd[69]]({where:{id:_0x6356x28[_0xeafd[55]][_0xeafd[54]]}})[_0xeafd[45]](handleEntityNotFound(_0x6356x15,null,_0xeafd[46]))[_0xeafd[45]](saveUpdates(_0x6356x28[_0xeafd[70]],null,_0xeafd[46]))[_0xeafd[45]](respondWithResult(_0x6356x15,null,_0xeafd[46]))[_0xeafd[68]](handleError(_0x6356x15,null,_0xeafd[46]))};exports[_0xeafd[48]]= function(_0x6356x28,_0x6356x15){return db[_0xeafd[58]][_0xeafd[69]]({where:{id:_0x6356x28[_0xeafd[55]][_0xeafd[54]]}})[_0xeafd[45]](handleEntityNotFound(_0x6356x15,null,_0xeafd[48]))[_0xeafd[45]](removeEntity(_0x6356x15,null,_0xeafd[48]))[_0xeafd[68]](handleError(_0x6356x15,null,_0xeafd[48]))}
\ No newline at end of file
index 034a9b3..e719260 100644 (file)
@@ -1 +1 @@
-var _0xd0dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xd0dc[0];var _=require(_0xd0dc[1]);var util=require(_0xd0dc[2]);var logger=require(_0xd0dc[4])(_0xd0dc[3]);var attributes=require(_0xd0dc[5]);module[_0xd0dc[6]]= function(_0x4e01x5,_0x4e01x6){return _0x4e01x5[_0xd0dc[9]](_0xd0dc[7],attributes,{tableName:_0xd0dc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xeeed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xeeed[0];var _=require(_0xeeed[1]);var util=require(_0xeeed[2]);var logger=require(_0xeeed[4])(_0xeeed[3]);var attributes=require(_0xeeed[5]);module[_0xeeed[6]]= function(_0x46fcx5,_0x46fcx6){return _0x46fcx5[_0xeeed[9]](_0xeeed[7],attributes,{tableName:_0xeeed[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index dd77767..d438600 100644 (file)
@@ -1 +1 @@
-var _0xd655=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd655[0];var _=require(_0xd655[1]);var util=require(_0xd655[2]);var moment=require(_0xd655[3]);var BPromise=require(_0xd655[4]);var db=require(_0xd655[6])[_0xd655[5]];var utils=require(_0xd655[7]);var logger=require(_0xd655[9])(_0xd655[8]);var jayson=require(_0xd655[10]);var client=jayson[_0xd655[12]][_0xd655[11]]({port:9002});function respondWithRpcPromise(_0xe0d7xb,_0xe0d7xc,_0xe0d7xd){return  new BPromise(function(_0xe0d7xe,_0xe0d7xf){return client[_0xd655[25]](_0xe0d7xb,_0xe0d7xd)[_0xd655[24]](function(_0xe0d7x11){logger[_0xd655[17]](_0xd655[13],_0xe0d7xc,_0xd655[16]);logger[_0xd655[20]](_0xd655[18],_0xe0d7xc,_0xd655[16],JSON[_0xd655[19]](_0xe0d7x11));if(_0xe0d7x11[_0xd655[14]]){if(_0xe0d7x11[_0xd655[14]][_0xd655[21]]=== 500){logger[_0xd655[14]](_0xd655[13],_0xe0d7xc,_0xe0d7x11[_0xd655[14]][_0xd655[22]]);return _0xe0d7xf(_0xe0d7x11[_0xd655[14]][_0xd655[22]])};logger[_0xd655[14]](_0xd655[13],_0xe0d7xc,_0xe0d7x11[_0xd655[14]][_0xd655[22]]);return _0xe0d7xe(_0xe0d7x11[_0xd655[14]][_0xd655[22]])}else {logger[_0xd655[17]](_0xd655[13],_0xe0d7xc,_0xd655[16]);_0xe0d7xe(_0xe0d7x11[_0xd655[23]][_0xd655[22]])}})[_0xd655[15]](function(_0xe0d7x10){logger[_0xd655[14]](_0xd655[13],_0xe0d7xc,_0xe0d7x10);_0xe0d7xf(_0xe0d7x10)})})}
\ No newline at end of file
+var _0xb7b9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb7b9[0];var _=require(_0xb7b9[1]);var util=require(_0xb7b9[2]);var moment=require(_0xb7b9[3]);var BPromise=require(_0xb7b9[4]);var db=require(_0xb7b9[6])[_0xb7b9[5]];var utils=require(_0xb7b9[7]);var logger=require(_0xb7b9[9])(_0xb7b9[8]);var jayson=require(_0xb7b9[10]);var client=jayson[_0xb7b9[12]][_0xb7b9[11]]({port:9002});function respondWithRpcPromise(_0x8c9dxb,_0x8c9dxc,_0x8c9dxd){return  new BPromise(function(_0x8c9dxe,_0x8c9dxf){return client[_0xb7b9[25]](_0x8c9dxb,_0x8c9dxd)[_0xb7b9[24]](function(_0x8c9dx11){logger[_0xb7b9[17]](_0xb7b9[13],_0x8c9dxc,_0xb7b9[16]);logger[_0xb7b9[20]](_0xb7b9[18],_0x8c9dxc,_0xb7b9[16],JSON[_0xb7b9[19]](_0x8c9dx11));if(_0x8c9dx11[_0xb7b9[14]]){if(_0x8c9dx11[_0xb7b9[14]][_0xb7b9[21]]=== 500){logger[_0xb7b9[14]](_0xb7b9[13],_0x8c9dxc,_0x8c9dx11[_0xb7b9[14]][_0xb7b9[22]]);return _0x8c9dxf(_0x8c9dx11[_0xb7b9[14]][_0xb7b9[22]])};logger[_0xb7b9[14]](_0xb7b9[13],_0x8c9dxc,_0x8c9dx11[_0xb7b9[14]][_0xb7b9[22]]);return _0x8c9dxe(_0x8c9dx11[_0xb7b9[14]][_0xb7b9[22]])}else {logger[_0xb7b9[17]](_0xb7b9[13],_0x8c9dxc,_0xb7b9[16]);_0x8c9dxe(_0x8c9dx11[_0xb7b9[23]][_0xb7b9[22]])}})[_0xb7b9[15]](function(_0x8c9dx10){logger[_0xb7b9[14]](_0xb7b9[13],_0x8c9dxc,_0x8c9dx10);_0x8c9dxf(_0x8c9dx10)})})}
\ No newline at end of file
index 88a3dc5..ad28d7e 100644 (file)
@@ -1 +1 @@
-var _0x6b0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6b0c[0];var multer=require(_0x6b0c[1]);var util=require(_0x6b0c[2]);var path=require(_0x6b0c[3]);var express=require(_0x6b0c[4]);var router=express.Router();var auth=require(_0x6b0c[5]);var config=require(_0x6b0c[6]);var controller=require(_0x6b0c[7]);router[_0x6b0c[11]](_0x6b0c[8],auth[_0x6b0c[9]](),controller[_0x6b0c[10]]);router[_0x6b0c[13]](_0x6b0c[8],auth[_0x6b0c[9]](),controller[_0x6b0c[12]]);router[_0x6b0c[15]](_0x6b0c[8],auth[_0x6b0c[9]](),controller[_0x6b0c[14]]);module[_0x6b0c[16]]= router
\ No newline at end of file
+var _0xd2ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd2ef[0];var multer=require(_0xd2ef[1]);var util=require(_0xd2ef[2]);var path=require(_0xd2ef[3]);var express=require(_0xd2ef[4]);var router=express.Router();var auth=require(_0xd2ef[5]);var config=require(_0xd2ef[6]);var controller=require(_0xd2ef[7]);router[_0xd2ef[11]](_0xd2ef[8],auth[_0xd2ef[9]](),controller[_0xd2ef[10]]);router[_0xd2ef[13]](_0xd2ef[8],auth[_0xd2ef[9]](),controller[_0xd2ef[12]]);router[_0xd2ef[15]](_0xd2ef[8],auth[_0xd2ef[9]](),controller[_0xd2ef[14]]);module[_0xd2ef[16]]= router
\ No newline at end of file
index b8d88e3..7776ddd 100644 (file)
@@ -1 +1 @@
-var _0x58de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x61\x64\x64\x72\x65\x73\x73","\x23\x30\x30\x30\x30\x38\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x2D\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x57\x6F\x75\x6C\x64\x20\x79\x6F\x75\x20\x6C\x69\x6B\x65\x20\x72\x61\x74\x65\x20\x74\x68\x69\x73\x20\x63\x68\x61\x74\x3F","\x53\x65\x6E\x64","\x53\x6B\x69\x70","\x49\x4E\x54\x45\x47\x45\x52","\x49\x6E\x20\x74\x68\x69\x73\x20\x6D\x6F\x6D\x65\x6E\x74\x20\x61\x6C\x6C\x20\x61\x67\x65\x6E\x74\x73\x20\x61\x72\x65\x20\x62\x75\x73\x79\x2E\x20\x54\x72\x79\x20\x61\x67\x61\x69\x6E\x21","\x4E\x61\x6D\x65","\x45\x6D\x61\x69\x6C\x20\x41\x64\x64\x72\x65\x73\x73","\x4D\x65\x73\x73\x61\x67\x65","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x78\x43\x41\x4C\x4C\x59","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x58de[0];var Sequelize=require(_0x58de[1]);module[_0x58de[2]]= {name:{type:Sequelize[_0x58de[3]],allowNull:false},address:{type:Sequelize[_0x58de[3]],allowNull:false,unique:_0x58de[4]},description:{type:Sequelize[_0x58de[3]]},color:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[5]},color_focus:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[5]},color_button:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[5]},remote:{type:Sequelize[_0x58de[3]]},animation:{type:Sequelize[_0x58de[6]],defaultValue:true},header_shape:{type:Sequelize.ENUM(_0x58de[7],_0x58de[8]),defaultValue:_0x58de[7]},header_online:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[9]},online_message:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[10]},username_placeholder:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[11]},email_placeholder:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[12]},start_chat_button:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[13]},header_offline:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[14]},offline_message:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[15]},enquiry_message_placeholder:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[16]},enquiry_button:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[17]},download_transcript:{type:Sequelize[_0x58de[6]],defaultValue:true},enquiry_forwarding:{type:Sequelize[_0x58de[6]],defaultValue:false},enquiry_forwarding_address:{type:Sequelize[_0x58de[3]]},enquiry_enable:{type:Sequelize[_0x58de[6]],defaultValue:true},rating_enable:{type:Sequelize[_0x58de[6]],defaultValue:true},rating_message:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[18]},rating_send:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[19]},rating_skip:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[20]},show_service_name:{type:Sequelize[_0x58de[6]],defaultValue:false},service_name:{type:Sequelize[_0x58de[3]]},fidelity:{type:Sequelize[_0x58de[6]],defaultValue:false},timeout:{type:Sequelize[_0x58de[21]],defaultValue:0},agents_busy:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[22]},name_title:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[23]},email_title:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[24]},message_title:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[25]},logo:{type:Sequelize[_0x58de[3]]},defaultLogo:{type:Sequelize[_0x58de[6]],defaultValue:true},whiteLabel:{type:Sequelize[_0x58de[3]],defaultValue:_0x58de[26]},defaultWhiteLabel:{type:Sequelize[_0x58de[6]],defaultValue:true},acceptUrl:{type:Sequelize[_0x58de[3]]},rejectUrl:{type:Sequelize[_0x58de[3]]},closeUrl:{type:Sequelize[_0x58de[3]]},closeMethod:{type:Sequelize.ENUM(_0x58de[27],_0x58de[28])},acceptMethod:{type:Sequelize.ENUM(_0x58de[27],_0x58de[28])},rejectMethod:{type:Sequelize.ENUM(_0x58de[27],_0x58de[28])},actions:{type:Sequelize[_0x58de[3]],get:function(){return this[_0x58de[30]](_0x58de[29])?JSON[_0x58de[31]](this[_0x58de[30]](_0x58de[29])):[]},set:function(_0xed7dx2){return this[_0x58de[33]](_0x58de[29],JSON[_0x58de[32]](_0xed7dx2))}}}
\ No newline at end of file
+var _0x8fc4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x61\x64\x64\x72\x65\x73\x73","\x23\x30\x30\x30\x30\x38\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x2D\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x57\x6F\x75\x6C\x64\x20\x79\x6F\x75\x20\x6C\x69\x6B\x65\x20\x72\x61\x74\x65\x20\x74\x68\x69\x73\x20\x63\x68\x61\x74\x3F","\x53\x65\x6E\x64","\x53\x6B\x69\x70","\x49\x4E\x54\x45\x47\x45\x52","\x49\x6E\x20\x74\x68\x69\x73\x20\x6D\x6F\x6D\x65\x6E\x74\x20\x61\x6C\x6C\x20\x61\x67\x65\x6E\x74\x73\x20\x61\x72\x65\x20\x62\x75\x73\x79\x2E\x20\x54\x72\x79\x20\x61\x67\x61\x69\x6E\x21","\x4E\x61\x6D\x65","\x45\x6D\x61\x69\x6C\x20\x41\x64\x64\x72\x65\x73\x73","\x4D\x65\x73\x73\x61\x67\x65","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x78\x43\x41\x4C\x4C\x59","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x8fc4[0];var Sequelize=require(_0x8fc4[1]);module[_0x8fc4[2]]= {name:{type:Sequelize[_0x8fc4[3]],allowNull:false},address:{type:Sequelize[_0x8fc4[3]],allowNull:false,unique:_0x8fc4[4]},description:{type:Sequelize[_0x8fc4[3]]},color:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[5]},color_focus:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[5]},color_button:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[5]},remote:{type:Sequelize[_0x8fc4[3]]},animation:{type:Sequelize[_0x8fc4[6]],defaultValue:true},header_shape:{type:Sequelize.ENUM(_0x8fc4[7],_0x8fc4[8]),defaultValue:_0x8fc4[7]},header_online:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[9]},online_message:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[10]},username_placeholder:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[11]},email_placeholder:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[12]},start_chat_button:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[13]},header_offline:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[14]},offline_message:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[15]},enquiry_message_placeholder:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[16]},enquiry_button:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[17]},download_transcript:{type:Sequelize[_0x8fc4[6]],defaultValue:true},enquiry_forwarding:{type:Sequelize[_0x8fc4[6]],defaultValue:false},enquiry_forwarding_address:{type:Sequelize[_0x8fc4[3]]},enquiry_enable:{type:Sequelize[_0x8fc4[6]],defaultValue:true},rating_enable:{type:Sequelize[_0x8fc4[6]],defaultValue:true},rating_message:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[18]},rating_send:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[19]},rating_skip:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[20]},show_service_name:{type:Sequelize[_0x8fc4[6]],defaultValue:false},service_name:{type:Sequelize[_0x8fc4[3]]},fidelity:{type:Sequelize[_0x8fc4[6]],defaultValue:false},timeout:{type:Sequelize[_0x8fc4[21]],defaultValue:0},agents_busy:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[22]},name_title:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[23]},email_title:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[24]},message_title:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[25]},logo:{type:Sequelize[_0x8fc4[3]]},defaultLogo:{type:Sequelize[_0x8fc4[6]],defaultValue:true},whiteLabel:{type:Sequelize[_0x8fc4[3]],defaultValue:_0x8fc4[26]},defaultWhiteLabel:{type:Sequelize[_0x8fc4[6]],defaultValue:true},acceptUrl:{type:Sequelize[_0x8fc4[3]]},rejectUrl:{type:Sequelize[_0x8fc4[3]]},closeUrl:{type:Sequelize[_0x8fc4[3]]},closeMethod:{type:Sequelize.ENUM(_0x8fc4[27],_0x8fc4[28])},acceptMethod:{type:Sequelize.ENUM(_0x8fc4[27],_0x8fc4[28])},rejectMethod:{type:Sequelize.ENUM(_0x8fc4[27],_0x8fc4[28])},actions:{type:Sequelize[_0x8fc4[3]],get:function(){return this[_0x8fc4[30]](_0x8fc4[29])?JSON[_0x8fc4[31]](this[_0x8fc4[30]](_0x8fc4[29])):[]},set:function(_0xe48ex2){return this[_0x8fc4[33]](_0x8fc4[29],JSON[_0x8fc4[32]](_0xe48ex2))}}}
\ No newline at end of file
index a3d8237..5a903ba 100644 (file)
@@ -1 +1 @@
-var _0x42ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x61\x64\x64\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x67\x65\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64"];_0x42ca[0];var jsonpatch=require(_0x42ca[1]);var rp=require(_0x42ca[2]);var moment=require(_0x42ca[3]);var BPromise=require(_0x42ca[4]);var util=require(_0x42ca[5]);var path=require(_0x42ca[6]);var sox=require(_0x42ca[7]);var ejs=require(_0x42ca[8]);var fs=require(_0x42ca[9]);var _=require(_0x42ca[10]);var squel=require(_0x42ca[11]);var crypto=require(_0x42ca[12]);var jsforce=require(_0x42ca[13]);var toCsv=require(_0x42ca[14]);var qs=require(_0x42ca[15]);var logger=require(_0x42ca[17])(_0x42ca[16]);var utils=require(_0x42ca[18]);var config=require(_0x42ca[19]);var db=require(_0x42ca[21])[_0x42ca[20]];function respondWithStatusCode(_0x62aex15,_0x62aex16,_0x62aex17){_0x62aex16= _0x62aex16|| 204;return function(_0x62aex18){if(_0x62aex18){logger[_0x42ca[24]](_0x42ca[22],_0x62aex17,_0x62aex16,_0x42ca[23]);logger[_0x42ca[26]](_0x42ca[25],_0x62aex17,_0x62aex16,_0x42ca[23]);return _0x62aex15[_0x42ca[27]](_0x62aex16)};return _0x62aex15[_0x42ca[29]](304)[_0x42ca[28]]()}}function respondWithResult(_0x62aex15,_0x62aex16,_0x62aex17){_0x62aex16= _0x62aex16|| 200;return function(_0x62aex18){if(_0x62aex18){logger[_0x42ca[24]](_0x42ca[22],_0x62aex17,_0x62aex16,_0x42ca[30]);logger[_0x42ca[26]](_0x42ca[25],_0x62aex17,_0x62aex16,_0x42ca[30],JSON[_0x42ca[31]](_0x62aex18));return _0x62aex15[_0x42ca[29]](_0x62aex16)[_0x42ca[32]](_0x62aex18)};return _0x62aex15[_0x42ca[29]](304)[_0x42ca[28]]()}}function respondWithFilteredResult(_0x62aex15,_0x62aex1b,_0x62aex17){return function(_0x62aex18){if(_0x62aex18){var _0x62aex1c=_0x62aex18[_0x42ca[33]],_0x62aex1d=_0x62aex1b[_0x42ca[34]],_0x62aex1e=_0x62aex1b[_0x42ca[34]]+ _0x62aex1b[_0x42ca[35]],_0x62aex16;if(_0x62aex1e>= _0x62aex1c){_0x62aex1e= _0x62aex1c;_0x62aex16= 200}else {_0x62aex16= 206};_0x62aex15[_0x42ca[29]](_0x62aex16);logger[_0x42ca[24]](_0x42ca[22],_0x62aex17,_0x62aex16,_0x42ca[36]);logger[_0x42ca[26]](_0x42ca[25],_0x62aex17,_0x62aex16,_0x42ca[30],JSON[_0x42ca[31]](_0x62aex18));return _0x62aex15[_0x42ca[40]](_0x42ca[37],_0x62aex1d+ _0x42ca[38]+ _0x62aex1e+ _0x42ca[39]+ _0x62aex1c)[_0x42ca[32]](_0x62aex18)};return null}}function patchUpdates(_0x62aex20){return function(_0x62aex18){try{jsonpatch[_0x42ca[41]](_0x62aex18,_0x62aex20,true)}catch(err){return BPromise[_0x42ca[42]](err)};return _0x62aex18[_0x42ca[43]]()}}function saveUpdates(_0x62aex22,_0x62aex16,_0x62aex17){return function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[46]](_0x62aex22)[_0x42ca[45]](function(_0x62aex23){logger[_0x42ca[24]](_0x42ca[22],_0x62aex17,_0x62aex16,_0x42ca[44]);logger[_0x42ca[26]](_0x42ca[25],_0x62aex17,_0x62aex16,_0x42ca[44],JSON[_0x42ca[31]](_0x62aex18));return _0x62aex23})};return null}}function removeEntity(_0x62aex15,_0x62aex16,_0x62aex17){return function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[48]]()[_0x42ca[45]](function(){logger[_0x42ca[24]](_0x42ca[22],_0x62aex17,_0x62aex16,_0x42ca[47]);logger[_0x42ca[26]](_0x42ca[25],_0x62aex17,_0x62aex16,_0x42ca[47],JSON[_0x42ca[31]](_0x62aex18));_0x62aex15[_0x42ca[29]](204)[_0x42ca[28]]()})}}}function handleEntityNotFound(_0x62aex15,_0x62aex16,_0x62aex17){return function(_0x62aex18){if(!_0x62aex18){logger[_0x42ca[50]](_0x42ca[22],_0x62aex17,404,_0x42ca[49]);_0x62aex15[_0x42ca[29]](404)[_0x42ca[28]]();return null};return _0x62aex18}}function handleError(_0x62aex15,_0x62aex16,_0x62aex17){_0x62aex16= _0x62aex16|| 500;return function(_0x62aex27){logger[_0x42ca[50]](_0x42ca[22],_0x62aex17,_0x62aex16,JSON[_0x42ca[31]](_0x62aex27));delete _0x62aex27[_0x42ca[51]];_0x62aex15[_0x42ca[29]](_0x62aex16)[_0x42ca[52]](_0x62aex27)}}exports[_0x42ca[53]]= function(_0x62aex28,_0x62aex15){var _0x62aex1b={},_0x62aex29={};_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[56]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];if(!_0x62aex28[_0x42ca[58]][_0x42ca[65]](_0x42ca[64])){_0x62aex1b[_0x42ca[35]]= qs[_0x42ca[35]](_0x62aex28[_0x42ca[58]][_0x42ca[35]]);_0x62aex1b[_0x42ca[34]]= qs[_0x42ca[34]](_0x62aex28[_0x42ca[58]][_0x42ca[34]])};_0x62aex1b[_0x42ca[66]]= qs[_0x42ca[67]](_0x62aex28[_0x42ca[58]][_0x42ca[67]]);_0x62aex1b[_0x42ca[68]]= qs[_0x42ca[59]](_[_0x42ca[69]](_0x62aex28[_0x42ca[58]],_0x62aex29[_0x42ca[59]]));if(_0x62aex28[_0x42ca[58]][_0x42ca[70]]){_0x62aex1b[_0x42ca[68]]= _[_0x42ca[73]](_0x62aex1b[_0x42ca[68]],{$or:_[_0x42ca[72]](_0x62aex1b[_0x42ca[61]],function(_0x62aex2a){var _0x62aex2b={};_0x62aex2b[_0x62aex2a]= {$like:_0x42ca[71]+ _0x62aex28[_0x42ca[58]][_0x42ca[70]]+ _0x42ca[71]};return _0x62aex2b})})};_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return db[_0x42ca[56]][_0x42ca[76]](_0x62aex1b)[_0x42ca[45]](respondWithFilteredResult(_0x62aex15,_0x62aex1b,_0x42ca[53]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[53]))};exports[_0x42ca[77]]= function(_0x62aex28,_0x62aex15){var _0x62aex1b={raw:false,where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}},_0x62aex29={};_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[56]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return db[_0x42ca[56]][_0x42ca[80]](_0x62aex1b)[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[77]))[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[77]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[77]))};exports[_0x42ca[81]]= function(_0x62aex28,_0x62aex15){return db[_0x42ca[56]][_0x42ca[81]](_0x62aex28[_0x42ca[82]],{})[_0x42ca[45]](respondWithResult(_0x62aex15,201,_0x42ca[81]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[81]))};exports[_0x42ca[46]]= function(_0x62aex28,_0x62aex15){if(_0x62aex28[_0x42ca[82]][_0x42ca[78]]){delete _0x62aex28[_0x42ca[82]][_0x42ca[78]]};return db[_0x42ca[56]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[46]))[_0x42ca[45]](saveUpdates(_0x62aex28[_0x42ca[82]],null,_0x42ca[46]))[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[46]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[46]))};exports[_0x42ca[48]]= function(_0x62aex28,_0x62aex15){return db[_0x42ca[56]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[48]))[_0x42ca[45]](removeEntity(_0x62aex15,null,_0x42ca[48]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[48]))};exports[_0x42ca[83]]= function(_0x62aex28,_0x62aex15,_0x62aex2c){return db[_0x42ca[86]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[83]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[83]](_0x62aex28[_0x42ca[82]][_0x42ca[84]],_[_0x42ca[85]](_0x62aex28[_0x42ca[82]],[_0x42ca[84],_0x42ca[78]])|| {})};return null})[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[83]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[83]))};exports[_0x42ca[87]]= function(_0x62aex28,_0x62aex18,_0x62aex2c){var _0x62aex1b={};var _0x62aex29={};var _0x62aex2d;var _0x62aex1c;return db[_0x42ca[56]][_0x42ca[88]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex18,null,_0x42ca[87]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){_0x62aex2d= _0x62aex18;_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[86]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];_0x62aex1b[_0x42ca[66]]= qs[_0x42ca[67]](_0x62aex28[_0x42ca[58]][_0x42ca[67]]);_0x62aex1b[_0x42ca[68]]= qs[_0x42ca[59]](_[_0x42ca[69]](_0x62aex28[_0x42ca[58]],_0x62aex29[_0x42ca[59]]));if(_0x62aex28[_0x42ca[58]][_0x42ca[70]]){_0x62aex1b[_0x42ca[68]]= _[_0x42ca[73]](_0x62aex1b[_0x42ca[68]],{$or:_[_0x42ca[72]](_0x62aex1b[_0x42ca[61]],function(_0x62aex2a){var _0x62aex2b={};_0x62aex2b[_0x62aex2a]= {$like:_0x42ca[71]+ _0x62aex28[_0x42ca[58]][_0x42ca[70]]+ _0x42ca[71]};return _0x62aex2b})})};_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return _0x62aex2d[_0x42ca[87]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2f){if(_0x62aex2f){_0x62aex1c= _0x62aex2f[_0x42ca[63]];if(!_0x62aex28[_0x42ca[58]][_0x42ca[65]](_0x42ca[64])){_0x62aex1b[_0x42ca[35]]= qs[_0x42ca[35]](_0x62aex28[_0x42ca[58]][_0x42ca[35]]);_0x62aex1b[_0x42ca[34]]= qs[_0x42ca[34]](_0x62aex28[_0x42ca[58]][_0x42ca[34]])};return _0x62aex2d[_0x42ca[87]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2e){return _0x62aex2e?{count:_0x62aex1c,rows:_0x62aex2e}:null})[_0x42ca[45]](respondWithResult(_0x62aex18,null,_0x42ca[87]))[_0x42ca[75]](handleError(_0x62aex18,null,_0x42ca[87]))};exports[_0x42ca[89]]= function(_0x62aex28,_0x62aex15,_0x62aex2c){return db[_0x42ca[90]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[89]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[89]](_0x62aex28[_0x42ca[82]][_0x42ca[84]],_[_0x42ca[85]](_0x62aex28[_0x42ca[82]],[_0x42ca[84],_0x42ca[78]])|| {})};return null})[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[89]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[89]))};exports[_0x42ca[91]]= function(_0x62aex28,_0x62aex18,_0x62aex2c){var _0x62aex1b={};var _0x62aex29={};var _0x62aex2d;var _0x62aex1c;return db[_0x42ca[56]][_0x42ca[88]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex18,null,_0x42ca[91]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){_0x62aex2d= _0x62aex18;_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[92]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];_0x62aex1b[_0x42ca[66]]= qs[_0x42ca[67]](_0x62aex28[_0x42ca[58]][_0x42ca[67]]);_0x62aex1b[_0x42ca[68]]= qs[_0x42ca[59]](_[_0x42ca[69]](_0x62aex28[_0x42ca[58]],_0x62aex29[_0x42ca[59]]));if(_0x62aex28[_0x42ca[58]][_0x42ca[70]]){_0x62aex1b[_0x42ca[68]]= _[_0x42ca[73]](_0x62aex1b[_0x42ca[68]],{$or:_[_0x42ca[72]](_0x62aex1b[_0x42ca[61]],function(_0x62aex2a){var _0x62aex2b={};_0x62aex2b[_0x62aex2a]= {$like:_0x42ca[71]+ _0x62aex28[_0x42ca[58]][_0x42ca[70]]+ _0x42ca[71]};return _0x62aex2b})})};_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return _0x62aex2d[_0x42ca[91]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2f){if(_0x62aex2f){_0x62aex1c= _0x62aex2f[_0x42ca[63]];if(!_0x62aex28[_0x42ca[58]][_0x42ca[65]](_0x42ca[64])){_0x62aex1b[_0x42ca[35]]= qs[_0x42ca[35]](_0x62aex28[_0x42ca[58]][_0x42ca[35]]);_0x62aex1b[_0x42ca[34]]= qs[_0x42ca[34]](_0x62aex28[_0x42ca[58]][_0x42ca[34]])};return _0x62aex2d[_0x42ca[91]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2e){return _0x62aex2e?{count:_0x62aex1c,rows:_0x62aex2e}:null})[_0x42ca[45]](respondWithResult(_0x62aex18,null,_0x42ca[91]))[_0x42ca[75]](handleError(_0x62aex18,null,_0x42ca[91]))};exports[_0x42ca[93]]= function(_0x62aex28,_0x62aex15,_0x62aex2c){if(_0x62aex28[_0x42ca[82]][_0x42ca[78]]){delete _0x62aex28[_0x42ca[82]][_0x42ca[78]]};return db[_0x42ca[56]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[93]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){_0x62aex28[_0x42ca[82]][_0x42ca[94]]= _0x62aex18[_0x42ca[78]];return db[_0x42ca[95]][_0x42ca[81]](_0x62aex28[_0x42ca[82]])}})[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[93]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[93]))};exports[_0x42ca[96]]= function(_0x62aex28,_0x62aex15,_0x62aex2c){return db[_0x42ca[97]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[96]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[96]](_0x62aex28[_0x42ca[82]][_0x42ca[84]],_[_0x42ca[85]](_0x62aex28[_0x42ca[82]],[_0x42ca[84],_0x42ca[78]])|| {})};return null})[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[96]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[96]))};exports[_0x42ca[98]]= function(_0x62aex28,_0x62aex18,_0x62aex2c){var _0x62aex1b={};var _0x62aex29={};var _0x62aex2d;var _0x62aex1c;return db[_0x42ca[56]][_0x42ca[88]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex18,null,_0x42ca[98]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){_0x62aex2d= _0x62aex18;_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[95]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];_0x62aex1b[_0x42ca[66]]= qs[_0x42ca[67]](_0x62aex28[_0x42ca[58]][_0x42ca[67]]);_0x62aex1b[_0x42ca[68]]= qs[_0x42ca[59]](_[_0x42ca[69]](_0x62aex28[_0x42ca[58]],_0x62aex29[_0x42ca[59]]));if(_0x62aex28[_0x42ca[58]][_0x42ca[70]]){_0x62aex1b[_0x42ca[68]]= _[_0x42ca[73]](_0x62aex1b[_0x42ca[68]],{$or:_[_0x42ca[72]](_0x62aex1b[_0x42ca[61]],function(_0x62aex2a){var _0x62aex2b={};_0x62aex2b[_0x62aex2a]= {$like:_0x42ca[71]+ _0x62aex28[_0x42ca[58]][_0x42ca[70]]+ _0x42ca[71]};return _0x62aex2b})})};_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return _0x62aex2d[_0x42ca[98]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2f){if(_0x62aex2f){_0x62aex1c= _0x62aex2f[_0x42ca[63]];if(!_0x62aex28[_0x42ca[58]][_0x42ca[65]](_0x42ca[64])){_0x62aex1b[_0x42ca[35]]= qs[_0x42ca[35]](_0x62aex28[_0x42ca[58]][_0x42ca[35]]);_0x62aex1b[_0x42ca[34]]= qs[_0x42ca[34]](_0x62aex28[_0x42ca[58]][_0x42ca[34]])};return _0x62aex2d[_0x42ca[98]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2e){return _0x62aex2e?{count:_0x62aex1c,rows:_0x62aex2e}:null})[_0x42ca[45]](respondWithResult(_0x62aex18,null,_0x42ca[98]))[_0x42ca[75]](handleError(_0x62aex18,null,_0x42ca[98]))};exports[_0x42ca[99]]= function(_0x62aex28,_0x62aex15,_0x62aex2c){return db[_0x42ca[100]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[99]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[99]](_0x62aex28[_0x42ca[82]][_0x42ca[84]],_[_0x42ca[85]](_0x62aex28[_0x42ca[82]],[_0x42ca[84],_0x42ca[78]])|| {})};return null})[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[99]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[99]))};exports[_0x42ca[101]]= function(_0x62aex28,_0x62aex18,_0x62aex2c){var _0x62aex1b={};var _0x62aex29={};var _0x62aex2d;var _0x62aex1c;return db[_0x42ca[56]][_0x42ca[88]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex18,null,_0x42ca[101]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){_0x62aex2d= _0x62aex18;_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[102]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];_0x62aex1b[_0x42ca[66]]= qs[_0x42ca[67]](_0x62aex28[_0x42ca[58]][_0x42ca[67]]);_0x62aex1b[_0x42ca[68]]= qs[_0x42ca[59]](_[_0x42ca[69]](_0x62aex28[_0x42ca[58]],_0x62aex29[_0x42ca[59]]));if(_0x62aex28[_0x42ca[58]][_0x42ca[70]]){_0x62aex1b[_0x42ca[68]]= _[_0x42ca[73]](_0x62aex1b[_0x42ca[68]],{$or:_[_0x42ca[72]](_0x62aex1b[_0x42ca[61]],function(_0x62aex2a){var _0x62aex2b={};_0x62aex2b[_0x62aex2a]= {$like:_0x42ca[71]+ _0x62aex28[_0x42ca[58]][_0x42ca[70]]+ _0x42ca[71]};return _0x62aex2b})})};_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return _0x62aex2d[_0x42ca[101]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2f){if(_0x62aex2f){_0x62aex1c= _0x62aex2f[_0x42ca[63]];if(!_0x62aex28[_0x42ca[58]][_0x42ca[65]](_0x42ca[64])){_0x62aex1b[_0x42ca[35]]= qs[_0x42ca[35]](_0x62aex28[_0x42ca[58]][_0x42ca[35]]);_0x62aex1b[_0x42ca[34]]= qs[_0x42ca[34]](_0x62aex28[_0x42ca[58]][_0x42ca[34]])};return _0x62aex2d[_0x42ca[101]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2e){return _0x62aex2e?{count:_0x62aex1c,rows:_0x62aex2e}:null})[_0x42ca[45]](respondWithResult(_0x62aex18,null,_0x42ca[101]))[_0x42ca[75]](handleError(_0x62aex18,null,_0x42ca[101]))};exports[_0x42ca[103]]= function(_0x62aex28,_0x62aex15,_0x62aex2c){return db[_0x42ca[104]][_0x42ca[80]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex15,null,_0x42ca[103]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){return _0x62aex18[_0x42ca[103]](_0x62aex28[_0x42ca[82]][_0x42ca[84]],_[_0x42ca[85]](_0x62aex28[_0x42ca[82]],[_0x42ca[84],_0x42ca[78]])|| {})};return null})[_0x42ca[45]](respondWithResult(_0x62aex15,null,_0x42ca[103]))[_0x42ca[75]](handleError(_0x62aex15,null,_0x42ca[103]))};exports[_0x42ca[105]]= function(_0x62aex28,_0x62aex18,_0x62aex2c){var _0x62aex1b={};var _0x62aex29={};var _0x62aex2d;var _0x62aex1c;return db[_0x42ca[56]][_0x42ca[88]]({where:{id:_0x62aex28[_0x42ca[79]][_0x42ca[78]]}})[_0x42ca[45]](handleEntityNotFound(_0x62aex18,null,_0x42ca[105]))[_0x42ca[45]](function(_0x62aex18){if(_0x62aex18){_0x62aex2d= _0x62aex18;_0x62aex29[_0x42ca[54]]= _[_0x42ca[57]](db[_0x42ca[106]][_0x42ca[55]]);_0x62aex29[_0x42ca[58]]= _[_0x42ca[57]](_0x62aex28[_0x42ca[58]]);_0x62aex29[_0x42ca[59]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],_0x62aex29[_0x42ca[58]]);_0x62aex1b[_0x42ca[61]]= _[_0x42ca[60]](_0x62aex29[_0x42ca[54]],qs[_0x42ca[62]](_0x62aex28[_0x42ca[58]][_0x42ca[62]]));_0x62aex1b[_0x42ca[61]]= (_0x62aex1b[_0x42ca[61]][_0x42ca[63]])?_0x62aex1b[_0x42ca[61]]:_0x62aex29[_0x42ca[54]];_0x62aex1b[_0x42ca[66]]= qs[_0x42ca[67]](_0x62aex28[_0x42ca[58]][_0x42ca[67]]);_0x62aex1b[_0x42ca[68]]= qs[_0x42ca[59]](_[_0x42ca[69]](_0x62aex28[_0x42ca[58]],_0x62aex29[_0x42ca[59]]));if(_0x62aex28[_0x42ca[58]][_0x42ca[70]]){_0x62aex1b[_0x42ca[68]]= _[_0x42ca[73]](_0x62aex1b[_0x42ca[68]],{$or:_[_0x42ca[72]](_0x62aex1b[_0x42ca[61]],function(_0x62aex2a){var _0x62aex2b={};_0x62aex2b[_0x62aex2a]= {$like:_0x42ca[71]+ _0x62aex28[_0x42ca[58]][_0x42ca[70]]+ _0x42ca[71]};return _0x62aex2b})})};_0x62aex1b= _[_0x42ca[73]]({},_0x62aex1b,_0x62aex28[_0x42ca[74]]);return _0x62aex2d[_0x42ca[105]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2f){if(_0x62aex2f){_0x62aex1c= _0x62aex2f[_0x42ca[63]];if(!_0x62aex28[_0x42ca[58]][_0x42ca[65]](_0x42ca[64])){_0x62aex1b[_0x42ca[35]]= qs[_0x42ca[35]](_0x62aex28[_0x42ca[58]][_0x42ca[35]]);_0x62aex1b[_0x42ca[34]]= qs[_0x42ca[34]](_0x62aex28[_0x42ca[58]][_0x42ca[34]])};return _0x62aex2d[_0x42ca[105]](_0x62aex1b)}})[_0x42ca[45]](function(_0x62aex2e){return _0x62aex2e?{count:_0x62aex1c,rows:_0x62aex2e}:null})[_0x42ca[45]](respondWithResult(_0x62aex18,null,_0x42ca[105]))[_0x42ca[75]](handleError(_0x62aex18,null,_0x42ca[105]))}
\ No newline at end of file
+var _0x942e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x61\x64\x64\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x67\x65\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64"];_0x942e[0];var jsonpatch=require(_0x942e[1]);var rp=require(_0x942e[2]);var moment=require(_0x942e[3]);var BPromise=require(_0x942e[4]);var util=require(_0x942e[5]);var path=require(_0x942e[6]);var sox=require(_0x942e[7]);var ejs=require(_0x942e[8]);var fs=require(_0x942e[9]);var _=require(_0x942e[10]);var squel=require(_0x942e[11]);var crypto=require(_0x942e[12]);var jsforce=require(_0x942e[13]);var toCsv=require(_0x942e[14]);var qs=require(_0x942e[15]);var logger=require(_0x942e[17])(_0x942e[16]);var utils=require(_0x942e[18]);var config=require(_0x942e[19]);var db=require(_0x942e[21])[_0x942e[20]];function respondWithStatusCode(_0x2a12x15,_0x2a12x16,_0x2a12x17){_0x2a12x16= _0x2a12x16|| 204;return function(_0x2a12x18){if(_0x2a12x18){logger[_0x942e[24]](_0x942e[22],_0x2a12x17,_0x2a12x16,_0x942e[23]);logger[_0x942e[26]](_0x942e[25],_0x2a12x17,_0x2a12x16,_0x942e[23]);return _0x2a12x15[_0x942e[27]](_0x2a12x16)};return _0x2a12x15[_0x942e[29]](304)[_0x942e[28]]()}}function respondWithResult(_0x2a12x15,_0x2a12x16,_0x2a12x17){_0x2a12x16= _0x2a12x16|| 200;return function(_0x2a12x18){if(_0x2a12x18){logger[_0x942e[24]](_0x942e[22],_0x2a12x17,_0x2a12x16,_0x942e[30]);logger[_0x942e[26]](_0x942e[25],_0x2a12x17,_0x2a12x16,_0x942e[30],JSON[_0x942e[31]](_0x2a12x18));return _0x2a12x15[_0x942e[29]](_0x2a12x16)[_0x942e[32]](_0x2a12x18)};return _0x2a12x15[_0x942e[29]](304)[_0x942e[28]]()}}function respondWithFilteredResult(_0x2a12x15,_0x2a12x1b,_0x2a12x17){return function(_0x2a12x18){if(_0x2a12x18){var _0x2a12x1c=_0x2a12x18[_0x942e[33]],_0x2a12x1d=_0x2a12x1b[_0x942e[34]],_0x2a12x1e=_0x2a12x1b[_0x942e[34]]+ _0x2a12x1b[_0x942e[35]],_0x2a12x16;if(_0x2a12x1e>= _0x2a12x1c){_0x2a12x1e= _0x2a12x1c;_0x2a12x16= 200}else {_0x2a12x16= 206};_0x2a12x15[_0x942e[29]](_0x2a12x16);logger[_0x942e[24]](_0x942e[22],_0x2a12x17,_0x2a12x16,_0x942e[36]);logger[_0x942e[26]](_0x942e[25],_0x2a12x17,_0x2a12x16,_0x942e[30],JSON[_0x942e[31]](_0x2a12x18));return _0x2a12x15[_0x942e[40]](_0x942e[37],_0x2a12x1d+ _0x942e[38]+ _0x2a12x1e+ _0x942e[39]+ _0x2a12x1c)[_0x942e[32]](_0x2a12x18)};return null}}function patchUpdates(_0x2a12x20){return function(_0x2a12x18){try{jsonpatch[_0x942e[41]](_0x2a12x18,_0x2a12x20,true)}catch(err){return BPromise[_0x942e[42]](err)};return _0x2a12x18[_0x942e[43]]()}}function saveUpdates(_0x2a12x22,_0x2a12x16,_0x2a12x17){return function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[46]](_0x2a12x22)[_0x942e[45]](function(_0x2a12x23){logger[_0x942e[24]](_0x942e[22],_0x2a12x17,_0x2a12x16,_0x942e[44]);logger[_0x942e[26]](_0x942e[25],_0x2a12x17,_0x2a12x16,_0x942e[44],JSON[_0x942e[31]](_0x2a12x18));return _0x2a12x23})};return null}}function removeEntity(_0x2a12x15,_0x2a12x16,_0x2a12x17){return function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[48]]()[_0x942e[45]](function(){logger[_0x942e[24]](_0x942e[22],_0x2a12x17,_0x2a12x16,_0x942e[47]);logger[_0x942e[26]](_0x942e[25],_0x2a12x17,_0x2a12x16,_0x942e[47],JSON[_0x942e[31]](_0x2a12x18));_0x2a12x15[_0x942e[29]](204)[_0x942e[28]]()})}}}function handleEntityNotFound(_0x2a12x15,_0x2a12x16,_0x2a12x17){return function(_0x2a12x18){if(!_0x2a12x18){logger[_0x942e[50]](_0x942e[22],_0x2a12x17,404,_0x942e[49]);_0x2a12x15[_0x942e[29]](404)[_0x942e[28]]();return null};return _0x2a12x18}}function handleError(_0x2a12x15,_0x2a12x16,_0x2a12x17){_0x2a12x16= _0x2a12x16|| 500;return function(_0x2a12x27){logger[_0x942e[50]](_0x942e[22],_0x2a12x17,_0x2a12x16,JSON[_0x942e[31]](_0x2a12x27));delete _0x2a12x27[_0x942e[51]];_0x2a12x15[_0x942e[29]](_0x2a12x16)[_0x942e[52]](_0x2a12x27)}}exports[_0x942e[53]]= function(_0x2a12x28,_0x2a12x15){var _0x2a12x1b={},_0x2a12x29={};_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[56]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];if(!_0x2a12x28[_0x942e[58]][_0x942e[65]](_0x942e[64])){_0x2a12x1b[_0x942e[35]]= qs[_0x942e[35]](_0x2a12x28[_0x942e[58]][_0x942e[35]]);_0x2a12x1b[_0x942e[34]]= qs[_0x942e[34]](_0x2a12x28[_0x942e[58]][_0x942e[34]])};_0x2a12x1b[_0x942e[66]]= qs[_0x942e[67]](_0x2a12x28[_0x942e[58]][_0x942e[67]]);_0x2a12x1b[_0x942e[68]]= qs[_0x942e[59]](_[_0x942e[69]](_0x2a12x28[_0x942e[58]],_0x2a12x29[_0x942e[59]]));if(_0x2a12x28[_0x942e[58]][_0x942e[70]]){_0x2a12x1b[_0x942e[68]]= _[_0x942e[73]](_0x2a12x1b[_0x942e[68]],{$or:_[_0x942e[72]](_0x2a12x1b[_0x942e[61]],function(_0x2a12x2a){var _0x2a12x2b={};_0x2a12x2b[_0x2a12x2a]= {$like:_0x942e[71]+ _0x2a12x28[_0x942e[58]][_0x942e[70]]+ _0x942e[71]};return _0x2a12x2b})})};_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return db[_0x942e[56]][_0x942e[76]](_0x2a12x1b)[_0x942e[45]](respondWithFilteredResult(_0x2a12x15,_0x2a12x1b,_0x942e[53]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[53]))};exports[_0x942e[77]]= function(_0x2a12x28,_0x2a12x15){var _0x2a12x1b={raw:false,where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}},_0x2a12x29={};_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[56]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return db[_0x942e[56]][_0x942e[80]](_0x2a12x1b)[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[77]))[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[77]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[77]))};exports[_0x942e[81]]= function(_0x2a12x28,_0x2a12x15){return db[_0x942e[56]][_0x942e[81]](_0x2a12x28[_0x942e[82]],{})[_0x942e[45]](respondWithResult(_0x2a12x15,201,_0x942e[81]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[81]))};exports[_0x942e[46]]= function(_0x2a12x28,_0x2a12x15){if(_0x2a12x28[_0x942e[82]][_0x942e[78]]){delete _0x2a12x28[_0x942e[82]][_0x942e[78]]};return db[_0x942e[56]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[46]))[_0x942e[45]](saveUpdates(_0x2a12x28[_0x942e[82]],null,_0x942e[46]))[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[46]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[46]))};exports[_0x942e[48]]= function(_0x2a12x28,_0x2a12x15){return db[_0x942e[56]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[48]))[_0x942e[45]](removeEntity(_0x2a12x15,null,_0x942e[48]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[48]))};exports[_0x942e[83]]= function(_0x2a12x28,_0x2a12x15,_0x2a12x2c){return db[_0x942e[86]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[83]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[83]](_0x2a12x28[_0x942e[82]][_0x942e[84]],_[_0x942e[85]](_0x2a12x28[_0x942e[82]],[_0x942e[84],_0x942e[78]])|| {})};return null})[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[83]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[83]))};exports[_0x942e[87]]= function(_0x2a12x28,_0x2a12x18,_0x2a12x2c){var _0x2a12x1b={};var _0x2a12x29={};var _0x2a12x2d;var _0x2a12x1c;return db[_0x942e[56]][_0x942e[88]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x18,null,_0x942e[87]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){_0x2a12x2d= _0x2a12x18;_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[86]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];_0x2a12x1b[_0x942e[66]]= qs[_0x942e[67]](_0x2a12x28[_0x942e[58]][_0x942e[67]]);_0x2a12x1b[_0x942e[68]]= qs[_0x942e[59]](_[_0x942e[69]](_0x2a12x28[_0x942e[58]],_0x2a12x29[_0x942e[59]]));if(_0x2a12x28[_0x942e[58]][_0x942e[70]]){_0x2a12x1b[_0x942e[68]]= _[_0x942e[73]](_0x2a12x1b[_0x942e[68]],{$or:_[_0x942e[72]](_0x2a12x1b[_0x942e[61]],function(_0x2a12x2a){var _0x2a12x2b={};_0x2a12x2b[_0x2a12x2a]= {$like:_0x942e[71]+ _0x2a12x28[_0x942e[58]][_0x942e[70]]+ _0x942e[71]};return _0x2a12x2b})})};_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return _0x2a12x2d[_0x942e[87]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2f){if(_0x2a12x2f){_0x2a12x1c= _0x2a12x2f[_0x942e[63]];if(!_0x2a12x28[_0x942e[58]][_0x942e[65]](_0x942e[64])){_0x2a12x1b[_0x942e[35]]= qs[_0x942e[35]](_0x2a12x28[_0x942e[58]][_0x942e[35]]);_0x2a12x1b[_0x942e[34]]= qs[_0x942e[34]](_0x2a12x28[_0x942e[58]][_0x942e[34]])};return _0x2a12x2d[_0x942e[87]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2e){return _0x2a12x2e?{count:_0x2a12x1c,rows:_0x2a12x2e}:null})[_0x942e[45]](respondWithResult(_0x2a12x18,null,_0x942e[87]))[_0x942e[75]](handleError(_0x2a12x18,null,_0x942e[87]))};exports[_0x942e[89]]= function(_0x2a12x28,_0x2a12x15,_0x2a12x2c){return db[_0x942e[90]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[89]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[89]](_0x2a12x28[_0x942e[82]][_0x942e[84]],_[_0x942e[85]](_0x2a12x28[_0x942e[82]],[_0x942e[84],_0x942e[78]])|| {})};return null})[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[89]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[89]))};exports[_0x942e[91]]= function(_0x2a12x28,_0x2a12x18,_0x2a12x2c){var _0x2a12x1b={};var _0x2a12x29={};var _0x2a12x2d;var _0x2a12x1c;return db[_0x942e[56]][_0x942e[88]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x18,null,_0x942e[91]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){_0x2a12x2d= _0x2a12x18;_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[92]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];_0x2a12x1b[_0x942e[66]]= qs[_0x942e[67]](_0x2a12x28[_0x942e[58]][_0x942e[67]]);_0x2a12x1b[_0x942e[68]]= qs[_0x942e[59]](_[_0x942e[69]](_0x2a12x28[_0x942e[58]],_0x2a12x29[_0x942e[59]]));if(_0x2a12x28[_0x942e[58]][_0x942e[70]]){_0x2a12x1b[_0x942e[68]]= _[_0x942e[73]](_0x2a12x1b[_0x942e[68]],{$or:_[_0x942e[72]](_0x2a12x1b[_0x942e[61]],function(_0x2a12x2a){var _0x2a12x2b={};_0x2a12x2b[_0x2a12x2a]= {$like:_0x942e[71]+ _0x2a12x28[_0x942e[58]][_0x942e[70]]+ _0x942e[71]};return _0x2a12x2b})})};_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return _0x2a12x2d[_0x942e[91]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2f){if(_0x2a12x2f){_0x2a12x1c= _0x2a12x2f[_0x942e[63]];if(!_0x2a12x28[_0x942e[58]][_0x942e[65]](_0x942e[64])){_0x2a12x1b[_0x942e[35]]= qs[_0x942e[35]](_0x2a12x28[_0x942e[58]][_0x942e[35]]);_0x2a12x1b[_0x942e[34]]= qs[_0x942e[34]](_0x2a12x28[_0x942e[58]][_0x942e[34]])};return _0x2a12x2d[_0x942e[91]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2e){return _0x2a12x2e?{count:_0x2a12x1c,rows:_0x2a12x2e}:null})[_0x942e[45]](respondWithResult(_0x2a12x18,null,_0x942e[91]))[_0x942e[75]](handleError(_0x2a12x18,null,_0x942e[91]))};exports[_0x942e[93]]= function(_0x2a12x28,_0x2a12x15,_0x2a12x2c){if(_0x2a12x28[_0x942e[82]][_0x942e[78]]){delete _0x2a12x28[_0x942e[82]][_0x942e[78]]};return db[_0x942e[56]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[93]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){_0x2a12x28[_0x942e[82]][_0x942e[94]]= _0x2a12x18[_0x942e[78]];return db[_0x942e[95]][_0x942e[81]](_0x2a12x28[_0x942e[82]])}})[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[93]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[93]))};exports[_0x942e[96]]= function(_0x2a12x28,_0x2a12x15,_0x2a12x2c){return db[_0x942e[97]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[96]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[96]](_0x2a12x28[_0x942e[82]][_0x942e[84]],_[_0x942e[85]](_0x2a12x28[_0x942e[82]],[_0x942e[84],_0x942e[78]])|| {})};return null})[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[96]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[96]))};exports[_0x942e[98]]= function(_0x2a12x28,_0x2a12x18,_0x2a12x2c){var _0x2a12x1b={};var _0x2a12x29={};var _0x2a12x2d;var _0x2a12x1c;return db[_0x942e[56]][_0x942e[88]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x18,null,_0x942e[98]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){_0x2a12x2d= _0x2a12x18;_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[95]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];_0x2a12x1b[_0x942e[66]]= qs[_0x942e[67]](_0x2a12x28[_0x942e[58]][_0x942e[67]]);_0x2a12x1b[_0x942e[68]]= qs[_0x942e[59]](_[_0x942e[69]](_0x2a12x28[_0x942e[58]],_0x2a12x29[_0x942e[59]]));if(_0x2a12x28[_0x942e[58]][_0x942e[70]]){_0x2a12x1b[_0x942e[68]]= _[_0x942e[73]](_0x2a12x1b[_0x942e[68]],{$or:_[_0x942e[72]](_0x2a12x1b[_0x942e[61]],function(_0x2a12x2a){var _0x2a12x2b={};_0x2a12x2b[_0x2a12x2a]= {$like:_0x942e[71]+ _0x2a12x28[_0x942e[58]][_0x942e[70]]+ _0x942e[71]};return _0x2a12x2b})})};_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return _0x2a12x2d[_0x942e[98]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2f){if(_0x2a12x2f){_0x2a12x1c= _0x2a12x2f[_0x942e[63]];if(!_0x2a12x28[_0x942e[58]][_0x942e[65]](_0x942e[64])){_0x2a12x1b[_0x942e[35]]= qs[_0x942e[35]](_0x2a12x28[_0x942e[58]][_0x942e[35]]);_0x2a12x1b[_0x942e[34]]= qs[_0x942e[34]](_0x2a12x28[_0x942e[58]][_0x942e[34]])};return _0x2a12x2d[_0x942e[98]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2e){return _0x2a12x2e?{count:_0x2a12x1c,rows:_0x2a12x2e}:null})[_0x942e[45]](respondWithResult(_0x2a12x18,null,_0x942e[98]))[_0x942e[75]](handleError(_0x2a12x18,null,_0x942e[98]))};exports[_0x942e[99]]= function(_0x2a12x28,_0x2a12x15,_0x2a12x2c){return db[_0x942e[100]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[99]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[99]](_0x2a12x28[_0x942e[82]][_0x942e[84]],_[_0x942e[85]](_0x2a12x28[_0x942e[82]],[_0x942e[84],_0x942e[78]])|| {})};return null})[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[99]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[99]))};exports[_0x942e[101]]= function(_0x2a12x28,_0x2a12x18,_0x2a12x2c){var _0x2a12x1b={};var _0x2a12x29={};var _0x2a12x2d;var _0x2a12x1c;return db[_0x942e[56]][_0x942e[88]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x18,null,_0x942e[101]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){_0x2a12x2d= _0x2a12x18;_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[102]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];_0x2a12x1b[_0x942e[66]]= qs[_0x942e[67]](_0x2a12x28[_0x942e[58]][_0x942e[67]]);_0x2a12x1b[_0x942e[68]]= qs[_0x942e[59]](_[_0x942e[69]](_0x2a12x28[_0x942e[58]],_0x2a12x29[_0x942e[59]]));if(_0x2a12x28[_0x942e[58]][_0x942e[70]]){_0x2a12x1b[_0x942e[68]]= _[_0x942e[73]](_0x2a12x1b[_0x942e[68]],{$or:_[_0x942e[72]](_0x2a12x1b[_0x942e[61]],function(_0x2a12x2a){var _0x2a12x2b={};_0x2a12x2b[_0x2a12x2a]= {$like:_0x942e[71]+ _0x2a12x28[_0x942e[58]][_0x942e[70]]+ _0x942e[71]};return _0x2a12x2b})})};_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return _0x2a12x2d[_0x942e[101]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2f){if(_0x2a12x2f){_0x2a12x1c= _0x2a12x2f[_0x942e[63]];if(!_0x2a12x28[_0x942e[58]][_0x942e[65]](_0x942e[64])){_0x2a12x1b[_0x942e[35]]= qs[_0x942e[35]](_0x2a12x28[_0x942e[58]][_0x942e[35]]);_0x2a12x1b[_0x942e[34]]= qs[_0x942e[34]](_0x2a12x28[_0x942e[58]][_0x942e[34]])};return _0x2a12x2d[_0x942e[101]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2e){return _0x2a12x2e?{count:_0x2a12x1c,rows:_0x2a12x2e}:null})[_0x942e[45]](respondWithResult(_0x2a12x18,null,_0x942e[101]))[_0x942e[75]](handleError(_0x2a12x18,null,_0x942e[101]))};exports[_0x942e[103]]= function(_0x2a12x28,_0x2a12x15,_0x2a12x2c){return db[_0x942e[104]][_0x942e[80]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x15,null,_0x942e[103]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){return _0x2a12x18[_0x942e[103]](_0x2a12x28[_0x942e[82]][_0x942e[84]],_[_0x942e[85]](_0x2a12x28[_0x942e[82]],[_0x942e[84],_0x942e[78]])|| {})};return null})[_0x942e[45]](respondWithResult(_0x2a12x15,null,_0x942e[103]))[_0x942e[75]](handleError(_0x2a12x15,null,_0x942e[103]))};exports[_0x942e[105]]= function(_0x2a12x28,_0x2a12x18,_0x2a12x2c){var _0x2a12x1b={};var _0x2a12x29={};var _0x2a12x2d;var _0x2a12x1c;return db[_0x942e[56]][_0x942e[88]]({where:{id:_0x2a12x28[_0x942e[79]][_0x942e[78]]}})[_0x942e[45]](handleEntityNotFound(_0x2a12x18,null,_0x942e[105]))[_0x942e[45]](function(_0x2a12x18){if(_0x2a12x18){_0x2a12x2d= _0x2a12x18;_0x2a12x29[_0x942e[54]]= _[_0x942e[57]](db[_0x942e[106]][_0x942e[55]]);_0x2a12x29[_0x942e[58]]= _[_0x942e[57]](_0x2a12x28[_0x942e[58]]);_0x2a12x29[_0x942e[59]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],_0x2a12x29[_0x942e[58]]);_0x2a12x1b[_0x942e[61]]= _[_0x942e[60]](_0x2a12x29[_0x942e[54]],qs[_0x942e[62]](_0x2a12x28[_0x942e[58]][_0x942e[62]]));_0x2a12x1b[_0x942e[61]]= (_0x2a12x1b[_0x942e[61]][_0x942e[63]])?_0x2a12x1b[_0x942e[61]]:_0x2a12x29[_0x942e[54]];_0x2a12x1b[_0x942e[66]]= qs[_0x942e[67]](_0x2a12x28[_0x942e[58]][_0x942e[67]]);_0x2a12x1b[_0x942e[68]]= qs[_0x942e[59]](_[_0x942e[69]](_0x2a12x28[_0x942e[58]],_0x2a12x29[_0x942e[59]]));if(_0x2a12x28[_0x942e[58]][_0x942e[70]]){_0x2a12x1b[_0x942e[68]]= _[_0x942e[73]](_0x2a12x1b[_0x942e[68]],{$or:_[_0x942e[72]](_0x2a12x1b[_0x942e[61]],function(_0x2a12x2a){var _0x2a12x2b={};_0x2a12x2b[_0x2a12x2a]= {$like:_0x942e[71]+ _0x2a12x28[_0x942e[58]][_0x942e[70]]+ _0x942e[71]};return _0x2a12x2b})})};_0x2a12x1b= _[_0x942e[73]]({},_0x2a12x1b,_0x2a12x28[_0x942e[74]]);return _0x2a12x2d[_0x942e[105]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2f){if(_0x2a12x2f){_0x2a12x1c= _0x2a12x2f[_0x942e[63]];if(!_0x2a12x28[_0x942e[58]][_0x942e[65]](_0x942e[64])){_0x2a12x1b[_0x942e[35]]= qs[_0x942e[35]](_0x2a12x28[_0x942e[58]][_0x942e[35]]);_0x2a12x1b[_0x942e[34]]= qs[_0x942e[34]](_0x2a12x28[_0x942e[58]][_0x942e[34]])};return _0x2a12x2d[_0x942e[105]](_0x2a12x1b)}})[_0x942e[45]](function(_0x2a12x2e){return _0x2a12x2e?{count:_0x2a12x1c,rows:_0x2a12x2e}:null})[_0x942e[45]](respondWithResult(_0x2a12x18,null,_0x942e[105]))[_0x942e[75]](handleError(_0x2a12x18,null,_0x942e[105]))}
\ No newline at end of file
index f87ea5a..c664aab 100644 (file)
@@ -1 +1 @@
-var _0xbe4c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xbe4c[0];var _=require(_0xbe4c[1]);var util=require(_0xbe4c[2]);var logger=require(_0xbe4c[4])(_0xbe4c[3]);var attributes=require(_0xbe4c[5]);module[_0xbe4c[6]]= function(_0xf578x5,_0xf578x6){return _0xf578x5[_0xbe4c[9]](_0xbe4c[7],attributes,{tableName:_0xbe4c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd7f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xd7f9[0];var _=require(_0xd7f9[1]);var util=require(_0xd7f9[2]);var logger=require(_0xd7f9[4])(_0xd7f9[3]);var attributes=require(_0xd7f9[5]);module[_0xd7f9[6]]= function(_0xb9e4x5,_0xb9e4x6){return _0xb9e4x5[_0xd7f9[9]](_0xd7f9[7],attributes,{tableName:_0xd7f9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 77b5cae..143d682 100644 (file)
@@ -1 +1 @@
-var _0xe939=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe939[0];var _=require(_0xe939[1]);var util=require(_0xe939[2]);var moment=require(_0xe939[3]);var BPromise=require(_0xe939[4]);var db=require(_0xe939[6])[_0xe939[5]];var utils=require(_0xe939[7]);var logger=require(_0xe939[9])(_0xe939[8]);var jayson=require(_0xe939[10]);var client=jayson[_0xe939[12]][_0xe939[11]]({port:9002});function respondWithRpcPromise(_0x8131xb,_0x8131xc,_0x8131xd){return  new BPromise(function(_0x8131xe,_0x8131xf){return client[_0xe939[25]](_0x8131xb,_0x8131xd)[_0xe939[24]](function(_0x8131x11){logger[_0xe939[17]](_0xe939[13],_0x8131xc,_0xe939[16]);logger[_0xe939[20]](_0xe939[18],_0x8131xc,_0xe939[16],JSON[_0xe939[19]](_0x8131x11));if(_0x8131x11[_0xe939[14]]){if(_0x8131x11[_0xe939[14]][_0xe939[21]]=== 500){logger[_0xe939[14]](_0xe939[13],_0x8131xc,_0x8131x11[_0xe939[14]][_0xe939[22]]);return _0x8131xf(_0x8131x11[_0xe939[14]][_0xe939[22]])};logger[_0xe939[14]](_0xe939[13],_0x8131xc,_0x8131x11[_0xe939[14]][_0xe939[22]]);return _0x8131xe(_0x8131x11[_0xe939[14]][_0xe939[22]])}else {logger[_0xe939[17]](_0xe939[13],_0x8131xc,_0xe939[16]);_0x8131xe(_0x8131x11[_0xe939[23]][_0xe939[22]])}})[_0xe939[15]](function(_0x8131x10){logger[_0xe939[14]](_0xe939[13],_0x8131xc,_0x8131x10);_0x8131xf(_0x8131x10)})})}
\ No newline at end of file
+var _0xa11d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa11d[0];var _=require(_0xa11d[1]);var util=require(_0xa11d[2]);var moment=require(_0xa11d[3]);var BPromise=require(_0xa11d[4]);var db=require(_0xa11d[6])[_0xa11d[5]];var utils=require(_0xa11d[7]);var logger=require(_0xa11d[9])(_0xa11d[8]);var jayson=require(_0xa11d[10]);var client=jayson[_0xa11d[12]][_0xa11d[11]]({port:9002});function respondWithRpcPromise(_0x4e58xb,_0x4e58xc,_0x4e58xd){return  new BPromise(function(_0x4e58xe,_0x4e58xf){return client[_0xa11d[25]](_0x4e58xb,_0x4e58xd)[_0xa11d[24]](function(_0x4e58x11){logger[_0xa11d[17]](_0xa11d[13],_0x4e58xc,_0xa11d[16]);logger[_0xa11d[20]](_0xa11d[18],_0x4e58xc,_0xa11d[16],JSON[_0xa11d[19]](_0x4e58x11));if(_0x4e58x11[_0xa11d[14]]){if(_0x4e58x11[_0xa11d[14]][_0xa11d[21]]=== 500){logger[_0xa11d[14]](_0xa11d[13],_0x4e58xc,_0x4e58x11[_0xa11d[14]][_0xa11d[22]]);return _0x4e58xf(_0x4e58x11[_0xa11d[14]][_0xa11d[22]])};logger[_0xa11d[14]](_0xa11d[13],_0x4e58xc,_0x4e58x11[_0xa11d[14]][_0xa11d[22]]);return _0x4e58xe(_0x4e58x11[_0xa11d[14]][_0xa11d[22]])}else {logger[_0xa11d[17]](_0xa11d[13],_0x4e58xc,_0xa11d[16]);_0x4e58xe(_0x4e58x11[_0xa11d[23]][_0xa11d[22]])}})[_0xa11d[15]](function(_0x4e58x10){logger[_0xa11d[14]](_0xa11d[13],_0x4e58xc,_0x4e58x10);_0x4e58xf(_0x4e58x10)})})}
\ No newline at end of file
index 95d2cda..e2897d4 100644 (file)
@@ -1 +1 @@
-var _0x4492=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4492[0];var multer=require(_0x4492[1]);var util=require(_0x4492[2]);var path=require(_0x4492[3]);var express=require(_0x4492[4]);var router=express.Router();var auth=require(_0x4492[5]);var config=require(_0x4492[6]);var controller=require(_0x4492[7]);router[_0x4492[11]](_0x4492[8],auth[_0x4492[9]](),controller[_0x4492[10]]);router[_0x4492[11]](_0x4492[12],auth[_0x4492[9]](),controller[_0x4492[13]]);router[_0x4492[11]](_0x4492[14],auth[_0x4492[9]](),controller[_0x4492[15]]);router[_0x4492[11]](_0x4492[16],auth[_0x4492[9]](),controller[_0x4492[17]]);router[_0x4492[11]](_0x4492[18],auth[_0x4492[9]](),controller[_0x4492[19]]);router[_0x4492[11]](_0x4492[20],auth[_0x4492[9]](),controller[_0x4492[21]]);router[_0x4492[11]](_0x4492[22],auth[_0x4492[9]](),controller[_0x4492[23]]);router[_0x4492[25]](_0x4492[8],auth[_0x4492[9]](),controller[_0x4492[24]]);router[_0x4492[25]](_0x4492[14],auth[_0x4492[9]](),controller[_0x4492[26]]);router[_0x4492[25]](_0x4492[16],auth[_0x4492[9]](),controller[_0x4492[27]]);router[_0x4492[25]](_0x4492[18],auth[_0x4492[9]](),controller[_0x4492[28]]);router[_0x4492[25]](_0x4492[18],auth[_0x4492[9]](),controller[_0x4492[29]]);router[_0x4492[25]](_0x4492[20],auth[_0x4492[9]](),controller[_0x4492[30]]);router[_0x4492[25]](_0x4492[22],auth[_0x4492[9]](),controller[_0x4492[31]]);router[_0x4492[33]](_0x4492[12],auth[_0x4492[9]](),controller[_0x4492[32]]);router[_0x4492[35]](_0x4492[12],auth[_0x4492[9]](),controller[_0x4492[34]]);module[_0x4492[36]]= router
\ No newline at end of file
+var _0x5685=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5685[0];var multer=require(_0x5685[1]);var util=require(_0x5685[2]);var path=require(_0x5685[3]);var express=require(_0x5685[4]);var router=express.Router();var auth=require(_0x5685[5]);var config=require(_0x5685[6]);var controller=require(_0x5685[7]);router[_0x5685[11]](_0x5685[8],auth[_0x5685[9]](),controller[_0x5685[10]]);router[_0x5685[11]](_0x5685[12],auth[_0x5685[9]](),controller[_0x5685[13]]);router[_0x5685[11]](_0x5685[14],auth[_0x5685[9]](),controller[_0x5685[15]]);router[_0x5685[11]](_0x5685[16],auth[_0x5685[9]](),controller[_0x5685[17]]);router[_0x5685[11]](_0x5685[18],auth[_0x5685[9]](),controller[_0x5685[19]]);router[_0x5685[11]](_0x5685[20],auth[_0x5685[9]](),controller[_0x5685[21]]);router[_0x5685[11]](_0x5685[22],auth[_0x5685[9]](),controller[_0x5685[23]]);router[_0x5685[25]](_0x5685[8],auth[_0x5685[9]](),controller[_0x5685[24]]);router[_0x5685[25]](_0x5685[14],auth[_0x5685[9]](),controller[_0x5685[26]]);router[_0x5685[25]](_0x5685[16],auth[_0x5685[9]](),controller[_0x5685[27]]);router[_0x5685[25]](_0x5685[18],auth[_0x5685[9]](),controller[_0x5685[28]]);router[_0x5685[25]](_0x5685[18],auth[_0x5685[9]](),controller[_0x5685[29]]);router[_0x5685[25]](_0x5685[20],auth[_0x5685[9]](),controller[_0x5685[30]]);router[_0x5685[25]](_0x5685[22],auth[_0x5685[9]](),controller[_0x5685[31]]);router[_0x5685[33]](_0x5685[12],auth[_0x5685[9]](),controller[_0x5685[32]]);router[_0x5685[35]](_0x5685[12],auth[_0x5685[9]](),controller[_0x5685[34]]);module[_0x5685[36]]= router
\ No newline at end of file
index 9a542db..e88e8dd 100644 (file)
@@ -1 +1 @@
-var _0xbcb5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x2C","\x73\x70\x6C\x69\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xbcb5[0];var Sequelize=require(_0xbcb5[1]);module[_0xbcb5[2]]= {component:{type:Sequelize[_0xbcb5[3]]},description:{type:Sequelize[_0xbcb5[3]]},index:{type:Sequelize[_0xbcb5[4]]},label:{type:Sequelize[_0xbcb5[3]]},options:{type:Sequelize[_0xbcb5[3]],get:function(){return this[_0xbcb5[8]](_0xbcb5[7])[_0xbcb5[6]](_0xbcb5[5])},set:function(_0x3c63x2){this[_0xbcb5[10]](_0xbcb5[7],_0x3c63x2[_0xbcb5[9]](_0xbcb5[5]))}},placeholder:{type:Sequelize[_0xbcb5[3]]},required:{type:Sequelize[_0xbcb5[11]]},validation:{type:Sequelize[_0xbcb5[3]]},editable:{type:Sequelize[_0xbcb5[11]],defaultValue:true}}
\ No newline at end of file
+var _0x55e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x2C","\x73\x70\x6C\x69\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x55e5[0];var Sequelize=require(_0x55e5[1]);module[_0x55e5[2]]= {component:{type:Sequelize[_0x55e5[3]]},description:{type:Sequelize[_0x55e5[3]]},index:{type:Sequelize[_0x55e5[4]]},label:{type:Sequelize[_0x55e5[3]]},options:{type:Sequelize[_0x55e5[3]],get:function(){return this[_0x55e5[8]](_0x55e5[7])[_0x55e5[6]](_0x55e5[5])},set:function(_0x6989x2){this[_0x55e5[10]](_0x55e5[7],_0x6989x2[_0x55e5[9]](_0x55e5[5]))}},placeholder:{type:Sequelize[_0x55e5[3]]},required:{type:Sequelize[_0x55e5[11]]},validation:{type:Sequelize[_0x55e5[3]]},editable:{type:Sequelize[_0x55e5[11]],defaultValue:true}}
\ No newline at end of file
index 28cb934..a95a8cb 100644 (file)
@@ -1 +1 @@
-var _0x8718=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x8718[0];var jsonpatch=require(_0x8718[1]);var rp=require(_0x8718[2]);var moment=require(_0x8718[3]);var BPromise=require(_0x8718[4]);var util=require(_0x8718[5]);var path=require(_0x8718[6]);var sox=require(_0x8718[7]);var ejs=require(_0x8718[8]);var fs=require(_0x8718[9]);var _=require(_0x8718[10]);var squel=require(_0x8718[11]);var crypto=require(_0x8718[12]);var jsforce=require(_0x8718[13]);var toCsv=require(_0x8718[14]);var qs=require(_0x8718[15]);var logger=require(_0x8718[17])(_0x8718[16]);var utils=require(_0x8718[18]);var config=require(_0x8718[19]);var db=require(_0x8718[21])[_0x8718[20]];function respondWithStatusCode(_0xeda7x15,_0xeda7x16,_0xeda7x17){_0xeda7x16= _0xeda7x16|| 204;return function(_0xeda7x18){if(_0xeda7x18){logger[_0x8718[24]](_0x8718[22],_0xeda7x17,_0xeda7x16,_0x8718[23]);logger[_0x8718[26]](_0x8718[25],_0xeda7x17,_0xeda7x16,_0x8718[23]);return _0xeda7x15[_0x8718[27]](_0xeda7x16)};return _0xeda7x15[_0x8718[29]](304)[_0x8718[28]]()}}function respondWithResult(_0xeda7x15,_0xeda7x16,_0xeda7x17){_0xeda7x16= _0xeda7x16|| 200;return function(_0xeda7x18){if(_0xeda7x18){logger[_0x8718[24]](_0x8718[22],_0xeda7x17,_0xeda7x16,_0x8718[30]);logger[_0x8718[26]](_0x8718[25],_0xeda7x17,_0xeda7x16,_0x8718[30],JSON[_0x8718[31]](_0xeda7x18));return _0xeda7x15[_0x8718[29]](_0xeda7x16)[_0x8718[32]](_0xeda7x18)};return _0xeda7x15[_0x8718[29]](304)[_0x8718[28]]()}}function respondWithFilteredResult(_0xeda7x15,_0xeda7x1b,_0xeda7x17){return function(_0xeda7x18){if(_0xeda7x18){var _0xeda7x1c=_0xeda7x18[_0x8718[33]],_0xeda7x1d=_0xeda7x1b[_0x8718[34]],_0xeda7x1e=_0xeda7x1b[_0x8718[34]]+ _0xeda7x1b[_0x8718[35]],_0xeda7x16;if(_0xeda7x1e>= _0xeda7x1c){_0xeda7x1e= _0xeda7x1c;_0xeda7x16= 200}else {_0xeda7x16= 206};_0xeda7x15[_0x8718[29]](_0xeda7x16);logger[_0x8718[24]](_0x8718[22],_0xeda7x17,_0xeda7x16,_0x8718[36]);logger[_0x8718[26]](_0x8718[25],_0xeda7x17,_0xeda7x16,_0x8718[30],JSON[_0x8718[31]](_0xeda7x18));return _0xeda7x15[_0x8718[40]](_0x8718[37],_0xeda7x1d+ _0x8718[38]+ _0xeda7x1e+ _0x8718[39]+ _0xeda7x1c)[_0x8718[32]](_0xeda7x18)};return null}}function patchUpdates(_0xeda7x20){return function(_0xeda7x18){try{jsonpatch[_0x8718[41]](_0xeda7x18,_0xeda7x20,true)}catch(err){return BPromise[_0x8718[42]](err)};return _0xeda7x18[_0x8718[43]]()}}function saveUpdates(_0xeda7x22,_0xeda7x16,_0xeda7x17){return function(_0xeda7x18){if(_0xeda7x18){return _0xeda7x18[_0x8718[46]](_0xeda7x22)[_0x8718[45]](function(_0xeda7x23){logger[_0x8718[24]](_0x8718[22],_0xeda7x17,_0xeda7x16,_0x8718[44]);logger[_0x8718[26]](_0x8718[25],_0xeda7x17,_0xeda7x16,_0x8718[44],JSON[_0x8718[31]](_0xeda7x18));return _0xeda7x23})};return null}}function removeEntity(_0xeda7x15,_0xeda7x16,_0xeda7x17){return function(_0xeda7x18){if(_0xeda7x18){return _0xeda7x18[_0x8718[48]]()[_0x8718[45]](function(){logger[_0x8718[24]](_0x8718[22],_0xeda7x17,_0xeda7x16,_0x8718[47]);logger[_0x8718[26]](_0x8718[25],_0xeda7x17,_0xeda7x16,_0x8718[47],JSON[_0x8718[31]](_0xeda7x18));_0xeda7x15[_0x8718[29]](204)[_0x8718[28]]()})}}}function handleEntityNotFound(_0xeda7x15,_0xeda7x16,_0xeda7x17){return function(_0xeda7x18){if(!_0xeda7x18){logger[_0x8718[50]](_0x8718[22],_0xeda7x17,404,_0x8718[49]);_0xeda7x15[_0x8718[29]](404)[_0x8718[28]]();return null};return _0xeda7x18}}function handleError(_0xeda7x15,_0xeda7x16,_0xeda7x17){_0xeda7x16= _0xeda7x16|| 500;return function(_0xeda7x27){logger[_0x8718[50]](_0x8718[22],_0xeda7x17,_0xeda7x16,JSON[_0x8718[31]](_0xeda7x27));delete _0xeda7x27[_0x8718[51]];_0xeda7x15[_0x8718[29]](_0xeda7x16)[_0x8718[52]](_0xeda7x27)}}exports[_0x8718[53]]= function(_0xeda7x28,_0xeda7x15){var _0xeda7x1b={raw:false,where:{id:_0xeda7x28[_0x8718[55]][_0x8718[54]]}},_0xeda7x29={};_0xeda7x29[_0x8718[56]]= _[_0x8718[59]](db[_0x8718[58]][_0x8718[57]]);_0xeda7x29[_0x8718[60]]= _[_0x8718[59]](_0xeda7x28[_0x8718[60]]);_0xeda7x29[_0x8718[61]]= _[_0x8718[62]](_0xeda7x29[_0x8718[56]],_0xeda7x29[_0x8718[60]]);_0xeda7x1b[_0x8718[63]]= _[_0x8718[62]](_0xeda7x29[_0x8718[56]],qs[_0x8718[64]](_0xeda7x28[_0x8718[60]][_0x8718[64]]));_0xeda7x1b[_0x8718[63]]= (_0xeda7x1b[_0x8718[63]][_0x8718[65]])?_0xeda7x1b[_0x8718[63]]:_0xeda7x29[_0x8718[56]];_0xeda7x1b= _[_0x8718[67]]({},_0xeda7x1b,_0xeda7x28[_0x8718[66]]);return db[_0x8718[58]][_0x8718[69]](_0xeda7x1b)[_0x8718[45]](handleEntityNotFound(_0xeda7x15,null,_0x8718[53]))[_0x8718[45]](respondWithResult(_0xeda7x15,null,_0x8718[53]))[_0x8718[68]](handleError(_0xeda7x15,null,_0x8718[53]))};exports[_0x8718[46]]= function(_0xeda7x28,_0xeda7x15){if(_0xeda7x28[_0x8718[70]][_0x8718[54]]){delete _0xeda7x28[_0x8718[70]][_0x8718[54]]};return db[_0x8718[58]][_0x8718[69]]({where:{id:_0xeda7x28[_0x8718[55]][_0x8718[54]]}})[_0x8718[45]](handleEntityNotFound(_0xeda7x15,null,_0x8718[46]))[_0x8718[45]](saveUpdates(_0xeda7x28[_0x8718[70]],null,_0x8718[46]))[_0x8718[45]](respondWithResult(_0xeda7x15,null,_0x8718[46]))[_0x8718[68]](handleError(_0xeda7x15,null,_0x8718[46]))};exports[_0x8718[48]]= function(_0xeda7x28,_0xeda7x15){return db[_0x8718[58]][_0x8718[69]]({where:{id:_0xeda7x28[_0x8718[55]][_0x8718[54]]}})[_0x8718[45]](handleEntityNotFound(_0xeda7x15,null,_0x8718[48]))[_0x8718[45]](removeEntity(_0xeda7x15,null,_0x8718[48]))[_0x8718[68]](handleError(_0xeda7x15,null,_0x8718[48]))}
\ No newline at end of file
+var _0x8658=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x8658[0];var jsonpatch=require(_0x8658[1]);var rp=require(_0x8658[2]);var moment=require(_0x8658[3]);var BPromise=require(_0x8658[4]);var util=require(_0x8658[5]);var path=require(_0x8658[6]);var sox=require(_0x8658[7]);var ejs=require(_0x8658[8]);var fs=require(_0x8658[9]);var _=require(_0x8658[10]);var squel=require(_0x8658[11]);var crypto=require(_0x8658[12]);var jsforce=require(_0x8658[13]);var toCsv=require(_0x8658[14]);var qs=require(_0x8658[15]);var logger=require(_0x8658[17])(_0x8658[16]);var utils=require(_0x8658[18]);var config=require(_0x8658[19]);var db=require(_0x8658[21])[_0x8658[20]];function respondWithStatusCode(_0x1e06x15,_0x1e06x16,_0x1e06x17){_0x1e06x16= _0x1e06x16|| 204;return function(_0x1e06x18){if(_0x1e06x18){logger[_0x8658[24]](_0x8658[22],_0x1e06x17,_0x1e06x16,_0x8658[23]);logger[_0x8658[26]](_0x8658[25],_0x1e06x17,_0x1e06x16,_0x8658[23]);return _0x1e06x15[_0x8658[27]](_0x1e06x16)};return _0x1e06x15[_0x8658[29]](304)[_0x8658[28]]()}}function respondWithResult(_0x1e06x15,_0x1e06x16,_0x1e06x17){_0x1e06x16= _0x1e06x16|| 200;return function(_0x1e06x18){if(_0x1e06x18){logger[_0x8658[24]](_0x8658[22],_0x1e06x17,_0x1e06x16,_0x8658[30]);logger[_0x8658[26]](_0x8658[25],_0x1e06x17,_0x1e06x16,_0x8658[30],JSON[_0x8658[31]](_0x1e06x18));return _0x1e06x15[_0x8658[29]](_0x1e06x16)[_0x8658[32]](_0x1e06x18)};return _0x1e06x15[_0x8658[29]](304)[_0x8658[28]]()}}function respondWithFilteredResult(_0x1e06x15,_0x1e06x1b,_0x1e06x17){return function(_0x1e06x18){if(_0x1e06x18){var _0x1e06x1c=_0x1e06x18[_0x8658[33]],_0x1e06x1d=_0x1e06x1b[_0x8658[34]],_0x1e06x1e=_0x1e06x1b[_0x8658[34]]+ _0x1e06x1b[_0x8658[35]],_0x1e06x16;if(_0x1e06x1e>= _0x1e06x1c){_0x1e06x1e= _0x1e06x1c;_0x1e06x16= 200}else {_0x1e06x16= 206};_0x1e06x15[_0x8658[29]](_0x1e06x16);logger[_0x8658[24]](_0x8658[22],_0x1e06x17,_0x1e06x16,_0x8658[36]);logger[_0x8658[26]](_0x8658[25],_0x1e06x17,_0x1e06x16,_0x8658[30],JSON[_0x8658[31]](_0x1e06x18));return _0x1e06x15[_0x8658[40]](_0x8658[37],_0x1e06x1d+ _0x8658[38]+ _0x1e06x1e+ _0x8658[39]+ _0x1e06x1c)[_0x8658[32]](_0x1e06x18)};return null}}function patchUpdates(_0x1e06x20){return function(_0x1e06x18){try{jsonpatch[_0x8658[41]](_0x1e06x18,_0x1e06x20,true)}catch(err){return BPromise[_0x8658[42]](err)};return _0x1e06x18[_0x8658[43]]()}}function saveUpdates(_0x1e06x22,_0x1e06x16,_0x1e06x17){return function(_0x1e06x18){if(_0x1e06x18){return _0x1e06x18[_0x8658[46]](_0x1e06x22)[_0x8658[45]](function(_0x1e06x23){logger[_0x8658[24]](_0x8658[22],_0x1e06x17,_0x1e06x16,_0x8658[44]);logger[_0x8658[26]](_0x8658[25],_0x1e06x17,_0x1e06x16,_0x8658[44],JSON[_0x8658[31]](_0x1e06x18));return _0x1e06x23})};return null}}function removeEntity(_0x1e06x15,_0x1e06x16,_0x1e06x17){return function(_0x1e06x18){if(_0x1e06x18){return _0x1e06x18[_0x8658[48]]()[_0x8658[45]](function(){logger[_0x8658[24]](_0x8658[22],_0x1e06x17,_0x1e06x16,_0x8658[47]);logger[_0x8658[26]](_0x8658[25],_0x1e06x17,_0x1e06x16,_0x8658[47],JSON[_0x8658[31]](_0x1e06x18));_0x1e06x15[_0x8658[29]](204)[_0x8658[28]]()})}}}function handleEntityNotFound(_0x1e06x15,_0x1e06x16,_0x1e06x17){return function(_0x1e06x18){if(!_0x1e06x18){logger[_0x8658[50]](_0x8658[22],_0x1e06x17,404,_0x8658[49]);_0x1e06x15[_0x8658[29]](404)[_0x8658[28]]();return null};return _0x1e06x18}}function handleError(_0x1e06x15,_0x1e06x16,_0x1e06x17){_0x1e06x16= _0x1e06x16|| 500;return function(_0x1e06x27){logger[_0x8658[50]](_0x8658[22],_0x1e06x17,_0x1e06x16,JSON[_0x8658[31]](_0x1e06x27));delete _0x1e06x27[_0x8658[51]];_0x1e06x15[_0x8658[29]](_0x1e06x16)[_0x8658[52]](_0x1e06x27)}}exports[_0x8658[53]]= function(_0x1e06x28,_0x1e06x15){var _0x1e06x1b={raw:false,where:{id:_0x1e06x28[_0x8658[55]][_0x8658[54]]}},_0x1e06x29={};_0x1e06x29[_0x8658[56]]= _[_0x8658[59]](db[_0x8658[58]][_0x8658[57]]);_0x1e06x29[_0x8658[60]]= _[_0x8658[59]](_0x1e06x28[_0x8658[60]]);_0x1e06x29[_0x8658[61]]= _[_0x8658[62]](_0x1e06x29[_0x8658[56]],_0x1e06x29[_0x8658[60]]);_0x1e06x1b[_0x8658[63]]= _[_0x8658[62]](_0x1e06x29[_0x8658[56]],qs[_0x8658[64]](_0x1e06x28[_0x8658[60]][_0x8658[64]]));_0x1e06x1b[_0x8658[63]]= (_0x1e06x1b[_0x8658[63]][_0x8658[65]])?_0x1e06x1b[_0x8658[63]]:_0x1e06x29[_0x8658[56]];_0x1e06x1b= _[_0x8658[67]]({},_0x1e06x1b,_0x1e06x28[_0x8658[66]]);return db[_0x8658[58]][_0x8658[69]](_0x1e06x1b)[_0x8658[45]](handleEntityNotFound(_0x1e06x15,null,_0x8658[53]))[_0x8658[45]](respondWithResult(_0x1e06x15,null,_0x8658[53]))[_0x8658[68]](handleError(_0x1e06x15,null,_0x8658[53]))};exports[_0x8658[46]]= function(_0x1e06x28,_0x1e06x15){if(_0x1e06x28[_0x8658[70]][_0x8658[54]]){delete _0x1e06x28[_0x8658[70]][_0x8658[54]]};return db[_0x8658[58]][_0x8658[69]]({where:{id:_0x1e06x28[_0x8658[55]][_0x8658[54]]}})[_0x8658[45]](handleEntityNotFound(_0x1e06x15,null,_0x8658[46]))[_0x8658[45]](saveUpdates(_0x1e06x28[_0x8658[70]],null,_0x8658[46]))[_0x8658[45]](respondWithResult(_0x1e06x15,null,_0x8658[46]))[_0x8658[68]](handleError(_0x1e06x15,null,_0x8658[46]))};exports[_0x8658[48]]= function(_0x1e06x28,_0x1e06x15){return db[_0x8658[58]][_0x8658[69]]({where:{id:_0x1e06x28[_0x8658[55]][_0x8658[54]]}})[_0x8658[45]](handleEntityNotFound(_0x1e06x15,null,_0x8658[48]))[_0x8658[45]](removeEntity(_0x1e06x15,null,_0x8658[48]))[_0x8658[68]](handleError(_0x1e06x15,null,_0x8658[48]))}
\ No newline at end of file
index 43b78b9..a08cca4 100644 (file)
@@ -1 +1 @@
-var _0x512a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x512a[0];var _=require(_0x512a[1]);var util=require(_0x512a[2]);var logger=require(_0x512a[4])(_0x512a[3]);var attributes=require(_0x512a[5]);module[_0x512a[6]]= function(_0x69c5x5,_0x69c5x6){return _0x69c5x5[_0x512a[9]](_0x512a[7],attributes,{tableName:_0x512a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xb7de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xb7de[0];var _=require(_0xb7de[1]);var util=require(_0xb7de[2]);var logger=require(_0xb7de[4])(_0xb7de[3]);var attributes=require(_0xb7de[5]);module[_0xb7de[6]]= function(_0x77d2x5,_0x77d2x6){return _0x77d2x5[_0xb7de[9]](_0xb7de[7],attributes,{tableName:_0xb7de[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 45677b8..470f577 100644 (file)
@@ -1 +1 @@
-var _0x7bd4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7bd4[0];var _=require(_0x7bd4[1]);var util=require(_0x7bd4[2]);var moment=require(_0x7bd4[3]);var BPromise=require(_0x7bd4[4]);var db=require(_0x7bd4[6])[_0x7bd4[5]];var utils=require(_0x7bd4[7]);var logger=require(_0x7bd4[9])(_0x7bd4[8]);var jayson=require(_0x7bd4[10]);var client=jayson[_0x7bd4[12]][_0x7bd4[11]]({port:9002});function respondWithRpcPromise(_0xaef5xb,_0xaef5xc,_0xaef5xd){return  new BPromise(function(_0xaef5xe,_0xaef5xf){return client[_0x7bd4[25]](_0xaef5xb,_0xaef5xd)[_0x7bd4[24]](function(_0xaef5x11){logger[_0x7bd4[17]](_0x7bd4[13],_0xaef5xc,_0x7bd4[16]);logger[_0x7bd4[20]](_0x7bd4[18],_0xaef5xc,_0x7bd4[16],JSON[_0x7bd4[19]](_0xaef5x11));if(_0xaef5x11[_0x7bd4[14]]){if(_0xaef5x11[_0x7bd4[14]][_0x7bd4[21]]=== 500){logger[_0x7bd4[14]](_0x7bd4[13],_0xaef5xc,_0xaef5x11[_0x7bd4[14]][_0x7bd4[22]]);return _0xaef5xf(_0xaef5x11[_0x7bd4[14]][_0x7bd4[22]])};logger[_0x7bd4[14]](_0x7bd4[13],_0xaef5xc,_0xaef5x11[_0x7bd4[14]][_0x7bd4[22]]);return _0xaef5xe(_0xaef5x11[_0x7bd4[14]][_0x7bd4[22]])}else {logger[_0x7bd4[17]](_0x7bd4[13],_0xaef5xc,_0x7bd4[16]);_0xaef5xe(_0xaef5x11[_0x7bd4[23]][_0x7bd4[22]])}})[_0x7bd4[15]](function(_0xaef5x10){logger[_0x7bd4[14]](_0x7bd4[13],_0xaef5xc,_0xaef5x10);_0xaef5xf(_0xaef5x10)})})}
\ No newline at end of file
+var _0xfffb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfffb[0];var _=require(_0xfffb[1]);var util=require(_0xfffb[2]);var moment=require(_0xfffb[3]);var BPromise=require(_0xfffb[4]);var db=require(_0xfffb[6])[_0xfffb[5]];var utils=require(_0xfffb[7]);var logger=require(_0xfffb[9])(_0xfffb[8]);var jayson=require(_0xfffb[10]);var client=jayson[_0xfffb[12]][_0xfffb[11]]({port:9002});function respondWithRpcPromise(_0x1c84xb,_0x1c84xc,_0x1c84xd){return  new BPromise(function(_0x1c84xe,_0x1c84xf){return client[_0xfffb[25]](_0x1c84xb,_0x1c84xd)[_0xfffb[24]](function(_0x1c84x11){logger[_0xfffb[17]](_0xfffb[13],_0x1c84xc,_0xfffb[16]);logger[_0xfffb[20]](_0xfffb[18],_0x1c84xc,_0xfffb[16],JSON[_0xfffb[19]](_0x1c84x11));if(_0x1c84x11[_0xfffb[14]]){if(_0x1c84x11[_0xfffb[14]][_0xfffb[21]]=== 500){logger[_0xfffb[14]](_0xfffb[13],_0x1c84xc,_0x1c84x11[_0xfffb[14]][_0xfffb[22]]);return _0x1c84xf(_0x1c84x11[_0xfffb[14]][_0xfffb[22]])};logger[_0xfffb[14]](_0xfffb[13],_0x1c84xc,_0x1c84x11[_0xfffb[14]][_0xfffb[22]]);return _0x1c84xe(_0x1c84x11[_0xfffb[14]][_0xfffb[22]])}else {logger[_0xfffb[17]](_0xfffb[13],_0x1c84xc,_0xfffb[16]);_0x1c84xe(_0x1c84x11[_0xfffb[23]][_0xfffb[22]])}})[_0xfffb[15]](function(_0x1c84x10){logger[_0xfffb[14]](_0xfffb[13],_0x1c84xc,_0x1c84x10);_0x1c84xf(_0x1c84x10)})})}
\ No newline at end of file
index 4751319..bcec75c 100644 (file)
@@ -1 +1 @@
-var _0x5e3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5e3f[0];var multer=require(_0x5e3f[1]);var util=require(_0x5e3f[2]);var path=require(_0x5e3f[3]);var express=require(_0x5e3f[4]);var router=express.Router();var auth=require(_0x5e3f[5]);var config=require(_0x5e3f[6]);var controller=require(_0x5e3f[7]);router[_0x5e3f[11]](_0x5e3f[8],auth[_0x5e3f[9]](),controller[_0x5e3f[10]]);router[_0x5e3f[13]](_0x5e3f[8],auth[_0x5e3f[9]](),controller[_0x5e3f[12]]);router[_0x5e3f[15]](_0x5e3f[8],auth[_0x5e3f[9]](),controller[_0x5e3f[14]]);module[_0x5e3f[16]]= router
\ No newline at end of file
+var _0xefa2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xefa2[0];var multer=require(_0xefa2[1]);var util=require(_0xefa2[2]);var path=require(_0xefa2[3]);var express=require(_0xefa2[4]);var router=express.Router();var auth=require(_0xefa2[5]);var config=require(_0xefa2[6]);var controller=require(_0xefa2[7]);router[_0xefa2[11]](_0xefa2[8],auth[_0xefa2[9]](),controller[_0xefa2[10]]);router[_0xefa2[13]](_0xefa2[8],auth[_0xefa2[9]](),controller[_0xefa2[12]]);router[_0xefa2[15]](_0xefa2[8],auth[_0xefa2[9]](),controller[_0xefa2[14]]);module[_0xefa2[16]]= router
\ No newline at end of file
index dc87916..88c431e 100644 (file)
@@ -1 +1 @@
-var _0x9e05=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x9e05[0];var Sequelize=require(_0x9e05[1]);module[_0x9e05[2]]= {name:{type:Sequelize[_0x9e05[3]],unique:_0x9e05[4],allowNull:false,validate:{notEmpty:true}},vat:{type:Sequelize[_0x9e05[3]]},companyId:{type:Sequelize[_0x9e05[3]]},website:{type:Sequelize[_0x9e05[3]]},phone:{type:Sequelize[_0x9e05[3]]},fax:{type:Sequelize[_0x9e05[3]]},type:{type:Sequelize[_0x9e05[3]]},street:{type:Sequelize[_0x9e05[3]]},postalCode:{type:Sequelize[_0x9e05[3]]},city:{type:Sequelize[_0x9e05[3]]},country:{type:Sequelize[_0x9e05[3]]},email:{type:Sequelize[_0x9e05[3]],validate:{isEmail:true}},emailDomain:{type:Sequelize[_0x9e05[3]]},sStreet:{type:Sequelize[_0x9e05[3]]},sPostalCode:{type:Sequelize[_0x9e05[3]]},sCity:{type:Sequelize[_0x9e05[3]]},sCountry:{type:Sequelize[_0x9e05[3]]},description:{type:Sequelize[_0x9e05[3]]}}
\ No newline at end of file
+var _0xc6c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xc6c1[0];var Sequelize=require(_0xc6c1[1]);module[_0xc6c1[2]]= {name:{type:Sequelize[_0xc6c1[3]],unique:_0xc6c1[4],allowNull:false,validate:{notEmpty:true}},vat:{type:Sequelize[_0xc6c1[3]]},companyId:{type:Sequelize[_0xc6c1[3]]},website:{type:Sequelize[_0xc6c1[3]]},phone:{type:Sequelize[_0xc6c1[3]]},fax:{type:Sequelize[_0xc6c1[3]]},type:{type:Sequelize[_0xc6c1[3]]},street:{type:Sequelize[_0xc6c1[3]]},postalCode:{type:Sequelize[_0xc6c1[3]]},city:{type:Sequelize[_0xc6c1[3]]},country:{type:Sequelize[_0xc6c1[3]]},email:{type:Sequelize[_0xc6c1[3]],validate:{isEmail:true}},emailDomain:{type:Sequelize[_0xc6c1[3]]},sStreet:{type:Sequelize[_0xc6c1[3]]},sPostalCode:{type:Sequelize[_0xc6c1[3]]},sCity:{type:Sequelize[_0xc6c1[3]]},sCountry:{type:Sequelize[_0xc6c1[3]]},description:{type:Sequelize[_0xc6c1[3]]}}
\ No newline at end of file
index c4ca253..3646e76 100644 (file)
@@ -1 +1 @@
-var _0x6bca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x6bca[0];var jsonpatch=require(_0x6bca[1]);var rp=require(_0x6bca[2]);var moment=require(_0x6bca[3]);var BPromise=require(_0x6bca[4]);var util=require(_0x6bca[5]);var path=require(_0x6bca[6]);var sox=require(_0x6bca[7]);var ejs=require(_0x6bca[8]);var fs=require(_0x6bca[9]);var _=require(_0x6bca[10]);var squel=require(_0x6bca[11]);var crypto=require(_0x6bca[12]);var jsforce=require(_0x6bca[13]);var toCsv=require(_0x6bca[14]);var qs=require(_0x6bca[15]);var logger=require(_0x6bca[17])(_0x6bca[16]);var utils=require(_0x6bca[18]);var config=require(_0x6bca[19]);var db=require(_0x6bca[21])[_0x6bca[20]];function respondWithStatusCode(_0x7a6dx15,_0x7a6dx16,_0x7a6dx17){_0x7a6dx16= _0x7a6dx16|| 204;return function(_0x7a6dx18){if(_0x7a6dx18){logger[_0x6bca[24]](_0x6bca[22],_0x7a6dx17,_0x7a6dx16,_0x6bca[23]);logger[_0x6bca[26]](_0x6bca[25],_0x7a6dx17,_0x7a6dx16,_0x6bca[23]);return _0x7a6dx15[_0x6bca[27]](_0x7a6dx16)};return _0x7a6dx15[_0x6bca[29]](304)[_0x6bca[28]]()}}function respondWithResult(_0x7a6dx15,_0x7a6dx16,_0x7a6dx17){_0x7a6dx16= _0x7a6dx16|| 200;return function(_0x7a6dx18){if(_0x7a6dx18){logger[_0x6bca[24]](_0x6bca[22],_0x7a6dx17,_0x7a6dx16,_0x6bca[30]);logger[_0x6bca[26]](_0x6bca[25],_0x7a6dx17,_0x7a6dx16,_0x6bca[30],JSON[_0x6bca[31]](_0x7a6dx18));return _0x7a6dx15[_0x6bca[29]](_0x7a6dx16)[_0x6bca[32]](_0x7a6dx18)};return _0x7a6dx15[_0x6bca[29]](304)[_0x6bca[28]]()}}function respondWithFilteredResult(_0x7a6dx15,_0x7a6dx1b,_0x7a6dx17){return function(_0x7a6dx18){if(_0x7a6dx18){var _0x7a6dx1c=_0x7a6dx18[_0x6bca[33]],_0x7a6dx1d=_0x7a6dx1b[_0x6bca[34]],_0x7a6dx1e=_0x7a6dx1b[_0x6bca[34]]+ _0x7a6dx1b[_0x6bca[35]],_0x7a6dx16;if(_0x7a6dx1e>= _0x7a6dx1c){_0x7a6dx1e= _0x7a6dx1c;_0x7a6dx16= 200}else {_0x7a6dx16= 206};_0x7a6dx15[_0x6bca[29]](_0x7a6dx16);logger[_0x6bca[24]](_0x6bca[22],_0x7a6dx17,_0x7a6dx16,_0x6bca[36]);logger[_0x6bca[26]](_0x6bca[25],_0x7a6dx17,_0x7a6dx16,_0x6bca[30],JSON[_0x6bca[31]](_0x7a6dx18));return _0x7a6dx15[_0x6bca[40]](_0x6bca[37],_0x7a6dx1d+ _0x6bca[38]+ _0x7a6dx1e+ _0x6bca[39]+ _0x7a6dx1c)[_0x6bca[32]](_0x7a6dx18)};return null}}function patchUpdates(_0x7a6dx20){return function(_0x7a6dx18){try{jsonpatch[_0x6bca[41]](_0x7a6dx18,_0x7a6dx20,true)}catch(err){return BPromise[_0x6bca[42]](err)};return _0x7a6dx18[_0x6bca[43]]()}}function saveUpdates(_0x7a6dx22,_0x7a6dx16,_0x7a6dx17){return function(_0x7a6dx18){if(_0x7a6dx18){return _0x7a6dx18[_0x6bca[46]](_0x7a6dx22)[_0x6bca[45]](function(_0x7a6dx23){logger[_0x6bca[24]](_0x6bca[22],_0x7a6dx17,_0x7a6dx16,_0x6bca[44]);logger[_0x6bca[26]](_0x6bca[25],_0x7a6dx17,_0x7a6dx16,_0x6bca[44],JSON[_0x6bca[31]](_0x7a6dx18));return _0x7a6dx23})};return null}}function removeEntity(_0x7a6dx15,_0x7a6dx16,_0x7a6dx17){return function(_0x7a6dx18){if(_0x7a6dx18){return _0x7a6dx18[_0x6bca[48]]()[_0x6bca[45]](function(){logger[_0x6bca[24]](_0x6bca[22],_0x7a6dx17,_0x7a6dx16,_0x6bca[47]);logger[_0x6bca[26]](_0x6bca[25],_0x7a6dx17,_0x7a6dx16,_0x6bca[47],JSON[_0x6bca[31]](_0x7a6dx18));_0x7a6dx15[_0x6bca[29]](204)[_0x6bca[28]]()})}}}function handleEntityNotFound(_0x7a6dx15,_0x7a6dx16,_0x7a6dx17){return function(_0x7a6dx18){if(!_0x7a6dx18){logger[_0x6bca[50]](_0x6bca[22],_0x7a6dx17,404,_0x6bca[49]);_0x7a6dx15[_0x6bca[29]](404)[_0x6bca[28]]();return null};return _0x7a6dx18}}function handleError(_0x7a6dx15,_0x7a6dx16,_0x7a6dx17){_0x7a6dx16= _0x7a6dx16|| 500;return function(_0x7a6dx27){logger[_0x6bca[50]](_0x6bca[22],_0x7a6dx17,_0x7a6dx16,JSON[_0x6bca[31]](_0x7a6dx27));delete _0x7a6dx27[_0x6bca[51]];_0x7a6dx15[_0x6bca[29]](_0x7a6dx16)[_0x6bca[52]](_0x7a6dx27)}}exports[_0x6bca[53]]= function(_0x7a6dx28,_0x7a6dx15){var _0x7a6dx1b={},_0x7a6dx29={};_0x7a6dx29[_0x6bca[54]]= _[_0x6bca[57]](db[_0x6bca[56]][_0x6bca[55]]);_0x7a6dx29[_0x6bca[58]]= _[_0x6bca[57]](_0x7a6dx28[_0x6bca[58]]);_0x7a6dx29[_0x6bca[59]]= _[_0x6bca[60]](_0x7a6dx29[_0x6bca[54]],_0x7a6dx29[_0x6bca[58]]);_0x7a6dx1b[_0x6bca[61]]= _[_0x6bca[60]](_0x7a6dx29[_0x6bca[54]],qs[_0x6bca[62]](_0x7a6dx28[_0x6bca[58]][_0x6bca[62]]));_0x7a6dx1b[_0x6bca[61]]= (_0x7a6dx1b[_0x6bca[61]][_0x6bca[63]])?_0x7a6dx1b[_0x6bca[61]]:_0x7a6dx29[_0x6bca[54]];if(!_0x7a6dx28[_0x6bca[58]][_0x6bca[65]](_0x6bca[64])){_0x7a6dx1b[_0x6bca[35]]= qs[_0x6bca[35]](_0x7a6dx28[_0x6bca[58]][_0x6bca[35]]);_0x7a6dx1b[_0x6bca[34]]= qs[_0x6bca[34]](_0x7a6dx28[_0x6bca[58]][_0x6bca[34]])};_0x7a6dx1b[_0x6bca[66]]= qs[_0x6bca[67]](_0x7a6dx28[_0x6bca[58]][_0x6bca[67]]);_0x7a6dx1b[_0x6bca[68]]= qs[_0x6bca[59]](_[_0x6bca[69]](_0x7a6dx28[_0x6bca[58]],_0x7a6dx29[_0x6bca[59]]));if(_0x7a6dx28[_0x6bca[58]][_0x6bca[70]]){_0x7a6dx1b[_0x6bca[68]]= _[_0x6bca[73]](_0x7a6dx1b[_0x6bca[68]],{$or:_[_0x6bca[72]](_0x7a6dx1b[_0x6bca[61]],function(_0x7a6dx2a){var _0x7a6dx2b={};_0x7a6dx2b[_0x7a6dx2a]= {$like:_0x6bca[71]+ _0x7a6dx28[_0x6bca[58]][_0x6bca[70]]+ _0x6bca[71]};return _0x7a6dx2b})})};_0x7a6dx1b= _[_0x6bca[73]]({},_0x7a6dx1b,_0x7a6dx28[_0x6bca[74]]);return db[_0x6bca[56]][_0x6bca[76]](_0x7a6dx1b)[_0x6bca[45]](respondWithFilteredResult(_0x7a6dx15,_0x7a6dx1b,_0x6bca[53]))[_0x6bca[75]](handleError(_0x7a6dx15,null,_0x6bca[53]))};exports[_0x6bca[77]]= function(_0x7a6dx28,_0x7a6dx15){var _0x7a6dx1b={raw:false,where:{id:_0x7a6dx28[_0x6bca[79]][_0x6bca[78]]}},_0x7a6dx29={};_0x7a6dx29[_0x6bca[54]]= _[_0x6bca[57]](db[_0x6bca[56]][_0x6bca[55]]);_0x7a6dx29[_0x6bca[58]]= _[_0x6bca[57]](_0x7a6dx28[_0x6bca[58]]);_0x7a6dx29[_0x6bca[59]]= _[_0x6bca[60]](_0x7a6dx29[_0x6bca[54]],_0x7a6dx29[_0x6bca[58]]);_0x7a6dx1b[_0x6bca[61]]= _[_0x6bca[60]](_0x7a6dx29[_0x6bca[54]],qs[_0x6bca[62]](_0x7a6dx28[_0x6bca[58]][_0x6bca[62]]));_0x7a6dx1b[_0x6bca[61]]= (_0x7a6dx1b[_0x6bca[61]][_0x6bca[63]])?_0x7a6dx1b[_0x6bca[61]]:_0x7a6dx29[_0x6bca[54]];_0x7a6dx1b= _[_0x6bca[73]]({},_0x7a6dx1b,_0x7a6dx28[_0x6bca[74]]);return db[_0x6bca[56]][_0x6bca[80]](_0x7a6dx1b)[_0x6bca[45]](handleEntityNotFound(_0x7a6dx15,null,_0x6bca[77]))[_0x6bca[45]](respondWithResult(_0x7a6dx15,null,_0x6bca[77]))[_0x6bca[75]](handleError(_0x7a6dx15,null,_0x6bca[77]))};exports[_0x6bca[81]]= function(_0x7a6dx28,_0x7a6dx15){return db[_0x6bca[56]][_0x6bca[81]](_0x7a6dx28[_0x6bca[82]],{})[_0x6bca[45]](respondWithResult(_0x7a6dx15,201,_0x6bca[81]))[_0x6bca[75]](handleError(_0x7a6dx15,null,_0x6bca[81]))};exports[_0x6bca[46]]= function(_0x7a6dx28,_0x7a6dx15){if(_0x7a6dx28[_0x6bca[82]][_0x6bca[78]]){delete _0x7a6dx28[_0x6bca[82]][_0x6bca[78]]};return db[_0x6bca[56]][_0x6bca[80]]({where:{id:_0x7a6dx28[_0x6bca[79]][_0x6bca[78]]}})[_0x6bca[45]](handleEntityNotFound(_0x7a6dx15,null,_0x6bca[46]))[_0x6bca[45]](saveUpdates(_0x7a6dx28[_0x6bca[82]],null,_0x6bca[46]))[_0x6bca[45]](respondWithResult(_0x7a6dx15,null,_0x6bca[46]))[_0x6bca[75]](handleError(_0x7a6dx15,null,_0x6bca[46]))};exports[_0x6bca[48]]= function(_0x7a6dx28,_0x7a6dx15){return db[_0x6bca[56]][_0x6bca[80]]({where:{id:_0x7a6dx28[_0x6bca[79]][_0x6bca[78]]}})[_0x6bca[45]](handleEntityNotFound(_0x7a6dx15,null,_0x6bca[48]))[_0x6bca[45]](removeEntity(_0x7a6dx15,null,_0x6bca[48]))[_0x6bca[75]](handleError(_0x7a6dx15,null,_0x6bca[48]))};exports[_0x6bca[83]]= function(_0x7a6dx28,_0x7a6dx15,_0x7a6dx2c){return db[_0x6bca[86]][_0x6bca[80]]({where:{id:_0x7a6dx28[_0x6bca[79]][_0x6bca[78]]}})[_0x6bca[45]](handleEntityNotFound(_0x7a6dx15,null,_0x6bca[83]))[_0x6bca[45]](function(_0x7a6dx18){if(_0x7a6dx18){return _0x7a6dx18[_0x6bca[83]](_0x7a6dx28[_0x6bca[82]][_0x6bca[84]],_[_0x6bca[85]](_0x7a6dx28[_0x6bca[82]],[_0x6bca[84],_0x6bca[78]])|| {})};return null})[_0x6bca[45]](respondWithResult(_0x7a6dx15,null,_0x6bca[83]))[_0x6bca[75]](handleError(_0x7a6dx15,null,_0x6bca[83]))};exports[_0x6bca[87]]= function(_0x7a6dx28,_0x7a6dx18,_0x7a6dx2c){var _0x7a6dx1b={};var _0x7a6dx29={};var _0x7a6dx2d;var _0x7a6dx1c;return db[_0x6bca[56]][_0x6bca[88]]({where:{id:_0x7a6dx28[_0x6bca[79]][_0x6bca[78]]}})[_0x6bca[45]](handleEntityNotFound(_0x7a6dx18,null,_0x6bca[87]))[_0x6bca[45]](function(_0x7a6dx18){if(_0x7a6dx18){_0x7a6dx2d= _0x7a6dx18;_0x7a6dx29[_0x6bca[54]]= _[_0x6bca[57]](db[_0x6bca[86]][_0x6bca[55]]);_0x7a6dx29[_0x6bca[58]]= _[_0x6bca[57]](_0x7a6dx28[_0x6bca[58]]);_0x7a6dx29[_0x6bca[59]]= _[_0x6bca[60]](_0x7a6dx29[_0x6bca[54]],_0x7a6dx29[_0x6bca[58]]);_0x7a6dx1b[_0x6bca[61]]= _[_0x6bca[60]](_0x7a6dx29[_0x6bca[54]],qs[_0x6bca[62]](_0x7a6dx28[_0x6bca[58]][_0x6bca[62]]));_0x7a6dx1b[_0x6bca[61]]= (_0x7a6dx1b[_0x6bca[61]][_0x6bca[63]])?_0x7a6dx1b[_0x6bca[61]]:_0x7a6dx29[_0x6bca[54]];_0x7a6dx1b[_0x6bca[66]]= qs[_0x6bca[67]](_0x7a6dx28[_0x6bca[58]][_0x6bca[67]]);_0x7a6dx1b[_0x6bca[68]]= qs[_0x6bca[59]](_[_0x6bca[69]](_0x7a6dx28[_0x6bca[58]],_0x7a6dx29[_0x6bca[59]]));if(_0x7a6dx28[_0x6bca[58]][_0x6bca[70]]){_0x7a6dx1b[_0x6bca[68]]= _[_0x6bca[73]](_0x7a6dx1b[_0x6bca[68]],{$or:_[_0x6bca[72]](_0x7a6dx1b[_0x6bca[61]],function(_0x7a6dx2a){var _0x7a6dx2b={};_0x7a6dx2b[_0x7a6dx2a]= {$like:_0x6bca[71]+ _0x7a6dx28[_0x6bca[58]][_0x6bca[70]]+ _0x6bca[71]};return _0x7a6dx2b})})};_0x7a6dx1b= _[_0x6bca[73]]({},_0x7a6dx1b,_0x7a6dx28[_0x6bca[74]]);return _0x7a6dx2d[_0x6bca[87]](_0x7a6dx1b)}})[_0x6bca[45]](function(_0x7a6dx2f){if(_0x7a6dx2f){_0x7a6dx1c= _0x7a6dx2f[_0x6bca[63]];if(!_0x7a6dx28[_0x6bca[58]][_0x6bca[65]](_0x6bca[64])){_0x7a6dx1b[_0x6bca[35]]= qs[_0x6bca[35]](_0x7a6dx28[_0x6bca[58]][_0x6bca[35]]);_0x7a6dx1b[_0x6bca[34]]= qs[_0x6bca[34]](_0x7a6dx28[_0x6bca[58]][_0x6bca[34]])};return _0x7a6dx2d[_0x6bca[87]](_0x7a6dx1b)}})[_0x6bca[45]](function(_0x7a6dx2e){return _0x7a6dx2e?{count:_0x7a6dx1c,rows:_0x7a6dx2e}:null})[_0x6bca[45]](respondWithResult(_0x7a6dx18,null,_0x6bca[87]))[_0x6bca[75]](handleError(_0x7a6dx18,null,_0x6bca[87]))}
\ No newline at end of file
+var _0x5d50=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x5d50[0];var jsonpatch=require(_0x5d50[1]);var rp=require(_0x5d50[2]);var moment=require(_0x5d50[3]);var BPromise=require(_0x5d50[4]);var util=require(_0x5d50[5]);var path=require(_0x5d50[6]);var sox=require(_0x5d50[7]);var ejs=require(_0x5d50[8]);var fs=require(_0x5d50[9]);var _=require(_0x5d50[10]);var squel=require(_0x5d50[11]);var crypto=require(_0x5d50[12]);var jsforce=require(_0x5d50[13]);var toCsv=require(_0x5d50[14]);var qs=require(_0x5d50[15]);var logger=require(_0x5d50[17])(_0x5d50[16]);var utils=require(_0x5d50[18]);var config=require(_0x5d50[19]);var db=require(_0x5d50[21])[_0x5d50[20]];function respondWithStatusCode(_0xe6fdx15,_0xe6fdx16,_0xe6fdx17){_0xe6fdx16= _0xe6fdx16|| 204;return function(_0xe6fdx18){if(_0xe6fdx18){logger[_0x5d50[24]](_0x5d50[22],_0xe6fdx17,_0xe6fdx16,_0x5d50[23]);logger[_0x5d50[26]](_0x5d50[25],_0xe6fdx17,_0xe6fdx16,_0x5d50[23]);return _0xe6fdx15[_0x5d50[27]](_0xe6fdx16)};return _0xe6fdx15[_0x5d50[29]](304)[_0x5d50[28]]()}}function respondWithResult(_0xe6fdx15,_0xe6fdx16,_0xe6fdx17){_0xe6fdx16= _0xe6fdx16|| 200;return function(_0xe6fdx18){if(_0xe6fdx18){logger[_0x5d50[24]](_0x5d50[22],_0xe6fdx17,_0xe6fdx16,_0x5d50[30]);logger[_0x5d50[26]](_0x5d50[25],_0xe6fdx17,_0xe6fdx16,_0x5d50[30],JSON[_0x5d50[31]](_0xe6fdx18));return _0xe6fdx15[_0x5d50[29]](_0xe6fdx16)[_0x5d50[32]](_0xe6fdx18)};return _0xe6fdx15[_0x5d50[29]](304)[_0x5d50[28]]()}}function respondWithFilteredResult(_0xe6fdx15,_0xe6fdx1b,_0xe6fdx17){return function(_0xe6fdx18){if(_0xe6fdx18){var _0xe6fdx1c=_0xe6fdx18[_0x5d50[33]],_0xe6fdx1d=_0xe6fdx1b[_0x5d50[34]],_0xe6fdx1e=_0xe6fdx1b[_0x5d50[34]]+ _0xe6fdx1b[_0x5d50[35]],_0xe6fdx16;if(_0xe6fdx1e>= _0xe6fdx1c){_0xe6fdx1e= _0xe6fdx1c;_0xe6fdx16= 200}else {_0xe6fdx16= 206};_0xe6fdx15[_0x5d50[29]](_0xe6fdx16);logger[_0x5d50[24]](_0x5d50[22],_0xe6fdx17,_0xe6fdx16,_0x5d50[36]);logger[_0x5d50[26]](_0x5d50[25],_0xe6fdx17,_0xe6fdx16,_0x5d50[30],JSON[_0x5d50[31]](_0xe6fdx18));return _0xe6fdx15[_0x5d50[40]](_0x5d50[37],_0xe6fdx1d+ _0x5d50[38]+ _0xe6fdx1e+ _0x5d50[39]+ _0xe6fdx1c)[_0x5d50[32]](_0xe6fdx18)};return null}}function patchUpdates(_0xe6fdx20){return function(_0xe6fdx18){try{jsonpatch[_0x5d50[41]](_0xe6fdx18,_0xe6fdx20,true)}catch(err){return BPromise[_0x5d50[42]](err)};return _0xe6fdx18[_0x5d50[43]]()}}function saveUpdates(_0xe6fdx22,_0xe6fdx16,_0xe6fdx17){return function(_0xe6fdx18){if(_0xe6fdx18){return _0xe6fdx18[_0x5d50[46]](_0xe6fdx22)[_0x5d50[45]](function(_0xe6fdx23){logger[_0x5d50[24]](_0x5d50[22],_0xe6fdx17,_0xe6fdx16,_0x5d50[44]);logger[_0x5d50[26]](_0x5d50[25],_0xe6fdx17,_0xe6fdx16,_0x5d50[44],JSON[_0x5d50[31]](_0xe6fdx18));return _0xe6fdx23})};return null}}function removeEntity(_0xe6fdx15,_0xe6fdx16,_0xe6fdx17){return function(_0xe6fdx18){if(_0xe6fdx18){return _0xe6fdx18[_0x5d50[48]]()[_0x5d50[45]](function(){logger[_0x5d50[24]](_0x5d50[22],_0xe6fdx17,_0xe6fdx16,_0x5d50[47]);logger[_0x5d50[26]](_0x5d50[25],_0xe6fdx17,_0xe6fdx16,_0x5d50[47],JSON[_0x5d50[31]](_0xe6fdx18));_0xe6fdx15[_0x5d50[29]](204)[_0x5d50[28]]()})}}}function handleEntityNotFound(_0xe6fdx15,_0xe6fdx16,_0xe6fdx17){return function(_0xe6fdx18){if(!_0xe6fdx18){logger[_0x5d50[50]](_0x5d50[22],_0xe6fdx17,404,_0x5d50[49]);_0xe6fdx15[_0x5d50[29]](404)[_0x5d50[28]]();return null};return _0xe6fdx18}}function handleError(_0xe6fdx15,_0xe6fdx16,_0xe6fdx17){_0xe6fdx16= _0xe6fdx16|| 500;return function(_0xe6fdx27){logger[_0x5d50[50]](_0x5d50[22],_0xe6fdx17,_0xe6fdx16,JSON[_0x5d50[31]](_0xe6fdx27));delete _0xe6fdx27[_0x5d50[51]];_0xe6fdx15[_0x5d50[29]](_0xe6fdx16)[_0x5d50[52]](_0xe6fdx27)}}exports[_0x5d50[53]]= function(_0xe6fdx28,_0xe6fdx15){var _0xe6fdx1b={},_0xe6fdx29={};_0xe6fdx29[_0x5d50[54]]= _[_0x5d50[57]](db[_0x5d50[56]][_0x5d50[55]]);_0xe6fdx29[_0x5d50[58]]= _[_0x5d50[57]](_0xe6fdx28[_0x5d50[58]]);_0xe6fdx29[_0x5d50[59]]= _[_0x5d50[60]](_0xe6fdx29[_0x5d50[54]],_0xe6fdx29[_0x5d50[58]]);_0xe6fdx1b[_0x5d50[61]]= _[_0x5d50[60]](_0xe6fdx29[_0x5d50[54]],qs[_0x5d50[62]](_0xe6fdx28[_0x5d50[58]][_0x5d50[62]]));_0xe6fdx1b[_0x5d50[61]]= (_0xe6fdx1b[_0x5d50[61]][_0x5d50[63]])?_0xe6fdx1b[_0x5d50[61]]:_0xe6fdx29[_0x5d50[54]];if(!_0xe6fdx28[_0x5d50[58]][_0x5d50[65]](_0x5d50[64])){_0xe6fdx1b[_0x5d50[35]]= qs[_0x5d50[35]](_0xe6fdx28[_0x5d50[58]][_0x5d50[35]]);_0xe6fdx1b[_0x5d50[34]]= qs[_0x5d50[34]](_0xe6fdx28[_0x5d50[58]][_0x5d50[34]])};_0xe6fdx1b[_0x5d50[66]]= qs[_0x5d50[67]](_0xe6fdx28[_0x5d50[58]][_0x5d50[67]]);_0xe6fdx1b[_0x5d50[68]]= qs[_0x5d50[59]](_[_0x5d50[69]](_0xe6fdx28[_0x5d50[58]],_0xe6fdx29[_0x5d50[59]]));if(_0xe6fdx28[_0x5d50[58]][_0x5d50[70]]){_0xe6fdx1b[_0x5d50[68]]= _[_0x5d50[73]](_0xe6fdx1b[_0x5d50[68]],{$or:_[_0x5d50[72]](_0xe6fdx1b[_0x5d50[61]],function(_0xe6fdx2a){var _0xe6fdx2b={};_0xe6fdx2b[_0xe6fdx2a]= {$like:_0x5d50[71]+ _0xe6fdx28[_0x5d50[58]][_0x5d50[70]]+ _0x5d50[71]};return _0xe6fdx2b})})};_0xe6fdx1b= _[_0x5d50[73]]({},_0xe6fdx1b,_0xe6fdx28[_0x5d50[74]]);return db[_0x5d50[56]][_0x5d50[76]](_0xe6fdx1b)[_0x5d50[45]](respondWithFilteredResult(_0xe6fdx15,_0xe6fdx1b,_0x5d50[53]))[_0x5d50[75]](handleError(_0xe6fdx15,null,_0x5d50[53]))};exports[_0x5d50[77]]= function(_0xe6fdx28,_0xe6fdx15){var _0xe6fdx1b={raw:false,where:{id:_0xe6fdx28[_0x5d50[79]][_0x5d50[78]]}},_0xe6fdx29={};_0xe6fdx29[_0x5d50[54]]= _[_0x5d50[57]](db[_0x5d50[56]][_0x5d50[55]]);_0xe6fdx29[_0x5d50[58]]= _[_0x5d50[57]](_0xe6fdx28[_0x5d50[58]]);_0xe6fdx29[_0x5d50[59]]= _[_0x5d50[60]](_0xe6fdx29[_0x5d50[54]],_0xe6fdx29[_0x5d50[58]]);_0xe6fdx1b[_0x5d50[61]]= _[_0x5d50[60]](_0xe6fdx29[_0x5d50[54]],qs[_0x5d50[62]](_0xe6fdx28[_0x5d50[58]][_0x5d50[62]]));_0xe6fdx1b[_0x5d50[61]]= (_0xe6fdx1b[_0x5d50[61]][_0x5d50[63]])?_0xe6fdx1b[_0x5d50[61]]:_0xe6fdx29[_0x5d50[54]];_0xe6fdx1b= _[_0x5d50[73]]({},_0xe6fdx1b,_0xe6fdx28[_0x5d50[74]]);return db[_0x5d50[56]][_0x5d50[80]](_0xe6fdx1b)[_0x5d50[45]](handleEntityNotFound(_0xe6fdx15,null,_0x5d50[77]))[_0x5d50[45]](respondWithResult(_0xe6fdx15,null,_0x5d50[77]))[_0x5d50[75]](handleError(_0xe6fdx15,null,_0x5d50[77]))};exports[_0x5d50[81]]= function(_0xe6fdx28,_0xe6fdx15){return db[_0x5d50[56]][_0x5d50[81]](_0xe6fdx28[_0x5d50[82]],{})[_0x5d50[45]](respondWithResult(_0xe6fdx15,201,_0x5d50[81]))[_0x5d50[75]](handleError(_0xe6fdx15,null,_0x5d50[81]))};exports[_0x5d50[46]]= function(_0xe6fdx28,_0xe6fdx15){if(_0xe6fdx28[_0x5d50[82]][_0x5d50[78]]){delete _0xe6fdx28[_0x5d50[82]][_0x5d50[78]]};return db[_0x5d50[56]][_0x5d50[80]]({where:{id:_0xe6fdx28[_0x5d50[79]][_0x5d50[78]]}})[_0x5d50[45]](handleEntityNotFound(_0xe6fdx15,null,_0x5d50[46]))[_0x5d50[45]](saveUpdates(_0xe6fdx28[_0x5d50[82]],null,_0x5d50[46]))[_0x5d50[45]](respondWithResult(_0xe6fdx15,null,_0x5d50[46]))[_0x5d50[75]](handleError(_0xe6fdx15,null,_0x5d50[46]))};exports[_0x5d50[48]]= function(_0xe6fdx28,_0xe6fdx15){return db[_0x5d50[56]][_0x5d50[80]]({where:{id:_0xe6fdx28[_0x5d50[79]][_0x5d50[78]]}})[_0x5d50[45]](handleEntityNotFound(_0xe6fdx15,null,_0x5d50[48]))[_0x5d50[45]](removeEntity(_0xe6fdx15,null,_0x5d50[48]))[_0x5d50[75]](handleError(_0xe6fdx15,null,_0x5d50[48]))};exports[_0x5d50[83]]= function(_0xe6fdx28,_0xe6fdx15,_0xe6fdx2c){return db[_0x5d50[86]][_0x5d50[80]]({where:{id:_0xe6fdx28[_0x5d50[79]][_0x5d50[78]]}})[_0x5d50[45]](handleEntityNotFound(_0xe6fdx15,null,_0x5d50[83]))[_0x5d50[45]](function(_0xe6fdx18){if(_0xe6fdx18){return _0xe6fdx18[_0x5d50[83]](_0xe6fdx28[_0x5d50[82]][_0x5d50[84]],_[_0x5d50[85]](_0xe6fdx28[_0x5d50[82]],[_0x5d50[84],_0x5d50[78]])|| {})};return null})[_0x5d50[45]](respondWithResult(_0xe6fdx15,null,_0x5d50[83]))[_0x5d50[75]](handleError(_0xe6fdx15,null,_0x5d50[83]))};exports[_0x5d50[87]]= function(_0xe6fdx28,_0xe6fdx18,_0xe6fdx2c){var _0xe6fdx1b={};var _0xe6fdx29={};var _0xe6fdx2d;var _0xe6fdx1c;return db[_0x5d50[56]][_0x5d50[88]]({where:{id:_0xe6fdx28[_0x5d50[79]][_0x5d50[78]]}})[_0x5d50[45]](handleEntityNotFound(_0xe6fdx18,null,_0x5d50[87]))[_0x5d50[45]](function(_0xe6fdx18){if(_0xe6fdx18){_0xe6fdx2d= _0xe6fdx18;_0xe6fdx29[_0x5d50[54]]= _[_0x5d50[57]](db[_0x5d50[86]][_0x5d50[55]]);_0xe6fdx29[_0x5d50[58]]= _[_0x5d50[57]](_0xe6fdx28[_0x5d50[58]]);_0xe6fdx29[_0x5d50[59]]= _[_0x5d50[60]](_0xe6fdx29[_0x5d50[54]],_0xe6fdx29[_0x5d50[58]]);_0xe6fdx1b[_0x5d50[61]]= _[_0x5d50[60]](_0xe6fdx29[_0x5d50[54]],qs[_0x5d50[62]](_0xe6fdx28[_0x5d50[58]][_0x5d50[62]]));_0xe6fdx1b[_0x5d50[61]]= (_0xe6fdx1b[_0x5d50[61]][_0x5d50[63]])?_0xe6fdx1b[_0x5d50[61]]:_0xe6fdx29[_0x5d50[54]];_0xe6fdx1b[_0x5d50[66]]= qs[_0x5d50[67]](_0xe6fdx28[_0x5d50[58]][_0x5d50[67]]);_0xe6fdx1b[_0x5d50[68]]= qs[_0x5d50[59]](_[_0x5d50[69]](_0xe6fdx28[_0x5d50[58]],_0xe6fdx29[_0x5d50[59]]));if(_0xe6fdx28[_0x5d50[58]][_0x5d50[70]]){_0xe6fdx1b[_0x5d50[68]]= _[_0x5d50[73]](_0xe6fdx1b[_0x5d50[68]],{$or:_[_0x5d50[72]](_0xe6fdx1b[_0x5d50[61]],function(_0xe6fdx2a){var _0xe6fdx2b={};_0xe6fdx2b[_0xe6fdx2a]= {$like:_0x5d50[71]+ _0xe6fdx28[_0x5d50[58]][_0x5d50[70]]+ _0x5d50[71]};return _0xe6fdx2b})})};_0xe6fdx1b= _[_0x5d50[73]]({},_0xe6fdx1b,_0xe6fdx28[_0x5d50[74]]);return _0xe6fdx2d[_0x5d50[87]](_0xe6fdx1b)}})[_0x5d50[45]](function(_0xe6fdx2f){if(_0xe6fdx2f){_0xe6fdx1c= _0xe6fdx2f[_0x5d50[63]];if(!_0xe6fdx28[_0x5d50[58]][_0x5d50[65]](_0x5d50[64])){_0xe6fdx1b[_0x5d50[35]]= qs[_0x5d50[35]](_0xe6fdx28[_0x5d50[58]][_0x5d50[35]]);_0xe6fdx1b[_0x5d50[34]]= qs[_0x5d50[34]](_0xe6fdx28[_0x5d50[58]][_0x5d50[34]])};return _0xe6fdx2d[_0x5d50[87]](_0xe6fdx1b)}})[_0x5d50[45]](function(_0xe6fdx2e){return _0xe6fdx2e?{count:_0xe6fdx1c,rows:_0xe6fdx2e}:null})[_0x5d50[45]](respondWithResult(_0xe6fdx18,null,_0x5d50[87]))[_0x5d50[75]](handleError(_0xe6fdx18,null,_0x5d50[87]))}
\ No newline at end of file
index 2d181b5..bc0f371 100644 (file)
@@ -1 +1 @@
-var _0xa196=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x63\x6D\x5F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xa196[0];var _=require(_0xa196[1]);var util=require(_0xa196[2]);var logger=require(_0xa196[4])(_0xa196[3]);var attributes=require(_0xa196[5]);module[_0xa196[6]]= function(_0x98b5x5,_0x98b5x6){return _0x98b5x5[_0xa196[9]](_0xa196[7],attributes,{tableName:_0xa196[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x75e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x63\x6D\x5F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x75e5[0];var _=require(_0x75e5[1]);var util=require(_0x75e5[2]);var logger=require(_0x75e5[4])(_0x75e5[3]);var attributes=require(_0x75e5[5]);module[_0x75e5[6]]= function(_0xa5a4x5,_0xa5a4x6){return _0xa5a4x5[_0x75e5[9]](_0x75e5[7],attributes,{tableName:_0x75e5[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4eb3134..1fd3082 100644 (file)
@@ -1 +1 @@
-var _0x16fa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x16fa[0];var _=require(_0x16fa[1]);var util=require(_0x16fa[2]);var moment=require(_0x16fa[3]);var BPromise=require(_0x16fa[4]);var db=require(_0x16fa[6])[_0x16fa[5]];var utils=require(_0x16fa[7]);var logger=require(_0x16fa[9])(_0x16fa[8]);var jayson=require(_0x16fa[10]);var client=jayson[_0x16fa[12]][_0x16fa[11]]({port:9002});function respondWithRpcPromise(_0x2d94xb,_0x2d94xc,_0x2d94xd){return  new BPromise(function(_0x2d94xe,_0x2d94xf){return client[_0x16fa[25]](_0x2d94xb,_0x2d94xd)[_0x16fa[24]](function(_0x2d94x11){logger[_0x16fa[17]](_0x16fa[13],_0x2d94xc,_0x16fa[16]);logger[_0x16fa[20]](_0x16fa[18],_0x2d94xc,_0x16fa[16],JSON[_0x16fa[19]](_0x2d94x11));if(_0x2d94x11[_0x16fa[14]]){if(_0x2d94x11[_0x16fa[14]][_0x16fa[21]]=== 500){logger[_0x16fa[14]](_0x16fa[13],_0x2d94xc,_0x2d94x11[_0x16fa[14]][_0x16fa[22]]);return _0x2d94xf(_0x2d94x11[_0x16fa[14]][_0x16fa[22]])};logger[_0x16fa[14]](_0x16fa[13],_0x2d94xc,_0x2d94x11[_0x16fa[14]][_0x16fa[22]]);return _0x2d94xe(_0x2d94x11[_0x16fa[14]][_0x16fa[22]])}else {logger[_0x16fa[17]](_0x16fa[13],_0x2d94xc,_0x16fa[16]);_0x2d94xe(_0x2d94x11[_0x16fa[23]][_0x16fa[22]])}})[_0x16fa[15]](function(_0x2d94x10){logger[_0x16fa[14]](_0x16fa[13],_0x2d94xc,_0x2d94x10);_0x2d94xf(_0x2d94x10)})})}
\ No newline at end of file
+var _0xac97=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xac97[0];var _=require(_0xac97[1]);var util=require(_0xac97[2]);var moment=require(_0xac97[3]);var BPromise=require(_0xac97[4]);var db=require(_0xac97[6])[_0xac97[5]];var utils=require(_0xac97[7]);var logger=require(_0xac97[9])(_0xac97[8]);var jayson=require(_0xac97[10]);var client=jayson[_0xac97[12]][_0xac97[11]]({port:9002});function respondWithRpcPromise(_0xd40dxb,_0xd40dxc,_0xd40dxd){return  new BPromise(function(_0xd40dxe,_0xd40dxf){return client[_0xac97[25]](_0xd40dxb,_0xd40dxd)[_0xac97[24]](function(_0xd40dx11){logger[_0xac97[17]](_0xac97[13],_0xd40dxc,_0xac97[16]);logger[_0xac97[20]](_0xac97[18],_0xd40dxc,_0xac97[16],JSON[_0xac97[19]](_0xd40dx11));if(_0xd40dx11[_0xac97[14]]){if(_0xd40dx11[_0xac97[14]][_0xac97[21]]=== 500){logger[_0xac97[14]](_0xac97[13],_0xd40dxc,_0xd40dx11[_0xac97[14]][_0xac97[22]]);return _0xd40dxf(_0xd40dx11[_0xac97[14]][_0xac97[22]])};logger[_0xac97[14]](_0xac97[13],_0xd40dxc,_0xd40dx11[_0xac97[14]][_0xac97[22]]);return _0xd40dxe(_0xd40dx11[_0xac97[14]][_0xac97[22]])}else {logger[_0xac97[17]](_0xac97[13],_0xd40dxc,_0xac97[16]);_0xd40dxe(_0xd40dx11[_0xac97[23]][_0xac97[22]])}})[_0xac97[15]](function(_0xd40dx10){logger[_0xac97[14]](_0xac97[13],_0xd40dxc,_0xd40dx10);_0xd40dxf(_0xd40dx10)})})}
\ No newline at end of file
index d62f2cf..bc2da35 100644 (file)
@@ -1 +1 @@
-var _0x4dbd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4dbd[0];var multer=require(_0x4dbd[1]);var util=require(_0x4dbd[2]);var path=require(_0x4dbd[3]);var express=require(_0x4dbd[4]);var router=express.Router();var auth=require(_0x4dbd[5]);var config=require(_0x4dbd[6]);var controller=require(_0x4dbd[7]);router[_0x4dbd[11]](_0x4dbd[8],auth[_0x4dbd[9]](),controller[_0x4dbd[10]]);router[_0x4dbd[11]](_0x4dbd[12],auth[_0x4dbd[9]](),controller[_0x4dbd[13]]);router[_0x4dbd[11]](_0x4dbd[14],auth[_0x4dbd[9]](),controller[_0x4dbd[15]]);router[_0x4dbd[17]](_0x4dbd[8],auth[_0x4dbd[9]](),controller[_0x4dbd[16]]);router[_0x4dbd[17]](_0x4dbd[14],auth[_0x4dbd[9]](),controller[_0x4dbd[18]]);router[_0x4dbd[20]](_0x4dbd[12],auth[_0x4dbd[9]](),controller[_0x4dbd[19]]);router[_0x4dbd[22]](_0x4dbd[12],auth[_0x4dbd[9]](),controller[_0x4dbd[21]]);module[_0x4dbd[23]]= router
\ No newline at end of file
+var _0x6bf5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6bf5[0];var multer=require(_0x6bf5[1]);var util=require(_0x6bf5[2]);var path=require(_0x6bf5[3]);var express=require(_0x6bf5[4]);var router=express.Router();var auth=require(_0x6bf5[5]);var config=require(_0x6bf5[6]);var controller=require(_0x6bf5[7]);router[_0x6bf5[11]](_0x6bf5[8],auth[_0x6bf5[9]](),controller[_0x6bf5[10]]);router[_0x6bf5[11]](_0x6bf5[12],auth[_0x6bf5[9]](),controller[_0x6bf5[13]]);router[_0x6bf5[11]](_0x6bf5[14],auth[_0x6bf5[9]](),controller[_0x6bf5[15]]);router[_0x6bf5[17]](_0x6bf5[8],auth[_0x6bf5[9]](),controller[_0x6bf5[16]]);router[_0x6bf5[17]](_0x6bf5[14],auth[_0x6bf5[9]](),controller[_0x6bf5[18]]);router[_0x6bf5[20]](_0x6bf5[12],auth[_0x6bf5[9]](),controller[_0x6bf5[19]]);router[_0x6bf5[22]](_0x6bf5[12],auth[_0x6bf5[9]](),controller[_0x6bf5[21]]);module[_0x6bf5[23]]= router
\ No newline at end of file
index 56e0d15..e316898 100644 (file)
@@ -1 +1 @@
-var _0xa317=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x74\x61\x67\x73","\x3B","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x65\x6E\x64\x73\x57\x69\x74\x68","\x70\x6F\x70"];_0xa317[0];var _=require(_0xa317[1]);var Sequelize=require(_0xa317[2]);module[_0xa317[3]]= {firstName:{type:Sequelize[_0xa317[4]],allowNull:false},lastName:{type:Sequelize[_0xa317[4]]},tags:{type:Sequelize[_0xa317[4]],set:function(_0x13e4x3){this[_0xa317[8]](_0xa317[5],_0x13e4x3?_0x13e4x3[_0xa317[7]](_0xa317[6])+ _0xa317[6]:null)},get:function(){var _0x13e4x4=this[_0xa317[9]](_0xa317[5])?this[_0xa317[9]](_0xa317[5])[_0xa317[10]](_0xa317[6]):[];if(_[_0xa317[11]](this[_0xa317[9]](_0xa317[5]),_0xa317[6])){_0x13e4x4[_0xa317[12]]()};return _0x13e4x4}},street:{type:Sequelize[_0xa317[4]]},postalCode:{type:Sequelize[_0xa317[4]]},city:{type:Sequelize[_0xa317[4]]},country:{type:Sequelize[_0xa317[4]]},dateOfBirth:{type:Sequelize[_0xa317[4]]},description:{type:Sequelize[_0xa317[4]]},phone:{type:Sequelize[_0xa317[4]],allowNull:false},mobile:{type:Sequelize[_0xa317[4]]},fax:{type:Sequelize[_0xa317[4]]},email:{type:Sequelize[_0xa317[4]],validate:{isEmail:true}},url:{type:Sequelize[_0xa317[4]]}}
\ No newline at end of file
+var _0x2262=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x74\x61\x67\x73","\x3B","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x65\x6E\x64\x73\x57\x69\x74\x68","\x70\x6F\x70"];_0x2262[0];var _=require(_0x2262[1]);var Sequelize=require(_0x2262[2]);module[_0x2262[3]]= {firstName:{type:Sequelize[_0x2262[4]],allowNull:false},lastName:{type:Sequelize[_0x2262[4]]},tags:{type:Sequelize[_0x2262[4]],set:function(_0x343cx3){this[_0x2262[8]](_0x2262[5],_0x343cx3?_0x343cx3[_0x2262[7]](_0x2262[6])+ _0x2262[6]:null)},get:function(){var _0x343cx4=this[_0x2262[9]](_0x2262[5])?this[_0x2262[9]](_0x2262[5])[_0x2262[10]](_0x2262[6]):[];if(_[_0x2262[11]](this[_0x2262[9]](_0x2262[5]),_0x2262[6])){_0x343cx4[_0x2262[12]]()};return _0x343cx4}},street:{type:Sequelize[_0x2262[4]]},postalCode:{type:Sequelize[_0x2262[4]]},city:{type:Sequelize[_0x2262[4]]},country:{type:Sequelize[_0x2262[4]]},dateOfBirth:{type:Sequelize[_0x2262[4]]},description:{type:Sequelize[_0x2262[4]]},phone:{type:Sequelize[_0x2262[4]],allowNull:false},mobile:{type:Sequelize[_0x2262[4]]},fax:{type:Sequelize[_0x2262[4]]},email:{type:Sequelize[_0x2262[4]],validate:{isEmail:true}},url:{type:Sequelize[_0x2262[4]]}}
\ No newline at end of file
index 094784a..24c688d 100644 (file)
@@ -1 +1 @@
-var _0x4b6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x63\x61\x74\x63\x68","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x64\x65\x73\x63\x72\x69\x62\x65","\x63\x72\x65\x61\x74\x65","\x74\x61\x67\x73","\x62\x6F\x64\x79","\x69\x73\x41\x72\x72\x61\x79","\x6B\x65\x79\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x4C\x69\x73\x74\x49\x64","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x65\x61\x63\x68","\x69\x6E\x64\x65\x78","\x4C\x69\x73\x74","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x70\x69\x63\x6B","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x66\x5F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x6F\x64\x65\x6C","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x66\x69\x6C\x74\x65\x72","\x25","\x3B\x25","\x43\x6F\x6D\x70\x61\x6E\x79\x49\x64","\x75\x6E\x69\x6F\x6E","\x69\x6E\x63\x6C\x75\x64\x65","\x43\x6D\x4C\x69\x73\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x6F\x6D\x69\x74","\x73\x68\x6F\x77","\x63\x66\x5F\x25\x64","\x67\x65\x74","\x24\x61\x6E\x64","\x70\x68\x6F\x6E\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x69\x73\x45\x6D\x70\x74\x79","\x69\x64\x20\x3D\x20\x3F","\x73\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x74\x61\x62\x6C\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x4b6a[0];var jsonpatch=require(_0x4b6a[1]);var rp=require(_0x4b6a[2]);var moment=require(_0x4b6a[3]);var BPromise=require(_0x4b6a[4]);var util=require(_0x4b6a[5]);var path=require(_0x4b6a[6]);var sox=require(_0x4b6a[7]);var ejs=require(_0x4b6a[8]);var fs=require(_0x4b6a[9]);var _=require(_0x4b6a[10]);var squel=require(_0x4b6a[11]);var crypto=require(_0x4b6a[12]);var jsforce=require(_0x4b6a[13]);var toCsv=require(_0x4b6a[14]);var qs=require(_0x4b6a[15]);var logger=require(_0x4b6a[17])(_0x4b6a[16]);var utils=require(_0x4b6a[18]);var config=require(_0x4b6a[19]);var db=require(_0x4b6a[21])[_0x4b6a[20]];function respondWithStatusCode(_0x5f31x15,_0x5f31x16,_0x5f31x17){_0x5f31x16= _0x5f31x16|| 204;return function(_0x5f31x18){if(_0x5f31x18){logger[_0x4b6a[24]](_0x4b6a[22],_0x5f31x17,_0x5f31x16,_0x4b6a[23]);logger[_0x4b6a[26]](_0x4b6a[25],_0x5f31x17,_0x5f31x16,_0x4b6a[23]);return _0x5f31x15[_0x4b6a[27]](_0x5f31x16)};return _0x5f31x15[_0x4b6a[29]](304)[_0x4b6a[28]]()}}function respondWithResult(_0x5f31x15,_0x5f31x16,_0x5f31x17){_0x5f31x16= _0x5f31x16|| 200;return function(_0x5f31x18){if(_0x5f31x18){logger[_0x4b6a[24]](_0x4b6a[22],_0x5f31x17,_0x5f31x16,_0x4b6a[30]);logger[_0x4b6a[26]](_0x4b6a[25],_0x5f31x17,_0x5f31x16,_0x4b6a[30],JSON[_0x4b6a[31]](_0x5f31x18));return _0x5f31x15[_0x4b6a[29]](_0x5f31x16)[_0x4b6a[32]](_0x5f31x18)};return _0x5f31x15[_0x4b6a[29]](304)[_0x4b6a[28]]()}}function respondWithFilteredResult(_0x5f31x15,_0x5f31x1b,_0x5f31x17){return function(_0x5f31x18){if(_0x5f31x18){var _0x5f31x1c=_0x5f31x18[_0x4b6a[33]],_0x5f31x1d=_0x5f31x1b[_0x4b6a[34]],_0x5f31x1e=_0x5f31x1b[_0x4b6a[34]]+ _0x5f31x1b[_0x4b6a[35]],_0x5f31x16;if(_0x5f31x1e>= _0x5f31x1c){_0x5f31x1e= _0x5f31x1c;_0x5f31x16= 200}else {_0x5f31x16= 206};_0x5f31x15[_0x4b6a[29]](_0x5f31x16);logger[_0x4b6a[24]](_0x4b6a[22],_0x5f31x17,_0x5f31x16,_0x4b6a[36]);logger[_0x4b6a[26]](_0x4b6a[25],_0x5f31x17,_0x5f31x16,_0x4b6a[30],JSON[_0x4b6a[31]](_0x5f31x18));return _0x5f31x15[_0x4b6a[40]](_0x4b6a[37],_0x5f31x1d+ _0x4b6a[38]+ _0x5f31x1e+ _0x4b6a[39]+ _0x5f31x1c)[_0x4b6a[32]](_0x5f31x18)};return null}}function patchUpdates(_0x5f31x20){return function(_0x5f31x18){try{jsonpatch[_0x4b6a[41]](_0x5f31x18,_0x5f31x20,true)}catch(err){return BPromise[_0x4b6a[42]](err)};return _0x5f31x18[_0x4b6a[43]]()}}function saveUpdates(_0x5f31x22,_0x5f31x16,_0x5f31x17){return function(_0x5f31x18){if(_0x5f31x18){return _0x5f31x18[_0x4b6a[46]](_0x5f31x22)[_0x4b6a[45]](function(_0x5f31x23){logger[_0x4b6a[24]](_0x4b6a[22],_0x5f31x17,_0x5f31x16,_0x4b6a[44]);logger[_0x4b6a[26]](_0x4b6a[25],_0x5f31x17,_0x5f31x16,_0x4b6a[44],JSON[_0x4b6a[31]](_0x5f31x18));return _0x5f31x23})};return null}}function removeEntity(_0x5f31x15,_0x5f31x16,_0x5f31x17){return function(_0x5f31x18){if(_0x5f31x18){return _0x5f31x18[_0x4b6a[48]]()[_0x4b6a[45]](function(){logger[_0x4b6a[24]](_0x4b6a[22],_0x5f31x17,_0x5f31x16,_0x4b6a[47]);logger[_0x4b6a[26]](_0x4b6a[25],_0x5f31x17,_0x5f31x16,_0x4b6a[47],JSON[_0x4b6a[31]](_0x5f31x18));_0x5f31x15[_0x4b6a[29]](204)[_0x4b6a[28]]()})}}}function handleEntityNotFound(_0x5f31x15,_0x5f31x16,_0x5f31x17){return function(_0x5f31x18){if(!_0x5f31x18){logger[_0x4b6a[50]](_0x4b6a[22],_0x5f31x17,404,_0x4b6a[49]);_0x5f31x15[_0x4b6a[29]](404)[_0x4b6a[28]]();return null};return _0x5f31x18}}function handleError(_0x5f31x15,_0x5f31x16,_0x5f31x17){_0x5f31x16= _0x5f31x16|| 500;return function(_0x5f31x27){logger[_0x4b6a[50]](_0x4b6a[22],_0x5f31x17,_0x5f31x16,JSON[_0x4b6a[31]](_0x5f31x27));delete _0x5f31x27[_0x4b6a[51]];_0x5f31x15[_0x4b6a[29]](_0x5f31x16)[_0x4b6a[52]](_0x5f31x27)}}exports[_0x4b6a[48]]= function(_0x5f31x28,_0x5f31x15){return db[_0x4b6a[57]][_0x4b6a[56]]({where:{id:_0x5f31x28[_0x4b6a[55]][_0x4b6a[54]]}})[_0x4b6a[45]](handleEntityNotFound(_0x5f31x15,null,_0x4b6a[48]))[_0x4b6a[45]](removeEntity(_0x5f31x15,null,_0x4b6a[48]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[48]))};exports[_0x4b6a[58]]= function(_0x5f31x28,_0x5f31x15){return db[_0x4b6a[57]][_0x4b6a[58]]()[_0x4b6a[45]](respondWithResult(_0x5f31x15,null,_0x4b6a[58]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[58]))};exports[_0x4b6a[59]]= function(_0x5f31x28,_0x5f31x15){return db[_0x4b6a[57]][_0x4b6a[58]]()[_0x4b6a[45]](function(_0x5f31x29){if(_0x5f31x28[_0x4b6a[61]][_0x4b6a[60]]&& _[_0x4b6a[62]](_0x5f31x28[_0x4b6a[61]][_0x4b6a[60]])){_0x5f31x28[_0x4b6a[61]][_0x4b6a[60]]= JSON[_0x4b6a[31]](_0x5f31x28[_0x4b6a[61]][_0x4b6a[60]])};return db[_0x4b6a[57]][_0x4b6a[59]](_0x5f31x28[_0x4b6a[61]],{fields:_[_0x4b6a[63]](_0x5f31x29),raw:true})})[_0x4b6a[45]](respondWithResult(_0x5f31x15,201,_0x4b6a[59]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[59]))};exports[_0x4b6a[64]]= function(_0x5f31x28,_0x5f31x15){var _0x5f31x2a=[];var _0x5f31x2b=0;var _0x5f31x2c=0;var _0x5f31x2d=0;return db[_0x4b6a[57]][_0x4b6a[58]]()[_0x4b6a[45]](function(_0x5f31x29){return BPromise[_0x4b6a[73]](_0x5f31x28[_0x4b6a[61]],function(_0x5f31x2f){var _0x5f31x1b={where:{$or:[]},defaults:_0x5f31x2f,fields:_[_0x4b6a[63]](_0x5f31x29),raw:true};if(_0x5f31x2f[_0x4b6a[65]]){for(var _0x5f31x30=0;_0x5f31x30< _0x5f31x2f[_0x4b6a[65]][_0x4b6a[66]];_0x5f31x30++){var _0x5f31x31={};_0x5f31x31[_0x5f31x2f[_0x4b6a[65]][_0x5f31x30]]= _0x5f31x2f[_0x5f31x2f[_0x4b6a[65]][_0x5f31x30]];_0x5f31x1b[_0x4b6a[69]][_0x4b6a[68]][_0x4b6a[67]](_0x5f31x31)};_0x5f31x1b[_0x4b6a[69]][_0x4b6a[70]]= _0x5f31x2f[_0x4b6a[70]]};return db[_0x4b6a[57]][_0x4b6a[72]](_0x5f31x1b)[_0x4b6a[71]](function(_0x5f31x32,_0x5f31x33){if(_0x5f31x33){_0x5f31x2b++}else {_0x5f31x2d++}})[_0x4b6a[53]](function(_0x5f31x27){console[_0x4b6a[50]](_0x5f31x27);_0x5f31x2c++})})})[_0x4b6a[45]](function(_0x5f31x2e){if(_0x5f31x2e){return {success:_0x5f31x2b,failure:_0x5f31x2c,duplicates:_0x5f31x2d}}})[_0x4b6a[45]](respondWithResult(_0x5f31x15,201,_0x4b6a[64]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[64]))};exports[_0x4b6a[74]]= function(_0x5f31x28,_0x5f31x15,_0x5f31x34){var _0x5f31x35={count:0,rows:[]};var _0x5f31x1b={};var _0x5f31x36={};return db[_0x4b6a[57]][_0x4b6a[58]]()[_0x4b6a[45]](function(_0x5f31x29){_0x5f31x36[_0x4b6a[86]]= _[_0x4b6a[63]](_0x5f31x29);_0x5f31x36[_0x4b6a[87]]= _[_0x4b6a[63]](_0x5f31x28[_0x4b6a[87]]);_0x5f31x36[_0x4b6a[88]]= _[_0x4b6a[89]](_0x5f31x36[_0x4b6a[86]],_0x5f31x36[_0x4b6a[87]]);_0x5f31x1b[_0x4b6a[90]]= _[_0x4b6a[89]](_0x5f31x36[_0x4b6a[86]],qs[_0x4b6a[91]](_0x5f31x28[_0x4b6a[87]][_0x4b6a[91]]));_0x5f31x1b[_0x4b6a[90]]= (_0x5f31x1b[_0x4b6a[90]][_0x4b6a[66]])?_0x5f31x1b[_0x4b6a[90]]:_0x5f31x36[_0x4b6a[86]];_0x5f31x1b[_0x4b6a[35]]= qs[_0x4b6a[35]](_0x5f31x28[_0x4b6a[87]][_0x4b6a[35]]);_0x5f31x1b[_0x4b6a[34]]= qs[_0x4b6a[34]](_0x5f31x28[_0x4b6a[87]][_0x4b6a[34]]);_0x5f31x1b[_0x4b6a[92]]= qs[_0x4b6a[93]](_0x5f31x28[_0x4b6a[87]][_0x4b6a[93]]);_0x5f31x1b[_0x4b6a[69]]= qs[_0x4b6a[88]](_[_0x4b6a[78]](_0x5f31x28[_0x4b6a[87]],_0x5f31x36[_0x4b6a[88]]));if(_0x5f31x28[_0x4b6a[87]][_0x4b6a[94]]){_0x5f31x1b[_0x4b6a[69]]= _[_0x4b6a[83]](_0x5f31x1b[_0x4b6a[69]],{$or:_[_0x4b6a[82]](_0x5f31x1b[_0x4b6a[90]],function(_0x5f31x3b){var _0x5f31x3c={};_0x5f31x3c[_0x5f31x3b]= {$like:_0x4b6a[95]+ _0x5f31x28[_0x4b6a[87]][_0x4b6a[94]]+ _0x4b6a[95]};return _0x5f31x3c})})};if(_0x5f31x28[_0x4b6a[87]][_0x4b6a[60]]){_0x5f31x1b[_0x4b6a[69]][_0x4b6a[60]]= {$or:_[_0x4b6a[82]](_0x5f31x1b[_0x4b6a[69]][_0x4b6a[60]],function(_0x5f31x3b){return {$like:_0x4b6a[95]+ _0x5f31x3b+ _0x4b6a[96]}})}};_0x5f31x1b[_0x4b6a[90]]= _[_0x4b6a[98]](_0x5f31x1b[_0x4b6a[90]],[_0x4b6a[70],_0x4b6a[97]]);_0x5f31x1b[_0x4b6a[99]]= [{model:db[_0x4b6a[100]],as:_0x4b6a[75],attributes:[_0x4b6a[54]],include:[{model:db[_0x4b6a[101]],as:_0x4b6a[76],attributes:[_0x4b6a[54]]}]}];_0x5f31x1b= _[_0x4b6a[83]]({},_0x5f31x1b,_0x5f31x28[_0x4b6a[102]]);return db[_0x4b6a[57]][_0x4b6a[33]](_[_0x4b6a[103]](_0x5f31x1b,[_0x4b6a[99],_0x4b6a[90]]))})[_0x4b6a[45]](function(_0x5f31x1c){_0x5f31x35[_0x4b6a[33]]= _0x5f31x1c;return db[_0x4b6a[57]][_0x4b6a[85]](_0x5f31x1b)})[_0x4b6a[45]](function(_0x5f31x2e){for(var _0x5f31x37=0;_0x5f31x37< _0x5f31x2e[_0x4b6a[66]];_0x5f31x37++){if(_0x5f31x2e[_0x5f31x37][_0x4b6a[75]]){if(_0x5f31x2e[_0x5f31x37][_0x4b6a[75]][_0x4b6a[76]][_0x4b6a[66]]){var _0x5f31x38=_[_0x4b6a[78]](_0x5f31x2e[_0x5f31x37],_[_0x4b6a[63]](db[_0x4b6a[57]][_0x4b6a[77]]));var _0x5f31x39=_[_0x4b6a[78]](_0x5f31x2e[_0x5f31x37][_0x4b6a[79]],_[_0x4b6a[82]](_0x5f31x2e[_0x5f31x37][_0x4b6a[75]].CustomFields,function(_0x5f31x3a){return util[_0x4b6a[81]](_0x4b6a[80],_0x5f31x3a[_0x4b6a[54]])}));_0x5f31x35[_0x4b6a[84]][_0x4b6a[67]](_[_0x4b6a[83]](_0x5f31x38,_0x5f31x39))}else {_0x5f31x35[_0x4b6a[84]][_0x4b6a[67]](_0x5f31x2e[_0x5f31x37])}}else {_0x5f31x35[_0x4b6a[84]][_0x4b6a[67]](_[_0x4b6a[78]](_0x5f31x2e[_0x5f31x37],_[_0x4b6a[63]](db[_0x4b6a[57]][_0x4b6a[77]])))}};return _0x5f31x35})[_0x4b6a[45]](respondWithFilteredResult(_0x5f31x15,_0x5f31x1b,_0x4b6a[74]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[74]))};exports[_0x4b6a[104]]= function(_0x5f31x28,_0x5f31x15,_0x5f31x34){var _0x5f31x3d;return db[_0x4b6a[57]][_0x4b6a[58]]()[_0x4b6a[45]](function(_0x5f31x29){return db[_0x4b6a[57]][_0x4b6a[56]]({where:{id:_0x5f31x28[_0x4b6a[55]][_0x4b6a[54]]},attributes:_[_0x4b6a[63]](_0x5f31x29)})})[_0x4b6a[45]](function(_0x5f31x18){_0x5f31x3d= _0x5f31x18[_0x4b6a[106]]({plain:true});var _0x5f31x3f={where:{$and:[{ListId:{$ne:null}}]}};if(_0x5f31x18&& _0x5f31x18[_0x4b6a[70]]){if(_0x5f31x18[_0x4b6a[70]]){_0x5f31x3f[_0x4b6a[69]][_0x4b6a[107]][_0x4b6a[67]]({ListId:{$ne:_0x5f31x18[_0x4b6a[70]]}})}};return db[_0x4b6a[101]][_0x4b6a[85]](_0x5f31x3f)})[_0x4b6a[45]](function(_0x5f31x3e){return _[_0x4b6a[103]](_0x5f31x3d,_[_0x4b6a[82]](_0x5f31x3e,function(_0x5f31x3a){return util[_0x4b6a[81]](_0x4b6a[105],_0x5f31x3a[_0x4b6a[54]])}))})[_0x4b6a[45]](handleEntityNotFound(_0x5f31x15,null,_0x4b6a[104]))[_0x4b6a[45]](respondWithResult(_0x5f31x15,null,_0x4b6a[104]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[104]))};exports[_0x4b6a[46]]= function(_0x5f31x28,_0x5f31x15){var _0x5f31x3d;if(_0x5f31x28[_0x4b6a[61]][_0x4b6a[54]]){delete _0x5f31x28[_0x4b6a[61]][_0x4b6a[54]]};return db[_0x4b6a[57]][_0x4b6a[56]]({where:{id:_0x5f31x28[_0x4b6a[55]][_0x4b6a[54]]}})[_0x4b6a[45]](handleEntityNotFound(_0x5f31x15,null,_0x4b6a[46]))[_0x4b6a[45]](saveUpdates(_0x5f31x28[_0x4b6a[61]],null,_0x4b6a[46]))[_0x4b6a[45]](function(_0x5f31x18){_0x5f31x3d= _0x5f31x18;var _0x5f31x3f={where:{$and:[{ListId:{$ne:null}}]}};if(_0x5f31x18&& _0x5f31x18[_0x4b6a[70]]){if(_0x5f31x18[_0x4b6a[70]]){_0x5f31x3f[_0x4b6a[69]][_0x4b6a[107]][_0x4b6a[67]]({ListId:{$ne:_0x5f31x18[_0x4b6a[70]]}})}};return db[_0x4b6a[101]][_0x4b6a[85]](_0x5f31x3f)})[_0x4b6a[45]](function(_0x5f31x3e){if(_0x5f31x3e){return _[_0x4b6a[103]](_0x5f31x28[_0x4b6a[61]],_[_0x4b6a[82]](_0x5f31x3e,function(_0x5f31x3a){return util[_0x4b6a[81]](_0x4b6a[105],_0x5f31x3a[_0x4b6a[54]])}),_[_0x4b6a[63]](db[_0x4b6a[57]][_0x4b6a[77]]))}})[_0x4b6a[45]](function(_0x5f31x39){if(_0x5f31x39&&  !_[_0x4b6a[110]](_0x5f31x39)){return db[_0x4b6a[115]][_0x4b6a[87]](squel[_0x4b6a[46]]()[_0x4b6a[114]](_0x4b6a[113])[_0x4b6a[112]](_0x5f31x39)[_0x4b6a[69]](_0x4b6a[111],_0x5f31x28[_0x4b6a[55]][_0x4b6a[54]]).toString())}})[_0x4b6a[45]](function(){if(_0x5f31x28[_0x4b6a[61]][_0x4b6a[108]]&& _0x5f31x3d){return db[_0x4b6a[109]][_0x4b6a[46]]({phone:_0x5f31x28[_0x4b6a[61]][_0x4b6a[108]]},{where:{ContactId:_0x5f31x3d[_0x4b6a[54]]}})}})[_0x4b6a[45]](function(){return _0x5f31x3d})[_0x4b6a[45]](respondWithResult(_0x5f31x15,null,_0x4b6a[46]))[_0x4b6a[53]](handleError(_0x5f31x15,null,_0x4b6a[46]))}
\ No newline at end of file
+var _0x3ca7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x63\x61\x74\x63\x68","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x64\x65\x73\x63\x72\x69\x62\x65","\x63\x72\x65\x61\x74\x65","\x74\x61\x67\x73","\x62\x6F\x64\x79","\x69\x73\x41\x72\x72\x61\x79","\x6B\x65\x79\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x4C\x69\x73\x74\x49\x64","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x65\x61\x63\x68","\x69\x6E\x64\x65\x78","\x4C\x69\x73\x74","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x70\x69\x63\x6B","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x66\x5F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x6F\x64\x65\x6C","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x66\x69\x6C\x74\x65\x72","\x25","\x3B\x25","\x43\x6F\x6D\x70\x61\x6E\x79\x49\x64","\x75\x6E\x69\x6F\x6E","\x69\x6E\x63\x6C\x75\x64\x65","\x43\x6D\x4C\x69\x73\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x6F\x6D\x69\x74","\x73\x68\x6F\x77","\x63\x66\x5F\x25\x64","\x67\x65\x74","\x24\x61\x6E\x64","\x70\x68\x6F\x6E\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x69\x73\x45\x6D\x70\x74\x79","\x69\x64\x20\x3D\x20\x3F","\x73\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x74\x61\x62\x6C\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x3ca7[0];var jsonpatch=require(_0x3ca7[1]);var rp=require(_0x3ca7[2]);var moment=require(_0x3ca7[3]);var BPromise=require(_0x3ca7[4]);var util=require(_0x3ca7[5]);var path=require(_0x3ca7[6]);var sox=require(_0x3ca7[7]);var ejs=require(_0x3ca7[8]);var fs=require(_0x3ca7[9]);var _=require(_0x3ca7[10]);var squel=require(_0x3ca7[11]);var crypto=require(_0x3ca7[12]);var jsforce=require(_0x3ca7[13]);var toCsv=require(_0x3ca7[14]);var qs=require(_0x3ca7[15]);var logger=require(_0x3ca7[17])(_0x3ca7[16]);var utils=require(_0x3ca7[18]);var config=require(_0x3ca7[19]);var db=require(_0x3ca7[21])[_0x3ca7[20]];function respondWithStatusCode(_0xff43x15,_0xff43x16,_0xff43x17){_0xff43x16= _0xff43x16|| 204;return function(_0xff43x18){if(_0xff43x18){logger[_0x3ca7[24]](_0x3ca7[22],_0xff43x17,_0xff43x16,_0x3ca7[23]);logger[_0x3ca7[26]](_0x3ca7[25],_0xff43x17,_0xff43x16,_0x3ca7[23]);return _0xff43x15[_0x3ca7[27]](_0xff43x16)};return _0xff43x15[_0x3ca7[29]](304)[_0x3ca7[28]]()}}function respondWithResult(_0xff43x15,_0xff43x16,_0xff43x17){_0xff43x16= _0xff43x16|| 200;return function(_0xff43x18){if(_0xff43x18){logger[_0x3ca7[24]](_0x3ca7[22],_0xff43x17,_0xff43x16,_0x3ca7[30]);logger[_0x3ca7[26]](_0x3ca7[25],_0xff43x17,_0xff43x16,_0x3ca7[30],JSON[_0x3ca7[31]](_0xff43x18));return _0xff43x15[_0x3ca7[29]](_0xff43x16)[_0x3ca7[32]](_0xff43x18)};return _0xff43x15[_0x3ca7[29]](304)[_0x3ca7[28]]()}}function respondWithFilteredResult(_0xff43x15,_0xff43x1b,_0xff43x17){return function(_0xff43x18){if(_0xff43x18){var _0xff43x1c=_0xff43x18[_0x3ca7[33]],_0xff43x1d=_0xff43x1b[_0x3ca7[34]],_0xff43x1e=_0xff43x1b[_0x3ca7[34]]+ _0xff43x1b[_0x3ca7[35]],_0xff43x16;if(_0xff43x1e>= _0xff43x1c){_0xff43x1e= _0xff43x1c;_0xff43x16= 200}else {_0xff43x16= 206};_0xff43x15[_0x3ca7[29]](_0xff43x16);logger[_0x3ca7[24]](_0x3ca7[22],_0xff43x17,_0xff43x16,_0x3ca7[36]);logger[_0x3ca7[26]](_0x3ca7[25],_0xff43x17,_0xff43x16,_0x3ca7[30],JSON[_0x3ca7[31]](_0xff43x18));return _0xff43x15[_0x3ca7[40]](_0x3ca7[37],_0xff43x1d+ _0x3ca7[38]+ _0xff43x1e+ _0x3ca7[39]+ _0xff43x1c)[_0x3ca7[32]](_0xff43x18)};return null}}function patchUpdates(_0xff43x20){return function(_0xff43x18){try{jsonpatch[_0x3ca7[41]](_0xff43x18,_0xff43x20,true)}catch(err){return BPromise[_0x3ca7[42]](err)};return _0xff43x18[_0x3ca7[43]]()}}function saveUpdates(_0xff43x22,_0xff43x16,_0xff43x17){return function(_0xff43x18){if(_0xff43x18){return _0xff43x18[_0x3ca7[46]](_0xff43x22)[_0x3ca7[45]](function(_0xff43x23){logger[_0x3ca7[24]](_0x3ca7[22],_0xff43x17,_0xff43x16,_0x3ca7[44]);logger[_0x3ca7[26]](_0x3ca7[25],_0xff43x17,_0xff43x16,_0x3ca7[44],JSON[_0x3ca7[31]](_0xff43x18));return _0xff43x23})};return null}}function removeEntity(_0xff43x15,_0xff43x16,_0xff43x17){return function(_0xff43x18){if(_0xff43x18){return _0xff43x18[_0x3ca7[48]]()[_0x3ca7[45]](function(){logger[_0x3ca7[24]](_0x3ca7[22],_0xff43x17,_0xff43x16,_0x3ca7[47]);logger[_0x3ca7[26]](_0x3ca7[25],_0xff43x17,_0xff43x16,_0x3ca7[47],JSON[_0x3ca7[31]](_0xff43x18));_0xff43x15[_0x3ca7[29]](204)[_0x3ca7[28]]()})}}}function handleEntityNotFound(_0xff43x15,_0xff43x16,_0xff43x17){return function(_0xff43x18){if(!_0xff43x18){logger[_0x3ca7[50]](_0x3ca7[22],_0xff43x17,404,_0x3ca7[49]);_0xff43x15[_0x3ca7[29]](404)[_0x3ca7[28]]();return null};return _0xff43x18}}function handleError(_0xff43x15,_0xff43x16,_0xff43x17){_0xff43x16= _0xff43x16|| 500;return function(_0xff43x27){logger[_0x3ca7[50]](_0x3ca7[22],_0xff43x17,_0xff43x16,JSON[_0x3ca7[31]](_0xff43x27));delete _0xff43x27[_0x3ca7[51]];_0xff43x15[_0x3ca7[29]](_0xff43x16)[_0x3ca7[52]](_0xff43x27)}}exports[_0x3ca7[48]]= function(_0xff43x28,_0xff43x15){return db[_0x3ca7[57]][_0x3ca7[56]]({where:{id:_0xff43x28[_0x3ca7[55]][_0x3ca7[54]]}})[_0x3ca7[45]](handleEntityNotFound(_0xff43x15,null,_0x3ca7[48]))[_0x3ca7[45]](removeEntity(_0xff43x15,null,_0x3ca7[48]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[48]))};exports[_0x3ca7[58]]= function(_0xff43x28,_0xff43x15){return db[_0x3ca7[57]][_0x3ca7[58]]()[_0x3ca7[45]](respondWithResult(_0xff43x15,null,_0x3ca7[58]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[58]))};exports[_0x3ca7[59]]= function(_0xff43x28,_0xff43x15){return db[_0x3ca7[57]][_0x3ca7[58]]()[_0x3ca7[45]](function(_0xff43x29){if(_0xff43x28[_0x3ca7[61]][_0x3ca7[60]]&& _[_0x3ca7[62]](_0xff43x28[_0x3ca7[61]][_0x3ca7[60]])){_0xff43x28[_0x3ca7[61]][_0x3ca7[60]]= JSON[_0x3ca7[31]](_0xff43x28[_0x3ca7[61]][_0x3ca7[60]])};return db[_0x3ca7[57]][_0x3ca7[59]](_0xff43x28[_0x3ca7[61]],{fields:_[_0x3ca7[63]](_0xff43x29),raw:true})})[_0x3ca7[45]](respondWithResult(_0xff43x15,201,_0x3ca7[59]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[59]))};exports[_0x3ca7[64]]= function(_0xff43x28,_0xff43x15){var _0xff43x2a=[];var _0xff43x2b=0;var _0xff43x2c=0;var _0xff43x2d=0;return db[_0x3ca7[57]][_0x3ca7[58]]()[_0x3ca7[45]](function(_0xff43x29){return BPromise[_0x3ca7[73]](_0xff43x28[_0x3ca7[61]],function(_0xff43x2f){var _0xff43x1b={where:{$or:[]},defaults:_0xff43x2f,fields:_[_0x3ca7[63]](_0xff43x29),raw:true};if(_0xff43x2f[_0x3ca7[65]]){for(var _0xff43x30=0;_0xff43x30< _0xff43x2f[_0x3ca7[65]][_0x3ca7[66]];_0xff43x30++){var _0xff43x31={};_0xff43x31[_0xff43x2f[_0x3ca7[65]][_0xff43x30]]= _0xff43x2f[_0xff43x2f[_0x3ca7[65]][_0xff43x30]];_0xff43x1b[_0x3ca7[69]][_0x3ca7[68]][_0x3ca7[67]](_0xff43x31)};_0xff43x1b[_0x3ca7[69]][_0x3ca7[70]]= _0xff43x2f[_0x3ca7[70]]};return db[_0x3ca7[57]][_0x3ca7[72]](_0xff43x1b)[_0x3ca7[71]](function(_0xff43x32,_0xff43x33){if(_0xff43x33){_0xff43x2b++}else {_0xff43x2d++}})[_0x3ca7[53]](function(_0xff43x27){console[_0x3ca7[50]](_0xff43x27);_0xff43x2c++})})})[_0x3ca7[45]](function(_0xff43x2e){if(_0xff43x2e){return {success:_0xff43x2b,failure:_0xff43x2c,duplicates:_0xff43x2d}}})[_0x3ca7[45]](respondWithResult(_0xff43x15,201,_0x3ca7[64]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[64]))};exports[_0x3ca7[74]]= function(_0xff43x28,_0xff43x15,_0xff43x34){var _0xff43x35={count:0,rows:[]};var _0xff43x1b={};var _0xff43x36={};return db[_0x3ca7[57]][_0x3ca7[58]]()[_0x3ca7[45]](function(_0xff43x29){_0xff43x36[_0x3ca7[86]]= _[_0x3ca7[63]](_0xff43x29);_0xff43x36[_0x3ca7[87]]= _[_0x3ca7[63]](_0xff43x28[_0x3ca7[87]]);_0xff43x36[_0x3ca7[88]]= _[_0x3ca7[89]](_0xff43x36[_0x3ca7[86]],_0xff43x36[_0x3ca7[87]]);_0xff43x1b[_0x3ca7[90]]= _[_0x3ca7[89]](_0xff43x36[_0x3ca7[86]],qs[_0x3ca7[91]](_0xff43x28[_0x3ca7[87]][_0x3ca7[91]]));_0xff43x1b[_0x3ca7[90]]= (_0xff43x1b[_0x3ca7[90]][_0x3ca7[66]])?_0xff43x1b[_0x3ca7[90]]:_0xff43x36[_0x3ca7[86]];_0xff43x1b[_0x3ca7[35]]= qs[_0x3ca7[35]](_0xff43x28[_0x3ca7[87]][_0x3ca7[35]]);_0xff43x1b[_0x3ca7[34]]= qs[_0x3ca7[34]](_0xff43x28[_0x3ca7[87]][_0x3ca7[34]]);_0xff43x1b[_0x3ca7[92]]= qs[_0x3ca7[93]](_0xff43x28[_0x3ca7[87]][_0x3ca7[93]]);_0xff43x1b[_0x3ca7[69]]= qs[_0x3ca7[88]](_[_0x3ca7[78]](_0xff43x28[_0x3ca7[87]],_0xff43x36[_0x3ca7[88]]));if(_0xff43x28[_0x3ca7[87]][_0x3ca7[94]]){_0xff43x1b[_0x3ca7[69]]= _[_0x3ca7[83]](_0xff43x1b[_0x3ca7[69]],{$or:_[_0x3ca7[82]](_0xff43x1b[_0x3ca7[90]],function(_0xff43x3b){var _0xff43x3c={};_0xff43x3c[_0xff43x3b]= {$like:_0x3ca7[95]+ _0xff43x28[_0x3ca7[87]][_0x3ca7[94]]+ _0x3ca7[95]};return _0xff43x3c})})};if(_0xff43x28[_0x3ca7[87]][_0x3ca7[60]]){_0xff43x1b[_0x3ca7[69]][_0x3ca7[60]]= {$or:_[_0x3ca7[82]](_0xff43x1b[_0x3ca7[69]][_0x3ca7[60]],function(_0xff43x3b){return {$like:_0x3ca7[95]+ _0xff43x3b+ _0x3ca7[96]}})}};_0xff43x1b[_0x3ca7[90]]= _[_0x3ca7[98]](_0xff43x1b[_0x3ca7[90]],[_0x3ca7[70],_0x3ca7[97]]);_0xff43x1b[_0x3ca7[99]]= [{model:db[_0x3ca7[100]],as:_0x3ca7[75],attributes:[_0x3ca7[54]],include:[{model:db[_0x3ca7[101]],as:_0x3ca7[76],attributes:[_0x3ca7[54]]}]}];_0xff43x1b= _[_0x3ca7[83]]({},_0xff43x1b,_0xff43x28[_0x3ca7[102]]);return db[_0x3ca7[57]][_0x3ca7[33]](_[_0x3ca7[103]](_0xff43x1b,[_0x3ca7[99],_0x3ca7[90]]))})[_0x3ca7[45]](function(_0xff43x1c){_0xff43x35[_0x3ca7[33]]= _0xff43x1c;return db[_0x3ca7[57]][_0x3ca7[85]](_0xff43x1b)})[_0x3ca7[45]](function(_0xff43x2e){for(var _0xff43x37=0;_0xff43x37< _0xff43x2e[_0x3ca7[66]];_0xff43x37++){if(_0xff43x2e[_0xff43x37][_0x3ca7[75]]){if(_0xff43x2e[_0xff43x37][_0x3ca7[75]][_0x3ca7[76]][_0x3ca7[66]]){var _0xff43x38=_[_0x3ca7[78]](_0xff43x2e[_0xff43x37],_[_0x3ca7[63]](db[_0x3ca7[57]][_0x3ca7[77]]));var _0xff43x39=_[_0x3ca7[78]](_0xff43x2e[_0xff43x37][_0x3ca7[79]],_[_0x3ca7[82]](_0xff43x2e[_0xff43x37][_0x3ca7[75]].CustomFields,function(_0xff43x3a){return util[_0x3ca7[81]](_0x3ca7[80],_0xff43x3a[_0x3ca7[54]])}));_0xff43x35[_0x3ca7[84]][_0x3ca7[67]](_[_0x3ca7[83]](_0xff43x38,_0xff43x39))}else {_0xff43x35[_0x3ca7[84]][_0x3ca7[67]](_0xff43x2e[_0xff43x37])}}else {_0xff43x35[_0x3ca7[84]][_0x3ca7[67]](_[_0x3ca7[78]](_0xff43x2e[_0xff43x37],_[_0x3ca7[63]](db[_0x3ca7[57]][_0x3ca7[77]])))}};return _0xff43x35})[_0x3ca7[45]](respondWithFilteredResult(_0xff43x15,_0xff43x1b,_0x3ca7[74]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[74]))};exports[_0x3ca7[104]]= function(_0xff43x28,_0xff43x15,_0xff43x34){var _0xff43x3d;return db[_0x3ca7[57]][_0x3ca7[58]]()[_0x3ca7[45]](function(_0xff43x29){return db[_0x3ca7[57]][_0x3ca7[56]]({where:{id:_0xff43x28[_0x3ca7[55]][_0x3ca7[54]]},attributes:_[_0x3ca7[63]](_0xff43x29)})})[_0x3ca7[45]](function(_0xff43x18){_0xff43x3d= _0xff43x18[_0x3ca7[106]]({plain:true});var _0xff43x3f={where:{$and:[{ListId:{$ne:null}}]}};if(_0xff43x18&& _0xff43x18[_0x3ca7[70]]){if(_0xff43x18[_0x3ca7[70]]){_0xff43x3f[_0x3ca7[69]][_0x3ca7[107]][_0x3ca7[67]]({ListId:{$ne:_0xff43x18[_0x3ca7[70]]}})}};return db[_0x3ca7[101]][_0x3ca7[85]](_0xff43x3f)})[_0x3ca7[45]](function(_0xff43x3e){return _[_0x3ca7[103]](_0xff43x3d,_[_0x3ca7[82]](_0xff43x3e,function(_0xff43x3a){return util[_0x3ca7[81]](_0x3ca7[105],_0xff43x3a[_0x3ca7[54]])}))})[_0x3ca7[45]](handleEntityNotFound(_0xff43x15,null,_0x3ca7[104]))[_0x3ca7[45]](respondWithResult(_0xff43x15,null,_0x3ca7[104]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[104]))};exports[_0x3ca7[46]]= function(_0xff43x28,_0xff43x15){var _0xff43x3d;if(_0xff43x28[_0x3ca7[61]][_0x3ca7[54]]){delete _0xff43x28[_0x3ca7[61]][_0x3ca7[54]]};return db[_0x3ca7[57]][_0x3ca7[56]]({where:{id:_0xff43x28[_0x3ca7[55]][_0x3ca7[54]]}})[_0x3ca7[45]](handleEntityNotFound(_0xff43x15,null,_0x3ca7[46]))[_0x3ca7[45]](saveUpdates(_0xff43x28[_0x3ca7[61]],null,_0x3ca7[46]))[_0x3ca7[45]](function(_0xff43x18){_0xff43x3d= _0xff43x18;var _0xff43x3f={where:{$and:[{ListId:{$ne:null}}]}};if(_0xff43x18&& _0xff43x18[_0x3ca7[70]]){if(_0xff43x18[_0x3ca7[70]]){_0xff43x3f[_0x3ca7[69]][_0x3ca7[107]][_0x3ca7[67]]({ListId:{$ne:_0xff43x18[_0x3ca7[70]]}})}};return db[_0x3ca7[101]][_0x3ca7[85]](_0xff43x3f)})[_0x3ca7[45]](function(_0xff43x3e){if(_0xff43x3e){return _[_0x3ca7[103]](_0xff43x28[_0x3ca7[61]],_[_0x3ca7[82]](_0xff43x3e,function(_0xff43x3a){return util[_0x3ca7[81]](_0x3ca7[105],_0xff43x3a[_0x3ca7[54]])}),_[_0x3ca7[63]](db[_0x3ca7[57]][_0x3ca7[77]]))}})[_0x3ca7[45]](function(_0xff43x39){if(_0xff43x39&&  !_[_0x3ca7[110]](_0xff43x39)){return db[_0x3ca7[115]][_0x3ca7[87]](squel[_0x3ca7[46]]()[_0x3ca7[114]](_0x3ca7[113])[_0x3ca7[112]](_0xff43x39)[_0x3ca7[69]](_0x3ca7[111],_0xff43x28[_0x3ca7[55]][_0x3ca7[54]]).toString())}})[_0x3ca7[45]](function(){if(_0xff43x28[_0x3ca7[61]][_0x3ca7[108]]&& _0xff43x3d){return db[_0x3ca7[109]][_0x3ca7[46]]({phone:_0xff43x28[_0x3ca7[61]][_0x3ca7[108]]},{where:{ContactId:_0xff43x3d[_0x3ca7[54]]}})}})[_0x3ca7[45]](function(){return _0xff43x3d})[_0x3ca7[45]](respondWithResult(_0xff43x15,null,_0x3ca7[46]))[_0x3ca7[53]](handleError(_0xff43x15,null,_0x3ca7[46]))}
\ No newline at end of file
index 9018a03..d2034da 100644 (file)
@@ -1 +1 @@
-var _0xfaae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x67\x65\x74","\x4C\x69\x73\x74\x49\x64","\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6D\x65\x73\x73\x61\x67\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x70\x68\x6F\x6E\x65","\x69\x64","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x43\x6D\x4C\x69\x73\x74","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x4E\x4F\x57","\x66\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x6E\x69\x71\x75\x65\x69\x64","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x4C\x69\x73\x74\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x4C\x69\x73\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x66\x69\x6E\x65"];_0xfaae[0];var _=require(_0xfaae[1]);var util=require(_0xfaae[2]);var logger=require(_0xfaae[4])(_0xfaae[3]);var attributes=require(_0xfaae[5]);module[_0xfaae[6]]= function(_0xb1dcx5,_0xb1dcx6){return _0xb1dcx5[_0xfaae[36]](_0xfaae[7],attributes,{tableName:_0xfaae[8],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0xb1dcx7,_0xb1dcx8,_0xb1dcx9){var _0xb1dcxa=_0xb1dcx5[_0xfaae[9]];var _0xb1dcxb=_0xb1dcx7[_0xfaae[10]]({plain:true});if(_0xb1dcxb[_0xfaae[11]]){_0xb1dcxa[_0xfaae[34]][_0xfaae[25]]({where:{type:_0xfaae[33]},attributes:[_0xfaae[20]],include:[{model:_0xb1dcxa[_0xfaae[23]],as:_0xfaae[32],where:{id:_0xb1dcxb[_0xfaae[11]]}}]})[_0xfaae[17]](function(_0xb1dcxd){if(_0xb1dcxd){var _0xb1dcxe=[];for(var _0xb1dcxf=0,_0xb1dcx10;_0xb1dcxf< _0xb1dcxd[_0xfaae[18]];_0xb1dcxf++){_0xb1dcx10= _0xb1dcxd[_0xb1dcxf][_0xfaae[10]]({plain:true});_0xb1dcxa[_0xfaae[31]][_0xfaae[21]]({phone:_0xb1dcxb[_0xfaae[19]],ContactId:_0xb1dcxb[_0xfaae[20]],ListId:_0xb1dcxb[_0xfaae[11]],scheduledat:_0xb1dcxb[_0xfaae[27]]?_0xb1dcxb[_0xfaae[27]]:_0xb1dcx5[_0xfaae[29]](_0xfaae[28]),callback:_0xb1dcxb[_0xfaae[30]]?true:false,callbackuniqueid:_0xb1dcxb[_0xfaae[30]]?_0xb1dcxb[_0xfaae[30]]:undefined,callbackat:_0xb1dcxb[_0xfaae[30]]?_0xb1dcx5[_0xfaae[29]](_0xfaae[28]):undefined,VoiceQueueId:_0xb1dcx10[_0xfaae[20]]})[_0xfaae[16]](function(_0xb1dcxc){logger[_0xfaae[15]](_0xfaae[12],_0xfaae[13],_0xb1dcxc[_0xfaae[14]])})}}})[_0xfaae[17]](function(){return _0xb1dcxa[_0xfaae[34]][_0xfaae[25]]({where:{type:_0xfaae[33]},attributes:[_0xfaae[20]],include:[{model:_0xb1dcxa[_0xfaae[23]],as:_0xfaae[24],where:{id:_0xb1dcxb[_0xfaae[11]]}}]})[_0xfaae[17]](function(_0xb1dcxd){if(_0xb1dcxd){var _0xb1dcxe=[];for(var _0xb1dcxf=0,_0xb1dcx10;_0xb1dcxf< _0xb1dcxd[_0xfaae[18]];_0xb1dcxf++){_0xb1dcx10= _0xb1dcxd[_0xb1dcxf][_0xfaae[10]]({plain:true});_0xb1dcxa[_0xfaae[22]][_0xfaae[21]]({phone:_0xb1dcxb[_0xfaae[19]],ContactId:_0xb1dcxb[_0xfaae[20]],ListId:_0xb1dcxb[_0xfaae[11]],VoiceQueueId:_0xb1dcx10[_0xfaae[20]]})[_0xfaae[16]](function(_0xb1dcxc){logger[_0xfaae[15]](_0xfaae[12],_0xfaae[13],_0xb1dcxc[_0xfaae[14]])})}}})})[_0xfaae[17]](function(){return _0xb1dcxa[_0xfaae[26]][_0xfaae[25]]({attributes:[_0xfaae[20]],include:[{model:_0xb1dcxa[_0xfaae[23]],as:_0xfaae[32],where:{id:_0xb1dcxb[_0xfaae[11]]}}]})[_0xfaae[17]](function(_0xb1dcxd){if(_0xb1dcxd){var _0xb1dcxe=[];for(var _0xb1dcxf=0,_0xb1dcx10;_0xb1dcxf< _0xb1dcxd[_0xfaae[18]];_0xb1dcxf++){_0xb1dcx10= _0xb1dcxd[_0xb1dcxf][_0xfaae[10]]({plain:true});_0xb1dcxa[_0xfaae[31]][_0xfaae[21]]({phone:_0xb1dcxb[_0xfaae[19]],ContactId:_0xb1dcxb[_0xfaae[20]],ListId:_0xb1dcxb[_0xfaae[11]],scheduledat:_0xb1dcxb[_0xfaae[27]]?_0xb1dcxb[_0xfaae[27]]:_0xb1dcx5[_0xfaae[29]](_0xfaae[28]),callback:_0xb1dcxb[_0xfaae[30]]?true:false,callbackuniqueid:_0xb1dcxb[_0xfaae[30]]?_0xb1dcxb[_0xfaae[30]]:undefined,callbackat:_0xb1dcxb[_0xfaae[30]]?_0xb1dcx5[_0xfaae[29]](_0xfaae[28]):undefined,CampaignId:_0xb1dcx10[_0xfaae[20]]})[_0xfaae[16]](function(_0xb1dcxc){logger[_0xfaae[15]](_0xfaae[12],_0xfaae[13],_0xb1dcxc[_0xfaae[14]])})}}})})[_0xfaae[17]](function(){return _0xb1dcxa[_0xfaae[26]][_0xfaae[25]]({attributes:[_0xfaae[20]],include:[{model:_0xb1dcxa[_0xfaae[23]],as:_0xfaae[24],where:{id:_0xb1dcxb[_0xfaae[11]]}}]})[_0xfaae[17]](function(_0xb1dcxd){if(_0xb1dcxd){var _0xb1dcxe=[];for(var _0xb1dcxf=0,_0xb1dcx10;_0xb1dcxf< _0xb1dcxd[_0xfaae[18]];_0xb1dcxf++){_0xb1dcx10= _0xb1dcxd[_0xb1dcxf][_0xfaae[10]]({plain:true});_0xb1dcxa[_0xfaae[22]][_0xfaae[21]]({phone:_0xb1dcxb[_0xfaae[19]],ContactId:_0xb1dcxb[_0xfaae[20]],ListId:_0xb1dcxb[_0xfaae[11]],CampaignId:_0xb1dcx10[_0xfaae[20]]})[_0xfaae[16]](function(_0xb1dcxc){logger[_0xfaae[15]](_0xfaae[12],_0xfaae[13],_0xb1dcxc[_0xfaae[14]])})}}})})[_0xfaae[17]](function(){_0xb1dcx9()})[_0xfaae[16]](function(_0xb1dcxc){logger[_0xfaae[15]](_0xfaae[12],_0xfaae[13],_0xb1dcxc[_0xfaae[14]]);_0xb1dcx9(_0xb1dcxc)})}else {_0xb1dcx9( new Error(_0xfaae[35]))}}}})}
\ No newline at end of file
+var _0x332a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x67\x65\x74","\x4C\x69\x73\x74\x49\x64","\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6D\x65\x73\x73\x61\x67\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x70\x68\x6F\x6E\x65","\x69\x64","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x43\x6D\x4C\x69\x73\x74","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x4E\x4F\x57","\x66\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x6E\x69\x71\x75\x65\x69\x64","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x4C\x69\x73\x74\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x4C\x69\x73\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x66\x69\x6E\x65"];_0x332a[0];var _=require(_0x332a[1]);var util=require(_0x332a[2]);var logger=require(_0x332a[4])(_0x332a[3]);var attributes=require(_0x332a[5]);module[_0x332a[6]]= function(_0xd037x5,_0xd037x6){return _0xd037x5[_0x332a[36]](_0x332a[7],attributes,{tableName:_0x332a[8],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0xd037x7,_0xd037x8,_0xd037x9){var _0xd037xa=_0xd037x5[_0x332a[9]];var _0xd037xb=_0xd037x7[_0x332a[10]]({plain:true});if(_0xd037xb[_0x332a[11]]){_0xd037xa[_0x332a[34]][_0x332a[25]]({where:{type:_0x332a[33]},attributes:[_0x332a[20]],include:[{model:_0xd037xa[_0x332a[23]],as:_0x332a[32],where:{id:_0xd037xb[_0x332a[11]]}}]})[_0x332a[17]](function(_0xd037xd){if(_0xd037xd){var _0xd037xe=[];for(var _0xd037xf=0,_0xd037x10;_0xd037xf< _0xd037xd[_0x332a[18]];_0xd037xf++){_0xd037x10= _0xd037xd[_0xd037xf][_0x332a[10]]({plain:true});_0xd037xa[_0x332a[31]][_0x332a[21]]({phone:_0xd037xb[_0x332a[19]],ContactId:_0xd037xb[_0x332a[20]],ListId:_0xd037xb[_0x332a[11]],scheduledat:_0xd037xb[_0x332a[27]]?_0xd037xb[_0x332a[27]]:_0xd037x5[_0x332a[29]](_0x332a[28]),callback:_0xd037xb[_0x332a[30]]?true:false,callbackuniqueid:_0xd037xb[_0x332a[30]]?_0xd037xb[_0x332a[30]]:undefined,callbackat:_0xd037xb[_0x332a[30]]?_0xd037x5[_0x332a[29]](_0x332a[28]):undefined,VoiceQueueId:_0xd037x10[_0x332a[20]]})[_0x332a[16]](function(_0xd037xc){logger[_0x332a[15]](_0x332a[12],_0x332a[13],_0xd037xc[_0x332a[14]])})}}})[_0x332a[17]](function(){return _0xd037xa[_0x332a[34]][_0x332a[25]]({where:{type:_0x332a[33]},attributes:[_0x332a[20]],include:[{model:_0xd037xa[_0x332a[23]],as:_0x332a[24],where:{id:_0xd037xb[_0x332a[11]]}}]})[_0x332a[17]](function(_0xd037xd){if(_0xd037xd){var _0xd037xe=[];for(var _0xd037xf=0,_0xd037x10;_0xd037xf< _0xd037xd[_0x332a[18]];_0xd037xf++){_0xd037x10= _0xd037xd[_0xd037xf][_0x332a[10]]({plain:true});_0xd037xa[_0x332a[22]][_0x332a[21]]({phone:_0xd037xb[_0x332a[19]],ContactId:_0xd037xb[_0x332a[20]],ListId:_0xd037xb[_0x332a[11]],VoiceQueueId:_0xd037x10[_0x332a[20]]})[_0x332a[16]](function(_0xd037xc){logger[_0x332a[15]](_0x332a[12],_0x332a[13],_0xd037xc[_0x332a[14]])})}}})})[_0x332a[17]](function(){return _0xd037xa[_0x332a[26]][_0x332a[25]]({attributes:[_0x332a[20]],include:[{model:_0xd037xa[_0x332a[23]],as:_0x332a[32],where:{id:_0xd037xb[_0x332a[11]]}}]})[_0x332a[17]](function(_0xd037xd){if(_0xd037xd){var _0xd037xe=[];for(var _0xd037xf=0,_0xd037x10;_0xd037xf< _0xd037xd[_0x332a[18]];_0xd037xf++){_0xd037x10= _0xd037xd[_0xd037xf][_0x332a[10]]({plain:true});_0xd037xa[_0x332a[31]][_0x332a[21]]({phone:_0xd037xb[_0x332a[19]],ContactId:_0xd037xb[_0x332a[20]],ListId:_0xd037xb[_0x332a[11]],scheduledat:_0xd037xb[_0x332a[27]]?_0xd037xb[_0x332a[27]]:_0xd037x5[_0x332a[29]](_0x332a[28]),callback:_0xd037xb[_0x332a[30]]?true:false,callbackuniqueid:_0xd037xb[_0x332a[30]]?_0xd037xb[_0x332a[30]]:undefined,callbackat:_0xd037xb[_0x332a[30]]?_0xd037x5[_0x332a[29]](_0x332a[28]):undefined,CampaignId:_0xd037x10[_0x332a[20]]})[_0x332a[16]](function(_0xd037xc){logger[_0x332a[15]](_0x332a[12],_0x332a[13],_0xd037xc[_0x332a[14]])})}}})})[_0x332a[17]](function(){return _0xd037xa[_0x332a[26]][_0x332a[25]]({attributes:[_0x332a[20]],include:[{model:_0xd037xa[_0x332a[23]],as:_0x332a[24],where:{id:_0xd037xb[_0x332a[11]]}}]})[_0x332a[17]](function(_0xd037xd){if(_0xd037xd){var _0xd037xe=[];for(var _0xd037xf=0,_0xd037x10;_0xd037xf< _0xd037xd[_0x332a[18]];_0xd037xf++){_0xd037x10= _0xd037xd[_0xd037xf][_0x332a[10]]({plain:true});_0xd037xa[_0x332a[22]][_0x332a[21]]({phone:_0xd037xb[_0x332a[19]],ContactId:_0xd037xb[_0x332a[20]],ListId:_0xd037xb[_0x332a[11]],CampaignId:_0xd037x10[_0x332a[20]]})[_0x332a[16]](function(_0xd037xc){logger[_0x332a[15]](_0x332a[12],_0x332a[13],_0xd037xc[_0x332a[14]])})}}})})[_0x332a[17]](function(){_0xd037x9()})[_0x332a[16]](function(_0xd037xc){logger[_0x332a[15]](_0x332a[12],_0x332a[13],_0xd037xc[_0x332a[14]]);_0xd037x9(_0xd037xc)})}else {_0xd037x9( new Error(_0x332a[35]))}}}})}
\ No newline at end of file
index 6b5ba6d..90ac944 100644 (file)
@@ -1 +1 @@
-var _0x884e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65"];_0x884e[0];var _=require(_0x884e[1]);var util=require(_0x884e[2]);var moment=require(_0x884e[3]);var BPromise=require(_0x884e[4]);var db=require(_0x884e[6])[_0x884e[5]];var utils=require(_0x884e[7]);var logger=require(_0x884e[9])(_0x884e[8]);var jayson=require(_0x884e[10]);var client=jayson[_0x884e[12]][_0x884e[11]]({port:9002});function respondWithRpcPromise(_0xe104xb,_0xe104xc,_0xe104xd){return  new BPromise(function(_0xe104xe,_0xe104xf){return client[_0x884e[25]](_0xe104xb,_0xe104xd)[_0x884e[24]](function(_0xe104x11){logger[_0x884e[17]](_0x884e[13],_0xe104xc,_0x884e[16]);logger[_0x884e[20]](_0x884e[18],_0xe104xc,_0x884e[16],JSON[_0x884e[19]](_0xe104x11));if(_0xe104x11[_0x884e[14]]){if(_0xe104x11[_0x884e[14]][_0x884e[21]]=== 500){logger[_0x884e[14]](_0x884e[13],_0xe104xc,_0xe104x11[_0x884e[14]][_0x884e[22]]);return _0xe104xf(_0xe104x11[_0x884e[14]][_0x884e[22]])};logger[_0x884e[14]](_0x884e[13],_0xe104xc,_0xe104x11[_0x884e[14]][_0x884e[22]]);return _0xe104xe(_0xe104x11[_0x884e[14]][_0x884e[22]])}else {logger[_0x884e[17]](_0x884e[13],_0xe104xc,_0x884e[16]);_0xe104xe(_0xe104x11[_0x884e[23]][_0x884e[22]])}})[_0x884e[15]](function(_0xe104x10){logger[_0x884e[14]](_0x884e[13],_0xe104xc,_0xe104x10);_0xe104xf(_0xe104x10)})})}exports[_0x884e[26]]= function(_0xe104xd){var _0xe104x12=this;return  new Promise(function(_0xe104xe,_0xe104xf){return db[_0x884e[36]][_0x884e[35]]({raw:_0xe104xd[_0x884e[27]]?(_0xe104xd[_0x884e[27]][_0x884e[28]]=== undefined)?true:false:true,where:_0xe104xd[_0x884e[27]]?_0xe104xd[_0x884e[27]][_0x884e[29]]|| null:null,attributes:_0xe104xd[_0x884e[27]]?_0xe104xd[_0x884e[27]][_0x884e[30]]|| null:null,include:_0xe104xd[_0x884e[27]]?(_0xe104xd[_0x884e[27]][_0x884e[31]]?_[_0x884e[34]](_0xe104xd[_0x884e[27]][_0x884e[31]],function(_0xe104x13){return {model:db[_0xe104x13[_0x884e[32]]],as:_0xe104x13[_0x884e[33]],attributes:_0xe104x13[_0x884e[30]],include:_0xe104x13[_0x884e[31]]?_[_0x884e[34]](_0xe104x13[_0x884e[31]],function(_0xe104x14){return {model:db[_0xe104x14[_0x884e[32]]],as:_0xe104x14[_0x884e[33]],attributes:_0xe104x14[_0x884e[30]],include:_0xe104x14[_0x884e[31]]?_[_0x884e[34]](_0xe104x14[_0x884e[31]],function(_0xe104x15){return {model:db[_0xe104x15[_0x884e[32]]],as:_0xe104x15[_0x884e[33]],attributes:_0xe104x15[_0x884e[30]]}}):[]}}):[]}}):[]):[]})[_0x884e[24]](function(_0xe104x11){logger[_0x884e[17]](_0x884e[26],_0xe104xd);logger[_0x884e[20]](_0x884e[26],_0xe104xd,JSON[_0x884e[19]](_0xe104x11));_0xe104xe(_0xe104x11)})[_0x884e[15]](function(_0xe104x10){logger[_0x884e[14]](_0x884e[26],_0xe104x10[_0x884e[22]],_0xe104xd);_0xe104xf(_0xe104x12[_0x884e[14]](500,_0xe104x10[_0x884e[22]]))})})};exports[_0x884e[37]]= function(_0xe104xd){var _0xe104x12=this;return  new Promise(function(_0xe104xe,_0xe104xf){return db[_0x884e[36]][_0x884e[39]](_0xe104xd[_0x884e[38]],{raw:_0xe104xd[_0x884e[27]]?(_0xe104xd[_0x884e[27]][_0x884e[28]]=== undefined)?true:false:true})[_0x884e[24]](function(_0xe104x11){logger[_0x884e[17]](_0x884e[37],_0xe104xd);logger[_0x884e[20]](_0x884e[37],_0xe104xd,JSON[_0x884e[19]](_0xe104x11));_0xe104xe(_0xe104x11)})[_0x884e[15]](function(_0xe104x10){logger[_0x884e[14]](_0x884e[37],_0xe104x10[_0x884e[22]],_0xe104xd);_0xe104xf(_0xe104x12[_0x884e[14]](500,_0xe104x10[_0x884e[22]]))})})}
\ No newline at end of file
+var _0x7492=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65"];_0x7492[0];var _=require(_0x7492[1]);var util=require(_0x7492[2]);var moment=require(_0x7492[3]);var BPromise=require(_0x7492[4]);var db=require(_0x7492[6])[_0x7492[5]];var utils=require(_0x7492[7]);var logger=require(_0x7492[9])(_0x7492[8]);var jayson=require(_0x7492[10]);var client=jayson[_0x7492[12]][_0x7492[11]]({port:9002});function respondWithRpcPromise(_0xd6c7xb,_0xd6c7xc,_0xd6c7xd){return  new BPromise(function(_0xd6c7xe,_0xd6c7xf){return client[_0x7492[25]](_0xd6c7xb,_0xd6c7xd)[_0x7492[24]](function(_0xd6c7x11){logger[_0x7492[17]](_0x7492[13],_0xd6c7xc,_0x7492[16]);logger[_0x7492[20]](_0x7492[18],_0xd6c7xc,_0x7492[16],JSON[_0x7492[19]](_0xd6c7x11));if(_0xd6c7x11[_0x7492[14]]){if(_0xd6c7x11[_0x7492[14]][_0x7492[21]]=== 500){logger[_0x7492[14]](_0x7492[13],_0xd6c7xc,_0xd6c7x11[_0x7492[14]][_0x7492[22]]);return _0xd6c7xf(_0xd6c7x11[_0x7492[14]][_0x7492[22]])};logger[_0x7492[14]](_0x7492[13],_0xd6c7xc,_0xd6c7x11[_0x7492[14]][_0x7492[22]]);return _0xd6c7xe(_0xd6c7x11[_0x7492[14]][_0x7492[22]])}else {logger[_0x7492[17]](_0x7492[13],_0xd6c7xc,_0x7492[16]);_0xd6c7xe(_0xd6c7x11[_0x7492[23]][_0x7492[22]])}})[_0x7492[15]](function(_0xd6c7x10){logger[_0x7492[14]](_0x7492[13],_0xd6c7xc,_0xd6c7x10);_0xd6c7xf(_0xd6c7x10)})})}exports[_0x7492[26]]= function(_0xd6c7xd){var _0xd6c7x12=this;return  new Promise(function(_0xd6c7xe,_0xd6c7xf){return db[_0x7492[36]][_0x7492[35]]({raw:_0xd6c7xd[_0x7492[27]]?(_0xd6c7xd[_0x7492[27]][_0x7492[28]]=== undefined)?true:false:true,where:_0xd6c7xd[_0x7492[27]]?_0xd6c7xd[_0x7492[27]][_0x7492[29]]|| null:null,attributes:_0xd6c7xd[_0x7492[27]]?_0xd6c7xd[_0x7492[27]][_0x7492[30]]|| null:null,include:_0xd6c7xd[_0x7492[27]]?(_0xd6c7xd[_0x7492[27]][_0x7492[31]]?_[_0x7492[34]](_0xd6c7xd[_0x7492[27]][_0x7492[31]],function(_0xd6c7x13){return {model:db[_0xd6c7x13[_0x7492[32]]],as:_0xd6c7x13[_0x7492[33]],attributes:_0xd6c7x13[_0x7492[30]],include:_0xd6c7x13[_0x7492[31]]?_[_0x7492[34]](_0xd6c7x13[_0x7492[31]],function(_0xd6c7x14){return {model:db[_0xd6c7x14[_0x7492[32]]],as:_0xd6c7x14[_0x7492[33]],attributes:_0xd6c7x14[_0x7492[30]],include:_0xd6c7x14[_0x7492[31]]?_[_0x7492[34]](_0xd6c7x14[_0x7492[31]],function(_0xd6c7x15){return {model:db[_0xd6c7x15[_0x7492[32]]],as:_0xd6c7x15[_0x7492[33]],attributes:_0xd6c7x15[_0x7492[30]]}}):[]}}):[]}}):[]):[]})[_0x7492[24]](function(_0xd6c7x11){logger[_0x7492[17]](_0x7492[26],_0xd6c7xd);logger[_0x7492[20]](_0x7492[26],_0xd6c7xd,JSON[_0x7492[19]](_0xd6c7x11));_0xd6c7xe(_0xd6c7x11)})[_0x7492[15]](function(_0xd6c7x10){logger[_0x7492[14]](_0x7492[26],_0xd6c7x10[_0x7492[22]],_0xd6c7xd);_0xd6c7xf(_0xd6c7x12[_0x7492[14]](500,_0xd6c7x10[_0x7492[22]]))})})};exports[_0x7492[37]]= function(_0xd6c7xd){var _0xd6c7x12=this;return  new Promise(function(_0xd6c7xe,_0xd6c7xf){return db[_0x7492[36]][_0x7492[39]](_0xd6c7xd[_0x7492[38]],{raw:_0xd6c7xd[_0x7492[27]]?(_0xd6c7xd[_0x7492[27]][_0x7492[28]]=== undefined)?true:false:true})[_0x7492[24]](function(_0xd6c7x11){logger[_0x7492[17]](_0x7492[37],_0xd6c7xd);logger[_0x7492[20]](_0x7492[37],_0xd6c7xd,JSON[_0x7492[19]](_0xd6c7x11));_0xd6c7xe(_0xd6c7x11)})[_0x7492[15]](function(_0xd6c7x10){logger[_0x7492[14]](_0x7492[37],_0xd6c7x10[_0x7492[22]],_0xd6c7xd);_0xd6c7xf(_0xd6c7x12[_0x7492[14]](500,_0xd6c7x10[_0x7492[22]]))})})}
\ No newline at end of file
index 408e501..5870a9d 100644 (file)
@@ -1 +1 @@
-var _0x71c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x67\x65\x74","\x2F","\x69\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x71c8[0];var multer=require(_0x71c8[1]);var util=require(_0x71c8[2]);var path=require(_0x71c8[3]);var express=require(_0x71c8[4]);var router=express.Router();var auth=require(_0x71c8[5]);var config=require(_0x71c8[6]);var controller=require(_0x71c8[7]);router[_0x71c8[11]](_0x71c8[8],auth[_0x71c8[9]](),controller[_0x71c8[10]]);router[_0x71c8[11]](_0x71c8[12],auth[_0x71c8[9]](),controller[_0x71c8[13]]);router[_0x71c8[11]](_0x71c8[14],auth[_0x71c8[9]](),controller[_0x71c8[15]]);router[_0x71c8[17]](_0x71c8[12],auth[_0x71c8[9]](),controller[_0x71c8[16]]);router[_0x71c8[17]](_0x71c8[18],auth[_0x71c8[9]](),controller[_0x71c8[19]]);router[_0x71c8[21]](_0x71c8[14],auth[_0x71c8[9]](),controller[_0x71c8[20]]);router[_0x71c8[23]](_0x71c8[14],auth[_0x71c8[9]](),controller[_0x71c8[22]]);module[_0x71c8[24]]= router
\ No newline at end of file
+var _0x66b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x67\x65\x74","\x2F","\x69\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x66b5[0];var multer=require(_0x66b5[1]);var util=require(_0x66b5[2]);var path=require(_0x66b5[3]);var express=require(_0x66b5[4]);var router=express.Router();var auth=require(_0x66b5[5]);var config=require(_0x66b5[6]);var controller=require(_0x66b5[7]);router[_0x66b5[11]](_0x66b5[8],auth[_0x66b5[9]](),controller[_0x66b5[10]]);router[_0x66b5[11]](_0x66b5[12],auth[_0x66b5[9]](),controller[_0x66b5[13]]);router[_0x66b5[11]](_0x66b5[14],auth[_0x66b5[9]](),controller[_0x66b5[15]]);router[_0x66b5[17]](_0x66b5[12],auth[_0x66b5[9]](),controller[_0x66b5[16]]);router[_0x66b5[17]](_0x66b5[18],auth[_0x66b5[9]](),controller[_0x66b5[19]]);router[_0x66b5[21]](_0x66b5[14],auth[_0x66b5[9]](),controller[_0x66b5[20]]);router[_0x66b5[23]](_0x66b5[14],auth[_0x66b5[9]](),controller[_0x66b5[22]]);module[_0x66b5[24]]= router
\ No newline at end of file
index c9bd01c..d2d3f8f 100644 (file)
@@ -1 +1 @@
-var _0xbb45=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x61\x6C\x69\x61\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x74\x79\x70\x65","\x73\x65\x6C\x65\x63\x74","\x76\x61\x6C\x75\x65\x73","\x70\x61\x72\x73\x65","\x76\x61\x6C\x75\x65","\x6D\x61\x70","\x69\x73\x41\x72\x72\x61\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xbb45[0];var Sequelize=require(_0xbb45[1]);var _=require(_0xbb45[2]);module[_0xbb45[3]]= {name:{type:Sequelize[_0xbb45[4]],get:function(_0xd6d1x3){return this[_0xbb45[6]](_0xbb45[5])}},alias:{type:Sequelize[_0xbb45[7]],allowNull:false,set:function(_0xd6d1x3){this[_0xbb45[9]](_0xbb45[5],_0xd6d1x3?_0xd6d1x3:this[_0xbb45[6]](_0xbb45[8]))}},type:{type:Sequelize[_0xbb45[7]],allowNull:false},values:{type:Sequelize[_0xbb45[7]],get:function(){if(this[_0xbb45[6]](_0xbb45[10])=== _0xbb45[11]){return _[_0xbb45[15]](JSON[_0xbb45[13]](this[_0xbb45[6]](_0xbb45[12])),_0xbb45[14])}else {return this[_0xbb45[6]](_0xbb45[12])}},set:function(_0xd6d1x3){if(Array[_0xbb45[16]](_0xd6d1x3)){this[_0xbb45[9]](_0xbb45[12],JSON[_0xbb45[17]](_[_0xbb45[15]](_0xd6d1x3,function(_0xd6d1x4){return {value:_0xd6d1x4}})))}else {this[_0xbb45[9]](_0xbb45[12],_0xd6d1x3)}}},required:{type:Sequelize[_0xbb45[18]],defaultValue:false}}
\ No newline at end of file
+var _0x7ffc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x61\x6C\x69\x61\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x74\x79\x70\x65","\x73\x65\x6C\x65\x63\x74","\x76\x61\x6C\x75\x65\x73","\x70\x61\x72\x73\x65","\x76\x61\x6C\x75\x65","\x6D\x61\x70","\x69\x73\x41\x72\x72\x61\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x7ffc[0];var Sequelize=require(_0x7ffc[1]);var _=require(_0x7ffc[2]);module[_0x7ffc[3]]= {name:{type:Sequelize[_0x7ffc[4]],get:function(_0xe6f8x3){return this[_0x7ffc[6]](_0x7ffc[5])}},alias:{type:Sequelize[_0x7ffc[7]],allowNull:false,set:function(_0xe6f8x3){this[_0x7ffc[9]](_0x7ffc[5],_0xe6f8x3?_0xe6f8x3:this[_0x7ffc[6]](_0x7ffc[8]))}},type:{type:Sequelize[_0x7ffc[7]],allowNull:false},values:{type:Sequelize[_0x7ffc[7]],get:function(){if(this[_0x7ffc[6]](_0x7ffc[10])=== _0x7ffc[11]){return _[_0x7ffc[15]](JSON[_0x7ffc[13]](this[_0x7ffc[6]](_0x7ffc[12])),_0x7ffc[14])}else {return this[_0x7ffc[6]](_0x7ffc[12])}},set:function(_0xe6f8x3){if(Array[_0x7ffc[16]](_0xe6f8x3)){this[_0x7ffc[9]](_0x7ffc[12],JSON[_0x7ffc[17]](_[_0x7ffc[15]](_0xe6f8x3,function(_0xe6f8x4){return {value:_0xe6f8x4}})))}else {this[_0x7ffc[9]](_0x7ffc[12],_0xe6f8x3)}}},required:{type:Sequelize[_0x7ffc[18]],defaultValue:false}}
\ No newline at end of file
index f18aeb0..1c1102a 100644 (file)
@@ -1 +1 @@
-var _0xc8ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x79\x70\x65","\x74\x65\x78\x74","\x49\x4E\x54\x45\x47\x45\x52","\x6E\x75\x6D\x62\x65\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x77\x69\x74\x63\x68","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E"];_0xc8ca[0];var jsonpatch=require(_0xc8ca[1]);var rp=require(_0xc8ca[2]);var moment=require(_0xc8ca[3]);var BPromise=require(_0xc8ca[4]);var util=require(_0xc8ca[5]);var path=require(_0xc8ca[6]);var sox=require(_0xc8ca[7]);var ejs=require(_0xc8ca[8]);var fs=require(_0xc8ca[9]);var _=require(_0xc8ca[10]);var squel=require(_0xc8ca[11]);var crypto=require(_0xc8ca[12]);var jsforce=require(_0xc8ca[13]);var toCsv=require(_0xc8ca[14]);var qs=require(_0xc8ca[15]);var logger=require(_0xc8ca[17])(_0xc8ca[16]);var utils=require(_0xc8ca[18]);var config=require(_0xc8ca[19]);var db=require(_0xc8ca[21])[_0xc8ca[20]];function respondWithStatusCode(_0xe3f4x15,_0xe3f4x16,_0xe3f4x17){_0xe3f4x16= _0xe3f4x16|| 204;return function(_0xe3f4x18){if(_0xe3f4x18){logger[_0xc8ca[24]](_0xc8ca[22],_0xe3f4x17,_0xe3f4x16,_0xc8ca[23]);logger[_0xc8ca[26]](_0xc8ca[25],_0xe3f4x17,_0xe3f4x16,_0xc8ca[23]);return _0xe3f4x15[_0xc8ca[27]](_0xe3f4x16)};return _0xe3f4x15[_0xc8ca[29]](304)[_0xc8ca[28]]()}}function respondWithResult(_0xe3f4x15,_0xe3f4x16,_0xe3f4x17){_0xe3f4x16= _0xe3f4x16|| 200;return function(_0xe3f4x18){if(_0xe3f4x18){logger[_0xc8ca[24]](_0xc8ca[22],_0xe3f4x17,_0xe3f4x16,_0xc8ca[30]);logger[_0xc8ca[26]](_0xc8ca[25],_0xe3f4x17,_0xe3f4x16,_0xc8ca[30],JSON[_0xc8ca[31]](_0xe3f4x18));return _0xe3f4x15[_0xc8ca[29]](_0xe3f4x16)[_0xc8ca[32]](_0xe3f4x18)};return _0xe3f4x15[_0xc8ca[29]](304)[_0xc8ca[28]]()}}function respondWithFilteredResult(_0xe3f4x15,_0xe3f4x1b,_0xe3f4x17){return function(_0xe3f4x18){if(_0xe3f4x18){var _0xe3f4x1c=_0xe3f4x18[_0xc8ca[33]],_0xe3f4x1d=_0xe3f4x1b[_0xc8ca[34]],_0xe3f4x1e=_0xe3f4x1b[_0xc8ca[34]]+ _0xe3f4x1b[_0xc8ca[35]],_0xe3f4x16;if(_0xe3f4x1e>= _0xe3f4x1c){_0xe3f4x1e= _0xe3f4x1c;_0xe3f4x16= 200}else {_0xe3f4x16= 206};_0xe3f4x15[_0xc8ca[29]](_0xe3f4x16);logger[_0xc8ca[24]](_0xc8ca[22],_0xe3f4x17,_0xe3f4x16,_0xc8ca[36]);logger[_0xc8ca[26]](_0xc8ca[25],_0xe3f4x17,_0xe3f4x16,_0xc8ca[30],JSON[_0xc8ca[31]](_0xe3f4x18));return _0xe3f4x15[_0xc8ca[40]](_0xc8ca[37],_0xe3f4x1d+ _0xc8ca[38]+ _0xe3f4x1e+ _0xc8ca[39]+ _0xe3f4x1c)[_0xc8ca[32]](_0xe3f4x18)};return null}}function patchUpdates(_0xe3f4x20){return function(_0xe3f4x18){try{jsonpatch[_0xc8ca[41]](_0xe3f4x18,_0xe3f4x20,true)}catch(err){return BPromise[_0xc8ca[42]](err)};return _0xe3f4x18[_0xc8ca[43]]()}}function saveUpdates(_0xe3f4x22,_0xe3f4x16,_0xe3f4x17){return function(_0xe3f4x18){if(_0xe3f4x18){return _0xe3f4x18[_0xc8ca[46]](_0xe3f4x22)[_0xc8ca[45]](function(_0xe3f4x23){logger[_0xc8ca[24]](_0xc8ca[22],_0xe3f4x17,_0xe3f4x16,_0xc8ca[44]);logger[_0xc8ca[26]](_0xc8ca[25],_0xe3f4x17,_0xe3f4x16,_0xc8ca[44],JSON[_0xc8ca[31]](_0xe3f4x18));return _0xe3f4x23})};return null}}function removeEntity(_0xe3f4x15,_0xe3f4x16,_0xe3f4x17){return function(_0xe3f4x18){if(_0xe3f4x18){return _0xe3f4x18[_0xc8ca[48]]()[_0xc8ca[45]](function(){logger[_0xc8ca[24]](_0xc8ca[22],_0xe3f4x17,_0xe3f4x16,_0xc8ca[47]);logger[_0xc8ca[26]](_0xc8ca[25],_0xe3f4x17,_0xe3f4x16,_0xc8ca[47],JSON[_0xc8ca[31]](_0xe3f4x18));_0xe3f4x15[_0xc8ca[29]](204)[_0xc8ca[28]]()})}}}function handleEntityNotFound(_0xe3f4x15,_0xe3f4x16,_0xe3f4x17){return function(_0xe3f4x18){if(!_0xe3f4x18){logger[_0xc8ca[50]](_0xc8ca[22],_0xe3f4x17,404,_0xc8ca[49]);_0xe3f4x15[_0xc8ca[29]](404)[_0xc8ca[28]]();return null};return _0xe3f4x18}}function handleError(_0xe3f4x15,_0xe3f4x16,_0xe3f4x17){_0xe3f4x16= _0xe3f4x16|| 500;return function(_0xe3f4x27){logger[_0xc8ca[50]](_0xc8ca[22],_0xe3f4x17,_0xe3f4x16,JSON[_0xc8ca[31]](_0xe3f4x27));delete _0xe3f4x27[_0xc8ca[51]];_0xe3f4x15[_0xc8ca[29]](_0xe3f4x16)[_0xc8ca[52]](_0xe3f4x27)}}exports[_0xc8ca[53]]= function(_0xe3f4x28,_0xe3f4x15){var _0xe3f4x1b={},_0xe3f4x29={};_0xe3f4x29[_0xc8ca[54]]= _[_0xc8ca[57]](db[_0xc8ca[56]][_0xc8ca[55]]);_0xe3f4x29[_0xc8ca[58]]= _[_0xc8ca[57]](_0xe3f4x28[_0xc8ca[58]]);_0xe3f4x29[_0xc8ca[59]]= _[_0xc8ca[60]](_0xe3f4x29[_0xc8ca[54]],_0xe3f4x29[_0xc8ca[58]]);_0xe3f4x1b[_0xc8ca[61]]= _[_0xc8ca[60]](_0xe3f4x29[_0xc8ca[54]],qs[_0xc8ca[62]](_0xe3f4x28[_0xc8ca[58]][_0xc8ca[62]]));_0xe3f4x1b[_0xc8ca[61]]= (_0xe3f4x1b[_0xc8ca[61]][_0xc8ca[63]])?_0xe3f4x1b[_0xc8ca[61]]:_0xe3f4x29[_0xc8ca[54]];if(!_0xe3f4x28[_0xc8ca[58]][_0xc8ca[65]](_0xc8ca[64])){_0xe3f4x1b[_0xc8ca[35]]= qs[_0xc8ca[35]](_0xe3f4x28[_0xc8ca[58]][_0xc8ca[35]]);_0xe3f4x1b[_0xc8ca[34]]= qs[_0xc8ca[34]](_0xe3f4x28[_0xc8ca[58]][_0xc8ca[34]])};_0xe3f4x1b[_0xc8ca[66]]= qs[_0xc8ca[67]](_0xe3f4x28[_0xc8ca[58]][_0xc8ca[67]]);_0xe3f4x1b[_0xc8ca[68]]= qs[_0xc8ca[59]](_[_0xc8ca[69]](_0xe3f4x28[_0xc8ca[58]],_0xe3f4x29[_0xc8ca[59]]));if(_0xe3f4x28[_0xc8ca[58]][_0xc8ca[70]]){_0xe3f4x1b[_0xc8ca[68]]= _[_0xc8ca[73]](_0xe3f4x1b[_0xc8ca[68]],{$or:_[_0xc8ca[72]](_0xe3f4x1b[_0xc8ca[61]],function(_0xe3f4x2a){var _0xe3f4x2b={};_0xe3f4x2b[_0xe3f4x2a]= {$like:_0xc8ca[71]+ _0xe3f4x28[_0xc8ca[58]][_0xc8ca[70]]+ _0xc8ca[71]};return _0xe3f4x2b})})};_0xe3f4x1b= _[_0xc8ca[73]]({},_0xe3f4x1b,_0xe3f4x28[_0xc8ca[74]]);return db[_0xc8ca[56]][_0xc8ca[76]](_0xe3f4x1b)[_0xc8ca[45]](respondWithFilteredResult(_0xe3f4x15,_0xe3f4x1b,_0xc8ca[53]))[_0xc8ca[75]](handleError(_0xe3f4x15,null,_0xc8ca[53]))};exports[_0xc8ca[77]]= function(_0xe3f4x28,_0xe3f4x15){var _0xe3f4x1b={raw:true,where:{id:_0xe3f4x28[_0xc8ca[79]][_0xc8ca[78]]}},_0xe3f4x29={};_0xe3f4x29[_0xc8ca[54]]= _[_0xc8ca[57]](db[_0xc8ca[56]][_0xc8ca[55]]);_0xe3f4x29[_0xc8ca[58]]= _[_0xc8ca[57]](_0xe3f4x28[_0xc8ca[58]]);_0xe3f4x29[_0xc8ca[59]]= _[_0xc8ca[60]](_0xe3f4x29[_0xc8ca[54]],_0xe3f4x29[_0xc8ca[58]]);_0xe3f4x1b[_0xc8ca[61]]= _[_0xc8ca[60]](_0xe3f4x29[_0xc8ca[54]],qs[_0xc8ca[62]](_0xe3f4x28[_0xc8ca[58]][_0xc8ca[62]]));_0xe3f4x1b[_0xc8ca[61]]= (_0xe3f4x1b[_0xc8ca[61]][_0xc8ca[63]])?_0xe3f4x1b[_0xc8ca[61]]:_0xe3f4x29[_0xc8ca[54]];_0xe3f4x1b= _[_0xc8ca[73]]({},_0xe3f4x1b,_0xe3f4x28[_0xc8ca[74]]);return db[_0xc8ca[56]][_0xc8ca[80]](_0xe3f4x1b)[_0xc8ca[45]](handleEntityNotFound(_0xe3f4x15,null,_0xc8ca[77]))[_0xc8ca[45]](respondWithResult(_0xe3f4x15,null,_0xc8ca[77]))[_0xc8ca[75]](handleError(_0xe3f4x15,null,_0xc8ca[77]))};exports[_0xc8ca[46]]= function(_0xe3f4x28,_0xe3f4x15){if(_0xe3f4x28[_0xc8ca[81]][_0xc8ca[78]]){delete _0xe3f4x28[_0xc8ca[81]][_0xc8ca[78]]};return db[_0xc8ca[56]][_0xc8ca[80]]({where:{id:_0xe3f4x28[_0xc8ca[79]][_0xc8ca[78]]}})[_0xc8ca[45]](handleEntityNotFound(_0xe3f4x15,null,_0xc8ca[46]))[_0xc8ca[45]](saveUpdates(_0xe3f4x28[_0xc8ca[81]],null,_0xc8ca[46]))[_0xc8ca[45]](respondWithResult(_0xe3f4x15,null,_0xc8ca[46]))[_0xc8ca[75]](handleError(_0xe3f4x15,null,_0xc8ca[46]))};exports[_0xc8ca[48]]= function(_0xe3f4x28,_0xe3f4x15){return db[_0xc8ca[56]][_0xc8ca[80]]({where:{id:_0xe3f4x28[_0xc8ca[79]][_0xc8ca[78]]}})[_0xc8ca[45]](handleEntityNotFound(_0xe3f4x15,null,_0xc8ca[48]))[_0xc8ca[45]](removeEntity(_0xe3f4x15,null,_0xc8ca[48]))[_0xc8ca[75]](handleError(_0xe3f4x15,null,_0xc8ca[48]))};exports[_0xc8ca[82]]= function(_0xe3f4x28,_0xe3f4x15){var _0xe3f4x2c;return db[_0xc8ca[96]][_0xc8ca[97]](function(_0xe3f4x2d){return db[_0xc8ca[56]][_0xc8ca[82]](_0xe3f4x28[_0xc8ca[81]],{transaction:_0xe3f4x2d})[_0xc8ca[45]](function(_0xe3f4x18){_0xe3f4x2c= _0xe3f4x18;var _0xe3f4x2e={type:db[_0xc8ca[84]][_0xc8ca[83]],transaction:_0xe3f4x2d};switch(_0xe3f4x28[_0xc8ca[81]][_0xc8ca[85]]){case _0xc8ca[86]:_0xe3f4x2e[_0xc8ca[85]]= db[_0xc8ca[84]][_0xc8ca[83]];break;case _0xc8ca[88]:_0xe3f4x2e[_0xc8ca[85]]= db[_0xc8ca[84]][_0xc8ca[87]];break;case _0xc8ca[90]:_0xe3f4x2e[_0xc8ca[85]]= db[_0xc8ca[84]][_0xc8ca[89]];break;default:};return db[_0xc8ca[96]][_0xc8ca[95]][_0xc8ca[94]](_0xc8ca[91],util[_0xc8ca[93]](_0xc8ca[92],_0xe3f4x2c[_0xc8ca[78]]),_0xe3f4x2e)})[_0xc8ca[45]](function(){return _0xe3f4x2c})})[_0xc8ca[45]](respondWithResult(_0xe3f4x15,201,_0xc8ca[82]))[_0xc8ca[75]](handleError(_0xe3f4x15,null,_0xc8ca[82]))}
\ No newline at end of file
+var _0xf3ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x79\x70\x65","\x74\x65\x78\x74","\x49\x4E\x54\x45\x47\x45\x52","\x6E\x75\x6D\x62\x65\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x77\x69\x74\x63\x68","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E"];_0xf3ab[0];var jsonpatch=require(_0xf3ab[1]);var rp=require(_0xf3ab[2]);var moment=require(_0xf3ab[3]);var BPromise=require(_0xf3ab[4]);var util=require(_0xf3ab[5]);var path=require(_0xf3ab[6]);var sox=require(_0xf3ab[7]);var ejs=require(_0xf3ab[8]);var fs=require(_0xf3ab[9]);var _=require(_0xf3ab[10]);var squel=require(_0xf3ab[11]);var crypto=require(_0xf3ab[12]);var jsforce=require(_0xf3ab[13]);var toCsv=require(_0xf3ab[14]);var qs=require(_0xf3ab[15]);var logger=require(_0xf3ab[17])(_0xf3ab[16]);var utils=require(_0xf3ab[18]);var config=require(_0xf3ab[19]);var db=require(_0xf3ab[21])[_0xf3ab[20]];function respondWithStatusCode(_0xfbaex15,_0xfbaex16,_0xfbaex17){_0xfbaex16= _0xfbaex16|| 204;return function(_0xfbaex18){if(_0xfbaex18){logger[_0xf3ab[24]](_0xf3ab[22],_0xfbaex17,_0xfbaex16,_0xf3ab[23]);logger[_0xf3ab[26]](_0xf3ab[25],_0xfbaex17,_0xfbaex16,_0xf3ab[23]);return _0xfbaex15[_0xf3ab[27]](_0xfbaex16)};return _0xfbaex15[_0xf3ab[29]](304)[_0xf3ab[28]]()}}function respondWithResult(_0xfbaex15,_0xfbaex16,_0xfbaex17){_0xfbaex16= _0xfbaex16|| 200;return function(_0xfbaex18){if(_0xfbaex18){logger[_0xf3ab[24]](_0xf3ab[22],_0xfbaex17,_0xfbaex16,_0xf3ab[30]);logger[_0xf3ab[26]](_0xf3ab[25],_0xfbaex17,_0xfbaex16,_0xf3ab[30],JSON[_0xf3ab[31]](_0xfbaex18));return _0xfbaex15[_0xf3ab[29]](_0xfbaex16)[_0xf3ab[32]](_0xfbaex18)};return _0xfbaex15[_0xf3ab[29]](304)[_0xf3ab[28]]()}}function respondWithFilteredResult(_0xfbaex15,_0xfbaex1b,_0xfbaex17){return function(_0xfbaex18){if(_0xfbaex18){var _0xfbaex1c=_0xfbaex18[_0xf3ab[33]],_0xfbaex1d=_0xfbaex1b[_0xf3ab[34]],_0xfbaex1e=_0xfbaex1b[_0xf3ab[34]]+ _0xfbaex1b[_0xf3ab[35]],_0xfbaex16;if(_0xfbaex1e>= _0xfbaex1c){_0xfbaex1e= _0xfbaex1c;_0xfbaex16= 200}else {_0xfbaex16= 206};_0xfbaex15[_0xf3ab[29]](_0xfbaex16);logger[_0xf3ab[24]](_0xf3ab[22],_0xfbaex17,_0xfbaex16,_0xf3ab[36]);logger[_0xf3ab[26]](_0xf3ab[25],_0xfbaex17,_0xfbaex16,_0xf3ab[30],JSON[_0xf3ab[31]](_0xfbaex18));return _0xfbaex15[_0xf3ab[40]](_0xf3ab[37],_0xfbaex1d+ _0xf3ab[38]+ _0xfbaex1e+ _0xf3ab[39]+ _0xfbaex1c)[_0xf3ab[32]](_0xfbaex18)};return null}}function patchUpdates(_0xfbaex20){return function(_0xfbaex18){try{jsonpatch[_0xf3ab[41]](_0xfbaex18,_0xfbaex20,true)}catch(err){return BPromise[_0xf3ab[42]](err)};return _0xfbaex18[_0xf3ab[43]]()}}function saveUpdates(_0xfbaex22,_0xfbaex16,_0xfbaex17){return function(_0xfbaex18){if(_0xfbaex18){return _0xfbaex18[_0xf3ab[46]](_0xfbaex22)[_0xf3ab[45]](function(_0xfbaex23){logger[_0xf3ab[24]](_0xf3ab[22],_0xfbaex17,_0xfbaex16,_0xf3ab[44]);logger[_0xf3ab[26]](_0xf3ab[25],_0xfbaex17,_0xfbaex16,_0xf3ab[44],JSON[_0xf3ab[31]](_0xfbaex18));return _0xfbaex23})};return null}}function removeEntity(_0xfbaex15,_0xfbaex16,_0xfbaex17){return function(_0xfbaex18){if(_0xfbaex18){return _0xfbaex18[_0xf3ab[48]]()[_0xf3ab[45]](function(){logger[_0xf3ab[24]](_0xf3ab[22],_0xfbaex17,_0xfbaex16,_0xf3ab[47]);logger[_0xf3ab[26]](_0xf3ab[25],_0xfbaex17,_0xfbaex16,_0xf3ab[47],JSON[_0xf3ab[31]](_0xfbaex18));_0xfbaex15[_0xf3ab[29]](204)[_0xf3ab[28]]()})}}}function handleEntityNotFound(_0xfbaex15,_0xfbaex16,_0xfbaex17){return function(_0xfbaex18){if(!_0xfbaex18){logger[_0xf3ab[50]](_0xf3ab[22],_0xfbaex17,404,_0xf3ab[49]);_0xfbaex15[_0xf3ab[29]](404)[_0xf3ab[28]]();return null};return _0xfbaex18}}function handleError(_0xfbaex15,_0xfbaex16,_0xfbaex17){_0xfbaex16= _0xfbaex16|| 500;return function(_0xfbaex27){logger[_0xf3ab[50]](_0xf3ab[22],_0xfbaex17,_0xfbaex16,JSON[_0xf3ab[31]](_0xfbaex27));delete _0xfbaex27[_0xf3ab[51]];_0xfbaex15[_0xf3ab[29]](_0xfbaex16)[_0xf3ab[52]](_0xfbaex27)}}exports[_0xf3ab[53]]= function(_0xfbaex28,_0xfbaex15){var _0xfbaex1b={},_0xfbaex29={};_0xfbaex29[_0xf3ab[54]]= _[_0xf3ab[57]](db[_0xf3ab[56]][_0xf3ab[55]]);_0xfbaex29[_0xf3ab[58]]= _[_0xf3ab[57]](_0xfbaex28[_0xf3ab[58]]);_0xfbaex29[_0xf3ab[59]]= _[_0xf3ab[60]](_0xfbaex29[_0xf3ab[54]],_0xfbaex29[_0xf3ab[58]]);_0xfbaex1b[_0xf3ab[61]]= _[_0xf3ab[60]](_0xfbaex29[_0xf3ab[54]],qs[_0xf3ab[62]](_0xfbaex28[_0xf3ab[58]][_0xf3ab[62]]));_0xfbaex1b[_0xf3ab[61]]= (_0xfbaex1b[_0xf3ab[61]][_0xf3ab[63]])?_0xfbaex1b[_0xf3ab[61]]:_0xfbaex29[_0xf3ab[54]];if(!_0xfbaex28[_0xf3ab[58]][_0xf3ab[65]](_0xf3ab[64])){_0xfbaex1b[_0xf3ab[35]]= qs[_0xf3ab[35]](_0xfbaex28[_0xf3ab[58]][_0xf3ab[35]]);_0xfbaex1b[_0xf3ab[34]]= qs[_0xf3ab[34]](_0xfbaex28[_0xf3ab[58]][_0xf3ab[34]])};_0xfbaex1b[_0xf3ab[66]]= qs[_0xf3ab[67]](_0xfbaex28[_0xf3ab[58]][_0xf3ab[67]]);_0xfbaex1b[_0xf3ab[68]]= qs[_0xf3ab[59]](_[_0xf3ab[69]](_0xfbaex28[_0xf3ab[58]],_0xfbaex29[_0xf3ab[59]]));if(_0xfbaex28[_0xf3ab[58]][_0xf3ab[70]]){_0xfbaex1b[_0xf3ab[68]]= _[_0xf3ab[73]](_0xfbaex1b[_0xf3ab[68]],{$or:_[_0xf3ab[72]](_0xfbaex1b[_0xf3ab[61]],function(_0xfbaex2a){var _0xfbaex2b={};_0xfbaex2b[_0xfbaex2a]= {$like:_0xf3ab[71]+ _0xfbaex28[_0xf3ab[58]][_0xf3ab[70]]+ _0xf3ab[71]};return _0xfbaex2b})})};_0xfbaex1b= _[_0xf3ab[73]]({},_0xfbaex1b,_0xfbaex28[_0xf3ab[74]]);return db[_0xf3ab[56]][_0xf3ab[76]](_0xfbaex1b)[_0xf3ab[45]](respondWithFilteredResult(_0xfbaex15,_0xfbaex1b,_0xf3ab[53]))[_0xf3ab[75]](handleError(_0xfbaex15,null,_0xf3ab[53]))};exports[_0xf3ab[77]]= function(_0xfbaex28,_0xfbaex15){var _0xfbaex1b={raw:true,where:{id:_0xfbaex28[_0xf3ab[79]][_0xf3ab[78]]}},_0xfbaex29={};_0xfbaex29[_0xf3ab[54]]= _[_0xf3ab[57]](db[_0xf3ab[56]][_0xf3ab[55]]);_0xfbaex29[_0xf3ab[58]]= _[_0xf3ab[57]](_0xfbaex28[_0xf3ab[58]]);_0xfbaex29[_0xf3ab[59]]= _[_0xf3ab[60]](_0xfbaex29[_0xf3ab[54]],_0xfbaex29[_0xf3ab[58]]);_0xfbaex1b[_0xf3ab[61]]= _[_0xf3ab[60]](_0xfbaex29[_0xf3ab[54]],qs[_0xf3ab[62]](_0xfbaex28[_0xf3ab[58]][_0xf3ab[62]]));_0xfbaex1b[_0xf3ab[61]]= (_0xfbaex1b[_0xf3ab[61]][_0xf3ab[63]])?_0xfbaex1b[_0xf3ab[61]]:_0xfbaex29[_0xf3ab[54]];_0xfbaex1b= _[_0xf3ab[73]]({},_0xfbaex1b,_0xfbaex28[_0xf3ab[74]]);return db[_0xf3ab[56]][_0xf3ab[80]](_0xfbaex1b)[_0xf3ab[45]](handleEntityNotFound(_0xfbaex15,null,_0xf3ab[77]))[_0xf3ab[45]](respondWithResult(_0xfbaex15,null,_0xf3ab[77]))[_0xf3ab[75]](handleError(_0xfbaex15,null,_0xf3ab[77]))};exports[_0xf3ab[46]]= function(_0xfbaex28,_0xfbaex15){if(_0xfbaex28[_0xf3ab[81]][_0xf3ab[78]]){delete _0xfbaex28[_0xf3ab[81]][_0xf3ab[78]]};return db[_0xf3ab[56]][_0xf3ab[80]]({where:{id:_0xfbaex28[_0xf3ab[79]][_0xf3ab[78]]}})[_0xf3ab[45]](handleEntityNotFound(_0xfbaex15,null,_0xf3ab[46]))[_0xf3ab[45]](saveUpdates(_0xfbaex28[_0xf3ab[81]],null,_0xf3ab[46]))[_0xf3ab[45]](respondWithResult(_0xfbaex15,null,_0xf3ab[46]))[_0xf3ab[75]](handleError(_0xfbaex15,null,_0xf3ab[46]))};exports[_0xf3ab[48]]= function(_0xfbaex28,_0xfbaex15){return db[_0xf3ab[56]][_0xf3ab[80]]({where:{id:_0xfbaex28[_0xf3ab[79]][_0xf3ab[78]]}})[_0xf3ab[45]](handleEntityNotFound(_0xfbaex15,null,_0xf3ab[48]))[_0xf3ab[45]](removeEntity(_0xfbaex15,null,_0xf3ab[48]))[_0xf3ab[75]](handleError(_0xfbaex15,null,_0xf3ab[48]))};exports[_0xf3ab[82]]= function(_0xfbaex28,_0xfbaex15){var _0xfbaex2c;return db[_0xf3ab[96]][_0xf3ab[97]](function(_0xfbaex2d){return db[_0xf3ab[56]][_0xf3ab[82]](_0xfbaex28[_0xf3ab[81]],{transaction:_0xfbaex2d})[_0xf3ab[45]](function(_0xfbaex18){_0xfbaex2c= _0xfbaex18;var _0xfbaex2e={type:db[_0xf3ab[84]][_0xf3ab[83]],transaction:_0xfbaex2d};switch(_0xfbaex28[_0xf3ab[81]][_0xf3ab[85]]){case _0xf3ab[86]:_0xfbaex2e[_0xf3ab[85]]= db[_0xf3ab[84]][_0xf3ab[83]];break;case _0xf3ab[88]:_0xfbaex2e[_0xf3ab[85]]= db[_0xf3ab[84]][_0xf3ab[87]];break;case _0xf3ab[90]:_0xfbaex2e[_0xf3ab[85]]= db[_0xf3ab[84]][_0xf3ab[89]];break;default:};return db[_0xf3ab[96]][_0xf3ab[95]][_0xf3ab[94]](_0xf3ab[91],util[_0xf3ab[93]](_0xf3ab[92],_0xfbaex2c[_0xf3ab[78]]),_0xfbaex2e)})[_0xf3ab[45]](function(){return _0xfbaex2c})})[_0xf3ab[45]](respondWithResult(_0xfbaex15,201,_0xf3ab[82]))[_0xf3ab[75]](handleError(_0xfbaex15,null,_0xf3ab[82]))}
\ No newline at end of file
index 90c44b5..b01285a 100644 (file)
@@ -1 +1 @@
-var _0xc43b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x63\x6D\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xc43b[0];var _=require(_0xc43b[1]);var util=require(_0xc43b[2]);var logger=require(_0xc43b[4])(_0xc43b[3]);var attributes=require(_0xc43b[5]);module[_0xc43b[6]]= function(_0x8586x5,_0x8586x6){return _0x8586x5[_0xc43b[9]](_0xc43b[7],attributes,{tableName:_0xc43b[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x8f3a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x63\x6D\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x8f3a[0];var _=require(_0x8f3a[1]);var util=require(_0x8f3a[2]);var logger=require(_0x8f3a[4])(_0x8f3a[3]);var attributes=require(_0x8f3a[5]);module[_0x8f3a[6]]= function(_0xa811x5,_0xa811x6){return _0xa811x5[_0x8f3a[9]](_0x8f3a[7],attributes,{tableName:_0x8f3a[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
index db8f9e5..9a1c8b3 100644 (file)
@@ -1 +1 @@
-var _0x80ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x80ef[0];var _=require(_0x80ef[1]);var util=require(_0x80ef[2]);var moment=require(_0x80ef[3]);var BPromise=require(_0x80ef[4]);var db=require(_0x80ef[6])[_0x80ef[5]];var utils=require(_0x80ef[7]);var logger=require(_0x80ef[9])(_0x80ef[8]);var jayson=require(_0x80ef[10]);var client=jayson[_0x80ef[12]][_0x80ef[11]]({port:9002});function respondWithRpcPromise(_0xa080xb,_0xa080xc,_0xa080xd){return  new BPromise(function(_0xa080xe,_0xa080xf){return client[_0x80ef[25]](_0xa080xb,_0xa080xd)[_0x80ef[24]](function(_0xa080x11){logger[_0x80ef[17]](_0x80ef[13],_0xa080xc,_0x80ef[16]);logger[_0x80ef[20]](_0x80ef[18],_0xa080xc,_0x80ef[16],JSON[_0x80ef[19]](_0xa080x11));if(_0xa080x11[_0x80ef[14]]){if(_0xa080x11[_0x80ef[14]][_0x80ef[21]]=== 500){logger[_0x80ef[14]](_0x80ef[13],_0xa080xc,_0xa080x11[_0x80ef[14]][_0x80ef[22]]);return _0xa080xf(_0xa080x11[_0x80ef[14]][_0x80ef[22]])};logger[_0x80ef[14]](_0x80ef[13],_0xa080xc,_0xa080x11[_0x80ef[14]][_0x80ef[22]]);return _0xa080xe(_0xa080x11[_0x80ef[14]][_0x80ef[22]])}else {logger[_0x80ef[17]](_0x80ef[13],_0xa080xc,_0x80ef[16]);_0xa080xe(_0xa080x11[_0x80ef[23]][_0x80ef[22]])}})[_0x80ef[15]](function(_0xa080x10){logger[_0x80ef[14]](_0x80ef[13],_0xa080xc,_0xa080x10);_0xa080xf(_0xa080x10)})})}
\ No newline at end of file
+var _0x3fe0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3fe0[0];var _=require(_0x3fe0[1]);var util=require(_0x3fe0[2]);var moment=require(_0x3fe0[3]);var BPromise=require(_0x3fe0[4]);var db=require(_0x3fe0[6])[_0x3fe0[5]];var utils=require(_0x3fe0[7]);var logger=require(_0x3fe0[9])(_0x3fe0[8]);var jayson=require(_0x3fe0[10]);var client=jayson[_0x3fe0[12]][_0x3fe0[11]]({port:9002});function respondWithRpcPromise(_0x6101xb,_0x6101xc,_0x6101xd){return  new BPromise(function(_0x6101xe,_0x6101xf){return client[_0x3fe0[25]](_0x6101xb,_0x6101xd)[_0x3fe0[24]](function(_0x6101x11){logger[_0x3fe0[17]](_0x3fe0[13],_0x6101xc,_0x3fe0[16]);logger[_0x3fe0[20]](_0x3fe0[18],_0x6101xc,_0x3fe0[16],JSON[_0x3fe0[19]](_0x6101x11));if(_0x6101x11[_0x3fe0[14]]){if(_0x6101x11[_0x3fe0[14]][_0x3fe0[21]]=== 500){logger[_0x3fe0[14]](_0x3fe0[13],_0x6101xc,_0x6101x11[_0x3fe0[14]][_0x3fe0[22]]);return _0x6101xf(_0x6101x11[_0x3fe0[14]][_0x3fe0[22]])};logger[_0x3fe0[14]](_0x3fe0[13],_0x6101xc,_0x6101x11[_0x3fe0[14]][_0x3fe0[22]]);return _0x6101xe(_0x6101x11[_0x3fe0[14]][_0x3fe0[22]])}else {logger[_0x3fe0[17]](_0x3fe0[13],_0x6101xc,_0x3fe0[16]);_0x6101xe(_0x6101x11[_0x3fe0[23]][_0x3fe0[22]])}})[_0x3fe0[15]](function(_0x6101x10){logger[_0x3fe0[14]](_0x3fe0[13],_0x6101xc,_0x6101x10);_0x6101xf(_0x6101x10)})})}
\ No newline at end of file
index 81f7ec4..9a1bf37 100644 (file)
@@ -1 +1 @@
-var _0x31d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x31d2[0];var multer=require(_0x31d2[1]);var util=require(_0x31d2[2]);var path=require(_0x31d2[3]);var express=require(_0x31d2[4]);var router=express.Router();var auth=require(_0x31d2[5]);var config=require(_0x31d2[6]);var controller=require(_0x31d2[7]);router[_0x31d2[11]](_0x31d2[8],auth[_0x31d2[9]](),controller[_0x31d2[10]]);router[_0x31d2[11]](_0x31d2[12],auth[_0x31d2[9]](),controller[_0x31d2[13]]);router[_0x31d2[15]](_0x31d2[8],auth[_0x31d2[9]](),controller[_0x31d2[14]]);router[_0x31d2[17]](_0x31d2[12],auth[_0x31d2[9]](),controller[_0x31d2[16]]);router[_0x31d2[19]](_0x31d2[12],auth[_0x31d2[9]](),controller[_0x31d2[18]]);module[_0x31d2[20]]= router
\ No newline at end of file
+var _0xe3c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe3c4[0];var multer=require(_0xe3c4[1]);var util=require(_0xe3c4[2]);var path=require(_0xe3c4[3]);var express=require(_0xe3c4[4]);var router=express.Router();var auth=require(_0xe3c4[5]);var config=require(_0xe3c4[6]);var controller=require(_0xe3c4[7]);router[_0xe3c4[11]](_0xe3c4[8],auth[_0xe3c4[9]](),controller[_0xe3c4[10]]);router[_0xe3c4[11]](_0xe3c4[12],auth[_0xe3c4[9]](),controller[_0xe3c4[13]]);router[_0xe3c4[15]](_0xe3c4[8],auth[_0xe3c4[9]](),controller[_0xe3c4[14]]);router[_0xe3c4[17]](_0xe3c4[12],auth[_0xe3c4[9]](),controller[_0xe3c4[16]]);router[_0xe3c4[19]](_0xe3c4[12],auth[_0xe3c4[9]](),controller[_0xe3c4[18]]);module[_0xe3c4[20]]= router
\ No newline at end of file
index edaedc6..fdc424a 100644 (file)
@@ -1 +1 @@
-var _0xd574=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x49\x4E\x54\x45\x47\x45\x52","\x63\x6F\x6E\x74\x61\x63\x74\x4C\x69\x73\x74\x51\x75\x65\x75\x65"];_0xd574[0];var moment=require(_0xd574[1]);var Sequelize=require(_0xd574[2]);module[_0xd574[3]]= {phone:{type:Sequelize[_0xd574[4]],allowNull:false},active:{type:Sequelize[_0xd574[5]],defaultValue:false},scheduledat:{type:Sequelize[_0xd574[6]],defaultValue:moment()[_0xd574[8]](_0xd574[7])},countbusyretry:{type:Sequelize[_0xd574[9]],defaultValue:0},countcongestionretry:{type:Sequelize[_0xd574[9]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0xd574[9]],defaultValue:0},callback:{type:Sequelize[_0xd574[5]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0xd574[4]],defaultValue:null},callbackat:{type:Sequelize[_0xd574[6]]},ContactId:{type:Sequelize[_0xd574[9]],unique:_0xd574[10]},ListId:{type:Sequelize[_0xd574[9]],unique:_0xd574[10]},UserId:{type:Sequelize[_0xd574[9]]},VoiceQueueId:{type:Sequelize[_0xd574[9]],unique:_0xd574[10]},CampaignId:{type:Sequelize[_0xd574[9]]}}
\ No newline at end of file
+var _0xd02e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x49\x4E\x54\x45\x47\x45\x52","\x63\x6F\x6E\x74\x61\x63\x74\x4C\x69\x73\x74\x51\x75\x65\x75\x65"];_0xd02e[0];var moment=require(_0xd02e[1]);var Sequelize=require(_0xd02e[2]);module[_0xd02e[3]]= {phone:{type:Sequelize[_0xd02e[4]],allowNull:false},active:{type:Sequelize[_0xd02e[5]],defaultValue:false},scheduledat:{type:Sequelize[_0xd02e[6]],defaultValue:moment()[_0xd02e[8]](_0xd02e[7])},countbusyretry:{type:Sequelize[_0xd02e[9]],defaultValue:0},countcongestionretry:{type:Sequelize[_0xd02e[9]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0xd02e[9]],defaultValue:0},callback:{type:Sequelize[_0xd02e[5]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0xd02e[4]],defaultValue:null},callbackat:{type:Sequelize[_0xd02e[6]]},ContactId:{type:Sequelize[_0xd02e[9]],unique:_0xd02e[10]},ListId:{type:Sequelize[_0xd02e[9]],unique:_0xd02e[10]},UserId:{type:Sequelize[_0xd02e[9]]},VoiceQueueId:{type:Sequelize[_0xd02e[9]],unique:_0xd02e[10]},CampaignId:{type:Sequelize[_0xd02e[9]]}}
\ No newline at end of file
index cbccc20..82838c0 100644 (file)
@@ -1 +1 @@
-var _0x3c2b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x6C\x65\x74\x65\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x71\x75\x65\x75\x65","\x69\x76\x72","\x43\x6F\x6D\x70\x61\x69\x67\x6E\x49\x64","\x4C\x69\x73\x74\x49\x64","\x75\x73\x65\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x67\x65\x74\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74\x73","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x6E\x6F\x77","\x69\x6E\x63\x6C\x75\x64\x65","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x72\x73\x74\x6E\x61\x6D\x65","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x6C\x6F\x63\x6B","\x55\x50\x44\x41\x54\x45","\x4C\x4F\x43\x4B","\x70\x75\x73\x68","\x61\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x70\x72\x65\x76\x69\x65\x77","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x63\x61\x6C\x6C\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74"];_0x3c2b[0];var jsonpatch=require(_0x3c2b[1]);var rp=require(_0x3c2b[2]);var moment=require(_0x3c2b[3]);var BPromise=require(_0x3c2b[4]);var util=require(_0x3c2b[5]);var path=require(_0x3c2b[6]);var sox=require(_0x3c2b[7]);var ejs=require(_0x3c2b[8]);var fs=require(_0x3c2b[9]);var _=require(_0x3c2b[10]);var squel=require(_0x3c2b[11]);var crypto=require(_0x3c2b[12]);var jsforce=require(_0x3c2b[13]);var toCsv=require(_0x3c2b[14]);var qs=require(_0x3c2b[15]);var logger=require(_0x3c2b[17])(_0x3c2b[16]);var utils=require(_0x3c2b[18]);var config=require(_0x3c2b[19]);var db=require(_0x3c2b[21])[_0x3c2b[20]];function respondWithStatusCode(_0xc047x15,_0xc047x16,_0xc047x17){_0xc047x16= _0xc047x16|| 204;return function(_0xc047x18){if(_0xc047x18){logger[_0x3c2b[24]](_0x3c2b[22],_0xc047x17,_0xc047x16,_0x3c2b[23]);logger[_0x3c2b[26]](_0x3c2b[25],_0xc047x17,_0xc047x16,_0x3c2b[23]);return _0xc047x15[_0x3c2b[27]](_0xc047x16)};return _0xc047x15[_0x3c2b[29]](304)[_0x3c2b[28]]()}}function respondWithResult(_0xc047x15,_0xc047x16,_0xc047x17){_0xc047x16= _0xc047x16|| 200;return function(_0xc047x18){if(_0xc047x18){logger[_0x3c2b[24]](_0x3c2b[22],_0xc047x17,_0xc047x16,_0x3c2b[30]);logger[_0x3c2b[26]](_0x3c2b[25],_0xc047x17,_0xc047x16,_0x3c2b[30],JSON[_0x3c2b[31]](_0xc047x18));return _0xc047x15[_0x3c2b[29]](_0xc047x16)[_0x3c2b[32]](_0xc047x18)};return _0xc047x15[_0x3c2b[29]](304)[_0x3c2b[28]]()}}function respondWithFilteredResult(_0xc047x15,_0xc047x1b,_0xc047x17){return function(_0xc047x18){if(_0xc047x18){var _0xc047x1c=_0xc047x18[_0x3c2b[33]],_0xc047x1d=_0xc047x1b[_0x3c2b[34]],_0xc047x1e=_0xc047x1b[_0x3c2b[34]]+ _0xc047x1b[_0x3c2b[35]],_0xc047x16;if(_0xc047x1e>= _0xc047x1c){_0xc047x1e= _0xc047x1c;_0xc047x16= 200}else {_0xc047x16= 206};_0xc047x15[_0x3c2b[29]](_0xc047x16);logger[_0x3c2b[24]](_0x3c2b[22],_0xc047x17,_0xc047x16,_0x3c2b[36]);logger[_0x3c2b[26]](_0x3c2b[25],_0xc047x17,_0xc047x16,_0x3c2b[30],JSON[_0x3c2b[31]](_0xc047x18));return _0xc047x15[_0x3c2b[40]](_0x3c2b[37],_0xc047x1d+ _0x3c2b[38]+ _0xc047x1e+ _0x3c2b[39]+ _0xc047x1c)[_0x3c2b[32]](_0xc047x18)};return null}}function patchUpdates(_0xc047x20){return function(_0xc047x18){try{jsonpatch[_0x3c2b[41]](_0xc047x18,_0xc047x20,true)}catch(err){return BPromise[_0x3c2b[42]](err)};return _0xc047x18[_0x3c2b[43]]()}}function saveUpdates(_0xc047x22,_0xc047x16,_0xc047x17){return function(_0xc047x18){if(_0xc047x18){return _0xc047x18[_0x3c2b[46]](_0xc047x22)[_0x3c2b[45]](function(_0xc047x23){logger[_0x3c2b[24]](_0x3c2b[22],_0xc047x17,_0xc047x16,_0x3c2b[44]);logger[_0x3c2b[26]](_0x3c2b[25],_0xc047x17,_0xc047x16,_0x3c2b[44],JSON[_0x3c2b[31]](_0xc047x18));return _0xc047x23})};return null}}function removeEntity(_0xc047x15,_0xc047x16,_0xc047x17){return function(_0xc047x18){if(_0xc047x18){return _0xc047x18[_0x3c2b[48]]()[_0x3c2b[45]](function(){logger[_0x3c2b[24]](_0x3c2b[22],_0xc047x17,_0xc047x16,_0x3c2b[47]);logger[_0x3c2b[26]](_0x3c2b[25],_0xc047x17,_0xc047x16,_0x3c2b[47],JSON[_0x3c2b[31]](_0xc047x18));_0xc047x15[_0x3c2b[29]](204)[_0x3c2b[28]]()})}}}function handleEntityNotFound(_0xc047x15,_0xc047x16,_0xc047x17){return function(_0xc047x18){if(!_0xc047x18){logger[_0x3c2b[50]](_0x3c2b[22],_0xc047x17,404,_0x3c2b[49]);_0xc047x15[_0x3c2b[29]](404)[_0x3c2b[28]]();return null};return _0xc047x18}}function handleError(_0xc047x15,_0xc047x16,_0xc047x17){_0xc047x16= _0xc047x16|| 500;return function(_0xc047x27){logger[_0x3c2b[50]](_0x3c2b[22],_0xc047x17,_0xc047x16,JSON[_0x3c2b[31]](_0xc047x27));delete _0xc047x27[_0x3c2b[51]];_0xc047x15[_0x3c2b[29]](_0xc047x16)[_0x3c2b[52]](_0xc047x27)}}exports[_0x3c2b[53]]= function(_0xc047x28,_0xc047x15){var _0xc047x1b={},_0xc047x29={};_0xc047x29[_0x3c2b[54]]= _[_0x3c2b[57]](db[_0x3c2b[56]][_0x3c2b[55]]);_0xc047x29[_0x3c2b[58]]= _[_0x3c2b[57]](_0xc047x28[_0x3c2b[58]]);_0xc047x29[_0x3c2b[59]]= _[_0x3c2b[60]](_0xc047x29[_0x3c2b[54]],_0xc047x29[_0x3c2b[58]]);_0xc047x1b[_0x3c2b[61]]= _[_0x3c2b[60]](_0xc047x29[_0x3c2b[54]],qs[_0x3c2b[62]](_0xc047x28[_0x3c2b[58]][_0x3c2b[62]]));_0xc047x1b[_0x3c2b[61]]= (_0xc047x1b[_0x3c2b[61]][_0x3c2b[63]])?_0xc047x1b[_0x3c2b[61]]:_0xc047x29[_0x3c2b[54]];if(!_0xc047x28[_0x3c2b[58]][_0x3c2b[65]](_0x3c2b[64])){_0xc047x1b[_0x3c2b[35]]= qs[_0x3c2b[35]](_0xc047x28[_0x3c2b[58]][_0x3c2b[35]]);_0xc047x1b[_0x3c2b[34]]= qs[_0x3c2b[34]](_0xc047x28[_0x3c2b[58]][_0x3c2b[34]])};_0xc047x1b[_0x3c2b[66]]= qs[_0x3c2b[67]](_0xc047x28[_0x3c2b[58]][_0x3c2b[67]]);_0xc047x1b[_0x3c2b[68]]= qs[_0x3c2b[59]](_[_0x3c2b[69]](_0xc047x28[_0x3c2b[58]],_0xc047x29[_0x3c2b[59]]));if(_0xc047x28[_0x3c2b[58]][_0x3c2b[70]]){_0xc047x1b[_0x3c2b[68]]= _[_0x3c2b[73]](_0xc047x1b[_0x3c2b[68]],{$or:_[_0x3c2b[72]](_0xc047x1b[_0x3c2b[61]],function(_0xc047x2a){var _0xc047x2b={};_0xc047x2b[_0xc047x2a]= {$like:_0x3c2b[71]+ _0xc047x28[_0x3c2b[58]][_0x3c2b[70]]+ _0x3c2b[71]};return _0xc047x2b})})};_0xc047x1b= _[_0x3c2b[73]]({},_0xc047x1b,_0xc047x28[_0x3c2b[74]]);return db[_0x3c2b[56]][_0x3c2b[76]](_0xc047x1b)[_0x3c2b[45]](respondWithFilteredResult(_0xc047x15,_0xc047x1b,_0x3c2b[53]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[53]))};exports[_0x3c2b[77]]= function(_0xc047x28,_0xc047x15){var _0xc047x1b={raw:true,where:{id:_0xc047x28[_0x3c2b[79]][_0x3c2b[78]]}},_0xc047x29={};_0xc047x29[_0x3c2b[54]]= _[_0x3c2b[57]](db[_0x3c2b[56]][_0x3c2b[55]]);_0xc047x29[_0x3c2b[58]]= _[_0x3c2b[57]](_0xc047x28[_0x3c2b[58]]);_0xc047x29[_0x3c2b[59]]= _[_0x3c2b[60]](_0xc047x29[_0x3c2b[54]],_0xc047x29[_0x3c2b[58]]);_0xc047x1b[_0x3c2b[61]]= _[_0x3c2b[60]](_0xc047x29[_0x3c2b[54]],qs[_0x3c2b[62]](_0xc047x28[_0x3c2b[58]][_0x3c2b[62]]));_0xc047x1b[_0x3c2b[61]]= (_0xc047x1b[_0x3c2b[61]][_0x3c2b[63]])?_0xc047x1b[_0x3c2b[61]]:_0xc047x29[_0x3c2b[54]];_0xc047x1b= _[_0x3c2b[73]]({},_0xc047x1b,_0xc047x28[_0x3c2b[74]]);return db[_0x3c2b[56]][_0x3c2b[80]](_0xc047x1b)[_0x3c2b[45]](handleEntityNotFound(_0xc047x15,null,_0x3c2b[77]))[_0x3c2b[45]](respondWithResult(_0xc047x15,null,_0x3c2b[77]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[77]))};exports[_0x3c2b[81]]= function(_0xc047x28,_0xc047x15){return db[_0x3c2b[56]][_0x3c2b[81]](_0xc047x28[_0x3c2b[82]],{})[_0x3c2b[45]](respondWithResult(_0xc047x15,201,_0x3c2b[81]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[81]))};exports[_0x3c2b[46]]= function(_0xc047x28,_0xc047x15){if(_0xc047x28[_0x3c2b[82]][_0x3c2b[78]]){delete _0xc047x28[_0x3c2b[82]][_0x3c2b[78]]};return db[_0x3c2b[56]][_0x3c2b[80]]({where:{id:_0xc047x28[_0x3c2b[79]][_0x3c2b[78]]}})[_0x3c2b[45]](handleEntityNotFound(_0xc047x15,null,_0x3c2b[46]))[_0x3c2b[45]](saveUpdates(_0xc047x28[_0x3c2b[82]],null,_0x3c2b[46]))[_0x3c2b[45]](respondWithResult(_0xc047x15,null,_0x3c2b[46]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[46]))};exports[_0x3c2b[83]]= function(_0xc047x28,_0xc047x15){return db[_0x3c2b[56]][_0x3c2b[83]]()[_0x3c2b[45]](respondWithResult(_0xc047x15,null,_0x3c2b[83]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[83]))};exports[_0x3c2b[48]]= function(_0xc047x28,_0xc047x15){var _0xc047x2c;return db[_0x3c2b[56]][_0x3c2b[80]]({where:{id:_0xc047x28[_0x3c2b[79]][_0x3c2b[78]]}})[_0x3c2b[45]](handleEntityNotFound(_0xc047x15,null,_0x3c2b[48]))[_0x3c2b[45]](function(_0xc047x18){if(_0xc047x18){return _0xc047x18[_0x3c2b[48]]()[_0x3c2b[45]](function(_0xc047x18){logger[_0x3c2b[24]](_0x3c2b[22],_0x3c2b[48],204,_0x3c2b[47]);logger[_0x3c2b[26]](_0x3c2b[25],_0x3c2b[48],204,_0x3c2b[47],JSON[_0x3c2b[31]](_0xc047x18));return _0xc047x18})}})[_0x3c2b[45]](function(_0xc047x18){_0xc047x2c= _0xc047x18;if(_0xc047x18){if(_0xc047x18[_0x3c2b[85]]|| _0xc047x18[_0x3c2b[94]]){return db[_0xc047x18[_0x3c2b[85]]?_0x3c2b[95]:_0x3c2b[96]][_0x3c2b[80]]({where:{id:_0xc047x18[_0x3c2b[85]]?_0xc047x18[_0x3c2b[85]]:_0xc047x18[_0x3c2b[94]]},attributes:[_0x3c2b[78],_0x3c2b[51]],raw:true})}}})[_0x3c2b[45]](function(_0xc047x18){if(_0xc047x18){return db[_0x3c2b[93]][_0x3c2b[81]]({state:18,statedesc:_0x3c2b[84],campaign:_0xc047x18[_0x3c2b[51]],campaigntype:_0xc047x2c[_0x3c2b[85]]?_0x3c2b[86]:_0x3c2b[87],CampaignId:_0xc047x2c[_0x3c2b[88]]|| null,VoiceQueueId:_0xc047x2c[_0x3c2b[85]]|| null,ListId:_0xc047x2c[_0x3c2b[89]]|| null,membername:_0xc047x28[_0x3c2b[90]][_0x3c2b[51]],UserId:_0xc047x28[_0x3c2b[90]][_0x3c2b[78]],deleted:true,deletedat:moment()[_0x3c2b[92]](_0x3c2b[91])})}})[_0x3c2b[45]](function(){return _0xc047x15[_0x3c2b[29]](204)[_0x3c2b[28]]()})[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[48]))};exports[_0x3c2b[97]]= function(_0xc047x28,_0xc047x15,_0xc047x2d){var _0xc047x2e={count:0,rows:[]};var _0xc047x1b={};var _0xc047x29={};_0xc047x29[_0x3c2b[54]]= _[_0x3c2b[57]](db[_0x3c2b[56]][_0x3c2b[55]]);_0xc047x29[_0x3c2b[58]]= _[_0x3c2b[57]](_0xc047x28[_0x3c2b[58]]);_0xc047x29[_0x3c2b[59]]= _[_0x3c2b[60]](_0xc047x29[_0x3c2b[54]],_0xc047x29[_0x3c2b[58]]);_0xc047x1b[_0x3c2b[61]]= [_0x3c2b[78]];_0xc047x1b[_0x3c2b[35]]= qs[_0x3c2b[35]](_0xc047x28[_0x3c2b[58]][_0x3c2b[35]]);_0xc047x1b[_0x3c2b[34]]= qs[_0x3c2b[34]](_0xc047x28[_0x3c2b[58]][_0x3c2b[34]]);_0xc047x1b[_0x3c2b[66]]= _0x3c2b[98];_0xc047x1b[_0x3c2b[68]]= {active:false,scheduledAt:{$lte:Date[_0x3c2b[99]]()}};_0xc047x1b[_0x3c2b[100]]= [{model:db[_0x3c2b[101]],as:_0x3c2b[102],attributes:[_0x3c2b[78],_0x3c2b[103],_0x3c2b[104],_0x3c2b[105]]}];return _0xc047x28[_0x3c2b[90]][_0x3c2b[116]]({where:{type:_0x3c2b[114],dialMethod:_0x3c2b[115]},attributes:[_0x3c2b[78]],raw:true})[_0x3c2b[45]](function(_0xc047x2f){_0xc047x1b[_0x3c2b[68]][_0x3c2b[85]]= {$in:_[_0x3c2b[72]](_0xc047x2f,_0x3c2b[78])};return db[_0x3c2b[113]][_0x3c2b[106]](function(_0xc047x30){_0xc047x1b[_0x3c2b[106]]= _0xc047x30;_0xc047x1b[_0x3c2b[107]]= _0xc047x30[_0x3c2b[109]][_0x3c2b[108]];return db[_0x3c2b[56]][_0x3c2b[112]](_0xc047x1b)[_0x3c2b[45]](function(_0xc047x31){var _0xc047x32=[];var _0xc047x33={active:true};for(var _0xc047x34=0;_0xc047x34< _0xc047x31[_0x3c2b[63]];_0xc047x34+= 1){_0xc047x32[_0x3c2b[110]](_0xc047x31[_0xc047x34][_0x3c2b[46]](_0xc047x33,{transaction:_0xc047x30}))};return BPromise[_0x3c2b[111]](_0xc047x32)})[_0x3c2b[45]](function(_0xc047x31){return {rows:_0xc047x31|| [],count:_0xc047x31?_0xc047x31[_0x3c2b[63]]:0}})})})[_0x3c2b[45]](respondWithResult(_0xc047x15,null,_0x3c2b[97]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[97]))};exports[_0x3c2b[117]]= function(_0xc047x28,_0xc047x15,_0xc047x2d){return db[_0x3c2b[56]][_0x3c2b[80]]({raw:true,where:{id:_0xc047x28[_0x3c2b[79]][_0x3c2b[78]]}})[_0x3c2b[45]](handleEntityNotFound(_0xc047x15,null,_0x3c2b[117]))[_0x3c2b[45]](respondWithResult(_0xc047x15,null,_0x3c2b[117]))[_0x3c2b[75]](handleError(_0xc047x15,null,_0x3c2b[117]))}
\ No newline at end of file
+var _0x744c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x6C\x65\x74\x65\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x71\x75\x65\x75\x65","\x69\x76\x72","\x43\x6F\x6D\x70\x61\x69\x67\x6E\x49\x64","\x4C\x69\x73\x74\x49\x64","\x75\x73\x65\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x67\x65\x74\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74\x73","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x6E\x6F\x77","\x69\x6E\x63\x6C\x75\x64\x65","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x72\x73\x74\x6E\x61\x6D\x65","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x6C\x6F\x63\x6B","\x55\x50\x44\x41\x54\x45","\x4C\x4F\x43\x4B","\x70\x75\x73\x68","\x61\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x70\x72\x65\x76\x69\x65\x77","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x63\x61\x6C\x6C\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74"];_0x744c[0];var jsonpatch=require(_0x744c[1]);var rp=require(_0x744c[2]);var moment=require(_0x744c[3]);var BPromise=require(_0x744c[4]);var util=require(_0x744c[5]);var path=require(_0x744c[6]);var sox=require(_0x744c[7]);var ejs=require(_0x744c[8]);var fs=require(_0x744c[9]);var _=require(_0x744c[10]);var squel=require(_0x744c[11]);var crypto=require(_0x744c[12]);var jsforce=require(_0x744c[13]);var toCsv=require(_0x744c[14]);var qs=require(_0x744c[15]);var logger=require(_0x744c[17])(_0x744c[16]);var utils=require(_0x744c[18]);var config=require(_0x744c[19]);var db=require(_0x744c[21])[_0x744c[20]];function respondWithStatusCode(_0x2db6x15,_0x2db6x16,_0x2db6x17){_0x2db6x16= _0x2db6x16|| 204;return function(_0x2db6x18){if(_0x2db6x18){logger[_0x744c[24]](_0x744c[22],_0x2db6x17,_0x2db6x16,_0x744c[23]);logger[_0x744c[26]](_0x744c[25],_0x2db6x17,_0x2db6x16,_0x744c[23]);return _0x2db6x15[_0x744c[27]](_0x2db6x16)};return _0x2db6x15[_0x744c[29]](304)[_0x744c[28]]()}}function respondWithResult(_0x2db6x15,_0x2db6x16,_0x2db6x17){_0x2db6x16= _0x2db6x16|| 200;return function(_0x2db6x18){if(_0x2db6x18){logger[_0x744c[24]](_0x744c[22],_0x2db6x17,_0x2db6x16,_0x744c[30]);logger[_0x744c[26]](_0x744c[25],_0x2db6x17,_0x2db6x16,_0x744c[30],JSON[_0x744c[31]](_0x2db6x18));return _0x2db6x15[_0x744c[29]](_0x2db6x16)[_0x744c[32]](_0x2db6x18)};return _0x2db6x15[_0x744c[29]](304)[_0x744c[28]]()}}function respondWithFilteredResult(_0x2db6x15,_0x2db6x1b,_0x2db6x17){return function(_0x2db6x18){if(_0x2db6x18){var _0x2db6x1c=_0x2db6x18[_0x744c[33]],_0x2db6x1d=_0x2db6x1b[_0x744c[34]],_0x2db6x1e=_0x2db6x1b[_0x744c[34]]+ _0x2db6x1b[_0x744c[35]],_0x2db6x16;if(_0x2db6x1e>= _0x2db6x1c){_0x2db6x1e= _0x2db6x1c;_0x2db6x16= 200}else {_0x2db6x16= 206};_0x2db6x15[_0x744c[29]](_0x2db6x16);logger[_0x744c[24]](_0x744c[22],_0x2db6x17,_0x2db6x16,_0x744c[36]);logger[_0x744c[26]](_0x744c[25],_0x2db6x17,_0x2db6x16,_0x744c[30],JSON[_0x744c[31]](_0x2db6x18));return _0x2db6x15[_0x744c[40]](_0x744c[37],_0x2db6x1d+ _0x744c[38]+ _0x2db6x1e+ _0x744c[39]+ _0x2db6x1c)[_0x744c[32]](_0x2db6x18)};return null}}function patchUpdates(_0x2db6x20){return function(_0x2db6x18){try{jsonpatch[_0x744c[41]](_0x2db6x18,_0x2db6x20,true)}catch(err){return BPromise[_0x744c[42]](err)};return _0x2db6x18[_0x744c[43]]()}}function saveUpdates(_0x2db6x22,_0x2db6x16,_0x2db6x17){return function(_0x2db6x18){if(_0x2db6x18){return _0x2db6x18[_0x744c[46]](_0x2db6x22)[_0x744c[45]](function(_0x2db6x23){logger[_0x744c[24]](_0x744c[22],_0x2db6x17,_0x2db6x16,_0x744c[44]);logger[_0x744c[26]](_0x744c[25],_0x2db6x17,_0x2db6x16,_0x744c[44],JSON[_0x744c[31]](_0x2db6x18));return _0x2db6x23})};return null}}function removeEntity(_0x2db6x15,_0x2db6x16,_0x2db6x17){return function(_0x2db6x18){if(_0x2db6x18){return _0x2db6x18[_0x744c[48]]()[_0x744c[45]](function(){logger[_0x744c[24]](_0x744c[22],_0x2db6x17,_0x2db6x16,_0x744c[47]);logger[_0x744c[26]](_0x744c[25],_0x2db6x17,_0x2db6x16,_0x744c[47],JSON[_0x744c[31]](_0x2db6x18));_0x2db6x15[_0x744c[29]](204)[_0x744c[28]]()})}}}function handleEntityNotFound(_0x2db6x15,_0x2db6x16,_0x2db6x17){return function(_0x2db6x18){if(!_0x2db6x18){logger[_0x744c[50]](_0x744c[22],_0x2db6x17,404,_0x744c[49]);_0x2db6x15[_0x744c[29]](404)[_0x744c[28]]();return null};return _0x2db6x18}}function handleError(_0x2db6x15,_0x2db6x16,_0x2db6x17){_0x2db6x16= _0x2db6x16|| 500;return function(_0x2db6x27){logger[_0x744c[50]](_0x744c[22],_0x2db6x17,_0x2db6x16,JSON[_0x744c[31]](_0x2db6x27));delete _0x2db6x27[_0x744c[51]];_0x2db6x15[_0x744c[29]](_0x2db6x16)[_0x744c[52]](_0x2db6x27)}}exports[_0x744c[53]]= function(_0x2db6x28,_0x2db6x15){var _0x2db6x1b={},_0x2db6x29={};_0x2db6x29[_0x744c[54]]= _[_0x744c[57]](db[_0x744c[56]][_0x744c[55]]);_0x2db6x29[_0x744c[58]]= _[_0x744c[57]](_0x2db6x28[_0x744c[58]]);_0x2db6x29[_0x744c[59]]= _[_0x744c[60]](_0x2db6x29[_0x744c[54]],_0x2db6x29[_0x744c[58]]);_0x2db6x1b[_0x744c[61]]= _[_0x744c[60]](_0x2db6x29[_0x744c[54]],qs[_0x744c[62]](_0x2db6x28[_0x744c[58]][_0x744c[62]]));_0x2db6x1b[_0x744c[61]]= (_0x2db6x1b[_0x744c[61]][_0x744c[63]])?_0x2db6x1b[_0x744c[61]]:_0x2db6x29[_0x744c[54]];if(!_0x2db6x28[_0x744c[58]][_0x744c[65]](_0x744c[64])){_0x2db6x1b[_0x744c[35]]= qs[_0x744c[35]](_0x2db6x28[_0x744c[58]][_0x744c[35]]);_0x2db6x1b[_0x744c[34]]= qs[_0x744c[34]](_0x2db6x28[_0x744c[58]][_0x744c[34]])};_0x2db6x1b[_0x744c[66]]= qs[_0x744c[67]](_0x2db6x28[_0x744c[58]][_0x744c[67]]);_0x2db6x1b[_0x744c[68]]= qs[_0x744c[59]](_[_0x744c[69]](_0x2db6x28[_0x744c[58]],_0x2db6x29[_0x744c[59]]));if(_0x2db6x28[_0x744c[58]][_0x744c[70]]){_0x2db6x1b[_0x744c[68]]= _[_0x744c[73]](_0x2db6x1b[_0x744c[68]],{$or:_[_0x744c[72]](_0x2db6x1b[_0x744c[61]],function(_0x2db6x2a){var _0x2db6x2b={};_0x2db6x2b[_0x2db6x2a]= {$like:_0x744c[71]+ _0x2db6x28[_0x744c[58]][_0x744c[70]]+ _0x744c[71]};return _0x2db6x2b})})};_0x2db6x1b= _[_0x744c[73]]({},_0x2db6x1b,_0x2db6x28[_0x744c[74]]);return db[_0x744c[56]][_0x744c[76]](_0x2db6x1b)[_0x744c[45]](respondWithFilteredResult(_0x2db6x15,_0x2db6x1b,_0x744c[53]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[53]))};exports[_0x744c[77]]= function(_0x2db6x28,_0x2db6x15){var _0x2db6x1b={raw:true,where:{id:_0x2db6x28[_0x744c[79]][_0x744c[78]]}},_0x2db6x29={};_0x2db6x29[_0x744c[54]]= _[_0x744c[57]](db[_0x744c[56]][_0x744c[55]]);_0x2db6x29[_0x744c[58]]= _[_0x744c[57]](_0x2db6x28[_0x744c[58]]);_0x2db6x29[_0x744c[59]]= _[_0x744c[60]](_0x2db6x29[_0x744c[54]],_0x2db6x29[_0x744c[58]]);_0x2db6x1b[_0x744c[61]]= _[_0x744c[60]](_0x2db6x29[_0x744c[54]],qs[_0x744c[62]](_0x2db6x28[_0x744c[58]][_0x744c[62]]));_0x2db6x1b[_0x744c[61]]= (_0x2db6x1b[_0x744c[61]][_0x744c[63]])?_0x2db6x1b[_0x744c[61]]:_0x2db6x29[_0x744c[54]];_0x2db6x1b= _[_0x744c[73]]({},_0x2db6x1b,_0x2db6x28[_0x744c[74]]);return db[_0x744c[56]][_0x744c[80]](_0x2db6x1b)[_0x744c[45]](handleEntityNotFound(_0x2db6x15,null,_0x744c[77]))[_0x744c[45]](respondWithResult(_0x2db6x15,null,_0x744c[77]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[77]))};exports[_0x744c[81]]= function(_0x2db6x28,_0x2db6x15){return db[_0x744c[56]][_0x744c[81]](_0x2db6x28[_0x744c[82]],{})[_0x744c[45]](respondWithResult(_0x2db6x15,201,_0x744c[81]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[81]))};exports[_0x744c[46]]= function(_0x2db6x28,_0x2db6x15){if(_0x2db6x28[_0x744c[82]][_0x744c[78]]){delete _0x2db6x28[_0x744c[82]][_0x744c[78]]};return db[_0x744c[56]][_0x744c[80]]({where:{id:_0x2db6x28[_0x744c[79]][_0x744c[78]]}})[_0x744c[45]](handleEntityNotFound(_0x2db6x15,null,_0x744c[46]))[_0x744c[45]](saveUpdates(_0x2db6x28[_0x744c[82]],null,_0x744c[46]))[_0x744c[45]](respondWithResult(_0x2db6x15,null,_0x744c[46]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[46]))};exports[_0x744c[83]]= function(_0x2db6x28,_0x2db6x15){return db[_0x744c[56]][_0x744c[83]]()[_0x744c[45]](respondWithResult(_0x2db6x15,null,_0x744c[83]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[83]))};exports[_0x744c[48]]= function(_0x2db6x28,_0x2db6x15){var _0x2db6x2c;return db[_0x744c[56]][_0x744c[80]]({where:{id:_0x2db6x28[_0x744c[79]][_0x744c[78]]}})[_0x744c[45]](handleEntityNotFound(_0x2db6x15,null,_0x744c[48]))[_0x744c[45]](function(_0x2db6x18){if(_0x2db6x18){return _0x2db6x18[_0x744c[48]]()[_0x744c[45]](function(_0x2db6x18){logger[_0x744c[24]](_0x744c[22],_0x744c[48],204,_0x744c[47]);logger[_0x744c[26]](_0x744c[25],_0x744c[48],204,_0x744c[47],JSON[_0x744c[31]](_0x2db6x18));return _0x2db6x18})}})[_0x744c[45]](function(_0x2db6x18){_0x2db6x2c= _0x2db6x18;if(_0x2db6x18){if(_0x2db6x18[_0x744c[85]]|| _0x2db6x18[_0x744c[94]]){return db[_0x2db6x18[_0x744c[85]]?_0x744c[95]:_0x744c[96]][_0x744c[80]]({where:{id:_0x2db6x18[_0x744c[85]]?_0x2db6x18[_0x744c[85]]:_0x2db6x18[_0x744c[94]]},attributes:[_0x744c[78],_0x744c[51]],raw:true})}}})[_0x744c[45]](function(_0x2db6x18){if(_0x2db6x18){return db[_0x744c[93]][_0x744c[81]]({state:18,statedesc:_0x744c[84],campaign:_0x2db6x18[_0x744c[51]],campaigntype:_0x2db6x2c[_0x744c[85]]?_0x744c[86]:_0x744c[87],CampaignId:_0x2db6x2c[_0x744c[88]]|| null,VoiceQueueId:_0x2db6x2c[_0x744c[85]]|| null,ListId:_0x2db6x2c[_0x744c[89]]|| null,membername:_0x2db6x28[_0x744c[90]][_0x744c[51]],UserId:_0x2db6x28[_0x744c[90]][_0x744c[78]],deleted:true,deletedat:moment()[_0x744c[92]](_0x744c[91])})}})[_0x744c[45]](function(){return _0x2db6x15[_0x744c[29]](204)[_0x744c[28]]()})[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[48]))};exports[_0x744c[97]]= function(_0x2db6x28,_0x2db6x15,_0x2db6x2d){var _0x2db6x2e={count:0,rows:[]};var _0x2db6x1b={};var _0x2db6x29={};_0x2db6x29[_0x744c[54]]= _[_0x744c[57]](db[_0x744c[56]][_0x744c[55]]);_0x2db6x29[_0x744c[58]]= _[_0x744c[57]](_0x2db6x28[_0x744c[58]]);_0x2db6x29[_0x744c[59]]= _[_0x744c[60]](_0x2db6x29[_0x744c[54]],_0x2db6x29[_0x744c[58]]);_0x2db6x1b[_0x744c[61]]= [_0x744c[78]];_0x2db6x1b[_0x744c[35]]= qs[_0x744c[35]](_0x2db6x28[_0x744c[58]][_0x744c[35]]);_0x2db6x1b[_0x744c[34]]= qs[_0x744c[34]](_0x2db6x28[_0x744c[58]][_0x744c[34]]);_0x2db6x1b[_0x744c[66]]= _0x744c[98];_0x2db6x1b[_0x744c[68]]= {active:false,scheduledAt:{$lte:Date[_0x744c[99]]()}};_0x2db6x1b[_0x744c[100]]= [{model:db[_0x744c[101]],as:_0x744c[102],attributes:[_0x744c[78],_0x744c[103],_0x744c[104],_0x744c[105]]}];return _0x2db6x28[_0x744c[90]][_0x744c[116]]({where:{type:_0x744c[114],dialMethod:_0x744c[115]},attributes:[_0x744c[78]],raw:true})[_0x744c[45]](function(_0x2db6x2f){_0x2db6x1b[_0x744c[68]][_0x744c[85]]= {$in:_[_0x744c[72]](_0x2db6x2f,_0x744c[78])};return db[_0x744c[113]][_0x744c[106]](function(_0x2db6x30){_0x2db6x1b[_0x744c[106]]= _0x2db6x30;_0x2db6x1b[_0x744c[107]]= _0x2db6x30[_0x744c[109]][_0x744c[108]];return db[_0x744c[56]][_0x744c[112]](_0x2db6x1b)[_0x744c[45]](function(_0x2db6x31){var _0x2db6x32=[];var _0x2db6x33={active:true};for(var _0x2db6x34=0;_0x2db6x34< _0x2db6x31[_0x744c[63]];_0x2db6x34+= 1){_0x2db6x32[_0x744c[110]](_0x2db6x31[_0x2db6x34][_0x744c[46]](_0x2db6x33,{transaction:_0x2db6x30}))};return BPromise[_0x744c[111]](_0x2db6x32)})[_0x744c[45]](function(_0x2db6x31){return {rows:_0x2db6x31|| [],count:_0x2db6x31?_0x2db6x31[_0x744c[63]]:0}})})})[_0x744c[45]](respondWithResult(_0x2db6x15,null,_0x744c[97]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[97]))};exports[_0x744c[117]]= function(_0x2db6x28,_0x2db6x15,_0x2db6x2d){return db[_0x744c[56]][_0x744c[80]]({raw:true,where:{id:_0x2db6x28[_0x744c[79]][_0x744c[78]]}})[_0x744c[45]](handleEntityNotFound(_0x2db6x15,null,_0x744c[117]))[_0x744c[45]](respondWithResult(_0x2db6x15,null,_0x744c[117]))[_0x744c[75]](handleError(_0x2db6x15,null,_0x744c[117]))}
\ No newline at end of file
index a74bc11..e0a44e4 100644 (file)
@@ -1 +1 @@
-var _0x8dfa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x64\x65\x66\x69\x6E\x65"];_0x8dfa[0];var _=require(_0x8dfa[1]);var util=require(_0x8dfa[2]);var logger=require(_0x8dfa[4])(_0x8dfa[3]);var attributes=require(_0x8dfa[5]);module[_0x8dfa[6]]= function(_0x2249x5,_0x2249x6){return _0x2249x5[_0x8dfa[10]](_0x8dfa[7],attributes,{tableName:_0x8dfa[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x8dfa[9],"\x66\x69\x65\x6C\x64\x73":[_0x8dfa[9]]}],timestamps:true})}
\ No newline at end of file
+var _0x95c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x64\x65\x66\x69\x6E\x65"];_0x95c2[0];var _=require(_0x95c2[1]);var util=require(_0x95c2[2]);var logger=require(_0x95c2[4])(_0x95c2[3]);var attributes=require(_0x95c2[5]);module[_0x95c2[6]]= function(_0x42acx5,_0x42acx6){return _0x42acx5[_0x95c2[10]](_0x95c2[7],attributes,{tableName:_0x95c2[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x95c2[9],"\x66\x69\x65\x6C\x64\x73":[_0x95c2[9]]}],timestamps:true})}
\ No newline at end of file
index fc91219..d96661f 100644 (file)
@@ -1 +1 @@
-var _0x86d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x53\x68\x6F\x77\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x75\x70\x64\x61\x74\x65","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72","\x64\x65\x73\x74\x72\x6F\x79","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x61\x6C\x6C","\x6F\x72\x64\x65\x72","\x55\x50\x44\x41\x54\x45","\x4C\x4F\x43\x4B","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x6B\x65\x79\x73","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x4D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x43\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x43\x4F\x55\x4E\x54","\x49\x46","\x60\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74\x60\x20\x3E\x3D\x20","\x22\x25\x73\x22","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x66\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x73\x52\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x86d7[0];var _=require(_0x86d7[1]);var util=require(_0x86d7[2]);var moment=require(_0x86d7[3]);var BPromise=require(_0x86d7[4]);var db=require(_0x86d7[6])[_0x86d7[5]];var utils=require(_0x86d7[7]);var logger=require(_0x86d7[9])(_0x86d7[8]);var jayson=require(_0x86d7[10]);var client=jayson[_0x86d7[12]][_0x86d7[11]]({port:9002});function respondWithRpcPromise(_0x853dxb,_0x853dxc,_0x853dxd){return  new BPromise(function(_0x853dxe,_0x853dxf){return client[_0x86d7[25]](_0x853dxb,_0x853dxd)[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[13],_0x853dxc,_0x86d7[16]);logger[_0x86d7[20]](_0x86d7[18],_0x853dxc,_0x86d7[16],JSON[_0x86d7[19]](_0x853dx11));if(_0x853dx11[_0x86d7[14]]){if(_0x853dx11[_0x86d7[14]][_0x86d7[21]]=== 500){logger[_0x86d7[14]](_0x86d7[13],_0x853dxc,_0x853dx11[_0x86d7[14]][_0x86d7[22]]);return _0x853dxf(_0x853dx11[_0x86d7[14]][_0x86d7[22]])};logger[_0x86d7[14]](_0x86d7[13],_0x853dxc,_0x853dx11[_0x86d7[14]][_0x86d7[22]]);return _0x853dxe(_0x853dx11[_0x86d7[14]][_0x86d7[22]])}else {logger[_0x86d7[17]](_0x86d7[13],_0x853dxc,_0x86d7[16]);_0x853dxe(_0x853dx11[_0x86d7[23]][_0x86d7[22]])}})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[13],_0x853dxc,_0x853dx10);_0x853dxf(_0x853dx10)})})}exports[_0x86d7[26]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[37]][_0x86d7[36]]({raw:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[28]]=== undefined)?true:false:true,where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null,attributes:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[30]]|| null:null,limit:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[31]]|| null:null,include:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[32]]?_[_0x86d7[35]](_0x853dxd[_0x86d7[27]][_0x86d7[32]],function(_0x853dx13){return {model:db[_0x853dx13[_0x86d7[33]]],as:_0x853dx13[_0x86d7[34]],attributes:_0x853dx13[_0x86d7[30]],include:_0x853dx13[_0x86d7[32]]?_[_0x86d7[35]](_0x853dx13[_0x86d7[32]],function(_0x853dx14){return {model:db[_0x853dx14[_0x86d7[33]]],as:_0x853dx14[_0x86d7[34]],attributes:_0x853dx14[_0x86d7[30]],include:_0x853dx14[_0x86d7[32]]?_[_0x86d7[35]](_0x853dx14[_0x86d7[32]],function(_0x853dx15){return {model:db[_0x853dx15[_0x86d7[33]]],as:_0x853dx15[_0x86d7[34]],attributes:_0x853dx15[_0x86d7[30]]}}):[]}}):[]}}):[]):[]})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[26],_0x853dxd);logger[_0x86d7[20]](_0x86d7[26],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[26],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})};exports[_0x86d7[38]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[37]][_0x86d7[39]]({raw:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[28]]=== undefined)?true:false:true,where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null,attributes:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[30]]|| null:null,include:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[32]]?_[_0x86d7[35]](_0x853dxd[_0x86d7[27]][_0x86d7[32]],function(_0x853dx13){return {model:db[_0x853dx13[_0x86d7[33]]],as:_0x853dx13[_0x86d7[34]],attributes:_0x853dx13[_0x86d7[30]],include:_0x853dx13[_0x86d7[32]]?_[_0x86d7[35]](_0x853dx13[_0x86d7[32]],function(_0x853dx14){return {model:db[_0x853dx14[_0x86d7[33]]],as:_0x853dx14[_0x86d7[34]],attributes:_0x853dx14[_0x86d7[30]],include:_0x853dx14[_0x86d7[32]]?_[_0x86d7[35]](_0x853dx14[_0x86d7[32]],function(_0x853dx15){return {model:db[_0x853dx15[_0x86d7[33]]],as:_0x853dx15[_0x86d7[34]],attributes:_0x853dx15[_0x86d7[30]]}}):[]}}):[]}}):[]):[]})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[38],_0x853dxd);logger[_0x86d7[20]](_0x86d7[38],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[38],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})};exports[_0x86d7[40]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[37]][_0x86d7[42]](_0x853dxd[_0x86d7[41]],{raw:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[28]]=== undefined)?true:false:true})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[40],_0x853dxd);logger[_0x86d7[20]](_0x86d7[40],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[40],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})};exports[_0x86d7[43]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[37]][_0x86d7[44]](_0x853dxd[_0x86d7[41]],{raw:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null,attributes:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[30]]|| null:null,limit:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[31]]|| null:null})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[43],_0x853dxd);logger[_0x86d7[20]](_0x86d7[43],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[43],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})};exports[_0x86d7[45]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[37]][_0x86d7[46]]({where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[45],_0x853dxd);logger[_0x86d7[20]](_0x86d7[45],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[45],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})};exports[_0x86d7[47]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[54]][_0x86d7[59]]()[_0x86d7[24]](function(_0x853dx16){return db[_0x86d7[58]][_0x86d7[57]](function(_0x853dx17){return db[_0x86d7[37]][_0x86d7[36]]({where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null,attributes:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[30]]|| null:null,limit:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[31]]|| null:null,order:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[51]]|| null:null,transaction:_0x853dx17,lock:_0x853dx17[_0x86d7[53]][_0x86d7[52]],include:[{model:db[_0x86d7[54]],as:_0x86d7[55],attributes:_[_0x86d7[56]](_0x853dx16)}]})[_0x86d7[24]](function(_0x853dx11){var _0x853dx18=[];for(var _0x853dx13=0;_0x853dx13< _0x853dx11[_0x86d7[48]];_0x853dx13+= 1){_0x853dx18[_0x86d7[49]](_0x853dx11[_0x853dx13][_0x86d7[44]](_0x853dxd[_0x86d7[41]],{transaction:_0x853dx17}))};return BPromise[_0x86d7[50]](_0x853dx18)})})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[47],_0x853dxd);logger[_0x86d7[20]](_0x86d7[47],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[47],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})})};exports[_0x86d7[60]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[58]][_0x86d7[57]](function(_0x853dx17){return db[_0x86d7[61]][_0x86d7[42]](_0x853dxd[_0x86d7[41]],{raw:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[28]]=== undefined)?true:false:true,transaction:_0x853dx17})[_0x86d7[24]](function(){return db[_0x86d7[37]][_0x86d7[46]]({where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null,transaction:_0x853dx17})})})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[60],_0x853dxd);logger[_0x86d7[20]](_0x86d7[60],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[60],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})};exports[_0x86d7[62]]= function(_0x853dxd){var _0x853dx12=this;return  new Promise(function(_0x853dxe,_0x853dxf){return db[_0x86d7[37]][_0x86d7[36]]({raw:_0x853dxd[_0x86d7[27]]?(_0x853dxd[_0x86d7[27]][_0x86d7[28]]=== undefined)?true:false:true,where:_0x853dxd[_0x86d7[27]]?_0x853dxd[_0x86d7[27]][_0x86d7[29]]|| null:null,attributes:[[db[_0x86d7[58]][_0x86d7[71]](_0x86d7[63],db[_0x86d7[58]][_0x86d7[71]](_0x86d7[64],db[_0x86d7[58]][_0x86d7[70]](_0x86d7[65]+ util[_0x86d7[68]](_0x86d7[66],moment()[_0x86d7[68]](_0x86d7[67]))+ _0x86d7[69]))),_0x86d7[72]]]})[_0x86d7[24]](function(_0x853dx11){logger[_0x86d7[17]](_0x86d7[62],_0x853dxd);logger[_0x86d7[20]](_0x86d7[62],_0x853dxd,JSON[_0x86d7[19]](_0x853dx11));_0x853dxe(_0x853dx11)})[_0x86d7[15]](function(_0x853dx10){logger[_0x86d7[14]](_0x86d7[62],_0x853dx10[_0x86d7[22]],_0x853dxd);_0x853dxf(_0x853dx12[_0x86d7[14]](500,_0x853dx10[_0x86d7[22]]))})})}
\ No newline at end of file
+var _0x1ae3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x53\x68\x6F\x77\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x75\x70\x64\x61\x74\x65","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72","\x64\x65\x73\x74\x72\x6F\x79","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x61\x6C\x6C","\x6F\x72\x64\x65\x72","\x55\x50\x44\x41\x54\x45","\x4C\x4F\x43\x4B","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x6B\x65\x79\x73","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x4D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x43\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x43\x4F\x55\x4E\x54","\x49\x46","\x60\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74\x60\x20\x3E\x3D\x20","\x22\x25\x73\x22","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x66\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x73\x52\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x1ae3[0];var _=require(_0x1ae3[1]);var util=require(_0x1ae3[2]);var moment=require(_0x1ae3[3]);var BPromise=require(_0x1ae3[4]);var db=require(_0x1ae3[6])[_0x1ae3[5]];var utils=require(_0x1ae3[7]);var logger=require(_0x1ae3[9])(_0x1ae3[8]);var jayson=require(_0x1ae3[10]);var client=jayson[_0x1ae3[12]][_0x1ae3[11]]({port:9002});function respondWithRpcPromise(_0xb111xb,_0xb111xc,_0xb111xd){return  new BPromise(function(_0xb111xe,_0xb111xf){return client[_0x1ae3[25]](_0xb111xb,_0xb111xd)[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[13],_0xb111xc,_0x1ae3[16]);logger[_0x1ae3[20]](_0x1ae3[18],_0xb111xc,_0x1ae3[16],JSON[_0x1ae3[19]](_0xb111x11));if(_0xb111x11[_0x1ae3[14]]){if(_0xb111x11[_0x1ae3[14]][_0x1ae3[21]]=== 500){logger[_0x1ae3[14]](_0x1ae3[13],_0xb111xc,_0xb111x11[_0x1ae3[14]][_0x1ae3[22]]);return _0xb111xf(_0xb111x11[_0x1ae3[14]][_0x1ae3[22]])};logger[_0x1ae3[14]](_0x1ae3[13],_0xb111xc,_0xb111x11[_0x1ae3[14]][_0x1ae3[22]]);return _0xb111xe(_0xb111x11[_0x1ae3[14]][_0x1ae3[22]])}else {logger[_0x1ae3[17]](_0x1ae3[13],_0xb111xc,_0x1ae3[16]);_0xb111xe(_0xb111x11[_0x1ae3[23]][_0x1ae3[22]])}})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[13],_0xb111xc,_0xb111x10);_0xb111xf(_0xb111x10)})})}exports[_0x1ae3[26]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[37]][_0x1ae3[36]]({raw:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[28]]=== undefined)?true:false:true,where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null,attributes:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[30]]|| null:null,limit:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[31]]|| null:null,include:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[32]]?_[_0x1ae3[35]](_0xb111xd[_0x1ae3[27]][_0x1ae3[32]],function(_0xb111x13){return {model:db[_0xb111x13[_0x1ae3[33]]],as:_0xb111x13[_0x1ae3[34]],attributes:_0xb111x13[_0x1ae3[30]],include:_0xb111x13[_0x1ae3[32]]?_[_0x1ae3[35]](_0xb111x13[_0x1ae3[32]],function(_0xb111x14){return {model:db[_0xb111x14[_0x1ae3[33]]],as:_0xb111x14[_0x1ae3[34]],attributes:_0xb111x14[_0x1ae3[30]],include:_0xb111x14[_0x1ae3[32]]?_[_0x1ae3[35]](_0xb111x14[_0x1ae3[32]],function(_0xb111x15){return {model:db[_0xb111x15[_0x1ae3[33]]],as:_0xb111x15[_0x1ae3[34]],attributes:_0xb111x15[_0x1ae3[30]]}}):[]}}):[]}}):[]):[]})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[26],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[26],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[26],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})};exports[_0x1ae3[38]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[37]][_0x1ae3[39]]({raw:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[28]]=== undefined)?true:false:true,where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null,attributes:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[30]]|| null:null,include:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[32]]?_[_0x1ae3[35]](_0xb111xd[_0x1ae3[27]][_0x1ae3[32]],function(_0xb111x13){return {model:db[_0xb111x13[_0x1ae3[33]]],as:_0xb111x13[_0x1ae3[34]],attributes:_0xb111x13[_0x1ae3[30]],include:_0xb111x13[_0x1ae3[32]]?_[_0x1ae3[35]](_0xb111x13[_0x1ae3[32]],function(_0xb111x14){return {model:db[_0xb111x14[_0x1ae3[33]]],as:_0xb111x14[_0x1ae3[34]],attributes:_0xb111x14[_0x1ae3[30]],include:_0xb111x14[_0x1ae3[32]]?_[_0x1ae3[35]](_0xb111x14[_0x1ae3[32]],function(_0xb111x15){return {model:db[_0xb111x15[_0x1ae3[33]]],as:_0xb111x15[_0x1ae3[34]],attributes:_0xb111x15[_0x1ae3[30]]}}):[]}}):[]}}):[]):[]})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[38],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[38],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[38],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})};exports[_0x1ae3[40]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[37]][_0x1ae3[42]](_0xb111xd[_0x1ae3[41]],{raw:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[28]]=== undefined)?true:false:true})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[40],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[40],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[40],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})};exports[_0x1ae3[43]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[37]][_0x1ae3[44]](_0xb111xd[_0x1ae3[41]],{raw:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null,attributes:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[30]]|| null:null,limit:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[31]]|| null:null})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[43],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[43],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[43],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})};exports[_0x1ae3[45]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[37]][_0x1ae3[46]]({where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[45],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[45],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[45],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})};exports[_0x1ae3[47]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[54]][_0x1ae3[59]]()[_0x1ae3[24]](function(_0xb111x16){return db[_0x1ae3[58]][_0x1ae3[57]](function(_0xb111x17){return db[_0x1ae3[37]][_0x1ae3[36]]({where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null,attributes:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[30]]|| null:null,limit:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[31]]|| null:null,order:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[51]]|| null:null,transaction:_0xb111x17,lock:_0xb111x17[_0x1ae3[53]][_0x1ae3[52]],include:[{model:db[_0x1ae3[54]],as:_0x1ae3[55],attributes:_[_0x1ae3[56]](_0xb111x16)}]})[_0x1ae3[24]](function(_0xb111x11){var _0xb111x18=[];for(var _0xb111x13=0;_0xb111x13< _0xb111x11[_0x1ae3[48]];_0xb111x13+= 1){_0xb111x18[_0x1ae3[49]](_0xb111x11[_0xb111x13][_0x1ae3[44]](_0xb111xd[_0x1ae3[41]],{transaction:_0xb111x17}))};return BPromise[_0x1ae3[50]](_0xb111x18)})})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[47],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[47],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[47],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})})};exports[_0x1ae3[60]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[58]][_0x1ae3[57]](function(_0xb111x17){return db[_0x1ae3[61]][_0x1ae3[42]](_0xb111xd[_0x1ae3[41]],{raw:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[28]]=== undefined)?true:false:true,transaction:_0xb111x17})[_0x1ae3[24]](function(){return db[_0x1ae3[37]][_0x1ae3[46]]({where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null,transaction:_0xb111x17})})})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[60],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[60],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[60],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})};exports[_0x1ae3[62]]= function(_0xb111xd){var _0xb111x12=this;return  new Promise(function(_0xb111xe,_0xb111xf){return db[_0x1ae3[37]][_0x1ae3[36]]({raw:_0xb111xd[_0x1ae3[27]]?(_0xb111xd[_0x1ae3[27]][_0x1ae3[28]]=== undefined)?true:false:true,where:_0xb111xd[_0x1ae3[27]]?_0xb111xd[_0x1ae3[27]][_0x1ae3[29]]|| null:null,attributes:[[db[_0x1ae3[58]][_0x1ae3[71]](_0x1ae3[63],db[_0x1ae3[58]][_0x1ae3[71]](_0x1ae3[64],db[_0x1ae3[58]][_0x1ae3[70]](_0x1ae3[65]+ util[_0x1ae3[68]](_0x1ae3[66],moment()[_0x1ae3[68]](_0x1ae3[67]))+ _0x1ae3[69]))),_0x1ae3[72]]]})[_0x1ae3[24]](function(_0xb111x11){logger[_0x1ae3[17]](_0x1ae3[62],_0xb111xd);logger[_0x1ae3[20]](_0x1ae3[62],_0xb111xd,JSON[_0x1ae3[19]](_0xb111x11));_0xb111xe(_0xb111x11)})[_0x1ae3[15]](function(_0xb111x10){logger[_0x1ae3[14]](_0x1ae3[62],_0xb111x10[_0x1ae3[22]],_0xb111xd);_0xb111xf(_0xb111x12[_0x1ae3[14]](500,_0xb111x10[_0x1ae3[22]]))})})}
\ No newline at end of file
index 0e623ff..d7988df 100644 (file)
@@ -1 +1 @@
-var _0x54c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x70\x72\x65\x76\x69\x65\x77","\x67\x65\x74\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x70\x72\x65\x76\x69\x65\x77\x2F\x3A\x69\x64","\x63\x61\x6C\x6C\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x54c5[0];var multer=require(_0x54c5[1]);var util=require(_0x54c5[2]);var path=require(_0x54c5[3]);var express=require(_0x54c5[4]);var router=express.Router();var auth=require(_0x54c5[5]);var config=require(_0x54c5[6]);var controller=require(_0x54c5[7]);router[_0x54c5[11]](_0x54c5[8],auth[_0x54c5[9]](),controller[_0x54c5[10]]);router[_0x54c5[11]](_0x54c5[12],auth[_0x54c5[9]](),controller[_0x54c5[13]]);router[_0x54c5[11]](_0x54c5[14],auth[_0x54c5[9]](),controller[_0x54c5[15]]);router[_0x54c5[11]](_0x54c5[16],auth[_0x54c5[9]](),controller[_0x54c5[17]]);router[_0x54c5[11]](_0x54c5[18],auth[_0x54c5[9]](),controller[_0x54c5[19]]);router[_0x54c5[21]](_0x54c5[8],auth[_0x54c5[9]](),controller[_0x54c5[20]]);router[_0x54c5[23]](_0x54c5[16],auth[_0x54c5[9]](),controller[_0x54c5[22]]);router[_0x54c5[25]](_0x54c5[16],auth[_0x54c5[9]](),controller[_0x54c5[24]]);module[_0x54c5[26]]= router
\ No newline at end of file
+var _0x5f14=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x70\x72\x65\x76\x69\x65\x77","\x67\x65\x74\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x70\x72\x65\x76\x69\x65\x77\x2F\x3A\x69\x64","\x63\x61\x6C\x6C\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5f14[0];var multer=require(_0x5f14[1]);var util=require(_0x5f14[2]);var path=require(_0x5f14[3]);var express=require(_0x5f14[4]);var router=express.Router();var auth=require(_0x5f14[5]);var config=require(_0x5f14[6]);var controller=require(_0x5f14[7]);router[_0x5f14[11]](_0x5f14[8],auth[_0x5f14[9]](),controller[_0x5f14[10]]);router[_0x5f14[11]](_0x5f14[12],auth[_0x5f14[9]](),controller[_0x5f14[13]]);router[_0x5f14[11]](_0x5f14[14],auth[_0x5f14[9]](),controller[_0x5f14[15]]);router[_0x5f14[11]](_0x5f14[16],auth[_0x5f14[9]](),controller[_0x5f14[17]]);router[_0x5f14[11]](_0x5f14[18],auth[_0x5f14[9]](),controller[_0x5f14[19]]);router[_0x5f14[21]](_0x5f14[8],auth[_0x5f14[9]](),controller[_0x5f14[20]]);router[_0x5f14[23]](_0x5f14[16],auth[_0x5f14[9]](),controller[_0x5f14[22]]);router[_0x5f14[25]](_0x5f14[16],auth[_0x5f14[9]](),controller[_0x5f14[24]]);module[_0x5f14[26]]= router
\ No newline at end of file
index 967be13..eb521c3 100644 (file)
@@ -1 +1 @@
-var _0x68f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x6F\x6E\x74\x61\x63\x74\x4C\x69\x73\x74\x51\x75\x65\x75\x65"];_0x68f1[0];var moment=require(_0x68f1[1]);var Sequelize=require(_0x68f1[2]);module[_0x68f1[3]]= {phone:{type:Sequelize[_0x68f1[4]],allowNull:false},ContactId:{type:Sequelize[_0x68f1[5]],unique:_0x68f1[6]},ListId:{type:Sequelize[_0x68f1[5]],unique:_0x68f1[6]},VoiceQueueId:{type:Sequelize[_0x68f1[5]],unique:_0x68f1[6]}}
\ No newline at end of file
+var _0xc3a4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x6F\x6E\x74\x61\x63\x74\x4C\x69\x73\x74\x51\x75\x65\x75\x65"];_0xc3a4[0];var moment=require(_0xc3a4[1]);var Sequelize=require(_0xc3a4[2]);module[_0xc3a4[3]]= {phone:{type:Sequelize[_0xc3a4[4]],allowNull:false},ContactId:{type:Sequelize[_0xc3a4[5]],unique:_0xc3a4[6]},ListId:{type:Sequelize[_0xc3a4[5]],unique:_0xc3a4[6]},VoiceQueueId:{type:Sequelize[_0xc3a4[5]],unique:_0xc3a4[6]}}
\ No newline at end of file
index 9fead84..0e476f5 100644 (file)
@@ -1 +1 @@
-var _0x6273=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x6273[0];var jsonpatch=require(_0x6273[1]);var rp=require(_0x6273[2]);var moment=require(_0x6273[3]);var BPromise=require(_0x6273[4]);var util=require(_0x6273[5]);var path=require(_0x6273[6]);var sox=require(_0x6273[7]);var ejs=require(_0x6273[8]);var fs=require(_0x6273[9]);var _=require(_0x6273[10]);var squel=require(_0x6273[11]);var crypto=require(_0x6273[12]);var jsforce=require(_0x6273[13]);var toCsv=require(_0x6273[14]);var qs=require(_0x6273[15]);var logger=require(_0x6273[17])(_0x6273[16]);var utils=require(_0x6273[18]);var config=require(_0x6273[19]);var db=require(_0x6273[21])[_0x6273[20]];function respondWithStatusCode(_0xb3c5x15,_0xb3c5x16,_0xb3c5x17){_0xb3c5x16= _0xb3c5x16|| 204;return function(_0xb3c5x18){if(_0xb3c5x18){logger[_0x6273[24]](_0x6273[22],_0xb3c5x17,_0xb3c5x16,_0x6273[23]);logger[_0x6273[26]](_0x6273[25],_0xb3c5x17,_0xb3c5x16,_0x6273[23]);return _0xb3c5x15[_0x6273[27]](_0xb3c5x16)};return _0xb3c5x15[_0x6273[29]](304)[_0x6273[28]]()}}function respondWithResult(_0xb3c5x15,_0xb3c5x16,_0xb3c5x17){_0xb3c5x16= _0xb3c5x16|| 200;return function(_0xb3c5x18){if(_0xb3c5x18){logger[_0x6273[24]](_0x6273[22],_0xb3c5x17,_0xb3c5x16,_0x6273[30]);logger[_0x6273[26]](_0x6273[25],_0xb3c5x17,_0xb3c5x16,_0x6273[30],JSON[_0x6273[31]](_0xb3c5x18));return _0xb3c5x15[_0x6273[29]](_0xb3c5x16)[_0x6273[32]](_0xb3c5x18)};return _0xb3c5x15[_0x6273[29]](304)[_0x6273[28]]()}}function respondWithFilteredResult(_0xb3c5x15,_0xb3c5x1b,_0xb3c5x17){return function(_0xb3c5x18){if(_0xb3c5x18){var _0xb3c5x1c=_0xb3c5x18[_0x6273[33]],_0xb3c5x1d=_0xb3c5x1b[_0x6273[34]],_0xb3c5x1e=_0xb3c5x1b[_0x6273[34]]+ _0xb3c5x1b[_0x6273[35]],_0xb3c5x16;if(_0xb3c5x1e>= _0xb3c5x1c){_0xb3c5x1e= _0xb3c5x1c;_0xb3c5x16= 200}else {_0xb3c5x16= 206};_0xb3c5x15[_0x6273[29]](_0xb3c5x16);logger[_0x6273[24]](_0x6273[22],_0xb3c5x17,_0xb3c5x16,_0x6273[36]);logger[_0x6273[26]](_0x6273[25],_0xb3c5x17,_0xb3c5x16,_0x6273[30],JSON[_0x6273[31]](_0xb3c5x18));return _0xb3c5x15[_0x6273[40]](_0x6273[37],_0xb3c5x1d+ _0x6273[38]+ _0xb3c5x1e+ _0x6273[39]+ _0xb3c5x1c)[_0x6273[32]](_0xb3c5x18)};return null}}function patchUpdates(_0xb3c5x20){return function(_0xb3c5x18){try{jsonpatch[_0x6273[41]](_0xb3c5x18,_0xb3c5x20,true)}catch(err){return BPromise[_0x6273[42]](err)};return _0xb3c5x18[_0x6273[43]]()}}function saveUpdates(_0xb3c5x22,_0xb3c5x16,_0xb3c5x17){return function(_0xb3c5x18){if(_0xb3c5x18){return _0xb3c5x18[_0x6273[46]](_0xb3c5x22)[_0x6273[45]](function(_0xb3c5x23){logger[_0x6273[24]](_0x6273[22],_0xb3c5x17,_0xb3c5x16,_0x6273[44]);logger[_0x6273[26]](_0x6273[25],_0xb3c5x17,_0xb3c5x16,_0x6273[44],JSON[_0x6273[31]](_0xb3c5x18));return _0xb3c5x23})};return null}}function removeEntity(_0xb3c5x15,_0xb3c5x16,_0xb3c5x17){return function(_0xb3c5x18){if(_0xb3c5x18){return _0xb3c5x18[_0x6273[48]]()[_0x6273[45]](function(){logger[_0x6273[24]](_0x6273[22],_0xb3c5x17,_0xb3c5x16,_0x6273[47]);logger[_0x6273[26]](_0x6273[25],_0xb3c5x17,_0xb3c5x16,_0x6273[47],JSON[_0x6273[31]](_0xb3c5x18));_0xb3c5x15[_0x6273[29]](204)[_0x6273[28]]()})}}}function handleEntityNotFound(_0xb3c5x15,_0xb3c5x16,_0xb3c5x17){return function(_0xb3c5x18){if(!_0xb3c5x18){logger[_0x6273[50]](_0x6273[22],_0xb3c5x17,404,_0x6273[49]);_0xb3c5x15[_0x6273[29]](404)[_0x6273[28]]();return null};return _0xb3c5x18}}function handleError(_0xb3c5x15,_0xb3c5x16,_0xb3c5x17){_0xb3c5x16= _0xb3c5x16|| 500;return function(_0xb3c5x27){logger[_0x6273[50]](_0x6273[22],_0xb3c5x17,_0xb3c5x16,JSON[_0x6273[31]](_0xb3c5x27));delete _0xb3c5x27[_0x6273[51]];_0xb3c5x15[_0x6273[29]](_0xb3c5x16)[_0x6273[52]](_0xb3c5x27)}}exports[_0x6273[53]]= function(_0xb3c5x28,_0xb3c5x15){var _0xb3c5x1b={},_0xb3c5x29={};_0xb3c5x29[_0x6273[54]]= _[_0x6273[57]](db[_0x6273[56]][_0x6273[55]]);_0xb3c5x29[_0x6273[58]]= _[_0x6273[57]](_0xb3c5x28[_0x6273[58]]);_0xb3c5x29[_0x6273[59]]= _[_0x6273[60]](_0xb3c5x29[_0x6273[54]],_0xb3c5x29[_0x6273[58]]);_0xb3c5x1b[_0x6273[61]]= _[_0x6273[60]](_0xb3c5x29[_0x6273[54]],qs[_0x6273[62]](_0xb3c5x28[_0x6273[58]][_0x6273[62]]));_0xb3c5x1b[_0x6273[61]]= (_0xb3c5x1b[_0x6273[61]][_0x6273[63]])?_0xb3c5x1b[_0x6273[61]]:_0xb3c5x29[_0x6273[54]];if(!_0xb3c5x28[_0x6273[58]][_0x6273[65]](_0x6273[64])){_0xb3c5x1b[_0x6273[35]]= qs[_0x6273[35]](_0xb3c5x28[_0x6273[58]][_0x6273[35]]);_0xb3c5x1b[_0x6273[34]]= qs[_0x6273[34]](_0xb3c5x28[_0x6273[58]][_0x6273[34]])};_0xb3c5x1b[_0x6273[66]]= qs[_0x6273[67]](_0xb3c5x28[_0x6273[58]][_0x6273[67]]);_0xb3c5x1b[_0x6273[68]]= qs[_0x6273[59]](_[_0x6273[69]](_0xb3c5x28[_0x6273[58]],_0xb3c5x29[_0x6273[59]]));if(_0xb3c5x28[_0x6273[58]][_0x6273[70]]){_0xb3c5x1b[_0x6273[68]]= _[_0x6273[73]](_0xb3c5x1b[_0x6273[68]],{$or:_[_0x6273[72]](_0xb3c5x1b[_0x6273[61]],function(_0xb3c5x2a){var _0xb3c5x2b={};_0xb3c5x2b[_0xb3c5x2a]= {$like:_0x6273[71]+ _0xb3c5x28[_0x6273[58]][_0x6273[70]]+ _0x6273[71]};return _0xb3c5x2b})})};_0xb3c5x1b= _[_0x6273[73]]({},_0xb3c5x1b,_0xb3c5x28[_0x6273[74]]);return db[_0x6273[56]][_0x6273[76]](_0xb3c5x1b)[_0x6273[45]](respondWithFilteredResult(_0xb3c5x15,_0xb3c5x1b,_0x6273[53]))[_0x6273[75]](handleError(_0xb3c5x15,null,_0x6273[53]))};exports[_0x6273[77]]= function(_0xb3c5x28,_0xb3c5x15){var _0xb3c5x1b={raw:true,where:{id:_0xb3c5x28[_0x6273[79]][_0x6273[78]]}},_0xb3c5x29={};_0xb3c5x29[_0x6273[54]]= _[_0x6273[57]](db[_0x6273[56]][_0x6273[55]]);_0xb3c5x29[_0x6273[58]]= _[_0x6273[57]](_0xb3c5x28[_0x6273[58]]);_0xb3c5x29[_0x6273[59]]= _[_0x6273[60]](_0xb3c5x29[_0x6273[54]],_0xb3c5x29[_0x6273[58]]);_0xb3c5x1b[_0x6273[61]]= _[_0x6273[60]](_0xb3c5x29[_0x6273[54]],qs[_0x6273[62]](_0xb3c5x28[_0x6273[58]][_0x6273[62]]));_0xb3c5x1b[_0x6273[61]]= (_0xb3c5x1b[_0x6273[61]][_0x6273[63]])?_0xb3c5x1b[_0x6273[61]]:_0xb3c5x29[_0x6273[54]];_0xb3c5x1b= _[_0x6273[73]]({},_0xb3c5x1b,_0xb3c5x28[_0x6273[74]]);return db[_0x6273[56]][_0x6273[80]](_0xb3c5x1b)[_0x6273[45]](handleEntityNotFound(_0xb3c5x15,null,_0x6273[77]))[_0x6273[45]](respondWithResult(_0xb3c5x15,null,_0x6273[77]))[_0x6273[75]](handleError(_0xb3c5x15,null,_0x6273[77]))};exports[_0x6273[46]]= function(_0xb3c5x28,_0xb3c5x15){if(_0xb3c5x28[_0x6273[81]][_0x6273[78]]){delete _0xb3c5x28[_0x6273[81]][_0x6273[78]]};return db[_0x6273[56]][_0x6273[80]]({where:{id:_0xb3c5x28[_0x6273[79]][_0x6273[78]]}})[_0x6273[45]](handleEntityNotFound(_0xb3c5x15,null,_0x6273[46]))[_0x6273[45]](saveUpdates(_0xb3c5x28[_0x6273[81]],null,_0x6273[46]))[_0x6273[45]](respondWithResult(_0xb3c5x15,null,_0x6273[46]))[_0x6273[75]](handleError(_0xb3c5x15,null,_0x6273[46]))};exports[_0x6273[48]]= function(_0xb3c5x28,_0xb3c5x15){return db[_0x6273[56]][_0x6273[80]]({where:{id:_0xb3c5x28[_0x6273[79]][_0x6273[78]]}})[_0x6273[45]](handleEntityNotFound(_0xb3c5x15,null,_0x6273[48]))[_0x6273[45]](removeEntity(_0xb3c5x15,null,_0x6273[48]))[_0x6273[75]](handleError(_0xb3c5x15,null,_0x6273[48]))};exports[_0x6273[82]]= function(_0xb3c5x28,_0xb3c5x15){return db[_0x6273[56]][_0x6273[82]]()[_0x6273[45]](respondWithResult(_0xb3c5x15,null,_0x6273[82]))[_0x6273[75]](handleError(_0xb3c5x15,null,_0x6273[82]))}
\ No newline at end of file
+var _0x89fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x89fc[0];var jsonpatch=require(_0x89fc[1]);var rp=require(_0x89fc[2]);var moment=require(_0x89fc[3]);var BPromise=require(_0x89fc[4]);var util=require(_0x89fc[5]);var path=require(_0x89fc[6]);var sox=require(_0x89fc[7]);var ejs=require(_0x89fc[8]);var fs=require(_0x89fc[9]);var _=require(_0x89fc[10]);var squel=require(_0x89fc[11]);var crypto=require(_0x89fc[12]);var jsforce=require(_0x89fc[13]);var toCsv=require(_0x89fc[14]);var qs=require(_0x89fc[15]);var logger=require(_0x89fc[17])(_0x89fc[16]);var utils=require(_0x89fc[18]);var config=require(_0x89fc[19]);var db=require(_0x89fc[21])[_0x89fc[20]];function respondWithStatusCode(_0x6bd6x15,_0x6bd6x16,_0x6bd6x17){_0x6bd6x16= _0x6bd6x16|| 204;return function(_0x6bd6x18){if(_0x6bd6x18){logger[_0x89fc[24]](_0x89fc[22],_0x6bd6x17,_0x6bd6x16,_0x89fc[23]);logger[_0x89fc[26]](_0x89fc[25],_0x6bd6x17,_0x6bd6x16,_0x89fc[23]);return _0x6bd6x15[_0x89fc[27]](_0x6bd6x16)};return _0x6bd6x15[_0x89fc[29]](304)[_0x89fc[28]]()}}function respondWithResult(_0x6bd6x15,_0x6bd6x16,_0x6bd6x17){_0x6bd6x16= _0x6bd6x16|| 200;return function(_0x6bd6x18){if(_0x6bd6x18){logger[_0x89fc[24]](_0x89fc[22],_0x6bd6x17,_0x6bd6x16,_0x89fc[30]);logger[_0x89fc[26]](_0x89fc[25],_0x6bd6x17,_0x6bd6x16,_0x89fc[30],JSON[_0x89fc[31]](_0x6bd6x18));return _0x6bd6x15[_0x89fc[29]](_0x6bd6x16)[_0x89fc[32]](_0x6bd6x18)};return _0x6bd6x15[_0x89fc[29]](304)[_0x89fc[28]]()}}function respondWithFilteredResult(_0x6bd6x15,_0x6bd6x1b,_0x6bd6x17){return function(_0x6bd6x18){if(_0x6bd6x18){var _0x6bd6x1c=_0x6bd6x18[_0x89fc[33]],_0x6bd6x1d=_0x6bd6x1b[_0x89fc[34]],_0x6bd6x1e=_0x6bd6x1b[_0x89fc[34]]+ _0x6bd6x1b[_0x89fc[35]],_0x6bd6x16;if(_0x6bd6x1e>= _0x6bd6x1c){_0x6bd6x1e= _0x6bd6x1c;_0x6bd6x16= 200}else {_0x6bd6x16= 206};_0x6bd6x15[_0x89fc[29]](_0x6bd6x16);logger[_0x89fc[24]](_0x89fc[22],_0x6bd6x17,_0x6bd6x16,_0x89fc[36]);logger[_0x89fc[26]](_0x89fc[25],_0x6bd6x17,_0x6bd6x16,_0x89fc[30],JSON[_0x89fc[31]](_0x6bd6x18));return _0x6bd6x15[_0x89fc[40]](_0x89fc[37],_0x6bd6x1d+ _0x89fc[38]+ _0x6bd6x1e+ _0x89fc[39]+ _0x6bd6x1c)[_0x89fc[32]](_0x6bd6x18)};return null}}function patchUpdates(_0x6bd6x20){return function(_0x6bd6x18){try{jsonpatch[_0x89fc[41]](_0x6bd6x18,_0x6bd6x20,true)}catch(err){return BPromise[_0x89fc[42]](err)};return _0x6bd6x18[_0x89fc[43]]()}}function saveUpdates(_0x6bd6x22,_0x6bd6x16,_0x6bd6x17){return function(_0x6bd6x18){if(_0x6bd6x18){return _0x6bd6x18[_0x89fc[46]](_0x6bd6x22)[_0x89fc[45]](function(_0x6bd6x23){logger[_0x89fc[24]](_0x89fc[22],_0x6bd6x17,_0x6bd6x16,_0x89fc[44]);logger[_0x89fc[26]](_0x89fc[25],_0x6bd6x17,_0x6bd6x16,_0x89fc[44],JSON[_0x89fc[31]](_0x6bd6x18));return _0x6bd6x23})};return null}}function removeEntity(_0x6bd6x15,_0x6bd6x16,_0x6bd6x17){return function(_0x6bd6x18){if(_0x6bd6x18){return _0x6bd6x18[_0x89fc[48]]()[_0x89fc[45]](function(){logger[_0x89fc[24]](_0x89fc[22],_0x6bd6x17,_0x6bd6x16,_0x89fc[47]);logger[_0x89fc[26]](_0x89fc[25],_0x6bd6x17,_0x6bd6x16,_0x89fc[47],JSON[_0x89fc[31]](_0x6bd6x18));_0x6bd6x15[_0x89fc[29]](204)[_0x89fc[28]]()})}}}function handleEntityNotFound(_0x6bd6x15,_0x6bd6x16,_0x6bd6x17){return function(_0x6bd6x18){if(!_0x6bd6x18){logger[_0x89fc[50]](_0x89fc[22],_0x6bd6x17,404,_0x89fc[49]);_0x6bd6x15[_0x89fc[29]](404)[_0x89fc[28]]();return null};return _0x6bd6x18}}function handleError(_0x6bd6x15,_0x6bd6x16,_0x6bd6x17){_0x6bd6x16= _0x6bd6x16|| 500;return function(_0x6bd6x27){logger[_0x89fc[50]](_0x89fc[22],_0x6bd6x17,_0x6bd6x16,JSON[_0x89fc[31]](_0x6bd6x27));delete _0x6bd6x27[_0x89fc[51]];_0x6bd6x15[_0x89fc[29]](_0x6bd6x16)[_0x89fc[52]](_0x6bd6x27)}}exports[_0x89fc[53]]= function(_0x6bd6x28,_0x6bd6x15){var _0x6bd6x1b={},_0x6bd6x29={};_0x6bd6x29[_0x89fc[54]]= _[_0x89fc[57]](db[_0x89fc[56]][_0x89fc[55]]);_0x6bd6x29[_0x89fc[58]]= _[_0x89fc[57]](_0x6bd6x28[_0x89fc[58]]);_0x6bd6x29[_0x89fc[59]]= _[_0x89fc[60]](_0x6bd6x29[_0x89fc[54]],_0x6bd6x29[_0x89fc[58]]);_0x6bd6x1b[_0x89fc[61]]= _[_0x89fc[60]](_0x6bd6x29[_0x89fc[54]],qs[_0x89fc[62]](_0x6bd6x28[_0x89fc[58]][_0x89fc[62]]));_0x6bd6x1b[_0x89fc[61]]= (_0x6bd6x1b[_0x89fc[61]][_0x89fc[63]])?_0x6bd6x1b[_0x89fc[61]]:_0x6bd6x29[_0x89fc[54]];if(!_0x6bd6x28[_0x89fc[58]][_0x89fc[65]](_0x89fc[64])){_0x6bd6x1b[_0x89fc[35]]= qs[_0x89fc[35]](_0x6bd6x28[_0x89fc[58]][_0x89fc[35]]);_0x6bd6x1b[_0x89fc[34]]= qs[_0x89fc[34]](_0x6bd6x28[_0x89fc[58]][_0x89fc[34]])};_0x6bd6x1b[_0x89fc[66]]= qs[_0x89fc[67]](_0x6bd6x28[_0x89fc[58]][_0x89fc[67]]);_0x6bd6x1b[_0x89fc[68]]= qs[_0x89fc[59]](_[_0x89fc[69]](_0x6bd6x28[_0x89fc[58]],_0x6bd6x29[_0x89fc[59]]));if(_0x6bd6x28[_0x89fc[58]][_0x89fc[70]]){_0x6bd6x1b[_0x89fc[68]]= _[_0x89fc[73]](_0x6bd6x1b[_0x89fc[68]],{$or:_[_0x89fc[72]](_0x6bd6x1b[_0x89fc[61]],function(_0x6bd6x2a){var _0x6bd6x2b={};_0x6bd6x2b[_0x6bd6x2a]= {$like:_0x89fc[71]+ _0x6bd6x28[_0x89fc[58]][_0x89fc[70]]+ _0x89fc[71]};return _0x6bd6x2b})})};_0x6bd6x1b= _[_0x89fc[73]]({},_0x6bd6x1b,_0x6bd6x28[_0x89fc[74]]);return db[_0x89fc[56]][_0x89fc[76]](_0x6bd6x1b)[_0x89fc[45]](respondWithFilteredResult(_0x6bd6x15,_0x6bd6x1b,_0x89fc[53]))[_0x89fc[75]](handleError(_0x6bd6x15,null,_0x89fc[53]))};exports[_0x89fc[77]]= function(_0x6bd6x28,_0x6bd6x15){var _0x6bd6x1b={raw:true,where:{id:_0x6bd6x28[_0x89fc[79]][_0x89fc[78]]}},_0x6bd6x29={};_0x6bd6x29[_0x89fc[54]]= _[_0x89fc[57]](db[_0x89fc[56]][_0x89fc[55]]);_0x6bd6x29[_0x89fc[58]]= _[_0x89fc[57]](_0x6bd6x28[_0x89fc[58]]);_0x6bd6x29[_0x89fc[59]]= _[_0x89fc[60]](_0x6bd6x29[_0x89fc[54]],_0x6bd6x29[_0x89fc[58]]);_0x6bd6x1b[_0x89fc[61]]= _[_0x89fc[60]](_0x6bd6x29[_0x89fc[54]],qs[_0x89fc[62]](_0x6bd6x28[_0x89fc[58]][_0x89fc[62]]));_0x6bd6x1b[_0x89fc[61]]= (_0x6bd6x1b[_0x89fc[61]][_0x89fc[63]])?_0x6bd6x1b[_0x89fc[61]]:_0x6bd6x29[_0x89fc[54]];_0x6bd6x1b= _[_0x89fc[73]]({},_0x6bd6x1b,_0x6bd6x28[_0x89fc[74]]);return db[_0x89fc[56]][_0x89fc[80]](_0x6bd6x1b)[_0x89fc[45]](handleEntityNotFound(_0x6bd6x15,null,_0x89fc[77]))[_0x89fc[45]](respondWithResult(_0x6bd6x15,null,_0x89fc[77]))[_0x89fc[75]](handleError(_0x6bd6x15,null,_0x89fc[77]))};exports[_0x89fc[46]]= function(_0x6bd6x28,_0x6bd6x15){if(_0x6bd6x28[_0x89fc[81]][_0x89fc[78]]){delete _0x6bd6x28[_0x89fc[81]][_0x89fc[78]]};return db[_0x89fc[56]][_0x89fc[80]]({where:{id:_0x6bd6x28[_0x89fc[79]][_0x89fc[78]]}})[_0x89fc[45]](handleEntityNotFound(_0x6bd6x15,null,_0x89fc[46]))[_0x89fc[45]](saveUpdates(_0x6bd6x28[_0x89fc[81]],null,_0x89fc[46]))[_0x89fc[45]](respondWithResult(_0x6bd6x15,null,_0x89fc[46]))[_0x89fc[75]](handleError(_0x6bd6x15,null,_0x89fc[46]))};exports[_0x89fc[48]]= function(_0x6bd6x28,_0x6bd6x15){return db[_0x89fc[56]][_0x89fc[80]]({where:{id:_0x6bd6x28[_0x89fc[79]][_0x89fc[78]]}})[_0x89fc[45]](handleEntityNotFound(_0x6bd6x15,null,_0x89fc[48]))[_0x89fc[45]](removeEntity(_0x6bd6x15,null,_0x89fc[48]))[_0x89fc[75]](handleError(_0x6bd6x15,null,_0x89fc[48]))};exports[_0x89fc[82]]= function(_0x6bd6x28,_0x6bd6x15){return db[_0x89fc[56]][_0x89fc[82]]()[_0x89fc[45]](respondWithResult(_0x6bd6x15,null,_0x89fc[82]))[_0x89fc[75]](handleError(_0x6bd6x15,null,_0x89fc[82]))}
\ No newline at end of file
index ca087dc..be2927b 100644 (file)
@@ -1 +1 @@
-var _0xd127=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x64\x65\x66\x69\x6E\x65"];_0xd127[0];var _=require(_0xd127[1]);var util=require(_0xd127[2]);var logger=require(_0xd127[4])(_0xd127[3]);var attributes=require(_0xd127[5]);module[_0xd127[6]]= function(_0x8a7fx5,_0x8a7fx6){return _0x8a7fx5[_0xd127[9]](_0xd127[7],attributes,{tableName:_0xd127[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd536=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x64\x65\x66\x69\x6E\x65"];_0xd536[0];var _=require(_0xd536[1]);var util=require(_0xd536[2]);var logger=require(_0xd536[4])(_0xd536[3]);var attributes=require(_0xd536[5]);module[_0xd536[6]]= function(_0x31e3x5,_0x31e3x6){return _0x31e3x5[_0xd536[9]](_0xd536[7],attributes,{tableName:_0xd536[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index e52a990..b6a8667 100644 (file)
@@ -1 +1 @@
-var _0x4c40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x64\x65\x73\x74\x72\x6F\x79"];_0x4c40[0];var _=require(_0x4c40[1]);var util=require(_0x4c40[2]);var moment=require(_0x4c40[3]);var BPromise=require(_0x4c40[4]);var db=require(_0x4c40[6])[_0x4c40[5]];var utils=require(_0x4c40[7]);var logger=require(_0x4c40[9])(_0x4c40[8]);var jayson=require(_0x4c40[10]);var client=jayson[_0x4c40[12]][_0x4c40[11]]({port:9002});function respondWithRpcPromise(_0xb5d0xb,_0xb5d0xc,_0xb5d0xd){return  new BPromise(function(_0xb5d0xe,_0xb5d0xf){return client[_0x4c40[25]](_0xb5d0xb,_0xb5d0xd)[_0x4c40[24]](function(_0xb5d0x11){logger[_0x4c40[17]](_0x4c40[13],_0xb5d0xc,_0x4c40[16]);logger[_0x4c40[20]](_0x4c40[18],_0xb5d0xc,_0x4c40[16],JSON[_0x4c40[19]](_0xb5d0x11));if(_0xb5d0x11[_0x4c40[14]]){if(_0xb5d0x11[_0x4c40[14]][_0x4c40[21]]=== 500){logger[_0x4c40[14]](_0x4c40[13],_0xb5d0xc,_0xb5d0x11[_0x4c40[14]][_0x4c40[22]]);return _0xb5d0xf(_0xb5d0x11[_0x4c40[14]][_0x4c40[22]])};logger[_0x4c40[14]](_0x4c40[13],_0xb5d0xc,_0xb5d0x11[_0x4c40[14]][_0x4c40[22]]);return _0xb5d0xe(_0xb5d0x11[_0x4c40[14]][_0x4c40[22]])}else {logger[_0x4c40[17]](_0x4c40[13],_0xb5d0xc,_0x4c40[16]);_0xb5d0xe(_0xb5d0x11[_0x4c40[23]][_0x4c40[22]])}})[_0x4c40[15]](function(_0xb5d0x10){logger[_0x4c40[14]](_0x4c40[13],_0xb5d0xc,_0xb5d0x10);_0xb5d0xf(_0xb5d0x10)})})}exports[_0x4c40[26]]= function(_0xb5d0xd){var _0xb5d0x12=this;return  new Promise(function(_0xb5d0xe,_0xb5d0xf){return db[_0x4c40[37]][_0x4c40[36]]({raw:_0xb5d0xd[_0x4c40[27]]?(_0xb5d0xd[_0x4c40[27]][_0x4c40[28]]=== undefined)?true:false:true,where:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[29]]|| null:null,attributes:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[30]]|| null:null,limit:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[31]]|| null:null,include:_0xb5d0xd[_0x4c40[27]]?(_0xb5d0xd[_0x4c40[27]][_0x4c40[32]]?_[_0x4c40[35]](_0xb5d0xd[_0x4c40[27]][_0x4c40[32]],function(_0xb5d0x13){return {model:db[_0xb5d0x13[_0x4c40[33]]],as:_0xb5d0x13[_0x4c40[34]],attributes:_0xb5d0x13[_0x4c40[30]],include:_0xb5d0x13[_0x4c40[32]]?_[_0x4c40[35]](_0xb5d0x13[_0x4c40[32]],function(_0xb5d0x14){return {model:db[_0xb5d0x14[_0x4c40[33]]],as:_0xb5d0x14[_0x4c40[34]],attributes:_0xb5d0x14[_0x4c40[30]],include:_0xb5d0x14[_0x4c40[32]]?_[_0x4c40[35]](_0xb5d0x14[_0x4c40[32]],function(_0xb5d0x15){return {model:db[_0xb5d0x15[_0x4c40[33]]],as:_0xb5d0x15[_0x4c40[34]],attributes:_0xb5d0x15[_0x4c40[30]]}}):[]}}):[]}}):[]):[]})[_0x4c40[24]](function(_0xb5d0x11){logger[_0x4c40[17]](_0x4c40[26],_0xb5d0xd);logger[_0x4c40[20]](_0x4c40[26],_0xb5d0xd,JSON[_0x4c40[19]](_0xb5d0x11));_0xb5d0xe(_0xb5d0x11)})[_0x4c40[15]](function(_0xb5d0x10){logger[_0x4c40[14]](_0x4c40[26],_0xb5d0x10[_0x4c40[22]],_0xb5d0xd);_0xb5d0xf(_0xb5d0x12[_0x4c40[14]](500,_0xb5d0x10[_0x4c40[22]]))})})};exports[_0x4c40[38]]= function(_0xb5d0xd){var _0xb5d0x12=this;return  new Promise(function(_0xb5d0xe,_0xb5d0xf){return db[_0x4c40[37]][_0x4c40[40]](_0xb5d0xd[_0x4c40[39]],{raw:_0xb5d0xd[_0x4c40[27]]?(_0xb5d0xd[_0x4c40[27]][_0x4c40[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[29]]|| null:null,attributes:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[30]]|| null:null,limit:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[31]]|| null:null})[_0x4c40[24]](function(_0xb5d0x11){logger[_0x4c40[17]](_0x4c40[38],_0xb5d0xd);logger[_0x4c40[20]](_0x4c40[38],_0xb5d0xd,JSON[_0x4c40[19]](_0xb5d0x11));_0xb5d0xe(_0xb5d0x11)})[_0x4c40[15]](function(_0xb5d0x10){logger[_0x4c40[14]](_0x4c40[38],_0xb5d0x10[_0x4c40[22]],_0xb5d0xd);_0xb5d0xf(_0xb5d0x12[_0x4c40[14]](500,_0xb5d0x10[_0x4c40[22]]))})})};exports[_0x4c40[41]]= function(_0xb5d0xd){var _0xb5d0x12=this;return  new Promise(function(_0xb5d0xe,_0xb5d0xf){return db[_0x4c40[37]][_0x4c40[42]]({where:_0xb5d0xd[_0x4c40[27]]?_0xb5d0xd[_0x4c40[27]][_0x4c40[29]]|| null:null})[_0x4c40[24]](function(_0xb5d0x11){logger[_0x4c40[17]](_0x4c40[41],_0xb5d0xd);logger[_0x4c40[20]](_0x4c40[41],_0xb5d0xd,JSON[_0x4c40[19]](_0xb5d0x11));_0xb5d0xe(_0xb5d0x11)})[_0x4c40[15]](function(_0xb5d0x10){logger[_0x4c40[14]](_0x4c40[41],_0xb5d0x10[_0x4c40[22]],_0xb5d0xd);_0xb5d0xf(_0xb5d0x12[_0x4c40[14]](500,_0xb5d0x10[_0x4c40[22]]))})})}
\ No newline at end of file
+var _0x218a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x64\x65\x73\x74\x72\x6F\x79"];_0x218a[0];var _=require(_0x218a[1]);var util=require(_0x218a[2]);var moment=require(_0x218a[3]);var BPromise=require(_0x218a[4]);var db=require(_0x218a[6])[_0x218a[5]];var utils=require(_0x218a[7]);var logger=require(_0x218a[9])(_0x218a[8]);var jayson=require(_0x218a[10]);var client=jayson[_0x218a[12]][_0x218a[11]]({port:9002});function respondWithRpcPromise(_0x9f9bxb,_0x9f9bxc,_0x9f9bxd){return  new BPromise(function(_0x9f9bxe,_0x9f9bxf){return client[_0x218a[25]](_0x9f9bxb,_0x9f9bxd)[_0x218a[24]](function(_0x9f9bx11){logger[_0x218a[17]](_0x218a[13],_0x9f9bxc,_0x218a[16]);logger[_0x218a[20]](_0x218a[18],_0x9f9bxc,_0x218a[16],JSON[_0x218a[19]](_0x9f9bx11));if(_0x9f9bx11[_0x218a[14]]){if(_0x9f9bx11[_0x218a[14]][_0x218a[21]]=== 500){logger[_0x218a[14]](_0x218a[13],_0x9f9bxc,_0x9f9bx11[_0x218a[14]][_0x218a[22]]);return _0x9f9bxf(_0x9f9bx11[_0x218a[14]][_0x218a[22]])};logger[_0x218a[14]](_0x218a[13],_0x9f9bxc,_0x9f9bx11[_0x218a[14]][_0x218a[22]]);return _0x9f9bxe(_0x9f9bx11[_0x218a[14]][_0x218a[22]])}else {logger[_0x218a[17]](_0x218a[13],_0x9f9bxc,_0x218a[16]);_0x9f9bxe(_0x9f9bx11[_0x218a[23]][_0x218a[22]])}})[_0x218a[15]](function(_0x9f9bx10){logger[_0x218a[14]](_0x218a[13],_0x9f9bxc,_0x9f9bx10);_0x9f9bxf(_0x9f9bx10)})})}exports[_0x218a[26]]= function(_0x9f9bxd){var _0x9f9bx12=this;return  new Promise(function(_0x9f9bxe,_0x9f9bxf){return db[_0x218a[37]][_0x218a[36]]({raw:_0x9f9bxd[_0x218a[27]]?(_0x9f9bxd[_0x218a[27]][_0x218a[28]]=== undefined)?true:false:true,where:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[29]]|| null:null,attributes:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[30]]|| null:null,limit:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[31]]|| null:null,include:_0x9f9bxd[_0x218a[27]]?(_0x9f9bxd[_0x218a[27]][_0x218a[32]]?_[_0x218a[35]](_0x9f9bxd[_0x218a[27]][_0x218a[32]],function(_0x9f9bx13){return {model:db[_0x9f9bx13[_0x218a[33]]],as:_0x9f9bx13[_0x218a[34]],attributes:_0x9f9bx13[_0x218a[30]],include:_0x9f9bx13[_0x218a[32]]?_[_0x218a[35]](_0x9f9bx13[_0x218a[32]],function(_0x9f9bx14){return {model:db[_0x9f9bx14[_0x218a[33]]],as:_0x9f9bx14[_0x218a[34]],attributes:_0x9f9bx14[_0x218a[30]],include:_0x9f9bx14[_0x218a[32]]?_[_0x218a[35]](_0x9f9bx14[_0x218a[32]],function(_0x9f9bx15){return {model:db[_0x9f9bx15[_0x218a[33]]],as:_0x9f9bx15[_0x218a[34]],attributes:_0x9f9bx15[_0x218a[30]]}}):[]}}):[]}}):[]):[]})[_0x218a[24]](function(_0x9f9bx11){logger[_0x218a[17]](_0x218a[26],_0x9f9bxd);logger[_0x218a[20]](_0x218a[26],_0x9f9bxd,JSON[_0x218a[19]](_0x9f9bx11));_0x9f9bxe(_0x9f9bx11)})[_0x218a[15]](function(_0x9f9bx10){logger[_0x218a[14]](_0x218a[26],_0x9f9bx10[_0x218a[22]],_0x9f9bxd);_0x9f9bxf(_0x9f9bx12[_0x218a[14]](500,_0x9f9bx10[_0x218a[22]]))})})};exports[_0x218a[38]]= function(_0x9f9bxd){var _0x9f9bx12=this;return  new Promise(function(_0x9f9bxe,_0x9f9bxf){return db[_0x218a[37]][_0x218a[40]](_0x9f9bxd[_0x218a[39]],{raw:_0x9f9bxd[_0x218a[27]]?(_0x9f9bxd[_0x218a[27]][_0x218a[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[29]]|| null:null,attributes:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[30]]|| null:null,limit:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[31]]|| null:null})[_0x218a[24]](function(_0x9f9bx11){logger[_0x218a[17]](_0x218a[38],_0x9f9bxd);logger[_0x218a[20]](_0x218a[38],_0x9f9bxd,JSON[_0x218a[19]](_0x9f9bx11));_0x9f9bxe(_0x9f9bx11)})[_0x218a[15]](function(_0x9f9bx10){logger[_0x218a[14]](_0x218a[38],_0x9f9bx10[_0x218a[22]],_0x9f9bxd);_0x9f9bxf(_0x9f9bx12[_0x218a[14]](500,_0x9f9bx10[_0x218a[22]]))})})};exports[_0x218a[41]]= function(_0x9f9bxd){var _0x9f9bx12=this;return  new Promise(function(_0x9f9bxe,_0x9f9bxf){return db[_0x218a[37]][_0x218a[42]]({where:_0x9f9bxd[_0x218a[27]]?_0x9f9bxd[_0x218a[27]][_0x218a[29]]|| null:null})[_0x218a[24]](function(_0x9f9bx11){logger[_0x218a[17]](_0x218a[41],_0x9f9bxd);logger[_0x218a[20]](_0x218a[41],_0x9f9bxd,JSON[_0x218a[19]](_0x9f9bx11));_0x9f9bxe(_0x9f9bx11)})[_0x218a[15]](function(_0x9f9bx10){logger[_0x218a[14]](_0x218a[41],_0x9f9bx10[_0x218a[22]],_0x9f9bxd);_0x9f9bxf(_0x9f9bx12[_0x218a[14]](500,_0x9f9bx10[_0x218a[22]]))})})}
\ No newline at end of file
index ed8610f..e3f1a74 100644 (file)
@@ -1 +1 @@
-var _0xf737=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf737[0];var multer=require(_0xf737[1]);var util=require(_0xf737[2]);var path=require(_0xf737[3]);var express=require(_0xf737[4]);var router=express.Router();var auth=require(_0xf737[5]);var config=require(_0xf737[6]);var controller=require(_0xf737[7]);router[_0xf737[11]](_0xf737[8],auth[_0xf737[9]](),controller[_0xf737[10]]);router[_0xf737[11]](_0xf737[12],auth[_0xf737[9]](),controller[_0xf737[13]]);router[_0xf737[11]](_0xf737[14],auth[_0xf737[9]](),controller[_0xf737[15]]);router[_0xf737[17]](_0xf737[14],auth[_0xf737[9]](),controller[_0xf737[16]]);router[_0xf737[19]](_0xf737[14],auth[_0xf737[9]](),controller[_0xf737[18]]);module[_0xf737[20]]= router
\ No newline at end of file
+var _0x5ea3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5ea3[0];var multer=require(_0x5ea3[1]);var util=require(_0x5ea3[2]);var path=require(_0x5ea3[3]);var express=require(_0x5ea3[4]);var router=express.Router();var auth=require(_0x5ea3[5]);var config=require(_0x5ea3[6]);var controller=require(_0x5ea3[7]);router[_0x5ea3[11]](_0x5ea3[8],auth[_0x5ea3[9]](),controller[_0x5ea3[10]]);router[_0x5ea3[11]](_0x5ea3[12],auth[_0x5ea3[9]](),controller[_0x5ea3[13]]);router[_0x5ea3[11]](_0x5ea3[14],auth[_0x5ea3[9]](),controller[_0x5ea3[15]]);router[_0x5ea3[17]](_0x5ea3[14],auth[_0x5ea3[9]](),controller[_0x5ea3[16]]);router[_0x5ea3[19]](_0x5ea3[14],auth[_0x5ea3[9]](),controller[_0x5ea3[18]]);module[_0x5ea3[20]]= router
\ No newline at end of file
index a31746b..300c161 100644 (file)
@@ -1 +1 @@
-var _0x9553=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x65\x6E\x64\x74\x69\x6D\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x66\x6F\x6C\x6C\x6F\x77\x75\x70\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x61\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x9553[0];var Sequelize=require(_0x9553[1]);var moment=require(_0x9553[2]);module[_0x9553[3]]= {state:{type:Sequelize.INTEGER(2)},statedesc:{type:Sequelize[_0x9553[4]]},scheduledat:{type:Sequelize[_0x9553[5]]},countbusyretry:{type:Sequelize[_0x9553[6]],defaultValue:0},countcongestionretry:{type:Sequelize[_0x9553[6]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0x9553[6]],defaultValue:0},countglobal:{type:Sequelize[_0x9553[6]],defaultValue:0},uniqueid:{type:Sequelize[_0x9553[4]]},calleridnum:{type:Sequelize[_0x9553[4]]},calleridname:{type:Sequelize[_0x9553[4]]},starttime:{type:Sequelize[_0x9553[5]]},responsetime:{type:Sequelize[_0x9553[5]]},answertime:{type:Sequelize[_0x9553[5]]},droptime:{type:Sequelize[_0x9553[5]]},endtime:{type:Sequelize[_0x9553[5]]},ringtime:{type:Sequelize[_0x9553[6]],defaultValue:0},holdtime:{type:Sequelize[_0x9553[6]],defaultValue:0},talktime:{type:Sequelize[_0x9553[6]],defaultValue:0},followuptime:{type:Sequelize[_0x9553[6]],defaultValue:0},dropreason:{type:Sequelize[_0x9553[4]]},campaign:{type:Sequelize[_0x9553[4]]},campaigntype:{type:Sequelize[_0x9553[4]]},membername:{type:Sequelize[_0x9553[4]]},reason:{type:Sequelize[_0x9553[4]]},disposition:{type:Sequelize[_0x9553[4]]},dispositionat:{type:Sequelize[_0x9553[5]],set:function(_0xcae7x3){var _0xcae7x4=this[_0x9553[8]](_0x9553[7]);if(_0xcae7x4&& _0xcae7x3){this[_0x9553[12]](_0x9553[9],moment(_0xcae7x3)[_0x9553[11]](moment(_0xcae7x4),_0x9553[10]))};return this[_0x9553[12]](_0x9553[13],_0xcae7x3)}},amd:{type:Sequelize[_0x9553[14]],defaultValue:false},fax:{type:Sequelize[_0x9553[14]],defaultValue:false},blacklist:{type:Sequelize[_0x9553[14]],defaultValue:false},rescheduled:{type:Sequelize[_0x9553[14]],defaultValue:false},rescheduledat:{type:Sequelize[_0x9553[5]]},callback:{type:Sequelize[_0x9553[14]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0x9553[4]],defaultValue:null},callbackat:{type:Sequelize[_0x9553[5]]},deleted:{type:Sequelize[_0x9553[4]],defaultValue:null},deletedat:{type:Sequelize[_0x9553[5]]}}
\ No newline at end of file
+var _0xb4d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x65\x6E\x64\x74\x69\x6D\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x66\x6F\x6C\x6C\x6F\x77\x75\x70\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x61\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xb4d2[0];var Sequelize=require(_0xb4d2[1]);var moment=require(_0xb4d2[2]);module[_0xb4d2[3]]= {state:{type:Sequelize.INTEGER(2)},statedesc:{type:Sequelize[_0xb4d2[4]]},scheduledat:{type:Sequelize[_0xb4d2[5]]},countbusyretry:{type:Sequelize[_0xb4d2[6]],defaultValue:0},countcongestionretry:{type:Sequelize[_0xb4d2[6]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0xb4d2[6]],defaultValue:0},countglobal:{type:Sequelize[_0xb4d2[6]],defaultValue:0},uniqueid:{type:Sequelize[_0xb4d2[4]]},calleridnum:{type:Sequelize[_0xb4d2[4]]},calleridname:{type:Sequelize[_0xb4d2[4]]},starttime:{type:Sequelize[_0xb4d2[5]]},responsetime:{type:Sequelize[_0xb4d2[5]]},answertime:{type:Sequelize[_0xb4d2[5]]},droptime:{type:Sequelize[_0xb4d2[5]]},endtime:{type:Sequelize[_0xb4d2[5]]},ringtime:{type:Sequelize[_0xb4d2[6]],defaultValue:0},holdtime:{type:Sequelize[_0xb4d2[6]],defaultValue:0},talktime:{type:Sequelize[_0xb4d2[6]],defaultValue:0},followuptime:{type:Sequelize[_0xb4d2[6]],defaultValue:0},dropreason:{type:Sequelize[_0xb4d2[4]]},campaign:{type:Sequelize[_0xb4d2[4]]},campaigntype:{type:Sequelize[_0xb4d2[4]]},membername:{type:Sequelize[_0xb4d2[4]]},reason:{type:Sequelize[_0xb4d2[4]]},disposition:{type:Sequelize[_0xb4d2[4]]},dispositionat:{type:Sequelize[_0xb4d2[5]],set:function(_0x1cccx3){var _0x1cccx4=this[_0xb4d2[8]](_0xb4d2[7]);if(_0x1cccx4&& _0x1cccx3){this[_0xb4d2[12]](_0xb4d2[9],moment(_0x1cccx3)[_0xb4d2[11]](moment(_0x1cccx4),_0xb4d2[10]))};return this[_0xb4d2[12]](_0xb4d2[13],_0x1cccx3)}},amd:{type:Sequelize[_0xb4d2[14]],defaultValue:false},fax:{type:Sequelize[_0xb4d2[14]],defaultValue:false},blacklist:{type:Sequelize[_0xb4d2[14]],defaultValue:false},rescheduled:{type:Sequelize[_0xb4d2[14]],defaultValue:false},rescheduledat:{type:Sequelize[_0xb4d2[5]]},callback:{type:Sequelize[_0xb4d2[14]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0xb4d2[4]],defaultValue:null},callbackat:{type:Sequelize[_0xb4d2[5]]},deleted:{type:Sequelize[_0xb4d2[4]],defaultValue:null},deletedat:{type:Sequelize[_0xb4d2[5]]}}
\ No newline at end of file
index dc6b11a..5010996 100644 (file)
@@ -1 +1 @@
-var _0xe798=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x62\x6F\x64\x79"];_0xe798[0];var jsonpatch=require(_0xe798[1]);var rp=require(_0xe798[2]);var moment=require(_0xe798[3]);var BPromise=require(_0xe798[4]);var util=require(_0xe798[5]);var path=require(_0xe798[6]);var sox=require(_0xe798[7]);var ejs=require(_0xe798[8]);var fs=require(_0xe798[9]);var _=require(_0xe798[10]);var squel=require(_0xe798[11]);var crypto=require(_0xe798[12]);var jsforce=require(_0xe798[13]);var toCsv=require(_0xe798[14]);var qs=require(_0xe798[15]);var logger=require(_0xe798[17])(_0xe798[16]);var utils=require(_0xe798[18]);var config=require(_0xe798[19]);var db=require(_0xe798[21])[_0xe798[20]];function respondWithStatusCode(_0x41b3x15,_0x41b3x16,_0x41b3x17){_0x41b3x16= _0x41b3x16|| 204;return function(_0x41b3x18){if(_0x41b3x18){logger[_0xe798[24]](_0xe798[22],_0x41b3x17,_0x41b3x16,_0xe798[23]);logger[_0xe798[26]](_0xe798[25],_0x41b3x17,_0x41b3x16,_0xe798[23]);return _0x41b3x15[_0xe798[27]](_0x41b3x16)};return _0x41b3x15[_0xe798[29]](304)[_0xe798[28]]()}}function respondWithResult(_0x41b3x15,_0x41b3x16,_0x41b3x17){_0x41b3x16= _0x41b3x16|| 200;return function(_0x41b3x18){if(_0x41b3x18){logger[_0xe798[24]](_0xe798[22],_0x41b3x17,_0x41b3x16,_0xe798[30]);logger[_0xe798[26]](_0xe798[25],_0x41b3x17,_0x41b3x16,_0xe798[30],JSON[_0xe798[31]](_0x41b3x18));return _0x41b3x15[_0xe798[29]](_0x41b3x16)[_0xe798[32]](_0x41b3x18)};return _0x41b3x15[_0xe798[29]](304)[_0xe798[28]]()}}function respondWithFilteredResult(_0x41b3x15,_0x41b3x1b,_0x41b3x17){return function(_0x41b3x18){if(_0x41b3x18){var _0x41b3x1c=_0x41b3x18[_0xe798[33]],_0x41b3x1d=_0x41b3x1b[_0xe798[34]],_0x41b3x1e=_0x41b3x1b[_0xe798[34]]+ _0x41b3x1b[_0xe798[35]],_0x41b3x16;if(_0x41b3x1e>= _0x41b3x1c){_0x41b3x1e= _0x41b3x1c;_0x41b3x16= 200}else {_0x41b3x16= 206};_0x41b3x15[_0xe798[29]](_0x41b3x16);logger[_0xe798[24]](_0xe798[22],_0x41b3x17,_0x41b3x16,_0xe798[36]);logger[_0xe798[26]](_0xe798[25],_0x41b3x17,_0x41b3x16,_0xe798[30],JSON[_0xe798[31]](_0x41b3x18));return _0x41b3x15[_0xe798[40]](_0xe798[37],_0x41b3x1d+ _0xe798[38]+ _0x41b3x1e+ _0xe798[39]+ _0x41b3x1c)[_0xe798[32]](_0x41b3x18)};return null}}function patchUpdates(_0x41b3x20){return function(_0x41b3x18){try{jsonpatch[_0xe798[41]](_0x41b3x18,_0x41b3x20,true)}catch(err){return BPromise[_0xe798[42]](err)};return _0x41b3x18[_0xe798[43]]()}}function saveUpdates(_0x41b3x22,_0x41b3x16,_0x41b3x17){return function(_0x41b3x18){if(_0x41b3x18){return _0x41b3x18[_0xe798[46]](_0x41b3x22)[_0xe798[45]](function(_0x41b3x23){logger[_0xe798[24]](_0xe798[22],_0x41b3x17,_0x41b3x16,_0xe798[44]);logger[_0xe798[26]](_0xe798[25],_0x41b3x17,_0x41b3x16,_0xe798[44],JSON[_0xe798[31]](_0x41b3x18));return _0x41b3x23})};return null}}function removeEntity(_0x41b3x15,_0x41b3x16,_0x41b3x17){return function(_0x41b3x18){if(_0x41b3x18){return _0x41b3x18[_0xe798[48]]()[_0xe798[45]](function(){logger[_0xe798[24]](_0xe798[22],_0x41b3x17,_0x41b3x16,_0xe798[47]);logger[_0xe798[26]](_0xe798[25],_0x41b3x17,_0x41b3x16,_0xe798[47],JSON[_0xe798[31]](_0x41b3x18));_0x41b3x15[_0xe798[29]](204)[_0xe798[28]]()})}}}function handleEntityNotFound(_0x41b3x15,_0x41b3x16,_0x41b3x17){return function(_0x41b3x18){if(!_0x41b3x18){logger[_0xe798[50]](_0xe798[22],_0x41b3x17,404,_0xe798[49]);_0x41b3x15[_0xe798[29]](404)[_0xe798[28]]();return null};return _0x41b3x18}}function handleError(_0x41b3x15,_0x41b3x16,_0x41b3x17){_0x41b3x16= _0x41b3x16|| 500;return function(_0x41b3x27){logger[_0xe798[50]](_0xe798[22],_0x41b3x17,_0x41b3x16,JSON[_0xe798[31]](_0x41b3x27));delete _0x41b3x27[_0xe798[51]];_0x41b3x15[_0xe798[29]](_0x41b3x16)[_0xe798[52]](_0x41b3x27)}}exports[_0xe798[53]]= function(_0x41b3x28,_0x41b3x15){var _0x41b3x1b={},_0x41b3x29={};_0x41b3x29[_0xe798[54]]= _[_0xe798[57]](db[_0xe798[56]][_0xe798[55]]);_0x41b3x29[_0xe798[58]]= _[_0xe798[57]](_0x41b3x28[_0xe798[58]]);_0x41b3x29[_0xe798[59]]= _[_0xe798[60]](_0x41b3x29[_0xe798[54]],_0x41b3x29[_0xe798[58]]);_0x41b3x1b[_0xe798[61]]= _[_0xe798[60]](_0x41b3x29[_0xe798[54]],qs[_0xe798[62]](_0x41b3x28[_0xe798[58]][_0xe798[62]]));_0x41b3x1b[_0xe798[61]]= (_0x41b3x1b[_0xe798[61]][_0xe798[63]])?_0x41b3x1b[_0xe798[61]]:_0x41b3x29[_0xe798[54]];if(!_0x41b3x28[_0xe798[58]][_0xe798[65]](_0xe798[64])){_0x41b3x1b[_0xe798[35]]= qs[_0xe798[35]](_0x41b3x28[_0xe798[58]][_0xe798[35]]);_0x41b3x1b[_0xe798[34]]= qs[_0xe798[34]](_0x41b3x28[_0xe798[58]][_0xe798[34]])};_0x41b3x1b[_0xe798[66]]= qs[_0xe798[67]](_0x41b3x28[_0xe798[58]][_0xe798[67]]);_0x41b3x1b[_0xe798[68]]= qs[_0xe798[59]](_[_0xe798[69]](_0x41b3x28[_0xe798[58]],_0x41b3x29[_0xe798[59]]));if(_0x41b3x28[_0xe798[58]][_0xe798[70]]){_0x41b3x1b[_0xe798[68]]= _[_0xe798[73]](_0x41b3x1b[_0xe798[68]],{$or:_[_0xe798[72]](_0x41b3x1b[_0xe798[61]],function(_0x41b3x2a){var _0x41b3x2b={};_0x41b3x2b[_0x41b3x2a]= {$like:_0xe798[71]+ _0x41b3x28[_0xe798[58]][_0xe798[70]]+ _0xe798[71]};return _0x41b3x2b})})};_0x41b3x1b= _[_0xe798[73]]({},_0x41b3x1b,_0x41b3x28[_0xe798[74]]);return db[_0xe798[56]][_0xe798[76]](_0x41b3x1b)[_0xe798[45]](respondWithFilteredResult(_0x41b3x15,_0x41b3x1b,_0xe798[53]))[_0xe798[75]](handleError(_0x41b3x15,null,_0xe798[53]))};exports[_0xe798[77]]= function(_0x41b3x28,_0x41b3x15){var _0x41b3x1b={raw:true,where:{id:_0x41b3x28[_0xe798[79]][_0xe798[78]]}},_0x41b3x29={};_0x41b3x29[_0xe798[54]]= _[_0xe798[57]](db[_0xe798[56]][_0xe798[55]]);_0x41b3x29[_0xe798[58]]= _[_0xe798[57]](_0x41b3x28[_0xe798[58]]);_0x41b3x29[_0xe798[59]]= _[_0xe798[60]](_0x41b3x29[_0xe798[54]],_0x41b3x29[_0xe798[58]]);_0x41b3x1b[_0xe798[61]]= _[_0xe798[60]](_0x41b3x29[_0xe798[54]],qs[_0xe798[62]](_0x41b3x28[_0xe798[58]][_0xe798[62]]));_0x41b3x1b[_0xe798[61]]= (_0x41b3x1b[_0xe798[61]][_0xe798[63]])?_0x41b3x1b[_0xe798[61]]:_0x41b3x29[_0xe798[54]];_0x41b3x1b= _[_0xe798[73]]({},_0x41b3x1b,_0x41b3x28[_0xe798[74]]);return db[_0xe798[56]][_0xe798[80]](_0x41b3x1b)[_0xe798[45]](handleEntityNotFound(_0x41b3x15,null,_0xe798[77]))[_0xe798[45]](respondWithResult(_0x41b3x15,null,_0xe798[77]))[_0xe798[75]](handleError(_0x41b3x15,null,_0xe798[77]))};exports[_0xe798[81]]= function(_0x41b3x28,_0x41b3x15){return db[_0xe798[56]][_0xe798[81]]()[_0xe798[45]](respondWithResult(_0x41b3x15,null,_0xe798[81]))[_0xe798[75]](handleError(_0x41b3x15,null,_0xe798[81]))};exports[_0xe798[46]]= function(_0x41b3x28,_0x41b3x15){if(_0x41b3x28[_0xe798[83]][_0xe798[82]]){delete _0x41b3x28[_0xe798[83]][_0xe798[82]]};return db[_0xe798[56]][_0xe798[80]]({where:{uniqueid:_0x41b3x28[_0xe798[79]][_0xe798[78]]}})[_0xe798[45]](handleEntityNotFound(_0x41b3x15,null,_0xe798[46]))[_0xe798[45]](saveUpdates(_0x41b3x28[_0xe798[83]],null,_0xe798[46]))[_0xe798[45]](respondWithResult(_0x41b3x15,null,_0xe798[46]))[_0xe798[75]](handleError(_0x41b3x15,null,_0xe798[46]))}
\ No newline at end of file
+var _0xb608=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x62\x6F\x64\x79"];_0xb608[0];var jsonpatch=require(_0xb608[1]);var rp=require(_0xb608[2]);var moment=require(_0xb608[3]);var BPromise=require(_0xb608[4]);var util=require(_0xb608[5]);var path=require(_0xb608[6]);var sox=require(_0xb608[7]);var ejs=require(_0xb608[8]);var fs=require(_0xb608[9]);var _=require(_0xb608[10]);var squel=require(_0xb608[11]);var crypto=require(_0xb608[12]);var jsforce=require(_0xb608[13]);var toCsv=require(_0xb608[14]);var qs=require(_0xb608[15]);var logger=require(_0xb608[17])(_0xb608[16]);var utils=require(_0xb608[18]);var config=require(_0xb608[19]);var db=require(_0xb608[21])[_0xb608[20]];function respondWithStatusCode(_0x13a4x15,_0x13a4x16,_0x13a4x17){_0x13a4x16= _0x13a4x16|| 204;return function(_0x13a4x18){if(_0x13a4x18){logger[_0xb608[24]](_0xb608[22],_0x13a4x17,_0x13a4x16,_0xb608[23]);logger[_0xb608[26]](_0xb608[25],_0x13a4x17,_0x13a4x16,_0xb608[23]);return _0x13a4x15[_0xb608[27]](_0x13a4x16)};return _0x13a4x15[_0xb608[29]](304)[_0xb608[28]]()}}function respondWithResult(_0x13a4x15,_0x13a4x16,_0x13a4x17){_0x13a4x16= _0x13a4x16|| 200;return function(_0x13a4x18){if(_0x13a4x18){logger[_0xb608[24]](_0xb608[22],_0x13a4x17,_0x13a4x16,_0xb608[30]);logger[_0xb608[26]](_0xb608[25],_0x13a4x17,_0x13a4x16,_0xb608[30],JSON[_0xb608[31]](_0x13a4x18));return _0x13a4x15[_0xb608[29]](_0x13a4x16)[_0xb608[32]](_0x13a4x18)};return _0x13a4x15[_0xb608[29]](304)[_0xb608[28]]()}}function respondWithFilteredResult(_0x13a4x15,_0x13a4x1b,_0x13a4x17){return function(_0x13a4x18){if(_0x13a4x18){var _0x13a4x1c=_0x13a4x18[_0xb608[33]],_0x13a4x1d=_0x13a4x1b[_0xb608[34]],_0x13a4x1e=_0x13a4x1b[_0xb608[34]]+ _0x13a4x1b[_0xb608[35]],_0x13a4x16;if(_0x13a4x1e>= _0x13a4x1c){_0x13a4x1e= _0x13a4x1c;_0x13a4x16= 200}else {_0x13a4x16= 206};_0x13a4x15[_0xb608[29]](_0x13a4x16);logger[_0xb608[24]](_0xb608[22],_0x13a4x17,_0x13a4x16,_0xb608[36]);logger[_0xb608[26]](_0xb608[25],_0x13a4x17,_0x13a4x16,_0xb608[30],JSON[_0xb608[31]](_0x13a4x18));return _0x13a4x15[_0xb608[40]](_0xb608[37],_0x13a4x1d+ _0xb608[38]+ _0x13a4x1e+ _0xb608[39]+ _0x13a4x1c)[_0xb608[32]](_0x13a4x18)};return null}}function patchUpdates(_0x13a4x20){return function(_0x13a4x18){try{jsonpatch[_0xb608[41]](_0x13a4x18,_0x13a4x20,true)}catch(err){return BPromise[_0xb608[42]](err)};return _0x13a4x18[_0xb608[43]]()}}function saveUpdates(_0x13a4x22,_0x13a4x16,_0x13a4x17){return function(_0x13a4x18){if(_0x13a4x18){return _0x13a4x18[_0xb608[46]](_0x13a4x22)[_0xb608[45]](function(_0x13a4x23){logger[_0xb608[24]](_0xb608[22],_0x13a4x17,_0x13a4x16,_0xb608[44]);logger[_0xb608[26]](_0xb608[25],_0x13a4x17,_0x13a4x16,_0xb608[44],JSON[_0xb608[31]](_0x13a4x18));return _0x13a4x23})};return null}}function removeEntity(_0x13a4x15,_0x13a4x16,_0x13a4x17){return function(_0x13a4x18){if(_0x13a4x18){return _0x13a4x18[_0xb608[48]]()[_0xb608[45]](function(){logger[_0xb608[24]](_0xb608[22],_0x13a4x17,_0x13a4x16,_0xb608[47]);logger[_0xb608[26]](_0xb608[25],_0x13a4x17,_0x13a4x16,_0xb608[47],JSON[_0xb608[31]](_0x13a4x18));_0x13a4x15[_0xb608[29]](204)[_0xb608[28]]()})}}}function handleEntityNotFound(_0x13a4x15,_0x13a4x16,_0x13a4x17){return function(_0x13a4x18){if(!_0x13a4x18){logger[_0xb608[50]](_0xb608[22],_0x13a4x17,404,_0xb608[49]);_0x13a4x15[_0xb608[29]](404)[_0xb608[28]]();return null};return _0x13a4x18}}function handleError(_0x13a4x15,_0x13a4x16,_0x13a4x17){_0x13a4x16= _0x13a4x16|| 500;return function(_0x13a4x27){logger[_0xb608[50]](_0xb608[22],_0x13a4x17,_0x13a4x16,JSON[_0xb608[31]](_0x13a4x27));delete _0x13a4x27[_0xb608[51]];_0x13a4x15[_0xb608[29]](_0x13a4x16)[_0xb608[52]](_0x13a4x27)}}exports[_0xb608[53]]= function(_0x13a4x28,_0x13a4x15){var _0x13a4x1b={},_0x13a4x29={};_0x13a4x29[_0xb608[54]]= _[_0xb608[57]](db[_0xb608[56]][_0xb608[55]]);_0x13a4x29[_0xb608[58]]= _[_0xb608[57]](_0x13a4x28[_0xb608[58]]);_0x13a4x29[_0xb608[59]]= _[_0xb608[60]](_0x13a4x29[_0xb608[54]],_0x13a4x29[_0xb608[58]]);_0x13a4x1b[_0xb608[61]]= _[_0xb608[60]](_0x13a4x29[_0xb608[54]],qs[_0xb608[62]](_0x13a4x28[_0xb608[58]][_0xb608[62]]));_0x13a4x1b[_0xb608[61]]= (_0x13a4x1b[_0xb608[61]][_0xb608[63]])?_0x13a4x1b[_0xb608[61]]:_0x13a4x29[_0xb608[54]];if(!_0x13a4x28[_0xb608[58]][_0xb608[65]](_0xb608[64])){_0x13a4x1b[_0xb608[35]]= qs[_0xb608[35]](_0x13a4x28[_0xb608[58]][_0xb608[35]]);_0x13a4x1b[_0xb608[34]]= qs[_0xb608[34]](_0x13a4x28[_0xb608[58]][_0xb608[34]])};_0x13a4x1b[_0xb608[66]]= qs[_0xb608[67]](_0x13a4x28[_0xb608[58]][_0xb608[67]]);_0x13a4x1b[_0xb608[68]]= qs[_0xb608[59]](_[_0xb608[69]](_0x13a4x28[_0xb608[58]],_0x13a4x29[_0xb608[59]]));if(_0x13a4x28[_0xb608[58]][_0xb608[70]]){_0x13a4x1b[_0xb608[68]]= _[_0xb608[73]](_0x13a4x1b[_0xb608[68]],{$or:_[_0xb608[72]](_0x13a4x1b[_0xb608[61]],function(_0x13a4x2a){var _0x13a4x2b={};_0x13a4x2b[_0x13a4x2a]= {$like:_0xb608[71]+ _0x13a4x28[_0xb608[58]][_0xb608[70]]+ _0xb608[71]};return _0x13a4x2b})})};_0x13a4x1b= _[_0xb608[73]]({},_0x13a4x1b,_0x13a4x28[_0xb608[74]]);return db[_0xb608[56]][_0xb608[76]](_0x13a4x1b)[_0xb608[45]](respondWithFilteredResult(_0x13a4x15,_0x13a4x1b,_0xb608[53]))[_0xb608[75]](handleError(_0x13a4x15,null,_0xb608[53]))};exports[_0xb608[77]]= function(_0x13a4x28,_0x13a4x15){var _0x13a4x1b={raw:true,where:{id:_0x13a4x28[_0xb608[79]][_0xb608[78]]}},_0x13a4x29={};_0x13a4x29[_0xb608[54]]= _[_0xb608[57]](db[_0xb608[56]][_0xb608[55]]);_0x13a4x29[_0xb608[58]]= _[_0xb608[57]](_0x13a4x28[_0xb608[58]]);_0x13a4x29[_0xb608[59]]= _[_0xb608[60]](_0x13a4x29[_0xb608[54]],_0x13a4x29[_0xb608[58]]);_0x13a4x1b[_0xb608[61]]= _[_0xb608[60]](_0x13a4x29[_0xb608[54]],qs[_0xb608[62]](_0x13a4x28[_0xb608[58]][_0xb608[62]]));_0x13a4x1b[_0xb608[61]]= (_0x13a4x1b[_0xb608[61]][_0xb608[63]])?_0x13a4x1b[_0xb608[61]]:_0x13a4x29[_0xb608[54]];_0x13a4x1b= _[_0xb608[73]]({},_0x13a4x1b,_0x13a4x28[_0xb608[74]]);return db[_0xb608[56]][_0xb608[80]](_0x13a4x1b)[_0xb608[45]](handleEntityNotFound(_0x13a4x15,null,_0xb608[77]))[_0xb608[45]](respondWithResult(_0x13a4x15,null,_0xb608[77]))[_0xb608[75]](handleError(_0x13a4x15,null,_0xb608[77]))};exports[_0xb608[81]]= function(_0x13a4x28,_0x13a4x15){return db[_0xb608[56]][_0xb608[81]]()[_0xb608[45]](respondWithResult(_0x13a4x15,null,_0xb608[81]))[_0xb608[75]](handleError(_0x13a4x15,null,_0xb608[81]))};exports[_0xb608[46]]= function(_0x13a4x28,_0x13a4x15){if(_0x13a4x28[_0xb608[83]][_0xb608[82]]){delete _0x13a4x28[_0xb608[83]][_0xb608[82]]};return db[_0xb608[56]][_0xb608[80]]({where:{uniqueid:_0x13a4x28[_0xb608[79]][_0xb608[78]]}})[_0xb608[45]](handleEntityNotFound(_0x13a4x15,null,_0xb608[46]))[_0xb608[45]](saveUpdates(_0x13a4x28[_0xb608[83]],null,_0xb608[46]))[_0xb608[45]](respondWithResult(_0x13a4x15,null,_0xb608[46]))[_0xb608[75]](handleError(_0x13a4x15,null,_0xb608[46]))}
\ No newline at end of file
index b37e469..9d6fa00 100644 (file)
@@ -1 +1 @@
-var _0x6c5c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x64\x65\x66\x69\x6E\x65"];_0x6c5c[0];var _=require(_0x6c5c[1]);var util=require(_0x6c5c[2]);var logger=require(_0x6c5c[4])(_0x6c5c[3]);var attributes=require(_0x6c5c[5]);module[_0x6c5c[6]]= function(_0x2cc2x5,_0x2cc2x6){return _0x2cc2x5[_0x6c5c[9]](_0x6c5c[7],attributes,{tableName:_0x6c5c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x585a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x64\x65\x66\x69\x6E\x65"];_0x585a[0];var _=require(_0x585a[1]);var util=require(_0x585a[2]);var logger=require(_0x585a[4])(_0x585a[3]);var attributes=require(_0x585a[5]);module[_0x585a[6]]= function(_0x5c9bx5,_0x5c9bx6){return _0x5c9bx5[_0x585a[9]](_0x585a[7],attributes,{tableName:_0x585a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 765897c..9f8ca29 100644 (file)
@@ -1 +1 @@
-var _0x4780=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C"];_0x4780[0];var _=require(_0x4780[1]);var util=require(_0x4780[2]);var moment=require(_0x4780[3]);var BPromise=require(_0x4780[4]);var db=require(_0x4780[6])[_0x4780[5]];var utils=require(_0x4780[7]);var logger=require(_0x4780[9])(_0x4780[8]);var jayson=require(_0x4780[10]);var client=jayson[_0x4780[12]][_0x4780[11]]({port:9002});function respondWithRpcPromise(_0x9a5cxb,_0x9a5cxc,_0x9a5cxd){return  new BPromise(function(_0x9a5cxe,_0x9a5cxf){return client[_0x4780[25]](_0x9a5cxb,_0x9a5cxd)[_0x4780[24]](function(_0x9a5cx11){logger[_0x4780[17]](_0x4780[13],_0x9a5cxc,_0x4780[16]);logger[_0x4780[20]](_0x4780[18],_0x9a5cxc,_0x4780[16],JSON[_0x4780[19]](_0x9a5cx11));if(_0x9a5cx11[_0x4780[14]]){if(_0x9a5cx11[_0x4780[14]][_0x4780[21]]=== 500){logger[_0x4780[14]](_0x4780[13],_0x9a5cxc,_0x9a5cx11[_0x4780[14]][_0x4780[22]]);return _0x9a5cxf(_0x9a5cx11[_0x4780[14]][_0x4780[22]])};logger[_0x4780[14]](_0x4780[13],_0x9a5cxc,_0x9a5cx11[_0x4780[14]][_0x4780[22]]);return _0x9a5cxe(_0x9a5cx11[_0x4780[14]][_0x4780[22]])}else {logger[_0x4780[17]](_0x4780[13],_0x9a5cxc,_0x4780[16]);_0x9a5cxe(_0x9a5cx11[_0x4780[23]][_0x4780[22]])}})[_0x4780[15]](function(_0x9a5cx10){logger[_0x4780[14]](_0x4780[13],_0x9a5cxc,_0x9a5cx10);_0x9a5cxf(_0x9a5cx10)})})}exports[_0x4780[26]]= function(_0x9a5cxd){var _0x9a5cx12=this;return  new Promise(function(_0x9a5cxe,_0x9a5cxf){return db[_0x4780[31]][_0x4780[30]](_0x9a5cxd[_0x4780[27]],{raw:_0x9a5cxd[_0x4780[28]]?(_0x9a5cxd[_0x4780[28]][_0x4780[29]]=== undefined)?true:false:true})[_0x4780[24]](function(_0x9a5cx11){logger[_0x4780[17]](_0x4780[26],_0x9a5cxd);logger[_0x4780[20]](_0x4780[26],_0x9a5cxd,JSON[_0x4780[19]](_0x9a5cx11));_0x9a5cxe(_0x9a5cx11)})[_0x4780[15]](function(_0x9a5cx10){logger[_0x4780[14]](_0x4780[26],_0x9a5cx10[_0x4780[22]],_0x9a5cxd);_0x9a5cxf(_0x9a5cx12[_0x4780[14]](500,_0x9a5cx10[_0x4780[22]]))})})}
\ No newline at end of file
+var _0x68b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C"];_0x68b2[0];var _=require(_0x68b2[1]);var util=require(_0x68b2[2]);var moment=require(_0x68b2[3]);var BPromise=require(_0x68b2[4]);var db=require(_0x68b2[6])[_0x68b2[5]];var utils=require(_0x68b2[7]);var logger=require(_0x68b2[9])(_0x68b2[8]);var jayson=require(_0x68b2[10]);var client=jayson[_0x68b2[12]][_0x68b2[11]]({port:9002});function respondWithRpcPromise(_0xab3dxb,_0xab3dxc,_0xab3dxd){return  new BPromise(function(_0xab3dxe,_0xab3dxf){return client[_0x68b2[25]](_0xab3dxb,_0xab3dxd)[_0x68b2[24]](function(_0xab3dx11){logger[_0x68b2[17]](_0x68b2[13],_0xab3dxc,_0x68b2[16]);logger[_0x68b2[20]](_0x68b2[18],_0xab3dxc,_0x68b2[16],JSON[_0x68b2[19]](_0xab3dx11));if(_0xab3dx11[_0x68b2[14]]){if(_0xab3dx11[_0x68b2[14]][_0x68b2[21]]=== 500){logger[_0x68b2[14]](_0x68b2[13],_0xab3dxc,_0xab3dx11[_0x68b2[14]][_0x68b2[22]]);return _0xab3dxf(_0xab3dx11[_0x68b2[14]][_0x68b2[22]])};logger[_0x68b2[14]](_0x68b2[13],_0xab3dxc,_0xab3dx11[_0x68b2[14]][_0x68b2[22]]);return _0xab3dxe(_0xab3dx11[_0x68b2[14]][_0x68b2[22]])}else {logger[_0x68b2[17]](_0x68b2[13],_0xab3dxc,_0x68b2[16]);_0xab3dxe(_0xab3dx11[_0x68b2[23]][_0x68b2[22]])}})[_0x68b2[15]](function(_0xab3dx10){logger[_0x68b2[14]](_0x68b2[13],_0xab3dxc,_0xab3dx10);_0xab3dxf(_0xab3dx10)})})}exports[_0x68b2[26]]= function(_0xab3dxd){var _0xab3dx12=this;return  new Promise(function(_0xab3dxe,_0xab3dxf){return db[_0x68b2[31]][_0x68b2[30]](_0xab3dxd[_0x68b2[27]],{raw:_0xab3dxd[_0x68b2[28]]?(_0xab3dxd[_0x68b2[28]][_0x68b2[29]]=== undefined)?true:false:true})[_0x68b2[24]](function(_0xab3dx11){logger[_0x68b2[17]](_0x68b2[26],_0xab3dxd);logger[_0x68b2[20]](_0x68b2[26],_0xab3dxd,JSON[_0x68b2[19]](_0xab3dx11));_0xab3dxe(_0xab3dx11)})[_0x68b2[15]](function(_0xab3dx10){logger[_0x68b2[14]](_0x68b2[26],_0xab3dx10[_0x68b2[22]],_0xab3dxd);_0xab3dxf(_0xab3dx12[_0x68b2[14]](500,_0xab3dx10[_0x68b2[22]]))})})}
\ No newline at end of file
index f190b9f..8931376 100644 (file)
@@ -1 +1 @@
-var _0xeeb8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xeeb8[0];var multer=require(_0xeeb8[1]);var util=require(_0xeeb8[2]);var path=require(_0xeeb8[3]);var express=require(_0xeeb8[4]);var router=express.Router();var auth=require(_0xeeb8[5]);var config=require(_0xeeb8[6]);var controller=require(_0xeeb8[7]);router[_0xeeb8[11]](_0xeeb8[8],auth[_0xeeb8[9]](),controller[_0xeeb8[10]]);router[_0xeeb8[11]](_0xeeb8[12],auth[_0xeeb8[9]](),controller[_0xeeb8[13]]);router[_0xeeb8[11]](_0xeeb8[14],auth[_0xeeb8[9]](),controller[_0xeeb8[15]]);router[_0xeeb8[17]](_0xeeb8[14],auth[_0xeeb8[9]](),controller[_0xeeb8[16]]);module[_0xeeb8[18]]= router
\ No newline at end of file
+var _0x3a9e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x3a9e[0];var multer=require(_0x3a9e[1]);var util=require(_0x3a9e[2]);var path=require(_0x3a9e[3]);var express=require(_0x3a9e[4]);var router=express.Router();var auth=require(_0x3a9e[5]);var config=require(_0x3a9e[6]);var controller=require(_0x3a9e[7]);router[_0x3a9e[11]](_0x3a9e[8],auth[_0x3a9e[9]](),controller[_0x3a9e[10]]);router[_0x3a9e[11]](_0x3a9e[12],auth[_0x3a9e[9]](),controller[_0x3a9e[13]]);router[_0x3a9e[11]](_0x3a9e[14],auth[_0x3a9e[9]](),controller[_0x3a9e[15]]);router[_0x3a9e[17]](_0x3a9e[14],auth[_0x3a9e[9]](),controller[_0x3a9e[16]]);module[_0x3a9e[18]]= router
\ No newline at end of file
index e17be89..78f1eba 100644 (file)
@@ -1 +1 @@
-var _0x6a12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6a12[0];var Sequelize=require(_0x6a12[1]);module[_0x6a12[2]]= {state:{type:Sequelize.INTEGER(2)},statedesc:{type:Sequelize[_0x6a12[3]]},scheduledat:{type:Sequelize[_0x6a12[4]]},countbusyretry:{type:Sequelize[_0x6a12[5]],defaultValue:0},countcongestionretry:{type:Sequelize[_0x6a12[5]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0x6a12[5]],defaultValue:0},countglobal:{type:Sequelize[_0x6a12[5]],defaultValue:0},uniqueid:{type:Sequelize[_0x6a12[3]]},calleridnum:{type:Sequelize[_0x6a12[3]]},calleridname:{type:Sequelize[_0x6a12[3]]},starttime:{type:Sequelize[_0x6a12[4]]},responsetime:{type:Sequelize[_0x6a12[4]]},answertime:{type:Sequelize[_0x6a12[4]]},droptime:{type:Sequelize[_0x6a12[4]]},endtime:{type:Sequelize[_0x6a12[4]]},ringtime:{type:Sequelize[_0x6a12[5]],defaultValue:0},holdtime:{type:Sequelize[_0x6a12[5]],defaultValue:0},talktime:{type:Sequelize[_0x6a12[5]],defaultValue:0},followuptime:{type:Sequelize[_0x6a12[5]],defaultValue:0},dropreason:{type:Sequelize[_0x6a12[3]]},campaign:{type:Sequelize[_0x6a12[3]]},campaigntype:{type:Sequelize[_0x6a12[3]]},membername:{type:Sequelize[_0x6a12[3]]},reason:{type:Sequelize[_0x6a12[3]]},amd:{type:Sequelize[_0x6a12[6]],defaultValue:false},fax:{type:Sequelize[_0x6a12[6]],defaultValue:false},callback:{type:Sequelize[_0x6a12[6]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0x6a12[3]],defaultValue:null},callbackat:{type:Sequelize[_0x6a12[4]]}}
\ No newline at end of file
+var _0x2145=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x2145[0];var Sequelize=require(_0x2145[1]);module[_0x2145[2]]= {state:{type:Sequelize.INTEGER(2)},statedesc:{type:Sequelize[_0x2145[3]]},scheduledat:{type:Sequelize[_0x2145[4]]},countbusyretry:{type:Sequelize[_0x2145[5]],defaultValue:0},countcongestionretry:{type:Sequelize[_0x2145[5]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0x2145[5]],defaultValue:0},countglobal:{type:Sequelize[_0x2145[5]],defaultValue:0},uniqueid:{type:Sequelize[_0x2145[3]]},calleridnum:{type:Sequelize[_0x2145[3]]},calleridname:{type:Sequelize[_0x2145[3]]},starttime:{type:Sequelize[_0x2145[4]]},responsetime:{type:Sequelize[_0x2145[4]]},answertime:{type:Sequelize[_0x2145[4]]},droptime:{type:Sequelize[_0x2145[4]]},endtime:{type:Sequelize[_0x2145[4]]},ringtime:{type:Sequelize[_0x2145[5]],defaultValue:0},holdtime:{type:Sequelize[_0x2145[5]],defaultValue:0},talktime:{type:Sequelize[_0x2145[5]],defaultValue:0},followuptime:{type:Sequelize[_0x2145[5]],defaultValue:0},dropreason:{type:Sequelize[_0x2145[3]]},campaign:{type:Sequelize[_0x2145[3]]},campaigntype:{type:Sequelize[_0x2145[3]]},membername:{type:Sequelize[_0x2145[3]]},reason:{type:Sequelize[_0x2145[3]]},amd:{type:Sequelize[_0x2145[6]],defaultValue:false},fax:{type:Sequelize[_0x2145[6]],defaultValue:false},callback:{type:Sequelize[_0x2145[6]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0x2145[3]],defaultValue:null},callbackat:{type:Sequelize[_0x2145[4]]}}
\ No newline at end of file
index 7efdce7..17f100f 100644 (file)
@@ -1 +1 @@
-var _0xfc81=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x62\x6F\x64\x79"];_0xfc81[0];var jsonpatch=require(_0xfc81[1]);var rp=require(_0xfc81[2]);var moment=require(_0xfc81[3]);var BPromise=require(_0xfc81[4]);var util=require(_0xfc81[5]);var path=require(_0xfc81[6]);var sox=require(_0xfc81[7]);var ejs=require(_0xfc81[8]);var fs=require(_0xfc81[9]);var _=require(_0xfc81[10]);var squel=require(_0xfc81[11]);var crypto=require(_0xfc81[12]);var jsforce=require(_0xfc81[13]);var toCsv=require(_0xfc81[14]);var qs=require(_0xfc81[15]);var logger=require(_0xfc81[17])(_0xfc81[16]);var utils=require(_0xfc81[18]);var config=require(_0xfc81[19]);var db=require(_0xfc81[21])[_0xfc81[20]];function respondWithStatusCode(_0x858ex15,_0x858ex16,_0x858ex17){_0x858ex16= _0x858ex16|| 204;return function(_0x858ex18){if(_0x858ex18){logger[_0xfc81[24]](_0xfc81[22],_0x858ex17,_0x858ex16,_0xfc81[23]);logger[_0xfc81[26]](_0xfc81[25],_0x858ex17,_0x858ex16,_0xfc81[23]);return _0x858ex15[_0xfc81[27]](_0x858ex16)};return _0x858ex15[_0xfc81[29]](304)[_0xfc81[28]]()}}function respondWithResult(_0x858ex15,_0x858ex16,_0x858ex17){_0x858ex16= _0x858ex16|| 200;return function(_0x858ex18){if(_0x858ex18){logger[_0xfc81[24]](_0xfc81[22],_0x858ex17,_0x858ex16,_0xfc81[30]);logger[_0xfc81[26]](_0xfc81[25],_0x858ex17,_0x858ex16,_0xfc81[30],JSON[_0xfc81[31]](_0x858ex18));return _0x858ex15[_0xfc81[29]](_0x858ex16)[_0xfc81[32]](_0x858ex18)};return _0x858ex15[_0xfc81[29]](304)[_0xfc81[28]]()}}function respondWithFilteredResult(_0x858ex15,_0x858ex1b,_0x858ex17){return function(_0x858ex18){if(_0x858ex18){var _0x858ex1c=_0x858ex18[_0xfc81[33]],_0x858ex1d=_0x858ex1b[_0xfc81[34]],_0x858ex1e=_0x858ex1b[_0xfc81[34]]+ _0x858ex1b[_0xfc81[35]],_0x858ex16;if(_0x858ex1e>= _0x858ex1c){_0x858ex1e= _0x858ex1c;_0x858ex16= 200}else {_0x858ex16= 206};_0x858ex15[_0xfc81[29]](_0x858ex16);logger[_0xfc81[24]](_0xfc81[22],_0x858ex17,_0x858ex16,_0xfc81[36]);logger[_0xfc81[26]](_0xfc81[25],_0x858ex17,_0x858ex16,_0xfc81[30],JSON[_0xfc81[31]](_0x858ex18));return _0x858ex15[_0xfc81[40]](_0xfc81[37],_0x858ex1d+ _0xfc81[38]+ _0x858ex1e+ _0xfc81[39]+ _0x858ex1c)[_0xfc81[32]](_0x858ex18)};return null}}function patchUpdates(_0x858ex20){return function(_0x858ex18){try{jsonpatch[_0xfc81[41]](_0x858ex18,_0x858ex20,true)}catch(err){return BPromise[_0xfc81[42]](err)};return _0x858ex18[_0xfc81[43]]()}}function saveUpdates(_0x858ex22,_0x858ex16,_0x858ex17){return function(_0x858ex18){if(_0x858ex18){return _0x858ex18[_0xfc81[46]](_0x858ex22)[_0xfc81[45]](function(_0x858ex23){logger[_0xfc81[24]](_0xfc81[22],_0x858ex17,_0x858ex16,_0xfc81[44]);logger[_0xfc81[26]](_0xfc81[25],_0x858ex17,_0x858ex16,_0xfc81[44],JSON[_0xfc81[31]](_0x858ex18));return _0x858ex23})};return null}}function removeEntity(_0x858ex15,_0x858ex16,_0x858ex17){return function(_0x858ex18){if(_0x858ex18){return _0x858ex18[_0xfc81[48]]()[_0xfc81[45]](function(){logger[_0xfc81[24]](_0xfc81[22],_0x858ex17,_0x858ex16,_0xfc81[47]);logger[_0xfc81[26]](_0xfc81[25],_0x858ex17,_0x858ex16,_0xfc81[47],JSON[_0xfc81[31]](_0x858ex18));_0x858ex15[_0xfc81[29]](204)[_0xfc81[28]]()})}}}function handleEntityNotFound(_0x858ex15,_0x858ex16,_0x858ex17){return function(_0x858ex18){if(!_0x858ex18){logger[_0xfc81[50]](_0xfc81[22],_0x858ex17,404,_0xfc81[49]);_0x858ex15[_0xfc81[29]](404)[_0xfc81[28]]();return null};return _0x858ex18}}function handleError(_0x858ex15,_0x858ex16,_0x858ex17){_0x858ex16= _0x858ex16|| 500;return function(_0x858ex27){logger[_0xfc81[50]](_0xfc81[22],_0x858ex17,_0x858ex16,JSON[_0xfc81[31]](_0x858ex27));delete _0x858ex27[_0xfc81[51]];_0x858ex15[_0xfc81[29]](_0x858ex16)[_0xfc81[52]](_0x858ex27)}}exports[_0xfc81[53]]= function(_0x858ex28,_0x858ex15){var _0x858ex1b={},_0x858ex29={};_0x858ex29[_0xfc81[54]]= _[_0xfc81[57]](db[_0xfc81[56]][_0xfc81[55]]);_0x858ex29[_0xfc81[58]]= _[_0xfc81[57]](_0x858ex28[_0xfc81[58]]);_0x858ex29[_0xfc81[59]]= _[_0xfc81[60]](_0x858ex29[_0xfc81[54]],_0x858ex29[_0xfc81[58]]);_0x858ex1b[_0xfc81[61]]= _[_0xfc81[60]](_0x858ex29[_0xfc81[54]],qs[_0xfc81[62]](_0x858ex28[_0xfc81[58]][_0xfc81[62]]));_0x858ex1b[_0xfc81[61]]= (_0x858ex1b[_0xfc81[61]][_0xfc81[63]])?_0x858ex1b[_0xfc81[61]]:_0x858ex29[_0xfc81[54]];if(!_0x858ex28[_0xfc81[58]][_0xfc81[65]](_0xfc81[64])){_0x858ex1b[_0xfc81[35]]= qs[_0xfc81[35]](_0x858ex28[_0xfc81[58]][_0xfc81[35]]);_0x858ex1b[_0xfc81[34]]= qs[_0xfc81[34]](_0x858ex28[_0xfc81[58]][_0xfc81[34]])};_0x858ex1b[_0xfc81[66]]= qs[_0xfc81[67]](_0x858ex28[_0xfc81[58]][_0xfc81[67]]);_0x858ex1b[_0xfc81[68]]= qs[_0xfc81[59]](_[_0xfc81[69]](_0x858ex28[_0xfc81[58]],_0x858ex29[_0xfc81[59]]));if(_0x858ex28[_0xfc81[58]][_0xfc81[70]]){_0x858ex1b[_0xfc81[68]]= _[_0xfc81[73]](_0x858ex1b[_0xfc81[68]],{$or:_[_0xfc81[72]](_0x858ex1b[_0xfc81[61]],function(_0x858ex2a){var _0x858ex2b={};_0x858ex2b[_0x858ex2a]= {$like:_0xfc81[71]+ _0x858ex28[_0xfc81[58]][_0xfc81[70]]+ _0xfc81[71]};return _0x858ex2b})})};_0x858ex1b= _[_0xfc81[73]]({},_0x858ex1b,_0x858ex28[_0xfc81[74]]);return db[_0xfc81[56]][_0xfc81[76]](_0x858ex1b)[_0xfc81[45]](respondWithFilteredResult(_0x858ex15,_0x858ex1b,_0xfc81[53]))[_0xfc81[75]](handleError(_0x858ex15,null,_0xfc81[53]))};exports[_0xfc81[77]]= function(_0x858ex28,_0x858ex15){var _0x858ex1b={raw:true,where:{id:_0x858ex28[_0xfc81[79]][_0xfc81[78]]}},_0x858ex29={};_0x858ex29[_0xfc81[54]]= _[_0xfc81[57]](db[_0xfc81[56]][_0xfc81[55]]);_0x858ex29[_0xfc81[58]]= _[_0xfc81[57]](_0x858ex28[_0xfc81[58]]);_0x858ex29[_0xfc81[59]]= _[_0xfc81[60]](_0x858ex29[_0xfc81[54]],_0x858ex29[_0xfc81[58]]);_0x858ex1b[_0xfc81[61]]= _[_0xfc81[60]](_0x858ex29[_0xfc81[54]],qs[_0xfc81[62]](_0x858ex28[_0xfc81[58]][_0xfc81[62]]));_0x858ex1b[_0xfc81[61]]= (_0x858ex1b[_0xfc81[61]][_0xfc81[63]])?_0x858ex1b[_0xfc81[61]]:_0x858ex29[_0xfc81[54]];_0x858ex1b= _[_0xfc81[73]]({},_0x858ex1b,_0x858ex28[_0xfc81[74]]);return db[_0xfc81[56]][_0xfc81[80]](_0x858ex1b)[_0xfc81[45]](handleEntityNotFound(_0x858ex15,null,_0xfc81[77]))[_0xfc81[45]](respondWithResult(_0x858ex15,null,_0xfc81[77]))[_0xfc81[75]](handleError(_0x858ex15,null,_0xfc81[77]))};exports[_0xfc81[81]]= function(_0x858ex28,_0x858ex15){return db[_0xfc81[56]][_0xfc81[81]]()[_0xfc81[45]](respondWithResult(_0x858ex15,null,_0xfc81[81]))[_0xfc81[75]](handleError(_0x858ex15,null,_0xfc81[81]))};exports[_0xfc81[46]]= function(_0x858ex28,_0x858ex15){if(_0x858ex28[_0xfc81[83]][_0xfc81[82]]){delete _0x858ex28[_0xfc81[83]][_0xfc81[82]]};return db[_0xfc81[56]][_0xfc81[80]]({where:{uniqueid:_0x858ex28[_0xfc81[79]][_0xfc81[78]]}})[_0xfc81[45]](handleEntityNotFound(_0x858ex15,null,_0xfc81[46]))[_0xfc81[45]](saveUpdates(_0x858ex28[_0xfc81[83]],null,_0xfc81[46]))[_0xfc81[45]](respondWithResult(_0x858ex15,null,_0xfc81[46]))[_0xfc81[75]](handleError(_0x858ex15,null,_0xfc81[46]))}
\ No newline at end of file
+var _0xb8a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x62\x6F\x64\x79"];_0xb8a0[0];var jsonpatch=require(_0xb8a0[1]);var rp=require(_0xb8a0[2]);var moment=require(_0xb8a0[3]);var BPromise=require(_0xb8a0[4]);var util=require(_0xb8a0[5]);var path=require(_0xb8a0[6]);var sox=require(_0xb8a0[7]);var ejs=require(_0xb8a0[8]);var fs=require(_0xb8a0[9]);var _=require(_0xb8a0[10]);var squel=require(_0xb8a0[11]);var crypto=require(_0xb8a0[12]);var jsforce=require(_0xb8a0[13]);var toCsv=require(_0xb8a0[14]);var qs=require(_0xb8a0[15]);var logger=require(_0xb8a0[17])(_0xb8a0[16]);var utils=require(_0xb8a0[18]);var config=require(_0xb8a0[19]);var db=require(_0xb8a0[21])[_0xb8a0[20]];function respondWithStatusCode(_0x5902x15,_0x5902x16,_0x5902x17){_0x5902x16= _0x5902x16|| 204;return function(_0x5902x18){if(_0x5902x18){logger[_0xb8a0[24]](_0xb8a0[22],_0x5902x17,_0x5902x16,_0xb8a0[23]);logger[_0xb8a0[26]](_0xb8a0[25],_0x5902x17,_0x5902x16,_0xb8a0[23]);return _0x5902x15[_0xb8a0[27]](_0x5902x16)};return _0x5902x15[_0xb8a0[29]](304)[_0xb8a0[28]]()}}function respondWithResult(_0x5902x15,_0x5902x16,_0x5902x17){_0x5902x16= _0x5902x16|| 200;return function(_0x5902x18){if(_0x5902x18){logger[_0xb8a0[24]](_0xb8a0[22],_0x5902x17,_0x5902x16,_0xb8a0[30]);logger[_0xb8a0[26]](_0xb8a0[25],_0x5902x17,_0x5902x16,_0xb8a0[30],JSON[_0xb8a0[31]](_0x5902x18));return _0x5902x15[_0xb8a0[29]](_0x5902x16)[_0xb8a0[32]](_0x5902x18)};return _0x5902x15[_0xb8a0[29]](304)[_0xb8a0[28]]()}}function respondWithFilteredResult(_0x5902x15,_0x5902x1b,_0x5902x17){return function(_0x5902x18){if(_0x5902x18){var _0x5902x1c=_0x5902x18[_0xb8a0[33]],_0x5902x1d=_0x5902x1b[_0xb8a0[34]],_0x5902x1e=_0x5902x1b[_0xb8a0[34]]+ _0x5902x1b[_0xb8a0[35]],_0x5902x16;if(_0x5902x1e>= _0x5902x1c){_0x5902x1e= _0x5902x1c;_0x5902x16= 200}else {_0x5902x16= 206};_0x5902x15[_0xb8a0[29]](_0x5902x16);logger[_0xb8a0[24]](_0xb8a0[22],_0x5902x17,_0x5902x16,_0xb8a0[36]);logger[_0xb8a0[26]](_0xb8a0[25],_0x5902x17,_0x5902x16,_0xb8a0[30],JSON[_0xb8a0[31]](_0x5902x18));return _0x5902x15[_0xb8a0[40]](_0xb8a0[37],_0x5902x1d+ _0xb8a0[38]+ _0x5902x1e+ _0xb8a0[39]+ _0x5902x1c)[_0xb8a0[32]](_0x5902x18)};return null}}function patchUpdates(_0x5902x20){return function(_0x5902x18){try{jsonpatch[_0xb8a0[41]](_0x5902x18,_0x5902x20,true)}catch(err){return BPromise[_0xb8a0[42]](err)};return _0x5902x18[_0xb8a0[43]]()}}function saveUpdates(_0x5902x22,_0x5902x16,_0x5902x17){return function(_0x5902x18){if(_0x5902x18){return _0x5902x18[_0xb8a0[46]](_0x5902x22)[_0xb8a0[45]](function(_0x5902x23){logger[_0xb8a0[24]](_0xb8a0[22],_0x5902x17,_0x5902x16,_0xb8a0[44]);logger[_0xb8a0[26]](_0xb8a0[25],_0x5902x17,_0x5902x16,_0xb8a0[44],JSON[_0xb8a0[31]](_0x5902x18));return _0x5902x23})};return null}}function removeEntity(_0x5902x15,_0x5902x16,_0x5902x17){return function(_0x5902x18){if(_0x5902x18){return _0x5902x18[_0xb8a0[48]]()[_0xb8a0[45]](function(){logger[_0xb8a0[24]](_0xb8a0[22],_0x5902x17,_0x5902x16,_0xb8a0[47]);logger[_0xb8a0[26]](_0xb8a0[25],_0x5902x17,_0x5902x16,_0xb8a0[47],JSON[_0xb8a0[31]](_0x5902x18));_0x5902x15[_0xb8a0[29]](204)[_0xb8a0[28]]()})}}}function handleEntityNotFound(_0x5902x15,_0x5902x16,_0x5902x17){return function(_0x5902x18){if(!_0x5902x18){logger[_0xb8a0[50]](_0xb8a0[22],_0x5902x17,404,_0xb8a0[49]);_0x5902x15[_0xb8a0[29]](404)[_0xb8a0[28]]();return null};return _0x5902x18}}function handleError(_0x5902x15,_0x5902x16,_0x5902x17){_0x5902x16= _0x5902x16|| 500;return function(_0x5902x27){logger[_0xb8a0[50]](_0xb8a0[22],_0x5902x17,_0x5902x16,JSON[_0xb8a0[31]](_0x5902x27));delete _0x5902x27[_0xb8a0[51]];_0x5902x15[_0xb8a0[29]](_0x5902x16)[_0xb8a0[52]](_0x5902x27)}}exports[_0xb8a0[53]]= function(_0x5902x28,_0x5902x15){var _0x5902x1b={},_0x5902x29={};_0x5902x29[_0xb8a0[54]]= _[_0xb8a0[57]](db[_0xb8a0[56]][_0xb8a0[55]]);_0x5902x29[_0xb8a0[58]]= _[_0xb8a0[57]](_0x5902x28[_0xb8a0[58]]);_0x5902x29[_0xb8a0[59]]= _[_0xb8a0[60]](_0x5902x29[_0xb8a0[54]],_0x5902x29[_0xb8a0[58]]);_0x5902x1b[_0xb8a0[61]]= _[_0xb8a0[60]](_0x5902x29[_0xb8a0[54]],qs[_0xb8a0[62]](_0x5902x28[_0xb8a0[58]][_0xb8a0[62]]));_0x5902x1b[_0xb8a0[61]]= (_0x5902x1b[_0xb8a0[61]][_0xb8a0[63]])?_0x5902x1b[_0xb8a0[61]]:_0x5902x29[_0xb8a0[54]];if(!_0x5902x28[_0xb8a0[58]][_0xb8a0[65]](_0xb8a0[64])){_0x5902x1b[_0xb8a0[35]]= qs[_0xb8a0[35]](_0x5902x28[_0xb8a0[58]][_0xb8a0[35]]);_0x5902x1b[_0xb8a0[34]]= qs[_0xb8a0[34]](_0x5902x28[_0xb8a0[58]][_0xb8a0[34]])};_0x5902x1b[_0xb8a0[66]]= qs[_0xb8a0[67]](_0x5902x28[_0xb8a0[58]][_0xb8a0[67]]);_0x5902x1b[_0xb8a0[68]]= qs[_0xb8a0[59]](_[_0xb8a0[69]](_0x5902x28[_0xb8a0[58]],_0x5902x29[_0xb8a0[59]]));if(_0x5902x28[_0xb8a0[58]][_0xb8a0[70]]){_0x5902x1b[_0xb8a0[68]]= _[_0xb8a0[73]](_0x5902x1b[_0xb8a0[68]],{$or:_[_0xb8a0[72]](_0x5902x1b[_0xb8a0[61]],function(_0x5902x2a){var _0x5902x2b={};_0x5902x2b[_0x5902x2a]= {$like:_0xb8a0[71]+ _0x5902x28[_0xb8a0[58]][_0xb8a0[70]]+ _0xb8a0[71]};return _0x5902x2b})})};_0x5902x1b= _[_0xb8a0[73]]({},_0x5902x1b,_0x5902x28[_0xb8a0[74]]);return db[_0xb8a0[56]][_0xb8a0[76]](_0x5902x1b)[_0xb8a0[45]](respondWithFilteredResult(_0x5902x15,_0x5902x1b,_0xb8a0[53]))[_0xb8a0[75]](handleError(_0x5902x15,null,_0xb8a0[53]))};exports[_0xb8a0[77]]= function(_0x5902x28,_0x5902x15){var _0x5902x1b={raw:true,where:{id:_0x5902x28[_0xb8a0[79]][_0xb8a0[78]]}},_0x5902x29={};_0x5902x29[_0xb8a0[54]]= _[_0xb8a0[57]](db[_0xb8a0[56]][_0xb8a0[55]]);_0x5902x29[_0xb8a0[58]]= _[_0xb8a0[57]](_0x5902x28[_0xb8a0[58]]);_0x5902x29[_0xb8a0[59]]= _[_0xb8a0[60]](_0x5902x29[_0xb8a0[54]],_0x5902x29[_0xb8a0[58]]);_0x5902x1b[_0xb8a0[61]]= _[_0xb8a0[60]](_0x5902x29[_0xb8a0[54]],qs[_0xb8a0[62]](_0x5902x28[_0xb8a0[58]][_0xb8a0[62]]));_0x5902x1b[_0xb8a0[61]]= (_0x5902x1b[_0xb8a0[61]][_0xb8a0[63]])?_0x5902x1b[_0xb8a0[61]]:_0x5902x29[_0xb8a0[54]];_0x5902x1b= _[_0xb8a0[73]]({},_0x5902x1b,_0x5902x28[_0xb8a0[74]]);return db[_0xb8a0[56]][_0xb8a0[80]](_0x5902x1b)[_0xb8a0[45]](handleEntityNotFound(_0x5902x15,null,_0xb8a0[77]))[_0xb8a0[45]](respondWithResult(_0x5902x15,null,_0xb8a0[77]))[_0xb8a0[75]](handleError(_0x5902x15,null,_0xb8a0[77]))};exports[_0xb8a0[81]]= function(_0x5902x28,_0x5902x15){return db[_0xb8a0[56]][_0xb8a0[81]]()[_0xb8a0[45]](respondWithResult(_0x5902x15,null,_0xb8a0[81]))[_0xb8a0[75]](handleError(_0x5902x15,null,_0xb8a0[81]))};exports[_0xb8a0[46]]= function(_0x5902x28,_0x5902x15){if(_0x5902x28[_0xb8a0[83]][_0xb8a0[82]]){delete _0x5902x28[_0xb8a0[83]][_0xb8a0[82]]};return db[_0xb8a0[56]][_0xb8a0[80]]({where:{uniqueid:_0x5902x28[_0xb8a0[79]][_0xb8a0[78]]}})[_0xb8a0[45]](handleEntityNotFound(_0x5902x15,null,_0xb8a0[46]))[_0xb8a0[45]](saveUpdates(_0x5902x28[_0xb8a0[83]],null,_0xb8a0[46]))[_0xb8a0[45]](respondWithResult(_0x5902x15,null,_0xb8a0[46]))[_0xb8a0[75]](handleError(_0x5902x15,null,_0xb8a0[46]))}
\ No newline at end of file
index f0835ea..e16da5a 100644 (file)
@@ -1 +1 @@
-var _0x1d81=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x65\x66\x69\x6E\x65"];_0x1d81[0];var _=require(_0x1d81[1]);var util=require(_0x1d81[2]);var logger=require(_0x1d81[4])(_0x1d81[3]);var attributes=require(_0x1d81[5]);module[_0x1d81[6]]= function(_0xe9d4x5,_0xe9d4x6){return _0xe9d4x5[_0x1d81[10]](_0x1d81[7],attributes,{tableName:_0x1d81[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x1d81[9],"\x66\x69\x65\x6C\x64\x73":[_0x1d81[9]]}],timestamps:true})}
\ No newline at end of file
+var _0x8da9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x65\x66\x69\x6E\x65"];_0x8da9[0];var _=require(_0x8da9[1]);var util=require(_0x8da9[2]);var logger=require(_0x8da9[4])(_0x8da9[3]);var attributes=require(_0x8da9[5]);module[_0x8da9[6]]= function(_0xb652x5,_0xb652x6){return _0xb652x5[_0x8da9[10]](_0x8da9[7],attributes,{tableName:_0x8da9[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x8da9[9],"\x66\x69\x65\x6C\x64\x73":[_0x8da9[9]]}],timestamps:true})}
\ No newline at end of file
index 71bcc32..fc85acc 100644 (file)
@@ -1 +1 @@
-var _0xbcb1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x77\x68\x65\x72\x65","\x43\x4F\x55\x4E\x54","\x69\x64","\x63\x6F\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x6E","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x49\x46","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x30\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x31\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x41\x56\x47","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x60\x68\x6F\x6C\x64\x74\x69\x6D\x65\x60\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x60\x74\x61\x6C\x6B\x74\x69\x6D\x65\x60\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x6E\x61\x6D\x65","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x30\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x33\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x35\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x38\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x30\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x31\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x32\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x33\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x34\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x36\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79"];_0xbcb1[0];var _=require(_0xbcb1[1]);var util=require(_0xbcb1[2]);var moment=require(_0xbcb1[3]);var BPromise=require(_0xbcb1[4]);var db=require(_0xbcb1[6])[_0xbcb1[5]];var utils=require(_0xbcb1[7]);var logger=require(_0xbcb1[9])(_0xbcb1[8]);var jayson=require(_0xbcb1[10]);var client=jayson[_0xbcb1[12]][_0xbcb1[11]]({port:9002});function respondWithRpcPromise(_0x75efxb,_0x75efxc,_0x75efxd){return  new BPromise(function(_0x75efxe,_0x75efxf){return client[_0xbcb1[25]](_0x75efxb,_0x75efxd)[_0xbcb1[24]](function(_0x75efx11){logger[_0xbcb1[17]](_0xbcb1[13],_0x75efxc,_0xbcb1[16]);logger[_0xbcb1[20]](_0xbcb1[18],_0x75efxc,_0xbcb1[16],JSON[_0xbcb1[19]](_0x75efx11));if(_0x75efx11[_0xbcb1[14]]){if(_0x75efx11[_0xbcb1[14]][_0xbcb1[21]]=== 500){logger[_0xbcb1[14]](_0xbcb1[13],_0x75efxc,_0x75efx11[_0xbcb1[14]][_0xbcb1[22]]);return _0x75efxf(_0x75efx11[_0xbcb1[14]][_0xbcb1[22]])};logger[_0xbcb1[14]](_0xbcb1[13],_0x75efxc,_0x75efx11[_0xbcb1[14]][_0xbcb1[22]]);return _0x75efxe(_0x75efx11[_0xbcb1[14]][_0xbcb1[22]])}else {logger[_0xbcb1[17]](_0xbcb1[13],_0x75efxc,_0xbcb1[16]);_0x75efxe(_0x75efx11[_0xbcb1[23]][_0xbcb1[22]])}})[_0xbcb1[15]](function(_0x75efx10){logger[_0xbcb1[14]](_0xbcb1[13],_0x75efxc,_0x75efx10);_0x75efxf(_0x75efx10)})})}exports[_0xbcb1[26]]= function(_0x75efxd){var _0x75efx12=this;return  new Promise(function(_0x75efxe,_0x75efxf){return db[_0xbcb1[31]][_0xbcb1[30]](_0x75efxd[_0xbcb1[27]],{raw:_0x75efxd[_0xbcb1[28]]?(_0x75efxd[_0xbcb1[28]][_0xbcb1[29]]=== undefined)?true:false:true})[_0xbcb1[24]](function(_0x75efx11){logger[_0xbcb1[17]](_0xbcb1[26],_0x75efxd);logger[_0xbcb1[20]](_0xbcb1[26],_0x75efxd,JSON[_0xbcb1[19]](_0x75efx11));_0x75efxe(_0x75efx11)})[_0xbcb1[15]](function(_0x75efx10){logger[_0xbcb1[14]](_0xbcb1[26],_0x75efx10[_0xbcb1[22]],_0x75efxd);_0x75efxf(_0x75efx12[_0xbcb1[14]](500,_0x75efx10[_0xbcb1[22]]))})})};exports[_0xbcb1[32]]= function(_0x75efxd){var _0x75efx12=this;return  new Promise(function(_0x75efxe,_0x75efxf){return db[_0xbcb1[31]][_0xbcb1[53]]({raw:_0x75efxd[_0xbcb1[28]]?(_0x75efxd[_0xbcb1[28]][_0xbcb1[29]]=== undefined)?true:false:true,where:_0x75efxd[_0xbcb1[28]]?_0x75efxd[_0xbcb1[28]][_0xbcb1[33]]|| null:null,attributes:[[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[36]](_0xbcb1[35])),_0xbcb1[39]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[41]))),_0xbcb1[43]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[44]))),_0xbcb1[45]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[46]))),_0xbcb1[47]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[48],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[49]))),_0xbcb1[50]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[48],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[51]))),_0xbcb1[52]]]})[_0xbcb1[24]](function(_0x75efx11){logger[_0xbcb1[17]](_0xbcb1[32],_0x75efxd);logger[_0xbcb1[20]](_0xbcb1[32],_0x75efxd,JSON[_0xbcb1[19]](_0x75efx11));_0x75efxe(_0x75efx11)})[_0xbcb1[15]](function(_0x75efx10){logger[_0xbcb1[14]](_0xbcb1[32],_0x75efx10[_0xbcb1[22]],_0x75efxd);_0x75efxf(_0x75efx12[_0xbcb1[14]](500,_0x75efx10[_0xbcb1[22]]))})})};exports[_0xbcb1[54]]= function(_0x75efxd){var _0x75efx12=this;return  new Promise(function(_0x75efxe,_0x75efxf){return db[_0xbcb1[31]][_0xbcb1[53]]({raw:_0x75efxd[_0xbcb1[28]]?(_0x75efxd[_0xbcb1[28]][_0xbcb1[29]]=== undefined)?true:false:true,where:_0x75efxd[_0xbcb1[28]]?_0x75efxd[_0xbcb1[28]][_0xbcb1[33]]|| null:null,attributes:[[_0xbcb1[55],_0xbcb1[56]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[57]))),_0xbcb1[58]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[59]))),_0xbcb1[60]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[41]))),_0xbcb1[61]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[62]))),_0xbcb1[63]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[64]))),_0xbcb1[65]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[66]))),_0xbcb1[67]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[68]))),_0xbcb1[69]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[70]))),_0xbcb1[71]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[72]))),_0xbcb1[73]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[74]))),_0xbcb1[75]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[76]))),_0xbcb1[77]]],group:[_0xbcb1[55]]})[_0xbcb1[24]](function(_0x75efx11){logger[_0xbcb1[17]](_0xbcb1[54],_0x75efxd);logger[_0xbcb1[20]](_0xbcb1[54],_0x75efxd,JSON[_0xbcb1[19]](_0x75efx11));_0x75efxe(_0x75efx11)})[_0xbcb1[15]](function(_0x75efx10){logger[_0xbcb1[14]](_0xbcb1[54],_0x75efx10[_0xbcb1[22]],_0x75efxd);_0x75efxf(_0x75efx12[_0xbcb1[14]](500,_0x75efx10[_0xbcb1[22]]))})})};exports[_0xbcb1[78]]= function(_0x75efxd){var _0x75efx12=this;return  new Promise(function(_0x75efxe,_0x75efxf){return db[_0xbcb1[31]][_0xbcb1[53]]({raw:_0x75efxd[_0xbcb1[28]]?(_0x75efxd[_0xbcb1[28]][_0xbcb1[29]]=== undefined)?true:false:true,where:_0x75efxd[_0xbcb1[28]]?_0x75efxd[_0xbcb1[28]][_0xbcb1[33]]|| null:null,attributes:[[_0xbcb1[55],_0xbcb1[56]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[36]](_0xbcb1[35])),_0xbcb1[79]],[db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[34],db[_0xbcb1[37]][_0xbcb1[38]](_0xbcb1[40],db[_0xbcb1[37]][_0xbcb1[42]](_0xbcb1[41]))),_0xbcb1[80]]],group:[_0xbcb1[55]]})[_0xbcb1[24]](function(_0x75efx11){logger[_0xbcb1[17]](_0xbcb1[78],_0x75efxd);logger[_0xbcb1[20]](_0xbcb1[78],_0x75efxd,JSON[_0xbcb1[19]](_0x75efx11));_0x75efxe(_0x75efx11)})[_0xbcb1[15]](function(_0x75efx10){logger[_0xbcb1[14]](_0xbcb1[78],_0x75efx10[_0xbcb1[22]],_0x75efxd);_0x75efxf(_0x75efx12[_0xbcb1[14]](500,_0x75efx10[_0xbcb1[22]]))})})}
\ No newline at end of file
+var _0x3267=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x77\x68\x65\x72\x65","\x43\x4F\x55\x4E\x54","\x69\x64","\x63\x6F\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x6E","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x49\x46","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x30\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x31\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x41\x56\x47","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x60\x68\x6F\x6C\x64\x74\x69\x6D\x65\x60\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x60\x74\x61\x6C\x6B\x74\x69\x6D\x65\x60\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x6E\x61\x6D\x65","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x30\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x33\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x35\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x38\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x30\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x31\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x32\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x33\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x34\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x36\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79"];_0x3267[0];var _=require(_0x3267[1]);var util=require(_0x3267[2]);var moment=require(_0x3267[3]);var BPromise=require(_0x3267[4]);var db=require(_0x3267[6])[_0x3267[5]];var utils=require(_0x3267[7]);var logger=require(_0x3267[9])(_0x3267[8]);var jayson=require(_0x3267[10]);var client=jayson[_0x3267[12]][_0x3267[11]]({port:9002});function respondWithRpcPromise(_0xcc4cxb,_0xcc4cxc,_0xcc4cxd){return  new BPromise(function(_0xcc4cxe,_0xcc4cxf){return client[_0x3267[25]](_0xcc4cxb,_0xcc4cxd)[_0x3267[24]](function(_0xcc4cx11){logger[_0x3267[17]](_0x3267[13],_0xcc4cxc,_0x3267[16]);logger[_0x3267[20]](_0x3267[18],_0xcc4cxc,_0x3267[16],JSON[_0x3267[19]](_0xcc4cx11));if(_0xcc4cx11[_0x3267[14]]){if(_0xcc4cx11[_0x3267[14]][_0x3267[21]]=== 500){logger[_0x3267[14]](_0x3267[13],_0xcc4cxc,_0xcc4cx11[_0x3267[14]][_0x3267[22]]);return _0xcc4cxf(_0xcc4cx11[_0x3267[14]][_0x3267[22]])};logger[_0x3267[14]](_0x3267[13],_0xcc4cxc,_0xcc4cx11[_0x3267[14]][_0x3267[22]]);return _0xcc4cxe(_0xcc4cx11[_0x3267[14]][_0x3267[22]])}else {logger[_0x3267[17]](_0x3267[13],_0xcc4cxc,_0x3267[16]);_0xcc4cxe(_0xcc4cx11[_0x3267[23]][_0x3267[22]])}})[_0x3267[15]](function(_0xcc4cx10){logger[_0x3267[14]](_0x3267[13],_0xcc4cxc,_0xcc4cx10);_0xcc4cxf(_0xcc4cx10)})})}exports[_0x3267[26]]= function(_0xcc4cxd){var _0xcc4cx12=this;return  new Promise(function(_0xcc4cxe,_0xcc4cxf){return db[_0x3267[31]][_0x3267[30]](_0xcc4cxd[_0x3267[27]],{raw:_0xcc4cxd[_0x3267[28]]?(_0xcc4cxd[_0x3267[28]][_0x3267[29]]=== undefined)?true:false:true})[_0x3267[24]](function(_0xcc4cx11){logger[_0x3267[17]](_0x3267[26],_0xcc4cxd);logger[_0x3267[20]](_0x3267[26],_0xcc4cxd,JSON[_0x3267[19]](_0xcc4cx11));_0xcc4cxe(_0xcc4cx11)})[_0x3267[15]](function(_0xcc4cx10){logger[_0x3267[14]](_0x3267[26],_0xcc4cx10[_0x3267[22]],_0xcc4cxd);_0xcc4cxf(_0xcc4cx12[_0x3267[14]](500,_0xcc4cx10[_0x3267[22]]))})})};exports[_0x3267[32]]= function(_0xcc4cxd){var _0xcc4cx12=this;return  new Promise(function(_0xcc4cxe,_0xcc4cxf){return db[_0x3267[31]][_0x3267[53]]({raw:_0xcc4cxd[_0x3267[28]]?(_0xcc4cxd[_0x3267[28]][_0x3267[29]]=== undefined)?true:false:true,where:_0xcc4cxd[_0x3267[28]]?_0xcc4cxd[_0x3267[28]][_0x3267[33]]|| null:null,attributes:[[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[36]](_0x3267[35])),_0x3267[39]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[41]))),_0x3267[43]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[44]))),_0x3267[45]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[46]))),_0x3267[47]],[db[_0x3267[37]][_0x3267[38]](_0x3267[48],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[49]))),_0x3267[50]],[db[_0x3267[37]][_0x3267[38]](_0x3267[48],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[51]))),_0x3267[52]]]})[_0x3267[24]](function(_0xcc4cx11){logger[_0x3267[17]](_0x3267[32],_0xcc4cxd);logger[_0x3267[20]](_0x3267[32],_0xcc4cxd,JSON[_0x3267[19]](_0xcc4cx11));_0xcc4cxe(_0xcc4cx11)})[_0x3267[15]](function(_0xcc4cx10){logger[_0x3267[14]](_0x3267[32],_0xcc4cx10[_0x3267[22]],_0xcc4cxd);_0xcc4cxf(_0xcc4cx12[_0x3267[14]](500,_0xcc4cx10[_0x3267[22]]))})})};exports[_0x3267[54]]= function(_0xcc4cxd){var _0xcc4cx12=this;return  new Promise(function(_0xcc4cxe,_0xcc4cxf){return db[_0x3267[31]][_0x3267[53]]({raw:_0xcc4cxd[_0x3267[28]]?(_0xcc4cxd[_0x3267[28]][_0x3267[29]]=== undefined)?true:false:true,where:_0xcc4cxd[_0x3267[28]]?_0xcc4cxd[_0x3267[28]][_0x3267[33]]|| null:null,attributes:[[_0x3267[55],_0x3267[56]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[57]))),_0x3267[58]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[59]))),_0x3267[60]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[41]))),_0x3267[61]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[62]))),_0x3267[63]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[64]))),_0x3267[65]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[66]))),_0x3267[67]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[68]))),_0x3267[69]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[70]))),_0x3267[71]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[72]))),_0x3267[73]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[74]))),_0x3267[75]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[76]))),_0x3267[77]]],group:[_0x3267[55]]})[_0x3267[24]](function(_0xcc4cx11){logger[_0x3267[17]](_0x3267[54],_0xcc4cxd);logger[_0x3267[20]](_0x3267[54],_0xcc4cxd,JSON[_0x3267[19]](_0xcc4cx11));_0xcc4cxe(_0xcc4cx11)})[_0x3267[15]](function(_0xcc4cx10){logger[_0x3267[14]](_0x3267[54],_0xcc4cx10[_0x3267[22]],_0xcc4cxd);_0xcc4cxf(_0xcc4cx12[_0x3267[14]](500,_0xcc4cx10[_0x3267[22]]))})})};exports[_0x3267[78]]= function(_0xcc4cxd){var _0xcc4cx12=this;return  new Promise(function(_0xcc4cxe,_0xcc4cxf){return db[_0x3267[31]][_0x3267[53]]({raw:_0xcc4cxd[_0x3267[28]]?(_0xcc4cxd[_0x3267[28]][_0x3267[29]]=== undefined)?true:false:true,where:_0xcc4cxd[_0x3267[28]]?_0xcc4cxd[_0x3267[28]][_0x3267[33]]|| null:null,attributes:[[_0x3267[55],_0x3267[56]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[36]](_0x3267[35])),_0x3267[79]],[db[_0x3267[37]][_0x3267[38]](_0x3267[34],db[_0x3267[37]][_0x3267[38]](_0x3267[40],db[_0x3267[37]][_0x3267[42]](_0x3267[41]))),_0x3267[80]]],group:[_0x3267[55]]})[_0x3267[24]](function(_0xcc4cx11){logger[_0x3267[17]](_0x3267[78],_0xcc4cxd);logger[_0x3267[20]](_0x3267[78],_0xcc4cxd,JSON[_0x3267[19]](_0xcc4cx11));_0xcc4cxe(_0xcc4cx11)})[_0x3267[15]](function(_0xcc4cx10){logger[_0x3267[14]](_0x3267[78],_0xcc4cx10[_0x3267[22]],_0xcc4cxd);_0xcc4cxf(_0xcc4cx12[_0x3267[14]](500,_0xcc4cx10[_0x3267[22]]))})})}
\ No newline at end of file
index da341d0..5367355 100644 (file)
@@ -1 +1 @@
-var _0xeaa3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xeaa3[0];var multer=require(_0xeaa3[1]);var util=require(_0xeaa3[2]);var path=require(_0xeaa3[3]);var express=require(_0xeaa3[4]);var router=express.Router();var auth=require(_0xeaa3[5]);var config=require(_0xeaa3[6]);var controller=require(_0xeaa3[7]);router[_0xeaa3[11]](_0xeaa3[8],auth[_0xeaa3[9]](),controller[_0xeaa3[10]]);router[_0xeaa3[11]](_0xeaa3[12],auth[_0xeaa3[9]](),controller[_0xeaa3[13]]);router[_0xeaa3[11]](_0xeaa3[14],auth[_0xeaa3[9]](),controller[_0xeaa3[15]]);router[_0xeaa3[17]](_0xeaa3[14],auth[_0xeaa3[9]](),controller[_0xeaa3[16]]);module[_0xeaa3[18]]= router
\ No newline at end of file
+var _0xd5e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xd5e7[0];var multer=require(_0xd5e7[1]);var util=require(_0xd5e7[2]);var path=require(_0xd5e7[3]);var express=require(_0xd5e7[4]);var router=express.Router();var auth=require(_0xd5e7[5]);var config=require(_0xd5e7[6]);var controller=require(_0xd5e7[7]);router[_0xd5e7[11]](_0xd5e7[8],auth[_0xd5e7[9]](),controller[_0xd5e7[10]]);router[_0xd5e7[11]](_0xd5e7[12],auth[_0xd5e7[9]](),controller[_0xd5e7[13]]);router[_0xd5e7[11]](_0xd5e7[14],auth[_0xd5e7[9]](),controller[_0xd5e7[15]]);router[_0xd5e7[17]](_0xd5e7[14],auth[_0xd5e7[9]](),controller[_0xd5e7[16]]);module[_0xd5e7[18]]= router
\ No newline at end of file
index 4fecb6b..6b02e11 100644 (file)
@@ -1 +1 @@
-var _0xe4be=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xe4be[0];var Sequelize=require(_0xe4be[1]);module[_0xe4be[2]]= {name:{type:Sequelize[_0xe4be[3]],unique:_0xe4be[4],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0xe4be[3]]}}
\ No newline at end of file
+var _0xbd75=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xbd75[0];var Sequelize=require(_0xbd75[1]);module[_0xbd75[2]]= {name:{type:Sequelize[_0xbd75[3]],unique:_0xbd75[4],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0xbd75[3]]}}
\ No newline at end of file
index e7d737d..a1fbe80 100644 (file)
@@ -1 +1 @@
-var _0x6639=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x4C\x69\x73\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x63\x61\x74","\x72\x61\x77","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73\x43\x73\x76","\x6E\x6F\x77","\x2F\x74\x6D\x70\x2F\x6C\x69\x73\x74\x5F\x25\x64\x5F\x25\x73\x2E\x63\x73\x76","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x6C\x69\x73\x74\x5F\x25\x64\x5F\x25\x73\x2E\x63\x73\x76","\x73\x65\x74\x48\x65\x61\x64\x65\x72","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x63\x73\x76","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x79\x70\x65","\x74\x65\x78\x74","\x49\x4E\x54\x45\x47\x45\x52","\x6E\x75\x6D\x62\x65\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x77\x69\x74\x63\x68","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x73","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72"];_0x6639[0];var jsonpatch=require(_0x6639[1]);var rp=require(_0x6639[2]);var moment=require(_0x6639[3]);var BPromise=require(_0x6639[4]);var util=require(_0x6639[5]);var path=require(_0x6639[6]);var sox=require(_0x6639[7]);var ejs=require(_0x6639[8]);var fs=require(_0x6639[9]);var _=require(_0x6639[10]);var squel=require(_0x6639[11]);var crypto=require(_0x6639[12]);var jsforce=require(_0x6639[13]);var toCsv=require(_0x6639[14]);var qs=require(_0x6639[15]);var logger=require(_0x6639[17])(_0x6639[16]);var utils=require(_0x6639[18]);var config=require(_0x6639[19]);var db=require(_0x6639[21])[_0x6639[20]];function respondWithStatusCode(_0xd964x15,_0xd964x16,_0xd964x17){_0xd964x16= _0xd964x16|| 204;return function(_0xd964x18){if(_0xd964x18){logger[_0x6639[24]](_0x6639[22],_0xd964x17,_0xd964x16,_0x6639[23]);logger[_0x6639[26]](_0x6639[25],_0xd964x17,_0xd964x16,_0x6639[23]);return _0xd964x15[_0x6639[27]](_0xd964x16)};return _0xd964x15[_0x6639[29]](304)[_0x6639[28]]()}}function respondWithResult(_0xd964x15,_0xd964x16,_0xd964x17){_0xd964x16= _0xd964x16|| 200;return function(_0xd964x18){if(_0xd964x18){logger[_0x6639[24]](_0x6639[22],_0xd964x17,_0xd964x16,_0x6639[30]);logger[_0x6639[26]](_0x6639[25],_0xd964x17,_0xd964x16,_0x6639[30],JSON[_0x6639[31]](_0xd964x18));return _0xd964x15[_0x6639[29]](_0xd964x16)[_0x6639[32]](_0xd964x18)};return _0xd964x15[_0x6639[29]](304)[_0x6639[28]]()}}function respondWithFilteredResult(_0xd964x15,_0xd964x1b,_0xd964x17){return function(_0xd964x18){if(_0xd964x18){var _0xd964x1c=_0xd964x18[_0x6639[33]],_0xd964x1d=_0xd964x1b[_0x6639[34]],_0xd964x1e=_0xd964x1b[_0x6639[34]]+ _0xd964x1b[_0x6639[35]],_0xd964x16;if(_0xd964x1e>= _0xd964x1c){_0xd964x1e= _0xd964x1c;_0xd964x16= 200}else {_0xd964x16= 206};_0xd964x15[_0x6639[29]](_0xd964x16);logger[_0x6639[24]](_0x6639[22],_0xd964x17,_0xd964x16,_0x6639[36]);logger[_0x6639[26]](_0x6639[25],_0xd964x17,_0xd964x16,_0x6639[30],JSON[_0x6639[31]](_0xd964x18));return _0xd964x15[_0x6639[40]](_0x6639[37],_0xd964x1d+ _0x6639[38]+ _0xd964x1e+ _0x6639[39]+ _0xd964x1c)[_0x6639[32]](_0xd964x18)};return null}}function patchUpdates(_0xd964x20){return function(_0xd964x18){try{jsonpatch[_0x6639[41]](_0xd964x18,_0xd964x20,true)}catch(err){return BPromise[_0x6639[42]](err)};return _0xd964x18[_0x6639[43]]()}}function saveUpdates(_0xd964x22,_0xd964x16,_0xd964x17){return function(_0xd964x18){if(_0xd964x18){return _0xd964x18[_0x6639[46]](_0xd964x22)[_0x6639[45]](function(_0xd964x23){logger[_0x6639[24]](_0x6639[22],_0xd964x17,_0xd964x16,_0x6639[44]);logger[_0x6639[26]](_0x6639[25],_0xd964x17,_0xd964x16,_0x6639[44],JSON[_0x6639[31]](_0xd964x18));return _0xd964x23})};return null}}function removeEntity(_0xd964x15,_0xd964x16,_0xd964x17){return function(_0xd964x18){if(_0xd964x18){return _0xd964x18[_0x6639[48]]()[_0x6639[45]](function(){logger[_0x6639[24]](_0x6639[22],_0xd964x17,_0xd964x16,_0x6639[47]);logger[_0x6639[26]](_0x6639[25],_0xd964x17,_0xd964x16,_0x6639[47],JSON[_0x6639[31]](_0xd964x18));_0xd964x15[_0x6639[29]](204)[_0x6639[28]]()})}}}function handleEntityNotFound(_0xd964x15,_0xd964x16,_0xd964x17){return function(_0xd964x18){if(!_0xd964x18){logger[_0x6639[50]](_0x6639[22],_0xd964x17,404,_0x6639[49]);_0xd964x15[_0x6639[29]](404)[_0x6639[28]]();return null};return _0xd964x18}}function handleError(_0xd964x15,_0xd964x16,_0xd964x17){_0xd964x16= _0xd964x16|| 500;return function(_0xd964x27){logger[_0x6639[50]](_0x6639[22],_0xd964x17,_0xd964x16,JSON[_0x6639[31]](_0xd964x27));delete _0xd964x27[_0x6639[51]];_0xd964x15[_0x6639[29]](_0xd964x16)[_0x6639[52]](_0xd964x27)}}exports[_0x6639[53]]= function(_0xd964x28,_0xd964x15){var _0xd964x1b={},_0xd964x29={};_0xd964x29[_0x6639[54]]= _[_0x6639[57]](db[_0x6639[56]][_0x6639[55]]);_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];if(!_0xd964x28[_0x6639[58]][_0x6639[65]](_0x6639[64])){_0xd964x1b[_0x6639[35]]= qs[_0x6639[35]](_0xd964x28[_0x6639[58]][_0x6639[35]]);_0xd964x1b[_0x6639[34]]= qs[_0x6639[34]](_0xd964x28[_0x6639[58]][_0x6639[34]])};_0xd964x1b[_0x6639[66]]= qs[_0x6639[67]](_0xd964x28[_0x6639[58]][_0x6639[67]]);_0xd964x1b[_0x6639[68]]= qs[_0x6639[59]](_[_0x6639[69]](_0xd964x28[_0x6639[58]],_0xd964x29[_0x6639[59]]));if(_0xd964x28[_0x6639[58]][_0x6639[70]]){_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:_[_0x6639[72]](_0xd964x1b[_0x6639[61]],function(_0xd964x2a){var _0xd964x2b={};_0xd964x2b[_0xd964x2a]= {$like:_0x6639[71]+ _0xd964x28[_0x6639[58]][_0x6639[70]]+ _0x6639[71]};return _0xd964x2b})})};_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return db[_0x6639[56]][_0x6639[76]](_0xd964x1b)[_0x6639[45]](respondWithFilteredResult(_0xd964x15,_0xd964x1b,_0x6639[53]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[53]))};exports[_0x6639[77]]= function(_0xd964x28,_0xd964x15){var _0xd964x1b={raw:false,where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}},_0xd964x29={};_0xd964x29[_0x6639[54]]= _[_0x6639[57]](db[_0x6639[56]][_0x6639[55]]);_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return db[_0x6639[56]][_0x6639[80]](_0xd964x1b)[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[77]))[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[77]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[77]))};exports[_0x6639[81]]= function(_0xd964x28,_0xd964x15){return db[_0x6639[56]][_0x6639[81]](_0xd964x28[_0x6639[82]],{})[_0x6639[45]](respondWithResult(_0xd964x15,201,_0x6639[81]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[81]))};exports[_0x6639[46]]= function(_0xd964x28,_0xd964x15){if(_0xd964x28[_0x6639[82]][_0x6639[78]]){delete _0xd964x28[_0x6639[82]][_0x6639[78]]};return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[46]))[_0x6639[45]](saveUpdates(_0xd964x28[_0x6639[82]],null,_0x6639[46]))[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[46]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[46]))};exports[_0x6639[48]]= function(_0xd964x28,_0xd964x15){return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[48]))[_0x6639[45]](removeEntity(_0xd964x15,null,_0x6639[48]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[48]))};exports[_0x6639[83]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){if(_0xd964x28[_0x6639[82]][_0x6639[78]]){delete _0xd964x28[_0x6639[82]][_0x6639[78]]};return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[83]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){_0xd964x28[_0x6639[82]][_0x6639[84]]= _0xd964x18[_0x6639[78]];return db[_0x6639[85]][_0x6639[81]](_0xd964x28[_0x6639[82]])}})[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[83]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[83]))};exports[_0x6639[86]]= function(_0xd964x28,_0xd964x18,_0xd964x2c){var _0xd964x1b={};var _0xd964x29={};var _0xd964x2d;var _0xd964x1c;return db[_0x6639[56]][_0x6639[87]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x18,null,_0x6639[86]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){_0xd964x2d= _0xd964x18;_0xd964x29[_0x6639[54]]= _[_0x6639[57]](db[_0x6639[85]][_0x6639[55]]);_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];_0xd964x1b[_0x6639[66]]= qs[_0x6639[67]](_0xd964x28[_0x6639[58]][_0x6639[67]]);_0xd964x1b[_0x6639[68]]= qs[_0x6639[59]](_[_0x6639[69]](_0xd964x28[_0x6639[58]],_0xd964x29[_0x6639[59]]));if(_0xd964x28[_0x6639[58]][_0x6639[70]]){_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:_[_0x6639[72]](_0xd964x1b[_0x6639[61]],function(_0xd964x2a){var _0xd964x2b={};_0xd964x2b[_0xd964x2a]= {$like:_0x6639[71]+ _0xd964x28[_0x6639[58]][_0x6639[70]]+ _0x6639[71]};return _0xd964x2b})})};_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return _0xd964x2d[_0x6639[86]](_0xd964x1b)}})[_0x6639[45]](function(_0xd964x2f){if(_0xd964x2f){_0xd964x1c= _0xd964x2f[_0x6639[63]];if(!_0xd964x28[_0x6639[58]][_0x6639[65]](_0x6639[64])){_0xd964x1b[_0x6639[35]]= qs[_0x6639[35]](_0xd964x28[_0x6639[58]][_0x6639[35]]);_0xd964x1b[_0x6639[34]]= qs[_0x6639[34]](_0xd964x28[_0x6639[58]][_0x6639[34]])};return _0xd964x2d[_0x6639[86]](_0xd964x1b)}})[_0x6639[45]](function(_0xd964x2e){return _0xd964x2e?{count:_0xd964x1c,rows:_0xd964x2e}:null})[_0x6639[45]](respondWithResult(_0xd964x18,null,_0x6639[86]))[_0x6639[75]](handleError(_0xd964x18,null,_0x6639[86]))};exports[_0x6639[88]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[88]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){return _0xd964x18[_0x6639[88]](_0xd964x28[_0x6639[82]][_0x6639[89]],_[_0x6639[90]](_0xd964x28[_0x6639[82]],[_0x6639[89],_0x6639[78]])|| {})};return null})[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[88]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[88]))};exports[_0x6639[91]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){var _0xd964x30;return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]},include:[{model:db[_0x6639[97]],as:_0x6639[98]}]})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[91]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){_0xd964x30= _0xd964x18;return db[_0x6639[96]][_0x6639[55]]}})[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){var _0xd964x1b={};var _0xd964x29={};_0xd964x29[_0x6639[54]]= _[_0x6639[94]](_[_0x6639[57]](_0xd964x18),_[_0x6639[72]](_0xd964x30.CustomFields,function(_0xd964x31){return util[_0x6639[93]](_0x6639[92],_0xd964x31[_0x6639[78]])}));_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];_0xd964x1b[_0x6639[35]]= qs[_0x6639[35]](_0xd964x28[_0x6639[58]][_0x6639[35]]);_0xd964x1b[_0x6639[34]]= qs[_0x6639[34]](_0xd964x28[_0x6639[58]][_0x6639[34]]);_0xd964x1b[_0x6639[66]]= qs[_0x6639[67]](_0xd964x28[_0x6639[58]][_0x6639[67]]);_0xd964x1b[_0x6639[68]]= qs[_0x6639[59]](_[_0x6639[69]](_0xd964x28[_0x6639[58]],_0xd964x29[_0x6639[59]]));_0xd964x1b[_0x6639[95]]= true;if(_0xd964x28[_0x6639[58]][_0x6639[70]]){_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:_[_0x6639[72]](_0xd964x1b[_0x6639[61]],function(_0xd964x2a){var _0xd964x2b={};_0xd964x2b[_0xd964x2a]= {$like:_0x6639[71]+ _0xd964x28[_0x6639[58]][_0x6639[70]]+ _0x6639[71]};return _0xd964x2b})})};_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return _0xd964x30[_0x6639[91]](_0xd964x1b)}})[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[91]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[91]))};exports[_0x6639[99]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){var _0xd964x30;return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]},include:[{model:db[_0x6639[97]],as:_0x6639[98]}]})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[99]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){_0xd964x30= _0xd964x18;return db[_0x6639[96]][_0x6639[55]]}})[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){var _0xd964x1b={};var _0xd964x29={};_0xd964x29[_0x6639[54]]= _[_0x6639[94]](_[_0x6639[57]](_0xd964x18),_[_0x6639[72]](_0xd964x30.CustomFields,function(_0xd964x31){return util[_0x6639[93]](_0x6639[92],_0xd964x31[_0x6639[78]])}));_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];_0xd964x1b[_0x6639[35]]= qs[_0x6639[35]](_0xd964x28[_0x6639[58]][_0x6639[35]]);_0xd964x1b[_0x6639[34]]= qs[_0x6639[34]](_0xd964x28[_0x6639[58]][_0x6639[34]]);_0xd964x1b[_0x6639[66]]= qs[_0x6639[67]](_0xd964x28[_0x6639[58]][_0x6639[67]]);_0xd964x1b[_0x6639[68]]= qs[_0x6639[59]](_[_0x6639[69]](_0xd964x28[_0x6639[58]],_0xd964x29[_0x6639[59]]));_0xd964x1b[_0x6639[95]]= true;if(_0xd964x28[_0x6639[58]][_0x6639[70]]){_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:_[_0x6639[72]](_0xd964x1b[_0x6639[61]],function(_0xd964x2a){var _0xd964x2b={};_0xd964x2b[_0xd964x2a]= {$like:_0x6639[71]+ _0xd964x28[_0x6639[58]][_0x6639[70]]+ _0x6639[71]};return _0xd964x2b})})};_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return _0xd964x30[_0x6639[91]](_0xd964x1b)}})[_0x6639[45]](function(_0xd964x32){if(_0xd964x32){var _0xd964x33=toCsv(_0xd964x32);var _0xd964x34=Date[_0x6639[100]]();fs[_0x6639[102]](util[_0x6639[93]](_0x6639[101],_0xd964x30[_0x6639[78]],_0xd964x34),_0xd964x33);_0xd964x15[_0x6639[106]](_0x6639[103],_0x6639[104]+ util[_0x6639[93]](_0x6639[105],_0xd964x30[_0x6639[78]],_0xd964x34));_0xd964x15[_0x6639[106]](_0x6639[107],_0x6639[108]);_0xd964x15[_0x6639[109]](util[_0x6639[93]](_0x6639[101],_0xd964x30[_0x6639[78]],_0xd964x34))}})[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[99]))};exports[_0x6639[110]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){var _0xd964x35;delete _0xd964x28[_0x6639[82]][_0x6639[78]];return db[_0x6639[56]][_0x6639[87]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[110]))[_0x6639[45]](function(_0xd964x30){if(_0xd964x30){return db[_0x6639[123]][_0x6639[125]](function(_0xd964x36){return db[_0x6639[97]][_0x6639[81]](_0xd964x28[_0x6639[82]],{transaction:_0xd964x36})[_0x6639[45]](function(_0xd964x38){_0xd964x35= _0xd964x38;return _0xd964x30[_0x6639[124]](_0xd964x38,{transaction:_0xd964x36})})[_0x6639[45]](function(){var _0xd964x37={type:db[_0x6639[112]][_0x6639[111]],transaction:_0xd964x36};switch(_0xd964x28[_0x6639[82]][_0x6639[113]]){case _0x6639[114]:_0xd964x37[_0x6639[113]]= db[_0x6639[112]][_0x6639[111]];break;case _0x6639[116]:_0xd964x37[_0x6639[113]]= db[_0x6639[112]][_0x6639[115]];break;case _0x6639[118]:_0xd964x37[_0x6639[113]]= db[_0x6639[112]][_0x6639[117]];break;default:};return db[_0x6639[123]][_0x6639[122]][_0x6639[121]](_0x6639[119],util[_0x6639[93]](_0x6639[120],_0xd964x35[_0x6639[78]]),_0xd964x37)})[_0x6639[45]](function(){return _0xd964x35})})}})[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[110]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[110]))};exports[_0x6639[126]]= function(_0xd964x28,_0xd964x18,_0xd964x2c){var _0xd964x1b={};var _0xd964x29={};var _0xd964x2d;var _0xd964x1c;return db[_0x6639[56]][_0x6639[87]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x18,null,_0x6639[126]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){_0xd964x2d= _0xd964x18;_0xd964x29[_0x6639[54]]= _[_0x6639[57]](db[_0x6639[97]][_0x6639[55]]);_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];_0xd964x1b[_0x6639[66]]= qs[_0x6639[67]](_0xd964x28[_0x6639[58]][_0x6639[67]]);_0xd964x1b[_0x6639[68]]= qs[_0x6639[59]](_[_0x6639[69]](_0xd964x28[_0x6639[58]],_0xd964x29[_0x6639[59]]));_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:[{ListId:_0xd964x18[_0x6639[78]]},{ListId:null}]});if(_0xd964x28[_0x6639[58]][_0x6639[70]]){_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:_[_0x6639[72]](_0xd964x1b[_0x6639[61]],function(_0xd964x2a){var _0xd964x2b={};_0xd964x2b[_0xd964x2a]= {$like:_0x6639[71]+ _0xd964x28[_0x6639[58]][_0x6639[70]]+ _0x6639[71]};return _0xd964x2b})})};_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return db[_0x6639[97]][_0x6639[76]](_0xd964x1b)}})[_0x6639[45]](respondWithResult(_0xd964x18,null,_0x6639[126]))[_0x6639[75]](handleError(_0xd964x18,null,_0x6639[126]))};exports[_0x6639[127]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[127]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){return _0xd964x18[_0x6639[127]](_0xd964x28[_0x6639[82]][_0x6639[89]],_[_0x6639[90]](_0xd964x28[_0x6639[82]],[_0x6639[89],_0x6639[78]])|| {})};return null})[_0x6639[45]](respondWithResult(_0xd964x15,null,_0x6639[127]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[127]))};exports[_0x6639[128]]= function(_0xd964x28,_0xd964x15,_0xd964x2c){var _0xd964x2f;return db[_0x6639[56]][_0x6639[80]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x15,null,_0x6639[128]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){return _0xd964x18[_0x6639[128]](_0xd964x28[_0x6639[58]][_0x6639[89]])}})[_0x6639[45]](respondWithStatusCode(_0xd964x15,null,_0x6639[128]))[_0x6639[75]](handleError(_0xd964x15,null,_0x6639[128]))};exports[_0x6639[129]]= function(_0xd964x28,_0xd964x18,_0xd964x2c){var _0xd964x1b={};var _0xd964x29={};var _0xd964x2d;var _0xd964x1c;return db[_0x6639[56]][_0x6639[87]]({where:{id:_0xd964x28[_0x6639[79]][_0x6639[78]]}})[_0x6639[45]](handleEntityNotFound(_0xd964x18,null,_0x6639[129]))[_0x6639[45]](function(_0xd964x18){if(_0xd964x18){_0xd964x2d= _0xd964x18;_0xd964x29[_0x6639[54]]= _[_0x6639[57]](db[_0x6639[130]][_0x6639[55]]);_0xd964x29[_0x6639[58]]= _[_0x6639[57]](_0xd964x28[_0x6639[58]]);_0xd964x29[_0x6639[59]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],_0xd964x29[_0x6639[58]]);_0xd964x1b[_0x6639[61]]= _[_0x6639[60]](_0xd964x29[_0x6639[54]],qs[_0x6639[62]](_0xd964x28[_0x6639[58]][_0x6639[62]]));_0xd964x1b[_0x6639[61]]= (_0xd964x1b[_0x6639[61]][_0x6639[63]])?_0xd964x1b[_0x6639[61]]:_0xd964x29[_0x6639[54]];_0xd964x1b[_0x6639[66]]= qs[_0x6639[67]](_0xd964x28[_0x6639[58]][_0x6639[67]]);_0xd964x1b[_0x6639[68]]= qs[_0x6639[59]](_[_0x6639[69]](_0xd964x28[_0x6639[58]],_0xd964x29[_0x6639[59]]));if(_0xd964x28[_0x6639[58]][_0x6639[70]]){_0xd964x1b[_0x6639[68]]= _[_0x6639[73]](_0xd964x1b[_0x6639[68]],{$or:_[_0x6639[72]](_0xd964x1b[_0x6639[61]],function(_0xd964x2a){var _0xd964x2b={};_0xd964x2b[_0xd964x2a]= {$like:_0x6639[71]+ _0xd964x28[_0x6639[58]][_0x6639[70]]+ _0x6639[71]};return _0xd964x2b})})};_0xd964x1b= _[_0x6639[73]]({},_0xd964x1b,_0xd964x28[_0x6639[74]]);return _0xd964x2d[_0x6639[129]](_0xd964x1b)}})[_0x6639[45]](function(_0xd964x2f){if(_0xd964x2f){_0xd964x1c= _0xd964x2f[_0x6639[63]];if(!_0xd964x28[_0x6639[58]][_0x6639[65]](_0x6639[64])){_0xd964x1b[_0x6639[35]]= qs[_0x6639[35]](_0xd964x28[_0x6639[58]][_0x6639[35]]);_0xd964x1b[_0x6639[34]]= qs[_0x6639[34]](_0xd964x28[_0x6639[58]][_0x6639[34]])};return _0xd964x2d[_0x6639[129]](_0xd964x1b)}})[_0x6639[45]](function(_0xd964x2e){return _0xd964x2e?{count:_0xd964x1c,rows:_0xd964x2e}:null})[_0x6639[45]](respondWithResult(_0xd964x18,null,_0x6639[129]))[_0x6639[75]](handleError(_0xd964x18,null,_0x6639[129]))}
\ No newline at end of file
+var _0xd8fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x4C\x69\x73\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x63\x61\x74","\x72\x61\x77","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73\x43\x73\x76","\x6E\x6F\x77","\x2F\x74\x6D\x70\x2F\x6C\x69\x73\x74\x5F\x25\x64\x5F\x25\x73\x2E\x63\x73\x76","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x6C\x69\x73\x74\x5F\x25\x64\x5F\x25\x73\x2E\x63\x73\x76","\x73\x65\x74\x48\x65\x61\x64\x65\x72","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x63\x73\x76","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x79\x70\x65","\x74\x65\x78\x74","\x49\x4E\x54\x45\x47\x45\x52","\x6E\x75\x6D\x62\x65\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x77\x69\x74\x63\x68","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x73","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72"];_0xd8fb[0];var jsonpatch=require(_0xd8fb[1]);var rp=require(_0xd8fb[2]);var moment=require(_0xd8fb[3]);var BPromise=require(_0xd8fb[4]);var util=require(_0xd8fb[5]);var path=require(_0xd8fb[6]);var sox=require(_0xd8fb[7]);var ejs=require(_0xd8fb[8]);var fs=require(_0xd8fb[9]);var _=require(_0xd8fb[10]);var squel=require(_0xd8fb[11]);var crypto=require(_0xd8fb[12]);var jsforce=require(_0xd8fb[13]);var toCsv=require(_0xd8fb[14]);var qs=require(_0xd8fb[15]);var logger=require(_0xd8fb[17])(_0xd8fb[16]);var utils=require(_0xd8fb[18]);var config=require(_0xd8fb[19]);var db=require(_0xd8fb[21])[_0xd8fb[20]];function respondWithStatusCode(_0xe98bx15,_0xe98bx16,_0xe98bx17){_0xe98bx16= _0xe98bx16|| 204;return function(_0xe98bx18){if(_0xe98bx18){logger[_0xd8fb[24]](_0xd8fb[22],_0xe98bx17,_0xe98bx16,_0xd8fb[23]);logger[_0xd8fb[26]](_0xd8fb[25],_0xe98bx17,_0xe98bx16,_0xd8fb[23]);return _0xe98bx15[_0xd8fb[27]](_0xe98bx16)};return _0xe98bx15[_0xd8fb[29]](304)[_0xd8fb[28]]()}}function respondWithResult(_0xe98bx15,_0xe98bx16,_0xe98bx17){_0xe98bx16= _0xe98bx16|| 200;return function(_0xe98bx18){if(_0xe98bx18){logger[_0xd8fb[24]](_0xd8fb[22],_0xe98bx17,_0xe98bx16,_0xd8fb[30]);logger[_0xd8fb[26]](_0xd8fb[25],_0xe98bx17,_0xe98bx16,_0xd8fb[30],JSON[_0xd8fb[31]](_0xe98bx18));return _0xe98bx15[_0xd8fb[29]](_0xe98bx16)[_0xd8fb[32]](_0xe98bx18)};return _0xe98bx15[_0xd8fb[29]](304)[_0xd8fb[28]]()}}function respondWithFilteredResult(_0xe98bx15,_0xe98bx1b,_0xe98bx17){return function(_0xe98bx18){if(_0xe98bx18){var _0xe98bx1c=_0xe98bx18[_0xd8fb[33]],_0xe98bx1d=_0xe98bx1b[_0xd8fb[34]],_0xe98bx1e=_0xe98bx1b[_0xd8fb[34]]+ _0xe98bx1b[_0xd8fb[35]],_0xe98bx16;if(_0xe98bx1e>= _0xe98bx1c){_0xe98bx1e= _0xe98bx1c;_0xe98bx16= 200}else {_0xe98bx16= 206};_0xe98bx15[_0xd8fb[29]](_0xe98bx16);logger[_0xd8fb[24]](_0xd8fb[22],_0xe98bx17,_0xe98bx16,_0xd8fb[36]);logger[_0xd8fb[26]](_0xd8fb[25],_0xe98bx17,_0xe98bx16,_0xd8fb[30],JSON[_0xd8fb[31]](_0xe98bx18));return _0xe98bx15[_0xd8fb[40]](_0xd8fb[37],_0xe98bx1d+ _0xd8fb[38]+ _0xe98bx1e+ _0xd8fb[39]+ _0xe98bx1c)[_0xd8fb[32]](_0xe98bx18)};return null}}function patchUpdates(_0xe98bx20){return function(_0xe98bx18){try{jsonpatch[_0xd8fb[41]](_0xe98bx18,_0xe98bx20,true)}catch(err){return BPromise[_0xd8fb[42]](err)};return _0xe98bx18[_0xd8fb[43]]()}}function saveUpdates(_0xe98bx22,_0xe98bx16,_0xe98bx17){return function(_0xe98bx18){if(_0xe98bx18){return _0xe98bx18[_0xd8fb[46]](_0xe98bx22)[_0xd8fb[45]](function(_0xe98bx23){logger[_0xd8fb[24]](_0xd8fb[22],_0xe98bx17,_0xe98bx16,_0xd8fb[44]);logger[_0xd8fb[26]](_0xd8fb[25],_0xe98bx17,_0xe98bx16,_0xd8fb[44],JSON[_0xd8fb[31]](_0xe98bx18));return _0xe98bx23})};return null}}function removeEntity(_0xe98bx15,_0xe98bx16,_0xe98bx17){return function(_0xe98bx18){if(_0xe98bx18){return _0xe98bx18[_0xd8fb[48]]()[_0xd8fb[45]](function(){logger[_0xd8fb[24]](_0xd8fb[22],_0xe98bx17,_0xe98bx16,_0xd8fb[47]);logger[_0xd8fb[26]](_0xd8fb[25],_0xe98bx17,_0xe98bx16,_0xd8fb[47],JSON[_0xd8fb[31]](_0xe98bx18));_0xe98bx15[_0xd8fb[29]](204)[_0xd8fb[28]]()})}}}function handleEntityNotFound(_0xe98bx15,_0xe98bx16,_0xe98bx17){return function(_0xe98bx18){if(!_0xe98bx18){logger[_0xd8fb[50]](_0xd8fb[22],_0xe98bx17,404,_0xd8fb[49]);_0xe98bx15[_0xd8fb[29]](404)[_0xd8fb[28]]();return null};return _0xe98bx18}}function handleError(_0xe98bx15,_0xe98bx16,_0xe98bx17){_0xe98bx16= _0xe98bx16|| 500;return function(_0xe98bx27){logger[_0xd8fb[50]](_0xd8fb[22],_0xe98bx17,_0xe98bx16,JSON[_0xd8fb[31]](_0xe98bx27));delete _0xe98bx27[_0xd8fb[51]];_0xe98bx15[_0xd8fb[29]](_0xe98bx16)[_0xd8fb[52]](_0xe98bx27)}}exports[_0xd8fb[53]]= function(_0xe98bx28,_0xe98bx15){var _0xe98bx1b={},_0xe98bx29={};_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[57]](db[_0xd8fb[56]][_0xd8fb[55]]);_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];if(!_0xe98bx28[_0xd8fb[58]][_0xd8fb[65]](_0xd8fb[64])){_0xe98bx1b[_0xd8fb[35]]= qs[_0xd8fb[35]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[35]]);_0xe98bx1b[_0xd8fb[34]]= qs[_0xd8fb[34]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[34]])};_0xe98bx1b[_0xd8fb[66]]= qs[_0xd8fb[67]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[67]]);_0xe98bx1b[_0xd8fb[68]]= qs[_0xd8fb[59]](_[_0xd8fb[69]](_0xe98bx28[_0xd8fb[58]],_0xe98bx29[_0xd8fb[59]]));if(_0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]){_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:_[_0xd8fb[72]](_0xe98bx1b[_0xd8fb[61]],function(_0xe98bx2a){var _0xe98bx2b={};_0xe98bx2b[_0xe98bx2a]= {$like:_0xd8fb[71]+ _0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]+ _0xd8fb[71]};return _0xe98bx2b})})};_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return db[_0xd8fb[56]][_0xd8fb[76]](_0xe98bx1b)[_0xd8fb[45]](respondWithFilteredResult(_0xe98bx15,_0xe98bx1b,_0xd8fb[53]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[53]))};exports[_0xd8fb[77]]= function(_0xe98bx28,_0xe98bx15){var _0xe98bx1b={raw:false,where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}},_0xe98bx29={};_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[57]](db[_0xd8fb[56]][_0xd8fb[55]]);_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return db[_0xd8fb[56]][_0xd8fb[80]](_0xe98bx1b)[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[77]))[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[77]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[77]))};exports[_0xd8fb[81]]= function(_0xe98bx28,_0xe98bx15){return db[_0xd8fb[56]][_0xd8fb[81]](_0xe98bx28[_0xd8fb[82]],{})[_0xd8fb[45]](respondWithResult(_0xe98bx15,201,_0xd8fb[81]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[81]))};exports[_0xd8fb[46]]= function(_0xe98bx28,_0xe98bx15){if(_0xe98bx28[_0xd8fb[82]][_0xd8fb[78]]){delete _0xe98bx28[_0xd8fb[82]][_0xd8fb[78]]};return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[46]))[_0xd8fb[45]](saveUpdates(_0xe98bx28[_0xd8fb[82]],null,_0xd8fb[46]))[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[46]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[46]))};exports[_0xd8fb[48]]= function(_0xe98bx28,_0xe98bx15){return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[48]))[_0xd8fb[45]](removeEntity(_0xe98bx15,null,_0xd8fb[48]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[48]))};exports[_0xd8fb[83]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){if(_0xe98bx28[_0xd8fb[82]][_0xd8fb[78]]){delete _0xe98bx28[_0xd8fb[82]][_0xd8fb[78]]};return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[83]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){_0xe98bx28[_0xd8fb[82]][_0xd8fb[84]]= _0xe98bx18[_0xd8fb[78]];return db[_0xd8fb[85]][_0xd8fb[81]](_0xe98bx28[_0xd8fb[82]])}})[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[83]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[83]))};exports[_0xd8fb[86]]= function(_0xe98bx28,_0xe98bx18,_0xe98bx2c){var _0xe98bx1b={};var _0xe98bx29={};var _0xe98bx2d;var _0xe98bx1c;return db[_0xd8fb[56]][_0xd8fb[87]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx18,null,_0xd8fb[86]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){_0xe98bx2d= _0xe98bx18;_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[57]](db[_0xd8fb[85]][_0xd8fb[55]]);_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];_0xe98bx1b[_0xd8fb[66]]= qs[_0xd8fb[67]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[67]]);_0xe98bx1b[_0xd8fb[68]]= qs[_0xd8fb[59]](_[_0xd8fb[69]](_0xe98bx28[_0xd8fb[58]],_0xe98bx29[_0xd8fb[59]]));if(_0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]){_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:_[_0xd8fb[72]](_0xe98bx1b[_0xd8fb[61]],function(_0xe98bx2a){var _0xe98bx2b={};_0xe98bx2b[_0xe98bx2a]= {$like:_0xd8fb[71]+ _0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]+ _0xd8fb[71]};return _0xe98bx2b})})};_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return _0xe98bx2d[_0xd8fb[86]](_0xe98bx1b)}})[_0xd8fb[45]](function(_0xe98bx2f){if(_0xe98bx2f){_0xe98bx1c= _0xe98bx2f[_0xd8fb[63]];if(!_0xe98bx28[_0xd8fb[58]][_0xd8fb[65]](_0xd8fb[64])){_0xe98bx1b[_0xd8fb[35]]= qs[_0xd8fb[35]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[35]]);_0xe98bx1b[_0xd8fb[34]]= qs[_0xd8fb[34]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[34]])};return _0xe98bx2d[_0xd8fb[86]](_0xe98bx1b)}})[_0xd8fb[45]](function(_0xe98bx2e){return _0xe98bx2e?{count:_0xe98bx1c,rows:_0xe98bx2e}:null})[_0xd8fb[45]](respondWithResult(_0xe98bx18,null,_0xd8fb[86]))[_0xd8fb[75]](handleError(_0xe98bx18,null,_0xd8fb[86]))};exports[_0xd8fb[88]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[88]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){return _0xe98bx18[_0xd8fb[88]](_0xe98bx28[_0xd8fb[82]][_0xd8fb[89]],_[_0xd8fb[90]](_0xe98bx28[_0xd8fb[82]],[_0xd8fb[89],_0xd8fb[78]])|| {})};return null})[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[88]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[88]))};exports[_0xd8fb[91]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){var _0xe98bx30;return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]},include:[{model:db[_0xd8fb[97]],as:_0xd8fb[98]}]})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[91]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){_0xe98bx30= _0xe98bx18;return db[_0xd8fb[96]][_0xd8fb[55]]}})[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){var _0xe98bx1b={};var _0xe98bx29={};_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[94]](_[_0xd8fb[57]](_0xe98bx18),_[_0xd8fb[72]](_0xe98bx30.CustomFields,function(_0xe98bx31){return util[_0xd8fb[93]](_0xd8fb[92],_0xe98bx31[_0xd8fb[78]])}));_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];_0xe98bx1b[_0xd8fb[35]]= qs[_0xd8fb[35]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[35]]);_0xe98bx1b[_0xd8fb[34]]= qs[_0xd8fb[34]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[34]]);_0xe98bx1b[_0xd8fb[66]]= qs[_0xd8fb[67]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[67]]);_0xe98bx1b[_0xd8fb[68]]= qs[_0xd8fb[59]](_[_0xd8fb[69]](_0xe98bx28[_0xd8fb[58]],_0xe98bx29[_0xd8fb[59]]));_0xe98bx1b[_0xd8fb[95]]= true;if(_0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]){_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:_[_0xd8fb[72]](_0xe98bx1b[_0xd8fb[61]],function(_0xe98bx2a){var _0xe98bx2b={};_0xe98bx2b[_0xe98bx2a]= {$like:_0xd8fb[71]+ _0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]+ _0xd8fb[71]};return _0xe98bx2b})})};_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return _0xe98bx30[_0xd8fb[91]](_0xe98bx1b)}})[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[91]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[91]))};exports[_0xd8fb[99]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){var _0xe98bx30;return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]},include:[{model:db[_0xd8fb[97]],as:_0xd8fb[98]}]})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[99]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){_0xe98bx30= _0xe98bx18;return db[_0xd8fb[96]][_0xd8fb[55]]}})[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){var _0xe98bx1b={};var _0xe98bx29={};_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[94]](_[_0xd8fb[57]](_0xe98bx18),_[_0xd8fb[72]](_0xe98bx30.CustomFields,function(_0xe98bx31){return util[_0xd8fb[93]](_0xd8fb[92],_0xe98bx31[_0xd8fb[78]])}));_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];_0xe98bx1b[_0xd8fb[35]]= qs[_0xd8fb[35]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[35]]);_0xe98bx1b[_0xd8fb[34]]= qs[_0xd8fb[34]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[34]]);_0xe98bx1b[_0xd8fb[66]]= qs[_0xd8fb[67]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[67]]);_0xe98bx1b[_0xd8fb[68]]= qs[_0xd8fb[59]](_[_0xd8fb[69]](_0xe98bx28[_0xd8fb[58]],_0xe98bx29[_0xd8fb[59]]));_0xe98bx1b[_0xd8fb[95]]= true;if(_0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]){_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:_[_0xd8fb[72]](_0xe98bx1b[_0xd8fb[61]],function(_0xe98bx2a){var _0xe98bx2b={};_0xe98bx2b[_0xe98bx2a]= {$like:_0xd8fb[71]+ _0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]+ _0xd8fb[71]};return _0xe98bx2b})})};_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return _0xe98bx30[_0xd8fb[91]](_0xe98bx1b)}})[_0xd8fb[45]](function(_0xe98bx32){if(_0xe98bx32){var _0xe98bx33=toCsv(_0xe98bx32);var _0xe98bx34=Date[_0xd8fb[100]]();fs[_0xd8fb[102]](util[_0xd8fb[93]](_0xd8fb[101],_0xe98bx30[_0xd8fb[78]],_0xe98bx34),_0xe98bx33);_0xe98bx15[_0xd8fb[106]](_0xd8fb[103],_0xd8fb[104]+ util[_0xd8fb[93]](_0xd8fb[105],_0xe98bx30[_0xd8fb[78]],_0xe98bx34));_0xe98bx15[_0xd8fb[106]](_0xd8fb[107],_0xd8fb[108]);_0xe98bx15[_0xd8fb[109]](util[_0xd8fb[93]](_0xd8fb[101],_0xe98bx30[_0xd8fb[78]],_0xe98bx34))}})[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[99]))};exports[_0xd8fb[110]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){var _0xe98bx35;delete _0xe98bx28[_0xd8fb[82]][_0xd8fb[78]];return db[_0xd8fb[56]][_0xd8fb[87]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[110]))[_0xd8fb[45]](function(_0xe98bx30){if(_0xe98bx30){return db[_0xd8fb[123]][_0xd8fb[125]](function(_0xe98bx36){return db[_0xd8fb[97]][_0xd8fb[81]](_0xe98bx28[_0xd8fb[82]],{transaction:_0xe98bx36})[_0xd8fb[45]](function(_0xe98bx38){_0xe98bx35= _0xe98bx38;return _0xe98bx30[_0xd8fb[124]](_0xe98bx38,{transaction:_0xe98bx36})})[_0xd8fb[45]](function(){var _0xe98bx37={type:db[_0xd8fb[112]][_0xd8fb[111]],transaction:_0xe98bx36};switch(_0xe98bx28[_0xd8fb[82]][_0xd8fb[113]]){case _0xd8fb[114]:_0xe98bx37[_0xd8fb[113]]= db[_0xd8fb[112]][_0xd8fb[111]];break;case _0xd8fb[116]:_0xe98bx37[_0xd8fb[113]]= db[_0xd8fb[112]][_0xd8fb[115]];break;case _0xd8fb[118]:_0xe98bx37[_0xd8fb[113]]= db[_0xd8fb[112]][_0xd8fb[117]];break;default:};return db[_0xd8fb[123]][_0xd8fb[122]][_0xd8fb[121]](_0xd8fb[119],util[_0xd8fb[93]](_0xd8fb[120],_0xe98bx35[_0xd8fb[78]]),_0xe98bx37)})[_0xd8fb[45]](function(){return _0xe98bx35})})}})[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[110]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[110]))};exports[_0xd8fb[126]]= function(_0xe98bx28,_0xe98bx18,_0xe98bx2c){var _0xe98bx1b={};var _0xe98bx29={};var _0xe98bx2d;var _0xe98bx1c;return db[_0xd8fb[56]][_0xd8fb[87]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx18,null,_0xd8fb[126]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){_0xe98bx2d= _0xe98bx18;_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[57]](db[_0xd8fb[97]][_0xd8fb[55]]);_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];_0xe98bx1b[_0xd8fb[66]]= qs[_0xd8fb[67]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[67]]);_0xe98bx1b[_0xd8fb[68]]= qs[_0xd8fb[59]](_[_0xd8fb[69]](_0xe98bx28[_0xd8fb[58]],_0xe98bx29[_0xd8fb[59]]));_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:[{ListId:_0xe98bx18[_0xd8fb[78]]},{ListId:null}]});if(_0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]){_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:_[_0xd8fb[72]](_0xe98bx1b[_0xd8fb[61]],function(_0xe98bx2a){var _0xe98bx2b={};_0xe98bx2b[_0xe98bx2a]= {$like:_0xd8fb[71]+ _0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]+ _0xd8fb[71]};return _0xe98bx2b})})};_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return db[_0xd8fb[97]][_0xd8fb[76]](_0xe98bx1b)}})[_0xd8fb[45]](respondWithResult(_0xe98bx18,null,_0xd8fb[126]))[_0xd8fb[75]](handleError(_0xe98bx18,null,_0xd8fb[126]))};exports[_0xd8fb[127]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[127]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){return _0xe98bx18[_0xd8fb[127]](_0xe98bx28[_0xd8fb[82]][_0xd8fb[89]],_[_0xd8fb[90]](_0xe98bx28[_0xd8fb[82]],[_0xd8fb[89],_0xd8fb[78]])|| {})};return null})[_0xd8fb[45]](respondWithResult(_0xe98bx15,null,_0xd8fb[127]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[127]))};exports[_0xd8fb[128]]= function(_0xe98bx28,_0xe98bx15,_0xe98bx2c){var _0xe98bx2f;return db[_0xd8fb[56]][_0xd8fb[80]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx15,null,_0xd8fb[128]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){return _0xe98bx18[_0xd8fb[128]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[89]])}})[_0xd8fb[45]](respondWithStatusCode(_0xe98bx15,null,_0xd8fb[128]))[_0xd8fb[75]](handleError(_0xe98bx15,null,_0xd8fb[128]))};exports[_0xd8fb[129]]= function(_0xe98bx28,_0xe98bx18,_0xe98bx2c){var _0xe98bx1b={};var _0xe98bx29={};var _0xe98bx2d;var _0xe98bx1c;return db[_0xd8fb[56]][_0xd8fb[87]]({where:{id:_0xe98bx28[_0xd8fb[79]][_0xd8fb[78]]}})[_0xd8fb[45]](handleEntityNotFound(_0xe98bx18,null,_0xd8fb[129]))[_0xd8fb[45]](function(_0xe98bx18){if(_0xe98bx18){_0xe98bx2d= _0xe98bx18;_0xe98bx29[_0xd8fb[54]]= _[_0xd8fb[57]](db[_0xd8fb[130]][_0xd8fb[55]]);_0xe98bx29[_0xd8fb[58]]= _[_0xd8fb[57]](_0xe98bx28[_0xd8fb[58]]);_0xe98bx29[_0xd8fb[59]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],_0xe98bx29[_0xd8fb[58]]);_0xe98bx1b[_0xd8fb[61]]= _[_0xd8fb[60]](_0xe98bx29[_0xd8fb[54]],qs[_0xd8fb[62]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[62]]));_0xe98bx1b[_0xd8fb[61]]= (_0xe98bx1b[_0xd8fb[61]][_0xd8fb[63]])?_0xe98bx1b[_0xd8fb[61]]:_0xe98bx29[_0xd8fb[54]];_0xe98bx1b[_0xd8fb[66]]= qs[_0xd8fb[67]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[67]]);_0xe98bx1b[_0xd8fb[68]]= qs[_0xd8fb[59]](_[_0xd8fb[69]](_0xe98bx28[_0xd8fb[58]],_0xe98bx29[_0xd8fb[59]]));if(_0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]){_0xe98bx1b[_0xd8fb[68]]= _[_0xd8fb[73]](_0xe98bx1b[_0xd8fb[68]],{$or:_[_0xd8fb[72]](_0xe98bx1b[_0xd8fb[61]],function(_0xe98bx2a){var _0xe98bx2b={};_0xe98bx2b[_0xe98bx2a]= {$like:_0xd8fb[71]+ _0xe98bx28[_0xd8fb[58]][_0xd8fb[70]]+ _0xd8fb[71]};return _0xe98bx2b})})};_0xe98bx1b= _[_0xd8fb[73]]({},_0xe98bx1b,_0xe98bx28[_0xd8fb[74]]);return _0xe98bx2d[_0xd8fb[129]](_0xe98bx1b)}})[_0xd8fb[45]](function(_0xe98bx2f){if(_0xe98bx2f){_0xe98bx1c= _0xe98bx2f[_0xd8fb[63]];if(!_0xe98bx28[_0xd8fb[58]][_0xd8fb[65]](_0xd8fb[64])){_0xe98bx1b[_0xd8fb[35]]= qs[_0xd8fb[35]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[35]]);_0xe98bx1b[_0xd8fb[34]]= qs[_0xd8fb[34]](_0xe98bx28[_0xd8fb[58]][_0xd8fb[34]])};return _0xe98bx2d[_0xd8fb[129]](_0xe98bx1b)}})[_0xd8fb[45]](function(_0xe98bx2e){return _0xe98bx2e?{count:_0xe98bx1c,rows:_0xe98bx2e}:null})[_0xd8fb[45]](respondWithResult(_0xe98bx18,null,_0xd8fb[129]))[_0xd8fb[75]](handleError(_0xe98bx18,null,_0xd8fb[129]))}
\ No newline at end of file
index 095e10e..830f711 100644 (file)
@@ -1 +1 @@
-var _0xf3bf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xf3bf[0];var _=require(_0xf3bf[1]);var util=require(_0xf3bf[2]);var logger=require(_0xf3bf[4])(_0xf3bf[3]);var attributes=require(_0xf3bf[5]);module[_0xf3bf[6]]= function(_0x17e6x5,_0x17e6x6){return _0x17e6x5[_0xf3bf[9]](_0xf3bf[7],attributes,{tableName:_0xf3bf[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xc934=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xc934[0];var _=require(_0xc934[1]);var util=require(_0xc934[2]);var logger=require(_0xc934[4])(_0xc934[3]);var attributes=require(_0xc934[5]);module[_0xc934[6]]= function(_0xad38x5,_0xad38x6){return _0xad38x5[_0xc934[9]](_0xc934[7],attributes,{tableName:_0xc934[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index e516353..83e5c2e 100644 (file)
@@ -1 +1 @@
-var _0x9df7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9df7[0];var _=require(_0x9df7[1]);var util=require(_0x9df7[2]);var moment=require(_0x9df7[3]);var BPromise=require(_0x9df7[4]);var db=require(_0x9df7[6])[_0x9df7[5]];var utils=require(_0x9df7[7]);var logger=require(_0x9df7[9])(_0x9df7[8]);var jayson=require(_0x9df7[10]);var client=jayson[_0x9df7[12]][_0x9df7[11]]({port:9002});function respondWithRpcPromise(_0xc9fdxb,_0xc9fdxc,_0xc9fdxd){return  new BPromise(function(_0xc9fdxe,_0xc9fdxf){return client[_0x9df7[25]](_0xc9fdxb,_0xc9fdxd)[_0x9df7[24]](function(_0xc9fdx11){logger[_0x9df7[17]](_0x9df7[13],_0xc9fdxc,_0x9df7[16]);logger[_0x9df7[20]](_0x9df7[18],_0xc9fdxc,_0x9df7[16],JSON[_0x9df7[19]](_0xc9fdx11));if(_0xc9fdx11[_0x9df7[14]]){if(_0xc9fdx11[_0x9df7[14]][_0x9df7[21]]=== 500){logger[_0x9df7[14]](_0x9df7[13],_0xc9fdxc,_0xc9fdx11[_0x9df7[14]][_0x9df7[22]]);return _0xc9fdxf(_0xc9fdx11[_0x9df7[14]][_0x9df7[22]])};logger[_0x9df7[14]](_0x9df7[13],_0xc9fdxc,_0xc9fdx11[_0x9df7[14]][_0x9df7[22]]);return _0xc9fdxe(_0xc9fdx11[_0x9df7[14]][_0x9df7[22]])}else {logger[_0x9df7[17]](_0x9df7[13],_0xc9fdxc,_0x9df7[16]);_0xc9fdxe(_0xc9fdx11[_0x9df7[23]][_0x9df7[22]])}})[_0x9df7[15]](function(_0xc9fdx10){logger[_0x9df7[14]](_0x9df7[13],_0xc9fdxc,_0xc9fdx10);_0xc9fdxf(_0xc9fdx10)})})}
\ No newline at end of file
+var _0x9645=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9645[0];var _=require(_0x9645[1]);var util=require(_0x9645[2]);var moment=require(_0x9645[3]);var BPromise=require(_0x9645[4]);var db=require(_0x9645[6])[_0x9645[5]];var utils=require(_0x9645[7]);var logger=require(_0x9645[9])(_0x9645[8]);var jayson=require(_0x9645[10]);var client=jayson[_0x9645[12]][_0x9645[11]]({port:9002});function respondWithRpcPromise(_0x44d6xb,_0x44d6xc,_0x44d6xd){return  new BPromise(function(_0x44d6xe,_0x44d6xf){return client[_0x9645[25]](_0x44d6xb,_0x44d6xd)[_0x9645[24]](function(_0x44d6x11){logger[_0x9645[17]](_0x9645[13],_0x44d6xc,_0x9645[16]);logger[_0x9645[20]](_0x9645[18],_0x44d6xc,_0x9645[16],JSON[_0x9645[19]](_0x44d6x11));if(_0x44d6x11[_0x9645[14]]){if(_0x44d6x11[_0x9645[14]][_0x9645[21]]=== 500){logger[_0x9645[14]](_0x9645[13],_0x44d6xc,_0x44d6x11[_0x9645[14]][_0x9645[22]]);return _0x44d6xf(_0x44d6x11[_0x9645[14]][_0x9645[22]])};logger[_0x9645[14]](_0x9645[13],_0x44d6xc,_0x44d6x11[_0x9645[14]][_0x9645[22]]);return _0x44d6xe(_0x44d6x11[_0x9645[14]][_0x9645[22]])}else {logger[_0x9645[17]](_0x9645[13],_0x44d6xc,_0x9645[16]);_0x44d6xe(_0x44d6x11[_0x9645[23]][_0x9645[22]])}})[_0x9645[15]](function(_0x44d6x10){logger[_0x9645[14]](_0x9645[13],_0x44d6xc,_0x44d6x10);_0x44d6xf(_0x44d6x10)})})}
\ No newline at end of file
index deac84b..c7483a4 100644 (file)
@@ -1 +1 @@
-var _0x5352=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2F\x63\x73\x76","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73\x43\x73\x76","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x5352[0];var multer=require(_0x5352[1]);var util=require(_0x5352[2]);var path=require(_0x5352[3]);var express=require(_0x5352[4]);var router=express.Router();var auth=require(_0x5352[5]);var config=require(_0x5352[6]);var controller=require(_0x5352[7]);router[_0x5352[11]](_0x5352[8],auth[_0x5352[9]](),controller[_0x5352[10]]);router[_0x5352[11]](_0x5352[12],auth[_0x5352[9]](),controller[_0x5352[13]]);router[_0x5352[11]](_0x5352[14],auth[_0x5352[9]](),controller[_0x5352[15]]);router[_0x5352[11]](_0x5352[16],auth[_0x5352[9]](),controller[_0x5352[17]]);router[_0x5352[11]](_0x5352[18],controller[_0x5352[19]]);router[_0x5352[11]](_0x5352[20],auth[_0x5352[9]](),controller[_0x5352[21]]);router[_0x5352[11]](_0x5352[22],auth[_0x5352[9]](),controller[_0x5352[23]]);router[_0x5352[25]](_0x5352[8],auth[_0x5352[9]](),controller[_0x5352[24]]);router[_0x5352[25]](_0x5352[14],auth[_0x5352[9]](),controller[_0x5352[26]]);router[_0x5352[25]](_0x5352[16],auth[_0x5352[9]](),controller[_0x5352[27]]);router[_0x5352[25]](_0x5352[20],auth[_0x5352[9]](),controller[_0x5352[28]]);router[_0x5352[25]](_0x5352[22],auth[_0x5352[9]](),controller[_0x5352[29]]);router[_0x5352[31]](_0x5352[12],auth[_0x5352[9]](),controller[_0x5352[30]]);router[_0x5352[33]](_0x5352[12],auth[_0x5352[9]](),controller[_0x5352[32]]);router[_0x5352[33]](_0x5352[22],auth[_0x5352[9]](),controller[_0x5352[34]]);module[_0x5352[35]]= router
\ No newline at end of file
+var _0xeb40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2F\x63\x73\x76","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73\x43\x73\x76","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xeb40[0];var multer=require(_0xeb40[1]);var util=require(_0xeb40[2]);var path=require(_0xeb40[3]);var express=require(_0xeb40[4]);var router=express.Router();var auth=require(_0xeb40[5]);var config=require(_0xeb40[6]);var controller=require(_0xeb40[7]);router[_0xeb40[11]](_0xeb40[8],auth[_0xeb40[9]](),controller[_0xeb40[10]]);router[_0xeb40[11]](_0xeb40[12],auth[_0xeb40[9]](),controller[_0xeb40[13]]);router[_0xeb40[11]](_0xeb40[14],auth[_0xeb40[9]](),controller[_0xeb40[15]]);router[_0xeb40[11]](_0xeb40[16],auth[_0xeb40[9]](),controller[_0xeb40[17]]);router[_0xeb40[11]](_0xeb40[18],controller[_0xeb40[19]]);router[_0xeb40[11]](_0xeb40[20],auth[_0xeb40[9]](),controller[_0xeb40[21]]);router[_0xeb40[11]](_0xeb40[22],auth[_0xeb40[9]](),controller[_0xeb40[23]]);router[_0xeb40[25]](_0xeb40[8],auth[_0xeb40[9]](),controller[_0xeb40[24]]);router[_0xeb40[25]](_0xeb40[14],auth[_0xeb40[9]](),controller[_0xeb40[26]]);router[_0xeb40[25]](_0xeb40[16],auth[_0xeb40[9]](),controller[_0xeb40[27]]);router[_0xeb40[25]](_0xeb40[20],auth[_0xeb40[9]](),controller[_0xeb40[28]]);router[_0xeb40[25]](_0xeb40[22],auth[_0xeb40[9]](),controller[_0xeb40[29]]);router[_0xeb40[31]](_0xeb40[12],auth[_0xeb40[9]](),controller[_0xeb40[30]]);router[_0xeb40[33]](_0xeb40[12],auth[_0xeb40[9]](),controller[_0xeb40[32]]);router[_0xeb40[33]](_0xeb40[22],auth[_0xeb40[9]](),controller[_0xeb40[34]]);module[_0xeb40[35]]= router
\ No newline at end of file
index c9df817..dcc47bf 100644 (file)
@@ -1 +1 @@
-var _0x6783=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x66\x69\x65\x6C\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47"];_0x6783[0];var Sequelize=require(_0x6783[1]);module[_0x6783[2]]= {name:{type:Sequelize[_0x6783[3]],get:function(_0xa51ax2){return this[_0x6783[5]](_0x6783[4])}},field:{type:Sequelize[_0x6783[6]],allowNull:false},operator:{type:Sequelize[_0x6783[6]],allowNull:false},value:{type:Sequelize[_0x6783[6]],allowNull:false}}
\ No newline at end of file
+var _0x8595=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x66\x69\x65\x6C\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47"];_0x8595[0];var Sequelize=require(_0x8595[1]);module[_0x8595[2]]= {name:{type:Sequelize[_0x8595[3]],get:function(_0xa7d3x2){return this[_0x8595[5]](_0x8595[4])}},field:{type:Sequelize[_0x8595[6]],allowNull:false},operator:{type:Sequelize[_0x8595[6]],allowNull:false},value:{type:Sequelize[_0x8595[6]],allowNull:false}}
\ No newline at end of file
index 9eac728..0dab46f 100644 (file)
@@ -1 +1 @@
-var _0xb3f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E"];_0xb3f6[0];var jsonpatch=require(_0xb3f6[1]);var rp=require(_0xb3f6[2]);var moment=require(_0xb3f6[3]);var BPromise=require(_0xb3f6[4]);var util=require(_0xb3f6[5]);var path=require(_0xb3f6[6]);var sox=require(_0xb3f6[7]);var ejs=require(_0xb3f6[8]);var fs=require(_0xb3f6[9]);var _=require(_0xb3f6[10]);var squel=require(_0xb3f6[11]);var crypto=require(_0xb3f6[12]);var jsforce=require(_0xb3f6[13]);var toCsv=require(_0xb3f6[14]);var qs=require(_0xb3f6[15]);var logger=require(_0xb3f6[17])(_0xb3f6[16]);var utils=require(_0xb3f6[18]);var config=require(_0xb3f6[19]);var db=require(_0xb3f6[21])[_0xb3f6[20]];function respondWithStatusCode(_0xd90bx15,_0xd90bx16,_0xd90bx17){_0xd90bx16= _0xd90bx16|| 204;return function(_0xd90bx18){if(_0xd90bx18){logger[_0xb3f6[24]](_0xb3f6[22],_0xd90bx17,_0xd90bx16,_0xb3f6[23]);logger[_0xb3f6[26]](_0xb3f6[25],_0xd90bx17,_0xd90bx16,_0xb3f6[23]);return _0xd90bx15[_0xb3f6[27]](_0xd90bx16)};return _0xd90bx15[_0xb3f6[29]](304)[_0xb3f6[28]]()}}function respondWithResult(_0xd90bx15,_0xd90bx16,_0xd90bx17){_0xd90bx16= _0xd90bx16|| 200;return function(_0xd90bx18){if(_0xd90bx18){logger[_0xb3f6[24]](_0xb3f6[22],_0xd90bx17,_0xd90bx16,_0xb3f6[30]);logger[_0xb3f6[26]](_0xb3f6[25],_0xd90bx17,_0xd90bx16,_0xb3f6[30],JSON[_0xb3f6[31]](_0xd90bx18));return _0xd90bx15[_0xb3f6[29]](_0xd90bx16)[_0xb3f6[32]](_0xd90bx18)};return _0xd90bx15[_0xb3f6[29]](304)[_0xb3f6[28]]()}}function respondWithFilteredResult(_0xd90bx15,_0xd90bx1b,_0xd90bx17){return function(_0xd90bx18){if(_0xd90bx18){var _0xd90bx1c=_0xd90bx18[_0xb3f6[33]],_0xd90bx1d=_0xd90bx1b[_0xb3f6[34]],_0xd90bx1e=_0xd90bx1b[_0xb3f6[34]]+ _0xd90bx1b[_0xb3f6[35]],_0xd90bx16;if(_0xd90bx1e>= _0xd90bx1c){_0xd90bx1e= _0xd90bx1c;_0xd90bx16= 200}else {_0xd90bx16= 206};_0xd90bx15[_0xb3f6[29]](_0xd90bx16);logger[_0xb3f6[24]](_0xb3f6[22],_0xd90bx17,_0xd90bx16,_0xb3f6[36]);logger[_0xb3f6[26]](_0xb3f6[25],_0xd90bx17,_0xd90bx16,_0xb3f6[30],JSON[_0xb3f6[31]](_0xd90bx18));return _0xd90bx15[_0xb3f6[40]](_0xb3f6[37],_0xd90bx1d+ _0xb3f6[38]+ _0xd90bx1e+ _0xb3f6[39]+ _0xd90bx1c)[_0xb3f6[32]](_0xd90bx18)};return null}}function patchUpdates(_0xd90bx20){return function(_0xd90bx18){try{jsonpatch[_0xb3f6[41]](_0xd90bx18,_0xd90bx20,true)}catch(err){return BPromise[_0xb3f6[42]](err)};return _0xd90bx18[_0xb3f6[43]]()}}function saveUpdates(_0xd90bx22,_0xd90bx16,_0xd90bx17){return function(_0xd90bx18){if(_0xd90bx18){return _0xd90bx18[_0xb3f6[46]](_0xd90bx22)[_0xb3f6[45]](function(_0xd90bx23){logger[_0xb3f6[24]](_0xb3f6[22],_0xd90bx17,_0xd90bx16,_0xb3f6[44]);logger[_0xb3f6[26]](_0xb3f6[25],_0xd90bx17,_0xd90bx16,_0xb3f6[44],JSON[_0xb3f6[31]](_0xd90bx18));return _0xd90bx23})};return null}}function removeEntity(_0xd90bx15,_0xd90bx16,_0xd90bx17){return function(_0xd90bx18){if(_0xd90bx18){return _0xd90bx18[_0xb3f6[48]]()[_0xb3f6[45]](function(){logger[_0xb3f6[24]](_0xb3f6[22],_0xd90bx17,_0xd90bx16,_0xb3f6[47]);logger[_0xb3f6[26]](_0xb3f6[25],_0xd90bx17,_0xd90bx16,_0xb3f6[47],JSON[_0xb3f6[31]](_0xd90bx18));_0xd90bx15[_0xb3f6[29]](204)[_0xb3f6[28]]()})}}}function handleEntityNotFound(_0xd90bx15,_0xd90bx16,_0xd90bx17){return function(_0xd90bx18){if(!_0xd90bx18){logger[_0xb3f6[50]](_0xb3f6[22],_0xd90bx17,404,_0xb3f6[49]);_0xd90bx15[_0xb3f6[29]](404)[_0xb3f6[28]]();return null};return _0xd90bx18}}function handleError(_0xd90bx15,_0xd90bx16,_0xd90bx17){_0xd90bx16= _0xd90bx16|| 500;return function(_0xd90bx27){logger[_0xb3f6[50]](_0xb3f6[22],_0xd90bx17,_0xd90bx16,JSON[_0xb3f6[31]](_0xd90bx27));delete _0xd90bx27[_0xb3f6[51]];_0xd90bx15[_0xb3f6[29]](_0xd90bx16)[_0xb3f6[52]](_0xd90bx27)}}exports[_0xb3f6[46]]= function(_0xd90bx28,_0xd90bx15){if(_0xd90bx28[_0xb3f6[54]][_0xb3f6[53]]){delete _0xd90bx28[_0xb3f6[54]][_0xb3f6[53]]};return db[_0xb3f6[58]][_0xb3f6[57]]({where:{id:_0xd90bx28[_0xb3f6[56]][_0xb3f6[53]]}})[_0xb3f6[45]](handleEntityNotFound(_0xd90bx15,null,_0xb3f6[46]))[_0xb3f6[45]](saveUpdates(_0xd90bx28[_0xb3f6[54]],null,_0xb3f6[46]))[_0xb3f6[45]](respondWithResult(_0xd90bx15,null,_0xb3f6[46]))[_0xb3f6[55]](handleError(_0xd90bx15,null,_0xb3f6[46]))};exports[_0xb3f6[48]]= function(_0xd90bx28,_0xd90bx15){return db[_0xb3f6[58]][_0xb3f6[57]]({where:{id:_0xd90bx28[_0xb3f6[56]][_0xb3f6[53]]}})[_0xb3f6[45]](handleEntityNotFound(_0xd90bx15,null,_0xb3f6[48]))[_0xb3f6[45]](removeEntity(_0xd90bx15,null,_0xb3f6[48]))[_0xb3f6[55]](handleError(_0xd90bx15,null,_0xb3f6[48]))}
\ No newline at end of file
+var _0x98ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E"];_0x98ec[0];var jsonpatch=require(_0x98ec[1]);var rp=require(_0x98ec[2]);var moment=require(_0x98ec[3]);var BPromise=require(_0x98ec[4]);var util=require(_0x98ec[5]);var path=require(_0x98ec[6]);var sox=require(_0x98ec[7]);var ejs=require(_0x98ec[8]);var fs=require(_0x98ec[9]);var _=require(_0x98ec[10]);var squel=require(_0x98ec[11]);var crypto=require(_0x98ec[12]);var jsforce=require(_0x98ec[13]);var toCsv=require(_0x98ec[14]);var qs=require(_0x98ec[15]);var logger=require(_0x98ec[17])(_0x98ec[16]);var utils=require(_0x98ec[18]);var config=require(_0x98ec[19]);var db=require(_0x98ec[21])[_0x98ec[20]];function respondWithStatusCode(_0xe312x15,_0xe312x16,_0xe312x17){_0xe312x16= _0xe312x16|| 204;return function(_0xe312x18){if(_0xe312x18){logger[_0x98ec[24]](_0x98ec[22],_0xe312x17,_0xe312x16,_0x98ec[23]);logger[_0x98ec[26]](_0x98ec[25],_0xe312x17,_0xe312x16,_0x98ec[23]);return _0xe312x15[_0x98ec[27]](_0xe312x16)};return _0xe312x15[_0x98ec[29]](304)[_0x98ec[28]]()}}function respondWithResult(_0xe312x15,_0xe312x16,_0xe312x17){_0xe312x16= _0xe312x16|| 200;return function(_0xe312x18){if(_0xe312x18){logger[_0x98ec[24]](_0x98ec[22],_0xe312x17,_0xe312x16,_0x98ec[30]);logger[_0x98ec[26]](_0x98ec[25],_0xe312x17,_0xe312x16,_0x98ec[30],JSON[_0x98ec[31]](_0xe312x18));return _0xe312x15[_0x98ec[29]](_0xe312x16)[_0x98ec[32]](_0xe312x18)};return _0xe312x15[_0x98ec[29]](304)[_0x98ec[28]]()}}function respondWithFilteredResult(_0xe312x15,_0xe312x1b,_0xe312x17){return function(_0xe312x18){if(_0xe312x18){var _0xe312x1c=_0xe312x18[_0x98ec[33]],_0xe312x1d=_0xe312x1b[_0x98ec[34]],_0xe312x1e=_0xe312x1b[_0x98ec[34]]+ _0xe312x1b[_0x98ec[35]],_0xe312x16;if(_0xe312x1e>= _0xe312x1c){_0xe312x1e= _0xe312x1c;_0xe312x16= 200}else {_0xe312x16= 206};_0xe312x15[_0x98ec[29]](_0xe312x16);logger[_0x98ec[24]](_0x98ec[22],_0xe312x17,_0xe312x16,_0x98ec[36]);logger[_0x98ec[26]](_0x98ec[25],_0xe312x17,_0xe312x16,_0x98ec[30],JSON[_0x98ec[31]](_0xe312x18));return _0xe312x15[_0x98ec[40]](_0x98ec[37],_0xe312x1d+ _0x98ec[38]+ _0xe312x1e+ _0x98ec[39]+ _0xe312x1c)[_0x98ec[32]](_0xe312x18)};return null}}function patchUpdates(_0xe312x20){return function(_0xe312x18){try{jsonpatch[_0x98ec[41]](_0xe312x18,_0xe312x20,true)}catch(err){return BPromise[_0x98ec[42]](err)};return _0xe312x18[_0x98ec[43]]()}}function saveUpdates(_0xe312x22,_0xe312x16,_0xe312x17){return function(_0xe312x18){if(_0xe312x18){return _0xe312x18[_0x98ec[46]](_0xe312x22)[_0x98ec[45]](function(_0xe312x23){logger[_0x98ec[24]](_0x98ec[22],_0xe312x17,_0xe312x16,_0x98ec[44]);logger[_0x98ec[26]](_0x98ec[25],_0xe312x17,_0xe312x16,_0x98ec[44],JSON[_0x98ec[31]](_0xe312x18));return _0xe312x23})};return null}}function removeEntity(_0xe312x15,_0xe312x16,_0xe312x17){return function(_0xe312x18){if(_0xe312x18){return _0xe312x18[_0x98ec[48]]()[_0x98ec[45]](function(){logger[_0x98ec[24]](_0x98ec[22],_0xe312x17,_0xe312x16,_0x98ec[47]);logger[_0x98ec[26]](_0x98ec[25],_0xe312x17,_0xe312x16,_0x98ec[47],JSON[_0x98ec[31]](_0xe312x18));_0xe312x15[_0x98ec[29]](204)[_0x98ec[28]]()})}}}function handleEntityNotFound(_0xe312x15,_0xe312x16,_0xe312x17){return function(_0xe312x18){if(!_0xe312x18){logger[_0x98ec[50]](_0x98ec[22],_0xe312x17,404,_0x98ec[49]);_0xe312x15[_0x98ec[29]](404)[_0x98ec[28]]();return null};return _0xe312x18}}function handleError(_0xe312x15,_0xe312x16,_0xe312x17){_0xe312x16= _0xe312x16|| 500;return function(_0xe312x27){logger[_0x98ec[50]](_0x98ec[22],_0xe312x17,_0xe312x16,JSON[_0x98ec[31]](_0xe312x27));delete _0xe312x27[_0x98ec[51]];_0xe312x15[_0x98ec[29]](_0xe312x16)[_0x98ec[52]](_0xe312x27)}}exports[_0x98ec[46]]= function(_0xe312x28,_0xe312x15){if(_0xe312x28[_0x98ec[54]][_0x98ec[53]]){delete _0xe312x28[_0x98ec[54]][_0x98ec[53]]};return db[_0x98ec[58]][_0x98ec[57]]({where:{id:_0xe312x28[_0x98ec[56]][_0x98ec[53]]}})[_0x98ec[45]](handleEntityNotFound(_0xe312x15,null,_0x98ec[46]))[_0x98ec[45]](saveUpdates(_0xe312x28[_0x98ec[54]],null,_0x98ec[46]))[_0x98ec[45]](respondWithResult(_0xe312x15,null,_0x98ec[46]))[_0x98ec[55]](handleError(_0xe312x15,null,_0x98ec[46]))};exports[_0x98ec[48]]= function(_0xe312x28,_0xe312x15){return db[_0x98ec[58]][_0x98ec[57]]({where:{id:_0xe312x28[_0x98ec[56]][_0x98ec[53]]}})[_0x98ec[45]](handleEntityNotFound(_0xe312x15,null,_0x98ec[48]))[_0x98ec[45]](removeEntity(_0xe312x15,null,_0x98ec[48]))[_0x98ec[55]](handleError(_0xe312x15,null,_0x98ec[48]))}
\ No newline at end of file
index 3bb2b72..6a48981 100644 (file)
@@ -1 +1 @@
-var _0xc03e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xc03e[0];var _=require(_0xc03e[1]);var util=require(_0xc03e[2]);var logger=require(_0xc03e[4])(_0xc03e[3]);var attributes=require(_0xc03e[5]);module[_0xc03e[6]]= function(_0xf4b1x5,_0xf4b1x6){return _0xf4b1x5[_0xc03e[9]](_0xc03e[7],attributes,{tableName:_0xc03e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x3a94=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x3a94[0];var _=require(_0x3a94[1]);var util=require(_0x3a94[2]);var logger=require(_0x3a94[4])(_0x3a94[3]);var attributes=require(_0x3a94[5]);module[_0x3a94[6]]= function(_0x87cex5,_0x87cex6){return _0x87cex5[_0x3a94[9]](_0x3a94[7],attributes,{tableName:_0x3a94[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 42818da..0c70666 100644 (file)
@@ -1 +1 @@
-var _0xc00c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc00c[0];var _=require(_0xc00c[1]);var util=require(_0xc00c[2]);var moment=require(_0xc00c[3]);var BPromise=require(_0xc00c[4]);var db=require(_0xc00c[6])[_0xc00c[5]];var utils=require(_0xc00c[7]);var logger=require(_0xc00c[9])(_0xc00c[8]);var jayson=require(_0xc00c[10]);var client=jayson[_0xc00c[12]][_0xc00c[11]]({port:9002});function respondWithRpcPromise(_0xe5caxb,_0xe5caxc,_0xe5caxd){return  new BPromise(function(_0xe5caxe,_0xe5caxf){return client[_0xc00c[25]](_0xe5caxb,_0xe5caxd)[_0xc00c[24]](function(_0xe5cax11){logger[_0xc00c[17]](_0xc00c[13],_0xe5caxc,_0xc00c[16]);logger[_0xc00c[20]](_0xc00c[18],_0xe5caxc,_0xc00c[16],JSON[_0xc00c[19]](_0xe5cax11));if(_0xe5cax11[_0xc00c[14]]){if(_0xe5cax11[_0xc00c[14]][_0xc00c[21]]=== 500){logger[_0xc00c[14]](_0xc00c[13],_0xe5caxc,_0xe5cax11[_0xc00c[14]][_0xc00c[22]]);return _0xe5caxf(_0xe5cax11[_0xc00c[14]][_0xc00c[22]])};logger[_0xc00c[14]](_0xc00c[13],_0xe5caxc,_0xe5cax11[_0xc00c[14]][_0xc00c[22]]);return _0xe5caxe(_0xe5cax11[_0xc00c[14]][_0xc00c[22]])}else {logger[_0xc00c[17]](_0xc00c[13],_0xe5caxc,_0xc00c[16]);_0xe5caxe(_0xe5cax11[_0xc00c[23]][_0xc00c[22]])}})[_0xc00c[15]](function(_0xe5cax10){logger[_0xc00c[14]](_0xc00c[13],_0xe5caxc,_0xe5cax10);_0xe5caxf(_0xe5cax10)})})}
\ No newline at end of file
+var _0x45be=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x45be[0];var _=require(_0x45be[1]);var util=require(_0x45be[2]);var moment=require(_0x45be[3]);var BPromise=require(_0x45be[4]);var db=require(_0x45be[6])[_0x45be[5]];var utils=require(_0x45be[7]);var logger=require(_0x45be[9])(_0x45be[8]);var jayson=require(_0x45be[10]);var client=jayson[_0x45be[12]][_0x45be[11]]({port:9002});function respondWithRpcPromise(_0xe778xb,_0xe778xc,_0xe778xd){return  new BPromise(function(_0xe778xe,_0xe778xf){return client[_0x45be[25]](_0xe778xb,_0xe778xd)[_0x45be[24]](function(_0xe778x11){logger[_0x45be[17]](_0x45be[13],_0xe778xc,_0x45be[16]);logger[_0x45be[20]](_0x45be[18],_0xe778xc,_0x45be[16],JSON[_0x45be[19]](_0xe778x11));if(_0xe778x11[_0x45be[14]]){if(_0xe778x11[_0x45be[14]][_0x45be[21]]=== 500){logger[_0x45be[14]](_0x45be[13],_0xe778xc,_0xe778x11[_0x45be[14]][_0x45be[22]]);return _0xe778xf(_0xe778x11[_0x45be[14]][_0x45be[22]])};logger[_0x45be[14]](_0x45be[13],_0xe778xc,_0xe778x11[_0x45be[14]][_0x45be[22]]);return _0xe778xe(_0xe778x11[_0x45be[14]][_0x45be[22]])}else {logger[_0x45be[17]](_0x45be[13],_0xe778xc,_0x45be[16]);_0xe778xe(_0xe778x11[_0x45be[23]][_0x45be[22]])}})[_0x45be[15]](function(_0xe778x10){logger[_0x45be[14]](_0x45be[13],_0xe778xc,_0xe778x10);_0xe778xf(_0xe778x10)})})}
\ No newline at end of file
index 8d4ded6..c0bfea7 100644 (file)
@@ -1 +1 @@
-var _0x73da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x73da[0];var multer=require(_0x73da[1]);var util=require(_0x73da[2]);var path=require(_0x73da[3]);var express=require(_0x73da[4]);var router=express.Router();var auth=require(_0x73da[5]);var config=require(_0x73da[6]);var controller=require(_0x73da[7]);router[_0x73da[11]](_0x73da[8],auth[_0x73da[9]](),controller[_0x73da[10]]);router[_0x73da[13]](_0x73da[8],auth[_0x73da[9]](),controller[_0x73da[12]]);module[_0x73da[14]]= router
\ No newline at end of file
+var _0x4439=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4439[0];var multer=require(_0x4439[1]);var util=require(_0x4439[2]);var path=require(_0x4439[3]);var express=require(_0x4439[4]);var router=express.Router();var auth=require(_0x4439[5]);var config=require(_0x4439[6]);var controller=require(_0x4439[7]);router[_0x4439[11]](_0x4439[8],auth[_0x4439[9]](),controller[_0x4439[10]]);router[_0x4439[13]](_0x4439[8],auth[_0x4439[9]](),controller[_0x4439[12]]);module[_0x4439[14]]= router
\ No newline at end of file
index 6820ad7..fa86293 100644 (file)
@@ -1 +1 @@
-var _0xee93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52"];_0xee93[0];var Sequelize=require(_0xee93[1]);module[_0xee93[2]]= {name:{type:Sequelize[_0xee93[3]],allowNull:false,unique:_0xee93[4]},description:{type:Sequelize[_0xee93[3]]},interval:{type:Sequelize[_0xee93[5]],defaultValue:5,allowNull:false,validate:{min:5}}}
\ No newline at end of file
+var _0x3d17=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52"];_0x3d17[0];var Sequelize=require(_0x3d17[1]);module[_0x3d17[2]]= {name:{type:Sequelize[_0x3d17[3]],allowNull:false,unique:_0x3d17[4]},description:{type:Sequelize[_0x3d17[3]]},interval:{type:Sequelize[_0x3d17[5]],defaultValue:5,allowNull:false,validate:{min:5}}}
\ No newline at end of file
index 0d6f681..716683c 100644 (file)
@@ -1 +1 @@
-var _0x77a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x72\x75\x6E","\x70\x69\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x72\x75\x6E","\x6A\x6F\x69\x6E","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x61\x64\x64\x49\x74\x65\x6D","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x64","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x67\x65\x74\x49\x74\x65\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x77a8[0];var jsonpatch=require(_0x77a8[1]);var rp=require(_0x77a8[2]);var moment=require(_0x77a8[3]);var BPromise=require(_0x77a8[4]);var util=require(_0x77a8[5]);var path=require(_0x77a8[6]);var sox=require(_0x77a8[7]);var ejs=require(_0x77a8[8]);var fs=require(_0x77a8[9]);var _=require(_0x77a8[10]);var squel=require(_0x77a8[11]);var crypto=require(_0x77a8[12]);var jsforce=require(_0x77a8[13]);var toCsv=require(_0x77a8[14]);var qs=require(_0x77a8[15]);var logger=require(_0x77a8[17])(_0x77a8[16]);var utils=require(_0x77a8[18]);var config=require(_0x77a8[19]);var db=require(_0x77a8[21])[_0x77a8[20]];function respondWithStatusCode(_0x321dx15,_0x321dx16,_0x321dx17){_0x321dx16= _0x321dx16|| 204;return function(_0x321dx18){if(_0x321dx18){logger[_0x77a8[24]](_0x77a8[22],_0x321dx17,_0x321dx16,_0x77a8[23]);logger[_0x77a8[26]](_0x77a8[25],_0x321dx17,_0x321dx16,_0x77a8[23]);return _0x321dx15[_0x77a8[27]](_0x321dx16)};return _0x321dx15[_0x77a8[29]](304)[_0x77a8[28]]()}}function respondWithResult(_0x321dx15,_0x321dx16,_0x321dx17){_0x321dx16= _0x321dx16|| 200;return function(_0x321dx18){if(_0x321dx18){logger[_0x77a8[24]](_0x77a8[22],_0x321dx17,_0x321dx16,_0x77a8[30]);logger[_0x77a8[26]](_0x77a8[25],_0x321dx17,_0x321dx16,_0x77a8[30],JSON[_0x77a8[31]](_0x321dx18));return _0x321dx15[_0x77a8[29]](_0x321dx16)[_0x77a8[32]](_0x321dx18)};return _0x321dx15[_0x77a8[29]](304)[_0x77a8[28]]()}}function respondWithFilteredResult(_0x321dx15,_0x321dx1b,_0x321dx17){return function(_0x321dx18){if(_0x321dx18){var _0x321dx1c=_0x321dx18[_0x77a8[33]],_0x321dx1d=_0x321dx1b[_0x77a8[34]],_0x321dx1e=_0x321dx1b[_0x77a8[34]]+ _0x321dx1b[_0x77a8[35]],_0x321dx16;if(_0x321dx1e>= _0x321dx1c){_0x321dx1e= _0x321dx1c;_0x321dx16= 200}else {_0x321dx16= 206};_0x321dx15[_0x77a8[29]](_0x321dx16);logger[_0x77a8[24]](_0x77a8[22],_0x321dx17,_0x321dx16,_0x77a8[36]);logger[_0x77a8[26]](_0x77a8[25],_0x321dx17,_0x321dx16,_0x77a8[30],JSON[_0x77a8[31]](_0x321dx18));return _0x321dx15[_0x77a8[40]](_0x77a8[37],_0x321dx1d+ _0x77a8[38]+ _0x321dx1e+ _0x77a8[39]+ _0x321dx1c)[_0x77a8[32]](_0x321dx18)};return null}}function patchUpdates(_0x321dx20){return function(_0x321dx18){try{jsonpatch[_0x77a8[41]](_0x321dx18,_0x321dx20,true)}catch(err){return BPromise[_0x77a8[42]](err)};return _0x321dx18[_0x77a8[43]]()}}function saveUpdates(_0x321dx22,_0x321dx16,_0x321dx17){return function(_0x321dx18){if(_0x321dx18){return _0x321dx18[_0x77a8[46]](_0x321dx22)[_0x77a8[45]](function(_0x321dx23){logger[_0x77a8[24]](_0x77a8[22],_0x321dx17,_0x321dx16,_0x77a8[44]);logger[_0x77a8[26]](_0x77a8[25],_0x321dx17,_0x321dx16,_0x77a8[44],JSON[_0x77a8[31]](_0x321dx18));return _0x321dx23})};return null}}function removeEntity(_0x321dx15,_0x321dx16,_0x321dx17){return function(_0x321dx18){if(_0x321dx18){return _0x321dx18[_0x77a8[48]]()[_0x77a8[45]](function(){logger[_0x77a8[24]](_0x77a8[22],_0x321dx17,_0x321dx16,_0x77a8[47]);logger[_0x77a8[26]](_0x77a8[25],_0x321dx17,_0x321dx16,_0x77a8[47],JSON[_0x77a8[31]](_0x321dx18));_0x321dx15[_0x77a8[29]](204)[_0x77a8[28]]()})}}}function handleEntityNotFound(_0x321dx15,_0x321dx16,_0x321dx17){return function(_0x321dx18){if(!_0x321dx18){logger[_0x77a8[50]](_0x77a8[22],_0x321dx17,404,_0x77a8[49]);_0x321dx15[_0x77a8[29]](404)[_0x77a8[28]]();return null};return _0x321dx18}}function handleError(_0x321dx15,_0x321dx16,_0x321dx17){_0x321dx16= _0x321dx16|| 500;return function(_0x321dx27){logger[_0x77a8[50]](_0x77a8[22],_0x321dx17,_0x321dx16,JSON[_0x77a8[31]](_0x321dx27));delete _0x321dx27[_0x77a8[51]];_0x321dx15[_0x77a8[29]](_0x321dx16)[_0x77a8[52]](_0x321dx27)}}exports[_0x77a8[53]]= function(_0x321dx28,_0x321dx15){var _0x321dx1b={},_0x321dx29={};_0x321dx29[_0x77a8[54]]= _[_0x77a8[57]](db[_0x77a8[56]][_0x77a8[55]]);_0x321dx29[_0x77a8[58]]= _[_0x77a8[57]](_0x321dx28[_0x77a8[58]]);_0x321dx29[_0x77a8[59]]= _[_0x77a8[60]](_0x321dx29[_0x77a8[54]],_0x321dx29[_0x77a8[58]]);_0x321dx1b[_0x77a8[61]]= _[_0x77a8[60]](_0x321dx29[_0x77a8[54]],qs[_0x77a8[62]](_0x321dx28[_0x77a8[58]][_0x77a8[62]]));_0x321dx1b[_0x77a8[61]]= (_0x321dx1b[_0x77a8[61]][_0x77a8[63]])?_0x321dx1b[_0x77a8[61]]:_0x321dx29[_0x77a8[54]];if(!_0x321dx28[_0x77a8[58]][_0x77a8[65]](_0x77a8[64])){_0x321dx1b[_0x77a8[35]]= qs[_0x77a8[35]](_0x321dx28[_0x77a8[58]][_0x77a8[35]]);_0x321dx1b[_0x77a8[34]]= qs[_0x77a8[34]](_0x321dx28[_0x77a8[58]][_0x77a8[34]])};_0x321dx1b[_0x77a8[66]]= qs[_0x77a8[67]](_0x321dx28[_0x77a8[58]][_0x77a8[67]]);_0x321dx1b[_0x77a8[68]]= qs[_0x77a8[59]](_[_0x77a8[69]](_0x321dx28[_0x77a8[58]],_0x321dx29[_0x77a8[59]]));if(_0x321dx28[_0x77a8[58]][_0x77a8[70]]){_0x321dx1b[_0x77a8[68]]= _[_0x77a8[73]](_0x321dx1b[_0x77a8[68]],{$or:_[_0x77a8[72]](_0x321dx1b[_0x77a8[61]],function(_0x321dx2a){var _0x321dx2b={};_0x321dx2b[_0x321dx2a]= {$like:_0x77a8[71]+ _0x321dx28[_0x77a8[58]][_0x77a8[70]]+ _0x77a8[71]};return _0x321dx2b})})};_0x321dx1b= _[_0x77a8[73]]({},_0x321dx1b,_0x321dx28[_0x77a8[74]]);return db[_0x77a8[56]][_0x77a8[76]](_0x321dx1b)[_0x77a8[45]](respondWithFilteredResult(_0x321dx15,_0x321dx1b,_0x77a8[53]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[53]))};exports[_0x77a8[77]]= function(_0x321dx28,_0x321dx15){var _0x321dx1b={raw:false,where:{id:_0x321dx28[_0x77a8[79]][_0x77a8[78]]}},_0x321dx29={};_0x321dx29[_0x77a8[54]]= _[_0x77a8[57]](db[_0x77a8[56]][_0x77a8[55]]);_0x321dx29[_0x77a8[58]]= _[_0x77a8[57]](_0x321dx28[_0x77a8[58]]);_0x321dx29[_0x77a8[59]]= _[_0x77a8[60]](_0x321dx29[_0x77a8[54]],_0x321dx29[_0x77a8[58]]);_0x321dx1b[_0x77a8[61]]= _[_0x77a8[60]](_0x321dx29[_0x77a8[54]],qs[_0x77a8[62]](_0x321dx28[_0x77a8[58]][_0x77a8[62]]));_0x321dx1b[_0x77a8[61]]= (_0x321dx1b[_0x77a8[61]][_0x77a8[63]])?_0x321dx1b[_0x77a8[61]]:_0x321dx29[_0x77a8[54]];_0x321dx1b= _[_0x77a8[73]]({},_0x321dx1b,_0x321dx28[_0x77a8[74]]);return db[_0x77a8[56]][_0x77a8[80]](_0x321dx1b)[_0x77a8[45]](handleEntityNotFound(_0x321dx15,null,_0x77a8[77]))[_0x77a8[45]](respondWithResult(_0x321dx15,null,_0x77a8[77]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[77]))};exports[_0x77a8[81]]= function(_0x321dx28,_0x321dx15){return db[_0x77a8[56]][_0x77a8[81]](_0x321dx28[_0x77a8[82]],{})[_0x77a8[45]](respondWithResult(_0x321dx15,201,_0x77a8[81]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[81]))};exports[_0x77a8[46]]= function(_0x321dx28,_0x321dx15){if(_0x321dx28[_0x77a8[82]][_0x77a8[78]]){delete _0x321dx28[_0x77a8[82]][_0x77a8[78]]};return db[_0x77a8[56]][_0x77a8[80]]({where:{id:_0x321dx28[_0x77a8[79]][_0x77a8[78]]}})[_0x77a8[45]](handleEntityNotFound(_0x321dx15,null,_0x77a8[46]))[_0x77a8[45]](saveUpdates(_0x321dx28[_0x77a8[82]],null,_0x77a8[46]))[_0x77a8[45]](respondWithResult(_0x321dx15,null,_0x77a8[46]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[46]))};exports[_0x77a8[48]]= function(_0x321dx28,_0x321dx15){return db[_0x77a8[56]][_0x77a8[80]]({where:{id:_0x321dx28[_0x77a8[79]][_0x77a8[78]]}})[_0x77a8[45]](handleEntityNotFound(_0x321dx15,null,_0x77a8[48]))[_0x77a8[45]](removeEntity(_0x321dx15,null,_0x77a8[48]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[48]))};exports[_0x77a8[83]]= function(_0x321dx28,_0x321dx15,_0x321dx2c){var _0x321dx2d;return db[_0x77a8[56]][_0x77a8[80]]({where:{id:_0x321dx28[_0x77a8[79]][_0x77a8[78]]},attributes:[_0x77a8[78]]})[_0x77a8[45]](handleEntityNotFound(_0x321dx15,null,_0x77a8[83]))[_0x77a8[45]](function(_0x321dx18){if(_0x321dx18){require(_0x77a8[88])[_0x77a8[87]](path[_0x77a8[86]](__dirname,_0x77a8[85]),[_0x321dx18[_0x77a8[78]]])}})[_0x77a8[45]](function(_0x321dx18){if(_0x321dx18){return {pid:_0x321dx18[_0x77a8[84]]}}})[_0x77a8[45]](respondWithResult(_0x321dx15,null,_0x77a8[83]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[83]))};exports[_0x77a8[89]]= function(_0x321dx28,_0x321dx15,_0x321dx2c){if(_0x321dx28[_0x77a8[82]][_0x77a8[78]]){delete _0x321dx28[_0x77a8[82]][_0x77a8[78]]};return db[_0x77a8[56]][_0x77a8[80]]({where:{id:_0x321dx28[_0x77a8[79]][_0x77a8[78]]}})[_0x77a8[45]](handleEntityNotFound(_0x321dx15,null,_0x77a8[89]))[_0x77a8[45]](function(_0x321dx18){if(_0x321dx18){_0x321dx28[_0x77a8[82]][_0x77a8[90]]= _0x321dx18[_0x77a8[78]];return db[_0x77a8[91]][_0x77a8[81]](_0x321dx28[_0x77a8[82]])}})[_0x77a8[45]](respondWithResult(_0x321dx15,null,_0x77a8[89]))[_0x77a8[75]](handleError(_0x321dx15,null,_0x77a8[89]))};exports[_0x77a8[92]]= function(_0x321dx28,_0x321dx18,_0x321dx2c){var _0x321dx1b={};var _0x321dx29={};var _0x321dx2e;var _0x321dx1c;return db[_0x77a8[56]][_0x77a8[93]]({where:{id:_0x321dx28[_0x77a8[79]][_0x77a8[78]]}})[_0x77a8[45]](handleEntityNotFound(_0x321dx18,null,_0x77a8[92]))[_0x77a8[45]](function(_0x321dx18){if(_0x321dx18){_0x321dx2e= _0x321dx18;_0x321dx29[_0x77a8[54]]= _[_0x77a8[57]](db[_0x77a8[91]][_0x77a8[55]]);_0x321dx29[_0x77a8[58]]= _[_0x77a8[57]](_0x321dx28[_0x77a8[58]]);_0x321dx29[_0x77a8[59]]= _[_0x77a8[60]](_0x321dx29[_0x77a8[54]],_0x321dx29[_0x77a8[58]]);_0x321dx1b[_0x77a8[61]]= _[_0x77a8[60]](_0x321dx29[_0x77a8[54]],qs[_0x77a8[62]](_0x321dx28[_0x77a8[58]][_0x77a8[62]]));_0x321dx1b[_0x77a8[61]]= (_0x321dx1b[_0x77a8[61]][_0x77a8[63]])?_0x321dx1b[_0x77a8[61]]:_0x321dx29[_0x77a8[54]];_0x321dx1b[_0x77a8[66]]= qs[_0x77a8[67]](_0x321dx28[_0x77a8[58]][_0x77a8[67]]);_0x321dx1b[_0x77a8[68]]= qs[_0x77a8[59]](_[_0x77a8[69]](_0x321dx28[_0x77a8[58]],_0x321dx29[_0x77a8[59]]));if(_0x321dx28[_0x77a8[58]][_0x77a8[70]]){_0x321dx1b[_0x77a8[68]]= _[_0x77a8[73]](_0x321dx1b[_0x77a8[68]],{$or:_[_0x77a8[72]](_0x321dx1b[_0x77a8[61]],function(_0x321dx2a){var _0x321dx2b={};_0x321dx2b[_0x321dx2a]= {$like:_0x77a8[71]+ _0x321dx28[_0x77a8[58]][_0x77a8[70]]+ _0x77a8[71]};return _0x321dx2b})})};_0x321dx1b= _[_0x77a8[73]]({},_0x321dx1b,_0x321dx28[_0x77a8[74]]);return _0x321dx2e[_0x77a8[92]](_0x321dx1b)}})[_0x77a8[45]](function(_0x321dx30){if(_0x321dx30){_0x321dx1c= _0x321dx30[_0x77a8[63]];if(!_0x321dx28[_0x77a8[58]][_0x77a8[65]](_0x77a8[64])){_0x321dx1b[_0x77a8[35]]= qs[_0x77a8[35]](_0x321dx28[_0x77a8[58]][_0x77a8[35]]);_0x321dx1b[_0x77a8[34]]= qs[_0x77a8[34]](_0x321dx28[_0x77a8[58]][_0x77a8[34]])};return _0x321dx2e[_0x77a8[92]](_0x321dx1b)}})[_0x77a8[45]](function(_0x321dx2f){return _0x321dx2f?{count:_0x321dx1c,rows:_0x321dx2f}:null})[_0x77a8[45]](respondWithResult(_0x321dx18,null,_0x77a8[92]))[_0x77a8[75]](handleError(_0x321dx18,null,_0x77a8[92]))}
\ No newline at end of file
+var _0x4800=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x72\x75\x6E","\x70\x69\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x72\x75\x6E","\x6A\x6F\x69\x6E","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x61\x64\x64\x49\x74\x65\x6D","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x64","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x67\x65\x74\x49\x74\x65\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x4800[0];var jsonpatch=require(_0x4800[1]);var rp=require(_0x4800[2]);var moment=require(_0x4800[3]);var BPromise=require(_0x4800[4]);var util=require(_0x4800[5]);var path=require(_0x4800[6]);var sox=require(_0x4800[7]);var ejs=require(_0x4800[8]);var fs=require(_0x4800[9]);var _=require(_0x4800[10]);var squel=require(_0x4800[11]);var crypto=require(_0x4800[12]);var jsforce=require(_0x4800[13]);var toCsv=require(_0x4800[14]);var qs=require(_0x4800[15]);var logger=require(_0x4800[17])(_0x4800[16]);var utils=require(_0x4800[18]);var config=require(_0x4800[19]);var db=require(_0x4800[21])[_0x4800[20]];function respondWithStatusCode(_0x4073x15,_0x4073x16,_0x4073x17){_0x4073x16= _0x4073x16|| 204;return function(_0x4073x18){if(_0x4073x18){logger[_0x4800[24]](_0x4800[22],_0x4073x17,_0x4073x16,_0x4800[23]);logger[_0x4800[26]](_0x4800[25],_0x4073x17,_0x4073x16,_0x4800[23]);return _0x4073x15[_0x4800[27]](_0x4073x16)};return _0x4073x15[_0x4800[29]](304)[_0x4800[28]]()}}function respondWithResult(_0x4073x15,_0x4073x16,_0x4073x17){_0x4073x16= _0x4073x16|| 200;return function(_0x4073x18){if(_0x4073x18){logger[_0x4800[24]](_0x4800[22],_0x4073x17,_0x4073x16,_0x4800[30]);logger[_0x4800[26]](_0x4800[25],_0x4073x17,_0x4073x16,_0x4800[30],JSON[_0x4800[31]](_0x4073x18));return _0x4073x15[_0x4800[29]](_0x4073x16)[_0x4800[32]](_0x4073x18)};return _0x4073x15[_0x4800[29]](304)[_0x4800[28]]()}}function respondWithFilteredResult(_0x4073x15,_0x4073x1b,_0x4073x17){return function(_0x4073x18){if(_0x4073x18){var _0x4073x1c=_0x4073x18[_0x4800[33]],_0x4073x1d=_0x4073x1b[_0x4800[34]],_0x4073x1e=_0x4073x1b[_0x4800[34]]+ _0x4073x1b[_0x4800[35]],_0x4073x16;if(_0x4073x1e>= _0x4073x1c){_0x4073x1e= _0x4073x1c;_0x4073x16= 200}else {_0x4073x16= 206};_0x4073x15[_0x4800[29]](_0x4073x16);logger[_0x4800[24]](_0x4800[22],_0x4073x17,_0x4073x16,_0x4800[36]);logger[_0x4800[26]](_0x4800[25],_0x4073x17,_0x4073x16,_0x4800[30],JSON[_0x4800[31]](_0x4073x18));return _0x4073x15[_0x4800[40]](_0x4800[37],_0x4073x1d+ _0x4800[38]+ _0x4073x1e+ _0x4800[39]+ _0x4073x1c)[_0x4800[32]](_0x4073x18)};return null}}function patchUpdates(_0x4073x20){return function(_0x4073x18){try{jsonpatch[_0x4800[41]](_0x4073x18,_0x4073x20,true)}catch(err){return BPromise[_0x4800[42]](err)};return _0x4073x18[_0x4800[43]]()}}function saveUpdates(_0x4073x22,_0x4073x16,_0x4073x17){return function(_0x4073x18){if(_0x4073x18){return _0x4073x18[_0x4800[46]](_0x4073x22)[_0x4800[45]](function(_0x4073x23){logger[_0x4800[24]](_0x4800[22],_0x4073x17,_0x4073x16,_0x4800[44]);logger[_0x4800[26]](_0x4800[25],_0x4073x17,_0x4073x16,_0x4800[44],JSON[_0x4800[31]](_0x4073x18));return _0x4073x23})};return null}}function removeEntity(_0x4073x15,_0x4073x16,_0x4073x17){return function(_0x4073x18){if(_0x4073x18){return _0x4073x18[_0x4800[48]]()[_0x4800[45]](function(){logger[_0x4800[24]](_0x4800[22],_0x4073x17,_0x4073x16,_0x4800[47]);logger[_0x4800[26]](_0x4800[25],_0x4073x17,_0x4073x16,_0x4800[47],JSON[_0x4800[31]](_0x4073x18));_0x4073x15[_0x4800[29]](204)[_0x4800[28]]()})}}}function handleEntityNotFound(_0x4073x15,_0x4073x16,_0x4073x17){return function(_0x4073x18){if(!_0x4073x18){logger[_0x4800[50]](_0x4800[22],_0x4073x17,404,_0x4800[49]);_0x4073x15[_0x4800[29]](404)[_0x4800[28]]();return null};return _0x4073x18}}function handleError(_0x4073x15,_0x4073x16,_0x4073x17){_0x4073x16= _0x4073x16|| 500;return function(_0x4073x27){logger[_0x4800[50]](_0x4800[22],_0x4073x17,_0x4073x16,JSON[_0x4800[31]](_0x4073x27));delete _0x4073x27[_0x4800[51]];_0x4073x15[_0x4800[29]](_0x4073x16)[_0x4800[52]](_0x4073x27)}}exports[_0x4800[53]]= function(_0x4073x28,_0x4073x15){var _0x4073x1b={},_0x4073x29={};_0x4073x29[_0x4800[54]]= _[_0x4800[57]](db[_0x4800[56]][_0x4800[55]]);_0x4073x29[_0x4800[58]]= _[_0x4800[57]](_0x4073x28[_0x4800[58]]);_0x4073x29[_0x4800[59]]= _[_0x4800[60]](_0x4073x29[_0x4800[54]],_0x4073x29[_0x4800[58]]);_0x4073x1b[_0x4800[61]]= _[_0x4800[60]](_0x4073x29[_0x4800[54]],qs[_0x4800[62]](_0x4073x28[_0x4800[58]][_0x4800[62]]));_0x4073x1b[_0x4800[61]]= (_0x4073x1b[_0x4800[61]][_0x4800[63]])?_0x4073x1b[_0x4800[61]]:_0x4073x29[_0x4800[54]];if(!_0x4073x28[_0x4800[58]][_0x4800[65]](_0x4800[64])){_0x4073x1b[_0x4800[35]]= qs[_0x4800[35]](_0x4073x28[_0x4800[58]][_0x4800[35]]);_0x4073x1b[_0x4800[34]]= qs[_0x4800[34]](_0x4073x28[_0x4800[58]][_0x4800[34]])};_0x4073x1b[_0x4800[66]]= qs[_0x4800[67]](_0x4073x28[_0x4800[58]][_0x4800[67]]);_0x4073x1b[_0x4800[68]]= qs[_0x4800[59]](_[_0x4800[69]](_0x4073x28[_0x4800[58]],_0x4073x29[_0x4800[59]]));if(_0x4073x28[_0x4800[58]][_0x4800[70]]){_0x4073x1b[_0x4800[68]]= _[_0x4800[73]](_0x4073x1b[_0x4800[68]],{$or:_[_0x4800[72]](_0x4073x1b[_0x4800[61]],function(_0x4073x2a){var _0x4073x2b={};_0x4073x2b[_0x4073x2a]= {$like:_0x4800[71]+ _0x4073x28[_0x4800[58]][_0x4800[70]]+ _0x4800[71]};return _0x4073x2b})})};_0x4073x1b= _[_0x4800[73]]({},_0x4073x1b,_0x4073x28[_0x4800[74]]);return db[_0x4800[56]][_0x4800[76]](_0x4073x1b)[_0x4800[45]](respondWithFilteredResult(_0x4073x15,_0x4073x1b,_0x4800[53]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[53]))};exports[_0x4800[77]]= function(_0x4073x28,_0x4073x15){var _0x4073x1b={raw:false,where:{id:_0x4073x28[_0x4800[79]][_0x4800[78]]}},_0x4073x29={};_0x4073x29[_0x4800[54]]= _[_0x4800[57]](db[_0x4800[56]][_0x4800[55]]);_0x4073x29[_0x4800[58]]= _[_0x4800[57]](_0x4073x28[_0x4800[58]]);_0x4073x29[_0x4800[59]]= _[_0x4800[60]](_0x4073x29[_0x4800[54]],_0x4073x29[_0x4800[58]]);_0x4073x1b[_0x4800[61]]= _[_0x4800[60]](_0x4073x29[_0x4800[54]],qs[_0x4800[62]](_0x4073x28[_0x4800[58]][_0x4800[62]]));_0x4073x1b[_0x4800[61]]= (_0x4073x1b[_0x4800[61]][_0x4800[63]])?_0x4073x1b[_0x4800[61]]:_0x4073x29[_0x4800[54]];_0x4073x1b= _[_0x4800[73]]({},_0x4073x1b,_0x4073x28[_0x4800[74]]);return db[_0x4800[56]][_0x4800[80]](_0x4073x1b)[_0x4800[45]](handleEntityNotFound(_0x4073x15,null,_0x4800[77]))[_0x4800[45]](respondWithResult(_0x4073x15,null,_0x4800[77]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[77]))};exports[_0x4800[81]]= function(_0x4073x28,_0x4073x15){return db[_0x4800[56]][_0x4800[81]](_0x4073x28[_0x4800[82]],{})[_0x4800[45]](respondWithResult(_0x4073x15,201,_0x4800[81]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[81]))};exports[_0x4800[46]]= function(_0x4073x28,_0x4073x15){if(_0x4073x28[_0x4800[82]][_0x4800[78]]){delete _0x4073x28[_0x4800[82]][_0x4800[78]]};return db[_0x4800[56]][_0x4800[80]]({where:{id:_0x4073x28[_0x4800[79]][_0x4800[78]]}})[_0x4800[45]](handleEntityNotFound(_0x4073x15,null,_0x4800[46]))[_0x4800[45]](saveUpdates(_0x4073x28[_0x4800[82]],null,_0x4800[46]))[_0x4800[45]](respondWithResult(_0x4073x15,null,_0x4800[46]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[46]))};exports[_0x4800[48]]= function(_0x4073x28,_0x4073x15){return db[_0x4800[56]][_0x4800[80]]({where:{id:_0x4073x28[_0x4800[79]][_0x4800[78]]}})[_0x4800[45]](handleEntityNotFound(_0x4073x15,null,_0x4800[48]))[_0x4800[45]](removeEntity(_0x4073x15,null,_0x4800[48]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[48]))};exports[_0x4800[83]]= function(_0x4073x28,_0x4073x15,_0x4073x2c){var _0x4073x2d;return db[_0x4800[56]][_0x4800[80]]({where:{id:_0x4073x28[_0x4800[79]][_0x4800[78]]},attributes:[_0x4800[78]]})[_0x4800[45]](handleEntityNotFound(_0x4073x15,null,_0x4800[83]))[_0x4800[45]](function(_0x4073x18){if(_0x4073x18){require(_0x4800[88])[_0x4800[87]](path[_0x4800[86]](__dirname,_0x4800[85]),[_0x4073x18[_0x4800[78]]])}})[_0x4800[45]](function(_0x4073x18){if(_0x4073x18){return {pid:_0x4073x18[_0x4800[84]]}}})[_0x4800[45]](respondWithResult(_0x4073x15,null,_0x4800[83]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[83]))};exports[_0x4800[89]]= function(_0x4073x28,_0x4073x15,_0x4073x2c){if(_0x4073x28[_0x4800[82]][_0x4800[78]]){delete _0x4073x28[_0x4800[82]][_0x4800[78]]};return db[_0x4800[56]][_0x4800[80]]({where:{id:_0x4073x28[_0x4800[79]][_0x4800[78]]}})[_0x4800[45]](handleEntityNotFound(_0x4073x15,null,_0x4800[89]))[_0x4800[45]](function(_0x4073x18){if(_0x4073x18){_0x4073x28[_0x4800[82]][_0x4800[90]]= _0x4073x18[_0x4800[78]];return db[_0x4800[91]][_0x4800[81]](_0x4073x28[_0x4800[82]])}})[_0x4800[45]](respondWithResult(_0x4073x15,null,_0x4800[89]))[_0x4800[75]](handleError(_0x4073x15,null,_0x4800[89]))};exports[_0x4800[92]]= function(_0x4073x28,_0x4073x18,_0x4073x2c){var _0x4073x1b={};var _0x4073x29={};var _0x4073x2e;var _0x4073x1c;return db[_0x4800[56]][_0x4800[93]]({where:{id:_0x4073x28[_0x4800[79]][_0x4800[78]]}})[_0x4800[45]](handleEntityNotFound(_0x4073x18,null,_0x4800[92]))[_0x4800[45]](function(_0x4073x18){if(_0x4073x18){_0x4073x2e= _0x4073x18;_0x4073x29[_0x4800[54]]= _[_0x4800[57]](db[_0x4800[91]][_0x4800[55]]);_0x4073x29[_0x4800[58]]= _[_0x4800[57]](_0x4073x28[_0x4800[58]]);_0x4073x29[_0x4800[59]]= _[_0x4800[60]](_0x4073x29[_0x4800[54]],_0x4073x29[_0x4800[58]]);_0x4073x1b[_0x4800[61]]= _[_0x4800[60]](_0x4073x29[_0x4800[54]],qs[_0x4800[62]](_0x4073x28[_0x4800[58]][_0x4800[62]]));_0x4073x1b[_0x4800[61]]= (_0x4073x1b[_0x4800[61]][_0x4800[63]])?_0x4073x1b[_0x4800[61]]:_0x4073x29[_0x4800[54]];_0x4073x1b[_0x4800[66]]= qs[_0x4800[67]](_0x4073x28[_0x4800[58]][_0x4800[67]]);_0x4073x1b[_0x4800[68]]= qs[_0x4800[59]](_[_0x4800[69]](_0x4073x28[_0x4800[58]],_0x4073x29[_0x4800[59]]));if(_0x4073x28[_0x4800[58]][_0x4800[70]]){_0x4073x1b[_0x4800[68]]= _[_0x4800[73]](_0x4073x1b[_0x4800[68]],{$or:_[_0x4800[72]](_0x4073x1b[_0x4800[61]],function(_0x4073x2a){var _0x4073x2b={};_0x4073x2b[_0x4073x2a]= {$like:_0x4800[71]+ _0x4073x28[_0x4800[58]][_0x4800[70]]+ _0x4800[71]};return _0x4073x2b})})};_0x4073x1b= _[_0x4800[73]]({},_0x4073x1b,_0x4073x28[_0x4800[74]]);return _0x4073x2e[_0x4800[92]](_0x4073x1b)}})[_0x4800[45]](function(_0x4073x30){if(_0x4073x30){_0x4073x1c= _0x4073x30[_0x4800[63]];if(!_0x4073x28[_0x4800[58]][_0x4800[65]](_0x4800[64])){_0x4073x1b[_0x4800[35]]= qs[_0x4800[35]](_0x4073x28[_0x4800[58]][_0x4800[35]]);_0x4073x1b[_0x4800[34]]= qs[_0x4800[34]](_0x4073x28[_0x4800[58]][_0x4800[34]])};return _0x4073x2e[_0x4800[92]](_0x4073x1b)}})[_0x4800[45]](function(_0x4073x2f){return _0x4073x2f?{count:_0x4073x1c,rows:_0x4073x2f}:null})[_0x4800[45]](respondWithResult(_0x4073x18,null,_0x4800[92]))[_0x4800[75]](handleError(_0x4073x18,null,_0x4800[92]))}
\ No newline at end of file
index d25246a..3dca711 100644 (file)
@@ -1 +1 @@
-var _0x6d6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x6d6d[0];var _=require(_0x6d6d[1]);var util=require(_0x6d6d[2]);var logger=require(_0x6d6d[4])(_0x6d6d[3]);var attributes=require(_0x6d6d[5]);module[_0x6d6d[6]]= function(_0xd497x5,_0xd497x6){return _0xd497x5[_0x6d6d[9]](_0x6d6d[7],attributes,{tableName:_0x6d6d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe753=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xe753[0];var _=require(_0xe753[1]);var util=require(_0xe753[2]);var logger=require(_0xe753[4])(_0xe753[3]);var attributes=require(_0xe753[5]);module[_0xe753[6]]= function(_0xed7fx5,_0xed7fx6){return _0xed7fx5[_0xe753[9]](_0xe753[7],attributes,{tableName:_0xe753[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 8f1d54c..378cf0e 100644 (file)
@@ -1 +1 @@
-var _0x4801=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4801[0];var _=require(_0x4801[1]);var util=require(_0x4801[2]);var moment=require(_0x4801[3]);var BPromise=require(_0x4801[4]);var db=require(_0x4801[6])[_0x4801[5]];var utils=require(_0x4801[7]);var logger=require(_0x4801[9])(_0x4801[8]);var jayson=require(_0x4801[10]);var client=jayson[_0x4801[12]][_0x4801[11]]({port:9002});function respondWithRpcPromise(_0xd63fxb,_0xd63fxc,_0xd63fxd){return  new BPromise(function(_0xd63fxe,_0xd63fxf){return client[_0x4801[25]](_0xd63fxb,_0xd63fxd)[_0x4801[24]](function(_0xd63fx11){logger[_0x4801[17]](_0x4801[13],_0xd63fxc,_0x4801[16]);logger[_0x4801[20]](_0x4801[18],_0xd63fxc,_0x4801[16],JSON[_0x4801[19]](_0xd63fx11));if(_0xd63fx11[_0x4801[14]]){if(_0xd63fx11[_0x4801[14]][_0x4801[21]]=== 500){logger[_0x4801[14]](_0x4801[13],_0xd63fxc,_0xd63fx11[_0x4801[14]][_0x4801[22]]);return _0xd63fxf(_0xd63fx11[_0x4801[14]][_0x4801[22]])};logger[_0x4801[14]](_0x4801[13],_0xd63fxc,_0xd63fx11[_0x4801[14]][_0x4801[22]]);return _0xd63fxe(_0xd63fx11[_0x4801[14]][_0x4801[22]])}else {logger[_0x4801[17]](_0x4801[13],_0xd63fxc,_0x4801[16]);_0xd63fxe(_0xd63fx11[_0x4801[23]][_0x4801[22]])}})[_0x4801[15]](function(_0xd63fx10){logger[_0x4801[14]](_0x4801[13],_0xd63fxc,_0xd63fx10);_0xd63fxf(_0xd63fx10)})})}
\ No newline at end of file
+var _0xc2a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc2a2[0];var _=require(_0xc2a2[1]);var util=require(_0xc2a2[2]);var moment=require(_0xc2a2[3]);var BPromise=require(_0xc2a2[4]);var db=require(_0xc2a2[6])[_0xc2a2[5]];var utils=require(_0xc2a2[7]);var logger=require(_0xc2a2[9])(_0xc2a2[8]);var jayson=require(_0xc2a2[10]);var client=jayson[_0xc2a2[12]][_0xc2a2[11]]({port:9002});function respondWithRpcPromise(_0x5708xb,_0x5708xc,_0x5708xd){return  new BPromise(function(_0x5708xe,_0x5708xf){return client[_0xc2a2[25]](_0x5708xb,_0x5708xd)[_0xc2a2[24]](function(_0x5708x11){logger[_0xc2a2[17]](_0xc2a2[13],_0x5708xc,_0xc2a2[16]);logger[_0xc2a2[20]](_0xc2a2[18],_0x5708xc,_0xc2a2[16],JSON[_0xc2a2[19]](_0x5708x11));if(_0x5708x11[_0xc2a2[14]]){if(_0x5708x11[_0xc2a2[14]][_0xc2a2[21]]=== 500){logger[_0xc2a2[14]](_0xc2a2[13],_0x5708xc,_0x5708x11[_0xc2a2[14]][_0xc2a2[22]]);return _0x5708xf(_0x5708x11[_0xc2a2[14]][_0xc2a2[22]])};logger[_0xc2a2[14]](_0xc2a2[13],_0x5708xc,_0x5708x11[_0xc2a2[14]][_0xc2a2[22]]);return _0x5708xe(_0x5708x11[_0xc2a2[14]][_0xc2a2[22]])}else {logger[_0xc2a2[17]](_0xc2a2[13],_0x5708xc,_0xc2a2[16]);_0x5708xe(_0x5708x11[_0xc2a2[23]][_0xc2a2[22]])}})[_0xc2a2[15]](function(_0x5708x10){logger[_0xc2a2[14]](_0xc2a2[13],_0x5708xc,_0x5708x10);_0x5708xf(_0x5708x10)})})}
\ No newline at end of file
index cef5465..5b245a8 100644 (file)
@@ -1 +1 @@
-var _0x512f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x69\x74\x65\x6D\x73","\x67\x65\x74\x49\x74\x65\x6D\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x74\x65\x6D","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x512f[0];var multer=require(_0x512f[1]);var util=require(_0x512f[2]);var path=require(_0x512f[3]);var express=require(_0x512f[4]);var router=express.Router();var auth=require(_0x512f[5]);var config=require(_0x512f[6]);var controller=require(_0x512f[7]);router[_0x512f[11]](_0x512f[8],auth[_0x512f[9]](),controller[_0x512f[10]]);router[_0x512f[11]](_0x512f[12],auth[_0x512f[9]](),controller[_0x512f[13]]);router[_0x512f[11]](_0x512f[14],auth[_0x512f[9]](),controller[_0x512f[15]]);router[_0x512f[11]](_0x512f[16],auth[_0x512f[9]](),controller[_0x512f[17]]);router[_0x512f[19]](_0x512f[8],auth[_0x512f[9]](),controller[_0x512f[18]]);router[_0x512f[19]](_0x512f[16],auth[_0x512f[9]](),controller[_0x512f[20]]);router[_0x512f[22]](_0x512f[12],auth[_0x512f[9]](),controller[_0x512f[21]]);router[_0x512f[24]](_0x512f[12],auth[_0x512f[9]](),controller[_0x512f[23]]);module[_0x512f[25]]= router
\ No newline at end of file
+var _0x654e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x69\x74\x65\x6D\x73","\x67\x65\x74\x49\x74\x65\x6D\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x74\x65\x6D","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x654e[0];var multer=require(_0x654e[1]);var util=require(_0x654e[2]);var path=require(_0x654e[3]);var express=require(_0x654e[4]);var router=express.Router();var auth=require(_0x654e[5]);var config=require(_0x654e[6]);var controller=require(_0x654e[7]);router[_0x654e[11]](_0x654e[8],auth[_0x654e[9]](),controller[_0x654e[10]]);router[_0x654e[11]](_0x654e[12],auth[_0x654e[9]](),controller[_0x654e[13]]);router[_0x654e[11]](_0x654e[14],auth[_0x654e[9]](),controller[_0x654e[15]]);router[_0x654e[11]](_0x654e[16],auth[_0x654e[9]](),controller[_0x654e[17]]);router[_0x654e[19]](_0x654e[8],auth[_0x654e[9]](),controller[_0x654e[18]]);router[_0x654e[19]](_0x654e[16],auth[_0x654e[9]](),controller[_0x654e[20]]);router[_0x654e[22]](_0x654e[12],auth[_0x654e[9]](),controller[_0x654e[21]]);router[_0x654e[24]](_0x654e[12],auth[_0x654e[9]](),controller[_0x654e[23]]);module[_0x654e[25]]= router
\ No newline at end of file
index 94478a9..3d90e92 100644 (file)
@@ -1 +1 @@
-var _0x2009=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x71\x75\x65\x6C","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x74\x61\x62\x6C\x65","\x69\x66\x72\x61\x6D\x65","\x63\x6C\x6F\x63\x6B","\x49\x4E\x54\x45\x47\x45\x52","\x54\x45\x58\x54","\x42\x4C\x4F\x42","\x64\x61\x74\x61","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x71\x75\x65\x72\x79","\x73\x65\x6C\x65\x63\x74","\x66\x69\x65\x6C\x64\x73","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x66\x69\x65\x6C\x64","\x66\x72\x6F\x6D","\x77\x68\x65\x72\x65","\x67\x72\x6F\x75\x70","\x6F\x72\x64\x65\x72","\x6C\x69\x6D\x69\x74"];_0x2009[0];var Sequelize=require(_0x2009[1]);var squel=require(_0x2009[2]);var _=require(_0x2009[3]);module[_0x2009[4]]= {type:{type:Sequelize.ENUM(_0x2009[5],_0x2009[6],_0x2009[7],_0x2009[8]),allowNull:false,defaultValue:_0x2009[8]},sizeX:{type:Sequelize[_0x2009[9]],allowNull:false,defaultValue:1},sizeY:{type:Sequelize[_0x2009[9]],allowNull:false,defaultValue:1},row:{type:Sequelize[_0x2009[9]]},col:{type:Sequelize[_0x2009[9]]},query:{type:Sequelize[_0x2009[10]]},data:{type:Sequelize[_0x2009[11]],get:function(){if(this[_0x2009[13]](_0x2009[12])){return JSON[_0x2009[14]](this[_0x2009[13]](_0x2009[12]))}},set:function(_0xe5f2x4){if(_0xe5f2x4){var _0xe5f2x5=JSON[_0x2009[15]](_0xe5f2x4);this[_0x2009[16]](_0x2009[12],_0xe5f2x5);if(_0xe5f2x4[_0x2009[17]]){var _0xe5f2x6=squel[_0x2009[18]]();if(_0xe5f2x4[_0x2009[17]][_0x2009[19]]){if(_[_0x2009[20]](_0xe5f2x4[_0x2009[17]][_0x2009[19]])){for(var _0xe5f2x7=0;_0xe5f2x7< _0xe5f2x4[_0x2009[17]][_0x2009[19]][_0x2009[21]];_0xe5f2x7++){_0xe5f2x6[_0x2009[22]](_0xe5f2x4[_0x2009[17]][_0x2009[19]][_0xe5f2x7])}}else {_0xe5f2x6[_0x2009[22]](_0xe5f2x4[_0x2009[17]][_0x2009[19]])}};if(_0xe5f2x4[_0x2009[17]][_0x2009[23]]){_0xe5f2x6[_0x2009[23]](_0xe5f2x4[_0x2009[17]][_0x2009[23]])};if(_0xe5f2x4[_0x2009[17]][_0x2009[24]]){_0xe5f2x6[_0x2009[24]](_0xe5f2x4[_0x2009[17]][_0x2009[24]])};if(_0xe5f2x4[_0x2009[17]][_0x2009[25]]){_0xe5f2x6[_0x2009[25]](_0xe5f2x4[_0x2009[17]][_0x2009[25]])};if(_0xe5f2x4[_0x2009[17]][_0x2009[26]]){_0xe5f2x6[_0x2009[26]](_0xe5f2x4[_0x2009[17]][_0x2009[26]])};if(_0xe5f2x4[_0x2009[17]][_0x2009[27]]){_0xe5f2x6[_0x2009[27]](_0xe5f2x4[_0x2009[17]][_0x2009[27]])};this[_0x2009[16]](_0x2009[17],_0xe5f2x6.toString())}}}}}
\ No newline at end of file
+var _0x732a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x71\x75\x65\x6C","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x74\x61\x62\x6C\x65","\x69\x66\x72\x61\x6D\x65","\x63\x6C\x6F\x63\x6B","\x49\x4E\x54\x45\x47\x45\x52","\x54\x45\x58\x54","\x42\x4C\x4F\x42","\x64\x61\x74\x61","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x71\x75\x65\x72\x79","\x73\x65\x6C\x65\x63\x74","\x66\x69\x65\x6C\x64\x73","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x66\x69\x65\x6C\x64","\x66\x72\x6F\x6D","\x77\x68\x65\x72\x65","\x67\x72\x6F\x75\x70","\x6F\x72\x64\x65\x72","\x6C\x69\x6D\x69\x74"];_0x732a[0];var Sequelize=require(_0x732a[1]);var squel=require(_0x732a[2]);var _=require(_0x732a[3]);module[_0x732a[4]]= {type:{type:Sequelize.ENUM(_0x732a[5],_0x732a[6],_0x732a[7],_0x732a[8]),allowNull:false,defaultValue:_0x732a[8]},sizeX:{type:Sequelize[_0x732a[9]],allowNull:false,defaultValue:1},sizeY:{type:Sequelize[_0x732a[9]],allowNull:false,defaultValue:1},row:{type:Sequelize[_0x732a[9]]},col:{type:Sequelize[_0x732a[9]]},query:{type:Sequelize[_0x732a[10]]},data:{type:Sequelize[_0x732a[11]],get:function(){if(this[_0x732a[13]](_0x732a[12])){return JSON[_0x732a[14]](this[_0x732a[13]](_0x732a[12]))}},set:function(_0x728fx4){if(_0x728fx4){var _0x728fx5=JSON[_0x732a[15]](_0x728fx4);this[_0x732a[16]](_0x732a[12],_0x728fx5);if(_0x728fx4[_0x732a[17]]){var _0x728fx6=squel[_0x732a[18]]();if(_0x728fx4[_0x732a[17]][_0x732a[19]]){if(_[_0x732a[20]](_0x728fx4[_0x732a[17]][_0x732a[19]])){for(var _0x728fx7=0;_0x728fx7< _0x728fx4[_0x732a[17]][_0x732a[19]][_0x732a[21]];_0x728fx7++){_0x728fx6[_0x732a[22]](_0x728fx4[_0x732a[17]][_0x732a[19]][_0x728fx7])}}else {_0x728fx6[_0x732a[22]](_0x728fx4[_0x732a[17]][_0x732a[19]])}};if(_0x728fx4[_0x732a[17]][_0x732a[23]]){_0x728fx6[_0x732a[23]](_0x728fx4[_0x732a[17]][_0x732a[23]])};if(_0x728fx4[_0x732a[17]][_0x732a[24]]){_0x728fx6[_0x732a[24]](_0x728fx4[_0x732a[17]][_0x732a[24]])};if(_0x728fx4[_0x732a[17]][_0x732a[25]]){_0x728fx6[_0x732a[25]](_0x728fx4[_0x732a[17]][_0x732a[25]])};if(_0x728fx4[_0x732a[17]][_0x732a[26]]){_0x728fx6[_0x732a[26]](_0x728fx4[_0x732a[17]][_0x732a[26]])};if(_0x728fx4[_0x732a[17]][_0x732a[27]]){_0x728fx6[_0x732a[27]](_0x728fx4[_0x732a[17]][_0x732a[27]])};this[_0x732a[16]](_0x732a[17],_0x728fx6.toString())}}}}}
\ No newline at end of file
index f823eff..0c67a4d 100644 (file)
@@ -1 +1 @@
-var _0xd81b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xd81b[0];var jsonpatch=require(_0xd81b[1]);var rp=require(_0xd81b[2]);var moment=require(_0xd81b[3]);var BPromise=require(_0xd81b[4]);var util=require(_0xd81b[5]);var path=require(_0xd81b[6]);var sox=require(_0xd81b[7]);var ejs=require(_0xd81b[8]);var fs=require(_0xd81b[9]);var _=require(_0xd81b[10]);var squel=require(_0xd81b[11]);var crypto=require(_0xd81b[12]);var jsforce=require(_0xd81b[13]);var toCsv=require(_0xd81b[14]);var qs=require(_0xd81b[15]);var logger=require(_0xd81b[17])(_0xd81b[16]);var utils=require(_0xd81b[18]);var config=require(_0xd81b[19]);var db=require(_0xd81b[21])[_0xd81b[20]];var dbH=require(_0xd81b[21])[_0xd81b[22]];function respondWithStatusCode(_0x4b5bx16,_0x4b5bx17,_0x4b5bx18){_0x4b5bx17= _0x4b5bx17|| 204;return function(_0x4b5bx19){if(_0x4b5bx19){logger[_0xd81b[25]](_0xd81b[23],_0x4b5bx18,_0x4b5bx17,_0xd81b[24]);logger[_0xd81b[27]](_0xd81b[26],_0x4b5bx18,_0x4b5bx17,_0xd81b[24]);return _0x4b5bx16[_0xd81b[28]](_0x4b5bx17)};return _0x4b5bx16[_0xd81b[30]](304)[_0xd81b[29]]()}}function respondWithResult(_0x4b5bx16,_0x4b5bx17,_0x4b5bx18){_0x4b5bx17= _0x4b5bx17|| 200;return function(_0x4b5bx19){if(_0x4b5bx19){logger[_0xd81b[25]](_0xd81b[23],_0x4b5bx18,_0x4b5bx17,_0xd81b[31]);logger[_0xd81b[27]](_0xd81b[26],_0x4b5bx18,_0x4b5bx17,_0xd81b[31],JSON[_0xd81b[32]](_0x4b5bx19));return _0x4b5bx16[_0xd81b[30]](_0x4b5bx17)[_0xd81b[33]](_0x4b5bx19)};return _0x4b5bx16[_0xd81b[30]](304)[_0xd81b[29]]()}}function respondWithFilteredResult(_0x4b5bx16,_0x4b5bx1c,_0x4b5bx18){return function(_0x4b5bx19){if(_0x4b5bx19){var _0x4b5bx1d=_0x4b5bx19[_0xd81b[34]],_0x4b5bx1e=_0x4b5bx1c[_0xd81b[35]],_0x4b5bx1f=_0x4b5bx1c[_0xd81b[35]]+ _0x4b5bx1c[_0xd81b[36]],_0x4b5bx17;if(_0x4b5bx1f>= _0x4b5bx1d){_0x4b5bx1f= _0x4b5bx1d;_0x4b5bx17= 200}else {_0x4b5bx17= 206};_0x4b5bx16[_0xd81b[30]](_0x4b5bx17);logger[_0xd81b[25]](_0xd81b[23],_0x4b5bx18,_0x4b5bx17,_0xd81b[37]);logger[_0xd81b[27]](_0xd81b[26],_0x4b5bx18,_0x4b5bx17,_0xd81b[31],JSON[_0xd81b[32]](_0x4b5bx19));return _0x4b5bx16[_0xd81b[41]](_0xd81b[38],_0x4b5bx1e+ _0xd81b[39]+ _0x4b5bx1f+ _0xd81b[40]+ _0x4b5bx1d)[_0xd81b[33]](_0x4b5bx19)};return null}}function patchUpdates(_0x4b5bx21){return function(_0x4b5bx19){try{jsonpatch[_0xd81b[42]](_0x4b5bx19,_0x4b5bx21,true)}catch(err){return BPromise[_0xd81b[43]](err)};return _0x4b5bx19[_0xd81b[44]]()}}function saveUpdates(_0x4b5bx23,_0x4b5bx17,_0x4b5bx18){return function(_0x4b5bx19){if(_0x4b5bx19){return _0x4b5bx19[_0xd81b[47]](_0x4b5bx23)[_0xd81b[46]](function(_0x4b5bx24){logger[_0xd81b[25]](_0xd81b[23],_0x4b5bx18,_0x4b5bx17,_0xd81b[45]);logger[_0xd81b[27]](_0xd81b[26],_0x4b5bx18,_0x4b5bx17,_0xd81b[45],JSON[_0xd81b[32]](_0x4b5bx19));return _0x4b5bx24})};return null}}function removeEntity(_0x4b5bx16,_0x4b5bx17,_0x4b5bx18){return function(_0x4b5bx19){if(_0x4b5bx19){return _0x4b5bx19[_0xd81b[49]]()[_0xd81b[46]](function(){logger[_0xd81b[25]](_0xd81b[23],_0x4b5bx18,_0x4b5bx17,_0xd81b[48]);logger[_0xd81b[27]](_0xd81b[26],_0x4b5bx18,_0x4b5bx17,_0xd81b[48],JSON[_0xd81b[32]](_0x4b5bx19));_0x4b5bx16[_0xd81b[30]](204)[_0xd81b[29]]()})}}}function handleEntityNotFound(_0x4b5bx16,_0x4b5bx17,_0x4b5bx18){return function(_0x4b5bx19){if(!_0x4b5bx19){logger[_0xd81b[51]](_0xd81b[23],_0x4b5bx18,404,_0xd81b[50]);_0x4b5bx16[_0xd81b[30]](404)[_0xd81b[29]]();return null};return _0x4b5bx19}}function handleError(_0x4b5bx16,_0x4b5bx17,_0x4b5bx18){_0x4b5bx17= _0x4b5bx17|| 500;return function(_0x4b5bx28){logger[_0xd81b[51]](_0xd81b[23],_0x4b5bx18,_0x4b5bx17,JSON[_0xd81b[32]](_0x4b5bx28));delete _0x4b5bx28[_0xd81b[52]];_0x4b5bx16[_0xd81b[30]](_0x4b5bx17)[_0xd81b[53]](_0x4b5bx28)}}exports[_0xd81b[54]]= function(_0x4b5bx29,_0x4b5bx16){var _0x4b5bx1c={raw:false,where:{id:_0x4b5bx29[_0xd81b[56]][_0xd81b[55]]}},_0x4b5bx2a={};_0x4b5bx2a[_0xd81b[57]]= _[_0xd81b[60]](db[_0xd81b[59]][_0xd81b[58]]);_0x4b5bx2a[_0xd81b[61]]= _[_0xd81b[60]](_0x4b5bx29[_0xd81b[61]]);_0x4b5bx2a[_0xd81b[62]]= _[_0xd81b[63]](_0x4b5bx2a[_0xd81b[57]],_0x4b5bx2a[_0xd81b[61]]);_0x4b5bx1c[_0xd81b[64]]= _[_0xd81b[63]](_0x4b5bx2a[_0xd81b[57]],qs[_0xd81b[65]](_0x4b5bx29[_0xd81b[61]][_0xd81b[65]]));_0x4b5bx1c[_0xd81b[64]]= (_0x4b5bx1c[_0xd81b[64]][_0xd81b[66]])?_0x4b5bx1c[_0xd81b[64]]:_0x4b5bx2a[_0xd81b[57]];_0x4b5bx1c= _[_0xd81b[68]]({},_0x4b5bx1c,_0x4b5bx29[_0xd81b[67]]);return db[_0xd81b[59]][_0xd81b[70]](_0x4b5bx1c)[_0xd81b[46]](handleEntityNotFound(_0x4b5bx16,null,_0xd81b[54]))[_0xd81b[46]](respondWithResult(_0x4b5bx16,null,_0xd81b[54]))[_0xd81b[69]](handleError(_0x4b5bx16,null,_0xd81b[54]))};exports[_0xd81b[47]]= function(_0x4b5bx29,_0x4b5bx16){if(_0x4b5bx29[_0xd81b[71]][_0xd81b[55]]){delete _0x4b5bx29[_0xd81b[71]][_0xd81b[55]]};return db[_0xd81b[59]][_0xd81b[70]]({where:{id:_0x4b5bx29[_0xd81b[56]][_0xd81b[55]]}})[_0xd81b[46]](handleEntityNotFound(_0x4b5bx16,null,_0xd81b[47]))[_0xd81b[46]](saveUpdates(_0x4b5bx29[_0xd81b[71]],null,_0xd81b[47]))[_0xd81b[46]](respondWithResult(_0x4b5bx16,null,_0xd81b[47]))[_0xd81b[69]](handleError(_0x4b5bx16,null,_0xd81b[47]))};exports[_0xd81b[49]]= function(_0x4b5bx29,_0x4b5bx16){return db[_0xd81b[59]][_0xd81b[70]]({where:{id:_0x4b5bx29[_0xd81b[56]][_0xd81b[55]]}})[_0xd81b[46]](handleEntityNotFound(_0x4b5bx16,null,_0xd81b[49]))[_0xd81b[46]](removeEntity(_0x4b5bx16,null,_0xd81b[49]))[_0xd81b[69]](handleError(_0x4b5bx16,null,_0xd81b[49]))}
\ No newline at end of file
+var _0xa246=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xa246[0];var jsonpatch=require(_0xa246[1]);var rp=require(_0xa246[2]);var moment=require(_0xa246[3]);var BPromise=require(_0xa246[4]);var util=require(_0xa246[5]);var path=require(_0xa246[6]);var sox=require(_0xa246[7]);var ejs=require(_0xa246[8]);var fs=require(_0xa246[9]);var _=require(_0xa246[10]);var squel=require(_0xa246[11]);var crypto=require(_0xa246[12]);var jsforce=require(_0xa246[13]);var toCsv=require(_0xa246[14]);var qs=require(_0xa246[15]);var logger=require(_0xa246[17])(_0xa246[16]);var utils=require(_0xa246[18]);var config=require(_0xa246[19]);var db=require(_0xa246[21])[_0xa246[20]];var dbH=require(_0xa246[21])[_0xa246[22]];function respondWithStatusCode(_0x1ae8x16,_0x1ae8x17,_0x1ae8x18){_0x1ae8x17= _0x1ae8x17|| 204;return function(_0x1ae8x19){if(_0x1ae8x19){logger[_0xa246[25]](_0xa246[23],_0x1ae8x18,_0x1ae8x17,_0xa246[24]);logger[_0xa246[27]](_0xa246[26],_0x1ae8x18,_0x1ae8x17,_0xa246[24]);return _0x1ae8x16[_0xa246[28]](_0x1ae8x17)};return _0x1ae8x16[_0xa246[30]](304)[_0xa246[29]]()}}function respondWithResult(_0x1ae8x16,_0x1ae8x17,_0x1ae8x18){_0x1ae8x17= _0x1ae8x17|| 200;return function(_0x1ae8x19){if(_0x1ae8x19){logger[_0xa246[25]](_0xa246[23],_0x1ae8x18,_0x1ae8x17,_0xa246[31]);logger[_0xa246[27]](_0xa246[26],_0x1ae8x18,_0x1ae8x17,_0xa246[31],JSON[_0xa246[32]](_0x1ae8x19));return _0x1ae8x16[_0xa246[30]](_0x1ae8x17)[_0xa246[33]](_0x1ae8x19)};return _0x1ae8x16[_0xa246[30]](304)[_0xa246[29]]()}}function respondWithFilteredResult(_0x1ae8x16,_0x1ae8x1c,_0x1ae8x18){return function(_0x1ae8x19){if(_0x1ae8x19){var _0x1ae8x1d=_0x1ae8x19[_0xa246[34]],_0x1ae8x1e=_0x1ae8x1c[_0xa246[35]],_0x1ae8x1f=_0x1ae8x1c[_0xa246[35]]+ _0x1ae8x1c[_0xa246[36]],_0x1ae8x17;if(_0x1ae8x1f>= _0x1ae8x1d){_0x1ae8x1f= _0x1ae8x1d;_0x1ae8x17= 200}else {_0x1ae8x17= 206};_0x1ae8x16[_0xa246[30]](_0x1ae8x17);logger[_0xa246[25]](_0xa246[23],_0x1ae8x18,_0x1ae8x17,_0xa246[37]);logger[_0xa246[27]](_0xa246[26],_0x1ae8x18,_0x1ae8x17,_0xa246[31],JSON[_0xa246[32]](_0x1ae8x19));return _0x1ae8x16[_0xa246[41]](_0xa246[38],_0x1ae8x1e+ _0xa246[39]+ _0x1ae8x1f+ _0xa246[40]+ _0x1ae8x1d)[_0xa246[33]](_0x1ae8x19)};return null}}function patchUpdates(_0x1ae8x21){return function(_0x1ae8x19){try{jsonpatch[_0xa246[42]](_0x1ae8x19,_0x1ae8x21,true)}catch(err){return BPromise[_0xa246[43]](err)};return _0x1ae8x19[_0xa246[44]]()}}function saveUpdates(_0x1ae8x23,_0x1ae8x17,_0x1ae8x18){return function(_0x1ae8x19){if(_0x1ae8x19){return _0x1ae8x19[_0xa246[47]](_0x1ae8x23)[_0xa246[46]](function(_0x1ae8x24){logger[_0xa246[25]](_0xa246[23],_0x1ae8x18,_0x1ae8x17,_0xa246[45]);logger[_0xa246[27]](_0xa246[26],_0x1ae8x18,_0x1ae8x17,_0xa246[45],JSON[_0xa246[32]](_0x1ae8x19));return _0x1ae8x24})};return null}}function removeEntity(_0x1ae8x16,_0x1ae8x17,_0x1ae8x18){return function(_0x1ae8x19){if(_0x1ae8x19){return _0x1ae8x19[_0xa246[49]]()[_0xa246[46]](function(){logger[_0xa246[25]](_0xa246[23],_0x1ae8x18,_0x1ae8x17,_0xa246[48]);logger[_0xa246[27]](_0xa246[26],_0x1ae8x18,_0x1ae8x17,_0xa246[48],JSON[_0xa246[32]](_0x1ae8x19));_0x1ae8x16[_0xa246[30]](204)[_0xa246[29]]()})}}}function handleEntityNotFound(_0x1ae8x16,_0x1ae8x17,_0x1ae8x18){return function(_0x1ae8x19){if(!_0x1ae8x19){logger[_0xa246[51]](_0xa246[23],_0x1ae8x18,404,_0xa246[50]);_0x1ae8x16[_0xa246[30]](404)[_0xa246[29]]();return null};return _0x1ae8x19}}function handleError(_0x1ae8x16,_0x1ae8x17,_0x1ae8x18){_0x1ae8x17= _0x1ae8x17|| 500;return function(_0x1ae8x28){logger[_0xa246[51]](_0xa246[23],_0x1ae8x18,_0x1ae8x17,JSON[_0xa246[32]](_0x1ae8x28));delete _0x1ae8x28[_0xa246[52]];_0x1ae8x16[_0xa246[30]](_0x1ae8x17)[_0xa246[53]](_0x1ae8x28)}}exports[_0xa246[54]]= function(_0x1ae8x29,_0x1ae8x16){var _0x1ae8x1c={raw:false,where:{id:_0x1ae8x29[_0xa246[56]][_0xa246[55]]}},_0x1ae8x2a={};_0x1ae8x2a[_0xa246[57]]= _[_0xa246[60]](db[_0xa246[59]][_0xa246[58]]);_0x1ae8x2a[_0xa246[61]]= _[_0xa246[60]](_0x1ae8x29[_0xa246[61]]);_0x1ae8x2a[_0xa246[62]]= _[_0xa246[63]](_0x1ae8x2a[_0xa246[57]],_0x1ae8x2a[_0xa246[61]]);_0x1ae8x1c[_0xa246[64]]= _[_0xa246[63]](_0x1ae8x2a[_0xa246[57]],qs[_0xa246[65]](_0x1ae8x29[_0xa246[61]][_0xa246[65]]));_0x1ae8x1c[_0xa246[64]]= (_0x1ae8x1c[_0xa246[64]][_0xa246[66]])?_0x1ae8x1c[_0xa246[64]]:_0x1ae8x2a[_0xa246[57]];_0x1ae8x1c= _[_0xa246[68]]({},_0x1ae8x1c,_0x1ae8x29[_0xa246[67]]);return db[_0xa246[59]][_0xa246[70]](_0x1ae8x1c)[_0xa246[46]](handleEntityNotFound(_0x1ae8x16,null,_0xa246[54]))[_0xa246[46]](respondWithResult(_0x1ae8x16,null,_0xa246[54]))[_0xa246[69]](handleError(_0x1ae8x16,null,_0xa246[54]))};exports[_0xa246[47]]= function(_0x1ae8x29,_0x1ae8x16){if(_0x1ae8x29[_0xa246[71]][_0xa246[55]]){delete _0x1ae8x29[_0xa246[71]][_0xa246[55]]};return db[_0xa246[59]][_0xa246[70]]({where:{id:_0x1ae8x29[_0xa246[56]][_0xa246[55]]}})[_0xa246[46]](handleEntityNotFound(_0x1ae8x16,null,_0xa246[47]))[_0xa246[46]](saveUpdates(_0x1ae8x29[_0xa246[71]],null,_0xa246[47]))[_0xa246[46]](respondWithResult(_0x1ae8x16,null,_0xa246[47]))[_0xa246[69]](handleError(_0x1ae8x16,null,_0xa246[47]))};exports[_0xa246[49]]= function(_0x1ae8x29,_0x1ae8x16){return db[_0xa246[59]][_0xa246[70]]({where:{id:_0x1ae8x29[_0xa246[56]][_0xa246[55]]}})[_0xa246[46]](handleEntityNotFound(_0x1ae8x16,null,_0xa246[49]))[_0xa246[46]](removeEntity(_0x1ae8x16,null,_0xa246[49]))[_0xa246[69]](handleError(_0x1ae8x16,null,_0xa246[49]))}
\ No newline at end of file
index b7f3a6e..179494a 100644 (file)
@@ -1 +1 @@
-var _0x5fcf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x5F\x69\x74\x65\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x5fcf[0];var _=require(_0x5fcf[1]);var util=require(_0x5fcf[2]);var logger=require(_0x5fcf[4])(_0x5fcf[3]);var attributes=require(_0x5fcf[5]);module[_0x5fcf[6]]= function(_0x9606x5,_0x9606x6){return _0x9606x5[_0x5fcf[9]](_0x5fcf[7],attributes,{tableName:_0x5fcf[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4ffb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x5F\x69\x74\x65\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x4ffb[0];var _=require(_0x4ffb[1]);var util=require(_0x4ffb[2]);var logger=require(_0x4ffb[4])(_0x4ffb[3]);var attributes=require(_0x4ffb[5]);module[_0x4ffb[6]]= function(_0x92e3x5,_0x92e3x6){return _0x92e3x5[_0x4ffb[9]](_0x4ffb[7],attributes,{tableName:_0x4ffb[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4c96fb8..be9cca1 100644 (file)
@@ -1 +1 @@
-var _0x331d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x331d[0];var _=require(_0x331d[1]);var util=require(_0x331d[2]);var moment=require(_0x331d[3]);var BPromise=require(_0x331d[4]);var db=require(_0x331d[6])[_0x331d[5]];var utils=require(_0x331d[7]);var logger=require(_0x331d[9])(_0x331d[8]);var jayson=require(_0x331d[10]);var client=jayson[_0x331d[12]][_0x331d[11]]({port:9002});function respondWithRpcPromise(_0xee2fxb,_0xee2fxc,_0xee2fxd){return  new BPromise(function(_0xee2fxe,_0xee2fxf){return client[_0x331d[25]](_0xee2fxb,_0xee2fxd)[_0x331d[24]](function(_0xee2fx11){logger[_0x331d[17]](_0x331d[13],_0xee2fxc,_0x331d[16]);logger[_0x331d[20]](_0x331d[18],_0xee2fxc,_0x331d[16],JSON[_0x331d[19]](_0xee2fx11));if(_0xee2fx11[_0x331d[14]]){if(_0xee2fx11[_0x331d[14]][_0x331d[21]]=== 500){logger[_0x331d[14]](_0x331d[13],_0xee2fxc,_0xee2fx11[_0x331d[14]][_0x331d[22]]);return _0xee2fxf(_0xee2fx11[_0x331d[14]][_0x331d[22]])};logger[_0x331d[14]](_0x331d[13],_0xee2fxc,_0xee2fx11[_0x331d[14]][_0x331d[22]]);return _0xee2fxe(_0xee2fx11[_0x331d[14]][_0x331d[22]])}else {logger[_0x331d[17]](_0x331d[13],_0xee2fxc,_0x331d[16]);_0xee2fxe(_0xee2fx11[_0x331d[23]][_0x331d[22]])}})[_0x331d[15]](function(_0xee2fx10){logger[_0x331d[14]](_0x331d[13],_0xee2fxc,_0xee2fx10);_0xee2fxf(_0xee2fx10)})})}
\ No newline at end of file
+var _0x7a21=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7a21[0];var _=require(_0x7a21[1]);var util=require(_0x7a21[2]);var moment=require(_0x7a21[3]);var BPromise=require(_0x7a21[4]);var db=require(_0x7a21[6])[_0x7a21[5]];var utils=require(_0x7a21[7]);var logger=require(_0x7a21[9])(_0x7a21[8]);var jayson=require(_0x7a21[10]);var client=jayson[_0x7a21[12]][_0x7a21[11]]({port:9002});function respondWithRpcPromise(_0x89e1xb,_0x89e1xc,_0x89e1xd){return  new BPromise(function(_0x89e1xe,_0x89e1xf){return client[_0x7a21[25]](_0x89e1xb,_0x89e1xd)[_0x7a21[24]](function(_0x89e1x11){logger[_0x7a21[17]](_0x7a21[13],_0x89e1xc,_0x7a21[16]);logger[_0x7a21[20]](_0x7a21[18],_0x89e1xc,_0x7a21[16],JSON[_0x7a21[19]](_0x89e1x11));if(_0x89e1x11[_0x7a21[14]]){if(_0x89e1x11[_0x7a21[14]][_0x7a21[21]]=== 500){logger[_0x7a21[14]](_0x7a21[13],_0x89e1xc,_0x89e1x11[_0x7a21[14]][_0x7a21[22]]);return _0x89e1xf(_0x89e1x11[_0x7a21[14]][_0x7a21[22]])};logger[_0x7a21[14]](_0x7a21[13],_0x89e1xc,_0x89e1x11[_0x7a21[14]][_0x7a21[22]]);return _0x89e1xe(_0x89e1x11[_0x7a21[14]][_0x7a21[22]])}else {logger[_0x7a21[17]](_0x7a21[13],_0x89e1xc,_0x7a21[16]);_0x89e1xe(_0x89e1x11[_0x7a21[23]][_0x7a21[22]])}})[_0x7a21[15]](function(_0x89e1x10){logger[_0x7a21[14]](_0x7a21[13],_0x89e1xc,_0x89e1x10);_0x89e1xf(_0x89e1x10)})})}
\ No newline at end of file
index 9033b26..4de43bc 100644 (file)
@@ -1 +1 @@
-var _0x4d37=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4d37[0];var multer=require(_0x4d37[1]);var util=require(_0x4d37[2]);var path=require(_0x4d37[3]);var express=require(_0x4d37[4]);var router=express.Router();var auth=require(_0x4d37[5]);var config=require(_0x4d37[6]);var controller=require(_0x4d37[7]);router[_0x4d37[11]](_0x4d37[8],auth[_0x4d37[9]](),controller[_0x4d37[10]]);router[_0x4d37[13]](_0x4d37[8],auth[_0x4d37[9]](),controller[_0x4d37[12]]);router[_0x4d37[15]](_0x4d37[8],auth[_0x4d37[9]](),controller[_0x4d37[14]]);module[_0x4d37[16]]= router
\ No newline at end of file
+var _0x9f71=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9f71[0];var multer=require(_0x9f71[1]);var util=require(_0x9f71[2]);var path=require(_0x9f71[3]);var express=require(_0x9f71[4]);var router=express.Router();var auth=require(_0x9f71[5]);var config=require(_0x9f71[6]);var controller=require(_0x9f71[7]);router[_0x9f71[11]](_0x9f71[8],auth[_0x9f71[9]](),controller[_0x9f71[10]]);router[_0x9f71[13]](_0x9f71[8],auth[_0x9f71[9]](),controller[_0x9f71[12]]);router[_0x9f71[15]](_0x9f71[8],auth[_0x9f71[9]](),controller[_0x9f71[14]]);module[_0x9f71[16]]= router
\ No newline at end of file
index 305078f..fb97829 100644 (file)
@@ -1 +1 @@
-var _0x364e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x79\x65\x73","\x6E\x6F","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x46\x61\x78","\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x32\x34\x30\x30","\x34\x38\x30\x30","\x37\x32\x30\x30","\x39\x36\x30\x30","\x31\x32\x30\x30\x30","\x31\x34\x34\x30\x30","\x76\x31\x37\x2C\x76\x32\x37\x2C\x76\x32\x39","\x49\x4E\x54\x45\x47\x45\x52","\x53\x49\x50","\x49\x41\x58","\x44\x41\x44\x48\x49","\x4B\x48\x4F\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x364e[0];var Sequelize=require(_0x364e[1]);module[_0x364e[2]]= {name:{type:Sequelize[_0x364e[3]],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0x364e[3]]},ecm:{type:Sequelize.ENUM(_0x364e[4],_0x364e[5]),defaultValue:_0x364e[4]},headerinfo:{type:Sequelize[_0x364e[3]],defaultValue:_0x364e[6]},localstationid:{type:Sequelize[_0x364e[3]],unique:_0x364e[7]},minrate:{type:Sequelize.ENUM(_0x364e[8],_0x364e[9],_0x364e[10],_0x364e[11],_0x364e[12],_0x364e[13]),defaultValue:_0x364e[9]},maxrate:{type:Sequelize.ENUM(_0x364e[8],_0x364e[9],_0x364e[10],_0x364e[11],_0x364e[12],_0x364e[13]),defaultValue:_0x364e[13]},modem:{type:Sequelize[_0x364e[3]],defaultValue:_0x364e[14]},gateway:{type:Sequelize[_0x364e[3]],defaultValue:_0x364e[5],validate:{is:/^(?:yes|no|[0-9]+)$/}},faxdetect:{type:Sequelize[_0x364e[3]],defaultValue:_0x364e[5],validate:{is:/^(?:yes|no|t38|cng|[0-9]+)$/}},t38timeout:{type:Sequelize[_0x364e[15]],defaultValue:5000,validate:{min:1000}},tech:{type:Sequelize.ENUM(_0x364e[16],_0x364e[17],_0x364e[18],_0x364e[19]),defaultValue:_0x364e[16]},fidelity:{type:Sequelize[_0x364e[20]],defaultValue:false},timeout:{type:Sequelize[_0x364e[15]],defaultValue:0},acceptUrl:{type:Sequelize[_0x364e[3]]},rejectUrl:{type:Sequelize[_0x364e[3]]},acceptMethod:{type:Sequelize.ENUM(_0x364e[21],_0x364e[22])},rejectMethod:{type:Sequelize.ENUM(_0x364e[21],_0x364e[22])},actions:{type:Sequelize[_0x364e[3]],get:function(){return this[_0x364e[24]](_0x364e[23])?JSON[_0x364e[25]](this[_0x364e[24]](_0x364e[23])):[]},set:function(_0x27e9x2){return this[_0x364e[27]](_0x364e[23],JSON[_0x364e[26]](_0x27e9x2))}},closeUrl:{type:Sequelize[_0x364e[3]]},closeMethod:{type:Sequelize.ENUM(_0x364e[21],_0x364e[22])}}
\ No newline at end of file
+var _0x83e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x79\x65\x73","\x6E\x6F","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x46\x61\x78","\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x32\x34\x30\x30","\x34\x38\x30\x30","\x37\x32\x30\x30","\x39\x36\x30\x30","\x31\x32\x30\x30\x30","\x31\x34\x34\x30\x30","\x76\x31\x37\x2C\x76\x32\x37\x2C\x76\x32\x39","\x49\x4E\x54\x45\x47\x45\x52","\x53\x49\x50","\x49\x41\x58","\x44\x41\x44\x48\x49","\x4B\x48\x4F\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x83e6[0];var Sequelize=require(_0x83e6[1]);module[_0x83e6[2]]= {name:{type:Sequelize[_0x83e6[3]],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0x83e6[3]]},ecm:{type:Sequelize.ENUM(_0x83e6[4],_0x83e6[5]),defaultValue:_0x83e6[4]},headerinfo:{type:Sequelize[_0x83e6[3]],defaultValue:_0x83e6[6]},localstationid:{type:Sequelize[_0x83e6[3]],unique:_0x83e6[7]},minrate:{type:Sequelize.ENUM(_0x83e6[8],_0x83e6[9],_0x83e6[10],_0x83e6[11],_0x83e6[12],_0x83e6[13]),defaultValue:_0x83e6[9]},maxrate:{type:Sequelize.ENUM(_0x83e6[8],_0x83e6[9],_0x83e6[10],_0x83e6[11],_0x83e6[12],_0x83e6[13]),defaultValue:_0x83e6[13]},modem:{type:Sequelize[_0x83e6[3]],defaultValue:_0x83e6[14]},gateway:{type:Sequelize[_0x83e6[3]],defaultValue:_0x83e6[5],validate:{is:/^(?:yes|no|[0-9]+)$/}},faxdetect:{type:Sequelize[_0x83e6[3]],defaultValue:_0x83e6[5],validate:{is:/^(?:yes|no|t38|cng|[0-9]+)$/}},t38timeout:{type:Sequelize[_0x83e6[15]],defaultValue:5000,validate:{min:1000}},tech:{type:Sequelize.ENUM(_0x83e6[16],_0x83e6[17],_0x83e6[18],_0x83e6[19]),defaultValue:_0x83e6[16]},fidelity:{type:Sequelize[_0x83e6[20]],defaultValue:false},timeout:{type:Sequelize[_0x83e6[15]],defaultValue:0},acceptUrl:{type:Sequelize[_0x83e6[3]]},rejectUrl:{type:Sequelize[_0x83e6[3]]},acceptMethod:{type:Sequelize.ENUM(_0x83e6[21],_0x83e6[22])},rejectMethod:{type:Sequelize.ENUM(_0x83e6[21],_0x83e6[22])},actions:{type:Sequelize[_0x83e6[3]],get:function(){return this[_0x83e6[24]](_0x83e6[23])?JSON[_0x83e6[25]](this[_0x83e6[24]](_0x83e6[23])):[]},set:function(_0x9e52x2){return this[_0x83e6[27]](_0x83e6[23],JSON[_0x83e6[26]](_0x9e52x2))}},closeUrl:{type:Sequelize[_0x83e6[3]]},closeMethod:{type:Sequelize.ENUM(_0x83e6[21],_0x83e6[22])}}
\ No newline at end of file
index e0c811d..2b06317 100644 (file)
@@ -1 +1 @@
-var _0x1884=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0x1884[0];var jsonpatch=require(_0x1884[1]);var rp=require(_0x1884[2]);var moment=require(_0x1884[3]);var BPromise=require(_0x1884[4]);var util=require(_0x1884[5]);var path=require(_0x1884[6]);var sox=require(_0x1884[7]);var ejs=require(_0x1884[8]);var fs=require(_0x1884[9]);var _=require(_0x1884[10]);var squel=require(_0x1884[11]);var crypto=require(_0x1884[12]);var jsforce=require(_0x1884[13]);var toCsv=require(_0x1884[14]);var qs=require(_0x1884[15]);var logger=require(_0x1884[17])(_0x1884[16]);var utils=require(_0x1884[18]);var config=require(_0x1884[19]);var db=require(_0x1884[21])[_0x1884[20]];function respondWithStatusCode(_0x25dcx15,_0x25dcx16,_0x25dcx17){_0x25dcx16= _0x25dcx16|| 204;return function(_0x25dcx18){if(_0x25dcx18){logger[_0x1884[24]](_0x1884[22],_0x25dcx17,_0x25dcx16,_0x1884[23]);logger[_0x1884[26]](_0x1884[25],_0x25dcx17,_0x25dcx16,_0x1884[23]);return _0x25dcx15[_0x1884[27]](_0x25dcx16)};return _0x25dcx15[_0x1884[29]](304)[_0x1884[28]]()}}function respondWithResult(_0x25dcx15,_0x25dcx16,_0x25dcx17){_0x25dcx16= _0x25dcx16|| 200;return function(_0x25dcx18){if(_0x25dcx18){logger[_0x1884[24]](_0x1884[22],_0x25dcx17,_0x25dcx16,_0x1884[30]);logger[_0x1884[26]](_0x1884[25],_0x25dcx17,_0x25dcx16,_0x1884[30],JSON[_0x1884[31]](_0x25dcx18));return _0x25dcx15[_0x1884[29]](_0x25dcx16)[_0x1884[32]](_0x25dcx18)};return _0x25dcx15[_0x1884[29]](304)[_0x1884[28]]()}}function respondWithFilteredResult(_0x25dcx15,_0x25dcx1b,_0x25dcx17){return function(_0x25dcx18){if(_0x25dcx18){var _0x25dcx1c=_0x25dcx18[_0x1884[33]],_0x25dcx1d=_0x25dcx1b[_0x1884[34]],_0x25dcx1e=_0x25dcx1b[_0x1884[34]]+ _0x25dcx1b[_0x1884[35]],_0x25dcx16;if(_0x25dcx1e>= _0x25dcx1c){_0x25dcx1e= _0x25dcx1c;_0x25dcx16= 200}else {_0x25dcx16= 206};_0x25dcx15[_0x1884[29]](_0x25dcx16);logger[_0x1884[24]](_0x1884[22],_0x25dcx17,_0x25dcx16,_0x1884[36]);logger[_0x1884[26]](_0x1884[25],_0x25dcx17,_0x25dcx16,_0x1884[30],JSON[_0x1884[31]](_0x25dcx18));return _0x25dcx15[_0x1884[40]](_0x1884[37],_0x25dcx1d+ _0x1884[38]+ _0x25dcx1e+ _0x1884[39]+ _0x25dcx1c)[_0x1884[32]](_0x25dcx18)};return null}}function patchUpdates(_0x25dcx20){return function(_0x25dcx18){try{jsonpatch[_0x1884[41]](_0x25dcx18,_0x25dcx20,true)}catch(err){return BPromise[_0x1884[42]](err)};return _0x25dcx18[_0x1884[43]]()}}function saveUpdates(_0x25dcx22,_0x25dcx16,_0x25dcx17){return function(_0x25dcx18){if(_0x25dcx18){return _0x25dcx18[_0x1884[46]](_0x25dcx22)[_0x1884[45]](function(_0x25dcx23){logger[_0x1884[24]](_0x1884[22],_0x25dcx17,_0x25dcx16,_0x1884[44]);logger[_0x1884[26]](_0x1884[25],_0x25dcx17,_0x25dcx16,_0x1884[44],JSON[_0x1884[31]](_0x25dcx18));return _0x25dcx23})};return null}}function removeEntity(_0x25dcx15,_0x25dcx16,_0x25dcx17){return function(_0x25dcx18){if(_0x25dcx18){return _0x25dcx18[_0x1884[48]]()[_0x1884[45]](function(){logger[_0x1884[24]](_0x1884[22],_0x25dcx17,_0x25dcx16,_0x1884[47]);logger[_0x1884[26]](_0x1884[25],_0x25dcx17,_0x25dcx16,_0x1884[47],JSON[_0x1884[31]](_0x25dcx18));_0x25dcx15[_0x1884[29]](204)[_0x1884[28]]()})}}}function handleEntityNotFound(_0x25dcx15,_0x25dcx16,_0x25dcx17){return function(_0x25dcx18){if(!_0x25dcx18){logger[_0x1884[50]](_0x1884[22],_0x25dcx17,404,_0x1884[49]);_0x25dcx15[_0x1884[29]](404)[_0x1884[28]]();return null};return _0x25dcx18}}function handleError(_0x25dcx15,_0x25dcx16,_0x25dcx17){_0x25dcx16= _0x25dcx16|| 500;return function(_0x25dcx27){logger[_0x1884[50]](_0x1884[22],_0x25dcx17,_0x25dcx16,JSON[_0x1884[31]](_0x25dcx27));delete _0x25dcx27[_0x1884[51]];_0x25dcx15[_0x1884[29]](_0x25dcx16)[_0x1884[52]](_0x25dcx27)}}exports[_0x1884[53]]= function(_0x25dcx28,_0x25dcx15){var _0x25dcx1b={},_0x25dcx29={};_0x25dcx29[_0x1884[54]]= _[_0x1884[57]](db[_0x1884[56]][_0x1884[55]]);_0x25dcx29[_0x1884[58]]= _[_0x1884[57]](_0x25dcx28[_0x1884[58]]);_0x25dcx29[_0x1884[59]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],_0x25dcx29[_0x1884[58]]);_0x25dcx1b[_0x1884[61]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],qs[_0x1884[62]](_0x25dcx28[_0x1884[58]][_0x1884[62]]));_0x25dcx1b[_0x1884[61]]= (_0x25dcx1b[_0x1884[61]][_0x1884[63]])?_0x25dcx1b[_0x1884[61]]:_0x25dcx29[_0x1884[54]];if(!_0x25dcx28[_0x1884[58]][_0x1884[65]](_0x1884[64])){_0x25dcx1b[_0x1884[35]]= qs[_0x1884[35]](_0x25dcx28[_0x1884[58]][_0x1884[35]]);_0x25dcx1b[_0x1884[34]]= qs[_0x1884[34]](_0x25dcx28[_0x1884[58]][_0x1884[34]])};_0x25dcx1b[_0x1884[66]]= qs[_0x1884[67]](_0x25dcx28[_0x1884[58]][_0x1884[67]]);_0x25dcx1b[_0x1884[68]]= qs[_0x1884[59]](_[_0x1884[69]](_0x25dcx28[_0x1884[58]],_0x25dcx29[_0x1884[59]]));if(_0x25dcx28[_0x1884[58]][_0x1884[70]]){_0x25dcx1b[_0x1884[68]]= _[_0x1884[73]](_0x25dcx1b[_0x1884[68]],{$or:_[_0x1884[72]](_0x25dcx1b[_0x1884[61]],function(_0x25dcx2a){var _0x25dcx2b={};_0x25dcx2b[_0x25dcx2a]= {$like:_0x1884[71]+ _0x25dcx28[_0x1884[58]][_0x1884[70]]+ _0x1884[71]};return _0x25dcx2b})})};_0x25dcx1b= _[_0x1884[73]]({},_0x25dcx1b,_0x25dcx28[_0x1884[74]]);return db[_0x1884[56]][_0x1884[76]](_0x25dcx1b)[_0x1884[45]](respondWithFilteredResult(_0x25dcx15,_0x25dcx1b,_0x1884[53]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[53]))};exports[_0x1884[77]]= function(_0x25dcx28,_0x25dcx15){var _0x25dcx1b={raw:false,where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}},_0x25dcx29={};_0x25dcx29[_0x1884[54]]= _[_0x1884[57]](db[_0x1884[56]][_0x1884[55]]);_0x25dcx29[_0x1884[58]]= _[_0x1884[57]](_0x25dcx28[_0x1884[58]]);_0x25dcx29[_0x1884[59]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],_0x25dcx29[_0x1884[58]]);_0x25dcx1b[_0x1884[61]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],qs[_0x1884[62]](_0x25dcx28[_0x1884[58]][_0x1884[62]]));_0x25dcx1b[_0x1884[61]]= (_0x25dcx1b[_0x1884[61]][_0x1884[63]])?_0x25dcx1b[_0x1884[61]]:_0x25dcx29[_0x1884[54]];_0x25dcx1b= _[_0x1884[73]]({},_0x25dcx1b,_0x25dcx28[_0x1884[74]]);return db[_0x1884[56]][_0x1884[80]](_0x25dcx1b)[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[77]))[_0x1884[45]](respondWithResult(_0x25dcx15,null,_0x1884[77]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[77]))};exports[_0x1884[81]]= function(_0x25dcx28,_0x25dcx15){return db[_0x1884[56]][_0x1884[81]](_0x25dcx28[_0x1884[82]],{})[_0x1884[45]](respondWithResult(_0x25dcx15,201,_0x1884[81]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[81]))};exports[_0x1884[46]]= function(_0x25dcx28,_0x25dcx15){if(_0x25dcx28[_0x1884[82]][_0x1884[78]]){delete _0x25dcx28[_0x1884[82]][_0x1884[78]]};return db[_0x1884[56]][_0x1884[80]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[46]))[_0x1884[45]](saveUpdates(_0x25dcx28[_0x1884[82]],null,_0x1884[46]))[_0x1884[45]](respondWithResult(_0x25dcx15,null,_0x1884[46]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[46]))};exports[_0x1884[48]]= function(_0x25dcx28,_0x25dcx15){return db[_0x1884[56]][_0x1884[80]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[48]))[_0x1884[45]](removeEntity(_0x25dcx15,null,_0x1884[48]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[48]))};exports[_0x1884[83]]= function(_0x25dcx28,_0x25dcx15,_0x25dcx2c){return db[_0x1884[86]][_0x1884[80]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[83]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){return _0x25dcx18[_0x1884[83]](_0x25dcx28[_0x1884[82]][_0x1884[84]],_[_0x1884[85]](_0x25dcx28[_0x1884[82]],[_0x1884[84],_0x1884[78]])|| {})};return null})[_0x1884[45]](respondWithResult(_0x25dcx15,null,_0x1884[83]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[83]))};exports[_0x1884[87]]= function(_0x25dcx28,_0x25dcx18,_0x25dcx2c){var _0x25dcx1b={};var _0x25dcx29={};var _0x25dcx2d;var _0x25dcx1c;return db[_0x1884[56]][_0x1884[88]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx18,null,_0x1884[87]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){_0x25dcx2d= _0x25dcx18;_0x25dcx29[_0x1884[54]]= _[_0x1884[57]](db[_0x1884[86]][_0x1884[55]]);_0x25dcx29[_0x1884[58]]= _[_0x1884[57]](_0x25dcx28[_0x1884[58]]);_0x25dcx29[_0x1884[59]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],_0x25dcx29[_0x1884[58]]);_0x25dcx1b[_0x1884[61]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],qs[_0x1884[62]](_0x25dcx28[_0x1884[58]][_0x1884[62]]));_0x25dcx1b[_0x1884[61]]= (_0x25dcx1b[_0x1884[61]][_0x1884[63]])?_0x25dcx1b[_0x1884[61]]:_0x25dcx29[_0x1884[54]];_0x25dcx1b[_0x1884[66]]= qs[_0x1884[67]](_0x25dcx28[_0x1884[58]][_0x1884[67]]);_0x25dcx1b[_0x1884[68]]= qs[_0x1884[59]](_[_0x1884[69]](_0x25dcx28[_0x1884[58]],_0x25dcx29[_0x1884[59]]));if(_0x25dcx28[_0x1884[58]][_0x1884[70]]){_0x25dcx1b[_0x1884[68]]= _[_0x1884[73]](_0x25dcx1b[_0x1884[68]],{$or:_[_0x1884[72]](_0x25dcx1b[_0x1884[61]],function(_0x25dcx2a){var _0x25dcx2b={};_0x25dcx2b[_0x25dcx2a]= {$like:_0x1884[71]+ _0x25dcx28[_0x1884[58]][_0x1884[70]]+ _0x1884[71]};return _0x25dcx2b})})};_0x25dcx1b= _[_0x1884[73]]({},_0x25dcx1b,_0x25dcx28[_0x1884[74]]);return _0x25dcx2d[_0x1884[87]](_0x25dcx1b)}})[_0x1884[45]](function(_0x25dcx2f){if(_0x25dcx2f){_0x25dcx1c= _0x25dcx2f[_0x1884[63]];if(!_0x25dcx28[_0x1884[58]][_0x1884[65]](_0x1884[64])){_0x25dcx1b[_0x1884[35]]= qs[_0x1884[35]](_0x25dcx28[_0x1884[58]][_0x1884[35]]);_0x25dcx1b[_0x1884[34]]= qs[_0x1884[34]](_0x25dcx28[_0x1884[58]][_0x1884[34]])};return _0x25dcx2d[_0x1884[87]](_0x25dcx1b)}})[_0x1884[45]](function(_0x25dcx2e){return _0x25dcx2e?{count:_0x25dcx1c,rows:_0x25dcx2e}:null})[_0x1884[45]](respondWithResult(_0x25dcx18,null,_0x1884[87]))[_0x1884[75]](handleError(_0x25dcx18,null,_0x1884[87]))};exports[_0x1884[89]]= function(_0x25dcx28,_0x25dcx15,_0x25dcx2c){return db[_0x1884[90]][_0x1884[80]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[89]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){return _0x25dcx18[_0x1884[89]](_0x25dcx28[_0x1884[82]][_0x1884[84]],_[_0x1884[85]](_0x25dcx28[_0x1884[82]],[_0x1884[84],_0x1884[78]])|| {})};return null})[_0x1884[45]](respondWithResult(_0x25dcx15,null,_0x1884[89]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[89]))};exports[_0x1884[91]]= function(_0x25dcx28,_0x25dcx18,_0x25dcx2c){var _0x25dcx1b={};var _0x25dcx29={};var _0x25dcx2d;var _0x25dcx1c;return db[_0x1884[56]][_0x1884[88]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx18,null,_0x1884[91]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){_0x25dcx2d= _0x25dcx18;_0x25dcx29[_0x1884[54]]= _[_0x1884[57]](db[_0x1884[92]][_0x1884[55]]);_0x25dcx29[_0x1884[58]]= _[_0x1884[57]](_0x25dcx28[_0x1884[58]]);_0x25dcx29[_0x1884[59]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],_0x25dcx29[_0x1884[58]]);_0x25dcx1b[_0x1884[61]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],qs[_0x1884[62]](_0x25dcx28[_0x1884[58]][_0x1884[62]]));_0x25dcx1b[_0x1884[61]]= (_0x25dcx1b[_0x1884[61]][_0x1884[63]])?_0x25dcx1b[_0x1884[61]]:_0x25dcx29[_0x1884[54]];_0x25dcx1b[_0x1884[66]]= qs[_0x1884[67]](_0x25dcx28[_0x1884[58]][_0x1884[67]]);_0x25dcx1b[_0x1884[68]]= qs[_0x1884[59]](_[_0x1884[69]](_0x25dcx28[_0x1884[58]],_0x25dcx29[_0x1884[59]]));if(_0x25dcx28[_0x1884[58]][_0x1884[70]]){_0x25dcx1b[_0x1884[68]]= _[_0x1884[73]](_0x25dcx1b[_0x1884[68]],{$or:_[_0x1884[72]](_0x25dcx1b[_0x1884[61]],function(_0x25dcx2a){var _0x25dcx2b={};_0x25dcx2b[_0x25dcx2a]= {$like:_0x1884[71]+ _0x25dcx28[_0x1884[58]][_0x1884[70]]+ _0x1884[71]};return _0x25dcx2b})})};_0x25dcx1b= _[_0x1884[73]]({},_0x25dcx1b,_0x25dcx28[_0x1884[74]]);return _0x25dcx2d[_0x1884[91]](_0x25dcx1b)}})[_0x1884[45]](function(_0x25dcx2f){if(_0x25dcx2f){_0x25dcx1c= _0x25dcx2f[_0x1884[63]];if(!_0x25dcx28[_0x1884[58]][_0x1884[65]](_0x1884[64])){_0x25dcx1b[_0x1884[35]]= qs[_0x1884[35]](_0x25dcx28[_0x1884[58]][_0x1884[35]]);_0x25dcx1b[_0x1884[34]]= qs[_0x1884[34]](_0x25dcx28[_0x1884[58]][_0x1884[34]])};return _0x25dcx2d[_0x1884[91]](_0x25dcx1b)}})[_0x1884[45]](function(_0x25dcx2e){return _0x25dcx2e?{count:_0x25dcx1c,rows:_0x25dcx2e}:null})[_0x1884[45]](respondWithResult(_0x25dcx18,null,_0x1884[91]))[_0x1884[75]](handleError(_0x25dcx18,null,_0x1884[91]))};exports[_0x1884[93]]= function(_0x25dcx28,_0x25dcx15,_0x25dcx2c){if(_0x25dcx28[_0x1884[82]][_0x1884[78]]){delete _0x25dcx28[_0x1884[82]][_0x1884[78]]};return db[_0x1884[56]][_0x1884[80]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[93]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){_0x25dcx28[_0x1884[82]][_0x1884[94]]= _0x25dcx18[_0x1884[78]];return db[_0x1884[95]][_0x1884[81]](_0x25dcx28[_0x1884[82]])}})[_0x1884[45]](respondWithResult(_0x25dcx15,null,_0x1884[93]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[93]))};exports[_0x1884[96]]= function(_0x25dcx28,_0x25dcx15,_0x25dcx2c){return db[_0x1884[97]][_0x1884[80]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx15,null,_0x1884[96]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){return _0x25dcx18[_0x1884[96]](_0x25dcx28[_0x1884[82]][_0x1884[84]],_[_0x1884[85]](_0x25dcx28[_0x1884[82]],[_0x1884[84],_0x1884[78]])|| {})};return null})[_0x1884[45]](respondWithResult(_0x25dcx15,null,_0x1884[96]))[_0x1884[75]](handleError(_0x25dcx15,null,_0x1884[96]))};exports[_0x1884[98]]= function(_0x25dcx28,_0x25dcx18,_0x25dcx2c){var _0x25dcx1b={};var _0x25dcx29={};var _0x25dcx2d;var _0x25dcx1c;return db[_0x1884[56]][_0x1884[88]]({where:{id:_0x25dcx28[_0x1884[79]][_0x1884[78]]}})[_0x1884[45]](handleEntityNotFound(_0x25dcx18,null,_0x1884[98]))[_0x1884[45]](function(_0x25dcx18){if(_0x25dcx18){_0x25dcx2d= _0x25dcx18;_0x25dcx29[_0x1884[54]]= _[_0x1884[57]](db[_0x1884[95]][_0x1884[55]]);_0x25dcx29[_0x1884[58]]= _[_0x1884[57]](_0x25dcx28[_0x1884[58]]);_0x25dcx29[_0x1884[59]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],_0x25dcx29[_0x1884[58]]);_0x25dcx1b[_0x1884[61]]= _[_0x1884[60]](_0x25dcx29[_0x1884[54]],qs[_0x1884[62]](_0x25dcx28[_0x1884[58]][_0x1884[62]]));_0x25dcx1b[_0x1884[61]]= (_0x25dcx1b[_0x1884[61]][_0x1884[63]])?_0x25dcx1b[_0x1884[61]]:_0x25dcx29[_0x1884[54]];_0x25dcx1b[_0x1884[66]]= qs[_0x1884[67]](_0x25dcx28[_0x1884[58]][_0x1884[67]]);_0x25dcx1b[_0x1884[68]]= qs[_0x1884[59]](_[_0x1884[69]](_0x25dcx28[_0x1884[58]],_0x25dcx29[_0x1884[59]]));if(_0x25dcx28[_0x1884[58]][_0x1884[70]]){_0x25dcx1b[_0x1884[68]]= _[_0x1884[73]](_0x25dcx1b[_0x1884[68]],{$or:_[_0x1884[72]](_0x25dcx1b[_0x1884[61]],function(_0x25dcx2a){var _0x25dcx2b={};_0x25dcx2b[_0x25dcx2a]= {$like:_0x1884[71]+ _0x25dcx28[_0x1884[58]][_0x1884[70]]+ _0x1884[71]};return _0x25dcx2b})})};_0x25dcx1b= _[_0x1884[73]]({},_0x25dcx1b,_0x25dcx28[_0x1884[74]]);return _0x25dcx2d[_0x1884[98]](_0x25dcx1b)}})[_0x1884[45]](function(_0x25dcx2f){if(_0x25dcx2f){_0x25dcx1c= _0x25dcx2f[_0x1884[63]];if(!_0x25dcx28[_0x1884[58]][_0x1884[65]](_0x1884[64])){_0x25dcx1b[_0x1884[35]]= qs[_0x1884[35]](_0x25dcx28[_0x1884[58]][_0x1884[35]]);_0x25dcx1b[_0x1884[34]]= qs[_0x1884[34]](_0x25dcx28[_0x1884[58]][_0x1884[34]])};return _0x25dcx2d[_0x1884[98]](_0x25dcx1b)}})[_0x1884[45]](function(_0x25dcx2e){return _0x25dcx2e?{count:_0x25dcx1c,rows:_0x25dcx2e}:null})[_0x1884[45]](respondWithResult(_0x25dcx18,null,_0x1884[98]))[_0x1884[75]](handleError(_0x25dcx18,null,_0x1884[98]))}
\ No newline at end of file
+var _0xb97c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0xb97c[0];var jsonpatch=require(_0xb97c[1]);var rp=require(_0xb97c[2]);var moment=require(_0xb97c[3]);var BPromise=require(_0xb97c[4]);var util=require(_0xb97c[5]);var path=require(_0xb97c[6]);var sox=require(_0xb97c[7]);var ejs=require(_0xb97c[8]);var fs=require(_0xb97c[9]);var _=require(_0xb97c[10]);var squel=require(_0xb97c[11]);var crypto=require(_0xb97c[12]);var jsforce=require(_0xb97c[13]);var toCsv=require(_0xb97c[14]);var qs=require(_0xb97c[15]);var logger=require(_0xb97c[17])(_0xb97c[16]);var utils=require(_0xb97c[18]);var config=require(_0xb97c[19]);var db=require(_0xb97c[21])[_0xb97c[20]];function respondWithStatusCode(_0x5b61x15,_0x5b61x16,_0x5b61x17){_0x5b61x16= _0x5b61x16|| 204;return function(_0x5b61x18){if(_0x5b61x18){logger[_0xb97c[24]](_0xb97c[22],_0x5b61x17,_0x5b61x16,_0xb97c[23]);logger[_0xb97c[26]](_0xb97c[25],_0x5b61x17,_0x5b61x16,_0xb97c[23]);return _0x5b61x15[_0xb97c[27]](_0x5b61x16)};return _0x5b61x15[_0xb97c[29]](304)[_0xb97c[28]]()}}function respondWithResult(_0x5b61x15,_0x5b61x16,_0x5b61x17){_0x5b61x16= _0x5b61x16|| 200;return function(_0x5b61x18){if(_0x5b61x18){logger[_0xb97c[24]](_0xb97c[22],_0x5b61x17,_0x5b61x16,_0xb97c[30]);logger[_0xb97c[26]](_0xb97c[25],_0x5b61x17,_0x5b61x16,_0xb97c[30],JSON[_0xb97c[31]](_0x5b61x18));return _0x5b61x15[_0xb97c[29]](_0x5b61x16)[_0xb97c[32]](_0x5b61x18)};return _0x5b61x15[_0xb97c[29]](304)[_0xb97c[28]]()}}function respondWithFilteredResult(_0x5b61x15,_0x5b61x1b,_0x5b61x17){return function(_0x5b61x18){if(_0x5b61x18){var _0x5b61x1c=_0x5b61x18[_0xb97c[33]],_0x5b61x1d=_0x5b61x1b[_0xb97c[34]],_0x5b61x1e=_0x5b61x1b[_0xb97c[34]]+ _0x5b61x1b[_0xb97c[35]],_0x5b61x16;if(_0x5b61x1e>= _0x5b61x1c){_0x5b61x1e= _0x5b61x1c;_0x5b61x16= 200}else {_0x5b61x16= 206};_0x5b61x15[_0xb97c[29]](_0x5b61x16);logger[_0xb97c[24]](_0xb97c[22],_0x5b61x17,_0x5b61x16,_0xb97c[36]);logger[_0xb97c[26]](_0xb97c[25],_0x5b61x17,_0x5b61x16,_0xb97c[30],JSON[_0xb97c[31]](_0x5b61x18));return _0x5b61x15[_0xb97c[40]](_0xb97c[37],_0x5b61x1d+ _0xb97c[38]+ _0x5b61x1e+ _0xb97c[39]+ _0x5b61x1c)[_0xb97c[32]](_0x5b61x18)};return null}}function patchUpdates(_0x5b61x20){return function(_0x5b61x18){try{jsonpatch[_0xb97c[41]](_0x5b61x18,_0x5b61x20,true)}catch(err){return BPromise[_0xb97c[42]](err)};return _0x5b61x18[_0xb97c[43]]()}}function saveUpdates(_0x5b61x22,_0x5b61x16,_0x5b61x17){return function(_0x5b61x18){if(_0x5b61x18){return _0x5b61x18[_0xb97c[46]](_0x5b61x22)[_0xb97c[45]](function(_0x5b61x23){logger[_0xb97c[24]](_0xb97c[22],_0x5b61x17,_0x5b61x16,_0xb97c[44]);logger[_0xb97c[26]](_0xb97c[25],_0x5b61x17,_0x5b61x16,_0xb97c[44],JSON[_0xb97c[31]](_0x5b61x18));return _0x5b61x23})};return null}}function removeEntity(_0x5b61x15,_0x5b61x16,_0x5b61x17){return function(_0x5b61x18){if(_0x5b61x18){return _0x5b61x18[_0xb97c[48]]()[_0xb97c[45]](function(){logger[_0xb97c[24]](_0xb97c[22],_0x5b61x17,_0x5b61x16,_0xb97c[47]);logger[_0xb97c[26]](_0xb97c[25],_0x5b61x17,_0x5b61x16,_0xb97c[47],JSON[_0xb97c[31]](_0x5b61x18));_0x5b61x15[_0xb97c[29]](204)[_0xb97c[28]]()})}}}function handleEntityNotFound(_0x5b61x15,_0x5b61x16,_0x5b61x17){return function(_0x5b61x18){if(!_0x5b61x18){logger[_0xb97c[50]](_0xb97c[22],_0x5b61x17,404,_0xb97c[49]);_0x5b61x15[_0xb97c[29]](404)[_0xb97c[28]]();return null};return _0x5b61x18}}function handleError(_0x5b61x15,_0x5b61x16,_0x5b61x17){_0x5b61x16= _0x5b61x16|| 500;return function(_0x5b61x27){logger[_0xb97c[50]](_0xb97c[22],_0x5b61x17,_0x5b61x16,JSON[_0xb97c[31]](_0x5b61x27));delete _0x5b61x27[_0xb97c[51]];_0x5b61x15[_0xb97c[29]](_0x5b61x16)[_0xb97c[52]](_0x5b61x27)}}exports[_0xb97c[53]]= function(_0x5b61x28,_0x5b61x15){var _0x5b61x1b={},_0x5b61x29={};_0x5b61x29[_0xb97c[54]]= _[_0xb97c[57]](db[_0xb97c[56]][_0xb97c[55]]);_0x5b61x29[_0xb97c[58]]= _[_0xb97c[57]](_0x5b61x28[_0xb97c[58]]);_0x5b61x29[_0xb97c[59]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],_0x5b61x29[_0xb97c[58]]);_0x5b61x1b[_0xb97c[61]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],qs[_0xb97c[62]](_0x5b61x28[_0xb97c[58]][_0xb97c[62]]));_0x5b61x1b[_0xb97c[61]]= (_0x5b61x1b[_0xb97c[61]][_0xb97c[63]])?_0x5b61x1b[_0xb97c[61]]:_0x5b61x29[_0xb97c[54]];if(!_0x5b61x28[_0xb97c[58]][_0xb97c[65]](_0xb97c[64])){_0x5b61x1b[_0xb97c[35]]= qs[_0xb97c[35]](_0x5b61x28[_0xb97c[58]][_0xb97c[35]]);_0x5b61x1b[_0xb97c[34]]= qs[_0xb97c[34]](_0x5b61x28[_0xb97c[58]][_0xb97c[34]])};_0x5b61x1b[_0xb97c[66]]= qs[_0xb97c[67]](_0x5b61x28[_0xb97c[58]][_0xb97c[67]]);_0x5b61x1b[_0xb97c[68]]= qs[_0xb97c[59]](_[_0xb97c[69]](_0x5b61x28[_0xb97c[58]],_0x5b61x29[_0xb97c[59]]));if(_0x5b61x28[_0xb97c[58]][_0xb97c[70]]){_0x5b61x1b[_0xb97c[68]]= _[_0xb97c[73]](_0x5b61x1b[_0xb97c[68]],{$or:_[_0xb97c[72]](_0x5b61x1b[_0xb97c[61]],function(_0x5b61x2a){var _0x5b61x2b={};_0x5b61x2b[_0x5b61x2a]= {$like:_0xb97c[71]+ _0x5b61x28[_0xb97c[58]][_0xb97c[70]]+ _0xb97c[71]};return _0x5b61x2b})})};_0x5b61x1b= _[_0xb97c[73]]({},_0x5b61x1b,_0x5b61x28[_0xb97c[74]]);return db[_0xb97c[56]][_0xb97c[76]](_0x5b61x1b)[_0xb97c[45]](respondWithFilteredResult(_0x5b61x15,_0x5b61x1b,_0xb97c[53]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[53]))};exports[_0xb97c[77]]= function(_0x5b61x28,_0x5b61x15){var _0x5b61x1b={raw:false,where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}},_0x5b61x29={};_0x5b61x29[_0xb97c[54]]= _[_0xb97c[57]](db[_0xb97c[56]][_0xb97c[55]]);_0x5b61x29[_0xb97c[58]]= _[_0xb97c[57]](_0x5b61x28[_0xb97c[58]]);_0x5b61x29[_0xb97c[59]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],_0x5b61x29[_0xb97c[58]]);_0x5b61x1b[_0xb97c[61]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],qs[_0xb97c[62]](_0x5b61x28[_0xb97c[58]][_0xb97c[62]]));_0x5b61x1b[_0xb97c[61]]= (_0x5b61x1b[_0xb97c[61]][_0xb97c[63]])?_0x5b61x1b[_0xb97c[61]]:_0x5b61x29[_0xb97c[54]];_0x5b61x1b= _[_0xb97c[73]]({},_0x5b61x1b,_0x5b61x28[_0xb97c[74]]);return db[_0xb97c[56]][_0xb97c[80]](_0x5b61x1b)[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[77]))[_0xb97c[45]](respondWithResult(_0x5b61x15,null,_0xb97c[77]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[77]))};exports[_0xb97c[81]]= function(_0x5b61x28,_0x5b61x15){return db[_0xb97c[56]][_0xb97c[81]](_0x5b61x28[_0xb97c[82]],{})[_0xb97c[45]](respondWithResult(_0x5b61x15,201,_0xb97c[81]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[81]))};exports[_0xb97c[46]]= function(_0x5b61x28,_0x5b61x15){if(_0x5b61x28[_0xb97c[82]][_0xb97c[78]]){delete _0x5b61x28[_0xb97c[82]][_0xb97c[78]]};return db[_0xb97c[56]][_0xb97c[80]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[46]))[_0xb97c[45]](saveUpdates(_0x5b61x28[_0xb97c[82]],null,_0xb97c[46]))[_0xb97c[45]](respondWithResult(_0x5b61x15,null,_0xb97c[46]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[46]))};exports[_0xb97c[48]]= function(_0x5b61x28,_0x5b61x15){return db[_0xb97c[56]][_0xb97c[80]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[48]))[_0xb97c[45]](removeEntity(_0x5b61x15,null,_0xb97c[48]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[48]))};exports[_0xb97c[83]]= function(_0x5b61x28,_0x5b61x15,_0x5b61x2c){return db[_0xb97c[86]][_0xb97c[80]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[83]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){return _0x5b61x18[_0xb97c[83]](_0x5b61x28[_0xb97c[82]][_0xb97c[84]],_[_0xb97c[85]](_0x5b61x28[_0xb97c[82]],[_0xb97c[84],_0xb97c[78]])|| {})};return null})[_0xb97c[45]](respondWithResult(_0x5b61x15,null,_0xb97c[83]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[83]))};exports[_0xb97c[87]]= function(_0x5b61x28,_0x5b61x18,_0x5b61x2c){var _0x5b61x1b={};var _0x5b61x29={};var _0x5b61x2d;var _0x5b61x1c;return db[_0xb97c[56]][_0xb97c[88]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x18,null,_0xb97c[87]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){_0x5b61x2d= _0x5b61x18;_0x5b61x29[_0xb97c[54]]= _[_0xb97c[57]](db[_0xb97c[86]][_0xb97c[55]]);_0x5b61x29[_0xb97c[58]]= _[_0xb97c[57]](_0x5b61x28[_0xb97c[58]]);_0x5b61x29[_0xb97c[59]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],_0x5b61x29[_0xb97c[58]]);_0x5b61x1b[_0xb97c[61]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],qs[_0xb97c[62]](_0x5b61x28[_0xb97c[58]][_0xb97c[62]]));_0x5b61x1b[_0xb97c[61]]= (_0x5b61x1b[_0xb97c[61]][_0xb97c[63]])?_0x5b61x1b[_0xb97c[61]]:_0x5b61x29[_0xb97c[54]];_0x5b61x1b[_0xb97c[66]]= qs[_0xb97c[67]](_0x5b61x28[_0xb97c[58]][_0xb97c[67]]);_0x5b61x1b[_0xb97c[68]]= qs[_0xb97c[59]](_[_0xb97c[69]](_0x5b61x28[_0xb97c[58]],_0x5b61x29[_0xb97c[59]]));if(_0x5b61x28[_0xb97c[58]][_0xb97c[70]]){_0x5b61x1b[_0xb97c[68]]= _[_0xb97c[73]](_0x5b61x1b[_0xb97c[68]],{$or:_[_0xb97c[72]](_0x5b61x1b[_0xb97c[61]],function(_0x5b61x2a){var _0x5b61x2b={};_0x5b61x2b[_0x5b61x2a]= {$like:_0xb97c[71]+ _0x5b61x28[_0xb97c[58]][_0xb97c[70]]+ _0xb97c[71]};return _0x5b61x2b})})};_0x5b61x1b= _[_0xb97c[73]]({},_0x5b61x1b,_0x5b61x28[_0xb97c[74]]);return _0x5b61x2d[_0xb97c[87]](_0x5b61x1b)}})[_0xb97c[45]](function(_0x5b61x2f){if(_0x5b61x2f){_0x5b61x1c= _0x5b61x2f[_0xb97c[63]];if(!_0x5b61x28[_0xb97c[58]][_0xb97c[65]](_0xb97c[64])){_0x5b61x1b[_0xb97c[35]]= qs[_0xb97c[35]](_0x5b61x28[_0xb97c[58]][_0xb97c[35]]);_0x5b61x1b[_0xb97c[34]]= qs[_0xb97c[34]](_0x5b61x28[_0xb97c[58]][_0xb97c[34]])};return _0x5b61x2d[_0xb97c[87]](_0x5b61x1b)}})[_0xb97c[45]](function(_0x5b61x2e){return _0x5b61x2e?{count:_0x5b61x1c,rows:_0x5b61x2e}:null})[_0xb97c[45]](respondWithResult(_0x5b61x18,null,_0xb97c[87]))[_0xb97c[75]](handleError(_0x5b61x18,null,_0xb97c[87]))};exports[_0xb97c[89]]= function(_0x5b61x28,_0x5b61x15,_0x5b61x2c){return db[_0xb97c[90]][_0xb97c[80]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[89]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){return _0x5b61x18[_0xb97c[89]](_0x5b61x28[_0xb97c[82]][_0xb97c[84]],_[_0xb97c[85]](_0x5b61x28[_0xb97c[82]],[_0xb97c[84],_0xb97c[78]])|| {})};return null})[_0xb97c[45]](respondWithResult(_0x5b61x15,null,_0xb97c[89]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[89]))};exports[_0xb97c[91]]= function(_0x5b61x28,_0x5b61x18,_0x5b61x2c){var _0x5b61x1b={};var _0x5b61x29={};var _0x5b61x2d;var _0x5b61x1c;return db[_0xb97c[56]][_0xb97c[88]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x18,null,_0xb97c[91]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){_0x5b61x2d= _0x5b61x18;_0x5b61x29[_0xb97c[54]]= _[_0xb97c[57]](db[_0xb97c[92]][_0xb97c[55]]);_0x5b61x29[_0xb97c[58]]= _[_0xb97c[57]](_0x5b61x28[_0xb97c[58]]);_0x5b61x29[_0xb97c[59]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],_0x5b61x29[_0xb97c[58]]);_0x5b61x1b[_0xb97c[61]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],qs[_0xb97c[62]](_0x5b61x28[_0xb97c[58]][_0xb97c[62]]));_0x5b61x1b[_0xb97c[61]]= (_0x5b61x1b[_0xb97c[61]][_0xb97c[63]])?_0x5b61x1b[_0xb97c[61]]:_0x5b61x29[_0xb97c[54]];_0x5b61x1b[_0xb97c[66]]= qs[_0xb97c[67]](_0x5b61x28[_0xb97c[58]][_0xb97c[67]]);_0x5b61x1b[_0xb97c[68]]= qs[_0xb97c[59]](_[_0xb97c[69]](_0x5b61x28[_0xb97c[58]],_0x5b61x29[_0xb97c[59]]));if(_0x5b61x28[_0xb97c[58]][_0xb97c[70]]){_0x5b61x1b[_0xb97c[68]]= _[_0xb97c[73]](_0x5b61x1b[_0xb97c[68]],{$or:_[_0xb97c[72]](_0x5b61x1b[_0xb97c[61]],function(_0x5b61x2a){var _0x5b61x2b={};_0x5b61x2b[_0x5b61x2a]= {$like:_0xb97c[71]+ _0x5b61x28[_0xb97c[58]][_0xb97c[70]]+ _0xb97c[71]};return _0x5b61x2b})})};_0x5b61x1b= _[_0xb97c[73]]({},_0x5b61x1b,_0x5b61x28[_0xb97c[74]]);return _0x5b61x2d[_0xb97c[91]](_0x5b61x1b)}})[_0xb97c[45]](function(_0x5b61x2f){if(_0x5b61x2f){_0x5b61x1c= _0x5b61x2f[_0xb97c[63]];if(!_0x5b61x28[_0xb97c[58]][_0xb97c[65]](_0xb97c[64])){_0x5b61x1b[_0xb97c[35]]= qs[_0xb97c[35]](_0x5b61x28[_0xb97c[58]][_0xb97c[35]]);_0x5b61x1b[_0xb97c[34]]= qs[_0xb97c[34]](_0x5b61x28[_0xb97c[58]][_0xb97c[34]])};return _0x5b61x2d[_0xb97c[91]](_0x5b61x1b)}})[_0xb97c[45]](function(_0x5b61x2e){return _0x5b61x2e?{count:_0x5b61x1c,rows:_0x5b61x2e}:null})[_0xb97c[45]](respondWithResult(_0x5b61x18,null,_0xb97c[91]))[_0xb97c[75]](handleError(_0x5b61x18,null,_0xb97c[91]))};exports[_0xb97c[93]]= function(_0x5b61x28,_0x5b61x15,_0x5b61x2c){if(_0x5b61x28[_0xb97c[82]][_0xb97c[78]]){delete _0x5b61x28[_0xb97c[82]][_0xb97c[78]]};return db[_0xb97c[56]][_0xb97c[80]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[93]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){_0x5b61x28[_0xb97c[82]][_0xb97c[94]]= _0x5b61x18[_0xb97c[78]];return db[_0xb97c[95]][_0xb97c[81]](_0x5b61x28[_0xb97c[82]])}})[_0xb97c[45]](respondWithResult(_0x5b61x15,null,_0xb97c[93]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[93]))};exports[_0xb97c[96]]= function(_0x5b61x28,_0x5b61x15,_0x5b61x2c){return db[_0xb97c[97]][_0xb97c[80]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x15,null,_0xb97c[96]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){return _0x5b61x18[_0xb97c[96]](_0x5b61x28[_0xb97c[82]][_0xb97c[84]],_[_0xb97c[85]](_0x5b61x28[_0xb97c[82]],[_0xb97c[84],_0xb97c[78]])|| {})};return null})[_0xb97c[45]](respondWithResult(_0x5b61x15,null,_0xb97c[96]))[_0xb97c[75]](handleError(_0x5b61x15,null,_0xb97c[96]))};exports[_0xb97c[98]]= function(_0x5b61x28,_0x5b61x18,_0x5b61x2c){var _0x5b61x1b={};var _0x5b61x29={};var _0x5b61x2d;var _0x5b61x1c;return db[_0xb97c[56]][_0xb97c[88]]({where:{id:_0x5b61x28[_0xb97c[79]][_0xb97c[78]]}})[_0xb97c[45]](handleEntityNotFound(_0x5b61x18,null,_0xb97c[98]))[_0xb97c[45]](function(_0x5b61x18){if(_0x5b61x18){_0x5b61x2d= _0x5b61x18;_0x5b61x29[_0xb97c[54]]= _[_0xb97c[57]](db[_0xb97c[95]][_0xb97c[55]]);_0x5b61x29[_0xb97c[58]]= _[_0xb97c[57]](_0x5b61x28[_0xb97c[58]]);_0x5b61x29[_0xb97c[59]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],_0x5b61x29[_0xb97c[58]]);_0x5b61x1b[_0xb97c[61]]= _[_0xb97c[60]](_0x5b61x29[_0xb97c[54]],qs[_0xb97c[62]](_0x5b61x28[_0xb97c[58]][_0xb97c[62]]));_0x5b61x1b[_0xb97c[61]]= (_0x5b61x1b[_0xb97c[61]][_0xb97c[63]])?_0x5b61x1b[_0xb97c[61]]:_0x5b61x29[_0xb97c[54]];_0x5b61x1b[_0xb97c[66]]= qs[_0xb97c[67]](_0x5b61x28[_0xb97c[58]][_0xb97c[67]]);_0x5b61x1b[_0xb97c[68]]= qs[_0xb97c[59]](_[_0xb97c[69]](_0x5b61x28[_0xb97c[58]],_0x5b61x29[_0xb97c[59]]));if(_0x5b61x28[_0xb97c[58]][_0xb97c[70]]){_0x5b61x1b[_0xb97c[68]]= _[_0xb97c[73]](_0x5b61x1b[_0xb97c[68]],{$or:_[_0xb97c[72]](_0x5b61x1b[_0xb97c[61]],function(_0x5b61x2a){var _0x5b61x2b={};_0x5b61x2b[_0x5b61x2a]= {$like:_0xb97c[71]+ _0x5b61x28[_0xb97c[58]][_0xb97c[70]]+ _0xb97c[71]};return _0x5b61x2b})})};_0x5b61x1b= _[_0xb97c[73]]({},_0x5b61x1b,_0x5b61x28[_0xb97c[74]]);return _0x5b61x2d[_0xb97c[98]](_0x5b61x1b)}})[_0xb97c[45]](function(_0x5b61x2f){if(_0x5b61x2f){_0x5b61x1c= _0x5b61x2f[_0xb97c[63]];if(!_0x5b61x28[_0xb97c[58]][_0xb97c[65]](_0xb97c[64])){_0x5b61x1b[_0xb97c[35]]= qs[_0xb97c[35]](_0x5b61x28[_0xb97c[58]][_0xb97c[35]]);_0x5b61x1b[_0xb97c[34]]= qs[_0xb97c[34]](_0x5b61x28[_0xb97c[58]][_0xb97c[34]])};return _0x5b61x2d[_0xb97c[98]](_0x5b61x1b)}})[_0xb97c[45]](function(_0x5b61x2e){return _0x5b61x2e?{count:_0x5b61x1c,rows:_0x5b61x2e}:null})[_0xb97c[45]](respondWithResult(_0x5b61x18,null,_0xb97c[98]))[_0xb97c[75]](handleError(_0x5b61x18,null,_0xb97c[98]))}
\ No newline at end of file
index 0cdea26..12c2350 100644 (file)
@@ -1 +1 @@
-var _0xe002=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xe002[0];var _=require(_0xe002[1]);var util=require(_0xe002[2]);var logger=require(_0xe002[4])(_0xe002[3]);var attributes=require(_0xe002[5]);module[_0xe002[6]]= function(_0xcb1bx5,_0xcb1bx6){return _0xcb1bx5[_0xe002[9]](_0xe002[7],attributes,{tableName:_0xe002[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x375e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x375e[0];var _=require(_0x375e[1]);var util=require(_0x375e[2]);var logger=require(_0x375e[4])(_0x375e[3]);var attributes=require(_0x375e[5]);module[_0x375e[6]]= function(_0x5bdfx5,_0x5bdfx6){return _0x5bdfx5[_0x375e[9]](_0x375e[7],attributes,{tableName:_0x375e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4685875..9ee4855 100644 (file)
@@ -1 +1 @@
-var _0xc954=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc954[0];var _=require(_0xc954[1]);var util=require(_0xc954[2]);var moment=require(_0xc954[3]);var BPromise=require(_0xc954[4]);var db=require(_0xc954[6])[_0xc954[5]];var utils=require(_0xc954[7]);var logger=require(_0xc954[9])(_0xc954[8]);var jayson=require(_0xc954[10]);var client=jayson[_0xc954[12]][_0xc954[11]]({port:9002});function respondWithRpcPromise(_0xfeb1xb,_0xfeb1xc,_0xfeb1xd){return  new BPromise(function(_0xfeb1xe,_0xfeb1xf){return client[_0xc954[25]](_0xfeb1xb,_0xfeb1xd)[_0xc954[24]](function(_0xfeb1x11){logger[_0xc954[17]](_0xc954[13],_0xfeb1xc,_0xc954[16]);logger[_0xc954[20]](_0xc954[18],_0xfeb1xc,_0xc954[16],JSON[_0xc954[19]](_0xfeb1x11));if(_0xfeb1x11[_0xc954[14]]){if(_0xfeb1x11[_0xc954[14]][_0xc954[21]]=== 500){logger[_0xc954[14]](_0xc954[13],_0xfeb1xc,_0xfeb1x11[_0xc954[14]][_0xc954[22]]);return _0xfeb1xf(_0xfeb1x11[_0xc954[14]][_0xc954[22]])};logger[_0xc954[14]](_0xc954[13],_0xfeb1xc,_0xfeb1x11[_0xc954[14]][_0xc954[22]]);return _0xfeb1xe(_0xfeb1x11[_0xc954[14]][_0xc954[22]])}else {logger[_0xc954[17]](_0xc954[13],_0xfeb1xc,_0xc954[16]);_0xfeb1xe(_0xfeb1x11[_0xc954[23]][_0xc954[22]])}})[_0xc954[15]](function(_0xfeb1x10){logger[_0xc954[14]](_0xc954[13],_0xfeb1xc,_0xfeb1x10);_0xfeb1xf(_0xfeb1x10)})})}
\ No newline at end of file
+var _0xc349=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc349[0];var _=require(_0xc349[1]);var util=require(_0xc349[2]);var moment=require(_0xc349[3]);var BPromise=require(_0xc349[4]);var db=require(_0xc349[6])[_0xc349[5]];var utils=require(_0xc349[7]);var logger=require(_0xc349[9])(_0xc349[8]);var jayson=require(_0xc349[10]);var client=jayson[_0xc349[12]][_0xc349[11]]({port:9002});function respondWithRpcPromise(_0xfa04xb,_0xfa04xc,_0xfa04xd){return  new BPromise(function(_0xfa04xe,_0xfa04xf){return client[_0xc349[25]](_0xfa04xb,_0xfa04xd)[_0xc349[24]](function(_0xfa04x11){logger[_0xc349[17]](_0xc349[13],_0xfa04xc,_0xc349[16]);logger[_0xc349[20]](_0xc349[18],_0xfa04xc,_0xc349[16],JSON[_0xc349[19]](_0xfa04x11));if(_0xfa04x11[_0xc349[14]]){if(_0xfa04x11[_0xc349[14]][_0xc349[21]]=== 500){logger[_0xc349[14]](_0xc349[13],_0xfa04xc,_0xfa04x11[_0xc349[14]][_0xc349[22]]);return _0xfa04xf(_0xfa04x11[_0xc349[14]][_0xc349[22]])};logger[_0xc349[14]](_0xc349[13],_0xfa04xc,_0xfa04x11[_0xc349[14]][_0xc349[22]]);return _0xfa04xe(_0xfa04x11[_0xc349[14]][_0xc349[22]])}else {logger[_0xc349[17]](_0xc349[13],_0xfa04xc,_0xc349[16]);_0xfa04xe(_0xfa04x11[_0xc349[23]][_0xc349[22]])}})[_0xc349[15]](function(_0xfa04x10){logger[_0xc349[14]](_0xc349[13],_0xfa04xc,_0xfa04x10);_0xfa04xf(_0xfa04x10)})})}
\ No newline at end of file
index 4a4a60f..f36d33f 100644 (file)
@@ -1 +1 @@
-var _0x8a0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8a0c[0];var multer=require(_0x8a0c[1]);var util=require(_0x8a0c[2]);var path=require(_0x8a0c[3]);var express=require(_0x8a0c[4]);var router=express.Router();var auth=require(_0x8a0c[5]);var config=require(_0x8a0c[6]);var controller=require(_0x8a0c[7]);router[_0x8a0c[11]](_0x8a0c[8],auth[_0x8a0c[9]](),controller[_0x8a0c[10]]);router[_0x8a0c[11]](_0x8a0c[12],auth[_0x8a0c[9]](),controller[_0x8a0c[13]]);router[_0x8a0c[11]](_0x8a0c[14],auth[_0x8a0c[9]](),controller[_0x8a0c[15]]);router[_0x8a0c[11]](_0x8a0c[16],auth[_0x8a0c[9]](),controller[_0x8a0c[17]]);router[_0x8a0c[11]](_0x8a0c[18],auth[_0x8a0c[9]](),controller[_0x8a0c[19]]);router[_0x8a0c[21]](_0x8a0c[8],auth[_0x8a0c[9]](),controller[_0x8a0c[20]]);router[_0x8a0c[21]](_0x8a0c[14],auth[_0x8a0c[9]](),controller[_0x8a0c[22]]);router[_0x8a0c[21]](_0x8a0c[16],auth[_0x8a0c[9]](),controller[_0x8a0c[23]]);router[_0x8a0c[21]](_0x8a0c[18],auth[_0x8a0c[9]](),controller[_0x8a0c[24]]);router[_0x8a0c[21]](_0x8a0c[18],auth[_0x8a0c[9]](),controller[_0x8a0c[25]]);router[_0x8a0c[27]](_0x8a0c[12],auth[_0x8a0c[9]](),controller[_0x8a0c[26]]);router[_0x8a0c[29]](_0x8a0c[12],auth[_0x8a0c[9]](),controller[_0x8a0c[28]]);module[_0x8a0c[30]]= router
\ No newline at end of file
+var _0xebd0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xebd0[0];var multer=require(_0xebd0[1]);var util=require(_0xebd0[2]);var path=require(_0xebd0[3]);var express=require(_0xebd0[4]);var router=express.Router();var auth=require(_0xebd0[5]);var config=require(_0xebd0[6]);var controller=require(_0xebd0[7]);router[_0xebd0[11]](_0xebd0[8],auth[_0xebd0[9]](),controller[_0xebd0[10]]);router[_0xebd0[11]](_0xebd0[12],auth[_0xebd0[9]](),controller[_0xebd0[13]]);router[_0xebd0[11]](_0xebd0[14],auth[_0xebd0[9]](),controller[_0xebd0[15]]);router[_0xebd0[11]](_0xebd0[16],auth[_0xebd0[9]](),controller[_0xebd0[17]]);router[_0xebd0[11]](_0xebd0[18],auth[_0xebd0[9]](),controller[_0xebd0[19]]);router[_0xebd0[21]](_0xebd0[8],auth[_0xebd0[9]](),controller[_0xebd0[20]]);router[_0xebd0[21]](_0xebd0[14],auth[_0xebd0[9]](),controller[_0xebd0[22]]);router[_0xebd0[21]](_0xebd0[16],auth[_0xebd0[9]](),controller[_0xebd0[23]]);router[_0xebd0[21]](_0xebd0[18],auth[_0xebd0[9]](),controller[_0xebd0[24]]);router[_0xebd0[21]](_0xebd0[18],auth[_0xebd0[9]](),controller[_0xebd0[25]]);router[_0xebd0[27]](_0xebd0[12],auth[_0xebd0[9]](),controller[_0xebd0[26]]);router[_0xebd0[29]](_0xebd0[12],auth[_0xebd0[9]](),controller[_0xebd0[28]]);module[_0xebd0[30]]= router
\ No newline at end of file
index 3c8e5d2..f2d0c93 100644 (file)
@@ -1 +1 @@
-var _0x8041=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x8041[0];var Sequelize=require(_0x8041[1]);module[_0x8041[2]]= {app:{type:Sequelize.ENUM(_0x8041[3],_0x8041[4],_0x8041[5],_0x8041[6]),allowNull:false},priority:{type:Sequelize[_0x8041[7]]},timeout:{type:Sequelize[_0x8041[7]],validate:{min:1}},interval:{type:Sequelize[_0x8041[8]]},data1:{type:Sequelize[_0x8041[8]]},data2:{type:Sequelize[_0x8041[8]]},data3:{type:Sequelize[_0x8041[8]]},data4:{type:Sequelize[_0x8041[8]]},data5:{type:Sequelize[_0x8041[8]]},data6:{type:Sequelize[_0x8041[8]]},data7:{type:Sequelize[_0x8041[9]]},data8:{type:Sequelize[_0x8041[7]]},data9:{type:Sequelize[_0x8041[7]]},data10:{type:Sequelize[_0x8041[7]]}}
\ No newline at end of file
+var _0x1923=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x1923[0];var Sequelize=require(_0x1923[1]);module[_0x1923[2]]= {app:{type:Sequelize.ENUM(_0x1923[3],_0x1923[4],_0x1923[5],_0x1923[6]),allowNull:false},priority:{type:Sequelize[_0x1923[7]]},timeout:{type:Sequelize[_0x1923[7]],validate:{min:1}},interval:{type:Sequelize[_0x1923[8]]},data1:{type:Sequelize[_0x1923[8]]},data2:{type:Sequelize[_0x1923[8]]},data3:{type:Sequelize[_0x1923[8]]},data4:{type:Sequelize[_0x1923[8]]},data5:{type:Sequelize[_0x1923[8]]},data6:{type:Sequelize[_0x1923[8]]},data7:{type:Sequelize[_0x1923[9]]},data8:{type:Sequelize[_0x1923[7]]},data9:{type:Sequelize[_0x1923[7]]},data10:{type:Sequelize[_0x1923[7]]}}
\ No newline at end of file
index 203ee1e..a29fef2 100644 (file)
@@ -1 +1 @@
-var _0x3384=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x3384[0];var jsonpatch=require(_0x3384[1]);var rp=require(_0x3384[2]);var moment=require(_0x3384[3]);var BPromise=require(_0x3384[4]);var util=require(_0x3384[5]);var path=require(_0x3384[6]);var sox=require(_0x3384[7]);var ejs=require(_0x3384[8]);var fs=require(_0x3384[9]);var _=require(_0x3384[10]);var squel=require(_0x3384[11]);var crypto=require(_0x3384[12]);var jsforce=require(_0x3384[13]);var toCsv=require(_0x3384[14]);var qs=require(_0x3384[15]);var logger=require(_0x3384[17])(_0x3384[16]);var utils=require(_0x3384[18]);var config=require(_0x3384[19]);var db=require(_0x3384[21])[_0x3384[20]];function respondWithStatusCode(_0x1d76x15,_0x1d76x16,_0x1d76x17){_0x1d76x16= _0x1d76x16|| 204;return function(_0x1d76x18){if(_0x1d76x18){logger[_0x3384[24]](_0x3384[22],_0x1d76x17,_0x1d76x16,_0x3384[23]);logger[_0x3384[26]](_0x3384[25],_0x1d76x17,_0x1d76x16,_0x3384[23]);return _0x1d76x15[_0x3384[27]](_0x1d76x16)};return _0x1d76x15[_0x3384[29]](304)[_0x3384[28]]()}}function respondWithResult(_0x1d76x15,_0x1d76x16,_0x1d76x17){_0x1d76x16= _0x1d76x16|| 200;return function(_0x1d76x18){if(_0x1d76x18){logger[_0x3384[24]](_0x3384[22],_0x1d76x17,_0x1d76x16,_0x3384[30]);logger[_0x3384[26]](_0x3384[25],_0x1d76x17,_0x1d76x16,_0x3384[30],JSON[_0x3384[31]](_0x1d76x18));return _0x1d76x15[_0x3384[29]](_0x1d76x16)[_0x3384[32]](_0x1d76x18)};return _0x1d76x15[_0x3384[29]](304)[_0x3384[28]]()}}function respondWithFilteredResult(_0x1d76x15,_0x1d76x1b,_0x1d76x17){return function(_0x1d76x18){if(_0x1d76x18){var _0x1d76x1c=_0x1d76x18[_0x3384[33]],_0x1d76x1d=_0x1d76x1b[_0x3384[34]],_0x1d76x1e=_0x1d76x1b[_0x3384[34]]+ _0x1d76x1b[_0x3384[35]],_0x1d76x16;if(_0x1d76x1e>= _0x1d76x1c){_0x1d76x1e= _0x1d76x1c;_0x1d76x16= 200}else {_0x1d76x16= 206};_0x1d76x15[_0x3384[29]](_0x1d76x16);logger[_0x3384[24]](_0x3384[22],_0x1d76x17,_0x1d76x16,_0x3384[36]);logger[_0x3384[26]](_0x3384[25],_0x1d76x17,_0x1d76x16,_0x3384[30],JSON[_0x3384[31]](_0x1d76x18));return _0x1d76x15[_0x3384[40]](_0x3384[37],_0x1d76x1d+ _0x3384[38]+ _0x1d76x1e+ _0x3384[39]+ _0x1d76x1c)[_0x3384[32]](_0x1d76x18)};return null}}function patchUpdates(_0x1d76x20){return function(_0x1d76x18){try{jsonpatch[_0x3384[41]](_0x1d76x18,_0x1d76x20,true)}catch(err){return BPromise[_0x3384[42]](err)};return _0x1d76x18[_0x3384[43]]()}}function saveUpdates(_0x1d76x22,_0x1d76x16,_0x1d76x17){return function(_0x1d76x18){if(_0x1d76x18){return _0x1d76x18[_0x3384[46]](_0x1d76x22)[_0x3384[45]](function(_0x1d76x23){logger[_0x3384[24]](_0x3384[22],_0x1d76x17,_0x1d76x16,_0x3384[44]);logger[_0x3384[26]](_0x3384[25],_0x1d76x17,_0x1d76x16,_0x3384[44],JSON[_0x3384[31]](_0x1d76x18));return _0x1d76x23})};return null}}function removeEntity(_0x1d76x15,_0x1d76x16,_0x1d76x17){return function(_0x1d76x18){if(_0x1d76x18){return _0x1d76x18[_0x3384[48]]()[_0x3384[45]](function(){logger[_0x3384[24]](_0x3384[22],_0x1d76x17,_0x1d76x16,_0x3384[47]);logger[_0x3384[26]](_0x3384[25],_0x1d76x17,_0x1d76x16,_0x3384[47],JSON[_0x3384[31]](_0x1d76x18));_0x1d76x15[_0x3384[29]](204)[_0x3384[28]]()})}}}function handleEntityNotFound(_0x1d76x15,_0x1d76x16,_0x1d76x17){return function(_0x1d76x18){if(!_0x1d76x18){logger[_0x3384[50]](_0x3384[22],_0x1d76x17,404,_0x3384[49]);_0x1d76x15[_0x3384[29]](404)[_0x3384[28]]();return null};return _0x1d76x18}}function handleError(_0x1d76x15,_0x1d76x16,_0x1d76x17){_0x1d76x16= _0x1d76x16|| 500;return function(_0x1d76x27){logger[_0x3384[50]](_0x3384[22],_0x1d76x17,_0x1d76x16,JSON[_0x3384[31]](_0x1d76x27));delete _0x1d76x27[_0x3384[51]];_0x1d76x15[_0x3384[29]](_0x1d76x16)[_0x3384[52]](_0x1d76x27)}}exports[_0x3384[53]]= function(_0x1d76x28,_0x1d76x15){var _0x1d76x1b={raw:true,where:{id:_0x1d76x28[_0x3384[55]][_0x3384[54]]}},_0x1d76x29={};_0x1d76x29[_0x3384[56]]= _[_0x3384[59]](db[_0x3384[58]][_0x3384[57]]);_0x1d76x29[_0x3384[60]]= _[_0x3384[59]](_0x1d76x28[_0x3384[60]]);_0x1d76x29[_0x3384[61]]= _[_0x3384[62]](_0x1d76x29[_0x3384[56]],_0x1d76x29[_0x3384[60]]);_0x1d76x1b[_0x3384[63]]= _[_0x3384[62]](_0x1d76x29[_0x3384[56]],qs[_0x3384[64]](_0x1d76x28[_0x3384[60]][_0x3384[64]]));_0x1d76x1b[_0x3384[63]]= (_0x1d76x1b[_0x3384[63]][_0x3384[65]])?_0x1d76x1b[_0x3384[63]]:_0x1d76x29[_0x3384[56]];_0x1d76x1b= _[_0x3384[67]]({},_0x1d76x1b,_0x1d76x28[_0x3384[66]]);return db[_0x3384[58]][_0x3384[69]](_0x1d76x1b)[_0x3384[45]](handleEntityNotFound(_0x1d76x15,null,_0x3384[53]))[_0x3384[45]](respondWithResult(_0x1d76x15,null,_0x3384[53]))[_0x3384[68]](handleError(_0x1d76x15,null,_0x3384[53]))};exports[_0x3384[46]]= function(_0x1d76x28,_0x1d76x15){if(_0x1d76x28[_0x3384[70]][_0x3384[54]]){delete _0x1d76x28[_0x3384[70]][_0x3384[54]]};return db[_0x3384[58]][_0x3384[69]]({where:{id:_0x1d76x28[_0x3384[55]][_0x3384[54]]}})[_0x3384[45]](handleEntityNotFound(_0x1d76x15,null,_0x3384[46]))[_0x3384[45]](saveUpdates(_0x1d76x28[_0x3384[70]],null,_0x3384[46]))[_0x3384[45]](respondWithResult(_0x1d76x15,null,_0x3384[46]))[_0x3384[68]](handleError(_0x1d76x15,null,_0x3384[46]))};exports[_0x3384[48]]= function(_0x1d76x28,_0x1d76x15){return db[_0x3384[58]][_0x3384[69]]({where:{id:_0x1d76x28[_0x3384[55]][_0x3384[54]]}})[_0x3384[45]](handleEntityNotFound(_0x1d76x15,null,_0x3384[48]))[_0x3384[45]](removeEntity(_0x1d76x15,null,_0x3384[48]))[_0x3384[68]](handleError(_0x1d76x15,null,_0x3384[48]))}
\ No newline at end of file
+var _0x9f60=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x9f60[0];var jsonpatch=require(_0x9f60[1]);var rp=require(_0x9f60[2]);var moment=require(_0x9f60[3]);var BPromise=require(_0x9f60[4]);var util=require(_0x9f60[5]);var path=require(_0x9f60[6]);var sox=require(_0x9f60[7]);var ejs=require(_0x9f60[8]);var fs=require(_0x9f60[9]);var _=require(_0x9f60[10]);var squel=require(_0x9f60[11]);var crypto=require(_0x9f60[12]);var jsforce=require(_0x9f60[13]);var toCsv=require(_0x9f60[14]);var qs=require(_0x9f60[15]);var logger=require(_0x9f60[17])(_0x9f60[16]);var utils=require(_0x9f60[18]);var config=require(_0x9f60[19]);var db=require(_0x9f60[21])[_0x9f60[20]];function respondWithStatusCode(_0xcf91x15,_0xcf91x16,_0xcf91x17){_0xcf91x16= _0xcf91x16|| 204;return function(_0xcf91x18){if(_0xcf91x18){logger[_0x9f60[24]](_0x9f60[22],_0xcf91x17,_0xcf91x16,_0x9f60[23]);logger[_0x9f60[26]](_0x9f60[25],_0xcf91x17,_0xcf91x16,_0x9f60[23]);return _0xcf91x15[_0x9f60[27]](_0xcf91x16)};return _0xcf91x15[_0x9f60[29]](304)[_0x9f60[28]]()}}function respondWithResult(_0xcf91x15,_0xcf91x16,_0xcf91x17){_0xcf91x16= _0xcf91x16|| 200;return function(_0xcf91x18){if(_0xcf91x18){logger[_0x9f60[24]](_0x9f60[22],_0xcf91x17,_0xcf91x16,_0x9f60[30]);logger[_0x9f60[26]](_0x9f60[25],_0xcf91x17,_0xcf91x16,_0x9f60[30],JSON[_0x9f60[31]](_0xcf91x18));return _0xcf91x15[_0x9f60[29]](_0xcf91x16)[_0x9f60[32]](_0xcf91x18)};return _0xcf91x15[_0x9f60[29]](304)[_0x9f60[28]]()}}function respondWithFilteredResult(_0xcf91x15,_0xcf91x1b,_0xcf91x17){return function(_0xcf91x18){if(_0xcf91x18){var _0xcf91x1c=_0xcf91x18[_0x9f60[33]],_0xcf91x1d=_0xcf91x1b[_0x9f60[34]],_0xcf91x1e=_0xcf91x1b[_0x9f60[34]]+ _0xcf91x1b[_0x9f60[35]],_0xcf91x16;if(_0xcf91x1e>= _0xcf91x1c){_0xcf91x1e= _0xcf91x1c;_0xcf91x16= 200}else {_0xcf91x16= 206};_0xcf91x15[_0x9f60[29]](_0xcf91x16);logger[_0x9f60[24]](_0x9f60[22],_0xcf91x17,_0xcf91x16,_0x9f60[36]);logger[_0x9f60[26]](_0x9f60[25],_0xcf91x17,_0xcf91x16,_0x9f60[30],JSON[_0x9f60[31]](_0xcf91x18));return _0xcf91x15[_0x9f60[40]](_0x9f60[37],_0xcf91x1d+ _0x9f60[38]+ _0xcf91x1e+ _0x9f60[39]+ _0xcf91x1c)[_0x9f60[32]](_0xcf91x18)};return null}}function patchUpdates(_0xcf91x20){return function(_0xcf91x18){try{jsonpatch[_0x9f60[41]](_0xcf91x18,_0xcf91x20,true)}catch(err){return BPromise[_0x9f60[42]](err)};return _0xcf91x18[_0x9f60[43]]()}}function saveUpdates(_0xcf91x22,_0xcf91x16,_0xcf91x17){return function(_0xcf91x18){if(_0xcf91x18){return _0xcf91x18[_0x9f60[46]](_0xcf91x22)[_0x9f60[45]](function(_0xcf91x23){logger[_0x9f60[24]](_0x9f60[22],_0xcf91x17,_0xcf91x16,_0x9f60[44]);logger[_0x9f60[26]](_0x9f60[25],_0xcf91x17,_0xcf91x16,_0x9f60[44],JSON[_0x9f60[31]](_0xcf91x18));return _0xcf91x23})};return null}}function removeEntity(_0xcf91x15,_0xcf91x16,_0xcf91x17){return function(_0xcf91x18){if(_0xcf91x18){return _0xcf91x18[_0x9f60[48]]()[_0x9f60[45]](function(){logger[_0x9f60[24]](_0x9f60[22],_0xcf91x17,_0xcf91x16,_0x9f60[47]);logger[_0x9f60[26]](_0x9f60[25],_0xcf91x17,_0xcf91x16,_0x9f60[47],JSON[_0x9f60[31]](_0xcf91x18));_0xcf91x15[_0x9f60[29]](204)[_0x9f60[28]]()})}}}function handleEntityNotFound(_0xcf91x15,_0xcf91x16,_0xcf91x17){return function(_0xcf91x18){if(!_0xcf91x18){logger[_0x9f60[50]](_0x9f60[22],_0xcf91x17,404,_0x9f60[49]);_0xcf91x15[_0x9f60[29]](404)[_0x9f60[28]]();return null};return _0xcf91x18}}function handleError(_0xcf91x15,_0xcf91x16,_0xcf91x17){_0xcf91x16= _0xcf91x16|| 500;return function(_0xcf91x27){logger[_0x9f60[50]](_0x9f60[22],_0xcf91x17,_0xcf91x16,JSON[_0x9f60[31]](_0xcf91x27));delete _0xcf91x27[_0x9f60[51]];_0xcf91x15[_0x9f60[29]](_0xcf91x16)[_0x9f60[52]](_0xcf91x27)}}exports[_0x9f60[53]]= function(_0xcf91x28,_0xcf91x15){var _0xcf91x1b={raw:true,where:{id:_0xcf91x28[_0x9f60[55]][_0x9f60[54]]}},_0xcf91x29={};_0xcf91x29[_0x9f60[56]]= _[_0x9f60[59]](db[_0x9f60[58]][_0x9f60[57]]);_0xcf91x29[_0x9f60[60]]= _[_0x9f60[59]](_0xcf91x28[_0x9f60[60]]);_0xcf91x29[_0x9f60[61]]= _[_0x9f60[62]](_0xcf91x29[_0x9f60[56]],_0xcf91x29[_0x9f60[60]]);_0xcf91x1b[_0x9f60[63]]= _[_0x9f60[62]](_0xcf91x29[_0x9f60[56]],qs[_0x9f60[64]](_0xcf91x28[_0x9f60[60]][_0x9f60[64]]));_0xcf91x1b[_0x9f60[63]]= (_0xcf91x1b[_0x9f60[63]][_0x9f60[65]])?_0xcf91x1b[_0x9f60[63]]:_0xcf91x29[_0x9f60[56]];_0xcf91x1b= _[_0x9f60[67]]({},_0xcf91x1b,_0xcf91x28[_0x9f60[66]]);return db[_0x9f60[58]][_0x9f60[69]](_0xcf91x1b)[_0x9f60[45]](handleEntityNotFound(_0xcf91x15,null,_0x9f60[53]))[_0x9f60[45]](respondWithResult(_0xcf91x15,null,_0x9f60[53]))[_0x9f60[68]](handleError(_0xcf91x15,null,_0x9f60[53]))};exports[_0x9f60[46]]= function(_0xcf91x28,_0xcf91x15){if(_0xcf91x28[_0x9f60[70]][_0x9f60[54]]){delete _0xcf91x28[_0x9f60[70]][_0x9f60[54]]};return db[_0x9f60[58]][_0x9f60[69]]({where:{id:_0xcf91x28[_0x9f60[55]][_0x9f60[54]]}})[_0x9f60[45]](handleEntityNotFound(_0xcf91x15,null,_0x9f60[46]))[_0x9f60[45]](saveUpdates(_0xcf91x28[_0x9f60[70]],null,_0x9f60[46]))[_0x9f60[45]](respondWithResult(_0xcf91x15,null,_0x9f60[46]))[_0x9f60[68]](handleError(_0xcf91x15,null,_0x9f60[46]))};exports[_0x9f60[48]]= function(_0xcf91x28,_0xcf91x15){return db[_0x9f60[58]][_0x9f60[69]]({where:{id:_0xcf91x28[_0x9f60[55]][_0x9f60[54]]}})[_0x9f60[45]](handleEntityNotFound(_0xcf91x15,null,_0x9f60[48]))[_0x9f60[45]](removeEntity(_0xcf91x15,null,_0x9f60[48]))[_0x9f60[68]](handleError(_0xcf91x15,null,_0x9f60[48]))}
\ No newline at end of file
index a566e48..1d6db23 100644 (file)
@@ -1 +1 @@
-var _0x48ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x48ce[0];var _=require(_0x48ce[1]);var util=require(_0x48ce[2]);var logger=require(_0x48ce[4])(_0x48ce[3]);var attributes=require(_0x48ce[5]);module[_0x48ce[6]]= function(_0x8785x5,_0x8785x6){return _0x8785x5[_0x48ce[9]](_0x48ce[7],attributes,{tableName:_0x48ce[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7fad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x7fad[0];var _=require(_0x7fad[1]);var util=require(_0x7fad[2]);var logger=require(_0x7fad[4])(_0x7fad[3]);var attributes=require(_0x7fad[5]);module[_0x7fad[6]]= function(_0x8d22x5,_0x8d22x6){return _0x8d22x5[_0x7fad[9]](_0x7fad[7],attributes,{tableName:_0x7fad[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index fd4d6a9..8a917b9 100644 (file)
@@ -1 +1 @@
-var _0x4a5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4a5a[0];var _=require(_0x4a5a[1]);var util=require(_0x4a5a[2]);var moment=require(_0x4a5a[3]);var BPromise=require(_0x4a5a[4]);var db=require(_0x4a5a[6])[_0x4a5a[5]];var utils=require(_0x4a5a[7]);var logger=require(_0x4a5a[9])(_0x4a5a[8]);var jayson=require(_0x4a5a[10]);var client=jayson[_0x4a5a[12]][_0x4a5a[11]]({port:9002});function respondWithRpcPromise(_0xf80bxb,_0xf80bxc,_0xf80bxd){return  new BPromise(function(_0xf80bxe,_0xf80bxf){return client[_0x4a5a[25]](_0xf80bxb,_0xf80bxd)[_0x4a5a[24]](function(_0xf80bx11){logger[_0x4a5a[17]](_0x4a5a[13],_0xf80bxc,_0x4a5a[16]);logger[_0x4a5a[20]](_0x4a5a[18],_0xf80bxc,_0x4a5a[16],JSON[_0x4a5a[19]](_0xf80bx11));if(_0xf80bx11[_0x4a5a[14]]){if(_0xf80bx11[_0x4a5a[14]][_0x4a5a[21]]=== 500){logger[_0x4a5a[14]](_0x4a5a[13],_0xf80bxc,_0xf80bx11[_0x4a5a[14]][_0x4a5a[22]]);return _0xf80bxf(_0xf80bx11[_0x4a5a[14]][_0x4a5a[22]])};logger[_0x4a5a[14]](_0x4a5a[13],_0xf80bxc,_0xf80bx11[_0x4a5a[14]][_0x4a5a[22]]);return _0xf80bxe(_0xf80bx11[_0x4a5a[14]][_0x4a5a[22]])}else {logger[_0x4a5a[17]](_0x4a5a[13],_0xf80bxc,_0x4a5a[16]);_0xf80bxe(_0xf80bx11[_0x4a5a[23]][_0x4a5a[22]])}})[_0x4a5a[15]](function(_0xf80bx10){logger[_0x4a5a[14]](_0x4a5a[13],_0xf80bxc,_0xf80bx10);_0xf80bxf(_0xf80bx10)})})}
\ No newline at end of file
+var _0x29e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x29e2[0];var _=require(_0x29e2[1]);var util=require(_0x29e2[2]);var moment=require(_0x29e2[3]);var BPromise=require(_0x29e2[4]);var db=require(_0x29e2[6])[_0x29e2[5]];var utils=require(_0x29e2[7]);var logger=require(_0x29e2[9])(_0x29e2[8]);var jayson=require(_0x29e2[10]);var client=jayson[_0x29e2[12]][_0x29e2[11]]({port:9002});function respondWithRpcPromise(_0xf2b1xb,_0xf2b1xc,_0xf2b1xd){return  new BPromise(function(_0xf2b1xe,_0xf2b1xf){return client[_0x29e2[25]](_0xf2b1xb,_0xf2b1xd)[_0x29e2[24]](function(_0xf2b1x11){logger[_0x29e2[17]](_0x29e2[13],_0xf2b1xc,_0x29e2[16]);logger[_0x29e2[20]](_0x29e2[18],_0xf2b1xc,_0x29e2[16],JSON[_0x29e2[19]](_0xf2b1x11));if(_0xf2b1x11[_0x29e2[14]]){if(_0xf2b1x11[_0x29e2[14]][_0x29e2[21]]=== 500){logger[_0x29e2[14]](_0x29e2[13],_0xf2b1xc,_0xf2b1x11[_0x29e2[14]][_0x29e2[22]]);return _0xf2b1xf(_0xf2b1x11[_0x29e2[14]][_0x29e2[22]])};logger[_0x29e2[14]](_0x29e2[13],_0xf2b1xc,_0xf2b1x11[_0x29e2[14]][_0x29e2[22]]);return _0xf2b1xe(_0xf2b1x11[_0x29e2[14]][_0x29e2[22]])}else {logger[_0x29e2[17]](_0x29e2[13],_0xf2b1xc,_0x29e2[16]);_0xf2b1xe(_0xf2b1x11[_0x29e2[23]][_0x29e2[22]])}})[_0x29e2[15]](function(_0xf2b1x10){logger[_0x29e2[14]](_0x29e2[13],_0xf2b1xc,_0xf2b1x10);_0xf2b1xf(_0xf2b1x10)})})}
\ No newline at end of file
index d90e491..45b811d 100644 (file)
@@ -1 +1 @@
-var _0x56ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x56ae[0];var multer=require(_0x56ae[1]);var util=require(_0x56ae[2]);var path=require(_0x56ae[3]);var express=require(_0x56ae[4]);var router=express.Router();var auth=require(_0x56ae[5]);var config=require(_0x56ae[6]);var controller=require(_0x56ae[7]);router[_0x56ae[11]](_0x56ae[8],auth[_0x56ae[9]](),controller[_0x56ae[10]]);router[_0x56ae[13]](_0x56ae[8],auth[_0x56ae[9]](),controller[_0x56ae[12]]);router[_0x56ae[15]](_0x56ae[8],auth[_0x56ae[9]](),controller[_0x56ae[14]]);module[_0x56ae[16]]= router
\ No newline at end of file
+var _0xec25=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xec25[0];var multer=require(_0xec25[1]);var util=require(_0xec25[2]);var path=require(_0xec25[3]);var express=require(_0xec25[4]);var router=express.Router();var auth=require(_0xec25[5]);var config=require(_0xec25[6]);var controller=require(_0xec25[7]);router[_0xec25[11]](_0xec25[8],auth[_0xec25[9]](),controller[_0xec25[10]]);router[_0xec25[13]](_0xec25[8],auth[_0xec25[9]](),controller[_0xec25[12]]);router[_0xec25[15]](_0xec25[8],auth[_0xec25[9]](),controller[_0xec25[14]]);module[_0xec25[16]]= router
\ No newline at end of file
index 8f29a9e..91bd0c7 100644 (file)
@@ -1 +1 @@
-var _0xe0e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xe0e9[0];var Sequelize=require(_0xe0e9[1]);module[_0xe0e9[2]]= {path:{type:Sequelize[_0xe0e9[3]],allowNull:false},name:{type:Sequelize[_0xe0e9[3]],allowNull:false},basename:{type:Sequelize[_0xe0e9[3]]},type:{type:Sequelize[_0xe0e9[3]]}}
\ No newline at end of file
+var _0xe1d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xe1d6[0];var Sequelize=require(_0xe1d6[1]);module[_0xe1d6[2]]= {path:{type:Sequelize[_0xe1d6[3]],allowNull:false},name:{type:Sequelize[_0xe1d6[3]],allowNull:false},basename:{type:Sequelize[_0xe1d6[3]]},type:{type:Sequelize[_0xe1d6[3]]}}
\ No newline at end of file
index 85d2124..d4e26f5 100644 (file)
@@ -1 +1 @@
-var _0x3646=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x3646[0];var jsonpatch=require(_0x3646[1]);var rp=require(_0x3646[2]);var moment=require(_0x3646[3]);var BPromise=require(_0x3646[4]);var util=require(_0x3646[5]);var path=require(_0x3646[6]);var sox=require(_0x3646[7]);var ejs=require(_0x3646[8]);var fs=require(_0x3646[9]);var _=require(_0x3646[10]);var squel=require(_0x3646[11]);var crypto=require(_0x3646[12]);var jsforce=require(_0x3646[13]);var toCsv=require(_0x3646[14]);var qs=require(_0x3646[15]);var logger=require(_0x3646[17])(_0x3646[16]);var utils=require(_0x3646[18]);var config=require(_0x3646[19]);var db=require(_0x3646[21])[_0x3646[20]];function respondWithStatusCode(_0x225dx15,_0x225dx16,_0x225dx17){_0x225dx16= _0x225dx16|| 204;return function(_0x225dx18){if(_0x225dx18){logger[_0x3646[24]](_0x3646[22],_0x225dx17,_0x225dx16,_0x3646[23]);logger[_0x3646[26]](_0x3646[25],_0x225dx17,_0x225dx16,_0x3646[23]);return _0x225dx15[_0x3646[27]](_0x225dx16)};return _0x225dx15[_0x3646[29]](304)[_0x3646[28]]()}}function respondWithResult(_0x225dx15,_0x225dx16,_0x225dx17){_0x225dx16= _0x225dx16|| 200;return function(_0x225dx18){if(_0x225dx18){logger[_0x3646[24]](_0x3646[22],_0x225dx17,_0x225dx16,_0x3646[30]);logger[_0x3646[26]](_0x3646[25],_0x225dx17,_0x225dx16,_0x3646[30],JSON[_0x3646[31]](_0x225dx18));return _0x225dx15[_0x3646[29]](_0x225dx16)[_0x3646[32]](_0x225dx18)};return _0x225dx15[_0x3646[29]](304)[_0x3646[28]]()}}function respondWithFilteredResult(_0x225dx15,_0x225dx1b,_0x225dx17){return function(_0x225dx18){if(_0x225dx18){var _0x225dx1c=_0x225dx18[_0x3646[33]],_0x225dx1d=_0x225dx1b[_0x3646[34]],_0x225dx1e=_0x225dx1b[_0x3646[34]]+ _0x225dx1b[_0x3646[35]],_0x225dx16;if(_0x225dx1e>= _0x225dx1c){_0x225dx1e= _0x225dx1c;_0x225dx16= 200}else {_0x225dx16= 206};_0x225dx15[_0x3646[29]](_0x225dx16);logger[_0x3646[24]](_0x3646[22],_0x225dx17,_0x225dx16,_0x3646[36]);logger[_0x3646[26]](_0x3646[25],_0x225dx17,_0x225dx16,_0x3646[30],JSON[_0x3646[31]](_0x225dx18));return _0x225dx15[_0x3646[40]](_0x3646[37],_0x225dx1d+ _0x3646[38]+ _0x225dx1e+ _0x3646[39]+ _0x225dx1c)[_0x3646[32]](_0x225dx18)};return null}}function patchUpdates(_0x225dx20){return function(_0x225dx18){try{jsonpatch[_0x3646[41]](_0x225dx18,_0x225dx20,true)}catch(err){return BPromise[_0x3646[42]](err)};return _0x225dx18[_0x3646[43]]()}}function saveUpdates(_0x225dx22,_0x225dx16,_0x225dx17){return function(_0x225dx18){if(_0x225dx18){return _0x225dx18[_0x3646[46]](_0x225dx22)[_0x3646[45]](function(_0x225dx23){logger[_0x3646[24]](_0x3646[22],_0x225dx17,_0x225dx16,_0x3646[44]);logger[_0x3646[26]](_0x3646[25],_0x225dx17,_0x225dx16,_0x3646[44],JSON[_0x3646[31]](_0x225dx18));return _0x225dx23})};return null}}function removeEntity(_0x225dx15,_0x225dx16,_0x225dx17){return function(_0x225dx18){if(_0x225dx18){return _0x225dx18[_0x3646[48]]()[_0x3646[45]](function(){logger[_0x3646[24]](_0x3646[22],_0x225dx17,_0x225dx16,_0x3646[47]);logger[_0x3646[26]](_0x3646[25],_0x225dx17,_0x225dx16,_0x3646[47],JSON[_0x3646[31]](_0x225dx18));_0x225dx15[_0x3646[29]](204)[_0x3646[28]]()})}}}function handleEntityNotFound(_0x225dx15,_0x225dx16,_0x225dx17){return function(_0x225dx18){if(!_0x225dx18){logger[_0x3646[50]](_0x3646[22],_0x225dx17,404,_0x3646[49]);_0x225dx15[_0x3646[29]](404)[_0x3646[28]]();return null};return _0x225dx18}}function handleError(_0x225dx15,_0x225dx16,_0x225dx17){_0x225dx16= _0x225dx16|| 500;return function(_0x225dx27){logger[_0x3646[50]](_0x3646[22],_0x225dx17,_0x225dx16,JSON[_0x3646[31]](_0x225dx27));delete _0x225dx27[_0x3646[51]];_0x225dx15[_0x3646[29]](_0x225dx16)[_0x3646[52]](_0x225dx27)}}exports[_0x3646[53]]= function(_0x225dx28,_0x225dx15){var _0x225dx1b={},_0x225dx29={};_0x225dx29[_0x3646[54]]= _[_0x3646[57]](db[_0x3646[56]][_0x3646[55]]);_0x225dx29[_0x3646[58]]= _[_0x3646[57]](_0x225dx28[_0x3646[58]]);_0x225dx29[_0x3646[59]]= _[_0x3646[60]](_0x225dx29[_0x3646[54]],_0x225dx29[_0x3646[58]]);_0x225dx1b[_0x3646[61]]= _[_0x3646[60]](_0x225dx29[_0x3646[54]],qs[_0x3646[62]](_0x225dx28[_0x3646[58]][_0x3646[62]]));_0x225dx1b[_0x3646[61]]= (_0x225dx1b[_0x3646[61]][_0x3646[63]])?_0x225dx1b[_0x3646[61]]:_0x225dx29[_0x3646[54]];if(!_0x225dx28[_0x3646[58]][_0x3646[65]](_0x3646[64])){_0x225dx1b[_0x3646[35]]= qs[_0x3646[35]](_0x225dx28[_0x3646[58]][_0x3646[35]]);_0x225dx1b[_0x3646[34]]= qs[_0x3646[34]](_0x225dx28[_0x3646[58]][_0x3646[34]])};_0x225dx1b[_0x3646[66]]= qs[_0x3646[67]](_0x225dx28[_0x3646[58]][_0x3646[67]]);_0x225dx1b[_0x3646[68]]= qs[_0x3646[59]](_[_0x3646[69]](_0x225dx28[_0x3646[58]],_0x225dx29[_0x3646[59]]));if(_0x225dx28[_0x3646[58]][_0x3646[70]]){_0x225dx1b[_0x3646[68]]= _[_0x3646[73]](_0x225dx1b[_0x3646[68]],{$or:_[_0x3646[72]](_0x225dx1b[_0x3646[61]],function(_0x225dx2a){var _0x225dx2b={};_0x225dx2b[_0x225dx2a]= {$like:_0x3646[71]+ _0x225dx28[_0x3646[58]][_0x3646[70]]+ _0x3646[71]};return _0x225dx2b})})};_0x225dx1b= _[_0x3646[73]]({},_0x225dx1b,_0x225dx28[_0x3646[74]]);return db[_0x3646[56]][_0x3646[76]](_0x225dx1b)[_0x3646[45]](respondWithFilteredResult(_0x225dx15,_0x225dx1b,_0x3646[53]))[_0x3646[75]](handleError(_0x225dx15,null,_0x3646[53]))};exports[_0x3646[77]]= function(_0x225dx28,_0x225dx15){var _0x225dx1b={raw:true,where:{id:_0x225dx28[_0x3646[79]][_0x3646[78]]}},_0x225dx29={};_0x225dx29[_0x3646[54]]= _[_0x3646[57]](db[_0x3646[56]][_0x3646[55]]);_0x225dx29[_0x3646[58]]= _[_0x3646[57]](_0x225dx28[_0x3646[58]]);_0x225dx29[_0x3646[59]]= _[_0x3646[60]](_0x225dx29[_0x3646[54]],_0x225dx29[_0x3646[58]]);_0x225dx1b[_0x3646[61]]= _[_0x3646[60]](_0x225dx29[_0x3646[54]],qs[_0x3646[62]](_0x225dx28[_0x3646[58]][_0x3646[62]]));_0x225dx1b[_0x3646[61]]= (_0x225dx1b[_0x3646[61]][_0x3646[63]])?_0x225dx1b[_0x3646[61]]:_0x225dx29[_0x3646[54]];_0x225dx1b= _[_0x3646[73]]({},_0x225dx1b,_0x225dx28[_0x3646[74]]);return db[_0x3646[56]][_0x3646[80]](_0x225dx1b)[_0x3646[45]](handleEntityNotFound(_0x225dx15,null,_0x3646[77]))[_0x3646[45]](respondWithResult(_0x225dx15,null,_0x3646[77]))[_0x3646[75]](handleError(_0x225dx15,null,_0x3646[77]))};exports[_0x3646[81]]= function(_0x225dx28,_0x225dx15){return db[_0x3646[56]][_0x3646[81]](_0x225dx28[_0x3646[82]],{})[_0x3646[45]](respondWithResult(_0x225dx15,201,_0x3646[81]))[_0x3646[75]](handleError(_0x225dx15,null,_0x3646[81]))};exports[_0x3646[46]]= function(_0x225dx28,_0x225dx15){if(_0x225dx28[_0x3646[82]][_0x3646[78]]){delete _0x225dx28[_0x3646[82]][_0x3646[78]]};return db[_0x3646[56]][_0x3646[80]]({where:{id:_0x225dx28[_0x3646[79]][_0x3646[78]]}})[_0x3646[45]](handleEntityNotFound(_0x225dx15,null,_0x3646[46]))[_0x3646[45]](saveUpdates(_0x225dx28[_0x3646[82]],null,_0x3646[46]))[_0x3646[45]](respondWithResult(_0x225dx15,null,_0x3646[46]))[_0x3646[75]](handleError(_0x225dx15,null,_0x3646[46]))};exports[_0x3646[48]]= function(_0x225dx28,_0x225dx15){return db[_0x3646[56]][_0x3646[80]]({where:{id:_0x225dx28[_0x3646[79]][_0x3646[78]]}})[_0x3646[45]](handleEntityNotFound(_0x225dx15,null,_0x3646[48]))[_0x3646[45]](removeEntity(_0x225dx15,null,_0x3646[48]))[_0x3646[75]](handleError(_0x225dx15,null,_0x3646[48]))}
\ No newline at end of file
+var _0x8380=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x8380[0];var jsonpatch=require(_0x8380[1]);var rp=require(_0x8380[2]);var moment=require(_0x8380[3]);var BPromise=require(_0x8380[4]);var util=require(_0x8380[5]);var path=require(_0x8380[6]);var sox=require(_0x8380[7]);var ejs=require(_0x8380[8]);var fs=require(_0x8380[9]);var _=require(_0x8380[10]);var squel=require(_0x8380[11]);var crypto=require(_0x8380[12]);var jsforce=require(_0x8380[13]);var toCsv=require(_0x8380[14]);var qs=require(_0x8380[15]);var logger=require(_0x8380[17])(_0x8380[16]);var utils=require(_0x8380[18]);var config=require(_0x8380[19]);var db=require(_0x8380[21])[_0x8380[20]];function respondWithStatusCode(_0xa085x15,_0xa085x16,_0xa085x17){_0xa085x16= _0xa085x16|| 204;return function(_0xa085x18){if(_0xa085x18){logger[_0x8380[24]](_0x8380[22],_0xa085x17,_0xa085x16,_0x8380[23]);logger[_0x8380[26]](_0x8380[25],_0xa085x17,_0xa085x16,_0x8380[23]);return _0xa085x15[_0x8380[27]](_0xa085x16)};return _0xa085x15[_0x8380[29]](304)[_0x8380[28]]()}}function respondWithResult(_0xa085x15,_0xa085x16,_0xa085x17){_0xa085x16= _0xa085x16|| 200;return function(_0xa085x18){if(_0xa085x18){logger[_0x8380[24]](_0x8380[22],_0xa085x17,_0xa085x16,_0x8380[30]);logger[_0x8380[26]](_0x8380[25],_0xa085x17,_0xa085x16,_0x8380[30],JSON[_0x8380[31]](_0xa085x18));return _0xa085x15[_0x8380[29]](_0xa085x16)[_0x8380[32]](_0xa085x18)};return _0xa085x15[_0x8380[29]](304)[_0x8380[28]]()}}function respondWithFilteredResult(_0xa085x15,_0xa085x1b,_0xa085x17){return function(_0xa085x18){if(_0xa085x18){var _0xa085x1c=_0xa085x18[_0x8380[33]],_0xa085x1d=_0xa085x1b[_0x8380[34]],_0xa085x1e=_0xa085x1b[_0x8380[34]]+ _0xa085x1b[_0x8380[35]],_0xa085x16;if(_0xa085x1e>= _0xa085x1c){_0xa085x1e= _0xa085x1c;_0xa085x16= 200}else {_0xa085x16= 206};_0xa085x15[_0x8380[29]](_0xa085x16);logger[_0x8380[24]](_0x8380[22],_0xa085x17,_0xa085x16,_0x8380[36]);logger[_0x8380[26]](_0x8380[25],_0xa085x17,_0xa085x16,_0x8380[30],JSON[_0x8380[31]](_0xa085x18));return _0xa085x15[_0x8380[40]](_0x8380[37],_0xa085x1d+ _0x8380[38]+ _0xa085x1e+ _0x8380[39]+ _0xa085x1c)[_0x8380[32]](_0xa085x18)};return null}}function patchUpdates(_0xa085x20){return function(_0xa085x18){try{jsonpatch[_0x8380[41]](_0xa085x18,_0xa085x20,true)}catch(err){return BPromise[_0x8380[42]](err)};return _0xa085x18[_0x8380[43]]()}}function saveUpdates(_0xa085x22,_0xa085x16,_0xa085x17){return function(_0xa085x18){if(_0xa085x18){return _0xa085x18[_0x8380[46]](_0xa085x22)[_0x8380[45]](function(_0xa085x23){logger[_0x8380[24]](_0x8380[22],_0xa085x17,_0xa085x16,_0x8380[44]);logger[_0x8380[26]](_0x8380[25],_0xa085x17,_0xa085x16,_0x8380[44],JSON[_0x8380[31]](_0xa085x18));return _0xa085x23})};return null}}function removeEntity(_0xa085x15,_0xa085x16,_0xa085x17){return function(_0xa085x18){if(_0xa085x18){return _0xa085x18[_0x8380[48]]()[_0x8380[45]](function(){logger[_0x8380[24]](_0x8380[22],_0xa085x17,_0xa085x16,_0x8380[47]);logger[_0x8380[26]](_0x8380[25],_0xa085x17,_0xa085x16,_0x8380[47],JSON[_0x8380[31]](_0xa085x18));_0xa085x15[_0x8380[29]](204)[_0x8380[28]]()})}}}function handleEntityNotFound(_0xa085x15,_0xa085x16,_0xa085x17){return function(_0xa085x18){if(!_0xa085x18){logger[_0x8380[50]](_0x8380[22],_0xa085x17,404,_0x8380[49]);_0xa085x15[_0x8380[29]](404)[_0x8380[28]]();return null};return _0xa085x18}}function handleError(_0xa085x15,_0xa085x16,_0xa085x17){_0xa085x16= _0xa085x16|| 500;return function(_0xa085x27){logger[_0x8380[50]](_0x8380[22],_0xa085x17,_0xa085x16,JSON[_0x8380[31]](_0xa085x27));delete _0xa085x27[_0x8380[51]];_0xa085x15[_0x8380[29]](_0xa085x16)[_0x8380[52]](_0xa085x27)}}exports[_0x8380[53]]= function(_0xa085x28,_0xa085x15){var _0xa085x1b={},_0xa085x29={};_0xa085x29[_0x8380[54]]= _[_0x8380[57]](db[_0x8380[56]][_0x8380[55]]);_0xa085x29[_0x8380[58]]= _[_0x8380[57]](_0xa085x28[_0x8380[58]]);_0xa085x29[_0x8380[59]]= _[_0x8380[60]](_0xa085x29[_0x8380[54]],_0xa085x29[_0x8380[58]]);_0xa085x1b[_0x8380[61]]= _[_0x8380[60]](_0xa085x29[_0x8380[54]],qs[_0x8380[62]](_0xa085x28[_0x8380[58]][_0x8380[62]]));_0xa085x1b[_0x8380[61]]= (_0xa085x1b[_0x8380[61]][_0x8380[63]])?_0xa085x1b[_0x8380[61]]:_0xa085x29[_0x8380[54]];if(!_0xa085x28[_0x8380[58]][_0x8380[65]](_0x8380[64])){_0xa085x1b[_0x8380[35]]= qs[_0x8380[35]](_0xa085x28[_0x8380[58]][_0x8380[35]]);_0xa085x1b[_0x8380[34]]= qs[_0x8380[34]](_0xa085x28[_0x8380[58]][_0x8380[34]])};_0xa085x1b[_0x8380[66]]= qs[_0x8380[67]](_0xa085x28[_0x8380[58]][_0x8380[67]]);_0xa085x1b[_0x8380[68]]= qs[_0x8380[59]](_[_0x8380[69]](_0xa085x28[_0x8380[58]],_0xa085x29[_0x8380[59]]));if(_0xa085x28[_0x8380[58]][_0x8380[70]]){_0xa085x1b[_0x8380[68]]= _[_0x8380[73]](_0xa085x1b[_0x8380[68]],{$or:_[_0x8380[72]](_0xa085x1b[_0x8380[61]],function(_0xa085x2a){var _0xa085x2b={};_0xa085x2b[_0xa085x2a]= {$like:_0x8380[71]+ _0xa085x28[_0x8380[58]][_0x8380[70]]+ _0x8380[71]};return _0xa085x2b})})};_0xa085x1b= _[_0x8380[73]]({},_0xa085x1b,_0xa085x28[_0x8380[74]]);return db[_0x8380[56]][_0x8380[76]](_0xa085x1b)[_0x8380[45]](respondWithFilteredResult(_0xa085x15,_0xa085x1b,_0x8380[53]))[_0x8380[75]](handleError(_0xa085x15,null,_0x8380[53]))};exports[_0x8380[77]]= function(_0xa085x28,_0xa085x15){var _0xa085x1b={raw:true,where:{id:_0xa085x28[_0x8380[79]][_0x8380[78]]}},_0xa085x29={};_0xa085x29[_0x8380[54]]= _[_0x8380[57]](db[_0x8380[56]][_0x8380[55]]);_0xa085x29[_0x8380[58]]= _[_0x8380[57]](_0xa085x28[_0x8380[58]]);_0xa085x29[_0x8380[59]]= _[_0x8380[60]](_0xa085x29[_0x8380[54]],_0xa085x29[_0x8380[58]]);_0xa085x1b[_0x8380[61]]= _[_0x8380[60]](_0xa085x29[_0x8380[54]],qs[_0x8380[62]](_0xa085x28[_0x8380[58]][_0x8380[62]]));_0xa085x1b[_0x8380[61]]= (_0xa085x1b[_0x8380[61]][_0x8380[63]])?_0xa085x1b[_0x8380[61]]:_0xa085x29[_0x8380[54]];_0xa085x1b= _[_0x8380[73]]({},_0xa085x1b,_0xa085x28[_0x8380[74]]);return db[_0x8380[56]][_0x8380[80]](_0xa085x1b)[_0x8380[45]](handleEntityNotFound(_0xa085x15,null,_0x8380[77]))[_0x8380[45]](respondWithResult(_0xa085x15,null,_0x8380[77]))[_0x8380[75]](handleError(_0xa085x15,null,_0x8380[77]))};exports[_0x8380[81]]= function(_0xa085x28,_0xa085x15){return db[_0x8380[56]][_0x8380[81]](_0xa085x28[_0x8380[82]],{})[_0x8380[45]](respondWithResult(_0xa085x15,201,_0x8380[81]))[_0x8380[75]](handleError(_0xa085x15,null,_0x8380[81]))};exports[_0x8380[46]]= function(_0xa085x28,_0xa085x15){if(_0xa085x28[_0x8380[82]][_0x8380[78]]){delete _0xa085x28[_0x8380[82]][_0x8380[78]]};return db[_0x8380[56]][_0x8380[80]]({where:{id:_0xa085x28[_0x8380[79]][_0x8380[78]]}})[_0x8380[45]](handleEntityNotFound(_0xa085x15,null,_0x8380[46]))[_0x8380[45]](saveUpdates(_0xa085x28[_0x8380[82]],null,_0x8380[46]))[_0x8380[45]](respondWithResult(_0xa085x15,null,_0x8380[46]))[_0x8380[75]](handleError(_0xa085x15,null,_0x8380[46]))};exports[_0x8380[48]]= function(_0xa085x28,_0xa085x15){return db[_0x8380[56]][_0x8380[80]]({where:{id:_0xa085x28[_0x8380[79]][_0x8380[78]]}})[_0x8380[45]](handleEntityNotFound(_0xa085x15,null,_0x8380[48]))[_0x8380[45]](removeEntity(_0xa085x15,null,_0x8380[48]))[_0x8380[75]](handleError(_0xa085x15,null,_0x8380[48]))}
\ No newline at end of file
index 12516ee..e1c5c21 100644 (file)
@@ -1 +1 @@
-var _0xb364=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x66\x61\x78\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xb364[0];var _=require(_0xb364[1]);var util=require(_0xb364[2]);var logger=require(_0xb364[4])(_0xb364[3]);var attributes=require(_0xb364[5]);module[_0xb364[6]]= function(_0xbcbax5,_0xbcbax6){return _0xbcbax5[_0xb364[9]](_0xb364[7],attributes,{tableName:_0xb364[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x2338=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x66\x61\x78\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x2338[0];var _=require(_0x2338[1]);var util=require(_0x2338[2]);var logger=require(_0x2338[4])(_0x2338[3]);var attributes=require(_0x2338[5]);module[_0x2338[6]]= function(_0x7865x5,_0x7865x6){return _0x7865x5[_0x2338[9]](_0x2338[7],attributes,{tableName:_0x2338[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 313e177..dff325d 100644 (file)
@@ -1 +1 @@
-var _0xac1b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xac1b[0];var _=require(_0xac1b[1]);var util=require(_0xac1b[2]);var moment=require(_0xac1b[3]);var BPromise=require(_0xac1b[4]);var db=require(_0xac1b[6])[_0xac1b[5]];var utils=require(_0xac1b[7]);var logger=require(_0xac1b[9])(_0xac1b[8]);var jayson=require(_0xac1b[10]);var client=jayson[_0xac1b[12]][_0xac1b[11]]({port:9002});function respondWithRpcPromise(_0x29d5xb,_0x29d5xc,_0x29d5xd){return  new BPromise(function(_0x29d5xe,_0x29d5xf){return client[_0xac1b[25]](_0x29d5xb,_0x29d5xd)[_0xac1b[24]](function(_0x29d5x11){logger[_0xac1b[17]](_0xac1b[13],_0x29d5xc,_0xac1b[16]);logger[_0xac1b[20]](_0xac1b[18],_0x29d5xc,_0xac1b[16],JSON[_0xac1b[19]](_0x29d5x11));if(_0x29d5x11[_0xac1b[14]]){if(_0x29d5x11[_0xac1b[14]][_0xac1b[21]]=== 500){logger[_0xac1b[14]](_0xac1b[13],_0x29d5xc,_0x29d5x11[_0xac1b[14]][_0xac1b[22]]);return _0x29d5xf(_0x29d5x11[_0xac1b[14]][_0xac1b[22]])};logger[_0xac1b[14]](_0xac1b[13],_0x29d5xc,_0x29d5x11[_0xac1b[14]][_0xac1b[22]]);return _0x29d5xe(_0x29d5x11[_0xac1b[14]][_0xac1b[22]])}else {logger[_0xac1b[17]](_0xac1b[13],_0x29d5xc,_0xac1b[16]);_0x29d5xe(_0x29d5x11[_0xac1b[23]][_0xac1b[22]])}})[_0xac1b[15]](function(_0x29d5x10){logger[_0xac1b[14]](_0xac1b[13],_0x29d5xc,_0x29d5x10);_0x29d5xf(_0x29d5x10)})})}
\ No newline at end of file
+var _0xdb5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xdb5a[0];var _=require(_0xdb5a[1]);var util=require(_0xdb5a[2]);var moment=require(_0xdb5a[3]);var BPromise=require(_0xdb5a[4]);var db=require(_0xdb5a[6])[_0xdb5a[5]];var utils=require(_0xdb5a[7]);var logger=require(_0xdb5a[9])(_0xdb5a[8]);var jayson=require(_0xdb5a[10]);var client=jayson[_0xdb5a[12]][_0xdb5a[11]]({port:9002});function respondWithRpcPromise(_0xfb5axb,_0xfb5axc,_0xfb5axd){return  new BPromise(function(_0xfb5axe,_0xfb5axf){return client[_0xdb5a[25]](_0xfb5axb,_0xfb5axd)[_0xdb5a[24]](function(_0xfb5ax11){logger[_0xdb5a[17]](_0xdb5a[13],_0xfb5axc,_0xdb5a[16]);logger[_0xdb5a[20]](_0xdb5a[18],_0xfb5axc,_0xdb5a[16],JSON[_0xdb5a[19]](_0xfb5ax11));if(_0xfb5ax11[_0xdb5a[14]]){if(_0xfb5ax11[_0xdb5a[14]][_0xdb5a[21]]=== 500){logger[_0xdb5a[14]](_0xdb5a[13],_0xfb5axc,_0xfb5ax11[_0xdb5a[14]][_0xdb5a[22]]);return _0xfb5axf(_0xfb5ax11[_0xdb5a[14]][_0xdb5a[22]])};logger[_0xdb5a[14]](_0xdb5a[13],_0xfb5axc,_0xfb5ax11[_0xdb5a[14]][_0xdb5a[22]]);return _0xfb5axe(_0xfb5ax11[_0xdb5a[14]][_0xdb5a[22]])}else {logger[_0xdb5a[17]](_0xdb5a[13],_0xfb5axc,_0xdb5a[16]);_0xfb5axe(_0xfb5ax11[_0xdb5a[23]][_0xdb5a[22]])}})[_0xdb5a[15]](function(_0xfb5ax10){logger[_0xdb5a[14]](_0xdb5a[13],_0xfb5axc,_0xfb5ax10);_0xfb5axf(_0xfb5ax10)})})}
\ No newline at end of file
index 0d55982..a0e53d4 100644 (file)
@@ -1 +1 @@
-var _0x4dba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4dba[0];var multer=require(_0x4dba[1]);var util=require(_0x4dba[2]);var path=require(_0x4dba[3]);var express=require(_0x4dba[4]);var router=express.Router();var auth=require(_0x4dba[5]);var config=require(_0x4dba[6]);var controller=require(_0x4dba[7]);router[_0x4dba[11]](_0x4dba[8],auth[_0x4dba[9]](),controller[_0x4dba[10]]);router[_0x4dba[11]](_0x4dba[12],auth[_0x4dba[9]](),controller[_0x4dba[13]]);router[_0x4dba[15]](_0x4dba[8],auth[_0x4dba[9]](),controller[_0x4dba[14]]);router[_0x4dba[17]](_0x4dba[12],auth[_0x4dba[9]](),controller[_0x4dba[16]]);router[_0x4dba[19]](_0x4dba[12],auth[_0x4dba[9]](),controller[_0x4dba[18]]);module[_0x4dba[20]]= router
\ No newline at end of file
+var _0x1409=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1409[0];var multer=require(_0x1409[1]);var util=require(_0x1409[2]);var path=require(_0x1409[3]);var express=require(_0x1409[4]);var router=express.Router();var auth=require(_0x1409[5]);var config=require(_0x1409[6]);var controller=require(_0x1409[7]);router[_0x1409[11]](_0x1409[8],auth[_0x1409[9]](),controller[_0x1409[10]]);router[_0x1409[11]](_0x1409[12],auth[_0x1409[9]](),controller[_0x1409[13]]);router[_0x1409[15]](_0x1409[8],auth[_0x1409[9]](),controller[_0x1409[14]]);router[_0x1409[17]](_0x1409[12],auth[_0x1409[9]](),controller[_0x1409[16]]);router[_0x1409[19]](_0x1409[12],auth[_0x1409[9]](),controller[_0x1409[18]]);module[_0x1409[20]]= router
\ No newline at end of file
index e22b7fc..58d3848 100644 (file)
@@ -1 +1 @@
-var _0xffe2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xffe2[0];var Sequelize=require(_0xffe2[1]);module[_0xffe2[2]]= {name:{type:Sequelize[_0xffe2[3]],allowNull:false}}
\ No newline at end of file
+var _0x400f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x400f[0];var Sequelize=require(_0x400f[1]);module[_0x400f[2]]= {name:{type:Sequelize[_0x400f[3]],allowNull:false}}
\ No newline at end of file
index f573530..8d06d8d 100644 (file)
@@ -1 +1 @@
-var _0x808b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x808b[0];var jsonpatch=require(_0x808b[1]);var rp=require(_0x808b[2]);var moment=require(_0x808b[3]);var BPromise=require(_0x808b[4]);var util=require(_0x808b[5]);var path=require(_0x808b[6]);var sox=require(_0x808b[7]);var ejs=require(_0x808b[8]);var fs=require(_0x808b[9]);var _=require(_0x808b[10]);var squel=require(_0x808b[11]);var crypto=require(_0x808b[12]);var jsforce=require(_0x808b[13]);var toCsv=require(_0x808b[14]);var qs=require(_0x808b[15]);var logger=require(_0x808b[17])(_0x808b[16]);var utils=require(_0x808b[18]);var config=require(_0x808b[19]);var db=require(_0x808b[21])[_0x808b[20]];function respondWithStatusCode(_0x5ce3x15,_0x5ce3x16,_0x5ce3x17){_0x5ce3x16= _0x5ce3x16|| 204;return function(_0x5ce3x18){if(_0x5ce3x18){logger[_0x808b[24]](_0x808b[22],_0x5ce3x17,_0x5ce3x16,_0x808b[23]);logger[_0x808b[26]](_0x808b[25],_0x5ce3x17,_0x5ce3x16,_0x808b[23]);return _0x5ce3x15[_0x808b[27]](_0x5ce3x16)};return _0x5ce3x15[_0x808b[29]](304)[_0x808b[28]]()}}function respondWithResult(_0x5ce3x15,_0x5ce3x16,_0x5ce3x17){_0x5ce3x16= _0x5ce3x16|| 200;return function(_0x5ce3x18){if(_0x5ce3x18){logger[_0x808b[24]](_0x808b[22],_0x5ce3x17,_0x5ce3x16,_0x808b[30]);logger[_0x808b[26]](_0x808b[25],_0x5ce3x17,_0x5ce3x16,_0x808b[30],JSON[_0x808b[31]](_0x5ce3x18));return _0x5ce3x15[_0x808b[29]](_0x5ce3x16)[_0x808b[32]](_0x5ce3x18)};return _0x5ce3x15[_0x808b[29]](304)[_0x808b[28]]()}}function respondWithFilteredResult(_0x5ce3x15,_0x5ce3x1b,_0x5ce3x17){return function(_0x5ce3x18){if(_0x5ce3x18){var _0x5ce3x1c=_0x5ce3x18[_0x808b[33]],_0x5ce3x1d=_0x5ce3x1b[_0x808b[34]],_0x5ce3x1e=_0x5ce3x1b[_0x808b[34]]+ _0x5ce3x1b[_0x808b[35]],_0x5ce3x16;if(_0x5ce3x1e>= _0x5ce3x1c){_0x5ce3x1e= _0x5ce3x1c;_0x5ce3x16= 200}else {_0x5ce3x16= 206};_0x5ce3x15[_0x808b[29]](_0x5ce3x16);logger[_0x808b[24]](_0x808b[22],_0x5ce3x17,_0x5ce3x16,_0x808b[36]);logger[_0x808b[26]](_0x808b[25],_0x5ce3x17,_0x5ce3x16,_0x808b[30],JSON[_0x808b[31]](_0x5ce3x18));return _0x5ce3x15[_0x808b[40]](_0x808b[37],_0x5ce3x1d+ _0x808b[38]+ _0x5ce3x1e+ _0x808b[39]+ _0x5ce3x1c)[_0x808b[32]](_0x5ce3x18)};return null}}function patchUpdates(_0x5ce3x20){return function(_0x5ce3x18){try{jsonpatch[_0x808b[41]](_0x5ce3x18,_0x5ce3x20,true)}catch(err){return BPromise[_0x808b[42]](err)};return _0x5ce3x18[_0x808b[43]]()}}function saveUpdates(_0x5ce3x22,_0x5ce3x16,_0x5ce3x17){return function(_0x5ce3x18){if(_0x5ce3x18){return _0x5ce3x18[_0x808b[46]](_0x5ce3x22)[_0x808b[45]](function(_0x5ce3x23){logger[_0x808b[24]](_0x808b[22],_0x5ce3x17,_0x5ce3x16,_0x808b[44]);logger[_0x808b[26]](_0x808b[25],_0x5ce3x17,_0x5ce3x16,_0x808b[44],JSON[_0x808b[31]](_0x5ce3x18));return _0x5ce3x23})};return null}}function removeEntity(_0x5ce3x15,_0x5ce3x16,_0x5ce3x17){return function(_0x5ce3x18){if(_0x5ce3x18){return _0x5ce3x18[_0x808b[48]]()[_0x808b[45]](function(){logger[_0x808b[24]](_0x808b[22],_0x5ce3x17,_0x5ce3x16,_0x808b[47]);logger[_0x808b[26]](_0x808b[25],_0x5ce3x17,_0x5ce3x16,_0x808b[47],JSON[_0x808b[31]](_0x5ce3x18));_0x5ce3x15[_0x808b[29]](204)[_0x808b[28]]()})}}}function handleEntityNotFound(_0x5ce3x15,_0x5ce3x16,_0x5ce3x17){return function(_0x5ce3x18){if(!_0x5ce3x18){logger[_0x808b[50]](_0x808b[22],_0x5ce3x17,404,_0x808b[49]);_0x5ce3x15[_0x808b[29]](404)[_0x808b[28]]();return null};return _0x5ce3x18}}function handleError(_0x5ce3x15,_0x5ce3x16,_0x5ce3x17){_0x5ce3x16= _0x5ce3x16|| 500;return function(_0x5ce3x27){logger[_0x808b[50]](_0x808b[22],_0x5ce3x17,_0x5ce3x16,JSON[_0x808b[31]](_0x5ce3x27));delete _0x5ce3x27[_0x808b[51]];_0x5ce3x15[_0x808b[29]](_0x5ce3x16)[_0x808b[52]](_0x5ce3x27)}}exports[_0x808b[53]]= function(_0x5ce3x28,_0x5ce3x15){var _0x5ce3x1b={raw:true,where:{id:_0x5ce3x28[_0x808b[55]][_0x808b[54]]}},_0x5ce3x29={};_0x5ce3x29[_0x808b[56]]= _[_0x808b[59]](db[_0x808b[58]][_0x808b[57]]);_0x5ce3x29[_0x808b[60]]= _[_0x808b[59]](_0x5ce3x28[_0x808b[60]]);_0x5ce3x29[_0x808b[61]]= _[_0x808b[62]](_0x5ce3x29[_0x808b[56]],_0x5ce3x29[_0x808b[60]]);_0x5ce3x1b[_0x808b[63]]= _[_0x808b[62]](_0x5ce3x29[_0x808b[56]],qs[_0x808b[64]](_0x5ce3x28[_0x808b[60]][_0x808b[64]]));_0x5ce3x1b[_0x808b[63]]= (_0x5ce3x1b[_0x808b[63]][_0x808b[65]])?_0x5ce3x1b[_0x808b[63]]:_0x5ce3x29[_0x808b[56]];_0x5ce3x1b= _[_0x808b[67]]({},_0x5ce3x1b,_0x5ce3x28[_0x808b[66]]);return db[_0x808b[58]][_0x808b[69]](_0x5ce3x1b)[_0x808b[45]](handleEntityNotFound(_0x5ce3x15,null,_0x808b[53]))[_0x808b[45]](respondWithResult(_0x5ce3x15,null,_0x808b[53]))[_0x808b[68]](handleError(_0x5ce3x15,null,_0x808b[53]))};exports[_0x808b[70]]= function(_0x5ce3x28,_0x5ce3x15){return db[_0x808b[58]][_0x808b[70]](_0x5ce3x28[_0x808b[71]],{})[_0x808b[45]](respondWithResult(_0x5ce3x15,201,_0x808b[70]))[_0x808b[68]](handleError(_0x5ce3x15,null,_0x808b[70]))};exports[_0x808b[46]]= function(_0x5ce3x28,_0x5ce3x15){if(_0x5ce3x28[_0x808b[71]][_0x808b[54]]){delete _0x5ce3x28[_0x808b[71]][_0x808b[54]]};return db[_0x808b[58]][_0x808b[69]]({where:{id:_0x5ce3x28[_0x808b[55]][_0x808b[54]]}})[_0x808b[45]](handleEntityNotFound(_0x5ce3x15,null,_0x808b[46]))[_0x808b[45]](saveUpdates(_0x5ce3x28[_0x808b[71]],null,_0x808b[46]))[_0x808b[45]](respondWithResult(_0x5ce3x15,null,_0x808b[46]))[_0x808b[68]](handleError(_0x5ce3x15,null,_0x808b[46]))};exports[_0x808b[48]]= function(_0x5ce3x28,_0x5ce3x15){return db[_0x808b[58]][_0x808b[69]]({where:{id:_0x5ce3x28[_0x808b[55]][_0x808b[54]]}})[_0x808b[45]](handleEntityNotFound(_0x5ce3x15,null,_0x808b[48]))[_0x808b[45]](removeEntity(_0x5ce3x15,null,_0x808b[48]))[_0x808b[68]](handleError(_0x5ce3x15,null,_0x808b[48]))}
\ No newline at end of file
+var _0xd72f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd72f[0];var jsonpatch=require(_0xd72f[1]);var rp=require(_0xd72f[2]);var moment=require(_0xd72f[3]);var BPromise=require(_0xd72f[4]);var util=require(_0xd72f[5]);var path=require(_0xd72f[6]);var sox=require(_0xd72f[7]);var ejs=require(_0xd72f[8]);var fs=require(_0xd72f[9]);var _=require(_0xd72f[10]);var squel=require(_0xd72f[11]);var crypto=require(_0xd72f[12]);var jsforce=require(_0xd72f[13]);var toCsv=require(_0xd72f[14]);var qs=require(_0xd72f[15]);var logger=require(_0xd72f[17])(_0xd72f[16]);var utils=require(_0xd72f[18]);var config=require(_0xd72f[19]);var db=require(_0xd72f[21])[_0xd72f[20]];function respondWithStatusCode(_0x6dc5x15,_0x6dc5x16,_0x6dc5x17){_0x6dc5x16= _0x6dc5x16|| 204;return function(_0x6dc5x18){if(_0x6dc5x18){logger[_0xd72f[24]](_0xd72f[22],_0x6dc5x17,_0x6dc5x16,_0xd72f[23]);logger[_0xd72f[26]](_0xd72f[25],_0x6dc5x17,_0x6dc5x16,_0xd72f[23]);return _0x6dc5x15[_0xd72f[27]](_0x6dc5x16)};return _0x6dc5x15[_0xd72f[29]](304)[_0xd72f[28]]()}}function respondWithResult(_0x6dc5x15,_0x6dc5x16,_0x6dc5x17){_0x6dc5x16= _0x6dc5x16|| 200;return function(_0x6dc5x18){if(_0x6dc5x18){logger[_0xd72f[24]](_0xd72f[22],_0x6dc5x17,_0x6dc5x16,_0xd72f[30]);logger[_0xd72f[26]](_0xd72f[25],_0x6dc5x17,_0x6dc5x16,_0xd72f[30],JSON[_0xd72f[31]](_0x6dc5x18));return _0x6dc5x15[_0xd72f[29]](_0x6dc5x16)[_0xd72f[32]](_0x6dc5x18)};return _0x6dc5x15[_0xd72f[29]](304)[_0xd72f[28]]()}}function respondWithFilteredResult(_0x6dc5x15,_0x6dc5x1b,_0x6dc5x17){return function(_0x6dc5x18){if(_0x6dc5x18){var _0x6dc5x1c=_0x6dc5x18[_0xd72f[33]],_0x6dc5x1d=_0x6dc5x1b[_0xd72f[34]],_0x6dc5x1e=_0x6dc5x1b[_0xd72f[34]]+ _0x6dc5x1b[_0xd72f[35]],_0x6dc5x16;if(_0x6dc5x1e>= _0x6dc5x1c){_0x6dc5x1e= _0x6dc5x1c;_0x6dc5x16= 200}else {_0x6dc5x16= 206};_0x6dc5x15[_0xd72f[29]](_0x6dc5x16);logger[_0xd72f[24]](_0xd72f[22],_0x6dc5x17,_0x6dc5x16,_0xd72f[36]);logger[_0xd72f[26]](_0xd72f[25],_0x6dc5x17,_0x6dc5x16,_0xd72f[30],JSON[_0xd72f[31]](_0x6dc5x18));return _0x6dc5x15[_0xd72f[40]](_0xd72f[37],_0x6dc5x1d+ _0xd72f[38]+ _0x6dc5x1e+ _0xd72f[39]+ _0x6dc5x1c)[_0xd72f[32]](_0x6dc5x18)};return null}}function patchUpdates(_0x6dc5x20){return function(_0x6dc5x18){try{jsonpatch[_0xd72f[41]](_0x6dc5x18,_0x6dc5x20,true)}catch(err){return BPromise[_0xd72f[42]](err)};return _0x6dc5x18[_0xd72f[43]]()}}function saveUpdates(_0x6dc5x22,_0x6dc5x16,_0x6dc5x17){return function(_0x6dc5x18){if(_0x6dc5x18){return _0x6dc5x18[_0xd72f[46]](_0x6dc5x22)[_0xd72f[45]](function(_0x6dc5x23){logger[_0xd72f[24]](_0xd72f[22],_0x6dc5x17,_0x6dc5x16,_0xd72f[44]);logger[_0xd72f[26]](_0xd72f[25],_0x6dc5x17,_0x6dc5x16,_0xd72f[44],JSON[_0xd72f[31]](_0x6dc5x18));return _0x6dc5x23})};return null}}function removeEntity(_0x6dc5x15,_0x6dc5x16,_0x6dc5x17){return function(_0x6dc5x18){if(_0x6dc5x18){return _0x6dc5x18[_0xd72f[48]]()[_0xd72f[45]](function(){logger[_0xd72f[24]](_0xd72f[22],_0x6dc5x17,_0x6dc5x16,_0xd72f[47]);logger[_0xd72f[26]](_0xd72f[25],_0x6dc5x17,_0x6dc5x16,_0xd72f[47],JSON[_0xd72f[31]](_0x6dc5x18));_0x6dc5x15[_0xd72f[29]](204)[_0xd72f[28]]()})}}}function handleEntityNotFound(_0x6dc5x15,_0x6dc5x16,_0x6dc5x17){return function(_0x6dc5x18){if(!_0x6dc5x18){logger[_0xd72f[50]](_0xd72f[22],_0x6dc5x17,404,_0xd72f[49]);_0x6dc5x15[_0xd72f[29]](404)[_0xd72f[28]]();return null};return _0x6dc5x18}}function handleError(_0x6dc5x15,_0x6dc5x16,_0x6dc5x17){_0x6dc5x16= _0x6dc5x16|| 500;return function(_0x6dc5x27){logger[_0xd72f[50]](_0xd72f[22],_0x6dc5x17,_0x6dc5x16,JSON[_0xd72f[31]](_0x6dc5x27));delete _0x6dc5x27[_0xd72f[51]];_0x6dc5x15[_0xd72f[29]](_0x6dc5x16)[_0xd72f[52]](_0x6dc5x27)}}exports[_0xd72f[53]]= function(_0x6dc5x28,_0x6dc5x15){var _0x6dc5x1b={raw:true,where:{id:_0x6dc5x28[_0xd72f[55]][_0xd72f[54]]}},_0x6dc5x29={};_0x6dc5x29[_0xd72f[56]]= _[_0xd72f[59]](db[_0xd72f[58]][_0xd72f[57]]);_0x6dc5x29[_0xd72f[60]]= _[_0xd72f[59]](_0x6dc5x28[_0xd72f[60]]);_0x6dc5x29[_0xd72f[61]]= _[_0xd72f[62]](_0x6dc5x29[_0xd72f[56]],_0x6dc5x29[_0xd72f[60]]);_0x6dc5x1b[_0xd72f[63]]= _[_0xd72f[62]](_0x6dc5x29[_0xd72f[56]],qs[_0xd72f[64]](_0x6dc5x28[_0xd72f[60]][_0xd72f[64]]));_0x6dc5x1b[_0xd72f[63]]= (_0x6dc5x1b[_0xd72f[63]][_0xd72f[65]])?_0x6dc5x1b[_0xd72f[63]]:_0x6dc5x29[_0xd72f[56]];_0x6dc5x1b= _[_0xd72f[67]]({},_0x6dc5x1b,_0x6dc5x28[_0xd72f[66]]);return db[_0xd72f[58]][_0xd72f[69]](_0x6dc5x1b)[_0xd72f[45]](handleEntityNotFound(_0x6dc5x15,null,_0xd72f[53]))[_0xd72f[45]](respondWithResult(_0x6dc5x15,null,_0xd72f[53]))[_0xd72f[68]](handleError(_0x6dc5x15,null,_0xd72f[53]))};exports[_0xd72f[70]]= function(_0x6dc5x28,_0x6dc5x15){return db[_0xd72f[58]][_0xd72f[70]](_0x6dc5x28[_0xd72f[71]],{})[_0xd72f[45]](respondWithResult(_0x6dc5x15,201,_0xd72f[70]))[_0xd72f[68]](handleError(_0x6dc5x15,null,_0xd72f[70]))};exports[_0xd72f[46]]= function(_0x6dc5x28,_0x6dc5x15){if(_0x6dc5x28[_0xd72f[71]][_0xd72f[54]]){delete _0x6dc5x28[_0xd72f[71]][_0xd72f[54]]};return db[_0xd72f[58]][_0xd72f[69]]({where:{id:_0x6dc5x28[_0xd72f[55]][_0xd72f[54]]}})[_0xd72f[45]](handleEntityNotFound(_0x6dc5x15,null,_0xd72f[46]))[_0xd72f[45]](saveUpdates(_0x6dc5x28[_0xd72f[71]],null,_0xd72f[46]))[_0xd72f[45]](respondWithResult(_0x6dc5x15,null,_0xd72f[46]))[_0xd72f[68]](handleError(_0x6dc5x15,null,_0xd72f[46]))};exports[_0xd72f[48]]= function(_0x6dc5x28,_0x6dc5x15){return db[_0xd72f[58]][_0xd72f[69]]({where:{id:_0x6dc5x28[_0xd72f[55]][_0xd72f[54]]}})[_0xd72f[45]](handleEntityNotFound(_0x6dc5x15,null,_0xd72f[48]))[_0xd72f[45]](removeEntity(_0x6dc5x15,null,_0xd72f[48]))[_0xd72f[68]](handleError(_0x6dc5x15,null,_0xd72f[48]))}
\ No newline at end of file
index 1ed9728..b5ff17a 100644 (file)
@@ -1 +1 @@
-var _0x48a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x48a6[0];var _=require(_0x48a6[1]);var util=require(_0x48a6[2]);var logger=require(_0x48a6[4])(_0x48a6[3]);var attributes=require(_0x48a6[5]);module[_0x48a6[6]]= function(_0xfb29x5,_0xfb29x6){return _0xfb29x5[_0x48a6[9]](_0x48a6[7],attributes,{tableName:_0x48a6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4aec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x4aec[0];var _=require(_0x4aec[1]);var util=require(_0x4aec[2]);var logger=require(_0x4aec[4])(_0x4aec[3]);var attributes=require(_0x4aec[5]);module[_0x4aec[6]]= function(_0x6087x5,_0x6087x6){return _0x6087x5[_0x4aec[9]](_0x4aec[7],attributes,{tableName:_0x4aec[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index fb077ca..822b3ea 100644 (file)
@@ -1 +1 @@
-var _0x3ac6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3ac6[0];var _=require(_0x3ac6[1]);var util=require(_0x3ac6[2]);var moment=require(_0x3ac6[3]);var BPromise=require(_0x3ac6[4]);var db=require(_0x3ac6[6])[_0x3ac6[5]];var utils=require(_0x3ac6[7]);var logger=require(_0x3ac6[9])(_0x3ac6[8]);var jayson=require(_0x3ac6[10]);var client=jayson[_0x3ac6[12]][_0x3ac6[11]]({port:9002});function respondWithRpcPromise(_0x670dxb,_0x670dxc,_0x670dxd){return  new BPromise(function(_0x670dxe,_0x670dxf){return client[_0x3ac6[25]](_0x670dxb,_0x670dxd)[_0x3ac6[24]](function(_0x670dx11){logger[_0x3ac6[17]](_0x3ac6[13],_0x670dxc,_0x3ac6[16]);logger[_0x3ac6[20]](_0x3ac6[18],_0x670dxc,_0x3ac6[16],JSON[_0x3ac6[19]](_0x670dx11));if(_0x670dx11[_0x3ac6[14]]){if(_0x670dx11[_0x3ac6[14]][_0x3ac6[21]]=== 500){logger[_0x3ac6[14]](_0x3ac6[13],_0x670dxc,_0x670dx11[_0x3ac6[14]][_0x3ac6[22]]);return _0x670dxf(_0x670dx11[_0x3ac6[14]][_0x3ac6[22]])};logger[_0x3ac6[14]](_0x3ac6[13],_0x670dxc,_0x670dx11[_0x3ac6[14]][_0x3ac6[22]]);return _0x670dxe(_0x670dx11[_0x3ac6[14]][_0x3ac6[22]])}else {logger[_0x3ac6[17]](_0x3ac6[13],_0x670dxc,_0x3ac6[16]);_0x670dxe(_0x670dx11[_0x3ac6[23]][_0x3ac6[22]])}})[_0x3ac6[15]](function(_0x670dx10){logger[_0x3ac6[14]](_0x3ac6[13],_0x670dxc,_0x670dx10);_0x670dxf(_0x670dx10)})})}
\ No newline at end of file
+var _0xd1fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd1fe[0];var _=require(_0xd1fe[1]);var util=require(_0xd1fe[2]);var moment=require(_0xd1fe[3]);var BPromise=require(_0xd1fe[4]);var db=require(_0xd1fe[6])[_0xd1fe[5]];var utils=require(_0xd1fe[7]);var logger=require(_0xd1fe[9])(_0xd1fe[8]);var jayson=require(_0xd1fe[10]);var client=jayson[_0xd1fe[12]][_0xd1fe[11]]({port:9002});function respondWithRpcPromise(_0x8e22xb,_0x8e22xc,_0x8e22xd){return  new BPromise(function(_0x8e22xe,_0x8e22xf){return client[_0xd1fe[25]](_0x8e22xb,_0x8e22xd)[_0xd1fe[24]](function(_0x8e22x11){logger[_0xd1fe[17]](_0xd1fe[13],_0x8e22xc,_0xd1fe[16]);logger[_0xd1fe[20]](_0xd1fe[18],_0x8e22xc,_0xd1fe[16],JSON[_0xd1fe[19]](_0x8e22x11));if(_0x8e22x11[_0xd1fe[14]]){if(_0x8e22x11[_0xd1fe[14]][_0xd1fe[21]]=== 500){logger[_0xd1fe[14]](_0xd1fe[13],_0x8e22xc,_0x8e22x11[_0xd1fe[14]][_0xd1fe[22]]);return _0x8e22xf(_0x8e22x11[_0xd1fe[14]][_0xd1fe[22]])};logger[_0xd1fe[14]](_0xd1fe[13],_0x8e22xc,_0x8e22x11[_0xd1fe[14]][_0xd1fe[22]]);return _0x8e22xe(_0x8e22x11[_0xd1fe[14]][_0xd1fe[22]])}else {logger[_0xd1fe[17]](_0xd1fe[13],_0x8e22xc,_0xd1fe[16]);_0x8e22xe(_0x8e22x11[_0xd1fe[23]][_0xd1fe[22]])}})[_0xd1fe[15]](function(_0x8e22x10){logger[_0xd1fe[14]](_0xd1fe[13],_0x8e22xc,_0x8e22x10);_0x8e22xf(_0x8e22x10)})})}
\ No newline at end of file
index adf64ef..708663c 100644 (file)
@@ -1 +1 @@
-var _0xf760=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf760[0];var multer=require(_0xf760[1]);var util=require(_0xf760[2]);var path=require(_0xf760[3]);var express=require(_0xf760[4]);var router=express.Router();var auth=require(_0xf760[5]);var config=require(_0xf760[6]);var controller=require(_0xf760[7]);router[_0xf760[11]](_0xf760[8],auth[_0xf760[9]](),controller[_0xf760[10]]);router[_0xf760[14]](_0xf760[12],auth[_0xf760[9]](),controller[_0xf760[13]]);router[_0xf760[16]](_0xf760[8],auth[_0xf760[9]](),controller[_0xf760[15]]);router[_0xf760[18]](_0xf760[8],auth[_0xf760[9]](),controller[_0xf760[17]]);module[_0xf760[19]]= router
\ No newline at end of file
+var _0x8d45=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8d45[0];var multer=require(_0x8d45[1]);var util=require(_0x8d45[2]);var path=require(_0x8d45[3]);var express=require(_0x8d45[4]);var router=express.Router();var auth=require(_0x8d45[5]);var config=require(_0x8d45[6]);var controller=require(_0x8d45[7]);router[_0x8d45[11]](_0x8d45[8],auth[_0x8d45[9]](),controller[_0x8d45[10]]);router[_0x8d45[14]](_0x8d45[12],auth[_0x8d45[9]](),controller[_0x8d45[13]]);router[_0x8d45[16]](_0x8d45[8],auth[_0x8d45[9]](),controller[_0x8d45[15]]);router[_0x8d45[18]](_0x8d45[8],auth[_0x8d45[9]](),controller[_0x8d45[17]]);module[_0x8d45[19]]= router
\ No newline at end of file
index 93355da..11579c9 100644 (file)
@@ -1 +1 @@
-var _0x5250=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x5250[0];var Sequelize=require(_0x5250[1]);var moment=require(_0x5250[2]);module[_0x5250[3]]= {contact:{type:Sequelize[_0x5250[4]]},account:{type:Sequelize[_0x5250[4]]},faxIn:{type:Sequelize[_0x5250[5]],defaultValue:0},faxOut:{type:Sequelize[_0x5250[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0x5250[6],_0x5250[7],_0x5250[8],_0x5250[9]),defaultValue:_0x5250[6],set:function(_0x5eeex3){this[_0x5250[11]](_0x5250[10],_0x5eeex3);switch(_0x5eeex3){case _0x5250[6]:this[_0x5250[11]](_0x5250[12],moment()[_0x5250[14]](_0x5250[13]));break;case _0x5250[9]:this[_0x5250[11]](_0x5250[15],moment()[_0x5250[14]](_0x5250[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x5250[16],_0x5250[17],_0x5250[18],_0x5250[19],_0x5250[20])},lastEventAt:{type:Sequelize[_0x5250[21]]},tags:{type:Sequelize[_0x5250[22]],get:function(){var _0x5eeex4;if(this[_0x5250[24]](_0x5250[23])){_0x5eeex4= this[_0x5250[24]](_0x5250[23])[_0x5250[26]](_0x5250[25]);_0x5eeex4[_0x5250[27]]()}else {_0x5eeex4= []};return _0x5eeex4},set:function(_0x5eeex5){this[_0x5250[11]](_0x5250[23],_0x5eeex5&& _0x5eeex5[_0x5250[28]]?_0x5eeex5[_0x5250[29]](_0x5250[25])+ _0x5250[25]:null)}},waiting:{type:Sequelize[_0x5250[30]],defaultValue:false},disposition:{type:Sequelize[_0x5250[4]]},openReason:{type:Sequelize[_0x5250[4]]},arrivedAt:{type:Sequelize[_0x5250[21]]},closedAt:{type:Sequelize[_0x5250[21]]}}
\ No newline at end of file
+var _0xd62e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xd62e[0];var Sequelize=require(_0xd62e[1]);var moment=require(_0xd62e[2]);module[_0xd62e[3]]= {contact:{type:Sequelize[_0xd62e[4]]},account:{type:Sequelize[_0xd62e[4]]},faxIn:{type:Sequelize[_0xd62e[5]],defaultValue:0},faxOut:{type:Sequelize[_0xd62e[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0xd62e[6],_0xd62e[7],_0xd62e[8],_0xd62e[9]),defaultValue:_0xd62e[6],set:function(_0x64d2x3){this[_0xd62e[11]](_0xd62e[10],_0x64d2x3);switch(_0x64d2x3){case _0xd62e[6]:this[_0xd62e[11]](_0xd62e[12],moment()[_0xd62e[14]](_0xd62e[13]));break;case _0xd62e[9]:this[_0xd62e[11]](_0xd62e[15],moment()[_0xd62e[14]](_0xd62e[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0xd62e[16],_0xd62e[17],_0xd62e[18],_0xd62e[19],_0xd62e[20])},lastEventAt:{type:Sequelize[_0xd62e[21]]},tags:{type:Sequelize[_0xd62e[22]],get:function(){var _0x64d2x4;if(this[_0xd62e[24]](_0xd62e[23])){_0x64d2x4= this[_0xd62e[24]](_0xd62e[23])[_0xd62e[26]](_0xd62e[25]);_0x64d2x4[_0xd62e[27]]()}else {_0x64d2x4= []};return _0x64d2x4},set:function(_0x64d2x5){this[_0xd62e[11]](_0xd62e[23],_0x64d2x5&& _0x64d2x5[_0xd62e[28]]?_0x64d2x5[_0xd62e[29]](_0xd62e[25])+ _0xd62e[25]:null)}},waiting:{type:Sequelize[_0xd62e[30]],defaultValue:false},disposition:{type:Sequelize[_0xd62e[4]]},openReason:{type:Sequelize[_0xd62e[4]]},arrivedAt:{type:Sequelize[_0xd62e[21]]},closedAt:{type:Sequelize[_0xd62e[21]]}}
\ No newline at end of file
index 4c466a9..3f9008c 100644 (file)
@@ -1 +1 @@
-var _0x443e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x443e[0];var jsonpatch=require(_0x443e[1]);var rp=require(_0x443e[2]);var moment=require(_0x443e[3]);var BPromise=require(_0x443e[4]);var util=require(_0x443e[5]);var path=require(_0x443e[6]);var sox=require(_0x443e[7]);var ejs=require(_0x443e[8]);var fs=require(_0x443e[9]);var _=require(_0x443e[10]);var squel=require(_0x443e[11]);var crypto=require(_0x443e[12]);var jsforce=require(_0x443e[13]);var toCsv=require(_0x443e[14]);var qs=require(_0x443e[15]);var logger=require(_0x443e[17])(_0x443e[16]);var utils=require(_0x443e[18]);var config=require(_0x443e[19]);var db=require(_0x443e[21])[_0x443e[20]];function respondWithStatusCode(_0x4bf4x15,_0x4bf4x16,_0x4bf4x17){_0x4bf4x16= _0x4bf4x16|| 204;return function(_0x4bf4x18){if(_0x4bf4x18){logger[_0x443e[24]](_0x443e[22],_0x4bf4x17,_0x4bf4x16,_0x443e[23]);logger[_0x443e[26]](_0x443e[25],_0x4bf4x17,_0x4bf4x16,_0x443e[23]);return _0x4bf4x15[_0x443e[27]](_0x4bf4x16)};return _0x4bf4x15[_0x443e[29]](304)[_0x443e[28]]()}}function respondWithResult(_0x4bf4x15,_0x4bf4x16,_0x4bf4x17){_0x4bf4x16= _0x4bf4x16|| 200;return function(_0x4bf4x18){if(_0x4bf4x18){logger[_0x443e[24]](_0x443e[22],_0x4bf4x17,_0x4bf4x16,_0x443e[30]);logger[_0x443e[26]](_0x443e[25],_0x4bf4x17,_0x4bf4x16,_0x443e[30],JSON[_0x443e[31]](_0x4bf4x18));return _0x4bf4x15[_0x443e[29]](_0x4bf4x16)[_0x443e[32]](_0x4bf4x18)};return _0x4bf4x15[_0x443e[29]](304)[_0x443e[28]]()}}function respondWithFilteredResult(_0x4bf4x15,_0x4bf4x1b,_0x4bf4x17){return function(_0x4bf4x18){if(_0x4bf4x18){var _0x4bf4x1c=_0x4bf4x18[_0x443e[33]],_0x4bf4x1d=_0x4bf4x1b[_0x443e[34]],_0x4bf4x1e=_0x4bf4x1b[_0x443e[34]]+ _0x4bf4x1b[_0x443e[35]],_0x4bf4x16;if(_0x4bf4x1e>= _0x4bf4x1c){_0x4bf4x1e= _0x4bf4x1c;_0x4bf4x16= 200}else {_0x4bf4x16= 206};_0x4bf4x15[_0x443e[29]](_0x4bf4x16);logger[_0x443e[24]](_0x443e[22],_0x4bf4x17,_0x4bf4x16,_0x443e[36]);logger[_0x443e[26]](_0x443e[25],_0x4bf4x17,_0x4bf4x16,_0x443e[30],JSON[_0x443e[31]](_0x4bf4x18));return _0x4bf4x15[_0x443e[40]](_0x443e[37],_0x4bf4x1d+ _0x443e[38]+ _0x4bf4x1e+ _0x443e[39]+ _0x4bf4x1c)[_0x443e[32]](_0x4bf4x18)};return null}}function patchUpdates(_0x4bf4x20){return function(_0x4bf4x18){try{jsonpatch[_0x443e[41]](_0x4bf4x18,_0x4bf4x20,true)}catch(err){return BPromise[_0x443e[42]](err)};return _0x4bf4x18[_0x443e[43]]()}}function saveUpdates(_0x4bf4x22,_0x4bf4x16,_0x4bf4x17){return function(_0x4bf4x18){if(_0x4bf4x18){return _0x4bf4x18[_0x443e[46]](_0x4bf4x22)[_0x443e[45]](function(_0x4bf4x23){logger[_0x443e[24]](_0x443e[22],_0x4bf4x17,_0x4bf4x16,_0x443e[44]);logger[_0x443e[26]](_0x443e[25],_0x4bf4x17,_0x4bf4x16,_0x443e[44],JSON[_0x443e[31]](_0x4bf4x18));return _0x4bf4x23})};return null}}function removeEntity(_0x4bf4x15,_0x4bf4x16,_0x4bf4x17){return function(_0x4bf4x18){if(_0x4bf4x18){return _0x4bf4x18[_0x443e[48]]()[_0x443e[45]](function(){logger[_0x443e[24]](_0x443e[22],_0x4bf4x17,_0x4bf4x16,_0x443e[47]);logger[_0x443e[26]](_0x443e[25],_0x4bf4x17,_0x4bf4x16,_0x443e[47],JSON[_0x443e[31]](_0x4bf4x18));_0x4bf4x15[_0x443e[29]](204)[_0x443e[28]]()})}}}function handleEntityNotFound(_0x4bf4x15,_0x4bf4x16,_0x4bf4x17){return function(_0x4bf4x18){if(!_0x4bf4x18){logger[_0x443e[50]](_0x443e[22],_0x4bf4x17,404,_0x443e[49]);_0x4bf4x15[_0x443e[29]](404)[_0x443e[28]]();return null};return _0x4bf4x18}}function handleError(_0x4bf4x15,_0x4bf4x16,_0x4bf4x17){_0x4bf4x16= _0x4bf4x16|| 500;return function(_0x4bf4x27){logger[_0x443e[50]](_0x443e[22],_0x4bf4x17,_0x4bf4x16,JSON[_0x443e[31]](_0x4bf4x27));delete _0x4bf4x27[_0x443e[51]];_0x4bf4x15[_0x443e[29]](_0x4bf4x16)[_0x443e[52]](_0x4bf4x27)}}exports[_0x443e[53]]= function(_0x4bf4x28,_0x4bf4x15){var _0x4bf4x1b={},_0x4bf4x29={};_0x4bf4x29[_0x443e[54]]= _[_0x443e[57]](db[_0x443e[56]][_0x443e[55]]);_0x4bf4x29[_0x443e[58]]= _[_0x443e[57]](_0x4bf4x28[_0x443e[58]]);_0x4bf4x29[_0x443e[59]]= _[_0x443e[60]](_0x4bf4x29[_0x443e[54]],_0x4bf4x29[_0x443e[58]]);_0x4bf4x1b[_0x443e[61]]= _[_0x443e[60]](_0x4bf4x29[_0x443e[54]],qs[_0x443e[62]](_0x4bf4x28[_0x443e[58]][_0x443e[62]]));_0x4bf4x1b[_0x443e[61]]= (_0x4bf4x1b[_0x443e[61]][_0x443e[63]])?_0x4bf4x1b[_0x443e[61]]:_0x4bf4x29[_0x443e[54]];if(!_0x4bf4x28[_0x443e[58]][_0x443e[65]](_0x443e[64])){_0x4bf4x1b[_0x443e[35]]= qs[_0x443e[35]](_0x4bf4x28[_0x443e[58]][_0x443e[35]]);_0x4bf4x1b[_0x443e[34]]= qs[_0x443e[34]](_0x4bf4x28[_0x443e[58]][_0x443e[34]])};_0x4bf4x1b[_0x443e[66]]= qs[_0x443e[67]](_0x4bf4x28[_0x443e[58]][_0x443e[67]]);_0x4bf4x1b[_0x443e[68]]= qs[_0x443e[59]](_[_0x443e[69]](_0x4bf4x28[_0x443e[58]],_0x4bf4x29[_0x443e[59]]));if(_0x4bf4x28[_0x443e[58]][_0x443e[70]]){_0x4bf4x1b[_0x443e[68]]= _[_0x443e[73]](_0x4bf4x1b[_0x443e[68]],{$or:_[_0x443e[72]](_0x4bf4x1b[_0x443e[61]],function(_0x4bf4x2a){var _0x4bf4x2b={};_0x4bf4x2b[_0x4bf4x2a]= {$like:_0x443e[71]+ _0x4bf4x28[_0x443e[58]][_0x443e[70]]+ _0x443e[71]};return _0x4bf4x2b})})};_0x4bf4x1b= _[_0x443e[73]]({},_0x4bf4x1b,_0x4bf4x28[_0x443e[74]]);return db[_0x443e[56]][_0x443e[76]](_0x4bf4x1b)[_0x443e[45]](respondWithFilteredResult(_0x4bf4x15,_0x4bf4x1b,_0x443e[53]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[53]))};exports[_0x443e[77]]= function(_0x4bf4x28,_0x4bf4x15){var _0x4bf4x1b={raw:false,where:{id:_0x4bf4x28[_0x443e[79]][_0x443e[78]]}},_0x4bf4x29={};_0x4bf4x29[_0x443e[54]]= _[_0x443e[57]](db[_0x443e[56]][_0x443e[55]]);_0x4bf4x29[_0x443e[58]]= _[_0x443e[57]](_0x4bf4x28[_0x443e[58]]);_0x4bf4x29[_0x443e[59]]= _[_0x443e[60]](_0x4bf4x29[_0x443e[54]],_0x4bf4x29[_0x443e[58]]);_0x4bf4x1b[_0x443e[61]]= _[_0x443e[60]](_0x4bf4x29[_0x443e[54]],qs[_0x443e[62]](_0x4bf4x28[_0x443e[58]][_0x443e[62]]));_0x4bf4x1b[_0x443e[61]]= (_0x4bf4x1b[_0x443e[61]][_0x443e[63]])?_0x4bf4x1b[_0x443e[61]]:_0x4bf4x29[_0x443e[54]];_0x4bf4x1b= _[_0x443e[73]]({},_0x4bf4x1b,_0x4bf4x28[_0x443e[74]]);return db[_0x443e[56]][_0x443e[80]](_0x4bf4x1b)[_0x443e[45]](handleEntityNotFound(_0x4bf4x15,null,_0x443e[77]))[_0x443e[45]](respondWithResult(_0x4bf4x15,null,_0x443e[77]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[77]))};exports[_0x443e[81]]= function(_0x4bf4x28,_0x4bf4x15){return db[_0x443e[56]][_0x443e[81]](_0x4bf4x28[_0x443e[82]],{})[_0x443e[45]](respondWithResult(_0x4bf4x15,201,_0x443e[81]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[81]))};exports[_0x443e[46]]= function(_0x4bf4x28,_0x4bf4x15){if(_0x4bf4x28[_0x443e[82]][_0x443e[78]]){delete _0x4bf4x28[_0x443e[82]][_0x443e[78]]};return db[_0x443e[56]][_0x443e[80]]({where:{id:_0x4bf4x28[_0x443e[79]][_0x443e[78]]}})[_0x443e[45]](handleEntityNotFound(_0x4bf4x15,null,_0x443e[46]))[_0x443e[45]](saveUpdates(_0x4bf4x28[_0x443e[82]],null,_0x443e[46]))[_0x443e[45]](respondWithResult(_0x4bf4x15,null,_0x443e[46]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[46]))};exports[_0x443e[48]]= function(_0x4bf4x28,_0x4bf4x15){return db[_0x443e[56]][_0x443e[80]]({where:{id:_0x4bf4x28[_0x443e[79]][_0x443e[78]]}})[_0x443e[45]](handleEntityNotFound(_0x4bf4x15,null,_0x443e[48]))[_0x443e[45]](removeEntity(_0x4bf4x15,null,_0x443e[48]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[48]))};exports[_0x443e[83]]= function(_0x4bf4x28,_0x4bf4x15){return db[_0x443e[56]][_0x443e[83]]()[_0x443e[45]](respondWithResult(_0x4bf4x15,null,_0x443e[83]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[83]))};exports[_0x443e[84]]= function(_0x4bf4x28,_0x4bf4x15,_0x4bf4x2c){return db[_0x443e[87]][_0x443e[80]]({where:{id:_0x4bf4x28[_0x443e[79]][_0x443e[78]]}})[_0x443e[45]](handleEntityNotFound(_0x4bf4x15,null,_0x443e[84]))[_0x443e[45]](function(_0x4bf4x18){if(_0x4bf4x18){return _0x4bf4x18[_0x443e[84]](_0x4bf4x28[_0x443e[82]][_0x443e[85]],_[_0x443e[86]](_0x4bf4x28[_0x443e[82]],[_0x443e[85],_0x443e[78]])|| {})};return null})[_0x443e[45]](respondWithResult(_0x4bf4x15,null,_0x443e[84]))[_0x443e[75]](handleError(_0x4bf4x15,null,_0x443e[84]))};exports[_0x443e[88]]= function(_0x4bf4x28,_0x4bf4x18,_0x4bf4x2c){var _0x4bf4x1b={};var _0x4bf4x29={};var _0x4bf4x2d;var _0x4bf4x1c;return db[_0x443e[56]][_0x443e[89]]({where:{id:_0x4bf4x28[_0x443e[79]][_0x443e[78]]}})[_0x443e[45]](handleEntityNotFound(_0x4bf4x18,null,_0x443e[88]))[_0x443e[45]](function(_0x4bf4x18){if(_0x4bf4x18){_0x4bf4x2d= _0x4bf4x18;_0x4bf4x29[_0x443e[54]]= _[_0x443e[57]](db[_0x443e[87]][_0x443e[55]]);_0x4bf4x29[_0x443e[58]]= _[_0x443e[57]](_0x4bf4x28[_0x443e[58]]);_0x4bf4x29[_0x443e[59]]= _[_0x443e[60]](_0x4bf4x29[_0x443e[54]],_0x4bf4x29[_0x443e[58]]);_0x4bf4x1b[_0x443e[61]]= _[_0x443e[60]](_0x4bf4x29[_0x443e[54]],qs[_0x443e[62]](_0x4bf4x28[_0x443e[58]][_0x443e[62]]));_0x4bf4x1b[_0x443e[61]]= (_0x4bf4x1b[_0x443e[61]][_0x443e[63]])?_0x4bf4x1b[_0x443e[61]]:_0x4bf4x29[_0x443e[54]];_0x4bf4x1b[_0x443e[66]]= qs[_0x443e[67]](_0x4bf4x28[_0x443e[58]][_0x443e[67]]);_0x4bf4x1b[_0x443e[68]]= qs[_0x443e[59]](_[_0x443e[69]](_0x4bf4x28[_0x443e[58]],_0x4bf4x29[_0x443e[59]]));if(_0x4bf4x28[_0x443e[58]][_0x443e[70]]){_0x4bf4x1b[_0x443e[68]]= _[_0x443e[73]](_0x4bf4x1b[_0x443e[68]],{$or:_[_0x443e[72]](_0x4bf4x1b[_0x443e[61]],function(_0x4bf4x2a){var _0x4bf4x2b={};_0x4bf4x2b[_0x4bf4x2a]= {$like:_0x443e[71]+ _0x4bf4x28[_0x443e[58]][_0x443e[70]]+ _0x443e[71]};return _0x4bf4x2b})})};_0x4bf4x1b= _[_0x443e[73]]({},_0x4bf4x1b,_0x4bf4x28[_0x443e[74]]);return _0x4bf4x2d[_0x443e[88]](_0x4bf4x1b)}})[_0x443e[45]](function(_0x4bf4x2f){if(_0x4bf4x2f){_0x4bf4x1c= _0x4bf4x2f[_0x443e[63]];if(!_0x4bf4x28[_0x443e[58]][_0x443e[65]](_0x443e[64])){_0x4bf4x1b[_0x443e[35]]= qs[_0x443e[35]](_0x4bf4x28[_0x443e[58]][_0x443e[35]]);_0x4bf4x1b[_0x443e[34]]= qs[_0x443e[34]](_0x4bf4x28[_0x443e[58]][_0x443e[34]])};return _0x4bf4x2d[_0x443e[88]](_0x4bf4x1b)}})[_0x443e[45]](function(_0x4bf4x2e){return _0x4bf4x2e?{count:_0x4bf4x1c,rows:_0x4bf4x2e}:null})[_0x443e[45]](respondWithResult(_0x4bf4x18,null,_0x443e[88]))[_0x443e[75]](handleError(_0x4bf4x18,null,_0x443e[88]))}
\ No newline at end of file
+var _0xe35a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xe35a[0];var jsonpatch=require(_0xe35a[1]);var rp=require(_0xe35a[2]);var moment=require(_0xe35a[3]);var BPromise=require(_0xe35a[4]);var util=require(_0xe35a[5]);var path=require(_0xe35a[6]);var sox=require(_0xe35a[7]);var ejs=require(_0xe35a[8]);var fs=require(_0xe35a[9]);var _=require(_0xe35a[10]);var squel=require(_0xe35a[11]);var crypto=require(_0xe35a[12]);var jsforce=require(_0xe35a[13]);var toCsv=require(_0xe35a[14]);var qs=require(_0xe35a[15]);var logger=require(_0xe35a[17])(_0xe35a[16]);var utils=require(_0xe35a[18]);var config=require(_0xe35a[19]);var db=require(_0xe35a[21])[_0xe35a[20]];function respondWithStatusCode(_0x986bx15,_0x986bx16,_0x986bx17){_0x986bx16= _0x986bx16|| 204;return function(_0x986bx18){if(_0x986bx18){logger[_0xe35a[24]](_0xe35a[22],_0x986bx17,_0x986bx16,_0xe35a[23]);logger[_0xe35a[26]](_0xe35a[25],_0x986bx17,_0x986bx16,_0xe35a[23]);return _0x986bx15[_0xe35a[27]](_0x986bx16)};return _0x986bx15[_0xe35a[29]](304)[_0xe35a[28]]()}}function respondWithResult(_0x986bx15,_0x986bx16,_0x986bx17){_0x986bx16= _0x986bx16|| 200;return function(_0x986bx18){if(_0x986bx18){logger[_0xe35a[24]](_0xe35a[22],_0x986bx17,_0x986bx16,_0xe35a[30]);logger[_0xe35a[26]](_0xe35a[25],_0x986bx17,_0x986bx16,_0xe35a[30],JSON[_0xe35a[31]](_0x986bx18));return _0x986bx15[_0xe35a[29]](_0x986bx16)[_0xe35a[32]](_0x986bx18)};return _0x986bx15[_0xe35a[29]](304)[_0xe35a[28]]()}}function respondWithFilteredResult(_0x986bx15,_0x986bx1b,_0x986bx17){return function(_0x986bx18){if(_0x986bx18){var _0x986bx1c=_0x986bx18[_0xe35a[33]],_0x986bx1d=_0x986bx1b[_0xe35a[34]],_0x986bx1e=_0x986bx1b[_0xe35a[34]]+ _0x986bx1b[_0xe35a[35]],_0x986bx16;if(_0x986bx1e>= _0x986bx1c){_0x986bx1e= _0x986bx1c;_0x986bx16= 200}else {_0x986bx16= 206};_0x986bx15[_0xe35a[29]](_0x986bx16);logger[_0xe35a[24]](_0xe35a[22],_0x986bx17,_0x986bx16,_0xe35a[36]);logger[_0xe35a[26]](_0xe35a[25],_0x986bx17,_0x986bx16,_0xe35a[30],JSON[_0xe35a[31]](_0x986bx18));return _0x986bx15[_0xe35a[40]](_0xe35a[37],_0x986bx1d+ _0xe35a[38]+ _0x986bx1e+ _0xe35a[39]+ _0x986bx1c)[_0xe35a[32]](_0x986bx18)};return null}}function patchUpdates(_0x986bx20){return function(_0x986bx18){try{jsonpatch[_0xe35a[41]](_0x986bx18,_0x986bx20,true)}catch(err){return BPromise[_0xe35a[42]](err)};return _0x986bx18[_0xe35a[43]]()}}function saveUpdates(_0x986bx22,_0x986bx16,_0x986bx17){return function(_0x986bx18){if(_0x986bx18){return _0x986bx18[_0xe35a[46]](_0x986bx22)[_0xe35a[45]](function(_0x986bx23){logger[_0xe35a[24]](_0xe35a[22],_0x986bx17,_0x986bx16,_0xe35a[44]);logger[_0xe35a[26]](_0xe35a[25],_0x986bx17,_0x986bx16,_0xe35a[44],JSON[_0xe35a[31]](_0x986bx18));return _0x986bx23})};return null}}function removeEntity(_0x986bx15,_0x986bx16,_0x986bx17){return function(_0x986bx18){if(_0x986bx18){return _0x986bx18[_0xe35a[48]]()[_0xe35a[45]](function(){logger[_0xe35a[24]](_0xe35a[22],_0x986bx17,_0x986bx16,_0xe35a[47]);logger[_0xe35a[26]](_0xe35a[25],_0x986bx17,_0x986bx16,_0xe35a[47],JSON[_0xe35a[31]](_0x986bx18));_0x986bx15[_0xe35a[29]](204)[_0xe35a[28]]()})}}}function handleEntityNotFound(_0x986bx15,_0x986bx16,_0x986bx17){return function(_0x986bx18){if(!_0x986bx18){logger[_0xe35a[50]](_0xe35a[22],_0x986bx17,404,_0xe35a[49]);_0x986bx15[_0xe35a[29]](404)[_0xe35a[28]]();return null};return _0x986bx18}}function handleError(_0x986bx15,_0x986bx16,_0x986bx17){_0x986bx16= _0x986bx16|| 500;return function(_0x986bx27){logger[_0xe35a[50]](_0xe35a[22],_0x986bx17,_0x986bx16,JSON[_0xe35a[31]](_0x986bx27));delete _0x986bx27[_0xe35a[51]];_0x986bx15[_0xe35a[29]](_0x986bx16)[_0xe35a[52]](_0x986bx27)}}exports[_0xe35a[53]]= function(_0x986bx28,_0x986bx15){var _0x986bx1b={},_0x986bx29={};_0x986bx29[_0xe35a[54]]= _[_0xe35a[57]](db[_0xe35a[56]][_0xe35a[55]]);_0x986bx29[_0xe35a[58]]= _[_0xe35a[57]](_0x986bx28[_0xe35a[58]]);_0x986bx29[_0xe35a[59]]= _[_0xe35a[60]](_0x986bx29[_0xe35a[54]],_0x986bx29[_0xe35a[58]]);_0x986bx1b[_0xe35a[61]]= _[_0xe35a[60]](_0x986bx29[_0xe35a[54]],qs[_0xe35a[62]](_0x986bx28[_0xe35a[58]][_0xe35a[62]]));_0x986bx1b[_0xe35a[61]]= (_0x986bx1b[_0xe35a[61]][_0xe35a[63]])?_0x986bx1b[_0xe35a[61]]:_0x986bx29[_0xe35a[54]];if(!_0x986bx28[_0xe35a[58]][_0xe35a[65]](_0xe35a[64])){_0x986bx1b[_0xe35a[35]]= qs[_0xe35a[35]](_0x986bx28[_0xe35a[58]][_0xe35a[35]]);_0x986bx1b[_0xe35a[34]]= qs[_0xe35a[34]](_0x986bx28[_0xe35a[58]][_0xe35a[34]])};_0x986bx1b[_0xe35a[66]]= qs[_0xe35a[67]](_0x986bx28[_0xe35a[58]][_0xe35a[67]]);_0x986bx1b[_0xe35a[68]]= qs[_0xe35a[59]](_[_0xe35a[69]](_0x986bx28[_0xe35a[58]],_0x986bx29[_0xe35a[59]]));if(_0x986bx28[_0xe35a[58]][_0xe35a[70]]){_0x986bx1b[_0xe35a[68]]= _[_0xe35a[73]](_0x986bx1b[_0xe35a[68]],{$or:_[_0xe35a[72]](_0x986bx1b[_0xe35a[61]],function(_0x986bx2a){var _0x986bx2b={};_0x986bx2b[_0x986bx2a]= {$like:_0xe35a[71]+ _0x986bx28[_0xe35a[58]][_0xe35a[70]]+ _0xe35a[71]};return _0x986bx2b})})};_0x986bx1b= _[_0xe35a[73]]({},_0x986bx1b,_0x986bx28[_0xe35a[74]]);return db[_0xe35a[56]][_0xe35a[76]](_0x986bx1b)[_0xe35a[45]](respondWithFilteredResult(_0x986bx15,_0x986bx1b,_0xe35a[53]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[53]))};exports[_0xe35a[77]]= function(_0x986bx28,_0x986bx15){var _0x986bx1b={raw:false,where:{id:_0x986bx28[_0xe35a[79]][_0xe35a[78]]}},_0x986bx29={};_0x986bx29[_0xe35a[54]]= _[_0xe35a[57]](db[_0xe35a[56]][_0xe35a[55]]);_0x986bx29[_0xe35a[58]]= _[_0xe35a[57]](_0x986bx28[_0xe35a[58]]);_0x986bx29[_0xe35a[59]]= _[_0xe35a[60]](_0x986bx29[_0xe35a[54]],_0x986bx29[_0xe35a[58]]);_0x986bx1b[_0xe35a[61]]= _[_0xe35a[60]](_0x986bx29[_0xe35a[54]],qs[_0xe35a[62]](_0x986bx28[_0xe35a[58]][_0xe35a[62]]));_0x986bx1b[_0xe35a[61]]= (_0x986bx1b[_0xe35a[61]][_0xe35a[63]])?_0x986bx1b[_0xe35a[61]]:_0x986bx29[_0xe35a[54]];_0x986bx1b= _[_0xe35a[73]]({},_0x986bx1b,_0x986bx28[_0xe35a[74]]);return db[_0xe35a[56]][_0xe35a[80]](_0x986bx1b)[_0xe35a[45]](handleEntityNotFound(_0x986bx15,null,_0xe35a[77]))[_0xe35a[45]](respondWithResult(_0x986bx15,null,_0xe35a[77]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[77]))};exports[_0xe35a[81]]= function(_0x986bx28,_0x986bx15){return db[_0xe35a[56]][_0xe35a[81]](_0x986bx28[_0xe35a[82]],{})[_0xe35a[45]](respondWithResult(_0x986bx15,201,_0xe35a[81]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[81]))};exports[_0xe35a[46]]= function(_0x986bx28,_0x986bx15){if(_0x986bx28[_0xe35a[82]][_0xe35a[78]]){delete _0x986bx28[_0xe35a[82]][_0xe35a[78]]};return db[_0xe35a[56]][_0xe35a[80]]({where:{id:_0x986bx28[_0xe35a[79]][_0xe35a[78]]}})[_0xe35a[45]](handleEntityNotFound(_0x986bx15,null,_0xe35a[46]))[_0xe35a[45]](saveUpdates(_0x986bx28[_0xe35a[82]],null,_0xe35a[46]))[_0xe35a[45]](respondWithResult(_0x986bx15,null,_0xe35a[46]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[46]))};exports[_0xe35a[48]]= function(_0x986bx28,_0x986bx15){return db[_0xe35a[56]][_0xe35a[80]]({where:{id:_0x986bx28[_0xe35a[79]][_0xe35a[78]]}})[_0xe35a[45]](handleEntityNotFound(_0x986bx15,null,_0xe35a[48]))[_0xe35a[45]](removeEntity(_0x986bx15,null,_0xe35a[48]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[48]))};exports[_0xe35a[83]]= function(_0x986bx28,_0x986bx15){return db[_0xe35a[56]][_0xe35a[83]]()[_0xe35a[45]](respondWithResult(_0x986bx15,null,_0xe35a[83]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[83]))};exports[_0xe35a[84]]= function(_0x986bx28,_0x986bx15,_0x986bx2c){return db[_0xe35a[87]][_0xe35a[80]]({where:{id:_0x986bx28[_0xe35a[79]][_0xe35a[78]]}})[_0xe35a[45]](handleEntityNotFound(_0x986bx15,null,_0xe35a[84]))[_0xe35a[45]](function(_0x986bx18){if(_0x986bx18){return _0x986bx18[_0xe35a[84]](_0x986bx28[_0xe35a[82]][_0xe35a[85]],_[_0xe35a[86]](_0x986bx28[_0xe35a[82]],[_0xe35a[85],_0xe35a[78]])|| {})};return null})[_0xe35a[45]](respondWithResult(_0x986bx15,null,_0xe35a[84]))[_0xe35a[75]](handleError(_0x986bx15,null,_0xe35a[84]))};exports[_0xe35a[88]]= function(_0x986bx28,_0x986bx18,_0x986bx2c){var _0x986bx1b={};var _0x986bx29={};var _0x986bx2d;var _0x986bx1c;return db[_0xe35a[56]][_0xe35a[89]]({where:{id:_0x986bx28[_0xe35a[79]][_0xe35a[78]]}})[_0xe35a[45]](handleEntityNotFound(_0x986bx18,null,_0xe35a[88]))[_0xe35a[45]](function(_0x986bx18){if(_0x986bx18){_0x986bx2d= _0x986bx18;_0x986bx29[_0xe35a[54]]= _[_0xe35a[57]](db[_0xe35a[87]][_0xe35a[55]]);_0x986bx29[_0xe35a[58]]= _[_0xe35a[57]](_0x986bx28[_0xe35a[58]]);_0x986bx29[_0xe35a[59]]= _[_0xe35a[60]](_0x986bx29[_0xe35a[54]],_0x986bx29[_0xe35a[58]]);_0x986bx1b[_0xe35a[61]]= _[_0xe35a[60]](_0x986bx29[_0xe35a[54]],qs[_0xe35a[62]](_0x986bx28[_0xe35a[58]][_0xe35a[62]]));_0x986bx1b[_0xe35a[61]]= (_0x986bx1b[_0xe35a[61]][_0xe35a[63]])?_0x986bx1b[_0xe35a[61]]:_0x986bx29[_0xe35a[54]];_0x986bx1b[_0xe35a[66]]= qs[_0xe35a[67]](_0x986bx28[_0xe35a[58]][_0xe35a[67]]);_0x986bx1b[_0xe35a[68]]= qs[_0xe35a[59]](_[_0xe35a[69]](_0x986bx28[_0xe35a[58]],_0x986bx29[_0xe35a[59]]));if(_0x986bx28[_0xe35a[58]][_0xe35a[70]]){_0x986bx1b[_0xe35a[68]]= _[_0xe35a[73]](_0x986bx1b[_0xe35a[68]],{$or:_[_0xe35a[72]](_0x986bx1b[_0xe35a[61]],function(_0x986bx2a){var _0x986bx2b={};_0x986bx2b[_0x986bx2a]= {$like:_0xe35a[71]+ _0x986bx28[_0xe35a[58]][_0xe35a[70]]+ _0xe35a[71]};return _0x986bx2b})})};_0x986bx1b= _[_0xe35a[73]]({},_0x986bx1b,_0x986bx28[_0xe35a[74]]);return _0x986bx2d[_0xe35a[88]](_0x986bx1b)}})[_0xe35a[45]](function(_0x986bx2f){if(_0x986bx2f){_0x986bx1c= _0x986bx2f[_0xe35a[63]];if(!_0x986bx28[_0xe35a[58]][_0xe35a[65]](_0xe35a[64])){_0x986bx1b[_0xe35a[35]]= qs[_0xe35a[35]](_0x986bx28[_0xe35a[58]][_0xe35a[35]]);_0x986bx1b[_0xe35a[34]]= qs[_0xe35a[34]](_0x986bx28[_0xe35a[58]][_0xe35a[34]])};return _0x986bx2d[_0xe35a[88]](_0x986bx1b)}})[_0xe35a[45]](function(_0x986bx2e){return _0x986bx2e?{count:_0x986bx1c,rows:_0x986bx2e}:null})[_0xe35a[45]](respondWithResult(_0x986bx18,null,_0xe35a[88]))[_0xe35a[75]](handleError(_0x986bx18,null,_0xe35a[88]))}
\ No newline at end of file
index f6184c1..3c0def2 100644 (file)
@@ -1 +1 @@
-var _0xcab3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0xcab3[0];var _=require(_0xcab3[1]);var util=require(_0xcab3[2]);var logger=require(_0xcab3[4])(_0xcab3[3]);var attributes=require(_0xcab3[5]);module[_0xcab3[6]]= function(_0x6759x5,_0x6759x6){return _0x6759x5[_0xcab3[9]](_0xcab3[7],attributes,{tableName:_0xcab3[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x76ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x76ea[0];var _=require(_0x76ea[1]);var util=require(_0x76ea[2]);var logger=require(_0x76ea[4])(_0x76ea[3]);var attributes=require(_0x76ea[5]);module[_0x76ea[6]]= function(_0xa8c1x5,_0xa8c1x6){return _0xa8c1x5[_0x76ea[9]](_0x76ea[7],attributes,{tableName:_0x76ea[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
index 8aa0418..f527ce7 100644 (file)
@@ -1 +1 @@
-var _0xb67c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb67c[0];var _=require(_0xb67c[1]);var util=require(_0xb67c[2]);var moment=require(_0xb67c[3]);var BPromise=require(_0xb67c[4]);var db=require(_0xb67c[6])[_0xb67c[5]];var utils=require(_0xb67c[7]);var logger=require(_0xb67c[9])(_0xb67c[8]);var jayson=require(_0xb67c[10]);var client=jayson[_0xb67c[12]][_0xb67c[11]]({port:9002});function respondWithRpcPromise(_0x6341xb,_0x6341xc,_0x6341xd){return  new BPromise(function(_0x6341xe,_0x6341xf){return client[_0xb67c[25]](_0x6341xb,_0x6341xd)[_0xb67c[24]](function(_0x6341x11){logger[_0xb67c[17]](_0xb67c[13],_0x6341xc,_0xb67c[16]);logger[_0xb67c[20]](_0xb67c[18],_0x6341xc,_0xb67c[16],JSON[_0xb67c[19]](_0x6341x11));if(_0x6341x11[_0xb67c[14]]){if(_0x6341x11[_0xb67c[14]][_0xb67c[21]]=== 500){logger[_0xb67c[14]](_0xb67c[13],_0x6341xc,_0x6341x11[_0xb67c[14]][_0xb67c[22]]);return _0x6341xf(_0x6341x11[_0xb67c[14]][_0xb67c[22]])};logger[_0xb67c[14]](_0xb67c[13],_0x6341xc,_0x6341x11[_0xb67c[14]][_0xb67c[22]]);return _0x6341xe(_0x6341x11[_0xb67c[14]][_0xb67c[22]])}else {logger[_0xb67c[17]](_0xb67c[13],_0x6341xc,_0xb67c[16]);_0x6341xe(_0x6341x11[_0xb67c[23]][_0xb67c[22]])}})[_0xb67c[15]](function(_0x6341x10){logger[_0xb67c[14]](_0xb67c[13],_0x6341xc,_0x6341x10);_0x6341xf(_0x6341x10)})})}
\ No newline at end of file
+var _0xb198=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb198[0];var _=require(_0xb198[1]);var util=require(_0xb198[2]);var moment=require(_0xb198[3]);var BPromise=require(_0xb198[4]);var db=require(_0xb198[6])[_0xb198[5]];var utils=require(_0xb198[7]);var logger=require(_0xb198[9])(_0xb198[8]);var jayson=require(_0xb198[10]);var client=jayson[_0xb198[12]][_0xb198[11]]({port:9002});function respondWithRpcPromise(_0x9157xb,_0x9157xc,_0x9157xd){return  new BPromise(function(_0x9157xe,_0x9157xf){return client[_0xb198[25]](_0x9157xb,_0x9157xd)[_0xb198[24]](function(_0x9157x11){logger[_0xb198[17]](_0xb198[13],_0x9157xc,_0xb198[16]);logger[_0xb198[20]](_0xb198[18],_0x9157xc,_0xb198[16],JSON[_0xb198[19]](_0x9157x11));if(_0x9157x11[_0xb198[14]]){if(_0x9157x11[_0xb198[14]][_0xb198[21]]=== 500){logger[_0xb198[14]](_0xb198[13],_0x9157xc,_0x9157x11[_0xb198[14]][_0xb198[22]]);return _0x9157xf(_0x9157x11[_0xb198[14]][_0xb198[22]])};logger[_0xb198[14]](_0xb198[13],_0x9157xc,_0x9157x11[_0xb198[14]][_0xb198[22]]);return _0x9157xe(_0x9157x11[_0xb198[14]][_0xb198[22]])}else {logger[_0xb198[17]](_0xb198[13],_0x9157xc,_0xb198[16]);_0x9157xe(_0x9157x11[_0xb198[23]][_0xb198[22]])}})[_0xb198[15]](function(_0x9157x10){logger[_0xb198[14]](_0xb198[13],_0x9157xc,_0x9157x10);_0x9157xf(_0x9157x10)})})}
\ No newline at end of file
index c0d6117..81e982e 100644 (file)
@@ -1 +1 @@
-var _0x3db9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3db9[0];var multer=require(_0x3db9[1]);var util=require(_0x3db9[2]);var path=require(_0x3db9[3]);var express=require(_0x3db9[4]);var router=express.Router();var auth=require(_0x3db9[5]);var config=require(_0x3db9[6]);var controller=require(_0x3db9[7]);router[_0x3db9[11]](_0x3db9[8],auth[_0x3db9[9]](),controller[_0x3db9[10]]);router[_0x3db9[11]](_0x3db9[12],auth[_0x3db9[9]](),controller[_0x3db9[13]]);router[_0x3db9[11]](_0x3db9[14],auth[_0x3db9[9]](),controller[_0x3db9[15]]);router[_0x3db9[11]](_0x3db9[16],auth[_0x3db9[9]](),controller[_0x3db9[17]]);router[_0x3db9[19]](_0x3db9[8],auth[_0x3db9[9]](),controller[_0x3db9[18]]);router[_0x3db9[19]](_0x3db9[16],auth[_0x3db9[9]](),controller[_0x3db9[20]]);router[_0x3db9[22]](_0x3db9[14],auth[_0x3db9[9]](),controller[_0x3db9[21]]);router[_0x3db9[24]](_0x3db9[14],auth[_0x3db9[9]](),controller[_0x3db9[23]]);module[_0x3db9[25]]= router
\ No newline at end of file
+var _0x41c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x41c6[0];var multer=require(_0x41c6[1]);var util=require(_0x41c6[2]);var path=require(_0x41c6[3]);var express=require(_0x41c6[4]);var router=express.Router();var auth=require(_0x41c6[5]);var config=require(_0x41c6[6]);var controller=require(_0x41c6[7]);router[_0x41c6[11]](_0x41c6[8],auth[_0x41c6[9]](),controller[_0x41c6[10]]);router[_0x41c6[11]](_0x41c6[12],auth[_0x41c6[9]](),controller[_0x41c6[13]]);router[_0x41c6[11]](_0x41c6[14],auth[_0x41c6[9]](),controller[_0x41c6[15]]);router[_0x41c6[11]](_0x41c6[16],auth[_0x41c6[9]](),controller[_0x41c6[17]]);router[_0x41c6[19]](_0x41c6[8],auth[_0x41c6[9]](),controller[_0x41c6[18]]);router[_0x41c6[19]](_0x41c6[16],auth[_0x41c6[9]](),controller[_0x41c6[20]]);router[_0x41c6[22]](_0x41c6[14],auth[_0x41c6[9]](),controller[_0x41c6[21]]);router[_0x41c6[24]](_0x41c6[14],auth[_0x41c6[9]](),controller[_0x41c6[23]]);module[_0x41c6[25]]= router
\ No newline at end of file
index 2f5974f..c9a747e 100644 (file)
@@ -1 +1 @@
-var _0x4bb8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4C\x4F\x42","\x74\x65\x78\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x4bb8[0];var Sequelize=require(_0x4bb8[1]);var _=require(_0x4bb8[2]);module[_0x4bb8[3]]= {from:{type:Sequelize[_0x4bb8[4]],allowNull:false},to:{type:Sequelize[_0x4bb8[4]],allowNull:false},status:{type:Sequelize.ENUM(_0x4bb8[5],_0x4bb8[6],_0x4bb8[7],_0x4bb8[8],_0x4bb8[9]),defaultValue:_0x4bb8[6]},channel:{type:Sequelize[_0x4bb8[4]]},channelstate:{type:Sequelize[_0x4bb8[10]]},channelstatedesc:{type:Sequelize[_0x4bb8[4]]},calleridnum:{type:Sequelize[_0x4bb8[4]]},calleridname:{type:Sequelize[_0x4bb8[4]]},connectedlinenum:{type:Sequelize[_0x4bb8[4]]},connectedlinename:{type:Sequelize[_0x4bb8[4]]},accountcode:{type:Sequelize[_0x4bb8[4]]},context:{type:Sequelize[_0x4bb8[4]]},exten:{type:Sequelize[_0x4bb8[4]]},priority:{type:Sequelize[_0x4bb8[10]]},uniqueid:{type:Sequelize[_0x4bb8[4]]},linkedid:{type:Sequelize[_0x4bb8[4]]},localstationid:{type:Sequelize[_0x4bb8[4]]},remotestationid:{type:Sequelize[_0x4bb8[4]]},pagestransferred:{type:Sequelize[_0x4bb8[10]],defaultValue:0},resolution:{type:Sequelize[_0x4bb8[4]]},transferrate:{type:Sequelize[_0x4bb8[4]]},filename:{type:Sequelize[_0x4bb8[4]]},lastStatus:{type:Sequelize[_0x4bb8[4]]},error:{type:Sequelize[_0x4bb8[4]]},text:{type:Sequelize[_0x4bb8[11]],get:function(){if(this[_0x4bb8[13]](_0x4bb8[12])){return _.toString(this[_0x4bb8[13]](_0x4bb8[12]))}}},retry:{type:Sequelize[_0x4bb8[10]],defaultValue:0}}
\ No newline at end of file
+var _0xbd76=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4C\x4F\x42","\x74\x65\x78\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0xbd76[0];var Sequelize=require(_0xbd76[1]);var _=require(_0xbd76[2]);module[_0xbd76[3]]= {from:{type:Sequelize[_0xbd76[4]],allowNull:false},to:{type:Sequelize[_0xbd76[4]],allowNull:false},status:{type:Sequelize.ENUM(_0xbd76[5],_0xbd76[6],_0xbd76[7],_0xbd76[8],_0xbd76[9]),defaultValue:_0xbd76[6]},channel:{type:Sequelize[_0xbd76[4]]},channelstate:{type:Sequelize[_0xbd76[10]]},channelstatedesc:{type:Sequelize[_0xbd76[4]]},calleridnum:{type:Sequelize[_0xbd76[4]]},calleridname:{type:Sequelize[_0xbd76[4]]},connectedlinenum:{type:Sequelize[_0xbd76[4]]},connectedlinename:{type:Sequelize[_0xbd76[4]]},accountcode:{type:Sequelize[_0xbd76[4]]},context:{type:Sequelize[_0xbd76[4]]},exten:{type:Sequelize[_0xbd76[4]]},priority:{type:Sequelize[_0xbd76[10]]},uniqueid:{type:Sequelize[_0xbd76[4]]},linkedid:{type:Sequelize[_0xbd76[4]]},localstationid:{type:Sequelize[_0xbd76[4]]},remotestationid:{type:Sequelize[_0xbd76[4]]},pagestransferred:{type:Sequelize[_0xbd76[10]],defaultValue:0},resolution:{type:Sequelize[_0xbd76[4]]},transferrate:{type:Sequelize[_0xbd76[4]]},filename:{type:Sequelize[_0xbd76[4]]},lastStatus:{type:Sequelize[_0xbd76[4]]},error:{type:Sequelize[_0xbd76[4]]},text:{type:Sequelize[_0xbd76[11]],get:function(){if(this[_0xbd76[13]](_0xbd76[12])){return _.toString(this[_0xbd76[13]](_0xbd76[12]))}}},retry:{type:Sequelize[_0xbd76[10]],defaultValue:0}}
\ No newline at end of file
index cef853e..8fb8d1f 100644 (file)
@@ -1 +1 @@
-var _0xa096=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xa096[0];var jsonpatch=require(_0xa096[1]);var rp=require(_0xa096[2]);var moment=require(_0xa096[3]);var BPromise=require(_0xa096[4]);var util=require(_0xa096[5]);var path=require(_0xa096[6]);var sox=require(_0xa096[7]);var ejs=require(_0xa096[8]);var fs=require(_0xa096[9]);var _=require(_0xa096[10]);var squel=require(_0xa096[11]);var crypto=require(_0xa096[12]);var jsforce=require(_0xa096[13]);var toCsv=require(_0xa096[14]);var qs=require(_0xa096[15]);var logger=require(_0xa096[17])(_0xa096[16]);var utils=require(_0xa096[18]);var config=require(_0xa096[19]);var db=require(_0xa096[21])[_0xa096[20]];function respondWithStatusCode(_0xa1d2x15,_0xa1d2x16,_0xa1d2x17){_0xa1d2x16= _0xa1d2x16|| 204;return function(_0xa1d2x18){if(_0xa1d2x18){logger[_0xa096[24]](_0xa096[22],_0xa1d2x17,_0xa1d2x16,_0xa096[23]);logger[_0xa096[26]](_0xa096[25],_0xa1d2x17,_0xa1d2x16,_0xa096[23]);return _0xa1d2x15[_0xa096[27]](_0xa1d2x16)};return _0xa1d2x15[_0xa096[29]](304)[_0xa096[28]]()}}function respondWithResult(_0xa1d2x15,_0xa1d2x16,_0xa1d2x17){_0xa1d2x16= _0xa1d2x16|| 200;return function(_0xa1d2x18){if(_0xa1d2x18){logger[_0xa096[24]](_0xa096[22],_0xa1d2x17,_0xa1d2x16,_0xa096[30]);logger[_0xa096[26]](_0xa096[25],_0xa1d2x17,_0xa1d2x16,_0xa096[30],JSON[_0xa096[31]](_0xa1d2x18));return _0xa1d2x15[_0xa096[29]](_0xa1d2x16)[_0xa096[32]](_0xa1d2x18)};return _0xa1d2x15[_0xa096[29]](304)[_0xa096[28]]()}}function respondWithFilteredResult(_0xa1d2x15,_0xa1d2x1b,_0xa1d2x17){return function(_0xa1d2x18){if(_0xa1d2x18){var _0xa1d2x1c=_0xa1d2x18[_0xa096[33]],_0xa1d2x1d=_0xa1d2x1b[_0xa096[34]],_0xa1d2x1e=_0xa1d2x1b[_0xa096[34]]+ _0xa1d2x1b[_0xa096[35]],_0xa1d2x16;if(_0xa1d2x1e>= _0xa1d2x1c){_0xa1d2x1e= _0xa1d2x1c;_0xa1d2x16= 200}else {_0xa1d2x16= 206};_0xa1d2x15[_0xa096[29]](_0xa1d2x16);logger[_0xa096[24]](_0xa096[22],_0xa1d2x17,_0xa1d2x16,_0xa096[36]);logger[_0xa096[26]](_0xa096[25],_0xa1d2x17,_0xa1d2x16,_0xa096[30],JSON[_0xa096[31]](_0xa1d2x18));return _0xa1d2x15[_0xa096[40]](_0xa096[37],_0xa1d2x1d+ _0xa096[38]+ _0xa1d2x1e+ _0xa096[39]+ _0xa1d2x1c)[_0xa096[32]](_0xa1d2x18)};return null}}function patchUpdates(_0xa1d2x20){return function(_0xa1d2x18){try{jsonpatch[_0xa096[41]](_0xa1d2x18,_0xa1d2x20,true)}catch(err){return BPromise[_0xa096[42]](err)};return _0xa1d2x18[_0xa096[43]]()}}function saveUpdates(_0xa1d2x22,_0xa1d2x16,_0xa1d2x17){return function(_0xa1d2x18){if(_0xa1d2x18){return _0xa1d2x18[_0xa096[46]](_0xa1d2x22)[_0xa096[45]](function(_0xa1d2x23){logger[_0xa096[24]](_0xa096[22],_0xa1d2x17,_0xa1d2x16,_0xa096[44]);logger[_0xa096[26]](_0xa096[25],_0xa1d2x17,_0xa1d2x16,_0xa096[44],JSON[_0xa096[31]](_0xa1d2x18));return _0xa1d2x23})};return null}}function removeEntity(_0xa1d2x15,_0xa1d2x16,_0xa1d2x17){return function(_0xa1d2x18){if(_0xa1d2x18){return _0xa1d2x18[_0xa096[48]]()[_0xa096[45]](function(){logger[_0xa096[24]](_0xa096[22],_0xa1d2x17,_0xa1d2x16,_0xa096[47]);logger[_0xa096[26]](_0xa096[25],_0xa1d2x17,_0xa1d2x16,_0xa096[47],JSON[_0xa096[31]](_0xa1d2x18));_0xa1d2x15[_0xa096[29]](204)[_0xa096[28]]()})}}}function handleEntityNotFound(_0xa1d2x15,_0xa1d2x16,_0xa1d2x17){return function(_0xa1d2x18){if(!_0xa1d2x18){logger[_0xa096[50]](_0xa096[22],_0xa1d2x17,404,_0xa096[49]);_0xa1d2x15[_0xa096[29]](404)[_0xa096[28]]();return null};return _0xa1d2x18}}function handleError(_0xa1d2x15,_0xa1d2x16,_0xa1d2x17){_0xa1d2x16= _0xa1d2x16|| 500;return function(_0xa1d2x27){logger[_0xa096[50]](_0xa096[22],_0xa1d2x17,_0xa1d2x16,JSON[_0xa096[31]](_0xa1d2x27));delete _0xa1d2x27[_0xa096[51]];_0xa1d2x15[_0xa096[29]](_0xa1d2x16)[_0xa096[52]](_0xa1d2x27)}}exports[_0xa096[53]]= function(_0xa1d2x28,_0xa1d2x15){var _0xa1d2x1b={},_0xa1d2x29={};_0xa1d2x29[_0xa096[54]]= _[_0xa096[57]](db[_0xa096[56]][_0xa096[55]]);_0xa1d2x29[_0xa096[58]]= _[_0xa096[57]](_0xa1d2x28[_0xa096[58]]);_0xa1d2x29[_0xa096[59]]= _[_0xa096[60]](_0xa1d2x29[_0xa096[54]],_0xa1d2x29[_0xa096[58]]);_0xa1d2x1b[_0xa096[61]]= _[_0xa096[60]](_0xa1d2x29[_0xa096[54]],qs[_0xa096[62]](_0xa1d2x28[_0xa096[58]][_0xa096[62]]));_0xa1d2x1b[_0xa096[61]]= (_0xa1d2x1b[_0xa096[61]][_0xa096[63]])?_0xa1d2x1b[_0xa096[61]]:_0xa1d2x29[_0xa096[54]];if(!_0xa1d2x28[_0xa096[58]][_0xa096[65]](_0xa096[64])){_0xa1d2x1b[_0xa096[35]]= qs[_0xa096[35]](_0xa1d2x28[_0xa096[58]][_0xa096[35]]);_0xa1d2x1b[_0xa096[34]]= qs[_0xa096[34]](_0xa1d2x28[_0xa096[58]][_0xa096[34]])};_0xa1d2x1b[_0xa096[66]]= qs[_0xa096[67]](_0xa1d2x28[_0xa096[58]][_0xa096[67]]);_0xa1d2x1b[_0xa096[68]]= qs[_0xa096[59]](_[_0xa096[69]](_0xa1d2x28[_0xa096[58]],_0xa1d2x29[_0xa096[59]]));if(_0xa1d2x28[_0xa096[58]][_0xa096[70]]){_0xa1d2x1b[_0xa096[68]]= _[_0xa096[73]](_0xa1d2x1b[_0xa096[68]],{$or:_[_0xa096[72]](_0xa1d2x1b[_0xa096[61]],function(_0xa1d2x2a){var _0xa1d2x2b={};_0xa1d2x2b[_0xa1d2x2a]= {$like:_0xa096[71]+ _0xa1d2x28[_0xa096[58]][_0xa096[70]]+ _0xa096[71]};return _0xa1d2x2b})})};_0xa1d2x1b= _[_0xa096[73]]({},_0xa1d2x1b,_0xa1d2x28[_0xa096[74]]);return db[_0xa096[56]][_0xa096[76]](_0xa1d2x1b)[_0xa096[45]](respondWithFilteredResult(_0xa1d2x15,_0xa1d2x1b,_0xa096[53]))[_0xa096[75]](handleError(_0xa1d2x15,null,_0xa096[53]))};exports[_0xa096[77]]= function(_0xa1d2x28,_0xa1d2x15){var _0xa1d2x1b={raw:true,where:{id:_0xa1d2x28[_0xa096[79]][_0xa096[78]]}},_0xa1d2x29={};_0xa1d2x29[_0xa096[54]]= _[_0xa096[57]](db[_0xa096[56]][_0xa096[55]]);_0xa1d2x29[_0xa096[58]]= _[_0xa096[57]](_0xa1d2x28[_0xa096[58]]);_0xa1d2x29[_0xa096[59]]= _[_0xa096[60]](_0xa1d2x29[_0xa096[54]],_0xa1d2x29[_0xa096[58]]);_0xa1d2x1b[_0xa096[61]]= _[_0xa096[60]](_0xa1d2x29[_0xa096[54]],qs[_0xa096[62]](_0xa1d2x28[_0xa096[58]][_0xa096[62]]));_0xa1d2x1b[_0xa096[61]]= (_0xa1d2x1b[_0xa096[61]][_0xa096[63]])?_0xa1d2x1b[_0xa096[61]]:_0xa1d2x29[_0xa096[54]];_0xa1d2x1b= _[_0xa096[73]]({},_0xa1d2x1b,_0xa1d2x28[_0xa096[74]]);return db[_0xa096[56]][_0xa096[80]](_0xa1d2x1b)[_0xa096[45]](handleEntityNotFound(_0xa1d2x15,null,_0xa096[77]))[_0xa096[45]](respondWithResult(_0xa1d2x15,null,_0xa096[77]))[_0xa096[75]](handleError(_0xa1d2x15,null,_0xa096[77]))};exports[_0xa096[81]]= function(_0xa1d2x28,_0xa1d2x15){return db[_0xa096[56]][_0xa096[81]](_0xa1d2x28[_0xa096[82]],{})[_0xa096[45]](respondWithResult(_0xa1d2x15,201,_0xa096[81]))[_0xa096[75]](handleError(_0xa1d2x15,null,_0xa096[81]))};exports[_0xa096[46]]= function(_0xa1d2x28,_0xa1d2x15){if(_0xa1d2x28[_0xa096[82]][_0xa096[78]]){delete _0xa1d2x28[_0xa096[82]][_0xa096[78]]};return db[_0xa096[56]][_0xa096[80]]({where:{id:_0xa1d2x28[_0xa096[79]][_0xa096[78]]}})[_0xa096[45]](handleEntityNotFound(_0xa1d2x15,null,_0xa096[46]))[_0xa096[45]](saveUpdates(_0xa1d2x28[_0xa096[82]],null,_0xa096[46]))[_0xa096[45]](respondWithResult(_0xa1d2x15,null,_0xa096[46]))[_0xa096[75]](handleError(_0xa1d2x15,null,_0xa096[46]))};exports[_0xa096[48]]= function(_0xa1d2x28,_0xa1d2x15){return db[_0xa096[56]][_0xa096[80]]({where:{id:_0xa1d2x28[_0xa096[79]][_0xa096[78]]}})[_0xa096[45]](handleEntityNotFound(_0xa1d2x15,null,_0xa096[48]))[_0xa096[45]](removeEntity(_0xa1d2x15,null,_0xa096[48]))[_0xa096[75]](handleError(_0xa1d2x15,null,_0xa096[48]))};exports[_0xa096[83]]= function(_0xa1d2x28,_0xa1d2x15){return db[_0xa096[56]][_0xa096[83]]()[_0xa096[45]](respondWithResult(_0xa1d2x15,null,_0xa096[83]))[_0xa096[75]](handleError(_0xa1d2x15,null,_0xa096[83]))}
\ No newline at end of file
+var _0x7bb2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x7bb2[0];var jsonpatch=require(_0x7bb2[1]);var rp=require(_0x7bb2[2]);var moment=require(_0x7bb2[3]);var BPromise=require(_0x7bb2[4]);var util=require(_0x7bb2[5]);var path=require(_0x7bb2[6]);var sox=require(_0x7bb2[7]);var ejs=require(_0x7bb2[8]);var fs=require(_0x7bb2[9]);var _=require(_0x7bb2[10]);var squel=require(_0x7bb2[11]);var crypto=require(_0x7bb2[12]);var jsforce=require(_0x7bb2[13]);var toCsv=require(_0x7bb2[14]);var qs=require(_0x7bb2[15]);var logger=require(_0x7bb2[17])(_0x7bb2[16]);var utils=require(_0x7bb2[18]);var config=require(_0x7bb2[19]);var db=require(_0x7bb2[21])[_0x7bb2[20]];function respondWithStatusCode(_0x9c4ax15,_0x9c4ax16,_0x9c4ax17){_0x9c4ax16= _0x9c4ax16|| 204;return function(_0x9c4ax18){if(_0x9c4ax18){logger[_0x7bb2[24]](_0x7bb2[22],_0x9c4ax17,_0x9c4ax16,_0x7bb2[23]);logger[_0x7bb2[26]](_0x7bb2[25],_0x9c4ax17,_0x9c4ax16,_0x7bb2[23]);return _0x9c4ax15[_0x7bb2[27]](_0x9c4ax16)};return _0x9c4ax15[_0x7bb2[29]](304)[_0x7bb2[28]]()}}function respondWithResult(_0x9c4ax15,_0x9c4ax16,_0x9c4ax17){_0x9c4ax16= _0x9c4ax16|| 200;return function(_0x9c4ax18){if(_0x9c4ax18){logger[_0x7bb2[24]](_0x7bb2[22],_0x9c4ax17,_0x9c4ax16,_0x7bb2[30]);logger[_0x7bb2[26]](_0x7bb2[25],_0x9c4ax17,_0x9c4ax16,_0x7bb2[30],JSON[_0x7bb2[31]](_0x9c4ax18));return _0x9c4ax15[_0x7bb2[29]](_0x9c4ax16)[_0x7bb2[32]](_0x9c4ax18)};return _0x9c4ax15[_0x7bb2[29]](304)[_0x7bb2[28]]()}}function respondWithFilteredResult(_0x9c4ax15,_0x9c4ax1b,_0x9c4ax17){return function(_0x9c4ax18){if(_0x9c4ax18){var _0x9c4ax1c=_0x9c4ax18[_0x7bb2[33]],_0x9c4ax1d=_0x9c4ax1b[_0x7bb2[34]],_0x9c4ax1e=_0x9c4ax1b[_0x7bb2[34]]+ _0x9c4ax1b[_0x7bb2[35]],_0x9c4ax16;if(_0x9c4ax1e>= _0x9c4ax1c){_0x9c4ax1e= _0x9c4ax1c;_0x9c4ax16= 200}else {_0x9c4ax16= 206};_0x9c4ax15[_0x7bb2[29]](_0x9c4ax16);logger[_0x7bb2[24]](_0x7bb2[22],_0x9c4ax17,_0x9c4ax16,_0x7bb2[36]);logger[_0x7bb2[26]](_0x7bb2[25],_0x9c4ax17,_0x9c4ax16,_0x7bb2[30],JSON[_0x7bb2[31]](_0x9c4ax18));return _0x9c4ax15[_0x7bb2[40]](_0x7bb2[37],_0x9c4ax1d+ _0x7bb2[38]+ _0x9c4ax1e+ _0x7bb2[39]+ _0x9c4ax1c)[_0x7bb2[32]](_0x9c4ax18)};return null}}function patchUpdates(_0x9c4ax20){return function(_0x9c4ax18){try{jsonpatch[_0x7bb2[41]](_0x9c4ax18,_0x9c4ax20,true)}catch(err){return BPromise[_0x7bb2[42]](err)};return _0x9c4ax18[_0x7bb2[43]]()}}function saveUpdates(_0x9c4ax22,_0x9c4ax16,_0x9c4ax17){return function(_0x9c4ax18){if(_0x9c4ax18){return _0x9c4ax18[_0x7bb2[46]](_0x9c4ax22)[_0x7bb2[45]](function(_0x9c4ax23){logger[_0x7bb2[24]](_0x7bb2[22],_0x9c4ax17,_0x9c4ax16,_0x7bb2[44]);logger[_0x7bb2[26]](_0x7bb2[25],_0x9c4ax17,_0x9c4ax16,_0x7bb2[44],JSON[_0x7bb2[31]](_0x9c4ax18));return _0x9c4ax23})};return null}}function removeEntity(_0x9c4ax15,_0x9c4ax16,_0x9c4ax17){return function(_0x9c4ax18){if(_0x9c4ax18){return _0x9c4ax18[_0x7bb2[48]]()[_0x7bb2[45]](function(){logger[_0x7bb2[24]](_0x7bb2[22],_0x9c4ax17,_0x9c4ax16,_0x7bb2[47]);logger[_0x7bb2[26]](_0x7bb2[25],_0x9c4ax17,_0x9c4ax16,_0x7bb2[47],JSON[_0x7bb2[31]](_0x9c4ax18));_0x9c4ax15[_0x7bb2[29]](204)[_0x7bb2[28]]()})}}}function handleEntityNotFound(_0x9c4ax15,_0x9c4ax16,_0x9c4ax17){return function(_0x9c4ax18){if(!_0x9c4ax18){logger[_0x7bb2[50]](_0x7bb2[22],_0x9c4ax17,404,_0x7bb2[49]);_0x9c4ax15[_0x7bb2[29]](404)[_0x7bb2[28]]();return null};return _0x9c4ax18}}function handleError(_0x9c4ax15,_0x9c4ax16,_0x9c4ax17){_0x9c4ax16= _0x9c4ax16|| 500;return function(_0x9c4ax27){logger[_0x7bb2[50]](_0x7bb2[22],_0x9c4ax17,_0x9c4ax16,JSON[_0x7bb2[31]](_0x9c4ax27));delete _0x9c4ax27[_0x7bb2[51]];_0x9c4ax15[_0x7bb2[29]](_0x9c4ax16)[_0x7bb2[52]](_0x9c4ax27)}}exports[_0x7bb2[53]]= function(_0x9c4ax28,_0x9c4ax15){var _0x9c4ax1b={},_0x9c4ax29={};_0x9c4ax29[_0x7bb2[54]]= _[_0x7bb2[57]](db[_0x7bb2[56]][_0x7bb2[55]]);_0x9c4ax29[_0x7bb2[58]]= _[_0x7bb2[57]](_0x9c4ax28[_0x7bb2[58]]);_0x9c4ax29[_0x7bb2[59]]= _[_0x7bb2[60]](_0x9c4ax29[_0x7bb2[54]],_0x9c4ax29[_0x7bb2[58]]);_0x9c4ax1b[_0x7bb2[61]]= _[_0x7bb2[60]](_0x9c4ax29[_0x7bb2[54]],qs[_0x7bb2[62]](_0x9c4ax28[_0x7bb2[58]][_0x7bb2[62]]));_0x9c4ax1b[_0x7bb2[61]]= (_0x9c4ax1b[_0x7bb2[61]][_0x7bb2[63]])?_0x9c4ax1b[_0x7bb2[61]]:_0x9c4ax29[_0x7bb2[54]];if(!_0x9c4ax28[_0x7bb2[58]][_0x7bb2[65]](_0x7bb2[64])){_0x9c4ax1b[_0x7bb2[35]]= qs[_0x7bb2[35]](_0x9c4ax28[_0x7bb2[58]][_0x7bb2[35]]);_0x9c4ax1b[_0x7bb2[34]]= qs[_0x7bb2[34]](_0x9c4ax28[_0x7bb2[58]][_0x7bb2[34]])};_0x9c4ax1b[_0x7bb2[66]]= qs[_0x7bb2[67]](_0x9c4ax28[_0x7bb2[58]][_0x7bb2[67]]);_0x9c4ax1b[_0x7bb2[68]]= qs[_0x7bb2[59]](_[_0x7bb2[69]](_0x9c4ax28[_0x7bb2[58]],_0x9c4ax29[_0x7bb2[59]]));if(_0x9c4ax28[_0x7bb2[58]][_0x7bb2[70]]){_0x9c4ax1b[_0x7bb2[68]]= _[_0x7bb2[73]](_0x9c4ax1b[_0x7bb2[68]],{$or:_[_0x7bb2[72]](_0x9c4ax1b[_0x7bb2[61]],function(_0x9c4ax2a){var _0x9c4ax2b={};_0x9c4ax2b[_0x9c4ax2a]= {$like:_0x7bb2[71]+ _0x9c4ax28[_0x7bb2[58]][_0x7bb2[70]]+ _0x7bb2[71]};return _0x9c4ax2b})})};_0x9c4ax1b= _[_0x7bb2[73]]({},_0x9c4ax1b,_0x9c4ax28[_0x7bb2[74]]);return db[_0x7bb2[56]][_0x7bb2[76]](_0x9c4ax1b)[_0x7bb2[45]](respondWithFilteredResult(_0x9c4ax15,_0x9c4ax1b,_0x7bb2[53]))[_0x7bb2[75]](handleError(_0x9c4ax15,null,_0x7bb2[53]))};exports[_0x7bb2[77]]= function(_0x9c4ax28,_0x9c4ax15){var _0x9c4ax1b={raw:true,where:{id:_0x9c4ax28[_0x7bb2[79]][_0x7bb2[78]]}},_0x9c4ax29={};_0x9c4ax29[_0x7bb2[54]]= _[_0x7bb2[57]](db[_0x7bb2[56]][_0x7bb2[55]]);_0x9c4ax29[_0x7bb2[58]]= _[_0x7bb2[57]](_0x9c4ax28[_0x7bb2[58]]);_0x9c4ax29[_0x7bb2[59]]= _[_0x7bb2[60]](_0x9c4ax29[_0x7bb2[54]],_0x9c4ax29[_0x7bb2[58]]);_0x9c4ax1b[_0x7bb2[61]]= _[_0x7bb2[60]](_0x9c4ax29[_0x7bb2[54]],qs[_0x7bb2[62]](_0x9c4ax28[_0x7bb2[58]][_0x7bb2[62]]));_0x9c4ax1b[_0x7bb2[61]]= (_0x9c4ax1b[_0x7bb2[61]][_0x7bb2[63]])?_0x9c4ax1b[_0x7bb2[61]]:_0x9c4ax29[_0x7bb2[54]];_0x9c4ax1b= _[_0x7bb2[73]]({},_0x9c4ax1b,_0x9c4ax28[_0x7bb2[74]]);return db[_0x7bb2[56]][_0x7bb2[80]](_0x9c4ax1b)[_0x7bb2[45]](handleEntityNotFound(_0x9c4ax15,null,_0x7bb2[77]))[_0x7bb2[45]](respondWithResult(_0x9c4ax15,null,_0x7bb2[77]))[_0x7bb2[75]](handleError(_0x9c4ax15,null,_0x7bb2[77]))};exports[_0x7bb2[81]]= function(_0x9c4ax28,_0x9c4ax15){return db[_0x7bb2[56]][_0x7bb2[81]](_0x9c4ax28[_0x7bb2[82]],{})[_0x7bb2[45]](respondWithResult(_0x9c4ax15,201,_0x7bb2[81]))[_0x7bb2[75]](handleError(_0x9c4ax15,null,_0x7bb2[81]))};exports[_0x7bb2[46]]= function(_0x9c4ax28,_0x9c4ax15){if(_0x9c4ax28[_0x7bb2[82]][_0x7bb2[78]]){delete _0x9c4ax28[_0x7bb2[82]][_0x7bb2[78]]};return db[_0x7bb2[56]][_0x7bb2[80]]({where:{id:_0x9c4ax28[_0x7bb2[79]][_0x7bb2[78]]}})[_0x7bb2[45]](handleEntityNotFound(_0x9c4ax15,null,_0x7bb2[46]))[_0x7bb2[45]](saveUpdates(_0x9c4ax28[_0x7bb2[82]],null,_0x7bb2[46]))[_0x7bb2[45]](respondWithResult(_0x9c4ax15,null,_0x7bb2[46]))[_0x7bb2[75]](handleError(_0x9c4ax15,null,_0x7bb2[46]))};exports[_0x7bb2[48]]= function(_0x9c4ax28,_0x9c4ax15){return db[_0x7bb2[56]][_0x7bb2[80]]({where:{id:_0x9c4ax28[_0x7bb2[79]][_0x7bb2[78]]}})[_0x7bb2[45]](handleEntityNotFound(_0x9c4ax15,null,_0x7bb2[48]))[_0x7bb2[45]](removeEntity(_0x9c4ax15,null,_0x7bb2[48]))[_0x7bb2[75]](handleError(_0x9c4ax15,null,_0x7bb2[48]))};exports[_0x7bb2[83]]= function(_0x9c4ax28,_0x9c4ax15){return db[_0x7bb2[56]][_0x7bb2[83]]()[_0x7bb2[45]](respondWithResult(_0x9c4ax15,null,_0x7bb2[83]))[_0x7bb2[75]](handleError(_0x9c4ax15,null,_0x7bb2[83]))}
\ No newline at end of file
index be25539..3b55096 100644 (file)
@@ -1 +1 @@
-var _0x4cfb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x4cfb[0];var _=require(_0x4cfb[1]);var util=require(_0x4cfb[2]);var logger=require(_0x4cfb[4])(_0x4cfb[3]);var attributes=require(_0x4cfb[5]);module[_0x4cfb[6]]= function(_0xac4dx5,_0xac4dx6){return _0xac4dx5[_0x4cfb[9]](_0x4cfb[7],attributes,{tableName:_0x4cfb[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xbf5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xbf5d[0];var _=require(_0xbf5d[1]);var util=require(_0xbf5d[2]);var logger=require(_0xbf5d[4])(_0xbf5d[3]);var attributes=require(_0xbf5d[5]);module[_0xbf5d[6]]= function(_0xe36cx5,_0xe36cx6){return _0xe36cx5[_0xbf5d[9]](_0xbf5d[7],attributes,{tableName:_0xbf5d[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
index 582d77a..40e64bc 100644 (file)
@@ -1 +1 @@
-var _0x78f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x78f1[0];var _=require(_0x78f1[1]);var util=require(_0x78f1[2]);var moment=require(_0x78f1[3]);var BPromise=require(_0x78f1[4]);var db=require(_0x78f1[6])[_0x78f1[5]];var utils=require(_0x78f1[7]);var logger=require(_0x78f1[9])(_0x78f1[8]);var jayson=require(_0x78f1[10]);var client=jayson[_0x78f1[12]][_0x78f1[11]]({port:9002});function respondWithRpcPromise(_0x359fxb,_0x359fxc,_0x359fxd){return  new BPromise(function(_0x359fxe,_0x359fxf){return client[_0x78f1[25]](_0x359fxb,_0x359fxd)[_0x78f1[24]](function(_0x359fx11){logger[_0x78f1[17]](_0x78f1[13],_0x359fxc,_0x78f1[16]);logger[_0x78f1[20]](_0x78f1[18],_0x359fxc,_0x78f1[16],JSON[_0x78f1[19]](_0x359fx11));if(_0x359fx11[_0x78f1[14]]){if(_0x359fx11[_0x78f1[14]][_0x78f1[21]]=== 500){logger[_0x78f1[14]](_0x78f1[13],_0x359fxc,_0x359fx11[_0x78f1[14]][_0x78f1[22]]);return _0x359fxf(_0x359fx11[_0x78f1[14]][_0x78f1[22]])};logger[_0x78f1[14]](_0x78f1[13],_0x359fxc,_0x359fx11[_0x78f1[14]][_0x78f1[22]]);return _0x359fxe(_0x359fx11[_0x78f1[14]][_0x78f1[22]])}else {logger[_0x78f1[17]](_0x78f1[13],_0x359fxc,_0x78f1[16]);_0x359fxe(_0x359fx11[_0x78f1[23]][_0x78f1[22]])}})[_0x78f1[15]](function(_0x359fx10){logger[_0x78f1[14]](_0x78f1[13],_0x359fxc,_0x359fx10);_0x359fxf(_0x359fx10)})})}
\ No newline at end of file
+var _0xc562=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc562[0];var _=require(_0xc562[1]);var util=require(_0xc562[2]);var moment=require(_0xc562[3]);var BPromise=require(_0xc562[4]);var db=require(_0xc562[6])[_0xc562[5]];var utils=require(_0xc562[7]);var logger=require(_0xc562[9])(_0xc562[8]);var jayson=require(_0xc562[10]);var client=jayson[_0xc562[12]][_0xc562[11]]({port:9002});function respondWithRpcPromise(_0xcaa6xb,_0xcaa6xc,_0xcaa6xd){return  new BPromise(function(_0xcaa6xe,_0xcaa6xf){return client[_0xc562[25]](_0xcaa6xb,_0xcaa6xd)[_0xc562[24]](function(_0xcaa6x11){logger[_0xc562[17]](_0xc562[13],_0xcaa6xc,_0xc562[16]);logger[_0xc562[20]](_0xc562[18],_0xcaa6xc,_0xc562[16],JSON[_0xc562[19]](_0xcaa6x11));if(_0xcaa6x11[_0xc562[14]]){if(_0xcaa6x11[_0xc562[14]][_0xc562[21]]=== 500){logger[_0xc562[14]](_0xc562[13],_0xcaa6xc,_0xcaa6x11[_0xc562[14]][_0xc562[22]]);return _0xcaa6xf(_0xcaa6x11[_0xc562[14]][_0xc562[22]])};logger[_0xc562[14]](_0xc562[13],_0xcaa6xc,_0xcaa6x11[_0xc562[14]][_0xc562[22]]);return _0xcaa6xe(_0xcaa6x11[_0xc562[14]][_0xc562[22]])}else {logger[_0xc562[17]](_0xc562[13],_0xcaa6xc,_0xc562[16]);_0xcaa6xe(_0xcaa6x11[_0xc562[23]][_0xc562[22]])}})[_0xc562[15]](function(_0xcaa6x10){logger[_0xc562[14]](_0xc562[13],_0xcaa6xc,_0xcaa6x10);_0xcaa6xf(_0xcaa6x10)})})}
\ No newline at end of file
index e270884..94a5ce4 100644 (file)
@@ -1 +1 @@
-var _0xb32a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb32a[0];var multer=require(_0xb32a[1]);var util=require(_0xb32a[2]);var path=require(_0xb32a[3]);var express=require(_0xb32a[4]);var router=express.Router();var auth=require(_0xb32a[5]);var config=require(_0xb32a[6]);var controller=require(_0xb32a[7]);router[_0xb32a[11]](_0xb32a[8],auth[_0xb32a[9]](),controller[_0xb32a[10]]);router[_0xb32a[11]](_0xb32a[12],auth[_0xb32a[9]](),controller[_0xb32a[13]]);router[_0xb32a[11]](_0xb32a[14],auth[_0xb32a[9]](),controller[_0xb32a[15]]);router[_0xb32a[17]](_0xb32a[8],auth[_0xb32a[9]](),controller[_0xb32a[16]]);router[_0xb32a[19]](_0xb32a[14],auth[_0xb32a[9]](),controller[_0xb32a[18]]);router[_0xb32a[21]](_0xb32a[14],auth[_0xb32a[9]](),controller[_0xb32a[20]]);module[_0xb32a[22]]= router
\ No newline at end of file
+var _0x8e00=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8e00[0];var multer=require(_0x8e00[1]);var util=require(_0x8e00[2]);var path=require(_0x8e00[3]);var express=require(_0x8e00[4]);var router=express.Router();var auth=require(_0x8e00[5]);var config=require(_0x8e00[6]);var controller=require(_0x8e00[7]);router[_0x8e00[11]](_0x8e00[8],auth[_0x8e00[9]](),controller[_0x8e00[10]]);router[_0x8e00[11]](_0x8e00[12],auth[_0x8e00[9]](),controller[_0x8e00[13]]);router[_0x8e00[11]](_0x8e00[14],auth[_0x8e00[9]](),controller[_0x8e00[15]]);router[_0x8e00[17]](_0x8e00[8],auth[_0x8e00[9]](),controller[_0x8e00[16]]);router[_0x8e00[19]](_0x8e00[14],auth[_0x8e00[9]](),controller[_0x8e00[18]]);router[_0x8e00[21]](_0x8e00[14],auth[_0x8e00[9]](),controller[_0x8e00[20]]);module[_0x8e00[22]]= router
\ No newline at end of file
index ed2e88e..093fa08 100644 (file)
@@ -1 +1 @@
-var _0x49fd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x49fd[0];var Sequelize=require(_0x49fd[1]);module[_0x49fd[2]]= {name:{type:Sequelize[_0x49fd[3]],unique:_0x49fd[4],allowNull:false,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x49fd[3]]},timeout:{type:Sequelize[_0x49fd[5]],allowNull:false,validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x49fd[6],_0x49fd[7],_0x49fd[8]),allowNull:false},lastAgent:{type:Sequelize[_0x49fd[5]],defaultValue:0}}
\ No newline at end of file
+var _0x71bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x71bd[0];var Sequelize=require(_0x71bd[1]);module[_0x71bd[2]]= {name:{type:Sequelize[_0x71bd[3]],unique:_0x71bd[4],allowNull:false,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x71bd[3]]},timeout:{type:Sequelize[_0x71bd[5]],allowNull:false,validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x71bd[6],_0x71bd[7],_0x71bd[8]),allowNull:false},lastAgent:{type:Sequelize[_0x71bd[5]],defaultValue:0}}
\ No newline at end of file
index 1e8976c..17d64c6 100644 (file)
@@ -1 +1 @@
-var _0xeef1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xeef1[0];var jsonpatch=require(_0xeef1[1]);var rp=require(_0xeef1[2]);var moment=require(_0xeef1[3]);var BPromise=require(_0xeef1[4]);var util=require(_0xeef1[5]);var path=require(_0xeef1[6]);var sox=require(_0xeef1[7]);var ejs=require(_0xeef1[8]);var fs=require(_0xeef1[9]);var _=require(_0xeef1[10]);var squel=require(_0xeef1[11]);var crypto=require(_0xeef1[12]);var jsforce=require(_0xeef1[13]);var toCsv=require(_0xeef1[14]);var qs=require(_0xeef1[15]);var logger=require(_0xeef1[17])(_0xeef1[16]);var utils=require(_0xeef1[18]);var config=require(_0xeef1[19]);var db=require(_0xeef1[21])[_0xeef1[20]];function respondWithStatusCode(_0xc40dx15,_0xc40dx16,_0xc40dx17){_0xc40dx16= _0xc40dx16|| 204;return function(_0xc40dx18){if(_0xc40dx18){logger[_0xeef1[24]](_0xeef1[22],_0xc40dx17,_0xc40dx16,_0xeef1[23]);logger[_0xeef1[26]](_0xeef1[25],_0xc40dx17,_0xc40dx16,_0xeef1[23]);return _0xc40dx15[_0xeef1[27]](_0xc40dx16)};return _0xc40dx15[_0xeef1[29]](304)[_0xeef1[28]]()}}function respondWithResult(_0xc40dx15,_0xc40dx16,_0xc40dx17){_0xc40dx16= _0xc40dx16|| 200;return function(_0xc40dx18){if(_0xc40dx18){logger[_0xeef1[24]](_0xeef1[22],_0xc40dx17,_0xc40dx16,_0xeef1[30]);logger[_0xeef1[26]](_0xeef1[25],_0xc40dx17,_0xc40dx16,_0xeef1[30],JSON[_0xeef1[31]](_0xc40dx18));return _0xc40dx15[_0xeef1[29]](_0xc40dx16)[_0xeef1[32]](_0xc40dx18)};return _0xc40dx15[_0xeef1[29]](304)[_0xeef1[28]]()}}function respondWithFilteredResult(_0xc40dx15,_0xc40dx1b,_0xc40dx17){return function(_0xc40dx18){if(_0xc40dx18){var _0xc40dx1c=_0xc40dx18[_0xeef1[33]],_0xc40dx1d=_0xc40dx1b[_0xeef1[34]],_0xc40dx1e=_0xc40dx1b[_0xeef1[34]]+ _0xc40dx1b[_0xeef1[35]],_0xc40dx16;if(_0xc40dx1e>= _0xc40dx1c){_0xc40dx1e= _0xc40dx1c;_0xc40dx16= 200}else {_0xc40dx16= 206};_0xc40dx15[_0xeef1[29]](_0xc40dx16);logger[_0xeef1[24]](_0xeef1[22],_0xc40dx17,_0xc40dx16,_0xeef1[36]);logger[_0xeef1[26]](_0xeef1[25],_0xc40dx17,_0xc40dx16,_0xeef1[30],JSON[_0xeef1[31]](_0xc40dx18));return _0xc40dx15[_0xeef1[40]](_0xeef1[37],_0xc40dx1d+ _0xeef1[38]+ _0xc40dx1e+ _0xeef1[39]+ _0xc40dx1c)[_0xeef1[32]](_0xc40dx18)};return null}}function patchUpdates(_0xc40dx20){return function(_0xc40dx18){try{jsonpatch[_0xeef1[41]](_0xc40dx18,_0xc40dx20,true)}catch(err){return BPromise[_0xeef1[42]](err)};return _0xc40dx18[_0xeef1[43]]()}}function saveUpdates(_0xc40dx22,_0xc40dx16,_0xc40dx17){return function(_0xc40dx18){if(_0xc40dx18){return _0xc40dx18[_0xeef1[46]](_0xc40dx22)[_0xeef1[45]](function(_0xc40dx23){logger[_0xeef1[24]](_0xeef1[22],_0xc40dx17,_0xc40dx16,_0xeef1[44]);logger[_0xeef1[26]](_0xeef1[25],_0xc40dx17,_0xc40dx16,_0xeef1[44],JSON[_0xeef1[31]](_0xc40dx18));return _0xc40dx23})};return null}}function removeEntity(_0xc40dx15,_0xc40dx16,_0xc40dx17){return function(_0xc40dx18){if(_0xc40dx18){return _0xc40dx18[_0xeef1[48]]()[_0xeef1[45]](function(){logger[_0xeef1[24]](_0xeef1[22],_0xc40dx17,_0xc40dx16,_0xeef1[47]);logger[_0xeef1[26]](_0xeef1[25],_0xc40dx17,_0xc40dx16,_0xeef1[47],JSON[_0xeef1[31]](_0xc40dx18));_0xc40dx15[_0xeef1[29]](204)[_0xeef1[28]]()})}}}function handleEntityNotFound(_0xc40dx15,_0xc40dx16,_0xc40dx17){return function(_0xc40dx18){if(!_0xc40dx18){logger[_0xeef1[50]](_0xeef1[22],_0xc40dx17,404,_0xeef1[49]);_0xc40dx15[_0xeef1[29]](404)[_0xeef1[28]]();return null};return _0xc40dx18}}function handleError(_0xc40dx15,_0xc40dx16,_0xc40dx17){_0xc40dx16= _0xc40dx16|| 500;return function(_0xc40dx27){logger[_0xeef1[50]](_0xeef1[22],_0xc40dx17,_0xc40dx16,JSON[_0xeef1[31]](_0xc40dx27));delete _0xc40dx27[_0xeef1[51]];_0xc40dx15[_0xeef1[29]](_0xc40dx16)[_0xeef1[52]](_0xc40dx27)}}exports[_0xeef1[53]]= function(_0xc40dx28,_0xc40dx15){var _0xc40dx1b={},_0xc40dx29={};_0xc40dx29[_0xeef1[54]]= _[_0xeef1[57]](db[_0xeef1[56]][_0xeef1[55]]);_0xc40dx29[_0xeef1[58]]= _[_0xeef1[57]](_0xc40dx28[_0xeef1[58]]);_0xc40dx29[_0xeef1[59]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],_0xc40dx29[_0xeef1[58]]);_0xc40dx1b[_0xeef1[61]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],qs[_0xeef1[62]](_0xc40dx28[_0xeef1[58]][_0xeef1[62]]));_0xc40dx1b[_0xeef1[61]]= (_0xc40dx1b[_0xeef1[61]][_0xeef1[63]])?_0xc40dx1b[_0xeef1[61]]:_0xc40dx29[_0xeef1[54]];if(!_0xc40dx28[_0xeef1[58]][_0xeef1[65]](_0xeef1[64])){_0xc40dx1b[_0xeef1[35]]= qs[_0xeef1[35]](_0xc40dx28[_0xeef1[58]][_0xeef1[35]]);_0xc40dx1b[_0xeef1[34]]= qs[_0xeef1[34]](_0xc40dx28[_0xeef1[58]][_0xeef1[34]])};_0xc40dx1b[_0xeef1[66]]= qs[_0xeef1[67]](_0xc40dx28[_0xeef1[58]][_0xeef1[67]]);_0xc40dx1b[_0xeef1[68]]= qs[_0xeef1[59]](_[_0xeef1[69]](_0xc40dx28[_0xeef1[58]],_0xc40dx29[_0xeef1[59]]));if(_0xc40dx28[_0xeef1[58]][_0xeef1[70]]){_0xc40dx1b[_0xeef1[68]]= _[_0xeef1[73]](_0xc40dx1b[_0xeef1[68]],{$or:_[_0xeef1[72]](_0xc40dx1b[_0xeef1[61]],function(_0xc40dx2a){var _0xc40dx2b={};_0xc40dx2b[_0xc40dx2a]= {$like:_0xeef1[71]+ _0xc40dx28[_0xeef1[58]][_0xeef1[70]]+ _0xeef1[71]};return _0xc40dx2b})})};_0xc40dx1b= _[_0xeef1[73]]({},_0xc40dx1b,_0xc40dx28[_0xeef1[74]]);return db[_0xeef1[56]][_0xeef1[76]](_0xc40dx1b)[_0xeef1[45]](respondWithFilteredResult(_0xc40dx15,_0xc40dx1b,_0xeef1[53]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[53]))};exports[_0xeef1[77]]= function(_0xc40dx28,_0xc40dx15){var _0xc40dx1b={raw:true,where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}},_0xc40dx29={};_0xc40dx29[_0xeef1[54]]= _[_0xeef1[57]](db[_0xeef1[56]][_0xeef1[55]]);_0xc40dx29[_0xeef1[58]]= _[_0xeef1[57]](_0xc40dx28[_0xeef1[58]]);_0xc40dx29[_0xeef1[59]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],_0xc40dx29[_0xeef1[58]]);_0xc40dx1b[_0xeef1[61]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],qs[_0xeef1[62]](_0xc40dx28[_0xeef1[58]][_0xeef1[62]]));_0xc40dx1b[_0xeef1[61]]= (_0xc40dx1b[_0xeef1[61]][_0xeef1[63]])?_0xc40dx1b[_0xeef1[61]]:_0xc40dx29[_0xeef1[54]];_0xc40dx1b= _[_0xeef1[73]]({},_0xc40dx1b,_0xc40dx28[_0xeef1[74]]);return db[_0xeef1[56]][_0xeef1[80]](_0xc40dx1b)[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[77]))[_0xeef1[45]](respondWithResult(_0xc40dx15,null,_0xeef1[77]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[77]))};exports[_0xeef1[81]]= function(_0xc40dx28,_0xc40dx15){return db[_0xeef1[56]][_0xeef1[81]](_0xc40dx28[_0xeef1[82]],{})[_0xeef1[45]](respondWithResult(_0xc40dx15,201,_0xeef1[81]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[81]))};exports[_0xeef1[46]]= function(_0xc40dx28,_0xc40dx15){if(_0xc40dx28[_0xeef1[82]][_0xeef1[78]]){delete _0xc40dx28[_0xeef1[82]][_0xeef1[78]]};return db[_0xeef1[56]][_0xeef1[80]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[46]))[_0xeef1[45]](saveUpdates(_0xc40dx28[_0xeef1[82]],null,_0xeef1[46]))[_0xeef1[45]](respondWithResult(_0xc40dx15,null,_0xeef1[46]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[46]))};exports[_0xeef1[48]]= function(_0xc40dx28,_0xc40dx15){return db[_0xeef1[56]][_0xeef1[80]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[48]))[_0xeef1[45]](removeEntity(_0xc40dx15,null,_0xeef1[48]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[48]))};exports[_0xeef1[83]]= function(_0xc40dx28,_0xc40dx18,_0xc40dx2c){var _0xc40dx1b={};var _0xc40dx29={};var _0xc40dx2d;var _0xc40dx1c;return db[_0xeef1[56]][_0xeef1[85]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx18,null,_0xeef1[83]))[_0xeef1[45]](function(_0xc40dx18){if(_0xc40dx18){_0xc40dx2d= _0xc40dx18;_0xc40dx29[_0xeef1[54]]= _[_0xeef1[57]](db[_0xeef1[84]][_0xeef1[55]]);_0xc40dx29[_0xeef1[58]]= _[_0xeef1[57]](_0xc40dx28[_0xeef1[58]]);_0xc40dx29[_0xeef1[59]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],_0xc40dx29[_0xeef1[58]]);_0xc40dx1b[_0xeef1[61]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],qs[_0xeef1[62]](_0xc40dx28[_0xeef1[58]][_0xeef1[62]]));_0xc40dx1b[_0xeef1[61]]= (_0xc40dx1b[_0xeef1[61]][_0xeef1[63]])?_0xc40dx1b[_0xeef1[61]]:_0xc40dx29[_0xeef1[54]];_0xc40dx1b[_0xeef1[66]]= qs[_0xeef1[67]](_0xc40dx28[_0xeef1[58]][_0xeef1[67]]);_0xc40dx1b[_0xeef1[68]]= qs[_0xeef1[59]](_[_0xeef1[69]](_0xc40dx28[_0xeef1[58]],_0xc40dx29[_0xeef1[59]]));if(_0xc40dx28[_0xeef1[58]][_0xeef1[70]]){_0xc40dx1b[_0xeef1[68]]= _[_0xeef1[73]](_0xc40dx1b[_0xeef1[68]],{$or:_[_0xeef1[72]](_0xc40dx1b[_0xeef1[61]],function(_0xc40dx2a){var _0xc40dx2b={};_0xc40dx2b[_0xc40dx2a]= {$like:_0xeef1[71]+ _0xc40dx28[_0xeef1[58]][_0xeef1[70]]+ _0xeef1[71]};return _0xc40dx2b})})};_0xc40dx1b= _[_0xeef1[73]]({},_0xc40dx1b,_0xc40dx28[_0xeef1[74]]);return _0xc40dx2d[_0xeef1[83]](_0xc40dx1b)}})[_0xeef1[45]](function(_0xc40dx2f){if(_0xc40dx2f){_0xc40dx1c= _0xc40dx2f[_0xeef1[63]];if(!_0xc40dx28[_0xeef1[58]][_0xeef1[65]](_0xeef1[64])){_0xc40dx1b[_0xeef1[35]]= qs[_0xeef1[35]](_0xc40dx28[_0xeef1[58]][_0xeef1[35]]);_0xc40dx1b[_0xeef1[34]]= qs[_0xeef1[34]](_0xc40dx28[_0xeef1[58]][_0xeef1[34]])};return _0xc40dx2d[_0xeef1[83]](_0xc40dx1b)}})[_0xeef1[45]](function(_0xc40dx2e){return _0xc40dx2e?{count:_0xc40dx1c,rows:_0xc40dx2e}:null})[_0xeef1[45]](respondWithResult(_0xc40dx18,null,_0xeef1[83]))[_0xeef1[75]](handleError(_0xc40dx18,null,_0xeef1[83]))};exports[_0xeef1[86]]= function(_0xc40dx28,_0xc40dx15,_0xc40dx2c){var _0xc40dx30=[];var _0xc40dx31;return db[_0xeef1[84]][_0xeef1[93]]({where:{id:_0xc40dx28[_0xeef1[82]][_0xeef1[87]]},attributes:[_0xeef1[78]],include:[{model:db[_0xeef1[92]],as:_0xeef1[90],attributes:[_0xeef1[78]],raw:true}]})[_0xeef1[45]](function(_0xc40dx34){if(_0xc40dx34){for(var _0xc40dx35=0;_0xc40dx35< _0xc40dx34[_0xeef1[63]];_0xc40dx35+= 1){for(var _0xc40dx36=0;_0xc40dx36< _0xc40dx34[_0xc40dx35][_0xeef1[90]][_0xeef1[63]];_0xc40dx36+= 1){_0xc40dx30= _[_0xeef1[91]](_0xc40dx30,[_0xc40dx34[_0xc40dx35][_0xeef1[90]][_0xc40dx36][_0xeef1[78]]])}};return _0xc40dx30}})[_0xeef1[45]](function(_0xc40dx33){if(_0xc40dx33){return db[_0xeef1[56]][_0xeef1[80]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})}})[_0xeef1[45]](function(_0xc40dx32){if(_0xc40dx32){_0xc40dx31= _0xc40dx32;return _0xc40dx31[_0xeef1[89]](_0xc40dx30,{penalty:_0xc40dx28[_0xeef1[82]][_0xeef1[88]]})}})[_0xeef1[45]](function(_0xc40dx18){if(_0xc40dx18){return _0xc40dx31[_0xeef1[86]](_0xc40dx28[_0xeef1[82]][_0xeef1[87]])}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[86]))[_0xeef1[45]](respondWithStatusCode(_0xc40dx15,null,_0xeef1[86]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[86]))};exports[_0xeef1[94]]= function(_0xc40dx28,_0xc40dx15,_0xc40dx2c){var _0xc40dx30=[];var _0xc40dx31;return db[_0xeef1[84]][_0xeef1[93]]({where:{id:_0xc40dx28[_0xeef1[58]][_0xeef1[87]]},attributes:[_0xeef1[78]],include:[{model:db[_0xeef1[92]],as:_0xeef1[90],attributes:[_0xeef1[78]],raw:true}]})[_0xeef1[45]](function(_0xc40dx34){if(_0xc40dx34){for(var _0xc40dx35=0;_0xc40dx35< _0xc40dx34[_0xeef1[63]];_0xc40dx35+= 1){for(var _0xc40dx36=0;_0xc40dx36< _0xc40dx34[_0xc40dx35][_0xeef1[90]][_0xeef1[63]];_0xc40dx36+= 1){_0xc40dx30= _[_0xeef1[91]](_0xc40dx30,[_0xc40dx34[_0xc40dx35][_0xeef1[90]][_0xc40dx36][_0xeef1[78]]])}};return _0xc40dx30}})[_0xeef1[45]](function(_0xc40dx33){if(_0xc40dx33){return db[_0xeef1[56]][_0xeef1[80]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})}})[_0xeef1[45]](function(_0xc40dx32){if(_0xc40dx32){_0xc40dx31= _0xc40dx32;return _0xc40dx31[_0xeef1[95]](_0xc40dx30)}})[_0xeef1[45]](function(_0xc40dx18){if(_0xc40dx31){return _0xc40dx31[_0xeef1[94]](_0xc40dx28[_0xeef1[58]][_0xeef1[87]])}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[94]))[_0xeef1[45]](respondWithStatusCode(_0xc40dx15,null,_0xeef1[94]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[94]))};exports[_0xeef1[89]]= function(_0xc40dx28,_0xc40dx15,_0xc40dx2c){return db[_0xeef1[56]][_0xeef1[80]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[89]))[_0xeef1[45]](function(_0xc40dx18){if(_0xc40dx18){return _0xc40dx18[_0xeef1[89]](_0xc40dx28[_0xeef1[82]][_0xeef1[87]],_[_0xeef1[96]](_0xc40dx28[_0xeef1[82]],[_0xeef1[87],_0xeef1[78]])|| {})};return null})[_0xeef1[45]](respondWithResult(_0xc40dx15,null,_0xeef1[89]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[89]))};exports[_0xeef1[95]]= function(_0xc40dx28,_0xc40dx15,_0xc40dx2c){var _0xc40dx2f;return db[_0xeef1[56]][_0xeef1[80]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx15,null,_0xeef1[95]))[_0xeef1[45]](function(_0xc40dx18){if(_0xc40dx18){return _0xc40dx18[_0xeef1[95]](_0xc40dx28[_0xeef1[58]][_0xeef1[87]])}})[_0xeef1[45]](respondWithStatusCode(_0xc40dx15,null,_0xeef1[95]))[_0xeef1[75]](handleError(_0xc40dx15,null,_0xeef1[95]))};exports[_0xeef1[97]]= function(_0xc40dx28,_0xc40dx18,_0xc40dx2c){var _0xc40dx1b={};var _0xc40dx29={};var _0xc40dx2d;var _0xc40dx1c;return db[_0xeef1[56]][_0xeef1[85]]({where:{id:_0xc40dx28[_0xeef1[79]][_0xeef1[78]]}})[_0xeef1[45]](handleEntityNotFound(_0xc40dx18,null,_0xeef1[97]))[_0xeef1[45]](function(_0xc40dx18){if(_0xc40dx18){_0xc40dx2d= _0xc40dx18;_0xc40dx29[_0xeef1[54]]= _[_0xeef1[57]](db[_0xeef1[92]][_0xeef1[55]]);_0xc40dx29[_0xeef1[58]]= _[_0xeef1[57]](_0xc40dx28[_0xeef1[58]]);_0xc40dx29[_0xeef1[59]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],_0xc40dx29[_0xeef1[58]]);_0xc40dx1b[_0xeef1[61]]= _[_0xeef1[60]](_0xc40dx29[_0xeef1[54]],qs[_0xeef1[62]](_0xc40dx28[_0xeef1[58]][_0xeef1[62]]));_0xc40dx1b[_0xeef1[61]]= (_0xc40dx1b[_0xeef1[61]][_0xeef1[63]])?_0xc40dx1b[_0xeef1[61]]:_0xc40dx29[_0xeef1[54]];_0xc40dx1b[_0xeef1[66]]= qs[_0xeef1[67]](_0xc40dx28[_0xeef1[58]][_0xeef1[67]]);_0xc40dx1b[_0xeef1[68]]= qs[_0xeef1[59]](_[_0xeef1[69]](_0xc40dx28[_0xeef1[58]],_0xc40dx29[_0xeef1[59]]));if(_0xc40dx28[_0xeef1[58]][_0xeef1[70]]){_0xc40dx1b[_0xeef1[68]]= _[_0xeef1[73]](_0xc40dx1b[_0xeef1[68]],{$or:_[_0xeef1[72]](_0xc40dx1b[_0xeef1[61]],function(_0xc40dx2a){var _0xc40dx2b={};_0xc40dx2b[_0xc40dx2a]= {$like:_0xeef1[71]+ _0xc40dx28[_0xeef1[58]][_0xeef1[70]]+ _0xeef1[71]};return _0xc40dx2b})})};_0xc40dx1b= _[_0xeef1[73]]({},_0xc40dx1b,_0xc40dx28[_0xeef1[74]]);return _0xc40dx2d[_0xeef1[97]](_0xc40dx1b)}})[_0xeef1[45]](function(_0xc40dx2f){if(_0xc40dx2f){_0xc40dx1c= _0xc40dx2f[_0xeef1[63]];if(!_0xc40dx28[_0xeef1[58]][_0xeef1[65]](_0xeef1[64])){_0xc40dx1b[_0xeef1[35]]= qs[_0xeef1[35]](_0xc40dx28[_0xeef1[58]][_0xeef1[35]]);_0xc40dx1b[_0xeef1[34]]= qs[_0xeef1[34]](_0xc40dx28[_0xeef1[58]][_0xeef1[34]])};return _0xc40dx2d[_0xeef1[97]](_0xc40dx1b)}})[_0xeef1[45]](function(_0xc40dx2e){return _0xc40dx2e?{count:_0xc40dx1c,rows:_0xc40dx2e}:null})[_0xeef1[45]](respondWithResult(_0xc40dx18,null,_0xeef1[97]))[_0xeef1[75]](handleError(_0xc40dx18,null,_0xeef1[97]))}
\ No newline at end of file
+var _0x38fd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x38fd[0];var jsonpatch=require(_0x38fd[1]);var rp=require(_0x38fd[2]);var moment=require(_0x38fd[3]);var BPromise=require(_0x38fd[4]);var util=require(_0x38fd[5]);var path=require(_0x38fd[6]);var sox=require(_0x38fd[7]);var ejs=require(_0x38fd[8]);var fs=require(_0x38fd[9]);var _=require(_0x38fd[10]);var squel=require(_0x38fd[11]);var crypto=require(_0x38fd[12]);var jsforce=require(_0x38fd[13]);var toCsv=require(_0x38fd[14]);var qs=require(_0x38fd[15]);var logger=require(_0x38fd[17])(_0x38fd[16]);var utils=require(_0x38fd[18]);var config=require(_0x38fd[19]);var db=require(_0x38fd[21])[_0x38fd[20]];function respondWithStatusCode(_0xbb12x15,_0xbb12x16,_0xbb12x17){_0xbb12x16= _0xbb12x16|| 204;return function(_0xbb12x18){if(_0xbb12x18){logger[_0x38fd[24]](_0x38fd[22],_0xbb12x17,_0xbb12x16,_0x38fd[23]);logger[_0x38fd[26]](_0x38fd[25],_0xbb12x17,_0xbb12x16,_0x38fd[23]);return _0xbb12x15[_0x38fd[27]](_0xbb12x16)};return _0xbb12x15[_0x38fd[29]](304)[_0x38fd[28]]()}}function respondWithResult(_0xbb12x15,_0xbb12x16,_0xbb12x17){_0xbb12x16= _0xbb12x16|| 200;return function(_0xbb12x18){if(_0xbb12x18){logger[_0x38fd[24]](_0x38fd[22],_0xbb12x17,_0xbb12x16,_0x38fd[30]);logger[_0x38fd[26]](_0x38fd[25],_0xbb12x17,_0xbb12x16,_0x38fd[30],JSON[_0x38fd[31]](_0xbb12x18));return _0xbb12x15[_0x38fd[29]](_0xbb12x16)[_0x38fd[32]](_0xbb12x18)};return _0xbb12x15[_0x38fd[29]](304)[_0x38fd[28]]()}}function respondWithFilteredResult(_0xbb12x15,_0xbb12x1b,_0xbb12x17){return function(_0xbb12x18){if(_0xbb12x18){var _0xbb12x1c=_0xbb12x18[_0x38fd[33]],_0xbb12x1d=_0xbb12x1b[_0x38fd[34]],_0xbb12x1e=_0xbb12x1b[_0x38fd[34]]+ _0xbb12x1b[_0x38fd[35]],_0xbb12x16;if(_0xbb12x1e>= _0xbb12x1c){_0xbb12x1e= _0xbb12x1c;_0xbb12x16= 200}else {_0xbb12x16= 206};_0xbb12x15[_0x38fd[29]](_0xbb12x16);logger[_0x38fd[24]](_0x38fd[22],_0xbb12x17,_0xbb12x16,_0x38fd[36]);logger[_0x38fd[26]](_0x38fd[25],_0xbb12x17,_0xbb12x16,_0x38fd[30],JSON[_0x38fd[31]](_0xbb12x18));return _0xbb12x15[_0x38fd[40]](_0x38fd[37],_0xbb12x1d+ _0x38fd[38]+ _0xbb12x1e+ _0x38fd[39]+ _0xbb12x1c)[_0x38fd[32]](_0xbb12x18)};return null}}function patchUpdates(_0xbb12x20){return function(_0xbb12x18){try{jsonpatch[_0x38fd[41]](_0xbb12x18,_0xbb12x20,true)}catch(err){return BPromise[_0x38fd[42]](err)};return _0xbb12x18[_0x38fd[43]]()}}function saveUpdates(_0xbb12x22,_0xbb12x16,_0xbb12x17){return function(_0xbb12x18){if(_0xbb12x18){return _0xbb12x18[_0x38fd[46]](_0xbb12x22)[_0x38fd[45]](function(_0xbb12x23){logger[_0x38fd[24]](_0x38fd[22],_0xbb12x17,_0xbb12x16,_0x38fd[44]);logger[_0x38fd[26]](_0x38fd[25],_0xbb12x17,_0xbb12x16,_0x38fd[44],JSON[_0x38fd[31]](_0xbb12x18));return _0xbb12x23})};return null}}function removeEntity(_0xbb12x15,_0xbb12x16,_0xbb12x17){return function(_0xbb12x18){if(_0xbb12x18){return _0xbb12x18[_0x38fd[48]]()[_0x38fd[45]](function(){logger[_0x38fd[24]](_0x38fd[22],_0xbb12x17,_0xbb12x16,_0x38fd[47]);logger[_0x38fd[26]](_0x38fd[25],_0xbb12x17,_0xbb12x16,_0x38fd[47],JSON[_0x38fd[31]](_0xbb12x18));_0xbb12x15[_0x38fd[29]](204)[_0x38fd[28]]()})}}}function handleEntityNotFound(_0xbb12x15,_0xbb12x16,_0xbb12x17){return function(_0xbb12x18){if(!_0xbb12x18){logger[_0x38fd[50]](_0x38fd[22],_0xbb12x17,404,_0x38fd[49]);_0xbb12x15[_0x38fd[29]](404)[_0x38fd[28]]();return null};return _0xbb12x18}}function handleError(_0xbb12x15,_0xbb12x16,_0xbb12x17){_0xbb12x16= _0xbb12x16|| 500;return function(_0xbb12x27){logger[_0x38fd[50]](_0x38fd[22],_0xbb12x17,_0xbb12x16,JSON[_0x38fd[31]](_0xbb12x27));delete _0xbb12x27[_0x38fd[51]];_0xbb12x15[_0x38fd[29]](_0xbb12x16)[_0x38fd[52]](_0xbb12x27)}}exports[_0x38fd[53]]= function(_0xbb12x28,_0xbb12x15){var _0xbb12x1b={},_0xbb12x29={};_0xbb12x29[_0x38fd[54]]= _[_0x38fd[57]](db[_0x38fd[56]][_0x38fd[55]]);_0xbb12x29[_0x38fd[58]]= _[_0x38fd[57]](_0xbb12x28[_0x38fd[58]]);_0xbb12x29[_0x38fd[59]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],_0xbb12x29[_0x38fd[58]]);_0xbb12x1b[_0x38fd[61]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],qs[_0x38fd[62]](_0xbb12x28[_0x38fd[58]][_0x38fd[62]]));_0xbb12x1b[_0x38fd[61]]= (_0xbb12x1b[_0x38fd[61]][_0x38fd[63]])?_0xbb12x1b[_0x38fd[61]]:_0xbb12x29[_0x38fd[54]];if(!_0xbb12x28[_0x38fd[58]][_0x38fd[65]](_0x38fd[64])){_0xbb12x1b[_0x38fd[35]]= qs[_0x38fd[35]](_0xbb12x28[_0x38fd[58]][_0x38fd[35]]);_0xbb12x1b[_0x38fd[34]]= qs[_0x38fd[34]](_0xbb12x28[_0x38fd[58]][_0x38fd[34]])};_0xbb12x1b[_0x38fd[66]]= qs[_0x38fd[67]](_0xbb12x28[_0x38fd[58]][_0x38fd[67]]);_0xbb12x1b[_0x38fd[68]]= qs[_0x38fd[59]](_[_0x38fd[69]](_0xbb12x28[_0x38fd[58]],_0xbb12x29[_0x38fd[59]]));if(_0xbb12x28[_0x38fd[58]][_0x38fd[70]]){_0xbb12x1b[_0x38fd[68]]= _[_0x38fd[73]](_0xbb12x1b[_0x38fd[68]],{$or:_[_0x38fd[72]](_0xbb12x1b[_0x38fd[61]],function(_0xbb12x2a){var _0xbb12x2b={};_0xbb12x2b[_0xbb12x2a]= {$like:_0x38fd[71]+ _0xbb12x28[_0x38fd[58]][_0x38fd[70]]+ _0x38fd[71]};return _0xbb12x2b})})};_0xbb12x1b= _[_0x38fd[73]]({},_0xbb12x1b,_0xbb12x28[_0x38fd[74]]);return db[_0x38fd[56]][_0x38fd[76]](_0xbb12x1b)[_0x38fd[45]](respondWithFilteredResult(_0xbb12x15,_0xbb12x1b,_0x38fd[53]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[53]))};exports[_0x38fd[77]]= function(_0xbb12x28,_0xbb12x15){var _0xbb12x1b={raw:true,where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}},_0xbb12x29={};_0xbb12x29[_0x38fd[54]]= _[_0x38fd[57]](db[_0x38fd[56]][_0x38fd[55]]);_0xbb12x29[_0x38fd[58]]= _[_0x38fd[57]](_0xbb12x28[_0x38fd[58]]);_0xbb12x29[_0x38fd[59]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],_0xbb12x29[_0x38fd[58]]);_0xbb12x1b[_0x38fd[61]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],qs[_0x38fd[62]](_0xbb12x28[_0x38fd[58]][_0x38fd[62]]));_0xbb12x1b[_0x38fd[61]]= (_0xbb12x1b[_0x38fd[61]][_0x38fd[63]])?_0xbb12x1b[_0x38fd[61]]:_0xbb12x29[_0x38fd[54]];_0xbb12x1b= _[_0x38fd[73]]({},_0xbb12x1b,_0xbb12x28[_0x38fd[74]]);return db[_0x38fd[56]][_0x38fd[80]](_0xbb12x1b)[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[77]))[_0x38fd[45]](respondWithResult(_0xbb12x15,null,_0x38fd[77]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[77]))};exports[_0x38fd[81]]= function(_0xbb12x28,_0xbb12x15){return db[_0x38fd[56]][_0x38fd[81]](_0xbb12x28[_0x38fd[82]],{})[_0x38fd[45]](respondWithResult(_0xbb12x15,201,_0x38fd[81]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[81]))};exports[_0x38fd[46]]= function(_0xbb12x28,_0xbb12x15){if(_0xbb12x28[_0x38fd[82]][_0x38fd[78]]){delete _0xbb12x28[_0x38fd[82]][_0x38fd[78]]};return db[_0x38fd[56]][_0x38fd[80]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[46]))[_0x38fd[45]](saveUpdates(_0xbb12x28[_0x38fd[82]],null,_0x38fd[46]))[_0x38fd[45]](respondWithResult(_0xbb12x15,null,_0x38fd[46]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[46]))};exports[_0x38fd[48]]= function(_0xbb12x28,_0xbb12x15){return db[_0x38fd[56]][_0x38fd[80]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[48]))[_0x38fd[45]](removeEntity(_0xbb12x15,null,_0x38fd[48]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[48]))};exports[_0x38fd[83]]= function(_0xbb12x28,_0xbb12x18,_0xbb12x2c){var _0xbb12x1b={};var _0xbb12x29={};var _0xbb12x2d;var _0xbb12x1c;return db[_0x38fd[56]][_0x38fd[85]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x18,null,_0x38fd[83]))[_0x38fd[45]](function(_0xbb12x18){if(_0xbb12x18){_0xbb12x2d= _0xbb12x18;_0xbb12x29[_0x38fd[54]]= _[_0x38fd[57]](db[_0x38fd[84]][_0x38fd[55]]);_0xbb12x29[_0x38fd[58]]= _[_0x38fd[57]](_0xbb12x28[_0x38fd[58]]);_0xbb12x29[_0x38fd[59]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],_0xbb12x29[_0x38fd[58]]);_0xbb12x1b[_0x38fd[61]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],qs[_0x38fd[62]](_0xbb12x28[_0x38fd[58]][_0x38fd[62]]));_0xbb12x1b[_0x38fd[61]]= (_0xbb12x1b[_0x38fd[61]][_0x38fd[63]])?_0xbb12x1b[_0x38fd[61]]:_0xbb12x29[_0x38fd[54]];_0xbb12x1b[_0x38fd[66]]= qs[_0x38fd[67]](_0xbb12x28[_0x38fd[58]][_0x38fd[67]]);_0xbb12x1b[_0x38fd[68]]= qs[_0x38fd[59]](_[_0x38fd[69]](_0xbb12x28[_0x38fd[58]],_0xbb12x29[_0x38fd[59]]));if(_0xbb12x28[_0x38fd[58]][_0x38fd[70]]){_0xbb12x1b[_0x38fd[68]]= _[_0x38fd[73]](_0xbb12x1b[_0x38fd[68]],{$or:_[_0x38fd[72]](_0xbb12x1b[_0x38fd[61]],function(_0xbb12x2a){var _0xbb12x2b={};_0xbb12x2b[_0xbb12x2a]= {$like:_0x38fd[71]+ _0xbb12x28[_0x38fd[58]][_0x38fd[70]]+ _0x38fd[71]};return _0xbb12x2b})})};_0xbb12x1b= _[_0x38fd[73]]({},_0xbb12x1b,_0xbb12x28[_0x38fd[74]]);return _0xbb12x2d[_0x38fd[83]](_0xbb12x1b)}})[_0x38fd[45]](function(_0xbb12x2f){if(_0xbb12x2f){_0xbb12x1c= _0xbb12x2f[_0x38fd[63]];if(!_0xbb12x28[_0x38fd[58]][_0x38fd[65]](_0x38fd[64])){_0xbb12x1b[_0x38fd[35]]= qs[_0x38fd[35]](_0xbb12x28[_0x38fd[58]][_0x38fd[35]]);_0xbb12x1b[_0x38fd[34]]= qs[_0x38fd[34]](_0xbb12x28[_0x38fd[58]][_0x38fd[34]])};return _0xbb12x2d[_0x38fd[83]](_0xbb12x1b)}})[_0x38fd[45]](function(_0xbb12x2e){return _0xbb12x2e?{count:_0xbb12x1c,rows:_0xbb12x2e}:null})[_0x38fd[45]](respondWithResult(_0xbb12x18,null,_0x38fd[83]))[_0x38fd[75]](handleError(_0xbb12x18,null,_0x38fd[83]))};exports[_0x38fd[86]]= function(_0xbb12x28,_0xbb12x15,_0xbb12x2c){var _0xbb12x30=[];var _0xbb12x31;return db[_0x38fd[84]][_0x38fd[93]]({where:{id:_0xbb12x28[_0x38fd[82]][_0x38fd[87]]},attributes:[_0x38fd[78]],include:[{model:db[_0x38fd[92]],as:_0x38fd[90],attributes:[_0x38fd[78]],raw:true}]})[_0x38fd[45]](function(_0xbb12x34){if(_0xbb12x34){for(var _0xbb12x35=0;_0xbb12x35< _0xbb12x34[_0x38fd[63]];_0xbb12x35+= 1){for(var _0xbb12x36=0;_0xbb12x36< _0xbb12x34[_0xbb12x35][_0x38fd[90]][_0x38fd[63]];_0xbb12x36+= 1){_0xbb12x30= _[_0x38fd[91]](_0xbb12x30,[_0xbb12x34[_0xbb12x35][_0x38fd[90]][_0xbb12x36][_0x38fd[78]]])}};return _0xbb12x30}})[_0x38fd[45]](function(_0xbb12x33){if(_0xbb12x33){return db[_0x38fd[56]][_0x38fd[80]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})}})[_0x38fd[45]](function(_0xbb12x32){if(_0xbb12x32){_0xbb12x31= _0xbb12x32;return _0xbb12x31[_0x38fd[89]](_0xbb12x30,{penalty:_0xbb12x28[_0x38fd[82]][_0x38fd[88]]})}})[_0x38fd[45]](function(_0xbb12x18){if(_0xbb12x18){return _0xbb12x31[_0x38fd[86]](_0xbb12x28[_0x38fd[82]][_0x38fd[87]])}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[86]))[_0x38fd[45]](respondWithStatusCode(_0xbb12x15,null,_0x38fd[86]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[86]))};exports[_0x38fd[94]]= function(_0xbb12x28,_0xbb12x15,_0xbb12x2c){var _0xbb12x30=[];var _0xbb12x31;return db[_0x38fd[84]][_0x38fd[93]]({where:{id:_0xbb12x28[_0x38fd[58]][_0x38fd[87]]},attributes:[_0x38fd[78]],include:[{model:db[_0x38fd[92]],as:_0x38fd[90],attributes:[_0x38fd[78]],raw:true}]})[_0x38fd[45]](function(_0xbb12x34){if(_0xbb12x34){for(var _0xbb12x35=0;_0xbb12x35< _0xbb12x34[_0x38fd[63]];_0xbb12x35+= 1){for(var _0xbb12x36=0;_0xbb12x36< _0xbb12x34[_0xbb12x35][_0x38fd[90]][_0x38fd[63]];_0xbb12x36+= 1){_0xbb12x30= _[_0x38fd[91]](_0xbb12x30,[_0xbb12x34[_0xbb12x35][_0x38fd[90]][_0xbb12x36][_0x38fd[78]]])}};return _0xbb12x30}})[_0x38fd[45]](function(_0xbb12x33){if(_0xbb12x33){return db[_0x38fd[56]][_0x38fd[80]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})}})[_0x38fd[45]](function(_0xbb12x32){if(_0xbb12x32){_0xbb12x31= _0xbb12x32;return _0xbb12x31[_0x38fd[95]](_0xbb12x30)}})[_0x38fd[45]](function(_0xbb12x18){if(_0xbb12x31){return _0xbb12x31[_0x38fd[94]](_0xbb12x28[_0x38fd[58]][_0x38fd[87]])}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[94]))[_0x38fd[45]](respondWithStatusCode(_0xbb12x15,null,_0x38fd[94]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[94]))};exports[_0x38fd[89]]= function(_0xbb12x28,_0xbb12x15,_0xbb12x2c){return db[_0x38fd[56]][_0x38fd[80]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[89]))[_0x38fd[45]](function(_0xbb12x18){if(_0xbb12x18){return _0xbb12x18[_0x38fd[89]](_0xbb12x28[_0x38fd[82]][_0x38fd[87]],_[_0x38fd[96]](_0xbb12x28[_0x38fd[82]],[_0x38fd[87],_0x38fd[78]])|| {})};return null})[_0x38fd[45]](respondWithResult(_0xbb12x15,null,_0x38fd[89]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[89]))};exports[_0x38fd[95]]= function(_0xbb12x28,_0xbb12x15,_0xbb12x2c){var _0xbb12x2f;return db[_0x38fd[56]][_0x38fd[80]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x15,null,_0x38fd[95]))[_0x38fd[45]](function(_0xbb12x18){if(_0xbb12x18){return _0xbb12x18[_0x38fd[95]](_0xbb12x28[_0x38fd[58]][_0x38fd[87]])}})[_0x38fd[45]](respondWithStatusCode(_0xbb12x15,null,_0x38fd[95]))[_0x38fd[75]](handleError(_0xbb12x15,null,_0x38fd[95]))};exports[_0x38fd[97]]= function(_0xbb12x28,_0xbb12x18,_0xbb12x2c){var _0xbb12x1b={};var _0xbb12x29={};var _0xbb12x2d;var _0xbb12x1c;return db[_0x38fd[56]][_0x38fd[85]]({where:{id:_0xbb12x28[_0x38fd[79]][_0x38fd[78]]}})[_0x38fd[45]](handleEntityNotFound(_0xbb12x18,null,_0x38fd[97]))[_0x38fd[45]](function(_0xbb12x18){if(_0xbb12x18){_0xbb12x2d= _0xbb12x18;_0xbb12x29[_0x38fd[54]]= _[_0x38fd[57]](db[_0x38fd[92]][_0x38fd[55]]);_0xbb12x29[_0x38fd[58]]= _[_0x38fd[57]](_0xbb12x28[_0x38fd[58]]);_0xbb12x29[_0x38fd[59]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],_0xbb12x29[_0x38fd[58]]);_0xbb12x1b[_0x38fd[61]]= _[_0x38fd[60]](_0xbb12x29[_0x38fd[54]],qs[_0x38fd[62]](_0xbb12x28[_0x38fd[58]][_0x38fd[62]]));_0xbb12x1b[_0x38fd[61]]= (_0xbb12x1b[_0x38fd[61]][_0x38fd[63]])?_0xbb12x1b[_0x38fd[61]]:_0xbb12x29[_0x38fd[54]];_0xbb12x1b[_0x38fd[66]]= qs[_0x38fd[67]](_0xbb12x28[_0x38fd[58]][_0x38fd[67]]);_0xbb12x1b[_0x38fd[68]]= qs[_0x38fd[59]](_[_0x38fd[69]](_0xbb12x28[_0x38fd[58]],_0xbb12x29[_0x38fd[59]]));if(_0xbb12x28[_0x38fd[58]][_0x38fd[70]]){_0xbb12x1b[_0x38fd[68]]= _[_0x38fd[73]](_0xbb12x1b[_0x38fd[68]],{$or:_[_0x38fd[72]](_0xbb12x1b[_0x38fd[61]],function(_0xbb12x2a){var _0xbb12x2b={};_0xbb12x2b[_0xbb12x2a]= {$like:_0x38fd[71]+ _0xbb12x28[_0x38fd[58]][_0x38fd[70]]+ _0x38fd[71]};return _0xbb12x2b})})};_0xbb12x1b= _[_0x38fd[73]]({},_0xbb12x1b,_0xbb12x28[_0x38fd[74]]);return _0xbb12x2d[_0x38fd[97]](_0xbb12x1b)}})[_0x38fd[45]](function(_0xbb12x2f){if(_0xbb12x2f){_0xbb12x1c= _0xbb12x2f[_0x38fd[63]];if(!_0xbb12x28[_0x38fd[58]][_0x38fd[65]](_0x38fd[64])){_0xbb12x1b[_0x38fd[35]]= qs[_0x38fd[35]](_0xbb12x28[_0x38fd[58]][_0x38fd[35]]);_0xbb12x1b[_0x38fd[34]]= qs[_0x38fd[34]](_0xbb12x28[_0x38fd[58]][_0x38fd[34]])};return _0xbb12x2d[_0x38fd[97]](_0xbb12x1b)}})[_0x38fd[45]](function(_0xbb12x2e){return _0xbb12x2e?{count:_0xbb12x1c,rows:_0xbb12x2e}:null})[_0x38fd[45]](respondWithResult(_0xbb12x18,null,_0x38fd[97]))[_0x38fd[75]](handleError(_0xbb12x18,null,_0x38fd[97]))}
\ No newline at end of file
index f40c70f..b93d8fa 100644 (file)
@@ -1 +1 @@
-var _0xcab8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xcab8[0];var _=require(_0xcab8[1]);var util=require(_0xcab8[2]);var logger=require(_0xcab8[4])(_0xcab8[3]);var attributes=require(_0xcab8[5]);module[_0xcab8[6]]= function(_0xb7e7x5,_0xb7e7x6){return _0xb7e7x5[_0xcab8[9]](_0xcab8[7],attributes,{tableName:_0xcab8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xfcfa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xfcfa[0];var _=require(_0xfcfa[1]);var util=require(_0xfcfa[2]);var logger=require(_0xfcfa[4])(_0xfcfa[3]);var attributes=require(_0xfcfa[5]);module[_0xfcfa[6]]= function(_0x7015x5,_0x7015x6){return _0x7015x5[_0xfcfa[9]](_0xfcfa[7],attributes,{tableName:_0xfcfa[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4785a69..6c324d1 100644 (file)
@@ -1 +1 @@
-var _0xa2ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa2ef[0];var _=require(_0xa2ef[1]);var util=require(_0xa2ef[2]);var moment=require(_0xa2ef[3]);var BPromise=require(_0xa2ef[4]);var db=require(_0xa2ef[6])[_0xa2ef[5]];var utils=require(_0xa2ef[7]);var logger=require(_0xa2ef[9])(_0xa2ef[8]);var jayson=require(_0xa2ef[10]);var client=jayson[_0xa2ef[12]][_0xa2ef[11]]({port:9002});function respondWithRpcPromise(_0x24b2xb,_0x24b2xc,_0x24b2xd){return  new BPromise(function(_0x24b2xe,_0x24b2xf){return client[_0xa2ef[25]](_0x24b2xb,_0x24b2xd)[_0xa2ef[24]](function(_0x24b2x11){logger[_0xa2ef[17]](_0xa2ef[13],_0x24b2xc,_0xa2ef[16]);logger[_0xa2ef[20]](_0xa2ef[18],_0x24b2xc,_0xa2ef[16],JSON[_0xa2ef[19]](_0x24b2x11));if(_0x24b2x11[_0xa2ef[14]]){if(_0x24b2x11[_0xa2ef[14]][_0xa2ef[21]]=== 500){logger[_0xa2ef[14]](_0xa2ef[13],_0x24b2xc,_0x24b2x11[_0xa2ef[14]][_0xa2ef[22]]);return _0x24b2xf(_0x24b2x11[_0xa2ef[14]][_0xa2ef[22]])};logger[_0xa2ef[14]](_0xa2ef[13],_0x24b2xc,_0x24b2x11[_0xa2ef[14]][_0xa2ef[22]]);return _0x24b2xe(_0x24b2x11[_0xa2ef[14]][_0xa2ef[22]])}else {logger[_0xa2ef[17]](_0xa2ef[13],_0x24b2xc,_0xa2ef[16]);_0x24b2xe(_0x24b2x11[_0xa2ef[23]][_0xa2ef[22]])}})[_0xa2ef[15]](function(_0x24b2x10){logger[_0xa2ef[14]](_0xa2ef[13],_0x24b2xc,_0x24b2x10);_0x24b2xf(_0x24b2x10)})})}
\ No newline at end of file
+var _0x409c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x409c[0];var _=require(_0x409c[1]);var util=require(_0x409c[2]);var moment=require(_0x409c[3]);var BPromise=require(_0x409c[4]);var db=require(_0x409c[6])[_0x409c[5]];var utils=require(_0x409c[7]);var logger=require(_0x409c[9])(_0x409c[8]);var jayson=require(_0x409c[10]);var client=jayson[_0x409c[12]][_0x409c[11]]({port:9002});function respondWithRpcPromise(_0x769axb,_0x769axc,_0x769axd){return  new BPromise(function(_0x769axe,_0x769axf){return client[_0x409c[25]](_0x769axb,_0x769axd)[_0x409c[24]](function(_0x769ax11){logger[_0x409c[17]](_0x409c[13],_0x769axc,_0x409c[16]);logger[_0x409c[20]](_0x409c[18],_0x769axc,_0x409c[16],JSON[_0x409c[19]](_0x769ax11));if(_0x769ax11[_0x409c[14]]){if(_0x769ax11[_0x409c[14]][_0x409c[21]]=== 500){logger[_0x409c[14]](_0x409c[13],_0x769axc,_0x769ax11[_0x409c[14]][_0x409c[22]]);return _0x769axf(_0x769ax11[_0x409c[14]][_0x409c[22]])};logger[_0x409c[14]](_0x409c[13],_0x769axc,_0x769ax11[_0x409c[14]][_0x409c[22]]);return _0x769axe(_0x769ax11[_0x409c[14]][_0x409c[22]])}else {logger[_0x409c[17]](_0x409c[13],_0x769axc,_0x409c[16]);_0x769axe(_0x769ax11[_0x409c[23]][_0x409c[22]])}})[_0x409c[15]](function(_0x769ax10){logger[_0x409c[14]](_0x409c[13],_0x769axc,_0x769ax10);_0x769axf(_0x769ax10)})})}
\ No newline at end of file
index a873852..016fcc5 100644 (file)
@@ -1 +1 @@
-var _0xd3e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xd3e6[0];var multer=require(_0xd3e6[1]);var util=require(_0xd3e6[2]);var path=require(_0xd3e6[3]);var express=require(_0xd3e6[4]);var router=express.Router();var auth=require(_0xd3e6[5]);var config=require(_0xd3e6[6]);var controller=require(_0xd3e6[7]);router[_0xd3e6[11]](_0xd3e6[8],auth[_0xd3e6[9]](),controller[_0xd3e6[10]]);router[_0xd3e6[11]](_0xd3e6[12],auth[_0xd3e6[9]](),controller[_0xd3e6[13]]);router[_0xd3e6[11]](_0xd3e6[14],auth[_0xd3e6[9]](),controller[_0xd3e6[15]]);router[_0xd3e6[11]](_0xd3e6[16],auth[_0xd3e6[9]](),controller[_0xd3e6[17]]);router[_0xd3e6[19]](_0xd3e6[8],auth[_0xd3e6[9]](),controller[_0xd3e6[18]]);router[_0xd3e6[19]](_0xd3e6[14],auth[_0xd3e6[9]](),controller[_0xd3e6[20]]);router[_0xd3e6[19]](_0xd3e6[16],auth[_0xd3e6[9]](),controller[_0xd3e6[21]]);router[_0xd3e6[23]](_0xd3e6[12],auth[_0xd3e6[9]](),controller[_0xd3e6[22]]);router[_0xd3e6[25]](_0xd3e6[12],auth[_0xd3e6[9]](),controller[_0xd3e6[24]]);router[_0xd3e6[25]](_0xd3e6[14],auth[_0xd3e6[9]](),controller[_0xd3e6[26]]);router[_0xd3e6[25]](_0xd3e6[16],auth[_0xd3e6[9]](),controller[_0xd3e6[27]]);module[_0xd3e6[28]]= router
\ No newline at end of file
+var _0xa4f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xa4f9[0];var multer=require(_0xa4f9[1]);var util=require(_0xa4f9[2]);var path=require(_0xa4f9[3]);var express=require(_0xa4f9[4]);var router=express.Router();var auth=require(_0xa4f9[5]);var config=require(_0xa4f9[6]);var controller=require(_0xa4f9[7]);router[_0xa4f9[11]](_0xa4f9[8],auth[_0xa4f9[9]](),controller[_0xa4f9[10]]);router[_0xa4f9[11]](_0xa4f9[12],auth[_0xa4f9[9]](),controller[_0xa4f9[13]]);router[_0xa4f9[11]](_0xa4f9[14],auth[_0xa4f9[9]](),controller[_0xa4f9[15]]);router[_0xa4f9[11]](_0xa4f9[16],auth[_0xa4f9[9]](),controller[_0xa4f9[17]]);router[_0xa4f9[19]](_0xa4f9[8],auth[_0xa4f9[9]](),controller[_0xa4f9[18]]);router[_0xa4f9[19]](_0xa4f9[14],auth[_0xa4f9[9]](),controller[_0xa4f9[20]]);router[_0xa4f9[19]](_0xa4f9[16],auth[_0xa4f9[9]](),controller[_0xa4f9[21]]);router[_0xa4f9[23]](_0xa4f9[12],auth[_0xa4f9[9]](),controller[_0xa4f9[22]]);router[_0xa4f9[25]](_0xa4f9[12],auth[_0xa4f9[9]](),controller[_0xa4f9[24]]);router[_0xa4f9[25]](_0xa4f9[14],auth[_0xa4f9[9]](),controller[_0xa4f9[26]]);router[_0xa4f9[25]](_0xa4f9[16],auth[_0xa4f9[9]](),controller[_0xa4f9[27]]);module[_0xa4f9[28]]= router
\ No newline at end of file
index 26814eb..0b5eafa 100644 (file)
@@ -1 +1 @@
-var _0xa432=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xa432[0];var moment=require(_0xa432[1]);var Sequelize=require(_0xa432[2]);module[_0xa432[3]]= {uniqueid:{type:Sequelize[_0xa432[4]]},timeslot:{type:Sequelize[_0xa432[5]]},accountid:{type:Sequelize[_0xa432[4]]},accountname:{type:Sequelize[_0xa432[4]]},accountphone:{type:Sequelize[_0xa432[4]]},application:{type:Sequelize[_0xa432[4]]},memberid:{type:Sequelize[_0xa432[5]]},membername:{type:Sequelize[_0xa432[4]]},queue:{type:Sequelize[_0xa432[5]]},queuename:{type:Sequelize[_0xa432[4]]},roomid:{type:Sequelize[_0xa432[5]]},messageid:{type:Sequelize[_0xa432[5]]},reason:{type:Sequelize[_0xa432[4]],defaultValue:_0xa432[6]},connectid:{type:Sequelize[_0xa432[4]],unique:_0xa432[7],set:function(_0xd7b0x3){this[_0xa432[8]](_0xa432[7],_0xd7b0x3);this[_0xa432[8]](_0xa432[9],_0xa432[10]);this[_0xa432[8]](_0xa432[11],moment()[_0xa432[13]](_0xa432[12]))}},calledAt:{type:Sequelize[_0xa432[14]]},rejectedAt:{type:Sequelize[_0xa432[14]],set:function(_0xd7b0x4){this[_0xa432[8]](_0xa432[15],_0xd7b0x4);this[_0xa432[8]](_0xa432[9],_0xa432[16])}},connectedAt:{type:Sequelize[_0xa432[14]]},from:{type:Sequelize[_0xa432[4]]}}
\ No newline at end of file
+var _0x1098=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x1098[0];var moment=require(_0x1098[1]);var Sequelize=require(_0x1098[2]);module[_0x1098[3]]= {uniqueid:{type:Sequelize[_0x1098[4]]},timeslot:{type:Sequelize[_0x1098[5]]},accountid:{type:Sequelize[_0x1098[4]]},accountname:{type:Sequelize[_0x1098[4]]},accountphone:{type:Sequelize[_0x1098[4]]},application:{type:Sequelize[_0x1098[4]]},memberid:{type:Sequelize[_0x1098[5]]},membername:{type:Sequelize[_0x1098[4]]},queue:{type:Sequelize[_0x1098[5]]},queuename:{type:Sequelize[_0x1098[4]]},roomid:{type:Sequelize[_0x1098[5]]},messageid:{type:Sequelize[_0x1098[5]]},reason:{type:Sequelize[_0x1098[4]],defaultValue:_0x1098[6]},connectid:{type:Sequelize[_0x1098[4]],unique:_0x1098[7],set:function(_0x4981x3){this[_0x1098[8]](_0x1098[7],_0x4981x3);this[_0x1098[8]](_0x1098[9],_0x1098[10]);this[_0x1098[8]](_0x1098[11],moment()[_0x1098[13]](_0x1098[12]))}},calledAt:{type:Sequelize[_0x1098[14]]},rejectedAt:{type:Sequelize[_0x1098[14]],set:function(_0x4981x4){this[_0x1098[8]](_0x1098[15],_0x4981x4);this[_0x1098[8]](_0x1098[9],_0x1098[16])}},connectedAt:{type:Sequelize[_0x1098[14]]},from:{type:Sequelize[_0x1098[4]]}}
\ No newline at end of file
index d5eb9e9..3aa4c48 100644 (file)
@@ -1 +1 @@
-var _0xa951=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xa951[0];var jsonpatch=require(_0xa951[1]);var rp=require(_0xa951[2]);var moment=require(_0xa951[3]);var BPromise=require(_0xa951[4]);var util=require(_0xa951[5]);var path=require(_0xa951[6]);var sox=require(_0xa951[7]);var ejs=require(_0xa951[8]);var fs=require(_0xa951[9]);var _=require(_0xa951[10]);var squel=require(_0xa951[11]);var crypto=require(_0xa951[12]);var jsforce=require(_0xa951[13]);var toCsv=require(_0xa951[14]);var qs=require(_0xa951[15]);var logger=require(_0xa951[17])(_0xa951[16]);var utils=require(_0xa951[18]);var config=require(_0xa951[19]);var db=require(_0xa951[21])[_0xa951[20]];function respondWithStatusCode(_0x64e0x15,_0x64e0x16,_0x64e0x17){_0x64e0x16= _0x64e0x16|| 204;return function(_0x64e0x18){if(_0x64e0x18){logger[_0xa951[24]](_0xa951[22],_0x64e0x17,_0x64e0x16,_0xa951[23]);logger[_0xa951[26]](_0xa951[25],_0x64e0x17,_0x64e0x16,_0xa951[23]);return _0x64e0x15[_0xa951[27]](_0x64e0x16)};return _0x64e0x15[_0xa951[29]](304)[_0xa951[28]]()}}function respondWithResult(_0x64e0x15,_0x64e0x16,_0x64e0x17){_0x64e0x16= _0x64e0x16|| 200;return function(_0x64e0x18){if(_0x64e0x18){logger[_0xa951[24]](_0xa951[22],_0x64e0x17,_0x64e0x16,_0xa951[30]);logger[_0xa951[26]](_0xa951[25],_0x64e0x17,_0x64e0x16,_0xa951[30],JSON[_0xa951[31]](_0x64e0x18));return _0x64e0x15[_0xa951[29]](_0x64e0x16)[_0xa951[32]](_0x64e0x18)};return _0x64e0x15[_0xa951[29]](304)[_0xa951[28]]()}}function respondWithFilteredResult(_0x64e0x15,_0x64e0x1b,_0x64e0x17){return function(_0x64e0x18){if(_0x64e0x18){var _0x64e0x1c=_0x64e0x18[_0xa951[33]],_0x64e0x1d=_0x64e0x1b[_0xa951[34]],_0x64e0x1e=_0x64e0x1b[_0xa951[34]]+ _0x64e0x1b[_0xa951[35]],_0x64e0x16;if(_0x64e0x1e>= _0x64e0x1c){_0x64e0x1e= _0x64e0x1c;_0x64e0x16= 200}else {_0x64e0x16= 206};_0x64e0x15[_0xa951[29]](_0x64e0x16);logger[_0xa951[24]](_0xa951[22],_0x64e0x17,_0x64e0x16,_0xa951[36]);logger[_0xa951[26]](_0xa951[25],_0x64e0x17,_0x64e0x16,_0xa951[30],JSON[_0xa951[31]](_0x64e0x18));return _0x64e0x15[_0xa951[40]](_0xa951[37],_0x64e0x1d+ _0xa951[38]+ _0x64e0x1e+ _0xa951[39]+ _0x64e0x1c)[_0xa951[32]](_0x64e0x18)};return null}}function patchUpdates(_0x64e0x20){return function(_0x64e0x18){try{jsonpatch[_0xa951[41]](_0x64e0x18,_0x64e0x20,true)}catch(err){return BPromise[_0xa951[42]](err)};return _0x64e0x18[_0xa951[43]]()}}function saveUpdates(_0x64e0x22,_0x64e0x16,_0x64e0x17){return function(_0x64e0x18){if(_0x64e0x18){return _0x64e0x18[_0xa951[46]](_0x64e0x22)[_0xa951[45]](function(_0x64e0x23){logger[_0xa951[24]](_0xa951[22],_0x64e0x17,_0x64e0x16,_0xa951[44]);logger[_0xa951[26]](_0xa951[25],_0x64e0x17,_0x64e0x16,_0xa951[44],JSON[_0xa951[31]](_0x64e0x18));return _0x64e0x23})};return null}}function removeEntity(_0x64e0x15,_0x64e0x16,_0x64e0x17){return function(_0x64e0x18){if(_0x64e0x18){return _0x64e0x18[_0xa951[48]]()[_0xa951[45]](function(){logger[_0xa951[24]](_0xa951[22],_0x64e0x17,_0x64e0x16,_0xa951[47]);logger[_0xa951[26]](_0xa951[25],_0x64e0x17,_0x64e0x16,_0xa951[47],JSON[_0xa951[31]](_0x64e0x18));_0x64e0x15[_0xa951[29]](204)[_0xa951[28]]()})}}}function handleEntityNotFound(_0x64e0x15,_0x64e0x16,_0x64e0x17){return function(_0x64e0x18){if(!_0x64e0x18){logger[_0xa951[50]](_0xa951[22],_0x64e0x17,404,_0xa951[49]);_0x64e0x15[_0xa951[29]](404)[_0xa951[28]]();return null};return _0x64e0x18}}function handleError(_0x64e0x15,_0x64e0x16,_0x64e0x17){_0x64e0x16= _0x64e0x16|| 500;return function(_0x64e0x27){logger[_0xa951[50]](_0xa951[22],_0x64e0x17,_0x64e0x16,JSON[_0xa951[31]](_0x64e0x27));delete _0x64e0x27[_0xa951[51]];_0x64e0x15[_0xa951[29]](_0x64e0x16)[_0xa951[52]](_0x64e0x27)}}exports[_0xa951[53]]= function(_0x64e0x28,_0x64e0x15){var _0x64e0x1b={},_0x64e0x29={};_0x64e0x29[_0xa951[54]]= _[_0xa951[57]](db[_0xa951[56]][_0xa951[55]]);_0x64e0x29[_0xa951[58]]= _[_0xa951[57]](_0x64e0x28[_0xa951[58]]);_0x64e0x29[_0xa951[59]]= _[_0xa951[60]](_0x64e0x29[_0xa951[54]],_0x64e0x29[_0xa951[58]]);_0x64e0x1b[_0xa951[61]]= _[_0xa951[60]](_0x64e0x29[_0xa951[54]],qs[_0xa951[62]](_0x64e0x28[_0xa951[58]][_0xa951[62]]));_0x64e0x1b[_0xa951[61]]= (_0x64e0x1b[_0xa951[61]][_0xa951[63]])?_0x64e0x1b[_0xa951[61]]:_0x64e0x29[_0xa951[54]];if(!_0x64e0x28[_0xa951[58]][_0xa951[65]](_0xa951[64])){_0x64e0x1b[_0xa951[35]]= qs[_0xa951[35]](_0x64e0x28[_0xa951[58]][_0xa951[35]]);_0x64e0x1b[_0xa951[34]]= qs[_0xa951[34]](_0x64e0x28[_0xa951[58]][_0xa951[34]])};_0x64e0x1b[_0xa951[66]]= qs[_0xa951[67]](_0x64e0x28[_0xa951[58]][_0xa951[67]]);_0x64e0x1b[_0xa951[68]]= qs[_0xa951[59]](_[_0xa951[69]](_0x64e0x28[_0xa951[58]],_0x64e0x29[_0xa951[59]]));if(_0x64e0x28[_0xa951[58]][_0xa951[70]]){_0x64e0x1b[_0xa951[68]]= _[_0xa951[73]](_0x64e0x1b[_0xa951[68]],{$or:_[_0xa951[72]](_0x64e0x1b[_0xa951[61]],function(_0x64e0x2a){var _0x64e0x2b={};_0x64e0x2b[_0x64e0x2a]= {$like:_0xa951[71]+ _0x64e0x28[_0xa951[58]][_0xa951[70]]+ _0xa951[71]};return _0x64e0x2b})})};_0x64e0x1b= _[_0xa951[73]]({},_0x64e0x1b,_0x64e0x28[_0xa951[74]]);return db[_0xa951[56]][_0xa951[76]](_0x64e0x1b)[_0xa951[45]](respondWithFilteredResult(_0x64e0x15,_0x64e0x1b,_0xa951[53]))[_0xa951[75]](handleError(_0x64e0x15,null,_0xa951[53]))};exports[_0xa951[77]]= function(_0x64e0x28,_0x64e0x15){var _0x64e0x1b={raw:true,where:{id:_0x64e0x28[_0xa951[79]][_0xa951[78]]}},_0x64e0x29={};_0x64e0x29[_0xa951[54]]= _[_0xa951[57]](db[_0xa951[56]][_0xa951[55]]);_0x64e0x29[_0xa951[58]]= _[_0xa951[57]](_0x64e0x28[_0xa951[58]]);_0x64e0x29[_0xa951[59]]= _[_0xa951[60]](_0x64e0x29[_0xa951[54]],_0x64e0x29[_0xa951[58]]);_0x64e0x1b[_0xa951[61]]= _[_0xa951[60]](_0x64e0x29[_0xa951[54]],qs[_0xa951[62]](_0x64e0x28[_0xa951[58]][_0xa951[62]]));_0x64e0x1b[_0xa951[61]]= (_0x64e0x1b[_0xa951[61]][_0xa951[63]])?_0x64e0x1b[_0xa951[61]]:_0x64e0x29[_0xa951[54]];_0x64e0x1b= _[_0xa951[73]]({},_0x64e0x1b,_0x64e0x28[_0xa951[74]]);return db[_0xa951[56]][_0xa951[80]](_0x64e0x1b)[_0xa951[45]](handleEntityNotFound(_0x64e0x15,null,_0xa951[77]))[_0xa951[45]](respondWithResult(_0x64e0x15,null,_0xa951[77]))[_0xa951[75]](handleError(_0x64e0x15,null,_0xa951[77]))};exports[_0xa951[81]]= function(_0x64e0x28,_0x64e0x15){return db[_0xa951[56]][_0xa951[81]](_0x64e0x28[_0xa951[82]],{})[_0xa951[45]](respondWithResult(_0x64e0x15,201,_0xa951[81]))[_0xa951[75]](handleError(_0x64e0x15,null,_0xa951[81]))};exports[_0xa951[46]]= function(_0x64e0x28,_0x64e0x15){if(_0x64e0x28[_0xa951[82]][_0xa951[78]]){delete _0x64e0x28[_0xa951[82]][_0xa951[78]]};return db[_0xa951[56]][_0xa951[80]]({where:{id:_0x64e0x28[_0xa951[79]][_0xa951[78]]}})[_0xa951[45]](handleEntityNotFound(_0x64e0x15,null,_0xa951[46]))[_0xa951[45]](saveUpdates(_0x64e0x28[_0xa951[82]],null,_0xa951[46]))[_0xa951[45]](respondWithResult(_0x64e0x15,null,_0xa951[46]))[_0xa951[75]](handleError(_0x64e0x15,null,_0xa951[46]))};exports[_0xa951[48]]= function(_0x64e0x28,_0x64e0x15){return db[_0xa951[56]][_0xa951[80]]({where:{id:_0x64e0x28[_0xa951[79]][_0xa951[78]]}})[_0xa951[45]](handleEntityNotFound(_0x64e0x15,null,_0xa951[48]))[_0xa951[45]](removeEntity(_0x64e0x15,null,_0xa951[48]))[_0xa951[75]](handleError(_0x64e0x15,null,_0xa951[48]))}
\ No newline at end of file
+var _0x96c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x96c3[0];var jsonpatch=require(_0x96c3[1]);var rp=require(_0x96c3[2]);var moment=require(_0x96c3[3]);var BPromise=require(_0x96c3[4]);var util=require(_0x96c3[5]);var path=require(_0x96c3[6]);var sox=require(_0x96c3[7]);var ejs=require(_0x96c3[8]);var fs=require(_0x96c3[9]);var _=require(_0x96c3[10]);var squel=require(_0x96c3[11]);var crypto=require(_0x96c3[12]);var jsforce=require(_0x96c3[13]);var toCsv=require(_0x96c3[14]);var qs=require(_0x96c3[15]);var logger=require(_0x96c3[17])(_0x96c3[16]);var utils=require(_0x96c3[18]);var config=require(_0x96c3[19]);var db=require(_0x96c3[21])[_0x96c3[20]];function respondWithStatusCode(_0x2e45x15,_0x2e45x16,_0x2e45x17){_0x2e45x16= _0x2e45x16|| 204;return function(_0x2e45x18){if(_0x2e45x18){logger[_0x96c3[24]](_0x96c3[22],_0x2e45x17,_0x2e45x16,_0x96c3[23]);logger[_0x96c3[26]](_0x96c3[25],_0x2e45x17,_0x2e45x16,_0x96c3[23]);return _0x2e45x15[_0x96c3[27]](_0x2e45x16)};return _0x2e45x15[_0x96c3[29]](304)[_0x96c3[28]]()}}function respondWithResult(_0x2e45x15,_0x2e45x16,_0x2e45x17){_0x2e45x16= _0x2e45x16|| 200;return function(_0x2e45x18){if(_0x2e45x18){logger[_0x96c3[24]](_0x96c3[22],_0x2e45x17,_0x2e45x16,_0x96c3[30]);logger[_0x96c3[26]](_0x96c3[25],_0x2e45x17,_0x2e45x16,_0x96c3[30],JSON[_0x96c3[31]](_0x2e45x18));return _0x2e45x15[_0x96c3[29]](_0x2e45x16)[_0x96c3[32]](_0x2e45x18)};return _0x2e45x15[_0x96c3[29]](304)[_0x96c3[28]]()}}function respondWithFilteredResult(_0x2e45x15,_0x2e45x1b,_0x2e45x17){return function(_0x2e45x18){if(_0x2e45x18){var _0x2e45x1c=_0x2e45x18[_0x96c3[33]],_0x2e45x1d=_0x2e45x1b[_0x96c3[34]],_0x2e45x1e=_0x2e45x1b[_0x96c3[34]]+ _0x2e45x1b[_0x96c3[35]],_0x2e45x16;if(_0x2e45x1e>= _0x2e45x1c){_0x2e45x1e= _0x2e45x1c;_0x2e45x16= 200}else {_0x2e45x16= 206};_0x2e45x15[_0x96c3[29]](_0x2e45x16);logger[_0x96c3[24]](_0x96c3[22],_0x2e45x17,_0x2e45x16,_0x96c3[36]);logger[_0x96c3[26]](_0x96c3[25],_0x2e45x17,_0x2e45x16,_0x96c3[30],JSON[_0x96c3[31]](_0x2e45x18));return _0x2e45x15[_0x96c3[40]](_0x96c3[37],_0x2e45x1d+ _0x96c3[38]+ _0x2e45x1e+ _0x96c3[39]+ _0x2e45x1c)[_0x96c3[32]](_0x2e45x18)};return null}}function patchUpdates(_0x2e45x20){return function(_0x2e45x18){try{jsonpatch[_0x96c3[41]](_0x2e45x18,_0x2e45x20,true)}catch(err){return BPromise[_0x96c3[42]](err)};return _0x2e45x18[_0x96c3[43]]()}}function saveUpdates(_0x2e45x22,_0x2e45x16,_0x2e45x17){return function(_0x2e45x18){if(_0x2e45x18){return _0x2e45x18[_0x96c3[46]](_0x2e45x22)[_0x96c3[45]](function(_0x2e45x23){logger[_0x96c3[24]](_0x96c3[22],_0x2e45x17,_0x2e45x16,_0x96c3[44]);logger[_0x96c3[26]](_0x96c3[25],_0x2e45x17,_0x2e45x16,_0x96c3[44],JSON[_0x96c3[31]](_0x2e45x18));return _0x2e45x23})};return null}}function removeEntity(_0x2e45x15,_0x2e45x16,_0x2e45x17){return function(_0x2e45x18){if(_0x2e45x18){return _0x2e45x18[_0x96c3[48]]()[_0x96c3[45]](function(){logger[_0x96c3[24]](_0x96c3[22],_0x2e45x17,_0x2e45x16,_0x96c3[47]);logger[_0x96c3[26]](_0x96c3[25],_0x2e45x17,_0x2e45x16,_0x96c3[47],JSON[_0x96c3[31]](_0x2e45x18));_0x2e45x15[_0x96c3[29]](204)[_0x96c3[28]]()})}}}function handleEntityNotFound(_0x2e45x15,_0x2e45x16,_0x2e45x17){return function(_0x2e45x18){if(!_0x2e45x18){logger[_0x96c3[50]](_0x96c3[22],_0x2e45x17,404,_0x96c3[49]);_0x2e45x15[_0x96c3[29]](404)[_0x96c3[28]]();return null};return _0x2e45x18}}function handleError(_0x2e45x15,_0x2e45x16,_0x2e45x17){_0x2e45x16= _0x2e45x16|| 500;return function(_0x2e45x27){logger[_0x96c3[50]](_0x96c3[22],_0x2e45x17,_0x2e45x16,JSON[_0x96c3[31]](_0x2e45x27));delete _0x2e45x27[_0x96c3[51]];_0x2e45x15[_0x96c3[29]](_0x2e45x16)[_0x96c3[52]](_0x2e45x27)}}exports[_0x96c3[53]]= function(_0x2e45x28,_0x2e45x15){var _0x2e45x1b={},_0x2e45x29={};_0x2e45x29[_0x96c3[54]]= _[_0x96c3[57]](db[_0x96c3[56]][_0x96c3[55]]);_0x2e45x29[_0x96c3[58]]= _[_0x96c3[57]](_0x2e45x28[_0x96c3[58]]);_0x2e45x29[_0x96c3[59]]= _[_0x96c3[60]](_0x2e45x29[_0x96c3[54]],_0x2e45x29[_0x96c3[58]]);_0x2e45x1b[_0x96c3[61]]= _[_0x96c3[60]](_0x2e45x29[_0x96c3[54]],qs[_0x96c3[62]](_0x2e45x28[_0x96c3[58]][_0x96c3[62]]));_0x2e45x1b[_0x96c3[61]]= (_0x2e45x1b[_0x96c3[61]][_0x96c3[63]])?_0x2e45x1b[_0x96c3[61]]:_0x2e45x29[_0x96c3[54]];if(!_0x2e45x28[_0x96c3[58]][_0x96c3[65]](_0x96c3[64])){_0x2e45x1b[_0x96c3[35]]= qs[_0x96c3[35]](_0x2e45x28[_0x96c3[58]][_0x96c3[35]]);_0x2e45x1b[_0x96c3[34]]= qs[_0x96c3[34]](_0x2e45x28[_0x96c3[58]][_0x96c3[34]])};_0x2e45x1b[_0x96c3[66]]= qs[_0x96c3[67]](_0x2e45x28[_0x96c3[58]][_0x96c3[67]]);_0x2e45x1b[_0x96c3[68]]= qs[_0x96c3[59]](_[_0x96c3[69]](_0x2e45x28[_0x96c3[58]],_0x2e45x29[_0x96c3[59]]));if(_0x2e45x28[_0x96c3[58]][_0x96c3[70]]){_0x2e45x1b[_0x96c3[68]]= _[_0x96c3[73]](_0x2e45x1b[_0x96c3[68]],{$or:_[_0x96c3[72]](_0x2e45x1b[_0x96c3[61]],function(_0x2e45x2a){var _0x2e45x2b={};_0x2e45x2b[_0x2e45x2a]= {$like:_0x96c3[71]+ _0x2e45x28[_0x96c3[58]][_0x96c3[70]]+ _0x96c3[71]};return _0x2e45x2b})})};_0x2e45x1b= _[_0x96c3[73]]({},_0x2e45x1b,_0x2e45x28[_0x96c3[74]]);return db[_0x96c3[56]][_0x96c3[76]](_0x2e45x1b)[_0x96c3[45]](respondWithFilteredResult(_0x2e45x15,_0x2e45x1b,_0x96c3[53]))[_0x96c3[75]](handleError(_0x2e45x15,null,_0x96c3[53]))};exports[_0x96c3[77]]= function(_0x2e45x28,_0x2e45x15){var _0x2e45x1b={raw:true,where:{id:_0x2e45x28[_0x96c3[79]][_0x96c3[78]]}},_0x2e45x29={};_0x2e45x29[_0x96c3[54]]= _[_0x96c3[57]](db[_0x96c3[56]][_0x96c3[55]]);_0x2e45x29[_0x96c3[58]]= _[_0x96c3[57]](_0x2e45x28[_0x96c3[58]]);_0x2e45x29[_0x96c3[59]]= _[_0x96c3[60]](_0x2e45x29[_0x96c3[54]],_0x2e45x29[_0x96c3[58]]);_0x2e45x1b[_0x96c3[61]]= _[_0x96c3[60]](_0x2e45x29[_0x96c3[54]],qs[_0x96c3[62]](_0x2e45x28[_0x96c3[58]][_0x96c3[62]]));_0x2e45x1b[_0x96c3[61]]= (_0x2e45x1b[_0x96c3[61]][_0x96c3[63]])?_0x2e45x1b[_0x96c3[61]]:_0x2e45x29[_0x96c3[54]];_0x2e45x1b= _[_0x96c3[73]]({},_0x2e45x1b,_0x2e45x28[_0x96c3[74]]);return db[_0x96c3[56]][_0x96c3[80]](_0x2e45x1b)[_0x96c3[45]](handleEntityNotFound(_0x2e45x15,null,_0x96c3[77]))[_0x96c3[45]](respondWithResult(_0x2e45x15,null,_0x96c3[77]))[_0x96c3[75]](handleError(_0x2e45x15,null,_0x96c3[77]))};exports[_0x96c3[81]]= function(_0x2e45x28,_0x2e45x15){return db[_0x96c3[56]][_0x96c3[81]](_0x2e45x28[_0x96c3[82]],{})[_0x96c3[45]](respondWithResult(_0x2e45x15,201,_0x96c3[81]))[_0x96c3[75]](handleError(_0x2e45x15,null,_0x96c3[81]))};exports[_0x96c3[46]]= function(_0x2e45x28,_0x2e45x15){if(_0x2e45x28[_0x96c3[82]][_0x96c3[78]]){delete _0x2e45x28[_0x96c3[82]][_0x96c3[78]]};return db[_0x96c3[56]][_0x96c3[80]]({where:{id:_0x2e45x28[_0x96c3[79]][_0x96c3[78]]}})[_0x96c3[45]](handleEntityNotFound(_0x2e45x15,null,_0x96c3[46]))[_0x96c3[45]](saveUpdates(_0x2e45x28[_0x96c3[82]],null,_0x96c3[46]))[_0x96c3[45]](respondWithResult(_0x2e45x15,null,_0x96c3[46]))[_0x96c3[75]](handleError(_0x2e45x15,null,_0x96c3[46]))};exports[_0x96c3[48]]= function(_0x2e45x28,_0x2e45x15){return db[_0x96c3[56]][_0x96c3[80]]({where:{id:_0x2e45x28[_0x96c3[79]][_0x96c3[78]]}})[_0x96c3[45]](handleEntityNotFound(_0x2e45x15,null,_0x96c3[48]))[_0x96c3[45]](removeEntity(_0x2e45x15,null,_0x96c3[48]))[_0x96c3[75]](handleError(_0x2e45x15,null,_0x96c3[48]))}
\ No newline at end of file
index 6315bba..1971315 100644 (file)
@@ -1 +1 @@
-var _0x6cc8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x66\x61\x78","\x64\x65\x66\x69\x6E\x65"];_0x6cc8[0];var _=require(_0x6cc8[1]);var util=require(_0x6cc8[2]);var logger=require(_0x6cc8[4])(_0x6cc8[3]);var attributes=require(_0x6cc8[5]);module[_0x6cc8[6]]= function(_0x80a4x5,_0x80a4x6){return _0x80a4x5[_0x6cc8[9]](_0x6cc8[7],attributes,{tableName:_0x6cc8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x234d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x66\x61\x78","\x64\x65\x66\x69\x6E\x65"];_0x234d[0];var _=require(_0x234d[1]);var util=require(_0x234d[2]);var logger=require(_0x234d[4])(_0x234d[3]);var attributes=require(_0x234d[5]);module[_0x234d[6]]= function(_0x461ex5,_0x461ex6){return _0x461ex5[_0x234d[9]](_0x234d[7],attributes,{tableName:_0x234d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 041b828..ea7f02e 100644 (file)
@@ -1 +1 @@
-var _0xbf1b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbf1b[0];var _=require(_0xbf1b[1]);var util=require(_0xbf1b[2]);var moment=require(_0xbf1b[3]);var BPromise=require(_0xbf1b[4]);var db=require(_0xbf1b[6])[_0xbf1b[5]];var utils=require(_0xbf1b[7]);var logger=require(_0xbf1b[9])(_0xbf1b[8]);var jayson=require(_0xbf1b[10]);var client=jayson[_0xbf1b[12]][_0xbf1b[11]]({port:9002});function respondWithRpcPromise(_0x550dxb,_0x550dxc,_0x550dxd){return  new BPromise(function(_0x550dxe,_0x550dxf){return client[_0xbf1b[25]](_0x550dxb,_0x550dxd)[_0xbf1b[24]](function(_0x550dx11){logger[_0xbf1b[17]](_0xbf1b[13],_0x550dxc,_0xbf1b[16]);logger[_0xbf1b[20]](_0xbf1b[18],_0x550dxc,_0xbf1b[16],JSON[_0xbf1b[19]](_0x550dx11));if(_0x550dx11[_0xbf1b[14]]){if(_0x550dx11[_0xbf1b[14]][_0xbf1b[21]]=== 500){logger[_0xbf1b[14]](_0xbf1b[13],_0x550dxc,_0x550dx11[_0xbf1b[14]][_0xbf1b[22]]);return _0x550dxf(_0x550dx11[_0xbf1b[14]][_0xbf1b[22]])};logger[_0xbf1b[14]](_0xbf1b[13],_0x550dxc,_0x550dx11[_0xbf1b[14]][_0xbf1b[22]]);return _0x550dxe(_0x550dx11[_0xbf1b[14]][_0xbf1b[22]])}else {logger[_0xbf1b[17]](_0xbf1b[13],_0x550dxc,_0xbf1b[16]);_0x550dxe(_0x550dx11[_0xbf1b[23]][_0xbf1b[22]])}})[_0xbf1b[15]](function(_0x550dx10){logger[_0xbf1b[14]](_0xbf1b[13],_0x550dxc,_0x550dx10);_0x550dxf(_0x550dx10)})})}
\ No newline at end of file
+var _0x5fa7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5fa7[0];var _=require(_0x5fa7[1]);var util=require(_0x5fa7[2]);var moment=require(_0x5fa7[3]);var BPromise=require(_0x5fa7[4]);var db=require(_0x5fa7[6])[_0x5fa7[5]];var utils=require(_0x5fa7[7]);var logger=require(_0x5fa7[9])(_0x5fa7[8]);var jayson=require(_0x5fa7[10]);var client=jayson[_0x5fa7[12]][_0x5fa7[11]]({port:9002});function respondWithRpcPromise(_0xa883xb,_0xa883xc,_0xa883xd){return  new BPromise(function(_0xa883xe,_0xa883xf){return client[_0x5fa7[25]](_0xa883xb,_0xa883xd)[_0x5fa7[24]](function(_0xa883x11){logger[_0x5fa7[17]](_0x5fa7[13],_0xa883xc,_0x5fa7[16]);logger[_0x5fa7[20]](_0x5fa7[18],_0xa883xc,_0x5fa7[16],JSON[_0x5fa7[19]](_0xa883x11));if(_0xa883x11[_0x5fa7[14]]){if(_0xa883x11[_0x5fa7[14]][_0x5fa7[21]]=== 500){logger[_0x5fa7[14]](_0x5fa7[13],_0xa883xc,_0xa883x11[_0x5fa7[14]][_0x5fa7[22]]);return _0xa883xf(_0xa883x11[_0x5fa7[14]][_0x5fa7[22]])};logger[_0x5fa7[14]](_0x5fa7[13],_0xa883xc,_0xa883x11[_0x5fa7[14]][_0x5fa7[22]]);return _0xa883xe(_0xa883x11[_0x5fa7[14]][_0x5fa7[22]])}else {logger[_0x5fa7[17]](_0x5fa7[13],_0xa883xc,_0x5fa7[16]);_0xa883xe(_0xa883x11[_0x5fa7[23]][_0x5fa7[22]])}})[_0x5fa7[15]](function(_0xa883x10){logger[_0x5fa7[14]](_0x5fa7[13],_0xa883xc,_0xa883x10);_0xa883xf(_0xa883x10)})})}
\ No newline at end of file
index 62836ba..963fef2 100644 (file)
@@ -1 +1 @@
-var _0x8d6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8d6c[0];var multer=require(_0x8d6c[1]);var util=require(_0x8d6c[2]);var path=require(_0x8d6c[3]);var express=require(_0x8d6c[4]);var router=express.Router();var auth=require(_0x8d6c[5]);var config=require(_0x8d6c[6]);var controller=require(_0x8d6c[7]);router[_0x8d6c[11]](_0x8d6c[8],auth[_0x8d6c[9]](),controller[_0x8d6c[10]]);router[_0x8d6c[11]](_0x8d6c[12],auth[_0x8d6c[9]](),controller[_0x8d6c[13]]);router[_0x8d6c[15]](_0x8d6c[8],auth[_0x8d6c[9]](),controller[_0x8d6c[14]]);router[_0x8d6c[17]](_0x8d6c[12],auth[_0x8d6c[9]](),controller[_0x8d6c[16]]);router[_0x8d6c[19]](_0x8d6c[12],auth[_0x8d6c[9]](),controller[_0x8d6c[18]]);module[_0x8d6c[20]]= router
\ No newline at end of file
+var _0x4df1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4df1[0];var multer=require(_0x4df1[1]);var util=require(_0x4df1[2]);var path=require(_0x4df1[3]);var express=require(_0x4df1[4]);var router=express.Router();var auth=require(_0x4df1[5]);var config=require(_0x4df1[6]);var controller=require(_0x4df1[7]);router[_0x4df1[11]](_0x4df1[8],auth[_0x4df1[9]](),controller[_0x4df1[10]]);router[_0x4df1[11]](_0x4df1[12],auth[_0x4df1[9]](),controller[_0x4df1[13]]);router[_0x4df1[15]](_0x4df1[8],auth[_0x4df1[9]](),controller[_0x4df1[14]]);router[_0x4df1[17]](_0x4df1[12],auth[_0x4df1[9]](),controller[_0x4df1[16]]);router[_0x4df1[19]](_0x4df1[12],auth[_0x4df1[9]](),controller[_0x4df1[18]]);module[_0x4df1[20]]= router
\ No newline at end of file
index 1ba0f33..b68d9f8 100644 (file)
@@ -1 +1 @@
-var _0xc563=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0xc563[0];var Sequelize=require(_0xc563[1]);module[_0xc563[2]]= {uniqueid:{type:Sequelize[_0xc563[3]]},accountid:{type:Sequelize[_0xc563[3]]},accountname:{type:Sequelize[_0xc563[3]]},accountphone:{type:Sequelize[_0xc563[3]]},application:{type:Sequelize[_0xc563[3]]},memberid:{type:Sequelize[_0xc563[3]]},membername:{type:Sequelize[_0xc563[3]]},queue:{type:Sequelize[_0xc563[4]]},queuename:{type:Sequelize[_0xc563[3]]},roomid:{type:Sequelize[_0xc563[4]]},fidelity:{type:Sequelize[_0xc563[4]],defaultValue:0},joinAt:{type:Sequelize[_0xc563[5]]},leaveAt:{type:Sequelize[_0xc563[5]]},completeAt:{type:Sequelize[_0xc563[5]]},complete:{type:Sequelize[_0xc563[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0xc563[7])},timeout:{type:Sequelize[_0xc563[6]],defaultValue:false},timeslot:{type:Sequelize[_0xc563[4]]}}
\ No newline at end of file
+var _0x5b0d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x5b0d[0];var Sequelize=require(_0x5b0d[1]);module[_0x5b0d[2]]= {uniqueid:{type:Sequelize[_0x5b0d[3]]},accountid:{type:Sequelize[_0x5b0d[3]]},accountname:{type:Sequelize[_0x5b0d[3]]},accountphone:{type:Sequelize[_0x5b0d[3]]},application:{type:Sequelize[_0x5b0d[3]]},memberid:{type:Sequelize[_0x5b0d[3]]},membername:{type:Sequelize[_0x5b0d[3]]},queue:{type:Sequelize[_0x5b0d[4]]},queuename:{type:Sequelize[_0x5b0d[3]]},roomid:{type:Sequelize[_0x5b0d[4]]},fidelity:{type:Sequelize[_0x5b0d[4]],defaultValue:0},joinAt:{type:Sequelize[_0x5b0d[5]]},leaveAt:{type:Sequelize[_0x5b0d[5]]},completeAt:{type:Sequelize[_0x5b0d[5]]},complete:{type:Sequelize[_0x5b0d[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x5b0d[7])},timeout:{type:Sequelize[_0x5b0d[6]],defaultValue:false},timeslot:{type:Sequelize[_0x5b0d[4]]}}
\ No newline at end of file
index cd51db8..2f7756a 100644 (file)
@@ -1 +1 @@
-var _0x10c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x10c1[0];var jsonpatch=require(_0x10c1[1]);var rp=require(_0x10c1[2]);var moment=require(_0x10c1[3]);var BPromise=require(_0x10c1[4]);var util=require(_0x10c1[5]);var path=require(_0x10c1[6]);var sox=require(_0x10c1[7]);var ejs=require(_0x10c1[8]);var fs=require(_0x10c1[9]);var _=require(_0x10c1[10]);var squel=require(_0x10c1[11]);var crypto=require(_0x10c1[12]);var jsforce=require(_0x10c1[13]);var toCsv=require(_0x10c1[14]);var qs=require(_0x10c1[15]);var logger=require(_0x10c1[17])(_0x10c1[16]);var utils=require(_0x10c1[18]);var config=require(_0x10c1[19]);var db=require(_0x10c1[21])[_0x10c1[20]];function respondWithStatusCode(_0xfcfbx15,_0xfcfbx16,_0xfcfbx17){_0xfcfbx16= _0xfcfbx16|| 204;return function(_0xfcfbx18){if(_0xfcfbx18){logger[_0x10c1[24]](_0x10c1[22],_0xfcfbx17,_0xfcfbx16,_0x10c1[23]);logger[_0x10c1[26]](_0x10c1[25],_0xfcfbx17,_0xfcfbx16,_0x10c1[23]);return _0xfcfbx15[_0x10c1[27]](_0xfcfbx16)};return _0xfcfbx15[_0x10c1[29]](304)[_0x10c1[28]]()}}function respondWithResult(_0xfcfbx15,_0xfcfbx16,_0xfcfbx17){_0xfcfbx16= _0xfcfbx16|| 200;return function(_0xfcfbx18){if(_0xfcfbx18){logger[_0x10c1[24]](_0x10c1[22],_0xfcfbx17,_0xfcfbx16,_0x10c1[30]);logger[_0x10c1[26]](_0x10c1[25],_0xfcfbx17,_0xfcfbx16,_0x10c1[30],JSON[_0x10c1[31]](_0xfcfbx18));return _0xfcfbx15[_0x10c1[29]](_0xfcfbx16)[_0x10c1[32]](_0xfcfbx18)};return _0xfcfbx15[_0x10c1[29]](304)[_0x10c1[28]]()}}function respondWithFilteredResult(_0xfcfbx15,_0xfcfbx1b,_0xfcfbx17){return function(_0xfcfbx18){if(_0xfcfbx18){var _0xfcfbx1c=_0xfcfbx18[_0x10c1[33]],_0xfcfbx1d=_0xfcfbx1b[_0x10c1[34]],_0xfcfbx1e=_0xfcfbx1b[_0x10c1[34]]+ _0xfcfbx1b[_0x10c1[35]],_0xfcfbx16;if(_0xfcfbx1e>= _0xfcfbx1c){_0xfcfbx1e= _0xfcfbx1c;_0xfcfbx16= 200}else {_0xfcfbx16= 206};_0xfcfbx15[_0x10c1[29]](_0xfcfbx16);logger[_0x10c1[24]](_0x10c1[22],_0xfcfbx17,_0xfcfbx16,_0x10c1[36]);logger[_0x10c1[26]](_0x10c1[25],_0xfcfbx17,_0xfcfbx16,_0x10c1[30],JSON[_0x10c1[31]](_0xfcfbx18));return _0xfcfbx15[_0x10c1[40]](_0x10c1[37],_0xfcfbx1d+ _0x10c1[38]+ _0xfcfbx1e+ _0x10c1[39]+ _0xfcfbx1c)[_0x10c1[32]](_0xfcfbx18)};return null}}function patchUpdates(_0xfcfbx20){return function(_0xfcfbx18){try{jsonpatch[_0x10c1[41]](_0xfcfbx18,_0xfcfbx20,true)}catch(err){return BPromise[_0x10c1[42]](err)};return _0xfcfbx18[_0x10c1[43]]()}}function saveUpdates(_0xfcfbx22,_0xfcfbx16,_0xfcfbx17){return function(_0xfcfbx18){if(_0xfcfbx18){return _0xfcfbx18[_0x10c1[46]](_0xfcfbx22)[_0x10c1[45]](function(_0xfcfbx23){logger[_0x10c1[24]](_0x10c1[22],_0xfcfbx17,_0xfcfbx16,_0x10c1[44]);logger[_0x10c1[26]](_0x10c1[25],_0xfcfbx17,_0xfcfbx16,_0x10c1[44],JSON[_0x10c1[31]](_0xfcfbx18));return _0xfcfbx23})};return null}}function removeEntity(_0xfcfbx15,_0xfcfbx16,_0xfcfbx17){return function(_0xfcfbx18){if(_0xfcfbx18){return _0xfcfbx18[_0x10c1[48]]()[_0x10c1[45]](function(){logger[_0x10c1[24]](_0x10c1[22],_0xfcfbx17,_0xfcfbx16,_0x10c1[47]);logger[_0x10c1[26]](_0x10c1[25],_0xfcfbx17,_0xfcfbx16,_0x10c1[47],JSON[_0x10c1[31]](_0xfcfbx18));_0xfcfbx15[_0x10c1[29]](204)[_0x10c1[28]]()})}}}function handleEntityNotFound(_0xfcfbx15,_0xfcfbx16,_0xfcfbx17){return function(_0xfcfbx18){if(!_0xfcfbx18){logger[_0x10c1[50]](_0x10c1[22],_0xfcfbx17,404,_0x10c1[49]);_0xfcfbx15[_0x10c1[29]](404)[_0x10c1[28]]();return null};return _0xfcfbx18}}function handleError(_0xfcfbx15,_0xfcfbx16,_0xfcfbx17){_0xfcfbx16= _0xfcfbx16|| 500;return function(_0xfcfbx27){logger[_0x10c1[50]](_0x10c1[22],_0xfcfbx17,_0xfcfbx16,JSON[_0x10c1[31]](_0xfcfbx27));delete _0xfcfbx27[_0x10c1[51]];_0xfcfbx15[_0x10c1[29]](_0xfcfbx16)[_0x10c1[52]](_0xfcfbx27)}}exports[_0x10c1[53]]= function(_0xfcfbx28,_0xfcfbx15){var _0xfcfbx1b={},_0xfcfbx29={};_0xfcfbx29[_0x10c1[54]]= _[_0x10c1[57]](db[_0x10c1[56]][_0x10c1[55]]);_0xfcfbx29[_0x10c1[58]]= _[_0x10c1[57]](_0xfcfbx28[_0x10c1[58]]);_0xfcfbx29[_0x10c1[59]]= _[_0x10c1[60]](_0xfcfbx29[_0x10c1[54]],_0xfcfbx29[_0x10c1[58]]);_0xfcfbx1b[_0x10c1[61]]= _[_0x10c1[60]](_0xfcfbx29[_0x10c1[54]],qs[_0x10c1[62]](_0xfcfbx28[_0x10c1[58]][_0x10c1[62]]));_0xfcfbx1b[_0x10c1[61]]= (_0xfcfbx1b[_0x10c1[61]][_0x10c1[63]])?_0xfcfbx1b[_0x10c1[61]]:_0xfcfbx29[_0x10c1[54]];if(!_0xfcfbx28[_0x10c1[58]][_0x10c1[65]](_0x10c1[64])){_0xfcfbx1b[_0x10c1[35]]= qs[_0x10c1[35]](_0xfcfbx28[_0x10c1[58]][_0x10c1[35]]);_0xfcfbx1b[_0x10c1[34]]= qs[_0x10c1[34]](_0xfcfbx28[_0x10c1[58]][_0x10c1[34]])};_0xfcfbx1b[_0x10c1[66]]= qs[_0x10c1[67]](_0xfcfbx28[_0x10c1[58]][_0x10c1[67]]);_0xfcfbx1b[_0x10c1[68]]= qs[_0x10c1[59]](_[_0x10c1[69]](_0xfcfbx28[_0x10c1[58]],_0xfcfbx29[_0x10c1[59]]));if(_0xfcfbx28[_0x10c1[58]][_0x10c1[70]]){_0xfcfbx1b[_0x10c1[68]]= _[_0x10c1[73]](_0xfcfbx1b[_0x10c1[68]],{$or:_[_0x10c1[72]](_0xfcfbx1b[_0x10c1[61]],function(_0xfcfbx2a){var _0xfcfbx2b={};_0xfcfbx2b[_0xfcfbx2a]= {$like:_0x10c1[71]+ _0xfcfbx28[_0x10c1[58]][_0x10c1[70]]+ _0x10c1[71]};return _0xfcfbx2b})})};_0xfcfbx1b= _[_0x10c1[73]]({},_0xfcfbx1b,_0xfcfbx28[_0x10c1[74]]);return db[_0x10c1[56]][_0x10c1[76]](_0xfcfbx1b)[_0x10c1[45]](respondWithFilteredResult(_0xfcfbx15,_0xfcfbx1b,_0x10c1[53]))[_0x10c1[75]](handleError(_0xfcfbx15,null,_0x10c1[53]))};exports[_0x10c1[77]]= function(_0xfcfbx28,_0xfcfbx15){var _0xfcfbx1b={raw:false,where:{id:_0xfcfbx28[_0x10c1[79]][_0x10c1[78]]}},_0xfcfbx29={};_0xfcfbx29[_0x10c1[54]]= _[_0x10c1[57]](db[_0x10c1[56]][_0x10c1[55]]);_0xfcfbx29[_0x10c1[58]]= _[_0x10c1[57]](_0xfcfbx28[_0x10c1[58]]);_0xfcfbx29[_0x10c1[59]]= _[_0x10c1[60]](_0xfcfbx29[_0x10c1[54]],_0xfcfbx29[_0x10c1[58]]);_0xfcfbx1b[_0x10c1[61]]= _[_0x10c1[60]](_0xfcfbx29[_0x10c1[54]],qs[_0x10c1[62]](_0xfcfbx28[_0x10c1[58]][_0x10c1[62]]));_0xfcfbx1b[_0x10c1[61]]= (_0xfcfbx1b[_0x10c1[61]][_0x10c1[63]])?_0xfcfbx1b[_0x10c1[61]]:_0xfcfbx29[_0x10c1[54]];_0xfcfbx1b= _[_0x10c1[73]]({},_0xfcfbx1b,_0xfcfbx28[_0x10c1[74]]);return db[_0x10c1[56]][_0x10c1[80]](_0xfcfbx1b)[_0x10c1[45]](handleEntityNotFound(_0xfcfbx15,null,_0x10c1[77]))[_0x10c1[45]](respondWithResult(_0xfcfbx15,null,_0x10c1[77]))[_0x10c1[75]](handleError(_0xfcfbx15,null,_0x10c1[77]))};exports[_0x10c1[81]]= function(_0xfcfbx28,_0xfcfbx15){return db[_0x10c1[56]][_0x10c1[81]](_0xfcfbx28[_0x10c1[82]],{})[_0x10c1[45]](respondWithResult(_0xfcfbx15,201,_0x10c1[81]))[_0x10c1[75]](handleError(_0xfcfbx15,null,_0x10c1[81]))};exports[_0x10c1[46]]= function(_0xfcfbx28,_0xfcfbx15){if(_0xfcfbx28[_0x10c1[82]][_0x10c1[78]]){delete _0xfcfbx28[_0x10c1[82]][_0x10c1[78]]};return db[_0x10c1[56]][_0x10c1[80]]({where:{id:_0xfcfbx28[_0x10c1[79]][_0x10c1[78]]}})[_0x10c1[45]](handleEntityNotFound(_0xfcfbx15,null,_0x10c1[46]))[_0x10c1[45]](saveUpdates(_0xfcfbx28[_0x10c1[82]],null,_0x10c1[46]))[_0x10c1[45]](respondWithResult(_0xfcfbx15,null,_0x10c1[46]))[_0x10c1[75]](handleError(_0xfcfbx15,null,_0x10c1[46]))};exports[_0x10c1[48]]= function(_0xfcfbx28,_0xfcfbx15){return db[_0x10c1[56]][_0x10c1[80]]({where:{id:_0xfcfbx28[_0x10c1[79]][_0x10c1[78]]}})[_0x10c1[45]](handleEntityNotFound(_0xfcfbx15,null,_0x10c1[48]))[_0x10c1[45]](removeEntity(_0xfcfbx15,null,_0x10c1[48]))[_0x10c1[75]](handleError(_0xfcfbx15,null,_0x10c1[48]))};exports[_0x10c1[83]]= function(_0xfcfbx28,_0xfcfbx15){return db[_0x10c1[56]][_0x10c1[83]]()[_0x10c1[45]](respondWithResult(_0xfcfbx15,null,_0x10c1[83]))[_0x10c1[75]](handleError(_0xfcfbx15,null,_0x10c1[83]))}
\ No newline at end of file
+var _0x56cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x56cb[0];var jsonpatch=require(_0x56cb[1]);var rp=require(_0x56cb[2]);var moment=require(_0x56cb[3]);var BPromise=require(_0x56cb[4]);var util=require(_0x56cb[5]);var path=require(_0x56cb[6]);var sox=require(_0x56cb[7]);var ejs=require(_0x56cb[8]);var fs=require(_0x56cb[9]);var _=require(_0x56cb[10]);var squel=require(_0x56cb[11]);var crypto=require(_0x56cb[12]);var jsforce=require(_0x56cb[13]);var toCsv=require(_0x56cb[14]);var qs=require(_0x56cb[15]);var logger=require(_0x56cb[17])(_0x56cb[16]);var utils=require(_0x56cb[18]);var config=require(_0x56cb[19]);var db=require(_0x56cb[21])[_0x56cb[20]];function respondWithStatusCode(_0x4db5x15,_0x4db5x16,_0x4db5x17){_0x4db5x16= _0x4db5x16|| 204;return function(_0x4db5x18){if(_0x4db5x18){logger[_0x56cb[24]](_0x56cb[22],_0x4db5x17,_0x4db5x16,_0x56cb[23]);logger[_0x56cb[26]](_0x56cb[25],_0x4db5x17,_0x4db5x16,_0x56cb[23]);return _0x4db5x15[_0x56cb[27]](_0x4db5x16)};return _0x4db5x15[_0x56cb[29]](304)[_0x56cb[28]]()}}function respondWithResult(_0x4db5x15,_0x4db5x16,_0x4db5x17){_0x4db5x16= _0x4db5x16|| 200;return function(_0x4db5x18){if(_0x4db5x18){logger[_0x56cb[24]](_0x56cb[22],_0x4db5x17,_0x4db5x16,_0x56cb[30]);logger[_0x56cb[26]](_0x56cb[25],_0x4db5x17,_0x4db5x16,_0x56cb[30],JSON[_0x56cb[31]](_0x4db5x18));return _0x4db5x15[_0x56cb[29]](_0x4db5x16)[_0x56cb[32]](_0x4db5x18)};return _0x4db5x15[_0x56cb[29]](304)[_0x56cb[28]]()}}function respondWithFilteredResult(_0x4db5x15,_0x4db5x1b,_0x4db5x17){return function(_0x4db5x18){if(_0x4db5x18){var _0x4db5x1c=_0x4db5x18[_0x56cb[33]],_0x4db5x1d=_0x4db5x1b[_0x56cb[34]],_0x4db5x1e=_0x4db5x1b[_0x56cb[34]]+ _0x4db5x1b[_0x56cb[35]],_0x4db5x16;if(_0x4db5x1e>= _0x4db5x1c){_0x4db5x1e= _0x4db5x1c;_0x4db5x16= 200}else {_0x4db5x16= 206};_0x4db5x15[_0x56cb[29]](_0x4db5x16);logger[_0x56cb[24]](_0x56cb[22],_0x4db5x17,_0x4db5x16,_0x56cb[36]);logger[_0x56cb[26]](_0x56cb[25],_0x4db5x17,_0x4db5x16,_0x56cb[30],JSON[_0x56cb[31]](_0x4db5x18));return _0x4db5x15[_0x56cb[40]](_0x56cb[37],_0x4db5x1d+ _0x56cb[38]+ _0x4db5x1e+ _0x56cb[39]+ _0x4db5x1c)[_0x56cb[32]](_0x4db5x18)};return null}}function patchUpdates(_0x4db5x20){return function(_0x4db5x18){try{jsonpatch[_0x56cb[41]](_0x4db5x18,_0x4db5x20,true)}catch(err){return BPromise[_0x56cb[42]](err)};return _0x4db5x18[_0x56cb[43]]()}}function saveUpdates(_0x4db5x22,_0x4db5x16,_0x4db5x17){return function(_0x4db5x18){if(_0x4db5x18){return _0x4db5x18[_0x56cb[46]](_0x4db5x22)[_0x56cb[45]](function(_0x4db5x23){logger[_0x56cb[24]](_0x56cb[22],_0x4db5x17,_0x4db5x16,_0x56cb[44]);logger[_0x56cb[26]](_0x56cb[25],_0x4db5x17,_0x4db5x16,_0x56cb[44],JSON[_0x56cb[31]](_0x4db5x18));return _0x4db5x23})};return null}}function removeEntity(_0x4db5x15,_0x4db5x16,_0x4db5x17){return function(_0x4db5x18){if(_0x4db5x18){return _0x4db5x18[_0x56cb[48]]()[_0x56cb[45]](function(){logger[_0x56cb[24]](_0x56cb[22],_0x4db5x17,_0x4db5x16,_0x56cb[47]);logger[_0x56cb[26]](_0x56cb[25],_0x4db5x17,_0x4db5x16,_0x56cb[47],JSON[_0x56cb[31]](_0x4db5x18));_0x4db5x15[_0x56cb[29]](204)[_0x56cb[28]]()})}}}function handleEntityNotFound(_0x4db5x15,_0x4db5x16,_0x4db5x17){return function(_0x4db5x18){if(!_0x4db5x18){logger[_0x56cb[50]](_0x56cb[22],_0x4db5x17,404,_0x56cb[49]);_0x4db5x15[_0x56cb[29]](404)[_0x56cb[28]]();return null};return _0x4db5x18}}function handleError(_0x4db5x15,_0x4db5x16,_0x4db5x17){_0x4db5x16= _0x4db5x16|| 500;return function(_0x4db5x27){logger[_0x56cb[50]](_0x56cb[22],_0x4db5x17,_0x4db5x16,JSON[_0x56cb[31]](_0x4db5x27));delete _0x4db5x27[_0x56cb[51]];_0x4db5x15[_0x56cb[29]](_0x4db5x16)[_0x56cb[52]](_0x4db5x27)}}exports[_0x56cb[53]]= function(_0x4db5x28,_0x4db5x15){var _0x4db5x1b={},_0x4db5x29={};_0x4db5x29[_0x56cb[54]]= _[_0x56cb[57]](db[_0x56cb[56]][_0x56cb[55]]);_0x4db5x29[_0x56cb[58]]= _[_0x56cb[57]](_0x4db5x28[_0x56cb[58]]);_0x4db5x29[_0x56cb[59]]= _[_0x56cb[60]](_0x4db5x29[_0x56cb[54]],_0x4db5x29[_0x56cb[58]]);_0x4db5x1b[_0x56cb[61]]= _[_0x56cb[60]](_0x4db5x29[_0x56cb[54]],qs[_0x56cb[62]](_0x4db5x28[_0x56cb[58]][_0x56cb[62]]));_0x4db5x1b[_0x56cb[61]]= (_0x4db5x1b[_0x56cb[61]][_0x56cb[63]])?_0x4db5x1b[_0x56cb[61]]:_0x4db5x29[_0x56cb[54]];if(!_0x4db5x28[_0x56cb[58]][_0x56cb[65]](_0x56cb[64])){_0x4db5x1b[_0x56cb[35]]= qs[_0x56cb[35]](_0x4db5x28[_0x56cb[58]][_0x56cb[35]]);_0x4db5x1b[_0x56cb[34]]= qs[_0x56cb[34]](_0x4db5x28[_0x56cb[58]][_0x56cb[34]])};_0x4db5x1b[_0x56cb[66]]= qs[_0x56cb[67]](_0x4db5x28[_0x56cb[58]][_0x56cb[67]]);_0x4db5x1b[_0x56cb[68]]= qs[_0x56cb[59]](_[_0x56cb[69]](_0x4db5x28[_0x56cb[58]],_0x4db5x29[_0x56cb[59]]));if(_0x4db5x28[_0x56cb[58]][_0x56cb[70]]){_0x4db5x1b[_0x56cb[68]]= _[_0x56cb[73]](_0x4db5x1b[_0x56cb[68]],{$or:_[_0x56cb[72]](_0x4db5x1b[_0x56cb[61]],function(_0x4db5x2a){var _0x4db5x2b={};_0x4db5x2b[_0x4db5x2a]= {$like:_0x56cb[71]+ _0x4db5x28[_0x56cb[58]][_0x56cb[70]]+ _0x56cb[71]};return _0x4db5x2b})})};_0x4db5x1b= _[_0x56cb[73]]({},_0x4db5x1b,_0x4db5x28[_0x56cb[74]]);return db[_0x56cb[56]][_0x56cb[76]](_0x4db5x1b)[_0x56cb[45]](respondWithFilteredResult(_0x4db5x15,_0x4db5x1b,_0x56cb[53]))[_0x56cb[75]](handleError(_0x4db5x15,null,_0x56cb[53]))};exports[_0x56cb[77]]= function(_0x4db5x28,_0x4db5x15){var _0x4db5x1b={raw:false,where:{id:_0x4db5x28[_0x56cb[79]][_0x56cb[78]]}},_0x4db5x29={};_0x4db5x29[_0x56cb[54]]= _[_0x56cb[57]](db[_0x56cb[56]][_0x56cb[55]]);_0x4db5x29[_0x56cb[58]]= _[_0x56cb[57]](_0x4db5x28[_0x56cb[58]]);_0x4db5x29[_0x56cb[59]]= _[_0x56cb[60]](_0x4db5x29[_0x56cb[54]],_0x4db5x29[_0x56cb[58]]);_0x4db5x1b[_0x56cb[61]]= _[_0x56cb[60]](_0x4db5x29[_0x56cb[54]],qs[_0x56cb[62]](_0x4db5x28[_0x56cb[58]][_0x56cb[62]]));_0x4db5x1b[_0x56cb[61]]= (_0x4db5x1b[_0x56cb[61]][_0x56cb[63]])?_0x4db5x1b[_0x56cb[61]]:_0x4db5x29[_0x56cb[54]];_0x4db5x1b= _[_0x56cb[73]]({},_0x4db5x1b,_0x4db5x28[_0x56cb[74]]);return db[_0x56cb[56]][_0x56cb[80]](_0x4db5x1b)[_0x56cb[45]](handleEntityNotFound(_0x4db5x15,null,_0x56cb[77]))[_0x56cb[45]](respondWithResult(_0x4db5x15,null,_0x56cb[77]))[_0x56cb[75]](handleError(_0x4db5x15,null,_0x56cb[77]))};exports[_0x56cb[81]]= function(_0x4db5x28,_0x4db5x15){return db[_0x56cb[56]][_0x56cb[81]](_0x4db5x28[_0x56cb[82]],{})[_0x56cb[45]](respondWithResult(_0x4db5x15,201,_0x56cb[81]))[_0x56cb[75]](handleError(_0x4db5x15,null,_0x56cb[81]))};exports[_0x56cb[46]]= function(_0x4db5x28,_0x4db5x15){if(_0x4db5x28[_0x56cb[82]][_0x56cb[78]]){delete _0x4db5x28[_0x56cb[82]][_0x56cb[78]]};return db[_0x56cb[56]][_0x56cb[80]]({where:{id:_0x4db5x28[_0x56cb[79]][_0x56cb[78]]}})[_0x56cb[45]](handleEntityNotFound(_0x4db5x15,null,_0x56cb[46]))[_0x56cb[45]](saveUpdates(_0x4db5x28[_0x56cb[82]],null,_0x56cb[46]))[_0x56cb[45]](respondWithResult(_0x4db5x15,null,_0x56cb[46]))[_0x56cb[75]](handleError(_0x4db5x15,null,_0x56cb[46]))};exports[_0x56cb[48]]= function(_0x4db5x28,_0x4db5x15){return db[_0x56cb[56]][_0x56cb[80]]({where:{id:_0x4db5x28[_0x56cb[79]][_0x56cb[78]]}})[_0x56cb[45]](handleEntityNotFound(_0x4db5x15,null,_0x56cb[48]))[_0x56cb[45]](removeEntity(_0x4db5x15,null,_0x56cb[48]))[_0x56cb[75]](handleError(_0x4db5x15,null,_0x56cb[48]))};exports[_0x56cb[83]]= function(_0x4db5x28,_0x4db5x15){return db[_0x56cb[56]][_0x56cb[83]]()[_0x56cb[45]](respondWithResult(_0x4db5x15,null,_0x56cb[83]))[_0x56cb[75]](handleError(_0x4db5x15,null,_0x56cb[83]))}
\ No newline at end of file
index 5ee061a..a4ea003 100644 (file)
@@ -1 +1 @@
-var _0x78c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x66\x61\x78\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x78c9[0];var _=require(_0x78c9[1]);var util=require(_0x78c9[2]);var logger=require(_0x78c9[4])(_0x78c9[3]);var attributes=require(_0x78c9[5]);module[_0x78c9[6]]= function(_0x63b2x5,_0x63b2x6){return _0x63b2x5[_0x78c9[9]](_0x78c9[7],attributes,{tableName:_0x78c9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x5916=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x66\x61\x78\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x5916[0];var _=require(_0x5916[1]);var util=require(_0x5916[2]);var logger=require(_0x5916[4])(_0x5916[3]);var attributes=require(_0x5916[5]);module[_0x5916[6]]= function(_0xc144x5,_0xc144x6){return _0xc144x5[_0x5916[9]](_0x5916[7],attributes,{tableName:_0x5916[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 76fee25..8eb77c2 100644 (file)
@@ -1 +1 @@
-var _0x24f8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x24f8[0];var _=require(_0x24f8[1]);var util=require(_0x24f8[2]);var moment=require(_0x24f8[3]);var BPromise=require(_0x24f8[4]);var db=require(_0x24f8[6])[_0x24f8[5]];var utils=require(_0x24f8[7]);var logger=require(_0x24f8[9])(_0x24f8[8]);var jayson=require(_0x24f8[10]);var client=jayson[_0x24f8[12]][_0x24f8[11]]({port:9002});function respondWithRpcPromise(_0x888bxb,_0x888bxc,_0x888bxd){return  new BPromise(function(_0x888bxe,_0x888bxf){return client[_0x24f8[25]](_0x888bxb,_0x888bxd)[_0x24f8[24]](function(_0x888bx11){logger[_0x24f8[17]](_0x24f8[13],_0x888bxc,_0x24f8[16]);logger[_0x24f8[20]](_0x24f8[18],_0x888bxc,_0x24f8[16],JSON[_0x24f8[19]](_0x888bx11));if(_0x888bx11[_0x24f8[14]]){if(_0x888bx11[_0x24f8[14]][_0x24f8[21]]=== 500){logger[_0x24f8[14]](_0x24f8[13],_0x888bxc,_0x888bx11[_0x24f8[14]][_0x24f8[22]]);return _0x888bxf(_0x888bx11[_0x24f8[14]][_0x24f8[22]])};logger[_0x24f8[14]](_0x24f8[13],_0x888bxc,_0x888bx11[_0x24f8[14]][_0x24f8[22]]);return _0x888bxe(_0x888bx11[_0x24f8[14]][_0x24f8[22]])}else {logger[_0x24f8[17]](_0x24f8[13],_0x888bxc,_0x24f8[16]);_0x888bxe(_0x888bx11[_0x24f8[23]][_0x24f8[22]])}})[_0x24f8[15]](function(_0x888bx10){logger[_0x24f8[14]](_0x24f8[13],_0x888bxc,_0x888bx10);_0x888bxf(_0x888bx10)})})}
\ No newline at end of file
+var _0x7fa1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7fa1[0];var _=require(_0x7fa1[1]);var util=require(_0x7fa1[2]);var moment=require(_0x7fa1[3]);var BPromise=require(_0x7fa1[4]);var db=require(_0x7fa1[6])[_0x7fa1[5]];var utils=require(_0x7fa1[7]);var logger=require(_0x7fa1[9])(_0x7fa1[8]);var jayson=require(_0x7fa1[10]);var client=jayson[_0x7fa1[12]][_0x7fa1[11]]({port:9002});function respondWithRpcPromise(_0xea17xb,_0xea17xc,_0xea17xd){return  new BPromise(function(_0xea17xe,_0xea17xf){return client[_0x7fa1[25]](_0xea17xb,_0xea17xd)[_0x7fa1[24]](function(_0xea17x11){logger[_0x7fa1[17]](_0x7fa1[13],_0xea17xc,_0x7fa1[16]);logger[_0x7fa1[20]](_0x7fa1[18],_0xea17xc,_0x7fa1[16],JSON[_0x7fa1[19]](_0xea17x11));if(_0xea17x11[_0x7fa1[14]]){if(_0xea17x11[_0x7fa1[14]][_0x7fa1[21]]=== 500){logger[_0x7fa1[14]](_0x7fa1[13],_0xea17xc,_0xea17x11[_0x7fa1[14]][_0x7fa1[22]]);return _0xea17xf(_0xea17x11[_0x7fa1[14]][_0x7fa1[22]])};logger[_0x7fa1[14]](_0x7fa1[13],_0xea17xc,_0xea17x11[_0x7fa1[14]][_0x7fa1[22]]);return _0xea17xe(_0xea17x11[_0x7fa1[14]][_0x7fa1[22]])}else {logger[_0x7fa1[17]](_0x7fa1[13],_0xea17xc,_0x7fa1[16]);_0xea17xe(_0xea17x11[_0x7fa1[23]][_0x7fa1[22]])}})[_0x7fa1[15]](function(_0xea17x10){logger[_0x7fa1[14]](_0x7fa1[13],_0xea17xc,_0xea17x10);_0xea17xf(_0xea17x10)})})}
\ No newline at end of file
index cb9fa8c..1f6251d 100644 (file)
@@ -1 +1 @@
-var _0x9e6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9e6d[0];var multer=require(_0x9e6d[1]);var util=require(_0x9e6d[2]);var path=require(_0x9e6d[3]);var express=require(_0x9e6d[4]);var router=express.Router();var auth=require(_0x9e6d[5]);var config=require(_0x9e6d[6]);var controller=require(_0x9e6d[7]);router[_0x9e6d[11]](_0x9e6d[8],auth[_0x9e6d[9]](),controller[_0x9e6d[10]]);router[_0x9e6d[11]](_0x9e6d[12],auth[_0x9e6d[9]](),controller[_0x9e6d[13]]);router[_0x9e6d[11]](_0x9e6d[14],auth[_0x9e6d[9]](),controller[_0x9e6d[15]]);router[_0x9e6d[17]](_0x9e6d[8],auth[_0x9e6d[9]](),controller[_0x9e6d[16]]);router[_0x9e6d[19]](_0x9e6d[14],auth[_0x9e6d[9]](),controller[_0x9e6d[18]]);router[_0x9e6d[21]](_0x9e6d[14],auth[_0x9e6d[9]](),controller[_0x9e6d[20]]);module[_0x9e6d[22]]= router
\ No newline at end of file
+var _0x3796=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3796[0];var multer=require(_0x3796[1]);var util=require(_0x3796[2]);var path=require(_0x3796[3]);var express=require(_0x3796[4]);var router=express.Router();var auth=require(_0x3796[5]);var config=require(_0x3796[6]);var controller=require(_0x3796[7]);router[_0x3796[11]](_0x3796[8],auth[_0x3796[9]](),controller[_0x3796[10]]);router[_0x3796[11]](_0x3796[12],auth[_0x3796[9]](),controller[_0x3796[13]]);router[_0x3796[11]](_0x3796[14],auth[_0x3796[9]](),controller[_0x3796[15]]);router[_0x3796[17]](_0x3796[8],auth[_0x3796[9]](),controller[_0x3796[16]]);router[_0x3796[19]](_0x3796[14],auth[_0x3796[9]](),controller[_0x3796[18]]);router[_0x3796[21]](_0x3796[14],auth[_0x3796[9]](),controller[_0x3796[20]]);module[_0x3796[22]]= router
\ No newline at end of file
index 3fd1e24..4d72313 100644 (file)
@@ -1 +1 @@
-var _0xfb9f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfb9f[0];var multer=require(_0xfb9f[1]);var util=require(_0xfb9f[2]);var path=require(_0xfb9f[3]);var express=require(_0xfb9f[4]);var router=express.Router();var auth=require(_0xfb9f[5]);var config=require(_0xfb9f[6]);var controller=require(_0xfb9f[7]);router[_0xfb9f[11]](_0xfb9f[8],auth[_0xfb9f[9]](),controller[_0xfb9f[10]]);router[_0xfb9f[11]](_0xfb9f[12],auth[_0xfb9f[9]](),controller[_0xfb9f[13]]);router[_0xfb9f[11]](_0xfb9f[14],auth[_0xfb9f[9]](),controller[_0xfb9f[15]]);router[_0xfb9f[11]](_0xfb9f[16],auth[_0xfb9f[9]](),controller[_0xfb9f[17]]);router[_0xfb9f[19]](_0xfb9f[8],auth[_0xfb9f[9]](),controller[_0xfb9f[18]]);router[_0xfb9f[19]](_0xfb9f[14],auth[_0xfb9f[9]](),controller[_0xfb9f[20]]);router[_0xfb9f[22]](_0xfb9f[12],auth[_0xfb9f[9]](),controller[_0xfb9f[21]]);router[_0xfb9f[24]](_0xfb9f[12],auth[_0xfb9f[9]](),controller[_0xfb9f[23]]);module[_0xfb9f[25]]= router
\ No newline at end of file
+var _0xdc79=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdc79[0];var multer=require(_0xdc79[1]);var util=require(_0xdc79[2]);var path=require(_0xdc79[3]);var express=require(_0xdc79[4]);var router=express.Router();var auth=require(_0xdc79[5]);var config=require(_0xdc79[6]);var controller=require(_0xdc79[7]);router[_0xdc79[11]](_0xdc79[8],auth[_0xdc79[9]](),controller[_0xdc79[10]]);router[_0xdc79[11]](_0xdc79[12],auth[_0xdc79[9]](),controller[_0xdc79[13]]);router[_0xdc79[11]](_0xdc79[14],auth[_0xdc79[9]](),controller[_0xdc79[15]]);router[_0xdc79[11]](_0xdc79[16],auth[_0xdc79[9]](),controller[_0xdc79[17]]);router[_0xdc79[19]](_0xdc79[8],auth[_0xdc79[9]](),controller[_0xdc79[18]]);router[_0xdc79[19]](_0xdc79[14],auth[_0xdc79[9]](),controller[_0xdc79[20]]);router[_0xdc79[22]](_0xdc79[12],auth[_0xdc79[9]](),controller[_0xdc79[21]]);router[_0xdc79[24]](_0xdc79[12],auth[_0xdc79[9]](),controller[_0xdc79[23]]);module[_0xdc79[25]]= router
\ No newline at end of file
index 769c20e..0c9bd75 100644 (file)
@@ -1 +1 @@
-var _0x2227=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69"];_0x2227[0];var Sequelize=require(_0x2227[1]);module[_0x2227[2]]= {name:{type:Sequelize[_0x2227[3]]},description:{type:Sequelize[_0x2227[3]]},username:{type:Sequelize[_0x2227[3]],unique:_0x2227[4]},apiKey:{type:Sequelize[_0x2227[3]]},remoteUri:{type:Sequelize[_0x2227[3]],unique:_0x2227[5]},serverUrl:{type:Sequelize[_0x2227[3]]}}
\ No newline at end of file
+var _0x4384=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69"];_0x4384[0];var Sequelize=require(_0x4384[1]);module[_0x4384[2]]= {name:{type:Sequelize[_0x4384[3]]},description:{type:Sequelize[_0x4384[3]]},username:{type:Sequelize[_0x4384[3]],unique:_0x4384[4]},apiKey:{type:Sequelize[_0x4384[3]]},remoteUri:{type:Sequelize[_0x4384[3]],unique:_0x4384[5]},serverUrl:{type:Sequelize[_0x4384[3]]}}
\ No newline at end of file
index 659c68d..665bc19 100644 (file)
@@ -1 +1 @@
-var _0xd38e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x73\x75\x62\x6A\x65\x63\x74","\x61\x67\x65\x6E\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x67\x72\x6F\x75\x70","\x73\x6F\x75\x72\x63\x65","\x74\x69\x63\x6B\x65\x74\x5F\x74\x79\x70\x65","\x63\x6F\x6D\x70\x61\x6E\x79","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x6C\x61\x62\x65\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x63\x68\x6F\x69\x63\x65\x73","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x47\x45\x54","\x25\x73\x25\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x70\x69\x2F\x76\x32\x2F\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73","\x66\x6F\x72\x6D\x61\x74","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x25\x73\x3A\x58","\x61\x70\x69\x4B\x65\x79"];_0xd38e[0];var jsonpatch=require(_0xd38e[1]);var rp=require(_0xd38e[2]);var moment=require(_0xd38e[3]);var BPromise=require(_0xd38e[4]);var util=require(_0xd38e[5]);var path=require(_0xd38e[6]);var sox=require(_0xd38e[7]);var ejs=require(_0xd38e[8]);var fs=require(_0xd38e[9]);var _=require(_0xd38e[10]);var squel=require(_0xd38e[11]);var crypto=require(_0xd38e[12]);var jsforce=require(_0xd38e[13]);var toCsv=require(_0xd38e[14]);var qs=require(_0xd38e[15]);var logger=require(_0xd38e[17])(_0xd38e[16]);var utils=require(_0xd38e[18]);var config=require(_0xd38e[19]);var db=require(_0xd38e[21])[_0xd38e[20]];var integrations=require(_0xd38e[22]);var jayson=require(_0xd38e[23]);var client=jayson[_0xd38e[25]][_0xd38e[24]]({port:9002});function respondWithRpcPromise(_0xa3cdx18,_0xa3cdx19,_0xa3cdx1a){return  new BPromise(function(_0xa3cdx1b,_0xa3cdx1c){return client[_0xd38e[38]](_0xa3cdx18,_0xa3cdx1a)[_0xd38e[37]](function(_0xa3cdx1e){logger[_0xd38e[30]](_0xd38e[26],_0xa3cdx19,_0xd38e[29]);logger[_0xd38e[33]](_0xd38e[31],_0xa3cdx19,_0xd38e[29],JSON[_0xd38e[32]](_0xa3cdx1e));if(_0xa3cdx1e[_0xd38e[27]]){if(_0xa3cdx1e[_0xd38e[27]][_0xd38e[34]]=== 500){logger[_0xd38e[27]](_0xd38e[26],_0xa3cdx19,_0xa3cdx1e[_0xd38e[27]][_0xd38e[35]]);return _0xa3cdx1c(_0xa3cdx1e[_0xd38e[27]][_0xd38e[35]])};logger[_0xd38e[27]](_0xd38e[26],_0xa3cdx19,_0xa3cdx1e[_0xd38e[27]][_0xd38e[35]]);return _0xa3cdx1b(_0xa3cdx1e[_0xd38e[27]][_0xd38e[35]])}else {logger[_0xd38e[30]](_0xd38e[26],_0xa3cdx19,_0xd38e[29]);_0xa3cdx1b(_0xa3cdx1e[_0xd38e[36]][_0xd38e[35]])}})[_0xd38e[28]](function(_0xa3cdx1d){logger[_0xd38e[27]](_0xd38e[26],_0xa3cdx19,_0xa3cdx1d);_0xa3cdx1c(_0xa3cdx1d)})})}function respondWithStatusCode(_0xa3cdx1e,_0xa3cdx20,_0xa3cdx19){_0xa3cdx20= _0xa3cdx20|| 204;return function(_0xa3cdx21){if(_0xa3cdx21){logger[_0xd38e[30]](_0xd38e[31],_0xa3cdx19,_0xa3cdx20,_0xd38e[39]);logger[_0xd38e[33]](_0xd38e[40],_0xa3cdx19,_0xa3cdx20,_0xd38e[39]);return _0xa3cdx1e[_0xd38e[41]](_0xa3cdx20)};return _0xa3cdx1e[_0xd38e[43]](304)[_0xd38e[42]]()}}function respondWithResult(_0xa3cdx1e,_0xa3cdx20,_0xa3cdx19){_0xa3cdx20= _0xa3cdx20|| 200;return function(_0xa3cdx21){if(_0xa3cdx21){logger[_0xd38e[30]](_0xd38e[31],_0xa3cdx19,_0xa3cdx20,_0xd38e[44]);logger[_0xd38e[33]](_0xd38e[40],_0xa3cdx19,_0xa3cdx20,_0xd38e[44],JSON[_0xd38e[32]](_0xa3cdx21));return _0xa3cdx1e[_0xd38e[43]](_0xa3cdx20)[_0xd38e[45]](_0xa3cdx21)};return _0xa3cdx1e[_0xd38e[43]](304)[_0xd38e[42]]()}}function respondWithFilteredResult(_0xa3cdx1e,_0xa3cdx24,_0xa3cdx19){return function(_0xa3cdx21){if(_0xa3cdx21){var _0xa3cdx25=_0xa3cdx21[_0xd38e[46]],_0xa3cdx26=_0xa3cdx24[_0xd38e[47]],_0xa3cdx27=_0xa3cdx24[_0xd38e[47]]+ _0xa3cdx24[_0xd38e[48]],_0xa3cdx20;if(_0xa3cdx27>= _0xa3cdx25){_0xa3cdx27= _0xa3cdx25;_0xa3cdx20= 200}else {_0xa3cdx20= 206};_0xa3cdx1e[_0xd38e[43]](_0xa3cdx20);logger[_0xd38e[30]](_0xd38e[31],_0xa3cdx19,_0xa3cdx20,_0xd38e[49]);logger[_0xd38e[33]](_0xd38e[40],_0xa3cdx19,_0xa3cdx20,_0xd38e[44],JSON[_0xd38e[32]](_0xa3cdx21));return _0xa3cdx1e[_0xd38e[53]](_0xd38e[50],_0xa3cdx26+ _0xd38e[51]+ _0xa3cdx27+ _0xd38e[52]+ _0xa3cdx25)[_0xd38e[45]](_0xa3cdx21)};return null}}function patchUpdates(_0xa3cdx29){return function(_0xa3cdx21){try{jsonpatch[_0xd38e[54]](_0xa3cdx21,_0xa3cdx29,true)}catch(err){return BPromise[_0xd38e[55]](err)};return _0xa3cdx21[_0xd38e[56]]()}}function saveUpdates(_0xa3cdx2b,_0xa3cdx20,_0xa3cdx19){return function(_0xa3cdx21){if(_0xa3cdx21){return _0xa3cdx21[_0xd38e[58]](_0xa3cdx2b)[_0xd38e[37]](function(_0xa3cdx2c){logger[_0xd38e[30]](_0xd38e[31],_0xa3cdx19,_0xa3cdx20,_0xd38e[57]);logger[_0xd38e[33]](_0xd38e[40],_0xa3cdx19,_0xa3cdx20,_0xd38e[57],JSON[_0xd38e[32]](_0xa3cdx21));return _0xa3cdx2c})};return null}}function removeEntity(_0xa3cdx1e,_0xa3cdx20,_0xa3cdx19){return function(_0xa3cdx21){if(_0xa3cdx21){return _0xa3cdx21[_0xd38e[60]]()[_0xd38e[37]](function(){logger[_0xd38e[30]](_0xd38e[31],_0xa3cdx19,_0xa3cdx20,_0xd38e[59]);logger[_0xd38e[33]](_0xd38e[40],_0xa3cdx19,_0xa3cdx20,_0xd38e[59],JSON[_0xd38e[32]](_0xa3cdx21));_0xa3cdx1e[_0xd38e[43]](204)[_0xd38e[42]]()})}}}function handleEntityNotFound(_0xa3cdx1e,_0xa3cdx20,_0xa3cdx19){return function(_0xa3cdx21){if(!_0xa3cdx21){logger[_0xd38e[27]](_0xd38e[31],_0xa3cdx19,404,_0xd38e[61]);_0xa3cdx1e[_0xd38e[43]](404)[_0xd38e[42]]();return null};return _0xa3cdx21}}function handleError(_0xa3cdx1e,_0xa3cdx20,_0xa3cdx19){_0xa3cdx20= _0xa3cdx20|| 500;return function(_0xa3cdx1d){logger[_0xd38e[27]](_0xd38e[31],_0xa3cdx19,_0xa3cdx20,JSON[_0xd38e[32]](_0xa3cdx1d));delete _0xa3cdx1d[_0xd38e[62]];_0xa3cdx1e[_0xd38e[43]](_0xa3cdx20)[_0xd38e[63]](_0xa3cdx1d)}}exports[_0xd38e[64]]= function(_0xa3cdx1a,_0xa3cdx1e){var _0xa3cdx24={},_0xa3cdx30={};_0xa3cdx30[_0xd38e[65]]= _[_0xd38e[68]](db[_0xd38e[67]][_0xd38e[66]]);_0xa3cdx30[_0xd38e[69]]= _[_0xd38e[68]](_0xa3cdx1a[_0xd38e[69]]);_0xa3cdx30[_0xd38e[70]]= _[_0xd38e[71]](_0xa3cdx30[_0xd38e[65]],_0xa3cdx30[_0xd38e[69]]);_0xa3cdx24[_0xd38e[72]]= _[_0xd38e[71]](_0xa3cdx30[_0xd38e[65]],qs[_0xd38e[73]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[73]]));_0xa3cdx24[_0xd38e[72]]= (_0xa3cdx24[_0xd38e[72]][_0xd38e[74]])?_0xa3cdx24[_0xd38e[72]]:_0xa3cdx30[_0xd38e[65]];if(!_0xa3cdx1a[_0xd38e[69]][_0xd38e[76]](_0xd38e[75])){_0xa3cdx24[_0xd38e[48]]= qs[_0xd38e[48]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[48]]);_0xa3cdx24[_0xd38e[47]]= qs[_0xd38e[47]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[47]])};_0xa3cdx24[_0xd38e[77]]= qs[_0xd38e[78]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[78]]);_0xa3cdx24[_0xd38e[79]]= qs[_0xd38e[70]](_[_0xd38e[80]](_0xa3cdx1a[_0xd38e[69]],_0xa3cdx30[_0xd38e[70]]));if(_0xa3cdx1a[_0xd38e[69]][_0xd38e[81]]){_0xa3cdx24[_0xd38e[79]]= _[_0xd38e[84]](_0xa3cdx24[_0xd38e[79]],{$or:_[_0xd38e[83]](_0xa3cdx24[_0xd38e[72]],function(_0xa3cdx31){var _0xa3cdx32={};_0xa3cdx32[_0xa3cdx31]= {$like:_0xd38e[82]+ _0xa3cdx1a[_0xd38e[69]][_0xd38e[81]]+ _0xd38e[82]};return _0xa3cdx32})})};_0xa3cdx24= _[_0xd38e[84]]({},_0xa3cdx24,_0xa3cdx1a[_0xd38e[85]]);return db[_0xd38e[67]][_0xd38e[86]](_0xa3cdx24)[_0xd38e[37]](respondWithFilteredResult(_0xa3cdx1e,_0xa3cdx24,_0xd38e[64]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[64]))};exports[_0xd38e[87]]= function(_0xa3cdx1a,_0xa3cdx1e){var _0xa3cdx24={raw:false,where:{id:_0xa3cdx1a[_0xd38e[89]][_0xd38e[88]]}},_0xa3cdx30={};_0xa3cdx30[_0xd38e[65]]= _[_0xd38e[68]](db[_0xd38e[67]][_0xd38e[66]]);_0xa3cdx30[_0xd38e[69]]= _[_0xd38e[68]](_0xa3cdx1a[_0xd38e[69]]);_0xa3cdx30[_0xd38e[70]]= _[_0xd38e[71]](_0xa3cdx30[_0xd38e[65]],_0xa3cdx30[_0xd38e[69]]);_0xa3cdx24[_0xd38e[72]]= _[_0xd38e[71]](_0xa3cdx30[_0xd38e[65]],qs[_0xd38e[73]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[73]]));_0xa3cdx24[_0xd38e[72]]= (_0xa3cdx24[_0xd38e[72]][_0xd38e[74]])?_0xa3cdx24[_0xd38e[72]]:_0xa3cdx30[_0xd38e[65]];_0xa3cdx24= _[_0xd38e[84]]({},_0xa3cdx24,_0xa3cdx1a[_0xd38e[85]]);return db[_0xd38e[67]][_0xd38e[90]](_0xa3cdx24)[_0xd38e[37]](handleEntityNotFound(_0xa3cdx1e,null,_0xd38e[87]))[_0xd38e[37]](respondWithResult(_0xa3cdx1e,null,_0xd38e[87]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[87]))};exports[_0xd38e[91]]= function(_0xa3cdx1a,_0xa3cdx1e){return db[_0xd38e[67]][_0xd38e[91]](_0xa3cdx1a[_0xd38e[92]],{})[_0xd38e[37]](respondWithResult(_0xa3cdx1e,201,_0xd38e[91]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[91]))};exports[_0xd38e[58]]= function(_0xa3cdx1a,_0xa3cdx1e){if(_0xa3cdx1a[_0xd38e[92]][_0xd38e[88]]){delete _0xa3cdx1a[_0xd38e[92]][_0xd38e[88]]};return db[_0xd38e[67]][_0xd38e[90]]({where:{id:_0xa3cdx1a[_0xd38e[89]][_0xd38e[88]]}})[_0xd38e[37]](handleEntityNotFound(_0xa3cdx1e,null,_0xd38e[58]))[_0xd38e[37]](saveUpdates(_0xa3cdx1a[_0xd38e[92]],null,_0xd38e[58]))[_0xd38e[37]](respondWithResult(_0xa3cdx1e,null,_0xd38e[58]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[58]))};exports[_0xd38e[60]]= function(_0xa3cdx1a,_0xa3cdx1e){return db[_0xd38e[67]][_0xd38e[90]]({where:{id:_0xa3cdx1a[_0xd38e[89]][_0xd38e[88]]}})[_0xd38e[37]](handleEntityNotFound(_0xa3cdx1e,null,_0xd38e[60]))[_0xd38e[37]](removeEntity(_0xa3cdx1e,null,_0xd38e[60]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[60]))};exports[_0xd38e[93]]= function(_0xa3cdx1a,_0xa3cdx21,_0xa3cdx33){var _0xa3cdx24={};var _0xa3cdx30={};var _0xa3cdx34;var _0xa3cdx25;return db[_0xd38e[67]][_0xd38e[95]]({where:{id:_0xa3cdx1a[_0xd38e[89]][_0xd38e[88]]}})[_0xd38e[37]](handleEntityNotFound(_0xa3cdx21,null,_0xd38e[93]))[_0xd38e[37]](function(_0xa3cdx21){if(_0xa3cdx21){_0xa3cdx34= _0xa3cdx21;_0xa3cdx30[_0xd38e[65]]= _[_0xd38e[68]](db[_0xd38e[94]][_0xd38e[66]]);_0xa3cdx30[_0xd38e[69]]= _[_0xd38e[68]](_0xa3cdx1a[_0xd38e[69]]);_0xa3cdx30[_0xd38e[70]]= _[_0xd38e[71]](_0xa3cdx30[_0xd38e[65]],_0xa3cdx30[_0xd38e[69]]);_0xa3cdx24[_0xd38e[72]]= _[_0xd38e[71]](_0xa3cdx30[_0xd38e[65]],qs[_0xd38e[73]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[73]]));_0xa3cdx24[_0xd38e[72]]= (_0xa3cdx24[_0xd38e[72]][_0xd38e[74]])?_0xa3cdx24[_0xd38e[72]]:_0xa3cdx30[_0xd38e[65]];_0xa3cdx24[_0xd38e[77]]= qs[_0xd38e[78]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[78]]);_0xa3cdx24[_0xd38e[79]]= qs[_0xd38e[70]](_[_0xd38e[80]](_0xa3cdx1a[_0xd38e[69]],_0xa3cdx30[_0xd38e[70]]));if(_0xa3cdx1a[_0xd38e[69]][_0xd38e[81]]){_0xa3cdx24[_0xd38e[79]]= _[_0xd38e[84]](_0xa3cdx24[_0xd38e[79]],{$or:_[_0xd38e[83]](_0xa3cdx24[_0xd38e[72]],function(_0xa3cdx31){var _0xa3cdx32={};_0xa3cdx32[_0xa3cdx31]= {$like:_0xd38e[82]+ _0xa3cdx1a[_0xd38e[69]][_0xd38e[81]]+ _0xd38e[82]};return _0xa3cdx32})})};_0xa3cdx24= _[_0xd38e[84]]({},_0xa3cdx24,_0xa3cdx1a[_0xd38e[85]]);return _0xa3cdx34[_0xd38e[93]](_0xa3cdx24)}})[_0xd38e[37]](function(_0xa3cdx36){if(_0xa3cdx36){_0xa3cdx25= _0xa3cdx36[_0xd38e[74]];if(!_0xa3cdx1a[_0xd38e[69]][_0xd38e[76]](_0xd38e[75])){_0xa3cdx24[_0xd38e[48]]= qs[_0xd38e[48]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[48]]);_0xa3cdx24[_0xd38e[47]]= qs[_0xd38e[47]](_0xa3cdx1a[_0xd38e[69]][_0xd38e[47]])};return _0xa3cdx34[_0xd38e[93]](_0xa3cdx24)}})[_0xd38e[37]](function(_0xa3cdx35){return _0xa3cdx35?{count:_0xa3cdx25,rows:_0xa3cdx35}:null})[_0xd38e[37]](respondWithResult(_0xa3cdx21,null,_0xd38e[93]))[_0xd38e[28]](handleError(_0xa3cdx21,null,_0xd38e[93]))};exports[_0xd38e[96]]= function(_0xa3cdx1a,_0xa3cdx1e,_0xa3cdx33){if(_0xa3cdx1a[_0xd38e[92]][_0xd38e[88]]){delete _0xa3cdx1a[_0xd38e[92]][_0xd38e[88]]};return db[_0xd38e[67]][_0xd38e[95]]({where:{id:_0xa3cdx1a[_0xd38e[89]][_0xd38e[88]]}})[_0xd38e[37]](handleEntityNotFound(_0xa3cdx1e,null,_0xd38e[96]))[_0xd38e[37]](function(_0xa3cdx21){if(_0xa3cdx21){_0xa3cdx1a[_0xd38e[92]][_0xd38e[97]]= _0xa3cdx21[_0xd38e[88]];_0xa3cdx1a[_0xd38e[92]][_0xd38e[98]]= integrations[_0xd38e[101]](_0xa3cdx1a[_0xd38e[92]][_0xd38e[99]],_0xa3cdx1a[_0xd38e[92]][_0xd38e[100]]);_0xa3cdx1a[_0xd38e[92]][_0xd38e[102]]= integrations[_0xd38e[103]](_0xa3cdx1a[_0xd38e[92]][_0xd38e[99]],_0xa3cdx1a[_0xd38e[92]][_0xd38e[100]]);return db[_0xd38e[94]][_0xd38e[91]](_0xa3cdx1a[_0xd38e[92]],{include:[{model:db[_0xd38e[104]],as:_0xd38e[98]},{model:db[_0xd38e[104]],as:_0xd38e[102]}]})};return null})[_0xd38e[37]](respondWithResult(_0xa3cdx1e,null,_0xd38e[96]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[96]))};exports[_0xd38e[105]]= function(_0xa3cdx1a,_0xa3cdx1e,_0xa3cdx33){return db[_0xd38e[67]][_0xd38e[95]]({where:{id:_0xa3cdx1a[_0xd38e[89]][_0xd38e[88]]},attributes:[_0xd38e[88],_0xd38e[123],_0xd38e[129]]})[_0xd38e[37]](handleEntityNotFound(_0xa3cdx1e,null,_0xd38e[105]))[_0xd38e[37]](function(_0xa3cdx21){if(_0xa3cdx21){return rp({method:_0xd38e[121],uri:util[_0xd38e[125]](_0xd38e[122],_0xa3cdx21[_0xd38e[123]],_0xd38e[124]),headers:{Authorization:util[_0xd38e[125]](_0xd38e[126], new Buffer(util[_0xd38e[125]](_0xd38e[128],_0xa3cdx21[_0xd38e[129]])).toString(_0xd38e[127]))},json:true})}})[_0xd38e[37]](function(_0xa3cdx36){if(_0xa3cdx36){var _0xa3cdx37=[_0xd38e[106],_0xd38e[107],_0xd38e[108],_0xd38e[109],_0xd38e[43],_0xd38e[110],_0xd38e[111],_0xd38e[112],_0xd38e[113],_0xd38e[111],_0xd38e[114]];_[_0xd38e[116]](_0xa3cdx36,function(_0xa3cdx38){return _0xa3cdx37[_0xd38e[115]](_0xa3cdx38[_0xd38e[62]])});return {count:_0xa3cdx36[_0xd38e[74]],rows:_[_0xd38e[83]](_0xa3cdx36,function(_0xa3cdx21){return {id:_0xa3cdx21[_0xd38e[62]],name:_0xa3cdx21[_0xd38e[117]],custom:!_0xa3cdx21[_0xd38e[118]],options:_0xa3cdx21[_0xd38e[119]]?_[_0xd38e[83]](_0xa3cdx21[_0xd38e[119]],function(_0xa3cdx39){return {name:_[_0xd38e[120]](_0xa3cdx39),value:_0xa3cdx39}}):[]}})}}})[_0xd38e[37]](respondWithResult(_0xa3cdx1e,null,_0xd38e[105]))[_0xd38e[28]](handleError(_0xa3cdx1e,null,_0xd38e[105]))}
\ No newline at end of file
+var _0xcf5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x73\x75\x62\x6A\x65\x63\x74","\x61\x67\x65\x6E\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x67\x72\x6F\x75\x70","\x73\x6F\x75\x72\x63\x65","\x74\x69\x63\x6B\x65\x74\x5F\x74\x79\x70\x65","\x63\x6F\x6D\x70\x61\x6E\x79","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x6C\x61\x62\x65\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x63\x68\x6F\x69\x63\x65\x73","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x47\x45\x54","\x25\x73\x25\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x70\x69\x2F\x76\x32\x2F\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73","\x66\x6F\x72\x6D\x61\x74","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x25\x73\x3A\x58","\x61\x70\x69\x4B\x65\x79"];_0xcf5d[0];var jsonpatch=require(_0xcf5d[1]);var rp=require(_0xcf5d[2]);var moment=require(_0xcf5d[3]);var BPromise=require(_0xcf5d[4]);var util=require(_0xcf5d[5]);var path=require(_0xcf5d[6]);var sox=require(_0xcf5d[7]);var ejs=require(_0xcf5d[8]);var fs=require(_0xcf5d[9]);var _=require(_0xcf5d[10]);var squel=require(_0xcf5d[11]);var crypto=require(_0xcf5d[12]);var jsforce=require(_0xcf5d[13]);var toCsv=require(_0xcf5d[14]);var qs=require(_0xcf5d[15]);var logger=require(_0xcf5d[17])(_0xcf5d[16]);var utils=require(_0xcf5d[18]);var config=require(_0xcf5d[19]);var db=require(_0xcf5d[21])[_0xcf5d[20]];var integrations=require(_0xcf5d[22]);var jayson=require(_0xcf5d[23]);var client=jayson[_0xcf5d[25]][_0xcf5d[24]]({port:9002});function respondWithRpcPromise(_0x7653x18,_0x7653x19,_0x7653x1a){return  new BPromise(function(_0x7653x1b,_0x7653x1c){return client[_0xcf5d[38]](_0x7653x18,_0x7653x1a)[_0xcf5d[37]](function(_0x7653x1e){logger[_0xcf5d[30]](_0xcf5d[26],_0x7653x19,_0xcf5d[29]);logger[_0xcf5d[33]](_0xcf5d[31],_0x7653x19,_0xcf5d[29],JSON[_0xcf5d[32]](_0x7653x1e));if(_0x7653x1e[_0xcf5d[27]]){if(_0x7653x1e[_0xcf5d[27]][_0xcf5d[34]]=== 500){logger[_0xcf5d[27]](_0xcf5d[26],_0x7653x19,_0x7653x1e[_0xcf5d[27]][_0xcf5d[35]]);return _0x7653x1c(_0x7653x1e[_0xcf5d[27]][_0xcf5d[35]])};logger[_0xcf5d[27]](_0xcf5d[26],_0x7653x19,_0x7653x1e[_0xcf5d[27]][_0xcf5d[35]]);return _0x7653x1b(_0x7653x1e[_0xcf5d[27]][_0xcf5d[35]])}else {logger[_0xcf5d[30]](_0xcf5d[26],_0x7653x19,_0xcf5d[29]);_0x7653x1b(_0x7653x1e[_0xcf5d[36]][_0xcf5d[35]])}})[_0xcf5d[28]](function(_0x7653x1d){logger[_0xcf5d[27]](_0xcf5d[26],_0x7653x19,_0x7653x1d);_0x7653x1c(_0x7653x1d)})})}function respondWithStatusCode(_0x7653x1e,_0x7653x20,_0x7653x19){_0x7653x20= _0x7653x20|| 204;return function(_0x7653x21){if(_0x7653x21){logger[_0xcf5d[30]](_0xcf5d[31],_0x7653x19,_0x7653x20,_0xcf5d[39]);logger[_0xcf5d[33]](_0xcf5d[40],_0x7653x19,_0x7653x20,_0xcf5d[39]);return _0x7653x1e[_0xcf5d[41]](_0x7653x20)};return _0x7653x1e[_0xcf5d[43]](304)[_0xcf5d[42]]()}}function respondWithResult(_0x7653x1e,_0x7653x20,_0x7653x19){_0x7653x20= _0x7653x20|| 200;return function(_0x7653x21){if(_0x7653x21){logger[_0xcf5d[30]](_0xcf5d[31],_0x7653x19,_0x7653x20,_0xcf5d[44]);logger[_0xcf5d[33]](_0xcf5d[40],_0x7653x19,_0x7653x20,_0xcf5d[44],JSON[_0xcf5d[32]](_0x7653x21));return _0x7653x1e[_0xcf5d[43]](_0x7653x20)[_0xcf5d[45]](_0x7653x21)};return _0x7653x1e[_0xcf5d[43]](304)[_0xcf5d[42]]()}}function respondWithFilteredResult(_0x7653x1e,_0x7653x24,_0x7653x19){return function(_0x7653x21){if(_0x7653x21){var _0x7653x25=_0x7653x21[_0xcf5d[46]],_0x7653x26=_0x7653x24[_0xcf5d[47]],_0x7653x27=_0x7653x24[_0xcf5d[47]]+ _0x7653x24[_0xcf5d[48]],_0x7653x20;if(_0x7653x27>= _0x7653x25){_0x7653x27= _0x7653x25;_0x7653x20= 200}else {_0x7653x20= 206};_0x7653x1e[_0xcf5d[43]](_0x7653x20);logger[_0xcf5d[30]](_0xcf5d[31],_0x7653x19,_0x7653x20,_0xcf5d[49]);logger[_0xcf5d[33]](_0xcf5d[40],_0x7653x19,_0x7653x20,_0xcf5d[44],JSON[_0xcf5d[32]](_0x7653x21));return _0x7653x1e[_0xcf5d[53]](_0xcf5d[50],_0x7653x26+ _0xcf5d[51]+ _0x7653x27+ _0xcf5d[52]+ _0x7653x25)[_0xcf5d[45]](_0x7653x21)};return null}}function patchUpdates(_0x7653x29){return function(_0x7653x21){try{jsonpatch[_0xcf5d[54]](_0x7653x21,_0x7653x29,true)}catch(err){return BPromise[_0xcf5d[55]](err)};return _0x7653x21[_0xcf5d[56]]()}}function saveUpdates(_0x7653x2b,_0x7653x20,_0x7653x19){return function(_0x7653x21){if(_0x7653x21){return _0x7653x21[_0xcf5d[58]](_0x7653x2b)[_0xcf5d[37]](function(_0x7653x2c){logger[_0xcf5d[30]](_0xcf5d[31],_0x7653x19,_0x7653x20,_0xcf5d[57]);logger[_0xcf5d[33]](_0xcf5d[40],_0x7653x19,_0x7653x20,_0xcf5d[57],JSON[_0xcf5d[32]](_0x7653x21));return _0x7653x2c})};return null}}function removeEntity(_0x7653x1e,_0x7653x20,_0x7653x19){return function(_0x7653x21){if(_0x7653x21){return _0x7653x21[_0xcf5d[60]]()[_0xcf5d[37]](function(){logger[_0xcf5d[30]](_0xcf5d[31],_0x7653x19,_0x7653x20,_0xcf5d[59]);logger[_0xcf5d[33]](_0xcf5d[40],_0x7653x19,_0x7653x20,_0xcf5d[59],JSON[_0xcf5d[32]](_0x7653x21));_0x7653x1e[_0xcf5d[43]](204)[_0xcf5d[42]]()})}}}function handleEntityNotFound(_0x7653x1e,_0x7653x20,_0x7653x19){return function(_0x7653x21){if(!_0x7653x21){logger[_0xcf5d[27]](_0xcf5d[31],_0x7653x19,404,_0xcf5d[61]);_0x7653x1e[_0xcf5d[43]](404)[_0xcf5d[42]]();return null};return _0x7653x21}}function handleError(_0x7653x1e,_0x7653x20,_0x7653x19){_0x7653x20= _0x7653x20|| 500;return function(_0x7653x1d){logger[_0xcf5d[27]](_0xcf5d[31],_0x7653x19,_0x7653x20,JSON[_0xcf5d[32]](_0x7653x1d));delete _0x7653x1d[_0xcf5d[62]];_0x7653x1e[_0xcf5d[43]](_0x7653x20)[_0xcf5d[63]](_0x7653x1d)}}exports[_0xcf5d[64]]= function(_0x7653x1a,_0x7653x1e){var _0x7653x24={},_0x7653x30={};_0x7653x30[_0xcf5d[65]]= _[_0xcf5d[68]](db[_0xcf5d[67]][_0xcf5d[66]]);_0x7653x30[_0xcf5d[69]]= _[_0xcf5d[68]](_0x7653x1a[_0xcf5d[69]]);_0x7653x30[_0xcf5d[70]]= _[_0xcf5d[71]](_0x7653x30[_0xcf5d[65]],_0x7653x30[_0xcf5d[69]]);_0x7653x24[_0xcf5d[72]]= _[_0xcf5d[71]](_0x7653x30[_0xcf5d[65]],qs[_0xcf5d[73]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[73]]));_0x7653x24[_0xcf5d[72]]= (_0x7653x24[_0xcf5d[72]][_0xcf5d[74]])?_0x7653x24[_0xcf5d[72]]:_0x7653x30[_0xcf5d[65]];if(!_0x7653x1a[_0xcf5d[69]][_0xcf5d[76]](_0xcf5d[75])){_0x7653x24[_0xcf5d[48]]= qs[_0xcf5d[48]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[48]]);_0x7653x24[_0xcf5d[47]]= qs[_0xcf5d[47]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[47]])};_0x7653x24[_0xcf5d[77]]= qs[_0xcf5d[78]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[78]]);_0x7653x24[_0xcf5d[79]]= qs[_0xcf5d[70]](_[_0xcf5d[80]](_0x7653x1a[_0xcf5d[69]],_0x7653x30[_0xcf5d[70]]));if(_0x7653x1a[_0xcf5d[69]][_0xcf5d[81]]){_0x7653x24[_0xcf5d[79]]= _[_0xcf5d[84]](_0x7653x24[_0xcf5d[79]],{$or:_[_0xcf5d[83]](_0x7653x24[_0xcf5d[72]],function(_0x7653x31){var _0x7653x32={};_0x7653x32[_0x7653x31]= {$like:_0xcf5d[82]+ _0x7653x1a[_0xcf5d[69]][_0xcf5d[81]]+ _0xcf5d[82]};return _0x7653x32})})};_0x7653x24= _[_0xcf5d[84]]({},_0x7653x24,_0x7653x1a[_0xcf5d[85]]);return db[_0xcf5d[67]][_0xcf5d[86]](_0x7653x24)[_0xcf5d[37]](respondWithFilteredResult(_0x7653x1e,_0x7653x24,_0xcf5d[64]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[64]))};exports[_0xcf5d[87]]= function(_0x7653x1a,_0x7653x1e){var _0x7653x24={raw:false,where:{id:_0x7653x1a[_0xcf5d[89]][_0xcf5d[88]]}},_0x7653x30={};_0x7653x30[_0xcf5d[65]]= _[_0xcf5d[68]](db[_0xcf5d[67]][_0xcf5d[66]]);_0x7653x30[_0xcf5d[69]]= _[_0xcf5d[68]](_0x7653x1a[_0xcf5d[69]]);_0x7653x30[_0xcf5d[70]]= _[_0xcf5d[71]](_0x7653x30[_0xcf5d[65]],_0x7653x30[_0xcf5d[69]]);_0x7653x24[_0xcf5d[72]]= _[_0xcf5d[71]](_0x7653x30[_0xcf5d[65]],qs[_0xcf5d[73]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[73]]));_0x7653x24[_0xcf5d[72]]= (_0x7653x24[_0xcf5d[72]][_0xcf5d[74]])?_0x7653x24[_0xcf5d[72]]:_0x7653x30[_0xcf5d[65]];_0x7653x24= _[_0xcf5d[84]]({},_0x7653x24,_0x7653x1a[_0xcf5d[85]]);return db[_0xcf5d[67]][_0xcf5d[90]](_0x7653x24)[_0xcf5d[37]](handleEntityNotFound(_0x7653x1e,null,_0xcf5d[87]))[_0xcf5d[37]](respondWithResult(_0x7653x1e,null,_0xcf5d[87]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[87]))};exports[_0xcf5d[91]]= function(_0x7653x1a,_0x7653x1e){return db[_0xcf5d[67]][_0xcf5d[91]](_0x7653x1a[_0xcf5d[92]],{})[_0xcf5d[37]](respondWithResult(_0x7653x1e,201,_0xcf5d[91]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[91]))};exports[_0xcf5d[58]]= function(_0x7653x1a,_0x7653x1e){if(_0x7653x1a[_0xcf5d[92]][_0xcf5d[88]]){delete _0x7653x1a[_0xcf5d[92]][_0xcf5d[88]]};return db[_0xcf5d[67]][_0xcf5d[90]]({where:{id:_0x7653x1a[_0xcf5d[89]][_0xcf5d[88]]}})[_0xcf5d[37]](handleEntityNotFound(_0x7653x1e,null,_0xcf5d[58]))[_0xcf5d[37]](saveUpdates(_0x7653x1a[_0xcf5d[92]],null,_0xcf5d[58]))[_0xcf5d[37]](respondWithResult(_0x7653x1e,null,_0xcf5d[58]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[58]))};exports[_0xcf5d[60]]= function(_0x7653x1a,_0x7653x1e){return db[_0xcf5d[67]][_0xcf5d[90]]({where:{id:_0x7653x1a[_0xcf5d[89]][_0xcf5d[88]]}})[_0xcf5d[37]](handleEntityNotFound(_0x7653x1e,null,_0xcf5d[60]))[_0xcf5d[37]](removeEntity(_0x7653x1e,null,_0xcf5d[60]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[60]))};exports[_0xcf5d[93]]= function(_0x7653x1a,_0x7653x21,_0x7653x33){var _0x7653x24={};var _0x7653x30={};var _0x7653x34;var _0x7653x25;return db[_0xcf5d[67]][_0xcf5d[95]]({where:{id:_0x7653x1a[_0xcf5d[89]][_0xcf5d[88]]}})[_0xcf5d[37]](handleEntityNotFound(_0x7653x21,null,_0xcf5d[93]))[_0xcf5d[37]](function(_0x7653x21){if(_0x7653x21){_0x7653x34= _0x7653x21;_0x7653x30[_0xcf5d[65]]= _[_0xcf5d[68]](db[_0xcf5d[94]][_0xcf5d[66]]);_0x7653x30[_0xcf5d[69]]= _[_0xcf5d[68]](_0x7653x1a[_0xcf5d[69]]);_0x7653x30[_0xcf5d[70]]= _[_0xcf5d[71]](_0x7653x30[_0xcf5d[65]],_0x7653x30[_0xcf5d[69]]);_0x7653x24[_0xcf5d[72]]= _[_0xcf5d[71]](_0x7653x30[_0xcf5d[65]],qs[_0xcf5d[73]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[73]]));_0x7653x24[_0xcf5d[72]]= (_0x7653x24[_0xcf5d[72]][_0xcf5d[74]])?_0x7653x24[_0xcf5d[72]]:_0x7653x30[_0xcf5d[65]];_0x7653x24[_0xcf5d[77]]= qs[_0xcf5d[78]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[78]]);_0x7653x24[_0xcf5d[79]]= qs[_0xcf5d[70]](_[_0xcf5d[80]](_0x7653x1a[_0xcf5d[69]],_0x7653x30[_0xcf5d[70]]));if(_0x7653x1a[_0xcf5d[69]][_0xcf5d[81]]){_0x7653x24[_0xcf5d[79]]= _[_0xcf5d[84]](_0x7653x24[_0xcf5d[79]],{$or:_[_0xcf5d[83]](_0x7653x24[_0xcf5d[72]],function(_0x7653x31){var _0x7653x32={};_0x7653x32[_0x7653x31]= {$like:_0xcf5d[82]+ _0x7653x1a[_0xcf5d[69]][_0xcf5d[81]]+ _0xcf5d[82]};return _0x7653x32})})};_0x7653x24= _[_0xcf5d[84]]({},_0x7653x24,_0x7653x1a[_0xcf5d[85]]);return _0x7653x34[_0xcf5d[93]](_0x7653x24)}})[_0xcf5d[37]](function(_0x7653x36){if(_0x7653x36){_0x7653x25= _0x7653x36[_0xcf5d[74]];if(!_0x7653x1a[_0xcf5d[69]][_0xcf5d[76]](_0xcf5d[75])){_0x7653x24[_0xcf5d[48]]= qs[_0xcf5d[48]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[48]]);_0x7653x24[_0xcf5d[47]]= qs[_0xcf5d[47]](_0x7653x1a[_0xcf5d[69]][_0xcf5d[47]])};return _0x7653x34[_0xcf5d[93]](_0x7653x24)}})[_0xcf5d[37]](function(_0x7653x35){return _0x7653x35?{count:_0x7653x25,rows:_0x7653x35}:null})[_0xcf5d[37]](respondWithResult(_0x7653x21,null,_0xcf5d[93]))[_0xcf5d[28]](handleError(_0x7653x21,null,_0xcf5d[93]))};exports[_0xcf5d[96]]= function(_0x7653x1a,_0x7653x1e,_0x7653x33){if(_0x7653x1a[_0xcf5d[92]][_0xcf5d[88]]){delete _0x7653x1a[_0xcf5d[92]][_0xcf5d[88]]};return db[_0xcf5d[67]][_0xcf5d[95]]({where:{id:_0x7653x1a[_0xcf5d[89]][_0xcf5d[88]]}})[_0xcf5d[37]](handleEntityNotFound(_0x7653x1e,null,_0xcf5d[96]))[_0xcf5d[37]](function(_0x7653x21){if(_0x7653x21){_0x7653x1a[_0xcf5d[92]][_0xcf5d[97]]= _0x7653x21[_0xcf5d[88]];_0x7653x1a[_0xcf5d[92]][_0xcf5d[98]]= integrations[_0xcf5d[101]](_0x7653x1a[_0xcf5d[92]][_0xcf5d[99]],_0x7653x1a[_0xcf5d[92]][_0xcf5d[100]]);_0x7653x1a[_0xcf5d[92]][_0xcf5d[102]]= integrations[_0xcf5d[103]](_0x7653x1a[_0xcf5d[92]][_0xcf5d[99]],_0x7653x1a[_0xcf5d[92]][_0xcf5d[100]]);return db[_0xcf5d[94]][_0xcf5d[91]](_0x7653x1a[_0xcf5d[92]],{include:[{model:db[_0xcf5d[104]],as:_0xcf5d[98]},{model:db[_0xcf5d[104]],as:_0xcf5d[102]}]})};return null})[_0xcf5d[37]](respondWithResult(_0x7653x1e,null,_0xcf5d[96]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[96]))};exports[_0xcf5d[105]]= function(_0x7653x1a,_0x7653x1e,_0x7653x33){return db[_0xcf5d[67]][_0xcf5d[95]]({where:{id:_0x7653x1a[_0xcf5d[89]][_0xcf5d[88]]},attributes:[_0xcf5d[88],_0xcf5d[123],_0xcf5d[129]]})[_0xcf5d[37]](handleEntityNotFound(_0x7653x1e,null,_0xcf5d[105]))[_0xcf5d[37]](function(_0x7653x21){if(_0x7653x21){return rp({method:_0xcf5d[121],uri:util[_0xcf5d[125]](_0xcf5d[122],_0x7653x21[_0xcf5d[123]],_0xcf5d[124]),headers:{Authorization:util[_0xcf5d[125]](_0xcf5d[126], new Buffer(util[_0xcf5d[125]](_0xcf5d[128],_0x7653x21[_0xcf5d[129]])).toString(_0xcf5d[127]))},json:true})}})[_0xcf5d[37]](function(_0x7653x36){if(_0x7653x36){var _0x7653x37=[_0xcf5d[106],_0xcf5d[107],_0xcf5d[108],_0xcf5d[109],_0xcf5d[43],_0xcf5d[110],_0xcf5d[111],_0xcf5d[112],_0xcf5d[113],_0xcf5d[111],_0xcf5d[114]];_[_0xcf5d[116]](_0x7653x36,function(_0x7653x38){return _0x7653x37[_0xcf5d[115]](_0x7653x38[_0xcf5d[62]])});return {count:_0x7653x36[_0xcf5d[74]],rows:_[_0xcf5d[83]](_0x7653x36,function(_0x7653x21){return {id:_0x7653x21[_0xcf5d[62]],name:_0x7653x21[_0xcf5d[117]],custom:!_0x7653x21[_0xcf5d[118]],options:_0x7653x21[_0xcf5d[119]]?_[_0xcf5d[83]](_0x7653x21[_0xcf5d[119]],function(_0x7653x39){return {name:_[_0xcf5d[120]](_0x7653x39),value:_0x7653x39}}):[]}})}}})[_0xcf5d[37]](respondWithResult(_0x7653x1e,null,_0xcf5d[105]))[_0xcf5d[28]](handleError(_0x7653x1e,null,_0xcf5d[105]))}
\ No newline at end of file
index 24363ca..cd186c0 100644 (file)
@@ -1 +1 @@
-var _0xef8d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xef8d[0];var _=require(_0xef8d[1]);var util=require(_0xef8d[2]);var logger=require(_0xef8d[4])(_0xef8d[3]);var attributes=require(_0xef8d[5]);var integrations=require(_0xef8d[6]);module[_0xef8d[7]]= function(_0x94bcx6,_0x94bcx7){return _0x94bcx6[_0xef8d[10]](_0xef8d[8],attributes,{tableName:_0xef8d[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe4de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xe4de[0];var _=require(_0xe4de[1]);var util=require(_0xe4de[2]);var logger=require(_0xe4de[4])(_0xe4de[3]);var attributes=require(_0xe4de[5]);var integrations=require(_0xe4de[6]);module[_0xe4de[7]]= function(_0xaf85x6,_0xaf85x7){return _0xaf85x6[_0xe4de[10]](_0xe4de[8],attributes,{tableName:_0xe4de[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 821a146..d97eda6 100644 (file)
@@ -1 +1 @@
-var _0x5c5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x5c5f[0];var _=require(_0x5c5f[1]);var util=require(_0x5c5f[2]);var moment=require(_0x5c5f[3]);var BPromise=require(_0x5c5f[4]);var db=require(_0x5c5f[6])[_0x5c5f[5]];var utils=require(_0x5c5f[7]);var logger=require(_0x5c5f[9])(_0x5c5f[8]);var jayson=require(_0x5c5f[10]);var client=jayson[_0x5c5f[12]][_0x5c5f[11]]({port:9002});function respondWithRpcPromise(_0xcb44xb,_0xcb44xc,_0xcb44xd){return  new BPromise(function(_0xcb44xe,_0xcb44xf){return client[_0x5c5f[25]](_0xcb44xb,_0xcb44xd)[_0x5c5f[24]](function(_0xcb44x11){logger[_0x5c5f[17]](_0x5c5f[13],_0xcb44xc,_0x5c5f[16]);logger[_0x5c5f[20]](_0x5c5f[18],_0xcb44xc,_0x5c5f[16],JSON[_0x5c5f[19]](_0xcb44x11));if(_0xcb44x11[_0x5c5f[14]]){if(_0xcb44x11[_0x5c5f[14]][_0x5c5f[21]]=== 500){logger[_0x5c5f[14]](_0x5c5f[13],_0xcb44xc,_0xcb44x11[_0x5c5f[14]][_0x5c5f[22]]);return _0xcb44xf(_0xcb44x11[_0x5c5f[14]][_0x5c5f[22]])};logger[_0x5c5f[14]](_0x5c5f[13],_0xcb44xc,_0xcb44x11[_0x5c5f[14]][_0x5c5f[22]]);return _0xcb44xe(_0xcb44x11[_0x5c5f[14]][_0x5c5f[22]])}else {logger[_0x5c5f[17]](_0x5c5f[13],_0xcb44xc,_0x5c5f[16]);_0xcb44xe(_0xcb44x11[_0x5c5f[23]][_0x5c5f[22]])}})[_0x5c5f[15]](function(_0xcb44x10){logger[_0x5c5f[14]](_0x5c5f[13],_0xcb44xc,_0xcb44x10);_0xcb44xf(_0xcb44x10)})})}exports[_0x5c5f[26]]= function(_0xcb44xd){var _0xcb44x12=this;return  new Promise(function(_0xcb44xe,_0xcb44xf){return db[_0x5c5f[37]][_0x5c5f[36]]({raw:_0xcb44xd[_0x5c5f[27]]?(_0xcb44xd[_0x5c5f[27]][_0x5c5f[28]]=== undefined)?true:false:true,where:_0xcb44xd[_0x5c5f[27]]?_0xcb44xd[_0x5c5f[27]][_0x5c5f[29]]|| null:null,attributes:_0xcb44xd[_0x5c5f[27]]?_0xcb44xd[_0x5c5f[27]][_0x5c5f[30]]|| null:null,limit:_0xcb44xd[_0x5c5f[27]]?_0xcb44xd[_0x5c5f[27]][_0x5c5f[31]]|| null:null,include:_0xcb44xd[_0x5c5f[27]]?(_0xcb44xd[_0x5c5f[27]][_0x5c5f[32]]?_[_0x5c5f[35]](_0xcb44xd[_0x5c5f[27]][_0x5c5f[32]],function(_0xcb44x13){return {model:db[_0xcb44x13[_0x5c5f[33]]],as:_0xcb44x13[_0x5c5f[34]],attributes:_0xcb44x13[_0x5c5f[30]],include:_0xcb44x13[_0x5c5f[32]]?_[_0x5c5f[35]](_0xcb44x13[_0x5c5f[32]],function(_0xcb44x14){return {model:db[_0xcb44x14[_0x5c5f[33]]],as:_0xcb44x14[_0x5c5f[34]],attributes:_0xcb44x14[_0x5c5f[30]],include:_0xcb44x14[_0x5c5f[32]]?_[_0x5c5f[35]](_0xcb44x14[_0x5c5f[32]],function(_0xcb44x15){return {model:db[_0xcb44x15[_0x5c5f[33]]],as:_0xcb44x15[_0x5c5f[34]],attributes:_0xcb44x15[_0x5c5f[30]]}}):[]}}):[]}}):[]):[]})[_0x5c5f[24]](function(_0xcb44x11){logger[_0x5c5f[17]](_0x5c5f[26],_0xcb44xd);logger[_0x5c5f[20]](_0x5c5f[26],_0xcb44xd,JSON[_0x5c5f[19]](_0xcb44x11));_0xcb44xe(_0xcb44x11)})[_0x5c5f[15]](function(_0xcb44x10){logger[_0x5c5f[14]](_0x5c5f[26],_0xcb44x10[_0x5c5f[22]],_0xcb44xd);_0xcb44xf(_0xcb44x12[_0x5c5f[14]](500,_0xcb44x10[_0x5c5f[22]]))})})};exports[_0x5c5f[38]]= function(_0xcb44xd){var _0xcb44x12=this;return  new Promise(function(_0xcb44xe,_0xcb44xf){return db[_0x5c5f[37]][_0x5c5f[39]]({raw:_0xcb44xd[_0x5c5f[27]]?(_0xcb44xd[_0x5c5f[27]][_0x5c5f[28]]=== undefined)?true:false:true,where:_0xcb44xd[_0x5c5f[27]]?_0xcb44xd[_0x5c5f[27]][_0x5c5f[29]]|| null:null,attributes:_0xcb44xd[_0x5c5f[27]]?_0xcb44xd[_0x5c5f[27]][_0x5c5f[30]]|| null:null,include:_0xcb44xd[_0x5c5f[27]]?(_0xcb44xd[_0x5c5f[27]][_0x5c5f[32]]?_[_0x5c5f[35]](_0xcb44xd[_0x5c5f[27]][_0x5c5f[32]],function(_0xcb44x13){return {model:db[_0xcb44x13[_0x5c5f[33]]],as:_0xcb44x13[_0x5c5f[34]],attributes:_0xcb44x13[_0x5c5f[30]],include:_0xcb44x13[_0x5c5f[32]]?_[_0x5c5f[35]](_0xcb44x13[_0x5c5f[32]],function(_0xcb44x14){return {model:db[_0xcb44x14[_0x5c5f[33]]],as:_0xcb44x14[_0x5c5f[34]],attributes:_0xcb44x14[_0x5c5f[30]],include:_0xcb44x14[_0x5c5f[32]]?_[_0x5c5f[35]](_0xcb44x14[_0x5c5f[32]],function(_0xcb44x15){return {model:db[_0xcb44x15[_0x5c5f[33]]],as:_0xcb44x15[_0x5c5f[34]],attributes:_0xcb44x15[_0x5c5f[30]]}}):[]}}):[]}}):[]):[]})[_0x5c5f[24]](function(_0xcb44x11){logger[_0x5c5f[17]](_0x5c5f[38],_0xcb44xd);logger[_0x5c5f[20]](_0x5c5f[38],_0xcb44xd,JSON[_0x5c5f[19]](_0xcb44x11));_0xcb44xe(_0xcb44x11)})[_0x5c5f[15]](function(_0xcb44x10){logger[_0x5c5f[14]](_0x5c5f[38],_0xcb44x10[_0x5c5f[22]],_0xcb44xd);_0xcb44xf(_0xcb44x12[_0x5c5f[14]](500,_0xcb44x10[_0x5c5f[22]]))})})}
\ No newline at end of file
+var _0xbad9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0xbad9[0];var _=require(_0xbad9[1]);var util=require(_0xbad9[2]);var moment=require(_0xbad9[3]);var BPromise=require(_0xbad9[4]);var db=require(_0xbad9[6])[_0xbad9[5]];var utils=require(_0xbad9[7]);var logger=require(_0xbad9[9])(_0xbad9[8]);var jayson=require(_0xbad9[10]);var client=jayson[_0xbad9[12]][_0xbad9[11]]({port:9002});function respondWithRpcPromise(_0x28b1xb,_0x28b1xc,_0x28b1xd){return  new BPromise(function(_0x28b1xe,_0x28b1xf){return client[_0xbad9[25]](_0x28b1xb,_0x28b1xd)[_0xbad9[24]](function(_0x28b1x11){logger[_0xbad9[17]](_0xbad9[13],_0x28b1xc,_0xbad9[16]);logger[_0xbad9[20]](_0xbad9[18],_0x28b1xc,_0xbad9[16],JSON[_0xbad9[19]](_0x28b1x11));if(_0x28b1x11[_0xbad9[14]]){if(_0x28b1x11[_0xbad9[14]][_0xbad9[21]]=== 500){logger[_0xbad9[14]](_0xbad9[13],_0x28b1xc,_0x28b1x11[_0xbad9[14]][_0xbad9[22]]);return _0x28b1xf(_0x28b1x11[_0xbad9[14]][_0xbad9[22]])};logger[_0xbad9[14]](_0xbad9[13],_0x28b1xc,_0x28b1x11[_0xbad9[14]][_0xbad9[22]]);return _0x28b1xe(_0x28b1x11[_0xbad9[14]][_0xbad9[22]])}else {logger[_0xbad9[17]](_0xbad9[13],_0x28b1xc,_0xbad9[16]);_0x28b1xe(_0x28b1x11[_0xbad9[23]][_0xbad9[22]])}})[_0xbad9[15]](function(_0x28b1x10){logger[_0xbad9[14]](_0xbad9[13],_0x28b1xc,_0x28b1x10);_0x28b1xf(_0x28b1x10)})})}exports[_0xbad9[26]]= function(_0x28b1xd){var _0x28b1x12=this;return  new Promise(function(_0x28b1xe,_0x28b1xf){return db[_0xbad9[37]][_0xbad9[36]]({raw:_0x28b1xd[_0xbad9[27]]?(_0x28b1xd[_0xbad9[27]][_0xbad9[28]]=== undefined)?true:false:true,where:_0x28b1xd[_0xbad9[27]]?_0x28b1xd[_0xbad9[27]][_0xbad9[29]]|| null:null,attributes:_0x28b1xd[_0xbad9[27]]?_0x28b1xd[_0xbad9[27]][_0xbad9[30]]|| null:null,limit:_0x28b1xd[_0xbad9[27]]?_0x28b1xd[_0xbad9[27]][_0xbad9[31]]|| null:null,include:_0x28b1xd[_0xbad9[27]]?(_0x28b1xd[_0xbad9[27]][_0xbad9[32]]?_[_0xbad9[35]](_0x28b1xd[_0xbad9[27]][_0xbad9[32]],function(_0x28b1x13){return {model:db[_0x28b1x13[_0xbad9[33]]],as:_0x28b1x13[_0xbad9[34]],attributes:_0x28b1x13[_0xbad9[30]],include:_0x28b1x13[_0xbad9[32]]?_[_0xbad9[35]](_0x28b1x13[_0xbad9[32]],function(_0x28b1x14){return {model:db[_0x28b1x14[_0xbad9[33]]],as:_0x28b1x14[_0xbad9[34]],attributes:_0x28b1x14[_0xbad9[30]],include:_0x28b1x14[_0xbad9[32]]?_[_0xbad9[35]](_0x28b1x14[_0xbad9[32]],function(_0x28b1x15){return {model:db[_0x28b1x15[_0xbad9[33]]],as:_0x28b1x15[_0xbad9[34]],attributes:_0x28b1x15[_0xbad9[30]]}}):[]}}):[]}}):[]):[]})[_0xbad9[24]](function(_0x28b1x11){logger[_0xbad9[17]](_0xbad9[26],_0x28b1xd);logger[_0xbad9[20]](_0xbad9[26],_0x28b1xd,JSON[_0xbad9[19]](_0x28b1x11));_0x28b1xe(_0x28b1x11)})[_0xbad9[15]](function(_0x28b1x10){logger[_0xbad9[14]](_0xbad9[26],_0x28b1x10[_0xbad9[22]],_0x28b1xd);_0x28b1xf(_0x28b1x12[_0xbad9[14]](500,_0x28b1x10[_0xbad9[22]]))})})};exports[_0xbad9[38]]= function(_0x28b1xd){var _0x28b1x12=this;return  new Promise(function(_0x28b1xe,_0x28b1xf){return db[_0xbad9[37]][_0xbad9[39]]({raw:_0x28b1xd[_0xbad9[27]]?(_0x28b1xd[_0xbad9[27]][_0xbad9[28]]=== undefined)?true:false:true,where:_0x28b1xd[_0xbad9[27]]?_0x28b1xd[_0xbad9[27]][_0xbad9[29]]|| null:null,attributes:_0x28b1xd[_0xbad9[27]]?_0x28b1xd[_0xbad9[27]][_0xbad9[30]]|| null:null,include:_0x28b1xd[_0xbad9[27]]?(_0x28b1xd[_0xbad9[27]][_0xbad9[32]]?_[_0xbad9[35]](_0x28b1xd[_0xbad9[27]][_0xbad9[32]],function(_0x28b1x13){return {model:db[_0x28b1x13[_0xbad9[33]]],as:_0x28b1x13[_0xbad9[34]],attributes:_0x28b1x13[_0xbad9[30]],include:_0x28b1x13[_0xbad9[32]]?_[_0xbad9[35]](_0x28b1x13[_0xbad9[32]],function(_0x28b1x14){return {model:db[_0x28b1x14[_0xbad9[33]]],as:_0x28b1x14[_0xbad9[34]],attributes:_0x28b1x14[_0xbad9[30]],include:_0x28b1x14[_0xbad9[32]]?_[_0xbad9[35]](_0x28b1x14[_0xbad9[32]],function(_0x28b1x15){return {model:db[_0x28b1x15[_0xbad9[33]]],as:_0x28b1x15[_0xbad9[34]],attributes:_0x28b1x15[_0xbad9[30]]}}):[]}}):[]}}):[]):[]})[_0xbad9[24]](function(_0x28b1x11){logger[_0xbad9[17]](_0xbad9[38],_0x28b1xd);logger[_0xbad9[20]](_0xbad9[38],_0x28b1xd,JSON[_0xbad9[19]](_0x28b1x11));_0x28b1xe(_0x28b1x11)})[_0xbad9[15]](function(_0x28b1x10){logger[_0xbad9[14]](_0xbad9[38],_0x28b1x10[_0xbad9[22]],_0x28b1xd);_0x28b1xf(_0x28b1x12[_0xbad9[14]](500,_0x28b1x10[_0xbad9[22]]))})})}
\ No newline at end of file
index c0178c3..4e15da9 100644 (file)
@@ -1 +1 @@
-var _0xfe78=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x67\x65\x74\x54\x61\x67\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x73\x65\x74\x54\x61\x67\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfe78[0];var multer=require(_0xfe78[1]);var util=require(_0xfe78[2]);var path=require(_0xfe78[3]);var express=require(_0xfe78[4]);var router=express.Router();var auth=require(_0xfe78[5]);var config=require(_0xfe78[6]);var controller=require(_0xfe78[7]);router[_0xfe78[11]](_0xfe78[8],auth[_0xfe78[9]](),controller[_0xfe78[10]]);router[_0xfe78[11]](_0xfe78[12],auth[_0xfe78[9]](),controller[_0xfe78[13]]);router[_0xfe78[11]](_0xfe78[14],auth[_0xfe78[9]](),controller[_0xfe78[15]]);router[_0xfe78[11]](_0xfe78[16],auth[_0xfe78[9]](),controller[_0xfe78[17]]);router[_0xfe78[11]](_0xfe78[18],auth[_0xfe78[9]](),controller[_0xfe78[19]]);router[_0xfe78[11]](_0xfe78[20],auth[_0xfe78[9]](),controller[_0xfe78[21]]);router[_0xfe78[23]](_0xfe78[8],auth[_0xfe78[9]](),controller[_0xfe78[22]]);router[_0xfe78[23]](_0xfe78[20],auth[_0xfe78[9]](),controller[_0xfe78[24]]);router[_0xfe78[26]](_0xfe78[12],auth[_0xfe78[9]](),controller[_0xfe78[25]]);router[_0xfe78[28]](_0xfe78[12],auth[_0xfe78[9]](),controller[_0xfe78[27]]);module[_0xfe78[29]]= router
\ No newline at end of file
+var _0xbcf7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x67\x65\x74\x54\x61\x67\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x73\x65\x74\x54\x61\x67\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbcf7[0];var multer=require(_0xbcf7[1]);var util=require(_0xbcf7[2]);var path=require(_0xbcf7[3]);var express=require(_0xbcf7[4]);var router=express.Router();var auth=require(_0xbcf7[5]);var config=require(_0xbcf7[6]);var controller=require(_0xbcf7[7]);router[_0xbcf7[11]](_0xbcf7[8],auth[_0xbcf7[9]](),controller[_0xbcf7[10]]);router[_0xbcf7[11]](_0xbcf7[12],auth[_0xbcf7[9]](),controller[_0xbcf7[13]]);router[_0xbcf7[11]](_0xbcf7[14],auth[_0xbcf7[9]](),controller[_0xbcf7[15]]);router[_0xbcf7[11]](_0xbcf7[16],auth[_0xbcf7[9]](),controller[_0xbcf7[17]]);router[_0xbcf7[11]](_0xbcf7[18],auth[_0xbcf7[9]](),controller[_0xbcf7[19]]);router[_0xbcf7[11]](_0xbcf7[20],auth[_0xbcf7[9]](),controller[_0xbcf7[21]]);router[_0xbcf7[23]](_0xbcf7[8],auth[_0xbcf7[9]](),controller[_0xbcf7[22]]);router[_0xbcf7[23]](_0xbcf7[20],auth[_0xbcf7[9]](),controller[_0xbcf7[24]]);router[_0xbcf7[26]](_0xbcf7[12],auth[_0xbcf7[9]](),controller[_0xbcf7[25]]);router[_0xbcf7[28]](_0xbcf7[12],auth[_0xbcf7[9]](),controller[_0xbcf7[27]]);module[_0xbcf7[29]]= router
\ No newline at end of file
index 0273c43..dec6970 100644 (file)
@@ -1 +1 @@
-var _0xede5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xede5[0];var Sequelize=require(_0xede5[1]);module[_0xede5[2]]= {name:{type:Sequelize[_0xede5[3]]},description:{type:Sequelize[_0xede5[3]]}}
\ No newline at end of file
+var _0x4d1e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x4d1e[0];var Sequelize=require(_0x4d1e[1]);module[_0x4d1e[2]]= {name:{type:Sequelize[_0x4d1e[3]]},description:{type:Sequelize[_0x4d1e[3]]}}
\ No newline at end of file
index f07dab3..c15ff43 100644 (file)
@@ -1 +1 @@
-var _0xcbaf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x54\x61\x67\x73","\x54\x61\x67","\x73\x65\x74\x54\x61\x67\x73","\x69\x64\x73"];_0xcbaf[0];var jsonpatch=require(_0xcbaf[1]);var rp=require(_0xcbaf[2]);var moment=require(_0xcbaf[3]);var BPromise=require(_0xcbaf[4]);var util=require(_0xcbaf[5]);var path=require(_0xcbaf[6]);var sox=require(_0xcbaf[7]);var ejs=require(_0xcbaf[8]);var fs=require(_0xcbaf[9]);var _=require(_0xcbaf[10]);var squel=require(_0xcbaf[11]);var crypto=require(_0xcbaf[12]);var jsforce=require(_0xcbaf[13]);var toCsv=require(_0xcbaf[14]);var qs=require(_0xcbaf[15]);var logger=require(_0xcbaf[17])(_0xcbaf[16]);var utils=require(_0xcbaf[18]);var config=require(_0xcbaf[19]);var db=require(_0xcbaf[21])[_0xcbaf[20]];var jayson=require(_0xcbaf[22]);var client=jayson[_0xcbaf[24]][_0xcbaf[23]]({port:9002});function respondWithRpcPromise(_0xb79ex17,_0xb79ex18,_0xb79ex19){return  new BPromise(function(_0xb79ex1a,_0xb79ex1b){return client[_0xcbaf[37]](_0xb79ex17,_0xb79ex19)[_0xcbaf[36]](function(_0xb79ex1d){logger[_0xcbaf[29]](_0xcbaf[25],_0xb79ex18,_0xcbaf[28]);logger[_0xcbaf[32]](_0xcbaf[30],_0xb79ex18,_0xcbaf[28],JSON[_0xcbaf[31]](_0xb79ex1d));if(_0xb79ex1d[_0xcbaf[26]]){if(_0xb79ex1d[_0xcbaf[26]][_0xcbaf[33]]=== 500){logger[_0xcbaf[26]](_0xcbaf[25],_0xb79ex18,_0xb79ex1d[_0xcbaf[26]][_0xcbaf[34]]);return _0xb79ex1b(_0xb79ex1d[_0xcbaf[26]][_0xcbaf[34]])};logger[_0xcbaf[26]](_0xcbaf[25],_0xb79ex18,_0xb79ex1d[_0xcbaf[26]][_0xcbaf[34]]);return _0xb79ex1a(_0xb79ex1d[_0xcbaf[26]][_0xcbaf[34]])}else {logger[_0xcbaf[29]](_0xcbaf[25],_0xb79ex18,_0xcbaf[28]);_0xb79ex1a(_0xb79ex1d[_0xcbaf[35]][_0xcbaf[34]])}})[_0xcbaf[27]](function(_0xb79ex1c){logger[_0xcbaf[26]](_0xcbaf[25],_0xb79ex18,_0xb79ex1c);_0xb79ex1b(_0xb79ex1c)})})}function respondWithStatusCode(_0xb79ex1d,_0xb79ex1f,_0xb79ex18){_0xb79ex1f= _0xb79ex1f|| 204;return function(_0xb79ex20){if(_0xb79ex20){logger[_0xcbaf[29]](_0xcbaf[30],_0xb79ex18,_0xb79ex1f,_0xcbaf[38]);logger[_0xcbaf[32]](_0xcbaf[39],_0xb79ex18,_0xb79ex1f,_0xcbaf[38]);return _0xb79ex1d[_0xcbaf[40]](_0xb79ex1f)};return _0xb79ex1d[_0xcbaf[42]](304)[_0xcbaf[41]]()}}function respondWithResult(_0xb79ex1d,_0xb79ex1f,_0xb79ex18){_0xb79ex1f= _0xb79ex1f|| 200;return function(_0xb79ex20){if(_0xb79ex20){logger[_0xcbaf[29]](_0xcbaf[30],_0xb79ex18,_0xb79ex1f,_0xcbaf[43]);logger[_0xcbaf[32]](_0xcbaf[39],_0xb79ex18,_0xb79ex1f,_0xcbaf[43],JSON[_0xcbaf[31]](_0xb79ex20));return _0xb79ex1d[_0xcbaf[42]](_0xb79ex1f)[_0xcbaf[44]](_0xb79ex20)};return _0xb79ex1d[_0xcbaf[42]](304)[_0xcbaf[41]]()}}function respondWithFilteredResult(_0xb79ex1d,_0xb79ex23,_0xb79ex18){return function(_0xb79ex20){if(_0xb79ex20){var _0xb79ex24=_0xb79ex20[_0xcbaf[45]],_0xb79ex25=_0xb79ex23[_0xcbaf[46]],_0xb79ex26=_0xb79ex23[_0xcbaf[46]]+ _0xb79ex23[_0xcbaf[47]],_0xb79ex1f;if(_0xb79ex26>= _0xb79ex24){_0xb79ex26= _0xb79ex24;_0xb79ex1f= 200}else {_0xb79ex1f= 206};_0xb79ex1d[_0xcbaf[42]](_0xb79ex1f);logger[_0xcbaf[29]](_0xcbaf[30],_0xb79ex18,_0xb79ex1f,_0xcbaf[48]);logger[_0xcbaf[32]](_0xcbaf[39],_0xb79ex18,_0xb79ex1f,_0xcbaf[43],JSON[_0xcbaf[31]](_0xb79ex20));return _0xb79ex1d[_0xcbaf[52]](_0xcbaf[49],_0xb79ex25+ _0xcbaf[50]+ _0xb79ex26+ _0xcbaf[51]+ _0xb79ex24)[_0xcbaf[44]](_0xb79ex20)};return null}}function patchUpdates(_0xb79ex28){return function(_0xb79ex20){try{jsonpatch[_0xcbaf[53]](_0xb79ex20,_0xb79ex28,true)}catch(err){return BPromise[_0xcbaf[54]](err)};return _0xb79ex20[_0xcbaf[55]]()}}function saveUpdates(_0xb79ex2a,_0xb79ex1f,_0xb79ex18){return function(_0xb79ex20){if(_0xb79ex20){return _0xb79ex20[_0xcbaf[57]](_0xb79ex2a)[_0xcbaf[36]](function(_0xb79ex2b){logger[_0xcbaf[29]](_0xcbaf[30],_0xb79ex18,_0xb79ex1f,_0xcbaf[56]);logger[_0xcbaf[32]](_0xcbaf[39],_0xb79ex18,_0xb79ex1f,_0xcbaf[56],JSON[_0xcbaf[31]](_0xb79ex20));return _0xb79ex2b})};return null}}function removeEntity(_0xb79ex1d,_0xb79ex1f,_0xb79ex18){return function(_0xb79ex20){if(_0xb79ex20){return _0xb79ex20[_0xcbaf[59]]()[_0xcbaf[36]](function(){logger[_0xcbaf[29]](_0xcbaf[30],_0xb79ex18,_0xb79ex1f,_0xcbaf[58]);logger[_0xcbaf[32]](_0xcbaf[39],_0xb79ex18,_0xb79ex1f,_0xcbaf[58],JSON[_0xcbaf[31]](_0xb79ex20));_0xb79ex1d[_0xcbaf[42]](204)[_0xcbaf[41]]()})}}}function handleEntityNotFound(_0xb79ex1d,_0xb79ex1f,_0xb79ex18){return function(_0xb79ex20){if(!_0xb79ex20){logger[_0xcbaf[26]](_0xcbaf[30],_0xb79ex18,404,_0xcbaf[60]);_0xb79ex1d[_0xcbaf[42]](404)[_0xcbaf[41]]();return null};return _0xb79ex20}}function handleError(_0xb79ex1d,_0xb79ex1f,_0xb79ex18){_0xb79ex1f= _0xb79ex1f|| 500;return function(_0xb79ex1c){logger[_0xcbaf[26]](_0xcbaf[30],_0xb79ex18,_0xb79ex1f,JSON[_0xcbaf[31]](_0xb79ex1c));delete _0xb79ex1c[_0xcbaf[61]];_0xb79ex1d[_0xcbaf[42]](_0xb79ex1f)[_0xcbaf[62]](_0xb79ex1c)}}exports[_0xcbaf[63]]= function(_0xb79ex19,_0xb79ex1d){var _0xb79ex23={},_0xb79ex2f={};_0xb79ex2f[_0xcbaf[64]]= _[_0xcbaf[67]](db[_0xcbaf[66]][_0xcbaf[65]]);_0xb79ex2f[_0xcbaf[68]]= _[_0xcbaf[67]](_0xb79ex19[_0xcbaf[68]]);_0xb79ex2f[_0xcbaf[69]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],_0xb79ex2f[_0xcbaf[68]]);_0xb79ex23[_0xcbaf[71]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],qs[_0xcbaf[72]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[72]]));_0xb79ex23[_0xcbaf[71]]= (_0xb79ex23[_0xcbaf[71]][_0xcbaf[73]])?_0xb79ex23[_0xcbaf[71]]:_0xb79ex2f[_0xcbaf[64]];if(!_0xb79ex19[_0xcbaf[68]][_0xcbaf[75]](_0xcbaf[74])){_0xb79ex23[_0xcbaf[47]]= qs[_0xcbaf[47]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[47]]);_0xb79ex23[_0xcbaf[46]]= qs[_0xcbaf[46]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[46]])};_0xb79ex23[_0xcbaf[76]]= qs[_0xcbaf[77]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[77]]);_0xb79ex23[_0xcbaf[78]]= qs[_0xcbaf[69]](_[_0xcbaf[79]](_0xb79ex19[_0xcbaf[68]],_0xb79ex2f[_0xcbaf[69]]));if(_0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]){_0xb79ex23[_0xcbaf[78]]= _[_0xcbaf[83]](_0xb79ex23[_0xcbaf[78]],{$or:_[_0xcbaf[82]](_0xb79ex23[_0xcbaf[71]],function(_0xb79ex30){var _0xb79ex31={};_0xb79ex31[_0xb79ex30]= {$like:_0xcbaf[81]+ _0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]+ _0xcbaf[81]};return _0xb79ex31})})};_0xb79ex23= _[_0xcbaf[83]]({},_0xb79ex23,_0xb79ex19[_0xcbaf[84]]);return db[_0xcbaf[66]][_0xcbaf[85]](_0xb79ex23)[_0xcbaf[36]](respondWithFilteredResult(_0xb79ex1d,_0xb79ex23,_0xcbaf[63]))[_0xcbaf[27]](handleError(_0xb79ex1d,null,_0xcbaf[63]))};exports[_0xcbaf[86]]= function(_0xb79ex19,_0xb79ex1d){var _0xb79ex23={raw:false,where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}},_0xb79ex2f={};_0xb79ex2f[_0xcbaf[64]]= _[_0xcbaf[67]](db[_0xcbaf[66]][_0xcbaf[65]]);_0xb79ex2f[_0xcbaf[68]]= _[_0xcbaf[67]](_0xb79ex19[_0xcbaf[68]]);_0xb79ex2f[_0xcbaf[69]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],_0xb79ex2f[_0xcbaf[68]]);_0xb79ex23[_0xcbaf[71]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],qs[_0xcbaf[72]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[72]]));_0xb79ex23[_0xcbaf[71]]= (_0xb79ex23[_0xcbaf[71]][_0xcbaf[73]])?_0xb79ex23[_0xcbaf[71]]:_0xb79ex2f[_0xcbaf[64]];_0xb79ex23= _[_0xcbaf[83]]({},_0xb79ex23,_0xb79ex19[_0xcbaf[84]]);return db[_0xcbaf[66]][_0xcbaf[89]](_0xb79ex23)[_0xcbaf[36]](handleEntityNotFound(_0xb79ex1d,null,_0xcbaf[86]))[_0xcbaf[36]](respondWithResult(_0xb79ex1d,null,_0xcbaf[86]))[_0xcbaf[27]](handleError(_0xb79ex1d,null,_0xcbaf[86]))};exports[_0xcbaf[90]]= function(_0xb79ex19,_0xb79ex1d){return db[_0xcbaf[66]][_0xcbaf[90]](_0xb79ex19[_0xcbaf[91]],{})[_0xcbaf[36]](respondWithResult(_0xb79ex1d,201,_0xcbaf[90]))[_0xcbaf[27]](handleError(_0xb79ex1d,null,_0xcbaf[90]))};exports[_0xcbaf[57]]= function(_0xb79ex19,_0xb79ex1d){if(_0xb79ex19[_0xcbaf[91]][_0xcbaf[87]]){delete _0xb79ex19[_0xcbaf[91]][_0xcbaf[87]]};return db[_0xcbaf[66]][_0xcbaf[89]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex1d,null,_0xcbaf[57]))[_0xcbaf[36]](saveUpdates(_0xb79ex19[_0xcbaf[91]],null,_0xcbaf[57]))[_0xcbaf[36]](respondWithResult(_0xb79ex1d,null,_0xcbaf[57]))[_0xcbaf[27]](handleError(_0xb79ex1d,null,_0xcbaf[57]))};exports[_0xcbaf[59]]= function(_0xb79ex19,_0xb79ex1d){return db[_0xcbaf[66]][_0xcbaf[89]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex1d,null,_0xcbaf[59]))[_0xcbaf[36]](removeEntity(_0xb79ex1d,null,_0xcbaf[59]))[_0xcbaf[27]](handleError(_0xb79ex1d,null,_0xcbaf[59]))};exports[_0xcbaf[92]]= function(_0xb79ex19,_0xb79ex20,_0xb79ex32){var _0xb79ex23={};var _0xb79ex2f={};var _0xb79ex33;var _0xb79ex24;return db[_0xcbaf[66]][_0xcbaf[94]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex20,null,_0xcbaf[92]))[_0xcbaf[36]](function(_0xb79ex20){if(_0xb79ex20){_0xb79ex33= _0xb79ex20;_0xb79ex2f[_0xcbaf[64]]= _[_0xcbaf[67]](db[_0xcbaf[93]][_0xcbaf[65]]);_0xb79ex2f[_0xcbaf[68]]= _[_0xcbaf[67]](_0xb79ex19[_0xcbaf[68]]);_0xb79ex2f[_0xcbaf[69]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],_0xb79ex2f[_0xcbaf[68]]);_0xb79ex23[_0xcbaf[71]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],qs[_0xcbaf[72]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[72]]));_0xb79ex23[_0xcbaf[71]]= (_0xb79ex23[_0xcbaf[71]][_0xcbaf[73]])?_0xb79ex23[_0xcbaf[71]]:_0xb79ex2f[_0xcbaf[64]];_0xb79ex23[_0xcbaf[76]]= qs[_0xcbaf[77]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[77]]);_0xb79ex23[_0xcbaf[78]]= qs[_0xcbaf[69]](_[_0xcbaf[79]](_0xb79ex19[_0xcbaf[68]],_0xb79ex2f[_0xcbaf[69]]));if(_0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]){_0xb79ex23[_0xcbaf[78]]= _[_0xcbaf[83]](_0xb79ex23[_0xcbaf[78]],{$or:_[_0xcbaf[82]](_0xb79ex23[_0xcbaf[71]],function(_0xb79ex30){var _0xb79ex31={};_0xb79ex31[_0xb79ex30]= {$like:_0xcbaf[81]+ _0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]+ _0xcbaf[81]};return _0xb79ex31})})};_0xb79ex23= _[_0xcbaf[83]]({},_0xb79ex23,_0xb79ex19[_0xcbaf[84]]);return _0xb79ex33[_0xcbaf[92]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex35){if(_0xb79ex35){_0xb79ex24= _0xb79ex35[_0xcbaf[73]];if(!_0xb79ex19[_0xcbaf[68]][_0xcbaf[75]](_0xcbaf[74])){_0xb79ex23[_0xcbaf[47]]= qs[_0xcbaf[47]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[47]]);_0xb79ex23[_0xcbaf[46]]= qs[_0xcbaf[46]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[46]])};return _0xb79ex33[_0xcbaf[92]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex34){return _0xb79ex34?{count:_0xb79ex24,rows:_0xb79ex34}:null})[_0xcbaf[36]](respondWithResult(_0xb79ex20,null,_0xcbaf[92]))[_0xcbaf[27]](handleError(_0xb79ex20,null,_0xcbaf[92]))};exports[_0xcbaf[95]]= function(_0xb79ex19,_0xb79ex20,_0xb79ex32){var _0xb79ex23={};var _0xb79ex2f={};var _0xb79ex33;var _0xb79ex24;return db[_0xcbaf[66]][_0xcbaf[94]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex20,null,_0xcbaf[95]))[_0xcbaf[36]](function(_0xb79ex20){if(_0xb79ex20){_0xb79ex33= _0xb79ex20;_0xb79ex2f[_0xcbaf[64]]= _[_0xcbaf[67]](db[_0xcbaf[93]][_0xcbaf[65]]);_0xb79ex2f[_0xcbaf[68]]= _[_0xcbaf[67]](_0xb79ex19[_0xcbaf[68]]);_0xb79ex2f[_0xcbaf[69]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],_0xb79ex2f[_0xcbaf[68]]);_0xb79ex23[_0xcbaf[71]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],qs[_0xcbaf[72]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[72]]));_0xb79ex23[_0xcbaf[71]]= (_0xb79ex23[_0xcbaf[71]][_0xcbaf[73]])?_0xb79ex23[_0xcbaf[71]]:_0xb79ex2f[_0xcbaf[64]];_0xb79ex23[_0xcbaf[76]]= qs[_0xcbaf[77]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[77]]);_0xb79ex23[_0xcbaf[78]]= qs[_0xcbaf[69]](_[_0xcbaf[79]](_0xb79ex19[_0xcbaf[68]],_0xb79ex2f[_0xcbaf[69]]));if(_0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]){_0xb79ex23[_0xcbaf[78]]= _[_0xcbaf[83]](_0xb79ex23[_0xcbaf[78]],{$or:_[_0xcbaf[82]](_0xb79ex23[_0xcbaf[71]],function(_0xb79ex30){var _0xb79ex31={};_0xb79ex31[_0xb79ex30]= {$like:_0xcbaf[81]+ _0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]+ _0xcbaf[81]};return _0xb79ex31})})};_0xb79ex23= _[_0xcbaf[83]]({},_0xb79ex23,_0xb79ex19[_0xcbaf[84]]);return _0xb79ex33[_0xcbaf[95]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex35){if(_0xb79ex35){_0xb79ex24= _0xb79ex35[_0xcbaf[73]];if(!_0xb79ex19[_0xcbaf[68]][_0xcbaf[75]](_0xcbaf[74])){_0xb79ex23[_0xcbaf[47]]= qs[_0xcbaf[47]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[47]]);_0xb79ex23[_0xcbaf[46]]= qs[_0xcbaf[46]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[46]])};return _0xb79ex33[_0xcbaf[95]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex34){return _0xb79ex34?{count:_0xb79ex24,rows:_0xb79ex34}:null})[_0xcbaf[36]](respondWithResult(_0xb79ex20,null,_0xcbaf[95]))[_0xcbaf[27]](handleError(_0xb79ex20,null,_0xcbaf[95]))};exports[_0xcbaf[96]]= function(_0xb79ex19,_0xb79ex20,_0xb79ex32){var _0xb79ex23={};var _0xb79ex2f={};var _0xb79ex33;var _0xb79ex24;return db[_0xcbaf[66]][_0xcbaf[94]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex20,null,_0xcbaf[96]))[_0xcbaf[36]](function(_0xb79ex20){if(_0xb79ex20){_0xb79ex33= _0xb79ex20;_0xb79ex2f[_0xcbaf[64]]= _[_0xcbaf[67]](db[_0xcbaf[93]][_0xcbaf[65]]);_0xb79ex2f[_0xcbaf[68]]= _[_0xcbaf[67]](_0xb79ex19[_0xcbaf[68]]);_0xb79ex2f[_0xcbaf[69]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],_0xb79ex2f[_0xcbaf[68]]);_0xb79ex23[_0xcbaf[71]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],qs[_0xcbaf[72]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[72]]));_0xb79ex23[_0xcbaf[71]]= (_0xb79ex23[_0xcbaf[71]][_0xcbaf[73]])?_0xb79ex23[_0xcbaf[71]]:_0xb79ex2f[_0xcbaf[64]];_0xb79ex23[_0xcbaf[76]]= qs[_0xcbaf[77]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[77]]);_0xb79ex23[_0xcbaf[78]]= qs[_0xcbaf[69]](_[_0xcbaf[79]](_0xb79ex19[_0xcbaf[68]],_0xb79ex2f[_0xcbaf[69]]));if(_0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]){_0xb79ex23[_0xcbaf[78]]= _[_0xcbaf[83]](_0xb79ex23[_0xcbaf[78]],{$or:_[_0xcbaf[82]](_0xb79ex23[_0xcbaf[71]],function(_0xb79ex30){var _0xb79ex31={};_0xb79ex31[_0xb79ex30]= {$like:_0xcbaf[81]+ _0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]+ _0xcbaf[81]};return _0xb79ex31})})};_0xb79ex23= _[_0xcbaf[83]]({},_0xb79ex23,_0xb79ex19[_0xcbaf[84]]);return _0xb79ex33[_0xcbaf[96]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex35){if(_0xb79ex35){_0xb79ex24= _0xb79ex35[_0xcbaf[73]];if(!_0xb79ex19[_0xcbaf[68]][_0xcbaf[75]](_0xcbaf[74])){_0xb79ex23[_0xcbaf[47]]= qs[_0xcbaf[47]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[47]]);_0xb79ex23[_0xcbaf[46]]= qs[_0xcbaf[46]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[46]])};return _0xb79ex33[_0xcbaf[96]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex34){return _0xb79ex34?{count:_0xb79ex24,rows:_0xb79ex34}:null})[_0xcbaf[36]](respondWithResult(_0xb79ex20,null,_0xcbaf[96]))[_0xcbaf[27]](handleError(_0xb79ex20,null,_0xcbaf[96]))};exports[_0xcbaf[97]]= function(_0xb79ex19,_0xb79ex20,_0xb79ex32){var _0xb79ex23={};var _0xb79ex2f={};var _0xb79ex33;var _0xb79ex24;return db[_0xcbaf[66]][_0xcbaf[94]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex20,null,_0xcbaf[97]))[_0xcbaf[36]](function(_0xb79ex20){if(_0xb79ex20){_0xb79ex33= _0xb79ex20;_0xb79ex2f[_0xcbaf[64]]= _[_0xcbaf[67]](db[_0xcbaf[98]][_0xcbaf[65]]);_0xb79ex2f[_0xcbaf[68]]= _[_0xcbaf[67]](_0xb79ex19[_0xcbaf[68]]);_0xb79ex2f[_0xcbaf[69]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],_0xb79ex2f[_0xcbaf[68]]);_0xb79ex23[_0xcbaf[71]]= _[_0xcbaf[70]](_0xb79ex2f[_0xcbaf[64]],qs[_0xcbaf[72]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[72]]));_0xb79ex23[_0xcbaf[71]]= (_0xb79ex23[_0xcbaf[71]][_0xcbaf[73]])?_0xb79ex23[_0xcbaf[71]]:_0xb79ex2f[_0xcbaf[64]];_0xb79ex23[_0xcbaf[76]]= qs[_0xcbaf[77]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[77]]);_0xb79ex23[_0xcbaf[78]]= qs[_0xcbaf[69]](_[_0xcbaf[79]](_0xb79ex19[_0xcbaf[68]],_0xb79ex2f[_0xcbaf[69]]));if(_0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]){_0xb79ex23[_0xcbaf[78]]= _[_0xcbaf[83]](_0xb79ex23[_0xcbaf[78]],{$or:_[_0xcbaf[82]](_0xb79ex23[_0xcbaf[71]],function(_0xb79ex30){var _0xb79ex31={};_0xb79ex31[_0xb79ex30]= {$like:_0xcbaf[81]+ _0xb79ex19[_0xcbaf[68]][_0xcbaf[80]]+ _0xcbaf[81]};return _0xb79ex31})})};_0xb79ex23= _[_0xcbaf[83]]({},_0xb79ex23,_0xb79ex19[_0xcbaf[84]]);return _0xb79ex33[_0xcbaf[97]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex35){if(_0xb79ex35){_0xb79ex24= _0xb79ex35[_0xcbaf[73]];if(!_0xb79ex19[_0xcbaf[68]][_0xcbaf[75]](_0xcbaf[74])){_0xb79ex23[_0xcbaf[47]]= qs[_0xcbaf[47]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[47]]);_0xb79ex23[_0xcbaf[46]]= qs[_0xcbaf[46]](_0xb79ex19[_0xcbaf[68]][_0xcbaf[46]])};return _0xb79ex33[_0xcbaf[97]](_0xb79ex23)}})[_0xcbaf[36]](function(_0xb79ex34){return _0xb79ex34?{count:_0xb79ex24,rows:_0xb79ex34}:null})[_0xcbaf[36]](respondWithResult(_0xb79ex20,null,_0xcbaf[97]))[_0xcbaf[27]](handleError(_0xb79ex20,null,_0xcbaf[97]))};exports[_0xcbaf[99]]= function(_0xb79ex19,_0xb79ex1d,_0xb79ex32){if(_0xb79ex19[_0xcbaf[91]][_0xcbaf[87]]){delete _0xb79ex19[_0xcbaf[91]][_0xcbaf[87]]};return db[_0xcbaf[66]][_0xcbaf[94]]({where:{id:_0xb79ex19[_0xcbaf[88]][_0xcbaf[87]]}})[_0xcbaf[36]](handleEntityNotFound(_0xb79ex1d,null,_0xcbaf[99]))[_0xcbaf[36]](function(_0xb79ex20){if(_0xb79ex20){return _0xb79ex20[_0xcbaf[99]](_0xb79ex19[_0xcbaf[91]][_0xcbaf[100]])};return null})[_0xcbaf[36]](respondWithResult(_0xb79ex1d,null,_0xcbaf[99]))[_0xcbaf[27]](handleError(_0xb79ex1d,null,_0xcbaf[99]))}
\ No newline at end of file
+var _0x5989=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x54\x61\x67\x73","\x54\x61\x67","\x73\x65\x74\x54\x61\x67\x73","\x69\x64\x73"];_0x5989[0];var jsonpatch=require(_0x5989[1]);var rp=require(_0x5989[2]);var moment=require(_0x5989[3]);var BPromise=require(_0x5989[4]);var util=require(_0x5989[5]);var path=require(_0x5989[6]);var sox=require(_0x5989[7]);var ejs=require(_0x5989[8]);var fs=require(_0x5989[9]);var _=require(_0x5989[10]);var squel=require(_0x5989[11]);var crypto=require(_0x5989[12]);var jsforce=require(_0x5989[13]);var toCsv=require(_0x5989[14]);var qs=require(_0x5989[15]);var logger=require(_0x5989[17])(_0x5989[16]);var utils=require(_0x5989[18]);var config=require(_0x5989[19]);var db=require(_0x5989[21])[_0x5989[20]];var jayson=require(_0x5989[22]);var client=jayson[_0x5989[24]][_0x5989[23]]({port:9002});function respondWithRpcPromise(_0x51fcx17,_0x51fcx18,_0x51fcx19){return  new BPromise(function(_0x51fcx1a,_0x51fcx1b){return client[_0x5989[37]](_0x51fcx17,_0x51fcx19)[_0x5989[36]](function(_0x51fcx1d){logger[_0x5989[29]](_0x5989[25],_0x51fcx18,_0x5989[28]);logger[_0x5989[32]](_0x5989[30],_0x51fcx18,_0x5989[28],JSON[_0x5989[31]](_0x51fcx1d));if(_0x51fcx1d[_0x5989[26]]){if(_0x51fcx1d[_0x5989[26]][_0x5989[33]]=== 500){logger[_0x5989[26]](_0x5989[25],_0x51fcx18,_0x51fcx1d[_0x5989[26]][_0x5989[34]]);return _0x51fcx1b(_0x51fcx1d[_0x5989[26]][_0x5989[34]])};logger[_0x5989[26]](_0x5989[25],_0x51fcx18,_0x51fcx1d[_0x5989[26]][_0x5989[34]]);return _0x51fcx1a(_0x51fcx1d[_0x5989[26]][_0x5989[34]])}else {logger[_0x5989[29]](_0x5989[25],_0x51fcx18,_0x5989[28]);_0x51fcx1a(_0x51fcx1d[_0x5989[35]][_0x5989[34]])}})[_0x5989[27]](function(_0x51fcx1c){logger[_0x5989[26]](_0x5989[25],_0x51fcx18,_0x51fcx1c);_0x51fcx1b(_0x51fcx1c)})})}function respondWithStatusCode(_0x51fcx1d,_0x51fcx1f,_0x51fcx18){_0x51fcx1f= _0x51fcx1f|| 204;return function(_0x51fcx20){if(_0x51fcx20){logger[_0x5989[29]](_0x5989[30],_0x51fcx18,_0x51fcx1f,_0x5989[38]);logger[_0x5989[32]](_0x5989[39],_0x51fcx18,_0x51fcx1f,_0x5989[38]);return _0x51fcx1d[_0x5989[40]](_0x51fcx1f)};return _0x51fcx1d[_0x5989[42]](304)[_0x5989[41]]()}}function respondWithResult(_0x51fcx1d,_0x51fcx1f,_0x51fcx18){_0x51fcx1f= _0x51fcx1f|| 200;return function(_0x51fcx20){if(_0x51fcx20){logger[_0x5989[29]](_0x5989[30],_0x51fcx18,_0x51fcx1f,_0x5989[43]);logger[_0x5989[32]](_0x5989[39],_0x51fcx18,_0x51fcx1f,_0x5989[43],JSON[_0x5989[31]](_0x51fcx20));return _0x51fcx1d[_0x5989[42]](_0x51fcx1f)[_0x5989[44]](_0x51fcx20)};return _0x51fcx1d[_0x5989[42]](304)[_0x5989[41]]()}}function respondWithFilteredResult(_0x51fcx1d,_0x51fcx23,_0x51fcx18){return function(_0x51fcx20){if(_0x51fcx20){var _0x51fcx24=_0x51fcx20[_0x5989[45]],_0x51fcx25=_0x51fcx23[_0x5989[46]],_0x51fcx26=_0x51fcx23[_0x5989[46]]+ _0x51fcx23[_0x5989[47]],_0x51fcx1f;if(_0x51fcx26>= _0x51fcx24){_0x51fcx26= _0x51fcx24;_0x51fcx1f= 200}else {_0x51fcx1f= 206};_0x51fcx1d[_0x5989[42]](_0x51fcx1f);logger[_0x5989[29]](_0x5989[30],_0x51fcx18,_0x51fcx1f,_0x5989[48]);logger[_0x5989[32]](_0x5989[39],_0x51fcx18,_0x51fcx1f,_0x5989[43],JSON[_0x5989[31]](_0x51fcx20));return _0x51fcx1d[_0x5989[52]](_0x5989[49],_0x51fcx25+ _0x5989[50]+ _0x51fcx26+ _0x5989[51]+ _0x51fcx24)[_0x5989[44]](_0x51fcx20)};return null}}function patchUpdates(_0x51fcx28){return function(_0x51fcx20){try{jsonpatch[_0x5989[53]](_0x51fcx20,_0x51fcx28,true)}catch(err){return BPromise[_0x5989[54]](err)};return _0x51fcx20[_0x5989[55]]()}}function saveUpdates(_0x51fcx2a,_0x51fcx1f,_0x51fcx18){return function(_0x51fcx20){if(_0x51fcx20){return _0x51fcx20[_0x5989[57]](_0x51fcx2a)[_0x5989[36]](function(_0x51fcx2b){logger[_0x5989[29]](_0x5989[30],_0x51fcx18,_0x51fcx1f,_0x5989[56]);logger[_0x5989[32]](_0x5989[39],_0x51fcx18,_0x51fcx1f,_0x5989[56],JSON[_0x5989[31]](_0x51fcx20));return _0x51fcx2b})};return null}}function removeEntity(_0x51fcx1d,_0x51fcx1f,_0x51fcx18){return function(_0x51fcx20){if(_0x51fcx20){return _0x51fcx20[_0x5989[59]]()[_0x5989[36]](function(){logger[_0x5989[29]](_0x5989[30],_0x51fcx18,_0x51fcx1f,_0x5989[58]);logger[_0x5989[32]](_0x5989[39],_0x51fcx18,_0x51fcx1f,_0x5989[58],JSON[_0x5989[31]](_0x51fcx20));_0x51fcx1d[_0x5989[42]](204)[_0x5989[41]]()})}}}function handleEntityNotFound(_0x51fcx1d,_0x51fcx1f,_0x51fcx18){return function(_0x51fcx20){if(!_0x51fcx20){logger[_0x5989[26]](_0x5989[30],_0x51fcx18,404,_0x5989[60]);_0x51fcx1d[_0x5989[42]](404)[_0x5989[41]]();return null};return _0x51fcx20}}function handleError(_0x51fcx1d,_0x51fcx1f,_0x51fcx18){_0x51fcx1f= _0x51fcx1f|| 500;return function(_0x51fcx1c){logger[_0x5989[26]](_0x5989[30],_0x51fcx18,_0x51fcx1f,JSON[_0x5989[31]](_0x51fcx1c));delete _0x51fcx1c[_0x5989[61]];_0x51fcx1d[_0x5989[42]](_0x51fcx1f)[_0x5989[62]](_0x51fcx1c)}}exports[_0x5989[63]]= function(_0x51fcx19,_0x51fcx1d){var _0x51fcx23={},_0x51fcx2f={};_0x51fcx2f[_0x5989[64]]= _[_0x5989[67]](db[_0x5989[66]][_0x5989[65]]);_0x51fcx2f[_0x5989[68]]= _[_0x5989[67]](_0x51fcx19[_0x5989[68]]);_0x51fcx2f[_0x5989[69]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],_0x51fcx2f[_0x5989[68]]);_0x51fcx23[_0x5989[71]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],qs[_0x5989[72]](_0x51fcx19[_0x5989[68]][_0x5989[72]]));_0x51fcx23[_0x5989[71]]= (_0x51fcx23[_0x5989[71]][_0x5989[73]])?_0x51fcx23[_0x5989[71]]:_0x51fcx2f[_0x5989[64]];if(!_0x51fcx19[_0x5989[68]][_0x5989[75]](_0x5989[74])){_0x51fcx23[_0x5989[47]]= qs[_0x5989[47]](_0x51fcx19[_0x5989[68]][_0x5989[47]]);_0x51fcx23[_0x5989[46]]= qs[_0x5989[46]](_0x51fcx19[_0x5989[68]][_0x5989[46]])};_0x51fcx23[_0x5989[76]]= qs[_0x5989[77]](_0x51fcx19[_0x5989[68]][_0x5989[77]]);_0x51fcx23[_0x5989[78]]= qs[_0x5989[69]](_[_0x5989[79]](_0x51fcx19[_0x5989[68]],_0x51fcx2f[_0x5989[69]]));if(_0x51fcx19[_0x5989[68]][_0x5989[80]]){_0x51fcx23[_0x5989[78]]= _[_0x5989[83]](_0x51fcx23[_0x5989[78]],{$or:_[_0x5989[82]](_0x51fcx23[_0x5989[71]],function(_0x51fcx30){var _0x51fcx31={};_0x51fcx31[_0x51fcx30]= {$like:_0x5989[81]+ _0x51fcx19[_0x5989[68]][_0x5989[80]]+ _0x5989[81]};return _0x51fcx31})})};_0x51fcx23= _[_0x5989[83]]({},_0x51fcx23,_0x51fcx19[_0x5989[84]]);return db[_0x5989[66]][_0x5989[85]](_0x51fcx23)[_0x5989[36]](respondWithFilteredResult(_0x51fcx1d,_0x51fcx23,_0x5989[63]))[_0x5989[27]](handleError(_0x51fcx1d,null,_0x5989[63]))};exports[_0x5989[86]]= function(_0x51fcx19,_0x51fcx1d){var _0x51fcx23={raw:false,where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}},_0x51fcx2f={};_0x51fcx2f[_0x5989[64]]= _[_0x5989[67]](db[_0x5989[66]][_0x5989[65]]);_0x51fcx2f[_0x5989[68]]= _[_0x5989[67]](_0x51fcx19[_0x5989[68]]);_0x51fcx2f[_0x5989[69]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],_0x51fcx2f[_0x5989[68]]);_0x51fcx23[_0x5989[71]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],qs[_0x5989[72]](_0x51fcx19[_0x5989[68]][_0x5989[72]]));_0x51fcx23[_0x5989[71]]= (_0x51fcx23[_0x5989[71]][_0x5989[73]])?_0x51fcx23[_0x5989[71]]:_0x51fcx2f[_0x5989[64]];_0x51fcx23= _[_0x5989[83]]({},_0x51fcx23,_0x51fcx19[_0x5989[84]]);return db[_0x5989[66]][_0x5989[89]](_0x51fcx23)[_0x5989[36]](handleEntityNotFound(_0x51fcx1d,null,_0x5989[86]))[_0x5989[36]](respondWithResult(_0x51fcx1d,null,_0x5989[86]))[_0x5989[27]](handleError(_0x51fcx1d,null,_0x5989[86]))};exports[_0x5989[90]]= function(_0x51fcx19,_0x51fcx1d){return db[_0x5989[66]][_0x5989[90]](_0x51fcx19[_0x5989[91]],{})[_0x5989[36]](respondWithResult(_0x51fcx1d,201,_0x5989[90]))[_0x5989[27]](handleError(_0x51fcx1d,null,_0x5989[90]))};exports[_0x5989[57]]= function(_0x51fcx19,_0x51fcx1d){if(_0x51fcx19[_0x5989[91]][_0x5989[87]]){delete _0x51fcx19[_0x5989[91]][_0x5989[87]]};return db[_0x5989[66]][_0x5989[89]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx1d,null,_0x5989[57]))[_0x5989[36]](saveUpdates(_0x51fcx19[_0x5989[91]],null,_0x5989[57]))[_0x5989[36]](respondWithResult(_0x51fcx1d,null,_0x5989[57]))[_0x5989[27]](handleError(_0x51fcx1d,null,_0x5989[57]))};exports[_0x5989[59]]= function(_0x51fcx19,_0x51fcx1d){return db[_0x5989[66]][_0x5989[89]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx1d,null,_0x5989[59]))[_0x5989[36]](removeEntity(_0x51fcx1d,null,_0x5989[59]))[_0x5989[27]](handleError(_0x51fcx1d,null,_0x5989[59]))};exports[_0x5989[92]]= function(_0x51fcx19,_0x51fcx20,_0x51fcx32){var _0x51fcx23={};var _0x51fcx2f={};var _0x51fcx33;var _0x51fcx24;return db[_0x5989[66]][_0x5989[94]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx20,null,_0x5989[92]))[_0x5989[36]](function(_0x51fcx20){if(_0x51fcx20){_0x51fcx33= _0x51fcx20;_0x51fcx2f[_0x5989[64]]= _[_0x5989[67]](db[_0x5989[93]][_0x5989[65]]);_0x51fcx2f[_0x5989[68]]= _[_0x5989[67]](_0x51fcx19[_0x5989[68]]);_0x51fcx2f[_0x5989[69]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],_0x51fcx2f[_0x5989[68]]);_0x51fcx23[_0x5989[71]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],qs[_0x5989[72]](_0x51fcx19[_0x5989[68]][_0x5989[72]]));_0x51fcx23[_0x5989[71]]= (_0x51fcx23[_0x5989[71]][_0x5989[73]])?_0x51fcx23[_0x5989[71]]:_0x51fcx2f[_0x5989[64]];_0x51fcx23[_0x5989[76]]= qs[_0x5989[77]](_0x51fcx19[_0x5989[68]][_0x5989[77]]);_0x51fcx23[_0x5989[78]]= qs[_0x5989[69]](_[_0x5989[79]](_0x51fcx19[_0x5989[68]],_0x51fcx2f[_0x5989[69]]));if(_0x51fcx19[_0x5989[68]][_0x5989[80]]){_0x51fcx23[_0x5989[78]]= _[_0x5989[83]](_0x51fcx23[_0x5989[78]],{$or:_[_0x5989[82]](_0x51fcx23[_0x5989[71]],function(_0x51fcx30){var _0x51fcx31={};_0x51fcx31[_0x51fcx30]= {$like:_0x5989[81]+ _0x51fcx19[_0x5989[68]][_0x5989[80]]+ _0x5989[81]};return _0x51fcx31})})};_0x51fcx23= _[_0x5989[83]]({},_0x51fcx23,_0x51fcx19[_0x5989[84]]);return _0x51fcx33[_0x5989[92]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx35){if(_0x51fcx35){_0x51fcx24= _0x51fcx35[_0x5989[73]];if(!_0x51fcx19[_0x5989[68]][_0x5989[75]](_0x5989[74])){_0x51fcx23[_0x5989[47]]= qs[_0x5989[47]](_0x51fcx19[_0x5989[68]][_0x5989[47]]);_0x51fcx23[_0x5989[46]]= qs[_0x5989[46]](_0x51fcx19[_0x5989[68]][_0x5989[46]])};return _0x51fcx33[_0x5989[92]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx34){return _0x51fcx34?{count:_0x51fcx24,rows:_0x51fcx34}:null})[_0x5989[36]](respondWithResult(_0x51fcx20,null,_0x5989[92]))[_0x5989[27]](handleError(_0x51fcx20,null,_0x5989[92]))};exports[_0x5989[95]]= function(_0x51fcx19,_0x51fcx20,_0x51fcx32){var _0x51fcx23={};var _0x51fcx2f={};var _0x51fcx33;var _0x51fcx24;return db[_0x5989[66]][_0x5989[94]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx20,null,_0x5989[95]))[_0x5989[36]](function(_0x51fcx20){if(_0x51fcx20){_0x51fcx33= _0x51fcx20;_0x51fcx2f[_0x5989[64]]= _[_0x5989[67]](db[_0x5989[93]][_0x5989[65]]);_0x51fcx2f[_0x5989[68]]= _[_0x5989[67]](_0x51fcx19[_0x5989[68]]);_0x51fcx2f[_0x5989[69]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],_0x51fcx2f[_0x5989[68]]);_0x51fcx23[_0x5989[71]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],qs[_0x5989[72]](_0x51fcx19[_0x5989[68]][_0x5989[72]]));_0x51fcx23[_0x5989[71]]= (_0x51fcx23[_0x5989[71]][_0x5989[73]])?_0x51fcx23[_0x5989[71]]:_0x51fcx2f[_0x5989[64]];_0x51fcx23[_0x5989[76]]= qs[_0x5989[77]](_0x51fcx19[_0x5989[68]][_0x5989[77]]);_0x51fcx23[_0x5989[78]]= qs[_0x5989[69]](_[_0x5989[79]](_0x51fcx19[_0x5989[68]],_0x51fcx2f[_0x5989[69]]));if(_0x51fcx19[_0x5989[68]][_0x5989[80]]){_0x51fcx23[_0x5989[78]]= _[_0x5989[83]](_0x51fcx23[_0x5989[78]],{$or:_[_0x5989[82]](_0x51fcx23[_0x5989[71]],function(_0x51fcx30){var _0x51fcx31={};_0x51fcx31[_0x51fcx30]= {$like:_0x5989[81]+ _0x51fcx19[_0x5989[68]][_0x5989[80]]+ _0x5989[81]};return _0x51fcx31})})};_0x51fcx23= _[_0x5989[83]]({},_0x51fcx23,_0x51fcx19[_0x5989[84]]);return _0x51fcx33[_0x5989[95]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx35){if(_0x51fcx35){_0x51fcx24= _0x51fcx35[_0x5989[73]];if(!_0x51fcx19[_0x5989[68]][_0x5989[75]](_0x5989[74])){_0x51fcx23[_0x5989[47]]= qs[_0x5989[47]](_0x51fcx19[_0x5989[68]][_0x5989[47]]);_0x51fcx23[_0x5989[46]]= qs[_0x5989[46]](_0x51fcx19[_0x5989[68]][_0x5989[46]])};return _0x51fcx33[_0x5989[95]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx34){return _0x51fcx34?{count:_0x51fcx24,rows:_0x51fcx34}:null})[_0x5989[36]](respondWithResult(_0x51fcx20,null,_0x5989[95]))[_0x5989[27]](handleError(_0x51fcx20,null,_0x5989[95]))};exports[_0x5989[96]]= function(_0x51fcx19,_0x51fcx20,_0x51fcx32){var _0x51fcx23={};var _0x51fcx2f={};var _0x51fcx33;var _0x51fcx24;return db[_0x5989[66]][_0x5989[94]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx20,null,_0x5989[96]))[_0x5989[36]](function(_0x51fcx20){if(_0x51fcx20){_0x51fcx33= _0x51fcx20;_0x51fcx2f[_0x5989[64]]= _[_0x5989[67]](db[_0x5989[93]][_0x5989[65]]);_0x51fcx2f[_0x5989[68]]= _[_0x5989[67]](_0x51fcx19[_0x5989[68]]);_0x51fcx2f[_0x5989[69]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],_0x51fcx2f[_0x5989[68]]);_0x51fcx23[_0x5989[71]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],qs[_0x5989[72]](_0x51fcx19[_0x5989[68]][_0x5989[72]]));_0x51fcx23[_0x5989[71]]= (_0x51fcx23[_0x5989[71]][_0x5989[73]])?_0x51fcx23[_0x5989[71]]:_0x51fcx2f[_0x5989[64]];_0x51fcx23[_0x5989[76]]= qs[_0x5989[77]](_0x51fcx19[_0x5989[68]][_0x5989[77]]);_0x51fcx23[_0x5989[78]]= qs[_0x5989[69]](_[_0x5989[79]](_0x51fcx19[_0x5989[68]],_0x51fcx2f[_0x5989[69]]));if(_0x51fcx19[_0x5989[68]][_0x5989[80]]){_0x51fcx23[_0x5989[78]]= _[_0x5989[83]](_0x51fcx23[_0x5989[78]],{$or:_[_0x5989[82]](_0x51fcx23[_0x5989[71]],function(_0x51fcx30){var _0x51fcx31={};_0x51fcx31[_0x51fcx30]= {$like:_0x5989[81]+ _0x51fcx19[_0x5989[68]][_0x5989[80]]+ _0x5989[81]};return _0x51fcx31})})};_0x51fcx23= _[_0x5989[83]]({},_0x51fcx23,_0x51fcx19[_0x5989[84]]);return _0x51fcx33[_0x5989[96]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx35){if(_0x51fcx35){_0x51fcx24= _0x51fcx35[_0x5989[73]];if(!_0x51fcx19[_0x5989[68]][_0x5989[75]](_0x5989[74])){_0x51fcx23[_0x5989[47]]= qs[_0x5989[47]](_0x51fcx19[_0x5989[68]][_0x5989[47]]);_0x51fcx23[_0x5989[46]]= qs[_0x5989[46]](_0x51fcx19[_0x5989[68]][_0x5989[46]])};return _0x51fcx33[_0x5989[96]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx34){return _0x51fcx34?{count:_0x51fcx24,rows:_0x51fcx34}:null})[_0x5989[36]](respondWithResult(_0x51fcx20,null,_0x5989[96]))[_0x5989[27]](handleError(_0x51fcx20,null,_0x5989[96]))};exports[_0x5989[97]]= function(_0x51fcx19,_0x51fcx20,_0x51fcx32){var _0x51fcx23={};var _0x51fcx2f={};var _0x51fcx33;var _0x51fcx24;return db[_0x5989[66]][_0x5989[94]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx20,null,_0x5989[97]))[_0x5989[36]](function(_0x51fcx20){if(_0x51fcx20){_0x51fcx33= _0x51fcx20;_0x51fcx2f[_0x5989[64]]= _[_0x5989[67]](db[_0x5989[98]][_0x5989[65]]);_0x51fcx2f[_0x5989[68]]= _[_0x5989[67]](_0x51fcx19[_0x5989[68]]);_0x51fcx2f[_0x5989[69]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],_0x51fcx2f[_0x5989[68]]);_0x51fcx23[_0x5989[71]]= _[_0x5989[70]](_0x51fcx2f[_0x5989[64]],qs[_0x5989[72]](_0x51fcx19[_0x5989[68]][_0x5989[72]]));_0x51fcx23[_0x5989[71]]= (_0x51fcx23[_0x5989[71]][_0x5989[73]])?_0x51fcx23[_0x5989[71]]:_0x51fcx2f[_0x5989[64]];_0x51fcx23[_0x5989[76]]= qs[_0x5989[77]](_0x51fcx19[_0x5989[68]][_0x5989[77]]);_0x51fcx23[_0x5989[78]]= qs[_0x5989[69]](_[_0x5989[79]](_0x51fcx19[_0x5989[68]],_0x51fcx2f[_0x5989[69]]));if(_0x51fcx19[_0x5989[68]][_0x5989[80]]){_0x51fcx23[_0x5989[78]]= _[_0x5989[83]](_0x51fcx23[_0x5989[78]],{$or:_[_0x5989[82]](_0x51fcx23[_0x5989[71]],function(_0x51fcx30){var _0x51fcx31={};_0x51fcx31[_0x51fcx30]= {$like:_0x5989[81]+ _0x51fcx19[_0x5989[68]][_0x5989[80]]+ _0x5989[81]};return _0x51fcx31})})};_0x51fcx23= _[_0x5989[83]]({},_0x51fcx23,_0x51fcx19[_0x5989[84]]);return _0x51fcx33[_0x5989[97]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx35){if(_0x51fcx35){_0x51fcx24= _0x51fcx35[_0x5989[73]];if(!_0x51fcx19[_0x5989[68]][_0x5989[75]](_0x5989[74])){_0x51fcx23[_0x5989[47]]= qs[_0x5989[47]](_0x51fcx19[_0x5989[68]][_0x5989[47]]);_0x51fcx23[_0x5989[46]]= qs[_0x5989[46]](_0x51fcx19[_0x5989[68]][_0x5989[46]])};return _0x51fcx33[_0x5989[97]](_0x51fcx23)}})[_0x5989[36]](function(_0x51fcx34){return _0x51fcx34?{count:_0x51fcx24,rows:_0x51fcx34}:null})[_0x5989[36]](respondWithResult(_0x51fcx20,null,_0x5989[97]))[_0x5989[27]](handleError(_0x51fcx20,null,_0x5989[97]))};exports[_0x5989[99]]= function(_0x51fcx19,_0x51fcx1d,_0x51fcx32){if(_0x51fcx19[_0x5989[91]][_0x5989[87]]){delete _0x51fcx19[_0x5989[91]][_0x5989[87]]};return db[_0x5989[66]][_0x5989[94]]({where:{id:_0x51fcx19[_0x5989[88]][_0x5989[87]]}})[_0x5989[36]](handleEntityNotFound(_0x51fcx1d,null,_0x5989[99]))[_0x5989[36]](function(_0x51fcx20){if(_0x51fcx20){return _0x51fcx20[_0x5989[99]](_0x51fcx19[_0x5989[91]][_0x5989[100]])};return null})[_0x5989[36]](respondWithResult(_0x51fcx1d,null,_0x5989[99]))[_0x5989[27]](handleError(_0x51fcx1d,null,_0x5989[99]))}
\ No newline at end of file
index 6021a50..d41a429 100644 (file)
@@ -1 +1 @@
-var _0xfd8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xfd8f[0];var _=require(_0xfd8f[1]);var util=require(_0xfd8f[2]);var logger=require(_0xfd8f[4])(_0xfd8f[3]);var attributes=require(_0xfd8f[5]);module[_0xfd8f[6]]= function(_0xffb7x5,_0xffb7x6){return _0xffb7x5[_0xfd8f[9]](_0xfd8f[7],attributes,{tableName:_0xfd8f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x1d21=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x1d21[0];var _=require(_0x1d21[1]);var util=require(_0x1d21[2]);var logger=require(_0x1d21[4])(_0x1d21[3]);var attributes=require(_0x1d21[5]);module[_0x1d21[6]]= function(_0xe7cfx5,_0xe7cfx6){return _0xe7cfx5[_0x1d21[9]](_0x1d21[7],attributes,{tableName:_0x1d21[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index aea05cc..00e3bdd 100644 (file)
@@ -1 +1 @@
-var _0x648e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x648e[0];var _=require(_0x648e[1]);var util=require(_0x648e[2]);var moment=require(_0x648e[3]);var BPromise=require(_0x648e[4]);var db=require(_0x648e[6])[_0x648e[5]];var utils=require(_0x648e[7]);var logger=require(_0x648e[9])(_0x648e[8]);var jayson=require(_0x648e[10]);var client=jayson[_0x648e[12]][_0x648e[11]]({port:9002});function respondWithRpcPromise(_0x5fa9xb,_0x5fa9xc,_0x5fa9xd){return  new BPromise(function(_0x5fa9xe,_0x5fa9xf){return client[_0x648e[25]](_0x5fa9xb,_0x5fa9xd)[_0x648e[24]](function(_0x5fa9x11){logger[_0x648e[17]](_0x648e[13],_0x5fa9xc,_0x648e[16]);logger[_0x648e[20]](_0x648e[18],_0x5fa9xc,_0x648e[16],JSON[_0x648e[19]](_0x5fa9x11));if(_0x5fa9x11[_0x648e[14]]){if(_0x5fa9x11[_0x648e[14]][_0x648e[21]]=== 500){logger[_0x648e[14]](_0x648e[13],_0x5fa9xc,_0x5fa9x11[_0x648e[14]][_0x648e[22]]);return _0x5fa9xf(_0x5fa9x11[_0x648e[14]][_0x648e[22]])};logger[_0x648e[14]](_0x648e[13],_0x5fa9xc,_0x5fa9x11[_0x648e[14]][_0x648e[22]]);return _0x5fa9xe(_0x5fa9x11[_0x648e[14]][_0x648e[22]])}else {logger[_0x648e[17]](_0x648e[13],_0x5fa9xc,_0x648e[16]);_0x5fa9xe(_0x5fa9x11[_0x648e[23]][_0x648e[22]])}})[_0x648e[15]](function(_0x5fa9x10){logger[_0x648e[14]](_0x648e[13],_0x5fa9xc,_0x5fa9x10);_0x5fa9xf(_0x5fa9x10)})})}
\ No newline at end of file
+var _0xd91d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd91d[0];var _=require(_0xd91d[1]);var util=require(_0xd91d[2]);var moment=require(_0xd91d[3]);var BPromise=require(_0xd91d[4]);var db=require(_0xd91d[6])[_0xd91d[5]];var utils=require(_0xd91d[7]);var logger=require(_0xd91d[9])(_0xd91d[8]);var jayson=require(_0xd91d[10]);var client=jayson[_0xd91d[12]][_0xd91d[11]]({port:9002});function respondWithRpcPromise(_0xa944xb,_0xa944xc,_0xa944xd){return  new BPromise(function(_0xa944xe,_0xa944xf){return client[_0xd91d[25]](_0xa944xb,_0xa944xd)[_0xd91d[24]](function(_0xa944x11){logger[_0xd91d[17]](_0xd91d[13],_0xa944xc,_0xd91d[16]);logger[_0xd91d[20]](_0xd91d[18],_0xa944xc,_0xd91d[16],JSON[_0xd91d[19]](_0xa944x11));if(_0xa944x11[_0xd91d[14]]){if(_0xa944x11[_0xd91d[14]][_0xd91d[21]]=== 500){logger[_0xd91d[14]](_0xd91d[13],_0xa944xc,_0xa944x11[_0xd91d[14]][_0xd91d[22]]);return _0xa944xf(_0xa944x11[_0xd91d[14]][_0xd91d[22]])};logger[_0xd91d[14]](_0xd91d[13],_0xa944xc,_0xa944x11[_0xd91d[14]][_0xd91d[22]]);return _0xa944xe(_0xa944x11[_0xd91d[14]][_0xd91d[22]])}else {logger[_0xd91d[17]](_0xd91d[13],_0xa944xc,_0xd91d[16]);_0xa944xe(_0xa944x11[_0xd91d[23]][_0xd91d[22]])}})[_0xd91d[15]](function(_0xa944x10){logger[_0xd91d[14]](_0xd91d[13],_0xa944xc,_0xa944x10);_0xa944xf(_0xa944x10)})})}
\ No newline at end of file
index ec7af92..8efcf58 100644 (file)
@@ -1 +1 @@
-var _0x2004=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2004[0];var multer=require(_0x2004[1]);var util=require(_0x2004[2]);var path=require(_0x2004[3]);var express=require(_0x2004[4]);var router=express.Router();var auth=require(_0x2004[5]);var config=require(_0x2004[6]);var controller=require(_0x2004[7]);router[_0x2004[11]](_0x2004[8],auth[_0x2004[9]](),controller[_0x2004[10]]);router[_0x2004[11]](_0x2004[12],auth[_0x2004[9]](),controller[_0x2004[13]]);router[_0x2004[15]](_0x2004[8],auth[_0x2004[9]](),controller[_0x2004[14]]);router[_0x2004[17]](_0x2004[12],auth[_0x2004[9]](),controller[_0x2004[16]]);router[_0x2004[19]](_0x2004[12],auth[_0x2004[9]](),controller[_0x2004[18]]);module[_0x2004[20]]= router
\ No newline at end of file
+var _0x820e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x820e[0];var multer=require(_0x820e[1]);var util=require(_0x820e[2]);var path=require(_0x820e[3]);var express=require(_0x820e[4]);var router=express.Router();var auth=require(_0x820e[5]);var config=require(_0x820e[6]);var controller=require(_0x820e[7]);router[_0x820e[11]](_0x820e[8],auth[_0x820e[9]](),controller[_0x820e[10]]);router[_0x820e[11]](_0x820e[12],auth[_0x820e[9]](),controller[_0x820e[13]]);router[_0x820e[15]](_0x820e[8],auth[_0x820e[9]](),controller[_0x820e[14]]);router[_0x820e[17]](_0x820e[12],auth[_0x820e[9]](),controller[_0x820e[16]]);router[_0x820e[19]](_0x820e[12],auth[_0x820e[9]](),controller[_0x820e[18]]);module[_0x820e[20]]= router
\ No newline at end of file
index 7476540..ceb82b7 100644 (file)
@@ -1 +1 @@
-var _0x839b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x839b[0];var Sequelize=require(_0x839b[1]);module[_0x839b[2]]= {type:{type:Sequelize.ENUM(_0x839b[3],_0x839b[4],_0x839b[5],_0x839b[6]),defaultValue:_0x839b[3]},content:{type:Sequelize[_0x839b[7]]},key:{type:Sequelize[_0x839b[7]]},keyType:{type:Sequelize.ENUM(_0x839b[3],_0x839b[4],_0x839b[5])},keyContent:{type:Sequelize[_0x839b[7]]},idField:{type:Sequelize[_0x839b[7]]},nameField:{type:Sequelize[_0x839b[7]]},customField:{type:Sequelize[_0x839b[8]],defaultValue:true},variableName:{type:Sequelize[_0x839b[7]]}}
\ No newline at end of file
+var _0x134f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x134f[0];var Sequelize=require(_0x134f[1]);module[_0x134f[2]]= {type:{type:Sequelize.ENUM(_0x134f[3],_0x134f[4],_0x134f[5],_0x134f[6]),defaultValue:_0x134f[3]},content:{type:Sequelize[_0x134f[7]]},key:{type:Sequelize[_0x134f[7]]},keyType:{type:Sequelize.ENUM(_0x134f[3],_0x134f[4],_0x134f[5])},keyContent:{type:Sequelize[_0x134f[7]]},idField:{type:Sequelize[_0x134f[7]]},nameField:{type:Sequelize[_0x134f[7]]},customField:{type:Sequelize[_0x134f[8]],defaultValue:true},variableName:{type:Sequelize[_0x134f[7]]}}
\ No newline at end of file
index a3892db..e75ac0f 100644 (file)
@@ -1 +1 @@
-var _0xd447=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd447[0];var jsonpatch=require(_0xd447[1]);var rp=require(_0xd447[2]);var moment=require(_0xd447[3]);var BPromise=require(_0xd447[4]);var util=require(_0xd447[5]);var path=require(_0xd447[6]);var sox=require(_0xd447[7]);var ejs=require(_0xd447[8]);var fs=require(_0xd447[9]);var _=require(_0xd447[10]);var squel=require(_0xd447[11]);var crypto=require(_0xd447[12]);var jsforce=require(_0xd447[13]);var toCsv=require(_0xd447[14]);var qs=require(_0xd447[15]);var logger=require(_0xd447[17])(_0xd447[16]);var utils=require(_0xd447[18]);var config=require(_0xd447[19]);var db=require(_0xd447[21])[_0xd447[20]];function respondWithStatusCode(_0x2502x15,_0x2502x16,_0x2502x17){_0x2502x16= _0x2502x16|| 204;return function(_0x2502x18){if(_0x2502x18){logger[_0xd447[24]](_0xd447[22],_0x2502x17,_0x2502x16,_0xd447[23]);logger[_0xd447[26]](_0xd447[25],_0x2502x17,_0x2502x16,_0xd447[23]);return _0x2502x15[_0xd447[27]](_0x2502x16)};return _0x2502x15[_0xd447[29]](304)[_0xd447[28]]()}}function respondWithResult(_0x2502x15,_0x2502x16,_0x2502x17){_0x2502x16= _0x2502x16|| 200;return function(_0x2502x18){if(_0x2502x18){logger[_0xd447[24]](_0xd447[22],_0x2502x17,_0x2502x16,_0xd447[30]);logger[_0xd447[26]](_0xd447[25],_0x2502x17,_0x2502x16,_0xd447[30],JSON[_0xd447[31]](_0x2502x18));return _0x2502x15[_0xd447[29]](_0x2502x16)[_0xd447[32]](_0x2502x18)};return _0x2502x15[_0xd447[29]](304)[_0xd447[28]]()}}function respondWithFilteredResult(_0x2502x15,_0x2502x1b,_0x2502x17){return function(_0x2502x18){if(_0x2502x18){var _0x2502x1c=_0x2502x18[_0xd447[33]],_0x2502x1d=_0x2502x1b[_0xd447[34]],_0x2502x1e=_0x2502x1b[_0xd447[34]]+ _0x2502x1b[_0xd447[35]],_0x2502x16;if(_0x2502x1e>= _0x2502x1c){_0x2502x1e= _0x2502x1c;_0x2502x16= 200}else {_0x2502x16= 206};_0x2502x15[_0xd447[29]](_0x2502x16);logger[_0xd447[24]](_0xd447[22],_0x2502x17,_0x2502x16,_0xd447[36]);logger[_0xd447[26]](_0xd447[25],_0x2502x17,_0x2502x16,_0xd447[30],JSON[_0xd447[31]](_0x2502x18));return _0x2502x15[_0xd447[40]](_0xd447[37],_0x2502x1d+ _0xd447[38]+ _0x2502x1e+ _0xd447[39]+ _0x2502x1c)[_0xd447[32]](_0x2502x18)};return null}}function patchUpdates(_0x2502x20){return function(_0x2502x18){try{jsonpatch[_0xd447[41]](_0x2502x18,_0x2502x20,true)}catch(err){return BPromise[_0xd447[42]](err)};return _0x2502x18[_0xd447[43]]()}}function saveUpdates(_0x2502x22,_0x2502x16,_0x2502x17){return function(_0x2502x18){if(_0x2502x18){return _0x2502x18[_0xd447[46]](_0x2502x22)[_0xd447[45]](function(_0x2502x23){logger[_0xd447[24]](_0xd447[22],_0x2502x17,_0x2502x16,_0xd447[44]);logger[_0xd447[26]](_0xd447[25],_0x2502x17,_0x2502x16,_0xd447[44],JSON[_0xd447[31]](_0x2502x18));return _0x2502x23})};return null}}function removeEntity(_0x2502x15,_0x2502x16,_0x2502x17){return function(_0x2502x18){if(_0x2502x18){return _0x2502x18[_0xd447[48]]()[_0xd447[45]](function(){logger[_0xd447[24]](_0xd447[22],_0x2502x17,_0x2502x16,_0xd447[47]);logger[_0xd447[26]](_0xd447[25],_0x2502x17,_0x2502x16,_0xd447[47],JSON[_0xd447[31]](_0x2502x18));_0x2502x15[_0xd447[29]](204)[_0xd447[28]]()})}}}function handleEntityNotFound(_0x2502x15,_0x2502x16,_0x2502x17){return function(_0x2502x18){if(!_0x2502x18){logger[_0xd447[50]](_0xd447[22],_0x2502x17,404,_0xd447[49]);_0x2502x15[_0xd447[29]](404)[_0xd447[28]]();return null};return _0x2502x18}}function handleError(_0x2502x15,_0x2502x16,_0x2502x17){_0x2502x16= _0x2502x16|| 500;return function(_0x2502x27){logger[_0xd447[50]](_0xd447[22],_0x2502x17,_0x2502x16,JSON[_0xd447[31]](_0x2502x27));delete _0x2502x27[_0xd447[51]];_0x2502x15[_0xd447[29]](_0x2502x16)[_0xd447[52]](_0x2502x27)}}exports[_0xd447[53]]= function(_0x2502x28,_0x2502x15){var _0x2502x1b={},_0x2502x29={};_0x2502x29[_0xd447[54]]= _[_0xd447[57]](db[_0xd447[56]][_0xd447[55]]);_0x2502x29[_0xd447[58]]= _[_0xd447[57]](_0x2502x28[_0xd447[58]]);_0x2502x29[_0xd447[59]]= _[_0xd447[60]](_0x2502x29[_0xd447[54]],_0x2502x29[_0xd447[58]]);_0x2502x1b[_0xd447[61]]= _[_0xd447[60]](_0x2502x29[_0xd447[54]],qs[_0xd447[62]](_0x2502x28[_0xd447[58]][_0xd447[62]]));_0x2502x1b[_0xd447[61]]= (_0x2502x1b[_0xd447[61]][_0xd447[63]])?_0x2502x1b[_0xd447[61]]:_0x2502x29[_0xd447[54]];if(!_0x2502x28[_0xd447[58]][_0xd447[65]](_0xd447[64])){_0x2502x1b[_0xd447[35]]= qs[_0xd447[35]](_0x2502x28[_0xd447[58]][_0xd447[35]]);_0x2502x1b[_0xd447[34]]= qs[_0xd447[34]](_0x2502x28[_0xd447[58]][_0xd447[34]])};_0x2502x1b[_0xd447[66]]= qs[_0xd447[67]](_0x2502x28[_0xd447[58]][_0xd447[67]]);_0x2502x1b[_0xd447[68]]= qs[_0xd447[59]](_[_0xd447[69]](_0x2502x28[_0xd447[58]],_0x2502x29[_0xd447[59]]));if(_0x2502x28[_0xd447[58]][_0xd447[70]]){_0x2502x1b[_0xd447[68]]= _[_0xd447[73]](_0x2502x1b[_0xd447[68]],{$or:_[_0xd447[72]](_0x2502x1b[_0xd447[61]],function(_0x2502x2a){var _0x2502x2b={};_0x2502x2b[_0x2502x2a]= {$like:_0xd447[71]+ _0x2502x28[_0xd447[58]][_0xd447[70]]+ _0xd447[71]};return _0x2502x2b})})};_0x2502x1b= _[_0xd447[73]]({},_0x2502x1b,_0x2502x28[_0xd447[74]]);return db[_0xd447[56]][_0xd447[76]](_0x2502x1b)[_0xd447[45]](respondWithFilteredResult(_0x2502x15,_0x2502x1b,_0xd447[53]))[_0xd447[75]](handleError(_0x2502x15,null,_0xd447[53]))};exports[_0xd447[77]]= function(_0x2502x28,_0x2502x15){var _0x2502x1b={raw:true,where:{id:_0x2502x28[_0xd447[79]][_0xd447[78]]}},_0x2502x29={};_0x2502x29[_0xd447[54]]= _[_0xd447[57]](db[_0xd447[56]][_0xd447[55]]);_0x2502x29[_0xd447[58]]= _[_0xd447[57]](_0x2502x28[_0xd447[58]]);_0x2502x29[_0xd447[59]]= _[_0xd447[60]](_0x2502x29[_0xd447[54]],_0x2502x29[_0xd447[58]]);_0x2502x1b[_0xd447[61]]= _[_0xd447[60]](_0x2502x29[_0xd447[54]],qs[_0xd447[62]](_0x2502x28[_0xd447[58]][_0xd447[62]]));_0x2502x1b[_0xd447[61]]= (_0x2502x1b[_0xd447[61]][_0xd447[63]])?_0x2502x1b[_0xd447[61]]:_0x2502x29[_0xd447[54]];_0x2502x1b= _[_0xd447[73]]({},_0x2502x1b,_0x2502x28[_0xd447[74]]);return db[_0xd447[56]][_0xd447[80]](_0x2502x1b)[_0xd447[45]](handleEntityNotFound(_0x2502x15,null,_0xd447[77]))[_0xd447[45]](respondWithResult(_0x2502x15,null,_0xd447[77]))[_0xd447[75]](handleError(_0x2502x15,null,_0xd447[77]))};exports[_0xd447[81]]= function(_0x2502x28,_0x2502x15){return db[_0xd447[56]][_0xd447[81]](_0x2502x28[_0xd447[82]],{})[_0xd447[45]](respondWithResult(_0x2502x15,201,_0xd447[81]))[_0xd447[75]](handleError(_0x2502x15,null,_0xd447[81]))};exports[_0xd447[46]]= function(_0x2502x28,_0x2502x15){if(_0x2502x28[_0xd447[82]][_0xd447[78]]){delete _0x2502x28[_0xd447[82]][_0xd447[78]]};return db[_0xd447[56]][_0xd447[80]]({where:{id:_0x2502x28[_0xd447[79]][_0xd447[78]]}})[_0xd447[45]](handleEntityNotFound(_0x2502x15,null,_0xd447[46]))[_0xd447[45]](saveUpdates(_0x2502x28[_0xd447[82]],null,_0xd447[46]))[_0xd447[45]](respondWithResult(_0x2502x15,null,_0xd447[46]))[_0xd447[75]](handleError(_0x2502x15,null,_0xd447[46]))};exports[_0xd447[48]]= function(_0x2502x28,_0x2502x15){return db[_0xd447[56]][_0xd447[80]]({where:{id:_0x2502x28[_0xd447[79]][_0xd447[78]]}})[_0xd447[45]](handleEntityNotFound(_0x2502x15,null,_0xd447[48]))[_0xd447[45]](removeEntity(_0x2502x15,null,_0xd447[48]))[_0xd447[75]](handleError(_0x2502x15,null,_0xd447[48]))}
\ No newline at end of file
+var _0x4432=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x4432[0];var jsonpatch=require(_0x4432[1]);var rp=require(_0x4432[2]);var moment=require(_0x4432[3]);var BPromise=require(_0x4432[4]);var util=require(_0x4432[5]);var path=require(_0x4432[6]);var sox=require(_0x4432[7]);var ejs=require(_0x4432[8]);var fs=require(_0x4432[9]);var _=require(_0x4432[10]);var squel=require(_0x4432[11]);var crypto=require(_0x4432[12]);var jsforce=require(_0x4432[13]);var toCsv=require(_0x4432[14]);var qs=require(_0x4432[15]);var logger=require(_0x4432[17])(_0x4432[16]);var utils=require(_0x4432[18]);var config=require(_0x4432[19]);var db=require(_0x4432[21])[_0x4432[20]];function respondWithStatusCode(_0xb0d9x15,_0xb0d9x16,_0xb0d9x17){_0xb0d9x16= _0xb0d9x16|| 204;return function(_0xb0d9x18){if(_0xb0d9x18){logger[_0x4432[24]](_0x4432[22],_0xb0d9x17,_0xb0d9x16,_0x4432[23]);logger[_0x4432[26]](_0x4432[25],_0xb0d9x17,_0xb0d9x16,_0x4432[23]);return _0xb0d9x15[_0x4432[27]](_0xb0d9x16)};return _0xb0d9x15[_0x4432[29]](304)[_0x4432[28]]()}}function respondWithResult(_0xb0d9x15,_0xb0d9x16,_0xb0d9x17){_0xb0d9x16= _0xb0d9x16|| 200;return function(_0xb0d9x18){if(_0xb0d9x18){logger[_0x4432[24]](_0x4432[22],_0xb0d9x17,_0xb0d9x16,_0x4432[30]);logger[_0x4432[26]](_0x4432[25],_0xb0d9x17,_0xb0d9x16,_0x4432[30],JSON[_0x4432[31]](_0xb0d9x18));return _0xb0d9x15[_0x4432[29]](_0xb0d9x16)[_0x4432[32]](_0xb0d9x18)};return _0xb0d9x15[_0x4432[29]](304)[_0x4432[28]]()}}function respondWithFilteredResult(_0xb0d9x15,_0xb0d9x1b,_0xb0d9x17){return function(_0xb0d9x18){if(_0xb0d9x18){var _0xb0d9x1c=_0xb0d9x18[_0x4432[33]],_0xb0d9x1d=_0xb0d9x1b[_0x4432[34]],_0xb0d9x1e=_0xb0d9x1b[_0x4432[34]]+ _0xb0d9x1b[_0x4432[35]],_0xb0d9x16;if(_0xb0d9x1e>= _0xb0d9x1c){_0xb0d9x1e= _0xb0d9x1c;_0xb0d9x16= 200}else {_0xb0d9x16= 206};_0xb0d9x15[_0x4432[29]](_0xb0d9x16);logger[_0x4432[24]](_0x4432[22],_0xb0d9x17,_0xb0d9x16,_0x4432[36]);logger[_0x4432[26]](_0x4432[25],_0xb0d9x17,_0xb0d9x16,_0x4432[30],JSON[_0x4432[31]](_0xb0d9x18));return _0xb0d9x15[_0x4432[40]](_0x4432[37],_0xb0d9x1d+ _0x4432[38]+ _0xb0d9x1e+ _0x4432[39]+ _0xb0d9x1c)[_0x4432[32]](_0xb0d9x18)};return null}}function patchUpdates(_0xb0d9x20){return function(_0xb0d9x18){try{jsonpatch[_0x4432[41]](_0xb0d9x18,_0xb0d9x20,true)}catch(err){return BPromise[_0x4432[42]](err)};return _0xb0d9x18[_0x4432[43]]()}}function saveUpdates(_0xb0d9x22,_0xb0d9x16,_0xb0d9x17){return function(_0xb0d9x18){if(_0xb0d9x18){return _0xb0d9x18[_0x4432[46]](_0xb0d9x22)[_0x4432[45]](function(_0xb0d9x23){logger[_0x4432[24]](_0x4432[22],_0xb0d9x17,_0xb0d9x16,_0x4432[44]);logger[_0x4432[26]](_0x4432[25],_0xb0d9x17,_0xb0d9x16,_0x4432[44],JSON[_0x4432[31]](_0xb0d9x18));return _0xb0d9x23})};return null}}function removeEntity(_0xb0d9x15,_0xb0d9x16,_0xb0d9x17){return function(_0xb0d9x18){if(_0xb0d9x18){return _0xb0d9x18[_0x4432[48]]()[_0x4432[45]](function(){logger[_0x4432[24]](_0x4432[22],_0xb0d9x17,_0xb0d9x16,_0x4432[47]);logger[_0x4432[26]](_0x4432[25],_0xb0d9x17,_0xb0d9x16,_0x4432[47],JSON[_0x4432[31]](_0xb0d9x18));_0xb0d9x15[_0x4432[29]](204)[_0x4432[28]]()})}}}function handleEntityNotFound(_0xb0d9x15,_0xb0d9x16,_0xb0d9x17){return function(_0xb0d9x18){if(!_0xb0d9x18){logger[_0x4432[50]](_0x4432[22],_0xb0d9x17,404,_0x4432[49]);_0xb0d9x15[_0x4432[29]](404)[_0x4432[28]]();return null};return _0xb0d9x18}}function handleError(_0xb0d9x15,_0xb0d9x16,_0xb0d9x17){_0xb0d9x16= _0xb0d9x16|| 500;return function(_0xb0d9x27){logger[_0x4432[50]](_0x4432[22],_0xb0d9x17,_0xb0d9x16,JSON[_0x4432[31]](_0xb0d9x27));delete _0xb0d9x27[_0x4432[51]];_0xb0d9x15[_0x4432[29]](_0xb0d9x16)[_0x4432[52]](_0xb0d9x27)}}exports[_0x4432[53]]= function(_0xb0d9x28,_0xb0d9x15){var _0xb0d9x1b={},_0xb0d9x29={};_0xb0d9x29[_0x4432[54]]= _[_0x4432[57]](db[_0x4432[56]][_0x4432[55]]);_0xb0d9x29[_0x4432[58]]= _[_0x4432[57]](_0xb0d9x28[_0x4432[58]]);_0xb0d9x29[_0x4432[59]]= _[_0x4432[60]](_0xb0d9x29[_0x4432[54]],_0xb0d9x29[_0x4432[58]]);_0xb0d9x1b[_0x4432[61]]= _[_0x4432[60]](_0xb0d9x29[_0x4432[54]],qs[_0x4432[62]](_0xb0d9x28[_0x4432[58]][_0x4432[62]]));_0xb0d9x1b[_0x4432[61]]= (_0xb0d9x1b[_0x4432[61]][_0x4432[63]])?_0xb0d9x1b[_0x4432[61]]:_0xb0d9x29[_0x4432[54]];if(!_0xb0d9x28[_0x4432[58]][_0x4432[65]](_0x4432[64])){_0xb0d9x1b[_0x4432[35]]= qs[_0x4432[35]](_0xb0d9x28[_0x4432[58]][_0x4432[35]]);_0xb0d9x1b[_0x4432[34]]= qs[_0x4432[34]](_0xb0d9x28[_0x4432[58]][_0x4432[34]])};_0xb0d9x1b[_0x4432[66]]= qs[_0x4432[67]](_0xb0d9x28[_0x4432[58]][_0x4432[67]]);_0xb0d9x1b[_0x4432[68]]= qs[_0x4432[59]](_[_0x4432[69]](_0xb0d9x28[_0x4432[58]],_0xb0d9x29[_0x4432[59]]));if(_0xb0d9x28[_0x4432[58]][_0x4432[70]]){_0xb0d9x1b[_0x4432[68]]= _[_0x4432[73]](_0xb0d9x1b[_0x4432[68]],{$or:_[_0x4432[72]](_0xb0d9x1b[_0x4432[61]],function(_0xb0d9x2a){var _0xb0d9x2b={};_0xb0d9x2b[_0xb0d9x2a]= {$like:_0x4432[71]+ _0xb0d9x28[_0x4432[58]][_0x4432[70]]+ _0x4432[71]};return _0xb0d9x2b})})};_0xb0d9x1b= _[_0x4432[73]]({},_0xb0d9x1b,_0xb0d9x28[_0x4432[74]]);return db[_0x4432[56]][_0x4432[76]](_0xb0d9x1b)[_0x4432[45]](respondWithFilteredResult(_0xb0d9x15,_0xb0d9x1b,_0x4432[53]))[_0x4432[75]](handleError(_0xb0d9x15,null,_0x4432[53]))};exports[_0x4432[77]]= function(_0xb0d9x28,_0xb0d9x15){var _0xb0d9x1b={raw:true,where:{id:_0xb0d9x28[_0x4432[79]][_0x4432[78]]}},_0xb0d9x29={};_0xb0d9x29[_0x4432[54]]= _[_0x4432[57]](db[_0x4432[56]][_0x4432[55]]);_0xb0d9x29[_0x4432[58]]= _[_0x4432[57]](_0xb0d9x28[_0x4432[58]]);_0xb0d9x29[_0x4432[59]]= _[_0x4432[60]](_0xb0d9x29[_0x4432[54]],_0xb0d9x29[_0x4432[58]]);_0xb0d9x1b[_0x4432[61]]= _[_0x4432[60]](_0xb0d9x29[_0x4432[54]],qs[_0x4432[62]](_0xb0d9x28[_0x4432[58]][_0x4432[62]]));_0xb0d9x1b[_0x4432[61]]= (_0xb0d9x1b[_0x4432[61]][_0x4432[63]])?_0xb0d9x1b[_0x4432[61]]:_0xb0d9x29[_0x4432[54]];_0xb0d9x1b= _[_0x4432[73]]({},_0xb0d9x1b,_0xb0d9x28[_0x4432[74]]);return db[_0x4432[56]][_0x4432[80]](_0xb0d9x1b)[_0x4432[45]](handleEntityNotFound(_0xb0d9x15,null,_0x4432[77]))[_0x4432[45]](respondWithResult(_0xb0d9x15,null,_0x4432[77]))[_0x4432[75]](handleError(_0xb0d9x15,null,_0x4432[77]))};exports[_0x4432[81]]= function(_0xb0d9x28,_0xb0d9x15){return db[_0x4432[56]][_0x4432[81]](_0xb0d9x28[_0x4432[82]],{})[_0x4432[45]](respondWithResult(_0xb0d9x15,201,_0x4432[81]))[_0x4432[75]](handleError(_0xb0d9x15,null,_0x4432[81]))};exports[_0x4432[46]]= function(_0xb0d9x28,_0xb0d9x15){if(_0xb0d9x28[_0x4432[82]][_0x4432[78]]){delete _0xb0d9x28[_0x4432[82]][_0x4432[78]]};return db[_0x4432[56]][_0x4432[80]]({where:{id:_0xb0d9x28[_0x4432[79]][_0x4432[78]]}})[_0x4432[45]](handleEntityNotFound(_0xb0d9x15,null,_0x4432[46]))[_0x4432[45]](saveUpdates(_0xb0d9x28[_0x4432[82]],null,_0x4432[46]))[_0x4432[45]](respondWithResult(_0xb0d9x15,null,_0x4432[46]))[_0x4432[75]](handleError(_0xb0d9x15,null,_0x4432[46]))};exports[_0x4432[48]]= function(_0xb0d9x28,_0xb0d9x15){return db[_0x4432[56]][_0x4432[80]]({where:{id:_0xb0d9x28[_0x4432[79]][_0x4432[78]]}})[_0x4432[45]](handleEntityNotFound(_0xb0d9x15,null,_0x4432[48]))[_0x4432[45]](removeEntity(_0xb0d9x15,null,_0x4432[48]))[_0x4432[75]](handleError(_0xb0d9x15,null,_0x4432[48]))}
\ No newline at end of file
index 20d6e7d..e96cf86 100644 (file)
@@ -1 +1 @@
-var _0xc5b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xc5b2[0];var _=require(_0xc5b2[1]);var util=require(_0xc5b2[2]);var logger=require(_0xc5b2[4])(_0xc5b2[3]);var attributes=require(_0xc5b2[5]);module[_0xc5b2[6]]= function(_0x65a0x5,_0x65a0x6){return _0x65a0x5[_0xc5b2[9]](_0xc5b2[7],attributes,{tableName:_0xc5b2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7722=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x7722[0];var _=require(_0x7722[1]);var util=require(_0x7722[2]);var logger=require(_0x7722[4])(_0x7722[3]);var attributes=require(_0x7722[5]);module[_0x7722[6]]= function(_0x7cb8x5,_0x7cb8x6){return _0x7cb8x5[_0x7722[9]](_0x7722[7],attributes,{tableName:_0x7722[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 356c113..eeab85f 100644 (file)
@@ -1 +1 @@
-var _0x4fab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4fab[0];var _=require(_0x4fab[1]);var util=require(_0x4fab[2]);var moment=require(_0x4fab[3]);var BPromise=require(_0x4fab[4]);var db=require(_0x4fab[6])[_0x4fab[5]];var utils=require(_0x4fab[7]);var logger=require(_0x4fab[9])(_0x4fab[8]);var jayson=require(_0x4fab[10]);var client=jayson[_0x4fab[12]][_0x4fab[11]]({port:9002});function respondWithRpcPromise(_0x976cxb,_0x976cxc,_0x976cxd){return  new BPromise(function(_0x976cxe,_0x976cxf){return client[_0x4fab[25]](_0x976cxb,_0x976cxd)[_0x4fab[24]](function(_0x976cx11){logger[_0x4fab[17]](_0x4fab[13],_0x976cxc,_0x4fab[16]);logger[_0x4fab[20]](_0x4fab[18],_0x976cxc,_0x4fab[16],JSON[_0x4fab[19]](_0x976cx11));if(_0x976cx11[_0x4fab[14]]){if(_0x976cx11[_0x4fab[14]][_0x4fab[21]]=== 500){logger[_0x4fab[14]](_0x4fab[13],_0x976cxc,_0x976cx11[_0x4fab[14]][_0x4fab[22]]);return _0x976cxf(_0x976cx11[_0x4fab[14]][_0x4fab[22]])};logger[_0x4fab[14]](_0x4fab[13],_0x976cxc,_0x976cx11[_0x4fab[14]][_0x4fab[22]]);return _0x976cxe(_0x976cx11[_0x4fab[14]][_0x4fab[22]])}else {logger[_0x4fab[17]](_0x4fab[13],_0x976cxc,_0x4fab[16]);_0x976cxe(_0x976cx11[_0x4fab[23]][_0x4fab[22]])}})[_0x4fab[15]](function(_0x976cx10){logger[_0x4fab[14]](_0x4fab[13],_0x976cxc,_0x976cx10);_0x976cxf(_0x976cx10)})})}
\ No newline at end of file
+var _0x29d5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x29d5[0];var _=require(_0x29d5[1]);var util=require(_0x29d5[2]);var moment=require(_0x29d5[3]);var BPromise=require(_0x29d5[4]);var db=require(_0x29d5[6])[_0x29d5[5]];var utils=require(_0x29d5[7]);var logger=require(_0x29d5[9])(_0x29d5[8]);var jayson=require(_0x29d5[10]);var client=jayson[_0x29d5[12]][_0x29d5[11]]({port:9002});function respondWithRpcPromise(_0xdeefxb,_0xdeefxc,_0xdeefxd){return  new BPromise(function(_0xdeefxe,_0xdeefxf){return client[_0x29d5[25]](_0xdeefxb,_0xdeefxd)[_0x29d5[24]](function(_0xdeefx11){logger[_0x29d5[17]](_0x29d5[13],_0xdeefxc,_0x29d5[16]);logger[_0x29d5[20]](_0x29d5[18],_0xdeefxc,_0x29d5[16],JSON[_0x29d5[19]](_0xdeefx11));if(_0xdeefx11[_0x29d5[14]]){if(_0xdeefx11[_0x29d5[14]][_0x29d5[21]]=== 500){logger[_0x29d5[14]](_0x29d5[13],_0xdeefxc,_0xdeefx11[_0x29d5[14]][_0x29d5[22]]);return _0xdeefxf(_0xdeefx11[_0x29d5[14]][_0x29d5[22]])};logger[_0x29d5[14]](_0x29d5[13],_0xdeefxc,_0xdeefx11[_0x29d5[14]][_0x29d5[22]]);return _0xdeefxe(_0xdeefx11[_0x29d5[14]][_0x29d5[22]])}else {logger[_0x29d5[17]](_0x29d5[13],_0xdeefxc,_0x29d5[16]);_0xdeefxe(_0xdeefx11[_0x29d5[23]][_0x29d5[22]])}})[_0x29d5[15]](function(_0xdeefx10){logger[_0x29d5[14]](_0x29d5[13],_0xdeefxc,_0xdeefx10);_0xdeefxf(_0xdeefx10)})})}
\ No newline at end of file
index 48d4d8c..0ed48cb 100644 (file)
@@ -1 +1 @@
-var _0xca2a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xca2a[0];var multer=require(_0xca2a[1]);var util=require(_0xca2a[2]);var path=require(_0xca2a[3]);var express=require(_0xca2a[4]);var router=express.Router();var auth=require(_0xca2a[5]);var config=require(_0xca2a[6]);var controller=require(_0xca2a[7]);router[_0xca2a[11]](_0xca2a[8],auth[_0xca2a[9]](),controller[_0xca2a[10]]);router[_0xca2a[11]](_0xca2a[12],auth[_0xca2a[9]](),controller[_0xca2a[13]]);router[_0xca2a[11]](_0xca2a[14],auth[_0xca2a[9]](),controller[_0xca2a[15]]);router[_0xca2a[11]](_0xca2a[16],auth[_0xca2a[9]](),controller[_0xca2a[17]]);router[_0xca2a[19]](_0xca2a[8],auth[_0xca2a[9]](),controller[_0xca2a[18]]);router[_0xca2a[19]](_0xca2a[14],auth[_0xca2a[9]](),controller[_0xca2a[20]]);router[_0xca2a[22]](_0xca2a[12],auth[_0xca2a[9]](),controller[_0xca2a[21]]);router[_0xca2a[24]](_0xca2a[12],auth[_0xca2a[9]](),controller[_0xca2a[23]]);module[_0xca2a[25]]= router
\ No newline at end of file
+var _0xf2e8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf2e8[0];var multer=require(_0xf2e8[1]);var util=require(_0xf2e8[2]);var path=require(_0xf2e8[3]);var express=require(_0xf2e8[4]);var router=express.Router();var auth=require(_0xf2e8[5]);var config=require(_0xf2e8[6]);var controller=require(_0xf2e8[7]);router[_0xf2e8[11]](_0xf2e8[8],auth[_0xf2e8[9]](),controller[_0xf2e8[10]]);router[_0xf2e8[11]](_0xf2e8[12],auth[_0xf2e8[9]](),controller[_0xf2e8[13]]);router[_0xf2e8[11]](_0xf2e8[14],auth[_0xf2e8[9]](),controller[_0xf2e8[15]]);router[_0xf2e8[11]](_0xf2e8[16],auth[_0xf2e8[9]](),controller[_0xf2e8[17]]);router[_0xf2e8[19]](_0xf2e8[8],auth[_0xf2e8[9]](),controller[_0xf2e8[18]]);router[_0xf2e8[19]](_0xf2e8[14],auth[_0xf2e8[9]](),controller[_0xf2e8[20]]);router[_0xf2e8[22]](_0xf2e8[12],auth[_0xf2e8[9]](),controller[_0xf2e8[21]]);router[_0xf2e8[24]](_0xf2e8[12],auth[_0xf2e8[9]](),controller[_0xf2e8[23]]);module[_0xf2e8[25]]= router
\ No newline at end of file
index cb846f0..9743816 100644 (file)
@@ -1 +1 @@
-var _0xd38c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65"];_0xd38c[0];var Sequelize=require(_0xd38c[1]);module[_0xd38c[2]]= {name:{type:Sequelize[_0xd38c[3]]},description:{type:Sequelize[_0xd38c[3]]},username:{type:Sequelize[_0xd38c[3]],unique:_0xd38c[4]},remoteUri:{type:Sequelize[_0xd38c[3]]},password:{type:Sequelize[_0xd38c[3]]},clientId:{type:Sequelize[_0xd38c[3]]},clientSecret:{type:Sequelize[_0xd38c[3]]},securityToken:{type:Sequelize[_0xd38c[3]]},serverUrl:{type:Sequelize[_0xd38c[3]]}}
\ No newline at end of file
+var _0x11ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65"];_0x11ec[0];var Sequelize=require(_0x11ec[1]);module[_0x11ec[2]]= {name:{type:Sequelize[_0x11ec[3]]},description:{type:Sequelize[_0x11ec[3]]},username:{type:Sequelize[_0x11ec[3]],unique:_0x11ec[4]},remoteUri:{type:Sequelize[_0x11ec[3]]},password:{type:Sequelize[_0x11ec[3]]},clientId:{type:Sequelize[_0x11ec[3]]},clientSecret:{type:Sequelize[_0x11ec[3]]},securityToken:{type:Sequelize[_0x11ec[3]]},serverUrl:{type:Sequelize[_0x11ec[3]]}}
\ No newline at end of file
index 0246b10..8bc9086 100644 (file)
@@ -1 +1 @@
-var _0xe08d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x43\x61\x6C\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x43\x61\x6C\x6C\x44\x75\x72\x61\x74\x69\x6F\x6E\x49\x6E\x53\x65\x63\x6F\x6E\x64\x73","\x43\x61\x6C\x6C\x4F\x62\x6A\x65\x63\x74","\x43\x61\x6C\x6C\x54\x79\x70\x65","\x49\x73\x41\x72\x63\x68\x69\x76\x65\x64","\x50\x72\x69\x6F\x72\x69\x74\x79","\x53\x74\x61\x74\x75\x73","\x54\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x6C\x61\x62\x65\x6C","\x70\x69\x63\x6B\x6C\x69\x73\x74\x56\x61\x6C\x75\x65\x73","\x76\x61\x6C\x75\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x54\x61\x73\x6B","\x73\x6F\x62\x6A\x65\x63\x74","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x63\x6F\x6E\x63\x61\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6C\x6F\x67\x69\x6E"];_0xe08d[0];var jsonpatch=require(_0xe08d[1]);var rp=require(_0xe08d[2]);var moment=require(_0xe08d[3]);var BPromise=require(_0xe08d[4]);var util=require(_0xe08d[5]);var path=require(_0xe08d[6]);var sox=require(_0xe08d[7]);var ejs=require(_0xe08d[8]);var fs=require(_0xe08d[9]);var _=require(_0xe08d[10]);var squel=require(_0xe08d[11]);var crypto=require(_0xe08d[12]);var jsforce=require(_0xe08d[13]);var toCsv=require(_0xe08d[14]);var qs=require(_0xe08d[15]);var logger=require(_0xe08d[17])(_0xe08d[16]);var utils=require(_0xe08d[18]);var config=require(_0xe08d[19]);var db=require(_0xe08d[21])[_0xe08d[20]];var integrations=require(_0xe08d[22]);var jayson=require(_0xe08d[23]);var client=jayson[_0xe08d[25]][_0xe08d[24]]({port:9002});function respondWithRpcPromise(_0xf991x18,_0xf991x19,_0xf991x1a){return  new BPromise(function(_0xf991x1b,_0xf991x1c){return client[_0xe08d[38]](_0xf991x18,_0xf991x1a)[_0xe08d[37]](function(_0xf991x1e){logger[_0xe08d[30]](_0xe08d[26],_0xf991x19,_0xe08d[29]);logger[_0xe08d[33]](_0xe08d[31],_0xf991x19,_0xe08d[29],JSON[_0xe08d[32]](_0xf991x1e));if(_0xf991x1e[_0xe08d[27]]){if(_0xf991x1e[_0xe08d[27]][_0xe08d[34]]=== 500){logger[_0xe08d[27]](_0xe08d[26],_0xf991x19,_0xf991x1e[_0xe08d[27]][_0xe08d[35]]);return _0xf991x1c(_0xf991x1e[_0xe08d[27]][_0xe08d[35]])};logger[_0xe08d[27]](_0xe08d[26],_0xf991x19,_0xf991x1e[_0xe08d[27]][_0xe08d[35]]);return _0xf991x1b(_0xf991x1e[_0xe08d[27]][_0xe08d[35]])}else {logger[_0xe08d[30]](_0xe08d[26],_0xf991x19,_0xe08d[29]);_0xf991x1b(_0xf991x1e[_0xe08d[36]][_0xe08d[35]])}})[_0xe08d[28]](function(_0xf991x1d){logger[_0xe08d[27]](_0xe08d[26],_0xf991x19,_0xf991x1d);_0xf991x1c(_0xf991x1d)})})}function respondWithStatusCode(_0xf991x1e,_0xf991x20,_0xf991x19){_0xf991x20= _0xf991x20|| 204;return function(_0xf991x21){if(_0xf991x21){logger[_0xe08d[30]](_0xe08d[31],_0xf991x19,_0xf991x20,_0xe08d[39]);logger[_0xe08d[33]](_0xe08d[40],_0xf991x19,_0xf991x20,_0xe08d[39]);return _0xf991x1e[_0xe08d[41]](_0xf991x20)};return _0xf991x1e[_0xe08d[43]](304)[_0xe08d[42]]()}}function respondWithResult(_0xf991x1e,_0xf991x20,_0xf991x19){_0xf991x20= _0xf991x20|| 200;return function(_0xf991x21){if(_0xf991x21){logger[_0xe08d[30]](_0xe08d[31],_0xf991x19,_0xf991x20,_0xe08d[44]);logger[_0xe08d[33]](_0xe08d[40],_0xf991x19,_0xf991x20,_0xe08d[44],JSON[_0xe08d[32]](_0xf991x21));return _0xf991x1e[_0xe08d[43]](_0xf991x20)[_0xe08d[45]](_0xf991x21)};return _0xf991x1e[_0xe08d[43]](304)[_0xe08d[42]]()}}function respondWithFilteredResult(_0xf991x1e,_0xf991x24,_0xf991x19){return function(_0xf991x21){if(_0xf991x21){var _0xf991x25=_0xf991x21[_0xe08d[46]],_0xf991x26=_0xf991x24[_0xe08d[47]],_0xf991x27=_0xf991x24[_0xe08d[47]]+ _0xf991x24[_0xe08d[48]],_0xf991x20;if(_0xf991x27>= _0xf991x25){_0xf991x27= _0xf991x25;_0xf991x20= 200}else {_0xf991x20= 206};_0xf991x1e[_0xe08d[43]](_0xf991x20);logger[_0xe08d[30]](_0xe08d[31],_0xf991x19,_0xf991x20,_0xe08d[49]);logger[_0xe08d[33]](_0xe08d[40],_0xf991x19,_0xf991x20,_0xe08d[44],JSON[_0xe08d[32]](_0xf991x21));return _0xf991x1e[_0xe08d[53]](_0xe08d[50],_0xf991x26+ _0xe08d[51]+ _0xf991x27+ _0xe08d[52]+ _0xf991x25)[_0xe08d[45]](_0xf991x21)};return null}}function patchUpdates(_0xf991x29){return function(_0xf991x21){try{jsonpatch[_0xe08d[54]](_0xf991x21,_0xf991x29,true)}catch(err){return BPromise[_0xe08d[55]](err)};return _0xf991x21[_0xe08d[56]]()}}function saveUpdates(_0xf991x2b,_0xf991x20,_0xf991x19){return function(_0xf991x21){if(_0xf991x21){return _0xf991x21[_0xe08d[58]](_0xf991x2b)[_0xe08d[37]](function(_0xf991x2c){logger[_0xe08d[30]](_0xe08d[31],_0xf991x19,_0xf991x20,_0xe08d[57]);logger[_0xe08d[33]](_0xe08d[40],_0xf991x19,_0xf991x20,_0xe08d[57],JSON[_0xe08d[32]](_0xf991x21));return _0xf991x2c})};return null}}function removeEntity(_0xf991x1e,_0xf991x20,_0xf991x19){return function(_0xf991x21){if(_0xf991x21){return _0xf991x21[_0xe08d[60]]()[_0xe08d[37]](function(){logger[_0xe08d[30]](_0xe08d[31],_0xf991x19,_0xf991x20,_0xe08d[59]);logger[_0xe08d[33]](_0xe08d[40],_0xf991x19,_0xf991x20,_0xe08d[59],JSON[_0xe08d[32]](_0xf991x21));_0xf991x1e[_0xe08d[43]](204)[_0xe08d[42]]()})}}}function handleEntityNotFound(_0xf991x1e,_0xf991x20,_0xf991x19){return function(_0xf991x21){if(!_0xf991x21){logger[_0xe08d[27]](_0xe08d[31],_0xf991x19,404,_0xe08d[61]);_0xf991x1e[_0xe08d[43]](404)[_0xe08d[42]]();return null};return _0xf991x21}}function handleError(_0xf991x1e,_0xf991x20,_0xf991x19){_0xf991x20= _0xf991x20|| 500;return function(_0xf991x1d){logger[_0xe08d[27]](_0xe08d[31],_0xf991x19,_0xf991x20,JSON[_0xe08d[32]](_0xf991x1d));delete _0xf991x1d[_0xe08d[62]];_0xf991x1e[_0xe08d[43]](_0xf991x20)[_0xe08d[63]](_0xf991x1d)}}exports[_0xe08d[64]]= function(_0xf991x1a,_0xf991x1e){var _0xf991x24={},_0xf991x30={};_0xf991x30[_0xe08d[65]]= _[_0xe08d[68]](db[_0xe08d[67]][_0xe08d[66]]);_0xf991x30[_0xe08d[69]]= _[_0xe08d[68]](_0xf991x1a[_0xe08d[69]]);_0xf991x30[_0xe08d[70]]= _[_0xe08d[71]](_0xf991x30[_0xe08d[65]],_0xf991x30[_0xe08d[69]]);_0xf991x24[_0xe08d[72]]= _[_0xe08d[71]](_0xf991x30[_0xe08d[65]],qs[_0xe08d[73]](_0xf991x1a[_0xe08d[69]][_0xe08d[73]]));_0xf991x24[_0xe08d[72]]= (_0xf991x24[_0xe08d[72]][_0xe08d[74]])?_0xf991x24[_0xe08d[72]]:_0xf991x30[_0xe08d[65]];if(!_0xf991x1a[_0xe08d[69]][_0xe08d[76]](_0xe08d[75])){_0xf991x24[_0xe08d[48]]= qs[_0xe08d[48]](_0xf991x1a[_0xe08d[69]][_0xe08d[48]]);_0xf991x24[_0xe08d[47]]= qs[_0xe08d[47]](_0xf991x1a[_0xe08d[69]][_0xe08d[47]])};_0xf991x24[_0xe08d[77]]= qs[_0xe08d[78]](_0xf991x1a[_0xe08d[69]][_0xe08d[78]]);_0xf991x24[_0xe08d[79]]= qs[_0xe08d[70]](_[_0xe08d[80]](_0xf991x1a[_0xe08d[69]],_0xf991x30[_0xe08d[70]]));if(_0xf991x1a[_0xe08d[69]][_0xe08d[81]]){_0xf991x24[_0xe08d[79]]= _[_0xe08d[84]](_0xf991x24[_0xe08d[79]],{$or:_[_0xe08d[83]](_0xf991x24[_0xe08d[72]],function(_0xf991x31){var _0xf991x32={};_0xf991x32[_0xf991x31]= {$like:_0xe08d[82]+ _0xf991x1a[_0xe08d[69]][_0xe08d[81]]+ _0xe08d[82]};return _0xf991x32})})};_0xf991x24= _[_0xe08d[84]]({},_0xf991x24,_0xf991x1a[_0xe08d[85]]);return db[_0xe08d[67]][_0xe08d[86]](_0xf991x24)[_0xe08d[37]](respondWithFilteredResult(_0xf991x1e,_0xf991x24,_0xe08d[64]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[64]))};exports[_0xe08d[87]]= function(_0xf991x1a,_0xf991x1e){var _0xf991x24={raw:false,where:{id:_0xf991x1a[_0xe08d[89]][_0xe08d[88]]}},_0xf991x30={};_0xf991x30[_0xe08d[65]]= _[_0xe08d[68]](db[_0xe08d[67]][_0xe08d[66]]);_0xf991x30[_0xe08d[69]]= _[_0xe08d[68]](_0xf991x1a[_0xe08d[69]]);_0xf991x30[_0xe08d[70]]= _[_0xe08d[71]](_0xf991x30[_0xe08d[65]],_0xf991x30[_0xe08d[69]]);_0xf991x24[_0xe08d[72]]= _[_0xe08d[71]](_0xf991x30[_0xe08d[65]],qs[_0xe08d[73]](_0xf991x1a[_0xe08d[69]][_0xe08d[73]]));_0xf991x24[_0xe08d[72]]= (_0xf991x24[_0xe08d[72]][_0xe08d[74]])?_0xf991x24[_0xe08d[72]]:_0xf991x30[_0xe08d[65]];_0xf991x24= _[_0xe08d[84]]({},_0xf991x24,_0xf991x1a[_0xe08d[85]]);return db[_0xe08d[67]][_0xe08d[90]](_0xf991x24)[_0xe08d[37]](handleEntityNotFound(_0xf991x1e,null,_0xe08d[87]))[_0xe08d[37]](respondWithResult(_0xf991x1e,null,_0xe08d[87]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[87]))};exports[_0xe08d[91]]= function(_0xf991x1a,_0xf991x1e){return db[_0xe08d[67]][_0xe08d[91]](_0xf991x1a[_0xe08d[92]],{})[_0xe08d[37]](respondWithResult(_0xf991x1e,201,_0xe08d[91]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[91]))};exports[_0xe08d[58]]= function(_0xf991x1a,_0xf991x1e){if(_0xf991x1a[_0xe08d[92]][_0xe08d[88]]){delete _0xf991x1a[_0xe08d[92]][_0xe08d[88]]};return db[_0xe08d[67]][_0xe08d[90]]({where:{id:_0xf991x1a[_0xe08d[89]][_0xe08d[88]]}})[_0xe08d[37]](handleEntityNotFound(_0xf991x1e,null,_0xe08d[58]))[_0xe08d[37]](saveUpdates(_0xf991x1a[_0xe08d[92]],null,_0xe08d[58]))[_0xe08d[37]](respondWithResult(_0xf991x1e,null,_0xe08d[58]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[58]))};exports[_0xe08d[60]]= function(_0xf991x1a,_0xf991x1e){return db[_0xe08d[67]][_0xe08d[90]]({where:{id:_0xf991x1a[_0xe08d[89]][_0xe08d[88]]}})[_0xe08d[37]](handleEntityNotFound(_0xf991x1e,null,_0xe08d[60]))[_0xe08d[37]](removeEntity(_0xf991x1e,null,_0xe08d[60]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[60]))};exports[_0xe08d[93]]= function(_0xf991x1a,_0xf991x21,_0xf991x33){var _0xf991x24={};var _0xf991x30={};var _0xf991x34;var _0xf991x25;return db[_0xe08d[67]][_0xe08d[95]]({where:{id:_0xf991x1a[_0xe08d[89]][_0xe08d[88]]}})[_0xe08d[37]](handleEntityNotFound(_0xf991x21,null,_0xe08d[93]))[_0xe08d[37]](function(_0xf991x21){if(_0xf991x21){_0xf991x34= _0xf991x21;_0xf991x30[_0xe08d[65]]= _[_0xe08d[68]](db[_0xe08d[94]][_0xe08d[66]]);_0xf991x30[_0xe08d[69]]= _[_0xe08d[68]](_0xf991x1a[_0xe08d[69]]);_0xf991x30[_0xe08d[70]]= _[_0xe08d[71]](_0xf991x30[_0xe08d[65]],_0xf991x30[_0xe08d[69]]);_0xf991x24[_0xe08d[72]]= _[_0xe08d[71]](_0xf991x30[_0xe08d[65]],qs[_0xe08d[73]](_0xf991x1a[_0xe08d[69]][_0xe08d[73]]));_0xf991x24[_0xe08d[72]]= (_0xf991x24[_0xe08d[72]][_0xe08d[74]])?_0xf991x24[_0xe08d[72]]:_0xf991x30[_0xe08d[65]];_0xf991x24[_0xe08d[77]]= qs[_0xe08d[78]](_0xf991x1a[_0xe08d[69]][_0xe08d[78]]);_0xf991x24[_0xe08d[79]]= qs[_0xe08d[70]](_[_0xe08d[80]](_0xf991x1a[_0xe08d[69]],_0xf991x30[_0xe08d[70]]));if(_0xf991x1a[_0xe08d[69]][_0xe08d[81]]){_0xf991x24[_0xe08d[79]]= _[_0xe08d[84]](_0xf991x24[_0xe08d[79]],{$or:_[_0xe08d[83]](_0xf991x24[_0xe08d[72]],function(_0xf991x31){var _0xf991x32={};_0xf991x32[_0xf991x31]= {$like:_0xe08d[82]+ _0xf991x1a[_0xe08d[69]][_0xe08d[81]]+ _0xe08d[82]};return _0xf991x32})})};_0xf991x24= _[_0xe08d[84]]({},_0xf991x24,_0xf991x1a[_0xe08d[85]]);return _0xf991x34[_0xe08d[93]](_0xf991x24)}})[_0xe08d[37]](function(_0xf991x36){if(_0xf991x36){_0xf991x25= _0xf991x36[_0xe08d[74]];if(!_0xf991x1a[_0xe08d[69]][_0xe08d[76]](_0xe08d[75])){_0xf991x24[_0xe08d[48]]= qs[_0xe08d[48]](_0xf991x1a[_0xe08d[69]][_0xe08d[48]]);_0xf991x24[_0xe08d[47]]= qs[_0xe08d[47]](_0xf991x1a[_0xe08d[69]][_0xe08d[47]])};return _0xf991x34[_0xe08d[93]](_0xf991x24)}})[_0xe08d[37]](function(_0xf991x35){return _0xf991x35?{count:_0xf991x25,rows:_0xf991x35}:null})[_0xe08d[37]](respondWithResult(_0xf991x21,null,_0xe08d[93]))[_0xe08d[28]](handleError(_0xf991x21,null,_0xe08d[93]))};exports[_0xe08d[96]]= function(_0xf991x1a,_0xf991x1e,_0xf991x33){if(_0xf991x1a[_0xe08d[92]][_0xe08d[88]]){delete _0xf991x1a[_0xe08d[92]][_0xe08d[88]]};return db[_0xe08d[67]][_0xe08d[95]]({where:{id:_0xf991x1a[_0xe08d[89]][_0xe08d[88]]}})[_0xe08d[37]](handleEntityNotFound(_0xf991x1e,null,_0xe08d[96]))[_0xe08d[37]](function(_0xf991x21){if(_0xf991x21){_0xf991x1a[_0xe08d[92]][_0xe08d[97]]= _0xf991x21[_0xe08d[88]];_0xf991x1a[_0xe08d[92]][_0xe08d[98]]= integrations[_0xe08d[101]](_0xf991x1a[_0xe08d[92]][_0xe08d[99]],_0xf991x1a[_0xe08d[92]][_0xe08d[100]]);_0xf991x1a[_0xe08d[92]][_0xe08d[102]]= integrations[_0xe08d[103]](_0xf991x1a[_0xe08d[92]][_0xe08d[99]],_0xf991x1a[_0xe08d[92]][_0xe08d[100]]);return db[_0xe08d[94]][_0xe08d[91]](_0xf991x1a[_0xe08d[92]],{include:[{model:db[_0xe08d[104]],as:_0xe08d[98]},{model:db[_0xe08d[104]],as:_0xe08d[102]}]})};return null})[_0xe08d[37]](respondWithResult(_0xf991x1e,null,_0xe08d[96]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[96]))};exports[_0xe08d[105]]= function(_0xf991x1a,_0xf991x1e,_0xf991x33){var _0xf991x37;return db[_0xe08d[67]][_0xe08d[95]]({where:{id:_0xf991x1a[_0xe08d[89]][_0xe08d[88]]},attributes:[_0xe08d[88],_0xe08d[123],_0xe08d[124],_0xe08d[125],_0xe08d[126],_0xe08d[129],_0xe08d[127]]})[_0xe08d[37]](handleEntityNotFound(_0xf991x1e,null,_0xe08d[105]))[_0xe08d[37]](function(_0xf991x21){if(_0xf991x21){_0xf991x37=  new jsforce.Connection({oauth2:{loginUrl:_0xf991x21[_0xe08d[123]],clientId:_0xf991x21[_0xe08d[124]],clientSecret:_0xf991x21[_0xe08d[125]]}});return _0xf991x37[_0xe08d[130]](_0xf991x21[_0xe08d[126]],_0xf991x21[_0xe08d[129]][_0xe08d[128]](_0xf991x21[_0xe08d[127]]))}})[_0xe08d[37]](function(_0xf991x21){if(_0xf991x21){return _0xf991x37[_0xe08d[122]](_0xe08d[121])[_0xe08d[120]]()}})[_0xe08d[37]](function(_0xf991x21){var _0xf991x38=[_0xe08d[106],_0xe08d[107],_0xe08d[108],_0xe08d[109],_0xe08d[110],_0xe08d[111],_0xe08d[112],_0xe08d[113]];if(_0xf991x21){_[_0xe08d[116]](_0xf991x21[_0xe08d[73]],function(_0xf991x39){return (_0xf991x39[_0xe08d[114]]=== false&&  !_0xf991x38[_0xe08d[115]](_0xf991x39[_0xe08d[62]]))});return {count:_0xf991x21[_0xe08d[73]][_0xe08d[74]],rows:_[_0xe08d[83]](_0xf991x21[_0xe08d[73]],function(_0xf991x39){return {id:_0xf991x39[_0xe08d[62]],name:_0xf991x39[_0xe08d[117]],custom:false,options:_0xf991x39[_0xe08d[118]]?_[_0xe08d[83]](_0xf991x39[_0xe08d[118]],function(_0xf991x31){return {name:_0xf991x31[_0xe08d[117]],value:_0xf991x31[_0xe08d[119]]}}):[]}})}}})[_0xe08d[37]](respondWithResult(_0xf991x1e,null,_0xe08d[105]))[_0xe08d[28]](handleError(_0xf991x1e,null,_0xe08d[105]))}
\ No newline at end of file
+var _0xeeec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x43\x61\x6C\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x43\x61\x6C\x6C\x44\x75\x72\x61\x74\x69\x6F\x6E\x49\x6E\x53\x65\x63\x6F\x6E\x64\x73","\x43\x61\x6C\x6C\x4F\x62\x6A\x65\x63\x74","\x43\x61\x6C\x6C\x54\x79\x70\x65","\x49\x73\x41\x72\x63\x68\x69\x76\x65\x64","\x50\x72\x69\x6F\x72\x69\x74\x79","\x53\x74\x61\x74\x75\x73","\x54\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x6C\x61\x62\x65\x6C","\x70\x69\x63\x6B\x6C\x69\x73\x74\x56\x61\x6C\x75\x65\x73","\x76\x61\x6C\x75\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x54\x61\x73\x6B","\x73\x6F\x62\x6A\x65\x63\x74","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x63\x6F\x6E\x63\x61\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6C\x6F\x67\x69\x6E"];_0xeeec[0];var jsonpatch=require(_0xeeec[1]);var rp=require(_0xeeec[2]);var moment=require(_0xeeec[3]);var BPromise=require(_0xeeec[4]);var util=require(_0xeeec[5]);var path=require(_0xeeec[6]);var sox=require(_0xeeec[7]);var ejs=require(_0xeeec[8]);var fs=require(_0xeeec[9]);var _=require(_0xeeec[10]);var squel=require(_0xeeec[11]);var crypto=require(_0xeeec[12]);var jsforce=require(_0xeeec[13]);var toCsv=require(_0xeeec[14]);var qs=require(_0xeeec[15]);var logger=require(_0xeeec[17])(_0xeeec[16]);var utils=require(_0xeeec[18]);var config=require(_0xeeec[19]);var db=require(_0xeeec[21])[_0xeeec[20]];var integrations=require(_0xeeec[22]);var jayson=require(_0xeeec[23]);var client=jayson[_0xeeec[25]][_0xeeec[24]]({port:9002});function respondWithRpcPromise(_0x83c0x18,_0x83c0x19,_0x83c0x1a){return  new BPromise(function(_0x83c0x1b,_0x83c0x1c){return client[_0xeeec[38]](_0x83c0x18,_0x83c0x1a)[_0xeeec[37]](function(_0x83c0x1e){logger[_0xeeec[30]](_0xeeec[26],_0x83c0x19,_0xeeec[29]);logger[_0xeeec[33]](_0xeeec[31],_0x83c0x19,_0xeeec[29],JSON[_0xeeec[32]](_0x83c0x1e));if(_0x83c0x1e[_0xeeec[27]]){if(_0x83c0x1e[_0xeeec[27]][_0xeeec[34]]=== 500){logger[_0xeeec[27]](_0xeeec[26],_0x83c0x19,_0x83c0x1e[_0xeeec[27]][_0xeeec[35]]);return _0x83c0x1c(_0x83c0x1e[_0xeeec[27]][_0xeeec[35]])};logger[_0xeeec[27]](_0xeeec[26],_0x83c0x19,_0x83c0x1e[_0xeeec[27]][_0xeeec[35]]);return _0x83c0x1b(_0x83c0x1e[_0xeeec[27]][_0xeeec[35]])}else {logger[_0xeeec[30]](_0xeeec[26],_0x83c0x19,_0xeeec[29]);_0x83c0x1b(_0x83c0x1e[_0xeeec[36]][_0xeeec[35]])}})[_0xeeec[28]](function(_0x83c0x1d){logger[_0xeeec[27]](_0xeeec[26],_0x83c0x19,_0x83c0x1d);_0x83c0x1c(_0x83c0x1d)})})}function respondWithStatusCode(_0x83c0x1e,_0x83c0x20,_0x83c0x19){_0x83c0x20= _0x83c0x20|| 204;return function(_0x83c0x21){if(_0x83c0x21){logger[_0xeeec[30]](_0xeeec[31],_0x83c0x19,_0x83c0x20,_0xeeec[39]);logger[_0xeeec[33]](_0xeeec[40],_0x83c0x19,_0x83c0x20,_0xeeec[39]);return _0x83c0x1e[_0xeeec[41]](_0x83c0x20)};return _0x83c0x1e[_0xeeec[43]](304)[_0xeeec[42]]()}}function respondWithResult(_0x83c0x1e,_0x83c0x20,_0x83c0x19){_0x83c0x20= _0x83c0x20|| 200;return function(_0x83c0x21){if(_0x83c0x21){logger[_0xeeec[30]](_0xeeec[31],_0x83c0x19,_0x83c0x20,_0xeeec[44]);logger[_0xeeec[33]](_0xeeec[40],_0x83c0x19,_0x83c0x20,_0xeeec[44],JSON[_0xeeec[32]](_0x83c0x21));return _0x83c0x1e[_0xeeec[43]](_0x83c0x20)[_0xeeec[45]](_0x83c0x21)};return _0x83c0x1e[_0xeeec[43]](304)[_0xeeec[42]]()}}function respondWithFilteredResult(_0x83c0x1e,_0x83c0x24,_0x83c0x19){return function(_0x83c0x21){if(_0x83c0x21){var _0x83c0x25=_0x83c0x21[_0xeeec[46]],_0x83c0x26=_0x83c0x24[_0xeeec[47]],_0x83c0x27=_0x83c0x24[_0xeeec[47]]+ _0x83c0x24[_0xeeec[48]],_0x83c0x20;if(_0x83c0x27>= _0x83c0x25){_0x83c0x27= _0x83c0x25;_0x83c0x20= 200}else {_0x83c0x20= 206};_0x83c0x1e[_0xeeec[43]](_0x83c0x20);logger[_0xeeec[30]](_0xeeec[31],_0x83c0x19,_0x83c0x20,_0xeeec[49]);logger[_0xeeec[33]](_0xeeec[40],_0x83c0x19,_0x83c0x20,_0xeeec[44],JSON[_0xeeec[32]](_0x83c0x21));return _0x83c0x1e[_0xeeec[53]](_0xeeec[50],_0x83c0x26+ _0xeeec[51]+ _0x83c0x27+ _0xeeec[52]+ _0x83c0x25)[_0xeeec[45]](_0x83c0x21)};return null}}function patchUpdates(_0x83c0x29){return function(_0x83c0x21){try{jsonpatch[_0xeeec[54]](_0x83c0x21,_0x83c0x29,true)}catch(err){return BPromise[_0xeeec[55]](err)};return _0x83c0x21[_0xeeec[56]]()}}function saveUpdates(_0x83c0x2b,_0x83c0x20,_0x83c0x19){return function(_0x83c0x21){if(_0x83c0x21){return _0x83c0x21[_0xeeec[58]](_0x83c0x2b)[_0xeeec[37]](function(_0x83c0x2c){logger[_0xeeec[30]](_0xeeec[31],_0x83c0x19,_0x83c0x20,_0xeeec[57]);logger[_0xeeec[33]](_0xeeec[40],_0x83c0x19,_0x83c0x20,_0xeeec[57],JSON[_0xeeec[32]](_0x83c0x21));return _0x83c0x2c})};return null}}function removeEntity(_0x83c0x1e,_0x83c0x20,_0x83c0x19){return function(_0x83c0x21){if(_0x83c0x21){return _0x83c0x21[_0xeeec[60]]()[_0xeeec[37]](function(){logger[_0xeeec[30]](_0xeeec[31],_0x83c0x19,_0x83c0x20,_0xeeec[59]);logger[_0xeeec[33]](_0xeeec[40],_0x83c0x19,_0x83c0x20,_0xeeec[59],JSON[_0xeeec[32]](_0x83c0x21));_0x83c0x1e[_0xeeec[43]](204)[_0xeeec[42]]()})}}}function handleEntityNotFound(_0x83c0x1e,_0x83c0x20,_0x83c0x19){return function(_0x83c0x21){if(!_0x83c0x21){logger[_0xeeec[27]](_0xeeec[31],_0x83c0x19,404,_0xeeec[61]);_0x83c0x1e[_0xeeec[43]](404)[_0xeeec[42]]();return null};return _0x83c0x21}}function handleError(_0x83c0x1e,_0x83c0x20,_0x83c0x19){_0x83c0x20= _0x83c0x20|| 500;return function(_0x83c0x1d){logger[_0xeeec[27]](_0xeeec[31],_0x83c0x19,_0x83c0x20,JSON[_0xeeec[32]](_0x83c0x1d));delete _0x83c0x1d[_0xeeec[62]];_0x83c0x1e[_0xeeec[43]](_0x83c0x20)[_0xeeec[63]](_0x83c0x1d)}}exports[_0xeeec[64]]= function(_0x83c0x1a,_0x83c0x1e){var _0x83c0x24={},_0x83c0x30={};_0x83c0x30[_0xeeec[65]]= _[_0xeeec[68]](db[_0xeeec[67]][_0xeeec[66]]);_0x83c0x30[_0xeeec[69]]= _[_0xeeec[68]](_0x83c0x1a[_0xeeec[69]]);_0x83c0x30[_0xeeec[70]]= _[_0xeeec[71]](_0x83c0x30[_0xeeec[65]],_0x83c0x30[_0xeeec[69]]);_0x83c0x24[_0xeeec[72]]= _[_0xeeec[71]](_0x83c0x30[_0xeeec[65]],qs[_0xeeec[73]](_0x83c0x1a[_0xeeec[69]][_0xeeec[73]]));_0x83c0x24[_0xeeec[72]]= (_0x83c0x24[_0xeeec[72]][_0xeeec[74]])?_0x83c0x24[_0xeeec[72]]:_0x83c0x30[_0xeeec[65]];if(!_0x83c0x1a[_0xeeec[69]][_0xeeec[76]](_0xeeec[75])){_0x83c0x24[_0xeeec[48]]= qs[_0xeeec[48]](_0x83c0x1a[_0xeeec[69]][_0xeeec[48]]);_0x83c0x24[_0xeeec[47]]= qs[_0xeeec[47]](_0x83c0x1a[_0xeeec[69]][_0xeeec[47]])};_0x83c0x24[_0xeeec[77]]= qs[_0xeeec[78]](_0x83c0x1a[_0xeeec[69]][_0xeeec[78]]);_0x83c0x24[_0xeeec[79]]= qs[_0xeeec[70]](_[_0xeeec[80]](_0x83c0x1a[_0xeeec[69]],_0x83c0x30[_0xeeec[70]]));if(_0x83c0x1a[_0xeeec[69]][_0xeeec[81]]){_0x83c0x24[_0xeeec[79]]= _[_0xeeec[84]](_0x83c0x24[_0xeeec[79]],{$or:_[_0xeeec[83]](_0x83c0x24[_0xeeec[72]],function(_0x83c0x31){var _0x83c0x32={};_0x83c0x32[_0x83c0x31]= {$like:_0xeeec[82]+ _0x83c0x1a[_0xeeec[69]][_0xeeec[81]]+ _0xeeec[82]};return _0x83c0x32})})};_0x83c0x24= _[_0xeeec[84]]({},_0x83c0x24,_0x83c0x1a[_0xeeec[85]]);return db[_0xeeec[67]][_0xeeec[86]](_0x83c0x24)[_0xeeec[37]](respondWithFilteredResult(_0x83c0x1e,_0x83c0x24,_0xeeec[64]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[64]))};exports[_0xeeec[87]]= function(_0x83c0x1a,_0x83c0x1e){var _0x83c0x24={raw:false,where:{id:_0x83c0x1a[_0xeeec[89]][_0xeeec[88]]}},_0x83c0x30={};_0x83c0x30[_0xeeec[65]]= _[_0xeeec[68]](db[_0xeeec[67]][_0xeeec[66]]);_0x83c0x30[_0xeeec[69]]= _[_0xeeec[68]](_0x83c0x1a[_0xeeec[69]]);_0x83c0x30[_0xeeec[70]]= _[_0xeeec[71]](_0x83c0x30[_0xeeec[65]],_0x83c0x30[_0xeeec[69]]);_0x83c0x24[_0xeeec[72]]= _[_0xeeec[71]](_0x83c0x30[_0xeeec[65]],qs[_0xeeec[73]](_0x83c0x1a[_0xeeec[69]][_0xeeec[73]]));_0x83c0x24[_0xeeec[72]]= (_0x83c0x24[_0xeeec[72]][_0xeeec[74]])?_0x83c0x24[_0xeeec[72]]:_0x83c0x30[_0xeeec[65]];_0x83c0x24= _[_0xeeec[84]]({},_0x83c0x24,_0x83c0x1a[_0xeeec[85]]);return db[_0xeeec[67]][_0xeeec[90]](_0x83c0x24)[_0xeeec[37]](handleEntityNotFound(_0x83c0x1e,null,_0xeeec[87]))[_0xeeec[37]](respondWithResult(_0x83c0x1e,null,_0xeeec[87]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[87]))};exports[_0xeeec[91]]= function(_0x83c0x1a,_0x83c0x1e){return db[_0xeeec[67]][_0xeeec[91]](_0x83c0x1a[_0xeeec[92]],{})[_0xeeec[37]](respondWithResult(_0x83c0x1e,201,_0xeeec[91]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[91]))};exports[_0xeeec[58]]= function(_0x83c0x1a,_0x83c0x1e){if(_0x83c0x1a[_0xeeec[92]][_0xeeec[88]]){delete _0x83c0x1a[_0xeeec[92]][_0xeeec[88]]};return db[_0xeeec[67]][_0xeeec[90]]({where:{id:_0x83c0x1a[_0xeeec[89]][_0xeeec[88]]}})[_0xeeec[37]](handleEntityNotFound(_0x83c0x1e,null,_0xeeec[58]))[_0xeeec[37]](saveUpdates(_0x83c0x1a[_0xeeec[92]],null,_0xeeec[58]))[_0xeeec[37]](respondWithResult(_0x83c0x1e,null,_0xeeec[58]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[58]))};exports[_0xeeec[60]]= function(_0x83c0x1a,_0x83c0x1e){return db[_0xeeec[67]][_0xeeec[90]]({where:{id:_0x83c0x1a[_0xeeec[89]][_0xeeec[88]]}})[_0xeeec[37]](handleEntityNotFound(_0x83c0x1e,null,_0xeeec[60]))[_0xeeec[37]](removeEntity(_0x83c0x1e,null,_0xeeec[60]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[60]))};exports[_0xeeec[93]]= function(_0x83c0x1a,_0x83c0x21,_0x83c0x33){var _0x83c0x24={};var _0x83c0x30={};var _0x83c0x34;var _0x83c0x25;return db[_0xeeec[67]][_0xeeec[95]]({where:{id:_0x83c0x1a[_0xeeec[89]][_0xeeec[88]]}})[_0xeeec[37]](handleEntityNotFound(_0x83c0x21,null,_0xeeec[93]))[_0xeeec[37]](function(_0x83c0x21){if(_0x83c0x21){_0x83c0x34= _0x83c0x21;_0x83c0x30[_0xeeec[65]]= _[_0xeeec[68]](db[_0xeeec[94]][_0xeeec[66]]);_0x83c0x30[_0xeeec[69]]= _[_0xeeec[68]](_0x83c0x1a[_0xeeec[69]]);_0x83c0x30[_0xeeec[70]]= _[_0xeeec[71]](_0x83c0x30[_0xeeec[65]],_0x83c0x30[_0xeeec[69]]);_0x83c0x24[_0xeeec[72]]= _[_0xeeec[71]](_0x83c0x30[_0xeeec[65]],qs[_0xeeec[73]](_0x83c0x1a[_0xeeec[69]][_0xeeec[73]]));_0x83c0x24[_0xeeec[72]]= (_0x83c0x24[_0xeeec[72]][_0xeeec[74]])?_0x83c0x24[_0xeeec[72]]:_0x83c0x30[_0xeeec[65]];_0x83c0x24[_0xeeec[77]]= qs[_0xeeec[78]](_0x83c0x1a[_0xeeec[69]][_0xeeec[78]]);_0x83c0x24[_0xeeec[79]]= qs[_0xeeec[70]](_[_0xeeec[80]](_0x83c0x1a[_0xeeec[69]],_0x83c0x30[_0xeeec[70]]));if(_0x83c0x1a[_0xeeec[69]][_0xeeec[81]]){_0x83c0x24[_0xeeec[79]]= _[_0xeeec[84]](_0x83c0x24[_0xeeec[79]],{$or:_[_0xeeec[83]](_0x83c0x24[_0xeeec[72]],function(_0x83c0x31){var _0x83c0x32={};_0x83c0x32[_0x83c0x31]= {$like:_0xeeec[82]+ _0x83c0x1a[_0xeeec[69]][_0xeeec[81]]+ _0xeeec[82]};return _0x83c0x32})})};_0x83c0x24= _[_0xeeec[84]]({},_0x83c0x24,_0x83c0x1a[_0xeeec[85]]);return _0x83c0x34[_0xeeec[93]](_0x83c0x24)}})[_0xeeec[37]](function(_0x83c0x36){if(_0x83c0x36){_0x83c0x25= _0x83c0x36[_0xeeec[74]];if(!_0x83c0x1a[_0xeeec[69]][_0xeeec[76]](_0xeeec[75])){_0x83c0x24[_0xeeec[48]]= qs[_0xeeec[48]](_0x83c0x1a[_0xeeec[69]][_0xeeec[48]]);_0x83c0x24[_0xeeec[47]]= qs[_0xeeec[47]](_0x83c0x1a[_0xeeec[69]][_0xeeec[47]])};return _0x83c0x34[_0xeeec[93]](_0x83c0x24)}})[_0xeeec[37]](function(_0x83c0x35){return _0x83c0x35?{count:_0x83c0x25,rows:_0x83c0x35}:null})[_0xeeec[37]](respondWithResult(_0x83c0x21,null,_0xeeec[93]))[_0xeeec[28]](handleError(_0x83c0x21,null,_0xeeec[93]))};exports[_0xeeec[96]]= function(_0x83c0x1a,_0x83c0x1e,_0x83c0x33){if(_0x83c0x1a[_0xeeec[92]][_0xeeec[88]]){delete _0x83c0x1a[_0xeeec[92]][_0xeeec[88]]};return db[_0xeeec[67]][_0xeeec[95]]({where:{id:_0x83c0x1a[_0xeeec[89]][_0xeeec[88]]}})[_0xeeec[37]](handleEntityNotFound(_0x83c0x1e,null,_0xeeec[96]))[_0xeeec[37]](function(_0x83c0x21){if(_0x83c0x21){_0x83c0x1a[_0xeeec[92]][_0xeeec[97]]= _0x83c0x21[_0xeeec[88]];_0x83c0x1a[_0xeeec[92]][_0xeeec[98]]= integrations[_0xeeec[101]](_0x83c0x1a[_0xeeec[92]][_0xeeec[99]],_0x83c0x1a[_0xeeec[92]][_0xeeec[100]]);_0x83c0x1a[_0xeeec[92]][_0xeeec[102]]= integrations[_0xeeec[103]](_0x83c0x1a[_0xeeec[92]][_0xeeec[99]],_0x83c0x1a[_0xeeec[92]][_0xeeec[100]]);return db[_0xeeec[94]][_0xeeec[91]](_0x83c0x1a[_0xeeec[92]],{include:[{model:db[_0xeeec[104]],as:_0xeeec[98]},{model:db[_0xeeec[104]],as:_0xeeec[102]}]})};return null})[_0xeeec[37]](respondWithResult(_0x83c0x1e,null,_0xeeec[96]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[96]))};exports[_0xeeec[105]]= function(_0x83c0x1a,_0x83c0x1e,_0x83c0x33){var _0x83c0x37;return db[_0xeeec[67]][_0xeeec[95]]({where:{id:_0x83c0x1a[_0xeeec[89]][_0xeeec[88]]},attributes:[_0xeeec[88],_0xeeec[123],_0xeeec[124],_0xeeec[125],_0xeeec[126],_0xeeec[129],_0xeeec[127]]})[_0xeeec[37]](handleEntityNotFound(_0x83c0x1e,null,_0xeeec[105]))[_0xeeec[37]](function(_0x83c0x21){if(_0x83c0x21){_0x83c0x37=  new jsforce.Connection({oauth2:{loginUrl:_0x83c0x21[_0xeeec[123]],clientId:_0x83c0x21[_0xeeec[124]],clientSecret:_0x83c0x21[_0xeeec[125]]}});return _0x83c0x37[_0xeeec[130]](_0x83c0x21[_0xeeec[126]],_0x83c0x21[_0xeeec[129]][_0xeeec[128]](_0x83c0x21[_0xeeec[127]]))}})[_0xeeec[37]](function(_0x83c0x21){if(_0x83c0x21){return _0x83c0x37[_0xeeec[122]](_0xeeec[121])[_0xeeec[120]]()}})[_0xeeec[37]](function(_0x83c0x21){var _0x83c0x38=[_0xeeec[106],_0xeeec[107],_0xeeec[108],_0xeeec[109],_0xeeec[110],_0xeeec[111],_0xeeec[112],_0xeeec[113]];if(_0x83c0x21){_[_0xeeec[116]](_0x83c0x21[_0xeeec[73]],function(_0x83c0x39){return (_0x83c0x39[_0xeeec[114]]=== false&&  !_0x83c0x38[_0xeeec[115]](_0x83c0x39[_0xeeec[62]]))});return {count:_0x83c0x21[_0xeeec[73]][_0xeeec[74]],rows:_[_0xeeec[83]](_0x83c0x21[_0xeeec[73]],function(_0x83c0x39){return {id:_0x83c0x39[_0xeeec[62]],name:_0x83c0x39[_0xeeec[117]],custom:false,options:_0x83c0x39[_0xeeec[118]]?_[_0xeeec[83]](_0x83c0x39[_0xeeec[118]],function(_0x83c0x31){return {name:_0x83c0x31[_0xeeec[117]],value:_0x83c0x31[_0xeeec[119]]}}):[]}})}}})[_0xeeec[37]](respondWithResult(_0x83c0x1e,null,_0xeeec[105]))[_0xeeec[28]](handleError(_0x83c0x1e,null,_0xeeec[105]))}
\ No newline at end of file
index 1a995a8..ac3b59a 100644 (file)
@@ -1 +1 @@
-var _0x835d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x835d[0];var _=require(_0x835d[1]);var util=require(_0x835d[2]);var logger=require(_0x835d[4])(_0x835d[3]);var attributes=require(_0x835d[5]);var integrations=require(_0x835d[6]);module[_0x835d[7]]= function(_0x8854x6,_0x8854x7){return _0x8854x6[_0x835d[10]](_0x835d[8],attributes,{tableName:_0x835d[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x8298=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x8298[0];var _=require(_0x8298[1]);var util=require(_0x8298[2]);var logger=require(_0x8298[4])(_0x8298[3]);var attributes=require(_0x8298[5]);var integrations=require(_0x8298[6]);module[_0x8298[7]]= function(_0x7cf2x6,_0x7cf2x7){return _0x7cf2x6[_0x8298[10]](_0x8298[8],attributes,{tableName:_0x8298[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 3d87eac..ee93f87 100644 (file)
@@ -1 +1 @@
-var _0x7bb7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x7bb7[0];var _=require(_0x7bb7[1]);var util=require(_0x7bb7[2]);var moment=require(_0x7bb7[3]);var BPromise=require(_0x7bb7[4]);var db=require(_0x7bb7[6])[_0x7bb7[5]];var utils=require(_0x7bb7[7]);var logger=require(_0x7bb7[9])(_0x7bb7[8]);var jayson=require(_0x7bb7[10]);var client=jayson[_0x7bb7[12]][_0x7bb7[11]]({port:9002});function respondWithRpcPromise(_0x5589xb,_0x5589xc,_0x5589xd){return  new BPromise(function(_0x5589xe,_0x5589xf){return client[_0x7bb7[25]](_0x5589xb,_0x5589xd)[_0x7bb7[24]](function(_0x5589x11){logger[_0x7bb7[17]](_0x7bb7[13],_0x5589xc,_0x7bb7[16]);logger[_0x7bb7[20]](_0x7bb7[18],_0x5589xc,_0x7bb7[16],JSON[_0x7bb7[19]](_0x5589x11));if(_0x5589x11[_0x7bb7[14]]){if(_0x5589x11[_0x7bb7[14]][_0x7bb7[21]]=== 500){logger[_0x7bb7[14]](_0x7bb7[13],_0x5589xc,_0x5589x11[_0x7bb7[14]][_0x7bb7[22]]);return _0x5589xf(_0x5589x11[_0x7bb7[14]][_0x7bb7[22]])};logger[_0x7bb7[14]](_0x7bb7[13],_0x5589xc,_0x5589x11[_0x7bb7[14]][_0x7bb7[22]]);return _0x5589xe(_0x5589x11[_0x7bb7[14]][_0x7bb7[22]])}else {logger[_0x7bb7[17]](_0x7bb7[13],_0x5589xc,_0x7bb7[16]);_0x5589xe(_0x5589x11[_0x7bb7[23]][_0x7bb7[22]])}})[_0x7bb7[15]](function(_0x5589x10){logger[_0x7bb7[14]](_0x7bb7[13],_0x5589xc,_0x5589x10);_0x5589xf(_0x5589x10)})})}exports[_0x7bb7[26]]= function(_0x5589xd){var _0x5589x12=this;return  new Promise(function(_0x5589xe,_0x5589xf){return db[_0x7bb7[37]][_0x7bb7[36]]({raw:_0x5589xd[_0x7bb7[27]]?(_0x5589xd[_0x7bb7[27]][_0x7bb7[28]]=== undefined)?true:false:true,where:_0x5589xd[_0x7bb7[27]]?_0x5589xd[_0x7bb7[27]][_0x7bb7[29]]|| null:null,attributes:_0x5589xd[_0x7bb7[27]]?_0x5589xd[_0x7bb7[27]][_0x7bb7[30]]|| null:null,limit:_0x5589xd[_0x7bb7[27]]?_0x5589xd[_0x7bb7[27]][_0x7bb7[31]]|| null:null,include:_0x5589xd[_0x7bb7[27]]?(_0x5589xd[_0x7bb7[27]][_0x7bb7[32]]?_[_0x7bb7[35]](_0x5589xd[_0x7bb7[27]][_0x7bb7[32]],function(_0x5589x13){return {model:db[_0x5589x13[_0x7bb7[33]]],as:_0x5589x13[_0x7bb7[34]],attributes:_0x5589x13[_0x7bb7[30]],include:_0x5589x13[_0x7bb7[32]]?_[_0x7bb7[35]](_0x5589x13[_0x7bb7[32]],function(_0x5589x14){return {model:db[_0x5589x14[_0x7bb7[33]]],as:_0x5589x14[_0x7bb7[34]],attributes:_0x5589x14[_0x7bb7[30]],include:_0x5589x14[_0x7bb7[32]]?_[_0x7bb7[35]](_0x5589x14[_0x7bb7[32]],function(_0x5589x15){return {model:db[_0x5589x15[_0x7bb7[33]]],as:_0x5589x15[_0x7bb7[34]],attributes:_0x5589x15[_0x7bb7[30]]}}):[]}}):[]}}):[]):[]})[_0x7bb7[24]](function(_0x5589x11){logger[_0x7bb7[17]](_0x7bb7[26],_0x5589xd);logger[_0x7bb7[20]](_0x7bb7[26],_0x5589xd,JSON[_0x7bb7[19]](_0x5589x11));_0x5589xe(_0x5589x11)})[_0x7bb7[15]](function(_0x5589x10){logger[_0x7bb7[14]](_0x7bb7[26],_0x5589x10[_0x7bb7[22]],_0x5589xd);_0x5589xf(_0x5589x12[_0x7bb7[14]](500,_0x5589x10[_0x7bb7[22]]))})})};exports[_0x7bb7[38]]= function(_0x5589xd){var _0x5589x12=this;return  new Promise(function(_0x5589xe,_0x5589xf){return db[_0x7bb7[37]][_0x7bb7[39]]({raw:_0x5589xd[_0x7bb7[27]]?(_0x5589xd[_0x7bb7[27]][_0x7bb7[28]]=== undefined)?true:false:true,where:_0x5589xd[_0x7bb7[27]]?_0x5589xd[_0x7bb7[27]][_0x7bb7[29]]|| null:null,attributes:_0x5589xd[_0x7bb7[27]]?_0x5589xd[_0x7bb7[27]][_0x7bb7[30]]|| null:null,include:_0x5589xd[_0x7bb7[27]]?(_0x5589xd[_0x7bb7[27]][_0x7bb7[32]]?_[_0x7bb7[35]](_0x5589xd[_0x7bb7[27]][_0x7bb7[32]],function(_0x5589x13){return {model:db[_0x5589x13[_0x7bb7[33]]],as:_0x5589x13[_0x7bb7[34]],attributes:_0x5589x13[_0x7bb7[30]],include:_0x5589x13[_0x7bb7[32]]?_[_0x7bb7[35]](_0x5589x13[_0x7bb7[32]],function(_0x5589x14){return {model:db[_0x5589x14[_0x7bb7[33]]],as:_0x5589x14[_0x7bb7[34]],attributes:_0x5589x14[_0x7bb7[30]],include:_0x5589x14[_0x7bb7[32]]?_[_0x7bb7[35]](_0x5589x14[_0x7bb7[32]],function(_0x5589x15){return {model:db[_0x5589x15[_0x7bb7[33]]],as:_0x5589x15[_0x7bb7[34]],attributes:_0x5589x15[_0x7bb7[30]]}}):[]}}):[]}}):[]):[]})[_0x7bb7[24]](function(_0x5589x11){logger[_0x7bb7[17]](_0x7bb7[38],_0x5589xd);logger[_0x7bb7[20]](_0x7bb7[38],_0x5589xd,JSON[_0x7bb7[19]](_0x5589x11));_0x5589xe(_0x5589x11)})[_0x7bb7[15]](function(_0x5589x10){logger[_0x7bb7[14]](_0x7bb7[38],_0x5589x10[_0x7bb7[22]],_0x5589xd);_0x5589xf(_0x5589x12[_0x7bb7[14]](500,_0x5589x10[_0x7bb7[22]]))})})}
\ No newline at end of file
+var _0xfd5e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0xfd5e[0];var _=require(_0xfd5e[1]);var util=require(_0xfd5e[2]);var moment=require(_0xfd5e[3]);var BPromise=require(_0xfd5e[4]);var db=require(_0xfd5e[6])[_0xfd5e[5]];var utils=require(_0xfd5e[7]);var logger=require(_0xfd5e[9])(_0xfd5e[8]);var jayson=require(_0xfd5e[10]);var client=jayson[_0xfd5e[12]][_0xfd5e[11]]({port:9002});function respondWithRpcPromise(_0x4d20xb,_0x4d20xc,_0x4d20xd){return  new BPromise(function(_0x4d20xe,_0x4d20xf){return client[_0xfd5e[25]](_0x4d20xb,_0x4d20xd)[_0xfd5e[24]](function(_0x4d20x11){logger[_0xfd5e[17]](_0xfd5e[13],_0x4d20xc,_0xfd5e[16]);logger[_0xfd5e[20]](_0xfd5e[18],_0x4d20xc,_0xfd5e[16],JSON[_0xfd5e[19]](_0x4d20x11));if(_0x4d20x11[_0xfd5e[14]]){if(_0x4d20x11[_0xfd5e[14]][_0xfd5e[21]]=== 500){logger[_0xfd5e[14]](_0xfd5e[13],_0x4d20xc,_0x4d20x11[_0xfd5e[14]][_0xfd5e[22]]);return _0x4d20xf(_0x4d20x11[_0xfd5e[14]][_0xfd5e[22]])};logger[_0xfd5e[14]](_0xfd5e[13],_0x4d20xc,_0x4d20x11[_0xfd5e[14]][_0xfd5e[22]]);return _0x4d20xe(_0x4d20x11[_0xfd5e[14]][_0xfd5e[22]])}else {logger[_0xfd5e[17]](_0xfd5e[13],_0x4d20xc,_0xfd5e[16]);_0x4d20xe(_0x4d20x11[_0xfd5e[23]][_0xfd5e[22]])}})[_0xfd5e[15]](function(_0x4d20x10){logger[_0xfd5e[14]](_0xfd5e[13],_0x4d20xc,_0x4d20x10);_0x4d20xf(_0x4d20x10)})})}exports[_0xfd5e[26]]= function(_0x4d20xd){var _0x4d20x12=this;return  new Promise(function(_0x4d20xe,_0x4d20xf){return db[_0xfd5e[37]][_0xfd5e[36]]({raw:_0x4d20xd[_0xfd5e[27]]?(_0x4d20xd[_0xfd5e[27]][_0xfd5e[28]]=== undefined)?true:false:true,where:_0x4d20xd[_0xfd5e[27]]?_0x4d20xd[_0xfd5e[27]][_0xfd5e[29]]|| null:null,attributes:_0x4d20xd[_0xfd5e[27]]?_0x4d20xd[_0xfd5e[27]][_0xfd5e[30]]|| null:null,limit:_0x4d20xd[_0xfd5e[27]]?_0x4d20xd[_0xfd5e[27]][_0xfd5e[31]]|| null:null,include:_0x4d20xd[_0xfd5e[27]]?(_0x4d20xd[_0xfd5e[27]][_0xfd5e[32]]?_[_0xfd5e[35]](_0x4d20xd[_0xfd5e[27]][_0xfd5e[32]],function(_0x4d20x13){return {model:db[_0x4d20x13[_0xfd5e[33]]],as:_0x4d20x13[_0xfd5e[34]],attributes:_0x4d20x13[_0xfd5e[30]],include:_0x4d20x13[_0xfd5e[32]]?_[_0xfd5e[35]](_0x4d20x13[_0xfd5e[32]],function(_0x4d20x14){return {model:db[_0x4d20x14[_0xfd5e[33]]],as:_0x4d20x14[_0xfd5e[34]],attributes:_0x4d20x14[_0xfd5e[30]],include:_0x4d20x14[_0xfd5e[32]]?_[_0xfd5e[35]](_0x4d20x14[_0xfd5e[32]],function(_0x4d20x15){return {model:db[_0x4d20x15[_0xfd5e[33]]],as:_0x4d20x15[_0xfd5e[34]],attributes:_0x4d20x15[_0xfd5e[30]]}}):[]}}):[]}}):[]):[]})[_0xfd5e[24]](function(_0x4d20x11){logger[_0xfd5e[17]](_0xfd5e[26],_0x4d20xd);logger[_0xfd5e[20]](_0xfd5e[26],_0x4d20xd,JSON[_0xfd5e[19]](_0x4d20x11));_0x4d20xe(_0x4d20x11)})[_0xfd5e[15]](function(_0x4d20x10){logger[_0xfd5e[14]](_0xfd5e[26],_0x4d20x10[_0xfd5e[22]],_0x4d20xd);_0x4d20xf(_0x4d20x12[_0xfd5e[14]](500,_0x4d20x10[_0xfd5e[22]]))})})};exports[_0xfd5e[38]]= function(_0x4d20xd){var _0x4d20x12=this;return  new Promise(function(_0x4d20xe,_0x4d20xf){return db[_0xfd5e[37]][_0xfd5e[39]]({raw:_0x4d20xd[_0xfd5e[27]]?(_0x4d20xd[_0xfd5e[27]][_0xfd5e[28]]=== undefined)?true:false:true,where:_0x4d20xd[_0xfd5e[27]]?_0x4d20xd[_0xfd5e[27]][_0xfd5e[29]]|| null:null,attributes:_0x4d20xd[_0xfd5e[27]]?_0x4d20xd[_0xfd5e[27]][_0xfd5e[30]]|| null:null,include:_0x4d20xd[_0xfd5e[27]]?(_0x4d20xd[_0xfd5e[27]][_0xfd5e[32]]?_[_0xfd5e[35]](_0x4d20xd[_0xfd5e[27]][_0xfd5e[32]],function(_0x4d20x13){return {model:db[_0x4d20x13[_0xfd5e[33]]],as:_0x4d20x13[_0xfd5e[34]],attributes:_0x4d20x13[_0xfd5e[30]],include:_0x4d20x13[_0xfd5e[32]]?_[_0xfd5e[35]](_0x4d20x13[_0xfd5e[32]],function(_0x4d20x14){return {model:db[_0x4d20x14[_0xfd5e[33]]],as:_0x4d20x14[_0xfd5e[34]],attributes:_0x4d20x14[_0xfd5e[30]],include:_0x4d20x14[_0xfd5e[32]]?_[_0xfd5e[35]](_0x4d20x14[_0xfd5e[32]],function(_0x4d20x15){return {model:db[_0x4d20x15[_0xfd5e[33]]],as:_0x4d20x15[_0xfd5e[34]],attributes:_0x4d20x15[_0xfd5e[30]]}}):[]}}):[]}}):[]):[]})[_0xfd5e[24]](function(_0x4d20x11){logger[_0xfd5e[17]](_0xfd5e[38],_0x4d20xd);logger[_0xfd5e[20]](_0xfd5e[38],_0x4d20xd,JSON[_0xfd5e[19]](_0x4d20x11));_0x4d20xe(_0x4d20x11)})[_0xfd5e[15]](function(_0x4d20x10){logger[_0xfd5e[14]](_0xfd5e[38],_0x4d20x10[_0xfd5e[22]],_0x4d20xd);_0x4d20xf(_0x4d20x12[_0xfd5e[14]](500,_0x4d20x10[_0xfd5e[22]]))})})}
\ No newline at end of file
index bdd8060..bb99bbe 100644 (file)
@@ -1 +1 @@
-var _0x8de8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8de8[0];var multer=require(_0x8de8[1]);var util=require(_0x8de8[2]);var path=require(_0x8de8[3]);var express=require(_0x8de8[4]);var router=express.Router();var auth=require(_0x8de8[5]);var config=require(_0x8de8[6]);var controller=require(_0x8de8[7]);router[_0x8de8[11]](_0x8de8[8],auth[_0x8de8[9]](),controller[_0x8de8[10]]);router[_0x8de8[11]](_0x8de8[12],auth[_0x8de8[9]](),controller[_0x8de8[13]]);router[_0x8de8[11]](_0x8de8[14],auth[_0x8de8[9]](),controller[_0x8de8[15]]);router[_0x8de8[11]](_0x8de8[16],auth[_0x8de8[9]](),controller[_0x8de8[17]]);router[_0x8de8[11]](_0x8de8[18],auth[_0x8de8[9]](),controller[_0x8de8[19]]);router[_0x8de8[21]](_0x8de8[8],auth[_0x8de8[9]](),controller[_0x8de8[20]]);router[_0x8de8[23]](_0x8de8[12],auth[_0x8de8[9]](),controller[_0x8de8[22]]);router[_0x8de8[25]](_0x8de8[12],auth[_0x8de8[9]](),controller[_0x8de8[24]]);module[_0x8de8[26]]= router
\ No newline at end of file
+var _0xdca6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdca6[0];var multer=require(_0xdca6[1]);var util=require(_0xdca6[2]);var path=require(_0xdca6[3]);var express=require(_0xdca6[4]);var router=express.Router();var auth=require(_0xdca6[5]);var config=require(_0xdca6[6]);var controller=require(_0xdca6[7]);router[_0xdca6[11]](_0xdca6[8],auth[_0xdca6[9]](),controller[_0xdca6[10]]);router[_0xdca6[11]](_0xdca6[12],auth[_0xdca6[9]](),controller[_0xdca6[13]]);router[_0xdca6[11]](_0xdca6[14],auth[_0xdca6[9]](),controller[_0xdca6[15]]);router[_0xdca6[11]](_0xdca6[16],auth[_0xdca6[9]](),controller[_0xdca6[17]]);router[_0xdca6[11]](_0xdca6[18],auth[_0xdca6[9]](),controller[_0xdca6[19]]);router[_0xdca6[21]](_0xdca6[8],auth[_0xdca6[9]](),controller[_0xdca6[20]]);router[_0xdca6[23]](_0xdca6[12],auth[_0xdca6[9]](),controller[_0xdca6[22]]);router[_0xdca6[25]](_0xdca6[12],auth[_0xdca6[9]](),controller[_0xdca6[24]]);module[_0xdca6[26]]= router
\ No newline at end of file
index cb36bcf..80d1efd 100644 (file)
@@ -1 +1 @@
-var _0xd5d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xd5d2[0];var Sequelize=require(_0xd5d2[1]);module[_0xd5d2[2]]= {name:{type:Sequelize[_0xd5d2[3]]},description:{type:Sequelize[_0xd5d2[3]]}}
\ No newline at end of file
+var _0xc1b6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xc1b6[0];var Sequelize=require(_0xc1b6[1]);module[_0xc1b6[2]]= {name:{type:Sequelize[_0xc1b6[3]]},description:{type:Sequelize[_0xc1b6[3]]}}
\ No newline at end of file
index 0e5ea14..844c1d3 100644 (file)
@@ -1 +1 @@
-var _0xa102=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73"];_0xa102[0];var jsonpatch=require(_0xa102[1]);var rp=require(_0xa102[2]);var moment=require(_0xa102[3]);var BPromise=require(_0xa102[4]);var util=require(_0xa102[5]);var path=require(_0xa102[6]);var sox=require(_0xa102[7]);var ejs=require(_0xa102[8]);var fs=require(_0xa102[9]);var _=require(_0xa102[10]);var squel=require(_0xa102[11]);var crypto=require(_0xa102[12]);var jsforce=require(_0xa102[13]);var toCsv=require(_0xa102[14]);var qs=require(_0xa102[15]);var logger=require(_0xa102[17])(_0xa102[16]);var utils=require(_0xa102[18]);var config=require(_0xa102[19]);var db=require(_0xa102[21])[_0xa102[20]];var jayson=require(_0xa102[22]);var client=jayson[_0xa102[24]][_0xa102[23]]({port:9002});function respondWithRpcPromise(_0x9651x17,_0x9651x18,_0x9651x19){return  new BPromise(function(_0x9651x1a,_0x9651x1b){return client[_0xa102[37]](_0x9651x17,_0x9651x19)[_0xa102[36]](function(_0x9651x1d){logger[_0xa102[29]](_0xa102[25],_0x9651x18,_0xa102[28]);logger[_0xa102[32]](_0xa102[30],_0x9651x18,_0xa102[28],JSON[_0xa102[31]](_0x9651x1d));if(_0x9651x1d[_0xa102[26]]){if(_0x9651x1d[_0xa102[26]][_0xa102[33]]=== 500){logger[_0xa102[26]](_0xa102[25],_0x9651x18,_0x9651x1d[_0xa102[26]][_0xa102[34]]);return _0x9651x1b(_0x9651x1d[_0xa102[26]][_0xa102[34]])};logger[_0xa102[26]](_0xa102[25],_0x9651x18,_0x9651x1d[_0xa102[26]][_0xa102[34]]);return _0x9651x1a(_0x9651x1d[_0xa102[26]][_0xa102[34]])}else {logger[_0xa102[29]](_0xa102[25],_0x9651x18,_0xa102[28]);_0x9651x1a(_0x9651x1d[_0xa102[35]][_0xa102[34]])}})[_0xa102[27]](function(_0x9651x1c){logger[_0xa102[26]](_0xa102[25],_0x9651x18,_0x9651x1c);_0x9651x1b(_0x9651x1c)})})}function respondWithStatusCode(_0x9651x1d,_0x9651x1f,_0x9651x18){_0x9651x1f= _0x9651x1f|| 204;return function(_0x9651x20){if(_0x9651x20){logger[_0xa102[29]](_0xa102[30],_0x9651x18,_0x9651x1f,_0xa102[38]);logger[_0xa102[32]](_0xa102[39],_0x9651x18,_0x9651x1f,_0xa102[38]);return _0x9651x1d[_0xa102[40]](_0x9651x1f)};return _0x9651x1d[_0xa102[42]](304)[_0xa102[41]]()}}function respondWithResult(_0x9651x1d,_0x9651x1f,_0x9651x18){_0x9651x1f= _0x9651x1f|| 200;return function(_0x9651x20){if(_0x9651x20){logger[_0xa102[29]](_0xa102[30],_0x9651x18,_0x9651x1f,_0xa102[43]);logger[_0xa102[32]](_0xa102[39],_0x9651x18,_0x9651x1f,_0xa102[43],JSON[_0xa102[31]](_0x9651x20));return _0x9651x1d[_0xa102[42]](_0x9651x1f)[_0xa102[44]](_0x9651x20)};return _0x9651x1d[_0xa102[42]](304)[_0xa102[41]]()}}function respondWithFilteredResult(_0x9651x1d,_0x9651x23,_0x9651x18){return function(_0x9651x20){if(_0x9651x20){var _0x9651x24=_0x9651x20[_0xa102[45]],_0x9651x25=_0x9651x23[_0xa102[46]],_0x9651x26=_0x9651x23[_0xa102[46]]+ _0x9651x23[_0xa102[47]],_0x9651x1f;if(_0x9651x26>= _0x9651x24){_0x9651x26= _0x9651x24;_0x9651x1f= 200}else {_0x9651x1f= 206};_0x9651x1d[_0xa102[42]](_0x9651x1f);logger[_0xa102[29]](_0xa102[30],_0x9651x18,_0x9651x1f,_0xa102[48]);logger[_0xa102[32]](_0xa102[39],_0x9651x18,_0x9651x1f,_0xa102[43],JSON[_0xa102[31]](_0x9651x20));return _0x9651x1d[_0xa102[52]](_0xa102[49],_0x9651x25+ _0xa102[50]+ _0x9651x26+ _0xa102[51]+ _0x9651x24)[_0xa102[44]](_0x9651x20)};return null}}function patchUpdates(_0x9651x28){return function(_0x9651x20){try{jsonpatch[_0xa102[53]](_0x9651x20,_0x9651x28,true)}catch(err){return BPromise[_0xa102[54]](err)};return _0x9651x20[_0xa102[55]]()}}function saveUpdates(_0x9651x2a,_0x9651x1f,_0x9651x18){return function(_0x9651x20){if(_0x9651x20){return _0x9651x20[_0xa102[57]](_0x9651x2a)[_0xa102[36]](function(_0x9651x2b){logger[_0xa102[29]](_0xa102[30],_0x9651x18,_0x9651x1f,_0xa102[56]);logger[_0xa102[32]](_0xa102[39],_0x9651x18,_0x9651x1f,_0xa102[56],JSON[_0xa102[31]](_0x9651x20));return _0x9651x2b})};return null}}function removeEntity(_0x9651x1d,_0x9651x1f,_0x9651x18){return function(_0x9651x20){if(_0x9651x20){return _0x9651x20[_0xa102[59]]()[_0xa102[36]](function(){logger[_0xa102[29]](_0xa102[30],_0x9651x18,_0x9651x1f,_0xa102[58]);logger[_0xa102[32]](_0xa102[39],_0x9651x18,_0x9651x1f,_0xa102[58],JSON[_0xa102[31]](_0x9651x20));_0x9651x1d[_0xa102[42]](204)[_0xa102[41]]()})}}}function handleEntityNotFound(_0x9651x1d,_0x9651x1f,_0x9651x18){return function(_0x9651x20){if(!_0x9651x20){logger[_0xa102[26]](_0xa102[30],_0x9651x18,404,_0xa102[60]);_0x9651x1d[_0xa102[42]](404)[_0xa102[41]]();return null};return _0x9651x20}}function handleError(_0x9651x1d,_0x9651x1f,_0x9651x18){_0x9651x1f= _0x9651x1f|| 500;return function(_0x9651x1c){logger[_0xa102[26]](_0xa102[30],_0x9651x18,_0x9651x1f,JSON[_0xa102[31]](_0x9651x1c));delete _0x9651x1c[_0xa102[61]];_0x9651x1d[_0xa102[42]](_0x9651x1f)[_0xa102[62]](_0x9651x1c)}}exports[_0xa102[63]]= function(_0x9651x19,_0x9651x1d){var _0x9651x23={},_0x9651x2f={};_0x9651x2f[_0xa102[64]]= _[_0xa102[67]](db[_0xa102[66]][_0xa102[65]]);_0x9651x2f[_0xa102[68]]= _[_0xa102[67]](_0x9651x19[_0xa102[68]]);_0x9651x2f[_0xa102[69]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],_0x9651x2f[_0xa102[68]]);_0x9651x23[_0xa102[71]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],qs[_0xa102[72]](_0x9651x19[_0xa102[68]][_0xa102[72]]));_0x9651x23[_0xa102[71]]= (_0x9651x23[_0xa102[71]][_0xa102[73]])?_0x9651x23[_0xa102[71]]:_0x9651x2f[_0xa102[64]];if(!_0x9651x19[_0xa102[68]][_0xa102[75]](_0xa102[74])){_0x9651x23[_0xa102[47]]= qs[_0xa102[47]](_0x9651x19[_0xa102[68]][_0xa102[47]]);_0x9651x23[_0xa102[46]]= qs[_0xa102[46]](_0x9651x19[_0xa102[68]][_0xa102[46]])};_0x9651x23[_0xa102[76]]= qs[_0xa102[77]](_0x9651x19[_0xa102[68]][_0xa102[77]]);_0x9651x23[_0xa102[78]]= qs[_0xa102[69]](_[_0xa102[79]](_0x9651x19[_0xa102[68]],_0x9651x2f[_0xa102[69]]));if(_0x9651x19[_0xa102[68]][_0xa102[80]]){_0x9651x23[_0xa102[78]]= _[_0xa102[83]](_0x9651x23[_0xa102[78]],{$or:_[_0xa102[82]](_0x9651x23[_0xa102[71]],function(_0x9651x30){var _0x9651x31={};_0x9651x31[_0x9651x30]= {$like:_0xa102[81]+ _0x9651x19[_0xa102[68]][_0xa102[80]]+ _0xa102[81]};return _0x9651x31})})};_0x9651x23= _[_0xa102[83]]({},_0x9651x23,_0x9651x19[_0xa102[84]]);return db[_0xa102[66]][_0xa102[85]](_0x9651x23)[_0xa102[36]](respondWithFilteredResult(_0x9651x1d,_0x9651x23,_0xa102[63]))[_0xa102[27]](handleError(_0x9651x1d,null,_0xa102[63]))};exports[_0xa102[86]]= function(_0x9651x19,_0x9651x1d){var _0x9651x23={raw:false,where:{id:_0x9651x19[_0xa102[88]][_0xa102[87]]}},_0x9651x2f={};_0x9651x2f[_0xa102[64]]= _[_0xa102[67]](db[_0xa102[66]][_0xa102[65]]);_0x9651x2f[_0xa102[68]]= _[_0xa102[67]](_0x9651x19[_0xa102[68]]);_0x9651x2f[_0xa102[69]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],_0x9651x2f[_0xa102[68]]);_0x9651x23[_0xa102[71]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],qs[_0xa102[72]](_0x9651x19[_0xa102[68]][_0xa102[72]]));_0x9651x23[_0xa102[71]]= (_0x9651x23[_0xa102[71]][_0xa102[73]])?_0x9651x23[_0xa102[71]]:_0x9651x2f[_0xa102[64]];_0x9651x23= _[_0xa102[83]]({},_0x9651x23,_0x9651x19[_0xa102[84]]);return db[_0xa102[66]][_0xa102[89]](_0x9651x23)[_0xa102[36]](handleEntityNotFound(_0x9651x1d,null,_0xa102[86]))[_0xa102[36]](respondWithResult(_0x9651x1d,null,_0xa102[86]))[_0xa102[27]](handleError(_0x9651x1d,null,_0xa102[86]))};exports[_0xa102[90]]= function(_0x9651x19,_0x9651x1d){return db[_0xa102[66]][_0xa102[90]](_0x9651x19[_0xa102[91]],{})[_0xa102[36]](respondWithResult(_0x9651x1d,201,_0xa102[90]))[_0xa102[27]](handleError(_0x9651x1d,null,_0xa102[90]))};exports[_0xa102[57]]= function(_0x9651x19,_0x9651x1d){if(_0x9651x19[_0xa102[91]][_0xa102[87]]){delete _0x9651x19[_0xa102[91]][_0xa102[87]]};return db[_0xa102[66]][_0xa102[89]]({where:{id:_0x9651x19[_0xa102[88]][_0xa102[87]]}})[_0xa102[36]](handleEntityNotFound(_0x9651x1d,null,_0xa102[57]))[_0xa102[36]](saveUpdates(_0x9651x19[_0xa102[91]],null,_0xa102[57]))[_0xa102[36]](respondWithResult(_0x9651x1d,null,_0xa102[57]))[_0xa102[27]](handleError(_0x9651x1d,null,_0xa102[57]))};exports[_0xa102[59]]= function(_0x9651x19,_0x9651x1d){return db[_0xa102[66]][_0xa102[89]]({where:{id:_0x9651x19[_0xa102[88]][_0xa102[87]]}})[_0xa102[36]](handleEntityNotFound(_0x9651x1d,null,_0xa102[59]))[_0xa102[36]](removeEntity(_0x9651x1d,null,_0xa102[59]))[_0xa102[27]](handleError(_0x9651x1d,null,_0xa102[59]))};exports[_0xa102[92]]= function(_0x9651x19,_0x9651x20,_0x9651x32){var _0x9651x23={};var _0x9651x2f={};var _0x9651x33;var _0x9651x24;return db[_0xa102[66]][_0xa102[94]]({where:{id:_0x9651x19[_0xa102[88]][_0xa102[87]]}})[_0xa102[36]](handleEntityNotFound(_0x9651x20,null,_0xa102[92]))[_0xa102[36]](function(_0x9651x20){if(_0x9651x20){_0x9651x33= _0x9651x20;_0x9651x2f[_0xa102[64]]= _[_0xa102[67]](db[_0xa102[93]][_0xa102[65]]);_0x9651x2f[_0xa102[68]]= _[_0xa102[67]](_0x9651x19[_0xa102[68]]);_0x9651x2f[_0xa102[69]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],_0x9651x2f[_0xa102[68]]);_0x9651x23[_0xa102[71]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],qs[_0xa102[72]](_0x9651x19[_0xa102[68]][_0xa102[72]]));_0x9651x23[_0xa102[71]]= (_0x9651x23[_0xa102[71]][_0xa102[73]])?_0x9651x23[_0xa102[71]]:_0x9651x2f[_0xa102[64]];_0x9651x23[_0xa102[76]]= qs[_0xa102[77]](_0x9651x19[_0xa102[68]][_0xa102[77]]);_0x9651x23[_0xa102[78]]= qs[_0xa102[69]](_[_0xa102[79]](_0x9651x19[_0xa102[68]],_0x9651x2f[_0xa102[69]]));if(_0x9651x19[_0xa102[68]][_0xa102[80]]){_0x9651x23[_0xa102[78]]= _[_0xa102[83]](_0x9651x23[_0xa102[78]],{$or:_[_0xa102[82]](_0x9651x23[_0xa102[71]],function(_0x9651x30){var _0x9651x31={};_0x9651x31[_0x9651x30]= {$like:_0xa102[81]+ _0x9651x19[_0xa102[68]][_0xa102[80]]+ _0xa102[81]};return _0x9651x31})})};_0x9651x23= _[_0xa102[83]]({},_0x9651x23,_0x9651x19[_0xa102[84]]);return _0x9651x33[_0xa102[92]](_0x9651x23)}})[_0xa102[36]](function(_0x9651x35){if(_0x9651x35){_0x9651x24= _0x9651x35[_0xa102[73]];if(!_0x9651x19[_0xa102[68]][_0xa102[75]](_0xa102[74])){_0x9651x23[_0xa102[47]]= qs[_0xa102[47]](_0x9651x19[_0xa102[68]][_0xa102[47]]);_0x9651x23[_0xa102[46]]= qs[_0xa102[46]](_0x9651x19[_0xa102[68]][_0xa102[46]])};return _0x9651x33[_0xa102[92]](_0x9651x23)}})[_0xa102[36]](function(_0x9651x34){return _0x9651x34?{count:_0x9651x24,rows:_0x9651x34}:null})[_0xa102[36]](respondWithResult(_0x9651x20,null,_0xa102[92]))[_0xa102[27]](handleError(_0x9651x20,null,_0xa102[92]))};exports[_0xa102[95]]= function(_0x9651x19,_0x9651x20,_0x9651x32){var _0x9651x23={};var _0x9651x2f={};var _0x9651x33;var _0x9651x24;return db[_0xa102[66]][_0xa102[94]]({where:{id:_0x9651x19[_0xa102[88]][_0xa102[87]]}})[_0xa102[36]](handleEntityNotFound(_0x9651x20,null,_0xa102[95]))[_0xa102[36]](function(_0x9651x20){if(_0x9651x20){_0x9651x33= _0x9651x20;_0x9651x2f[_0xa102[64]]= _[_0xa102[67]](db[_0xa102[93]][_0xa102[65]]);_0x9651x2f[_0xa102[68]]= _[_0xa102[67]](_0x9651x19[_0xa102[68]]);_0x9651x2f[_0xa102[69]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],_0x9651x2f[_0xa102[68]]);_0x9651x23[_0xa102[71]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],qs[_0xa102[72]](_0x9651x19[_0xa102[68]][_0xa102[72]]));_0x9651x23[_0xa102[71]]= (_0x9651x23[_0xa102[71]][_0xa102[73]])?_0x9651x23[_0xa102[71]]:_0x9651x2f[_0xa102[64]];_0x9651x23[_0xa102[76]]= qs[_0xa102[77]](_0x9651x19[_0xa102[68]][_0xa102[77]]);_0x9651x23[_0xa102[78]]= qs[_0xa102[69]](_[_0xa102[79]](_0x9651x19[_0xa102[68]],_0x9651x2f[_0xa102[69]]));if(_0x9651x19[_0xa102[68]][_0xa102[80]]){_0x9651x23[_0xa102[78]]= _[_0xa102[83]](_0x9651x23[_0xa102[78]],{$or:_[_0xa102[82]](_0x9651x23[_0xa102[71]],function(_0x9651x30){var _0x9651x31={};_0x9651x31[_0x9651x30]= {$like:_0xa102[81]+ _0x9651x19[_0xa102[68]][_0xa102[80]]+ _0xa102[81]};return _0x9651x31})})};_0x9651x23= _[_0xa102[83]]({},_0x9651x23,_0x9651x19[_0xa102[84]]);return _0x9651x33[_0xa102[95]](_0x9651x23)}})[_0xa102[36]](function(_0x9651x35){if(_0x9651x35){_0x9651x24= _0x9651x35[_0xa102[73]];if(!_0x9651x19[_0xa102[68]][_0xa102[75]](_0xa102[74])){_0x9651x23[_0xa102[47]]= qs[_0xa102[47]](_0x9651x19[_0xa102[68]][_0xa102[47]]);_0x9651x23[_0xa102[46]]= qs[_0xa102[46]](_0x9651x19[_0xa102[68]][_0xa102[46]])};return _0x9651x33[_0xa102[95]](_0x9651x23)}})[_0xa102[36]](function(_0x9651x34){return _0x9651x34?{count:_0x9651x24,rows:_0x9651x34}:null})[_0xa102[36]](respondWithResult(_0x9651x20,null,_0xa102[95]))[_0xa102[27]](handleError(_0x9651x20,null,_0xa102[95]))};exports[_0xa102[96]]= function(_0x9651x19,_0x9651x20,_0x9651x32){var _0x9651x23={};var _0x9651x2f={};var _0x9651x33;var _0x9651x24;return db[_0xa102[66]][_0xa102[94]]({where:{id:_0x9651x19[_0xa102[88]][_0xa102[87]]}})[_0xa102[36]](handleEntityNotFound(_0x9651x20,null,_0xa102[96]))[_0xa102[36]](function(_0x9651x20){if(_0x9651x20){_0x9651x33= _0x9651x20;_0x9651x2f[_0xa102[64]]= _[_0xa102[67]](db[_0xa102[93]][_0xa102[65]]);_0x9651x2f[_0xa102[68]]= _[_0xa102[67]](_0x9651x19[_0xa102[68]]);_0x9651x2f[_0xa102[69]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],_0x9651x2f[_0xa102[68]]);_0x9651x23[_0xa102[71]]= _[_0xa102[70]](_0x9651x2f[_0xa102[64]],qs[_0xa102[72]](_0x9651x19[_0xa102[68]][_0xa102[72]]));_0x9651x23[_0xa102[71]]= (_0x9651x23[_0xa102[71]][_0xa102[73]])?_0x9651x23[_0xa102[71]]:_0x9651x2f[_0xa102[64]];_0x9651x23[_0xa102[76]]= qs[_0xa102[77]](_0x9651x19[_0xa102[68]][_0xa102[77]]);_0x9651x23[_0xa102[78]]= qs[_0xa102[69]](_[_0xa102[79]](_0x9651x19[_0xa102[68]],_0x9651x2f[_0xa102[69]]));if(_0x9651x19[_0xa102[68]][_0xa102[80]]){_0x9651x23[_0xa102[78]]= _[_0xa102[83]](_0x9651x23[_0xa102[78]],{$or:_[_0xa102[82]](_0x9651x23[_0xa102[71]],function(_0x9651x30){var _0x9651x31={};_0x9651x31[_0x9651x30]= {$like:_0xa102[81]+ _0x9651x19[_0xa102[68]][_0xa102[80]]+ _0xa102[81]};return _0x9651x31})})};_0x9651x23= _[_0xa102[83]]({},_0x9651x23,_0x9651x19[_0xa102[84]]);return _0x9651x33[_0xa102[96]](_0x9651x23)}})[_0xa102[36]](function(_0x9651x35){if(_0x9651x35){_0x9651x24= _0x9651x35[_0xa102[73]];if(!_0x9651x19[_0xa102[68]][_0xa102[75]](_0xa102[74])){_0x9651x23[_0xa102[47]]= qs[_0xa102[47]](_0x9651x19[_0xa102[68]][_0xa102[47]]);_0x9651x23[_0xa102[46]]= qs[_0xa102[46]](_0x9651x19[_0xa102[68]][_0xa102[46]])};return _0x9651x33[_0xa102[96]](_0x9651x23)}})[_0xa102[36]](function(_0x9651x34){return _0x9651x34?{count:_0x9651x24,rows:_0x9651x34}:null})[_0xa102[36]](respondWithResult(_0x9651x20,null,_0xa102[96]))[_0xa102[27]](handleError(_0x9651x20,null,_0xa102[96]))}
\ No newline at end of file
+var _0xa7a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73"];_0xa7a2[0];var jsonpatch=require(_0xa7a2[1]);var rp=require(_0xa7a2[2]);var moment=require(_0xa7a2[3]);var BPromise=require(_0xa7a2[4]);var util=require(_0xa7a2[5]);var path=require(_0xa7a2[6]);var sox=require(_0xa7a2[7]);var ejs=require(_0xa7a2[8]);var fs=require(_0xa7a2[9]);var _=require(_0xa7a2[10]);var squel=require(_0xa7a2[11]);var crypto=require(_0xa7a2[12]);var jsforce=require(_0xa7a2[13]);var toCsv=require(_0xa7a2[14]);var qs=require(_0xa7a2[15]);var logger=require(_0xa7a2[17])(_0xa7a2[16]);var utils=require(_0xa7a2[18]);var config=require(_0xa7a2[19]);var db=require(_0xa7a2[21])[_0xa7a2[20]];var jayson=require(_0xa7a2[22]);var client=jayson[_0xa7a2[24]][_0xa7a2[23]]({port:9002});function respondWithRpcPromise(_0x25c5x17,_0x25c5x18,_0x25c5x19){return  new BPromise(function(_0x25c5x1a,_0x25c5x1b){return client[_0xa7a2[37]](_0x25c5x17,_0x25c5x19)[_0xa7a2[36]](function(_0x25c5x1d){logger[_0xa7a2[29]](_0xa7a2[25],_0x25c5x18,_0xa7a2[28]);logger[_0xa7a2[32]](_0xa7a2[30],_0x25c5x18,_0xa7a2[28],JSON[_0xa7a2[31]](_0x25c5x1d));if(_0x25c5x1d[_0xa7a2[26]]){if(_0x25c5x1d[_0xa7a2[26]][_0xa7a2[33]]=== 500){logger[_0xa7a2[26]](_0xa7a2[25],_0x25c5x18,_0x25c5x1d[_0xa7a2[26]][_0xa7a2[34]]);return _0x25c5x1b(_0x25c5x1d[_0xa7a2[26]][_0xa7a2[34]])};logger[_0xa7a2[26]](_0xa7a2[25],_0x25c5x18,_0x25c5x1d[_0xa7a2[26]][_0xa7a2[34]]);return _0x25c5x1a(_0x25c5x1d[_0xa7a2[26]][_0xa7a2[34]])}else {logger[_0xa7a2[29]](_0xa7a2[25],_0x25c5x18,_0xa7a2[28]);_0x25c5x1a(_0x25c5x1d[_0xa7a2[35]][_0xa7a2[34]])}})[_0xa7a2[27]](function(_0x25c5x1c){logger[_0xa7a2[26]](_0xa7a2[25],_0x25c5x18,_0x25c5x1c);_0x25c5x1b(_0x25c5x1c)})})}function respondWithStatusCode(_0x25c5x1d,_0x25c5x1f,_0x25c5x18){_0x25c5x1f= _0x25c5x1f|| 204;return function(_0x25c5x20){if(_0x25c5x20){logger[_0xa7a2[29]](_0xa7a2[30],_0x25c5x18,_0x25c5x1f,_0xa7a2[38]);logger[_0xa7a2[32]](_0xa7a2[39],_0x25c5x18,_0x25c5x1f,_0xa7a2[38]);return _0x25c5x1d[_0xa7a2[40]](_0x25c5x1f)};return _0x25c5x1d[_0xa7a2[42]](304)[_0xa7a2[41]]()}}function respondWithResult(_0x25c5x1d,_0x25c5x1f,_0x25c5x18){_0x25c5x1f= _0x25c5x1f|| 200;return function(_0x25c5x20){if(_0x25c5x20){logger[_0xa7a2[29]](_0xa7a2[30],_0x25c5x18,_0x25c5x1f,_0xa7a2[43]);logger[_0xa7a2[32]](_0xa7a2[39],_0x25c5x18,_0x25c5x1f,_0xa7a2[43],JSON[_0xa7a2[31]](_0x25c5x20));return _0x25c5x1d[_0xa7a2[42]](_0x25c5x1f)[_0xa7a2[44]](_0x25c5x20)};return _0x25c5x1d[_0xa7a2[42]](304)[_0xa7a2[41]]()}}function respondWithFilteredResult(_0x25c5x1d,_0x25c5x23,_0x25c5x18){return function(_0x25c5x20){if(_0x25c5x20){var _0x25c5x24=_0x25c5x20[_0xa7a2[45]],_0x25c5x25=_0x25c5x23[_0xa7a2[46]],_0x25c5x26=_0x25c5x23[_0xa7a2[46]]+ _0x25c5x23[_0xa7a2[47]],_0x25c5x1f;if(_0x25c5x26>= _0x25c5x24){_0x25c5x26= _0x25c5x24;_0x25c5x1f= 200}else {_0x25c5x1f= 206};_0x25c5x1d[_0xa7a2[42]](_0x25c5x1f);logger[_0xa7a2[29]](_0xa7a2[30],_0x25c5x18,_0x25c5x1f,_0xa7a2[48]);logger[_0xa7a2[32]](_0xa7a2[39],_0x25c5x18,_0x25c5x1f,_0xa7a2[43],JSON[_0xa7a2[31]](_0x25c5x20));return _0x25c5x1d[_0xa7a2[52]](_0xa7a2[49],_0x25c5x25+ _0xa7a2[50]+ _0x25c5x26+ _0xa7a2[51]+ _0x25c5x24)[_0xa7a2[44]](_0x25c5x20)};return null}}function patchUpdates(_0x25c5x28){return function(_0x25c5x20){try{jsonpatch[_0xa7a2[53]](_0x25c5x20,_0x25c5x28,true)}catch(err){return BPromise[_0xa7a2[54]](err)};return _0x25c5x20[_0xa7a2[55]]()}}function saveUpdates(_0x25c5x2a,_0x25c5x1f,_0x25c5x18){return function(_0x25c5x20){if(_0x25c5x20){return _0x25c5x20[_0xa7a2[57]](_0x25c5x2a)[_0xa7a2[36]](function(_0x25c5x2b){logger[_0xa7a2[29]](_0xa7a2[30],_0x25c5x18,_0x25c5x1f,_0xa7a2[56]);logger[_0xa7a2[32]](_0xa7a2[39],_0x25c5x18,_0x25c5x1f,_0xa7a2[56],JSON[_0xa7a2[31]](_0x25c5x20));return _0x25c5x2b})};return null}}function removeEntity(_0x25c5x1d,_0x25c5x1f,_0x25c5x18){return function(_0x25c5x20){if(_0x25c5x20){return _0x25c5x20[_0xa7a2[59]]()[_0xa7a2[36]](function(){logger[_0xa7a2[29]](_0xa7a2[30],_0x25c5x18,_0x25c5x1f,_0xa7a2[58]);logger[_0xa7a2[32]](_0xa7a2[39],_0x25c5x18,_0x25c5x1f,_0xa7a2[58],JSON[_0xa7a2[31]](_0x25c5x20));_0x25c5x1d[_0xa7a2[42]](204)[_0xa7a2[41]]()})}}}function handleEntityNotFound(_0x25c5x1d,_0x25c5x1f,_0x25c5x18){return function(_0x25c5x20){if(!_0x25c5x20){logger[_0xa7a2[26]](_0xa7a2[30],_0x25c5x18,404,_0xa7a2[60]);_0x25c5x1d[_0xa7a2[42]](404)[_0xa7a2[41]]();return null};return _0x25c5x20}}function handleError(_0x25c5x1d,_0x25c5x1f,_0x25c5x18){_0x25c5x1f= _0x25c5x1f|| 500;return function(_0x25c5x1c){logger[_0xa7a2[26]](_0xa7a2[30],_0x25c5x18,_0x25c5x1f,JSON[_0xa7a2[31]](_0x25c5x1c));delete _0x25c5x1c[_0xa7a2[61]];_0x25c5x1d[_0xa7a2[42]](_0x25c5x1f)[_0xa7a2[62]](_0x25c5x1c)}}exports[_0xa7a2[63]]= function(_0x25c5x19,_0x25c5x1d){var _0x25c5x23={},_0x25c5x2f={};_0x25c5x2f[_0xa7a2[64]]= _[_0xa7a2[67]](db[_0xa7a2[66]][_0xa7a2[65]]);_0x25c5x2f[_0xa7a2[68]]= _[_0xa7a2[67]](_0x25c5x19[_0xa7a2[68]]);_0x25c5x2f[_0xa7a2[69]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],_0x25c5x2f[_0xa7a2[68]]);_0x25c5x23[_0xa7a2[71]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],qs[_0xa7a2[72]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[72]]));_0x25c5x23[_0xa7a2[71]]= (_0x25c5x23[_0xa7a2[71]][_0xa7a2[73]])?_0x25c5x23[_0xa7a2[71]]:_0x25c5x2f[_0xa7a2[64]];if(!_0x25c5x19[_0xa7a2[68]][_0xa7a2[75]](_0xa7a2[74])){_0x25c5x23[_0xa7a2[47]]= qs[_0xa7a2[47]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[47]]);_0x25c5x23[_0xa7a2[46]]= qs[_0xa7a2[46]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[46]])};_0x25c5x23[_0xa7a2[76]]= qs[_0xa7a2[77]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[77]]);_0x25c5x23[_0xa7a2[78]]= qs[_0xa7a2[69]](_[_0xa7a2[79]](_0x25c5x19[_0xa7a2[68]],_0x25c5x2f[_0xa7a2[69]]));if(_0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]){_0x25c5x23[_0xa7a2[78]]= _[_0xa7a2[83]](_0x25c5x23[_0xa7a2[78]],{$or:_[_0xa7a2[82]](_0x25c5x23[_0xa7a2[71]],function(_0x25c5x30){var _0x25c5x31={};_0x25c5x31[_0x25c5x30]= {$like:_0xa7a2[81]+ _0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]+ _0xa7a2[81]};return _0x25c5x31})})};_0x25c5x23= _[_0xa7a2[83]]({},_0x25c5x23,_0x25c5x19[_0xa7a2[84]]);return db[_0xa7a2[66]][_0xa7a2[85]](_0x25c5x23)[_0xa7a2[36]](respondWithFilteredResult(_0x25c5x1d,_0x25c5x23,_0xa7a2[63]))[_0xa7a2[27]](handleError(_0x25c5x1d,null,_0xa7a2[63]))};exports[_0xa7a2[86]]= function(_0x25c5x19,_0x25c5x1d){var _0x25c5x23={raw:false,where:{id:_0x25c5x19[_0xa7a2[88]][_0xa7a2[87]]}},_0x25c5x2f={};_0x25c5x2f[_0xa7a2[64]]= _[_0xa7a2[67]](db[_0xa7a2[66]][_0xa7a2[65]]);_0x25c5x2f[_0xa7a2[68]]= _[_0xa7a2[67]](_0x25c5x19[_0xa7a2[68]]);_0x25c5x2f[_0xa7a2[69]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],_0x25c5x2f[_0xa7a2[68]]);_0x25c5x23[_0xa7a2[71]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],qs[_0xa7a2[72]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[72]]));_0x25c5x23[_0xa7a2[71]]= (_0x25c5x23[_0xa7a2[71]][_0xa7a2[73]])?_0x25c5x23[_0xa7a2[71]]:_0x25c5x2f[_0xa7a2[64]];_0x25c5x23= _[_0xa7a2[83]]({},_0x25c5x23,_0x25c5x19[_0xa7a2[84]]);return db[_0xa7a2[66]][_0xa7a2[89]](_0x25c5x23)[_0xa7a2[36]](handleEntityNotFound(_0x25c5x1d,null,_0xa7a2[86]))[_0xa7a2[36]](respondWithResult(_0x25c5x1d,null,_0xa7a2[86]))[_0xa7a2[27]](handleError(_0x25c5x1d,null,_0xa7a2[86]))};exports[_0xa7a2[90]]= function(_0x25c5x19,_0x25c5x1d){return db[_0xa7a2[66]][_0xa7a2[90]](_0x25c5x19[_0xa7a2[91]],{})[_0xa7a2[36]](respondWithResult(_0x25c5x1d,201,_0xa7a2[90]))[_0xa7a2[27]](handleError(_0x25c5x1d,null,_0xa7a2[90]))};exports[_0xa7a2[57]]= function(_0x25c5x19,_0x25c5x1d){if(_0x25c5x19[_0xa7a2[91]][_0xa7a2[87]]){delete _0x25c5x19[_0xa7a2[91]][_0xa7a2[87]]};return db[_0xa7a2[66]][_0xa7a2[89]]({where:{id:_0x25c5x19[_0xa7a2[88]][_0xa7a2[87]]}})[_0xa7a2[36]](handleEntityNotFound(_0x25c5x1d,null,_0xa7a2[57]))[_0xa7a2[36]](saveUpdates(_0x25c5x19[_0xa7a2[91]],null,_0xa7a2[57]))[_0xa7a2[36]](respondWithResult(_0x25c5x1d,null,_0xa7a2[57]))[_0xa7a2[27]](handleError(_0x25c5x1d,null,_0xa7a2[57]))};exports[_0xa7a2[59]]= function(_0x25c5x19,_0x25c5x1d){return db[_0xa7a2[66]][_0xa7a2[89]]({where:{id:_0x25c5x19[_0xa7a2[88]][_0xa7a2[87]]}})[_0xa7a2[36]](handleEntityNotFound(_0x25c5x1d,null,_0xa7a2[59]))[_0xa7a2[36]](removeEntity(_0x25c5x1d,null,_0xa7a2[59]))[_0xa7a2[27]](handleError(_0x25c5x1d,null,_0xa7a2[59]))};exports[_0xa7a2[92]]= function(_0x25c5x19,_0x25c5x20,_0x25c5x32){var _0x25c5x23={};var _0x25c5x2f={};var _0x25c5x33;var _0x25c5x24;return db[_0xa7a2[66]][_0xa7a2[94]]({where:{id:_0x25c5x19[_0xa7a2[88]][_0xa7a2[87]]}})[_0xa7a2[36]](handleEntityNotFound(_0x25c5x20,null,_0xa7a2[92]))[_0xa7a2[36]](function(_0x25c5x20){if(_0x25c5x20){_0x25c5x33= _0x25c5x20;_0x25c5x2f[_0xa7a2[64]]= _[_0xa7a2[67]](db[_0xa7a2[93]][_0xa7a2[65]]);_0x25c5x2f[_0xa7a2[68]]= _[_0xa7a2[67]](_0x25c5x19[_0xa7a2[68]]);_0x25c5x2f[_0xa7a2[69]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],_0x25c5x2f[_0xa7a2[68]]);_0x25c5x23[_0xa7a2[71]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],qs[_0xa7a2[72]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[72]]));_0x25c5x23[_0xa7a2[71]]= (_0x25c5x23[_0xa7a2[71]][_0xa7a2[73]])?_0x25c5x23[_0xa7a2[71]]:_0x25c5x2f[_0xa7a2[64]];_0x25c5x23[_0xa7a2[76]]= qs[_0xa7a2[77]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[77]]);_0x25c5x23[_0xa7a2[78]]= qs[_0xa7a2[69]](_[_0xa7a2[79]](_0x25c5x19[_0xa7a2[68]],_0x25c5x2f[_0xa7a2[69]]));if(_0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]){_0x25c5x23[_0xa7a2[78]]= _[_0xa7a2[83]](_0x25c5x23[_0xa7a2[78]],{$or:_[_0xa7a2[82]](_0x25c5x23[_0xa7a2[71]],function(_0x25c5x30){var _0x25c5x31={};_0x25c5x31[_0x25c5x30]= {$like:_0xa7a2[81]+ _0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]+ _0xa7a2[81]};return _0x25c5x31})})};_0x25c5x23= _[_0xa7a2[83]]({},_0x25c5x23,_0x25c5x19[_0xa7a2[84]]);return _0x25c5x33[_0xa7a2[92]](_0x25c5x23)}})[_0xa7a2[36]](function(_0x25c5x35){if(_0x25c5x35){_0x25c5x24= _0x25c5x35[_0xa7a2[73]];if(!_0x25c5x19[_0xa7a2[68]][_0xa7a2[75]](_0xa7a2[74])){_0x25c5x23[_0xa7a2[47]]= qs[_0xa7a2[47]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[47]]);_0x25c5x23[_0xa7a2[46]]= qs[_0xa7a2[46]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[46]])};return _0x25c5x33[_0xa7a2[92]](_0x25c5x23)}})[_0xa7a2[36]](function(_0x25c5x34){return _0x25c5x34?{count:_0x25c5x24,rows:_0x25c5x34}:null})[_0xa7a2[36]](respondWithResult(_0x25c5x20,null,_0xa7a2[92]))[_0xa7a2[27]](handleError(_0x25c5x20,null,_0xa7a2[92]))};exports[_0xa7a2[95]]= function(_0x25c5x19,_0x25c5x20,_0x25c5x32){var _0x25c5x23={};var _0x25c5x2f={};var _0x25c5x33;var _0x25c5x24;return db[_0xa7a2[66]][_0xa7a2[94]]({where:{id:_0x25c5x19[_0xa7a2[88]][_0xa7a2[87]]}})[_0xa7a2[36]](handleEntityNotFound(_0x25c5x20,null,_0xa7a2[95]))[_0xa7a2[36]](function(_0x25c5x20){if(_0x25c5x20){_0x25c5x33= _0x25c5x20;_0x25c5x2f[_0xa7a2[64]]= _[_0xa7a2[67]](db[_0xa7a2[93]][_0xa7a2[65]]);_0x25c5x2f[_0xa7a2[68]]= _[_0xa7a2[67]](_0x25c5x19[_0xa7a2[68]]);_0x25c5x2f[_0xa7a2[69]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],_0x25c5x2f[_0xa7a2[68]]);_0x25c5x23[_0xa7a2[71]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],qs[_0xa7a2[72]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[72]]));_0x25c5x23[_0xa7a2[71]]= (_0x25c5x23[_0xa7a2[71]][_0xa7a2[73]])?_0x25c5x23[_0xa7a2[71]]:_0x25c5x2f[_0xa7a2[64]];_0x25c5x23[_0xa7a2[76]]= qs[_0xa7a2[77]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[77]]);_0x25c5x23[_0xa7a2[78]]= qs[_0xa7a2[69]](_[_0xa7a2[79]](_0x25c5x19[_0xa7a2[68]],_0x25c5x2f[_0xa7a2[69]]));if(_0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]){_0x25c5x23[_0xa7a2[78]]= _[_0xa7a2[83]](_0x25c5x23[_0xa7a2[78]],{$or:_[_0xa7a2[82]](_0x25c5x23[_0xa7a2[71]],function(_0x25c5x30){var _0x25c5x31={};_0x25c5x31[_0x25c5x30]= {$like:_0xa7a2[81]+ _0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]+ _0xa7a2[81]};return _0x25c5x31})})};_0x25c5x23= _[_0xa7a2[83]]({},_0x25c5x23,_0x25c5x19[_0xa7a2[84]]);return _0x25c5x33[_0xa7a2[95]](_0x25c5x23)}})[_0xa7a2[36]](function(_0x25c5x35){if(_0x25c5x35){_0x25c5x24= _0x25c5x35[_0xa7a2[73]];if(!_0x25c5x19[_0xa7a2[68]][_0xa7a2[75]](_0xa7a2[74])){_0x25c5x23[_0xa7a2[47]]= qs[_0xa7a2[47]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[47]]);_0x25c5x23[_0xa7a2[46]]= qs[_0xa7a2[46]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[46]])};return _0x25c5x33[_0xa7a2[95]](_0x25c5x23)}})[_0xa7a2[36]](function(_0x25c5x34){return _0x25c5x34?{count:_0x25c5x24,rows:_0x25c5x34}:null})[_0xa7a2[36]](respondWithResult(_0x25c5x20,null,_0xa7a2[95]))[_0xa7a2[27]](handleError(_0x25c5x20,null,_0xa7a2[95]))};exports[_0xa7a2[96]]= function(_0x25c5x19,_0x25c5x20,_0x25c5x32){var _0x25c5x23={};var _0x25c5x2f={};var _0x25c5x33;var _0x25c5x24;return db[_0xa7a2[66]][_0xa7a2[94]]({where:{id:_0x25c5x19[_0xa7a2[88]][_0xa7a2[87]]}})[_0xa7a2[36]](handleEntityNotFound(_0x25c5x20,null,_0xa7a2[96]))[_0xa7a2[36]](function(_0x25c5x20){if(_0x25c5x20){_0x25c5x33= _0x25c5x20;_0x25c5x2f[_0xa7a2[64]]= _[_0xa7a2[67]](db[_0xa7a2[93]][_0xa7a2[65]]);_0x25c5x2f[_0xa7a2[68]]= _[_0xa7a2[67]](_0x25c5x19[_0xa7a2[68]]);_0x25c5x2f[_0xa7a2[69]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],_0x25c5x2f[_0xa7a2[68]]);_0x25c5x23[_0xa7a2[71]]= _[_0xa7a2[70]](_0x25c5x2f[_0xa7a2[64]],qs[_0xa7a2[72]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[72]]));_0x25c5x23[_0xa7a2[71]]= (_0x25c5x23[_0xa7a2[71]][_0xa7a2[73]])?_0x25c5x23[_0xa7a2[71]]:_0x25c5x2f[_0xa7a2[64]];_0x25c5x23[_0xa7a2[76]]= qs[_0xa7a2[77]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[77]]);_0x25c5x23[_0xa7a2[78]]= qs[_0xa7a2[69]](_[_0xa7a2[79]](_0x25c5x19[_0xa7a2[68]],_0x25c5x2f[_0xa7a2[69]]));if(_0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]){_0x25c5x23[_0xa7a2[78]]= _[_0xa7a2[83]](_0x25c5x23[_0xa7a2[78]],{$or:_[_0xa7a2[82]](_0x25c5x23[_0xa7a2[71]],function(_0x25c5x30){var _0x25c5x31={};_0x25c5x31[_0x25c5x30]= {$like:_0xa7a2[81]+ _0x25c5x19[_0xa7a2[68]][_0xa7a2[80]]+ _0xa7a2[81]};return _0x25c5x31})})};_0x25c5x23= _[_0xa7a2[83]]({},_0x25c5x23,_0x25c5x19[_0xa7a2[84]]);return _0x25c5x33[_0xa7a2[96]](_0x25c5x23)}})[_0xa7a2[36]](function(_0x25c5x35){if(_0x25c5x35){_0x25c5x24= _0x25c5x35[_0xa7a2[73]];if(!_0x25c5x19[_0xa7a2[68]][_0xa7a2[75]](_0xa7a2[74])){_0x25c5x23[_0xa7a2[47]]= qs[_0xa7a2[47]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[47]]);_0x25c5x23[_0xa7a2[46]]= qs[_0xa7a2[46]](_0x25c5x19[_0xa7a2[68]][_0xa7a2[46]])};return _0x25c5x33[_0xa7a2[96]](_0x25c5x23)}})[_0xa7a2[36]](function(_0x25c5x34){return _0x25c5x34?{count:_0x25c5x24,rows:_0x25c5x34}:null})[_0xa7a2[36]](respondWithResult(_0x25c5x20,null,_0xa7a2[96]))[_0xa7a2[27]](handleError(_0x25c5x20,null,_0xa7a2[96]))}
\ No newline at end of file
index a02f403..8d74cbb 100644 (file)
@@ -1 +1 @@
-var _0xbe89=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xbe89[0];var _=require(_0xbe89[1]);var util=require(_0xbe89[2]);var logger=require(_0xbe89[4])(_0xbe89[3]);var attributes=require(_0xbe89[5]);module[_0xbe89[6]]= function(_0x9b65x5,_0x9b65x6){return _0x9b65x5[_0xbe89[9]](_0xbe89[7],attributes,{tableName:_0xbe89[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xc462=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xc462[0];var _=require(_0xc462[1]);var util=require(_0xc462[2]);var logger=require(_0xc462[4])(_0xc462[3]);var attributes=require(_0xc462[5]);module[_0xc462[6]]= function(_0xf52bx5,_0xf52bx6){return _0xf52bx5[_0xc462[9]](_0xc462[7],attributes,{tableName:_0xc462[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 22eb7f1..490a3a9 100644 (file)
@@ -1 +1 @@
-var _0xce7c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xce7c[0];var _=require(_0xce7c[1]);var util=require(_0xce7c[2]);var moment=require(_0xce7c[3]);var BPromise=require(_0xce7c[4]);var db=require(_0xce7c[6])[_0xce7c[5]];var utils=require(_0xce7c[7]);var logger=require(_0xce7c[9])(_0xce7c[8]);var jayson=require(_0xce7c[10]);var client=jayson[_0xce7c[12]][_0xce7c[11]]({port:9002});function respondWithRpcPromise(_0xb1abxb,_0xb1abxc,_0xb1abxd){return  new BPromise(function(_0xb1abxe,_0xb1abxf){return client[_0xce7c[25]](_0xb1abxb,_0xb1abxd)[_0xce7c[24]](function(_0xb1abx11){logger[_0xce7c[17]](_0xce7c[13],_0xb1abxc,_0xce7c[16]);logger[_0xce7c[20]](_0xce7c[18],_0xb1abxc,_0xce7c[16],JSON[_0xce7c[19]](_0xb1abx11));if(_0xb1abx11[_0xce7c[14]]){if(_0xb1abx11[_0xce7c[14]][_0xce7c[21]]=== 500){logger[_0xce7c[14]](_0xce7c[13],_0xb1abxc,_0xb1abx11[_0xce7c[14]][_0xce7c[22]]);return _0xb1abxf(_0xb1abx11[_0xce7c[14]][_0xce7c[22]])};logger[_0xce7c[14]](_0xce7c[13],_0xb1abxc,_0xb1abx11[_0xce7c[14]][_0xce7c[22]]);return _0xb1abxe(_0xb1abx11[_0xce7c[14]][_0xce7c[22]])}else {logger[_0xce7c[17]](_0xce7c[13],_0xb1abxc,_0xce7c[16]);_0xb1abxe(_0xb1abx11[_0xce7c[23]][_0xce7c[22]])}})[_0xce7c[15]](function(_0xb1abx10){logger[_0xce7c[14]](_0xce7c[13],_0xb1abxc,_0xb1abx10);_0xb1abxf(_0xb1abx10)})})}
\ No newline at end of file
+var _0xbaeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbaeb[0];var _=require(_0xbaeb[1]);var util=require(_0xbaeb[2]);var moment=require(_0xbaeb[3]);var BPromise=require(_0xbaeb[4]);var db=require(_0xbaeb[6])[_0xbaeb[5]];var utils=require(_0xbaeb[7]);var logger=require(_0xbaeb[9])(_0xbaeb[8]);var jayson=require(_0xbaeb[10]);var client=jayson[_0xbaeb[12]][_0xbaeb[11]]({port:9002});function respondWithRpcPromise(_0xd4eaxb,_0xd4eaxc,_0xd4eaxd){return  new BPromise(function(_0xd4eaxe,_0xd4eaxf){return client[_0xbaeb[25]](_0xd4eaxb,_0xd4eaxd)[_0xbaeb[24]](function(_0xd4eax11){logger[_0xbaeb[17]](_0xbaeb[13],_0xd4eaxc,_0xbaeb[16]);logger[_0xbaeb[20]](_0xbaeb[18],_0xd4eaxc,_0xbaeb[16],JSON[_0xbaeb[19]](_0xd4eax11));if(_0xd4eax11[_0xbaeb[14]]){if(_0xd4eax11[_0xbaeb[14]][_0xbaeb[21]]=== 500){logger[_0xbaeb[14]](_0xbaeb[13],_0xd4eaxc,_0xd4eax11[_0xbaeb[14]][_0xbaeb[22]]);return _0xd4eaxf(_0xd4eax11[_0xbaeb[14]][_0xbaeb[22]])};logger[_0xbaeb[14]](_0xbaeb[13],_0xd4eaxc,_0xd4eax11[_0xbaeb[14]][_0xbaeb[22]]);return _0xd4eaxe(_0xd4eax11[_0xbaeb[14]][_0xbaeb[22]])}else {logger[_0xbaeb[17]](_0xbaeb[13],_0xd4eaxc,_0xbaeb[16]);_0xd4eaxe(_0xd4eax11[_0xbaeb[23]][_0xbaeb[22]])}})[_0xbaeb[15]](function(_0xd4eax10){logger[_0xbaeb[14]](_0xbaeb[13],_0xd4eaxc,_0xd4eax10);_0xd4eaxf(_0xd4eax10)})})}
\ No newline at end of file
index 6ceae15..ca13a75 100644 (file)
@@ -1 +1 @@
-var _0x8c70=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8c70[0];var multer=require(_0x8c70[1]);var util=require(_0x8c70[2]);var path=require(_0x8c70[3]);var express=require(_0x8c70[4]);var router=express.Router();var auth=require(_0x8c70[5]);var config=require(_0x8c70[6]);var controller=require(_0x8c70[7]);router[_0x8c70[11]](_0x8c70[8],auth[_0x8c70[9]](),controller[_0x8c70[10]]);router[_0x8c70[11]](_0x8c70[12],auth[_0x8c70[9]](),controller[_0x8c70[13]]);router[_0x8c70[15]](_0x8c70[8],auth[_0x8c70[9]](),controller[_0x8c70[14]]);router[_0x8c70[17]](_0x8c70[12],auth[_0x8c70[9]](),controller[_0x8c70[16]]);router[_0x8c70[19]](_0x8c70[12],auth[_0x8c70[9]](),controller[_0x8c70[18]]);module[_0x8c70[20]]= router
\ No newline at end of file
+var _0xa112=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa112[0];var multer=require(_0xa112[1]);var util=require(_0xa112[2]);var path=require(_0xa112[3]);var express=require(_0xa112[4]);var router=express.Router();var auth=require(_0xa112[5]);var config=require(_0xa112[6]);var controller=require(_0xa112[7]);router[_0xa112[11]](_0xa112[8],auth[_0xa112[9]](),controller[_0xa112[10]]);router[_0xa112[11]](_0xa112[12],auth[_0xa112[9]](),controller[_0xa112[13]]);router[_0xa112[15]](_0xa112[8],auth[_0xa112[9]](),controller[_0xa112[14]]);router[_0xa112[17]](_0xa112[12],auth[_0xa112[9]](),controller[_0xa112[16]]);router[_0xa112[19]](_0xa112[12],auth[_0xa112[9]](),controller[_0xa112[18]]);module[_0xa112[20]]= router
\ No newline at end of file
index 9c5ab7a..7c14d06 100644 (file)
@@ -1 +1 @@
-var _0xd92d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47"];_0xd92d[0];var Sequelize=require(_0xd92d[1]);module[_0xd92d[2]]= {type:{type:Sequelize.ENUM(_0xd92d[3],_0xd92d[4],_0xd92d[5],_0xd92d[6]),defaultValue:_0xd92d[3]},content:{type:Sequelize[_0xd92d[7]]},key:{type:Sequelize[_0xd92d[7]]},keyType:{type:Sequelize.ENUM(_0xd92d[3],_0xd92d[4],_0xd92d[5])},keyContent:{type:Sequelize[_0xd92d[7]]},idField:{type:Sequelize[_0xd92d[7]]},variableName:{type:Sequelize[_0xd92d[7]]}}
\ No newline at end of file
+var _0x4263=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47"];_0x4263[0];var Sequelize=require(_0x4263[1]);module[_0x4263[2]]= {type:{type:Sequelize.ENUM(_0x4263[3],_0x4263[4],_0x4263[5],_0x4263[6]),defaultValue:_0x4263[3]},content:{type:Sequelize[_0x4263[7]]},key:{type:Sequelize[_0x4263[7]]},keyType:{type:Sequelize.ENUM(_0x4263[3],_0x4263[4],_0x4263[5])},keyContent:{type:Sequelize[_0x4263[7]]},idField:{type:Sequelize[_0x4263[7]]},variableName:{type:Sequelize[_0x4263[7]]}}
\ No newline at end of file
index 3f1e717..3849991 100644 (file)
@@ -1 +1 @@
-var _0xfebf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xfebf[0];var jsonpatch=require(_0xfebf[1]);var rp=require(_0xfebf[2]);var moment=require(_0xfebf[3]);var BPromise=require(_0xfebf[4]);var util=require(_0xfebf[5]);var path=require(_0xfebf[6]);var sox=require(_0xfebf[7]);var ejs=require(_0xfebf[8]);var fs=require(_0xfebf[9]);var _=require(_0xfebf[10]);var squel=require(_0xfebf[11]);var crypto=require(_0xfebf[12]);var jsforce=require(_0xfebf[13]);var toCsv=require(_0xfebf[14]);var qs=require(_0xfebf[15]);var logger=require(_0xfebf[17])(_0xfebf[16]);var utils=require(_0xfebf[18]);var config=require(_0xfebf[19]);var db=require(_0xfebf[21])[_0xfebf[20]];function respondWithStatusCode(_0x186bx15,_0x186bx16,_0x186bx17){_0x186bx16= _0x186bx16|| 204;return function(_0x186bx18){if(_0x186bx18){logger[_0xfebf[24]](_0xfebf[22],_0x186bx17,_0x186bx16,_0xfebf[23]);logger[_0xfebf[26]](_0xfebf[25],_0x186bx17,_0x186bx16,_0xfebf[23]);return _0x186bx15[_0xfebf[27]](_0x186bx16)};return _0x186bx15[_0xfebf[29]](304)[_0xfebf[28]]()}}function respondWithResult(_0x186bx15,_0x186bx16,_0x186bx17){_0x186bx16= _0x186bx16|| 200;return function(_0x186bx18){if(_0x186bx18){logger[_0xfebf[24]](_0xfebf[22],_0x186bx17,_0x186bx16,_0xfebf[30]);logger[_0xfebf[26]](_0xfebf[25],_0x186bx17,_0x186bx16,_0xfebf[30],JSON[_0xfebf[31]](_0x186bx18));return _0x186bx15[_0xfebf[29]](_0x186bx16)[_0xfebf[32]](_0x186bx18)};return _0x186bx15[_0xfebf[29]](304)[_0xfebf[28]]()}}function respondWithFilteredResult(_0x186bx15,_0x186bx1b,_0x186bx17){return function(_0x186bx18){if(_0x186bx18){var _0x186bx1c=_0x186bx18[_0xfebf[33]],_0x186bx1d=_0x186bx1b[_0xfebf[34]],_0x186bx1e=_0x186bx1b[_0xfebf[34]]+ _0x186bx1b[_0xfebf[35]],_0x186bx16;if(_0x186bx1e>= _0x186bx1c){_0x186bx1e= _0x186bx1c;_0x186bx16= 200}else {_0x186bx16= 206};_0x186bx15[_0xfebf[29]](_0x186bx16);logger[_0xfebf[24]](_0xfebf[22],_0x186bx17,_0x186bx16,_0xfebf[36]);logger[_0xfebf[26]](_0xfebf[25],_0x186bx17,_0x186bx16,_0xfebf[30],JSON[_0xfebf[31]](_0x186bx18));return _0x186bx15[_0xfebf[40]](_0xfebf[37],_0x186bx1d+ _0xfebf[38]+ _0x186bx1e+ _0xfebf[39]+ _0x186bx1c)[_0xfebf[32]](_0x186bx18)};return null}}function patchUpdates(_0x186bx20){return function(_0x186bx18){try{jsonpatch[_0xfebf[41]](_0x186bx18,_0x186bx20,true)}catch(err){return BPromise[_0xfebf[42]](err)};return _0x186bx18[_0xfebf[43]]()}}function saveUpdates(_0x186bx22,_0x186bx16,_0x186bx17){return function(_0x186bx18){if(_0x186bx18){return _0x186bx18[_0xfebf[46]](_0x186bx22)[_0xfebf[45]](function(_0x186bx23){logger[_0xfebf[24]](_0xfebf[22],_0x186bx17,_0x186bx16,_0xfebf[44]);logger[_0xfebf[26]](_0xfebf[25],_0x186bx17,_0x186bx16,_0xfebf[44],JSON[_0xfebf[31]](_0x186bx18));return _0x186bx23})};return null}}function removeEntity(_0x186bx15,_0x186bx16,_0x186bx17){return function(_0x186bx18){if(_0x186bx18){return _0x186bx18[_0xfebf[48]]()[_0xfebf[45]](function(){logger[_0xfebf[24]](_0xfebf[22],_0x186bx17,_0x186bx16,_0xfebf[47]);logger[_0xfebf[26]](_0xfebf[25],_0x186bx17,_0x186bx16,_0xfebf[47],JSON[_0xfebf[31]](_0x186bx18));_0x186bx15[_0xfebf[29]](204)[_0xfebf[28]]()})}}}function handleEntityNotFound(_0x186bx15,_0x186bx16,_0x186bx17){return function(_0x186bx18){if(!_0x186bx18){logger[_0xfebf[50]](_0xfebf[22],_0x186bx17,404,_0xfebf[49]);_0x186bx15[_0xfebf[29]](404)[_0xfebf[28]]();return null};return _0x186bx18}}function handleError(_0x186bx15,_0x186bx16,_0x186bx17){_0x186bx16= _0x186bx16|| 500;return function(_0x186bx27){logger[_0xfebf[50]](_0xfebf[22],_0x186bx17,_0x186bx16,JSON[_0xfebf[31]](_0x186bx27));delete _0x186bx27[_0xfebf[51]];_0x186bx15[_0xfebf[29]](_0x186bx16)[_0xfebf[52]](_0x186bx27)}}exports[_0xfebf[53]]= function(_0x186bx28,_0x186bx15){var _0x186bx1b={},_0x186bx29={};_0x186bx29[_0xfebf[54]]= _[_0xfebf[57]](db[_0xfebf[56]][_0xfebf[55]]);_0x186bx29[_0xfebf[58]]= _[_0xfebf[57]](_0x186bx28[_0xfebf[58]]);_0x186bx29[_0xfebf[59]]= _[_0xfebf[60]](_0x186bx29[_0xfebf[54]],_0x186bx29[_0xfebf[58]]);_0x186bx1b[_0xfebf[61]]= _[_0xfebf[60]](_0x186bx29[_0xfebf[54]],qs[_0xfebf[62]](_0x186bx28[_0xfebf[58]][_0xfebf[62]]));_0x186bx1b[_0xfebf[61]]= (_0x186bx1b[_0xfebf[61]][_0xfebf[63]])?_0x186bx1b[_0xfebf[61]]:_0x186bx29[_0xfebf[54]];if(!_0x186bx28[_0xfebf[58]][_0xfebf[65]](_0xfebf[64])){_0x186bx1b[_0xfebf[35]]= qs[_0xfebf[35]](_0x186bx28[_0xfebf[58]][_0xfebf[35]]);_0x186bx1b[_0xfebf[34]]= qs[_0xfebf[34]](_0x186bx28[_0xfebf[58]][_0xfebf[34]])};_0x186bx1b[_0xfebf[66]]= qs[_0xfebf[67]](_0x186bx28[_0xfebf[58]][_0xfebf[67]]);_0x186bx1b[_0xfebf[68]]= qs[_0xfebf[59]](_[_0xfebf[69]](_0x186bx28[_0xfebf[58]],_0x186bx29[_0xfebf[59]]));if(_0x186bx28[_0xfebf[58]][_0xfebf[70]]){_0x186bx1b[_0xfebf[68]]= _[_0xfebf[73]](_0x186bx1b[_0xfebf[68]],{$or:_[_0xfebf[72]](_0x186bx1b[_0xfebf[61]],function(_0x186bx2a){var _0x186bx2b={};_0x186bx2b[_0x186bx2a]= {$like:_0xfebf[71]+ _0x186bx28[_0xfebf[58]][_0xfebf[70]]+ _0xfebf[71]};return _0x186bx2b})})};_0x186bx1b= _[_0xfebf[73]]({},_0x186bx1b,_0x186bx28[_0xfebf[74]]);return db[_0xfebf[56]][_0xfebf[76]](_0x186bx1b)[_0xfebf[45]](respondWithFilteredResult(_0x186bx15,_0x186bx1b,_0xfebf[53]))[_0xfebf[75]](handleError(_0x186bx15,null,_0xfebf[53]))};exports[_0xfebf[77]]= function(_0x186bx28,_0x186bx15){var _0x186bx1b={raw:true,where:{id:_0x186bx28[_0xfebf[79]][_0xfebf[78]]}},_0x186bx29={};_0x186bx29[_0xfebf[54]]= _[_0xfebf[57]](db[_0xfebf[56]][_0xfebf[55]]);_0x186bx29[_0xfebf[58]]= _[_0xfebf[57]](_0x186bx28[_0xfebf[58]]);_0x186bx29[_0xfebf[59]]= _[_0xfebf[60]](_0x186bx29[_0xfebf[54]],_0x186bx29[_0xfebf[58]]);_0x186bx1b[_0xfebf[61]]= _[_0xfebf[60]](_0x186bx29[_0xfebf[54]],qs[_0xfebf[62]](_0x186bx28[_0xfebf[58]][_0xfebf[62]]));_0x186bx1b[_0xfebf[61]]= (_0x186bx1b[_0xfebf[61]][_0xfebf[63]])?_0x186bx1b[_0xfebf[61]]:_0x186bx29[_0xfebf[54]];_0x186bx1b= _[_0xfebf[73]]({},_0x186bx1b,_0x186bx28[_0xfebf[74]]);return db[_0xfebf[56]][_0xfebf[80]](_0x186bx1b)[_0xfebf[45]](handleEntityNotFound(_0x186bx15,null,_0xfebf[77]))[_0xfebf[45]](respondWithResult(_0x186bx15,null,_0xfebf[77]))[_0xfebf[75]](handleError(_0x186bx15,null,_0xfebf[77]))};exports[_0xfebf[81]]= function(_0x186bx28,_0x186bx15){return db[_0xfebf[56]][_0xfebf[81]](_0x186bx28[_0xfebf[82]],{})[_0xfebf[45]](respondWithResult(_0x186bx15,201,_0xfebf[81]))[_0xfebf[75]](handleError(_0x186bx15,null,_0xfebf[81]))};exports[_0xfebf[46]]= function(_0x186bx28,_0x186bx15){if(_0x186bx28[_0xfebf[82]][_0xfebf[78]]){delete _0x186bx28[_0xfebf[82]][_0xfebf[78]]};return db[_0xfebf[56]][_0xfebf[80]]({where:{id:_0x186bx28[_0xfebf[79]][_0xfebf[78]]}})[_0xfebf[45]](handleEntityNotFound(_0x186bx15,null,_0xfebf[46]))[_0xfebf[45]](saveUpdates(_0x186bx28[_0xfebf[82]],null,_0xfebf[46]))[_0xfebf[45]](respondWithResult(_0x186bx15,null,_0xfebf[46]))[_0xfebf[75]](handleError(_0x186bx15,null,_0xfebf[46]))};exports[_0xfebf[48]]= function(_0x186bx28,_0x186bx15){return db[_0xfebf[56]][_0xfebf[80]]({where:{id:_0x186bx28[_0xfebf[79]][_0xfebf[78]]}})[_0xfebf[45]](handleEntityNotFound(_0x186bx15,null,_0xfebf[48]))[_0xfebf[45]](removeEntity(_0x186bx15,null,_0xfebf[48]))[_0xfebf[75]](handleError(_0x186bx15,null,_0xfebf[48]))}
\ No newline at end of file
+var _0xd8bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd8bc[0];var jsonpatch=require(_0xd8bc[1]);var rp=require(_0xd8bc[2]);var moment=require(_0xd8bc[3]);var BPromise=require(_0xd8bc[4]);var util=require(_0xd8bc[5]);var path=require(_0xd8bc[6]);var sox=require(_0xd8bc[7]);var ejs=require(_0xd8bc[8]);var fs=require(_0xd8bc[9]);var _=require(_0xd8bc[10]);var squel=require(_0xd8bc[11]);var crypto=require(_0xd8bc[12]);var jsforce=require(_0xd8bc[13]);var toCsv=require(_0xd8bc[14]);var qs=require(_0xd8bc[15]);var logger=require(_0xd8bc[17])(_0xd8bc[16]);var utils=require(_0xd8bc[18]);var config=require(_0xd8bc[19]);var db=require(_0xd8bc[21])[_0xd8bc[20]];function respondWithStatusCode(_0xff84x15,_0xff84x16,_0xff84x17){_0xff84x16= _0xff84x16|| 204;return function(_0xff84x18){if(_0xff84x18){logger[_0xd8bc[24]](_0xd8bc[22],_0xff84x17,_0xff84x16,_0xd8bc[23]);logger[_0xd8bc[26]](_0xd8bc[25],_0xff84x17,_0xff84x16,_0xd8bc[23]);return _0xff84x15[_0xd8bc[27]](_0xff84x16)};return _0xff84x15[_0xd8bc[29]](304)[_0xd8bc[28]]()}}function respondWithResult(_0xff84x15,_0xff84x16,_0xff84x17){_0xff84x16= _0xff84x16|| 200;return function(_0xff84x18){if(_0xff84x18){logger[_0xd8bc[24]](_0xd8bc[22],_0xff84x17,_0xff84x16,_0xd8bc[30]);logger[_0xd8bc[26]](_0xd8bc[25],_0xff84x17,_0xff84x16,_0xd8bc[30],JSON[_0xd8bc[31]](_0xff84x18));return _0xff84x15[_0xd8bc[29]](_0xff84x16)[_0xd8bc[32]](_0xff84x18)};return _0xff84x15[_0xd8bc[29]](304)[_0xd8bc[28]]()}}function respondWithFilteredResult(_0xff84x15,_0xff84x1b,_0xff84x17){return function(_0xff84x18){if(_0xff84x18){var _0xff84x1c=_0xff84x18[_0xd8bc[33]],_0xff84x1d=_0xff84x1b[_0xd8bc[34]],_0xff84x1e=_0xff84x1b[_0xd8bc[34]]+ _0xff84x1b[_0xd8bc[35]],_0xff84x16;if(_0xff84x1e>= _0xff84x1c){_0xff84x1e= _0xff84x1c;_0xff84x16= 200}else {_0xff84x16= 206};_0xff84x15[_0xd8bc[29]](_0xff84x16);logger[_0xd8bc[24]](_0xd8bc[22],_0xff84x17,_0xff84x16,_0xd8bc[36]);logger[_0xd8bc[26]](_0xd8bc[25],_0xff84x17,_0xff84x16,_0xd8bc[30],JSON[_0xd8bc[31]](_0xff84x18));return _0xff84x15[_0xd8bc[40]](_0xd8bc[37],_0xff84x1d+ _0xd8bc[38]+ _0xff84x1e+ _0xd8bc[39]+ _0xff84x1c)[_0xd8bc[32]](_0xff84x18)};return null}}function patchUpdates(_0xff84x20){return function(_0xff84x18){try{jsonpatch[_0xd8bc[41]](_0xff84x18,_0xff84x20,true)}catch(err){return BPromise[_0xd8bc[42]](err)};return _0xff84x18[_0xd8bc[43]]()}}function saveUpdates(_0xff84x22,_0xff84x16,_0xff84x17){return function(_0xff84x18){if(_0xff84x18){return _0xff84x18[_0xd8bc[46]](_0xff84x22)[_0xd8bc[45]](function(_0xff84x23){logger[_0xd8bc[24]](_0xd8bc[22],_0xff84x17,_0xff84x16,_0xd8bc[44]);logger[_0xd8bc[26]](_0xd8bc[25],_0xff84x17,_0xff84x16,_0xd8bc[44],JSON[_0xd8bc[31]](_0xff84x18));return _0xff84x23})};return null}}function removeEntity(_0xff84x15,_0xff84x16,_0xff84x17){return function(_0xff84x18){if(_0xff84x18){return _0xff84x18[_0xd8bc[48]]()[_0xd8bc[45]](function(){logger[_0xd8bc[24]](_0xd8bc[22],_0xff84x17,_0xff84x16,_0xd8bc[47]);logger[_0xd8bc[26]](_0xd8bc[25],_0xff84x17,_0xff84x16,_0xd8bc[47],JSON[_0xd8bc[31]](_0xff84x18));_0xff84x15[_0xd8bc[29]](204)[_0xd8bc[28]]()})}}}function handleEntityNotFound(_0xff84x15,_0xff84x16,_0xff84x17){return function(_0xff84x18){if(!_0xff84x18){logger[_0xd8bc[50]](_0xd8bc[22],_0xff84x17,404,_0xd8bc[49]);_0xff84x15[_0xd8bc[29]](404)[_0xd8bc[28]]();return null};return _0xff84x18}}function handleError(_0xff84x15,_0xff84x16,_0xff84x17){_0xff84x16= _0xff84x16|| 500;return function(_0xff84x27){logger[_0xd8bc[50]](_0xd8bc[22],_0xff84x17,_0xff84x16,JSON[_0xd8bc[31]](_0xff84x27));delete _0xff84x27[_0xd8bc[51]];_0xff84x15[_0xd8bc[29]](_0xff84x16)[_0xd8bc[52]](_0xff84x27)}}exports[_0xd8bc[53]]= function(_0xff84x28,_0xff84x15){var _0xff84x1b={},_0xff84x29={};_0xff84x29[_0xd8bc[54]]= _[_0xd8bc[57]](db[_0xd8bc[56]][_0xd8bc[55]]);_0xff84x29[_0xd8bc[58]]= _[_0xd8bc[57]](_0xff84x28[_0xd8bc[58]]);_0xff84x29[_0xd8bc[59]]= _[_0xd8bc[60]](_0xff84x29[_0xd8bc[54]],_0xff84x29[_0xd8bc[58]]);_0xff84x1b[_0xd8bc[61]]= _[_0xd8bc[60]](_0xff84x29[_0xd8bc[54]],qs[_0xd8bc[62]](_0xff84x28[_0xd8bc[58]][_0xd8bc[62]]));_0xff84x1b[_0xd8bc[61]]= (_0xff84x1b[_0xd8bc[61]][_0xd8bc[63]])?_0xff84x1b[_0xd8bc[61]]:_0xff84x29[_0xd8bc[54]];if(!_0xff84x28[_0xd8bc[58]][_0xd8bc[65]](_0xd8bc[64])){_0xff84x1b[_0xd8bc[35]]= qs[_0xd8bc[35]](_0xff84x28[_0xd8bc[58]][_0xd8bc[35]]);_0xff84x1b[_0xd8bc[34]]= qs[_0xd8bc[34]](_0xff84x28[_0xd8bc[58]][_0xd8bc[34]])};_0xff84x1b[_0xd8bc[66]]= qs[_0xd8bc[67]](_0xff84x28[_0xd8bc[58]][_0xd8bc[67]]);_0xff84x1b[_0xd8bc[68]]= qs[_0xd8bc[59]](_[_0xd8bc[69]](_0xff84x28[_0xd8bc[58]],_0xff84x29[_0xd8bc[59]]));if(_0xff84x28[_0xd8bc[58]][_0xd8bc[70]]){_0xff84x1b[_0xd8bc[68]]= _[_0xd8bc[73]](_0xff84x1b[_0xd8bc[68]],{$or:_[_0xd8bc[72]](_0xff84x1b[_0xd8bc[61]],function(_0xff84x2a){var _0xff84x2b={};_0xff84x2b[_0xff84x2a]= {$like:_0xd8bc[71]+ _0xff84x28[_0xd8bc[58]][_0xd8bc[70]]+ _0xd8bc[71]};return _0xff84x2b})})};_0xff84x1b= _[_0xd8bc[73]]({},_0xff84x1b,_0xff84x28[_0xd8bc[74]]);return db[_0xd8bc[56]][_0xd8bc[76]](_0xff84x1b)[_0xd8bc[45]](respondWithFilteredResult(_0xff84x15,_0xff84x1b,_0xd8bc[53]))[_0xd8bc[75]](handleError(_0xff84x15,null,_0xd8bc[53]))};exports[_0xd8bc[77]]= function(_0xff84x28,_0xff84x15){var _0xff84x1b={raw:true,where:{id:_0xff84x28[_0xd8bc[79]][_0xd8bc[78]]}},_0xff84x29={};_0xff84x29[_0xd8bc[54]]= _[_0xd8bc[57]](db[_0xd8bc[56]][_0xd8bc[55]]);_0xff84x29[_0xd8bc[58]]= _[_0xd8bc[57]](_0xff84x28[_0xd8bc[58]]);_0xff84x29[_0xd8bc[59]]= _[_0xd8bc[60]](_0xff84x29[_0xd8bc[54]],_0xff84x29[_0xd8bc[58]]);_0xff84x1b[_0xd8bc[61]]= _[_0xd8bc[60]](_0xff84x29[_0xd8bc[54]],qs[_0xd8bc[62]](_0xff84x28[_0xd8bc[58]][_0xd8bc[62]]));_0xff84x1b[_0xd8bc[61]]= (_0xff84x1b[_0xd8bc[61]][_0xd8bc[63]])?_0xff84x1b[_0xd8bc[61]]:_0xff84x29[_0xd8bc[54]];_0xff84x1b= _[_0xd8bc[73]]({},_0xff84x1b,_0xff84x28[_0xd8bc[74]]);return db[_0xd8bc[56]][_0xd8bc[80]](_0xff84x1b)[_0xd8bc[45]](handleEntityNotFound(_0xff84x15,null,_0xd8bc[77]))[_0xd8bc[45]](respondWithResult(_0xff84x15,null,_0xd8bc[77]))[_0xd8bc[75]](handleError(_0xff84x15,null,_0xd8bc[77]))};exports[_0xd8bc[81]]= function(_0xff84x28,_0xff84x15){return db[_0xd8bc[56]][_0xd8bc[81]](_0xff84x28[_0xd8bc[82]],{})[_0xd8bc[45]](respondWithResult(_0xff84x15,201,_0xd8bc[81]))[_0xd8bc[75]](handleError(_0xff84x15,null,_0xd8bc[81]))};exports[_0xd8bc[46]]= function(_0xff84x28,_0xff84x15){if(_0xff84x28[_0xd8bc[82]][_0xd8bc[78]]){delete _0xff84x28[_0xd8bc[82]][_0xd8bc[78]]};return db[_0xd8bc[56]][_0xd8bc[80]]({where:{id:_0xff84x28[_0xd8bc[79]][_0xd8bc[78]]}})[_0xd8bc[45]](handleEntityNotFound(_0xff84x15,null,_0xd8bc[46]))[_0xd8bc[45]](saveUpdates(_0xff84x28[_0xd8bc[82]],null,_0xd8bc[46]))[_0xd8bc[45]](respondWithResult(_0xff84x15,null,_0xd8bc[46]))[_0xd8bc[75]](handleError(_0xff84x15,null,_0xd8bc[46]))};exports[_0xd8bc[48]]= function(_0xff84x28,_0xff84x15){return db[_0xd8bc[56]][_0xd8bc[80]]({where:{id:_0xff84x28[_0xd8bc[79]][_0xd8bc[78]]}})[_0xd8bc[45]](handleEntityNotFound(_0xff84x15,null,_0xd8bc[48]))[_0xd8bc[45]](removeEntity(_0xff84x15,null,_0xd8bc[48]))[_0xd8bc[75]](handleError(_0xff84x15,null,_0xd8bc[48]))}
\ No newline at end of file
index d3db4e6..6d0c281 100644 (file)
@@ -1 +1 @@
-var _0x5bf0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x5bf0[0];var _=require(_0x5bf0[1]);var util=require(_0x5bf0[2]);var logger=require(_0x5bf0[4])(_0x5bf0[3]);var attributes=require(_0x5bf0[5]);module[_0x5bf0[6]]= function(_0x58a0x5,_0x58a0x6){return _0x58a0x5[_0x5bf0[9]](_0x5bf0[7],attributes,{tableName:_0x5bf0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x3ea5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x3ea5[0];var _=require(_0x3ea5[1]);var util=require(_0x3ea5[2]);var logger=require(_0x3ea5[4])(_0x3ea5[3]);var attributes=require(_0x3ea5[5]);module[_0x3ea5[6]]= function(_0xc285x5,_0xc285x6){return _0xc285x5[_0x3ea5[9]](_0x3ea5[7],attributes,{tableName:_0x3ea5[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 6768b4c..4ae5136 100644 (file)
@@ -1 +1 @@
-var _0x876e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x876e[0];var _=require(_0x876e[1]);var util=require(_0x876e[2]);var moment=require(_0x876e[3]);var BPromise=require(_0x876e[4]);var db=require(_0x876e[6])[_0x876e[5]];var utils=require(_0x876e[7]);var logger=require(_0x876e[9])(_0x876e[8]);var jayson=require(_0x876e[10]);var client=jayson[_0x876e[12]][_0x876e[11]]({port:9002});function respondWithRpcPromise(_0x7764xb,_0x7764xc,_0x7764xd){return  new BPromise(function(_0x7764xe,_0x7764xf){return client[_0x876e[25]](_0x7764xb,_0x7764xd)[_0x876e[24]](function(_0x7764x11){logger[_0x876e[17]](_0x876e[13],_0x7764xc,_0x876e[16]);logger[_0x876e[20]](_0x876e[18],_0x7764xc,_0x876e[16],JSON[_0x876e[19]](_0x7764x11));if(_0x7764x11[_0x876e[14]]){if(_0x7764x11[_0x876e[14]][_0x876e[21]]=== 500){logger[_0x876e[14]](_0x876e[13],_0x7764xc,_0x7764x11[_0x876e[14]][_0x876e[22]]);return _0x7764xf(_0x7764x11[_0x876e[14]][_0x876e[22]])};logger[_0x876e[14]](_0x876e[13],_0x7764xc,_0x7764x11[_0x876e[14]][_0x876e[22]]);return _0x7764xe(_0x7764x11[_0x876e[14]][_0x876e[22]])}else {logger[_0x876e[17]](_0x876e[13],_0x7764xc,_0x876e[16]);_0x7764xe(_0x7764x11[_0x876e[23]][_0x876e[22]])}})[_0x876e[15]](function(_0x7764x10){logger[_0x876e[14]](_0x876e[13],_0x7764xc,_0x7764x10);_0x7764xf(_0x7764x10)})})}
\ No newline at end of file
+var _0xe9b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe9b8[0];var _=require(_0xe9b8[1]);var util=require(_0xe9b8[2]);var moment=require(_0xe9b8[3]);var BPromise=require(_0xe9b8[4]);var db=require(_0xe9b8[6])[_0xe9b8[5]];var utils=require(_0xe9b8[7]);var logger=require(_0xe9b8[9])(_0xe9b8[8]);var jayson=require(_0xe9b8[10]);var client=jayson[_0xe9b8[12]][_0xe9b8[11]]({port:9002});function respondWithRpcPromise(_0xe5c4xb,_0xe5c4xc,_0xe5c4xd){return  new BPromise(function(_0xe5c4xe,_0xe5c4xf){return client[_0xe9b8[25]](_0xe5c4xb,_0xe5c4xd)[_0xe9b8[24]](function(_0xe5c4x11){logger[_0xe9b8[17]](_0xe9b8[13],_0xe5c4xc,_0xe9b8[16]);logger[_0xe9b8[20]](_0xe9b8[18],_0xe5c4xc,_0xe9b8[16],JSON[_0xe9b8[19]](_0xe5c4x11));if(_0xe5c4x11[_0xe9b8[14]]){if(_0xe5c4x11[_0xe9b8[14]][_0xe9b8[21]]=== 500){logger[_0xe9b8[14]](_0xe9b8[13],_0xe5c4xc,_0xe5c4x11[_0xe9b8[14]][_0xe9b8[22]]);return _0xe5c4xf(_0xe5c4x11[_0xe9b8[14]][_0xe9b8[22]])};logger[_0xe9b8[14]](_0xe9b8[13],_0xe5c4xc,_0xe5c4x11[_0xe9b8[14]][_0xe9b8[22]]);return _0xe5c4xe(_0xe5c4x11[_0xe9b8[14]][_0xe9b8[22]])}else {logger[_0xe9b8[17]](_0xe9b8[13],_0xe5c4xc,_0xe9b8[16]);_0xe5c4xe(_0xe5c4x11[_0xe9b8[23]][_0xe9b8[22]])}})[_0xe9b8[15]](function(_0xe5c4x10){logger[_0xe9b8[14]](_0xe9b8[13],_0xe5c4xc,_0xe5c4x10);_0xe5c4xf(_0xe5c4x10)})})}
\ No newline at end of file
index 78a74f5..4a88c1b 100644 (file)
@@ -1 +1 @@
-var _0x8e07=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8e07[0];var multer=require(_0x8e07[1]);var util=require(_0x8e07[2]);var path=require(_0x8e07[3]);var express=require(_0x8e07[4]);var router=express.Router();var auth=require(_0x8e07[5]);var config=require(_0x8e07[6]);var controller=require(_0x8e07[7]);router[_0x8e07[11]](_0x8e07[8],auth[_0x8e07[9]](),controller[_0x8e07[10]]);router[_0x8e07[11]](_0x8e07[12],auth[_0x8e07[9]](),controller[_0x8e07[13]]);router[_0x8e07[11]](_0x8e07[14],auth[_0x8e07[9]](),controller[_0x8e07[15]]);router[_0x8e07[11]](_0x8e07[16],auth[_0x8e07[9]](),controller[_0x8e07[17]]);router[_0x8e07[19]](_0x8e07[8],auth[_0x8e07[9]](),controller[_0x8e07[18]]);router[_0x8e07[19]](_0x8e07[14],auth[_0x8e07[9]](),controller[_0x8e07[20]]);router[_0x8e07[22]](_0x8e07[12],auth[_0x8e07[9]](),controller[_0x8e07[21]]);router[_0x8e07[24]](_0x8e07[12],auth[_0x8e07[9]](),controller[_0x8e07[23]]);module[_0x8e07[25]]= router
\ No newline at end of file
+var _0x556c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x556c[0];var multer=require(_0x556c[1]);var util=require(_0x556c[2]);var path=require(_0x556c[3]);var express=require(_0x556c[4]);var router=express.Router();var auth=require(_0x556c[5]);var config=require(_0x556c[6]);var controller=require(_0x556c[7]);router[_0x556c[11]](_0x556c[8],auth[_0x556c[9]](),controller[_0x556c[10]]);router[_0x556c[11]](_0x556c[12],auth[_0x556c[9]](),controller[_0x556c[13]]);router[_0x556c[11]](_0x556c[14],auth[_0x556c[9]](),controller[_0x556c[15]]);router[_0x556c[11]](_0x556c[16],auth[_0x556c[9]](),controller[_0x556c[17]]);router[_0x556c[19]](_0x556c[8],auth[_0x556c[9]](),controller[_0x556c[18]]);router[_0x556c[19]](_0x556c[14],auth[_0x556c[9]](),controller[_0x556c[20]]);router[_0x556c[22]](_0x556c[12],auth[_0x556c[9]](),controller[_0x556c[21]]);router[_0x556c[24]](_0x556c[12],auth[_0x556c[9]](),controller[_0x556c[23]]);module[_0x556c[25]]= router
\ No newline at end of file
index 612dd81..61f0797 100644 (file)
@@ -1 +1 @@
-var _0xe435=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69"];_0xe435[0];var Sequelize=require(_0xe435[1]);module[_0xe435[2]]= {name:{type:Sequelize[_0xe435[3]]},description:{type:Sequelize[_0xe435[3]]},username:{type:Sequelize[_0xe435[3]],unique:_0xe435[4]},password:{type:Sequelize[_0xe435[3]]},remoteUri:{type:Sequelize[_0xe435[3]],unique:_0xe435[5]},serverUrl:{type:Sequelize[_0xe435[3]]}}
\ No newline at end of file
+var _0x37ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69"];_0x37ed[0];var Sequelize=require(_0x37ed[1]);module[_0x37ed[2]]= {name:{type:Sequelize[_0x37ed[3]]},description:{type:Sequelize[_0x37ed[3]]},username:{type:Sequelize[_0x37ed[3]],unique:_0x37ed[4]},password:{type:Sequelize[_0x37ed[3]]},remoteUri:{type:Sequelize[_0x37ed[3]],unique:_0x37ed[5]},serverUrl:{type:Sequelize[_0x37ed[3]]}}
\ No newline at end of file
index 7e2cb0b..183aa7d 100644 (file)
@@ -1 +1 @@
-var _0xd315=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x6C\x75\x65\x73","\x6C\x61\x62\x65\x6C","\x63\x68\x6F\x69\x63\x65\x73","\x76\x61\x6C\x75\x65","\x50\x4F\x53\x54","\x25\x73\x25\x73","\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x5F\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x4A\x53\x4F\x4E","\x43\x61\x6C\x6C\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x6C\x6F\x67\x69\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x50\x4C\x41\x49\x4E","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E"];_0xd315[0];var jsonpatch=require(_0xd315[1]);var rp=require(_0xd315[2]);var moment=require(_0xd315[3]);var BPromise=require(_0xd315[4]);var util=require(_0xd315[5]);var path=require(_0xd315[6]);var sox=require(_0xd315[7]);var ejs=require(_0xd315[8]);var fs=require(_0xd315[9]);var _=require(_0xd315[10]);var squel=require(_0xd315[11]);var crypto=require(_0xd315[12]);var jsforce=require(_0xd315[13]);var toCsv=require(_0xd315[14]);var qs=require(_0xd315[15]);var logger=require(_0xd315[17])(_0xd315[16]);var utils=require(_0xd315[18]);var config=require(_0xd315[19]);var db=require(_0xd315[21])[_0xd315[20]];var integrations=require(_0xd315[22]);var jayson=require(_0xd315[23]);var client=jayson[_0xd315[25]][_0xd315[24]]({port:9002});function respondWithRpcPromise(_0x68fex18,_0x68fex19,_0x68fex1a){return  new BPromise(function(_0x68fex1b,_0x68fex1c){return client[_0xd315[38]](_0x68fex18,_0x68fex1a)[_0xd315[37]](function(_0x68fex1e){logger[_0xd315[30]](_0xd315[26],_0x68fex19,_0xd315[29]);logger[_0xd315[33]](_0xd315[31],_0x68fex19,_0xd315[29],JSON[_0xd315[32]](_0x68fex1e));if(_0x68fex1e[_0xd315[27]]){if(_0x68fex1e[_0xd315[27]][_0xd315[34]]=== 500){logger[_0xd315[27]](_0xd315[26],_0x68fex19,_0x68fex1e[_0xd315[27]][_0xd315[35]]);return _0x68fex1c(_0x68fex1e[_0xd315[27]][_0xd315[35]])};logger[_0xd315[27]](_0xd315[26],_0x68fex19,_0x68fex1e[_0xd315[27]][_0xd315[35]]);return _0x68fex1b(_0x68fex1e[_0xd315[27]][_0xd315[35]])}else {logger[_0xd315[30]](_0xd315[26],_0x68fex19,_0xd315[29]);_0x68fex1b(_0x68fex1e[_0xd315[36]][_0xd315[35]])}})[_0xd315[28]](function(_0x68fex1d){logger[_0xd315[27]](_0xd315[26],_0x68fex19,_0x68fex1d);_0x68fex1c(_0x68fex1d)})})}function respondWithStatusCode(_0x68fex1e,_0x68fex20,_0x68fex19){_0x68fex20= _0x68fex20|| 204;return function(_0x68fex21){if(_0x68fex21){logger[_0xd315[30]](_0xd315[31],_0x68fex19,_0x68fex20,_0xd315[39]);logger[_0xd315[33]](_0xd315[40],_0x68fex19,_0x68fex20,_0xd315[39]);return _0x68fex1e[_0xd315[41]](_0x68fex20)};return _0x68fex1e[_0xd315[43]](304)[_0xd315[42]]()}}function respondWithResult(_0x68fex1e,_0x68fex20,_0x68fex19){_0x68fex20= _0x68fex20|| 200;return function(_0x68fex21){if(_0x68fex21){logger[_0xd315[30]](_0xd315[31],_0x68fex19,_0x68fex20,_0xd315[44]);logger[_0xd315[33]](_0xd315[40],_0x68fex19,_0x68fex20,_0xd315[44],JSON[_0xd315[32]](_0x68fex21));return _0x68fex1e[_0xd315[43]](_0x68fex20)[_0xd315[45]](_0x68fex21)};return _0x68fex1e[_0xd315[43]](304)[_0xd315[42]]()}}function respondWithFilteredResult(_0x68fex1e,_0x68fex24,_0x68fex19){return function(_0x68fex21){if(_0x68fex21){var _0x68fex25=_0x68fex21[_0xd315[46]],_0x68fex26=_0x68fex24[_0xd315[47]],_0x68fex27=_0x68fex24[_0xd315[47]]+ _0x68fex24[_0xd315[48]],_0x68fex20;if(_0x68fex27>= _0x68fex25){_0x68fex27= _0x68fex25;_0x68fex20= 200}else {_0x68fex20= 206};_0x68fex1e[_0xd315[43]](_0x68fex20);logger[_0xd315[30]](_0xd315[31],_0x68fex19,_0x68fex20,_0xd315[49]);logger[_0xd315[33]](_0xd315[40],_0x68fex19,_0x68fex20,_0xd315[44],JSON[_0xd315[32]](_0x68fex21));return _0x68fex1e[_0xd315[53]](_0xd315[50],_0x68fex26+ _0xd315[51]+ _0x68fex27+ _0xd315[52]+ _0x68fex25)[_0xd315[45]](_0x68fex21)};return null}}function patchUpdates(_0x68fex29){return function(_0x68fex21){try{jsonpatch[_0xd315[54]](_0x68fex21,_0x68fex29,true)}catch(err){return BPromise[_0xd315[55]](err)};return _0x68fex21[_0xd315[56]]()}}function saveUpdates(_0x68fex2b,_0x68fex20,_0x68fex19){return function(_0x68fex21){if(_0x68fex21){return _0x68fex21[_0xd315[58]](_0x68fex2b)[_0xd315[37]](function(_0x68fex2c){logger[_0xd315[30]](_0xd315[31],_0x68fex19,_0x68fex20,_0xd315[57]);logger[_0xd315[33]](_0xd315[40],_0x68fex19,_0x68fex20,_0xd315[57],JSON[_0xd315[32]](_0x68fex21));return _0x68fex2c})};return null}}function removeEntity(_0x68fex1e,_0x68fex20,_0x68fex19){return function(_0x68fex21){if(_0x68fex21){return _0x68fex21[_0xd315[60]]()[_0xd315[37]](function(){logger[_0xd315[30]](_0xd315[31],_0x68fex19,_0x68fex20,_0xd315[59]);logger[_0xd315[33]](_0xd315[40],_0x68fex19,_0x68fex20,_0xd315[59],JSON[_0xd315[32]](_0x68fex21));_0x68fex1e[_0xd315[43]](204)[_0xd315[42]]()})}}}function handleEntityNotFound(_0x68fex1e,_0x68fex20,_0x68fex19){return function(_0x68fex21){if(!_0x68fex21){logger[_0xd315[27]](_0xd315[31],_0x68fex19,404,_0xd315[61]);_0x68fex1e[_0xd315[43]](404)[_0xd315[42]]();return null};return _0x68fex21}}function handleError(_0x68fex1e,_0x68fex20,_0x68fex19){_0x68fex20= _0x68fex20|| 500;return function(_0x68fex1d){logger[_0xd315[27]](_0xd315[31],_0x68fex19,_0x68fex20,JSON[_0xd315[32]](_0x68fex1d));delete _0x68fex1d[_0xd315[62]];_0x68fex1e[_0xd315[43]](_0x68fex20)[_0xd315[63]](_0x68fex1d)}}exports[_0xd315[64]]= function(_0x68fex1a,_0x68fex1e){var _0x68fex24={},_0x68fex30={};_0x68fex30[_0xd315[65]]= _[_0xd315[68]](db[_0xd315[67]][_0xd315[66]]);_0x68fex30[_0xd315[69]]= _[_0xd315[68]](_0x68fex1a[_0xd315[69]]);_0x68fex30[_0xd315[70]]= _[_0xd315[71]](_0x68fex30[_0xd315[65]],_0x68fex30[_0xd315[69]]);_0x68fex24[_0xd315[72]]= _[_0xd315[71]](_0x68fex30[_0xd315[65]],qs[_0xd315[73]](_0x68fex1a[_0xd315[69]][_0xd315[73]]));_0x68fex24[_0xd315[72]]= (_0x68fex24[_0xd315[72]][_0xd315[74]])?_0x68fex24[_0xd315[72]]:_0x68fex30[_0xd315[65]];if(!_0x68fex1a[_0xd315[69]][_0xd315[76]](_0xd315[75])){_0x68fex24[_0xd315[48]]= qs[_0xd315[48]](_0x68fex1a[_0xd315[69]][_0xd315[48]]);_0x68fex24[_0xd315[47]]= qs[_0xd315[47]](_0x68fex1a[_0xd315[69]][_0xd315[47]])};_0x68fex24[_0xd315[77]]= qs[_0xd315[78]](_0x68fex1a[_0xd315[69]][_0xd315[78]]);_0x68fex24[_0xd315[79]]= qs[_0xd315[70]](_[_0xd315[80]](_0x68fex1a[_0xd315[69]],_0x68fex30[_0xd315[70]]));if(_0x68fex1a[_0xd315[69]][_0xd315[81]]){_0x68fex24[_0xd315[79]]= _[_0xd315[84]](_0x68fex24[_0xd315[79]],{$or:_[_0xd315[83]](_0x68fex24[_0xd315[72]],function(_0x68fex31){var _0x68fex32={};_0x68fex32[_0x68fex31]= {$like:_0xd315[82]+ _0x68fex1a[_0xd315[69]][_0xd315[81]]+ _0xd315[82]};return _0x68fex32})})};_0x68fex24= _[_0xd315[84]]({},_0x68fex24,_0x68fex1a[_0xd315[85]]);return db[_0xd315[67]][_0xd315[86]](_0x68fex24)[_0xd315[37]](respondWithFilteredResult(_0x68fex1e,_0x68fex24,_0xd315[64]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[64]))};exports[_0xd315[87]]= function(_0x68fex1a,_0x68fex1e){var _0x68fex24={raw:false,where:{id:_0x68fex1a[_0xd315[89]][_0xd315[88]]}},_0x68fex30={};_0x68fex30[_0xd315[65]]= _[_0xd315[68]](db[_0xd315[67]][_0xd315[66]]);_0x68fex30[_0xd315[69]]= _[_0xd315[68]](_0x68fex1a[_0xd315[69]]);_0x68fex30[_0xd315[70]]= _[_0xd315[71]](_0x68fex30[_0xd315[65]],_0x68fex30[_0xd315[69]]);_0x68fex24[_0xd315[72]]= _[_0xd315[71]](_0x68fex30[_0xd315[65]],qs[_0xd315[73]](_0x68fex1a[_0xd315[69]][_0xd315[73]]));_0x68fex24[_0xd315[72]]= (_0x68fex24[_0xd315[72]][_0xd315[74]])?_0x68fex24[_0xd315[72]]:_0x68fex30[_0xd315[65]];_0x68fex24= _[_0xd315[84]]({},_0x68fex24,_0x68fex1a[_0xd315[85]]);return db[_0xd315[67]][_0xd315[90]](_0x68fex24)[_0xd315[37]](handleEntityNotFound(_0x68fex1e,null,_0xd315[87]))[_0xd315[37]](respondWithResult(_0x68fex1e,null,_0xd315[87]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[87]))};exports[_0xd315[91]]= function(_0x68fex1a,_0x68fex1e){return db[_0xd315[67]][_0xd315[91]](_0x68fex1a[_0xd315[92]],{})[_0xd315[37]](respondWithResult(_0x68fex1e,201,_0xd315[91]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[91]))};exports[_0xd315[58]]= function(_0x68fex1a,_0x68fex1e){if(_0x68fex1a[_0xd315[92]][_0xd315[88]]){delete _0x68fex1a[_0xd315[92]][_0xd315[88]]};return db[_0xd315[67]][_0xd315[90]]({where:{id:_0x68fex1a[_0xd315[89]][_0xd315[88]]}})[_0xd315[37]](handleEntityNotFound(_0x68fex1e,null,_0xd315[58]))[_0xd315[37]](saveUpdates(_0x68fex1a[_0xd315[92]],null,_0xd315[58]))[_0xd315[37]](respondWithResult(_0x68fex1e,null,_0xd315[58]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[58]))};exports[_0xd315[60]]= function(_0x68fex1a,_0x68fex1e){return db[_0xd315[67]][_0xd315[90]]({where:{id:_0x68fex1a[_0xd315[89]][_0xd315[88]]}})[_0xd315[37]](handleEntityNotFound(_0x68fex1e,null,_0xd315[60]))[_0xd315[37]](removeEntity(_0x68fex1e,null,_0xd315[60]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[60]))};exports[_0xd315[93]]= function(_0x68fex1a,_0x68fex21,_0x68fex33){var _0x68fex24={};var _0x68fex30={};var _0x68fex34;var _0x68fex25;return db[_0xd315[67]][_0xd315[95]]({where:{id:_0x68fex1a[_0xd315[89]][_0xd315[88]]}})[_0xd315[37]](handleEntityNotFound(_0x68fex21,null,_0xd315[93]))[_0xd315[37]](function(_0x68fex21){if(_0x68fex21){_0x68fex34= _0x68fex21;_0x68fex30[_0xd315[65]]= _[_0xd315[68]](db[_0xd315[94]][_0xd315[66]]);_0x68fex30[_0xd315[69]]= _[_0xd315[68]](_0x68fex1a[_0xd315[69]]);_0x68fex30[_0xd315[70]]= _[_0xd315[71]](_0x68fex30[_0xd315[65]],_0x68fex30[_0xd315[69]]);_0x68fex24[_0xd315[72]]= _[_0xd315[71]](_0x68fex30[_0xd315[65]],qs[_0xd315[73]](_0x68fex1a[_0xd315[69]][_0xd315[73]]));_0x68fex24[_0xd315[72]]= (_0x68fex24[_0xd315[72]][_0xd315[74]])?_0x68fex24[_0xd315[72]]:_0x68fex30[_0xd315[65]];_0x68fex24[_0xd315[77]]= qs[_0xd315[78]](_0x68fex1a[_0xd315[69]][_0xd315[78]]);_0x68fex24[_0xd315[79]]= qs[_0xd315[70]](_[_0xd315[80]](_0x68fex1a[_0xd315[69]],_0x68fex30[_0xd315[70]]));if(_0x68fex1a[_0xd315[69]][_0xd315[81]]){_0x68fex24[_0xd315[79]]= _[_0xd315[84]](_0x68fex24[_0xd315[79]],{$or:_[_0xd315[83]](_0x68fex24[_0xd315[72]],function(_0x68fex31){var _0x68fex32={};_0x68fex32[_0x68fex31]= {$like:_0xd315[82]+ _0x68fex1a[_0xd315[69]][_0xd315[81]]+ _0xd315[82]};return _0x68fex32})})};_0x68fex24= _[_0xd315[84]]({},_0x68fex24,_0x68fex1a[_0xd315[85]]);return _0x68fex34[_0xd315[93]](_0x68fex24)}})[_0xd315[37]](function(_0x68fex36){if(_0x68fex36){_0x68fex25= _0x68fex36[_0xd315[74]];if(!_0x68fex1a[_0xd315[69]][_0xd315[76]](_0xd315[75])){_0x68fex24[_0xd315[48]]= qs[_0xd315[48]](_0x68fex1a[_0xd315[69]][_0xd315[48]]);_0x68fex24[_0xd315[47]]= qs[_0xd315[47]](_0x68fex1a[_0xd315[69]][_0xd315[47]])};return _0x68fex34[_0xd315[93]](_0x68fex24)}})[_0xd315[37]](function(_0x68fex35){return _0x68fex35?{count:_0x68fex25,rows:_0x68fex35}:null})[_0xd315[37]](respondWithResult(_0x68fex21,null,_0xd315[93]))[_0xd315[28]](handleError(_0x68fex21,null,_0xd315[93]))};exports[_0xd315[96]]= function(_0x68fex1a,_0x68fex1e,_0x68fex33){if(_0x68fex1a[_0xd315[92]][_0xd315[88]]){delete _0x68fex1a[_0xd315[92]][_0xd315[88]]};return db[_0xd315[67]][_0xd315[95]]({where:{id:_0x68fex1a[_0xd315[89]][_0xd315[88]]}})[_0xd315[37]](handleEntityNotFound(_0x68fex1e,null,_0xd315[96]))[_0xd315[37]](function(_0x68fex21){if(_0x68fex21){_0x68fex1a[_0xd315[92]][_0xd315[97]]= _0x68fex21[_0xd315[88]];_0x68fex1a[_0xd315[92]][_0xd315[98]]= integrations[_0xd315[101]](_0x68fex1a[_0xd315[92]][_0xd315[99]],_0x68fex1a[_0xd315[92]][_0xd315[100]]);_0x68fex1a[_0xd315[92]][_0xd315[102]]= integrations[_0xd315[103]](_0x68fex1a[_0xd315[92]][_0xd315[99]],_0x68fex1a[_0xd315[92]][_0xd315[100]]);return db[_0xd315[94]][_0xd315[91]](_0x68fex1a[_0xd315[92]],{include:[{model:db[_0xd315[104]],as:_0xd315[98]},{model:db[_0xd315[104]],as:_0xd315[102]}]})};return null})[_0xd315[37]](respondWithResult(_0x68fex1e,null,_0xd315[96]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[96]))};exports[_0xd315[105]]= function(_0x68fex1a,_0x68fex1e,_0x68fex33){var _0x68fex37;return db[_0xd315[67]][_0xd315[95]]({where:{id:_0x68fex1a[_0xd315[89]][_0xd315[88]]},attributes:[_0xd315[88],_0xd315[120],_0xd315[121],_0xd315[118]]})[_0xd315[37]](handleEntityNotFound(_0x68fex1e,null,_0xd315[105]))[_0xd315[37]](function(_0x68fex21){if(_0x68fex21){_0x68fex37= _0x68fex21[_0xd315[118]];return rp({method:_0xd315[111],uri:util[_0xd315[114]](_0xd315[112],_0x68fex37,_0xd315[113]),json:true,form:{method:_0xd315[119],input_type:_0xd315[116],response_type:_0xd315[116],rest_data:JSON[_0xd315[32]]({user_auth:{user_name:_0x68fex21[_0xd315[120]],password:_0x68fex21[_0xd315[121]],encryption:_0xd315[122]},application:_0xd315[123]})}})}})[_0xd315[37]](function(_0x68fex21){if(_0x68fex21){return rp({method:_0xd315[111],uri:util[_0xd315[114]](_0xd315[112],_0x68fex37,_0xd315[113]),json:true,form:{method:_0xd315[115],input_type:_0xd315[116],response_type:_0xd315[116],rest_data:JSON[_0xd315[32]]({session:_0x68fex21[_0xd315[88]],module_name:_0xd315[117]})}})}})[_0xd315[37]](function(_0x68fex21){if(_0x68fex21){var _0x68fex38=_[_0xd315[107]](_0x68fex21[_0xd315[106]]);return {count:_0x68fex38[_0xd315[74]],rows:_[_0xd315[83]](_0x68fex38,function(_0x68fex39){return {id:_0x68fex39[_0xd315[62]],name:_0x68fex39[_0xd315[108]],custom:_0x68fex39[_0xd315[109]]?true:false,options:_0x68fex39[_0xd315[85]]?_[_0xd315[83]](_[_0xd315[107]](_0x68fex39[_0xd315[85]]),function(_0x68fex39){return {name:_0x68fex39[_0xd315[110]],value:_0x68fex39[_0xd315[62]]}}):[]}})}}})[_0xd315[37]](respondWithResult(_0x68fex1e,null,_0xd315[105]))[_0xd315[28]](handleError(_0x68fex1e,null,_0xd315[105]))}
\ No newline at end of file
+var _0xf933=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x6C\x75\x65\x73","\x6C\x61\x62\x65\x6C","\x5F\x63","\x65\x6E\x64\x73\x57\x69\x74\x68","\x76\x61\x6C\x75\x65","\x50\x4F\x53\x54","\x25\x73\x25\x73","\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x5F\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x4A\x53\x4F\x4E","\x43\x61\x6C\x6C\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x6C\x6F\x67\x69\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x50\x4C\x41\x49\x4E","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E"];_0xf933[0];var jsonpatch=require(_0xf933[1]);var rp=require(_0xf933[2]);var moment=require(_0xf933[3]);var BPromise=require(_0xf933[4]);var util=require(_0xf933[5]);var path=require(_0xf933[6]);var sox=require(_0xf933[7]);var ejs=require(_0xf933[8]);var fs=require(_0xf933[9]);var _=require(_0xf933[10]);var squel=require(_0xf933[11]);var crypto=require(_0xf933[12]);var jsforce=require(_0xf933[13]);var toCsv=require(_0xf933[14]);var qs=require(_0xf933[15]);var logger=require(_0xf933[17])(_0xf933[16]);var utils=require(_0xf933[18]);var config=require(_0xf933[19]);var db=require(_0xf933[21])[_0xf933[20]];var integrations=require(_0xf933[22]);var jayson=require(_0xf933[23]);var client=jayson[_0xf933[25]][_0xf933[24]]({port:9002});function respondWithRpcPromise(_0xd7fbx18,_0xd7fbx19,_0xd7fbx1a){return  new BPromise(function(_0xd7fbx1b,_0xd7fbx1c){return client[_0xf933[38]](_0xd7fbx18,_0xd7fbx1a)[_0xf933[37]](function(_0xd7fbx1e){logger[_0xf933[30]](_0xf933[26],_0xd7fbx19,_0xf933[29]);logger[_0xf933[33]](_0xf933[31],_0xd7fbx19,_0xf933[29],JSON[_0xf933[32]](_0xd7fbx1e));if(_0xd7fbx1e[_0xf933[27]]){if(_0xd7fbx1e[_0xf933[27]][_0xf933[34]]=== 500){logger[_0xf933[27]](_0xf933[26],_0xd7fbx19,_0xd7fbx1e[_0xf933[27]][_0xf933[35]]);return _0xd7fbx1c(_0xd7fbx1e[_0xf933[27]][_0xf933[35]])};logger[_0xf933[27]](_0xf933[26],_0xd7fbx19,_0xd7fbx1e[_0xf933[27]][_0xf933[35]]);return _0xd7fbx1b(_0xd7fbx1e[_0xf933[27]][_0xf933[35]])}else {logger[_0xf933[30]](_0xf933[26],_0xd7fbx19,_0xf933[29]);_0xd7fbx1b(_0xd7fbx1e[_0xf933[36]][_0xf933[35]])}})[_0xf933[28]](function(_0xd7fbx1d){logger[_0xf933[27]](_0xf933[26],_0xd7fbx19,_0xd7fbx1d);_0xd7fbx1c(_0xd7fbx1d)})})}function respondWithStatusCode(_0xd7fbx1e,_0xd7fbx20,_0xd7fbx19){_0xd7fbx20= _0xd7fbx20|| 204;return function(_0xd7fbx21){if(_0xd7fbx21){logger[_0xf933[30]](_0xf933[31],_0xd7fbx19,_0xd7fbx20,_0xf933[39]);logger[_0xf933[33]](_0xf933[40],_0xd7fbx19,_0xd7fbx20,_0xf933[39]);return _0xd7fbx1e[_0xf933[41]](_0xd7fbx20)};return _0xd7fbx1e[_0xf933[43]](304)[_0xf933[42]]()}}function respondWithResult(_0xd7fbx1e,_0xd7fbx20,_0xd7fbx19){_0xd7fbx20= _0xd7fbx20|| 200;return function(_0xd7fbx21){if(_0xd7fbx21){logger[_0xf933[30]](_0xf933[31],_0xd7fbx19,_0xd7fbx20,_0xf933[44]);logger[_0xf933[33]](_0xf933[40],_0xd7fbx19,_0xd7fbx20,_0xf933[44],JSON[_0xf933[32]](_0xd7fbx21));return _0xd7fbx1e[_0xf933[43]](_0xd7fbx20)[_0xf933[45]](_0xd7fbx21)};return _0xd7fbx1e[_0xf933[43]](304)[_0xf933[42]]()}}function respondWithFilteredResult(_0xd7fbx1e,_0xd7fbx24,_0xd7fbx19){return function(_0xd7fbx21){if(_0xd7fbx21){var _0xd7fbx25=_0xd7fbx21[_0xf933[46]],_0xd7fbx26=_0xd7fbx24[_0xf933[47]],_0xd7fbx27=_0xd7fbx24[_0xf933[47]]+ _0xd7fbx24[_0xf933[48]],_0xd7fbx20;if(_0xd7fbx27>= _0xd7fbx25){_0xd7fbx27= _0xd7fbx25;_0xd7fbx20= 200}else {_0xd7fbx20= 206};_0xd7fbx1e[_0xf933[43]](_0xd7fbx20);logger[_0xf933[30]](_0xf933[31],_0xd7fbx19,_0xd7fbx20,_0xf933[49]);logger[_0xf933[33]](_0xf933[40],_0xd7fbx19,_0xd7fbx20,_0xf933[44],JSON[_0xf933[32]](_0xd7fbx21));return _0xd7fbx1e[_0xf933[53]](_0xf933[50],_0xd7fbx26+ _0xf933[51]+ _0xd7fbx27+ _0xf933[52]+ _0xd7fbx25)[_0xf933[45]](_0xd7fbx21)};return null}}function patchUpdates(_0xd7fbx29){return function(_0xd7fbx21){try{jsonpatch[_0xf933[54]](_0xd7fbx21,_0xd7fbx29,true)}catch(err){return BPromise[_0xf933[55]](err)};return _0xd7fbx21[_0xf933[56]]()}}function saveUpdates(_0xd7fbx2b,_0xd7fbx20,_0xd7fbx19){return function(_0xd7fbx21){if(_0xd7fbx21){return _0xd7fbx21[_0xf933[58]](_0xd7fbx2b)[_0xf933[37]](function(_0xd7fbx2c){logger[_0xf933[30]](_0xf933[31],_0xd7fbx19,_0xd7fbx20,_0xf933[57]);logger[_0xf933[33]](_0xf933[40],_0xd7fbx19,_0xd7fbx20,_0xf933[57],JSON[_0xf933[32]](_0xd7fbx21));return _0xd7fbx2c})};return null}}function removeEntity(_0xd7fbx1e,_0xd7fbx20,_0xd7fbx19){return function(_0xd7fbx21){if(_0xd7fbx21){return _0xd7fbx21[_0xf933[60]]()[_0xf933[37]](function(){logger[_0xf933[30]](_0xf933[31],_0xd7fbx19,_0xd7fbx20,_0xf933[59]);logger[_0xf933[33]](_0xf933[40],_0xd7fbx19,_0xd7fbx20,_0xf933[59],JSON[_0xf933[32]](_0xd7fbx21));_0xd7fbx1e[_0xf933[43]](204)[_0xf933[42]]()})}}}function handleEntityNotFound(_0xd7fbx1e,_0xd7fbx20,_0xd7fbx19){return function(_0xd7fbx21){if(!_0xd7fbx21){logger[_0xf933[27]](_0xf933[31],_0xd7fbx19,404,_0xf933[61]);_0xd7fbx1e[_0xf933[43]](404)[_0xf933[42]]();return null};return _0xd7fbx21}}function handleError(_0xd7fbx1e,_0xd7fbx20,_0xd7fbx19){_0xd7fbx20= _0xd7fbx20|| 500;return function(_0xd7fbx1d){logger[_0xf933[27]](_0xf933[31],_0xd7fbx19,_0xd7fbx20,JSON[_0xf933[32]](_0xd7fbx1d));delete _0xd7fbx1d[_0xf933[62]];_0xd7fbx1e[_0xf933[43]](_0xd7fbx20)[_0xf933[63]](_0xd7fbx1d)}}exports[_0xf933[64]]= function(_0xd7fbx1a,_0xd7fbx1e){var _0xd7fbx24={},_0xd7fbx30={};_0xd7fbx30[_0xf933[65]]= _[_0xf933[68]](db[_0xf933[67]][_0xf933[66]]);_0xd7fbx30[_0xf933[69]]= _[_0xf933[68]](_0xd7fbx1a[_0xf933[69]]);_0xd7fbx30[_0xf933[70]]= _[_0xf933[71]](_0xd7fbx30[_0xf933[65]],_0xd7fbx30[_0xf933[69]]);_0xd7fbx24[_0xf933[72]]= _[_0xf933[71]](_0xd7fbx30[_0xf933[65]],qs[_0xf933[73]](_0xd7fbx1a[_0xf933[69]][_0xf933[73]]));_0xd7fbx24[_0xf933[72]]= (_0xd7fbx24[_0xf933[72]][_0xf933[74]])?_0xd7fbx24[_0xf933[72]]:_0xd7fbx30[_0xf933[65]];if(!_0xd7fbx1a[_0xf933[69]][_0xf933[76]](_0xf933[75])){_0xd7fbx24[_0xf933[48]]= qs[_0xf933[48]](_0xd7fbx1a[_0xf933[69]][_0xf933[48]]);_0xd7fbx24[_0xf933[47]]= qs[_0xf933[47]](_0xd7fbx1a[_0xf933[69]][_0xf933[47]])};_0xd7fbx24[_0xf933[77]]= qs[_0xf933[78]](_0xd7fbx1a[_0xf933[69]][_0xf933[78]]);_0xd7fbx24[_0xf933[79]]= qs[_0xf933[70]](_[_0xf933[80]](_0xd7fbx1a[_0xf933[69]],_0xd7fbx30[_0xf933[70]]));if(_0xd7fbx1a[_0xf933[69]][_0xf933[81]]){_0xd7fbx24[_0xf933[79]]= _[_0xf933[84]](_0xd7fbx24[_0xf933[79]],{$or:_[_0xf933[83]](_0xd7fbx24[_0xf933[72]],function(_0xd7fbx31){var _0xd7fbx32={};_0xd7fbx32[_0xd7fbx31]= {$like:_0xf933[82]+ _0xd7fbx1a[_0xf933[69]][_0xf933[81]]+ _0xf933[82]};return _0xd7fbx32})})};_0xd7fbx24= _[_0xf933[84]]({},_0xd7fbx24,_0xd7fbx1a[_0xf933[85]]);return db[_0xf933[67]][_0xf933[86]](_0xd7fbx24)[_0xf933[37]](respondWithFilteredResult(_0xd7fbx1e,_0xd7fbx24,_0xf933[64]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[64]))};exports[_0xf933[87]]= function(_0xd7fbx1a,_0xd7fbx1e){var _0xd7fbx24={raw:false,where:{id:_0xd7fbx1a[_0xf933[89]][_0xf933[88]]}},_0xd7fbx30={};_0xd7fbx30[_0xf933[65]]= _[_0xf933[68]](db[_0xf933[67]][_0xf933[66]]);_0xd7fbx30[_0xf933[69]]= _[_0xf933[68]](_0xd7fbx1a[_0xf933[69]]);_0xd7fbx30[_0xf933[70]]= _[_0xf933[71]](_0xd7fbx30[_0xf933[65]],_0xd7fbx30[_0xf933[69]]);_0xd7fbx24[_0xf933[72]]= _[_0xf933[71]](_0xd7fbx30[_0xf933[65]],qs[_0xf933[73]](_0xd7fbx1a[_0xf933[69]][_0xf933[73]]));_0xd7fbx24[_0xf933[72]]= (_0xd7fbx24[_0xf933[72]][_0xf933[74]])?_0xd7fbx24[_0xf933[72]]:_0xd7fbx30[_0xf933[65]];_0xd7fbx24= _[_0xf933[84]]({},_0xd7fbx24,_0xd7fbx1a[_0xf933[85]]);return db[_0xf933[67]][_0xf933[90]](_0xd7fbx24)[_0xf933[37]](handleEntityNotFound(_0xd7fbx1e,null,_0xf933[87]))[_0xf933[37]](respondWithResult(_0xd7fbx1e,null,_0xf933[87]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[87]))};exports[_0xf933[91]]= function(_0xd7fbx1a,_0xd7fbx1e){return db[_0xf933[67]][_0xf933[91]](_0xd7fbx1a[_0xf933[92]],{})[_0xf933[37]](respondWithResult(_0xd7fbx1e,201,_0xf933[91]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[91]))};exports[_0xf933[58]]= function(_0xd7fbx1a,_0xd7fbx1e){if(_0xd7fbx1a[_0xf933[92]][_0xf933[88]]){delete _0xd7fbx1a[_0xf933[92]][_0xf933[88]]};return db[_0xf933[67]][_0xf933[90]]({where:{id:_0xd7fbx1a[_0xf933[89]][_0xf933[88]]}})[_0xf933[37]](handleEntityNotFound(_0xd7fbx1e,null,_0xf933[58]))[_0xf933[37]](saveUpdates(_0xd7fbx1a[_0xf933[92]],null,_0xf933[58]))[_0xf933[37]](respondWithResult(_0xd7fbx1e,null,_0xf933[58]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[58]))};exports[_0xf933[60]]= function(_0xd7fbx1a,_0xd7fbx1e){return db[_0xf933[67]][_0xf933[90]]({where:{id:_0xd7fbx1a[_0xf933[89]][_0xf933[88]]}})[_0xf933[37]](handleEntityNotFound(_0xd7fbx1e,null,_0xf933[60]))[_0xf933[37]](removeEntity(_0xd7fbx1e,null,_0xf933[60]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[60]))};exports[_0xf933[93]]= function(_0xd7fbx1a,_0xd7fbx21,_0xd7fbx33){var _0xd7fbx24={};var _0xd7fbx30={};var _0xd7fbx34;var _0xd7fbx25;return db[_0xf933[67]][_0xf933[95]]({where:{id:_0xd7fbx1a[_0xf933[89]][_0xf933[88]]}})[_0xf933[37]](handleEntityNotFound(_0xd7fbx21,null,_0xf933[93]))[_0xf933[37]](function(_0xd7fbx21){if(_0xd7fbx21){_0xd7fbx34= _0xd7fbx21;_0xd7fbx30[_0xf933[65]]= _[_0xf933[68]](db[_0xf933[94]][_0xf933[66]]);_0xd7fbx30[_0xf933[69]]= _[_0xf933[68]](_0xd7fbx1a[_0xf933[69]]);_0xd7fbx30[_0xf933[70]]= _[_0xf933[71]](_0xd7fbx30[_0xf933[65]],_0xd7fbx30[_0xf933[69]]);_0xd7fbx24[_0xf933[72]]= _[_0xf933[71]](_0xd7fbx30[_0xf933[65]],qs[_0xf933[73]](_0xd7fbx1a[_0xf933[69]][_0xf933[73]]));_0xd7fbx24[_0xf933[72]]= (_0xd7fbx24[_0xf933[72]][_0xf933[74]])?_0xd7fbx24[_0xf933[72]]:_0xd7fbx30[_0xf933[65]];_0xd7fbx24[_0xf933[77]]= qs[_0xf933[78]](_0xd7fbx1a[_0xf933[69]][_0xf933[78]]);_0xd7fbx24[_0xf933[79]]= qs[_0xf933[70]](_[_0xf933[80]](_0xd7fbx1a[_0xf933[69]],_0xd7fbx30[_0xf933[70]]));if(_0xd7fbx1a[_0xf933[69]][_0xf933[81]]){_0xd7fbx24[_0xf933[79]]= _[_0xf933[84]](_0xd7fbx24[_0xf933[79]],{$or:_[_0xf933[83]](_0xd7fbx24[_0xf933[72]],function(_0xd7fbx31){var _0xd7fbx32={};_0xd7fbx32[_0xd7fbx31]= {$like:_0xf933[82]+ _0xd7fbx1a[_0xf933[69]][_0xf933[81]]+ _0xf933[82]};return _0xd7fbx32})})};_0xd7fbx24= _[_0xf933[84]]({},_0xd7fbx24,_0xd7fbx1a[_0xf933[85]]);return _0xd7fbx34[_0xf933[93]](_0xd7fbx24)}})[_0xf933[37]](function(_0xd7fbx36){if(_0xd7fbx36){_0xd7fbx25= _0xd7fbx36[_0xf933[74]];if(!_0xd7fbx1a[_0xf933[69]][_0xf933[76]](_0xf933[75])){_0xd7fbx24[_0xf933[48]]= qs[_0xf933[48]](_0xd7fbx1a[_0xf933[69]][_0xf933[48]]);_0xd7fbx24[_0xf933[47]]= qs[_0xf933[47]](_0xd7fbx1a[_0xf933[69]][_0xf933[47]])};return _0xd7fbx34[_0xf933[93]](_0xd7fbx24)}})[_0xf933[37]](function(_0xd7fbx35){return _0xd7fbx35?{count:_0xd7fbx25,rows:_0xd7fbx35}:null})[_0xf933[37]](respondWithResult(_0xd7fbx21,null,_0xf933[93]))[_0xf933[28]](handleError(_0xd7fbx21,null,_0xf933[93]))};exports[_0xf933[96]]= function(_0xd7fbx1a,_0xd7fbx1e,_0xd7fbx33){if(_0xd7fbx1a[_0xf933[92]][_0xf933[88]]){delete _0xd7fbx1a[_0xf933[92]][_0xf933[88]]};return db[_0xf933[67]][_0xf933[95]]({where:{id:_0xd7fbx1a[_0xf933[89]][_0xf933[88]]}})[_0xf933[37]](handleEntityNotFound(_0xd7fbx1e,null,_0xf933[96]))[_0xf933[37]](function(_0xd7fbx21){if(_0xd7fbx21){_0xd7fbx1a[_0xf933[92]][_0xf933[97]]= _0xd7fbx21[_0xf933[88]];_0xd7fbx1a[_0xf933[92]][_0xf933[98]]= integrations[_0xf933[101]](_0xd7fbx1a[_0xf933[92]][_0xf933[99]],_0xd7fbx1a[_0xf933[92]][_0xf933[100]]);_0xd7fbx1a[_0xf933[92]][_0xf933[102]]= integrations[_0xf933[103]](_0xd7fbx1a[_0xf933[92]][_0xf933[99]],_0xd7fbx1a[_0xf933[92]][_0xf933[100]]);return db[_0xf933[94]][_0xf933[91]](_0xd7fbx1a[_0xf933[92]],{include:[{model:db[_0xf933[104]],as:_0xf933[98]},{model:db[_0xf933[104]],as:_0xf933[102]}]})};return null})[_0xf933[37]](respondWithResult(_0xd7fbx1e,null,_0xf933[96]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[96]))};exports[_0xf933[105]]= function(_0xd7fbx1a,_0xd7fbx1e,_0xd7fbx33){var _0xd7fbx37;return db[_0xf933[67]][_0xf933[95]]({where:{id:_0xd7fbx1a[_0xf933[89]][_0xf933[88]]},attributes:[_0xf933[88],_0xf933[121],_0xf933[122],_0xf933[119]]})[_0xf933[37]](handleEntityNotFound(_0xd7fbx1e,null,_0xf933[105]))[_0xf933[37]](function(_0xd7fbx21){if(_0xd7fbx21){_0xd7fbx37= _0xd7fbx21[_0xf933[119]];return rp({method:_0xf933[112],uri:util[_0xf933[115]](_0xf933[113],_0xd7fbx37,_0xf933[114]),json:true,form:{method:_0xf933[120],input_type:_0xf933[117],response_type:_0xf933[117],rest_data:JSON[_0xf933[32]]({user_auth:{user_name:_0xd7fbx21[_0xf933[121]],password:_0xd7fbx21[_0xf933[122]],encryption:_0xf933[123]},application:_0xf933[124]})}})}})[_0xf933[37]](function(_0xd7fbx21){if(_0xd7fbx21){return rp({method:_0xf933[112],uri:util[_0xf933[115]](_0xf933[113],_0xd7fbx37,_0xf933[114]),json:true,form:{method:_0xf933[116],input_type:_0xf933[117],response_type:_0xf933[117],rest_data:JSON[_0xf933[32]]({session:_0xd7fbx21[_0xf933[88]],module_name:_0xf933[118]})}})}})[_0xf933[37]](function(_0xd7fbx21){if(_0xd7fbx21){var _0xd7fbx38=_[_0xf933[107]](_0xd7fbx21[_0xf933[106]]);return {count:_0xd7fbx38[_0xf933[74]],rows:_[_0xf933[83]](_0xd7fbx38,function(_0xd7fbx39){return {id:_0xd7fbx39[_0xf933[62]],name:_0xd7fbx39[_0xf933[108]],custom:_[_0xf933[110]](_0xd7fbx39[_0xf933[62]],_0xf933[109])?true:false,options:_0xd7fbx39[_0xf933[85]]?_[_0xf933[83]](_[_0xf933[107]](_0xd7fbx39[_0xf933[85]]),function(_0xd7fbx39){return {name:_0xd7fbx39[_0xf933[111]],value:_0xd7fbx39[_0xf933[62]]}}):[]}})}}})[_0xf933[37]](respondWithResult(_0xd7fbx1e,null,_0xf933[105]))[_0xf933[28]](handleError(_0xd7fbx1e,null,_0xf933[105]))}
\ No newline at end of file
index 7fcc4e9..d80c84d 100644 (file)
@@ -1 +1 @@
-var _0x3668=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x3668[0];var _=require(_0x3668[1]);var util=require(_0x3668[2]);var logger=require(_0x3668[4])(_0x3668[3]);var attributes=require(_0x3668[5]);var integrations=require(_0x3668[6]);module[_0x3668[7]]= function(_0x967cx6,_0x967cx7){return _0x967cx6[_0x3668[10]](_0x3668[8],attributes,{tableName:_0x3668[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe5a4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xe5a4[0];var _=require(_0xe5a4[1]);var util=require(_0xe5a4[2]);var logger=require(_0xe5a4[4])(_0xe5a4[3]);var attributes=require(_0xe5a4[5]);var integrations=require(_0xe5a4[6]);module[_0xe5a4[7]]= function(_0x9a84x6,_0x9a84x7){return _0x9a84x6[_0xe5a4[10]](_0xe5a4[8],attributes,{tableName:_0xe5a4[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index be192ad..e9baecc 100644 (file)
@@ -1 +1 @@
-var _0xd54a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0xd54a[0];var _=require(_0xd54a[1]);var util=require(_0xd54a[2]);var moment=require(_0xd54a[3]);var BPromise=require(_0xd54a[4]);var db=require(_0xd54a[6])[_0xd54a[5]];var utils=require(_0xd54a[7]);var logger=require(_0xd54a[9])(_0xd54a[8]);var jayson=require(_0xd54a[10]);var client=jayson[_0xd54a[12]][_0xd54a[11]]({port:9002});function respondWithRpcPromise(_0xbb74xb,_0xbb74xc,_0xbb74xd){return  new BPromise(function(_0xbb74xe,_0xbb74xf){return client[_0xd54a[25]](_0xbb74xb,_0xbb74xd)[_0xd54a[24]](function(_0xbb74x11){logger[_0xd54a[17]](_0xd54a[13],_0xbb74xc,_0xd54a[16]);logger[_0xd54a[20]](_0xd54a[18],_0xbb74xc,_0xd54a[16],JSON[_0xd54a[19]](_0xbb74x11));if(_0xbb74x11[_0xd54a[14]]){if(_0xbb74x11[_0xd54a[14]][_0xd54a[21]]=== 500){logger[_0xd54a[14]](_0xd54a[13],_0xbb74xc,_0xbb74x11[_0xd54a[14]][_0xd54a[22]]);return _0xbb74xf(_0xbb74x11[_0xd54a[14]][_0xd54a[22]])};logger[_0xd54a[14]](_0xd54a[13],_0xbb74xc,_0xbb74x11[_0xd54a[14]][_0xd54a[22]]);return _0xbb74xe(_0xbb74x11[_0xd54a[14]][_0xd54a[22]])}else {logger[_0xd54a[17]](_0xd54a[13],_0xbb74xc,_0xd54a[16]);_0xbb74xe(_0xbb74x11[_0xd54a[23]][_0xd54a[22]])}})[_0xd54a[15]](function(_0xbb74x10){logger[_0xd54a[14]](_0xd54a[13],_0xbb74xc,_0xbb74x10);_0xbb74xf(_0xbb74x10)})})}exports[_0xd54a[26]]= function(_0xbb74xd){var _0xbb74x12=this;return  new Promise(function(_0xbb74xe,_0xbb74xf){return db[_0xd54a[37]][_0xd54a[36]]({raw:_0xbb74xd[_0xd54a[27]]?(_0xbb74xd[_0xd54a[27]][_0xd54a[28]]=== undefined)?true:false:true,where:_0xbb74xd[_0xd54a[27]]?_0xbb74xd[_0xd54a[27]][_0xd54a[29]]|| null:null,attributes:_0xbb74xd[_0xd54a[27]]?_0xbb74xd[_0xd54a[27]][_0xd54a[30]]|| null:null,limit:_0xbb74xd[_0xd54a[27]]?_0xbb74xd[_0xd54a[27]][_0xd54a[31]]|| null:null,include:_0xbb74xd[_0xd54a[27]]?(_0xbb74xd[_0xd54a[27]][_0xd54a[32]]?_[_0xd54a[35]](_0xbb74xd[_0xd54a[27]][_0xd54a[32]],function(_0xbb74x13){return {model:db[_0xbb74x13[_0xd54a[33]]],as:_0xbb74x13[_0xd54a[34]],attributes:_0xbb74x13[_0xd54a[30]],include:_0xbb74x13[_0xd54a[32]]?_[_0xd54a[35]](_0xbb74x13[_0xd54a[32]],function(_0xbb74x14){return {model:db[_0xbb74x14[_0xd54a[33]]],as:_0xbb74x14[_0xd54a[34]],attributes:_0xbb74x14[_0xd54a[30]],include:_0xbb74x14[_0xd54a[32]]?_[_0xd54a[35]](_0xbb74x14[_0xd54a[32]],function(_0xbb74x15){return {model:db[_0xbb74x15[_0xd54a[33]]],as:_0xbb74x15[_0xd54a[34]],attributes:_0xbb74x15[_0xd54a[30]]}}):[]}}):[]}}):[]):[]})[_0xd54a[24]](function(_0xbb74x11){logger[_0xd54a[17]](_0xd54a[26],_0xbb74xd);logger[_0xd54a[20]](_0xd54a[26],_0xbb74xd,JSON[_0xd54a[19]](_0xbb74x11));_0xbb74xe(_0xbb74x11)})[_0xd54a[15]](function(_0xbb74x10){logger[_0xd54a[14]](_0xd54a[26],_0xbb74x10[_0xd54a[22]],_0xbb74xd);_0xbb74xf(_0xbb74x12[_0xd54a[14]](500,_0xbb74x10[_0xd54a[22]]))})})};exports[_0xd54a[38]]= function(_0xbb74xd){var _0xbb74x12=this;return  new Promise(function(_0xbb74xe,_0xbb74xf){return db[_0xd54a[37]][_0xd54a[39]]({raw:_0xbb74xd[_0xd54a[27]]?(_0xbb74xd[_0xd54a[27]][_0xd54a[28]]=== undefined)?true:false:true,where:_0xbb74xd[_0xd54a[27]]?_0xbb74xd[_0xd54a[27]][_0xd54a[29]]|| null:null,attributes:_0xbb74xd[_0xd54a[27]]?_0xbb74xd[_0xd54a[27]][_0xd54a[30]]|| null:null,include:_0xbb74xd[_0xd54a[27]]?(_0xbb74xd[_0xd54a[27]][_0xd54a[32]]?_[_0xd54a[35]](_0xbb74xd[_0xd54a[27]][_0xd54a[32]],function(_0xbb74x13){return {model:db[_0xbb74x13[_0xd54a[33]]],as:_0xbb74x13[_0xd54a[34]],attributes:_0xbb74x13[_0xd54a[30]],include:_0xbb74x13[_0xd54a[32]]?_[_0xd54a[35]](_0xbb74x13[_0xd54a[32]],function(_0xbb74x14){return {model:db[_0xbb74x14[_0xd54a[33]]],as:_0xbb74x14[_0xd54a[34]],attributes:_0xbb74x14[_0xd54a[30]],include:_0xbb74x14[_0xd54a[32]]?_[_0xd54a[35]](_0xbb74x14[_0xd54a[32]],function(_0xbb74x15){return {model:db[_0xbb74x15[_0xd54a[33]]],as:_0xbb74x15[_0xd54a[34]],attributes:_0xbb74x15[_0xd54a[30]]}}):[]}}):[]}}):[]):[]})[_0xd54a[24]](function(_0xbb74x11){logger[_0xd54a[17]](_0xd54a[38],_0xbb74xd);logger[_0xd54a[20]](_0xd54a[38],_0xbb74xd,JSON[_0xd54a[19]](_0xbb74x11));_0xbb74xe(_0xbb74x11)})[_0xd54a[15]](function(_0xbb74x10){logger[_0xd54a[14]](_0xd54a[38],_0xbb74x10[_0xd54a[22]],_0xbb74xd);_0xbb74xf(_0xbb74x12[_0xd54a[14]](500,_0xbb74x10[_0xd54a[22]]))})})}
\ No newline at end of file
+var _0x8c61=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x8c61[0];var _=require(_0x8c61[1]);var util=require(_0x8c61[2]);var moment=require(_0x8c61[3]);var BPromise=require(_0x8c61[4]);var db=require(_0x8c61[6])[_0x8c61[5]];var utils=require(_0x8c61[7]);var logger=require(_0x8c61[9])(_0x8c61[8]);var jayson=require(_0x8c61[10]);var client=jayson[_0x8c61[12]][_0x8c61[11]]({port:9002});function respondWithRpcPromise(_0x4b6cxb,_0x4b6cxc,_0x4b6cxd){return  new BPromise(function(_0x4b6cxe,_0x4b6cxf){return client[_0x8c61[25]](_0x4b6cxb,_0x4b6cxd)[_0x8c61[24]](function(_0x4b6cx11){logger[_0x8c61[17]](_0x8c61[13],_0x4b6cxc,_0x8c61[16]);logger[_0x8c61[20]](_0x8c61[18],_0x4b6cxc,_0x8c61[16],JSON[_0x8c61[19]](_0x4b6cx11));if(_0x4b6cx11[_0x8c61[14]]){if(_0x4b6cx11[_0x8c61[14]][_0x8c61[21]]=== 500){logger[_0x8c61[14]](_0x8c61[13],_0x4b6cxc,_0x4b6cx11[_0x8c61[14]][_0x8c61[22]]);return _0x4b6cxf(_0x4b6cx11[_0x8c61[14]][_0x8c61[22]])};logger[_0x8c61[14]](_0x8c61[13],_0x4b6cxc,_0x4b6cx11[_0x8c61[14]][_0x8c61[22]]);return _0x4b6cxe(_0x4b6cx11[_0x8c61[14]][_0x8c61[22]])}else {logger[_0x8c61[17]](_0x8c61[13],_0x4b6cxc,_0x8c61[16]);_0x4b6cxe(_0x4b6cx11[_0x8c61[23]][_0x8c61[22]])}})[_0x8c61[15]](function(_0x4b6cx10){logger[_0x8c61[14]](_0x8c61[13],_0x4b6cxc,_0x4b6cx10);_0x4b6cxf(_0x4b6cx10)})})}exports[_0x8c61[26]]= function(_0x4b6cxd){var _0x4b6cx12=this;return  new Promise(function(_0x4b6cxe,_0x4b6cxf){return db[_0x8c61[37]][_0x8c61[36]]({raw:_0x4b6cxd[_0x8c61[27]]?(_0x4b6cxd[_0x8c61[27]][_0x8c61[28]]=== undefined)?true:false:true,where:_0x4b6cxd[_0x8c61[27]]?_0x4b6cxd[_0x8c61[27]][_0x8c61[29]]|| null:null,attributes:_0x4b6cxd[_0x8c61[27]]?_0x4b6cxd[_0x8c61[27]][_0x8c61[30]]|| null:null,limit:_0x4b6cxd[_0x8c61[27]]?_0x4b6cxd[_0x8c61[27]][_0x8c61[31]]|| null:null,include:_0x4b6cxd[_0x8c61[27]]?(_0x4b6cxd[_0x8c61[27]][_0x8c61[32]]?_[_0x8c61[35]](_0x4b6cxd[_0x8c61[27]][_0x8c61[32]],function(_0x4b6cx13){return {model:db[_0x4b6cx13[_0x8c61[33]]],as:_0x4b6cx13[_0x8c61[34]],attributes:_0x4b6cx13[_0x8c61[30]],include:_0x4b6cx13[_0x8c61[32]]?_[_0x8c61[35]](_0x4b6cx13[_0x8c61[32]],function(_0x4b6cx14){return {model:db[_0x4b6cx14[_0x8c61[33]]],as:_0x4b6cx14[_0x8c61[34]],attributes:_0x4b6cx14[_0x8c61[30]],include:_0x4b6cx14[_0x8c61[32]]?_[_0x8c61[35]](_0x4b6cx14[_0x8c61[32]],function(_0x4b6cx15){return {model:db[_0x4b6cx15[_0x8c61[33]]],as:_0x4b6cx15[_0x8c61[34]],attributes:_0x4b6cx15[_0x8c61[30]]}}):[]}}):[]}}):[]):[]})[_0x8c61[24]](function(_0x4b6cx11){logger[_0x8c61[17]](_0x8c61[26],_0x4b6cxd);logger[_0x8c61[20]](_0x8c61[26],_0x4b6cxd,JSON[_0x8c61[19]](_0x4b6cx11));_0x4b6cxe(_0x4b6cx11)})[_0x8c61[15]](function(_0x4b6cx10){logger[_0x8c61[14]](_0x8c61[26],_0x4b6cx10[_0x8c61[22]],_0x4b6cxd);_0x4b6cxf(_0x4b6cx12[_0x8c61[14]](500,_0x4b6cx10[_0x8c61[22]]))})})};exports[_0x8c61[38]]= function(_0x4b6cxd){var _0x4b6cx12=this;return  new Promise(function(_0x4b6cxe,_0x4b6cxf){return db[_0x8c61[37]][_0x8c61[39]]({raw:_0x4b6cxd[_0x8c61[27]]?(_0x4b6cxd[_0x8c61[27]][_0x8c61[28]]=== undefined)?true:false:true,where:_0x4b6cxd[_0x8c61[27]]?_0x4b6cxd[_0x8c61[27]][_0x8c61[29]]|| null:null,attributes:_0x4b6cxd[_0x8c61[27]]?_0x4b6cxd[_0x8c61[27]][_0x8c61[30]]|| null:null,include:_0x4b6cxd[_0x8c61[27]]?(_0x4b6cxd[_0x8c61[27]][_0x8c61[32]]?_[_0x8c61[35]](_0x4b6cxd[_0x8c61[27]][_0x8c61[32]],function(_0x4b6cx13){return {model:db[_0x4b6cx13[_0x8c61[33]]],as:_0x4b6cx13[_0x8c61[34]],attributes:_0x4b6cx13[_0x8c61[30]],include:_0x4b6cx13[_0x8c61[32]]?_[_0x8c61[35]](_0x4b6cx13[_0x8c61[32]],function(_0x4b6cx14){return {model:db[_0x4b6cx14[_0x8c61[33]]],as:_0x4b6cx14[_0x8c61[34]],attributes:_0x4b6cx14[_0x8c61[30]],include:_0x4b6cx14[_0x8c61[32]]?_[_0x8c61[35]](_0x4b6cx14[_0x8c61[32]],function(_0x4b6cx15){return {model:db[_0x4b6cx15[_0x8c61[33]]],as:_0x4b6cx15[_0x8c61[34]],attributes:_0x4b6cx15[_0x8c61[30]]}}):[]}}):[]}}):[]):[]})[_0x8c61[24]](function(_0x4b6cx11){logger[_0x8c61[17]](_0x8c61[38],_0x4b6cxd);logger[_0x8c61[20]](_0x8c61[38],_0x4b6cxd,JSON[_0x8c61[19]](_0x4b6cx11));_0x4b6cxe(_0x4b6cx11)})[_0x8c61[15]](function(_0x4b6cx10){logger[_0x8c61[14]](_0x8c61[38],_0x4b6cx10[_0x8c61[22]],_0x4b6cxd);_0x4b6cxf(_0x4b6cx12[_0x8c61[14]](500,_0x4b6cx10[_0x8c61[22]]))})})}
\ No newline at end of file
index 114936e..f0a4707 100644 (file)
@@ -1 +1 @@
-var _0xbcd7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbcd7[0];var multer=require(_0xbcd7[1]);var util=require(_0xbcd7[2]);var path=require(_0xbcd7[3]);var express=require(_0xbcd7[4]);var router=express.Router();var auth=require(_0xbcd7[5]);var config=require(_0xbcd7[6]);var controller=require(_0xbcd7[7]);router[_0xbcd7[11]](_0xbcd7[8],auth[_0xbcd7[9]](),controller[_0xbcd7[10]]);router[_0xbcd7[11]](_0xbcd7[12],auth[_0xbcd7[9]](),controller[_0xbcd7[13]]);router[_0xbcd7[11]](_0xbcd7[14],auth[_0xbcd7[9]](),controller[_0xbcd7[15]]);router[_0xbcd7[11]](_0xbcd7[16],auth[_0xbcd7[9]](),controller[_0xbcd7[17]]);router[_0xbcd7[11]](_0xbcd7[18],auth[_0xbcd7[9]](),controller[_0xbcd7[19]]);router[_0xbcd7[21]](_0xbcd7[8],auth[_0xbcd7[9]](),controller[_0xbcd7[20]]);router[_0xbcd7[23]](_0xbcd7[12],auth[_0xbcd7[9]](),controller[_0xbcd7[22]]);router[_0xbcd7[25]](_0xbcd7[12],auth[_0xbcd7[9]](),controller[_0xbcd7[24]]);module[_0xbcd7[26]]= router
\ No newline at end of file
+var _0xbe6f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbe6f[0];var multer=require(_0xbe6f[1]);var util=require(_0xbe6f[2]);var path=require(_0xbe6f[3]);var express=require(_0xbe6f[4]);var router=express.Router();var auth=require(_0xbe6f[5]);var config=require(_0xbe6f[6]);var controller=require(_0xbe6f[7]);router[_0xbe6f[11]](_0xbe6f[8],auth[_0xbe6f[9]](),controller[_0xbe6f[10]]);router[_0xbe6f[11]](_0xbe6f[12],auth[_0xbe6f[9]](),controller[_0xbe6f[13]]);router[_0xbe6f[11]](_0xbe6f[14],auth[_0xbe6f[9]](),controller[_0xbe6f[15]]);router[_0xbe6f[11]](_0xbe6f[16],auth[_0xbe6f[9]](),controller[_0xbe6f[17]]);router[_0xbe6f[11]](_0xbe6f[18],auth[_0xbe6f[9]](),controller[_0xbe6f[19]]);router[_0xbe6f[21]](_0xbe6f[8],auth[_0xbe6f[9]](),controller[_0xbe6f[20]]);router[_0xbe6f[23]](_0xbe6f[12],auth[_0xbe6f[9]](),controller[_0xbe6f[22]]);router[_0xbe6f[25]](_0xbe6f[12],auth[_0xbe6f[9]](),controller[_0xbe6f[24]]);module[_0xbe6f[26]]= router
\ No newline at end of file
index 56d34ee..eed8b35 100644 (file)
@@ -1 +1 @@
-var _0x8b63=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x8b63[0];var Sequelize=require(_0x8b63[1]);module[_0x8b63[2]]= {name:{type:Sequelize[_0x8b63[3]]},description:{type:Sequelize[_0x8b63[3]]}}
\ No newline at end of file
+var _0x9743=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x9743[0];var Sequelize=require(_0x9743[1]);module[_0x9743[2]]= {name:{type:Sequelize[_0x9743[3]]},description:{type:Sequelize[_0x9743[3]]}}
\ No newline at end of file
index 35ab574..d6201d6 100644 (file)
@@ -1 +1 @@
-var _0x6588=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73"];_0x6588[0];var jsonpatch=require(_0x6588[1]);var rp=require(_0x6588[2]);var moment=require(_0x6588[3]);var BPromise=require(_0x6588[4]);var util=require(_0x6588[5]);var path=require(_0x6588[6]);var sox=require(_0x6588[7]);var ejs=require(_0x6588[8]);var fs=require(_0x6588[9]);var _=require(_0x6588[10]);var squel=require(_0x6588[11]);var crypto=require(_0x6588[12]);var jsforce=require(_0x6588[13]);var toCsv=require(_0x6588[14]);var qs=require(_0x6588[15]);var logger=require(_0x6588[17])(_0x6588[16]);var utils=require(_0x6588[18]);var config=require(_0x6588[19]);var db=require(_0x6588[21])[_0x6588[20]];var jayson=require(_0x6588[22]);var client=jayson[_0x6588[24]][_0x6588[23]]({port:9002});function respondWithRpcPromise(_0x771ax17,_0x771ax18,_0x771ax19){return  new BPromise(function(_0x771ax1a,_0x771ax1b){return client[_0x6588[37]](_0x771ax17,_0x771ax19)[_0x6588[36]](function(_0x771ax1d){logger[_0x6588[29]](_0x6588[25],_0x771ax18,_0x6588[28]);logger[_0x6588[32]](_0x6588[30],_0x771ax18,_0x6588[28],JSON[_0x6588[31]](_0x771ax1d));if(_0x771ax1d[_0x6588[26]]){if(_0x771ax1d[_0x6588[26]][_0x6588[33]]=== 500){logger[_0x6588[26]](_0x6588[25],_0x771ax18,_0x771ax1d[_0x6588[26]][_0x6588[34]]);return _0x771ax1b(_0x771ax1d[_0x6588[26]][_0x6588[34]])};logger[_0x6588[26]](_0x6588[25],_0x771ax18,_0x771ax1d[_0x6588[26]][_0x6588[34]]);return _0x771ax1a(_0x771ax1d[_0x6588[26]][_0x6588[34]])}else {logger[_0x6588[29]](_0x6588[25],_0x771ax18,_0x6588[28]);_0x771ax1a(_0x771ax1d[_0x6588[35]][_0x6588[34]])}})[_0x6588[27]](function(_0x771ax1c){logger[_0x6588[26]](_0x6588[25],_0x771ax18,_0x771ax1c);_0x771ax1b(_0x771ax1c)})})}function respondWithStatusCode(_0x771ax1d,_0x771ax1f,_0x771ax18){_0x771ax1f= _0x771ax1f|| 204;return function(_0x771ax20){if(_0x771ax20){logger[_0x6588[29]](_0x6588[30],_0x771ax18,_0x771ax1f,_0x6588[38]);logger[_0x6588[32]](_0x6588[39],_0x771ax18,_0x771ax1f,_0x6588[38]);return _0x771ax1d[_0x6588[40]](_0x771ax1f)};return _0x771ax1d[_0x6588[42]](304)[_0x6588[41]]()}}function respondWithResult(_0x771ax1d,_0x771ax1f,_0x771ax18){_0x771ax1f= _0x771ax1f|| 200;return function(_0x771ax20){if(_0x771ax20){logger[_0x6588[29]](_0x6588[30],_0x771ax18,_0x771ax1f,_0x6588[43]);logger[_0x6588[32]](_0x6588[39],_0x771ax18,_0x771ax1f,_0x6588[43],JSON[_0x6588[31]](_0x771ax20));return _0x771ax1d[_0x6588[42]](_0x771ax1f)[_0x6588[44]](_0x771ax20)};return _0x771ax1d[_0x6588[42]](304)[_0x6588[41]]()}}function respondWithFilteredResult(_0x771ax1d,_0x771ax23,_0x771ax18){return function(_0x771ax20){if(_0x771ax20){var _0x771ax24=_0x771ax20[_0x6588[45]],_0x771ax25=_0x771ax23[_0x6588[46]],_0x771ax26=_0x771ax23[_0x6588[46]]+ _0x771ax23[_0x6588[47]],_0x771ax1f;if(_0x771ax26>= _0x771ax24){_0x771ax26= _0x771ax24;_0x771ax1f= 200}else {_0x771ax1f= 206};_0x771ax1d[_0x6588[42]](_0x771ax1f);logger[_0x6588[29]](_0x6588[30],_0x771ax18,_0x771ax1f,_0x6588[48]);logger[_0x6588[32]](_0x6588[39],_0x771ax18,_0x771ax1f,_0x6588[43],JSON[_0x6588[31]](_0x771ax20));return _0x771ax1d[_0x6588[52]](_0x6588[49],_0x771ax25+ _0x6588[50]+ _0x771ax26+ _0x6588[51]+ _0x771ax24)[_0x6588[44]](_0x771ax20)};return null}}function patchUpdates(_0x771ax28){return function(_0x771ax20){try{jsonpatch[_0x6588[53]](_0x771ax20,_0x771ax28,true)}catch(err){return BPromise[_0x6588[54]](err)};return _0x771ax20[_0x6588[55]]()}}function saveUpdates(_0x771ax2a,_0x771ax1f,_0x771ax18){return function(_0x771ax20){if(_0x771ax20){return _0x771ax20[_0x6588[57]](_0x771ax2a)[_0x6588[36]](function(_0x771ax2b){logger[_0x6588[29]](_0x6588[30],_0x771ax18,_0x771ax1f,_0x6588[56]);logger[_0x6588[32]](_0x6588[39],_0x771ax18,_0x771ax1f,_0x6588[56],JSON[_0x6588[31]](_0x771ax20));return _0x771ax2b})};return null}}function removeEntity(_0x771ax1d,_0x771ax1f,_0x771ax18){return function(_0x771ax20){if(_0x771ax20){return _0x771ax20[_0x6588[59]]()[_0x6588[36]](function(){logger[_0x6588[29]](_0x6588[30],_0x771ax18,_0x771ax1f,_0x6588[58]);logger[_0x6588[32]](_0x6588[39],_0x771ax18,_0x771ax1f,_0x6588[58],JSON[_0x6588[31]](_0x771ax20));_0x771ax1d[_0x6588[42]](204)[_0x6588[41]]()})}}}function handleEntityNotFound(_0x771ax1d,_0x771ax1f,_0x771ax18){return function(_0x771ax20){if(!_0x771ax20){logger[_0x6588[26]](_0x6588[30],_0x771ax18,404,_0x6588[60]);_0x771ax1d[_0x6588[42]](404)[_0x6588[41]]();return null};return _0x771ax20}}function handleError(_0x771ax1d,_0x771ax1f,_0x771ax18){_0x771ax1f= _0x771ax1f|| 500;return function(_0x771ax1c){logger[_0x6588[26]](_0x6588[30],_0x771ax18,_0x771ax1f,JSON[_0x6588[31]](_0x771ax1c));delete _0x771ax1c[_0x6588[61]];_0x771ax1d[_0x6588[42]](_0x771ax1f)[_0x6588[62]](_0x771ax1c)}}exports[_0x6588[63]]= function(_0x771ax19,_0x771ax1d){var _0x771ax23={},_0x771ax2f={};_0x771ax2f[_0x6588[64]]= _[_0x6588[67]](db[_0x6588[66]][_0x6588[65]]);_0x771ax2f[_0x6588[68]]= _[_0x6588[67]](_0x771ax19[_0x6588[68]]);_0x771ax2f[_0x6588[69]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],_0x771ax2f[_0x6588[68]]);_0x771ax23[_0x6588[71]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],qs[_0x6588[72]](_0x771ax19[_0x6588[68]][_0x6588[72]]));_0x771ax23[_0x6588[71]]= (_0x771ax23[_0x6588[71]][_0x6588[73]])?_0x771ax23[_0x6588[71]]:_0x771ax2f[_0x6588[64]];if(!_0x771ax19[_0x6588[68]][_0x6588[75]](_0x6588[74])){_0x771ax23[_0x6588[47]]= qs[_0x6588[47]](_0x771ax19[_0x6588[68]][_0x6588[47]]);_0x771ax23[_0x6588[46]]= qs[_0x6588[46]](_0x771ax19[_0x6588[68]][_0x6588[46]])};_0x771ax23[_0x6588[76]]= qs[_0x6588[77]](_0x771ax19[_0x6588[68]][_0x6588[77]]);_0x771ax23[_0x6588[78]]= qs[_0x6588[69]](_[_0x6588[79]](_0x771ax19[_0x6588[68]],_0x771ax2f[_0x6588[69]]));if(_0x771ax19[_0x6588[68]][_0x6588[80]]){_0x771ax23[_0x6588[78]]= _[_0x6588[83]](_0x771ax23[_0x6588[78]],{$or:_[_0x6588[82]](_0x771ax23[_0x6588[71]],function(_0x771ax30){var _0x771ax31={};_0x771ax31[_0x771ax30]= {$like:_0x6588[81]+ _0x771ax19[_0x6588[68]][_0x6588[80]]+ _0x6588[81]};return _0x771ax31})})};_0x771ax23= _[_0x6588[83]]({},_0x771ax23,_0x771ax19[_0x6588[84]]);return db[_0x6588[66]][_0x6588[85]](_0x771ax23)[_0x6588[36]](respondWithFilteredResult(_0x771ax1d,_0x771ax23,_0x6588[63]))[_0x6588[27]](handleError(_0x771ax1d,null,_0x6588[63]))};exports[_0x6588[86]]= function(_0x771ax19,_0x771ax1d){var _0x771ax23={raw:false,where:{id:_0x771ax19[_0x6588[88]][_0x6588[87]]}},_0x771ax2f={};_0x771ax2f[_0x6588[64]]= _[_0x6588[67]](db[_0x6588[66]][_0x6588[65]]);_0x771ax2f[_0x6588[68]]= _[_0x6588[67]](_0x771ax19[_0x6588[68]]);_0x771ax2f[_0x6588[69]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],_0x771ax2f[_0x6588[68]]);_0x771ax23[_0x6588[71]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],qs[_0x6588[72]](_0x771ax19[_0x6588[68]][_0x6588[72]]));_0x771ax23[_0x6588[71]]= (_0x771ax23[_0x6588[71]][_0x6588[73]])?_0x771ax23[_0x6588[71]]:_0x771ax2f[_0x6588[64]];_0x771ax23= _[_0x6588[83]]({},_0x771ax23,_0x771ax19[_0x6588[84]]);return db[_0x6588[66]][_0x6588[89]](_0x771ax23)[_0x6588[36]](handleEntityNotFound(_0x771ax1d,null,_0x6588[86]))[_0x6588[36]](respondWithResult(_0x771ax1d,null,_0x6588[86]))[_0x6588[27]](handleError(_0x771ax1d,null,_0x6588[86]))};exports[_0x6588[90]]= function(_0x771ax19,_0x771ax1d){return db[_0x6588[66]][_0x6588[90]](_0x771ax19[_0x6588[91]],{})[_0x6588[36]](respondWithResult(_0x771ax1d,201,_0x6588[90]))[_0x6588[27]](handleError(_0x771ax1d,null,_0x6588[90]))};exports[_0x6588[57]]= function(_0x771ax19,_0x771ax1d){if(_0x771ax19[_0x6588[91]][_0x6588[87]]){delete _0x771ax19[_0x6588[91]][_0x6588[87]]};return db[_0x6588[66]][_0x6588[89]]({where:{id:_0x771ax19[_0x6588[88]][_0x6588[87]]}})[_0x6588[36]](handleEntityNotFound(_0x771ax1d,null,_0x6588[57]))[_0x6588[36]](saveUpdates(_0x771ax19[_0x6588[91]],null,_0x6588[57]))[_0x6588[36]](respondWithResult(_0x771ax1d,null,_0x6588[57]))[_0x6588[27]](handleError(_0x771ax1d,null,_0x6588[57]))};exports[_0x6588[59]]= function(_0x771ax19,_0x771ax1d){return db[_0x6588[66]][_0x6588[89]]({where:{id:_0x771ax19[_0x6588[88]][_0x6588[87]]}})[_0x6588[36]](handleEntityNotFound(_0x771ax1d,null,_0x6588[59]))[_0x6588[36]](removeEntity(_0x771ax1d,null,_0x6588[59]))[_0x6588[27]](handleError(_0x771ax1d,null,_0x6588[59]))};exports[_0x6588[92]]= function(_0x771ax19,_0x771ax20,_0x771ax32){var _0x771ax23={};var _0x771ax2f={};var _0x771ax33;var _0x771ax24;return db[_0x6588[66]][_0x6588[94]]({where:{id:_0x771ax19[_0x6588[88]][_0x6588[87]]}})[_0x6588[36]](handleEntityNotFound(_0x771ax20,null,_0x6588[92]))[_0x6588[36]](function(_0x771ax20){if(_0x771ax20){_0x771ax33= _0x771ax20;_0x771ax2f[_0x6588[64]]= _[_0x6588[67]](db[_0x6588[93]][_0x6588[65]]);_0x771ax2f[_0x6588[68]]= _[_0x6588[67]](_0x771ax19[_0x6588[68]]);_0x771ax2f[_0x6588[69]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],_0x771ax2f[_0x6588[68]]);_0x771ax23[_0x6588[71]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],qs[_0x6588[72]](_0x771ax19[_0x6588[68]][_0x6588[72]]));_0x771ax23[_0x6588[71]]= (_0x771ax23[_0x6588[71]][_0x6588[73]])?_0x771ax23[_0x6588[71]]:_0x771ax2f[_0x6588[64]];_0x771ax23[_0x6588[76]]= qs[_0x6588[77]](_0x771ax19[_0x6588[68]][_0x6588[77]]);_0x771ax23[_0x6588[78]]= qs[_0x6588[69]](_[_0x6588[79]](_0x771ax19[_0x6588[68]],_0x771ax2f[_0x6588[69]]));if(_0x771ax19[_0x6588[68]][_0x6588[80]]){_0x771ax23[_0x6588[78]]= _[_0x6588[83]](_0x771ax23[_0x6588[78]],{$or:_[_0x6588[82]](_0x771ax23[_0x6588[71]],function(_0x771ax30){var _0x771ax31={};_0x771ax31[_0x771ax30]= {$like:_0x6588[81]+ _0x771ax19[_0x6588[68]][_0x6588[80]]+ _0x6588[81]};return _0x771ax31})})};_0x771ax23= _[_0x6588[83]]({},_0x771ax23,_0x771ax19[_0x6588[84]]);return _0x771ax33[_0x6588[92]](_0x771ax23)}})[_0x6588[36]](function(_0x771ax35){if(_0x771ax35){_0x771ax24= _0x771ax35[_0x6588[73]];if(!_0x771ax19[_0x6588[68]][_0x6588[75]](_0x6588[74])){_0x771ax23[_0x6588[47]]= qs[_0x6588[47]](_0x771ax19[_0x6588[68]][_0x6588[47]]);_0x771ax23[_0x6588[46]]= qs[_0x6588[46]](_0x771ax19[_0x6588[68]][_0x6588[46]])};return _0x771ax33[_0x6588[92]](_0x771ax23)}})[_0x6588[36]](function(_0x771ax34){return _0x771ax34?{count:_0x771ax24,rows:_0x771ax34}:null})[_0x6588[36]](respondWithResult(_0x771ax20,null,_0x6588[92]))[_0x6588[27]](handleError(_0x771ax20,null,_0x6588[92]))};exports[_0x6588[95]]= function(_0x771ax19,_0x771ax20,_0x771ax32){var _0x771ax23={};var _0x771ax2f={};var _0x771ax33;var _0x771ax24;return db[_0x6588[66]][_0x6588[94]]({where:{id:_0x771ax19[_0x6588[88]][_0x6588[87]]}})[_0x6588[36]](handleEntityNotFound(_0x771ax20,null,_0x6588[95]))[_0x6588[36]](function(_0x771ax20){if(_0x771ax20){_0x771ax33= _0x771ax20;_0x771ax2f[_0x6588[64]]= _[_0x6588[67]](db[_0x6588[93]][_0x6588[65]]);_0x771ax2f[_0x6588[68]]= _[_0x6588[67]](_0x771ax19[_0x6588[68]]);_0x771ax2f[_0x6588[69]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],_0x771ax2f[_0x6588[68]]);_0x771ax23[_0x6588[71]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],qs[_0x6588[72]](_0x771ax19[_0x6588[68]][_0x6588[72]]));_0x771ax23[_0x6588[71]]= (_0x771ax23[_0x6588[71]][_0x6588[73]])?_0x771ax23[_0x6588[71]]:_0x771ax2f[_0x6588[64]];_0x771ax23[_0x6588[76]]= qs[_0x6588[77]](_0x771ax19[_0x6588[68]][_0x6588[77]]);_0x771ax23[_0x6588[78]]= qs[_0x6588[69]](_[_0x6588[79]](_0x771ax19[_0x6588[68]],_0x771ax2f[_0x6588[69]]));if(_0x771ax19[_0x6588[68]][_0x6588[80]]){_0x771ax23[_0x6588[78]]= _[_0x6588[83]](_0x771ax23[_0x6588[78]],{$or:_[_0x6588[82]](_0x771ax23[_0x6588[71]],function(_0x771ax30){var _0x771ax31={};_0x771ax31[_0x771ax30]= {$like:_0x6588[81]+ _0x771ax19[_0x6588[68]][_0x6588[80]]+ _0x6588[81]};return _0x771ax31})})};_0x771ax23= _[_0x6588[83]]({},_0x771ax23,_0x771ax19[_0x6588[84]]);return _0x771ax33[_0x6588[95]](_0x771ax23)}})[_0x6588[36]](function(_0x771ax35){if(_0x771ax35){_0x771ax24= _0x771ax35[_0x6588[73]];if(!_0x771ax19[_0x6588[68]][_0x6588[75]](_0x6588[74])){_0x771ax23[_0x6588[47]]= qs[_0x6588[47]](_0x771ax19[_0x6588[68]][_0x6588[47]]);_0x771ax23[_0x6588[46]]= qs[_0x6588[46]](_0x771ax19[_0x6588[68]][_0x6588[46]])};return _0x771ax33[_0x6588[95]](_0x771ax23)}})[_0x6588[36]](function(_0x771ax34){return _0x771ax34?{count:_0x771ax24,rows:_0x771ax34}:null})[_0x6588[36]](respondWithResult(_0x771ax20,null,_0x6588[95]))[_0x6588[27]](handleError(_0x771ax20,null,_0x6588[95]))};exports[_0x6588[96]]= function(_0x771ax19,_0x771ax20,_0x771ax32){var _0x771ax23={};var _0x771ax2f={};var _0x771ax33;var _0x771ax24;return db[_0x6588[66]][_0x6588[94]]({where:{id:_0x771ax19[_0x6588[88]][_0x6588[87]]}})[_0x6588[36]](handleEntityNotFound(_0x771ax20,null,_0x6588[96]))[_0x6588[36]](function(_0x771ax20){if(_0x771ax20){_0x771ax33= _0x771ax20;_0x771ax2f[_0x6588[64]]= _[_0x6588[67]](db[_0x6588[93]][_0x6588[65]]);_0x771ax2f[_0x6588[68]]= _[_0x6588[67]](_0x771ax19[_0x6588[68]]);_0x771ax2f[_0x6588[69]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],_0x771ax2f[_0x6588[68]]);_0x771ax23[_0x6588[71]]= _[_0x6588[70]](_0x771ax2f[_0x6588[64]],qs[_0x6588[72]](_0x771ax19[_0x6588[68]][_0x6588[72]]));_0x771ax23[_0x6588[71]]= (_0x771ax23[_0x6588[71]][_0x6588[73]])?_0x771ax23[_0x6588[71]]:_0x771ax2f[_0x6588[64]];_0x771ax23[_0x6588[76]]= qs[_0x6588[77]](_0x771ax19[_0x6588[68]][_0x6588[77]]);_0x771ax23[_0x6588[78]]= qs[_0x6588[69]](_[_0x6588[79]](_0x771ax19[_0x6588[68]],_0x771ax2f[_0x6588[69]]));if(_0x771ax19[_0x6588[68]][_0x6588[80]]){_0x771ax23[_0x6588[78]]= _[_0x6588[83]](_0x771ax23[_0x6588[78]],{$or:_[_0x6588[82]](_0x771ax23[_0x6588[71]],function(_0x771ax30){var _0x771ax31={};_0x771ax31[_0x771ax30]= {$like:_0x6588[81]+ _0x771ax19[_0x6588[68]][_0x6588[80]]+ _0x6588[81]};return _0x771ax31})})};_0x771ax23= _[_0x6588[83]]({},_0x771ax23,_0x771ax19[_0x6588[84]]);return _0x771ax33[_0x6588[96]](_0x771ax23)}})[_0x6588[36]](function(_0x771ax35){if(_0x771ax35){_0x771ax24= _0x771ax35[_0x6588[73]];if(!_0x771ax19[_0x6588[68]][_0x6588[75]](_0x6588[74])){_0x771ax23[_0x6588[47]]= qs[_0x6588[47]](_0x771ax19[_0x6588[68]][_0x6588[47]]);_0x771ax23[_0x6588[46]]= qs[_0x6588[46]](_0x771ax19[_0x6588[68]][_0x6588[46]])};return _0x771ax33[_0x6588[96]](_0x771ax23)}})[_0x6588[36]](function(_0x771ax34){return _0x771ax34?{count:_0x771ax24,rows:_0x771ax34}:null})[_0x6588[36]](respondWithResult(_0x771ax20,null,_0x6588[96]))[_0x6588[27]](handleError(_0x771ax20,null,_0x6588[96]))}
\ No newline at end of file
+var _0x2234=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73"];_0x2234[0];var jsonpatch=require(_0x2234[1]);var rp=require(_0x2234[2]);var moment=require(_0x2234[3]);var BPromise=require(_0x2234[4]);var util=require(_0x2234[5]);var path=require(_0x2234[6]);var sox=require(_0x2234[7]);var ejs=require(_0x2234[8]);var fs=require(_0x2234[9]);var _=require(_0x2234[10]);var squel=require(_0x2234[11]);var crypto=require(_0x2234[12]);var jsforce=require(_0x2234[13]);var toCsv=require(_0x2234[14]);var qs=require(_0x2234[15]);var logger=require(_0x2234[17])(_0x2234[16]);var utils=require(_0x2234[18]);var config=require(_0x2234[19]);var db=require(_0x2234[21])[_0x2234[20]];var jayson=require(_0x2234[22]);var client=jayson[_0x2234[24]][_0x2234[23]]({port:9002});function respondWithRpcPromise(_0x42e9x17,_0x42e9x18,_0x42e9x19){return  new BPromise(function(_0x42e9x1a,_0x42e9x1b){return client[_0x2234[37]](_0x42e9x17,_0x42e9x19)[_0x2234[36]](function(_0x42e9x1d){logger[_0x2234[29]](_0x2234[25],_0x42e9x18,_0x2234[28]);logger[_0x2234[32]](_0x2234[30],_0x42e9x18,_0x2234[28],JSON[_0x2234[31]](_0x42e9x1d));if(_0x42e9x1d[_0x2234[26]]){if(_0x42e9x1d[_0x2234[26]][_0x2234[33]]=== 500){logger[_0x2234[26]](_0x2234[25],_0x42e9x18,_0x42e9x1d[_0x2234[26]][_0x2234[34]]);return _0x42e9x1b(_0x42e9x1d[_0x2234[26]][_0x2234[34]])};logger[_0x2234[26]](_0x2234[25],_0x42e9x18,_0x42e9x1d[_0x2234[26]][_0x2234[34]]);return _0x42e9x1a(_0x42e9x1d[_0x2234[26]][_0x2234[34]])}else {logger[_0x2234[29]](_0x2234[25],_0x42e9x18,_0x2234[28]);_0x42e9x1a(_0x42e9x1d[_0x2234[35]][_0x2234[34]])}})[_0x2234[27]](function(_0x42e9x1c){logger[_0x2234[26]](_0x2234[25],_0x42e9x18,_0x42e9x1c);_0x42e9x1b(_0x42e9x1c)})})}function respondWithStatusCode(_0x42e9x1d,_0x42e9x1f,_0x42e9x18){_0x42e9x1f= _0x42e9x1f|| 204;return function(_0x42e9x20){if(_0x42e9x20){logger[_0x2234[29]](_0x2234[30],_0x42e9x18,_0x42e9x1f,_0x2234[38]);logger[_0x2234[32]](_0x2234[39],_0x42e9x18,_0x42e9x1f,_0x2234[38]);return _0x42e9x1d[_0x2234[40]](_0x42e9x1f)};return _0x42e9x1d[_0x2234[42]](304)[_0x2234[41]]()}}function respondWithResult(_0x42e9x1d,_0x42e9x1f,_0x42e9x18){_0x42e9x1f= _0x42e9x1f|| 200;return function(_0x42e9x20){if(_0x42e9x20){logger[_0x2234[29]](_0x2234[30],_0x42e9x18,_0x42e9x1f,_0x2234[43]);logger[_0x2234[32]](_0x2234[39],_0x42e9x18,_0x42e9x1f,_0x2234[43],JSON[_0x2234[31]](_0x42e9x20));return _0x42e9x1d[_0x2234[42]](_0x42e9x1f)[_0x2234[44]](_0x42e9x20)};return _0x42e9x1d[_0x2234[42]](304)[_0x2234[41]]()}}function respondWithFilteredResult(_0x42e9x1d,_0x42e9x23,_0x42e9x18){return function(_0x42e9x20){if(_0x42e9x20){var _0x42e9x24=_0x42e9x20[_0x2234[45]],_0x42e9x25=_0x42e9x23[_0x2234[46]],_0x42e9x26=_0x42e9x23[_0x2234[46]]+ _0x42e9x23[_0x2234[47]],_0x42e9x1f;if(_0x42e9x26>= _0x42e9x24){_0x42e9x26= _0x42e9x24;_0x42e9x1f= 200}else {_0x42e9x1f= 206};_0x42e9x1d[_0x2234[42]](_0x42e9x1f);logger[_0x2234[29]](_0x2234[30],_0x42e9x18,_0x42e9x1f,_0x2234[48]);logger[_0x2234[32]](_0x2234[39],_0x42e9x18,_0x42e9x1f,_0x2234[43],JSON[_0x2234[31]](_0x42e9x20));return _0x42e9x1d[_0x2234[52]](_0x2234[49],_0x42e9x25+ _0x2234[50]+ _0x42e9x26+ _0x2234[51]+ _0x42e9x24)[_0x2234[44]](_0x42e9x20)};return null}}function patchUpdates(_0x42e9x28){return function(_0x42e9x20){try{jsonpatch[_0x2234[53]](_0x42e9x20,_0x42e9x28,true)}catch(err){return BPromise[_0x2234[54]](err)};return _0x42e9x20[_0x2234[55]]()}}function saveUpdates(_0x42e9x2a,_0x42e9x1f,_0x42e9x18){return function(_0x42e9x20){if(_0x42e9x20){return _0x42e9x20[_0x2234[57]](_0x42e9x2a)[_0x2234[36]](function(_0x42e9x2b){logger[_0x2234[29]](_0x2234[30],_0x42e9x18,_0x42e9x1f,_0x2234[56]);logger[_0x2234[32]](_0x2234[39],_0x42e9x18,_0x42e9x1f,_0x2234[56],JSON[_0x2234[31]](_0x42e9x20));return _0x42e9x2b})};return null}}function removeEntity(_0x42e9x1d,_0x42e9x1f,_0x42e9x18){return function(_0x42e9x20){if(_0x42e9x20){return _0x42e9x20[_0x2234[59]]()[_0x2234[36]](function(){logger[_0x2234[29]](_0x2234[30],_0x42e9x18,_0x42e9x1f,_0x2234[58]);logger[_0x2234[32]](_0x2234[39],_0x42e9x18,_0x42e9x1f,_0x2234[58],JSON[_0x2234[31]](_0x42e9x20));_0x42e9x1d[_0x2234[42]](204)[_0x2234[41]]()})}}}function handleEntityNotFound(_0x42e9x1d,_0x42e9x1f,_0x42e9x18){return function(_0x42e9x20){if(!_0x42e9x20){logger[_0x2234[26]](_0x2234[30],_0x42e9x18,404,_0x2234[60]);_0x42e9x1d[_0x2234[42]](404)[_0x2234[41]]();return null};return _0x42e9x20}}function handleError(_0x42e9x1d,_0x42e9x1f,_0x42e9x18){_0x42e9x1f= _0x42e9x1f|| 500;return function(_0x42e9x1c){logger[_0x2234[26]](_0x2234[30],_0x42e9x18,_0x42e9x1f,JSON[_0x2234[31]](_0x42e9x1c));delete _0x42e9x1c[_0x2234[61]];_0x42e9x1d[_0x2234[42]](_0x42e9x1f)[_0x2234[62]](_0x42e9x1c)}}exports[_0x2234[63]]= function(_0x42e9x19,_0x42e9x1d){var _0x42e9x23={},_0x42e9x2f={};_0x42e9x2f[_0x2234[64]]= _[_0x2234[67]](db[_0x2234[66]][_0x2234[65]]);_0x42e9x2f[_0x2234[68]]= _[_0x2234[67]](_0x42e9x19[_0x2234[68]]);_0x42e9x2f[_0x2234[69]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],_0x42e9x2f[_0x2234[68]]);_0x42e9x23[_0x2234[71]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],qs[_0x2234[72]](_0x42e9x19[_0x2234[68]][_0x2234[72]]));_0x42e9x23[_0x2234[71]]= (_0x42e9x23[_0x2234[71]][_0x2234[73]])?_0x42e9x23[_0x2234[71]]:_0x42e9x2f[_0x2234[64]];if(!_0x42e9x19[_0x2234[68]][_0x2234[75]](_0x2234[74])){_0x42e9x23[_0x2234[47]]= qs[_0x2234[47]](_0x42e9x19[_0x2234[68]][_0x2234[47]]);_0x42e9x23[_0x2234[46]]= qs[_0x2234[46]](_0x42e9x19[_0x2234[68]][_0x2234[46]])};_0x42e9x23[_0x2234[76]]= qs[_0x2234[77]](_0x42e9x19[_0x2234[68]][_0x2234[77]]);_0x42e9x23[_0x2234[78]]= qs[_0x2234[69]](_[_0x2234[79]](_0x42e9x19[_0x2234[68]],_0x42e9x2f[_0x2234[69]]));if(_0x42e9x19[_0x2234[68]][_0x2234[80]]){_0x42e9x23[_0x2234[78]]= _[_0x2234[83]](_0x42e9x23[_0x2234[78]],{$or:_[_0x2234[82]](_0x42e9x23[_0x2234[71]],function(_0x42e9x30){var _0x42e9x31={};_0x42e9x31[_0x42e9x30]= {$like:_0x2234[81]+ _0x42e9x19[_0x2234[68]][_0x2234[80]]+ _0x2234[81]};return _0x42e9x31})})};_0x42e9x23= _[_0x2234[83]]({},_0x42e9x23,_0x42e9x19[_0x2234[84]]);return db[_0x2234[66]][_0x2234[85]](_0x42e9x23)[_0x2234[36]](respondWithFilteredResult(_0x42e9x1d,_0x42e9x23,_0x2234[63]))[_0x2234[27]](handleError(_0x42e9x1d,null,_0x2234[63]))};exports[_0x2234[86]]= function(_0x42e9x19,_0x42e9x1d){var _0x42e9x23={raw:false,where:{id:_0x42e9x19[_0x2234[88]][_0x2234[87]]}},_0x42e9x2f={};_0x42e9x2f[_0x2234[64]]= _[_0x2234[67]](db[_0x2234[66]][_0x2234[65]]);_0x42e9x2f[_0x2234[68]]= _[_0x2234[67]](_0x42e9x19[_0x2234[68]]);_0x42e9x2f[_0x2234[69]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],_0x42e9x2f[_0x2234[68]]);_0x42e9x23[_0x2234[71]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],qs[_0x2234[72]](_0x42e9x19[_0x2234[68]][_0x2234[72]]));_0x42e9x23[_0x2234[71]]= (_0x42e9x23[_0x2234[71]][_0x2234[73]])?_0x42e9x23[_0x2234[71]]:_0x42e9x2f[_0x2234[64]];_0x42e9x23= _[_0x2234[83]]({},_0x42e9x23,_0x42e9x19[_0x2234[84]]);return db[_0x2234[66]][_0x2234[89]](_0x42e9x23)[_0x2234[36]](handleEntityNotFound(_0x42e9x1d,null,_0x2234[86]))[_0x2234[36]](respondWithResult(_0x42e9x1d,null,_0x2234[86]))[_0x2234[27]](handleError(_0x42e9x1d,null,_0x2234[86]))};exports[_0x2234[90]]= function(_0x42e9x19,_0x42e9x1d){return db[_0x2234[66]][_0x2234[90]](_0x42e9x19[_0x2234[91]],{})[_0x2234[36]](respondWithResult(_0x42e9x1d,201,_0x2234[90]))[_0x2234[27]](handleError(_0x42e9x1d,null,_0x2234[90]))};exports[_0x2234[57]]= function(_0x42e9x19,_0x42e9x1d){if(_0x42e9x19[_0x2234[91]][_0x2234[87]]){delete _0x42e9x19[_0x2234[91]][_0x2234[87]]};return db[_0x2234[66]][_0x2234[89]]({where:{id:_0x42e9x19[_0x2234[88]][_0x2234[87]]}})[_0x2234[36]](handleEntityNotFound(_0x42e9x1d,null,_0x2234[57]))[_0x2234[36]](saveUpdates(_0x42e9x19[_0x2234[91]],null,_0x2234[57]))[_0x2234[36]](respondWithResult(_0x42e9x1d,null,_0x2234[57]))[_0x2234[27]](handleError(_0x42e9x1d,null,_0x2234[57]))};exports[_0x2234[59]]= function(_0x42e9x19,_0x42e9x1d){return db[_0x2234[66]][_0x2234[89]]({where:{id:_0x42e9x19[_0x2234[88]][_0x2234[87]]}})[_0x2234[36]](handleEntityNotFound(_0x42e9x1d,null,_0x2234[59]))[_0x2234[36]](removeEntity(_0x42e9x1d,null,_0x2234[59]))[_0x2234[27]](handleError(_0x42e9x1d,null,_0x2234[59]))};exports[_0x2234[92]]= function(_0x42e9x19,_0x42e9x20,_0x42e9x32){var _0x42e9x23={};var _0x42e9x2f={};var _0x42e9x33;var _0x42e9x24;return db[_0x2234[66]][_0x2234[94]]({where:{id:_0x42e9x19[_0x2234[88]][_0x2234[87]]}})[_0x2234[36]](handleEntityNotFound(_0x42e9x20,null,_0x2234[92]))[_0x2234[36]](function(_0x42e9x20){if(_0x42e9x20){_0x42e9x33= _0x42e9x20;_0x42e9x2f[_0x2234[64]]= _[_0x2234[67]](db[_0x2234[93]][_0x2234[65]]);_0x42e9x2f[_0x2234[68]]= _[_0x2234[67]](_0x42e9x19[_0x2234[68]]);_0x42e9x2f[_0x2234[69]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],_0x42e9x2f[_0x2234[68]]);_0x42e9x23[_0x2234[71]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],qs[_0x2234[72]](_0x42e9x19[_0x2234[68]][_0x2234[72]]));_0x42e9x23[_0x2234[71]]= (_0x42e9x23[_0x2234[71]][_0x2234[73]])?_0x42e9x23[_0x2234[71]]:_0x42e9x2f[_0x2234[64]];_0x42e9x23[_0x2234[76]]= qs[_0x2234[77]](_0x42e9x19[_0x2234[68]][_0x2234[77]]);_0x42e9x23[_0x2234[78]]= qs[_0x2234[69]](_[_0x2234[79]](_0x42e9x19[_0x2234[68]],_0x42e9x2f[_0x2234[69]]));if(_0x42e9x19[_0x2234[68]][_0x2234[80]]){_0x42e9x23[_0x2234[78]]= _[_0x2234[83]](_0x42e9x23[_0x2234[78]],{$or:_[_0x2234[82]](_0x42e9x23[_0x2234[71]],function(_0x42e9x30){var _0x42e9x31={};_0x42e9x31[_0x42e9x30]= {$like:_0x2234[81]+ _0x42e9x19[_0x2234[68]][_0x2234[80]]+ _0x2234[81]};return _0x42e9x31})})};_0x42e9x23= _[_0x2234[83]]({},_0x42e9x23,_0x42e9x19[_0x2234[84]]);return _0x42e9x33[_0x2234[92]](_0x42e9x23)}})[_0x2234[36]](function(_0x42e9x35){if(_0x42e9x35){_0x42e9x24= _0x42e9x35[_0x2234[73]];if(!_0x42e9x19[_0x2234[68]][_0x2234[75]](_0x2234[74])){_0x42e9x23[_0x2234[47]]= qs[_0x2234[47]](_0x42e9x19[_0x2234[68]][_0x2234[47]]);_0x42e9x23[_0x2234[46]]= qs[_0x2234[46]](_0x42e9x19[_0x2234[68]][_0x2234[46]])};return _0x42e9x33[_0x2234[92]](_0x42e9x23)}})[_0x2234[36]](function(_0x42e9x34){return _0x42e9x34?{count:_0x42e9x24,rows:_0x42e9x34}:null})[_0x2234[36]](respondWithResult(_0x42e9x20,null,_0x2234[92]))[_0x2234[27]](handleError(_0x42e9x20,null,_0x2234[92]))};exports[_0x2234[95]]= function(_0x42e9x19,_0x42e9x20,_0x42e9x32){var _0x42e9x23={};var _0x42e9x2f={};var _0x42e9x33;var _0x42e9x24;return db[_0x2234[66]][_0x2234[94]]({where:{id:_0x42e9x19[_0x2234[88]][_0x2234[87]]}})[_0x2234[36]](handleEntityNotFound(_0x42e9x20,null,_0x2234[95]))[_0x2234[36]](function(_0x42e9x20){if(_0x42e9x20){_0x42e9x33= _0x42e9x20;_0x42e9x2f[_0x2234[64]]= _[_0x2234[67]](db[_0x2234[93]][_0x2234[65]]);_0x42e9x2f[_0x2234[68]]= _[_0x2234[67]](_0x42e9x19[_0x2234[68]]);_0x42e9x2f[_0x2234[69]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],_0x42e9x2f[_0x2234[68]]);_0x42e9x23[_0x2234[71]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],qs[_0x2234[72]](_0x42e9x19[_0x2234[68]][_0x2234[72]]));_0x42e9x23[_0x2234[71]]= (_0x42e9x23[_0x2234[71]][_0x2234[73]])?_0x42e9x23[_0x2234[71]]:_0x42e9x2f[_0x2234[64]];_0x42e9x23[_0x2234[76]]= qs[_0x2234[77]](_0x42e9x19[_0x2234[68]][_0x2234[77]]);_0x42e9x23[_0x2234[78]]= qs[_0x2234[69]](_[_0x2234[79]](_0x42e9x19[_0x2234[68]],_0x42e9x2f[_0x2234[69]]));if(_0x42e9x19[_0x2234[68]][_0x2234[80]]){_0x42e9x23[_0x2234[78]]= _[_0x2234[83]](_0x42e9x23[_0x2234[78]],{$or:_[_0x2234[82]](_0x42e9x23[_0x2234[71]],function(_0x42e9x30){var _0x42e9x31={};_0x42e9x31[_0x42e9x30]= {$like:_0x2234[81]+ _0x42e9x19[_0x2234[68]][_0x2234[80]]+ _0x2234[81]};return _0x42e9x31})})};_0x42e9x23= _[_0x2234[83]]({},_0x42e9x23,_0x42e9x19[_0x2234[84]]);return _0x42e9x33[_0x2234[95]](_0x42e9x23)}})[_0x2234[36]](function(_0x42e9x35){if(_0x42e9x35){_0x42e9x24= _0x42e9x35[_0x2234[73]];if(!_0x42e9x19[_0x2234[68]][_0x2234[75]](_0x2234[74])){_0x42e9x23[_0x2234[47]]= qs[_0x2234[47]](_0x42e9x19[_0x2234[68]][_0x2234[47]]);_0x42e9x23[_0x2234[46]]= qs[_0x2234[46]](_0x42e9x19[_0x2234[68]][_0x2234[46]])};return _0x42e9x33[_0x2234[95]](_0x42e9x23)}})[_0x2234[36]](function(_0x42e9x34){return _0x42e9x34?{count:_0x42e9x24,rows:_0x42e9x34}:null})[_0x2234[36]](respondWithResult(_0x42e9x20,null,_0x2234[95]))[_0x2234[27]](handleError(_0x42e9x20,null,_0x2234[95]))};exports[_0x2234[96]]= function(_0x42e9x19,_0x42e9x20,_0x42e9x32){var _0x42e9x23={};var _0x42e9x2f={};var _0x42e9x33;var _0x42e9x24;return db[_0x2234[66]][_0x2234[94]]({where:{id:_0x42e9x19[_0x2234[88]][_0x2234[87]]}})[_0x2234[36]](handleEntityNotFound(_0x42e9x20,null,_0x2234[96]))[_0x2234[36]](function(_0x42e9x20){if(_0x42e9x20){_0x42e9x33= _0x42e9x20;_0x42e9x2f[_0x2234[64]]= _[_0x2234[67]](db[_0x2234[93]][_0x2234[65]]);_0x42e9x2f[_0x2234[68]]= _[_0x2234[67]](_0x42e9x19[_0x2234[68]]);_0x42e9x2f[_0x2234[69]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],_0x42e9x2f[_0x2234[68]]);_0x42e9x23[_0x2234[71]]= _[_0x2234[70]](_0x42e9x2f[_0x2234[64]],qs[_0x2234[72]](_0x42e9x19[_0x2234[68]][_0x2234[72]]));_0x42e9x23[_0x2234[71]]= (_0x42e9x23[_0x2234[71]][_0x2234[73]])?_0x42e9x23[_0x2234[71]]:_0x42e9x2f[_0x2234[64]];_0x42e9x23[_0x2234[76]]= qs[_0x2234[77]](_0x42e9x19[_0x2234[68]][_0x2234[77]]);_0x42e9x23[_0x2234[78]]= qs[_0x2234[69]](_[_0x2234[79]](_0x42e9x19[_0x2234[68]],_0x42e9x2f[_0x2234[69]]));if(_0x42e9x19[_0x2234[68]][_0x2234[80]]){_0x42e9x23[_0x2234[78]]= _[_0x2234[83]](_0x42e9x23[_0x2234[78]],{$or:_[_0x2234[82]](_0x42e9x23[_0x2234[71]],function(_0x42e9x30){var _0x42e9x31={};_0x42e9x31[_0x42e9x30]= {$like:_0x2234[81]+ _0x42e9x19[_0x2234[68]][_0x2234[80]]+ _0x2234[81]};return _0x42e9x31})})};_0x42e9x23= _[_0x2234[83]]({},_0x42e9x23,_0x42e9x19[_0x2234[84]]);return _0x42e9x33[_0x2234[96]](_0x42e9x23)}})[_0x2234[36]](function(_0x42e9x35){if(_0x42e9x35){_0x42e9x24= _0x42e9x35[_0x2234[73]];if(!_0x42e9x19[_0x2234[68]][_0x2234[75]](_0x2234[74])){_0x42e9x23[_0x2234[47]]= qs[_0x2234[47]](_0x42e9x19[_0x2234[68]][_0x2234[47]]);_0x42e9x23[_0x2234[46]]= qs[_0x2234[46]](_0x42e9x19[_0x2234[68]][_0x2234[46]])};return _0x42e9x33[_0x2234[96]](_0x42e9x23)}})[_0x2234[36]](function(_0x42e9x34){return _0x42e9x34?{count:_0x42e9x24,rows:_0x42e9x34}:null})[_0x2234[36]](respondWithResult(_0x42e9x20,null,_0x2234[96]))[_0x2234[27]](handleError(_0x42e9x20,null,_0x2234[96]))}
\ No newline at end of file
index f356662..9015c01 100644 (file)
@@ -1 +1 @@
-var _0xd115=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xd115[0];var _=require(_0xd115[1]);var util=require(_0xd115[2]);var logger=require(_0xd115[4])(_0xd115[3]);var attributes=require(_0xd115[5]);module[_0xd115[6]]= function(_0x7266x5,_0x7266x6){return _0x7266x5[_0xd115[9]](_0xd115[7],attributes,{tableName:_0xd115[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x1dd5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x1dd5[0];var _=require(_0x1dd5[1]);var util=require(_0x1dd5[2]);var logger=require(_0x1dd5[4])(_0x1dd5[3]);var attributes=require(_0x1dd5[5]);module[_0x1dd5[6]]= function(_0x99cdx5,_0x99cdx6){return _0x99cdx5[_0x1dd5[9]](_0x1dd5[7],attributes,{tableName:_0x1dd5[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index a029983..fa0570c 100644 (file)
@@ -1 +1 @@
-var _0xa0f3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa0f3[0];var _=require(_0xa0f3[1]);var util=require(_0xa0f3[2]);var moment=require(_0xa0f3[3]);var BPromise=require(_0xa0f3[4]);var db=require(_0xa0f3[6])[_0xa0f3[5]];var utils=require(_0xa0f3[7]);var logger=require(_0xa0f3[9])(_0xa0f3[8]);var jayson=require(_0xa0f3[10]);var client=jayson[_0xa0f3[12]][_0xa0f3[11]]({port:9002});function respondWithRpcPromise(_0xd3caxb,_0xd3caxc,_0xd3caxd){return  new BPromise(function(_0xd3caxe,_0xd3caxf){return client[_0xa0f3[25]](_0xd3caxb,_0xd3caxd)[_0xa0f3[24]](function(_0xd3cax11){logger[_0xa0f3[17]](_0xa0f3[13],_0xd3caxc,_0xa0f3[16]);logger[_0xa0f3[20]](_0xa0f3[18],_0xd3caxc,_0xa0f3[16],JSON[_0xa0f3[19]](_0xd3cax11));if(_0xd3cax11[_0xa0f3[14]]){if(_0xd3cax11[_0xa0f3[14]][_0xa0f3[21]]=== 500){logger[_0xa0f3[14]](_0xa0f3[13],_0xd3caxc,_0xd3cax11[_0xa0f3[14]][_0xa0f3[22]]);return _0xd3caxf(_0xd3cax11[_0xa0f3[14]][_0xa0f3[22]])};logger[_0xa0f3[14]](_0xa0f3[13],_0xd3caxc,_0xd3cax11[_0xa0f3[14]][_0xa0f3[22]]);return _0xd3caxe(_0xd3cax11[_0xa0f3[14]][_0xa0f3[22]])}else {logger[_0xa0f3[17]](_0xa0f3[13],_0xd3caxc,_0xa0f3[16]);_0xd3caxe(_0xd3cax11[_0xa0f3[23]][_0xa0f3[22]])}})[_0xa0f3[15]](function(_0xd3cax10){logger[_0xa0f3[14]](_0xa0f3[13],_0xd3caxc,_0xd3cax10);_0xd3caxf(_0xd3cax10)})})}
\ No newline at end of file
+var _0x4598=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4598[0];var _=require(_0x4598[1]);var util=require(_0x4598[2]);var moment=require(_0x4598[3]);var BPromise=require(_0x4598[4]);var db=require(_0x4598[6])[_0x4598[5]];var utils=require(_0x4598[7]);var logger=require(_0x4598[9])(_0x4598[8]);var jayson=require(_0x4598[10]);var client=jayson[_0x4598[12]][_0x4598[11]]({port:9002});function respondWithRpcPromise(_0xdb95xb,_0xdb95xc,_0xdb95xd){return  new BPromise(function(_0xdb95xe,_0xdb95xf){return client[_0x4598[25]](_0xdb95xb,_0xdb95xd)[_0x4598[24]](function(_0xdb95x11){logger[_0x4598[17]](_0x4598[13],_0xdb95xc,_0x4598[16]);logger[_0x4598[20]](_0x4598[18],_0xdb95xc,_0x4598[16],JSON[_0x4598[19]](_0xdb95x11));if(_0xdb95x11[_0x4598[14]]){if(_0xdb95x11[_0x4598[14]][_0x4598[21]]=== 500){logger[_0x4598[14]](_0x4598[13],_0xdb95xc,_0xdb95x11[_0x4598[14]][_0x4598[22]]);return _0xdb95xf(_0xdb95x11[_0x4598[14]][_0x4598[22]])};logger[_0x4598[14]](_0x4598[13],_0xdb95xc,_0xdb95x11[_0x4598[14]][_0x4598[22]]);return _0xdb95xe(_0xdb95x11[_0x4598[14]][_0x4598[22]])}else {logger[_0x4598[17]](_0x4598[13],_0xdb95xc,_0x4598[16]);_0xdb95xe(_0xdb95x11[_0x4598[23]][_0x4598[22]])}})[_0x4598[15]](function(_0xdb95x10){logger[_0x4598[14]](_0x4598[13],_0xdb95xc,_0xdb95x10);_0xdb95xf(_0xdb95x10)})})}
\ No newline at end of file
index 0b299df..f861e7a 100644 (file)
@@ -1 +1 @@
-var _0xa5cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa5cb[0];var multer=require(_0xa5cb[1]);var util=require(_0xa5cb[2]);var path=require(_0xa5cb[3]);var express=require(_0xa5cb[4]);var router=express.Router();var auth=require(_0xa5cb[5]);var config=require(_0xa5cb[6]);var controller=require(_0xa5cb[7]);router[_0xa5cb[11]](_0xa5cb[8],auth[_0xa5cb[9]](),controller[_0xa5cb[10]]);router[_0xa5cb[11]](_0xa5cb[12],auth[_0xa5cb[9]](),controller[_0xa5cb[13]]);router[_0xa5cb[15]](_0xa5cb[8],auth[_0xa5cb[9]](),controller[_0xa5cb[14]]);router[_0xa5cb[17]](_0xa5cb[12],auth[_0xa5cb[9]](),controller[_0xa5cb[16]]);router[_0xa5cb[19]](_0xa5cb[12],auth[_0xa5cb[9]](),controller[_0xa5cb[18]]);module[_0xa5cb[20]]= router
\ No newline at end of file
+var _0x3552=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3552[0];var multer=require(_0x3552[1]);var util=require(_0x3552[2]);var path=require(_0x3552[3]);var express=require(_0x3552[4]);var router=express.Router();var auth=require(_0x3552[5]);var config=require(_0x3552[6]);var controller=require(_0x3552[7]);router[_0x3552[11]](_0x3552[8],auth[_0x3552[9]](),controller[_0x3552[10]]);router[_0x3552[11]](_0x3552[12],auth[_0x3552[9]](),controller[_0x3552[13]]);router[_0x3552[15]](_0x3552[8],auth[_0x3552[9]](),controller[_0x3552[14]]);router[_0x3552[17]](_0x3552[12],auth[_0x3552[9]](),controller[_0x3552[16]]);router[_0x3552[19]](_0x3552[12],auth[_0x3552[9]](),controller[_0x3552[18]]);module[_0x3552[20]]= router
\ No newline at end of file
index 05b29cc..bfaabd6 100644 (file)
@@ -1 +1 @@
-var _0x5d88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x5d88[0];var Sequelize=require(_0x5d88[1]);module[_0x5d88[2]]= {type:{type:Sequelize.ENUM(_0x5d88[3],_0x5d88[4],_0x5d88[5],_0x5d88[6]),defaultValue:_0x5d88[3]},content:{type:Sequelize[_0x5d88[7]]},key:{type:Sequelize[_0x5d88[7]]},keyType:{type:Sequelize.ENUM(_0x5d88[3],_0x5d88[4],_0x5d88[5])},keyContent:{type:Sequelize[_0x5d88[7]]},idField:{type:Sequelize[_0x5d88[7]]},nameField:{type:Sequelize[_0x5d88[7]]},customField:{type:Sequelize[_0x5d88[8]],defaultValue:true},variableName:{type:Sequelize[_0x5d88[7]]}}
\ No newline at end of file
+var _0x216d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x216d[0];var Sequelize=require(_0x216d[1]);module[_0x216d[2]]= {type:{type:Sequelize.ENUM(_0x216d[3],_0x216d[4],_0x216d[5],_0x216d[6]),defaultValue:_0x216d[3]},content:{type:Sequelize[_0x216d[7]]},key:{type:Sequelize[_0x216d[7]]},keyType:{type:Sequelize.ENUM(_0x216d[3],_0x216d[4],_0x216d[5])},keyContent:{type:Sequelize[_0x216d[7]]},idField:{type:Sequelize[_0x216d[7]]},nameField:{type:Sequelize[_0x216d[7]]},customField:{type:Sequelize[_0x216d[8]],defaultValue:true},variableName:{type:Sequelize[_0x216d[7]]}}
\ No newline at end of file
index f0c01ab..29aa468 100644 (file)
@@ -1 +1 @@
-var _0x70ff=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x70ff[0];var jsonpatch=require(_0x70ff[1]);var rp=require(_0x70ff[2]);var moment=require(_0x70ff[3]);var BPromise=require(_0x70ff[4]);var util=require(_0x70ff[5]);var path=require(_0x70ff[6]);var sox=require(_0x70ff[7]);var ejs=require(_0x70ff[8]);var fs=require(_0x70ff[9]);var _=require(_0x70ff[10]);var squel=require(_0x70ff[11]);var crypto=require(_0x70ff[12]);var jsforce=require(_0x70ff[13]);var toCsv=require(_0x70ff[14]);var qs=require(_0x70ff[15]);var logger=require(_0x70ff[17])(_0x70ff[16]);var utils=require(_0x70ff[18]);var config=require(_0x70ff[19]);var db=require(_0x70ff[21])[_0x70ff[20]];function respondWithStatusCode(_0x4d9ex15,_0x4d9ex16,_0x4d9ex17){_0x4d9ex16= _0x4d9ex16|| 204;return function(_0x4d9ex18){if(_0x4d9ex18){logger[_0x70ff[24]](_0x70ff[22],_0x4d9ex17,_0x4d9ex16,_0x70ff[23]);logger[_0x70ff[26]](_0x70ff[25],_0x4d9ex17,_0x4d9ex16,_0x70ff[23]);return _0x4d9ex15[_0x70ff[27]](_0x4d9ex16)};return _0x4d9ex15[_0x70ff[29]](304)[_0x70ff[28]]()}}function respondWithResult(_0x4d9ex15,_0x4d9ex16,_0x4d9ex17){_0x4d9ex16= _0x4d9ex16|| 200;return function(_0x4d9ex18){if(_0x4d9ex18){logger[_0x70ff[24]](_0x70ff[22],_0x4d9ex17,_0x4d9ex16,_0x70ff[30]);logger[_0x70ff[26]](_0x70ff[25],_0x4d9ex17,_0x4d9ex16,_0x70ff[30],JSON[_0x70ff[31]](_0x4d9ex18));return _0x4d9ex15[_0x70ff[29]](_0x4d9ex16)[_0x70ff[32]](_0x4d9ex18)};return _0x4d9ex15[_0x70ff[29]](304)[_0x70ff[28]]()}}function respondWithFilteredResult(_0x4d9ex15,_0x4d9ex1b,_0x4d9ex17){return function(_0x4d9ex18){if(_0x4d9ex18){var _0x4d9ex1c=_0x4d9ex18[_0x70ff[33]],_0x4d9ex1d=_0x4d9ex1b[_0x70ff[34]],_0x4d9ex1e=_0x4d9ex1b[_0x70ff[34]]+ _0x4d9ex1b[_0x70ff[35]],_0x4d9ex16;if(_0x4d9ex1e>= _0x4d9ex1c){_0x4d9ex1e= _0x4d9ex1c;_0x4d9ex16= 200}else {_0x4d9ex16= 206};_0x4d9ex15[_0x70ff[29]](_0x4d9ex16);logger[_0x70ff[24]](_0x70ff[22],_0x4d9ex17,_0x4d9ex16,_0x70ff[36]);logger[_0x70ff[26]](_0x70ff[25],_0x4d9ex17,_0x4d9ex16,_0x70ff[30],JSON[_0x70ff[31]](_0x4d9ex18));return _0x4d9ex15[_0x70ff[40]](_0x70ff[37],_0x4d9ex1d+ _0x70ff[38]+ _0x4d9ex1e+ _0x70ff[39]+ _0x4d9ex1c)[_0x70ff[32]](_0x4d9ex18)};return null}}function patchUpdates(_0x4d9ex20){return function(_0x4d9ex18){try{jsonpatch[_0x70ff[41]](_0x4d9ex18,_0x4d9ex20,true)}catch(err){return BPromise[_0x70ff[42]](err)};return _0x4d9ex18[_0x70ff[43]]()}}function saveUpdates(_0x4d9ex22,_0x4d9ex16,_0x4d9ex17){return function(_0x4d9ex18){if(_0x4d9ex18){return _0x4d9ex18[_0x70ff[46]](_0x4d9ex22)[_0x70ff[45]](function(_0x4d9ex23){logger[_0x70ff[24]](_0x70ff[22],_0x4d9ex17,_0x4d9ex16,_0x70ff[44]);logger[_0x70ff[26]](_0x70ff[25],_0x4d9ex17,_0x4d9ex16,_0x70ff[44],JSON[_0x70ff[31]](_0x4d9ex18));return _0x4d9ex23})};return null}}function removeEntity(_0x4d9ex15,_0x4d9ex16,_0x4d9ex17){return function(_0x4d9ex18){if(_0x4d9ex18){return _0x4d9ex18[_0x70ff[48]]()[_0x70ff[45]](function(){logger[_0x70ff[24]](_0x70ff[22],_0x4d9ex17,_0x4d9ex16,_0x70ff[47]);logger[_0x70ff[26]](_0x70ff[25],_0x4d9ex17,_0x4d9ex16,_0x70ff[47],JSON[_0x70ff[31]](_0x4d9ex18));_0x4d9ex15[_0x70ff[29]](204)[_0x70ff[28]]()})}}}function handleEntityNotFound(_0x4d9ex15,_0x4d9ex16,_0x4d9ex17){return function(_0x4d9ex18){if(!_0x4d9ex18){logger[_0x70ff[50]](_0x70ff[22],_0x4d9ex17,404,_0x70ff[49]);_0x4d9ex15[_0x70ff[29]](404)[_0x70ff[28]]();return null};return _0x4d9ex18}}function handleError(_0x4d9ex15,_0x4d9ex16,_0x4d9ex17){_0x4d9ex16= _0x4d9ex16|| 500;return function(_0x4d9ex27){logger[_0x70ff[50]](_0x70ff[22],_0x4d9ex17,_0x4d9ex16,JSON[_0x70ff[31]](_0x4d9ex27));delete _0x4d9ex27[_0x70ff[51]];_0x4d9ex15[_0x70ff[29]](_0x4d9ex16)[_0x70ff[52]](_0x4d9ex27)}}exports[_0x70ff[53]]= function(_0x4d9ex28,_0x4d9ex15){var _0x4d9ex1b={},_0x4d9ex29={};_0x4d9ex29[_0x70ff[54]]= _[_0x70ff[57]](db[_0x70ff[56]][_0x70ff[55]]);_0x4d9ex29[_0x70ff[58]]= _[_0x70ff[57]](_0x4d9ex28[_0x70ff[58]]);_0x4d9ex29[_0x70ff[59]]= _[_0x70ff[60]](_0x4d9ex29[_0x70ff[54]],_0x4d9ex29[_0x70ff[58]]);_0x4d9ex1b[_0x70ff[61]]= _[_0x70ff[60]](_0x4d9ex29[_0x70ff[54]],qs[_0x70ff[62]](_0x4d9ex28[_0x70ff[58]][_0x70ff[62]]));_0x4d9ex1b[_0x70ff[61]]= (_0x4d9ex1b[_0x70ff[61]][_0x70ff[63]])?_0x4d9ex1b[_0x70ff[61]]:_0x4d9ex29[_0x70ff[54]];if(!_0x4d9ex28[_0x70ff[58]][_0x70ff[65]](_0x70ff[64])){_0x4d9ex1b[_0x70ff[35]]= qs[_0x70ff[35]](_0x4d9ex28[_0x70ff[58]][_0x70ff[35]]);_0x4d9ex1b[_0x70ff[34]]= qs[_0x70ff[34]](_0x4d9ex28[_0x70ff[58]][_0x70ff[34]])};_0x4d9ex1b[_0x70ff[66]]= qs[_0x70ff[67]](_0x4d9ex28[_0x70ff[58]][_0x70ff[67]]);_0x4d9ex1b[_0x70ff[68]]= qs[_0x70ff[59]](_[_0x70ff[69]](_0x4d9ex28[_0x70ff[58]],_0x4d9ex29[_0x70ff[59]]));if(_0x4d9ex28[_0x70ff[58]][_0x70ff[70]]){_0x4d9ex1b[_0x70ff[68]]= _[_0x70ff[73]](_0x4d9ex1b[_0x70ff[68]],{$or:_[_0x70ff[72]](_0x4d9ex1b[_0x70ff[61]],function(_0x4d9ex2a){var _0x4d9ex2b={};_0x4d9ex2b[_0x4d9ex2a]= {$like:_0x70ff[71]+ _0x4d9ex28[_0x70ff[58]][_0x70ff[70]]+ _0x70ff[71]};return _0x4d9ex2b})})};_0x4d9ex1b= _[_0x70ff[73]]({},_0x4d9ex1b,_0x4d9ex28[_0x70ff[74]]);return db[_0x70ff[56]][_0x70ff[76]](_0x4d9ex1b)[_0x70ff[45]](respondWithFilteredResult(_0x4d9ex15,_0x4d9ex1b,_0x70ff[53]))[_0x70ff[75]](handleError(_0x4d9ex15,null,_0x70ff[53]))};exports[_0x70ff[77]]= function(_0x4d9ex28,_0x4d9ex15){var _0x4d9ex1b={raw:true,where:{id:_0x4d9ex28[_0x70ff[79]][_0x70ff[78]]}},_0x4d9ex29={};_0x4d9ex29[_0x70ff[54]]= _[_0x70ff[57]](db[_0x70ff[56]][_0x70ff[55]]);_0x4d9ex29[_0x70ff[58]]= _[_0x70ff[57]](_0x4d9ex28[_0x70ff[58]]);_0x4d9ex29[_0x70ff[59]]= _[_0x70ff[60]](_0x4d9ex29[_0x70ff[54]],_0x4d9ex29[_0x70ff[58]]);_0x4d9ex1b[_0x70ff[61]]= _[_0x70ff[60]](_0x4d9ex29[_0x70ff[54]],qs[_0x70ff[62]](_0x4d9ex28[_0x70ff[58]][_0x70ff[62]]));_0x4d9ex1b[_0x70ff[61]]= (_0x4d9ex1b[_0x70ff[61]][_0x70ff[63]])?_0x4d9ex1b[_0x70ff[61]]:_0x4d9ex29[_0x70ff[54]];_0x4d9ex1b= _[_0x70ff[73]]({},_0x4d9ex1b,_0x4d9ex28[_0x70ff[74]]);return db[_0x70ff[56]][_0x70ff[80]](_0x4d9ex1b)[_0x70ff[45]](handleEntityNotFound(_0x4d9ex15,null,_0x70ff[77]))[_0x70ff[45]](respondWithResult(_0x4d9ex15,null,_0x70ff[77]))[_0x70ff[75]](handleError(_0x4d9ex15,null,_0x70ff[77]))};exports[_0x70ff[81]]= function(_0x4d9ex28,_0x4d9ex15){return db[_0x70ff[56]][_0x70ff[81]](_0x4d9ex28[_0x70ff[82]],{})[_0x70ff[45]](respondWithResult(_0x4d9ex15,201,_0x70ff[81]))[_0x70ff[75]](handleError(_0x4d9ex15,null,_0x70ff[81]))};exports[_0x70ff[46]]= function(_0x4d9ex28,_0x4d9ex15){if(_0x4d9ex28[_0x70ff[82]][_0x70ff[78]]){delete _0x4d9ex28[_0x70ff[82]][_0x70ff[78]]};return db[_0x70ff[56]][_0x70ff[80]]({where:{id:_0x4d9ex28[_0x70ff[79]][_0x70ff[78]]}})[_0x70ff[45]](handleEntityNotFound(_0x4d9ex15,null,_0x70ff[46]))[_0x70ff[45]](saveUpdates(_0x4d9ex28[_0x70ff[82]],null,_0x70ff[46]))[_0x70ff[45]](respondWithResult(_0x4d9ex15,null,_0x70ff[46]))[_0x70ff[75]](handleError(_0x4d9ex15,null,_0x70ff[46]))};exports[_0x70ff[48]]= function(_0x4d9ex28,_0x4d9ex15){return db[_0x70ff[56]][_0x70ff[80]]({where:{id:_0x4d9ex28[_0x70ff[79]][_0x70ff[78]]}})[_0x70ff[45]](handleEntityNotFound(_0x4d9ex15,null,_0x70ff[48]))[_0x70ff[45]](removeEntity(_0x4d9ex15,null,_0x70ff[48]))[_0x70ff[75]](handleError(_0x4d9ex15,null,_0x70ff[48]))}
\ No newline at end of file
+var _0x1d38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x1d38[0];var jsonpatch=require(_0x1d38[1]);var rp=require(_0x1d38[2]);var moment=require(_0x1d38[3]);var BPromise=require(_0x1d38[4]);var util=require(_0x1d38[5]);var path=require(_0x1d38[6]);var sox=require(_0x1d38[7]);var ejs=require(_0x1d38[8]);var fs=require(_0x1d38[9]);var _=require(_0x1d38[10]);var squel=require(_0x1d38[11]);var crypto=require(_0x1d38[12]);var jsforce=require(_0x1d38[13]);var toCsv=require(_0x1d38[14]);var qs=require(_0x1d38[15]);var logger=require(_0x1d38[17])(_0x1d38[16]);var utils=require(_0x1d38[18]);var config=require(_0x1d38[19]);var db=require(_0x1d38[21])[_0x1d38[20]];function respondWithStatusCode(_0xf0a8x15,_0xf0a8x16,_0xf0a8x17){_0xf0a8x16= _0xf0a8x16|| 204;return function(_0xf0a8x18){if(_0xf0a8x18){logger[_0x1d38[24]](_0x1d38[22],_0xf0a8x17,_0xf0a8x16,_0x1d38[23]);logger[_0x1d38[26]](_0x1d38[25],_0xf0a8x17,_0xf0a8x16,_0x1d38[23]);return _0xf0a8x15[_0x1d38[27]](_0xf0a8x16)};return _0xf0a8x15[_0x1d38[29]](304)[_0x1d38[28]]()}}function respondWithResult(_0xf0a8x15,_0xf0a8x16,_0xf0a8x17){_0xf0a8x16= _0xf0a8x16|| 200;return function(_0xf0a8x18){if(_0xf0a8x18){logger[_0x1d38[24]](_0x1d38[22],_0xf0a8x17,_0xf0a8x16,_0x1d38[30]);logger[_0x1d38[26]](_0x1d38[25],_0xf0a8x17,_0xf0a8x16,_0x1d38[30],JSON[_0x1d38[31]](_0xf0a8x18));return _0xf0a8x15[_0x1d38[29]](_0xf0a8x16)[_0x1d38[32]](_0xf0a8x18)};return _0xf0a8x15[_0x1d38[29]](304)[_0x1d38[28]]()}}function respondWithFilteredResult(_0xf0a8x15,_0xf0a8x1b,_0xf0a8x17){return function(_0xf0a8x18){if(_0xf0a8x18){var _0xf0a8x1c=_0xf0a8x18[_0x1d38[33]],_0xf0a8x1d=_0xf0a8x1b[_0x1d38[34]],_0xf0a8x1e=_0xf0a8x1b[_0x1d38[34]]+ _0xf0a8x1b[_0x1d38[35]],_0xf0a8x16;if(_0xf0a8x1e>= _0xf0a8x1c){_0xf0a8x1e= _0xf0a8x1c;_0xf0a8x16= 200}else {_0xf0a8x16= 206};_0xf0a8x15[_0x1d38[29]](_0xf0a8x16);logger[_0x1d38[24]](_0x1d38[22],_0xf0a8x17,_0xf0a8x16,_0x1d38[36]);logger[_0x1d38[26]](_0x1d38[25],_0xf0a8x17,_0xf0a8x16,_0x1d38[30],JSON[_0x1d38[31]](_0xf0a8x18));return _0xf0a8x15[_0x1d38[40]](_0x1d38[37],_0xf0a8x1d+ _0x1d38[38]+ _0xf0a8x1e+ _0x1d38[39]+ _0xf0a8x1c)[_0x1d38[32]](_0xf0a8x18)};return null}}function patchUpdates(_0xf0a8x20){return function(_0xf0a8x18){try{jsonpatch[_0x1d38[41]](_0xf0a8x18,_0xf0a8x20,true)}catch(err){return BPromise[_0x1d38[42]](err)};return _0xf0a8x18[_0x1d38[43]]()}}function saveUpdates(_0xf0a8x22,_0xf0a8x16,_0xf0a8x17){return function(_0xf0a8x18){if(_0xf0a8x18){return _0xf0a8x18[_0x1d38[46]](_0xf0a8x22)[_0x1d38[45]](function(_0xf0a8x23){logger[_0x1d38[24]](_0x1d38[22],_0xf0a8x17,_0xf0a8x16,_0x1d38[44]);logger[_0x1d38[26]](_0x1d38[25],_0xf0a8x17,_0xf0a8x16,_0x1d38[44],JSON[_0x1d38[31]](_0xf0a8x18));return _0xf0a8x23})};return null}}function removeEntity(_0xf0a8x15,_0xf0a8x16,_0xf0a8x17){return function(_0xf0a8x18){if(_0xf0a8x18){return _0xf0a8x18[_0x1d38[48]]()[_0x1d38[45]](function(){logger[_0x1d38[24]](_0x1d38[22],_0xf0a8x17,_0xf0a8x16,_0x1d38[47]);logger[_0x1d38[26]](_0x1d38[25],_0xf0a8x17,_0xf0a8x16,_0x1d38[47],JSON[_0x1d38[31]](_0xf0a8x18));_0xf0a8x15[_0x1d38[29]](204)[_0x1d38[28]]()})}}}function handleEntityNotFound(_0xf0a8x15,_0xf0a8x16,_0xf0a8x17){return function(_0xf0a8x18){if(!_0xf0a8x18){logger[_0x1d38[50]](_0x1d38[22],_0xf0a8x17,404,_0x1d38[49]);_0xf0a8x15[_0x1d38[29]](404)[_0x1d38[28]]();return null};return _0xf0a8x18}}function handleError(_0xf0a8x15,_0xf0a8x16,_0xf0a8x17){_0xf0a8x16= _0xf0a8x16|| 500;return function(_0xf0a8x27){logger[_0x1d38[50]](_0x1d38[22],_0xf0a8x17,_0xf0a8x16,JSON[_0x1d38[31]](_0xf0a8x27));delete _0xf0a8x27[_0x1d38[51]];_0xf0a8x15[_0x1d38[29]](_0xf0a8x16)[_0x1d38[52]](_0xf0a8x27)}}exports[_0x1d38[53]]= function(_0xf0a8x28,_0xf0a8x15){var _0xf0a8x1b={},_0xf0a8x29={};_0xf0a8x29[_0x1d38[54]]= _[_0x1d38[57]](db[_0x1d38[56]][_0x1d38[55]]);_0xf0a8x29[_0x1d38[58]]= _[_0x1d38[57]](_0xf0a8x28[_0x1d38[58]]);_0xf0a8x29[_0x1d38[59]]= _[_0x1d38[60]](_0xf0a8x29[_0x1d38[54]],_0xf0a8x29[_0x1d38[58]]);_0xf0a8x1b[_0x1d38[61]]= _[_0x1d38[60]](_0xf0a8x29[_0x1d38[54]],qs[_0x1d38[62]](_0xf0a8x28[_0x1d38[58]][_0x1d38[62]]));_0xf0a8x1b[_0x1d38[61]]= (_0xf0a8x1b[_0x1d38[61]][_0x1d38[63]])?_0xf0a8x1b[_0x1d38[61]]:_0xf0a8x29[_0x1d38[54]];if(!_0xf0a8x28[_0x1d38[58]][_0x1d38[65]](_0x1d38[64])){_0xf0a8x1b[_0x1d38[35]]= qs[_0x1d38[35]](_0xf0a8x28[_0x1d38[58]][_0x1d38[35]]);_0xf0a8x1b[_0x1d38[34]]= qs[_0x1d38[34]](_0xf0a8x28[_0x1d38[58]][_0x1d38[34]])};_0xf0a8x1b[_0x1d38[66]]= qs[_0x1d38[67]](_0xf0a8x28[_0x1d38[58]][_0x1d38[67]]);_0xf0a8x1b[_0x1d38[68]]= qs[_0x1d38[59]](_[_0x1d38[69]](_0xf0a8x28[_0x1d38[58]],_0xf0a8x29[_0x1d38[59]]));if(_0xf0a8x28[_0x1d38[58]][_0x1d38[70]]){_0xf0a8x1b[_0x1d38[68]]= _[_0x1d38[73]](_0xf0a8x1b[_0x1d38[68]],{$or:_[_0x1d38[72]](_0xf0a8x1b[_0x1d38[61]],function(_0xf0a8x2a){var _0xf0a8x2b={};_0xf0a8x2b[_0xf0a8x2a]= {$like:_0x1d38[71]+ _0xf0a8x28[_0x1d38[58]][_0x1d38[70]]+ _0x1d38[71]};return _0xf0a8x2b})})};_0xf0a8x1b= _[_0x1d38[73]]({},_0xf0a8x1b,_0xf0a8x28[_0x1d38[74]]);return db[_0x1d38[56]][_0x1d38[76]](_0xf0a8x1b)[_0x1d38[45]](respondWithFilteredResult(_0xf0a8x15,_0xf0a8x1b,_0x1d38[53]))[_0x1d38[75]](handleError(_0xf0a8x15,null,_0x1d38[53]))};exports[_0x1d38[77]]= function(_0xf0a8x28,_0xf0a8x15){var _0xf0a8x1b={raw:true,where:{id:_0xf0a8x28[_0x1d38[79]][_0x1d38[78]]}},_0xf0a8x29={};_0xf0a8x29[_0x1d38[54]]= _[_0x1d38[57]](db[_0x1d38[56]][_0x1d38[55]]);_0xf0a8x29[_0x1d38[58]]= _[_0x1d38[57]](_0xf0a8x28[_0x1d38[58]]);_0xf0a8x29[_0x1d38[59]]= _[_0x1d38[60]](_0xf0a8x29[_0x1d38[54]],_0xf0a8x29[_0x1d38[58]]);_0xf0a8x1b[_0x1d38[61]]= _[_0x1d38[60]](_0xf0a8x29[_0x1d38[54]],qs[_0x1d38[62]](_0xf0a8x28[_0x1d38[58]][_0x1d38[62]]));_0xf0a8x1b[_0x1d38[61]]= (_0xf0a8x1b[_0x1d38[61]][_0x1d38[63]])?_0xf0a8x1b[_0x1d38[61]]:_0xf0a8x29[_0x1d38[54]];_0xf0a8x1b= _[_0x1d38[73]]({},_0xf0a8x1b,_0xf0a8x28[_0x1d38[74]]);return db[_0x1d38[56]][_0x1d38[80]](_0xf0a8x1b)[_0x1d38[45]](handleEntityNotFound(_0xf0a8x15,null,_0x1d38[77]))[_0x1d38[45]](respondWithResult(_0xf0a8x15,null,_0x1d38[77]))[_0x1d38[75]](handleError(_0xf0a8x15,null,_0x1d38[77]))};exports[_0x1d38[81]]= function(_0xf0a8x28,_0xf0a8x15){return db[_0x1d38[56]][_0x1d38[81]](_0xf0a8x28[_0x1d38[82]],{})[_0x1d38[45]](respondWithResult(_0xf0a8x15,201,_0x1d38[81]))[_0x1d38[75]](handleError(_0xf0a8x15,null,_0x1d38[81]))};exports[_0x1d38[46]]= function(_0xf0a8x28,_0xf0a8x15){if(_0xf0a8x28[_0x1d38[82]][_0x1d38[78]]){delete _0xf0a8x28[_0x1d38[82]][_0x1d38[78]]};return db[_0x1d38[56]][_0x1d38[80]]({where:{id:_0xf0a8x28[_0x1d38[79]][_0x1d38[78]]}})[_0x1d38[45]](handleEntityNotFound(_0xf0a8x15,null,_0x1d38[46]))[_0x1d38[45]](saveUpdates(_0xf0a8x28[_0x1d38[82]],null,_0x1d38[46]))[_0x1d38[45]](respondWithResult(_0xf0a8x15,null,_0x1d38[46]))[_0x1d38[75]](handleError(_0xf0a8x15,null,_0x1d38[46]))};exports[_0x1d38[48]]= function(_0xf0a8x28,_0xf0a8x15){return db[_0x1d38[56]][_0x1d38[80]]({where:{id:_0xf0a8x28[_0x1d38[79]][_0x1d38[78]]}})[_0x1d38[45]](handleEntityNotFound(_0xf0a8x15,null,_0x1d38[48]))[_0x1d38[45]](removeEntity(_0xf0a8x15,null,_0x1d38[48]))[_0x1d38[75]](handleError(_0xf0a8x15,null,_0x1d38[48]))}
\ No newline at end of file
index d8ece03..29796c6 100644 (file)
@@ -1 +1 @@
-var _0x4fd8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x4fd8[0];var _=require(_0x4fd8[1]);var util=require(_0x4fd8[2]);var logger=require(_0x4fd8[4])(_0x4fd8[3]);var attributes=require(_0x4fd8[5]);module[_0x4fd8[6]]= function(_0x5d55x5,_0x5d55x6){return _0x5d55x5[_0x4fd8[9]](_0x4fd8[7],attributes,{tableName:_0x4fd8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7f64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x7f64[0];var _=require(_0x7f64[1]);var util=require(_0x7f64[2]);var logger=require(_0x7f64[4])(_0x7f64[3]);var attributes=require(_0x7f64[5]);module[_0x7f64[6]]= function(_0x43fbx5,_0x43fbx6){return _0x43fbx5[_0x7f64[9]](_0x7f64[7],attributes,{tableName:_0x7f64[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 220ab09..b6e4489 100644 (file)
@@ -1 +1 @@
-var _0xa6ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa6ac[0];var _=require(_0xa6ac[1]);var util=require(_0xa6ac[2]);var moment=require(_0xa6ac[3]);var BPromise=require(_0xa6ac[4]);var db=require(_0xa6ac[6])[_0xa6ac[5]];var utils=require(_0xa6ac[7]);var logger=require(_0xa6ac[9])(_0xa6ac[8]);var jayson=require(_0xa6ac[10]);var client=jayson[_0xa6ac[12]][_0xa6ac[11]]({port:9002});function respondWithRpcPromise(_0xa02axb,_0xa02axc,_0xa02axd){return  new BPromise(function(_0xa02axe,_0xa02axf){return client[_0xa6ac[25]](_0xa02axb,_0xa02axd)[_0xa6ac[24]](function(_0xa02ax11){logger[_0xa6ac[17]](_0xa6ac[13],_0xa02axc,_0xa6ac[16]);logger[_0xa6ac[20]](_0xa6ac[18],_0xa02axc,_0xa6ac[16],JSON[_0xa6ac[19]](_0xa02ax11));if(_0xa02ax11[_0xa6ac[14]]){if(_0xa02ax11[_0xa6ac[14]][_0xa6ac[21]]=== 500){logger[_0xa6ac[14]](_0xa6ac[13],_0xa02axc,_0xa02ax11[_0xa6ac[14]][_0xa6ac[22]]);return _0xa02axf(_0xa02ax11[_0xa6ac[14]][_0xa6ac[22]])};logger[_0xa6ac[14]](_0xa6ac[13],_0xa02axc,_0xa02ax11[_0xa6ac[14]][_0xa6ac[22]]);return _0xa02axe(_0xa02ax11[_0xa6ac[14]][_0xa6ac[22]])}else {logger[_0xa6ac[17]](_0xa6ac[13],_0xa02axc,_0xa6ac[16]);_0xa02axe(_0xa02ax11[_0xa6ac[23]][_0xa6ac[22]])}})[_0xa6ac[15]](function(_0xa02ax10){logger[_0xa6ac[14]](_0xa6ac[13],_0xa02axc,_0xa02ax10);_0xa02axf(_0xa02ax10)})})}
\ No newline at end of file
+var _0x86ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x86ce[0];var _=require(_0x86ce[1]);var util=require(_0x86ce[2]);var moment=require(_0x86ce[3]);var BPromise=require(_0x86ce[4]);var db=require(_0x86ce[6])[_0x86ce[5]];var utils=require(_0x86ce[7]);var logger=require(_0x86ce[9])(_0x86ce[8]);var jayson=require(_0x86ce[10]);var client=jayson[_0x86ce[12]][_0x86ce[11]]({port:9002});function respondWithRpcPromise(_0xb62dxb,_0xb62dxc,_0xb62dxd){return  new BPromise(function(_0xb62dxe,_0xb62dxf){return client[_0x86ce[25]](_0xb62dxb,_0xb62dxd)[_0x86ce[24]](function(_0xb62dx11){logger[_0x86ce[17]](_0x86ce[13],_0xb62dxc,_0x86ce[16]);logger[_0x86ce[20]](_0x86ce[18],_0xb62dxc,_0x86ce[16],JSON[_0x86ce[19]](_0xb62dx11));if(_0xb62dx11[_0x86ce[14]]){if(_0xb62dx11[_0x86ce[14]][_0x86ce[21]]=== 500){logger[_0x86ce[14]](_0x86ce[13],_0xb62dxc,_0xb62dx11[_0x86ce[14]][_0x86ce[22]]);return _0xb62dxf(_0xb62dx11[_0x86ce[14]][_0x86ce[22]])};logger[_0x86ce[14]](_0x86ce[13],_0xb62dxc,_0xb62dx11[_0x86ce[14]][_0x86ce[22]]);return _0xb62dxe(_0xb62dx11[_0x86ce[14]][_0x86ce[22]])}else {logger[_0x86ce[17]](_0x86ce[13],_0xb62dxc,_0x86ce[16]);_0xb62dxe(_0xb62dx11[_0x86ce[23]][_0x86ce[22]])}})[_0x86ce[15]](function(_0xb62dx10){logger[_0x86ce[14]](_0x86ce[13],_0xb62dxc,_0xb62dx10);_0xb62dxf(_0xb62dx10)})})}
\ No newline at end of file
index 9a04b78..059ec4b 100644 (file)
@@ -1 +1 @@
-var _0xc626=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc626[0];var multer=require(_0xc626[1]);var util=require(_0xc626[2]);var path=require(_0xc626[3]);var express=require(_0xc626[4]);var router=express.Router();var auth=require(_0xc626[5]);var config=require(_0xc626[6]);var controller=require(_0xc626[7]);router[_0xc626[11]](_0xc626[8],auth[_0xc626[9]](),controller[_0xc626[10]]);router[_0xc626[11]](_0xc626[12],auth[_0xc626[9]](),controller[_0xc626[13]]);router[_0xc626[11]](_0xc626[14],auth[_0xc626[9]](),controller[_0xc626[15]]);router[_0xc626[11]](_0xc626[16],auth[_0xc626[9]](),controller[_0xc626[17]]);router[_0xc626[19]](_0xc626[8],auth[_0xc626[9]](),controller[_0xc626[18]]);router[_0xc626[19]](_0xc626[14],auth[_0xc626[9]](),controller[_0xc626[20]]);router[_0xc626[22]](_0xc626[12],auth[_0xc626[9]](),controller[_0xc626[21]]);router[_0xc626[24]](_0xc626[12],auth[_0xc626[9]](),controller[_0xc626[23]]);module[_0xc626[25]]= router
\ No newline at end of file
+var _0xd369=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd369[0];var multer=require(_0xd369[1]);var util=require(_0xd369[2]);var path=require(_0xd369[3]);var express=require(_0xd369[4]);var router=express.Router();var auth=require(_0xd369[5]);var config=require(_0xd369[6]);var controller=require(_0xd369[7]);router[_0xd369[11]](_0xd369[8],auth[_0xd369[9]](),controller[_0xd369[10]]);router[_0xd369[11]](_0xd369[12],auth[_0xd369[9]](),controller[_0xd369[13]]);router[_0xd369[11]](_0xd369[14],auth[_0xd369[9]](),controller[_0xd369[15]]);router[_0xd369[11]](_0xd369[16],auth[_0xd369[9]](),controller[_0xd369[17]]);router[_0xd369[19]](_0xd369[8],auth[_0xd369[9]](),controller[_0xd369[18]]);router[_0xd369[19]](_0xd369[14],auth[_0xd369[9]](),controller[_0xd369[20]]);router[_0xd369[22]](_0xd369[12],auth[_0xd369[9]](),controller[_0xd369[21]]);router[_0xd369[24]](_0xd369[12],auth[_0xd369[9]](),controller[_0xd369[23]]);module[_0xd369[25]]= router
\ No newline at end of file
index 8a58c04..ecda6d8 100644 (file)
@@ -1 +1 @@
-var _0x911c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E"];_0x911c[0];var Sequelize=require(_0x911c[1]);module[_0x911c[2]]= {name:{type:Sequelize[_0x911c[3]]},description:{type:Sequelize[_0x911c[3]]},username:{type:Sequelize[_0x911c[3]],unique:_0x911c[4]},password:{type:Sequelize[_0x911c[3]]},token:{type:Sequelize[_0x911c[3]]},remoteUri:{type:Sequelize[_0x911c[3]],unique:_0x911c[5]},authType:{type:Sequelize.ENUM(_0x911c[6],_0x911c[7]),defaultValue:_0x911c[6]},serverUrl:{type:Sequelize[_0x911c[3]]}}
\ No newline at end of file
+var _0xaa4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E"];_0xaa4d[0];var Sequelize=require(_0xaa4d[1]);module[_0xaa4d[2]]= {name:{type:Sequelize[_0xaa4d[3]]},description:{type:Sequelize[_0xaa4d[3]]},username:{type:Sequelize[_0xaa4d[3]],unique:_0xaa4d[4]},password:{type:Sequelize[_0xaa4d[3]]},token:{type:Sequelize[_0xaa4d[3]]},remoteUri:{type:Sequelize[_0xaa4d[3]],unique:_0xaa4d[5]},authType:{type:Sequelize.ENUM(_0xaa4d[6],_0xaa4d[7]),defaultValue:_0xaa4d[6]},serverUrl:{type:Sequelize[_0xaa4d[3]]}}
\ No newline at end of file
index 4fc1000..7fa09b5 100644 (file)
@@ -1 +1 @@
-var _0x4bc6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73","\x74\x69\x74\x6C\x65","\x73\x79\x73\x74\x65\x6D\x5F\x66\x69\x65\x6C\x64\x5F\x6F\x70\x74\x69\x6F\x6E\x73","\x47\x45\x54","\x25\x73\x25\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x66\x6F\x72\x6D\x61\x74","\x68\x65\x61\x64\x65\x72\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x25\x73\x3A\x25\x73","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x25\x73\x2F\x74\x6F\x6B\x65\x6E\x3A\x25\x73","\x74\x6F\x6B\x65\x6E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x69\x6F\x6E\x20\x74\x79\x70\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x75\x74\x68\x54\x79\x70\x65"];_0x4bc6[0];var jsonpatch=require(_0x4bc6[1]);var rp=require(_0x4bc6[2]);var moment=require(_0x4bc6[3]);var BPromise=require(_0x4bc6[4]);var util=require(_0x4bc6[5]);var path=require(_0x4bc6[6]);var sox=require(_0x4bc6[7]);var ejs=require(_0x4bc6[8]);var fs=require(_0x4bc6[9]);var _=require(_0x4bc6[10]);var squel=require(_0x4bc6[11]);var crypto=require(_0x4bc6[12]);var jsforce=require(_0x4bc6[13]);var toCsv=require(_0x4bc6[14]);var qs=require(_0x4bc6[15]);var logger=require(_0x4bc6[17])(_0x4bc6[16]);var utils=require(_0x4bc6[18]);var config=require(_0x4bc6[19]);var db=require(_0x4bc6[21])[_0x4bc6[20]];var integrations=require(_0x4bc6[22]);var jayson=require(_0x4bc6[23]);var client=jayson[_0x4bc6[25]][_0x4bc6[24]]({port:9002});function respondWithRpcPromise(_0x81fcx18,_0x81fcx19,_0x81fcx1a){return  new BPromise(function(_0x81fcx1b,_0x81fcx1c){return client[_0x4bc6[38]](_0x81fcx18,_0x81fcx1a)[_0x4bc6[37]](function(_0x81fcx1e){logger[_0x4bc6[30]](_0x4bc6[26],_0x81fcx19,_0x4bc6[29]);logger[_0x4bc6[33]](_0x4bc6[31],_0x81fcx19,_0x4bc6[29],JSON[_0x4bc6[32]](_0x81fcx1e));if(_0x81fcx1e[_0x4bc6[27]]){if(_0x81fcx1e[_0x4bc6[27]][_0x4bc6[34]]=== 500){logger[_0x4bc6[27]](_0x4bc6[26],_0x81fcx19,_0x81fcx1e[_0x4bc6[27]][_0x4bc6[35]]);return _0x81fcx1c(_0x81fcx1e[_0x4bc6[27]][_0x4bc6[35]])};logger[_0x4bc6[27]](_0x4bc6[26],_0x81fcx19,_0x81fcx1e[_0x4bc6[27]][_0x4bc6[35]]);return _0x81fcx1b(_0x81fcx1e[_0x4bc6[27]][_0x4bc6[35]])}else {logger[_0x4bc6[30]](_0x4bc6[26],_0x81fcx19,_0x4bc6[29]);_0x81fcx1b(_0x81fcx1e[_0x4bc6[36]][_0x4bc6[35]])}})[_0x4bc6[28]](function(_0x81fcx1d){logger[_0x4bc6[27]](_0x4bc6[26],_0x81fcx19,_0x81fcx1d);_0x81fcx1c(_0x81fcx1d)})})}function respondWithStatusCode(_0x81fcx1e,_0x81fcx20,_0x81fcx19){_0x81fcx20= _0x81fcx20|| 204;return function(_0x81fcx21){if(_0x81fcx21){logger[_0x4bc6[30]](_0x4bc6[31],_0x81fcx19,_0x81fcx20,_0x4bc6[39]);logger[_0x4bc6[33]](_0x4bc6[40],_0x81fcx19,_0x81fcx20,_0x4bc6[39]);return _0x81fcx1e[_0x4bc6[41]](_0x81fcx20)};return _0x81fcx1e[_0x4bc6[43]](304)[_0x4bc6[42]]()}}function respondWithResult(_0x81fcx1e,_0x81fcx20,_0x81fcx19){_0x81fcx20= _0x81fcx20|| 200;return function(_0x81fcx21){if(_0x81fcx21){logger[_0x4bc6[30]](_0x4bc6[31],_0x81fcx19,_0x81fcx20,_0x4bc6[44]);logger[_0x4bc6[33]](_0x4bc6[40],_0x81fcx19,_0x81fcx20,_0x4bc6[44],JSON[_0x4bc6[32]](_0x81fcx21));return _0x81fcx1e[_0x4bc6[43]](_0x81fcx20)[_0x4bc6[45]](_0x81fcx21)};return _0x81fcx1e[_0x4bc6[43]](304)[_0x4bc6[42]]()}}function respondWithFilteredResult(_0x81fcx1e,_0x81fcx24,_0x81fcx19){return function(_0x81fcx21){if(_0x81fcx21){var _0x81fcx25=_0x81fcx21[_0x4bc6[46]],_0x81fcx26=_0x81fcx24[_0x4bc6[47]],_0x81fcx27=_0x81fcx24[_0x4bc6[47]]+ _0x81fcx24[_0x4bc6[48]],_0x81fcx20;if(_0x81fcx27>= _0x81fcx25){_0x81fcx27= _0x81fcx25;_0x81fcx20= 200}else {_0x81fcx20= 206};_0x81fcx1e[_0x4bc6[43]](_0x81fcx20);logger[_0x4bc6[30]](_0x4bc6[31],_0x81fcx19,_0x81fcx20,_0x4bc6[49]);logger[_0x4bc6[33]](_0x4bc6[40],_0x81fcx19,_0x81fcx20,_0x4bc6[44],JSON[_0x4bc6[32]](_0x81fcx21));return _0x81fcx1e[_0x4bc6[53]](_0x4bc6[50],_0x81fcx26+ _0x4bc6[51]+ _0x81fcx27+ _0x4bc6[52]+ _0x81fcx25)[_0x4bc6[45]](_0x81fcx21)};return null}}function patchUpdates(_0x81fcx29){return function(_0x81fcx21){try{jsonpatch[_0x4bc6[54]](_0x81fcx21,_0x81fcx29,true)}catch(err){return BPromise[_0x4bc6[55]](err)};return _0x81fcx21[_0x4bc6[56]]()}}function saveUpdates(_0x81fcx2b,_0x81fcx20,_0x81fcx19){return function(_0x81fcx21){if(_0x81fcx21){return _0x81fcx21[_0x4bc6[58]](_0x81fcx2b)[_0x4bc6[37]](function(_0x81fcx2c){logger[_0x4bc6[30]](_0x4bc6[31],_0x81fcx19,_0x81fcx20,_0x4bc6[57]);logger[_0x4bc6[33]](_0x4bc6[40],_0x81fcx19,_0x81fcx20,_0x4bc6[57],JSON[_0x4bc6[32]](_0x81fcx21));return _0x81fcx2c})};return null}}function removeEntity(_0x81fcx1e,_0x81fcx20,_0x81fcx19){return function(_0x81fcx21){if(_0x81fcx21){return _0x81fcx21[_0x4bc6[60]]()[_0x4bc6[37]](function(){logger[_0x4bc6[30]](_0x4bc6[31],_0x81fcx19,_0x81fcx20,_0x4bc6[59]);logger[_0x4bc6[33]](_0x4bc6[40],_0x81fcx19,_0x81fcx20,_0x4bc6[59],JSON[_0x4bc6[32]](_0x81fcx21));_0x81fcx1e[_0x4bc6[43]](204)[_0x4bc6[42]]()})}}}function handleEntityNotFound(_0x81fcx1e,_0x81fcx20,_0x81fcx19){return function(_0x81fcx21){if(!_0x81fcx21){logger[_0x4bc6[27]](_0x4bc6[31],_0x81fcx19,404,_0x4bc6[61]);_0x81fcx1e[_0x4bc6[43]](404)[_0x4bc6[42]]();return null};return _0x81fcx21}}function handleError(_0x81fcx1e,_0x81fcx20,_0x81fcx19){_0x81fcx20= _0x81fcx20|| 500;return function(_0x81fcx1d){logger[_0x4bc6[27]](_0x4bc6[31],_0x81fcx19,_0x81fcx20,JSON[_0x4bc6[32]](_0x81fcx1d));delete _0x81fcx1d[_0x4bc6[62]];_0x81fcx1e[_0x4bc6[43]](_0x81fcx20)[_0x4bc6[63]](_0x81fcx1d)}}exports[_0x4bc6[64]]= function(_0x81fcx1a,_0x81fcx1e){var _0x81fcx24={},_0x81fcx30={};_0x81fcx30[_0x4bc6[65]]= _[_0x4bc6[68]](db[_0x4bc6[67]][_0x4bc6[66]]);_0x81fcx30[_0x4bc6[69]]= _[_0x4bc6[68]](_0x81fcx1a[_0x4bc6[69]]);_0x81fcx30[_0x4bc6[70]]= _[_0x4bc6[71]](_0x81fcx30[_0x4bc6[65]],_0x81fcx30[_0x4bc6[69]]);_0x81fcx24[_0x4bc6[72]]= _[_0x4bc6[71]](_0x81fcx30[_0x4bc6[65]],qs[_0x4bc6[73]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[73]]));_0x81fcx24[_0x4bc6[72]]= (_0x81fcx24[_0x4bc6[72]][_0x4bc6[74]])?_0x81fcx24[_0x4bc6[72]]:_0x81fcx30[_0x4bc6[65]];if(!_0x81fcx1a[_0x4bc6[69]][_0x4bc6[76]](_0x4bc6[75])){_0x81fcx24[_0x4bc6[48]]= qs[_0x4bc6[48]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[48]]);_0x81fcx24[_0x4bc6[47]]= qs[_0x4bc6[47]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[47]])};_0x81fcx24[_0x4bc6[77]]= qs[_0x4bc6[78]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[78]]);_0x81fcx24[_0x4bc6[79]]= qs[_0x4bc6[70]](_[_0x4bc6[80]](_0x81fcx1a[_0x4bc6[69]],_0x81fcx30[_0x4bc6[70]]));if(_0x81fcx1a[_0x4bc6[69]][_0x4bc6[81]]){_0x81fcx24[_0x4bc6[79]]= _[_0x4bc6[84]](_0x81fcx24[_0x4bc6[79]],{$or:_[_0x4bc6[83]](_0x81fcx24[_0x4bc6[72]],function(_0x81fcx31){var _0x81fcx32={};_0x81fcx32[_0x81fcx31]= {$like:_0x4bc6[82]+ _0x81fcx1a[_0x4bc6[69]][_0x4bc6[81]]+ _0x4bc6[82]};return _0x81fcx32})})};_0x81fcx24= _[_0x4bc6[84]]({},_0x81fcx24,_0x81fcx1a[_0x4bc6[85]]);return db[_0x4bc6[67]][_0x4bc6[86]](_0x81fcx24)[_0x4bc6[37]](respondWithFilteredResult(_0x81fcx1e,_0x81fcx24,_0x4bc6[64]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[64]))};exports[_0x4bc6[87]]= function(_0x81fcx1a,_0x81fcx1e){var _0x81fcx24={raw:false,where:{id:_0x81fcx1a[_0x4bc6[89]][_0x4bc6[88]]}},_0x81fcx30={};_0x81fcx30[_0x4bc6[65]]= _[_0x4bc6[68]](db[_0x4bc6[67]][_0x4bc6[66]]);_0x81fcx30[_0x4bc6[69]]= _[_0x4bc6[68]](_0x81fcx1a[_0x4bc6[69]]);_0x81fcx30[_0x4bc6[70]]= _[_0x4bc6[71]](_0x81fcx30[_0x4bc6[65]],_0x81fcx30[_0x4bc6[69]]);_0x81fcx24[_0x4bc6[72]]= _[_0x4bc6[71]](_0x81fcx30[_0x4bc6[65]],qs[_0x4bc6[73]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[73]]));_0x81fcx24[_0x4bc6[72]]= (_0x81fcx24[_0x4bc6[72]][_0x4bc6[74]])?_0x81fcx24[_0x4bc6[72]]:_0x81fcx30[_0x4bc6[65]];_0x81fcx24= _[_0x4bc6[84]]({},_0x81fcx24,_0x81fcx1a[_0x4bc6[85]]);return db[_0x4bc6[67]][_0x4bc6[90]](_0x81fcx24)[_0x4bc6[37]](handleEntityNotFound(_0x81fcx1e,null,_0x4bc6[87]))[_0x4bc6[37]](respondWithResult(_0x81fcx1e,null,_0x4bc6[87]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[87]))};exports[_0x4bc6[91]]= function(_0x81fcx1a,_0x81fcx1e){return db[_0x4bc6[67]][_0x4bc6[91]](_0x81fcx1a[_0x4bc6[92]],{})[_0x4bc6[37]](respondWithResult(_0x81fcx1e,201,_0x4bc6[91]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[91]))};exports[_0x4bc6[58]]= function(_0x81fcx1a,_0x81fcx1e){if(_0x81fcx1a[_0x4bc6[92]][_0x4bc6[88]]){delete _0x81fcx1a[_0x4bc6[92]][_0x4bc6[88]]};return db[_0x4bc6[67]][_0x4bc6[90]]({where:{id:_0x81fcx1a[_0x4bc6[89]][_0x4bc6[88]]}})[_0x4bc6[37]](handleEntityNotFound(_0x81fcx1e,null,_0x4bc6[58]))[_0x4bc6[37]](saveUpdates(_0x81fcx1a[_0x4bc6[92]],null,_0x4bc6[58]))[_0x4bc6[37]](respondWithResult(_0x81fcx1e,null,_0x4bc6[58]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[58]))};exports[_0x4bc6[60]]= function(_0x81fcx1a,_0x81fcx1e){return db[_0x4bc6[67]][_0x4bc6[90]]({where:{id:_0x81fcx1a[_0x4bc6[89]][_0x4bc6[88]]}})[_0x4bc6[37]](handleEntityNotFound(_0x81fcx1e,null,_0x4bc6[60]))[_0x4bc6[37]](removeEntity(_0x81fcx1e,null,_0x4bc6[60]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[60]))};exports[_0x4bc6[93]]= function(_0x81fcx1a,_0x81fcx21,_0x81fcx33){var _0x81fcx24={};var _0x81fcx30={};var _0x81fcx34;var _0x81fcx25;return db[_0x4bc6[67]][_0x4bc6[95]]({where:{id:_0x81fcx1a[_0x4bc6[89]][_0x4bc6[88]]}})[_0x4bc6[37]](handleEntityNotFound(_0x81fcx21,null,_0x4bc6[93]))[_0x4bc6[37]](function(_0x81fcx21){if(_0x81fcx21){_0x81fcx34= _0x81fcx21;_0x81fcx30[_0x4bc6[65]]= _[_0x4bc6[68]](db[_0x4bc6[94]][_0x4bc6[66]]);_0x81fcx30[_0x4bc6[69]]= _[_0x4bc6[68]](_0x81fcx1a[_0x4bc6[69]]);_0x81fcx30[_0x4bc6[70]]= _[_0x4bc6[71]](_0x81fcx30[_0x4bc6[65]],_0x81fcx30[_0x4bc6[69]]);_0x81fcx24[_0x4bc6[72]]= _[_0x4bc6[71]](_0x81fcx30[_0x4bc6[65]],qs[_0x4bc6[73]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[73]]));_0x81fcx24[_0x4bc6[72]]= (_0x81fcx24[_0x4bc6[72]][_0x4bc6[74]])?_0x81fcx24[_0x4bc6[72]]:_0x81fcx30[_0x4bc6[65]];_0x81fcx24[_0x4bc6[77]]= qs[_0x4bc6[78]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[78]]);_0x81fcx24[_0x4bc6[79]]= qs[_0x4bc6[70]](_[_0x4bc6[80]](_0x81fcx1a[_0x4bc6[69]],_0x81fcx30[_0x4bc6[70]]));if(_0x81fcx1a[_0x4bc6[69]][_0x4bc6[81]]){_0x81fcx24[_0x4bc6[79]]= _[_0x4bc6[84]](_0x81fcx24[_0x4bc6[79]],{$or:_[_0x4bc6[83]](_0x81fcx24[_0x4bc6[72]],function(_0x81fcx31){var _0x81fcx32={};_0x81fcx32[_0x81fcx31]= {$like:_0x4bc6[82]+ _0x81fcx1a[_0x4bc6[69]][_0x4bc6[81]]+ _0x4bc6[82]};return _0x81fcx32})})};_0x81fcx24= _[_0x4bc6[84]]({},_0x81fcx24,_0x81fcx1a[_0x4bc6[85]]);return _0x81fcx34[_0x4bc6[93]](_0x81fcx24)}})[_0x4bc6[37]](function(_0x81fcx36){if(_0x81fcx36){_0x81fcx25= _0x81fcx36[_0x4bc6[74]];if(!_0x81fcx1a[_0x4bc6[69]][_0x4bc6[76]](_0x4bc6[75])){_0x81fcx24[_0x4bc6[48]]= qs[_0x4bc6[48]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[48]]);_0x81fcx24[_0x4bc6[47]]= qs[_0x4bc6[47]](_0x81fcx1a[_0x4bc6[69]][_0x4bc6[47]])};return _0x81fcx34[_0x4bc6[93]](_0x81fcx24)}})[_0x4bc6[37]](function(_0x81fcx35){return _0x81fcx35?{count:_0x81fcx25,rows:_0x81fcx35}:null})[_0x4bc6[37]](respondWithResult(_0x81fcx21,null,_0x4bc6[93]))[_0x4bc6[28]](handleError(_0x81fcx21,null,_0x4bc6[93]))};exports[_0x4bc6[96]]= function(_0x81fcx1a,_0x81fcx1e,_0x81fcx33){if(_0x81fcx1a[_0x4bc6[92]][_0x4bc6[88]]){delete _0x81fcx1a[_0x4bc6[92]][_0x4bc6[88]]};return db[_0x4bc6[67]][_0x4bc6[95]]({where:{id:_0x81fcx1a[_0x4bc6[89]][_0x4bc6[88]]}})[_0x4bc6[37]](handleEntityNotFound(_0x81fcx1e,null,_0x4bc6[96]))[_0x4bc6[37]](function(_0x81fcx21){if(_0x81fcx21){_0x81fcx1a[_0x4bc6[92]][_0x4bc6[97]]= _0x81fcx21[_0x4bc6[88]];_0x81fcx1a[_0x4bc6[92]][_0x4bc6[98]]= integrations[_0x4bc6[101]](_0x81fcx1a[_0x4bc6[92]][_0x4bc6[99]],_0x81fcx1a[_0x4bc6[92]][_0x4bc6[100]]);_0x81fcx1a[_0x4bc6[92]][_0x4bc6[102]]= integrations[_0x4bc6[103]](_0x81fcx1a[_0x4bc6[92]][_0x4bc6[99]],_0x81fcx1a[_0x4bc6[92]][_0x4bc6[100]]);return db[_0x4bc6[94]][_0x4bc6[91]](_0x81fcx1a[_0x4bc6[92]],{include:[{model:db[_0x4bc6[104]],as:_0x4bc6[98]},{model:db[_0x4bc6[104]],as:_0x4bc6[102]}]})};return null})[_0x4bc6[37]](respondWithResult(_0x81fcx1e,null,_0x4bc6[96]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[96]))};exports[_0x4bc6[105]]= function(_0x81fcx1a,_0x81fcx1e,_0x81fcx33){return db[_0x4bc6[67]][_0x4bc6[95]]({where:{id:_0x81fcx1a[_0x4bc6[89]][_0x4bc6[88]]},attributes:[_0x4bc6[88],_0x4bc6[117],_0x4bc6[118],_0x4bc6[120],_0x4bc6[123],_0x4bc6[111]]})[_0x4bc6[37]](handleEntityNotFound(_0x81fcx1e,null,_0x4bc6[105]))[_0x4bc6[37]](function(_0x81fcx21){if(_0x81fcx21){var _0x81fcx24={method:_0x4bc6[109],uri:util[_0x4bc6[112]](_0x4bc6[110],_0x81fcx21[_0x4bc6[111]],_0x4bc6[106]),json:true};switch(_0x81fcx21[_0x4bc6[123]]){case _0x4bc6[118]:_0x81fcx24[_0x4bc6[113]]= {Authorization:util[_0x4bc6[112]](_0x4bc6[114], new Buffer(util[_0x4bc6[112]](_0x4bc6[116],_0x81fcx21[_0x4bc6[117]],_0x81fcx21[_0x4bc6[118]])).toString(_0x4bc6[115]))};break;case _0x4bc6[120]:_0x81fcx24[_0x4bc6[113]]= {Authorization:util[_0x4bc6[112]](_0x4bc6[114], new Buffer(util[_0x4bc6[112]](_0x4bc6[119],_0x81fcx21[_0x4bc6[117]],_0x81fcx21[_0x4bc6[120]])).toString(_0x4bc6[115]))};break;default:throw  new db[_0x4bc6[122]].ValidationError(_0x4bc6[121])};return rp(_0x81fcx24)}})[_0x4bc6[37]](function(_0x81fcx36){if(_0x81fcx36){return {count:_0x81fcx36[_0x4bc6[106]][_0x4bc6[74]],rows:_[_0x4bc6[83]](_0x81fcx36[_0x4bc6[106]],function(_0x81fcx21){return {id:_0x81fcx21[_0x4bc6[88]],name:_0x81fcx21[_0x4bc6[107]],custom:_0x81fcx21[_0x4bc6[108]]?false:true,options:_0x81fcx21[_0x4bc6[108]]?_0x81fcx21[_0x4bc6[108]]:[]}})}}})[_0x4bc6[37]](respondWithResult(_0x81fcx1e,null,_0x4bc6[105]))[_0x4bc6[28]](handleError(_0x81fcx1e,null,_0x4bc6[105]))}
\ No newline at end of file
+var _0xeef7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x73\x75\x62\x6A\x65\x63\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x67\x72\x6F\x75\x70","\x61\x73\x73\x69\x67\x6E\x65\x65","\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x69\x74\x6C\x65","\x73\x79\x73\x74\x65\x6D\x5F\x66\x69\x65\x6C\x64\x5F\x6F\x70\x74\x69\x6F\x6E\x73","\x47\x45\x54","\x25\x73\x25\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x66\x6F\x72\x6D\x61\x74","\x68\x65\x61\x64\x65\x72\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x25\x73\x3A\x25\x73","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x25\x73\x2F\x74\x6F\x6B\x65\x6E\x3A\x25\x73","\x74\x6F\x6B\x65\x6E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x69\x6F\x6E\x20\x74\x79\x70\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x75\x74\x68\x54\x79\x70\x65"];_0xeef7[0];var jsonpatch=require(_0xeef7[1]);var rp=require(_0xeef7[2]);var moment=require(_0xeef7[3]);var BPromise=require(_0xeef7[4]);var util=require(_0xeef7[5]);var path=require(_0xeef7[6]);var sox=require(_0xeef7[7]);var ejs=require(_0xeef7[8]);var fs=require(_0xeef7[9]);var _=require(_0xeef7[10]);var squel=require(_0xeef7[11]);var crypto=require(_0xeef7[12]);var jsforce=require(_0xeef7[13]);var toCsv=require(_0xeef7[14]);var qs=require(_0xeef7[15]);var logger=require(_0xeef7[17])(_0xeef7[16]);var utils=require(_0xeef7[18]);var config=require(_0xeef7[19]);var db=require(_0xeef7[21])[_0xeef7[20]];var integrations=require(_0xeef7[22]);var jayson=require(_0xeef7[23]);var client=jayson[_0xeef7[25]][_0xeef7[24]]({port:9002});function respondWithRpcPromise(_0x762cx18,_0x762cx19,_0x762cx1a){return  new BPromise(function(_0x762cx1b,_0x762cx1c){return client[_0xeef7[38]](_0x762cx18,_0x762cx1a)[_0xeef7[37]](function(_0x762cx1e){logger[_0xeef7[30]](_0xeef7[26],_0x762cx19,_0xeef7[29]);logger[_0xeef7[33]](_0xeef7[31],_0x762cx19,_0xeef7[29],JSON[_0xeef7[32]](_0x762cx1e));if(_0x762cx1e[_0xeef7[27]]){if(_0x762cx1e[_0xeef7[27]][_0xeef7[34]]=== 500){logger[_0xeef7[27]](_0xeef7[26],_0x762cx19,_0x762cx1e[_0xeef7[27]][_0xeef7[35]]);return _0x762cx1c(_0x762cx1e[_0xeef7[27]][_0xeef7[35]])};logger[_0xeef7[27]](_0xeef7[26],_0x762cx19,_0x762cx1e[_0xeef7[27]][_0xeef7[35]]);return _0x762cx1b(_0x762cx1e[_0xeef7[27]][_0xeef7[35]])}else {logger[_0xeef7[30]](_0xeef7[26],_0x762cx19,_0xeef7[29]);_0x762cx1b(_0x762cx1e[_0xeef7[36]][_0xeef7[35]])}})[_0xeef7[28]](function(_0x762cx1d){logger[_0xeef7[27]](_0xeef7[26],_0x762cx19,_0x762cx1d);_0x762cx1c(_0x762cx1d)})})}function respondWithStatusCode(_0x762cx1e,_0x762cx20,_0x762cx19){_0x762cx20= _0x762cx20|| 204;return function(_0x762cx21){if(_0x762cx21){logger[_0xeef7[30]](_0xeef7[31],_0x762cx19,_0x762cx20,_0xeef7[39]);logger[_0xeef7[33]](_0xeef7[40],_0x762cx19,_0x762cx20,_0xeef7[39]);return _0x762cx1e[_0xeef7[41]](_0x762cx20)};return _0x762cx1e[_0xeef7[43]](304)[_0xeef7[42]]()}}function respondWithResult(_0x762cx1e,_0x762cx20,_0x762cx19){_0x762cx20= _0x762cx20|| 200;return function(_0x762cx21){if(_0x762cx21){logger[_0xeef7[30]](_0xeef7[31],_0x762cx19,_0x762cx20,_0xeef7[44]);logger[_0xeef7[33]](_0xeef7[40],_0x762cx19,_0x762cx20,_0xeef7[44],JSON[_0xeef7[32]](_0x762cx21));return _0x762cx1e[_0xeef7[43]](_0x762cx20)[_0xeef7[45]](_0x762cx21)};return _0x762cx1e[_0xeef7[43]](304)[_0xeef7[42]]()}}function respondWithFilteredResult(_0x762cx1e,_0x762cx24,_0x762cx19){return function(_0x762cx21){if(_0x762cx21){var _0x762cx25=_0x762cx21[_0xeef7[46]],_0x762cx26=_0x762cx24[_0xeef7[47]],_0x762cx27=_0x762cx24[_0xeef7[47]]+ _0x762cx24[_0xeef7[48]],_0x762cx20;if(_0x762cx27>= _0x762cx25){_0x762cx27= _0x762cx25;_0x762cx20= 200}else {_0x762cx20= 206};_0x762cx1e[_0xeef7[43]](_0x762cx20);logger[_0xeef7[30]](_0xeef7[31],_0x762cx19,_0x762cx20,_0xeef7[49]);logger[_0xeef7[33]](_0xeef7[40],_0x762cx19,_0x762cx20,_0xeef7[44],JSON[_0xeef7[32]](_0x762cx21));return _0x762cx1e[_0xeef7[53]](_0xeef7[50],_0x762cx26+ _0xeef7[51]+ _0x762cx27+ _0xeef7[52]+ _0x762cx25)[_0xeef7[45]](_0x762cx21)};return null}}function patchUpdates(_0x762cx29){return function(_0x762cx21){try{jsonpatch[_0xeef7[54]](_0x762cx21,_0x762cx29,true)}catch(err){return BPromise[_0xeef7[55]](err)};return _0x762cx21[_0xeef7[56]]()}}function saveUpdates(_0x762cx2b,_0x762cx20,_0x762cx19){return function(_0x762cx21){if(_0x762cx21){return _0x762cx21[_0xeef7[58]](_0x762cx2b)[_0xeef7[37]](function(_0x762cx2c){logger[_0xeef7[30]](_0xeef7[31],_0x762cx19,_0x762cx20,_0xeef7[57]);logger[_0xeef7[33]](_0xeef7[40],_0x762cx19,_0x762cx20,_0xeef7[57],JSON[_0xeef7[32]](_0x762cx21));return _0x762cx2c})};return null}}function removeEntity(_0x762cx1e,_0x762cx20,_0x762cx19){return function(_0x762cx21){if(_0x762cx21){return _0x762cx21[_0xeef7[60]]()[_0xeef7[37]](function(){logger[_0xeef7[30]](_0xeef7[31],_0x762cx19,_0x762cx20,_0xeef7[59]);logger[_0xeef7[33]](_0xeef7[40],_0x762cx19,_0x762cx20,_0xeef7[59],JSON[_0xeef7[32]](_0x762cx21));_0x762cx1e[_0xeef7[43]](204)[_0xeef7[42]]()})}}}function handleEntityNotFound(_0x762cx1e,_0x762cx20,_0x762cx19){return function(_0x762cx21){if(!_0x762cx21){logger[_0xeef7[27]](_0xeef7[31],_0x762cx19,404,_0xeef7[61]);_0x762cx1e[_0xeef7[43]](404)[_0xeef7[42]]();return null};return _0x762cx21}}function handleError(_0x762cx1e,_0x762cx20,_0x762cx19){_0x762cx20= _0x762cx20|| 500;return function(_0x762cx1d){logger[_0xeef7[27]](_0xeef7[31],_0x762cx19,_0x762cx20,JSON[_0xeef7[32]](_0x762cx1d));delete _0x762cx1d[_0xeef7[62]];_0x762cx1e[_0xeef7[43]](_0x762cx20)[_0xeef7[63]](_0x762cx1d)}}exports[_0xeef7[64]]= function(_0x762cx1a,_0x762cx1e){var _0x762cx24={},_0x762cx30={};_0x762cx30[_0xeef7[65]]= _[_0xeef7[68]](db[_0xeef7[67]][_0xeef7[66]]);_0x762cx30[_0xeef7[69]]= _[_0xeef7[68]](_0x762cx1a[_0xeef7[69]]);_0x762cx30[_0xeef7[70]]= _[_0xeef7[71]](_0x762cx30[_0xeef7[65]],_0x762cx30[_0xeef7[69]]);_0x762cx24[_0xeef7[72]]= _[_0xeef7[71]](_0x762cx30[_0xeef7[65]],qs[_0xeef7[73]](_0x762cx1a[_0xeef7[69]][_0xeef7[73]]));_0x762cx24[_0xeef7[72]]= (_0x762cx24[_0xeef7[72]][_0xeef7[74]])?_0x762cx24[_0xeef7[72]]:_0x762cx30[_0xeef7[65]];if(!_0x762cx1a[_0xeef7[69]][_0xeef7[76]](_0xeef7[75])){_0x762cx24[_0xeef7[48]]= qs[_0xeef7[48]](_0x762cx1a[_0xeef7[69]][_0xeef7[48]]);_0x762cx24[_0xeef7[47]]= qs[_0xeef7[47]](_0x762cx1a[_0xeef7[69]][_0xeef7[47]])};_0x762cx24[_0xeef7[77]]= qs[_0xeef7[78]](_0x762cx1a[_0xeef7[69]][_0xeef7[78]]);_0x762cx24[_0xeef7[79]]= qs[_0xeef7[70]](_[_0xeef7[80]](_0x762cx1a[_0xeef7[69]],_0x762cx30[_0xeef7[70]]));if(_0x762cx1a[_0xeef7[69]][_0xeef7[81]]){_0x762cx24[_0xeef7[79]]= _[_0xeef7[84]](_0x762cx24[_0xeef7[79]],{$or:_[_0xeef7[83]](_0x762cx24[_0xeef7[72]],function(_0x762cx31){var _0x762cx32={};_0x762cx32[_0x762cx31]= {$like:_0xeef7[82]+ _0x762cx1a[_0xeef7[69]][_0xeef7[81]]+ _0xeef7[82]};return _0x762cx32})})};_0x762cx24= _[_0xeef7[84]]({},_0x762cx24,_0x762cx1a[_0xeef7[85]]);return db[_0xeef7[67]][_0xeef7[86]](_0x762cx24)[_0xeef7[37]](respondWithFilteredResult(_0x762cx1e,_0x762cx24,_0xeef7[64]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[64]))};exports[_0xeef7[87]]= function(_0x762cx1a,_0x762cx1e){var _0x762cx24={raw:false,where:{id:_0x762cx1a[_0xeef7[89]][_0xeef7[88]]}},_0x762cx30={};_0x762cx30[_0xeef7[65]]= _[_0xeef7[68]](db[_0xeef7[67]][_0xeef7[66]]);_0x762cx30[_0xeef7[69]]= _[_0xeef7[68]](_0x762cx1a[_0xeef7[69]]);_0x762cx30[_0xeef7[70]]= _[_0xeef7[71]](_0x762cx30[_0xeef7[65]],_0x762cx30[_0xeef7[69]]);_0x762cx24[_0xeef7[72]]= _[_0xeef7[71]](_0x762cx30[_0xeef7[65]],qs[_0xeef7[73]](_0x762cx1a[_0xeef7[69]][_0xeef7[73]]));_0x762cx24[_0xeef7[72]]= (_0x762cx24[_0xeef7[72]][_0xeef7[74]])?_0x762cx24[_0xeef7[72]]:_0x762cx30[_0xeef7[65]];_0x762cx24= _[_0xeef7[84]]({},_0x762cx24,_0x762cx1a[_0xeef7[85]]);return db[_0xeef7[67]][_0xeef7[90]](_0x762cx24)[_0xeef7[37]](handleEntityNotFound(_0x762cx1e,null,_0xeef7[87]))[_0xeef7[37]](respondWithResult(_0x762cx1e,null,_0xeef7[87]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[87]))};exports[_0xeef7[91]]= function(_0x762cx1a,_0x762cx1e){return db[_0xeef7[67]][_0xeef7[91]](_0x762cx1a[_0xeef7[92]],{})[_0xeef7[37]](respondWithResult(_0x762cx1e,201,_0xeef7[91]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[91]))};exports[_0xeef7[58]]= function(_0x762cx1a,_0x762cx1e){if(_0x762cx1a[_0xeef7[92]][_0xeef7[88]]){delete _0x762cx1a[_0xeef7[92]][_0xeef7[88]]};return db[_0xeef7[67]][_0xeef7[90]]({where:{id:_0x762cx1a[_0xeef7[89]][_0xeef7[88]]}})[_0xeef7[37]](handleEntityNotFound(_0x762cx1e,null,_0xeef7[58]))[_0xeef7[37]](saveUpdates(_0x762cx1a[_0xeef7[92]],null,_0xeef7[58]))[_0xeef7[37]](respondWithResult(_0x762cx1e,null,_0xeef7[58]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[58]))};exports[_0xeef7[60]]= function(_0x762cx1a,_0x762cx1e){return db[_0xeef7[67]][_0xeef7[90]]({where:{id:_0x762cx1a[_0xeef7[89]][_0xeef7[88]]}})[_0xeef7[37]](handleEntityNotFound(_0x762cx1e,null,_0xeef7[60]))[_0xeef7[37]](removeEntity(_0x762cx1e,null,_0xeef7[60]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[60]))};exports[_0xeef7[93]]= function(_0x762cx1a,_0x762cx21,_0x762cx33){var _0x762cx24={};var _0x762cx30={};var _0x762cx34;var _0x762cx25;return db[_0xeef7[67]][_0xeef7[95]]({where:{id:_0x762cx1a[_0xeef7[89]][_0xeef7[88]]}})[_0xeef7[37]](handleEntityNotFound(_0x762cx21,null,_0xeef7[93]))[_0xeef7[37]](function(_0x762cx21){if(_0x762cx21){_0x762cx34= _0x762cx21;_0x762cx30[_0xeef7[65]]= _[_0xeef7[68]](db[_0xeef7[94]][_0xeef7[66]]);_0x762cx30[_0xeef7[69]]= _[_0xeef7[68]](_0x762cx1a[_0xeef7[69]]);_0x762cx30[_0xeef7[70]]= _[_0xeef7[71]](_0x762cx30[_0xeef7[65]],_0x762cx30[_0xeef7[69]]);_0x762cx24[_0xeef7[72]]= _[_0xeef7[71]](_0x762cx30[_0xeef7[65]],qs[_0xeef7[73]](_0x762cx1a[_0xeef7[69]][_0xeef7[73]]));_0x762cx24[_0xeef7[72]]= (_0x762cx24[_0xeef7[72]][_0xeef7[74]])?_0x762cx24[_0xeef7[72]]:_0x762cx30[_0xeef7[65]];_0x762cx24[_0xeef7[77]]= qs[_0xeef7[78]](_0x762cx1a[_0xeef7[69]][_0xeef7[78]]);_0x762cx24[_0xeef7[79]]= qs[_0xeef7[70]](_[_0xeef7[80]](_0x762cx1a[_0xeef7[69]],_0x762cx30[_0xeef7[70]]));if(_0x762cx1a[_0xeef7[69]][_0xeef7[81]]){_0x762cx24[_0xeef7[79]]= _[_0xeef7[84]](_0x762cx24[_0xeef7[79]],{$or:_[_0xeef7[83]](_0x762cx24[_0xeef7[72]],function(_0x762cx31){var _0x762cx32={};_0x762cx32[_0x762cx31]= {$like:_0xeef7[82]+ _0x762cx1a[_0xeef7[69]][_0xeef7[81]]+ _0xeef7[82]};return _0x762cx32})})};_0x762cx24= _[_0xeef7[84]]({},_0x762cx24,_0x762cx1a[_0xeef7[85]]);return _0x762cx34[_0xeef7[93]](_0x762cx24)}})[_0xeef7[37]](function(_0x762cx36){if(_0x762cx36){_0x762cx25= _0x762cx36[_0xeef7[74]];if(!_0x762cx1a[_0xeef7[69]][_0xeef7[76]](_0xeef7[75])){_0x762cx24[_0xeef7[48]]= qs[_0xeef7[48]](_0x762cx1a[_0xeef7[69]][_0xeef7[48]]);_0x762cx24[_0xeef7[47]]= qs[_0xeef7[47]](_0x762cx1a[_0xeef7[69]][_0xeef7[47]])};return _0x762cx34[_0xeef7[93]](_0x762cx24)}})[_0xeef7[37]](function(_0x762cx35){return _0x762cx35?{count:_0x762cx25,rows:_0x762cx35}:null})[_0xeef7[37]](respondWithResult(_0x762cx21,null,_0xeef7[93]))[_0xeef7[28]](handleError(_0x762cx21,null,_0xeef7[93]))};exports[_0xeef7[96]]= function(_0x762cx1a,_0x762cx1e,_0x762cx33){if(_0x762cx1a[_0xeef7[92]][_0xeef7[88]]){delete _0x762cx1a[_0xeef7[92]][_0xeef7[88]]};return db[_0xeef7[67]][_0xeef7[95]]({where:{id:_0x762cx1a[_0xeef7[89]][_0xeef7[88]]}})[_0xeef7[37]](handleEntityNotFound(_0x762cx1e,null,_0xeef7[96]))[_0xeef7[37]](function(_0x762cx21){if(_0x762cx21){_0x762cx1a[_0xeef7[92]][_0xeef7[97]]= _0x762cx21[_0xeef7[88]];_0x762cx1a[_0xeef7[92]][_0xeef7[98]]= integrations[_0xeef7[101]](_0x762cx1a[_0xeef7[92]][_0xeef7[99]],_0x762cx1a[_0xeef7[92]][_0xeef7[100]]);_0x762cx1a[_0xeef7[92]][_0xeef7[102]]= integrations[_0xeef7[103]](_0x762cx1a[_0xeef7[92]][_0xeef7[99]],_0x762cx1a[_0xeef7[92]][_0xeef7[100]]);return db[_0xeef7[94]][_0xeef7[91]](_0x762cx1a[_0xeef7[92]],{include:[{model:db[_0xeef7[104]],as:_0xeef7[98]},{model:db[_0xeef7[104]],as:_0xeef7[102]}]})};return null})[_0xeef7[37]](respondWithResult(_0x762cx1e,null,_0xeef7[96]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[96]))};exports[_0xeef7[105]]= function(_0x762cx1a,_0x762cx1e,_0x762cx33){return db[_0xeef7[67]][_0xeef7[95]]({where:{id:_0x762cx1a[_0xeef7[89]][_0xeef7[88]]},attributes:[_0xeef7[88],_0xeef7[124],_0xeef7[125],_0xeef7[127],_0xeef7[130],_0xeef7[118]]})[_0xeef7[37]](handleEntityNotFound(_0x762cx1e,null,_0xeef7[105]))[_0xeef7[37]](function(_0x762cx21){if(_0x762cx21){var _0x762cx24={method:_0xeef7[116],uri:util[_0xeef7[119]](_0xeef7[117],_0x762cx21[_0xeef7[118]],_0xeef7[110]),json:true};switch(_0x762cx21[_0xeef7[130]]){case _0xeef7[125]:_0x762cx24[_0xeef7[120]]= {Authorization:util[_0xeef7[119]](_0xeef7[121], new Buffer(util[_0xeef7[119]](_0xeef7[123],_0x762cx21[_0xeef7[124]],_0x762cx21[_0xeef7[125]])).toString(_0xeef7[122]))};break;case _0xeef7[127]:_0x762cx24[_0xeef7[120]]= {Authorization:util[_0xeef7[119]](_0xeef7[121], new Buffer(util[_0xeef7[119]](_0xeef7[126],_0x762cx21[_0xeef7[124]],_0x762cx21[_0xeef7[127]])).toString(_0xeef7[122]))};break;default:throw  new db[_0xeef7[129]].ValidationError(_0xeef7[128])};return rp(_0x762cx24)}})[_0xeef7[37]](function(_0x762cx36){if(_0x762cx36){var _0x762cx37=[_0xeef7[106],_0xeef7[107],_0xeef7[108],_0xeef7[109]];_[_0xeef7[112]](_0x762cx36[_0xeef7[110]],function(_0x762cx38){return _0x762cx37[_0xeef7[111]](_0x762cx38[_0xeef7[100]])});return {count:_0x762cx36[_0xeef7[110]][_0xeef7[74]],rows:_[_0xeef7[83]](_0x762cx36[_0xeef7[110]],function(_0x762cx21){return {id:_0x762cx21[_0xeef7[88]],name:_0x762cx21[_0xeef7[113]]> 7?_0x762cx21[_0xeef7[114]]:_0x762cx21[_0xeef7[100]],custom:_0x762cx21[_0xeef7[113]]> 7?true:false,options:_0x762cx21[_0xeef7[115]]?_0x762cx21[_0xeef7[115]]:[]}})}}})[_0xeef7[37]](respondWithResult(_0x762cx1e,null,_0xeef7[105]))[_0xeef7[28]](handleError(_0x762cx1e,null,_0xeef7[105]))}
\ No newline at end of file
index 215f80d..78f67e1 100644 (file)
@@ -1 +1 @@
-var _0x3915=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x3915[0];var _=require(_0x3915[1]);var util=require(_0x3915[2]);var logger=require(_0x3915[4])(_0x3915[3]);var attributes=require(_0x3915[5]);var integrations=require(_0x3915[6]);module[_0x3915[7]]= function(_0x7f63x6,_0x7f63x7){return _0x7f63x6[_0x3915[10]](_0x3915[8],attributes,{tableName:_0x3915[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xc309=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xc309[0];var _=require(_0xc309[1]);var util=require(_0xc309[2]);var logger=require(_0xc309[4])(_0xc309[3]);var attributes=require(_0xc309[5]);var integrations=require(_0xc309[6]);module[_0xc309[7]]= function(_0xc971x6,_0xc971x7){return _0xc971x6[_0xc309[10]](_0xc309[8],attributes,{tableName:_0xc309[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index b57d594..e40bfcc 100644 (file)
@@ -1 +1 @@
-var _0x774b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x774b[0];var _=require(_0x774b[1]);var util=require(_0x774b[2]);var moment=require(_0x774b[3]);var BPromise=require(_0x774b[4]);var db=require(_0x774b[6])[_0x774b[5]];var utils=require(_0x774b[7]);var logger=require(_0x774b[9])(_0x774b[8]);var jayson=require(_0x774b[10]);var client=jayson[_0x774b[12]][_0x774b[11]]({port:9002});function respondWithRpcPromise(_0x2c1exb,_0x2c1exc,_0x2c1exd){return  new BPromise(function(_0x2c1exe,_0x2c1exf){return client[_0x774b[25]](_0x2c1exb,_0x2c1exd)[_0x774b[24]](function(_0x2c1ex11){logger[_0x774b[17]](_0x774b[13],_0x2c1exc,_0x774b[16]);logger[_0x774b[20]](_0x774b[18],_0x2c1exc,_0x774b[16],JSON[_0x774b[19]](_0x2c1ex11));if(_0x2c1ex11[_0x774b[14]]){if(_0x2c1ex11[_0x774b[14]][_0x774b[21]]=== 500){logger[_0x774b[14]](_0x774b[13],_0x2c1exc,_0x2c1ex11[_0x774b[14]][_0x774b[22]]);return _0x2c1exf(_0x2c1ex11[_0x774b[14]][_0x774b[22]])};logger[_0x774b[14]](_0x774b[13],_0x2c1exc,_0x2c1ex11[_0x774b[14]][_0x774b[22]]);return _0x2c1exe(_0x2c1ex11[_0x774b[14]][_0x774b[22]])}else {logger[_0x774b[17]](_0x774b[13],_0x2c1exc,_0x774b[16]);_0x2c1exe(_0x2c1ex11[_0x774b[23]][_0x774b[22]])}})[_0x774b[15]](function(_0x2c1ex10){logger[_0x774b[14]](_0x774b[13],_0x2c1exc,_0x2c1ex10);_0x2c1exf(_0x2c1ex10)})})}exports[_0x774b[26]]= function(_0x2c1exd){var _0x2c1ex12=this;return  new Promise(function(_0x2c1exe,_0x2c1exf){return db[_0x774b[37]][_0x774b[36]]({raw:_0x2c1exd[_0x774b[27]]?(_0x2c1exd[_0x774b[27]][_0x774b[28]]=== undefined)?true:false:true,where:_0x2c1exd[_0x774b[27]]?_0x2c1exd[_0x774b[27]][_0x774b[29]]|| null:null,attributes:_0x2c1exd[_0x774b[27]]?_0x2c1exd[_0x774b[27]][_0x774b[30]]|| null:null,limit:_0x2c1exd[_0x774b[27]]?_0x2c1exd[_0x774b[27]][_0x774b[31]]|| null:null,include:_0x2c1exd[_0x774b[27]]?(_0x2c1exd[_0x774b[27]][_0x774b[32]]?_[_0x774b[35]](_0x2c1exd[_0x774b[27]][_0x774b[32]],function(_0x2c1ex13){return {model:db[_0x2c1ex13[_0x774b[33]]],as:_0x2c1ex13[_0x774b[34]],attributes:_0x2c1ex13[_0x774b[30]],include:_0x2c1ex13[_0x774b[32]]?_[_0x774b[35]](_0x2c1ex13[_0x774b[32]],function(_0x2c1ex14){return {model:db[_0x2c1ex14[_0x774b[33]]],as:_0x2c1ex14[_0x774b[34]],attributes:_0x2c1ex14[_0x774b[30]],include:_0x2c1ex14[_0x774b[32]]?_[_0x774b[35]](_0x2c1ex14[_0x774b[32]],function(_0x2c1ex15){return {model:db[_0x2c1ex15[_0x774b[33]]],as:_0x2c1ex15[_0x774b[34]],attributes:_0x2c1ex15[_0x774b[30]]}}):[]}}):[]}}):[]):[]})[_0x774b[24]](function(_0x2c1ex11){logger[_0x774b[17]](_0x774b[26],_0x2c1exd);logger[_0x774b[20]](_0x774b[26],_0x2c1exd,JSON[_0x774b[19]](_0x2c1ex11));_0x2c1exe(_0x2c1ex11)})[_0x774b[15]](function(_0x2c1ex10){logger[_0x774b[14]](_0x774b[26],_0x2c1ex10[_0x774b[22]],_0x2c1exd);_0x2c1exf(_0x2c1ex12[_0x774b[14]](500,_0x2c1ex10[_0x774b[22]]))})})};exports[_0x774b[38]]= function(_0x2c1exd){var _0x2c1ex12=this;return  new Promise(function(_0x2c1exe,_0x2c1exf){return db[_0x774b[37]][_0x774b[39]]({raw:_0x2c1exd[_0x774b[27]]?(_0x2c1exd[_0x774b[27]][_0x774b[28]]=== undefined)?true:false:true,where:_0x2c1exd[_0x774b[27]]?_0x2c1exd[_0x774b[27]][_0x774b[29]]|| null:null,attributes:_0x2c1exd[_0x774b[27]]?_0x2c1exd[_0x774b[27]][_0x774b[30]]|| null:null,include:_0x2c1exd[_0x774b[27]]?(_0x2c1exd[_0x774b[27]][_0x774b[32]]?_[_0x774b[35]](_0x2c1exd[_0x774b[27]][_0x774b[32]],function(_0x2c1ex13){return {model:db[_0x2c1ex13[_0x774b[33]]],as:_0x2c1ex13[_0x774b[34]],attributes:_0x2c1ex13[_0x774b[30]],include:_0x2c1ex13[_0x774b[32]]?_[_0x774b[35]](_0x2c1ex13[_0x774b[32]],function(_0x2c1ex14){return {model:db[_0x2c1ex14[_0x774b[33]]],as:_0x2c1ex14[_0x774b[34]],attributes:_0x2c1ex14[_0x774b[30]],include:_0x2c1ex14[_0x774b[32]]?_[_0x774b[35]](_0x2c1ex14[_0x774b[32]],function(_0x2c1ex15){return {model:db[_0x2c1ex15[_0x774b[33]]],as:_0x2c1ex15[_0x774b[34]],attributes:_0x2c1ex15[_0x774b[30]]}}):[]}}):[]}}):[]):[]})[_0x774b[24]](function(_0x2c1ex11){logger[_0x774b[17]](_0x774b[38],_0x2c1exd);logger[_0x774b[20]](_0x774b[38],_0x2c1exd,JSON[_0x774b[19]](_0x2c1ex11));_0x2c1exe(_0x2c1ex11)})[_0x774b[15]](function(_0x2c1ex10){logger[_0x774b[14]](_0x774b[38],_0x2c1ex10[_0x774b[22]],_0x2c1exd);_0x2c1exf(_0x2c1ex12[_0x774b[14]](500,_0x2c1ex10[_0x774b[22]]))})})}
\ No newline at end of file
+var _0xb79d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0xb79d[0];var _=require(_0xb79d[1]);var util=require(_0xb79d[2]);var moment=require(_0xb79d[3]);var BPromise=require(_0xb79d[4]);var db=require(_0xb79d[6])[_0xb79d[5]];var utils=require(_0xb79d[7]);var logger=require(_0xb79d[9])(_0xb79d[8]);var jayson=require(_0xb79d[10]);var client=jayson[_0xb79d[12]][_0xb79d[11]]({port:9002});function respondWithRpcPromise(_0x441fxb,_0x441fxc,_0x441fxd){return  new BPromise(function(_0x441fxe,_0x441fxf){return client[_0xb79d[25]](_0x441fxb,_0x441fxd)[_0xb79d[24]](function(_0x441fx11){logger[_0xb79d[17]](_0xb79d[13],_0x441fxc,_0xb79d[16]);logger[_0xb79d[20]](_0xb79d[18],_0x441fxc,_0xb79d[16],JSON[_0xb79d[19]](_0x441fx11));if(_0x441fx11[_0xb79d[14]]){if(_0x441fx11[_0xb79d[14]][_0xb79d[21]]=== 500){logger[_0xb79d[14]](_0xb79d[13],_0x441fxc,_0x441fx11[_0xb79d[14]][_0xb79d[22]]);return _0x441fxf(_0x441fx11[_0xb79d[14]][_0xb79d[22]])};logger[_0xb79d[14]](_0xb79d[13],_0x441fxc,_0x441fx11[_0xb79d[14]][_0xb79d[22]]);return _0x441fxe(_0x441fx11[_0xb79d[14]][_0xb79d[22]])}else {logger[_0xb79d[17]](_0xb79d[13],_0x441fxc,_0xb79d[16]);_0x441fxe(_0x441fx11[_0xb79d[23]][_0xb79d[22]])}})[_0xb79d[15]](function(_0x441fx10){logger[_0xb79d[14]](_0xb79d[13],_0x441fxc,_0x441fx10);_0x441fxf(_0x441fx10)})})}exports[_0xb79d[26]]= function(_0x441fxd){var _0x441fx12=this;return  new Promise(function(_0x441fxe,_0x441fxf){return db[_0xb79d[37]][_0xb79d[36]]({raw:_0x441fxd[_0xb79d[27]]?(_0x441fxd[_0xb79d[27]][_0xb79d[28]]=== undefined)?true:false:true,where:_0x441fxd[_0xb79d[27]]?_0x441fxd[_0xb79d[27]][_0xb79d[29]]|| null:null,attributes:_0x441fxd[_0xb79d[27]]?_0x441fxd[_0xb79d[27]][_0xb79d[30]]|| null:null,limit:_0x441fxd[_0xb79d[27]]?_0x441fxd[_0xb79d[27]][_0xb79d[31]]|| null:null,include:_0x441fxd[_0xb79d[27]]?(_0x441fxd[_0xb79d[27]][_0xb79d[32]]?_[_0xb79d[35]](_0x441fxd[_0xb79d[27]][_0xb79d[32]],function(_0x441fx13){return {model:db[_0x441fx13[_0xb79d[33]]],as:_0x441fx13[_0xb79d[34]],attributes:_0x441fx13[_0xb79d[30]],include:_0x441fx13[_0xb79d[32]]?_[_0xb79d[35]](_0x441fx13[_0xb79d[32]],function(_0x441fx14){return {model:db[_0x441fx14[_0xb79d[33]]],as:_0x441fx14[_0xb79d[34]],attributes:_0x441fx14[_0xb79d[30]],include:_0x441fx14[_0xb79d[32]]?_[_0xb79d[35]](_0x441fx14[_0xb79d[32]],function(_0x441fx15){return {model:db[_0x441fx15[_0xb79d[33]]],as:_0x441fx15[_0xb79d[34]],attributes:_0x441fx15[_0xb79d[30]]}}):[]}}):[]}}):[]):[]})[_0xb79d[24]](function(_0x441fx11){logger[_0xb79d[17]](_0xb79d[26],_0x441fxd);logger[_0xb79d[20]](_0xb79d[26],_0x441fxd,JSON[_0xb79d[19]](_0x441fx11));_0x441fxe(_0x441fx11)})[_0xb79d[15]](function(_0x441fx10){logger[_0xb79d[14]](_0xb79d[26],_0x441fx10[_0xb79d[22]],_0x441fxd);_0x441fxf(_0x441fx12[_0xb79d[14]](500,_0x441fx10[_0xb79d[22]]))})})};exports[_0xb79d[38]]= function(_0x441fxd){var _0x441fx12=this;return  new Promise(function(_0x441fxe,_0x441fxf){return db[_0xb79d[37]][_0xb79d[39]]({raw:_0x441fxd[_0xb79d[27]]?(_0x441fxd[_0xb79d[27]][_0xb79d[28]]=== undefined)?true:false:true,where:_0x441fxd[_0xb79d[27]]?_0x441fxd[_0xb79d[27]][_0xb79d[29]]|| null:null,attributes:_0x441fxd[_0xb79d[27]]?_0x441fxd[_0xb79d[27]][_0xb79d[30]]|| null:null,include:_0x441fxd[_0xb79d[27]]?(_0x441fxd[_0xb79d[27]][_0xb79d[32]]?_[_0xb79d[35]](_0x441fxd[_0xb79d[27]][_0xb79d[32]],function(_0x441fx13){return {model:db[_0x441fx13[_0xb79d[33]]],as:_0x441fx13[_0xb79d[34]],attributes:_0x441fx13[_0xb79d[30]],include:_0x441fx13[_0xb79d[32]]?_[_0xb79d[35]](_0x441fx13[_0xb79d[32]],function(_0x441fx14){return {model:db[_0x441fx14[_0xb79d[33]]],as:_0x441fx14[_0xb79d[34]],attributes:_0x441fx14[_0xb79d[30]],include:_0x441fx14[_0xb79d[32]]?_[_0xb79d[35]](_0x441fx14[_0xb79d[32]],function(_0x441fx15){return {model:db[_0x441fx15[_0xb79d[33]]],as:_0x441fx15[_0xb79d[34]],attributes:_0x441fx15[_0xb79d[30]]}}):[]}}):[]}}):[]):[]})[_0xb79d[24]](function(_0x441fx11){logger[_0xb79d[17]](_0xb79d[38],_0x441fxd);logger[_0xb79d[20]](_0xb79d[38],_0x441fxd,JSON[_0xb79d[19]](_0x441fx11));_0x441fxe(_0x441fx11)})[_0xb79d[15]](function(_0x441fx10){logger[_0xb79d[14]](_0xb79d[38],_0x441fx10[_0xb79d[22]],_0x441fxd);_0x441fxf(_0x441fx12[_0xb79d[14]](500,_0x441fx10[_0xb79d[22]]))})})}
\ No newline at end of file
index 65d3d7a..36359a5 100644 (file)
@@ -1 +1 @@
-var _0x92c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x67\x65\x74\x54\x61\x67\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x73\x65\x74\x54\x61\x67\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x92c1[0];var multer=require(_0x92c1[1]);var util=require(_0x92c1[2]);var path=require(_0x92c1[3]);var express=require(_0x92c1[4]);var router=express.Router();var auth=require(_0x92c1[5]);var config=require(_0x92c1[6]);var controller=require(_0x92c1[7]);router[_0x92c1[11]](_0x92c1[8],auth[_0x92c1[9]](),controller[_0x92c1[10]]);router[_0x92c1[11]](_0x92c1[12],auth[_0x92c1[9]](),controller[_0x92c1[13]]);router[_0x92c1[11]](_0x92c1[14],auth[_0x92c1[9]](),controller[_0x92c1[15]]);router[_0x92c1[11]](_0x92c1[16],auth[_0x92c1[9]](),controller[_0x92c1[17]]);router[_0x92c1[11]](_0x92c1[18],auth[_0x92c1[9]](),controller[_0x92c1[19]]);router[_0x92c1[11]](_0x92c1[20],auth[_0x92c1[9]](),controller[_0x92c1[21]]);router[_0x92c1[23]](_0x92c1[8],auth[_0x92c1[9]](),controller[_0x92c1[22]]);router[_0x92c1[23]](_0x92c1[20],auth[_0x92c1[9]](),controller[_0x92c1[24]]);router[_0x92c1[26]](_0x92c1[12],auth[_0x92c1[9]](),controller[_0x92c1[25]]);router[_0x92c1[28]](_0x92c1[12],auth[_0x92c1[9]](),controller[_0x92c1[27]]);module[_0x92c1[29]]= router
\ No newline at end of file
+var _0xa9c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x67\x65\x74\x54\x61\x67\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x73\x65\x74\x54\x61\x67\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa9c4[0];var multer=require(_0xa9c4[1]);var util=require(_0xa9c4[2]);var path=require(_0xa9c4[3]);var express=require(_0xa9c4[4]);var router=express.Router();var auth=require(_0xa9c4[5]);var config=require(_0xa9c4[6]);var controller=require(_0xa9c4[7]);router[_0xa9c4[11]](_0xa9c4[8],auth[_0xa9c4[9]](),controller[_0xa9c4[10]]);router[_0xa9c4[11]](_0xa9c4[12],auth[_0xa9c4[9]](),controller[_0xa9c4[13]]);router[_0xa9c4[11]](_0xa9c4[14],auth[_0xa9c4[9]](),controller[_0xa9c4[15]]);router[_0xa9c4[11]](_0xa9c4[16],auth[_0xa9c4[9]](),controller[_0xa9c4[17]]);router[_0xa9c4[11]](_0xa9c4[18],auth[_0xa9c4[9]](),controller[_0xa9c4[19]]);router[_0xa9c4[11]](_0xa9c4[20],auth[_0xa9c4[9]](),controller[_0xa9c4[21]]);router[_0xa9c4[23]](_0xa9c4[8],auth[_0xa9c4[9]](),controller[_0xa9c4[22]]);router[_0xa9c4[23]](_0xa9c4[20],auth[_0xa9c4[9]](),controller[_0xa9c4[24]]);router[_0xa9c4[26]](_0xa9c4[12],auth[_0xa9c4[9]](),controller[_0xa9c4[25]]);router[_0xa9c4[28]](_0xa9c4[12],auth[_0xa9c4[9]](),controller[_0xa9c4[27]]);module[_0xa9c4[29]]= router
\ No newline at end of file
index 36d3fef..195b972 100644 (file)
@@ -1 +1 @@
-var _0x7c33=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x7c33[0];var Sequelize=require(_0x7c33[1]);module[_0x7c33[2]]= {name:{type:Sequelize[_0x7c33[3]]},description:{type:Sequelize[_0x7c33[3]]}}
\ No newline at end of file
+var _0xfca6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xfca6[0];var Sequelize=require(_0xfca6[1]);module[_0xfca6[2]]= {name:{type:Sequelize[_0xfca6[3]]},description:{type:Sequelize[_0xfca6[3]]}}
\ No newline at end of file
index 709f2df..80aeb13 100644 (file)
@@ -1 +1 @@
-var _0x7dfd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x54\x61\x67\x73","\x54\x61\x67","\x73\x65\x74\x54\x61\x67\x73","\x69\x64\x73"];_0x7dfd[0];var jsonpatch=require(_0x7dfd[1]);var rp=require(_0x7dfd[2]);var moment=require(_0x7dfd[3]);var BPromise=require(_0x7dfd[4]);var util=require(_0x7dfd[5]);var path=require(_0x7dfd[6]);var sox=require(_0x7dfd[7]);var ejs=require(_0x7dfd[8]);var fs=require(_0x7dfd[9]);var _=require(_0x7dfd[10]);var squel=require(_0x7dfd[11]);var crypto=require(_0x7dfd[12]);var jsforce=require(_0x7dfd[13]);var toCsv=require(_0x7dfd[14]);var qs=require(_0x7dfd[15]);var logger=require(_0x7dfd[17])(_0x7dfd[16]);var utils=require(_0x7dfd[18]);var config=require(_0x7dfd[19]);var db=require(_0x7dfd[21])[_0x7dfd[20]];var jayson=require(_0x7dfd[22]);var client=jayson[_0x7dfd[24]][_0x7dfd[23]]({port:9002});function respondWithRpcPromise(_0x3b2ax17,_0x3b2ax18,_0x3b2ax19){return  new BPromise(function(_0x3b2ax1a,_0x3b2ax1b){return client[_0x7dfd[37]](_0x3b2ax17,_0x3b2ax19)[_0x7dfd[36]](function(_0x3b2ax1d){logger[_0x7dfd[29]](_0x7dfd[25],_0x3b2ax18,_0x7dfd[28]);logger[_0x7dfd[32]](_0x7dfd[30],_0x3b2ax18,_0x7dfd[28],JSON[_0x7dfd[31]](_0x3b2ax1d));if(_0x3b2ax1d[_0x7dfd[26]]){if(_0x3b2ax1d[_0x7dfd[26]][_0x7dfd[33]]=== 500){logger[_0x7dfd[26]](_0x7dfd[25],_0x3b2ax18,_0x3b2ax1d[_0x7dfd[26]][_0x7dfd[34]]);return _0x3b2ax1b(_0x3b2ax1d[_0x7dfd[26]][_0x7dfd[34]])};logger[_0x7dfd[26]](_0x7dfd[25],_0x3b2ax18,_0x3b2ax1d[_0x7dfd[26]][_0x7dfd[34]]);return _0x3b2ax1a(_0x3b2ax1d[_0x7dfd[26]][_0x7dfd[34]])}else {logger[_0x7dfd[29]](_0x7dfd[25],_0x3b2ax18,_0x7dfd[28]);_0x3b2ax1a(_0x3b2ax1d[_0x7dfd[35]][_0x7dfd[34]])}})[_0x7dfd[27]](function(_0x3b2ax1c){logger[_0x7dfd[26]](_0x7dfd[25],_0x3b2ax18,_0x3b2ax1c);_0x3b2ax1b(_0x3b2ax1c)})})}function respondWithStatusCode(_0x3b2ax1d,_0x3b2ax1f,_0x3b2ax18){_0x3b2ax1f= _0x3b2ax1f|| 204;return function(_0x3b2ax20){if(_0x3b2ax20){logger[_0x7dfd[29]](_0x7dfd[30],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[38]);logger[_0x7dfd[32]](_0x7dfd[39],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[38]);return _0x3b2ax1d[_0x7dfd[40]](_0x3b2ax1f)};return _0x3b2ax1d[_0x7dfd[42]](304)[_0x7dfd[41]]()}}function respondWithResult(_0x3b2ax1d,_0x3b2ax1f,_0x3b2ax18){_0x3b2ax1f= _0x3b2ax1f|| 200;return function(_0x3b2ax20){if(_0x3b2ax20){logger[_0x7dfd[29]](_0x7dfd[30],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[43]);logger[_0x7dfd[32]](_0x7dfd[39],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[43],JSON[_0x7dfd[31]](_0x3b2ax20));return _0x3b2ax1d[_0x7dfd[42]](_0x3b2ax1f)[_0x7dfd[44]](_0x3b2ax20)};return _0x3b2ax1d[_0x7dfd[42]](304)[_0x7dfd[41]]()}}function respondWithFilteredResult(_0x3b2ax1d,_0x3b2ax23,_0x3b2ax18){return function(_0x3b2ax20){if(_0x3b2ax20){var _0x3b2ax24=_0x3b2ax20[_0x7dfd[45]],_0x3b2ax25=_0x3b2ax23[_0x7dfd[46]],_0x3b2ax26=_0x3b2ax23[_0x7dfd[46]]+ _0x3b2ax23[_0x7dfd[47]],_0x3b2ax1f;if(_0x3b2ax26>= _0x3b2ax24){_0x3b2ax26= _0x3b2ax24;_0x3b2ax1f= 200}else {_0x3b2ax1f= 206};_0x3b2ax1d[_0x7dfd[42]](_0x3b2ax1f);logger[_0x7dfd[29]](_0x7dfd[30],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[48]);logger[_0x7dfd[32]](_0x7dfd[39],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[43],JSON[_0x7dfd[31]](_0x3b2ax20));return _0x3b2ax1d[_0x7dfd[52]](_0x7dfd[49],_0x3b2ax25+ _0x7dfd[50]+ _0x3b2ax26+ _0x7dfd[51]+ _0x3b2ax24)[_0x7dfd[44]](_0x3b2ax20)};return null}}function patchUpdates(_0x3b2ax28){return function(_0x3b2ax20){try{jsonpatch[_0x7dfd[53]](_0x3b2ax20,_0x3b2ax28,true)}catch(err){return BPromise[_0x7dfd[54]](err)};return _0x3b2ax20[_0x7dfd[55]]()}}function saveUpdates(_0x3b2ax2a,_0x3b2ax1f,_0x3b2ax18){return function(_0x3b2ax20){if(_0x3b2ax20){return _0x3b2ax20[_0x7dfd[57]](_0x3b2ax2a)[_0x7dfd[36]](function(_0x3b2ax2b){logger[_0x7dfd[29]](_0x7dfd[30],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[56]);logger[_0x7dfd[32]](_0x7dfd[39],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[56],JSON[_0x7dfd[31]](_0x3b2ax20));return _0x3b2ax2b})};return null}}function removeEntity(_0x3b2ax1d,_0x3b2ax1f,_0x3b2ax18){return function(_0x3b2ax20){if(_0x3b2ax20){return _0x3b2ax20[_0x7dfd[59]]()[_0x7dfd[36]](function(){logger[_0x7dfd[29]](_0x7dfd[30],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[58]);logger[_0x7dfd[32]](_0x7dfd[39],_0x3b2ax18,_0x3b2ax1f,_0x7dfd[58],JSON[_0x7dfd[31]](_0x3b2ax20));_0x3b2ax1d[_0x7dfd[42]](204)[_0x7dfd[41]]()})}}}function handleEntityNotFound(_0x3b2ax1d,_0x3b2ax1f,_0x3b2ax18){return function(_0x3b2ax20){if(!_0x3b2ax20){logger[_0x7dfd[26]](_0x7dfd[30],_0x3b2ax18,404,_0x7dfd[60]);_0x3b2ax1d[_0x7dfd[42]](404)[_0x7dfd[41]]();return null};return _0x3b2ax20}}function handleError(_0x3b2ax1d,_0x3b2ax1f,_0x3b2ax18){_0x3b2ax1f= _0x3b2ax1f|| 500;return function(_0x3b2ax1c){logger[_0x7dfd[26]](_0x7dfd[30],_0x3b2ax18,_0x3b2ax1f,JSON[_0x7dfd[31]](_0x3b2ax1c));delete _0x3b2ax1c[_0x7dfd[61]];_0x3b2ax1d[_0x7dfd[42]](_0x3b2ax1f)[_0x7dfd[62]](_0x3b2ax1c)}}exports[_0x7dfd[63]]= function(_0x3b2ax19,_0x3b2ax1d){var _0x3b2ax23={},_0x3b2ax2f={};_0x3b2ax2f[_0x7dfd[64]]= _[_0x7dfd[67]](db[_0x7dfd[66]][_0x7dfd[65]]);_0x3b2ax2f[_0x7dfd[68]]= _[_0x7dfd[67]](_0x3b2ax19[_0x7dfd[68]]);_0x3b2ax2f[_0x7dfd[69]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],_0x3b2ax2f[_0x7dfd[68]]);_0x3b2ax23[_0x7dfd[71]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],qs[_0x7dfd[72]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[72]]));_0x3b2ax23[_0x7dfd[71]]= (_0x3b2ax23[_0x7dfd[71]][_0x7dfd[73]])?_0x3b2ax23[_0x7dfd[71]]:_0x3b2ax2f[_0x7dfd[64]];if(!_0x3b2ax19[_0x7dfd[68]][_0x7dfd[75]](_0x7dfd[74])){_0x3b2ax23[_0x7dfd[47]]= qs[_0x7dfd[47]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[47]]);_0x3b2ax23[_0x7dfd[46]]= qs[_0x7dfd[46]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[46]])};_0x3b2ax23[_0x7dfd[76]]= qs[_0x7dfd[77]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[77]]);_0x3b2ax23[_0x7dfd[78]]= qs[_0x7dfd[69]](_[_0x7dfd[79]](_0x3b2ax19[_0x7dfd[68]],_0x3b2ax2f[_0x7dfd[69]]));if(_0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]){_0x3b2ax23[_0x7dfd[78]]= _[_0x7dfd[83]](_0x3b2ax23[_0x7dfd[78]],{$or:_[_0x7dfd[82]](_0x3b2ax23[_0x7dfd[71]],function(_0x3b2ax30){var _0x3b2ax31={};_0x3b2ax31[_0x3b2ax30]= {$like:_0x7dfd[81]+ _0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]+ _0x7dfd[81]};return _0x3b2ax31})})};_0x3b2ax23= _[_0x7dfd[83]]({},_0x3b2ax23,_0x3b2ax19[_0x7dfd[84]]);return db[_0x7dfd[66]][_0x7dfd[85]](_0x3b2ax23)[_0x7dfd[36]](respondWithFilteredResult(_0x3b2ax1d,_0x3b2ax23,_0x7dfd[63]))[_0x7dfd[27]](handleError(_0x3b2ax1d,null,_0x7dfd[63]))};exports[_0x7dfd[86]]= function(_0x3b2ax19,_0x3b2ax1d){var _0x3b2ax23={raw:false,where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}},_0x3b2ax2f={};_0x3b2ax2f[_0x7dfd[64]]= _[_0x7dfd[67]](db[_0x7dfd[66]][_0x7dfd[65]]);_0x3b2ax2f[_0x7dfd[68]]= _[_0x7dfd[67]](_0x3b2ax19[_0x7dfd[68]]);_0x3b2ax2f[_0x7dfd[69]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],_0x3b2ax2f[_0x7dfd[68]]);_0x3b2ax23[_0x7dfd[71]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],qs[_0x7dfd[72]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[72]]));_0x3b2ax23[_0x7dfd[71]]= (_0x3b2ax23[_0x7dfd[71]][_0x7dfd[73]])?_0x3b2ax23[_0x7dfd[71]]:_0x3b2ax2f[_0x7dfd[64]];_0x3b2ax23= _[_0x7dfd[83]]({},_0x3b2ax23,_0x3b2ax19[_0x7dfd[84]]);return db[_0x7dfd[66]][_0x7dfd[89]](_0x3b2ax23)[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax1d,null,_0x7dfd[86]))[_0x7dfd[36]](respondWithResult(_0x3b2ax1d,null,_0x7dfd[86]))[_0x7dfd[27]](handleError(_0x3b2ax1d,null,_0x7dfd[86]))};exports[_0x7dfd[90]]= function(_0x3b2ax19,_0x3b2ax1d){return db[_0x7dfd[66]][_0x7dfd[90]](_0x3b2ax19[_0x7dfd[91]],{})[_0x7dfd[36]](respondWithResult(_0x3b2ax1d,201,_0x7dfd[90]))[_0x7dfd[27]](handleError(_0x3b2ax1d,null,_0x7dfd[90]))};exports[_0x7dfd[57]]= function(_0x3b2ax19,_0x3b2ax1d){if(_0x3b2ax19[_0x7dfd[91]][_0x7dfd[87]]){delete _0x3b2ax19[_0x7dfd[91]][_0x7dfd[87]]};return db[_0x7dfd[66]][_0x7dfd[89]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax1d,null,_0x7dfd[57]))[_0x7dfd[36]](saveUpdates(_0x3b2ax19[_0x7dfd[91]],null,_0x7dfd[57]))[_0x7dfd[36]](respondWithResult(_0x3b2ax1d,null,_0x7dfd[57]))[_0x7dfd[27]](handleError(_0x3b2ax1d,null,_0x7dfd[57]))};exports[_0x7dfd[59]]= function(_0x3b2ax19,_0x3b2ax1d){return db[_0x7dfd[66]][_0x7dfd[89]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax1d,null,_0x7dfd[59]))[_0x7dfd[36]](removeEntity(_0x3b2ax1d,null,_0x7dfd[59]))[_0x7dfd[27]](handleError(_0x3b2ax1d,null,_0x7dfd[59]))};exports[_0x7dfd[92]]= function(_0x3b2ax19,_0x3b2ax20,_0x3b2ax32){var _0x3b2ax23={};var _0x3b2ax2f={};var _0x3b2ax33;var _0x3b2ax24;return db[_0x7dfd[66]][_0x7dfd[94]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax20,null,_0x7dfd[92]))[_0x7dfd[36]](function(_0x3b2ax20){if(_0x3b2ax20){_0x3b2ax33= _0x3b2ax20;_0x3b2ax2f[_0x7dfd[64]]= _[_0x7dfd[67]](db[_0x7dfd[93]][_0x7dfd[65]]);_0x3b2ax2f[_0x7dfd[68]]= _[_0x7dfd[67]](_0x3b2ax19[_0x7dfd[68]]);_0x3b2ax2f[_0x7dfd[69]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],_0x3b2ax2f[_0x7dfd[68]]);_0x3b2ax23[_0x7dfd[71]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],qs[_0x7dfd[72]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[72]]));_0x3b2ax23[_0x7dfd[71]]= (_0x3b2ax23[_0x7dfd[71]][_0x7dfd[73]])?_0x3b2ax23[_0x7dfd[71]]:_0x3b2ax2f[_0x7dfd[64]];_0x3b2ax23[_0x7dfd[76]]= qs[_0x7dfd[77]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[77]]);_0x3b2ax23[_0x7dfd[78]]= qs[_0x7dfd[69]](_[_0x7dfd[79]](_0x3b2ax19[_0x7dfd[68]],_0x3b2ax2f[_0x7dfd[69]]));if(_0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]){_0x3b2ax23[_0x7dfd[78]]= _[_0x7dfd[83]](_0x3b2ax23[_0x7dfd[78]],{$or:_[_0x7dfd[82]](_0x3b2ax23[_0x7dfd[71]],function(_0x3b2ax30){var _0x3b2ax31={};_0x3b2ax31[_0x3b2ax30]= {$like:_0x7dfd[81]+ _0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]+ _0x7dfd[81]};return _0x3b2ax31})})};_0x3b2ax23= _[_0x7dfd[83]]({},_0x3b2ax23,_0x3b2ax19[_0x7dfd[84]]);return _0x3b2ax33[_0x7dfd[92]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax35){if(_0x3b2ax35){_0x3b2ax24= _0x3b2ax35[_0x7dfd[73]];if(!_0x3b2ax19[_0x7dfd[68]][_0x7dfd[75]](_0x7dfd[74])){_0x3b2ax23[_0x7dfd[47]]= qs[_0x7dfd[47]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[47]]);_0x3b2ax23[_0x7dfd[46]]= qs[_0x7dfd[46]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[46]])};return _0x3b2ax33[_0x7dfd[92]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax34){return _0x3b2ax34?{count:_0x3b2ax24,rows:_0x3b2ax34}:null})[_0x7dfd[36]](respondWithResult(_0x3b2ax20,null,_0x7dfd[92]))[_0x7dfd[27]](handleError(_0x3b2ax20,null,_0x7dfd[92]))};exports[_0x7dfd[95]]= function(_0x3b2ax19,_0x3b2ax20,_0x3b2ax32){var _0x3b2ax23={};var _0x3b2ax2f={};var _0x3b2ax33;var _0x3b2ax24;return db[_0x7dfd[66]][_0x7dfd[94]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax20,null,_0x7dfd[95]))[_0x7dfd[36]](function(_0x3b2ax20){if(_0x3b2ax20){_0x3b2ax33= _0x3b2ax20;_0x3b2ax2f[_0x7dfd[64]]= _[_0x7dfd[67]](db[_0x7dfd[93]][_0x7dfd[65]]);_0x3b2ax2f[_0x7dfd[68]]= _[_0x7dfd[67]](_0x3b2ax19[_0x7dfd[68]]);_0x3b2ax2f[_0x7dfd[69]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],_0x3b2ax2f[_0x7dfd[68]]);_0x3b2ax23[_0x7dfd[71]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],qs[_0x7dfd[72]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[72]]));_0x3b2ax23[_0x7dfd[71]]= (_0x3b2ax23[_0x7dfd[71]][_0x7dfd[73]])?_0x3b2ax23[_0x7dfd[71]]:_0x3b2ax2f[_0x7dfd[64]];_0x3b2ax23[_0x7dfd[76]]= qs[_0x7dfd[77]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[77]]);_0x3b2ax23[_0x7dfd[78]]= qs[_0x7dfd[69]](_[_0x7dfd[79]](_0x3b2ax19[_0x7dfd[68]],_0x3b2ax2f[_0x7dfd[69]]));if(_0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]){_0x3b2ax23[_0x7dfd[78]]= _[_0x7dfd[83]](_0x3b2ax23[_0x7dfd[78]],{$or:_[_0x7dfd[82]](_0x3b2ax23[_0x7dfd[71]],function(_0x3b2ax30){var _0x3b2ax31={};_0x3b2ax31[_0x3b2ax30]= {$like:_0x7dfd[81]+ _0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]+ _0x7dfd[81]};return _0x3b2ax31})})};_0x3b2ax23= _[_0x7dfd[83]]({},_0x3b2ax23,_0x3b2ax19[_0x7dfd[84]]);return _0x3b2ax33[_0x7dfd[95]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax35){if(_0x3b2ax35){_0x3b2ax24= _0x3b2ax35[_0x7dfd[73]];if(!_0x3b2ax19[_0x7dfd[68]][_0x7dfd[75]](_0x7dfd[74])){_0x3b2ax23[_0x7dfd[47]]= qs[_0x7dfd[47]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[47]]);_0x3b2ax23[_0x7dfd[46]]= qs[_0x7dfd[46]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[46]])};return _0x3b2ax33[_0x7dfd[95]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax34){return _0x3b2ax34?{count:_0x3b2ax24,rows:_0x3b2ax34}:null})[_0x7dfd[36]](respondWithResult(_0x3b2ax20,null,_0x7dfd[95]))[_0x7dfd[27]](handleError(_0x3b2ax20,null,_0x7dfd[95]))};exports[_0x7dfd[96]]= function(_0x3b2ax19,_0x3b2ax20,_0x3b2ax32){var _0x3b2ax23={};var _0x3b2ax2f={};var _0x3b2ax33;var _0x3b2ax24;return db[_0x7dfd[66]][_0x7dfd[94]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax20,null,_0x7dfd[96]))[_0x7dfd[36]](function(_0x3b2ax20){if(_0x3b2ax20){_0x3b2ax33= _0x3b2ax20;_0x3b2ax2f[_0x7dfd[64]]= _[_0x7dfd[67]](db[_0x7dfd[93]][_0x7dfd[65]]);_0x3b2ax2f[_0x7dfd[68]]= _[_0x7dfd[67]](_0x3b2ax19[_0x7dfd[68]]);_0x3b2ax2f[_0x7dfd[69]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],_0x3b2ax2f[_0x7dfd[68]]);_0x3b2ax23[_0x7dfd[71]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],qs[_0x7dfd[72]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[72]]));_0x3b2ax23[_0x7dfd[71]]= (_0x3b2ax23[_0x7dfd[71]][_0x7dfd[73]])?_0x3b2ax23[_0x7dfd[71]]:_0x3b2ax2f[_0x7dfd[64]];_0x3b2ax23[_0x7dfd[76]]= qs[_0x7dfd[77]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[77]]);_0x3b2ax23[_0x7dfd[78]]= qs[_0x7dfd[69]](_[_0x7dfd[79]](_0x3b2ax19[_0x7dfd[68]],_0x3b2ax2f[_0x7dfd[69]]));if(_0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]){_0x3b2ax23[_0x7dfd[78]]= _[_0x7dfd[83]](_0x3b2ax23[_0x7dfd[78]],{$or:_[_0x7dfd[82]](_0x3b2ax23[_0x7dfd[71]],function(_0x3b2ax30){var _0x3b2ax31={};_0x3b2ax31[_0x3b2ax30]= {$like:_0x7dfd[81]+ _0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]+ _0x7dfd[81]};return _0x3b2ax31})})};_0x3b2ax23= _[_0x7dfd[83]]({},_0x3b2ax23,_0x3b2ax19[_0x7dfd[84]]);return _0x3b2ax33[_0x7dfd[96]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax35){if(_0x3b2ax35){_0x3b2ax24= _0x3b2ax35[_0x7dfd[73]];if(!_0x3b2ax19[_0x7dfd[68]][_0x7dfd[75]](_0x7dfd[74])){_0x3b2ax23[_0x7dfd[47]]= qs[_0x7dfd[47]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[47]]);_0x3b2ax23[_0x7dfd[46]]= qs[_0x7dfd[46]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[46]])};return _0x3b2ax33[_0x7dfd[96]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax34){return _0x3b2ax34?{count:_0x3b2ax24,rows:_0x3b2ax34}:null})[_0x7dfd[36]](respondWithResult(_0x3b2ax20,null,_0x7dfd[96]))[_0x7dfd[27]](handleError(_0x3b2ax20,null,_0x7dfd[96]))};exports[_0x7dfd[97]]= function(_0x3b2ax19,_0x3b2ax20,_0x3b2ax32){var _0x3b2ax23={};var _0x3b2ax2f={};var _0x3b2ax33;var _0x3b2ax24;return db[_0x7dfd[66]][_0x7dfd[94]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax20,null,_0x7dfd[97]))[_0x7dfd[36]](function(_0x3b2ax20){if(_0x3b2ax20){_0x3b2ax33= _0x3b2ax20;_0x3b2ax2f[_0x7dfd[64]]= _[_0x7dfd[67]](db[_0x7dfd[98]][_0x7dfd[65]]);_0x3b2ax2f[_0x7dfd[68]]= _[_0x7dfd[67]](_0x3b2ax19[_0x7dfd[68]]);_0x3b2ax2f[_0x7dfd[69]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],_0x3b2ax2f[_0x7dfd[68]]);_0x3b2ax23[_0x7dfd[71]]= _[_0x7dfd[70]](_0x3b2ax2f[_0x7dfd[64]],qs[_0x7dfd[72]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[72]]));_0x3b2ax23[_0x7dfd[71]]= (_0x3b2ax23[_0x7dfd[71]][_0x7dfd[73]])?_0x3b2ax23[_0x7dfd[71]]:_0x3b2ax2f[_0x7dfd[64]];_0x3b2ax23[_0x7dfd[76]]= qs[_0x7dfd[77]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[77]]);_0x3b2ax23[_0x7dfd[78]]= qs[_0x7dfd[69]](_[_0x7dfd[79]](_0x3b2ax19[_0x7dfd[68]],_0x3b2ax2f[_0x7dfd[69]]));if(_0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]){_0x3b2ax23[_0x7dfd[78]]= _[_0x7dfd[83]](_0x3b2ax23[_0x7dfd[78]],{$or:_[_0x7dfd[82]](_0x3b2ax23[_0x7dfd[71]],function(_0x3b2ax30){var _0x3b2ax31={};_0x3b2ax31[_0x3b2ax30]= {$like:_0x7dfd[81]+ _0x3b2ax19[_0x7dfd[68]][_0x7dfd[80]]+ _0x7dfd[81]};return _0x3b2ax31})})};_0x3b2ax23= _[_0x7dfd[83]]({},_0x3b2ax23,_0x3b2ax19[_0x7dfd[84]]);return _0x3b2ax33[_0x7dfd[97]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax35){if(_0x3b2ax35){_0x3b2ax24= _0x3b2ax35[_0x7dfd[73]];if(!_0x3b2ax19[_0x7dfd[68]][_0x7dfd[75]](_0x7dfd[74])){_0x3b2ax23[_0x7dfd[47]]= qs[_0x7dfd[47]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[47]]);_0x3b2ax23[_0x7dfd[46]]= qs[_0x7dfd[46]](_0x3b2ax19[_0x7dfd[68]][_0x7dfd[46]])};return _0x3b2ax33[_0x7dfd[97]](_0x3b2ax23)}})[_0x7dfd[36]](function(_0x3b2ax34){return _0x3b2ax34?{count:_0x3b2ax24,rows:_0x3b2ax34}:null})[_0x7dfd[36]](respondWithResult(_0x3b2ax20,null,_0x7dfd[97]))[_0x7dfd[27]](handleError(_0x3b2ax20,null,_0x7dfd[97]))};exports[_0x7dfd[99]]= function(_0x3b2ax19,_0x3b2ax1d,_0x3b2ax32){if(_0x3b2ax19[_0x7dfd[91]][_0x7dfd[87]]){delete _0x3b2ax19[_0x7dfd[91]][_0x7dfd[87]]};return db[_0x7dfd[66]][_0x7dfd[94]]({where:{id:_0x3b2ax19[_0x7dfd[88]][_0x7dfd[87]]}})[_0x7dfd[36]](handleEntityNotFound(_0x3b2ax1d,null,_0x7dfd[99]))[_0x7dfd[36]](function(_0x3b2ax20){if(_0x3b2ax20){return _0x3b2ax20[_0x7dfd[99]](_0x3b2ax19[_0x7dfd[91]][_0x7dfd[100]])};return null})[_0x7dfd[36]](respondWithResult(_0x3b2ax1d,null,_0x7dfd[99]))[_0x7dfd[27]](handleError(_0x3b2ax1d,null,_0x7dfd[99]))}
\ No newline at end of file
+var _0xb924=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x54\x61\x67\x73","\x54\x61\x67","\x73\x65\x74\x54\x61\x67\x73","\x69\x64\x73"];_0xb924[0];var jsonpatch=require(_0xb924[1]);var rp=require(_0xb924[2]);var moment=require(_0xb924[3]);var BPromise=require(_0xb924[4]);var util=require(_0xb924[5]);var path=require(_0xb924[6]);var sox=require(_0xb924[7]);var ejs=require(_0xb924[8]);var fs=require(_0xb924[9]);var _=require(_0xb924[10]);var squel=require(_0xb924[11]);var crypto=require(_0xb924[12]);var jsforce=require(_0xb924[13]);var toCsv=require(_0xb924[14]);var qs=require(_0xb924[15]);var logger=require(_0xb924[17])(_0xb924[16]);var utils=require(_0xb924[18]);var config=require(_0xb924[19]);var db=require(_0xb924[21])[_0xb924[20]];var jayson=require(_0xb924[22]);var client=jayson[_0xb924[24]][_0xb924[23]]({port:9002});function respondWithRpcPromise(_0x696cx17,_0x696cx18,_0x696cx19){return  new BPromise(function(_0x696cx1a,_0x696cx1b){return client[_0xb924[37]](_0x696cx17,_0x696cx19)[_0xb924[36]](function(_0x696cx1d){logger[_0xb924[29]](_0xb924[25],_0x696cx18,_0xb924[28]);logger[_0xb924[32]](_0xb924[30],_0x696cx18,_0xb924[28],JSON[_0xb924[31]](_0x696cx1d));if(_0x696cx1d[_0xb924[26]]){if(_0x696cx1d[_0xb924[26]][_0xb924[33]]=== 500){logger[_0xb924[26]](_0xb924[25],_0x696cx18,_0x696cx1d[_0xb924[26]][_0xb924[34]]);return _0x696cx1b(_0x696cx1d[_0xb924[26]][_0xb924[34]])};logger[_0xb924[26]](_0xb924[25],_0x696cx18,_0x696cx1d[_0xb924[26]][_0xb924[34]]);return _0x696cx1a(_0x696cx1d[_0xb924[26]][_0xb924[34]])}else {logger[_0xb924[29]](_0xb924[25],_0x696cx18,_0xb924[28]);_0x696cx1a(_0x696cx1d[_0xb924[35]][_0xb924[34]])}})[_0xb924[27]](function(_0x696cx1c){logger[_0xb924[26]](_0xb924[25],_0x696cx18,_0x696cx1c);_0x696cx1b(_0x696cx1c)})})}function respondWithStatusCode(_0x696cx1d,_0x696cx1f,_0x696cx18){_0x696cx1f= _0x696cx1f|| 204;return function(_0x696cx20){if(_0x696cx20){logger[_0xb924[29]](_0xb924[30],_0x696cx18,_0x696cx1f,_0xb924[38]);logger[_0xb924[32]](_0xb924[39],_0x696cx18,_0x696cx1f,_0xb924[38]);return _0x696cx1d[_0xb924[40]](_0x696cx1f)};return _0x696cx1d[_0xb924[42]](304)[_0xb924[41]]()}}function respondWithResult(_0x696cx1d,_0x696cx1f,_0x696cx18){_0x696cx1f= _0x696cx1f|| 200;return function(_0x696cx20){if(_0x696cx20){logger[_0xb924[29]](_0xb924[30],_0x696cx18,_0x696cx1f,_0xb924[43]);logger[_0xb924[32]](_0xb924[39],_0x696cx18,_0x696cx1f,_0xb924[43],JSON[_0xb924[31]](_0x696cx20));return _0x696cx1d[_0xb924[42]](_0x696cx1f)[_0xb924[44]](_0x696cx20)};return _0x696cx1d[_0xb924[42]](304)[_0xb924[41]]()}}function respondWithFilteredResult(_0x696cx1d,_0x696cx23,_0x696cx18){return function(_0x696cx20){if(_0x696cx20){var _0x696cx24=_0x696cx20[_0xb924[45]],_0x696cx25=_0x696cx23[_0xb924[46]],_0x696cx26=_0x696cx23[_0xb924[46]]+ _0x696cx23[_0xb924[47]],_0x696cx1f;if(_0x696cx26>= _0x696cx24){_0x696cx26= _0x696cx24;_0x696cx1f= 200}else {_0x696cx1f= 206};_0x696cx1d[_0xb924[42]](_0x696cx1f);logger[_0xb924[29]](_0xb924[30],_0x696cx18,_0x696cx1f,_0xb924[48]);logger[_0xb924[32]](_0xb924[39],_0x696cx18,_0x696cx1f,_0xb924[43],JSON[_0xb924[31]](_0x696cx20));return _0x696cx1d[_0xb924[52]](_0xb924[49],_0x696cx25+ _0xb924[50]+ _0x696cx26+ _0xb924[51]+ _0x696cx24)[_0xb924[44]](_0x696cx20)};return null}}function patchUpdates(_0x696cx28){return function(_0x696cx20){try{jsonpatch[_0xb924[53]](_0x696cx20,_0x696cx28,true)}catch(err){return BPromise[_0xb924[54]](err)};return _0x696cx20[_0xb924[55]]()}}function saveUpdates(_0x696cx2a,_0x696cx1f,_0x696cx18){return function(_0x696cx20){if(_0x696cx20){return _0x696cx20[_0xb924[57]](_0x696cx2a)[_0xb924[36]](function(_0x696cx2b){logger[_0xb924[29]](_0xb924[30],_0x696cx18,_0x696cx1f,_0xb924[56]);logger[_0xb924[32]](_0xb924[39],_0x696cx18,_0x696cx1f,_0xb924[56],JSON[_0xb924[31]](_0x696cx20));return _0x696cx2b})};return null}}function removeEntity(_0x696cx1d,_0x696cx1f,_0x696cx18){return function(_0x696cx20){if(_0x696cx20){return _0x696cx20[_0xb924[59]]()[_0xb924[36]](function(){logger[_0xb924[29]](_0xb924[30],_0x696cx18,_0x696cx1f,_0xb924[58]);logger[_0xb924[32]](_0xb924[39],_0x696cx18,_0x696cx1f,_0xb924[58],JSON[_0xb924[31]](_0x696cx20));_0x696cx1d[_0xb924[42]](204)[_0xb924[41]]()})}}}function handleEntityNotFound(_0x696cx1d,_0x696cx1f,_0x696cx18){return function(_0x696cx20){if(!_0x696cx20){logger[_0xb924[26]](_0xb924[30],_0x696cx18,404,_0xb924[60]);_0x696cx1d[_0xb924[42]](404)[_0xb924[41]]();return null};return _0x696cx20}}function handleError(_0x696cx1d,_0x696cx1f,_0x696cx18){_0x696cx1f= _0x696cx1f|| 500;return function(_0x696cx1c){logger[_0xb924[26]](_0xb924[30],_0x696cx18,_0x696cx1f,JSON[_0xb924[31]](_0x696cx1c));delete _0x696cx1c[_0xb924[61]];_0x696cx1d[_0xb924[42]](_0x696cx1f)[_0xb924[62]](_0x696cx1c)}}exports[_0xb924[63]]= function(_0x696cx19,_0x696cx1d){var _0x696cx23={},_0x696cx2f={};_0x696cx2f[_0xb924[64]]= _[_0xb924[67]](db[_0xb924[66]][_0xb924[65]]);_0x696cx2f[_0xb924[68]]= _[_0xb924[67]](_0x696cx19[_0xb924[68]]);_0x696cx2f[_0xb924[69]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],_0x696cx2f[_0xb924[68]]);_0x696cx23[_0xb924[71]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],qs[_0xb924[72]](_0x696cx19[_0xb924[68]][_0xb924[72]]));_0x696cx23[_0xb924[71]]= (_0x696cx23[_0xb924[71]][_0xb924[73]])?_0x696cx23[_0xb924[71]]:_0x696cx2f[_0xb924[64]];if(!_0x696cx19[_0xb924[68]][_0xb924[75]](_0xb924[74])){_0x696cx23[_0xb924[47]]= qs[_0xb924[47]](_0x696cx19[_0xb924[68]][_0xb924[47]]);_0x696cx23[_0xb924[46]]= qs[_0xb924[46]](_0x696cx19[_0xb924[68]][_0xb924[46]])};_0x696cx23[_0xb924[76]]= qs[_0xb924[77]](_0x696cx19[_0xb924[68]][_0xb924[77]]);_0x696cx23[_0xb924[78]]= qs[_0xb924[69]](_[_0xb924[79]](_0x696cx19[_0xb924[68]],_0x696cx2f[_0xb924[69]]));if(_0x696cx19[_0xb924[68]][_0xb924[80]]){_0x696cx23[_0xb924[78]]= _[_0xb924[83]](_0x696cx23[_0xb924[78]],{$or:_[_0xb924[82]](_0x696cx23[_0xb924[71]],function(_0x696cx30){var _0x696cx31={};_0x696cx31[_0x696cx30]= {$like:_0xb924[81]+ _0x696cx19[_0xb924[68]][_0xb924[80]]+ _0xb924[81]};return _0x696cx31})})};_0x696cx23= _[_0xb924[83]]({},_0x696cx23,_0x696cx19[_0xb924[84]]);return db[_0xb924[66]][_0xb924[85]](_0x696cx23)[_0xb924[36]](respondWithFilteredResult(_0x696cx1d,_0x696cx23,_0xb924[63]))[_0xb924[27]](handleError(_0x696cx1d,null,_0xb924[63]))};exports[_0xb924[86]]= function(_0x696cx19,_0x696cx1d){var _0x696cx23={raw:false,where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}},_0x696cx2f={};_0x696cx2f[_0xb924[64]]= _[_0xb924[67]](db[_0xb924[66]][_0xb924[65]]);_0x696cx2f[_0xb924[68]]= _[_0xb924[67]](_0x696cx19[_0xb924[68]]);_0x696cx2f[_0xb924[69]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],_0x696cx2f[_0xb924[68]]);_0x696cx23[_0xb924[71]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],qs[_0xb924[72]](_0x696cx19[_0xb924[68]][_0xb924[72]]));_0x696cx23[_0xb924[71]]= (_0x696cx23[_0xb924[71]][_0xb924[73]])?_0x696cx23[_0xb924[71]]:_0x696cx2f[_0xb924[64]];_0x696cx23= _[_0xb924[83]]({},_0x696cx23,_0x696cx19[_0xb924[84]]);return db[_0xb924[66]][_0xb924[89]](_0x696cx23)[_0xb924[36]](handleEntityNotFound(_0x696cx1d,null,_0xb924[86]))[_0xb924[36]](respondWithResult(_0x696cx1d,null,_0xb924[86]))[_0xb924[27]](handleError(_0x696cx1d,null,_0xb924[86]))};exports[_0xb924[90]]= function(_0x696cx19,_0x696cx1d){return db[_0xb924[66]][_0xb924[90]](_0x696cx19[_0xb924[91]],{})[_0xb924[36]](respondWithResult(_0x696cx1d,201,_0xb924[90]))[_0xb924[27]](handleError(_0x696cx1d,null,_0xb924[90]))};exports[_0xb924[57]]= function(_0x696cx19,_0x696cx1d){if(_0x696cx19[_0xb924[91]][_0xb924[87]]){delete _0x696cx19[_0xb924[91]][_0xb924[87]]};return db[_0xb924[66]][_0xb924[89]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx1d,null,_0xb924[57]))[_0xb924[36]](saveUpdates(_0x696cx19[_0xb924[91]],null,_0xb924[57]))[_0xb924[36]](respondWithResult(_0x696cx1d,null,_0xb924[57]))[_0xb924[27]](handleError(_0x696cx1d,null,_0xb924[57]))};exports[_0xb924[59]]= function(_0x696cx19,_0x696cx1d){return db[_0xb924[66]][_0xb924[89]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx1d,null,_0xb924[59]))[_0xb924[36]](removeEntity(_0x696cx1d,null,_0xb924[59]))[_0xb924[27]](handleError(_0x696cx1d,null,_0xb924[59]))};exports[_0xb924[92]]= function(_0x696cx19,_0x696cx20,_0x696cx32){var _0x696cx23={};var _0x696cx2f={};var _0x696cx33;var _0x696cx24;return db[_0xb924[66]][_0xb924[94]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx20,null,_0xb924[92]))[_0xb924[36]](function(_0x696cx20){if(_0x696cx20){_0x696cx33= _0x696cx20;_0x696cx2f[_0xb924[64]]= _[_0xb924[67]](db[_0xb924[93]][_0xb924[65]]);_0x696cx2f[_0xb924[68]]= _[_0xb924[67]](_0x696cx19[_0xb924[68]]);_0x696cx2f[_0xb924[69]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],_0x696cx2f[_0xb924[68]]);_0x696cx23[_0xb924[71]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],qs[_0xb924[72]](_0x696cx19[_0xb924[68]][_0xb924[72]]));_0x696cx23[_0xb924[71]]= (_0x696cx23[_0xb924[71]][_0xb924[73]])?_0x696cx23[_0xb924[71]]:_0x696cx2f[_0xb924[64]];_0x696cx23[_0xb924[76]]= qs[_0xb924[77]](_0x696cx19[_0xb924[68]][_0xb924[77]]);_0x696cx23[_0xb924[78]]= qs[_0xb924[69]](_[_0xb924[79]](_0x696cx19[_0xb924[68]],_0x696cx2f[_0xb924[69]]));if(_0x696cx19[_0xb924[68]][_0xb924[80]]){_0x696cx23[_0xb924[78]]= _[_0xb924[83]](_0x696cx23[_0xb924[78]],{$or:_[_0xb924[82]](_0x696cx23[_0xb924[71]],function(_0x696cx30){var _0x696cx31={};_0x696cx31[_0x696cx30]= {$like:_0xb924[81]+ _0x696cx19[_0xb924[68]][_0xb924[80]]+ _0xb924[81]};return _0x696cx31})})};_0x696cx23= _[_0xb924[83]]({},_0x696cx23,_0x696cx19[_0xb924[84]]);return _0x696cx33[_0xb924[92]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx35){if(_0x696cx35){_0x696cx24= _0x696cx35[_0xb924[73]];if(!_0x696cx19[_0xb924[68]][_0xb924[75]](_0xb924[74])){_0x696cx23[_0xb924[47]]= qs[_0xb924[47]](_0x696cx19[_0xb924[68]][_0xb924[47]]);_0x696cx23[_0xb924[46]]= qs[_0xb924[46]](_0x696cx19[_0xb924[68]][_0xb924[46]])};return _0x696cx33[_0xb924[92]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx34){return _0x696cx34?{count:_0x696cx24,rows:_0x696cx34}:null})[_0xb924[36]](respondWithResult(_0x696cx20,null,_0xb924[92]))[_0xb924[27]](handleError(_0x696cx20,null,_0xb924[92]))};exports[_0xb924[95]]= function(_0x696cx19,_0x696cx20,_0x696cx32){var _0x696cx23={};var _0x696cx2f={};var _0x696cx33;var _0x696cx24;return db[_0xb924[66]][_0xb924[94]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx20,null,_0xb924[95]))[_0xb924[36]](function(_0x696cx20){if(_0x696cx20){_0x696cx33= _0x696cx20;_0x696cx2f[_0xb924[64]]= _[_0xb924[67]](db[_0xb924[93]][_0xb924[65]]);_0x696cx2f[_0xb924[68]]= _[_0xb924[67]](_0x696cx19[_0xb924[68]]);_0x696cx2f[_0xb924[69]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],_0x696cx2f[_0xb924[68]]);_0x696cx23[_0xb924[71]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],qs[_0xb924[72]](_0x696cx19[_0xb924[68]][_0xb924[72]]));_0x696cx23[_0xb924[71]]= (_0x696cx23[_0xb924[71]][_0xb924[73]])?_0x696cx23[_0xb924[71]]:_0x696cx2f[_0xb924[64]];_0x696cx23[_0xb924[76]]= qs[_0xb924[77]](_0x696cx19[_0xb924[68]][_0xb924[77]]);_0x696cx23[_0xb924[78]]= qs[_0xb924[69]](_[_0xb924[79]](_0x696cx19[_0xb924[68]],_0x696cx2f[_0xb924[69]]));if(_0x696cx19[_0xb924[68]][_0xb924[80]]){_0x696cx23[_0xb924[78]]= _[_0xb924[83]](_0x696cx23[_0xb924[78]],{$or:_[_0xb924[82]](_0x696cx23[_0xb924[71]],function(_0x696cx30){var _0x696cx31={};_0x696cx31[_0x696cx30]= {$like:_0xb924[81]+ _0x696cx19[_0xb924[68]][_0xb924[80]]+ _0xb924[81]};return _0x696cx31})})};_0x696cx23= _[_0xb924[83]]({},_0x696cx23,_0x696cx19[_0xb924[84]]);return _0x696cx33[_0xb924[95]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx35){if(_0x696cx35){_0x696cx24= _0x696cx35[_0xb924[73]];if(!_0x696cx19[_0xb924[68]][_0xb924[75]](_0xb924[74])){_0x696cx23[_0xb924[47]]= qs[_0xb924[47]](_0x696cx19[_0xb924[68]][_0xb924[47]]);_0x696cx23[_0xb924[46]]= qs[_0xb924[46]](_0x696cx19[_0xb924[68]][_0xb924[46]])};return _0x696cx33[_0xb924[95]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx34){return _0x696cx34?{count:_0x696cx24,rows:_0x696cx34}:null})[_0xb924[36]](respondWithResult(_0x696cx20,null,_0xb924[95]))[_0xb924[27]](handleError(_0x696cx20,null,_0xb924[95]))};exports[_0xb924[96]]= function(_0x696cx19,_0x696cx20,_0x696cx32){var _0x696cx23={};var _0x696cx2f={};var _0x696cx33;var _0x696cx24;return db[_0xb924[66]][_0xb924[94]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx20,null,_0xb924[96]))[_0xb924[36]](function(_0x696cx20){if(_0x696cx20){_0x696cx33= _0x696cx20;_0x696cx2f[_0xb924[64]]= _[_0xb924[67]](db[_0xb924[93]][_0xb924[65]]);_0x696cx2f[_0xb924[68]]= _[_0xb924[67]](_0x696cx19[_0xb924[68]]);_0x696cx2f[_0xb924[69]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],_0x696cx2f[_0xb924[68]]);_0x696cx23[_0xb924[71]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],qs[_0xb924[72]](_0x696cx19[_0xb924[68]][_0xb924[72]]));_0x696cx23[_0xb924[71]]= (_0x696cx23[_0xb924[71]][_0xb924[73]])?_0x696cx23[_0xb924[71]]:_0x696cx2f[_0xb924[64]];_0x696cx23[_0xb924[76]]= qs[_0xb924[77]](_0x696cx19[_0xb924[68]][_0xb924[77]]);_0x696cx23[_0xb924[78]]= qs[_0xb924[69]](_[_0xb924[79]](_0x696cx19[_0xb924[68]],_0x696cx2f[_0xb924[69]]));if(_0x696cx19[_0xb924[68]][_0xb924[80]]){_0x696cx23[_0xb924[78]]= _[_0xb924[83]](_0x696cx23[_0xb924[78]],{$or:_[_0xb924[82]](_0x696cx23[_0xb924[71]],function(_0x696cx30){var _0x696cx31={};_0x696cx31[_0x696cx30]= {$like:_0xb924[81]+ _0x696cx19[_0xb924[68]][_0xb924[80]]+ _0xb924[81]};return _0x696cx31})})};_0x696cx23= _[_0xb924[83]]({},_0x696cx23,_0x696cx19[_0xb924[84]]);return _0x696cx33[_0xb924[96]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx35){if(_0x696cx35){_0x696cx24= _0x696cx35[_0xb924[73]];if(!_0x696cx19[_0xb924[68]][_0xb924[75]](_0xb924[74])){_0x696cx23[_0xb924[47]]= qs[_0xb924[47]](_0x696cx19[_0xb924[68]][_0xb924[47]]);_0x696cx23[_0xb924[46]]= qs[_0xb924[46]](_0x696cx19[_0xb924[68]][_0xb924[46]])};return _0x696cx33[_0xb924[96]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx34){return _0x696cx34?{count:_0x696cx24,rows:_0x696cx34}:null})[_0xb924[36]](respondWithResult(_0x696cx20,null,_0xb924[96]))[_0xb924[27]](handleError(_0x696cx20,null,_0xb924[96]))};exports[_0xb924[97]]= function(_0x696cx19,_0x696cx20,_0x696cx32){var _0x696cx23={};var _0x696cx2f={};var _0x696cx33;var _0x696cx24;return db[_0xb924[66]][_0xb924[94]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx20,null,_0xb924[97]))[_0xb924[36]](function(_0x696cx20){if(_0x696cx20){_0x696cx33= _0x696cx20;_0x696cx2f[_0xb924[64]]= _[_0xb924[67]](db[_0xb924[98]][_0xb924[65]]);_0x696cx2f[_0xb924[68]]= _[_0xb924[67]](_0x696cx19[_0xb924[68]]);_0x696cx2f[_0xb924[69]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],_0x696cx2f[_0xb924[68]]);_0x696cx23[_0xb924[71]]= _[_0xb924[70]](_0x696cx2f[_0xb924[64]],qs[_0xb924[72]](_0x696cx19[_0xb924[68]][_0xb924[72]]));_0x696cx23[_0xb924[71]]= (_0x696cx23[_0xb924[71]][_0xb924[73]])?_0x696cx23[_0xb924[71]]:_0x696cx2f[_0xb924[64]];_0x696cx23[_0xb924[76]]= qs[_0xb924[77]](_0x696cx19[_0xb924[68]][_0xb924[77]]);_0x696cx23[_0xb924[78]]= qs[_0xb924[69]](_[_0xb924[79]](_0x696cx19[_0xb924[68]],_0x696cx2f[_0xb924[69]]));if(_0x696cx19[_0xb924[68]][_0xb924[80]]){_0x696cx23[_0xb924[78]]= _[_0xb924[83]](_0x696cx23[_0xb924[78]],{$or:_[_0xb924[82]](_0x696cx23[_0xb924[71]],function(_0x696cx30){var _0x696cx31={};_0x696cx31[_0x696cx30]= {$like:_0xb924[81]+ _0x696cx19[_0xb924[68]][_0xb924[80]]+ _0xb924[81]};return _0x696cx31})})};_0x696cx23= _[_0xb924[83]]({},_0x696cx23,_0x696cx19[_0xb924[84]]);return _0x696cx33[_0xb924[97]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx35){if(_0x696cx35){_0x696cx24= _0x696cx35[_0xb924[73]];if(!_0x696cx19[_0xb924[68]][_0xb924[75]](_0xb924[74])){_0x696cx23[_0xb924[47]]= qs[_0xb924[47]](_0x696cx19[_0xb924[68]][_0xb924[47]]);_0x696cx23[_0xb924[46]]= qs[_0xb924[46]](_0x696cx19[_0xb924[68]][_0xb924[46]])};return _0x696cx33[_0xb924[97]](_0x696cx23)}})[_0xb924[36]](function(_0x696cx34){return _0x696cx34?{count:_0x696cx24,rows:_0x696cx34}:null})[_0xb924[36]](respondWithResult(_0x696cx20,null,_0xb924[97]))[_0xb924[27]](handleError(_0x696cx20,null,_0xb924[97]))};exports[_0xb924[99]]= function(_0x696cx19,_0x696cx1d,_0x696cx32){if(_0x696cx19[_0xb924[91]][_0xb924[87]]){delete _0x696cx19[_0xb924[91]][_0xb924[87]]};return db[_0xb924[66]][_0xb924[94]]({where:{id:_0x696cx19[_0xb924[88]][_0xb924[87]]}})[_0xb924[36]](handleEntityNotFound(_0x696cx1d,null,_0xb924[99]))[_0xb924[36]](function(_0x696cx20){if(_0x696cx20){return _0x696cx20[_0xb924[99]](_0x696cx19[_0xb924[91]][_0xb924[100]])};return null})[_0xb924[36]](respondWithResult(_0x696cx1d,null,_0xb924[99]))[_0xb924[27]](handleError(_0x696cx1d,null,_0xb924[99]))}
\ No newline at end of file
index 4d80170..9dd17bc 100644 (file)
@@ -1 +1 @@
-var _0xf17a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xf17a[0];var _=require(_0xf17a[1]);var util=require(_0xf17a[2]);var logger=require(_0xf17a[4])(_0xf17a[3]);var attributes=require(_0xf17a[5]);module[_0xf17a[6]]= function(_0xa330x5,_0xa330x6){return _0xa330x5[_0xf17a[9]](_0xf17a[7],attributes,{tableName:_0xf17a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x6ad3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x6ad3[0];var _=require(_0x6ad3[1]);var util=require(_0x6ad3[2]);var logger=require(_0x6ad3[4])(_0x6ad3[3]);var attributes=require(_0x6ad3[5]);module[_0x6ad3[6]]= function(_0xf33cx5,_0xf33cx6){return _0xf33cx5[_0x6ad3[9]](_0x6ad3[7],attributes,{tableName:_0x6ad3[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 3921c89..ac5c1c7 100644 (file)
@@ -1 +1 @@
-var _0xe78b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe78b[0];var _=require(_0xe78b[1]);var util=require(_0xe78b[2]);var moment=require(_0xe78b[3]);var BPromise=require(_0xe78b[4]);var db=require(_0xe78b[6])[_0xe78b[5]];var utils=require(_0xe78b[7]);var logger=require(_0xe78b[9])(_0xe78b[8]);var jayson=require(_0xe78b[10]);var client=jayson[_0xe78b[12]][_0xe78b[11]]({port:9002});function respondWithRpcPromise(_0x6f75xb,_0x6f75xc,_0x6f75xd){return  new BPromise(function(_0x6f75xe,_0x6f75xf){return client[_0xe78b[25]](_0x6f75xb,_0x6f75xd)[_0xe78b[24]](function(_0x6f75x11){logger[_0xe78b[17]](_0xe78b[13],_0x6f75xc,_0xe78b[16]);logger[_0xe78b[20]](_0xe78b[18],_0x6f75xc,_0xe78b[16],JSON[_0xe78b[19]](_0x6f75x11));if(_0x6f75x11[_0xe78b[14]]){if(_0x6f75x11[_0xe78b[14]][_0xe78b[21]]=== 500){logger[_0xe78b[14]](_0xe78b[13],_0x6f75xc,_0x6f75x11[_0xe78b[14]][_0xe78b[22]]);return _0x6f75xf(_0x6f75x11[_0xe78b[14]][_0xe78b[22]])};logger[_0xe78b[14]](_0xe78b[13],_0x6f75xc,_0x6f75x11[_0xe78b[14]][_0xe78b[22]]);return _0x6f75xe(_0x6f75x11[_0xe78b[14]][_0xe78b[22]])}else {logger[_0xe78b[17]](_0xe78b[13],_0x6f75xc,_0xe78b[16]);_0x6f75xe(_0x6f75x11[_0xe78b[23]][_0xe78b[22]])}})[_0xe78b[15]](function(_0x6f75x10){logger[_0xe78b[14]](_0xe78b[13],_0x6f75xc,_0x6f75x10);_0x6f75xf(_0x6f75x10)})})}
\ No newline at end of file
+var _0x56dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x56dd[0];var _=require(_0x56dd[1]);var util=require(_0x56dd[2]);var moment=require(_0x56dd[3]);var BPromise=require(_0x56dd[4]);var db=require(_0x56dd[6])[_0x56dd[5]];var utils=require(_0x56dd[7]);var logger=require(_0x56dd[9])(_0x56dd[8]);var jayson=require(_0x56dd[10]);var client=jayson[_0x56dd[12]][_0x56dd[11]]({port:9002});function respondWithRpcPromise(_0x4838xb,_0x4838xc,_0x4838xd){return  new BPromise(function(_0x4838xe,_0x4838xf){return client[_0x56dd[25]](_0x4838xb,_0x4838xd)[_0x56dd[24]](function(_0x4838x11){logger[_0x56dd[17]](_0x56dd[13],_0x4838xc,_0x56dd[16]);logger[_0x56dd[20]](_0x56dd[18],_0x4838xc,_0x56dd[16],JSON[_0x56dd[19]](_0x4838x11));if(_0x4838x11[_0x56dd[14]]){if(_0x4838x11[_0x56dd[14]][_0x56dd[21]]=== 500){logger[_0x56dd[14]](_0x56dd[13],_0x4838xc,_0x4838x11[_0x56dd[14]][_0x56dd[22]]);return _0x4838xf(_0x4838x11[_0x56dd[14]][_0x56dd[22]])};logger[_0x56dd[14]](_0x56dd[13],_0x4838xc,_0x4838x11[_0x56dd[14]][_0x56dd[22]]);return _0x4838xe(_0x4838x11[_0x56dd[14]][_0x56dd[22]])}else {logger[_0x56dd[17]](_0x56dd[13],_0x4838xc,_0x56dd[16]);_0x4838xe(_0x4838x11[_0x56dd[23]][_0x56dd[22]])}})[_0x56dd[15]](function(_0x4838x10){logger[_0x56dd[14]](_0x56dd[13],_0x4838xc,_0x4838x10);_0x4838xf(_0x4838x10)})})}
\ No newline at end of file
index 2968b38..11225b1 100644 (file)
@@ -1 +1 @@
-var _0x7867=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7867[0];var multer=require(_0x7867[1]);var util=require(_0x7867[2]);var path=require(_0x7867[3]);var express=require(_0x7867[4]);var router=express.Router();var auth=require(_0x7867[5]);var config=require(_0x7867[6]);var controller=require(_0x7867[7]);router[_0x7867[11]](_0x7867[8],auth[_0x7867[9]](),controller[_0x7867[10]]);router[_0x7867[11]](_0x7867[12],auth[_0x7867[9]](),controller[_0x7867[13]]);router[_0x7867[15]](_0x7867[8],auth[_0x7867[9]](),controller[_0x7867[14]]);router[_0x7867[17]](_0x7867[12],auth[_0x7867[9]](),controller[_0x7867[16]]);router[_0x7867[19]](_0x7867[12],auth[_0x7867[9]](),controller[_0x7867[18]]);module[_0x7867[20]]= router
\ No newline at end of file
+var _0x31c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x31c4[0];var multer=require(_0x31c4[1]);var util=require(_0x31c4[2]);var path=require(_0x31c4[3]);var express=require(_0x31c4[4]);var router=express.Router();var auth=require(_0x31c4[5]);var config=require(_0x31c4[6]);var controller=require(_0x31c4[7]);router[_0x31c4[11]](_0x31c4[8],auth[_0x31c4[9]](),controller[_0x31c4[10]]);router[_0x31c4[11]](_0x31c4[12],auth[_0x31c4[9]](),controller[_0x31c4[13]]);router[_0x31c4[15]](_0x31c4[8],auth[_0x31c4[9]](),controller[_0x31c4[14]]);router[_0x31c4[17]](_0x31c4[12],auth[_0x31c4[9]](),controller[_0x31c4[16]]);router[_0x31c4[19]](_0x31c4[12],auth[_0x31c4[9]](),controller[_0x31c4[18]]);module[_0x31c4[20]]= router
\ No newline at end of file
index 139cb0e..a717894 100644 (file)
@@ -1 +1 @@
-var _0xa718=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xa718[0];var Sequelize=require(_0xa718[1]);module[_0xa718[2]]= {type:{type:Sequelize.ENUM(_0xa718[3],_0xa718[4],_0xa718[5],_0xa718[6]),defaultValue:_0xa718[3]},content:{type:Sequelize[_0xa718[7]]},key:{type:Sequelize[_0xa718[7]]},keyType:{type:Sequelize.ENUM(_0xa718[3],_0xa718[4],_0xa718[5])},keyContent:{type:Sequelize[_0xa718[7]]},idField:{type:Sequelize[_0xa718[7]]},nameField:{type:Sequelize[_0xa718[7]]},customField:{type:Sequelize[_0xa718[8]],defaultValue:true},variableName:{type:Sequelize[_0xa718[7]]}}
\ No newline at end of file
+var _0xdeaa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xdeaa[0];var Sequelize=require(_0xdeaa[1]);module[_0xdeaa[2]]= {type:{type:Sequelize.ENUM(_0xdeaa[3],_0xdeaa[4],_0xdeaa[5],_0xdeaa[6]),defaultValue:_0xdeaa[3]},content:{type:Sequelize[_0xdeaa[7]]},key:{type:Sequelize[_0xdeaa[7]]},keyType:{type:Sequelize.ENUM(_0xdeaa[3],_0xdeaa[4],_0xdeaa[5])},keyContent:{type:Sequelize[_0xdeaa[7]]},idField:{type:Sequelize[_0xdeaa[7]]},nameField:{type:Sequelize[_0xdeaa[7]]},customField:{type:Sequelize[_0xdeaa[8]],defaultValue:true},variableName:{type:Sequelize[_0xdeaa[7]]}}
\ No newline at end of file
index 4c1e4d8..451f369 100644 (file)
@@ -1 +1 @@
-var _0x8d6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x8d6a[0];var jsonpatch=require(_0x8d6a[1]);var rp=require(_0x8d6a[2]);var moment=require(_0x8d6a[3]);var BPromise=require(_0x8d6a[4]);var util=require(_0x8d6a[5]);var path=require(_0x8d6a[6]);var sox=require(_0x8d6a[7]);var ejs=require(_0x8d6a[8]);var fs=require(_0x8d6a[9]);var _=require(_0x8d6a[10]);var squel=require(_0x8d6a[11]);var crypto=require(_0x8d6a[12]);var jsforce=require(_0x8d6a[13]);var toCsv=require(_0x8d6a[14]);var qs=require(_0x8d6a[15]);var logger=require(_0x8d6a[17])(_0x8d6a[16]);var utils=require(_0x8d6a[18]);var config=require(_0x8d6a[19]);var db=require(_0x8d6a[21])[_0x8d6a[20]];function respondWithStatusCode(_0xe339x15,_0xe339x16,_0xe339x17){_0xe339x16= _0xe339x16|| 204;return function(_0xe339x18){if(_0xe339x18){logger[_0x8d6a[24]](_0x8d6a[22],_0xe339x17,_0xe339x16,_0x8d6a[23]);logger[_0x8d6a[26]](_0x8d6a[25],_0xe339x17,_0xe339x16,_0x8d6a[23]);return _0xe339x15[_0x8d6a[27]](_0xe339x16)};return _0xe339x15[_0x8d6a[29]](304)[_0x8d6a[28]]()}}function respondWithResult(_0xe339x15,_0xe339x16,_0xe339x17){_0xe339x16= _0xe339x16|| 200;return function(_0xe339x18){if(_0xe339x18){logger[_0x8d6a[24]](_0x8d6a[22],_0xe339x17,_0xe339x16,_0x8d6a[30]);logger[_0x8d6a[26]](_0x8d6a[25],_0xe339x17,_0xe339x16,_0x8d6a[30],JSON[_0x8d6a[31]](_0xe339x18));return _0xe339x15[_0x8d6a[29]](_0xe339x16)[_0x8d6a[32]](_0xe339x18)};return _0xe339x15[_0x8d6a[29]](304)[_0x8d6a[28]]()}}function respondWithFilteredResult(_0xe339x15,_0xe339x1b,_0xe339x17){return function(_0xe339x18){if(_0xe339x18){var _0xe339x1c=_0xe339x18[_0x8d6a[33]],_0xe339x1d=_0xe339x1b[_0x8d6a[34]],_0xe339x1e=_0xe339x1b[_0x8d6a[34]]+ _0xe339x1b[_0x8d6a[35]],_0xe339x16;if(_0xe339x1e>= _0xe339x1c){_0xe339x1e= _0xe339x1c;_0xe339x16= 200}else {_0xe339x16= 206};_0xe339x15[_0x8d6a[29]](_0xe339x16);logger[_0x8d6a[24]](_0x8d6a[22],_0xe339x17,_0xe339x16,_0x8d6a[36]);logger[_0x8d6a[26]](_0x8d6a[25],_0xe339x17,_0xe339x16,_0x8d6a[30],JSON[_0x8d6a[31]](_0xe339x18));return _0xe339x15[_0x8d6a[40]](_0x8d6a[37],_0xe339x1d+ _0x8d6a[38]+ _0xe339x1e+ _0x8d6a[39]+ _0xe339x1c)[_0x8d6a[32]](_0xe339x18)};return null}}function patchUpdates(_0xe339x20){return function(_0xe339x18){try{jsonpatch[_0x8d6a[41]](_0xe339x18,_0xe339x20,true)}catch(err){return BPromise[_0x8d6a[42]](err)};return _0xe339x18[_0x8d6a[43]]()}}function saveUpdates(_0xe339x22,_0xe339x16,_0xe339x17){return function(_0xe339x18){if(_0xe339x18){return _0xe339x18[_0x8d6a[46]](_0xe339x22)[_0x8d6a[45]](function(_0xe339x23){logger[_0x8d6a[24]](_0x8d6a[22],_0xe339x17,_0xe339x16,_0x8d6a[44]);logger[_0x8d6a[26]](_0x8d6a[25],_0xe339x17,_0xe339x16,_0x8d6a[44],JSON[_0x8d6a[31]](_0xe339x18));return _0xe339x23})};return null}}function removeEntity(_0xe339x15,_0xe339x16,_0xe339x17){return function(_0xe339x18){if(_0xe339x18){return _0xe339x18[_0x8d6a[48]]()[_0x8d6a[45]](function(){logger[_0x8d6a[24]](_0x8d6a[22],_0xe339x17,_0xe339x16,_0x8d6a[47]);logger[_0x8d6a[26]](_0x8d6a[25],_0xe339x17,_0xe339x16,_0x8d6a[47],JSON[_0x8d6a[31]](_0xe339x18));_0xe339x15[_0x8d6a[29]](204)[_0x8d6a[28]]()})}}}function handleEntityNotFound(_0xe339x15,_0xe339x16,_0xe339x17){return function(_0xe339x18){if(!_0xe339x18){logger[_0x8d6a[50]](_0x8d6a[22],_0xe339x17,404,_0x8d6a[49]);_0xe339x15[_0x8d6a[29]](404)[_0x8d6a[28]]();return null};return _0xe339x18}}function handleError(_0xe339x15,_0xe339x16,_0xe339x17){_0xe339x16= _0xe339x16|| 500;return function(_0xe339x27){logger[_0x8d6a[50]](_0x8d6a[22],_0xe339x17,_0xe339x16,JSON[_0x8d6a[31]](_0xe339x27));delete _0xe339x27[_0x8d6a[51]];_0xe339x15[_0x8d6a[29]](_0xe339x16)[_0x8d6a[52]](_0xe339x27)}}exports[_0x8d6a[53]]= function(_0xe339x28,_0xe339x15){var _0xe339x1b={},_0xe339x29={};_0xe339x29[_0x8d6a[54]]= _[_0x8d6a[57]](db[_0x8d6a[56]][_0x8d6a[55]]);_0xe339x29[_0x8d6a[58]]= _[_0x8d6a[57]](_0xe339x28[_0x8d6a[58]]);_0xe339x29[_0x8d6a[59]]= _[_0x8d6a[60]](_0xe339x29[_0x8d6a[54]],_0xe339x29[_0x8d6a[58]]);_0xe339x1b[_0x8d6a[61]]= _[_0x8d6a[60]](_0xe339x29[_0x8d6a[54]],qs[_0x8d6a[62]](_0xe339x28[_0x8d6a[58]][_0x8d6a[62]]));_0xe339x1b[_0x8d6a[61]]= (_0xe339x1b[_0x8d6a[61]][_0x8d6a[63]])?_0xe339x1b[_0x8d6a[61]]:_0xe339x29[_0x8d6a[54]];if(!_0xe339x28[_0x8d6a[58]][_0x8d6a[65]](_0x8d6a[64])){_0xe339x1b[_0x8d6a[35]]= qs[_0x8d6a[35]](_0xe339x28[_0x8d6a[58]][_0x8d6a[35]]);_0xe339x1b[_0x8d6a[34]]= qs[_0x8d6a[34]](_0xe339x28[_0x8d6a[58]][_0x8d6a[34]])};_0xe339x1b[_0x8d6a[66]]= qs[_0x8d6a[67]](_0xe339x28[_0x8d6a[58]][_0x8d6a[67]]);_0xe339x1b[_0x8d6a[68]]= qs[_0x8d6a[59]](_[_0x8d6a[69]](_0xe339x28[_0x8d6a[58]],_0xe339x29[_0x8d6a[59]]));if(_0xe339x28[_0x8d6a[58]][_0x8d6a[70]]){_0xe339x1b[_0x8d6a[68]]= _[_0x8d6a[73]](_0xe339x1b[_0x8d6a[68]],{$or:_[_0x8d6a[72]](_0xe339x1b[_0x8d6a[61]],function(_0xe339x2a){var _0xe339x2b={};_0xe339x2b[_0xe339x2a]= {$like:_0x8d6a[71]+ _0xe339x28[_0x8d6a[58]][_0x8d6a[70]]+ _0x8d6a[71]};return _0xe339x2b})})};_0xe339x1b= _[_0x8d6a[73]]({},_0xe339x1b,_0xe339x28[_0x8d6a[74]]);return db[_0x8d6a[56]][_0x8d6a[76]](_0xe339x1b)[_0x8d6a[45]](respondWithFilteredResult(_0xe339x15,_0xe339x1b,_0x8d6a[53]))[_0x8d6a[75]](handleError(_0xe339x15,null,_0x8d6a[53]))};exports[_0x8d6a[77]]= function(_0xe339x28,_0xe339x15){var _0xe339x1b={raw:true,where:{id:_0xe339x28[_0x8d6a[79]][_0x8d6a[78]]}},_0xe339x29={};_0xe339x29[_0x8d6a[54]]= _[_0x8d6a[57]](db[_0x8d6a[56]][_0x8d6a[55]]);_0xe339x29[_0x8d6a[58]]= _[_0x8d6a[57]](_0xe339x28[_0x8d6a[58]]);_0xe339x29[_0x8d6a[59]]= _[_0x8d6a[60]](_0xe339x29[_0x8d6a[54]],_0xe339x29[_0x8d6a[58]]);_0xe339x1b[_0x8d6a[61]]= _[_0x8d6a[60]](_0xe339x29[_0x8d6a[54]],qs[_0x8d6a[62]](_0xe339x28[_0x8d6a[58]][_0x8d6a[62]]));_0xe339x1b[_0x8d6a[61]]= (_0xe339x1b[_0x8d6a[61]][_0x8d6a[63]])?_0xe339x1b[_0x8d6a[61]]:_0xe339x29[_0x8d6a[54]];_0xe339x1b= _[_0x8d6a[73]]({},_0xe339x1b,_0xe339x28[_0x8d6a[74]]);return db[_0x8d6a[56]][_0x8d6a[80]](_0xe339x1b)[_0x8d6a[45]](handleEntityNotFound(_0xe339x15,null,_0x8d6a[77]))[_0x8d6a[45]](respondWithResult(_0xe339x15,null,_0x8d6a[77]))[_0x8d6a[75]](handleError(_0xe339x15,null,_0x8d6a[77]))};exports[_0x8d6a[81]]= function(_0xe339x28,_0xe339x15){return db[_0x8d6a[56]][_0x8d6a[81]](_0xe339x28[_0x8d6a[82]],{})[_0x8d6a[45]](respondWithResult(_0xe339x15,201,_0x8d6a[81]))[_0x8d6a[75]](handleError(_0xe339x15,null,_0x8d6a[81]))};exports[_0x8d6a[46]]= function(_0xe339x28,_0xe339x15){if(_0xe339x28[_0x8d6a[82]][_0x8d6a[78]]){delete _0xe339x28[_0x8d6a[82]][_0x8d6a[78]]};return db[_0x8d6a[56]][_0x8d6a[80]]({where:{id:_0xe339x28[_0x8d6a[79]][_0x8d6a[78]]}})[_0x8d6a[45]](handleEntityNotFound(_0xe339x15,null,_0x8d6a[46]))[_0x8d6a[45]](saveUpdates(_0xe339x28[_0x8d6a[82]],null,_0x8d6a[46]))[_0x8d6a[45]](respondWithResult(_0xe339x15,null,_0x8d6a[46]))[_0x8d6a[75]](handleError(_0xe339x15,null,_0x8d6a[46]))};exports[_0x8d6a[48]]= function(_0xe339x28,_0xe339x15){return db[_0x8d6a[56]][_0x8d6a[80]]({where:{id:_0xe339x28[_0x8d6a[79]][_0x8d6a[78]]}})[_0x8d6a[45]](handleEntityNotFound(_0xe339x15,null,_0x8d6a[48]))[_0x8d6a[45]](removeEntity(_0xe339x15,null,_0x8d6a[48]))[_0x8d6a[75]](handleError(_0xe339x15,null,_0x8d6a[48]))}
\ No newline at end of file
+var _0xa941=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xa941[0];var jsonpatch=require(_0xa941[1]);var rp=require(_0xa941[2]);var moment=require(_0xa941[3]);var BPromise=require(_0xa941[4]);var util=require(_0xa941[5]);var path=require(_0xa941[6]);var sox=require(_0xa941[7]);var ejs=require(_0xa941[8]);var fs=require(_0xa941[9]);var _=require(_0xa941[10]);var squel=require(_0xa941[11]);var crypto=require(_0xa941[12]);var jsforce=require(_0xa941[13]);var toCsv=require(_0xa941[14]);var qs=require(_0xa941[15]);var logger=require(_0xa941[17])(_0xa941[16]);var utils=require(_0xa941[18]);var config=require(_0xa941[19]);var db=require(_0xa941[21])[_0xa941[20]];function respondWithStatusCode(_0x7923x15,_0x7923x16,_0x7923x17){_0x7923x16= _0x7923x16|| 204;return function(_0x7923x18){if(_0x7923x18){logger[_0xa941[24]](_0xa941[22],_0x7923x17,_0x7923x16,_0xa941[23]);logger[_0xa941[26]](_0xa941[25],_0x7923x17,_0x7923x16,_0xa941[23]);return _0x7923x15[_0xa941[27]](_0x7923x16)};return _0x7923x15[_0xa941[29]](304)[_0xa941[28]]()}}function respondWithResult(_0x7923x15,_0x7923x16,_0x7923x17){_0x7923x16= _0x7923x16|| 200;return function(_0x7923x18){if(_0x7923x18){logger[_0xa941[24]](_0xa941[22],_0x7923x17,_0x7923x16,_0xa941[30]);logger[_0xa941[26]](_0xa941[25],_0x7923x17,_0x7923x16,_0xa941[30],JSON[_0xa941[31]](_0x7923x18));return _0x7923x15[_0xa941[29]](_0x7923x16)[_0xa941[32]](_0x7923x18)};return _0x7923x15[_0xa941[29]](304)[_0xa941[28]]()}}function respondWithFilteredResult(_0x7923x15,_0x7923x1b,_0x7923x17){return function(_0x7923x18){if(_0x7923x18){var _0x7923x1c=_0x7923x18[_0xa941[33]],_0x7923x1d=_0x7923x1b[_0xa941[34]],_0x7923x1e=_0x7923x1b[_0xa941[34]]+ _0x7923x1b[_0xa941[35]],_0x7923x16;if(_0x7923x1e>= _0x7923x1c){_0x7923x1e= _0x7923x1c;_0x7923x16= 200}else {_0x7923x16= 206};_0x7923x15[_0xa941[29]](_0x7923x16);logger[_0xa941[24]](_0xa941[22],_0x7923x17,_0x7923x16,_0xa941[36]);logger[_0xa941[26]](_0xa941[25],_0x7923x17,_0x7923x16,_0xa941[30],JSON[_0xa941[31]](_0x7923x18));return _0x7923x15[_0xa941[40]](_0xa941[37],_0x7923x1d+ _0xa941[38]+ _0x7923x1e+ _0xa941[39]+ _0x7923x1c)[_0xa941[32]](_0x7923x18)};return null}}function patchUpdates(_0x7923x20){return function(_0x7923x18){try{jsonpatch[_0xa941[41]](_0x7923x18,_0x7923x20,true)}catch(err){return BPromise[_0xa941[42]](err)};return _0x7923x18[_0xa941[43]]()}}function saveUpdates(_0x7923x22,_0x7923x16,_0x7923x17){return function(_0x7923x18){if(_0x7923x18){return _0x7923x18[_0xa941[46]](_0x7923x22)[_0xa941[45]](function(_0x7923x23){logger[_0xa941[24]](_0xa941[22],_0x7923x17,_0x7923x16,_0xa941[44]);logger[_0xa941[26]](_0xa941[25],_0x7923x17,_0x7923x16,_0xa941[44],JSON[_0xa941[31]](_0x7923x18));return _0x7923x23})};return null}}function removeEntity(_0x7923x15,_0x7923x16,_0x7923x17){return function(_0x7923x18){if(_0x7923x18){return _0x7923x18[_0xa941[48]]()[_0xa941[45]](function(){logger[_0xa941[24]](_0xa941[22],_0x7923x17,_0x7923x16,_0xa941[47]);logger[_0xa941[26]](_0xa941[25],_0x7923x17,_0x7923x16,_0xa941[47],JSON[_0xa941[31]](_0x7923x18));_0x7923x15[_0xa941[29]](204)[_0xa941[28]]()})}}}function handleEntityNotFound(_0x7923x15,_0x7923x16,_0x7923x17){return function(_0x7923x18){if(!_0x7923x18){logger[_0xa941[50]](_0xa941[22],_0x7923x17,404,_0xa941[49]);_0x7923x15[_0xa941[29]](404)[_0xa941[28]]();return null};return _0x7923x18}}function handleError(_0x7923x15,_0x7923x16,_0x7923x17){_0x7923x16= _0x7923x16|| 500;return function(_0x7923x27){logger[_0xa941[50]](_0xa941[22],_0x7923x17,_0x7923x16,JSON[_0xa941[31]](_0x7923x27));delete _0x7923x27[_0xa941[51]];_0x7923x15[_0xa941[29]](_0x7923x16)[_0xa941[52]](_0x7923x27)}}exports[_0xa941[53]]= function(_0x7923x28,_0x7923x15){var _0x7923x1b={},_0x7923x29={};_0x7923x29[_0xa941[54]]= _[_0xa941[57]](db[_0xa941[56]][_0xa941[55]]);_0x7923x29[_0xa941[58]]= _[_0xa941[57]](_0x7923x28[_0xa941[58]]);_0x7923x29[_0xa941[59]]= _[_0xa941[60]](_0x7923x29[_0xa941[54]],_0x7923x29[_0xa941[58]]);_0x7923x1b[_0xa941[61]]= _[_0xa941[60]](_0x7923x29[_0xa941[54]],qs[_0xa941[62]](_0x7923x28[_0xa941[58]][_0xa941[62]]));_0x7923x1b[_0xa941[61]]= (_0x7923x1b[_0xa941[61]][_0xa941[63]])?_0x7923x1b[_0xa941[61]]:_0x7923x29[_0xa941[54]];if(!_0x7923x28[_0xa941[58]][_0xa941[65]](_0xa941[64])){_0x7923x1b[_0xa941[35]]= qs[_0xa941[35]](_0x7923x28[_0xa941[58]][_0xa941[35]]);_0x7923x1b[_0xa941[34]]= qs[_0xa941[34]](_0x7923x28[_0xa941[58]][_0xa941[34]])};_0x7923x1b[_0xa941[66]]= qs[_0xa941[67]](_0x7923x28[_0xa941[58]][_0xa941[67]]);_0x7923x1b[_0xa941[68]]= qs[_0xa941[59]](_[_0xa941[69]](_0x7923x28[_0xa941[58]],_0x7923x29[_0xa941[59]]));if(_0x7923x28[_0xa941[58]][_0xa941[70]]){_0x7923x1b[_0xa941[68]]= _[_0xa941[73]](_0x7923x1b[_0xa941[68]],{$or:_[_0xa941[72]](_0x7923x1b[_0xa941[61]],function(_0x7923x2a){var _0x7923x2b={};_0x7923x2b[_0x7923x2a]= {$like:_0xa941[71]+ _0x7923x28[_0xa941[58]][_0xa941[70]]+ _0xa941[71]};return _0x7923x2b})})};_0x7923x1b= _[_0xa941[73]]({},_0x7923x1b,_0x7923x28[_0xa941[74]]);return db[_0xa941[56]][_0xa941[76]](_0x7923x1b)[_0xa941[45]](respondWithFilteredResult(_0x7923x15,_0x7923x1b,_0xa941[53]))[_0xa941[75]](handleError(_0x7923x15,null,_0xa941[53]))};exports[_0xa941[77]]= function(_0x7923x28,_0x7923x15){var _0x7923x1b={raw:true,where:{id:_0x7923x28[_0xa941[79]][_0xa941[78]]}},_0x7923x29={};_0x7923x29[_0xa941[54]]= _[_0xa941[57]](db[_0xa941[56]][_0xa941[55]]);_0x7923x29[_0xa941[58]]= _[_0xa941[57]](_0x7923x28[_0xa941[58]]);_0x7923x29[_0xa941[59]]= _[_0xa941[60]](_0x7923x29[_0xa941[54]],_0x7923x29[_0xa941[58]]);_0x7923x1b[_0xa941[61]]= _[_0xa941[60]](_0x7923x29[_0xa941[54]],qs[_0xa941[62]](_0x7923x28[_0xa941[58]][_0xa941[62]]));_0x7923x1b[_0xa941[61]]= (_0x7923x1b[_0xa941[61]][_0xa941[63]])?_0x7923x1b[_0xa941[61]]:_0x7923x29[_0xa941[54]];_0x7923x1b= _[_0xa941[73]]({},_0x7923x1b,_0x7923x28[_0xa941[74]]);return db[_0xa941[56]][_0xa941[80]](_0x7923x1b)[_0xa941[45]](handleEntityNotFound(_0x7923x15,null,_0xa941[77]))[_0xa941[45]](respondWithResult(_0x7923x15,null,_0xa941[77]))[_0xa941[75]](handleError(_0x7923x15,null,_0xa941[77]))};exports[_0xa941[81]]= function(_0x7923x28,_0x7923x15){return db[_0xa941[56]][_0xa941[81]](_0x7923x28[_0xa941[82]],{})[_0xa941[45]](respondWithResult(_0x7923x15,201,_0xa941[81]))[_0xa941[75]](handleError(_0x7923x15,null,_0xa941[81]))};exports[_0xa941[46]]= function(_0x7923x28,_0x7923x15){if(_0x7923x28[_0xa941[82]][_0xa941[78]]){delete _0x7923x28[_0xa941[82]][_0xa941[78]]};return db[_0xa941[56]][_0xa941[80]]({where:{id:_0x7923x28[_0xa941[79]][_0xa941[78]]}})[_0xa941[45]](handleEntityNotFound(_0x7923x15,null,_0xa941[46]))[_0xa941[45]](saveUpdates(_0x7923x28[_0xa941[82]],null,_0xa941[46]))[_0xa941[45]](respondWithResult(_0x7923x15,null,_0xa941[46]))[_0xa941[75]](handleError(_0x7923x15,null,_0xa941[46]))};exports[_0xa941[48]]= function(_0x7923x28,_0x7923x15){return db[_0xa941[56]][_0xa941[80]]({where:{id:_0x7923x28[_0xa941[79]][_0xa941[78]]}})[_0xa941[45]](handleEntityNotFound(_0x7923x15,null,_0xa941[48]))[_0xa941[45]](removeEntity(_0x7923x15,null,_0xa941[48]))[_0xa941[75]](handleError(_0x7923x15,null,_0xa941[48]))}
\ No newline at end of file
index 547d036..7d7f167 100644 (file)
@@ -1 +1 @@
-var _0x2e31=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x2e31[0];var _=require(_0x2e31[1]);var util=require(_0x2e31[2]);var logger=require(_0x2e31[4])(_0x2e31[3]);var attributes=require(_0x2e31[5]);module[_0x2e31[6]]= function(_0x6301x5,_0x6301x6){return _0x6301x5[_0x2e31[9]](_0x2e31[7],attributes,{tableName:_0x2e31[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x42f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x42f2[0];var _=require(_0x42f2[1]);var util=require(_0x42f2[2]);var logger=require(_0x42f2[4])(_0x42f2[3]);var attributes=require(_0x42f2[5]);module[_0x42f2[6]]= function(_0x3452x5,_0x3452x6){return _0x3452x5[_0x42f2[9]](_0x42f2[7],attributes,{tableName:_0x42f2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 0d1da49..7c0feca 100644 (file)
@@ -1 +1 @@
-var _0x2c57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2c57[0];var _=require(_0x2c57[1]);var util=require(_0x2c57[2]);var moment=require(_0x2c57[3]);var BPromise=require(_0x2c57[4]);var db=require(_0x2c57[6])[_0x2c57[5]];var utils=require(_0x2c57[7]);var logger=require(_0x2c57[9])(_0x2c57[8]);var jayson=require(_0x2c57[10]);var client=jayson[_0x2c57[12]][_0x2c57[11]]({port:9002});function respondWithRpcPromise(_0xe0d5xb,_0xe0d5xc,_0xe0d5xd){return  new BPromise(function(_0xe0d5xe,_0xe0d5xf){return client[_0x2c57[25]](_0xe0d5xb,_0xe0d5xd)[_0x2c57[24]](function(_0xe0d5x11){logger[_0x2c57[17]](_0x2c57[13],_0xe0d5xc,_0x2c57[16]);logger[_0x2c57[20]](_0x2c57[18],_0xe0d5xc,_0x2c57[16],JSON[_0x2c57[19]](_0xe0d5x11));if(_0xe0d5x11[_0x2c57[14]]){if(_0xe0d5x11[_0x2c57[14]][_0x2c57[21]]=== 500){logger[_0x2c57[14]](_0x2c57[13],_0xe0d5xc,_0xe0d5x11[_0x2c57[14]][_0x2c57[22]]);return _0xe0d5xf(_0xe0d5x11[_0x2c57[14]][_0x2c57[22]])};logger[_0x2c57[14]](_0x2c57[13],_0xe0d5xc,_0xe0d5x11[_0x2c57[14]][_0x2c57[22]]);return _0xe0d5xe(_0xe0d5x11[_0x2c57[14]][_0x2c57[22]])}else {logger[_0x2c57[17]](_0x2c57[13],_0xe0d5xc,_0x2c57[16]);_0xe0d5xe(_0xe0d5x11[_0x2c57[23]][_0x2c57[22]])}})[_0x2c57[15]](function(_0xe0d5x10){logger[_0x2c57[14]](_0x2c57[13],_0xe0d5xc,_0xe0d5x10);_0xe0d5xf(_0xe0d5x10)})})}
\ No newline at end of file
+var _0xf1c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf1c8[0];var _=require(_0xf1c8[1]);var util=require(_0xf1c8[2]);var moment=require(_0xf1c8[3]);var BPromise=require(_0xf1c8[4]);var db=require(_0xf1c8[6])[_0xf1c8[5]];var utils=require(_0xf1c8[7]);var logger=require(_0xf1c8[9])(_0xf1c8[8]);var jayson=require(_0xf1c8[10]);var client=jayson[_0xf1c8[12]][_0xf1c8[11]]({port:9002});function respondWithRpcPromise(_0xec77xb,_0xec77xc,_0xec77xd){return  new BPromise(function(_0xec77xe,_0xec77xf){return client[_0xf1c8[25]](_0xec77xb,_0xec77xd)[_0xf1c8[24]](function(_0xec77x11){logger[_0xf1c8[17]](_0xf1c8[13],_0xec77xc,_0xf1c8[16]);logger[_0xf1c8[20]](_0xf1c8[18],_0xec77xc,_0xf1c8[16],JSON[_0xf1c8[19]](_0xec77x11));if(_0xec77x11[_0xf1c8[14]]){if(_0xec77x11[_0xf1c8[14]][_0xf1c8[21]]=== 500){logger[_0xf1c8[14]](_0xf1c8[13],_0xec77xc,_0xec77x11[_0xf1c8[14]][_0xf1c8[22]]);return _0xec77xf(_0xec77x11[_0xf1c8[14]][_0xf1c8[22]])};logger[_0xf1c8[14]](_0xf1c8[13],_0xec77xc,_0xec77x11[_0xf1c8[14]][_0xf1c8[22]]);return _0xec77xe(_0xec77x11[_0xf1c8[14]][_0xf1c8[22]])}else {logger[_0xf1c8[17]](_0xf1c8[13],_0xec77xc,_0xf1c8[16]);_0xec77xe(_0xec77x11[_0xf1c8[23]][_0xf1c8[22]])}})[_0xf1c8[15]](function(_0xec77x10){logger[_0xf1c8[14]](_0xf1c8[13],_0xec77xc,_0xec77x10);_0xec77xf(_0xec77x10)})})}
\ No newline at end of file
index df3603d..bf2c394 100644 (file)
@@ -1 +1 @@
-var _0x5559=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x5559[0];var multer=require(_0x5559[1]);var util=require(_0x5559[2]);var path=require(_0x5559[3]);var express=require(_0x5559[4]);var router=express.Router();var auth=require(_0x5559[5]);var config=require(_0x5559[6]);module[_0x5559[7]]= router
\ No newline at end of file
+var _0xb2f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xb2f9[0];var multer=require(_0xb2f9[1]);var util=require(_0xb2f9[2]);var path=require(_0xb2f9[3]);var express=require(_0xb2f9[4]);var router=express.Router();var auth=require(_0xb2f9[5]);var config=require(_0xb2f9[6]);module[_0xb2f9[7]]= router
\ No newline at end of file
index 4eceea8..90ac511 100644 (file)
@@ -1 +1 @@
-var _0x81fd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x5F\x6E\x61\x6D\x65\x5F\x61\x6E\x64\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x70\x70\x2E\x6A\x73","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x74\x61\x74\x65","\x23"];_0x81fd[0];var Sequelize=require(_0x81fd[1]);module[_0x81fd[2]]= {name:{type:Sequelize[_0x81fd[3]],allowNull:false,unique:_0x81fd[4]},version:{type:Sequelize[_0x81fd[3]],allowNull:false,unique:_0x81fd[4]},main:{type:Sequelize[_0x81fd[3]],defaultValue:_0x81fd[5]},filename:{type:Sequelize[_0x81fd[3]]},path:{type:Sequelize[_0x81fd[3]]},type:{type:Sequelize[_0x81fd[3]]},size:{type:Sequelize[_0x81fd[6]]},active:{type:Sequelize[_0x81fd[7]],defaultValue:false},author:{type:Sequelize[_0x81fd[3]]},logo:{type:Sequelize[_0x81fd[3]]},state:{type:Sequelize[_0x81fd[3]],unique:_0x81fd[8]},description:{type:Sequelize[_0x81fd[3]]},title:{type:Sequelize[_0x81fd[3]]},remoteUri:{type:Sequelize[_0x81fd[3]]},link:{type:Sequelize[_0x81fd[3]],defaultValue:_0x81fd[9]}}
\ No newline at end of file
+var _0x6359=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x5F\x6E\x61\x6D\x65\x5F\x61\x6E\x64\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x70\x70\x2E\x6A\x73","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x74\x61\x74\x65","\x23"];_0x6359[0];var Sequelize=require(_0x6359[1]);module[_0x6359[2]]= {name:{type:Sequelize[_0x6359[3]],allowNull:false,unique:_0x6359[4]},version:{type:Sequelize[_0x6359[3]],allowNull:false,unique:_0x6359[4]},main:{type:Sequelize[_0x6359[3]],defaultValue:_0x6359[5]},filename:{type:Sequelize[_0x6359[3]]},path:{type:Sequelize[_0x6359[3]]},type:{type:Sequelize[_0x6359[3]]},size:{type:Sequelize[_0x6359[6]]},active:{type:Sequelize[_0x6359[7]],defaultValue:false},author:{type:Sequelize[_0x6359[3]]},logo:{type:Sequelize[_0x6359[3]]},state:{type:Sequelize[_0x6359[3]],unique:_0x6359[8]},description:{type:Sequelize[_0x6359[3]]},title:{type:Sequelize[_0x6359[3]]},remoteUri:{type:Sequelize[_0x6359[3]]},link:{type:Sequelize[_0x6359[3]],defaultValue:_0x6359[9]}}
\ No newline at end of file
index 6c2ec53..09f360f 100644 (file)
@@ -1 +1 @@
-var _0xc398=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xc398[0];var jsonpatch=require(_0xc398[1]);var rp=require(_0xc398[2]);var moment=require(_0xc398[3]);var BPromise=require(_0xc398[4]);var util=require(_0xc398[5]);var path=require(_0xc398[6]);var sox=require(_0xc398[7]);var ejs=require(_0xc398[8]);var fs=require(_0xc398[9]);var _=require(_0xc398[10]);var squel=require(_0xc398[11]);var crypto=require(_0xc398[12]);var jsforce=require(_0xc398[13]);var toCsv=require(_0xc398[14]);var qs=require(_0xc398[15]);var logger=require(_0xc398[17])(_0xc398[16]);var utils=require(_0xc398[18]);var config=require(_0xc398[19]);var db=require(_0xc398[21])[_0xc398[20]];function respondWithStatusCode(_0x4abcx15,_0x4abcx16,_0x4abcx17){_0x4abcx16= _0x4abcx16|| 204;return function(_0x4abcx18){if(_0x4abcx18){logger[_0xc398[24]](_0xc398[22],_0x4abcx17,_0x4abcx16,_0xc398[23]);logger[_0xc398[26]](_0xc398[25],_0x4abcx17,_0x4abcx16,_0xc398[23]);return _0x4abcx15[_0xc398[27]](_0x4abcx16)};return _0x4abcx15[_0xc398[29]](304)[_0xc398[28]]()}}function respondWithResult(_0x4abcx15,_0x4abcx16,_0x4abcx17){_0x4abcx16= _0x4abcx16|| 200;return function(_0x4abcx18){if(_0x4abcx18){logger[_0xc398[24]](_0xc398[22],_0x4abcx17,_0x4abcx16,_0xc398[30]);logger[_0xc398[26]](_0xc398[25],_0x4abcx17,_0x4abcx16,_0xc398[30],JSON[_0xc398[31]](_0x4abcx18));return _0x4abcx15[_0xc398[29]](_0x4abcx16)[_0xc398[32]](_0x4abcx18)};return _0x4abcx15[_0xc398[29]](304)[_0xc398[28]]()}}function respondWithFilteredResult(_0x4abcx15,_0x4abcx1b,_0x4abcx17){return function(_0x4abcx18){if(_0x4abcx18){var _0x4abcx1c=_0x4abcx18[_0xc398[33]],_0x4abcx1d=_0x4abcx1b[_0xc398[34]],_0x4abcx1e=_0x4abcx1b[_0xc398[34]]+ _0x4abcx1b[_0xc398[35]],_0x4abcx16;if(_0x4abcx1e>= _0x4abcx1c){_0x4abcx1e= _0x4abcx1c;_0x4abcx16= 200}else {_0x4abcx16= 206};_0x4abcx15[_0xc398[29]](_0x4abcx16);logger[_0xc398[24]](_0xc398[22],_0x4abcx17,_0x4abcx16,_0xc398[36]);logger[_0xc398[26]](_0xc398[25],_0x4abcx17,_0x4abcx16,_0xc398[30],JSON[_0xc398[31]](_0x4abcx18));return _0x4abcx15[_0xc398[40]](_0xc398[37],_0x4abcx1d+ _0xc398[38]+ _0x4abcx1e+ _0xc398[39]+ _0x4abcx1c)[_0xc398[32]](_0x4abcx18)};return null}}function patchUpdates(_0x4abcx20){return function(_0x4abcx18){try{jsonpatch[_0xc398[41]](_0x4abcx18,_0x4abcx20,true)}catch(err){return BPromise[_0xc398[42]](err)};return _0x4abcx18[_0xc398[43]]()}}function saveUpdates(_0x4abcx22,_0x4abcx16,_0x4abcx17){return function(_0x4abcx18){if(_0x4abcx18){return _0x4abcx18[_0xc398[46]](_0x4abcx22)[_0xc398[45]](function(_0x4abcx23){logger[_0xc398[24]](_0xc398[22],_0x4abcx17,_0x4abcx16,_0xc398[44]);logger[_0xc398[26]](_0xc398[25],_0x4abcx17,_0x4abcx16,_0xc398[44],JSON[_0xc398[31]](_0x4abcx18));return _0x4abcx23})};return null}}function removeEntity(_0x4abcx15,_0x4abcx16,_0x4abcx17){return function(_0x4abcx18){if(_0x4abcx18){return _0x4abcx18[_0xc398[48]]()[_0xc398[45]](function(){logger[_0xc398[24]](_0xc398[22],_0x4abcx17,_0x4abcx16,_0xc398[47]);logger[_0xc398[26]](_0xc398[25],_0x4abcx17,_0x4abcx16,_0xc398[47],JSON[_0xc398[31]](_0x4abcx18));_0x4abcx15[_0xc398[29]](204)[_0xc398[28]]()})}}}function handleEntityNotFound(_0x4abcx15,_0x4abcx16,_0x4abcx17){return function(_0x4abcx18){if(!_0x4abcx18){logger[_0xc398[50]](_0xc398[22],_0x4abcx17,404,_0xc398[49]);_0x4abcx15[_0xc398[29]](404)[_0xc398[28]]();return null};return _0x4abcx18}}function handleError(_0x4abcx15,_0x4abcx16,_0x4abcx17){_0x4abcx16= _0x4abcx16|| 500;return function(_0x4abcx27){logger[_0xc398[50]](_0xc398[22],_0x4abcx17,_0x4abcx16,JSON[_0xc398[31]](_0x4abcx27));delete _0x4abcx27[_0xc398[51]];_0x4abcx15[_0xc398[29]](_0x4abcx16)[_0xc398[52]](_0x4abcx27)}}exports[_0xc398[53]]= function(_0x4abcx28,_0x4abcx15){var _0x4abcx1b={},_0x4abcx29={};_0x4abcx29[_0xc398[54]]= _[_0xc398[57]](db[_0xc398[56]][_0xc398[55]]);_0x4abcx29[_0xc398[58]]= _[_0xc398[57]](_0x4abcx28[_0xc398[58]]);_0x4abcx29[_0xc398[59]]= _[_0xc398[60]](_0x4abcx29[_0xc398[54]],_0x4abcx29[_0xc398[58]]);_0x4abcx1b[_0xc398[61]]= _[_0xc398[60]](_0x4abcx29[_0xc398[54]],qs[_0xc398[62]](_0x4abcx28[_0xc398[58]][_0xc398[62]]));_0x4abcx1b[_0xc398[61]]= (_0x4abcx1b[_0xc398[61]][_0xc398[63]])?_0x4abcx1b[_0xc398[61]]:_0x4abcx29[_0xc398[54]];if(!_0x4abcx28[_0xc398[58]][_0xc398[65]](_0xc398[64])){_0x4abcx1b[_0xc398[35]]= qs[_0xc398[35]](_0x4abcx28[_0xc398[58]][_0xc398[35]]);_0x4abcx1b[_0xc398[34]]= qs[_0xc398[34]](_0x4abcx28[_0xc398[58]][_0xc398[34]])};_0x4abcx1b[_0xc398[66]]= qs[_0xc398[67]](_0x4abcx28[_0xc398[58]][_0xc398[67]]);_0x4abcx1b[_0xc398[68]]= qs[_0xc398[59]](_[_0xc398[69]](_0x4abcx28[_0xc398[58]],_0x4abcx29[_0xc398[59]]));if(_0x4abcx28[_0xc398[58]][_0xc398[70]]){_0x4abcx1b[_0xc398[68]]= _[_0xc398[73]](_0x4abcx1b[_0xc398[68]],{$or:_[_0xc398[72]](_0x4abcx1b[_0xc398[61]],function(_0x4abcx2a){var _0x4abcx2b={};_0x4abcx2b[_0x4abcx2a]= {$like:_0xc398[71]+ _0x4abcx28[_0xc398[58]][_0xc398[70]]+ _0xc398[71]};return _0x4abcx2b})})};_0x4abcx1b= _[_0xc398[73]]({},_0x4abcx1b,_0x4abcx28[_0xc398[74]]);return db[_0xc398[56]][_0xc398[76]](_0x4abcx1b)[_0xc398[45]](respondWithFilteredResult(_0x4abcx15,_0x4abcx1b,_0xc398[53]))[_0xc398[75]](handleError(_0x4abcx15,null,_0xc398[53]))};exports[_0xc398[77]]= function(_0x4abcx28,_0x4abcx15){var _0x4abcx1b={raw:false,where:{id:_0x4abcx28[_0xc398[79]][_0xc398[78]]}},_0x4abcx29={};_0x4abcx29[_0xc398[54]]= _[_0xc398[57]](db[_0xc398[56]][_0xc398[55]]);_0x4abcx29[_0xc398[58]]= _[_0xc398[57]](_0x4abcx28[_0xc398[58]]);_0x4abcx29[_0xc398[59]]= _[_0xc398[60]](_0x4abcx29[_0xc398[54]],_0x4abcx29[_0xc398[58]]);_0x4abcx1b[_0xc398[61]]= _[_0xc398[60]](_0x4abcx29[_0xc398[54]],qs[_0xc398[62]](_0x4abcx28[_0xc398[58]][_0xc398[62]]));_0x4abcx1b[_0xc398[61]]= (_0x4abcx1b[_0xc398[61]][_0xc398[63]])?_0x4abcx1b[_0xc398[61]]:_0x4abcx29[_0xc398[54]];_0x4abcx1b= _[_0xc398[73]]({},_0x4abcx1b,_0x4abcx28[_0xc398[74]]);return db[_0xc398[56]][_0xc398[80]](_0x4abcx1b)[_0xc398[45]](handleEntityNotFound(_0x4abcx15,null,_0xc398[77]))[_0xc398[45]](respondWithResult(_0x4abcx15,null,_0xc398[77]))[_0xc398[75]](handleError(_0x4abcx15,null,_0xc398[77]))};exports[_0xc398[81]]= function(_0x4abcx28,_0x4abcx15){return db[_0xc398[56]][_0xc398[81]](_0x4abcx28[_0xc398[82]],{})[_0xc398[45]](respondWithResult(_0x4abcx15,201,_0xc398[81]))[_0xc398[75]](handleError(_0x4abcx15,null,_0xc398[81]))};exports[_0xc398[46]]= function(_0x4abcx28,_0x4abcx15){if(_0x4abcx28[_0xc398[82]][_0xc398[78]]){delete _0x4abcx28[_0xc398[82]][_0xc398[78]]};return db[_0xc398[56]][_0xc398[80]]({where:{id:_0x4abcx28[_0xc398[79]][_0xc398[78]]}})[_0xc398[45]](handleEntityNotFound(_0x4abcx15,null,_0xc398[46]))[_0xc398[45]](saveUpdates(_0x4abcx28[_0xc398[82]],null,_0xc398[46]))[_0xc398[45]](respondWithResult(_0x4abcx15,null,_0xc398[46]))[_0xc398[75]](handleError(_0x4abcx15,null,_0xc398[46]))};exports[_0xc398[48]]= function(_0x4abcx28,_0x4abcx15){return db[_0xc398[56]][_0xc398[80]]({where:{id:_0x4abcx28[_0xc398[79]][_0xc398[78]]}})[_0xc398[45]](handleEntityNotFound(_0x4abcx15,null,_0xc398[48]))[_0xc398[45]](removeEntity(_0x4abcx15,null,_0xc398[48]))[_0xc398[75]](handleError(_0x4abcx15,null,_0xc398[48]))}
\ No newline at end of file
+var _0x6437=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x6437[0];var jsonpatch=require(_0x6437[1]);var rp=require(_0x6437[2]);var moment=require(_0x6437[3]);var BPromise=require(_0x6437[4]);var util=require(_0x6437[5]);var path=require(_0x6437[6]);var sox=require(_0x6437[7]);var ejs=require(_0x6437[8]);var fs=require(_0x6437[9]);var _=require(_0x6437[10]);var squel=require(_0x6437[11]);var crypto=require(_0x6437[12]);var jsforce=require(_0x6437[13]);var toCsv=require(_0x6437[14]);var qs=require(_0x6437[15]);var logger=require(_0x6437[17])(_0x6437[16]);var utils=require(_0x6437[18]);var config=require(_0x6437[19]);var db=require(_0x6437[21])[_0x6437[20]];function respondWithStatusCode(_0x1ae6x15,_0x1ae6x16,_0x1ae6x17){_0x1ae6x16= _0x1ae6x16|| 204;return function(_0x1ae6x18){if(_0x1ae6x18){logger[_0x6437[24]](_0x6437[22],_0x1ae6x17,_0x1ae6x16,_0x6437[23]);logger[_0x6437[26]](_0x6437[25],_0x1ae6x17,_0x1ae6x16,_0x6437[23]);return _0x1ae6x15[_0x6437[27]](_0x1ae6x16)};return _0x1ae6x15[_0x6437[29]](304)[_0x6437[28]]()}}function respondWithResult(_0x1ae6x15,_0x1ae6x16,_0x1ae6x17){_0x1ae6x16= _0x1ae6x16|| 200;return function(_0x1ae6x18){if(_0x1ae6x18){logger[_0x6437[24]](_0x6437[22],_0x1ae6x17,_0x1ae6x16,_0x6437[30]);logger[_0x6437[26]](_0x6437[25],_0x1ae6x17,_0x1ae6x16,_0x6437[30],JSON[_0x6437[31]](_0x1ae6x18));return _0x1ae6x15[_0x6437[29]](_0x1ae6x16)[_0x6437[32]](_0x1ae6x18)};return _0x1ae6x15[_0x6437[29]](304)[_0x6437[28]]()}}function respondWithFilteredResult(_0x1ae6x15,_0x1ae6x1b,_0x1ae6x17){return function(_0x1ae6x18){if(_0x1ae6x18){var _0x1ae6x1c=_0x1ae6x18[_0x6437[33]],_0x1ae6x1d=_0x1ae6x1b[_0x6437[34]],_0x1ae6x1e=_0x1ae6x1b[_0x6437[34]]+ _0x1ae6x1b[_0x6437[35]],_0x1ae6x16;if(_0x1ae6x1e>= _0x1ae6x1c){_0x1ae6x1e= _0x1ae6x1c;_0x1ae6x16= 200}else {_0x1ae6x16= 206};_0x1ae6x15[_0x6437[29]](_0x1ae6x16);logger[_0x6437[24]](_0x6437[22],_0x1ae6x17,_0x1ae6x16,_0x6437[36]);logger[_0x6437[26]](_0x6437[25],_0x1ae6x17,_0x1ae6x16,_0x6437[30],JSON[_0x6437[31]](_0x1ae6x18));return _0x1ae6x15[_0x6437[40]](_0x6437[37],_0x1ae6x1d+ _0x6437[38]+ _0x1ae6x1e+ _0x6437[39]+ _0x1ae6x1c)[_0x6437[32]](_0x1ae6x18)};return null}}function patchUpdates(_0x1ae6x20){return function(_0x1ae6x18){try{jsonpatch[_0x6437[41]](_0x1ae6x18,_0x1ae6x20,true)}catch(err){return BPromise[_0x6437[42]](err)};return _0x1ae6x18[_0x6437[43]]()}}function saveUpdates(_0x1ae6x22,_0x1ae6x16,_0x1ae6x17){return function(_0x1ae6x18){if(_0x1ae6x18){return _0x1ae6x18[_0x6437[46]](_0x1ae6x22)[_0x6437[45]](function(_0x1ae6x23){logger[_0x6437[24]](_0x6437[22],_0x1ae6x17,_0x1ae6x16,_0x6437[44]);logger[_0x6437[26]](_0x6437[25],_0x1ae6x17,_0x1ae6x16,_0x6437[44],JSON[_0x6437[31]](_0x1ae6x18));return _0x1ae6x23})};return null}}function removeEntity(_0x1ae6x15,_0x1ae6x16,_0x1ae6x17){return function(_0x1ae6x18){if(_0x1ae6x18){return _0x1ae6x18[_0x6437[48]]()[_0x6437[45]](function(){logger[_0x6437[24]](_0x6437[22],_0x1ae6x17,_0x1ae6x16,_0x6437[47]);logger[_0x6437[26]](_0x6437[25],_0x1ae6x17,_0x1ae6x16,_0x6437[47],JSON[_0x6437[31]](_0x1ae6x18));_0x1ae6x15[_0x6437[29]](204)[_0x6437[28]]()})}}}function handleEntityNotFound(_0x1ae6x15,_0x1ae6x16,_0x1ae6x17){return function(_0x1ae6x18){if(!_0x1ae6x18){logger[_0x6437[50]](_0x6437[22],_0x1ae6x17,404,_0x6437[49]);_0x1ae6x15[_0x6437[29]](404)[_0x6437[28]]();return null};return _0x1ae6x18}}function handleError(_0x1ae6x15,_0x1ae6x16,_0x1ae6x17){_0x1ae6x16= _0x1ae6x16|| 500;return function(_0x1ae6x27){logger[_0x6437[50]](_0x6437[22],_0x1ae6x17,_0x1ae6x16,JSON[_0x6437[31]](_0x1ae6x27));delete _0x1ae6x27[_0x6437[51]];_0x1ae6x15[_0x6437[29]](_0x1ae6x16)[_0x6437[52]](_0x1ae6x27)}}exports[_0x6437[53]]= function(_0x1ae6x28,_0x1ae6x15){var _0x1ae6x1b={},_0x1ae6x29={};_0x1ae6x29[_0x6437[54]]= _[_0x6437[57]](db[_0x6437[56]][_0x6437[55]]);_0x1ae6x29[_0x6437[58]]= _[_0x6437[57]](_0x1ae6x28[_0x6437[58]]);_0x1ae6x29[_0x6437[59]]= _[_0x6437[60]](_0x1ae6x29[_0x6437[54]],_0x1ae6x29[_0x6437[58]]);_0x1ae6x1b[_0x6437[61]]= _[_0x6437[60]](_0x1ae6x29[_0x6437[54]],qs[_0x6437[62]](_0x1ae6x28[_0x6437[58]][_0x6437[62]]));_0x1ae6x1b[_0x6437[61]]= (_0x1ae6x1b[_0x6437[61]][_0x6437[63]])?_0x1ae6x1b[_0x6437[61]]:_0x1ae6x29[_0x6437[54]];if(!_0x1ae6x28[_0x6437[58]][_0x6437[65]](_0x6437[64])){_0x1ae6x1b[_0x6437[35]]= qs[_0x6437[35]](_0x1ae6x28[_0x6437[58]][_0x6437[35]]);_0x1ae6x1b[_0x6437[34]]= qs[_0x6437[34]](_0x1ae6x28[_0x6437[58]][_0x6437[34]])};_0x1ae6x1b[_0x6437[66]]= qs[_0x6437[67]](_0x1ae6x28[_0x6437[58]][_0x6437[67]]);_0x1ae6x1b[_0x6437[68]]= qs[_0x6437[59]](_[_0x6437[69]](_0x1ae6x28[_0x6437[58]],_0x1ae6x29[_0x6437[59]]));if(_0x1ae6x28[_0x6437[58]][_0x6437[70]]){_0x1ae6x1b[_0x6437[68]]= _[_0x6437[73]](_0x1ae6x1b[_0x6437[68]],{$or:_[_0x6437[72]](_0x1ae6x1b[_0x6437[61]],function(_0x1ae6x2a){var _0x1ae6x2b={};_0x1ae6x2b[_0x1ae6x2a]= {$like:_0x6437[71]+ _0x1ae6x28[_0x6437[58]][_0x6437[70]]+ _0x6437[71]};return _0x1ae6x2b})})};_0x1ae6x1b= _[_0x6437[73]]({},_0x1ae6x1b,_0x1ae6x28[_0x6437[74]]);return db[_0x6437[56]][_0x6437[76]](_0x1ae6x1b)[_0x6437[45]](respondWithFilteredResult(_0x1ae6x15,_0x1ae6x1b,_0x6437[53]))[_0x6437[75]](handleError(_0x1ae6x15,null,_0x6437[53]))};exports[_0x6437[77]]= function(_0x1ae6x28,_0x1ae6x15){var _0x1ae6x1b={raw:false,where:{id:_0x1ae6x28[_0x6437[79]][_0x6437[78]]}},_0x1ae6x29={};_0x1ae6x29[_0x6437[54]]= _[_0x6437[57]](db[_0x6437[56]][_0x6437[55]]);_0x1ae6x29[_0x6437[58]]= _[_0x6437[57]](_0x1ae6x28[_0x6437[58]]);_0x1ae6x29[_0x6437[59]]= _[_0x6437[60]](_0x1ae6x29[_0x6437[54]],_0x1ae6x29[_0x6437[58]]);_0x1ae6x1b[_0x6437[61]]= _[_0x6437[60]](_0x1ae6x29[_0x6437[54]],qs[_0x6437[62]](_0x1ae6x28[_0x6437[58]][_0x6437[62]]));_0x1ae6x1b[_0x6437[61]]= (_0x1ae6x1b[_0x6437[61]][_0x6437[63]])?_0x1ae6x1b[_0x6437[61]]:_0x1ae6x29[_0x6437[54]];_0x1ae6x1b= _[_0x6437[73]]({},_0x1ae6x1b,_0x1ae6x28[_0x6437[74]]);return db[_0x6437[56]][_0x6437[80]](_0x1ae6x1b)[_0x6437[45]](handleEntityNotFound(_0x1ae6x15,null,_0x6437[77]))[_0x6437[45]](respondWithResult(_0x1ae6x15,null,_0x6437[77]))[_0x6437[75]](handleError(_0x1ae6x15,null,_0x6437[77]))};exports[_0x6437[81]]= function(_0x1ae6x28,_0x1ae6x15){return db[_0x6437[56]][_0x6437[81]](_0x1ae6x28[_0x6437[82]],{})[_0x6437[45]](respondWithResult(_0x1ae6x15,201,_0x6437[81]))[_0x6437[75]](handleError(_0x1ae6x15,null,_0x6437[81]))};exports[_0x6437[46]]= function(_0x1ae6x28,_0x1ae6x15){if(_0x1ae6x28[_0x6437[82]][_0x6437[78]]){delete _0x1ae6x28[_0x6437[82]][_0x6437[78]]};return db[_0x6437[56]][_0x6437[80]]({where:{id:_0x1ae6x28[_0x6437[79]][_0x6437[78]]}})[_0x6437[45]](handleEntityNotFound(_0x1ae6x15,null,_0x6437[46]))[_0x6437[45]](saveUpdates(_0x1ae6x28[_0x6437[82]],null,_0x6437[46]))[_0x6437[45]](respondWithResult(_0x1ae6x15,null,_0x6437[46]))[_0x6437[75]](handleError(_0x1ae6x15,null,_0x6437[46]))};exports[_0x6437[48]]= function(_0x1ae6x28,_0x1ae6x15){return db[_0x6437[56]][_0x6437[80]]({where:{id:_0x1ae6x28[_0x6437[79]][_0x6437[78]]}})[_0x6437[45]](handleEntityNotFound(_0x1ae6x15,null,_0x6437[48]))[_0x6437[45]](removeEntity(_0x1ae6x15,null,_0x6437[48]))[_0x6437[75]](handleError(_0x1ae6x15,null,_0x6437[48]))}
\ No newline at end of file
index 547a2c9..0e4f202 100644 (file)
@@ -1 +1 @@
-var _0x4e57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x4e57[0];var _=require(_0x4e57[1]);var util=require(_0x4e57[2]);var logger=require(_0x4e57[4])(_0x4e57[3]);var attributes=require(_0x4e57[5]);module[_0x4e57[6]]= function(_0x5e3cx5,_0x5e3cx6){return _0x5e3cx5[_0x4e57[9]](_0x4e57[7],attributes,{tableName:_0x4e57[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xcc0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xcc0f[0];var _=require(_0xcc0f[1]);var util=require(_0xcc0f[2]);var logger=require(_0xcc0f[4])(_0xcc0f[3]);var attributes=require(_0xcc0f[5]);module[_0xcc0f[6]]= function(_0xd23ex5,_0xd23ex6){return _0xd23ex5[_0xcc0f[9]](_0xcc0f[7],attributes,{tableName:_0xcc0f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 01f1c17..a0e8fef 100644 (file)
@@ -1 +1 @@
-var _0x27f4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x27f4[0];var _=require(_0x27f4[1]);var util=require(_0x27f4[2]);var moment=require(_0x27f4[3]);var BPromise=require(_0x27f4[4]);var db=require(_0x27f4[6])[_0x27f4[5]];var utils=require(_0x27f4[7]);var logger=require(_0x27f4[9])(_0x27f4[8]);var jayson=require(_0x27f4[10]);var client=jayson[_0x27f4[12]][_0x27f4[11]]({port:9002});function respondWithRpcPromise(_0xa04dxb,_0xa04dxc,_0xa04dxd){return  new BPromise(function(_0xa04dxe,_0xa04dxf){return client[_0x27f4[25]](_0xa04dxb,_0xa04dxd)[_0x27f4[24]](function(_0xa04dx11){logger[_0x27f4[17]](_0x27f4[13],_0xa04dxc,_0x27f4[16]);logger[_0x27f4[20]](_0x27f4[18],_0xa04dxc,_0x27f4[16],JSON[_0x27f4[19]](_0xa04dx11));if(_0xa04dx11[_0x27f4[14]]){if(_0xa04dx11[_0x27f4[14]][_0x27f4[21]]=== 500){logger[_0x27f4[14]](_0x27f4[13],_0xa04dxc,_0xa04dx11[_0x27f4[14]][_0x27f4[22]]);return _0xa04dxf(_0xa04dx11[_0x27f4[14]][_0x27f4[22]])};logger[_0x27f4[14]](_0x27f4[13],_0xa04dxc,_0xa04dx11[_0x27f4[14]][_0x27f4[22]]);return _0xa04dxe(_0xa04dx11[_0x27f4[14]][_0x27f4[22]])}else {logger[_0x27f4[17]](_0x27f4[13],_0xa04dxc,_0x27f4[16]);_0xa04dxe(_0xa04dx11[_0x27f4[23]][_0x27f4[22]])}})[_0x27f4[15]](function(_0xa04dx10){logger[_0x27f4[14]](_0x27f4[13],_0xa04dxc,_0xa04dx10);_0xa04dxf(_0xa04dx10)})})}
\ No newline at end of file
+var _0xceb7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xceb7[0];var _=require(_0xceb7[1]);var util=require(_0xceb7[2]);var moment=require(_0xceb7[3]);var BPromise=require(_0xceb7[4]);var db=require(_0xceb7[6])[_0xceb7[5]];var utils=require(_0xceb7[7]);var logger=require(_0xceb7[9])(_0xceb7[8]);var jayson=require(_0xceb7[10]);var client=jayson[_0xceb7[12]][_0xceb7[11]]({port:9002});function respondWithRpcPromise(_0x470dxb,_0x470dxc,_0x470dxd){return  new BPromise(function(_0x470dxe,_0x470dxf){return client[_0xceb7[25]](_0x470dxb,_0x470dxd)[_0xceb7[24]](function(_0x470dx11){logger[_0xceb7[17]](_0xceb7[13],_0x470dxc,_0xceb7[16]);logger[_0xceb7[20]](_0xceb7[18],_0x470dxc,_0xceb7[16],JSON[_0xceb7[19]](_0x470dx11));if(_0x470dx11[_0xceb7[14]]){if(_0x470dx11[_0xceb7[14]][_0xceb7[21]]=== 500){logger[_0xceb7[14]](_0xceb7[13],_0x470dxc,_0x470dx11[_0xceb7[14]][_0xceb7[22]]);return _0x470dxf(_0x470dx11[_0xceb7[14]][_0xceb7[22]])};logger[_0xceb7[14]](_0xceb7[13],_0x470dxc,_0x470dx11[_0xceb7[14]][_0xceb7[22]]);return _0x470dxe(_0x470dx11[_0xceb7[14]][_0xceb7[22]])}else {logger[_0xceb7[17]](_0xceb7[13],_0x470dxc,_0xceb7[16]);_0x470dxe(_0x470dx11[_0xceb7[23]][_0xceb7[22]])}})[_0xceb7[15]](function(_0x470dx10){logger[_0xceb7[14]](_0xceb7[13],_0x470dxc,_0x470dx10);_0x470dxf(_0x470dx10)})})}
\ No newline at end of file
index 938c5b9..9d4a916 100644 (file)
@@ -1 +1 @@
-var _0x13ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x13ac[0];var multer=require(_0x13ac[1]);var util=require(_0x13ac[2]);var path=require(_0x13ac[3]);var express=require(_0x13ac[4]);var router=express.Router();var auth=require(_0x13ac[5]);var config=require(_0x13ac[6]);var controller=require(_0x13ac[7]);router[_0x13ac[11]](_0x13ac[8],auth[_0x13ac[9]](),controller[_0x13ac[10]]);router[_0x13ac[11]](_0x13ac[12],auth[_0x13ac[9]](),controller[_0x13ac[13]]);router[_0x13ac[11]](_0x13ac[14],auth[_0x13ac[9]](),controller[_0x13ac[15]]);router[_0x13ac[17]](_0x13ac[8],auth[_0x13ac[9]](),controller[_0x13ac[16]]);router[_0x13ac[19]](_0x13ac[14],auth[_0x13ac[9]](),controller[_0x13ac[18]]);router[_0x13ac[21]](_0x13ac[14],auth[_0x13ac[9]](),controller[_0x13ac[20]]);module[_0x13ac[22]]= router
\ No newline at end of file
+var _0x8bdf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8bdf[0];var multer=require(_0x8bdf[1]);var util=require(_0x8bdf[2]);var path=require(_0x8bdf[3]);var express=require(_0x8bdf[4]);var router=express.Router();var auth=require(_0x8bdf[5]);var config=require(_0x8bdf[6]);var controller=require(_0x8bdf[7]);router[_0x8bdf[11]](_0x8bdf[8],auth[_0x8bdf[9]](),controller[_0x8bdf[10]]);router[_0x8bdf[11]](_0x8bdf[12],auth[_0x8bdf[9]](),controller[_0x8bdf[13]]);router[_0x8bdf[11]](_0x8bdf[14],auth[_0x8bdf[9]](),controller[_0x8bdf[15]]);router[_0x8bdf[17]](_0x8bdf[8],auth[_0x8bdf[9]](),controller[_0x8bdf[16]]);router[_0x8bdf[19]](_0x8bdf[14],auth[_0x8bdf[9]](),controller[_0x8bdf[18]]);router[_0x8bdf[21]](_0x8bdf[14],auth[_0x8bdf[9]](),controller[_0x8bdf[20]]);module[_0x8bdf[22]]= router
\ No newline at end of file
index d03a1e7..89065d1 100644 (file)
@@ -1 +1 @@
-var _0xa515=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44"];_0xa515[0];var Sequelize=require(_0xa515[1]);module[_0xa515[2]]= {integration:{type:Sequelize[_0xa515[3]]},eventChannel:{type:Sequelize[_0xa515[3]]},exitStatus:{type:Sequelize[_0xa515[3]]},ticketId:{type:Sequelize[_0xa515[3]]},integrationId:{type:Sequelize[_0xa515[4]]},contacts:{type:Sequelize[_0xa515[3]]},uniqueid:{type:Sequelize[_0xa515[3]]},calleridnum:{type:Sequelize[_0xa515[3]]},calleridname:{type:Sequelize[_0xa515[3]]},queue:{type:Sequelize[_0xa515[3]]},interface:{type:Sequelize[_0xa515[3]]},membername:{type:Sequelize[_0xa515[3]]},agentcalledAt:{type:Sequelize[_0xa515[5]]},agentconnectAt:{type:Sequelize[_0xa515[5]]},holdtime:{type:Sequelize[_0xa515[4]]},agentcomplete:{type:Sequelize[_0xa515[6]],defaultValue:false},agentcompleteAt:{type:Sequelize[_0xa515[5]]},talktime:{type:Sequelize[_0xa515[4]]},agentacw:{type:Sequelize[_0xa515[6]],defaultValue:false},acwtime:{type:Sequelize[_0xa515[4]]},reason:{type:Sequelize[_0xa515[3]]},agentringnoanswer:{type:Sequelize[_0xa515[6]],defaultValue:false},agentringnoanswerAt:{type:Sequelize[_0xa515[5]]},agentdump:{type:Sequelize[_0xa515[6]],defaultValue:false},agentdumpAt:{type:Sequelize[_0xa515[5]]},lastevent:{type:Sequelize[_0xa515[3]]},channel:{type:Sequelize[_0xa515[3]]},channelstate:{type:Sequelize[_0xa515[4]]},channelstatedesc:{type:Sequelize[_0xa515[3]]},connectedlinenum:{type:Sequelize[_0xa515[3]]},connectedlinename:{type:Sequelize[_0xa515[3]]},language:{type:Sequelize[_0xa515[3]]},accountcode:{type:Sequelize[_0xa515[3]]},context:{type:Sequelize[_0xa515[3]]},exten:{type:Sequelize[_0xa515[3]]},priority:{type:Sequelize[_0xa515[3]]},destchannel:{type:Sequelize[_0xa515[3]]},destchannelstate:{type:Sequelize[_0xa515[4]]},destchannelstatedesc:{type:Sequelize[_0xa515[3]]},destcalleridnum:{type:Sequelize[_0xa515[3]]},destcalleridname:{type:Sequelize[_0xa515[3]]},destconnectedlinenum:{type:Sequelize[_0xa515[3]]},destconnectedlinename:{type:Sequelize[_0xa515[3]]},destlanguage:{type:Sequelize[_0xa515[3]]},destaccountcode:{type:Sequelize[_0xa515[3]]},destcontext:{type:Sequelize[_0xa515[3]]},destexten:{type:Sequelize[_0xa515[3]]},destpriority:{type:Sequelize[_0xa515[3]]},destuniqueid:{type:Sequelize[_0xa515[3]]},messageId:{type:Sequelize[_0xa515[3]]},inReplyTo:{type:Sequelize[_0xa515[3]]},subject:{type:Sequelize[_0xa515[3]]},from:{type:Sequelize[_0xa515[3]]},to:{type:Sequelize[_0xa515[3]]},cc:{type:Sequelize[_0xa515[3]]},attachment:{type:Sequelize[_0xa515[7]]},html:{type:Sequelize[_0xa515[7]]},text:{type:Sequelize[_0xa515[7]]},status:{type:Sequelize.ENUM(_0xa515[8],_0xa515[9],_0xa515[10],_0xa515[11])},url:{type:Sequelize[_0xa515[3]]},app:{type:Sequelize[_0xa515[3]]},appdata:{type:Sequelize[_0xa515[3]]},projectId:{type:Sequelize[_0xa515[4]]}}
\ No newline at end of file
+var _0x2a67=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44"];_0x2a67[0];var Sequelize=require(_0x2a67[1]);module[_0x2a67[2]]= {integration:{type:Sequelize[_0x2a67[3]]},eventChannel:{type:Sequelize[_0x2a67[3]]},exitStatus:{type:Sequelize[_0x2a67[3]]},ticketId:{type:Sequelize[_0x2a67[3]]},integrationId:{type:Sequelize[_0x2a67[4]]},contacts:{type:Sequelize[_0x2a67[3]]},uniqueid:{type:Sequelize[_0x2a67[3]]},calleridnum:{type:Sequelize[_0x2a67[3]]},calleridname:{type:Sequelize[_0x2a67[3]]},queue:{type:Sequelize[_0x2a67[3]]},interface:{type:Sequelize[_0x2a67[3]]},membername:{type:Sequelize[_0x2a67[3]]},agentcalledAt:{type:Sequelize[_0x2a67[5]]},agentconnectAt:{type:Sequelize[_0x2a67[5]]},holdtime:{type:Sequelize[_0x2a67[4]]},agentcomplete:{type:Sequelize[_0x2a67[6]],defaultValue:false},agentcompleteAt:{type:Sequelize[_0x2a67[5]]},talktime:{type:Sequelize[_0x2a67[4]]},agentacw:{type:Sequelize[_0x2a67[6]],defaultValue:false},acwtime:{type:Sequelize[_0x2a67[4]]},reason:{type:Sequelize[_0x2a67[3]]},agentringnoanswer:{type:Sequelize[_0x2a67[6]],defaultValue:false},agentringnoanswerAt:{type:Sequelize[_0x2a67[5]]},agentdump:{type:Sequelize[_0x2a67[6]],defaultValue:false},agentdumpAt:{type:Sequelize[_0x2a67[5]]},lastevent:{type:Sequelize[_0x2a67[3]]},channel:{type:Sequelize[_0x2a67[3]]},channelstate:{type:Sequelize[_0x2a67[4]]},channelstatedesc:{type:Sequelize[_0x2a67[3]]},connectedlinenum:{type:Sequelize[_0x2a67[3]]},connectedlinename:{type:Sequelize[_0x2a67[3]]},language:{type:Sequelize[_0x2a67[3]]},accountcode:{type:Sequelize[_0x2a67[3]]},context:{type:Sequelize[_0x2a67[3]]},exten:{type:Sequelize[_0x2a67[3]]},priority:{type:Sequelize[_0x2a67[3]]},destchannel:{type:Sequelize[_0x2a67[3]]},destchannelstate:{type:Sequelize[_0x2a67[4]]},destchannelstatedesc:{type:Sequelize[_0x2a67[3]]},destcalleridnum:{type:Sequelize[_0x2a67[3]]},destcalleridname:{type:Sequelize[_0x2a67[3]]},destconnectedlinenum:{type:Sequelize[_0x2a67[3]]},destconnectedlinename:{type:Sequelize[_0x2a67[3]]},destlanguage:{type:Sequelize[_0x2a67[3]]},destaccountcode:{type:Sequelize[_0x2a67[3]]},destcontext:{type:Sequelize[_0x2a67[3]]},destexten:{type:Sequelize[_0x2a67[3]]},destpriority:{type:Sequelize[_0x2a67[3]]},destuniqueid:{type:Sequelize[_0x2a67[3]]},messageId:{type:Sequelize[_0x2a67[3]]},inReplyTo:{type:Sequelize[_0x2a67[3]]},subject:{type:Sequelize[_0x2a67[3]]},from:{type:Sequelize[_0x2a67[3]]},to:{type:Sequelize[_0x2a67[3]]},cc:{type:Sequelize[_0x2a67[3]]},attachment:{type:Sequelize[_0x2a67[7]]},html:{type:Sequelize[_0x2a67[7]]},text:{type:Sequelize[_0x2a67[7]]},status:{type:Sequelize.ENUM(_0x2a67[8],_0x2a67[9],_0x2a67[10],_0x2a67[11])},url:{type:Sequelize[_0x2a67[3]]},app:{type:Sequelize[_0x2a67[3]]},appdata:{type:Sequelize[_0x2a67[3]]},projectId:{type:Sequelize[_0x2a67[4]]}}
\ No newline at end of file
index 80543cc..d3deb99 100644 (file)
@@ -1 +1 @@
-var _0x2fe9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x2fe9[0];var jsonpatch=require(_0x2fe9[1]);var rp=require(_0x2fe9[2]);var moment=require(_0x2fe9[3]);var BPromise=require(_0x2fe9[4]);var util=require(_0x2fe9[5]);var path=require(_0x2fe9[6]);var sox=require(_0x2fe9[7]);var ejs=require(_0x2fe9[8]);var fs=require(_0x2fe9[9]);var _=require(_0x2fe9[10]);var squel=require(_0x2fe9[11]);var crypto=require(_0x2fe9[12]);var jsforce=require(_0x2fe9[13]);var toCsv=require(_0x2fe9[14]);var qs=require(_0x2fe9[15]);var logger=require(_0x2fe9[17])(_0x2fe9[16]);var utils=require(_0x2fe9[18]);var config=require(_0x2fe9[19]);var db=require(_0x2fe9[21])[_0x2fe9[20]];function respondWithStatusCode(_0x6e58x15,_0x6e58x16,_0x6e58x17){_0x6e58x16= _0x6e58x16|| 204;return function(_0x6e58x18){if(_0x6e58x18){logger[_0x2fe9[24]](_0x2fe9[22],_0x6e58x17,_0x6e58x16,_0x2fe9[23]);logger[_0x2fe9[26]](_0x2fe9[25],_0x6e58x17,_0x6e58x16,_0x2fe9[23]);return _0x6e58x15[_0x2fe9[27]](_0x6e58x16)};return _0x6e58x15[_0x2fe9[29]](304)[_0x2fe9[28]]()}}function respondWithResult(_0x6e58x15,_0x6e58x16,_0x6e58x17){_0x6e58x16= _0x6e58x16|| 200;return function(_0x6e58x18){if(_0x6e58x18){logger[_0x2fe9[24]](_0x2fe9[22],_0x6e58x17,_0x6e58x16,_0x2fe9[30]);logger[_0x2fe9[26]](_0x2fe9[25],_0x6e58x17,_0x6e58x16,_0x2fe9[30],JSON[_0x2fe9[31]](_0x6e58x18));return _0x6e58x15[_0x2fe9[29]](_0x6e58x16)[_0x2fe9[32]](_0x6e58x18)};return _0x6e58x15[_0x2fe9[29]](304)[_0x2fe9[28]]()}}function respondWithFilteredResult(_0x6e58x15,_0x6e58x1b,_0x6e58x17){return function(_0x6e58x18){if(_0x6e58x18){var _0x6e58x1c=_0x6e58x18[_0x2fe9[33]],_0x6e58x1d=_0x6e58x1b[_0x2fe9[34]],_0x6e58x1e=_0x6e58x1b[_0x2fe9[34]]+ _0x6e58x1b[_0x2fe9[35]],_0x6e58x16;if(_0x6e58x1e>= _0x6e58x1c){_0x6e58x1e= _0x6e58x1c;_0x6e58x16= 200}else {_0x6e58x16= 206};_0x6e58x15[_0x2fe9[29]](_0x6e58x16);logger[_0x2fe9[24]](_0x2fe9[22],_0x6e58x17,_0x6e58x16,_0x2fe9[36]);logger[_0x2fe9[26]](_0x2fe9[25],_0x6e58x17,_0x6e58x16,_0x2fe9[30],JSON[_0x2fe9[31]](_0x6e58x18));return _0x6e58x15[_0x2fe9[40]](_0x2fe9[37],_0x6e58x1d+ _0x2fe9[38]+ _0x6e58x1e+ _0x2fe9[39]+ _0x6e58x1c)[_0x2fe9[32]](_0x6e58x18)};return null}}function patchUpdates(_0x6e58x20){return function(_0x6e58x18){try{jsonpatch[_0x2fe9[41]](_0x6e58x18,_0x6e58x20,true)}catch(err){return BPromise[_0x2fe9[42]](err)};return _0x6e58x18[_0x2fe9[43]]()}}function saveUpdates(_0x6e58x22,_0x6e58x16,_0x6e58x17){return function(_0x6e58x18){if(_0x6e58x18){return _0x6e58x18[_0x2fe9[46]](_0x6e58x22)[_0x2fe9[45]](function(_0x6e58x23){logger[_0x2fe9[24]](_0x2fe9[22],_0x6e58x17,_0x6e58x16,_0x2fe9[44]);logger[_0x2fe9[26]](_0x2fe9[25],_0x6e58x17,_0x6e58x16,_0x2fe9[44],JSON[_0x2fe9[31]](_0x6e58x18));return _0x6e58x23})};return null}}function removeEntity(_0x6e58x15,_0x6e58x16,_0x6e58x17){return function(_0x6e58x18){if(_0x6e58x18){return _0x6e58x18[_0x2fe9[48]]()[_0x2fe9[45]](function(){logger[_0x2fe9[24]](_0x2fe9[22],_0x6e58x17,_0x6e58x16,_0x2fe9[47]);logger[_0x2fe9[26]](_0x2fe9[25],_0x6e58x17,_0x6e58x16,_0x2fe9[47],JSON[_0x2fe9[31]](_0x6e58x18));_0x6e58x15[_0x2fe9[29]](204)[_0x2fe9[28]]()})}}}function handleEntityNotFound(_0x6e58x15,_0x6e58x16,_0x6e58x17){return function(_0x6e58x18){if(!_0x6e58x18){logger[_0x2fe9[50]](_0x2fe9[22],_0x6e58x17,404,_0x2fe9[49]);_0x6e58x15[_0x2fe9[29]](404)[_0x2fe9[28]]();return null};return _0x6e58x18}}function handleError(_0x6e58x15,_0x6e58x16,_0x6e58x17){_0x6e58x16= _0x6e58x16|| 500;return function(_0x6e58x27){logger[_0x2fe9[50]](_0x2fe9[22],_0x6e58x17,_0x6e58x16,JSON[_0x2fe9[31]](_0x6e58x27));delete _0x6e58x27[_0x2fe9[51]];_0x6e58x15[_0x2fe9[29]](_0x6e58x16)[_0x2fe9[52]](_0x6e58x27)}}exports[_0x2fe9[53]]= function(_0x6e58x28,_0x6e58x15){var _0x6e58x1b={},_0x6e58x29={};_0x6e58x29[_0x2fe9[54]]= _[_0x2fe9[57]](db[_0x2fe9[56]][_0x2fe9[55]]);_0x6e58x29[_0x2fe9[58]]= _[_0x2fe9[57]](_0x6e58x28[_0x2fe9[58]]);_0x6e58x29[_0x2fe9[59]]= _[_0x2fe9[60]](_0x6e58x29[_0x2fe9[54]],_0x6e58x29[_0x2fe9[58]]);_0x6e58x1b[_0x2fe9[61]]= _[_0x2fe9[60]](_0x6e58x29[_0x2fe9[54]],qs[_0x2fe9[62]](_0x6e58x28[_0x2fe9[58]][_0x2fe9[62]]));_0x6e58x1b[_0x2fe9[61]]= (_0x6e58x1b[_0x2fe9[61]][_0x2fe9[63]])?_0x6e58x1b[_0x2fe9[61]]:_0x6e58x29[_0x2fe9[54]];if(!_0x6e58x28[_0x2fe9[58]][_0x2fe9[65]](_0x2fe9[64])){_0x6e58x1b[_0x2fe9[35]]= qs[_0x2fe9[35]](_0x6e58x28[_0x2fe9[58]][_0x2fe9[35]]);_0x6e58x1b[_0x2fe9[34]]= qs[_0x2fe9[34]](_0x6e58x28[_0x2fe9[58]][_0x2fe9[34]])};_0x6e58x1b[_0x2fe9[66]]= qs[_0x2fe9[67]](_0x6e58x28[_0x2fe9[58]][_0x2fe9[67]]);_0x6e58x1b[_0x2fe9[68]]= qs[_0x2fe9[59]](_[_0x2fe9[69]](_0x6e58x28[_0x2fe9[58]],_0x6e58x29[_0x2fe9[59]]));if(_0x6e58x28[_0x2fe9[58]][_0x2fe9[70]]){_0x6e58x1b[_0x2fe9[68]]= _[_0x2fe9[73]](_0x6e58x1b[_0x2fe9[68]],{$or:_[_0x2fe9[72]](_0x6e58x1b[_0x2fe9[61]],function(_0x6e58x2a){var _0x6e58x2b={};_0x6e58x2b[_0x6e58x2a]= {$like:_0x2fe9[71]+ _0x6e58x28[_0x2fe9[58]][_0x2fe9[70]]+ _0x2fe9[71]};return _0x6e58x2b})})};_0x6e58x1b= _[_0x2fe9[73]]({},_0x6e58x1b,_0x6e58x28[_0x2fe9[74]]);return db[_0x2fe9[56]][_0x2fe9[76]](_0x6e58x1b)[_0x2fe9[45]](respondWithFilteredResult(_0x6e58x15,_0x6e58x1b,_0x2fe9[53]))[_0x2fe9[75]](handleError(_0x6e58x15,null,_0x2fe9[53]))};exports[_0x2fe9[77]]= function(_0x6e58x28,_0x6e58x15){var _0x6e58x1b={raw:false,where:{id:_0x6e58x28[_0x2fe9[79]][_0x2fe9[78]]}},_0x6e58x29={};_0x6e58x29[_0x2fe9[54]]= _[_0x2fe9[57]](db[_0x2fe9[56]][_0x2fe9[55]]);_0x6e58x29[_0x2fe9[58]]= _[_0x2fe9[57]](_0x6e58x28[_0x2fe9[58]]);_0x6e58x29[_0x2fe9[59]]= _[_0x2fe9[60]](_0x6e58x29[_0x2fe9[54]],_0x6e58x29[_0x2fe9[58]]);_0x6e58x1b[_0x2fe9[61]]= _[_0x2fe9[60]](_0x6e58x29[_0x2fe9[54]],qs[_0x2fe9[62]](_0x6e58x28[_0x2fe9[58]][_0x2fe9[62]]));_0x6e58x1b[_0x2fe9[61]]= (_0x6e58x1b[_0x2fe9[61]][_0x2fe9[63]])?_0x6e58x1b[_0x2fe9[61]]:_0x6e58x29[_0x2fe9[54]];_0x6e58x1b= _[_0x2fe9[73]]({},_0x6e58x1b,_0x6e58x28[_0x2fe9[74]]);return db[_0x2fe9[56]][_0x2fe9[80]](_0x6e58x1b)[_0x2fe9[45]](handleEntityNotFound(_0x6e58x15,null,_0x2fe9[77]))[_0x2fe9[45]](respondWithResult(_0x6e58x15,null,_0x2fe9[77]))[_0x2fe9[75]](handleError(_0x6e58x15,null,_0x2fe9[77]))};exports[_0x2fe9[81]]= function(_0x6e58x28,_0x6e58x15){return db[_0x2fe9[56]][_0x2fe9[81]](_0x6e58x28[_0x2fe9[82]],{})[_0x2fe9[45]](respondWithResult(_0x6e58x15,201,_0x2fe9[81]))[_0x2fe9[75]](handleError(_0x6e58x15,null,_0x2fe9[81]))};exports[_0x2fe9[46]]= function(_0x6e58x28,_0x6e58x15){if(_0x6e58x28[_0x2fe9[82]][_0x2fe9[78]]){delete _0x6e58x28[_0x2fe9[82]][_0x2fe9[78]]};return db[_0x2fe9[56]][_0x2fe9[80]]({where:{id:_0x6e58x28[_0x2fe9[79]][_0x2fe9[78]]}})[_0x2fe9[45]](handleEntityNotFound(_0x6e58x15,null,_0x2fe9[46]))[_0x2fe9[45]](saveUpdates(_0x6e58x28[_0x2fe9[82]],null,_0x2fe9[46]))[_0x2fe9[45]](respondWithResult(_0x6e58x15,null,_0x2fe9[46]))[_0x2fe9[75]](handleError(_0x6e58x15,null,_0x2fe9[46]))};exports[_0x2fe9[48]]= function(_0x6e58x28,_0x6e58x15){return db[_0x2fe9[56]][_0x2fe9[80]]({where:{id:_0x6e58x28[_0x2fe9[79]][_0x2fe9[78]]}})[_0x2fe9[45]](handleEntityNotFound(_0x6e58x15,null,_0x2fe9[48]))[_0x2fe9[45]](removeEntity(_0x6e58x15,null,_0x2fe9[48]))[_0x2fe9[75]](handleError(_0x6e58x15,null,_0x2fe9[48]))};exports[_0x2fe9[83]]= function(_0x6e58x28,_0x6e58x15){return db[_0x2fe9[56]][_0x2fe9[83]]()[_0x2fe9[45]](respondWithResult(_0x6e58x15,null,_0x2fe9[83]))[_0x2fe9[75]](handleError(_0x6e58x15,null,_0x2fe9[83]))}
\ No newline at end of file
+var _0xbd8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xbd8b[0];var jsonpatch=require(_0xbd8b[1]);var rp=require(_0xbd8b[2]);var moment=require(_0xbd8b[3]);var BPromise=require(_0xbd8b[4]);var util=require(_0xbd8b[5]);var path=require(_0xbd8b[6]);var sox=require(_0xbd8b[7]);var ejs=require(_0xbd8b[8]);var fs=require(_0xbd8b[9]);var _=require(_0xbd8b[10]);var squel=require(_0xbd8b[11]);var crypto=require(_0xbd8b[12]);var jsforce=require(_0xbd8b[13]);var toCsv=require(_0xbd8b[14]);var qs=require(_0xbd8b[15]);var logger=require(_0xbd8b[17])(_0xbd8b[16]);var utils=require(_0xbd8b[18]);var config=require(_0xbd8b[19]);var db=require(_0xbd8b[21])[_0xbd8b[20]];function respondWithStatusCode(_0x3f92x15,_0x3f92x16,_0x3f92x17){_0x3f92x16= _0x3f92x16|| 204;return function(_0x3f92x18){if(_0x3f92x18){logger[_0xbd8b[24]](_0xbd8b[22],_0x3f92x17,_0x3f92x16,_0xbd8b[23]);logger[_0xbd8b[26]](_0xbd8b[25],_0x3f92x17,_0x3f92x16,_0xbd8b[23]);return _0x3f92x15[_0xbd8b[27]](_0x3f92x16)};return _0x3f92x15[_0xbd8b[29]](304)[_0xbd8b[28]]()}}function respondWithResult(_0x3f92x15,_0x3f92x16,_0x3f92x17){_0x3f92x16= _0x3f92x16|| 200;return function(_0x3f92x18){if(_0x3f92x18){logger[_0xbd8b[24]](_0xbd8b[22],_0x3f92x17,_0x3f92x16,_0xbd8b[30]);logger[_0xbd8b[26]](_0xbd8b[25],_0x3f92x17,_0x3f92x16,_0xbd8b[30],JSON[_0xbd8b[31]](_0x3f92x18));return _0x3f92x15[_0xbd8b[29]](_0x3f92x16)[_0xbd8b[32]](_0x3f92x18)};return _0x3f92x15[_0xbd8b[29]](304)[_0xbd8b[28]]()}}function respondWithFilteredResult(_0x3f92x15,_0x3f92x1b,_0x3f92x17){return function(_0x3f92x18){if(_0x3f92x18){var _0x3f92x1c=_0x3f92x18[_0xbd8b[33]],_0x3f92x1d=_0x3f92x1b[_0xbd8b[34]],_0x3f92x1e=_0x3f92x1b[_0xbd8b[34]]+ _0x3f92x1b[_0xbd8b[35]],_0x3f92x16;if(_0x3f92x1e>= _0x3f92x1c){_0x3f92x1e= _0x3f92x1c;_0x3f92x16= 200}else {_0x3f92x16= 206};_0x3f92x15[_0xbd8b[29]](_0x3f92x16);logger[_0xbd8b[24]](_0xbd8b[22],_0x3f92x17,_0x3f92x16,_0xbd8b[36]);logger[_0xbd8b[26]](_0xbd8b[25],_0x3f92x17,_0x3f92x16,_0xbd8b[30],JSON[_0xbd8b[31]](_0x3f92x18));return _0x3f92x15[_0xbd8b[40]](_0xbd8b[37],_0x3f92x1d+ _0xbd8b[38]+ _0x3f92x1e+ _0xbd8b[39]+ _0x3f92x1c)[_0xbd8b[32]](_0x3f92x18)};return null}}function patchUpdates(_0x3f92x20){return function(_0x3f92x18){try{jsonpatch[_0xbd8b[41]](_0x3f92x18,_0x3f92x20,true)}catch(err){return BPromise[_0xbd8b[42]](err)};return _0x3f92x18[_0xbd8b[43]]()}}function saveUpdates(_0x3f92x22,_0x3f92x16,_0x3f92x17){return function(_0x3f92x18){if(_0x3f92x18){return _0x3f92x18[_0xbd8b[46]](_0x3f92x22)[_0xbd8b[45]](function(_0x3f92x23){logger[_0xbd8b[24]](_0xbd8b[22],_0x3f92x17,_0x3f92x16,_0xbd8b[44]);logger[_0xbd8b[26]](_0xbd8b[25],_0x3f92x17,_0x3f92x16,_0xbd8b[44],JSON[_0xbd8b[31]](_0x3f92x18));return _0x3f92x23})};return null}}function removeEntity(_0x3f92x15,_0x3f92x16,_0x3f92x17){return function(_0x3f92x18){if(_0x3f92x18){return _0x3f92x18[_0xbd8b[48]]()[_0xbd8b[45]](function(){logger[_0xbd8b[24]](_0xbd8b[22],_0x3f92x17,_0x3f92x16,_0xbd8b[47]);logger[_0xbd8b[26]](_0xbd8b[25],_0x3f92x17,_0x3f92x16,_0xbd8b[47],JSON[_0xbd8b[31]](_0x3f92x18));_0x3f92x15[_0xbd8b[29]](204)[_0xbd8b[28]]()})}}}function handleEntityNotFound(_0x3f92x15,_0x3f92x16,_0x3f92x17){return function(_0x3f92x18){if(!_0x3f92x18){logger[_0xbd8b[50]](_0xbd8b[22],_0x3f92x17,404,_0xbd8b[49]);_0x3f92x15[_0xbd8b[29]](404)[_0xbd8b[28]]();return null};return _0x3f92x18}}function handleError(_0x3f92x15,_0x3f92x16,_0x3f92x17){_0x3f92x16= _0x3f92x16|| 500;return function(_0x3f92x27){logger[_0xbd8b[50]](_0xbd8b[22],_0x3f92x17,_0x3f92x16,JSON[_0xbd8b[31]](_0x3f92x27));delete _0x3f92x27[_0xbd8b[51]];_0x3f92x15[_0xbd8b[29]](_0x3f92x16)[_0xbd8b[52]](_0x3f92x27)}}exports[_0xbd8b[53]]= function(_0x3f92x28,_0x3f92x15){var _0x3f92x1b={},_0x3f92x29={};_0x3f92x29[_0xbd8b[54]]= _[_0xbd8b[57]](db[_0xbd8b[56]][_0xbd8b[55]]);_0x3f92x29[_0xbd8b[58]]= _[_0xbd8b[57]](_0x3f92x28[_0xbd8b[58]]);_0x3f92x29[_0xbd8b[59]]= _[_0xbd8b[60]](_0x3f92x29[_0xbd8b[54]],_0x3f92x29[_0xbd8b[58]]);_0x3f92x1b[_0xbd8b[61]]= _[_0xbd8b[60]](_0x3f92x29[_0xbd8b[54]],qs[_0xbd8b[62]](_0x3f92x28[_0xbd8b[58]][_0xbd8b[62]]));_0x3f92x1b[_0xbd8b[61]]= (_0x3f92x1b[_0xbd8b[61]][_0xbd8b[63]])?_0x3f92x1b[_0xbd8b[61]]:_0x3f92x29[_0xbd8b[54]];if(!_0x3f92x28[_0xbd8b[58]][_0xbd8b[65]](_0xbd8b[64])){_0x3f92x1b[_0xbd8b[35]]= qs[_0xbd8b[35]](_0x3f92x28[_0xbd8b[58]][_0xbd8b[35]]);_0x3f92x1b[_0xbd8b[34]]= qs[_0xbd8b[34]](_0x3f92x28[_0xbd8b[58]][_0xbd8b[34]])};_0x3f92x1b[_0xbd8b[66]]= qs[_0xbd8b[67]](_0x3f92x28[_0xbd8b[58]][_0xbd8b[67]]);_0x3f92x1b[_0xbd8b[68]]= qs[_0xbd8b[59]](_[_0xbd8b[69]](_0x3f92x28[_0xbd8b[58]],_0x3f92x29[_0xbd8b[59]]));if(_0x3f92x28[_0xbd8b[58]][_0xbd8b[70]]){_0x3f92x1b[_0xbd8b[68]]= _[_0xbd8b[73]](_0x3f92x1b[_0xbd8b[68]],{$or:_[_0xbd8b[72]](_0x3f92x1b[_0xbd8b[61]],function(_0x3f92x2a){var _0x3f92x2b={};_0x3f92x2b[_0x3f92x2a]= {$like:_0xbd8b[71]+ _0x3f92x28[_0xbd8b[58]][_0xbd8b[70]]+ _0xbd8b[71]};return _0x3f92x2b})})};_0x3f92x1b= _[_0xbd8b[73]]({},_0x3f92x1b,_0x3f92x28[_0xbd8b[74]]);return db[_0xbd8b[56]][_0xbd8b[76]](_0x3f92x1b)[_0xbd8b[45]](respondWithFilteredResult(_0x3f92x15,_0x3f92x1b,_0xbd8b[53]))[_0xbd8b[75]](handleError(_0x3f92x15,null,_0xbd8b[53]))};exports[_0xbd8b[77]]= function(_0x3f92x28,_0x3f92x15){var _0x3f92x1b={raw:false,where:{id:_0x3f92x28[_0xbd8b[79]][_0xbd8b[78]]}},_0x3f92x29={};_0x3f92x29[_0xbd8b[54]]= _[_0xbd8b[57]](db[_0xbd8b[56]][_0xbd8b[55]]);_0x3f92x29[_0xbd8b[58]]= _[_0xbd8b[57]](_0x3f92x28[_0xbd8b[58]]);_0x3f92x29[_0xbd8b[59]]= _[_0xbd8b[60]](_0x3f92x29[_0xbd8b[54]],_0x3f92x29[_0xbd8b[58]]);_0x3f92x1b[_0xbd8b[61]]= _[_0xbd8b[60]](_0x3f92x29[_0xbd8b[54]],qs[_0xbd8b[62]](_0x3f92x28[_0xbd8b[58]][_0xbd8b[62]]));_0x3f92x1b[_0xbd8b[61]]= (_0x3f92x1b[_0xbd8b[61]][_0xbd8b[63]])?_0x3f92x1b[_0xbd8b[61]]:_0x3f92x29[_0xbd8b[54]];_0x3f92x1b= _[_0xbd8b[73]]({},_0x3f92x1b,_0x3f92x28[_0xbd8b[74]]);return db[_0xbd8b[56]][_0xbd8b[80]](_0x3f92x1b)[_0xbd8b[45]](handleEntityNotFound(_0x3f92x15,null,_0xbd8b[77]))[_0xbd8b[45]](respondWithResult(_0x3f92x15,null,_0xbd8b[77]))[_0xbd8b[75]](handleError(_0x3f92x15,null,_0xbd8b[77]))};exports[_0xbd8b[81]]= function(_0x3f92x28,_0x3f92x15){return db[_0xbd8b[56]][_0xbd8b[81]](_0x3f92x28[_0xbd8b[82]],{})[_0xbd8b[45]](respondWithResult(_0x3f92x15,201,_0xbd8b[81]))[_0xbd8b[75]](handleError(_0x3f92x15,null,_0xbd8b[81]))};exports[_0xbd8b[46]]= function(_0x3f92x28,_0x3f92x15){if(_0x3f92x28[_0xbd8b[82]][_0xbd8b[78]]){delete _0x3f92x28[_0xbd8b[82]][_0xbd8b[78]]};return db[_0xbd8b[56]][_0xbd8b[80]]({where:{id:_0x3f92x28[_0xbd8b[79]][_0xbd8b[78]]}})[_0xbd8b[45]](handleEntityNotFound(_0x3f92x15,null,_0xbd8b[46]))[_0xbd8b[45]](saveUpdates(_0x3f92x28[_0xbd8b[82]],null,_0xbd8b[46]))[_0xbd8b[45]](respondWithResult(_0x3f92x15,null,_0xbd8b[46]))[_0xbd8b[75]](handleError(_0x3f92x15,null,_0xbd8b[46]))};exports[_0xbd8b[48]]= function(_0x3f92x28,_0x3f92x15){return db[_0xbd8b[56]][_0xbd8b[80]]({where:{id:_0x3f92x28[_0xbd8b[79]][_0xbd8b[78]]}})[_0xbd8b[45]](handleEntityNotFound(_0x3f92x15,null,_0xbd8b[48]))[_0xbd8b[45]](removeEntity(_0x3f92x15,null,_0xbd8b[48]))[_0xbd8b[75]](handleError(_0x3f92x15,null,_0xbd8b[48]))};exports[_0xbd8b[83]]= function(_0x3f92x28,_0x3f92x15){return db[_0xbd8b[56]][_0xbd8b[83]]()[_0xbd8b[45]](respondWithResult(_0x3f92x15,null,_0xbd8b[83]))[_0xbd8b[75]](handleError(_0x3f92x15,null,_0xbd8b[83]))}
\ No newline at end of file
index fffe859..edc4316 100644 (file)
@@ -1 +1 @@
-var _0xf870=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xf870[0];var _=require(_0xf870[1]);var util=require(_0xf870[2]);var logger=require(_0xf870[4])(_0xf870[3]);var attributes=require(_0xf870[5]);module[_0xf870[6]]= function(_0x9105x5,_0x9105x6){return _0x9105x5[_0xf870[9]](_0xf870[7],attributes,{tableName:_0xf870[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xce4f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xce4f[0];var _=require(_0xce4f[1]);var util=require(_0xce4f[2]);var logger=require(_0xce4f[4])(_0xce4f[3]);var attributes=require(_0xce4f[5]);module[_0xce4f[6]]= function(_0xf519x5,_0xf519x6){return _0xf519x5[_0xce4f[9]](_0xce4f[7],attributes,{tableName:_0xce4f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4b92bbd..c6b0239 100644 (file)
@@ -1 +1 @@
-var _0x5f3e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5f3e[0];var _=require(_0x5f3e[1]);var util=require(_0x5f3e[2]);var moment=require(_0x5f3e[3]);var BPromise=require(_0x5f3e[4]);var db=require(_0x5f3e[6])[_0x5f3e[5]];var utils=require(_0x5f3e[7]);var logger=require(_0x5f3e[9])(_0x5f3e[8]);var jayson=require(_0x5f3e[10]);var client=jayson[_0x5f3e[12]][_0x5f3e[11]]({port:9002});function respondWithRpcPromise(_0xaca9xb,_0xaca9xc,_0xaca9xd){return  new BPromise(function(_0xaca9xe,_0xaca9xf){return client[_0x5f3e[25]](_0xaca9xb,_0xaca9xd)[_0x5f3e[24]](function(_0xaca9x11){logger[_0x5f3e[17]](_0x5f3e[13],_0xaca9xc,_0x5f3e[16]);logger[_0x5f3e[20]](_0x5f3e[18],_0xaca9xc,_0x5f3e[16],JSON[_0x5f3e[19]](_0xaca9x11));if(_0xaca9x11[_0x5f3e[14]]){if(_0xaca9x11[_0x5f3e[14]][_0x5f3e[21]]=== 500){logger[_0x5f3e[14]](_0x5f3e[13],_0xaca9xc,_0xaca9x11[_0x5f3e[14]][_0x5f3e[22]]);return _0xaca9xf(_0xaca9x11[_0x5f3e[14]][_0x5f3e[22]])};logger[_0x5f3e[14]](_0x5f3e[13],_0xaca9xc,_0xaca9x11[_0x5f3e[14]][_0x5f3e[22]]);return _0xaca9xe(_0xaca9x11[_0x5f3e[14]][_0x5f3e[22]])}else {logger[_0x5f3e[17]](_0x5f3e[13],_0xaca9xc,_0x5f3e[16]);_0xaca9xe(_0xaca9x11[_0x5f3e[23]][_0x5f3e[22]])}})[_0x5f3e[15]](function(_0xaca9x10){logger[_0x5f3e[14]](_0x5f3e[13],_0xaca9xc,_0xaca9x10);_0xaca9xf(_0xaca9x10)})})}
\ No newline at end of file
+var _0xbbba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbbba[0];var _=require(_0xbbba[1]);var util=require(_0xbbba[2]);var moment=require(_0xbbba[3]);var BPromise=require(_0xbbba[4]);var db=require(_0xbbba[6])[_0xbbba[5]];var utils=require(_0xbbba[7]);var logger=require(_0xbbba[9])(_0xbbba[8]);var jayson=require(_0xbbba[10]);var client=jayson[_0xbbba[12]][_0xbbba[11]]({port:9002});function respondWithRpcPromise(_0x546exb,_0x546exc,_0x546exd){return  new BPromise(function(_0x546exe,_0x546exf){return client[_0xbbba[25]](_0x546exb,_0x546exd)[_0xbbba[24]](function(_0x546ex11){logger[_0xbbba[17]](_0xbbba[13],_0x546exc,_0xbbba[16]);logger[_0xbbba[20]](_0xbbba[18],_0x546exc,_0xbbba[16],JSON[_0xbbba[19]](_0x546ex11));if(_0x546ex11[_0xbbba[14]]){if(_0x546ex11[_0xbbba[14]][_0xbbba[21]]=== 500){logger[_0xbbba[14]](_0xbbba[13],_0x546exc,_0x546ex11[_0xbbba[14]][_0xbbba[22]]);return _0x546exf(_0x546ex11[_0xbbba[14]][_0xbbba[22]])};logger[_0xbbba[14]](_0xbbba[13],_0x546exc,_0x546ex11[_0xbbba[14]][_0xbbba[22]]);return _0x546exe(_0x546ex11[_0xbbba[14]][_0xbbba[22]])}else {logger[_0xbbba[17]](_0xbbba[13],_0x546exc,_0xbbba[16]);_0x546exe(_0x546ex11[_0xbbba[23]][_0xbbba[22]])}})[_0xbbba[15]](function(_0x546ex10){logger[_0xbbba[14]](_0xbbba[13],_0x546exc,_0x546ex10);_0x546exf(_0x546ex10)})})}
\ No newline at end of file
index db94587..2eec483 100644 (file)
@@ -1 +1 @@
-var _0x8f34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8f34[0];var multer=require(_0x8f34[1]);var util=require(_0x8f34[2]);var path=require(_0x8f34[3]);var express=require(_0x8f34[4]);var router=express.Router();var auth=require(_0x8f34[5]);var config=require(_0x8f34[6]);var controller=require(_0x8f34[7]);router[_0x8f34[11]](_0x8f34[8],auth[_0x8f34[9]](),controller[_0x8f34[10]]);router[_0x8f34[11]](_0x8f34[12],auth[_0x8f34[9]](),controller[_0x8f34[13]]);router[_0x8f34[11]](_0x8f34[14],auth[_0x8f34[9]](),controller[_0x8f34[15]]);router[_0x8f34[17]](_0x8f34[8],auth[_0x8f34[9]](),controller[_0x8f34[16]]);router[_0x8f34[17]](_0x8f34[14],auth[_0x8f34[9]](),controller[_0x8f34[18]]);router[_0x8f34[17]](_0x8f34[19],auth[_0x8f34[9]](),controller[_0x8f34[20]]);router[_0x8f34[22]](_0x8f34[12],auth[_0x8f34[9]](),controller[_0x8f34[21]]);router[_0x8f34[24]](_0x8f34[12],auth[_0x8f34[9]](),controller[_0x8f34[23]]);module[_0x8f34[25]]= router
\ No newline at end of file
+var _0xdde3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdde3[0];var multer=require(_0xdde3[1]);var util=require(_0xdde3[2]);var path=require(_0xdde3[3]);var express=require(_0xdde3[4]);var router=express.Router();var auth=require(_0xdde3[5]);var config=require(_0xdde3[6]);var controller=require(_0xdde3[7]);router[_0xdde3[11]](_0xdde3[8],auth[_0xdde3[9]](),controller[_0xdde3[10]]);router[_0xdde3[11]](_0xdde3[12],auth[_0xdde3[9]](),controller[_0xdde3[13]]);router[_0xdde3[11]](_0xdde3[14],auth[_0xdde3[9]](),controller[_0xdde3[15]]);router[_0xdde3[17]](_0xdde3[8],auth[_0xdde3[9]](),controller[_0xdde3[16]]);router[_0xdde3[17]](_0xdde3[14],auth[_0xdde3[9]](),controller[_0xdde3[18]]);router[_0xdde3[17]](_0xdde3[19],auth[_0xdde3[9]](),controller[_0xdde3[20]]);router[_0xdde3[22]](_0xdde3[12],auth[_0xdde3[9]](),controller[_0xdde3[21]]);router[_0xdde3[24]](_0xdde3[12],auth[_0xdde3[9]](),controller[_0xdde3[23]]);module[_0xdde3[25]]= router
\ No newline at end of file
index ed0ba55..73fee05 100644 (file)
@@ -1 +1 @@
-var _0x1eeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x1eeb[0];var Sequelize=require(_0x1eeb[1]);module[_0x1eeb[2]]= {name:{type:Sequelize[_0x1eeb[3]]},description:{type:Sequelize[_0x1eeb[3]]},interval:{type:Sequelize[_0x1eeb[3]],allowNull:true}}
\ No newline at end of file
+var _0x6155=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x6155[0];var Sequelize=require(_0x6155[1]);module[_0x6155[2]]= {name:{type:Sequelize[_0x6155[3]]},description:{type:Sequelize[_0x6155[3]]},interval:{type:Sequelize[_0x6155[3]],allowNull:true}}
\ No newline at end of file
index 805f01f..2fa6295 100644 (file)
@@ -1 +1 @@
-var _0x5fcd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x2F\x72\x65\x77\x72\x69\x74\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x5fcd[0];var jsonpatch=require(_0x5fcd[1]);var rp=require(_0x5fcd[2]);var moment=require(_0x5fcd[3]);var BPromise=require(_0x5fcd[4]);var util=require(_0x5fcd[5]);var path=require(_0x5fcd[6]);var sox=require(_0x5fcd[7]);var ejs=require(_0x5fcd[8]);var fs=require(_0x5fcd[9]);var _=require(_0x5fcd[10]);var squel=require(_0x5fcd[11]);var crypto=require(_0x5fcd[12]);var jsforce=require(_0x5fcd[13]);var toCsv=require(_0x5fcd[14]);var qs=require(_0x5fcd[15]);var logger=require(_0x5fcd[17])(_0x5fcd[16]);var utils=require(_0x5fcd[18]);var config=require(_0x5fcd[19]);var db=require(_0x5fcd[21])[_0x5fcd[20]];var extensions=require(_0x5fcd[22]);function respondWithStatusCode(_0x7dd3x16,_0x7dd3x17,_0x7dd3x18){_0x7dd3x17= _0x7dd3x17|| 204;return function(_0x7dd3x19){if(_0x7dd3x19){logger[_0x5fcd[25]](_0x5fcd[23],_0x7dd3x18,_0x7dd3x17,_0x5fcd[24]);logger[_0x5fcd[27]](_0x5fcd[26],_0x7dd3x18,_0x7dd3x17,_0x5fcd[24]);return _0x7dd3x16[_0x5fcd[28]](_0x7dd3x17)};return _0x7dd3x16[_0x5fcd[30]](304)[_0x5fcd[29]]()}}function respondWithResult(_0x7dd3x16,_0x7dd3x17,_0x7dd3x18){_0x7dd3x17= _0x7dd3x17|| 200;return function(_0x7dd3x19){if(_0x7dd3x19){logger[_0x5fcd[25]](_0x5fcd[23],_0x7dd3x18,_0x7dd3x17,_0x5fcd[31]);logger[_0x5fcd[27]](_0x5fcd[26],_0x7dd3x18,_0x7dd3x17,_0x5fcd[31],JSON[_0x5fcd[32]](_0x7dd3x19));return _0x7dd3x16[_0x5fcd[30]](_0x7dd3x17)[_0x5fcd[33]](_0x7dd3x19)};return _0x7dd3x16[_0x5fcd[30]](304)[_0x5fcd[29]]()}}function respondWithFilteredResult(_0x7dd3x16,_0x7dd3x1c,_0x7dd3x18){return function(_0x7dd3x19){if(_0x7dd3x19){var _0x7dd3x1d=_0x7dd3x19[_0x5fcd[34]],_0x7dd3x1e=_0x7dd3x1c[_0x5fcd[35]],_0x7dd3x1f=_0x7dd3x1c[_0x5fcd[35]]+ _0x7dd3x1c[_0x5fcd[36]],_0x7dd3x17;if(_0x7dd3x1f>= _0x7dd3x1d){_0x7dd3x1f= _0x7dd3x1d;_0x7dd3x17= 200}else {_0x7dd3x17= 206};_0x7dd3x16[_0x5fcd[30]](_0x7dd3x17);logger[_0x5fcd[25]](_0x5fcd[23],_0x7dd3x18,_0x7dd3x17,_0x5fcd[37]);logger[_0x5fcd[27]](_0x5fcd[26],_0x7dd3x18,_0x7dd3x17,_0x5fcd[31],JSON[_0x5fcd[32]](_0x7dd3x19));return _0x7dd3x16[_0x5fcd[41]](_0x5fcd[38],_0x7dd3x1e+ _0x5fcd[39]+ _0x7dd3x1f+ _0x5fcd[40]+ _0x7dd3x1d)[_0x5fcd[33]](_0x7dd3x19)};return null}}function patchUpdates(_0x7dd3x21){return function(_0x7dd3x19){try{jsonpatch[_0x5fcd[42]](_0x7dd3x19,_0x7dd3x21,true)}catch(err){return BPromise[_0x5fcd[43]](err)};return _0x7dd3x19[_0x5fcd[44]]()}}function saveUpdates(_0x7dd3x23,_0x7dd3x17,_0x7dd3x18){return function(_0x7dd3x19){if(_0x7dd3x19){return _0x7dd3x19[_0x5fcd[47]](_0x7dd3x23)[_0x5fcd[46]](function(_0x7dd3x24){logger[_0x5fcd[25]](_0x5fcd[23],_0x7dd3x18,_0x7dd3x17,_0x5fcd[45]);logger[_0x5fcd[27]](_0x5fcd[26],_0x7dd3x18,_0x7dd3x17,_0x5fcd[45],JSON[_0x5fcd[32]](_0x7dd3x19));return _0x7dd3x24})};return null}}function removeEntity(_0x7dd3x16,_0x7dd3x17,_0x7dd3x18){return function(_0x7dd3x19){if(_0x7dd3x19){return _0x7dd3x19[_0x5fcd[49]]()[_0x5fcd[46]](function(){logger[_0x5fcd[25]](_0x5fcd[23],_0x7dd3x18,_0x7dd3x17,_0x5fcd[48]);logger[_0x5fcd[27]](_0x5fcd[26],_0x7dd3x18,_0x7dd3x17,_0x5fcd[48],JSON[_0x5fcd[32]](_0x7dd3x19));_0x7dd3x16[_0x5fcd[30]](204)[_0x5fcd[29]]()})}}}function handleEntityNotFound(_0x7dd3x16,_0x7dd3x17,_0x7dd3x18){return function(_0x7dd3x19){if(!_0x7dd3x19){logger[_0x5fcd[51]](_0x5fcd[23],_0x7dd3x18,404,_0x5fcd[50]);_0x7dd3x16[_0x5fcd[30]](404)[_0x5fcd[29]]();return null};return _0x7dd3x19}}function handleError(_0x7dd3x16,_0x7dd3x17,_0x7dd3x18){_0x7dd3x17= _0x7dd3x17|| 500;return function(_0x7dd3x28){logger[_0x5fcd[51]](_0x5fcd[23],_0x7dd3x18,_0x7dd3x17,JSON[_0x5fcd[32]](_0x7dd3x28));delete _0x7dd3x28[_0x5fcd[52]];_0x7dd3x16[_0x5fcd[30]](_0x7dd3x17)[_0x5fcd[53]](_0x7dd3x28)}}exports[_0x5fcd[54]]= function(_0x7dd3x29,_0x7dd3x16){var _0x7dd3x1c={},_0x7dd3x2a={};_0x7dd3x2a[_0x5fcd[55]]= _[_0x5fcd[58]](db[_0x5fcd[57]][_0x5fcd[56]]);_0x7dd3x2a[_0x5fcd[59]]= _[_0x5fcd[58]](_0x7dd3x29[_0x5fcd[59]]);_0x7dd3x2a[_0x5fcd[60]]= _[_0x5fcd[61]](_0x7dd3x2a[_0x5fcd[55]],_0x7dd3x2a[_0x5fcd[59]]);_0x7dd3x1c[_0x5fcd[62]]= _[_0x5fcd[61]](_0x7dd3x2a[_0x5fcd[55]],qs[_0x5fcd[63]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[63]]));_0x7dd3x1c[_0x5fcd[62]]= (_0x7dd3x1c[_0x5fcd[62]][_0x5fcd[64]])?_0x7dd3x1c[_0x5fcd[62]]:_0x7dd3x2a[_0x5fcd[55]];if(!_0x7dd3x29[_0x5fcd[59]][_0x5fcd[66]](_0x5fcd[65])){_0x7dd3x1c[_0x5fcd[36]]= qs[_0x5fcd[36]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[36]]);_0x7dd3x1c[_0x5fcd[35]]= qs[_0x5fcd[35]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[35]])};_0x7dd3x1c[_0x5fcd[67]]= qs[_0x5fcd[68]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[68]]);_0x7dd3x1c[_0x5fcd[69]]= qs[_0x5fcd[60]](_[_0x5fcd[70]](_0x7dd3x29[_0x5fcd[59]],_0x7dd3x2a[_0x5fcd[60]]));if(_0x7dd3x29[_0x5fcd[59]][_0x5fcd[71]]){_0x7dd3x1c[_0x5fcd[69]]= _[_0x5fcd[74]](_0x7dd3x1c[_0x5fcd[69]],{$or:_[_0x5fcd[73]](_0x7dd3x1c[_0x5fcd[62]],function(_0x7dd3x2b){var _0x7dd3x2c={};_0x7dd3x2c[_0x7dd3x2b]= {$like:_0x5fcd[72]+ _0x7dd3x29[_0x5fcd[59]][_0x5fcd[71]]+ _0x5fcd[72]};return _0x7dd3x2c})})};_0x7dd3x1c= _[_0x5fcd[74]]({},_0x7dd3x1c,_0x7dd3x29[_0x5fcd[75]]);return db[_0x5fcd[57]][_0x5fcd[77]](_0x7dd3x1c)[_0x5fcd[46]](respondWithFilteredResult(_0x7dd3x16,_0x7dd3x1c,_0x5fcd[54]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[54]))};exports[_0x5fcd[78]]= function(_0x7dd3x29,_0x7dd3x16){var _0x7dd3x1c={raw:true,where:{id:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}},_0x7dd3x2a={};_0x7dd3x2a[_0x5fcd[55]]= _[_0x5fcd[58]](db[_0x5fcd[57]][_0x5fcd[56]]);_0x7dd3x2a[_0x5fcd[59]]= _[_0x5fcd[58]](_0x7dd3x29[_0x5fcd[59]]);_0x7dd3x2a[_0x5fcd[60]]= _[_0x5fcd[61]](_0x7dd3x2a[_0x5fcd[55]],_0x7dd3x2a[_0x5fcd[59]]);_0x7dd3x1c[_0x5fcd[62]]= _[_0x5fcd[61]](_0x7dd3x2a[_0x5fcd[55]],qs[_0x5fcd[63]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[63]]));_0x7dd3x1c[_0x5fcd[62]]= (_0x7dd3x1c[_0x5fcd[62]][_0x5fcd[64]])?_0x7dd3x1c[_0x5fcd[62]]:_0x7dd3x2a[_0x5fcd[55]];_0x7dd3x1c= _[_0x5fcd[74]]({},_0x7dd3x1c,_0x7dd3x29[_0x5fcd[75]]);return db[_0x5fcd[57]][_0x5fcd[81]](_0x7dd3x1c)[_0x5fcd[46]](handleEntityNotFound(_0x7dd3x16,null,_0x5fcd[78]))[_0x5fcd[46]](respondWithResult(_0x7dd3x16,null,_0x5fcd[78]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[78]))};exports[_0x5fcd[82]]= function(_0x7dd3x29,_0x7dd3x16){return db[_0x5fcd[57]][_0x5fcd[82]](_0x7dd3x29[_0x5fcd[83]],{})[_0x5fcd[46]](respondWithResult(_0x7dd3x16,201,_0x5fcd[82]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[82]))};exports[_0x5fcd[47]]= function(_0x7dd3x29,_0x7dd3x16){if(_0x7dd3x29[_0x5fcd[83]][_0x5fcd[79]]){delete _0x7dd3x29[_0x5fcd[83]][_0x5fcd[79]]};return db[_0x5fcd[57]][_0x5fcd[81]]({where:{id:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}})[_0x5fcd[46]](handleEntityNotFound(_0x7dd3x16,null,_0x5fcd[47]))[_0x5fcd[46]](saveUpdates(_0x7dd3x29[_0x5fcd[83]],null,_0x5fcd[47]))[_0x5fcd[46]](respondWithResult(_0x7dd3x16,null,_0x5fcd[47]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[47]))};exports[_0x5fcd[49]]= function(_0x7dd3x29,_0x7dd3x16){return db[_0x5fcd[57]][_0x5fcd[81]]({where:{id:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}})[_0x5fcd[46]](handleEntityNotFound(_0x7dd3x16,null,_0x5fcd[49]))[_0x5fcd[46]](removeEntity(_0x7dd3x16,null,_0x5fcd[49]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[49]))};exports[_0x5fcd[84]]= function(_0x7dd3x29,_0x7dd3x16,_0x7dd3x2d){if(_0x7dd3x29[_0x5fcd[83]][_0x5fcd[79]]){delete _0x7dd3x29[_0x5fcd[83]][_0x5fcd[79]]};return db[_0x5fcd[57]][_0x5fcd[81]]({where:{id:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}})[_0x5fcd[46]](handleEntityNotFound(_0x7dd3x16,null,_0x5fcd[84]))[_0x5fcd[46]](function(_0x7dd3x19){if(_0x7dd3x19){_0x7dd3x29[_0x5fcd[83]][_0x5fcd[85]]= _0x7dd3x19[_0x5fcd[79]];return db[_0x5fcd[57]][_0x5fcd[82]](_0x7dd3x29[_0x5fcd[83]])}})[_0x5fcd[46]](respondWithResult(_0x7dd3x16,null,_0x5fcd[84]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[84]))};exports[_0x5fcd[86]]= function(_0x7dd3x29,_0x7dd3x19,_0x7dd3x2d){var _0x7dd3x1c={};var _0x7dd3x2a={};var _0x7dd3x2e;var _0x7dd3x1d;return db[_0x5fcd[57]][_0x5fcd[87]]({where:{id:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}})[_0x5fcd[46]](handleEntityNotFound(_0x7dd3x19,null,_0x5fcd[86]))[_0x5fcd[46]](function(_0x7dd3x19){if(_0x7dd3x19){_0x7dd3x2e= _0x7dd3x19;_0x7dd3x2a[_0x5fcd[55]]= _[_0x5fcd[58]](db[_0x5fcd[57]][_0x5fcd[56]]);_0x7dd3x2a[_0x5fcd[59]]= _[_0x5fcd[58]](_0x7dd3x29[_0x5fcd[59]]);_0x7dd3x2a[_0x5fcd[60]]= _[_0x5fcd[61]](_0x7dd3x2a[_0x5fcd[55]],_0x7dd3x2a[_0x5fcd[59]]);_0x7dd3x1c[_0x5fcd[62]]= _[_0x5fcd[61]](_0x7dd3x2a[_0x5fcd[55]],qs[_0x5fcd[63]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[63]]));_0x7dd3x1c[_0x5fcd[62]]= (_0x7dd3x1c[_0x5fcd[62]][_0x5fcd[64]])?_0x7dd3x1c[_0x5fcd[62]]:_0x7dd3x2a[_0x5fcd[55]];_0x7dd3x1c[_0x5fcd[67]]= qs[_0x5fcd[68]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[68]]);_0x7dd3x1c[_0x5fcd[69]]= qs[_0x5fcd[60]](_[_0x5fcd[70]](_0x7dd3x29[_0x5fcd[59]],_0x7dd3x2a[_0x5fcd[60]]));if(_0x7dd3x29[_0x5fcd[59]][_0x5fcd[71]]){_0x7dd3x1c[_0x5fcd[69]]= _[_0x5fcd[74]](_0x7dd3x1c[_0x5fcd[69]],{$or:_[_0x5fcd[73]](_0x7dd3x1c[_0x5fcd[62]],function(_0x7dd3x2b){var _0x7dd3x2c={};_0x7dd3x2c[_0x7dd3x2b]= {$like:_0x5fcd[72]+ _0x7dd3x29[_0x5fcd[59]][_0x5fcd[71]]+ _0x5fcd[72]};return _0x7dd3x2c})})};_0x7dd3x1c= _[_0x5fcd[74]]({},_0x7dd3x1c,_0x7dd3x29[_0x5fcd[75]]);return _0x7dd3x2e[_0x5fcd[86]](_0x7dd3x1c)}})[_0x5fcd[46]](function(_0x7dd3x30){if(_0x7dd3x30){_0x7dd3x1d= _0x7dd3x30[_0x5fcd[64]];if(!_0x7dd3x29[_0x5fcd[59]][_0x5fcd[66]](_0x5fcd[65])){_0x7dd3x1c[_0x5fcd[36]]= qs[_0x5fcd[36]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[36]]);_0x7dd3x1c[_0x5fcd[35]]= qs[_0x5fcd[35]](_0x7dd3x29[_0x5fcd[59]][_0x5fcd[35]])};return _0x7dd3x2e[_0x5fcd[86]](_0x7dd3x1c)}})[_0x5fcd[46]](function(_0x7dd3x2f){return _0x7dd3x2f?{count:_0x7dd3x1d,rows:_0x7dd3x2f}:null})[_0x5fcd[46]](respondWithResult(_0x7dd3x19,null,_0x5fcd[86]))[_0x5fcd[76]](handleError(_0x7dd3x19,null,_0x5fcd[86]))};exports[_0x5fcd[88]]= function(_0x7dd3x29,_0x7dd3x16,_0x7dd3x2d){return db[_0x5fcd[57]][_0x5fcd[87]]({where:{id:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}})[_0x5fcd[46]](handleEntityNotFound(_0x7dd3x16,null,_0x5fcd[88]))[_0x5fcd[46]](function(_0x7dd3x19){if(_0x7dd3x19){return db[_0x5fcd[92]][_0x5fcd[91]](function(_0x7dd3x31){return db[_0x5fcd[57]][_0x5fcd[49]]({where:{IntervalId:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]},transaction:_0x7dd3x31})[_0x5fcd[46]](function(_0x7dd3x32){var _0x7dd3x33=_[_0x5fcd[73]](_0x7dd3x29[_0x5fcd[83]],function(_0x7dd3x34){delete _0x7dd3x34[_0x5fcd[79]];_0x7dd3x34[_0x5fcd[85]]= _0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]];return _0x7dd3x34});return db[_0x5fcd[57]][_0x5fcd[90]](_0x7dd3x33,{transaction:_0x7dd3x31})})})[_0x5fcd[46]](function(){return db[_0x5fcd[57]][_0x5fcd[89]]({where:{IntervalId:_0x7dd3x29[_0x5fcd[80]][_0x5fcd[79]]}})})}})[_0x5fcd[46]](respondWithResult(_0x7dd3x16,null,_0x5fcd[88]))[_0x5fcd[76]](handleError(_0x7dd3x16,null,_0x5fcd[88]))}
\ No newline at end of file
+var _0xe333=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x2F\x72\x65\x77\x72\x69\x74\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0xe333[0];var jsonpatch=require(_0xe333[1]);var rp=require(_0xe333[2]);var moment=require(_0xe333[3]);var BPromise=require(_0xe333[4]);var util=require(_0xe333[5]);var path=require(_0xe333[6]);var sox=require(_0xe333[7]);var ejs=require(_0xe333[8]);var fs=require(_0xe333[9]);var _=require(_0xe333[10]);var squel=require(_0xe333[11]);var crypto=require(_0xe333[12]);var jsforce=require(_0xe333[13]);var toCsv=require(_0xe333[14]);var qs=require(_0xe333[15]);var logger=require(_0xe333[17])(_0xe333[16]);var utils=require(_0xe333[18]);var config=require(_0xe333[19]);var db=require(_0xe333[21])[_0xe333[20]];var extensions=require(_0xe333[22]);function respondWithStatusCode(_0xd43cx16,_0xd43cx17,_0xd43cx18){_0xd43cx17= _0xd43cx17|| 204;return function(_0xd43cx19){if(_0xd43cx19){logger[_0xe333[25]](_0xe333[23],_0xd43cx18,_0xd43cx17,_0xe333[24]);logger[_0xe333[27]](_0xe333[26],_0xd43cx18,_0xd43cx17,_0xe333[24]);return _0xd43cx16[_0xe333[28]](_0xd43cx17)};return _0xd43cx16[_0xe333[30]](304)[_0xe333[29]]()}}function respondWithResult(_0xd43cx16,_0xd43cx17,_0xd43cx18){_0xd43cx17= _0xd43cx17|| 200;return function(_0xd43cx19){if(_0xd43cx19){logger[_0xe333[25]](_0xe333[23],_0xd43cx18,_0xd43cx17,_0xe333[31]);logger[_0xe333[27]](_0xe333[26],_0xd43cx18,_0xd43cx17,_0xe333[31],JSON[_0xe333[32]](_0xd43cx19));return _0xd43cx16[_0xe333[30]](_0xd43cx17)[_0xe333[33]](_0xd43cx19)};return _0xd43cx16[_0xe333[30]](304)[_0xe333[29]]()}}function respondWithFilteredResult(_0xd43cx16,_0xd43cx1c,_0xd43cx18){return function(_0xd43cx19){if(_0xd43cx19){var _0xd43cx1d=_0xd43cx19[_0xe333[34]],_0xd43cx1e=_0xd43cx1c[_0xe333[35]],_0xd43cx1f=_0xd43cx1c[_0xe333[35]]+ _0xd43cx1c[_0xe333[36]],_0xd43cx17;if(_0xd43cx1f>= _0xd43cx1d){_0xd43cx1f= _0xd43cx1d;_0xd43cx17= 200}else {_0xd43cx17= 206};_0xd43cx16[_0xe333[30]](_0xd43cx17);logger[_0xe333[25]](_0xe333[23],_0xd43cx18,_0xd43cx17,_0xe333[37]);logger[_0xe333[27]](_0xe333[26],_0xd43cx18,_0xd43cx17,_0xe333[31],JSON[_0xe333[32]](_0xd43cx19));return _0xd43cx16[_0xe333[41]](_0xe333[38],_0xd43cx1e+ _0xe333[39]+ _0xd43cx1f+ _0xe333[40]+ _0xd43cx1d)[_0xe333[33]](_0xd43cx19)};return null}}function patchUpdates(_0xd43cx21){return function(_0xd43cx19){try{jsonpatch[_0xe333[42]](_0xd43cx19,_0xd43cx21,true)}catch(err){return BPromise[_0xe333[43]](err)};return _0xd43cx19[_0xe333[44]]()}}function saveUpdates(_0xd43cx23,_0xd43cx17,_0xd43cx18){return function(_0xd43cx19){if(_0xd43cx19){return _0xd43cx19[_0xe333[47]](_0xd43cx23)[_0xe333[46]](function(_0xd43cx24){logger[_0xe333[25]](_0xe333[23],_0xd43cx18,_0xd43cx17,_0xe333[45]);logger[_0xe333[27]](_0xe333[26],_0xd43cx18,_0xd43cx17,_0xe333[45],JSON[_0xe333[32]](_0xd43cx19));return _0xd43cx24})};return null}}function removeEntity(_0xd43cx16,_0xd43cx17,_0xd43cx18){return function(_0xd43cx19){if(_0xd43cx19){return _0xd43cx19[_0xe333[49]]()[_0xe333[46]](function(){logger[_0xe333[25]](_0xe333[23],_0xd43cx18,_0xd43cx17,_0xe333[48]);logger[_0xe333[27]](_0xe333[26],_0xd43cx18,_0xd43cx17,_0xe333[48],JSON[_0xe333[32]](_0xd43cx19));_0xd43cx16[_0xe333[30]](204)[_0xe333[29]]()})}}}function handleEntityNotFound(_0xd43cx16,_0xd43cx17,_0xd43cx18){return function(_0xd43cx19){if(!_0xd43cx19){logger[_0xe333[51]](_0xe333[23],_0xd43cx18,404,_0xe333[50]);_0xd43cx16[_0xe333[30]](404)[_0xe333[29]]();return null};return _0xd43cx19}}function handleError(_0xd43cx16,_0xd43cx17,_0xd43cx18){_0xd43cx17= _0xd43cx17|| 500;return function(_0xd43cx28){logger[_0xe333[51]](_0xe333[23],_0xd43cx18,_0xd43cx17,JSON[_0xe333[32]](_0xd43cx28));delete _0xd43cx28[_0xe333[52]];_0xd43cx16[_0xe333[30]](_0xd43cx17)[_0xe333[53]](_0xd43cx28)}}exports[_0xe333[54]]= function(_0xd43cx29,_0xd43cx16){var _0xd43cx1c={},_0xd43cx2a={};_0xd43cx2a[_0xe333[55]]= _[_0xe333[58]](db[_0xe333[57]][_0xe333[56]]);_0xd43cx2a[_0xe333[59]]= _[_0xe333[58]](_0xd43cx29[_0xe333[59]]);_0xd43cx2a[_0xe333[60]]= _[_0xe333[61]](_0xd43cx2a[_0xe333[55]],_0xd43cx2a[_0xe333[59]]);_0xd43cx1c[_0xe333[62]]= _[_0xe333[61]](_0xd43cx2a[_0xe333[55]],qs[_0xe333[63]](_0xd43cx29[_0xe333[59]][_0xe333[63]]));_0xd43cx1c[_0xe333[62]]= (_0xd43cx1c[_0xe333[62]][_0xe333[64]])?_0xd43cx1c[_0xe333[62]]:_0xd43cx2a[_0xe333[55]];if(!_0xd43cx29[_0xe333[59]][_0xe333[66]](_0xe333[65])){_0xd43cx1c[_0xe333[36]]= qs[_0xe333[36]](_0xd43cx29[_0xe333[59]][_0xe333[36]]);_0xd43cx1c[_0xe333[35]]= qs[_0xe333[35]](_0xd43cx29[_0xe333[59]][_0xe333[35]])};_0xd43cx1c[_0xe333[67]]= qs[_0xe333[68]](_0xd43cx29[_0xe333[59]][_0xe333[68]]);_0xd43cx1c[_0xe333[69]]= qs[_0xe333[60]](_[_0xe333[70]](_0xd43cx29[_0xe333[59]],_0xd43cx2a[_0xe333[60]]));if(_0xd43cx29[_0xe333[59]][_0xe333[71]]){_0xd43cx1c[_0xe333[69]]= _[_0xe333[74]](_0xd43cx1c[_0xe333[69]],{$or:_[_0xe333[73]](_0xd43cx1c[_0xe333[62]],function(_0xd43cx2b){var _0xd43cx2c={};_0xd43cx2c[_0xd43cx2b]= {$like:_0xe333[72]+ _0xd43cx29[_0xe333[59]][_0xe333[71]]+ _0xe333[72]};return _0xd43cx2c})})};_0xd43cx1c= _[_0xe333[74]]({},_0xd43cx1c,_0xd43cx29[_0xe333[75]]);return db[_0xe333[57]][_0xe333[77]](_0xd43cx1c)[_0xe333[46]](respondWithFilteredResult(_0xd43cx16,_0xd43cx1c,_0xe333[54]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[54]))};exports[_0xe333[78]]= function(_0xd43cx29,_0xd43cx16){var _0xd43cx1c={raw:true,where:{id:_0xd43cx29[_0xe333[80]][_0xe333[79]]}},_0xd43cx2a={};_0xd43cx2a[_0xe333[55]]= _[_0xe333[58]](db[_0xe333[57]][_0xe333[56]]);_0xd43cx2a[_0xe333[59]]= _[_0xe333[58]](_0xd43cx29[_0xe333[59]]);_0xd43cx2a[_0xe333[60]]= _[_0xe333[61]](_0xd43cx2a[_0xe333[55]],_0xd43cx2a[_0xe333[59]]);_0xd43cx1c[_0xe333[62]]= _[_0xe333[61]](_0xd43cx2a[_0xe333[55]],qs[_0xe333[63]](_0xd43cx29[_0xe333[59]][_0xe333[63]]));_0xd43cx1c[_0xe333[62]]= (_0xd43cx1c[_0xe333[62]][_0xe333[64]])?_0xd43cx1c[_0xe333[62]]:_0xd43cx2a[_0xe333[55]];_0xd43cx1c= _[_0xe333[74]]({},_0xd43cx1c,_0xd43cx29[_0xe333[75]]);return db[_0xe333[57]][_0xe333[81]](_0xd43cx1c)[_0xe333[46]](handleEntityNotFound(_0xd43cx16,null,_0xe333[78]))[_0xe333[46]](respondWithResult(_0xd43cx16,null,_0xe333[78]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[78]))};exports[_0xe333[82]]= function(_0xd43cx29,_0xd43cx16){return db[_0xe333[57]][_0xe333[82]](_0xd43cx29[_0xe333[83]],{})[_0xe333[46]](respondWithResult(_0xd43cx16,201,_0xe333[82]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[82]))};exports[_0xe333[47]]= function(_0xd43cx29,_0xd43cx16){if(_0xd43cx29[_0xe333[83]][_0xe333[79]]){delete _0xd43cx29[_0xe333[83]][_0xe333[79]]};return db[_0xe333[57]][_0xe333[81]]({where:{id:_0xd43cx29[_0xe333[80]][_0xe333[79]]}})[_0xe333[46]](handleEntityNotFound(_0xd43cx16,null,_0xe333[47]))[_0xe333[46]](saveUpdates(_0xd43cx29[_0xe333[83]],null,_0xe333[47]))[_0xe333[46]](respondWithResult(_0xd43cx16,null,_0xe333[47]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[47]))};exports[_0xe333[49]]= function(_0xd43cx29,_0xd43cx16){return db[_0xe333[57]][_0xe333[81]]({where:{id:_0xd43cx29[_0xe333[80]][_0xe333[79]]}})[_0xe333[46]](handleEntityNotFound(_0xd43cx16,null,_0xe333[49]))[_0xe333[46]](removeEntity(_0xd43cx16,null,_0xe333[49]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[49]))};exports[_0xe333[84]]= function(_0xd43cx29,_0xd43cx16,_0xd43cx2d){if(_0xd43cx29[_0xe333[83]][_0xe333[79]]){delete _0xd43cx29[_0xe333[83]][_0xe333[79]]};return db[_0xe333[57]][_0xe333[81]]({where:{id:_0xd43cx29[_0xe333[80]][_0xe333[79]]}})[_0xe333[46]](handleEntityNotFound(_0xd43cx16,null,_0xe333[84]))[_0xe333[46]](function(_0xd43cx19){if(_0xd43cx19){_0xd43cx29[_0xe333[83]][_0xe333[85]]= _0xd43cx19[_0xe333[79]];return db[_0xe333[57]][_0xe333[82]](_0xd43cx29[_0xe333[83]])}})[_0xe333[46]](respondWithResult(_0xd43cx16,null,_0xe333[84]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[84]))};exports[_0xe333[86]]= function(_0xd43cx29,_0xd43cx19,_0xd43cx2d){var _0xd43cx1c={};var _0xd43cx2a={};var _0xd43cx2e;var _0xd43cx1d;return db[_0xe333[57]][_0xe333[87]]({where:{id:_0xd43cx29[_0xe333[80]][_0xe333[79]]}})[_0xe333[46]](handleEntityNotFound(_0xd43cx19,null,_0xe333[86]))[_0xe333[46]](function(_0xd43cx19){if(_0xd43cx19){_0xd43cx2e= _0xd43cx19;_0xd43cx2a[_0xe333[55]]= _[_0xe333[58]](db[_0xe333[57]][_0xe333[56]]);_0xd43cx2a[_0xe333[59]]= _[_0xe333[58]](_0xd43cx29[_0xe333[59]]);_0xd43cx2a[_0xe333[60]]= _[_0xe333[61]](_0xd43cx2a[_0xe333[55]],_0xd43cx2a[_0xe333[59]]);_0xd43cx1c[_0xe333[62]]= _[_0xe333[61]](_0xd43cx2a[_0xe333[55]],qs[_0xe333[63]](_0xd43cx29[_0xe333[59]][_0xe333[63]]));_0xd43cx1c[_0xe333[62]]= (_0xd43cx1c[_0xe333[62]][_0xe333[64]])?_0xd43cx1c[_0xe333[62]]:_0xd43cx2a[_0xe333[55]];_0xd43cx1c[_0xe333[67]]= qs[_0xe333[68]](_0xd43cx29[_0xe333[59]][_0xe333[68]]);_0xd43cx1c[_0xe333[69]]= qs[_0xe333[60]](_[_0xe333[70]](_0xd43cx29[_0xe333[59]],_0xd43cx2a[_0xe333[60]]));if(_0xd43cx29[_0xe333[59]][_0xe333[71]]){_0xd43cx1c[_0xe333[69]]= _[_0xe333[74]](_0xd43cx1c[_0xe333[69]],{$or:_[_0xe333[73]](_0xd43cx1c[_0xe333[62]],function(_0xd43cx2b){var _0xd43cx2c={};_0xd43cx2c[_0xd43cx2b]= {$like:_0xe333[72]+ _0xd43cx29[_0xe333[59]][_0xe333[71]]+ _0xe333[72]};return _0xd43cx2c})})};_0xd43cx1c= _[_0xe333[74]]({},_0xd43cx1c,_0xd43cx29[_0xe333[75]]);return _0xd43cx2e[_0xe333[86]](_0xd43cx1c)}})[_0xe333[46]](function(_0xd43cx30){if(_0xd43cx30){_0xd43cx1d= _0xd43cx30[_0xe333[64]];if(!_0xd43cx29[_0xe333[59]][_0xe333[66]](_0xe333[65])){_0xd43cx1c[_0xe333[36]]= qs[_0xe333[36]](_0xd43cx29[_0xe333[59]][_0xe333[36]]);_0xd43cx1c[_0xe333[35]]= qs[_0xe333[35]](_0xd43cx29[_0xe333[59]][_0xe333[35]])};return _0xd43cx2e[_0xe333[86]](_0xd43cx1c)}})[_0xe333[46]](function(_0xd43cx2f){return _0xd43cx2f?{count:_0xd43cx1d,rows:_0xd43cx2f}:null})[_0xe333[46]](respondWithResult(_0xd43cx19,null,_0xe333[86]))[_0xe333[76]](handleError(_0xd43cx19,null,_0xe333[86]))};exports[_0xe333[88]]= function(_0xd43cx29,_0xd43cx16,_0xd43cx2d){return db[_0xe333[57]][_0xe333[87]]({where:{id:_0xd43cx29[_0xe333[80]][_0xe333[79]]}})[_0xe333[46]](handleEntityNotFound(_0xd43cx16,null,_0xe333[88]))[_0xe333[46]](function(_0xd43cx19){if(_0xd43cx19){return db[_0xe333[92]][_0xe333[91]](function(_0xd43cx31){return db[_0xe333[57]][_0xe333[49]]({where:{IntervalId:_0xd43cx29[_0xe333[80]][_0xe333[79]]},transaction:_0xd43cx31})[_0xe333[46]](function(_0xd43cx32){var _0xd43cx33=_[_0xe333[73]](_0xd43cx29[_0xe333[83]],function(_0xd43cx34){delete _0xd43cx34[_0xe333[79]];_0xd43cx34[_0xe333[85]]= _0xd43cx29[_0xe333[80]][_0xe333[79]];return _0xd43cx34});return db[_0xe333[57]][_0xe333[90]](_0xd43cx33,{transaction:_0xd43cx31})})})[_0xe333[46]](function(){return db[_0xe333[57]][_0xe333[89]]({where:{IntervalId:_0xd43cx29[_0xe333[80]][_0xe333[79]]}})})}})[_0xe333[46]](respondWithResult(_0xd43cx16,null,_0xe333[88]))[_0xe333[76]](handleError(_0xd43cx16,null,_0xe333[88]))}
\ No newline at end of file
index f7a37f9..d083b9a 100644 (file)
@@ -1 +1 @@
-var _0xce40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x2F\x72\x65\x77\x72\x69\x74\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x74\x6F\x6F\x6C\x73\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x72\x65\x77\x72\x69\x74\x65","\x64\x65\x66\x69\x6E\x65"];_0xce40[0];var _=require(_0xce40[1]);var util=require(_0xce40[2]);var logger=require(_0xce40[4])(_0xce40[3]);var attributes=require(_0xce40[5]);var extensions=require(_0xce40[6]);module[_0xce40[7]]= function(_0x6eb0x6,_0x6eb0x7){return _0x6eb0x6[_0xce40[11]](_0xce40[8],attributes,{tableName:_0xce40[9],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0x6eb0x8,_0x6eb0x9){extensions[_0xce40[10]](_0x6eb0x6,_0x6eb0x8)},afterBulkCreate:function(_0x6eb0xa,_0x6eb0x9,_0x6eb0xb){_0x6eb0xb();extensions[_0xce40[10]](_0x6eb0x6,_0x6eb0xa[0])},afterUpdate:function(_0x6eb0x8,_0x6eb0x9){extensions[_0xce40[10]](_0x6eb0x6,_0x6eb0x8)},afterDestroy:function(_0x6eb0x8,_0x6eb0x9){extensions[_0xce40[10]](_0x6eb0x6,_0x6eb0x8)}}})}
\ No newline at end of file
+var _0x6dce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x2F\x72\x65\x77\x72\x69\x74\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x74\x6F\x6F\x6C\x73\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x72\x65\x77\x72\x69\x74\x65","\x64\x65\x66\x69\x6E\x65"];_0x6dce[0];var _=require(_0x6dce[1]);var util=require(_0x6dce[2]);var logger=require(_0x6dce[4])(_0x6dce[3]);var attributes=require(_0x6dce[5]);var extensions=require(_0x6dce[6]);module[_0x6dce[7]]= function(_0xfc37x6,_0xfc37x7){return _0xfc37x6[_0x6dce[11]](_0x6dce[8],attributes,{tableName:_0x6dce[9],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0xfc37x8,_0xfc37x9){extensions[_0x6dce[10]](_0xfc37x6,_0xfc37x8)},afterBulkCreate:function(_0xfc37xa,_0xfc37x9,_0xfc37xb){_0xfc37xb();extensions[_0x6dce[10]](_0xfc37x6,_0xfc37xa[0])},afterUpdate:function(_0xfc37x8,_0xfc37x9){extensions[_0x6dce[10]](_0xfc37x6,_0xfc37x8)},afterDestroy:function(_0xfc37x8,_0xfc37x9){extensions[_0x6dce[10]](_0xfc37x6,_0xfc37x8)}}})}
\ No newline at end of file
index 21ae281..53ce508 100644 (file)
@@ -1 +1 @@
-var _0xe24c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C"];_0xe24c[0];var _=require(_0xe24c[1]);var util=require(_0xe24c[2]);var moment=require(_0xe24c[3]);var BPromise=require(_0xe24c[4]);var db=require(_0xe24c[6])[_0xe24c[5]];var utils=require(_0xe24c[7]);var logger=require(_0xe24c[9])(_0xe24c[8]);var jayson=require(_0xe24c[10]);var client=jayson[_0xe24c[12]][_0xe24c[11]]({port:9002});function respondWithRpcPromise(_0xdeb5xb,_0xdeb5xc,_0xdeb5xd){return  new BPromise(function(_0xdeb5xe,_0xdeb5xf){return client[_0xe24c[25]](_0xdeb5xb,_0xdeb5xd)[_0xe24c[24]](function(_0xdeb5x11){logger[_0xe24c[17]](_0xe24c[13],_0xdeb5xc,_0xe24c[16]);logger[_0xe24c[20]](_0xe24c[18],_0xdeb5xc,_0xe24c[16],JSON[_0xe24c[19]](_0xdeb5x11));if(_0xdeb5x11[_0xe24c[14]]){if(_0xdeb5x11[_0xe24c[14]][_0xe24c[21]]=== 500){logger[_0xe24c[14]](_0xe24c[13],_0xdeb5xc,_0xdeb5x11[_0xe24c[14]][_0xe24c[22]]);return _0xdeb5xf(_0xdeb5x11[_0xe24c[14]][_0xe24c[22]])};logger[_0xe24c[14]](_0xe24c[13],_0xdeb5xc,_0xdeb5x11[_0xe24c[14]][_0xe24c[22]]);return _0xdeb5xe(_0xdeb5x11[_0xe24c[14]][_0xe24c[22]])}else {logger[_0xe24c[17]](_0xe24c[13],_0xdeb5xc,_0xe24c[16]);_0xdeb5xe(_0xdeb5x11[_0xe24c[23]][_0xe24c[22]])}})[_0xe24c[15]](function(_0xdeb5x10){logger[_0xe24c[14]](_0xe24c[13],_0xdeb5xc,_0xdeb5x10);_0xdeb5xf(_0xdeb5x10)})})}exports[_0xe24c[26]]= function(_0xdeb5xd){var _0xdeb5x12=this;return  new Promise(function(_0xdeb5xe,_0xdeb5xf){return db[_0xe24c[36]][_0xe24c[35]]({raw:_0xdeb5xd[_0xe24c[27]]?(_0xdeb5xd[_0xe24c[27]][_0xe24c[28]]=== undefined)?true:false:true,where:_0xdeb5xd[_0xe24c[27]]?_0xdeb5xd[_0xe24c[27]][_0xe24c[29]]|| null:null,attributes:_0xdeb5xd[_0xe24c[27]]?_0xdeb5xd[_0xe24c[27]][_0xe24c[30]]|| null:null,include:_0xdeb5xd[_0xe24c[27]]?(_0xdeb5xd[_0xe24c[27]][_0xe24c[31]]?_[_0xe24c[34]](_0xdeb5xd[_0xe24c[27]][_0xe24c[31]],function(_0xdeb5x13){return {model:db[_0xdeb5x13[_0xe24c[32]]],as:_0xdeb5x13[_0xe24c[33]],attributes:_0xdeb5x13[_0xe24c[30]],include:_0xdeb5x13[_0xe24c[31]]?_[_0xe24c[34]](_0xdeb5x13[_0xe24c[31]],function(_0xdeb5x14){return {model:db[_0xdeb5x14[_0xe24c[32]]],as:_0xdeb5x14[_0xe24c[33]],attributes:_0xdeb5x14[_0xe24c[30]],include:_0xdeb5x14[_0xe24c[31]]?_[_0xe24c[34]](_0xdeb5x14[_0xe24c[31]],function(_0xdeb5x15){return {model:db[_0xdeb5x15[_0xe24c[32]]],as:_0xdeb5x15[_0xe24c[33]],attributes:_0xdeb5x15[_0xe24c[30]]}}):[]}}):[]}}):[]):[]})[_0xe24c[24]](function(_0xdeb5x11){logger[_0xe24c[17]](_0xe24c[26],_0xdeb5xd);logger[_0xe24c[20]](_0xe24c[26],_0xdeb5xd,JSON[_0xe24c[19]](_0xdeb5x11));_0xdeb5xe(_0xdeb5x11)})[_0xe24c[15]](function(_0xdeb5x10){logger[_0xe24c[14]](_0xe24c[26],_0xdeb5x10[_0xe24c[22]],_0xdeb5xd);_0xdeb5xf(_0xdeb5x12[_0xe24c[14]](500,_0xdeb5x10[_0xe24c[22]]))})})}
\ No newline at end of file
+var _0x7cc3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C"];_0x7cc3[0];var _=require(_0x7cc3[1]);var util=require(_0x7cc3[2]);var moment=require(_0x7cc3[3]);var BPromise=require(_0x7cc3[4]);var db=require(_0x7cc3[6])[_0x7cc3[5]];var utils=require(_0x7cc3[7]);var logger=require(_0x7cc3[9])(_0x7cc3[8]);var jayson=require(_0x7cc3[10]);var client=jayson[_0x7cc3[12]][_0x7cc3[11]]({port:9002});function respondWithRpcPromise(_0xbab5xb,_0xbab5xc,_0xbab5xd){return  new BPromise(function(_0xbab5xe,_0xbab5xf){return client[_0x7cc3[25]](_0xbab5xb,_0xbab5xd)[_0x7cc3[24]](function(_0xbab5x11){logger[_0x7cc3[17]](_0x7cc3[13],_0xbab5xc,_0x7cc3[16]);logger[_0x7cc3[20]](_0x7cc3[18],_0xbab5xc,_0x7cc3[16],JSON[_0x7cc3[19]](_0xbab5x11));if(_0xbab5x11[_0x7cc3[14]]){if(_0xbab5x11[_0x7cc3[14]][_0x7cc3[21]]=== 500){logger[_0x7cc3[14]](_0x7cc3[13],_0xbab5xc,_0xbab5x11[_0x7cc3[14]][_0x7cc3[22]]);return _0xbab5xf(_0xbab5x11[_0x7cc3[14]][_0x7cc3[22]])};logger[_0x7cc3[14]](_0x7cc3[13],_0xbab5xc,_0xbab5x11[_0x7cc3[14]][_0x7cc3[22]]);return _0xbab5xe(_0xbab5x11[_0x7cc3[14]][_0x7cc3[22]])}else {logger[_0x7cc3[17]](_0x7cc3[13],_0xbab5xc,_0x7cc3[16]);_0xbab5xe(_0xbab5x11[_0x7cc3[23]][_0x7cc3[22]])}})[_0x7cc3[15]](function(_0xbab5x10){logger[_0x7cc3[14]](_0x7cc3[13],_0xbab5xc,_0xbab5x10);_0xbab5xf(_0xbab5x10)})})}exports[_0x7cc3[26]]= function(_0xbab5xd){var _0xbab5x12=this;return  new Promise(function(_0xbab5xe,_0xbab5xf){return db[_0x7cc3[36]][_0x7cc3[35]]({raw:_0xbab5xd[_0x7cc3[27]]?(_0xbab5xd[_0x7cc3[27]][_0x7cc3[28]]=== undefined)?true:false:true,where:_0xbab5xd[_0x7cc3[27]]?_0xbab5xd[_0x7cc3[27]][_0x7cc3[29]]|| null:null,attributes:_0xbab5xd[_0x7cc3[27]]?_0xbab5xd[_0x7cc3[27]][_0x7cc3[30]]|| null:null,include:_0xbab5xd[_0x7cc3[27]]?(_0xbab5xd[_0x7cc3[27]][_0x7cc3[31]]?_[_0x7cc3[34]](_0xbab5xd[_0x7cc3[27]][_0x7cc3[31]],function(_0xbab5x13){return {model:db[_0xbab5x13[_0x7cc3[32]]],as:_0xbab5x13[_0x7cc3[33]],attributes:_0xbab5x13[_0x7cc3[30]],include:_0xbab5x13[_0x7cc3[31]]?_[_0x7cc3[34]](_0xbab5x13[_0x7cc3[31]],function(_0xbab5x14){return {model:db[_0xbab5x14[_0x7cc3[32]]],as:_0xbab5x14[_0x7cc3[33]],attributes:_0xbab5x14[_0x7cc3[30]],include:_0xbab5x14[_0x7cc3[31]]?_[_0x7cc3[34]](_0xbab5x14[_0x7cc3[31]],function(_0xbab5x15){return {model:db[_0xbab5x15[_0x7cc3[32]]],as:_0xbab5x15[_0x7cc3[33]],attributes:_0xbab5x15[_0x7cc3[30]]}}):[]}}):[]}}):[]):[]})[_0x7cc3[24]](function(_0xbab5x11){logger[_0x7cc3[17]](_0x7cc3[26],_0xbab5xd);logger[_0x7cc3[20]](_0x7cc3[26],_0xbab5xd,JSON[_0x7cc3[19]](_0xbab5x11));_0xbab5xe(_0xbab5x11)})[_0x7cc3[15]](function(_0xbab5x10){logger[_0x7cc3[14]](_0x7cc3[26],_0xbab5x10[_0x7cc3[22]],_0xbab5xd);_0xbab5xf(_0xbab5x12[_0x7cc3[14]](500,_0xbab5x10[_0x7cc3[22]]))})})}
\ No newline at end of file
index ea02f84..0c6ab35 100644 (file)
@@ -1 +1 @@
-var _0xdb26=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6A\x69\x72\x61\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x65\x6E\x64","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xdb26[0];var express=require(_0xdb26[1]);var router=express.Router();var auth=require(_0xdb26[2]);var controller=require(_0xdb26[3]);router[_0xdb26[7]](_0xdb26[4],auth[_0xdb26[5]](),controller[_0xdb26[6]]);module[_0xdb26[8]]= router
\ No newline at end of file
+var _0x2c16=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6A\x69\x72\x61\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x65\x6E\x64","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2c16[0];var express=require(_0x2c16[1]);var router=express.Router();var auth=require(_0x2c16[2]);var controller=require(_0x2c16[3]);router[_0x2c16[7]](_0x2c16[4],auth[_0x2c16[5]](),controller[_0x2c16[6]]);module[_0x2c16[8]]= router
\ No newline at end of file
index 8a90aa8..4657327 100644 (file)
@@ -1 +1 @@
-var _0x8136=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x68\x74\x74\x70\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x73\x75\x70\x70\x6F\x72\x74","\x33\x65\x41\x6D\x57\x70\x42\x56\x50\x30","\x73\x65\x6E\x64","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x73\x6F\x63\x6B\x65\x74","\x6B\x65\x79","\x62\x6F\x64\x79","\x4D\x4F\x54\x47\x55\x49","\x73\x75\x6D\x6D\x61\x72\x79","\x52\x65\x70\x6F\x72\x74","\x20\x66\x72\x6F\x6D\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x73\x73\x75\x65\x74\x79\x70\x65","\x42\x75\x67","\x70\x72\x6F\x6A\x65\x63\x74","\x66\x69\x65\x6C\x64\x73","\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x5F\x31\x30\x31\x30\x32","\x74\x72\x61\x63\x6B\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x2F\x72\x65\x73\x74\x2F\x61\x70\x69\x2F\x32\x2F\x69\x73\x73\x75\x65","\x50\x4F\x53\x54","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x42\x61\x73\x69\x63\x20","\x62\x61\x73\x65\x36\x34","\x3A","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","","\x64\x61\x74\x61","\x6F\x6E","\x65\x6E\x64","\x70\x61\x72\x73\x65","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x73\x74\x61\x74\x75\x73","\x72\x65\x71\x75\x65\x73\x74","\x65\x72\x72\x6F\x72","\x77\x72\x69\x74\x65"];_0x8136[0];var BPromise=require(_0x8136[1]);var https=require(_0x8136[2]);var logger=require(_0x8136[4])(_0x8136[3]);var USERNAME=_0x8136[5];var PASSWORD=_0x8136[6];exports[_0x8136[7]]= function(_0xf4f9x6,_0xf4f9x7){var _0xf4f9x8=_0xf4f9x6[_0x8136[9]][_0x8136[8]]|| _0xf4f9x6[_0x8136[11]][_0x8136[10]]|| _0xf4f9x6[_0x8136[12]][_0x8136[10]]|| _0xf4f9x6[_0x8136[11]][_0x8136[12]][_0x8136[10]];var _0xf4f9x9={fields:{project:{key:_0xf4f9x6[_0x8136[14]][_0x8136[13]]|| _0x8136[15]},summary:(_0xf4f9x6[_0x8136[14]][_0x8136[16]]|| _0x8136[17])+ _0x8136[18]+ _0xf4f9x8,description:_0xf4f9x6[_0x8136[14]][_0x8136[19]]|| JSON[_0x8136[20]](_0xf4f9x6[_0x8136[14]]),issuetype:{name:_0xf4f9x6[_0x8136[14]][_0x8136[21]]|| _0x8136[22]}}};_0xf4f9x9[_0x8136[24]][_0x8136[23]][_0x8136[13]]=== _0x8136[15]&& (_0xf4f9x9[_0x8136[24]][_0x8136[25]]= _0xf4f9x8);var _0xf4f9xa={host:_0x8136[26],port:443,path:_0x8136[27],method:_0x8136[28],headers:{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x8136[29],"\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E":_0x8136[30]+  new Buffer(USERNAME+ _0x8136[32]+ PASSWORD).toString(_0x8136[31])}};var _0xf4f9xb=JSON[_0x8136[20]](_0xf4f9x9);var _0xf4f9xc=https[_0x8136[43]](_0xf4f9xa,function(_0xf4f9xd){_0xf4f9xd[_0x8136[34]](_0x8136[33]);var _0xf4f9xe=_0x8136[35];_0xf4f9xd[_0x8136[37]](_0x8136[36],function(_0xf4f9xf){_0xf4f9xe+= _0xf4f9xf});_0xf4f9xd[_0x8136[37]](_0x8136[38],function(){return _0xf4f9x7[_0x8136[42]](_0xf4f9xd[_0x8136[41]])[_0x8136[40]](JSON[_0x8136[39]](_0xf4f9xe))})});_0xf4f9xc[_0x8136[37]](_0x8136[44],function(_0xf4f9x10){return _0xf4f9x7[_0x8136[42]](500)[_0x8136[40]](_0xf4f9x10)});_0xf4f9xc[_0x8136[45]](_0xf4f9xb);_0xf4f9xc[_0x8136[38]]()}
\ No newline at end of file
+var _0x44da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x68\x74\x74\x70\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x73\x75\x70\x70\x6F\x72\x74","\x33\x65\x41\x6D\x57\x70\x42\x56\x50\x30","\x73\x65\x6E\x64","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x73\x6F\x63\x6B\x65\x74","\x6B\x65\x79","\x62\x6F\x64\x79","\x4D\x4F\x54\x47\x55\x49","\x73\x75\x6D\x6D\x61\x72\x79","\x52\x65\x70\x6F\x72\x74","\x20\x66\x72\x6F\x6D\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x73\x73\x75\x65\x74\x79\x70\x65","\x42\x75\x67","\x70\x72\x6F\x6A\x65\x63\x74","\x66\x69\x65\x6C\x64\x73","\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x5F\x31\x30\x31\x30\x32","\x74\x72\x61\x63\x6B\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x2F\x72\x65\x73\x74\x2F\x61\x70\x69\x2F\x32\x2F\x69\x73\x73\x75\x65","\x50\x4F\x53\x54","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x42\x61\x73\x69\x63\x20","\x62\x61\x73\x65\x36\x34","\x3A","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","","\x64\x61\x74\x61","\x6F\x6E","\x65\x6E\x64","\x70\x61\x72\x73\x65","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x73\x74\x61\x74\x75\x73","\x72\x65\x71\x75\x65\x73\x74","\x65\x72\x72\x6F\x72","\x77\x72\x69\x74\x65"];_0x44da[0];var BPromise=require(_0x44da[1]);var https=require(_0x44da[2]);var logger=require(_0x44da[4])(_0x44da[3]);var USERNAME=_0x44da[5];var PASSWORD=_0x44da[6];exports[_0x44da[7]]= function(_0x54acx6,_0x54acx7){var _0x54acx8=_0x54acx6[_0x44da[9]][_0x44da[8]]|| _0x54acx6[_0x44da[11]][_0x44da[10]]|| _0x54acx6[_0x44da[12]][_0x44da[10]]|| _0x54acx6[_0x44da[11]][_0x44da[12]][_0x44da[10]];var _0x54acx9={fields:{project:{key:_0x54acx6[_0x44da[14]][_0x44da[13]]|| _0x44da[15]},summary:(_0x54acx6[_0x44da[14]][_0x44da[16]]|| _0x44da[17])+ _0x44da[18]+ _0x54acx8,description:_0x54acx6[_0x44da[14]][_0x44da[19]]|| JSON[_0x44da[20]](_0x54acx6[_0x44da[14]]),issuetype:{name:_0x54acx6[_0x44da[14]][_0x44da[21]]|| _0x44da[22]}}};_0x54acx9[_0x44da[24]][_0x44da[23]][_0x44da[13]]=== _0x44da[15]&& (_0x54acx9[_0x44da[24]][_0x44da[25]]= _0x54acx8);var _0x54acxa={host:_0x44da[26],port:443,path:_0x44da[27],method:_0x44da[28],headers:{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x44da[29],"\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E":_0x44da[30]+  new Buffer(USERNAME+ _0x44da[32]+ PASSWORD).toString(_0x44da[31])}};var _0x54acxb=JSON[_0x44da[20]](_0x54acx9);var _0x54acxc=https[_0x44da[43]](_0x54acxa,function(_0x54acxd){_0x54acxd[_0x44da[34]](_0x44da[33]);var _0x54acxe=_0x44da[35];_0x54acxd[_0x44da[37]](_0x44da[36],function(_0x54acxf){_0x54acxe+= _0x54acxf});_0x54acxd[_0x44da[37]](_0x44da[38],function(){return _0x54acx7[_0x44da[42]](_0x54acxd[_0x44da[41]])[_0x44da[40]](JSON[_0x44da[39]](_0x54acxe))})});_0x54acxc[_0x44da[37]](_0x44da[44],function(_0x54acx10){return _0x54acx7[_0x44da[42]](500)[_0x44da[40]](_0x54acx10)});_0x54acxc[_0x44da[45]](_0x54acxb);_0x54acxc[_0x44da[38]]()}
\ No newline at end of file
index e1dea01..cb8f95e 100644 (file)
@@ -1 +1 @@
-var _0x977b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x977b[0];var multer=require(_0x977b[1]);var util=require(_0x977b[2]);var path=require(_0x977b[3]);var express=require(_0x977b[4]);var router=express.Router();var auth=require(_0x977b[5]);var config=require(_0x977b[6]);var controller=require(_0x977b[7]);router[_0x977b[11]](_0x977b[8],auth[_0x977b[9]](),controller[_0x977b[10]]);router[_0x977b[11]](_0x977b[12],auth[_0x977b[9]](),controller[_0x977b[13]]);router[_0x977b[15]](_0x977b[8],auth[_0x977b[9]](),controller[_0x977b[14]]);router[_0x977b[17]](_0x977b[12],auth[_0x977b[9]](),controller[_0x977b[16]]);router[_0x977b[19]](_0x977b[12],auth[_0x977b[9]](),controller[_0x977b[18]]);module[_0x977b[20]]= router
\ No newline at end of file
+var _0x786a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x786a[0];var multer=require(_0x786a[1]);var util=require(_0x786a[2]);var path=require(_0x786a[3]);var express=require(_0x786a[4]);var router=express.Router();var auth=require(_0x786a[5]);var config=require(_0x786a[6]);var controller=require(_0x786a[7]);router[_0x786a[11]](_0x786a[8],auth[_0x786a[9]](),controller[_0x786a[10]]);router[_0x786a[11]](_0x786a[12],auth[_0x786a[9]](),controller[_0x786a[13]]);router[_0x786a[15]](_0x786a[8],auth[_0x786a[9]](),controller[_0x786a[14]]);router[_0x786a[17]](_0x786a[12],auth[_0x786a[9]](),controller[_0x786a[16]]);router[_0x786a[19]](_0x786a[12],auth[_0x786a[9]](),controller[_0x786a[18]]);module[_0x786a[20]]= router
\ No newline at end of file
index c782480..1516497 100644 (file)
@@ -1 +1 @@
-var _0xc689=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0xc689[0];var Sequelize=require(_0xc689[1]);module[_0xc689[2]]= {sourceid:{type:Sequelize[_0xc689[3]]},input_id:{type:Sequelize[_0xc689[3]]},input_type:{type:Sequelize[_0xc689[4]]},input_label:{type:Sequelize[_0xc689[4]]},input_value:{type:Sequelize[_0xc689[4]]}}
\ No newline at end of file
+var _0xfa07=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0xfa07[0];var Sequelize=require(_0xfa07[1]);module[_0xfa07[2]]= {sourceid:{type:Sequelize[_0xfa07[3]]},input_id:{type:Sequelize[_0xfa07[3]]},input_type:{type:Sequelize[_0xfa07[4]]},input_label:{type:Sequelize[_0xfa07[4]]},input_value:{type:Sequelize[_0xfa07[4]]}}
\ No newline at end of file
index f82d845..f4bb4bd 100644 (file)
@@ -1 +1 @@
-var _0xc033=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xc033[0];var jsonpatch=require(_0xc033[1]);var rp=require(_0xc033[2]);var moment=require(_0xc033[3]);var BPromise=require(_0xc033[4]);var util=require(_0xc033[5]);var path=require(_0xc033[6]);var sox=require(_0xc033[7]);var ejs=require(_0xc033[8]);var fs=require(_0xc033[9]);var _=require(_0xc033[10]);var squel=require(_0xc033[11]);var crypto=require(_0xc033[12]);var jsforce=require(_0xc033[13]);var toCsv=require(_0xc033[14]);var qs=require(_0xc033[15]);var logger=require(_0xc033[17])(_0xc033[16]);var utils=require(_0xc033[18]);var config=require(_0xc033[19]);var db=require(_0xc033[21])[_0xc033[20]];function respondWithStatusCode(_0xf6b2x15,_0xf6b2x16,_0xf6b2x17){_0xf6b2x16= _0xf6b2x16|| 204;return function(_0xf6b2x18){if(_0xf6b2x18){logger[_0xc033[24]](_0xc033[22],_0xf6b2x17,_0xf6b2x16,_0xc033[23]);logger[_0xc033[26]](_0xc033[25],_0xf6b2x17,_0xf6b2x16,_0xc033[23]);return _0xf6b2x15[_0xc033[27]](_0xf6b2x16)};return _0xf6b2x15[_0xc033[29]](304)[_0xc033[28]]()}}function respondWithResult(_0xf6b2x15,_0xf6b2x16,_0xf6b2x17){_0xf6b2x16= _0xf6b2x16|| 200;return function(_0xf6b2x18){if(_0xf6b2x18){logger[_0xc033[24]](_0xc033[22],_0xf6b2x17,_0xf6b2x16,_0xc033[30]);logger[_0xc033[26]](_0xc033[25],_0xf6b2x17,_0xf6b2x16,_0xc033[30],JSON[_0xc033[31]](_0xf6b2x18));return _0xf6b2x15[_0xc033[29]](_0xf6b2x16)[_0xc033[32]](_0xf6b2x18)};return _0xf6b2x15[_0xc033[29]](304)[_0xc033[28]]()}}function respondWithFilteredResult(_0xf6b2x15,_0xf6b2x1b,_0xf6b2x17){return function(_0xf6b2x18){if(_0xf6b2x18){var _0xf6b2x1c=_0xf6b2x18[_0xc033[33]],_0xf6b2x1d=_0xf6b2x1b[_0xc033[34]],_0xf6b2x1e=_0xf6b2x1b[_0xc033[34]]+ _0xf6b2x1b[_0xc033[35]],_0xf6b2x16;if(_0xf6b2x1e>= _0xf6b2x1c){_0xf6b2x1e= _0xf6b2x1c;_0xf6b2x16= 200}else {_0xf6b2x16= 206};_0xf6b2x15[_0xc033[29]](_0xf6b2x16);logger[_0xc033[24]](_0xc033[22],_0xf6b2x17,_0xf6b2x16,_0xc033[36]);logger[_0xc033[26]](_0xc033[25],_0xf6b2x17,_0xf6b2x16,_0xc033[30],JSON[_0xc033[31]](_0xf6b2x18));return _0xf6b2x15[_0xc033[40]](_0xc033[37],_0xf6b2x1d+ _0xc033[38]+ _0xf6b2x1e+ _0xc033[39]+ _0xf6b2x1c)[_0xc033[32]](_0xf6b2x18)};return null}}function patchUpdates(_0xf6b2x20){return function(_0xf6b2x18){try{jsonpatch[_0xc033[41]](_0xf6b2x18,_0xf6b2x20,true)}catch(err){return BPromise[_0xc033[42]](err)};return _0xf6b2x18[_0xc033[43]]()}}function saveUpdates(_0xf6b2x22,_0xf6b2x16,_0xf6b2x17){return function(_0xf6b2x18){if(_0xf6b2x18){return _0xf6b2x18[_0xc033[46]](_0xf6b2x22)[_0xc033[45]](function(_0xf6b2x23){logger[_0xc033[24]](_0xc033[22],_0xf6b2x17,_0xf6b2x16,_0xc033[44]);logger[_0xc033[26]](_0xc033[25],_0xf6b2x17,_0xf6b2x16,_0xc033[44],JSON[_0xc033[31]](_0xf6b2x18));return _0xf6b2x23})};return null}}function removeEntity(_0xf6b2x15,_0xf6b2x16,_0xf6b2x17){return function(_0xf6b2x18){if(_0xf6b2x18){return _0xf6b2x18[_0xc033[48]]()[_0xc033[45]](function(){logger[_0xc033[24]](_0xc033[22],_0xf6b2x17,_0xf6b2x16,_0xc033[47]);logger[_0xc033[26]](_0xc033[25],_0xf6b2x17,_0xf6b2x16,_0xc033[47],JSON[_0xc033[31]](_0xf6b2x18));_0xf6b2x15[_0xc033[29]](204)[_0xc033[28]]()})}}}function handleEntityNotFound(_0xf6b2x15,_0xf6b2x16,_0xf6b2x17){return function(_0xf6b2x18){if(!_0xf6b2x18){logger[_0xc033[50]](_0xc033[22],_0xf6b2x17,404,_0xc033[49]);_0xf6b2x15[_0xc033[29]](404)[_0xc033[28]]();return null};return _0xf6b2x18}}function handleError(_0xf6b2x15,_0xf6b2x16,_0xf6b2x17){_0xf6b2x16= _0xf6b2x16|| 500;return function(_0xf6b2x27){logger[_0xc033[50]](_0xc033[22],_0xf6b2x17,_0xf6b2x16,JSON[_0xc033[31]](_0xf6b2x27));delete _0xf6b2x27[_0xc033[51]];_0xf6b2x15[_0xc033[29]](_0xf6b2x16)[_0xc033[52]](_0xf6b2x27)}}exports[_0xc033[53]]= function(_0xf6b2x28,_0xf6b2x15){var _0xf6b2x1b={},_0xf6b2x29={};_0xf6b2x29[_0xc033[54]]= _[_0xc033[57]](db[_0xc033[56]][_0xc033[55]]);_0xf6b2x29[_0xc033[58]]= _[_0xc033[57]](_0xf6b2x28[_0xc033[58]]);_0xf6b2x29[_0xc033[59]]= _[_0xc033[60]](_0xf6b2x29[_0xc033[54]],_0xf6b2x29[_0xc033[58]]);_0xf6b2x1b[_0xc033[61]]= _[_0xc033[60]](_0xf6b2x29[_0xc033[54]],qs[_0xc033[62]](_0xf6b2x28[_0xc033[58]][_0xc033[62]]));_0xf6b2x1b[_0xc033[61]]= (_0xf6b2x1b[_0xc033[61]][_0xc033[63]])?_0xf6b2x1b[_0xc033[61]]:_0xf6b2x29[_0xc033[54]];if(!_0xf6b2x28[_0xc033[58]][_0xc033[65]](_0xc033[64])){_0xf6b2x1b[_0xc033[35]]= qs[_0xc033[35]](_0xf6b2x28[_0xc033[58]][_0xc033[35]]);_0xf6b2x1b[_0xc033[34]]= qs[_0xc033[34]](_0xf6b2x28[_0xc033[58]][_0xc033[34]])};_0xf6b2x1b[_0xc033[66]]= qs[_0xc033[67]](_0xf6b2x28[_0xc033[58]][_0xc033[67]]);_0xf6b2x1b[_0xc033[68]]= qs[_0xc033[59]](_[_0xc033[69]](_0xf6b2x28[_0xc033[58]],_0xf6b2x29[_0xc033[59]]));if(_0xf6b2x28[_0xc033[58]][_0xc033[70]]){_0xf6b2x1b[_0xc033[68]]= _[_0xc033[73]](_0xf6b2x1b[_0xc033[68]],{$or:_[_0xc033[72]](_0xf6b2x1b[_0xc033[61]],function(_0xf6b2x2a){var _0xf6b2x2b={};_0xf6b2x2b[_0xf6b2x2a]= {$like:_0xc033[71]+ _0xf6b2x28[_0xc033[58]][_0xc033[70]]+ _0xc033[71]};return _0xf6b2x2b})})};_0xf6b2x1b= _[_0xc033[73]]({},_0xf6b2x1b,_0xf6b2x28[_0xc033[74]]);return db[_0xc033[56]][_0xc033[76]](_0xf6b2x1b)[_0xc033[45]](respondWithFilteredResult(_0xf6b2x15,_0xf6b2x1b,_0xc033[53]))[_0xc033[75]](handleError(_0xf6b2x15,null,_0xc033[53]))};exports[_0xc033[77]]= function(_0xf6b2x28,_0xf6b2x15){var _0xf6b2x1b={raw:true,where:{id:_0xf6b2x28[_0xc033[79]][_0xc033[78]]}},_0xf6b2x29={};_0xf6b2x29[_0xc033[54]]= _[_0xc033[57]](db[_0xc033[56]][_0xc033[55]]);_0xf6b2x29[_0xc033[58]]= _[_0xc033[57]](_0xf6b2x28[_0xc033[58]]);_0xf6b2x29[_0xc033[59]]= _[_0xc033[60]](_0xf6b2x29[_0xc033[54]],_0xf6b2x29[_0xc033[58]]);_0xf6b2x1b[_0xc033[61]]= _[_0xc033[60]](_0xf6b2x29[_0xc033[54]],qs[_0xc033[62]](_0xf6b2x28[_0xc033[58]][_0xc033[62]]));_0xf6b2x1b[_0xc033[61]]= (_0xf6b2x1b[_0xc033[61]][_0xc033[63]])?_0xf6b2x1b[_0xc033[61]]:_0xf6b2x29[_0xc033[54]];_0xf6b2x1b= _[_0xc033[73]]({},_0xf6b2x1b,_0xf6b2x28[_0xc033[74]]);return db[_0xc033[56]][_0xc033[80]](_0xf6b2x1b)[_0xc033[45]](handleEntityNotFound(_0xf6b2x15,null,_0xc033[77]))[_0xc033[45]](respondWithResult(_0xf6b2x15,null,_0xc033[77]))[_0xc033[75]](handleError(_0xf6b2x15,null,_0xc033[77]))};exports[_0xc033[81]]= function(_0xf6b2x28,_0xf6b2x15){return db[_0xc033[56]][_0xc033[81]](_0xf6b2x28[_0xc033[82]],{})[_0xc033[45]](respondWithResult(_0xf6b2x15,201,_0xc033[81]))[_0xc033[75]](handleError(_0xf6b2x15,null,_0xc033[81]))};exports[_0xc033[46]]= function(_0xf6b2x28,_0xf6b2x15){if(_0xf6b2x28[_0xc033[82]][_0xc033[78]]){delete _0xf6b2x28[_0xc033[82]][_0xc033[78]]};return db[_0xc033[56]][_0xc033[80]]({where:{id:_0xf6b2x28[_0xc033[79]][_0xc033[78]]}})[_0xc033[45]](handleEntityNotFound(_0xf6b2x15,null,_0xc033[46]))[_0xc033[45]](saveUpdates(_0xf6b2x28[_0xc033[82]],null,_0xc033[46]))[_0xc033[45]](respondWithResult(_0xf6b2x15,null,_0xc033[46]))[_0xc033[75]](handleError(_0xf6b2x15,null,_0xc033[46]))};exports[_0xc033[48]]= function(_0xf6b2x28,_0xf6b2x15){return db[_0xc033[56]][_0xc033[80]]({where:{id:_0xf6b2x28[_0xc033[79]][_0xc033[78]]}})[_0xc033[45]](handleEntityNotFound(_0xf6b2x15,null,_0xc033[48]))[_0xc033[45]](removeEntity(_0xf6b2x15,null,_0xc033[48]))[_0xc033[75]](handleError(_0xf6b2x15,null,_0xc033[48]))}
\ No newline at end of file
+var _0x7f03=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x7f03[0];var jsonpatch=require(_0x7f03[1]);var rp=require(_0x7f03[2]);var moment=require(_0x7f03[3]);var BPromise=require(_0x7f03[4]);var util=require(_0x7f03[5]);var path=require(_0x7f03[6]);var sox=require(_0x7f03[7]);var ejs=require(_0x7f03[8]);var fs=require(_0x7f03[9]);var _=require(_0x7f03[10]);var squel=require(_0x7f03[11]);var crypto=require(_0x7f03[12]);var jsforce=require(_0x7f03[13]);var toCsv=require(_0x7f03[14]);var qs=require(_0x7f03[15]);var logger=require(_0x7f03[17])(_0x7f03[16]);var utils=require(_0x7f03[18]);var config=require(_0x7f03[19]);var db=require(_0x7f03[21])[_0x7f03[20]];function respondWithStatusCode(_0x1479x15,_0x1479x16,_0x1479x17){_0x1479x16= _0x1479x16|| 204;return function(_0x1479x18){if(_0x1479x18){logger[_0x7f03[24]](_0x7f03[22],_0x1479x17,_0x1479x16,_0x7f03[23]);logger[_0x7f03[26]](_0x7f03[25],_0x1479x17,_0x1479x16,_0x7f03[23]);return _0x1479x15[_0x7f03[27]](_0x1479x16)};return _0x1479x15[_0x7f03[29]](304)[_0x7f03[28]]()}}function respondWithResult(_0x1479x15,_0x1479x16,_0x1479x17){_0x1479x16= _0x1479x16|| 200;return function(_0x1479x18){if(_0x1479x18){logger[_0x7f03[24]](_0x7f03[22],_0x1479x17,_0x1479x16,_0x7f03[30]);logger[_0x7f03[26]](_0x7f03[25],_0x1479x17,_0x1479x16,_0x7f03[30],JSON[_0x7f03[31]](_0x1479x18));return _0x1479x15[_0x7f03[29]](_0x1479x16)[_0x7f03[32]](_0x1479x18)};return _0x1479x15[_0x7f03[29]](304)[_0x7f03[28]]()}}function respondWithFilteredResult(_0x1479x15,_0x1479x1b,_0x1479x17){return function(_0x1479x18){if(_0x1479x18){var _0x1479x1c=_0x1479x18[_0x7f03[33]],_0x1479x1d=_0x1479x1b[_0x7f03[34]],_0x1479x1e=_0x1479x1b[_0x7f03[34]]+ _0x1479x1b[_0x7f03[35]],_0x1479x16;if(_0x1479x1e>= _0x1479x1c){_0x1479x1e= _0x1479x1c;_0x1479x16= 200}else {_0x1479x16= 206};_0x1479x15[_0x7f03[29]](_0x1479x16);logger[_0x7f03[24]](_0x7f03[22],_0x1479x17,_0x1479x16,_0x7f03[36]);logger[_0x7f03[26]](_0x7f03[25],_0x1479x17,_0x1479x16,_0x7f03[30],JSON[_0x7f03[31]](_0x1479x18));return _0x1479x15[_0x7f03[40]](_0x7f03[37],_0x1479x1d+ _0x7f03[38]+ _0x1479x1e+ _0x7f03[39]+ _0x1479x1c)[_0x7f03[32]](_0x1479x18)};return null}}function patchUpdates(_0x1479x20){return function(_0x1479x18){try{jsonpatch[_0x7f03[41]](_0x1479x18,_0x1479x20,true)}catch(err){return BPromise[_0x7f03[42]](err)};return _0x1479x18[_0x7f03[43]]()}}function saveUpdates(_0x1479x22,_0x1479x16,_0x1479x17){return function(_0x1479x18){if(_0x1479x18){return _0x1479x18[_0x7f03[46]](_0x1479x22)[_0x7f03[45]](function(_0x1479x23){logger[_0x7f03[24]](_0x7f03[22],_0x1479x17,_0x1479x16,_0x7f03[44]);logger[_0x7f03[26]](_0x7f03[25],_0x1479x17,_0x1479x16,_0x7f03[44],JSON[_0x7f03[31]](_0x1479x18));return _0x1479x23})};return null}}function removeEntity(_0x1479x15,_0x1479x16,_0x1479x17){return function(_0x1479x18){if(_0x1479x18){return _0x1479x18[_0x7f03[48]]()[_0x7f03[45]](function(){logger[_0x7f03[24]](_0x7f03[22],_0x1479x17,_0x1479x16,_0x7f03[47]);logger[_0x7f03[26]](_0x7f03[25],_0x1479x17,_0x1479x16,_0x7f03[47],JSON[_0x7f03[31]](_0x1479x18));_0x1479x15[_0x7f03[29]](204)[_0x7f03[28]]()})}}}function handleEntityNotFound(_0x1479x15,_0x1479x16,_0x1479x17){return function(_0x1479x18){if(!_0x1479x18){logger[_0x7f03[50]](_0x7f03[22],_0x1479x17,404,_0x7f03[49]);_0x1479x15[_0x7f03[29]](404)[_0x7f03[28]]();return null};return _0x1479x18}}function handleError(_0x1479x15,_0x1479x16,_0x1479x17){_0x1479x16= _0x1479x16|| 500;return function(_0x1479x27){logger[_0x7f03[50]](_0x7f03[22],_0x1479x17,_0x1479x16,JSON[_0x7f03[31]](_0x1479x27));delete _0x1479x27[_0x7f03[51]];_0x1479x15[_0x7f03[29]](_0x1479x16)[_0x7f03[52]](_0x1479x27)}}exports[_0x7f03[53]]= function(_0x1479x28,_0x1479x15){var _0x1479x1b={},_0x1479x29={};_0x1479x29[_0x7f03[54]]= _[_0x7f03[57]](db[_0x7f03[56]][_0x7f03[55]]);_0x1479x29[_0x7f03[58]]= _[_0x7f03[57]](_0x1479x28[_0x7f03[58]]);_0x1479x29[_0x7f03[59]]= _[_0x7f03[60]](_0x1479x29[_0x7f03[54]],_0x1479x29[_0x7f03[58]]);_0x1479x1b[_0x7f03[61]]= _[_0x7f03[60]](_0x1479x29[_0x7f03[54]],qs[_0x7f03[62]](_0x1479x28[_0x7f03[58]][_0x7f03[62]]));_0x1479x1b[_0x7f03[61]]= (_0x1479x1b[_0x7f03[61]][_0x7f03[63]])?_0x1479x1b[_0x7f03[61]]:_0x1479x29[_0x7f03[54]];if(!_0x1479x28[_0x7f03[58]][_0x7f03[65]](_0x7f03[64])){_0x1479x1b[_0x7f03[35]]= qs[_0x7f03[35]](_0x1479x28[_0x7f03[58]][_0x7f03[35]]);_0x1479x1b[_0x7f03[34]]= qs[_0x7f03[34]](_0x1479x28[_0x7f03[58]][_0x7f03[34]])};_0x1479x1b[_0x7f03[66]]= qs[_0x7f03[67]](_0x1479x28[_0x7f03[58]][_0x7f03[67]]);_0x1479x1b[_0x7f03[68]]= qs[_0x7f03[59]](_[_0x7f03[69]](_0x1479x28[_0x7f03[58]],_0x1479x29[_0x7f03[59]]));if(_0x1479x28[_0x7f03[58]][_0x7f03[70]]){_0x1479x1b[_0x7f03[68]]= _[_0x7f03[73]](_0x1479x1b[_0x7f03[68]],{$or:_[_0x7f03[72]](_0x1479x1b[_0x7f03[61]],function(_0x1479x2a){var _0x1479x2b={};_0x1479x2b[_0x1479x2a]= {$like:_0x7f03[71]+ _0x1479x28[_0x7f03[58]][_0x7f03[70]]+ _0x7f03[71]};return _0x1479x2b})})};_0x1479x1b= _[_0x7f03[73]]({},_0x1479x1b,_0x1479x28[_0x7f03[74]]);return db[_0x7f03[56]][_0x7f03[76]](_0x1479x1b)[_0x7f03[45]](respondWithFilteredResult(_0x1479x15,_0x1479x1b,_0x7f03[53]))[_0x7f03[75]](handleError(_0x1479x15,null,_0x7f03[53]))};exports[_0x7f03[77]]= function(_0x1479x28,_0x1479x15){var _0x1479x1b={raw:true,where:{id:_0x1479x28[_0x7f03[79]][_0x7f03[78]]}},_0x1479x29={};_0x1479x29[_0x7f03[54]]= _[_0x7f03[57]](db[_0x7f03[56]][_0x7f03[55]]);_0x1479x29[_0x7f03[58]]= _[_0x7f03[57]](_0x1479x28[_0x7f03[58]]);_0x1479x29[_0x7f03[59]]= _[_0x7f03[60]](_0x1479x29[_0x7f03[54]],_0x1479x29[_0x7f03[58]]);_0x1479x1b[_0x7f03[61]]= _[_0x7f03[60]](_0x1479x29[_0x7f03[54]],qs[_0x7f03[62]](_0x1479x28[_0x7f03[58]][_0x7f03[62]]));_0x1479x1b[_0x7f03[61]]= (_0x1479x1b[_0x7f03[61]][_0x7f03[63]])?_0x1479x1b[_0x7f03[61]]:_0x1479x29[_0x7f03[54]];_0x1479x1b= _[_0x7f03[73]]({},_0x1479x1b,_0x1479x28[_0x7f03[74]]);return db[_0x7f03[56]][_0x7f03[80]](_0x1479x1b)[_0x7f03[45]](handleEntityNotFound(_0x1479x15,null,_0x7f03[77]))[_0x7f03[45]](respondWithResult(_0x1479x15,null,_0x7f03[77]))[_0x7f03[75]](handleError(_0x1479x15,null,_0x7f03[77]))};exports[_0x7f03[81]]= function(_0x1479x28,_0x1479x15){return db[_0x7f03[56]][_0x7f03[81]](_0x1479x28[_0x7f03[82]],{})[_0x7f03[45]](respondWithResult(_0x1479x15,201,_0x7f03[81]))[_0x7f03[75]](handleError(_0x1479x15,null,_0x7f03[81]))};exports[_0x7f03[46]]= function(_0x1479x28,_0x1479x15){if(_0x1479x28[_0x7f03[82]][_0x7f03[78]]){delete _0x1479x28[_0x7f03[82]][_0x7f03[78]]};return db[_0x7f03[56]][_0x7f03[80]]({where:{id:_0x1479x28[_0x7f03[79]][_0x7f03[78]]}})[_0x7f03[45]](handleEntityNotFound(_0x1479x15,null,_0x7f03[46]))[_0x7f03[45]](saveUpdates(_0x1479x28[_0x7f03[82]],null,_0x7f03[46]))[_0x7f03[45]](respondWithResult(_0x1479x15,null,_0x7f03[46]))[_0x7f03[75]](handleError(_0x1479x15,null,_0x7f03[46]))};exports[_0x7f03[48]]= function(_0x1479x28,_0x1479x15){return db[_0x7f03[56]][_0x7f03[80]]({where:{id:_0x1479x28[_0x7f03[79]][_0x7f03[78]]}})[_0x7f03[45]](handleEntityNotFound(_0x1479x15,null,_0x7f03[48]))[_0x7f03[45]](removeEntity(_0x1479x15,null,_0x7f03[48]))[_0x7f03[75]](handleError(_0x1479x15,null,_0x7f03[48]))}
\ No newline at end of file
index bf6a4c5..26742d5 100644 (file)
@@ -1 +1 @@
-var _0x98b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x69\x6E\x70\x75\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x98b2[0];var _=require(_0x98b2[1]);var util=require(_0x98b2[2]);var logger=require(_0x98b2[4])(_0x98b2[3]);var attributes=require(_0x98b2[5]);module[_0x98b2[6]]= function(_0x6631x5,_0x6631x6){return _0x6631x5[_0x98b2[9]](_0x98b2[7],attributes,{tableName:_0x98b2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xc6e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x69\x6E\x70\x75\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xc6e7[0];var _=require(_0xc6e7[1]);var util=require(_0xc6e7[2]);var logger=require(_0xc6e7[4])(_0xc6e7[3]);var attributes=require(_0xc6e7[5]);module[_0xc6e7[6]]= function(_0xafccx5,_0xafccx6){return _0xafccx5[_0xc6e7[9]](_0xc6e7[7],attributes,{tableName:_0xc6e7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index f7a41fd..1462cd8 100644 (file)
@@ -1 +1 @@
-var _0x5361=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5361[0];var _=require(_0x5361[1]);var util=require(_0x5361[2]);var moment=require(_0x5361[3]);var BPromise=require(_0x5361[4]);var db=require(_0x5361[6])[_0x5361[5]];var utils=require(_0x5361[7]);var logger=require(_0x5361[9])(_0x5361[8]);var jayson=require(_0x5361[10]);var client=jayson[_0x5361[12]][_0x5361[11]]({port:9002});function respondWithRpcPromise(_0x82caxb,_0x82caxc,_0x82caxd){return  new BPromise(function(_0x82caxe,_0x82caxf){return client[_0x5361[25]](_0x82caxb,_0x82caxd)[_0x5361[24]](function(_0x82cax11){logger[_0x5361[17]](_0x5361[13],_0x82caxc,_0x5361[16]);logger[_0x5361[20]](_0x5361[18],_0x82caxc,_0x5361[16],JSON[_0x5361[19]](_0x82cax11));if(_0x82cax11[_0x5361[14]]){if(_0x82cax11[_0x5361[14]][_0x5361[21]]=== 500){logger[_0x5361[14]](_0x5361[13],_0x82caxc,_0x82cax11[_0x5361[14]][_0x5361[22]]);return _0x82caxf(_0x82cax11[_0x5361[14]][_0x5361[22]])};logger[_0x5361[14]](_0x5361[13],_0x82caxc,_0x82cax11[_0x5361[14]][_0x5361[22]]);return _0x82caxe(_0x82cax11[_0x5361[14]][_0x5361[22]])}else {logger[_0x5361[17]](_0x5361[13],_0x82caxc,_0x5361[16]);_0x82caxe(_0x82cax11[_0x5361[23]][_0x5361[22]])}})[_0x5361[15]](function(_0x82cax10){logger[_0x5361[14]](_0x5361[13],_0x82caxc,_0x82cax10);_0x82caxf(_0x82cax10)})})}
\ No newline at end of file
+var _0x4f04=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4f04[0];var _=require(_0x4f04[1]);var util=require(_0x4f04[2]);var moment=require(_0x4f04[3]);var BPromise=require(_0x4f04[4]);var db=require(_0x4f04[6])[_0x4f04[5]];var utils=require(_0x4f04[7]);var logger=require(_0x4f04[9])(_0x4f04[8]);var jayson=require(_0x4f04[10]);var client=jayson[_0x4f04[12]][_0x4f04[11]]({port:9002});function respondWithRpcPromise(_0xf4e0xb,_0xf4e0xc,_0xf4e0xd){return  new BPromise(function(_0xf4e0xe,_0xf4e0xf){return client[_0x4f04[25]](_0xf4e0xb,_0xf4e0xd)[_0x4f04[24]](function(_0xf4e0x11){logger[_0x4f04[17]](_0x4f04[13],_0xf4e0xc,_0x4f04[16]);logger[_0x4f04[20]](_0x4f04[18],_0xf4e0xc,_0x4f04[16],JSON[_0x4f04[19]](_0xf4e0x11));if(_0xf4e0x11[_0x4f04[14]]){if(_0xf4e0x11[_0x4f04[14]][_0x4f04[21]]=== 500){logger[_0x4f04[14]](_0x4f04[13],_0xf4e0xc,_0xf4e0x11[_0x4f04[14]][_0x4f04[22]]);return _0xf4e0xf(_0xf4e0x11[_0x4f04[14]][_0x4f04[22]])};logger[_0x4f04[14]](_0x4f04[13],_0xf4e0xc,_0xf4e0x11[_0x4f04[14]][_0x4f04[22]]);return _0xf4e0xe(_0xf4e0x11[_0x4f04[14]][_0x4f04[22]])}else {logger[_0x4f04[17]](_0x4f04[13],_0xf4e0xc,_0x4f04[16]);_0xf4e0xe(_0xf4e0x11[_0x4f04[23]][_0x4f04[22]])}})[_0x4f04[15]](function(_0xf4e0x10){logger[_0x4f04[14]](_0x4f04[13],_0xf4e0xc,_0xf4e0x10);_0xf4e0xf(_0xf4e0x10)})})}
\ No newline at end of file
index 85218e3..695b72b 100644 (file)
@@ -1 +1 @@
-var _0x6b45=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6b45[0];var multer=require(_0x6b45[1]);var util=require(_0x6b45[2]);var path=require(_0x6b45[3]);var express=require(_0x6b45[4]);var router=express.Router();var auth=require(_0x6b45[5]);var config=require(_0x6b45[6]);var controller=require(_0x6b45[7]);router[_0x6b45[11]](_0x6b45[8],auth[_0x6b45[9]](),controller[_0x6b45[10]]);router[_0x6b45[11]](_0x6b45[12],auth[_0x6b45[9]](),controller[_0x6b45[13]]);router[_0x6b45[15]](_0x6b45[8],auth[_0x6b45[9]](),controller[_0x6b45[14]]);router[_0x6b45[17]](_0x6b45[12],auth[_0x6b45[9]](),controller[_0x6b45[16]]);router[_0x6b45[19]](_0x6b45[12],auth[_0x6b45[9]](),controller[_0x6b45[18]]);module[_0x6b45[20]]= router
\ No newline at end of file
+var _0x7962=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7962[0];var multer=require(_0x7962[1]);var util=require(_0x7962[2]);var path=require(_0x7962[3]);var express=require(_0x7962[4]);var router=express.Router();var auth=require(_0x7962[5]);var config=require(_0x7962[6]);var controller=require(_0x7962[7]);router[_0x7962[11]](_0x7962[8],auth[_0x7962[9]](),controller[_0x7962[10]]);router[_0x7962[11]](_0x7962[12],auth[_0x7962[9]](),controller[_0x7962[13]]);router[_0x7962[15]](_0x7962[8],auth[_0x7962[9]](),controller[_0x7962[14]]);router[_0x7962[17]](_0x7962[12],auth[_0x7962[9]](),controller[_0x7962[16]]);router[_0x7962[19]](_0x7962[12],auth[_0x7962[9]](),controller[_0x7962[18]]);module[_0x7962[20]]= router
\ No newline at end of file
index 2e56029..31467ec 100644 (file)
@@ -1 +1 @@
-var _0xd25b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54"];_0xd25b[0];var Sequelize=require(_0xd25b[1]);module[_0xd25b[2]]= {name:{type:Sequelize[_0xd25b[3]],unique:_0xd25b[4]},description:{type:Sequelize[_0xd25b[3]]},draft:{type:Sequelize[_0xd25b[5]]},production:{type:Sequelize[_0xd25b[5]]}}
\ No newline at end of file
+var _0xc23e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54"];_0xc23e[0];var Sequelize=require(_0xc23e[1]);module[_0xc23e[2]]= {name:{type:Sequelize[_0xc23e[3]],unique:_0xc23e[4]},description:{type:Sequelize[_0xc23e[3]]},draft:{type:Sequelize[_0xc23e[5]]},production:{type:Sequelize[_0xc23e[5]]}}
\ No newline at end of file
index 4a58d77..6d835e5 100644 (file)
@@ -1 +1 @@
-var _0x5f88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5f88[0];var jsonpatch=require(_0x5f88[1]);var rp=require(_0x5f88[2]);var moment=require(_0x5f88[3]);var BPromise=require(_0x5f88[4]);var util=require(_0x5f88[5]);var path=require(_0x5f88[6]);var sox=require(_0x5f88[7]);var ejs=require(_0x5f88[8]);var fs=require(_0x5f88[9]);var _=require(_0x5f88[10]);var squel=require(_0x5f88[11]);var crypto=require(_0x5f88[12]);var jsforce=require(_0x5f88[13]);var toCsv=require(_0x5f88[14]);var qs=require(_0x5f88[15]);var logger=require(_0x5f88[17])(_0x5f88[16]);var utils=require(_0x5f88[18]);var config=require(_0x5f88[19]);var db=require(_0x5f88[21])[_0x5f88[20]];function respondWithStatusCode(_0xa9e8x15,_0xa9e8x16,_0xa9e8x17){_0xa9e8x16= _0xa9e8x16|| 204;return function(_0xa9e8x18){if(_0xa9e8x18){logger[_0x5f88[24]](_0x5f88[22],_0xa9e8x17,_0xa9e8x16,_0x5f88[23]);logger[_0x5f88[26]](_0x5f88[25],_0xa9e8x17,_0xa9e8x16,_0x5f88[23]);return _0xa9e8x15[_0x5f88[27]](_0xa9e8x16)};return _0xa9e8x15[_0x5f88[29]](304)[_0x5f88[28]]()}}function respondWithResult(_0xa9e8x15,_0xa9e8x16,_0xa9e8x17){_0xa9e8x16= _0xa9e8x16|| 200;return function(_0xa9e8x18){if(_0xa9e8x18){logger[_0x5f88[24]](_0x5f88[22],_0xa9e8x17,_0xa9e8x16,_0x5f88[30]);logger[_0x5f88[26]](_0x5f88[25],_0xa9e8x17,_0xa9e8x16,_0x5f88[30],JSON[_0x5f88[31]](_0xa9e8x18));return _0xa9e8x15[_0x5f88[29]](_0xa9e8x16)[_0x5f88[32]](_0xa9e8x18)};return _0xa9e8x15[_0x5f88[29]](304)[_0x5f88[28]]()}}function respondWithFilteredResult(_0xa9e8x15,_0xa9e8x1b,_0xa9e8x17){return function(_0xa9e8x18){if(_0xa9e8x18){var _0xa9e8x1c=_0xa9e8x18[_0x5f88[33]],_0xa9e8x1d=_0xa9e8x1b[_0x5f88[34]],_0xa9e8x1e=_0xa9e8x1b[_0x5f88[34]]+ _0xa9e8x1b[_0x5f88[35]],_0xa9e8x16;if(_0xa9e8x1e>= _0xa9e8x1c){_0xa9e8x1e= _0xa9e8x1c;_0xa9e8x16= 200}else {_0xa9e8x16= 206};_0xa9e8x15[_0x5f88[29]](_0xa9e8x16);logger[_0x5f88[24]](_0x5f88[22],_0xa9e8x17,_0xa9e8x16,_0x5f88[36]);logger[_0x5f88[26]](_0x5f88[25],_0xa9e8x17,_0xa9e8x16,_0x5f88[30],JSON[_0x5f88[31]](_0xa9e8x18));return _0xa9e8x15[_0x5f88[40]](_0x5f88[37],_0xa9e8x1d+ _0x5f88[38]+ _0xa9e8x1e+ _0x5f88[39]+ _0xa9e8x1c)[_0x5f88[32]](_0xa9e8x18)};return null}}function patchUpdates(_0xa9e8x20){return function(_0xa9e8x18){try{jsonpatch[_0x5f88[41]](_0xa9e8x18,_0xa9e8x20,true)}catch(err){return BPromise[_0x5f88[42]](err)};return _0xa9e8x18[_0x5f88[43]]()}}function saveUpdates(_0xa9e8x22,_0xa9e8x16,_0xa9e8x17){return function(_0xa9e8x18){if(_0xa9e8x18){return _0xa9e8x18[_0x5f88[46]](_0xa9e8x22)[_0x5f88[45]](function(_0xa9e8x23){logger[_0x5f88[24]](_0x5f88[22],_0xa9e8x17,_0xa9e8x16,_0x5f88[44]);logger[_0x5f88[26]](_0x5f88[25],_0xa9e8x17,_0xa9e8x16,_0x5f88[44],JSON[_0x5f88[31]](_0xa9e8x18));return _0xa9e8x23})};return null}}function removeEntity(_0xa9e8x15,_0xa9e8x16,_0xa9e8x17){return function(_0xa9e8x18){if(_0xa9e8x18){return _0xa9e8x18[_0x5f88[48]]()[_0x5f88[45]](function(){logger[_0x5f88[24]](_0x5f88[22],_0xa9e8x17,_0xa9e8x16,_0x5f88[47]);logger[_0x5f88[26]](_0x5f88[25],_0xa9e8x17,_0xa9e8x16,_0x5f88[47],JSON[_0x5f88[31]](_0xa9e8x18));_0xa9e8x15[_0x5f88[29]](204)[_0x5f88[28]]()})}}}function handleEntityNotFound(_0xa9e8x15,_0xa9e8x16,_0xa9e8x17){return function(_0xa9e8x18){if(!_0xa9e8x18){logger[_0x5f88[50]](_0x5f88[22],_0xa9e8x17,404,_0x5f88[49]);_0xa9e8x15[_0x5f88[29]](404)[_0x5f88[28]]();return null};return _0xa9e8x18}}function handleError(_0xa9e8x15,_0xa9e8x16,_0xa9e8x17){_0xa9e8x16= _0xa9e8x16|| 500;return function(_0xa9e8x27){logger[_0x5f88[50]](_0x5f88[22],_0xa9e8x17,_0xa9e8x16,JSON[_0x5f88[31]](_0xa9e8x27));delete _0xa9e8x27[_0x5f88[51]];_0xa9e8x15[_0x5f88[29]](_0xa9e8x16)[_0x5f88[52]](_0xa9e8x27)}}exports[_0x5f88[53]]= function(_0xa9e8x28,_0xa9e8x15){var _0xa9e8x1b={},_0xa9e8x29={};_0xa9e8x29[_0x5f88[54]]= _[_0x5f88[57]](db[_0x5f88[56]][_0x5f88[55]]);_0xa9e8x29[_0x5f88[58]]= _[_0x5f88[57]](_0xa9e8x28[_0x5f88[58]]);_0xa9e8x29[_0x5f88[59]]= _[_0x5f88[60]](_0xa9e8x29[_0x5f88[54]],_0xa9e8x29[_0x5f88[58]]);_0xa9e8x1b[_0x5f88[61]]= _[_0x5f88[60]](_0xa9e8x29[_0x5f88[54]],qs[_0x5f88[62]](_0xa9e8x28[_0x5f88[58]][_0x5f88[62]]));_0xa9e8x1b[_0x5f88[61]]= (_0xa9e8x1b[_0x5f88[61]][_0x5f88[63]])?_0xa9e8x1b[_0x5f88[61]]:_0xa9e8x29[_0x5f88[54]];if(!_0xa9e8x28[_0x5f88[58]][_0x5f88[65]](_0x5f88[64])){_0xa9e8x1b[_0x5f88[35]]= qs[_0x5f88[35]](_0xa9e8x28[_0x5f88[58]][_0x5f88[35]]);_0xa9e8x1b[_0x5f88[34]]= qs[_0x5f88[34]](_0xa9e8x28[_0x5f88[58]][_0x5f88[34]])};_0xa9e8x1b[_0x5f88[66]]= qs[_0x5f88[67]](_0xa9e8x28[_0x5f88[58]][_0x5f88[67]]);_0xa9e8x1b[_0x5f88[68]]= qs[_0x5f88[59]](_[_0x5f88[69]](_0xa9e8x28[_0x5f88[58]],_0xa9e8x29[_0x5f88[59]]));if(_0xa9e8x28[_0x5f88[58]][_0x5f88[70]]){_0xa9e8x1b[_0x5f88[68]]= _[_0x5f88[73]](_0xa9e8x1b[_0x5f88[68]],{$or:_[_0x5f88[72]](_0xa9e8x1b[_0x5f88[61]],function(_0xa9e8x2a){var _0xa9e8x2b={};_0xa9e8x2b[_0xa9e8x2a]= {$like:_0x5f88[71]+ _0xa9e8x28[_0x5f88[58]][_0x5f88[70]]+ _0x5f88[71]};return _0xa9e8x2b})})};_0xa9e8x1b= _[_0x5f88[73]]({},_0xa9e8x1b,_0xa9e8x28[_0x5f88[74]]);return db[_0x5f88[56]][_0x5f88[76]](_0xa9e8x1b)[_0x5f88[45]](respondWithFilteredResult(_0xa9e8x15,_0xa9e8x1b,_0x5f88[53]))[_0x5f88[75]](handleError(_0xa9e8x15,null,_0x5f88[53]))};exports[_0x5f88[77]]= function(_0xa9e8x28,_0xa9e8x15){var _0xa9e8x1b={raw:true,where:{id:_0xa9e8x28[_0x5f88[79]][_0x5f88[78]]}},_0xa9e8x29={};_0xa9e8x29[_0x5f88[54]]= _[_0x5f88[57]](db[_0x5f88[56]][_0x5f88[55]]);_0xa9e8x29[_0x5f88[58]]= _[_0x5f88[57]](_0xa9e8x28[_0x5f88[58]]);_0xa9e8x29[_0x5f88[59]]= _[_0x5f88[60]](_0xa9e8x29[_0x5f88[54]],_0xa9e8x29[_0x5f88[58]]);_0xa9e8x1b[_0x5f88[61]]= _[_0x5f88[60]](_0xa9e8x29[_0x5f88[54]],qs[_0x5f88[62]](_0xa9e8x28[_0x5f88[58]][_0x5f88[62]]));_0xa9e8x1b[_0x5f88[61]]= (_0xa9e8x1b[_0x5f88[61]][_0x5f88[63]])?_0xa9e8x1b[_0x5f88[61]]:_0xa9e8x29[_0x5f88[54]];_0xa9e8x1b= _[_0x5f88[73]]({},_0xa9e8x1b,_0xa9e8x28[_0x5f88[74]]);return db[_0x5f88[56]][_0x5f88[80]](_0xa9e8x1b)[_0x5f88[45]](handleEntityNotFound(_0xa9e8x15,null,_0x5f88[77]))[_0x5f88[45]](respondWithResult(_0xa9e8x15,null,_0x5f88[77]))[_0x5f88[75]](handleError(_0xa9e8x15,null,_0x5f88[77]))};exports[_0x5f88[81]]= function(_0xa9e8x28,_0xa9e8x15){return db[_0x5f88[56]][_0x5f88[81]](_0xa9e8x28[_0x5f88[82]],{})[_0x5f88[45]](respondWithResult(_0xa9e8x15,201,_0x5f88[81]))[_0x5f88[75]](handleError(_0xa9e8x15,null,_0x5f88[81]))};exports[_0x5f88[46]]= function(_0xa9e8x28,_0xa9e8x15){if(_0xa9e8x28[_0x5f88[82]][_0x5f88[78]]){delete _0xa9e8x28[_0x5f88[82]][_0x5f88[78]]};return db[_0x5f88[56]][_0x5f88[80]]({where:{id:_0xa9e8x28[_0x5f88[79]][_0x5f88[78]]}})[_0x5f88[45]](handleEntityNotFound(_0xa9e8x15,null,_0x5f88[46]))[_0x5f88[45]](saveUpdates(_0xa9e8x28[_0x5f88[82]],null,_0x5f88[46]))[_0x5f88[45]](respondWithResult(_0xa9e8x15,null,_0x5f88[46]))[_0x5f88[75]](handleError(_0xa9e8x15,null,_0x5f88[46]))};exports[_0x5f88[48]]= function(_0xa9e8x28,_0xa9e8x15){return db[_0x5f88[56]][_0x5f88[80]]({where:{id:_0xa9e8x28[_0x5f88[79]][_0x5f88[78]]}})[_0x5f88[45]](handleEntityNotFound(_0xa9e8x15,null,_0x5f88[48]))[_0x5f88[45]](removeEntity(_0xa9e8x15,null,_0x5f88[48]))[_0x5f88[75]](handleError(_0xa9e8x15,null,_0x5f88[48]))}
\ No newline at end of file
+var _0xead8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xead8[0];var jsonpatch=require(_0xead8[1]);var rp=require(_0xead8[2]);var moment=require(_0xead8[3]);var BPromise=require(_0xead8[4]);var util=require(_0xead8[5]);var path=require(_0xead8[6]);var sox=require(_0xead8[7]);var ejs=require(_0xead8[8]);var fs=require(_0xead8[9]);var _=require(_0xead8[10]);var squel=require(_0xead8[11]);var crypto=require(_0xead8[12]);var jsforce=require(_0xead8[13]);var toCsv=require(_0xead8[14]);var qs=require(_0xead8[15]);var logger=require(_0xead8[17])(_0xead8[16]);var utils=require(_0xead8[18]);var config=require(_0xead8[19]);var db=require(_0xead8[21])[_0xead8[20]];function respondWithStatusCode(_0x22ccx15,_0x22ccx16,_0x22ccx17){_0x22ccx16= _0x22ccx16|| 204;return function(_0x22ccx18){if(_0x22ccx18){logger[_0xead8[24]](_0xead8[22],_0x22ccx17,_0x22ccx16,_0xead8[23]);logger[_0xead8[26]](_0xead8[25],_0x22ccx17,_0x22ccx16,_0xead8[23]);return _0x22ccx15[_0xead8[27]](_0x22ccx16)};return _0x22ccx15[_0xead8[29]](304)[_0xead8[28]]()}}function respondWithResult(_0x22ccx15,_0x22ccx16,_0x22ccx17){_0x22ccx16= _0x22ccx16|| 200;return function(_0x22ccx18){if(_0x22ccx18){logger[_0xead8[24]](_0xead8[22],_0x22ccx17,_0x22ccx16,_0xead8[30]);logger[_0xead8[26]](_0xead8[25],_0x22ccx17,_0x22ccx16,_0xead8[30],JSON[_0xead8[31]](_0x22ccx18));return _0x22ccx15[_0xead8[29]](_0x22ccx16)[_0xead8[32]](_0x22ccx18)};return _0x22ccx15[_0xead8[29]](304)[_0xead8[28]]()}}function respondWithFilteredResult(_0x22ccx15,_0x22ccx1b,_0x22ccx17){return function(_0x22ccx18){if(_0x22ccx18){var _0x22ccx1c=_0x22ccx18[_0xead8[33]],_0x22ccx1d=_0x22ccx1b[_0xead8[34]],_0x22ccx1e=_0x22ccx1b[_0xead8[34]]+ _0x22ccx1b[_0xead8[35]],_0x22ccx16;if(_0x22ccx1e>= _0x22ccx1c){_0x22ccx1e= _0x22ccx1c;_0x22ccx16= 200}else {_0x22ccx16= 206};_0x22ccx15[_0xead8[29]](_0x22ccx16);logger[_0xead8[24]](_0xead8[22],_0x22ccx17,_0x22ccx16,_0xead8[36]);logger[_0xead8[26]](_0xead8[25],_0x22ccx17,_0x22ccx16,_0xead8[30],JSON[_0xead8[31]](_0x22ccx18));return _0x22ccx15[_0xead8[40]](_0xead8[37],_0x22ccx1d+ _0xead8[38]+ _0x22ccx1e+ _0xead8[39]+ _0x22ccx1c)[_0xead8[32]](_0x22ccx18)};return null}}function patchUpdates(_0x22ccx20){return function(_0x22ccx18){try{jsonpatch[_0xead8[41]](_0x22ccx18,_0x22ccx20,true)}catch(err){return BPromise[_0xead8[42]](err)};return _0x22ccx18[_0xead8[43]]()}}function saveUpdates(_0x22ccx22,_0x22ccx16,_0x22ccx17){return function(_0x22ccx18){if(_0x22ccx18){return _0x22ccx18[_0xead8[46]](_0x22ccx22)[_0xead8[45]](function(_0x22ccx23){logger[_0xead8[24]](_0xead8[22],_0x22ccx17,_0x22ccx16,_0xead8[44]);logger[_0xead8[26]](_0xead8[25],_0x22ccx17,_0x22ccx16,_0xead8[44],JSON[_0xead8[31]](_0x22ccx18));return _0x22ccx23})};return null}}function removeEntity(_0x22ccx15,_0x22ccx16,_0x22ccx17){return function(_0x22ccx18){if(_0x22ccx18){return _0x22ccx18[_0xead8[48]]()[_0xead8[45]](function(){logger[_0xead8[24]](_0xead8[22],_0x22ccx17,_0x22ccx16,_0xead8[47]);logger[_0xead8[26]](_0xead8[25],_0x22ccx17,_0x22ccx16,_0xead8[47],JSON[_0xead8[31]](_0x22ccx18));_0x22ccx15[_0xead8[29]](204)[_0xead8[28]]()})}}}function handleEntityNotFound(_0x22ccx15,_0x22ccx16,_0x22ccx17){return function(_0x22ccx18){if(!_0x22ccx18){logger[_0xead8[50]](_0xead8[22],_0x22ccx17,404,_0xead8[49]);_0x22ccx15[_0xead8[29]](404)[_0xead8[28]]();return null};return _0x22ccx18}}function handleError(_0x22ccx15,_0x22ccx16,_0x22ccx17){_0x22ccx16= _0x22ccx16|| 500;return function(_0x22ccx27){logger[_0xead8[50]](_0xead8[22],_0x22ccx17,_0x22ccx16,JSON[_0xead8[31]](_0x22ccx27));delete _0x22ccx27[_0xead8[51]];_0x22ccx15[_0xead8[29]](_0x22ccx16)[_0xead8[52]](_0x22ccx27)}}exports[_0xead8[53]]= function(_0x22ccx28,_0x22ccx15){var _0x22ccx1b={},_0x22ccx29={};_0x22ccx29[_0xead8[54]]= _[_0xead8[57]](db[_0xead8[56]][_0xead8[55]]);_0x22ccx29[_0xead8[58]]= _[_0xead8[57]](_0x22ccx28[_0xead8[58]]);_0x22ccx29[_0xead8[59]]= _[_0xead8[60]](_0x22ccx29[_0xead8[54]],_0x22ccx29[_0xead8[58]]);_0x22ccx1b[_0xead8[61]]= _[_0xead8[60]](_0x22ccx29[_0xead8[54]],qs[_0xead8[62]](_0x22ccx28[_0xead8[58]][_0xead8[62]]));_0x22ccx1b[_0xead8[61]]= (_0x22ccx1b[_0xead8[61]][_0xead8[63]])?_0x22ccx1b[_0xead8[61]]:_0x22ccx29[_0xead8[54]];if(!_0x22ccx28[_0xead8[58]][_0xead8[65]](_0xead8[64])){_0x22ccx1b[_0xead8[35]]= qs[_0xead8[35]](_0x22ccx28[_0xead8[58]][_0xead8[35]]);_0x22ccx1b[_0xead8[34]]= qs[_0xead8[34]](_0x22ccx28[_0xead8[58]][_0xead8[34]])};_0x22ccx1b[_0xead8[66]]= qs[_0xead8[67]](_0x22ccx28[_0xead8[58]][_0xead8[67]]);_0x22ccx1b[_0xead8[68]]= qs[_0xead8[59]](_[_0xead8[69]](_0x22ccx28[_0xead8[58]],_0x22ccx29[_0xead8[59]]));if(_0x22ccx28[_0xead8[58]][_0xead8[70]]){_0x22ccx1b[_0xead8[68]]= _[_0xead8[73]](_0x22ccx1b[_0xead8[68]],{$or:_[_0xead8[72]](_0x22ccx1b[_0xead8[61]],function(_0x22ccx2a){var _0x22ccx2b={};_0x22ccx2b[_0x22ccx2a]= {$like:_0xead8[71]+ _0x22ccx28[_0xead8[58]][_0xead8[70]]+ _0xead8[71]};return _0x22ccx2b})})};_0x22ccx1b= _[_0xead8[73]]({},_0x22ccx1b,_0x22ccx28[_0xead8[74]]);return db[_0xead8[56]][_0xead8[76]](_0x22ccx1b)[_0xead8[45]](respondWithFilteredResult(_0x22ccx15,_0x22ccx1b,_0xead8[53]))[_0xead8[75]](handleError(_0x22ccx15,null,_0xead8[53]))};exports[_0xead8[77]]= function(_0x22ccx28,_0x22ccx15){var _0x22ccx1b={raw:true,where:{id:_0x22ccx28[_0xead8[79]][_0xead8[78]]}},_0x22ccx29={};_0x22ccx29[_0xead8[54]]= _[_0xead8[57]](db[_0xead8[56]][_0xead8[55]]);_0x22ccx29[_0xead8[58]]= _[_0xead8[57]](_0x22ccx28[_0xead8[58]]);_0x22ccx29[_0xead8[59]]= _[_0xead8[60]](_0x22ccx29[_0xead8[54]],_0x22ccx29[_0xead8[58]]);_0x22ccx1b[_0xead8[61]]= _[_0xead8[60]](_0x22ccx29[_0xead8[54]],qs[_0xead8[62]](_0x22ccx28[_0xead8[58]][_0xead8[62]]));_0x22ccx1b[_0xead8[61]]= (_0x22ccx1b[_0xead8[61]][_0xead8[63]])?_0x22ccx1b[_0xead8[61]]:_0x22ccx29[_0xead8[54]];_0x22ccx1b= _[_0xead8[73]]({},_0x22ccx1b,_0x22ccx28[_0xead8[74]]);return db[_0xead8[56]][_0xead8[80]](_0x22ccx1b)[_0xead8[45]](handleEntityNotFound(_0x22ccx15,null,_0xead8[77]))[_0xead8[45]](respondWithResult(_0x22ccx15,null,_0xead8[77]))[_0xead8[75]](handleError(_0x22ccx15,null,_0xead8[77]))};exports[_0xead8[81]]= function(_0x22ccx28,_0x22ccx15){return db[_0xead8[56]][_0xead8[81]](_0x22ccx28[_0xead8[82]],{})[_0xead8[45]](respondWithResult(_0x22ccx15,201,_0xead8[81]))[_0xead8[75]](handleError(_0x22ccx15,null,_0xead8[81]))};exports[_0xead8[46]]= function(_0x22ccx28,_0x22ccx15){if(_0x22ccx28[_0xead8[82]][_0xead8[78]]){delete _0x22ccx28[_0xead8[82]][_0xead8[78]]};return db[_0xead8[56]][_0xead8[80]]({where:{id:_0x22ccx28[_0xead8[79]][_0xead8[78]]}})[_0xead8[45]](handleEntityNotFound(_0x22ccx15,null,_0xead8[46]))[_0xead8[45]](saveUpdates(_0x22ccx28[_0xead8[82]],null,_0xead8[46]))[_0xead8[45]](respondWithResult(_0x22ccx15,null,_0xead8[46]))[_0xead8[75]](handleError(_0x22ccx15,null,_0xead8[46]))};exports[_0xead8[48]]= function(_0x22ccx28,_0x22ccx15){return db[_0xead8[56]][_0xead8[80]]({where:{id:_0x22ccx28[_0xead8[79]][_0xead8[78]]}})[_0xead8[45]](handleEntityNotFound(_0x22ccx15,null,_0xead8[48]))[_0xead8[45]](removeEntity(_0x22ccx15,null,_0xead8[48]))[_0xead8[75]](handleError(_0x22ccx15,null,_0xead8[48]))}
\ No newline at end of file
index 6a63e8e..935a0a5 100644 (file)
@@ -1 +1 @@
-var _0x3910=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x3910[0];var _=require(_0x3910[1]);var util=require(_0x3910[2]);var logger=require(_0x3910[4])(_0x3910[3]);var attributes=require(_0x3910[5]);module[_0x3910[6]]= function(_0x1d66x5,_0x1d66x6){return _0x1d66x5[_0x3910[9]](_0x3910[7],attributes,{tableName:_0x3910[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd476=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xd476[0];var _=require(_0xd476[1]);var util=require(_0xd476[2]);var logger=require(_0xd476[4])(_0xd476[3]);var attributes=require(_0xd476[5]);module[_0xd476[6]]= function(_0xb684x5,_0xb684x6){return _0xb684x5[_0xd476[9]](_0xd476[7],attributes,{tableName:_0xd476[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index b35894d..874364e 100644 (file)
@@ -1 +1 @@
-var _0x6565=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6565[0];var _=require(_0x6565[1]);var util=require(_0x6565[2]);var moment=require(_0x6565[3]);var BPromise=require(_0x6565[4]);var db=require(_0x6565[6])[_0x6565[5]];var utils=require(_0x6565[7]);var logger=require(_0x6565[9])(_0x6565[8]);var jayson=require(_0x6565[10]);var client=jayson[_0x6565[12]][_0x6565[11]]({port:9002});function respondWithRpcPromise(_0xd7b0xb,_0xd7b0xc,_0xd7b0xd){return  new BPromise(function(_0xd7b0xe,_0xd7b0xf){return client[_0x6565[25]](_0xd7b0xb,_0xd7b0xd)[_0x6565[24]](function(_0xd7b0x11){logger[_0x6565[17]](_0x6565[13],_0xd7b0xc,_0x6565[16]);logger[_0x6565[20]](_0x6565[18],_0xd7b0xc,_0x6565[16],JSON[_0x6565[19]](_0xd7b0x11));if(_0xd7b0x11[_0x6565[14]]){if(_0xd7b0x11[_0x6565[14]][_0x6565[21]]=== 500){logger[_0x6565[14]](_0x6565[13],_0xd7b0xc,_0xd7b0x11[_0x6565[14]][_0x6565[22]]);return _0xd7b0xf(_0xd7b0x11[_0x6565[14]][_0x6565[22]])};logger[_0x6565[14]](_0x6565[13],_0xd7b0xc,_0xd7b0x11[_0x6565[14]][_0x6565[22]]);return _0xd7b0xe(_0xd7b0x11[_0x6565[14]][_0x6565[22]])}else {logger[_0x6565[17]](_0x6565[13],_0xd7b0xc,_0x6565[16]);_0xd7b0xe(_0xd7b0x11[_0x6565[23]][_0x6565[22]])}})[_0x6565[15]](function(_0xd7b0x10){logger[_0x6565[14]](_0x6565[13],_0xd7b0xc,_0xd7b0x10);_0xd7b0xf(_0xd7b0x10)})})}
\ No newline at end of file
+var _0x7823=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7823[0];var _=require(_0x7823[1]);var util=require(_0x7823[2]);var moment=require(_0x7823[3]);var BPromise=require(_0x7823[4]);var db=require(_0x7823[6])[_0x7823[5]];var utils=require(_0x7823[7]);var logger=require(_0x7823[9])(_0x7823[8]);var jayson=require(_0x7823[10]);var client=jayson[_0x7823[12]][_0x7823[11]]({port:9002});function respondWithRpcPromise(_0x5df0xb,_0x5df0xc,_0x5df0xd){return  new BPromise(function(_0x5df0xe,_0x5df0xf){return client[_0x7823[25]](_0x5df0xb,_0x5df0xd)[_0x7823[24]](function(_0x5df0x11){logger[_0x7823[17]](_0x7823[13],_0x5df0xc,_0x7823[16]);logger[_0x7823[20]](_0x7823[18],_0x5df0xc,_0x7823[16],JSON[_0x7823[19]](_0x5df0x11));if(_0x5df0x11[_0x7823[14]]){if(_0x5df0x11[_0x7823[14]][_0x7823[21]]=== 500){logger[_0x7823[14]](_0x7823[13],_0x5df0xc,_0x5df0x11[_0x7823[14]][_0x7823[22]]);return _0x5df0xf(_0x5df0x11[_0x7823[14]][_0x7823[22]])};logger[_0x7823[14]](_0x7823[13],_0x5df0xc,_0x5df0x11[_0x7823[14]][_0x7823[22]]);return _0x5df0xe(_0x5df0x11[_0x7823[14]][_0x7823[22]])}else {logger[_0x7823[17]](_0x7823[13],_0x5df0xc,_0x7823[16]);_0x5df0xe(_0x5df0x11[_0x7823[23]][_0x7823[22]])}})[_0x7823[15]](function(_0x5df0x10){logger[_0x7823[14]](_0x7823[13],_0x5df0xc,_0x5df0x10);_0x5df0xf(_0x5df0x10)})})}
\ No newline at end of file
index 6a700f1..7497553 100644 (file)
@@ -1 +1 @@
-var _0xfec6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfec6[0];var multer=require(_0xfec6[1]);var util=require(_0xfec6[2]);var path=require(_0xfec6[3]);var express=require(_0xfec6[4]);var router=express.Router();var auth=require(_0xfec6[5]);var config=require(_0xfec6[6]);var controller=require(_0xfec6[7]);router[_0xfec6[11]](_0xfec6[8],auth[_0xfec6[9]](),controller[_0xfec6[10]]);router[_0xfec6[11]](_0xfec6[12],auth[_0xfec6[9]](),controller[_0xfec6[13]]);router[_0xfec6[15]](_0xfec6[8],auth[_0xfec6[9]](),controller[_0xfec6[14]]);router[_0xfec6[17]](_0xfec6[12],auth[_0xfec6[9]](),controller[_0xfec6[16]]);router[_0xfec6[19]](_0xfec6[12],auth[_0xfec6[9]](),controller[_0xfec6[18]]);module[_0xfec6[20]]= router
\ No newline at end of file
+var _0x676e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x676e[0];var multer=require(_0x676e[1]);var util=require(_0x676e[2]);var path=require(_0x676e[3]);var express=require(_0x676e[4]);var router=express.Router();var auth=require(_0x676e[5]);var config=require(_0x676e[6]);var controller=require(_0x676e[7]);router[_0x676e[11]](_0x676e[8],auth[_0x676e[9]](),controller[_0x676e[10]]);router[_0x676e[11]](_0x676e[12],auth[_0x676e[9]](),controller[_0x676e[13]]);router[_0x676e[15]](_0x676e[8],auth[_0x676e[9]](),controller[_0x676e[14]]);router[_0x676e[17]](_0x676e[12],auth[_0x676e[9]](),controller[_0x676e[16]]);router[_0x676e[19]](_0x676e[12],auth[_0x676e[9]](),controller[_0x676e[18]]);module[_0x676e[20]]= router
\ No newline at end of file
index 0386758..1c434e5 100644 (file)
@@ -1 +1 @@
-var _0x2954=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x2954[0];var Sequelize=require(_0x2954[1]);module[_0x2954[2]]= {sourceid:{type:Sequelize[_0x2954[3]]},question_id:{type:Sequelize[_0x2954[3]]},question_type:{type:Sequelize[_0x2954[4]]},question_label:{type:Sequelize[_0x2954[4]]},question_text:{type:Sequelize[_0x2954[4]]},question_answer:{type:Sequelize[_0x2954[4]]},question_other_label:{type:Sequelize[_0x2954[4]]},question_other_answer:{type:Sequelize[_0x2954[4]]},question_options:{type:Sequelize[_0x2954[4]]},index:{type:Sequelize[_0x2954[3]]}}
\ No newline at end of file
+var _0x2188=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x2188[0];var Sequelize=require(_0x2188[1]);module[_0x2188[2]]= {sourceid:{type:Sequelize[_0x2188[3]]},question_id:{type:Sequelize[_0x2188[3]]},question_type:{type:Sequelize[_0x2188[4]]},question_label:{type:Sequelize[_0x2188[4]]},question_text:{type:Sequelize[_0x2188[4]]},question_answer:{type:Sequelize[_0x2188[4]]},question_other_label:{type:Sequelize[_0x2188[4]]},question_other_answer:{type:Sequelize[_0x2188[4]]},question_options:{type:Sequelize[_0x2188[4]]},index:{type:Sequelize[_0x2188[3]]}}
\ No newline at end of file
index 5234cc7..900a2c4 100644 (file)
@@ -1 +1 @@
-var _0x3c02=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x3c02[0];var jsonpatch=require(_0x3c02[1]);var rp=require(_0x3c02[2]);var moment=require(_0x3c02[3]);var BPromise=require(_0x3c02[4]);var util=require(_0x3c02[5]);var path=require(_0x3c02[6]);var sox=require(_0x3c02[7]);var ejs=require(_0x3c02[8]);var fs=require(_0x3c02[9]);var _=require(_0x3c02[10]);var squel=require(_0x3c02[11]);var crypto=require(_0x3c02[12]);var jsforce=require(_0x3c02[13]);var toCsv=require(_0x3c02[14]);var qs=require(_0x3c02[15]);var logger=require(_0x3c02[17])(_0x3c02[16]);var utils=require(_0x3c02[18]);var config=require(_0x3c02[19]);var db=require(_0x3c02[21])[_0x3c02[20]];function respondWithStatusCode(_0x1c6dx15,_0x1c6dx16,_0x1c6dx17){_0x1c6dx16= _0x1c6dx16|| 204;return function(_0x1c6dx18){if(_0x1c6dx18){logger[_0x3c02[24]](_0x3c02[22],_0x1c6dx17,_0x1c6dx16,_0x3c02[23]);logger[_0x3c02[26]](_0x3c02[25],_0x1c6dx17,_0x1c6dx16,_0x3c02[23]);return _0x1c6dx15[_0x3c02[27]](_0x1c6dx16)};return _0x1c6dx15[_0x3c02[29]](304)[_0x3c02[28]]()}}function respondWithResult(_0x1c6dx15,_0x1c6dx16,_0x1c6dx17){_0x1c6dx16= _0x1c6dx16|| 200;return function(_0x1c6dx18){if(_0x1c6dx18){logger[_0x3c02[24]](_0x3c02[22],_0x1c6dx17,_0x1c6dx16,_0x3c02[30]);logger[_0x3c02[26]](_0x3c02[25],_0x1c6dx17,_0x1c6dx16,_0x3c02[30],JSON[_0x3c02[31]](_0x1c6dx18));return _0x1c6dx15[_0x3c02[29]](_0x1c6dx16)[_0x3c02[32]](_0x1c6dx18)};return _0x1c6dx15[_0x3c02[29]](304)[_0x3c02[28]]()}}function respondWithFilteredResult(_0x1c6dx15,_0x1c6dx1b,_0x1c6dx17){return function(_0x1c6dx18){if(_0x1c6dx18){var _0x1c6dx1c=_0x1c6dx18[_0x3c02[33]],_0x1c6dx1d=_0x1c6dx1b[_0x3c02[34]],_0x1c6dx1e=_0x1c6dx1b[_0x3c02[34]]+ _0x1c6dx1b[_0x3c02[35]],_0x1c6dx16;if(_0x1c6dx1e>= _0x1c6dx1c){_0x1c6dx1e= _0x1c6dx1c;_0x1c6dx16= 200}else {_0x1c6dx16= 206};_0x1c6dx15[_0x3c02[29]](_0x1c6dx16);logger[_0x3c02[24]](_0x3c02[22],_0x1c6dx17,_0x1c6dx16,_0x3c02[36]);logger[_0x3c02[26]](_0x3c02[25],_0x1c6dx17,_0x1c6dx16,_0x3c02[30],JSON[_0x3c02[31]](_0x1c6dx18));return _0x1c6dx15[_0x3c02[40]](_0x3c02[37],_0x1c6dx1d+ _0x3c02[38]+ _0x1c6dx1e+ _0x3c02[39]+ _0x1c6dx1c)[_0x3c02[32]](_0x1c6dx18)};return null}}function patchUpdates(_0x1c6dx20){return function(_0x1c6dx18){try{jsonpatch[_0x3c02[41]](_0x1c6dx18,_0x1c6dx20,true)}catch(err){return BPromise[_0x3c02[42]](err)};return _0x1c6dx18[_0x3c02[43]]()}}function saveUpdates(_0x1c6dx22,_0x1c6dx16,_0x1c6dx17){return function(_0x1c6dx18){if(_0x1c6dx18){return _0x1c6dx18[_0x3c02[46]](_0x1c6dx22)[_0x3c02[45]](function(_0x1c6dx23){logger[_0x3c02[24]](_0x3c02[22],_0x1c6dx17,_0x1c6dx16,_0x3c02[44]);logger[_0x3c02[26]](_0x3c02[25],_0x1c6dx17,_0x1c6dx16,_0x3c02[44],JSON[_0x3c02[31]](_0x1c6dx18));return _0x1c6dx23})};return null}}function removeEntity(_0x1c6dx15,_0x1c6dx16,_0x1c6dx17){return function(_0x1c6dx18){if(_0x1c6dx18){return _0x1c6dx18[_0x3c02[48]]()[_0x3c02[45]](function(){logger[_0x3c02[24]](_0x3c02[22],_0x1c6dx17,_0x1c6dx16,_0x3c02[47]);logger[_0x3c02[26]](_0x3c02[25],_0x1c6dx17,_0x1c6dx16,_0x3c02[47],JSON[_0x3c02[31]](_0x1c6dx18));_0x1c6dx15[_0x3c02[29]](204)[_0x3c02[28]]()})}}}function handleEntityNotFound(_0x1c6dx15,_0x1c6dx16,_0x1c6dx17){return function(_0x1c6dx18){if(!_0x1c6dx18){logger[_0x3c02[50]](_0x3c02[22],_0x1c6dx17,404,_0x3c02[49]);_0x1c6dx15[_0x3c02[29]](404)[_0x3c02[28]]();return null};return _0x1c6dx18}}function handleError(_0x1c6dx15,_0x1c6dx16,_0x1c6dx17){_0x1c6dx16= _0x1c6dx16|| 500;return function(_0x1c6dx27){logger[_0x3c02[50]](_0x3c02[22],_0x1c6dx17,_0x1c6dx16,JSON[_0x3c02[31]](_0x1c6dx27));delete _0x1c6dx27[_0x3c02[51]];_0x1c6dx15[_0x3c02[29]](_0x1c6dx16)[_0x3c02[52]](_0x1c6dx27)}}exports[_0x3c02[53]]= function(_0x1c6dx28,_0x1c6dx15){var _0x1c6dx1b={},_0x1c6dx29={};_0x1c6dx29[_0x3c02[54]]= _[_0x3c02[57]](db[_0x3c02[56]][_0x3c02[55]]);_0x1c6dx29[_0x3c02[58]]= _[_0x3c02[57]](_0x1c6dx28[_0x3c02[58]]);_0x1c6dx29[_0x3c02[59]]= _[_0x3c02[60]](_0x1c6dx29[_0x3c02[54]],_0x1c6dx29[_0x3c02[58]]);_0x1c6dx1b[_0x3c02[61]]= _[_0x3c02[60]](_0x1c6dx29[_0x3c02[54]],qs[_0x3c02[62]](_0x1c6dx28[_0x3c02[58]][_0x3c02[62]]));_0x1c6dx1b[_0x3c02[61]]= (_0x1c6dx1b[_0x3c02[61]][_0x3c02[63]])?_0x1c6dx1b[_0x3c02[61]]:_0x1c6dx29[_0x3c02[54]];if(!_0x1c6dx28[_0x3c02[58]][_0x3c02[65]](_0x3c02[64])){_0x1c6dx1b[_0x3c02[35]]= qs[_0x3c02[35]](_0x1c6dx28[_0x3c02[58]][_0x3c02[35]]);_0x1c6dx1b[_0x3c02[34]]= qs[_0x3c02[34]](_0x1c6dx28[_0x3c02[58]][_0x3c02[34]])};_0x1c6dx1b[_0x3c02[66]]= qs[_0x3c02[67]](_0x1c6dx28[_0x3c02[58]][_0x3c02[67]]);_0x1c6dx1b[_0x3c02[68]]= qs[_0x3c02[59]](_[_0x3c02[69]](_0x1c6dx28[_0x3c02[58]],_0x1c6dx29[_0x3c02[59]]));if(_0x1c6dx28[_0x3c02[58]][_0x3c02[70]]){_0x1c6dx1b[_0x3c02[68]]= _[_0x3c02[73]](_0x1c6dx1b[_0x3c02[68]],{$or:_[_0x3c02[72]](_0x1c6dx1b[_0x3c02[61]],function(_0x1c6dx2a){var _0x1c6dx2b={};_0x1c6dx2b[_0x1c6dx2a]= {$like:_0x3c02[71]+ _0x1c6dx28[_0x3c02[58]][_0x3c02[70]]+ _0x3c02[71]};return _0x1c6dx2b})})};_0x1c6dx1b= _[_0x3c02[73]]({},_0x1c6dx1b,_0x1c6dx28[_0x3c02[74]]);return db[_0x3c02[56]][_0x3c02[76]](_0x1c6dx1b)[_0x3c02[45]](respondWithFilteredResult(_0x1c6dx15,_0x1c6dx1b,_0x3c02[53]))[_0x3c02[75]](handleError(_0x1c6dx15,null,_0x3c02[53]))};exports[_0x3c02[77]]= function(_0x1c6dx28,_0x1c6dx15){var _0x1c6dx1b={raw:true,where:{id:_0x1c6dx28[_0x3c02[79]][_0x3c02[78]]}},_0x1c6dx29={};_0x1c6dx29[_0x3c02[54]]= _[_0x3c02[57]](db[_0x3c02[56]][_0x3c02[55]]);_0x1c6dx29[_0x3c02[58]]= _[_0x3c02[57]](_0x1c6dx28[_0x3c02[58]]);_0x1c6dx29[_0x3c02[59]]= _[_0x3c02[60]](_0x1c6dx29[_0x3c02[54]],_0x1c6dx29[_0x3c02[58]]);_0x1c6dx1b[_0x3c02[61]]= _[_0x3c02[60]](_0x1c6dx29[_0x3c02[54]],qs[_0x3c02[62]](_0x1c6dx28[_0x3c02[58]][_0x3c02[62]]));_0x1c6dx1b[_0x3c02[61]]= (_0x1c6dx1b[_0x3c02[61]][_0x3c02[63]])?_0x1c6dx1b[_0x3c02[61]]:_0x1c6dx29[_0x3c02[54]];_0x1c6dx1b= _[_0x3c02[73]]({},_0x1c6dx1b,_0x1c6dx28[_0x3c02[74]]);return db[_0x3c02[56]][_0x3c02[80]](_0x1c6dx1b)[_0x3c02[45]](handleEntityNotFound(_0x1c6dx15,null,_0x3c02[77]))[_0x3c02[45]](respondWithResult(_0x1c6dx15,null,_0x3c02[77]))[_0x3c02[75]](handleError(_0x1c6dx15,null,_0x3c02[77]))};exports[_0x3c02[81]]= function(_0x1c6dx28,_0x1c6dx15){return db[_0x3c02[56]][_0x3c02[81]](_0x1c6dx28[_0x3c02[82]],{})[_0x3c02[45]](respondWithResult(_0x1c6dx15,201,_0x3c02[81]))[_0x3c02[75]](handleError(_0x1c6dx15,null,_0x3c02[81]))};exports[_0x3c02[46]]= function(_0x1c6dx28,_0x1c6dx15){if(_0x1c6dx28[_0x3c02[82]][_0x3c02[78]]){delete _0x1c6dx28[_0x3c02[82]][_0x3c02[78]]};return db[_0x3c02[56]][_0x3c02[80]]({where:{id:_0x1c6dx28[_0x3c02[79]][_0x3c02[78]]}})[_0x3c02[45]](handleEntityNotFound(_0x1c6dx15,null,_0x3c02[46]))[_0x3c02[45]](saveUpdates(_0x1c6dx28[_0x3c02[82]],null,_0x3c02[46]))[_0x3c02[45]](respondWithResult(_0x1c6dx15,null,_0x3c02[46]))[_0x3c02[75]](handleError(_0x1c6dx15,null,_0x3c02[46]))};exports[_0x3c02[48]]= function(_0x1c6dx28,_0x1c6dx15){return db[_0x3c02[56]][_0x3c02[80]]({where:{id:_0x1c6dx28[_0x3c02[79]][_0x3c02[78]]}})[_0x3c02[45]](handleEntityNotFound(_0x1c6dx15,null,_0x3c02[48]))[_0x3c02[45]](removeEntity(_0x1c6dx15,null,_0x3c02[48]))[_0x3c02[75]](handleError(_0x1c6dx15,null,_0x3c02[48]))}
\ No newline at end of file
+var _0x1600=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x1600[0];var jsonpatch=require(_0x1600[1]);var rp=require(_0x1600[2]);var moment=require(_0x1600[3]);var BPromise=require(_0x1600[4]);var util=require(_0x1600[5]);var path=require(_0x1600[6]);var sox=require(_0x1600[7]);var ejs=require(_0x1600[8]);var fs=require(_0x1600[9]);var _=require(_0x1600[10]);var squel=require(_0x1600[11]);var crypto=require(_0x1600[12]);var jsforce=require(_0x1600[13]);var toCsv=require(_0x1600[14]);var qs=require(_0x1600[15]);var logger=require(_0x1600[17])(_0x1600[16]);var utils=require(_0x1600[18]);var config=require(_0x1600[19]);var db=require(_0x1600[21])[_0x1600[20]];function respondWithStatusCode(_0x4e49x15,_0x4e49x16,_0x4e49x17){_0x4e49x16= _0x4e49x16|| 204;return function(_0x4e49x18){if(_0x4e49x18){logger[_0x1600[24]](_0x1600[22],_0x4e49x17,_0x4e49x16,_0x1600[23]);logger[_0x1600[26]](_0x1600[25],_0x4e49x17,_0x4e49x16,_0x1600[23]);return _0x4e49x15[_0x1600[27]](_0x4e49x16)};return _0x4e49x15[_0x1600[29]](304)[_0x1600[28]]()}}function respondWithResult(_0x4e49x15,_0x4e49x16,_0x4e49x17){_0x4e49x16= _0x4e49x16|| 200;return function(_0x4e49x18){if(_0x4e49x18){logger[_0x1600[24]](_0x1600[22],_0x4e49x17,_0x4e49x16,_0x1600[30]);logger[_0x1600[26]](_0x1600[25],_0x4e49x17,_0x4e49x16,_0x1600[30],JSON[_0x1600[31]](_0x4e49x18));return _0x4e49x15[_0x1600[29]](_0x4e49x16)[_0x1600[32]](_0x4e49x18)};return _0x4e49x15[_0x1600[29]](304)[_0x1600[28]]()}}function respondWithFilteredResult(_0x4e49x15,_0x4e49x1b,_0x4e49x17){return function(_0x4e49x18){if(_0x4e49x18){var _0x4e49x1c=_0x4e49x18[_0x1600[33]],_0x4e49x1d=_0x4e49x1b[_0x1600[34]],_0x4e49x1e=_0x4e49x1b[_0x1600[34]]+ _0x4e49x1b[_0x1600[35]],_0x4e49x16;if(_0x4e49x1e>= _0x4e49x1c){_0x4e49x1e= _0x4e49x1c;_0x4e49x16= 200}else {_0x4e49x16= 206};_0x4e49x15[_0x1600[29]](_0x4e49x16);logger[_0x1600[24]](_0x1600[22],_0x4e49x17,_0x4e49x16,_0x1600[36]);logger[_0x1600[26]](_0x1600[25],_0x4e49x17,_0x4e49x16,_0x1600[30],JSON[_0x1600[31]](_0x4e49x18));return _0x4e49x15[_0x1600[40]](_0x1600[37],_0x4e49x1d+ _0x1600[38]+ _0x4e49x1e+ _0x1600[39]+ _0x4e49x1c)[_0x1600[32]](_0x4e49x18)};return null}}function patchUpdates(_0x4e49x20){return function(_0x4e49x18){try{jsonpatch[_0x1600[41]](_0x4e49x18,_0x4e49x20,true)}catch(err){return BPromise[_0x1600[42]](err)};return _0x4e49x18[_0x1600[43]]()}}function saveUpdates(_0x4e49x22,_0x4e49x16,_0x4e49x17){return function(_0x4e49x18){if(_0x4e49x18){return _0x4e49x18[_0x1600[46]](_0x4e49x22)[_0x1600[45]](function(_0x4e49x23){logger[_0x1600[24]](_0x1600[22],_0x4e49x17,_0x4e49x16,_0x1600[44]);logger[_0x1600[26]](_0x1600[25],_0x4e49x17,_0x4e49x16,_0x1600[44],JSON[_0x1600[31]](_0x4e49x18));return _0x4e49x23})};return null}}function removeEntity(_0x4e49x15,_0x4e49x16,_0x4e49x17){return function(_0x4e49x18){if(_0x4e49x18){return _0x4e49x18[_0x1600[48]]()[_0x1600[45]](function(){logger[_0x1600[24]](_0x1600[22],_0x4e49x17,_0x4e49x16,_0x1600[47]);logger[_0x1600[26]](_0x1600[25],_0x4e49x17,_0x4e49x16,_0x1600[47],JSON[_0x1600[31]](_0x4e49x18));_0x4e49x15[_0x1600[29]](204)[_0x1600[28]]()})}}}function handleEntityNotFound(_0x4e49x15,_0x4e49x16,_0x4e49x17){return function(_0x4e49x18){if(!_0x4e49x18){logger[_0x1600[50]](_0x1600[22],_0x4e49x17,404,_0x1600[49]);_0x4e49x15[_0x1600[29]](404)[_0x1600[28]]();return null};return _0x4e49x18}}function handleError(_0x4e49x15,_0x4e49x16,_0x4e49x17){_0x4e49x16= _0x4e49x16|| 500;return function(_0x4e49x27){logger[_0x1600[50]](_0x1600[22],_0x4e49x17,_0x4e49x16,JSON[_0x1600[31]](_0x4e49x27));delete _0x4e49x27[_0x1600[51]];_0x4e49x15[_0x1600[29]](_0x4e49x16)[_0x1600[52]](_0x4e49x27)}}exports[_0x1600[53]]= function(_0x4e49x28,_0x4e49x15){var _0x4e49x1b={},_0x4e49x29={};_0x4e49x29[_0x1600[54]]= _[_0x1600[57]](db[_0x1600[56]][_0x1600[55]]);_0x4e49x29[_0x1600[58]]= _[_0x1600[57]](_0x4e49x28[_0x1600[58]]);_0x4e49x29[_0x1600[59]]= _[_0x1600[60]](_0x4e49x29[_0x1600[54]],_0x4e49x29[_0x1600[58]]);_0x4e49x1b[_0x1600[61]]= _[_0x1600[60]](_0x4e49x29[_0x1600[54]],qs[_0x1600[62]](_0x4e49x28[_0x1600[58]][_0x1600[62]]));_0x4e49x1b[_0x1600[61]]= (_0x4e49x1b[_0x1600[61]][_0x1600[63]])?_0x4e49x1b[_0x1600[61]]:_0x4e49x29[_0x1600[54]];if(!_0x4e49x28[_0x1600[58]][_0x1600[65]](_0x1600[64])){_0x4e49x1b[_0x1600[35]]= qs[_0x1600[35]](_0x4e49x28[_0x1600[58]][_0x1600[35]]);_0x4e49x1b[_0x1600[34]]= qs[_0x1600[34]](_0x4e49x28[_0x1600[58]][_0x1600[34]])};_0x4e49x1b[_0x1600[66]]= qs[_0x1600[67]](_0x4e49x28[_0x1600[58]][_0x1600[67]]);_0x4e49x1b[_0x1600[68]]= qs[_0x1600[59]](_[_0x1600[69]](_0x4e49x28[_0x1600[58]],_0x4e49x29[_0x1600[59]]));if(_0x4e49x28[_0x1600[58]][_0x1600[70]]){_0x4e49x1b[_0x1600[68]]= _[_0x1600[73]](_0x4e49x1b[_0x1600[68]],{$or:_[_0x1600[72]](_0x4e49x1b[_0x1600[61]],function(_0x4e49x2a){var _0x4e49x2b={};_0x4e49x2b[_0x4e49x2a]= {$like:_0x1600[71]+ _0x4e49x28[_0x1600[58]][_0x1600[70]]+ _0x1600[71]};return _0x4e49x2b})})};_0x4e49x1b= _[_0x1600[73]]({},_0x4e49x1b,_0x4e49x28[_0x1600[74]]);return db[_0x1600[56]][_0x1600[76]](_0x4e49x1b)[_0x1600[45]](respondWithFilteredResult(_0x4e49x15,_0x4e49x1b,_0x1600[53]))[_0x1600[75]](handleError(_0x4e49x15,null,_0x1600[53]))};exports[_0x1600[77]]= function(_0x4e49x28,_0x4e49x15){var _0x4e49x1b={raw:true,where:{id:_0x4e49x28[_0x1600[79]][_0x1600[78]]}},_0x4e49x29={};_0x4e49x29[_0x1600[54]]= _[_0x1600[57]](db[_0x1600[56]][_0x1600[55]]);_0x4e49x29[_0x1600[58]]= _[_0x1600[57]](_0x4e49x28[_0x1600[58]]);_0x4e49x29[_0x1600[59]]= _[_0x1600[60]](_0x4e49x29[_0x1600[54]],_0x4e49x29[_0x1600[58]]);_0x4e49x1b[_0x1600[61]]= _[_0x1600[60]](_0x4e49x29[_0x1600[54]],qs[_0x1600[62]](_0x4e49x28[_0x1600[58]][_0x1600[62]]));_0x4e49x1b[_0x1600[61]]= (_0x4e49x1b[_0x1600[61]][_0x1600[63]])?_0x4e49x1b[_0x1600[61]]:_0x4e49x29[_0x1600[54]];_0x4e49x1b= _[_0x1600[73]]({},_0x4e49x1b,_0x4e49x28[_0x1600[74]]);return db[_0x1600[56]][_0x1600[80]](_0x4e49x1b)[_0x1600[45]](handleEntityNotFound(_0x4e49x15,null,_0x1600[77]))[_0x1600[45]](respondWithResult(_0x4e49x15,null,_0x1600[77]))[_0x1600[75]](handleError(_0x4e49x15,null,_0x1600[77]))};exports[_0x1600[81]]= function(_0x4e49x28,_0x4e49x15){return db[_0x1600[56]][_0x1600[81]](_0x4e49x28[_0x1600[82]],{})[_0x1600[45]](respondWithResult(_0x4e49x15,201,_0x1600[81]))[_0x1600[75]](handleError(_0x4e49x15,null,_0x1600[81]))};exports[_0x1600[46]]= function(_0x4e49x28,_0x4e49x15){if(_0x4e49x28[_0x1600[82]][_0x1600[78]]){delete _0x4e49x28[_0x1600[82]][_0x1600[78]]};return db[_0x1600[56]][_0x1600[80]]({where:{id:_0x4e49x28[_0x1600[79]][_0x1600[78]]}})[_0x1600[45]](handleEntityNotFound(_0x4e49x15,null,_0x1600[46]))[_0x1600[45]](saveUpdates(_0x4e49x28[_0x1600[82]],null,_0x1600[46]))[_0x1600[45]](respondWithResult(_0x4e49x15,null,_0x1600[46]))[_0x1600[75]](handleError(_0x4e49x15,null,_0x1600[46]))};exports[_0x1600[48]]= function(_0x4e49x28,_0x4e49x15){return db[_0x1600[56]][_0x1600[80]]({where:{id:_0x4e49x28[_0x1600[79]][_0x1600[78]]}})[_0x1600[45]](handleEntityNotFound(_0x4e49x15,null,_0x1600[48]))[_0x1600[45]](removeEntity(_0x4e49x15,null,_0x1600[48]))[_0x1600[75]](handleError(_0x4e49x15,null,_0x1600[48]))}
\ No newline at end of file
index bedb7ed..6f89358 100644 (file)
@@ -1 +1 @@
-var _0x77cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x77cc[0];var _=require(_0x77cc[1]);var util=require(_0x77cc[2]);var logger=require(_0x77cc[4])(_0x77cc[3]);var attributes=require(_0x77cc[5]);module[_0x77cc[6]]= function(_0xc82fx5,_0xc82fx6){return _0xc82fx5[_0x77cc[9]](_0x77cc[7],attributes,{tableName:_0x77cc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4902=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x4902[0];var _=require(_0x4902[1]);var util=require(_0x4902[2]);var logger=require(_0x4902[4])(_0x4902[3]);var attributes=require(_0x4902[5]);module[_0x4902[6]]= function(_0x9b6dx5,_0x9b6dx6){return _0x9b6dx5[_0x4902[9]](_0x4902[7],attributes,{tableName:_0x4902[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 09dae32..e5981a8 100644 (file)
@@ -1 +1 @@
-var _0x41a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x41a6[0];var _=require(_0x41a6[1]);var util=require(_0x41a6[2]);var moment=require(_0x41a6[3]);var BPromise=require(_0x41a6[4]);var db=require(_0x41a6[6])[_0x41a6[5]];var utils=require(_0x41a6[7]);var logger=require(_0x41a6[9])(_0x41a6[8]);var jayson=require(_0x41a6[10]);var client=jayson[_0x41a6[12]][_0x41a6[11]]({port:9002});function respondWithRpcPromise(_0xe720xb,_0xe720xc,_0xe720xd){return  new BPromise(function(_0xe720xe,_0xe720xf){return client[_0x41a6[25]](_0xe720xb,_0xe720xd)[_0x41a6[24]](function(_0xe720x11){logger[_0x41a6[17]](_0x41a6[13],_0xe720xc,_0x41a6[16]);logger[_0x41a6[20]](_0x41a6[18],_0xe720xc,_0x41a6[16],JSON[_0x41a6[19]](_0xe720x11));if(_0xe720x11[_0x41a6[14]]){if(_0xe720x11[_0x41a6[14]][_0x41a6[21]]=== 500){logger[_0x41a6[14]](_0x41a6[13],_0xe720xc,_0xe720x11[_0x41a6[14]][_0x41a6[22]]);return _0xe720xf(_0xe720x11[_0x41a6[14]][_0x41a6[22]])};logger[_0x41a6[14]](_0x41a6[13],_0xe720xc,_0xe720x11[_0x41a6[14]][_0x41a6[22]]);return _0xe720xe(_0xe720x11[_0x41a6[14]][_0x41a6[22]])}else {logger[_0x41a6[17]](_0x41a6[13],_0xe720xc,_0x41a6[16]);_0xe720xe(_0xe720x11[_0x41a6[23]][_0x41a6[22]])}})[_0x41a6[15]](function(_0xe720x10){logger[_0x41a6[14]](_0x41a6[13],_0xe720xc,_0xe720x10);_0xe720xf(_0xe720x10)})})}
\ No newline at end of file
+var _0xd282=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd282[0];var _=require(_0xd282[1]);var util=require(_0xd282[2]);var moment=require(_0xd282[3]);var BPromise=require(_0xd282[4]);var db=require(_0xd282[6])[_0xd282[5]];var utils=require(_0xd282[7]);var logger=require(_0xd282[9])(_0xd282[8]);var jayson=require(_0xd282[10]);var client=jayson[_0xd282[12]][_0xd282[11]]({port:9002});function respondWithRpcPromise(_0x3c82xb,_0x3c82xc,_0x3c82xd){return  new BPromise(function(_0x3c82xe,_0x3c82xf){return client[_0xd282[25]](_0x3c82xb,_0x3c82xd)[_0xd282[24]](function(_0x3c82x11){logger[_0xd282[17]](_0xd282[13],_0x3c82xc,_0xd282[16]);logger[_0xd282[20]](_0xd282[18],_0x3c82xc,_0xd282[16],JSON[_0xd282[19]](_0x3c82x11));if(_0x3c82x11[_0xd282[14]]){if(_0x3c82x11[_0xd282[14]][_0xd282[21]]=== 500){logger[_0xd282[14]](_0xd282[13],_0x3c82xc,_0x3c82x11[_0xd282[14]][_0xd282[22]]);return _0x3c82xf(_0x3c82x11[_0xd282[14]][_0xd282[22]])};logger[_0xd282[14]](_0xd282[13],_0x3c82xc,_0x3c82x11[_0xd282[14]][_0xd282[22]]);return _0x3c82xe(_0x3c82x11[_0xd282[14]][_0xd282[22]])}else {logger[_0xd282[17]](_0xd282[13],_0x3c82xc,_0xd282[16]);_0x3c82xe(_0x3c82x11[_0xd282[23]][_0xd282[22]])}})[_0xd282[15]](function(_0x3c82x10){logger[_0xd282[14]](_0xd282[13],_0x3c82xc,_0x3c82x10);_0x3c82xf(_0x3c82x10)})})}
\ No newline at end of file
index 9ac96a9..2808375 100644 (file)
@@ -1 +1 @@
-var _0xaebe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xaebe[0];var multer=require(_0xaebe[1]);var util=require(_0xaebe[2]);var path=require(_0xaebe[3]);var express=require(_0xaebe[4]);var router=express.Router();var auth=require(_0xaebe[5]);var config=require(_0xaebe[6]);var controller=require(_0xaebe[7]);router[_0xaebe[11]](_0xaebe[8],auth[_0xaebe[9]](),controller[_0xaebe[10]]);router[_0xaebe[11]](_0xaebe[12],auth[_0xaebe[9]](),controller[_0xaebe[13]]);router[_0xaebe[15]](_0xaebe[8],auth[_0xaebe[9]](),controller[_0xaebe[14]]);router[_0xaebe[17]](_0xaebe[12],auth[_0xaebe[9]](),controller[_0xaebe[16]]);router[_0xaebe[19]](_0xaebe[12],auth[_0xaebe[9]](),controller[_0xaebe[18]]);module[_0xaebe[20]]= router
\ No newline at end of file
+var _0x113c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x113c[0];var multer=require(_0x113c[1]);var util=require(_0x113c[2]);var path=require(_0x113c[3]);var express=require(_0x113c[4]);var router=express.Router();var auth=require(_0x113c[5]);var config=require(_0x113c[6]);var controller=require(_0x113c[7]);router[_0x113c[11]](_0x113c[8],auth[_0x113c[9]](),controller[_0x113c[10]]);router[_0x113c[11]](_0x113c[12],auth[_0x113c[9]](),controller[_0x113c[13]]);router[_0x113c[15]](_0x113c[8],auth[_0x113c[9]](),controller[_0x113c[14]]);router[_0x113c[17]](_0x113c[12],auth[_0x113c[9]](),controller[_0x113c[16]]);router[_0x113c[19]](_0x113c[12],auth[_0x113c[9]](),controller[_0x113c[18]]);module[_0x113c[20]]= router
\ No newline at end of file
index a5ed35c..b4000de 100644 (file)
@@ -1 +1 @@
-var _0xf6d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x73\x74\x61\x72\x74\x65\x64","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x69\x6E\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x44\x41\x54\x45","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x53\x54\x52\x49\x4E\x47"];_0xf6d2[0];var moment=require(_0xf6d2[1]);var Sequelize=require(_0xf6d2[2]);module[_0xf6d2[3]]= {sourceid:{type:Sequelize[_0xf6d2[4]]},session_id:{type:Sequelize[_0xf6d2[4]],primaryKey:true,autoIncrement:true},status:{type:Sequelize.ENUM(_0xf6d2[5],_0xf6d2[6],_0xf6d2[7])},last_question_id:{type:Sequelize[_0xf6d2[4]]},completedAt:{type:Sequelize[_0xf6d2[8]],get:function(){return this[_0xf6d2[10]](_0xf6d2[9])?moment(this[_0xf6d2[10]](_0xf6d2[9]))[_0xf6d2[12]](_0xf6d2[11]):_0xf6d2[13]}},createdAt:{type:Sequelize[_0xf6d2[8]],get:function(){return moment(this[_0xf6d2[10]](_0xf6d2[14]))[_0xf6d2[12]](_0xf6d2[11])}},queue:{type:Sequelize[_0xf6d2[15]]},calleridname:{type:Sequelize[_0xf6d2[15]]},calleridnum:{type:Sequelize[_0xf6d2[15]]},membername:{type:Sequelize[_0xf6d2[15]]}}
\ No newline at end of file
+var _0xfea4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x73\x74\x61\x72\x74\x65\x64","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x69\x6E\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x44\x41\x54\x45","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x53\x54\x52\x49\x4E\x47"];_0xfea4[0];var moment=require(_0xfea4[1]);var Sequelize=require(_0xfea4[2]);module[_0xfea4[3]]= {sourceid:{type:Sequelize[_0xfea4[4]]},session_id:{type:Sequelize[_0xfea4[4]],primaryKey:true,autoIncrement:true},status:{type:Sequelize.ENUM(_0xfea4[5],_0xfea4[6],_0xfea4[7])},last_question_id:{type:Sequelize[_0xfea4[4]]},completedAt:{type:Sequelize[_0xfea4[8]],get:function(){return this[_0xfea4[10]](_0xfea4[9])?moment(this[_0xfea4[10]](_0xfea4[9]))[_0xfea4[12]](_0xfea4[11]):_0xfea4[13]}},createdAt:{type:Sequelize[_0xfea4[8]],get:function(){return moment(this[_0xfea4[10]](_0xfea4[14]))[_0xfea4[12]](_0xfea4[11])}},queue:{type:Sequelize[_0xfea4[15]]},calleridname:{type:Sequelize[_0xfea4[15]]},calleridnum:{type:Sequelize[_0xfea4[15]]},membername:{type:Sequelize[_0xfea4[15]]}}
\ No newline at end of file
index eb0545c..4492755 100644 (file)
@@ -1 +1 @@
-var _0x88c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x88c9[0];var jsonpatch=require(_0x88c9[1]);var rp=require(_0x88c9[2]);var moment=require(_0x88c9[3]);var BPromise=require(_0x88c9[4]);var util=require(_0x88c9[5]);var path=require(_0x88c9[6]);var sox=require(_0x88c9[7]);var ejs=require(_0x88c9[8]);var fs=require(_0x88c9[9]);var _=require(_0x88c9[10]);var squel=require(_0x88c9[11]);var crypto=require(_0x88c9[12]);var jsforce=require(_0x88c9[13]);var toCsv=require(_0x88c9[14]);var qs=require(_0x88c9[15]);var logger=require(_0x88c9[17])(_0x88c9[16]);var utils=require(_0x88c9[18]);var config=require(_0x88c9[19]);var db=require(_0x88c9[21])[_0x88c9[20]];function respondWithStatusCode(_0x1b62x15,_0x1b62x16,_0x1b62x17){_0x1b62x16= _0x1b62x16|| 204;return function(_0x1b62x18){if(_0x1b62x18){logger[_0x88c9[24]](_0x88c9[22],_0x1b62x17,_0x1b62x16,_0x88c9[23]);logger[_0x88c9[26]](_0x88c9[25],_0x1b62x17,_0x1b62x16,_0x88c9[23]);return _0x1b62x15[_0x88c9[27]](_0x1b62x16)};return _0x1b62x15[_0x88c9[29]](304)[_0x88c9[28]]()}}function respondWithResult(_0x1b62x15,_0x1b62x16,_0x1b62x17){_0x1b62x16= _0x1b62x16|| 200;return function(_0x1b62x18){if(_0x1b62x18){logger[_0x88c9[24]](_0x88c9[22],_0x1b62x17,_0x1b62x16,_0x88c9[30]);logger[_0x88c9[26]](_0x88c9[25],_0x1b62x17,_0x1b62x16,_0x88c9[30],JSON[_0x88c9[31]](_0x1b62x18));return _0x1b62x15[_0x88c9[29]](_0x1b62x16)[_0x88c9[32]](_0x1b62x18)};return _0x1b62x15[_0x88c9[29]](304)[_0x88c9[28]]()}}function respondWithFilteredResult(_0x1b62x15,_0x1b62x1b,_0x1b62x17){return function(_0x1b62x18){if(_0x1b62x18){var _0x1b62x1c=_0x1b62x18[_0x88c9[33]],_0x1b62x1d=_0x1b62x1b[_0x88c9[34]],_0x1b62x1e=_0x1b62x1b[_0x88c9[34]]+ _0x1b62x1b[_0x88c9[35]],_0x1b62x16;if(_0x1b62x1e>= _0x1b62x1c){_0x1b62x1e= _0x1b62x1c;_0x1b62x16= 200}else {_0x1b62x16= 206};_0x1b62x15[_0x88c9[29]](_0x1b62x16);logger[_0x88c9[24]](_0x88c9[22],_0x1b62x17,_0x1b62x16,_0x88c9[36]);logger[_0x88c9[26]](_0x88c9[25],_0x1b62x17,_0x1b62x16,_0x88c9[30],JSON[_0x88c9[31]](_0x1b62x18));return _0x1b62x15[_0x88c9[40]](_0x88c9[37],_0x1b62x1d+ _0x88c9[38]+ _0x1b62x1e+ _0x88c9[39]+ _0x1b62x1c)[_0x88c9[32]](_0x1b62x18)};return null}}function patchUpdates(_0x1b62x20){return function(_0x1b62x18){try{jsonpatch[_0x88c9[41]](_0x1b62x18,_0x1b62x20,true)}catch(err){return BPromise[_0x88c9[42]](err)};return _0x1b62x18[_0x88c9[43]]()}}function saveUpdates(_0x1b62x22,_0x1b62x16,_0x1b62x17){return function(_0x1b62x18){if(_0x1b62x18){return _0x1b62x18[_0x88c9[46]](_0x1b62x22)[_0x88c9[45]](function(_0x1b62x23){logger[_0x88c9[24]](_0x88c9[22],_0x1b62x17,_0x1b62x16,_0x88c9[44]);logger[_0x88c9[26]](_0x88c9[25],_0x1b62x17,_0x1b62x16,_0x88c9[44],JSON[_0x88c9[31]](_0x1b62x18));return _0x1b62x23})};return null}}function removeEntity(_0x1b62x15,_0x1b62x16,_0x1b62x17){return function(_0x1b62x18){if(_0x1b62x18){return _0x1b62x18[_0x88c9[48]]()[_0x88c9[45]](function(){logger[_0x88c9[24]](_0x88c9[22],_0x1b62x17,_0x1b62x16,_0x88c9[47]);logger[_0x88c9[26]](_0x88c9[25],_0x1b62x17,_0x1b62x16,_0x88c9[47],JSON[_0x88c9[31]](_0x1b62x18));_0x1b62x15[_0x88c9[29]](204)[_0x88c9[28]]()})}}}function handleEntityNotFound(_0x1b62x15,_0x1b62x16,_0x1b62x17){return function(_0x1b62x18){if(!_0x1b62x18){logger[_0x88c9[50]](_0x88c9[22],_0x1b62x17,404,_0x88c9[49]);_0x1b62x15[_0x88c9[29]](404)[_0x88c9[28]]();return null};return _0x1b62x18}}function handleError(_0x1b62x15,_0x1b62x16,_0x1b62x17){_0x1b62x16= _0x1b62x16|| 500;return function(_0x1b62x27){logger[_0x88c9[50]](_0x88c9[22],_0x1b62x17,_0x1b62x16,JSON[_0x88c9[31]](_0x1b62x27));delete _0x1b62x27[_0x88c9[51]];_0x1b62x15[_0x88c9[29]](_0x1b62x16)[_0x88c9[52]](_0x1b62x27)}}exports[_0x88c9[53]]= function(_0x1b62x28,_0x1b62x15){var _0x1b62x1b={},_0x1b62x29={};_0x1b62x29[_0x88c9[54]]= _[_0x88c9[57]](db[_0x88c9[56]][_0x88c9[55]]);_0x1b62x29[_0x88c9[58]]= _[_0x88c9[57]](_0x1b62x28[_0x88c9[58]]);_0x1b62x29[_0x88c9[59]]= _[_0x88c9[60]](_0x1b62x29[_0x88c9[54]],_0x1b62x29[_0x88c9[58]]);_0x1b62x1b[_0x88c9[61]]= _[_0x88c9[60]](_0x1b62x29[_0x88c9[54]],qs[_0x88c9[62]](_0x1b62x28[_0x88c9[58]][_0x88c9[62]]));_0x1b62x1b[_0x88c9[61]]= (_0x1b62x1b[_0x88c9[61]][_0x88c9[63]])?_0x1b62x1b[_0x88c9[61]]:_0x1b62x29[_0x88c9[54]];if(!_0x1b62x28[_0x88c9[58]][_0x88c9[65]](_0x88c9[64])){_0x1b62x1b[_0x88c9[35]]= qs[_0x88c9[35]](_0x1b62x28[_0x88c9[58]][_0x88c9[35]]);_0x1b62x1b[_0x88c9[34]]= qs[_0x88c9[34]](_0x1b62x28[_0x88c9[58]][_0x88c9[34]])};_0x1b62x1b[_0x88c9[66]]= qs[_0x88c9[67]](_0x1b62x28[_0x88c9[58]][_0x88c9[67]]);_0x1b62x1b[_0x88c9[68]]= qs[_0x88c9[59]](_[_0x88c9[69]](_0x1b62x28[_0x88c9[58]],_0x1b62x29[_0x88c9[59]]));if(_0x1b62x28[_0x88c9[58]][_0x88c9[70]]){_0x1b62x1b[_0x88c9[68]]= _[_0x88c9[73]](_0x1b62x1b[_0x88c9[68]],{$or:_[_0x88c9[72]](_0x1b62x1b[_0x88c9[61]],function(_0x1b62x2a){var _0x1b62x2b={};_0x1b62x2b[_0x1b62x2a]= {$like:_0x88c9[71]+ _0x1b62x28[_0x88c9[58]][_0x88c9[70]]+ _0x88c9[71]};return _0x1b62x2b})})};_0x1b62x1b= _[_0x88c9[73]]({},_0x1b62x1b,_0x1b62x28[_0x88c9[74]]);return db[_0x88c9[56]][_0x88c9[76]](_0x1b62x1b)[_0x88c9[45]](respondWithFilteredResult(_0x1b62x15,_0x1b62x1b,_0x88c9[53]))[_0x88c9[75]](handleError(_0x1b62x15,null,_0x88c9[53]))};exports[_0x88c9[77]]= function(_0x1b62x28,_0x1b62x15){var _0x1b62x1b={raw:true,where:{id:_0x1b62x28[_0x88c9[79]][_0x88c9[78]]}},_0x1b62x29={};_0x1b62x29[_0x88c9[54]]= _[_0x88c9[57]](db[_0x88c9[56]][_0x88c9[55]]);_0x1b62x29[_0x88c9[58]]= _[_0x88c9[57]](_0x1b62x28[_0x88c9[58]]);_0x1b62x29[_0x88c9[59]]= _[_0x88c9[60]](_0x1b62x29[_0x88c9[54]],_0x1b62x29[_0x88c9[58]]);_0x1b62x1b[_0x88c9[61]]= _[_0x88c9[60]](_0x1b62x29[_0x88c9[54]],qs[_0x88c9[62]](_0x1b62x28[_0x88c9[58]][_0x88c9[62]]));_0x1b62x1b[_0x88c9[61]]= (_0x1b62x1b[_0x88c9[61]][_0x88c9[63]])?_0x1b62x1b[_0x88c9[61]]:_0x1b62x29[_0x88c9[54]];_0x1b62x1b= _[_0x88c9[73]]({},_0x1b62x1b,_0x1b62x28[_0x88c9[74]]);return db[_0x88c9[56]][_0x88c9[80]](_0x1b62x1b)[_0x88c9[45]](handleEntityNotFound(_0x1b62x15,null,_0x88c9[77]))[_0x88c9[45]](respondWithResult(_0x1b62x15,null,_0x88c9[77]))[_0x88c9[75]](handleError(_0x1b62x15,null,_0x88c9[77]))};exports[_0x88c9[81]]= function(_0x1b62x28,_0x1b62x15){return db[_0x88c9[56]][_0x88c9[81]](_0x1b62x28[_0x88c9[82]],{})[_0x88c9[45]](respondWithResult(_0x1b62x15,201,_0x88c9[81]))[_0x88c9[75]](handleError(_0x1b62x15,null,_0x88c9[81]))};exports[_0x88c9[46]]= function(_0x1b62x28,_0x1b62x15){if(_0x1b62x28[_0x88c9[82]][_0x88c9[78]]){delete _0x1b62x28[_0x88c9[82]][_0x88c9[78]]};return db[_0x88c9[56]][_0x88c9[80]]({where:{id:_0x1b62x28[_0x88c9[79]][_0x88c9[78]]}})[_0x88c9[45]](handleEntityNotFound(_0x1b62x15,null,_0x88c9[46]))[_0x88c9[45]](saveUpdates(_0x1b62x28[_0x88c9[82]],null,_0x88c9[46]))[_0x88c9[45]](respondWithResult(_0x1b62x15,null,_0x88c9[46]))[_0x88c9[75]](handleError(_0x1b62x15,null,_0x88c9[46]))};exports[_0x88c9[48]]= function(_0x1b62x28,_0x1b62x15){return db[_0x88c9[56]][_0x88c9[80]]({where:{id:_0x1b62x28[_0x88c9[79]][_0x88c9[78]]}})[_0x88c9[45]](handleEntityNotFound(_0x1b62x15,null,_0x88c9[48]))[_0x88c9[45]](removeEntity(_0x1b62x15,null,_0x88c9[48]))[_0x88c9[75]](handleError(_0x1b62x15,null,_0x88c9[48]))}
\ No newline at end of file
+var _0x238c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x238c[0];var jsonpatch=require(_0x238c[1]);var rp=require(_0x238c[2]);var moment=require(_0x238c[3]);var BPromise=require(_0x238c[4]);var util=require(_0x238c[5]);var path=require(_0x238c[6]);var sox=require(_0x238c[7]);var ejs=require(_0x238c[8]);var fs=require(_0x238c[9]);var _=require(_0x238c[10]);var squel=require(_0x238c[11]);var crypto=require(_0x238c[12]);var jsforce=require(_0x238c[13]);var toCsv=require(_0x238c[14]);var qs=require(_0x238c[15]);var logger=require(_0x238c[17])(_0x238c[16]);var utils=require(_0x238c[18]);var config=require(_0x238c[19]);var db=require(_0x238c[21])[_0x238c[20]];function respondWithStatusCode(_0xbc71x15,_0xbc71x16,_0xbc71x17){_0xbc71x16= _0xbc71x16|| 204;return function(_0xbc71x18){if(_0xbc71x18){logger[_0x238c[24]](_0x238c[22],_0xbc71x17,_0xbc71x16,_0x238c[23]);logger[_0x238c[26]](_0x238c[25],_0xbc71x17,_0xbc71x16,_0x238c[23]);return _0xbc71x15[_0x238c[27]](_0xbc71x16)};return _0xbc71x15[_0x238c[29]](304)[_0x238c[28]]()}}function respondWithResult(_0xbc71x15,_0xbc71x16,_0xbc71x17){_0xbc71x16= _0xbc71x16|| 200;return function(_0xbc71x18){if(_0xbc71x18){logger[_0x238c[24]](_0x238c[22],_0xbc71x17,_0xbc71x16,_0x238c[30]);logger[_0x238c[26]](_0x238c[25],_0xbc71x17,_0xbc71x16,_0x238c[30],JSON[_0x238c[31]](_0xbc71x18));return _0xbc71x15[_0x238c[29]](_0xbc71x16)[_0x238c[32]](_0xbc71x18)};return _0xbc71x15[_0x238c[29]](304)[_0x238c[28]]()}}function respondWithFilteredResult(_0xbc71x15,_0xbc71x1b,_0xbc71x17){return function(_0xbc71x18){if(_0xbc71x18){var _0xbc71x1c=_0xbc71x18[_0x238c[33]],_0xbc71x1d=_0xbc71x1b[_0x238c[34]],_0xbc71x1e=_0xbc71x1b[_0x238c[34]]+ _0xbc71x1b[_0x238c[35]],_0xbc71x16;if(_0xbc71x1e>= _0xbc71x1c){_0xbc71x1e= _0xbc71x1c;_0xbc71x16= 200}else {_0xbc71x16= 206};_0xbc71x15[_0x238c[29]](_0xbc71x16);logger[_0x238c[24]](_0x238c[22],_0xbc71x17,_0xbc71x16,_0x238c[36]);logger[_0x238c[26]](_0x238c[25],_0xbc71x17,_0xbc71x16,_0x238c[30],JSON[_0x238c[31]](_0xbc71x18));return _0xbc71x15[_0x238c[40]](_0x238c[37],_0xbc71x1d+ _0x238c[38]+ _0xbc71x1e+ _0x238c[39]+ _0xbc71x1c)[_0x238c[32]](_0xbc71x18)};return null}}function patchUpdates(_0xbc71x20){return function(_0xbc71x18){try{jsonpatch[_0x238c[41]](_0xbc71x18,_0xbc71x20,true)}catch(err){return BPromise[_0x238c[42]](err)};return _0xbc71x18[_0x238c[43]]()}}function saveUpdates(_0xbc71x22,_0xbc71x16,_0xbc71x17){return function(_0xbc71x18){if(_0xbc71x18){return _0xbc71x18[_0x238c[46]](_0xbc71x22)[_0x238c[45]](function(_0xbc71x23){logger[_0x238c[24]](_0x238c[22],_0xbc71x17,_0xbc71x16,_0x238c[44]);logger[_0x238c[26]](_0x238c[25],_0xbc71x17,_0xbc71x16,_0x238c[44],JSON[_0x238c[31]](_0xbc71x18));return _0xbc71x23})};return null}}function removeEntity(_0xbc71x15,_0xbc71x16,_0xbc71x17){return function(_0xbc71x18){if(_0xbc71x18){return _0xbc71x18[_0x238c[48]]()[_0x238c[45]](function(){logger[_0x238c[24]](_0x238c[22],_0xbc71x17,_0xbc71x16,_0x238c[47]);logger[_0x238c[26]](_0x238c[25],_0xbc71x17,_0xbc71x16,_0x238c[47],JSON[_0x238c[31]](_0xbc71x18));_0xbc71x15[_0x238c[29]](204)[_0x238c[28]]()})}}}function handleEntityNotFound(_0xbc71x15,_0xbc71x16,_0xbc71x17){return function(_0xbc71x18){if(!_0xbc71x18){logger[_0x238c[50]](_0x238c[22],_0xbc71x17,404,_0x238c[49]);_0xbc71x15[_0x238c[29]](404)[_0x238c[28]]();return null};return _0xbc71x18}}function handleError(_0xbc71x15,_0xbc71x16,_0xbc71x17){_0xbc71x16= _0xbc71x16|| 500;return function(_0xbc71x27){logger[_0x238c[50]](_0x238c[22],_0xbc71x17,_0xbc71x16,JSON[_0x238c[31]](_0xbc71x27));delete _0xbc71x27[_0x238c[51]];_0xbc71x15[_0x238c[29]](_0xbc71x16)[_0x238c[52]](_0xbc71x27)}}exports[_0x238c[53]]= function(_0xbc71x28,_0xbc71x15){var _0xbc71x1b={},_0xbc71x29={};_0xbc71x29[_0x238c[54]]= _[_0x238c[57]](db[_0x238c[56]][_0x238c[55]]);_0xbc71x29[_0x238c[58]]= _[_0x238c[57]](_0xbc71x28[_0x238c[58]]);_0xbc71x29[_0x238c[59]]= _[_0x238c[60]](_0xbc71x29[_0x238c[54]],_0xbc71x29[_0x238c[58]]);_0xbc71x1b[_0x238c[61]]= _[_0x238c[60]](_0xbc71x29[_0x238c[54]],qs[_0x238c[62]](_0xbc71x28[_0x238c[58]][_0x238c[62]]));_0xbc71x1b[_0x238c[61]]= (_0xbc71x1b[_0x238c[61]][_0x238c[63]])?_0xbc71x1b[_0x238c[61]]:_0xbc71x29[_0x238c[54]];if(!_0xbc71x28[_0x238c[58]][_0x238c[65]](_0x238c[64])){_0xbc71x1b[_0x238c[35]]= qs[_0x238c[35]](_0xbc71x28[_0x238c[58]][_0x238c[35]]);_0xbc71x1b[_0x238c[34]]= qs[_0x238c[34]](_0xbc71x28[_0x238c[58]][_0x238c[34]])};_0xbc71x1b[_0x238c[66]]= qs[_0x238c[67]](_0xbc71x28[_0x238c[58]][_0x238c[67]]);_0xbc71x1b[_0x238c[68]]= qs[_0x238c[59]](_[_0x238c[69]](_0xbc71x28[_0x238c[58]],_0xbc71x29[_0x238c[59]]));if(_0xbc71x28[_0x238c[58]][_0x238c[70]]){_0xbc71x1b[_0x238c[68]]= _[_0x238c[73]](_0xbc71x1b[_0x238c[68]],{$or:_[_0x238c[72]](_0xbc71x1b[_0x238c[61]],function(_0xbc71x2a){var _0xbc71x2b={};_0xbc71x2b[_0xbc71x2a]= {$like:_0x238c[71]+ _0xbc71x28[_0x238c[58]][_0x238c[70]]+ _0x238c[71]};return _0xbc71x2b})})};_0xbc71x1b= _[_0x238c[73]]({},_0xbc71x1b,_0xbc71x28[_0x238c[74]]);return db[_0x238c[56]][_0x238c[76]](_0xbc71x1b)[_0x238c[45]](respondWithFilteredResult(_0xbc71x15,_0xbc71x1b,_0x238c[53]))[_0x238c[75]](handleError(_0xbc71x15,null,_0x238c[53]))};exports[_0x238c[77]]= function(_0xbc71x28,_0xbc71x15){var _0xbc71x1b={raw:true,where:{id:_0xbc71x28[_0x238c[79]][_0x238c[78]]}},_0xbc71x29={};_0xbc71x29[_0x238c[54]]= _[_0x238c[57]](db[_0x238c[56]][_0x238c[55]]);_0xbc71x29[_0x238c[58]]= _[_0x238c[57]](_0xbc71x28[_0x238c[58]]);_0xbc71x29[_0x238c[59]]= _[_0x238c[60]](_0xbc71x29[_0x238c[54]],_0xbc71x29[_0x238c[58]]);_0xbc71x1b[_0x238c[61]]= _[_0x238c[60]](_0xbc71x29[_0x238c[54]],qs[_0x238c[62]](_0xbc71x28[_0x238c[58]][_0x238c[62]]));_0xbc71x1b[_0x238c[61]]= (_0xbc71x1b[_0x238c[61]][_0x238c[63]])?_0xbc71x1b[_0x238c[61]]:_0xbc71x29[_0x238c[54]];_0xbc71x1b= _[_0x238c[73]]({},_0xbc71x1b,_0xbc71x28[_0x238c[74]]);return db[_0x238c[56]][_0x238c[80]](_0xbc71x1b)[_0x238c[45]](handleEntityNotFound(_0xbc71x15,null,_0x238c[77]))[_0x238c[45]](respondWithResult(_0xbc71x15,null,_0x238c[77]))[_0x238c[75]](handleError(_0xbc71x15,null,_0x238c[77]))};exports[_0x238c[81]]= function(_0xbc71x28,_0xbc71x15){return db[_0x238c[56]][_0x238c[81]](_0xbc71x28[_0x238c[82]],{})[_0x238c[45]](respondWithResult(_0xbc71x15,201,_0x238c[81]))[_0x238c[75]](handleError(_0xbc71x15,null,_0x238c[81]))};exports[_0x238c[46]]= function(_0xbc71x28,_0xbc71x15){if(_0xbc71x28[_0x238c[82]][_0x238c[78]]){delete _0xbc71x28[_0x238c[82]][_0x238c[78]]};return db[_0x238c[56]][_0x238c[80]]({where:{id:_0xbc71x28[_0x238c[79]][_0x238c[78]]}})[_0x238c[45]](handleEntityNotFound(_0xbc71x15,null,_0x238c[46]))[_0x238c[45]](saveUpdates(_0xbc71x28[_0x238c[82]],null,_0x238c[46]))[_0x238c[45]](respondWithResult(_0xbc71x15,null,_0x238c[46]))[_0x238c[75]](handleError(_0xbc71x15,null,_0x238c[46]))};exports[_0x238c[48]]= function(_0xbc71x28,_0xbc71x15){return db[_0x238c[56]][_0x238c[80]]({where:{id:_0xbc71x28[_0x238c[79]][_0x238c[78]]}})[_0x238c[45]](handleEntityNotFound(_0xbc71x15,null,_0x238c[48]))[_0x238c[45]](removeEntity(_0xbc71x15,null,_0x238c[48]))[_0x238c[75]](handleError(_0xbc71x15,null,_0x238c[48]))}
\ No newline at end of file
index 7e8b5c4..5c47e28 100644 (file)
@@ -1 +1 @@
-var _0xb367=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xb367[0];var _=require(_0xb367[1]);var util=require(_0xb367[2]);var logger=require(_0xb367[4])(_0xb367[3]);var attributes=require(_0xb367[5]);module[_0xb367[6]]= function(_0x798ax5,_0x798ax6){return _0x798ax5[_0xb367[9]](_0xb367[7],attributes,{tableName:_0xb367[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd052=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xd052[0];var _=require(_0xd052[1]);var util=require(_0xd052[2]);var logger=require(_0xd052[4])(_0xd052[3]);var attributes=require(_0xd052[5]);module[_0xd052[6]]= function(_0x373ex5,_0x373ex6){return _0x373ex5[_0xd052[9]](_0xd052[7],attributes,{tableName:_0xd052[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 9aae423..1df1bcd 100644 (file)
@@ -1 +1 @@
-var _0x5c41=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5c41[0];var _=require(_0x5c41[1]);var util=require(_0x5c41[2]);var moment=require(_0x5c41[3]);var BPromise=require(_0x5c41[4]);var db=require(_0x5c41[6])[_0x5c41[5]];var utils=require(_0x5c41[7]);var logger=require(_0x5c41[9])(_0x5c41[8]);var jayson=require(_0x5c41[10]);var client=jayson[_0x5c41[12]][_0x5c41[11]]({port:9002});function respondWithRpcPromise(_0x6103xb,_0x6103xc,_0x6103xd){return  new BPromise(function(_0x6103xe,_0x6103xf){return client[_0x5c41[25]](_0x6103xb,_0x6103xd)[_0x5c41[24]](function(_0x6103x11){logger[_0x5c41[17]](_0x5c41[13],_0x6103xc,_0x5c41[16]);logger[_0x5c41[20]](_0x5c41[18],_0x6103xc,_0x5c41[16],JSON[_0x5c41[19]](_0x6103x11));if(_0x6103x11[_0x5c41[14]]){if(_0x6103x11[_0x5c41[14]][_0x5c41[21]]=== 500){logger[_0x5c41[14]](_0x5c41[13],_0x6103xc,_0x6103x11[_0x5c41[14]][_0x5c41[22]]);return _0x6103xf(_0x6103x11[_0x5c41[14]][_0x5c41[22]])};logger[_0x5c41[14]](_0x5c41[13],_0x6103xc,_0x6103x11[_0x5c41[14]][_0x5c41[22]]);return _0x6103xe(_0x6103x11[_0x5c41[14]][_0x5c41[22]])}else {logger[_0x5c41[17]](_0x5c41[13],_0x6103xc,_0x5c41[16]);_0x6103xe(_0x6103x11[_0x5c41[23]][_0x5c41[22]])}})[_0x5c41[15]](function(_0x6103x10){logger[_0x5c41[14]](_0x5c41[13],_0x6103xc,_0x6103x10);_0x6103xf(_0x6103x10)})})}
\ No newline at end of file
+var _0x9966=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9966[0];var _=require(_0x9966[1]);var util=require(_0x9966[2]);var moment=require(_0x9966[3]);var BPromise=require(_0x9966[4]);var db=require(_0x9966[6])[_0x9966[5]];var utils=require(_0x9966[7]);var logger=require(_0x9966[9])(_0x9966[8]);var jayson=require(_0x9966[10]);var client=jayson[_0x9966[12]][_0x9966[11]]({port:9002});function respondWithRpcPromise(_0x9b2bxb,_0x9b2bxc,_0x9b2bxd){return  new BPromise(function(_0x9b2bxe,_0x9b2bxf){return client[_0x9966[25]](_0x9b2bxb,_0x9b2bxd)[_0x9966[24]](function(_0x9b2bx11){logger[_0x9966[17]](_0x9966[13],_0x9b2bxc,_0x9966[16]);logger[_0x9966[20]](_0x9966[18],_0x9b2bxc,_0x9966[16],JSON[_0x9966[19]](_0x9b2bx11));if(_0x9b2bx11[_0x9966[14]]){if(_0x9b2bx11[_0x9966[14]][_0x9966[21]]=== 500){logger[_0x9966[14]](_0x9966[13],_0x9b2bxc,_0x9b2bx11[_0x9966[14]][_0x9966[22]]);return _0x9b2bxf(_0x9b2bx11[_0x9966[14]][_0x9966[22]])};logger[_0x9966[14]](_0x9966[13],_0x9b2bxc,_0x9b2bx11[_0x9966[14]][_0x9966[22]]);return _0x9b2bxe(_0x9b2bx11[_0x9966[14]][_0x9966[22]])}else {logger[_0x9966[17]](_0x9966[13],_0x9b2bxc,_0x9966[16]);_0x9b2bxe(_0x9b2bx11[_0x9966[23]][_0x9966[22]])}})[_0x9966[15]](function(_0x9b2bx10){logger[_0x9966[14]](_0x9966[13],_0x9b2bxc,_0x9b2bx10);_0x9b2bxf(_0x9b2bx10)})})}
\ No newline at end of file
index 918d066..da15ce0 100644 (file)
@@ -1 +1 @@
-var _0xe698=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xe698[0];var multer=require(_0xe698[1]);var util=require(_0xe698[2]);var path=require(_0xe698[3]);var express=require(_0xe698[4]);var router=express.Router();var auth=require(_0xe698[5]);var config=require(_0xe698[6]);var controller=require(_0xe698[7]);router[_0xe698[10]](_0xe698[8],controller[_0xe698[9]]);router[_0xe698[14]](_0xe698[11],auth[_0xe698[12]](),controller[_0xe698[13]]);module[_0xe698[15]]= router
\ No newline at end of file
+var _0x136d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x136d[0];var multer=require(_0x136d[1]);var util=require(_0x136d[2]);var path=require(_0x136d[3]);var express=require(_0x136d[4]);var router=express.Router();var auth=require(_0x136d[5]);var config=require(_0x136d[6]);var controller=require(_0x136d[7]);router[_0x136d[10]](_0x136d[8],controller[_0x136d[9]]);router[_0x136d[14]](_0x136d[11],auth[_0x136d[12]](),controller[_0x136d[13]]);module[_0x136d[15]]= router
\ No newline at end of file
index 9f74f8b..559fb34 100644 (file)
@@ -1 +1 @@
-var _0x8d3c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x54\x45\x58\x54","\x53\x54\x52\x49\x4E\x47"];_0x8d3c[0];var Sequelize=require(_0x8d3c[1]);module[_0x8d3c[2]]= {license:{type:Sequelize[_0x8d3c[3]]},data1:{type:Sequelize[_0x8d3c[4]]},data2:{type:Sequelize[_0x8d3c[4]]}}
\ No newline at end of file
+var _0x1c25=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x54\x45\x58\x54","\x53\x54\x52\x49\x4E\x47"];_0x1c25[0];var Sequelize=require(_0x1c25[1]);module[_0x1c25[2]]= {license:{type:Sequelize[_0x1c25[3]]},data1:{type:Sequelize[_0x1c25[4]]},data2:{type:Sequelize[_0x1c25[4]]}}
\ No newline at end of file
index 7d13c66..b6672c0 100644 (file)
@@ -1 +1 @@
-var _0x4a01=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x73\x68\x6F\x77","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65"];_0x4a01[0];var jsonpatch=require(_0x4a01[1]);var rp=require(_0x4a01[2]);var moment=require(_0x4a01[3]);var BPromise=require(_0x4a01[4]);var util=require(_0x4a01[5]);var path=require(_0x4a01[6]);var sox=require(_0x4a01[7]);var ejs=require(_0x4a01[8]);var fs=require(_0x4a01[9]);var _=require(_0x4a01[10]);var squel=require(_0x4a01[11]);var crypto=require(_0x4a01[12]);var jsforce=require(_0x4a01[13]);var toCsv=require(_0x4a01[14]);var qs=require(_0x4a01[15]);var logger=require(_0x4a01[17])(_0x4a01[16]);var utils=require(_0x4a01[18]);var config=require(_0x4a01[19]);var db=require(_0x4a01[21])[_0x4a01[20]];function respondWithStatusCode(_0x11b5x15,_0x11b5x16,_0x11b5x17){_0x11b5x16= _0x11b5x16|| 204;return function(_0x11b5x18){if(_0x11b5x18){logger[_0x4a01[24]](_0x4a01[22],_0x11b5x17,_0x11b5x16,_0x4a01[23]);logger[_0x4a01[26]](_0x4a01[25],_0x11b5x17,_0x11b5x16,_0x4a01[23]);return _0x11b5x15[_0x4a01[27]](_0x11b5x16)};return _0x11b5x15[_0x4a01[29]](304)[_0x4a01[28]]()}}function respondWithResult(_0x11b5x15,_0x11b5x16,_0x11b5x17){_0x11b5x16= _0x11b5x16|| 200;return function(_0x11b5x18){if(_0x11b5x18){logger[_0x4a01[24]](_0x4a01[22],_0x11b5x17,_0x11b5x16,_0x4a01[30]);logger[_0x4a01[26]](_0x4a01[25],_0x11b5x17,_0x11b5x16,_0x4a01[30],JSON[_0x4a01[31]](_0x11b5x18));return _0x11b5x15[_0x4a01[29]](_0x11b5x16)[_0x4a01[32]](_0x11b5x18)};return _0x11b5x15[_0x4a01[29]](304)[_0x4a01[28]]()}}function respondWithFilteredResult(_0x11b5x15,_0x11b5x1b,_0x11b5x17){return function(_0x11b5x18){if(_0x11b5x18){var _0x11b5x1c=_0x11b5x18[_0x4a01[33]],_0x11b5x1d=_0x11b5x1b[_0x4a01[34]],_0x11b5x1e=_0x11b5x1b[_0x4a01[34]]+ _0x11b5x1b[_0x4a01[35]],_0x11b5x16;if(_0x11b5x1e>= _0x11b5x1c){_0x11b5x1e= _0x11b5x1c;_0x11b5x16= 200}else {_0x11b5x16= 206};_0x11b5x15[_0x4a01[29]](_0x11b5x16);logger[_0x4a01[24]](_0x4a01[22],_0x11b5x17,_0x11b5x16,_0x4a01[36]);logger[_0x4a01[26]](_0x4a01[25],_0x11b5x17,_0x11b5x16,_0x4a01[30],JSON[_0x4a01[31]](_0x11b5x18));return _0x11b5x15[_0x4a01[40]](_0x4a01[37],_0x11b5x1d+ _0x4a01[38]+ _0x11b5x1e+ _0x4a01[39]+ _0x11b5x1c)[_0x4a01[32]](_0x11b5x18)};return null}}function patchUpdates(_0x11b5x20){return function(_0x11b5x18){try{jsonpatch[_0x4a01[41]](_0x11b5x18,_0x11b5x20,true)}catch(err){return BPromise[_0x4a01[42]](err)};return _0x11b5x18[_0x4a01[43]]()}}function saveUpdates(_0x11b5x22,_0x11b5x16,_0x11b5x17){return function(_0x11b5x18){if(_0x11b5x18){return _0x11b5x18[_0x4a01[46]](_0x11b5x22)[_0x4a01[45]](function(_0x11b5x23){logger[_0x4a01[24]](_0x4a01[22],_0x11b5x17,_0x11b5x16,_0x4a01[44]);logger[_0x4a01[26]](_0x4a01[25],_0x11b5x17,_0x11b5x16,_0x4a01[44],JSON[_0x4a01[31]](_0x11b5x18));return _0x11b5x23})};return null}}function removeEntity(_0x11b5x15,_0x11b5x16,_0x11b5x17){return function(_0x11b5x18){if(_0x11b5x18){return _0x11b5x18[_0x4a01[48]]()[_0x4a01[45]](function(){logger[_0x4a01[24]](_0x4a01[22],_0x11b5x17,_0x11b5x16,_0x4a01[47]);logger[_0x4a01[26]](_0x4a01[25],_0x11b5x17,_0x11b5x16,_0x4a01[47],JSON[_0x4a01[31]](_0x11b5x18));_0x11b5x15[_0x4a01[29]](204)[_0x4a01[28]]()})}}}function handleEntityNotFound(_0x11b5x15,_0x11b5x16,_0x11b5x17){return function(_0x11b5x18){if(!_0x11b5x18){logger[_0x4a01[50]](_0x4a01[22],_0x11b5x17,404,_0x4a01[49]);_0x11b5x15[_0x4a01[29]](404)[_0x4a01[28]]();return null};return _0x11b5x18}}function handleError(_0x11b5x15,_0x11b5x16,_0x11b5x17){_0x11b5x16= _0x11b5x16|| 500;return function(_0x11b5x27){logger[_0x4a01[50]](_0x4a01[22],_0x11b5x17,_0x11b5x16,JSON[_0x4a01[31]](_0x11b5x27));delete _0x11b5x27[_0x4a01[51]];_0x11b5x15[_0x4a01[29]](_0x11b5x16)[_0x4a01[52]](_0x11b5x27)}}exports[_0x4a01[46]]= function(_0x11b5x28,_0x11b5x15){if(_0x11b5x28[_0x4a01[54]][_0x4a01[53]]){delete _0x11b5x28[_0x4a01[54]][_0x4a01[53]]};return db[_0x4a01[58]][_0x4a01[57]]({where:{id:_0x11b5x28[_0x4a01[56]][_0x4a01[53]]}})[_0x4a01[45]](handleEntityNotFound(_0x11b5x15,null,_0x4a01[46]))[_0x4a01[45]](saveUpdates(_0x11b5x28[_0x4a01[54]],null,_0x4a01[46]))[_0x4a01[45]](respondWithResult(_0x11b5x15,null,_0x4a01[46]))[_0x4a01[55]](handleError(_0x11b5x15,null,_0x4a01[46]))};var utilLicense=require(_0x4a01[59]);exports[_0x4a01[60]]= function(_0x11b5x28,_0x11b5x15){var _0x11b5x1b={raw:true,where:{id:1}},_0x11b5x2a={};_0x11b5x2a[_0x4a01[61]]= _[_0x4a01[63]](db[_0x4a01[58]][_0x4a01[62]]);_0x11b5x2a[_0x4a01[64]]= _[_0x4a01[63]](_0x11b5x28[_0x4a01[64]]);_0x11b5x2a[_0x4a01[65]]= _[_0x4a01[66]](_0x11b5x2a[_0x4a01[61]],_0x11b5x2a[_0x4a01[64]]);_0x11b5x1b[_0x4a01[67]]= _[_0x4a01[66]](_0x11b5x2a[_0x4a01[61]],qs[_0x4a01[68]](_0x11b5x28[_0x4a01[64]][_0x4a01[68]]));_0x11b5x1b[_0x4a01[67]]= (_0x11b5x1b[_0x4a01[67]][_0x4a01[69]])?_0x11b5x1b[_0x4a01[67]]:_0x11b5x2a[_0x4a01[61]];_0x11b5x1b= _[_0x4a01[71]]({},_0x11b5x1b,_0x11b5x28[_0x4a01[70]]);return utilLicense[_0x4a01[73]](_0x11b5x1b)[_0x4a01[45]](respondWithResult(_0x11b5x15,null,_0x4a01[72]))[_0x4a01[55]](handleError(_0x11b5x15,null,_0x4a01[72]))}
\ No newline at end of file
+var _0xb01f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x73\x68\x6F\x77","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65"];_0xb01f[0];var jsonpatch=require(_0xb01f[1]);var rp=require(_0xb01f[2]);var moment=require(_0xb01f[3]);var BPromise=require(_0xb01f[4]);var util=require(_0xb01f[5]);var path=require(_0xb01f[6]);var sox=require(_0xb01f[7]);var ejs=require(_0xb01f[8]);var fs=require(_0xb01f[9]);var _=require(_0xb01f[10]);var squel=require(_0xb01f[11]);var crypto=require(_0xb01f[12]);var jsforce=require(_0xb01f[13]);var toCsv=require(_0xb01f[14]);var qs=require(_0xb01f[15]);var logger=require(_0xb01f[17])(_0xb01f[16]);var utils=require(_0xb01f[18]);var config=require(_0xb01f[19]);var db=require(_0xb01f[21])[_0xb01f[20]];function respondWithStatusCode(_0x3300x15,_0x3300x16,_0x3300x17){_0x3300x16= _0x3300x16|| 204;return function(_0x3300x18){if(_0x3300x18){logger[_0xb01f[24]](_0xb01f[22],_0x3300x17,_0x3300x16,_0xb01f[23]);logger[_0xb01f[26]](_0xb01f[25],_0x3300x17,_0x3300x16,_0xb01f[23]);return _0x3300x15[_0xb01f[27]](_0x3300x16)};return _0x3300x15[_0xb01f[29]](304)[_0xb01f[28]]()}}function respondWithResult(_0x3300x15,_0x3300x16,_0x3300x17){_0x3300x16= _0x3300x16|| 200;return function(_0x3300x18){if(_0x3300x18){logger[_0xb01f[24]](_0xb01f[22],_0x3300x17,_0x3300x16,_0xb01f[30]);logger[_0xb01f[26]](_0xb01f[25],_0x3300x17,_0x3300x16,_0xb01f[30],JSON[_0xb01f[31]](_0x3300x18));return _0x3300x15[_0xb01f[29]](_0x3300x16)[_0xb01f[32]](_0x3300x18)};return _0x3300x15[_0xb01f[29]](304)[_0xb01f[28]]()}}function respondWithFilteredResult(_0x3300x15,_0x3300x1b,_0x3300x17){return function(_0x3300x18){if(_0x3300x18){var _0x3300x1c=_0x3300x18[_0xb01f[33]],_0x3300x1d=_0x3300x1b[_0xb01f[34]],_0x3300x1e=_0x3300x1b[_0xb01f[34]]+ _0x3300x1b[_0xb01f[35]],_0x3300x16;if(_0x3300x1e>= _0x3300x1c){_0x3300x1e= _0x3300x1c;_0x3300x16= 200}else {_0x3300x16= 206};_0x3300x15[_0xb01f[29]](_0x3300x16);logger[_0xb01f[24]](_0xb01f[22],_0x3300x17,_0x3300x16,_0xb01f[36]);logger[_0xb01f[26]](_0xb01f[25],_0x3300x17,_0x3300x16,_0xb01f[30],JSON[_0xb01f[31]](_0x3300x18));return _0x3300x15[_0xb01f[40]](_0xb01f[37],_0x3300x1d+ _0xb01f[38]+ _0x3300x1e+ _0xb01f[39]+ _0x3300x1c)[_0xb01f[32]](_0x3300x18)};return null}}function patchUpdates(_0x3300x20){return function(_0x3300x18){try{jsonpatch[_0xb01f[41]](_0x3300x18,_0x3300x20,true)}catch(err){return BPromise[_0xb01f[42]](err)};return _0x3300x18[_0xb01f[43]]()}}function saveUpdates(_0x3300x22,_0x3300x16,_0x3300x17){return function(_0x3300x18){if(_0x3300x18){return _0x3300x18[_0xb01f[46]](_0x3300x22)[_0xb01f[45]](function(_0x3300x23){logger[_0xb01f[24]](_0xb01f[22],_0x3300x17,_0x3300x16,_0xb01f[44]);logger[_0xb01f[26]](_0xb01f[25],_0x3300x17,_0x3300x16,_0xb01f[44],JSON[_0xb01f[31]](_0x3300x18));return _0x3300x23})};return null}}function removeEntity(_0x3300x15,_0x3300x16,_0x3300x17){return function(_0x3300x18){if(_0x3300x18){return _0x3300x18[_0xb01f[48]]()[_0xb01f[45]](function(){logger[_0xb01f[24]](_0xb01f[22],_0x3300x17,_0x3300x16,_0xb01f[47]);logger[_0xb01f[26]](_0xb01f[25],_0x3300x17,_0x3300x16,_0xb01f[47],JSON[_0xb01f[31]](_0x3300x18));_0x3300x15[_0xb01f[29]](204)[_0xb01f[28]]()})}}}function handleEntityNotFound(_0x3300x15,_0x3300x16,_0x3300x17){return function(_0x3300x18){if(!_0x3300x18){logger[_0xb01f[50]](_0xb01f[22],_0x3300x17,404,_0xb01f[49]);_0x3300x15[_0xb01f[29]](404)[_0xb01f[28]]();return null};return _0x3300x18}}function handleError(_0x3300x15,_0x3300x16,_0x3300x17){_0x3300x16= _0x3300x16|| 500;return function(_0x3300x27){logger[_0xb01f[50]](_0xb01f[22],_0x3300x17,_0x3300x16,JSON[_0xb01f[31]](_0x3300x27));delete _0x3300x27[_0xb01f[51]];_0x3300x15[_0xb01f[29]](_0x3300x16)[_0xb01f[52]](_0x3300x27)}}exports[_0xb01f[46]]= function(_0x3300x28,_0x3300x15){if(_0x3300x28[_0xb01f[54]][_0xb01f[53]]){delete _0x3300x28[_0xb01f[54]][_0xb01f[53]]};return db[_0xb01f[58]][_0xb01f[57]]({where:{id:_0x3300x28[_0xb01f[56]][_0xb01f[53]]}})[_0xb01f[45]](handleEntityNotFound(_0x3300x15,null,_0xb01f[46]))[_0xb01f[45]](saveUpdates(_0x3300x28[_0xb01f[54]],null,_0xb01f[46]))[_0xb01f[45]](respondWithResult(_0x3300x15,null,_0xb01f[46]))[_0xb01f[55]](handleError(_0x3300x15,null,_0xb01f[46]))};var utilLicense=require(_0xb01f[59]);exports[_0xb01f[60]]= function(_0x3300x28,_0x3300x15){var _0x3300x1b={raw:true,where:{id:1}},_0x3300x2a={};_0x3300x2a[_0xb01f[61]]= _[_0xb01f[63]](db[_0xb01f[58]][_0xb01f[62]]);_0x3300x2a[_0xb01f[64]]= _[_0xb01f[63]](_0x3300x28[_0xb01f[64]]);_0x3300x2a[_0xb01f[65]]= _[_0xb01f[66]](_0x3300x2a[_0xb01f[61]],_0x3300x2a[_0xb01f[64]]);_0x3300x1b[_0xb01f[67]]= _[_0xb01f[66]](_0x3300x2a[_0xb01f[61]],qs[_0xb01f[68]](_0x3300x28[_0xb01f[64]][_0xb01f[68]]));_0x3300x1b[_0xb01f[67]]= (_0x3300x1b[_0xb01f[67]][_0xb01f[69]])?_0x3300x1b[_0xb01f[67]]:_0x3300x2a[_0xb01f[61]];_0x3300x1b= _[_0xb01f[71]]({},_0x3300x1b,_0x3300x28[_0xb01f[70]]);return utilLicense[_0xb01f[73]](_0x3300x1b)[_0xb01f[45]](respondWithResult(_0x3300x15,null,_0xb01f[72]))[_0xb01f[55]](handleError(_0x3300x15,null,_0xb01f[72]))}
\ No newline at end of file
index 87fb6c4..d2c5499 100644 (file)
@@ -1 +1 @@
-var _0x551d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4C\x69\x63\x65\x6E\x73\x65","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x65\x66\x69\x6E\x65"];_0x551d[0];var _=require(_0x551d[1]);var util=require(_0x551d[2]);var logger=require(_0x551d[4])(_0x551d[3]);var attributes=require(_0x551d[5]);module[_0x551d[6]]= function(_0x8fb9x5,_0x8fb9x6){return _0x8fb9x5[_0x551d[9]](_0x551d[7],attributes,{tableName:_0x551d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xbcda=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4C\x69\x63\x65\x6E\x73\x65","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x65\x66\x69\x6E\x65"];_0xbcda[0];var _=require(_0xbcda[1]);var util=require(_0xbcda[2]);var logger=require(_0xbcda[4])(_0xbcda[3]);var attributes=require(_0xbcda[5]);module[_0xbcda[6]]= function(_0x8a63x5,_0x8a63x6){return _0x8a63x5[_0xbcda[9]](_0xbcda[7],attributes,{tableName:_0xbcda[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 7c443dd..1b005a8 100644 (file)
@@ -1 +1 @@
-var _0x7a89=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7a89[0];var _=require(_0x7a89[1]);var util=require(_0x7a89[2]);var moment=require(_0x7a89[3]);var BPromise=require(_0x7a89[4]);var db=require(_0x7a89[6])[_0x7a89[5]];var utils=require(_0x7a89[7]);var logger=require(_0x7a89[9])(_0x7a89[8]);var jayson=require(_0x7a89[10]);var client=jayson[_0x7a89[12]][_0x7a89[11]]({port:9002});function respondWithRpcPromise(_0xef33xb,_0xef33xc,_0xef33xd){return  new BPromise(function(_0xef33xe,_0xef33xf){return client[_0x7a89[25]](_0xef33xb,_0xef33xd)[_0x7a89[24]](function(_0xef33x11){logger[_0x7a89[17]](_0x7a89[13],_0xef33xc,_0x7a89[16]);logger[_0x7a89[20]](_0x7a89[18],_0xef33xc,_0x7a89[16],JSON[_0x7a89[19]](_0xef33x11));if(_0xef33x11[_0x7a89[14]]){if(_0xef33x11[_0x7a89[14]][_0x7a89[21]]=== 500){logger[_0x7a89[14]](_0x7a89[13],_0xef33xc,_0xef33x11[_0x7a89[14]][_0x7a89[22]]);return _0xef33xf(_0xef33x11[_0x7a89[14]][_0x7a89[22]])};logger[_0x7a89[14]](_0x7a89[13],_0xef33xc,_0xef33x11[_0x7a89[14]][_0x7a89[22]]);return _0xef33xe(_0xef33x11[_0x7a89[14]][_0x7a89[22]])}else {logger[_0x7a89[17]](_0x7a89[13],_0xef33xc,_0x7a89[16]);_0xef33xe(_0xef33x11[_0x7a89[23]][_0x7a89[22]])}})[_0x7a89[15]](function(_0xef33x10){logger[_0x7a89[14]](_0x7a89[13],_0xef33xc,_0xef33x10);_0xef33xf(_0xef33x10)})})}
\ No newline at end of file
+var _0x8426=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8426[0];var _=require(_0x8426[1]);var util=require(_0x8426[2]);var moment=require(_0x8426[3]);var BPromise=require(_0x8426[4]);var db=require(_0x8426[6])[_0x8426[5]];var utils=require(_0x8426[7]);var logger=require(_0x8426[9])(_0x8426[8]);var jayson=require(_0x8426[10]);var client=jayson[_0x8426[12]][_0x8426[11]]({port:9002});function respondWithRpcPromise(_0x8e92xb,_0x8e92xc,_0x8e92xd){return  new BPromise(function(_0x8e92xe,_0x8e92xf){return client[_0x8426[25]](_0x8e92xb,_0x8e92xd)[_0x8426[24]](function(_0x8e92x11){logger[_0x8426[17]](_0x8426[13],_0x8e92xc,_0x8426[16]);logger[_0x8426[20]](_0x8426[18],_0x8e92xc,_0x8426[16],JSON[_0x8426[19]](_0x8e92x11));if(_0x8e92x11[_0x8426[14]]){if(_0x8e92x11[_0x8426[14]][_0x8426[21]]=== 500){logger[_0x8426[14]](_0x8426[13],_0x8e92xc,_0x8e92x11[_0x8426[14]][_0x8426[22]]);return _0x8e92xf(_0x8e92x11[_0x8426[14]][_0x8426[22]])};logger[_0x8426[14]](_0x8426[13],_0x8e92xc,_0x8e92x11[_0x8426[14]][_0x8426[22]]);return _0x8e92xe(_0x8e92x11[_0x8426[14]][_0x8426[22]])}else {logger[_0x8426[17]](_0x8426[13],_0x8e92xc,_0x8426[16]);_0x8e92xe(_0x8e92x11[_0x8426[23]][_0x8426[22]])}})[_0x8426[15]](function(_0x8e92x10){logger[_0x8426[14]](_0x8426[13],_0x8e92xc,_0x8e92x10);_0x8e92xf(_0x8e92x10)})})}
\ No newline at end of file
index 2acb46c..cafd1aa 100644 (file)
@@ -1 +1 @@
-var _0x6742=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x5F\x73\x65\x72\x76\x65\x72\x73","\x67\x65\x74\x49\x6D\x61\x70","\x2F\x3A\x69\x64\x2F\x6F\x75\x74\x5F\x73\x65\x72\x76\x65\x72\x73","\x67\x65\x74\x53\x6D\x74\x70","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x76\x65\x72\x69\x66\x79","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6D\x61\x70","\x61\x64\x64\x53\x6D\x74\x70","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x73\x65\x6E\x64","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x70","\x72\x65\x6D\x6F\x76\x65\x53\x6D\x74\x70","\x65\x78\x70\x6F\x72\x74\x73"];_0x6742[0];var multer=require(_0x6742[1]);var util=require(_0x6742[2]);var path=require(_0x6742[3]);var express=require(_0x6742[4]);var router=express.Router();var auth=require(_0x6742[5]);var config=require(_0x6742[6]);var controller=require(_0x6742[7]);router[_0x6742[11]](_0x6742[8],auth[_0x6742[9]](),controller[_0x6742[10]]);router[_0x6742[11]](_0x6742[12],auth[_0x6742[9]](),controller[_0x6742[13]]);router[_0x6742[11]](_0x6742[14],auth[_0x6742[9]](),controller[_0x6742[15]]);router[_0x6742[11]](_0x6742[16],auth[_0x6742[9]](),controller[_0x6742[17]]);router[_0x6742[11]](_0x6742[18],auth[_0x6742[9]](),controller[_0x6742[19]]);router[_0x6742[11]](_0x6742[20],auth[_0x6742[9]](),controller[_0x6742[21]]);router[_0x6742[11]](_0x6742[22],auth[_0x6742[9]](),controller[_0x6742[23]]);router[_0x6742[11]](_0x6742[24],auth[_0x6742[9]](),controller[_0x6742[25]]);router[_0x6742[27]](_0x6742[8],auth[_0x6742[9]](),controller[_0x6742[26]]);router[_0x6742[27]](_0x6742[14],auth[_0x6742[9]](),controller[_0x6742[28]]);router[_0x6742[27]](_0x6742[16],auth[_0x6742[9]](),controller[_0x6742[29]]);router[_0x6742[27]](_0x6742[18],auth[_0x6742[9]](),controller[_0x6742[30]]);router[_0x6742[27]](_0x6742[20],auth[_0x6742[9]](),controller[_0x6742[31]]);router[_0x6742[27]](_0x6742[22],auth[_0x6742[9]](),controller[_0x6742[32]]);router[_0x6742[27]](_0x6742[22],auth[_0x6742[9]](),controller[_0x6742[33]]);router[_0x6742[27]](_0x6742[34],auth[_0x6742[9]](),controller[_0x6742[35]]);router[_0x6742[37]](_0x6742[12],auth[_0x6742[9]](),controller[_0x6742[36]]);router[_0x6742[39]](_0x6742[12],auth[_0x6742[9]](),controller[_0x6742[38]]);router[_0x6742[39]](_0x6742[14],auth[_0x6742[9]](),controller[_0x6742[40]]);router[_0x6742[39]](_0x6742[16],auth[_0x6742[9]](),controller[_0x6742[41]]);module[_0x6742[42]]= router
\ No newline at end of file
+var _0x3658=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x5F\x73\x65\x72\x76\x65\x72\x73","\x67\x65\x74\x49\x6D\x61\x70","\x2F\x3A\x69\x64\x2F\x6F\x75\x74\x5F\x73\x65\x72\x76\x65\x72\x73","\x67\x65\x74\x53\x6D\x74\x70","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x76\x65\x72\x69\x66\x79","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6D\x61\x70","\x61\x64\x64\x53\x6D\x74\x70","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x73\x65\x6E\x64","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x70","\x72\x65\x6D\x6F\x76\x65\x53\x6D\x74\x70","\x65\x78\x70\x6F\x72\x74\x73"];_0x3658[0];var multer=require(_0x3658[1]);var util=require(_0x3658[2]);var path=require(_0x3658[3]);var express=require(_0x3658[4]);var router=express.Router();var auth=require(_0x3658[5]);var config=require(_0x3658[6]);var controller=require(_0x3658[7]);router[_0x3658[11]](_0x3658[8],auth[_0x3658[9]](),controller[_0x3658[10]]);router[_0x3658[11]](_0x3658[12],auth[_0x3658[9]](),controller[_0x3658[13]]);router[_0x3658[11]](_0x3658[14],auth[_0x3658[9]](),controller[_0x3658[15]]);router[_0x3658[11]](_0x3658[16],auth[_0x3658[9]](),controller[_0x3658[17]]);router[_0x3658[11]](_0x3658[18],auth[_0x3658[9]](),controller[_0x3658[19]]);router[_0x3658[11]](_0x3658[20],auth[_0x3658[9]](),controller[_0x3658[21]]);router[_0x3658[11]](_0x3658[22],auth[_0x3658[9]](),controller[_0x3658[23]]);router[_0x3658[11]](_0x3658[24],auth[_0x3658[9]](),controller[_0x3658[25]]);router[_0x3658[27]](_0x3658[8],auth[_0x3658[9]](),controller[_0x3658[26]]);router[_0x3658[27]](_0x3658[14],auth[_0x3658[9]](),controller[_0x3658[28]]);router[_0x3658[27]](_0x3658[16],auth[_0x3658[9]](),controller[_0x3658[29]]);router[_0x3658[27]](_0x3658[18],auth[_0x3658[9]](),controller[_0x3658[30]]);router[_0x3658[27]](_0x3658[20],auth[_0x3658[9]](),controller[_0x3658[31]]);router[_0x3658[27]](_0x3658[22],auth[_0x3658[9]](),controller[_0x3658[32]]);router[_0x3658[27]](_0x3658[22],auth[_0x3658[9]](),controller[_0x3658[33]]);router[_0x3658[27]](_0x3658[34],auth[_0x3658[9]](),controller[_0x3658[35]]);router[_0x3658[37]](_0x3658[12],auth[_0x3658[9]](),controller[_0x3658[36]]);router[_0x3658[39]](_0x3658[12],auth[_0x3658[9]](),controller[_0x3658[38]]);router[_0x3658[39]](_0x3658[14],auth[_0x3658[9]](),controller[_0x3658[40]]);router[_0x3658[39]](_0x3658[16],auth[_0x3658[9]](),controller[_0x3658[41]]);module[_0x3658[42]]= router
\ No newline at end of file
index ba568d9..b881da5 100644 (file)
@@ -1 +1 @@
-var _0x3431=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x47\x45\x54","\x50\x4F\x53\x54","\x42\x4C\x4F\x42"];_0x3431[0];var Sequelize=require(_0x3431[1]);module[_0x3431[2]]= {description:{type:Sequelize[_0x3431[3]]},name:{type:Sequelize[_0x3431[3]],allowNull:false},fidelity:{type:Sequelize[_0x3431[4]],defaultValue:false},timeout:{type:Sequelize[_0x3431[5]],defaultValue:0},whiteLabel:{type:Sequelize[_0x3431[3]]},acceptUrl:{type:Sequelize[_0x3431[3]]},rejectUrl:{type:Sequelize[_0x3431[3]]},acceptMethod:{type:Sequelize.ENUM(_0x3431[6],_0x3431[7])},rejectMethod:{type:Sequelize.ENUM(_0x3431[6],_0x3431[7])},actions:{type:Sequelize[_0x3431[3]],get:function(){},set:function(_0xea0ax2){}},closeUrl:{type:Sequelize[_0x3431[3]]},closeMethod:{type:Sequelize.ENUM(_0x3431[6],_0x3431[7])},signature:{type:Sequelize[_0x3431[8]],get:function(){}},custom:{type:Sequelize[_0x3431[4]],defaultValue:false},service:{type:Sequelize[_0x3431[4]],defaultValue:false}}
\ No newline at end of file
+var _0xabd3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x47\x45\x54","\x50\x4F\x53\x54","\x42\x4C\x4F\x42"];_0xabd3[0];var Sequelize=require(_0xabd3[1]);module[_0xabd3[2]]= {description:{type:Sequelize[_0xabd3[3]]},name:{type:Sequelize[_0xabd3[3]],allowNull:false},fidelity:{type:Sequelize[_0xabd3[4]],defaultValue:false},timeout:{type:Sequelize[_0xabd3[5]],defaultValue:0},whiteLabel:{type:Sequelize[_0xabd3[3]]},acceptUrl:{type:Sequelize[_0xabd3[3]]},rejectUrl:{type:Sequelize[_0xabd3[3]]},acceptMethod:{type:Sequelize.ENUM(_0xabd3[6],_0xabd3[7])},rejectMethod:{type:Sequelize.ENUM(_0xabd3[6],_0xabd3[7])},actions:{type:Sequelize[_0xabd3[3]],get:function(){},set:function(_0x9d05x2){}},closeUrl:{type:Sequelize[_0xabd3[3]]},closeMethod:{type:Sequelize.ENUM(_0xabd3[6],_0xabd3[7])},signature:{type:Sequelize[_0xabd3[8]],get:function(){}},custom:{type:Sequelize[_0xabd3[4]],defaultValue:false},service:{type:Sequelize[_0xabd3[4]],defaultValue:false}}
\ No newline at end of file
index 1d08e7c..502edfc 100644 (file)
@@ -1 +1 @@
-var _0x99d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x49\x6D\x61\x70","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x53\x6D\x74\x70","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x49\x6D\x61\x70","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x49\x6D\x61\x70","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x70","\x73\x65\x74\x49\x6D\x61\x70","\x67\x65\x74\x53\x6D\x74\x70","\x61\x64\x64\x53\x6D\x74\x70","\x72\x65\x6D\x6F\x76\x65\x53\x6D\x74\x70","\x73\x65\x74\x53\x6D\x74\x70","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x53\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x72\x76\x69\x63\x65","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x65\x63\x75\x72\x65","\x75\x73\x65\x72","\x70\x61\x73\x73","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x56\x65\x72\x69\x66\x79\x53\x6D\x74\x70"];_0x99d4[0];var jsonpatch=require(_0x99d4[1]);var rp=require(_0x99d4[2]);var moment=require(_0x99d4[3]);var BPromise=require(_0x99d4[4]);var util=require(_0x99d4[5]);var path=require(_0x99d4[6]);var sox=require(_0x99d4[7]);var ejs=require(_0x99d4[8]);var fs=require(_0x99d4[9]);var _=require(_0x99d4[10]);var squel=require(_0x99d4[11]);var crypto=require(_0x99d4[12]);var jsforce=require(_0x99d4[13]);var toCsv=require(_0x99d4[14]);var qs=require(_0x99d4[15]);var logger=require(_0x99d4[17])(_0x99d4[16]);var utils=require(_0x99d4[18]);var config=require(_0x99d4[19]);var db=require(_0x99d4[21])[_0x99d4[20]];var jayson=require(_0x99d4[22]);var client=jayson[_0x99d4[24]][_0x99d4[23]]({port:9003});function respondWithRpcPromise(_0xd29fx17,_0xd29fx18,_0xd29fx19){return  new BPromise(function(_0xd29fx1a,_0xd29fx1b){return client[_0x99d4[37]](_0xd29fx17,_0xd29fx19)[_0x99d4[36]](function(_0xd29fx1d){logger[_0x99d4[29]](_0x99d4[25],_0xd29fx18,_0x99d4[28]);logger[_0x99d4[32]](_0x99d4[30],_0xd29fx18,_0x99d4[28],JSON[_0x99d4[31]](_0xd29fx1d));if(_0xd29fx1d[_0x99d4[26]]){if(_0xd29fx1d[_0x99d4[26]][_0x99d4[33]]=== 500){logger[_0x99d4[26]](_0x99d4[25],_0xd29fx18,_0xd29fx1d[_0x99d4[26]][_0x99d4[34]]);return _0xd29fx1b(_0xd29fx1d[_0x99d4[26]][_0x99d4[34]])};logger[_0x99d4[26]](_0x99d4[25],_0xd29fx18,_0xd29fx1d[_0x99d4[26]][_0x99d4[34]]);return _0xd29fx1a(_0xd29fx1d[_0x99d4[26]][_0x99d4[34]])}else {logger[_0x99d4[29]](_0x99d4[25],_0xd29fx18,_0x99d4[28]);_0xd29fx1a(_0xd29fx1d[_0x99d4[35]][_0x99d4[34]])}})[_0x99d4[27]](function(_0xd29fx1c){logger[_0x99d4[26]](_0x99d4[25],_0xd29fx18,_0xd29fx1c);_0xd29fx1b(_0xd29fx1c)})})}function respondWithStatusCode(_0xd29fx1d,_0xd29fx1f,_0xd29fx18){_0xd29fx1f= _0xd29fx1f|| 204;return function(_0xd29fx20){if(_0xd29fx20){logger[_0x99d4[29]](_0x99d4[30],_0xd29fx18,_0xd29fx1f,_0x99d4[38]);logger[_0x99d4[32]](_0x99d4[39],_0xd29fx18,_0xd29fx1f,_0x99d4[38]);return _0xd29fx1d[_0x99d4[40]](_0xd29fx1f)};return _0xd29fx1d[_0x99d4[42]](304)[_0x99d4[41]]()}}function respondWithResult(_0xd29fx1d,_0xd29fx1f,_0xd29fx18){_0xd29fx1f= _0xd29fx1f|| 200;return function(_0xd29fx20){if(_0xd29fx20){logger[_0x99d4[29]](_0x99d4[30],_0xd29fx18,_0xd29fx1f,_0x99d4[43]);logger[_0x99d4[32]](_0x99d4[39],_0xd29fx18,_0xd29fx1f,_0x99d4[43],JSON[_0x99d4[31]](_0xd29fx20));return _0xd29fx1d[_0x99d4[42]](_0xd29fx1f)[_0x99d4[44]](_0xd29fx20)};return _0xd29fx1d[_0x99d4[42]](304)[_0x99d4[41]]()}}function respondWithFilteredResult(_0xd29fx1d,_0xd29fx23,_0xd29fx18){return function(_0xd29fx20){if(_0xd29fx20){var _0xd29fx24=_0xd29fx20[_0x99d4[45]],_0xd29fx25=_0xd29fx23[_0x99d4[46]],_0xd29fx26=_0xd29fx23[_0x99d4[46]]+ _0xd29fx23[_0x99d4[47]],_0xd29fx1f;if(_0xd29fx26>= _0xd29fx24){_0xd29fx26= _0xd29fx24;_0xd29fx1f= 200}else {_0xd29fx1f= 206};_0xd29fx1d[_0x99d4[42]](_0xd29fx1f);logger[_0x99d4[29]](_0x99d4[30],_0xd29fx18,_0xd29fx1f,_0x99d4[48]);logger[_0x99d4[32]](_0x99d4[39],_0xd29fx18,_0xd29fx1f,_0x99d4[43],JSON[_0x99d4[31]](_0xd29fx20));return _0xd29fx1d[_0x99d4[52]](_0x99d4[49],_0xd29fx25+ _0x99d4[50]+ _0xd29fx26+ _0x99d4[51]+ _0xd29fx24)[_0x99d4[44]](_0xd29fx20)};return null}}function patchUpdates(_0xd29fx28){return function(_0xd29fx20){try{jsonpatch[_0x99d4[53]](_0xd29fx20,_0xd29fx28,true)}catch(err){return BPromise[_0x99d4[54]](err)};return _0xd29fx20[_0x99d4[55]]()}}function saveUpdates(_0xd29fx2a,_0xd29fx1f,_0xd29fx18){return function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[57]](_0xd29fx2a)[_0x99d4[36]](function(_0xd29fx2b){logger[_0x99d4[29]](_0x99d4[30],_0xd29fx18,_0xd29fx1f,_0x99d4[56]);logger[_0x99d4[32]](_0x99d4[39],_0xd29fx18,_0xd29fx1f,_0x99d4[56],JSON[_0x99d4[31]](_0xd29fx20));return _0xd29fx2b})};return null}}function removeEntity(_0xd29fx1d,_0xd29fx1f,_0xd29fx18){return function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[59]]()[_0x99d4[36]](function(){logger[_0x99d4[29]](_0x99d4[30],_0xd29fx18,_0xd29fx1f,_0x99d4[58]);logger[_0x99d4[32]](_0x99d4[39],_0xd29fx18,_0xd29fx1f,_0x99d4[58],JSON[_0x99d4[31]](_0xd29fx20));_0xd29fx1d[_0x99d4[42]](204)[_0x99d4[41]]()})}}}function handleEntityNotFound(_0xd29fx1d,_0xd29fx1f,_0xd29fx18){return function(_0xd29fx20){if(!_0xd29fx20){logger[_0x99d4[26]](_0x99d4[30],_0xd29fx18,404,_0x99d4[60]);_0xd29fx1d[_0x99d4[42]](404)[_0x99d4[41]]();return null};return _0xd29fx20}}function handleError(_0xd29fx1d,_0xd29fx1f,_0xd29fx18){_0xd29fx1f= _0xd29fx1f|| 500;return function(_0xd29fx1c){logger[_0x99d4[26]](_0x99d4[30],_0xd29fx18,_0xd29fx1f,JSON[_0x99d4[31]](_0xd29fx1c));delete _0xd29fx1c[_0x99d4[61]];_0xd29fx1d[_0x99d4[42]](_0xd29fx1f)[_0x99d4[62]](_0xd29fx1c)}}exports[_0x99d4[63]]= function(_0xd29fx19,_0xd29fx1d){var _0xd29fx23={include:[{model:db[_0x99d4[64]],as:_0x99d4[65]},{model:db[_0x99d4[66]],as:_0x99d4[67]}]},_0xd29fx2f={};_0xd29fx2f[_0x99d4[68]]= _[_0x99d4[71]](db[_0x99d4[70]][_0x99d4[69]]);_0xd29fx2f[_0x99d4[72]]= _[_0x99d4[71]](_0xd29fx19[_0x99d4[72]]);_0xd29fx2f[_0x99d4[73]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],_0xd29fx2f[_0x99d4[72]]);_0xd29fx23[_0x99d4[75]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],qs[_0x99d4[76]](_0xd29fx19[_0x99d4[72]][_0x99d4[76]]));_0xd29fx23[_0x99d4[75]]= (_0xd29fx23[_0x99d4[75]][_0x99d4[77]])?_0xd29fx23[_0x99d4[75]]:_0xd29fx2f[_0x99d4[68]];if(!_0xd29fx19[_0x99d4[72]][_0x99d4[79]](_0x99d4[78])){_0xd29fx23[_0x99d4[47]]= qs[_0x99d4[47]](_0xd29fx19[_0x99d4[72]][_0x99d4[47]]);_0xd29fx23[_0x99d4[46]]= qs[_0x99d4[46]](_0xd29fx19[_0x99d4[72]][_0x99d4[46]])};_0xd29fx23[_0x99d4[80]]= qs[_0x99d4[81]](_0xd29fx19[_0x99d4[72]][_0x99d4[81]]);_0xd29fx23[_0x99d4[82]]= qs[_0x99d4[73]](_[_0x99d4[83]](_0xd29fx19[_0x99d4[72]],_0xd29fx2f[_0x99d4[73]]));if(_0xd29fx19[_0x99d4[72]][_0x99d4[84]]){_0xd29fx23[_0x99d4[82]]= _[_0x99d4[87]](_0xd29fx23[_0x99d4[82]],{$or:_[_0x99d4[86]](_0xd29fx23[_0x99d4[75]],function(_0xd29fx30){var _0xd29fx31={};_0xd29fx31[_0xd29fx30]= {$like:_0x99d4[85]+ _0xd29fx19[_0x99d4[72]][_0x99d4[84]]+ _0x99d4[85]};return _0xd29fx31})})};_0xd29fx23= _[_0x99d4[87]]({},_0xd29fx23,_0xd29fx19[_0x99d4[88]]);return db[_0x99d4[70]][_0x99d4[89]](_0xd29fx23)[_0x99d4[36]](respondWithFilteredResult(_0xd29fx1d,_0xd29fx23,_0x99d4[63]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[63]))};exports[_0x99d4[90]]= function(_0xd29fx19,_0xd29fx1d){var _0xd29fx23={raw:false,where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]},include:[{model:db[_0x99d4[64]],as:_0x99d4[65]},{model:db[_0x99d4[66]],as:_0x99d4[67]}]},_0xd29fx2f={};_0xd29fx2f[_0x99d4[68]]= _[_0x99d4[71]](db[_0x99d4[70]][_0x99d4[69]]);_0xd29fx2f[_0x99d4[72]]= _[_0x99d4[71]](_0xd29fx19[_0x99d4[72]]);_0xd29fx2f[_0x99d4[73]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],_0xd29fx2f[_0x99d4[72]]);_0xd29fx23[_0x99d4[75]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],qs[_0x99d4[76]](_0xd29fx19[_0x99d4[72]][_0x99d4[76]]));_0xd29fx23[_0x99d4[75]]= (_0xd29fx23[_0x99d4[75]][_0x99d4[77]])?_0xd29fx23[_0x99d4[75]]:_0xd29fx2f[_0x99d4[68]];_0xd29fx23= _[_0x99d4[87]]({},_0xd29fx23,_0xd29fx19[_0x99d4[88]]);return db[_0x99d4[70]][_0x99d4[93]](_0xd29fx23)[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[90]))[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[90]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[90]))};exports[_0x99d4[94]]= function(_0xd29fx19,_0xd29fx1d){return db[_0x99d4[70]][_0x99d4[94]](_0xd29fx19[_0x99d4[95]],{include:[{model:db[_0x99d4[66]],as:_0x99d4[67]}]})[_0x99d4[36]](respondWithResult(_0xd29fx1d,201,_0x99d4[94]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[94]))};exports[_0x99d4[57]]= function(_0xd29fx19,_0xd29fx1d){if(_0xd29fx19[_0x99d4[95]][_0x99d4[91]]){delete _0xd29fx19[_0x99d4[95]][_0x99d4[91]]};return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]},include:[{model:db[_0x99d4[64]],as:_0x99d4[65]},{model:db[_0x99d4[66]],as:_0x99d4[67]}]})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[57]))[_0x99d4[36]](saveUpdates(_0xd29fx19[_0x99d4[95]],null,_0x99d4[57]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20&& _0xd29fx19[_0x99d4[95]][_0x99d4[65]]){return db[_0x99d4[64]][_0x99d4[57]](_0xd29fx19[_0x99d4[95]].Imap,{where:{MailAccountId:_0xd29fx20[_0x99d4[91]]}})[_0x99d4[36]](function(){return _0xd29fx20})};return _0xd29fx20})[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20&& _0xd29fx19[_0x99d4[95]][_0x99d4[67]]){return db[_0x99d4[66]][_0x99d4[57]](_0xd29fx19[_0x99d4[95]].Smtp,{where:{MailAccountId:_0xd29fx20[_0x99d4[91]]}})[_0x99d4[36]](function(){return _0xd29fx20})};return _0xd29fx20})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[57]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[57]))};exports[_0x99d4[59]]= function(_0xd29fx19,_0xd29fx1d){return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[59]))[_0x99d4[36]](removeEntity(_0xd29fx1d,null,_0x99d4[59]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[59]))};exports[_0x99d4[96]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[96]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[96]]()};return null})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[96]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[96]))};exports[_0x99d4[98]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){if(_0xd29fx19[_0x99d4[95]][_0x99d4[91]]){delete _0xd29fx19[_0x99d4[95]][_0x99d4[91]]};return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[98]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){_0xd29fx19[_0x99d4[95]][_0x99d4[99]]= _0xd29fx20[_0x99d4[91]];return db[_0x99d4[64]][_0x99d4[94]](_0xd29fx19[_0x99d4[95]])}})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[98]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[98]))};exports[_0x99d4[100]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[100]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[101]](null)};return null})[_0x99d4[36]](respondWithStatusCode(_0xd29fx1d,null,_0x99d4[100]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[100]))};exports[_0x99d4[102]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[102]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[102]]()};return null})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[102]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[102]))};exports[_0x99d4[103]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){if(_0xd29fx19[_0x99d4[95]][_0x99d4[91]]){delete _0xd29fx19[_0x99d4[95]][_0x99d4[91]]};return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[103]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){_0xd29fx19[_0x99d4[95]][_0x99d4[99]]= _0xd29fx20[_0x99d4[91]];return db[_0x99d4[66]][_0x99d4[94]](_0xd29fx19[_0x99d4[95]])}})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[103]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[103]))};exports[_0x99d4[104]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[104]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[105]](null)};return null})[_0x99d4[36]](respondWithStatusCode(_0xd29fx1d,null,_0x99d4[104]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[104]))};exports[_0x99d4[106]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[109]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[106]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[106]](_0xd29fx19[_0x99d4[95]][_0x99d4[107]],_[_0x99d4[108]](_0xd29fx19[_0x99d4[95]],[_0x99d4[107],_0x99d4[91]])|| {})};return null})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[106]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[106]))};exports[_0x99d4[110]]= function(_0xd29fx19,_0xd29fx20,_0xd29fx32){var _0xd29fx23={};var _0xd29fx2f={};var _0xd29fx33;var _0xd29fx24;return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx20,null,_0x99d4[110]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){_0xd29fx33= _0xd29fx20;_0xd29fx2f[_0x99d4[68]]= _[_0x99d4[71]](db[_0x99d4[109]][_0x99d4[69]]);_0xd29fx2f[_0x99d4[72]]= _[_0x99d4[71]](_0xd29fx19[_0x99d4[72]]);_0xd29fx2f[_0x99d4[73]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],_0xd29fx2f[_0x99d4[72]]);_0xd29fx23[_0x99d4[75]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],qs[_0x99d4[76]](_0xd29fx19[_0x99d4[72]][_0x99d4[76]]));_0xd29fx23[_0x99d4[75]]= (_0xd29fx23[_0x99d4[75]][_0x99d4[77]])?_0xd29fx23[_0x99d4[75]]:_0xd29fx2f[_0x99d4[68]];_0xd29fx23[_0x99d4[80]]= qs[_0x99d4[81]](_0xd29fx19[_0x99d4[72]][_0x99d4[81]]);_0xd29fx23[_0x99d4[82]]= qs[_0x99d4[73]](_[_0x99d4[83]](_0xd29fx19[_0x99d4[72]],_0xd29fx2f[_0x99d4[73]]));if(_0xd29fx19[_0x99d4[72]][_0x99d4[84]]){_0xd29fx23[_0x99d4[82]]= _[_0x99d4[87]](_0xd29fx23[_0x99d4[82]],{$or:_[_0x99d4[86]](_0xd29fx23[_0x99d4[75]],function(_0xd29fx30){var _0xd29fx31={};_0xd29fx31[_0xd29fx30]= {$like:_0x99d4[85]+ _0xd29fx19[_0x99d4[72]][_0x99d4[84]]+ _0x99d4[85]};return _0xd29fx31})})};_0xd29fx23= _[_0x99d4[87]]({},_0xd29fx23,_0xd29fx19[_0x99d4[88]]);return _0xd29fx33[_0x99d4[110]](_0xd29fx23)}})[_0x99d4[36]](function(_0xd29fx35){if(_0xd29fx35){_0xd29fx24= _0xd29fx35[_0x99d4[77]];if(!_0xd29fx19[_0x99d4[72]][_0x99d4[79]](_0x99d4[78])){_0xd29fx23[_0x99d4[47]]= qs[_0x99d4[47]](_0xd29fx19[_0x99d4[72]][_0x99d4[47]]);_0xd29fx23[_0x99d4[46]]= qs[_0x99d4[46]](_0xd29fx19[_0x99d4[72]][_0x99d4[46]])};return _0xd29fx33[_0x99d4[110]](_0xd29fx23)}})[_0x99d4[36]](function(_0xd29fx34){return _0xd29fx34?{count:_0xd29fx24,rows:_0xd29fx34}:null})[_0x99d4[36]](respondWithResult(_0xd29fx20,null,_0x99d4[110]))[_0x99d4[27]](handleError(_0xd29fx20,null,_0x99d4[110]))};exports[_0x99d4[111]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[112]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[111]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[111]](_0xd29fx19[_0x99d4[95]][_0x99d4[107]],_[_0x99d4[108]](_0xd29fx19[_0x99d4[95]],[_0x99d4[107],_0x99d4[91]])|| {})};return null})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[111]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[111]))};exports[_0x99d4[113]]= function(_0xd29fx19,_0xd29fx20,_0xd29fx32){var _0xd29fx23={};var _0xd29fx2f={};var _0xd29fx33;var _0xd29fx24;return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx20,null,_0x99d4[113]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){_0xd29fx33= _0xd29fx20;_0xd29fx2f[_0x99d4[68]]= _[_0x99d4[71]](db[_0x99d4[114]][_0x99d4[69]]);_0xd29fx2f[_0x99d4[72]]= _[_0x99d4[71]](_0xd29fx19[_0x99d4[72]]);_0xd29fx2f[_0x99d4[73]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],_0xd29fx2f[_0x99d4[72]]);_0xd29fx23[_0x99d4[75]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],qs[_0x99d4[76]](_0xd29fx19[_0x99d4[72]][_0x99d4[76]]));_0xd29fx23[_0x99d4[75]]= (_0xd29fx23[_0x99d4[75]][_0x99d4[77]])?_0xd29fx23[_0x99d4[75]]:_0xd29fx2f[_0x99d4[68]];_0xd29fx23[_0x99d4[80]]= qs[_0x99d4[81]](_0xd29fx19[_0x99d4[72]][_0x99d4[81]]);_0xd29fx23[_0x99d4[82]]= qs[_0x99d4[73]](_[_0x99d4[83]](_0xd29fx19[_0x99d4[72]],_0xd29fx2f[_0x99d4[73]]));if(_0xd29fx19[_0x99d4[72]][_0x99d4[84]]){_0xd29fx23[_0x99d4[82]]= _[_0x99d4[87]](_0xd29fx23[_0x99d4[82]],{$or:_[_0x99d4[86]](_0xd29fx23[_0x99d4[75]],function(_0xd29fx30){var _0xd29fx31={};_0xd29fx31[_0xd29fx30]= {$like:_0x99d4[85]+ _0xd29fx19[_0x99d4[72]][_0x99d4[84]]+ _0x99d4[85]};return _0xd29fx31})})};_0xd29fx23= _[_0x99d4[87]]({},_0xd29fx23,_0xd29fx19[_0x99d4[88]]);return _0xd29fx33[_0x99d4[113]](_0xd29fx23)}})[_0x99d4[36]](function(_0xd29fx35){if(_0xd29fx35){_0xd29fx24= _0xd29fx35[_0x99d4[77]];if(!_0xd29fx19[_0x99d4[72]][_0x99d4[79]](_0x99d4[78])){_0xd29fx23[_0x99d4[47]]= qs[_0x99d4[47]](_0xd29fx19[_0x99d4[72]][_0x99d4[47]]);_0xd29fx23[_0x99d4[46]]= qs[_0x99d4[46]](_0xd29fx19[_0x99d4[72]][_0x99d4[46]])};return _0xd29fx33[_0x99d4[113]](_0xd29fx23)}})[_0x99d4[36]](function(_0xd29fx34){return _0xd29fx34?{count:_0xd29fx24,rows:_0xd29fx34}:null})[_0x99d4[36]](respondWithResult(_0xd29fx20,null,_0x99d4[113]))[_0x99d4[27]](handleError(_0xd29fx20,null,_0x99d4[113]))};exports[_0x99d4[115]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){if(_0xd29fx19[_0x99d4[95]][_0x99d4[91]]){delete _0xd29fx19[_0x99d4[95]][_0x99d4[91]]};return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[115]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){_0xd29fx19[_0x99d4[95]][_0x99d4[99]]= _0xd29fx20[_0x99d4[91]];return db[_0x99d4[116]][_0x99d4[94]](_0xd29fx19[_0x99d4[95]])}})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[115]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[115]))};exports[_0x99d4[117]]= function(_0xd29fx19,_0xd29fx1d,_0xd29fx32){return db[_0x99d4[118]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx1d,null,_0x99d4[117]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){return _0xd29fx20[_0x99d4[117]](_0xd29fx19[_0x99d4[95]][_0x99d4[107]],_[_0x99d4[108]](_0xd29fx19[_0x99d4[95]],[_0x99d4[107],_0x99d4[91]])|| {})};return null})[_0x99d4[36]](respondWithResult(_0xd29fx1d,null,_0x99d4[117]))[_0x99d4[27]](handleError(_0xd29fx1d,null,_0x99d4[117]))};exports[_0x99d4[119]]= function(_0xd29fx19,_0xd29fx20,_0xd29fx32){var _0xd29fx23={};var _0xd29fx2f={};var _0xd29fx33;var _0xd29fx24;return db[_0x99d4[70]][_0x99d4[97]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]}})[_0x99d4[36]](handleEntityNotFound(_0xd29fx20,null,_0x99d4[119]))[_0x99d4[36]](function(_0xd29fx20){if(_0xd29fx20){_0xd29fx33= _0xd29fx20;_0xd29fx2f[_0x99d4[68]]= _[_0x99d4[71]](db[_0x99d4[116]][_0x99d4[69]]);_0xd29fx2f[_0x99d4[72]]= _[_0x99d4[71]](_0xd29fx19[_0x99d4[72]]);_0xd29fx2f[_0x99d4[73]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],_0xd29fx2f[_0x99d4[72]]);_0xd29fx23[_0x99d4[75]]= _[_0x99d4[74]](_0xd29fx2f[_0x99d4[68]],qs[_0x99d4[76]](_0xd29fx19[_0x99d4[72]][_0x99d4[76]]));_0xd29fx23[_0x99d4[75]]= (_0xd29fx23[_0x99d4[75]][_0x99d4[77]])?_0xd29fx23[_0x99d4[75]]:_0xd29fx2f[_0x99d4[68]];_0xd29fx23[_0x99d4[80]]= qs[_0x99d4[81]](_0xd29fx19[_0x99d4[72]][_0x99d4[81]]);_0xd29fx23[_0x99d4[82]]= qs[_0x99d4[73]](_[_0x99d4[83]](_0xd29fx19[_0x99d4[72]],_0xd29fx2f[_0x99d4[73]]));if(_0xd29fx19[_0x99d4[72]][_0x99d4[84]]){_0xd29fx23[_0x99d4[82]]= _[_0x99d4[87]](_0xd29fx23[_0x99d4[82]],{$or:_[_0x99d4[86]](_0xd29fx23[_0x99d4[75]],function(_0xd29fx30){var _0xd29fx31={};_0xd29fx31[_0xd29fx30]= {$like:_0x99d4[85]+ _0xd29fx19[_0x99d4[72]][_0x99d4[84]]+ _0x99d4[85]};return _0xd29fx31})})};_0xd29fx23= _[_0x99d4[87]]({},_0xd29fx23,_0xd29fx19[_0x99d4[88]]);return _0xd29fx33[_0x99d4[119]](_0xd29fx23)}})[_0x99d4[36]](function(_0xd29fx35){if(_0xd29fx35){_0xd29fx24= _0xd29fx35[_0x99d4[77]];if(!_0xd29fx19[_0x99d4[72]][_0x99d4[79]](_0x99d4[78])){_0xd29fx23[_0x99d4[47]]= qs[_0x99d4[47]](_0xd29fx19[_0x99d4[72]][_0x99d4[47]]);_0xd29fx23[_0x99d4[46]]= qs[_0x99d4[46]](_0xd29fx19[_0x99d4[72]][_0x99d4[46]])};return _0xd29fx33[_0x99d4[119]](_0xd29fx23)}})[_0x99d4[36]](function(_0xd29fx34){return _0xd29fx34?{count:_0xd29fx24,rows:_0xd29fx34}:null})[_0x99d4[36]](respondWithResult(_0xd29fx20,null,_0x99d4[119]))[_0x99d4[27]](handleError(_0xd29fx20,null,_0x99d4[119]))};exports[_0x99d4[120]]= function(_0xd29fx19,_0xd29fx20,_0xd29fx32){return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]},include:[{model:db[_0x99d4[66]],as:_0x99d4[67],raw:true}]})[_0x99d4[36]](handleEntityNotFound(_0xd29fx20,null,_0x99d4[120]))[_0x99d4[36]](function(_0xd29fx36){if(_0xd29fx36&& _0xd29fx36[_0x99d4[67]]){return respondWithRpcPromise(_0x99d4[121],_0x99d4[120],{account:{service:_0xd29fx36[_0x99d4[67]][_0x99d4[122]],host:_0xd29fx36[_0x99d4[67]][_0x99d4[123]],port:_0xd29fx36[_0x99d4[67]][_0x99d4[124]],secure:_0xd29fx36[_0x99d4[67]][_0x99d4[125]],auth:{user:_0xd29fx36[_0x99d4[67]][_0x99d4[126]],pass:_0xd29fx36[_0x99d4[67]][_0x99d4[127]]},tls:{rejectUnauthorized:false}},message:_0xd29fx19[_0x99d4[95]]})}})[_0x99d4[36]](respondWithResult(_0xd29fx20,null,_0x99d4[120]))[_0x99d4[27]](handleError(_0xd29fx20,null,_0x99d4[120]))};exports[_0x99d4[128]]= function(_0xd29fx19,_0xd29fx20,_0xd29fx32){return db[_0x99d4[70]][_0x99d4[93]]({where:{id:_0xd29fx19[_0x99d4[92]][_0x99d4[91]]},include:[{model:db[_0x99d4[66]],as:_0x99d4[67],raw:true}]})[_0x99d4[36]](handleEntityNotFound(_0xd29fx20,null,_0x99d4[128]))[_0x99d4[36]](function(_0xd29fx36){if(_0xd29fx36&& _0xd29fx36[_0x99d4[67]]){return respondWithRpcPromise(_0x99d4[129],_0x99d4[128],{account:{service:_0xd29fx36[_0x99d4[67]][_0x99d4[122]],host:_0xd29fx36[_0x99d4[67]][_0x99d4[123]],port:_0xd29fx36[_0x99d4[67]][_0x99d4[124]],secure:_0xd29fx36[_0x99d4[67]][_0x99d4[125]],auth:{user:_0xd29fx36[_0x99d4[67]][_0x99d4[126]],pass:_0xd29fx36[_0x99d4[67]][_0x99d4[127]]},tls:{rejectUnauthorized:false}}})}})[_0x99d4[36]](respondWithResult(_0xd29fx20,null,_0x99d4[128]))[_0x99d4[27]](handleError(_0xd29fx20,null,_0x99d4[128]))}
\ No newline at end of file
+var _0x4887=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x49\x6D\x61\x70","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x53\x6D\x74\x70","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x49\x6D\x61\x70","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x49\x6D\x61\x70","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x70","\x73\x65\x74\x49\x6D\x61\x70","\x67\x65\x74\x53\x6D\x74\x70","\x61\x64\x64\x53\x6D\x74\x70","\x72\x65\x6D\x6F\x76\x65\x53\x6D\x74\x70","\x73\x65\x74\x53\x6D\x74\x70","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x53\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x72\x76\x69\x63\x65","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x65\x63\x75\x72\x65","\x75\x73\x65\x72","\x70\x61\x73\x73","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x56\x65\x72\x69\x66\x79\x53\x6D\x74\x70"];_0x4887[0];var jsonpatch=require(_0x4887[1]);var rp=require(_0x4887[2]);var moment=require(_0x4887[3]);var BPromise=require(_0x4887[4]);var util=require(_0x4887[5]);var path=require(_0x4887[6]);var sox=require(_0x4887[7]);var ejs=require(_0x4887[8]);var fs=require(_0x4887[9]);var _=require(_0x4887[10]);var squel=require(_0x4887[11]);var crypto=require(_0x4887[12]);var jsforce=require(_0x4887[13]);var toCsv=require(_0x4887[14]);var qs=require(_0x4887[15]);var logger=require(_0x4887[17])(_0x4887[16]);var utils=require(_0x4887[18]);var config=require(_0x4887[19]);var db=require(_0x4887[21])[_0x4887[20]];var jayson=require(_0x4887[22]);var client=jayson[_0x4887[24]][_0x4887[23]]({port:9003});function respondWithRpcPromise(_0x2624x17,_0x2624x18,_0x2624x19){return  new BPromise(function(_0x2624x1a,_0x2624x1b){return client[_0x4887[37]](_0x2624x17,_0x2624x19)[_0x4887[36]](function(_0x2624x1d){logger[_0x4887[29]](_0x4887[25],_0x2624x18,_0x4887[28]);logger[_0x4887[32]](_0x4887[30],_0x2624x18,_0x4887[28],JSON[_0x4887[31]](_0x2624x1d));if(_0x2624x1d[_0x4887[26]]){if(_0x2624x1d[_0x4887[26]][_0x4887[33]]=== 500){logger[_0x4887[26]](_0x4887[25],_0x2624x18,_0x2624x1d[_0x4887[26]][_0x4887[34]]);return _0x2624x1b(_0x2624x1d[_0x4887[26]][_0x4887[34]])};logger[_0x4887[26]](_0x4887[25],_0x2624x18,_0x2624x1d[_0x4887[26]][_0x4887[34]]);return _0x2624x1a(_0x2624x1d[_0x4887[26]][_0x4887[34]])}else {logger[_0x4887[29]](_0x4887[25],_0x2624x18,_0x4887[28]);_0x2624x1a(_0x2624x1d[_0x4887[35]][_0x4887[34]])}})[_0x4887[27]](function(_0x2624x1c){logger[_0x4887[26]](_0x4887[25],_0x2624x18,_0x2624x1c);_0x2624x1b(_0x2624x1c)})})}function respondWithStatusCode(_0x2624x1d,_0x2624x1f,_0x2624x18){_0x2624x1f= _0x2624x1f|| 204;return function(_0x2624x20){if(_0x2624x20){logger[_0x4887[29]](_0x4887[30],_0x2624x18,_0x2624x1f,_0x4887[38]);logger[_0x4887[32]](_0x4887[39],_0x2624x18,_0x2624x1f,_0x4887[38]);return _0x2624x1d[_0x4887[40]](_0x2624x1f)};return _0x2624x1d[_0x4887[42]](304)[_0x4887[41]]()}}function respondWithResult(_0x2624x1d,_0x2624x1f,_0x2624x18){_0x2624x1f= _0x2624x1f|| 200;return function(_0x2624x20){if(_0x2624x20){logger[_0x4887[29]](_0x4887[30],_0x2624x18,_0x2624x1f,_0x4887[43]);logger[_0x4887[32]](_0x4887[39],_0x2624x18,_0x2624x1f,_0x4887[43],JSON[_0x4887[31]](_0x2624x20));return _0x2624x1d[_0x4887[42]](_0x2624x1f)[_0x4887[44]](_0x2624x20)};return _0x2624x1d[_0x4887[42]](304)[_0x4887[41]]()}}function respondWithFilteredResult(_0x2624x1d,_0x2624x23,_0x2624x18){return function(_0x2624x20){if(_0x2624x20){var _0x2624x24=_0x2624x20[_0x4887[45]],_0x2624x25=_0x2624x23[_0x4887[46]],_0x2624x26=_0x2624x23[_0x4887[46]]+ _0x2624x23[_0x4887[47]],_0x2624x1f;if(_0x2624x26>= _0x2624x24){_0x2624x26= _0x2624x24;_0x2624x1f= 200}else {_0x2624x1f= 206};_0x2624x1d[_0x4887[42]](_0x2624x1f);logger[_0x4887[29]](_0x4887[30],_0x2624x18,_0x2624x1f,_0x4887[48]);logger[_0x4887[32]](_0x4887[39],_0x2624x18,_0x2624x1f,_0x4887[43],JSON[_0x4887[31]](_0x2624x20));return _0x2624x1d[_0x4887[52]](_0x4887[49],_0x2624x25+ _0x4887[50]+ _0x2624x26+ _0x4887[51]+ _0x2624x24)[_0x4887[44]](_0x2624x20)};return null}}function patchUpdates(_0x2624x28){return function(_0x2624x20){try{jsonpatch[_0x4887[53]](_0x2624x20,_0x2624x28,true)}catch(err){return BPromise[_0x4887[54]](err)};return _0x2624x20[_0x4887[55]]()}}function saveUpdates(_0x2624x2a,_0x2624x1f,_0x2624x18){return function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[57]](_0x2624x2a)[_0x4887[36]](function(_0x2624x2b){logger[_0x4887[29]](_0x4887[30],_0x2624x18,_0x2624x1f,_0x4887[56]);logger[_0x4887[32]](_0x4887[39],_0x2624x18,_0x2624x1f,_0x4887[56],JSON[_0x4887[31]](_0x2624x20));return _0x2624x2b})};return null}}function removeEntity(_0x2624x1d,_0x2624x1f,_0x2624x18){return function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[59]]()[_0x4887[36]](function(){logger[_0x4887[29]](_0x4887[30],_0x2624x18,_0x2624x1f,_0x4887[58]);logger[_0x4887[32]](_0x4887[39],_0x2624x18,_0x2624x1f,_0x4887[58],JSON[_0x4887[31]](_0x2624x20));_0x2624x1d[_0x4887[42]](204)[_0x4887[41]]()})}}}function handleEntityNotFound(_0x2624x1d,_0x2624x1f,_0x2624x18){return function(_0x2624x20){if(!_0x2624x20){logger[_0x4887[26]](_0x4887[30],_0x2624x18,404,_0x4887[60]);_0x2624x1d[_0x4887[42]](404)[_0x4887[41]]();return null};return _0x2624x20}}function handleError(_0x2624x1d,_0x2624x1f,_0x2624x18){_0x2624x1f= _0x2624x1f|| 500;return function(_0x2624x1c){logger[_0x4887[26]](_0x4887[30],_0x2624x18,_0x2624x1f,JSON[_0x4887[31]](_0x2624x1c));delete _0x2624x1c[_0x4887[61]];_0x2624x1d[_0x4887[42]](_0x2624x1f)[_0x4887[62]](_0x2624x1c)}}exports[_0x4887[63]]= function(_0x2624x19,_0x2624x1d){var _0x2624x23={include:[{model:db[_0x4887[64]],as:_0x4887[65]},{model:db[_0x4887[66]],as:_0x4887[67]}]},_0x2624x2f={};_0x2624x2f[_0x4887[68]]= _[_0x4887[71]](db[_0x4887[70]][_0x4887[69]]);_0x2624x2f[_0x4887[72]]= _[_0x4887[71]](_0x2624x19[_0x4887[72]]);_0x2624x2f[_0x4887[73]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],_0x2624x2f[_0x4887[72]]);_0x2624x23[_0x4887[75]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],qs[_0x4887[76]](_0x2624x19[_0x4887[72]][_0x4887[76]]));_0x2624x23[_0x4887[75]]= (_0x2624x23[_0x4887[75]][_0x4887[77]])?_0x2624x23[_0x4887[75]]:_0x2624x2f[_0x4887[68]];if(!_0x2624x19[_0x4887[72]][_0x4887[79]](_0x4887[78])){_0x2624x23[_0x4887[47]]= qs[_0x4887[47]](_0x2624x19[_0x4887[72]][_0x4887[47]]);_0x2624x23[_0x4887[46]]= qs[_0x4887[46]](_0x2624x19[_0x4887[72]][_0x4887[46]])};_0x2624x23[_0x4887[80]]= qs[_0x4887[81]](_0x2624x19[_0x4887[72]][_0x4887[81]]);_0x2624x23[_0x4887[82]]= qs[_0x4887[73]](_[_0x4887[83]](_0x2624x19[_0x4887[72]],_0x2624x2f[_0x4887[73]]));if(_0x2624x19[_0x4887[72]][_0x4887[84]]){_0x2624x23[_0x4887[82]]= _[_0x4887[87]](_0x2624x23[_0x4887[82]],{$or:_[_0x4887[86]](_0x2624x23[_0x4887[75]],function(_0x2624x30){var _0x2624x31={};_0x2624x31[_0x2624x30]= {$like:_0x4887[85]+ _0x2624x19[_0x4887[72]][_0x4887[84]]+ _0x4887[85]};return _0x2624x31})})};_0x2624x23= _[_0x4887[87]]({},_0x2624x23,_0x2624x19[_0x4887[88]]);return db[_0x4887[70]][_0x4887[89]](_0x2624x23)[_0x4887[36]](respondWithFilteredResult(_0x2624x1d,_0x2624x23,_0x4887[63]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[63]))};exports[_0x4887[90]]= function(_0x2624x19,_0x2624x1d){var _0x2624x23={raw:false,where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]},include:[{model:db[_0x4887[64]],as:_0x4887[65]},{model:db[_0x4887[66]],as:_0x4887[67]}]},_0x2624x2f={};_0x2624x2f[_0x4887[68]]= _[_0x4887[71]](db[_0x4887[70]][_0x4887[69]]);_0x2624x2f[_0x4887[72]]= _[_0x4887[71]](_0x2624x19[_0x4887[72]]);_0x2624x2f[_0x4887[73]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],_0x2624x2f[_0x4887[72]]);_0x2624x23[_0x4887[75]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],qs[_0x4887[76]](_0x2624x19[_0x4887[72]][_0x4887[76]]));_0x2624x23[_0x4887[75]]= (_0x2624x23[_0x4887[75]][_0x4887[77]])?_0x2624x23[_0x4887[75]]:_0x2624x2f[_0x4887[68]];_0x2624x23= _[_0x4887[87]]({},_0x2624x23,_0x2624x19[_0x4887[88]]);return db[_0x4887[70]][_0x4887[93]](_0x2624x23)[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[90]))[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[90]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[90]))};exports[_0x4887[94]]= function(_0x2624x19,_0x2624x1d){return db[_0x4887[70]][_0x4887[94]](_0x2624x19[_0x4887[95]],{include:[{model:db[_0x4887[66]],as:_0x4887[67]}]})[_0x4887[36]](respondWithResult(_0x2624x1d,201,_0x4887[94]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[94]))};exports[_0x4887[57]]= function(_0x2624x19,_0x2624x1d){if(_0x2624x19[_0x4887[95]][_0x4887[91]]){delete _0x2624x19[_0x4887[95]][_0x4887[91]]};return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]},include:[{model:db[_0x4887[64]],as:_0x4887[65]},{model:db[_0x4887[66]],as:_0x4887[67]}]})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[57]))[_0x4887[36]](saveUpdates(_0x2624x19[_0x4887[95]],null,_0x4887[57]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20&& _0x2624x19[_0x4887[95]][_0x4887[65]]){return db[_0x4887[64]][_0x4887[57]](_0x2624x19[_0x4887[95]].Imap,{where:{MailAccountId:_0x2624x20[_0x4887[91]]}})[_0x4887[36]](function(){return _0x2624x20})};return _0x2624x20})[_0x4887[36]](function(_0x2624x20){if(_0x2624x20&& _0x2624x19[_0x4887[95]][_0x4887[67]]){return db[_0x4887[66]][_0x4887[57]](_0x2624x19[_0x4887[95]].Smtp,{where:{MailAccountId:_0x2624x20[_0x4887[91]]}})[_0x4887[36]](function(){return _0x2624x20})};return _0x2624x20})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[57]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[57]))};exports[_0x4887[59]]= function(_0x2624x19,_0x2624x1d){return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[59]))[_0x4887[36]](removeEntity(_0x2624x1d,null,_0x4887[59]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[59]))};exports[_0x4887[96]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[96]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[96]]()};return null})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[96]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[96]))};exports[_0x4887[98]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){if(_0x2624x19[_0x4887[95]][_0x4887[91]]){delete _0x2624x19[_0x4887[95]][_0x4887[91]]};return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[98]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){_0x2624x19[_0x4887[95]][_0x4887[99]]= _0x2624x20[_0x4887[91]];return db[_0x4887[64]][_0x4887[94]](_0x2624x19[_0x4887[95]])}})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[98]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[98]))};exports[_0x4887[100]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[100]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[101]](null)};return null})[_0x4887[36]](respondWithStatusCode(_0x2624x1d,null,_0x4887[100]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[100]))};exports[_0x4887[102]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[102]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[102]]()};return null})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[102]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[102]))};exports[_0x4887[103]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){if(_0x2624x19[_0x4887[95]][_0x4887[91]]){delete _0x2624x19[_0x4887[95]][_0x4887[91]]};return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[103]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){_0x2624x19[_0x4887[95]][_0x4887[99]]= _0x2624x20[_0x4887[91]];return db[_0x4887[66]][_0x4887[94]](_0x2624x19[_0x4887[95]])}})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[103]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[103]))};exports[_0x4887[104]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[104]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[105]](null)};return null})[_0x4887[36]](respondWithStatusCode(_0x2624x1d,null,_0x4887[104]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[104]))};exports[_0x4887[106]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[109]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[106]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[106]](_0x2624x19[_0x4887[95]][_0x4887[107]],_[_0x4887[108]](_0x2624x19[_0x4887[95]],[_0x4887[107],_0x4887[91]])|| {})};return null})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[106]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[106]))};exports[_0x4887[110]]= function(_0x2624x19,_0x2624x20,_0x2624x32){var _0x2624x23={};var _0x2624x2f={};var _0x2624x33;var _0x2624x24;return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x20,null,_0x4887[110]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){_0x2624x33= _0x2624x20;_0x2624x2f[_0x4887[68]]= _[_0x4887[71]](db[_0x4887[109]][_0x4887[69]]);_0x2624x2f[_0x4887[72]]= _[_0x4887[71]](_0x2624x19[_0x4887[72]]);_0x2624x2f[_0x4887[73]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],_0x2624x2f[_0x4887[72]]);_0x2624x23[_0x4887[75]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],qs[_0x4887[76]](_0x2624x19[_0x4887[72]][_0x4887[76]]));_0x2624x23[_0x4887[75]]= (_0x2624x23[_0x4887[75]][_0x4887[77]])?_0x2624x23[_0x4887[75]]:_0x2624x2f[_0x4887[68]];_0x2624x23[_0x4887[80]]= qs[_0x4887[81]](_0x2624x19[_0x4887[72]][_0x4887[81]]);_0x2624x23[_0x4887[82]]= qs[_0x4887[73]](_[_0x4887[83]](_0x2624x19[_0x4887[72]],_0x2624x2f[_0x4887[73]]));if(_0x2624x19[_0x4887[72]][_0x4887[84]]){_0x2624x23[_0x4887[82]]= _[_0x4887[87]](_0x2624x23[_0x4887[82]],{$or:_[_0x4887[86]](_0x2624x23[_0x4887[75]],function(_0x2624x30){var _0x2624x31={};_0x2624x31[_0x2624x30]= {$like:_0x4887[85]+ _0x2624x19[_0x4887[72]][_0x4887[84]]+ _0x4887[85]};return _0x2624x31})})};_0x2624x23= _[_0x4887[87]]({},_0x2624x23,_0x2624x19[_0x4887[88]]);return _0x2624x33[_0x4887[110]](_0x2624x23)}})[_0x4887[36]](function(_0x2624x35){if(_0x2624x35){_0x2624x24= _0x2624x35[_0x4887[77]];if(!_0x2624x19[_0x4887[72]][_0x4887[79]](_0x4887[78])){_0x2624x23[_0x4887[47]]= qs[_0x4887[47]](_0x2624x19[_0x4887[72]][_0x4887[47]]);_0x2624x23[_0x4887[46]]= qs[_0x4887[46]](_0x2624x19[_0x4887[72]][_0x4887[46]])};return _0x2624x33[_0x4887[110]](_0x2624x23)}})[_0x4887[36]](function(_0x2624x34){return _0x2624x34?{count:_0x2624x24,rows:_0x2624x34}:null})[_0x4887[36]](respondWithResult(_0x2624x20,null,_0x4887[110]))[_0x4887[27]](handleError(_0x2624x20,null,_0x4887[110]))};exports[_0x4887[111]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[112]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[111]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[111]](_0x2624x19[_0x4887[95]][_0x4887[107]],_[_0x4887[108]](_0x2624x19[_0x4887[95]],[_0x4887[107],_0x4887[91]])|| {})};return null})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[111]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[111]))};exports[_0x4887[113]]= function(_0x2624x19,_0x2624x20,_0x2624x32){var _0x2624x23={};var _0x2624x2f={};var _0x2624x33;var _0x2624x24;return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x20,null,_0x4887[113]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){_0x2624x33= _0x2624x20;_0x2624x2f[_0x4887[68]]= _[_0x4887[71]](db[_0x4887[114]][_0x4887[69]]);_0x2624x2f[_0x4887[72]]= _[_0x4887[71]](_0x2624x19[_0x4887[72]]);_0x2624x2f[_0x4887[73]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],_0x2624x2f[_0x4887[72]]);_0x2624x23[_0x4887[75]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],qs[_0x4887[76]](_0x2624x19[_0x4887[72]][_0x4887[76]]));_0x2624x23[_0x4887[75]]= (_0x2624x23[_0x4887[75]][_0x4887[77]])?_0x2624x23[_0x4887[75]]:_0x2624x2f[_0x4887[68]];_0x2624x23[_0x4887[80]]= qs[_0x4887[81]](_0x2624x19[_0x4887[72]][_0x4887[81]]);_0x2624x23[_0x4887[82]]= qs[_0x4887[73]](_[_0x4887[83]](_0x2624x19[_0x4887[72]],_0x2624x2f[_0x4887[73]]));if(_0x2624x19[_0x4887[72]][_0x4887[84]]){_0x2624x23[_0x4887[82]]= _[_0x4887[87]](_0x2624x23[_0x4887[82]],{$or:_[_0x4887[86]](_0x2624x23[_0x4887[75]],function(_0x2624x30){var _0x2624x31={};_0x2624x31[_0x2624x30]= {$like:_0x4887[85]+ _0x2624x19[_0x4887[72]][_0x4887[84]]+ _0x4887[85]};return _0x2624x31})})};_0x2624x23= _[_0x4887[87]]({},_0x2624x23,_0x2624x19[_0x4887[88]]);return _0x2624x33[_0x4887[113]](_0x2624x23)}})[_0x4887[36]](function(_0x2624x35){if(_0x2624x35){_0x2624x24= _0x2624x35[_0x4887[77]];if(!_0x2624x19[_0x4887[72]][_0x4887[79]](_0x4887[78])){_0x2624x23[_0x4887[47]]= qs[_0x4887[47]](_0x2624x19[_0x4887[72]][_0x4887[47]]);_0x2624x23[_0x4887[46]]= qs[_0x4887[46]](_0x2624x19[_0x4887[72]][_0x4887[46]])};return _0x2624x33[_0x4887[113]](_0x2624x23)}})[_0x4887[36]](function(_0x2624x34){return _0x2624x34?{count:_0x2624x24,rows:_0x2624x34}:null})[_0x4887[36]](respondWithResult(_0x2624x20,null,_0x4887[113]))[_0x4887[27]](handleError(_0x2624x20,null,_0x4887[113]))};exports[_0x4887[115]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){if(_0x2624x19[_0x4887[95]][_0x4887[91]]){delete _0x2624x19[_0x4887[95]][_0x4887[91]]};return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[115]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){_0x2624x19[_0x4887[95]][_0x4887[99]]= _0x2624x20[_0x4887[91]];return db[_0x4887[116]][_0x4887[94]](_0x2624x19[_0x4887[95]])}})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[115]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[115]))};exports[_0x4887[117]]= function(_0x2624x19,_0x2624x1d,_0x2624x32){return db[_0x4887[118]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x1d,null,_0x4887[117]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){return _0x2624x20[_0x4887[117]](_0x2624x19[_0x4887[95]][_0x4887[107]],_[_0x4887[108]](_0x2624x19[_0x4887[95]],[_0x4887[107],_0x4887[91]])|| {})};return null})[_0x4887[36]](respondWithResult(_0x2624x1d,null,_0x4887[117]))[_0x4887[27]](handleError(_0x2624x1d,null,_0x4887[117]))};exports[_0x4887[119]]= function(_0x2624x19,_0x2624x20,_0x2624x32){var _0x2624x23={};var _0x2624x2f={};var _0x2624x33;var _0x2624x24;return db[_0x4887[70]][_0x4887[97]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]}})[_0x4887[36]](handleEntityNotFound(_0x2624x20,null,_0x4887[119]))[_0x4887[36]](function(_0x2624x20){if(_0x2624x20){_0x2624x33= _0x2624x20;_0x2624x2f[_0x4887[68]]= _[_0x4887[71]](db[_0x4887[116]][_0x4887[69]]);_0x2624x2f[_0x4887[72]]= _[_0x4887[71]](_0x2624x19[_0x4887[72]]);_0x2624x2f[_0x4887[73]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],_0x2624x2f[_0x4887[72]]);_0x2624x23[_0x4887[75]]= _[_0x4887[74]](_0x2624x2f[_0x4887[68]],qs[_0x4887[76]](_0x2624x19[_0x4887[72]][_0x4887[76]]));_0x2624x23[_0x4887[75]]= (_0x2624x23[_0x4887[75]][_0x4887[77]])?_0x2624x23[_0x4887[75]]:_0x2624x2f[_0x4887[68]];_0x2624x23[_0x4887[80]]= qs[_0x4887[81]](_0x2624x19[_0x4887[72]][_0x4887[81]]);_0x2624x23[_0x4887[82]]= qs[_0x4887[73]](_[_0x4887[83]](_0x2624x19[_0x4887[72]],_0x2624x2f[_0x4887[73]]));if(_0x2624x19[_0x4887[72]][_0x4887[84]]){_0x2624x23[_0x4887[82]]= _[_0x4887[87]](_0x2624x23[_0x4887[82]],{$or:_[_0x4887[86]](_0x2624x23[_0x4887[75]],function(_0x2624x30){var _0x2624x31={};_0x2624x31[_0x2624x30]= {$like:_0x4887[85]+ _0x2624x19[_0x4887[72]][_0x4887[84]]+ _0x4887[85]};return _0x2624x31})})};_0x2624x23= _[_0x4887[87]]({},_0x2624x23,_0x2624x19[_0x4887[88]]);return _0x2624x33[_0x4887[119]](_0x2624x23)}})[_0x4887[36]](function(_0x2624x35){if(_0x2624x35){_0x2624x24= _0x2624x35[_0x4887[77]];if(!_0x2624x19[_0x4887[72]][_0x4887[79]](_0x4887[78])){_0x2624x23[_0x4887[47]]= qs[_0x4887[47]](_0x2624x19[_0x4887[72]][_0x4887[47]]);_0x2624x23[_0x4887[46]]= qs[_0x4887[46]](_0x2624x19[_0x4887[72]][_0x4887[46]])};return _0x2624x33[_0x4887[119]](_0x2624x23)}})[_0x4887[36]](function(_0x2624x34){return _0x2624x34?{count:_0x2624x24,rows:_0x2624x34}:null})[_0x4887[36]](respondWithResult(_0x2624x20,null,_0x4887[119]))[_0x4887[27]](handleError(_0x2624x20,null,_0x4887[119]))};exports[_0x4887[120]]= function(_0x2624x19,_0x2624x20,_0x2624x32){return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]},include:[{model:db[_0x4887[66]],as:_0x4887[67],raw:true}]})[_0x4887[36]](handleEntityNotFound(_0x2624x20,null,_0x4887[120]))[_0x4887[36]](function(_0x2624x36){if(_0x2624x36&& _0x2624x36[_0x4887[67]]){return respondWithRpcPromise(_0x4887[121],_0x4887[120],{account:{service:_0x2624x36[_0x4887[67]][_0x4887[122]],host:_0x2624x36[_0x4887[67]][_0x4887[123]],port:_0x2624x36[_0x4887[67]][_0x4887[124]],secure:_0x2624x36[_0x4887[67]][_0x4887[125]],auth:{user:_0x2624x36[_0x4887[67]][_0x4887[126]],pass:_0x2624x36[_0x4887[67]][_0x4887[127]]},tls:{rejectUnauthorized:false}},message:_0x2624x19[_0x4887[95]]})}})[_0x4887[36]](respondWithResult(_0x2624x20,null,_0x4887[120]))[_0x4887[27]](handleError(_0x2624x20,null,_0x4887[120]))};exports[_0x4887[128]]= function(_0x2624x19,_0x2624x20,_0x2624x32){return db[_0x4887[70]][_0x4887[93]]({where:{id:_0x2624x19[_0x4887[92]][_0x4887[91]]},include:[{model:db[_0x4887[66]],as:_0x4887[67],raw:true}]})[_0x4887[36]](handleEntityNotFound(_0x2624x20,null,_0x4887[128]))[_0x4887[36]](function(_0x2624x36){if(_0x2624x36&& _0x2624x36[_0x4887[67]]){return respondWithRpcPromise(_0x4887[129],_0x4887[128],{account:{service:_0x2624x36[_0x4887[67]][_0x4887[122]],host:_0x2624x36[_0x4887[67]][_0x4887[123]],port:_0x2624x36[_0x4887[67]][_0x4887[124]],secure:_0x2624x36[_0x4887[67]][_0x4887[125]],auth:{user:_0x2624x36[_0x4887[67]][_0x4887[126]],pass:_0x2624x36[_0x4887[67]][_0x4887[127]]},tls:{rejectUnauthorized:false}}})}})[_0x4887[36]](respondWithResult(_0x2624x20,null,_0x4887[128]))[_0x4887[27]](handleError(_0x2624x20,null,_0x4887[128]))}
\ No newline at end of file
index 5d3aa63..1d78453 100644 (file)
@@ -1 +1 @@
-var _0xf656=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xf656[0];var _=require(_0xf656[1]);var util=require(_0xf656[2]);var logger=require(_0xf656[4])(_0xf656[3]);var attributes=require(_0xf656[5]);module[_0xf656[6]]= function(_0xdf7dx5,_0xdf7dx6){return _0xdf7dx5[_0xf656[9]](_0xf656[7],attributes,{tableName:_0xf656[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x86a4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x86a4[0];var _=require(_0x86a4[1]);var util=require(_0x86a4[2]);var logger=require(_0x86a4[4])(_0x86a4[3]);var attributes=require(_0x86a4[5]);module[_0x86a4[6]]= function(_0xfd9bx5,_0xfd9bx6){return _0xfd9bx5[_0x86a4[9]](_0x86a4[7],attributes,{tableName:_0x86a4[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4786714..d991e8a 100644 (file)
@@ -1 +1 @@
-var _0x6518=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6518[0];var _=require(_0x6518[1]);var util=require(_0x6518[2]);var moment=require(_0x6518[3]);var BPromise=require(_0x6518[4]);var db=require(_0x6518[6])[_0x6518[5]];var utils=require(_0x6518[7]);var logger=require(_0x6518[9])(_0x6518[8]);var jayson=require(_0x6518[10]);var client=jayson[_0x6518[12]][_0x6518[11]]({port:9002});function respondWithRpcPromise(_0x2644xb,_0x2644xc,_0x2644xd){return  new BPromise(function(_0x2644xe,_0x2644xf){return client[_0x6518[25]](_0x2644xb,_0x2644xd)[_0x6518[24]](function(_0x2644x11){logger[_0x6518[17]](_0x6518[13],_0x2644xc,_0x6518[16]);logger[_0x6518[20]](_0x6518[18],_0x2644xc,_0x6518[16],JSON[_0x6518[19]](_0x2644x11));if(_0x2644x11[_0x6518[14]]){if(_0x2644x11[_0x6518[14]][_0x6518[21]]=== 500){logger[_0x6518[14]](_0x6518[13],_0x2644xc,_0x2644x11[_0x6518[14]][_0x6518[22]]);return _0x2644xf(_0x2644x11[_0x6518[14]][_0x6518[22]])};logger[_0x6518[14]](_0x6518[13],_0x2644xc,_0x2644x11[_0x6518[14]][_0x6518[22]]);return _0x2644xe(_0x2644x11[_0x6518[14]][_0x6518[22]])}else {logger[_0x6518[17]](_0x6518[13],_0x2644xc,_0x6518[16]);_0x2644xe(_0x2644x11[_0x6518[23]][_0x6518[22]])}})[_0x6518[15]](function(_0x2644x10){logger[_0x6518[14]](_0x6518[13],_0x2644xc,_0x2644x10);_0x2644xf(_0x2644x10)})})}
\ No newline at end of file
+var _0xb046=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb046[0];var _=require(_0xb046[1]);var util=require(_0xb046[2]);var moment=require(_0xb046[3]);var BPromise=require(_0xb046[4]);var db=require(_0xb046[6])[_0xb046[5]];var utils=require(_0xb046[7]);var logger=require(_0xb046[9])(_0xb046[8]);var jayson=require(_0xb046[10]);var client=jayson[_0xb046[12]][_0xb046[11]]({port:9002});function respondWithRpcPromise(_0x82ffxb,_0x82ffxc,_0x82ffxd){return  new BPromise(function(_0x82ffxe,_0x82ffxf){return client[_0xb046[25]](_0x82ffxb,_0x82ffxd)[_0xb046[24]](function(_0x82ffx11){logger[_0xb046[17]](_0xb046[13],_0x82ffxc,_0xb046[16]);logger[_0xb046[20]](_0xb046[18],_0x82ffxc,_0xb046[16],JSON[_0xb046[19]](_0x82ffx11));if(_0x82ffx11[_0xb046[14]]){if(_0x82ffx11[_0xb046[14]][_0xb046[21]]=== 500){logger[_0xb046[14]](_0xb046[13],_0x82ffxc,_0x82ffx11[_0xb046[14]][_0xb046[22]]);return _0x82ffxf(_0x82ffx11[_0xb046[14]][_0xb046[22]])};logger[_0xb046[14]](_0xb046[13],_0x82ffxc,_0x82ffx11[_0xb046[14]][_0xb046[22]]);return _0x82ffxe(_0x82ffx11[_0xb046[14]][_0xb046[22]])}else {logger[_0xb046[17]](_0xb046[13],_0x82ffxc,_0xb046[16]);_0x82ffxe(_0x82ffx11[_0xb046[23]][_0xb046[22]])}})[_0xb046[15]](function(_0x82ffx10){logger[_0xb046[14]](_0xb046[13],_0x82ffxc,_0x82ffx10);_0x82ffxf(_0x82ffx10)})})}
\ No newline at end of file
index c58d75a..0d1ba54 100644 (file)
@@ -1 +1 @@
-var _0x4d8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4d8c[0];var multer=require(_0x4d8c[1]);var util=require(_0x4d8c[2]);var path=require(_0x4d8c[3]);var express=require(_0x4d8c[4]);var router=express.Router();var auth=require(_0x4d8c[5]);var config=require(_0x4d8c[6]);var controller=require(_0x4d8c[7]);router[_0x4d8c[11]](_0x4d8c[8],auth[_0x4d8c[9]](),controller[_0x4d8c[10]]);router[_0x4d8c[13]](_0x4d8c[8],auth[_0x4d8c[9]](),controller[_0x4d8c[12]]);router[_0x4d8c[15]](_0x4d8c[8],auth[_0x4d8c[9]](),controller[_0x4d8c[14]]);module[_0x4d8c[16]]= router
\ No newline at end of file
+var _0xd288=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd288[0];var multer=require(_0xd288[1]);var util=require(_0xd288[2]);var path=require(_0xd288[3]);var express=require(_0xd288[4]);var router=express.Router();var auth=require(_0xd288[5]);var config=require(_0xd288[6]);var controller=require(_0xd288[7]);router[_0xd288[11]](_0xd288[8],auth[_0xd288[9]](),controller[_0xd288[10]]);router[_0xd288[13]](_0xd288[8],auth[_0xd288[9]](),controller[_0xd288[12]]);router[_0xd288[15]](_0xd288[8],auth[_0xd288[9]](),controller[_0xd288[14]]);module[_0xd288[16]]= router
\ No newline at end of file
index b2cc4f9..193452f 100644 (file)
@@ -1 +1 @@
-var _0xb923=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x72\x65\x70\x6C\x79\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0xb923[0];var Sequelize=require(_0xb923[1]);module[_0xb923[2]]= {app:{type:Sequelize.ENUM(_0xb923[3],_0xb923[4],_0xb923[5],_0xb923[6],_0xb923[7])},priority:{type:Sequelize[_0xb923[8]]},timeout:{type:Sequelize[_0xb923[8]],validate:{min:1}},interval:{type:Sequelize[_0xb923[9]]},data1:{type:Sequelize[_0xb923[9]]},data2:{type:Sequelize[_0xb923[9]]},data3:{type:Sequelize[_0xb923[9]]},data4:{type:Sequelize[_0xb923[9]]},data5:{type:Sequelize[_0xb923[9]]},data6:{type:Sequelize[_0xb923[9]]},data7:{type:Sequelize[_0xb923[10]]},data8:{type:Sequelize[_0xb923[8]]},data9:{type:Sequelize[_0xb923[8]]},data10:{type:Sequelize[_0xb923[8]]}}
\ No newline at end of file
+var _0x3504=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x72\x65\x70\x6C\x79\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x3504[0];var Sequelize=require(_0x3504[1]);module[_0x3504[2]]= {app:{type:Sequelize.ENUM(_0x3504[3],_0x3504[4],_0x3504[5],_0x3504[6],_0x3504[7])},priority:{type:Sequelize[_0x3504[8]]},timeout:{type:Sequelize[_0x3504[8]],validate:{min:1}},interval:{type:Sequelize[_0x3504[9]]},data1:{type:Sequelize[_0x3504[9]]},data2:{type:Sequelize[_0x3504[9]]},data3:{type:Sequelize[_0x3504[9]]},data4:{type:Sequelize[_0x3504[9]]},data5:{type:Sequelize[_0x3504[9]]},data6:{type:Sequelize[_0x3504[9]]},data7:{type:Sequelize[_0x3504[10]]},data8:{type:Sequelize[_0x3504[8]]},data9:{type:Sequelize[_0x3504[8]]},data10:{type:Sequelize[_0x3504[8]]}}
\ No newline at end of file
index 531acc7..708a86d 100644 (file)
@@ -1 +1 @@
-var _0x4abd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x4abd[0];var jsonpatch=require(_0x4abd[1]);var rp=require(_0x4abd[2]);var moment=require(_0x4abd[3]);var BPromise=require(_0x4abd[4]);var util=require(_0x4abd[5]);var path=require(_0x4abd[6]);var sox=require(_0x4abd[7]);var ejs=require(_0x4abd[8]);var fs=require(_0x4abd[9]);var _=require(_0x4abd[10]);var squel=require(_0x4abd[11]);var crypto=require(_0x4abd[12]);var jsforce=require(_0x4abd[13]);var toCsv=require(_0x4abd[14]);var qs=require(_0x4abd[15]);var logger=require(_0x4abd[17])(_0x4abd[16]);var utils=require(_0x4abd[18]);var config=require(_0x4abd[19]);var db=require(_0x4abd[21])[_0x4abd[20]];function respondWithStatusCode(_0x599bx15,_0x599bx16,_0x599bx17){_0x599bx16= _0x599bx16|| 204;return function(_0x599bx18){if(_0x599bx18){logger[_0x4abd[24]](_0x4abd[22],_0x599bx17,_0x599bx16,_0x4abd[23]);logger[_0x4abd[26]](_0x4abd[25],_0x599bx17,_0x599bx16,_0x4abd[23]);return _0x599bx15[_0x4abd[27]](_0x599bx16)};return _0x599bx15[_0x4abd[29]](304)[_0x4abd[28]]()}}function respondWithResult(_0x599bx15,_0x599bx16,_0x599bx17){_0x599bx16= _0x599bx16|| 200;return function(_0x599bx18){if(_0x599bx18){logger[_0x4abd[24]](_0x4abd[22],_0x599bx17,_0x599bx16,_0x4abd[30]);logger[_0x4abd[26]](_0x4abd[25],_0x599bx17,_0x599bx16,_0x4abd[30],JSON[_0x4abd[31]](_0x599bx18));return _0x599bx15[_0x4abd[29]](_0x599bx16)[_0x4abd[32]](_0x599bx18)};return _0x599bx15[_0x4abd[29]](304)[_0x4abd[28]]()}}function respondWithFilteredResult(_0x599bx15,_0x599bx1b,_0x599bx17){return function(_0x599bx18){if(_0x599bx18){var _0x599bx1c=_0x599bx18[_0x4abd[33]],_0x599bx1d=_0x599bx1b[_0x4abd[34]],_0x599bx1e=_0x599bx1b[_0x4abd[34]]+ _0x599bx1b[_0x4abd[35]],_0x599bx16;if(_0x599bx1e>= _0x599bx1c){_0x599bx1e= _0x599bx1c;_0x599bx16= 200}else {_0x599bx16= 206};_0x599bx15[_0x4abd[29]](_0x599bx16);logger[_0x4abd[24]](_0x4abd[22],_0x599bx17,_0x599bx16,_0x4abd[36]);logger[_0x4abd[26]](_0x4abd[25],_0x599bx17,_0x599bx16,_0x4abd[30],JSON[_0x4abd[31]](_0x599bx18));return _0x599bx15[_0x4abd[40]](_0x4abd[37],_0x599bx1d+ _0x4abd[38]+ _0x599bx1e+ _0x4abd[39]+ _0x599bx1c)[_0x4abd[32]](_0x599bx18)};return null}}function patchUpdates(_0x599bx20){return function(_0x599bx18){try{jsonpatch[_0x4abd[41]](_0x599bx18,_0x599bx20,true)}catch(err){return BPromise[_0x4abd[42]](err)};return _0x599bx18[_0x4abd[43]]()}}function saveUpdates(_0x599bx22,_0x599bx16,_0x599bx17){return function(_0x599bx18){if(_0x599bx18){return _0x599bx18[_0x4abd[46]](_0x599bx22)[_0x4abd[45]](function(_0x599bx23){logger[_0x4abd[24]](_0x4abd[22],_0x599bx17,_0x599bx16,_0x4abd[44]);logger[_0x4abd[26]](_0x4abd[25],_0x599bx17,_0x599bx16,_0x4abd[44],JSON[_0x4abd[31]](_0x599bx18));return _0x599bx23})};return null}}function removeEntity(_0x599bx15,_0x599bx16,_0x599bx17){return function(_0x599bx18){if(_0x599bx18){return _0x599bx18[_0x4abd[48]]()[_0x4abd[45]](function(){logger[_0x4abd[24]](_0x4abd[22],_0x599bx17,_0x599bx16,_0x4abd[47]);logger[_0x4abd[26]](_0x4abd[25],_0x599bx17,_0x599bx16,_0x4abd[47],JSON[_0x4abd[31]](_0x599bx18));_0x599bx15[_0x4abd[29]](204)[_0x4abd[28]]()})}}}function handleEntityNotFound(_0x599bx15,_0x599bx16,_0x599bx17){return function(_0x599bx18){if(!_0x599bx18){logger[_0x4abd[50]](_0x4abd[22],_0x599bx17,404,_0x4abd[49]);_0x599bx15[_0x4abd[29]](404)[_0x4abd[28]]();return null};return _0x599bx18}}function handleError(_0x599bx15,_0x599bx16,_0x599bx17){_0x599bx16= _0x599bx16|| 500;return function(_0x599bx27){logger[_0x4abd[50]](_0x4abd[22],_0x599bx17,_0x599bx16,JSON[_0x4abd[31]](_0x599bx27));delete _0x599bx27[_0x4abd[51]];_0x599bx15[_0x4abd[29]](_0x599bx16)[_0x4abd[52]](_0x599bx27)}}exports[_0x4abd[53]]= function(_0x599bx28,_0x599bx15){var _0x599bx1b={raw:true,where:{id:_0x599bx28[_0x4abd[55]][_0x4abd[54]]}},_0x599bx29={};_0x599bx29[_0x4abd[56]]= _[_0x4abd[59]](db[_0x4abd[58]][_0x4abd[57]]);_0x599bx29[_0x4abd[60]]= _[_0x4abd[59]](_0x599bx28[_0x4abd[60]]);_0x599bx29[_0x4abd[61]]= _[_0x4abd[62]](_0x599bx29[_0x4abd[56]],_0x599bx29[_0x4abd[60]]);_0x599bx1b[_0x4abd[63]]= _[_0x4abd[62]](_0x599bx29[_0x4abd[56]],qs[_0x4abd[64]](_0x599bx28[_0x4abd[60]][_0x4abd[64]]));_0x599bx1b[_0x4abd[63]]= (_0x599bx1b[_0x4abd[63]][_0x4abd[65]])?_0x599bx1b[_0x4abd[63]]:_0x599bx29[_0x4abd[56]];_0x599bx1b= _[_0x4abd[67]]({},_0x599bx1b,_0x599bx28[_0x4abd[66]]);return db[_0x4abd[58]][_0x4abd[69]](_0x599bx1b)[_0x4abd[45]](handleEntityNotFound(_0x599bx15,null,_0x4abd[53]))[_0x4abd[45]](respondWithResult(_0x599bx15,null,_0x4abd[53]))[_0x4abd[68]](handleError(_0x599bx15,null,_0x4abd[53]))};exports[_0x4abd[46]]= function(_0x599bx28,_0x599bx15){if(_0x599bx28[_0x4abd[70]][_0x4abd[54]]){delete _0x599bx28[_0x4abd[70]][_0x4abd[54]]};return db[_0x4abd[58]][_0x4abd[69]]({where:{id:_0x599bx28[_0x4abd[55]][_0x4abd[54]]}})[_0x4abd[45]](handleEntityNotFound(_0x599bx15,null,_0x4abd[46]))[_0x4abd[45]](saveUpdates(_0x599bx28[_0x4abd[70]],null,_0x4abd[46]))[_0x4abd[45]](respondWithResult(_0x599bx15,null,_0x4abd[46]))[_0x4abd[68]](handleError(_0x599bx15,null,_0x4abd[46]))};exports[_0x4abd[48]]= function(_0x599bx28,_0x599bx15){return db[_0x4abd[58]][_0x4abd[69]]({where:{id:_0x599bx28[_0x4abd[55]][_0x4abd[54]]}})[_0x4abd[45]](handleEntityNotFound(_0x599bx15,null,_0x4abd[48]))[_0x4abd[45]](removeEntity(_0x599bx15,null,_0x4abd[48]))[_0x4abd[68]](handleError(_0x599bx15,null,_0x4abd[48]))}
\ No newline at end of file
+var _0xd8b6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xd8b6[0];var jsonpatch=require(_0xd8b6[1]);var rp=require(_0xd8b6[2]);var moment=require(_0xd8b6[3]);var BPromise=require(_0xd8b6[4]);var util=require(_0xd8b6[5]);var path=require(_0xd8b6[6]);var sox=require(_0xd8b6[7]);var ejs=require(_0xd8b6[8]);var fs=require(_0xd8b6[9]);var _=require(_0xd8b6[10]);var squel=require(_0xd8b6[11]);var crypto=require(_0xd8b6[12]);var jsforce=require(_0xd8b6[13]);var toCsv=require(_0xd8b6[14]);var qs=require(_0xd8b6[15]);var logger=require(_0xd8b6[17])(_0xd8b6[16]);var utils=require(_0xd8b6[18]);var config=require(_0xd8b6[19]);var db=require(_0xd8b6[21])[_0xd8b6[20]];function respondWithStatusCode(_0xfa4fx15,_0xfa4fx16,_0xfa4fx17){_0xfa4fx16= _0xfa4fx16|| 204;return function(_0xfa4fx18){if(_0xfa4fx18){logger[_0xd8b6[24]](_0xd8b6[22],_0xfa4fx17,_0xfa4fx16,_0xd8b6[23]);logger[_0xd8b6[26]](_0xd8b6[25],_0xfa4fx17,_0xfa4fx16,_0xd8b6[23]);return _0xfa4fx15[_0xd8b6[27]](_0xfa4fx16)};return _0xfa4fx15[_0xd8b6[29]](304)[_0xd8b6[28]]()}}function respondWithResult(_0xfa4fx15,_0xfa4fx16,_0xfa4fx17){_0xfa4fx16= _0xfa4fx16|| 200;return function(_0xfa4fx18){if(_0xfa4fx18){logger[_0xd8b6[24]](_0xd8b6[22],_0xfa4fx17,_0xfa4fx16,_0xd8b6[30]);logger[_0xd8b6[26]](_0xd8b6[25],_0xfa4fx17,_0xfa4fx16,_0xd8b6[30],JSON[_0xd8b6[31]](_0xfa4fx18));return _0xfa4fx15[_0xd8b6[29]](_0xfa4fx16)[_0xd8b6[32]](_0xfa4fx18)};return _0xfa4fx15[_0xd8b6[29]](304)[_0xd8b6[28]]()}}function respondWithFilteredResult(_0xfa4fx15,_0xfa4fx1b,_0xfa4fx17){return function(_0xfa4fx18){if(_0xfa4fx18){var _0xfa4fx1c=_0xfa4fx18[_0xd8b6[33]],_0xfa4fx1d=_0xfa4fx1b[_0xd8b6[34]],_0xfa4fx1e=_0xfa4fx1b[_0xd8b6[34]]+ _0xfa4fx1b[_0xd8b6[35]],_0xfa4fx16;if(_0xfa4fx1e>= _0xfa4fx1c){_0xfa4fx1e= _0xfa4fx1c;_0xfa4fx16= 200}else {_0xfa4fx16= 206};_0xfa4fx15[_0xd8b6[29]](_0xfa4fx16);logger[_0xd8b6[24]](_0xd8b6[22],_0xfa4fx17,_0xfa4fx16,_0xd8b6[36]);logger[_0xd8b6[26]](_0xd8b6[25],_0xfa4fx17,_0xfa4fx16,_0xd8b6[30],JSON[_0xd8b6[31]](_0xfa4fx18));return _0xfa4fx15[_0xd8b6[40]](_0xd8b6[37],_0xfa4fx1d+ _0xd8b6[38]+ _0xfa4fx1e+ _0xd8b6[39]+ _0xfa4fx1c)[_0xd8b6[32]](_0xfa4fx18)};return null}}function patchUpdates(_0xfa4fx20){return function(_0xfa4fx18){try{jsonpatch[_0xd8b6[41]](_0xfa4fx18,_0xfa4fx20,true)}catch(err){return BPromise[_0xd8b6[42]](err)};return _0xfa4fx18[_0xd8b6[43]]()}}function saveUpdates(_0xfa4fx22,_0xfa4fx16,_0xfa4fx17){return function(_0xfa4fx18){if(_0xfa4fx18){return _0xfa4fx18[_0xd8b6[46]](_0xfa4fx22)[_0xd8b6[45]](function(_0xfa4fx23){logger[_0xd8b6[24]](_0xd8b6[22],_0xfa4fx17,_0xfa4fx16,_0xd8b6[44]);logger[_0xd8b6[26]](_0xd8b6[25],_0xfa4fx17,_0xfa4fx16,_0xd8b6[44],JSON[_0xd8b6[31]](_0xfa4fx18));return _0xfa4fx23})};return null}}function removeEntity(_0xfa4fx15,_0xfa4fx16,_0xfa4fx17){return function(_0xfa4fx18){if(_0xfa4fx18){return _0xfa4fx18[_0xd8b6[48]]()[_0xd8b6[45]](function(){logger[_0xd8b6[24]](_0xd8b6[22],_0xfa4fx17,_0xfa4fx16,_0xd8b6[47]);logger[_0xd8b6[26]](_0xd8b6[25],_0xfa4fx17,_0xfa4fx16,_0xd8b6[47],JSON[_0xd8b6[31]](_0xfa4fx18));_0xfa4fx15[_0xd8b6[29]](204)[_0xd8b6[28]]()})}}}function handleEntityNotFound(_0xfa4fx15,_0xfa4fx16,_0xfa4fx17){return function(_0xfa4fx18){if(!_0xfa4fx18){logger[_0xd8b6[50]](_0xd8b6[22],_0xfa4fx17,404,_0xd8b6[49]);_0xfa4fx15[_0xd8b6[29]](404)[_0xd8b6[28]]();return null};return _0xfa4fx18}}function handleError(_0xfa4fx15,_0xfa4fx16,_0xfa4fx17){_0xfa4fx16= _0xfa4fx16|| 500;return function(_0xfa4fx27){logger[_0xd8b6[50]](_0xd8b6[22],_0xfa4fx17,_0xfa4fx16,JSON[_0xd8b6[31]](_0xfa4fx27));delete _0xfa4fx27[_0xd8b6[51]];_0xfa4fx15[_0xd8b6[29]](_0xfa4fx16)[_0xd8b6[52]](_0xfa4fx27)}}exports[_0xd8b6[53]]= function(_0xfa4fx28,_0xfa4fx15){var _0xfa4fx1b={raw:true,where:{id:_0xfa4fx28[_0xd8b6[55]][_0xd8b6[54]]}},_0xfa4fx29={};_0xfa4fx29[_0xd8b6[56]]= _[_0xd8b6[59]](db[_0xd8b6[58]][_0xd8b6[57]]);_0xfa4fx29[_0xd8b6[60]]= _[_0xd8b6[59]](_0xfa4fx28[_0xd8b6[60]]);_0xfa4fx29[_0xd8b6[61]]= _[_0xd8b6[62]](_0xfa4fx29[_0xd8b6[56]],_0xfa4fx29[_0xd8b6[60]]);_0xfa4fx1b[_0xd8b6[63]]= _[_0xd8b6[62]](_0xfa4fx29[_0xd8b6[56]],qs[_0xd8b6[64]](_0xfa4fx28[_0xd8b6[60]][_0xd8b6[64]]));_0xfa4fx1b[_0xd8b6[63]]= (_0xfa4fx1b[_0xd8b6[63]][_0xd8b6[65]])?_0xfa4fx1b[_0xd8b6[63]]:_0xfa4fx29[_0xd8b6[56]];_0xfa4fx1b= _[_0xd8b6[67]]({},_0xfa4fx1b,_0xfa4fx28[_0xd8b6[66]]);return db[_0xd8b6[58]][_0xd8b6[69]](_0xfa4fx1b)[_0xd8b6[45]](handleEntityNotFound(_0xfa4fx15,null,_0xd8b6[53]))[_0xd8b6[45]](respondWithResult(_0xfa4fx15,null,_0xd8b6[53]))[_0xd8b6[68]](handleError(_0xfa4fx15,null,_0xd8b6[53]))};exports[_0xd8b6[46]]= function(_0xfa4fx28,_0xfa4fx15){if(_0xfa4fx28[_0xd8b6[70]][_0xd8b6[54]]){delete _0xfa4fx28[_0xd8b6[70]][_0xd8b6[54]]};return db[_0xd8b6[58]][_0xd8b6[69]]({where:{id:_0xfa4fx28[_0xd8b6[55]][_0xd8b6[54]]}})[_0xd8b6[45]](handleEntityNotFound(_0xfa4fx15,null,_0xd8b6[46]))[_0xd8b6[45]](saveUpdates(_0xfa4fx28[_0xd8b6[70]],null,_0xd8b6[46]))[_0xd8b6[45]](respondWithResult(_0xfa4fx15,null,_0xd8b6[46]))[_0xd8b6[68]](handleError(_0xfa4fx15,null,_0xd8b6[46]))};exports[_0xd8b6[48]]= function(_0xfa4fx28,_0xfa4fx15){return db[_0xd8b6[58]][_0xd8b6[69]]({where:{id:_0xfa4fx28[_0xd8b6[55]][_0xd8b6[54]]}})[_0xd8b6[45]](handleEntityNotFound(_0xfa4fx15,null,_0xd8b6[48]))[_0xd8b6[45]](removeEntity(_0xfa4fx15,null,_0xd8b6[48]))[_0xd8b6[68]](handleError(_0xfa4fx15,null,_0xd8b6[48]))}
\ No newline at end of file
index fb27ae7..861dcda 100644 (file)
@@ -1 +1 @@
-var _0x5e7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x5e7a[0];var _=require(_0x5e7a[1]);var util=require(_0x5e7a[2]);var logger=require(_0x5e7a[4])(_0x5e7a[3]);var attributes=require(_0x5e7a[5]);module[_0x5e7a[6]]= function(_0xe4c8x5,_0xe4c8x6){return _0xe4c8x5[_0x5e7a[9]](_0x5e7a[7],attributes,{tableName:_0x5e7a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x6a13=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x6a13[0];var _=require(_0x6a13[1]);var util=require(_0x6a13[2]);var logger=require(_0x6a13[4])(_0x6a13[3]);var attributes=require(_0x6a13[5]);module[_0x6a13[6]]= function(_0x1835x5,_0x1835x6){return _0x1835x5[_0x6a13[9]](_0x6a13[7],attributes,{tableName:_0x6a13[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 8202e8a..0924e7d 100644 (file)
@@ -1 +1 @@
-var _0x9cc6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E"];_0x9cc6[0];var _=require(_0x9cc6[1]);var util=require(_0x9cc6[2]);var moment=require(_0x9cc6[3]);var BPromise=require(_0x9cc6[4]);var db=require(_0x9cc6[6])[_0x9cc6[5]];var utils=require(_0x9cc6[7]);var logger=require(_0x9cc6[9])(_0x9cc6[8]);var jayson=require(_0x9cc6[10]);var client=jayson[_0x9cc6[12]][_0x9cc6[11]]({port:9002});function respondWithRpcPromise(_0x209exb,_0x209exc,_0x209exd){return  new BPromise(function(_0x209exe,_0x209exf){return client[_0x9cc6[25]](_0x209exb,_0x209exd)[_0x9cc6[24]](function(_0x209ex11){logger[_0x9cc6[17]](_0x9cc6[13],_0x209exc,_0x9cc6[16]);logger[_0x9cc6[20]](_0x9cc6[18],_0x209exc,_0x9cc6[16],JSON[_0x9cc6[19]](_0x209ex11));if(_0x209ex11[_0x9cc6[14]]){if(_0x209ex11[_0x9cc6[14]][_0x9cc6[21]]=== 500){logger[_0x9cc6[14]](_0x9cc6[13],_0x209exc,_0x209ex11[_0x9cc6[14]][_0x9cc6[22]]);return _0x209exf(_0x209ex11[_0x9cc6[14]][_0x9cc6[22]])};logger[_0x9cc6[14]](_0x9cc6[13],_0x209exc,_0x209ex11[_0x9cc6[14]][_0x9cc6[22]]);return _0x209exe(_0x209ex11[_0x9cc6[14]][_0x9cc6[22]])}else {logger[_0x9cc6[17]](_0x9cc6[13],_0x209exc,_0x9cc6[16]);_0x209exe(_0x209ex11[_0x9cc6[23]][_0x9cc6[22]])}})[_0x9cc6[15]](function(_0x209ex10){logger[_0x9cc6[14]](_0x9cc6[13],_0x209exc,_0x209ex10);_0x209exf(_0x209ex10)})})}exports[_0x9cc6[26]]= function(_0x209exd){var _0x209ex12=this;return  new Promise(function(_0x209exe,_0x209exf){return db[_0x9cc6[34]][_0x9cc6[33]](_0x209exd[_0x9cc6[27]],{raw:_0x209exd[_0x9cc6[28]]?(_0x209exd[_0x9cc6[28]][_0x9cc6[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x209exd[_0x9cc6[28]]?_0x209exd[_0x9cc6[28]][_0x9cc6[30]]|| null:null,attributes:_0x209exd[_0x9cc6[28]]?_0x209exd[_0x9cc6[28]][_0x9cc6[31]]|| null:null,limit:_0x209exd[_0x9cc6[28]]?_0x209exd[_0x9cc6[28]][_0x9cc6[32]]|| null:null})[_0x9cc6[24]](function(_0x209ex11){logger[_0x9cc6[17]](_0x9cc6[26],_0x209exd);logger[_0x9cc6[20]](_0x9cc6[26],_0x209exd,JSON[_0x9cc6[19]](_0x209ex11));_0x209exe(_0x209ex11)})[_0x9cc6[15]](function(_0x209ex10){logger[_0x9cc6[14]](_0x9cc6[26],_0x209ex10[_0x9cc6[22]],_0x209exd);_0x209exf(_0x209ex12[_0x9cc6[14]](500,_0x209ex10[_0x9cc6[22]]))})})}
\ No newline at end of file
+var _0xb6f3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E"];_0xb6f3[0];var _=require(_0xb6f3[1]);var util=require(_0xb6f3[2]);var moment=require(_0xb6f3[3]);var BPromise=require(_0xb6f3[4]);var db=require(_0xb6f3[6])[_0xb6f3[5]];var utils=require(_0xb6f3[7]);var logger=require(_0xb6f3[9])(_0xb6f3[8]);var jayson=require(_0xb6f3[10]);var client=jayson[_0xb6f3[12]][_0xb6f3[11]]({port:9002});function respondWithRpcPromise(_0x4d90xb,_0x4d90xc,_0x4d90xd){return  new BPromise(function(_0x4d90xe,_0x4d90xf){return client[_0xb6f3[25]](_0x4d90xb,_0x4d90xd)[_0xb6f3[24]](function(_0x4d90x11){logger[_0xb6f3[17]](_0xb6f3[13],_0x4d90xc,_0xb6f3[16]);logger[_0xb6f3[20]](_0xb6f3[18],_0x4d90xc,_0xb6f3[16],JSON[_0xb6f3[19]](_0x4d90x11));if(_0x4d90x11[_0xb6f3[14]]){if(_0x4d90x11[_0xb6f3[14]][_0xb6f3[21]]=== 500){logger[_0xb6f3[14]](_0xb6f3[13],_0x4d90xc,_0x4d90x11[_0xb6f3[14]][_0xb6f3[22]]);return _0x4d90xf(_0x4d90x11[_0xb6f3[14]][_0xb6f3[22]])};logger[_0xb6f3[14]](_0xb6f3[13],_0x4d90xc,_0x4d90x11[_0xb6f3[14]][_0xb6f3[22]]);return _0x4d90xe(_0x4d90x11[_0xb6f3[14]][_0xb6f3[22]])}else {logger[_0xb6f3[17]](_0xb6f3[13],_0x4d90xc,_0xb6f3[16]);_0x4d90xe(_0x4d90x11[_0xb6f3[23]][_0xb6f3[22]])}})[_0xb6f3[15]](function(_0x4d90x10){logger[_0xb6f3[14]](_0xb6f3[13],_0x4d90xc,_0x4d90x10);_0x4d90xf(_0x4d90x10)})})}exports[_0xb6f3[26]]= function(_0x4d90xd){var _0x4d90x12=this;return  new Promise(function(_0x4d90xe,_0x4d90xf){return db[_0xb6f3[34]][_0xb6f3[33]](_0x4d90xd[_0xb6f3[27]],{raw:_0x4d90xd[_0xb6f3[28]]?(_0x4d90xd[_0xb6f3[28]][_0xb6f3[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x4d90xd[_0xb6f3[28]]?_0x4d90xd[_0xb6f3[28]][_0xb6f3[30]]|| null:null,attributes:_0x4d90xd[_0xb6f3[28]]?_0x4d90xd[_0xb6f3[28]][_0xb6f3[31]]|| null:null,limit:_0x4d90xd[_0xb6f3[28]]?_0x4d90xd[_0xb6f3[28]][_0xb6f3[32]]|| null:null})[_0xb6f3[24]](function(_0x4d90x11){logger[_0xb6f3[17]](_0xb6f3[26],_0x4d90xd);logger[_0xb6f3[20]](_0xb6f3[26],_0x4d90xd,JSON[_0xb6f3[19]](_0x4d90x11));_0x4d90xe(_0x4d90x11)})[_0xb6f3[15]](function(_0x4d90x10){logger[_0xb6f3[14]](_0xb6f3[26],_0x4d90x10[_0xb6f3[22]],_0x4d90xd);_0x4d90xf(_0x4d90x12[_0xb6f3[14]](500,_0x4d90x10[_0xb6f3[22]]))})})}
\ No newline at end of file
index 2391549..097487b 100644 (file)
@@ -1 +1 @@
-var _0x5443=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5443[0];var multer=require(_0x5443[1]);var util=require(_0x5443[2]);var path=require(_0x5443[3]);var express=require(_0x5443[4]);var router=express.Router();var auth=require(_0x5443[5]);var config=require(_0x5443[6]);var controller=require(_0x5443[7]);router[_0x5443[11]](_0x5443[8],auth[_0x5443[9]](),controller[_0x5443[10]]);router[_0x5443[11]](_0x5443[12],auth[_0x5443[9]](),controller[_0x5443[13]]);router[_0x5443[15]](_0x5443[8],auth[_0x5443[9]](),controller[_0x5443[14]]);router[_0x5443[17]](_0x5443[12],auth[_0x5443[9]](),controller[_0x5443[16]]);router[_0x5443[19]](_0x5443[12],auth[_0x5443[9]](),controller[_0x5443[18]]);module[_0x5443[20]]= router
\ No newline at end of file
+var _0xe1d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe1d9[0];var multer=require(_0xe1d9[1]);var util=require(_0xe1d9[2]);var path=require(_0xe1d9[3]);var express=require(_0xe1d9[4]);var router=express.Router();var auth=require(_0xe1d9[5]);var config=require(_0xe1d9[6]);var controller=require(_0xe1d9[7]);router[_0xe1d9[11]](_0xe1d9[8],auth[_0xe1d9[9]](),controller[_0xe1d9[10]]);router[_0xe1d9[11]](_0xe1d9[12],auth[_0xe1d9[9]](),controller[_0xe1d9[13]]);router[_0xe1d9[15]](_0xe1d9[8],auth[_0xe1d9[9]](),controller[_0xe1d9[14]]);router[_0xe1d9[17]](_0xe1d9[12],auth[_0xe1d9[9]](),controller[_0xe1d9[16]]);router[_0xe1d9[19]](_0xe1d9[12],auth[_0xe1d9[9]](),controller[_0xe1d9[18]]);module[_0xe1d9[20]]= router
\ No newline at end of file
index 6eb4396..3c1a87e 100644 (file)
@@ -1 +1 @@
-var _0x13b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52"];_0x13b7[0];var Sequelize=require(_0x13b7[1]);module[_0x13b7[2]]= {domain:{type:Sequelize[_0x13b7[3]]},size:{type:Sequelize[_0x13b7[4]]},path:{type:Sequelize[_0x13b7[3]]},name:{type:Sequelize[_0x13b7[3]]},basename:{type:Sequelize[_0x13b7[3]]},type:{type:Sequelize[_0x13b7[3]]}}
\ No newline at end of file
+var _0x513c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52"];_0x513c[0];var Sequelize=require(_0x513c[1]);module[_0x513c[2]]= {domain:{type:Sequelize[_0x513c[3]]},size:{type:Sequelize[_0x513c[4]]},path:{type:Sequelize[_0x513c[3]]},name:{type:Sequelize[_0x513c[3]]},basename:{type:Sequelize[_0x513c[3]]},type:{type:Sequelize[_0x513c[3]]}}
\ No newline at end of file
index bfe9bfd..01e4f80 100644 (file)
@@ -1 +1 @@
-var _0xaee6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xaee6[0];var jsonpatch=require(_0xaee6[1]);var rp=require(_0xaee6[2]);var moment=require(_0xaee6[3]);var BPromise=require(_0xaee6[4]);var util=require(_0xaee6[5]);var path=require(_0xaee6[6]);var sox=require(_0xaee6[7]);var ejs=require(_0xaee6[8]);var fs=require(_0xaee6[9]);var _=require(_0xaee6[10]);var squel=require(_0xaee6[11]);var crypto=require(_0xaee6[12]);var jsforce=require(_0xaee6[13]);var toCsv=require(_0xaee6[14]);var qs=require(_0xaee6[15]);var logger=require(_0xaee6[17])(_0xaee6[16]);var utils=require(_0xaee6[18]);var config=require(_0xaee6[19]);var db=require(_0xaee6[21])[_0xaee6[20]];function respondWithStatusCode(_0x8404x15,_0x8404x16,_0x8404x17){_0x8404x16= _0x8404x16|| 204;return function(_0x8404x18){if(_0x8404x18){logger[_0xaee6[24]](_0xaee6[22],_0x8404x17,_0x8404x16,_0xaee6[23]);logger[_0xaee6[26]](_0xaee6[25],_0x8404x17,_0x8404x16,_0xaee6[23]);return _0x8404x15[_0xaee6[27]](_0x8404x16)};return _0x8404x15[_0xaee6[29]](304)[_0xaee6[28]]()}}function respondWithResult(_0x8404x15,_0x8404x16,_0x8404x17){_0x8404x16= _0x8404x16|| 200;return function(_0x8404x18){if(_0x8404x18){logger[_0xaee6[24]](_0xaee6[22],_0x8404x17,_0x8404x16,_0xaee6[30]);logger[_0xaee6[26]](_0xaee6[25],_0x8404x17,_0x8404x16,_0xaee6[30],JSON[_0xaee6[31]](_0x8404x18));return _0x8404x15[_0xaee6[29]](_0x8404x16)[_0xaee6[32]](_0x8404x18)};return _0x8404x15[_0xaee6[29]](304)[_0xaee6[28]]()}}function respondWithFilteredResult(_0x8404x15,_0x8404x1b,_0x8404x17){return function(_0x8404x18){if(_0x8404x18){var _0x8404x1c=_0x8404x18[_0xaee6[33]],_0x8404x1d=_0x8404x1b[_0xaee6[34]],_0x8404x1e=_0x8404x1b[_0xaee6[34]]+ _0x8404x1b[_0xaee6[35]],_0x8404x16;if(_0x8404x1e>= _0x8404x1c){_0x8404x1e= _0x8404x1c;_0x8404x16= 200}else {_0x8404x16= 206};_0x8404x15[_0xaee6[29]](_0x8404x16);logger[_0xaee6[24]](_0xaee6[22],_0x8404x17,_0x8404x16,_0xaee6[36]);logger[_0xaee6[26]](_0xaee6[25],_0x8404x17,_0x8404x16,_0xaee6[30],JSON[_0xaee6[31]](_0x8404x18));return _0x8404x15[_0xaee6[40]](_0xaee6[37],_0x8404x1d+ _0xaee6[38]+ _0x8404x1e+ _0xaee6[39]+ _0x8404x1c)[_0xaee6[32]](_0x8404x18)};return null}}function patchUpdates(_0x8404x20){return function(_0x8404x18){try{jsonpatch[_0xaee6[41]](_0x8404x18,_0x8404x20,true)}catch(err){return BPromise[_0xaee6[42]](err)};return _0x8404x18[_0xaee6[43]]()}}function saveUpdates(_0x8404x22,_0x8404x16,_0x8404x17){return function(_0x8404x18){if(_0x8404x18){return _0x8404x18[_0xaee6[46]](_0x8404x22)[_0xaee6[45]](function(_0x8404x23){logger[_0xaee6[24]](_0xaee6[22],_0x8404x17,_0x8404x16,_0xaee6[44]);logger[_0xaee6[26]](_0xaee6[25],_0x8404x17,_0x8404x16,_0xaee6[44],JSON[_0xaee6[31]](_0x8404x18));return _0x8404x23})};return null}}function removeEntity(_0x8404x15,_0x8404x16,_0x8404x17){return function(_0x8404x18){if(_0x8404x18){return _0x8404x18[_0xaee6[48]]()[_0xaee6[45]](function(){logger[_0xaee6[24]](_0xaee6[22],_0x8404x17,_0x8404x16,_0xaee6[47]);logger[_0xaee6[26]](_0xaee6[25],_0x8404x17,_0x8404x16,_0xaee6[47],JSON[_0xaee6[31]](_0x8404x18));_0x8404x15[_0xaee6[29]](204)[_0xaee6[28]]()})}}}function handleEntityNotFound(_0x8404x15,_0x8404x16,_0x8404x17){return function(_0x8404x18){if(!_0x8404x18){logger[_0xaee6[50]](_0xaee6[22],_0x8404x17,404,_0xaee6[49]);_0x8404x15[_0xaee6[29]](404)[_0xaee6[28]]();return null};return _0x8404x18}}function handleError(_0x8404x15,_0x8404x16,_0x8404x17){_0x8404x16= _0x8404x16|| 500;return function(_0x8404x27){logger[_0xaee6[50]](_0xaee6[22],_0x8404x17,_0x8404x16,JSON[_0xaee6[31]](_0x8404x27));delete _0x8404x27[_0xaee6[51]];_0x8404x15[_0xaee6[29]](_0x8404x16)[_0xaee6[52]](_0x8404x27)}}exports[_0xaee6[53]]= function(_0x8404x28,_0x8404x15){var _0x8404x1b={},_0x8404x29={};_0x8404x29[_0xaee6[54]]= _[_0xaee6[57]](db[_0xaee6[56]][_0xaee6[55]]);_0x8404x29[_0xaee6[58]]= _[_0xaee6[57]](_0x8404x28[_0xaee6[58]]);_0x8404x29[_0xaee6[59]]= _[_0xaee6[60]](_0x8404x29[_0xaee6[54]],_0x8404x29[_0xaee6[58]]);_0x8404x1b[_0xaee6[61]]= _[_0xaee6[60]](_0x8404x29[_0xaee6[54]],qs[_0xaee6[62]](_0x8404x28[_0xaee6[58]][_0xaee6[62]]));_0x8404x1b[_0xaee6[61]]= (_0x8404x1b[_0xaee6[61]][_0xaee6[63]])?_0x8404x1b[_0xaee6[61]]:_0x8404x29[_0xaee6[54]];if(!_0x8404x28[_0xaee6[58]][_0xaee6[65]](_0xaee6[64])){_0x8404x1b[_0xaee6[35]]= qs[_0xaee6[35]](_0x8404x28[_0xaee6[58]][_0xaee6[35]]);_0x8404x1b[_0xaee6[34]]= qs[_0xaee6[34]](_0x8404x28[_0xaee6[58]][_0xaee6[34]])};_0x8404x1b[_0xaee6[66]]= qs[_0xaee6[67]](_0x8404x28[_0xaee6[58]][_0xaee6[67]]);_0x8404x1b[_0xaee6[68]]= qs[_0xaee6[59]](_[_0xaee6[69]](_0x8404x28[_0xaee6[58]],_0x8404x29[_0xaee6[59]]));if(_0x8404x28[_0xaee6[58]][_0xaee6[70]]){_0x8404x1b[_0xaee6[68]]= _[_0xaee6[73]](_0x8404x1b[_0xaee6[68]],{$or:_[_0xaee6[72]](_0x8404x1b[_0xaee6[61]],function(_0x8404x2a){var _0x8404x2b={};_0x8404x2b[_0x8404x2a]= {$like:_0xaee6[71]+ _0x8404x28[_0xaee6[58]][_0xaee6[70]]+ _0xaee6[71]};return _0x8404x2b})})};_0x8404x1b= _[_0xaee6[73]]({},_0x8404x1b,_0x8404x28[_0xaee6[74]]);return db[_0xaee6[56]][_0xaee6[76]](_0x8404x1b)[_0xaee6[45]](respondWithFilteredResult(_0x8404x15,_0x8404x1b,_0xaee6[53]))[_0xaee6[75]](handleError(_0x8404x15,null,_0xaee6[53]))};exports[_0xaee6[77]]= function(_0x8404x28,_0x8404x15){var _0x8404x1b={raw:true,where:{id:_0x8404x28[_0xaee6[79]][_0xaee6[78]]}},_0x8404x29={};_0x8404x29[_0xaee6[54]]= _[_0xaee6[57]](db[_0xaee6[56]][_0xaee6[55]]);_0x8404x29[_0xaee6[58]]= _[_0xaee6[57]](_0x8404x28[_0xaee6[58]]);_0x8404x29[_0xaee6[59]]= _[_0xaee6[60]](_0x8404x29[_0xaee6[54]],_0x8404x29[_0xaee6[58]]);_0x8404x1b[_0xaee6[61]]= _[_0xaee6[60]](_0x8404x29[_0xaee6[54]],qs[_0xaee6[62]](_0x8404x28[_0xaee6[58]][_0xaee6[62]]));_0x8404x1b[_0xaee6[61]]= (_0x8404x1b[_0xaee6[61]][_0xaee6[63]])?_0x8404x1b[_0xaee6[61]]:_0x8404x29[_0xaee6[54]];_0x8404x1b= _[_0xaee6[73]]({},_0x8404x1b,_0x8404x28[_0xaee6[74]]);return db[_0xaee6[56]][_0xaee6[80]](_0x8404x1b)[_0xaee6[45]](handleEntityNotFound(_0x8404x15,null,_0xaee6[77]))[_0xaee6[45]](respondWithResult(_0x8404x15,null,_0xaee6[77]))[_0xaee6[75]](handleError(_0x8404x15,null,_0xaee6[77]))};exports[_0xaee6[81]]= function(_0x8404x28,_0x8404x15){return db[_0xaee6[56]][_0xaee6[81]](_0x8404x28[_0xaee6[82]],{})[_0xaee6[45]](respondWithResult(_0x8404x15,201,_0xaee6[81]))[_0xaee6[75]](handleError(_0x8404x15,null,_0xaee6[81]))};exports[_0xaee6[46]]= function(_0x8404x28,_0x8404x15){if(_0x8404x28[_0xaee6[82]][_0xaee6[78]]){delete _0x8404x28[_0xaee6[82]][_0xaee6[78]]};return db[_0xaee6[56]][_0xaee6[80]]({where:{id:_0x8404x28[_0xaee6[79]][_0xaee6[78]]}})[_0xaee6[45]](handleEntityNotFound(_0x8404x15,null,_0xaee6[46]))[_0xaee6[45]](saveUpdates(_0x8404x28[_0xaee6[82]],null,_0xaee6[46]))[_0xaee6[45]](respondWithResult(_0x8404x15,null,_0xaee6[46]))[_0xaee6[75]](handleError(_0x8404x15,null,_0xaee6[46]))};exports[_0xaee6[48]]= function(_0x8404x28,_0x8404x15){return db[_0xaee6[56]][_0xaee6[80]]({where:{id:_0x8404x28[_0xaee6[79]][_0xaee6[78]]}})[_0xaee6[45]](handleEntityNotFound(_0x8404x15,null,_0xaee6[48]))[_0xaee6[45]](removeEntity(_0x8404x15,null,_0xaee6[48]))[_0xaee6[75]](handleError(_0x8404x15,null,_0xaee6[48]))}
\ No newline at end of file
+var _0x87b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x87b7[0];var jsonpatch=require(_0x87b7[1]);var rp=require(_0x87b7[2]);var moment=require(_0x87b7[3]);var BPromise=require(_0x87b7[4]);var util=require(_0x87b7[5]);var path=require(_0x87b7[6]);var sox=require(_0x87b7[7]);var ejs=require(_0x87b7[8]);var fs=require(_0x87b7[9]);var _=require(_0x87b7[10]);var squel=require(_0x87b7[11]);var crypto=require(_0x87b7[12]);var jsforce=require(_0x87b7[13]);var toCsv=require(_0x87b7[14]);var qs=require(_0x87b7[15]);var logger=require(_0x87b7[17])(_0x87b7[16]);var utils=require(_0x87b7[18]);var config=require(_0x87b7[19]);var db=require(_0x87b7[21])[_0x87b7[20]];function respondWithStatusCode(_0xa7d5x15,_0xa7d5x16,_0xa7d5x17){_0xa7d5x16= _0xa7d5x16|| 204;return function(_0xa7d5x18){if(_0xa7d5x18){logger[_0x87b7[24]](_0x87b7[22],_0xa7d5x17,_0xa7d5x16,_0x87b7[23]);logger[_0x87b7[26]](_0x87b7[25],_0xa7d5x17,_0xa7d5x16,_0x87b7[23]);return _0xa7d5x15[_0x87b7[27]](_0xa7d5x16)};return _0xa7d5x15[_0x87b7[29]](304)[_0x87b7[28]]()}}function respondWithResult(_0xa7d5x15,_0xa7d5x16,_0xa7d5x17){_0xa7d5x16= _0xa7d5x16|| 200;return function(_0xa7d5x18){if(_0xa7d5x18){logger[_0x87b7[24]](_0x87b7[22],_0xa7d5x17,_0xa7d5x16,_0x87b7[30]);logger[_0x87b7[26]](_0x87b7[25],_0xa7d5x17,_0xa7d5x16,_0x87b7[30],JSON[_0x87b7[31]](_0xa7d5x18));return _0xa7d5x15[_0x87b7[29]](_0xa7d5x16)[_0x87b7[32]](_0xa7d5x18)};return _0xa7d5x15[_0x87b7[29]](304)[_0x87b7[28]]()}}function respondWithFilteredResult(_0xa7d5x15,_0xa7d5x1b,_0xa7d5x17){return function(_0xa7d5x18){if(_0xa7d5x18){var _0xa7d5x1c=_0xa7d5x18[_0x87b7[33]],_0xa7d5x1d=_0xa7d5x1b[_0x87b7[34]],_0xa7d5x1e=_0xa7d5x1b[_0x87b7[34]]+ _0xa7d5x1b[_0x87b7[35]],_0xa7d5x16;if(_0xa7d5x1e>= _0xa7d5x1c){_0xa7d5x1e= _0xa7d5x1c;_0xa7d5x16= 200}else {_0xa7d5x16= 206};_0xa7d5x15[_0x87b7[29]](_0xa7d5x16);logger[_0x87b7[24]](_0x87b7[22],_0xa7d5x17,_0xa7d5x16,_0x87b7[36]);logger[_0x87b7[26]](_0x87b7[25],_0xa7d5x17,_0xa7d5x16,_0x87b7[30],JSON[_0x87b7[31]](_0xa7d5x18));return _0xa7d5x15[_0x87b7[40]](_0x87b7[37],_0xa7d5x1d+ _0x87b7[38]+ _0xa7d5x1e+ _0x87b7[39]+ _0xa7d5x1c)[_0x87b7[32]](_0xa7d5x18)};return null}}function patchUpdates(_0xa7d5x20){return function(_0xa7d5x18){try{jsonpatch[_0x87b7[41]](_0xa7d5x18,_0xa7d5x20,true)}catch(err){return BPromise[_0x87b7[42]](err)};return _0xa7d5x18[_0x87b7[43]]()}}function saveUpdates(_0xa7d5x22,_0xa7d5x16,_0xa7d5x17){return function(_0xa7d5x18){if(_0xa7d5x18){return _0xa7d5x18[_0x87b7[46]](_0xa7d5x22)[_0x87b7[45]](function(_0xa7d5x23){logger[_0x87b7[24]](_0x87b7[22],_0xa7d5x17,_0xa7d5x16,_0x87b7[44]);logger[_0x87b7[26]](_0x87b7[25],_0xa7d5x17,_0xa7d5x16,_0x87b7[44],JSON[_0x87b7[31]](_0xa7d5x18));return _0xa7d5x23})};return null}}function removeEntity(_0xa7d5x15,_0xa7d5x16,_0xa7d5x17){return function(_0xa7d5x18){if(_0xa7d5x18){return _0xa7d5x18[_0x87b7[48]]()[_0x87b7[45]](function(){logger[_0x87b7[24]](_0x87b7[22],_0xa7d5x17,_0xa7d5x16,_0x87b7[47]);logger[_0x87b7[26]](_0x87b7[25],_0xa7d5x17,_0xa7d5x16,_0x87b7[47],JSON[_0x87b7[31]](_0xa7d5x18));_0xa7d5x15[_0x87b7[29]](204)[_0x87b7[28]]()})}}}function handleEntityNotFound(_0xa7d5x15,_0xa7d5x16,_0xa7d5x17){return function(_0xa7d5x18){if(!_0xa7d5x18){logger[_0x87b7[50]](_0x87b7[22],_0xa7d5x17,404,_0x87b7[49]);_0xa7d5x15[_0x87b7[29]](404)[_0x87b7[28]]();return null};return _0xa7d5x18}}function handleError(_0xa7d5x15,_0xa7d5x16,_0xa7d5x17){_0xa7d5x16= _0xa7d5x16|| 500;return function(_0xa7d5x27){logger[_0x87b7[50]](_0x87b7[22],_0xa7d5x17,_0xa7d5x16,JSON[_0x87b7[31]](_0xa7d5x27));delete _0xa7d5x27[_0x87b7[51]];_0xa7d5x15[_0x87b7[29]](_0xa7d5x16)[_0x87b7[52]](_0xa7d5x27)}}exports[_0x87b7[53]]= function(_0xa7d5x28,_0xa7d5x15){var _0xa7d5x1b={},_0xa7d5x29={};_0xa7d5x29[_0x87b7[54]]= _[_0x87b7[57]](db[_0x87b7[56]][_0x87b7[55]]);_0xa7d5x29[_0x87b7[58]]= _[_0x87b7[57]](_0xa7d5x28[_0x87b7[58]]);_0xa7d5x29[_0x87b7[59]]= _[_0x87b7[60]](_0xa7d5x29[_0x87b7[54]],_0xa7d5x29[_0x87b7[58]]);_0xa7d5x1b[_0x87b7[61]]= _[_0x87b7[60]](_0xa7d5x29[_0x87b7[54]],qs[_0x87b7[62]](_0xa7d5x28[_0x87b7[58]][_0x87b7[62]]));_0xa7d5x1b[_0x87b7[61]]= (_0xa7d5x1b[_0x87b7[61]][_0x87b7[63]])?_0xa7d5x1b[_0x87b7[61]]:_0xa7d5x29[_0x87b7[54]];if(!_0xa7d5x28[_0x87b7[58]][_0x87b7[65]](_0x87b7[64])){_0xa7d5x1b[_0x87b7[35]]= qs[_0x87b7[35]](_0xa7d5x28[_0x87b7[58]][_0x87b7[35]]);_0xa7d5x1b[_0x87b7[34]]= qs[_0x87b7[34]](_0xa7d5x28[_0x87b7[58]][_0x87b7[34]])};_0xa7d5x1b[_0x87b7[66]]= qs[_0x87b7[67]](_0xa7d5x28[_0x87b7[58]][_0x87b7[67]]);_0xa7d5x1b[_0x87b7[68]]= qs[_0x87b7[59]](_[_0x87b7[69]](_0xa7d5x28[_0x87b7[58]],_0xa7d5x29[_0x87b7[59]]));if(_0xa7d5x28[_0x87b7[58]][_0x87b7[70]]){_0xa7d5x1b[_0x87b7[68]]= _[_0x87b7[73]](_0xa7d5x1b[_0x87b7[68]],{$or:_[_0x87b7[72]](_0xa7d5x1b[_0x87b7[61]],function(_0xa7d5x2a){var _0xa7d5x2b={};_0xa7d5x2b[_0xa7d5x2a]= {$like:_0x87b7[71]+ _0xa7d5x28[_0x87b7[58]][_0x87b7[70]]+ _0x87b7[71]};return _0xa7d5x2b})})};_0xa7d5x1b= _[_0x87b7[73]]({},_0xa7d5x1b,_0xa7d5x28[_0x87b7[74]]);return db[_0x87b7[56]][_0x87b7[76]](_0xa7d5x1b)[_0x87b7[45]](respondWithFilteredResult(_0xa7d5x15,_0xa7d5x1b,_0x87b7[53]))[_0x87b7[75]](handleError(_0xa7d5x15,null,_0x87b7[53]))};exports[_0x87b7[77]]= function(_0xa7d5x28,_0xa7d5x15){var _0xa7d5x1b={raw:true,where:{id:_0xa7d5x28[_0x87b7[79]][_0x87b7[78]]}},_0xa7d5x29={};_0xa7d5x29[_0x87b7[54]]= _[_0x87b7[57]](db[_0x87b7[56]][_0x87b7[55]]);_0xa7d5x29[_0x87b7[58]]= _[_0x87b7[57]](_0xa7d5x28[_0x87b7[58]]);_0xa7d5x29[_0x87b7[59]]= _[_0x87b7[60]](_0xa7d5x29[_0x87b7[54]],_0xa7d5x29[_0x87b7[58]]);_0xa7d5x1b[_0x87b7[61]]= _[_0x87b7[60]](_0xa7d5x29[_0x87b7[54]],qs[_0x87b7[62]](_0xa7d5x28[_0x87b7[58]][_0x87b7[62]]));_0xa7d5x1b[_0x87b7[61]]= (_0xa7d5x1b[_0x87b7[61]][_0x87b7[63]])?_0xa7d5x1b[_0x87b7[61]]:_0xa7d5x29[_0x87b7[54]];_0xa7d5x1b= _[_0x87b7[73]]({},_0xa7d5x1b,_0xa7d5x28[_0x87b7[74]]);return db[_0x87b7[56]][_0x87b7[80]](_0xa7d5x1b)[_0x87b7[45]](handleEntityNotFound(_0xa7d5x15,null,_0x87b7[77]))[_0x87b7[45]](respondWithResult(_0xa7d5x15,null,_0x87b7[77]))[_0x87b7[75]](handleError(_0xa7d5x15,null,_0x87b7[77]))};exports[_0x87b7[81]]= function(_0xa7d5x28,_0xa7d5x15){return db[_0x87b7[56]][_0x87b7[81]](_0xa7d5x28[_0x87b7[82]],{})[_0x87b7[45]](respondWithResult(_0xa7d5x15,201,_0x87b7[81]))[_0x87b7[75]](handleError(_0xa7d5x15,null,_0x87b7[81]))};exports[_0x87b7[46]]= function(_0xa7d5x28,_0xa7d5x15){if(_0xa7d5x28[_0x87b7[82]][_0x87b7[78]]){delete _0xa7d5x28[_0x87b7[82]][_0x87b7[78]]};return db[_0x87b7[56]][_0x87b7[80]]({where:{id:_0xa7d5x28[_0x87b7[79]][_0x87b7[78]]}})[_0x87b7[45]](handleEntityNotFound(_0xa7d5x15,null,_0x87b7[46]))[_0x87b7[45]](saveUpdates(_0xa7d5x28[_0x87b7[82]],null,_0x87b7[46]))[_0x87b7[45]](respondWithResult(_0xa7d5x15,null,_0x87b7[46]))[_0x87b7[75]](handleError(_0xa7d5x15,null,_0x87b7[46]))};exports[_0x87b7[48]]= function(_0xa7d5x28,_0xa7d5x15){return db[_0x87b7[56]][_0x87b7[80]]({where:{id:_0xa7d5x28[_0x87b7[79]][_0x87b7[78]]}})[_0x87b7[45]](handleEntityNotFound(_0xa7d5x15,null,_0x87b7[48]))[_0x87b7[45]](removeEntity(_0xa7d5x15,null,_0x87b7[48]))[_0x87b7[75]](handleError(_0xa7d5x15,null,_0x87b7[48]))}
\ No newline at end of file
index 7060863..7ada606 100644 (file)
@@ -1 +1 @@
-var _0x31fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x31fc[0];var _=require(_0x31fc[1]);var util=require(_0x31fc[2]);var logger=require(_0x31fc[4])(_0x31fc[3]);var attributes=require(_0x31fc[5]);module[_0x31fc[6]]= function(_0x82e4x5,_0x82e4x6){return _0x82e4x5[_0x31fc[9]](_0x31fc[7],attributes,{tableName:_0x31fc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd5de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xd5de[0];var _=require(_0xd5de[1]);var util=require(_0xd5de[2]);var logger=require(_0xd5de[4])(_0xd5de[3]);var attributes=require(_0xd5de[5]);module[_0xd5de[6]]= function(_0xa937x5,_0xa937x6){return _0xa937x5[_0xd5de[9]](_0xd5de[7],attributes,{tableName:_0xd5de[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index bfd91bb..ef2f8cc 100644 (file)
@@ -1 +1 @@
-var _0xaab1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xaab1[0];var _=require(_0xaab1[1]);var util=require(_0xaab1[2]);var moment=require(_0xaab1[3]);var BPromise=require(_0xaab1[4]);var db=require(_0xaab1[6])[_0xaab1[5]];var utils=require(_0xaab1[7]);var logger=require(_0xaab1[9])(_0xaab1[8]);var jayson=require(_0xaab1[10]);var client=jayson[_0xaab1[12]][_0xaab1[11]]({port:9002});function respondWithRpcPromise(_0xb72dxb,_0xb72dxc,_0xb72dxd){return  new BPromise(function(_0xb72dxe,_0xb72dxf){return client[_0xaab1[25]](_0xb72dxb,_0xb72dxd)[_0xaab1[24]](function(_0xb72dx11){logger[_0xaab1[17]](_0xaab1[13],_0xb72dxc,_0xaab1[16]);logger[_0xaab1[20]](_0xaab1[18],_0xb72dxc,_0xaab1[16],JSON[_0xaab1[19]](_0xb72dx11));if(_0xb72dx11[_0xaab1[14]]){if(_0xb72dx11[_0xaab1[14]][_0xaab1[21]]=== 500){logger[_0xaab1[14]](_0xaab1[13],_0xb72dxc,_0xb72dx11[_0xaab1[14]][_0xaab1[22]]);return _0xb72dxf(_0xb72dx11[_0xaab1[14]][_0xaab1[22]])};logger[_0xaab1[14]](_0xaab1[13],_0xb72dxc,_0xb72dx11[_0xaab1[14]][_0xaab1[22]]);return _0xb72dxe(_0xb72dx11[_0xaab1[14]][_0xaab1[22]])}else {logger[_0xaab1[17]](_0xaab1[13],_0xb72dxc,_0xaab1[16]);_0xb72dxe(_0xb72dx11[_0xaab1[23]][_0xaab1[22]])}})[_0xaab1[15]](function(_0xb72dx10){logger[_0xaab1[14]](_0xaab1[13],_0xb72dxc,_0xb72dx10);_0xb72dxf(_0xb72dx10)})})}
\ No newline at end of file
+var _0x431c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x431c[0];var _=require(_0x431c[1]);var util=require(_0x431c[2]);var moment=require(_0x431c[3]);var BPromise=require(_0x431c[4]);var db=require(_0x431c[6])[_0x431c[5]];var utils=require(_0x431c[7]);var logger=require(_0x431c[9])(_0x431c[8]);var jayson=require(_0x431c[10]);var client=jayson[_0x431c[12]][_0x431c[11]]({port:9002});function respondWithRpcPromise(_0x5216xb,_0x5216xc,_0x5216xd){return  new BPromise(function(_0x5216xe,_0x5216xf){return client[_0x431c[25]](_0x5216xb,_0x5216xd)[_0x431c[24]](function(_0x5216x11){logger[_0x431c[17]](_0x431c[13],_0x5216xc,_0x431c[16]);logger[_0x431c[20]](_0x431c[18],_0x5216xc,_0x431c[16],JSON[_0x431c[19]](_0x5216x11));if(_0x5216x11[_0x431c[14]]){if(_0x5216x11[_0x431c[14]][_0x431c[21]]=== 500){logger[_0x431c[14]](_0x431c[13],_0x5216xc,_0x5216x11[_0x431c[14]][_0x431c[22]]);return _0x5216xf(_0x5216x11[_0x431c[14]][_0x431c[22]])};logger[_0x431c[14]](_0x431c[13],_0x5216xc,_0x5216x11[_0x431c[14]][_0x431c[22]]);return _0x5216xe(_0x5216x11[_0x431c[14]][_0x431c[22]])}else {logger[_0x431c[17]](_0x431c[13],_0x5216xc,_0x431c[16]);_0x5216xe(_0x5216x11[_0x431c[23]][_0x431c[22]])}})[_0x431c[15]](function(_0x5216x10){logger[_0x431c[14]](_0x431c[13],_0x5216xc,_0x5216x10);_0x5216xf(_0x5216x10)})})}
\ No newline at end of file
index 3d43768..544ef10 100644 (file)
@@ -1 +1 @@
-var _0x92dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x92dc[0];var multer=require(_0x92dc[1]);var util=require(_0x92dc[2]);var path=require(_0x92dc[3]);var express=require(_0x92dc[4]);var router=express.Router();var auth=require(_0x92dc[5]);var config=require(_0x92dc[6]);var controller=require(_0x92dc[7]);router[_0x92dc[11]](_0x92dc[8],auth[_0x92dc[9]](),controller[_0x92dc[10]]);router[_0x92dc[14]](_0x92dc[12],auth[_0x92dc[9]](),controller[_0x92dc[13]]);router[_0x92dc[16]](_0x92dc[8],auth[_0x92dc[9]](),controller[_0x92dc[15]]);router[_0x92dc[18]](_0x92dc[8],auth[_0x92dc[9]](),controller[_0x92dc[17]]);module[_0x92dc[19]]= router
\ No newline at end of file
+var _0x12f0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x12f0[0];var multer=require(_0x12f0[1]);var util=require(_0x12f0[2]);var path=require(_0x12f0[3]);var express=require(_0x12f0[4]);var router=express.Router();var auth=require(_0x12f0[5]);var config=require(_0x12f0[6]);var controller=require(_0x12f0[7]);router[_0x12f0[11]](_0x12f0[8],auth[_0x12f0[9]](),controller[_0x12f0[10]]);router[_0x12f0[14]](_0x12f0[12],auth[_0x12f0[9]](),controller[_0x12f0[13]]);router[_0x12f0[16]](_0x12f0[8],auth[_0x12f0[9]](),controller[_0x12f0[15]]);router[_0x12f0[18]](_0x12f0[8],auth[_0x12f0[9]](),controller[_0x12f0[17]]);module[_0x12f0[19]]= router
\ No newline at end of file
index 825f9c8..e9b4fdb 100644 (file)
@@ -1 +1 @@
-var _0xb95c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xb95c[0];var Sequelize=require(_0xb95c[1]);module[_0xb95c[2]]= {name:{type:Sequelize[_0xb95c[3]]}}
\ No newline at end of file
+var _0xb939=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xb939[0];var Sequelize=require(_0xb939[1]);module[_0xb939[2]]= {name:{type:Sequelize[_0xb939[3]]}}
\ No newline at end of file
index 5615fff..92c6f78 100644 (file)
@@ -1 +1 @@
-var _0x52c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x52c0[0];var jsonpatch=require(_0x52c0[1]);var rp=require(_0x52c0[2]);var moment=require(_0x52c0[3]);var BPromise=require(_0x52c0[4]);var util=require(_0x52c0[5]);var path=require(_0x52c0[6]);var sox=require(_0x52c0[7]);var ejs=require(_0x52c0[8]);var fs=require(_0x52c0[9]);var _=require(_0x52c0[10]);var squel=require(_0x52c0[11]);var crypto=require(_0x52c0[12]);var jsforce=require(_0x52c0[13]);var toCsv=require(_0x52c0[14]);var qs=require(_0x52c0[15]);var logger=require(_0x52c0[17])(_0x52c0[16]);var utils=require(_0x52c0[18]);var config=require(_0x52c0[19]);var db=require(_0x52c0[21])[_0x52c0[20]];function respondWithStatusCode(_0x31afx15,_0x31afx16,_0x31afx17){_0x31afx16= _0x31afx16|| 204;return function(_0x31afx18){if(_0x31afx18){logger[_0x52c0[24]](_0x52c0[22],_0x31afx17,_0x31afx16,_0x52c0[23]);logger[_0x52c0[26]](_0x52c0[25],_0x31afx17,_0x31afx16,_0x52c0[23]);return _0x31afx15[_0x52c0[27]](_0x31afx16)};return _0x31afx15[_0x52c0[29]](304)[_0x52c0[28]]()}}function respondWithResult(_0x31afx15,_0x31afx16,_0x31afx17){_0x31afx16= _0x31afx16|| 200;return function(_0x31afx18){if(_0x31afx18){logger[_0x52c0[24]](_0x52c0[22],_0x31afx17,_0x31afx16,_0x52c0[30]);logger[_0x52c0[26]](_0x52c0[25],_0x31afx17,_0x31afx16,_0x52c0[30],JSON[_0x52c0[31]](_0x31afx18));return _0x31afx15[_0x52c0[29]](_0x31afx16)[_0x52c0[32]](_0x31afx18)};return _0x31afx15[_0x52c0[29]](304)[_0x52c0[28]]()}}function respondWithFilteredResult(_0x31afx15,_0x31afx1b,_0x31afx17){return function(_0x31afx18){if(_0x31afx18){var _0x31afx1c=_0x31afx18[_0x52c0[33]],_0x31afx1d=_0x31afx1b[_0x52c0[34]],_0x31afx1e=_0x31afx1b[_0x52c0[34]]+ _0x31afx1b[_0x52c0[35]],_0x31afx16;if(_0x31afx1e>= _0x31afx1c){_0x31afx1e= _0x31afx1c;_0x31afx16= 200}else {_0x31afx16= 206};_0x31afx15[_0x52c0[29]](_0x31afx16);logger[_0x52c0[24]](_0x52c0[22],_0x31afx17,_0x31afx16,_0x52c0[36]);logger[_0x52c0[26]](_0x52c0[25],_0x31afx17,_0x31afx16,_0x52c0[30],JSON[_0x52c0[31]](_0x31afx18));return _0x31afx15[_0x52c0[40]](_0x52c0[37],_0x31afx1d+ _0x52c0[38]+ _0x31afx1e+ _0x52c0[39]+ _0x31afx1c)[_0x52c0[32]](_0x31afx18)};return null}}function patchUpdates(_0x31afx20){return function(_0x31afx18){try{jsonpatch[_0x52c0[41]](_0x31afx18,_0x31afx20,true)}catch(err){return BPromise[_0x52c0[42]](err)};return _0x31afx18[_0x52c0[43]]()}}function saveUpdates(_0x31afx22,_0x31afx16,_0x31afx17){return function(_0x31afx18){if(_0x31afx18){return _0x31afx18[_0x52c0[46]](_0x31afx22)[_0x52c0[45]](function(_0x31afx23){logger[_0x52c0[24]](_0x52c0[22],_0x31afx17,_0x31afx16,_0x52c0[44]);logger[_0x52c0[26]](_0x52c0[25],_0x31afx17,_0x31afx16,_0x52c0[44],JSON[_0x52c0[31]](_0x31afx18));return _0x31afx23})};return null}}function removeEntity(_0x31afx15,_0x31afx16,_0x31afx17){return function(_0x31afx18){if(_0x31afx18){return _0x31afx18[_0x52c0[48]]()[_0x52c0[45]](function(){logger[_0x52c0[24]](_0x52c0[22],_0x31afx17,_0x31afx16,_0x52c0[47]);logger[_0x52c0[26]](_0x52c0[25],_0x31afx17,_0x31afx16,_0x52c0[47],JSON[_0x52c0[31]](_0x31afx18));_0x31afx15[_0x52c0[29]](204)[_0x52c0[28]]()})}}}function handleEntityNotFound(_0x31afx15,_0x31afx16,_0x31afx17){return function(_0x31afx18){if(!_0x31afx18){logger[_0x52c0[50]](_0x52c0[22],_0x31afx17,404,_0x52c0[49]);_0x31afx15[_0x52c0[29]](404)[_0x52c0[28]]();return null};return _0x31afx18}}function handleError(_0x31afx15,_0x31afx16,_0x31afx17){_0x31afx16= _0x31afx16|| 500;return function(_0x31afx27){logger[_0x52c0[50]](_0x52c0[22],_0x31afx17,_0x31afx16,JSON[_0x52c0[31]](_0x31afx27));delete _0x31afx27[_0x52c0[51]];_0x31afx15[_0x52c0[29]](_0x31afx16)[_0x52c0[52]](_0x31afx27)}}exports[_0x52c0[53]]= function(_0x31afx28,_0x31afx15){var _0x31afx1b={raw:true,where:{id:_0x31afx28[_0x52c0[55]][_0x52c0[54]]}},_0x31afx29={};_0x31afx29[_0x52c0[56]]= _[_0x52c0[59]](db[_0x52c0[58]][_0x52c0[57]]);_0x31afx29[_0x52c0[60]]= _[_0x52c0[59]](_0x31afx28[_0x52c0[60]]);_0x31afx29[_0x52c0[61]]= _[_0x52c0[62]](_0x31afx29[_0x52c0[56]],_0x31afx29[_0x52c0[60]]);_0x31afx1b[_0x52c0[63]]= _[_0x52c0[62]](_0x31afx29[_0x52c0[56]],qs[_0x52c0[64]](_0x31afx28[_0x52c0[60]][_0x52c0[64]]));_0x31afx1b[_0x52c0[63]]= (_0x31afx1b[_0x52c0[63]][_0x52c0[65]])?_0x31afx1b[_0x52c0[63]]:_0x31afx29[_0x52c0[56]];_0x31afx1b= _[_0x52c0[67]]({},_0x31afx1b,_0x31afx28[_0x52c0[66]]);return db[_0x52c0[58]][_0x52c0[69]](_0x31afx1b)[_0x52c0[45]](handleEntityNotFound(_0x31afx15,null,_0x52c0[53]))[_0x52c0[45]](respondWithResult(_0x31afx15,null,_0x52c0[53]))[_0x52c0[68]](handleError(_0x31afx15,null,_0x52c0[53]))};exports[_0x52c0[70]]= function(_0x31afx28,_0x31afx15){return db[_0x52c0[58]][_0x52c0[70]](_0x31afx28[_0x52c0[71]],{})[_0x52c0[45]](respondWithResult(_0x31afx15,201,_0x52c0[70]))[_0x52c0[68]](handleError(_0x31afx15,null,_0x52c0[70]))};exports[_0x52c0[46]]= function(_0x31afx28,_0x31afx15){if(_0x31afx28[_0x52c0[71]][_0x52c0[54]]){delete _0x31afx28[_0x52c0[71]][_0x52c0[54]]};return db[_0x52c0[58]][_0x52c0[69]]({where:{id:_0x31afx28[_0x52c0[55]][_0x52c0[54]]}})[_0x52c0[45]](handleEntityNotFound(_0x31afx15,null,_0x52c0[46]))[_0x52c0[45]](saveUpdates(_0x31afx28[_0x52c0[71]],null,_0x52c0[46]))[_0x52c0[45]](respondWithResult(_0x31afx15,null,_0x52c0[46]))[_0x52c0[68]](handleError(_0x31afx15,null,_0x52c0[46]))};exports[_0x52c0[48]]= function(_0x31afx28,_0x31afx15){return db[_0x52c0[58]][_0x52c0[69]]({where:{id:_0x31afx28[_0x52c0[55]][_0x52c0[54]]}})[_0x52c0[45]](handleEntityNotFound(_0x31afx15,null,_0x52c0[48]))[_0x52c0[45]](removeEntity(_0x31afx15,null,_0x52c0[48]))[_0x52c0[68]](handleError(_0x31afx15,null,_0x52c0[48]))}
\ No newline at end of file
+var _0x5ade=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5ade[0];var jsonpatch=require(_0x5ade[1]);var rp=require(_0x5ade[2]);var moment=require(_0x5ade[3]);var BPromise=require(_0x5ade[4]);var util=require(_0x5ade[5]);var path=require(_0x5ade[6]);var sox=require(_0x5ade[7]);var ejs=require(_0x5ade[8]);var fs=require(_0x5ade[9]);var _=require(_0x5ade[10]);var squel=require(_0x5ade[11]);var crypto=require(_0x5ade[12]);var jsforce=require(_0x5ade[13]);var toCsv=require(_0x5ade[14]);var qs=require(_0x5ade[15]);var logger=require(_0x5ade[17])(_0x5ade[16]);var utils=require(_0x5ade[18]);var config=require(_0x5ade[19]);var db=require(_0x5ade[21])[_0x5ade[20]];function respondWithStatusCode(_0x8005x15,_0x8005x16,_0x8005x17){_0x8005x16= _0x8005x16|| 204;return function(_0x8005x18){if(_0x8005x18){logger[_0x5ade[24]](_0x5ade[22],_0x8005x17,_0x8005x16,_0x5ade[23]);logger[_0x5ade[26]](_0x5ade[25],_0x8005x17,_0x8005x16,_0x5ade[23]);return _0x8005x15[_0x5ade[27]](_0x8005x16)};return _0x8005x15[_0x5ade[29]](304)[_0x5ade[28]]()}}function respondWithResult(_0x8005x15,_0x8005x16,_0x8005x17){_0x8005x16= _0x8005x16|| 200;return function(_0x8005x18){if(_0x8005x18){logger[_0x5ade[24]](_0x5ade[22],_0x8005x17,_0x8005x16,_0x5ade[30]);logger[_0x5ade[26]](_0x5ade[25],_0x8005x17,_0x8005x16,_0x5ade[30],JSON[_0x5ade[31]](_0x8005x18));return _0x8005x15[_0x5ade[29]](_0x8005x16)[_0x5ade[32]](_0x8005x18)};return _0x8005x15[_0x5ade[29]](304)[_0x5ade[28]]()}}function respondWithFilteredResult(_0x8005x15,_0x8005x1b,_0x8005x17){return function(_0x8005x18){if(_0x8005x18){var _0x8005x1c=_0x8005x18[_0x5ade[33]],_0x8005x1d=_0x8005x1b[_0x5ade[34]],_0x8005x1e=_0x8005x1b[_0x5ade[34]]+ _0x8005x1b[_0x5ade[35]],_0x8005x16;if(_0x8005x1e>= _0x8005x1c){_0x8005x1e= _0x8005x1c;_0x8005x16= 200}else {_0x8005x16= 206};_0x8005x15[_0x5ade[29]](_0x8005x16);logger[_0x5ade[24]](_0x5ade[22],_0x8005x17,_0x8005x16,_0x5ade[36]);logger[_0x5ade[26]](_0x5ade[25],_0x8005x17,_0x8005x16,_0x5ade[30],JSON[_0x5ade[31]](_0x8005x18));return _0x8005x15[_0x5ade[40]](_0x5ade[37],_0x8005x1d+ _0x5ade[38]+ _0x8005x1e+ _0x5ade[39]+ _0x8005x1c)[_0x5ade[32]](_0x8005x18)};return null}}function patchUpdates(_0x8005x20){return function(_0x8005x18){try{jsonpatch[_0x5ade[41]](_0x8005x18,_0x8005x20,true)}catch(err){return BPromise[_0x5ade[42]](err)};return _0x8005x18[_0x5ade[43]]()}}function saveUpdates(_0x8005x22,_0x8005x16,_0x8005x17){return function(_0x8005x18){if(_0x8005x18){return _0x8005x18[_0x5ade[46]](_0x8005x22)[_0x5ade[45]](function(_0x8005x23){logger[_0x5ade[24]](_0x5ade[22],_0x8005x17,_0x8005x16,_0x5ade[44]);logger[_0x5ade[26]](_0x5ade[25],_0x8005x17,_0x8005x16,_0x5ade[44],JSON[_0x5ade[31]](_0x8005x18));return _0x8005x23})};return null}}function removeEntity(_0x8005x15,_0x8005x16,_0x8005x17){return function(_0x8005x18){if(_0x8005x18){return _0x8005x18[_0x5ade[48]]()[_0x5ade[45]](function(){logger[_0x5ade[24]](_0x5ade[22],_0x8005x17,_0x8005x16,_0x5ade[47]);logger[_0x5ade[26]](_0x5ade[25],_0x8005x17,_0x8005x16,_0x5ade[47],JSON[_0x5ade[31]](_0x8005x18));_0x8005x15[_0x5ade[29]](204)[_0x5ade[28]]()})}}}function handleEntityNotFound(_0x8005x15,_0x8005x16,_0x8005x17){return function(_0x8005x18){if(!_0x8005x18){logger[_0x5ade[50]](_0x5ade[22],_0x8005x17,404,_0x5ade[49]);_0x8005x15[_0x5ade[29]](404)[_0x5ade[28]]();return null};return _0x8005x18}}function handleError(_0x8005x15,_0x8005x16,_0x8005x17){_0x8005x16= _0x8005x16|| 500;return function(_0x8005x27){logger[_0x5ade[50]](_0x5ade[22],_0x8005x17,_0x8005x16,JSON[_0x5ade[31]](_0x8005x27));delete _0x8005x27[_0x5ade[51]];_0x8005x15[_0x5ade[29]](_0x8005x16)[_0x5ade[52]](_0x8005x27)}}exports[_0x5ade[53]]= function(_0x8005x28,_0x8005x15){var _0x8005x1b={raw:true,where:{id:_0x8005x28[_0x5ade[55]][_0x5ade[54]]}},_0x8005x29={};_0x8005x29[_0x5ade[56]]= _[_0x5ade[59]](db[_0x5ade[58]][_0x5ade[57]]);_0x8005x29[_0x5ade[60]]= _[_0x5ade[59]](_0x8005x28[_0x5ade[60]]);_0x8005x29[_0x5ade[61]]= _[_0x5ade[62]](_0x8005x29[_0x5ade[56]],_0x8005x29[_0x5ade[60]]);_0x8005x1b[_0x5ade[63]]= _[_0x5ade[62]](_0x8005x29[_0x5ade[56]],qs[_0x5ade[64]](_0x8005x28[_0x5ade[60]][_0x5ade[64]]));_0x8005x1b[_0x5ade[63]]= (_0x8005x1b[_0x5ade[63]][_0x5ade[65]])?_0x8005x1b[_0x5ade[63]]:_0x8005x29[_0x5ade[56]];_0x8005x1b= _[_0x5ade[67]]({},_0x8005x1b,_0x8005x28[_0x5ade[66]]);return db[_0x5ade[58]][_0x5ade[69]](_0x8005x1b)[_0x5ade[45]](handleEntityNotFound(_0x8005x15,null,_0x5ade[53]))[_0x5ade[45]](respondWithResult(_0x8005x15,null,_0x5ade[53]))[_0x5ade[68]](handleError(_0x8005x15,null,_0x5ade[53]))};exports[_0x5ade[70]]= function(_0x8005x28,_0x8005x15){return db[_0x5ade[58]][_0x5ade[70]](_0x8005x28[_0x5ade[71]],{})[_0x5ade[45]](respondWithResult(_0x8005x15,201,_0x5ade[70]))[_0x5ade[68]](handleError(_0x8005x15,null,_0x5ade[70]))};exports[_0x5ade[46]]= function(_0x8005x28,_0x8005x15){if(_0x8005x28[_0x5ade[71]][_0x5ade[54]]){delete _0x8005x28[_0x5ade[71]][_0x5ade[54]]};return db[_0x5ade[58]][_0x5ade[69]]({where:{id:_0x8005x28[_0x5ade[55]][_0x5ade[54]]}})[_0x5ade[45]](handleEntityNotFound(_0x8005x15,null,_0x5ade[46]))[_0x5ade[45]](saveUpdates(_0x8005x28[_0x5ade[71]],null,_0x5ade[46]))[_0x5ade[45]](respondWithResult(_0x8005x15,null,_0x5ade[46]))[_0x5ade[68]](handleError(_0x8005x15,null,_0x5ade[46]))};exports[_0x5ade[48]]= function(_0x8005x28,_0x8005x15){return db[_0x5ade[58]][_0x5ade[69]]({where:{id:_0x8005x28[_0x5ade[55]][_0x5ade[54]]}})[_0x5ade[45]](handleEntityNotFound(_0x8005x15,null,_0x5ade[48]))[_0x5ade[45]](removeEntity(_0x8005x15,null,_0x5ade[48]))[_0x5ade[68]](handleError(_0x8005x15,null,_0x5ade[48]))}
\ No newline at end of file
index 003c944..ad564cf 100644 (file)
@@ -1 +1 @@
-var _0x7322=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x7322[0];var _=require(_0x7322[1]);var util=require(_0x7322[2]);var logger=require(_0x7322[4])(_0x7322[3]);var attributes=require(_0x7322[5]);module[_0x7322[6]]= function(_0x568fx5,_0x568fx6){return _0x568fx5[_0x7322[9]](_0x7322[7],attributes,{tableName:_0x7322[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x95d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x95d0[0];var _=require(_0x95d0[1]);var util=require(_0x95d0[2]);var logger=require(_0x95d0[4])(_0x95d0[3]);var attributes=require(_0x95d0[5]);module[_0x95d0[6]]= function(_0xfae6x5,_0xfae6x6){return _0xfae6x5[_0x95d0[9]](_0x95d0[7],attributes,{tableName:_0x95d0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 3d95ad1..dc30f0c 100644 (file)
@@ -1 +1 @@
-var _0xd2a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E"];_0xd2a2[0];var _=require(_0xd2a2[1]);var util=require(_0xd2a2[2]);var moment=require(_0xd2a2[3]);var BPromise=require(_0xd2a2[4]);var db=require(_0xd2a2[6])[_0xd2a2[5]];var utils=require(_0xd2a2[7]);var logger=require(_0xd2a2[9])(_0xd2a2[8]);var jayson=require(_0xd2a2[10]);var client=jayson[_0xd2a2[12]][_0xd2a2[11]]({port:9002});function respondWithRpcPromise(_0xc736xb,_0xc736xc,_0xc736xd){return  new BPromise(function(_0xc736xe,_0xc736xf){return client[_0xd2a2[25]](_0xc736xb,_0xc736xd)[_0xd2a2[24]](function(_0xc736x11){logger[_0xd2a2[17]](_0xd2a2[13],_0xc736xc,_0xd2a2[16]);logger[_0xd2a2[20]](_0xd2a2[18],_0xc736xc,_0xd2a2[16],JSON[_0xd2a2[19]](_0xc736x11));if(_0xc736x11[_0xd2a2[14]]){if(_0xc736x11[_0xd2a2[14]][_0xd2a2[21]]=== 500){logger[_0xd2a2[14]](_0xd2a2[13],_0xc736xc,_0xc736x11[_0xd2a2[14]][_0xd2a2[22]]);return _0xc736xf(_0xc736x11[_0xd2a2[14]][_0xd2a2[22]])};logger[_0xd2a2[14]](_0xd2a2[13],_0xc736xc,_0xc736x11[_0xd2a2[14]][_0xd2a2[22]]);return _0xc736xe(_0xc736x11[_0xd2a2[14]][_0xd2a2[22]])}else {logger[_0xd2a2[17]](_0xd2a2[13],_0xc736xc,_0xd2a2[16]);_0xc736xe(_0xc736x11[_0xd2a2[23]][_0xd2a2[22]])}})[_0xd2a2[15]](function(_0xc736x10){logger[_0xd2a2[14]](_0xd2a2[13],_0xc736xc,_0xc736x10);_0xc736xf(_0xc736x10)})})}exports[_0xd2a2[26]]= function(_0xc736xd){var _0xc736x12=this;return  new Promise(function(_0xc736xe,_0xc736xf){return db[_0xd2a2[34]][_0xd2a2[33]](_0xc736xd[_0xd2a2[27]],{raw:_0xc736xd[_0xd2a2[28]]?(_0xc736xd[_0xd2a2[28]][_0xd2a2[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xc736xd[_0xd2a2[28]]?_0xc736xd[_0xd2a2[28]][_0xd2a2[30]]|| null:null,attributes:_0xc736xd[_0xd2a2[28]]?_0xc736xd[_0xd2a2[28]][_0xd2a2[31]]|| null:null,limit:_0xc736xd[_0xd2a2[28]]?_0xc736xd[_0xd2a2[28]][_0xd2a2[32]]|| null:null})[_0xd2a2[24]](function(_0xc736x11){logger[_0xd2a2[17]](_0xd2a2[26],_0xc736xd);logger[_0xd2a2[20]](_0xd2a2[26],_0xc736xd,JSON[_0xd2a2[19]](_0xc736x11));_0xc736xe(_0xc736x11)})[_0xd2a2[15]](function(_0xc736x10){logger[_0xd2a2[14]](_0xd2a2[26],_0xc736x10[_0xd2a2[22]],_0xc736xd);_0xc736xf(_0xc736x12[_0xd2a2[14]](500,_0xc736x10[_0xd2a2[22]]))})})}
\ No newline at end of file
+var _0x658d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E"];_0x658d[0];var _=require(_0x658d[1]);var util=require(_0x658d[2]);var moment=require(_0x658d[3]);var BPromise=require(_0x658d[4]);var db=require(_0x658d[6])[_0x658d[5]];var utils=require(_0x658d[7]);var logger=require(_0x658d[9])(_0x658d[8]);var jayson=require(_0x658d[10]);var client=jayson[_0x658d[12]][_0x658d[11]]({port:9002});function respondWithRpcPromise(_0xe23exb,_0xe23exc,_0xe23exd){return  new BPromise(function(_0xe23exe,_0xe23exf){return client[_0x658d[25]](_0xe23exb,_0xe23exd)[_0x658d[24]](function(_0xe23ex11){logger[_0x658d[17]](_0x658d[13],_0xe23exc,_0x658d[16]);logger[_0x658d[20]](_0x658d[18],_0xe23exc,_0x658d[16],JSON[_0x658d[19]](_0xe23ex11));if(_0xe23ex11[_0x658d[14]]){if(_0xe23ex11[_0x658d[14]][_0x658d[21]]=== 500){logger[_0x658d[14]](_0x658d[13],_0xe23exc,_0xe23ex11[_0x658d[14]][_0x658d[22]]);return _0xe23exf(_0xe23ex11[_0x658d[14]][_0x658d[22]])};logger[_0x658d[14]](_0x658d[13],_0xe23exc,_0xe23ex11[_0x658d[14]][_0x658d[22]]);return _0xe23exe(_0xe23ex11[_0x658d[14]][_0x658d[22]])}else {logger[_0x658d[17]](_0x658d[13],_0xe23exc,_0x658d[16]);_0xe23exe(_0xe23ex11[_0x658d[23]][_0x658d[22]])}})[_0x658d[15]](function(_0xe23ex10){logger[_0x658d[14]](_0x658d[13],_0xe23exc,_0xe23ex10);_0xe23exf(_0xe23ex10)})})}exports[_0x658d[26]]= function(_0xe23exd){var _0xe23ex12=this;return  new Promise(function(_0xe23exe,_0xe23exf){return db[_0x658d[34]][_0x658d[33]](_0xe23exd[_0x658d[27]],{raw:_0xe23exd[_0x658d[28]]?(_0xe23exd[_0x658d[28]][_0x658d[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xe23exd[_0x658d[28]]?_0xe23exd[_0x658d[28]][_0x658d[30]]|| null:null,attributes:_0xe23exd[_0x658d[28]]?_0xe23exd[_0x658d[28]][_0x658d[31]]|| null:null,limit:_0xe23exd[_0x658d[28]]?_0xe23exd[_0x658d[28]][_0x658d[32]]|| null:null})[_0x658d[24]](function(_0xe23ex11){logger[_0x658d[17]](_0x658d[26],_0xe23exd);logger[_0x658d[20]](_0x658d[26],_0xe23exd,JSON[_0x658d[19]](_0xe23ex11));_0xe23exe(_0xe23ex11)})[_0x658d[15]](function(_0xe23ex10){logger[_0x658d[14]](_0x658d[26],_0xe23ex10[_0x658d[22]],_0xe23exd);_0xe23exf(_0xe23ex12[_0x658d[14]](500,_0xe23ex10[_0x658d[22]]))})})}
\ No newline at end of file
index 170fcca..c004994 100644 (file)
@@ -1 +1 @@
-var _0x5305=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5305[0];var multer=require(_0x5305[1]);var util=require(_0x5305[2]);var path=require(_0x5305[3]);var express=require(_0x5305[4]);var router=express.Router();var auth=require(_0x5305[5]);var config=require(_0x5305[6]);var controller=require(_0x5305[7]);router[_0x5305[11]](_0x5305[8],auth[_0x5305[9]](),controller[_0x5305[10]]);router[_0x5305[11]](_0x5305[12],auth[_0x5305[9]](),controller[_0x5305[13]]);router[_0x5305[11]](_0x5305[14],auth[_0x5305[9]](),controller[_0x5305[15]]);router[_0x5305[11]](_0x5305[16],auth[_0x5305[9]](),controller[_0x5305[17]]);router[_0x5305[19]](_0x5305[8],auth[_0x5305[9]](),controller[_0x5305[18]]);router[_0x5305[19]](_0x5305[16],auth[_0x5305[9]](),controller[_0x5305[20]]);router[_0x5305[22]](_0x5305[14],auth[_0x5305[9]](),controller[_0x5305[21]]);router[_0x5305[24]](_0x5305[14],auth[_0x5305[9]](),controller[_0x5305[23]]);module[_0x5305[25]]= router
\ No newline at end of file
+var _0x2647=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2647[0];var multer=require(_0x2647[1]);var util=require(_0x2647[2]);var path=require(_0x2647[3]);var express=require(_0x2647[4]);var router=express.Router();var auth=require(_0x2647[5]);var config=require(_0x2647[6]);var controller=require(_0x2647[7]);router[_0x2647[11]](_0x2647[8],auth[_0x2647[9]](),controller[_0x2647[10]]);router[_0x2647[11]](_0x2647[12],auth[_0x2647[9]](),controller[_0x2647[13]]);router[_0x2647[11]](_0x2647[14],auth[_0x2647[9]](),controller[_0x2647[15]]);router[_0x2647[11]](_0x2647[16],auth[_0x2647[9]](),controller[_0x2647[17]]);router[_0x2647[19]](_0x2647[8],auth[_0x2647[9]](),controller[_0x2647[18]]);router[_0x2647[19]](_0x2647[16],auth[_0x2647[9]](),controller[_0x2647[20]]);router[_0x2647[22]](_0x2647[14],auth[_0x2647[9]](),controller[_0x2647[21]]);router[_0x2647[24]](_0x2647[14],auth[_0x2647[9]](),controller[_0x2647[23]]);module[_0x2647[25]]= router
\ No newline at end of file
index c6132f6..616ccb7 100644 (file)
@@ -1 +1 @@
-var _0x79c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E"];_0x79c1[0];var Sequelize=require(_0x79c1[1]);var moment=require(_0x79c1[2]);module[_0x79c1[3]]= {subject:{type:Sequelize[_0x79c1[4]]},from:{type:Sequelize[_0x79c1[4]]},account:{type:Sequelize[_0x79c1[4]]},attachment:{type:Sequelize[_0x79c1[5]],defaultValue:false},mailIn:{type:Sequelize[_0x79c1[6]],defaultValue:0},mailOut:{type:Sequelize[_0x79c1[6]],defaultValue:0},status:{type:Sequelize.ENUM(_0x79c1[7],_0x79c1[8],_0x79c1[9],_0x79c1[10]),defaultValue:_0x79c1[7],set:function(_0xae66x3){this[_0x79c1[12]](_0x79c1[11],_0xae66x3);switch(_0xae66x3){case _0x79c1[7]:this[_0x79c1[12]](_0x79c1[13],moment()[_0x79c1[15]](_0x79c1[14]));break;case _0x79c1[10]:this[_0x79c1[12]](_0x79c1[16],moment()[_0x79c1[15]](_0x79c1[14]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x79c1[17],_0x79c1[18],_0x79c1[19],_0x79c1[20],_0x79c1[21])},lastEventAt:{type:Sequelize[_0x79c1[22]]},deleted:{type:Sequelize[_0x79c1[5]],defaultValue:false},waiting:{type:Sequelize[_0x79c1[5]],defaultValue:false},tags:{type:Sequelize[_0x79c1[23]],get:function(){var _0xae66x4;if(this[_0x79c1[25]](_0x79c1[24])){_0xae66x4= this[_0x79c1[25]](_0x79c1[24])[_0x79c1[27]](_0x79c1[26]);_0xae66x4[_0x79c1[28]]()}else {_0xae66x4= []};return _0xae66x4},set:function(_0xae66x5){this[_0x79c1[12]](_0x79c1[24],_0xae66x5&& _0xae66x5[_0x79c1[29]]?_0xae66x5[_0x79c1[30]](_0x79c1[26])+ _0x79c1[26]:null)}},disposition:{type:Sequelize[_0x79c1[4]]},openReason:{type:Sequelize[_0x79c1[4]]},ParentId:{type:Sequelize[_0x79c1[6]]},arrivedAt:{type:Sequelize[_0x79c1[22]]},closedAt:{type:Sequelize[_0x79c1[22]]}}
\ No newline at end of file
+var _0x81c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E"];_0x81c3[0];var Sequelize=require(_0x81c3[1]);var moment=require(_0x81c3[2]);module[_0x81c3[3]]= {subject:{type:Sequelize[_0x81c3[4]]},from:{type:Sequelize[_0x81c3[4]]},account:{type:Sequelize[_0x81c3[4]]},attachment:{type:Sequelize[_0x81c3[5]],defaultValue:false},mailIn:{type:Sequelize[_0x81c3[6]],defaultValue:0},mailOut:{type:Sequelize[_0x81c3[6]],defaultValue:0},status:{type:Sequelize.ENUM(_0x81c3[7],_0x81c3[8],_0x81c3[9],_0x81c3[10]),defaultValue:_0x81c3[7],set:function(_0x38b2x3){this[_0x81c3[12]](_0x81c3[11],_0x38b2x3);switch(_0x38b2x3){case _0x81c3[7]:this[_0x81c3[12]](_0x81c3[13],moment()[_0x81c3[15]](_0x81c3[14]));break;case _0x81c3[10]:this[_0x81c3[12]](_0x81c3[16],moment()[_0x81c3[15]](_0x81c3[14]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x81c3[17],_0x81c3[18],_0x81c3[19],_0x81c3[20],_0x81c3[21])},lastEventAt:{type:Sequelize[_0x81c3[22]]},deleted:{type:Sequelize[_0x81c3[5]],defaultValue:false},waiting:{type:Sequelize[_0x81c3[5]],defaultValue:false},tags:{type:Sequelize[_0x81c3[23]],get:function(){var _0x38b2x4;if(this[_0x81c3[25]](_0x81c3[24])){_0x38b2x4= this[_0x81c3[25]](_0x81c3[24])[_0x81c3[27]](_0x81c3[26]);_0x38b2x4[_0x81c3[28]]()}else {_0x38b2x4= []};return _0x38b2x4},set:function(_0x38b2x5){this[_0x81c3[12]](_0x81c3[24],_0x38b2x5&& _0x38b2x5[_0x81c3[29]]?_0x38b2x5[_0x81c3[30]](_0x81c3[26])+ _0x81c3[26]:null)}},disposition:{type:Sequelize[_0x81c3[4]]},openReason:{type:Sequelize[_0x81c3[4]]},ParentId:{type:Sequelize[_0x81c3[6]]},arrivedAt:{type:Sequelize[_0x81c3[22]]},closedAt:{type:Sequelize[_0x81c3[22]]}}
\ No newline at end of file
index b50cf43..f156781 100644 (file)
@@ -1 +1 @@
-var _0x4180=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x4180[0];var jsonpatch=require(_0x4180[1]);var rp=require(_0x4180[2]);var moment=require(_0x4180[3]);var BPromise=require(_0x4180[4]);var util=require(_0x4180[5]);var path=require(_0x4180[6]);var sox=require(_0x4180[7]);var ejs=require(_0x4180[8]);var fs=require(_0x4180[9]);var _=require(_0x4180[10]);var squel=require(_0x4180[11]);var crypto=require(_0x4180[12]);var jsforce=require(_0x4180[13]);var toCsv=require(_0x4180[14]);var qs=require(_0x4180[15]);var logger=require(_0x4180[17])(_0x4180[16]);var utils=require(_0x4180[18]);var config=require(_0x4180[19]);var db=require(_0x4180[21])[_0x4180[20]];function respondWithStatusCode(_0x938dx15,_0x938dx16,_0x938dx17){_0x938dx16= _0x938dx16|| 204;return function(_0x938dx18){if(_0x938dx18){logger[_0x4180[24]](_0x4180[22],_0x938dx17,_0x938dx16,_0x4180[23]);logger[_0x4180[26]](_0x4180[25],_0x938dx17,_0x938dx16,_0x4180[23]);return _0x938dx15[_0x4180[27]](_0x938dx16)};return _0x938dx15[_0x4180[29]](304)[_0x4180[28]]()}}function respondWithResult(_0x938dx15,_0x938dx16,_0x938dx17){_0x938dx16= _0x938dx16|| 200;return function(_0x938dx18){if(_0x938dx18){logger[_0x4180[24]](_0x4180[22],_0x938dx17,_0x938dx16,_0x4180[30]);logger[_0x4180[26]](_0x4180[25],_0x938dx17,_0x938dx16,_0x4180[30],JSON[_0x4180[31]](_0x938dx18));return _0x938dx15[_0x4180[29]](_0x938dx16)[_0x4180[32]](_0x938dx18)};return _0x938dx15[_0x4180[29]](304)[_0x4180[28]]()}}function respondWithFilteredResult(_0x938dx15,_0x938dx1b,_0x938dx17){return function(_0x938dx18){if(_0x938dx18){var _0x938dx1c=_0x938dx18[_0x4180[33]],_0x938dx1d=_0x938dx1b[_0x4180[34]],_0x938dx1e=_0x938dx1b[_0x4180[34]]+ _0x938dx1b[_0x4180[35]],_0x938dx16;if(_0x938dx1e>= _0x938dx1c){_0x938dx1e= _0x938dx1c;_0x938dx16= 200}else {_0x938dx16= 206};_0x938dx15[_0x4180[29]](_0x938dx16);logger[_0x4180[24]](_0x4180[22],_0x938dx17,_0x938dx16,_0x4180[36]);logger[_0x4180[26]](_0x4180[25],_0x938dx17,_0x938dx16,_0x4180[30],JSON[_0x4180[31]](_0x938dx18));return _0x938dx15[_0x4180[40]](_0x4180[37],_0x938dx1d+ _0x4180[38]+ _0x938dx1e+ _0x4180[39]+ _0x938dx1c)[_0x4180[32]](_0x938dx18)};return null}}function patchUpdates(_0x938dx20){return function(_0x938dx18){try{jsonpatch[_0x4180[41]](_0x938dx18,_0x938dx20,true)}catch(err){return BPromise[_0x4180[42]](err)};return _0x938dx18[_0x4180[43]]()}}function saveUpdates(_0x938dx22,_0x938dx16,_0x938dx17){return function(_0x938dx18){if(_0x938dx18){return _0x938dx18[_0x4180[46]](_0x938dx22)[_0x4180[45]](function(_0x938dx23){logger[_0x4180[24]](_0x4180[22],_0x938dx17,_0x938dx16,_0x4180[44]);logger[_0x4180[26]](_0x4180[25],_0x938dx17,_0x938dx16,_0x4180[44],JSON[_0x4180[31]](_0x938dx18));return _0x938dx23})};return null}}function removeEntity(_0x938dx15,_0x938dx16,_0x938dx17){return function(_0x938dx18){if(_0x938dx18){return _0x938dx18[_0x4180[48]]()[_0x4180[45]](function(){logger[_0x4180[24]](_0x4180[22],_0x938dx17,_0x938dx16,_0x4180[47]);logger[_0x4180[26]](_0x4180[25],_0x938dx17,_0x938dx16,_0x4180[47],JSON[_0x4180[31]](_0x938dx18));_0x938dx15[_0x4180[29]](204)[_0x4180[28]]()})}}}function handleEntityNotFound(_0x938dx15,_0x938dx16,_0x938dx17){return function(_0x938dx18){if(!_0x938dx18){logger[_0x4180[50]](_0x4180[22],_0x938dx17,404,_0x4180[49]);_0x938dx15[_0x4180[29]](404)[_0x4180[28]]();return null};return _0x938dx18}}function handleError(_0x938dx15,_0x938dx16,_0x938dx17){_0x938dx16= _0x938dx16|| 500;return function(_0x938dx27){logger[_0x4180[50]](_0x4180[22],_0x938dx17,_0x938dx16,JSON[_0x4180[31]](_0x938dx27));delete _0x938dx27[_0x4180[51]];_0x938dx15[_0x4180[29]](_0x938dx16)[_0x4180[52]](_0x938dx27)}}exports[_0x4180[53]]= function(_0x938dx28,_0x938dx15){var _0x938dx1b={},_0x938dx29={};_0x938dx29[_0x4180[54]]= _[_0x4180[57]](db[_0x4180[56]][_0x4180[55]]);_0x938dx29[_0x4180[58]]= _[_0x4180[57]](_0x938dx28[_0x4180[58]]);_0x938dx29[_0x4180[59]]= _[_0x4180[60]](_0x938dx29[_0x4180[54]],_0x938dx29[_0x4180[58]]);_0x938dx1b[_0x4180[61]]= _[_0x4180[60]](_0x938dx29[_0x4180[54]],qs[_0x4180[62]](_0x938dx28[_0x4180[58]][_0x4180[62]]));_0x938dx1b[_0x4180[61]]= (_0x938dx1b[_0x4180[61]][_0x4180[63]])?_0x938dx1b[_0x4180[61]]:_0x938dx29[_0x4180[54]];if(!_0x938dx28[_0x4180[58]][_0x4180[65]](_0x4180[64])){_0x938dx1b[_0x4180[35]]= qs[_0x4180[35]](_0x938dx28[_0x4180[58]][_0x4180[35]]);_0x938dx1b[_0x4180[34]]= qs[_0x4180[34]](_0x938dx28[_0x4180[58]][_0x4180[34]])};_0x938dx1b[_0x4180[66]]= qs[_0x4180[67]](_0x938dx28[_0x4180[58]][_0x4180[67]]);_0x938dx1b[_0x4180[68]]= qs[_0x4180[59]](_[_0x4180[69]](_0x938dx28[_0x4180[58]],_0x938dx29[_0x4180[59]]));if(_0x938dx28[_0x4180[58]][_0x4180[70]]){_0x938dx1b[_0x4180[68]]= _[_0x4180[73]](_0x938dx1b[_0x4180[68]],{$or:_[_0x4180[72]](_0x938dx1b[_0x4180[61]],function(_0x938dx2a){var _0x938dx2b={};_0x938dx2b[_0x938dx2a]= {$like:_0x4180[71]+ _0x938dx28[_0x4180[58]][_0x4180[70]]+ _0x4180[71]};return _0x938dx2b})})};_0x938dx1b= _[_0x4180[73]]({},_0x938dx1b,_0x938dx28[_0x4180[74]]);return db[_0x4180[56]][_0x4180[76]](_0x938dx1b)[_0x4180[45]](respondWithFilteredResult(_0x938dx15,_0x938dx1b,_0x4180[53]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[53]))};exports[_0x4180[77]]= function(_0x938dx28,_0x938dx15){var _0x938dx1b={raw:false,where:{id:_0x938dx28[_0x4180[79]][_0x4180[78]]}},_0x938dx29={};_0x938dx29[_0x4180[54]]= _[_0x4180[57]](db[_0x4180[56]][_0x4180[55]]);_0x938dx29[_0x4180[58]]= _[_0x4180[57]](_0x938dx28[_0x4180[58]]);_0x938dx29[_0x4180[59]]= _[_0x4180[60]](_0x938dx29[_0x4180[54]],_0x938dx29[_0x4180[58]]);_0x938dx1b[_0x4180[61]]= _[_0x4180[60]](_0x938dx29[_0x4180[54]],qs[_0x4180[62]](_0x938dx28[_0x4180[58]][_0x4180[62]]));_0x938dx1b[_0x4180[61]]= (_0x938dx1b[_0x4180[61]][_0x4180[63]])?_0x938dx1b[_0x4180[61]]:_0x938dx29[_0x4180[54]];_0x938dx1b= _[_0x4180[73]]({},_0x938dx1b,_0x938dx28[_0x4180[74]]);return db[_0x4180[56]][_0x4180[80]](_0x938dx1b)[_0x4180[45]](handleEntityNotFound(_0x938dx15,null,_0x4180[77]))[_0x4180[45]](respondWithResult(_0x938dx15,null,_0x4180[77]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[77]))};exports[_0x4180[81]]= function(_0x938dx28,_0x938dx15){return db[_0x4180[56]][_0x4180[81]](_0x938dx28[_0x4180[82]],{})[_0x4180[45]](respondWithResult(_0x938dx15,201,_0x4180[81]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[81]))};exports[_0x4180[46]]= function(_0x938dx28,_0x938dx15){if(_0x938dx28[_0x4180[82]][_0x4180[78]]){delete _0x938dx28[_0x4180[82]][_0x4180[78]]};return db[_0x4180[56]][_0x4180[80]]({where:{id:_0x938dx28[_0x4180[79]][_0x4180[78]]}})[_0x4180[45]](handleEntityNotFound(_0x938dx15,null,_0x4180[46]))[_0x4180[45]](saveUpdates(_0x938dx28[_0x4180[82]],null,_0x4180[46]))[_0x4180[45]](respondWithResult(_0x938dx15,null,_0x4180[46]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[46]))};exports[_0x4180[48]]= function(_0x938dx28,_0x938dx15){return db[_0x4180[56]][_0x4180[80]]({where:{id:_0x938dx28[_0x4180[79]][_0x4180[78]]}})[_0x4180[45]](handleEntityNotFound(_0x938dx15,null,_0x4180[48]))[_0x4180[45]](removeEntity(_0x938dx15,null,_0x4180[48]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[48]))};exports[_0x4180[83]]= function(_0x938dx28,_0x938dx15){return db[_0x4180[56]][_0x4180[83]]()[_0x4180[45]](respondWithResult(_0x938dx15,null,_0x4180[83]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[83]))};exports[_0x4180[84]]= function(_0x938dx28,_0x938dx15,_0x938dx2c){return db[_0x4180[87]][_0x4180[80]]({where:{id:_0x938dx28[_0x4180[79]][_0x4180[78]]}})[_0x4180[45]](handleEntityNotFound(_0x938dx15,null,_0x4180[84]))[_0x4180[45]](function(_0x938dx18){if(_0x938dx18){return _0x938dx18[_0x4180[84]](_0x938dx28[_0x4180[82]][_0x4180[85]],_[_0x4180[86]](_0x938dx28[_0x4180[82]],[_0x4180[85],_0x4180[78]])|| {})};return null})[_0x4180[45]](respondWithResult(_0x938dx15,null,_0x4180[84]))[_0x4180[75]](handleError(_0x938dx15,null,_0x4180[84]))};exports[_0x4180[88]]= function(_0x938dx28,_0x938dx18,_0x938dx2c){var _0x938dx1b={};var _0x938dx29={};var _0x938dx2d;var _0x938dx1c;return db[_0x4180[56]][_0x4180[89]]({where:{id:_0x938dx28[_0x4180[79]][_0x4180[78]]}})[_0x4180[45]](handleEntityNotFound(_0x938dx18,null,_0x4180[88]))[_0x4180[45]](function(_0x938dx18){if(_0x938dx18){_0x938dx2d= _0x938dx18;_0x938dx29[_0x4180[54]]= _[_0x4180[57]](db[_0x4180[87]][_0x4180[55]]);_0x938dx29[_0x4180[58]]= _[_0x4180[57]](_0x938dx28[_0x4180[58]]);_0x938dx29[_0x4180[59]]= _[_0x4180[60]](_0x938dx29[_0x4180[54]],_0x938dx29[_0x4180[58]]);_0x938dx1b[_0x4180[61]]= _[_0x4180[60]](_0x938dx29[_0x4180[54]],qs[_0x4180[62]](_0x938dx28[_0x4180[58]][_0x4180[62]]));_0x938dx1b[_0x4180[61]]= (_0x938dx1b[_0x4180[61]][_0x4180[63]])?_0x938dx1b[_0x4180[61]]:_0x938dx29[_0x4180[54]];_0x938dx1b[_0x4180[66]]= qs[_0x4180[67]](_0x938dx28[_0x4180[58]][_0x4180[67]]);_0x938dx1b[_0x4180[68]]= qs[_0x4180[59]](_[_0x4180[69]](_0x938dx28[_0x4180[58]],_0x938dx29[_0x4180[59]]));if(_0x938dx28[_0x4180[58]][_0x4180[70]]){_0x938dx1b[_0x4180[68]]= _[_0x4180[73]](_0x938dx1b[_0x4180[68]],{$or:_[_0x4180[72]](_0x938dx1b[_0x4180[61]],function(_0x938dx2a){var _0x938dx2b={};_0x938dx2b[_0x938dx2a]= {$like:_0x4180[71]+ _0x938dx28[_0x4180[58]][_0x4180[70]]+ _0x4180[71]};return _0x938dx2b})})};_0x938dx1b= _[_0x4180[73]]({},_0x938dx1b,_0x938dx28[_0x4180[74]]);return _0x938dx2d[_0x4180[88]](_0x938dx1b)}})[_0x4180[45]](function(_0x938dx2f){if(_0x938dx2f){_0x938dx1c= _0x938dx2f[_0x4180[63]];if(!_0x938dx28[_0x4180[58]][_0x4180[65]](_0x4180[64])){_0x938dx1b[_0x4180[35]]= qs[_0x4180[35]](_0x938dx28[_0x4180[58]][_0x4180[35]]);_0x938dx1b[_0x4180[34]]= qs[_0x4180[34]](_0x938dx28[_0x4180[58]][_0x4180[34]])};return _0x938dx2d[_0x4180[88]](_0x938dx1b)}})[_0x4180[45]](function(_0x938dx2e){return _0x938dx2e?{count:_0x938dx1c,rows:_0x938dx2e}:null})[_0x4180[45]](respondWithResult(_0x938dx18,null,_0x4180[88]))[_0x4180[75]](handleError(_0x938dx18,null,_0x4180[88]))}
\ No newline at end of file
+var _0x445c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x445c[0];var jsonpatch=require(_0x445c[1]);var rp=require(_0x445c[2]);var moment=require(_0x445c[3]);var BPromise=require(_0x445c[4]);var util=require(_0x445c[5]);var path=require(_0x445c[6]);var sox=require(_0x445c[7]);var ejs=require(_0x445c[8]);var fs=require(_0x445c[9]);var _=require(_0x445c[10]);var squel=require(_0x445c[11]);var crypto=require(_0x445c[12]);var jsforce=require(_0x445c[13]);var toCsv=require(_0x445c[14]);var qs=require(_0x445c[15]);var logger=require(_0x445c[17])(_0x445c[16]);var utils=require(_0x445c[18]);var config=require(_0x445c[19]);var db=require(_0x445c[21])[_0x445c[20]];function respondWithStatusCode(_0xeef8x15,_0xeef8x16,_0xeef8x17){_0xeef8x16= _0xeef8x16|| 204;return function(_0xeef8x18){if(_0xeef8x18){logger[_0x445c[24]](_0x445c[22],_0xeef8x17,_0xeef8x16,_0x445c[23]);logger[_0x445c[26]](_0x445c[25],_0xeef8x17,_0xeef8x16,_0x445c[23]);return _0xeef8x15[_0x445c[27]](_0xeef8x16)};return _0xeef8x15[_0x445c[29]](304)[_0x445c[28]]()}}function respondWithResult(_0xeef8x15,_0xeef8x16,_0xeef8x17){_0xeef8x16= _0xeef8x16|| 200;return function(_0xeef8x18){if(_0xeef8x18){logger[_0x445c[24]](_0x445c[22],_0xeef8x17,_0xeef8x16,_0x445c[30]);logger[_0x445c[26]](_0x445c[25],_0xeef8x17,_0xeef8x16,_0x445c[30],JSON[_0x445c[31]](_0xeef8x18));return _0xeef8x15[_0x445c[29]](_0xeef8x16)[_0x445c[32]](_0xeef8x18)};return _0xeef8x15[_0x445c[29]](304)[_0x445c[28]]()}}function respondWithFilteredResult(_0xeef8x15,_0xeef8x1b,_0xeef8x17){return function(_0xeef8x18){if(_0xeef8x18){var _0xeef8x1c=_0xeef8x18[_0x445c[33]],_0xeef8x1d=_0xeef8x1b[_0x445c[34]],_0xeef8x1e=_0xeef8x1b[_0x445c[34]]+ _0xeef8x1b[_0x445c[35]],_0xeef8x16;if(_0xeef8x1e>= _0xeef8x1c){_0xeef8x1e= _0xeef8x1c;_0xeef8x16= 200}else {_0xeef8x16= 206};_0xeef8x15[_0x445c[29]](_0xeef8x16);logger[_0x445c[24]](_0x445c[22],_0xeef8x17,_0xeef8x16,_0x445c[36]);logger[_0x445c[26]](_0x445c[25],_0xeef8x17,_0xeef8x16,_0x445c[30],JSON[_0x445c[31]](_0xeef8x18));return _0xeef8x15[_0x445c[40]](_0x445c[37],_0xeef8x1d+ _0x445c[38]+ _0xeef8x1e+ _0x445c[39]+ _0xeef8x1c)[_0x445c[32]](_0xeef8x18)};return null}}function patchUpdates(_0xeef8x20){return function(_0xeef8x18){try{jsonpatch[_0x445c[41]](_0xeef8x18,_0xeef8x20,true)}catch(err){return BPromise[_0x445c[42]](err)};return _0xeef8x18[_0x445c[43]]()}}function saveUpdates(_0xeef8x22,_0xeef8x16,_0xeef8x17){return function(_0xeef8x18){if(_0xeef8x18){return _0xeef8x18[_0x445c[46]](_0xeef8x22)[_0x445c[45]](function(_0xeef8x23){logger[_0x445c[24]](_0x445c[22],_0xeef8x17,_0xeef8x16,_0x445c[44]);logger[_0x445c[26]](_0x445c[25],_0xeef8x17,_0xeef8x16,_0x445c[44],JSON[_0x445c[31]](_0xeef8x18));return _0xeef8x23})};return null}}function removeEntity(_0xeef8x15,_0xeef8x16,_0xeef8x17){return function(_0xeef8x18){if(_0xeef8x18){return _0xeef8x18[_0x445c[48]]()[_0x445c[45]](function(){logger[_0x445c[24]](_0x445c[22],_0xeef8x17,_0xeef8x16,_0x445c[47]);logger[_0x445c[26]](_0x445c[25],_0xeef8x17,_0xeef8x16,_0x445c[47],JSON[_0x445c[31]](_0xeef8x18));_0xeef8x15[_0x445c[29]](204)[_0x445c[28]]()})}}}function handleEntityNotFound(_0xeef8x15,_0xeef8x16,_0xeef8x17){return function(_0xeef8x18){if(!_0xeef8x18){logger[_0x445c[50]](_0x445c[22],_0xeef8x17,404,_0x445c[49]);_0xeef8x15[_0x445c[29]](404)[_0x445c[28]]();return null};return _0xeef8x18}}function handleError(_0xeef8x15,_0xeef8x16,_0xeef8x17){_0xeef8x16= _0xeef8x16|| 500;return function(_0xeef8x27){logger[_0x445c[50]](_0x445c[22],_0xeef8x17,_0xeef8x16,JSON[_0x445c[31]](_0xeef8x27));delete _0xeef8x27[_0x445c[51]];_0xeef8x15[_0x445c[29]](_0xeef8x16)[_0x445c[52]](_0xeef8x27)}}exports[_0x445c[53]]= function(_0xeef8x28,_0xeef8x15){var _0xeef8x1b={},_0xeef8x29={};_0xeef8x29[_0x445c[54]]= _[_0x445c[57]](db[_0x445c[56]][_0x445c[55]]);_0xeef8x29[_0x445c[58]]= _[_0x445c[57]](_0xeef8x28[_0x445c[58]]);_0xeef8x29[_0x445c[59]]= _[_0x445c[60]](_0xeef8x29[_0x445c[54]],_0xeef8x29[_0x445c[58]]);_0xeef8x1b[_0x445c[61]]= _[_0x445c[60]](_0xeef8x29[_0x445c[54]],qs[_0x445c[62]](_0xeef8x28[_0x445c[58]][_0x445c[62]]));_0xeef8x1b[_0x445c[61]]= (_0xeef8x1b[_0x445c[61]][_0x445c[63]])?_0xeef8x1b[_0x445c[61]]:_0xeef8x29[_0x445c[54]];if(!_0xeef8x28[_0x445c[58]][_0x445c[65]](_0x445c[64])){_0xeef8x1b[_0x445c[35]]= qs[_0x445c[35]](_0xeef8x28[_0x445c[58]][_0x445c[35]]);_0xeef8x1b[_0x445c[34]]= qs[_0x445c[34]](_0xeef8x28[_0x445c[58]][_0x445c[34]])};_0xeef8x1b[_0x445c[66]]= qs[_0x445c[67]](_0xeef8x28[_0x445c[58]][_0x445c[67]]);_0xeef8x1b[_0x445c[68]]= qs[_0x445c[59]](_[_0x445c[69]](_0xeef8x28[_0x445c[58]],_0xeef8x29[_0x445c[59]]));if(_0xeef8x28[_0x445c[58]][_0x445c[70]]){_0xeef8x1b[_0x445c[68]]= _[_0x445c[73]](_0xeef8x1b[_0x445c[68]],{$or:_[_0x445c[72]](_0xeef8x1b[_0x445c[61]],function(_0xeef8x2a){var _0xeef8x2b={};_0xeef8x2b[_0xeef8x2a]= {$like:_0x445c[71]+ _0xeef8x28[_0x445c[58]][_0x445c[70]]+ _0x445c[71]};return _0xeef8x2b})})};_0xeef8x1b= _[_0x445c[73]]({},_0xeef8x1b,_0xeef8x28[_0x445c[74]]);return db[_0x445c[56]][_0x445c[76]](_0xeef8x1b)[_0x445c[45]](respondWithFilteredResult(_0xeef8x15,_0xeef8x1b,_0x445c[53]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[53]))};exports[_0x445c[77]]= function(_0xeef8x28,_0xeef8x15){var _0xeef8x1b={raw:false,where:{id:_0xeef8x28[_0x445c[79]][_0x445c[78]]}},_0xeef8x29={};_0xeef8x29[_0x445c[54]]= _[_0x445c[57]](db[_0x445c[56]][_0x445c[55]]);_0xeef8x29[_0x445c[58]]= _[_0x445c[57]](_0xeef8x28[_0x445c[58]]);_0xeef8x29[_0x445c[59]]= _[_0x445c[60]](_0xeef8x29[_0x445c[54]],_0xeef8x29[_0x445c[58]]);_0xeef8x1b[_0x445c[61]]= _[_0x445c[60]](_0xeef8x29[_0x445c[54]],qs[_0x445c[62]](_0xeef8x28[_0x445c[58]][_0x445c[62]]));_0xeef8x1b[_0x445c[61]]= (_0xeef8x1b[_0x445c[61]][_0x445c[63]])?_0xeef8x1b[_0x445c[61]]:_0xeef8x29[_0x445c[54]];_0xeef8x1b= _[_0x445c[73]]({},_0xeef8x1b,_0xeef8x28[_0x445c[74]]);return db[_0x445c[56]][_0x445c[80]](_0xeef8x1b)[_0x445c[45]](handleEntityNotFound(_0xeef8x15,null,_0x445c[77]))[_0x445c[45]](respondWithResult(_0xeef8x15,null,_0x445c[77]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[77]))};exports[_0x445c[81]]= function(_0xeef8x28,_0xeef8x15){return db[_0x445c[56]][_0x445c[81]](_0xeef8x28[_0x445c[82]],{})[_0x445c[45]](respondWithResult(_0xeef8x15,201,_0x445c[81]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[81]))};exports[_0x445c[46]]= function(_0xeef8x28,_0xeef8x15){if(_0xeef8x28[_0x445c[82]][_0x445c[78]]){delete _0xeef8x28[_0x445c[82]][_0x445c[78]]};return db[_0x445c[56]][_0x445c[80]]({where:{id:_0xeef8x28[_0x445c[79]][_0x445c[78]]}})[_0x445c[45]](handleEntityNotFound(_0xeef8x15,null,_0x445c[46]))[_0x445c[45]](saveUpdates(_0xeef8x28[_0x445c[82]],null,_0x445c[46]))[_0x445c[45]](respondWithResult(_0xeef8x15,null,_0x445c[46]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[46]))};exports[_0x445c[48]]= function(_0xeef8x28,_0xeef8x15){return db[_0x445c[56]][_0x445c[80]]({where:{id:_0xeef8x28[_0x445c[79]][_0x445c[78]]}})[_0x445c[45]](handleEntityNotFound(_0xeef8x15,null,_0x445c[48]))[_0x445c[45]](removeEntity(_0xeef8x15,null,_0x445c[48]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[48]))};exports[_0x445c[83]]= function(_0xeef8x28,_0xeef8x15){return db[_0x445c[56]][_0x445c[83]]()[_0x445c[45]](respondWithResult(_0xeef8x15,null,_0x445c[83]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[83]))};exports[_0x445c[84]]= function(_0xeef8x28,_0xeef8x15,_0xeef8x2c){return db[_0x445c[87]][_0x445c[80]]({where:{id:_0xeef8x28[_0x445c[79]][_0x445c[78]]}})[_0x445c[45]](handleEntityNotFound(_0xeef8x15,null,_0x445c[84]))[_0x445c[45]](function(_0xeef8x18){if(_0xeef8x18){return _0xeef8x18[_0x445c[84]](_0xeef8x28[_0x445c[82]][_0x445c[85]],_[_0x445c[86]](_0xeef8x28[_0x445c[82]],[_0x445c[85],_0x445c[78]])|| {})};return null})[_0x445c[45]](respondWithResult(_0xeef8x15,null,_0x445c[84]))[_0x445c[75]](handleError(_0xeef8x15,null,_0x445c[84]))};exports[_0x445c[88]]= function(_0xeef8x28,_0xeef8x18,_0xeef8x2c){var _0xeef8x1b={};var _0xeef8x29={};var _0xeef8x2d;var _0xeef8x1c;return db[_0x445c[56]][_0x445c[89]]({where:{id:_0xeef8x28[_0x445c[79]][_0x445c[78]]}})[_0x445c[45]](handleEntityNotFound(_0xeef8x18,null,_0x445c[88]))[_0x445c[45]](function(_0xeef8x18){if(_0xeef8x18){_0xeef8x2d= _0xeef8x18;_0xeef8x29[_0x445c[54]]= _[_0x445c[57]](db[_0x445c[87]][_0x445c[55]]);_0xeef8x29[_0x445c[58]]= _[_0x445c[57]](_0xeef8x28[_0x445c[58]]);_0xeef8x29[_0x445c[59]]= _[_0x445c[60]](_0xeef8x29[_0x445c[54]],_0xeef8x29[_0x445c[58]]);_0xeef8x1b[_0x445c[61]]= _[_0x445c[60]](_0xeef8x29[_0x445c[54]],qs[_0x445c[62]](_0xeef8x28[_0x445c[58]][_0x445c[62]]));_0xeef8x1b[_0x445c[61]]= (_0xeef8x1b[_0x445c[61]][_0x445c[63]])?_0xeef8x1b[_0x445c[61]]:_0xeef8x29[_0x445c[54]];_0xeef8x1b[_0x445c[66]]= qs[_0x445c[67]](_0xeef8x28[_0x445c[58]][_0x445c[67]]);_0xeef8x1b[_0x445c[68]]= qs[_0x445c[59]](_[_0x445c[69]](_0xeef8x28[_0x445c[58]],_0xeef8x29[_0x445c[59]]));if(_0xeef8x28[_0x445c[58]][_0x445c[70]]){_0xeef8x1b[_0x445c[68]]= _[_0x445c[73]](_0xeef8x1b[_0x445c[68]],{$or:_[_0x445c[72]](_0xeef8x1b[_0x445c[61]],function(_0xeef8x2a){var _0xeef8x2b={};_0xeef8x2b[_0xeef8x2a]= {$like:_0x445c[71]+ _0xeef8x28[_0x445c[58]][_0x445c[70]]+ _0x445c[71]};return _0xeef8x2b})})};_0xeef8x1b= _[_0x445c[73]]({},_0xeef8x1b,_0xeef8x28[_0x445c[74]]);return _0xeef8x2d[_0x445c[88]](_0xeef8x1b)}})[_0x445c[45]](function(_0xeef8x2f){if(_0xeef8x2f){_0xeef8x1c= _0xeef8x2f[_0x445c[63]];if(!_0xeef8x28[_0x445c[58]][_0x445c[65]](_0x445c[64])){_0xeef8x1b[_0x445c[35]]= qs[_0x445c[35]](_0xeef8x28[_0x445c[58]][_0x445c[35]]);_0xeef8x1b[_0x445c[34]]= qs[_0x445c[34]](_0xeef8x28[_0x445c[58]][_0x445c[34]])};return _0xeef8x2d[_0x445c[88]](_0xeef8x1b)}})[_0x445c[45]](function(_0xeef8x2e){return _0xeef8x2e?{count:_0xeef8x1c,rows:_0xeef8x2e}:null})[_0x445c[45]](respondWithResult(_0xeef8x18,null,_0x445c[88]))[_0x445c[75]](handleError(_0xeef8x18,null,_0x445c[88]))}
\ No newline at end of file
index c473511..c93b3c2 100644 (file)
@@ -1 +1 @@
-var _0xb88e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0xb88e[0];var _=require(_0xb88e[1]);var util=require(_0xb88e[2]);var logger=require(_0xb88e[4])(_0xb88e[3]);var attributes=require(_0xb88e[5]);module[_0xb88e[6]]= function(_0x4d65x5,_0x4d65x6){return _0x4d65x5[_0xb88e[9]](_0xb88e[7],attributes,{tableName:_0xb88e[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x1d57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x1d57[0];var _=require(_0x1d57[1]);var util=require(_0x1d57[2]);var logger=require(_0x1d57[4])(_0x1d57[3]);var attributes=require(_0x1d57[5]);module[_0x1d57[6]]= function(_0x1597x5,_0x1597x6){return _0x1597x5[_0x1d57[9]](_0x1d57[7],attributes,{tableName:_0x1d57[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
index b6880e2..ff26f07 100644 (file)
@@ -1 +1 @@
-var _0x4be3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4be3[0];var _=require(_0x4be3[1]);var util=require(_0x4be3[2]);var moment=require(_0x4be3[3]);var BPromise=require(_0x4be3[4]);var db=require(_0x4be3[6])[_0x4be3[5]];var utils=require(_0x4be3[7]);var logger=require(_0x4be3[9])(_0x4be3[8]);var jayson=require(_0x4be3[10]);var client=jayson[_0x4be3[12]][_0x4be3[11]]({port:9002});function respondWithRpcPromise(_0x247exb,_0x247exc,_0x247exd){return  new BPromise(function(_0x247exe,_0x247exf){return client[_0x4be3[25]](_0x247exb,_0x247exd)[_0x4be3[24]](function(_0x247ex11){logger[_0x4be3[17]](_0x4be3[13],_0x247exc,_0x4be3[16]);logger[_0x4be3[20]](_0x4be3[18],_0x247exc,_0x4be3[16],JSON[_0x4be3[19]](_0x247ex11));if(_0x247ex11[_0x4be3[14]]){if(_0x247ex11[_0x4be3[14]][_0x4be3[21]]=== 500){logger[_0x4be3[14]](_0x4be3[13],_0x247exc,_0x247ex11[_0x4be3[14]][_0x4be3[22]]);return _0x247exf(_0x247ex11[_0x4be3[14]][_0x4be3[22]])};logger[_0x4be3[14]](_0x4be3[13],_0x247exc,_0x247ex11[_0x4be3[14]][_0x4be3[22]]);return _0x247exe(_0x247ex11[_0x4be3[14]][_0x4be3[22]])}else {logger[_0x4be3[17]](_0x4be3[13],_0x247exc,_0x4be3[16]);_0x247exe(_0x247ex11[_0x4be3[23]][_0x4be3[22]])}})[_0x4be3[15]](function(_0x247ex10){logger[_0x4be3[14]](_0x4be3[13],_0x247exc,_0x247ex10);_0x247exf(_0x247ex10)})})}
\ No newline at end of file
+var _0xca66=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xca66[0];var _=require(_0xca66[1]);var util=require(_0xca66[2]);var moment=require(_0xca66[3]);var BPromise=require(_0xca66[4]);var db=require(_0xca66[6])[_0xca66[5]];var utils=require(_0xca66[7]);var logger=require(_0xca66[9])(_0xca66[8]);var jayson=require(_0xca66[10]);var client=jayson[_0xca66[12]][_0xca66[11]]({port:9002});function respondWithRpcPromise(_0x555fxb,_0x555fxc,_0x555fxd){return  new BPromise(function(_0x555fxe,_0x555fxf){return client[_0xca66[25]](_0x555fxb,_0x555fxd)[_0xca66[24]](function(_0x555fx11){logger[_0xca66[17]](_0xca66[13],_0x555fxc,_0xca66[16]);logger[_0xca66[20]](_0xca66[18],_0x555fxc,_0xca66[16],JSON[_0xca66[19]](_0x555fx11));if(_0x555fx11[_0xca66[14]]){if(_0x555fx11[_0xca66[14]][_0xca66[21]]=== 500){logger[_0xca66[14]](_0xca66[13],_0x555fxc,_0x555fx11[_0xca66[14]][_0xca66[22]]);return _0x555fxf(_0x555fx11[_0xca66[14]][_0xca66[22]])};logger[_0xca66[14]](_0xca66[13],_0x555fxc,_0x555fx11[_0xca66[14]][_0xca66[22]]);return _0x555fxe(_0x555fx11[_0xca66[14]][_0xca66[22]])}else {logger[_0xca66[17]](_0xca66[13],_0x555fxc,_0xca66[16]);_0x555fxe(_0x555fx11[_0xca66[23]][_0xca66[22]])}})[_0xca66[15]](function(_0x555fx10){logger[_0xca66[14]](_0xca66[13],_0x555fxc,_0x555fx10);_0x555fxf(_0x555fx10)})})}
\ No newline at end of file
index e849176..832ecc1 100644 (file)
@@ -1 +1 @@
-var _0x64ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x64ce[0];var multer=require(_0x64ce[1]);var util=require(_0x64ce[2]);var path=require(_0x64ce[3]);var express=require(_0x64ce[4]);var router=express.Router();var auth=require(_0x64ce[5]);var config=require(_0x64ce[6]);var controller=require(_0x64ce[7]);router[_0x64ce[11]](_0x64ce[8],auth[_0x64ce[9]](),controller[_0x64ce[10]]);router[_0x64ce[11]](_0x64ce[12],auth[_0x64ce[9]](),controller[_0x64ce[13]]);router[_0x64ce[11]](_0x64ce[14],auth[_0x64ce[9]](),controller[_0x64ce[15]]);router[_0x64ce[17]](_0x64ce[8],auth[_0x64ce[9]](),controller[_0x64ce[16]]);router[_0x64ce[19]](_0x64ce[14],auth[_0x64ce[9]](),controller[_0x64ce[18]]);router[_0x64ce[21]](_0x64ce[14],auth[_0x64ce[9]](),controller[_0x64ce[20]]);module[_0x64ce[22]]= router
\ No newline at end of file
+var _0x65f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x65f9[0];var multer=require(_0x65f9[1]);var util=require(_0x65f9[2]);var path=require(_0x65f9[3]);var express=require(_0x65f9[4]);var router=express.Router();var auth=require(_0x65f9[5]);var config=require(_0x65f9[6]);var controller=require(_0x65f9[7]);router[_0x65f9[11]](_0x65f9[8],auth[_0x65f9[9]](),controller[_0x65f9[10]]);router[_0x65f9[11]](_0x65f9[12],auth[_0x65f9[9]](),controller[_0x65f9[13]]);router[_0x65f9[11]](_0x65f9[14],auth[_0x65f9[9]](),controller[_0x65f9[15]]);router[_0x65f9[17]](_0x65f9[8],auth[_0x65f9[9]](),controller[_0x65f9[16]]);router[_0x65f9[19]](_0x65f9[14],auth[_0x65f9[9]](),controller[_0x65f9[18]]);router[_0x65f9[21]](_0x65f9[14],auth[_0x65f9[9]](),controller[_0x65f9[20]]);module[_0x65f9[22]]= router
\ No newline at end of file
index 0518546..1536bb5 100644 (file)
@@ -1 +1 @@
-var _0x8ec5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x74\x6F","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x63\x63","\x62\x63\x63","\x49\x4E\x54\x45\x47\x45\x52","\x6C\x6F\x6E\x67","\x74\x65\x78\x74","\x68\x74\x6D\x6C","\x42\x4F\x4F\x4C\x45\x41\x4E","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45"];_0x8ec5[0];var Sequelize=require(_0x8ec5[1]);var _=require(_0x8ec5[2]);module[_0x8ec5[3]]= {messageId:{type:Sequelize[_0x8ec5[4]]},inReplyTo:{type:Sequelize[_0x8ec5[4]]},subject:{type:Sequelize[_0x8ec5[4]]},from:{type:Sequelize[_0x8ec5[4]]},to:{type:Sequelize[_0x8ec5[5]],get:function(){return this[_0x8ec5[7]](_0x8ec5[6])?this[_0x8ec5[7]](_0x8ec5[6])[_0x8ec5[9]](_0x8ec5[8]):[]},set:function(_0xb8a0x3){this[_0x8ec5[11]](_0x8ec5[6],_0xb8a0x3[_0x8ec5[10]](_0x8ec5[8]))}},cc:{type:Sequelize[_0x8ec5[5]],get:function(){return this[_0x8ec5[7]](_0x8ec5[12])?this[_0x8ec5[7]](_0x8ec5[12])[_0x8ec5[9]](_0x8ec5[8]):[]},set:function(_0xb8a0x3){this[_0x8ec5[11]](_0x8ec5[12],_0xb8a0x3[_0x8ec5[10]](_0x8ec5[8]))}},bcc:{type:Sequelize[_0x8ec5[5]],get:function(){return this[_0x8ec5[7]](_0x8ec5[13])?this[_0x8ec5[7]](_0x8ec5[13])[_0x8ec5[9]](_0x8ec5[8]):[]},set:function(_0xb8a0x3){this[_0x8ec5[11]](_0x8ec5[13],_0xb8a0x3[_0x8ec5[10]](_0x8ec5[8]))}},fromId:{type:Sequelize[_0x8ec5[14]]},attachment:{type:Sequelize[_0x8ec5[5]]},text:{type:Sequelize.BLOB(_0x8ec5[15]),get:function(){if(this[_0x8ec5[7]](_0x8ec5[16])){return _.toString(this[_0x8ec5[7]](_0x8ec5[16]))}}},html:{type:Sequelize.BLOB(_0x8ec5[15]),get:function(){if(this[_0x8ec5[7]](_0x8ec5[17])){if(this[_0x8ec5[7]](_0x8ec5[17])){return _.toString(this[_0x8ec5[7]](_0x8ec5[17]))}}}},reason:{type:Sequelize[_0x8ec5[5]]},auto:{type:Sequelize[_0x8ec5[18]],defaultValue:false},status:{type:Sequelize.ENUM(_0x8ec5[19],_0x8ec5[20],_0x8ec5[21],_0x8ec5[22],_0x8ec5[23]),defaultValue:_0x8ec5[19]},retry:{type:Sequelize[_0x8ec5[14]],defaultValue:0},voiceSource:{type:Sequelize[_0x8ec5[4]]},userName:{type:Sequelize[_0x8ec5[4]]},userFullname:{type:Sequelize[_0x8ec5[4]]},accountId:{type:Sequelize[_0x8ec5[14]]},accountName:{type:Sequelize[_0x8ec5[4]]}}
\ No newline at end of file
+var _0xae50=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x74\x6F","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x63\x63","\x62\x63\x63","\x49\x4E\x54\x45\x47\x45\x52","\x6C\x6F\x6E\x67","\x74\x65\x78\x74","\x68\x74\x6D\x6C","\x42\x4F\x4F\x4C\x45\x41\x4E","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45"];_0xae50[0];var Sequelize=require(_0xae50[1]);var _=require(_0xae50[2]);module[_0xae50[3]]= {messageId:{type:Sequelize[_0xae50[4]]},inReplyTo:{type:Sequelize[_0xae50[4]]},subject:{type:Sequelize[_0xae50[4]]},from:{type:Sequelize[_0xae50[4]]},to:{type:Sequelize[_0xae50[5]],get:function(){return this[_0xae50[7]](_0xae50[6])?this[_0xae50[7]](_0xae50[6])[_0xae50[9]](_0xae50[8]):[]},set:function(_0x6910x3){this[_0xae50[11]](_0xae50[6],_0x6910x3[_0xae50[10]](_0xae50[8]))}},cc:{type:Sequelize[_0xae50[5]],get:function(){return this[_0xae50[7]](_0xae50[12])?this[_0xae50[7]](_0xae50[12])[_0xae50[9]](_0xae50[8]):[]},set:function(_0x6910x3){this[_0xae50[11]](_0xae50[12],_0x6910x3[_0xae50[10]](_0xae50[8]))}},bcc:{type:Sequelize[_0xae50[5]],get:function(){return this[_0xae50[7]](_0xae50[13])?this[_0xae50[7]](_0xae50[13])[_0xae50[9]](_0xae50[8]):[]},set:function(_0x6910x3){this[_0xae50[11]](_0xae50[13],_0x6910x3[_0xae50[10]](_0xae50[8]))}},fromId:{type:Sequelize[_0xae50[14]]},attachment:{type:Sequelize[_0xae50[5]]},text:{type:Sequelize.BLOB(_0xae50[15]),get:function(){if(this[_0xae50[7]](_0xae50[16])){return _.toString(this[_0xae50[7]](_0xae50[16]))}}},html:{type:Sequelize.BLOB(_0xae50[15]),get:function(){if(this[_0xae50[7]](_0xae50[17])){if(this[_0xae50[7]](_0xae50[17])){return _.toString(this[_0xae50[7]](_0xae50[17]))}}}},reason:{type:Sequelize[_0xae50[5]]},auto:{type:Sequelize[_0xae50[18]],defaultValue:false},status:{type:Sequelize.ENUM(_0xae50[19],_0xae50[20],_0xae50[21],_0xae50[22],_0xae50[23]),defaultValue:_0xae50[19]},retry:{type:Sequelize[_0xae50[14]],defaultValue:0},voiceSource:{type:Sequelize[_0xae50[4]]},userName:{type:Sequelize[_0xae50[4]]},userFullname:{type:Sequelize[_0xae50[4]]},accountId:{type:Sequelize[_0xae50[14]]},accountName:{type:Sequelize[_0xae50[4]]}}
\ No newline at end of file
index 9213920..149b9a3 100644 (file)
@@ -1 +1 @@
-var _0x236d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x236d[0];var jsonpatch=require(_0x236d[1]);var rp=require(_0x236d[2]);var moment=require(_0x236d[3]);var BPromise=require(_0x236d[4]);var util=require(_0x236d[5]);var path=require(_0x236d[6]);var sox=require(_0x236d[7]);var ejs=require(_0x236d[8]);var fs=require(_0x236d[9]);var _=require(_0x236d[10]);var squel=require(_0x236d[11]);var crypto=require(_0x236d[12]);var jsforce=require(_0x236d[13]);var toCsv=require(_0x236d[14]);var qs=require(_0x236d[15]);var logger=require(_0x236d[17])(_0x236d[16]);var utils=require(_0x236d[18]);var config=require(_0x236d[19]);var db=require(_0x236d[21])[_0x236d[20]];function respondWithStatusCode(_0xef48x15,_0xef48x16,_0xef48x17){_0xef48x16= _0xef48x16|| 204;return function(_0xef48x18){if(_0xef48x18){logger[_0x236d[24]](_0x236d[22],_0xef48x17,_0xef48x16,_0x236d[23]);logger[_0x236d[26]](_0x236d[25],_0xef48x17,_0xef48x16,_0x236d[23]);return _0xef48x15[_0x236d[27]](_0xef48x16)};return _0xef48x15[_0x236d[29]](304)[_0x236d[28]]()}}function respondWithResult(_0xef48x15,_0xef48x16,_0xef48x17){_0xef48x16= _0xef48x16|| 200;return function(_0xef48x18){if(_0xef48x18){logger[_0x236d[24]](_0x236d[22],_0xef48x17,_0xef48x16,_0x236d[30]);logger[_0x236d[26]](_0x236d[25],_0xef48x17,_0xef48x16,_0x236d[30],JSON[_0x236d[31]](_0xef48x18));return _0xef48x15[_0x236d[29]](_0xef48x16)[_0x236d[32]](_0xef48x18)};return _0xef48x15[_0x236d[29]](304)[_0x236d[28]]()}}function respondWithFilteredResult(_0xef48x15,_0xef48x1b,_0xef48x17){return function(_0xef48x18){if(_0xef48x18){var _0xef48x1c=_0xef48x18[_0x236d[33]],_0xef48x1d=_0xef48x1b[_0x236d[34]],_0xef48x1e=_0xef48x1b[_0x236d[34]]+ _0xef48x1b[_0x236d[35]],_0xef48x16;if(_0xef48x1e>= _0xef48x1c){_0xef48x1e= _0xef48x1c;_0xef48x16= 200}else {_0xef48x16= 206};_0xef48x15[_0x236d[29]](_0xef48x16);logger[_0x236d[24]](_0x236d[22],_0xef48x17,_0xef48x16,_0x236d[36]);logger[_0x236d[26]](_0x236d[25],_0xef48x17,_0xef48x16,_0x236d[30],JSON[_0x236d[31]](_0xef48x18));return _0xef48x15[_0x236d[40]](_0x236d[37],_0xef48x1d+ _0x236d[38]+ _0xef48x1e+ _0x236d[39]+ _0xef48x1c)[_0x236d[32]](_0xef48x18)};return null}}function patchUpdates(_0xef48x20){return function(_0xef48x18){try{jsonpatch[_0x236d[41]](_0xef48x18,_0xef48x20,true)}catch(err){return BPromise[_0x236d[42]](err)};return _0xef48x18[_0x236d[43]]()}}function saveUpdates(_0xef48x22,_0xef48x16,_0xef48x17){return function(_0xef48x18){if(_0xef48x18){return _0xef48x18[_0x236d[46]](_0xef48x22)[_0x236d[45]](function(_0xef48x23){logger[_0x236d[24]](_0x236d[22],_0xef48x17,_0xef48x16,_0x236d[44]);logger[_0x236d[26]](_0x236d[25],_0xef48x17,_0xef48x16,_0x236d[44],JSON[_0x236d[31]](_0xef48x18));return _0xef48x23})};return null}}function removeEntity(_0xef48x15,_0xef48x16,_0xef48x17){return function(_0xef48x18){if(_0xef48x18){return _0xef48x18[_0x236d[48]]()[_0x236d[45]](function(){logger[_0x236d[24]](_0x236d[22],_0xef48x17,_0xef48x16,_0x236d[47]);logger[_0x236d[26]](_0x236d[25],_0xef48x17,_0xef48x16,_0x236d[47],JSON[_0x236d[31]](_0xef48x18));_0xef48x15[_0x236d[29]](204)[_0x236d[28]]()})}}}function handleEntityNotFound(_0xef48x15,_0xef48x16,_0xef48x17){return function(_0xef48x18){if(!_0xef48x18){logger[_0x236d[50]](_0x236d[22],_0xef48x17,404,_0x236d[49]);_0xef48x15[_0x236d[29]](404)[_0x236d[28]]();return null};return _0xef48x18}}function handleError(_0xef48x15,_0xef48x16,_0xef48x17){_0xef48x16= _0xef48x16|| 500;return function(_0xef48x27){logger[_0x236d[50]](_0x236d[22],_0xef48x17,_0xef48x16,JSON[_0x236d[31]](_0xef48x27));delete _0xef48x27[_0x236d[51]];_0xef48x15[_0x236d[29]](_0xef48x16)[_0x236d[52]](_0xef48x27)}}exports[_0x236d[53]]= function(_0xef48x28,_0xef48x15){var _0xef48x1b={raw:true},_0xef48x29={};_0xef48x29[_0x236d[54]]= _[_0x236d[57]](db[_0x236d[56]][_0x236d[55]]);_0xef48x29[_0x236d[58]]= _[_0x236d[57]](_0xef48x28[_0x236d[58]]);_0xef48x29[_0x236d[59]]= _[_0x236d[60]](_0xef48x29[_0x236d[54]],_0xef48x29[_0x236d[58]]);_0xef48x1b[_0x236d[61]]= _[_0x236d[60]](_0xef48x29[_0x236d[54]],qs[_0x236d[62]](_0xef48x28[_0x236d[58]][_0x236d[62]]));_0xef48x1b[_0x236d[61]]= (_0xef48x1b[_0x236d[61]][_0x236d[63]])?_0xef48x1b[_0x236d[61]]:_0xef48x29[_0x236d[54]];if(!_0xef48x28[_0x236d[58]][_0x236d[65]](_0x236d[64])){_0xef48x1b[_0x236d[35]]= qs[_0x236d[35]](_0xef48x28[_0x236d[58]][_0x236d[35]]);_0xef48x1b[_0x236d[34]]= qs[_0x236d[34]](_0xef48x28[_0x236d[58]][_0x236d[34]])};_0xef48x1b[_0x236d[66]]= qs[_0x236d[67]](_0xef48x28[_0x236d[58]][_0x236d[67]]);_0xef48x1b[_0x236d[68]]= qs[_0x236d[59]](_[_0x236d[69]](_0xef48x28[_0x236d[58]],_0xef48x29[_0x236d[59]]));if(_0xef48x28[_0x236d[58]][_0x236d[70]]){_0xef48x1b[_0x236d[68]]= _[_0x236d[73]](_0xef48x1b[_0x236d[68]],{$or:_[_0x236d[72]](_0xef48x1b[_0x236d[61]],function(_0xef48x2a){var _0xef48x2b={};_0xef48x2b[_0xef48x2a]= {$like:_0x236d[71]+ _0xef48x28[_0x236d[58]][_0x236d[70]]+ _0x236d[71]};return _0xef48x2b})})};_0xef48x1b= _[_0x236d[73]]({},_0xef48x1b,_0xef48x28[_0x236d[74]]);return db[_0x236d[56]][_0x236d[76]](_0xef48x1b)[_0x236d[45]](respondWithFilteredResult(_0xef48x15,_0xef48x1b,_0x236d[53]))[_0x236d[75]](handleError(_0xef48x15,null,_0x236d[53]))};exports[_0x236d[77]]= function(_0xef48x28,_0xef48x15){var _0xef48x1b={raw:true,where:{id:_0xef48x28[_0x236d[79]][_0x236d[78]]}},_0xef48x29={};_0xef48x29[_0x236d[54]]= _[_0x236d[57]](db[_0x236d[56]][_0x236d[55]]);_0xef48x29[_0x236d[58]]= _[_0x236d[57]](_0xef48x28[_0x236d[58]]);_0xef48x29[_0x236d[59]]= _[_0x236d[60]](_0xef48x29[_0x236d[54]],_0xef48x29[_0x236d[58]]);_0xef48x1b[_0x236d[61]]= _[_0x236d[60]](_0xef48x29[_0x236d[54]],qs[_0x236d[62]](_0xef48x28[_0x236d[58]][_0x236d[62]]));_0xef48x1b[_0x236d[61]]= (_0xef48x1b[_0x236d[61]][_0x236d[63]])?_0xef48x1b[_0x236d[61]]:_0xef48x29[_0x236d[54]];_0xef48x1b= _[_0x236d[73]]({},_0xef48x1b,_0xef48x28[_0x236d[74]]);return db[_0x236d[56]][_0x236d[80]](_0xef48x1b)[_0x236d[45]](handleEntityNotFound(_0xef48x15,null,_0x236d[77]))[_0x236d[45]](respondWithResult(_0xef48x15,null,_0x236d[77]))[_0x236d[75]](handleError(_0xef48x15,null,_0x236d[77]))};exports[_0x236d[81]]= function(_0xef48x28,_0xef48x15){return db[_0x236d[56]][_0x236d[81]](_0xef48x28[_0x236d[82]],{})[_0x236d[45]](respondWithResult(_0xef48x15,201,_0x236d[81]))[_0x236d[75]](handleError(_0xef48x15,null,_0x236d[81]))};exports[_0x236d[46]]= function(_0xef48x28,_0xef48x15){if(_0xef48x28[_0x236d[82]][_0x236d[78]]){delete _0xef48x28[_0x236d[82]][_0x236d[78]]};return db[_0x236d[56]][_0x236d[80]]({where:{id:_0xef48x28[_0x236d[79]][_0x236d[78]]}})[_0x236d[45]](handleEntityNotFound(_0xef48x15,null,_0x236d[46]))[_0x236d[45]](saveUpdates(_0xef48x28[_0x236d[82]],null,_0x236d[46]))[_0x236d[45]](respondWithResult(_0xef48x15,null,_0x236d[46]))[_0x236d[75]](handleError(_0xef48x15,null,_0x236d[46]))};exports[_0x236d[48]]= function(_0xef48x28,_0xef48x15){return db[_0x236d[56]][_0x236d[80]]({where:{id:_0xef48x28[_0x236d[79]][_0x236d[78]]}})[_0x236d[45]](handleEntityNotFound(_0xef48x15,null,_0x236d[48]))[_0x236d[45]](removeEntity(_0xef48x15,null,_0x236d[48]))[_0x236d[75]](handleError(_0xef48x15,null,_0x236d[48]))};exports[_0x236d[83]]= function(_0xef48x28,_0xef48x15){return db[_0x236d[56]][_0x236d[83]]()[_0x236d[45]](respondWithResult(_0xef48x15,null,_0x236d[83]))[_0x236d[75]](handleError(_0xef48x15,null,_0x236d[83]))}
\ No newline at end of file
+var _0x9147=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x9147[0];var jsonpatch=require(_0x9147[1]);var rp=require(_0x9147[2]);var moment=require(_0x9147[3]);var BPromise=require(_0x9147[4]);var util=require(_0x9147[5]);var path=require(_0x9147[6]);var sox=require(_0x9147[7]);var ejs=require(_0x9147[8]);var fs=require(_0x9147[9]);var _=require(_0x9147[10]);var squel=require(_0x9147[11]);var crypto=require(_0x9147[12]);var jsforce=require(_0x9147[13]);var toCsv=require(_0x9147[14]);var qs=require(_0x9147[15]);var logger=require(_0x9147[17])(_0x9147[16]);var utils=require(_0x9147[18]);var config=require(_0x9147[19]);var db=require(_0x9147[21])[_0x9147[20]];function respondWithStatusCode(_0xc892x15,_0xc892x16,_0xc892x17){_0xc892x16= _0xc892x16|| 204;return function(_0xc892x18){if(_0xc892x18){logger[_0x9147[24]](_0x9147[22],_0xc892x17,_0xc892x16,_0x9147[23]);logger[_0x9147[26]](_0x9147[25],_0xc892x17,_0xc892x16,_0x9147[23]);return _0xc892x15[_0x9147[27]](_0xc892x16)};return _0xc892x15[_0x9147[29]](304)[_0x9147[28]]()}}function respondWithResult(_0xc892x15,_0xc892x16,_0xc892x17){_0xc892x16= _0xc892x16|| 200;return function(_0xc892x18){if(_0xc892x18){logger[_0x9147[24]](_0x9147[22],_0xc892x17,_0xc892x16,_0x9147[30]);logger[_0x9147[26]](_0x9147[25],_0xc892x17,_0xc892x16,_0x9147[30],JSON[_0x9147[31]](_0xc892x18));return _0xc892x15[_0x9147[29]](_0xc892x16)[_0x9147[32]](_0xc892x18)};return _0xc892x15[_0x9147[29]](304)[_0x9147[28]]()}}function respondWithFilteredResult(_0xc892x15,_0xc892x1b,_0xc892x17){return function(_0xc892x18){if(_0xc892x18){var _0xc892x1c=_0xc892x18[_0x9147[33]],_0xc892x1d=_0xc892x1b[_0x9147[34]],_0xc892x1e=_0xc892x1b[_0x9147[34]]+ _0xc892x1b[_0x9147[35]],_0xc892x16;if(_0xc892x1e>= _0xc892x1c){_0xc892x1e= _0xc892x1c;_0xc892x16= 200}else {_0xc892x16= 206};_0xc892x15[_0x9147[29]](_0xc892x16);logger[_0x9147[24]](_0x9147[22],_0xc892x17,_0xc892x16,_0x9147[36]);logger[_0x9147[26]](_0x9147[25],_0xc892x17,_0xc892x16,_0x9147[30],JSON[_0x9147[31]](_0xc892x18));return _0xc892x15[_0x9147[40]](_0x9147[37],_0xc892x1d+ _0x9147[38]+ _0xc892x1e+ _0x9147[39]+ _0xc892x1c)[_0x9147[32]](_0xc892x18)};return null}}function patchUpdates(_0xc892x20){return function(_0xc892x18){try{jsonpatch[_0x9147[41]](_0xc892x18,_0xc892x20,true)}catch(err){return BPromise[_0x9147[42]](err)};return _0xc892x18[_0x9147[43]]()}}function saveUpdates(_0xc892x22,_0xc892x16,_0xc892x17){return function(_0xc892x18){if(_0xc892x18){return _0xc892x18[_0x9147[46]](_0xc892x22)[_0x9147[45]](function(_0xc892x23){logger[_0x9147[24]](_0x9147[22],_0xc892x17,_0xc892x16,_0x9147[44]);logger[_0x9147[26]](_0x9147[25],_0xc892x17,_0xc892x16,_0x9147[44],JSON[_0x9147[31]](_0xc892x18));return _0xc892x23})};return null}}function removeEntity(_0xc892x15,_0xc892x16,_0xc892x17){return function(_0xc892x18){if(_0xc892x18){return _0xc892x18[_0x9147[48]]()[_0x9147[45]](function(){logger[_0x9147[24]](_0x9147[22],_0xc892x17,_0xc892x16,_0x9147[47]);logger[_0x9147[26]](_0x9147[25],_0xc892x17,_0xc892x16,_0x9147[47],JSON[_0x9147[31]](_0xc892x18));_0xc892x15[_0x9147[29]](204)[_0x9147[28]]()})}}}function handleEntityNotFound(_0xc892x15,_0xc892x16,_0xc892x17){return function(_0xc892x18){if(!_0xc892x18){logger[_0x9147[50]](_0x9147[22],_0xc892x17,404,_0x9147[49]);_0xc892x15[_0x9147[29]](404)[_0x9147[28]]();return null};return _0xc892x18}}function handleError(_0xc892x15,_0xc892x16,_0xc892x17){_0xc892x16= _0xc892x16|| 500;return function(_0xc892x27){logger[_0x9147[50]](_0x9147[22],_0xc892x17,_0xc892x16,JSON[_0x9147[31]](_0xc892x27));delete _0xc892x27[_0x9147[51]];_0xc892x15[_0x9147[29]](_0xc892x16)[_0x9147[52]](_0xc892x27)}}exports[_0x9147[53]]= function(_0xc892x28,_0xc892x15){var _0xc892x1b={raw:true},_0xc892x29={};_0xc892x29[_0x9147[54]]= _[_0x9147[57]](db[_0x9147[56]][_0x9147[55]]);_0xc892x29[_0x9147[58]]= _[_0x9147[57]](_0xc892x28[_0x9147[58]]);_0xc892x29[_0x9147[59]]= _[_0x9147[60]](_0xc892x29[_0x9147[54]],_0xc892x29[_0x9147[58]]);_0xc892x1b[_0x9147[61]]= _[_0x9147[60]](_0xc892x29[_0x9147[54]],qs[_0x9147[62]](_0xc892x28[_0x9147[58]][_0x9147[62]]));_0xc892x1b[_0x9147[61]]= (_0xc892x1b[_0x9147[61]][_0x9147[63]])?_0xc892x1b[_0x9147[61]]:_0xc892x29[_0x9147[54]];if(!_0xc892x28[_0x9147[58]][_0x9147[65]](_0x9147[64])){_0xc892x1b[_0x9147[35]]= qs[_0x9147[35]](_0xc892x28[_0x9147[58]][_0x9147[35]]);_0xc892x1b[_0x9147[34]]= qs[_0x9147[34]](_0xc892x28[_0x9147[58]][_0x9147[34]])};_0xc892x1b[_0x9147[66]]= qs[_0x9147[67]](_0xc892x28[_0x9147[58]][_0x9147[67]]);_0xc892x1b[_0x9147[68]]= qs[_0x9147[59]](_[_0x9147[69]](_0xc892x28[_0x9147[58]],_0xc892x29[_0x9147[59]]));if(_0xc892x28[_0x9147[58]][_0x9147[70]]){_0xc892x1b[_0x9147[68]]= _[_0x9147[73]](_0xc892x1b[_0x9147[68]],{$or:_[_0x9147[72]](_0xc892x1b[_0x9147[61]],function(_0xc892x2a){var _0xc892x2b={};_0xc892x2b[_0xc892x2a]= {$like:_0x9147[71]+ _0xc892x28[_0x9147[58]][_0x9147[70]]+ _0x9147[71]};return _0xc892x2b})})};_0xc892x1b= _[_0x9147[73]]({},_0xc892x1b,_0xc892x28[_0x9147[74]]);return db[_0x9147[56]][_0x9147[76]](_0xc892x1b)[_0x9147[45]](respondWithFilteredResult(_0xc892x15,_0xc892x1b,_0x9147[53]))[_0x9147[75]](handleError(_0xc892x15,null,_0x9147[53]))};exports[_0x9147[77]]= function(_0xc892x28,_0xc892x15){var _0xc892x1b={raw:true,where:{id:_0xc892x28[_0x9147[79]][_0x9147[78]]}},_0xc892x29={};_0xc892x29[_0x9147[54]]= _[_0x9147[57]](db[_0x9147[56]][_0x9147[55]]);_0xc892x29[_0x9147[58]]= _[_0x9147[57]](_0xc892x28[_0x9147[58]]);_0xc892x29[_0x9147[59]]= _[_0x9147[60]](_0xc892x29[_0x9147[54]],_0xc892x29[_0x9147[58]]);_0xc892x1b[_0x9147[61]]= _[_0x9147[60]](_0xc892x29[_0x9147[54]],qs[_0x9147[62]](_0xc892x28[_0x9147[58]][_0x9147[62]]));_0xc892x1b[_0x9147[61]]= (_0xc892x1b[_0x9147[61]][_0x9147[63]])?_0xc892x1b[_0x9147[61]]:_0xc892x29[_0x9147[54]];_0xc892x1b= _[_0x9147[73]]({},_0xc892x1b,_0xc892x28[_0x9147[74]]);return db[_0x9147[56]][_0x9147[80]](_0xc892x1b)[_0x9147[45]](handleEntityNotFound(_0xc892x15,null,_0x9147[77]))[_0x9147[45]](respondWithResult(_0xc892x15,null,_0x9147[77]))[_0x9147[75]](handleError(_0xc892x15,null,_0x9147[77]))};exports[_0x9147[81]]= function(_0xc892x28,_0xc892x15){return db[_0x9147[56]][_0x9147[81]](_0xc892x28[_0x9147[82]],{})[_0x9147[45]](respondWithResult(_0xc892x15,201,_0x9147[81]))[_0x9147[75]](handleError(_0xc892x15,null,_0x9147[81]))};exports[_0x9147[46]]= function(_0xc892x28,_0xc892x15){if(_0xc892x28[_0x9147[82]][_0x9147[78]]){delete _0xc892x28[_0x9147[82]][_0x9147[78]]};return db[_0x9147[56]][_0x9147[80]]({where:{id:_0xc892x28[_0x9147[79]][_0x9147[78]]}})[_0x9147[45]](handleEntityNotFound(_0xc892x15,null,_0x9147[46]))[_0x9147[45]](saveUpdates(_0xc892x28[_0x9147[82]],null,_0x9147[46]))[_0x9147[45]](respondWithResult(_0xc892x15,null,_0x9147[46]))[_0x9147[75]](handleError(_0xc892x15,null,_0x9147[46]))};exports[_0x9147[48]]= function(_0xc892x28,_0xc892x15){return db[_0x9147[56]][_0x9147[80]]({where:{id:_0xc892x28[_0x9147[79]][_0x9147[78]]}})[_0x9147[45]](handleEntityNotFound(_0xc892x15,null,_0x9147[48]))[_0x9147[45]](removeEntity(_0xc892x15,null,_0x9147[48]))[_0x9147[75]](handleError(_0xc892x15,null,_0x9147[48]))};exports[_0x9147[83]]= function(_0xc892x28,_0xc892x15){return db[_0x9147[56]][_0x9147[83]]()[_0x9147[45]](respondWithResult(_0xc892x15,null,_0x9147[83]))[_0x9147[75]](handleError(_0xc892x15,null,_0x9147[83]))}
\ No newline at end of file
index f5cc620..adc7707 100644 (file)
@@ -1 +1 @@
-var _0x5acc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x5acc[0];var _=require(_0x5acc[1]);var util=require(_0x5acc[2]);var logger=require(_0x5acc[4])(_0x5acc[3]);var attributes=require(_0x5acc[5]);module[_0x5acc[6]]= function(_0x4e41x5,_0x4e41x6){return _0x4e41x5[_0x5acc[9]](_0x5acc[7],attributes,{tableName:_0x5acc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x8261=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x8261[0];var _=require(_0x8261[1]);var util=require(_0x8261[2]);var logger=require(_0x8261[4])(_0x8261[3]);var attributes=require(_0x8261[5]);module[_0x8261[6]]= function(_0xb38ax5,_0xb38ax6){return _0xb38ax5[_0x8261[9]](_0x8261[7],attributes,{tableName:_0x8261[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index fb3e353..e7c7fc8 100644 (file)
@@ -1 +1 @@
-var _0xd066=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd066[0];var _=require(_0xd066[1]);var util=require(_0xd066[2]);var moment=require(_0xd066[3]);var BPromise=require(_0xd066[4]);var db=require(_0xd066[6])[_0xd066[5]];var utils=require(_0xd066[7]);var logger=require(_0xd066[9])(_0xd066[8]);var jayson=require(_0xd066[10]);var client=jayson[_0xd066[12]][_0xd066[11]]({port:9002});function respondWithRpcPromise(_0x9a90xb,_0x9a90xc,_0x9a90xd){return  new BPromise(function(_0x9a90xe,_0x9a90xf){return client[_0xd066[25]](_0x9a90xb,_0x9a90xd)[_0xd066[24]](function(_0x9a90x11){logger[_0xd066[17]](_0xd066[13],_0x9a90xc,_0xd066[16]);logger[_0xd066[20]](_0xd066[18],_0x9a90xc,_0xd066[16],JSON[_0xd066[19]](_0x9a90x11));if(_0x9a90x11[_0xd066[14]]){if(_0x9a90x11[_0xd066[14]][_0xd066[21]]=== 500){logger[_0xd066[14]](_0xd066[13],_0x9a90xc,_0x9a90x11[_0xd066[14]][_0xd066[22]]);return _0x9a90xf(_0x9a90x11[_0xd066[14]][_0xd066[22]])};logger[_0xd066[14]](_0xd066[13],_0x9a90xc,_0x9a90x11[_0xd066[14]][_0xd066[22]]);return _0x9a90xe(_0x9a90x11[_0xd066[14]][_0xd066[22]])}else {logger[_0xd066[17]](_0xd066[13],_0x9a90xc,_0xd066[16]);_0x9a90xe(_0x9a90x11[_0xd066[23]][_0xd066[22]])}})[_0xd066[15]](function(_0x9a90x10){logger[_0xd066[14]](_0xd066[13],_0x9a90xc,_0x9a90x10);_0x9a90xf(_0x9a90x10)})})}
\ No newline at end of file
+var _0xab13=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xab13[0];var _=require(_0xab13[1]);var util=require(_0xab13[2]);var moment=require(_0xab13[3]);var BPromise=require(_0xab13[4]);var db=require(_0xab13[6])[_0xab13[5]];var utils=require(_0xab13[7]);var logger=require(_0xab13[9])(_0xab13[8]);var jayson=require(_0xab13[10]);var client=jayson[_0xab13[12]][_0xab13[11]]({port:9002});function respondWithRpcPromise(_0x3076xb,_0x3076xc,_0x3076xd){return  new BPromise(function(_0x3076xe,_0x3076xf){return client[_0xab13[25]](_0x3076xb,_0x3076xd)[_0xab13[24]](function(_0x3076x11){logger[_0xab13[17]](_0xab13[13],_0x3076xc,_0xab13[16]);logger[_0xab13[20]](_0xab13[18],_0x3076xc,_0xab13[16],JSON[_0xab13[19]](_0x3076x11));if(_0x3076x11[_0xab13[14]]){if(_0x3076x11[_0xab13[14]][_0xab13[21]]=== 500){logger[_0xab13[14]](_0xab13[13],_0x3076xc,_0x3076x11[_0xab13[14]][_0xab13[22]]);return _0x3076xf(_0x3076x11[_0xab13[14]][_0xab13[22]])};logger[_0xab13[14]](_0xab13[13],_0x3076xc,_0x3076x11[_0xab13[14]][_0xab13[22]]);return _0x3076xe(_0x3076x11[_0xab13[14]][_0xab13[22]])}else {logger[_0xab13[17]](_0xab13[13],_0x3076xc,_0xab13[16]);_0x3076xe(_0x3076x11[_0xab13[23]][_0xab13[22]])}})[_0xab13[15]](function(_0x3076x10){logger[_0xab13[14]](_0xab13[13],_0x3076xc,_0x3076x10);_0x3076xf(_0x3076x10)})})}
\ No newline at end of file
index 0f70c99..e8d435e 100644 (file)
@@ -1 +1 @@
-var _0x121f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x121f[0];var multer=require(_0x121f[1]);var util=require(_0x121f[2]);var path=require(_0x121f[3]);var express=require(_0x121f[4]);var router=express.Router();var auth=require(_0x121f[5]);var config=require(_0x121f[6]);var controller=require(_0x121f[7]);router[_0x121f[11]](_0x121f[8],auth[_0x121f[9]](),controller[_0x121f[10]]);router[_0x121f[11]](_0x121f[12],auth[_0x121f[9]](),controller[_0x121f[13]]);router[_0x121f[11]](_0x121f[14],auth[_0x121f[9]](),controller[_0x121f[15]]);router[_0x121f[11]](_0x121f[16],auth[_0x121f[9]](),controller[_0x121f[17]]);router[_0x121f[19]](_0x121f[8],auth[_0x121f[9]](),controller[_0x121f[18]]);router[_0x121f[19]](_0x121f[14],auth[_0x121f[9]](),controller[_0x121f[20]]);router[_0x121f[19]](_0x121f[16],auth[_0x121f[9]](),controller[_0x121f[21]]);router[_0x121f[23]](_0x121f[12],auth[_0x121f[9]](),controller[_0x121f[22]]);router[_0x121f[25]](_0x121f[12],auth[_0x121f[9]](),controller[_0x121f[24]]);router[_0x121f[25]](_0x121f[14],auth[_0x121f[9]](),controller[_0x121f[26]]);router[_0x121f[25]](_0x121f[16],auth[_0x121f[9]](),controller[_0x121f[27]]);module[_0x121f[28]]= router
\ No newline at end of file
+var _0x298a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x298a[0];var multer=require(_0x298a[1]);var util=require(_0x298a[2]);var path=require(_0x298a[3]);var express=require(_0x298a[4]);var router=express.Router();var auth=require(_0x298a[5]);var config=require(_0x298a[6]);var controller=require(_0x298a[7]);router[_0x298a[11]](_0x298a[8],auth[_0x298a[9]](),controller[_0x298a[10]]);router[_0x298a[11]](_0x298a[12],auth[_0x298a[9]](),controller[_0x298a[13]]);router[_0x298a[11]](_0x298a[14],auth[_0x298a[9]](),controller[_0x298a[15]]);router[_0x298a[11]](_0x298a[16],auth[_0x298a[9]](),controller[_0x298a[17]]);router[_0x298a[19]](_0x298a[8],auth[_0x298a[9]](),controller[_0x298a[18]]);router[_0x298a[19]](_0x298a[14],auth[_0x298a[9]](),controller[_0x298a[20]]);router[_0x298a[19]](_0x298a[16],auth[_0x298a[9]](),controller[_0x298a[21]]);router[_0x298a[23]](_0x298a[12],auth[_0x298a[9]](),controller[_0x298a[22]]);router[_0x298a[25]](_0x298a[12],auth[_0x298a[9]](),controller[_0x298a[24]]);router[_0x298a[25]](_0x298a[14],auth[_0x298a[9]](),controller[_0x298a[26]]);router[_0x298a[25]](_0x298a[16],auth[_0x298a[9]](),controller[_0x298a[27]]);module[_0x298a[28]]= router
\ No newline at end of file
index 6f7d028..da088bc 100644 (file)
@@ -1 +1 @@
-var _0xcb4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0xcb4a[0];var Sequelize=require(_0xcb4a[1]);module[_0xcb4a[2]]= {name:{type:Sequelize[_0xcb4a[3]],unique:_0xcb4a[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0xcb4a[3]]},timeout:{type:Sequelize[_0xcb4a[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0xcb4a[6],_0xcb4a[7],_0xcb4a[8])},lastAgent:{type:Sequelize[_0xcb4a[5]],defaultValue:0}}
\ No newline at end of file
+var _0xd9b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0xd9b3[0];var Sequelize=require(_0xd9b3[1]);module[_0xd9b3[2]]= {name:{type:Sequelize[_0xd9b3[3]],unique:_0xd9b3[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0xd9b3[3]]},timeout:{type:Sequelize[_0xd9b3[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0xd9b3[6],_0xd9b3[7],_0xd9b3[8])},lastAgent:{type:Sequelize[_0xd9b3[5]],defaultValue:0}}
\ No newline at end of file
index 31b64a1..b4b9870 100644 (file)
@@ -1 +1 @@
-var _0xc4cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xc4cc[0];var jsonpatch=require(_0xc4cc[1]);var rp=require(_0xc4cc[2]);var moment=require(_0xc4cc[3]);var BPromise=require(_0xc4cc[4]);var util=require(_0xc4cc[5]);var path=require(_0xc4cc[6]);var sox=require(_0xc4cc[7]);var ejs=require(_0xc4cc[8]);var fs=require(_0xc4cc[9]);var _=require(_0xc4cc[10]);var squel=require(_0xc4cc[11]);var crypto=require(_0xc4cc[12]);var jsforce=require(_0xc4cc[13]);var toCsv=require(_0xc4cc[14]);var qs=require(_0xc4cc[15]);var logger=require(_0xc4cc[17])(_0xc4cc[16]);var utils=require(_0xc4cc[18]);var config=require(_0xc4cc[19]);var db=require(_0xc4cc[21])[_0xc4cc[20]];function respondWithStatusCode(_0x82a2x15,_0x82a2x16,_0x82a2x17){_0x82a2x16= _0x82a2x16|| 204;return function(_0x82a2x18){if(_0x82a2x18){logger[_0xc4cc[24]](_0xc4cc[22],_0x82a2x17,_0x82a2x16,_0xc4cc[23]);logger[_0xc4cc[26]](_0xc4cc[25],_0x82a2x17,_0x82a2x16,_0xc4cc[23]);return _0x82a2x15[_0xc4cc[27]](_0x82a2x16)};return _0x82a2x15[_0xc4cc[29]](304)[_0xc4cc[28]]()}}function respondWithResult(_0x82a2x15,_0x82a2x16,_0x82a2x17){_0x82a2x16= _0x82a2x16|| 200;return function(_0x82a2x18){if(_0x82a2x18){logger[_0xc4cc[24]](_0xc4cc[22],_0x82a2x17,_0x82a2x16,_0xc4cc[30]);logger[_0xc4cc[26]](_0xc4cc[25],_0x82a2x17,_0x82a2x16,_0xc4cc[30],JSON[_0xc4cc[31]](_0x82a2x18));return _0x82a2x15[_0xc4cc[29]](_0x82a2x16)[_0xc4cc[32]](_0x82a2x18)};return _0x82a2x15[_0xc4cc[29]](304)[_0xc4cc[28]]()}}function respondWithFilteredResult(_0x82a2x15,_0x82a2x1b,_0x82a2x17){return function(_0x82a2x18){if(_0x82a2x18){var _0x82a2x1c=_0x82a2x18[_0xc4cc[33]],_0x82a2x1d=_0x82a2x1b[_0xc4cc[34]],_0x82a2x1e=_0x82a2x1b[_0xc4cc[34]]+ _0x82a2x1b[_0xc4cc[35]],_0x82a2x16;if(_0x82a2x1e>= _0x82a2x1c){_0x82a2x1e= _0x82a2x1c;_0x82a2x16= 200}else {_0x82a2x16= 206};_0x82a2x15[_0xc4cc[29]](_0x82a2x16);logger[_0xc4cc[24]](_0xc4cc[22],_0x82a2x17,_0x82a2x16,_0xc4cc[36]);logger[_0xc4cc[26]](_0xc4cc[25],_0x82a2x17,_0x82a2x16,_0xc4cc[30],JSON[_0xc4cc[31]](_0x82a2x18));return _0x82a2x15[_0xc4cc[40]](_0xc4cc[37],_0x82a2x1d+ _0xc4cc[38]+ _0x82a2x1e+ _0xc4cc[39]+ _0x82a2x1c)[_0xc4cc[32]](_0x82a2x18)};return null}}function patchUpdates(_0x82a2x20){return function(_0x82a2x18){try{jsonpatch[_0xc4cc[41]](_0x82a2x18,_0x82a2x20,true)}catch(err){return BPromise[_0xc4cc[42]](err)};return _0x82a2x18[_0xc4cc[43]]()}}function saveUpdates(_0x82a2x22,_0x82a2x16,_0x82a2x17){return function(_0x82a2x18){if(_0x82a2x18){return _0x82a2x18[_0xc4cc[46]](_0x82a2x22)[_0xc4cc[45]](function(_0x82a2x23){logger[_0xc4cc[24]](_0xc4cc[22],_0x82a2x17,_0x82a2x16,_0xc4cc[44]);logger[_0xc4cc[26]](_0xc4cc[25],_0x82a2x17,_0x82a2x16,_0xc4cc[44],JSON[_0xc4cc[31]](_0x82a2x18));return _0x82a2x23})};return null}}function removeEntity(_0x82a2x15,_0x82a2x16,_0x82a2x17){return function(_0x82a2x18){if(_0x82a2x18){return _0x82a2x18[_0xc4cc[48]]()[_0xc4cc[45]](function(){logger[_0xc4cc[24]](_0xc4cc[22],_0x82a2x17,_0x82a2x16,_0xc4cc[47]);logger[_0xc4cc[26]](_0xc4cc[25],_0x82a2x17,_0x82a2x16,_0xc4cc[47],JSON[_0xc4cc[31]](_0x82a2x18));_0x82a2x15[_0xc4cc[29]](204)[_0xc4cc[28]]()})}}}function handleEntityNotFound(_0x82a2x15,_0x82a2x16,_0x82a2x17){return function(_0x82a2x18){if(!_0x82a2x18){logger[_0xc4cc[50]](_0xc4cc[22],_0x82a2x17,404,_0xc4cc[49]);_0x82a2x15[_0xc4cc[29]](404)[_0xc4cc[28]]();return null};return _0x82a2x18}}function handleError(_0x82a2x15,_0x82a2x16,_0x82a2x17){_0x82a2x16= _0x82a2x16|| 500;return function(_0x82a2x27){logger[_0xc4cc[50]](_0xc4cc[22],_0x82a2x17,_0x82a2x16,JSON[_0xc4cc[31]](_0x82a2x27));delete _0x82a2x27[_0xc4cc[51]];_0x82a2x15[_0xc4cc[29]](_0x82a2x16)[_0xc4cc[52]](_0x82a2x27)}}exports[_0xc4cc[53]]= function(_0x82a2x28,_0x82a2x15){var _0x82a2x1b={},_0x82a2x29={};_0x82a2x29[_0xc4cc[54]]= _[_0xc4cc[57]](db[_0xc4cc[56]][_0xc4cc[55]]);_0x82a2x29[_0xc4cc[58]]= _[_0xc4cc[57]](_0x82a2x28[_0xc4cc[58]]);_0x82a2x29[_0xc4cc[59]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],_0x82a2x29[_0xc4cc[58]]);_0x82a2x1b[_0xc4cc[61]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],qs[_0xc4cc[62]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[62]]));_0x82a2x1b[_0xc4cc[61]]= (_0x82a2x1b[_0xc4cc[61]][_0xc4cc[63]])?_0x82a2x1b[_0xc4cc[61]]:_0x82a2x29[_0xc4cc[54]];if(!_0x82a2x28[_0xc4cc[58]][_0xc4cc[65]](_0xc4cc[64])){_0x82a2x1b[_0xc4cc[35]]= qs[_0xc4cc[35]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[35]]);_0x82a2x1b[_0xc4cc[34]]= qs[_0xc4cc[34]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[34]])};_0x82a2x1b[_0xc4cc[66]]= qs[_0xc4cc[67]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[67]]);_0x82a2x1b[_0xc4cc[68]]= qs[_0xc4cc[59]](_[_0xc4cc[69]](_0x82a2x28[_0xc4cc[58]],_0x82a2x29[_0xc4cc[59]]));if(_0x82a2x28[_0xc4cc[58]][_0xc4cc[70]]){_0x82a2x1b[_0xc4cc[68]]= _[_0xc4cc[73]](_0x82a2x1b[_0xc4cc[68]],{$or:_[_0xc4cc[72]](_0x82a2x1b[_0xc4cc[61]],function(_0x82a2x2a){var _0x82a2x2b={};_0x82a2x2b[_0x82a2x2a]= {$like:_0xc4cc[71]+ _0x82a2x28[_0xc4cc[58]][_0xc4cc[70]]+ _0xc4cc[71]};return _0x82a2x2b})})};_0x82a2x1b= _[_0xc4cc[73]]({},_0x82a2x1b,_0x82a2x28[_0xc4cc[74]]);return db[_0xc4cc[56]][_0xc4cc[76]](_0x82a2x1b)[_0xc4cc[45]](respondWithFilteredResult(_0x82a2x15,_0x82a2x1b,_0xc4cc[53]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[53]))};exports[_0xc4cc[77]]= function(_0x82a2x28,_0x82a2x15){var _0x82a2x1b={raw:true,where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}},_0x82a2x29={};_0x82a2x29[_0xc4cc[54]]= _[_0xc4cc[57]](db[_0xc4cc[56]][_0xc4cc[55]]);_0x82a2x29[_0xc4cc[58]]= _[_0xc4cc[57]](_0x82a2x28[_0xc4cc[58]]);_0x82a2x29[_0xc4cc[59]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],_0x82a2x29[_0xc4cc[58]]);_0x82a2x1b[_0xc4cc[61]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],qs[_0xc4cc[62]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[62]]));_0x82a2x1b[_0xc4cc[61]]= (_0x82a2x1b[_0xc4cc[61]][_0xc4cc[63]])?_0x82a2x1b[_0xc4cc[61]]:_0x82a2x29[_0xc4cc[54]];_0x82a2x1b= _[_0xc4cc[73]]({},_0x82a2x1b,_0x82a2x28[_0xc4cc[74]]);return db[_0xc4cc[56]][_0xc4cc[80]](_0x82a2x1b)[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[77]))[_0xc4cc[45]](respondWithResult(_0x82a2x15,null,_0xc4cc[77]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[77]))};exports[_0xc4cc[81]]= function(_0x82a2x28,_0x82a2x15){return db[_0xc4cc[56]][_0xc4cc[81]](_0x82a2x28[_0xc4cc[82]],{})[_0xc4cc[45]](respondWithResult(_0x82a2x15,201,_0xc4cc[81]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[81]))};exports[_0xc4cc[46]]= function(_0x82a2x28,_0x82a2x15){if(_0x82a2x28[_0xc4cc[82]][_0xc4cc[78]]){delete _0x82a2x28[_0xc4cc[82]][_0xc4cc[78]]};return db[_0xc4cc[56]][_0xc4cc[80]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[46]))[_0xc4cc[45]](saveUpdates(_0x82a2x28[_0xc4cc[82]],null,_0xc4cc[46]))[_0xc4cc[45]](respondWithResult(_0x82a2x15,null,_0xc4cc[46]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[46]))};exports[_0xc4cc[48]]= function(_0x82a2x28,_0x82a2x15){return db[_0xc4cc[56]][_0xc4cc[80]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[48]))[_0xc4cc[45]](removeEntity(_0x82a2x15,null,_0xc4cc[48]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[48]))};exports[_0xc4cc[83]]= function(_0x82a2x28,_0x82a2x18,_0x82a2x2c){var _0x82a2x1b={};var _0x82a2x29={};var _0x82a2x2d;var _0x82a2x1c;return db[_0xc4cc[56]][_0xc4cc[85]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x18,null,_0xc4cc[83]))[_0xc4cc[45]](function(_0x82a2x18){if(_0x82a2x18){_0x82a2x2d= _0x82a2x18;_0x82a2x29[_0xc4cc[54]]= _[_0xc4cc[57]](db[_0xc4cc[84]][_0xc4cc[55]]);_0x82a2x29[_0xc4cc[58]]= _[_0xc4cc[57]](_0x82a2x28[_0xc4cc[58]]);_0x82a2x29[_0xc4cc[59]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],_0x82a2x29[_0xc4cc[58]]);_0x82a2x1b[_0xc4cc[61]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],qs[_0xc4cc[62]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[62]]));_0x82a2x1b[_0xc4cc[61]]= (_0x82a2x1b[_0xc4cc[61]][_0xc4cc[63]])?_0x82a2x1b[_0xc4cc[61]]:_0x82a2x29[_0xc4cc[54]];_0x82a2x1b[_0xc4cc[66]]= qs[_0xc4cc[67]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[67]]);_0x82a2x1b[_0xc4cc[68]]= qs[_0xc4cc[59]](_[_0xc4cc[69]](_0x82a2x28[_0xc4cc[58]],_0x82a2x29[_0xc4cc[59]]));if(_0x82a2x28[_0xc4cc[58]][_0xc4cc[70]]){_0x82a2x1b[_0xc4cc[68]]= _[_0xc4cc[73]](_0x82a2x1b[_0xc4cc[68]],{$or:_[_0xc4cc[72]](_0x82a2x1b[_0xc4cc[61]],function(_0x82a2x2a){var _0x82a2x2b={};_0x82a2x2b[_0x82a2x2a]= {$like:_0xc4cc[71]+ _0x82a2x28[_0xc4cc[58]][_0xc4cc[70]]+ _0xc4cc[71]};return _0x82a2x2b})})};_0x82a2x1b= _[_0xc4cc[73]]({},_0x82a2x1b,_0x82a2x28[_0xc4cc[74]]);return _0x82a2x2d[_0xc4cc[83]](_0x82a2x1b)}})[_0xc4cc[45]](function(_0x82a2x2f){if(_0x82a2x2f){_0x82a2x1c= _0x82a2x2f[_0xc4cc[63]];if(!_0x82a2x28[_0xc4cc[58]][_0xc4cc[65]](_0xc4cc[64])){_0x82a2x1b[_0xc4cc[35]]= qs[_0xc4cc[35]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[35]]);_0x82a2x1b[_0xc4cc[34]]= qs[_0xc4cc[34]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[34]])};return _0x82a2x2d[_0xc4cc[83]](_0x82a2x1b)}})[_0xc4cc[45]](function(_0x82a2x2e){return _0x82a2x2e?{count:_0x82a2x1c,rows:_0x82a2x2e}:null})[_0xc4cc[45]](respondWithResult(_0x82a2x18,null,_0xc4cc[83]))[_0xc4cc[75]](handleError(_0x82a2x18,null,_0xc4cc[83]))};exports[_0xc4cc[86]]= function(_0x82a2x28,_0x82a2x15,_0x82a2x2c){var _0x82a2x30=[];var _0x82a2x31;return db[_0xc4cc[84]][_0xc4cc[93]]({where:{id:_0x82a2x28[_0xc4cc[82]][_0xc4cc[87]]},attributes:[_0xc4cc[78]],include:[{model:db[_0xc4cc[92]],as:_0xc4cc[90],attributes:[_0xc4cc[78]],raw:true}]})[_0xc4cc[45]](function(_0x82a2x34){if(_0x82a2x34){for(var _0x82a2x35=0;_0x82a2x35< _0x82a2x34[_0xc4cc[63]];_0x82a2x35+= 1){for(var _0x82a2x36=0;_0x82a2x36< _0x82a2x34[_0x82a2x35][_0xc4cc[90]][_0xc4cc[63]];_0x82a2x36+= 1){_0x82a2x30= _[_0xc4cc[91]](_0x82a2x30,[_0x82a2x34[_0x82a2x35][_0xc4cc[90]][_0x82a2x36][_0xc4cc[78]]])}};return _0x82a2x30}})[_0xc4cc[45]](function(_0x82a2x33){if(_0x82a2x33){return db[_0xc4cc[56]][_0xc4cc[80]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})}})[_0xc4cc[45]](function(_0x82a2x32){if(_0x82a2x32){_0x82a2x31= _0x82a2x32;return _0x82a2x31[_0xc4cc[89]](_0x82a2x30,{penalty:_0x82a2x28[_0xc4cc[82]][_0xc4cc[88]]})}})[_0xc4cc[45]](function(_0x82a2x18){if(_0x82a2x18){return _0x82a2x31[_0xc4cc[86]](_0x82a2x28[_0xc4cc[82]][_0xc4cc[87]])}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[86]))[_0xc4cc[45]](respondWithStatusCode(_0x82a2x15,null,_0xc4cc[86]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[86]))};exports[_0xc4cc[94]]= function(_0x82a2x28,_0x82a2x15,_0x82a2x2c){var _0x82a2x30=[];var _0x82a2x31;return db[_0xc4cc[84]][_0xc4cc[93]]({where:{id:_0x82a2x28[_0xc4cc[58]][_0xc4cc[87]]},attributes:[_0xc4cc[78]],include:[{model:db[_0xc4cc[92]],as:_0xc4cc[90],attributes:[_0xc4cc[78]],raw:true}]})[_0xc4cc[45]](function(_0x82a2x34){if(_0x82a2x34){for(var _0x82a2x35=0;_0x82a2x35< _0x82a2x34[_0xc4cc[63]];_0x82a2x35+= 1){for(var _0x82a2x36=0;_0x82a2x36< _0x82a2x34[_0x82a2x35][_0xc4cc[90]][_0xc4cc[63]];_0x82a2x36+= 1){_0x82a2x30= _[_0xc4cc[91]](_0x82a2x30,[_0x82a2x34[_0x82a2x35][_0xc4cc[90]][_0x82a2x36][_0xc4cc[78]]])}};return _0x82a2x30}})[_0xc4cc[45]](function(_0x82a2x33){if(_0x82a2x33){return db[_0xc4cc[56]][_0xc4cc[80]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})}})[_0xc4cc[45]](function(_0x82a2x32){if(_0x82a2x32){_0x82a2x31= _0x82a2x32;return _0x82a2x31[_0xc4cc[95]](_0x82a2x30)}})[_0xc4cc[45]](function(_0x82a2x18){if(_0x82a2x31){return _0x82a2x31[_0xc4cc[94]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[87]])}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[94]))[_0xc4cc[45]](respondWithStatusCode(_0x82a2x15,null,_0xc4cc[94]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[94]))};exports[_0xc4cc[89]]= function(_0x82a2x28,_0x82a2x15,_0x82a2x2c){return db[_0xc4cc[56]][_0xc4cc[80]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[89]))[_0xc4cc[45]](function(_0x82a2x18){if(_0x82a2x18){return _0x82a2x18[_0xc4cc[89]](_0x82a2x28[_0xc4cc[82]][_0xc4cc[87]],_[_0xc4cc[96]](_0x82a2x28[_0xc4cc[82]],[_0xc4cc[87],_0xc4cc[78]])|| {})};return null})[_0xc4cc[45]](respondWithResult(_0x82a2x15,null,_0xc4cc[89]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[89]))};exports[_0xc4cc[95]]= function(_0x82a2x28,_0x82a2x15,_0x82a2x2c){var _0x82a2x2f;return db[_0xc4cc[56]][_0xc4cc[80]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x15,null,_0xc4cc[95]))[_0xc4cc[45]](function(_0x82a2x18){if(_0x82a2x18){return _0x82a2x18[_0xc4cc[95]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[87]])}})[_0xc4cc[45]](respondWithStatusCode(_0x82a2x15,null,_0xc4cc[95]))[_0xc4cc[75]](handleError(_0x82a2x15,null,_0xc4cc[95]))};exports[_0xc4cc[97]]= function(_0x82a2x28,_0x82a2x18,_0x82a2x2c){var _0x82a2x1b={};var _0x82a2x29={};var _0x82a2x2d;var _0x82a2x1c;return db[_0xc4cc[56]][_0xc4cc[85]]({where:{id:_0x82a2x28[_0xc4cc[79]][_0xc4cc[78]]}})[_0xc4cc[45]](handleEntityNotFound(_0x82a2x18,null,_0xc4cc[97]))[_0xc4cc[45]](function(_0x82a2x18){if(_0x82a2x18){_0x82a2x2d= _0x82a2x18;_0x82a2x29[_0xc4cc[54]]= _[_0xc4cc[57]](db[_0xc4cc[92]][_0xc4cc[55]]);_0x82a2x29[_0xc4cc[58]]= _[_0xc4cc[57]](_0x82a2x28[_0xc4cc[58]]);_0x82a2x29[_0xc4cc[59]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],_0x82a2x29[_0xc4cc[58]]);_0x82a2x1b[_0xc4cc[61]]= _[_0xc4cc[60]](_0x82a2x29[_0xc4cc[54]],qs[_0xc4cc[62]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[62]]));_0x82a2x1b[_0xc4cc[61]]= (_0x82a2x1b[_0xc4cc[61]][_0xc4cc[63]])?_0x82a2x1b[_0xc4cc[61]]:_0x82a2x29[_0xc4cc[54]];_0x82a2x1b[_0xc4cc[66]]= qs[_0xc4cc[67]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[67]]);_0x82a2x1b[_0xc4cc[68]]= qs[_0xc4cc[59]](_[_0xc4cc[69]](_0x82a2x28[_0xc4cc[58]],_0x82a2x29[_0xc4cc[59]]));if(_0x82a2x28[_0xc4cc[58]][_0xc4cc[70]]){_0x82a2x1b[_0xc4cc[68]]= _[_0xc4cc[73]](_0x82a2x1b[_0xc4cc[68]],{$or:_[_0xc4cc[72]](_0x82a2x1b[_0xc4cc[61]],function(_0x82a2x2a){var _0x82a2x2b={};_0x82a2x2b[_0x82a2x2a]= {$like:_0xc4cc[71]+ _0x82a2x28[_0xc4cc[58]][_0xc4cc[70]]+ _0xc4cc[71]};return _0x82a2x2b})})};_0x82a2x1b= _[_0xc4cc[73]]({},_0x82a2x1b,_0x82a2x28[_0xc4cc[74]]);return _0x82a2x2d[_0xc4cc[97]](_0x82a2x1b)}})[_0xc4cc[45]](function(_0x82a2x2f){if(_0x82a2x2f){_0x82a2x1c= _0x82a2x2f[_0xc4cc[63]];if(!_0x82a2x28[_0xc4cc[58]][_0xc4cc[65]](_0xc4cc[64])){_0x82a2x1b[_0xc4cc[35]]= qs[_0xc4cc[35]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[35]]);_0x82a2x1b[_0xc4cc[34]]= qs[_0xc4cc[34]](_0x82a2x28[_0xc4cc[58]][_0xc4cc[34]])};return _0x82a2x2d[_0xc4cc[97]](_0x82a2x1b)}})[_0xc4cc[45]](function(_0x82a2x2e){return _0x82a2x2e?{count:_0x82a2x1c,rows:_0x82a2x2e}:null})[_0xc4cc[45]](respondWithResult(_0x82a2x18,null,_0xc4cc[97]))[_0xc4cc[75]](handleError(_0x82a2x18,null,_0xc4cc[97]))}
\ No newline at end of file
+var _0x1c12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x1c12[0];var jsonpatch=require(_0x1c12[1]);var rp=require(_0x1c12[2]);var moment=require(_0x1c12[3]);var BPromise=require(_0x1c12[4]);var util=require(_0x1c12[5]);var path=require(_0x1c12[6]);var sox=require(_0x1c12[7]);var ejs=require(_0x1c12[8]);var fs=require(_0x1c12[9]);var _=require(_0x1c12[10]);var squel=require(_0x1c12[11]);var crypto=require(_0x1c12[12]);var jsforce=require(_0x1c12[13]);var toCsv=require(_0x1c12[14]);var qs=require(_0x1c12[15]);var logger=require(_0x1c12[17])(_0x1c12[16]);var utils=require(_0x1c12[18]);var config=require(_0x1c12[19]);var db=require(_0x1c12[21])[_0x1c12[20]];function respondWithStatusCode(_0x167bx15,_0x167bx16,_0x167bx17){_0x167bx16= _0x167bx16|| 204;return function(_0x167bx18){if(_0x167bx18){logger[_0x1c12[24]](_0x1c12[22],_0x167bx17,_0x167bx16,_0x1c12[23]);logger[_0x1c12[26]](_0x1c12[25],_0x167bx17,_0x167bx16,_0x1c12[23]);return _0x167bx15[_0x1c12[27]](_0x167bx16)};return _0x167bx15[_0x1c12[29]](304)[_0x1c12[28]]()}}function respondWithResult(_0x167bx15,_0x167bx16,_0x167bx17){_0x167bx16= _0x167bx16|| 200;return function(_0x167bx18){if(_0x167bx18){logger[_0x1c12[24]](_0x1c12[22],_0x167bx17,_0x167bx16,_0x1c12[30]);logger[_0x1c12[26]](_0x1c12[25],_0x167bx17,_0x167bx16,_0x1c12[30],JSON[_0x1c12[31]](_0x167bx18));return _0x167bx15[_0x1c12[29]](_0x167bx16)[_0x1c12[32]](_0x167bx18)};return _0x167bx15[_0x1c12[29]](304)[_0x1c12[28]]()}}function respondWithFilteredResult(_0x167bx15,_0x167bx1b,_0x167bx17){return function(_0x167bx18){if(_0x167bx18){var _0x167bx1c=_0x167bx18[_0x1c12[33]],_0x167bx1d=_0x167bx1b[_0x1c12[34]],_0x167bx1e=_0x167bx1b[_0x1c12[34]]+ _0x167bx1b[_0x1c12[35]],_0x167bx16;if(_0x167bx1e>= _0x167bx1c){_0x167bx1e= _0x167bx1c;_0x167bx16= 200}else {_0x167bx16= 206};_0x167bx15[_0x1c12[29]](_0x167bx16);logger[_0x1c12[24]](_0x1c12[22],_0x167bx17,_0x167bx16,_0x1c12[36]);logger[_0x1c12[26]](_0x1c12[25],_0x167bx17,_0x167bx16,_0x1c12[30],JSON[_0x1c12[31]](_0x167bx18));return _0x167bx15[_0x1c12[40]](_0x1c12[37],_0x167bx1d+ _0x1c12[38]+ _0x167bx1e+ _0x1c12[39]+ _0x167bx1c)[_0x1c12[32]](_0x167bx18)};return null}}function patchUpdates(_0x167bx20){return function(_0x167bx18){try{jsonpatch[_0x1c12[41]](_0x167bx18,_0x167bx20,true)}catch(err){return BPromise[_0x1c12[42]](err)};return _0x167bx18[_0x1c12[43]]()}}function saveUpdates(_0x167bx22,_0x167bx16,_0x167bx17){return function(_0x167bx18){if(_0x167bx18){return _0x167bx18[_0x1c12[46]](_0x167bx22)[_0x1c12[45]](function(_0x167bx23){logger[_0x1c12[24]](_0x1c12[22],_0x167bx17,_0x167bx16,_0x1c12[44]);logger[_0x1c12[26]](_0x1c12[25],_0x167bx17,_0x167bx16,_0x1c12[44],JSON[_0x1c12[31]](_0x167bx18));return _0x167bx23})};return null}}function removeEntity(_0x167bx15,_0x167bx16,_0x167bx17){return function(_0x167bx18){if(_0x167bx18){return _0x167bx18[_0x1c12[48]]()[_0x1c12[45]](function(){logger[_0x1c12[24]](_0x1c12[22],_0x167bx17,_0x167bx16,_0x1c12[47]);logger[_0x1c12[26]](_0x1c12[25],_0x167bx17,_0x167bx16,_0x1c12[47],JSON[_0x1c12[31]](_0x167bx18));_0x167bx15[_0x1c12[29]](204)[_0x1c12[28]]()})}}}function handleEntityNotFound(_0x167bx15,_0x167bx16,_0x167bx17){return function(_0x167bx18){if(!_0x167bx18){logger[_0x1c12[50]](_0x1c12[22],_0x167bx17,404,_0x1c12[49]);_0x167bx15[_0x1c12[29]](404)[_0x1c12[28]]();return null};return _0x167bx18}}function handleError(_0x167bx15,_0x167bx16,_0x167bx17){_0x167bx16= _0x167bx16|| 500;return function(_0x167bx27){logger[_0x1c12[50]](_0x1c12[22],_0x167bx17,_0x167bx16,JSON[_0x1c12[31]](_0x167bx27));delete _0x167bx27[_0x1c12[51]];_0x167bx15[_0x1c12[29]](_0x167bx16)[_0x1c12[52]](_0x167bx27)}}exports[_0x1c12[53]]= function(_0x167bx28,_0x167bx15){var _0x167bx1b={},_0x167bx29={};_0x167bx29[_0x1c12[54]]= _[_0x1c12[57]](db[_0x1c12[56]][_0x1c12[55]]);_0x167bx29[_0x1c12[58]]= _[_0x1c12[57]](_0x167bx28[_0x1c12[58]]);_0x167bx29[_0x1c12[59]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],_0x167bx29[_0x1c12[58]]);_0x167bx1b[_0x1c12[61]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],qs[_0x1c12[62]](_0x167bx28[_0x1c12[58]][_0x1c12[62]]));_0x167bx1b[_0x1c12[61]]= (_0x167bx1b[_0x1c12[61]][_0x1c12[63]])?_0x167bx1b[_0x1c12[61]]:_0x167bx29[_0x1c12[54]];if(!_0x167bx28[_0x1c12[58]][_0x1c12[65]](_0x1c12[64])){_0x167bx1b[_0x1c12[35]]= qs[_0x1c12[35]](_0x167bx28[_0x1c12[58]][_0x1c12[35]]);_0x167bx1b[_0x1c12[34]]= qs[_0x1c12[34]](_0x167bx28[_0x1c12[58]][_0x1c12[34]])};_0x167bx1b[_0x1c12[66]]= qs[_0x1c12[67]](_0x167bx28[_0x1c12[58]][_0x1c12[67]]);_0x167bx1b[_0x1c12[68]]= qs[_0x1c12[59]](_[_0x1c12[69]](_0x167bx28[_0x1c12[58]],_0x167bx29[_0x1c12[59]]));if(_0x167bx28[_0x1c12[58]][_0x1c12[70]]){_0x167bx1b[_0x1c12[68]]= _[_0x1c12[73]](_0x167bx1b[_0x1c12[68]],{$or:_[_0x1c12[72]](_0x167bx1b[_0x1c12[61]],function(_0x167bx2a){var _0x167bx2b={};_0x167bx2b[_0x167bx2a]= {$like:_0x1c12[71]+ _0x167bx28[_0x1c12[58]][_0x1c12[70]]+ _0x1c12[71]};return _0x167bx2b})})};_0x167bx1b= _[_0x1c12[73]]({},_0x167bx1b,_0x167bx28[_0x1c12[74]]);return db[_0x1c12[56]][_0x1c12[76]](_0x167bx1b)[_0x1c12[45]](respondWithFilteredResult(_0x167bx15,_0x167bx1b,_0x1c12[53]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[53]))};exports[_0x1c12[77]]= function(_0x167bx28,_0x167bx15){var _0x167bx1b={raw:true,where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}},_0x167bx29={};_0x167bx29[_0x1c12[54]]= _[_0x1c12[57]](db[_0x1c12[56]][_0x1c12[55]]);_0x167bx29[_0x1c12[58]]= _[_0x1c12[57]](_0x167bx28[_0x1c12[58]]);_0x167bx29[_0x1c12[59]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],_0x167bx29[_0x1c12[58]]);_0x167bx1b[_0x1c12[61]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],qs[_0x1c12[62]](_0x167bx28[_0x1c12[58]][_0x1c12[62]]));_0x167bx1b[_0x1c12[61]]= (_0x167bx1b[_0x1c12[61]][_0x1c12[63]])?_0x167bx1b[_0x1c12[61]]:_0x167bx29[_0x1c12[54]];_0x167bx1b= _[_0x1c12[73]]({},_0x167bx1b,_0x167bx28[_0x1c12[74]]);return db[_0x1c12[56]][_0x1c12[80]](_0x167bx1b)[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[77]))[_0x1c12[45]](respondWithResult(_0x167bx15,null,_0x1c12[77]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[77]))};exports[_0x1c12[81]]= function(_0x167bx28,_0x167bx15){return db[_0x1c12[56]][_0x1c12[81]](_0x167bx28[_0x1c12[82]],{})[_0x1c12[45]](respondWithResult(_0x167bx15,201,_0x1c12[81]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[81]))};exports[_0x1c12[46]]= function(_0x167bx28,_0x167bx15){if(_0x167bx28[_0x1c12[82]][_0x1c12[78]]){delete _0x167bx28[_0x1c12[82]][_0x1c12[78]]};return db[_0x1c12[56]][_0x1c12[80]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[46]))[_0x1c12[45]](saveUpdates(_0x167bx28[_0x1c12[82]],null,_0x1c12[46]))[_0x1c12[45]](respondWithResult(_0x167bx15,null,_0x1c12[46]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[46]))};exports[_0x1c12[48]]= function(_0x167bx28,_0x167bx15){return db[_0x1c12[56]][_0x1c12[80]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[48]))[_0x1c12[45]](removeEntity(_0x167bx15,null,_0x1c12[48]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[48]))};exports[_0x1c12[83]]= function(_0x167bx28,_0x167bx18,_0x167bx2c){var _0x167bx1b={};var _0x167bx29={};var _0x167bx2d;var _0x167bx1c;return db[_0x1c12[56]][_0x1c12[85]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})[_0x1c12[45]](handleEntityNotFound(_0x167bx18,null,_0x1c12[83]))[_0x1c12[45]](function(_0x167bx18){if(_0x167bx18){_0x167bx2d= _0x167bx18;_0x167bx29[_0x1c12[54]]= _[_0x1c12[57]](db[_0x1c12[84]][_0x1c12[55]]);_0x167bx29[_0x1c12[58]]= _[_0x1c12[57]](_0x167bx28[_0x1c12[58]]);_0x167bx29[_0x1c12[59]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],_0x167bx29[_0x1c12[58]]);_0x167bx1b[_0x1c12[61]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],qs[_0x1c12[62]](_0x167bx28[_0x1c12[58]][_0x1c12[62]]));_0x167bx1b[_0x1c12[61]]= (_0x167bx1b[_0x1c12[61]][_0x1c12[63]])?_0x167bx1b[_0x1c12[61]]:_0x167bx29[_0x1c12[54]];_0x167bx1b[_0x1c12[66]]= qs[_0x1c12[67]](_0x167bx28[_0x1c12[58]][_0x1c12[67]]);_0x167bx1b[_0x1c12[68]]= qs[_0x1c12[59]](_[_0x1c12[69]](_0x167bx28[_0x1c12[58]],_0x167bx29[_0x1c12[59]]));if(_0x167bx28[_0x1c12[58]][_0x1c12[70]]){_0x167bx1b[_0x1c12[68]]= _[_0x1c12[73]](_0x167bx1b[_0x1c12[68]],{$or:_[_0x1c12[72]](_0x167bx1b[_0x1c12[61]],function(_0x167bx2a){var _0x167bx2b={};_0x167bx2b[_0x167bx2a]= {$like:_0x1c12[71]+ _0x167bx28[_0x1c12[58]][_0x1c12[70]]+ _0x1c12[71]};return _0x167bx2b})})};_0x167bx1b= _[_0x1c12[73]]({},_0x167bx1b,_0x167bx28[_0x1c12[74]]);return _0x167bx2d[_0x1c12[83]](_0x167bx1b)}})[_0x1c12[45]](function(_0x167bx2f){if(_0x167bx2f){_0x167bx1c= _0x167bx2f[_0x1c12[63]];if(!_0x167bx28[_0x1c12[58]][_0x1c12[65]](_0x1c12[64])){_0x167bx1b[_0x1c12[35]]= qs[_0x1c12[35]](_0x167bx28[_0x1c12[58]][_0x1c12[35]]);_0x167bx1b[_0x1c12[34]]= qs[_0x1c12[34]](_0x167bx28[_0x1c12[58]][_0x1c12[34]])};return _0x167bx2d[_0x1c12[83]](_0x167bx1b)}})[_0x1c12[45]](function(_0x167bx2e){return _0x167bx2e?{count:_0x167bx1c,rows:_0x167bx2e}:null})[_0x1c12[45]](respondWithResult(_0x167bx18,null,_0x1c12[83]))[_0x1c12[75]](handleError(_0x167bx18,null,_0x1c12[83]))};exports[_0x1c12[86]]= function(_0x167bx28,_0x167bx15,_0x167bx2c){var _0x167bx30=[];var _0x167bx31;return db[_0x1c12[84]][_0x1c12[93]]({where:{id:_0x167bx28[_0x1c12[82]][_0x1c12[87]]},attributes:[_0x1c12[78]],include:[{model:db[_0x1c12[92]],as:_0x1c12[90],attributes:[_0x1c12[78]],raw:true}]})[_0x1c12[45]](function(_0x167bx34){if(_0x167bx34){for(var _0x167bx35=0;_0x167bx35< _0x167bx34[_0x1c12[63]];_0x167bx35+= 1){for(var _0x167bx36=0;_0x167bx36< _0x167bx34[_0x167bx35][_0x1c12[90]][_0x1c12[63]];_0x167bx36+= 1){_0x167bx30= _[_0x1c12[91]](_0x167bx30,[_0x167bx34[_0x167bx35][_0x1c12[90]][_0x167bx36][_0x1c12[78]]])}};return _0x167bx30}})[_0x1c12[45]](function(_0x167bx33){if(_0x167bx33){return db[_0x1c12[56]][_0x1c12[80]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})}})[_0x1c12[45]](function(_0x167bx32){if(_0x167bx32){_0x167bx31= _0x167bx32;return _0x167bx31[_0x1c12[89]](_0x167bx30,{penalty:_0x167bx28[_0x1c12[82]][_0x1c12[88]]})}})[_0x1c12[45]](function(_0x167bx18){if(_0x167bx18){return _0x167bx31[_0x1c12[86]](_0x167bx28[_0x1c12[82]][_0x1c12[87]])}})[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[86]))[_0x1c12[45]](respondWithStatusCode(_0x167bx15,null,_0x1c12[86]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[86]))};exports[_0x1c12[94]]= function(_0x167bx28,_0x167bx15,_0x167bx2c){var _0x167bx30=[];var _0x167bx31;return db[_0x1c12[84]][_0x1c12[93]]({where:{id:_0x167bx28[_0x1c12[58]][_0x1c12[87]]},attributes:[_0x1c12[78]],include:[{model:db[_0x1c12[92]],as:_0x1c12[90],attributes:[_0x1c12[78]],raw:true}]})[_0x1c12[45]](function(_0x167bx34){if(_0x167bx34){for(var _0x167bx35=0;_0x167bx35< _0x167bx34[_0x1c12[63]];_0x167bx35+= 1){for(var _0x167bx36=0;_0x167bx36< _0x167bx34[_0x167bx35][_0x1c12[90]][_0x1c12[63]];_0x167bx36+= 1){_0x167bx30= _[_0x1c12[91]](_0x167bx30,[_0x167bx34[_0x167bx35][_0x1c12[90]][_0x167bx36][_0x1c12[78]]])}};return _0x167bx30}})[_0x1c12[45]](function(_0x167bx33){if(_0x167bx33){return db[_0x1c12[56]][_0x1c12[80]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})}})[_0x1c12[45]](function(_0x167bx32){if(_0x167bx32){_0x167bx31= _0x167bx32;return _0x167bx31[_0x1c12[95]](_0x167bx30)}})[_0x1c12[45]](function(_0x167bx18){if(_0x167bx31){return _0x167bx31[_0x1c12[94]](_0x167bx28[_0x1c12[58]][_0x1c12[87]])}})[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[94]))[_0x1c12[45]](respondWithStatusCode(_0x167bx15,null,_0x1c12[94]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[94]))};exports[_0x1c12[89]]= function(_0x167bx28,_0x167bx15,_0x167bx2c){return db[_0x1c12[56]][_0x1c12[80]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[89]))[_0x1c12[45]](function(_0x167bx18){if(_0x167bx18){return _0x167bx18[_0x1c12[89]](_0x167bx28[_0x1c12[82]][_0x1c12[87]],_[_0x1c12[96]](_0x167bx28[_0x1c12[82]],[_0x1c12[87],_0x1c12[78]])|| {})};return null})[_0x1c12[45]](respondWithResult(_0x167bx15,null,_0x1c12[89]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[89]))};exports[_0x1c12[95]]= function(_0x167bx28,_0x167bx15,_0x167bx2c){var _0x167bx2f;return db[_0x1c12[56]][_0x1c12[80]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})[_0x1c12[45]](handleEntityNotFound(_0x167bx15,null,_0x1c12[95]))[_0x1c12[45]](function(_0x167bx18){if(_0x167bx18){return _0x167bx18[_0x1c12[95]](_0x167bx28[_0x1c12[58]][_0x1c12[87]])}})[_0x1c12[45]](respondWithStatusCode(_0x167bx15,null,_0x1c12[95]))[_0x1c12[75]](handleError(_0x167bx15,null,_0x1c12[95]))};exports[_0x1c12[97]]= function(_0x167bx28,_0x167bx18,_0x167bx2c){var _0x167bx1b={};var _0x167bx29={};var _0x167bx2d;var _0x167bx1c;return db[_0x1c12[56]][_0x1c12[85]]({where:{id:_0x167bx28[_0x1c12[79]][_0x1c12[78]]}})[_0x1c12[45]](handleEntityNotFound(_0x167bx18,null,_0x1c12[97]))[_0x1c12[45]](function(_0x167bx18){if(_0x167bx18){_0x167bx2d= _0x167bx18;_0x167bx29[_0x1c12[54]]= _[_0x1c12[57]](db[_0x1c12[92]][_0x1c12[55]]);_0x167bx29[_0x1c12[58]]= _[_0x1c12[57]](_0x167bx28[_0x1c12[58]]);_0x167bx29[_0x1c12[59]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],_0x167bx29[_0x1c12[58]]);_0x167bx1b[_0x1c12[61]]= _[_0x1c12[60]](_0x167bx29[_0x1c12[54]],qs[_0x1c12[62]](_0x167bx28[_0x1c12[58]][_0x1c12[62]]));_0x167bx1b[_0x1c12[61]]= (_0x167bx1b[_0x1c12[61]][_0x1c12[63]])?_0x167bx1b[_0x1c12[61]]:_0x167bx29[_0x1c12[54]];_0x167bx1b[_0x1c12[66]]= qs[_0x1c12[67]](_0x167bx28[_0x1c12[58]][_0x1c12[67]]);_0x167bx1b[_0x1c12[68]]= qs[_0x1c12[59]](_[_0x1c12[69]](_0x167bx28[_0x1c12[58]],_0x167bx29[_0x1c12[59]]));if(_0x167bx28[_0x1c12[58]][_0x1c12[70]]){_0x167bx1b[_0x1c12[68]]= _[_0x1c12[73]](_0x167bx1b[_0x1c12[68]],{$or:_[_0x1c12[72]](_0x167bx1b[_0x1c12[61]],function(_0x167bx2a){var _0x167bx2b={};_0x167bx2b[_0x167bx2a]= {$like:_0x1c12[71]+ _0x167bx28[_0x1c12[58]][_0x1c12[70]]+ _0x1c12[71]};return _0x167bx2b})})};_0x167bx1b= _[_0x1c12[73]]({},_0x167bx1b,_0x167bx28[_0x1c12[74]]);return _0x167bx2d[_0x1c12[97]](_0x167bx1b)}})[_0x1c12[45]](function(_0x167bx2f){if(_0x167bx2f){_0x167bx1c= _0x167bx2f[_0x1c12[63]];if(!_0x167bx28[_0x1c12[58]][_0x1c12[65]](_0x1c12[64])){_0x167bx1b[_0x1c12[35]]= qs[_0x1c12[35]](_0x167bx28[_0x1c12[58]][_0x1c12[35]]);_0x167bx1b[_0x1c12[34]]= qs[_0x1c12[34]](_0x167bx28[_0x1c12[58]][_0x1c12[34]])};return _0x167bx2d[_0x1c12[97]](_0x167bx1b)}})[_0x1c12[45]](function(_0x167bx2e){return _0x167bx2e?{count:_0x167bx1c,rows:_0x167bx2e}:null})[_0x1c12[45]](respondWithResult(_0x167bx18,null,_0x1c12[97]))[_0x1c12[75]](handleError(_0x167bx18,null,_0x1c12[97]))}
\ No newline at end of file
index 51301d9..b79d988 100644 (file)
@@ -1 +1 @@
-var _0x42c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x42c7[0];var _=require(_0x42c7[1]);var util=require(_0x42c7[2]);var logger=require(_0x42c7[4])(_0x42c7[3]);var attributes=require(_0x42c7[5]);module[_0x42c7[6]]= function(_0x5f40x5,_0x5f40x6){return _0x5f40x5[_0x42c7[9]](_0x42c7[7],attributes,{tableName:_0x42c7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x24fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x24fc[0];var _=require(_0x24fc[1]);var util=require(_0x24fc[2]);var logger=require(_0x24fc[4])(_0x24fc[3]);var attributes=require(_0x24fc[5]);module[_0x24fc[6]]= function(_0xd005x5,_0xd005x6){return _0xd005x5[_0x24fc[9]](_0x24fc[7],attributes,{tableName:_0x24fc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index baebd52..012d0b5 100644 (file)
@@ -1 +1 @@
-var _0x5582=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5582[0];var _=require(_0x5582[1]);var util=require(_0x5582[2]);var moment=require(_0x5582[3]);var BPromise=require(_0x5582[4]);var db=require(_0x5582[6])[_0x5582[5]];var utils=require(_0x5582[7]);var logger=require(_0x5582[9])(_0x5582[8]);var jayson=require(_0x5582[10]);var client=jayson[_0x5582[12]][_0x5582[11]]({port:9002});function respondWithRpcPromise(_0xcb42xb,_0xcb42xc,_0xcb42xd){return  new BPromise(function(_0xcb42xe,_0xcb42xf){return client[_0x5582[25]](_0xcb42xb,_0xcb42xd)[_0x5582[24]](function(_0xcb42x11){logger[_0x5582[17]](_0x5582[13],_0xcb42xc,_0x5582[16]);logger[_0x5582[20]](_0x5582[18],_0xcb42xc,_0x5582[16],JSON[_0x5582[19]](_0xcb42x11));if(_0xcb42x11[_0x5582[14]]){if(_0xcb42x11[_0x5582[14]][_0x5582[21]]=== 500){logger[_0x5582[14]](_0x5582[13],_0xcb42xc,_0xcb42x11[_0x5582[14]][_0x5582[22]]);return _0xcb42xf(_0xcb42x11[_0x5582[14]][_0x5582[22]])};logger[_0x5582[14]](_0x5582[13],_0xcb42xc,_0xcb42x11[_0x5582[14]][_0x5582[22]]);return _0xcb42xe(_0xcb42x11[_0x5582[14]][_0x5582[22]])}else {logger[_0x5582[17]](_0x5582[13],_0xcb42xc,_0x5582[16]);_0xcb42xe(_0xcb42x11[_0x5582[23]][_0x5582[22]])}})[_0x5582[15]](function(_0xcb42x10){logger[_0x5582[14]](_0x5582[13],_0xcb42xc,_0xcb42x10);_0xcb42xf(_0xcb42x10)})})}
\ No newline at end of file
+var _0x4f94=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4f94[0];var _=require(_0x4f94[1]);var util=require(_0x4f94[2]);var moment=require(_0x4f94[3]);var BPromise=require(_0x4f94[4]);var db=require(_0x4f94[6])[_0x4f94[5]];var utils=require(_0x4f94[7]);var logger=require(_0x4f94[9])(_0x4f94[8]);var jayson=require(_0x4f94[10]);var client=jayson[_0x4f94[12]][_0x4f94[11]]({port:9002});function respondWithRpcPromise(_0x331fxb,_0x331fxc,_0x331fxd){return  new BPromise(function(_0x331fxe,_0x331fxf){return client[_0x4f94[25]](_0x331fxb,_0x331fxd)[_0x4f94[24]](function(_0x331fx11){logger[_0x4f94[17]](_0x4f94[13],_0x331fxc,_0x4f94[16]);logger[_0x4f94[20]](_0x4f94[18],_0x331fxc,_0x4f94[16],JSON[_0x4f94[19]](_0x331fx11));if(_0x331fx11[_0x4f94[14]]){if(_0x331fx11[_0x4f94[14]][_0x4f94[21]]=== 500){logger[_0x4f94[14]](_0x4f94[13],_0x331fxc,_0x331fx11[_0x4f94[14]][_0x4f94[22]]);return _0x331fxf(_0x331fx11[_0x4f94[14]][_0x4f94[22]])};logger[_0x4f94[14]](_0x4f94[13],_0x331fxc,_0x331fx11[_0x4f94[14]][_0x4f94[22]]);return _0x331fxe(_0x331fx11[_0x4f94[14]][_0x4f94[22]])}else {logger[_0x4f94[17]](_0x4f94[13],_0x331fxc,_0x4f94[16]);_0x331fxe(_0x331fx11[_0x4f94[23]][_0x4f94[22]])}})[_0x4f94[15]](function(_0x331fx10){logger[_0x4f94[14]](_0x4f94[13],_0x331fxc,_0x331fx10);_0x331fxf(_0x331fx10)})})}
\ No newline at end of file
index a5ba80a..e86d367 100644 (file)
@@ -1 +1 @@
-var _0x7101=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7101[0];var multer=require(_0x7101[1]);var util=require(_0x7101[2]);var path=require(_0x7101[3]);var express=require(_0x7101[4]);var router=express.Router();var auth=require(_0x7101[5]);var config=require(_0x7101[6]);var controller=require(_0x7101[7]);router[_0x7101[11]](_0x7101[8],auth[_0x7101[9]](),controller[_0x7101[10]]);router[_0x7101[11]](_0x7101[12],auth[_0x7101[9]](),controller[_0x7101[13]]);router[_0x7101[15]](_0x7101[8],auth[_0x7101[9]](),controller[_0x7101[14]]);router[_0x7101[17]](_0x7101[12],auth[_0x7101[9]](),controller[_0x7101[16]]);router[_0x7101[19]](_0x7101[12],auth[_0x7101[9]](),controller[_0x7101[18]]);module[_0x7101[20]]= router
\ No newline at end of file
+var _0x3b3e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3b3e[0];var multer=require(_0x3b3e[1]);var util=require(_0x3b3e[2]);var path=require(_0x3b3e[3]);var express=require(_0x3b3e[4]);var router=express.Router();var auth=require(_0x3b3e[5]);var config=require(_0x3b3e[6]);var controller=require(_0x3b3e[7]);router[_0x3b3e[11]](_0x3b3e[8],auth[_0x3b3e[9]](),controller[_0x3b3e[10]]);router[_0x3b3e[11]](_0x3b3e[12],auth[_0x3b3e[9]](),controller[_0x3b3e[13]]);router[_0x3b3e[15]](_0x3b3e[8],auth[_0x3b3e[9]](),controller[_0x3b3e[14]]);router[_0x3b3e[17]](_0x3b3e[12],auth[_0x3b3e[9]](),controller[_0x3b3e[16]]);router[_0x3b3e[19]](_0x3b3e[12],auth[_0x3b3e[9]](),controller[_0x3b3e[18]]);module[_0x3b3e[20]]= router
\ No newline at end of file
index 99ee576..de9ceb2 100644 (file)
@@ -1 +1 @@
-var _0xf5ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xf5ad[0];var Sequelize=require(_0xf5ad[1]);var moment=require(_0xf5ad[2]);module[_0xf5ad[3]]= {sourceid:{type:Sequelize[_0xf5ad[4]]},uniqueid:{type:Sequelize[_0xf5ad[5]]},timeslot:{type:Sequelize[_0xf5ad[4]]},subject:{type:Sequelize[_0xf5ad[5]]},accountid:{type:Sequelize[_0xf5ad[5]]},accountname:{type:Sequelize[_0xf5ad[5]]},accountaddress:{type:Sequelize[_0xf5ad[5]]},application:{type:Sequelize[_0xf5ad[5]]},memberid:{type:Sequelize[_0xf5ad[4]]},membername:{type:Sequelize[_0xf5ad[5]]},queue:{type:Sequelize[_0xf5ad[4]]},queuename:{type:Sequelize[_0xf5ad[5]]},roomid:{type:Sequelize[_0xf5ad[4]]},messageid:{type:Sequelize[_0xf5ad[4]]},reason:{type:Sequelize[_0xf5ad[5]],defaultValue:_0xf5ad[6]},connectid:{type:Sequelize[_0xf5ad[5]],unique:_0xf5ad[7],set:function(_0xcb4cx3){this[_0xf5ad[8]](_0xf5ad[7],_0xcb4cx3);this[_0xf5ad[8]](_0xf5ad[9],_0xf5ad[10]);this[_0xf5ad[8]](_0xf5ad[11],moment()[_0xf5ad[13]](_0xf5ad[12]))}},calledAt:{type:Sequelize[_0xf5ad[14]]},rejectedAt:{type:Sequelize[_0xf5ad[14]],set:function(_0xcb4cx4){this[_0xf5ad[8]](_0xf5ad[15],_0xcb4cx4);this[_0xf5ad[8]](_0xf5ad[9],_0xf5ad[16])}},connectedAt:{type:Sequelize[_0xf5ad[14]]},from:{type:Sequelize[_0xf5ad[5]]}}
\ No newline at end of file
+var _0xb378=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xb378[0];var Sequelize=require(_0xb378[1]);var moment=require(_0xb378[2]);module[_0xb378[3]]= {sourceid:{type:Sequelize[_0xb378[4]]},uniqueid:{type:Sequelize[_0xb378[5]]},timeslot:{type:Sequelize[_0xb378[4]]},subject:{type:Sequelize[_0xb378[5]]},accountid:{type:Sequelize[_0xb378[5]]},accountname:{type:Sequelize[_0xb378[5]]},accountaddress:{type:Sequelize[_0xb378[5]]},application:{type:Sequelize[_0xb378[5]]},memberid:{type:Sequelize[_0xb378[4]]},membername:{type:Sequelize[_0xb378[5]]},queue:{type:Sequelize[_0xb378[4]]},queuename:{type:Sequelize[_0xb378[5]]},roomid:{type:Sequelize[_0xb378[4]]},messageid:{type:Sequelize[_0xb378[4]]},reason:{type:Sequelize[_0xb378[5]],defaultValue:_0xb378[6]},connectid:{type:Sequelize[_0xb378[5]],unique:_0xb378[7],set:function(_0xd2c9x3){this[_0xb378[8]](_0xb378[7],_0xd2c9x3);this[_0xb378[8]](_0xb378[9],_0xb378[10]);this[_0xb378[8]](_0xb378[11],moment()[_0xb378[13]](_0xb378[12]))}},calledAt:{type:Sequelize[_0xb378[14]]},rejectedAt:{type:Sequelize[_0xb378[14]],set:function(_0xd2c9x4){this[_0xb378[8]](_0xb378[15],_0xd2c9x4);this[_0xb378[8]](_0xb378[9],_0xb378[16])}},connectedAt:{type:Sequelize[_0xb378[14]]},from:{type:Sequelize[_0xb378[5]]}}
\ No newline at end of file
index 640e418..7e76efd 100644 (file)
@@ -1 +1 @@
-var _0xc805=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xc805[0];var jsonpatch=require(_0xc805[1]);var rp=require(_0xc805[2]);var moment=require(_0xc805[3]);var BPromise=require(_0xc805[4]);var util=require(_0xc805[5]);var path=require(_0xc805[6]);var sox=require(_0xc805[7]);var ejs=require(_0xc805[8]);var fs=require(_0xc805[9]);var _=require(_0xc805[10]);var squel=require(_0xc805[11]);var crypto=require(_0xc805[12]);var jsforce=require(_0xc805[13]);var toCsv=require(_0xc805[14]);var qs=require(_0xc805[15]);var logger=require(_0xc805[17])(_0xc805[16]);var utils=require(_0xc805[18]);var config=require(_0xc805[19]);var db=require(_0xc805[21])[_0xc805[20]];function respondWithStatusCode(_0x79cex15,_0x79cex16,_0x79cex17){_0x79cex16= _0x79cex16|| 204;return function(_0x79cex18){if(_0x79cex18){logger[_0xc805[24]](_0xc805[22],_0x79cex17,_0x79cex16,_0xc805[23]);logger[_0xc805[26]](_0xc805[25],_0x79cex17,_0x79cex16,_0xc805[23]);return _0x79cex15[_0xc805[27]](_0x79cex16)};return _0x79cex15[_0xc805[29]](304)[_0xc805[28]]()}}function respondWithResult(_0x79cex15,_0x79cex16,_0x79cex17){_0x79cex16= _0x79cex16|| 200;return function(_0x79cex18){if(_0x79cex18){logger[_0xc805[24]](_0xc805[22],_0x79cex17,_0x79cex16,_0xc805[30]);logger[_0xc805[26]](_0xc805[25],_0x79cex17,_0x79cex16,_0xc805[30],JSON[_0xc805[31]](_0x79cex18));return _0x79cex15[_0xc805[29]](_0x79cex16)[_0xc805[32]](_0x79cex18)};return _0x79cex15[_0xc805[29]](304)[_0xc805[28]]()}}function respondWithFilteredResult(_0x79cex15,_0x79cex1b,_0x79cex17){return function(_0x79cex18){if(_0x79cex18){var _0x79cex1c=_0x79cex18[_0xc805[33]],_0x79cex1d=_0x79cex1b[_0xc805[34]],_0x79cex1e=_0x79cex1b[_0xc805[34]]+ _0x79cex1b[_0xc805[35]],_0x79cex16;if(_0x79cex1e>= _0x79cex1c){_0x79cex1e= _0x79cex1c;_0x79cex16= 200}else {_0x79cex16= 206};_0x79cex15[_0xc805[29]](_0x79cex16);logger[_0xc805[24]](_0xc805[22],_0x79cex17,_0x79cex16,_0xc805[36]);logger[_0xc805[26]](_0xc805[25],_0x79cex17,_0x79cex16,_0xc805[30],JSON[_0xc805[31]](_0x79cex18));return _0x79cex15[_0xc805[40]](_0xc805[37],_0x79cex1d+ _0xc805[38]+ _0x79cex1e+ _0xc805[39]+ _0x79cex1c)[_0xc805[32]](_0x79cex18)};return null}}function patchUpdates(_0x79cex20){return function(_0x79cex18){try{jsonpatch[_0xc805[41]](_0x79cex18,_0x79cex20,true)}catch(err){return BPromise[_0xc805[42]](err)};return _0x79cex18[_0xc805[43]]()}}function saveUpdates(_0x79cex22,_0x79cex16,_0x79cex17){return function(_0x79cex18){if(_0x79cex18){return _0x79cex18[_0xc805[46]](_0x79cex22)[_0xc805[45]](function(_0x79cex23){logger[_0xc805[24]](_0xc805[22],_0x79cex17,_0x79cex16,_0xc805[44]);logger[_0xc805[26]](_0xc805[25],_0x79cex17,_0x79cex16,_0xc805[44],JSON[_0xc805[31]](_0x79cex18));return _0x79cex23})};return null}}function removeEntity(_0x79cex15,_0x79cex16,_0x79cex17){return function(_0x79cex18){if(_0x79cex18){return _0x79cex18[_0xc805[48]]()[_0xc805[45]](function(){logger[_0xc805[24]](_0xc805[22],_0x79cex17,_0x79cex16,_0xc805[47]);logger[_0xc805[26]](_0xc805[25],_0x79cex17,_0x79cex16,_0xc805[47],JSON[_0xc805[31]](_0x79cex18));_0x79cex15[_0xc805[29]](204)[_0xc805[28]]()})}}}function handleEntityNotFound(_0x79cex15,_0x79cex16,_0x79cex17){return function(_0x79cex18){if(!_0x79cex18){logger[_0xc805[50]](_0xc805[22],_0x79cex17,404,_0xc805[49]);_0x79cex15[_0xc805[29]](404)[_0xc805[28]]();return null};return _0x79cex18}}function handleError(_0x79cex15,_0x79cex16,_0x79cex17){_0x79cex16= _0x79cex16|| 500;return function(_0x79cex27){logger[_0xc805[50]](_0xc805[22],_0x79cex17,_0x79cex16,JSON[_0xc805[31]](_0x79cex27));delete _0x79cex27[_0xc805[51]];_0x79cex15[_0xc805[29]](_0x79cex16)[_0xc805[52]](_0x79cex27)}}exports[_0xc805[53]]= function(_0x79cex28,_0x79cex15){var _0x79cex1b={},_0x79cex29={};_0x79cex29[_0xc805[54]]= _[_0xc805[57]](db[_0xc805[56]][_0xc805[55]]);_0x79cex29[_0xc805[58]]= _[_0xc805[57]](_0x79cex28[_0xc805[58]]);_0x79cex29[_0xc805[59]]= _[_0xc805[60]](_0x79cex29[_0xc805[54]],_0x79cex29[_0xc805[58]]);_0x79cex1b[_0xc805[61]]= _[_0xc805[60]](_0x79cex29[_0xc805[54]],qs[_0xc805[62]](_0x79cex28[_0xc805[58]][_0xc805[62]]));_0x79cex1b[_0xc805[61]]= (_0x79cex1b[_0xc805[61]][_0xc805[63]])?_0x79cex1b[_0xc805[61]]:_0x79cex29[_0xc805[54]];if(!_0x79cex28[_0xc805[58]][_0xc805[65]](_0xc805[64])){_0x79cex1b[_0xc805[35]]= qs[_0xc805[35]](_0x79cex28[_0xc805[58]][_0xc805[35]]);_0x79cex1b[_0xc805[34]]= qs[_0xc805[34]](_0x79cex28[_0xc805[58]][_0xc805[34]])};_0x79cex1b[_0xc805[66]]= qs[_0xc805[67]](_0x79cex28[_0xc805[58]][_0xc805[67]]);_0x79cex1b[_0xc805[68]]= qs[_0xc805[59]](_[_0xc805[69]](_0x79cex28[_0xc805[58]],_0x79cex29[_0xc805[59]]));if(_0x79cex28[_0xc805[58]][_0xc805[70]]){_0x79cex1b[_0xc805[68]]= _[_0xc805[73]](_0x79cex1b[_0xc805[68]],{$or:_[_0xc805[72]](_0x79cex1b[_0xc805[61]],function(_0x79cex2a){var _0x79cex2b={};_0x79cex2b[_0x79cex2a]= {$like:_0xc805[71]+ _0x79cex28[_0xc805[58]][_0xc805[70]]+ _0xc805[71]};return _0x79cex2b})})};_0x79cex1b= _[_0xc805[73]]({},_0x79cex1b,_0x79cex28[_0xc805[74]]);return db[_0xc805[56]][_0xc805[76]](_0x79cex1b)[_0xc805[45]](respondWithFilteredResult(_0x79cex15,_0x79cex1b,_0xc805[53]))[_0xc805[75]](handleError(_0x79cex15,null,_0xc805[53]))};exports[_0xc805[77]]= function(_0x79cex28,_0x79cex15){var _0x79cex1b={raw:true,where:{id:_0x79cex28[_0xc805[79]][_0xc805[78]]}},_0x79cex29={};_0x79cex29[_0xc805[54]]= _[_0xc805[57]](db[_0xc805[56]][_0xc805[55]]);_0x79cex29[_0xc805[58]]= _[_0xc805[57]](_0x79cex28[_0xc805[58]]);_0x79cex29[_0xc805[59]]= _[_0xc805[60]](_0x79cex29[_0xc805[54]],_0x79cex29[_0xc805[58]]);_0x79cex1b[_0xc805[61]]= _[_0xc805[60]](_0x79cex29[_0xc805[54]],qs[_0xc805[62]](_0x79cex28[_0xc805[58]][_0xc805[62]]));_0x79cex1b[_0xc805[61]]= (_0x79cex1b[_0xc805[61]][_0xc805[63]])?_0x79cex1b[_0xc805[61]]:_0x79cex29[_0xc805[54]];_0x79cex1b= _[_0xc805[73]]({},_0x79cex1b,_0x79cex28[_0xc805[74]]);return db[_0xc805[56]][_0xc805[80]](_0x79cex1b)[_0xc805[45]](handleEntityNotFound(_0x79cex15,null,_0xc805[77]))[_0xc805[45]](respondWithResult(_0x79cex15,null,_0xc805[77]))[_0xc805[75]](handleError(_0x79cex15,null,_0xc805[77]))};exports[_0xc805[81]]= function(_0x79cex28,_0x79cex15){return db[_0xc805[56]][_0xc805[81]](_0x79cex28[_0xc805[82]],{})[_0xc805[45]](respondWithResult(_0x79cex15,201,_0xc805[81]))[_0xc805[75]](handleError(_0x79cex15,null,_0xc805[81]))};exports[_0xc805[46]]= function(_0x79cex28,_0x79cex15){if(_0x79cex28[_0xc805[82]][_0xc805[78]]){delete _0x79cex28[_0xc805[82]][_0xc805[78]]};return db[_0xc805[56]][_0xc805[80]]({where:{id:_0x79cex28[_0xc805[79]][_0xc805[78]]}})[_0xc805[45]](handleEntityNotFound(_0x79cex15,null,_0xc805[46]))[_0xc805[45]](saveUpdates(_0x79cex28[_0xc805[82]],null,_0xc805[46]))[_0xc805[45]](respondWithResult(_0x79cex15,null,_0xc805[46]))[_0xc805[75]](handleError(_0x79cex15,null,_0xc805[46]))};exports[_0xc805[48]]= function(_0x79cex28,_0x79cex15){return db[_0xc805[56]][_0xc805[80]]({where:{id:_0x79cex28[_0xc805[79]][_0xc805[78]]}})[_0xc805[45]](handleEntityNotFound(_0x79cex15,null,_0xc805[48]))[_0xc805[45]](removeEntity(_0x79cex15,null,_0xc805[48]))[_0xc805[75]](handleError(_0x79cex15,null,_0xc805[48]))}
\ No newline at end of file
+var _0x6479=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x6479[0];var jsonpatch=require(_0x6479[1]);var rp=require(_0x6479[2]);var moment=require(_0x6479[3]);var BPromise=require(_0x6479[4]);var util=require(_0x6479[5]);var path=require(_0x6479[6]);var sox=require(_0x6479[7]);var ejs=require(_0x6479[8]);var fs=require(_0x6479[9]);var _=require(_0x6479[10]);var squel=require(_0x6479[11]);var crypto=require(_0x6479[12]);var jsforce=require(_0x6479[13]);var toCsv=require(_0x6479[14]);var qs=require(_0x6479[15]);var logger=require(_0x6479[17])(_0x6479[16]);var utils=require(_0x6479[18]);var config=require(_0x6479[19]);var db=require(_0x6479[21])[_0x6479[20]];function respondWithStatusCode(_0x1fa7x15,_0x1fa7x16,_0x1fa7x17){_0x1fa7x16= _0x1fa7x16|| 204;return function(_0x1fa7x18){if(_0x1fa7x18){logger[_0x6479[24]](_0x6479[22],_0x1fa7x17,_0x1fa7x16,_0x6479[23]);logger[_0x6479[26]](_0x6479[25],_0x1fa7x17,_0x1fa7x16,_0x6479[23]);return _0x1fa7x15[_0x6479[27]](_0x1fa7x16)};return _0x1fa7x15[_0x6479[29]](304)[_0x6479[28]]()}}function respondWithResult(_0x1fa7x15,_0x1fa7x16,_0x1fa7x17){_0x1fa7x16= _0x1fa7x16|| 200;return function(_0x1fa7x18){if(_0x1fa7x18){logger[_0x6479[24]](_0x6479[22],_0x1fa7x17,_0x1fa7x16,_0x6479[30]);logger[_0x6479[26]](_0x6479[25],_0x1fa7x17,_0x1fa7x16,_0x6479[30],JSON[_0x6479[31]](_0x1fa7x18));return _0x1fa7x15[_0x6479[29]](_0x1fa7x16)[_0x6479[32]](_0x1fa7x18)};return _0x1fa7x15[_0x6479[29]](304)[_0x6479[28]]()}}function respondWithFilteredResult(_0x1fa7x15,_0x1fa7x1b,_0x1fa7x17){return function(_0x1fa7x18){if(_0x1fa7x18){var _0x1fa7x1c=_0x1fa7x18[_0x6479[33]],_0x1fa7x1d=_0x1fa7x1b[_0x6479[34]],_0x1fa7x1e=_0x1fa7x1b[_0x6479[34]]+ _0x1fa7x1b[_0x6479[35]],_0x1fa7x16;if(_0x1fa7x1e>= _0x1fa7x1c){_0x1fa7x1e= _0x1fa7x1c;_0x1fa7x16= 200}else {_0x1fa7x16= 206};_0x1fa7x15[_0x6479[29]](_0x1fa7x16);logger[_0x6479[24]](_0x6479[22],_0x1fa7x17,_0x1fa7x16,_0x6479[36]);logger[_0x6479[26]](_0x6479[25],_0x1fa7x17,_0x1fa7x16,_0x6479[30],JSON[_0x6479[31]](_0x1fa7x18));return _0x1fa7x15[_0x6479[40]](_0x6479[37],_0x1fa7x1d+ _0x6479[38]+ _0x1fa7x1e+ _0x6479[39]+ _0x1fa7x1c)[_0x6479[32]](_0x1fa7x18)};return null}}function patchUpdates(_0x1fa7x20){return function(_0x1fa7x18){try{jsonpatch[_0x6479[41]](_0x1fa7x18,_0x1fa7x20,true)}catch(err){return BPromise[_0x6479[42]](err)};return _0x1fa7x18[_0x6479[43]]()}}function saveUpdates(_0x1fa7x22,_0x1fa7x16,_0x1fa7x17){return function(_0x1fa7x18){if(_0x1fa7x18){return _0x1fa7x18[_0x6479[46]](_0x1fa7x22)[_0x6479[45]](function(_0x1fa7x23){logger[_0x6479[24]](_0x6479[22],_0x1fa7x17,_0x1fa7x16,_0x6479[44]);logger[_0x6479[26]](_0x6479[25],_0x1fa7x17,_0x1fa7x16,_0x6479[44],JSON[_0x6479[31]](_0x1fa7x18));return _0x1fa7x23})};return null}}function removeEntity(_0x1fa7x15,_0x1fa7x16,_0x1fa7x17){return function(_0x1fa7x18){if(_0x1fa7x18){return _0x1fa7x18[_0x6479[48]]()[_0x6479[45]](function(){logger[_0x6479[24]](_0x6479[22],_0x1fa7x17,_0x1fa7x16,_0x6479[47]);logger[_0x6479[26]](_0x6479[25],_0x1fa7x17,_0x1fa7x16,_0x6479[47],JSON[_0x6479[31]](_0x1fa7x18));_0x1fa7x15[_0x6479[29]](204)[_0x6479[28]]()})}}}function handleEntityNotFound(_0x1fa7x15,_0x1fa7x16,_0x1fa7x17){return function(_0x1fa7x18){if(!_0x1fa7x18){logger[_0x6479[50]](_0x6479[22],_0x1fa7x17,404,_0x6479[49]);_0x1fa7x15[_0x6479[29]](404)[_0x6479[28]]();return null};return _0x1fa7x18}}function handleError(_0x1fa7x15,_0x1fa7x16,_0x1fa7x17){_0x1fa7x16= _0x1fa7x16|| 500;return function(_0x1fa7x27){logger[_0x6479[50]](_0x6479[22],_0x1fa7x17,_0x1fa7x16,JSON[_0x6479[31]](_0x1fa7x27));delete _0x1fa7x27[_0x6479[51]];_0x1fa7x15[_0x6479[29]](_0x1fa7x16)[_0x6479[52]](_0x1fa7x27)}}exports[_0x6479[53]]= function(_0x1fa7x28,_0x1fa7x15){var _0x1fa7x1b={},_0x1fa7x29={};_0x1fa7x29[_0x6479[54]]= _[_0x6479[57]](db[_0x6479[56]][_0x6479[55]]);_0x1fa7x29[_0x6479[58]]= _[_0x6479[57]](_0x1fa7x28[_0x6479[58]]);_0x1fa7x29[_0x6479[59]]= _[_0x6479[60]](_0x1fa7x29[_0x6479[54]],_0x1fa7x29[_0x6479[58]]);_0x1fa7x1b[_0x6479[61]]= _[_0x6479[60]](_0x1fa7x29[_0x6479[54]],qs[_0x6479[62]](_0x1fa7x28[_0x6479[58]][_0x6479[62]]));_0x1fa7x1b[_0x6479[61]]= (_0x1fa7x1b[_0x6479[61]][_0x6479[63]])?_0x1fa7x1b[_0x6479[61]]:_0x1fa7x29[_0x6479[54]];if(!_0x1fa7x28[_0x6479[58]][_0x6479[65]](_0x6479[64])){_0x1fa7x1b[_0x6479[35]]= qs[_0x6479[35]](_0x1fa7x28[_0x6479[58]][_0x6479[35]]);_0x1fa7x1b[_0x6479[34]]= qs[_0x6479[34]](_0x1fa7x28[_0x6479[58]][_0x6479[34]])};_0x1fa7x1b[_0x6479[66]]= qs[_0x6479[67]](_0x1fa7x28[_0x6479[58]][_0x6479[67]]);_0x1fa7x1b[_0x6479[68]]= qs[_0x6479[59]](_[_0x6479[69]](_0x1fa7x28[_0x6479[58]],_0x1fa7x29[_0x6479[59]]));if(_0x1fa7x28[_0x6479[58]][_0x6479[70]]){_0x1fa7x1b[_0x6479[68]]= _[_0x6479[73]](_0x1fa7x1b[_0x6479[68]],{$or:_[_0x6479[72]](_0x1fa7x1b[_0x6479[61]],function(_0x1fa7x2a){var _0x1fa7x2b={};_0x1fa7x2b[_0x1fa7x2a]= {$like:_0x6479[71]+ _0x1fa7x28[_0x6479[58]][_0x6479[70]]+ _0x6479[71]};return _0x1fa7x2b})})};_0x1fa7x1b= _[_0x6479[73]]({},_0x1fa7x1b,_0x1fa7x28[_0x6479[74]]);return db[_0x6479[56]][_0x6479[76]](_0x1fa7x1b)[_0x6479[45]](respondWithFilteredResult(_0x1fa7x15,_0x1fa7x1b,_0x6479[53]))[_0x6479[75]](handleError(_0x1fa7x15,null,_0x6479[53]))};exports[_0x6479[77]]= function(_0x1fa7x28,_0x1fa7x15){var _0x1fa7x1b={raw:true,where:{id:_0x1fa7x28[_0x6479[79]][_0x6479[78]]}},_0x1fa7x29={};_0x1fa7x29[_0x6479[54]]= _[_0x6479[57]](db[_0x6479[56]][_0x6479[55]]);_0x1fa7x29[_0x6479[58]]= _[_0x6479[57]](_0x1fa7x28[_0x6479[58]]);_0x1fa7x29[_0x6479[59]]= _[_0x6479[60]](_0x1fa7x29[_0x6479[54]],_0x1fa7x29[_0x6479[58]]);_0x1fa7x1b[_0x6479[61]]= _[_0x6479[60]](_0x1fa7x29[_0x6479[54]],qs[_0x6479[62]](_0x1fa7x28[_0x6479[58]][_0x6479[62]]));_0x1fa7x1b[_0x6479[61]]= (_0x1fa7x1b[_0x6479[61]][_0x6479[63]])?_0x1fa7x1b[_0x6479[61]]:_0x1fa7x29[_0x6479[54]];_0x1fa7x1b= _[_0x6479[73]]({},_0x1fa7x1b,_0x1fa7x28[_0x6479[74]]);return db[_0x6479[56]][_0x6479[80]](_0x1fa7x1b)[_0x6479[45]](handleEntityNotFound(_0x1fa7x15,null,_0x6479[77]))[_0x6479[45]](respondWithResult(_0x1fa7x15,null,_0x6479[77]))[_0x6479[75]](handleError(_0x1fa7x15,null,_0x6479[77]))};exports[_0x6479[81]]= function(_0x1fa7x28,_0x1fa7x15){return db[_0x6479[56]][_0x6479[81]](_0x1fa7x28[_0x6479[82]],{})[_0x6479[45]](respondWithResult(_0x1fa7x15,201,_0x6479[81]))[_0x6479[75]](handleError(_0x1fa7x15,null,_0x6479[81]))};exports[_0x6479[46]]= function(_0x1fa7x28,_0x1fa7x15){if(_0x1fa7x28[_0x6479[82]][_0x6479[78]]){delete _0x1fa7x28[_0x6479[82]][_0x6479[78]]};return db[_0x6479[56]][_0x6479[80]]({where:{id:_0x1fa7x28[_0x6479[79]][_0x6479[78]]}})[_0x6479[45]](handleEntityNotFound(_0x1fa7x15,null,_0x6479[46]))[_0x6479[45]](saveUpdates(_0x1fa7x28[_0x6479[82]],null,_0x6479[46]))[_0x6479[45]](respondWithResult(_0x1fa7x15,null,_0x6479[46]))[_0x6479[75]](handleError(_0x1fa7x15,null,_0x6479[46]))};exports[_0x6479[48]]= function(_0x1fa7x28,_0x1fa7x15){return db[_0x6479[56]][_0x6479[80]]({where:{id:_0x1fa7x28[_0x6479[79]][_0x6479[78]]}})[_0x6479[45]](handleEntityNotFound(_0x1fa7x15,null,_0x6479[48]))[_0x6479[45]](removeEntity(_0x1fa7x15,null,_0x6479[48]))[_0x6479[75]](handleError(_0x1fa7x15,null,_0x6479[48]))}
\ No newline at end of file
index 7a216c2..10139d5 100644 (file)
@@ -1 +1 @@
-var _0xb155=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x64\x65\x66\x69\x6E\x65"];_0xb155[0];var _=require(_0xb155[1]);var util=require(_0xb155[2]);var logger=require(_0xb155[4])(_0xb155[3]);var attributes=require(_0xb155[5]);module[_0xb155[6]]= function(_0xff37x5,_0xff37x6){return _0xff37x5[_0xb155[9]](_0xb155[7],attributes,{tableName:_0xb155[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xaf87=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x64\x65\x66\x69\x6E\x65"];_0xaf87[0];var _=require(_0xaf87[1]);var util=require(_0xaf87[2]);var logger=require(_0xaf87[4])(_0xaf87[3]);var attributes=require(_0xaf87[5]);module[_0xaf87[6]]= function(_0xfff4x5,_0xfff4x6){return _0xfff4x5[_0xaf87[9]](_0xaf87[7],attributes,{tableName:_0xaf87[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index f93b9c3..5faa8e8 100644 (file)
@@ -1 +1 @@
-var _0x84ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x84ae[0];var _=require(_0x84ae[1]);var util=require(_0x84ae[2]);var moment=require(_0x84ae[3]);var BPromise=require(_0x84ae[4]);var db=require(_0x84ae[6])[_0x84ae[5]];var utils=require(_0x84ae[7]);var logger=require(_0x84ae[9])(_0x84ae[8]);var jayson=require(_0x84ae[10]);var client=jayson[_0x84ae[12]][_0x84ae[11]]({port:9002});function respondWithRpcPromise(_0x18aexb,_0x18aexc,_0x18aexd){return  new BPromise(function(_0x18aexe,_0x18aexf){return client[_0x84ae[25]](_0x18aexb,_0x18aexd)[_0x84ae[24]](function(_0x18aex11){logger[_0x84ae[17]](_0x84ae[13],_0x18aexc,_0x84ae[16]);logger[_0x84ae[20]](_0x84ae[18],_0x18aexc,_0x84ae[16],JSON[_0x84ae[19]](_0x18aex11));if(_0x18aex11[_0x84ae[14]]){if(_0x18aex11[_0x84ae[14]][_0x84ae[21]]=== 500){logger[_0x84ae[14]](_0x84ae[13],_0x18aexc,_0x18aex11[_0x84ae[14]][_0x84ae[22]]);return _0x18aexf(_0x18aex11[_0x84ae[14]][_0x84ae[22]])};logger[_0x84ae[14]](_0x84ae[13],_0x18aexc,_0x18aex11[_0x84ae[14]][_0x84ae[22]]);return _0x18aexe(_0x18aex11[_0x84ae[14]][_0x84ae[22]])}else {logger[_0x84ae[17]](_0x84ae[13],_0x18aexc,_0x84ae[16]);_0x18aexe(_0x18aex11[_0x84ae[23]][_0x84ae[22]])}})[_0x84ae[15]](function(_0x18aex10){logger[_0x84ae[14]](_0x84ae[13],_0x18aexc,_0x18aex10);_0x18aexf(_0x18aex10)})})}
\ No newline at end of file
+var _0xd1a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd1a1[0];var _=require(_0xd1a1[1]);var util=require(_0xd1a1[2]);var moment=require(_0xd1a1[3]);var BPromise=require(_0xd1a1[4]);var db=require(_0xd1a1[6])[_0xd1a1[5]];var utils=require(_0xd1a1[7]);var logger=require(_0xd1a1[9])(_0xd1a1[8]);var jayson=require(_0xd1a1[10]);var client=jayson[_0xd1a1[12]][_0xd1a1[11]]({port:9002});function respondWithRpcPromise(_0xa8c6xb,_0xa8c6xc,_0xa8c6xd){return  new BPromise(function(_0xa8c6xe,_0xa8c6xf){return client[_0xd1a1[25]](_0xa8c6xb,_0xa8c6xd)[_0xd1a1[24]](function(_0xa8c6x11){logger[_0xd1a1[17]](_0xd1a1[13],_0xa8c6xc,_0xd1a1[16]);logger[_0xd1a1[20]](_0xd1a1[18],_0xa8c6xc,_0xd1a1[16],JSON[_0xd1a1[19]](_0xa8c6x11));if(_0xa8c6x11[_0xd1a1[14]]){if(_0xa8c6x11[_0xd1a1[14]][_0xd1a1[21]]=== 500){logger[_0xd1a1[14]](_0xd1a1[13],_0xa8c6xc,_0xa8c6x11[_0xd1a1[14]][_0xd1a1[22]]);return _0xa8c6xf(_0xa8c6x11[_0xd1a1[14]][_0xd1a1[22]])};logger[_0xd1a1[14]](_0xd1a1[13],_0xa8c6xc,_0xa8c6x11[_0xd1a1[14]][_0xd1a1[22]]);return _0xa8c6xe(_0xa8c6x11[_0xd1a1[14]][_0xd1a1[22]])}else {logger[_0xd1a1[17]](_0xd1a1[13],_0xa8c6xc,_0xd1a1[16]);_0xa8c6xe(_0xa8c6x11[_0xd1a1[23]][_0xd1a1[22]])}})[_0xd1a1[15]](function(_0xa8c6x10){logger[_0xd1a1[14]](_0xd1a1[13],_0xa8c6xc,_0xa8c6x10);_0xa8c6xf(_0xa8c6x10)})})}
\ No newline at end of file
index c1f81ef..9cd4f47 100644 (file)
@@ -1 +1 @@
-var _0x3909=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x3909[0];var multer=require(_0x3909[1]);var util=require(_0x3909[2]);var path=require(_0x3909[3]);var express=require(_0x3909[4]);var router=express.Router();var auth=require(_0x3909[5]);var config=require(_0x3909[6]);module[_0x3909[7]]= router
\ No newline at end of file
+var _0xfc4c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xfc4c[0];var multer=require(_0xfc4c[1]);var util=require(_0xfc4c[2]);var path=require(_0xfc4c[3]);var express=require(_0xfc4c[4]);var router=express.Router();var auth=require(_0xfc4c[5]);var config=require(_0xfc4c[6]);module[_0xfc4c[7]]= router
\ No newline at end of file
index 9c93661..eb529fe 100644 (file)
@@ -1 +1 @@
-var _0x7707=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x50\x4F\x50\x33","\x43\x4F\x4E\x4E\x45\x43\x54\x49\x4E\x47","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x63\x6F\x6E\x6E\x54\x69\x6D\x65\x6F\x75\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x75\x74\x68\x54\x69\x6D\x65\x6F\x75\x74"];_0x7707[0];var Sequelize=require(_0x7707[1]);module[_0x7707[2]]= {description:{type:Sequelize[_0x7707[3]]},host:{type:Sequelize[_0x7707[3]]},username:{type:Sequelize[_0x7707[3]],unique:_0x7707[4]},password:{type:Sequelize[_0x7707[3]]},port:{type:Sequelize[_0x7707[5]]},mailbox:{type:Sequelize[_0x7707[3]]},ssl:{type:Sequelize[_0x7707[6]],defaultValue:false},delete:{type:Sequelize[_0x7707[6]],defaultValue:false},filter:{type:Sequelize.ENUM(_0x7707[7]),defaultValue:_0x7707[7]},protocol:{type:Sequelize.ENUM(_0x7707[8],_0x7707[9]),defaultValue:_0x7707[8]},state:{type:Sequelize.ENUM(_0x7707[10],_0x7707[11],_0x7707[12],_0x7707[13],_0x7707[14]),defaultValue:_0x7707[14]},source:{type:Sequelize[_0x7707[3]]},connTimeout:{type:Sequelize[_0x7707[5]],defaultValue:10000,get:function(){return this[_0x7707[16]](_0x7707[15])?this[_0x7707[16]](_0x7707[15])/ 1000:null},set:function(_0x937cx2){this[_0x7707[17]](_0x7707[15],_0x937cx2* 1000)}},authTimeout:{type:Sequelize[_0x7707[5]],defaultValue:5000,get:function(){return this[_0x7707[16]](_0x7707[18])?this[_0x7707[16]](_0x7707[18])/ 1000:null},set:function(_0x937cx2){this[_0x7707[17]](_0x7707[18],_0x937cx2* 1000)}},keepalive:{type:Sequelize[_0x7707[6]],defaultValue:true}}
\ No newline at end of file
+var _0x70d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x50\x4F\x50\x33","\x43\x4F\x4E\x4E\x45\x43\x54\x49\x4E\x47","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x63\x6F\x6E\x6E\x54\x69\x6D\x65\x6F\x75\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x75\x74\x68\x54\x69\x6D\x65\x6F\x75\x74"];_0x70d0[0];var Sequelize=require(_0x70d0[1]);module[_0x70d0[2]]= {description:{type:Sequelize[_0x70d0[3]]},host:{type:Sequelize[_0x70d0[3]]},username:{type:Sequelize[_0x70d0[3]],unique:_0x70d0[4]},password:{type:Sequelize[_0x70d0[3]]},port:{type:Sequelize[_0x70d0[5]]},mailbox:{type:Sequelize[_0x70d0[3]]},ssl:{type:Sequelize[_0x70d0[6]],defaultValue:false},delete:{type:Sequelize[_0x70d0[6]],defaultValue:false},filter:{type:Sequelize.ENUM(_0x70d0[7]),defaultValue:_0x70d0[7]},protocol:{type:Sequelize.ENUM(_0x70d0[8],_0x70d0[9]),defaultValue:_0x70d0[8]},state:{type:Sequelize.ENUM(_0x70d0[10],_0x70d0[11],_0x70d0[12],_0x70d0[13],_0x70d0[14]),defaultValue:_0x70d0[14]},source:{type:Sequelize[_0x70d0[3]]},connTimeout:{type:Sequelize[_0x70d0[5]],defaultValue:10000,get:function(){return this[_0x70d0[16]](_0x70d0[15])?this[_0x70d0[16]](_0x70d0[15])/ 1000:null},set:function(_0xd65ax2){this[_0x70d0[17]](_0x70d0[15],_0xd65ax2* 1000)}},authTimeout:{type:Sequelize[_0x70d0[5]],defaultValue:5000,get:function(){return this[_0x70d0[16]](_0x70d0[18])?this[_0x70d0[16]](_0x70d0[18])/ 1000:null},set:function(_0xd65ax2){this[_0x70d0[17]](_0x70d0[18],_0xd65ax2* 1000)}},keepalive:{type:Sequelize[_0x70d0[6]],defaultValue:true}}
\ No newline at end of file
index fee3288..f5109fc 100644 (file)
@@ -1 +1 @@
-var _0x89e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x69\x6E","\x64\x65\x66\x69\x6E\x65"];_0x89e6[0];var _=require(_0x89e6[1]);var util=require(_0x89e6[2]);var logger=require(_0x89e6[4])(_0x89e6[3]);var attributes=require(_0x89e6[5]);module[_0x89e6[6]]= function(_0x2cfcx5,_0x2cfcx6){return _0x2cfcx5[_0x89e6[9]](_0x89e6[7],attributes,{tableName:_0x89e6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x3443=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x69\x6E","\x64\x65\x66\x69\x6E\x65"];_0x3443[0];var _=require(_0x3443[1]);var util=require(_0x3443[2]);var logger=require(_0x3443[4])(_0x3443[3]);var attributes=require(_0x3443[5]);module[_0x3443[6]]= function(_0x54f4x5,_0x54f4x6){return _0x54f4x5[_0x3443[9]](_0x3443[7],attributes,{tableName:_0x3443[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 143c758..1b4ee7d 100644 (file)
@@ -1 +1 @@
-var _0x44db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x44db[0];var _=require(_0x44db[1]);var util=require(_0x44db[2]);var moment=require(_0x44db[3]);var BPromise=require(_0x44db[4]);var db=require(_0x44db[6])[_0x44db[5]];var utils=require(_0x44db[7]);var logger=require(_0x44db[9])(_0x44db[8]);var jayson=require(_0x44db[10]);var client=jayson[_0x44db[12]][_0x44db[11]]({port:9002});function respondWithRpcPromise(_0x7f83xb,_0x7f83xc,_0x7f83xd){return  new BPromise(function(_0x7f83xe,_0x7f83xf){return client[_0x44db[25]](_0x7f83xb,_0x7f83xd)[_0x44db[24]](function(_0x7f83x11){logger[_0x44db[17]](_0x44db[13],_0x7f83xc,_0x44db[16]);logger[_0x44db[20]](_0x44db[18],_0x7f83xc,_0x44db[16],JSON[_0x44db[19]](_0x7f83x11));if(_0x7f83x11[_0x44db[14]]){if(_0x7f83x11[_0x44db[14]][_0x44db[21]]=== 500){logger[_0x44db[14]](_0x44db[13],_0x7f83xc,_0x7f83x11[_0x44db[14]][_0x44db[22]]);return _0x7f83xf(_0x7f83x11[_0x44db[14]][_0x44db[22]])};logger[_0x44db[14]](_0x44db[13],_0x7f83xc,_0x7f83x11[_0x44db[14]][_0x44db[22]]);return _0x7f83xe(_0x7f83x11[_0x44db[14]][_0x44db[22]])}else {logger[_0x44db[17]](_0x44db[13],_0x7f83xc,_0x44db[16]);_0x7f83xe(_0x7f83x11[_0x44db[23]][_0x44db[22]])}})[_0x44db[15]](function(_0x7f83x10){logger[_0x44db[14]](_0x44db[13],_0x7f83xc,_0x7f83x10);_0x7f83xf(_0x7f83x10)})})}
\ No newline at end of file
+var _0xec75=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xec75[0];var _=require(_0xec75[1]);var util=require(_0xec75[2]);var moment=require(_0xec75[3]);var BPromise=require(_0xec75[4]);var db=require(_0xec75[6])[_0xec75[5]];var utils=require(_0xec75[7]);var logger=require(_0xec75[9])(_0xec75[8]);var jayson=require(_0xec75[10]);var client=jayson[_0xec75[12]][_0xec75[11]]({port:9002});function respondWithRpcPromise(_0x80afxb,_0x80afxc,_0x80afxd){return  new BPromise(function(_0x80afxe,_0x80afxf){return client[_0xec75[25]](_0x80afxb,_0x80afxd)[_0xec75[24]](function(_0x80afx11){logger[_0xec75[17]](_0xec75[13],_0x80afxc,_0xec75[16]);logger[_0xec75[20]](_0xec75[18],_0x80afxc,_0xec75[16],JSON[_0xec75[19]](_0x80afx11));if(_0x80afx11[_0xec75[14]]){if(_0x80afx11[_0xec75[14]][_0xec75[21]]=== 500){logger[_0xec75[14]](_0xec75[13],_0x80afxc,_0x80afx11[_0xec75[14]][_0xec75[22]]);return _0x80afxf(_0x80afx11[_0xec75[14]][_0xec75[22]])};logger[_0xec75[14]](_0xec75[13],_0x80afxc,_0x80afx11[_0xec75[14]][_0xec75[22]]);return _0x80afxe(_0x80afx11[_0xec75[14]][_0xec75[22]])}else {logger[_0xec75[17]](_0xec75[13],_0x80afxc,_0xec75[16]);_0x80afxe(_0x80afx11[_0xec75[23]][_0xec75[22]])}})[_0xec75[15]](function(_0x80afx10){logger[_0xec75[14]](_0xec75[13],_0x80afxc,_0x80afx10);_0x80afxf(_0x80afx10)})})}
\ No newline at end of file
index 2398611..69592c2 100644 (file)
@@ -1 +1 @@
-var _0x24b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x24b1[0];var multer=require(_0x24b1[1]);var util=require(_0x24b1[2]);var path=require(_0x24b1[3]);var express=require(_0x24b1[4]);var router=express.Router();var auth=require(_0x24b1[5]);var config=require(_0x24b1[6]);var controller=require(_0x24b1[7]);router[_0x24b1[11]](_0x24b1[8],auth[_0x24b1[9]](),controller[_0x24b1[10]]);router[_0x24b1[11]](_0x24b1[12],auth[_0x24b1[9]](),controller[_0x24b1[13]]);router[_0x24b1[15]](_0x24b1[8],auth[_0x24b1[9]](),controller[_0x24b1[14]]);router[_0x24b1[17]](_0x24b1[12],auth[_0x24b1[9]](),controller[_0x24b1[16]]);router[_0x24b1[19]](_0x24b1[12],auth[_0x24b1[9]](),controller[_0x24b1[18]]);module[_0x24b1[20]]= router
\ No newline at end of file
+var _0x8b9c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8b9c[0];var multer=require(_0x8b9c[1]);var util=require(_0x8b9c[2]);var path=require(_0x8b9c[3]);var express=require(_0x8b9c[4]);var router=express.Router();var auth=require(_0x8b9c[5]);var config=require(_0x8b9c[6]);var controller=require(_0x8b9c[7]);router[_0x8b9c[11]](_0x8b9c[8],auth[_0x8b9c[9]](),controller[_0x8b9c[10]]);router[_0x8b9c[11]](_0x8b9c[12],auth[_0x8b9c[9]](),controller[_0x8b9c[13]]);router[_0x8b9c[15]](_0x8b9c[8],auth[_0x8b9c[9]](),controller[_0x8b9c[14]]);router[_0x8b9c[17]](_0x8b9c[12],auth[_0x8b9c[9]](),controller[_0x8b9c[16]]);router[_0x8b9c[19]](_0x8b9c[12],auth[_0x8b9c[9]](),controller[_0x8b9c[18]]);module[_0x8b9c[20]]= router
\ No newline at end of file
index 6fa6cc3..fc57f9e 100644 (file)
@@ -1 +1 @@
-var _0xfaaa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xfaaa[0];var Sequelize=require(_0xfaaa[1]);module[_0xfaaa[2]]= {description:{type:Sequelize[_0xfaaa[3]]},service:{type:Sequelize[_0xfaaa[3]]},host:{type:Sequelize[_0xfaaa[3]]},user:{type:Sequelize[_0xfaaa[3]]},pass:{type:Sequelize[_0xfaaa[3]]},port:{type:Sequelize[_0xfaaa[4]]},secure:{type:Sequelize[_0xfaaa[5]],defaultValue:false},state:{type:Sequelize[_0xfaaa[3]]}}
\ No newline at end of file
+var _0x2dc3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x2dc3[0];var Sequelize=require(_0x2dc3[1]);module[_0x2dc3[2]]= {description:{type:Sequelize[_0x2dc3[3]]},service:{type:Sequelize[_0x2dc3[3]]},host:{type:Sequelize[_0x2dc3[3]]},user:{type:Sequelize[_0x2dc3[3]]},pass:{type:Sequelize[_0x2dc3[3]]},port:{type:Sequelize[_0x2dc3[4]]},secure:{type:Sequelize[_0x2dc3[5]],defaultValue:false},state:{type:Sequelize[_0x2dc3[3]]}}
\ No newline at end of file
index 3759782..5482485 100644 (file)
@@ -1 +1 @@
-var _0xd848=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd848[0];var jsonpatch=require(_0xd848[1]);var rp=require(_0xd848[2]);var moment=require(_0xd848[3]);var BPromise=require(_0xd848[4]);var util=require(_0xd848[5]);var path=require(_0xd848[6]);var sox=require(_0xd848[7]);var ejs=require(_0xd848[8]);var fs=require(_0xd848[9]);var _=require(_0xd848[10]);var squel=require(_0xd848[11]);var crypto=require(_0xd848[12]);var jsforce=require(_0xd848[13]);var toCsv=require(_0xd848[14]);var qs=require(_0xd848[15]);var logger=require(_0xd848[17])(_0xd848[16]);var utils=require(_0xd848[18]);var config=require(_0xd848[19]);var db=require(_0xd848[21])[_0xd848[20]];function respondWithStatusCode(_0x9a62x15,_0x9a62x16,_0x9a62x17){_0x9a62x16= _0x9a62x16|| 204;return function(_0x9a62x18){if(_0x9a62x18){logger[_0xd848[24]](_0xd848[22],_0x9a62x17,_0x9a62x16,_0xd848[23]);logger[_0xd848[26]](_0xd848[25],_0x9a62x17,_0x9a62x16,_0xd848[23]);return _0x9a62x15[_0xd848[27]](_0x9a62x16)};return _0x9a62x15[_0xd848[29]](304)[_0xd848[28]]()}}function respondWithResult(_0x9a62x15,_0x9a62x16,_0x9a62x17){_0x9a62x16= _0x9a62x16|| 200;return function(_0x9a62x18){if(_0x9a62x18){logger[_0xd848[24]](_0xd848[22],_0x9a62x17,_0x9a62x16,_0xd848[30]);logger[_0xd848[26]](_0xd848[25],_0x9a62x17,_0x9a62x16,_0xd848[30],JSON[_0xd848[31]](_0x9a62x18));return _0x9a62x15[_0xd848[29]](_0x9a62x16)[_0xd848[32]](_0x9a62x18)};return _0x9a62x15[_0xd848[29]](304)[_0xd848[28]]()}}function respondWithFilteredResult(_0x9a62x15,_0x9a62x1b,_0x9a62x17){return function(_0x9a62x18){if(_0x9a62x18){var _0x9a62x1c=_0x9a62x18[_0xd848[33]],_0x9a62x1d=_0x9a62x1b[_0xd848[34]],_0x9a62x1e=_0x9a62x1b[_0xd848[34]]+ _0x9a62x1b[_0xd848[35]],_0x9a62x16;if(_0x9a62x1e>= _0x9a62x1c){_0x9a62x1e= _0x9a62x1c;_0x9a62x16= 200}else {_0x9a62x16= 206};_0x9a62x15[_0xd848[29]](_0x9a62x16);logger[_0xd848[24]](_0xd848[22],_0x9a62x17,_0x9a62x16,_0xd848[36]);logger[_0xd848[26]](_0xd848[25],_0x9a62x17,_0x9a62x16,_0xd848[30],JSON[_0xd848[31]](_0x9a62x18));return _0x9a62x15[_0xd848[40]](_0xd848[37],_0x9a62x1d+ _0xd848[38]+ _0x9a62x1e+ _0xd848[39]+ _0x9a62x1c)[_0xd848[32]](_0x9a62x18)};return null}}function patchUpdates(_0x9a62x20){return function(_0x9a62x18){try{jsonpatch[_0xd848[41]](_0x9a62x18,_0x9a62x20,true)}catch(err){return BPromise[_0xd848[42]](err)};return _0x9a62x18[_0xd848[43]]()}}function saveUpdates(_0x9a62x22,_0x9a62x16,_0x9a62x17){return function(_0x9a62x18){if(_0x9a62x18){return _0x9a62x18[_0xd848[46]](_0x9a62x22)[_0xd848[45]](function(_0x9a62x23){logger[_0xd848[24]](_0xd848[22],_0x9a62x17,_0x9a62x16,_0xd848[44]);logger[_0xd848[26]](_0xd848[25],_0x9a62x17,_0x9a62x16,_0xd848[44],JSON[_0xd848[31]](_0x9a62x18));return _0x9a62x23})};return null}}function removeEntity(_0x9a62x15,_0x9a62x16,_0x9a62x17){return function(_0x9a62x18){if(_0x9a62x18){return _0x9a62x18[_0xd848[48]]()[_0xd848[45]](function(){logger[_0xd848[24]](_0xd848[22],_0x9a62x17,_0x9a62x16,_0xd848[47]);logger[_0xd848[26]](_0xd848[25],_0x9a62x17,_0x9a62x16,_0xd848[47],JSON[_0xd848[31]](_0x9a62x18));_0x9a62x15[_0xd848[29]](204)[_0xd848[28]]()})}}}function handleEntityNotFound(_0x9a62x15,_0x9a62x16,_0x9a62x17){return function(_0x9a62x18){if(!_0x9a62x18){logger[_0xd848[50]](_0xd848[22],_0x9a62x17,404,_0xd848[49]);_0x9a62x15[_0xd848[29]](404)[_0xd848[28]]();return null};return _0x9a62x18}}function handleError(_0x9a62x15,_0x9a62x16,_0x9a62x17){_0x9a62x16= _0x9a62x16|| 500;return function(_0x9a62x27){logger[_0xd848[50]](_0xd848[22],_0x9a62x17,_0x9a62x16,JSON[_0xd848[31]](_0x9a62x27));delete _0x9a62x27[_0xd848[51]];_0x9a62x15[_0xd848[29]](_0x9a62x16)[_0xd848[52]](_0x9a62x27)}}exports[_0xd848[53]]= function(_0x9a62x28,_0x9a62x15){var _0x9a62x1b={},_0x9a62x29={};_0x9a62x29[_0xd848[54]]= _[_0xd848[57]](db[_0xd848[56]][_0xd848[55]]);_0x9a62x29[_0xd848[58]]= _[_0xd848[57]](_0x9a62x28[_0xd848[58]]);_0x9a62x29[_0xd848[59]]= _[_0xd848[60]](_0x9a62x29[_0xd848[54]],_0x9a62x29[_0xd848[58]]);_0x9a62x1b[_0xd848[61]]= _[_0xd848[60]](_0x9a62x29[_0xd848[54]],qs[_0xd848[62]](_0x9a62x28[_0xd848[58]][_0xd848[62]]));_0x9a62x1b[_0xd848[61]]= (_0x9a62x1b[_0xd848[61]][_0xd848[63]])?_0x9a62x1b[_0xd848[61]]:_0x9a62x29[_0xd848[54]];if(!_0x9a62x28[_0xd848[58]][_0xd848[65]](_0xd848[64])){_0x9a62x1b[_0xd848[35]]= qs[_0xd848[35]](_0x9a62x28[_0xd848[58]][_0xd848[35]]);_0x9a62x1b[_0xd848[34]]= qs[_0xd848[34]](_0x9a62x28[_0xd848[58]][_0xd848[34]])};_0x9a62x1b[_0xd848[66]]= qs[_0xd848[67]](_0x9a62x28[_0xd848[58]][_0xd848[67]]);_0x9a62x1b[_0xd848[68]]= qs[_0xd848[59]](_[_0xd848[69]](_0x9a62x28[_0xd848[58]],_0x9a62x29[_0xd848[59]]));if(_0x9a62x28[_0xd848[58]][_0xd848[70]]){_0x9a62x1b[_0xd848[68]]= _[_0xd848[73]](_0x9a62x1b[_0xd848[68]],{$or:_[_0xd848[72]](_0x9a62x1b[_0xd848[61]],function(_0x9a62x2a){var _0x9a62x2b={};_0x9a62x2b[_0x9a62x2a]= {$like:_0xd848[71]+ _0x9a62x28[_0xd848[58]][_0xd848[70]]+ _0xd848[71]};return _0x9a62x2b})})};_0x9a62x1b= _[_0xd848[73]]({},_0x9a62x1b,_0x9a62x28[_0xd848[74]]);return db[_0xd848[56]][_0xd848[76]](_0x9a62x1b)[_0xd848[45]](respondWithFilteredResult(_0x9a62x15,_0x9a62x1b,_0xd848[53]))[_0xd848[75]](handleError(_0x9a62x15,null,_0xd848[53]))};exports[_0xd848[77]]= function(_0x9a62x28,_0x9a62x15){var _0x9a62x1b={raw:true,where:{id:_0x9a62x28[_0xd848[79]][_0xd848[78]]}},_0x9a62x29={};_0x9a62x29[_0xd848[54]]= _[_0xd848[57]](db[_0xd848[56]][_0xd848[55]]);_0x9a62x29[_0xd848[58]]= _[_0xd848[57]](_0x9a62x28[_0xd848[58]]);_0x9a62x29[_0xd848[59]]= _[_0xd848[60]](_0x9a62x29[_0xd848[54]],_0x9a62x29[_0xd848[58]]);_0x9a62x1b[_0xd848[61]]= _[_0xd848[60]](_0x9a62x29[_0xd848[54]],qs[_0xd848[62]](_0x9a62x28[_0xd848[58]][_0xd848[62]]));_0x9a62x1b[_0xd848[61]]= (_0x9a62x1b[_0xd848[61]][_0xd848[63]])?_0x9a62x1b[_0xd848[61]]:_0x9a62x29[_0xd848[54]];_0x9a62x1b= _[_0xd848[73]]({},_0x9a62x1b,_0x9a62x28[_0xd848[74]]);return db[_0xd848[56]][_0xd848[80]](_0x9a62x1b)[_0xd848[45]](handleEntityNotFound(_0x9a62x15,null,_0xd848[77]))[_0xd848[45]](respondWithResult(_0x9a62x15,null,_0xd848[77]))[_0xd848[75]](handleError(_0x9a62x15,null,_0xd848[77]))};exports[_0xd848[81]]= function(_0x9a62x28,_0x9a62x15){return db[_0xd848[56]][_0xd848[81]](_0x9a62x28[_0xd848[82]],{})[_0xd848[45]](respondWithResult(_0x9a62x15,201,_0xd848[81]))[_0xd848[75]](handleError(_0x9a62x15,null,_0xd848[81]))};exports[_0xd848[46]]= function(_0x9a62x28,_0x9a62x15){if(_0x9a62x28[_0xd848[82]][_0xd848[78]]){delete _0x9a62x28[_0xd848[82]][_0xd848[78]]};return db[_0xd848[56]][_0xd848[80]]({where:{id:_0x9a62x28[_0xd848[79]][_0xd848[78]]}})[_0xd848[45]](handleEntityNotFound(_0x9a62x15,null,_0xd848[46]))[_0xd848[45]](saveUpdates(_0x9a62x28[_0xd848[82]],null,_0xd848[46]))[_0xd848[45]](respondWithResult(_0x9a62x15,null,_0xd848[46]))[_0xd848[75]](handleError(_0x9a62x15,null,_0xd848[46]))};exports[_0xd848[48]]= function(_0x9a62x28,_0x9a62x15){return db[_0xd848[56]][_0xd848[80]]({where:{id:_0x9a62x28[_0xd848[79]][_0xd848[78]]}})[_0xd848[45]](handleEntityNotFound(_0x9a62x15,null,_0xd848[48]))[_0xd848[45]](removeEntity(_0x9a62x15,null,_0xd848[48]))[_0xd848[75]](handleError(_0x9a62x15,null,_0xd848[48]))}
\ No newline at end of file
+var _0x9cd0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x9cd0[0];var jsonpatch=require(_0x9cd0[1]);var rp=require(_0x9cd0[2]);var moment=require(_0x9cd0[3]);var BPromise=require(_0x9cd0[4]);var util=require(_0x9cd0[5]);var path=require(_0x9cd0[6]);var sox=require(_0x9cd0[7]);var ejs=require(_0x9cd0[8]);var fs=require(_0x9cd0[9]);var _=require(_0x9cd0[10]);var squel=require(_0x9cd0[11]);var crypto=require(_0x9cd0[12]);var jsforce=require(_0x9cd0[13]);var toCsv=require(_0x9cd0[14]);var qs=require(_0x9cd0[15]);var logger=require(_0x9cd0[17])(_0x9cd0[16]);var utils=require(_0x9cd0[18]);var config=require(_0x9cd0[19]);var db=require(_0x9cd0[21])[_0x9cd0[20]];function respondWithStatusCode(_0x4455x15,_0x4455x16,_0x4455x17){_0x4455x16= _0x4455x16|| 204;return function(_0x4455x18){if(_0x4455x18){logger[_0x9cd0[24]](_0x9cd0[22],_0x4455x17,_0x4455x16,_0x9cd0[23]);logger[_0x9cd0[26]](_0x9cd0[25],_0x4455x17,_0x4455x16,_0x9cd0[23]);return _0x4455x15[_0x9cd0[27]](_0x4455x16)};return _0x4455x15[_0x9cd0[29]](304)[_0x9cd0[28]]()}}function respondWithResult(_0x4455x15,_0x4455x16,_0x4455x17){_0x4455x16= _0x4455x16|| 200;return function(_0x4455x18){if(_0x4455x18){logger[_0x9cd0[24]](_0x9cd0[22],_0x4455x17,_0x4455x16,_0x9cd0[30]);logger[_0x9cd0[26]](_0x9cd0[25],_0x4455x17,_0x4455x16,_0x9cd0[30],JSON[_0x9cd0[31]](_0x4455x18));return _0x4455x15[_0x9cd0[29]](_0x4455x16)[_0x9cd0[32]](_0x4455x18)};return _0x4455x15[_0x9cd0[29]](304)[_0x9cd0[28]]()}}function respondWithFilteredResult(_0x4455x15,_0x4455x1b,_0x4455x17){return function(_0x4455x18){if(_0x4455x18){var _0x4455x1c=_0x4455x18[_0x9cd0[33]],_0x4455x1d=_0x4455x1b[_0x9cd0[34]],_0x4455x1e=_0x4455x1b[_0x9cd0[34]]+ _0x4455x1b[_0x9cd0[35]],_0x4455x16;if(_0x4455x1e>= _0x4455x1c){_0x4455x1e= _0x4455x1c;_0x4455x16= 200}else {_0x4455x16= 206};_0x4455x15[_0x9cd0[29]](_0x4455x16);logger[_0x9cd0[24]](_0x9cd0[22],_0x4455x17,_0x4455x16,_0x9cd0[36]);logger[_0x9cd0[26]](_0x9cd0[25],_0x4455x17,_0x4455x16,_0x9cd0[30],JSON[_0x9cd0[31]](_0x4455x18));return _0x4455x15[_0x9cd0[40]](_0x9cd0[37],_0x4455x1d+ _0x9cd0[38]+ _0x4455x1e+ _0x9cd0[39]+ _0x4455x1c)[_0x9cd0[32]](_0x4455x18)};return null}}function patchUpdates(_0x4455x20){return function(_0x4455x18){try{jsonpatch[_0x9cd0[41]](_0x4455x18,_0x4455x20,true)}catch(err){return BPromise[_0x9cd0[42]](err)};return _0x4455x18[_0x9cd0[43]]()}}function saveUpdates(_0x4455x22,_0x4455x16,_0x4455x17){return function(_0x4455x18){if(_0x4455x18){return _0x4455x18[_0x9cd0[46]](_0x4455x22)[_0x9cd0[45]](function(_0x4455x23){logger[_0x9cd0[24]](_0x9cd0[22],_0x4455x17,_0x4455x16,_0x9cd0[44]);logger[_0x9cd0[26]](_0x9cd0[25],_0x4455x17,_0x4455x16,_0x9cd0[44],JSON[_0x9cd0[31]](_0x4455x18));return _0x4455x23})};return null}}function removeEntity(_0x4455x15,_0x4455x16,_0x4455x17){return function(_0x4455x18){if(_0x4455x18){return _0x4455x18[_0x9cd0[48]]()[_0x9cd0[45]](function(){logger[_0x9cd0[24]](_0x9cd0[22],_0x4455x17,_0x4455x16,_0x9cd0[47]);logger[_0x9cd0[26]](_0x9cd0[25],_0x4455x17,_0x4455x16,_0x9cd0[47],JSON[_0x9cd0[31]](_0x4455x18));_0x4455x15[_0x9cd0[29]](204)[_0x9cd0[28]]()})}}}function handleEntityNotFound(_0x4455x15,_0x4455x16,_0x4455x17){return function(_0x4455x18){if(!_0x4455x18){logger[_0x9cd0[50]](_0x9cd0[22],_0x4455x17,404,_0x9cd0[49]);_0x4455x15[_0x9cd0[29]](404)[_0x9cd0[28]]();return null};return _0x4455x18}}function handleError(_0x4455x15,_0x4455x16,_0x4455x17){_0x4455x16= _0x4455x16|| 500;return function(_0x4455x27){logger[_0x9cd0[50]](_0x9cd0[22],_0x4455x17,_0x4455x16,JSON[_0x9cd0[31]](_0x4455x27));delete _0x4455x27[_0x9cd0[51]];_0x4455x15[_0x9cd0[29]](_0x4455x16)[_0x9cd0[52]](_0x4455x27)}}exports[_0x9cd0[53]]= function(_0x4455x28,_0x4455x15){var _0x4455x1b={},_0x4455x29={};_0x4455x29[_0x9cd0[54]]= _[_0x9cd0[57]](db[_0x9cd0[56]][_0x9cd0[55]]);_0x4455x29[_0x9cd0[58]]= _[_0x9cd0[57]](_0x4455x28[_0x9cd0[58]]);_0x4455x29[_0x9cd0[59]]= _[_0x9cd0[60]](_0x4455x29[_0x9cd0[54]],_0x4455x29[_0x9cd0[58]]);_0x4455x1b[_0x9cd0[61]]= _[_0x9cd0[60]](_0x4455x29[_0x9cd0[54]],qs[_0x9cd0[62]](_0x4455x28[_0x9cd0[58]][_0x9cd0[62]]));_0x4455x1b[_0x9cd0[61]]= (_0x4455x1b[_0x9cd0[61]][_0x9cd0[63]])?_0x4455x1b[_0x9cd0[61]]:_0x4455x29[_0x9cd0[54]];if(!_0x4455x28[_0x9cd0[58]][_0x9cd0[65]](_0x9cd0[64])){_0x4455x1b[_0x9cd0[35]]= qs[_0x9cd0[35]](_0x4455x28[_0x9cd0[58]][_0x9cd0[35]]);_0x4455x1b[_0x9cd0[34]]= qs[_0x9cd0[34]](_0x4455x28[_0x9cd0[58]][_0x9cd0[34]])};_0x4455x1b[_0x9cd0[66]]= qs[_0x9cd0[67]](_0x4455x28[_0x9cd0[58]][_0x9cd0[67]]);_0x4455x1b[_0x9cd0[68]]= qs[_0x9cd0[59]](_[_0x9cd0[69]](_0x4455x28[_0x9cd0[58]],_0x4455x29[_0x9cd0[59]]));if(_0x4455x28[_0x9cd0[58]][_0x9cd0[70]]){_0x4455x1b[_0x9cd0[68]]= _[_0x9cd0[73]](_0x4455x1b[_0x9cd0[68]],{$or:_[_0x9cd0[72]](_0x4455x1b[_0x9cd0[61]],function(_0x4455x2a){var _0x4455x2b={};_0x4455x2b[_0x4455x2a]= {$like:_0x9cd0[71]+ _0x4455x28[_0x9cd0[58]][_0x9cd0[70]]+ _0x9cd0[71]};return _0x4455x2b})})};_0x4455x1b= _[_0x9cd0[73]]({},_0x4455x1b,_0x4455x28[_0x9cd0[74]]);return db[_0x9cd0[56]][_0x9cd0[76]](_0x4455x1b)[_0x9cd0[45]](respondWithFilteredResult(_0x4455x15,_0x4455x1b,_0x9cd0[53]))[_0x9cd0[75]](handleError(_0x4455x15,null,_0x9cd0[53]))};exports[_0x9cd0[77]]= function(_0x4455x28,_0x4455x15){var _0x4455x1b={raw:true,where:{id:_0x4455x28[_0x9cd0[79]][_0x9cd0[78]]}},_0x4455x29={};_0x4455x29[_0x9cd0[54]]= _[_0x9cd0[57]](db[_0x9cd0[56]][_0x9cd0[55]]);_0x4455x29[_0x9cd0[58]]= _[_0x9cd0[57]](_0x4455x28[_0x9cd0[58]]);_0x4455x29[_0x9cd0[59]]= _[_0x9cd0[60]](_0x4455x29[_0x9cd0[54]],_0x4455x29[_0x9cd0[58]]);_0x4455x1b[_0x9cd0[61]]= _[_0x9cd0[60]](_0x4455x29[_0x9cd0[54]],qs[_0x9cd0[62]](_0x4455x28[_0x9cd0[58]][_0x9cd0[62]]));_0x4455x1b[_0x9cd0[61]]= (_0x4455x1b[_0x9cd0[61]][_0x9cd0[63]])?_0x4455x1b[_0x9cd0[61]]:_0x4455x29[_0x9cd0[54]];_0x4455x1b= _[_0x9cd0[73]]({},_0x4455x1b,_0x4455x28[_0x9cd0[74]]);return db[_0x9cd0[56]][_0x9cd0[80]](_0x4455x1b)[_0x9cd0[45]](handleEntityNotFound(_0x4455x15,null,_0x9cd0[77]))[_0x9cd0[45]](respondWithResult(_0x4455x15,null,_0x9cd0[77]))[_0x9cd0[75]](handleError(_0x4455x15,null,_0x9cd0[77]))};exports[_0x9cd0[81]]= function(_0x4455x28,_0x4455x15){return db[_0x9cd0[56]][_0x9cd0[81]](_0x4455x28[_0x9cd0[82]],{})[_0x9cd0[45]](respondWithResult(_0x4455x15,201,_0x9cd0[81]))[_0x9cd0[75]](handleError(_0x4455x15,null,_0x9cd0[81]))};exports[_0x9cd0[46]]= function(_0x4455x28,_0x4455x15){if(_0x4455x28[_0x9cd0[82]][_0x9cd0[78]]){delete _0x4455x28[_0x9cd0[82]][_0x9cd0[78]]};return db[_0x9cd0[56]][_0x9cd0[80]]({where:{id:_0x4455x28[_0x9cd0[79]][_0x9cd0[78]]}})[_0x9cd0[45]](handleEntityNotFound(_0x4455x15,null,_0x9cd0[46]))[_0x9cd0[45]](saveUpdates(_0x4455x28[_0x9cd0[82]],null,_0x9cd0[46]))[_0x9cd0[45]](respondWithResult(_0x4455x15,null,_0x9cd0[46]))[_0x9cd0[75]](handleError(_0x4455x15,null,_0x9cd0[46]))};exports[_0x9cd0[48]]= function(_0x4455x28,_0x4455x15){return db[_0x9cd0[56]][_0x9cd0[80]]({where:{id:_0x4455x28[_0x9cd0[79]][_0x9cd0[78]]}})[_0x9cd0[45]](handleEntityNotFound(_0x4455x15,null,_0x9cd0[48]))[_0x9cd0[45]](removeEntity(_0x4455x15,null,_0x9cd0[48]))[_0x9cd0[75]](handleError(_0x4455x15,null,_0x9cd0[48]))}
\ No newline at end of file
index 2512804..b96a0a8 100644 (file)
@@ -1 +1 @@
-var _0x6f7b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x6F\x75\x74","\x64\x65\x66\x69\x6E\x65"];_0x6f7b[0];var _=require(_0x6f7b[1]);var util=require(_0x6f7b[2]);var logger=require(_0x6f7b[4])(_0x6f7b[3]);var attributes=require(_0x6f7b[5]);module[_0x6f7b[6]]= function(_0x6241x5,_0x6241x6){return _0x6241x5[_0x6f7b[9]](_0x6f7b[7],attributes,{tableName:_0x6f7b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7d61=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x6F\x75\x74","\x64\x65\x66\x69\x6E\x65"];_0x7d61[0];var _=require(_0x7d61[1]);var util=require(_0x7d61[2]);var logger=require(_0x7d61[4])(_0x7d61[3]);var attributes=require(_0x7d61[5]);module[_0x7d61[6]]= function(_0xc1d9x5,_0xc1d9x6){return _0xc1d9x5[_0x7d61[9]](_0x7d61[7],attributes,{tableName:_0x7d61[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 5c388ef..7c83a66 100644 (file)
@@ -1 +1 @@
-var _0x8fc6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8fc6[0];var _=require(_0x8fc6[1]);var util=require(_0x8fc6[2]);var moment=require(_0x8fc6[3]);var BPromise=require(_0x8fc6[4]);var db=require(_0x8fc6[6])[_0x8fc6[5]];var utils=require(_0x8fc6[7]);var logger=require(_0x8fc6[9])(_0x8fc6[8]);var jayson=require(_0x8fc6[10]);var client=jayson[_0x8fc6[12]][_0x8fc6[11]]({port:9002});function respondWithRpcPromise(_0xde33xb,_0xde33xc,_0xde33xd){return  new BPromise(function(_0xde33xe,_0xde33xf){return client[_0x8fc6[25]](_0xde33xb,_0xde33xd)[_0x8fc6[24]](function(_0xde33x11){logger[_0x8fc6[17]](_0x8fc6[13],_0xde33xc,_0x8fc6[16]);logger[_0x8fc6[20]](_0x8fc6[18],_0xde33xc,_0x8fc6[16],JSON[_0x8fc6[19]](_0xde33x11));if(_0xde33x11[_0x8fc6[14]]){if(_0xde33x11[_0x8fc6[14]][_0x8fc6[21]]=== 500){logger[_0x8fc6[14]](_0x8fc6[13],_0xde33xc,_0xde33x11[_0x8fc6[14]][_0x8fc6[22]]);return _0xde33xf(_0xde33x11[_0x8fc6[14]][_0x8fc6[22]])};logger[_0x8fc6[14]](_0x8fc6[13],_0xde33xc,_0xde33x11[_0x8fc6[14]][_0x8fc6[22]]);return _0xde33xe(_0xde33x11[_0x8fc6[14]][_0x8fc6[22]])}else {logger[_0x8fc6[17]](_0x8fc6[13],_0xde33xc,_0x8fc6[16]);_0xde33xe(_0xde33x11[_0x8fc6[23]][_0x8fc6[22]])}})[_0x8fc6[15]](function(_0xde33x10){logger[_0x8fc6[14]](_0x8fc6[13],_0xde33xc,_0xde33x10);_0xde33xf(_0xde33x10)})})}
\ No newline at end of file
+var _0x85cd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x85cd[0];var _=require(_0x85cd[1]);var util=require(_0x85cd[2]);var moment=require(_0x85cd[3]);var BPromise=require(_0x85cd[4]);var db=require(_0x85cd[6])[_0x85cd[5]];var utils=require(_0x85cd[7]);var logger=require(_0x85cd[9])(_0x85cd[8]);var jayson=require(_0x85cd[10]);var client=jayson[_0x85cd[12]][_0x85cd[11]]({port:9002});function respondWithRpcPromise(_0x518dxb,_0x518dxc,_0x518dxd){return  new BPromise(function(_0x518dxe,_0x518dxf){return client[_0x85cd[25]](_0x518dxb,_0x518dxd)[_0x85cd[24]](function(_0x518dx11){logger[_0x85cd[17]](_0x85cd[13],_0x518dxc,_0x85cd[16]);logger[_0x85cd[20]](_0x85cd[18],_0x518dxc,_0x85cd[16],JSON[_0x85cd[19]](_0x518dx11));if(_0x518dx11[_0x85cd[14]]){if(_0x518dx11[_0x85cd[14]][_0x85cd[21]]=== 500){logger[_0x85cd[14]](_0x85cd[13],_0x518dxc,_0x518dx11[_0x85cd[14]][_0x85cd[22]]);return _0x518dxf(_0x518dx11[_0x85cd[14]][_0x85cd[22]])};logger[_0x85cd[14]](_0x85cd[13],_0x518dxc,_0x518dx11[_0x85cd[14]][_0x85cd[22]]);return _0x518dxe(_0x518dx11[_0x85cd[14]][_0x85cd[22]])}else {logger[_0x85cd[17]](_0x85cd[13],_0x518dxc,_0x85cd[16]);_0x518dxe(_0x518dx11[_0x85cd[23]][_0x85cd[22]])}})[_0x85cd[15]](function(_0x518dx10){logger[_0x85cd[14]](_0x85cd[13],_0x518dxc,_0x518dx10);_0x518dxf(_0x518dx10)})})}
\ No newline at end of file
index 559297f..dd47020 100644 (file)
@@ -1 +1 @@
-var _0xfabb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfabb[0];var multer=require(_0xfabb[1]);var util=require(_0xfabb[2]);var path=require(_0xfabb[3]);var express=require(_0xfabb[4]);var router=express.Router();var auth=require(_0xfabb[5]);var config=require(_0xfabb[6]);var controller=require(_0xfabb[7]);router[_0xfabb[11]](_0xfabb[8],auth[_0xfabb[9]](),controller[_0xfabb[10]]);router[_0xfabb[11]](_0xfabb[12],auth[_0xfabb[9]](),controller[_0xfabb[13]]);router[_0xfabb[11]](_0xfabb[14],auth[_0xfabb[9]](),controller[_0xfabb[15]]);router[_0xfabb[17]](_0xfabb[8],auth[_0xfabb[9]](),controller[_0xfabb[16]]);router[_0xfabb[19]](_0xfabb[14],auth[_0xfabb[9]](),controller[_0xfabb[18]]);router[_0xfabb[21]](_0xfabb[14],auth[_0xfabb[9]](),controller[_0xfabb[20]]);module[_0xfabb[22]]= router
\ No newline at end of file
+var _0x35ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x35ae[0];var multer=require(_0x35ae[1]);var util=require(_0x35ae[2]);var path=require(_0x35ae[3]);var express=require(_0x35ae[4]);var router=express.Router();var auth=require(_0x35ae[5]);var config=require(_0x35ae[6]);var controller=require(_0x35ae[7]);router[_0x35ae[11]](_0x35ae[8],auth[_0x35ae[9]](),controller[_0x35ae[10]]);router[_0x35ae[11]](_0x35ae[12],auth[_0x35ae[9]](),controller[_0x35ae[13]]);router[_0x35ae[11]](_0x35ae[14],auth[_0x35ae[9]](),controller[_0x35ae[15]]);router[_0x35ae[17]](_0x35ae[8],auth[_0x35ae[9]](),controller[_0x35ae[16]]);router[_0x35ae[19]](_0x35ae[14],auth[_0x35ae[9]](),controller[_0x35ae[18]]);router[_0x35ae[21]](_0x35ae[14],auth[_0x35ae[9]](),controller[_0x35ae[20]]);module[_0x35ae[22]]= router
\ No newline at end of file
index c67bc97..08faefb 100644 (file)
@@ -1 +1 @@
-var _0xec7c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0xec7c[0];var Sequelize=require(_0xec7c[1]);module[_0xec7c[2]]= {uniqueid:{type:Sequelize[_0xec7c[3]]},subject:{type:Sequelize[_0xec7c[3]]},accountid:{type:Sequelize[_0xec7c[3]]},accountname:{type:Sequelize[_0xec7c[3]]},accountaddress:{type:Sequelize[_0xec7c[3]]},application:{type:Sequelize[_0xec7c[3]]},memberid:{type:Sequelize[_0xec7c[3]]},membername:{type:Sequelize[_0xec7c[3]]},queue:{type:Sequelize[_0xec7c[4]]},queuename:{type:Sequelize[_0xec7c[3]]},roomid:{type:Sequelize[_0xec7c[4]]},fidelity:{type:Sequelize[_0xec7c[4]],defaultValue:0},joinAt:{type:Sequelize[_0xec7c[5]]},leaveAt:{type:Sequelize[_0xec7c[5]]},completeAt:{type:Sequelize[_0xec7c[5]]},complete:{type:Sequelize[_0xec7c[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0xec7c[7])},timeout:{type:Sequelize[_0xec7c[6]],defaultValue:false},timeslot:{type:Sequelize[_0xec7c[4]]}}
\ No newline at end of file
+var _0x18e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x18e7[0];var Sequelize=require(_0x18e7[1]);module[_0x18e7[2]]= {uniqueid:{type:Sequelize[_0x18e7[3]]},subject:{type:Sequelize[_0x18e7[3]]},accountid:{type:Sequelize[_0x18e7[3]]},accountname:{type:Sequelize[_0x18e7[3]]},accountaddress:{type:Sequelize[_0x18e7[3]]},application:{type:Sequelize[_0x18e7[3]]},memberid:{type:Sequelize[_0x18e7[3]]},membername:{type:Sequelize[_0x18e7[3]]},queue:{type:Sequelize[_0x18e7[4]]},queuename:{type:Sequelize[_0x18e7[3]]},roomid:{type:Sequelize[_0x18e7[4]]},fidelity:{type:Sequelize[_0x18e7[4]],defaultValue:0},joinAt:{type:Sequelize[_0x18e7[5]]},leaveAt:{type:Sequelize[_0x18e7[5]]},completeAt:{type:Sequelize[_0x18e7[5]]},complete:{type:Sequelize[_0x18e7[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x18e7[7])},timeout:{type:Sequelize[_0x18e7[6]],defaultValue:false},timeslot:{type:Sequelize[_0x18e7[4]]}}
\ No newline at end of file
index f8bbd81..a3d272f 100644 (file)
@@ -1 +1 @@
-var _0x8b8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x8b8f[0];var jsonpatch=require(_0x8b8f[1]);var rp=require(_0x8b8f[2]);var moment=require(_0x8b8f[3]);var BPromise=require(_0x8b8f[4]);var util=require(_0x8b8f[5]);var path=require(_0x8b8f[6]);var sox=require(_0x8b8f[7]);var ejs=require(_0x8b8f[8]);var fs=require(_0x8b8f[9]);var _=require(_0x8b8f[10]);var squel=require(_0x8b8f[11]);var crypto=require(_0x8b8f[12]);var jsforce=require(_0x8b8f[13]);var toCsv=require(_0x8b8f[14]);var qs=require(_0x8b8f[15]);var logger=require(_0x8b8f[17])(_0x8b8f[16]);var utils=require(_0x8b8f[18]);var config=require(_0x8b8f[19]);var db=require(_0x8b8f[21])[_0x8b8f[20]];function respondWithStatusCode(_0x9e93x15,_0x9e93x16,_0x9e93x17){_0x9e93x16= _0x9e93x16|| 204;return function(_0x9e93x18){if(_0x9e93x18){logger[_0x8b8f[24]](_0x8b8f[22],_0x9e93x17,_0x9e93x16,_0x8b8f[23]);logger[_0x8b8f[26]](_0x8b8f[25],_0x9e93x17,_0x9e93x16,_0x8b8f[23]);return _0x9e93x15[_0x8b8f[27]](_0x9e93x16)};return _0x9e93x15[_0x8b8f[29]](304)[_0x8b8f[28]]()}}function respondWithResult(_0x9e93x15,_0x9e93x16,_0x9e93x17){_0x9e93x16= _0x9e93x16|| 200;return function(_0x9e93x18){if(_0x9e93x18){logger[_0x8b8f[24]](_0x8b8f[22],_0x9e93x17,_0x9e93x16,_0x8b8f[30]);logger[_0x8b8f[26]](_0x8b8f[25],_0x9e93x17,_0x9e93x16,_0x8b8f[30],JSON[_0x8b8f[31]](_0x9e93x18));return _0x9e93x15[_0x8b8f[29]](_0x9e93x16)[_0x8b8f[32]](_0x9e93x18)};return _0x9e93x15[_0x8b8f[29]](304)[_0x8b8f[28]]()}}function respondWithFilteredResult(_0x9e93x15,_0x9e93x1b,_0x9e93x17){return function(_0x9e93x18){if(_0x9e93x18){var _0x9e93x1c=_0x9e93x18[_0x8b8f[33]],_0x9e93x1d=_0x9e93x1b[_0x8b8f[34]],_0x9e93x1e=_0x9e93x1b[_0x8b8f[34]]+ _0x9e93x1b[_0x8b8f[35]],_0x9e93x16;if(_0x9e93x1e>= _0x9e93x1c){_0x9e93x1e= _0x9e93x1c;_0x9e93x16= 200}else {_0x9e93x16= 206};_0x9e93x15[_0x8b8f[29]](_0x9e93x16);logger[_0x8b8f[24]](_0x8b8f[22],_0x9e93x17,_0x9e93x16,_0x8b8f[36]);logger[_0x8b8f[26]](_0x8b8f[25],_0x9e93x17,_0x9e93x16,_0x8b8f[30],JSON[_0x8b8f[31]](_0x9e93x18));return _0x9e93x15[_0x8b8f[40]](_0x8b8f[37],_0x9e93x1d+ _0x8b8f[38]+ _0x9e93x1e+ _0x8b8f[39]+ _0x9e93x1c)[_0x8b8f[32]](_0x9e93x18)};return null}}function patchUpdates(_0x9e93x20){return function(_0x9e93x18){try{jsonpatch[_0x8b8f[41]](_0x9e93x18,_0x9e93x20,true)}catch(err){return BPromise[_0x8b8f[42]](err)};return _0x9e93x18[_0x8b8f[43]]()}}function saveUpdates(_0x9e93x22,_0x9e93x16,_0x9e93x17){return function(_0x9e93x18){if(_0x9e93x18){return _0x9e93x18[_0x8b8f[46]](_0x9e93x22)[_0x8b8f[45]](function(_0x9e93x23){logger[_0x8b8f[24]](_0x8b8f[22],_0x9e93x17,_0x9e93x16,_0x8b8f[44]);logger[_0x8b8f[26]](_0x8b8f[25],_0x9e93x17,_0x9e93x16,_0x8b8f[44],JSON[_0x8b8f[31]](_0x9e93x18));return _0x9e93x23})};return null}}function removeEntity(_0x9e93x15,_0x9e93x16,_0x9e93x17){return function(_0x9e93x18){if(_0x9e93x18){return _0x9e93x18[_0x8b8f[48]]()[_0x8b8f[45]](function(){logger[_0x8b8f[24]](_0x8b8f[22],_0x9e93x17,_0x9e93x16,_0x8b8f[47]);logger[_0x8b8f[26]](_0x8b8f[25],_0x9e93x17,_0x9e93x16,_0x8b8f[47],JSON[_0x8b8f[31]](_0x9e93x18));_0x9e93x15[_0x8b8f[29]](204)[_0x8b8f[28]]()})}}}function handleEntityNotFound(_0x9e93x15,_0x9e93x16,_0x9e93x17){return function(_0x9e93x18){if(!_0x9e93x18){logger[_0x8b8f[50]](_0x8b8f[22],_0x9e93x17,404,_0x8b8f[49]);_0x9e93x15[_0x8b8f[29]](404)[_0x8b8f[28]]();return null};return _0x9e93x18}}function handleError(_0x9e93x15,_0x9e93x16,_0x9e93x17){_0x9e93x16= _0x9e93x16|| 500;return function(_0x9e93x27){logger[_0x8b8f[50]](_0x8b8f[22],_0x9e93x17,_0x9e93x16,JSON[_0x8b8f[31]](_0x9e93x27));delete _0x9e93x27[_0x8b8f[51]];_0x9e93x15[_0x8b8f[29]](_0x9e93x16)[_0x8b8f[52]](_0x9e93x27)}}exports[_0x8b8f[53]]= function(_0x9e93x28,_0x9e93x15){var _0x9e93x1b={},_0x9e93x29={};_0x9e93x29[_0x8b8f[54]]= _[_0x8b8f[57]](db[_0x8b8f[56]][_0x8b8f[55]]);_0x9e93x29[_0x8b8f[58]]= _[_0x8b8f[57]](_0x9e93x28[_0x8b8f[58]]);_0x9e93x29[_0x8b8f[59]]= _[_0x8b8f[60]](_0x9e93x29[_0x8b8f[54]],_0x9e93x29[_0x8b8f[58]]);_0x9e93x1b[_0x8b8f[61]]= _[_0x8b8f[60]](_0x9e93x29[_0x8b8f[54]],qs[_0x8b8f[62]](_0x9e93x28[_0x8b8f[58]][_0x8b8f[62]]));_0x9e93x1b[_0x8b8f[61]]= (_0x9e93x1b[_0x8b8f[61]][_0x8b8f[63]])?_0x9e93x1b[_0x8b8f[61]]:_0x9e93x29[_0x8b8f[54]];if(!_0x9e93x28[_0x8b8f[58]][_0x8b8f[65]](_0x8b8f[64])){_0x9e93x1b[_0x8b8f[35]]= qs[_0x8b8f[35]](_0x9e93x28[_0x8b8f[58]][_0x8b8f[35]]);_0x9e93x1b[_0x8b8f[34]]= qs[_0x8b8f[34]](_0x9e93x28[_0x8b8f[58]][_0x8b8f[34]])};_0x9e93x1b[_0x8b8f[66]]= qs[_0x8b8f[67]](_0x9e93x28[_0x8b8f[58]][_0x8b8f[67]]);_0x9e93x1b[_0x8b8f[68]]= qs[_0x8b8f[59]](_[_0x8b8f[69]](_0x9e93x28[_0x8b8f[58]],_0x9e93x29[_0x8b8f[59]]));if(_0x9e93x28[_0x8b8f[58]][_0x8b8f[70]]){_0x9e93x1b[_0x8b8f[68]]= _[_0x8b8f[73]](_0x9e93x1b[_0x8b8f[68]],{$or:_[_0x8b8f[72]](_0x9e93x1b[_0x8b8f[61]],function(_0x9e93x2a){var _0x9e93x2b={};_0x9e93x2b[_0x9e93x2a]= {$like:_0x8b8f[71]+ _0x9e93x28[_0x8b8f[58]][_0x8b8f[70]]+ _0x8b8f[71]};return _0x9e93x2b})})};_0x9e93x1b= _[_0x8b8f[73]]({},_0x9e93x1b,_0x9e93x28[_0x8b8f[74]]);return db[_0x8b8f[56]][_0x8b8f[76]](_0x9e93x1b)[_0x8b8f[45]](respondWithFilteredResult(_0x9e93x15,_0x9e93x1b,_0x8b8f[53]))[_0x8b8f[75]](handleError(_0x9e93x15,null,_0x8b8f[53]))};exports[_0x8b8f[77]]= function(_0x9e93x28,_0x9e93x15){var _0x9e93x1b={raw:false,where:{id:_0x9e93x28[_0x8b8f[79]][_0x8b8f[78]]}},_0x9e93x29={};_0x9e93x29[_0x8b8f[54]]= _[_0x8b8f[57]](db[_0x8b8f[56]][_0x8b8f[55]]);_0x9e93x29[_0x8b8f[58]]= _[_0x8b8f[57]](_0x9e93x28[_0x8b8f[58]]);_0x9e93x29[_0x8b8f[59]]= _[_0x8b8f[60]](_0x9e93x29[_0x8b8f[54]],_0x9e93x29[_0x8b8f[58]]);_0x9e93x1b[_0x8b8f[61]]= _[_0x8b8f[60]](_0x9e93x29[_0x8b8f[54]],qs[_0x8b8f[62]](_0x9e93x28[_0x8b8f[58]][_0x8b8f[62]]));_0x9e93x1b[_0x8b8f[61]]= (_0x9e93x1b[_0x8b8f[61]][_0x8b8f[63]])?_0x9e93x1b[_0x8b8f[61]]:_0x9e93x29[_0x8b8f[54]];_0x9e93x1b= _[_0x8b8f[73]]({},_0x9e93x1b,_0x9e93x28[_0x8b8f[74]]);return db[_0x8b8f[56]][_0x8b8f[80]](_0x9e93x1b)[_0x8b8f[45]](handleEntityNotFound(_0x9e93x15,null,_0x8b8f[77]))[_0x8b8f[45]](respondWithResult(_0x9e93x15,null,_0x8b8f[77]))[_0x8b8f[75]](handleError(_0x9e93x15,null,_0x8b8f[77]))};exports[_0x8b8f[81]]= function(_0x9e93x28,_0x9e93x15){return db[_0x8b8f[56]][_0x8b8f[81]](_0x9e93x28[_0x8b8f[82]],{})[_0x8b8f[45]](respondWithResult(_0x9e93x15,201,_0x8b8f[81]))[_0x8b8f[75]](handleError(_0x9e93x15,null,_0x8b8f[81]))};exports[_0x8b8f[46]]= function(_0x9e93x28,_0x9e93x15){if(_0x9e93x28[_0x8b8f[82]][_0x8b8f[78]]){delete _0x9e93x28[_0x8b8f[82]][_0x8b8f[78]]};return db[_0x8b8f[56]][_0x8b8f[80]]({where:{id:_0x9e93x28[_0x8b8f[79]][_0x8b8f[78]]}})[_0x8b8f[45]](handleEntityNotFound(_0x9e93x15,null,_0x8b8f[46]))[_0x8b8f[45]](saveUpdates(_0x9e93x28[_0x8b8f[82]],null,_0x8b8f[46]))[_0x8b8f[45]](respondWithResult(_0x9e93x15,null,_0x8b8f[46]))[_0x8b8f[75]](handleError(_0x9e93x15,null,_0x8b8f[46]))};exports[_0x8b8f[48]]= function(_0x9e93x28,_0x9e93x15){return db[_0x8b8f[56]][_0x8b8f[80]]({where:{id:_0x9e93x28[_0x8b8f[79]][_0x8b8f[78]]}})[_0x8b8f[45]](handleEntityNotFound(_0x9e93x15,null,_0x8b8f[48]))[_0x8b8f[45]](removeEntity(_0x9e93x15,null,_0x8b8f[48]))[_0x8b8f[75]](handleError(_0x9e93x15,null,_0x8b8f[48]))};exports[_0x8b8f[83]]= function(_0x9e93x28,_0x9e93x15){return db[_0x8b8f[56]][_0x8b8f[83]]()[_0x8b8f[45]](respondWithResult(_0x9e93x15,null,_0x8b8f[83]))[_0x8b8f[75]](handleError(_0x9e93x15,null,_0x8b8f[83]))}
\ No newline at end of file
+var _0x4669=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x4669[0];var jsonpatch=require(_0x4669[1]);var rp=require(_0x4669[2]);var moment=require(_0x4669[3]);var BPromise=require(_0x4669[4]);var util=require(_0x4669[5]);var path=require(_0x4669[6]);var sox=require(_0x4669[7]);var ejs=require(_0x4669[8]);var fs=require(_0x4669[9]);var _=require(_0x4669[10]);var squel=require(_0x4669[11]);var crypto=require(_0x4669[12]);var jsforce=require(_0x4669[13]);var toCsv=require(_0x4669[14]);var qs=require(_0x4669[15]);var logger=require(_0x4669[17])(_0x4669[16]);var utils=require(_0x4669[18]);var config=require(_0x4669[19]);var db=require(_0x4669[21])[_0x4669[20]];function respondWithStatusCode(_0x8e63x15,_0x8e63x16,_0x8e63x17){_0x8e63x16= _0x8e63x16|| 204;return function(_0x8e63x18){if(_0x8e63x18){logger[_0x4669[24]](_0x4669[22],_0x8e63x17,_0x8e63x16,_0x4669[23]);logger[_0x4669[26]](_0x4669[25],_0x8e63x17,_0x8e63x16,_0x4669[23]);return _0x8e63x15[_0x4669[27]](_0x8e63x16)};return _0x8e63x15[_0x4669[29]](304)[_0x4669[28]]()}}function respondWithResult(_0x8e63x15,_0x8e63x16,_0x8e63x17){_0x8e63x16= _0x8e63x16|| 200;return function(_0x8e63x18){if(_0x8e63x18){logger[_0x4669[24]](_0x4669[22],_0x8e63x17,_0x8e63x16,_0x4669[30]);logger[_0x4669[26]](_0x4669[25],_0x8e63x17,_0x8e63x16,_0x4669[30],JSON[_0x4669[31]](_0x8e63x18));return _0x8e63x15[_0x4669[29]](_0x8e63x16)[_0x4669[32]](_0x8e63x18)};return _0x8e63x15[_0x4669[29]](304)[_0x4669[28]]()}}function respondWithFilteredResult(_0x8e63x15,_0x8e63x1b,_0x8e63x17){return function(_0x8e63x18){if(_0x8e63x18){var _0x8e63x1c=_0x8e63x18[_0x4669[33]],_0x8e63x1d=_0x8e63x1b[_0x4669[34]],_0x8e63x1e=_0x8e63x1b[_0x4669[34]]+ _0x8e63x1b[_0x4669[35]],_0x8e63x16;if(_0x8e63x1e>= _0x8e63x1c){_0x8e63x1e= _0x8e63x1c;_0x8e63x16= 200}else {_0x8e63x16= 206};_0x8e63x15[_0x4669[29]](_0x8e63x16);logger[_0x4669[24]](_0x4669[22],_0x8e63x17,_0x8e63x16,_0x4669[36]);logger[_0x4669[26]](_0x4669[25],_0x8e63x17,_0x8e63x16,_0x4669[30],JSON[_0x4669[31]](_0x8e63x18));return _0x8e63x15[_0x4669[40]](_0x4669[37],_0x8e63x1d+ _0x4669[38]+ _0x8e63x1e+ _0x4669[39]+ _0x8e63x1c)[_0x4669[32]](_0x8e63x18)};return null}}function patchUpdates(_0x8e63x20){return function(_0x8e63x18){try{jsonpatch[_0x4669[41]](_0x8e63x18,_0x8e63x20,true)}catch(err){return BPromise[_0x4669[42]](err)};return _0x8e63x18[_0x4669[43]]()}}function saveUpdates(_0x8e63x22,_0x8e63x16,_0x8e63x17){return function(_0x8e63x18){if(_0x8e63x18){return _0x8e63x18[_0x4669[46]](_0x8e63x22)[_0x4669[45]](function(_0x8e63x23){logger[_0x4669[24]](_0x4669[22],_0x8e63x17,_0x8e63x16,_0x4669[44]);logger[_0x4669[26]](_0x4669[25],_0x8e63x17,_0x8e63x16,_0x4669[44],JSON[_0x4669[31]](_0x8e63x18));return _0x8e63x23})};return null}}function removeEntity(_0x8e63x15,_0x8e63x16,_0x8e63x17){return function(_0x8e63x18){if(_0x8e63x18){return _0x8e63x18[_0x4669[48]]()[_0x4669[45]](function(){logger[_0x4669[24]](_0x4669[22],_0x8e63x17,_0x8e63x16,_0x4669[47]);logger[_0x4669[26]](_0x4669[25],_0x8e63x17,_0x8e63x16,_0x4669[47],JSON[_0x4669[31]](_0x8e63x18));_0x8e63x15[_0x4669[29]](204)[_0x4669[28]]()})}}}function handleEntityNotFound(_0x8e63x15,_0x8e63x16,_0x8e63x17){return function(_0x8e63x18){if(!_0x8e63x18){logger[_0x4669[50]](_0x4669[22],_0x8e63x17,404,_0x4669[49]);_0x8e63x15[_0x4669[29]](404)[_0x4669[28]]();return null};return _0x8e63x18}}function handleError(_0x8e63x15,_0x8e63x16,_0x8e63x17){_0x8e63x16= _0x8e63x16|| 500;return function(_0x8e63x27){logger[_0x4669[50]](_0x4669[22],_0x8e63x17,_0x8e63x16,JSON[_0x4669[31]](_0x8e63x27));delete _0x8e63x27[_0x4669[51]];_0x8e63x15[_0x4669[29]](_0x8e63x16)[_0x4669[52]](_0x8e63x27)}}exports[_0x4669[53]]= function(_0x8e63x28,_0x8e63x15){var _0x8e63x1b={},_0x8e63x29={};_0x8e63x29[_0x4669[54]]= _[_0x4669[57]](db[_0x4669[56]][_0x4669[55]]);_0x8e63x29[_0x4669[58]]= _[_0x4669[57]](_0x8e63x28[_0x4669[58]]);_0x8e63x29[_0x4669[59]]= _[_0x4669[60]](_0x8e63x29[_0x4669[54]],_0x8e63x29[_0x4669[58]]);_0x8e63x1b[_0x4669[61]]= _[_0x4669[60]](_0x8e63x29[_0x4669[54]],qs[_0x4669[62]](_0x8e63x28[_0x4669[58]][_0x4669[62]]));_0x8e63x1b[_0x4669[61]]= (_0x8e63x1b[_0x4669[61]][_0x4669[63]])?_0x8e63x1b[_0x4669[61]]:_0x8e63x29[_0x4669[54]];if(!_0x8e63x28[_0x4669[58]][_0x4669[65]](_0x4669[64])){_0x8e63x1b[_0x4669[35]]= qs[_0x4669[35]](_0x8e63x28[_0x4669[58]][_0x4669[35]]);_0x8e63x1b[_0x4669[34]]= qs[_0x4669[34]](_0x8e63x28[_0x4669[58]][_0x4669[34]])};_0x8e63x1b[_0x4669[66]]= qs[_0x4669[67]](_0x8e63x28[_0x4669[58]][_0x4669[67]]);_0x8e63x1b[_0x4669[68]]= qs[_0x4669[59]](_[_0x4669[69]](_0x8e63x28[_0x4669[58]],_0x8e63x29[_0x4669[59]]));if(_0x8e63x28[_0x4669[58]][_0x4669[70]]){_0x8e63x1b[_0x4669[68]]= _[_0x4669[73]](_0x8e63x1b[_0x4669[68]],{$or:_[_0x4669[72]](_0x8e63x1b[_0x4669[61]],function(_0x8e63x2a){var _0x8e63x2b={};_0x8e63x2b[_0x8e63x2a]= {$like:_0x4669[71]+ _0x8e63x28[_0x4669[58]][_0x4669[70]]+ _0x4669[71]};return _0x8e63x2b})})};_0x8e63x1b= _[_0x4669[73]]({},_0x8e63x1b,_0x8e63x28[_0x4669[74]]);return db[_0x4669[56]][_0x4669[76]](_0x8e63x1b)[_0x4669[45]](respondWithFilteredResult(_0x8e63x15,_0x8e63x1b,_0x4669[53]))[_0x4669[75]](handleError(_0x8e63x15,null,_0x4669[53]))};exports[_0x4669[77]]= function(_0x8e63x28,_0x8e63x15){var _0x8e63x1b={raw:false,where:{id:_0x8e63x28[_0x4669[79]][_0x4669[78]]}},_0x8e63x29={};_0x8e63x29[_0x4669[54]]= _[_0x4669[57]](db[_0x4669[56]][_0x4669[55]]);_0x8e63x29[_0x4669[58]]= _[_0x4669[57]](_0x8e63x28[_0x4669[58]]);_0x8e63x29[_0x4669[59]]= _[_0x4669[60]](_0x8e63x29[_0x4669[54]],_0x8e63x29[_0x4669[58]]);_0x8e63x1b[_0x4669[61]]= _[_0x4669[60]](_0x8e63x29[_0x4669[54]],qs[_0x4669[62]](_0x8e63x28[_0x4669[58]][_0x4669[62]]));_0x8e63x1b[_0x4669[61]]= (_0x8e63x1b[_0x4669[61]][_0x4669[63]])?_0x8e63x1b[_0x4669[61]]:_0x8e63x29[_0x4669[54]];_0x8e63x1b= _[_0x4669[73]]({},_0x8e63x1b,_0x8e63x28[_0x4669[74]]);return db[_0x4669[56]][_0x4669[80]](_0x8e63x1b)[_0x4669[45]](handleEntityNotFound(_0x8e63x15,null,_0x4669[77]))[_0x4669[45]](respondWithResult(_0x8e63x15,null,_0x4669[77]))[_0x4669[75]](handleError(_0x8e63x15,null,_0x4669[77]))};exports[_0x4669[81]]= function(_0x8e63x28,_0x8e63x15){return db[_0x4669[56]][_0x4669[81]](_0x8e63x28[_0x4669[82]],{})[_0x4669[45]](respondWithResult(_0x8e63x15,201,_0x4669[81]))[_0x4669[75]](handleError(_0x8e63x15,null,_0x4669[81]))};exports[_0x4669[46]]= function(_0x8e63x28,_0x8e63x15){if(_0x8e63x28[_0x4669[82]][_0x4669[78]]){delete _0x8e63x28[_0x4669[82]][_0x4669[78]]};return db[_0x4669[56]][_0x4669[80]]({where:{id:_0x8e63x28[_0x4669[79]][_0x4669[78]]}})[_0x4669[45]](handleEntityNotFound(_0x8e63x15,null,_0x4669[46]))[_0x4669[45]](saveUpdates(_0x8e63x28[_0x4669[82]],null,_0x4669[46]))[_0x4669[45]](respondWithResult(_0x8e63x15,null,_0x4669[46]))[_0x4669[75]](handleError(_0x8e63x15,null,_0x4669[46]))};exports[_0x4669[48]]= function(_0x8e63x28,_0x8e63x15){return db[_0x4669[56]][_0x4669[80]]({where:{id:_0x8e63x28[_0x4669[79]][_0x4669[78]]}})[_0x4669[45]](handleEntityNotFound(_0x8e63x15,null,_0x4669[48]))[_0x4669[45]](removeEntity(_0x8e63x15,null,_0x4669[48]))[_0x4669[75]](handleError(_0x8e63x15,null,_0x4669[48]))};exports[_0x4669[83]]= function(_0x8e63x28,_0x8e63x15){return db[_0x4669[56]][_0x4669[83]]()[_0x4669[45]](respondWithResult(_0x8e63x15,null,_0x4669[83]))[_0x4669[75]](handleError(_0x8e63x15,null,_0x4669[83]))}
\ No newline at end of file
index 520fb59..6c1b5a4 100644 (file)
@@ -1 +1 @@
-var _0xedb7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xedb7[0];var _=require(_0xedb7[1]);var util=require(_0xedb7[2]);var logger=require(_0xedb7[4])(_0xedb7[3]);var attributes=require(_0xedb7[5]);module[_0xedb7[6]]= function(_0xe06cx5,_0xe06cx6){return _0xe06cx5[_0xedb7[9]](_0xedb7[7],attributes,{tableName:_0xedb7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x5a2b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x5a2b[0];var _=require(_0x5a2b[1]);var util=require(_0x5a2b[2]);var logger=require(_0x5a2b[4])(_0x5a2b[3]);var attributes=require(_0x5a2b[5]);module[_0x5a2b[6]]= function(_0xf3c5x5,_0xf3c5x6){return _0xf3c5x5[_0x5a2b[9]](_0x5a2b[7],attributes,{tableName:_0x5a2b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 10f44eb..20e33f3 100644 (file)
@@ -1 +1 @@
-var _0xc25b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc25b[0];var _=require(_0xc25b[1]);var util=require(_0xc25b[2]);var moment=require(_0xc25b[3]);var BPromise=require(_0xc25b[4]);var db=require(_0xc25b[6])[_0xc25b[5]];var utils=require(_0xc25b[7]);var logger=require(_0xc25b[9])(_0xc25b[8]);var jayson=require(_0xc25b[10]);var client=jayson[_0xc25b[12]][_0xc25b[11]]({port:9002});function respondWithRpcPromise(_0xb3afxb,_0xb3afxc,_0xb3afxd){return  new BPromise(function(_0xb3afxe,_0xb3afxf){return client[_0xc25b[25]](_0xb3afxb,_0xb3afxd)[_0xc25b[24]](function(_0xb3afx11){logger[_0xc25b[17]](_0xc25b[13],_0xb3afxc,_0xc25b[16]);logger[_0xc25b[20]](_0xc25b[18],_0xb3afxc,_0xc25b[16],JSON[_0xc25b[19]](_0xb3afx11));if(_0xb3afx11[_0xc25b[14]]){if(_0xb3afx11[_0xc25b[14]][_0xc25b[21]]=== 500){logger[_0xc25b[14]](_0xc25b[13],_0xb3afxc,_0xb3afx11[_0xc25b[14]][_0xc25b[22]]);return _0xb3afxf(_0xb3afx11[_0xc25b[14]][_0xc25b[22]])};logger[_0xc25b[14]](_0xc25b[13],_0xb3afxc,_0xb3afx11[_0xc25b[14]][_0xc25b[22]]);return _0xb3afxe(_0xb3afx11[_0xc25b[14]][_0xc25b[22]])}else {logger[_0xc25b[17]](_0xc25b[13],_0xb3afxc,_0xc25b[16]);_0xb3afxe(_0xb3afx11[_0xc25b[23]][_0xc25b[22]])}})[_0xc25b[15]](function(_0xb3afx10){logger[_0xc25b[14]](_0xc25b[13],_0xb3afxc,_0xb3afx10);_0xb3afxf(_0xb3afx10)})})}
\ No newline at end of file
+var _0x6bf6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6bf6[0];var _=require(_0x6bf6[1]);var util=require(_0x6bf6[2]);var moment=require(_0x6bf6[3]);var BPromise=require(_0x6bf6[4]);var db=require(_0x6bf6[6])[_0x6bf6[5]];var utils=require(_0x6bf6[7]);var logger=require(_0x6bf6[9])(_0x6bf6[8]);var jayson=require(_0x6bf6[10]);var client=jayson[_0x6bf6[12]][_0x6bf6[11]]({port:9002});function respondWithRpcPromise(_0x7ca2xb,_0x7ca2xc,_0x7ca2xd){return  new BPromise(function(_0x7ca2xe,_0x7ca2xf){return client[_0x6bf6[25]](_0x7ca2xb,_0x7ca2xd)[_0x6bf6[24]](function(_0x7ca2x11){logger[_0x6bf6[17]](_0x6bf6[13],_0x7ca2xc,_0x6bf6[16]);logger[_0x6bf6[20]](_0x6bf6[18],_0x7ca2xc,_0x6bf6[16],JSON[_0x6bf6[19]](_0x7ca2x11));if(_0x7ca2x11[_0x6bf6[14]]){if(_0x7ca2x11[_0x6bf6[14]][_0x6bf6[21]]=== 500){logger[_0x6bf6[14]](_0x6bf6[13],_0x7ca2xc,_0x7ca2x11[_0x6bf6[14]][_0x6bf6[22]]);return _0x7ca2xf(_0x7ca2x11[_0x6bf6[14]][_0x6bf6[22]])};logger[_0x6bf6[14]](_0x6bf6[13],_0x7ca2xc,_0x7ca2x11[_0x6bf6[14]][_0x6bf6[22]]);return _0x7ca2xe(_0x7ca2x11[_0x6bf6[14]][_0x6bf6[22]])}else {logger[_0x6bf6[17]](_0x6bf6[13],_0x7ca2xc,_0x6bf6[16]);_0x7ca2xe(_0x7ca2x11[_0x6bf6[23]][_0x6bf6[22]])}})[_0x6bf6[15]](function(_0x7ca2x10){logger[_0x6bf6[14]](_0x6bf6[13],_0x7ca2xc,_0x7ca2x10);_0x7ca2xf(_0x7ca2x10)})})}
\ No newline at end of file
index aa7511f..2b85db7 100644 (file)
@@ -1 +1 @@
-var _0xc892=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc892[0];var multer=require(_0xc892[1]);var util=require(_0xc892[2]);var path=require(_0xc892[3]);var express=require(_0xc892[4]);var router=express.Router();var auth=require(_0xc892[5]);var config=require(_0xc892[6]);var controller=require(_0xc892[7]);router[_0xc892[11]](_0xc892[8],auth[_0xc892[9]](),controller[_0xc892[10]]);router[_0xc892[11]](_0xc892[12],auth[_0xc892[9]](),controller[_0xc892[13]]);router[_0xc892[11]](_0xc892[14],auth[_0xc892[9]](),controller[_0xc892[15]]);router[_0xc892[17]](_0xc892[8],auth[_0xc892[9]](),controller[_0xc892[16]]);router[_0xc892[19]](_0xc892[14],auth[_0xc892[9]](),controller[_0xc892[18]]);router[_0xc892[21]](_0xc892[14],auth[_0xc892[9]](),controller[_0xc892[20]]);module[_0xc892[22]]= router
\ No newline at end of file
+var _0x9aee=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9aee[0];var multer=require(_0x9aee[1]);var util=require(_0x9aee[2]);var path=require(_0x9aee[3]);var express=require(_0x9aee[4]);var router=express.Router();var auth=require(_0x9aee[5]);var config=require(_0x9aee[6]);var controller=require(_0x9aee[7]);router[_0x9aee[11]](_0x9aee[8],auth[_0x9aee[9]](),controller[_0x9aee[10]]);router[_0x9aee[11]](_0x9aee[12],auth[_0x9aee[9]](),controller[_0x9aee[13]]);router[_0x9aee[11]](_0x9aee[14],auth[_0x9aee[9]](),controller[_0x9aee[15]]);router[_0x9aee[17]](_0x9aee[8],auth[_0x9aee[9]](),controller[_0x9aee[16]]);router[_0x9aee[19]](_0x9aee[14],auth[_0x9aee[9]](),controller[_0x9aee[18]]);router[_0x9aee[21]](_0x9aee[14],auth[_0x9aee[9]](),controller[_0x9aee[20]]);module[_0x9aee[22]]= router
\ No newline at end of file
index b46895d..1fd7ca1 100644 (file)
@@ -1 +1 @@
-var _0xc15f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x4C\x4F\x47\x49\x4E\x2C\x20\x50\x41\x55\x53\x45\x2C\x20\x54\x41\x4C\x4B\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x65\x6E\x74\x65\x72\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x65\x78\x69\x74\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x74\x61\x6C\x6B\x3A\x5B\x69\x6E\x62\x6F\x75\x6E\x64\x2C\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5D\x2C\x20\x70\x61\x75\x73\x65\x3A\x5B\x72\x65\x61\x73\x6F\x6E\x5D","\x74\x61\x6C\x6B\x3A\x5B\x73\x74\x61\x72\x74\x5D","\x74\x61\x6C\x6B\x3A\x5B\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x5D","\x74\x61\x6C\x6B\x3A\x5B\x64\x69\x61\x6C\x20\x73\x74\x72\x69\x6E\x67\x5D","\x74\x61\x6C\x6B\x3A\x5B\x71\x75\x65\x75\x65\x5D"];_0xc15f[0];var Sequelize=require(_0xc15f[1]);var moment=require(_0xc15f[2]);module[_0xc15f[3]]= {channel:{type:Sequelize[_0xc15f[4]]},membername:{type:Sequelize[_0xc15f[4]]},interface:{type:Sequelize[_0xc15f[4]]},type:{type:Sequelize[_0xc15f[4]],defaultValue:_0xc15f[5],comment:_0xc15f[6]},duration:{type:Sequelize[_0xc15f[7]]},enterAt:{type:Sequelize[_0xc15f[8]]},exitAt:{type:Sequelize[_0xc15f[8]],set:function(_0x6120x3){var _0x6120x4=moment(_0x6120x3);var _0x6120x5=moment(this[_0xc15f[10]](_0xc15f[9]));var _0x6120x6=_0x6120x4[_0xc15f[12]](_0x6120x5,_0xc15f[11]);this[_0xc15f[14]](_0xc15f[13],_0x6120x3);this[_0xc15f[14]](_0xc15f[15],_0x6120x6|| null)}},data1:{type:Sequelize[_0xc15f[4]],comment:_0xc15f[16]},data2:{type:Sequelize[_0xc15f[4]],comment:_0xc15f[17]},data3:{type:Sequelize[_0xc15f[4]],comment:_0xc15f[18]},data4:{type:Sequelize[_0xc15f[4]],comment:_0xc15f[19]},data5:{type:Sequelize[_0xc15f[4]],comment:_0xc15f[20]},role:{type:Sequelize[_0xc15f[4]]},internal:{type:Sequelize[_0xc15f[7]]},uniqueid:{type:Sequelize[_0xc15f[4]]}}
\ No newline at end of file
+var _0xdc6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x4C\x4F\x47\x49\x4E\x2C\x20\x50\x41\x55\x53\x45\x2C\x20\x54\x41\x4C\x4B\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x65\x6E\x74\x65\x72\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x65\x78\x69\x74\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x74\x61\x6C\x6B\x3A\x5B\x69\x6E\x62\x6F\x75\x6E\x64\x2C\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5D\x2C\x20\x70\x61\x75\x73\x65\x3A\x5B\x72\x65\x61\x73\x6F\x6E\x5D","\x74\x61\x6C\x6B\x3A\x5B\x73\x74\x61\x72\x74\x5D","\x74\x61\x6C\x6B\x3A\x5B\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x5D","\x74\x61\x6C\x6B\x3A\x5B\x64\x69\x61\x6C\x20\x73\x74\x72\x69\x6E\x67\x5D","\x74\x61\x6C\x6B\x3A\x5B\x71\x75\x65\x75\x65\x5D"];_0xdc6d[0];var Sequelize=require(_0xdc6d[1]);var moment=require(_0xdc6d[2]);module[_0xdc6d[3]]= {channel:{type:Sequelize[_0xdc6d[4]]},membername:{type:Sequelize[_0xdc6d[4]]},interface:{type:Sequelize[_0xdc6d[4]]},type:{type:Sequelize[_0xdc6d[4]],defaultValue:_0xdc6d[5],comment:_0xdc6d[6]},duration:{type:Sequelize[_0xdc6d[7]]},enterAt:{type:Sequelize[_0xdc6d[8]]},exitAt:{type:Sequelize[_0xdc6d[8]],set:function(_0x1b41x3){var _0x1b41x4=moment(_0x1b41x3);var _0x1b41x5=moment(this[_0xdc6d[10]](_0xdc6d[9]));var _0x1b41x6=_0x1b41x4[_0xdc6d[12]](_0x1b41x5,_0xdc6d[11]);this[_0xdc6d[14]](_0xdc6d[13],_0x1b41x3);this[_0xdc6d[14]](_0xdc6d[15],_0x1b41x6|| null)}},data1:{type:Sequelize[_0xdc6d[4]],comment:_0xdc6d[16]},data2:{type:Sequelize[_0xdc6d[4]],comment:_0xdc6d[17]},data3:{type:Sequelize[_0xdc6d[4]],comment:_0xdc6d[18]},data4:{type:Sequelize[_0xdc6d[4]],comment:_0xdc6d[19]},data5:{type:Sequelize[_0xdc6d[4]],comment:_0xdc6d[20]},role:{type:Sequelize[_0xdc6d[4]]},internal:{type:Sequelize[_0xdc6d[7]]},uniqueid:{type:Sequelize[_0xdc6d[4]]}}
\ No newline at end of file
index 5590b80..30b79d0 100644 (file)
@@ -1 +1 @@
-var _0x31fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x31fb[0];var jsonpatch=require(_0x31fb[1]);var rp=require(_0x31fb[2]);var moment=require(_0x31fb[3]);var BPromise=require(_0x31fb[4]);var util=require(_0x31fb[5]);var path=require(_0x31fb[6]);var sox=require(_0x31fb[7]);var ejs=require(_0x31fb[8]);var fs=require(_0x31fb[9]);var _=require(_0x31fb[10]);var squel=require(_0x31fb[11]);var crypto=require(_0x31fb[12]);var jsforce=require(_0x31fb[13]);var toCsv=require(_0x31fb[14]);var qs=require(_0x31fb[15]);var logger=require(_0x31fb[17])(_0x31fb[16]);var utils=require(_0x31fb[18]);var config=require(_0x31fb[19]);var db=require(_0x31fb[21])[_0x31fb[20]];function respondWithStatusCode(_0xe3f0x15,_0xe3f0x16,_0xe3f0x17){_0xe3f0x16= _0xe3f0x16|| 204;return function(_0xe3f0x18){if(_0xe3f0x18){logger[_0x31fb[24]](_0x31fb[22],_0xe3f0x17,_0xe3f0x16,_0x31fb[23]);logger[_0x31fb[26]](_0x31fb[25],_0xe3f0x17,_0xe3f0x16,_0x31fb[23]);return _0xe3f0x15[_0x31fb[27]](_0xe3f0x16)};return _0xe3f0x15[_0x31fb[29]](304)[_0x31fb[28]]()}}function respondWithResult(_0xe3f0x15,_0xe3f0x16,_0xe3f0x17){_0xe3f0x16= _0xe3f0x16|| 200;return function(_0xe3f0x18){if(_0xe3f0x18){logger[_0x31fb[24]](_0x31fb[22],_0xe3f0x17,_0xe3f0x16,_0x31fb[30]);logger[_0x31fb[26]](_0x31fb[25],_0xe3f0x17,_0xe3f0x16,_0x31fb[30],JSON[_0x31fb[31]](_0xe3f0x18));return _0xe3f0x15[_0x31fb[29]](_0xe3f0x16)[_0x31fb[32]](_0xe3f0x18)};return _0xe3f0x15[_0x31fb[29]](304)[_0x31fb[28]]()}}function respondWithFilteredResult(_0xe3f0x15,_0xe3f0x1b,_0xe3f0x17){return function(_0xe3f0x18){if(_0xe3f0x18){var _0xe3f0x1c=_0xe3f0x18[_0x31fb[33]],_0xe3f0x1d=_0xe3f0x1b[_0x31fb[34]],_0xe3f0x1e=_0xe3f0x1b[_0x31fb[34]]+ _0xe3f0x1b[_0x31fb[35]],_0xe3f0x16;if(_0xe3f0x1e>= _0xe3f0x1c){_0xe3f0x1e= _0xe3f0x1c;_0xe3f0x16= 200}else {_0xe3f0x16= 206};_0xe3f0x15[_0x31fb[29]](_0xe3f0x16);logger[_0x31fb[24]](_0x31fb[22],_0xe3f0x17,_0xe3f0x16,_0x31fb[36]);logger[_0x31fb[26]](_0x31fb[25],_0xe3f0x17,_0xe3f0x16,_0x31fb[30],JSON[_0x31fb[31]](_0xe3f0x18));return _0xe3f0x15[_0x31fb[40]](_0x31fb[37],_0xe3f0x1d+ _0x31fb[38]+ _0xe3f0x1e+ _0x31fb[39]+ _0xe3f0x1c)[_0x31fb[32]](_0xe3f0x18)};return null}}function patchUpdates(_0xe3f0x20){return function(_0xe3f0x18){try{jsonpatch[_0x31fb[41]](_0xe3f0x18,_0xe3f0x20,true)}catch(err){return BPromise[_0x31fb[42]](err)};return _0xe3f0x18[_0x31fb[43]]()}}function saveUpdates(_0xe3f0x22,_0xe3f0x16,_0xe3f0x17){return function(_0xe3f0x18){if(_0xe3f0x18){return _0xe3f0x18[_0x31fb[46]](_0xe3f0x22)[_0x31fb[45]](function(_0xe3f0x23){logger[_0x31fb[24]](_0x31fb[22],_0xe3f0x17,_0xe3f0x16,_0x31fb[44]);logger[_0x31fb[26]](_0x31fb[25],_0xe3f0x17,_0xe3f0x16,_0x31fb[44],JSON[_0x31fb[31]](_0xe3f0x18));return _0xe3f0x23})};return null}}function removeEntity(_0xe3f0x15,_0xe3f0x16,_0xe3f0x17){return function(_0xe3f0x18){if(_0xe3f0x18){return _0xe3f0x18[_0x31fb[48]]()[_0x31fb[45]](function(){logger[_0x31fb[24]](_0x31fb[22],_0xe3f0x17,_0xe3f0x16,_0x31fb[47]);logger[_0x31fb[26]](_0x31fb[25],_0xe3f0x17,_0xe3f0x16,_0x31fb[47],JSON[_0x31fb[31]](_0xe3f0x18));_0xe3f0x15[_0x31fb[29]](204)[_0x31fb[28]]()})}}}function handleEntityNotFound(_0xe3f0x15,_0xe3f0x16,_0xe3f0x17){return function(_0xe3f0x18){if(!_0xe3f0x18){logger[_0x31fb[50]](_0x31fb[22],_0xe3f0x17,404,_0x31fb[49]);_0xe3f0x15[_0x31fb[29]](404)[_0x31fb[28]]();return null};return _0xe3f0x18}}function handleError(_0xe3f0x15,_0xe3f0x16,_0xe3f0x17){_0xe3f0x16= _0xe3f0x16|| 500;return function(_0xe3f0x27){logger[_0x31fb[50]](_0x31fb[22],_0xe3f0x17,_0xe3f0x16,JSON[_0x31fb[31]](_0xe3f0x27));delete _0xe3f0x27[_0x31fb[51]];_0xe3f0x15[_0x31fb[29]](_0xe3f0x16)[_0x31fb[52]](_0xe3f0x27)}}exports[_0x31fb[53]]= function(_0xe3f0x28,_0xe3f0x15){var _0xe3f0x1b={},_0xe3f0x29={};_0xe3f0x29[_0x31fb[54]]= _[_0x31fb[57]](db[_0x31fb[56]][_0x31fb[55]]);_0xe3f0x29[_0x31fb[58]]= _[_0x31fb[57]](_0xe3f0x28[_0x31fb[58]]);_0xe3f0x29[_0x31fb[59]]= _[_0x31fb[60]](_0xe3f0x29[_0x31fb[54]],_0xe3f0x29[_0x31fb[58]]);_0xe3f0x1b[_0x31fb[61]]= _[_0x31fb[60]](_0xe3f0x29[_0x31fb[54]],qs[_0x31fb[62]](_0xe3f0x28[_0x31fb[58]][_0x31fb[62]]));_0xe3f0x1b[_0x31fb[61]]= (_0xe3f0x1b[_0x31fb[61]][_0x31fb[63]])?_0xe3f0x1b[_0x31fb[61]]:_0xe3f0x29[_0x31fb[54]];if(!_0xe3f0x28[_0x31fb[58]][_0x31fb[65]](_0x31fb[64])){_0xe3f0x1b[_0x31fb[35]]= qs[_0x31fb[35]](_0xe3f0x28[_0x31fb[58]][_0x31fb[35]]);_0xe3f0x1b[_0x31fb[34]]= qs[_0x31fb[34]](_0xe3f0x28[_0x31fb[58]][_0x31fb[34]])};_0xe3f0x1b[_0x31fb[66]]= qs[_0x31fb[67]](_0xe3f0x28[_0x31fb[58]][_0x31fb[67]]);_0xe3f0x1b[_0x31fb[68]]= qs[_0x31fb[59]](_[_0x31fb[69]](_0xe3f0x28[_0x31fb[58]],_0xe3f0x29[_0x31fb[59]]));if(_0xe3f0x28[_0x31fb[58]][_0x31fb[70]]){_0xe3f0x1b[_0x31fb[68]]= _[_0x31fb[73]](_0xe3f0x1b[_0x31fb[68]],{$or:_[_0x31fb[72]](_0xe3f0x1b[_0x31fb[61]],function(_0xe3f0x2a){var _0xe3f0x2b={};_0xe3f0x2b[_0xe3f0x2a]= {$like:_0x31fb[71]+ _0xe3f0x28[_0x31fb[58]][_0x31fb[70]]+ _0x31fb[71]};return _0xe3f0x2b})})};_0xe3f0x1b= _[_0x31fb[73]]({},_0xe3f0x1b,_0xe3f0x28[_0x31fb[74]]);return db[_0x31fb[56]][_0x31fb[76]](_0xe3f0x1b)[_0x31fb[45]](respondWithFilteredResult(_0xe3f0x15,_0xe3f0x1b,_0x31fb[53]))[_0x31fb[75]](handleError(_0xe3f0x15,null,_0x31fb[53]))};exports[_0x31fb[77]]= function(_0xe3f0x28,_0xe3f0x15){var _0xe3f0x1b={raw:true,where:{id:_0xe3f0x28[_0x31fb[79]][_0x31fb[78]]}},_0xe3f0x29={};_0xe3f0x29[_0x31fb[54]]= _[_0x31fb[57]](db[_0x31fb[56]][_0x31fb[55]]);_0xe3f0x29[_0x31fb[58]]= _[_0x31fb[57]](_0xe3f0x28[_0x31fb[58]]);_0xe3f0x29[_0x31fb[59]]= _[_0x31fb[60]](_0xe3f0x29[_0x31fb[54]],_0xe3f0x29[_0x31fb[58]]);_0xe3f0x1b[_0x31fb[61]]= _[_0x31fb[60]](_0xe3f0x29[_0x31fb[54]],qs[_0x31fb[62]](_0xe3f0x28[_0x31fb[58]][_0x31fb[62]]));_0xe3f0x1b[_0x31fb[61]]= (_0xe3f0x1b[_0x31fb[61]][_0x31fb[63]])?_0xe3f0x1b[_0x31fb[61]]:_0xe3f0x29[_0x31fb[54]];_0xe3f0x1b= _[_0x31fb[73]]({},_0xe3f0x1b,_0xe3f0x28[_0x31fb[74]]);return db[_0x31fb[56]][_0x31fb[80]](_0xe3f0x1b)[_0x31fb[45]](handleEntityNotFound(_0xe3f0x15,null,_0x31fb[77]))[_0x31fb[45]](respondWithResult(_0xe3f0x15,null,_0x31fb[77]))[_0x31fb[75]](handleError(_0xe3f0x15,null,_0x31fb[77]))};exports[_0x31fb[81]]= function(_0xe3f0x28,_0xe3f0x15){return db[_0x31fb[56]][_0x31fb[81]](_0xe3f0x28[_0x31fb[82]],{})[_0x31fb[45]](respondWithResult(_0xe3f0x15,201,_0x31fb[81]))[_0x31fb[75]](handleError(_0xe3f0x15,null,_0x31fb[81]))};exports[_0x31fb[46]]= function(_0xe3f0x28,_0xe3f0x15){if(_0xe3f0x28[_0x31fb[82]][_0x31fb[78]]){delete _0xe3f0x28[_0x31fb[82]][_0x31fb[78]]};return db[_0x31fb[56]][_0x31fb[80]]({where:{id:_0xe3f0x28[_0x31fb[79]][_0x31fb[78]]}})[_0x31fb[45]](handleEntityNotFound(_0xe3f0x15,null,_0x31fb[46]))[_0x31fb[45]](saveUpdates(_0xe3f0x28[_0x31fb[82]],null,_0x31fb[46]))[_0x31fb[45]](respondWithResult(_0xe3f0x15,null,_0x31fb[46]))[_0x31fb[75]](handleError(_0xe3f0x15,null,_0x31fb[46]))};exports[_0x31fb[48]]= function(_0xe3f0x28,_0xe3f0x15){return db[_0x31fb[56]][_0x31fb[80]]({where:{id:_0xe3f0x28[_0x31fb[79]][_0x31fb[78]]}})[_0x31fb[45]](handleEntityNotFound(_0xe3f0x15,null,_0x31fb[48]))[_0x31fb[45]](removeEntity(_0xe3f0x15,null,_0x31fb[48]))[_0x31fb[75]](handleError(_0xe3f0x15,null,_0x31fb[48]))};exports[_0x31fb[83]]= function(_0xe3f0x28,_0xe3f0x15){return db[_0x31fb[56]][_0x31fb[83]]()[_0x31fb[45]](respondWithResult(_0xe3f0x15,null,_0x31fb[83]))[_0x31fb[75]](handleError(_0xe3f0x15,null,_0x31fb[83]))}
\ No newline at end of file
+var _0xc32e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xc32e[0];var jsonpatch=require(_0xc32e[1]);var rp=require(_0xc32e[2]);var moment=require(_0xc32e[3]);var BPromise=require(_0xc32e[4]);var util=require(_0xc32e[5]);var path=require(_0xc32e[6]);var sox=require(_0xc32e[7]);var ejs=require(_0xc32e[8]);var fs=require(_0xc32e[9]);var _=require(_0xc32e[10]);var squel=require(_0xc32e[11]);var crypto=require(_0xc32e[12]);var jsforce=require(_0xc32e[13]);var toCsv=require(_0xc32e[14]);var qs=require(_0xc32e[15]);var logger=require(_0xc32e[17])(_0xc32e[16]);var utils=require(_0xc32e[18]);var config=require(_0xc32e[19]);var db=require(_0xc32e[21])[_0xc32e[20]];function respondWithStatusCode(_0x6a6cx15,_0x6a6cx16,_0x6a6cx17){_0x6a6cx16= _0x6a6cx16|| 204;return function(_0x6a6cx18){if(_0x6a6cx18){logger[_0xc32e[24]](_0xc32e[22],_0x6a6cx17,_0x6a6cx16,_0xc32e[23]);logger[_0xc32e[26]](_0xc32e[25],_0x6a6cx17,_0x6a6cx16,_0xc32e[23]);return _0x6a6cx15[_0xc32e[27]](_0x6a6cx16)};return _0x6a6cx15[_0xc32e[29]](304)[_0xc32e[28]]()}}function respondWithResult(_0x6a6cx15,_0x6a6cx16,_0x6a6cx17){_0x6a6cx16= _0x6a6cx16|| 200;return function(_0x6a6cx18){if(_0x6a6cx18){logger[_0xc32e[24]](_0xc32e[22],_0x6a6cx17,_0x6a6cx16,_0xc32e[30]);logger[_0xc32e[26]](_0xc32e[25],_0x6a6cx17,_0x6a6cx16,_0xc32e[30],JSON[_0xc32e[31]](_0x6a6cx18));return _0x6a6cx15[_0xc32e[29]](_0x6a6cx16)[_0xc32e[32]](_0x6a6cx18)};return _0x6a6cx15[_0xc32e[29]](304)[_0xc32e[28]]()}}function respondWithFilteredResult(_0x6a6cx15,_0x6a6cx1b,_0x6a6cx17){return function(_0x6a6cx18){if(_0x6a6cx18){var _0x6a6cx1c=_0x6a6cx18[_0xc32e[33]],_0x6a6cx1d=_0x6a6cx1b[_0xc32e[34]],_0x6a6cx1e=_0x6a6cx1b[_0xc32e[34]]+ _0x6a6cx1b[_0xc32e[35]],_0x6a6cx16;if(_0x6a6cx1e>= _0x6a6cx1c){_0x6a6cx1e= _0x6a6cx1c;_0x6a6cx16= 200}else {_0x6a6cx16= 206};_0x6a6cx15[_0xc32e[29]](_0x6a6cx16);logger[_0xc32e[24]](_0xc32e[22],_0x6a6cx17,_0x6a6cx16,_0xc32e[36]);logger[_0xc32e[26]](_0xc32e[25],_0x6a6cx17,_0x6a6cx16,_0xc32e[30],JSON[_0xc32e[31]](_0x6a6cx18));return _0x6a6cx15[_0xc32e[40]](_0xc32e[37],_0x6a6cx1d+ _0xc32e[38]+ _0x6a6cx1e+ _0xc32e[39]+ _0x6a6cx1c)[_0xc32e[32]](_0x6a6cx18)};return null}}function patchUpdates(_0x6a6cx20){return function(_0x6a6cx18){try{jsonpatch[_0xc32e[41]](_0x6a6cx18,_0x6a6cx20,true)}catch(err){return BPromise[_0xc32e[42]](err)};return _0x6a6cx18[_0xc32e[43]]()}}function saveUpdates(_0x6a6cx22,_0x6a6cx16,_0x6a6cx17){return function(_0x6a6cx18){if(_0x6a6cx18){return _0x6a6cx18[_0xc32e[46]](_0x6a6cx22)[_0xc32e[45]](function(_0x6a6cx23){logger[_0xc32e[24]](_0xc32e[22],_0x6a6cx17,_0x6a6cx16,_0xc32e[44]);logger[_0xc32e[26]](_0xc32e[25],_0x6a6cx17,_0x6a6cx16,_0xc32e[44],JSON[_0xc32e[31]](_0x6a6cx18));return _0x6a6cx23})};return null}}function removeEntity(_0x6a6cx15,_0x6a6cx16,_0x6a6cx17){return function(_0x6a6cx18){if(_0x6a6cx18){return _0x6a6cx18[_0xc32e[48]]()[_0xc32e[45]](function(){logger[_0xc32e[24]](_0xc32e[22],_0x6a6cx17,_0x6a6cx16,_0xc32e[47]);logger[_0xc32e[26]](_0xc32e[25],_0x6a6cx17,_0x6a6cx16,_0xc32e[47],JSON[_0xc32e[31]](_0x6a6cx18));_0x6a6cx15[_0xc32e[29]](204)[_0xc32e[28]]()})}}}function handleEntityNotFound(_0x6a6cx15,_0x6a6cx16,_0x6a6cx17){return function(_0x6a6cx18){if(!_0x6a6cx18){logger[_0xc32e[50]](_0xc32e[22],_0x6a6cx17,404,_0xc32e[49]);_0x6a6cx15[_0xc32e[29]](404)[_0xc32e[28]]();return null};return _0x6a6cx18}}function handleError(_0x6a6cx15,_0x6a6cx16,_0x6a6cx17){_0x6a6cx16= _0x6a6cx16|| 500;return function(_0x6a6cx27){logger[_0xc32e[50]](_0xc32e[22],_0x6a6cx17,_0x6a6cx16,JSON[_0xc32e[31]](_0x6a6cx27));delete _0x6a6cx27[_0xc32e[51]];_0x6a6cx15[_0xc32e[29]](_0x6a6cx16)[_0xc32e[52]](_0x6a6cx27)}}exports[_0xc32e[53]]= function(_0x6a6cx28,_0x6a6cx15){var _0x6a6cx1b={},_0x6a6cx29={};_0x6a6cx29[_0xc32e[54]]= _[_0xc32e[57]](db[_0xc32e[56]][_0xc32e[55]]);_0x6a6cx29[_0xc32e[58]]= _[_0xc32e[57]](_0x6a6cx28[_0xc32e[58]]);_0x6a6cx29[_0xc32e[59]]= _[_0xc32e[60]](_0x6a6cx29[_0xc32e[54]],_0x6a6cx29[_0xc32e[58]]);_0x6a6cx1b[_0xc32e[61]]= _[_0xc32e[60]](_0x6a6cx29[_0xc32e[54]],qs[_0xc32e[62]](_0x6a6cx28[_0xc32e[58]][_0xc32e[62]]));_0x6a6cx1b[_0xc32e[61]]= (_0x6a6cx1b[_0xc32e[61]][_0xc32e[63]])?_0x6a6cx1b[_0xc32e[61]]:_0x6a6cx29[_0xc32e[54]];if(!_0x6a6cx28[_0xc32e[58]][_0xc32e[65]](_0xc32e[64])){_0x6a6cx1b[_0xc32e[35]]= qs[_0xc32e[35]](_0x6a6cx28[_0xc32e[58]][_0xc32e[35]]);_0x6a6cx1b[_0xc32e[34]]= qs[_0xc32e[34]](_0x6a6cx28[_0xc32e[58]][_0xc32e[34]])};_0x6a6cx1b[_0xc32e[66]]= qs[_0xc32e[67]](_0x6a6cx28[_0xc32e[58]][_0xc32e[67]]);_0x6a6cx1b[_0xc32e[68]]= qs[_0xc32e[59]](_[_0xc32e[69]](_0x6a6cx28[_0xc32e[58]],_0x6a6cx29[_0xc32e[59]]));if(_0x6a6cx28[_0xc32e[58]][_0xc32e[70]]){_0x6a6cx1b[_0xc32e[68]]= _[_0xc32e[73]](_0x6a6cx1b[_0xc32e[68]],{$or:_[_0xc32e[72]](_0x6a6cx1b[_0xc32e[61]],function(_0x6a6cx2a){var _0x6a6cx2b={};_0x6a6cx2b[_0x6a6cx2a]= {$like:_0xc32e[71]+ _0x6a6cx28[_0xc32e[58]][_0xc32e[70]]+ _0xc32e[71]};return _0x6a6cx2b})})};_0x6a6cx1b= _[_0xc32e[73]]({},_0x6a6cx1b,_0x6a6cx28[_0xc32e[74]]);return db[_0xc32e[56]][_0xc32e[76]](_0x6a6cx1b)[_0xc32e[45]](respondWithFilteredResult(_0x6a6cx15,_0x6a6cx1b,_0xc32e[53]))[_0xc32e[75]](handleError(_0x6a6cx15,null,_0xc32e[53]))};exports[_0xc32e[77]]= function(_0x6a6cx28,_0x6a6cx15){var _0x6a6cx1b={raw:true,where:{id:_0x6a6cx28[_0xc32e[79]][_0xc32e[78]]}},_0x6a6cx29={};_0x6a6cx29[_0xc32e[54]]= _[_0xc32e[57]](db[_0xc32e[56]][_0xc32e[55]]);_0x6a6cx29[_0xc32e[58]]= _[_0xc32e[57]](_0x6a6cx28[_0xc32e[58]]);_0x6a6cx29[_0xc32e[59]]= _[_0xc32e[60]](_0x6a6cx29[_0xc32e[54]],_0x6a6cx29[_0xc32e[58]]);_0x6a6cx1b[_0xc32e[61]]= _[_0xc32e[60]](_0x6a6cx29[_0xc32e[54]],qs[_0xc32e[62]](_0x6a6cx28[_0xc32e[58]][_0xc32e[62]]));_0x6a6cx1b[_0xc32e[61]]= (_0x6a6cx1b[_0xc32e[61]][_0xc32e[63]])?_0x6a6cx1b[_0xc32e[61]]:_0x6a6cx29[_0xc32e[54]];_0x6a6cx1b= _[_0xc32e[73]]({},_0x6a6cx1b,_0x6a6cx28[_0xc32e[74]]);return db[_0xc32e[56]][_0xc32e[80]](_0x6a6cx1b)[_0xc32e[45]](handleEntityNotFound(_0x6a6cx15,null,_0xc32e[77]))[_0xc32e[45]](respondWithResult(_0x6a6cx15,null,_0xc32e[77]))[_0xc32e[75]](handleError(_0x6a6cx15,null,_0xc32e[77]))};exports[_0xc32e[81]]= function(_0x6a6cx28,_0x6a6cx15){return db[_0xc32e[56]][_0xc32e[81]](_0x6a6cx28[_0xc32e[82]],{})[_0xc32e[45]](respondWithResult(_0x6a6cx15,201,_0xc32e[81]))[_0xc32e[75]](handleError(_0x6a6cx15,null,_0xc32e[81]))};exports[_0xc32e[46]]= function(_0x6a6cx28,_0x6a6cx15){if(_0x6a6cx28[_0xc32e[82]][_0xc32e[78]]){delete _0x6a6cx28[_0xc32e[82]][_0xc32e[78]]};return db[_0xc32e[56]][_0xc32e[80]]({where:{id:_0x6a6cx28[_0xc32e[79]][_0xc32e[78]]}})[_0xc32e[45]](handleEntityNotFound(_0x6a6cx15,null,_0xc32e[46]))[_0xc32e[45]](saveUpdates(_0x6a6cx28[_0xc32e[82]],null,_0xc32e[46]))[_0xc32e[45]](respondWithResult(_0x6a6cx15,null,_0xc32e[46]))[_0xc32e[75]](handleError(_0x6a6cx15,null,_0xc32e[46]))};exports[_0xc32e[48]]= function(_0x6a6cx28,_0x6a6cx15){return db[_0xc32e[56]][_0xc32e[80]]({where:{id:_0x6a6cx28[_0xc32e[79]][_0xc32e[78]]}})[_0xc32e[45]](handleEntityNotFound(_0x6a6cx15,null,_0xc32e[48]))[_0xc32e[45]](removeEntity(_0x6a6cx15,null,_0xc32e[48]))[_0xc32e[75]](handleError(_0x6a6cx15,null,_0xc32e[48]))};exports[_0xc32e[83]]= function(_0x6a6cx28,_0x6a6cx15){return db[_0xc32e[56]][_0xc32e[83]]()[_0xc32e[45]](respondWithResult(_0x6a6cx15,null,_0xc32e[83]))[_0xc32e[75]](handleError(_0x6a6cx15,null,_0xc32e[83]))}
\ No newline at end of file
index 311744f..f42feec 100644 (file)
@@ -1 +1 @@
-var _0xd0fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xd0fb[0];var _=require(_0xd0fb[1]);var util=require(_0xd0fb[2]);var logger=require(_0xd0fb[4])(_0xd0fb[3]);var attributes=require(_0xd0fb[5]);module[_0xd0fb[6]]= function(_0xb252x5,_0xb252x6){return _0xb252x5[_0xd0fb[9]](_0xd0fb[7],attributes,{tableName:_0xd0fb[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe1ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xe1ef[0];var _=require(_0xe1ef[1]);var util=require(_0xe1ef[2]);var logger=require(_0xe1ef[4])(_0xe1ef[3]);var attributes=require(_0xe1ef[5]);module[_0xe1ef[6]]= function(_0xe480x5,_0xe480x6){return _0xe480x5[_0xe1ef[9]](_0xe1ef[7],attributes,{tableName:_0xe1ef[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 6f2b468..103b119 100644 (file)
@@ -1 +1 @@
-var _0xb12b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0xb12b[0];var _=require(_0xb12b[1]);var util=require(_0xb12b[2]);var moment=require(_0xb12b[3]);var BPromise=require(_0xb12b[4]);var db=require(_0xb12b[6])[_0xb12b[5]];var utils=require(_0xb12b[7]);var logger=require(_0xb12b[9])(_0xb12b[8]);var jayson=require(_0xb12b[10]);var client=jayson[_0xb12b[12]][_0xb12b[11]]({port:9002});function respondWithRpcPromise(_0x887axb,_0x887axc,_0x887axd){return  new BPromise(function(_0x887axe,_0x887axf){return client[_0xb12b[25]](_0x887axb,_0x887axd)[_0xb12b[24]](function(_0x887ax11){logger[_0xb12b[17]](_0xb12b[13],_0x887axc,_0xb12b[16]);logger[_0xb12b[20]](_0xb12b[18],_0x887axc,_0xb12b[16],JSON[_0xb12b[19]](_0x887ax11));if(_0x887ax11[_0xb12b[14]]){if(_0x887ax11[_0xb12b[14]][_0xb12b[21]]=== 500){logger[_0xb12b[14]](_0xb12b[13],_0x887axc,_0x887ax11[_0xb12b[14]][_0xb12b[22]]);return _0x887axf(_0x887ax11[_0xb12b[14]][_0xb12b[22]])};logger[_0xb12b[14]](_0xb12b[13],_0x887axc,_0x887ax11[_0xb12b[14]][_0xb12b[22]]);return _0x887axe(_0x887ax11[_0xb12b[14]][_0xb12b[22]])}else {logger[_0xb12b[17]](_0xb12b[13],_0x887axc,_0xb12b[16]);_0x887axe(_0x887ax11[_0xb12b[23]][_0xb12b[22]])}})[_0xb12b[15]](function(_0x887ax10){logger[_0xb12b[14]](_0xb12b[13],_0x887axc,_0x887ax10);_0x887axf(_0x887ax10)})})}exports[_0xb12b[26]]= function(_0x887axd){var _0x887ax12=this;return  new Promise(function(_0x887axe,_0x887axf){return db[_0xb12b[37]][_0xb12b[36]]({raw:_0x887axd[_0xb12b[27]]?(_0x887axd[_0xb12b[27]][_0xb12b[28]]=== undefined)?true:false:true,where:_0x887axd[_0xb12b[27]]?_0x887axd[_0xb12b[27]][_0xb12b[29]]|| null:null,attributes:_0x887axd[_0xb12b[27]]?_0x887axd[_0xb12b[27]][_0xb12b[30]]|| null:null,limit:_0x887axd[_0xb12b[27]]?_0x887axd[_0xb12b[27]][_0xb12b[31]]|| null:null,include:_0x887axd[_0xb12b[27]]?(_0x887axd[_0xb12b[27]][_0xb12b[32]]?_[_0xb12b[35]](_0x887axd[_0xb12b[27]][_0xb12b[32]],function(_0x887ax13){return {model:db[_0x887ax13[_0xb12b[33]]],as:_0x887ax13[_0xb12b[34]],attributes:_0x887ax13[_0xb12b[30]],include:_0x887ax13[_0xb12b[32]]?_[_0xb12b[35]](_0x887ax13[_0xb12b[32]],function(_0x887ax14){return {model:db[_0x887ax14[_0xb12b[33]]],as:_0x887ax14[_0xb12b[34]],attributes:_0x887ax14[_0xb12b[30]],include:_0x887ax14[_0xb12b[32]]?_[_0xb12b[35]](_0x887ax14[_0xb12b[32]],function(_0x887ax15){return {model:db[_0x887ax15[_0xb12b[33]]],as:_0x887ax15[_0xb12b[34]],attributes:_0x887ax15[_0xb12b[30]]}}):[]}}):[]}}):[]):[]})[_0xb12b[24]](function(_0x887ax11){logger[_0xb12b[17]](_0xb12b[26],_0x887axd);logger[_0xb12b[20]](_0xb12b[26],_0x887axd,JSON[_0xb12b[19]](_0x887ax11));_0x887axe(_0x887ax11)})[_0xb12b[15]](function(_0x887ax10){logger[_0xb12b[14]](_0xb12b[26],_0x887ax10[_0xb12b[22]],_0x887axd);_0x887axf(_0x887ax12[_0xb12b[14]](500,_0x887ax10[_0xb12b[22]]))})})};exports[_0xb12b[38]]= function(_0x887axd){var _0x887ax12=this;return  new Promise(function(_0x887axe,_0x887axf){return db[_0xb12b[37]][_0xb12b[40]](_0x887axd[_0xb12b[39]],{raw:_0x887axd[_0xb12b[27]]?(_0x887axd[_0xb12b[27]][_0xb12b[28]]=== undefined)?true:false:true})[_0xb12b[24]](function(_0x887ax11){logger[_0xb12b[17]](_0xb12b[38],_0x887axd);logger[_0xb12b[20]](_0xb12b[38],_0x887axd,JSON[_0xb12b[19]](_0x887ax11));_0x887axe(_0x887ax11)})[_0xb12b[15]](function(_0x887ax10){logger[_0xb12b[14]](_0xb12b[38],_0x887ax10[_0xb12b[22]],_0x887axd);_0x887axf(_0x887ax12[_0xb12b[14]](500,_0x887ax10[_0xb12b[22]]))})})};exports[_0xb12b[41]]= function(_0x887axd){var _0x887ax12=this;return  new Promise(function(_0x887axe,_0x887axf){return db[_0xb12b[37]][_0xb12b[42]](_0x887axd[_0xb12b[39]],{raw:_0x887axd[_0xb12b[27]]?(_0x887axd[_0xb12b[27]][_0xb12b[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x887axd[_0xb12b[27]]?_0x887axd[_0xb12b[27]][_0xb12b[29]]|| null:null,attributes:_0x887axd[_0xb12b[27]]?_0x887axd[_0xb12b[27]][_0xb12b[30]]|| null:null,limit:_0x887axd[_0xb12b[27]]?_0x887axd[_0xb12b[27]][_0xb12b[31]]|| null:null})[_0xb12b[24]](function(_0x887ax11){logger[_0xb12b[17]](_0xb12b[41],_0x887axd);logger[_0xb12b[20]](_0xb12b[41],_0x887axd,JSON[_0xb12b[19]](_0x887ax11));_0x887axe(_0x887ax11)})[_0xb12b[15]](function(_0x887ax10){logger[_0xb12b[14]](_0xb12b[41],_0x887ax10[_0xb12b[22]],_0x887axd);_0x887axf(_0x887ax12[_0xb12b[14]](500,_0x887ax10[_0xb12b[22]]))})})}
\ No newline at end of file
+var _0x6456=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0x6456[0];var _=require(_0x6456[1]);var util=require(_0x6456[2]);var moment=require(_0x6456[3]);var BPromise=require(_0x6456[4]);var db=require(_0x6456[6])[_0x6456[5]];var utils=require(_0x6456[7]);var logger=require(_0x6456[9])(_0x6456[8]);var jayson=require(_0x6456[10]);var client=jayson[_0x6456[12]][_0x6456[11]]({port:9002});function respondWithRpcPromise(_0x4dd2xb,_0x4dd2xc,_0x4dd2xd){return  new BPromise(function(_0x4dd2xe,_0x4dd2xf){return client[_0x6456[25]](_0x4dd2xb,_0x4dd2xd)[_0x6456[24]](function(_0x4dd2x11){logger[_0x6456[17]](_0x6456[13],_0x4dd2xc,_0x6456[16]);logger[_0x6456[20]](_0x6456[18],_0x4dd2xc,_0x6456[16],JSON[_0x6456[19]](_0x4dd2x11));if(_0x4dd2x11[_0x6456[14]]){if(_0x4dd2x11[_0x6456[14]][_0x6456[21]]=== 500){logger[_0x6456[14]](_0x6456[13],_0x4dd2xc,_0x4dd2x11[_0x6456[14]][_0x6456[22]]);return _0x4dd2xf(_0x4dd2x11[_0x6456[14]][_0x6456[22]])};logger[_0x6456[14]](_0x6456[13],_0x4dd2xc,_0x4dd2x11[_0x6456[14]][_0x6456[22]]);return _0x4dd2xe(_0x4dd2x11[_0x6456[14]][_0x6456[22]])}else {logger[_0x6456[17]](_0x6456[13],_0x4dd2xc,_0x6456[16]);_0x4dd2xe(_0x4dd2x11[_0x6456[23]][_0x6456[22]])}})[_0x6456[15]](function(_0x4dd2x10){logger[_0x6456[14]](_0x6456[13],_0x4dd2xc,_0x4dd2x10);_0x4dd2xf(_0x4dd2x10)})})}exports[_0x6456[26]]= function(_0x4dd2xd){var _0x4dd2x12=this;return  new Promise(function(_0x4dd2xe,_0x4dd2xf){return db[_0x6456[37]][_0x6456[36]]({raw:_0x4dd2xd[_0x6456[27]]?(_0x4dd2xd[_0x6456[27]][_0x6456[28]]=== undefined)?true:false:true,where:_0x4dd2xd[_0x6456[27]]?_0x4dd2xd[_0x6456[27]][_0x6456[29]]|| null:null,attributes:_0x4dd2xd[_0x6456[27]]?_0x4dd2xd[_0x6456[27]][_0x6456[30]]|| null:null,limit:_0x4dd2xd[_0x6456[27]]?_0x4dd2xd[_0x6456[27]][_0x6456[31]]|| null:null,include:_0x4dd2xd[_0x6456[27]]?(_0x4dd2xd[_0x6456[27]][_0x6456[32]]?_[_0x6456[35]](_0x4dd2xd[_0x6456[27]][_0x6456[32]],function(_0x4dd2x13){return {model:db[_0x4dd2x13[_0x6456[33]]],as:_0x4dd2x13[_0x6456[34]],attributes:_0x4dd2x13[_0x6456[30]],include:_0x4dd2x13[_0x6456[32]]?_[_0x6456[35]](_0x4dd2x13[_0x6456[32]],function(_0x4dd2x14){return {model:db[_0x4dd2x14[_0x6456[33]]],as:_0x4dd2x14[_0x6456[34]],attributes:_0x4dd2x14[_0x6456[30]],include:_0x4dd2x14[_0x6456[32]]?_[_0x6456[35]](_0x4dd2x14[_0x6456[32]],function(_0x4dd2x15){return {model:db[_0x4dd2x15[_0x6456[33]]],as:_0x4dd2x15[_0x6456[34]],attributes:_0x4dd2x15[_0x6456[30]]}}):[]}}):[]}}):[]):[]})[_0x6456[24]](function(_0x4dd2x11){logger[_0x6456[17]](_0x6456[26],_0x4dd2xd);logger[_0x6456[20]](_0x6456[26],_0x4dd2xd,JSON[_0x6456[19]](_0x4dd2x11));_0x4dd2xe(_0x4dd2x11)})[_0x6456[15]](function(_0x4dd2x10){logger[_0x6456[14]](_0x6456[26],_0x4dd2x10[_0x6456[22]],_0x4dd2xd);_0x4dd2xf(_0x4dd2x12[_0x6456[14]](500,_0x4dd2x10[_0x6456[22]]))})})};exports[_0x6456[38]]= function(_0x4dd2xd){var _0x4dd2x12=this;return  new Promise(function(_0x4dd2xe,_0x4dd2xf){return db[_0x6456[37]][_0x6456[40]](_0x4dd2xd[_0x6456[39]],{raw:_0x4dd2xd[_0x6456[27]]?(_0x4dd2xd[_0x6456[27]][_0x6456[28]]=== undefined)?true:false:true})[_0x6456[24]](function(_0x4dd2x11){logger[_0x6456[17]](_0x6456[38],_0x4dd2xd);logger[_0x6456[20]](_0x6456[38],_0x4dd2xd,JSON[_0x6456[19]](_0x4dd2x11));_0x4dd2xe(_0x4dd2x11)})[_0x6456[15]](function(_0x4dd2x10){logger[_0x6456[14]](_0x6456[38],_0x4dd2x10[_0x6456[22]],_0x4dd2xd);_0x4dd2xf(_0x4dd2x12[_0x6456[14]](500,_0x4dd2x10[_0x6456[22]]))})})};exports[_0x6456[41]]= function(_0x4dd2xd){var _0x4dd2x12=this;return  new Promise(function(_0x4dd2xe,_0x4dd2xf){return db[_0x6456[37]][_0x6456[42]](_0x4dd2xd[_0x6456[39]],{raw:_0x4dd2xd[_0x6456[27]]?(_0x4dd2xd[_0x6456[27]][_0x6456[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x4dd2xd[_0x6456[27]]?_0x4dd2xd[_0x6456[27]][_0x6456[29]]|| null:null,attributes:_0x4dd2xd[_0x6456[27]]?_0x4dd2xd[_0x6456[27]][_0x6456[30]]|| null:null,limit:_0x4dd2xd[_0x6456[27]]?_0x4dd2xd[_0x6456[27]][_0x6456[31]]|| null:null})[_0x6456[24]](function(_0x4dd2x11){logger[_0x6456[17]](_0x6456[41],_0x4dd2xd);logger[_0x6456[20]](_0x6456[41],_0x4dd2xd,JSON[_0x6456[19]](_0x4dd2x11));_0x4dd2xe(_0x4dd2x11)})[_0x6456[15]](function(_0x4dd2x10){logger[_0x6456[14]](_0x6456[41],_0x4dd2x10[_0x6456[22]],_0x4dd2xd);_0x4dd2xf(_0x4dd2x12[_0x6456[14]](500,_0x4dd2x10[_0x6456[22]]))})})}
\ No newline at end of file
index d739fc5..12af4de 100644 (file)
@@ -1 +1 @@
-var _0xea00=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xea00[0];var multer=require(_0xea00[1]);var util=require(_0xea00[2]);var path=require(_0xea00[3]);var express=require(_0xea00[4]);var router=express.Router();var auth=require(_0xea00[5]);var config=require(_0xea00[6]);var controller=require(_0xea00[7]);router[_0xea00[11]](_0xea00[8],auth[_0xea00[9]](),controller[_0xea00[10]]);router[_0xea00[11]](_0xea00[12],auth[_0xea00[9]](),controller[_0xea00[13]]);router[_0xea00[15]](_0xea00[8],auth[_0xea00[9]](),controller[_0xea00[14]]);router[_0xea00[17]](_0xea00[12],auth[_0xea00[9]](),controller[_0xea00[16]]);router[_0xea00[19]](_0xea00[12],auth[_0xea00[9]](),controller[_0xea00[18]]);module[_0xea00[20]]= router
\ No newline at end of file
+var _0xd7d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd7d4[0];var multer=require(_0xd7d4[1]);var util=require(_0xd7d4[2]);var path=require(_0xd7d4[3]);var express=require(_0xd7d4[4]);var router=express.Router();var auth=require(_0xd7d4[5]);var config=require(_0xd7d4[6]);var controller=require(_0xd7d4[7]);router[_0xd7d4[11]](_0xd7d4[8],auth[_0xd7d4[9]](),controller[_0xd7d4[10]]);router[_0xd7d4[11]](_0xd7d4[12],auth[_0xd7d4[9]](),controller[_0xd7d4[13]]);router[_0xd7d4[15]](_0xd7d4[8],auth[_0xd7d4[9]](),controller[_0xd7d4[14]]);router[_0xd7d4[17]](_0xd7d4[12],auth[_0xd7d4[9]](),controller[_0xd7d4[16]]);router[_0xd7d4[19]](_0xd7d4[12],auth[_0xd7d4[9]](),controller[_0xd7d4[18]]);module[_0xd7d4[20]]= router
\ No newline at end of file
index 4f31de0..f381d07 100644 (file)
@@ -1 +1 @@
-var _0x8aaf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x6F\x63\x61\x6C\x6E\x65\x74","\x65\x78\x74\x65\x72\x6E\x69\x70","\x53\x54\x52\x49\x4E\x47"];_0x8aaf[0];var Sequelize=require(_0x8aaf[1]);module[_0x8aaf[2]]= {type:{type:Sequelize.ENUM(_0x8aaf[3],_0x8aaf[4])},value:{type:Sequelize[_0x8aaf[5]]}}
\ No newline at end of file
+var _0xeb53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x6F\x63\x61\x6C\x6E\x65\x74","\x65\x78\x74\x65\x72\x6E\x69\x70","\x53\x54\x52\x49\x4E\x47"];_0xeb53[0];var Sequelize=require(_0xeb53[1]);module[_0xeb53[2]]= {type:{type:Sequelize.ENUM(_0xeb53[3],_0xeb53[4])},value:{type:Sequelize[_0xeb53[5]]}}
\ No newline at end of file
index 041f678..fbc3435 100644 (file)
@@ -1 +1 @@
-var _0xfa36=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4E\x65\x74\x77\x6F\x72\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x25\x73\x2E\x63\x6F\x6E\x66","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x66\x6F\x72\x6D\x61\x74","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0xfa36[0];var jsonpatch=require(_0xfa36[1]);var rp=require(_0xfa36[2]);var moment=require(_0xfa36[3]);var BPromise=require(_0xfa36[4]);var util=require(_0xfa36[5]);var path=require(_0xfa36[6]);var sox=require(_0xfa36[7]);var ejs=require(_0xfa36[8]);var fs=require(_0xfa36[9]);var _=require(_0xfa36[10]);var squel=require(_0xfa36[11]);var crypto=require(_0xfa36[12]);var jsforce=require(_0xfa36[13]);var toCsv=require(_0xfa36[14]);var qs=require(_0xfa36[15]);var logger=require(_0xfa36[17])(_0xfa36[16]);var utils=require(_0xfa36[18]);var config=require(_0xfa36[19]);var db=require(_0xfa36[21])[_0xfa36[20]];var jayson=require(_0xfa36[22]);var client=jayson[_0xfa36[24]][_0xfa36[23]]({port:9002});function respondWithRpcPromise(_0x360ax17,_0x360ax18,_0x360ax19){return  new BPromise(function(_0x360ax1a,_0x360ax1b){return client[_0xfa36[37]](_0x360ax17,_0x360ax19)[_0xfa36[36]](function(_0x360ax1d){logger[_0xfa36[29]](_0xfa36[25],_0x360ax18,_0xfa36[28]);logger[_0xfa36[32]](_0xfa36[30],_0x360ax18,_0xfa36[28],JSON[_0xfa36[31]](_0x360ax1d));if(_0x360ax1d[_0xfa36[26]]){if(_0x360ax1d[_0xfa36[26]][_0xfa36[33]]=== 500){logger[_0xfa36[26]](_0xfa36[25],_0x360ax18,_0x360ax1d[_0xfa36[26]][_0xfa36[34]]);return _0x360ax1b(_0x360ax1d[_0xfa36[26]][_0xfa36[34]])};logger[_0xfa36[26]](_0xfa36[25],_0x360ax18,_0x360ax1d[_0xfa36[26]][_0xfa36[34]]);return _0x360ax1a(_0x360ax1d[_0xfa36[26]][_0xfa36[34]])}else {logger[_0xfa36[29]](_0xfa36[25],_0x360ax18,_0xfa36[28]);_0x360ax1a(_0x360ax1d[_0xfa36[35]][_0xfa36[34]])}})[_0xfa36[27]](function(_0x360ax1c){logger[_0xfa36[26]](_0xfa36[25],_0x360ax18,_0x360ax1c);_0x360ax1b(_0x360ax1c)})})}function respondWithStatusCode(_0x360ax1d,_0x360ax1f,_0x360ax18){_0x360ax1f= _0x360ax1f|| 204;return function(_0x360ax20){if(_0x360ax20){logger[_0xfa36[29]](_0xfa36[30],_0x360ax18,_0x360ax1f,_0xfa36[38]);logger[_0xfa36[32]](_0xfa36[39],_0x360ax18,_0x360ax1f,_0xfa36[38]);return _0x360ax1d[_0xfa36[40]](_0x360ax1f)};return _0x360ax1d[_0xfa36[42]](304)[_0xfa36[41]]()}}function respondWithResult(_0x360ax1d,_0x360ax1f,_0x360ax18){_0x360ax1f= _0x360ax1f|| 200;return function(_0x360ax20){if(_0x360ax20){logger[_0xfa36[29]](_0xfa36[30],_0x360ax18,_0x360ax1f,_0xfa36[43]);logger[_0xfa36[32]](_0xfa36[39],_0x360ax18,_0x360ax1f,_0xfa36[43],JSON[_0xfa36[31]](_0x360ax20));return _0x360ax1d[_0xfa36[42]](_0x360ax1f)[_0xfa36[44]](_0x360ax20)};return _0x360ax1d[_0xfa36[42]](304)[_0xfa36[41]]()}}function respondWithFilteredResult(_0x360ax1d,_0x360ax23,_0x360ax18){return function(_0x360ax20){if(_0x360ax20){var _0x360ax24=_0x360ax20[_0xfa36[45]],_0x360ax25=_0x360ax23[_0xfa36[46]],_0x360ax26=_0x360ax23[_0xfa36[46]]+ _0x360ax23[_0xfa36[47]],_0x360ax1f;if(_0x360ax26>= _0x360ax24){_0x360ax26= _0x360ax24;_0x360ax1f= 200}else {_0x360ax1f= 206};_0x360ax1d[_0xfa36[42]](_0x360ax1f);logger[_0xfa36[29]](_0xfa36[30],_0x360ax18,_0x360ax1f,_0xfa36[48]);logger[_0xfa36[32]](_0xfa36[39],_0x360ax18,_0x360ax1f,_0xfa36[43],JSON[_0xfa36[31]](_0x360ax20));return _0x360ax1d[_0xfa36[52]](_0xfa36[49],_0x360ax25+ _0xfa36[50]+ _0x360ax26+ _0xfa36[51]+ _0x360ax24)[_0xfa36[44]](_0x360ax20)};return null}}function patchUpdates(_0x360ax28){return function(_0x360ax20){try{jsonpatch[_0xfa36[53]](_0x360ax20,_0x360ax28,true)}catch(err){return BPromise[_0xfa36[54]](err)};return _0x360ax20[_0xfa36[55]]()}}function saveUpdates(_0x360ax2a,_0x360ax1f,_0x360ax18){return function(_0x360ax20){if(_0x360ax20){return _0x360ax20[_0xfa36[57]](_0x360ax2a)[_0xfa36[36]](function(_0x360ax2b){logger[_0xfa36[29]](_0xfa36[30],_0x360ax18,_0x360ax1f,_0xfa36[56]);logger[_0xfa36[32]](_0xfa36[39],_0x360ax18,_0x360ax1f,_0xfa36[56],JSON[_0xfa36[31]](_0x360ax20));return _0x360ax2b})};return null}}function removeEntity(_0x360ax1d,_0x360ax1f,_0x360ax18){return function(_0x360ax20){if(_0x360ax20){return _0x360ax20[_0xfa36[59]]()[_0xfa36[36]](function(){logger[_0xfa36[29]](_0xfa36[30],_0x360ax18,_0x360ax1f,_0xfa36[58]);logger[_0xfa36[32]](_0xfa36[39],_0x360ax18,_0x360ax1f,_0xfa36[58],JSON[_0xfa36[31]](_0x360ax20));_0x360ax1d[_0xfa36[42]](204)[_0xfa36[41]]()})}}}function handleEntityNotFound(_0x360ax1d,_0x360ax1f,_0x360ax18){return function(_0x360ax20){if(!_0x360ax20){logger[_0xfa36[26]](_0xfa36[30],_0x360ax18,404,_0xfa36[60]);_0x360ax1d[_0xfa36[42]](404)[_0xfa36[41]]();return null};return _0x360ax20}}function handleError(_0x360ax1d,_0x360ax1f,_0x360ax18){_0x360ax1f= _0x360ax1f|| 500;return function(_0x360ax1c){logger[_0xfa36[26]](_0xfa36[30],_0x360ax18,_0x360ax1f,JSON[_0xfa36[31]](_0x360ax1c));delete _0x360ax1c[_0xfa36[61]];_0x360ax1d[_0xfa36[42]](_0x360ax1f)[_0xfa36[62]](_0x360ax1c)}}exports[_0xfa36[63]]= function(_0x360ax19,_0x360ax1d){var _0x360ax23={},_0x360ax2f={};_0x360ax2f[_0xfa36[64]]= _[_0xfa36[67]](db[_0xfa36[66]][_0xfa36[65]]);_0x360ax2f[_0xfa36[68]]= _[_0xfa36[67]](_0x360ax19[_0xfa36[68]]);_0x360ax2f[_0xfa36[69]]= _[_0xfa36[70]](_0x360ax2f[_0xfa36[64]],_0x360ax2f[_0xfa36[68]]);_0x360ax23[_0xfa36[71]]= _[_0xfa36[70]](_0x360ax2f[_0xfa36[64]],qs[_0xfa36[72]](_0x360ax19[_0xfa36[68]][_0xfa36[72]]));_0x360ax23[_0xfa36[71]]= (_0x360ax23[_0xfa36[71]][_0xfa36[73]])?_0x360ax23[_0xfa36[71]]:_0x360ax2f[_0xfa36[64]];if(!_0x360ax19[_0xfa36[68]][_0xfa36[75]](_0xfa36[74])){_0x360ax23[_0xfa36[47]]= qs[_0xfa36[47]](_0x360ax19[_0xfa36[68]][_0xfa36[47]]);_0x360ax23[_0xfa36[46]]= qs[_0xfa36[46]](_0x360ax19[_0xfa36[68]][_0xfa36[46]])};_0x360ax23[_0xfa36[76]]= qs[_0xfa36[77]](_0x360ax19[_0xfa36[68]][_0xfa36[77]]);_0x360ax23[_0xfa36[78]]= qs[_0xfa36[69]](_[_0xfa36[79]](_0x360ax19[_0xfa36[68]],_0x360ax2f[_0xfa36[69]]));if(_0x360ax19[_0xfa36[68]][_0xfa36[80]]){_0x360ax23[_0xfa36[78]]= _[_0xfa36[83]](_0x360ax23[_0xfa36[78]],{$or:_[_0xfa36[82]](_0x360ax23[_0xfa36[71]],function(_0x360ax30){var _0x360ax31={};_0x360ax31[_0x360ax30]= {$like:_0xfa36[81]+ _0x360ax19[_0xfa36[68]][_0xfa36[80]]+ _0xfa36[81]};return _0x360ax31})})};_0x360ax23= _[_0xfa36[83]]({},_0x360ax23,_0x360ax19[_0xfa36[84]]);return db[_0xfa36[66]][_0xfa36[85]](_0x360ax23)[_0xfa36[36]](respondWithFilteredResult(_0x360ax1d,_0x360ax23,_0xfa36[63]))[_0xfa36[27]](handleError(_0x360ax1d,null,_0xfa36[63]))};exports[_0xfa36[86]]= function(_0x360ax19,_0x360ax1d){var _0x360ax23={raw:true,where:{id:_0x360ax19[_0xfa36[88]][_0xfa36[87]]}},_0x360ax2f={};_0x360ax2f[_0xfa36[64]]= _[_0xfa36[67]](db[_0xfa36[66]][_0xfa36[65]]);_0x360ax2f[_0xfa36[68]]= _[_0xfa36[67]](_0x360ax19[_0xfa36[68]]);_0x360ax2f[_0xfa36[69]]= _[_0xfa36[70]](_0x360ax2f[_0xfa36[64]],_0x360ax2f[_0xfa36[68]]);_0x360ax23[_0xfa36[71]]= _[_0xfa36[70]](_0x360ax2f[_0xfa36[64]],qs[_0xfa36[72]](_0x360ax19[_0xfa36[68]][_0xfa36[72]]));_0x360ax23[_0xfa36[71]]= (_0x360ax23[_0xfa36[71]][_0xfa36[73]])?_0x360ax23[_0xfa36[71]]:_0x360ax2f[_0xfa36[64]];_0x360ax23= _[_0xfa36[83]]({},_0x360ax23,_0x360ax19[_0xfa36[84]]);return db[_0xfa36[66]][_0xfa36[89]](_0x360ax23)[_0xfa36[36]](handleEntityNotFound(_0x360ax1d,null,_0xfa36[86]))[_0xfa36[36]](respondWithResult(_0x360ax1d,null,_0xfa36[86]))[_0xfa36[27]](handleError(_0x360ax1d,null,_0xfa36[86]))};exports[_0xfa36[90]]= function(_0x360ax19,_0x360ax1d,_0x360ax32){var _0x360ax33;return db[_0xfa36[107]][_0xfa36[106]](function(_0x360ax34){return db[_0xfa36[66]][_0xfa36[90]](_0x360ax19[_0xfa36[102]],{raw:true})[_0xfa36[36]](function(_0x360ax20){_0x360ax33= _0x360ax20;return db[_0xfa36[66]][_0xfa36[105]]({where:{type:_0x360ax19[_0xfa36[102]][_0xfa36[101]]},raw:true})})[_0xfa36[36]](function(_0x360ax35){var _0x360ax36=fs[_0xfa36[97]](path[_0xfa36[95]](config[_0xfa36[93]],_0xfa36[94]),_0xfa36[96]);var _0x360ax37=ejs[_0xfa36[98]](_0x360ax36,{networks:_0x360ax35|| []});fs[_0xfa36[104]](util[_0xfa36[103]](_0xfa36[99],_0x360ax19[_0xfa36[102]][_0xfa36[101]][_0xfa36[100]]()),_0x360ax37)})[_0xfa36[36]](function(){return respondWithRpcPromise(_0xfa36[91],_0xfa36[90],{module:_0xfa36[92]})})[_0xfa36[36]](function(){return _0x360ax33})})[_0xfa36[36]](respondWithResult(_0x360ax1d,201,_0xfa36[90]))[_0xfa36[27]](handleError(_0x360ax1d,null,_0xfa36[90]))};exports[_0xfa36[57]]= function(_0x360ax19,_0x360ax1d,_0x360ax32){var _0x360ax33;return db[_0xfa36[107]][_0xfa36[106]](function(_0x360ax34){return db[_0xfa36[66]][_0xfa36[89]]({where:{id:_0x360ax19[_0xfa36[88]][_0xfa36[87]]}})[_0xfa36[36]](handleEntityNotFound(_0x360ax1d,null,_0xfa36[57]))[_0xfa36[36]](saveUpdates(_0x360ax19[_0xfa36[102]],null,_0xfa36[57]))[_0xfa36[36]](function(_0x360ax20){if(_0x360ax20){_0x360ax33= _0x360ax20;return db[_0xfa36[66]][_0xfa36[105]]({where:{type:_0x360ax33[_0xfa36[101]]},raw:true})};return null})[_0xfa36[36]](function(_0x360ax35){if(_0x360ax35){var _0x360ax36=fs[_0xfa36[97]](path[_0xfa36[95]](config[_0xfa36[93]],_0xfa36[94]),_0xfa36[96]);var _0x360ax37=ejs[_0xfa36[98]](_0x360ax36,{networks:_0x360ax35|| []});fs[_0xfa36[104]](util[_0xfa36[103]](_0xfa36[99],_0x360ax33[_0xfa36[101]][_0xfa36[100]]()),_0x360ax37);return respondWithRpcPromise(_0xfa36[91],_0xfa36[57],{module:_0xfa36[92]})};return null})[_0xfa36[36]](function(_0x360ax20){if(_0x360ax20){return _0x360ax33};return null})})[_0xfa36[36]](respondWithResult(_0x360ax1d,null,_0xfa36[57]))[_0xfa36[27]](handleError(_0x360ax1d,null,_0xfa36[57]))};exports[_0xfa36[59]]= function(_0x360ax19,_0x360ax1d,_0x360ax32){var _0x360ax33;return db[_0xfa36[66]][_0xfa36[89]]({where:{id:_0x360ax19[_0xfa36[88]][_0xfa36[87]]}})[_0xfa36[36]](function(_0x360ax20){_0x360ax33= _0x360ax20;return _0x360ax20})[_0xfa36[36]](handleEntityNotFound(_0x360ax1d,null,_0xfa36[59]))[_0xfa36[36]](removeEntity(_0x360ax1d,null,_0xfa36[59]))[_0xfa36[36]](function(){if(_0x360ax33){return db[_0xfa36[66]][_0xfa36[105]]({where:{type:_0x360ax33[_0xfa36[101]]},raw:true})}})[_0xfa36[36]](function(_0x360ax35){if(_0x360ax35){var _0x360ax36=fs[_0xfa36[97]](path[_0xfa36[95]](config[_0xfa36[93]],_0xfa36[94]),_0xfa36[96]);var _0x360ax37=ejs[_0xfa36[98]](_0x360ax36,{networks:_0x360ax35|| []});fs[_0xfa36[104]](util[_0xfa36[103]](_0xfa36[99],_0x360ax33[_0xfa36[101]][_0xfa36[100]]()),_0x360ax37);return respondWithRpcPromise(_0xfa36[91],_0xfa36[59],{module:_0xfa36[92]})}})[_0xfa36[27]](handleError(_0x360ax1d,null,_0xfa36[59]))}
\ No newline at end of file
+var _0x249b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4E\x65\x74\x77\x6F\x72\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x25\x73\x2E\x63\x6F\x6E\x66","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x66\x6F\x72\x6D\x61\x74","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x249b[0];var jsonpatch=require(_0x249b[1]);var rp=require(_0x249b[2]);var moment=require(_0x249b[3]);var BPromise=require(_0x249b[4]);var util=require(_0x249b[5]);var path=require(_0x249b[6]);var sox=require(_0x249b[7]);var ejs=require(_0x249b[8]);var fs=require(_0x249b[9]);var _=require(_0x249b[10]);var squel=require(_0x249b[11]);var crypto=require(_0x249b[12]);var jsforce=require(_0x249b[13]);var toCsv=require(_0x249b[14]);var qs=require(_0x249b[15]);var logger=require(_0x249b[17])(_0x249b[16]);var utils=require(_0x249b[18]);var config=require(_0x249b[19]);var db=require(_0x249b[21])[_0x249b[20]];var jayson=require(_0x249b[22]);var client=jayson[_0x249b[24]][_0x249b[23]]({port:9002});function respondWithRpcPromise(_0x9384x17,_0x9384x18,_0x9384x19){return  new BPromise(function(_0x9384x1a,_0x9384x1b){return client[_0x249b[37]](_0x9384x17,_0x9384x19)[_0x249b[36]](function(_0x9384x1d){logger[_0x249b[29]](_0x249b[25],_0x9384x18,_0x249b[28]);logger[_0x249b[32]](_0x249b[30],_0x9384x18,_0x249b[28],JSON[_0x249b[31]](_0x9384x1d));if(_0x9384x1d[_0x249b[26]]){if(_0x9384x1d[_0x249b[26]][_0x249b[33]]=== 500){logger[_0x249b[26]](_0x249b[25],_0x9384x18,_0x9384x1d[_0x249b[26]][_0x249b[34]]);return _0x9384x1b(_0x9384x1d[_0x249b[26]][_0x249b[34]])};logger[_0x249b[26]](_0x249b[25],_0x9384x18,_0x9384x1d[_0x249b[26]][_0x249b[34]]);return _0x9384x1a(_0x9384x1d[_0x249b[26]][_0x249b[34]])}else {logger[_0x249b[29]](_0x249b[25],_0x9384x18,_0x249b[28]);_0x9384x1a(_0x9384x1d[_0x249b[35]][_0x249b[34]])}})[_0x249b[27]](function(_0x9384x1c){logger[_0x249b[26]](_0x249b[25],_0x9384x18,_0x9384x1c);_0x9384x1b(_0x9384x1c)})})}function respondWithStatusCode(_0x9384x1d,_0x9384x1f,_0x9384x18){_0x9384x1f= _0x9384x1f|| 204;return function(_0x9384x20){if(_0x9384x20){logger[_0x249b[29]](_0x249b[30],_0x9384x18,_0x9384x1f,_0x249b[38]);logger[_0x249b[32]](_0x249b[39],_0x9384x18,_0x9384x1f,_0x249b[38]);return _0x9384x1d[_0x249b[40]](_0x9384x1f)};return _0x9384x1d[_0x249b[42]](304)[_0x249b[41]]()}}function respondWithResult(_0x9384x1d,_0x9384x1f,_0x9384x18){_0x9384x1f= _0x9384x1f|| 200;return function(_0x9384x20){if(_0x9384x20){logger[_0x249b[29]](_0x249b[30],_0x9384x18,_0x9384x1f,_0x249b[43]);logger[_0x249b[32]](_0x249b[39],_0x9384x18,_0x9384x1f,_0x249b[43],JSON[_0x249b[31]](_0x9384x20));return _0x9384x1d[_0x249b[42]](_0x9384x1f)[_0x249b[44]](_0x9384x20)};return _0x9384x1d[_0x249b[42]](304)[_0x249b[41]]()}}function respondWithFilteredResult(_0x9384x1d,_0x9384x23,_0x9384x18){return function(_0x9384x20){if(_0x9384x20){var _0x9384x24=_0x9384x20[_0x249b[45]],_0x9384x25=_0x9384x23[_0x249b[46]],_0x9384x26=_0x9384x23[_0x249b[46]]+ _0x9384x23[_0x249b[47]],_0x9384x1f;if(_0x9384x26>= _0x9384x24){_0x9384x26= _0x9384x24;_0x9384x1f= 200}else {_0x9384x1f= 206};_0x9384x1d[_0x249b[42]](_0x9384x1f);logger[_0x249b[29]](_0x249b[30],_0x9384x18,_0x9384x1f,_0x249b[48]);logger[_0x249b[32]](_0x249b[39],_0x9384x18,_0x9384x1f,_0x249b[43],JSON[_0x249b[31]](_0x9384x20));return _0x9384x1d[_0x249b[52]](_0x249b[49],_0x9384x25+ _0x249b[50]+ _0x9384x26+ _0x249b[51]+ _0x9384x24)[_0x249b[44]](_0x9384x20)};return null}}function patchUpdates(_0x9384x28){return function(_0x9384x20){try{jsonpatch[_0x249b[53]](_0x9384x20,_0x9384x28,true)}catch(err){return BPromise[_0x249b[54]](err)};return _0x9384x20[_0x249b[55]]()}}function saveUpdates(_0x9384x2a,_0x9384x1f,_0x9384x18){return function(_0x9384x20){if(_0x9384x20){return _0x9384x20[_0x249b[57]](_0x9384x2a)[_0x249b[36]](function(_0x9384x2b){logger[_0x249b[29]](_0x249b[30],_0x9384x18,_0x9384x1f,_0x249b[56]);logger[_0x249b[32]](_0x249b[39],_0x9384x18,_0x9384x1f,_0x249b[56],JSON[_0x249b[31]](_0x9384x20));return _0x9384x2b})};return null}}function removeEntity(_0x9384x1d,_0x9384x1f,_0x9384x18){return function(_0x9384x20){if(_0x9384x20){return _0x9384x20[_0x249b[59]]()[_0x249b[36]](function(){logger[_0x249b[29]](_0x249b[30],_0x9384x18,_0x9384x1f,_0x249b[58]);logger[_0x249b[32]](_0x249b[39],_0x9384x18,_0x9384x1f,_0x249b[58],JSON[_0x249b[31]](_0x9384x20));_0x9384x1d[_0x249b[42]](204)[_0x249b[41]]()})}}}function handleEntityNotFound(_0x9384x1d,_0x9384x1f,_0x9384x18){return function(_0x9384x20){if(!_0x9384x20){logger[_0x249b[26]](_0x249b[30],_0x9384x18,404,_0x249b[60]);_0x9384x1d[_0x249b[42]](404)[_0x249b[41]]();return null};return _0x9384x20}}function handleError(_0x9384x1d,_0x9384x1f,_0x9384x18){_0x9384x1f= _0x9384x1f|| 500;return function(_0x9384x1c){logger[_0x249b[26]](_0x249b[30],_0x9384x18,_0x9384x1f,JSON[_0x249b[31]](_0x9384x1c));delete _0x9384x1c[_0x249b[61]];_0x9384x1d[_0x249b[42]](_0x9384x1f)[_0x249b[62]](_0x9384x1c)}}exports[_0x249b[63]]= function(_0x9384x19,_0x9384x1d){var _0x9384x23={},_0x9384x2f={};_0x9384x2f[_0x249b[64]]= _[_0x249b[67]](db[_0x249b[66]][_0x249b[65]]);_0x9384x2f[_0x249b[68]]= _[_0x249b[67]](_0x9384x19[_0x249b[68]]);_0x9384x2f[_0x249b[69]]= _[_0x249b[70]](_0x9384x2f[_0x249b[64]],_0x9384x2f[_0x249b[68]]);_0x9384x23[_0x249b[71]]= _[_0x249b[70]](_0x9384x2f[_0x249b[64]],qs[_0x249b[72]](_0x9384x19[_0x249b[68]][_0x249b[72]]));_0x9384x23[_0x249b[71]]= (_0x9384x23[_0x249b[71]][_0x249b[73]])?_0x9384x23[_0x249b[71]]:_0x9384x2f[_0x249b[64]];if(!_0x9384x19[_0x249b[68]][_0x249b[75]](_0x249b[74])){_0x9384x23[_0x249b[47]]= qs[_0x249b[47]](_0x9384x19[_0x249b[68]][_0x249b[47]]);_0x9384x23[_0x249b[46]]= qs[_0x249b[46]](_0x9384x19[_0x249b[68]][_0x249b[46]])};_0x9384x23[_0x249b[76]]= qs[_0x249b[77]](_0x9384x19[_0x249b[68]][_0x249b[77]]);_0x9384x23[_0x249b[78]]= qs[_0x249b[69]](_[_0x249b[79]](_0x9384x19[_0x249b[68]],_0x9384x2f[_0x249b[69]]));if(_0x9384x19[_0x249b[68]][_0x249b[80]]){_0x9384x23[_0x249b[78]]= _[_0x249b[83]](_0x9384x23[_0x249b[78]],{$or:_[_0x249b[82]](_0x9384x23[_0x249b[71]],function(_0x9384x30){var _0x9384x31={};_0x9384x31[_0x9384x30]= {$like:_0x249b[81]+ _0x9384x19[_0x249b[68]][_0x249b[80]]+ _0x249b[81]};return _0x9384x31})})};_0x9384x23= _[_0x249b[83]]({},_0x9384x23,_0x9384x19[_0x249b[84]]);return db[_0x249b[66]][_0x249b[85]](_0x9384x23)[_0x249b[36]](respondWithFilteredResult(_0x9384x1d,_0x9384x23,_0x249b[63]))[_0x249b[27]](handleError(_0x9384x1d,null,_0x249b[63]))};exports[_0x249b[86]]= function(_0x9384x19,_0x9384x1d){var _0x9384x23={raw:true,where:{id:_0x9384x19[_0x249b[88]][_0x249b[87]]}},_0x9384x2f={};_0x9384x2f[_0x249b[64]]= _[_0x249b[67]](db[_0x249b[66]][_0x249b[65]]);_0x9384x2f[_0x249b[68]]= _[_0x249b[67]](_0x9384x19[_0x249b[68]]);_0x9384x2f[_0x249b[69]]= _[_0x249b[70]](_0x9384x2f[_0x249b[64]],_0x9384x2f[_0x249b[68]]);_0x9384x23[_0x249b[71]]= _[_0x249b[70]](_0x9384x2f[_0x249b[64]],qs[_0x249b[72]](_0x9384x19[_0x249b[68]][_0x249b[72]]));_0x9384x23[_0x249b[71]]= (_0x9384x23[_0x249b[71]][_0x249b[73]])?_0x9384x23[_0x249b[71]]:_0x9384x2f[_0x249b[64]];_0x9384x23= _[_0x249b[83]]({},_0x9384x23,_0x9384x19[_0x249b[84]]);return db[_0x249b[66]][_0x249b[89]](_0x9384x23)[_0x249b[36]](handleEntityNotFound(_0x9384x1d,null,_0x249b[86]))[_0x249b[36]](respondWithResult(_0x9384x1d,null,_0x249b[86]))[_0x249b[27]](handleError(_0x9384x1d,null,_0x249b[86]))};exports[_0x249b[90]]= function(_0x9384x19,_0x9384x1d,_0x9384x32){var _0x9384x33;return db[_0x249b[107]][_0x249b[106]](function(_0x9384x34){return db[_0x249b[66]][_0x249b[90]](_0x9384x19[_0x249b[102]],{raw:true})[_0x249b[36]](function(_0x9384x20){_0x9384x33= _0x9384x20;return db[_0x249b[66]][_0x249b[105]]({where:{type:_0x9384x19[_0x249b[102]][_0x249b[101]]},raw:true})})[_0x249b[36]](function(_0x9384x35){var _0x9384x36=fs[_0x249b[97]](path[_0x249b[95]](config[_0x249b[93]],_0x249b[94]),_0x249b[96]);var _0x9384x37=ejs[_0x249b[98]](_0x9384x36,{networks:_0x9384x35|| []});fs[_0x249b[104]](util[_0x249b[103]](_0x249b[99],_0x9384x19[_0x249b[102]][_0x249b[101]][_0x249b[100]]()),_0x9384x37)})[_0x249b[36]](function(){return respondWithRpcPromise(_0x249b[91],_0x249b[90],{module:_0x249b[92]})})[_0x249b[36]](function(){return _0x9384x33})})[_0x249b[36]](respondWithResult(_0x9384x1d,201,_0x249b[90]))[_0x249b[27]](handleError(_0x9384x1d,null,_0x249b[90]))};exports[_0x249b[57]]= function(_0x9384x19,_0x9384x1d,_0x9384x32){var _0x9384x33;return db[_0x249b[107]][_0x249b[106]](function(_0x9384x34){return db[_0x249b[66]][_0x249b[89]]({where:{id:_0x9384x19[_0x249b[88]][_0x249b[87]]}})[_0x249b[36]](handleEntityNotFound(_0x9384x1d,null,_0x249b[57]))[_0x249b[36]](saveUpdates(_0x9384x19[_0x249b[102]],null,_0x249b[57]))[_0x249b[36]](function(_0x9384x20){if(_0x9384x20){_0x9384x33= _0x9384x20;return db[_0x249b[66]][_0x249b[105]]({where:{type:_0x9384x33[_0x249b[101]]},raw:true})};return null})[_0x249b[36]](function(_0x9384x35){if(_0x9384x35){var _0x9384x36=fs[_0x249b[97]](path[_0x249b[95]](config[_0x249b[93]],_0x249b[94]),_0x249b[96]);var _0x9384x37=ejs[_0x249b[98]](_0x9384x36,{networks:_0x9384x35|| []});fs[_0x249b[104]](util[_0x249b[103]](_0x249b[99],_0x9384x33[_0x249b[101]][_0x249b[100]]()),_0x9384x37);return respondWithRpcPromise(_0x249b[91],_0x249b[57],{module:_0x249b[92]})};return null})[_0x249b[36]](function(_0x9384x20){if(_0x9384x20){return _0x9384x33};return null})})[_0x249b[36]](respondWithResult(_0x9384x1d,null,_0x249b[57]))[_0x249b[27]](handleError(_0x9384x1d,null,_0x249b[57]))};exports[_0x249b[59]]= function(_0x9384x19,_0x9384x1d,_0x9384x32){var _0x9384x33;return db[_0x249b[66]][_0x249b[89]]({where:{id:_0x9384x19[_0x249b[88]][_0x249b[87]]}})[_0x249b[36]](function(_0x9384x20){_0x9384x33= _0x9384x20;return _0x9384x20})[_0x249b[36]](handleEntityNotFound(_0x9384x1d,null,_0x249b[59]))[_0x249b[36]](removeEntity(_0x9384x1d,null,_0x249b[59]))[_0x249b[36]](function(){if(_0x9384x33){return db[_0x249b[66]][_0x249b[105]]({where:{type:_0x9384x33[_0x249b[101]]},raw:true})}})[_0x249b[36]](function(_0x9384x35){if(_0x9384x35){var _0x9384x36=fs[_0x249b[97]](path[_0x249b[95]](config[_0x249b[93]],_0x249b[94]),_0x249b[96]);var _0x9384x37=ejs[_0x249b[98]](_0x9384x36,{networks:_0x9384x35|| []});fs[_0x249b[104]](util[_0x249b[103]](_0x249b[99],_0x9384x33[_0x249b[101]][_0x249b[100]]()),_0x9384x37);return respondWithRpcPromise(_0x249b[91],_0x249b[59],{module:_0x249b[92]})}})[_0x249b[27]](handleError(_0x9384x1d,null,_0x249b[59]))}
\ No newline at end of file
index 318e1ed..f2bb73f 100644 (file)
@@ -1 +1 @@
-var _0x14b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4E\x65\x74\x77\x6F\x72\x6B","\x6E\x65\x74\x77\x6F\x72\x6B","\x64\x65\x66\x69\x6E\x65"];_0x14b8[0];var _=require(_0x14b8[1]);var util=require(_0x14b8[2]);var logger=require(_0x14b8[4])(_0x14b8[3]);var attributes=require(_0x14b8[5]);module[_0x14b8[6]]= function(_0xaedfx5,_0xaedfx6){return _0xaedfx5[_0x14b8[9]](_0x14b8[7],attributes,{tableName:_0x14b8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xdab9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4E\x65\x74\x77\x6F\x72\x6B","\x6E\x65\x74\x77\x6F\x72\x6B","\x64\x65\x66\x69\x6E\x65"];_0xdab9[0];var _=require(_0xdab9[1]);var util=require(_0xdab9[2]);var logger=require(_0xdab9[4])(_0xdab9[3]);var attributes=require(_0xdab9[5]);module[_0xdab9[6]]= function(_0xa581x5,_0xa581x6){return _0xa581x5[_0xdab9[9]](_0xdab9[7],attributes,{tableName:_0xdab9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index c314485..f31aa5b 100644 (file)
@@ -1 +1 @@
-var _0x132b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x132b[0];var _=require(_0x132b[1]);var util=require(_0x132b[2]);var moment=require(_0x132b[3]);var BPromise=require(_0x132b[4]);var db=require(_0x132b[6])[_0x132b[5]];var utils=require(_0x132b[7]);var logger=require(_0x132b[9])(_0x132b[8]);var jayson=require(_0x132b[10]);var client=jayson[_0x132b[12]][_0x132b[11]]({port:9002});function respondWithRpcPromise(_0xbd11xb,_0xbd11xc,_0xbd11xd){return  new BPromise(function(_0xbd11xe,_0xbd11xf){return client[_0x132b[25]](_0xbd11xb,_0xbd11xd)[_0x132b[24]](function(_0xbd11x11){logger[_0x132b[17]](_0x132b[13],_0xbd11xc,_0x132b[16]);logger[_0x132b[20]](_0x132b[18],_0xbd11xc,_0x132b[16],JSON[_0x132b[19]](_0xbd11x11));if(_0xbd11x11[_0x132b[14]]){if(_0xbd11x11[_0x132b[14]][_0x132b[21]]=== 500){logger[_0x132b[14]](_0x132b[13],_0xbd11xc,_0xbd11x11[_0x132b[14]][_0x132b[22]]);return _0xbd11xf(_0xbd11x11[_0x132b[14]][_0x132b[22]])};logger[_0x132b[14]](_0x132b[13],_0xbd11xc,_0xbd11x11[_0x132b[14]][_0x132b[22]]);return _0xbd11xe(_0xbd11x11[_0x132b[14]][_0x132b[22]])}else {logger[_0x132b[17]](_0x132b[13],_0xbd11xc,_0x132b[16]);_0xbd11xe(_0xbd11x11[_0x132b[23]][_0x132b[22]])}})[_0x132b[15]](function(_0xbd11x10){logger[_0x132b[14]](_0x132b[13],_0xbd11xc,_0xbd11x10);_0xbd11xf(_0xbd11x10)})})}
\ No newline at end of file
+var _0xdf30=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xdf30[0];var _=require(_0xdf30[1]);var util=require(_0xdf30[2]);var moment=require(_0xdf30[3]);var BPromise=require(_0xdf30[4]);var db=require(_0xdf30[6])[_0xdf30[5]];var utils=require(_0xdf30[7]);var logger=require(_0xdf30[9])(_0xdf30[8]);var jayson=require(_0xdf30[10]);var client=jayson[_0xdf30[12]][_0xdf30[11]]({port:9002});function respondWithRpcPromise(_0xa2f9xb,_0xa2f9xc,_0xa2f9xd){return  new BPromise(function(_0xa2f9xe,_0xa2f9xf){return client[_0xdf30[25]](_0xa2f9xb,_0xa2f9xd)[_0xdf30[24]](function(_0xa2f9x11){logger[_0xdf30[17]](_0xdf30[13],_0xa2f9xc,_0xdf30[16]);logger[_0xdf30[20]](_0xdf30[18],_0xa2f9xc,_0xdf30[16],JSON[_0xdf30[19]](_0xa2f9x11));if(_0xa2f9x11[_0xdf30[14]]){if(_0xa2f9x11[_0xdf30[14]][_0xdf30[21]]=== 500){logger[_0xdf30[14]](_0xdf30[13],_0xa2f9xc,_0xa2f9x11[_0xdf30[14]][_0xdf30[22]]);return _0xa2f9xf(_0xa2f9x11[_0xdf30[14]][_0xdf30[22]])};logger[_0xdf30[14]](_0xdf30[13],_0xa2f9xc,_0xa2f9x11[_0xdf30[14]][_0xdf30[22]]);return _0xa2f9xe(_0xa2f9x11[_0xdf30[14]][_0xdf30[22]])}else {logger[_0xdf30[17]](_0xdf30[13],_0xa2f9xc,_0xdf30[16]);_0xa2f9xe(_0xa2f9x11[_0xdf30[23]][_0xdf30[22]])}})[_0xdf30[15]](function(_0xa2f9x10){logger[_0xdf30[14]](_0xdf30[13],_0xa2f9xc,_0xa2f9x10);_0xa2f9xf(_0xa2f9x10)})})}
\ No newline at end of file
index 790d420..bbdda52 100644 (file)
@@ -1 +1 @@
-var _0xda34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xda34[0];var multer=require(_0xda34[1]);var util=require(_0xda34[2]);var path=require(_0xda34[3]);var express=require(_0xda34[4]);var router=express.Router();var auth=require(_0xda34[5]);var config=require(_0xda34[6]);var controller=require(_0xda34[7]);router[_0xda34[11]](_0xda34[8],auth[_0xda34[9]](),controller[_0xda34[10]]);router[_0xda34[11]](_0xda34[12],auth[_0xda34[9]](),controller[_0xda34[13]]);router[_0xda34[11]](_0xda34[14],auth[_0xda34[9]](),controller[_0xda34[15]]);router[_0xda34[11]](_0xda34[16],auth[_0xda34[9]](),controller[_0xda34[17]]);router[_0xda34[11]](_0xda34[18],auth[_0xda34[9]](),controller[_0xda34[19]]);router[_0xda34[21]](_0xda34[8],auth[_0xda34[9]](),controller[_0xda34[20]]);router[_0xda34[21]](_0xda34[14],auth[_0xda34[9]](),controller[_0xda34[22]]);router[_0xda34[21]](_0xda34[16],auth[_0xda34[9]](),controller[_0xda34[23]]);router[_0xda34[21]](_0xda34[18],auth[_0xda34[9]](),controller[_0xda34[24]]);router[_0xda34[21]](_0xda34[18],auth[_0xda34[9]](),controller[_0xda34[25]]);router[_0xda34[27]](_0xda34[12],auth[_0xda34[9]](),controller[_0xda34[26]]);router[_0xda34[29]](_0xda34[12],auth[_0xda34[9]](),controller[_0xda34[28]]);module[_0xda34[30]]= router
\ No newline at end of file
+var _0xfa36=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfa36[0];var multer=require(_0xfa36[1]);var util=require(_0xfa36[2]);var path=require(_0xfa36[3]);var express=require(_0xfa36[4]);var router=express.Router();var auth=require(_0xfa36[5]);var config=require(_0xfa36[6]);var controller=require(_0xfa36[7]);router[_0xfa36[11]](_0xfa36[8],auth[_0xfa36[9]](),controller[_0xfa36[10]]);router[_0xfa36[11]](_0xfa36[12],auth[_0xfa36[9]](),controller[_0xfa36[13]]);router[_0xfa36[11]](_0xfa36[14],auth[_0xfa36[9]](),controller[_0xfa36[15]]);router[_0xfa36[11]](_0xfa36[16],auth[_0xfa36[9]](),controller[_0xfa36[17]]);router[_0xfa36[11]](_0xfa36[18],auth[_0xfa36[9]](),controller[_0xfa36[19]]);router[_0xfa36[21]](_0xfa36[8],auth[_0xfa36[9]](),controller[_0xfa36[20]]);router[_0xfa36[21]](_0xfa36[14],auth[_0xfa36[9]](),controller[_0xfa36[22]]);router[_0xfa36[21]](_0xfa36[16],auth[_0xfa36[9]](),controller[_0xfa36[23]]);router[_0xfa36[21]](_0xfa36[18],auth[_0xfa36[9]](),controller[_0xfa36[24]]);router[_0xfa36[21]](_0xfa36[18],auth[_0xfa36[9]](),controller[_0xfa36[25]]);router[_0xfa36[27]](_0xfa36[12],auth[_0xfa36[9]](),controller[_0xfa36[26]]);router[_0xfa36[29]](_0xfa36[12],auth[_0xfa36[9]](),controller[_0xfa36[28]]);module[_0xfa36[30]]= router
\ No newline at end of file
index adbff49..970fe9b 100644 (file)
@@ -1 +1 @@
-var _0x6987=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x6987[0];var Sequelize=require(_0x6987[1]);module[_0x6987[2]]= {name:{type:Sequelize[_0x6987[3]]},description:{type:Sequelize[_0x6987[3]]},remote:{type:Sequelize[_0x6987[3]]},fidelity:{type:Sequelize[_0x6987[4]],defaultValue:false},timeout:{type:Sequelize[_0x6987[5]],defaultValue:0},acceptUrl:{type:Sequelize[_0x6987[3]]},rejectUrl:{type:Sequelize[_0x6987[3]]},replyUrl:{type:Sequelize[_0x6987[3]]},acceptMethod:{type:Sequelize.ENUM(_0x6987[6],_0x6987[7])},rejectMethod:{type:Sequelize.ENUM(_0x6987[6],_0x6987[7])},replyMethod:{type:Sequelize.ENUM(_0x6987[6],_0x6987[7])},closeUrl:{type:Sequelize[_0x6987[3]]},closeMethod:{type:Sequelize.ENUM(_0x6987[6],_0x6987[7])},actions:{type:Sequelize[_0x6987[3]],get:function(){return this[_0x6987[9]](_0x6987[8])?JSON[_0x6987[10]](this[_0x6987[9]](_0x6987[8])):[]},set:function(_0x2591x2){return this[_0x6987[12]](_0x6987[8],JSON[_0x6987[11]](_0x2591x2))}}}
\ No newline at end of file
+var _0x91d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x91d8[0];var Sequelize=require(_0x91d8[1]);module[_0x91d8[2]]= {name:{type:Sequelize[_0x91d8[3]]},description:{type:Sequelize[_0x91d8[3]]},remote:{type:Sequelize[_0x91d8[3]]},fidelity:{type:Sequelize[_0x91d8[4]],defaultValue:false},timeout:{type:Sequelize[_0x91d8[5]],defaultValue:0},acceptUrl:{type:Sequelize[_0x91d8[3]]},rejectUrl:{type:Sequelize[_0x91d8[3]]},replyUrl:{type:Sequelize[_0x91d8[3]]},acceptMethod:{type:Sequelize.ENUM(_0x91d8[6],_0x91d8[7])},rejectMethod:{type:Sequelize.ENUM(_0x91d8[6],_0x91d8[7])},replyMethod:{type:Sequelize.ENUM(_0x91d8[6],_0x91d8[7])},closeUrl:{type:Sequelize[_0x91d8[3]]},closeMethod:{type:Sequelize.ENUM(_0x91d8[6],_0x91d8[7])},actions:{type:Sequelize[_0x91d8[3]],get:function(){return this[_0x91d8[9]](_0x91d8[8])?JSON[_0x91d8[10]](this[_0x91d8[9]](_0x91d8[8])):[]},set:function(_0xd753x2){return this[_0x91d8[12]](_0x91d8[8],JSON[_0x91d8[11]](_0xd753x2))}}}
\ No newline at end of file
index c0901a4..f9a7121 100644 (file)
@@ -1 +1 @@
-var _0xb066=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0xb066[0];var jsonpatch=require(_0xb066[1]);var rp=require(_0xb066[2]);var moment=require(_0xb066[3]);var BPromise=require(_0xb066[4]);var util=require(_0xb066[5]);var path=require(_0xb066[6]);var sox=require(_0xb066[7]);var ejs=require(_0xb066[8]);var fs=require(_0xb066[9]);var _=require(_0xb066[10]);var squel=require(_0xb066[11]);var crypto=require(_0xb066[12]);var jsforce=require(_0xb066[13]);var toCsv=require(_0xb066[14]);var qs=require(_0xb066[15]);var logger=require(_0xb066[17])(_0xb066[16]);var utils=require(_0xb066[18]);var config=require(_0xb066[19]);var db=require(_0xb066[21])[_0xb066[20]];function respondWithStatusCode(_0x9137x15,_0x9137x16,_0x9137x17){_0x9137x16= _0x9137x16|| 204;return function(_0x9137x18){if(_0x9137x18){logger[_0xb066[24]](_0xb066[22],_0x9137x17,_0x9137x16,_0xb066[23]);logger[_0xb066[26]](_0xb066[25],_0x9137x17,_0x9137x16,_0xb066[23]);return _0x9137x15[_0xb066[27]](_0x9137x16)};return _0x9137x15[_0xb066[29]](304)[_0xb066[28]]()}}function respondWithResult(_0x9137x15,_0x9137x16,_0x9137x17){_0x9137x16= _0x9137x16|| 200;return function(_0x9137x18){if(_0x9137x18){logger[_0xb066[24]](_0xb066[22],_0x9137x17,_0x9137x16,_0xb066[30]);logger[_0xb066[26]](_0xb066[25],_0x9137x17,_0x9137x16,_0xb066[30],JSON[_0xb066[31]](_0x9137x18));return _0x9137x15[_0xb066[29]](_0x9137x16)[_0xb066[32]](_0x9137x18)};return _0x9137x15[_0xb066[29]](304)[_0xb066[28]]()}}function respondWithFilteredResult(_0x9137x15,_0x9137x1b,_0x9137x17){return function(_0x9137x18){if(_0x9137x18){var _0x9137x1c=_0x9137x18[_0xb066[33]],_0x9137x1d=_0x9137x1b[_0xb066[34]],_0x9137x1e=_0x9137x1b[_0xb066[34]]+ _0x9137x1b[_0xb066[35]],_0x9137x16;if(_0x9137x1e>= _0x9137x1c){_0x9137x1e= _0x9137x1c;_0x9137x16= 200}else {_0x9137x16= 206};_0x9137x15[_0xb066[29]](_0x9137x16);logger[_0xb066[24]](_0xb066[22],_0x9137x17,_0x9137x16,_0xb066[36]);logger[_0xb066[26]](_0xb066[25],_0x9137x17,_0x9137x16,_0xb066[30],JSON[_0xb066[31]](_0x9137x18));return _0x9137x15[_0xb066[40]](_0xb066[37],_0x9137x1d+ _0xb066[38]+ _0x9137x1e+ _0xb066[39]+ _0x9137x1c)[_0xb066[32]](_0x9137x18)};return null}}function patchUpdates(_0x9137x20){return function(_0x9137x18){try{jsonpatch[_0xb066[41]](_0x9137x18,_0x9137x20,true)}catch(err){return BPromise[_0xb066[42]](err)};return _0x9137x18[_0xb066[43]]()}}function saveUpdates(_0x9137x22,_0x9137x16,_0x9137x17){return function(_0x9137x18){if(_0x9137x18){return _0x9137x18[_0xb066[46]](_0x9137x22)[_0xb066[45]](function(_0x9137x23){logger[_0xb066[24]](_0xb066[22],_0x9137x17,_0x9137x16,_0xb066[44]);logger[_0xb066[26]](_0xb066[25],_0x9137x17,_0x9137x16,_0xb066[44],JSON[_0xb066[31]](_0x9137x18));return _0x9137x23})};return null}}function removeEntity(_0x9137x15,_0x9137x16,_0x9137x17){return function(_0x9137x18){if(_0x9137x18){return _0x9137x18[_0xb066[48]]()[_0xb066[45]](function(){logger[_0xb066[24]](_0xb066[22],_0x9137x17,_0x9137x16,_0xb066[47]);logger[_0xb066[26]](_0xb066[25],_0x9137x17,_0x9137x16,_0xb066[47],JSON[_0xb066[31]](_0x9137x18));_0x9137x15[_0xb066[29]](204)[_0xb066[28]]()})}}}function handleEntityNotFound(_0x9137x15,_0x9137x16,_0x9137x17){return function(_0x9137x18){if(!_0x9137x18){logger[_0xb066[50]](_0xb066[22],_0x9137x17,404,_0xb066[49]);_0x9137x15[_0xb066[29]](404)[_0xb066[28]]();return null};return _0x9137x18}}function handleError(_0x9137x15,_0x9137x16,_0x9137x17){_0x9137x16= _0x9137x16|| 500;return function(_0x9137x27){logger[_0xb066[50]](_0xb066[22],_0x9137x17,_0x9137x16,JSON[_0xb066[31]](_0x9137x27));delete _0x9137x27[_0xb066[51]];_0x9137x15[_0xb066[29]](_0x9137x16)[_0xb066[52]](_0x9137x27)}}exports[_0xb066[53]]= function(_0x9137x28,_0x9137x15){var _0x9137x1b={},_0x9137x29={};_0x9137x29[_0xb066[54]]= _[_0xb066[57]](db[_0xb066[56]][_0xb066[55]]);_0x9137x29[_0xb066[58]]= _[_0xb066[57]](_0x9137x28[_0xb066[58]]);_0x9137x29[_0xb066[59]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],_0x9137x29[_0xb066[58]]);_0x9137x1b[_0xb066[61]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],qs[_0xb066[62]](_0x9137x28[_0xb066[58]][_0xb066[62]]));_0x9137x1b[_0xb066[61]]= (_0x9137x1b[_0xb066[61]][_0xb066[63]])?_0x9137x1b[_0xb066[61]]:_0x9137x29[_0xb066[54]];if(!_0x9137x28[_0xb066[58]][_0xb066[65]](_0xb066[64])){_0x9137x1b[_0xb066[35]]= qs[_0xb066[35]](_0x9137x28[_0xb066[58]][_0xb066[35]]);_0x9137x1b[_0xb066[34]]= qs[_0xb066[34]](_0x9137x28[_0xb066[58]][_0xb066[34]])};_0x9137x1b[_0xb066[66]]= qs[_0xb066[67]](_0x9137x28[_0xb066[58]][_0xb066[67]]);_0x9137x1b[_0xb066[68]]= qs[_0xb066[59]](_[_0xb066[69]](_0x9137x28[_0xb066[58]],_0x9137x29[_0xb066[59]]));if(_0x9137x28[_0xb066[58]][_0xb066[70]]){_0x9137x1b[_0xb066[68]]= _[_0xb066[73]](_0x9137x1b[_0xb066[68]],{$or:_[_0xb066[72]](_0x9137x1b[_0xb066[61]],function(_0x9137x2a){var _0x9137x2b={};_0x9137x2b[_0x9137x2a]= {$like:_0xb066[71]+ _0x9137x28[_0xb066[58]][_0xb066[70]]+ _0xb066[71]};return _0x9137x2b})})};_0x9137x1b= _[_0xb066[73]]({},_0x9137x1b,_0x9137x28[_0xb066[74]]);return db[_0xb066[56]][_0xb066[76]](_0x9137x1b)[_0xb066[45]](respondWithFilteredResult(_0x9137x15,_0x9137x1b,_0xb066[53]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[53]))};exports[_0xb066[77]]= function(_0x9137x28,_0x9137x15){var _0x9137x1b={raw:false,where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}},_0x9137x29={};_0x9137x29[_0xb066[54]]= _[_0xb066[57]](db[_0xb066[56]][_0xb066[55]]);_0x9137x29[_0xb066[58]]= _[_0xb066[57]](_0x9137x28[_0xb066[58]]);_0x9137x29[_0xb066[59]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],_0x9137x29[_0xb066[58]]);_0x9137x1b[_0xb066[61]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],qs[_0xb066[62]](_0x9137x28[_0xb066[58]][_0xb066[62]]));_0x9137x1b[_0xb066[61]]= (_0x9137x1b[_0xb066[61]][_0xb066[63]])?_0x9137x1b[_0xb066[61]]:_0x9137x29[_0xb066[54]];_0x9137x1b= _[_0xb066[73]]({},_0x9137x1b,_0x9137x28[_0xb066[74]]);return db[_0xb066[56]][_0xb066[80]](_0x9137x1b)[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[77]))[_0xb066[45]](respondWithResult(_0x9137x15,null,_0xb066[77]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[77]))};exports[_0xb066[81]]= function(_0x9137x28,_0x9137x15){return db[_0xb066[56]][_0xb066[81]](_0x9137x28[_0xb066[82]],{})[_0xb066[45]](respondWithResult(_0x9137x15,201,_0xb066[81]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[81]))};exports[_0xb066[46]]= function(_0x9137x28,_0x9137x15){if(_0x9137x28[_0xb066[82]][_0xb066[78]]){delete _0x9137x28[_0xb066[82]][_0xb066[78]]};return db[_0xb066[56]][_0xb066[80]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[46]))[_0xb066[45]](saveUpdates(_0x9137x28[_0xb066[82]],null,_0xb066[46]))[_0xb066[45]](respondWithResult(_0x9137x15,null,_0xb066[46]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[46]))};exports[_0xb066[48]]= function(_0x9137x28,_0x9137x15){return db[_0xb066[56]][_0xb066[80]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[48]))[_0xb066[45]](removeEntity(_0x9137x15,null,_0xb066[48]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[48]))};exports[_0xb066[83]]= function(_0x9137x28,_0x9137x15,_0x9137x2c){return db[_0xb066[86]][_0xb066[80]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[83]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){return _0x9137x18[_0xb066[83]](_0x9137x28[_0xb066[82]][_0xb066[84]],_[_0xb066[85]](_0x9137x28[_0xb066[82]],[_0xb066[84],_0xb066[78]])|| {})};return null})[_0xb066[45]](respondWithResult(_0x9137x15,null,_0xb066[83]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[83]))};exports[_0xb066[87]]= function(_0x9137x28,_0x9137x18,_0x9137x2c){var _0x9137x1b={};var _0x9137x29={};var _0x9137x2d;var _0x9137x1c;return db[_0xb066[56]][_0xb066[88]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x18,null,_0xb066[87]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){_0x9137x2d= _0x9137x18;_0x9137x29[_0xb066[54]]= _[_0xb066[57]](db[_0xb066[86]][_0xb066[55]]);_0x9137x29[_0xb066[58]]= _[_0xb066[57]](_0x9137x28[_0xb066[58]]);_0x9137x29[_0xb066[59]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],_0x9137x29[_0xb066[58]]);_0x9137x1b[_0xb066[61]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],qs[_0xb066[62]](_0x9137x28[_0xb066[58]][_0xb066[62]]));_0x9137x1b[_0xb066[61]]= (_0x9137x1b[_0xb066[61]][_0xb066[63]])?_0x9137x1b[_0xb066[61]]:_0x9137x29[_0xb066[54]];_0x9137x1b[_0xb066[66]]= qs[_0xb066[67]](_0x9137x28[_0xb066[58]][_0xb066[67]]);_0x9137x1b[_0xb066[68]]= qs[_0xb066[59]](_[_0xb066[69]](_0x9137x28[_0xb066[58]],_0x9137x29[_0xb066[59]]));if(_0x9137x28[_0xb066[58]][_0xb066[70]]){_0x9137x1b[_0xb066[68]]= _[_0xb066[73]](_0x9137x1b[_0xb066[68]],{$or:_[_0xb066[72]](_0x9137x1b[_0xb066[61]],function(_0x9137x2a){var _0x9137x2b={};_0x9137x2b[_0x9137x2a]= {$like:_0xb066[71]+ _0x9137x28[_0xb066[58]][_0xb066[70]]+ _0xb066[71]};return _0x9137x2b})})};_0x9137x1b= _[_0xb066[73]]({},_0x9137x1b,_0x9137x28[_0xb066[74]]);return _0x9137x2d[_0xb066[87]](_0x9137x1b)}})[_0xb066[45]](function(_0x9137x2f){if(_0x9137x2f){_0x9137x1c= _0x9137x2f[_0xb066[63]];if(!_0x9137x28[_0xb066[58]][_0xb066[65]](_0xb066[64])){_0x9137x1b[_0xb066[35]]= qs[_0xb066[35]](_0x9137x28[_0xb066[58]][_0xb066[35]]);_0x9137x1b[_0xb066[34]]= qs[_0xb066[34]](_0x9137x28[_0xb066[58]][_0xb066[34]])};return _0x9137x2d[_0xb066[87]](_0x9137x1b)}})[_0xb066[45]](function(_0x9137x2e){return _0x9137x2e?{count:_0x9137x1c,rows:_0x9137x2e}:null})[_0xb066[45]](respondWithResult(_0x9137x18,null,_0xb066[87]))[_0xb066[75]](handleError(_0x9137x18,null,_0xb066[87]))};exports[_0xb066[89]]= function(_0x9137x28,_0x9137x15,_0x9137x2c){return db[_0xb066[90]][_0xb066[80]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[89]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){return _0x9137x18[_0xb066[89]](_0x9137x28[_0xb066[82]][_0xb066[84]],_[_0xb066[85]](_0x9137x28[_0xb066[82]],[_0xb066[84],_0xb066[78]])|| {})};return null})[_0xb066[45]](respondWithResult(_0x9137x15,null,_0xb066[89]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[89]))};exports[_0xb066[91]]= function(_0x9137x28,_0x9137x18,_0x9137x2c){var _0x9137x1b={};var _0x9137x29={};var _0x9137x2d;var _0x9137x1c;return db[_0xb066[56]][_0xb066[88]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x18,null,_0xb066[91]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){_0x9137x2d= _0x9137x18;_0x9137x29[_0xb066[54]]= _[_0xb066[57]](db[_0xb066[92]][_0xb066[55]]);_0x9137x29[_0xb066[58]]= _[_0xb066[57]](_0x9137x28[_0xb066[58]]);_0x9137x29[_0xb066[59]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],_0x9137x29[_0xb066[58]]);_0x9137x1b[_0xb066[61]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],qs[_0xb066[62]](_0x9137x28[_0xb066[58]][_0xb066[62]]));_0x9137x1b[_0xb066[61]]= (_0x9137x1b[_0xb066[61]][_0xb066[63]])?_0x9137x1b[_0xb066[61]]:_0x9137x29[_0xb066[54]];_0x9137x1b[_0xb066[66]]= qs[_0xb066[67]](_0x9137x28[_0xb066[58]][_0xb066[67]]);_0x9137x1b[_0xb066[68]]= qs[_0xb066[59]](_[_0xb066[69]](_0x9137x28[_0xb066[58]],_0x9137x29[_0xb066[59]]));if(_0x9137x28[_0xb066[58]][_0xb066[70]]){_0x9137x1b[_0xb066[68]]= _[_0xb066[73]](_0x9137x1b[_0xb066[68]],{$or:_[_0xb066[72]](_0x9137x1b[_0xb066[61]],function(_0x9137x2a){var _0x9137x2b={};_0x9137x2b[_0x9137x2a]= {$like:_0xb066[71]+ _0x9137x28[_0xb066[58]][_0xb066[70]]+ _0xb066[71]};return _0x9137x2b})})};_0x9137x1b= _[_0xb066[73]]({},_0x9137x1b,_0x9137x28[_0xb066[74]]);return _0x9137x2d[_0xb066[91]](_0x9137x1b)}})[_0xb066[45]](function(_0x9137x2f){if(_0x9137x2f){_0x9137x1c= _0x9137x2f[_0xb066[63]];if(!_0x9137x28[_0xb066[58]][_0xb066[65]](_0xb066[64])){_0x9137x1b[_0xb066[35]]= qs[_0xb066[35]](_0x9137x28[_0xb066[58]][_0xb066[35]]);_0x9137x1b[_0xb066[34]]= qs[_0xb066[34]](_0x9137x28[_0xb066[58]][_0xb066[34]])};return _0x9137x2d[_0xb066[91]](_0x9137x1b)}})[_0xb066[45]](function(_0x9137x2e){return _0x9137x2e?{count:_0x9137x1c,rows:_0x9137x2e}:null})[_0xb066[45]](respondWithResult(_0x9137x18,null,_0xb066[91]))[_0xb066[75]](handleError(_0x9137x18,null,_0xb066[91]))};exports[_0xb066[93]]= function(_0x9137x28,_0x9137x15,_0x9137x2c){if(_0x9137x28[_0xb066[82]][_0xb066[78]]){delete _0x9137x28[_0xb066[82]][_0xb066[78]]};return db[_0xb066[56]][_0xb066[80]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[93]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){_0x9137x28[_0xb066[82]][_0xb066[94]]= _0x9137x18[_0xb066[78]];return db[_0xb066[95]][_0xb066[81]](_0x9137x28[_0xb066[82]])}})[_0xb066[45]](respondWithResult(_0x9137x15,null,_0xb066[93]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[93]))};exports[_0xb066[96]]= function(_0x9137x28,_0x9137x15,_0x9137x2c){return db[_0xb066[97]][_0xb066[80]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x15,null,_0xb066[96]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){return _0x9137x18[_0xb066[96]](_0x9137x28[_0xb066[82]][_0xb066[84]],_[_0xb066[85]](_0x9137x28[_0xb066[82]],[_0xb066[84],_0xb066[78]])|| {})};return null})[_0xb066[45]](respondWithResult(_0x9137x15,null,_0xb066[96]))[_0xb066[75]](handleError(_0x9137x15,null,_0xb066[96]))};exports[_0xb066[98]]= function(_0x9137x28,_0x9137x18,_0x9137x2c){var _0x9137x1b={};var _0x9137x29={};var _0x9137x2d;var _0x9137x1c;return db[_0xb066[56]][_0xb066[88]]({where:{id:_0x9137x28[_0xb066[79]][_0xb066[78]]}})[_0xb066[45]](handleEntityNotFound(_0x9137x18,null,_0xb066[98]))[_0xb066[45]](function(_0x9137x18){if(_0x9137x18){_0x9137x2d= _0x9137x18;_0x9137x29[_0xb066[54]]= _[_0xb066[57]](db[_0xb066[95]][_0xb066[55]]);_0x9137x29[_0xb066[58]]= _[_0xb066[57]](_0x9137x28[_0xb066[58]]);_0x9137x29[_0xb066[59]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],_0x9137x29[_0xb066[58]]);_0x9137x1b[_0xb066[61]]= _[_0xb066[60]](_0x9137x29[_0xb066[54]],qs[_0xb066[62]](_0x9137x28[_0xb066[58]][_0xb066[62]]));_0x9137x1b[_0xb066[61]]= (_0x9137x1b[_0xb066[61]][_0xb066[63]])?_0x9137x1b[_0xb066[61]]:_0x9137x29[_0xb066[54]];_0x9137x1b[_0xb066[66]]= qs[_0xb066[67]](_0x9137x28[_0xb066[58]][_0xb066[67]]);_0x9137x1b[_0xb066[68]]= qs[_0xb066[59]](_[_0xb066[69]](_0x9137x28[_0xb066[58]],_0x9137x29[_0xb066[59]]));if(_0x9137x28[_0xb066[58]][_0xb066[70]]){_0x9137x1b[_0xb066[68]]= _[_0xb066[73]](_0x9137x1b[_0xb066[68]],{$or:_[_0xb066[72]](_0x9137x1b[_0xb066[61]],function(_0x9137x2a){var _0x9137x2b={};_0x9137x2b[_0x9137x2a]= {$like:_0xb066[71]+ _0x9137x28[_0xb066[58]][_0xb066[70]]+ _0xb066[71]};return _0x9137x2b})})};_0x9137x1b= _[_0xb066[73]]({},_0x9137x1b,_0x9137x28[_0xb066[74]]);return _0x9137x2d[_0xb066[98]](_0x9137x1b)}})[_0xb066[45]](function(_0x9137x2f){if(_0x9137x2f){_0x9137x1c= _0x9137x2f[_0xb066[63]];if(!_0x9137x28[_0xb066[58]][_0xb066[65]](_0xb066[64])){_0x9137x1b[_0xb066[35]]= qs[_0xb066[35]](_0x9137x28[_0xb066[58]][_0xb066[35]]);_0x9137x1b[_0xb066[34]]= qs[_0xb066[34]](_0x9137x28[_0xb066[58]][_0xb066[34]])};return _0x9137x2d[_0xb066[98]](_0x9137x1b)}})[_0xb066[45]](function(_0x9137x2e){return _0x9137x2e?{count:_0x9137x1c,rows:_0x9137x2e}:null})[_0xb066[45]](respondWithResult(_0x9137x18,null,_0xb066[98]))[_0xb066[75]](handleError(_0x9137x18,null,_0xb066[98]))}
\ No newline at end of file
+var _0xf572=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0xf572[0];var jsonpatch=require(_0xf572[1]);var rp=require(_0xf572[2]);var moment=require(_0xf572[3]);var BPromise=require(_0xf572[4]);var util=require(_0xf572[5]);var path=require(_0xf572[6]);var sox=require(_0xf572[7]);var ejs=require(_0xf572[8]);var fs=require(_0xf572[9]);var _=require(_0xf572[10]);var squel=require(_0xf572[11]);var crypto=require(_0xf572[12]);var jsforce=require(_0xf572[13]);var toCsv=require(_0xf572[14]);var qs=require(_0xf572[15]);var logger=require(_0xf572[17])(_0xf572[16]);var utils=require(_0xf572[18]);var config=require(_0xf572[19]);var db=require(_0xf572[21])[_0xf572[20]];function respondWithStatusCode(_0x4cdfx15,_0x4cdfx16,_0x4cdfx17){_0x4cdfx16= _0x4cdfx16|| 204;return function(_0x4cdfx18){if(_0x4cdfx18){logger[_0xf572[24]](_0xf572[22],_0x4cdfx17,_0x4cdfx16,_0xf572[23]);logger[_0xf572[26]](_0xf572[25],_0x4cdfx17,_0x4cdfx16,_0xf572[23]);return _0x4cdfx15[_0xf572[27]](_0x4cdfx16)};return _0x4cdfx15[_0xf572[29]](304)[_0xf572[28]]()}}function respondWithResult(_0x4cdfx15,_0x4cdfx16,_0x4cdfx17){_0x4cdfx16= _0x4cdfx16|| 200;return function(_0x4cdfx18){if(_0x4cdfx18){logger[_0xf572[24]](_0xf572[22],_0x4cdfx17,_0x4cdfx16,_0xf572[30]);logger[_0xf572[26]](_0xf572[25],_0x4cdfx17,_0x4cdfx16,_0xf572[30],JSON[_0xf572[31]](_0x4cdfx18));return _0x4cdfx15[_0xf572[29]](_0x4cdfx16)[_0xf572[32]](_0x4cdfx18)};return _0x4cdfx15[_0xf572[29]](304)[_0xf572[28]]()}}function respondWithFilteredResult(_0x4cdfx15,_0x4cdfx1b,_0x4cdfx17){return function(_0x4cdfx18){if(_0x4cdfx18){var _0x4cdfx1c=_0x4cdfx18[_0xf572[33]],_0x4cdfx1d=_0x4cdfx1b[_0xf572[34]],_0x4cdfx1e=_0x4cdfx1b[_0xf572[34]]+ _0x4cdfx1b[_0xf572[35]],_0x4cdfx16;if(_0x4cdfx1e>= _0x4cdfx1c){_0x4cdfx1e= _0x4cdfx1c;_0x4cdfx16= 200}else {_0x4cdfx16= 206};_0x4cdfx15[_0xf572[29]](_0x4cdfx16);logger[_0xf572[24]](_0xf572[22],_0x4cdfx17,_0x4cdfx16,_0xf572[36]);logger[_0xf572[26]](_0xf572[25],_0x4cdfx17,_0x4cdfx16,_0xf572[30],JSON[_0xf572[31]](_0x4cdfx18));return _0x4cdfx15[_0xf572[40]](_0xf572[37],_0x4cdfx1d+ _0xf572[38]+ _0x4cdfx1e+ _0xf572[39]+ _0x4cdfx1c)[_0xf572[32]](_0x4cdfx18)};return null}}function patchUpdates(_0x4cdfx20){return function(_0x4cdfx18){try{jsonpatch[_0xf572[41]](_0x4cdfx18,_0x4cdfx20,true)}catch(err){return BPromise[_0xf572[42]](err)};return _0x4cdfx18[_0xf572[43]]()}}function saveUpdates(_0x4cdfx22,_0x4cdfx16,_0x4cdfx17){return function(_0x4cdfx18){if(_0x4cdfx18){return _0x4cdfx18[_0xf572[46]](_0x4cdfx22)[_0xf572[45]](function(_0x4cdfx23){logger[_0xf572[24]](_0xf572[22],_0x4cdfx17,_0x4cdfx16,_0xf572[44]);logger[_0xf572[26]](_0xf572[25],_0x4cdfx17,_0x4cdfx16,_0xf572[44],JSON[_0xf572[31]](_0x4cdfx18));return _0x4cdfx23})};return null}}function removeEntity(_0x4cdfx15,_0x4cdfx16,_0x4cdfx17){return function(_0x4cdfx18){if(_0x4cdfx18){return _0x4cdfx18[_0xf572[48]]()[_0xf572[45]](function(){logger[_0xf572[24]](_0xf572[22],_0x4cdfx17,_0x4cdfx16,_0xf572[47]);logger[_0xf572[26]](_0xf572[25],_0x4cdfx17,_0x4cdfx16,_0xf572[47],JSON[_0xf572[31]](_0x4cdfx18));_0x4cdfx15[_0xf572[29]](204)[_0xf572[28]]()})}}}function handleEntityNotFound(_0x4cdfx15,_0x4cdfx16,_0x4cdfx17){return function(_0x4cdfx18){if(!_0x4cdfx18){logger[_0xf572[50]](_0xf572[22],_0x4cdfx17,404,_0xf572[49]);_0x4cdfx15[_0xf572[29]](404)[_0xf572[28]]();return null};return _0x4cdfx18}}function handleError(_0x4cdfx15,_0x4cdfx16,_0x4cdfx17){_0x4cdfx16= _0x4cdfx16|| 500;return function(_0x4cdfx27){logger[_0xf572[50]](_0xf572[22],_0x4cdfx17,_0x4cdfx16,JSON[_0xf572[31]](_0x4cdfx27));delete _0x4cdfx27[_0xf572[51]];_0x4cdfx15[_0xf572[29]](_0x4cdfx16)[_0xf572[52]](_0x4cdfx27)}}exports[_0xf572[53]]= function(_0x4cdfx28,_0x4cdfx15){var _0x4cdfx1b={},_0x4cdfx29={};_0x4cdfx29[_0xf572[54]]= _[_0xf572[57]](db[_0xf572[56]][_0xf572[55]]);_0x4cdfx29[_0xf572[58]]= _[_0xf572[57]](_0x4cdfx28[_0xf572[58]]);_0x4cdfx29[_0xf572[59]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],_0x4cdfx29[_0xf572[58]]);_0x4cdfx1b[_0xf572[61]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],qs[_0xf572[62]](_0x4cdfx28[_0xf572[58]][_0xf572[62]]));_0x4cdfx1b[_0xf572[61]]= (_0x4cdfx1b[_0xf572[61]][_0xf572[63]])?_0x4cdfx1b[_0xf572[61]]:_0x4cdfx29[_0xf572[54]];if(!_0x4cdfx28[_0xf572[58]][_0xf572[65]](_0xf572[64])){_0x4cdfx1b[_0xf572[35]]= qs[_0xf572[35]](_0x4cdfx28[_0xf572[58]][_0xf572[35]]);_0x4cdfx1b[_0xf572[34]]= qs[_0xf572[34]](_0x4cdfx28[_0xf572[58]][_0xf572[34]])};_0x4cdfx1b[_0xf572[66]]= qs[_0xf572[67]](_0x4cdfx28[_0xf572[58]][_0xf572[67]]);_0x4cdfx1b[_0xf572[68]]= qs[_0xf572[59]](_[_0xf572[69]](_0x4cdfx28[_0xf572[58]],_0x4cdfx29[_0xf572[59]]));if(_0x4cdfx28[_0xf572[58]][_0xf572[70]]){_0x4cdfx1b[_0xf572[68]]= _[_0xf572[73]](_0x4cdfx1b[_0xf572[68]],{$or:_[_0xf572[72]](_0x4cdfx1b[_0xf572[61]],function(_0x4cdfx2a){var _0x4cdfx2b={};_0x4cdfx2b[_0x4cdfx2a]= {$like:_0xf572[71]+ _0x4cdfx28[_0xf572[58]][_0xf572[70]]+ _0xf572[71]};return _0x4cdfx2b})})};_0x4cdfx1b= _[_0xf572[73]]({},_0x4cdfx1b,_0x4cdfx28[_0xf572[74]]);return db[_0xf572[56]][_0xf572[76]](_0x4cdfx1b)[_0xf572[45]](respondWithFilteredResult(_0x4cdfx15,_0x4cdfx1b,_0xf572[53]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[53]))};exports[_0xf572[77]]= function(_0x4cdfx28,_0x4cdfx15){var _0x4cdfx1b={raw:false,where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}},_0x4cdfx29={};_0x4cdfx29[_0xf572[54]]= _[_0xf572[57]](db[_0xf572[56]][_0xf572[55]]);_0x4cdfx29[_0xf572[58]]= _[_0xf572[57]](_0x4cdfx28[_0xf572[58]]);_0x4cdfx29[_0xf572[59]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],_0x4cdfx29[_0xf572[58]]);_0x4cdfx1b[_0xf572[61]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],qs[_0xf572[62]](_0x4cdfx28[_0xf572[58]][_0xf572[62]]));_0x4cdfx1b[_0xf572[61]]= (_0x4cdfx1b[_0xf572[61]][_0xf572[63]])?_0x4cdfx1b[_0xf572[61]]:_0x4cdfx29[_0xf572[54]];_0x4cdfx1b= _[_0xf572[73]]({},_0x4cdfx1b,_0x4cdfx28[_0xf572[74]]);return db[_0xf572[56]][_0xf572[80]](_0x4cdfx1b)[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[77]))[_0xf572[45]](respondWithResult(_0x4cdfx15,null,_0xf572[77]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[77]))};exports[_0xf572[81]]= function(_0x4cdfx28,_0x4cdfx15){return db[_0xf572[56]][_0xf572[81]](_0x4cdfx28[_0xf572[82]],{})[_0xf572[45]](respondWithResult(_0x4cdfx15,201,_0xf572[81]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[81]))};exports[_0xf572[46]]= function(_0x4cdfx28,_0x4cdfx15){if(_0x4cdfx28[_0xf572[82]][_0xf572[78]]){delete _0x4cdfx28[_0xf572[82]][_0xf572[78]]};return db[_0xf572[56]][_0xf572[80]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[46]))[_0xf572[45]](saveUpdates(_0x4cdfx28[_0xf572[82]],null,_0xf572[46]))[_0xf572[45]](respondWithResult(_0x4cdfx15,null,_0xf572[46]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[46]))};exports[_0xf572[48]]= function(_0x4cdfx28,_0x4cdfx15){return db[_0xf572[56]][_0xf572[80]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[48]))[_0xf572[45]](removeEntity(_0x4cdfx15,null,_0xf572[48]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[48]))};exports[_0xf572[83]]= function(_0x4cdfx28,_0x4cdfx15,_0x4cdfx2c){return db[_0xf572[86]][_0xf572[80]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[83]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){return _0x4cdfx18[_0xf572[83]](_0x4cdfx28[_0xf572[82]][_0xf572[84]],_[_0xf572[85]](_0x4cdfx28[_0xf572[82]],[_0xf572[84],_0xf572[78]])|| {})};return null})[_0xf572[45]](respondWithResult(_0x4cdfx15,null,_0xf572[83]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[83]))};exports[_0xf572[87]]= function(_0x4cdfx28,_0x4cdfx18,_0x4cdfx2c){var _0x4cdfx1b={};var _0x4cdfx29={};var _0x4cdfx2d;var _0x4cdfx1c;return db[_0xf572[56]][_0xf572[88]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx18,null,_0xf572[87]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){_0x4cdfx2d= _0x4cdfx18;_0x4cdfx29[_0xf572[54]]= _[_0xf572[57]](db[_0xf572[86]][_0xf572[55]]);_0x4cdfx29[_0xf572[58]]= _[_0xf572[57]](_0x4cdfx28[_0xf572[58]]);_0x4cdfx29[_0xf572[59]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],_0x4cdfx29[_0xf572[58]]);_0x4cdfx1b[_0xf572[61]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],qs[_0xf572[62]](_0x4cdfx28[_0xf572[58]][_0xf572[62]]));_0x4cdfx1b[_0xf572[61]]= (_0x4cdfx1b[_0xf572[61]][_0xf572[63]])?_0x4cdfx1b[_0xf572[61]]:_0x4cdfx29[_0xf572[54]];_0x4cdfx1b[_0xf572[66]]= qs[_0xf572[67]](_0x4cdfx28[_0xf572[58]][_0xf572[67]]);_0x4cdfx1b[_0xf572[68]]= qs[_0xf572[59]](_[_0xf572[69]](_0x4cdfx28[_0xf572[58]],_0x4cdfx29[_0xf572[59]]));if(_0x4cdfx28[_0xf572[58]][_0xf572[70]]){_0x4cdfx1b[_0xf572[68]]= _[_0xf572[73]](_0x4cdfx1b[_0xf572[68]],{$or:_[_0xf572[72]](_0x4cdfx1b[_0xf572[61]],function(_0x4cdfx2a){var _0x4cdfx2b={};_0x4cdfx2b[_0x4cdfx2a]= {$like:_0xf572[71]+ _0x4cdfx28[_0xf572[58]][_0xf572[70]]+ _0xf572[71]};return _0x4cdfx2b})})};_0x4cdfx1b= _[_0xf572[73]]({},_0x4cdfx1b,_0x4cdfx28[_0xf572[74]]);return _0x4cdfx2d[_0xf572[87]](_0x4cdfx1b)}})[_0xf572[45]](function(_0x4cdfx2f){if(_0x4cdfx2f){_0x4cdfx1c= _0x4cdfx2f[_0xf572[63]];if(!_0x4cdfx28[_0xf572[58]][_0xf572[65]](_0xf572[64])){_0x4cdfx1b[_0xf572[35]]= qs[_0xf572[35]](_0x4cdfx28[_0xf572[58]][_0xf572[35]]);_0x4cdfx1b[_0xf572[34]]= qs[_0xf572[34]](_0x4cdfx28[_0xf572[58]][_0xf572[34]])};return _0x4cdfx2d[_0xf572[87]](_0x4cdfx1b)}})[_0xf572[45]](function(_0x4cdfx2e){return _0x4cdfx2e?{count:_0x4cdfx1c,rows:_0x4cdfx2e}:null})[_0xf572[45]](respondWithResult(_0x4cdfx18,null,_0xf572[87]))[_0xf572[75]](handleError(_0x4cdfx18,null,_0xf572[87]))};exports[_0xf572[89]]= function(_0x4cdfx28,_0x4cdfx15,_0x4cdfx2c){return db[_0xf572[90]][_0xf572[80]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[89]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){return _0x4cdfx18[_0xf572[89]](_0x4cdfx28[_0xf572[82]][_0xf572[84]],_[_0xf572[85]](_0x4cdfx28[_0xf572[82]],[_0xf572[84],_0xf572[78]])|| {})};return null})[_0xf572[45]](respondWithResult(_0x4cdfx15,null,_0xf572[89]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[89]))};exports[_0xf572[91]]= function(_0x4cdfx28,_0x4cdfx18,_0x4cdfx2c){var _0x4cdfx1b={};var _0x4cdfx29={};var _0x4cdfx2d;var _0x4cdfx1c;return db[_0xf572[56]][_0xf572[88]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx18,null,_0xf572[91]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){_0x4cdfx2d= _0x4cdfx18;_0x4cdfx29[_0xf572[54]]= _[_0xf572[57]](db[_0xf572[92]][_0xf572[55]]);_0x4cdfx29[_0xf572[58]]= _[_0xf572[57]](_0x4cdfx28[_0xf572[58]]);_0x4cdfx29[_0xf572[59]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],_0x4cdfx29[_0xf572[58]]);_0x4cdfx1b[_0xf572[61]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],qs[_0xf572[62]](_0x4cdfx28[_0xf572[58]][_0xf572[62]]));_0x4cdfx1b[_0xf572[61]]= (_0x4cdfx1b[_0xf572[61]][_0xf572[63]])?_0x4cdfx1b[_0xf572[61]]:_0x4cdfx29[_0xf572[54]];_0x4cdfx1b[_0xf572[66]]= qs[_0xf572[67]](_0x4cdfx28[_0xf572[58]][_0xf572[67]]);_0x4cdfx1b[_0xf572[68]]= qs[_0xf572[59]](_[_0xf572[69]](_0x4cdfx28[_0xf572[58]],_0x4cdfx29[_0xf572[59]]));if(_0x4cdfx28[_0xf572[58]][_0xf572[70]]){_0x4cdfx1b[_0xf572[68]]= _[_0xf572[73]](_0x4cdfx1b[_0xf572[68]],{$or:_[_0xf572[72]](_0x4cdfx1b[_0xf572[61]],function(_0x4cdfx2a){var _0x4cdfx2b={};_0x4cdfx2b[_0x4cdfx2a]= {$like:_0xf572[71]+ _0x4cdfx28[_0xf572[58]][_0xf572[70]]+ _0xf572[71]};return _0x4cdfx2b})})};_0x4cdfx1b= _[_0xf572[73]]({},_0x4cdfx1b,_0x4cdfx28[_0xf572[74]]);return _0x4cdfx2d[_0xf572[91]](_0x4cdfx1b)}})[_0xf572[45]](function(_0x4cdfx2f){if(_0x4cdfx2f){_0x4cdfx1c= _0x4cdfx2f[_0xf572[63]];if(!_0x4cdfx28[_0xf572[58]][_0xf572[65]](_0xf572[64])){_0x4cdfx1b[_0xf572[35]]= qs[_0xf572[35]](_0x4cdfx28[_0xf572[58]][_0xf572[35]]);_0x4cdfx1b[_0xf572[34]]= qs[_0xf572[34]](_0x4cdfx28[_0xf572[58]][_0xf572[34]])};return _0x4cdfx2d[_0xf572[91]](_0x4cdfx1b)}})[_0xf572[45]](function(_0x4cdfx2e){return _0x4cdfx2e?{count:_0x4cdfx1c,rows:_0x4cdfx2e}:null})[_0xf572[45]](respondWithResult(_0x4cdfx18,null,_0xf572[91]))[_0xf572[75]](handleError(_0x4cdfx18,null,_0xf572[91]))};exports[_0xf572[93]]= function(_0x4cdfx28,_0x4cdfx15,_0x4cdfx2c){if(_0x4cdfx28[_0xf572[82]][_0xf572[78]]){delete _0x4cdfx28[_0xf572[82]][_0xf572[78]]};return db[_0xf572[56]][_0xf572[80]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[93]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){_0x4cdfx28[_0xf572[82]][_0xf572[94]]= _0x4cdfx18[_0xf572[78]];return db[_0xf572[95]][_0xf572[81]](_0x4cdfx28[_0xf572[82]])}})[_0xf572[45]](respondWithResult(_0x4cdfx15,null,_0xf572[93]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[93]))};exports[_0xf572[96]]= function(_0x4cdfx28,_0x4cdfx15,_0x4cdfx2c){return db[_0xf572[97]][_0xf572[80]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx15,null,_0xf572[96]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){return _0x4cdfx18[_0xf572[96]](_0x4cdfx28[_0xf572[82]][_0xf572[84]],_[_0xf572[85]](_0x4cdfx28[_0xf572[82]],[_0xf572[84],_0xf572[78]])|| {})};return null})[_0xf572[45]](respondWithResult(_0x4cdfx15,null,_0xf572[96]))[_0xf572[75]](handleError(_0x4cdfx15,null,_0xf572[96]))};exports[_0xf572[98]]= function(_0x4cdfx28,_0x4cdfx18,_0x4cdfx2c){var _0x4cdfx1b={};var _0x4cdfx29={};var _0x4cdfx2d;var _0x4cdfx1c;return db[_0xf572[56]][_0xf572[88]]({where:{id:_0x4cdfx28[_0xf572[79]][_0xf572[78]]}})[_0xf572[45]](handleEntityNotFound(_0x4cdfx18,null,_0xf572[98]))[_0xf572[45]](function(_0x4cdfx18){if(_0x4cdfx18){_0x4cdfx2d= _0x4cdfx18;_0x4cdfx29[_0xf572[54]]= _[_0xf572[57]](db[_0xf572[95]][_0xf572[55]]);_0x4cdfx29[_0xf572[58]]= _[_0xf572[57]](_0x4cdfx28[_0xf572[58]]);_0x4cdfx29[_0xf572[59]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],_0x4cdfx29[_0xf572[58]]);_0x4cdfx1b[_0xf572[61]]= _[_0xf572[60]](_0x4cdfx29[_0xf572[54]],qs[_0xf572[62]](_0x4cdfx28[_0xf572[58]][_0xf572[62]]));_0x4cdfx1b[_0xf572[61]]= (_0x4cdfx1b[_0xf572[61]][_0xf572[63]])?_0x4cdfx1b[_0xf572[61]]:_0x4cdfx29[_0xf572[54]];_0x4cdfx1b[_0xf572[66]]= qs[_0xf572[67]](_0x4cdfx28[_0xf572[58]][_0xf572[67]]);_0x4cdfx1b[_0xf572[68]]= qs[_0xf572[59]](_[_0xf572[69]](_0x4cdfx28[_0xf572[58]],_0x4cdfx29[_0xf572[59]]));if(_0x4cdfx28[_0xf572[58]][_0xf572[70]]){_0x4cdfx1b[_0xf572[68]]= _[_0xf572[73]](_0x4cdfx1b[_0xf572[68]],{$or:_[_0xf572[72]](_0x4cdfx1b[_0xf572[61]],function(_0x4cdfx2a){var _0x4cdfx2b={};_0x4cdfx2b[_0x4cdfx2a]= {$like:_0xf572[71]+ _0x4cdfx28[_0xf572[58]][_0xf572[70]]+ _0xf572[71]};return _0x4cdfx2b})})};_0x4cdfx1b= _[_0xf572[73]]({},_0x4cdfx1b,_0x4cdfx28[_0xf572[74]]);return _0x4cdfx2d[_0xf572[98]](_0x4cdfx1b)}})[_0xf572[45]](function(_0x4cdfx2f){if(_0x4cdfx2f){_0x4cdfx1c= _0x4cdfx2f[_0xf572[63]];if(!_0x4cdfx28[_0xf572[58]][_0xf572[65]](_0xf572[64])){_0x4cdfx1b[_0xf572[35]]= qs[_0xf572[35]](_0x4cdfx28[_0xf572[58]][_0xf572[35]]);_0x4cdfx1b[_0xf572[34]]= qs[_0xf572[34]](_0x4cdfx28[_0xf572[58]][_0xf572[34]])};return _0x4cdfx2d[_0xf572[98]](_0x4cdfx1b)}})[_0xf572[45]](function(_0x4cdfx2e){return _0x4cdfx2e?{count:_0x4cdfx1c,rows:_0x4cdfx2e}:null})[_0xf572[45]](respondWithResult(_0x4cdfx18,null,_0xf572[98]))[_0xf572[75]](handleError(_0x4cdfx18,null,_0xf572[98]))}
\ No newline at end of file
index d485b2e..785e03b 100644 (file)
@@ -1 +1 @@
-var _0x450c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x450c[0];var _=require(_0x450c[1]);var util=require(_0x450c[2]);var logger=require(_0x450c[4])(_0x450c[3]);var attributes=require(_0x450c[5]);module[_0x450c[6]]= function(_0xdff3x5,_0xdff3x6){return _0xdff3x5[_0x450c[9]](_0x450c[7],attributes,{tableName:_0x450c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4a5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x4a5a[0];var _=require(_0x4a5a[1]);var util=require(_0x4a5a[2]);var logger=require(_0x4a5a[4])(_0x4a5a[3]);var attributes=require(_0x4a5a[5]);module[_0x4a5a[6]]= function(_0xd36fx5,_0xd36fx6){return _0xd36fx5[_0x4a5a[9]](_0x4a5a[7],attributes,{tableName:_0x4a5a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index f0ebb7a..5cc1423 100644 (file)
@@ -1 +1 @@
-var _0xcf68=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcf68[0];var _=require(_0xcf68[1]);var util=require(_0xcf68[2]);var moment=require(_0xcf68[3]);var BPromise=require(_0xcf68[4]);var db=require(_0xcf68[6])[_0xcf68[5]];var utils=require(_0xcf68[7]);var logger=require(_0xcf68[9])(_0xcf68[8]);var jayson=require(_0xcf68[10]);var client=jayson[_0xcf68[12]][_0xcf68[11]]({port:9002});function respondWithRpcPromise(_0x1d63xb,_0x1d63xc,_0x1d63xd){return  new BPromise(function(_0x1d63xe,_0x1d63xf){return client[_0xcf68[25]](_0x1d63xb,_0x1d63xd)[_0xcf68[24]](function(_0x1d63x11){logger[_0xcf68[17]](_0xcf68[13],_0x1d63xc,_0xcf68[16]);logger[_0xcf68[20]](_0xcf68[18],_0x1d63xc,_0xcf68[16],JSON[_0xcf68[19]](_0x1d63x11));if(_0x1d63x11[_0xcf68[14]]){if(_0x1d63x11[_0xcf68[14]][_0xcf68[21]]=== 500){logger[_0xcf68[14]](_0xcf68[13],_0x1d63xc,_0x1d63x11[_0xcf68[14]][_0xcf68[22]]);return _0x1d63xf(_0x1d63x11[_0xcf68[14]][_0xcf68[22]])};logger[_0xcf68[14]](_0xcf68[13],_0x1d63xc,_0x1d63x11[_0xcf68[14]][_0xcf68[22]]);return _0x1d63xe(_0x1d63x11[_0xcf68[14]][_0xcf68[22]])}else {logger[_0xcf68[17]](_0xcf68[13],_0x1d63xc,_0xcf68[16]);_0x1d63xe(_0x1d63x11[_0xcf68[23]][_0xcf68[22]])}})[_0xcf68[15]](function(_0x1d63x10){logger[_0xcf68[14]](_0xcf68[13],_0x1d63xc,_0x1d63x10);_0x1d63xf(_0x1d63x10)})})}
\ No newline at end of file
+var _0x84f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x84f9[0];var _=require(_0x84f9[1]);var util=require(_0x84f9[2]);var moment=require(_0x84f9[3]);var BPromise=require(_0x84f9[4]);var db=require(_0x84f9[6])[_0x84f9[5]];var utils=require(_0x84f9[7]);var logger=require(_0x84f9[9])(_0x84f9[8]);var jayson=require(_0x84f9[10]);var client=jayson[_0x84f9[12]][_0x84f9[11]]({port:9002});function respondWithRpcPromise(_0x54a4xb,_0x54a4xc,_0x54a4xd){return  new BPromise(function(_0x54a4xe,_0x54a4xf){return client[_0x84f9[25]](_0x54a4xb,_0x54a4xd)[_0x84f9[24]](function(_0x54a4x11){logger[_0x84f9[17]](_0x84f9[13],_0x54a4xc,_0x84f9[16]);logger[_0x84f9[20]](_0x84f9[18],_0x54a4xc,_0x84f9[16],JSON[_0x84f9[19]](_0x54a4x11));if(_0x54a4x11[_0x84f9[14]]){if(_0x54a4x11[_0x84f9[14]][_0x84f9[21]]=== 500){logger[_0x84f9[14]](_0x84f9[13],_0x54a4xc,_0x54a4x11[_0x84f9[14]][_0x84f9[22]]);return _0x54a4xf(_0x54a4x11[_0x84f9[14]][_0x84f9[22]])};logger[_0x84f9[14]](_0x84f9[13],_0x54a4xc,_0x54a4x11[_0x84f9[14]][_0x84f9[22]]);return _0x54a4xe(_0x54a4x11[_0x84f9[14]][_0x84f9[22]])}else {logger[_0x84f9[17]](_0x84f9[13],_0x54a4xc,_0x84f9[16]);_0x54a4xe(_0x54a4x11[_0x84f9[23]][_0x84f9[22]])}})[_0x84f9[15]](function(_0x54a4x10){logger[_0x84f9[14]](_0x84f9[13],_0x54a4xc,_0x54a4x10);_0x54a4xf(_0x54a4x10)})})}
\ No newline at end of file
index 046b510..5db3086 100644 (file)
@@ -1 +1 @@
-var _0xee22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xee22[0];var multer=require(_0xee22[1]);var util=require(_0xee22[2]);var path=require(_0xee22[3]);var express=require(_0xee22[4]);var router=express.Router();var auth=require(_0xee22[5]);var config=require(_0xee22[6]);var controller=require(_0xee22[7]);router[_0xee22[11]](_0xee22[8],auth[_0xee22[9]](),controller[_0xee22[10]]);router[_0xee22[13]](_0xee22[8],auth[_0xee22[9]](),controller[_0xee22[12]]);router[_0xee22[15]](_0xee22[8],auth[_0xee22[9]](),controller[_0xee22[14]]);module[_0xee22[16]]= router
\ No newline at end of file
+var _0x79f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x79f7[0];var multer=require(_0x79f7[1]);var util=require(_0x79f7[2]);var path=require(_0x79f7[3]);var express=require(_0x79f7[4]);var router=express.Router();var auth=require(_0x79f7[5]);var config=require(_0x79f7[6]);var controller=require(_0x79f7[7]);router[_0x79f7[11]](_0x79f7[8],auth[_0x79f7[9]](),controller[_0x79f7[10]]);router[_0x79f7[13]](_0x79f7[8],auth[_0x79f7[9]](),controller[_0x79f7[12]]);router[_0x79f7[15]](_0x79f7[8],auth[_0x79f7[9]](),controller[_0x79f7[14]]);module[_0x79f7[16]]= router
\ No newline at end of file
index 3ccccab..2409af1 100644 (file)
@@ -1 +1 @@
-var _0x86f4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x86f4[0];var Sequelize=require(_0x86f4[1]);module[_0x86f4[2]]= {app:{type:Sequelize.ENUM(_0x86f4[3],_0x86f4[4],_0x86f4[5],_0x86f4[6])},priority:{type:Sequelize[_0x86f4[7]]},timeout:{type:Sequelize[_0x86f4[7]],validate:{min:1}},interval:{type:Sequelize[_0x86f4[8]]},data1:{type:Sequelize[_0x86f4[8]]},data2:{type:Sequelize[_0x86f4[8]]},data3:{type:Sequelize[_0x86f4[8]]},data4:{type:Sequelize[_0x86f4[8]]},data5:{type:Sequelize[_0x86f4[8]]},data6:{type:Sequelize[_0x86f4[8]]},data7:{type:Sequelize[_0x86f4[9]]},data8:{type:Sequelize[_0x86f4[7]]},data9:{type:Sequelize[_0x86f4[7]]},data10:{type:Sequelize[_0x86f4[7]]}}
\ No newline at end of file
+var _0xdcd2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0xdcd2[0];var Sequelize=require(_0xdcd2[1]);module[_0xdcd2[2]]= {app:{type:Sequelize.ENUM(_0xdcd2[3],_0xdcd2[4],_0xdcd2[5],_0xdcd2[6])},priority:{type:Sequelize[_0xdcd2[7]]},timeout:{type:Sequelize[_0xdcd2[7]],validate:{min:1}},interval:{type:Sequelize[_0xdcd2[8]]},data1:{type:Sequelize[_0xdcd2[8]]},data2:{type:Sequelize[_0xdcd2[8]]},data3:{type:Sequelize[_0xdcd2[8]]},data4:{type:Sequelize[_0xdcd2[8]]},data5:{type:Sequelize[_0xdcd2[8]]},data6:{type:Sequelize[_0xdcd2[8]]},data7:{type:Sequelize[_0xdcd2[9]]},data8:{type:Sequelize[_0xdcd2[7]]},data9:{type:Sequelize[_0xdcd2[7]]},data10:{type:Sequelize[_0xdcd2[7]]}}
\ No newline at end of file
index 493ddee..bbba90d 100644 (file)
@@ -1 +1 @@
-var _0xd91e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xd91e[0];var jsonpatch=require(_0xd91e[1]);var rp=require(_0xd91e[2]);var moment=require(_0xd91e[3]);var BPromise=require(_0xd91e[4]);var util=require(_0xd91e[5]);var path=require(_0xd91e[6]);var sox=require(_0xd91e[7]);var ejs=require(_0xd91e[8]);var fs=require(_0xd91e[9]);var _=require(_0xd91e[10]);var squel=require(_0xd91e[11]);var crypto=require(_0xd91e[12]);var jsforce=require(_0xd91e[13]);var toCsv=require(_0xd91e[14]);var qs=require(_0xd91e[15]);var logger=require(_0xd91e[17])(_0xd91e[16]);var utils=require(_0xd91e[18]);var config=require(_0xd91e[19]);var db=require(_0xd91e[21])[_0xd91e[20]];function respondWithStatusCode(_0x40c7x15,_0x40c7x16,_0x40c7x17){_0x40c7x16= _0x40c7x16|| 204;return function(_0x40c7x18){if(_0x40c7x18){logger[_0xd91e[24]](_0xd91e[22],_0x40c7x17,_0x40c7x16,_0xd91e[23]);logger[_0xd91e[26]](_0xd91e[25],_0x40c7x17,_0x40c7x16,_0xd91e[23]);return _0x40c7x15[_0xd91e[27]](_0x40c7x16)};return _0x40c7x15[_0xd91e[29]](304)[_0xd91e[28]]()}}function respondWithResult(_0x40c7x15,_0x40c7x16,_0x40c7x17){_0x40c7x16= _0x40c7x16|| 200;return function(_0x40c7x18){if(_0x40c7x18){logger[_0xd91e[24]](_0xd91e[22],_0x40c7x17,_0x40c7x16,_0xd91e[30]);logger[_0xd91e[26]](_0xd91e[25],_0x40c7x17,_0x40c7x16,_0xd91e[30],JSON[_0xd91e[31]](_0x40c7x18));return _0x40c7x15[_0xd91e[29]](_0x40c7x16)[_0xd91e[32]](_0x40c7x18)};return _0x40c7x15[_0xd91e[29]](304)[_0xd91e[28]]()}}function respondWithFilteredResult(_0x40c7x15,_0x40c7x1b,_0x40c7x17){return function(_0x40c7x18){if(_0x40c7x18){var _0x40c7x1c=_0x40c7x18[_0xd91e[33]],_0x40c7x1d=_0x40c7x1b[_0xd91e[34]],_0x40c7x1e=_0x40c7x1b[_0xd91e[34]]+ _0x40c7x1b[_0xd91e[35]],_0x40c7x16;if(_0x40c7x1e>= _0x40c7x1c){_0x40c7x1e= _0x40c7x1c;_0x40c7x16= 200}else {_0x40c7x16= 206};_0x40c7x15[_0xd91e[29]](_0x40c7x16);logger[_0xd91e[24]](_0xd91e[22],_0x40c7x17,_0x40c7x16,_0xd91e[36]);logger[_0xd91e[26]](_0xd91e[25],_0x40c7x17,_0x40c7x16,_0xd91e[30],JSON[_0xd91e[31]](_0x40c7x18));return _0x40c7x15[_0xd91e[40]](_0xd91e[37],_0x40c7x1d+ _0xd91e[38]+ _0x40c7x1e+ _0xd91e[39]+ _0x40c7x1c)[_0xd91e[32]](_0x40c7x18)};return null}}function patchUpdates(_0x40c7x20){return function(_0x40c7x18){try{jsonpatch[_0xd91e[41]](_0x40c7x18,_0x40c7x20,true)}catch(err){return BPromise[_0xd91e[42]](err)};return _0x40c7x18[_0xd91e[43]]()}}function saveUpdates(_0x40c7x22,_0x40c7x16,_0x40c7x17){return function(_0x40c7x18){if(_0x40c7x18){return _0x40c7x18[_0xd91e[46]](_0x40c7x22)[_0xd91e[45]](function(_0x40c7x23){logger[_0xd91e[24]](_0xd91e[22],_0x40c7x17,_0x40c7x16,_0xd91e[44]);logger[_0xd91e[26]](_0xd91e[25],_0x40c7x17,_0x40c7x16,_0xd91e[44],JSON[_0xd91e[31]](_0x40c7x18));return _0x40c7x23})};return null}}function removeEntity(_0x40c7x15,_0x40c7x16,_0x40c7x17){return function(_0x40c7x18){if(_0x40c7x18){return _0x40c7x18[_0xd91e[48]]()[_0xd91e[45]](function(){logger[_0xd91e[24]](_0xd91e[22],_0x40c7x17,_0x40c7x16,_0xd91e[47]);logger[_0xd91e[26]](_0xd91e[25],_0x40c7x17,_0x40c7x16,_0xd91e[47],JSON[_0xd91e[31]](_0x40c7x18));_0x40c7x15[_0xd91e[29]](204)[_0xd91e[28]]()})}}}function handleEntityNotFound(_0x40c7x15,_0x40c7x16,_0x40c7x17){return function(_0x40c7x18){if(!_0x40c7x18){logger[_0xd91e[50]](_0xd91e[22],_0x40c7x17,404,_0xd91e[49]);_0x40c7x15[_0xd91e[29]](404)[_0xd91e[28]]();return null};return _0x40c7x18}}function handleError(_0x40c7x15,_0x40c7x16,_0x40c7x17){_0x40c7x16= _0x40c7x16|| 500;return function(_0x40c7x27){logger[_0xd91e[50]](_0xd91e[22],_0x40c7x17,_0x40c7x16,JSON[_0xd91e[31]](_0x40c7x27));delete _0x40c7x27[_0xd91e[51]];_0x40c7x15[_0xd91e[29]](_0x40c7x16)[_0xd91e[52]](_0x40c7x27)}}exports[_0xd91e[53]]= function(_0x40c7x28,_0x40c7x15){var _0x40c7x1b={raw:true,where:{id:_0x40c7x28[_0xd91e[55]][_0xd91e[54]]}},_0x40c7x29={};_0x40c7x29[_0xd91e[56]]= _[_0xd91e[59]](db[_0xd91e[58]][_0xd91e[57]]);_0x40c7x29[_0xd91e[60]]= _[_0xd91e[59]](_0x40c7x28[_0xd91e[60]]);_0x40c7x29[_0xd91e[61]]= _[_0xd91e[62]](_0x40c7x29[_0xd91e[56]],_0x40c7x29[_0xd91e[60]]);_0x40c7x1b[_0xd91e[63]]= _[_0xd91e[62]](_0x40c7x29[_0xd91e[56]],qs[_0xd91e[64]](_0x40c7x28[_0xd91e[60]][_0xd91e[64]]));_0x40c7x1b[_0xd91e[63]]= (_0x40c7x1b[_0xd91e[63]][_0xd91e[65]])?_0x40c7x1b[_0xd91e[63]]:_0x40c7x29[_0xd91e[56]];_0x40c7x1b= _[_0xd91e[67]]({},_0x40c7x1b,_0x40c7x28[_0xd91e[66]]);return db[_0xd91e[58]][_0xd91e[69]](_0x40c7x1b)[_0xd91e[45]](handleEntityNotFound(_0x40c7x15,null,_0xd91e[53]))[_0xd91e[45]](respondWithResult(_0x40c7x15,null,_0xd91e[53]))[_0xd91e[68]](handleError(_0x40c7x15,null,_0xd91e[53]))};exports[_0xd91e[46]]= function(_0x40c7x28,_0x40c7x15){if(_0x40c7x28[_0xd91e[70]][_0xd91e[54]]){delete _0x40c7x28[_0xd91e[70]][_0xd91e[54]]};return db[_0xd91e[58]][_0xd91e[69]]({where:{id:_0x40c7x28[_0xd91e[55]][_0xd91e[54]]}})[_0xd91e[45]](handleEntityNotFound(_0x40c7x15,null,_0xd91e[46]))[_0xd91e[45]](saveUpdates(_0x40c7x28[_0xd91e[70]],null,_0xd91e[46]))[_0xd91e[45]](respondWithResult(_0x40c7x15,null,_0xd91e[46]))[_0xd91e[68]](handleError(_0x40c7x15,null,_0xd91e[46]))};exports[_0xd91e[48]]= function(_0x40c7x28,_0x40c7x15){return db[_0xd91e[58]][_0xd91e[69]]({where:{id:_0x40c7x28[_0xd91e[55]][_0xd91e[54]]}})[_0xd91e[45]](handleEntityNotFound(_0x40c7x15,null,_0xd91e[48]))[_0xd91e[45]](removeEntity(_0x40c7x15,null,_0xd91e[48]))[_0xd91e[68]](handleError(_0x40c7x15,null,_0xd91e[48]))}
\ No newline at end of file
+var _0x5a48=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x5a48[0];var jsonpatch=require(_0x5a48[1]);var rp=require(_0x5a48[2]);var moment=require(_0x5a48[3]);var BPromise=require(_0x5a48[4]);var util=require(_0x5a48[5]);var path=require(_0x5a48[6]);var sox=require(_0x5a48[7]);var ejs=require(_0x5a48[8]);var fs=require(_0x5a48[9]);var _=require(_0x5a48[10]);var squel=require(_0x5a48[11]);var crypto=require(_0x5a48[12]);var jsforce=require(_0x5a48[13]);var toCsv=require(_0x5a48[14]);var qs=require(_0x5a48[15]);var logger=require(_0x5a48[17])(_0x5a48[16]);var utils=require(_0x5a48[18]);var config=require(_0x5a48[19]);var db=require(_0x5a48[21])[_0x5a48[20]];function respondWithStatusCode(_0x2d94x15,_0x2d94x16,_0x2d94x17){_0x2d94x16= _0x2d94x16|| 204;return function(_0x2d94x18){if(_0x2d94x18){logger[_0x5a48[24]](_0x5a48[22],_0x2d94x17,_0x2d94x16,_0x5a48[23]);logger[_0x5a48[26]](_0x5a48[25],_0x2d94x17,_0x2d94x16,_0x5a48[23]);return _0x2d94x15[_0x5a48[27]](_0x2d94x16)};return _0x2d94x15[_0x5a48[29]](304)[_0x5a48[28]]()}}function respondWithResult(_0x2d94x15,_0x2d94x16,_0x2d94x17){_0x2d94x16= _0x2d94x16|| 200;return function(_0x2d94x18){if(_0x2d94x18){logger[_0x5a48[24]](_0x5a48[22],_0x2d94x17,_0x2d94x16,_0x5a48[30]);logger[_0x5a48[26]](_0x5a48[25],_0x2d94x17,_0x2d94x16,_0x5a48[30],JSON[_0x5a48[31]](_0x2d94x18));return _0x2d94x15[_0x5a48[29]](_0x2d94x16)[_0x5a48[32]](_0x2d94x18)};return _0x2d94x15[_0x5a48[29]](304)[_0x5a48[28]]()}}function respondWithFilteredResult(_0x2d94x15,_0x2d94x1b,_0x2d94x17){return function(_0x2d94x18){if(_0x2d94x18){var _0x2d94x1c=_0x2d94x18[_0x5a48[33]],_0x2d94x1d=_0x2d94x1b[_0x5a48[34]],_0x2d94x1e=_0x2d94x1b[_0x5a48[34]]+ _0x2d94x1b[_0x5a48[35]],_0x2d94x16;if(_0x2d94x1e>= _0x2d94x1c){_0x2d94x1e= _0x2d94x1c;_0x2d94x16= 200}else {_0x2d94x16= 206};_0x2d94x15[_0x5a48[29]](_0x2d94x16);logger[_0x5a48[24]](_0x5a48[22],_0x2d94x17,_0x2d94x16,_0x5a48[36]);logger[_0x5a48[26]](_0x5a48[25],_0x2d94x17,_0x2d94x16,_0x5a48[30],JSON[_0x5a48[31]](_0x2d94x18));return _0x2d94x15[_0x5a48[40]](_0x5a48[37],_0x2d94x1d+ _0x5a48[38]+ _0x2d94x1e+ _0x5a48[39]+ _0x2d94x1c)[_0x5a48[32]](_0x2d94x18)};return null}}function patchUpdates(_0x2d94x20){return function(_0x2d94x18){try{jsonpatch[_0x5a48[41]](_0x2d94x18,_0x2d94x20,true)}catch(err){return BPromise[_0x5a48[42]](err)};return _0x2d94x18[_0x5a48[43]]()}}function saveUpdates(_0x2d94x22,_0x2d94x16,_0x2d94x17){return function(_0x2d94x18){if(_0x2d94x18){return _0x2d94x18[_0x5a48[46]](_0x2d94x22)[_0x5a48[45]](function(_0x2d94x23){logger[_0x5a48[24]](_0x5a48[22],_0x2d94x17,_0x2d94x16,_0x5a48[44]);logger[_0x5a48[26]](_0x5a48[25],_0x2d94x17,_0x2d94x16,_0x5a48[44],JSON[_0x5a48[31]](_0x2d94x18));return _0x2d94x23})};return null}}function removeEntity(_0x2d94x15,_0x2d94x16,_0x2d94x17){return function(_0x2d94x18){if(_0x2d94x18){return _0x2d94x18[_0x5a48[48]]()[_0x5a48[45]](function(){logger[_0x5a48[24]](_0x5a48[22],_0x2d94x17,_0x2d94x16,_0x5a48[47]);logger[_0x5a48[26]](_0x5a48[25],_0x2d94x17,_0x2d94x16,_0x5a48[47],JSON[_0x5a48[31]](_0x2d94x18));_0x2d94x15[_0x5a48[29]](204)[_0x5a48[28]]()})}}}function handleEntityNotFound(_0x2d94x15,_0x2d94x16,_0x2d94x17){return function(_0x2d94x18){if(!_0x2d94x18){logger[_0x5a48[50]](_0x5a48[22],_0x2d94x17,404,_0x5a48[49]);_0x2d94x15[_0x5a48[29]](404)[_0x5a48[28]]();return null};return _0x2d94x18}}function handleError(_0x2d94x15,_0x2d94x16,_0x2d94x17){_0x2d94x16= _0x2d94x16|| 500;return function(_0x2d94x27){logger[_0x5a48[50]](_0x5a48[22],_0x2d94x17,_0x2d94x16,JSON[_0x5a48[31]](_0x2d94x27));delete _0x2d94x27[_0x5a48[51]];_0x2d94x15[_0x5a48[29]](_0x2d94x16)[_0x5a48[52]](_0x2d94x27)}}exports[_0x5a48[53]]= function(_0x2d94x28,_0x2d94x15){var _0x2d94x1b={raw:true,where:{id:_0x2d94x28[_0x5a48[55]][_0x5a48[54]]}},_0x2d94x29={};_0x2d94x29[_0x5a48[56]]= _[_0x5a48[59]](db[_0x5a48[58]][_0x5a48[57]]);_0x2d94x29[_0x5a48[60]]= _[_0x5a48[59]](_0x2d94x28[_0x5a48[60]]);_0x2d94x29[_0x5a48[61]]= _[_0x5a48[62]](_0x2d94x29[_0x5a48[56]],_0x2d94x29[_0x5a48[60]]);_0x2d94x1b[_0x5a48[63]]= _[_0x5a48[62]](_0x2d94x29[_0x5a48[56]],qs[_0x5a48[64]](_0x2d94x28[_0x5a48[60]][_0x5a48[64]]));_0x2d94x1b[_0x5a48[63]]= (_0x2d94x1b[_0x5a48[63]][_0x5a48[65]])?_0x2d94x1b[_0x5a48[63]]:_0x2d94x29[_0x5a48[56]];_0x2d94x1b= _[_0x5a48[67]]({},_0x2d94x1b,_0x2d94x28[_0x5a48[66]]);return db[_0x5a48[58]][_0x5a48[69]](_0x2d94x1b)[_0x5a48[45]](handleEntityNotFound(_0x2d94x15,null,_0x5a48[53]))[_0x5a48[45]](respondWithResult(_0x2d94x15,null,_0x5a48[53]))[_0x5a48[68]](handleError(_0x2d94x15,null,_0x5a48[53]))};exports[_0x5a48[46]]= function(_0x2d94x28,_0x2d94x15){if(_0x2d94x28[_0x5a48[70]][_0x5a48[54]]){delete _0x2d94x28[_0x5a48[70]][_0x5a48[54]]};return db[_0x5a48[58]][_0x5a48[69]]({where:{id:_0x2d94x28[_0x5a48[55]][_0x5a48[54]]}})[_0x5a48[45]](handleEntityNotFound(_0x2d94x15,null,_0x5a48[46]))[_0x5a48[45]](saveUpdates(_0x2d94x28[_0x5a48[70]],null,_0x5a48[46]))[_0x5a48[45]](respondWithResult(_0x2d94x15,null,_0x5a48[46]))[_0x5a48[68]](handleError(_0x2d94x15,null,_0x5a48[46]))};exports[_0x5a48[48]]= function(_0x2d94x28,_0x2d94x15){return db[_0x5a48[58]][_0x5a48[69]]({where:{id:_0x2d94x28[_0x5a48[55]][_0x5a48[54]]}})[_0x5a48[45]](handleEntityNotFound(_0x2d94x15,null,_0x5a48[48]))[_0x5a48[45]](removeEntity(_0x2d94x15,null,_0x5a48[48]))[_0x5a48[68]](handleError(_0x2d94x15,null,_0x5a48[48]))}
\ No newline at end of file
index 40a71d4..d0e64f6 100644 (file)
@@ -1 +1 @@
-var _0x6582=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x6582[0];var _=require(_0x6582[1]);var util=require(_0x6582[2]);var logger=require(_0x6582[4])(_0x6582[3]);var attributes=require(_0x6582[5]);module[_0x6582[6]]= function(_0xd915x5,_0xd915x6){return _0xd915x5[_0x6582[9]](_0x6582[7],attributes,{tableName:_0x6582[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xfd2b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xfd2b[0];var _=require(_0xfd2b[1]);var util=require(_0xfd2b[2]);var logger=require(_0xfd2b[4])(_0xfd2b[3]);var attributes=require(_0xfd2b[5]);module[_0xfd2b[6]]= function(_0xa8a4x5,_0xa8a4x6){return _0xa8a4x5[_0xfd2b[9]](_0xfd2b[7],attributes,{tableName:_0xfd2b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index d91b334..4cacd5b 100644 (file)
@@ -1 +1 @@
-var _0x1da9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E"];_0x1da9[0];var _=require(_0x1da9[1]);var util=require(_0x1da9[2]);var moment=require(_0x1da9[3]);var BPromise=require(_0x1da9[4]);var db=require(_0x1da9[6])[_0x1da9[5]];var utils=require(_0x1da9[7]);var logger=require(_0x1da9[9])(_0x1da9[8]);var jayson=require(_0x1da9[10]);var client=jayson[_0x1da9[12]][_0x1da9[11]]({port:9002});function respondWithRpcPromise(_0x6ec8xb,_0x6ec8xc,_0x6ec8xd){return  new BPromise(function(_0x6ec8xe,_0x6ec8xf){return client[_0x1da9[25]](_0x6ec8xb,_0x6ec8xd)[_0x1da9[24]](function(_0x6ec8x11){logger[_0x1da9[17]](_0x1da9[13],_0x6ec8xc,_0x1da9[16]);logger[_0x1da9[20]](_0x1da9[18],_0x6ec8xc,_0x1da9[16],JSON[_0x1da9[19]](_0x6ec8x11));if(_0x6ec8x11[_0x1da9[14]]){if(_0x6ec8x11[_0x1da9[14]][_0x1da9[21]]=== 500){logger[_0x1da9[14]](_0x1da9[13],_0x6ec8xc,_0x6ec8x11[_0x1da9[14]][_0x1da9[22]]);return _0x6ec8xf(_0x6ec8x11[_0x1da9[14]][_0x1da9[22]])};logger[_0x1da9[14]](_0x1da9[13],_0x6ec8xc,_0x6ec8x11[_0x1da9[14]][_0x1da9[22]]);return _0x6ec8xe(_0x6ec8x11[_0x1da9[14]][_0x1da9[22]])}else {logger[_0x1da9[17]](_0x1da9[13],_0x6ec8xc,_0x1da9[16]);_0x6ec8xe(_0x6ec8x11[_0x1da9[23]][_0x1da9[22]])}})[_0x1da9[15]](function(_0x6ec8x10){logger[_0x1da9[14]](_0x1da9[13],_0x6ec8xc,_0x6ec8x10);_0x6ec8xf(_0x6ec8x10)})})}exports[_0x1da9[26]]= function(_0x6ec8xd){var _0x6ec8x12=this;return  new Promise(function(_0x6ec8xe,_0x6ec8xf){return db[_0x1da9[34]][_0x1da9[33]](_0x6ec8xd[_0x1da9[27]],{raw:_0x6ec8xd[_0x1da9[28]]?(_0x6ec8xd[_0x1da9[28]][_0x1da9[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x6ec8xd[_0x1da9[28]]?_0x6ec8xd[_0x1da9[28]][_0x1da9[30]]|| null:null,attributes:_0x6ec8xd[_0x1da9[28]]?_0x6ec8xd[_0x1da9[28]][_0x1da9[31]]|| null:null,limit:_0x6ec8xd[_0x1da9[28]]?_0x6ec8xd[_0x1da9[28]][_0x1da9[32]]|| null:null})[_0x1da9[24]](function(_0x6ec8x11){logger[_0x1da9[17]](_0x1da9[26],_0x6ec8xd);logger[_0x1da9[20]](_0x1da9[26],_0x6ec8xd,JSON[_0x1da9[19]](_0x6ec8x11));_0x6ec8xe(_0x6ec8x11)})[_0x1da9[15]](function(_0x6ec8x10){logger[_0x1da9[14]](_0x1da9[26],_0x6ec8x10[_0x1da9[22]],_0x6ec8xd);_0x6ec8xf(_0x6ec8x12[_0x1da9[14]](500,_0x6ec8x10[_0x1da9[22]]))})})}
\ No newline at end of file
+var _0x1d10=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E"];_0x1d10[0];var _=require(_0x1d10[1]);var util=require(_0x1d10[2]);var moment=require(_0x1d10[3]);var BPromise=require(_0x1d10[4]);var db=require(_0x1d10[6])[_0x1d10[5]];var utils=require(_0x1d10[7]);var logger=require(_0x1d10[9])(_0x1d10[8]);var jayson=require(_0x1d10[10]);var client=jayson[_0x1d10[12]][_0x1d10[11]]({port:9002});function respondWithRpcPromise(_0x6a5dxb,_0x6a5dxc,_0x6a5dxd){return  new BPromise(function(_0x6a5dxe,_0x6a5dxf){return client[_0x1d10[25]](_0x6a5dxb,_0x6a5dxd)[_0x1d10[24]](function(_0x6a5dx11){logger[_0x1d10[17]](_0x1d10[13],_0x6a5dxc,_0x1d10[16]);logger[_0x1d10[20]](_0x1d10[18],_0x6a5dxc,_0x1d10[16],JSON[_0x1d10[19]](_0x6a5dx11));if(_0x6a5dx11[_0x1d10[14]]){if(_0x6a5dx11[_0x1d10[14]][_0x1d10[21]]=== 500){logger[_0x1d10[14]](_0x1d10[13],_0x6a5dxc,_0x6a5dx11[_0x1d10[14]][_0x1d10[22]]);return _0x6a5dxf(_0x6a5dx11[_0x1d10[14]][_0x1d10[22]])};logger[_0x1d10[14]](_0x1d10[13],_0x6a5dxc,_0x6a5dx11[_0x1d10[14]][_0x1d10[22]]);return _0x6a5dxe(_0x6a5dx11[_0x1d10[14]][_0x1d10[22]])}else {logger[_0x1d10[17]](_0x1d10[13],_0x6a5dxc,_0x1d10[16]);_0x6a5dxe(_0x6a5dx11[_0x1d10[23]][_0x1d10[22]])}})[_0x1d10[15]](function(_0x6a5dx10){logger[_0x1d10[14]](_0x1d10[13],_0x6a5dxc,_0x6a5dx10);_0x6a5dxf(_0x6a5dx10)})})}exports[_0x1d10[26]]= function(_0x6a5dxd){var _0x6a5dx12=this;return  new Promise(function(_0x6a5dxe,_0x6a5dxf){return db[_0x1d10[34]][_0x1d10[33]](_0x6a5dxd[_0x1d10[27]],{raw:_0x6a5dxd[_0x1d10[28]]?(_0x6a5dxd[_0x1d10[28]][_0x1d10[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x6a5dxd[_0x1d10[28]]?_0x6a5dxd[_0x1d10[28]][_0x1d10[30]]|| null:null,attributes:_0x6a5dxd[_0x1d10[28]]?_0x6a5dxd[_0x1d10[28]][_0x1d10[31]]|| null:null,limit:_0x6a5dxd[_0x1d10[28]]?_0x6a5dxd[_0x1d10[28]][_0x1d10[32]]|| null:null})[_0x1d10[24]](function(_0x6a5dx11){logger[_0x1d10[17]](_0x1d10[26],_0x6a5dxd);logger[_0x1d10[20]](_0x1d10[26],_0x6a5dxd,JSON[_0x1d10[19]](_0x6a5dx11));_0x6a5dxe(_0x6a5dx11)})[_0x1d10[15]](function(_0x6a5dx10){logger[_0x1d10[14]](_0x1d10[26],_0x6a5dx10[_0x1d10[22]],_0x6a5dxd);_0x6a5dxf(_0x6a5dx12[_0x1d10[14]](500,_0x6a5dx10[_0x1d10[22]]))})})}
\ No newline at end of file
index 7bb65de..b3c086e 100644 (file)
@@ -1 +1 @@
-var _0xd800=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd800[0];var multer=require(_0xd800[1]);var util=require(_0xd800[2]);var path=require(_0xd800[3]);var express=require(_0xd800[4]);var router=express.Router();var auth=require(_0xd800[5]);var config=require(_0xd800[6]);var controller=require(_0xd800[7]);router[_0xd800[11]](_0xd800[8],auth[_0xd800[9]](),controller[_0xd800[10]]);router[_0xd800[14]](_0xd800[12],auth[_0xd800[9]](),controller[_0xd800[13]]);router[_0xd800[16]](_0xd800[8],auth[_0xd800[9]](),controller[_0xd800[15]]);router[_0xd800[18]](_0xd800[8],auth[_0xd800[9]](),controller[_0xd800[17]]);module[_0xd800[19]]= router
\ No newline at end of file
+var _0xcbcc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcbcc[0];var multer=require(_0xcbcc[1]);var util=require(_0xcbcc[2]);var path=require(_0xcbcc[3]);var express=require(_0xcbcc[4]);var router=express.Router();var auth=require(_0xcbcc[5]);var config=require(_0xcbcc[6]);var controller=require(_0xcbcc[7]);router[_0xcbcc[11]](_0xcbcc[8],auth[_0xcbcc[9]](),controller[_0xcbcc[10]]);router[_0xcbcc[14]](_0xcbcc[12],auth[_0xcbcc[9]](),controller[_0xcbcc[13]]);router[_0xcbcc[16]](_0xcbcc[8],auth[_0xcbcc[9]](),controller[_0xcbcc[15]]);router[_0xcbcc[18]](_0xcbcc[8],auth[_0xcbcc[9]](),controller[_0xcbcc[17]]);module[_0xcbcc[19]]= router
\ No newline at end of file
index a93c061..07dcc62 100644 (file)
@@ -1 +1 @@
-var _0x5e92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x5e92[0];var Sequelize=require(_0x5e92[1]);module[_0x5e92[2]]= {name:{type:Sequelize[_0x5e92[3]]}}
\ No newline at end of file
+var _0x4eab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x4eab[0];var Sequelize=require(_0x4eab[1]);module[_0x4eab[2]]= {name:{type:Sequelize[_0x4eab[3]]}}
\ No newline at end of file
index 12ae9ae..aacd8bf 100644 (file)
@@ -1 +1 @@
-var _0xac4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xac4d[0];var jsonpatch=require(_0xac4d[1]);var rp=require(_0xac4d[2]);var moment=require(_0xac4d[3]);var BPromise=require(_0xac4d[4]);var util=require(_0xac4d[5]);var path=require(_0xac4d[6]);var sox=require(_0xac4d[7]);var ejs=require(_0xac4d[8]);var fs=require(_0xac4d[9]);var _=require(_0xac4d[10]);var squel=require(_0xac4d[11]);var crypto=require(_0xac4d[12]);var jsforce=require(_0xac4d[13]);var toCsv=require(_0xac4d[14]);var qs=require(_0xac4d[15]);var logger=require(_0xac4d[17])(_0xac4d[16]);var utils=require(_0xac4d[18]);var config=require(_0xac4d[19]);var db=require(_0xac4d[21])[_0xac4d[20]];function respondWithStatusCode(_0x27dax15,_0x27dax16,_0x27dax17){_0x27dax16= _0x27dax16|| 204;return function(_0x27dax18){if(_0x27dax18){logger[_0xac4d[24]](_0xac4d[22],_0x27dax17,_0x27dax16,_0xac4d[23]);logger[_0xac4d[26]](_0xac4d[25],_0x27dax17,_0x27dax16,_0xac4d[23]);return _0x27dax15[_0xac4d[27]](_0x27dax16)};return _0x27dax15[_0xac4d[29]](304)[_0xac4d[28]]()}}function respondWithResult(_0x27dax15,_0x27dax16,_0x27dax17){_0x27dax16= _0x27dax16|| 200;return function(_0x27dax18){if(_0x27dax18){logger[_0xac4d[24]](_0xac4d[22],_0x27dax17,_0x27dax16,_0xac4d[30]);logger[_0xac4d[26]](_0xac4d[25],_0x27dax17,_0x27dax16,_0xac4d[30],JSON[_0xac4d[31]](_0x27dax18));return _0x27dax15[_0xac4d[29]](_0x27dax16)[_0xac4d[32]](_0x27dax18)};return _0x27dax15[_0xac4d[29]](304)[_0xac4d[28]]()}}function respondWithFilteredResult(_0x27dax15,_0x27dax1b,_0x27dax17){return function(_0x27dax18){if(_0x27dax18){var _0x27dax1c=_0x27dax18[_0xac4d[33]],_0x27dax1d=_0x27dax1b[_0xac4d[34]],_0x27dax1e=_0x27dax1b[_0xac4d[34]]+ _0x27dax1b[_0xac4d[35]],_0x27dax16;if(_0x27dax1e>= _0x27dax1c){_0x27dax1e= _0x27dax1c;_0x27dax16= 200}else {_0x27dax16= 206};_0x27dax15[_0xac4d[29]](_0x27dax16);logger[_0xac4d[24]](_0xac4d[22],_0x27dax17,_0x27dax16,_0xac4d[36]);logger[_0xac4d[26]](_0xac4d[25],_0x27dax17,_0x27dax16,_0xac4d[30],JSON[_0xac4d[31]](_0x27dax18));return _0x27dax15[_0xac4d[40]](_0xac4d[37],_0x27dax1d+ _0xac4d[38]+ _0x27dax1e+ _0xac4d[39]+ _0x27dax1c)[_0xac4d[32]](_0x27dax18)};return null}}function patchUpdates(_0x27dax20){return function(_0x27dax18){try{jsonpatch[_0xac4d[41]](_0x27dax18,_0x27dax20,true)}catch(err){return BPromise[_0xac4d[42]](err)};return _0x27dax18[_0xac4d[43]]()}}function saveUpdates(_0x27dax22,_0x27dax16,_0x27dax17){return function(_0x27dax18){if(_0x27dax18){return _0x27dax18[_0xac4d[46]](_0x27dax22)[_0xac4d[45]](function(_0x27dax23){logger[_0xac4d[24]](_0xac4d[22],_0x27dax17,_0x27dax16,_0xac4d[44]);logger[_0xac4d[26]](_0xac4d[25],_0x27dax17,_0x27dax16,_0xac4d[44],JSON[_0xac4d[31]](_0x27dax18));return _0x27dax23})};return null}}function removeEntity(_0x27dax15,_0x27dax16,_0x27dax17){return function(_0x27dax18){if(_0x27dax18){return _0x27dax18[_0xac4d[48]]()[_0xac4d[45]](function(){logger[_0xac4d[24]](_0xac4d[22],_0x27dax17,_0x27dax16,_0xac4d[47]);logger[_0xac4d[26]](_0xac4d[25],_0x27dax17,_0x27dax16,_0xac4d[47],JSON[_0xac4d[31]](_0x27dax18));_0x27dax15[_0xac4d[29]](204)[_0xac4d[28]]()})}}}function handleEntityNotFound(_0x27dax15,_0x27dax16,_0x27dax17){return function(_0x27dax18){if(!_0x27dax18){logger[_0xac4d[50]](_0xac4d[22],_0x27dax17,404,_0xac4d[49]);_0x27dax15[_0xac4d[29]](404)[_0xac4d[28]]();return null};return _0x27dax18}}function handleError(_0x27dax15,_0x27dax16,_0x27dax17){_0x27dax16= _0x27dax16|| 500;return function(_0x27dax27){logger[_0xac4d[50]](_0xac4d[22],_0x27dax17,_0x27dax16,JSON[_0xac4d[31]](_0x27dax27));delete _0x27dax27[_0xac4d[51]];_0x27dax15[_0xac4d[29]](_0x27dax16)[_0xac4d[52]](_0x27dax27)}}exports[_0xac4d[53]]= function(_0x27dax28,_0x27dax15){var _0x27dax1b={raw:true,where:{id:_0x27dax28[_0xac4d[55]][_0xac4d[54]]}},_0x27dax29={};_0x27dax29[_0xac4d[56]]= _[_0xac4d[59]](db[_0xac4d[58]][_0xac4d[57]]);_0x27dax29[_0xac4d[60]]= _[_0xac4d[59]](_0x27dax28[_0xac4d[60]]);_0x27dax29[_0xac4d[61]]= _[_0xac4d[62]](_0x27dax29[_0xac4d[56]],_0x27dax29[_0xac4d[60]]);_0x27dax1b[_0xac4d[63]]= _[_0xac4d[62]](_0x27dax29[_0xac4d[56]],qs[_0xac4d[64]](_0x27dax28[_0xac4d[60]][_0xac4d[64]]));_0x27dax1b[_0xac4d[63]]= (_0x27dax1b[_0xac4d[63]][_0xac4d[65]])?_0x27dax1b[_0xac4d[63]]:_0x27dax29[_0xac4d[56]];_0x27dax1b= _[_0xac4d[67]]({},_0x27dax1b,_0x27dax28[_0xac4d[66]]);return db[_0xac4d[58]][_0xac4d[69]](_0x27dax1b)[_0xac4d[45]](handleEntityNotFound(_0x27dax15,null,_0xac4d[53]))[_0xac4d[45]](respondWithResult(_0x27dax15,null,_0xac4d[53]))[_0xac4d[68]](handleError(_0x27dax15,null,_0xac4d[53]))};exports[_0xac4d[70]]= function(_0x27dax28,_0x27dax15){return db[_0xac4d[58]][_0xac4d[70]](_0x27dax28[_0xac4d[71]],{})[_0xac4d[45]](respondWithResult(_0x27dax15,201,_0xac4d[70]))[_0xac4d[68]](handleError(_0x27dax15,null,_0xac4d[70]))};exports[_0xac4d[46]]= function(_0x27dax28,_0x27dax15){if(_0x27dax28[_0xac4d[71]][_0xac4d[54]]){delete _0x27dax28[_0xac4d[71]][_0xac4d[54]]};return db[_0xac4d[58]][_0xac4d[69]]({where:{id:_0x27dax28[_0xac4d[55]][_0xac4d[54]]}})[_0xac4d[45]](handleEntityNotFound(_0x27dax15,null,_0xac4d[46]))[_0xac4d[45]](saveUpdates(_0x27dax28[_0xac4d[71]],null,_0xac4d[46]))[_0xac4d[45]](respondWithResult(_0x27dax15,null,_0xac4d[46]))[_0xac4d[68]](handleError(_0x27dax15,null,_0xac4d[46]))};exports[_0xac4d[48]]= function(_0x27dax28,_0x27dax15){return db[_0xac4d[58]][_0xac4d[69]]({where:{id:_0x27dax28[_0xac4d[55]][_0xac4d[54]]}})[_0xac4d[45]](handleEntityNotFound(_0x27dax15,null,_0xac4d[48]))[_0xac4d[45]](removeEntity(_0x27dax15,null,_0xac4d[48]))[_0xac4d[68]](handleError(_0x27dax15,null,_0xac4d[48]))}
\ No newline at end of file
+var _0xc5b9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xc5b9[0];var jsonpatch=require(_0xc5b9[1]);var rp=require(_0xc5b9[2]);var moment=require(_0xc5b9[3]);var BPromise=require(_0xc5b9[4]);var util=require(_0xc5b9[5]);var path=require(_0xc5b9[6]);var sox=require(_0xc5b9[7]);var ejs=require(_0xc5b9[8]);var fs=require(_0xc5b9[9]);var _=require(_0xc5b9[10]);var squel=require(_0xc5b9[11]);var crypto=require(_0xc5b9[12]);var jsforce=require(_0xc5b9[13]);var toCsv=require(_0xc5b9[14]);var qs=require(_0xc5b9[15]);var logger=require(_0xc5b9[17])(_0xc5b9[16]);var utils=require(_0xc5b9[18]);var config=require(_0xc5b9[19]);var db=require(_0xc5b9[21])[_0xc5b9[20]];function respondWithStatusCode(_0x4812x15,_0x4812x16,_0x4812x17){_0x4812x16= _0x4812x16|| 204;return function(_0x4812x18){if(_0x4812x18){logger[_0xc5b9[24]](_0xc5b9[22],_0x4812x17,_0x4812x16,_0xc5b9[23]);logger[_0xc5b9[26]](_0xc5b9[25],_0x4812x17,_0x4812x16,_0xc5b9[23]);return _0x4812x15[_0xc5b9[27]](_0x4812x16)};return _0x4812x15[_0xc5b9[29]](304)[_0xc5b9[28]]()}}function respondWithResult(_0x4812x15,_0x4812x16,_0x4812x17){_0x4812x16= _0x4812x16|| 200;return function(_0x4812x18){if(_0x4812x18){logger[_0xc5b9[24]](_0xc5b9[22],_0x4812x17,_0x4812x16,_0xc5b9[30]);logger[_0xc5b9[26]](_0xc5b9[25],_0x4812x17,_0x4812x16,_0xc5b9[30],JSON[_0xc5b9[31]](_0x4812x18));return _0x4812x15[_0xc5b9[29]](_0x4812x16)[_0xc5b9[32]](_0x4812x18)};return _0x4812x15[_0xc5b9[29]](304)[_0xc5b9[28]]()}}function respondWithFilteredResult(_0x4812x15,_0x4812x1b,_0x4812x17){return function(_0x4812x18){if(_0x4812x18){var _0x4812x1c=_0x4812x18[_0xc5b9[33]],_0x4812x1d=_0x4812x1b[_0xc5b9[34]],_0x4812x1e=_0x4812x1b[_0xc5b9[34]]+ _0x4812x1b[_0xc5b9[35]],_0x4812x16;if(_0x4812x1e>= _0x4812x1c){_0x4812x1e= _0x4812x1c;_0x4812x16= 200}else {_0x4812x16= 206};_0x4812x15[_0xc5b9[29]](_0x4812x16);logger[_0xc5b9[24]](_0xc5b9[22],_0x4812x17,_0x4812x16,_0xc5b9[36]);logger[_0xc5b9[26]](_0xc5b9[25],_0x4812x17,_0x4812x16,_0xc5b9[30],JSON[_0xc5b9[31]](_0x4812x18));return _0x4812x15[_0xc5b9[40]](_0xc5b9[37],_0x4812x1d+ _0xc5b9[38]+ _0x4812x1e+ _0xc5b9[39]+ _0x4812x1c)[_0xc5b9[32]](_0x4812x18)};return null}}function patchUpdates(_0x4812x20){return function(_0x4812x18){try{jsonpatch[_0xc5b9[41]](_0x4812x18,_0x4812x20,true)}catch(err){return BPromise[_0xc5b9[42]](err)};return _0x4812x18[_0xc5b9[43]]()}}function saveUpdates(_0x4812x22,_0x4812x16,_0x4812x17){return function(_0x4812x18){if(_0x4812x18){return _0x4812x18[_0xc5b9[46]](_0x4812x22)[_0xc5b9[45]](function(_0x4812x23){logger[_0xc5b9[24]](_0xc5b9[22],_0x4812x17,_0x4812x16,_0xc5b9[44]);logger[_0xc5b9[26]](_0xc5b9[25],_0x4812x17,_0x4812x16,_0xc5b9[44],JSON[_0xc5b9[31]](_0x4812x18));return _0x4812x23})};return null}}function removeEntity(_0x4812x15,_0x4812x16,_0x4812x17){return function(_0x4812x18){if(_0x4812x18){return _0x4812x18[_0xc5b9[48]]()[_0xc5b9[45]](function(){logger[_0xc5b9[24]](_0xc5b9[22],_0x4812x17,_0x4812x16,_0xc5b9[47]);logger[_0xc5b9[26]](_0xc5b9[25],_0x4812x17,_0x4812x16,_0xc5b9[47],JSON[_0xc5b9[31]](_0x4812x18));_0x4812x15[_0xc5b9[29]](204)[_0xc5b9[28]]()})}}}function handleEntityNotFound(_0x4812x15,_0x4812x16,_0x4812x17){return function(_0x4812x18){if(!_0x4812x18){logger[_0xc5b9[50]](_0xc5b9[22],_0x4812x17,404,_0xc5b9[49]);_0x4812x15[_0xc5b9[29]](404)[_0xc5b9[28]]();return null};return _0x4812x18}}function handleError(_0x4812x15,_0x4812x16,_0x4812x17){_0x4812x16= _0x4812x16|| 500;return function(_0x4812x27){logger[_0xc5b9[50]](_0xc5b9[22],_0x4812x17,_0x4812x16,JSON[_0xc5b9[31]](_0x4812x27));delete _0x4812x27[_0xc5b9[51]];_0x4812x15[_0xc5b9[29]](_0x4812x16)[_0xc5b9[52]](_0x4812x27)}}exports[_0xc5b9[53]]= function(_0x4812x28,_0x4812x15){var _0x4812x1b={raw:true,where:{id:_0x4812x28[_0xc5b9[55]][_0xc5b9[54]]}},_0x4812x29={};_0x4812x29[_0xc5b9[56]]= _[_0xc5b9[59]](db[_0xc5b9[58]][_0xc5b9[57]]);_0x4812x29[_0xc5b9[60]]= _[_0xc5b9[59]](_0x4812x28[_0xc5b9[60]]);_0x4812x29[_0xc5b9[61]]= _[_0xc5b9[62]](_0x4812x29[_0xc5b9[56]],_0x4812x29[_0xc5b9[60]]);_0x4812x1b[_0xc5b9[63]]= _[_0xc5b9[62]](_0x4812x29[_0xc5b9[56]],qs[_0xc5b9[64]](_0x4812x28[_0xc5b9[60]][_0xc5b9[64]]));_0x4812x1b[_0xc5b9[63]]= (_0x4812x1b[_0xc5b9[63]][_0xc5b9[65]])?_0x4812x1b[_0xc5b9[63]]:_0x4812x29[_0xc5b9[56]];_0x4812x1b= _[_0xc5b9[67]]({},_0x4812x1b,_0x4812x28[_0xc5b9[66]]);return db[_0xc5b9[58]][_0xc5b9[69]](_0x4812x1b)[_0xc5b9[45]](handleEntityNotFound(_0x4812x15,null,_0xc5b9[53]))[_0xc5b9[45]](respondWithResult(_0x4812x15,null,_0xc5b9[53]))[_0xc5b9[68]](handleError(_0x4812x15,null,_0xc5b9[53]))};exports[_0xc5b9[70]]= function(_0x4812x28,_0x4812x15){return db[_0xc5b9[58]][_0xc5b9[70]](_0x4812x28[_0xc5b9[71]],{})[_0xc5b9[45]](respondWithResult(_0x4812x15,201,_0xc5b9[70]))[_0xc5b9[68]](handleError(_0x4812x15,null,_0xc5b9[70]))};exports[_0xc5b9[46]]= function(_0x4812x28,_0x4812x15){if(_0x4812x28[_0xc5b9[71]][_0xc5b9[54]]){delete _0x4812x28[_0xc5b9[71]][_0xc5b9[54]]};return db[_0xc5b9[58]][_0xc5b9[69]]({where:{id:_0x4812x28[_0xc5b9[55]][_0xc5b9[54]]}})[_0xc5b9[45]](handleEntityNotFound(_0x4812x15,null,_0xc5b9[46]))[_0xc5b9[45]](saveUpdates(_0x4812x28[_0xc5b9[71]],null,_0xc5b9[46]))[_0xc5b9[45]](respondWithResult(_0x4812x15,null,_0xc5b9[46]))[_0xc5b9[68]](handleError(_0x4812x15,null,_0xc5b9[46]))};exports[_0xc5b9[48]]= function(_0x4812x28,_0x4812x15){return db[_0xc5b9[58]][_0xc5b9[69]]({where:{id:_0x4812x28[_0xc5b9[55]][_0xc5b9[54]]}})[_0xc5b9[45]](handleEntityNotFound(_0x4812x15,null,_0xc5b9[48]))[_0xc5b9[45]](removeEntity(_0x4812x15,null,_0xc5b9[48]))[_0xc5b9[68]](handleError(_0x4812x15,null,_0xc5b9[48]))}
\ No newline at end of file
index 583a22d..6116370 100644 (file)
@@ -1 +1 @@
-var _0x9081=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x9081[0];var _=require(_0x9081[1]);var util=require(_0x9081[2]);var logger=require(_0x9081[4])(_0x9081[3]);var attributes=require(_0x9081[5]);module[_0x9081[6]]= function(_0xb71dx5,_0xb71dx6){return _0xb71dx5[_0x9081[9]](_0x9081[7],attributes,{tableName:_0x9081[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4af2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x4af2[0];var _=require(_0x4af2[1]);var util=require(_0x4af2[2]);var logger=require(_0x4af2[4])(_0x4af2[3]);var attributes=require(_0x4af2[5]);module[_0x4af2[6]]= function(_0x118ex5,_0x118ex6){return _0x118ex5[_0x4af2[9]](_0x4af2[7],attributes,{tableName:_0x4af2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 8e6fb18..71ae72d 100644 (file)
@@ -1 +1 @@
-var _0x3453=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E"];_0x3453[0];var _=require(_0x3453[1]);var util=require(_0x3453[2]);var moment=require(_0x3453[3]);var BPromise=require(_0x3453[4]);var db=require(_0x3453[6])[_0x3453[5]];var utils=require(_0x3453[7]);var logger=require(_0x3453[9])(_0x3453[8]);var jayson=require(_0x3453[10]);var client=jayson[_0x3453[12]][_0x3453[11]]({port:9002});function respondWithRpcPromise(_0x8afaxb,_0x8afaxc,_0x8afaxd){return  new BPromise(function(_0x8afaxe,_0x8afaxf){return client[_0x3453[25]](_0x8afaxb,_0x8afaxd)[_0x3453[24]](function(_0x8afax11){logger[_0x3453[17]](_0x3453[13],_0x8afaxc,_0x3453[16]);logger[_0x3453[20]](_0x3453[18],_0x8afaxc,_0x3453[16],JSON[_0x3453[19]](_0x8afax11));if(_0x8afax11[_0x3453[14]]){if(_0x8afax11[_0x3453[14]][_0x3453[21]]=== 500){logger[_0x3453[14]](_0x3453[13],_0x8afaxc,_0x8afax11[_0x3453[14]][_0x3453[22]]);return _0x8afaxf(_0x8afax11[_0x3453[14]][_0x3453[22]])};logger[_0x3453[14]](_0x3453[13],_0x8afaxc,_0x8afax11[_0x3453[14]][_0x3453[22]]);return _0x8afaxe(_0x8afax11[_0x3453[14]][_0x3453[22]])}else {logger[_0x3453[17]](_0x3453[13],_0x8afaxc,_0x3453[16]);_0x8afaxe(_0x8afax11[_0x3453[23]][_0x3453[22]])}})[_0x3453[15]](function(_0x8afax10){logger[_0x3453[14]](_0x3453[13],_0x8afaxc,_0x8afax10);_0x8afaxf(_0x8afax10)})})}exports[_0x3453[26]]= function(_0x8afaxd){var _0x8afax12=this;return  new Promise(function(_0x8afaxe,_0x8afaxf){return db[_0x3453[34]][_0x3453[33]](_0x8afaxd[_0x3453[27]],{raw:_0x8afaxd[_0x3453[28]]?(_0x8afaxd[_0x3453[28]][_0x3453[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x8afaxd[_0x3453[28]]?_0x8afaxd[_0x3453[28]][_0x3453[30]]|| null:null,attributes:_0x8afaxd[_0x3453[28]]?_0x8afaxd[_0x3453[28]][_0x3453[31]]|| null:null,limit:_0x8afaxd[_0x3453[28]]?_0x8afaxd[_0x3453[28]][_0x3453[32]]|| null:null})[_0x3453[24]](function(_0x8afax11){logger[_0x3453[17]](_0x3453[26],_0x8afaxd);logger[_0x3453[20]](_0x3453[26],_0x8afaxd,JSON[_0x3453[19]](_0x8afax11));_0x8afaxe(_0x8afax11)})[_0x3453[15]](function(_0x8afax10){logger[_0x3453[14]](_0x3453[26],_0x8afax10[_0x3453[22]],_0x8afaxd);_0x8afaxf(_0x8afax12[_0x3453[14]](500,_0x8afax10[_0x3453[22]]))})})}
\ No newline at end of file
+var _0x74ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E"];_0x74ae[0];var _=require(_0x74ae[1]);var util=require(_0x74ae[2]);var moment=require(_0x74ae[3]);var BPromise=require(_0x74ae[4]);var db=require(_0x74ae[6])[_0x74ae[5]];var utils=require(_0x74ae[7]);var logger=require(_0x74ae[9])(_0x74ae[8]);var jayson=require(_0x74ae[10]);var client=jayson[_0x74ae[12]][_0x74ae[11]]({port:9002});function respondWithRpcPromise(_0x9957xb,_0x9957xc,_0x9957xd){return  new BPromise(function(_0x9957xe,_0x9957xf){return client[_0x74ae[25]](_0x9957xb,_0x9957xd)[_0x74ae[24]](function(_0x9957x11){logger[_0x74ae[17]](_0x74ae[13],_0x9957xc,_0x74ae[16]);logger[_0x74ae[20]](_0x74ae[18],_0x9957xc,_0x74ae[16],JSON[_0x74ae[19]](_0x9957x11));if(_0x9957x11[_0x74ae[14]]){if(_0x9957x11[_0x74ae[14]][_0x74ae[21]]=== 500){logger[_0x74ae[14]](_0x74ae[13],_0x9957xc,_0x9957x11[_0x74ae[14]][_0x74ae[22]]);return _0x9957xf(_0x9957x11[_0x74ae[14]][_0x74ae[22]])};logger[_0x74ae[14]](_0x74ae[13],_0x9957xc,_0x9957x11[_0x74ae[14]][_0x74ae[22]]);return _0x9957xe(_0x9957x11[_0x74ae[14]][_0x74ae[22]])}else {logger[_0x74ae[17]](_0x74ae[13],_0x9957xc,_0x74ae[16]);_0x9957xe(_0x9957x11[_0x74ae[23]][_0x74ae[22]])}})[_0x74ae[15]](function(_0x9957x10){logger[_0x74ae[14]](_0x74ae[13],_0x9957xc,_0x9957x10);_0x9957xf(_0x9957x10)})})}exports[_0x74ae[26]]= function(_0x9957xd){var _0x9957x12=this;return  new Promise(function(_0x9957xe,_0x9957xf){return db[_0x74ae[34]][_0x74ae[33]](_0x9957xd[_0x74ae[27]],{raw:_0x9957xd[_0x74ae[28]]?(_0x9957xd[_0x74ae[28]][_0x74ae[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x9957xd[_0x74ae[28]]?_0x9957xd[_0x74ae[28]][_0x74ae[30]]|| null:null,attributes:_0x9957xd[_0x74ae[28]]?_0x9957xd[_0x74ae[28]][_0x74ae[31]]|| null:null,limit:_0x9957xd[_0x74ae[28]]?_0x9957xd[_0x74ae[28]][_0x74ae[32]]|| null:null})[_0x74ae[24]](function(_0x9957x11){logger[_0x74ae[17]](_0x74ae[26],_0x9957xd);logger[_0x74ae[20]](_0x74ae[26],_0x9957xd,JSON[_0x74ae[19]](_0x9957x11));_0x9957xe(_0x9957x11)})[_0x74ae[15]](function(_0x9957x10){logger[_0x74ae[14]](_0x74ae[26],_0x9957x10[_0x74ae[22]],_0x9957xd);_0x9957xf(_0x9957x12[_0x74ae[14]](500,_0x9957x10[_0x74ae[22]]))})})}
\ No newline at end of file
index 7bc65da..db1de25 100644 (file)
@@ -1 +1 @@
-var _0xc2aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc2aa[0];var multer=require(_0xc2aa[1]);var util=require(_0xc2aa[2]);var path=require(_0xc2aa[3]);var express=require(_0xc2aa[4]);var router=express.Router();var auth=require(_0xc2aa[5]);var config=require(_0xc2aa[6]);var controller=require(_0xc2aa[7]);router[_0xc2aa[11]](_0xc2aa[8],auth[_0xc2aa[9]](),controller[_0xc2aa[10]]);router[_0xc2aa[11]](_0xc2aa[12],auth[_0xc2aa[9]](),controller[_0xc2aa[13]]);router[_0xc2aa[11]](_0xc2aa[14],auth[_0xc2aa[9]](),controller[_0xc2aa[15]]);router[_0xc2aa[11]](_0xc2aa[16],auth[_0xc2aa[9]](),controller[_0xc2aa[17]]);router[_0xc2aa[19]](_0xc2aa[8],auth[_0xc2aa[9]](),controller[_0xc2aa[18]]);router[_0xc2aa[19]](_0xc2aa[16],auth[_0xc2aa[9]](),controller[_0xc2aa[20]]);router[_0xc2aa[22]](_0xc2aa[14],auth[_0xc2aa[9]](),controller[_0xc2aa[21]]);router[_0xc2aa[24]](_0xc2aa[14],auth[_0xc2aa[9]](),controller[_0xc2aa[23]]);module[_0xc2aa[25]]= router
\ No newline at end of file
+var _0x79d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x79d2[0];var multer=require(_0x79d2[1]);var util=require(_0x79d2[2]);var path=require(_0x79d2[3]);var express=require(_0x79d2[4]);var router=express.Router();var auth=require(_0x79d2[5]);var config=require(_0x79d2[6]);var controller=require(_0x79d2[7]);router[_0x79d2[11]](_0x79d2[8],auth[_0x79d2[9]](),controller[_0x79d2[10]]);router[_0x79d2[11]](_0x79d2[12],auth[_0x79d2[9]](),controller[_0x79d2[13]]);router[_0x79d2[11]](_0x79d2[14],auth[_0x79d2[9]](),controller[_0x79d2[15]]);router[_0x79d2[11]](_0x79d2[16],auth[_0x79d2[9]](),controller[_0x79d2[17]]);router[_0x79d2[19]](_0x79d2[8],auth[_0x79d2[9]](),controller[_0x79d2[18]]);router[_0x79d2[19]](_0x79d2[16],auth[_0x79d2[9]](),controller[_0x79d2[20]]);router[_0x79d2[22]](_0x79d2[14],auth[_0x79d2[9]](),controller[_0x79d2[21]]);router[_0x79d2[24]](_0x79d2[14],auth[_0x79d2[9]](),controller[_0x79d2[23]]);module[_0x79d2[25]]= router
\ No newline at end of file
index 4676b70..4faa45f 100644 (file)
@@ -1 +1 @@
-var _0x56fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x56fc[0];var Sequelize=require(_0x56fc[1]);var moment=require(_0x56fc[2]);module[_0x56fc[3]]= {contact:{type:Sequelize[_0x56fc[4]]},openchannelIn:{type:Sequelize[_0x56fc[5]],defaultValue:0},openchannelOut:{type:Sequelize[_0x56fc[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0x56fc[6],_0x56fc[7],_0x56fc[8],_0x56fc[9]),defaultValue:_0x56fc[6],set:function(_0xce8fx3){this[_0x56fc[11]](_0x56fc[10],_0xce8fx3);switch(_0xce8fx3){case _0x56fc[6]:this[_0x56fc[11]](_0x56fc[12],moment()[_0x56fc[14]](_0x56fc[13]));break;case _0x56fc[9]:this[_0x56fc[11]](_0x56fc[15],moment()[_0x56fc[14]](_0x56fc[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x56fc[16],_0x56fc[17],_0x56fc[18],_0x56fc[19],_0x56fc[20])},lastEventAt:{type:Sequelize[_0x56fc[21]]},tags:{type:Sequelize[_0x56fc[22]],get:function(){var _0xce8fx4;if(this[_0x56fc[24]](_0x56fc[23])){_0xce8fx4= this[_0x56fc[24]](_0x56fc[23])[_0x56fc[26]](_0x56fc[25]);_0xce8fx4[_0x56fc[27]]()}else {_0xce8fx4= []};return _0xce8fx4},set:function(_0xce8fx5){this[_0x56fc[11]](_0x56fc[23],_0xce8fx5&& _0xce8fx5[_0x56fc[28]]?_0xce8fx5[_0x56fc[29]](_0x56fc[25])+ _0x56fc[25]:null)}},disposition:{type:Sequelize[_0x56fc[4]]},ParentId:{type:Sequelize[_0x56fc[5]]},waiting:{type:Sequelize[_0x56fc[30]],defaultValue:false},openReason:{type:Sequelize[_0x56fc[4]]},arrivedAt:{type:Sequelize[_0x56fc[21]]},closedAt:{type:Sequelize[_0x56fc[21]]}}
\ No newline at end of file
+var _0xc4fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xc4fb[0];var Sequelize=require(_0xc4fb[1]);var moment=require(_0xc4fb[2]);module[_0xc4fb[3]]= {contact:{type:Sequelize[_0xc4fb[4]]},openchannelIn:{type:Sequelize[_0xc4fb[5]],defaultValue:0},openchannelOut:{type:Sequelize[_0xc4fb[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0xc4fb[6],_0xc4fb[7],_0xc4fb[8],_0xc4fb[9]),defaultValue:_0xc4fb[6],set:function(_0x9d70x3){this[_0xc4fb[11]](_0xc4fb[10],_0x9d70x3);switch(_0x9d70x3){case _0xc4fb[6]:this[_0xc4fb[11]](_0xc4fb[12],moment()[_0xc4fb[14]](_0xc4fb[13]));break;case _0xc4fb[9]:this[_0xc4fb[11]](_0xc4fb[15],moment()[_0xc4fb[14]](_0xc4fb[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0xc4fb[16],_0xc4fb[17],_0xc4fb[18],_0xc4fb[19],_0xc4fb[20])},lastEventAt:{type:Sequelize[_0xc4fb[21]]},tags:{type:Sequelize[_0xc4fb[22]],get:function(){var _0x9d70x4;if(this[_0xc4fb[24]](_0xc4fb[23])){_0x9d70x4= this[_0xc4fb[24]](_0xc4fb[23])[_0xc4fb[26]](_0xc4fb[25]);_0x9d70x4[_0xc4fb[27]]()}else {_0x9d70x4= []};return _0x9d70x4},set:function(_0x9d70x5){this[_0xc4fb[11]](_0xc4fb[23],_0x9d70x5&& _0x9d70x5[_0xc4fb[28]]?_0x9d70x5[_0xc4fb[29]](_0xc4fb[25])+ _0xc4fb[25]:null)}},disposition:{type:Sequelize[_0xc4fb[4]]},ParentId:{type:Sequelize[_0xc4fb[5]]},waiting:{type:Sequelize[_0xc4fb[30]],defaultValue:false},openReason:{type:Sequelize[_0xc4fb[4]]},arrivedAt:{type:Sequelize[_0xc4fb[21]]},closedAt:{type:Sequelize[_0xc4fb[21]]}}
\ No newline at end of file
index 7c17c4e..4aa0e31 100644 (file)
@@ -1 +1 @@
-var _0x1abd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x1abd[0];var jsonpatch=require(_0x1abd[1]);var rp=require(_0x1abd[2]);var moment=require(_0x1abd[3]);var BPromise=require(_0x1abd[4]);var util=require(_0x1abd[5]);var path=require(_0x1abd[6]);var sox=require(_0x1abd[7]);var ejs=require(_0x1abd[8]);var fs=require(_0x1abd[9]);var _=require(_0x1abd[10]);var squel=require(_0x1abd[11]);var crypto=require(_0x1abd[12]);var jsforce=require(_0x1abd[13]);var toCsv=require(_0x1abd[14]);var qs=require(_0x1abd[15]);var logger=require(_0x1abd[17])(_0x1abd[16]);var utils=require(_0x1abd[18]);var config=require(_0x1abd[19]);var db=require(_0x1abd[21])[_0x1abd[20]];function respondWithStatusCode(_0xaa7ax15,_0xaa7ax16,_0xaa7ax17){_0xaa7ax16= _0xaa7ax16|| 204;return function(_0xaa7ax18){if(_0xaa7ax18){logger[_0x1abd[24]](_0x1abd[22],_0xaa7ax17,_0xaa7ax16,_0x1abd[23]);logger[_0x1abd[26]](_0x1abd[25],_0xaa7ax17,_0xaa7ax16,_0x1abd[23]);return _0xaa7ax15[_0x1abd[27]](_0xaa7ax16)};return _0xaa7ax15[_0x1abd[29]](304)[_0x1abd[28]]()}}function respondWithResult(_0xaa7ax15,_0xaa7ax16,_0xaa7ax17){_0xaa7ax16= _0xaa7ax16|| 200;return function(_0xaa7ax18){if(_0xaa7ax18){logger[_0x1abd[24]](_0x1abd[22],_0xaa7ax17,_0xaa7ax16,_0x1abd[30]);logger[_0x1abd[26]](_0x1abd[25],_0xaa7ax17,_0xaa7ax16,_0x1abd[30],JSON[_0x1abd[31]](_0xaa7ax18));return _0xaa7ax15[_0x1abd[29]](_0xaa7ax16)[_0x1abd[32]](_0xaa7ax18)};return _0xaa7ax15[_0x1abd[29]](304)[_0x1abd[28]]()}}function respondWithFilteredResult(_0xaa7ax15,_0xaa7ax1b,_0xaa7ax17){return function(_0xaa7ax18){if(_0xaa7ax18){var _0xaa7ax1c=_0xaa7ax18[_0x1abd[33]],_0xaa7ax1d=_0xaa7ax1b[_0x1abd[34]],_0xaa7ax1e=_0xaa7ax1b[_0x1abd[34]]+ _0xaa7ax1b[_0x1abd[35]],_0xaa7ax16;if(_0xaa7ax1e>= _0xaa7ax1c){_0xaa7ax1e= _0xaa7ax1c;_0xaa7ax16= 200}else {_0xaa7ax16= 206};_0xaa7ax15[_0x1abd[29]](_0xaa7ax16);logger[_0x1abd[24]](_0x1abd[22],_0xaa7ax17,_0xaa7ax16,_0x1abd[36]);logger[_0x1abd[26]](_0x1abd[25],_0xaa7ax17,_0xaa7ax16,_0x1abd[30],JSON[_0x1abd[31]](_0xaa7ax18));return _0xaa7ax15[_0x1abd[40]](_0x1abd[37],_0xaa7ax1d+ _0x1abd[38]+ _0xaa7ax1e+ _0x1abd[39]+ _0xaa7ax1c)[_0x1abd[32]](_0xaa7ax18)};return null}}function patchUpdates(_0xaa7ax20){return function(_0xaa7ax18){try{jsonpatch[_0x1abd[41]](_0xaa7ax18,_0xaa7ax20,true)}catch(err){return BPromise[_0x1abd[42]](err)};return _0xaa7ax18[_0x1abd[43]]()}}function saveUpdates(_0xaa7ax22,_0xaa7ax16,_0xaa7ax17){return function(_0xaa7ax18){if(_0xaa7ax18){return _0xaa7ax18[_0x1abd[46]](_0xaa7ax22)[_0x1abd[45]](function(_0xaa7ax23){logger[_0x1abd[24]](_0x1abd[22],_0xaa7ax17,_0xaa7ax16,_0x1abd[44]);logger[_0x1abd[26]](_0x1abd[25],_0xaa7ax17,_0xaa7ax16,_0x1abd[44],JSON[_0x1abd[31]](_0xaa7ax18));return _0xaa7ax23})};return null}}function removeEntity(_0xaa7ax15,_0xaa7ax16,_0xaa7ax17){return function(_0xaa7ax18){if(_0xaa7ax18){return _0xaa7ax18[_0x1abd[48]]()[_0x1abd[45]](function(){logger[_0x1abd[24]](_0x1abd[22],_0xaa7ax17,_0xaa7ax16,_0x1abd[47]);logger[_0x1abd[26]](_0x1abd[25],_0xaa7ax17,_0xaa7ax16,_0x1abd[47],JSON[_0x1abd[31]](_0xaa7ax18));_0xaa7ax15[_0x1abd[29]](204)[_0x1abd[28]]()})}}}function handleEntityNotFound(_0xaa7ax15,_0xaa7ax16,_0xaa7ax17){return function(_0xaa7ax18){if(!_0xaa7ax18){logger[_0x1abd[50]](_0x1abd[22],_0xaa7ax17,404,_0x1abd[49]);_0xaa7ax15[_0x1abd[29]](404)[_0x1abd[28]]();return null};return _0xaa7ax18}}function handleError(_0xaa7ax15,_0xaa7ax16,_0xaa7ax17){_0xaa7ax16= _0xaa7ax16|| 500;return function(_0xaa7ax27){logger[_0x1abd[50]](_0x1abd[22],_0xaa7ax17,_0xaa7ax16,JSON[_0x1abd[31]](_0xaa7ax27));delete _0xaa7ax27[_0x1abd[51]];_0xaa7ax15[_0x1abd[29]](_0xaa7ax16)[_0x1abd[52]](_0xaa7ax27)}}exports[_0x1abd[53]]= function(_0xaa7ax28,_0xaa7ax15){var _0xaa7ax1b={},_0xaa7ax29={};_0xaa7ax29[_0x1abd[54]]= _[_0x1abd[57]](db[_0x1abd[56]][_0x1abd[55]]);_0xaa7ax29[_0x1abd[58]]= _[_0x1abd[57]](_0xaa7ax28[_0x1abd[58]]);_0xaa7ax29[_0x1abd[59]]= _[_0x1abd[60]](_0xaa7ax29[_0x1abd[54]],_0xaa7ax29[_0x1abd[58]]);_0xaa7ax1b[_0x1abd[61]]= _[_0x1abd[60]](_0xaa7ax29[_0x1abd[54]],qs[_0x1abd[62]](_0xaa7ax28[_0x1abd[58]][_0x1abd[62]]));_0xaa7ax1b[_0x1abd[61]]= (_0xaa7ax1b[_0x1abd[61]][_0x1abd[63]])?_0xaa7ax1b[_0x1abd[61]]:_0xaa7ax29[_0x1abd[54]];if(!_0xaa7ax28[_0x1abd[58]][_0x1abd[65]](_0x1abd[64])){_0xaa7ax1b[_0x1abd[35]]= qs[_0x1abd[35]](_0xaa7ax28[_0x1abd[58]][_0x1abd[35]]);_0xaa7ax1b[_0x1abd[34]]= qs[_0x1abd[34]](_0xaa7ax28[_0x1abd[58]][_0x1abd[34]])};_0xaa7ax1b[_0x1abd[66]]= qs[_0x1abd[67]](_0xaa7ax28[_0x1abd[58]][_0x1abd[67]]);_0xaa7ax1b[_0x1abd[68]]= qs[_0x1abd[59]](_[_0x1abd[69]](_0xaa7ax28[_0x1abd[58]],_0xaa7ax29[_0x1abd[59]]));if(_0xaa7ax28[_0x1abd[58]][_0x1abd[70]]){_0xaa7ax1b[_0x1abd[68]]= _[_0x1abd[73]](_0xaa7ax1b[_0x1abd[68]],{$or:_[_0x1abd[72]](_0xaa7ax1b[_0x1abd[61]],function(_0xaa7ax2a){var _0xaa7ax2b={};_0xaa7ax2b[_0xaa7ax2a]= {$like:_0x1abd[71]+ _0xaa7ax28[_0x1abd[58]][_0x1abd[70]]+ _0x1abd[71]};return _0xaa7ax2b})})};_0xaa7ax1b= _[_0x1abd[73]]({},_0xaa7ax1b,_0xaa7ax28[_0x1abd[74]]);return db[_0x1abd[56]][_0x1abd[76]](_0xaa7ax1b)[_0x1abd[45]](respondWithFilteredResult(_0xaa7ax15,_0xaa7ax1b,_0x1abd[53]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[53]))};exports[_0x1abd[77]]= function(_0xaa7ax28,_0xaa7ax15){var _0xaa7ax1b={raw:false,where:{id:_0xaa7ax28[_0x1abd[79]][_0x1abd[78]]}},_0xaa7ax29={};_0xaa7ax29[_0x1abd[54]]= _[_0x1abd[57]](db[_0x1abd[56]][_0x1abd[55]]);_0xaa7ax29[_0x1abd[58]]= _[_0x1abd[57]](_0xaa7ax28[_0x1abd[58]]);_0xaa7ax29[_0x1abd[59]]= _[_0x1abd[60]](_0xaa7ax29[_0x1abd[54]],_0xaa7ax29[_0x1abd[58]]);_0xaa7ax1b[_0x1abd[61]]= _[_0x1abd[60]](_0xaa7ax29[_0x1abd[54]],qs[_0x1abd[62]](_0xaa7ax28[_0x1abd[58]][_0x1abd[62]]));_0xaa7ax1b[_0x1abd[61]]= (_0xaa7ax1b[_0x1abd[61]][_0x1abd[63]])?_0xaa7ax1b[_0x1abd[61]]:_0xaa7ax29[_0x1abd[54]];_0xaa7ax1b= _[_0x1abd[73]]({},_0xaa7ax1b,_0xaa7ax28[_0x1abd[74]]);return db[_0x1abd[56]][_0x1abd[80]](_0xaa7ax1b)[_0x1abd[45]](handleEntityNotFound(_0xaa7ax15,null,_0x1abd[77]))[_0x1abd[45]](respondWithResult(_0xaa7ax15,null,_0x1abd[77]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[77]))};exports[_0x1abd[81]]= function(_0xaa7ax28,_0xaa7ax15){return db[_0x1abd[56]][_0x1abd[81]](_0xaa7ax28[_0x1abd[82]],{})[_0x1abd[45]](respondWithResult(_0xaa7ax15,201,_0x1abd[81]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[81]))};exports[_0x1abd[46]]= function(_0xaa7ax28,_0xaa7ax15){if(_0xaa7ax28[_0x1abd[82]][_0x1abd[78]]){delete _0xaa7ax28[_0x1abd[82]][_0x1abd[78]]};return db[_0x1abd[56]][_0x1abd[80]]({where:{id:_0xaa7ax28[_0x1abd[79]][_0x1abd[78]]}})[_0x1abd[45]](handleEntityNotFound(_0xaa7ax15,null,_0x1abd[46]))[_0x1abd[45]](saveUpdates(_0xaa7ax28[_0x1abd[82]],null,_0x1abd[46]))[_0x1abd[45]](respondWithResult(_0xaa7ax15,null,_0x1abd[46]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[46]))};exports[_0x1abd[48]]= function(_0xaa7ax28,_0xaa7ax15){return db[_0x1abd[56]][_0x1abd[80]]({where:{id:_0xaa7ax28[_0x1abd[79]][_0x1abd[78]]}})[_0x1abd[45]](handleEntityNotFound(_0xaa7ax15,null,_0x1abd[48]))[_0x1abd[45]](removeEntity(_0xaa7ax15,null,_0x1abd[48]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[48]))};exports[_0x1abd[83]]= function(_0xaa7ax28,_0xaa7ax15){return db[_0x1abd[56]][_0x1abd[83]]()[_0x1abd[45]](respondWithResult(_0xaa7ax15,null,_0x1abd[83]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[83]))};exports[_0x1abd[84]]= function(_0xaa7ax28,_0xaa7ax15,_0xaa7ax2c){return db[_0x1abd[87]][_0x1abd[80]]({where:{id:_0xaa7ax28[_0x1abd[79]][_0x1abd[78]]}})[_0x1abd[45]](handleEntityNotFound(_0xaa7ax15,null,_0x1abd[84]))[_0x1abd[45]](function(_0xaa7ax18){if(_0xaa7ax18){return _0xaa7ax18[_0x1abd[84]](_0xaa7ax28[_0x1abd[82]][_0x1abd[85]],_[_0x1abd[86]](_0xaa7ax28[_0x1abd[82]],[_0x1abd[85],_0x1abd[78]])|| {})};return null})[_0x1abd[45]](respondWithResult(_0xaa7ax15,null,_0x1abd[84]))[_0x1abd[75]](handleError(_0xaa7ax15,null,_0x1abd[84]))};exports[_0x1abd[88]]= function(_0xaa7ax28,_0xaa7ax18,_0xaa7ax2c){var _0xaa7ax1b={};var _0xaa7ax29={};var _0xaa7ax2d;var _0xaa7ax1c;return db[_0x1abd[56]][_0x1abd[89]]({where:{id:_0xaa7ax28[_0x1abd[79]][_0x1abd[78]]}})[_0x1abd[45]](handleEntityNotFound(_0xaa7ax18,null,_0x1abd[88]))[_0x1abd[45]](function(_0xaa7ax18){if(_0xaa7ax18){_0xaa7ax2d= _0xaa7ax18;_0xaa7ax29[_0x1abd[54]]= _[_0x1abd[57]](db[_0x1abd[87]][_0x1abd[55]]);_0xaa7ax29[_0x1abd[58]]= _[_0x1abd[57]](_0xaa7ax28[_0x1abd[58]]);_0xaa7ax29[_0x1abd[59]]= _[_0x1abd[60]](_0xaa7ax29[_0x1abd[54]],_0xaa7ax29[_0x1abd[58]]);_0xaa7ax1b[_0x1abd[61]]= _[_0x1abd[60]](_0xaa7ax29[_0x1abd[54]],qs[_0x1abd[62]](_0xaa7ax28[_0x1abd[58]][_0x1abd[62]]));_0xaa7ax1b[_0x1abd[61]]= (_0xaa7ax1b[_0x1abd[61]][_0x1abd[63]])?_0xaa7ax1b[_0x1abd[61]]:_0xaa7ax29[_0x1abd[54]];_0xaa7ax1b[_0x1abd[66]]= qs[_0x1abd[67]](_0xaa7ax28[_0x1abd[58]][_0x1abd[67]]);_0xaa7ax1b[_0x1abd[68]]= qs[_0x1abd[59]](_[_0x1abd[69]](_0xaa7ax28[_0x1abd[58]],_0xaa7ax29[_0x1abd[59]]));if(_0xaa7ax28[_0x1abd[58]][_0x1abd[70]]){_0xaa7ax1b[_0x1abd[68]]= _[_0x1abd[73]](_0xaa7ax1b[_0x1abd[68]],{$or:_[_0x1abd[72]](_0xaa7ax1b[_0x1abd[61]],function(_0xaa7ax2a){var _0xaa7ax2b={};_0xaa7ax2b[_0xaa7ax2a]= {$like:_0x1abd[71]+ _0xaa7ax28[_0x1abd[58]][_0x1abd[70]]+ _0x1abd[71]};return _0xaa7ax2b})})};_0xaa7ax1b= _[_0x1abd[73]]({},_0xaa7ax1b,_0xaa7ax28[_0x1abd[74]]);return _0xaa7ax2d[_0x1abd[88]](_0xaa7ax1b)}})[_0x1abd[45]](function(_0xaa7ax2f){if(_0xaa7ax2f){_0xaa7ax1c= _0xaa7ax2f[_0x1abd[63]];if(!_0xaa7ax28[_0x1abd[58]][_0x1abd[65]](_0x1abd[64])){_0xaa7ax1b[_0x1abd[35]]= qs[_0x1abd[35]](_0xaa7ax28[_0x1abd[58]][_0x1abd[35]]);_0xaa7ax1b[_0x1abd[34]]= qs[_0x1abd[34]](_0xaa7ax28[_0x1abd[58]][_0x1abd[34]])};return _0xaa7ax2d[_0x1abd[88]](_0xaa7ax1b)}})[_0x1abd[45]](function(_0xaa7ax2e){return _0xaa7ax2e?{count:_0xaa7ax1c,rows:_0xaa7ax2e}:null})[_0x1abd[45]](respondWithResult(_0xaa7ax18,null,_0x1abd[88]))[_0x1abd[75]](handleError(_0xaa7ax18,null,_0x1abd[88]))}
\ No newline at end of file
+var _0x5100=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x5100[0];var jsonpatch=require(_0x5100[1]);var rp=require(_0x5100[2]);var moment=require(_0x5100[3]);var BPromise=require(_0x5100[4]);var util=require(_0x5100[5]);var path=require(_0x5100[6]);var sox=require(_0x5100[7]);var ejs=require(_0x5100[8]);var fs=require(_0x5100[9]);var _=require(_0x5100[10]);var squel=require(_0x5100[11]);var crypto=require(_0x5100[12]);var jsforce=require(_0x5100[13]);var toCsv=require(_0x5100[14]);var qs=require(_0x5100[15]);var logger=require(_0x5100[17])(_0x5100[16]);var utils=require(_0x5100[18]);var config=require(_0x5100[19]);var db=require(_0x5100[21])[_0x5100[20]];function respondWithStatusCode(_0x5d22x15,_0x5d22x16,_0x5d22x17){_0x5d22x16= _0x5d22x16|| 204;return function(_0x5d22x18){if(_0x5d22x18){logger[_0x5100[24]](_0x5100[22],_0x5d22x17,_0x5d22x16,_0x5100[23]);logger[_0x5100[26]](_0x5100[25],_0x5d22x17,_0x5d22x16,_0x5100[23]);return _0x5d22x15[_0x5100[27]](_0x5d22x16)};return _0x5d22x15[_0x5100[29]](304)[_0x5100[28]]()}}function respondWithResult(_0x5d22x15,_0x5d22x16,_0x5d22x17){_0x5d22x16= _0x5d22x16|| 200;return function(_0x5d22x18){if(_0x5d22x18){logger[_0x5100[24]](_0x5100[22],_0x5d22x17,_0x5d22x16,_0x5100[30]);logger[_0x5100[26]](_0x5100[25],_0x5d22x17,_0x5d22x16,_0x5100[30],JSON[_0x5100[31]](_0x5d22x18));return _0x5d22x15[_0x5100[29]](_0x5d22x16)[_0x5100[32]](_0x5d22x18)};return _0x5d22x15[_0x5100[29]](304)[_0x5100[28]]()}}function respondWithFilteredResult(_0x5d22x15,_0x5d22x1b,_0x5d22x17){return function(_0x5d22x18){if(_0x5d22x18){var _0x5d22x1c=_0x5d22x18[_0x5100[33]],_0x5d22x1d=_0x5d22x1b[_0x5100[34]],_0x5d22x1e=_0x5d22x1b[_0x5100[34]]+ _0x5d22x1b[_0x5100[35]],_0x5d22x16;if(_0x5d22x1e>= _0x5d22x1c){_0x5d22x1e= _0x5d22x1c;_0x5d22x16= 200}else {_0x5d22x16= 206};_0x5d22x15[_0x5100[29]](_0x5d22x16);logger[_0x5100[24]](_0x5100[22],_0x5d22x17,_0x5d22x16,_0x5100[36]);logger[_0x5100[26]](_0x5100[25],_0x5d22x17,_0x5d22x16,_0x5100[30],JSON[_0x5100[31]](_0x5d22x18));return _0x5d22x15[_0x5100[40]](_0x5100[37],_0x5d22x1d+ _0x5100[38]+ _0x5d22x1e+ _0x5100[39]+ _0x5d22x1c)[_0x5100[32]](_0x5d22x18)};return null}}function patchUpdates(_0x5d22x20){return function(_0x5d22x18){try{jsonpatch[_0x5100[41]](_0x5d22x18,_0x5d22x20,true)}catch(err){return BPromise[_0x5100[42]](err)};return _0x5d22x18[_0x5100[43]]()}}function saveUpdates(_0x5d22x22,_0x5d22x16,_0x5d22x17){return function(_0x5d22x18){if(_0x5d22x18){return _0x5d22x18[_0x5100[46]](_0x5d22x22)[_0x5100[45]](function(_0x5d22x23){logger[_0x5100[24]](_0x5100[22],_0x5d22x17,_0x5d22x16,_0x5100[44]);logger[_0x5100[26]](_0x5100[25],_0x5d22x17,_0x5d22x16,_0x5100[44],JSON[_0x5100[31]](_0x5d22x18));return _0x5d22x23})};return null}}function removeEntity(_0x5d22x15,_0x5d22x16,_0x5d22x17){return function(_0x5d22x18){if(_0x5d22x18){return _0x5d22x18[_0x5100[48]]()[_0x5100[45]](function(){logger[_0x5100[24]](_0x5100[22],_0x5d22x17,_0x5d22x16,_0x5100[47]);logger[_0x5100[26]](_0x5100[25],_0x5d22x17,_0x5d22x16,_0x5100[47],JSON[_0x5100[31]](_0x5d22x18));_0x5d22x15[_0x5100[29]](204)[_0x5100[28]]()})}}}function handleEntityNotFound(_0x5d22x15,_0x5d22x16,_0x5d22x17){return function(_0x5d22x18){if(!_0x5d22x18){logger[_0x5100[50]](_0x5100[22],_0x5d22x17,404,_0x5100[49]);_0x5d22x15[_0x5100[29]](404)[_0x5100[28]]();return null};return _0x5d22x18}}function handleError(_0x5d22x15,_0x5d22x16,_0x5d22x17){_0x5d22x16= _0x5d22x16|| 500;return function(_0x5d22x27){logger[_0x5100[50]](_0x5100[22],_0x5d22x17,_0x5d22x16,JSON[_0x5100[31]](_0x5d22x27));delete _0x5d22x27[_0x5100[51]];_0x5d22x15[_0x5100[29]](_0x5d22x16)[_0x5100[52]](_0x5d22x27)}}exports[_0x5100[53]]= function(_0x5d22x28,_0x5d22x15){var _0x5d22x1b={},_0x5d22x29={};_0x5d22x29[_0x5100[54]]= _[_0x5100[57]](db[_0x5100[56]][_0x5100[55]]);_0x5d22x29[_0x5100[58]]= _[_0x5100[57]](_0x5d22x28[_0x5100[58]]);_0x5d22x29[_0x5100[59]]= _[_0x5100[60]](_0x5d22x29[_0x5100[54]],_0x5d22x29[_0x5100[58]]);_0x5d22x1b[_0x5100[61]]= _[_0x5100[60]](_0x5d22x29[_0x5100[54]],qs[_0x5100[62]](_0x5d22x28[_0x5100[58]][_0x5100[62]]));_0x5d22x1b[_0x5100[61]]= (_0x5d22x1b[_0x5100[61]][_0x5100[63]])?_0x5d22x1b[_0x5100[61]]:_0x5d22x29[_0x5100[54]];if(!_0x5d22x28[_0x5100[58]][_0x5100[65]](_0x5100[64])){_0x5d22x1b[_0x5100[35]]= qs[_0x5100[35]](_0x5d22x28[_0x5100[58]][_0x5100[35]]);_0x5d22x1b[_0x5100[34]]= qs[_0x5100[34]](_0x5d22x28[_0x5100[58]][_0x5100[34]])};_0x5d22x1b[_0x5100[66]]= qs[_0x5100[67]](_0x5d22x28[_0x5100[58]][_0x5100[67]]);_0x5d22x1b[_0x5100[68]]= qs[_0x5100[59]](_[_0x5100[69]](_0x5d22x28[_0x5100[58]],_0x5d22x29[_0x5100[59]]));if(_0x5d22x28[_0x5100[58]][_0x5100[70]]){_0x5d22x1b[_0x5100[68]]= _[_0x5100[73]](_0x5d22x1b[_0x5100[68]],{$or:_[_0x5100[72]](_0x5d22x1b[_0x5100[61]],function(_0x5d22x2a){var _0x5d22x2b={};_0x5d22x2b[_0x5d22x2a]= {$like:_0x5100[71]+ _0x5d22x28[_0x5100[58]][_0x5100[70]]+ _0x5100[71]};return _0x5d22x2b})})};_0x5d22x1b= _[_0x5100[73]]({},_0x5d22x1b,_0x5d22x28[_0x5100[74]]);return db[_0x5100[56]][_0x5100[76]](_0x5d22x1b)[_0x5100[45]](respondWithFilteredResult(_0x5d22x15,_0x5d22x1b,_0x5100[53]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[53]))};exports[_0x5100[77]]= function(_0x5d22x28,_0x5d22x15){var _0x5d22x1b={raw:false,where:{id:_0x5d22x28[_0x5100[79]][_0x5100[78]]}},_0x5d22x29={};_0x5d22x29[_0x5100[54]]= _[_0x5100[57]](db[_0x5100[56]][_0x5100[55]]);_0x5d22x29[_0x5100[58]]= _[_0x5100[57]](_0x5d22x28[_0x5100[58]]);_0x5d22x29[_0x5100[59]]= _[_0x5100[60]](_0x5d22x29[_0x5100[54]],_0x5d22x29[_0x5100[58]]);_0x5d22x1b[_0x5100[61]]= _[_0x5100[60]](_0x5d22x29[_0x5100[54]],qs[_0x5100[62]](_0x5d22x28[_0x5100[58]][_0x5100[62]]));_0x5d22x1b[_0x5100[61]]= (_0x5d22x1b[_0x5100[61]][_0x5100[63]])?_0x5d22x1b[_0x5100[61]]:_0x5d22x29[_0x5100[54]];_0x5d22x1b= _[_0x5100[73]]({},_0x5d22x1b,_0x5d22x28[_0x5100[74]]);return db[_0x5100[56]][_0x5100[80]](_0x5d22x1b)[_0x5100[45]](handleEntityNotFound(_0x5d22x15,null,_0x5100[77]))[_0x5100[45]](respondWithResult(_0x5d22x15,null,_0x5100[77]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[77]))};exports[_0x5100[81]]= function(_0x5d22x28,_0x5d22x15){return db[_0x5100[56]][_0x5100[81]](_0x5d22x28[_0x5100[82]],{})[_0x5100[45]](respondWithResult(_0x5d22x15,201,_0x5100[81]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[81]))};exports[_0x5100[46]]= function(_0x5d22x28,_0x5d22x15){if(_0x5d22x28[_0x5100[82]][_0x5100[78]]){delete _0x5d22x28[_0x5100[82]][_0x5100[78]]};return db[_0x5100[56]][_0x5100[80]]({where:{id:_0x5d22x28[_0x5100[79]][_0x5100[78]]}})[_0x5100[45]](handleEntityNotFound(_0x5d22x15,null,_0x5100[46]))[_0x5100[45]](saveUpdates(_0x5d22x28[_0x5100[82]],null,_0x5100[46]))[_0x5100[45]](respondWithResult(_0x5d22x15,null,_0x5100[46]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[46]))};exports[_0x5100[48]]= function(_0x5d22x28,_0x5d22x15){return db[_0x5100[56]][_0x5100[80]]({where:{id:_0x5d22x28[_0x5100[79]][_0x5100[78]]}})[_0x5100[45]](handleEntityNotFound(_0x5d22x15,null,_0x5100[48]))[_0x5100[45]](removeEntity(_0x5d22x15,null,_0x5100[48]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[48]))};exports[_0x5100[83]]= function(_0x5d22x28,_0x5d22x15){return db[_0x5100[56]][_0x5100[83]]()[_0x5100[45]](respondWithResult(_0x5d22x15,null,_0x5100[83]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[83]))};exports[_0x5100[84]]= function(_0x5d22x28,_0x5d22x15,_0x5d22x2c){return db[_0x5100[87]][_0x5100[80]]({where:{id:_0x5d22x28[_0x5100[79]][_0x5100[78]]}})[_0x5100[45]](handleEntityNotFound(_0x5d22x15,null,_0x5100[84]))[_0x5100[45]](function(_0x5d22x18){if(_0x5d22x18){return _0x5d22x18[_0x5100[84]](_0x5d22x28[_0x5100[82]][_0x5100[85]],_[_0x5100[86]](_0x5d22x28[_0x5100[82]],[_0x5100[85],_0x5100[78]])|| {})};return null})[_0x5100[45]](respondWithResult(_0x5d22x15,null,_0x5100[84]))[_0x5100[75]](handleError(_0x5d22x15,null,_0x5100[84]))};exports[_0x5100[88]]= function(_0x5d22x28,_0x5d22x18,_0x5d22x2c){var _0x5d22x1b={};var _0x5d22x29={};var _0x5d22x2d;var _0x5d22x1c;return db[_0x5100[56]][_0x5100[89]]({where:{id:_0x5d22x28[_0x5100[79]][_0x5100[78]]}})[_0x5100[45]](handleEntityNotFound(_0x5d22x18,null,_0x5100[88]))[_0x5100[45]](function(_0x5d22x18){if(_0x5d22x18){_0x5d22x2d= _0x5d22x18;_0x5d22x29[_0x5100[54]]= _[_0x5100[57]](db[_0x5100[87]][_0x5100[55]]);_0x5d22x29[_0x5100[58]]= _[_0x5100[57]](_0x5d22x28[_0x5100[58]]);_0x5d22x29[_0x5100[59]]= _[_0x5100[60]](_0x5d22x29[_0x5100[54]],_0x5d22x29[_0x5100[58]]);_0x5d22x1b[_0x5100[61]]= _[_0x5100[60]](_0x5d22x29[_0x5100[54]],qs[_0x5100[62]](_0x5d22x28[_0x5100[58]][_0x5100[62]]));_0x5d22x1b[_0x5100[61]]= (_0x5d22x1b[_0x5100[61]][_0x5100[63]])?_0x5d22x1b[_0x5100[61]]:_0x5d22x29[_0x5100[54]];_0x5d22x1b[_0x5100[66]]= qs[_0x5100[67]](_0x5d22x28[_0x5100[58]][_0x5100[67]]);_0x5d22x1b[_0x5100[68]]= qs[_0x5100[59]](_[_0x5100[69]](_0x5d22x28[_0x5100[58]],_0x5d22x29[_0x5100[59]]));if(_0x5d22x28[_0x5100[58]][_0x5100[70]]){_0x5d22x1b[_0x5100[68]]= _[_0x5100[73]](_0x5d22x1b[_0x5100[68]],{$or:_[_0x5100[72]](_0x5d22x1b[_0x5100[61]],function(_0x5d22x2a){var _0x5d22x2b={};_0x5d22x2b[_0x5d22x2a]= {$like:_0x5100[71]+ _0x5d22x28[_0x5100[58]][_0x5100[70]]+ _0x5100[71]};return _0x5d22x2b})})};_0x5d22x1b= _[_0x5100[73]]({},_0x5d22x1b,_0x5d22x28[_0x5100[74]]);return _0x5d22x2d[_0x5100[88]](_0x5d22x1b)}})[_0x5100[45]](function(_0x5d22x2f){if(_0x5d22x2f){_0x5d22x1c= _0x5d22x2f[_0x5100[63]];if(!_0x5d22x28[_0x5100[58]][_0x5100[65]](_0x5100[64])){_0x5d22x1b[_0x5100[35]]= qs[_0x5100[35]](_0x5d22x28[_0x5100[58]][_0x5100[35]]);_0x5d22x1b[_0x5100[34]]= qs[_0x5100[34]](_0x5d22x28[_0x5100[58]][_0x5100[34]])};return _0x5d22x2d[_0x5100[88]](_0x5d22x1b)}})[_0x5100[45]](function(_0x5d22x2e){return _0x5d22x2e?{count:_0x5d22x1c,rows:_0x5d22x2e}:null})[_0x5100[45]](respondWithResult(_0x5d22x18,null,_0x5100[88]))[_0x5100[75]](handleError(_0x5d22x18,null,_0x5100[88]))}
\ No newline at end of file
index 76ddbdf..7a5b32f 100644 (file)
@@ -1 +1 @@
-var _0x61aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x61aa[0];var _=require(_0x61aa[1]);var util=require(_0x61aa[2]);var logger=require(_0x61aa[4])(_0x61aa[3]);var attributes=require(_0x61aa[5]);module[_0x61aa[6]]= function(_0x164dx5,_0x164dx6){return _0x164dx5[_0x61aa[9]](_0x61aa[7],attributes,{tableName:_0x61aa[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x3c51=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x3c51[0];var _=require(_0x3c51[1]);var util=require(_0x3c51[2]);var logger=require(_0x3c51[4])(_0x3c51[3]);var attributes=require(_0x3c51[5]);module[_0x3c51[6]]= function(_0x7678x5,_0x7678x6){return _0x7678x5[_0x3c51[9]](_0x3c51[7],attributes,{tableName:_0x3c51[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 912e672..8314416 100644 (file)
@@ -1 +1 @@
-var _0xcb71=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcb71[0];var _=require(_0xcb71[1]);var util=require(_0xcb71[2]);var moment=require(_0xcb71[3]);var BPromise=require(_0xcb71[4]);var db=require(_0xcb71[6])[_0xcb71[5]];var utils=require(_0xcb71[7]);var logger=require(_0xcb71[9])(_0xcb71[8]);var jayson=require(_0xcb71[10]);var client=jayson[_0xcb71[12]][_0xcb71[11]]({port:9002});function respondWithRpcPromise(_0x98f8xb,_0x98f8xc,_0x98f8xd){return  new BPromise(function(_0x98f8xe,_0x98f8xf){return client[_0xcb71[25]](_0x98f8xb,_0x98f8xd)[_0xcb71[24]](function(_0x98f8x11){logger[_0xcb71[17]](_0xcb71[13],_0x98f8xc,_0xcb71[16]);logger[_0xcb71[20]](_0xcb71[18],_0x98f8xc,_0xcb71[16],JSON[_0xcb71[19]](_0x98f8x11));if(_0x98f8x11[_0xcb71[14]]){if(_0x98f8x11[_0xcb71[14]][_0xcb71[21]]=== 500){logger[_0xcb71[14]](_0xcb71[13],_0x98f8xc,_0x98f8x11[_0xcb71[14]][_0xcb71[22]]);return _0x98f8xf(_0x98f8x11[_0xcb71[14]][_0xcb71[22]])};logger[_0xcb71[14]](_0xcb71[13],_0x98f8xc,_0x98f8x11[_0xcb71[14]][_0xcb71[22]]);return _0x98f8xe(_0x98f8x11[_0xcb71[14]][_0xcb71[22]])}else {logger[_0xcb71[17]](_0xcb71[13],_0x98f8xc,_0xcb71[16]);_0x98f8xe(_0x98f8x11[_0xcb71[23]][_0xcb71[22]])}})[_0xcb71[15]](function(_0x98f8x10){logger[_0xcb71[14]](_0xcb71[13],_0x98f8xc,_0x98f8x10);_0x98f8xf(_0x98f8x10)})})}
\ No newline at end of file
+var _0x184e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x184e[0];var _=require(_0x184e[1]);var util=require(_0x184e[2]);var moment=require(_0x184e[3]);var BPromise=require(_0x184e[4]);var db=require(_0x184e[6])[_0x184e[5]];var utils=require(_0x184e[7]);var logger=require(_0x184e[9])(_0x184e[8]);var jayson=require(_0x184e[10]);var client=jayson[_0x184e[12]][_0x184e[11]]({port:9002});function respondWithRpcPromise(_0x6b51xb,_0x6b51xc,_0x6b51xd){return  new BPromise(function(_0x6b51xe,_0x6b51xf){return client[_0x184e[25]](_0x6b51xb,_0x6b51xd)[_0x184e[24]](function(_0x6b51x11){logger[_0x184e[17]](_0x184e[13],_0x6b51xc,_0x184e[16]);logger[_0x184e[20]](_0x184e[18],_0x6b51xc,_0x184e[16],JSON[_0x184e[19]](_0x6b51x11));if(_0x6b51x11[_0x184e[14]]){if(_0x6b51x11[_0x184e[14]][_0x184e[21]]=== 500){logger[_0x184e[14]](_0x184e[13],_0x6b51xc,_0x6b51x11[_0x184e[14]][_0x184e[22]]);return _0x6b51xf(_0x6b51x11[_0x184e[14]][_0x184e[22]])};logger[_0x184e[14]](_0x184e[13],_0x6b51xc,_0x6b51x11[_0x184e[14]][_0x184e[22]]);return _0x6b51xe(_0x6b51x11[_0x184e[14]][_0x184e[22]])}else {logger[_0x184e[17]](_0x184e[13],_0x6b51xc,_0x184e[16]);_0x6b51xe(_0x6b51x11[_0x184e[23]][_0x184e[22]])}})[_0x184e[15]](function(_0x6b51x10){logger[_0x184e[14]](_0x184e[13],_0x6b51xc,_0x6b51x10);_0x6b51xf(_0x6b51x10)})})}
\ No newline at end of file
index a118462..1507549 100644 (file)
@@ -1 +1 @@
-var _0x4746=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4746[0];var multer=require(_0x4746[1]);var util=require(_0x4746[2]);var path=require(_0x4746[3]);var express=require(_0x4746[4]);var router=express.Router();var auth=require(_0x4746[5]);var config=require(_0x4746[6]);var controller=require(_0x4746[7]);router[_0x4746[11]](_0x4746[8],auth[_0x4746[9]](),controller[_0x4746[10]]);router[_0x4746[11]](_0x4746[12],auth[_0x4746[9]](),controller[_0x4746[13]]);router[_0x4746[11]](_0x4746[14],auth[_0x4746[9]](),controller[_0x4746[15]]);router[_0x4746[17]](_0x4746[8],auth[_0x4746[9]](),controller[_0x4746[16]]);router[_0x4746[19]](_0x4746[14],auth[_0x4746[9]](),controller[_0x4746[18]]);router[_0x4746[21]](_0x4746[14],auth[_0x4746[9]](),controller[_0x4746[20]]);module[_0x4746[22]]= router
\ No newline at end of file
+var _0x67a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x67a6[0];var multer=require(_0x67a6[1]);var util=require(_0x67a6[2]);var path=require(_0x67a6[3]);var express=require(_0x67a6[4]);var router=express.Router();var auth=require(_0x67a6[5]);var config=require(_0x67a6[6]);var controller=require(_0x67a6[7]);router[_0x67a6[11]](_0x67a6[8],auth[_0x67a6[9]](),controller[_0x67a6[10]]);router[_0x67a6[11]](_0x67a6[12],auth[_0x67a6[9]](),controller[_0x67a6[13]]);router[_0x67a6[11]](_0x67a6[14],auth[_0x67a6[9]](),controller[_0x67a6[15]]);router[_0x67a6[17]](_0x67a6[8],auth[_0x67a6[9]](),controller[_0x67a6[16]]);router[_0x67a6[19]](_0x67a6[14],auth[_0x67a6[9]](),controller[_0x67a6[18]]);router[_0x67a6[21]](_0x67a6[14],auth[_0x67a6[9]](),controller[_0x67a6[20]]);module[_0x67a6[22]]= router
\ No newline at end of file
index c1eb64d..81bfd64 100644 (file)
@@ -1 +1 @@
-var _0x9379=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42","\x62\x6F\x64\x79","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x45\x4E\x44\x49\x4E\x47","\x54\x45\x58\x54"];_0x9379[0];var Sequelize=require(_0x9379[1]);var _=require(_0x9379[2]);module[_0x9379[3]]= {from:{type:Sequelize[_0x9379[4]]},to:{type:Sequelize[_0x9379[4]]},body:{type:Sequelize[_0x9379[5]],get:function(){return this[_0x9379[7]](_0x9379[6]).toString()}},status:{type:Sequelize[_0x9379[4]],defaultValue:_0x9379[8]},res_data:{type:Sequelize[_0x9379[9]]},name:{type:Sequelize[_0x9379[4]]},phone:{type:Sequelize[_0x9379[4]]},email:{type:Sequelize[_0x9379[4]],validate:{isEmail:true}}}
\ No newline at end of file
+var _0x2949=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42","\x62\x6F\x64\x79","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x45\x4E\x44\x49\x4E\x47","\x54\x45\x58\x54"];_0x2949[0];var Sequelize=require(_0x2949[1]);var _=require(_0x2949[2]);module[_0x2949[3]]= {from:{type:Sequelize[_0x2949[4]]},to:{type:Sequelize[_0x2949[4]]},body:{type:Sequelize[_0x2949[5]],get:function(){return this[_0x2949[7]](_0x2949[6]).toString()}},status:{type:Sequelize[_0x2949[4]],defaultValue:_0x2949[8]},res_data:{type:Sequelize[_0x2949[9]]},name:{type:Sequelize[_0x2949[4]]},phone:{type:Sequelize[_0x2949[4]]},email:{type:Sequelize[_0x2949[4]],validate:{isEmail:true}}}
\ No newline at end of file
index 0d387b2..75905bc 100644 (file)
@@ -1 +1 @@
-var _0x1b7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x1b7d[0];var jsonpatch=require(_0x1b7d[1]);var rp=require(_0x1b7d[2]);var moment=require(_0x1b7d[3]);var BPromise=require(_0x1b7d[4]);var util=require(_0x1b7d[5]);var path=require(_0x1b7d[6]);var sox=require(_0x1b7d[7]);var ejs=require(_0x1b7d[8]);var fs=require(_0x1b7d[9]);var _=require(_0x1b7d[10]);var squel=require(_0x1b7d[11]);var crypto=require(_0x1b7d[12]);var jsforce=require(_0x1b7d[13]);var toCsv=require(_0x1b7d[14]);var qs=require(_0x1b7d[15]);var logger=require(_0x1b7d[17])(_0x1b7d[16]);var utils=require(_0x1b7d[18]);var config=require(_0x1b7d[19]);var db=require(_0x1b7d[21])[_0x1b7d[20]];function respondWithStatusCode(_0xb230x15,_0xb230x16,_0xb230x17){_0xb230x16= _0xb230x16|| 204;return function(_0xb230x18){if(_0xb230x18){logger[_0x1b7d[24]](_0x1b7d[22],_0xb230x17,_0xb230x16,_0x1b7d[23]);logger[_0x1b7d[26]](_0x1b7d[25],_0xb230x17,_0xb230x16,_0x1b7d[23]);return _0xb230x15[_0x1b7d[27]](_0xb230x16)};return _0xb230x15[_0x1b7d[29]](304)[_0x1b7d[28]]()}}function respondWithResult(_0xb230x15,_0xb230x16,_0xb230x17){_0xb230x16= _0xb230x16|| 200;return function(_0xb230x18){if(_0xb230x18){logger[_0x1b7d[24]](_0x1b7d[22],_0xb230x17,_0xb230x16,_0x1b7d[30]);logger[_0x1b7d[26]](_0x1b7d[25],_0xb230x17,_0xb230x16,_0x1b7d[30],JSON[_0x1b7d[31]](_0xb230x18));return _0xb230x15[_0x1b7d[29]](_0xb230x16)[_0x1b7d[32]](_0xb230x18)};return _0xb230x15[_0x1b7d[29]](304)[_0x1b7d[28]]()}}function respondWithFilteredResult(_0xb230x15,_0xb230x1b,_0xb230x17){return function(_0xb230x18){if(_0xb230x18){var _0xb230x1c=_0xb230x18[_0x1b7d[33]],_0xb230x1d=_0xb230x1b[_0x1b7d[34]],_0xb230x1e=_0xb230x1b[_0x1b7d[34]]+ _0xb230x1b[_0x1b7d[35]],_0xb230x16;if(_0xb230x1e>= _0xb230x1c){_0xb230x1e= _0xb230x1c;_0xb230x16= 200}else {_0xb230x16= 206};_0xb230x15[_0x1b7d[29]](_0xb230x16);logger[_0x1b7d[24]](_0x1b7d[22],_0xb230x17,_0xb230x16,_0x1b7d[36]);logger[_0x1b7d[26]](_0x1b7d[25],_0xb230x17,_0xb230x16,_0x1b7d[30],JSON[_0x1b7d[31]](_0xb230x18));return _0xb230x15[_0x1b7d[40]](_0x1b7d[37],_0xb230x1d+ _0x1b7d[38]+ _0xb230x1e+ _0x1b7d[39]+ _0xb230x1c)[_0x1b7d[32]](_0xb230x18)};return null}}function patchUpdates(_0xb230x20){return function(_0xb230x18){try{jsonpatch[_0x1b7d[41]](_0xb230x18,_0xb230x20,true)}catch(err){return BPromise[_0x1b7d[42]](err)};return _0xb230x18[_0x1b7d[43]]()}}function saveUpdates(_0xb230x22,_0xb230x16,_0xb230x17){return function(_0xb230x18){if(_0xb230x18){return _0xb230x18[_0x1b7d[46]](_0xb230x22)[_0x1b7d[45]](function(_0xb230x23){logger[_0x1b7d[24]](_0x1b7d[22],_0xb230x17,_0xb230x16,_0x1b7d[44]);logger[_0x1b7d[26]](_0x1b7d[25],_0xb230x17,_0xb230x16,_0x1b7d[44],JSON[_0x1b7d[31]](_0xb230x18));return _0xb230x23})};return null}}function removeEntity(_0xb230x15,_0xb230x16,_0xb230x17){return function(_0xb230x18){if(_0xb230x18){return _0xb230x18[_0x1b7d[48]]()[_0x1b7d[45]](function(){logger[_0x1b7d[24]](_0x1b7d[22],_0xb230x17,_0xb230x16,_0x1b7d[47]);logger[_0x1b7d[26]](_0x1b7d[25],_0xb230x17,_0xb230x16,_0x1b7d[47],JSON[_0x1b7d[31]](_0xb230x18));_0xb230x15[_0x1b7d[29]](204)[_0x1b7d[28]]()})}}}function handleEntityNotFound(_0xb230x15,_0xb230x16,_0xb230x17){return function(_0xb230x18){if(!_0xb230x18){logger[_0x1b7d[50]](_0x1b7d[22],_0xb230x17,404,_0x1b7d[49]);_0xb230x15[_0x1b7d[29]](404)[_0x1b7d[28]]();return null};return _0xb230x18}}function handleError(_0xb230x15,_0xb230x16,_0xb230x17){_0xb230x16= _0xb230x16|| 500;return function(_0xb230x27){logger[_0x1b7d[50]](_0x1b7d[22],_0xb230x17,_0xb230x16,JSON[_0x1b7d[31]](_0xb230x27));delete _0xb230x27[_0x1b7d[51]];_0xb230x15[_0x1b7d[29]](_0xb230x16)[_0x1b7d[52]](_0xb230x27)}}exports[_0x1b7d[53]]= function(_0xb230x28,_0xb230x15){var _0xb230x1b={},_0xb230x29={};_0xb230x29[_0x1b7d[54]]= _[_0x1b7d[57]](db[_0x1b7d[56]][_0x1b7d[55]]);_0xb230x29[_0x1b7d[58]]= _[_0x1b7d[57]](_0xb230x28[_0x1b7d[58]]);_0xb230x29[_0x1b7d[59]]= _[_0x1b7d[60]](_0xb230x29[_0x1b7d[54]],_0xb230x29[_0x1b7d[58]]);_0xb230x1b[_0x1b7d[61]]= _[_0x1b7d[60]](_0xb230x29[_0x1b7d[54]],qs[_0x1b7d[62]](_0xb230x28[_0x1b7d[58]][_0x1b7d[62]]));_0xb230x1b[_0x1b7d[61]]= (_0xb230x1b[_0x1b7d[61]][_0x1b7d[63]])?_0xb230x1b[_0x1b7d[61]]:_0xb230x29[_0x1b7d[54]];if(!_0xb230x28[_0x1b7d[58]][_0x1b7d[65]](_0x1b7d[64])){_0xb230x1b[_0x1b7d[35]]= qs[_0x1b7d[35]](_0xb230x28[_0x1b7d[58]][_0x1b7d[35]]);_0xb230x1b[_0x1b7d[34]]= qs[_0x1b7d[34]](_0xb230x28[_0x1b7d[58]][_0x1b7d[34]])};_0xb230x1b[_0x1b7d[66]]= qs[_0x1b7d[67]](_0xb230x28[_0x1b7d[58]][_0x1b7d[67]]);_0xb230x1b[_0x1b7d[68]]= qs[_0x1b7d[59]](_[_0x1b7d[69]](_0xb230x28[_0x1b7d[58]],_0xb230x29[_0x1b7d[59]]));if(_0xb230x28[_0x1b7d[58]][_0x1b7d[70]]){_0xb230x1b[_0x1b7d[68]]= _[_0x1b7d[73]](_0xb230x1b[_0x1b7d[68]],{$or:_[_0x1b7d[72]](_0xb230x1b[_0x1b7d[61]],function(_0xb230x2a){var _0xb230x2b={};_0xb230x2b[_0xb230x2a]= {$like:_0x1b7d[71]+ _0xb230x28[_0x1b7d[58]][_0x1b7d[70]]+ _0x1b7d[71]};return _0xb230x2b})})};_0xb230x1b= _[_0x1b7d[73]]({},_0xb230x1b,_0xb230x28[_0x1b7d[74]]);return db[_0x1b7d[56]][_0x1b7d[76]](_0xb230x1b)[_0x1b7d[45]](respondWithFilteredResult(_0xb230x15,_0xb230x1b,_0x1b7d[53]))[_0x1b7d[75]](handleError(_0xb230x15,null,_0x1b7d[53]))};exports[_0x1b7d[77]]= function(_0xb230x28,_0xb230x15){var _0xb230x1b={raw:true,where:{id:_0xb230x28[_0x1b7d[79]][_0x1b7d[78]]}},_0xb230x29={};_0xb230x29[_0x1b7d[54]]= _[_0x1b7d[57]](db[_0x1b7d[56]][_0x1b7d[55]]);_0xb230x29[_0x1b7d[58]]= _[_0x1b7d[57]](_0xb230x28[_0x1b7d[58]]);_0xb230x29[_0x1b7d[59]]= _[_0x1b7d[60]](_0xb230x29[_0x1b7d[54]],_0xb230x29[_0x1b7d[58]]);_0xb230x1b[_0x1b7d[61]]= _[_0x1b7d[60]](_0xb230x29[_0x1b7d[54]],qs[_0x1b7d[62]](_0xb230x28[_0x1b7d[58]][_0x1b7d[62]]));_0xb230x1b[_0x1b7d[61]]= (_0xb230x1b[_0x1b7d[61]][_0x1b7d[63]])?_0xb230x1b[_0x1b7d[61]]:_0xb230x29[_0x1b7d[54]];_0xb230x1b= _[_0x1b7d[73]]({},_0xb230x1b,_0xb230x28[_0x1b7d[74]]);return db[_0x1b7d[56]][_0x1b7d[80]](_0xb230x1b)[_0x1b7d[45]](handleEntityNotFound(_0xb230x15,null,_0x1b7d[77]))[_0x1b7d[45]](respondWithResult(_0xb230x15,null,_0x1b7d[77]))[_0x1b7d[75]](handleError(_0xb230x15,null,_0x1b7d[77]))};exports[_0x1b7d[81]]= function(_0xb230x28,_0xb230x15){return db[_0x1b7d[56]][_0x1b7d[81]](_0xb230x28[_0x1b7d[82]],{})[_0x1b7d[45]](respondWithResult(_0xb230x15,201,_0x1b7d[81]))[_0x1b7d[75]](handleError(_0xb230x15,null,_0x1b7d[81]))};exports[_0x1b7d[46]]= function(_0xb230x28,_0xb230x15){if(_0xb230x28[_0x1b7d[82]][_0x1b7d[78]]){delete _0xb230x28[_0x1b7d[82]][_0x1b7d[78]]};return db[_0x1b7d[56]][_0x1b7d[80]]({where:{id:_0xb230x28[_0x1b7d[79]][_0x1b7d[78]]}})[_0x1b7d[45]](handleEntityNotFound(_0xb230x15,null,_0x1b7d[46]))[_0x1b7d[45]](saveUpdates(_0xb230x28[_0x1b7d[82]],null,_0x1b7d[46]))[_0x1b7d[45]](respondWithResult(_0xb230x15,null,_0x1b7d[46]))[_0x1b7d[75]](handleError(_0xb230x15,null,_0x1b7d[46]))};exports[_0x1b7d[48]]= function(_0xb230x28,_0xb230x15){return db[_0x1b7d[56]][_0x1b7d[80]]({where:{id:_0xb230x28[_0x1b7d[79]][_0x1b7d[78]]}})[_0x1b7d[45]](handleEntityNotFound(_0xb230x15,null,_0x1b7d[48]))[_0x1b7d[45]](removeEntity(_0xb230x15,null,_0x1b7d[48]))[_0x1b7d[75]](handleError(_0xb230x15,null,_0x1b7d[48]))};exports[_0x1b7d[83]]= function(_0xb230x28,_0xb230x15){return db[_0x1b7d[56]][_0x1b7d[83]]()[_0x1b7d[45]](respondWithResult(_0xb230x15,null,_0x1b7d[83]))[_0x1b7d[75]](handleError(_0xb230x15,null,_0x1b7d[83]))}
\ No newline at end of file
+var _0x3fa7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x3fa7[0];var jsonpatch=require(_0x3fa7[1]);var rp=require(_0x3fa7[2]);var moment=require(_0x3fa7[3]);var BPromise=require(_0x3fa7[4]);var util=require(_0x3fa7[5]);var path=require(_0x3fa7[6]);var sox=require(_0x3fa7[7]);var ejs=require(_0x3fa7[8]);var fs=require(_0x3fa7[9]);var _=require(_0x3fa7[10]);var squel=require(_0x3fa7[11]);var crypto=require(_0x3fa7[12]);var jsforce=require(_0x3fa7[13]);var toCsv=require(_0x3fa7[14]);var qs=require(_0x3fa7[15]);var logger=require(_0x3fa7[17])(_0x3fa7[16]);var utils=require(_0x3fa7[18]);var config=require(_0x3fa7[19]);var db=require(_0x3fa7[21])[_0x3fa7[20]];function respondWithStatusCode(_0xe78bx15,_0xe78bx16,_0xe78bx17){_0xe78bx16= _0xe78bx16|| 204;return function(_0xe78bx18){if(_0xe78bx18){logger[_0x3fa7[24]](_0x3fa7[22],_0xe78bx17,_0xe78bx16,_0x3fa7[23]);logger[_0x3fa7[26]](_0x3fa7[25],_0xe78bx17,_0xe78bx16,_0x3fa7[23]);return _0xe78bx15[_0x3fa7[27]](_0xe78bx16)};return _0xe78bx15[_0x3fa7[29]](304)[_0x3fa7[28]]()}}function respondWithResult(_0xe78bx15,_0xe78bx16,_0xe78bx17){_0xe78bx16= _0xe78bx16|| 200;return function(_0xe78bx18){if(_0xe78bx18){logger[_0x3fa7[24]](_0x3fa7[22],_0xe78bx17,_0xe78bx16,_0x3fa7[30]);logger[_0x3fa7[26]](_0x3fa7[25],_0xe78bx17,_0xe78bx16,_0x3fa7[30],JSON[_0x3fa7[31]](_0xe78bx18));return _0xe78bx15[_0x3fa7[29]](_0xe78bx16)[_0x3fa7[32]](_0xe78bx18)};return _0xe78bx15[_0x3fa7[29]](304)[_0x3fa7[28]]()}}function respondWithFilteredResult(_0xe78bx15,_0xe78bx1b,_0xe78bx17){return function(_0xe78bx18){if(_0xe78bx18){var _0xe78bx1c=_0xe78bx18[_0x3fa7[33]],_0xe78bx1d=_0xe78bx1b[_0x3fa7[34]],_0xe78bx1e=_0xe78bx1b[_0x3fa7[34]]+ _0xe78bx1b[_0x3fa7[35]],_0xe78bx16;if(_0xe78bx1e>= _0xe78bx1c){_0xe78bx1e= _0xe78bx1c;_0xe78bx16= 200}else {_0xe78bx16= 206};_0xe78bx15[_0x3fa7[29]](_0xe78bx16);logger[_0x3fa7[24]](_0x3fa7[22],_0xe78bx17,_0xe78bx16,_0x3fa7[36]);logger[_0x3fa7[26]](_0x3fa7[25],_0xe78bx17,_0xe78bx16,_0x3fa7[30],JSON[_0x3fa7[31]](_0xe78bx18));return _0xe78bx15[_0x3fa7[40]](_0x3fa7[37],_0xe78bx1d+ _0x3fa7[38]+ _0xe78bx1e+ _0x3fa7[39]+ _0xe78bx1c)[_0x3fa7[32]](_0xe78bx18)};return null}}function patchUpdates(_0xe78bx20){return function(_0xe78bx18){try{jsonpatch[_0x3fa7[41]](_0xe78bx18,_0xe78bx20,true)}catch(err){return BPromise[_0x3fa7[42]](err)};return _0xe78bx18[_0x3fa7[43]]()}}function saveUpdates(_0xe78bx22,_0xe78bx16,_0xe78bx17){return function(_0xe78bx18){if(_0xe78bx18){return _0xe78bx18[_0x3fa7[46]](_0xe78bx22)[_0x3fa7[45]](function(_0xe78bx23){logger[_0x3fa7[24]](_0x3fa7[22],_0xe78bx17,_0xe78bx16,_0x3fa7[44]);logger[_0x3fa7[26]](_0x3fa7[25],_0xe78bx17,_0xe78bx16,_0x3fa7[44],JSON[_0x3fa7[31]](_0xe78bx18));return _0xe78bx23})};return null}}function removeEntity(_0xe78bx15,_0xe78bx16,_0xe78bx17){return function(_0xe78bx18){if(_0xe78bx18){return _0xe78bx18[_0x3fa7[48]]()[_0x3fa7[45]](function(){logger[_0x3fa7[24]](_0x3fa7[22],_0xe78bx17,_0xe78bx16,_0x3fa7[47]);logger[_0x3fa7[26]](_0x3fa7[25],_0xe78bx17,_0xe78bx16,_0x3fa7[47],JSON[_0x3fa7[31]](_0xe78bx18));_0xe78bx15[_0x3fa7[29]](204)[_0x3fa7[28]]()})}}}function handleEntityNotFound(_0xe78bx15,_0xe78bx16,_0xe78bx17){return function(_0xe78bx18){if(!_0xe78bx18){logger[_0x3fa7[50]](_0x3fa7[22],_0xe78bx17,404,_0x3fa7[49]);_0xe78bx15[_0x3fa7[29]](404)[_0x3fa7[28]]();return null};return _0xe78bx18}}function handleError(_0xe78bx15,_0xe78bx16,_0xe78bx17){_0xe78bx16= _0xe78bx16|| 500;return function(_0xe78bx27){logger[_0x3fa7[50]](_0x3fa7[22],_0xe78bx17,_0xe78bx16,JSON[_0x3fa7[31]](_0xe78bx27));delete _0xe78bx27[_0x3fa7[51]];_0xe78bx15[_0x3fa7[29]](_0xe78bx16)[_0x3fa7[52]](_0xe78bx27)}}exports[_0x3fa7[53]]= function(_0xe78bx28,_0xe78bx15){var _0xe78bx1b={},_0xe78bx29={};_0xe78bx29[_0x3fa7[54]]= _[_0x3fa7[57]](db[_0x3fa7[56]][_0x3fa7[55]]);_0xe78bx29[_0x3fa7[58]]= _[_0x3fa7[57]](_0xe78bx28[_0x3fa7[58]]);_0xe78bx29[_0x3fa7[59]]= _[_0x3fa7[60]](_0xe78bx29[_0x3fa7[54]],_0xe78bx29[_0x3fa7[58]]);_0xe78bx1b[_0x3fa7[61]]= _[_0x3fa7[60]](_0xe78bx29[_0x3fa7[54]],qs[_0x3fa7[62]](_0xe78bx28[_0x3fa7[58]][_0x3fa7[62]]));_0xe78bx1b[_0x3fa7[61]]= (_0xe78bx1b[_0x3fa7[61]][_0x3fa7[63]])?_0xe78bx1b[_0x3fa7[61]]:_0xe78bx29[_0x3fa7[54]];if(!_0xe78bx28[_0x3fa7[58]][_0x3fa7[65]](_0x3fa7[64])){_0xe78bx1b[_0x3fa7[35]]= qs[_0x3fa7[35]](_0xe78bx28[_0x3fa7[58]][_0x3fa7[35]]);_0xe78bx1b[_0x3fa7[34]]= qs[_0x3fa7[34]](_0xe78bx28[_0x3fa7[58]][_0x3fa7[34]])};_0xe78bx1b[_0x3fa7[66]]= qs[_0x3fa7[67]](_0xe78bx28[_0x3fa7[58]][_0x3fa7[67]]);_0xe78bx1b[_0x3fa7[68]]= qs[_0x3fa7[59]](_[_0x3fa7[69]](_0xe78bx28[_0x3fa7[58]],_0xe78bx29[_0x3fa7[59]]));if(_0xe78bx28[_0x3fa7[58]][_0x3fa7[70]]){_0xe78bx1b[_0x3fa7[68]]= _[_0x3fa7[73]](_0xe78bx1b[_0x3fa7[68]],{$or:_[_0x3fa7[72]](_0xe78bx1b[_0x3fa7[61]],function(_0xe78bx2a){var _0xe78bx2b={};_0xe78bx2b[_0xe78bx2a]= {$like:_0x3fa7[71]+ _0xe78bx28[_0x3fa7[58]][_0x3fa7[70]]+ _0x3fa7[71]};return _0xe78bx2b})})};_0xe78bx1b= _[_0x3fa7[73]]({},_0xe78bx1b,_0xe78bx28[_0x3fa7[74]]);return db[_0x3fa7[56]][_0x3fa7[76]](_0xe78bx1b)[_0x3fa7[45]](respondWithFilteredResult(_0xe78bx15,_0xe78bx1b,_0x3fa7[53]))[_0x3fa7[75]](handleError(_0xe78bx15,null,_0x3fa7[53]))};exports[_0x3fa7[77]]= function(_0xe78bx28,_0xe78bx15){var _0xe78bx1b={raw:true,where:{id:_0xe78bx28[_0x3fa7[79]][_0x3fa7[78]]}},_0xe78bx29={};_0xe78bx29[_0x3fa7[54]]= _[_0x3fa7[57]](db[_0x3fa7[56]][_0x3fa7[55]]);_0xe78bx29[_0x3fa7[58]]= _[_0x3fa7[57]](_0xe78bx28[_0x3fa7[58]]);_0xe78bx29[_0x3fa7[59]]= _[_0x3fa7[60]](_0xe78bx29[_0x3fa7[54]],_0xe78bx29[_0x3fa7[58]]);_0xe78bx1b[_0x3fa7[61]]= _[_0x3fa7[60]](_0xe78bx29[_0x3fa7[54]],qs[_0x3fa7[62]](_0xe78bx28[_0x3fa7[58]][_0x3fa7[62]]));_0xe78bx1b[_0x3fa7[61]]= (_0xe78bx1b[_0x3fa7[61]][_0x3fa7[63]])?_0xe78bx1b[_0x3fa7[61]]:_0xe78bx29[_0x3fa7[54]];_0xe78bx1b= _[_0x3fa7[73]]({},_0xe78bx1b,_0xe78bx28[_0x3fa7[74]]);return db[_0x3fa7[56]][_0x3fa7[80]](_0xe78bx1b)[_0x3fa7[45]](handleEntityNotFound(_0xe78bx15,null,_0x3fa7[77]))[_0x3fa7[45]](respondWithResult(_0xe78bx15,null,_0x3fa7[77]))[_0x3fa7[75]](handleError(_0xe78bx15,null,_0x3fa7[77]))};exports[_0x3fa7[81]]= function(_0xe78bx28,_0xe78bx15){return db[_0x3fa7[56]][_0x3fa7[81]](_0xe78bx28[_0x3fa7[82]],{})[_0x3fa7[45]](respondWithResult(_0xe78bx15,201,_0x3fa7[81]))[_0x3fa7[75]](handleError(_0xe78bx15,null,_0x3fa7[81]))};exports[_0x3fa7[46]]= function(_0xe78bx28,_0xe78bx15){if(_0xe78bx28[_0x3fa7[82]][_0x3fa7[78]]){delete _0xe78bx28[_0x3fa7[82]][_0x3fa7[78]]};return db[_0x3fa7[56]][_0x3fa7[80]]({where:{id:_0xe78bx28[_0x3fa7[79]][_0x3fa7[78]]}})[_0x3fa7[45]](handleEntityNotFound(_0xe78bx15,null,_0x3fa7[46]))[_0x3fa7[45]](saveUpdates(_0xe78bx28[_0x3fa7[82]],null,_0x3fa7[46]))[_0x3fa7[45]](respondWithResult(_0xe78bx15,null,_0x3fa7[46]))[_0x3fa7[75]](handleError(_0xe78bx15,null,_0x3fa7[46]))};exports[_0x3fa7[48]]= function(_0xe78bx28,_0xe78bx15){return db[_0x3fa7[56]][_0x3fa7[80]]({where:{id:_0xe78bx28[_0x3fa7[79]][_0x3fa7[78]]}})[_0x3fa7[45]](handleEntityNotFound(_0xe78bx15,null,_0x3fa7[48]))[_0x3fa7[45]](removeEntity(_0xe78bx15,null,_0x3fa7[48]))[_0x3fa7[75]](handleError(_0xe78bx15,null,_0x3fa7[48]))};exports[_0x3fa7[83]]= function(_0xe78bx28,_0xe78bx15){return db[_0x3fa7[56]][_0x3fa7[83]]()[_0x3fa7[45]](respondWithResult(_0xe78bx15,null,_0x3fa7[83]))[_0x3fa7[75]](handleError(_0xe78bx15,null,_0x3fa7[83]))}
\ No newline at end of file
index ac281ab..bfd0f34 100644 (file)
@@ -1 +1 @@
-var _0xea87=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xea87[0];var _=require(_0xea87[1]);var util=require(_0xea87[2]);var logger=require(_0xea87[4])(_0xea87[3]);var attributes=require(_0xea87[5]);module[_0xea87[6]]= function(_0x1316x5,_0x1316x6){return _0x1316x5[_0xea87[9]](_0xea87[7],attributes,{tableName:_0xea87[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4fe9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x4fe9[0];var _=require(_0x4fe9[1]);var util=require(_0x4fe9[2]);var logger=require(_0x4fe9[4])(_0x4fe9[3]);var attributes=require(_0x4fe9[5]);module[_0x4fe9[6]]= function(_0x17c4x5,_0x17c4x6){return _0x17c4x5[_0x4fe9[9]](_0x4fe9[7],attributes,{tableName:_0x4fe9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index df1053f..c639ac3 100644 (file)
@@ -1 +1 @@
-var _0x986f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x986f[0];var _=require(_0x986f[1]);var util=require(_0x986f[2]);var moment=require(_0x986f[3]);var BPromise=require(_0x986f[4]);var db=require(_0x986f[6])[_0x986f[5]];var utils=require(_0x986f[7]);var logger=require(_0x986f[9])(_0x986f[8]);var jayson=require(_0x986f[10]);var client=jayson[_0x986f[12]][_0x986f[11]]({port:9002});function respondWithRpcPromise(_0xbe2dxb,_0xbe2dxc,_0xbe2dxd){return  new BPromise(function(_0xbe2dxe,_0xbe2dxf){return client[_0x986f[25]](_0xbe2dxb,_0xbe2dxd)[_0x986f[24]](function(_0xbe2dx11){logger[_0x986f[17]](_0x986f[13],_0xbe2dxc,_0x986f[16]);logger[_0x986f[20]](_0x986f[18],_0xbe2dxc,_0x986f[16],JSON[_0x986f[19]](_0xbe2dx11));if(_0xbe2dx11[_0x986f[14]]){if(_0xbe2dx11[_0x986f[14]][_0x986f[21]]=== 500){logger[_0x986f[14]](_0x986f[13],_0xbe2dxc,_0xbe2dx11[_0x986f[14]][_0x986f[22]]);return _0xbe2dxf(_0xbe2dx11[_0x986f[14]][_0x986f[22]])};logger[_0x986f[14]](_0x986f[13],_0xbe2dxc,_0xbe2dx11[_0x986f[14]][_0x986f[22]]);return _0xbe2dxe(_0xbe2dx11[_0x986f[14]][_0x986f[22]])}else {logger[_0x986f[17]](_0x986f[13],_0xbe2dxc,_0x986f[16]);_0xbe2dxe(_0xbe2dx11[_0x986f[23]][_0x986f[22]])}})[_0x986f[15]](function(_0xbe2dx10){logger[_0x986f[14]](_0x986f[13],_0xbe2dxc,_0xbe2dx10);_0xbe2dxf(_0xbe2dx10)})})}
\ No newline at end of file
+var _0x46f4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x46f4[0];var _=require(_0x46f4[1]);var util=require(_0x46f4[2]);var moment=require(_0x46f4[3]);var BPromise=require(_0x46f4[4]);var db=require(_0x46f4[6])[_0x46f4[5]];var utils=require(_0x46f4[7]);var logger=require(_0x46f4[9])(_0x46f4[8]);var jayson=require(_0x46f4[10]);var client=jayson[_0x46f4[12]][_0x46f4[11]]({port:9002});function respondWithRpcPromise(_0xc04axb,_0xc04axc,_0xc04axd){return  new BPromise(function(_0xc04axe,_0xc04axf){return client[_0x46f4[25]](_0xc04axb,_0xc04axd)[_0x46f4[24]](function(_0xc04ax11){logger[_0x46f4[17]](_0x46f4[13],_0xc04axc,_0x46f4[16]);logger[_0x46f4[20]](_0x46f4[18],_0xc04axc,_0x46f4[16],JSON[_0x46f4[19]](_0xc04ax11));if(_0xc04ax11[_0x46f4[14]]){if(_0xc04ax11[_0x46f4[14]][_0x46f4[21]]=== 500){logger[_0x46f4[14]](_0x46f4[13],_0xc04axc,_0xc04ax11[_0x46f4[14]][_0x46f4[22]]);return _0xc04axf(_0xc04ax11[_0x46f4[14]][_0x46f4[22]])};logger[_0x46f4[14]](_0x46f4[13],_0xc04axc,_0xc04ax11[_0x46f4[14]][_0x46f4[22]]);return _0xc04axe(_0xc04ax11[_0x46f4[14]][_0x46f4[22]])}else {logger[_0x46f4[17]](_0x46f4[13],_0xc04axc,_0x46f4[16]);_0xc04axe(_0xc04ax11[_0x46f4[23]][_0x46f4[22]])}})[_0x46f4[15]](function(_0xc04ax10){logger[_0x46f4[14]](_0x46f4[13],_0xc04axc,_0xc04ax10);_0xc04axf(_0xc04ax10)})})}
\ No newline at end of file
index fc467e1..0e13383 100644 (file)
@@ -1 +1 @@
-var _0xdc76=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xdc76[0];var multer=require(_0xdc76[1]);var util=require(_0xdc76[2]);var path=require(_0xdc76[3]);var express=require(_0xdc76[4]);var router=express.Router();var auth=require(_0xdc76[5]);var config=require(_0xdc76[6]);var controller=require(_0xdc76[7]);router[_0xdc76[11]](_0xdc76[8],auth[_0xdc76[9]](),controller[_0xdc76[10]]);router[_0xdc76[11]](_0xdc76[12],auth[_0xdc76[9]](),controller[_0xdc76[13]]);router[_0xdc76[11]](_0xdc76[14],auth[_0xdc76[9]](),controller[_0xdc76[15]]);router[_0xdc76[11]](_0xdc76[16],auth[_0xdc76[9]](),controller[_0xdc76[17]]);router[_0xdc76[19]](_0xdc76[8],auth[_0xdc76[9]](),controller[_0xdc76[18]]);router[_0xdc76[19]](_0xdc76[14],auth[_0xdc76[9]](),controller[_0xdc76[20]]);router[_0xdc76[19]](_0xdc76[16],auth[_0xdc76[9]](),controller[_0xdc76[21]]);router[_0xdc76[23]](_0xdc76[12],auth[_0xdc76[9]](),controller[_0xdc76[22]]);router[_0xdc76[25]](_0xdc76[12],auth[_0xdc76[9]](),controller[_0xdc76[24]]);router[_0xdc76[25]](_0xdc76[14],auth[_0xdc76[9]](),controller[_0xdc76[26]]);router[_0xdc76[25]](_0xdc76[16],auth[_0xdc76[9]](),controller[_0xdc76[27]]);module[_0xdc76[28]]= router
\ No newline at end of file
+var _0xebd7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xebd7[0];var multer=require(_0xebd7[1]);var util=require(_0xebd7[2]);var path=require(_0xebd7[3]);var express=require(_0xebd7[4]);var router=express.Router();var auth=require(_0xebd7[5]);var config=require(_0xebd7[6]);var controller=require(_0xebd7[7]);router[_0xebd7[11]](_0xebd7[8],auth[_0xebd7[9]](),controller[_0xebd7[10]]);router[_0xebd7[11]](_0xebd7[12],auth[_0xebd7[9]](),controller[_0xebd7[13]]);router[_0xebd7[11]](_0xebd7[14],auth[_0xebd7[9]](),controller[_0xebd7[15]]);router[_0xebd7[11]](_0xebd7[16],auth[_0xebd7[9]](),controller[_0xebd7[17]]);router[_0xebd7[19]](_0xebd7[8],auth[_0xebd7[9]](),controller[_0xebd7[18]]);router[_0xebd7[19]](_0xebd7[14],auth[_0xebd7[9]](),controller[_0xebd7[20]]);router[_0xebd7[19]](_0xebd7[16],auth[_0xebd7[9]](),controller[_0xebd7[21]]);router[_0xebd7[23]](_0xebd7[12],auth[_0xebd7[9]](),controller[_0xebd7[22]]);router[_0xebd7[25]](_0xebd7[12],auth[_0xebd7[9]](),controller[_0xebd7[24]]);router[_0xebd7[25]](_0xebd7[14],auth[_0xebd7[9]](),controller[_0xebd7[26]]);router[_0xebd7[25]](_0xebd7[16],auth[_0xebd7[9]](),controller[_0xebd7[27]]);module[_0xebd7[28]]= router
\ No newline at end of file
index 372252a..44ae69e 100644 (file)
@@ -1 +1 @@
-var _0xdea4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0xdea4[0];var Sequelize=require(_0xdea4[1]);module[_0xdea4[2]]= {name:{type:Sequelize[_0xdea4[3]],unique:_0xdea4[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0xdea4[3]]},timeout:{type:Sequelize[_0xdea4[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0xdea4[6],_0xdea4[7],_0xdea4[8])},lastAgent:{type:Sequelize[_0xdea4[5]],defaultValue:0}}
\ No newline at end of file
+var _0x498f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x498f[0];var Sequelize=require(_0x498f[1]);module[_0x498f[2]]= {name:{type:Sequelize[_0x498f[3]],unique:_0x498f[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x498f[3]]},timeout:{type:Sequelize[_0x498f[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x498f[6],_0x498f[7],_0x498f[8])},lastAgent:{type:Sequelize[_0x498f[5]],defaultValue:0}}
\ No newline at end of file
index a57c253..644f35f 100644 (file)
@@ -1 +1 @@
-var _0x8f4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x8f4d[0];var jsonpatch=require(_0x8f4d[1]);var rp=require(_0x8f4d[2]);var moment=require(_0x8f4d[3]);var BPromise=require(_0x8f4d[4]);var util=require(_0x8f4d[5]);var path=require(_0x8f4d[6]);var sox=require(_0x8f4d[7]);var ejs=require(_0x8f4d[8]);var fs=require(_0x8f4d[9]);var _=require(_0x8f4d[10]);var squel=require(_0x8f4d[11]);var crypto=require(_0x8f4d[12]);var jsforce=require(_0x8f4d[13]);var toCsv=require(_0x8f4d[14]);var qs=require(_0x8f4d[15]);var logger=require(_0x8f4d[17])(_0x8f4d[16]);var utils=require(_0x8f4d[18]);var config=require(_0x8f4d[19]);var db=require(_0x8f4d[21])[_0x8f4d[20]];function respondWithStatusCode(_0xd343x15,_0xd343x16,_0xd343x17){_0xd343x16= _0xd343x16|| 204;return function(_0xd343x18){if(_0xd343x18){logger[_0x8f4d[24]](_0x8f4d[22],_0xd343x17,_0xd343x16,_0x8f4d[23]);logger[_0x8f4d[26]](_0x8f4d[25],_0xd343x17,_0xd343x16,_0x8f4d[23]);return _0xd343x15[_0x8f4d[27]](_0xd343x16)};return _0xd343x15[_0x8f4d[29]](304)[_0x8f4d[28]]()}}function respondWithResult(_0xd343x15,_0xd343x16,_0xd343x17){_0xd343x16= _0xd343x16|| 200;return function(_0xd343x18){if(_0xd343x18){logger[_0x8f4d[24]](_0x8f4d[22],_0xd343x17,_0xd343x16,_0x8f4d[30]);logger[_0x8f4d[26]](_0x8f4d[25],_0xd343x17,_0xd343x16,_0x8f4d[30],JSON[_0x8f4d[31]](_0xd343x18));return _0xd343x15[_0x8f4d[29]](_0xd343x16)[_0x8f4d[32]](_0xd343x18)};return _0xd343x15[_0x8f4d[29]](304)[_0x8f4d[28]]()}}function respondWithFilteredResult(_0xd343x15,_0xd343x1b,_0xd343x17){return function(_0xd343x18){if(_0xd343x18){var _0xd343x1c=_0xd343x18[_0x8f4d[33]],_0xd343x1d=_0xd343x1b[_0x8f4d[34]],_0xd343x1e=_0xd343x1b[_0x8f4d[34]]+ _0xd343x1b[_0x8f4d[35]],_0xd343x16;if(_0xd343x1e>= _0xd343x1c){_0xd343x1e= _0xd343x1c;_0xd343x16= 200}else {_0xd343x16= 206};_0xd343x15[_0x8f4d[29]](_0xd343x16);logger[_0x8f4d[24]](_0x8f4d[22],_0xd343x17,_0xd343x16,_0x8f4d[36]);logger[_0x8f4d[26]](_0x8f4d[25],_0xd343x17,_0xd343x16,_0x8f4d[30],JSON[_0x8f4d[31]](_0xd343x18));return _0xd343x15[_0x8f4d[40]](_0x8f4d[37],_0xd343x1d+ _0x8f4d[38]+ _0xd343x1e+ _0x8f4d[39]+ _0xd343x1c)[_0x8f4d[32]](_0xd343x18)};return null}}function patchUpdates(_0xd343x20){return function(_0xd343x18){try{jsonpatch[_0x8f4d[41]](_0xd343x18,_0xd343x20,true)}catch(err){return BPromise[_0x8f4d[42]](err)};return _0xd343x18[_0x8f4d[43]]()}}function saveUpdates(_0xd343x22,_0xd343x16,_0xd343x17){return function(_0xd343x18){if(_0xd343x18){return _0xd343x18[_0x8f4d[46]](_0xd343x22)[_0x8f4d[45]](function(_0xd343x23){logger[_0x8f4d[24]](_0x8f4d[22],_0xd343x17,_0xd343x16,_0x8f4d[44]);logger[_0x8f4d[26]](_0x8f4d[25],_0xd343x17,_0xd343x16,_0x8f4d[44],JSON[_0x8f4d[31]](_0xd343x18));return _0xd343x23})};return null}}function removeEntity(_0xd343x15,_0xd343x16,_0xd343x17){return function(_0xd343x18){if(_0xd343x18){return _0xd343x18[_0x8f4d[48]]()[_0x8f4d[45]](function(){logger[_0x8f4d[24]](_0x8f4d[22],_0xd343x17,_0xd343x16,_0x8f4d[47]);logger[_0x8f4d[26]](_0x8f4d[25],_0xd343x17,_0xd343x16,_0x8f4d[47],JSON[_0x8f4d[31]](_0xd343x18));_0xd343x15[_0x8f4d[29]](204)[_0x8f4d[28]]()})}}}function handleEntityNotFound(_0xd343x15,_0xd343x16,_0xd343x17){return function(_0xd343x18){if(!_0xd343x18){logger[_0x8f4d[50]](_0x8f4d[22],_0xd343x17,404,_0x8f4d[49]);_0xd343x15[_0x8f4d[29]](404)[_0x8f4d[28]]();return null};return _0xd343x18}}function handleError(_0xd343x15,_0xd343x16,_0xd343x17){_0xd343x16= _0xd343x16|| 500;return function(_0xd343x27){logger[_0x8f4d[50]](_0x8f4d[22],_0xd343x17,_0xd343x16,JSON[_0x8f4d[31]](_0xd343x27));delete _0xd343x27[_0x8f4d[51]];_0xd343x15[_0x8f4d[29]](_0xd343x16)[_0x8f4d[52]](_0xd343x27)}}exports[_0x8f4d[53]]= function(_0xd343x28,_0xd343x15){var _0xd343x1b={},_0xd343x29={};_0xd343x29[_0x8f4d[54]]= _[_0x8f4d[57]](db[_0x8f4d[56]][_0x8f4d[55]]);_0xd343x29[_0x8f4d[58]]= _[_0x8f4d[57]](_0xd343x28[_0x8f4d[58]]);_0xd343x29[_0x8f4d[59]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],_0xd343x29[_0x8f4d[58]]);_0xd343x1b[_0x8f4d[61]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],qs[_0x8f4d[62]](_0xd343x28[_0x8f4d[58]][_0x8f4d[62]]));_0xd343x1b[_0x8f4d[61]]= (_0xd343x1b[_0x8f4d[61]][_0x8f4d[63]])?_0xd343x1b[_0x8f4d[61]]:_0xd343x29[_0x8f4d[54]];if(!_0xd343x28[_0x8f4d[58]][_0x8f4d[65]](_0x8f4d[64])){_0xd343x1b[_0x8f4d[35]]= qs[_0x8f4d[35]](_0xd343x28[_0x8f4d[58]][_0x8f4d[35]]);_0xd343x1b[_0x8f4d[34]]= qs[_0x8f4d[34]](_0xd343x28[_0x8f4d[58]][_0x8f4d[34]])};_0xd343x1b[_0x8f4d[66]]= qs[_0x8f4d[67]](_0xd343x28[_0x8f4d[58]][_0x8f4d[67]]);_0xd343x1b[_0x8f4d[68]]= qs[_0x8f4d[59]](_[_0x8f4d[69]](_0xd343x28[_0x8f4d[58]],_0xd343x29[_0x8f4d[59]]));if(_0xd343x28[_0x8f4d[58]][_0x8f4d[70]]){_0xd343x1b[_0x8f4d[68]]= _[_0x8f4d[73]](_0xd343x1b[_0x8f4d[68]],{$or:_[_0x8f4d[72]](_0xd343x1b[_0x8f4d[61]],function(_0xd343x2a){var _0xd343x2b={};_0xd343x2b[_0xd343x2a]= {$like:_0x8f4d[71]+ _0xd343x28[_0x8f4d[58]][_0x8f4d[70]]+ _0x8f4d[71]};return _0xd343x2b})})};_0xd343x1b= _[_0x8f4d[73]]({},_0xd343x1b,_0xd343x28[_0x8f4d[74]]);return db[_0x8f4d[56]][_0x8f4d[76]](_0xd343x1b)[_0x8f4d[45]](respondWithFilteredResult(_0xd343x15,_0xd343x1b,_0x8f4d[53]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[53]))};exports[_0x8f4d[77]]= function(_0xd343x28,_0xd343x15){var _0xd343x1b={raw:true,where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}},_0xd343x29={};_0xd343x29[_0x8f4d[54]]= _[_0x8f4d[57]](db[_0x8f4d[56]][_0x8f4d[55]]);_0xd343x29[_0x8f4d[58]]= _[_0x8f4d[57]](_0xd343x28[_0x8f4d[58]]);_0xd343x29[_0x8f4d[59]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],_0xd343x29[_0x8f4d[58]]);_0xd343x1b[_0x8f4d[61]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],qs[_0x8f4d[62]](_0xd343x28[_0x8f4d[58]][_0x8f4d[62]]));_0xd343x1b[_0x8f4d[61]]= (_0xd343x1b[_0x8f4d[61]][_0x8f4d[63]])?_0xd343x1b[_0x8f4d[61]]:_0xd343x29[_0x8f4d[54]];_0xd343x1b= _[_0x8f4d[73]]({},_0xd343x1b,_0xd343x28[_0x8f4d[74]]);return db[_0x8f4d[56]][_0x8f4d[80]](_0xd343x1b)[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[77]))[_0x8f4d[45]](respondWithResult(_0xd343x15,null,_0x8f4d[77]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[77]))};exports[_0x8f4d[81]]= function(_0xd343x28,_0xd343x15){return db[_0x8f4d[56]][_0x8f4d[81]](_0xd343x28[_0x8f4d[82]],{})[_0x8f4d[45]](respondWithResult(_0xd343x15,201,_0x8f4d[81]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[81]))};exports[_0x8f4d[46]]= function(_0xd343x28,_0xd343x15){if(_0xd343x28[_0x8f4d[82]][_0x8f4d[78]]){delete _0xd343x28[_0x8f4d[82]][_0x8f4d[78]]};return db[_0x8f4d[56]][_0x8f4d[80]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[46]))[_0x8f4d[45]](saveUpdates(_0xd343x28[_0x8f4d[82]],null,_0x8f4d[46]))[_0x8f4d[45]](respondWithResult(_0xd343x15,null,_0x8f4d[46]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[46]))};exports[_0x8f4d[48]]= function(_0xd343x28,_0xd343x15){return db[_0x8f4d[56]][_0x8f4d[80]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[48]))[_0x8f4d[45]](removeEntity(_0xd343x15,null,_0x8f4d[48]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[48]))};exports[_0x8f4d[83]]= function(_0xd343x28,_0xd343x18,_0xd343x2c){var _0xd343x1b={};var _0xd343x29={};var _0xd343x2d;var _0xd343x1c;return db[_0x8f4d[56]][_0x8f4d[85]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x18,null,_0x8f4d[83]))[_0x8f4d[45]](function(_0xd343x18){if(_0xd343x18){_0xd343x2d= _0xd343x18;_0xd343x29[_0x8f4d[54]]= _[_0x8f4d[57]](db[_0x8f4d[84]][_0x8f4d[55]]);_0xd343x29[_0x8f4d[58]]= _[_0x8f4d[57]](_0xd343x28[_0x8f4d[58]]);_0xd343x29[_0x8f4d[59]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],_0xd343x29[_0x8f4d[58]]);_0xd343x1b[_0x8f4d[61]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],qs[_0x8f4d[62]](_0xd343x28[_0x8f4d[58]][_0x8f4d[62]]));_0xd343x1b[_0x8f4d[61]]= (_0xd343x1b[_0x8f4d[61]][_0x8f4d[63]])?_0xd343x1b[_0x8f4d[61]]:_0xd343x29[_0x8f4d[54]];_0xd343x1b[_0x8f4d[66]]= qs[_0x8f4d[67]](_0xd343x28[_0x8f4d[58]][_0x8f4d[67]]);_0xd343x1b[_0x8f4d[68]]= qs[_0x8f4d[59]](_[_0x8f4d[69]](_0xd343x28[_0x8f4d[58]],_0xd343x29[_0x8f4d[59]]));if(_0xd343x28[_0x8f4d[58]][_0x8f4d[70]]){_0xd343x1b[_0x8f4d[68]]= _[_0x8f4d[73]](_0xd343x1b[_0x8f4d[68]],{$or:_[_0x8f4d[72]](_0xd343x1b[_0x8f4d[61]],function(_0xd343x2a){var _0xd343x2b={};_0xd343x2b[_0xd343x2a]= {$like:_0x8f4d[71]+ _0xd343x28[_0x8f4d[58]][_0x8f4d[70]]+ _0x8f4d[71]};return _0xd343x2b})})};_0xd343x1b= _[_0x8f4d[73]]({},_0xd343x1b,_0xd343x28[_0x8f4d[74]]);return _0xd343x2d[_0x8f4d[83]](_0xd343x1b)}})[_0x8f4d[45]](function(_0xd343x2f){if(_0xd343x2f){_0xd343x1c= _0xd343x2f[_0x8f4d[63]];if(!_0xd343x28[_0x8f4d[58]][_0x8f4d[65]](_0x8f4d[64])){_0xd343x1b[_0x8f4d[35]]= qs[_0x8f4d[35]](_0xd343x28[_0x8f4d[58]][_0x8f4d[35]]);_0xd343x1b[_0x8f4d[34]]= qs[_0x8f4d[34]](_0xd343x28[_0x8f4d[58]][_0x8f4d[34]])};return _0xd343x2d[_0x8f4d[83]](_0xd343x1b)}})[_0x8f4d[45]](function(_0xd343x2e){return _0xd343x2e?{count:_0xd343x1c,rows:_0xd343x2e}:null})[_0x8f4d[45]](respondWithResult(_0xd343x18,null,_0x8f4d[83]))[_0x8f4d[75]](handleError(_0xd343x18,null,_0x8f4d[83]))};exports[_0x8f4d[86]]= function(_0xd343x28,_0xd343x15,_0xd343x2c){var _0xd343x30=[];var _0xd343x31;return db[_0x8f4d[84]][_0x8f4d[93]]({where:{id:_0xd343x28[_0x8f4d[82]][_0x8f4d[87]]},attributes:[_0x8f4d[78]],include:[{model:db[_0x8f4d[92]],as:_0x8f4d[90],attributes:[_0x8f4d[78]],raw:true}]})[_0x8f4d[45]](function(_0xd343x34){if(_0xd343x34){for(var _0xd343x35=0;_0xd343x35< _0xd343x34[_0x8f4d[63]];_0xd343x35+= 1){for(var _0xd343x36=0;_0xd343x36< _0xd343x34[_0xd343x35][_0x8f4d[90]][_0x8f4d[63]];_0xd343x36+= 1){_0xd343x30= _[_0x8f4d[91]](_0xd343x30,[_0xd343x34[_0xd343x35][_0x8f4d[90]][_0xd343x36][_0x8f4d[78]]])}};return _0xd343x30}})[_0x8f4d[45]](function(_0xd343x33){if(_0xd343x33){return db[_0x8f4d[56]][_0x8f4d[80]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})}})[_0x8f4d[45]](function(_0xd343x32){if(_0xd343x32){_0xd343x31= _0xd343x32;return _0xd343x31[_0x8f4d[89]](_0xd343x30,{penalty:_0xd343x28[_0x8f4d[82]][_0x8f4d[88]]})}})[_0x8f4d[45]](function(_0xd343x18){if(_0xd343x18){return _0xd343x31[_0x8f4d[86]](_0xd343x28[_0x8f4d[82]][_0x8f4d[87]])}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[86]))[_0x8f4d[45]](respondWithStatusCode(_0xd343x15,null,_0x8f4d[86]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[86]))};exports[_0x8f4d[94]]= function(_0xd343x28,_0xd343x15,_0xd343x2c){var _0xd343x30=[];var _0xd343x31;return db[_0x8f4d[84]][_0x8f4d[93]]({where:{id:_0xd343x28[_0x8f4d[58]][_0x8f4d[87]]},attributes:[_0x8f4d[78]],include:[{model:db[_0x8f4d[92]],as:_0x8f4d[90],attributes:[_0x8f4d[78]],raw:true}]})[_0x8f4d[45]](function(_0xd343x34){if(_0xd343x34){for(var _0xd343x35=0;_0xd343x35< _0xd343x34[_0x8f4d[63]];_0xd343x35+= 1){for(var _0xd343x36=0;_0xd343x36< _0xd343x34[_0xd343x35][_0x8f4d[90]][_0x8f4d[63]];_0xd343x36+= 1){_0xd343x30= _[_0x8f4d[91]](_0xd343x30,[_0xd343x34[_0xd343x35][_0x8f4d[90]][_0xd343x36][_0x8f4d[78]]])}};return _0xd343x30}})[_0x8f4d[45]](function(_0xd343x33){if(_0xd343x33){return db[_0x8f4d[56]][_0x8f4d[80]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})}})[_0x8f4d[45]](function(_0xd343x32){if(_0xd343x32){_0xd343x31= _0xd343x32;return _0xd343x31[_0x8f4d[95]](_0xd343x30)}})[_0x8f4d[45]](function(_0xd343x18){if(_0xd343x31){return _0xd343x31[_0x8f4d[94]](_0xd343x28[_0x8f4d[58]][_0x8f4d[87]])}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[94]))[_0x8f4d[45]](respondWithStatusCode(_0xd343x15,null,_0x8f4d[94]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[94]))};exports[_0x8f4d[89]]= function(_0xd343x28,_0xd343x15,_0xd343x2c){return db[_0x8f4d[56]][_0x8f4d[80]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[89]))[_0x8f4d[45]](function(_0xd343x18){if(_0xd343x18){return _0xd343x18[_0x8f4d[89]](_0xd343x28[_0x8f4d[82]][_0x8f4d[87]],_[_0x8f4d[96]](_0xd343x28[_0x8f4d[82]],[_0x8f4d[87],_0x8f4d[78]])|| {})};return null})[_0x8f4d[45]](respondWithResult(_0xd343x15,null,_0x8f4d[89]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[89]))};exports[_0x8f4d[95]]= function(_0xd343x28,_0xd343x15,_0xd343x2c){var _0xd343x2f;return db[_0x8f4d[56]][_0x8f4d[80]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x15,null,_0x8f4d[95]))[_0x8f4d[45]](function(_0xd343x18){if(_0xd343x18){return _0xd343x18[_0x8f4d[95]](_0xd343x28[_0x8f4d[58]][_0x8f4d[87]])}})[_0x8f4d[45]](respondWithStatusCode(_0xd343x15,null,_0x8f4d[95]))[_0x8f4d[75]](handleError(_0xd343x15,null,_0x8f4d[95]))};exports[_0x8f4d[97]]= function(_0xd343x28,_0xd343x18,_0xd343x2c){var _0xd343x1b={};var _0xd343x29={};var _0xd343x2d;var _0xd343x1c;return db[_0x8f4d[56]][_0x8f4d[85]]({where:{id:_0xd343x28[_0x8f4d[79]][_0x8f4d[78]]}})[_0x8f4d[45]](handleEntityNotFound(_0xd343x18,null,_0x8f4d[97]))[_0x8f4d[45]](function(_0xd343x18){if(_0xd343x18){_0xd343x2d= _0xd343x18;_0xd343x29[_0x8f4d[54]]= _[_0x8f4d[57]](db[_0x8f4d[92]][_0x8f4d[55]]);_0xd343x29[_0x8f4d[58]]= _[_0x8f4d[57]](_0xd343x28[_0x8f4d[58]]);_0xd343x29[_0x8f4d[59]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],_0xd343x29[_0x8f4d[58]]);_0xd343x1b[_0x8f4d[61]]= _[_0x8f4d[60]](_0xd343x29[_0x8f4d[54]],qs[_0x8f4d[62]](_0xd343x28[_0x8f4d[58]][_0x8f4d[62]]));_0xd343x1b[_0x8f4d[61]]= (_0xd343x1b[_0x8f4d[61]][_0x8f4d[63]])?_0xd343x1b[_0x8f4d[61]]:_0xd343x29[_0x8f4d[54]];_0xd343x1b[_0x8f4d[66]]= qs[_0x8f4d[67]](_0xd343x28[_0x8f4d[58]][_0x8f4d[67]]);_0xd343x1b[_0x8f4d[68]]= qs[_0x8f4d[59]](_[_0x8f4d[69]](_0xd343x28[_0x8f4d[58]],_0xd343x29[_0x8f4d[59]]));if(_0xd343x28[_0x8f4d[58]][_0x8f4d[70]]){_0xd343x1b[_0x8f4d[68]]= _[_0x8f4d[73]](_0xd343x1b[_0x8f4d[68]],{$or:_[_0x8f4d[72]](_0xd343x1b[_0x8f4d[61]],function(_0xd343x2a){var _0xd343x2b={};_0xd343x2b[_0xd343x2a]= {$like:_0x8f4d[71]+ _0xd343x28[_0x8f4d[58]][_0x8f4d[70]]+ _0x8f4d[71]};return _0xd343x2b})})};_0xd343x1b= _[_0x8f4d[73]]({},_0xd343x1b,_0xd343x28[_0x8f4d[74]]);return _0xd343x2d[_0x8f4d[97]](_0xd343x1b)}})[_0x8f4d[45]](function(_0xd343x2f){if(_0xd343x2f){_0xd343x1c= _0xd343x2f[_0x8f4d[63]];if(!_0xd343x28[_0x8f4d[58]][_0x8f4d[65]](_0x8f4d[64])){_0xd343x1b[_0x8f4d[35]]= qs[_0x8f4d[35]](_0xd343x28[_0x8f4d[58]][_0x8f4d[35]]);_0xd343x1b[_0x8f4d[34]]= qs[_0x8f4d[34]](_0xd343x28[_0x8f4d[58]][_0x8f4d[34]])};return _0xd343x2d[_0x8f4d[97]](_0xd343x1b)}})[_0x8f4d[45]](function(_0xd343x2e){return _0xd343x2e?{count:_0xd343x1c,rows:_0xd343x2e}:null})[_0x8f4d[45]](respondWithResult(_0xd343x18,null,_0x8f4d[97]))[_0x8f4d[75]](handleError(_0xd343x18,null,_0x8f4d[97]))}
\ No newline at end of file
+var _0xf997=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xf997[0];var jsonpatch=require(_0xf997[1]);var rp=require(_0xf997[2]);var moment=require(_0xf997[3]);var BPromise=require(_0xf997[4]);var util=require(_0xf997[5]);var path=require(_0xf997[6]);var sox=require(_0xf997[7]);var ejs=require(_0xf997[8]);var fs=require(_0xf997[9]);var _=require(_0xf997[10]);var squel=require(_0xf997[11]);var crypto=require(_0xf997[12]);var jsforce=require(_0xf997[13]);var toCsv=require(_0xf997[14]);var qs=require(_0xf997[15]);var logger=require(_0xf997[17])(_0xf997[16]);var utils=require(_0xf997[18]);var config=require(_0xf997[19]);var db=require(_0xf997[21])[_0xf997[20]];function respondWithStatusCode(_0x3a4fx15,_0x3a4fx16,_0x3a4fx17){_0x3a4fx16= _0x3a4fx16|| 204;return function(_0x3a4fx18){if(_0x3a4fx18){logger[_0xf997[24]](_0xf997[22],_0x3a4fx17,_0x3a4fx16,_0xf997[23]);logger[_0xf997[26]](_0xf997[25],_0x3a4fx17,_0x3a4fx16,_0xf997[23]);return _0x3a4fx15[_0xf997[27]](_0x3a4fx16)};return _0x3a4fx15[_0xf997[29]](304)[_0xf997[28]]()}}function respondWithResult(_0x3a4fx15,_0x3a4fx16,_0x3a4fx17){_0x3a4fx16= _0x3a4fx16|| 200;return function(_0x3a4fx18){if(_0x3a4fx18){logger[_0xf997[24]](_0xf997[22],_0x3a4fx17,_0x3a4fx16,_0xf997[30]);logger[_0xf997[26]](_0xf997[25],_0x3a4fx17,_0x3a4fx16,_0xf997[30],JSON[_0xf997[31]](_0x3a4fx18));return _0x3a4fx15[_0xf997[29]](_0x3a4fx16)[_0xf997[32]](_0x3a4fx18)};return _0x3a4fx15[_0xf997[29]](304)[_0xf997[28]]()}}function respondWithFilteredResult(_0x3a4fx15,_0x3a4fx1b,_0x3a4fx17){return function(_0x3a4fx18){if(_0x3a4fx18){var _0x3a4fx1c=_0x3a4fx18[_0xf997[33]],_0x3a4fx1d=_0x3a4fx1b[_0xf997[34]],_0x3a4fx1e=_0x3a4fx1b[_0xf997[34]]+ _0x3a4fx1b[_0xf997[35]],_0x3a4fx16;if(_0x3a4fx1e>= _0x3a4fx1c){_0x3a4fx1e= _0x3a4fx1c;_0x3a4fx16= 200}else {_0x3a4fx16= 206};_0x3a4fx15[_0xf997[29]](_0x3a4fx16);logger[_0xf997[24]](_0xf997[22],_0x3a4fx17,_0x3a4fx16,_0xf997[36]);logger[_0xf997[26]](_0xf997[25],_0x3a4fx17,_0x3a4fx16,_0xf997[30],JSON[_0xf997[31]](_0x3a4fx18));return _0x3a4fx15[_0xf997[40]](_0xf997[37],_0x3a4fx1d+ _0xf997[38]+ _0x3a4fx1e+ _0xf997[39]+ _0x3a4fx1c)[_0xf997[32]](_0x3a4fx18)};return null}}function patchUpdates(_0x3a4fx20){return function(_0x3a4fx18){try{jsonpatch[_0xf997[41]](_0x3a4fx18,_0x3a4fx20,true)}catch(err){return BPromise[_0xf997[42]](err)};return _0x3a4fx18[_0xf997[43]]()}}function saveUpdates(_0x3a4fx22,_0x3a4fx16,_0x3a4fx17){return function(_0x3a4fx18){if(_0x3a4fx18){return _0x3a4fx18[_0xf997[46]](_0x3a4fx22)[_0xf997[45]](function(_0x3a4fx23){logger[_0xf997[24]](_0xf997[22],_0x3a4fx17,_0x3a4fx16,_0xf997[44]);logger[_0xf997[26]](_0xf997[25],_0x3a4fx17,_0x3a4fx16,_0xf997[44],JSON[_0xf997[31]](_0x3a4fx18));return _0x3a4fx23})};return null}}function removeEntity(_0x3a4fx15,_0x3a4fx16,_0x3a4fx17){return function(_0x3a4fx18){if(_0x3a4fx18){return _0x3a4fx18[_0xf997[48]]()[_0xf997[45]](function(){logger[_0xf997[24]](_0xf997[22],_0x3a4fx17,_0x3a4fx16,_0xf997[47]);logger[_0xf997[26]](_0xf997[25],_0x3a4fx17,_0x3a4fx16,_0xf997[47],JSON[_0xf997[31]](_0x3a4fx18));_0x3a4fx15[_0xf997[29]](204)[_0xf997[28]]()})}}}function handleEntityNotFound(_0x3a4fx15,_0x3a4fx16,_0x3a4fx17){return function(_0x3a4fx18){if(!_0x3a4fx18){logger[_0xf997[50]](_0xf997[22],_0x3a4fx17,404,_0xf997[49]);_0x3a4fx15[_0xf997[29]](404)[_0xf997[28]]();return null};return _0x3a4fx18}}function handleError(_0x3a4fx15,_0x3a4fx16,_0x3a4fx17){_0x3a4fx16= _0x3a4fx16|| 500;return function(_0x3a4fx27){logger[_0xf997[50]](_0xf997[22],_0x3a4fx17,_0x3a4fx16,JSON[_0xf997[31]](_0x3a4fx27));delete _0x3a4fx27[_0xf997[51]];_0x3a4fx15[_0xf997[29]](_0x3a4fx16)[_0xf997[52]](_0x3a4fx27)}}exports[_0xf997[53]]= function(_0x3a4fx28,_0x3a4fx15){var _0x3a4fx1b={},_0x3a4fx29={};_0x3a4fx29[_0xf997[54]]= _[_0xf997[57]](db[_0xf997[56]][_0xf997[55]]);_0x3a4fx29[_0xf997[58]]= _[_0xf997[57]](_0x3a4fx28[_0xf997[58]]);_0x3a4fx29[_0xf997[59]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],_0x3a4fx29[_0xf997[58]]);_0x3a4fx1b[_0xf997[61]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],qs[_0xf997[62]](_0x3a4fx28[_0xf997[58]][_0xf997[62]]));_0x3a4fx1b[_0xf997[61]]= (_0x3a4fx1b[_0xf997[61]][_0xf997[63]])?_0x3a4fx1b[_0xf997[61]]:_0x3a4fx29[_0xf997[54]];if(!_0x3a4fx28[_0xf997[58]][_0xf997[65]](_0xf997[64])){_0x3a4fx1b[_0xf997[35]]= qs[_0xf997[35]](_0x3a4fx28[_0xf997[58]][_0xf997[35]]);_0x3a4fx1b[_0xf997[34]]= qs[_0xf997[34]](_0x3a4fx28[_0xf997[58]][_0xf997[34]])};_0x3a4fx1b[_0xf997[66]]= qs[_0xf997[67]](_0x3a4fx28[_0xf997[58]][_0xf997[67]]);_0x3a4fx1b[_0xf997[68]]= qs[_0xf997[59]](_[_0xf997[69]](_0x3a4fx28[_0xf997[58]],_0x3a4fx29[_0xf997[59]]));if(_0x3a4fx28[_0xf997[58]][_0xf997[70]]){_0x3a4fx1b[_0xf997[68]]= _[_0xf997[73]](_0x3a4fx1b[_0xf997[68]],{$or:_[_0xf997[72]](_0x3a4fx1b[_0xf997[61]],function(_0x3a4fx2a){var _0x3a4fx2b={};_0x3a4fx2b[_0x3a4fx2a]= {$like:_0xf997[71]+ _0x3a4fx28[_0xf997[58]][_0xf997[70]]+ _0xf997[71]};return _0x3a4fx2b})})};_0x3a4fx1b= _[_0xf997[73]]({},_0x3a4fx1b,_0x3a4fx28[_0xf997[74]]);return db[_0xf997[56]][_0xf997[76]](_0x3a4fx1b)[_0xf997[45]](respondWithFilteredResult(_0x3a4fx15,_0x3a4fx1b,_0xf997[53]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[53]))};exports[_0xf997[77]]= function(_0x3a4fx28,_0x3a4fx15){var _0x3a4fx1b={raw:true,where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}},_0x3a4fx29={};_0x3a4fx29[_0xf997[54]]= _[_0xf997[57]](db[_0xf997[56]][_0xf997[55]]);_0x3a4fx29[_0xf997[58]]= _[_0xf997[57]](_0x3a4fx28[_0xf997[58]]);_0x3a4fx29[_0xf997[59]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],_0x3a4fx29[_0xf997[58]]);_0x3a4fx1b[_0xf997[61]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],qs[_0xf997[62]](_0x3a4fx28[_0xf997[58]][_0xf997[62]]));_0x3a4fx1b[_0xf997[61]]= (_0x3a4fx1b[_0xf997[61]][_0xf997[63]])?_0x3a4fx1b[_0xf997[61]]:_0x3a4fx29[_0xf997[54]];_0x3a4fx1b= _[_0xf997[73]]({},_0x3a4fx1b,_0x3a4fx28[_0xf997[74]]);return db[_0xf997[56]][_0xf997[80]](_0x3a4fx1b)[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[77]))[_0xf997[45]](respondWithResult(_0x3a4fx15,null,_0xf997[77]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[77]))};exports[_0xf997[81]]= function(_0x3a4fx28,_0x3a4fx15){return db[_0xf997[56]][_0xf997[81]](_0x3a4fx28[_0xf997[82]],{})[_0xf997[45]](respondWithResult(_0x3a4fx15,201,_0xf997[81]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[81]))};exports[_0xf997[46]]= function(_0x3a4fx28,_0x3a4fx15){if(_0x3a4fx28[_0xf997[82]][_0xf997[78]]){delete _0x3a4fx28[_0xf997[82]][_0xf997[78]]};return db[_0xf997[56]][_0xf997[80]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[46]))[_0xf997[45]](saveUpdates(_0x3a4fx28[_0xf997[82]],null,_0xf997[46]))[_0xf997[45]](respondWithResult(_0x3a4fx15,null,_0xf997[46]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[46]))};exports[_0xf997[48]]= function(_0x3a4fx28,_0x3a4fx15){return db[_0xf997[56]][_0xf997[80]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[48]))[_0xf997[45]](removeEntity(_0x3a4fx15,null,_0xf997[48]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[48]))};exports[_0xf997[83]]= function(_0x3a4fx28,_0x3a4fx18,_0x3a4fx2c){var _0x3a4fx1b={};var _0x3a4fx29={};var _0x3a4fx2d;var _0x3a4fx1c;return db[_0xf997[56]][_0xf997[85]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx18,null,_0xf997[83]))[_0xf997[45]](function(_0x3a4fx18){if(_0x3a4fx18){_0x3a4fx2d= _0x3a4fx18;_0x3a4fx29[_0xf997[54]]= _[_0xf997[57]](db[_0xf997[84]][_0xf997[55]]);_0x3a4fx29[_0xf997[58]]= _[_0xf997[57]](_0x3a4fx28[_0xf997[58]]);_0x3a4fx29[_0xf997[59]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],_0x3a4fx29[_0xf997[58]]);_0x3a4fx1b[_0xf997[61]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],qs[_0xf997[62]](_0x3a4fx28[_0xf997[58]][_0xf997[62]]));_0x3a4fx1b[_0xf997[61]]= (_0x3a4fx1b[_0xf997[61]][_0xf997[63]])?_0x3a4fx1b[_0xf997[61]]:_0x3a4fx29[_0xf997[54]];_0x3a4fx1b[_0xf997[66]]= qs[_0xf997[67]](_0x3a4fx28[_0xf997[58]][_0xf997[67]]);_0x3a4fx1b[_0xf997[68]]= qs[_0xf997[59]](_[_0xf997[69]](_0x3a4fx28[_0xf997[58]],_0x3a4fx29[_0xf997[59]]));if(_0x3a4fx28[_0xf997[58]][_0xf997[70]]){_0x3a4fx1b[_0xf997[68]]= _[_0xf997[73]](_0x3a4fx1b[_0xf997[68]],{$or:_[_0xf997[72]](_0x3a4fx1b[_0xf997[61]],function(_0x3a4fx2a){var _0x3a4fx2b={};_0x3a4fx2b[_0x3a4fx2a]= {$like:_0xf997[71]+ _0x3a4fx28[_0xf997[58]][_0xf997[70]]+ _0xf997[71]};return _0x3a4fx2b})})};_0x3a4fx1b= _[_0xf997[73]]({},_0x3a4fx1b,_0x3a4fx28[_0xf997[74]]);return _0x3a4fx2d[_0xf997[83]](_0x3a4fx1b)}})[_0xf997[45]](function(_0x3a4fx2f){if(_0x3a4fx2f){_0x3a4fx1c= _0x3a4fx2f[_0xf997[63]];if(!_0x3a4fx28[_0xf997[58]][_0xf997[65]](_0xf997[64])){_0x3a4fx1b[_0xf997[35]]= qs[_0xf997[35]](_0x3a4fx28[_0xf997[58]][_0xf997[35]]);_0x3a4fx1b[_0xf997[34]]= qs[_0xf997[34]](_0x3a4fx28[_0xf997[58]][_0xf997[34]])};return _0x3a4fx2d[_0xf997[83]](_0x3a4fx1b)}})[_0xf997[45]](function(_0x3a4fx2e){return _0x3a4fx2e?{count:_0x3a4fx1c,rows:_0x3a4fx2e}:null})[_0xf997[45]](respondWithResult(_0x3a4fx18,null,_0xf997[83]))[_0xf997[75]](handleError(_0x3a4fx18,null,_0xf997[83]))};exports[_0xf997[86]]= function(_0x3a4fx28,_0x3a4fx15,_0x3a4fx2c){var _0x3a4fx30=[];var _0x3a4fx31;return db[_0xf997[84]][_0xf997[93]]({where:{id:_0x3a4fx28[_0xf997[82]][_0xf997[87]]},attributes:[_0xf997[78]],include:[{model:db[_0xf997[92]],as:_0xf997[90],attributes:[_0xf997[78]],raw:true}]})[_0xf997[45]](function(_0x3a4fx34){if(_0x3a4fx34){for(var _0x3a4fx35=0;_0x3a4fx35< _0x3a4fx34[_0xf997[63]];_0x3a4fx35+= 1){for(var _0x3a4fx36=0;_0x3a4fx36< _0x3a4fx34[_0x3a4fx35][_0xf997[90]][_0xf997[63]];_0x3a4fx36+= 1){_0x3a4fx30= _[_0xf997[91]](_0x3a4fx30,[_0x3a4fx34[_0x3a4fx35][_0xf997[90]][_0x3a4fx36][_0xf997[78]]])}};return _0x3a4fx30}})[_0xf997[45]](function(_0x3a4fx33){if(_0x3a4fx33){return db[_0xf997[56]][_0xf997[80]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})}})[_0xf997[45]](function(_0x3a4fx32){if(_0x3a4fx32){_0x3a4fx31= _0x3a4fx32;return _0x3a4fx31[_0xf997[89]](_0x3a4fx30,{penalty:_0x3a4fx28[_0xf997[82]][_0xf997[88]]})}})[_0xf997[45]](function(_0x3a4fx18){if(_0x3a4fx18){return _0x3a4fx31[_0xf997[86]](_0x3a4fx28[_0xf997[82]][_0xf997[87]])}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[86]))[_0xf997[45]](respondWithStatusCode(_0x3a4fx15,null,_0xf997[86]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[86]))};exports[_0xf997[94]]= function(_0x3a4fx28,_0x3a4fx15,_0x3a4fx2c){var _0x3a4fx30=[];var _0x3a4fx31;return db[_0xf997[84]][_0xf997[93]]({where:{id:_0x3a4fx28[_0xf997[58]][_0xf997[87]]},attributes:[_0xf997[78]],include:[{model:db[_0xf997[92]],as:_0xf997[90],attributes:[_0xf997[78]],raw:true}]})[_0xf997[45]](function(_0x3a4fx34){if(_0x3a4fx34){for(var _0x3a4fx35=0;_0x3a4fx35< _0x3a4fx34[_0xf997[63]];_0x3a4fx35+= 1){for(var _0x3a4fx36=0;_0x3a4fx36< _0x3a4fx34[_0x3a4fx35][_0xf997[90]][_0xf997[63]];_0x3a4fx36+= 1){_0x3a4fx30= _[_0xf997[91]](_0x3a4fx30,[_0x3a4fx34[_0x3a4fx35][_0xf997[90]][_0x3a4fx36][_0xf997[78]]])}};return _0x3a4fx30}})[_0xf997[45]](function(_0x3a4fx33){if(_0x3a4fx33){return db[_0xf997[56]][_0xf997[80]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})}})[_0xf997[45]](function(_0x3a4fx32){if(_0x3a4fx32){_0x3a4fx31= _0x3a4fx32;return _0x3a4fx31[_0xf997[95]](_0x3a4fx30)}})[_0xf997[45]](function(_0x3a4fx18){if(_0x3a4fx31){return _0x3a4fx31[_0xf997[94]](_0x3a4fx28[_0xf997[58]][_0xf997[87]])}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[94]))[_0xf997[45]](respondWithStatusCode(_0x3a4fx15,null,_0xf997[94]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[94]))};exports[_0xf997[89]]= function(_0x3a4fx28,_0x3a4fx15,_0x3a4fx2c){return db[_0xf997[56]][_0xf997[80]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[89]))[_0xf997[45]](function(_0x3a4fx18){if(_0x3a4fx18){return _0x3a4fx18[_0xf997[89]](_0x3a4fx28[_0xf997[82]][_0xf997[87]],_[_0xf997[96]](_0x3a4fx28[_0xf997[82]],[_0xf997[87],_0xf997[78]])|| {})};return null})[_0xf997[45]](respondWithResult(_0x3a4fx15,null,_0xf997[89]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[89]))};exports[_0xf997[95]]= function(_0x3a4fx28,_0x3a4fx15,_0x3a4fx2c){var _0x3a4fx2f;return db[_0xf997[56]][_0xf997[80]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx15,null,_0xf997[95]))[_0xf997[45]](function(_0x3a4fx18){if(_0x3a4fx18){return _0x3a4fx18[_0xf997[95]](_0x3a4fx28[_0xf997[58]][_0xf997[87]])}})[_0xf997[45]](respondWithStatusCode(_0x3a4fx15,null,_0xf997[95]))[_0xf997[75]](handleError(_0x3a4fx15,null,_0xf997[95]))};exports[_0xf997[97]]= function(_0x3a4fx28,_0x3a4fx18,_0x3a4fx2c){var _0x3a4fx1b={};var _0x3a4fx29={};var _0x3a4fx2d;var _0x3a4fx1c;return db[_0xf997[56]][_0xf997[85]]({where:{id:_0x3a4fx28[_0xf997[79]][_0xf997[78]]}})[_0xf997[45]](handleEntityNotFound(_0x3a4fx18,null,_0xf997[97]))[_0xf997[45]](function(_0x3a4fx18){if(_0x3a4fx18){_0x3a4fx2d= _0x3a4fx18;_0x3a4fx29[_0xf997[54]]= _[_0xf997[57]](db[_0xf997[92]][_0xf997[55]]);_0x3a4fx29[_0xf997[58]]= _[_0xf997[57]](_0x3a4fx28[_0xf997[58]]);_0x3a4fx29[_0xf997[59]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],_0x3a4fx29[_0xf997[58]]);_0x3a4fx1b[_0xf997[61]]= _[_0xf997[60]](_0x3a4fx29[_0xf997[54]],qs[_0xf997[62]](_0x3a4fx28[_0xf997[58]][_0xf997[62]]));_0x3a4fx1b[_0xf997[61]]= (_0x3a4fx1b[_0xf997[61]][_0xf997[63]])?_0x3a4fx1b[_0xf997[61]]:_0x3a4fx29[_0xf997[54]];_0x3a4fx1b[_0xf997[66]]= qs[_0xf997[67]](_0x3a4fx28[_0xf997[58]][_0xf997[67]]);_0x3a4fx1b[_0xf997[68]]= qs[_0xf997[59]](_[_0xf997[69]](_0x3a4fx28[_0xf997[58]],_0x3a4fx29[_0xf997[59]]));if(_0x3a4fx28[_0xf997[58]][_0xf997[70]]){_0x3a4fx1b[_0xf997[68]]= _[_0xf997[73]](_0x3a4fx1b[_0xf997[68]],{$or:_[_0xf997[72]](_0x3a4fx1b[_0xf997[61]],function(_0x3a4fx2a){var _0x3a4fx2b={};_0x3a4fx2b[_0x3a4fx2a]= {$like:_0xf997[71]+ _0x3a4fx28[_0xf997[58]][_0xf997[70]]+ _0xf997[71]};return _0x3a4fx2b})})};_0x3a4fx1b= _[_0xf997[73]]({},_0x3a4fx1b,_0x3a4fx28[_0xf997[74]]);return _0x3a4fx2d[_0xf997[97]](_0x3a4fx1b)}})[_0xf997[45]](function(_0x3a4fx2f){if(_0x3a4fx2f){_0x3a4fx1c= _0x3a4fx2f[_0xf997[63]];if(!_0x3a4fx28[_0xf997[58]][_0xf997[65]](_0xf997[64])){_0x3a4fx1b[_0xf997[35]]= qs[_0xf997[35]](_0x3a4fx28[_0xf997[58]][_0xf997[35]]);_0x3a4fx1b[_0xf997[34]]= qs[_0xf997[34]](_0x3a4fx28[_0xf997[58]][_0xf997[34]])};return _0x3a4fx2d[_0xf997[97]](_0x3a4fx1b)}})[_0xf997[45]](function(_0x3a4fx2e){return _0x3a4fx2e?{count:_0x3a4fx1c,rows:_0x3a4fx2e}:null})[_0xf997[45]](respondWithResult(_0x3a4fx18,null,_0xf997[97]))[_0xf997[75]](handleError(_0x3a4fx18,null,_0xf997[97]))}
\ No newline at end of file
index ca8d5ed..a951ccc 100644 (file)
@@ -1 +1 @@
-var _0x726f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x726f[0];var _=require(_0x726f[1]);var util=require(_0x726f[2]);var logger=require(_0x726f[4])(_0x726f[3]);var attributes=require(_0x726f[5]);module[_0x726f[6]]= function(_0x3b0dx5,_0x3b0dx6){return _0x3b0dx5[_0x726f[9]](_0x726f[7],attributes,{tableName:_0x726f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd174=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xd174[0];var _=require(_0xd174[1]);var util=require(_0xd174[2]);var logger=require(_0xd174[4])(_0xd174[3]);var attributes=require(_0xd174[5]);module[_0xd174[6]]= function(_0x7c48x5,_0x7c48x6){return _0x7c48x5[_0xd174[9]](_0xd174[7],attributes,{tableName:_0xd174[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index a48b697..886ef26 100644 (file)
@@ -1 +1 @@
-var _0x3738=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3738[0];var _=require(_0x3738[1]);var util=require(_0x3738[2]);var moment=require(_0x3738[3]);var BPromise=require(_0x3738[4]);var db=require(_0x3738[6])[_0x3738[5]];var utils=require(_0x3738[7]);var logger=require(_0x3738[9])(_0x3738[8]);var jayson=require(_0x3738[10]);var client=jayson[_0x3738[12]][_0x3738[11]]({port:9002});function respondWithRpcPromise(_0xebd4xb,_0xebd4xc,_0xebd4xd){return  new BPromise(function(_0xebd4xe,_0xebd4xf){return client[_0x3738[25]](_0xebd4xb,_0xebd4xd)[_0x3738[24]](function(_0xebd4x11){logger[_0x3738[17]](_0x3738[13],_0xebd4xc,_0x3738[16]);logger[_0x3738[20]](_0x3738[18],_0xebd4xc,_0x3738[16],JSON[_0x3738[19]](_0xebd4x11));if(_0xebd4x11[_0x3738[14]]){if(_0xebd4x11[_0x3738[14]][_0x3738[21]]=== 500){logger[_0x3738[14]](_0x3738[13],_0xebd4xc,_0xebd4x11[_0x3738[14]][_0x3738[22]]);return _0xebd4xf(_0xebd4x11[_0x3738[14]][_0x3738[22]])};logger[_0x3738[14]](_0x3738[13],_0xebd4xc,_0xebd4x11[_0x3738[14]][_0x3738[22]]);return _0xebd4xe(_0xebd4x11[_0x3738[14]][_0x3738[22]])}else {logger[_0x3738[17]](_0x3738[13],_0xebd4xc,_0x3738[16]);_0xebd4xe(_0xebd4x11[_0x3738[23]][_0x3738[22]])}})[_0x3738[15]](function(_0xebd4x10){logger[_0x3738[14]](_0x3738[13],_0xebd4xc,_0xebd4x10);_0xebd4xf(_0xebd4x10)})})}
\ No newline at end of file
+var _0xd2ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd2ab[0];var _=require(_0xd2ab[1]);var util=require(_0xd2ab[2]);var moment=require(_0xd2ab[3]);var BPromise=require(_0xd2ab[4]);var db=require(_0xd2ab[6])[_0xd2ab[5]];var utils=require(_0xd2ab[7]);var logger=require(_0xd2ab[9])(_0xd2ab[8]);var jayson=require(_0xd2ab[10]);var client=jayson[_0xd2ab[12]][_0xd2ab[11]]({port:9002});function respondWithRpcPromise(_0x836cxb,_0x836cxc,_0x836cxd){return  new BPromise(function(_0x836cxe,_0x836cxf){return client[_0xd2ab[25]](_0x836cxb,_0x836cxd)[_0xd2ab[24]](function(_0x836cx11){logger[_0xd2ab[17]](_0xd2ab[13],_0x836cxc,_0xd2ab[16]);logger[_0xd2ab[20]](_0xd2ab[18],_0x836cxc,_0xd2ab[16],JSON[_0xd2ab[19]](_0x836cx11));if(_0x836cx11[_0xd2ab[14]]){if(_0x836cx11[_0xd2ab[14]][_0xd2ab[21]]=== 500){logger[_0xd2ab[14]](_0xd2ab[13],_0x836cxc,_0x836cx11[_0xd2ab[14]][_0xd2ab[22]]);return _0x836cxf(_0x836cx11[_0xd2ab[14]][_0xd2ab[22]])};logger[_0xd2ab[14]](_0xd2ab[13],_0x836cxc,_0x836cx11[_0xd2ab[14]][_0xd2ab[22]]);return _0x836cxe(_0x836cx11[_0xd2ab[14]][_0xd2ab[22]])}else {logger[_0xd2ab[17]](_0xd2ab[13],_0x836cxc,_0xd2ab[16]);_0x836cxe(_0x836cx11[_0xd2ab[23]][_0xd2ab[22]])}})[_0xd2ab[15]](function(_0x836cx10){logger[_0xd2ab[14]](_0xd2ab[13],_0x836cxc,_0x836cx10);_0x836cxf(_0x836cx10)})})}
\ No newline at end of file
index d1e3a61..4c43fb0 100644 (file)
@@ -1 +1 @@
-var _0x604c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x604c[0];var multer=require(_0x604c[1]);var util=require(_0x604c[2]);var path=require(_0x604c[3]);var express=require(_0x604c[4]);var router=express.Router();var auth=require(_0x604c[5]);var config=require(_0x604c[6]);var controller=require(_0x604c[7]);router[_0x604c[11]](_0x604c[8],auth[_0x604c[9]](),controller[_0x604c[10]]);router[_0x604c[11]](_0x604c[12],auth[_0x604c[9]](),controller[_0x604c[13]]);router[_0x604c[15]](_0x604c[8],auth[_0x604c[9]](),controller[_0x604c[14]]);router[_0x604c[17]](_0x604c[12],auth[_0x604c[9]](),controller[_0x604c[16]]);router[_0x604c[19]](_0x604c[12],auth[_0x604c[9]](),controller[_0x604c[18]]);module[_0x604c[20]]= router
\ No newline at end of file
+var _0x7c3b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7c3b[0];var multer=require(_0x7c3b[1]);var util=require(_0x7c3b[2]);var path=require(_0x7c3b[3]);var express=require(_0x7c3b[4]);var router=express.Router();var auth=require(_0x7c3b[5]);var config=require(_0x7c3b[6]);var controller=require(_0x7c3b[7]);router[_0x7c3b[11]](_0x7c3b[8],auth[_0x7c3b[9]](),controller[_0x7c3b[10]]);router[_0x7c3b[11]](_0x7c3b[12],auth[_0x7c3b[9]](),controller[_0x7c3b[13]]);router[_0x7c3b[15]](_0x7c3b[8],auth[_0x7c3b[9]](),controller[_0x7c3b[14]]);router[_0x7c3b[17]](_0x7c3b[12],auth[_0x7c3b[9]](),controller[_0x7c3b[16]]);router[_0x7c3b[19]](_0x7c3b[12],auth[_0x7c3b[9]](),controller[_0x7c3b[18]]);module[_0x7c3b[20]]= router
\ No newline at end of file
index 74463c0..56ec2d8 100644 (file)
@@ -1 +1 @@
-var _0x1993=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x1993[0];var moment=require(_0x1993[1]);var Sequelize=require(_0x1993[2]);module[_0x1993[3]]= {uniqueid:{type:Sequelize[_0x1993[4]]},timeslot:{type:Sequelize[_0x1993[4]]},from:{type:Sequelize[_0x1993[4]]},accountid:{type:Sequelize[_0x1993[4]]},accountname:{type:Sequelize[_0x1993[4]]},application:{type:Sequelize[_0x1993[4]]},memberid:{type:Sequelize[_0x1993[4]]},membername:{type:Sequelize[_0x1993[4]]},queue:{type:Sequelize[_0x1993[4]]},queuename:{type:Sequelize[_0x1993[4]]},roomid:{type:Sequelize[_0x1993[5]]},messageid:{type:Sequelize[_0x1993[5]]},reason:{type:Sequelize[_0x1993[4]],defaultValue:_0x1993[6]},connectid:{type:Sequelize[_0x1993[4]],unique:_0x1993[7],set:function(_0x1751x3){this[_0x1993[8]](_0x1993[7],_0x1751x3);this[_0x1993[8]](_0x1993[9],_0x1993[10]);this[_0x1993[8]](_0x1993[11],moment()[_0x1993[13]](_0x1993[12]))}},calledAt:{type:Sequelize[_0x1993[14]]},rejectedAt:{type:Sequelize[_0x1993[14]],set:function(_0x1751x4){this[_0x1993[8]](_0x1993[15],_0x1751x4);this[_0x1993[8]](_0x1993[9],_0x1993[16])}},connectedAt:{type:Sequelize[_0x1993[14]]}}
\ No newline at end of file
+var _0x4001=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x4001[0];var moment=require(_0x4001[1]);var Sequelize=require(_0x4001[2]);module[_0x4001[3]]= {uniqueid:{type:Sequelize[_0x4001[4]]},timeslot:{type:Sequelize[_0x4001[4]]},from:{type:Sequelize[_0x4001[4]]},accountid:{type:Sequelize[_0x4001[4]]},accountname:{type:Sequelize[_0x4001[4]]},application:{type:Sequelize[_0x4001[4]]},memberid:{type:Sequelize[_0x4001[4]]},membername:{type:Sequelize[_0x4001[4]]},queue:{type:Sequelize[_0x4001[4]]},queuename:{type:Sequelize[_0x4001[4]]},roomid:{type:Sequelize[_0x4001[5]]},messageid:{type:Sequelize[_0x4001[5]]},reason:{type:Sequelize[_0x4001[4]],defaultValue:_0x4001[6]},connectid:{type:Sequelize[_0x4001[4]],unique:_0x4001[7],set:function(_0x720dx3){this[_0x4001[8]](_0x4001[7],_0x720dx3);this[_0x4001[8]](_0x4001[9],_0x4001[10]);this[_0x4001[8]](_0x4001[11],moment()[_0x4001[13]](_0x4001[12]))}},calledAt:{type:Sequelize[_0x4001[14]]},rejectedAt:{type:Sequelize[_0x4001[14]],set:function(_0x720dx4){this[_0x4001[8]](_0x4001[15],_0x720dx4);this[_0x4001[8]](_0x4001[9],_0x4001[16])}},connectedAt:{type:Sequelize[_0x4001[14]]}}
\ No newline at end of file
index 19eeb65..eb13bc7 100644 (file)
@@ -1 +1 @@
-var _0xd2c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd2c6[0];var jsonpatch=require(_0xd2c6[1]);var rp=require(_0xd2c6[2]);var moment=require(_0xd2c6[3]);var BPromise=require(_0xd2c6[4]);var util=require(_0xd2c6[5]);var path=require(_0xd2c6[6]);var sox=require(_0xd2c6[7]);var ejs=require(_0xd2c6[8]);var fs=require(_0xd2c6[9]);var _=require(_0xd2c6[10]);var squel=require(_0xd2c6[11]);var crypto=require(_0xd2c6[12]);var jsforce=require(_0xd2c6[13]);var toCsv=require(_0xd2c6[14]);var qs=require(_0xd2c6[15]);var logger=require(_0xd2c6[17])(_0xd2c6[16]);var utils=require(_0xd2c6[18]);var config=require(_0xd2c6[19]);var db=require(_0xd2c6[21])[_0xd2c6[20]];function respondWithStatusCode(_0xdb05x15,_0xdb05x16,_0xdb05x17){_0xdb05x16= _0xdb05x16|| 204;return function(_0xdb05x18){if(_0xdb05x18){logger[_0xd2c6[24]](_0xd2c6[22],_0xdb05x17,_0xdb05x16,_0xd2c6[23]);logger[_0xd2c6[26]](_0xd2c6[25],_0xdb05x17,_0xdb05x16,_0xd2c6[23]);return _0xdb05x15[_0xd2c6[27]](_0xdb05x16)};return _0xdb05x15[_0xd2c6[29]](304)[_0xd2c6[28]]()}}function respondWithResult(_0xdb05x15,_0xdb05x16,_0xdb05x17){_0xdb05x16= _0xdb05x16|| 200;return function(_0xdb05x18){if(_0xdb05x18){logger[_0xd2c6[24]](_0xd2c6[22],_0xdb05x17,_0xdb05x16,_0xd2c6[30]);logger[_0xd2c6[26]](_0xd2c6[25],_0xdb05x17,_0xdb05x16,_0xd2c6[30],JSON[_0xd2c6[31]](_0xdb05x18));return _0xdb05x15[_0xd2c6[29]](_0xdb05x16)[_0xd2c6[32]](_0xdb05x18)};return _0xdb05x15[_0xd2c6[29]](304)[_0xd2c6[28]]()}}function respondWithFilteredResult(_0xdb05x15,_0xdb05x1b,_0xdb05x17){return function(_0xdb05x18){if(_0xdb05x18){var _0xdb05x1c=_0xdb05x18[_0xd2c6[33]],_0xdb05x1d=_0xdb05x1b[_0xd2c6[34]],_0xdb05x1e=_0xdb05x1b[_0xd2c6[34]]+ _0xdb05x1b[_0xd2c6[35]],_0xdb05x16;if(_0xdb05x1e>= _0xdb05x1c){_0xdb05x1e= _0xdb05x1c;_0xdb05x16= 200}else {_0xdb05x16= 206};_0xdb05x15[_0xd2c6[29]](_0xdb05x16);logger[_0xd2c6[24]](_0xd2c6[22],_0xdb05x17,_0xdb05x16,_0xd2c6[36]);logger[_0xd2c6[26]](_0xd2c6[25],_0xdb05x17,_0xdb05x16,_0xd2c6[30],JSON[_0xd2c6[31]](_0xdb05x18));return _0xdb05x15[_0xd2c6[40]](_0xd2c6[37],_0xdb05x1d+ _0xd2c6[38]+ _0xdb05x1e+ _0xd2c6[39]+ _0xdb05x1c)[_0xd2c6[32]](_0xdb05x18)};return null}}function patchUpdates(_0xdb05x20){return function(_0xdb05x18){try{jsonpatch[_0xd2c6[41]](_0xdb05x18,_0xdb05x20,true)}catch(err){return BPromise[_0xd2c6[42]](err)};return _0xdb05x18[_0xd2c6[43]]()}}function saveUpdates(_0xdb05x22,_0xdb05x16,_0xdb05x17){return function(_0xdb05x18){if(_0xdb05x18){return _0xdb05x18[_0xd2c6[46]](_0xdb05x22)[_0xd2c6[45]](function(_0xdb05x23){logger[_0xd2c6[24]](_0xd2c6[22],_0xdb05x17,_0xdb05x16,_0xd2c6[44]);logger[_0xd2c6[26]](_0xd2c6[25],_0xdb05x17,_0xdb05x16,_0xd2c6[44],JSON[_0xd2c6[31]](_0xdb05x18));return _0xdb05x23})};return null}}function removeEntity(_0xdb05x15,_0xdb05x16,_0xdb05x17){return function(_0xdb05x18){if(_0xdb05x18){return _0xdb05x18[_0xd2c6[48]]()[_0xd2c6[45]](function(){logger[_0xd2c6[24]](_0xd2c6[22],_0xdb05x17,_0xdb05x16,_0xd2c6[47]);logger[_0xd2c6[26]](_0xd2c6[25],_0xdb05x17,_0xdb05x16,_0xd2c6[47],JSON[_0xd2c6[31]](_0xdb05x18));_0xdb05x15[_0xd2c6[29]](204)[_0xd2c6[28]]()})}}}function handleEntityNotFound(_0xdb05x15,_0xdb05x16,_0xdb05x17){return function(_0xdb05x18){if(!_0xdb05x18){logger[_0xd2c6[50]](_0xd2c6[22],_0xdb05x17,404,_0xd2c6[49]);_0xdb05x15[_0xd2c6[29]](404)[_0xd2c6[28]]();return null};return _0xdb05x18}}function handleError(_0xdb05x15,_0xdb05x16,_0xdb05x17){_0xdb05x16= _0xdb05x16|| 500;return function(_0xdb05x27){logger[_0xd2c6[50]](_0xd2c6[22],_0xdb05x17,_0xdb05x16,JSON[_0xd2c6[31]](_0xdb05x27));delete _0xdb05x27[_0xd2c6[51]];_0xdb05x15[_0xd2c6[29]](_0xdb05x16)[_0xd2c6[52]](_0xdb05x27)}}exports[_0xd2c6[53]]= function(_0xdb05x28,_0xdb05x15){var _0xdb05x1b={},_0xdb05x29={};_0xdb05x29[_0xd2c6[54]]= _[_0xd2c6[57]](db[_0xd2c6[56]][_0xd2c6[55]]);_0xdb05x29[_0xd2c6[58]]= _[_0xd2c6[57]](_0xdb05x28[_0xd2c6[58]]);_0xdb05x29[_0xd2c6[59]]= _[_0xd2c6[60]](_0xdb05x29[_0xd2c6[54]],_0xdb05x29[_0xd2c6[58]]);_0xdb05x1b[_0xd2c6[61]]= _[_0xd2c6[60]](_0xdb05x29[_0xd2c6[54]],qs[_0xd2c6[62]](_0xdb05x28[_0xd2c6[58]][_0xd2c6[62]]));_0xdb05x1b[_0xd2c6[61]]= (_0xdb05x1b[_0xd2c6[61]][_0xd2c6[63]])?_0xdb05x1b[_0xd2c6[61]]:_0xdb05x29[_0xd2c6[54]];if(!_0xdb05x28[_0xd2c6[58]][_0xd2c6[65]](_0xd2c6[64])){_0xdb05x1b[_0xd2c6[35]]= qs[_0xd2c6[35]](_0xdb05x28[_0xd2c6[58]][_0xd2c6[35]]);_0xdb05x1b[_0xd2c6[34]]= qs[_0xd2c6[34]](_0xdb05x28[_0xd2c6[58]][_0xd2c6[34]])};_0xdb05x1b[_0xd2c6[66]]= qs[_0xd2c6[67]](_0xdb05x28[_0xd2c6[58]][_0xd2c6[67]]);_0xdb05x1b[_0xd2c6[68]]= qs[_0xd2c6[59]](_[_0xd2c6[69]](_0xdb05x28[_0xd2c6[58]],_0xdb05x29[_0xd2c6[59]]));if(_0xdb05x28[_0xd2c6[58]][_0xd2c6[70]]){_0xdb05x1b[_0xd2c6[68]]= _[_0xd2c6[73]](_0xdb05x1b[_0xd2c6[68]],{$or:_[_0xd2c6[72]](_0xdb05x1b[_0xd2c6[61]],function(_0xdb05x2a){var _0xdb05x2b={};_0xdb05x2b[_0xdb05x2a]= {$like:_0xd2c6[71]+ _0xdb05x28[_0xd2c6[58]][_0xd2c6[70]]+ _0xd2c6[71]};return _0xdb05x2b})})};_0xdb05x1b= _[_0xd2c6[73]]({},_0xdb05x1b,_0xdb05x28[_0xd2c6[74]]);return db[_0xd2c6[56]][_0xd2c6[76]](_0xdb05x1b)[_0xd2c6[45]](respondWithFilteredResult(_0xdb05x15,_0xdb05x1b,_0xd2c6[53]))[_0xd2c6[75]](handleError(_0xdb05x15,null,_0xd2c6[53]))};exports[_0xd2c6[77]]= function(_0xdb05x28,_0xdb05x15){var _0xdb05x1b={raw:true,where:{id:_0xdb05x28[_0xd2c6[79]][_0xd2c6[78]]}},_0xdb05x29={};_0xdb05x29[_0xd2c6[54]]= _[_0xd2c6[57]](db[_0xd2c6[56]][_0xd2c6[55]]);_0xdb05x29[_0xd2c6[58]]= _[_0xd2c6[57]](_0xdb05x28[_0xd2c6[58]]);_0xdb05x29[_0xd2c6[59]]= _[_0xd2c6[60]](_0xdb05x29[_0xd2c6[54]],_0xdb05x29[_0xd2c6[58]]);_0xdb05x1b[_0xd2c6[61]]= _[_0xd2c6[60]](_0xdb05x29[_0xd2c6[54]],qs[_0xd2c6[62]](_0xdb05x28[_0xd2c6[58]][_0xd2c6[62]]));_0xdb05x1b[_0xd2c6[61]]= (_0xdb05x1b[_0xd2c6[61]][_0xd2c6[63]])?_0xdb05x1b[_0xd2c6[61]]:_0xdb05x29[_0xd2c6[54]];_0xdb05x1b= _[_0xd2c6[73]]({},_0xdb05x1b,_0xdb05x28[_0xd2c6[74]]);return db[_0xd2c6[56]][_0xd2c6[80]](_0xdb05x1b)[_0xd2c6[45]](handleEntityNotFound(_0xdb05x15,null,_0xd2c6[77]))[_0xd2c6[45]](respondWithResult(_0xdb05x15,null,_0xd2c6[77]))[_0xd2c6[75]](handleError(_0xdb05x15,null,_0xd2c6[77]))};exports[_0xd2c6[81]]= function(_0xdb05x28,_0xdb05x15){return db[_0xd2c6[56]][_0xd2c6[81]](_0xdb05x28[_0xd2c6[82]],{})[_0xd2c6[45]](respondWithResult(_0xdb05x15,201,_0xd2c6[81]))[_0xd2c6[75]](handleError(_0xdb05x15,null,_0xd2c6[81]))};exports[_0xd2c6[46]]= function(_0xdb05x28,_0xdb05x15){if(_0xdb05x28[_0xd2c6[82]][_0xd2c6[78]]){delete _0xdb05x28[_0xd2c6[82]][_0xd2c6[78]]};return db[_0xd2c6[56]][_0xd2c6[80]]({where:{id:_0xdb05x28[_0xd2c6[79]][_0xd2c6[78]]}})[_0xd2c6[45]](handleEntityNotFound(_0xdb05x15,null,_0xd2c6[46]))[_0xd2c6[45]](saveUpdates(_0xdb05x28[_0xd2c6[82]],null,_0xd2c6[46]))[_0xd2c6[45]](respondWithResult(_0xdb05x15,null,_0xd2c6[46]))[_0xd2c6[75]](handleError(_0xdb05x15,null,_0xd2c6[46]))};exports[_0xd2c6[48]]= function(_0xdb05x28,_0xdb05x15){return db[_0xd2c6[56]][_0xd2c6[80]]({where:{id:_0xdb05x28[_0xd2c6[79]][_0xd2c6[78]]}})[_0xd2c6[45]](handleEntityNotFound(_0xdb05x15,null,_0xd2c6[48]))[_0xd2c6[45]](removeEntity(_0xdb05x15,null,_0xd2c6[48]))[_0xd2c6[75]](handleError(_0xdb05x15,null,_0xd2c6[48]))}
\ No newline at end of file
+var _0x564f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x564f[0];var jsonpatch=require(_0x564f[1]);var rp=require(_0x564f[2]);var moment=require(_0x564f[3]);var BPromise=require(_0x564f[4]);var util=require(_0x564f[5]);var path=require(_0x564f[6]);var sox=require(_0x564f[7]);var ejs=require(_0x564f[8]);var fs=require(_0x564f[9]);var _=require(_0x564f[10]);var squel=require(_0x564f[11]);var crypto=require(_0x564f[12]);var jsforce=require(_0x564f[13]);var toCsv=require(_0x564f[14]);var qs=require(_0x564f[15]);var logger=require(_0x564f[17])(_0x564f[16]);var utils=require(_0x564f[18]);var config=require(_0x564f[19]);var db=require(_0x564f[21])[_0x564f[20]];function respondWithStatusCode(_0xbb95x15,_0xbb95x16,_0xbb95x17){_0xbb95x16= _0xbb95x16|| 204;return function(_0xbb95x18){if(_0xbb95x18){logger[_0x564f[24]](_0x564f[22],_0xbb95x17,_0xbb95x16,_0x564f[23]);logger[_0x564f[26]](_0x564f[25],_0xbb95x17,_0xbb95x16,_0x564f[23]);return _0xbb95x15[_0x564f[27]](_0xbb95x16)};return _0xbb95x15[_0x564f[29]](304)[_0x564f[28]]()}}function respondWithResult(_0xbb95x15,_0xbb95x16,_0xbb95x17){_0xbb95x16= _0xbb95x16|| 200;return function(_0xbb95x18){if(_0xbb95x18){logger[_0x564f[24]](_0x564f[22],_0xbb95x17,_0xbb95x16,_0x564f[30]);logger[_0x564f[26]](_0x564f[25],_0xbb95x17,_0xbb95x16,_0x564f[30],JSON[_0x564f[31]](_0xbb95x18));return _0xbb95x15[_0x564f[29]](_0xbb95x16)[_0x564f[32]](_0xbb95x18)};return _0xbb95x15[_0x564f[29]](304)[_0x564f[28]]()}}function respondWithFilteredResult(_0xbb95x15,_0xbb95x1b,_0xbb95x17){return function(_0xbb95x18){if(_0xbb95x18){var _0xbb95x1c=_0xbb95x18[_0x564f[33]],_0xbb95x1d=_0xbb95x1b[_0x564f[34]],_0xbb95x1e=_0xbb95x1b[_0x564f[34]]+ _0xbb95x1b[_0x564f[35]],_0xbb95x16;if(_0xbb95x1e>= _0xbb95x1c){_0xbb95x1e= _0xbb95x1c;_0xbb95x16= 200}else {_0xbb95x16= 206};_0xbb95x15[_0x564f[29]](_0xbb95x16);logger[_0x564f[24]](_0x564f[22],_0xbb95x17,_0xbb95x16,_0x564f[36]);logger[_0x564f[26]](_0x564f[25],_0xbb95x17,_0xbb95x16,_0x564f[30],JSON[_0x564f[31]](_0xbb95x18));return _0xbb95x15[_0x564f[40]](_0x564f[37],_0xbb95x1d+ _0x564f[38]+ _0xbb95x1e+ _0x564f[39]+ _0xbb95x1c)[_0x564f[32]](_0xbb95x18)};return null}}function patchUpdates(_0xbb95x20){return function(_0xbb95x18){try{jsonpatch[_0x564f[41]](_0xbb95x18,_0xbb95x20,true)}catch(err){return BPromise[_0x564f[42]](err)};return _0xbb95x18[_0x564f[43]]()}}function saveUpdates(_0xbb95x22,_0xbb95x16,_0xbb95x17){return function(_0xbb95x18){if(_0xbb95x18){return _0xbb95x18[_0x564f[46]](_0xbb95x22)[_0x564f[45]](function(_0xbb95x23){logger[_0x564f[24]](_0x564f[22],_0xbb95x17,_0xbb95x16,_0x564f[44]);logger[_0x564f[26]](_0x564f[25],_0xbb95x17,_0xbb95x16,_0x564f[44],JSON[_0x564f[31]](_0xbb95x18));return _0xbb95x23})};return null}}function removeEntity(_0xbb95x15,_0xbb95x16,_0xbb95x17){return function(_0xbb95x18){if(_0xbb95x18){return _0xbb95x18[_0x564f[48]]()[_0x564f[45]](function(){logger[_0x564f[24]](_0x564f[22],_0xbb95x17,_0xbb95x16,_0x564f[47]);logger[_0x564f[26]](_0x564f[25],_0xbb95x17,_0xbb95x16,_0x564f[47],JSON[_0x564f[31]](_0xbb95x18));_0xbb95x15[_0x564f[29]](204)[_0x564f[28]]()})}}}function handleEntityNotFound(_0xbb95x15,_0xbb95x16,_0xbb95x17){return function(_0xbb95x18){if(!_0xbb95x18){logger[_0x564f[50]](_0x564f[22],_0xbb95x17,404,_0x564f[49]);_0xbb95x15[_0x564f[29]](404)[_0x564f[28]]();return null};return _0xbb95x18}}function handleError(_0xbb95x15,_0xbb95x16,_0xbb95x17){_0xbb95x16= _0xbb95x16|| 500;return function(_0xbb95x27){logger[_0x564f[50]](_0x564f[22],_0xbb95x17,_0xbb95x16,JSON[_0x564f[31]](_0xbb95x27));delete _0xbb95x27[_0x564f[51]];_0xbb95x15[_0x564f[29]](_0xbb95x16)[_0x564f[52]](_0xbb95x27)}}exports[_0x564f[53]]= function(_0xbb95x28,_0xbb95x15){var _0xbb95x1b={},_0xbb95x29={};_0xbb95x29[_0x564f[54]]= _[_0x564f[57]](db[_0x564f[56]][_0x564f[55]]);_0xbb95x29[_0x564f[58]]= _[_0x564f[57]](_0xbb95x28[_0x564f[58]]);_0xbb95x29[_0x564f[59]]= _[_0x564f[60]](_0xbb95x29[_0x564f[54]],_0xbb95x29[_0x564f[58]]);_0xbb95x1b[_0x564f[61]]= _[_0x564f[60]](_0xbb95x29[_0x564f[54]],qs[_0x564f[62]](_0xbb95x28[_0x564f[58]][_0x564f[62]]));_0xbb95x1b[_0x564f[61]]= (_0xbb95x1b[_0x564f[61]][_0x564f[63]])?_0xbb95x1b[_0x564f[61]]:_0xbb95x29[_0x564f[54]];if(!_0xbb95x28[_0x564f[58]][_0x564f[65]](_0x564f[64])){_0xbb95x1b[_0x564f[35]]= qs[_0x564f[35]](_0xbb95x28[_0x564f[58]][_0x564f[35]]);_0xbb95x1b[_0x564f[34]]= qs[_0x564f[34]](_0xbb95x28[_0x564f[58]][_0x564f[34]])};_0xbb95x1b[_0x564f[66]]= qs[_0x564f[67]](_0xbb95x28[_0x564f[58]][_0x564f[67]]);_0xbb95x1b[_0x564f[68]]= qs[_0x564f[59]](_[_0x564f[69]](_0xbb95x28[_0x564f[58]],_0xbb95x29[_0x564f[59]]));if(_0xbb95x28[_0x564f[58]][_0x564f[70]]){_0xbb95x1b[_0x564f[68]]= _[_0x564f[73]](_0xbb95x1b[_0x564f[68]],{$or:_[_0x564f[72]](_0xbb95x1b[_0x564f[61]],function(_0xbb95x2a){var _0xbb95x2b={};_0xbb95x2b[_0xbb95x2a]= {$like:_0x564f[71]+ _0xbb95x28[_0x564f[58]][_0x564f[70]]+ _0x564f[71]};return _0xbb95x2b})})};_0xbb95x1b= _[_0x564f[73]]({},_0xbb95x1b,_0xbb95x28[_0x564f[74]]);return db[_0x564f[56]][_0x564f[76]](_0xbb95x1b)[_0x564f[45]](respondWithFilteredResult(_0xbb95x15,_0xbb95x1b,_0x564f[53]))[_0x564f[75]](handleError(_0xbb95x15,null,_0x564f[53]))};exports[_0x564f[77]]= function(_0xbb95x28,_0xbb95x15){var _0xbb95x1b={raw:true,where:{id:_0xbb95x28[_0x564f[79]][_0x564f[78]]}},_0xbb95x29={};_0xbb95x29[_0x564f[54]]= _[_0x564f[57]](db[_0x564f[56]][_0x564f[55]]);_0xbb95x29[_0x564f[58]]= _[_0x564f[57]](_0xbb95x28[_0x564f[58]]);_0xbb95x29[_0x564f[59]]= _[_0x564f[60]](_0xbb95x29[_0x564f[54]],_0xbb95x29[_0x564f[58]]);_0xbb95x1b[_0x564f[61]]= _[_0x564f[60]](_0xbb95x29[_0x564f[54]],qs[_0x564f[62]](_0xbb95x28[_0x564f[58]][_0x564f[62]]));_0xbb95x1b[_0x564f[61]]= (_0xbb95x1b[_0x564f[61]][_0x564f[63]])?_0xbb95x1b[_0x564f[61]]:_0xbb95x29[_0x564f[54]];_0xbb95x1b= _[_0x564f[73]]({},_0xbb95x1b,_0xbb95x28[_0x564f[74]]);return db[_0x564f[56]][_0x564f[80]](_0xbb95x1b)[_0x564f[45]](handleEntityNotFound(_0xbb95x15,null,_0x564f[77]))[_0x564f[45]](respondWithResult(_0xbb95x15,null,_0x564f[77]))[_0x564f[75]](handleError(_0xbb95x15,null,_0x564f[77]))};exports[_0x564f[81]]= function(_0xbb95x28,_0xbb95x15){return db[_0x564f[56]][_0x564f[81]](_0xbb95x28[_0x564f[82]],{})[_0x564f[45]](respondWithResult(_0xbb95x15,201,_0x564f[81]))[_0x564f[75]](handleError(_0xbb95x15,null,_0x564f[81]))};exports[_0x564f[46]]= function(_0xbb95x28,_0xbb95x15){if(_0xbb95x28[_0x564f[82]][_0x564f[78]]){delete _0xbb95x28[_0x564f[82]][_0x564f[78]]};return db[_0x564f[56]][_0x564f[80]]({where:{id:_0xbb95x28[_0x564f[79]][_0x564f[78]]}})[_0x564f[45]](handleEntityNotFound(_0xbb95x15,null,_0x564f[46]))[_0x564f[45]](saveUpdates(_0xbb95x28[_0x564f[82]],null,_0x564f[46]))[_0x564f[45]](respondWithResult(_0xbb95x15,null,_0x564f[46]))[_0x564f[75]](handleError(_0xbb95x15,null,_0x564f[46]))};exports[_0x564f[48]]= function(_0xbb95x28,_0xbb95x15){return db[_0x564f[56]][_0x564f[80]]({where:{id:_0xbb95x28[_0x564f[79]][_0x564f[78]]}})[_0x564f[45]](handleEntityNotFound(_0xbb95x15,null,_0x564f[48]))[_0x564f[45]](removeEntity(_0xbb95x15,null,_0x564f[48]))[_0x564f[75]](handleError(_0xbb95x15,null,_0x564f[48]))}
\ No newline at end of file
index f6303e5..a415781 100644 (file)
@@ -1 +1 @@
-var _0x5453=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x64\x65\x66\x69\x6E\x65"];_0x5453[0];var _=require(_0x5453[1]);var util=require(_0x5453[2]);var logger=require(_0x5453[4])(_0x5453[3]);var attributes=require(_0x5453[5]);module[_0x5453[6]]= function(_0x65aax5,_0x65aax6){return _0x65aax5[_0x5453[9]](_0x5453[7],attributes,{tableName:_0x5453[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x83ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x64\x65\x66\x69\x6E\x65"];_0x83ca[0];var _=require(_0x83ca[1]);var util=require(_0x83ca[2]);var logger=require(_0x83ca[4])(_0x83ca[3]);var attributes=require(_0x83ca[5]);module[_0x83ca[6]]= function(_0xfe13x5,_0xfe13x6){return _0xfe13x5[_0x83ca[9]](_0x83ca[7],attributes,{tableName:_0x83ca[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 82a06c9..84ac822 100644 (file)
@@ -1 +1 @@
-var _0x690b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x690b[0];var _=require(_0x690b[1]);var util=require(_0x690b[2]);var moment=require(_0x690b[3]);var BPromise=require(_0x690b[4]);var db=require(_0x690b[6])[_0x690b[5]];var utils=require(_0x690b[7]);var logger=require(_0x690b[9])(_0x690b[8]);var jayson=require(_0x690b[10]);var client=jayson[_0x690b[12]][_0x690b[11]]({port:9002});function respondWithRpcPromise(_0x5d42xb,_0x5d42xc,_0x5d42xd){return  new BPromise(function(_0x5d42xe,_0x5d42xf){return client[_0x690b[25]](_0x5d42xb,_0x5d42xd)[_0x690b[24]](function(_0x5d42x11){logger[_0x690b[17]](_0x690b[13],_0x5d42xc,_0x690b[16]);logger[_0x690b[20]](_0x690b[18],_0x5d42xc,_0x690b[16],JSON[_0x690b[19]](_0x5d42x11));if(_0x5d42x11[_0x690b[14]]){if(_0x5d42x11[_0x690b[14]][_0x690b[21]]=== 500){logger[_0x690b[14]](_0x690b[13],_0x5d42xc,_0x5d42x11[_0x690b[14]][_0x690b[22]]);return _0x5d42xf(_0x5d42x11[_0x690b[14]][_0x690b[22]])};logger[_0x690b[14]](_0x690b[13],_0x5d42xc,_0x5d42x11[_0x690b[14]][_0x690b[22]]);return _0x5d42xe(_0x5d42x11[_0x690b[14]][_0x690b[22]])}else {logger[_0x690b[17]](_0x690b[13],_0x5d42xc,_0x690b[16]);_0x5d42xe(_0x5d42x11[_0x690b[23]][_0x690b[22]])}})[_0x690b[15]](function(_0x5d42x10){logger[_0x690b[14]](_0x690b[13],_0x5d42xc,_0x5d42x10);_0x5d42xf(_0x5d42x10)})})}
\ No newline at end of file
+var _0x64b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x64b4[0];var _=require(_0x64b4[1]);var util=require(_0x64b4[2]);var moment=require(_0x64b4[3]);var BPromise=require(_0x64b4[4]);var db=require(_0x64b4[6])[_0x64b4[5]];var utils=require(_0x64b4[7]);var logger=require(_0x64b4[9])(_0x64b4[8]);var jayson=require(_0x64b4[10]);var client=jayson[_0x64b4[12]][_0x64b4[11]]({port:9002});function respondWithRpcPromise(_0xf539xb,_0xf539xc,_0xf539xd){return  new BPromise(function(_0xf539xe,_0xf539xf){return client[_0x64b4[25]](_0xf539xb,_0xf539xd)[_0x64b4[24]](function(_0xf539x11){logger[_0x64b4[17]](_0x64b4[13],_0xf539xc,_0x64b4[16]);logger[_0x64b4[20]](_0x64b4[18],_0xf539xc,_0x64b4[16],JSON[_0x64b4[19]](_0xf539x11));if(_0xf539x11[_0x64b4[14]]){if(_0xf539x11[_0x64b4[14]][_0x64b4[21]]=== 500){logger[_0x64b4[14]](_0x64b4[13],_0xf539xc,_0xf539x11[_0x64b4[14]][_0x64b4[22]]);return _0xf539xf(_0xf539x11[_0x64b4[14]][_0x64b4[22]])};logger[_0x64b4[14]](_0x64b4[13],_0xf539xc,_0xf539x11[_0x64b4[14]][_0x64b4[22]]);return _0xf539xe(_0xf539x11[_0x64b4[14]][_0x64b4[22]])}else {logger[_0x64b4[17]](_0x64b4[13],_0xf539xc,_0x64b4[16]);_0xf539xe(_0xf539x11[_0x64b4[23]][_0x64b4[22]])}})[_0x64b4[15]](function(_0xf539x10){logger[_0x64b4[14]](_0x64b4[13],_0xf539xc,_0xf539x10);_0xf539xf(_0xf539x10)})})}
\ No newline at end of file
index caeb0c0..feffa08 100644 (file)
@@ -1 +1 @@
-var _0xec40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xec40[0];var multer=require(_0xec40[1]);var util=require(_0xec40[2]);var path=require(_0xec40[3]);var express=require(_0xec40[4]);var router=express.Router();var auth=require(_0xec40[5]);var config=require(_0xec40[6]);var controller=require(_0xec40[7]);router[_0xec40[11]](_0xec40[8],auth[_0xec40[9]](),controller[_0xec40[10]]);router[_0xec40[11]](_0xec40[12],auth[_0xec40[9]](),controller[_0xec40[13]]);router[_0xec40[11]](_0xec40[14],auth[_0xec40[9]](),controller[_0xec40[15]]);router[_0xec40[17]](_0xec40[8],auth[_0xec40[9]](),controller[_0xec40[16]]);router[_0xec40[19]](_0xec40[14],auth[_0xec40[9]](),controller[_0xec40[18]]);router[_0xec40[21]](_0xec40[14],auth[_0xec40[9]](),controller[_0xec40[20]]);module[_0xec40[22]]= router
\ No newline at end of file
+var _0x47f3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x47f3[0];var multer=require(_0x47f3[1]);var util=require(_0x47f3[2]);var path=require(_0x47f3[3]);var express=require(_0x47f3[4]);var router=express.Router();var auth=require(_0x47f3[5]);var config=require(_0x47f3[6]);var controller=require(_0x47f3[7]);router[_0x47f3[11]](_0x47f3[8],auth[_0x47f3[9]](),controller[_0x47f3[10]]);router[_0x47f3[11]](_0x47f3[12],auth[_0x47f3[9]](),controller[_0x47f3[13]]);router[_0x47f3[11]](_0x47f3[14],auth[_0x47f3[9]](),controller[_0x47f3[15]]);router[_0x47f3[17]](_0x47f3[8],auth[_0x47f3[9]](),controller[_0x47f3[16]]);router[_0x47f3[19]](_0x47f3[14],auth[_0x47f3[9]](),controller[_0x47f3[18]]);router[_0x47f3[21]](_0x47f3[14],auth[_0x47f3[9]](),controller[_0x47f3[20]]);module[_0x47f3[22]]= router
\ No newline at end of file
index 9a61fef..f602b78 100644 (file)
@@ -1 +1 @@
-var _0x8c03=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x8c03[0];var Sequelize=require(_0x8c03[1]);module[_0x8c03[2]]= {uniqueid:{type:Sequelize[_0x8c03[3]]},accountid:{type:Sequelize[_0x8c03[3]]},accountname:{type:Sequelize[_0x8c03[3]]},application:{type:Sequelize[_0x8c03[3]]},memberid:{type:Sequelize[_0x8c03[3]]},membername:{type:Sequelize[_0x8c03[3]]},queue:{type:Sequelize[_0x8c03[4]]},queuename:{type:Sequelize[_0x8c03[3]]},roomid:{type:Sequelize[_0x8c03[4]]},fidelity:{type:Sequelize[_0x8c03[4]],defaultValue:0},joinAt:{type:Sequelize[_0x8c03[5]]},leaveAt:{type:Sequelize[_0x8c03[5]]},completeAt:{type:Sequelize[_0x8c03[5]]},complete:{type:Sequelize[_0x8c03[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x8c03[7])},timeout:{type:Sequelize[_0x8c03[6]],defaultValue:false},timeslot:{type:Sequelize[_0x8c03[4]]}}
\ No newline at end of file
+var _0x2224=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x2224[0];var Sequelize=require(_0x2224[1]);module[_0x2224[2]]= {uniqueid:{type:Sequelize[_0x2224[3]]},accountid:{type:Sequelize[_0x2224[3]]},accountname:{type:Sequelize[_0x2224[3]]},application:{type:Sequelize[_0x2224[3]]},memberid:{type:Sequelize[_0x2224[3]]},membername:{type:Sequelize[_0x2224[3]]},queue:{type:Sequelize[_0x2224[4]]},queuename:{type:Sequelize[_0x2224[3]]},roomid:{type:Sequelize[_0x2224[4]]},fidelity:{type:Sequelize[_0x2224[4]],defaultValue:0},joinAt:{type:Sequelize[_0x2224[5]]},leaveAt:{type:Sequelize[_0x2224[5]]},completeAt:{type:Sequelize[_0x2224[5]]},complete:{type:Sequelize[_0x2224[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x2224[7])},timeout:{type:Sequelize[_0x2224[6]],defaultValue:false},timeslot:{type:Sequelize[_0x2224[4]]}}
\ No newline at end of file
index a211b09..5e7697f 100644 (file)
@@ -1 +1 @@
-var _0xe6c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xe6c1[0];var jsonpatch=require(_0xe6c1[1]);var rp=require(_0xe6c1[2]);var moment=require(_0xe6c1[3]);var BPromise=require(_0xe6c1[4]);var util=require(_0xe6c1[5]);var path=require(_0xe6c1[6]);var sox=require(_0xe6c1[7]);var ejs=require(_0xe6c1[8]);var fs=require(_0xe6c1[9]);var _=require(_0xe6c1[10]);var squel=require(_0xe6c1[11]);var crypto=require(_0xe6c1[12]);var jsforce=require(_0xe6c1[13]);var toCsv=require(_0xe6c1[14]);var qs=require(_0xe6c1[15]);var logger=require(_0xe6c1[17])(_0xe6c1[16]);var utils=require(_0xe6c1[18]);var config=require(_0xe6c1[19]);var db=require(_0xe6c1[21])[_0xe6c1[20]];function respondWithStatusCode(_0x5957x15,_0x5957x16,_0x5957x17){_0x5957x16= _0x5957x16|| 204;return function(_0x5957x18){if(_0x5957x18){logger[_0xe6c1[24]](_0xe6c1[22],_0x5957x17,_0x5957x16,_0xe6c1[23]);logger[_0xe6c1[26]](_0xe6c1[25],_0x5957x17,_0x5957x16,_0xe6c1[23]);return _0x5957x15[_0xe6c1[27]](_0x5957x16)};return _0x5957x15[_0xe6c1[29]](304)[_0xe6c1[28]]()}}function respondWithResult(_0x5957x15,_0x5957x16,_0x5957x17){_0x5957x16= _0x5957x16|| 200;return function(_0x5957x18){if(_0x5957x18){logger[_0xe6c1[24]](_0xe6c1[22],_0x5957x17,_0x5957x16,_0xe6c1[30]);logger[_0xe6c1[26]](_0xe6c1[25],_0x5957x17,_0x5957x16,_0xe6c1[30],JSON[_0xe6c1[31]](_0x5957x18));return _0x5957x15[_0xe6c1[29]](_0x5957x16)[_0xe6c1[32]](_0x5957x18)};return _0x5957x15[_0xe6c1[29]](304)[_0xe6c1[28]]()}}function respondWithFilteredResult(_0x5957x15,_0x5957x1b,_0x5957x17){return function(_0x5957x18){if(_0x5957x18){var _0x5957x1c=_0x5957x18[_0xe6c1[33]],_0x5957x1d=_0x5957x1b[_0xe6c1[34]],_0x5957x1e=_0x5957x1b[_0xe6c1[34]]+ _0x5957x1b[_0xe6c1[35]],_0x5957x16;if(_0x5957x1e>= _0x5957x1c){_0x5957x1e= _0x5957x1c;_0x5957x16= 200}else {_0x5957x16= 206};_0x5957x15[_0xe6c1[29]](_0x5957x16);logger[_0xe6c1[24]](_0xe6c1[22],_0x5957x17,_0x5957x16,_0xe6c1[36]);logger[_0xe6c1[26]](_0xe6c1[25],_0x5957x17,_0x5957x16,_0xe6c1[30],JSON[_0xe6c1[31]](_0x5957x18));return _0x5957x15[_0xe6c1[40]](_0xe6c1[37],_0x5957x1d+ _0xe6c1[38]+ _0x5957x1e+ _0xe6c1[39]+ _0x5957x1c)[_0xe6c1[32]](_0x5957x18)};return null}}function patchUpdates(_0x5957x20){return function(_0x5957x18){try{jsonpatch[_0xe6c1[41]](_0x5957x18,_0x5957x20,true)}catch(err){return BPromise[_0xe6c1[42]](err)};return _0x5957x18[_0xe6c1[43]]()}}function saveUpdates(_0x5957x22,_0x5957x16,_0x5957x17){return function(_0x5957x18){if(_0x5957x18){return _0x5957x18[_0xe6c1[46]](_0x5957x22)[_0xe6c1[45]](function(_0x5957x23){logger[_0xe6c1[24]](_0xe6c1[22],_0x5957x17,_0x5957x16,_0xe6c1[44]);logger[_0xe6c1[26]](_0xe6c1[25],_0x5957x17,_0x5957x16,_0xe6c1[44],JSON[_0xe6c1[31]](_0x5957x18));return _0x5957x23})};return null}}function removeEntity(_0x5957x15,_0x5957x16,_0x5957x17){return function(_0x5957x18){if(_0x5957x18){return _0x5957x18[_0xe6c1[48]]()[_0xe6c1[45]](function(){logger[_0xe6c1[24]](_0xe6c1[22],_0x5957x17,_0x5957x16,_0xe6c1[47]);logger[_0xe6c1[26]](_0xe6c1[25],_0x5957x17,_0x5957x16,_0xe6c1[47],JSON[_0xe6c1[31]](_0x5957x18));_0x5957x15[_0xe6c1[29]](204)[_0xe6c1[28]]()})}}}function handleEntityNotFound(_0x5957x15,_0x5957x16,_0x5957x17){return function(_0x5957x18){if(!_0x5957x18){logger[_0xe6c1[50]](_0xe6c1[22],_0x5957x17,404,_0xe6c1[49]);_0x5957x15[_0xe6c1[29]](404)[_0xe6c1[28]]();return null};return _0x5957x18}}function handleError(_0x5957x15,_0x5957x16,_0x5957x17){_0x5957x16= _0x5957x16|| 500;return function(_0x5957x27){logger[_0xe6c1[50]](_0xe6c1[22],_0x5957x17,_0x5957x16,JSON[_0xe6c1[31]](_0x5957x27));delete _0x5957x27[_0xe6c1[51]];_0x5957x15[_0xe6c1[29]](_0x5957x16)[_0xe6c1[52]](_0x5957x27)}}exports[_0xe6c1[53]]= function(_0x5957x28,_0x5957x15){var _0x5957x1b={},_0x5957x29={};_0x5957x29[_0xe6c1[54]]= _[_0xe6c1[57]](db[_0xe6c1[56]][_0xe6c1[55]]);_0x5957x29[_0xe6c1[58]]= _[_0xe6c1[57]](_0x5957x28[_0xe6c1[58]]);_0x5957x29[_0xe6c1[59]]= _[_0xe6c1[60]](_0x5957x29[_0xe6c1[54]],_0x5957x29[_0xe6c1[58]]);_0x5957x1b[_0xe6c1[61]]= _[_0xe6c1[60]](_0x5957x29[_0xe6c1[54]],qs[_0xe6c1[62]](_0x5957x28[_0xe6c1[58]][_0xe6c1[62]]));_0x5957x1b[_0xe6c1[61]]= (_0x5957x1b[_0xe6c1[61]][_0xe6c1[63]])?_0x5957x1b[_0xe6c1[61]]:_0x5957x29[_0xe6c1[54]];if(!_0x5957x28[_0xe6c1[58]][_0xe6c1[65]](_0xe6c1[64])){_0x5957x1b[_0xe6c1[35]]= qs[_0xe6c1[35]](_0x5957x28[_0xe6c1[58]][_0xe6c1[35]]);_0x5957x1b[_0xe6c1[34]]= qs[_0xe6c1[34]](_0x5957x28[_0xe6c1[58]][_0xe6c1[34]])};_0x5957x1b[_0xe6c1[66]]= qs[_0xe6c1[67]](_0x5957x28[_0xe6c1[58]][_0xe6c1[67]]);_0x5957x1b[_0xe6c1[68]]= qs[_0xe6c1[59]](_[_0xe6c1[69]](_0x5957x28[_0xe6c1[58]],_0x5957x29[_0xe6c1[59]]));if(_0x5957x28[_0xe6c1[58]][_0xe6c1[70]]){_0x5957x1b[_0xe6c1[68]]= _[_0xe6c1[73]](_0x5957x1b[_0xe6c1[68]],{$or:_[_0xe6c1[72]](_0x5957x1b[_0xe6c1[61]],function(_0x5957x2a){var _0x5957x2b={};_0x5957x2b[_0x5957x2a]= {$like:_0xe6c1[71]+ _0x5957x28[_0xe6c1[58]][_0xe6c1[70]]+ _0xe6c1[71]};return _0x5957x2b})})};_0x5957x1b= _[_0xe6c1[73]]({},_0x5957x1b,_0x5957x28[_0xe6c1[74]]);return db[_0xe6c1[56]][_0xe6c1[76]](_0x5957x1b)[_0xe6c1[45]](respondWithFilteredResult(_0x5957x15,_0x5957x1b,_0xe6c1[53]))[_0xe6c1[75]](handleError(_0x5957x15,null,_0xe6c1[53]))};exports[_0xe6c1[77]]= function(_0x5957x28,_0x5957x15){var _0x5957x1b={raw:false,where:{id:_0x5957x28[_0xe6c1[79]][_0xe6c1[78]]}},_0x5957x29={};_0x5957x29[_0xe6c1[54]]= _[_0xe6c1[57]](db[_0xe6c1[56]][_0xe6c1[55]]);_0x5957x29[_0xe6c1[58]]= _[_0xe6c1[57]](_0x5957x28[_0xe6c1[58]]);_0x5957x29[_0xe6c1[59]]= _[_0xe6c1[60]](_0x5957x29[_0xe6c1[54]],_0x5957x29[_0xe6c1[58]]);_0x5957x1b[_0xe6c1[61]]= _[_0xe6c1[60]](_0x5957x29[_0xe6c1[54]],qs[_0xe6c1[62]](_0x5957x28[_0xe6c1[58]][_0xe6c1[62]]));_0x5957x1b[_0xe6c1[61]]= (_0x5957x1b[_0xe6c1[61]][_0xe6c1[63]])?_0x5957x1b[_0xe6c1[61]]:_0x5957x29[_0xe6c1[54]];_0x5957x1b= _[_0xe6c1[73]]({},_0x5957x1b,_0x5957x28[_0xe6c1[74]]);return db[_0xe6c1[56]][_0xe6c1[80]](_0x5957x1b)[_0xe6c1[45]](handleEntityNotFound(_0x5957x15,null,_0xe6c1[77]))[_0xe6c1[45]](respondWithResult(_0x5957x15,null,_0xe6c1[77]))[_0xe6c1[75]](handleError(_0x5957x15,null,_0xe6c1[77]))};exports[_0xe6c1[81]]= function(_0x5957x28,_0x5957x15){return db[_0xe6c1[56]][_0xe6c1[81]](_0x5957x28[_0xe6c1[82]],{})[_0xe6c1[45]](respondWithResult(_0x5957x15,201,_0xe6c1[81]))[_0xe6c1[75]](handleError(_0x5957x15,null,_0xe6c1[81]))};exports[_0xe6c1[46]]= function(_0x5957x28,_0x5957x15){if(_0x5957x28[_0xe6c1[82]][_0xe6c1[78]]){delete _0x5957x28[_0xe6c1[82]][_0xe6c1[78]]};return db[_0xe6c1[56]][_0xe6c1[80]]({where:{id:_0x5957x28[_0xe6c1[79]][_0xe6c1[78]]}})[_0xe6c1[45]](handleEntityNotFound(_0x5957x15,null,_0xe6c1[46]))[_0xe6c1[45]](saveUpdates(_0x5957x28[_0xe6c1[82]],null,_0xe6c1[46]))[_0xe6c1[45]](respondWithResult(_0x5957x15,null,_0xe6c1[46]))[_0xe6c1[75]](handleError(_0x5957x15,null,_0xe6c1[46]))};exports[_0xe6c1[48]]= function(_0x5957x28,_0x5957x15){return db[_0xe6c1[56]][_0xe6c1[80]]({where:{id:_0x5957x28[_0xe6c1[79]][_0xe6c1[78]]}})[_0xe6c1[45]](handleEntityNotFound(_0x5957x15,null,_0xe6c1[48]))[_0xe6c1[45]](removeEntity(_0x5957x15,null,_0xe6c1[48]))[_0xe6c1[75]](handleError(_0x5957x15,null,_0xe6c1[48]))};exports[_0xe6c1[83]]= function(_0x5957x28,_0x5957x15){return db[_0xe6c1[56]][_0xe6c1[83]]()[_0xe6c1[45]](respondWithResult(_0x5957x15,null,_0xe6c1[83]))[_0xe6c1[75]](handleError(_0x5957x15,null,_0xe6c1[83]))}
\ No newline at end of file
+var _0xb0a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xb0a0[0];var jsonpatch=require(_0xb0a0[1]);var rp=require(_0xb0a0[2]);var moment=require(_0xb0a0[3]);var BPromise=require(_0xb0a0[4]);var util=require(_0xb0a0[5]);var path=require(_0xb0a0[6]);var sox=require(_0xb0a0[7]);var ejs=require(_0xb0a0[8]);var fs=require(_0xb0a0[9]);var _=require(_0xb0a0[10]);var squel=require(_0xb0a0[11]);var crypto=require(_0xb0a0[12]);var jsforce=require(_0xb0a0[13]);var toCsv=require(_0xb0a0[14]);var qs=require(_0xb0a0[15]);var logger=require(_0xb0a0[17])(_0xb0a0[16]);var utils=require(_0xb0a0[18]);var config=require(_0xb0a0[19]);var db=require(_0xb0a0[21])[_0xb0a0[20]];function respondWithStatusCode(_0xb81dx15,_0xb81dx16,_0xb81dx17){_0xb81dx16= _0xb81dx16|| 204;return function(_0xb81dx18){if(_0xb81dx18){logger[_0xb0a0[24]](_0xb0a0[22],_0xb81dx17,_0xb81dx16,_0xb0a0[23]);logger[_0xb0a0[26]](_0xb0a0[25],_0xb81dx17,_0xb81dx16,_0xb0a0[23]);return _0xb81dx15[_0xb0a0[27]](_0xb81dx16)};return _0xb81dx15[_0xb0a0[29]](304)[_0xb0a0[28]]()}}function respondWithResult(_0xb81dx15,_0xb81dx16,_0xb81dx17){_0xb81dx16= _0xb81dx16|| 200;return function(_0xb81dx18){if(_0xb81dx18){logger[_0xb0a0[24]](_0xb0a0[22],_0xb81dx17,_0xb81dx16,_0xb0a0[30]);logger[_0xb0a0[26]](_0xb0a0[25],_0xb81dx17,_0xb81dx16,_0xb0a0[30],JSON[_0xb0a0[31]](_0xb81dx18));return _0xb81dx15[_0xb0a0[29]](_0xb81dx16)[_0xb0a0[32]](_0xb81dx18)};return _0xb81dx15[_0xb0a0[29]](304)[_0xb0a0[28]]()}}function respondWithFilteredResult(_0xb81dx15,_0xb81dx1b,_0xb81dx17){return function(_0xb81dx18){if(_0xb81dx18){var _0xb81dx1c=_0xb81dx18[_0xb0a0[33]],_0xb81dx1d=_0xb81dx1b[_0xb0a0[34]],_0xb81dx1e=_0xb81dx1b[_0xb0a0[34]]+ _0xb81dx1b[_0xb0a0[35]],_0xb81dx16;if(_0xb81dx1e>= _0xb81dx1c){_0xb81dx1e= _0xb81dx1c;_0xb81dx16= 200}else {_0xb81dx16= 206};_0xb81dx15[_0xb0a0[29]](_0xb81dx16);logger[_0xb0a0[24]](_0xb0a0[22],_0xb81dx17,_0xb81dx16,_0xb0a0[36]);logger[_0xb0a0[26]](_0xb0a0[25],_0xb81dx17,_0xb81dx16,_0xb0a0[30],JSON[_0xb0a0[31]](_0xb81dx18));return _0xb81dx15[_0xb0a0[40]](_0xb0a0[37],_0xb81dx1d+ _0xb0a0[38]+ _0xb81dx1e+ _0xb0a0[39]+ _0xb81dx1c)[_0xb0a0[32]](_0xb81dx18)};return null}}function patchUpdates(_0xb81dx20){return function(_0xb81dx18){try{jsonpatch[_0xb0a0[41]](_0xb81dx18,_0xb81dx20,true)}catch(err){return BPromise[_0xb0a0[42]](err)};return _0xb81dx18[_0xb0a0[43]]()}}function saveUpdates(_0xb81dx22,_0xb81dx16,_0xb81dx17){return function(_0xb81dx18){if(_0xb81dx18){return _0xb81dx18[_0xb0a0[46]](_0xb81dx22)[_0xb0a0[45]](function(_0xb81dx23){logger[_0xb0a0[24]](_0xb0a0[22],_0xb81dx17,_0xb81dx16,_0xb0a0[44]);logger[_0xb0a0[26]](_0xb0a0[25],_0xb81dx17,_0xb81dx16,_0xb0a0[44],JSON[_0xb0a0[31]](_0xb81dx18));return _0xb81dx23})};return null}}function removeEntity(_0xb81dx15,_0xb81dx16,_0xb81dx17){return function(_0xb81dx18){if(_0xb81dx18){return _0xb81dx18[_0xb0a0[48]]()[_0xb0a0[45]](function(){logger[_0xb0a0[24]](_0xb0a0[22],_0xb81dx17,_0xb81dx16,_0xb0a0[47]);logger[_0xb0a0[26]](_0xb0a0[25],_0xb81dx17,_0xb81dx16,_0xb0a0[47],JSON[_0xb0a0[31]](_0xb81dx18));_0xb81dx15[_0xb0a0[29]](204)[_0xb0a0[28]]()})}}}function handleEntityNotFound(_0xb81dx15,_0xb81dx16,_0xb81dx17){return function(_0xb81dx18){if(!_0xb81dx18){logger[_0xb0a0[50]](_0xb0a0[22],_0xb81dx17,404,_0xb0a0[49]);_0xb81dx15[_0xb0a0[29]](404)[_0xb0a0[28]]();return null};return _0xb81dx18}}function handleError(_0xb81dx15,_0xb81dx16,_0xb81dx17){_0xb81dx16= _0xb81dx16|| 500;return function(_0xb81dx27){logger[_0xb0a0[50]](_0xb0a0[22],_0xb81dx17,_0xb81dx16,JSON[_0xb0a0[31]](_0xb81dx27));delete _0xb81dx27[_0xb0a0[51]];_0xb81dx15[_0xb0a0[29]](_0xb81dx16)[_0xb0a0[52]](_0xb81dx27)}}exports[_0xb0a0[53]]= function(_0xb81dx28,_0xb81dx15){var _0xb81dx1b={},_0xb81dx29={};_0xb81dx29[_0xb0a0[54]]= _[_0xb0a0[57]](db[_0xb0a0[56]][_0xb0a0[55]]);_0xb81dx29[_0xb0a0[58]]= _[_0xb0a0[57]](_0xb81dx28[_0xb0a0[58]]);_0xb81dx29[_0xb0a0[59]]= _[_0xb0a0[60]](_0xb81dx29[_0xb0a0[54]],_0xb81dx29[_0xb0a0[58]]);_0xb81dx1b[_0xb0a0[61]]= _[_0xb0a0[60]](_0xb81dx29[_0xb0a0[54]],qs[_0xb0a0[62]](_0xb81dx28[_0xb0a0[58]][_0xb0a0[62]]));_0xb81dx1b[_0xb0a0[61]]= (_0xb81dx1b[_0xb0a0[61]][_0xb0a0[63]])?_0xb81dx1b[_0xb0a0[61]]:_0xb81dx29[_0xb0a0[54]];if(!_0xb81dx28[_0xb0a0[58]][_0xb0a0[65]](_0xb0a0[64])){_0xb81dx1b[_0xb0a0[35]]= qs[_0xb0a0[35]](_0xb81dx28[_0xb0a0[58]][_0xb0a0[35]]);_0xb81dx1b[_0xb0a0[34]]= qs[_0xb0a0[34]](_0xb81dx28[_0xb0a0[58]][_0xb0a0[34]])};_0xb81dx1b[_0xb0a0[66]]= qs[_0xb0a0[67]](_0xb81dx28[_0xb0a0[58]][_0xb0a0[67]]);_0xb81dx1b[_0xb0a0[68]]= qs[_0xb0a0[59]](_[_0xb0a0[69]](_0xb81dx28[_0xb0a0[58]],_0xb81dx29[_0xb0a0[59]]));if(_0xb81dx28[_0xb0a0[58]][_0xb0a0[70]]){_0xb81dx1b[_0xb0a0[68]]= _[_0xb0a0[73]](_0xb81dx1b[_0xb0a0[68]],{$or:_[_0xb0a0[72]](_0xb81dx1b[_0xb0a0[61]],function(_0xb81dx2a){var _0xb81dx2b={};_0xb81dx2b[_0xb81dx2a]= {$like:_0xb0a0[71]+ _0xb81dx28[_0xb0a0[58]][_0xb0a0[70]]+ _0xb0a0[71]};return _0xb81dx2b})})};_0xb81dx1b= _[_0xb0a0[73]]({},_0xb81dx1b,_0xb81dx28[_0xb0a0[74]]);return db[_0xb0a0[56]][_0xb0a0[76]](_0xb81dx1b)[_0xb0a0[45]](respondWithFilteredResult(_0xb81dx15,_0xb81dx1b,_0xb0a0[53]))[_0xb0a0[75]](handleError(_0xb81dx15,null,_0xb0a0[53]))};exports[_0xb0a0[77]]= function(_0xb81dx28,_0xb81dx15){var _0xb81dx1b={raw:false,where:{id:_0xb81dx28[_0xb0a0[79]][_0xb0a0[78]]}},_0xb81dx29={};_0xb81dx29[_0xb0a0[54]]= _[_0xb0a0[57]](db[_0xb0a0[56]][_0xb0a0[55]]);_0xb81dx29[_0xb0a0[58]]= _[_0xb0a0[57]](_0xb81dx28[_0xb0a0[58]]);_0xb81dx29[_0xb0a0[59]]= _[_0xb0a0[60]](_0xb81dx29[_0xb0a0[54]],_0xb81dx29[_0xb0a0[58]]);_0xb81dx1b[_0xb0a0[61]]= _[_0xb0a0[60]](_0xb81dx29[_0xb0a0[54]],qs[_0xb0a0[62]](_0xb81dx28[_0xb0a0[58]][_0xb0a0[62]]));_0xb81dx1b[_0xb0a0[61]]= (_0xb81dx1b[_0xb0a0[61]][_0xb0a0[63]])?_0xb81dx1b[_0xb0a0[61]]:_0xb81dx29[_0xb0a0[54]];_0xb81dx1b= _[_0xb0a0[73]]({},_0xb81dx1b,_0xb81dx28[_0xb0a0[74]]);return db[_0xb0a0[56]][_0xb0a0[80]](_0xb81dx1b)[_0xb0a0[45]](handleEntityNotFound(_0xb81dx15,null,_0xb0a0[77]))[_0xb0a0[45]](respondWithResult(_0xb81dx15,null,_0xb0a0[77]))[_0xb0a0[75]](handleError(_0xb81dx15,null,_0xb0a0[77]))};exports[_0xb0a0[81]]= function(_0xb81dx28,_0xb81dx15){return db[_0xb0a0[56]][_0xb0a0[81]](_0xb81dx28[_0xb0a0[82]],{})[_0xb0a0[45]](respondWithResult(_0xb81dx15,201,_0xb0a0[81]))[_0xb0a0[75]](handleError(_0xb81dx15,null,_0xb0a0[81]))};exports[_0xb0a0[46]]= function(_0xb81dx28,_0xb81dx15){if(_0xb81dx28[_0xb0a0[82]][_0xb0a0[78]]){delete _0xb81dx28[_0xb0a0[82]][_0xb0a0[78]]};return db[_0xb0a0[56]][_0xb0a0[80]]({where:{id:_0xb81dx28[_0xb0a0[79]][_0xb0a0[78]]}})[_0xb0a0[45]](handleEntityNotFound(_0xb81dx15,null,_0xb0a0[46]))[_0xb0a0[45]](saveUpdates(_0xb81dx28[_0xb0a0[82]],null,_0xb0a0[46]))[_0xb0a0[45]](respondWithResult(_0xb81dx15,null,_0xb0a0[46]))[_0xb0a0[75]](handleError(_0xb81dx15,null,_0xb0a0[46]))};exports[_0xb0a0[48]]= function(_0xb81dx28,_0xb81dx15){return db[_0xb0a0[56]][_0xb0a0[80]]({where:{id:_0xb81dx28[_0xb0a0[79]][_0xb0a0[78]]}})[_0xb0a0[45]](handleEntityNotFound(_0xb81dx15,null,_0xb0a0[48]))[_0xb0a0[45]](removeEntity(_0xb81dx15,null,_0xb0a0[48]))[_0xb0a0[75]](handleError(_0xb81dx15,null,_0xb0a0[48]))};exports[_0xb0a0[83]]= function(_0xb81dx28,_0xb81dx15){return db[_0xb0a0[56]][_0xb0a0[83]]()[_0xb0a0[45]](respondWithResult(_0xb81dx15,null,_0xb0a0[83]))[_0xb0a0[75]](handleError(_0xb81dx15,null,_0xb0a0[83]))}
\ No newline at end of file
index fb56e62..a3fb0e7 100644 (file)
@@ -1 +1 @@
-var _0xc5a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xc5a2[0];var _=require(_0xc5a2[1]);var util=require(_0xc5a2[2]);var logger=require(_0xc5a2[4])(_0xc5a2[3]);var attributes=require(_0xc5a2[5]);module[_0xc5a2[6]]= function(_0x7700x5,_0x7700x6){return _0x7700x5[_0xc5a2[9]](_0xc5a2[7],attributes,{tableName:_0xc5a2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4a0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x4a0e[0];var _=require(_0x4a0e[1]);var util=require(_0x4a0e[2]);var logger=require(_0x4a0e[4])(_0x4a0e[3]);var attributes=require(_0x4a0e[5]);module[_0x4a0e[6]]= function(_0x78c3x5,_0x78c3x6){return _0x78c3x5[_0x4a0e[9]](_0x4a0e[7],attributes,{tableName:_0x4a0e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 962c00c..3b657d7 100644 (file)
@@ -1 +1 @@
-var _0xd340=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd340[0];var _=require(_0xd340[1]);var util=require(_0xd340[2]);var moment=require(_0xd340[3]);var BPromise=require(_0xd340[4]);var db=require(_0xd340[6])[_0xd340[5]];var utils=require(_0xd340[7]);var logger=require(_0xd340[9])(_0xd340[8]);var jayson=require(_0xd340[10]);var client=jayson[_0xd340[12]][_0xd340[11]]({port:9002});function respondWithRpcPromise(_0xc976xb,_0xc976xc,_0xc976xd){return  new BPromise(function(_0xc976xe,_0xc976xf){return client[_0xd340[25]](_0xc976xb,_0xc976xd)[_0xd340[24]](function(_0xc976x11){logger[_0xd340[17]](_0xd340[13],_0xc976xc,_0xd340[16]);logger[_0xd340[20]](_0xd340[18],_0xc976xc,_0xd340[16],JSON[_0xd340[19]](_0xc976x11));if(_0xc976x11[_0xd340[14]]){if(_0xc976x11[_0xd340[14]][_0xd340[21]]=== 500){logger[_0xd340[14]](_0xd340[13],_0xc976xc,_0xc976x11[_0xd340[14]][_0xd340[22]]);return _0xc976xf(_0xc976x11[_0xd340[14]][_0xd340[22]])};logger[_0xd340[14]](_0xd340[13],_0xc976xc,_0xc976x11[_0xd340[14]][_0xd340[22]]);return _0xc976xe(_0xc976x11[_0xd340[14]][_0xd340[22]])}else {logger[_0xd340[17]](_0xd340[13],_0xc976xc,_0xd340[16]);_0xc976xe(_0xc976x11[_0xd340[23]][_0xd340[22]])}})[_0xd340[15]](function(_0xc976x10){logger[_0xd340[14]](_0xd340[13],_0xc976xc,_0xc976x10);_0xc976xf(_0xc976x10)})})}
\ No newline at end of file
+var _0xc4fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc4fe[0];var _=require(_0xc4fe[1]);var util=require(_0xc4fe[2]);var moment=require(_0xc4fe[3]);var BPromise=require(_0xc4fe[4]);var db=require(_0xc4fe[6])[_0xc4fe[5]];var utils=require(_0xc4fe[7]);var logger=require(_0xc4fe[9])(_0xc4fe[8]);var jayson=require(_0xc4fe[10]);var client=jayson[_0xc4fe[12]][_0xc4fe[11]]({port:9002});function respondWithRpcPromise(_0x5b4bxb,_0x5b4bxc,_0x5b4bxd){return  new BPromise(function(_0x5b4bxe,_0x5b4bxf){return client[_0xc4fe[25]](_0x5b4bxb,_0x5b4bxd)[_0xc4fe[24]](function(_0x5b4bx11){logger[_0xc4fe[17]](_0xc4fe[13],_0x5b4bxc,_0xc4fe[16]);logger[_0xc4fe[20]](_0xc4fe[18],_0x5b4bxc,_0xc4fe[16],JSON[_0xc4fe[19]](_0x5b4bx11));if(_0x5b4bx11[_0xc4fe[14]]){if(_0x5b4bx11[_0xc4fe[14]][_0xc4fe[21]]=== 500){logger[_0xc4fe[14]](_0xc4fe[13],_0x5b4bxc,_0x5b4bx11[_0xc4fe[14]][_0xc4fe[22]]);return _0x5b4bxf(_0x5b4bx11[_0xc4fe[14]][_0xc4fe[22]])};logger[_0xc4fe[14]](_0xc4fe[13],_0x5b4bxc,_0x5b4bx11[_0xc4fe[14]][_0xc4fe[22]]);return _0x5b4bxe(_0x5b4bx11[_0xc4fe[14]][_0xc4fe[22]])}else {logger[_0xc4fe[17]](_0xc4fe[13],_0x5b4bxc,_0xc4fe[16]);_0x5b4bxe(_0x5b4bx11[_0xc4fe[23]][_0xc4fe[22]])}})[_0xc4fe[15]](function(_0x5b4bx10){logger[_0xc4fe[14]](_0xc4fe[13],_0x5b4bxc,_0x5b4bx10);_0x5b4bxf(_0x5b4bx10)})})}
\ No newline at end of file
index 0099748..2ec5a4c 100644 (file)
@@ -1 +1 @@
-var _0x5ea8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5ea8[0];var multer=require(_0x5ea8[1]);var util=require(_0x5ea8[2]);var path=require(_0x5ea8[3]);var express=require(_0x5ea8[4]);var router=express.Router();var auth=require(_0x5ea8[5]);var config=require(_0x5ea8[6]);var controller=require(_0x5ea8[7]);router[_0x5ea8[11]](_0x5ea8[8],auth[_0x5ea8[9]](),controller[_0x5ea8[10]]);router[_0x5ea8[11]](_0x5ea8[12],auth[_0x5ea8[9]](),controller[_0x5ea8[13]]);router[_0x5ea8[15]](_0x5ea8[8],auth[_0x5ea8[9]](),controller[_0x5ea8[14]]);router[_0x5ea8[17]](_0x5ea8[12],auth[_0x5ea8[9]](),controller[_0x5ea8[16]]);router[_0x5ea8[19]](_0x5ea8[12],auth[_0x5ea8[9]](),controller[_0x5ea8[18]]);module[_0x5ea8[20]]= router
\ No newline at end of file
+var _0xcb2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcb2f[0];var multer=require(_0xcb2f[1]);var util=require(_0xcb2f[2]);var path=require(_0xcb2f[3]);var express=require(_0xcb2f[4]);var router=express.Router();var auth=require(_0xcb2f[5]);var config=require(_0xcb2f[6]);var controller=require(_0xcb2f[7]);router[_0xcb2f[11]](_0xcb2f[8],auth[_0xcb2f[9]](),controller[_0xcb2f[10]]);router[_0xcb2f[11]](_0xcb2f[12],auth[_0xcb2f[9]](),controller[_0xcb2f[13]]);router[_0xcb2f[15]](_0xcb2f[8],auth[_0xcb2f[9]](),controller[_0xcb2f[14]]);router[_0xcb2f[17]](_0xcb2f[12],auth[_0xcb2f[9]](),controller[_0xcb2f[16]]);router[_0xcb2f[19]](_0xcb2f[12],auth[_0xcb2f[9]](),controller[_0xcb2f[18]]);module[_0xcb2f[20]]= router
\ No newline at end of file
index de18724..b1deb6c 100644 (file)
@@ -1 +1 @@
-var _0xebd3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xebd3[0];var Sequelize=require(_0xebd3[1]);module[_0xebd3[2]]= {name:{type:Sequelize[_0xebd3[3]],unique:_0xebd3[4],allowNull:false},description:{type:Sequelize[_0xebd3[3]]}}
\ No newline at end of file
+var _0xc66c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xc66c[0];var Sequelize=require(_0xc66c[1]);module[_0xc66c[2]]= {name:{type:Sequelize[_0xc66c[3]],unique:_0xc66c[4],allowNull:false},description:{type:Sequelize[_0xc66c[3]]}}
\ No newline at end of file
index 458fc60..8356fe8 100644 (file)
@@ -1 +1 @@
-var _0xfe6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x50\x61\x75\x73\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xfe6a[0];var jsonpatch=require(_0xfe6a[1]);var rp=require(_0xfe6a[2]);var moment=require(_0xfe6a[3]);var BPromise=require(_0xfe6a[4]);var util=require(_0xfe6a[5]);var path=require(_0xfe6a[6]);var sox=require(_0xfe6a[7]);var ejs=require(_0xfe6a[8]);var fs=require(_0xfe6a[9]);var _=require(_0xfe6a[10]);var squel=require(_0xfe6a[11]);var crypto=require(_0xfe6a[12]);var jsforce=require(_0xfe6a[13]);var toCsv=require(_0xfe6a[14]);var qs=require(_0xfe6a[15]);var logger=require(_0xfe6a[17])(_0xfe6a[16]);var utils=require(_0xfe6a[18]);var config=require(_0xfe6a[19]);var db=require(_0xfe6a[21])[_0xfe6a[20]];function respondWithStatusCode(_0xd10bx15,_0xd10bx16,_0xd10bx17){_0xd10bx16= _0xd10bx16|| 204;return function(_0xd10bx18){if(_0xd10bx18){logger[_0xfe6a[24]](_0xfe6a[22],_0xd10bx17,_0xd10bx16,_0xfe6a[23]);logger[_0xfe6a[26]](_0xfe6a[25],_0xd10bx17,_0xd10bx16,_0xfe6a[23]);return _0xd10bx15[_0xfe6a[27]](_0xd10bx16)};return _0xd10bx15[_0xfe6a[29]](304)[_0xfe6a[28]]()}}function respondWithResult(_0xd10bx15,_0xd10bx16,_0xd10bx17){_0xd10bx16= _0xd10bx16|| 200;return function(_0xd10bx18){if(_0xd10bx18){logger[_0xfe6a[24]](_0xfe6a[22],_0xd10bx17,_0xd10bx16,_0xfe6a[30]);logger[_0xfe6a[26]](_0xfe6a[25],_0xd10bx17,_0xd10bx16,_0xfe6a[30],JSON[_0xfe6a[31]](_0xd10bx18));return _0xd10bx15[_0xfe6a[29]](_0xd10bx16)[_0xfe6a[32]](_0xd10bx18)};return _0xd10bx15[_0xfe6a[29]](304)[_0xfe6a[28]]()}}function respondWithFilteredResult(_0xd10bx15,_0xd10bx1b,_0xd10bx17){return function(_0xd10bx18){if(_0xd10bx18){var _0xd10bx1c=_0xd10bx18[_0xfe6a[33]],_0xd10bx1d=_0xd10bx1b[_0xfe6a[34]],_0xd10bx1e=_0xd10bx1b[_0xfe6a[34]]+ _0xd10bx1b[_0xfe6a[35]],_0xd10bx16;if(_0xd10bx1e>= _0xd10bx1c){_0xd10bx1e= _0xd10bx1c;_0xd10bx16= 200}else {_0xd10bx16= 206};_0xd10bx15[_0xfe6a[29]](_0xd10bx16);logger[_0xfe6a[24]](_0xfe6a[22],_0xd10bx17,_0xd10bx16,_0xfe6a[36]);logger[_0xfe6a[26]](_0xfe6a[25],_0xd10bx17,_0xd10bx16,_0xfe6a[30],JSON[_0xfe6a[31]](_0xd10bx18));return _0xd10bx15[_0xfe6a[40]](_0xfe6a[37],_0xd10bx1d+ _0xfe6a[38]+ _0xd10bx1e+ _0xfe6a[39]+ _0xd10bx1c)[_0xfe6a[32]](_0xd10bx18)};return null}}function patchUpdates(_0xd10bx20){return function(_0xd10bx18){try{jsonpatch[_0xfe6a[41]](_0xd10bx18,_0xd10bx20,true)}catch(err){return BPromise[_0xfe6a[42]](err)};return _0xd10bx18[_0xfe6a[43]]()}}function saveUpdates(_0xd10bx22,_0xd10bx16,_0xd10bx17){return function(_0xd10bx18){if(_0xd10bx18){return _0xd10bx18[_0xfe6a[46]](_0xd10bx22)[_0xfe6a[45]](function(_0xd10bx23){logger[_0xfe6a[24]](_0xfe6a[22],_0xd10bx17,_0xd10bx16,_0xfe6a[44]);logger[_0xfe6a[26]](_0xfe6a[25],_0xd10bx17,_0xd10bx16,_0xfe6a[44],JSON[_0xfe6a[31]](_0xd10bx18));return _0xd10bx23})};return null}}function removeEntity(_0xd10bx15,_0xd10bx16,_0xd10bx17){return function(_0xd10bx18){if(_0xd10bx18){return _0xd10bx18[_0xfe6a[48]]()[_0xfe6a[45]](function(){logger[_0xfe6a[24]](_0xfe6a[22],_0xd10bx17,_0xd10bx16,_0xfe6a[47]);logger[_0xfe6a[26]](_0xfe6a[25],_0xd10bx17,_0xd10bx16,_0xfe6a[47],JSON[_0xfe6a[31]](_0xd10bx18));_0xd10bx15[_0xfe6a[29]](204)[_0xfe6a[28]]()})}}}function handleEntityNotFound(_0xd10bx15,_0xd10bx16,_0xd10bx17){return function(_0xd10bx18){if(!_0xd10bx18){logger[_0xfe6a[50]](_0xfe6a[22],_0xd10bx17,404,_0xfe6a[49]);_0xd10bx15[_0xfe6a[29]](404)[_0xfe6a[28]]();return null};return _0xd10bx18}}function handleError(_0xd10bx15,_0xd10bx16,_0xd10bx17){_0xd10bx16= _0xd10bx16|| 500;return function(_0xd10bx27){logger[_0xfe6a[50]](_0xfe6a[22],_0xd10bx17,_0xd10bx16,JSON[_0xfe6a[31]](_0xd10bx27));delete _0xd10bx27[_0xfe6a[51]];_0xd10bx15[_0xfe6a[29]](_0xd10bx16)[_0xfe6a[52]](_0xd10bx27)}}exports[_0xfe6a[53]]= function(_0xd10bx28,_0xd10bx15){var _0xd10bx1b={},_0xd10bx29={};_0xd10bx29[_0xfe6a[54]]= _[_0xfe6a[57]](db[_0xfe6a[56]][_0xfe6a[55]]);_0xd10bx29[_0xfe6a[58]]= _[_0xfe6a[57]](_0xd10bx28[_0xfe6a[58]]);_0xd10bx29[_0xfe6a[59]]= _[_0xfe6a[60]](_0xd10bx29[_0xfe6a[54]],_0xd10bx29[_0xfe6a[58]]);_0xd10bx1b[_0xfe6a[61]]= _[_0xfe6a[60]](_0xd10bx29[_0xfe6a[54]],qs[_0xfe6a[62]](_0xd10bx28[_0xfe6a[58]][_0xfe6a[62]]));_0xd10bx1b[_0xfe6a[61]]= (_0xd10bx1b[_0xfe6a[61]][_0xfe6a[63]])?_0xd10bx1b[_0xfe6a[61]]:_0xd10bx29[_0xfe6a[54]];if(!_0xd10bx28[_0xfe6a[58]][_0xfe6a[65]](_0xfe6a[64])){_0xd10bx1b[_0xfe6a[35]]= qs[_0xfe6a[35]](_0xd10bx28[_0xfe6a[58]][_0xfe6a[35]]);_0xd10bx1b[_0xfe6a[34]]= qs[_0xfe6a[34]](_0xd10bx28[_0xfe6a[58]][_0xfe6a[34]])};_0xd10bx1b[_0xfe6a[66]]= qs[_0xfe6a[67]](_0xd10bx28[_0xfe6a[58]][_0xfe6a[67]]);_0xd10bx1b[_0xfe6a[68]]= qs[_0xfe6a[59]](_[_0xfe6a[69]](_0xd10bx28[_0xfe6a[58]],_0xd10bx29[_0xfe6a[59]]));if(_0xd10bx28[_0xfe6a[58]][_0xfe6a[70]]){_0xd10bx1b[_0xfe6a[68]]= _[_0xfe6a[73]](_0xd10bx1b[_0xfe6a[68]],{$or:_[_0xfe6a[72]](_0xd10bx1b[_0xfe6a[61]],function(_0xd10bx2a){var _0xd10bx2b={};_0xd10bx2b[_0xd10bx2a]= {$like:_0xfe6a[71]+ _0xd10bx28[_0xfe6a[58]][_0xfe6a[70]]+ _0xfe6a[71]};return _0xd10bx2b})})};_0xd10bx1b= _[_0xfe6a[73]]({},_0xd10bx1b,_0xd10bx28[_0xfe6a[74]]);return db[_0xfe6a[56]][_0xfe6a[76]](_0xd10bx1b)[_0xfe6a[45]](respondWithFilteredResult(_0xd10bx15,_0xd10bx1b,_0xfe6a[53]))[_0xfe6a[75]](handleError(_0xd10bx15,null,_0xfe6a[53]))};exports[_0xfe6a[77]]= function(_0xd10bx28,_0xd10bx15){var _0xd10bx1b={raw:true,where:{id:_0xd10bx28[_0xfe6a[79]][_0xfe6a[78]]}},_0xd10bx29={};_0xd10bx29[_0xfe6a[54]]= _[_0xfe6a[57]](db[_0xfe6a[56]][_0xfe6a[55]]);_0xd10bx29[_0xfe6a[58]]= _[_0xfe6a[57]](_0xd10bx28[_0xfe6a[58]]);_0xd10bx29[_0xfe6a[59]]= _[_0xfe6a[60]](_0xd10bx29[_0xfe6a[54]],_0xd10bx29[_0xfe6a[58]]);_0xd10bx1b[_0xfe6a[61]]= _[_0xfe6a[60]](_0xd10bx29[_0xfe6a[54]],qs[_0xfe6a[62]](_0xd10bx28[_0xfe6a[58]][_0xfe6a[62]]));_0xd10bx1b[_0xfe6a[61]]= (_0xd10bx1b[_0xfe6a[61]][_0xfe6a[63]])?_0xd10bx1b[_0xfe6a[61]]:_0xd10bx29[_0xfe6a[54]];_0xd10bx1b= _[_0xfe6a[73]]({},_0xd10bx1b,_0xd10bx28[_0xfe6a[74]]);return db[_0xfe6a[56]][_0xfe6a[80]](_0xd10bx1b)[_0xfe6a[45]](handleEntityNotFound(_0xd10bx15,null,_0xfe6a[77]))[_0xfe6a[45]](respondWithResult(_0xd10bx15,null,_0xfe6a[77]))[_0xfe6a[75]](handleError(_0xd10bx15,null,_0xfe6a[77]))};exports[_0xfe6a[81]]= function(_0xd10bx28,_0xd10bx15){return db[_0xfe6a[56]][_0xfe6a[81]](_0xd10bx28[_0xfe6a[82]],{})[_0xfe6a[45]](respondWithResult(_0xd10bx15,201,_0xfe6a[81]))[_0xfe6a[75]](handleError(_0xd10bx15,null,_0xfe6a[81]))};exports[_0xfe6a[46]]= function(_0xd10bx28,_0xd10bx15){if(_0xd10bx28[_0xfe6a[82]][_0xfe6a[78]]){delete _0xd10bx28[_0xfe6a[82]][_0xfe6a[78]]};return db[_0xfe6a[56]][_0xfe6a[80]]({where:{id:_0xd10bx28[_0xfe6a[79]][_0xfe6a[78]]}})[_0xfe6a[45]](handleEntityNotFound(_0xd10bx15,null,_0xfe6a[46]))[_0xfe6a[45]](saveUpdates(_0xd10bx28[_0xfe6a[82]],null,_0xfe6a[46]))[_0xfe6a[45]](respondWithResult(_0xd10bx15,null,_0xfe6a[46]))[_0xfe6a[75]](handleError(_0xd10bx15,null,_0xfe6a[46]))};exports[_0xfe6a[48]]= function(_0xd10bx28,_0xd10bx15){return db[_0xfe6a[56]][_0xfe6a[80]]({where:{id:_0xd10bx28[_0xfe6a[79]][_0xfe6a[78]]}})[_0xfe6a[45]](handleEntityNotFound(_0xd10bx15,null,_0xfe6a[48]))[_0xfe6a[45]](removeEntity(_0xd10bx15,null,_0xfe6a[48]))[_0xfe6a[75]](handleError(_0xd10bx15,null,_0xfe6a[48]))}
\ No newline at end of file
+var _0x84e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x50\x61\x75\x73\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x84e5[0];var jsonpatch=require(_0x84e5[1]);var rp=require(_0x84e5[2]);var moment=require(_0x84e5[3]);var BPromise=require(_0x84e5[4]);var util=require(_0x84e5[5]);var path=require(_0x84e5[6]);var sox=require(_0x84e5[7]);var ejs=require(_0x84e5[8]);var fs=require(_0x84e5[9]);var _=require(_0x84e5[10]);var squel=require(_0x84e5[11]);var crypto=require(_0x84e5[12]);var jsforce=require(_0x84e5[13]);var toCsv=require(_0x84e5[14]);var qs=require(_0x84e5[15]);var logger=require(_0x84e5[17])(_0x84e5[16]);var utils=require(_0x84e5[18]);var config=require(_0x84e5[19]);var db=require(_0x84e5[21])[_0x84e5[20]];function respondWithStatusCode(_0x88adx15,_0x88adx16,_0x88adx17){_0x88adx16= _0x88adx16|| 204;return function(_0x88adx18){if(_0x88adx18){logger[_0x84e5[24]](_0x84e5[22],_0x88adx17,_0x88adx16,_0x84e5[23]);logger[_0x84e5[26]](_0x84e5[25],_0x88adx17,_0x88adx16,_0x84e5[23]);return _0x88adx15[_0x84e5[27]](_0x88adx16)};return _0x88adx15[_0x84e5[29]](304)[_0x84e5[28]]()}}function respondWithResult(_0x88adx15,_0x88adx16,_0x88adx17){_0x88adx16= _0x88adx16|| 200;return function(_0x88adx18){if(_0x88adx18){logger[_0x84e5[24]](_0x84e5[22],_0x88adx17,_0x88adx16,_0x84e5[30]);logger[_0x84e5[26]](_0x84e5[25],_0x88adx17,_0x88adx16,_0x84e5[30],JSON[_0x84e5[31]](_0x88adx18));return _0x88adx15[_0x84e5[29]](_0x88adx16)[_0x84e5[32]](_0x88adx18)};return _0x88adx15[_0x84e5[29]](304)[_0x84e5[28]]()}}function respondWithFilteredResult(_0x88adx15,_0x88adx1b,_0x88adx17){return function(_0x88adx18){if(_0x88adx18){var _0x88adx1c=_0x88adx18[_0x84e5[33]],_0x88adx1d=_0x88adx1b[_0x84e5[34]],_0x88adx1e=_0x88adx1b[_0x84e5[34]]+ _0x88adx1b[_0x84e5[35]],_0x88adx16;if(_0x88adx1e>= _0x88adx1c){_0x88adx1e= _0x88adx1c;_0x88adx16= 200}else {_0x88adx16= 206};_0x88adx15[_0x84e5[29]](_0x88adx16);logger[_0x84e5[24]](_0x84e5[22],_0x88adx17,_0x88adx16,_0x84e5[36]);logger[_0x84e5[26]](_0x84e5[25],_0x88adx17,_0x88adx16,_0x84e5[30],JSON[_0x84e5[31]](_0x88adx18));return _0x88adx15[_0x84e5[40]](_0x84e5[37],_0x88adx1d+ _0x84e5[38]+ _0x88adx1e+ _0x84e5[39]+ _0x88adx1c)[_0x84e5[32]](_0x88adx18)};return null}}function patchUpdates(_0x88adx20){return function(_0x88adx18){try{jsonpatch[_0x84e5[41]](_0x88adx18,_0x88adx20,true)}catch(err){return BPromise[_0x84e5[42]](err)};return _0x88adx18[_0x84e5[43]]()}}function saveUpdates(_0x88adx22,_0x88adx16,_0x88adx17){return function(_0x88adx18){if(_0x88adx18){return _0x88adx18[_0x84e5[46]](_0x88adx22)[_0x84e5[45]](function(_0x88adx23){logger[_0x84e5[24]](_0x84e5[22],_0x88adx17,_0x88adx16,_0x84e5[44]);logger[_0x84e5[26]](_0x84e5[25],_0x88adx17,_0x88adx16,_0x84e5[44],JSON[_0x84e5[31]](_0x88adx18));return _0x88adx23})};return null}}function removeEntity(_0x88adx15,_0x88adx16,_0x88adx17){return function(_0x88adx18){if(_0x88adx18){return _0x88adx18[_0x84e5[48]]()[_0x84e5[45]](function(){logger[_0x84e5[24]](_0x84e5[22],_0x88adx17,_0x88adx16,_0x84e5[47]);logger[_0x84e5[26]](_0x84e5[25],_0x88adx17,_0x88adx16,_0x84e5[47],JSON[_0x84e5[31]](_0x88adx18));_0x88adx15[_0x84e5[29]](204)[_0x84e5[28]]()})}}}function handleEntityNotFound(_0x88adx15,_0x88adx16,_0x88adx17){return function(_0x88adx18){if(!_0x88adx18){logger[_0x84e5[50]](_0x84e5[22],_0x88adx17,404,_0x84e5[49]);_0x88adx15[_0x84e5[29]](404)[_0x84e5[28]]();return null};return _0x88adx18}}function handleError(_0x88adx15,_0x88adx16,_0x88adx17){_0x88adx16= _0x88adx16|| 500;return function(_0x88adx27){logger[_0x84e5[50]](_0x84e5[22],_0x88adx17,_0x88adx16,JSON[_0x84e5[31]](_0x88adx27));delete _0x88adx27[_0x84e5[51]];_0x88adx15[_0x84e5[29]](_0x88adx16)[_0x84e5[52]](_0x88adx27)}}exports[_0x84e5[53]]= function(_0x88adx28,_0x88adx15){var _0x88adx1b={},_0x88adx29={};_0x88adx29[_0x84e5[54]]= _[_0x84e5[57]](db[_0x84e5[56]][_0x84e5[55]]);_0x88adx29[_0x84e5[58]]= _[_0x84e5[57]](_0x88adx28[_0x84e5[58]]);_0x88adx29[_0x84e5[59]]= _[_0x84e5[60]](_0x88adx29[_0x84e5[54]],_0x88adx29[_0x84e5[58]]);_0x88adx1b[_0x84e5[61]]= _[_0x84e5[60]](_0x88adx29[_0x84e5[54]],qs[_0x84e5[62]](_0x88adx28[_0x84e5[58]][_0x84e5[62]]));_0x88adx1b[_0x84e5[61]]= (_0x88adx1b[_0x84e5[61]][_0x84e5[63]])?_0x88adx1b[_0x84e5[61]]:_0x88adx29[_0x84e5[54]];if(!_0x88adx28[_0x84e5[58]][_0x84e5[65]](_0x84e5[64])){_0x88adx1b[_0x84e5[35]]= qs[_0x84e5[35]](_0x88adx28[_0x84e5[58]][_0x84e5[35]]);_0x88adx1b[_0x84e5[34]]= qs[_0x84e5[34]](_0x88adx28[_0x84e5[58]][_0x84e5[34]])};_0x88adx1b[_0x84e5[66]]= qs[_0x84e5[67]](_0x88adx28[_0x84e5[58]][_0x84e5[67]]);_0x88adx1b[_0x84e5[68]]= qs[_0x84e5[59]](_[_0x84e5[69]](_0x88adx28[_0x84e5[58]],_0x88adx29[_0x84e5[59]]));if(_0x88adx28[_0x84e5[58]][_0x84e5[70]]){_0x88adx1b[_0x84e5[68]]= _[_0x84e5[73]](_0x88adx1b[_0x84e5[68]],{$or:_[_0x84e5[72]](_0x88adx1b[_0x84e5[61]],function(_0x88adx2a){var _0x88adx2b={};_0x88adx2b[_0x88adx2a]= {$like:_0x84e5[71]+ _0x88adx28[_0x84e5[58]][_0x84e5[70]]+ _0x84e5[71]};return _0x88adx2b})})};_0x88adx1b= _[_0x84e5[73]]({},_0x88adx1b,_0x88adx28[_0x84e5[74]]);return db[_0x84e5[56]][_0x84e5[76]](_0x88adx1b)[_0x84e5[45]](respondWithFilteredResult(_0x88adx15,_0x88adx1b,_0x84e5[53]))[_0x84e5[75]](handleError(_0x88adx15,null,_0x84e5[53]))};exports[_0x84e5[77]]= function(_0x88adx28,_0x88adx15){var _0x88adx1b={raw:true,where:{id:_0x88adx28[_0x84e5[79]][_0x84e5[78]]}},_0x88adx29={};_0x88adx29[_0x84e5[54]]= _[_0x84e5[57]](db[_0x84e5[56]][_0x84e5[55]]);_0x88adx29[_0x84e5[58]]= _[_0x84e5[57]](_0x88adx28[_0x84e5[58]]);_0x88adx29[_0x84e5[59]]= _[_0x84e5[60]](_0x88adx29[_0x84e5[54]],_0x88adx29[_0x84e5[58]]);_0x88adx1b[_0x84e5[61]]= _[_0x84e5[60]](_0x88adx29[_0x84e5[54]],qs[_0x84e5[62]](_0x88adx28[_0x84e5[58]][_0x84e5[62]]));_0x88adx1b[_0x84e5[61]]= (_0x88adx1b[_0x84e5[61]][_0x84e5[63]])?_0x88adx1b[_0x84e5[61]]:_0x88adx29[_0x84e5[54]];_0x88adx1b= _[_0x84e5[73]]({},_0x88adx1b,_0x88adx28[_0x84e5[74]]);return db[_0x84e5[56]][_0x84e5[80]](_0x88adx1b)[_0x84e5[45]](handleEntityNotFound(_0x88adx15,null,_0x84e5[77]))[_0x84e5[45]](respondWithResult(_0x88adx15,null,_0x84e5[77]))[_0x84e5[75]](handleError(_0x88adx15,null,_0x84e5[77]))};exports[_0x84e5[81]]= function(_0x88adx28,_0x88adx15){return db[_0x84e5[56]][_0x84e5[81]](_0x88adx28[_0x84e5[82]],{})[_0x84e5[45]](respondWithResult(_0x88adx15,201,_0x84e5[81]))[_0x84e5[75]](handleError(_0x88adx15,null,_0x84e5[81]))};exports[_0x84e5[46]]= function(_0x88adx28,_0x88adx15){if(_0x88adx28[_0x84e5[82]][_0x84e5[78]]){delete _0x88adx28[_0x84e5[82]][_0x84e5[78]]};return db[_0x84e5[56]][_0x84e5[80]]({where:{id:_0x88adx28[_0x84e5[79]][_0x84e5[78]]}})[_0x84e5[45]](handleEntityNotFound(_0x88adx15,null,_0x84e5[46]))[_0x84e5[45]](saveUpdates(_0x88adx28[_0x84e5[82]],null,_0x84e5[46]))[_0x84e5[45]](respondWithResult(_0x88adx15,null,_0x84e5[46]))[_0x84e5[75]](handleError(_0x88adx15,null,_0x84e5[46]))};exports[_0x84e5[48]]= function(_0x88adx28,_0x88adx15){return db[_0x84e5[56]][_0x84e5[80]]({where:{id:_0x88adx28[_0x84e5[79]][_0x84e5[78]]}})[_0x84e5[45]](handleEntityNotFound(_0x88adx15,null,_0x84e5[48]))[_0x84e5[45]](removeEntity(_0x88adx15,null,_0x84e5[48]))[_0x84e5[75]](handleError(_0x88adx15,null,_0x84e5[48]))}
\ No newline at end of file
index 16fc599..ddc9fe0 100644 (file)
@@ -1 +1 @@
-var _0x5d7b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x50\x61\x75\x73\x65","\x74\x6F\x6F\x6C\x73\x5F\x70\x61\x75\x73\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x5d7b[0];var _=require(_0x5d7b[1]);var util=require(_0x5d7b[2]);var logger=require(_0x5d7b[4])(_0x5d7b[3]);var attributes=require(_0x5d7b[5]);module[_0x5d7b[6]]= function(_0x4fbbx5,_0x4fbbx6){return _0x4fbbx5[_0x5d7b[9]](_0x5d7b[7],attributes,{tableName:_0x5d7b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x8421=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x50\x61\x75\x73\x65","\x74\x6F\x6F\x6C\x73\x5F\x70\x61\x75\x73\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x8421[0];var _=require(_0x8421[1]);var util=require(_0x8421[2]);var logger=require(_0x8421[4])(_0x8421[3]);var attributes=require(_0x8421[5]);module[_0x8421[6]]= function(_0xbfe6x5,_0xbfe6x6){return _0xbfe6x5[_0x8421[9]](_0x8421[7],attributes,{tableName:_0x8421[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 4ce1c64..df8ab0c 100644 (file)
@@ -1 +1 @@
-var _0x6cb5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6cb5[0];var _=require(_0x6cb5[1]);var util=require(_0x6cb5[2]);var moment=require(_0x6cb5[3]);var BPromise=require(_0x6cb5[4]);var db=require(_0x6cb5[6])[_0x6cb5[5]];var utils=require(_0x6cb5[7]);var logger=require(_0x6cb5[9])(_0x6cb5[8]);var jayson=require(_0x6cb5[10]);var client=jayson[_0x6cb5[12]][_0x6cb5[11]]({port:9002});function respondWithRpcPromise(_0xbff9xb,_0xbff9xc,_0xbff9xd){return  new BPromise(function(_0xbff9xe,_0xbff9xf){return client[_0x6cb5[25]](_0xbff9xb,_0xbff9xd)[_0x6cb5[24]](function(_0xbff9x11){logger[_0x6cb5[17]](_0x6cb5[13],_0xbff9xc,_0x6cb5[16]);logger[_0x6cb5[20]](_0x6cb5[18],_0xbff9xc,_0x6cb5[16],JSON[_0x6cb5[19]](_0xbff9x11));if(_0xbff9x11[_0x6cb5[14]]){if(_0xbff9x11[_0x6cb5[14]][_0x6cb5[21]]=== 500){logger[_0x6cb5[14]](_0x6cb5[13],_0xbff9xc,_0xbff9x11[_0x6cb5[14]][_0x6cb5[22]]);return _0xbff9xf(_0xbff9x11[_0x6cb5[14]][_0x6cb5[22]])};logger[_0x6cb5[14]](_0x6cb5[13],_0xbff9xc,_0xbff9x11[_0x6cb5[14]][_0x6cb5[22]]);return _0xbff9xe(_0xbff9x11[_0x6cb5[14]][_0x6cb5[22]])}else {logger[_0x6cb5[17]](_0x6cb5[13],_0xbff9xc,_0x6cb5[16]);_0xbff9xe(_0xbff9x11[_0x6cb5[23]][_0x6cb5[22]])}})[_0x6cb5[15]](function(_0xbff9x10){logger[_0x6cb5[14]](_0x6cb5[13],_0xbff9xc,_0xbff9x10);_0xbff9xf(_0xbff9x10)})})}
\ No newline at end of file
+var _0x7cbb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7cbb[0];var _=require(_0x7cbb[1]);var util=require(_0x7cbb[2]);var moment=require(_0x7cbb[3]);var BPromise=require(_0x7cbb[4]);var db=require(_0x7cbb[6])[_0x7cbb[5]];var utils=require(_0x7cbb[7]);var logger=require(_0x7cbb[9])(_0x7cbb[8]);var jayson=require(_0x7cbb[10]);var client=jayson[_0x7cbb[12]][_0x7cbb[11]]({port:9002});function respondWithRpcPromise(_0xabd9xb,_0xabd9xc,_0xabd9xd){return  new BPromise(function(_0xabd9xe,_0xabd9xf){return client[_0x7cbb[25]](_0xabd9xb,_0xabd9xd)[_0x7cbb[24]](function(_0xabd9x11){logger[_0x7cbb[17]](_0x7cbb[13],_0xabd9xc,_0x7cbb[16]);logger[_0x7cbb[20]](_0x7cbb[18],_0xabd9xc,_0x7cbb[16],JSON[_0x7cbb[19]](_0xabd9x11));if(_0xabd9x11[_0x7cbb[14]]){if(_0xabd9x11[_0x7cbb[14]][_0x7cbb[21]]=== 500){logger[_0x7cbb[14]](_0x7cbb[13],_0xabd9xc,_0xabd9x11[_0x7cbb[14]][_0x7cbb[22]]);return _0xabd9xf(_0xabd9x11[_0x7cbb[14]][_0x7cbb[22]])};logger[_0x7cbb[14]](_0x7cbb[13],_0xabd9xc,_0xabd9x11[_0x7cbb[14]][_0x7cbb[22]]);return _0xabd9xe(_0xabd9x11[_0x7cbb[14]][_0x7cbb[22]])}else {logger[_0x7cbb[17]](_0x7cbb[13],_0xabd9xc,_0x7cbb[16]);_0xabd9xe(_0xabd9x11[_0x7cbb[23]][_0x7cbb[22]])}})[_0x7cbb[15]](function(_0xabd9x10){logger[_0x7cbb[14]](_0x7cbb[13],_0xabd9xc,_0xabd9x10);_0xabd9xf(_0xabd9x10)})})}
\ No newline at end of file
index e104fc7..7037f72 100644 (file)
@@ -1 +1 @@
-var _0x4091=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x70\x6D\x32\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x4091[0];var express=require(_0x4091[1]);var router=express.Router();var auth=require(_0x4091[2]);var controller=require(_0x4091[3]);router[_0x4091[6]](_0x4091[4],controller[_0x4091[5]]);router[_0x4091[6]](_0x4091[7],controller[_0x4091[8]]);router[_0x4091[10]](_0x4091[7],controller[_0x4091[9]]);module[_0x4091[11]]= router
\ No newline at end of file
+var _0xb62d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x70\x6D\x32\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xb62d[0];var express=require(_0xb62d[1]);var router=express.Router();var auth=require(_0xb62d[2]);var controller=require(_0xb62d[3]);router[_0xb62d[6]](_0xb62d[4],controller[_0xb62d[5]]);router[_0xb62d[6]](_0xb62d[7],controller[_0xb62d[8]]);router[_0xb62d[10]](_0xb62d[7],controller[_0xb62d[9]]);module[_0xb62d[11]]= router
\ No newline at end of file
index b45d1c1..5a81f95 100644 (file)
@@ -1 +1 @@
-var _0x1bdc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x70\x6D\x32","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x70\x6D\x32\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x66\x6F","\x70\x6D\x32\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x6A\x73\x6F\x6E","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6C\x69\x73\x74","\x63\x61\x74\x63\x68","\x65\x78\x70\x72\x65\x73\x73","\x6D\x6F\x74\x69\x6F\x6E\x32","\x72\x65\x6A\x65\x63\x74","\x6C\x65\x6E\x67\x74\x68","\x74\x68\x65\x6E","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x72\x65\x73\x74\x61\x72\x74","\x73\x74\x6F\x70","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x61\x74\x75\x73"];_0x1bdc[0];var _=require(_0x1bdc[1]);var pm2=require(_0x1bdc[2]);var logger=require(_0x1bdc[4])(_0x1bdc[3]);function handleEntityNotFound(_0x1593x5,_0x1593x6,_0x1593x7){return function(_0x1593x8){if(!_0x1593x8){logger[_0x1bdc[7]](_0x1bdc[5],_0x1593x7,404,_0x1bdc[6]);_0x1593x5[_0x1bdc[9]](404)[_0x1bdc[8]]();return null};return _0x1593x8}}function respondWithResult(_0x1593x5,_0x1593x6,_0x1593x7){_0x1593x6= _0x1593x6|| 200;return function(_0x1593x8){if(_0x1593x8){logger[_0x1bdc[11]](_0x1bdc[5],_0x1593x7,_0x1593x6,_0x1bdc[10]);logger[_0x1bdc[14]](_0x1bdc[12],_0x1593x7,_0x1593x6,_0x1bdc[10],JSON[_0x1bdc[13]](_0x1593x8));return _0x1593x5[_0x1bdc[9]](_0x1593x6)[_0x1bdc[15]](_0x1593x8)};return null}}function handleError(_0x1593x5,_0x1593x6,_0x1593x7){_0x1593x6= _0x1593x6|| 500;return function(_0x1593xb){logger[_0x1bdc[7]](_0x1bdc[5],_0x1593x7,_0x1593x6,JSON[_0x1bdc[13]](_0x1593xb));delete _0x1593xb[_0x1bdc[16]];_0x1593x5[_0x1bdc[9]](_0x1593x6)[_0x1bdc[17]](_0x1593xb)}}exports[_0x1bdc[18]]= function(_0x1593xc,_0x1593x5){logger[_0x1bdc[11]](_0x1bdc[19]);return pm2[_0x1bdc[19]]()[_0x1bdc[25]](function(_0x1593xd){if(_0x1593xd){logger[_0x1bdc[11]](_0x1bdc[5],_0x1bdc[18],200,_0x1bdc[10]);logger[_0x1bdc[14]](_0x1bdc[12],_0x1bdc[18],200,_0x1bdc[10],JSON[_0x1bdc[13]](_0x1593xd));var _0x1593xe=_[_0x1bdc[23]](_0x1593xd,function(_0x1593xf){return _0x1593xf[_0x1bdc[16]]=== _0x1bdc[21]|| _0x1593xf[_0x1bdc[16]]=== _0x1bdc[22]});return _0x1593x5[_0x1bdc[9]](200)[_0x1bdc[15]]({rows:_0x1593xe,count:_0x1593xe[_0x1bdc[24]]})};return null})[_0x1bdc[20]](handleError(_0x1593x5,null,_0x1bdc[18]))};exports[_0x1bdc[26]]= function(_0x1593xc,_0x1593x5){return pm2[_0x1bdc[29]](_0x1593xc[_0x1bdc[28]][_0x1bdc[27]])[_0x1bdc[25]](function(_0x1593x8){if(_0x1593x8){logger[_0x1bdc[11]](_0x1bdc[5],_0x1bdc[26],200,_0x1bdc[10]);logger[_0x1bdc[14]](_0x1bdc[12],_0x1bdc[26],200,_0x1bdc[10],JSON[_0x1bdc[13]](_0x1593x8));return _0x1593x5[_0x1bdc[9]](200)[_0x1bdc[15]](_0x1593x8)};return null})[_0x1bdc[25]](handleEntityNotFound(_0x1593x5,null,_0x1bdc[26]))[_0x1bdc[20]](handleError(_0x1593x5,null,_0x1bdc[26]))};exports[_0x1bdc[30]]= function(_0x1593xc,_0x1593x5){if(_0x1593xc[_0x1bdc[31]][_0x1bdc[27]]){delete _0x1593xc[_0x1bdc[31]][_0x1bdc[27]]};var _0x1593x10={online:_0x1bdc[32],stopped:_0x1bdc[33]};logger[_0x1bdc[11]](JSON[_0x1bdc[13]](_0x1593xc[_0x1bdc[31]]));logger[_0x1bdc[11]](JSON[_0x1bdc[13]](_0x1593xc[_0x1bdc[28]]));if(_0x1593x10[_0x1bdc[34]](_0x1593xc[_0x1bdc[31]][_0x1bdc[9]])){return pm2[_0x1593x10[_0x1593xc[_0x1bdc[31]][_0x1bdc[9]]]](_0x1593xc[_0x1bdc[28]][_0x1bdc[27]])[_0x1bdc[25]](respondWithResult(_0x1593x5,200,_0x1bdc[30]))[_0x1bdc[20]](handleError(_0x1593x5,null,_0x1bdc[30]))}else {logger[_0x1bdc[7]](_0x1bdc[5],_0x1bdc[30],500,_0x1bdc[6]);return _0x1593x5[_0x1bdc[9]](500)[_0x1bdc[17]]({message:_0x1bdc[35]})}}
\ No newline at end of file
+var _0x77df=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x70\x6D\x32","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x70\x6D\x32\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x66\x6F","\x70\x6D\x32\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x6A\x73\x6F\x6E","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6C\x69\x73\x74","\x63\x61\x74\x63\x68","\x65\x78\x70\x72\x65\x73\x73","\x6D\x6F\x74\x69\x6F\x6E\x32","\x72\x65\x6A\x65\x63\x74","\x6C\x65\x6E\x67\x74\x68","\x74\x68\x65\x6E","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x72\x65\x73\x74\x61\x72\x74","\x73\x74\x6F\x70","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x61\x74\x75\x73"];_0x77df[0];var _=require(_0x77df[1]);var pm2=require(_0x77df[2]);var logger=require(_0x77df[4])(_0x77df[3]);function handleEntityNotFound(_0x6d96x5,_0x6d96x6,_0x6d96x7){return function(_0x6d96x8){if(!_0x6d96x8){logger[_0x77df[7]](_0x77df[5],_0x6d96x7,404,_0x77df[6]);_0x6d96x5[_0x77df[9]](404)[_0x77df[8]]();return null};return _0x6d96x8}}function respondWithResult(_0x6d96x5,_0x6d96x6,_0x6d96x7){_0x6d96x6= _0x6d96x6|| 200;return function(_0x6d96x8){if(_0x6d96x8){logger[_0x77df[11]](_0x77df[5],_0x6d96x7,_0x6d96x6,_0x77df[10]);logger[_0x77df[14]](_0x77df[12],_0x6d96x7,_0x6d96x6,_0x77df[10],JSON[_0x77df[13]](_0x6d96x8));return _0x6d96x5[_0x77df[9]](_0x6d96x6)[_0x77df[15]](_0x6d96x8)};return null}}function handleError(_0x6d96x5,_0x6d96x6,_0x6d96x7){_0x6d96x6= _0x6d96x6|| 500;return function(_0x6d96xb){logger[_0x77df[7]](_0x77df[5],_0x6d96x7,_0x6d96x6,JSON[_0x77df[13]](_0x6d96xb));delete _0x6d96xb[_0x77df[16]];_0x6d96x5[_0x77df[9]](_0x6d96x6)[_0x77df[17]](_0x6d96xb)}}exports[_0x77df[18]]= function(_0x6d96xc,_0x6d96x5){logger[_0x77df[11]](_0x77df[19]);return pm2[_0x77df[19]]()[_0x77df[25]](function(_0x6d96xd){if(_0x6d96xd){logger[_0x77df[11]](_0x77df[5],_0x77df[18],200,_0x77df[10]);logger[_0x77df[14]](_0x77df[12],_0x77df[18],200,_0x77df[10],JSON[_0x77df[13]](_0x6d96xd));var _0x6d96xe=_[_0x77df[23]](_0x6d96xd,function(_0x6d96xf){return _0x6d96xf[_0x77df[16]]=== _0x77df[21]|| _0x6d96xf[_0x77df[16]]=== _0x77df[22]});return _0x6d96x5[_0x77df[9]](200)[_0x77df[15]]({rows:_0x6d96xe,count:_0x6d96xe[_0x77df[24]]})};return null})[_0x77df[20]](handleError(_0x6d96x5,null,_0x77df[18]))};exports[_0x77df[26]]= function(_0x6d96xc,_0x6d96x5){return pm2[_0x77df[29]](_0x6d96xc[_0x77df[28]][_0x77df[27]])[_0x77df[25]](function(_0x6d96x8){if(_0x6d96x8){logger[_0x77df[11]](_0x77df[5],_0x77df[26],200,_0x77df[10]);logger[_0x77df[14]](_0x77df[12],_0x77df[26],200,_0x77df[10],JSON[_0x77df[13]](_0x6d96x8));return _0x6d96x5[_0x77df[9]](200)[_0x77df[15]](_0x6d96x8)};return null})[_0x77df[25]](handleEntityNotFound(_0x6d96x5,null,_0x77df[26]))[_0x77df[20]](handleError(_0x6d96x5,null,_0x77df[26]))};exports[_0x77df[30]]= function(_0x6d96xc,_0x6d96x5){if(_0x6d96xc[_0x77df[31]][_0x77df[27]]){delete _0x6d96xc[_0x77df[31]][_0x77df[27]]};var _0x6d96x10={online:_0x77df[32],stopped:_0x77df[33]};logger[_0x77df[11]](JSON[_0x77df[13]](_0x6d96xc[_0x77df[31]]));logger[_0x77df[11]](JSON[_0x77df[13]](_0x6d96xc[_0x77df[28]]));if(_0x6d96x10[_0x77df[34]](_0x6d96xc[_0x77df[31]][_0x77df[9]])){return pm2[_0x6d96x10[_0x6d96xc[_0x77df[31]][_0x77df[9]]]](_0x6d96xc[_0x77df[28]][_0x77df[27]])[_0x77df[25]](respondWithResult(_0x6d96x5,200,_0x77df[30]))[_0x77df[20]](handleError(_0x6d96x5,null,_0x77df[30]))}else {logger[_0x77df[7]](_0x77df[5],_0x77df[30],500,_0x77df[6]);return _0x6d96x5[_0x77df[9]](500)[_0x77df[17]]({message:_0x77df[35]})}}
\ No newline at end of file
index 86f877c..d73e1c5 100644 (file)
@@ -1 +1 @@
-var _0xbb27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x72\x70\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x67\x65\x74","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x68\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x72\x65\x64\x69\x72\x65\x63\x74\x2F\x3A\x65\x78\x74\x65\x6E","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x2F\x61\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x73","\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xbb27[0];var multer=require(_0xbb27[1]);var util=require(_0xbb27[2]);var path=require(_0xbb27[3]);var express=require(_0xbb27[4]);var router=express.Router();var auth=require(_0xbb27[5]);var controller=require(_0xbb27[6]);router[_0xbb27[9]](_0xbb27[7],controller[_0xbb27[8]]);router[_0xbb27[9]](_0xbb27[10],controller[_0xbb27[11]]);router[_0xbb27[9]](_0xbb27[12],controller[_0xbb27[13]]);router[_0xbb27[9]](_0xbb27[14],controller[_0xbb27[15]]);router[_0xbb27[9]](_0xbb27[16],controller[_0xbb27[17]]);router[_0xbb27[9]](_0xbb27[18],controller[_0xbb27[19]]);router[_0xbb27[9]](_0xbb27[20],controller[_0xbb27[21]]);router[_0xbb27[9]](_0xbb27[22],controller[_0xbb27[23]]);router[_0xbb27[9]](_0xbb27[24],controller[_0xbb27[25]]);router[_0xbb27[9]](_0xbb27[26],controller[_0xbb27[27]]);router[_0xbb27[9]](_0xbb27[28],controller[_0xbb27[29]]);module[_0xbb27[30]]= router
\ No newline at end of file
+var _0x7552=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x72\x70\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x67\x65\x74","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x68\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x72\x65\x64\x69\x72\x65\x63\x74\x2F\x3A\x65\x78\x74\x65\x6E","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x2F\x61\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x73","\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x7552[0];var multer=require(_0x7552[1]);var util=require(_0x7552[2]);var path=require(_0x7552[3]);var express=require(_0x7552[4]);var router=express.Router();var auth=require(_0x7552[5]);var controller=require(_0x7552[6]);router[_0x7552[9]](_0x7552[7],controller[_0x7552[8]]);router[_0x7552[9]](_0x7552[10],controller[_0x7552[11]]);router[_0x7552[9]](_0x7552[12],controller[_0x7552[13]]);router[_0x7552[9]](_0x7552[14],controller[_0x7552[15]]);router[_0x7552[9]](_0x7552[16],controller[_0x7552[17]]);router[_0x7552[9]](_0x7552[18],controller[_0x7552[19]]);router[_0x7552[9]](_0x7552[20],controller[_0x7552[21]]);router[_0x7552[9]](_0x7552[22],controller[_0x7552[23]]);router[_0x7552[9]](_0x7552[24],controller[_0x7552[25]]);router[_0x7552[9]](_0x7552[26],controller[_0x7552[27]]);router[_0x7552[9]](_0x7552[28],controller[_0x7552[29]]);module[_0x7552[30]]= router
\ No newline at end of file
index 5cd9ade..8604e29 100644 (file)
@@ -1 +1 @@
-var _0x9f8a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x73\x65\x6E\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x71\x75\x65\x72\x79","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x4F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x54\x72\x75\x6E\x6B\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E\x73"];_0x9f8a[0];var BPromise=require(_0x9f8a[1]);var moment=require(_0x9f8a[2]);var _=require(_0x9f8a[3]);var db=require(_0x9f8a[5])[_0x9f8a[4]];var logger=require(_0x9f8a[7])(_0x9f8a[6]);var jayson=require(_0x9f8a[8]);var client=jayson[_0x9f8a[10]][_0x9f8a[9]]({port:9002});function respondWithRpcPromise(_0x9f40x9,_0x9f40xa,_0x9f40xb){return  new BPromise(function(_0x9f40xc,_0x9f40xd){return client[_0x9f8a[23]](_0x9f40x9,_0x9f40xb)[_0x9f8a[22]](function(_0x9f40xf){logger[_0x9f8a[15]](_0x9f8a[11],_0x9f40xa,_0x9f8a[14]);logger[_0x9f8a[18]](_0x9f8a[16],_0x9f40xa,_0x9f8a[14],JSON[_0x9f8a[17]](_0x9f40xf));if(_0x9f40xf[_0x9f8a[12]]){if(_0x9f40xf[_0x9f8a[12]][_0x9f8a[19]]=== 500){logger[_0x9f8a[12]](_0x9f8a[11],_0x9f40xa,_0x9f40xf[_0x9f8a[12]][_0x9f8a[20]]);return _0x9f40xd(_0x9f40xf[_0x9f8a[12]][_0x9f8a[20]])};logger[_0x9f8a[12]](_0x9f8a[11],_0x9f40xa,_0x9f40xf[_0x9f8a[12]][_0x9f8a[20]]);return _0x9f40xc(_0x9f40xf[_0x9f8a[12]][_0x9f8a[20]])}else {logger[_0x9f8a[15]](_0x9f8a[11],_0x9f40xa,_0x9f8a[14]);_0x9f40xc(_0x9f40xf[_0x9f8a[21]])}})[_0x9f8a[13]](function(_0x9f40xe){logger[_0x9f8a[12]](_0x9f8a[11],_0x9f40xa,_0x9f40xe);_0x9f40xd(_0x9f40xe)})})}function respondWithResult(_0x9f40xf,_0x9f40x11,_0x9f40xa){_0x9f40x11= _0x9f40x11|| 200;return function(_0x9f40x12){if(_0x9f40x12){logger[_0x9f8a[15]](_0x9f8a[16],_0x9f40xa,_0x9f40x11,_0x9f8a[24]);logger[_0x9f8a[18]](_0x9f8a[25],_0x9f40xa,_0x9f40x11,_0x9f8a[24],JSON[_0x9f8a[17]](_0x9f40x12));return _0x9f40xf[_0x9f8a[27]](_0x9f40x11)[_0x9f8a[26]](_0x9f40x12)};return null}}function handleError(_0x9f40xf,_0x9f40x11,_0x9f40xa){_0x9f40x11= _0x9f40x11|| 500;return function(_0x9f40xe){logger[_0x9f8a[12]](_0x9f8a[11],_0x9f40xa,_0x9f40x11,_0x9f40xe);_0x9f40xf[_0x9f8a[27]](_0x9f40x11)[_0x9f8a[28]](_0x9f40xe)}}exports[_0x9f8a[29]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[30],_0x9f8a[30],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[30]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[30]))};exports[_0x9f8a[32]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[33],_0x9f8a[33],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[33]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[33]))};exports[_0x9f8a[34]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[35],_0x9f8a[35],_[_0x9f8a[37]](_0x9f40xb[_0x9f8a[31]],_0x9f40xb[_0x9f8a[36]]))[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[35]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[35]))};exports[_0x9f8a[38]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[39],_0x9f8a[39],_[_0x9f8a[37]](_0x9f40xb[_0x9f8a[31]],_0x9f40xb[_0x9f8a[36]]))[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[39]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[39]))};exports[_0x9f8a[40]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[41],_0x9f8a[41],_[_0x9f8a[37]](_0x9f40xb[_0x9f8a[31]],_0x9f40xb[_0x9f8a[36]]))[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[41]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[41]))};exports[_0x9f8a[42]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[43],_0x9f8a[43],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[43]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[43]))};exports[_0x9f8a[44]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[45],_0x9f8a[45],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[45]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[45]))};exports[_0x9f8a[46]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[47],_0x9f8a[47],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[47]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[47]))};exports[_0x9f8a[48]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[49],_0x9f8a[49],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[49]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[49]))};exports[_0x9f8a[50]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[51],_0x9f8a[51],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[51]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[51]))};exports[_0x9f8a[52]]= function(_0x9f40xb,_0x9f40xf){return respondWithRpcPromise(_0x9f8a[53],_0x9f8a[53],_0x9f40xb[_0x9f8a[31]])[_0x9f8a[22]](respondWithResult(_0x9f40xf,null,_0x9f8a[53]))[_0x9f8a[13]](handleError(_0x9f40xf,null,_0x9f8a[53]))}
\ No newline at end of file
+var _0xf84f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x73\x65\x6E\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x71\x75\x65\x72\x79","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x4F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x54\x72\x75\x6E\x6B\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E\x73"];_0xf84f[0];var BPromise=require(_0xf84f[1]);var moment=require(_0xf84f[2]);var _=require(_0xf84f[3]);var db=require(_0xf84f[5])[_0xf84f[4]];var logger=require(_0xf84f[7])(_0xf84f[6]);var jayson=require(_0xf84f[8]);var client=jayson[_0xf84f[10]][_0xf84f[9]]({port:9002});function respondWithRpcPromise(_0x9fcfx9,_0x9fcfxa,_0x9fcfxb){return  new BPromise(function(_0x9fcfxc,_0x9fcfxd){return client[_0xf84f[23]](_0x9fcfx9,_0x9fcfxb)[_0xf84f[22]](function(_0x9fcfxf){logger[_0xf84f[15]](_0xf84f[11],_0x9fcfxa,_0xf84f[14]);logger[_0xf84f[18]](_0xf84f[16],_0x9fcfxa,_0xf84f[14],JSON[_0xf84f[17]](_0x9fcfxf));if(_0x9fcfxf[_0xf84f[12]]){if(_0x9fcfxf[_0xf84f[12]][_0xf84f[19]]=== 500){logger[_0xf84f[12]](_0xf84f[11],_0x9fcfxa,_0x9fcfxf[_0xf84f[12]][_0xf84f[20]]);return _0x9fcfxd(_0x9fcfxf[_0xf84f[12]][_0xf84f[20]])};logger[_0xf84f[12]](_0xf84f[11],_0x9fcfxa,_0x9fcfxf[_0xf84f[12]][_0xf84f[20]]);return _0x9fcfxc(_0x9fcfxf[_0xf84f[12]][_0xf84f[20]])}else {logger[_0xf84f[15]](_0xf84f[11],_0x9fcfxa,_0xf84f[14]);_0x9fcfxc(_0x9fcfxf[_0xf84f[21]])}})[_0xf84f[13]](function(_0x9fcfxe){logger[_0xf84f[12]](_0xf84f[11],_0x9fcfxa,_0x9fcfxe);_0x9fcfxd(_0x9fcfxe)})})}function respondWithResult(_0x9fcfxf,_0x9fcfx11,_0x9fcfxa){_0x9fcfx11= _0x9fcfx11|| 200;return function(_0x9fcfx12){if(_0x9fcfx12){logger[_0xf84f[15]](_0xf84f[16],_0x9fcfxa,_0x9fcfx11,_0xf84f[24]);logger[_0xf84f[18]](_0xf84f[25],_0x9fcfxa,_0x9fcfx11,_0xf84f[24],JSON[_0xf84f[17]](_0x9fcfx12));return _0x9fcfxf[_0xf84f[27]](_0x9fcfx11)[_0xf84f[26]](_0x9fcfx12)};return null}}function handleError(_0x9fcfxf,_0x9fcfx11,_0x9fcfxa){_0x9fcfx11= _0x9fcfx11|| 500;return function(_0x9fcfxe){logger[_0xf84f[12]](_0xf84f[11],_0x9fcfxa,_0x9fcfx11,_0x9fcfxe);_0x9fcfxf[_0xf84f[27]](_0x9fcfx11)[_0xf84f[28]](_0x9fcfxe)}}exports[_0xf84f[29]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[30],_0xf84f[30],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[30]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[30]))};exports[_0xf84f[32]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[33],_0xf84f[33],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[33]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[33]))};exports[_0xf84f[34]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[35],_0xf84f[35],_[_0xf84f[37]](_0x9fcfxb[_0xf84f[31]],_0x9fcfxb[_0xf84f[36]]))[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[35]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[35]))};exports[_0xf84f[38]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[39],_0xf84f[39],_[_0xf84f[37]](_0x9fcfxb[_0xf84f[31]],_0x9fcfxb[_0xf84f[36]]))[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[39]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[39]))};exports[_0xf84f[40]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[41],_0xf84f[41],_[_0xf84f[37]](_0x9fcfxb[_0xf84f[31]],_0x9fcfxb[_0xf84f[36]]))[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[41]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[41]))};exports[_0xf84f[42]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[43],_0xf84f[43],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[43]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[43]))};exports[_0xf84f[44]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[45],_0xf84f[45],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[45]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[45]))};exports[_0xf84f[46]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[47],_0xf84f[47],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[47]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[47]))};exports[_0xf84f[48]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[49],_0xf84f[49],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[49]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[49]))};exports[_0xf84f[50]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[51],_0xf84f[51],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[51]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[51]))};exports[_0xf84f[52]]= function(_0x9fcfxb,_0x9fcfxf){return respondWithRpcPromise(_0xf84f[53],_0xf84f[53],_0x9fcfxb[_0xf84f[31]])[_0xf84f[22]](respondWithResult(_0x9fcfxf,null,_0xf84f[53]))[_0xf84f[13]](handleError(_0x9fcfxf,null,_0xf84f[53]))}
\ No newline at end of file
index b7dcc03..bfbc0cc 100644 (file)
@@ -1 +1 @@
-var _0x1248=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1248[0];var multer=require(_0x1248[1]);var util=require(_0x1248[2]);var path=require(_0x1248[3]);var express=require(_0x1248[4]);var router=express.Router();var auth=require(_0x1248[5]);var config=require(_0x1248[6]);var controller=require(_0x1248[7]);router[_0x1248[11]](_0x1248[8],auth[_0x1248[9]](),controller[_0x1248[10]]);router[_0x1248[11]](_0x1248[12],auth[_0x1248[9]](),controller[_0x1248[13]]);router[_0x1248[15]](_0x1248[8],auth[_0x1248[9]](),controller[_0x1248[14]]);router[_0x1248[17]](_0x1248[12],auth[_0x1248[9]](),controller[_0x1248[16]]);router[_0x1248[19]](_0x1248[12],auth[_0x1248[9]](),controller[_0x1248[18]]);module[_0x1248[20]]= router
\ No newline at end of file
+var _0xa2d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa2d0[0];var multer=require(_0xa2d0[1]);var util=require(_0xa2d0[2]);var path=require(_0xa2d0[3]);var express=require(_0xa2d0[4]);var router=express.Router();var auth=require(_0xa2d0[5]);var config=require(_0xa2d0[6]);var controller=require(_0xa2d0[7]);router[_0xa2d0[11]](_0xa2d0[8],auth[_0xa2d0[9]](),controller[_0xa2d0[10]]);router[_0xa2d0[11]](_0xa2d0[12],auth[_0xa2d0[9]](),controller[_0xa2d0[13]]);router[_0xa2d0[15]](_0xa2d0[8],auth[_0xa2d0[9]](),controller[_0xa2d0[14]]);router[_0xa2d0[17]](_0xa2d0[12],auth[_0xa2d0[9]](),controller[_0xa2d0[16]]);router[_0xa2d0[19]](_0xa2d0[12],auth[_0xa2d0[9]](),controller[_0xa2d0[18]]);module[_0xa2d0[20]]= router
\ No newline at end of file
index 8262a49..2ffa296 100644 (file)
@@ -1 +1 @@
-var _0x3c02=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52"];_0x3c02[0];var Sequelize=require(_0x3c02[1]);module[_0x3c02[2]]= {name:{type:Sequelize[_0x3c02[3]]},description:{type:Sequelize[_0x3c02[3]]},type:{type:Sequelize[_0x3c02[3]]},active:{type:Sequelize[_0x3c02[4]],defaultValue:false},reportRange:{type:Sequelize[_0x3c02[3]]},sendMail:{type:Sequelize[_0x3c02[4]],defaultValue:false},email:{type:Sequelize[_0x3c02[3]],validate:{isEmail:true}},validityStart:{type:Sequelize[_0x3c02[5]],defaultValue:8},validityEnd:{type:Sequelize[_0x3c02[5]],defaultValue:16},cronType:{type:Sequelize[_0x3c02[3]]},cron:{type:Sequelize[_0x3c02[3]]},reportType:{type:Sequelize[_0x3c02[3]]},reportId:{type:Sequelize[_0x3c02[5]]},reportOutput:{type:Sequelize[_0x3c02[3]]},defaultEntry:{type:Sequelize[_0x3c02[4]],defaultValue:false}}
\ No newline at end of file
+var _0x5b30=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52"];_0x5b30[0];var Sequelize=require(_0x5b30[1]);module[_0x5b30[2]]= {name:{type:Sequelize[_0x5b30[3]]},description:{type:Sequelize[_0x5b30[3]]},type:{type:Sequelize[_0x5b30[3]]},active:{type:Sequelize[_0x5b30[4]],defaultValue:false},reportRange:{type:Sequelize[_0x5b30[3]]},sendMail:{type:Sequelize[_0x5b30[4]],defaultValue:false},email:{type:Sequelize[_0x5b30[3]],validate:{isEmail:true}},validityStart:{type:Sequelize[_0x5b30[5]],defaultValue:8},validityEnd:{type:Sequelize[_0x5b30[5]],defaultValue:16},cronType:{type:Sequelize[_0x5b30[3]]},cron:{type:Sequelize[_0x5b30[3]]},reportType:{type:Sequelize[_0x5b30[3]]},reportId:{type:Sequelize[_0x5b30[5]]},reportOutput:{type:Sequelize[_0x5b30[3]]},defaultEntry:{type:Sequelize[_0x5b30[4]],defaultValue:false}}
\ No newline at end of file
index 2a9c2fb..f4a19b9 100644 (file)
@@ -1 +1 @@
-var _0xfbc5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x63\x68\x65\x64\x75\x6C\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xfbc5[0];var jsonpatch=require(_0xfbc5[1]);var rp=require(_0xfbc5[2]);var moment=require(_0xfbc5[3]);var BPromise=require(_0xfbc5[4]);var util=require(_0xfbc5[5]);var path=require(_0xfbc5[6]);var sox=require(_0xfbc5[7]);var ejs=require(_0xfbc5[8]);var fs=require(_0xfbc5[9]);var _=require(_0xfbc5[10]);var squel=require(_0xfbc5[11]);var crypto=require(_0xfbc5[12]);var jsforce=require(_0xfbc5[13]);var toCsv=require(_0xfbc5[14]);var qs=require(_0xfbc5[15]);var logger=require(_0xfbc5[17])(_0xfbc5[16]);var utils=require(_0xfbc5[18]);var config=require(_0xfbc5[19]);var db=require(_0xfbc5[21])[_0xfbc5[20]];function respondWithStatusCode(_0x2cebx15,_0x2cebx16,_0x2cebx17){_0x2cebx16= _0x2cebx16|| 204;return function(_0x2cebx18){if(_0x2cebx18){logger[_0xfbc5[24]](_0xfbc5[22],_0x2cebx17,_0x2cebx16,_0xfbc5[23]);logger[_0xfbc5[26]](_0xfbc5[25],_0x2cebx17,_0x2cebx16,_0xfbc5[23]);return _0x2cebx15[_0xfbc5[27]](_0x2cebx16)};return _0x2cebx15[_0xfbc5[29]](304)[_0xfbc5[28]]()}}function respondWithResult(_0x2cebx15,_0x2cebx16,_0x2cebx17){_0x2cebx16= _0x2cebx16|| 200;return function(_0x2cebx18){if(_0x2cebx18){logger[_0xfbc5[24]](_0xfbc5[22],_0x2cebx17,_0x2cebx16,_0xfbc5[30]);logger[_0xfbc5[26]](_0xfbc5[25],_0x2cebx17,_0x2cebx16,_0xfbc5[30],JSON[_0xfbc5[31]](_0x2cebx18));return _0x2cebx15[_0xfbc5[29]](_0x2cebx16)[_0xfbc5[32]](_0x2cebx18)};return _0x2cebx15[_0xfbc5[29]](304)[_0xfbc5[28]]()}}function respondWithFilteredResult(_0x2cebx15,_0x2cebx1b,_0x2cebx17){return function(_0x2cebx18){if(_0x2cebx18){var _0x2cebx1c=_0x2cebx18[_0xfbc5[33]],_0x2cebx1d=_0x2cebx1b[_0xfbc5[34]],_0x2cebx1e=_0x2cebx1b[_0xfbc5[34]]+ _0x2cebx1b[_0xfbc5[35]],_0x2cebx16;if(_0x2cebx1e>= _0x2cebx1c){_0x2cebx1e= _0x2cebx1c;_0x2cebx16= 200}else {_0x2cebx16= 206};_0x2cebx15[_0xfbc5[29]](_0x2cebx16);logger[_0xfbc5[24]](_0xfbc5[22],_0x2cebx17,_0x2cebx16,_0xfbc5[36]);logger[_0xfbc5[26]](_0xfbc5[25],_0x2cebx17,_0x2cebx16,_0xfbc5[30],JSON[_0xfbc5[31]](_0x2cebx18));return _0x2cebx15[_0xfbc5[40]](_0xfbc5[37],_0x2cebx1d+ _0xfbc5[38]+ _0x2cebx1e+ _0xfbc5[39]+ _0x2cebx1c)[_0xfbc5[32]](_0x2cebx18)};return null}}function patchUpdates(_0x2cebx20){return function(_0x2cebx18){try{jsonpatch[_0xfbc5[41]](_0x2cebx18,_0x2cebx20,true)}catch(err){return BPromise[_0xfbc5[42]](err)};return _0x2cebx18[_0xfbc5[43]]()}}function saveUpdates(_0x2cebx22,_0x2cebx16,_0x2cebx17){return function(_0x2cebx18){if(_0x2cebx18){return _0x2cebx18[_0xfbc5[46]](_0x2cebx22)[_0xfbc5[45]](function(_0x2cebx23){logger[_0xfbc5[24]](_0xfbc5[22],_0x2cebx17,_0x2cebx16,_0xfbc5[44]);logger[_0xfbc5[26]](_0xfbc5[25],_0x2cebx17,_0x2cebx16,_0xfbc5[44],JSON[_0xfbc5[31]](_0x2cebx18));return _0x2cebx23})};return null}}function removeEntity(_0x2cebx15,_0x2cebx16,_0x2cebx17){return function(_0x2cebx18){if(_0x2cebx18){return _0x2cebx18[_0xfbc5[48]]()[_0xfbc5[45]](function(){logger[_0xfbc5[24]](_0xfbc5[22],_0x2cebx17,_0x2cebx16,_0xfbc5[47]);logger[_0xfbc5[26]](_0xfbc5[25],_0x2cebx17,_0x2cebx16,_0xfbc5[47],JSON[_0xfbc5[31]](_0x2cebx18));_0x2cebx15[_0xfbc5[29]](204)[_0xfbc5[28]]()})}}}function handleEntityNotFound(_0x2cebx15,_0x2cebx16,_0x2cebx17){return function(_0x2cebx18){if(!_0x2cebx18){logger[_0xfbc5[50]](_0xfbc5[22],_0x2cebx17,404,_0xfbc5[49]);_0x2cebx15[_0xfbc5[29]](404)[_0xfbc5[28]]();return null};return _0x2cebx18}}function handleError(_0x2cebx15,_0x2cebx16,_0x2cebx17){_0x2cebx16= _0x2cebx16|| 500;return function(_0x2cebx27){logger[_0xfbc5[50]](_0xfbc5[22],_0x2cebx17,_0x2cebx16,JSON[_0xfbc5[31]](_0x2cebx27));delete _0x2cebx27[_0xfbc5[51]];_0x2cebx15[_0xfbc5[29]](_0x2cebx16)[_0xfbc5[52]](_0x2cebx27)}}exports[_0xfbc5[53]]= function(_0x2cebx28,_0x2cebx15){var _0x2cebx1b={},_0x2cebx29={};_0x2cebx29[_0xfbc5[54]]= _[_0xfbc5[57]](db[_0xfbc5[56]][_0xfbc5[55]]);_0x2cebx29[_0xfbc5[58]]= _[_0xfbc5[57]](_0x2cebx28[_0xfbc5[58]]);_0x2cebx29[_0xfbc5[59]]= _[_0xfbc5[60]](_0x2cebx29[_0xfbc5[54]],_0x2cebx29[_0xfbc5[58]]);_0x2cebx1b[_0xfbc5[61]]= _[_0xfbc5[60]](_0x2cebx29[_0xfbc5[54]],qs[_0xfbc5[62]](_0x2cebx28[_0xfbc5[58]][_0xfbc5[62]]));_0x2cebx1b[_0xfbc5[61]]= (_0x2cebx1b[_0xfbc5[61]][_0xfbc5[63]])?_0x2cebx1b[_0xfbc5[61]]:_0x2cebx29[_0xfbc5[54]];if(!_0x2cebx28[_0xfbc5[58]][_0xfbc5[65]](_0xfbc5[64])){_0x2cebx1b[_0xfbc5[35]]= qs[_0xfbc5[35]](_0x2cebx28[_0xfbc5[58]][_0xfbc5[35]]);_0x2cebx1b[_0xfbc5[34]]= qs[_0xfbc5[34]](_0x2cebx28[_0xfbc5[58]][_0xfbc5[34]])};_0x2cebx1b[_0xfbc5[66]]= qs[_0xfbc5[67]](_0x2cebx28[_0xfbc5[58]][_0xfbc5[67]]);_0x2cebx1b[_0xfbc5[68]]= qs[_0xfbc5[59]](_[_0xfbc5[69]](_0x2cebx28[_0xfbc5[58]],_0x2cebx29[_0xfbc5[59]]));if(_0x2cebx28[_0xfbc5[58]][_0xfbc5[70]]){_0x2cebx1b[_0xfbc5[68]]= _[_0xfbc5[73]](_0x2cebx1b[_0xfbc5[68]],{$or:_[_0xfbc5[72]](_0x2cebx1b[_0xfbc5[61]],function(_0x2cebx2a){var _0x2cebx2b={};_0x2cebx2b[_0x2cebx2a]= {$like:_0xfbc5[71]+ _0x2cebx28[_0xfbc5[58]][_0xfbc5[70]]+ _0xfbc5[71]};return _0x2cebx2b})})};_0x2cebx1b= _[_0xfbc5[73]]({},_0x2cebx1b,_0x2cebx28[_0xfbc5[74]]);return db[_0xfbc5[56]][_0xfbc5[76]](_0x2cebx1b)[_0xfbc5[45]](respondWithFilteredResult(_0x2cebx15,_0x2cebx1b,_0xfbc5[53]))[_0xfbc5[75]](handleError(_0x2cebx15,null,_0xfbc5[53]))};exports[_0xfbc5[77]]= function(_0x2cebx28,_0x2cebx15){var _0x2cebx1b={raw:false,where:{id:_0x2cebx28[_0xfbc5[79]][_0xfbc5[78]]}},_0x2cebx29={};_0x2cebx29[_0xfbc5[54]]= _[_0xfbc5[57]](db[_0xfbc5[56]][_0xfbc5[55]]);_0x2cebx29[_0xfbc5[58]]= _[_0xfbc5[57]](_0x2cebx28[_0xfbc5[58]]);_0x2cebx29[_0xfbc5[59]]= _[_0xfbc5[60]](_0x2cebx29[_0xfbc5[54]],_0x2cebx29[_0xfbc5[58]]);_0x2cebx1b[_0xfbc5[61]]= _[_0xfbc5[60]](_0x2cebx29[_0xfbc5[54]],qs[_0xfbc5[62]](_0x2cebx28[_0xfbc5[58]][_0xfbc5[62]]));_0x2cebx1b[_0xfbc5[61]]= (_0x2cebx1b[_0xfbc5[61]][_0xfbc5[63]])?_0x2cebx1b[_0xfbc5[61]]:_0x2cebx29[_0xfbc5[54]];_0x2cebx1b= _[_0xfbc5[73]]({},_0x2cebx1b,_0x2cebx28[_0xfbc5[74]]);return db[_0xfbc5[56]][_0xfbc5[80]](_0x2cebx1b)[_0xfbc5[45]](handleEntityNotFound(_0x2cebx15,null,_0xfbc5[77]))[_0xfbc5[45]](respondWithResult(_0x2cebx15,null,_0xfbc5[77]))[_0xfbc5[75]](handleError(_0x2cebx15,null,_0xfbc5[77]))};exports[_0xfbc5[81]]= function(_0x2cebx28,_0x2cebx15){return db[_0xfbc5[56]][_0xfbc5[81]](_0x2cebx28[_0xfbc5[82]],{})[_0xfbc5[45]](respondWithResult(_0x2cebx15,201,_0xfbc5[81]))[_0xfbc5[75]](handleError(_0x2cebx15,null,_0xfbc5[81]))};exports[_0xfbc5[46]]= function(_0x2cebx28,_0x2cebx15){if(_0x2cebx28[_0xfbc5[82]][_0xfbc5[78]]){delete _0x2cebx28[_0xfbc5[82]][_0xfbc5[78]]};return db[_0xfbc5[56]][_0xfbc5[80]]({where:{id:_0x2cebx28[_0xfbc5[79]][_0xfbc5[78]]}})[_0xfbc5[45]](handleEntityNotFound(_0x2cebx15,null,_0xfbc5[46]))[_0xfbc5[45]](saveUpdates(_0x2cebx28[_0xfbc5[82]],null,_0xfbc5[46]))[_0xfbc5[45]](respondWithResult(_0x2cebx15,null,_0xfbc5[46]))[_0xfbc5[75]](handleError(_0x2cebx15,null,_0xfbc5[46]))};exports[_0xfbc5[48]]= function(_0x2cebx28,_0x2cebx15){return db[_0xfbc5[56]][_0xfbc5[80]]({where:{id:_0x2cebx28[_0xfbc5[79]][_0xfbc5[78]]}})[_0xfbc5[45]](handleEntityNotFound(_0x2cebx15,null,_0xfbc5[48]))[_0xfbc5[45]](removeEntity(_0x2cebx15,null,_0xfbc5[48]))[_0xfbc5[75]](handleError(_0x2cebx15,null,_0xfbc5[48]))}
\ No newline at end of file
+var _0xe6c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x63\x68\x65\x64\x75\x6C\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xe6c9[0];var jsonpatch=require(_0xe6c9[1]);var rp=require(_0xe6c9[2]);var moment=require(_0xe6c9[3]);var BPromise=require(_0xe6c9[4]);var util=require(_0xe6c9[5]);var path=require(_0xe6c9[6]);var sox=require(_0xe6c9[7]);var ejs=require(_0xe6c9[8]);var fs=require(_0xe6c9[9]);var _=require(_0xe6c9[10]);var squel=require(_0xe6c9[11]);var crypto=require(_0xe6c9[12]);var jsforce=require(_0xe6c9[13]);var toCsv=require(_0xe6c9[14]);var qs=require(_0xe6c9[15]);var logger=require(_0xe6c9[17])(_0xe6c9[16]);var utils=require(_0xe6c9[18]);var config=require(_0xe6c9[19]);var db=require(_0xe6c9[21])[_0xe6c9[20]];function respondWithStatusCode(_0xfad0x15,_0xfad0x16,_0xfad0x17){_0xfad0x16= _0xfad0x16|| 204;return function(_0xfad0x18){if(_0xfad0x18){logger[_0xe6c9[24]](_0xe6c9[22],_0xfad0x17,_0xfad0x16,_0xe6c9[23]);logger[_0xe6c9[26]](_0xe6c9[25],_0xfad0x17,_0xfad0x16,_0xe6c9[23]);return _0xfad0x15[_0xe6c9[27]](_0xfad0x16)};return _0xfad0x15[_0xe6c9[29]](304)[_0xe6c9[28]]()}}function respondWithResult(_0xfad0x15,_0xfad0x16,_0xfad0x17){_0xfad0x16= _0xfad0x16|| 200;return function(_0xfad0x18){if(_0xfad0x18){logger[_0xe6c9[24]](_0xe6c9[22],_0xfad0x17,_0xfad0x16,_0xe6c9[30]);logger[_0xe6c9[26]](_0xe6c9[25],_0xfad0x17,_0xfad0x16,_0xe6c9[30],JSON[_0xe6c9[31]](_0xfad0x18));return _0xfad0x15[_0xe6c9[29]](_0xfad0x16)[_0xe6c9[32]](_0xfad0x18)};return _0xfad0x15[_0xe6c9[29]](304)[_0xe6c9[28]]()}}function respondWithFilteredResult(_0xfad0x15,_0xfad0x1b,_0xfad0x17){return function(_0xfad0x18){if(_0xfad0x18){var _0xfad0x1c=_0xfad0x18[_0xe6c9[33]],_0xfad0x1d=_0xfad0x1b[_0xe6c9[34]],_0xfad0x1e=_0xfad0x1b[_0xe6c9[34]]+ _0xfad0x1b[_0xe6c9[35]],_0xfad0x16;if(_0xfad0x1e>= _0xfad0x1c){_0xfad0x1e= _0xfad0x1c;_0xfad0x16= 200}else {_0xfad0x16= 206};_0xfad0x15[_0xe6c9[29]](_0xfad0x16);logger[_0xe6c9[24]](_0xe6c9[22],_0xfad0x17,_0xfad0x16,_0xe6c9[36]);logger[_0xe6c9[26]](_0xe6c9[25],_0xfad0x17,_0xfad0x16,_0xe6c9[30],JSON[_0xe6c9[31]](_0xfad0x18));return _0xfad0x15[_0xe6c9[40]](_0xe6c9[37],_0xfad0x1d+ _0xe6c9[38]+ _0xfad0x1e+ _0xe6c9[39]+ _0xfad0x1c)[_0xe6c9[32]](_0xfad0x18)};return null}}function patchUpdates(_0xfad0x20){return function(_0xfad0x18){try{jsonpatch[_0xe6c9[41]](_0xfad0x18,_0xfad0x20,true)}catch(err){return BPromise[_0xe6c9[42]](err)};return _0xfad0x18[_0xe6c9[43]]()}}function saveUpdates(_0xfad0x22,_0xfad0x16,_0xfad0x17){return function(_0xfad0x18){if(_0xfad0x18){return _0xfad0x18[_0xe6c9[46]](_0xfad0x22)[_0xe6c9[45]](function(_0xfad0x23){logger[_0xe6c9[24]](_0xe6c9[22],_0xfad0x17,_0xfad0x16,_0xe6c9[44]);logger[_0xe6c9[26]](_0xe6c9[25],_0xfad0x17,_0xfad0x16,_0xe6c9[44],JSON[_0xe6c9[31]](_0xfad0x18));return _0xfad0x23})};return null}}function removeEntity(_0xfad0x15,_0xfad0x16,_0xfad0x17){return function(_0xfad0x18){if(_0xfad0x18){return _0xfad0x18[_0xe6c9[48]]()[_0xe6c9[45]](function(){logger[_0xe6c9[24]](_0xe6c9[22],_0xfad0x17,_0xfad0x16,_0xe6c9[47]);logger[_0xe6c9[26]](_0xe6c9[25],_0xfad0x17,_0xfad0x16,_0xe6c9[47],JSON[_0xe6c9[31]](_0xfad0x18));_0xfad0x15[_0xe6c9[29]](204)[_0xe6c9[28]]()})}}}function handleEntityNotFound(_0xfad0x15,_0xfad0x16,_0xfad0x17){return function(_0xfad0x18){if(!_0xfad0x18){logger[_0xe6c9[50]](_0xe6c9[22],_0xfad0x17,404,_0xe6c9[49]);_0xfad0x15[_0xe6c9[29]](404)[_0xe6c9[28]]();return null};return _0xfad0x18}}function handleError(_0xfad0x15,_0xfad0x16,_0xfad0x17){_0xfad0x16= _0xfad0x16|| 500;return function(_0xfad0x27){logger[_0xe6c9[50]](_0xe6c9[22],_0xfad0x17,_0xfad0x16,JSON[_0xe6c9[31]](_0xfad0x27));delete _0xfad0x27[_0xe6c9[51]];_0xfad0x15[_0xe6c9[29]](_0xfad0x16)[_0xe6c9[52]](_0xfad0x27)}}exports[_0xe6c9[53]]= function(_0xfad0x28,_0xfad0x15){var _0xfad0x1b={},_0xfad0x29={};_0xfad0x29[_0xe6c9[54]]= _[_0xe6c9[57]](db[_0xe6c9[56]][_0xe6c9[55]]);_0xfad0x29[_0xe6c9[58]]= _[_0xe6c9[57]](_0xfad0x28[_0xe6c9[58]]);_0xfad0x29[_0xe6c9[59]]= _[_0xe6c9[60]](_0xfad0x29[_0xe6c9[54]],_0xfad0x29[_0xe6c9[58]]);_0xfad0x1b[_0xe6c9[61]]= _[_0xe6c9[60]](_0xfad0x29[_0xe6c9[54]],qs[_0xe6c9[62]](_0xfad0x28[_0xe6c9[58]][_0xe6c9[62]]));_0xfad0x1b[_0xe6c9[61]]= (_0xfad0x1b[_0xe6c9[61]][_0xe6c9[63]])?_0xfad0x1b[_0xe6c9[61]]:_0xfad0x29[_0xe6c9[54]];if(!_0xfad0x28[_0xe6c9[58]][_0xe6c9[65]](_0xe6c9[64])){_0xfad0x1b[_0xe6c9[35]]= qs[_0xe6c9[35]](_0xfad0x28[_0xe6c9[58]][_0xe6c9[35]]);_0xfad0x1b[_0xe6c9[34]]= qs[_0xe6c9[34]](_0xfad0x28[_0xe6c9[58]][_0xe6c9[34]])};_0xfad0x1b[_0xe6c9[66]]= qs[_0xe6c9[67]](_0xfad0x28[_0xe6c9[58]][_0xe6c9[67]]);_0xfad0x1b[_0xe6c9[68]]= qs[_0xe6c9[59]](_[_0xe6c9[69]](_0xfad0x28[_0xe6c9[58]],_0xfad0x29[_0xe6c9[59]]));if(_0xfad0x28[_0xe6c9[58]][_0xe6c9[70]]){_0xfad0x1b[_0xe6c9[68]]= _[_0xe6c9[73]](_0xfad0x1b[_0xe6c9[68]],{$or:_[_0xe6c9[72]](_0xfad0x1b[_0xe6c9[61]],function(_0xfad0x2a){var _0xfad0x2b={};_0xfad0x2b[_0xfad0x2a]= {$like:_0xe6c9[71]+ _0xfad0x28[_0xe6c9[58]][_0xe6c9[70]]+ _0xe6c9[71]};return _0xfad0x2b})})};_0xfad0x1b= _[_0xe6c9[73]]({},_0xfad0x1b,_0xfad0x28[_0xe6c9[74]]);return db[_0xe6c9[56]][_0xe6c9[76]](_0xfad0x1b)[_0xe6c9[45]](respondWithFilteredResult(_0xfad0x15,_0xfad0x1b,_0xe6c9[53]))[_0xe6c9[75]](handleError(_0xfad0x15,null,_0xe6c9[53]))};exports[_0xe6c9[77]]= function(_0xfad0x28,_0xfad0x15){var _0xfad0x1b={raw:false,where:{id:_0xfad0x28[_0xe6c9[79]][_0xe6c9[78]]}},_0xfad0x29={};_0xfad0x29[_0xe6c9[54]]= _[_0xe6c9[57]](db[_0xe6c9[56]][_0xe6c9[55]]);_0xfad0x29[_0xe6c9[58]]= _[_0xe6c9[57]](_0xfad0x28[_0xe6c9[58]]);_0xfad0x29[_0xe6c9[59]]= _[_0xe6c9[60]](_0xfad0x29[_0xe6c9[54]],_0xfad0x29[_0xe6c9[58]]);_0xfad0x1b[_0xe6c9[61]]= _[_0xe6c9[60]](_0xfad0x29[_0xe6c9[54]],qs[_0xe6c9[62]](_0xfad0x28[_0xe6c9[58]][_0xe6c9[62]]));_0xfad0x1b[_0xe6c9[61]]= (_0xfad0x1b[_0xe6c9[61]][_0xe6c9[63]])?_0xfad0x1b[_0xe6c9[61]]:_0xfad0x29[_0xe6c9[54]];_0xfad0x1b= _[_0xe6c9[73]]({},_0xfad0x1b,_0xfad0x28[_0xe6c9[74]]);return db[_0xe6c9[56]][_0xe6c9[80]](_0xfad0x1b)[_0xe6c9[45]](handleEntityNotFound(_0xfad0x15,null,_0xe6c9[77]))[_0xe6c9[45]](respondWithResult(_0xfad0x15,null,_0xe6c9[77]))[_0xe6c9[75]](handleError(_0xfad0x15,null,_0xe6c9[77]))};exports[_0xe6c9[81]]= function(_0xfad0x28,_0xfad0x15){return db[_0xe6c9[56]][_0xe6c9[81]](_0xfad0x28[_0xe6c9[82]],{})[_0xe6c9[45]](respondWithResult(_0xfad0x15,201,_0xe6c9[81]))[_0xe6c9[75]](handleError(_0xfad0x15,null,_0xe6c9[81]))};exports[_0xe6c9[46]]= function(_0xfad0x28,_0xfad0x15){if(_0xfad0x28[_0xe6c9[82]][_0xe6c9[78]]){delete _0xfad0x28[_0xe6c9[82]][_0xe6c9[78]]};return db[_0xe6c9[56]][_0xe6c9[80]]({where:{id:_0xfad0x28[_0xe6c9[79]][_0xe6c9[78]]}})[_0xe6c9[45]](handleEntityNotFound(_0xfad0x15,null,_0xe6c9[46]))[_0xe6c9[45]](saveUpdates(_0xfad0x28[_0xe6c9[82]],null,_0xe6c9[46]))[_0xe6c9[45]](respondWithResult(_0xfad0x15,null,_0xe6c9[46]))[_0xe6c9[75]](handleError(_0xfad0x15,null,_0xe6c9[46]))};exports[_0xe6c9[48]]= function(_0xfad0x28,_0xfad0x15){return db[_0xe6c9[56]][_0xe6c9[80]]({where:{id:_0xfad0x28[_0xe6c9[79]][_0xe6c9[78]]}})[_0xe6c9[45]](handleEntityNotFound(_0xfad0x15,null,_0xe6c9[48]))[_0xe6c9[45]](removeEntity(_0xfad0x15,null,_0xe6c9[48]))[_0xe6c9[75]](handleError(_0xfad0x15,null,_0xe6c9[48]))}
\ No newline at end of file
index 49fe6b8..723cb24 100644 (file)
@@ -1 +1 @@
-var _0x5b22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x63\x68\x65\x64\x75\x6C\x65","\x74\x6F\x6F\x6C\x73\x5F\x73\x63\x68\x65\x64\x75\x6C\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x5b22[0];var _=require(_0x5b22[1]);var util=require(_0x5b22[2]);var logger=require(_0x5b22[4])(_0x5b22[3]);var attributes=require(_0x5b22[5]);module[_0x5b22[6]]= function(_0x6487x5,_0x6487x6){return _0x6487x5[_0x5b22[9]](_0x5b22[7],attributes,{tableName:_0x5b22[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd80e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x63\x68\x65\x64\x75\x6C\x65","\x74\x6F\x6F\x6C\x73\x5F\x73\x63\x68\x65\x64\x75\x6C\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xd80e[0];var _=require(_0xd80e[1]);var util=require(_0xd80e[2]);var logger=require(_0xd80e[4])(_0xd80e[3]);var attributes=require(_0xd80e[5]);module[_0xd80e[6]]= function(_0x160ax5,_0x160ax6){return _0x160ax5[_0xd80e[9]](_0xd80e[7],attributes,{tableName:_0xd80e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index c4065fc..6e6d67d 100644 (file)
@@ -1 +1 @@
-var _0x45a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x45a7[0];var _=require(_0x45a7[1]);var util=require(_0x45a7[2]);var moment=require(_0x45a7[3]);var BPromise=require(_0x45a7[4]);var db=require(_0x45a7[6])[_0x45a7[5]];var utils=require(_0x45a7[7]);var logger=require(_0x45a7[9])(_0x45a7[8]);var jayson=require(_0x45a7[10]);var client=jayson[_0x45a7[12]][_0x45a7[11]]({port:9002});function respondWithRpcPromise(_0xc43fxb,_0xc43fxc,_0xc43fxd){return  new BPromise(function(_0xc43fxe,_0xc43fxf){return client[_0x45a7[25]](_0xc43fxb,_0xc43fxd)[_0x45a7[24]](function(_0xc43fx11){logger[_0x45a7[17]](_0x45a7[13],_0xc43fxc,_0x45a7[16]);logger[_0x45a7[20]](_0x45a7[18],_0xc43fxc,_0x45a7[16],JSON[_0x45a7[19]](_0xc43fx11));if(_0xc43fx11[_0x45a7[14]]){if(_0xc43fx11[_0x45a7[14]][_0x45a7[21]]=== 500){logger[_0x45a7[14]](_0x45a7[13],_0xc43fxc,_0xc43fx11[_0x45a7[14]][_0x45a7[22]]);return _0xc43fxf(_0xc43fx11[_0x45a7[14]][_0x45a7[22]])};logger[_0x45a7[14]](_0x45a7[13],_0xc43fxc,_0xc43fx11[_0x45a7[14]][_0x45a7[22]]);return _0xc43fxe(_0xc43fx11[_0x45a7[14]][_0x45a7[22]])}else {logger[_0x45a7[17]](_0x45a7[13],_0xc43fxc,_0x45a7[16]);_0xc43fxe(_0xc43fx11[_0x45a7[23]][_0x45a7[22]])}})[_0x45a7[15]](function(_0xc43fx10){logger[_0x45a7[14]](_0x45a7[13],_0xc43fxc,_0xc43fx10);_0xc43fxf(_0xc43fx10)})})}
\ No newline at end of file
+var _0xb922=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb922[0];var _=require(_0xb922[1]);var util=require(_0xb922[2]);var moment=require(_0xb922[3]);var BPromise=require(_0xb922[4]);var db=require(_0xb922[6])[_0xb922[5]];var utils=require(_0xb922[7]);var logger=require(_0xb922[9])(_0xb922[8]);var jayson=require(_0xb922[10]);var client=jayson[_0xb922[12]][_0xb922[11]]({port:9002});function respondWithRpcPromise(_0x6621xb,_0x6621xc,_0x6621xd){return  new BPromise(function(_0x6621xe,_0x6621xf){return client[_0xb922[25]](_0x6621xb,_0x6621xd)[_0xb922[24]](function(_0x6621x11){logger[_0xb922[17]](_0xb922[13],_0x6621xc,_0xb922[16]);logger[_0xb922[20]](_0xb922[18],_0x6621xc,_0xb922[16],JSON[_0xb922[19]](_0x6621x11));if(_0x6621x11[_0xb922[14]]){if(_0x6621x11[_0xb922[14]][_0xb922[21]]=== 500){logger[_0xb922[14]](_0xb922[13],_0x6621xc,_0x6621x11[_0xb922[14]][_0xb922[22]]);return _0x6621xf(_0x6621x11[_0xb922[14]][_0xb922[22]])};logger[_0xb922[14]](_0xb922[13],_0x6621xc,_0x6621x11[_0xb922[14]][_0xb922[22]]);return _0x6621xe(_0x6621x11[_0xb922[14]][_0xb922[22]])}else {logger[_0xb922[17]](_0xb922[13],_0x6621xc,_0xb922[16]);_0x6621xe(_0x6621x11[_0xb922[23]][_0xb922[22]])}})[_0xb922[15]](function(_0x6621x10){logger[_0xb922[14]](_0xb922[13],_0x6621xc,_0x6621x10);_0x6621xf(_0x6621x10)})})}
\ No newline at end of file
index a31276c..3292df4 100644 (file)
@@ -1 +1 @@
-var _0x4cf4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F","\x67\x65\x74\x4C\x6F\x67\x6F","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F\x5F\x6C\x6F\x67\x69\x6E","\x67\x65\x74\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73\x2F","\x6A\x6F\x69\x6E","\x25\x73\x25\x73","\x6C\x6F\x67\x6F","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x61\x64\x64\x4C\x6F\x67\x6F","\x70\x6F\x73\x74","\x6C\x6F\x67\x6F\x6C\x6F\x67\x69\x6E","\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x4cf4[0];var multer=require(_0x4cf4[1]);var util=require(_0x4cf4[2]);var path=require(_0x4cf4[3]);var express=require(_0x4cf4[4]);var router=express.Router();var auth=require(_0x4cf4[5]);var config=require(_0x4cf4[6]);var controller=require(_0x4cf4[7]);router[_0x4cf4[11]](_0x4cf4[8],auth[_0x4cf4[9]](),controller[_0x4cf4[10]]);router[_0x4cf4[11]](_0x4cf4[12],controller[_0x4cf4[13]]);router[_0x4cf4[11]](_0x4cf4[14],controller[_0x4cf4[15]]);router[_0x4cf4[11]](_0x4cf4[16],controller[_0x4cf4[17]]);var upload=multer({storage:multer[_0x4cf4[26]]({destination:function(_0x4bdfxa,_0x4bdfxb,_0x4bdfxc){_0x4bdfxc(null,path[_0x4cf4[20]](config[_0x4cf4[18]],_0x4cf4[19]))},filename:function(_0x4bdfxa,_0x4bdfxb,_0x4bdfxc){_0x4bdfxc(null,util[_0x4cf4[25]](_0x4cf4[21],_0x4cf4[22],path[_0x4cf4[24]](_0x4bdfxb[_0x4cf4[23]])))}})});router[_0x4cf4[30]](_0x4cf4[14],upload[_0x4cf4[28]](_0x4cf4[27]),controller[_0x4cf4[29]]);var upload=multer({storage:multer[_0x4cf4[26]]({destination:function(_0x4bdfxa,_0x4bdfxb,_0x4bdfxc){_0x4bdfxc(null,path[_0x4cf4[20]](config[_0x4cf4[18]],_0x4cf4[19]))},filename:function(_0x4bdfxa,_0x4bdfxb,_0x4bdfxc){_0x4bdfxc(null,util[_0x4cf4[25]](_0x4cf4[21],_0x4cf4[31],path[_0x4cf4[24]](_0x4bdfxb[_0x4cf4[23]])))}})});router[_0x4cf4[30]](_0x4cf4[16],upload[_0x4cf4[28]](_0x4cf4[27]),controller[_0x4cf4[32]]);router[_0x4cf4[34]](_0x4cf4[12],auth[_0x4cf4[9]](),controller[_0x4cf4[33]]);module[_0x4cf4[35]]= router
\ No newline at end of file
+var _0xa327=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F","\x67\x65\x74\x4C\x6F\x67\x6F","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F\x5F\x6C\x6F\x67\x69\x6E","\x67\x65\x74\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73\x2F","\x6A\x6F\x69\x6E","\x25\x73\x25\x73","\x6C\x6F\x67\x6F","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x61\x64\x64\x4C\x6F\x67\x6F","\x70\x6F\x73\x74","\x6C\x6F\x67\x6F\x6C\x6F\x67\x69\x6E","\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xa327[0];var multer=require(_0xa327[1]);var util=require(_0xa327[2]);var path=require(_0xa327[3]);var express=require(_0xa327[4]);var router=express.Router();var auth=require(_0xa327[5]);var config=require(_0xa327[6]);var controller=require(_0xa327[7]);router[_0xa327[11]](_0xa327[8],auth[_0xa327[9]](),controller[_0xa327[10]]);router[_0xa327[11]](_0xa327[12],controller[_0xa327[13]]);router[_0xa327[11]](_0xa327[14],controller[_0xa327[15]]);router[_0xa327[11]](_0xa327[16],controller[_0xa327[17]]);var upload=multer({storage:multer[_0xa327[26]]({destination:function(_0xab5fxa,_0xab5fxb,_0xab5fxc){_0xab5fxc(null,path[_0xa327[20]](config[_0xa327[18]],_0xa327[19]))},filename:function(_0xab5fxa,_0xab5fxb,_0xab5fxc){_0xab5fxc(null,util[_0xa327[25]](_0xa327[21],_0xa327[22],path[_0xa327[24]](_0xab5fxb[_0xa327[23]])))}})});router[_0xa327[30]](_0xa327[14],upload[_0xa327[28]](_0xa327[27]),controller[_0xa327[29]]);var upload=multer({storage:multer[_0xa327[26]]({destination:function(_0xab5fxa,_0xab5fxb,_0xab5fxc){_0xab5fxc(null,path[_0xa327[20]](config[_0xa327[18]],_0xa327[19]))},filename:function(_0xab5fxa,_0xab5fxb,_0xab5fxc){_0xab5fxc(null,util[_0xa327[25]](_0xa327[21],_0xa327[31],path[_0xa327[24]](_0xab5fxb[_0xa327[23]])))}})});router[_0xa327[30]](_0xa327[16],upload[_0xa327[28]](_0xa327[27]),controller[_0xa327[32]]);router[_0xa327[34]](_0xa327[12],auth[_0xa327[9]](),controller[_0xa327[33]]);module[_0xa327[35]]= router
\ No newline at end of file
index 56948e4..dc84a43 100644 (file)
@@ -1 +1 @@
-var _0x88bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x69\x6E\x5F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x69\x6E\x5F\x6D\x61\x69\x6C\x62\x6F\x78","\x53\x54\x52\x49\x4E\x47","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x88bd[0];var Sequelize=require(_0x88bd[1]);module[_0x88bd[2]]= {min_internal:{type:Sequelize.INTEGER(11),unique:_0x88bd[3],defaultValue:1000},min_mailbox:{type:Sequelize.INTEGER(11),unique:_0x88bd[4],defaultValue:1000},agi_port:{type:Sequelize.INTEGER(11),defaultValue:4573},soundPath:{type:Sequelize[_0x88bd[5]],defaultValue:_0x88bd[6]},logo:{type:Sequelize[_0x88bd[5]]},defaultLogo:{type:Sequelize[_0x88bd[7]],defaultValue:true},loginLogo:{type:Sequelize[_0x88bd[5]]},defaultLoginLogo:{type:Sequelize[_0x88bd[7]],defaultValue:true},headerWhiteLabel:{type:Sequelize[_0x88bd[5]]},defaultHeaderWhiteLabel:{type:Sequelize[_0x88bd[7]],defaultValue:true},securePassword:{type:Sequelize[_0x88bd[7]],defaultValue:true},firstSetup:{type:Sequelize[_0x88bd[7]],defaultValue:true},stunaddr:{type:Sequelize[_0x88bd[5]]}}
\ No newline at end of file
+var _0x14db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x69\x6E\x5F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x69\x6E\x5F\x6D\x61\x69\x6C\x62\x6F\x78","\x53\x54\x52\x49\x4E\x47","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x14db[0];var Sequelize=require(_0x14db[1]);module[_0x14db[2]]= {min_internal:{type:Sequelize.INTEGER(11),unique:_0x14db[3],defaultValue:1000},min_mailbox:{type:Sequelize.INTEGER(11),unique:_0x14db[4],defaultValue:1000},agi_port:{type:Sequelize.INTEGER(11),defaultValue:4573},soundPath:{type:Sequelize[_0x14db[5]],defaultValue:_0x14db[6]},logo:{type:Sequelize[_0x14db[5]]},defaultLogo:{type:Sequelize[_0x14db[7]],defaultValue:true},loginLogo:{type:Sequelize[_0x14db[5]]},defaultLoginLogo:{type:Sequelize[_0x14db[7]],defaultValue:true},headerWhiteLabel:{type:Sequelize[_0x14db[5]]},defaultHeaderWhiteLabel:{type:Sequelize[_0x14db[7]],defaultValue:true},securePassword:{type:Sequelize[_0x14db[7]],defaultValue:true},firstSetup:{type:Sequelize[_0x14db[7]],defaultValue:true},stunaddr:{type:Sequelize[_0x14db[5]]}}
\ No newline at end of file
index 028882a..d69e543 100644 (file)
@@ -1 +1 @@
-var _0x6b06=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x65\x74\x74\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x72\x74\x70\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x73\x74\x75\x6E\x61\x64\x64\x72","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x72\x74\x70\x5F\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x63\x68\x61\x6E\x67\x65\x64","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x62\x6F\x64\x79","\x61\x64\x64\x4C\x6F\x67\x6F","\x66\x69\x6C\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x6C\x6F\x67\x6F","\x61\x76\x61\x64\x64\x4C\x6F\x67\x6F\x61\x74\x61\x72","\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x6C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F","\x61\x76\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E\x61\x74\x61\x72","\x67\x65\x74\x4C\x6F\x67\x6F","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x64\x65\x66\x61\x75\x6C\x74\x5F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x64\x65\x66\x61\x75\x6C\x74","\x75\x70\x70\x65\x72\x46\x69\x72\x73\x74","\x4C\x6F\x67\x6F\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x67\x6F","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F","\x67\x65\x74\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x64\x65\x66\x61\x75\x6C\x74\x5F\x6C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F\x2E\x70\x6E\x67"];_0x6b06[0];var jsonpatch=require(_0x6b06[1]);var rp=require(_0x6b06[2]);var moment=require(_0x6b06[3]);var BPromise=require(_0x6b06[4]);var util=require(_0x6b06[5]);var path=require(_0x6b06[6]);var sox=require(_0x6b06[7]);var ejs=require(_0x6b06[8]);var fs=require(_0x6b06[9]);var _=require(_0x6b06[10]);var squel=require(_0x6b06[11]);var crypto=require(_0x6b06[12]);var jsforce=require(_0x6b06[13]);var toCsv=require(_0x6b06[14]);var qs=require(_0x6b06[15]);var logger=require(_0x6b06[17])(_0x6b06[16]);var utils=require(_0x6b06[18]);var config=require(_0x6b06[19]);var db=require(_0x6b06[21])[_0x6b06[20]];var jayson=require(_0x6b06[22]);var client=jayson[_0x6b06[24]][_0x6b06[23]]({port:9002});function respondWithRpcPromise(_0x2ba5x17,_0x2ba5x18,_0x2ba5x19){return  new BPromise(function(_0x2ba5x1a,_0x2ba5x1b){return client[_0x6b06[37]](_0x2ba5x17,_0x2ba5x19)[_0x6b06[36]](function(_0x2ba5x1d){logger[_0x6b06[29]](_0x6b06[25],_0x2ba5x18,_0x6b06[28]);logger[_0x6b06[32]](_0x6b06[30],_0x2ba5x18,_0x6b06[28],JSON[_0x6b06[31]](_0x2ba5x1d));if(_0x2ba5x1d[_0x6b06[26]]){if(_0x2ba5x1d[_0x6b06[26]][_0x6b06[33]]=== 500){logger[_0x6b06[26]](_0x6b06[25],_0x2ba5x18,_0x2ba5x1d[_0x6b06[26]][_0x6b06[34]]);return _0x2ba5x1b(_0x2ba5x1d[_0x6b06[26]][_0x6b06[34]])};logger[_0x6b06[26]](_0x6b06[25],_0x2ba5x18,_0x2ba5x1d[_0x6b06[26]][_0x6b06[34]]);return _0x2ba5x1a(_0x2ba5x1d[_0x6b06[26]][_0x6b06[34]])}else {logger[_0x6b06[29]](_0x6b06[25],_0x2ba5x18,_0x6b06[28]);_0x2ba5x1a(_0x2ba5x1d[_0x6b06[35]][_0x6b06[34]])}})[_0x6b06[27]](function(_0x2ba5x1c){logger[_0x6b06[26]](_0x6b06[25],_0x2ba5x18,_0x2ba5x1c);_0x2ba5x1b(_0x2ba5x1c)})})}function respondWithStatusCode(_0x2ba5x1d,_0x2ba5x1f,_0x2ba5x18){_0x2ba5x1f= _0x2ba5x1f|| 204;return function(_0x2ba5x20){if(_0x2ba5x20){logger[_0x6b06[29]](_0x6b06[30],_0x2ba5x18,_0x2ba5x1f,_0x6b06[38]);logger[_0x6b06[32]](_0x6b06[39],_0x2ba5x18,_0x2ba5x1f,_0x6b06[38]);return _0x2ba5x1d[_0x6b06[40]](_0x2ba5x1f)};return _0x2ba5x1d[_0x6b06[42]](304)[_0x6b06[41]]()}}function respondWithResult(_0x2ba5x1d,_0x2ba5x1f,_0x2ba5x18){_0x2ba5x1f= _0x2ba5x1f|| 200;return function(_0x2ba5x20){if(_0x2ba5x20){logger[_0x6b06[29]](_0x6b06[30],_0x2ba5x18,_0x2ba5x1f,_0x6b06[43]);logger[_0x6b06[32]](_0x6b06[39],_0x2ba5x18,_0x2ba5x1f,_0x6b06[43],JSON[_0x6b06[31]](_0x2ba5x20));return _0x2ba5x1d[_0x6b06[42]](_0x2ba5x1f)[_0x6b06[44]](_0x2ba5x20)};return _0x2ba5x1d[_0x6b06[42]](304)[_0x6b06[41]]()}}function respondWithFilteredResult(_0x2ba5x1d,_0x2ba5x23,_0x2ba5x18){return function(_0x2ba5x20){if(_0x2ba5x20){var _0x2ba5x24=_0x2ba5x20[_0x6b06[45]],_0x2ba5x25=_0x2ba5x23[_0x6b06[46]],_0x2ba5x26=_0x2ba5x23[_0x6b06[46]]+ _0x2ba5x23[_0x6b06[47]],_0x2ba5x1f;if(_0x2ba5x26>= _0x2ba5x24){_0x2ba5x26= _0x2ba5x24;_0x2ba5x1f= 200}else {_0x2ba5x1f= 206};_0x2ba5x1d[_0x6b06[42]](_0x2ba5x1f);logger[_0x6b06[29]](_0x6b06[30],_0x2ba5x18,_0x2ba5x1f,_0x6b06[48]);logger[_0x6b06[32]](_0x6b06[39],_0x2ba5x18,_0x2ba5x1f,_0x6b06[43],JSON[_0x6b06[31]](_0x2ba5x20));return _0x2ba5x1d[_0x6b06[52]](_0x6b06[49],_0x2ba5x25+ _0x6b06[50]+ _0x2ba5x26+ _0x6b06[51]+ _0x2ba5x24)[_0x6b06[44]](_0x2ba5x20)};return null}}function patchUpdates(_0x2ba5x28){return function(_0x2ba5x20){try{jsonpatch[_0x6b06[53]](_0x2ba5x20,_0x2ba5x28,true)}catch(err){return BPromise[_0x6b06[54]](err)};return _0x2ba5x20[_0x6b06[55]]()}}function saveUpdates(_0x2ba5x2a,_0x2ba5x1f,_0x2ba5x18){return function(_0x2ba5x20){if(_0x2ba5x20){return _0x2ba5x20[_0x6b06[57]](_0x2ba5x2a)[_0x6b06[36]](function(_0x2ba5x2b){logger[_0x6b06[29]](_0x6b06[30],_0x2ba5x18,_0x2ba5x1f,_0x6b06[56]);logger[_0x6b06[32]](_0x6b06[39],_0x2ba5x18,_0x2ba5x1f,_0x6b06[56],JSON[_0x6b06[31]](_0x2ba5x20));return _0x2ba5x2b})};return null}}function removeEntity(_0x2ba5x1d,_0x2ba5x1f,_0x2ba5x18){return function(_0x2ba5x20){if(_0x2ba5x20){return _0x2ba5x20[_0x6b06[59]]()[_0x6b06[36]](function(){logger[_0x6b06[29]](_0x6b06[30],_0x2ba5x18,_0x2ba5x1f,_0x6b06[58]);logger[_0x6b06[32]](_0x6b06[39],_0x2ba5x18,_0x2ba5x1f,_0x6b06[58],JSON[_0x6b06[31]](_0x2ba5x20));_0x2ba5x1d[_0x6b06[42]](204)[_0x6b06[41]]()})}}}function handleEntityNotFound(_0x2ba5x1d,_0x2ba5x1f,_0x2ba5x18){return function(_0x2ba5x20){if(!_0x2ba5x20){logger[_0x6b06[26]](_0x6b06[30],_0x2ba5x18,404,_0x6b06[60]);_0x2ba5x1d[_0x6b06[42]](404)[_0x6b06[41]]();return null};return _0x2ba5x20}}function handleError(_0x2ba5x1d,_0x2ba5x1f,_0x2ba5x18){_0x2ba5x1f= _0x2ba5x1f|| 500;return function(_0x2ba5x1c){logger[_0x6b06[26]](_0x6b06[30],_0x2ba5x18,_0x2ba5x1f,JSON[_0x6b06[31]](_0x2ba5x1c));delete _0x2ba5x1c[_0x6b06[61]];_0x2ba5x1d[_0x6b06[42]](_0x2ba5x1f)[_0x6b06[62]](_0x2ba5x1c)}}exports[_0x6b06[63]]= function(_0x2ba5x19,_0x2ba5x1d){var _0x2ba5x23={},_0x2ba5x2f={};_0x2ba5x2f[_0x6b06[64]]= _[_0x6b06[67]](db[_0x6b06[66]][_0x6b06[65]]);_0x2ba5x2f[_0x6b06[68]]= _[_0x6b06[67]](_0x2ba5x19[_0x6b06[68]]);_0x2ba5x2f[_0x6b06[69]]= _[_0x6b06[70]](_0x2ba5x2f[_0x6b06[64]],_0x2ba5x2f[_0x6b06[68]]);_0x2ba5x23[_0x6b06[71]]= _[_0x6b06[70]](_0x2ba5x2f[_0x6b06[64]],qs[_0x6b06[72]](_0x2ba5x19[_0x6b06[68]][_0x6b06[72]]));_0x2ba5x23[_0x6b06[71]]= (_0x2ba5x23[_0x6b06[71]][_0x6b06[73]])?_0x2ba5x23[_0x6b06[71]]:_0x2ba5x2f[_0x6b06[64]];if(!_0x2ba5x19[_0x6b06[68]][_0x6b06[75]](_0x6b06[74])){_0x2ba5x23[_0x6b06[47]]= qs[_0x6b06[47]](_0x2ba5x19[_0x6b06[68]][_0x6b06[47]]);_0x2ba5x23[_0x6b06[46]]= qs[_0x6b06[46]](_0x2ba5x19[_0x6b06[68]][_0x6b06[46]])};_0x2ba5x23[_0x6b06[76]]= qs[_0x6b06[77]](_0x2ba5x19[_0x6b06[68]][_0x6b06[77]]);_0x2ba5x23[_0x6b06[78]]= qs[_0x6b06[69]](_[_0x6b06[79]](_0x2ba5x19[_0x6b06[68]],_0x2ba5x2f[_0x6b06[69]]));if(_0x2ba5x19[_0x6b06[68]][_0x6b06[80]]){_0x2ba5x23[_0x6b06[78]]= _[_0x6b06[83]](_0x2ba5x23[_0x6b06[78]],{$or:_[_0x6b06[82]](_0x2ba5x23[_0x6b06[71]],function(_0x2ba5x30){var _0x2ba5x31={};_0x2ba5x31[_0x2ba5x30]= {$like:_0x6b06[81]+ _0x2ba5x19[_0x6b06[68]][_0x6b06[80]]+ _0x6b06[81]};return _0x2ba5x31})})};_0x2ba5x23= _[_0x6b06[83]]({},_0x2ba5x23,_0x2ba5x19[_0x6b06[84]]);return db[_0x6b06[66]][_0x6b06[85]](_0x2ba5x23)[_0x6b06[36]](respondWithFilteredResult(_0x2ba5x1d,_0x2ba5x23,_0x6b06[63]))[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[63]))};exports[_0x6b06[86]]= function(_0x2ba5x19,_0x2ba5x1d){var _0x2ba5x23={raw:false,where:{id:_0x2ba5x19[_0x6b06[88]][_0x6b06[87]]}},_0x2ba5x2f={};_0x2ba5x2f[_0x6b06[64]]= _[_0x6b06[67]](db[_0x6b06[66]][_0x6b06[65]]);_0x2ba5x2f[_0x6b06[68]]= _[_0x6b06[67]](_0x2ba5x19[_0x6b06[68]]);_0x2ba5x2f[_0x6b06[69]]= _[_0x6b06[70]](_0x2ba5x2f[_0x6b06[64]],_0x2ba5x2f[_0x6b06[68]]);_0x2ba5x23[_0x6b06[71]]= _[_0x6b06[70]](_0x2ba5x2f[_0x6b06[64]],qs[_0x6b06[72]](_0x2ba5x19[_0x6b06[68]][_0x6b06[72]]));_0x2ba5x23[_0x6b06[71]]= (_0x2ba5x23[_0x6b06[71]][_0x6b06[73]])?_0x2ba5x23[_0x6b06[71]]:_0x2ba5x2f[_0x6b06[64]];_0x2ba5x23= _[_0x6b06[83]]({},_0x2ba5x23,_0x2ba5x19[_0x6b06[84]]);return db[_0x6b06[66]][_0x6b06[89]](_0x2ba5x23)[_0x6b06[36]](handleEntityNotFound(_0x2ba5x1d,null,_0x6b06[86]))[_0x6b06[36]](respondWithResult(_0x2ba5x1d,null,_0x6b06[86]))[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[86]))};exports[_0x6b06[57]]= function(_0x2ba5x19,_0x2ba5x1d,_0x2ba5x32){var _0x2ba5x33;return db[_0x6b06[66]][_0x6b06[89]]({where:{id:_0x2ba5x19[_0x6b06[88]][_0x6b06[87]]}})[_0x6b06[36]](handleEntityNotFound(_0x2ba5x1d,null,_0x6b06[57]))[_0x6b06[36]](saveUpdates(_0x2ba5x19[_0x6b06[102]],null,_0x6b06[57]))[_0x6b06[36]](function(_0x2ba5x20){if(_0x2ba5x20){_0x2ba5x33= _0x2ba5x20;var _0x2ba5x34=fs[_0x6b06[94]](path[_0x6b06[92]](config[_0x6b06[90]],_0x6b06[91]),_0x6b06[93]);var _0x2ba5x35=ejs[_0x6b06[96]](_0x2ba5x34,{settings:_0x2ba5x20[_0x6b06[95]]?[{stunaddr:_0x2ba5x20[_0x6b06[95]]}]:[]});fs[_0x6b06[98]](_0x6b06[97],_0x2ba5x35);if(_0x2ba5x20[_0x6b06[99]](_0x6b06[95])){return respondWithRpcPromise(_0x6b06[100],_0x6b06[57],{module:_0x6b06[101]})}}})[_0x6b06[36]](function(){return _0x2ba5x33|| null})[_0x6b06[36]](respondWithResult(_0x2ba5x1d,null,_0x6b06[57]))[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[57]))};exports[_0x6b06[103]]= function(_0x2ba5x19,_0x2ba5x1d,_0x2ba5x32){if(_0x2ba5x19[_0x6b06[104]]&& _0x2ba5x19[_0x6b06[104]][_0x6b06[105]]){_0x2ba5x19[_0x6b06[102]][_0x6b06[106]]= _0x2ba5x19[_0x6b06[104]][_0x6b06[105]]};return db[_0x6b06[66]][_0x6b06[89]]({where:{id:_0x2ba5x19[_0x6b06[88]][_0x6b06[87]]}})[_0x6b06[36]](handleEntityNotFound(_0x2ba5x1d,null,_0x6b06[103]))[_0x6b06[36]](saveUpdates(_0x2ba5x19[_0x6b06[102]],null,_0x6b06[103]))[_0x6b06[36]](respondWithResult(_0x2ba5x1d,null,_0x6b06[107]))[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[103]))};exports[_0x6b06[108]]= function(_0x2ba5x19,_0x2ba5x1d,_0x2ba5x32){if(_0x2ba5x19[_0x6b06[104]]&& _0x2ba5x19[_0x6b06[104]][_0x6b06[105]]){_0x2ba5x19[_0x6b06[102]][_0x6b06[109]]= _0x2ba5x19[_0x6b06[104]][_0x6b06[105]]};return db[_0x6b06[66]][_0x6b06[89]]({where:{id:_0x2ba5x19[_0x6b06[88]][_0x6b06[87]]}})[_0x6b06[36]](handleEntityNotFound(_0x2ba5x1d,null,_0x6b06[108]))[_0x6b06[36]](saveUpdates(_0x2ba5x19[_0x6b06[102]],null,_0x6b06[108]))[_0x6b06[36]](respondWithResult(_0x2ba5x1d,null,_0x6b06[110]))[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[108]))};exports[_0x6b06[111]]= function(_0x2ba5x19,_0x2ba5x1d,_0x2ba5x32){var _0x2ba5x36=_0x6b06[112];return db[_0x6b06[66]][_0x6b06[89]]({where:{id:_0x2ba5x19[_0x6b06[88]][_0x6b06[87]]},attributes:[_0x6b06[106],_0x6b06[109],_0x6b06[123],_0x6b06[124]],raw:true})[_0x6b06[36]](handleEntityNotFound(_0x2ba5x1d,null,_0x6b06[111]))[_0x6b06[36]](function(_0x2ba5x20){if(_0x2ba5x20){logger[_0x6b06[29]](_0x6b06[113],_0x6b06[111],_0x6b06[43]);logger[_0x6b06[32]](_0x6b06[114],_0x6b06[111],_0x6b06[43],JSON[_0x6b06[31]](_0x2ba5x20));var _0x2ba5x37=(_0x2ba5x20[_0x6b06[106]]&& fs[_0x6b06[116]](path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x2ba5x20[_0x6b06[106]]))))?path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x2ba5x20[_0x6b06[106]])):path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x6b06[117]));var _0x2ba5x38=_0x6b06[118]+ _[_0x6b06[119]](_0x6b06[106]);if(_0x2ba5x20[_0x2ba5x38]){_0x2ba5x37= path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x6b06[117]))};if(!fs[_0x6b06[116]](_0x2ba5x37)){throw  new db[_0x6b06[121]].ValidationError(_0x6b06[120])};return _0x2ba5x1d[_0x6b06[122]](_0x2ba5x37)}})[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[86]))};exports[_0x6b06[125]]= function(_0x2ba5x19,_0x2ba5x1d,_0x2ba5x32){var _0x2ba5x36=_0x6b06[112];return db[_0x6b06[66]][_0x6b06[89]]({where:{id:_0x2ba5x19[_0x6b06[88]][_0x6b06[87]]},attributes:[_0x6b06[106],_0x6b06[109],_0x6b06[123],_0x6b06[124]],raw:true})[_0x6b06[36]](handleEntityNotFound(_0x2ba5x1d,null,_0x6b06[125]))[_0x6b06[36]](function(_0x2ba5x20){if(_0x2ba5x20){logger[_0x6b06[29]](_0x6b06[113],_0x6b06[125],_0x6b06[43]);logger[_0x6b06[32]](_0x6b06[114],_0x6b06[125],_0x6b06[43],JSON[_0x6b06[31]](_0x2ba5x20));var _0x2ba5x37=(_0x2ba5x20[_0x6b06[109]]&& fs[_0x6b06[116]](path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x2ba5x20[_0x6b06[109]]))))?path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x2ba5x20[_0x6b06[109]])):path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x6b06[126]));var _0x2ba5x38=_0x6b06[118]+ _[_0x6b06[119]](_0x6b06[109]);if(_0x2ba5x20[_0x2ba5x38]){_0x2ba5x37= path[_0x6b06[92]](config[_0x6b06[90]],_0x2ba5x36,_[_0x6b06[115]](_0x6b06[126]))};if(!fs[_0x6b06[116]](_0x2ba5x37)){throw  new db[_0x6b06[121]].ValidationError(_0x6b06[120])};return _0x2ba5x1d[_0x6b06[122]](_0x2ba5x37)}})[_0x6b06[27]](handleError(_0x2ba5x1d,null,_0x6b06[86]))}
\ No newline at end of file
+var _0x379a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x65\x74\x74\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x72\x74\x70\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x73\x74\x75\x6E\x61\x64\x64\x72","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x72\x74\x70\x5F\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x63\x68\x61\x6E\x67\x65\x64","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x62\x6F\x64\x79","\x61\x64\x64\x4C\x6F\x67\x6F","\x66\x69\x6C\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x6C\x6F\x67\x6F","\x61\x76\x61\x64\x64\x4C\x6F\x67\x6F\x61\x74\x61\x72","\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x6C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F","\x61\x76\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E\x61\x74\x61\x72","\x67\x65\x74\x4C\x6F\x67\x6F","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x64\x65\x66\x61\x75\x6C\x74\x5F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x64\x65\x66\x61\x75\x6C\x74","\x75\x70\x70\x65\x72\x46\x69\x72\x73\x74","\x4C\x6F\x67\x6F\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x67\x6F","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F","\x67\x65\x74\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x64\x65\x66\x61\x75\x6C\x74\x5F\x6C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F\x2E\x70\x6E\x67"];_0x379a[0];var jsonpatch=require(_0x379a[1]);var rp=require(_0x379a[2]);var moment=require(_0x379a[3]);var BPromise=require(_0x379a[4]);var util=require(_0x379a[5]);var path=require(_0x379a[6]);var sox=require(_0x379a[7]);var ejs=require(_0x379a[8]);var fs=require(_0x379a[9]);var _=require(_0x379a[10]);var squel=require(_0x379a[11]);var crypto=require(_0x379a[12]);var jsforce=require(_0x379a[13]);var toCsv=require(_0x379a[14]);var qs=require(_0x379a[15]);var logger=require(_0x379a[17])(_0x379a[16]);var utils=require(_0x379a[18]);var config=require(_0x379a[19]);var db=require(_0x379a[21])[_0x379a[20]];var jayson=require(_0x379a[22]);var client=jayson[_0x379a[24]][_0x379a[23]]({port:9002});function respondWithRpcPromise(_0xdcb0x17,_0xdcb0x18,_0xdcb0x19){return  new BPromise(function(_0xdcb0x1a,_0xdcb0x1b){return client[_0x379a[37]](_0xdcb0x17,_0xdcb0x19)[_0x379a[36]](function(_0xdcb0x1d){logger[_0x379a[29]](_0x379a[25],_0xdcb0x18,_0x379a[28]);logger[_0x379a[32]](_0x379a[30],_0xdcb0x18,_0x379a[28],JSON[_0x379a[31]](_0xdcb0x1d));if(_0xdcb0x1d[_0x379a[26]]){if(_0xdcb0x1d[_0x379a[26]][_0x379a[33]]=== 500){logger[_0x379a[26]](_0x379a[25],_0xdcb0x18,_0xdcb0x1d[_0x379a[26]][_0x379a[34]]);return _0xdcb0x1b(_0xdcb0x1d[_0x379a[26]][_0x379a[34]])};logger[_0x379a[26]](_0x379a[25],_0xdcb0x18,_0xdcb0x1d[_0x379a[26]][_0x379a[34]]);return _0xdcb0x1a(_0xdcb0x1d[_0x379a[26]][_0x379a[34]])}else {logger[_0x379a[29]](_0x379a[25],_0xdcb0x18,_0x379a[28]);_0xdcb0x1a(_0xdcb0x1d[_0x379a[35]][_0x379a[34]])}})[_0x379a[27]](function(_0xdcb0x1c){logger[_0x379a[26]](_0x379a[25],_0xdcb0x18,_0xdcb0x1c);_0xdcb0x1b(_0xdcb0x1c)})})}function respondWithStatusCode(_0xdcb0x1d,_0xdcb0x1f,_0xdcb0x18){_0xdcb0x1f= _0xdcb0x1f|| 204;return function(_0xdcb0x20){if(_0xdcb0x20){logger[_0x379a[29]](_0x379a[30],_0xdcb0x18,_0xdcb0x1f,_0x379a[38]);logger[_0x379a[32]](_0x379a[39],_0xdcb0x18,_0xdcb0x1f,_0x379a[38]);return _0xdcb0x1d[_0x379a[40]](_0xdcb0x1f)};return _0xdcb0x1d[_0x379a[42]](304)[_0x379a[41]]()}}function respondWithResult(_0xdcb0x1d,_0xdcb0x1f,_0xdcb0x18){_0xdcb0x1f= _0xdcb0x1f|| 200;return function(_0xdcb0x20){if(_0xdcb0x20){logger[_0x379a[29]](_0x379a[30],_0xdcb0x18,_0xdcb0x1f,_0x379a[43]);logger[_0x379a[32]](_0x379a[39],_0xdcb0x18,_0xdcb0x1f,_0x379a[43],JSON[_0x379a[31]](_0xdcb0x20));return _0xdcb0x1d[_0x379a[42]](_0xdcb0x1f)[_0x379a[44]](_0xdcb0x20)};return _0xdcb0x1d[_0x379a[42]](304)[_0x379a[41]]()}}function respondWithFilteredResult(_0xdcb0x1d,_0xdcb0x23,_0xdcb0x18){return function(_0xdcb0x20){if(_0xdcb0x20){var _0xdcb0x24=_0xdcb0x20[_0x379a[45]],_0xdcb0x25=_0xdcb0x23[_0x379a[46]],_0xdcb0x26=_0xdcb0x23[_0x379a[46]]+ _0xdcb0x23[_0x379a[47]],_0xdcb0x1f;if(_0xdcb0x26>= _0xdcb0x24){_0xdcb0x26= _0xdcb0x24;_0xdcb0x1f= 200}else {_0xdcb0x1f= 206};_0xdcb0x1d[_0x379a[42]](_0xdcb0x1f);logger[_0x379a[29]](_0x379a[30],_0xdcb0x18,_0xdcb0x1f,_0x379a[48]);logger[_0x379a[32]](_0x379a[39],_0xdcb0x18,_0xdcb0x1f,_0x379a[43],JSON[_0x379a[31]](_0xdcb0x20));return _0xdcb0x1d[_0x379a[52]](_0x379a[49],_0xdcb0x25+ _0x379a[50]+ _0xdcb0x26+ _0x379a[51]+ _0xdcb0x24)[_0x379a[44]](_0xdcb0x20)};return null}}function patchUpdates(_0xdcb0x28){return function(_0xdcb0x20){try{jsonpatch[_0x379a[53]](_0xdcb0x20,_0xdcb0x28,true)}catch(err){return BPromise[_0x379a[54]](err)};return _0xdcb0x20[_0x379a[55]]()}}function saveUpdates(_0xdcb0x2a,_0xdcb0x1f,_0xdcb0x18){return function(_0xdcb0x20){if(_0xdcb0x20){return _0xdcb0x20[_0x379a[57]](_0xdcb0x2a)[_0x379a[36]](function(_0xdcb0x2b){logger[_0x379a[29]](_0x379a[30],_0xdcb0x18,_0xdcb0x1f,_0x379a[56]);logger[_0x379a[32]](_0x379a[39],_0xdcb0x18,_0xdcb0x1f,_0x379a[56],JSON[_0x379a[31]](_0xdcb0x20));return _0xdcb0x2b})};return null}}function removeEntity(_0xdcb0x1d,_0xdcb0x1f,_0xdcb0x18){return function(_0xdcb0x20){if(_0xdcb0x20){return _0xdcb0x20[_0x379a[59]]()[_0x379a[36]](function(){logger[_0x379a[29]](_0x379a[30],_0xdcb0x18,_0xdcb0x1f,_0x379a[58]);logger[_0x379a[32]](_0x379a[39],_0xdcb0x18,_0xdcb0x1f,_0x379a[58],JSON[_0x379a[31]](_0xdcb0x20));_0xdcb0x1d[_0x379a[42]](204)[_0x379a[41]]()})}}}function handleEntityNotFound(_0xdcb0x1d,_0xdcb0x1f,_0xdcb0x18){return function(_0xdcb0x20){if(!_0xdcb0x20){logger[_0x379a[26]](_0x379a[30],_0xdcb0x18,404,_0x379a[60]);_0xdcb0x1d[_0x379a[42]](404)[_0x379a[41]]();return null};return _0xdcb0x20}}function handleError(_0xdcb0x1d,_0xdcb0x1f,_0xdcb0x18){_0xdcb0x1f= _0xdcb0x1f|| 500;return function(_0xdcb0x1c){logger[_0x379a[26]](_0x379a[30],_0xdcb0x18,_0xdcb0x1f,JSON[_0x379a[31]](_0xdcb0x1c));delete _0xdcb0x1c[_0x379a[61]];_0xdcb0x1d[_0x379a[42]](_0xdcb0x1f)[_0x379a[62]](_0xdcb0x1c)}}exports[_0x379a[63]]= function(_0xdcb0x19,_0xdcb0x1d){var _0xdcb0x23={},_0xdcb0x2f={};_0xdcb0x2f[_0x379a[64]]= _[_0x379a[67]](db[_0x379a[66]][_0x379a[65]]);_0xdcb0x2f[_0x379a[68]]= _[_0x379a[67]](_0xdcb0x19[_0x379a[68]]);_0xdcb0x2f[_0x379a[69]]= _[_0x379a[70]](_0xdcb0x2f[_0x379a[64]],_0xdcb0x2f[_0x379a[68]]);_0xdcb0x23[_0x379a[71]]= _[_0x379a[70]](_0xdcb0x2f[_0x379a[64]],qs[_0x379a[72]](_0xdcb0x19[_0x379a[68]][_0x379a[72]]));_0xdcb0x23[_0x379a[71]]= (_0xdcb0x23[_0x379a[71]][_0x379a[73]])?_0xdcb0x23[_0x379a[71]]:_0xdcb0x2f[_0x379a[64]];if(!_0xdcb0x19[_0x379a[68]][_0x379a[75]](_0x379a[74])){_0xdcb0x23[_0x379a[47]]= qs[_0x379a[47]](_0xdcb0x19[_0x379a[68]][_0x379a[47]]);_0xdcb0x23[_0x379a[46]]= qs[_0x379a[46]](_0xdcb0x19[_0x379a[68]][_0x379a[46]])};_0xdcb0x23[_0x379a[76]]= qs[_0x379a[77]](_0xdcb0x19[_0x379a[68]][_0x379a[77]]);_0xdcb0x23[_0x379a[78]]= qs[_0x379a[69]](_[_0x379a[79]](_0xdcb0x19[_0x379a[68]],_0xdcb0x2f[_0x379a[69]]));if(_0xdcb0x19[_0x379a[68]][_0x379a[80]]){_0xdcb0x23[_0x379a[78]]= _[_0x379a[83]](_0xdcb0x23[_0x379a[78]],{$or:_[_0x379a[82]](_0xdcb0x23[_0x379a[71]],function(_0xdcb0x30){var _0xdcb0x31={};_0xdcb0x31[_0xdcb0x30]= {$like:_0x379a[81]+ _0xdcb0x19[_0x379a[68]][_0x379a[80]]+ _0x379a[81]};return _0xdcb0x31})})};_0xdcb0x23= _[_0x379a[83]]({},_0xdcb0x23,_0xdcb0x19[_0x379a[84]]);return db[_0x379a[66]][_0x379a[85]](_0xdcb0x23)[_0x379a[36]](respondWithFilteredResult(_0xdcb0x1d,_0xdcb0x23,_0x379a[63]))[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[63]))};exports[_0x379a[86]]= function(_0xdcb0x19,_0xdcb0x1d){var _0xdcb0x23={raw:false,where:{id:_0xdcb0x19[_0x379a[88]][_0x379a[87]]}},_0xdcb0x2f={};_0xdcb0x2f[_0x379a[64]]= _[_0x379a[67]](db[_0x379a[66]][_0x379a[65]]);_0xdcb0x2f[_0x379a[68]]= _[_0x379a[67]](_0xdcb0x19[_0x379a[68]]);_0xdcb0x2f[_0x379a[69]]= _[_0x379a[70]](_0xdcb0x2f[_0x379a[64]],_0xdcb0x2f[_0x379a[68]]);_0xdcb0x23[_0x379a[71]]= _[_0x379a[70]](_0xdcb0x2f[_0x379a[64]],qs[_0x379a[72]](_0xdcb0x19[_0x379a[68]][_0x379a[72]]));_0xdcb0x23[_0x379a[71]]= (_0xdcb0x23[_0x379a[71]][_0x379a[73]])?_0xdcb0x23[_0x379a[71]]:_0xdcb0x2f[_0x379a[64]];_0xdcb0x23= _[_0x379a[83]]({},_0xdcb0x23,_0xdcb0x19[_0x379a[84]]);return db[_0x379a[66]][_0x379a[89]](_0xdcb0x23)[_0x379a[36]](handleEntityNotFound(_0xdcb0x1d,null,_0x379a[86]))[_0x379a[36]](respondWithResult(_0xdcb0x1d,null,_0x379a[86]))[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[86]))};exports[_0x379a[57]]= function(_0xdcb0x19,_0xdcb0x1d,_0xdcb0x32){var _0xdcb0x33;return db[_0x379a[66]][_0x379a[89]]({where:{id:_0xdcb0x19[_0x379a[88]][_0x379a[87]]}})[_0x379a[36]](handleEntityNotFound(_0xdcb0x1d,null,_0x379a[57]))[_0x379a[36]](saveUpdates(_0xdcb0x19[_0x379a[102]],null,_0x379a[57]))[_0x379a[36]](function(_0xdcb0x20){if(_0xdcb0x20){_0xdcb0x33= _0xdcb0x20;var _0xdcb0x34=fs[_0x379a[94]](path[_0x379a[92]](config[_0x379a[90]],_0x379a[91]),_0x379a[93]);var _0xdcb0x35=ejs[_0x379a[96]](_0xdcb0x34,{settings:_0xdcb0x20[_0x379a[95]]?[{stunaddr:_0xdcb0x20[_0x379a[95]]}]:[]});fs[_0x379a[98]](_0x379a[97],_0xdcb0x35);if(_0xdcb0x20[_0x379a[99]](_0x379a[95])){return respondWithRpcPromise(_0x379a[100],_0x379a[57],{module:_0x379a[101]})}}})[_0x379a[36]](function(){return _0xdcb0x33|| null})[_0x379a[36]](respondWithResult(_0xdcb0x1d,null,_0x379a[57]))[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[57]))};exports[_0x379a[103]]= function(_0xdcb0x19,_0xdcb0x1d,_0xdcb0x32){if(_0xdcb0x19[_0x379a[104]]&& _0xdcb0x19[_0x379a[104]][_0x379a[105]]){_0xdcb0x19[_0x379a[102]][_0x379a[106]]= _0xdcb0x19[_0x379a[104]][_0x379a[105]]};return db[_0x379a[66]][_0x379a[89]]({where:{id:_0xdcb0x19[_0x379a[88]][_0x379a[87]]}})[_0x379a[36]](handleEntityNotFound(_0xdcb0x1d,null,_0x379a[103]))[_0x379a[36]](saveUpdates(_0xdcb0x19[_0x379a[102]],null,_0x379a[103]))[_0x379a[36]](respondWithResult(_0xdcb0x1d,null,_0x379a[107]))[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[103]))};exports[_0x379a[108]]= function(_0xdcb0x19,_0xdcb0x1d,_0xdcb0x32){if(_0xdcb0x19[_0x379a[104]]&& _0xdcb0x19[_0x379a[104]][_0x379a[105]]){_0xdcb0x19[_0x379a[102]][_0x379a[109]]= _0xdcb0x19[_0x379a[104]][_0x379a[105]]};return db[_0x379a[66]][_0x379a[89]]({where:{id:_0xdcb0x19[_0x379a[88]][_0x379a[87]]}})[_0x379a[36]](handleEntityNotFound(_0xdcb0x1d,null,_0x379a[108]))[_0x379a[36]](saveUpdates(_0xdcb0x19[_0x379a[102]],null,_0x379a[108]))[_0x379a[36]](respondWithResult(_0xdcb0x1d,null,_0x379a[110]))[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[108]))};exports[_0x379a[111]]= function(_0xdcb0x19,_0xdcb0x1d,_0xdcb0x32){var _0xdcb0x36=_0x379a[112];return db[_0x379a[66]][_0x379a[89]]({where:{id:_0xdcb0x19[_0x379a[88]][_0x379a[87]]},attributes:[_0x379a[106],_0x379a[109],_0x379a[123],_0x379a[124]],raw:true})[_0x379a[36]](handleEntityNotFound(_0xdcb0x1d,null,_0x379a[111]))[_0x379a[36]](function(_0xdcb0x20){if(_0xdcb0x20){logger[_0x379a[29]](_0x379a[113],_0x379a[111],_0x379a[43]);logger[_0x379a[32]](_0x379a[114],_0x379a[111],_0x379a[43],JSON[_0x379a[31]](_0xdcb0x20));var _0xdcb0x37=(_0xdcb0x20[_0x379a[106]]&& fs[_0x379a[116]](path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0xdcb0x20[_0x379a[106]]))))?path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0xdcb0x20[_0x379a[106]])):path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0x379a[117]));var _0xdcb0x38=_0x379a[118]+ _[_0x379a[119]](_0x379a[106]);if(_0xdcb0x20[_0xdcb0x38]){_0xdcb0x37= path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0x379a[117]))};if(!fs[_0x379a[116]](_0xdcb0x37)){throw  new db[_0x379a[121]].ValidationError(_0x379a[120])};return _0xdcb0x1d[_0x379a[122]](_0xdcb0x37)}})[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[86]))};exports[_0x379a[125]]= function(_0xdcb0x19,_0xdcb0x1d,_0xdcb0x32){var _0xdcb0x36=_0x379a[112];return db[_0x379a[66]][_0x379a[89]]({where:{id:_0xdcb0x19[_0x379a[88]][_0x379a[87]]},attributes:[_0x379a[106],_0x379a[109],_0x379a[123],_0x379a[124]],raw:true})[_0x379a[36]](handleEntityNotFound(_0xdcb0x1d,null,_0x379a[125]))[_0x379a[36]](function(_0xdcb0x20){if(_0xdcb0x20){logger[_0x379a[29]](_0x379a[113],_0x379a[125],_0x379a[43]);logger[_0x379a[32]](_0x379a[114],_0x379a[125],_0x379a[43],JSON[_0x379a[31]](_0xdcb0x20));var _0xdcb0x37=(_0xdcb0x20[_0x379a[109]]&& fs[_0x379a[116]](path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0xdcb0x20[_0x379a[109]]))))?path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0xdcb0x20[_0x379a[109]])):path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0x379a[126]));var _0xdcb0x38=_0x379a[118]+ _[_0x379a[119]](_0x379a[109]);if(_0xdcb0x20[_0xdcb0x38]){_0xdcb0x37= path[_0x379a[92]](config[_0x379a[90]],_0xdcb0x36,_[_0x379a[115]](_0x379a[126]))};if(!fs[_0x379a[116]](_0xdcb0x37)){throw  new db[_0x379a[121]].ValidationError(_0x379a[120])};return _0xdcb0x1d[_0x379a[122]](_0xdcb0x37)}})[_0x379a[27]](handleError(_0xdcb0x1d,null,_0x379a[86]))}
\ No newline at end of file
index 6af6ec2..269b235 100644 (file)
@@ -1 +1 @@
-var _0xc2e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67","\x73\x65\x74\x74\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xc2e6[0];var _=require(_0xc2e6[1]);var util=require(_0xc2e6[2]);var logger=require(_0xc2e6[4])(_0xc2e6[3]);var attributes=require(_0xc2e6[5]);module[_0xc2e6[6]]= function(_0x3998x5,_0x3998x6){return _0x3998x5[_0xc2e6[9]](_0xc2e6[7],attributes,{tableName:_0xc2e6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xef7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67","\x73\x65\x74\x74\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xef7d[0];var _=require(_0xef7d[1]);var util=require(_0xef7d[2]);var logger=require(_0xef7d[4])(_0xef7d[3]);var attributes=require(_0xef7d[5]);module[_0xef7d[6]]= function(_0x3e7dx5,_0x3e7dx6){return _0x3e7dx5[_0xef7d[9]](_0xef7d[7],attributes,{tableName:_0xef7d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index b7554cb..bcf6be6 100644 (file)
@@ -1 +1 @@
-var _0x13ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x13ef[0];var _=require(_0x13ef[1]);var util=require(_0x13ef[2]);var moment=require(_0x13ef[3]);var BPromise=require(_0x13ef[4]);var db=require(_0x13ef[6])[_0x13ef[5]];var utils=require(_0x13ef[7]);var logger=require(_0x13ef[9])(_0x13ef[8]);var jayson=require(_0x13ef[10]);var client=jayson[_0x13ef[12]][_0x13ef[11]]({port:9002});function respondWithRpcPromise(_0x45f5xb,_0x45f5xc,_0x45f5xd){return  new BPromise(function(_0x45f5xe,_0x45f5xf){return client[_0x13ef[25]](_0x45f5xb,_0x45f5xd)[_0x13ef[24]](function(_0x45f5x11){logger[_0x13ef[17]](_0x13ef[13],_0x45f5xc,_0x13ef[16]);logger[_0x13ef[20]](_0x13ef[18],_0x45f5xc,_0x13ef[16],JSON[_0x13ef[19]](_0x45f5x11));if(_0x45f5x11[_0x13ef[14]]){if(_0x45f5x11[_0x13ef[14]][_0x13ef[21]]=== 500){logger[_0x13ef[14]](_0x13ef[13],_0x45f5xc,_0x45f5x11[_0x13ef[14]][_0x13ef[22]]);return _0x45f5xf(_0x45f5x11[_0x13ef[14]][_0x13ef[22]])};logger[_0x13ef[14]](_0x13ef[13],_0x45f5xc,_0x45f5x11[_0x13ef[14]][_0x13ef[22]]);return _0x45f5xe(_0x45f5x11[_0x13ef[14]][_0x13ef[22]])}else {logger[_0x13ef[17]](_0x13ef[13],_0x45f5xc,_0x13ef[16]);_0x45f5xe(_0x45f5x11[_0x13ef[23]][_0x13ef[22]])}})[_0x13ef[15]](function(_0x45f5x10){logger[_0x13ef[14]](_0x13ef[13],_0x45f5xc,_0x45f5x10);_0x45f5xf(_0x45f5x10)})})}
\ No newline at end of file
+var _0xb0d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb0d9[0];var _=require(_0xb0d9[1]);var util=require(_0xb0d9[2]);var moment=require(_0xb0d9[3]);var BPromise=require(_0xb0d9[4]);var db=require(_0xb0d9[6])[_0xb0d9[5]];var utils=require(_0xb0d9[7]);var logger=require(_0xb0d9[9])(_0xb0d9[8]);var jayson=require(_0xb0d9[10]);var client=jayson[_0xb0d9[12]][_0xb0d9[11]]({port:9002});function respondWithRpcPromise(_0x7c8cxb,_0x7c8cxc,_0x7c8cxd){return  new BPromise(function(_0x7c8cxe,_0x7c8cxf){return client[_0xb0d9[25]](_0x7c8cxb,_0x7c8cxd)[_0xb0d9[24]](function(_0x7c8cx11){logger[_0xb0d9[17]](_0xb0d9[13],_0x7c8cxc,_0xb0d9[16]);logger[_0xb0d9[20]](_0xb0d9[18],_0x7c8cxc,_0xb0d9[16],JSON[_0xb0d9[19]](_0x7c8cx11));if(_0x7c8cx11[_0xb0d9[14]]){if(_0x7c8cx11[_0xb0d9[14]][_0xb0d9[21]]=== 500){logger[_0xb0d9[14]](_0xb0d9[13],_0x7c8cxc,_0x7c8cx11[_0xb0d9[14]][_0xb0d9[22]]);return _0x7c8cxf(_0x7c8cx11[_0xb0d9[14]][_0xb0d9[22]])};logger[_0xb0d9[14]](_0xb0d9[13],_0x7c8cxc,_0x7c8cx11[_0xb0d9[14]][_0xb0d9[22]]);return _0x7c8cxe(_0x7c8cx11[_0xb0d9[14]][_0xb0d9[22]])}else {logger[_0xb0d9[17]](_0xb0d9[13],_0x7c8cxc,_0xb0d9[16]);_0x7c8cxe(_0x7c8cx11[_0xb0d9[23]][_0xb0d9[22]])}})[_0xb0d9[15]](function(_0x7c8cx10){logger[_0xb0d9[14]](_0xb0d9[13],_0x7c8cxc,_0x7c8cx10);_0x7c8cxf(_0x7c8cx10)})})}
\ No newline at end of file
index 0557cf4..7ee601d 100644 (file)
@@ -1 +1 @@
-var _0x4506=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4506[0];var multer=require(_0x4506[1]);var util=require(_0x4506[2]);var path=require(_0x4506[3]);var express=require(_0x4506[4]);var router=express.Router();var auth=require(_0x4506[5]);var config=require(_0x4506[6]);var controller=require(_0x4506[7]);router[_0x4506[11]](_0x4506[8],auth[_0x4506[9]](),controller[_0x4506[10]]);router[_0x4506[11]](_0x4506[12],auth[_0x4506[9]](),controller[_0x4506[13]]);router[_0x4506[11]](_0x4506[14],auth[_0x4506[9]](),controller[_0x4506[15]]);router[_0x4506[11]](_0x4506[16],auth[_0x4506[9]](),controller[_0x4506[17]]);router[_0x4506[11]](_0x4506[18],auth[_0x4506[9]](),controller[_0x4506[19]]);router[_0x4506[21]](_0x4506[8],auth[_0x4506[9]](),controller[_0x4506[20]]);router[_0x4506[21]](_0x4506[14],auth[_0x4506[9]](),controller[_0x4506[22]]);router[_0x4506[21]](_0x4506[16],auth[_0x4506[9]](),controller[_0x4506[23]]);router[_0x4506[21]](_0x4506[18],auth[_0x4506[9]](),controller[_0x4506[24]]);router[_0x4506[21]](_0x4506[18],auth[_0x4506[9]](),controller[_0x4506[25]]);router[_0x4506[27]](_0x4506[12],auth[_0x4506[9]](),controller[_0x4506[26]]);router[_0x4506[29]](_0x4506[12],auth[_0x4506[9]](),controller[_0x4506[28]]);module[_0x4506[30]]= router
\ No newline at end of file
+var _0xde32=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xde32[0];var multer=require(_0xde32[1]);var util=require(_0xde32[2]);var path=require(_0xde32[3]);var express=require(_0xde32[4]);var router=express.Router();var auth=require(_0xde32[5]);var config=require(_0xde32[6]);var controller=require(_0xde32[7]);router[_0xde32[11]](_0xde32[8],auth[_0xde32[9]](),controller[_0xde32[10]]);router[_0xde32[11]](_0xde32[12],auth[_0xde32[9]](),controller[_0xde32[13]]);router[_0xde32[11]](_0xde32[14],auth[_0xde32[9]](),controller[_0xde32[15]]);router[_0xde32[11]](_0xde32[16],auth[_0xde32[9]](),controller[_0xde32[17]]);router[_0xde32[11]](_0xde32[18],auth[_0xde32[9]](),controller[_0xde32[19]]);router[_0xde32[21]](_0xde32[8],auth[_0xde32[9]](),controller[_0xde32[20]]);router[_0xde32[21]](_0xde32[14],auth[_0xde32[9]](),controller[_0xde32[22]]);router[_0xde32[21]](_0xde32[16],auth[_0xde32[9]](),controller[_0xde32[23]]);router[_0xde32[21]](_0xde32[18],auth[_0xde32[9]](),controller[_0xde32[24]]);router[_0xde32[21]](_0xde32[18],auth[_0xde32[9]](),controller[_0xde32[25]]);router[_0xde32[27]](_0xde32[12],auth[_0xde32[9]](),controller[_0xde32[26]]);router[_0xde32[29]](_0xde32[12],auth[_0xde32[9]](),controller[_0xde32[28]]);module[_0xde32[30]]= router
\ No newline at end of file
index 62abe81..9c5b6a6 100644 (file)
@@ -1 +1 @@
-var _0x93a9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x74\x77\x69\x6C\x69\x6F","\x73\x6B\x65\x62\x62\x79","\x62\x61\x73\x69\x63","\x63\x6C\x61\x73\x73\x69\x63","\x63\x6C\x61\x73\x73\x69\x63\x2B","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x70\x68\x6F\x6E\x65","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x93a9[0];var Sequelize=require(_0x93a9[1]);module[_0x93a9[2]]= {name:{type:Sequelize[_0x93a9[3]]},description:{type:Sequelize[_0x93a9[3]]},type:{type:Sequelize.ENUM(_0x93a9[4],_0x93a9[5])},smstype:{type:Sequelize.ENUM(_0x93a9[6],_0x93a9[7],_0x93a9[8])},remote:{type:Sequelize[_0x93a9[3]]},fidelity:{type:Sequelize[_0x93a9[9]],defaultValue:false},timeout:{type:Sequelize[_0x93a9[10]],defaultValue:0},phone:{type:Sequelize[_0x93a9[3]],unique:_0x93a9[11],validate:{is:/^[0-9]+$/}},sid:{type:Sequelize[_0x93a9[3]]},token:{type:Sequelize[_0x93a9[3]]},username:{type:Sequelize[_0x93a9[3]]},password:{type:Sequelize[_0x93a9[3]]},acceptUrl:{type:Sequelize[_0x93a9[3]]},rejectUrl:{type:Sequelize[_0x93a9[3]]},acceptMethod:{type:Sequelize.ENUM(_0x93a9[12],_0x93a9[13])},rejectMethod:{type:Sequelize.ENUM(_0x93a9[12],_0x93a9[13])},closeUrl:{type:Sequelize[_0x93a9[3]]},closeMethod:{type:Sequelize.ENUM(_0x93a9[12],_0x93a9[13])},actions:{type:Sequelize[_0x93a9[3]],get:function(){return this[_0x93a9[15]](_0x93a9[14])?JSON[_0x93a9[16]](this[_0x93a9[15]](_0x93a9[14])):[]},set:function(_0x25b5x2){return this[_0x93a9[18]](_0x93a9[14],JSON[_0x93a9[17]](_0x25b5x2))}}}
\ No newline at end of file
+var _0x26b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x74\x77\x69\x6C\x69\x6F","\x73\x6B\x65\x62\x62\x79","\x62\x61\x73\x69\x63","\x63\x6C\x61\x73\x73\x69\x63","\x63\x6C\x61\x73\x73\x69\x63\x2B","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x70\x68\x6F\x6E\x65","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x26b8[0];var Sequelize=require(_0x26b8[1]);module[_0x26b8[2]]= {name:{type:Sequelize[_0x26b8[3]]},description:{type:Sequelize[_0x26b8[3]]},type:{type:Sequelize.ENUM(_0x26b8[4],_0x26b8[5])},smstype:{type:Sequelize.ENUM(_0x26b8[6],_0x26b8[7],_0x26b8[8])},remote:{type:Sequelize[_0x26b8[3]]},fidelity:{type:Sequelize[_0x26b8[9]],defaultValue:false},timeout:{type:Sequelize[_0x26b8[10]],defaultValue:0},phone:{type:Sequelize[_0x26b8[3]],unique:_0x26b8[11],validate:{is:/^[0-9]+$/}},sid:{type:Sequelize[_0x26b8[3]]},token:{type:Sequelize[_0x26b8[3]]},username:{type:Sequelize[_0x26b8[3]]},password:{type:Sequelize[_0x26b8[3]]},acceptUrl:{type:Sequelize[_0x26b8[3]]},rejectUrl:{type:Sequelize[_0x26b8[3]]},acceptMethod:{type:Sequelize.ENUM(_0x26b8[12],_0x26b8[13])},rejectMethod:{type:Sequelize.ENUM(_0x26b8[12],_0x26b8[13])},closeUrl:{type:Sequelize[_0x26b8[3]]},closeMethod:{type:Sequelize.ENUM(_0x26b8[12],_0x26b8[13])},actions:{type:Sequelize[_0x26b8[3]],get:function(){return this[_0x26b8[15]](_0x26b8[14])?JSON[_0x26b8[16]](this[_0x26b8[15]](_0x26b8[14])):[]},set:function(_0x75efx2){return this[_0x26b8[18]](_0x26b8[14],JSON[_0x26b8[17]](_0x75efx2))}}}
\ No newline at end of file
index 8789680..d878afc 100644 (file)
@@ -1 +1 @@
-var _0xe719=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0xe719[0];var jsonpatch=require(_0xe719[1]);var rp=require(_0xe719[2]);var moment=require(_0xe719[3]);var BPromise=require(_0xe719[4]);var util=require(_0xe719[5]);var path=require(_0xe719[6]);var sox=require(_0xe719[7]);var ejs=require(_0xe719[8]);var fs=require(_0xe719[9]);var _=require(_0xe719[10]);var squel=require(_0xe719[11]);var crypto=require(_0xe719[12]);var jsforce=require(_0xe719[13]);var toCsv=require(_0xe719[14]);var qs=require(_0xe719[15]);var logger=require(_0xe719[17])(_0xe719[16]);var utils=require(_0xe719[18]);var config=require(_0xe719[19]);var db=require(_0xe719[21])[_0xe719[20]];function respondWithStatusCode(_0xe84dx15,_0xe84dx16,_0xe84dx17){_0xe84dx16= _0xe84dx16|| 204;return function(_0xe84dx18){if(_0xe84dx18){logger[_0xe719[24]](_0xe719[22],_0xe84dx17,_0xe84dx16,_0xe719[23]);logger[_0xe719[26]](_0xe719[25],_0xe84dx17,_0xe84dx16,_0xe719[23]);return _0xe84dx15[_0xe719[27]](_0xe84dx16)};return _0xe84dx15[_0xe719[29]](304)[_0xe719[28]]()}}function respondWithResult(_0xe84dx15,_0xe84dx16,_0xe84dx17){_0xe84dx16= _0xe84dx16|| 200;return function(_0xe84dx18){if(_0xe84dx18){logger[_0xe719[24]](_0xe719[22],_0xe84dx17,_0xe84dx16,_0xe719[30]);logger[_0xe719[26]](_0xe719[25],_0xe84dx17,_0xe84dx16,_0xe719[30],JSON[_0xe719[31]](_0xe84dx18));return _0xe84dx15[_0xe719[29]](_0xe84dx16)[_0xe719[32]](_0xe84dx18)};return _0xe84dx15[_0xe719[29]](304)[_0xe719[28]]()}}function respondWithFilteredResult(_0xe84dx15,_0xe84dx1b,_0xe84dx17){return function(_0xe84dx18){if(_0xe84dx18){var _0xe84dx1c=_0xe84dx18[_0xe719[33]],_0xe84dx1d=_0xe84dx1b[_0xe719[34]],_0xe84dx1e=_0xe84dx1b[_0xe719[34]]+ _0xe84dx1b[_0xe719[35]],_0xe84dx16;if(_0xe84dx1e>= _0xe84dx1c){_0xe84dx1e= _0xe84dx1c;_0xe84dx16= 200}else {_0xe84dx16= 206};_0xe84dx15[_0xe719[29]](_0xe84dx16);logger[_0xe719[24]](_0xe719[22],_0xe84dx17,_0xe84dx16,_0xe719[36]);logger[_0xe719[26]](_0xe719[25],_0xe84dx17,_0xe84dx16,_0xe719[30],JSON[_0xe719[31]](_0xe84dx18));return _0xe84dx15[_0xe719[40]](_0xe719[37],_0xe84dx1d+ _0xe719[38]+ _0xe84dx1e+ _0xe719[39]+ _0xe84dx1c)[_0xe719[32]](_0xe84dx18)};return null}}function patchUpdates(_0xe84dx20){return function(_0xe84dx18){try{jsonpatch[_0xe719[41]](_0xe84dx18,_0xe84dx20,true)}catch(err){return BPromise[_0xe719[42]](err)};return _0xe84dx18[_0xe719[43]]()}}function saveUpdates(_0xe84dx22,_0xe84dx16,_0xe84dx17){return function(_0xe84dx18){if(_0xe84dx18){return _0xe84dx18[_0xe719[46]](_0xe84dx22)[_0xe719[45]](function(_0xe84dx23){logger[_0xe719[24]](_0xe719[22],_0xe84dx17,_0xe84dx16,_0xe719[44]);logger[_0xe719[26]](_0xe719[25],_0xe84dx17,_0xe84dx16,_0xe719[44],JSON[_0xe719[31]](_0xe84dx18));return _0xe84dx23})};return null}}function removeEntity(_0xe84dx15,_0xe84dx16,_0xe84dx17){return function(_0xe84dx18){if(_0xe84dx18){return _0xe84dx18[_0xe719[48]]()[_0xe719[45]](function(){logger[_0xe719[24]](_0xe719[22],_0xe84dx17,_0xe84dx16,_0xe719[47]);logger[_0xe719[26]](_0xe719[25],_0xe84dx17,_0xe84dx16,_0xe719[47],JSON[_0xe719[31]](_0xe84dx18));_0xe84dx15[_0xe719[29]](204)[_0xe719[28]]()})}}}function handleEntityNotFound(_0xe84dx15,_0xe84dx16,_0xe84dx17){return function(_0xe84dx18){if(!_0xe84dx18){logger[_0xe719[50]](_0xe719[22],_0xe84dx17,404,_0xe719[49]);_0xe84dx15[_0xe719[29]](404)[_0xe719[28]]();return null};return _0xe84dx18}}function handleError(_0xe84dx15,_0xe84dx16,_0xe84dx17){_0xe84dx16= _0xe84dx16|| 500;return function(_0xe84dx27){logger[_0xe719[50]](_0xe719[22],_0xe84dx17,_0xe84dx16,JSON[_0xe719[31]](_0xe84dx27));delete _0xe84dx27[_0xe719[51]];_0xe84dx15[_0xe719[29]](_0xe84dx16)[_0xe719[52]](_0xe84dx27)}}exports[_0xe719[53]]= function(_0xe84dx28,_0xe84dx15){var _0xe84dx1b={},_0xe84dx29={};_0xe84dx29[_0xe719[54]]= _[_0xe719[57]](db[_0xe719[56]][_0xe719[55]]);_0xe84dx29[_0xe719[58]]= _[_0xe719[57]](_0xe84dx28[_0xe719[58]]);_0xe84dx29[_0xe719[59]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],_0xe84dx29[_0xe719[58]]);_0xe84dx1b[_0xe719[61]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],qs[_0xe719[62]](_0xe84dx28[_0xe719[58]][_0xe719[62]]));_0xe84dx1b[_0xe719[61]]= (_0xe84dx1b[_0xe719[61]][_0xe719[63]])?_0xe84dx1b[_0xe719[61]]:_0xe84dx29[_0xe719[54]];if(!_0xe84dx28[_0xe719[58]][_0xe719[65]](_0xe719[64])){_0xe84dx1b[_0xe719[35]]= qs[_0xe719[35]](_0xe84dx28[_0xe719[58]][_0xe719[35]]);_0xe84dx1b[_0xe719[34]]= qs[_0xe719[34]](_0xe84dx28[_0xe719[58]][_0xe719[34]])};_0xe84dx1b[_0xe719[66]]= qs[_0xe719[67]](_0xe84dx28[_0xe719[58]][_0xe719[67]]);_0xe84dx1b[_0xe719[68]]= qs[_0xe719[59]](_[_0xe719[69]](_0xe84dx28[_0xe719[58]],_0xe84dx29[_0xe719[59]]));if(_0xe84dx28[_0xe719[58]][_0xe719[70]]){_0xe84dx1b[_0xe719[68]]= _[_0xe719[73]](_0xe84dx1b[_0xe719[68]],{$or:_[_0xe719[72]](_0xe84dx1b[_0xe719[61]],function(_0xe84dx2a){var _0xe84dx2b={};_0xe84dx2b[_0xe84dx2a]= {$like:_0xe719[71]+ _0xe84dx28[_0xe719[58]][_0xe719[70]]+ _0xe719[71]};return _0xe84dx2b})})};_0xe84dx1b= _[_0xe719[73]]({},_0xe84dx1b,_0xe84dx28[_0xe719[74]]);return db[_0xe719[56]][_0xe719[76]](_0xe84dx1b)[_0xe719[45]](respondWithFilteredResult(_0xe84dx15,_0xe84dx1b,_0xe719[53]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[53]))};exports[_0xe719[77]]= function(_0xe84dx28,_0xe84dx15){var _0xe84dx1b={raw:false,where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}},_0xe84dx29={};_0xe84dx29[_0xe719[54]]= _[_0xe719[57]](db[_0xe719[56]][_0xe719[55]]);_0xe84dx29[_0xe719[58]]= _[_0xe719[57]](_0xe84dx28[_0xe719[58]]);_0xe84dx29[_0xe719[59]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],_0xe84dx29[_0xe719[58]]);_0xe84dx1b[_0xe719[61]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],qs[_0xe719[62]](_0xe84dx28[_0xe719[58]][_0xe719[62]]));_0xe84dx1b[_0xe719[61]]= (_0xe84dx1b[_0xe719[61]][_0xe719[63]])?_0xe84dx1b[_0xe719[61]]:_0xe84dx29[_0xe719[54]];_0xe84dx1b= _[_0xe719[73]]({},_0xe84dx1b,_0xe84dx28[_0xe719[74]]);return db[_0xe719[56]][_0xe719[80]](_0xe84dx1b)[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[77]))[_0xe719[45]](respondWithResult(_0xe84dx15,null,_0xe719[77]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[77]))};exports[_0xe719[81]]= function(_0xe84dx28,_0xe84dx15){return db[_0xe719[56]][_0xe719[81]](_0xe84dx28[_0xe719[82]],{})[_0xe719[45]](respondWithResult(_0xe84dx15,201,_0xe719[81]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[81]))};exports[_0xe719[46]]= function(_0xe84dx28,_0xe84dx15){if(_0xe84dx28[_0xe719[82]][_0xe719[78]]){delete _0xe84dx28[_0xe719[82]][_0xe719[78]]};return db[_0xe719[56]][_0xe719[80]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[46]))[_0xe719[45]](saveUpdates(_0xe84dx28[_0xe719[82]],null,_0xe719[46]))[_0xe719[45]](respondWithResult(_0xe84dx15,null,_0xe719[46]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[46]))};exports[_0xe719[48]]= function(_0xe84dx28,_0xe84dx15){return db[_0xe719[56]][_0xe719[80]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[48]))[_0xe719[45]](removeEntity(_0xe84dx15,null,_0xe719[48]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[48]))};exports[_0xe719[83]]= function(_0xe84dx28,_0xe84dx15,_0xe84dx2c){return db[_0xe719[86]][_0xe719[80]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[83]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){return _0xe84dx18[_0xe719[83]](_0xe84dx28[_0xe719[82]][_0xe719[84]],_[_0xe719[85]](_0xe84dx28[_0xe719[82]],[_0xe719[84],_0xe719[78]])|| {})};return null})[_0xe719[45]](respondWithResult(_0xe84dx15,null,_0xe719[83]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[83]))};exports[_0xe719[87]]= function(_0xe84dx28,_0xe84dx18,_0xe84dx2c){var _0xe84dx1b={};var _0xe84dx29={};var _0xe84dx2d;var _0xe84dx1c;return db[_0xe719[56]][_0xe719[88]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx18,null,_0xe719[87]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){_0xe84dx2d= _0xe84dx18;_0xe84dx29[_0xe719[54]]= _[_0xe719[57]](db[_0xe719[86]][_0xe719[55]]);_0xe84dx29[_0xe719[58]]= _[_0xe719[57]](_0xe84dx28[_0xe719[58]]);_0xe84dx29[_0xe719[59]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],_0xe84dx29[_0xe719[58]]);_0xe84dx1b[_0xe719[61]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],qs[_0xe719[62]](_0xe84dx28[_0xe719[58]][_0xe719[62]]));_0xe84dx1b[_0xe719[61]]= (_0xe84dx1b[_0xe719[61]][_0xe719[63]])?_0xe84dx1b[_0xe719[61]]:_0xe84dx29[_0xe719[54]];_0xe84dx1b[_0xe719[66]]= qs[_0xe719[67]](_0xe84dx28[_0xe719[58]][_0xe719[67]]);_0xe84dx1b[_0xe719[68]]= qs[_0xe719[59]](_[_0xe719[69]](_0xe84dx28[_0xe719[58]],_0xe84dx29[_0xe719[59]]));if(_0xe84dx28[_0xe719[58]][_0xe719[70]]){_0xe84dx1b[_0xe719[68]]= _[_0xe719[73]](_0xe84dx1b[_0xe719[68]],{$or:_[_0xe719[72]](_0xe84dx1b[_0xe719[61]],function(_0xe84dx2a){var _0xe84dx2b={};_0xe84dx2b[_0xe84dx2a]= {$like:_0xe719[71]+ _0xe84dx28[_0xe719[58]][_0xe719[70]]+ _0xe719[71]};return _0xe84dx2b})})};_0xe84dx1b= _[_0xe719[73]]({},_0xe84dx1b,_0xe84dx28[_0xe719[74]]);return _0xe84dx2d[_0xe719[87]](_0xe84dx1b)}})[_0xe719[45]](function(_0xe84dx2f){if(_0xe84dx2f){_0xe84dx1c= _0xe84dx2f[_0xe719[63]];if(!_0xe84dx28[_0xe719[58]][_0xe719[65]](_0xe719[64])){_0xe84dx1b[_0xe719[35]]= qs[_0xe719[35]](_0xe84dx28[_0xe719[58]][_0xe719[35]]);_0xe84dx1b[_0xe719[34]]= qs[_0xe719[34]](_0xe84dx28[_0xe719[58]][_0xe719[34]])};return _0xe84dx2d[_0xe719[87]](_0xe84dx1b)}})[_0xe719[45]](function(_0xe84dx2e){return _0xe84dx2e?{count:_0xe84dx1c,rows:_0xe84dx2e}:null})[_0xe719[45]](respondWithResult(_0xe84dx18,null,_0xe719[87]))[_0xe719[75]](handleError(_0xe84dx18,null,_0xe719[87]))};exports[_0xe719[89]]= function(_0xe84dx28,_0xe84dx15,_0xe84dx2c){return db[_0xe719[90]][_0xe719[80]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[89]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){return _0xe84dx18[_0xe719[89]](_0xe84dx28[_0xe719[82]][_0xe719[84]],_[_0xe719[85]](_0xe84dx28[_0xe719[82]],[_0xe719[84],_0xe719[78]])|| {})};return null})[_0xe719[45]](respondWithResult(_0xe84dx15,null,_0xe719[89]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[89]))};exports[_0xe719[91]]= function(_0xe84dx28,_0xe84dx18,_0xe84dx2c){var _0xe84dx1b={};var _0xe84dx29={};var _0xe84dx2d;var _0xe84dx1c;return db[_0xe719[56]][_0xe719[88]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx18,null,_0xe719[91]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){_0xe84dx2d= _0xe84dx18;_0xe84dx29[_0xe719[54]]= _[_0xe719[57]](db[_0xe719[92]][_0xe719[55]]);_0xe84dx29[_0xe719[58]]= _[_0xe719[57]](_0xe84dx28[_0xe719[58]]);_0xe84dx29[_0xe719[59]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],_0xe84dx29[_0xe719[58]]);_0xe84dx1b[_0xe719[61]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],qs[_0xe719[62]](_0xe84dx28[_0xe719[58]][_0xe719[62]]));_0xe84dx1b[_0xe719[61]]= (_0xe84dx1b[_0xe719[61]][_0xe719[63]])?_0xe84dx1b[_0xe719[61]]:_0xe84dx29[_0xe719[54]];_0xe84dx1b[_0xe719[66]]= qs[_0xe719[67]](_0xe84dx28[_0xe719[58]][_0xe719[67]]);_0xe84dx1b[_0xe719[68]]= qs[_0xe719[59]](_[_0xe719[69]](_0xe84dx28[_0xe719[58]],_0xe84dx29[_0xe719[59]]));if(_0xe84dx28[_0xe719[58]][_0xe719[70]]){_0xe84dx1b[_0xe719[68]]= _[_0xe719[73]](_0xe84dx1b[_0xe719[68]],{$or:_[_0xe719[72]](_0xe84dx1b[_0xe719[61]],function(_0xe84dx2a){var _0xe84dx2b={};_0xe84dx2b[_0xe84dx2a]= {$like:_0xe719[71]+ _0xe84dx28[_0xe719[58]][_0xe719[70]]+ _0xe719[71]};return _0xe84dx2b})})};_0xe84dx1b= _[_0xe719[73]]({},_0xe84dx1b,_0xe84dx28[_0xe719[74]]);return _0xe84dx2d[_0xe719[91]](_0xe84dx1b)}})[_0xe719[45]](function(_0xe84dx2f){if(_0xe84dx2f){_0xe84dx1c= _0xe84dx2f[_0xe719[63]];if(!_0xe84dx28[_0xe719[58]][_0xe719[65]](_0xe719[64])){_0xe84dx1b[_0xe719[35]]= qs[_0xe719[35]](_0xe84dx28[_0xe719[58]][_0xe719[35]]);_0xe84dx1b[_0xe719[34]]= qs[_0xe719[34]](_0xe84dx28[_0xe719[58]][_0xe719[34]])};return _0xe84dx2d[_0xe719[91]](_0xe84dx1b)}})[_0xe719[45]](function(_0xe84dx2e){return _0xe84dx2e?{count:_0xe84dx1c,rows:_0xe84dx2e}:null})[_0xe719[45]](respondWithResult(_0xe84dx18,null,_0xe719[91]))[_0xe719[75]](handleError(_0xe84dx18,null,_0xe719[91]))};exports[_0xe719[93]]= function(_0xe84dx28,_0xe84dx15,_0xe84dx2c){if(_0xe84dx28[_0xe719[82]][_0xe719[78]]){delete _0xe84dx28[_0xe719[82]][_0xe719[78]]};return db[_0xe719[56]][_0xe719[80]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[93]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){_0xe84dx28[_0xe719[82]][_0xe719[94]]= _0xe84dx18[_0xe719[78]];return db[_0xe719[95]][_0xe719[81]](_0xe84dx28[_0xe719[82]])}})[_0xe719[45]](respondWithResult(_0xe84dx15,null,_0xe719[93]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[93]))};exports[_0xe719[96]]= function(_0xe84dx28,_0xe84dx15,_0xe84dx2c){return db[_0xe719[97]][_0xe719[80]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx15,null,_0xe719[96]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){return _0xe84dx18[_0xe719[96]](_0xe84dx28[_0xe719[82]][_0xe719[84]],_[_0xe719[85]](_0xe84dx28[_0xe719[82]],[_0xe719[84],_0xe719[78]])|| {})};return null})[_0xe719[45]](respondWithResult(_0xe84dx15,null,_0xe719[96]))[_0xe719[75]](handleError(_0xe84dx15,null,_0xe719[96]))};exports[_0xe719[98]]= function(_0xe84dx28,_0xe84dx18,_0xe84dx2c){var _0xe84dx1b={};var _0xe84dx29={};var _0xe84dx2d;var _0xe84dx1c;return db[_0xe719[56]][_0xe719[88]]({where:{id:_0xe84dx28[_0xe719[79]][_0xe719[78]]}})[_0xe719[45]](handleEntityNotFound(_0xe84dx18,null,_0xe719[98]))[_0xe719[45]](function(_0xe84dx18){if(_0xe84dx18){_0xe84dx2d= _0xe84dx18;_0xe84dx29[_0xe719[54]]= _[_0xe719[57]](db[_0xe719[95]][_0xe719[55]]);_0xe84dx29[_0xe719[58]]= _[_0xe719[57]](_0xe84dx28[_0xe719[58]]);_0xe84dx29[_0xe719[59]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],_0xe84dx29[_0xe719[58]]);_0xe84dx1b[_0xe719[61]]= _[_0xe719[60]](_0xe84dx29[_0xe719[54]],qs[_0xe719[62]](_0xe84dx28[_0xe719[58]][_0xe719[62]]));_0xe84dx1b[_0xe719[61]]= (_0xe84dx1b[_0xe719[61]][_0xe719[63]])?_0xe84dx1b[_0xe719[61]]:_0xe84dx29[_0xe719[54]];_0xe84dx1b[_0xe719[66]]= qs[_0xe719[67]](_0xe84dx28[_0xe719[58]][_0xe719[67]]);_0xe84dx1b[_0xe719[68]]= qs[_0xe719[59]](_[_0xe719[69]](_0xe84dx28[_0xe719[58]],_0xe84dx29[_0xe719[59]]));if(_0xe84dx28[_0xe719[58]][_0xe719[70]]){_0xe84dx1b[_0xe719[68]]= _[_0xe719[73]](_0xe84dx1b[_0xe719[68]],{$or:_[_0xe719[72]](_0xe84dx1b[_0xe719[61]],function(_0xe84dx2a){var _0xe84dx2b={};_0xe84dx2b[_0xe84dx2a]= {$like:_0xe719[71]+ _0xe84dx28[_0xe719[58]][_0xe719[70]]+ _0xe719[71]};return _0xe84dx2b})})};_0xe84dx1b= _[_0xe719[73]]({},_0xe84dx1b,_0xe84dx28[_0xe719[74]]);return _0xe84dx2d[_0xe719[98]](_0xe84dx1b)}})[_0xe719[45]](function(_0xe84dx2f){if(_0xe84dx2f){_0xe84dx1c= _0xe84dx2f[_0xe719[63]];if(!_0xe84dx28[_0xe719[58]][_0xe719[65]](_0xe719[64])){_0xe84dx1b[_0xe719[35]]= qs[_0xe719[35]](_0xe84dx28[_0xe719[58]][_0xe719[35]]);_0xe84dx1b[_0xe719[34]]= qs[_0xe719[34]](_0xe84dx28[_0xe719[58]][_0xe719[34]])};return _0xe84dx2d[_0xe719[98]](_0xe84dx1b)}})[_0xe719[45]](function(_0xe84dx2e){return _0xe84dx2e?{count:_0xe84dx1c,rows:_0xe84dx2e}:null})[_0xe719[45]](respondWithResult(_0xe84dx18,null,_0xe719[98]))[_0xe719[75]](handleError(_0xe84dx18,null,_0xe719[98]))}
\ No newline at end of file
+var _0x9692=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0x9692[0];var jsonpatch=require(_0x9692[1]);var rp=require(_0x9692[2]);var moment=require(_0x9692[3]);var BPromise=require(_0x9692[4]);var util=require(_0x9692[5]);var path=require(_0x9692[6]);var sox=require(_0x9692[7]);var ejs=require(_0x9692[8]);var fs=require(_0x9692[9]);var _=require(_0x9692[10]);var squel=require(_0x9692[11]);var crypto=require(_0x9692[12]);var jsforce=require(_0x9692[13]);var toCsv=require(_0x9692[14]);var qs=require(_0x9692[15]);var logger=require(_0x9692[17])(_0x9692[16]);var utils=require(_0x9692[18]);var config=require(_0x9692[19]);var db=require(_0x9692[21])[_0x9692[20]];function respondWithStatusCode(_0x895bx15,_0x895bx16,_0x895bx17){_0x895bx16= _0x895bx16|| 204;return function(_0x895bx18){if(_0x895bx18){logger[_0x9692[24]](_0x9692[22],_0x895bx17,_0x895bx16,_0x9692[23]);logger[_0x9692[26]](_0x9692[25],_0x895bx17,_0x895bx16,_0x9692[23]);return _0x895bx15[_0x9692[27]](_0x895bx16)};return _0x895bx15[_0x9692[29]](304)[_0x9692[28]]()}}function respondWithResult(_0x895bx15,_0x895bx16,_0x895bx17){_0x895bx16= _0x895bx16|| 200;return function(_0x895bx18){if(_0x895bx18){logger[_0x9692[24]](_0x9692[22],_0x895bx17,_0x895bx16,_0x9692[30]);logger[_0x9692[26]](_0x9692[25],_0x895bx17,_0x895bx16,_0x9692[30],JSON[_0x9692[31]](_0x895bx18));return _0x895bx15[_0x9692[29]](_0x895bx16)[_0x9692[32]](_0x895bx18)};return _0x895bx15[_0x9692[29]](304)[_0x9692[28]]()}}function respondWithFilteredResult(_0x895bx15,_0x895bx1b,_0x895bx17){return function(_0x895bx18){if(_0x895bx18){var _0x895bx1c=_0x895bx18[_0x9692[33]],_0x895bx1d=_0x895bx1b[_0x9692[34]],_0x895bx1e=_0x895bx1b[_0x9692[34]]+ _0x895bx1b[_0x9692[35]],_0x895bx16;if(_0x895bx1e>= _0x895bx1c){_0x895bx1e= _0x895bx1c;_0x895bx16= 200}else {_0x895bx16= 206};_0x895bx15[_0x9692[29]](_0x895bx16);logger[_0x9692[24]](_0x9692[22],_0x895bx17,_0x895bx16,_0x9692[36]);logger[_0x9692[26]](_0x9692[25],_0x895bx17,_0x895bx16,_0x9692[30],JSON[_0x9692[31]](_0x895bx18));return _0x895bx15[_0x9692[40]](_0x9692[37],_0x895bx1d+ _0x9692[38]+ _0x895bx1e+ _0x9692[39]+ _0x895bx1c)[_0x9692[32]](_0x895bx18)};return null}}function patchUpdates(_0x895bx20){return function(_0x895bx18){try{jsonpatch[_0x9692[41]](_0x895bx18,_0x895bx20,true)}catch(err){return BPromise[_0x9692[42]](err)};return _0x895bx18[_0x9692[43]]()}}function saveUpdates(_0x895bx22,_0x895bx16,_0x895bx17){return function(_0x895bx18){if(_0x895bx18){return _0x895bx18[_0x9692[46]](_0x895bx22)[_0x9692[45]](function(_0x895bx23){logger[_0x9692[24]](_0x9692[22],_0x895bx17,_0x895bx16,_0x9692[44]);logger[_0x9692[26]](_0x9692[25],_0x895bx17,_0x895bx16,_0x9692[44],JSON[_0x9692[31]](_0x895bx18));return _0x895bx23})};return null}}function removeEntity(_0x895bx15,_0x895bx16,_0x895bx17){return function(_0x895bx18){if(_0x895bx18){return _0x895bx18[_0x9692[48]]()[_0x9692[45]](function(){logger[_0x9692[24]](_0x9692[22],_0x895bx17,_0x895bx16,_0x9692[47]);logger[_0x9692[26]](_0x9692[25],_0x895bx17,_0x895bx16,_0x9692[47],JSON[_0x9692[31]](_0x895bx18));_0x895bx15[_0x9692[29]](204)[_0x9692[28]]()})}}}function handleEntityNotFound(_0x895bx15,_0x895bx16,_0x895bx17){return function(_0x895bx18){if(!_0x895bx18){logger[_0x9692[50]](_0x9692[22],_0x895bx17,404,_0x9692[49]);_0x895bx15[_0x9692[29]](404)[_0x9692[28]]();return null};return _0x895bx18}}function handleError(_0x895bx15,_0x895bx16,_0x895bx17){_0x895bx16= _0x895bx16|| 500;return function(_0x895bx27){logger[_0x9692[50]](_0x9692[22],_0x895bx17,_0x895bx16,JSON[_0x9692[31]](_0x895bx27));delete _0x895bx27[_0x9692[51]];_0x895bx15[_0x9692[29]](_0x895bx16)[_0x9692[52]](_0x895bx27)}}exports[_0x9692[53]]= function(_0x895bx28,_0x895bx15){var _0x895bx1b={},_0x895bx29={};_0x895bx29[_0x9692[54]]= _[_0x9692[57]](db[_0x9692[56]][_0x9692[55]]);_0x895bx29[_0x9692[58]]= _[_0x9692[57]](_0x895bx28[_0x9692[58]]);_0x895bx29[_0x9692[59]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],_0x895bx29[_0x9692[58]]);_0x895bx1b[_0x9692[61]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],qs[_0x9692[62]](_0x895bx28[_0x9692[58]][_0x9692[62]]));_0x895bx1b[_0x9692[61]]= (_0x895bx1b[_0x9692[61]][_0x9692[63]])?_0x895bx1b[_0x9692[61]]:_0x895bx29[_0x9692[54]];if(!_0x895bx28[_0x9692[58]][_0x9692[65]](_0x9692[64])){_0x895bx1b[_0x9692[35]]= qs[_0x9692[35]](_0x895bx28[_0x9692[58]][_0x9692[35]]);_0x895bx1b[_0x9692[34]]= qs[_0x9692[34]](_0x895bx28[_0x9692[58]][_0x9692[34]])};_0x895bx1b[_0x9692[66]]= qs[_0x9692[67]](_0x895bx28[_0x9692[58]][_0x9692[67]]);_0x895bx1b[_0x9692[68]]= qs[_0x9692[59]](_[_0x9692[69]](_0x895bx28[_0x9692[58]],_0x895bx29[_0x9692[59]]));if(_0x895bx28[_0x9692[58]][_0x9692[70]]){_0x895bx1b[_0x9692[68]]= _[_0x9692[73]](_0x895bx1b[_0x9692[68]],{$or:_[_0x9692[72]](_0x895bx1b[_0x9692[61]],function(_0x895bx2a){var _0x895bx2b={};_0x895bx2b[_0x895bx2a]= {$like:_0x9692[71]+ _0x895bx28[_0x9692[58]][_0x9692[70]]+ _0x9692[71]};return _0x895bx2b})})};_0x895bx1b= _[_0x9692[73]]({},_0x895bx1b,_0x895bx28[_0x9692[74]]);return db[_0x9692[56]][_0x9692[76]](_0x895bx1b)[_0x9692[45]](respondWithFilteredResult(_0x895bx15,_0x895bx1b,_0x9692[53]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[53]))};exports[_0x9692[77]]= function(_0x895bx28,_0x895bx15){var _0x895bx1b={raw:false,where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}},_0x895bx29={};_0x895bx29[_0x9692[54]]= _[_0x9692[57]](db[_0x9692[56]][_0x9692[55]]);_0x895bx29[_0x9692[58]]= _[_0x9692[57]](_0x895bx28[_0x9692[58]]);_0x895bx29[_0x9692[59]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],_0x895bx29[_0x9692[58]]);_0x895bx1b[_0x9692[61]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],qs[_0x9692[62]](_0x895bx28[_0x9692[58]][_0x9692[62]]));_0x895bx1b[_0x9692[61]]= (_0x895bx1b[_0x9692[61]][_0x9692[63]])?_0x895bx1b[_0x9692[61]]:_0x895bx29[_0x9692[54]];_0x895bx1b= _[_0x9692[73]]({},_0x895bx1b,_0x895bx28[_0x9692[74]]);return db[_0x9692[56]][_0x9692[80]](_0x895bx1b)[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[77]))[_0x9692[45]](respondWithResult(_0x895bx15,null,_0x9692[77]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[77]))};exports[_0x9692[81]]= function(_0x895bx28,_0x895bx15){return db[_0x9692[56]][_0x9692[81]](_0x895bx28[_0x9692[82]],{})[_0x9692[45]](respondWithResult(_0x895bx15,201,_0x9692[81]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[81]))};exports[_0x9692[46]]= function(_0x895bx28,_0x895bx15){if(_0x895bx28[_0x9692[82]][_0x9692[78]]){delete _0x895bx28[_0x9692[82]][_0x9692[78]]};return db[_0x9692[56]][_0x9692[80]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[46]))[_0x9692[45]](saveUpdates(_0x895bx28[_0x9692[82]],null,_0x9692[46]))[_0x9692[45]](respondWithResult(_0x895bx15,null,_0x9692[46]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[46]))};exports[_0x9692[48]]= function(_0x895bx28,_0x895bx15){return db[_0x9692[56]][_0x9692[80]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[48]))[_0x9692[45]](removeEntity(_0x895bx15,null,_0x9692[48]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[48]))};exports[_0x9692[83]]= function(_0x895bx28,_0x895bx15,_0x895bx2c){return db[_0x9692[86]][_0x9692[80]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[83]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){return _0x895bx18[_0x9692[83]](_0x895bx28[_0x9692[82]][_0x9692[84]],_[_0x9692[85]](_0x895bx28[_0x9692[82]],[_0x9692[84],_0x9692[78]])|| {})};return null})[_0x9692[45]](respondWithResult(_0x895bx15,null,_0x9692[83]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[83]))};exports[_0x9692[87]]= function(_0x895bx28,_0x895bx18,_0x895bx2c){var _0x895bx1b={};var _0x895bx29={};var _0x895bx2d;var _0x895bx1c;return db[_0x9692[56]][_0x9692[88]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx18,null,_0x9692[87]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){_0x895bx2d= _0x895bx18;_0x895bx29[_0x9692[54]]= _[_0x9692[57]](db[_0x9692[86]][_0x9692[55]]);_0x895bx29[_0x9692[58]]= _[_0x9692[57]](_0x895bx28[_0x9692[58]]);_0x895bx29[_0x9692[59]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],_0x895bx29[_0x9692[58]]);_0x895bx1b[_0x9692[61]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],qs[_0x9692[62]](_0x895bx28[_0x9692[58]][_0x9692[62]]));_0x895bx1b[_0x9692[61]]= (_0x895bx1b[_0x9692[61]][_0x9692[63]])?_0x895bx1b[_0x9692[61]]:_0x895bx29[_0x9692[54]];_0x895bx1b[_0x9692[66]]= qs[_0x9692[67]](_0x895bx28[_0x9692[58]][_0x9692[67]]);_0x895bx1b[_0x9692[68]]= qs[_0x9692[59]](_[_0x9692[69]](_0x895bx28[_0x9692[58]],_0x895bx29[_0x9692[59]]));if(_0x895bx28[_0x9692[58]][_0x9692[70]]){_0x895bx1b[_0x9692[68]]= _[_0x9692[73]](_0x895bx1b[_0x9692[68]],{$or:_[_0x9692[72]](_0x895bx1b[_0x9692[61]],function(_0x895bx2a){var _0x895bx2b={};_0x895bx2b[_0x895bx2a]= {$like:_0x9692[71]+ _0x895bx28[_0x9692[58]][_0x9692[70]]+ _0x9692[71]};return _0x895bx2b})})};_0x895bx1b= _[_0x9692[73]]({},_0x895bx1b,_0x895bx28[_0x9692[74]]);return _0x895bx2d[_0x9692[87]](_0x895bx1b)}})[_0x9692[45]](function(_0x895bx2f){if(_0x895bx2f){_0x895bx1c= _0x895bx2f[_0x9692[63]];if(!_0x895bx28[_0x9692[58]][_0x9692[65]](_0x9692[64])){_0x895bx1b[_0x9692[35]]= qs[_0x9692[35]](_0x895bx28[_0x9692[58]][_0x9692[35]]);_0x895bx1b[_0x9692[34]]= qs[_0x9692[34]](_0x895bx28[_0x9692[58]][_0x9692[34]])};return _0x895bx2d[_0x9692[87]](_0x895bx1b)}})[_0x9692[45]](function(_0x895bx2e){return _0x895bx2e?{count:_0x895bx1c,rows:_0x895bx2e}:null})[_0x9692[45]](respondWithResult(_0x895bx18,null,_0x9692[87]))[_0x9692[75]](handleError(_0x895bx18,null,_0x9692[87]))};exports[_0x9692[89]]= function(_0x895bx28,_0x895bx15,_0x895bx2c){return db[_0x9692[90]][_0x9692[80]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[89]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){return _0x895bx18[_0x9692[89]](_0x895bx28[_0x9692[82]][_0x9692[84]],_[_0x9692[85]](_0x895bx28[_0x9692[82]],[_0x9692[84],_0x9692[78]])|| {})};return null})[_0x9692[45]](respondWithResult(_0x895bx15,null,_0x9692[89]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[89]))};exports[_0x9692[91]]= function(_0x895bx28,_0x895bx18,_0x895bx2c){var _0x895bx1b={};var _0x895bx29={};var _0x895bx2d;var _0x895bx1c;return db[_0x9692[56]][_0x9692[88]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx18,null,_0x9692[91]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){_0x895bx2d= _0x895bx18;_0x895bx29[_0x9692[54]]= _[_0x9692[57]](db[_0x9692[92]][_0x9692[55]]);_0x895bx29[_0x9692[58]]= _[_0x9692[57]](_0x895bx28[_0x9692[58]]);_0x895bx29[_0x9692[59]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],_0x895bx29[_0x9692[58]]);_0x895bx1b[_0x9692[61]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],qs[_0x9692[62]](_0x895bx28[_0x9692[58]][_0x9692[62]]));_0x895bx1b[_0x9692[61]]= (_0x895bx1b[_0x9692[61]][_0x9692[63]])?_0x895bx1b[_0x9692[61]]:_0x895bx29[_0x9692[54]];_0x895bx1b[_0x9692[66]]= qs[_0x9692[67]](_0x895bx28[_0x9692[58]][_0x9692[67]]);_0x895bx1b[_0x9692[68]]= qs[_0x9692[59]](_[_0x9692[69]](_0x895bx28[_0x9692[58]],_0x895bx29[_0x9692[59]]));if(_0x895bx28[_0x9692[58]][_0x9692[70]]){_0x895bx1b[_0x9692[68]]= _[_0x9692[73]](_0x895bx1b[_0x9692[68]],{$or:_[_0x9692[72]](_0x895bx1b[_0x9692[61]],function(_0x895bx2a){var _0x895bx2b={};_0x895bx2b[_0x895bx2a]= {$like:_0x9692[71]+ _0x895bx28[_0x9692[58]][_0x9692[70]]+ _0x9692[71]};return _0x895bx2b})})};_0x895bx1b= _[_0x9692[73]]({},_0x895bx1b,_0x895bx28[_0x9692[74]]);return _0x895bx2d[_0x9692[91]](_0x895bx1b)}})[_0x9692[45]](function(_0x895bx2f){if(_0x895bx2f){_0x895bx1c= _0x895bx2f[_0x9692[63]];if(!_0x895bx28[_0x9692[58]][_0x9692[65]](_0x9692[64])){_0x895bx1b[_0x9692[35]]= qs[_0x9692[35]](_0x895bx28[_0x9692[58]][_0x9692[35]]);_0x895bx1b[_0x9692[34]]= qs[_0x9692[34]](_0x895bx28[_0x9692[58]][_0x9692[34]])};return _0x895bx2d[_0x9692[91]](_0x895bx1b)}})[_0x9692[45]](function(_0x895bx2e){return _0x895bx2e?{count:_0x895bx1c,rows:_0x895bx2e}:null})[_0x9692[45]](respondWithResult(_0x895bx18,null,_0x9692[91]))[_0x9692[75]](handleError(_0x895bx18,null,_0x9692[91]))};exports[_0x9692[93]]= function(_0x895bx28,_0x895bx15,_0x895bx2c){if(_0x895bx28[_0x9692[82]][_0x9692[78]]){delete _0x895bx28[_0x9692[82]][_0x9692[78]]};return db[_0x9692[56]][_0x9692[80]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[93]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){_0x895bx28[_0x9692[82]][_0x9692[94]]= _0x895bx18[_0x9692[78]];return db[_0x9692[95]][_0x9692[81]](_0x895bx28[_0x9692[82]])}})[_0x9692[45]](respondWithResult(_0x895bx15,null,_0x9692[93]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[93]))};exports[_0x9692[96]]= function(_0x895bx28,_0x895bx15,_0x895bx2c){return db[_0x9692[97]][_0x9692[80]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx15,null,_0x9692[96]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){return _0x895bx18[_0x9692[96]](_0x895bx28[_0x9692[82]][_0x9692[84]],_[_0x9692[85]](_0x895bx28[_0x9692[82]],[_0x9692[84],_0x9692[78]])|| {})};return null})[_0x9692[45]](respondWithResult(_0x895bx15,null,_0x9692[96]))[_0x9692[75]](handleError(_0x895bx15,null,_0x9692[96]))};exports[_0x9692[98]]= function(_0x895bx28,_0x895bx18,_0x895bx2c){var _0x895bx1b={};var _0x895bx29={};var _0x895bx2d;var _0x895bx1c;return db[_0x9692[56]][_0x9692[88]]({where:{id:_0x895bx28[_0x9692[79]][_0x9692[78]]}})[_0x9692[45]](handleEntityNotFound(_0x895bx18,null,_0x9692[98]))[_0x9692[45]](function(_0x895bx18){if(_0x895bx18){_0x895bx2d= _0x895bx18;_0x895bx29[_0x9692[54]]= _[_0x9692[57]](db[_0x9692[95]][_0x9692[55]]);_0x895bx29[_0x9692[58]]= _[_0x9692[57]](_0x895bx28[_0x9692[58]]);_0x895bx29[_0x9692[59]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],_0x895bx29[_0x9692[58]]);_0x895bx1b[_0x9692[61]]= _[_0x9692[60]](_0x895bx29[_0x9692[54]],qs[_0x9692[62]](_0x895bx28[_0x9692[58]][_0x9692[62]]));_0x895bx1b[_0x9692[61]]= (_0x895bx1b[_0x9692[61]][_0x9692[63]])?_0x895bx1b[_0x9692[61]]:_0x895bx29[_0x9692[54]];_0x895bx1b[_0x9692[66]]= qs[_0x9692[67]](_0x895bx28[_0x9692[58]][_0x9692[67]]);_0x895bx1b[_0x9692[68]]= qs[_0x9692[59]](_[_0x9692[69]](_0x895bx28[_0x9692[58]],_0x895bx29[_0x9692[59]]));if(_0x895bx28[_0x9692[58]][_0x9692[70]]){_0x895bx1b[_0x9692[68]]= _[_0x9692[73]](_0x895bx1b[_0x9692[68]],{$or:_[_0x9692[72]](_0x895bx1b[_0x9692[61]],function(_0x895bx2a){var _0x895bx2b={};_0x895bx2b[_0x895bx2a]= {$like:_0x9692[71]+ _0x895bx28[_0x9692[58]][_0x9692[70]]+ _0x9692[71]};return _0x895bx2b})})};_0x895bx1b= _[_0x9692[73]]({},_0x895bx1b,_0x895bx28[_0x9692[74]]);return _0x895bx2d[_0x9692[98]](_0x895bx1b)}})[_0x9692[45]](function(_0x895bx2f){if(_0x895bx2f){_0x895bx1c= _0x895bx2f[_0x9692[63]];if(!_0x895bx28[_0x9692[58]][_0x9692[65]](_0x9692[64])){_0x895bx1b[_0x9692[35]]= qs[_0x9692[35]](_0x895bx28[_0x9692[58]][_0x9692[35]]);_0x895bx1b[_0x9692[34]]= qs[_0x9692[34]](_0x895bx28[_0x9692[58]][_0x9692[34]])};return _0x895bx2d[_0x9692[98]](_0x895bx1b)}})[_0x9692[45]](function(_0x895bx2e){return _0x895bx2e?{count:_0x895bx1c,rows:_0x895bx2e}:null})[_0x9692[45]](respondWithResult(_0x895bx18,null,_0x9692[98]))[_0x9692[75]](handleError(_0x895bx18,null,_0x9692[98]))}
\ No newline at end of file
index f038a35..df38266 100644 (file)
@@ -1 +1 @@
-var _0xacaa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x73\x6D\x73\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xacaa[0];var _=require(_0xacaa[1]);var util=require(_0xacaa[2]);var logger=require(_0xacaa[4])(_0xacaa[3]);var attributes=require(_0xacaa[5]);module[_0xacaa[6]]= function(_0xf846x5,_0xf846x6){return _0xf846x5[_0xacaa[9]](_0xacaa[7],attributes,{tableName:_0xacaa[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x9c90=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x73\x6D\x73\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x9c90[0];var _=require(_0x9c90[1]);var util=require(_0x9c90[2]);var logger=require(_0x9c90[4])(_0x9c90[3]);var attributes=require(_0x9c90[5]);module[_0x9c90[6]]= function(_0xf23cx5,_0xf23cx6){return _0xf23cx5[_0x9c90[9]](_0x9c90[7],attributes,{tableName:_0x9c90[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index da17799..b9e3140 100644 (file)
@@ -1 +1 @@
-var _0xaa72=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xaa72[0];var _=require(_0xaa72[1]);var util=require(_0xaa72[2]);var moment=require(_0xaa72[3]);var BPromise=require(_0xaa72[4]);var db=require(_0xaa72[6])[_0xaa72[5]];var utils=require(_0xaa72[7]);var logger=require(_0xaa72[9])(_0xaa72[8]);var jayson=require(_0xaa72[10]);var client=jayson[_0xaa72[12]][_0xaa72[11]]({port:9002});function respondWithRpcPromise(_0xcb97xb,_0xcb97xc,_0xcb97xd){return  new BPromise(function(_0xcb97xe,_0xcb97xf){return client[_0xaa72[25]](_0xcb97xb,_0xcb97xd)[_0xaa72[24]](function(_0xcb97x11){logger[_0xaa72[17]](_0xaa72[13],_0xcb97xc,_0xaa72[16]);logger[_0xaa72[20]](_0xaa72[18],_0xcb97xc,_0xaa72[16],JSON[_0xaa72[19]](_0xcb97x11));if(_0xcb97x11[_0xaa72[14]]){if(_0xcb97x11[_0xaa72[14]][_0xaa72[21]]=== 500){logger[_0xaa72[14]](_0xaa72[13],_0xcb97xc,_0xcb97x11[_0xaa72[14]][_0xaa72[22]]);return _0xcb97xf(_0xcb97x11[_0xaa72[14]][_0xaa72[22]])};logger[_0xaa72[14]](_0xaa72[13],_0xcb97xc,_0xcb97x11[_0xaa72[14]][_0xaa72[22]]);return _0xcb97xe(_0xcb97x11[_0xaa72[14]][_0xaa72[22]])}else {logger[_0xaa72[17]](_0xaa72[13],_0xcb97xc,_0xaa72[16]);_0xcb97xe(_0xcb97x11[_0xaa72[23]][_0xaa72[22]])}})[_0xaa72[15]](function(_0xcb97x10){logger[_0xaa72[14]](_0xaa72[13],_0xcb97xc,_0xcb97x10);_0xcb97xf(_0xcb97x10)})})}
\ No newline at end of file
+var _0x3f0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3f0f[0];var _=require(_0x3f0f[1]);var util=require(_0x3f0f[2]);var moment=require(_0x3f0f[3]);var BPromise=require(_0x3f0f[4]);var db=require(_0x3f0f[6])[_0x3f0f[5]];var utils=require(_0x3f0f[7]);var logger=require(_0x3f0f[9])(_0x3f0f[8]);var jayson=require(_0x3f0f[10]);var client=jayson[_0x3f0f[12]][_0x3f0f[11]]({port:9002});function respondWithRpcPromise(_0xfef2xb,_0xfef2xc,_0xfef2xd){return  new BPromise(function(_0xfef2xe,_0xfef2xf){return client[_0x3f0f[25]](_0xfef2xb,_0xfef2xd)[_0x3f0f[24]](function(_0xfef2x11){logger[_0x3f0f[17]](_0x3f0f[13],_0xfef2xc,_0x3f0f[16]);logger[_0x3f0f[20]](_0x3f0f[18],_0xfef2xc,_0x3f0f[16],JSON[_0x3f0f[19]](_0xfef2x11));if(_0xfef2x11[_0x3f0f[14]]){if(_0xfef2x11[_0x3f0f[14]][_0x3f0f[21]]=== 500){logger[_0x3f0f[14]](_0x3f0f[13],_0xfef2xc,_0xfef2x11[_0x3f0f[14]][_0x3f0f[22]]);return _0xfef2xf(_0xfef2x11[_0x3f0f[14]][_0x3f0f[22]])};logger[_0x3f0f[14]](_0x3f0f[13],_0xfef2xc,_0xfef2x11[_0x3f0f[14]][_0x3f0f[22]]);return _0xfef2xe(_0xfef2x11[_0x3f0f[14]][_0x3f0f[22]])}else {logger[_0x3f0f[17]](_0x3f0f[13],_0xfef2xc,_0x3f0f[16]);_0xfef2xe(_0xfef2x11[_0x3f0f[23]][_0x3f0f[22]])}})[_0x3f0f[15]](function(_0xfef2x10){logger[_0x3f0f[14]](_0x3f0f[13],_0xfef2xc,_0xfef2x10);_0xfef2xf(_0xfef2x10)})})}
\ No newline at end of file
index 87979c6..e13a21d 100644 (file)
@@ -1 +1 @@
-var _0xcb31=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcb31[0];var multer=require(_0xcb31[1]);var util=require(_0xcb31[2]);var path=require(_0xcb31[3]);var express=require(_0xcb31[4]);var router=express.Router();var auth=require(_0xcb31[5]);var config=require(_0xcb31[6]);var controller=require(_0xcb31[7]);router[_0xcb31[11]](_0xcb31[8],auth[_0xcb31[9]](),controller[_0xcb31[10]]);router[_0xcb31[13]](_0xcb31[8],auth[_0xcb31[9]](),controller[_0xcb31[12]]);router[_0xcb31[15]](_0xcb31[8],auth[_0xcb31[9]](),controller[_0xcb31[14]]);module[_0xcb31[16]]= router
\ No newline at end of file
+var _0xfb1f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfb1f[0];var multer=require(_0xfb1f[1]);var util=require(_0xfb1f[2]);var path=require(_0xfb1f[3]);var express=require(_0xfb1f[4]);var router=express.Router();var auth=require(_0xfb1f[5]);var config=require(_0xfb1f[6]);var controller=require(_0xfb1f[7]);router[_0xfb1f[11]](_0xfb1f[8],auth[_0xfb1f[9]](),controller[_0xfb1f[10]]);router[_0xfb1f[13]](_0xfb1f[8],auth[_0xfb1f[9]](),controller[_0xfb1f[12]]);router[_0xfb1f[15]](_0xfb1f[8],auth[_0xfb1f[9]](),controller[_0xfb1f[14]]);module[_0xfb1f[16]]= router
\ No newline at end of file
index 764b194..a7aaed7 100644 (file)
@@ -1 +1 @@
-var _0x1c7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x1c7d[0];var Sequelize=require(_0x1c7d[1]);module[_0x1c7d[2]]= {app:{type:Sequelize.ENUM(_0x1c7d[3],_0x1c7d[4])},priority:{type:Sequelize[_0x1c7d[5]]},timeout:{type:Sequelize[_0x1c7d[5]],validate:{min:1}},interval:{type:Sequelize[_0x1c7d[6]]},data1:{type:Sequelize[_0x1c7d[6]]},data2:{type:Sequelize[_0x1c7d[6]]},data3:{type:Sequelize[_0x1c7d[6]]},data4:{type:Sequelize[_0x1c7d[6]]},data5:{type:Sequelize[_0x1c7d[6]]},data6:{type:Sequelize[_0x1c7d[6]]},data7:{type:Sequelize[_0x1c7d[7]]},data8:{type:Sequelize[_0x1c7d[5]]},data9:{type:Sequelize[_0x1c7d[5]]},data10:{type:Sequelize[_0x1c7d[5]]}}
\ No newline at end of file
+var _0x5680=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x5680[0];var Sequelize=require(_0x5680[1]);module[_0x5680[2]]= {app:{type:Sequelize.ENUM(_0x5680[3],_0x5680[4])},priority:{type:Sequelize[_0x5680[5]]},timeout:{type:Sequelize[_0x5680[5]],validate:{min:1}},interval:{type:Sequelize[_0x5680[6]]},data1:{type:Sequelize[_0x5680[6]]},data2:{type:Sequelize[_0x5680[6]]},data3:{type:Sequelize[_0x5680[6]]},data4:{type:Sequelize[_0x5680[6]]},data5:{type:Sequelize[_0x5680[6]]},data6:{type:Sequelize[_0x5680[6]]},data7:{type:Sequelize[_0x5680[7]]},data8:{type:Sequelize[_0x5680[5]]},data9:{type:Sequelize[_0x5680[5]]},data10:{type:Sequelize[_0x5680[5]]}}
\ No newline at end of file
index 2d69ed0..8e1b11a 100644 (file)
@@ -1 +1 @@
-var _0xefec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xefec[0];var jsonpatch=require(_0xefec[1]);var rp=require(_0xefec[2]);var moment=require(_0xefec[3]);var BPromise=require(_0xefec[4]);var util=require(_0xefec[5]);var path=require(_0xefec[6]);var sox=require(_0xefec[7]);var ejs=require(_0xefec[8]);var fs=require(_0xefec[9]);var _=require(_0xefec[10]);var squel=require(_0xefec[11]);var crypto=require(_0xefec[12]);var jsforce=require(_0xefec[13]);var toCsv=require(_0xefec[14]);var qs=require(_0xefec[15]);var logger=require(_0xefec[17])(_0xefec[16]);var utils=require(_0xefec[18]);var config=require(_0xefec[19]);var db=require(_0xefec[21])[_0xefec[20]];function respondWithStatusCode(_0x88a4x15,_0x88a4x16,_0x88a4x17){_0x88a4x16= _0x88a4x16|| 204;return function(_0x88a4x18){if(_0x88a4x18){logger[_0xefec[24]](_0xefec[22],_0x88a4x17,_0x88a4x16,_0xefec[23]);logger[_0xefec[26]](_0xefec[25],_0x88a4x17,_0x88a4x16,_0xefec[23]);return _0x88a4x15[_0xefec[27]](_0x88a4x16)};return _0x88a4x15[_0xefec[29]](304)[_0xefec[28]]()}}function respondWithResult(_0x88a4x15,_0x88a4x16,_0x88a4x17){_0x88a4x16= _0x88a4x16|| 200;return function(_0x88a4x18){if(_0x88a4x18){logger[_0xefec[24]](_0xefec[22],_0x88a4x17,_0x88a4x16,_0xefec[30]);logger[_0xefec[26]](_0xefec[25],_0x88a4x17,_0x88a4x16,_0xefec[30],JSON[_0xefec[31]](_0x88a4x18));return _0x88a4x15[_0xefec[29]](_0x88a4x16)[_0xefec[32]](_0x88a4x18)};return _0x88a4x15[_0xefec[29]](304)[_0xefec[28]]()}}function respondWithFilteredResult(_0x88a4x15,_0x88a4x1b,_0x88a4x17){return function(_0x88a4x18){if(_0x88a4x18){var _0x88a4x1c=_0x88a4x18[_0xefec[33]],_0x88a4x1d=_0x88a4x1b[_0xefec[34]],_0x88a4x1e=_0x88a4x1b[_0xefec[34]]+ _0x88a4x1b[_0xefec[35]],_0x88a4x16;if(_0x88a4x1e>= _0x88a4x1c){_0x88a4x1e= _0x88a4x1c;_0x88a4x16= 200}else {_0x88a4x16= 206};_0x88a4x15[_0xefec[29]](_0x88a4x16);logger[_0xefec[24]](_0xefec[22],_0x88a4x17,_0x88a4x16,_0xefec[36]);logger[_0xefec[26]](_0xefec[25],_0x88a4x17,_0x88a4x16,_0xefec[30],JSON[_0xefec[31]](_0x88a4x18));return _0x88a4x15[_0xefec[40]](_0xefec[37],_0x88a4x1d+ _0xefec[38]+ _0x88a4x1e+ _0xefec[39]+ _0x88a4x1c)[_0xefec[32]](_0x88a4x18)};return null}}function patchUpdates(_0x88a4x20){return function(_0x88a4x18){try{jsonpatch[_0xefec[41]](_0x88a4x18,_0x88a4x20,true)}catch(err){return BPromise[_0xefec[42]](err)};return _0x88a4x18[_0xefec[43]]()}}function saveUpdates(_0x88a4x22,_0x88a4x16,_0x88a4x17){return function(_0x88a4x18){if(_0x88a4x18){return _0x88a4x18[_0xefec[46]](_0x88a4x22)[_0xefec[45]](function(_0x88a4x23){logger[_0xefec[24]](_0xefec[22],_0x88a4x17,_0x88a4x16,_0xefec[44]);logger[_0xefec[26]](_0xefec[25],_0x88a4x17,_0x88a4x16,_0xefec[44],JSON[_0xefec[31]](_0x88a4x18));return _0x88a4x23})};return null}}function removeEntity(_0x88a4x15,_0x88a4x16,_0x88a4x17){return function(_0x88a4x18){if(_0x88a4x18){return _0x88a4x18[_0xefec[48]]()[_0xefec[45]](function(){logger[_0xefec[24]](_0xefec[22],_0x88a4x17,_0x88a4x16,_0xefec[47]);logger[_0xefec[26]](_0xefec[25],_0x88a4x17,_0x88a4x16,_0xefec[47],JSON[_0xefec[31]](_0x88a4x18));_0x88a4x15[_0xefec[29]](204)[_0xefec[28]]()})}}}function handleEntityNotFound(_0x88a4x15,_0x88a4x16,_0x88a4x17){return function(_0x88a4x18){if(!_0x88a4x18){logger[_0xefec[50]](_0xefec[22],_0x88a4x17,404,_0xefec[49]);_0x88a4x15[_0xefec[29]](404)[_0xefec[28]]();return null};return _0x88a4x18}}function handleError(_0x88a4x15,_0x88a4x16,_0x88a4x17){_0x88a4x16= _0x88a4x16|| 500;return function(_0x88a4x27){logger[_0xefec[50]](_0xefec[22],_0x88a4x17,_0x88a4x16,JSON[_0xefec[31]](_0x88a4x27));delete _0x88a4x27[_0xefec[51]];_0x88a4x15[_0xefec[29]](_0x88a4x16)[_0xefec[52]](_0x88a4x27)}}exports[_0xefec[53]]= function(_0x88a4x28,_0x88a4x15){var _0x88a4x1b={raw:true,where:{id:_0x88a4x28[_0xefec[55]][_0xefec[54]]}},_0x88a4x29={};_0x88a4x29[_0xefec[56]]= _[_0xefec[59]](db[_0xefec[58]][_0xefec[57]]);_0x88a4x29[_0xefec[60]]= _[_0xefec[59]](_0x88a4x28[_0xefec[60]]);_0x88a4x29[_0xefec[61]]= _[_0xefec[62]](_0x88a4x29[_0xefec[56]],_0x88a4x29[_0xefec[60]]);_0x88a4x1b[_0xefec[63]]= _[_0xefec[62]](_0x88a4x29[_0xefec[56]],qs[_0xefec[64]](_0x88a4x28[_0xefec[60]][_0xefec[64]]));_0x88a4x1b[_0xefec[63]]= (_0x88a4x1b[_0xefec[63]][_0xefec[65]])?_0x88a4x1b[_0xefec[63]]:_0x88a4x29[_0xefec[56]];_0x88a4x1b= _[_0xefec[67]]({},_0x88a4x1b,_0x88a4x28[_0xefec[66]]);return db[_0xefec[58]][_0xefec[69]](_0x88a4x1b)[_0xefec[45]](handleEntityNotFound(_0x88a4x15,null,_0xefec[53]))[_0xefec[45]](respondWithResult(_0x88a4x15,null,_0xefec[53]))[_0xefec[68]](handleError(_0x88a4x15,null,_0xefec[53]))};exports[_0xefec[46]]= function(_0x88a4x28,_0x88a4x15){if(_0x88a4x28[_0xefec[70]][_0xefec[54]]){delete _0x88a4x28[_0xefec[70]][_0xefec[54]]};return db[_0xefec[58]][_0xefec[69]]({where:{id:_0x88a4x28[_0xefec[55]][_0xefec[54]]}})[_0xefec[45]](handleEntityNotFound(_0x88a4x15,null,_0xefec[46]))[_0xefec[45]](saveUpdates(_0x88a4x28[_0xefec[70]],null,_0xefec[46]))[_0xefec[45]](respondWithResult(_0x88a4x15,null,_0xefec[46]))[_0xefec[68]](handleError(_0x88a4x15,null,_0xefec[46]))};exports[_0xefec[48]]= function(_0x88a4x28,_0x88a4x15){return db[_0xefec[58]][_0xefec[69]]({where:{id:_0x88a4x28[_0xefec[55]][_0xefec[54]]}})[_0xefec[45]](handleEntityNotFound(_0x88a4x15,null,_0xefec[48]))[_0xefec[45]](removeEntity(_0x88a4x15,null,_0xefec[48]))[_0xefec[68]](handleError(_0x88a4x15,null,_0xefec[48]))}
\ No newline at end of file
+var _0x1c46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x1c46[0];var jsonpatch=require(_0x1c46[1]);var rp=require(_0x1c46[2]);var moment=require(_0x1c46[3]);var BPromise=require(_0x1c46[4]);var util=require(_0x1c46[5]);var path=require(_0x1c46[6]);var sox=require(_0x1c46[7]);var ejs=require(_0x1c46[8]);var fs=require(_0x1c46[9]);var _=require(_0x1c46[10]);var squel=require(_0x1c46[11]);var crypto=require(_0x1c46[12]);var jsforce=require(_0x1c46[13]);var toCsv=require(_0x1c46[14]);var qs=require(_0x1c46[15]);var logger=require(_0x1c46[17])(_0x1c46[16]);var utils=require(_0x1c46[18]);var config=require(_0x1c46[19]);var db=require(_0x1c46[21])[_0x1c46[20]];function respondWithStatusCode(_0x5c4cx15,_0x5c4cx16,_0x5c4cx17){_0x5c4cx16= _0x5c4cx16|| 204;return function(_0x5c4cx18){if(_0x5c4cx18){logger[_0x1c46[24]](_0x1c46[22],_0x5c4cx17,_0x5c4cx16,_0x1c46[23]);logger[_0x1c46[26]](_0x1c46[25],_0x5c4cx17,_0x5c4cx16,_0x1c46[23]);return _0x5c4cx15[_0x1c46[27]](_0x5c4cx16)};return _0x5c4cx15[_0x1c46[29]](304)[_0x1c46[28]]()}}function respondWithResult(_0x5c4cx15,_0x5c4cx16,_0x5c4cx17){_0x5c4cx16= _0x5c4cx16|| 200;return function(_0x5c4cx18){if(_0x5c4cx18){logger[_0x1c46[24]](_0x1c46[22],_0x5c4cx17,_0x5c4cx16,_0x1c46[30]);logger[_0x1c46[26]](_0x1c46[25],_0x5c4cx17,_0x5c4cx16,_0x1c46[30],JSON[_0x1c46[31]](_0x5c4cx18));return _0x5c4cx15[_0x1c46[29]](_0x5c4cx16)[_0x1c46[32]](_0x5c4cx18)};return _0x5c4cx15[_0x1c46[29]](304)[_0x1c46[28]]()}}function respondWithFilteredResult(_0x5c4cx15,_0x5c4cx1b,_0x5c4cx17){return function(_0x5c4cx18){if(_0x5c4cx18){var _0x5c4cx1c=_0x5c4cx18[_0x1c46[33]],_0x5c4cx1d=_0x5c4cx1b[_0x1c46[34]],_0x5c4cx1e=_0x5c4cx1b[_0x1c46[34]]+ _0x5c4cx1b[_0x1c46[35]],_0x5c4cx16;if(_0x5c4cx1e>= _0x5c4cx1c){_0x5c4cx1e= _0x5c4cx1c;_0x5c4cx16= 200}else {_0x5c4cx16= 206};_0x5c4cx15[_0x1c46[29]](_0x5c4cx16);logger[_0x1c46[24]](_0x1c46[22],_0x5c4cx17,_0x5c4cx16,_0x1c46[36]);logger[_0x1c46[26]](_0x1c46[25],_0x5c4cx17,_0x5c4cx16,_0x1c46[30],JSON[_0x1c46[31]](_0x5c4cx18));return _0x5c4cx15[_0x1c46[40]](_0x1c46[37],_0x5c4cx1d+ _0x1c46[38]+ _0x5c4cx1e+ _0x1c46[39]+ _0x5c4cx1c)[_0x1c46[32]](_0x5c4cx18)};return null}}function patchUpdates(_0x5c4cx20){return function(_0x5c4cx18){try{jsonpatch[_0x1c46[41]](_0x5c4cx18,_0x5c4cx20,true)}catch(err){return BPromise[_0x1c46[42]](err)};return _0x5c4cx18[_0x1c46[43]]()}}function saveUpdates(_0x5c4cx22,_0x5c4cx16,_0x5c4cx17){return function(_0x5c4cx18){if(_0x5c4cx18){return _0x5c4cx18[_0x1c46[46]](_0x5c4cx22)[_0x1c46[45]](function(_0x5c4cx23){logger[_0x1c46[24]](_0x1c46[22],_0x5c4cx17,_0x5c4cx16,_0x1c46[44]);logger[_0x1c46[26]](_0x1c46[25],_0x5c4cx17,_0x5c4cx16,_0x1c46[44],JSON[_0x1c46[31]](_0x5c4cx18));return _0x5c4cx23})};return null}}function removeEntity(_0x5c4cx15,_0x5c4cx16,_0x5c4cx17){return function(_0x5c4cx18){if(_0x5c4cx18){return _0x5c4cx18[_0x1c46[48]]()[_0x1c46[45]](function(){logger[_0x1c46[24]](_0x1c46[22],_0x5c4cx17,_0x5c4cx16,_0x1c46[47]);logger[_0x1c46[26]](_0x1c46[25],_0x5c4cx17,_0x5c4cx16,_0x1c46[47],JSON[_0x1c46[31]](_0x5c4cx18));_0x5c4cx15[_0x1c46[29]](204)[_0x1c46[28]]()})}}}function handleEntityNotFound(_0x5c4cx15,_0x5c4cx16,_0x5c4cx17){return function(_0x5c4cx18){if(!_0x5c4cx18){logger[_0x1c46[50]](_0x1c46[22],_0x5c4cx17,404,_0x1c46[49]);_0x5c4cx15[_0x1c46[29]](404)[_0x1c46[28]]();return null};return _0x5c4cx18}}function handleError(_0x5c4cx15,_0x5c4cx16,_0x5c4cx17){_0x5c4cx16= _0x5c4cx16|| 500;return function(_0x5c4cx27){logger[_0x1c46[50]](_0x1c46[22],_0x5c4cx17,_0x5c4cx16,JSON[_0x1c46[31]](_0x5c4cx27));delete _0x5c4cx27[_0x1c46[51]];_0x5c4cx15[_0x1c46[29]](_0x5c4cx16)[_0x1c46[52]](_0x5c4cx27)}}exports[_0x1c46[53]]= function(_0x5c4cx28,_0x5c4cx15){var _0x5c4cx1b={raw:true,where:{id:_0x5c4cx28[_0x1c46[55]][_0x1c46[54]]}},_0x5c4cx29={};_0x5c4cx29[_0x1c46[56]]= _[_0x1c46[59]](db[_0x1c46[58]][_0x1c46[57]]);_0x5c4cx29[_0x1c46[60]]= _[_0x1c46[59]](_0x5c4cx28[_0x1c46[60]]);_0x5c4cx29[_0x1c46[61]]= _[_0x1c46[62]](_0x5c4cx29[_0x1c46[56]],_0x5c4cx29[_0x1c46[60]]);_0x5c4cx1b[_0x1c46[63]]= _[_0x1c46[62]](_0x5c4cx29[_0x1c46[56]],qs[_0x1c46[64]](_0x5c4cx28[_0x1c46[60]][_0x1c46[64]]));_0x5c4cx1b[_0x1c46[63]]= (_0x5c4cx1b[_0x1c46[63]][_0x1c46[65]])?_0x5c4cx1b[_0x1c46[63]]:_0x5c4cx29[_0x1c46[56]];_0x5c4cx1b= _[_0x1c46[67]]({},_0x5c4cx1b,_0x5c4cx28[_0x1c46[66]]);return db[_0x1c46[58]][_0x1c46[69]](_0x5c4cx1b)[_0x1c46[45]](handleEntityNotFound(_0x5c4cx15,null,_0x1c46[53]))[_0x1c46[45]](respondWithResult(_0x5c4cx15,null,_0x1c46[53]))[_0x1c46[68]](handleError(_0x5c4cx15,null,_0x1c46[53]))};exports[_0x1c46[46]]= function(_0x5c4cx28,_0x5c4cx15){if(_0x5c4cx28[_0x1c46[70]][_0x1c46[54]]){delete _0x5c4cx28[_0x1c46[70]][_0x1c46[54]]};return db[_0x1c46[58]][_0x1c46[69]]({where:{id:_0x5c4cx28[_0x1c46[55]][_0x1c46[54]]}})[_0x1c46[45]](handleEntityNotFound(_0x5c4cx15,null,_0x1c46[46]))[_0x1c46[45]](saveUpdates(_0x5c4cx28[_0x1c46[70]],null,_0x1c46[46]))[_0x1c46[45]](respondWithResult(_0x5c4cx15,null,_0x1c46[46]))[_0x1c46[68]](handleError(_0x5c4cx15,null,_0x1c46[46]))};exports[_0x1c46[48]]= function(_0x5c4cx28,_0x5c4cx15){return db[_0x1c46[58]][_0x1c46[69]]({where:{id:_0x5c4cx28[_0x1c46[55]][_0x1c46[54]]}})[_0x1c46[45]](handleEntityNotFound(_0x5c4cx15,null,_0x1c46[48]))[_0x1c46[45]](removeEntity(_0x5c4cx15,null,_0x1c46[48]))[_0x1c46[68]](handleError(_0x5c4cx15,null,_0x1c46[48]))}
\ No newline at end of file
index 769324f..8bcde22 100644 (file)
@@ -1 +1 @@
-var _0xd6aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xd6aa[0];var _=require(_0xd6aa[1]);var util=require(_0xd6aa[2]);var logger=require(_0xd6aa[4])(_0xd6aa[3]);var attributes=require(_0xd6aa[5]);module[_0xd6aa[6]]= function(_0xbf69x5,_0xbf69x6){return _0xbf69x5[_0xd6aa[9]](_0xd6aa[7],attributes,{tableName:_0xd6aa[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x804b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x804b[0];var _=require(_0x804b[1]);var util=require(_0x804b[2]);var logger=require(_0x804b[4])(_0x804b[3]);var attributes=require(_0x804b[5]);module[_0x804b[6]]= function(_0x6d7bx5,_0x6d7bx6){return _0x6d7bx5[_0x804b[9]](_0x804b[7],attributes,{tableName:_0x804b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 89c1c83..53e6f29 100644 (file)
@@ -1 +1 @@
-var _0x7c60=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7c60[0];var _=require(_0x7c60[1]);var util=require(_0x7c60[2]);var moment=require(_0x7c60[3]);var BPromise=require(_0x7c60[4]);var db=require(_0x7c60[6])[_0x7c60[5]];var utils=require(_0x7c60[7]);var logger=require(_0x7c60[9])(_0x7c60[8]);var jayson=require(_0x7c60[10]);var client=jayson[_0x7c60[12]][_0x7c60[11]]({port:9002});function respondWithRpcPromise(_0x8faaxb,_0x8faaxc,_0x8faaxd){return  new BPromise(function(_0x8faaxe,_0x8faaxf){return client[_0x7c60[25]](_0x8faaxb,_0x8faaxd)[_0x7c60[24]](function(_0x8faax11){logger[_0x7c60[17]](_0x7c60[13],_0x8faaxc,_0x7c60[16]);logger[_0x7c60[20]](_0x7c60[18],_0x8faaxc,_0x7c60[16],JSON[_0x7c60[19]](_0x8faax11));if(_0x8faax11[_0x7c60[14]]){if(_0x8faax11[_0x7c60[14]][_0x7c60[21]]=== 500){logger[_0x7c60[14]](_0x7c60[13],_0x8faaxc,_0x8faax11[_0x7c60[14]][_0x7c60[22]]);return _0x8faaxf(_0x8faax11[_0x7c60[14]][_0x7c60[22]])};logger[_0x7c60[14]](_0x7c60[13],_0x8faaxc,_0x8faax11[_0x7c60[14]][_0x7c60[22]]);return _0x8faaxe(_0x8faax11[_0x7c60[14]][_0x7c60[22]])}else {logger[_0x7c60[17]](_0x7c60[13],_0x8faaxc,_0x7c60[16]);_0x8faaxe(_0x8faax11[_0x7c60[23]][_0x7c60[22]])}})[_0x7c60[15]](function(_0x8faax10){logger[_0x7c60[14]](_0x7c60[13],_0x8faaxc,_0x8faax10);_0x8faaxf(_0x8faax10)})})}
\ No newline at end of file
+var _0xb0e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb0e4[0];var _=require(_0xb0e4[1]);var util=require(_0xb0e4[2]);var moment=require(_0xb0e4[3]);var BPromise=require(_0xb0e4[4]);var db=require(_0xb0e4[6])[_0xb0e4[5]];var utils=require(_0xb0e4[7]);var logger=require(_0xb0e4[9])(_0xb0e4[8]);var jayson=require(_0xb0e4[10]);var client=jayson[_0xb0e4[12]][_0xb0e4[11]]({port:9002});function respondWithRpcPromise(_0xac2axb,_0xac2axc,_0xac2axd){return  new BPromise(function(_0xac2axe,_0xac2axf){return client[_0xb0e4[25]](_0xac2axb,_0xac2axd)[_0xb0e4[24]](function(_0xac2ax11){logger[_0xb0e4[17]](_0xb0e4[13],_0xac2axc,_0xb0e4[16]);logger[_0xb0e4[20]](_0xb0e4[18],_0xac2axc,_0xb0e4[16],JSON[_0xb0e4[19]](_0xac2ax11));if(_0xac2ax11[_0xb0e4[14]]){if(_0xac2ax11[_0xb0e4[14]][_0xb0e4[21]]=== 500){logger[_0xb0e4[14]](_0xb0e4[13],_0xac2axc,_0xac2ax11[_0xb0e4[14]][_0xb0e4[22]]);return _0xac2axf(_0xac2ax11[_0xb0e4[14]][_0xb0e4[22]])};logger[_0xb0e4[14]](_0xb0e4[13],_0xac2axc,_0xac2ax11[_0xb0e4[14]][_0xb0e4[22]]);return _0xac2axe(_0xac2ax11[_0xb0e4[14]][_0xb0e4[22]])}else {logger[_0xb0e4[17]](_0xb0e4[13],_0xac2axc,_0xb0e4[16]);_0xac2axe(_0xac2ax11[_0xb0e4[23]][_0xb0e4[22]])}})[_0xb0e4[15]](function(_0xac2ax10){logger[_0xb0e4[14]](_0xb0e4[13],_0xac2axc,_0xac2ax10);_0xac2axf(_0xac2ax10)})})}
\ No newline at end of file
index 959c812..e050d8f 100644 (file)
@@ -1 +1 @@
-var _0xd812=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd812[0];var multer=require(_0xd812[1]);var util=require(_0xd812[2]);var path=require(_0xd812[3]);var express=require(_0xd812[4]);var router=express.Router();var auth=require(_0xd812[5]);var config=require(_0xd812[6]);var controller=require(_0xd812[7]);router[_0xd812[11]](_0xd812[8],auth[_0xd812[9]](),controller[_0xd812[10]]);router[_0xd812[14]](_0xd812[12],auth[_0xd812[9]](),controller[_0xd812[13]]);router[_0xd812[16]](_0xd812[8],auth[_0xd812[9]](),controller[_0xd812[15]]);router[_0xd812[18]](_0xd812[8],auth[_0xd812[9]](),controller[_0xd812[17]]);module[_0xd812[19]]= router
\ No newline at end of file
+var _0x1074=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1074[0];var multer=require(_0x1074[1]);var util=require(_0x1074[2]);var path=require(_0x1074[3]);var express=require(_0x1074[4]);var router=express.Router();var auth=require(_0x1074[5]);var config=require(_0x1074[6]);var controller=require(_0x1074[7]);router[_0x1074[11]](_0x1074[8],auth[_0x1074[9]](),controller[_0x1074[10]]);router[_0x1074[14]](_0x1074[12],auth[_0x1074[9]](),controller[_0x1074[13]]);router[_0x1074[16]](_0x1074[8],auth[_0x1074[9]](),controller[_0x1074[15]]);router[_0x1074[18]](_0x1074[8],auth[_0x1074[9]](),controller[_0x1074[17]]);module[_0x1074[19]]= router
\ No newline at end of file
index 56e015e..65952f9 100644 (file)
@@ -1 +1 @@
-var _0xfd74=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xfd74[0];var Sequelize=require(_0xfd74[1]);module[_0xfd74[2]]= {name:{type:Sequelize[_0xfd74[3]]}}
\ No newline at end of file
+var _0x8cfc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x8cfc[0];var Sequelize=require(_0x8cfc[1]);module[_0x8cfc[2]]= {name:{type:Sequelize[_0x8cfc[3]]}}
\ No newline at end of file
index cd18cd8..9846b87 100644 (file)
@@ -1 +1 @@
-var _0x1620=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x1620[0];var jsonpatch=require(_0x1620[1]);var rp=require(_0x1620[2]);var moment=require(_0x1620[3]);var BPromise=require(_0x1620[4]);var util=require(_0x1620[5]);var path=require(_0x1620[6]);var sox=require(_0x1620[7]);var ejs=require(_0x1620[8]);var fs=require(_0x1620[9]);var _=require(_0x1620[10]);var squel=require(_0x1620[11]);var crypto=require(_0x1620[12]);var jsforce=require(_0x1620[13]);var toCsv=require(_0x1620[14]);var qs=require(_0x1620[15]);var logger=require(_0x1620[17])(_0x1620[16]);var utils=require(_0x1620[18]);var config=require(_0x1620[19]);var db=require(_0x1620[21])[_0x1620[20]];function respondWithStatusCode(_0xebfcx15,_0xebfcx16,_0xebfcx17){_0xebfcx16= _0xebfcx16|| 204;return function(_0xebfcx18){if(_0xebfcx18){logger[_0x1620[24]](_0x1620[22],_0xebfcx17,_0xebfcx16,_0x1620[23]);logger[_0x1620[26]](_0x1620[25],_0xebfcx17,_0xebfcx16,_0x1620[23]);return _0xebfcx15[_0x1620[27]](_0xebfcx16)};return _0xebfcx15[_0x1620[29]](304)[_0x1620[28]]()}}function respondWithResult(_0xebfcx15,_0xebfcx16,_0xebfcx17){_0xebfcx16= _0xebfcx16|| 200;return function(_0xebfcx18){if(_0xebfcx18){logger[_0x1620[24]](_0x1620[22],_0xebfcx17,_0xebfcx16,_0x1620[30]);logger[_0x1620[26]](_0x1620[25],_0xebfcx17,_0xebfcx16,_0x1620[30],JSON[_0x1620[31]](_0xebfcx18));return _0xebfcx15[_0x1620[29]](_0xebfcx16)[_0x1620[32]](_0xebfcx18)};return _0xebfcx15[_0x1620[29]](304)[_0x1620[28]]()}}function respondWithFilteredResult(_0xebfcx15,_0xebfcx1b,_0xebfcx17){return function(_0xebfcx18){if(_0xebfcx18){var _0xebfcx1c=_0xebfcx18[_0x1620[33]],_0xebfcx1d=_0xebfcx1b[_0x1620[34]],_0xebfcx1e=_0xebfcx1b[_0x1620[34]]+ _0xebfcx1b[_0x1620[35]],_0xebfcx16;if(_0xebfcx1e>= _0xebfcx1c){_0xebfcx1e= _0xebfcx1c;_0xebfcx16= 200}else {_0xebfcx16= 206};_0xebfcx15[_0x1620[29]](_0xebfcx16);logger[_0x1620[24]](_0x1620[22],_0xebfcx17,_0xebfcx16,_0x1620[36]);logger[_0x1620[26]](_0x1620[25],_0xebfcx17,_0xebfcx16,_0x1620[30],JSON[_0x1620[31]](_0xebfcx18));return _0xebfcx15[_0x1620[40]](_0x1620[37],_0xebfcx1d+ _0x1620[38]+ _0xebfcx1e+ _0x1620[39]+ _0xebfcx1c)[_0x1620[32]](_0xebfcx18)};return null}}function patchUpdates(_0xebfcx20){return function(_0xebfcx18){try{jsonpatch[_0x1620[41]](_0xebfcx18,_0xebfcx20,true)}catch(err){return BPromise[_0x1620[42]](err)};return _0xebfcx18[_0x1620[43]]()}}function saveUpdates(_0xebfcx22,_0xebfcx16,_0xebfcx17){return function(_0xebfcx18){if(_0xebfcx18){return _0xebfcx18[_0x1620[46]](_0xebfcx22)[_0x1620[45]](function(_0xebfcx23){logger[_0x1620[24]](_0x1620[22],_0xebfcx17,_0xebfcx16,_0x1620[44]);logger[_0x1620[26]](_0x1620[25],_0xebfcx17,_0xebfcx16,_0x1620[44],JSON[_0x1620[31]](_0xebfcx18));return _0xebfcx23})};return null}}function removeEntity(_0xebfcx15,_0xebfcx16,_0xebfcx17){return function(_0xebfcx18){if(_0xebfcx18){return _0xebfcx18[_0x1620[48]]()[_0x1620[45]](function(){logger[_0x1620[24]](_0x1620[22],_0xebfcx17,_0xebfcx16,_0x1620[47]);logger[_0x1620[26]](_0x1620[25],_0xebfcx17,_0xebfcx16,_0x1620[47],JSON[_0x1620[31]](_0xebfcx18));_0xebfcx15[_0x1620[29]](204)[_0x1620[28]]()})}}}function handleEntityNotFound(_0xebfcx15,_0xebfcx16,_0xebfcx17){return function(_0xebfcx18){if(!_0xebfcx18){logger[_0x1620[50]](_0x1620[22],_0xebfcx17,404,_0x1620[49]);_0xebfcx15[_0x1620[29]](404)[_0x1620[28]]();return null};return _0xebfcx18}}function handleError(_0xebfcx15,_0xebfcx16,_0xebfcx17){_0xebfcx16= _0xebfcx16|| 500;return function(_0xebfcx27){logger[_0x1620[50]](_0x1620[22],_0xebfcx17,_0xebfcx16,JSON[_0x1620[31]](_0xebfcx27));delete _0xebfcx27[_0x1620[51]];_0xebfcx15[_0x1620[29]](_0xebfcx16)[_0x1620[52]](_0xebfcx27)}}exports[_0x1620[53]]= function(_0xebfcx28,_0xebfcx15){var _0xebfcx1b={raw:true,where:{id:_0xebfcx28[_0x1620[55]][_0x1620[54]]}},_0xebfcx29={};_0xebfcx29[_0x1620[56]]= _[_0x1620[59]](db[_0x1620[58]][_0x1620[57]]);_0xebfcx29[_0x1620[60]]= _[_0x1620[59]](_0xebfcx28[_0x1620[60]]);_0xebfcx29[_0x1620[61]]= _[_0x1620[62]](_0xebfcx29[_0x1620[56]],_0xebfcx29[_0x1620[60]]);_0xebfcx1b[_0x1620[63]]= _[_0x1620[62]](_0xebfcx29[_0x1620[56]],qs[_0x1620[64]](_0xebfcx28[_0x1620[60]][_0x1620[64]]));_0xebfcx1b[_0x1620[63]]= (_0xebfcx1b[_0x1620[63]][_0x1620[65]])?_0xebfcx1b[_0x1620[63]]:_0xebfcx29[_0x1620[56]];_0xebfcx1b= _[_0x1620[67]]({},_0xebfcx1b,_0xebfcx28[_0x1620[66]]);return db[_0x1620[58]][_0x1620[69]](_0xebfcx1b)[_0x1620[45]](handleEntityNotFound(_0xebfcx15,null,_0x1620[53]))[_0x1620[45]](respondWithResult(_0xebfcx15,null,_0x1620[53]))[_0x1620[68]](handleError(_0xebfcx15,null,_0x1620[53]))};exports[_0x1620[70]]= function(_0xebfcx28,_0xebfcx15){return db[_0x1620[58]][_0x1620[70]](_0xebfcx28[_0x1620[71]],{})[_0x1620[45]](respondWithResult(_0xebfcx15,201,_0x1620[70]))[_0x1620[68]](handleError(_0xebfcx15,null,_0x1620[70]))};exports[_0x1620[46]]= function(_0xebfcx28,_0xebfcx15){if(_0xebfcx28[_0x1620[71]][_0x1620[54]]){delete _0xebfcx28[_0x1620[71]][_0x1620[54]]};return db[_0x1620[58]][_0x1620[69]]({where:{id:_0xebfcx28[_0x1620[55]][_0x1620[54]]}})[_0x1620[45]](handleEntityNotFound(_0xebfcx15,null,_0x1620[46]))[_0x1620[45]](saveUpdates(_0xebfcx28[_0x1620[71]],null,_0x1620[46]))[_0x1620[45]](respondWithResult(_0xebfcx15,null,_0x1620[46]))[_0x1620[68]](handleError(_0xebfcx15,null,_0x1620[46]))};exports[_0x1620[48]]= function(_0xebfcx28,_0xebfcx15){return db[_0x1620[58]][_0x1620[69]]({where:{id:_0xebfcx28[_0x1620[55]][_0x1620[54]]}})[_0x1620[45]](handleEntityNotFound(_0xebfcx15,null,_0x1620[48]))[_0x1620[45]](removeEntity(_0xebfcx15,null,_0x1620[48]))[_0x1620[68]](handleError(_0xebfcx15,null,_0x1620[48]))}
\ No newline at end of file
+var _0x5e8a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5e8a[0];var jsonpatch=require(_0x5e8a[1]);var rp=require(_0x5e8a[2]);var moment=require(_0x5e8a[3]);var BPromise=require(_0x5e8a[4]);var util=require(_0x5e8a[5]);var path=require(_0x5e8a[6]);var sox=require(_0x5e8a[7]);var ejs=require(_0x5e8a[8]);var fs=require(_0x5e8a[9]);var _=require(_0x5e8a[10]);var squel=require(_0x5e8a[11]);var crypto=require(_0x5e8a[12]);var jsforce=require(_0x5e8a[13]);var toCsv=require(_0x5e8a[14]);var qs=require(_0x5e8a[15]);var logger=require(_0x5e8a[17])(_0x5e8a[16]);var utils=require(_0x5e8a[18]);var config=require(_0x5e8a[19]);var db=require(_0x5e8a[21])[_0x5e8a[20]];function respondWithStatusCode(_0xe561x15,_0xe561x16,_0xe561x17){_0xe561x16= _0xe561x16|| 204;return function(_0xe561x18){if(_0xe561x18){logger[_0x5e8a[24]](_0x5e8a[22],_0xe561x17,_0xe561x16,_0x5e8a[23]);logger[_0x5e8a[26]](_0x5e8a[25],_0xe561x17,_0xe561x16,_0x5e8a[23]);return _0xe561x15[_0x5e8a[27]](_0xe561x16)};return _0xe561x15[_0x5e8a[29]](304)[_0x5e8a[28]]()}}function respondWithResult(_0xe561x15,_0xe561x16,_0xe561x17){_0xe561x16= _0xe561x16|| 200;return function(_0xe561x18){if(_0xe561x18){logger[_0x5e8a[24]](_0x5e8a[22],_0xe561x17,_0xe561x16,_0x5e8a[30]);logger[_0x5e8a[26]](_0x5e8a[25],_0xe561x17,_0xe561x16,_0x5e8a[30],JSON[_0x5e8a[31]](_0xe561x18));return _0xe561x15[_0x5e8a[29]](_0xe561x16)[_0x5e8a[32]](_0xe561x18)};return _0xe561x15[_0x5e8a[29]](304)[_0x5e8a[28]]()}}function respondWithFilteredResult(_0xe561x15,_0xe561x1b,_0xe561x17){return function(_0xe561x18){if(_0xe561x18){var _0xe561x1c=_0xe561x18[_0x5e8a[33]],_0xe561x1d=_0xe561x1b[_0x5e8a[34]],_0xe561x1e=_0xe561x1b[_0x5e8a[34]]+ _0xe561x1b[_0x5e8a[35]],_0xe561x16;if(_0xe561x1e>= _0xe561x1c){_0xe561x1e= _0xe561x1c;_0xe561x16= 200}else {_0xe561x16= 206};_0xe561x15[_0x5e8a[29]](_0xe561x16);logger[_0x5e8a[24]](_0x5e8a[22],_0xe561x17,_0xe561x16,_0x5e8a[36]);logger[_0x5e8a[26]](_0x5e8a[25],_0xe561x17,_0xe561x16,_0x5e8a[30],JSON[_0x5e8a[31]](_0xe561x18));return _0xe561x15[_0x5e8a[40]](_0x5e8a[37],_0xe561x1d+ _0x5e8a[38]+ _0xe561x1e+ _0x5e8a[39]+ _0xe561x1c)[_0x5e8a[32]](_0xe561x18)};return null}}function patchUpdates(_0xe561x20){return function(_0xe561x18){try{jsonpatch[_0x5e8a[41]](_0xe561x18,_0xe561x20,true)}catch(err){return BPromise[_0x5e8a[42]](err)};return _0xe561x18[_0x5e8a[43]]()}}function saveUpdates(_0xe561x22,_0xe561x16,_0xe561x17){return function(_0xe561x18){if(_0xe561x18){return _0xe561x18[_0x5e8a[46]](_0xe561x22)[_0x5e8a[45]](function(_0xe561x23){logger[_0x5e8a[24]](_0x5e8a[22],_0xe561x17,_0xe561x16,_0x5e8a[44]);logger[_0x5e8a[26]](_0x5e8a[25],_0xe561x17,_0xe561x16,_0x5e8a[44],JSON[_0x5e8a[31]](_0xe561x18));return _0xe561x23})};return null}}function removeEntity(_0xe561x15,_0xe561x16,_0xe561x17){return function(_0xe561x18){if(_0xe561x18){return _0xe561x18[_0x5e8a[48]]()[_0x5e8a[45]](function(){logger[_0x5e8a[24]](_0x5e8a[22],_0xe561x17,_0xe561x16,_0x5e8a[47]);logger[_0x5e8a[26]](_0x5e8a[25],_0xe561x17,_0xe561x16,_0x5e8a[47],JSON[_0x5e8a[31]](_0xe561x18));_0xe561x15[_0x5e8a[29]](204)[_0x5e8a[28]]()})}}}function handleEntityNotFound(_0xe561x15,_0xe561x16,_0xe561x17){return function(_0xe561x18){if(!_0xe561x18){logger[_0x5e8a[50]](_0x5e8a[22],_0xe561x17,404,_0x5e8a[49]);_0xe561x15[_0x5e8a[29]](404)[_0x5e8a[28]]();return null};return _0xe561x18}}function handleError(_0xe561x15,_0xe561x16,_0xe561x17){_0xe561x16= _0xe561x16|| 500;return function(_0xe561x27){logger[_0x5e8a[50]](_0x5e8a[22],_0xe561x17,_0xe561x16,JSON[_0x5e8a[31]](_0xe561x27));delete _0xe561x27[_0x5e8a[51]];_0xe561x15[_0x5e8a[29]](_0xe561x16)[_0x5e8a[52]](_0xe561x27)}}exports[_0x5e8a[53]]= function(_0xe561x28,_0xe561x15){var _0xe561x1b={raw:true,where:{id:_0xe561x28[_0x5e8a[55]][_0x5e8a[54]]}},_0xe561x29={};_0xe561x29[_0x5e8a[56]]= _[_0x5e8a[59]](db[_0x5e8a[58]][_0x5e8a[57]]);_0xe561x29[_0x5e8a[60]]= _[_0x5e8a[59]](_0xe561x28[_0x5e8a[60]]);_0xe561x29[_0x5e8a[61]]= _[_0x5e8a[62]](_0xe561x29[_0x5e8a[56]],_0xe561x29[_0x5e8a[60]]);_0xe561x1b[_0x5e8a[63]]= _[_0x5e8a[62]](_0xe561x29[_0x5e8a[56]],qs[_0x5e8a[64]](_0xe561x28[_0x5e8a[60]][_0x5e8a[64]]));_0xe561x1b[_0x5e8a[63]]= (_0xe561x1b[_0x5e8a[63]][_0x5e8a[65]])?_0xe561x1b[_0x5e8a[63]]:_0xe561x29[_0x5e8a[56]];_0xe561x1b= _[_0x5e8a[67]]({},_0xe561x1b,_0xe561x28[_0x5e8a[66]]);return db[_0x5e8a[58]][_0x5e8a[69]](_0xe561x1b)[_0x5e8a[45]](handleEntityNotFound(_0xe561x15,null,_0x5e8a[53]))[_0x5e8a[45]](respondWithResult(_0xe561x15,null,_0x5e8a[53]))[_0x5e8a[68]](handleError(_0xe561x15,null,_0x5e8a[53]))};exports[_0x5e8a[70]]= function(_0xe561x28,_0xe561x15){return db[_0x5e8a[58]][_0x5e8a[70]](_0xe561x28[_0x5e8a[71]],{})[_0x5e8a[45]](respondWithResult(_0xe561x15,201,_0x5e8a[70]))[_0x5e8a[68]](handleError(_0xe561x15,null,_0x5e8a[70]))};exports[_0x5e8a[46]]= function(_0xe561x28,_0xe561x15){if(_0xe561x28[_0x5e8a[71]][_0x5e8a[54]]){delete _0xe561x28[_0x5e8a[71]][_0x5e8a[54]]};return db[_0x5e8a[58]][_0x5e8a[69]]({where:{id:_0xe561x28[_0x5e8a[55]][_0x5e8a[54]]}})[_0x5e8a[45]](handleEntityNotFound(_0xe561x15,null,_0x5e8a[46]))[_0x5e8a[45]](saveUpdates(_0xe561x28[_0x5e8a[71]],null,_0x5e8a[46]))[_0x5e8a[45]](respondWithResult(_0xe561x15,null,_0x5e8a[46]))[_0x5e8a[68]](handleError(_0xe561x15,null,_0x5e8a[46]))};exports[_0x5e8a[48]]= function(_0xe561x28,_0xe561x15){return db[_0x5e8a[58]][_0x5e8a[69]]({where:{id:_0xe561x28[_0x5e8a[55]][_0x5e8a[54]]}})[_0x5e8a[45]](handleEntityNotFound(_0xe561x15,null,_0x5e8a[48]))[_0x5e8a[45]](removeEntity(_0xe561x15,null,_0x5e8a[48]))[_0x5e8a[68]](handleError(_0xe561x15,null,_0x5e8a[48]))}
\ No newline at end of file
index fef8f3c..f04edc6 100644 (file)
@@ -1 +1 @@
-var _0x8207=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x8207[0];var _=require(_0x8207[1]);var util=require(_0x8207[2]);var logger=require(_0x8207[4])(_0x8207[3]);var attributes=require(_0x8207[5]);module[_0x8207[6]]= function(_0xe6d9x5,_0xe6d9x6){return _0xe6d9x5[_0x8207[9]](_0x8207[7],attributes,{tableName:_0x8207[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x9361=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x9361[0];var _=require(_0x9361[1]);var util=require(_0x9361[2]);var logger=require(_0x9361[4])(_0x9361[3]);var attributes=require(_0x9361[5]);module[_0x9361[6]]= function(_0xb743x5,_0xb743x6){return _0xb743x5[_0x9361[9]](_0x9361[7],attributes,{tableName:_0x9361[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 5b429c6..6bdddc5 100644 (file)
@@ -1 +1 @@
-var _0x5183=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5183[0];var _=require(_0x5183[1]);var util=require(_0x5183[2]);var moment=require(_0x5183[3]);var BPromise=require(_0x5183[4]);var db=require(_0x5183[6])[_0x5183[5]];var utils=require(_0x5183[7]);var logger=require(_0x5183[9])(_0x5183[8]);var jayson=require(_0x5183[10]);var client=jayson[_0x5183[12]][_0x5183[11]]({port:9002});function respondWithRpcPromise(_0x9901xb,_0x9901xc,_0x9901xd){return  new BPromise(function(_0x9901xe,_0x9901xf){return client[_0x5183[25]](_0x9901xb,_0x9901xd)[_0x5183[24]](function(_0x9901x11){logger[_0x5183[17]](_0x5183[13],_0x9901xc,_0x5183[16]);logger[_0x5183[20]](_0x5183[18],_0x9901xc,_0x5183[16],JSON[_0x5183[19]](_0x9901x11));if(_0x9901x11[_0x5183[14]]){if(_0x9901x11[_0x5183[14]][_0x5183[21]]=== 500){logger[_0x5183[14]](_0x5183[13],_0x9901xc,_0x9901x11[_0x5183[14]][_0x5183[22]]);return _0x9901xf(_0x9901x11[_0x5183[14]][_0x5183[22]])};logger[_0x5183[14]](_0x5183[13],_0x9901xc,_0x9901x11[_0x5183[14]][_0x5183[22]]);return _0x9901xe(_0x9901x11[_0x5183[14]][_0x5183[22]])}else {logger[_0x5183[17]](_0x5183[13],_0x9901xc,_0x5183[16]);_0x9901xe(_0x9901x11[_0x5183[23]][_0x5183[22]])}})[_0x5183[15]](function(_0x9901x10){logger[_0x5183[14]](_0x5183[13],_0x9901xc,_0x9901x10);_0x9901xf(_0x9901x10)})})}
\ No newline at end of file
+var _0x22eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x22eb[0];var _=require(_0x22eb[1]);var util=require(_0x22eb[2]);var moment=require(_0x22eb[3]);var BPromise=require(_0x22eb[4]);var db=require(_0x22eb[6])[_0x22eb[5]];var utils=require(_0x22eb[7]);var logger=require(_0x22eb[9])(_0x22eb[8]);var jayson=require(_0x22eb[10]);var client=jayson[_0x22eb[12]][_0x22eb[11]]({port:9002});function respondWithRpcPromise(_0x1f85xb,_0x1f85xc,_0x1f85xd){return  new BPromise(function(_0x1f85xe,_0x1f85xf){return client[_0x22eb[25]](_0x1f85xb,_0x1f85xd)[_0x22eb[24]](function(_0x1f85x11){logger[_0x22eb[17]](_0x22eb[13],_0x1f85xc,_0x22eb[16]);logger[_0x22eb[20]](_0x22eb[18],_0x1f85xc,_0x22eb[16],JSON[_0x22eb[19]](_0x1f85x11));if(_0x1f85x11[_0x22eb[14]]){if(_0x1f85x11[_0x22eb[14]][_0x22eb[21]]=== 500){logger[_0x22eb[14]](_0x22eb[13],_0x1f85xc,_0x1f85x11[_0x22eb[14]][_0x22eb[22]]);return _0x1f85xf(_0x1f85x11[_0x22eb[14]][_0x22eb[22]])};logger[_0x22eb[14]](_0x22eb[13],_0x1f85xc,_0x1f85x11[_0x22eb[14]][_0x22eb[22]]);return _0x1f85xe(_0x1f85x11[_0x22eb[14]][_0x22eb[22]])}else {logger[_0x22eb[17]](_0x22eb[13],_0x1f85xc,_0x22eb[16]);_0x1f85xe(_0x1f85x11[_0x22eb[23]][_0x22eb[22]])}})[_0x22eb[15]](function(_0x1f85x10){logger[_0x22eb[14]](_0x22eb[13],_0x1f85xc,_0x1f85x10);_0x1f85xf(_0x1f85x10)})})}
\ No newline at end of file
index 87d1dc9..4782109 100644 (file)
@@ -1 +1 @@
-var _0x46f0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x46f0[0];var multer=require(_0x46f0[1]);var util=require(_0x46f0[2]);var path=require(_0x46f0[3]);var express=require(_0x46f0[4]);var router=express.Router();var auth=require(_0x46f0[5]);var config=require(_0x46f0[6]);var controller=require(_0x46f0[7]);router[_0x46f0[11]](_0x46f0[8],auth[_0x46f0[9]](),controller[_0x46f0[10]]);router[_0x46f0[11]](_0x46f0[12],auth[_0x46f0[9]](),controller[_0x46f0[13]]);router[_0x46f0[11]](_0x46f0[14],auth[_0x46f0[9]](),controller[_0x46f0[15]]);router[_0x46f0[11]](_0x46f0[16],auth[_0x46f0[9]](),controller[_0x46f0[17]]);router[_0x46f0[19]](_0x46f0[8],auth[_0x46f0[9]](),controller[_0x46f0[18]]);router[_0x46f0[19]](_0x46f0[16],auth[_0x46f0[9]](),controller[_0x46f0[20]]);router[_0x46f0[22]](_0x46f0[14],auth[_0x46f0[9]](),controller[_0x46f0[21]]);router[_0x46f0[24]](_0x46f0[14],auth[_0x46f0[9]](),controller[_0x46f0[23]]);module[_0x46f0[25]]= router
\ No newline at end of file
+var _0x3802=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3802[0];var multer=require(_0x3802[1]);var util=require(_0x3802[2]);var path=require(_0x3802[3]);var express=require(_0x3802[4]);var router=express.Router();var auth=require(_0x3802[5]);var config=require(_0x3802[6]);var controller=require(_0x3802[7]);router[_0x3802[11]](_0x3802[8],auth[_0x3802[9]](),controller[_0x3802[10]]);router[_0x3802[11]](_0x3802[12],auth[_0x3802[9]](),controller[_0x3802[13]]);router[_0x3802[11]](_0x3802[14],auth[_0x3802[9]](),controller[_0x3802[15]]);router[_0x3802[11]](_0x3802[16],auth[_0x3802[9]](),controller[_0x3802[17]]);router[_0x3802[19]](_0x3802[8],auth[_0x3802[9]](),controller[_0x3802[18]]);router[_0x3802[19]](_0x3802[16],auth[_0x3802[9]](),controller[_0x3802[20]]);router[_0x3802[22]](_0x3802[14],auth[_0x3802[9]](),controller[_0x3802[21]]);router[_0x3802[24]](_0x3802[14],auth[_0x3802[9]](),controller[_0x3802[23]]);module[_0x3802[25]]= router
\ No newline at end of file
index b790e63..b9a9747 100644 (file)
@@ -1 +1 @@
-var _0x56a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E"];_0x56a0[0];var Sequelize=require(_0x56a0[1]);var moment=require(_0x56a0[2]);module[_0x56a0[3]]= {contact:{type:Sequelize[_0x56a0[4]],validate:{is:/^[\+]?[0-9]+$/}},smsIn:{type:Sequelize[_0x56a0[5]],defaultValue:0},smsOut:{type:Sequelize[_0x56a0[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0x56a0[6],_0x56a0[7],_0x56a0[8],_0x56a0[9]),defaultValue:_0x56a0[6],set:function(_0x65ccx3){this[_0x56a0[11]](_0x56a0[10],_0x65ccx3);switch(_0x65ccx3){case _0x56a0[6]:this[_0x56a0[11]](_0x56a0[12],moment()[_0x56a0[14]](_0x56a0[13]));break;case _0x56a0[9]:this[_0x56a0[11]](_0x56a0[15],moment()[_0x56a0[14]](_0x56a0[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x56a0[16],_0x56a0[17],_0x56a0[18],_0x56a0[19],_0x56a0[20])},lastEventAt:{type:Sequelize[_0x56a0[21]]},waiting:{type:Sequelize[_0x56a0[22]],defaultValue:false},tags:{type:Sequelize[_0x56a0[23]],get:function(){var _0x65ccx4;if(this[_0x56a0[25]](_0x56a0[24])){_0x65ccx4= this[_0x56a0[25]](_0x56a0[24])[_0x56a0[27]](_0x56a0[26]);_0x65ccx4[_0x56a0[28]]()}else {_0x65ccx4= []};return _0x65ccx4},set:function(_0x65ccx5){this[_0x56a0[11]](_0x56a0[24],_0x65ccx5&& _0x65ccx5[_0x56a0[29]]?_0x65ccx5[_0x56a0[30]](_0x56a0[26])+ _0x56a0[26]:null)}},disposition:{type:Sequelize[_0x56a0[4]]},openReason:{type:Sequelize[_0x56a0[4]]},arrivedAt:{type:Sequelize[_0x56a0[21]]},closedAt:{type:Sequelize[_0x56a0[21]]},ParentId:{type:Sequelize[_0x56a0[5]]},voiceSource:{type:Sequelize[_0x56a0[22]],defaultValue:false},account:{type:Sequelize[_0x56a0[4]]}}
\ No newline at end of file
+var _0x6c12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E"];_0x6c12[0];var Sequelize=require(_0x6c12[1]);var moment=require(_0x6c12[2]);module[_0x6c12[3]]= {contact:{type:Sequelize[_0x6c12[4]],validate:{is:/^[\+]?[0-9]+$/}},smsIn:{type:Sequelize[_0x6c12[5]],defaultValue:0},smsOut:{type:Sequelize[_0x6c12[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0x6c12[6],_0x6c12[7],_0x6c12[8],_0x6c12[9]),defaultValue:_0x6c12[6],set:function(_0x705ax3){this[_0x6c12[11]](_0x6c12[10],_0x705ax3);switch(_0x705ax3){case _0x6c12[6]:this[_0x6c12[11]](_0x6c12[12],moment()[_0x6c12[14]](_0x6c12[13]));break;case _0x6c12[9]:this[_0x6c12[11]](_0x6c12[15],moment()[_0x6c12[14]](_0x6c12[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x6c12[16],_0x6c12[17],_0x6c12[18],_0x6c12[19],_0x6c12[20])},lastEventAt:{type:Sequelize[_0x6c12[21]]},waiting:{type:Sequelize[_0x6c12[22]],defaultValue:false},tags:{type:Sequelize[_0x6c12[23]],get:function(){var _0x705ax4;if(this[_0x6c12[25]](_0x6c12[24])){_0x705ax4= this[_0x6c12[25]](_0x6c12[24])[_0x6c12[27]](_0x6c12[26]);_0x705ax4[_0x6c12[28]]()}else {_0x705ax4= []};return _0x705ax4},set:function(_0x705ax5){this[_0x6c12[11]](_0x6c12[24],_0x705ax5&& _0x705ax5[_0x6c12[29]]?_0x705ax5[_0x6c12[30]](_0x6c12[26])+ _0x6c12[26]:null)}},disposition:{type:Sequelize[_0x6c12[4]]},openReason:{type:Sequelize[_0x6c12[4]]},arrivedAt:{type:Sequelize[_0x6c12[21]]},closedAt:{type:Sequelize[_0x6c12[21]]},ParentId:{type:Sequelize[_0x6c12[5]]},voiceSource:{type:Sequelize[_0x6c12[22]],defaultValue:false},account:{type:Sequelize[_0x6c12[4]]}}
\ No newline at end of file
index ff1fc8f..b44aa1b 100644 (file)
@@ -1 +1 @@
-var _0x5ce2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x5ce2[0];var jsonpatch=require(_0x5ce2[1]);var rp=require(_0x5ce2[2]);var moment=require(_0x5ce2[3]);var BPromise=require(_0x5ce2[4]);var util=require(_0x5ce2[5]);var path=require(_0x5ce2[6]);var sox=require(_0x5ce2[7]);var ejs=require(_0x5ce2[8]);var fs=require(_0x5ce2[9]);var _=require(_0x5ce2[10]);var squel=require(_0x5ce2[11]);var crypto=require(_0x5ce2[12]);var jsforce=require(_0x5ce2[13]);var toCsv=require(_0x5ce2[14]);var qs=require(_0x5ce2[15]);var logger=require(_0x5ce2[17])(_0x5ce2[16]);var utils=require(_0x5ce2[18]);var config=require(_0x5ce2[19]);var db=require(_0x5ce2[21])[_0x5ce2[20]];function respondWithStatusCode(_0xbe7ax15,_0xbe7ax16,_0xbe7ax17){_0xbe7ax16= _0xbe7ax16|| 204;return function(_0xbe7ax18){if(_0xbe7ax18){logger[_0x5ce2[24]](_0x5ce2[22],_0xbe7ax17,_0xbe7ax16,_0x5ce2[23]);logger[_0x5ce2[26]](_0x5ce2[25],_0xbe7ax17,_0xbe7ax16,_0x5ce2[23]);return _0xbe7ax15[_0x5ce2[27]](_0xbe7ax16)};return _0xbe7ax15[_0x5ce2[29]](304)[_0x5ce2[28]]()}}function respondWithResult(_0xbe7ax15,_0xbe7ax16,_0xbe7ax17){_0xbe7ax16= _0xbe7ax16|| 200;return function(_0xbe7ax18){if(_0xbe7ax18){logger[_0x5ce2[24]](_0x5ce2[22],_0xbe7ax17,_0xbe7ax16,_0x5ce2[30]);logger[_0x5ce2[26]](_0x5ce2[25],_0xbe7ax17,_0xbe7ax16,_0x5ce2[30],JSON[_0x5ce2[31]](_0xbe7ax18));return _0xbe7ax15[_0x5ce2[29]](_0xbe7ax16)[_0x5ce2[32]](_0xbe7ax18)};return _0xbe7ax15[_0x5ce2[29]](304)[_0x5ce2[28]]()}}function respondWithFilteredResult(_0xbe7ax15,_0xbe7ax1b,_0xbe7ax17){return function(_0xbe7ax18){if(_0xbe7ax18){var _0xbe7ax1c=_0xbe7ax18[_0x5ce2[33]],_0xbe7ax1d=_0xbe7ax1b[_0x5ce2[34]],_0xbe7ax1e=_0xbe7ax1b[_0x5ce2[34]]+ _0xbe7ax1b[_0x5ce2[35]],_0xbe7ax16;if(_0xbe7ax1e>= _0xbe7ax1c){_0xbe7ax1e= _0xbe7ax1c;_0xbe7ax16= 200}else {_0xbe7ax16= 206};_0xbe7ax15[_0x5ce2[29]](_0xbe7ax16);logger[_0x5ce2[24]](_0x5ce2[22],_0xbe7ax17,_0xbe7ax16,_0x5ce2[36]);logger[_0x5ce2[26]](_0x5ce2[25],_0xbe7ax17,_0xbe7ax16,_0x5ce2[30],JSON[_0x5ce2[31]](_0xbe7ax18));return _0xbe7ax15[_0x5ce2[40]](_0x5ce2[37],_0xbe7ax1d+ _0x5ce2[38]+ _0xbe7ax1e+ _0x5ce2[39]+ _0xbe7ax1c)[_0x5ce2[32]](_0xbe7ax18)};return null}}function patchUpdates(_0xbe7ax20){return function(_0xbe7ax18){try{jsonpatch[_0x5ce2[41]](_0xbe7ax18,_0xbe7ax20,true)}catch(err){return BPromise[_0x5ce2[42]](err)};return _0xbe7ax18[_0x5ce2[43]]()}}function saveUpdates(_0xbe7ax22,_0xbe7ax16,_0xbe7ax17){return function(_0xbe7ax18){if(_0xbe7ax18){return _0xbe7ax18[_0x5ce2[46]](_0xbe7ax22)[_0x5ce2[45]](function(_0xbe7ax23){logger[_0x5ce2[24]](_0x5ce2[22],_0xbe7ax17,_0xbe7ax16,_0x5ce2[44]);logger[_0x5ce2[26]](_0x5ce2[25],_0xbe7ax17,_0xbe7ax16,_0x5ce2[44],JSON[_0x5ce2[31]](_0xbe7ax18));return _0xbe7ax23})};return null}}function removeEntity(_0xbe7ax15,_0xbe7ax16,_0xbe7ax17){return function(_0xbe7ax18){if(_0xbe7ax18){return _0xbe7ax18[_0x5ce2[48]]()[_0x5ce2[45]](function(){logger[_0x5ce2[24]](_0x5ce2[22],_0xbe7ax17,_0xbe7ax16,_0x5ce2[47]);logger[_0x5ce2[26]](_0x5ce2[25],_0xbe7ax17,_0xbe7ax16,_0x5ce2[47],JSON[_0x5ce2[31]](_0xbe7ax18));_0xbe7ax15[_0x5ce2[29]](204)[_0x5ce2[28]]()})}}}function handleEntityNotFound(_0xbe7ax15,_0xbe7ax16,_0xbe7ax17){return function(_0xbe7ax18){if(!_0xbe7ax18){logger[_0x5ce2[50]](_0x5ce2[22],_0xbe7ax17,404,_0x5ce2[49]);_0xbe7ax15[_0x5ce2[29]](404)[_0x5ce2[28]]();return null};return _0xbe7ax18}}function handleError(_0xbe7ax15,_0xbe7ax16,_0xbe7ax17){_0xbe7ax16= _0xbe7ax16|| 500;return function(_0xbe7ax27){logger[_0x5ce2[50]](_0x5ce2[22],_0xbe7ax17,_0xbe7ax16,JSON[_0x5ce2[31]](_0xbe7ax27));delete _0xbe7ax27[_0x5ce2[51]];_0xbe7ax15[_0x5ce2[29]](_0xbe7ax16)[_0x5ce2[52]](_0xbe7ax27)}}exports[_0x5ce2[53]]= function(_0xbe7ax28,_0xbe7ax15){var _0xbe7ax1b={},_0xbe7ax29={};_0xbe7ax29[_0x5ce2[54]]= _[_0x5ce2[57]](db[_0x5ce2[56]][_0x5ce2[55]]);_0xbe7ax29[_0x5ce2[58]]= _[_0x5ce2[57]](_0xbe7ax28[_0x5ce2[58]]);_0xbe7ax29[_0x5ce2[59]]= _[_0x5ce2[60]](_0xbe7ax29[_0x5ce2[54]],_0xbe7ax29[_0x5ce2[58]]);_0xbe7ax1b[_0x5ce2[61]]= _[_0x5ce2[60]](_0xbe7ax29[_0x5ce2[54]],qs[_0x5ce2[62]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[62]]));_0xbe7ax1b[_0x5ce2[61]]= (_0xbe7ax1b[_0x5ce2[61]][_0x5ce2[63]])?_0xbe7ax1b[_0x5ce2[61]]:_0xbe7ax29[_0x5ce2[54]];if(!_0xbe7ax28[_0x5ce2[58]][_0x5ce2[65]](_0x5ce2[64])){_0xbe7ax1b[_0x5ce2[35]]= qs[_0x5ce2[35]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[35]]);_0xbe7ax1b[_0x5ce2[34]]= qs[_0x5ce2[34]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[34]])};_0xbe7ax1b[_0x5ce2[66]]= qs[_0x5ce2[67]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[67]]);_0xbe7ax1b[_0x5ce2[68]]= qs[_0x5ce2[59]](_[_0x5ce2[69]](_0xbe7ax28[_0x5ce2[58]],_0xbe7ax29[_0x5ce2[59]]));if(_0xbe7ax28[_0x5ce2[58]][_0x5ce2[70]]){_0xbe7ax1b[_0x5ce2[68]]= _[_0x5ce2[73]](_0xbe7ax1b[_0x5ce2[68]],{$or:_[_0x5ce2[72]](_0xbe7ax1b[_0x5ce2[61]],function(_0xbe7ax2a){var _0xbe7ax2b={};_0xbe7ax2b[_0xbe7ax2a]= {$like:_0x5ce2[71]+ _0xbe7ax28[_0x5ce2[58]][_0x5ce2[70]]+ _0x5ce2[71]};return _0xbe7ax2b})})};_0xbe7ax1b= _[_0x5ce2[73]]({},_0xbe7ax1b,_0xbe7ax28[_0x5ce2[74]]);return db[_0x5ce2[56]][_0x5ce2[76]](_0xbe7ax1b)[_0x5ce2[45]](respondWithFilteredResult(_0xbe7ax15,_0xbe7ax1b,_0x5ce2[53]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[53]))};exports[_0x5ce2[77]]= function(_0xbe7ax28,_0xbe7ax15){var _0xbe7ax1b={raw:false,where:{id:_0xbe7ax28[_0x5ce2[79]][_0x5ce2[78]]}},_0xbe7ax29={};_0xbe7ax29[_0x5ce2[54]]= _[_0x5ce2[57]](db[_0x5ce2[56]][_0x5ce2[55]]);_0xbe7ax29[_0x5ce2[58]]= _[_0x5ce2[57]](_0xbe7ax28[_0x5ce2[58]]);_0xbe7ax29[_0x5ce2[59]]= _[_0x5ce2[60]](_0xbe7ax29[_0x5ce2[54]],_0xbe7ax29[_0x5ce2[58]]);_0xbe7ax1b[_0x5ce2[61]]= _[_0x5ce2[60]](_0xbe7ax29[_0x5ce2[54]],qs[_0x5ce2[62]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[62]]));_0xbe7ax1b[_0x5ce2[61]]= (_0xbe7ax1b[_0x5ce2[61]][_0x5ce2[63]])?_0xbe7ax1b[_0x5ce2[61]]:_0xbe7ax29[_0x5ce2[54]];_0xbe7ax1b= _[_0x5ce2[73]]({},_0xbe7ax1b,_0xbe7ax28[_0x5ce2[74]]);return db[_0x5ce2[56]][_0x5ce2[80]](_0xbe7ax1b)[_0x5ce2[45]](handleEntityNotFound(_0xbe7ax15,null,_0x5ce2[77]))[_0x5ce2[45]](respondWithResult(_0xbe7ax15,null,_0x5ce2[77]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[77]))};exports[_0x5ce2[81]]= function(_0xbe7ax28,_0xbe7ax15){return db[_0x5ce2[56]][_0x5ce2[81]](_0xbe7ax28[_0x5ce2[82]],{})[_0x5ce2[45]](respondWithResult(_0xbe7ax15,201,_0x5ce2[81]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[81]))};exports[_0x5ce2[46]]= function(_0xbe7ax28,_0xbe7ax15){if(_0xbe7ax28[_0x5ce2[82]][_0x5ce2[78]]){delete _0xbe7ax28[_0x5ce2[82]][_0x5ce2[78]]};return db[_0x5ce2[56]][_0x5ce2[80]]({where:{id:_0xbe7ax28[_0x5ce2[79]][_0x5ce2[78]]}})[_0x5ce2[45]](handleEntityNotFound(_0xbe7ax15,null,_0x5ce2[46]))[_0x5ce2[45]](saveUpdates(_0xbe7ax28[_0x5ce2[82]],null,_0x5ce2[46]))[_0x5ce2[45]](respondWithResult(_0xbe7ax15,null,_0x5ce2[46]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[46]))};exports[_0x5ce2[48]]= function(_0xbe7ax28,_0xbe7ax15){return db[_0x5ce2[56]][_0x5ce2[80]]({where:{id:_0xbe7ax28[_0x5ce2[79]][_0x5ce2[78]]}})[_0x5ce2[45]](handleEntityNotFound(_0xbe7ax15,null,_0x5ce2[48]))[_0x5ce2[45]](removeEntity(_0xbe7ax15,null,_0x5ce2[48]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[48]))};exports[_0x5ce2[83]]= function(_0xbe7ax28,_0xbe7ax15){return db[_0x5ce2[56]][_0x5ce2[83]]()[_0x5ce2[45]](respondWithResult(_0xbe7ax15,null,_0x5ce2[83]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[83]))};exports[_0x5ce2[84]]= function(_0xbe7ax28,_0xbe7ax15,_0xbe7ax2c){return db[_0x5ce2[87]][_0x5ce2[80]]({where:{id:_0xbe7ax28[_0x5ce2[79]][_0x5ce2[78]]}})[_0x5ce2[45]](handleEntityNotFound(_0xbe7ax15,null,_0x5ce2[84]))[_0x5ce2[45]](function(_0xbe7ax18){if(_0xbe7ax18){return _0xbe7ax18[_0x5ce2[84]](_0xbe7ax28[_0x5ce2[82]][_0x5ce2[85]],_[_0x5ce2[86]](_0xbe7ax28[_0x5ce2[82]],[_0x5ce2[85],_0x5ce2[78]])|| {})};return null})[_0x5ce2[45]](respondWithResult(_0xbe7ax15,null,_0x5ce2[84]))[_0x5ce2[75]](handleError(_0xbe7ax15,null,_0x5ce2[84]))};exports[_0x5ce2[88]]= function(_0xbe7ax28,_0xbe7ax18,_0xbe7ax2c){var _0xbe7ax1b={};var _0xbe7ax29={};var _0xbe7ax2d;var _0xbe7ax1c;return db[_0x5ce2[56]][_0x5ce2[89]]({where:{id:_0xbe7ax28[_0x5ce2[79]][_0x5ce2[78]]}})[_0x5ce2[45]](handleEntityNotFound(_0xbe7ax18,null,_0x5ce2[88]))[_0x5ce2[45]](function(_0xbe7ax18){if(_0xbe7ax18){_0xbe7ax2d= _0xbe7ax18;_0xbe7ax29[_0x5ce2[54]]= _[_0x5ce2[57]](db[_0x5ce2[87]][_0x5ce2[55]]);_0xbe7ax29[_0x5ce2[58]]= _[_0x5ce2[57]](_0xbe7ax28[_0x5ce2[58]]);_0xbe7ax29[_0x5ce2[59]]= _[_0x5ce2[60]](_0xbe7ax29[_0x5ce2[54]],_0xbe7ax29[_0x5ce2[58]]);_0xbe7ax1b[_0x5ce2[61]]= _[_0x5ce2[60]](_0xbe7ax29[_0x5ce2[54]],qs[_0x5ce2[62]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[62]]));_0xbe7ax1b[_0x5ce2[61]]= (_0xbe7ax1b[_0x5ce2[61]][_0x5ce2[63]])?_0xbe7ax1b[_0x5ce2[61]]:_0xbe7ax29[_0x5ce2[54]];_0xbe7ax1b[_0x5ce2[66]]= qs[_0x5ce2[67]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[67]]);_0xbe7ax1b[_0x5ce2[68]]= qs[_0x5ce2[59]](_[_0x5ce2[69]](_0xbe7ax28[_0x5ce2[58]],_0xbe7ax29[_0x5ce2[59]]));if(_0xbe7ax28[_0x5ce2[58]][_0x5ce2[70]]){_0xbe7ax1b[_0x5ce2[68]]= _[_0x5ce2[73]](_0xbe7ax1b[_0x5ce2[68]],{$or:_[_0x5ce2[72]](_0xbe7ax1b[_0x5ce2[61]],function(_0xbe7ax2a){var _0xbe7ax2b={};_0xbe7ax2b[_0xbe7ax2a]= {$like:_0x5ce2[71]+ _0xbe7ax28[_0x5ce2[58]][_0x5ce2[70]]+ _0x5ce2[71]};return _0xbe7ax2b})})};_0xbe7ax1b= _[_0x5ce2[73]]({},_0xbe7ax1b,_0xbe7ax28[_0x5ce2[74]]);return _0xbe7ax2d[_0x5ce2[88]](_0xbe7ax1b)}})[_0x5ce2[45]](function(_0xbe7ax2f){if(_0xbe7ax2f){_0xbe7ax1c= _0xbe7ax2f[_0x5ce2[63]];if(!_0xbe7ax28[_0x5ce2[58]][_0x5ce2[65]](_0x5ce2[64])){_0xbe7ax1b[_0x5ce2[35]]= qs[_0x5ce2[35]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[35]]);_0xbe7ax1b[_0x5ce2[34]]= qs[_0x5ce2[34]](_0xbe7ax28[_0x5ce2[58]][_0x5ce2[34]])};return _0xbe7ax2d[_0x5ce2[88]](_0xbe7ax1b)}})[_0x5ce2[45]](function(_0xbe7ax2e){return _0xbe7ax2e?{count:_0xbe7ax1c,rows:_0xbe7ax2e}:null})[_0x5ce2[45]](respondWithResult(_0xbe7ax18,null,_0x5ce2[88]))[_0x5ce2[75]](handleError(_0xbe7ax18,null,_0x5ce2[88]))}
\ No newline at end of file
+var _0xb70c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xb70c[0];var jsonpatch=require(_0xb70c[1]);var rp=require(_0xb70c[2]);var moment=require(_0xb70c[3]);var BPromise=require(_0xb70c[4]);var util=require(_0xb70c[5]);var path=require(_0xb70c[6]);var sox=require(_0xb70c[7]);var ejs=require(_0xb70c[8]);var fs=require(_0xb70c[9]);var _=require(_0xb70c[10]);var squel=require(_0xb70c[11]);var crypto=require(_0xb70c[12]);var jsforce=require(_0xb70c[13]);var toCsv=require(_0xb70c[14]);var qs=require(_0xb70c[15]);var logger=require(_0xb70c[17])(_0xb70c[16]);var utils=require(_0xb70c[18]);var config=require(_0xb70c[19]);var db=require(_0xb70c[21])[_0xb70c[20]];function respondWithStatusCode(_0x7ac7x15,_0x7ac7x16,_0x7ac7x17){_0x7ac7x16= _0x7ac7x16|| 204;return function(_0x7ac7x18){if(_0x7ac7x18){logger[_0xb70c[24]](_0xb70c[22],_0x7ac7x17,_0x7ac7x16,_0xb70c[23]);logger[_0xb70c[26]](_0xb70c[25],_0x7ac7x17,_0x7ac7x16,_0xb70c[23]);return _0x7ac7x15[_0xb70c[27]](_0x7ac7x16)};return _0x7ac7x15[_0xb70c[29]](304)[_0xb70c[28]]()}}function respondWithResult(_0x7ac7x15,_0x7ac7x16,_0x7ac7x17){_0x7ac7x16= _0x7ac7x16|| 200;return function(_0x7ac7x18){if(_0x7ac7x18){logger[_0xb70c[24]](_0xb70c[22],_0x7ac7x17,_0x7ac7x16,_0xb70c[30]);logger[_0xb70c[26]](_0xb70c[25],_0x7ac7x17,_0x7ac7x16,_0xb70c[30],JSON[_0xb70c[31]](_0x7ac7x18));return _0x7ac7x15[_0xb70c[29]](_0x7ac7x16)[_0xb70c[32]](_0x7ac7x18)};return _0x7ac7x15[_0xb70c[29]](304)[_0xb70c[28]]()}}function respondWithFilteredResult(_0x7ac7x15,_0x7ac7x1b,_0x7ac7x17){return function(_0x7ac7x18){if(_0x7ac7x18){var _0x7ac7x1c=_0x7ac7x18[_0xb70c[33]],_0x7ac7x1d=_0x7ac7x1b[_0xb70c[34]],_0x7ac7x1e=_0x7ac7x1b[_0xb70c[34]]+ _0x7ac7x1b[_0xb70c[35]],_0x7ac7x16;if(_0x7ac7x1e>= _0x7ac7x1c){_0x7ac7x1e= _0x7ac7x1c;_0x7ac7x16= 200}else {_0x7ac7x16= 206};_0x7ac7x15[_0xb70c[29]](_0x7ac7x16);logger[_0xb70c[24]](_0xb70c[22],_0x7ac7x17,_0x7ac7x16,_0xb70c[36]);logger[_0xb70c[26]](_0xb70c[25],_0x7ac7x17,_0x7ac7x16,_0xb70c[30],JSON[_0xb70c[31]](_0x7ac7x18));return _0x7ac7x15[_0xb70c[40]](_0xb70c[37],_0x7ac7x1d+ _0xb70c[38]+ _0x7ac7x1e+ _0xb70c[39]+ _0x7ac7x1c)[_0xb70c[32]](_0x7ac7x18)};return null}}function patchUpdates(_0x7ac7x20){return function(_0x7ac7x18){try{jsonpatch[_0xb70c[41]](_0x7ac7x18,_0x7ac7x20,true)}catch(err){return BPromise[_0xb70c[42]](err)};return _0x7ac7x18[_0xb70c[43]]()}}function saveUpdates(_0x7ac7x22,_0x7ac7x16,_0x7ac7x17){return function(_0x7ac7x18){if(_0x7ac7x18){return _0x7ac7x18[_0xb70c[46]](_0x7ac7x22)[_0xb70c[45]](function(_0x7ac7x23){logger[_0xb70c[24]](_0xb70c[22],_0x7ac7x17,_0x7ac7x16,_0xb70c[44]);logger[_0xb70c[26]](_0xb70c[25],_0x7ac7x17,_0x7ac7x16,_0xb70c[44],JSON[_0xb70c[31]](_0x7ac7x18));return _0x7ac7x23})};return null}}function removeEntity(_0x7ac7x15,_0x7ac7x16,_0x7ac7x17){return function(_0x7ac7x18){if(_0x7ac7x18){return _0x7ac7x18[_0xb70c[48]]()[_0xb70c[45]](function(){logger[_0xb70c[24]](_0xb70c[22],_0x7ac7x17,_0x7ac7x16,_0xb70c[47]);logger[_0xb70c[26]](_0xb70c[25],_0x7ac7x17,_0x7ac7x16,_0xb70c[47],JSON[_0xb70c[31]](_0x7ac7x18));_0x7ac7x15[_0xb70c[29]](204)[_0xb70c[28]]()})}}}function handleEntityNotFound(_0x7ac7x15,_0x7ac7x16,_0x7ac7x17){return function(_0x7ac7x18){if(!_0x7ac7x18){logger[_0xb70c[50]](_0xb70c[22],_0x7ac7x17,404,_0xb70c[49]);_0x7ac7x15[_0xb70c[29]](404)[_0xb70c[28]]();return null};return _0x7ac7x18}}function handleError(_0x7ac7x15,_0x7ac7x16,_0x7ac7x17){_0x7ac7x16= _0x7ac7x16|| 500;return function(_0x7ac7x27){logger[_0xb70c[50]](_0xb70c[22],_0x7ac7x17,_0x7ac7x16,JSON[_0xb70c[31]](_0x7ac7x27));delete _0x7ac7x27[_0xb70c[51]];_0x7ac7x15[_0xb70c[29]](_0x7ac7x16)[_0xb70c[52]](_0x7ac7x27)}}exports[_0xb70c[53]]= function(_0x7ac7x28,_0x7ac7x15){var _0x7ac7x1b={},_0x7ac7x29={};_0x7ac7x29[_0xb70c[54]]= _[_0xb70c[57]](db[_0xb70c[56]][_0xb70c[55]]);_0x7ac7x29[_0xb70c[58]]= _[_0xb70c[57]](_0x7ac7x28[_0xb70c[58]]);_0x7ac7x29[_0xb70c[59]]= _[_0xb70c[60]](_0x7ac7x29[_0xb70c[54]],_0x7ac7x29[_0xb70c[58]]);_0x7ac7x1b[_0xb70c[61]]= _[_0xb70c[60]](_0x7ac7x29[_0xb70c[54]],qs[_0xb70c[62]](_0x7ac7x28[_0xb70c[58]][_0xb70c[62]]));_0x7ac7x1b[_0xb70c[61]]= (_0x7ac7x1b[_0xb70c[61]][_0xb70c[63]])?_0x7ac7x1b[_0xb70c[61]]:_0x7ac7x29[_0xb70c[54]];if(!_0x7ac7x28[_0xb70c[58]][_0xb70c[65]](_0xb70c[64])){_0x7ac7x1b[_0xb70c[35]]= qs[_0xb70c[35]](_0x7ac7x28[_0xb70c[58]][_0xb70c[35]]);_0x7ac7x1b[_0xb70c[34]]= qs[_0xb70c[34]](_0x7ac7x28[_0xb70c[58]][_0xb70c[34]])};_0x7ac7x1b[_0xb70c[66]]= qs[_0xb70c[67]](_0x7ac7x28[_0xb70c[58]][_0xb70c[67]]);_0x7ac7x1b[_0xb70c[68]]= qs[_0xb70c[59]](_[_0xb70c[69]](_0x7ac7x28[_0xb70c[58]],_0x7ac7x29[_0xb70c[59]]));if(_0x7ac7x28[_0xb70c[58]][_0xb70c[70]]){_0x7ac7x1b[_0xb70c[68]]= _[_0xb70c[73]](_0x7ac7x1b[_0xb70c[68]],{$or:_[_0xb70c[72]](_0x7ac7x1b[_0xb70c[61]],function(_0x7ac7x2a){var _0x7ac7x2b={};_0x7ac7x2b[_0x7ac7x2a]= {$like:_0xb70c[71]+ _0x7ac7x28[_0xb70c[58]][_0xb70c[70]]+ _0xb70c[71]};return _0x7ac7x2b})})};_0x7ac7x1b= _[_0xb70c[73]]({},_0x7ac7x1b,_0x7ac7x28[_0xb70c[74]]);return db[_0xb70c[56]][_0xb70c[76]](_0x7ac7x1b)[_0xb70c[45]](respondWithFilteredResult(_0x7ac7x15,_0x7ac7x1b,_0xb70c[53]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[53]))};exports[_0xb70c[77]]= function(_0x7ac7x28,_0x7ac7x15){var _0x7ac7x1b={raw:false,where:{id:_0x7ac7x28[_0xb70c[79]][_0xb70c[78]]}},_0x7ac7x29={};_0x7ac7x29[_0xb70c[54]]= _[_0xb70c[57]](db[_0xb70c[56]][_0xb70c[55]]);_0x7ac7x29[_0xb70c[58]]= _[_0xb70c[57]](_0x7ac7x28[_0xb70c[58]]);_0x7ac7x29[_0xb70c[59]]= _[_0xb70c[60]](_0x7ac7x29[_0xb70c[54]],_0x7ac7x29[_0xb70c[58]]);_0x7ac7x1b[_0xb70c[61]]= _[_0xb70c[60]](_0x7ac7x29[_0xb70c[54]],qs[_0xb70c[62]](_0x7ac7x28[_0xb70c[58]][_0xb70c[62]]));_0x7ac7x1b[_0xb70c[61]]= (_0x7ac7x1b[_0xb70c[61]][_0xb70c[63]])?_0x7ac7x1b[_0xb70c[61]]:_0x7ac7x29[_0xb70c[54]];_0x7ac7x1b= _[_0xb70c[73]]({},_0x7ac7x1b,_0x7ac7x28[_0xb70c[74]]);return db[_0xb70c[56]][_0xb70c[80]](_0x7ac7x1b)[_0xb70c[45]](handleEntityNotFound(_0x7ac7x15,null,_0xb70c[77]))[_0xb70c[45]](respondWithResult(_0x7ac7x15,null,_0xb70c[77]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[77]))};exports[_0xb70c[81]]= function(_0x7ac7x28,_0x7ac7x15){return db[_0xb70c[56]][_0xb70c[81]](_0x7ac7x28[_0xb70c[82]],{})[_0xb70c[45]](respondWithResult(_0x7ac7x15,201,_0xb70c[81]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[81]))};exports[_0xb70c[46]]= function(_0x7ac7x28,_0x7ac7x15){if(_0x7ac7x28[_0xb70c[82]][_0xb70c[78]]){delete _0x7ac7x28[_0xb70c[82]][_0xb70c[78]]};return db[_0xb70c[56]][_0xb70c[80]]({where:{id:_0x7ac7x28[_0xb70c[79]][_0xb70c[78]]}})[_0xb70c[45]](handleEntityNotFound(_0x7ac7x15,null,_0xb70c[46]))[_0xb70c[45]](saveUpdates(_0x7ac7x28[_0xb70c[82]],null,_0xb70c[46]))[_0xb70c[45]](respondWithResult(_0x7ac7x15,null,_0xb70c[46]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[46]))};exports[_0xb70c[48]]= function(_0x7ac7x28,_0x7ac7x15){return db[_0xb70c[56]][_0xb70c[80]]({where:{id:_0x7ac7x28[_0xb70c[79]][_0xb70c[78]]}})[_0xb70c[45]](handleEntityNotFound(_0x7ac7x15,null,_0xb70c[48]))[_0xb70c[45]](removeEntity(_0x7ac7x15,null,_0xb70c[48]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[48]))};exports[_0xb70c[83]]= function(_0x7ac7x28,_0x7ac7x15){return db[_0xb70c[56]][_0xb70c[83]]()[_0xb70c[45]](respondWithResult(_0x7ac7x15,null,_0xb70c[83]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[83]))};exports[_0xb70c[84]]= function(_0x7ac7x28,_0x7ac7x15,_0x7ac7x2c){return db[_0xb70c[87]][_0xb70c[80]]({where:{id:_0x7ac7x28[_0xb70c[79]][_0xb70c[78]]}})[_0xb70c[45]](handleEntityNotFound(_0x7ac7x15,null,_0xb70c[84]))[_0xb70c[45]](function(_0x7ac7x18){if(_0x7ac7x18){return _0x7ac7x18[_0xb70c[84]](_0x7ac7x28[_0xb70c[82]][_0xb70c[85]],_[_0xb70c[86]](_0x7ac7x28[_0xb70c[82]],[_0xb70c[85],_0xb70c[78]])|| {})};return null})[_0xb70c[45]](respondWithResult(_0x7ac7x15,null,_0xb70c[84]))[_0xb70c[75]](handleError(_0x7ac7x15,null,_0xb70c[84]))};exports[_0xb70c[88]]= function(_0x7ac7x28,_0x7ac7x18,_0x7ac7x2c){var _0x7ac7x1b={};var _0x7ac7x29={};var _0x7ac7x2d;var _0x7ac7x1c;return db[_0xb70c[56]][_0xb70c[89]]({where:{id:_0x7ac7x28[_0xb70c[79]][_0xb70c[78]]}})[_0xb70c[45]](handleEntityNotFound(_0x7ac7x18,null,_0xb70c[88]))[_0xb70c[45]](function(_0x7ac7x18){if(_0x7ac7x18){_0x7ac7x2d= _0x7ac7x18;_0x7ac7x29[_0xb70c[54]]= _[_0xb70c[57]](db[_0xb70c[87]][_0xb70c[55]]);_0x7ac7x29[_0xb70c[58]]= _[_0xb70c[57]](_0x7ac7x28[_0xb70c[58]]);_0x7ac7x29[_0xb70c[59]]= _[_0xb70c[60]](_0x7ac7x29[_0xb70c[54]],_0x7ac7x29[_0xb70c[58]]);_0x7ac7x1b[_0xb70c[61]]= _[_0xb70c[60]](_0x7ac7x29[_0xb70c[54]],qs[_0xb70c[62]](_0x7ac7x28[_0xb70c[58]][_0xb70c[62]]));_0x7ac7x1b[_0xb70c[61]]= (_0x7ac7x1b[_0xb70c[61]][_0xb70c[63]])?_0x7ac7x1b[_0xb70c[61]]:_0x7ac7x29[_0xb70c[54]];_0x7ac7x1b[_0xb70c[66]]= qs[_0xb70c[67]](_0x7ac7x28[_0xb70c[58]][_0xb70c[67]]);_0x7ac7x1b[_0xb70c[68]]= qs[_0xb70c[59]](_[_0xb70c[69]](_0x7ac7x28[_0xb70c[58]],_0x7ac7x29[_0xb70c[59]]));if(_0x7ac7x28[_0xb70c[58]][_0xb70c[70]]){_0x7ac7x1b[_0xb70c[68]]= _[_0xb70c[73]](_0x7ac7x1b[_0xb70c[68]],{$or:_[_0xb70c[72]](_0x7ac7x1b[_0xb70c[61]],function(_0x7ac7x2a){var _0x7ac7x2b={};_0x7ac7x2b[_0x7ac7x2a]= {$like:_0xb70c[71]+ _0x7ac7x28[_0xb70c[58]][_0xb70c[70]]+ _0xb70c[71]};return _0x7ac7x2b})})};_0x7ac7x1b= _[_0xb70c[73]]({},_0x7ac7x1b,_0x7ac7x28[_0xb70c[74]]);return _0x7ac7x2d[_0xb70c[88]](_0x7ac7x1b)}})[_0xb70c[45]](function(_0x7ac7x2f){if(_0x7ac7x2f){_0x7ac7x1c= _0x7ac7x2f[_0xb70c[63]];if(!_0x7ac7x28[_0xb70c[58]][_0xb70c[65]](_0xb70c[64])){_0x7ac7x1b[_0xb70c[35]]= qs[_0xb70c[35]](_0x7ac7x28[_0xb70c[58]][_0xb70c[35]]);_0x7ac7x1b[_0xb70c[34]]= qs[_0xb70c[34]](_0x7ac7x28[_0xb70c[58]][_0xb70c[34]])};return _0x7ac7x2d[_0xb70c[88]](_0x7ac7x1b)}})[_0xb70c[45]](function(_0x7ac7x2e){return _0x7ac7x2e?{count:_0x7ac7x1c,rows:_0x7ac7x2e}:null})[_0xb70c[45]](respondWithResult(_0x7ac7x18,null,_0xb70c[88]))[_0xb70c[75]](handleError(_0x7ac7x18,null,_0xb70c[88]))}
\ No newline at end of file
index a2d7eae..282cc17 100644 (file)
@@ -1 +1 @@
-var _0x52d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x52d6[0];var _=require(_0x52d6[1]);var util=require(_0x52d6[2]);var logger=require(_0x52d6[4])(_0x52d6[3]);var attributes=require(_0x52d6[5]);module[_0x52d6[6]]= function(_0x6ea2x5,_0x6ea2x6){return _0x6ea2x5[_0x52d6[9]](_0x52d6[7],attributes,{tableName:_0x52d6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4803=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x4803[0];var _=require(_0x4803[1]);var util=require(_0x4803[2]);var logger=require(_0x4803[4])(_0x4803[3]);var attributes=require(_0x4803[5]);module[_0x4803[6]]= function(_0xb880x5,_0xb880x6){return _0xb880x5[_0x4803[9]](_0x4803[7],attributes,{tableName:_0x4803[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 1ba5203..a5f3a2c 100644 (file)
@@ -1 +1 @@
-var _0x233e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x233e[0];var _=require(_0x233e[1]);var util=require(_0x233e[2]);var moment=require(_0x233e[3]);var BPromise=require(_0x233e[4]);var db=require(_0x233e[6])[_0x233e[5]];var utils=require(_0x233e[7]);var logger=require(_0x233e[9])(_0x233e[8]);var jayson=require(_0x233e[10]);var client=jayson[_0x233e[12]][_0x233e[11]]({port:9002});function respondWithRpcPromise(_0xa851xb,_0xa851xc,_0xa851xd){return  new BPromise(function(_0xa851xe,_0xa851xf){return client[_0x233e[25]](_0xa851xb,_0xa851xd)[_0x233e[24]](function(_0xa851x11){logger[_0x233e[17]](_0x233e[13],_0xa851xc,_0x233e[16]);logger[_0x233e[20]](_0x233e[18],_0xa851xc,_0x233e[16],JSON[_0x233e[19]](_0xa851x11));if(_0xa851x11[_0x233e[14]]){if(_0xa851x11[_0x233e[14]][_0x233e[21]]=== 500){logger[_0x233e[14]](_0x233e[13],_0xa851xc,_0xa851x11[_0x233e[14]][_0x233e[22]]);return _0xa851xf(_0xa851x11[_0x233e[14]][_0x233e[22]])};logger[_0x233e[14]](_0x233e[13],_0xa851xc,_0xa851x11[_0x233e[14]][_0x233e[22]]);return _0xa851xe(_0xa851x11[_0x233e[14]][_0x233e[22]])}else {logger[_0x233e[17]](_0x233e[13],_0xa851xc,_0x233e[16]);_0xa851xe(_0xa851x11[_0x233e[23]][_0x233e[22]])}})[_0x233e[15]](function(_0xa851x10){logger[_0x233e[14]](_0x233e[13],_0xa851xc,_0xa851x10);_0xa851xf(_0xa851x10)})})}
\ No newline at end of file
+var _0x8d51=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8d51[0];var _=require(_0x8d51[1]);var util=require(_0x8d51[2]);var moment=require(_0x8d51[3]);var BPromise=require(_0x8d51[4]);var db=require(_0x8d51[6])[_0x8d51[5]];var utils=require(_0x8d51[7]);var logger=require(_0x8d51[9])(_0x8d51[8]);var jayson=require(_0x8d51[10]);var client=jayson[_0x8d51[12]][_0x8d51[11]]({port:9002});function respondWithRpcPromise(_0xfa1dxb,_0xfa1dxc,_0xfa1dxd){return  new BPromise(function(_0xfa1dxe,_0xfa1dxf){return client[_0x8d51[25]](_0xfa1dxb,_0xfa1dxd)[_0x8d51[24]](function(_0xfa1dx11){logger[_0x8d51[17]](_0x8d51[13],_0xfa1dxc,_0x8d51[16]);logger[_0x8d51[20]](_0x8d51[18],_0xfa1dxc,_0x8d51[16],JSON[_0x8d51[19]](_0xfa1dx11));if(_0xfa1dx11[_0x8d51[14]]){if(_0xfa1dx11[_0x8d51[14]][_0x8d51[21]]=== 500){logger[_0x8d51[14]](_0x8d51[13],_0xfa1dxc,_0xfa1dx11[_0x8d51[14]][_0x8d51[22]]);return _0xfa1dxf(_0xfa1dx11[_0x8d51[14]][_0x8d51[22]])};logger[_0x8d51[14]](_0x8d51[13],_0xfa1dxc,_0xfa1dx11[_0x8d51[14]][_0x8d51[22]]);return _0xfa1dxe(_0xfa1dx11[_0x8d51[14]][_0x8d51[22]])}else {logger[_0x8d51[17]](_0x8d51[13],_0xfa1dxc,_0x8d51[16]);_0xfa1dxe(_0xfa1dx11[_0x8d51[23]][_0x8d51[22]])}})[_0x8d51[15]](function(_0xfa1dx10){logger[_0x8d51[14]](_0x8d51[13],_0xfa1dxc,_0xfa1dx10);_0xfa1dxf(_0xfa1dx10)})})}
\ No newline at end of file
index 09d341a..483c52f 100644 (file)
@@ -1 +1 @@
-var _0xd221=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd221[0];var multer=require(_0xd221[1]);var util=require(_0xd221[2]);var path=require(_0xd221[3]);var express=require(_0xd221[4]);var router=express.Router();var auth=require(_0xd221[5]);var config=require(_0xd221[6]);var controller=require(_0xd221[7]);router[_0xd221[11]](_0xd221[8],auth[_0xd221[9]](),controller[_0xd221[10]]);router[_0xd221[11]](_0xd221[12],auth[_0xd221[9]](),controller[_0xd221[13]]);router[_0xd221[11]](_0xd221[14],auth[_0xd221[9]](),controller[_0xd221[15]]);router[_0xd221[17]](_0xd221[8],auth[_0xd221[9]](),controller[_0xd221[16]]);router[_0xd221[19]](_0xd221[14],auth[_0xd221[9]](),controller[_0xd221[18]]);router[_0xd221[21]](_0xd221[14],auth[_0xd221[9]](),controller[_0xd221[20]]);module[_0xd221[22]]= router
\ No newline at end of file
+var _0x79c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x79c1[0];var multer=require(_0x79c1[1]);var util=require(_0x79c1[2]);var path=require(_0x79c1[3]);var express=require(_0x79c1[4]);var router=express.Router();var auth=require(_0x79c1[5]);var config=require(_0x79c1[6]);var controller=require(_0x79c1[7]);router[_0x79c1[11]](_0x79c1[8],auth[_0x79c1[9]](),controller[_0x79c1[10]]);router[_0x79c1[11]](_0x79c1[12],auth[_0x79c1[9]](),controller[_0x79c1[13]]);router[_0x79c1[11]](_0x79c1[14],auth[_0x79c1[9]](),controller[_0x79c1[15]]);router[_0x79c1[17]](_0x79c1[8],auth[_0x79c1[9]](),controller[_0x79c1[16]]);router[_0x79c1[19]](_0x79c1[14],auth[_0x79c1[9]](),controller[_0x79c1[18]]);router[_0x79c1[21]](_0x79c1[14],auth[_0x79c1[9]](),controller[_0x79c1[20]]);module[_0x79c1[22]]= router
\ No newline at end of file
index f0ce046..789fef3 100644 (file)
@@ -1 +1 @@
-var _0x8a77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x53\x45\x4E\x44\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x8a77[0];var Sequelize=require(_0x8a77[1]);module[_0x8a77[2]]= {from:{type:Sequelize[_0x8a77[3]],allowNull:false,validate:{notEmpty:true,is:/^[\+]?[0-9]+$/}},to:{type:Sequelize[_0x8a77[3]],allowNull:false,validate:{notEmpty:true,is:/^[\+]?[0-9]+$/}},body:{type:Sequelize[_0x8a77[3]]},status:{type:Sequelize[_0x8a77[3]],defaultValue:_0x8a77[4]},errorcode:{type:Sequelize[_0x8a77[3]]},skebby_message_id:{type:Sequelize[_0x8a77[5]]},res_data:{type:Sequelize[_0x8a77[3]]},source:{type:Sequelize[_0x8a77[3]]},auto:{type:Sequelize[_0x8a77[6]],defaultValue:false}}
\ No newline at end of file
+var _0x6549=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x53\x45\x4E\x44\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6549[0];var Sequelize=require(_0x6549[1]);module[_0x6549[2]]= {from:{type:Sequelize[_0x6549[3]],allowNull:false,validate:{notEmpty:true,is:/^[\+]?[0-9]+$/}},to:{type:Sequelize[_0x6549[3]],allowNull:false,validate:{notEmpty:true,is:/^[\+]?[0-9]+$/}},body:{type:Sequelize[_0x6549[3]]},status:{type:Sequelize[_0x6549[3]],defaultValue:_0x6549[4]},errorcode:{type:Sequelize[_0x6549[3]]},skebby_message_id:{type:Sequelize[_0x6549[5]]},res_data:{type:Sequelize[_0x6549[3]]},source:{type:Sequelize[_0x6549[3]]},auto:{type:Sequelize[_0x6549[6]],defaultValue:false}}
\ No newline at end of file
index e2ee2f5..e734a03 100644 (file)
@@ -1 +1 @@
-var _0x628b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x628b[0];var jsonpatch=require(_0x628b[1]);var rp=require(_0x628b[2]);var moment=require(_0x628b[3]);var BPromise=require(_0x628b[4]);var util=require(_0x628b[5]);var path=require(_0x628b[6]);var sox=require(_0x628b[7]);var ejs=require(_0x628b[8]);var fs=require(_0x628b[9]);var _=require(_0x628b[10]);var squel=require(_0x628b[11]);var crypto=require(_0x628b[12]);var jsforce=require(_0x628b[13]);var toCsv=require(_0x628b[14]);var qs=require(_0x628b[15]);var logger=require(_0x628b[17])(_0x628b[16]);var utils=require(_0x628b[18]);var config=require(_0x628b[19]);var db=require(_0x628b[21])[_0x628b[20]];function respondWithStatusCode(_0x5729x15,_0x5729x16,_0x5729x17){_0x5729x16= _0x5729x16|| 204;return function(_0x5729x18){if(_0x5729x18){logger[_0x628b[24]](_0x628b[22],_0x5729x17,_0x5729x16,_0x628b[23]);logger[_0x628b[26]](_0x628b[25],_0x5729x17,_0x5729x16,_0x628b[23]);return _0x5729x15[_0x628b[27]](_0x5729x16)};return _0x5729x15[_0x628b[29]](304)[_0x628b[28]]()}}function respondWithResult(_0x5729x15,_0x5729x16,_0x5729x17){_0x5729x16= _0x5729x16|| 200;return function(_0x5729x18){if(_0x5729x18){logger[_0x628b[24]](_0x628b[22],_0x5729x17,_0x5729x16,_0x628b[30]);logger[_0x628b[26]](_0x628b[25],_0x5729x17,_0x5729x16,_0x628b[30],JSON[_0x628b[31]](_0x5729x18));return _0x5729x15[_0x628b[29]](_0x5729x16)[_0x628b[32]](_0x5729x18)};return _0x5729x15[_0x628b[29]](304)[_0x628b[28]]()}}function respondWithFilteredResult(_0x5729x15,_0x5729x1b,_0x5729x17){return function(_0x5729x18){if(_0x5729x18){var _0x5729x1c=_0x5729x18[_0x628b[33]],_0x5729x1d=_0x5729x1b[_0x628b[34]],_0x5729x1e=_0x5729x1b[_0x628b[34]]+ _0x5729x1b[_0x628b[35]],_0x5729x16;if(_0x5729x1e>= _0x5729x1c){_0x5729x1e= _0x5729x1c;_0x5729x16= 200}else {_0x5729x16= 206};_0x5729x15[_0x628b[29]](_0x5729x16);logger[_0x628b[24]](_0x628b[22],_0x5729x17,_0x5729x16,_0x628b[36]);logger[_0x628b[26]](_0x628b[25],_0x5729x17,_0x5729x16,_0x628b[30],JSON[_0x628b[31]](_0x5729x18));return _0x5729x15[_0x628b[40]](_0x628b[37],_0x5729x1d+ _0x628b[38]+ _0x5729x1e+ _0x628b[39]+ _0x5729x1c)[_0x628b[32]](_0x5729x18)};return null}}function patchUpdates(_0x5729x20){return function(_0x5729x18){try{jsonpatch[_0x628b[41]](_0x5729x18,_0x5729x20,true)}catch(err){return BPromise[_0x628b[42]](err)};return _0x5729x18[_0x628b[43]]()}}function saveUpdates(_0x5729x22,_0x5729x16,_0x5729x17){return function(_0x5729x18){if(_0x5729x18){return _0x5729x18[_0x628b[46]](_0x5729x22)[_0x628b[45]](function(_0x5729x23){logger[_0x628b[24]](_0x628b[22],_0x5729x17,_0x5729x16,_0x628b[44]);logger[_0x628b[26]](_0x628b[25],_0x5729x17,_0x5729x16,_0x628b[44],JSON[_0x628b[31]](_0x5729x18));return _0x5729x23})};return null}}function removeEntity(_0x5729x15,_0x5729x16,_0x5729x17){return function(_0x5729x18){if(_0x5729x18){return _0x5729x18[_0x628b[48]]()[_0x628b[45]](function(){logger[_0x628b[24]](_0x628b[22],_0x5729x17,_0x5729x16,_0x628b[47]);logger[_0x628b[26]](_0x628b[25],_0x5729x17,_0x5729x16,_0x628b[47],JSON[_0x628b[31]](_0x5729x18));_0x5729x15[_0x628b[29]](204)[_0x628b[28]]()})}}}function handleEntityNotFound(_0x5729x15,_0x5729x16,_0x5729x17){return function(_0x5729x18){if(!_0x5729x18){logger[_0x628b[50]](_0x628b[22],_0x5729x17,404,_0x628b[49]);_0x5729x15[_0x628b[29]](404)[_0x628b[28]]();return null};return _0x5729x18}}function handleError(_0x5729x15,_0x5729x16,_0x5729x17){_0x5729x16= _0x5729x16|| 500;return function(_0x5729x27){logger[_0x628b[50]](_0x628b[22],_0x5729x17,_0x5729x16,JSON[_0x628b[31]](_0x5729x27));delete _0x5729x27[_0x628b[51]];_0x5729x15[_0x628b[29]](_0x5729x16)[_0x628b[52]](_0x5729x27)}}exports[_0x628b[53]]= function(_0x5729x28,_0x5729x15){var _0x5729x1b={},_0x5729x29={};_0x5729x29[_0x628b[54]]= _[_0x628b[57]](db[_0x628b[56]][_0x628b[55]]);_0x5729x29[_0x628b[58]]= _[_0x628b[57]](_0x5729x28[_0x628b[58]]);_0x5729x29[_0x628b[59]]= _[_0x628b[60]](_0x5729x29[_0x628b[54]],_0x5729x29[_0x628b[58]]);_0x5729x1b[_0x628b[61]]= _[_0x628b[60]](_0x5729x29[_0x628b[54]],qs[_0x628b[62]](_0x5729x28[_0x628b[58]][_0x628b[62]]));_0x5729x1b[_0x628b[61]]= (_0x5729x1b[_0x628b[61]][_0x628b[63]])?_0x5729x1b[_0x628b[61]]:_0x5729x29[_0x628b[54]];if(!_0x5729x28[_0x628b[58]][_0x628b[65]](_0x628b[64])){_0x5729x1b[_0x628b[35]]= qs[_0x628b[35]](_0x5729x28[_0x628b[58]][_0x628b[35]]);_0x5729x1b[_0x628b[34]]= qs[_0x628b[34]](_0x5729x28[_0x628b[58]][_0x628b[34]])};_0x5729x1b[_0x628b[66]]= qs[_0x628b[67]](_0x5729x28[_0x628b[58]][_0x628b[67]]);_0x5729x1b[_0x628b[68]]= qs[_0x628b[59]](_[_0x628b[69]](_0x5729x28[_0x628b[58]],_0x5729x29[_0x628b[59]]));if(_0x5729x28[_0x628b[58]][_0x628b[70]]){_0x5729x1b[_0x628b[68]]= _[_0x628b[73]](_0x5729x1b[_0x628b[68]],{$or:_[_0x628b[72]](_0x5729x1b[_0x628b[61]],function(_0x5729x2a){var _0x5729x2b={};_0x5729x2b[_0x5729x2a]= {$like:_0x628b[71]+ _0x5729x28[_0x628b[58]][_0x628b[70]]+ _0x628b[71]};return _0x5729x2b})})};_0x5729x1b= _[_0x628b[73]]({},_0x5729x1b,_0x5729x28[_0x628b[74]]);return db[_0x628b[56]][_0x628b[76]](_0x5729x1b)[_0x628b[45]](respondWithFilteredResult(_0x5729x15,_0x5729x1b,_0x628b[53]))[_0x628b[75]](handleError(_0x5729x15,null,_0x628b[53]))};exports[_0x628b[77]]= function(_0x5729x28,_0x5729x15){var _0x5729x1b={raw:false,where:{id:_0x5729x28[_0x628b[79]][_0x628b[78]]}},_0x5729x29={};_0x5729x29[_0x628b[54]]= _[_0x628b[57]](db[_0x628b[56]][_0x628b[55]]);_0x5729x29[_0x628b[58]]= _[_0x628b[57]](_0x5729x28[_0x628b[58]]);_0x5729x29[_0x628b[59]]= _[_0x628b[60]](_0x5729x29[_0x628b[54]],_0x5729x29[_0x628b[58]]);_0x5729x1b[_0x628b[61]]= _[_0x628b[60]](_0x5729x29[_0x628b[54]],qs[_0x628b[62]](_0x5729x28[_0x628b[58]][_0x628b[62]]));_0x5729x1b[_0x628b[61]]= (_0x5729x1b[_0x628b[61]][_0x628b[63]])?_0x5729x1b[_0x628b[61]]:_0x5729x29[_0x628b[54]];_0x5729x1b= _[_0x628b[73]]({},_0x5729x1b,_0x5729x28[_0x628b[74]]);return db[_0x628b[56]][_0x628b[80]](_0x5729x1b)[_0x628b[45]](handleEntityNotFound(_0x5729x15,null,_0x628b[77]))[_0x628b[45]](respondWithResult(_0x5729x15,null,_0x628b[77]))[_0x628b[75]](handleError(_0x5729x15,null,_0x628b[77]))};exports[_0x628b[81]]= function(_0x5729x28,_0x5729x15){return db[_0x628b[56]][_0x628b[81]](_0x5729x28[_0x628b[82]],{})[_0x628b[45]](respondWithResult(_0x5729x15,201,_0x628b[81]))[_0x628b[75]](handleError(_0x5729x15,null,_0x628b[81]))};exports[_0x628b[46]]= function(_0x5729x28,_0x5729x15){if(_0x5729x28[_0x628b[82]][_0x628b[78]]){delete _0x5729x28[_0x628b[82]][_0x628b[78]]};return db[_0x628b[56]][_0x628b[80]]({where:{id:_0x5729x28[_0x628b[79]][_0x628b[78]]}})[_0x628b[45]](handleEntityNotFound(_0x5729x15,null,_0x628b[46]))[_0x628b[45]](saveUpdates(_0x5729x28[_0x628b[82]],null,_0x628b[46]))[_0x628b[45]](respondWithResult(_0x5729x15,null,_0x628b[46]))[_0x628b[75]](handleError(_0x5729x15,null,_0x628b[46]))};exports[_0x628b[48]]= function(_0x5729x28,_0x5729x15){return db[_0x628b[56]][_0x628b[80]]({where:{id:_0x5729x28[_0x628b[79]][_0x628b[78]]}})[_0x628b[45]](handleEntityNotFound(_0x5729x15,null,_0x628b[48]))[_0x628b[45]](removeEntity(_0x5729x15,null,_0x628b[48]))[_0x628b[75]](handleError(_0x5729x15,null,_0x628b[48]))};exports[_0x628b[83]]= function(_0x5729x28,_0x5729x15){return db[_0x628b[56]][_0x628b[83]]()[_0x628b[45]](respondWithResult(_0x5729x15,null,_0x628b[83]))[_0x628b[75]](handleError(_0x5729x15,null,_0x628b[83]))}
\ No newline at end of file
+var _0x5948=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x5948[0];var jsonpatch=require(_0x5948[1]);var rp=require(_0x5948[2]);var moment=require(_0x5948[3]);var BPromise=require(_0x5948[4]);var util=require(_0x5948[5]);var path=require(_0x5948[6]);var sox=require(_0x5948[7]);var ejs=require(_0x5948[8]);var fs=require(_0x5948[9]);var _=require(_0x5948[10]);var squel=require(_0x5948[11]);var crypto=require(_0x5948[12]);var jsforce=require(_0x5948[13]);var toCsv=require(_0x5948[14]);var qs=require(_0x5948[15]);var logger=require(_0x5948[17])(_0x5948[16]);var utils=require(_0x5948[18]);var config=require(_0x5948[19]);var db=require(_0x5948[21])[_0x5948[20]];function respondWithStatusCode(_0xab3fx15,_0xab3fx16,_0xab3fx17){_0xab3fx16= _0xab3fx16|| 204;return function(_0xab3fx18){if(_0xab3fx18){logger[_0x5948[24]](_0x5948[22],_0xab3fx17,_0xab3fx16,_0x5948[23]);logger[_0x5948[26]](_0x5948[25],_0xab3fx17,_0xab3fx16,_0x5948[23]);return _0xab3fx15[_0x5948[27]](_0xab3fx16)};return _0xab3fx15[_0x5948[29]](304)[_0x5948[28]]()}}function respondWithResult(_0xab3fx15,_0xab3fx16,_0xab3fx17){_0xab3fx16= _0xab3fx16|| 200;return function(_0xab3fx18){if(_0xab3fx18){logger[_0x5948[24]](_0x5948[22],_0xab3fx17,_0xab3fx16,_0x5948[30]);logger[_0x5948[26]](_0x5948[25],_0xab3fx17,_0xab3fx16,_0x5948[30],JSON[_0x5948[31]](_0xab3fx18));return _0xab3fx15[_0x5948[29]](_0xab3fx16)[_0x5948[32]](_0xab3fx18)};return _0xab3fx15[_0x5948[29]](304)[_0x5948[28]]()}}function respondWithFilteredResult(_0xab3fx15,_0xab3fx1b,_0xab3fx17){return function(_0xab3fx18){if(_0xab3fx18){var _0xab3fx1c=_0xab3fx18[_0x5948[33]],_0xab3fx1d=_0xab3fx1b[_0x5948[34]],_0xab3fx1e=_0xab3fx1b[_0x5948[34]]+ _0xab3fx1b[_0x5948[35]],_0xab3fx16;if(_0xab3fx1e>= _0xab3fx1c){_0xab3fx1e= _0xab3fx1c;_0xab3fx16= 200}else {_0xab3fx16= 206};_0xab3fx15[_0x5948[29]](_0xab3fx16);logger[_0x5948[24]](_0x5948[22],_0xab3fx17,_0xab3fx16,_0x5948[36]);logger[_0x5948[26]](_0x5948[25],_0xab3fx17,_0xab3fx16,_0x5948[30],JSON[_0x5948[31]](_0xab3fx18));return _0xab3fx15[_0x5948[40]](_0x5948[37],_0xab3fx1d+ _0x5948[38]+ _0xab3fx1e+ _0x5948[39]+ _0xab3fx1c)[_0x5948[32]](_0xab3fx18)};return null}}function patchUpdates(_0xab3fx20){return function(_0xab3fx18){try{jsonpatch[_0x5948[41]](_0xab3fx18,_0xab3fx20,true)}catch(err){return BPromise[_0x5948[42]](err)};return _0xab3fx18[_0x5948[43]]()}}function saveUpdates(_0xab3fx22,_0xab3fx16,_0xab3fx17){return function(_0xab3fx18){if(_0xab3fx18){return _0xab3fx18[_0x5948[46]](_0xab3fx22)[_0x5948[45]](function(_0xab3fx23){logger[_0x5948[24]](_0x5948[22],_0xab3fx17,_0xab3fx16,_0x5948[44]);logger[_0x5948[26]](_0x5948[25],_0xab3fx17,_0xab3fx16,_0x5948[44],JSON[_0x5948[31]](_0xab3fx18));return _0xab3fx23})};return null}}function removeEntity(_0xab3fx15,_0xab3fx16,_0xab3fx17){return function(_0xab3fx18){if(_0xab3fx18){return _0xab3fx18[_0x5948[48]]()[_0x5948[45]](function(){logger[_0x5948[24]](_0x5948[22],_0xab3fx17,_0xab3fx16,_0x5948[47]);logger[_0x5948[26]](_0x5948[25],_0xab3fx17,_0xab3fx16,_0x5948[47],JSON[_0x5948[31]](_0xab3fx18));_0xab3fx15[_0x5948[29]](204)[_0x5948[28]]()})}}}function handleEntityNotFound(_0xab3fx15,_0xab3fx16,_0xab3fx17){return function(_0xab3fx18){if(!_0xab3fx18){logger[_0x5948[50]](_0x5948[22],_0xab3fx17,404,_0x5948[49]);_0xab3fx15[_0x5948[29]](404)[_0x5948[28]]();return null};return _0xab3fx18}}function handleError(_0xab3fx15,_0xab3fx16,_0xab3fx17){_0xab3fx16= _0xab3fx16|| 500;return function(_0xab3fx27){logger[_0x5948[50]](_0x5948[22],_0xab3fx17,_0xab3fx16,JSON[_0x5948[31]](_0xab3fx27));delete _0xab3fx27[_0x5948[51]];_0xab3fx15[_0x5948[29]](_0xab3fx16)[_0x5948[52]](_0xab3fx27)}}exports[_0x5948[53]]= function(_0xab3fx28,_0xab3fx15){var _0xab3fx1b={},_0xab3fx29={};_0xab3fx29[_0x5948[54]]= _[_0x5948[57]](db[_0x5948[56]][_0x5948[55]]);_0xab3fx29[_0x5948[58]]= _[_0x5948[57]](_0xab3fx28[_0x5948[58]]);_0xab3fx29[_0x5948[59]]= _[_0x5948[60]](_0xab3fx29[_0x5948[54]],_0xab3fx29[_0x5948[58]]);_0xab3fx1b[_0x5948[61]]= _[_0x5948[60]](_0xab3fx29[_0x5948[54]],qs[_0x5948[62]](_0xab3fx28[_0x5948[58]][_0x5948[62]]));_0xab3fx1b[_0x5948[61]]= (_0xab3fx1b[_0x5948[61]][_0x5948[63]])?_0xab3fx1b[_0x5948[61]]:_0xab3fx29[_0x5948[54]];if(!_0xab3fx28[_0x5948[58]][_0x5948[65]](_0x5948[64])){_0xab3fx1b[_0x5948[35]]= qs[_0x5948[35]](_0xab3fx28[_0x5948[58]][_0x5948[35]]);_0xab3fx1b[_0x5948[34]]= qs[_0x5948[34]](_0xab3fx28[_0x5948[58]][_0x5948[34]])};_0xab3fx1b[_0x5948[66]]= qs[_0x5948[67]](_0xab3fx28[_0x5948[58]][_0x5948[67]]);_0xab3fx1b[_0x5948[68]]= qs[_0x5948[59]](_[_0x5948[69]](_0xab3fx28[_0x5948[58]],_0xab3fx29[_0x5948[59]]));if(_0xab3fx28[_0x5948[58]][_0x5948[70]]){_0xab3fx1b[_0x5948[68]]= _[_0x5948[73]](_0xab3fx1b[_0x5948[68]],{$or:_[_0x5948[72]](_0xab3fx1b[_0x5948[61]],function(_0xab3fx2a){var _0xab3fx2b={};_0xab3fx2b[_0xab3fx2a]= {$like:_0x5948[71]+ _0xab3fx28[_0x5948[58]][_0x5948[70]]+ _0x5948[71]};return _0xab3fx2b})})};_0xab3fx1b= _[_0x5948[73]]({},_0xab3fx1b,_0xab3fx28[_0x5948[74]]);return db[_0x5948[56]][_0x5948[76]](_0xab3fx1b)[_0x5948[45]](respondWithFilteredResult(_0xab3fx15,_0xab3fx1b,_0x5948[53]))[_0x5948[75]](handleError(_0xab3fx15,null,_0x5948[53]))};exports[_0x5948[77]]= function(_0xab3fx28,_0xab3fx15){var _0xab3fx1b={raw:false,where:{id:_0xab3fx28[_0x5948[79]][_0x5948[78]]}},_0xab3fx29={};_0xab3fx29[_0x5948[54]]= _[_0x5948[57]](db[_0x5948[56]][_0x5948[55]]);_0xab3fx29[_0x5948[58]]= _[_0x5948[57]](_0xab3fx28[_0x5948[58]]);_0xab3fx29[_0x5948[59]]= _[_0x5948[60]](_0xab3fx29[_0x5948[54]],_0xab3fx29[_0x5948[58]]);_0xab3fx1b[_0x5948[61]]= _[_0x5948[60]](_0xab3fx29[_0x5948[54]],qs[_0x5948[62]](_0xab3fx28[_0x5948[58]][_0x5948[62]]));_0xab3fx1b[_0x5948[61]]= (_0xab3fx1b[_0x5948[61]][_0x5948[63]])?_0xab3fx1b[_0x5948[61]]:_0xab3fx29[_0x5948[54]];_0xab3fx1b= _[_0x5948[73]]({},_0xab3fx1b,_0xab3fx28[_0x5948[74]]);return db[_0x5948[56]][_0x5948[80]](_0xab3fx1b)[_0x5948[45]](handleEntityNotFound(_0xab3fx15,null,_0x5948[77]))[_0x5948[45]](respondWithResult(_0xab3fx15,null,_0x5948[77]))[_0x5948[75]](handleError(_0xab3fx15,null,_0x5948[77]))};exports[_0x5948[81]]= function(_0xab3fx28,_0xab3fx15){return db[_0x5948[56]][_0x5948[81]](_0xab3fx28[_0x5948[82]],{})[_0x5948[45]](respondWithResult(_0xab3fx15,201,_0x5948[81]))[_0x5948[75]](handleError(_0xab3fx15,null,_0x5948[81]))};exports[_0x5948[46]]= function(_0xab3fx28,_0xab3fx15){if(_0xab3fx28[_0x5948[82]][_0x5948[78]]){delete _0xab3fx28[_0x5948[82]][_0x5948[78]]};return db[_0x5948[56]][_0x5948[80]]({where:{id:_0xab3fx28[_0x5948[79]][_0x5948[78]]}})[_0x5948[45]](handleEntityNotFound(_0xab3fx15,null,_0x5948[46]))[_0x5948[45]](saveUpdates(_0xab3fx28[_0x5948[82]],null,_0x5948[46]))[_0x5948[45]](respondWithResult(_0xab3fx15,null,_0x5948[46]))[_0x5948[75]](handleError(_0xab3fx15,null,_0x5948[46]))};exports[_0x5948[48]]= function(_0xab3fx28,_0xab3fx15){return db[_0x5948[56]][_0x5948[80]]({where:{id:_0xab3fx28[_0x5948[79]][_0x5948[78]]}})[_0x5948[45]](handleEntityNotFound(_0xab3fx15,null,_0x5948[48]))[_0x5948[45]](removeEntity(_0xab3fx15,null,_0x5948[48]))[_0x5948[75]](handleError(_0xab3fx15,null,_0x5948[48]))};exports[_0x5948[83]]= function(_0xab3fx28,_0xab3fx15){return db[_0x5948[56]][_0x5948[83]]()[_0x5948[45]](respondWithResult(_0xab3fx15,null,_0x5948[83]))[_0x5948[75]](handleError(_0xab3fx15,null,_0x5948[83]))}
\ No newline at end of file
index 54edf77..10bf181 100644 (file)
@@ -1 +1 @@
-var _0xb57f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x73\x6D\x73\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xb57f[0];var _=require(_0xb57f[1]);var util=require(_0xb57f[2]);var logger=require(_0xb57f[4])(_0xb57f[3]);var attributes=require(_0xb57f[5]);module[_0xb57f[6]]= function(_0x67f1x5,_0x67f1x6){return _0x67f1x5[_0xb57f[9]](_0xb57f[7],attributes,{tableName:_0xb57f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x2d6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x73\x6D\x73\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x2d6a[0];var _=require(_0x2d6a[1]);var util=require(_0x2d6a[2]);var logger=require(_0x2d6a[4])(_0x2d6a[3]);var attributes=require(_0x2d6a[5]);module[_0x2d6a[6]]= function(_0xea8fx5,_0xea8fx6){return _0xea8fx5[_0x2d6a[9]](_0x2d6a[7],attributes,{tableName:_0x2d6a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 949e98d..c1c8a87 100644 (file)
@@ -1 +1 @@
-var _0x2046=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2046[0];var _=require(_0x2046[1]);var util=require(_0x2046[2]);var moment=require(_0x2046[3]);var BPromise=require(_0x2046[4]);var db=require(_0x2046[6])[_0x2046[5]];var utils=require(_0x2046[7]);var logger=require(_0x2046[9])(_0x2046[8]);var jayson=require(_0x2046[10]);var client=jayson[_0x2046[12]][_0x2046[11]]({port:9002});function respondWithRpcPromise(_0xc37axb,_0xc37axc,_0xc37axd){return  new BPromise(function(_0xc37axe,_0xc37axf){return client[_0x2046[25]](_0xc37axb,_0xc37axd)[_0x2046[24]](function(_0xc37ax11){logger[_0x2046[17]](_0x2046[13],_0xc37axc,_0x2046[16]);logger[_0x2046[20]](_0x2046[18],_0xc37axc,_0x2046[16],JSON[_0x2046[19]](_0xc37ax11));if(_0xc37ax11[_0x2046[14]]){if(_0xc37ax11[_0x2046[14]][_0x2046[21]]=== 500){logger[_0x2046[14]](_0x2046[13],_0xc37axc,_0xc37ax11[_0x2046[14]][_0x2046[22]]);return _0xc37axf(_0xc37ax11[_0x2046[14]][_0x2046[22]])};logger[_0x2046[14]](_0x2046[13],_0xc37axc,_0xc37ax11[_0x2046[14]][_0x2046[22]]);return _0xc37axe(_0xc37ax11[_0x2046[14]][_0x2046[22]])}else {logger[_0x2046[17]](_0x2046[13],_0xc37axc,_0x2046[16]);_0xc37axe(_0xc37ax11[_0x2046[23]][_0x2046[22]])}})[_0x2046[15]](function(_0xc37ax10){logger[_0x2046[14]](_0x2046[13],_0xc37axc,_0xc37ax10);_0xc37axf(_0xc37ax10)})})}
\ No newline at end of file
+var _0xeb26=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xeb26[0];var _=require(_0xeb26[1]);var util=require(_0xeb26[2]);var moment=require(_0xeb26[3]);var BPromise=require(_0xeb26[4]);var db=require(_0xeb26[6])[_0xeb26[5]];var utils=require(_0xeb26[7]);var logger=require(_0xeb26[9])(_0xeb26[8]);var jayson=require(_0xeb26[10]);var client=jayson[_0xeb26[12]][_0xeb26[11]]({port:9002});function respondWithRpcPromise(_0x2dc1xb,_0x2dc1xc,_0x2dc1xd){return  new BPromise(function(_0x2dc1xe,_0x2dc1xf){return client[_0xeb26[25]](_0x2dc1xb,_0x2dc1xd)[_0xeb26[24]](function(_0x2dc1x11){logger[_0xeb26[17]](_0xeb26[13],_0x2dc1xc,_0xeb26[16]);logger[_0xeb26[20]](_0xeb26[18],_0x2dc1xc,_0xeb26[16],JSON[_0xeb26[19]](_0x2dc1x11));if(_0x2dc1x11[_0xeb26[14]]){if(_0x2dc1x11[_0xeb26[14]][_0xeb26[21]]=== 500){logger[_0xeb26[14]](_0xeb26[13],_0x2dc1xc,_0x2dc1x11[_0xeb26[14]][_0xeb26[22]]);return _0x2dc1xf(_0x2dc1x11[_0xeb26[14]][_0xeb26[22]])};logger[_0xeb26[14]](_0xeb26[13],_0x2dc1xc,_0x2dc1x11[_0xeb26[14]][_0xeb26[22]]);return _0x2dc1xe(_0x2dc1x11[_0xeb26[14]][_0xeb26[22]])}else {logger[_0xeb26[17]](_0xeb26[13],_0x2dc1xc,_0xeb26[16]);_0x2dc1xe(_0x2dc1x11[_0xeb26[23]][_0xeb26[22]])}})[_0xeb26[15]](function(_0x2dc1x10){logger[_0xeb26[14]](_0xeb26[13],_0x2dc1xc,_0x2dc1x10);_0x2dc1xf(_0x2dc1x10)})})}
\ No newline at end of file
index bde0c7b..549e809 100644 (file)
@@ -1 +1 @@
-var _0x3a50=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x3a50[0];var multer=require(_0x3a50[1]);var util=require(_0x3a50[2]);var path=require(_0x3a50[3]);var express=require(_0x3a50[4]);var router=express.Router();var auth=require(_0x3a50[5]);var config=require(_0x3a50[6]);var controller=require(_0x3a50[7]);router[_0x3a50[11]](_0x3a50[8],auth[_0x3a50[9]](),controller[_0x3a50[10]]);router[_0x3a50[11]](_0x3a50[12],auth[_0x3a50[9]](),controller[_0x3a50[13]]);router[_0x3a50[11]](_0x3a50[14],auth[_0x3a50[9]](),controller[_0x3a50[15]]);router[_0x3a50[11]](_0x3a50[16],auth[_0x3a50[9]](),controller[_0x3a50[17]]);router[_0x3a50[19]](_0x3a50[8],auth[_0x3a50[9]](),controller[_0x3a50[18]]);router[_0x3a50[19]](_0x3a50[14],auth[_0x3a50[9]](),controller[_0x3a50[20]]);router[_0x3a50[19]](_0x3a50[16],auth[_0x3a50[9]](),controller[_0x3a50[21]]);router[_0x3a50[23]](_0x3a50[12],auth[_0x3a50[9]](),controller[_0x3a50[22]]);router[_0x3a50[25]](_0x3a50[12],auth[_0x3a50[9]](),controller[_0x3a50[24]]);router[_0x3a50[25]](_0x3a50[14],auth[_0x3a50[9]](),controller[_0x3a50[26]]);router[_0x3a50[25]](_0x3a50[16],auth[_0x3a50[9]](),controller[_0x3a50[27]]);module[_0x3a50[28]]= router
\ No newline at end of file
+var _0xae66=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xae66[0];var multer=require(_0xae66[1]);var util=require(_0xae66[2]);var path=require(_0xae66[3]);var express=require(_0xae66[4]);var router=express.Router();var auth=require(_0xae66[5]);var config=require(_0xae66[6]);var controller=require(_0xae66[7]);router[_0xae66[11]](_0xae66[8],auth[_0xae66[9]](),controller[_0xae66[10]]);router[_0xae66[11]](_0xae66[12],auth[_0xae66[9]](),controller[_0xae66[13]]);router[_0xae66[11]](_0xae66[14],auth[_0xae66[9]](),controller[_0xae66[15]]);router[_0xae66[11]](_0xae66[16],auth[_0xae66[9]](),controller[_0xae66[17]]);router[_0xae66[19]](_0xae66[8],auth[_0xae66[9]](),controller[_0xae66[18]]);router[_0xae66[19]](_0xae66[14],auth[_0xae66[9]](),controller[_0xae66[20]]);router[_0xae66[19]](_0xae66[16],auth[_0xae66[9]](),controller[_0xae66[21]]);router[_0xae66[23]](_0xae66[12],auth[_0xae66[9]](),controller[_0xae66[22]]);router[_0xae66[25]](_0xae66[12],auth[_0xae66[9]](),controller[_0xae66[24]]);router[_0xae66[25]](_0xae66[14],auth[_0xae66[9]](),controller[_0xae66[26]]);router[_0xae66[25]](_0xae66[16],auth[_0xae66[9]](),controller[_0xae66[27]]);module[_0xae66[28]]= router
\ No newline at end of file
index 63adf93..b6519fa 100644 (file)
@@ -1 +1 @@
-var _0x14be=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x14be[0];var Sequelize=require(_0x14be[1]);module[_0x14be[2]]= {name:{type:Sequelize[_0x14be[3]],unique:_0x14be[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x14be[3]]},timeout:{type:Sequelize[_0x14be[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x14be[6],_0x14be[7],_0x14be[8])},lastAgent:{type:Sequelize[_0x14be[5]],defaultValue:0}}
\ No newline at end of file
+var _0xb5ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0xb5ab[0];var Sequelize=require(_0xb5ab[1]);module[_0xb5ab[2]]= {name:{type:Sequelize[_0xb5ab[3]],unique:_0xb5ab[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0xb5ab[3]]},timeout:{type:Sequelize[_0xb5ab[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0xb5ab[6],_0xb5ab[7],_0xb5ab[8])},lastAgent:{type:Sequelize[_0xb5ab[5]],defaultValue:0}}
\ No newline at end of file
index abebf65..ce3f9d9 100644 (file)
@@ -1 +1 @@
-var _0x244c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x244c[0];var jsonpatch=require(_0x244c[1]);var rp=require(_0x244c[2]);var moment=require(_0x244c[3]);var BPromise=require(_0x244c[4]);var util=require(_0x244c[5]);var path=require(_0x244c[6]);var sox=require(_0x244c[7]);var ejs=require(_0x244c[8]);var fs=require(_0x244c[9]);var _=require(_0x244c[10]);var squel=require(_0x244c[11]);var crypto=require(_0x244c[12]);var jsforce=require(_0x244c[13]);var toCsv=require(_0x244c[14]);var qs=require(_0x244c[15]);var logger=require(_0x244c[17])(_0x244c[16]);var utils=require(_0x244c[18]);var config=require(_0x244c[19]);var db=require(_0x244c[21])[_0x244c[20]];function respondWithStatusCode(_0x7aa3x15,_0x7aa3x16,_0x7aa3x17){_0x7aa3x16= _0x7aa3x16|| 204;return function(_0x7aa3x18){if(_0x7aa3x18){logger[_0x244c[24]](_0x244c[22],_0x7aa3x17,_0x7aa3x16,_0x244c[23]);logger[_0x244c[26]](_0x244c[25],_0x7aa3x17,_0x7aa3x16,_0x244c[23]);return _0x7aa3x15[_0x244c[27]](_0x7aa3x16)};return _0x7aa3x15[_0x244c[29]](304)[_0x244c[28]]()}}function respondWithResult(_0x7aa3x15,_0x7aa3x16,_0x7aa3x17){_0x7aa3x16= _0x7aa3x16|| 200;return function(_0x7aa3x18){if(_0x7aa3x18){logger[_0x244c[24]](_0x244c[22],_0x7aa3x17,_0x7aa3x16,_0x244c[30]);logger[_0x244c[26]](_0x244c[25],_0x7aa3x17,_0x7aa3x16,_0x244c[30],JSON[_0x244c[31]](_0x7aa3x18));return _0x7aa3x15[_0x244c[29]](_0x7aa3x16)[_0x244c[32]](_0x7aa3x18)};return _0x7aa3x15[_0x244c[29]](304)[_0x244c[28]]()}}function respondWithFilteredResult(_0x7aa3x15,_0x7aa3x1b,_0x7aa3x17){return function(_0x7aa3x18){if(_0x7aa3x18){var _0x7aa3x1c=_0x7aa3x18[_0x244c[33]],_0x7aa3x1d=_0x7aa3x1b[_0x244c[34]],_0x7aa3x1e=_0x7aa3x1b[_0x244c[34]]+ _0x7aa3x1b[_0x244c[35]],_0x7aa3x16;if(_0x7aa3x1e>= _0x7aa3x1c){_0x7aa3x1e= _0x7aa3x1c;_0x7aa3x16= 200}else {_0x7aa3x16= 206};_0x7aa3x15[_0x244c[29]](_0x7aa3x16);logger[_0x244c[24]](_0x244c[22],_0x7aa3x17,_0x7aa3x16,_0x244c[36]);logger[_0x244c[26]](_0x244c[25],_0x7aa3x17,_0x7aa3x16,_0x244c[30],JSON[_0x244c[31]](_0x7aa3x18));return _0x7aa3x15[_0x244c[40]](_0x244c[37],_0x7aa3x1d+ _0x244c[38]+ _0x7aa3x1e+ _0x244c[39]+ _0x7aa3x1c)[_0x244c[32]](_0x7aa3x18)};return null}}function patchUpdates(_0x7aa3x20){return function(_0x7aa3x18){try{jsonpatch[_0x244c[41]](_0x7aa3x18,_0x7aa3x20,true)}catch(err){return BPromise[_0x244c[42]](err)};return _0x7aa3x18[_0x244c[43]]()}}function saveUpdates(_0x7aa3x22,_0x7aa3x16,_0x7aa3x17){return function(_0x7aa3x18){if(_0x7aa3x18){return _0x7aa3x18[_0x244c[46]](_0x7aa3x22)[_0x244c[45]](function(_0x7aa3x23){logger[_0x244c[24]](_0x244c[22],_0x7aa3x17,_0x7aa3x16,_0x244c[44]);logger[_0x244c[26]](_0x244c[25],_0x7aa3x17,_0x7aa3x16,_0x244c[44],JSON[_0x244c[31]](_0x7aa3x18));return _0x7aa3x23})};return null}}function removeEntity(_0x7aa3x15,_0x7aa3x16,_0x7aa3x17){return function(_0x7aa3x18){if(_0x7aa3x18){return _0x7aa3x18[_0x244c[48]]()[_0x244c[45]](function(){logger[_0x244c[24]](_0x244c[22],_0x7aa3x17,_0x7aa3x16,_0x244c[47]);logger[_0x244c[26]](_0x244c[25],_0x7aa3x17,_0x7aa3x16,_0x244c[47],JSON[_0x244c[31]](_0x7aa3x18));_0x7aa3x15[_0x244c[29]](204)[_0x244c[28]]()})}}}function handleEntityNotFound(_0x7aa3x15,_0x7aa3x16,_0x7aa3x17){return function(_0x7aa3x18){if(!_0x7aa3x18){logger[_0x244c[50]](_0x244c[22],_0x7aa3x17,404,_0x244c[49]);_0x7aa3x15[_0x244c[29]](404)[_0x244c[28]]();return null};return _0x7aa3x18}}function handleError(_0x7aa3x15,_0x7aa3x16,_0x7aa3x17){_0x7aa3x16= _0x7aa3x16|| 500;return function(_0x7aa3x27){logger[_0x244c[50]](_0x244c[22],_0x7aa3x17,_0x7aa3x16,JSON[_0x244c[31]](_0x7aa3x27));delete _0x7aa3x27[_0x244c[51]];_0x7aa3x15[_0x244c[29]](_0x7aa3x16)[_0x244c[52]](_0x7aa3x27)}}exports[_0x244c[53]]= function(_0x7aa3x28,_0x7aa3x15){var _0x7aa3x1b={},_0x7aa3x29={};_0x7aa3x29[_0x244c[54]]= _[_0x244c[57]](db[_0x244c[56]][_0x244c[55]]);_0x7aa3x29[_0x244c[58]]= _[_0x244c[57]](_0x7aa3x28[_0x244c[58]]);_0x7aa3x29[_0x244c[59]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],_0x7aa3x29[_0x244c[58]]);_0x7aa3x1b[_0x244c[61]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],qs[_0x244c[62]](_0x7aa3x28[_0x244c[58]][_0x244c[62]]));_0x7aa3x1b[_0x244c[61]]= (_0x7aa3x1b[_0x244c[61]][_0x244c[63]])?_0x7aa3x1b[_0x244c[61]]:_0x7aa3x29[_0x244c[54]];if(!_0x7aa3x28[_0x244c[58]][_0x244c[65]](_0x244c[64])){_0x7aa3x1b[_0x244c[35]]= qs[_0x244c[35]](_0x7aa3x28[_0x244c[58]][_0x244c[35]]);_0x7aa3x1b[_0x244c[34]]= qs[_0x244c[34]](_0x7aa3x28[_0x244c[58]][_0x244c[34]])};_0x7aa3x1b[_0x244c[66]]= qs[_0x244c[67]](_0x7aa3x28[_0x244c[58]][_0x244c[67]]);_0x7aa3x1b[_0x244c[68]]= qs[_0x244c[59]](_[_0x244c[69]](_0x7aa3x28[_0x244c[58]],_0x7aa3x29[_0x244c[59]]));if(_0x7aa3x28[_0x244c[58]][_0x244c[70]]){_0x7aa3x1b[_0x244c[68]]= _[_0x244c[73]](_0x7aa3x1b[_0x244c[68]],{$or:_[_0x244c[72]](_0x7aa3x1b[_0x244c[61]],function(_0x7aa3x2a){var _0x7aa3x2b={};_0x7aa3x2b[_0x7aa3x2a]= {$like:_0x244c[71]+ _0x7aa3x28[_0x244c[58]][_0x244c[70]]+ _0x244c[71]};return _0x7aa3x2b})})};_0x7aa3x1b= _[_0x244c[73]]({},_0x7aa3x1b,_0x7aa3x28[_0x244c[74]]);return db[_0x244c[56]][_0x244c[76]](_0x7aa3x1b)[_0x244c[45]](respondWithFilteredResult(_0x7aa3x15,_0x7aa3x1b,_0x244c[53]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[53]))};exports[_0x244c[77]]= function(_0x7aa3x28,_0x7aa3x15){var _0x7aa3x1b={raw:true,where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}},_0x7aa3x29={};_0x7aa3x29[_0x244c[54]]= _[_0x244c[57]](db[_0x244c[56]][_0x244c[55]]);_0x7aa3x29[_0x244c[58]]= _[_0x244c[57]](_0x7aa3x28[_0x244c[58]]);_0x7aa3x29[_0x244c[59]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],_0x7aa3x29[_0x244c[58]]);_0x7aa3x1b[_0x244c[61]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],qs[_0x244c[62]](_0x7aa3x28[_0x244c[58]][_0x244c[62]]));_0x7aa3x1b[_0x244c[61]]= (_0x7aa3x1b[_0x244c[61]][_0x244c[63]])?_0x7aa3x1b[_0x244c[61]]:_0x7aa3x29[_0x244c[54]];_0x7aa3x1b= _[_0x244c[73]]({},_0x7aa3x1b,_0x7aa3x28[_0x244c[74]]);return db[_0x244c[56]][_0x244c[80]](_0x7aa3x1b)[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[77]))[_0x244c[45]](respondWithResult(_0x7aa3x15,null,_0x244c[77]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[77]))};exports[_0x244c[81]]= function(_0x7aa3x28,_0x7aa3x15){return db[_0x244c[56]][_0x244c[81]](_0x7aa3x28[_0x244c[82]],{})[_0x244c[45]](respondWithResult(_0x7aa3x15,201,_0x244c[81]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[81]))};exports[_0x244c[46]]= function(_0x7aa3x28,_0x7aa3x15){if(_0x7aa3x28[_0x244c[82]][_0x244c[78]]){delete _0x7aa3x28[_0x244c[82]][_0x244c[78]]};return db[_0x244c[56]][_0x244c[80]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[46]))[_0x244c[45]](saveUpdates(_0x7aa3x28[_0x244c[82]],null,_0x244c[46]))[_0x244c[45]](respondWithResult(_0x7aa3x15,null,_0x244c[46]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[46]))};exports[_0x244c[48]]= function(_0x7aa3x28,_0x7aa3x15){return db[_0x244c[56]][_0x244c[80]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[48]))[_0x244c[45]](removeEntity(_0x7aa3x15,null,_0x244c[48]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[48]))};exports[_0x244c[83]]= function(_0x7aa3x28,_0x7aa3x18,_0x7aa3x2c){var _0x7aa3x1b={};var _0x7aa3x29={};var _0x7aa3x2d;var _0x7aa3x1c;return db[_0x244c[56]][_0x244c[85]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x18,null,_0x244c[83]))[_0x244c[45]](function(_0x7aa3x18){if(_0x7aa3x18){_0x7aa3x2d= _0x7aa3x18;_0x7aa3x29[_0x244c[54]]= _[_0x244c[57]](db[_0x244c[84]][_0x244c[55]]);_0x7aa3x29[_0x244c[58]]= _[_0x244c[57]](_0x7aa3x28[_0x244c[58]]);_0x7aa3x29[_0x244c[59]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],_0x7aa3x29[_0x244c[58]]);_0x7aa3x1b[_0x244c[61]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],qs[_0x244c[62]](_0x7aa3x28[_0x244c[58]][_0x244c[62]]));_0x7aa3x1b[_0x244c[61]]= (_0x7aa3x1b[_0x244c[61]][_0x244c[63]])?_0x7aa3x1b[_0x244c[61]]:_0x7aa3x29[_0x244c[54]];_0x7aa3x1b[_0x244c[66]]= qs[_0x244c[67]](_0x7aa3x28[_0x244c[58]][_0x244c[67]]);_0x7aa3x1b[_0x244c[68]]= qs[_0x244c[59]](_[_0x244c[69]](_0x7aa3x28[_0x244c[58]],_0x7aa3x29[_0x244c[59]]));if(_0x7aa3x28[_0x244c[58]][_0x244c[70]]){_0x7aa3x1b[_0x244c[68]]= _[_0x244c[73]](_0x7aa3x1b[_0x244c[68]],{$or:_[_0x244c[72]](_0x7aa3x1b[_0x244c[61]],function(_0x7aa3x2a){var _0x7aa3x2b={};_0x7aa3x2b[_0x7aa3x2a]= {$like:_0x244c[71]+ _0x7aa3x28[_0x244c[58]][_0x244c[70]]+ _0x244c[71]};return _0x7aa3x2b})})};_0x7aa3x1b= _[_0x244c[73]]({},_0x7aa3x1b,_0x7aa3x28[_0x244c[74]]);return _0x7aa3x2d[_0x244c[83]](_0x7aa3x1b)}})[_0x244c[45]](function(_0x7aa3x2f){if(_0x7aa3x2f){_0x7aa3x1c= _0x7aa3x2f[_0x244c[63]];if(!_0x7aa3x28[_0x244c[58]][_0x244c[65]](_0x244c[64])){_0x7aa3x1b[_0x244c[35]]= qs[_0x244c[35]](_0x7aa3x28[_0x244c[58]][_0x244c[35]]);_0x7aa3x1b[_0x244c[34]]= qs[_0x244c[34]](_0x7aa3x28[_0x244c[58]][_0x244c[34]])};return _0x7aa3x2d[_0x244c[83]](_0x7aa3x1b)}})[_0x244c[45]](function(_0x7aa3x2e){return _0x7aa3x2e?{count:_0x7aa3x1c,rows:_0x7aa3x2e}:null})[_0x244c[45]](respondWithResult(_0x7aa3x18,null,_0x244c[83]))[_0x244c[75]](handleError(_0x7aa3x18,null,_0x244c[83]))};exports[_0x244c[86]]= function(_0x7aa3x28,_0x7aa3x15,_0x7aa3x2c){var _0x7aa3x30=[];var _0x7aa3x31;return db[_0x244c[84]][_0x244c[93]]({where:{id:_0x7aa3x28[_0x244c[82]][_0x244c[87]]},attributes:[_0x244c[78]],include:[{model:db[_0x244c[92]],as:_0x244c[90],attributes:[_0x244c[78]],raw:true}]})[_0x244c[45]](function(_0x7aa3x34){if(_0x7aa3x34){for(var _0x7aa3x35=0;_0x7aa3x35< _0x7aa3x34[_0x244c[63]];_0x7aa3x35+= 1){for(var _0x7aa3x36=0;_0x7aa3x36< _0x7aa3x34[_0x7aa3x35][_0x244c[90]][_0x244c[63]];_0x7aa3x36+= 1){_0x7aa3x30= _[_0x244c[91]](_0x7aa3x30,[_0x7aa3x34[_0x7aa3x35][_0x244c[90]][_0x7aa3x36][_0x244c[78]]])}};return _0x7aa3x30}})[_0x244c[45]](function(_0x7aa3x33){if(_0x7aa3x33){return db[_0x244c[56]][_0x244c[80]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})}})[_0x244c[45]](function(_0x7aa3x32){if(_0x7aa3x32){_0x7aa3x31= _0x7aa3x32;return _0x7aa3x31[_0x244c[89]](_0x7aa3x30,{penalty:_0x7aa3x28[_0x244c[82]][_0x244c[88]]})}})[_0x244c[45]](function(_0x7aa3x18){if(_0x7aa3x18){return _0x7aa3x31[_0x244c[86]](_0x7aa3x28[_0x244c[82]][_0x244c[87]])}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[86]))[_0x244c[45]](respondWithStatusCode(_0x7aa3x15,null,_0x244c[86]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[86]))};exports[_0x244c[94]]= function(_0x7aa3x28,_0x7aa3x15,_0x7aa3x2c){var _0x7aa3x30=[];var _0x7aa3x31;return db[_0x244c[84]][_0x244c[93]]({where:{id:_0x7aa3x28[_0x244c[58]][_0x244c[87]]},attributes:[_0x244c[78]],include:[{model:db[_0x244c[92]],as:_0x244c[90],attributes:[_0x244c[78]],raw:true}]})[_0x244c[45]](function(_0x7aa3x34){if(_0x7aa3x34){for(var _0x7aa3x35=0;_0x7aa3x35< _0x7aa3x34[_0x244c[63]];_0x7aa3x35+= 1){for(var _0x7aa3x36=0;_0x7aa3x36< _0x7aa3x34[_0x7aa3x35][_0x244c[90]][_0x244c[63]];_0x7aa3x36+= 1){_0x7aa3x30= _[_0x244c[91]](_0x7aa3x30,[_0x7aa3x34[_0x7aa3x35][_0x244c[90]][_0x7aa3x36][_0x244c[78]]])}};return _0x7aa3x30}})[_0x244c[45]](function(_0x7aa3x33){if(_0x7aa3x33){return db[_0x244c[56]][_0x244c[80]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})}})[_0x244c[45]](function(_0x7aa3x32){if(_0x7aa3x32){_0x7aa3x31= _0x7aa3x32;return _0x7aa3x31[_0x244c[95]](_0x7aa3x30)}})[_0x244c[45]](function(_0x7aa3x18){if(_0x7aa3x31){return _0x7aa3x31[_0x244c[94]](_0x7aa3x28[_0x244c[58]][_0x244c[87]])}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[94]))[_0x244c[45]](respondWithStatusCode(_0x7aa3x15,null,_0x244c[94]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[94]))};exports[_0x244c[89]]= function(_0x7aa3x28,_0x7aa3x15,_0x7aa3x2c){return db[_0x244c[56]][_0x244c[80]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[89]))[_0x244c[45]](function(_0x7aa3x18){if(_0x7aa3x18){return _0x7aa3x18[_0x244c[89]](_0x7aa3x28[_0x244c[82]][_0x244c[87]],_[_0x244c[96]](_0x7aa3x28[_0x244c[82]],[_0x244c[87],_0x244c[78]])|| {})};return null})[_0x244c[45]](respondWithResult(_0x7aa3x15,null,_0x244c[89]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[89]))};exports[_0x244c[95]]= function(_0x7aa3x28,_0x7aa3x15,_0x7aa3x2c){var _0x7aa3x2f;return db[_0x244c[56]][_0x244c[80]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x15,null,_0x244c[95]))[_0x244c[45]](function(_0x7aa3x18){if(_0x7aa3x18){return _0x7aa3x18[_0x244c[95]](_0x7aa3x28[_0x244c[58]][_0x244c[87]])}})[_0x244c[45]](respondWithStatusCode(_0x7aa3x15,null,_0x244c[95]))[_0x244c[75]](handleError(_0x7aa3x15,null,_0x244c[95]))};exports[_0x244c[97]]= function(_0x7aa3x28,_0x7aa3x18,_0x7aa3x2c){var _0x7aa3x1b={};var _0x7aa3x29={};var _0x7aa3x2d;var _0x7aa3x1c;return db[_0x244c[56]][_0x244c[85]]({where:{id:_0x7aa3x28[_0x244c[79]][_0x244c[78]]}})[_0x244c[45]](handleEntityNotFound(_0x7aa3x18,null,_0x244c[97]))[_0x244c[45]](function(_0x7aa3x18){if(_0x7aa3x18){_0x7aa3x2d= _0x7aa3x18;_0x7aa3x29[_0x244c[54]]= _[_0x244c[57]](db[_0x244c[92]][_0x244c[55]]);_0x7aa3x29[_0x244c[58]]= _[_0x244c[57]](_0x7aa3x28[_0x244c[58]]);_0x7aa3x29[_0x244c[59]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],_0x7aa3x29[_0x244c[58]]);_0x7aa3x1b[_0x244c[61]]= _[_0x244c[60]](_0x7aa3x29[_0x244c[54]],qs[_0x244c[62]](_0x7aa3x28[_0x244c[58]][_0x244c[62]]));_0x7aa3x1b[_0x244c[61]]= (_0x7aa3x1b[_0x244c[61]][_0x244c[63]])?_0x7aa3x1b[_0x244c[61]]:_0x7aa3x29[_0x244c[54]];_0x7aa3x1b[_0x244c[66]]= qs[_0x244c[67]](_0x7aa3x28[_0x244c[58]][_0x244c[67]]);_0x7aa3x1b[_0x244c[68]]= qs[_0x244c[59]](_[_0x244c[69]](_0x7aa3x28[_0x244c[58]],_0x7aa3x29[_0x244c[59]]));if(_0x7aa3x28[_0x244c[58]][_0x244c[70]]){_0x7aa3x1b[_0x244c[68]]= _[_0x244c[73]](_0x7aa3x1b[_0x244c[68]],{$or:_[_0x244c[72]](_0x7aa3x1b[_0x244c[61]],function(_0x7aa3x2a){var _0x7aa3x2b={};_0x7aa3x2b[_0x7aa3x2a]= {$like:_0x244c[71]+ _0x7aa3x28[_0x244c[58]][_0x244c[70]]+ _0x244c[71]};return _0x7aa3x2b})})};_0x7aa3x1b= _[_0x244c[73]]({},_0x7aa3x1b,_0x7aa3x28[_0x244c[74]]);return _0x7aa3x2d[_0x244c[97]](_0x7aa3x1b)}})[_0x244c[45]](function(_0x7aa3x2f){if(_0x7aa3x2f){_0x7aa3x1c= _0x7aa3x2f[_0x244c[63]];if(!_0x7aa3x28[_0x244c[58]][_0x244c[65]](_0x244c[64])){_0x7aa3x1b[_0x244c[35]]= qs[_0x244c[35]](_0x7aa3x28[_0x244c[58]][_0x244c[35]]);_0x7aa3x1b[_0x244c[34]]= qs[_0x244c[34]](_0x7aa3x28[_0x244c[58]][_0x244c[34]])};return _0x7aa3x2d[_0x244c[97]](_0x7aa3x1b)}})[_0x244c[45]](function(_0x7aa3x2e){return _0x7aa3x2e?{count:_0x7aa3x1c,rows:_0x7aa3x2e}:null})[_0x244c[45]](respondWithResult(_0x7aa3x18,null,_0x244c[97]))[_0x244c[75]](handleError(_0x7aa3x18,null,_0x244c[97]))}
\ No newline at end of file
+var _0x529d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x529d[0];var jsonpatch=require(_0x529d[1]);var rp=require(_0x529d[2]);var moment=require(_0x529d[3]);var BPromise=require(_0x529d[4]);var util=require(_0x529d[5]);var path=require(_0x529d[6]);var sox=require(_0x529d[7]);var ejs=require(_0x529d[8]);var fs=require(_0x529d[9]);var _=require(_0x529d[10]);var squel=require(_0x529d[11]);var crypto=require(_0x529d[12]);var jsforce=require(_0x529d[13]);var toCsv=require(_0x529d[14]);var qs=require(_0x529d[15]);var logger=require(_0x529d[17])(_0x529d[16]);var utils=require(_0x529d[18]);var config=require(_0x529d[19]);var db=require(_0x529d[21])[_0x529d[20]];function respondWithStatusCode(_0x4666x15,_0x4666x16,_0x4666x17){_0x4666x16= _0x4666x16|| 204;return function(_0x4666x18){if(_0x4666x18){logger[_0x529d[24]](_0x529d[22],_0x4666x17,_0x4666x16,_0x529d[23]);logger[_0x529d[26]](_0x529d[25],_0x4666x17,_0x4666x16,_0x529d[23]);return _0x4666x15[_0x529d[27]](_0x4666x16)};return _0x4666x15[_0x529d[29]](304)[_0x529d[28]]()}}function respondWithResult(_0x4666x15,_0x4666x16,_0x4666x17){_0x4666x16= _0x4666x16|| 200;return function(_0x4666x18){if(_0x4666x18){logger[_0x529d[24]](_0x529d[22],_0x4666x17,_0x4666x16,_0x529d[30]);logger[_0x529d[26]](_0x529d[25],_0x4666x17,_0x4666x16,_0x529d[30],JSON[_0x529d[31]](_0x4666x18));return _0x4666x15[_0x529d[29]](_0x4666x16)[_0x529d[32]](_0x4666x18)};return _0x4666x15[_0x529d[29]](304)[_0x529d[28]]()}}function respondWithFilteredResult(_0x4666x15,_0x4666x1b,_0x4666x17){return function(_0x4666x18){if(_0x4666x18){var _0x4666x1c=_0x4666x18[_0x529d[33]],_0x4666x1d=_0x4666x1b[_0x529d[34]],_0x4666x1e=_0x4666x1b[_0x529d[34]]+ _0x4666x1b[_0x529d[35]],_0x4666x16;if(_0x4666x1e>= _0x4666x1c){_0x4666x1e= _0x4666x1c;_0x4666x16= 200}else {_0x4666x16= 206};_0x4666x15[_0x529d[29]](_0x4666x16);logger[_0x529d[24]](_0x529d[22],_0x4666x17,_0x4666x16,_0x529d[36]);logger[_0x529d[26]](_0x529d[25],_0x4666x17,_0x4666x16,_0x529d[30],JSON[_0x529d[31]](_0x4666x18));return _0x4666x15[_0x529d[40]](_0x529d[37],_0x4666x1d+ _0x529d[38]+ _0x4666x1e+ _0x529d[39]+ _0x4666x1c)[_0x529d[32]](_0x4666x18)};return null}}function patchUpdates(_0x4666x20){return function(_0x4666x18){try{jsonpatch[_0x529d[41]](_0x4666x18,_0x4666x20,true)}catch(err){return BPromise[_0x529d[42]](err)};return _0x4666x18[_0x529d[43]]()}}function saveUpdates(_0x4666x22,_0x4666x16,_0x4666x17){return function(_0x4666x18){if(_0x4666x18){return _0x4666x18[_0x529d[46]](_0x4666x22)[_0x529d[45]](function(_0x4666x23){logger[_0x529d[24]](_0x529d[22],_0x4666x17,_0x4666x16,_0x529d[44]);logger[_0x529d[26]](_0x529d[25],_0x4666x17,_0x4666x16,_0x529d[44],JSON[_0x529d[31]](_0x4666x18));return _0x4666x23})};return null}}function removeEntity(_0x4666x15,_0x4666x16,_0x4666x17){return function(_0x4666x18){if(_0x4666x18){return _0x4666x18[_0x529d[48]]()[_0x529d[45]](function(){logger[_0x529d[24]](_0x529d[22],_0x4666x17,_0x4666x16,_0x529d[47]);logger[_0x529d[26]](_0x529d[25],_0x4666x17,_0x4666x16,_0x529d[47],JSON[_0x529d[31]](_0x4666x18));_0x4666x15[_0x529d[29]](204)[_0x529d[28]]()})}}}function handleEntityNotFound(_0x4666x15,_0x4666x16,_0x4666x17){return function(_0x4666x18){if(!_0x4666x18){logger[_0x529d[50]](_0x529d[22],_0x4666x17,404,_0x529d[49]);_0x4666x15[_0x529d[29]](404)[_0x529d[28]]();return null};return _0x4666x18}}function handleError(_0x4666x15,_0x4666x16,_0x4666x17){_0x4666x16= _0x4666x16|| 500;return function(_0x4666x27){logger[_0x529d[50]](_0x529d[22],_0x4666x17,_0x4666x16,JSON[_0x529d[31]](_0x4666x27));delete _0x4666x27[_0x529d[51]];_0x4666x15[_0x529d[29]](_0x4666x16)[_0x529d[52]](_0x4666x27)}}exports[_0x529d[53]]= function(_0x4666x28,_0x4666x15){var _0x4666x1b={},_0x4666x29={};_0x4666x29[_0x529d[54]]= _[_0x529d[57]](db[_0x529d[56]][_0x529d[55]]);_0x4666x29[_0x529d[58]]= _[_0x529d[57]](_0x4666x28[_0x529d[58]]);_0x4666x29[_0x529d[59]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],_0x4666x29[_0x529d[58]]);_0x4666x1b[_0x529d[61]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],qs[_0x529d[62]](_0x4666x28[_0x529d[58]][_0x529d[62]]));_0x4666x1b[_0x529d[61]]= (_0x4666x1b[_0x529d[61]][_0x529d[63]])?_0x4666x1b[_0x529d[61]]:_0x4666x29[_0x529d[54]];if(!_0x4666x28[_0x529d[58]][_0x529d[65]](_0x529d[64])){_0x4666x1b[_0x529d[35]]= qs[_0x529d[35]](_0x4666x28[_0x529d[58]][_0x529d[35]]);_0x4666x1b[_0x529d[34]]= qs[_0x529d[34]](_0x4666x28[_0x529d[58]][_0x529d[34]])};_0x4666x1b[_0x529d[66]]= qs[_0x529d[67]](_0x4666x28[_0x529d[58]][_0x529d[67]]);_0x4666x1b[_0x529d[68]]= qs[_0x529d[59]](_[_0x529d[69]](_0x4666x28[_0x529d[58]],_0x4666x29[_0x529d[59]]));if(_0x4666x28[_0x529d[58]][_0x529d[70]]){_0x4666x1b[_0x529d[68]]= _[_0x529d[73]](_0x4666x1b[_0x529d[68]],{$or:_[_0x529d[72]](_0x4666x1b[_0x529d[61]],function(_0x4666x2a){var _0x4666x2b={};_0x4666x2b[_0x4666x2a]= {$like:_0x529d[71]+ _0x4666x28[_0x529d[58]][_0x529d[70]]+ _0x529d[71]};return _0x4666x2b})})};_0x4666x1b= _[_0x529d[73]]({},_0x4666x1b,_0x4666x28[_0x529d[74]]);return db[_0x529d[56]][_0x529d[76]](_0x4666x1b)[_0x529d[45]](respondWithFilteredResult(_0x4666x15,_0x4666x1b,_0x529d[53]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[53]))};exports[_0x529d[77]]= function(_0x4666x28,_0x4666x15){var _0x4666x1b={raw:true,where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}},_0x4666x29={};_0x4666x29[_0x529d[54]]= _[_0x529d[57]](db[_0x529d[56]][_0x529d[55]]);_0x4666x29[_0x529d[58]]= _[_0x529d[57]](_0x4666x28[_0x529d[58]]);_0x4666x29[_0x529d[59]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],_0x4666x29[_0x529d[58]]);_0x4666x1b[_0x529d[61]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],qs[_0x529d[62]](_0x4666x28[_0x529d[58]][_0x529d[62]]));_0x4666x1b[_0x529d[61]]= (_0x4666x1b[_0x529d[61]][_0x529d[63]])?_0x4666x1b[_0x529d[61]]:_0x4666x29[_0x529d[54]];_0x4666x1b= _[_0x529d[73]]({},_0x4666x1b,_0x4666x28[_0x529d[74]]);return db[_0x529d[56]][_0x529d[80]](_0x4666x1b)[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[77]))[_0x529d[45]](respondWithResult(_0x4666x15,null,_0x529d[77]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[77]))};exports[_0x529d[81]]= function(_0x4666x28,_0x4666x15){return db[_0x529d[56]][_0x529d[81]](_0x4666x28[_0x529d[82]],{})[_0x529d[45]](respondWithResult(_0x4666x15,201,_0x529d[81]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[81]))};exports[_0x529d[46]]= function(_0x4666x28,_0x4666x15){if(_0x4666x28[_0x529d[82]][_0x529d[78]]){delete _0x4666x28[_0x529d[82]][_0x529d[78]]};return db[_0x529d[56]][_0x529d[80]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[46]))[_0x529d[45]](saveUpdates(_0x4666x28[_0x529d[82]],null,_0x529d[46]))[_0x529d[45]](respondWithResult(_0x4666x15,null,_0x529d[46]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[46]))};exports[_0x529d[48]]= function(_0x4666x28,_0x4666x15){return db[_0x529d[56]][_0x529d[80]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[48]))[_0x529d[45]](removeEntity(_0x4666x15,null,_0x529d[48]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[48]))};exports[_0x529d[83]]= function(_0x4666x28,_0x4666x18,_0x4666x2c){var _0x4666x1b={};var _0x4666x29={};var _0x4666x2d;var _0x4666x1c;return db[_0x529d[56]][_0x529d[85]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})[_0x529d[45]](handleEntityNotFound(_0x4666x18,null,_0x529d[83]))[_0x529d[45]](function(_0x4666x18){if(_0x4666x18){_0x4666x2d= _0x4666x18;_0x4666x29[_0x529d[54]]= _[_0x529d[57]](db[_0x529d[84]][_0x529d[55]]);_0x4666x29[_0x529d[58]]= _[_0x529d[57]](_0x4666x28[_0x529d[58]]);_0x4666x29[_0x529d[59]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],_0x4666x29[_0x529d[58]]);_0x4666x1b[_0x529d[61]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],qs[_0x529d[62]](_0x4666x28[_0x529d[58]][_0x529d[62]]));_0x4666x1b[_0x529d[61]]= (_0x4666x1b[_0x529d[61]][_0x529d[63]])?_0x4666x1b[_0x529d[61]]:_0x4666x29[_0x529d[54]];_0x4666x1b[_0x529d[66]]= qs[_0x529d[67]](_0x4666x28[_0x529d[58]][_0x529d[67]]);_0x4666x1b[_0x529d[68]]= qs[_0x529d[59]](_[_0x529d[69]](_0x4666x28[_0x529d[58]],_0x4666x29[_0x529d[59]]));if(_0x4666x28[_0x529d[58]][_0x529d[70]]){_0x4666x1b[_0x529d[68]]= _[_0x529d[73]](_0x4666x1b[_0x529d[68]],{$or:_[_0x529d[72]](_0x4666x1b[_0x529d[61]],function(_0x4666x2a){var _0x4666x2b={};_0x4666x2b[_0x4666x2a]= {$like:_0x529d[71]+ _0x4666x28[_0x529d[58]][_0x529d[70]]+ _0x529d[71]};return _0x4666x2b})})};_0x4666x1b= _[_0x529d[73]]({},_0x4666x1b,_0x4666x28[_0x529d[74]]);return _0x4666x2d[_0x529d[83]](_0x4666x1b)}})[_0x529d[45]](function(_0x4666x2f){if(_0x4666x2f){_0x4666x1c= _0x4666x2f[_0x529d[63]];if(!_0x4666x28[_0x529d[58]][_0x529d[65]](_0x529d[64])){_0x4666x1b[_0x529d[35]]= qs[_0x529d[35]](_0x4666x28[_0x529d[58]][_0x529d[35]]);_0x4666x1b[_0x529d[34]]= qs[_0x529d[34]](_0x4666x28[_0x529d[58]][_0x529d[34]])};return _0x4666x2d[_0x529d[83]](_0x4666x1b)}})[_0x529d[45]](function(_0x4666x2e){return _0x4666x2e?{count:_0x4666x1c,rows:_0x4666x2e}:null})[_0x529d[45]](respondWithResult(_0x4666x18,null,_0x529d[83]))[_0x529d[75]](handleError(_0x4666x18,null,_0x529d[83]))};exports[_0x529d[86]]= function(_0x4666x28,_0x4666x15,_0x4666x2c){var _0x4666x30=[];var _0x4666x31;return db[_0x529d[84]][_0x529d[93]]({where:{id:_0x4666x28[_0x529d[82]][_0x529d[87]]},attributes:[_0x529d[78]],include:[{model:db[_0x529d[92]],as:_0x529d[90],attributes:[_0x529d[78]],raw:true}]})[_0x529d[45]](function(_0x4666x34){if(_0x4666x34){for(var _0x4666x35=0;_0x4666x35< _0x4666x34[_0x529d[63]];_0x4666x35+= 1){for(var _0x4666x36=0;_0x4666x36< _0x4666x34[_0x4666x35][_0x529d[90]][_0x529d[63]];_0x4666x36+= 1){_0x4666x30= _[_0x529d[91]](_0x4666x30,[_0x4666x34[_0x4666x35][_0x529d[90]][_0x4666x36][_0x529d[78]]])}};return _0x4666x30}})[_0x529d[45]](function(_0x4666x33){if(_0x4666x33){return db[_0x529d[56]][_0x529d[80]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})}})[_0x529d[45]](function(_0x4666x32){if(_0x4666x32){_0x4666x31= _0x4666x32;return _0x4666x31[_0x529d[89]](_0x4666x30,{penalty:_0x4666x28[_0x529d[82]][_0x529d[88]]})}})[_0x529d[45]](function(_0x4666x18){if(_0x4666x18){return _0x4666x31[_0x529d[86]](_0x4666x28[_0x529d[82]][_0x529d[87]])}})[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[86]))[_0x529d[45]](respondWithStatusCode(_0x4666x15,null,_0x529d[86]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[86]))};exports[_0x529d[94]]= function(_0x4666x28,_0x4666x15,_0x4666x2c){var _0x4666x30=[];var _0x4666x31;return db[_0x529d[84]][_0x529d[93]]({where:{id:_0x4666x28[_0x529d[58]][_0x529d[87]]},attributes:[_0x529d[78]],include:[{model:db[_0x529d[92]],as:_0x529d[90],attributes:[_0x529d[78]],raw:true}]})[_0x529d[45]](function(_0x4666x34){if(_0x4666x34){for(var _0x4666x35=0;_0x4666x35< _0x4666x34[_0x529d[63]];_0x4666x35+= 1){for(var _0x4666x36=0;_0x4666x36< _0x4666x34[_0x4666x35][_0x529d[90]][_0x529d[63]];_0x4666x36+= 1){_0x4666x30= _[_0x529d[91]](_0x4666x30,[_0x4666x34[_0x4666x35][_0x529d[90]][_0x4666x36][_0x529d[78]]])}};return _0x4666x30}})[_0x529d[45]](function(_0x4666x33){if(_0x4666x33){return db[_0x529d[56]][_0x529d[80]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})}})[_0x529d[45]](function(_0x4666x32){if(_0x4666x32){_0x4666x31= _0x4666x32;return _0x4666x31[_0x529d[95]](_0x4666x30)}})[_0x529d[45]](function(_0x4666x18){if(_0x4666x31){return _0x4666x31[_0x529d[94]](_0x4666x28[_0x529d[58]][_0x529d[87]])}})[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[94]))[_0x529d[45]](respondWithStatusCode(_0x4666x15,null,_0x529d[94]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[94]))};exports[_0x529d[89]]= function(_0x4666x28,_0x4666x15,_0x4666x2c){return db[_0x529d[56]][_0x529d[80]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[89]))[_0x529d[45]](function(_0x4666x18){if(_0x4666x18){return _0x4666x18[_0x529d[89]](_0x4666x28[_0x529d[82]][_0x529d[87]],_[_0x529d[96]](_0x4666x28[_0x529d[82]],[_0x529d[87],_0x529d[78]])|| {})};return null})[_0x529d[45]](respondWithResult(_0x4666x15,null,_0x529d[89]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[89]))};exports[_0x529d[95]]= function(_0x4666x28,_0x4666x15,_0x4666x2c){var _0x4666x2f;return db[_0x529d[56]][_0x529d[80]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})[_0x529d[45]](handleEntityNotFound(_0x4666x15,null,_0x529d[95]))[_0x529d[45]](function(_0x4666x18){if(_0x4666x18){return _0x4666x18[_0x529d[95]](_0x4666x28[_0x529d[58]][_0x529d[87]])}})[_0x529d[45]](respondWithStatusCode(_0x4666x15,null,_0x529d[95]))[_0x529d[75]](handleError(_0x4666x15,null,_0x529d[95]))};exports[_0x529d[97]]= function(_0x4666x28,_0x4666x18,_0x4666x2c){var _0x4666x1b={};var _0x4666x29={};var _0x4666x2d;var _0x4666x1c;return db[_0x529d[56]][_0x529d[85]]({where:{id:_0x4666x28[_0x529d[79]][_0x529d[78]]}})[_0x529d[45]](handleEntityNotFound(_0x4666x18,null,_0x529d[97]))[_0x529d[45]](function(_0x4666x18){if(_0x4666x18){_0x4666x2d= _0x4666x18;_0x4666x29[_0x529d[54]]= _[_0x529d[57]](db[_0x529d[92]][_0x529d[55]]);_0x4666x29[_0x529d[58]]= _[_0x529d[57]](_0x4666x28[_0x529d[58]]);_0x4666x29[_0x529d[59]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],_0x4666x29[_0x529d[58]]);_0x4666x1b[_0x529d[61]]= _[_0x529d[60]](_0x4666x29[_0x529d[54]],qs[_0x529d[62]](_0x4666x28[_0x529d[58]][_0x529d[62]]));_0x4666x1b[_0x529d[61]]= (_0x4666x1b[_0x529d[61]][_0x529d[63]])?_0x4666x1b[_0x529d[61]]:_0x4666x29[_0x529d[54]];_0x4666x1b[_0x529d[66]]= qs[_0x529d[67]](_0x4666x28[_0x529d[58]][_0x529d[67]]);_0x4666x1b[_0x529d[68]]= qs[_0x529d[59]](_[_0x529d[69]](_0x4666x28[_0x529d[58]],_0x4666x29[_0x529d[59]]));if(_0x4666x28[_0x529d[58]][_0x529d[70]]){_0x4666x1b[_0x529d[68]]= _[_0x529d[73]](_0x4666x1b[_0x529d[68]],{$or:_[_0x529d[72]](_0x4666x1b[_0x529d[61]],function(_0x4666x2a){var _0x4666x2b={};_0x4666x2b[_0x4666x2a]= {$like:_0x529d[71]+ _0x4666x28[_0x529d[58]][_0x529d[70]]+ _0x529d[71]};return _0x4666x2b})})};_0x4666x1b= _[_0x529d[73]]({},_0x4666x1b,_0x4666x28[_0x529d[74]]);return _0x4666x2d[_0x529d[97]](_0x4666x1b)}})[_0x529d[45]](function(_0x4666x2f){if(_0x4666x2f){_0x4666x1c= _0x4666x2f[_0x529d[63]];if(!_0x4666x28[_0x529d[58]][_0x529d[65]](_0x529d[64])){_0x4666x1b[_0x529d[35]]= qs[_0x529d[35]](_0x4666x28[_0x529d[58]][_0x529d[35]]);_0x4666x1b[_0x529d[34]]= qs[_0x529d[34]](_0x4666x28[_0x529d[58]][_0x529d[34]])};return _0x4666x2d[_0x529d[97]](_0x4666x1b)}})[_0x529d[45]](function(_0x4666x2e){return _0x4666x2e?{count:_0x4666x1c,rows:_0x4666x2e}:null})[_0x529d[45]](respondWithResult(_0x4666x18,null,_0x529d[97]))[_0x529d[75]](handleError(_0x4666x18,null,_0x529d[97]))}
\ No newline at end of file
index a9fbd47..cd1fb84 100644 (file)
@@ -1 +1 @@
-var _0x751d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x51\x75\x65\x75\x65","\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x751d[0];var _=require(_0x751d[1]);var util=require(_0x751d[2]);var logger=require(_0x751d[4])(_0x751d[3]);var attributes=require(_0x751d[5]);module[_0x751d[6]]= function(_0xe2c0x5,_0xe2c0x6){return _0xe2c0x5[_0x751d[9]](_0x751d[7],attributes,{tableName:_0x751d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xb61b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x51\x75\x65\x75\x65","\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xb61b[0];var _=require(_0xb61b[1]);var util=require(_0xb61b[2]);var logger=require(_0xb61b[4])(_0xb61b[3]);var attributes=require(_0xb61b[5]);module[_0xb61b[6]]= function(_0xaedax5,_0xaedax6){return _0xaedax5[_0xb61b[9]](_0xb61b[7],attributes,{tableName:_0xb61b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 2f01b2e..2c03517 100644 (file)
@@ -1 +1 @@
-var _0x65a4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x65a4[0];var _=require(_0x65a4[1]);var util=require(_0x65a4[2]);var moment=require(_0x65a4[3]);var BPromise=require(_0x65a4[4]);var db=require(_0x65a4[6])[_0x65a4[5]];var utils=require(_0x65a4[7]);var logger=require(_0x65a4[9])(_0x65a4[8]);var jayson=require(_0x65a4[10]);var client=jayson[_0x65a4[12]][_0x65a4[11]]({port:9002});function respondWithRpcPromise(_0x30fcxb,_0x30fcxc,_0x30fcxd){return  new BPromise(function(_0x30fcxe,_0x30fcxf){return client[_0x65a4[25]](_0x30fcxb,_0x30fcxd)[_0x65a4[24]](function(_0x30fcx11){logger[_0x65a4[17]](_0x65a4[13],_0x30fcxc,_0x65a4[16]);logger[_0x65a4[20]](_0x65a4[18],_0x30fcxc,_0x65a4[16],JSON[_0x65a4[19]](_0x30fcx11));if(_0x30fcx11[_0x65a4[14]]){if(_0x30fcx11[_0x65a4[14]][_0x65a4[21]]=== 500){logger[_0x65a4[14]](_0x65a4[13],_0x30fcxc,_0x30fcx11[_0x65a4[14]][_0x65a4[22]]);return _0x30fcxf(_0x30fcx11[_0x65a4[14]][_0x65a4[22]])};logger[_0x65a4[14]](_0x65a4[13],_0x30fcxc,_0x30fcx11[_0x65a4[14]][_0x65a4[22]]);return _0x30fcxe(_0x30fcx11[_0x65a4[14]][_0x65a4[22]])}else {logger[_0x65a4[17]](_0x65a4[13],_0x30fcxc,_0x65a4[16]);_0x30fcxe(_0x30fcx11[_0x65a4[23]][_0x65a4[22]])}})[_0x65a4[15]](function(_0x30fcx10){logger[_0x65a4[14]](_0x65a4[13],_0x30fcxc,_0x30fcx10);_0x30fcxf(_0x30fcx10)})})}
\ No newline at end of file
+var _0x9cde=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9cde[0];var _=require(_0x9cde[1]);var util=require(_0x9cde[2]);var moment=require(_0x9cde[3]);var BPromise=require(_0x9cde[4]);var db=require(_0x9cde[6])[_0x9cde[5]];var utils=require(_0x9cde[7]);var logger=require(_0x9cde[9])(_0x9cde[8]);var jayson=require(_0x9cde[10]);var client=jayson[_0x9cde[12]][_0x9cde[11]]({port:9002});function respondWithRpcPromise(_0xa069xb,_0xa069xc,_0xa069xd){return  new BPromise(function(_0xa069xe,_0xa069xf){return client[_0x9cde[25]](_0xa069xb,_0xa069xd)[_0x9cde[24]](function(_0xa069x11){logger[_0x9cde[17]](_0x9cde[13],_0xa069xc,_0x9cde[16]);logger[_0x9cde[20]](_0x9cde[18],_0xa069xc,_0x9cde[16],JSON[_0x9cde[19]](_0xa069x11));if(_0xa069x11[_0x9cde[14]]){if(_0xa069x11[_0x9cde[14]][_0x9cde[21]]=== 500){logger[_0x9cde[14]](_0x9cde[13],_0xa069xc,_0xa069x11[_0x9cde[14]][_0x9cde[22]]);return _0xa069xf(_0xa069x11[_0x9cde[14]][_0x9cde[22]])};logger[_0x9cde[14]](_0x9cde[13],_0xa069xc,_0xa069x11[_0x9cde[14]][_0x9cde[22]]);return _0xa069xe(_0xa069x11[_0x9cde[14]][_0x9cde[22]])}else {logger[_0x9cde[17]](_0x9cde[13],_0xa069xc,_0x9cde[16]);_0xa069xe(_0xa069x11[_0x9cde[23]][_0x9cde[22]])}})[_0x9cde[15]](function(_0xa069x10){logger[_0x9cde[14]](_0x9cde[13],_0xa069xc,_0xa069x10);_0xa069xf(_0xa069x10)})})}
\ No newline at end of file
index 936c9f1..1316f12 100644 (file)
@@ -1 +1 @@
-var _0x23e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x23e9[0];var multer=require(_0x23e9[1]);var util=require(_0x23e9[2]);var path=require(_0x23e9[3]);var express=require(_0x23e9[4]);var router=express.Router();var auth=require(_0x23e9[5]);var config=require(_0x23e9[6]);var controller=require(_0x23e9[7]);router[_0x23e9[11]](_0x23e9[8],auth[_0x23e9[9]](),controller[_0x23e9[10]]);router[_0x23e9[11]](_0x23e9[12],auth[_0x23e9[9]](),controller[_0x23e9[13]]);router[_0x23e9[15]](_0x23e9[8],auth[_0x23e9[9]](),controller[_0x23e9[14]]);router[_0x23e9[17]](_0x23e9[12],auth[_0x23e9[9]](),controller[_0x23e9[16]]);router[_0x23e9[19]](_0x23e9[12],auth[_0x23e9[9]](),controller[_0x23e9[18]]);module[_0x23e9[20]]= router
\ No newline at end of file
+var _0xd2b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd2b3[0];var multer=require(_0xd2b3[1]);var util=require(_0xd2b3[2]);var path=require(_0xd2b3[3]);var express=require(_0xd2b3[4]);var router=express.Router();var auth=require(_0xd2b3[5]);var config=require(_0xd2b3[6]);var controller=require(_0xd2b3[7]);router[_0xd2b3[11]](_0xd2b3[8],auth[_0xd2b3[9]](),controller[_0xd2b3[10]]);router[_0xd2b3[11]](_0xd2b3[12],auth[_0xd2b3[9]](),controller[_0xd2b3[13]]);router[_0xd2b3[15]](_0xd2b3[8],auth[_0xd2b3[9]](),controller[_0xd2b3[14]]);router[_0xd2b3[17]](_0xd2b3[12],auth[_0xd2b3[9]](),controller[_0xd2b3[16]]);router[_0xd2b3[19]](_0xd2b3[12],auth[_0xd2b3[9]](),controller[_0xd2b3[18]]);module[_0xd2b3[20]]= router
\ No newline at end of file
index 9616780..cc7197a 100644 (file)
@@ -1 +1 @@
-var _0x78c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x78c2[0];var Sequelize=require(_0x78c2[1]);var moment=require(_0x78c2[2]);module[_0x78c2[3]]= {uniqueid:{type:Sequelize[_0x78c2[4]]},timeslot:{type:Sequelize[_0x78c2[5]]},from:{type:Sequelize[_0x78c2[4]]},accountid:{type:Sequelize[_0x78c2[4]]},accountname:{type:Sequelize[_0x78c2[4]]},accountnumber:{type:Sequelize[_0x78c2[4]]},application:{type:Sequelize[_0x78c2[4]]},memberid:{type:Sequelize[_0x78c2[5]]},membername:{type:Sequelize[_0x78c2[4]]},queue:{type:Sequelize[_0x78c2[5]]},queuename:{type:Sequelize[_0x78c2[4]]},roomid:{type:Sequelize[_0x78c2[5]]},messageid:{type:Sequelize[_0x78c2[5]]},reason:{type:Sequelize[_0x78c2[4]],defaultValue:_0x78c2[6]},connectid:{type:Sequelize[_0x78c2[4]],unique:_0x78c2[7],set:function(_0x9373x3){this[_0x78c2[8]](_0x78c2[7],_0x9373x3);this[_0x78c2[8]](_0x78c2[9],_0x78c2[10]);this[_0x78c2[8]](_0x78c2[11],moment()[_0x78c2[13]](_0x78c2[12]))}},calledAt:{type:Sequelize[_0x78c2[14]]},rejectedAt:{type:Sequelize[_0x78c2[14]],set:function(_0x9373x4){this[_0x78c2[8]](_0x78c2[15],_0x9373x4);this[_0x78c2[8]](_0x78c2[9],_0x78c2[16])}},connectedAt:{type:Sequelize[_0x78c2[14]]}}
\ No newline at end of file
+var _0xcdac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xcdac[0];var Sequelize=require(_0xcdac[1]);var moment=require(_0xcdac[2]);module[_0xcdac[3]]= {uniqueid:{type:Sequelize[_0xcdac[4]]},timeslot:{type:Sequelize[_0xcdac[5]]},from:{type:Sequelize[_0xcdac[4]]},accountid:{type:Sequelize[_0xcdac[4]]},accountname:{type:Sequelize[_0xcdac[4]]},accountnumber:{type:Sequelize[_0xcdac[4]]},application:{type:Sequelize[_0xcdac[4]]},memberid:{type:Sequelize[_0xcdac[5]]},membername:{type:Sequelize[_0xcdac[4]]},queue:{type:Sequelize[_0xcdac[5]]},queuename:{type:Sequelize[_0xcdac[4]]},roomid:{type:Sequelize[_0xcdac[5]]},messageid:{type:Sequelize[_0xcdac[5]]},reason:{type:Sequelize[_0xcdac[4]],defaultValue:_0xcdac[6]},connectid:{type:Sequelize[_0xcdac[4]],unique:_0xcdac[7],set:function(_0x4bb1x3){this[_0xcdac[8]](_0xcdac[7],_0x4bb1x3);this[_0xcdac[8]](_0xcdac[9],_0xcdac[10]);this[_0xcdac[8]](_0xcdac[11],moment()[_0xcdac[13]](_0xcdac[12]))}},calledAt:{type:Sequelize[_0xcdac[14]]},rejectedAt:{type:Sequelize[_0xcdac[14]],set:function(_0x4bb1x4){this[_0xcdac[8]](_0xcdac[15],_0x4bb1x4);this[_0xcdac[8]](_0xcdac[9],_0xcdac[16])}},connectedAt:{type:Sequelize[_0xcdac[14]]}}
\ No newline at end of file
index a761085..0183ee5 100644 (file)
@@ -1 +1 @@
-var _0x6734=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x6734[0];var jsonpatch=require(_0x6734[1]);var rp=require(_0x6734[2]);var moment=require(_0x6734[3]);var BPromise=require(_0x6734[4]);var util=require(_0x6734[5]);var path=require(_0x6734[6]);var sox=require(_0x6734[7]);var ejs=require(_0x6734[8]);var fs=require(_0x6734[9]);var _=require(_0x6734[10]);var squel=require(_0x6734[11]);var crypto=require(_0x6734[12]);var jsforce=require(_0x6734[13]);var toCsv=require(_0x6734[14]);var qs=require(_0x6734[15]);var logger=require(_0x6734[17])(_0x6734[16]);var utils=require(_0x6734[18]);var config=require(_0x6734[19]);var db=require(_0x6734[21])[_0x6734[20]];function respondWithStatusCode(_0x642bx15,_0x642bx16,_0x642bx17){_0x642bx16= _0x642bx16|| 204;return function(_0x642bx18){if(_0x642bx18){logger[_0x6734[24]](_0x6734[22],_0x642bx17,_0x642bx16,_0x6734[23]);logger[_0x6734[26]](_0x6734[25],_0x642bx17,_0x642bx16,_0x6734[23]);return _0x642bx15[_0x6734[27]](_0x642bx16)};return _0x642bx15[_0x6734[29]](304)[_0x6734[28]]()}}function respondWithResult(_0x642bx15,_0x642bx16,_0x642bx17){_0x642bx16= _0x642bx16|| 200;return function(_0x642bx18){if(_0x642bx18){logger[_0x6734[24]](_0x6734[22],_0x642bx17,_0x642bx16,_0x6734[30]);logger[_0x6734[26]](_0x6734[25],_0x642bx17,_0x642bx16,_0x6734[30],JSON[_0x6734[31]](_0x642bx18));return _0x642bx15[_0x6734[29]](_0x642bx16)[_0x6734[32]](_0x642bx18)};return _0x642bx15[_0x6734[29]](304)[_0x6734[28]]()}}function respondWithFilteredResult(_0x642bx15,_0x642bx1b,_0x642bx17){return function(_0x642bx18){if(_0x642bx18){var _0x642bx1c=_0x642bx18[_0x6734[33]],_0x642bx1d=_0x642bx1b[_0x6734[34]],_0x642bx1e=_0x642bx1b[_0x6734[34]]+ _0x642bx1b[_0x6734[35]],_0x642bx16;if(_0x642bx1e>= _0x642bx1c){_0x642bx1e= _0x642bx1c;_0x642bx16= 200}else {_0x642bx16= 206};_0x642bx15[_0x6734[29]](_0x642bx16);logger[_0x6734[24]](_0x6734[22],_0x642bx17,_0x642bx16,_0x6734[36]);logger[_0x6734[26]](_0x6734[25],_0x642bx17,_0x642bx16,_0x6734[30],JSON[_0x6734[31]](_0x642bx18));return _0x642bx15[_0x6734[40]](_0x6734[37],_0x642bx1d+ _0x6734[38]+ _0x642bx1e+ _0x6734[39]+ _0x642bx1c)[_0x6734[32]](_0x642bx18)};return null}}function patchUpdates(_0x642bx20){return function(_0x642bx18){try{jsonpatch[_0x6734[41]](_0x642bx18,_0x642bx20,true)}catch(err){return BPromise[_0x6734[42]](err)};return _0x642bx18[_0x6734[43]]()}}function saveUpdates(_0x642bx22,_0x642bx16,_0x642bx17){return function(_0x642bx18){if(_0x642bx18){return _0x642bx18[_0x6734[46]](_0x642bx22)[_0x6734[45]](function(_0x642bx23){logger[_0x6734[24]](_0x6734[22],_0x642bx17,_0x642bx16,_0x6734[44]);logger[_0x6734[26]](_0x6734[25],_0x642bx17,_0x642bx16,_0x6734[44],JSON[_0x6734[31]](_0x642bx18));return _0x642bx23})};return null}}function removeEntity(_0x642bx15,_0x642bx16,_0x642bx17){return function(_0x642bx18){if(_0x642bx18){return _0x642bx18[_0x6734[48]]()[_0x6734[45]](function(){logger[_0x6734[24]](_0x6734[22],_0x642bx17,_0x642bx16,_0x6734[47]);logger[_0x6734[26]](_0x6734[25],_0x642bx17,_0x642bx16,_0x6734[47],JSON[_0x6734[31]](_0x642bx18));_0x642bx15[_0x6734[29]](204)[_0x6734[28]]()})}}}function handleEntityNotFound(_0x642bx15,_0x642bx16,_0x642bx17){return function(_0x642bx18){if(!_0x642bx18){logger[_0x6734[50]](_0x6734[22],_0x642bx17,404,_0x6734[49]);_0x642bx15[_0x6734[29]](404)[_0x6734[28]]();return null};return _0x642bx18}}function handleError(_0x642bx15,_0x642bx16,_0x642bx17){_0x642bx16= _0x642bx16|| 500;return function(_0x642bx27){logger[_0x6734[50]](_0x6734[22],_0x642bx17,_0x642bx16,JSON[_0x6734[31]](_0x642bx27));delete _0x642bx27[_0x6734[51]];_0x642bx15[_0x6734[29]](_0x642bx16)[_0x6734[52]](_0x642bx27)}}exports[_0x6734[53]]= function(_0x642bx28,_0x642bx15){var _0x642bx1b={},_0x642bx29={};_0x642bx29[_0x6734[54]]= _[_0x6734[57]](db[_0x6734[56]][_0x6734[55]]);_0x642bx29[_0x6734[58]]= _[_0x6734[57]](_0x642bx28[_0x6734[58]]);_0x642bx29[_0x6734[59]]= _[_0x6734[60]](_0x642bx29[_0x6734[54]],_0x642bx29[_0x6734[58]]);_0x642bx1b[_0x6734[61]]= _[_0x6734[60]](_0x642bx29[_0x6734[54]],qs[_0x6734[62]](_0x642bx28[_0x6734[58]][_0x6734[62]]));_0x642bx1b[_0x6734[61]]= (_0x642bx1b[_0x6734[61]][_0x6734[63]])?_0x642bx1b[_0x6734[61]]:_0x642bx29[_0x6734[54]];if(!_0x642bx28[_0x6734[58]][_0x6734[65]](_0x6734[64])){_0x642bx1b[_0x6734[35]]= qs[_0x6734[35]](_0x642bx28[_0x6734[58]][_0x6734[35]]);_0x642bx1b[_0x6734[34]]= qs[_0x6734[34]](_0x642bx28[_0x6734[58]][_0x6734[34]])};_0x642bx1b[_0x6734[66]]= qs[_0x6734[67]](_0x642bx28[_0x6734[58]][_0x6734[67]]);_0x642bx1b[_0x6734[68]]= qs[_0x6734[59]](_[_0x6734[69]](_0x642bx28[_0x6734[58]],_0x642bx29[_0x6734[59]]));if(_0x642bx28[_0x6734[58]][_0x6734[70]]){_0x642bx1b[_0x6734[68]]= _[_0x6734[73]](_0x642bx1b[_0x6734[68]],{$or:_[_0x6734[72]](_0x642bx1b[_0x6734[61]],function(_0x642bx2a){var _0x642bx2b={};_0x642bx2b[_0x642bx2a]= {$like:_0x6734[71]+ _0x642bx28[_0x6734[58]][_0x6734[70]]+ _0x6734[71]};return _0x642bx2b})})};_0x642bx1b= _[_0x6734[73]]({},_0x642bx1b,_0x642bx28[_0x6734[74]]);return db[_0x6734[56]][_0x6734[76]](_0x642bx1b)[_0x6734[45]](respondWithFilteredResult(_0x642bx15,_0x642bx1b,_0x6734[53]))[_0x6734[75]](handleError(_0x642bx15,null,_0x6734[53]))};exports[_0x6734[77]]= function(_0x642bx28,_0x642bx15){var _0x642bx1b={raw:true,where:{id:_0x642bx28[_0x6734[79]][_0x6734[78]]}},_0x642bx29={};_0x642bx29[_0x6734[54]]= _[_0x6734[57]](db[_0x6734[56]][_0x6734[55]]);_0x642bx29[_0x6734[58]]= _[_0x6734[57]](_0x642bx28[_0x6734[58]]);_0x642bx29[_0x6734[59]]= _[_0x6734[60]](_0x642bx29[_0x6734[54]],_0x642bx29[_0x6734[58]]);_0x642bx1b[_0x6734[61]]= _[_0x6734[60]](_0x642bx29[_0x6734[54]],qs[_0x6734[62]](_0x642bx28[_0x6734[58]][_0x6734[62]]));_0x642bx1b[_0x6734[61]]= (_0x642bx1b[_0x6734[61]][_0x6734[63]])?_0x642bx1b[_0x6734[61]]:_0x642bx29[_0x6734[54]];_0x642bx1b= _[_0x6734[73]]({},_0x642bx1b,_0x642bx28[_0x6734[74]]);return db[_0x6734[56]][_0x6734[80]](_0x642bx1b)[_0x6734[45]](handleEntityNotFound(_0x642bx15,null,_0x6734[77]))[_0x6734[45]](respondWithResult(_0x642bx15,null,_0x6734[77]))[_0x6734[75]](handleError(_0x642bx15,null,_0x6734[77]))};exports[_0x6734[81]]= function(_0x642bx28,_0x642bx15){return db[_0x6734[56]][_0x6734[81]](_0x642bx28[_0x6734[82]],{})[_0x6734[45]](respondWithResult(_0x642bx15,201,_0x6734[81]))[_0x6734[75]](handleError(_0x642bx15,null,_0x6734[81]))};exports[_0x6734[46]]= function(_0x642bx28,_0x642bx15){if(_0x642bx28[_0x6734[82]][_0x6734[78]]){delete _0x642bx28[_0x6734[82]][_0x6734[78]]};return db[_0x6734[56]][_0x6734[80]]({where:{id:_0x642bx28[_0x6734[79]][_0x6734[78]]}})[_0x6734[45]](handleEntityNotFound(_0x642bx15,null,_0x6734[46]))[_0x6734[45]](saveUpdates(_0x642bx28[_0x6734[82]],null,_0x6734[46]))[_0x6734[45]](respondWithResult(_0x642bx15,null,_0x6734[46]))[_0x6734[75]](handleError(_0x642bx15,null,_0x6734[46]))};exports[_0x6734[48]]= function(_0x642bx28,_0x642bx15){return db[_0x6734[56]][_0x6734[80]]({where:{id:_0x642bx28[_0x6734[79]][_0x6734[78]]}})[_0x6734[45]](handleEntityNotFound(_0x642bx15,null,_0x6734[48]))[_0x6734[45]](removeEntity(_0x642bx15,null,_0x6734[48]))[_0x6734[75]](handleError(_0x642bx15,null,_0x6734[48]))}
\ No newline at end of file
+var _0x4a93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x4a93[0];var jsonpatch=require(_0x4a93[1]);var rp=require(_0x4a93[2]);var moment=require(_0x4a93[3]);var BPromise=require(_0x4a93[4]);var util=require(_0x4a93[5]);var path=require(_0x4a93[6]);var sox=require(_0x4a93[7]);var ejs=require(_0x4a93[8]);var fs=require(_0x4a93[9]);var _=require(_0x4a93[10]);var squel=require(_0x4a93[11]);var crypto=require(_0x4a93[12]);var jsforce=require(_0x4a93[13]);var toCsv=require(_0x4a93[14]);var qs=require(_0x4a93[15]);var logger=require(_0x4a93[17])(_0x4a93[16]);var utils=require(_0x4a93[18]);var config=require(_0x4a93[19]);var db=require(_0x4a93[21])[_0x4a93[20]];function respondWithStatusCode(_0x604fx15,_0x604fx16,_0x604fx17){_0x604fx16= _0x604fx16|| 204;return function(_0x604fx18){if(_0x604fx18){logger[_0x4a93[24]](_0x4a93[22],_0x604fx17,_0x604fx16,_0x4a93[23]);logger[_0x4a93[26]](_0x4a93[25],_0x604fx17,_0x604fx16,_0x4a93[23]);return _0x604fx15[_0x4a93[27]](_0x604fx16)};return _0x604fx15[_0x4a93[29]](304)[_0x4a93[28]]()}}function respondWithResult(_0x604fx15,_0x604fx16,_0x604fx17){_0x604fx16= _0x604fx16|| 200;return function(_0x604fx18){if(_0x604fx18){logger[_0x4a93[24]](_0x4a93[22],_0x604fx17,_0x604fx16,_0x4a93[30]);logger[_0x4a93[26]](_0x4a93[25],_0x604fx17,_0x604fx16,_0x4a93[30],JSON[_0x4a93[31]](_0x604fx18));return _0x604fx15[_0x4a93[29]](_0x604fx16)[_0x4a93[32]](_0x604fx18)};return _0x604fx15[_0x4a93[29]](304)[_0x4a93[28]]()}}function respondWithFilteredResult(_0x604fx15,_0x604fx1b,_0x604fx17){return function(_0x604fx18){if(_0x604fx18){var _0x604fx1c=_0x604fx18[_0x4a93[33]],_0x604fx1d=_0x604fx1b[_0x4a93[34]],_0x604fx1e=_0x604fx1b[_0x4a93[34]]+ _0x604fx1b[_0x4a93[35]],_0x604fx16;if(_0x604fx1e>= _0x604fx1c){_0x604fx1e= _0x604fx1c;_0x604fx16= 200}else {_0x604fx16= 206};_0x604fx15[_0x4a93[29]](_0x604fx16);logger[_0x4a93[24]](_0x4a93[22],_0x604fx17,_0x604fx16,_0x4a93[36]);logger[_0x4a93[26]](_0x4a93[25],_0x604fx17,_0x604fx16,_0x4a93[30],JSON[_0x4a93[31]](_0x604fx18));return _0x604fx15[_0x4a93[40]](_0x4a93[37],_0x604fx1d+ _0x4a93[38]+ _0x604fx1e+ _0x4a93[39]+ _0x604fx1c)[_0x4a93[32]](_0x604fx18)};return null}}function patchUpdates(_0x604fx20){return function(_0x604fx18){try{jsonpatch[_0x4a93[41]](_0x604fx18,_0x604fx20,true)}catch(err){return BPromise[_0x4a93[42]](err)};return _0x604fx18[_0x4a93[43]]()}}function saveUpdates(_0x604fx22,_0x604fx16,_0x604fx17){return function(_0x604fx18){if(_0x604fx18){return _0x604fx18[_0x4a93[46]](_0x604fx22)[_0x4a93[45]](function(_0x604fx23){logger[_0x4a93[24]](_0x4a93[22],_0x604fx17,_0x604fx16,_0x4a93[44]);logger[_0x4a93[26]](_0x4a93[25],_0x604fx17,_0x604fx16,_0x4a93[44],JSON[_0x4a93[31]](_0x604fx18));return _0x604fx23})};return null}}function removeEntity(_0x604fx15,_0x604fx16,_0x604fx17){return function(_0x604fx18){if(_0x604fx18){return _0x604fx18[_0x4a93[48]]()[_0x4a93[45]](function(){logger[_0x4a93[24]](_0x4a93[22],_0x604fx17,_0x604fx16,_0x4a93[47]);logger[_0x4a93[26]](_0x4a93[25],_0x604fx17,_0x604fx16,_0x4a93[47],JSON[_0x4a93[31]](_0x604fx18));_0x604fx15[_0x4a93[29]](204)[_0x4a93[28]]()})}}}function handleEntityNotFound(_0x604fx15,_0x604fx16,_0x604fx17){return function(_0x604fx18){if(!_0x604fx18){logger[_0x4a93[50]](_0x4a93[22],_0x604fx17,404,_0x4a93[49]);_0x604fx15[_0x4a93[29]](404)[_0x4a93[28]]();return null};return _0x604fx18}}function handleError(_0x604fx15,_0x604fx16,_0x604fx17){_0x604fx16= _0x604fx16|| 500;return function(_0x604fx27){logger[_0x4a93[50]](_0x4a93[22],_0x604fx17,_0x604fx16,JSON[_0x4a93[31]](_0x604fx27));delete _0x604fx27[_0x4a93[51]];_0x604fx15[_0x4a93[29]](_0x604fx16)[_0x4a93[52]](_0x604fx27)}}exports[_0x4a93[53]]= function(_0x604fx28,_0x604fx15){var _0x604fx1b={},_0x604fx29={};_0x604fx29[_0x4a93[54]]= _[_0x4a93[57]](db[_0x4a93[56]][_0x4a93[55]]);_0x604fx29[_0x4a93[58]]= _[_0x4a93[57]](_0x604fx28[_0x4a93[58]]);_0x604fx29[_0x4a93[59]]= _[_0x4a93[60]](_0x604fx29[_0x4a93[54]],_0x604fx29[_0x4a93[58]]);_0x604fx1b[_0x4a93[61]]= _[_0x4a93[60]](_0x604fx29[_0x4a93[54]],qs[_0x4a93[62]](_0x604fx28[_0x4a93[58]][_0x4a93[62]]));_0x604fx1b[_0x4a93[61]]= (_0x604fx1b[_0x4a93[61]][_0x4a93[63]])?_0x604fx1b[_0x4a93[61]]:_0x604fx29[_0x4a93[54]];if(!_0x604fx28[_0x4a93[58]][_0x4a93[65]](_0x4a93[64])){_0x604fx1b[_0x4a93[35]]= qs[_0x4a93[35]](_0x604fx28[_0x4a93[58]][_0x4a93[35]]);_0x604fx1b[_0x4a93[34]]= qs[_0x4a93[34]](_0x604fx28[_0x4a93[58]][_0x4a93[34]])};_0x604fx1b[_0x4a93[66]]= qs[_0x4a93[67]](_0x604fx28[_0x4a93[58]][_0x4a93[67]]);_0x604fx1b[_0x4a93[68]]= qs[_0x4a93[59]](_[_0x4a93[69]](_0x604fx28[_0x4a93[58]],_0x604fx29[_0x4a93[59]]));if(_0x604fx28[_0x4a93[58]][_0x4a93[70]]){_0x604fx1b[_0x4a93[68]]= _[_0x4a93[73]](_0x604fx1b[_0x4a93[68]],{$or:_[_0x4a93[72]](_0x604fx1b[_0x4a93[61]],function(_0x604fx2a){var _0x604fx2b={};_0x604fx2b[_0x604fx2a]= {$like:_0x4a93[71]+ _0x604fx28[_0x4a93[58]][_0x4a93[70]]+ _0x4a93[71]};return _0x604fx2b})})};_0x604fx1b= _[_0x4a93[73]]({},_0x604fx1b,_0x604fx28[_0x4a93[74]]);return db[_0x4a93[56]][_0x4a93[76]](_0x604fx1b)[_0x4a93[45]](respondWithFilteredResult(_0x604fx15,_0x604fx1b,_0x4a93[53]))[_0x4a93[75]](handleError(_0x604fx15,null,_0x4a93[53]))};exports[_0x4a93[77]]= function(_0x604fx28,_0x604fx15){var _0x604fx1b={raw:true,where:{id:_0x604fx28[_0x4a93[79]][_0x4a93[78]]}},_0x604fx29={};_0x604fx29[_0x4a93[54]]= _[_0x4a93[57]](db[_0x4a93[56]][_0x4a93[55]]);_0x604fx29[_0x4a93[58]]= _[_0x4a93[57]](_0x604fx28[_0x4a93[58]]);_0x604fx29[_0x4a93[59]]= _[_0x4a93[60]](_0x604fx29[_0x4a93[54]],_0x604fx29[_0x4a93[58]]);_0x604fx1b[_0x4a93[61]]= _[_0x4a93[60]](_0x604fx29[_0x4a93[54]],qs[_0x4a93[62]](_0x604fx28[_0x4a93[58]][_0x4a93[62]]));_0x604fx1b[_0x4a93[61]]= (_0x604fx1b[_0x4a93[61]][_0x4a93[63]])?_0x604fx1b[_0x4a93[61]]:_0x604fx29[_0x4a93[54]];_0x604fx1b= _[_0x4a93[73]]({},_0x604fx1b,_0x604fx28[_0x4a93[74]]);return db[_0x4a93[56]][_0x4a93[80]](_0x604fx1b)[_0x4a93[45]](handleEntityNotFound(_0x604fx15,null,_0x4a93[77]))[_0x4a93[45]](respondWithResult(_0x604fx15,null,_0x4a93[77]))[_0x4a93[75]](handleError(_0x604fx15,null,_0x4a93[77]))};exports[_0x4a93[81]]= function(_0x604fx28,_0x604fx15){return db[_0x4a93[56]][_0x4a93[81]](_0x604fx28[_0x4a93[82]],{})[_0x4a93[45]](respondWithResult(_0x604fx15,201,_0x4a93[81]))[_0x4a93[75]](handleError(_0x604fx15,null,_0x4a93[81]))};exports[_0x4a93[46]]= function(_0x604fx28,_0x604fx15){if(_0x604fx28[_0x4a93[82]][_0x4a93[78]]){delete _0x604fx28[_0x4a93[82]][_0x4a93[78]]};return db[_0x4a93[56]][_0x4a93[80]]({where:{id:_0x604fx28[_0x4a93[79]][_0x4a93[78]]}})[_0x4a93[45]](handleEntityNotFound(_0x604fx15,null,_0x4a93[46]))[_0x4a93[45]](saveUpdates(_0x604fx28[_0x4a93[82]],null,_0x4a93[46]))[_0x4a93[45]](respondWithResult(_0x604fx15,null,_0x4a93[46]))[_0x4a93[75]](handleError(_0x604fx15,null,_0x4a93[46]))};exports[_0x4a93[48]]= function(_0x604fx28,_0x604fx15){return db[_0x4a93[56]][_0x4a93[80]]({where:{id:_0x604fx28[_0x4a93[79]][_0x4a93[78]]}})[_0x4a93[45]](handleEntityNotFound(_0x604fx15,null,_0x4a93[48]))[_0x4a93[45]](removeEntity(_0x604fx15,null,_0x4a93[48]))[_0x4a93[75]](handleError(_0x604fx15,null,_0x4a93[48]))}
\ No newline at end of file
index 4ce8bf2..7e77631 100644 (file)
@@ -1 +1 @@
-var _0x48f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x48f1[0];var _=require(_0x48f1[1]);var util=require(_0x48f1[2]);var logger=require(_0x48f1[4])(_0x48f1[3]);var attributes=require(_0x48f1[5]);module[_0x48f1[6]]= function(_0x742bx5,_0x742bx6){return _0x742bx5[_0x48f1[9]](_0x48f1[7],attributes,{tableName:_0x48f1[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4a11=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x4a11[0];var _=require(_0x4a11[1]);var util=require(_0x4a11[2]);var logger=require(_0x4a11[4])(_0x4a11[3]);var attributes=require(_0x4a11[5]);module[_0x4a11[6]]= function(_0xeab1x5,_0xeab1x6){return _0xeab1x5[_0x4a11[9]](_0x4a11[7],attributes,{tableName:_0x4a11[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 3bc84d9..edb77a7 100644 (file)
@@ -1 +1 @@
-var _0x1000=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1000[0];var _=require(_0x1000[1]);var util=require(_0x1000[2]);var moment=require(_0x1000[3]);var BPromise=require(_0x1000[4]);var db=require(_0x1000[6])[_0x1000[5]];var utils=require(_0x1000[7]);var logger=require(_0x1000[9])(_0x1000[8]);var jayson=require(_0x1000[10]);var client=jayson[_0x1000[12]][_0x1000[11]]({port:9002});function respondWithRpcPromise(_0xc7c6xb,_0xc7c6xc,_0xc7c6xd){return  new BPromise(function(_0xc7c6xe,_0xc7c6xf){return client[_0x1000[25]](_0xc7c6xb,_0xc7c6xd)[_0x1000[24]](function(_0xc7c6x11){logger[_0x1000[17]](_0x1000[13],_0xc7c6xc,_0x1000[16]);logger[_0x1000[20]](_0x1000[18],_0xc7c6xc,_0x1000[16],JSON[_0x1000[19]](_0xc7c6x11));if(_0xc7c6x11[_0x1000[14]]){if(_0xc7c6x11[_0x1000[14]][_0x1000[21]]=== 500){logger[_0x1000[14]](_0x1000[13],_0xc7c6xc,_0xc7c6x11[_0x1000[14]][_0x1000[22]]);return _0xc7c6xf(_0xc7c6x11[_0x1000[14]][_0x1000[22]])};logger[_0x1000[14]](_0x1000[13],_0xc7c6xc,_0xc7c6x11[_0x1000[14]][_0x1000[22]]);return _0xc7c6xe(_0xc7c6x11[_0x1000[14]][_0x1000[22]])}else {logger[_0x1000[17]](_0x1000[13],_0xc7c6xc,_0x1000[16]);_0xc7c6xe(_0xc7c6x11[_0x1000[23]][_0x1000[22]])}})[_0x1000[15]](function(_0xc7c6x10){logger[_0x1000[14]](_0x1000[13],_0xc7c6xc,_0xc7c6x10);_0xc7c6xf(_0xc7c6x10)})})}
\ No newline at end of file
+var _0xc78a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc78a[0];var _=require(_0xc78a[1]);var util=require(_0xc78a[2]);var moment=require(_0xc78a[3]);var BPromise=require(_0xc78a[4]);var db=require(_0xc78a[6])[_0xc78a[5]];var utils=require(_0xc78a[7]);var logger=require(_0xc78a[9])(_0xc78a[8]);var jayson=require(_0xc78a[10]);var client=jayson[_0xc78a[12]][_0xc78a[11]]({port:9002});function respondWithRpcPromise(_0x699fxb,_0x699fxc,_0x699fxd){return  new BPromise(function(_0x699fxe,_0x699fxf){return client[_0xc78a[25]](_0x699fxb,_0x699fxd)[_0xc78a[24]](function(_0x699fx11){logger[_0xc78a[17]](_0xc78a[13],_0x699fxc,_0xc78a[16]);logger[_0xc78a[20]](_0xc78a[18],_0x699fxc,_0xc78a[16],JSON[_0xc78a[19]](_0x699fx11));if(_0x699fx11[_0xc78a[14]]){if(_0x699fx11[_0xc78a[14]][_0xc78a[21]]=== 500){logger[_0xc78a[14]](_0xc78a[13],_0x699fxc,_0x699fx11[_0xc78a[14]][_0xc78a[22]]);return _0x699fxf(_0x699fx11[_0xc78a[14]][_0xc78a[22]])};logger[_0xc78a[14]](_0xc78a[13],_0x699fxc,_0x699fx11[_0xc78a[14]][_0xc78a[22]]);return _0x699fxe(_0x699fx11[_0xc78a[14]][_0xc78a[22]])}else {logger[_0xc78a[17]](_0xc78a[13],_0x699fxc,_0xc78a[16]);_0x699fxe(_0x699fx11[_0xc78a[23]][_0xc78a[22]])}})[_0xc78a[15]](function(_0x699fx10){logger[_0xc78a[14]](_0xc78a[13],_0x699fxc,_0x699fx10);_0x699fxf(_0x699fx10)})})}
\ No newline at end of file
index 9492f95..1e48256 100644 (file)
@@ -1 +1 @@
-var _0xceb6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xceb6[0];var multer=require(_0xceb6[1]);var util=require(_0xceb6[2]);var path=require(_0xceb6[3]);var express=require(_0xceb6[4]);var router=express.Router();var auth=require(_0xceb6[5]);var config=require(_0xceb6[6]);var controller=require(_0xceb6[7]);router[_0xceb6[11]](_0xceb6[8],auth[_0xceb6[9]](),controller[_0xceb6[10]]);router[_0xceb6[11]](_0xceb6[12],auth[_0xceb6[9]](),controller[_0xceb6[13]]);router[_0xceb6[11]](_0xceb6[14],auth[_0xceb6[9]](),controller[_0xceb6[15]]);router[_0xceb6[17]](_0xceb6[8],auth[_0xceb6[9]](),controller[_0xceb6[16]]);router[_0xceb6[19]](_0xceb6[14],auth[_0xceb6[9]](),controller[_0xceb6[18]]);router[_0xceb6[21]](_0xceb6[14],auth[_0xceb6[9]](),controller[_0xceb6[20]]);module[_0xceb6[22]]= router
\ No newline at end of file
+var _0xa04e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa04e[0];var multer=require(_0xa04e[1]);var util=require(_0xa04e[2]);var path=require(_0xa04e[3]);var express=require(_0xa04e[4]);var router=express.Router();var auth=require(_0xa04e[5]);var config=require(_0xa04e[6]);var controller=require(_0xa04e[7]);router[_0xa04e[11]](_0xa04e[8],auth[_0xa04e[9]](),controller[_0xa04e[10]]);router[_0xa04e[11]](_0xa04e[12],auth[_0xa04e[9]](),controller[_0xa04e[13]]);router[_0xa04e[11]](_0xa04e[14],auth[_0xa04e[9]](),controller[_0xa04e[15]]);router[_0xa04e[17]](_0xa04e[8],auth[_0xa04e[9]](),controller[_0xa04e[16]]);router[_0xa04e[19]](_0xa04e[14],auth[_0xa04e[9]](),controller[_0xa04e[18]]);router[_0xa04e[21]](_0xa04e[14],auth[_0xa04e[9]](),controller[_0xa04e[20]]);module[_0xa04e[22]]= router
\ No newline at end of file
index 8a59e7c..a72b2ce 100644 (file)
@@ -1 +1 @@
-var _0xbc47=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0xbc47[0];var Sequelize=require(_0xbc47[1]);module[_0xbc47[2]]= {uniqueid:{type:Sequelize[_0xbc47[3]]},subject:{type:Sequelize[_0xbc47[3]]},accountid:{type:Sequelize[_0xbc47[3]]},accountname:{type:Sequelize[_0xbc47[3]]},accountaddress:{type:Sequelize[_0xbc47[3]]},application:{type:Sequelize[_0xbc47[3]]},memberid:{type:Sequelize[_0xbc47[3]]},membername:{type:Sequelize[_0xbc47[3]]},queue:{type:Sequelize[_0xbc47[4]]},queuename:{type:Sequelize[_0xbc47[3]]},roomid:{type:Sequelize[_0xbc47[4]]},fidelity:{type:Sequelize[_0xbc47[4]],defaultValue:0},joinAt:{type:Sequelize[_0xbc47[5]]},leaveAt:{type:Sequelize[_0xbc47[5]]},completeAt:{type:Sequelize[_0xbc47[5]]},complete:{type:Sequelize[_0xbc47[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0xbc47[7])},timeout:{type:Sequelize[_0xbc47[6]],defaultValue:false},timeslot:{type:Sequelize[_0xbc47[4]]}}
\ No newline at end of file
+var _0x83b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x83b4[0];var Sequelize=require(_0x83b4[1]);module[_0x83b4[2]]= {uniqueid:{type:Sequelize[_0x83b4[3]]},subject:{type:Sequelize[_0x83b4[3]]},accountid:{type:Sequelize[_0x83b4[3]]},accountname:{type:Sequelize[_0x83b4[3]]},accountaddress:{type:Sequelize[_0x83b4[3]]},application:{type:Sequelize[_0x83b4[3]]},memberid:{type:Sequelize[_0x83b4[3]]},membername:{type:Sequelize[_0x83b4[3]]},queue:{type:Sequelize[_0x83b4[4]]},queuename:{type:Sequelize[_0x83b4[3]]},roomid:{type:Sequelize[_0x83b4[4]]},fidelity:{type:Sequelize[_0x83b4[4]],defaultValue:0},joinAt:{type:Sequelize[_0x83b4[5]]},leaveAt:{type:Sequelize[_0x83b4[5]]},completeAt:{type:Sequelize[_0x83b4[5]]},complete:{type:Sequelize[_0x83b4[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x83b4[7])},timeout:{type:Sequelize[_0x83b4[6]],defaultValue:false},timeslot:{type:Sequelize[_0x83b4[4]]}}
\ No newline at end of file
index 4c427f6..159724a 100644 (file)
@@ -1 +1 @@
-var _0x4916=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x4916[0];var jsonpatch=require(_0x4916[1]);var rp=require(_0x4916[2]);var moment=require(_0x4916[3]);var BPromise=require(_0x4916[4]);var util=require(_0x4916[5]);var path=require(_0x4916[6]);var sox=require(_0x4916[7]);var ejs=require(_0x4916[8]);var fs=require(_0x4916[9]);var _=require(_0x4916[10]);var squel=require(_0x4916[11]);var crypto=require(_0x4916[12]);var jsforce=require(_0x4916[13]);var toCsv=require(_0x4916[14]);var qs=require(_0x4916[15]);var logger=require(_0x4916[17])(_0x4916[16]);var utils=require(_0x4916[18]);var config=require(_0x4916[19]);var db=require(_0x4916[21])[_0x4916[20]];function respondWithStatusCode(_0xf95dx15,_0xf95dx16,_0xf95dx17){_0xf95dx16= _0xf95dx16|| 204;return function(_0xf95dx18){if(_0xf95dx18){logger[_0x4916[24]](_0x4916[22],_0xf95dx17,_0xf95dx16,_0x4916[23]);logger[_0x4916[26]](_0x4916[25],_0xf95dx17,_0xf95dx16,_0x4916[23]);return _0xf95dx15[_0x4916[27]](_0xf95dx16)};return _0xf95dx15[_0x4916[29]](304)[_0x4916[28]]()}}function respondWithResult(_0xf95dx15,_0xf95dx16,_0xf95dx17){_0xf95dx16= _0xf95dx16|| 200;return function(_0xf95dx18){if(_0xf95dx18){logger[_0x4916[24]](_0x4916[22],_0xf95dx17,_0xf95dx16,_0x4916[30]);logger[_0x4916[26]](_0x4916[25],_0xf95dx17,_0xf95dx16,_0x4916[30],JSON[_0x4916[31]](_0xf95dx18));return _0xf95dx15[_0x4916[29]](_0xf95dx16)[_0x4916[32]](_0xf95dx18)};return _0xf95dx15[_0x4916[29]](304)[_0x4916[28]]()}}function respondWithFilteredResult(_0xf95dx15,_0xf95dx1b,_0xf95dx17){return function(_0xf95dx18){if(_0xf95dx18){var _0xf95dx1c=_0xf95dx18[_0x4916[33]],_0xf95dx1d=_0xf95dx1b[_0x4916[34]],_0xf95dx1e=_0xf95dx1b[_0x4916[34]]+ _0xf95dx1b[_0x4916[35]],_0xf95dx16;if(_0xf95dx1e>= _0xf95dx1c){_0xf95dx1e= _0xf95dx1c;_0xf95dx16= 200}else {_0xf95dx16= 206};_0xf95dx15[_0x4916[29]](_0xf95dx16);logger[_0x4916[24]](_0x4916[22],_0xf95dx17,_0xf95dx16,_0x4916[36]);logger[_0x4916[26]](_0x4916[25],_0xf95dx17,_0xf95dx16,_0x4916[30],JSON[_0x4916[31]](_0xf95dx18));return _0xf95dx15[_0x4916[40]](_0x4916[37],_0xf95dx1d+ _0x4916[38]+ _0xf95dx1e+ _0x4916[39]+ _0xf95dx1c)[_0x4916[32]](_0xf95dx18)};return null}}function patchUpdates(_0xf95dx20){return function(_0xf95dx18){try{jsonpatch[_0x4916[41]](_0xf95dx18,_0xf95dx20,true)}catch(err){return BPromise[_0x4916[42]](err)};return _0xf95dx18[_0x4916[43]]()}}function saveUpdates(_0xf95dx22,_0xf95dx16,_0xf95dx17){return function(_0xf95dx18){if(_0xf95dx18){return _0xf95dx18[_0x4916[46]](_0xf95dx22)[_0x4916[45]](function(_0xf95dx23){logger[_0x4916[24]](_0x4916[22],_0xf95dx17,_0xf95dx16,_0x4916[44]);logger[_0x4916[26]](_0x4916[25],_0xf95dx17,_0xf95dx16,_0x4916[44],JSON[_0x4916[31]](_0xf95dx18));return _0xf95dx23})};return null}}function removeEntity(_0xf95dx15,_0xf95dx16,_0xf95dx17){return function(_0xf95dx18){if(_0xf95dx18){return _0xf95dx18[_0x4916[48]]()[_0x4916[45]](function(){logger[_0x4916[24]](_0x4916[22],_0xf95dx17,_0xf95dx16,_0x4916[47]);logger[_0x4916[26]](_0x4916[25],_0xf95dx17,_0xf95dx16,_0x4916[47],JSON[_0x4916[31]](_0xf95dx18));_0xf95dx15[_0x4916[29]](204)[_0x4916[28]]()})}}}function handleEntityNotFound(_0xf95dx15,_0xf95dx16,_0xf95dx17){return function(_0xf95dx18){if(!_0xf95dx18){logger[_0x4916[50]](_0x4916[22],_0xf95dx17,404,_0x4916[49]);_0xf95dx15[_0x4916[29]](404)[_0x4916[28]]();return null};return _0xf95dx18}}function handleError(_0xf95dx15,_0xf95dx16,_0xf95dx17){_0xf95dx16= _0xf95dx16|| 500;return function(_0xf95dx27){logger[_0x4916[50]](_0x4916[22],_0xf95dx17,_0xf95dx16,JSON[_0x4916[31]](_0xf95dx27));delete _0xf95dx27[_0x4916[51]];_0xf95dx15[_0x4916[29]](_0xf95dx16)[_0x4916[52]](_0xf95dx27)}}exports[_0x4916[53]]= function(_0xf95dx28,_0xf95dx15){var _0xf95dx1b={raw:true},_0xf95dx29={};_0xf95dx29[_0x4916[54]]= _[_0x4916[57]](db[_0x4916[56]][_0x4916[55]]);_0xf95dx29[_0x4916[58]]= _[_0x4916[57]](_0xf95dx28[_0x4916[58]]);_0xf95dx29[_0x4916[59]]= _[_0x4916[60]](_0xf95dx29[_0x4916[54]],_0xf95dx29[_0x4916[58]]);_0xf95dx1b[_0x4916[61]]= _[_0x4916[60]](_0xf95dx29[_0x4916[54]],qs[_0x4916[62]](_0xf95dx28[_0x4916[58]][_0x4916[62]]));_0xf95dx1b[_0x4916[61]]= (_0xf95dx1b[_0x4916[61]][_0x4916[63]])?_0xf95dx1b[_0x4916[61]]:_0xf95dx29[_0x4916[54]];if(!_0xf95dx28[_0x4916[58]][_0x4916[65]](_0x4916[64])){_0xf95dx1b[_0x4916[35]]= qs[_0x4916[35]](_0xf95dx28[_0x4916[58]][_0x4916[35]]);_0xf95dx1b[_0x4916[34]]= qs[_0x4916[34]](_0xf95dx28[_0x4916[58]][_0x4916[34]])};_0xf95dx1b[_0x4916[66]]= qs[_0x4916[67]](_0xf95dx28[_0x4916[58]][_0x4916[67]]);_0xf95dx1b[_0x4916[68]]= qs[_0x4916[59]](_[_0x4916[69]](_0xf95dx28[_0x4916[58]],_0xf95dx29[_0x4916[59]]));if(_0xf95dx28[_0x4916[58]][_0x4916[70]]){_0xf95dx1b[_0x4916[68]]= _[_0x4916[73]](_0xf95dx1b[_0x4916[68]],{$or:_[_0x4916[72]](_0xf95dx1b[_0x4916[61]],function(_0xf95dx2a){var _0xf95dx2b={};_0xf95dx2b[_0xf95dx2a]= {$like:_0x4916[71]+ _0xf95dx28[_0x4916[58]][_0x4916[70]]+ _0x4916[71]};return _0xf95dx2b})})};_0xf95dx1b= _[_0x4916[73]]({},_0xf95dx1b,_0xf95dx28[_0x4916[74]]);return db[_0x4916[56]][_0x4916[76]](_0xf95dx1b)[_0x4916[45]](respondWithFilteredResult(_0xf95dx15,_0xf95dx1b,_0x4916[53]))[_0x4916[75]](handleError(_0xf95dx15,null,_0x4916[53]))};exports[_0x4916[77]]= function(_0xf95dx28,_0xf95dx15){var _0xf95dx1b={raw:true,where:{id:_0xf95dx28[_0x4916[79]][_0x4916[78]]}},_0xf95dx29={};_0xf95dx29[_0x4916[54]]= _[_0x4916[57]](db[_0x4916[56]][_0x4916[55]]);_0xf95dx29[_0x4916[58]]= _[_0x4916[57]](_0xf95dx28[_0x4916[58]]);_0xf95dx29[_0x4916[59]]= _[_0x4916[60]](_0xf95dx29[_0x4916[54]],_0xf95dx29[_0x4916[58]]);_0xf95dx1b[_0x4916[61]]= _[_0x4916[60]](_0xf95dx29[_0x4916[54]],qs[_0x4916[62]](_0xf95dx28[_0x4916[58]][_0x4916[62]]));_0xf95dx1b[_0x4916[61]]= (_0xf95dx1b[_0x4916[61]][_0x4916[63]])?_0xf95dx1b[_0x4916[61]]:_0xf95dx29[_0x4916[54]];_0xf95dx1b= _[_0x4916[73]]({},_0xf95dx1b,_0xf95dx28[_0x4916[74]]);return db[_0x4916[56]][_0x4916[80]](_0xf95dx1b)[_0x4916[45]](handleEntityNotFound(_0xf95dx15,null,_0x4916[77]))[_0x4916[45]](respondWithResult(_0xf95dx15,null,_0x4916[77]))[_0x4916[75]](handleError(_0xf95dx15,null,_0x4916[77]))};exports[_0x4916[81]]= function(_0xf95dx28,_0xf95dx15){return db[_0x4916[56]][_0x4916[81]](_0xf95dx28[_0x4916[82]],{})[_0x4916[45]](respondWithResult(_0xf95dx15,201,_0x4916[81]))[_0x4916[75]](handleError(_0xf95dx15,null,_0x4916[81]))};exports[_0x4916[46]]= function(_0xf95dx28,_0xf95dx15){if(_0xf95dx28[_0x4916[82]][_0x4916[78]]){delete _0xf95dx28[_0x4916[82]][_0x4916[78]]};return db[_0x4916[56]][_0x4916[80]]({where:{id:_0xf95dx28[_0x4916[79]][_0x4916[78]]}})[_0x4916[45]](handleEntityNotFound(_0xf95dx15,null,_0x4916[46]))[_0x4916[45]](saveUpdates(_0xf95dx28[_0x4916[82]],null,_0x4916[46]))[_0x4916[45]](respondWithResult(_0xf95dx15,null,_0x4916[46]))[_0x4916[75]](handleError(_0xf95dx15,null,_0x4916[46]))};exports[_0x4916[48]]= function(_0xf95dx28,_0xf95dx15){return db[_0x4916[56]][_0x4916[80]]({where:{id:_0xf95dx28[_0x4916[79]][_0x4916[78]]}})[_0x4916[45]](handleEntityNotFound(_0xf95dx15,null,_0x4916[48]))[_0x4916[45]](removeEntity(_0xf95dx15,null,_0x4916[48]))[_0x4916[75]](handleError(_0xf95dx15,null,_0x4916[48]))};exports[_0x4916[83]]= function(_0xf95dx28,_0xf95dx15){return db[_0x4916[56]][_0x4916[83]]()[_0x4916[45]](respondWithResult(_0xf95dx15,null,_0x4916[83]))[_0x4916[75]](handleError(_0xf95dx15,null,_0x4916[83]))}
\ No newline at end of file
+var _0x2987=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x2987[0];var jsonpatch=require(_0x2987[1]);var rp=require(_0x2987[2]);var moment=require(_0x2987[3]);var BPromise=require(_0x2987[4]);var util=require(_0x2987[5]);var path=require(_0x2987[6]);var sox=require(_0x2987[7]);var ejs=require(_0x2987[8]);var fs=require(_0x2987[9]);var _=require(_0x2987[10]);var squel=require(_0x2987[11]);var crypto=require(_0x2987[12]);var jsforce=require(_0x2987[13]);var toCsv=require(_0x2987[14]);var qs=require(_0x2987[15]);var logger=require(_0x2987[17])(_0x2987[16]);var utils=require(_0x2987[18]);var config=require(_0x2987[19]);var db=require(_0x2987[21])[_0x2987[20]];function respondWithStatusCode(_0xf276x15,_0xf276x16,_0xf276x17){_0xf276x16= _0xf276x16|| 204;return function(_0xf276x18){if(_0xf276x18){logger[_0x2987[24]](_0x2987[22],_0xf276x17,_0xf276x16,_0x2987[23]);logger[_0x2987[26]](_0x2987[25],_0xf276x17,_0xf276x16,_0x2987[23]);return _0xf276x15[_0x2987[27]](_0xf276x16)};return _0xf276x15[_0x2987[29]](304)[_0x2987[28]]()}}function respondWithResult(_0xf276x15,_0xf276x16,_0xf276x17){_0xf276x16= _0xf276x16|| 200;return function(_0xf276x18){if(_0xf276x18){logger[_0x2987[24]](_0x2987[22],_0xf276x17,_0xf276x16,_0x2987[30]);logger[_0x2987[26]](_0x2987[25],_0xf276x17,_0xf276x16,_0x2987[30],JSON[_0x2987[31]](_0xf276x18));return _0xf276x15[_0x2987[29]](_0xf276x16)[_0x2987[32]](_0xf276x18)};return _0xf276x15[_0x2987[29]](304)[_0x2987[28]]()}}function respondWithFilteredResult(_0xf276x15,_0xf276x1b,_0xf276x17){return function(_0xf276x18){if(_0xf276x18){var _0xf276x1c=_0xf276x18[_0x2987[33]],_0xf276x1d=_0xf276x1b[_0x2987[34]],_0xf276x1e=_0xf276x1b[_0x2987[34]]+ _0xf276x1b[_0x2987[35]],_0xf276x16;if(_0xf276x1e>= _0xf276x1c){_0xf276x1e= _0xf276x1c;_0xf276x16= 200}else {_0xf276x16= 206};_0xf276x15[_0x2987[29]](_0xf276x16);logger[_0x2987[24]](_0x2987[22],_0xf276x17,_0xf276x16,_0x2987[36]);logger[_0x2987[26]](_0x2987[25],_0xf276x17,_0xf276x16,_0x2987[30],JSON[_0x2987[31]](_0xf276x18));return _0xf276x15[_0x2987[40]](_0x2987[37],_0xf276x1d+ _0x2987[38]+ _0xf276x1e+ _0x2987[39]+ _0xf276x1c)[_0x2987[32]](_0xf276x18)};return null}}function patchUpdates(_0xf276x20){return function(_0xf276x18){try{jsonpatch[_0x2987[41]](_0xf276x18,_0xf276x20,true)}catch(err){return BPromise[_0x2987[42]](err)};return _0xf276x18[_0x2987[43]]()}}function saveUpdates(_0xf276x22,_0xf276x16,_0xf276x17){return function(_0xf276x18){if(_0xf276x18){return _0xf276x18[_0x2987[46]](_0xf276x22)[_0x2987[45]](function(_0xf276x23){logger[_0x2987[24]](_0x2987[22],_0xf276x17,_0xf276x16,_0x2987[44]);logger[_0x2987[26]](_0x2987[25],_0xf276x17,_0xf276x16,_0x2987[44],JSON[_0x2987[31]](_0xf276x18));return _0xf276x23})};return null}}function removeEntity(_0xf276x15,_0xf276x16,_0xf276x17){return function(_0xf276x18){if(_0xf276x18){return _0xf276x18[_0x2987[48]]()[_0x2987[45]](function(){logger[_0x2987[24]](_0x2987[22],_0xf276x17,_0xf276x16,_0x2987[47]);logger[_0x2987[26]](_0x2987[25],_0xf276x17,_0xf276x16,_0x2987[47],JSON[_0x2987[31]](_0xf276x18));_0xf276x15[_0x2987[29]](204)[_0x2987[28]]()})}}}function handleEntityNotFound(_0xf276x15,_0xf276x16,_0xf276x17){return function(_0xf276x18){if(!_0xf276x18){logger[_0x2987[50]](_0x2987[22],_0xf276x17,404,_0x2987[49]);_0xf276x15[_0x2987[29]](404)[_0x2987[28]]();return null};return _0xf276x18}}function handleError(_0xf276x15,_0xf276x16,_0xf276x17){_0xf276x16= _0xf276x16|| 500;return function(_0xf276x27){logger[_0x2987[50]](_0x2987[22],_0xf276x17,_0xf276x16,JSON[_0x2987[31]](_0xf276x27));delete _0xf276x27[_0x2987[51]];_0xf276x15[_0x2987[29]](_0xf276x16)[_0x2987[52]](_0xf276x27)}}exports[_0x2987[53]]= function(_0xf276x28,_0xf276x15){var _0xf276x1b={raw:true},_0xf276x29={};_0xf276x29[_0x2987[54]]= _[_0x2987[57]](db[_0x2987[56]][_0x2987[55]]);_0xf276x29[_0x2987[58]]= _[_0x2987[57]](_0xf276x28[_0x2987[58]]);_0xf276x29[_0x2987[59]]= _[_0x2987[60]](_0xf276x29[_0x2987[54]],_0xf276x29[_0x2987[58]]);_0xf276x1b[_0x2987[61]]= _[_0x2987[60]](_0xf276x29[_0x2987[54]],qs[_0x2987[62]](_0xf276x28[_0x2987[58]][_0x2987[62]]));_0xf276x1b[_0x2987[61]]= (_0xf276x1b[_0x2987[61]][_0x2987[63]])?_0xf276x1b[_0x2987[61]]:_0xf276x29[_0x2987[54]];if(!_0xf276x28[_0x2987[58]][_0x2987[65]](_0x2987[64])){_0xf276x1b[_0x2987[35]]= qs[_0x2987[35]](_0xf276x28[_0x2987[58]][_0x2987[35]]);_0xf276x1b[_0x2987[34]]= qs[_0x2987[34]](_0xf276x28[_0x2987[58]][_0x2987[34]])};_0xf276x1b[_0x2987[66]]= qs[_0x2987[67]](_0xf276x28[_0x2987[58]][_0x2987[67]]);_0xf276x1b[_0x2987[68]]= qs[_0x2987[59]](_[_0x2987[69]](_0xf276x28[_0x2987[58]],_0xf276x29[_0x2987[59]]));if(_0xf276x28[_0x2987[58]][_0x2987[70]]){_0xf276x1b[_0x2987[68]]= _[_0x2987[73]](_0xf276x1b[_0x2987[68]],{$or:_[_0x2987[72]](_0xf276x1b[_0x2987[61]],function(_0xf276x2a){var _0xf276x2b={};_0xf276x2b[_0xf276x2a]= {$like:_0x2987[71]+ _0xf276x28[_0x2987[58]][_0x2987[70]]+ _0x2987[71]};return _0xf276x2b})})};_0xf276x1b= _[_0x2987[73]]({},_0xf276x1b,_0xf276x28[_0x2987[74]]);return db[_0x2987[56]][_0x2987[76]](_0xf276x1b)[_0x2987[45]](respondWithFilteredResult(_0xf276x15,_0xf276x1b,_0x2987[53]))[_0x2987[75]](handleError(_0xf276x15,null,_0x2987[53]))};exports[_0x2987[77]]= function(_0xf276x28,_0xf276x15){var _0xf276x1b={raw:true,where:{id:_0xf276x28[_0x2987[79]][_0x2987[78]]}},_0xf276x29={};_0xf276x29[_0x2987[54]]= _[_0x2987[57]](db[_0x2987[56]][_0x2987[55]]);_0xf276x29[_0x2987[58]]= _[_0x2987[57]](_0xf276x28[_0x2987[58]]);_0xf276x29[_0x2987[59]]= _[_0x2987[60]](_0xf276x29[_0x2987[54]],_0xf276x29[_0x2987[58]]);_0xf276x1b[_0x2987[61]]= _[_0x2987[60]](_0xf276x29[_0x2987[54]],qs[_0x2987[62]](_0xf276x28[_0x2987[58]][_0x2987[62]]));_0xf276x1b[_0x2987[61]]= (_0xf276x1b[_0x2987[61]][_0x2987[63]])?_0xf276x1b[_0x2987[61]]:_0xf276x29[_0x2987[54]];_0xf276x1b= _[_0x2987[73]]({},_0xf276x1b,_0xf276x28[_0x2987[74]]);return db[_0x2987[56]][_0x2987[80]](_0xf276x1b)[_0x2987[45]](handleEntityNotFound(_0xf276x15,null,_0x2987[77]))[_0x2987[45]](respondWithResult(_0xf276x15,null,_0x2987[77]))[_0x2987[75]](handleError(_0xf276x15,null,_0x2987[77]))};exports[_0x2987[81]]= function(_0xf276x28,_0xf276x15){return db[_0x2987[56]][_0x2987[81]](_0xf276x28[_0x2987[82]],{})[_0x2987[45]](respondWithResult(_0xf276x15,201,_0x2987[81]))[_0x2987[75]](handleError(_0xf276x15,null,_0x2987[81]))};exports[_0x2987[46]]= function(_0xf276x28,_0xf276x15){if(_0xf276x28[_0x2987[82]][_0x2987[78]]){delete _0xf276x28[_0x2987[82]][_0x2987[78]]};return db[_0x2987[56]][_0x2987[80]]({where:{id:_0xf276x28[_0x2987[79]][_0x2987[78]]}})[_0x2987[45]](handleEntityNotFound(_0xf276x15,null,_0x2987[46]))[_0x2987[45]](saveUpdates(_0xf276x28[_0x2987[82]],null,_0x2987[46]))[_0x2987[45]](respondWithResult(_0xf276x15,null,_0x2987[46]))[_0x2987[75]](handleError(_0xf276x15,null,_0x2987[46]))};exports[_0x2987[48]]= function(_0xf276x28,_0xf276x15){return db[_0x2987[56]][_0x2987[80]]({where:{id:_0xf276x28[_0x2987[79]][_0x2987[78]]}})[_0x2987[45]](handleEntityNotFound(_0xf276x15,null,_0x2987[48]))[_0x2987[45]](removeEntity(_0xf276x15,null,_0x2987[48]))[_0x2987[75]](handleError(_0xf276x15,null,_0x2987[48]))};exports[_0x2987[83]]= function(_0xf276x28,_0xf276x15){return db[_0x2987[56]][_0x2987[83]]()[_0x2987[45]](respondWithResult(_0xf276x15,null,_0x2987[83]))[_0x2987[75]](handleError(_0xf276x15,null,_0x2987[83]))}
\ No newline at end of file
index 39206d4..05ef4ff 100644 (file)
@@ -1 +1 @@
-var _0x7aaf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x6D\x73\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x7aaf[0];var _=require(_0x7aaf[1]);var util=require(_0x7aaf[2]);var logger=require(_0x7aaf[4])(_0x7aaf[3]);var attributes=require(_0x7aaf[5]);module[_0x7aaf[6]]= function(_0xb907x5,_0xb907x6){return _0xb907x5[_0x7aaf[9]](_0x7aaf[7],attributes,{tableName:_0x7aaf[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x9cf9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x6D\x73\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x9cf9[0];var _=require(_0x9cf9[1]);var util=require(_0x9cf9[2]);var logger=require(_0x9cf9[4])(_0x9cf9[3]);var attributes=require(_0x9cf9[5]);module[_0x9cf9[6]]= function(_0x5c25x5,_0x5c25x6){return _0x5c25x5[_0x9cf9[9]](_0x9cf9[7],attributes,{tableName:_0x9cf9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 84b9bf5..24c6fec 100644 (file)
@@ -1 +1 @@
-var _0xe9ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe9ec[0];var _=require(_0xe9ec[1]);var util=require(_0xe9ec[2]);var moment=require(_0xe9ec[3]);var BPromise=require(_0xe9ec[4]);var db=require(_0xe9ec[6])[_0xe9ec[5]];var utils=require(_0xe9ec[7]);var logger=require(_0xe9ec[9])(_0xe9ec[8]);var jayson=require(_0xe9ec[10]);var client=jayson[_0xe9ec[12]][_0xe9ec[11]]({port:9002});function respondWithRpcPromise(_0xc05dxb,_0xc05dxc,_0xc05dxd){return  new BPromise(function(_0xc05dxe,_0xc05dxf){return client[_0xe9ec[25]](_0xc05dxb,_0xc05dxd)[_0xe9ec[24]](function(_0xc05dx11){logger[_0xe9ec[17]](_0xe9ec[13],_0xc05dxc,_0xe9ec[16]);logger[_0xe9ec[20]](_0xe9ec[18],_0xc05dxc,_0xe9ec[16],JSON[_0xe9ec[19]](_0xc05dx11));if(_0xc05dx11[_0xe9ec[14]]){if(_0xc05dx11[_0xe9ec[14]][_0xe9ec[21]]=== 500){logger[_0xe9ec[14]](_0xe9ec[13],_0xc05dxc,_0xc05dx11[_0xe9ec[14]][_0xe9ec[22]]);return _0xc05dxf(_0xc05dx11[_0xe9ec[14]][_0xe9ec[22]])};logger[_0xe9ec[14]](_0xe9ec[13],_0xc05dxc,_0xc05dx11[_0xe9ec[14]][_0xe9ec[22]]);return _0xc05dxe(_0xc05dx11[_0xe9ec[14]][_0xe9ec[22]])}else {logger[_0xe9ec[17]](_0xe9ec[13],_0xc05dxc,_0xe9ec[16]);_0xc05dxe(_0xc05dx11[_0xe9ec[23]][_0xe9ec[22]])}})[_0xe9ec[15]](function(_0xc05dx10){logger[_0xe9ec[14]](_0xe9ec[13],_0xc05dxc,_0xc05dx10);_0xc05dxf(_0xc05dx10)})})}
\ No newline at end of file
+var _0x6a54=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6a54[0];var _=require(_0x6a54[1]);var util=require(_0x6a54[2]);var moment=require(_0x6a54[3]);var BPromise=require(_0x6a54[4]);var db=require(_0x6a54[6])[_0x6a54[5]];var utils=require(_0x6a54[7]);var logger=require(_0x6a54[9])(_0x6a54[8]);var jayson=require(_0x6a54[10]);var client=jayson[_0x6a54[12]][_0x6a54[11]]({port:9002});function respondWithRpcPromise(_0xf256xb,_0xf256xc,_0xf256xd){return  new BPromise(function(_0xf256xe,_0xf256xf){return client[_0x6a54[25]](_0xf256xb,_0xf256xd)[_0x6a54[24]](function(_0xf256x11){logger[_0x6a54[17]](_0x6a54[13],_0xf256xc,_0x6a54[16]);logger[_0x6a54[20]](_0x6a54[18],_0xf256xc,_0x6a54[16],JSON[_0x6a54[19]](_0xf256x11));if(_0xf256x11[_0x6a54[14]]){if(_0xf256x11[_0x6a54[14]][_0x6a54[21]]=== 500){logger[_0x6a54[14]](_0x6a54[13],_0xf256xc,_0xf256x11[_0x6a54[14]][_0x6a54[22]]);return _0xf256xf(_0xf256x11[_0x6a54[14]][_0x6a54[22]])};logger[_0x6a54[14]](_0x6a54[13],_0xf256xc,_0xf256x11[_0x6a54[14]][_0x6a54[22]]);return _0xf256xe(_0xf256x11[_0x6a54[14]][_0x6a54[22]])}else {logger[_0x6a54[17]](_0x6a54[13],_0xf256xc,_0x6a54[16]);_0xf256xe(_0xf256x11[_0x6a54[23]][_0x6a54[22]])}})[_0x6a54[15]](function(_0xf256x10){logger[_0x6a54[14]](_0x6a54[13],_0xf256xc,_0xf256x10);_0xf256xf(_0xf256x10)})})}
\ No newline at end of file
index 692da0a..8edc20f 100644 (file)
@@ -1 +1 @@
-var _0x571b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C\x2F","\x6A\x6F\x69\x6E","\x25\x73\x2D\x25\x73\x25\x73","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x6E\x6F\x77","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x571b[0];var multer=require(_0x571b[1]);var util=require(_0x571b[2]);var path=require(_0x571b[3]);var express=require(_0x571b[4]);var router=express.Router();var auth=require(_0x571b[5]);var config=require(_0x571b[6]);var controller=require(_0x571b[7]);router[_0x571b[11]](_0x571b[8],auth[_0x571b[9]](),controller[_0x571b[10]]);router[_0x571b[11]](_0x571b[12],auth[_0x571b[9]](),controller[_0x571b[13]]);router[_0x571b[11]](_0x571b[14],controller[_0x571b[15]]);var upload=multer({storage:multer[_0x571b[25]]({destination:function(_0xe14bxa,_0xe14bxb,_0xe14bxc){_0xe14bxc(null,path[_0x571b[18]](config[_0x571b[16]],_0x571b[17]))},filename:function(_0xe14bxa,_0xe14bxb,_0xe14bxc){_0xe14bxc(null,util[_0x571b[24]](_0x571b[19],path[_0x571b[22]](_0xe14bxb[_0x571b[20]],path[_0x571b[21]](_0xe14bxb[_0x571b[20]])),Date[_0x571b[23]](),path[_0x571b[21]](_0xe14bxb[_0x571b[20]])))}})});router[_0x571b[29]](_0x571b[8],upload[_0x571b[27]](_0x571b[26]),controller[_0x571b[28]]);router[_0x571b[31]](_0x571b[12],auth[_0x571b[9]](),controller[_0x571b[30]]);router[_0x571b[32]](_0x571b[12],auth[_0x571b[9]](),controller[_0x571b[32]]);module[_0x571b[33]]= router
\ No newline at end of file
+var _0xe165=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C\x2F","\x6A\x6F\x69\x6E","\x25\x73\x2D\x25\x73\x25\x73","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x6E\x6F\x77","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe165[0];var multer=require(_0xe165[1]);var util=require(_0xe165[2]);var path=require(_0xe165[3]);var express=require(_0xe165[4]);var router=express.Router();var auth=require(_0xe165[5]);var config=require(_0xe165[6]);var controller=require(_0xe165[7]);router[_0xe165[11]](_0xe165[8],auth[_0xe165[9]](),controller[_0xe165[10]]);router[_0xe165[11]](_0xe165[12],auth[_0xe165[9]](),controller[_0xe165[13]]);router[_0xe165[11]](_0xe165[14],controller[_0xe165[15]]);var upload=multer({storage:multer[_0xe165[25]]({destination:function(_0xec25xa,_0xec25xb,_0xec25xc){_0xec25xc(null,path[_0xe165[18]](config[_0xe165[16]],_0xe165[17]))},filename:function(_0xec25xa,_0xec25xb,_0xec25xc){_0xec25xc(null,util[_0xe165[24]](_0xe165[19],path[_0xe165[22]](_0xec25xb[_0xe165[20]],path[_0xe165[21]](_0xec25xb[_0xe165[20]])),Date[_0xe165[23]](),path[_0xe165[21]](_0xec25xb[_0xe165[20]])))}})});router[_0xe165[29]](_0xe165[8],upload[_0xe165[27]](_0xe165[26]),controller[_0xe165[28]]);router[_0xe165[31]](_0xe165[12],auth[_0xe165[9]](),controller[_0xe165[30]]);router[_0xe165[32]](_0xe165[12],auth[_0xe165[9]](),controller[_0xe165[32]]);module[_0xe165[33]]= router
\ No newline at end of file
index f48d507..6be8374 100644 (file)
@@ -1 +1 @@
-var _0x4248=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","","\x46\x4C\x4F\x41\x54","\x42\x49\x47\x49\x4E\x54","\x49\x4E\x54\x45\x47\x45\x52"];_0x4248[0];var Sequelize=require(_0x4248[1]);module[_0x4248[2]]= {name:{type:Sequelize[_0x4248[3]]},save_name:{type:Sequelize[_0x4248[3]]},display_name:{type:Sequelize[_0x4248[3]],defaultValue:_0x4248[4]},description:{type:Sequelize[_0x4248[3]]},original_format:{type:Sequelize[_0x4248[3]]},original_duration:{type:Sequelize[_0x4248[5]]},original_sampleCount:{type:Sequelize[_0x4248[6]]},original_channelCount:{type:Sequelize[_0x4248[7]]},original_bitRate:{type:Sequelize[_0x4248[6]]},original_sampleRate:{type:Sequelize[_0x4248[7]]},converted_format:{type:Sequelize[_0x4248[3]]},converted_duration:{type:Sequelize[_0x4248[5]]},converted_sampleCount:{type:Sequelize[_0x4248[6]]},converted_channelCount:{type:Sequelize[_0x4248[7]]},converted_bitRate:{type:Sequelize[_0x4248[6]]},converted_sampleRate:{type:Sequelize[_0x4248[7]]}}
\ No newline at end of file
+var _0x60ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","","\x46\x4C\x4F\x41\x54","\x42\x49\x47\x49\x4E\x54","\x49\x4E\x54\x45\x47\x45\x52"];_0x60ea[0];var Sequelize=require(_0x60ea[1]);module[_0x60ea[2]]= {name:{type:Sequelize[_0x60ea[3]]},save_name:{type:Sequelize[_0x60ea[3]]},display_name:{type:Sequelize[_0x60ea[3]],defaultValue:_0x60ea[4]},description:{type:Sequelize[_0x60ea[3]]},original_format:{type:Sequelize[_0x60ea[3]]},original_duration:{type:Sequelize[_0x60ea[5]]},original_sampleCount:{type:Sequelize[_0x60ea[6]]},original_channelCount:{type:Sequelize[_0x60ea[7]]},original_bitRate:{type:Sequelize[_0x60ea[6]]},original_sampleRate:{type:Sequelize[_0x60ea[7]]},converted_format:{type:Sequelize[_0x60ea[3]]},converted_duration:{type:Sequelize[_0x60ea[5]]},converted_sampleCount:{type:Sequelize[_0x60ea[6]]},converted_channelCount:{type:Sequelize[_0x60ea[7]]},converted_bitRate:{type:Sequelize[_0x60ea[6]]},converted_sampleRate:{type:Sequelize[_0x60ea[7]]}}
\ No newline at end of file
index b5ad781..c0966b9 100644 (file)
@@ -1 +1 @@
-var _0xb9c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6F\x75\x6E\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x2E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x53\x6F\x75\x6E\x64\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x25\x73\x2E\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x77\x61\x76","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x53\x6F\x75\x6E\x64\x20\x75\x70\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65\x70\x61\x74\x68\x3A\x20\x25\x73","\x53\x6F\x75\x6E\x64\x20\x75\x70\x6C\x6F\x61\x64\x20\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x3A\x20\x25\x73","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x6F\x6E","\x73\x72\x63","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x62\x69\x74\x52\x61\x74\x65","\x62\x69\x74\x52\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x64\x65\x73\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x62\x69\x74\x52\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x63\x72\x61\x74\x65","\x73\x74\x61\x72\x74","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x6C\x65\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x66\x6F\x72\x6D\x61\x74","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63"];_0xb9c2[0];var jsonpatch=require(_0xb9c2[1]);var rp=require(_0xb9c2[2]);var moment=require(_0xb9c2[3]);var BPromise=require(_0xb9c2[4]);var util=require(_0xb9c2[5]);var path=require(_0xb9c2[6]);var sox=require(_0xb9c2[7]);var ejs=require(_0xb9c2[8]);var fs=require(_0xb9c2[9]);var _=require(_0xb9c2[10]);var squel=require(_0xb9c2[11]);var crypto=require(_0xb9c2[12]);var jsforce=require(_0xb9c2[13]);var toCsv=require(_0xb9c2[14]);var qs=require(_0xb9c2[15]);var logger=require(_0xb9c2[17])(_0xb9c2[16]);var utils=require(_0xb9c2[18]);var config=require(_0xb9c2[19]);var db=require(_0xb9c2[21])[_0xb9c2[20]];function respondWithStatusCode(_0x3d36x15,_0x3d36x16,_0x3d36x17){_0x3d36x16= _0x3d36x16|| 204;return function(_0x3d36x18){if(_0x3d36x18){logger[_0xb9c2[24]](_0xb9c2[22],_0x3d36x17,_0x3d36x16,_0xb9c2[23]);logger[_0xb9c2[26]](_0xb9c2[25],_0x3d36x17,_0x3d36x16,_0xb9c2[23]);return _0x3d36x15[_0xb9c2[27]](_0x3d36x16)};return _0x3d36x15[_0xb9c2[29]](304)[_0xb9c2[28]]()}}function respondWithResult(_0x3d36x15,_0x3d36x16,_0x3d36x17){_0x3d36x16= _0x3d36x16|| 200;return function(_0x3d36x18){if(_0x3d36x18){logger[_0xb9c2[24]](_0xb9c2[22],_0x3d36x17,_0x3d36x16,_0xb9c2[30]);logger[_0xb9c2[26]](_0xb9c2[25],_0x3d36x17,_0x3d36x16,_0xb9c2[30],JSON[_0xb9c2[31]](_0x3d36x18));return _0x3d36x15[_0xb9c2[29]](_0x3d36x16)[_0xb9c2[32]](_0x3d36x18)};return _0x3d36x15[_0xb9c2[29]](304)[_0xb9c2[28]]()}}function respondWithFilteredResult(_0x3d36x15,_0x3d36x1b,_0x3d36x17){return function(_0x3d36x18){if(_0x3d36x18){var _0x3d36x1c=_0x3d36x18[_0xb9c2[33]],_0x3d36x1d=_0x3d36x1b[_0xb9c2[34]],_0x3d36x1e=_0x3d36x1b[_0xb9c2[34]]+ _0x3d36x1b[_0xb9c2[35]],_0x3d36x16;if(_0x3d36x1e>= _0x3d36x1c){_0x3d36x1e= _0x3d36x1c;_0x3d36x16= 200}else {_0x3d36x16= 206};_0x3d36x15[_0xb9c2[29]](_0x3d36x16);logger[_0xb9c2[24]](_0xb9c2[22],_0x3d36x17,_0x3d36x16,_0xb9c2[36]);logger[_0xb9c2[26]](_0xb9c2[25],_0x3d36x17,_0x3d36x16,_0xb9c2[30],JSON[_0xb9c2[31]](_0x3d36x18));return _0x3d36x15[_0xb9c2[40]](_0xb9c2[37],_0x3d36x1d+ _0xb9c2[38]+ _0x3d36x1e+ _0xb9c2[39]+ _0x3d36x1c)[_0xb9c2[32]](_0x3d36x18)};return null}}function patchUpdates(_0x3d36x20){return function(_0x3d36x18){try{jsonpatch[_0xb9c2[41]](_0x3d36x18,_0x3d36x20,true)}catch(err){return BPromise[_0xb9c2[42]](err)};return _0x3d36x18[_0xb9c2[43]]()}}function saveUpdates(_0x3d36x22,_0x3d36x16,_0x3d36x17){return function(_0x3d36x18){if(_0x3d36x18){return _0x3d36x18[_0xb9c2[46]](_0x3d36x22)[_0xb9c2[45]](function(_0x3d36x23){logger[_0xb9c2[24]](_0xb9c2[22],_0x3d36x17,_0x3d36x16,_0xb9c2[44]);logger[_0xb9c2[26]](_0xb9c2[25],_0x3d36x17,_0x3d36x16,_0xb9c2[44],JSON[_0xb9c2[31]](_0x3d36x18));return _0x3d36x23})};return null}}function removeEntity(_0x3d36x15,_0x3d36x16,_0x3d36x17){return function(_0x3d36x18){if(_0x3d36x18){return _0x3d36x18[_0xb9c2[48]]()[_0xb9c2[45]](function(){logger[_0xb9c2[24]](_0xb9c2[22],_0x3d36x17,_0x3d36x16,_0xb9c2[47]);logger[_0xb9c2[26]](_0xb9c2[25],_0x3d36x17,_0x3d36x16,_0xb9c2[47],JSON[_0xb9c2[31]](_0x3d36x18));_0x3d36x15[_0xb9c2[29]](204)[_0xb9c2[28]]()})}}}function handleEntityNotFound(_0x3d36x15,_0x3d36x16,_0x3d36x17){return function(_0x3d36x18){if(!_0x3d36x18){logger[_0xb9c2[50]](_0xb9c2[22],_0x3d36x17,404,_0xb9c2[49]);_0x3d36x15[_0xb9c2[29]](404)[_0xb9c2[28]]();return null};return _0x3d36x18}}function handleError(_0x3d36x15,_0x3d36x16,_0x3d36x17){_0x3d36x16= _0x3d36x16|| 500;return function(_0x3d36x27){logger[_0xb9c2[50]](_0xb9c2[22],_0x3d36x17,_0x3d36x16,JSON[_0xb9c2[31]](_0x3d36x27));delete _0x3d36x27[_0xb9c2[51]];_0x3d36x15[_0xb9c2[29]](_0x3d36x16)[_0xb9c2[52]](_0x3d36x27)}}exports[_0xb9c2[53]]= function(_0x3d36x28,_0x3d36x15){var _0x3d36x1b={},_0x3d36x29={};_0x3d36x29[_0xb9c2[54]]= _[_0xb9c2[57]](db[_0xb9c2[56]][_0xb9c2[55]]);_0x3d36x29[_0xb9c2[58]]= _[_0xb9c2[57]](_0x3d36x28[_0xb9c2[58]]);_0x3d36x29[_0xb9c2[59]]= _[_0xb9c2[60]](_0x3d36x29[_0xb9c2[54]],_0x3d36x29[_0xb9c2[58]]);_0x3d36x1b[_0xb9c2[61]]= _[_0xb9c2[60]](_0x3d36x29[_0xb9c2[54]],qs[_0xb9c2[62]](_0x3d36x28[_0xb9c2[58]][_0xb9c2[62]]));_0x3d36x1b[_0xb9c2[61]]= (_0x3d36x1b[_0xb9c2[61]][_0xb9c2[63]])?_0x3d36x1b[_0xb9c2[61]]:_0x3d36x29[_0xb9c2[54]];if(!_0x3d36x28[_0xb9c2[58]][_0xb9c2[65]](_0xb9c2[64])){_0x3d36x1b[_0xb9c2[35]]= qs[_0xb9c2[35]](_0x3d36x28[_0xb9c2[58]][_0xb9c2[35]]);_0x3d36x1b[_0xb9c2[34]]= qs[_0xb9c2[34]](_0x3d36x28[_0xb9c2[58]][_0xb9c2[34]])};_0x3d36x1b[_0xb9c2[66]]= qs[_0xb9c2[67]](_0x3d36x28[_0xb9c2[58]][_0xb9c2[67]]);_0x3d36x1b[_0xb9c2[68]]= qs[_0xb9c2[59]](_[_0xb9c2[69]](_0x3d36x28[_0xb9c2[58]],_0x3d36x29[_0xb9c2[59]]));if(_0x3d36x28[_0xb9c2[58]][_0xb9c2[70]]){_0x3d36x1b[_0xb9c2[68]]= _[_0xb9c2[73]](_0x3d36x1b[_0xb9c2[68]],{$or:_[_0xb9c2[72]](_0x3d36x1b[_0xb9c2[61]],function(_0x3d36x2a){var _0x3d36x2b={};_0x3d36x2b[_0x3d36x2a]= {$like:_0xb9c2[71]+ _0x3d36x28[_0xb9c2[58]][_0xb9c2[70]]+ _0xb9c2[71]};return _0x3d36x2b})})};_0x3d36x1b= _[_0xb9c2[73]]({},_0x3d36x1b,_0x3d36x28[_0xb9c2[74]]);return db[_0xb9c2[56]][_0xb9c2[76]](_0x3d36x1b)[_0xb9c2[45]](respondWithFilteredResult(_0x3d36x15,_0x3d36x1b,_0xb9c2[53]))[_0xb9c2[75]](handleError(_0x3d36x15,null,_0xb9c2[53]))};exports[_0xb9c2[77]]= function(_0x3d36x28,_0x3d36x15){var _0x3d36x1b={raw:true,where:{id:_0x3d36x28[_0xb9c2[79]][_0xb9c2[78]]}},_0x3d36x29={};_0x3d36x29[_0xb9c2[54]]= _[_0xb9c2[57]](db[_0xb9c2[56]][_0xb9c2[55]]);_0x3d36x29[_0xb9c2[58]]= _[_0xb9c2[57]](_0x3d36x28[_0xb9c2[58]]);_0x3d36x29[_0xb9c2[59]]= _[_0xb9c2[60]](_0x3d36x29[_0xb9c2[54]],_0x3d36x29[_0xb9c2[58]]);_0x3d36x1b[_0xb9c2[61]]= _[_0xb9c2[60]](_0x3d36x29[_0xb9c2[54]],qs[_0xb9c2[62]](_0x3d36x28[_0xb9c2[58]][_0xb9c2[62]]));_0x3d36x1b[_0xb9c2[61]]= (_0x3d36x1b[_0xb9c2[61]][_0xb9c2[63]])?_0x3d36x1b[_0xb9c2[61]]:_0x3d36x29[_0xb9c2[54]];_0x3d36x1b= _[_0xb9c2[73]]({},_0x3d36x1b,_0x3d36x28[_0xb9c2[74]]);return db[_0xb9c2[56]][_0xb9c2[80]](_0x3d36x1b)[_0xb9c2[45]](handleEntityNotFound(_0x3d36x15,null,_0xb9c2[77]))[_0xb9c2[45]](respondWithResult(_0x3d36x15,null,_0xb9c2[77]))[_0xb9c2[75]](handleError(_0x3d36x15,null,_0xb9c2[77]))};exports[_0xb9c2[81]]= function(_0x3d36x28,_0x3d36x15,_0x3d36x2c){return db[_0xb9c2[56]][_0xb9c2[80]]({where:{id:_0x3d36x28[_0xb9c2[79]][_0xb9c2[78]]},attributes:[_0xb9c2[51],_0xb9c2[85],_0xb9c2[87]],raw:true})[_0xb9c2[45]](handleEntityNotFound(_0x3d36x15,null,_0xb9c2[81]))[_0xb9c2[45]](function(_0x3d36x18){if(_0x3d36x18){logger[_0xb9c2[24]](_0xb9c2[82],_0xb9c2[81],_0xb9c2[30]);logger[_0xb9c2[26]](_0xb9c2[22],_0xb9c2[81],_0xb9c2[30],JSON[_0xb9c2[31]](_0x3d36x18));if(!fs[_0xb9c2[89]](path[_0xb9c2[88]](config[_0xb9c2[83]],_0xb9c2[84],_0x3d36x18[_0xb9c2[85]]+ _0xb9c2[86]+ _0x3d36x18[_0xb9c2[87]]))){throw  new db[_0xb9c2[91]].ValidationError(_0xb9c2[90])};return _0x3d36x15[_0xb9c2[81]](path[_0xb9c2[88]](config[_0xb9c2[83]],_0xb9c2[84],util[_0xb9c2[93]](_0xb9c2[92],_0x3d36x18[_0xb9c2[85]],_0x3d36x18[_0xb9c2[87]])),util[_0xb9c2[93]](_0xb9c2[92],_0x3d36x18[_0xb9c2[51]],_0x3d36x18[_0xb9c2[87]]))};return null})[_0xb9c2[75]](handleError(_0x3d36x15,null,_0xb9c2[77]))};exports[_0xb9c2[94]]= function(_0x3d36x28,_0x3d36x15,_0x3d36x2c){var _0x3d36x2d={name:path[_0xb9c2[98]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[95]],path[_0xb9c2[97]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[95]])),save_name:path[_0xb9c2[98]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[99]],path[_0xb9c2[97]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[99]])),original_format:path[_0xb9c2[97]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[95]])[_0xb9c2[100]](1),converted_format:_0xb9c2[101]};var _0x3d36x2e=path[_0xb9c2[88]](config[_0xb9c2[83]],_0xb9c2[102],_0x3d36x28[_0xb9c2[96]][_0xb9c2[99]]);var _0x3d36x2f=path[_0xb9c2[88]](config[_0xb9c2[83]],_0xb9c2[84],util[_0xb9c2[93]](_0xb9c2[92],path[_0xb9c2[98]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[99]],path[_0xb9c2[97]](_0x3d36x28[_0xb9c2[96]][_0xb9c2[99]])),_0x3d36x2d[_0xb9c2[87]]));logger[_0xb9c2[24]](_0xb9c2[103],_0x3d36x2e);logger[_0xb9c2[24]](_0xb9c2[104],_0x3d36x2f);try{fs[_0xb9c2[106]](_0x3d36x2e,parseInt(_0xb9c2[105],8));var _0x3d36x30=sox[_0xb9c2[107]](_0x3d36x2e,_0x3d36x2f,{sampleRate:8000,format:_0xb9c2[101],channelCount:1,bitRate:192* 1024,compressionQuality:5});_0x3d36x30[_0xb9c2[108]](_0xb9c2[50],function(_0x3d36x27){_0x3d36x15[_0xb9c2[29]](500)[_0xb9c2[52]](_0x3d36x27)});_0x3d36x30[_0xb9c2[108]](_0xb9c2[109],function(_0x3d36x31){_0x3d36x2d[_0xb9c2[110]]= isNaN(_0x3d36x31[_0xb9c2[111]])?null:_0x3d36x31[_0xb9c2[111]]* 1000;_0x3d36x2d[_0xb9c2[112]]= isNaN(_0x3d36x31[_0xb9c2[113]])?null:_0x3d36x31[_0xb9c2[113]];_0x3d36x2d[_0xb9c2[114]]= isNaN(_0x3d36x31[_0xb9c2[115]])?null:_0x3d36x31[_0xb9c2[115]];_0x3d36x2d[_0xb9c2[116]]= isNaN(_0x3d36x31[_0xb9c2[117]])?null:_0x3d36x31[_0xb9c2[117]];_0x3d36x2d[_0xb9c2[118]]= isNaN(_0x3d36x31[_0xb9c2[119]])?null:_0x3d36x31[_0xb9c2[119]]});_0x3d36x30[_0xb9c2[108]](_0xb9c2[120],function(_0x3d36x31){_0x3d36x2d[_0xb9c2[121]]= isNaN(_0x3d36x31[_0xb9c2[111]])?null:_0x3d36x31[_0xb9c2[111]]* 1000;_0x3d36x2d[_0xb9c2[122]]= isNaN(_0x3d36x31[_0xb9c2[113]])?null:_0x3d36x31[_0xb9c2[113]];_0x3d36x2d[_0xb9c2[123]]= isNaN(_0x3d36x31[_0xb9c2[115]])?null:_0x3d36x31[_0xb9c2[115]];_0x3d36x2d[_0xb9c2[124]]= isNaN(_0x3d36x31[_0xb9c2[117]])?null:_0x3d36x31[_0xb9c2[117]];_0x3d36x2d[_0xb9c2[125]]= isNaN(_0x3d36x31[_0xb9c2[119]])?null:_0x3d36x31[_0xb9c2[119]]});_0x3d36x30[_0xb9c2[108]](_0xb9c2[28],function(){fs[_0xb9c2[106]](_0x3d36x2f,parseInt(_0xb9c2[105],8));return db[_0xb9c2[56]][_0xb9c2[94]](_0x3d36x2d)[_0xb9c2[45]](respondWithResult(_0x3d36x15,null,_0xb9c2[94]))[_0xb9c2[75]](handleError(_0x3d36x15,null,_0xb9c2[126]))});_0x3d36x30[_0xb9c2[127]]()}catch(err){_0x3d36x15[_0xb9c2[29]](500)[_0xb9c2[52]](err)}};exports[_0xb9c2[46]]= function(_0x3d36x28,_0x3d36x15,_0x3d36x2c){return db[_0xb9c2[56]][_0xb9c2[80]]({where:{id:_0x3d36x28[_0xb9c2[79]][_0xb9c2[78]]}})[_0xb9c2[45]](handleEntityNotFound(_0x3d36x15,null,_0xb9c2[46]))[_0xb9c2[45]](saveUpdates(_[_0xb9c2[69]](_0x3d36x28[_0xb9c2[128]],[_0xb9c2[51],_0xb9c2[129]]),null,_0xb9c2[46]))[_0xb9c2[45]](respondWithResult(_0x3d36x15,null,_0xb9c2[46]))[_0xb9c2[75]](handleError(_0x3d36x15,null,_0xb9c2[46]))};exports[_0xb9c2[130]]= function(_0x3d36x28,_0x3d36x15,_0x3d36x2c){return db[_0xb9c2[56]][_0xb9c2[80]]({where:{id:_0x3d36x28[_0xb9c2[79]][_0xb9c2[78]]}})[_0xb9c2[45]](function(_0x3d36x18){if(_0x3d36x18){return _0x3d36x18[_0xb9c2[48]]()}})[_0xb9c2[45]](function(_0x3d36x18){var _0x3d36x32=path[_0xb9c2[88]](config[_0xb9c2[83]],_0xb9c2[102],util[_0xb9c2[93]](_0xb9c2[92],_0x3d36x18[_0xb9c2[85]],_0x3d36x18[_0xb9c2[131]]));var _0x3d36x33=path[_0xb9c2[88]](config[_0xb9c2[83]],_0xb9c2[84],util[_0xb9c2[93]](_0xb9c2[92],_0x3d36x18[_0xb9c2[85]],_0x3d36x18[_0xb9c2[87]]));fs[_0xb9c2[132]](_0x3d36x32);fs[_0xb9c2[132]](_0x3d36x33);return _0x3d36x18})[_0xb9c2[45]](function(_0x3d36x18){if(_0x3d36x18){return _0x3d36x15[_0xb9c2[29]](204)[_0xb9c2[28]]()}})[_0xb9c2[45]](handleEntityNotFound(_0x3d36x15,null,_0xb9c2[130]))[_0xb9c2[75]](handleError(_0x3d36x15,null,_0xb9c2[130]))}
\ No newline at end of file
+var _0x6874=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6F\x75\x6E\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x2E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x53\x6F\x75\x6E\x64\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x25\x73\x2E\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x77\x61\x76","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x53\x6F\x75\x6E\x64\x20\x75\x70\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65\x70\x61\x74\x68\x3A\x20\x25\x73","\x53\x6F\x75\x6E\x64\x20\x75\x70\x6C\x6F\x61\x64\x20\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x3A\x20\x25\x73","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x6F\x6E","\x73\x72\x63","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x62\x69\x74\x52\x61\x74\x65","\x62\x69\x74\x52\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x64\x65\x73\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x62\x69\x74\x52\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x63\x72\x61\x74\x65","\x73\x74\x61\x72\x74","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x6C\x65\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x66\x6F\x72\x6D\x61\x74","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63"];_0x6874[0];var jsonpatch=require(_0x6874[1]);var rp=require(_0x6874[2]);var moment=require(_0x6874[3]);var BPromise=require(_0x6874[4]);var util=require(_0x6874[5]);var path=require(_0x6874[6]);var sox=require(_0x6874[7]);var ejs=require(_0x6874[8]);var fs=require(_0x6874[9]);var _=require(_0x6874[10]);var squel=require(_0x6874[11]);var crypto=require(_0x6874[12]);var jsforce=require(_0x6874[13]);var toCsv=require(_0x6874[14]);var qs=require(_0x6874[15]);var logger=require(_0x6874[17])(_0x6874[16]);var utils=require(_0x6874[18]);var config=require(_0x6874[19]);var db=require(_0x6874[21])[_0x6874[20]];function respondWithStatusCode(_0x37c6x15,_0x37c6x16,_0x37c6x17){_0x37c6x16= _0x37c6x16|| 204;return function(_0x37c6x18){if(_0x37c6x18){logger[_0x6874[24]](_0x6874[22],_0x37c6x17,_0x37c6x16,_0x6874[23]);logger[_0x6874[26]](_0x6874[25],_0x37c6x17,_0x37c6x16,_0x6874[23]);return _0x37c6x15[_0x6874[27]](_0x37c6x16)};return _0x37c6x15[_0x6874[29]](304)[_0x6874[28]]()}}function respondWithResult(_0x37c6x15,_0x37c6x16,_0x37c6x17){_0x37c6x16= _0x37c6x16|| 200;return function(_0x37c6x18){if(_0x37c6x18){logger[_0x6874[24]](_0x6874[22],_0x37c6x17,_0x37c6x16,_0x6874[30]);logger[_0x6874[26]](_0x6874[25],_0x37c6x17,_0x37c6x16,_0x6874[30],JSON[_0x6874[31]](_0x37c6x18));return _0x37c6x15[_0x6874[29]](_0x37c6x16)[_0x6874[32]](_0x37c6x18)};return _0x37c6x15[_0x6874[29]](304)[_0x6874[28]]()}}function respondWithFilteredResult(_0x37c6x15,_0x37c6x1b,_0x37c6x17){return function(_0x37c6x18){if(_0x37c6x18){var _0x37c6x1c=_0x37c6x18[_0x6874[33]],_0x37c6x1d=_0x37c6x1b[_0x6874[34]],_0x37c6x1e=_0x37c6x1b[_0x6874[34]]+ _0x37c6x1b[_0x6874[35]],_0x37c6x16;if(_0x37c6x1e>= _0x37c6x1c){_0x37c6x1e= _0x37c6x1c;_0x37c6x16= 200}else {_0x37c6x16= 206};_0x37c6x15[_0x6874[29]](_0x37c6x16);logger[_0x6874[24]](_0x6874[22],_0x37c6x17,_0x37c6x16,_0x6874[36]);logger[_0x6874[26]](_0x6874[25],_0x37c6x17,_0x37c6x16,_0x6874[30],JSON[_0x6874[31]](_0x37c6x18));return _0x37c6x15[_0x6874[40]](_0x6874[37],_0x37c6x1d+ _0x6874[38]+ _0x37c6x1e+ _0x6874[39]+ _0x37c6x1c)[_0x6874[32]](_0x37c6x18)};return null}}function patchUpdates(_0x37c6x20){return function(_0x37c6x18){try{jsonpatch[_0x6874[41]](_0x37c6x18,_0x37c6x20,true)}catch(err){return BPromise[_0x6874[42]](err)};return _0x37c6x18[_0x6874[43]]()}}function saveUpdates(_0x37c6x22,_0x37c6x16,_0x37c6x17){return function(_0x37c6x18){if(_0x37c6x18){return _0x37c6x18[_0x6874[46]](_0x37c6x22)[_0x6874[45]](function(_0x37c6x23){logger[_0x6874[24]](_0x6874[22],_0x37c6x17,_0x37c6x16,_0x6874[44]);logger[_0x6874[26]](_0x6874[25],_0x37c6x17,_0x37c6x16,_0x6874[44],JSON[_0x6874[31]](_0x37c6x18));return _0x37c6x23})};return null}}function removeEntity(_0x37c6x15,_0x37c6x16,_0x37c6x17){return function(_0x37c6x18){if(_0x37c6x18){return _0x37c6x18[_0x6874[48]]()[_0x6874[45]](function(){logger[_0x6874[24]](_0x6874[22],_0x37c6x17,_0x37c6x16,_0x6874[47]);logger[_0x6874[26]](_0x6874[25],_0x37c6x17,_0x37c6x16,_0x6874[47],JSON[_0x6874[31]](_0x37c6x18));_0x37c6x15[_0x6874[29]](204)[_0x6874[28]]()})}}}function handleEntityNotFound(_0x37c6x15,_0x37c6x16,_0x37c6x17){return function(_0x37c6x18){if(!_0x37c6x18){logger[_0x6874[50]](_0x6874[22],_0x37c6x17,404,_0x6874[49]);_0x37c6x15[_0x6874[29]](404)[_0x6874[28]]();return null};return _0x37c6x18}}function handleError(_0x37c6x15,_0x37c6x16,_0x37c6x17){_0x37c6x16= _0x37c6x16|| 500;return function(_0x37c6x27){logger[_0x6874[50]](_0x6874[22],_0x37c6x17,_0x37c6x16,JSON[_0x6874[31]](_0x37c6x27));delete _0x37c6x27[_0x6874[51]];_0x37c6x15[_0x6874[29]](_0x37c6x16)[_0x6874[52]](_0x37c6x27)}}exports[_0x6874[53]]= function(_0x37c6x28,_0x37c6x15){var _0x37c6x1b={},_0x37c6x29={};_0x37c6x29[_0x6874[54]]= _[_0x6874[57]](db[_0x6874[56]][_0x6874[55]]);_0x37c6x29[_0x6874[58]]= _[_0x6874[57]](_0x37c6x28[_0x6874[58]]);_0x37c6x29[_0x6874[59]]= _[_0x6874[60]](_0x37c6x29[_0x6874[54]],_0x37c6x29[_0x6874[58]]);_0x37c6x1b[_0x6874[61]]= _[_0x6874[60]](_0x37c6x29[_0x6874[54]],qs[_0x6874[62]](_0x37c6x28[_0x6874[58]][_0x6874[62]]));_0x37c6x1b[_0x6874[61]]= (_0x37c6x1b[_0x6874[61]][_0x6874[63]])?_0x37c6x1b[_0x6874[61]]:_0x37c6x29[_0x6874[54]];if(!_0x37c6x28[_0x6874[58]][_0x6874[65]](_0x6874[64])){_0x37c6x1b[_0x6874[35]]= qs[_0x6874[35]](_0x37c6x28[_0x6874[58]][_0x6874[35]]);_0x37c6x1b[_0x6874[34]]= qs[_0x6874[34]](_0x37c6x28[_0x6874[58]][_0x6874[34]])};_0x37c6x1b[_0x6874[66]]= qs[_0x6874[67]](_0x37c6x28[_0x6874[58]][_0x6874[67]]);_0x37c6x1b[_0x6874[68]]= qs[_0x6874[59]](_[_0x6874[69]](_0x37c6x28[_0x6874[58]],_0x37c6x29[_0x6874[59]]));if(_0x37c6x28[_0x6874[58]][_0x6874[70]]){_0x37c6x1b[_0x6874[68]]= _[_0x6874[73]](_0x37c6x1b[_0x6874[68]],{$or:_[_0x6874[72]](_0x37c6x1b[_0x6874[61]],function(_0x37c6x2a){var _0x37c6x2b={};_0x37c6x2b[_0x37c6x2a]= {$like:_0x6874[71]+ _0x37c6x28[_0x6874[58]][_0x6874[70]]+ _0x6874[71]};return _0x37c6x2b})})};_0x37c6x1b= _[_0x6874[73]]({},_0x37c6x1b,_0x37c6x28[_0x6874[74]]);return db[_0x6874[56]][_0x6874[76]](_0x37c6x1b)[_0x6874[45]](respondWithFilteredResult(_0x37c6x15,_0x37c6x1b,_0x6874[53]))[_0x6874[75]](handleError(_0x37c6x15,null,_0x6874[53]))};exports[_0x6874[77]]= function(_0x37c6x28,_0x37c6x15){var _0x37c6x1b={raw:true,where:{id:_0x37c6x28[_0x6874[79]][_0x6874[78]]}},_0x37c6x29={};_0x37c6x29[_0x6874[54]]= _[_0x6874[57]](db[_0x6874[56]][_0x6874[55]]);_0x37c6x29[_0x6874[58]]= _[_0x6874[57]](_0x37c6x28[_0x6874[58]]);_0x37c6x29[_0x6874[59]]= _[_0x6874[60]](_0x37c6x29[_0x6874[54]],_0x37c6x29[_0x6874[58]]);_0x37c6x1b[_0x6874[61]]= _[_0x6874[60]](_0x37c6x29[_0x6874[54]],qs[_0x6874[62]](_0x37c6x28[_0x6874[58]][_0x6874[62]]));_0x37c6x1b[_0x6874[61]]= (_0x37c6x1b[_0x6874[61]][_0x6874[63]])?_0x37c6x1b[_0x6874[61]]:_0x37c6x29[_0x6874[54]];_0x37c6x1b= _[_0x6874[73]]({},_0x37c6x1b,_0x37c6x28[_0x6874[74]]);return db[_0x6874[56]][_0x6874[80]](_0x37c6x1b)[_0x6874[45]](handleEntityNotFound(_0x37c6x15,null,_0x6874[77]))[_0x6874[45]](respondWithResult(_0x37c6x15,null,_0x6874[77]))[_0x6874[75]](handleError(_0x37c6x15,null,_0x6874[77]))};exports[_0x6874[81]]= function(_0x37c6x28,_0x37c6x15,_0x37c6x2c){return db[_0x6874[56]][_0x6874[80]]({where:{id:_0x37c6x28[_0x6874[79]][_0x6874[78]]},attributes:[_0x6874[51],_0x6874[85],_0x6874[87]],raw:true})[_0x6874[45]](handleEntityNotFound(_0x37c6x15,null,_0x6874[81]))[_0x6874[45]](function(_0x37c6x18){if(_0x37c6x18){logger[_0x6874[24]](_0x6874[82],_0x6874[81],_0x6874[30]);logger[_0x6874[26]](_0x6874[22],_0x6874[81],_0x6874[30],JSON[_0x6874[31]](_0x37c6x18));if(!fs[_0x6874[89]](path[_0x6874[88]](config[_0x6874[83]],_0x6874[84],_0x37c6x18[_0x6874[85]]+ _0x6874[86]+ _0x37c6x18[_0x6874[87]]))){throw  new db[_0x6874[91]].ValidationError(_0x6874[90])};return _0x37c6x15[_0x6874[81]](path[_0x6874[88]](config[_0x6874[83]],_0x6874[84],util[_0x6874[93]](_0x6874[92],_0x37c6x18[_0x6874[85]],_0x37c6x18[_0x6874[87]])),util[_0x6874[93]](_0x6874[92],_0x37c6x18[_0x6874[51]],_0x37c6x18[_0x6874[87]]))};return null})[_0x6874[75]](handleError(_0x37c6x15,null,_0x6874[77]))};exports[_0x6874[94]]= function(_0x37c6x28,_0x37c6x15,_0x37c6x2c){var _0x37c6x2d={name:path[_0x6874[98]](_0x37c6x28[_0x6874[96]][_0x6874[95]],path[_0x6874[97]](_0x37c6x28[_0x6874[96]][_0x6874[95]])),save_name:path[_0x6874[98]](_0x37c6x28[_0x6874[96]][_0x6874[99]],path[_0x6874[97]](_0x37c6x28[_0x6874[96]][_0x6874[99]])),original_format:path[_0x6874[97]](_0x37c6x28[_0x6874[96]][_0x6874[95]])[_0x6874[100]](1),converted_format:_0x6874[101]};var _0x37c6x2e=path[_0x6874[88]](config[_0x6874[83]],_0x6874[102],_0x37c6x28[_0x6874[96]][_0x6874[99]]);var _0x37c6x2f=path[_0x6874[88]](config[_0x6874[83]],_0x6874[84],util[_0x6874[93]](_0x6874[92],path[_0x6874[98]](_0x37c6x28[_0x6874[96]][_0x6874[99]],path[_0x6874[97]](_0x37c6x28[_0x6874[96]][_0x6874[99]])),_0x37c6x2d[_0x6874[87]]));logger[_0x6874[24]](_0x6874[103],_0x37c6x2e);logger[_0x6874[24]](_0x6874[104],_0x37c6x2f);try{fs[_0x6874[106]](_0x37c6x2e,parseInt(_0x6874[105],8));var _0x37c6x30=sox[_0x6874[107]](_0x37c6x2e,_0x37c6x2f,{sampleRate:8000,format:_0x6874[101],channelCount:1,bitRate:192* 1024,compressionQuality:5});_0x37c6x30[_0x6874[108]](_0x6874[50],function(_0x37c6x27){_0x37c6x15[_0x6874[29]](500)[_0x6874[52]](_0x37c6x27)});_0x37c6x30[_0x6874[108]](_0x6874[109],function(_0x37c6x31){_0x37c6x2d[_0x6874[110]]= isNaN(_0x37c6x31[_0x6874[111]])?null:_0x37c6x31[_0x6874[111]]* 1000;_0x37c6x2d[_0x6874[112]]= isNaN(_0x37c6x31[_0x6874[113]])?null:_0x37c6x31[_0x6874[113]];_0x37c6x2d[_0x6874[114]]= isNaN(_0x37c6x31[_0x6874[115]])?null:_0x37c6x31[_0x6874[115]];_0x37c6x2d[_0x6874[116]]= isNaN(_0x37c6x31[_0x6874[117]])?null:_0x37c6x31[_0x6874[117]];_0x37c6x2d[_0x6874[118]]= isNaN(_0x37c6x31[_0x6874[119]])?null:_0x37c6x31[_0x6874[119]]});_0x37c6x30[_0x6874[108]](_0x6874[120],function(_0x37c6x31){_0x37c6x2d[_0x6874[121]]= isNaN(_0x37c6x31[_0x6874[111]])?null:_0x37c6x31[_0x6874[111]]* 1000;_0x37c6x2d[_0x6874[122]]= isNaN(_0x37c6x31[_0x6874[113]])?null:_0x37c6x31[_0x6874[113]];_0x37c6x2d[_0x6874[123]]= isNaN(_0x37c6x31[_0x6874[115]])?null:_0x37c6x31[_0x6874[115]];_0x37c6x2d[_0x6874[124]]= isNaN(_0x37c6x31[_0x6874[117]])?null:_0x37c6x31[_0x6874[117]];_0x37c6x2d[_0x6874[125]]= isNaN(_0x37c6x31[_0x6874[119]])?null:_0x37c6x31[_0x6874[119]]});_0x37c6x30[_0x6874[108]](_0x6874[28],function(){fs[_0x6874[106]](_0x37c6x2f,parseInt(_0x6874[105],8));return db[_0x6874[56]][_0x6874[94]](_0x37c6x2d)[_0x6874[45]](respondWithResult(_0x37c6x15,null,_0x6874[94]))[_0x6874[75]](handleError(_0x37c6x15,null,_0x6874[126]))});_0x37c6x30[_0x6874[127]]()}catch(err){_0x37c6x15[_0x6874[29]](500)[_0x6874[52]](err)}};exports[_0x6874[46]]= function(_0x37c6x28,_0x37c6x15,_0x37c6x2c){return db[_0x6874[56]][_0x6874[80]]({where:{id:_0x37c6x28[_0x6874[79]][_0x6874[78]]}})[_0x6874[45]](handleEntityNotFound(_0x37c6x15,null,_0x6874[46]))[_0x6874[45]](saveUpdates(_[_0x6874[69]](_0x37c6x28[_0x6874[128]],[_0x6874[51],_0x6874[129]]),null,_0x6874[46]))[_0x6874[45]](respondWithResult(_0x37c6x15,null,_0x6874[46]))[_0x6874[75]](handleError(_0x37c6x15,null,_0x6874[46]))};exports[_0x6874[130]]= function(_0x37c6x28,_0x37c6x15,_0x37c6x2c){return db[_0x6874[56]][_0x6874[80]]({where:{id:_0x37c6x28[_0x6874[79]][_0x6874[78]]}})[_0x6874[45]](function(_0x37c6x18){if(_0x37c6x18){return _0x37c6x18[_0x6874[48]]()}})[_0x6874[45]](function(_0x37c6x18){var _0x37c6x32=path[_0x6874[88]](config[_0x6874[83]],_0x6874[102],util[_0x6874[93]](_0x6874[92],_0x37c6x18[_0x6874[85]],_0x37c6x18[_0x6874[131]]));var _0x37c6x33=path[_0x6874[88]](config[_0x6874[83]],_0x6874[84],util[_0x6874[93]](_0x6874[92],_0x37c6x18[_0x6874[85]],_0x37c6x18[_0x6874[87]]));fs[_0x6874[132]](_0x37c6x32);fs[_0x6874[132]](_0x37c6x33);return _0x37c6x18})[_0x6874[45]](function(_0x37c6x18){if(_0x37c6x18){return _0x37c6x15[_0x6874[29]](204)[_0x6874[28]]()}})[_0x6874[45]](handleEntityNotFound(_0x37c6x15,null,_0x6874[130]))[_0x6874[75]](handleError(_0x37c6x15,null,_0x6874[130]))}
\ No newline at end of file
index 83d2b88..ffb9cd4 100644 (file)
@@ -1 +1 @@
-var _0x88d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6F\x75\x6E\x64","\x74\x6F\x6F\x6C\x73\x5F\x73\x6F\x75\x6E\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x88d7[0];var _=require(_0x88d7[1]);var util=require(_0x88d7[2]);var logger=require(_0x88d7[4])(_0x88d7[3]);var attributes=require(_0x88d7[5]);module[_0x88d7[6]]= function(_0xf02cx5,_0xf02cx6){return _0xf02cx5[_0x88d7[9]](_0x88d7[7],attributes,{tableName:_0x88d7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xed7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6F\x75\x6E\x64","\x74\x6F\x6F\x6C\x73\x5F\x73\x6F\x75\x6E\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xed7d[0];var _=require(_0xed7d[1]);var util=require(_0xed7d[2]);var logger=require(_0xed7d[4])(_0xed7d[3]);var attributes=require(_0xed7d[5]);module[_0xed7d[6]]= function(_0x509dx5,_0x509dx6){return _0x509dx5[_0xed7d[9]](_0xed7d[7],attributes,{tableName:_0xed7d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 36b681e..9da4c2c 100644 (file)
@@ -1 +1 @@
-var _0xb2f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x6F\x75\x6E\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x6F\x75\x6E\x64"];_0xb2f5[0];var _=require(_0xb2f5[1]);var util=require(_0xb2f5[2]);var moment=require(_0xb2f5[3]);var BPromise=require(_0xb2f5[4]);var db=require(_0xb2f5[6])[_0xb2f5[5]];var utils=require(_0xb2f5[7]);var logger=require(_0xb2f5[9])(_0xb2f5[8]);var jayson=require(_0xb2f5[10]);var client=jayson[_0xb2f5[12]][_0xb2f5[11]]({port:9002});function respondWithRpcPromise(_0x1126xb,_0x1126xc,_0x1126xd){return  new BPromise(function(_0x1126xe,_0x1126xf){return client[_0xb2f5[25]](_0x1126xb,_0x1126xd)[_0xb2f5[24]](function(_0x1126x11){logger[_0xb2f5[17]](_0xb2f5[13],_0x1126xc,_0xb2f5[16]);logger[_0xb2f5[20]](_0xb2f5[18],_0x1126xc,_0xb2f5[16],JSON[_0xb2f5[19]](_0x1126x11));if(_0x1126x11[_0xb2f5[14]]){if(_0x1126x11[_0xb2f5[14]][_0xb2f5[21]]=== 500){logger[_0xb2f5[14]](_0xb2f5[13],_0x1126xc,_0x1126x11[_0xb2f5[14]][_0xb2f5[22]]);return _0x1126xf(_0x1126x11[_0xb2f5[14]][_0xb2f5[22]])};logger[_0xb2f5[14]](_0xb2f5[13],_0x1126xc,_0x1126x11[_0xb2f5[14]][_0xb2f5[22]]);return _0x1126xe(_0x1126x11[_0xb2f5[14]][_0xb2f5[22]])}else {logger[_0xb2f5[17]](_0xb2f5[13],_0x1126xc,_0xb2f5[16]);_0x1126xe(_0x1126x11[_0xb2f5[23]][_0xb2f5[22]])}})[_0xb2f5[15]](function(_0x1126x10){logger[_0xb2f5[14]](_0xb2f5[13],_0x1126xc,_0x1126x10);_0x1126xf(_0x1126x10)})})}exports[_0xb2f5[26]]= function(_0x1126xd){var _0x1126x12=this;return  new Promise(function(_0x1126xe,_0x1126xf){return db[_0xb2f5[36]][_0xb2f5[35]]({raw:_0x1126xd[_0xb2f5[27]]?(_0x1126xd[_0xb2f5[27]][_0xb2f5[28]]=== undefined)?true:false:true,where:_0x1126xd[_0xb2f5[27]]?_0x1126xd[_0xb2f5[27]][_0xb2f5[29]]|| null:null,attributes:_0x1126xd[_0xb2f5[27]]?_0x1126xd[_0xb2f5[27]][_0xb2f5[30]]|| null:null,include:_0x1126xd[_0xb2f5[27]]?(_0x1126xd[_0xb2f5[27]][_0xb2f5[31]]?_[_0xb2f5[34]](_0x1126xd[_0xb2f5[27]][_0xb2f5[31]],function(_0x1126x13){return {model:db[_0x1126x13[_0xb2f5[32]]],as:_0x1126x13[_0xb2f5[33]],attributes:_0x1126x13[_0xb2f5[30]],include:_0x1126x13[_0xb2f5[31]]?_[_0xb2f5[34]](_0x1126x13[_0xb2f5[31]],function(_0x1126x14){return {model:db[_0x1126x14[_0xb2f5[32]]],as:_0x1126x14[_0xb2f5[33]],attributes:_0x1126x14[_0xb2f5[30]],include:_0x1126x14[_0xb2f5[31]]?_[_0xb2f5[34]](_0x1126x14[_0xb2f5[31]],function(_0x1126x15){return {model:db[_0x1126x15[_0xb2f5[32]]],as:_0x1126x15[_0xb2f5[33]],attributes:_0x1126x15[_0xb2f5[30]]}}):[]}}):[]}}):[]):[]})[_0xb2f5[24]](function(_0x1126x11){logger[_0xb2f5[17]](_0xb2f5[26],_0x1126xd);logger[_0xb2f5[20]](_0xb2f5[26],_0x1126xd,JSON[_0xb2f5[19]](_0x1126x11));_0x1126xe(_0x1126x11)})[_0xb2f5[15]](function(_0x1126x10){logger[_0xb2f5[14]](_0xb2f5[26],_0x1126x10[_0xb2f5[22]],_0x1126xd);_0x1126xf(_0x1126x12[_0xb2f5[14]](500,_0x1126x10[_0xb2f5[22]]))})})}
\ No newline at end of file
+var _0xda6b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x6F\x75\x6E\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x6F\x75\x6E\x64"];_0xda6b[0];var _=require(_0xda6b[1]);var util=require(_0xda6b[2]);var moment=require(_0xda6b[3]);var BPromise=require(_0xda6b[4]);var db=require(_0xda6b[6])[_0xda6b[5]];var utils=require(_0xda6b[7]);var logger=require(_0xda6b[9])(_0xda6b[8]);var jayson=require(_0xda6b[10]);var client=jayson[_0xda6b[12]][_0xda6b[11]]({port:9002});function respondWithRpcPromise(_0xb96cxb,_0xb96cxc,_0xb96cxd){return  new BPromise(function(_0xb96cxe,_0xb96cxf){return client[_0xda6b[25]](_0xb96cxb,_0xb96cxd)[_0xda6b[24]](function(_0xb96cx11){logger[_0xda6b[17]](_0xda6b[13],_0xb96cxc,_0xda6b[16]);logger[_0xda6b[20]](_0xda6b[18],_0xb96cxc,_0xda6b[16],JSON[_0xda6b[19]](_0xb96cx11));if(_0xb96cx11[_0xda6b[14]]){if(_0xb96cx11[_0xda6b[14]][_0xda6b[21]]=== 500){logger[_0xda6b[14]](_0xda6b[13],_0xb96cxc,_0xb96cx11[_0xda6b[14]][_0xda6b[22]]);return _0xb96cxf(_0xb96cx11[_0xda6b[14]][_0xda6b[22]])};logger[_0xda6b[14]](_0xda6b[13],_0xb96cxc,_0xb96cx11[_0xda6b[14]][_0xda6b[22]]);return _0xb96cxe(_0xb96cx11[_0xda6b[14]][_0xda6b[22]])}else {logger[_0xda6b[17]](_0xda6b[13],_0xb96cxc,_0xda6b[16]);_0xb96cxe(_0xb96cx11[_0xda6b[23]][_0xda6b[22]])}})[_0xda6b[15]](function(_0xb96cx10){logger[_0xda6b[14]](_0xda6b[13],_0xb96cxc,_0xb96cx10);_0xb96cxf(_0xb96cx10)})})}exports[_0xda6b[26]]= function(_0xb96cxd){var _0xb96cx12=this;return  new Promise(function(_0xb96cxe,_0xb96cxf){return db[_0xda6b[36]][_0xda6b[35]]({raw:_0xb96cxd[_0xda6b[27]]?(_0xb96cxd[_0xda6b[27]][_0xda6b[28]]=== undefined)?true:false:true,where:_0xb96cxd[_0xda6b[27]]?_0xb96cxd[_0xda6b[27]][_0xda6b[29]]|| null:null,attributes:_0xb96cxd[_0xda6b[27]]?_0xb96cxd[_0xda6b[27]][_0xda6b[30]]|| null:null,include:_0xb96cxd[_0xda6b[27]]?(_0xb96cxd[_0xda6b[27]][_0xda6b[31]]?_[_0xda6b[34]](_0xb96cxd[_0xda6b[27]][_0xda6b[31]],function(_0xb96cx13){return {model:db[_0xb96cx13[_0xda6b[32]]],as:_0xb96cx13[_0xda6b[33]],attributes:_0xb96cx13[_0xda6b[30]],include:_0xb96cx13[_0xda6b[31]]?_[_0xda6b[34]](_0xb96cx13[_0xda6b[31]],function(_0xb96cx14){return {model:db[_0xb96cx14[_0xda6b[32]]],as:_0xb96cx14[_0xda6b[33]],attributes:_0xb96cx14[_0xda6b[30]],include:_0xb96cx14[_0xda6b[31]]?_[_0xda6b[34]](_0xb96cx14[_0xda6b[31]],function(_0xb96cx15){return {model:db[_0xb96cx15[_0xda6b[32]]],as:_0xb96cx15[_0xda6b[33]],attributes:_0xb96cx15[_0xda6b[30]]}}):[]}}):[]}}):[]):[]})[_0xda6b[24]](function(_0xb96cx11){logger[_0xda6b[17]](_0xda6b[26],_0xb96cxd);logger[_0xda6b[20]](_0xda6b[26],_0xb96cxd,JSON[_0xda6b[19]](_0xb96cx11));_0xb96cxe(_0xb96cx11)})[_0xda6b[15]](function(_0xb96cx10){logger[_0xda6b[14]](_0xda6b[26],_0xb96cx10[_0xda6b[22]],_0xb96cxd);_0xb96cxf(_0xb96cx12[_0xda6b[14]](500,_0xb96cx10[_0xda6b[22]]))})})}
\ No newline at end of file
index d0cb0e6..d69830f 100644 (file)
@@ -1 +1 @@
-var _0x3ede=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x73\x74","\x74\x65\x73\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3ede[0];var multer=require(_0x3ede[1]);var util=require(_0x3ede[2]);var path=require(_0x3ede[3]);var express=require(_0x3ede[4]);var router=express.Router();var auth=require(_0x3ede[5]);var config=require(_0x3ede[6]);var controller=require(_0x3ede[7]);router[_0x3ede[11]](_0x3ede[8],auth[_0x3ede[9]](),controller[_0x3ede[10]]);router[_0x3ede[11]](_0x3ede[12],auth[_0x3ede[9]](),controller[_0x3ede[13]]);router[_0x3ede[11]](_0x3ede[14],auth[_0x3ede[9]](),controller[_0x3ede[15]]);router[_0x3ede[17]](_0x3ede[8],auth[_0x3ede[9]](),controller[_0x3ede[16]]);router[_0x3ede[19]](_0x3ede[12],auth[_0x3ede[9]](),controller[_0x3ede[18]]);router[_0x3ede[21]](_0x3ede[12],auth[_0x3ede[9]](),controller[_0x3ede[20]]);module[_0x3ede[22]]= router
\ No newline at end of file
+var _0xf969=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x73\x74","\x74\x65\x73\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf969[0];var multer=require(_0xf969[1]);var util=require(_0xf969[2]);var path=require(_0xf969[3]);var express=require(_0xf969[4]);var router=express.Router();var auth=require(_0xf969[5]);var config=require(_0xf969[6]);var controller=require(_0xf969[7]);router[_0xf969[11]](_0xf969[8],auth[_0xf969[9]](),controller[_0xf969[10]]);router[_0xf969[11]](_0xf969[12],auth[_0xf969[9]](),controller[_0xf969[13]]);router[_0xf969[11]](_0xf969[14],auth[_0xf969[9]](),controller[_0xf969[15]]);router[_0xf969[17]](_0xf969[8],auth[_0xf969[9]](),controller[_0xf969[16]]);router[_0xf969[19]](_0xf969[12],auth[_0xf969[9]](),controller[_0xf969[18]]);router[_0xf969[21]](_0xf969[12],auth[_0xf969[9]](),controller[_0xf969[20]]);module[_0xf969[22]]= router
\ No newline at end of file
index a206561..0fb5032 100644 (file)
@@ -1 +1 @@
-var _0xc851=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xc851[0];var Sequelize=require(_0xc851[1]);module[_0xc851[2]]= {name:{type:Sequelize[_0xc851[3]],unique:_0xc851[4],allowNull:false},dsn:{type:Sequelize[_0xc851[3]]},description:{type:Sequelize[_0xc851[3]]}}
\ No newline at end of file
+var _0xd3a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xd3a1[0];var Sequelize=require(_0xd3a1[1]);module[_0xd3a1[2]]= {name:{type:Sequelize[_0xd3a1[3]],unique:_0xd3a1[4],allowNull:false},dsn:{type:Sequelize[_0xd3a1[3]]},description:{type:Sequelize[_0xd3a1[3]]}}
\ No newline at end of file
index b99a5a6..5c33af4 100644 (file)
@@ -1 +1 @@
-var _0x3488=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x74\x65\x73\x74","\x6F\x64\x62\x63","\x64\x73\x6E","\x6F\x70\x65\x6E\x53\x79\x6E\x63","\x63\x6C\x6F\x73\x65\x53\x79\x6E\x63"];_0x3488[0];var jsonpatch=require(_0x3488[1]);var rp=require(_0x3488[2]);var moment=require(_0x3488[3]);var BPromise=require(_0x3488[4]);var util=require(_0x3488[5]);var path=require(_0x3488[6]);var sox=require(_0x3488[7]);var ejs=require(_0x3488[8]);var fs=require(_0x3488[9]);var _=require(_0x3488[10]);var squel=require(_0x3488[11]);var crypto=require(_0x3488[12]);var jsforce=require(_0x3488[13]);var toCsv=require(_0x3488[14]);var qs=require(_0x3488[15]);var logger=require(_0x3488[17])(_0x3488[16]);var utils=require(_0x3488[18]);var config=require(_0x3488[19]);var db=require(_0x3488[21])[_0x3488[20]];function respondWithStatusCode(_0xac2ax15,_0xac2ax16,_0xac2ax17){_0xac2ax16= _0xac2ax16|| 204;return function(_0xac2ax18){if(_0xac2ax18){logger[_0x3488[24]](_0x3488[22],_0xac2ax17,_0xac2ax16,_0x3488[23]);logger[_0x3488[26]](_0x3488[25],_0xac2ax17,_0xac2ax16,_0x3488[23]);return _0xac2ax15[_0x3488[27]](_0xac2ax16)};return _0xac2ax15[_0x3488[29]](304)[_0x3488[28]]()}}function respondWithResult(_0xac2ax15,_0xac2ax16,_0xac2ax17){_0xac2ax16= _0xac2ax16|| 200;return function(_0xac2ax18){if(_0xac2ax18){logger[_0x3488[24]](_0x3488[22],_0xac2ax17,_0xac2ax16,_0x3488[30]);logger[_0x3488[26]](_0x3488[25],_0xac2ax17,_0xac2ax16,_0x3488[30],JSON[_0x3488[31]](_0xac2ax18));return _0xac2ax15[_0x3488[29]](_0xac2ax16)[_0x3488[32]](_0xac2ax18)};return _0xac2ax15[_0x3488[29]](304)[_0x3488[28]]()}}function respondWithFilteredResult(_0xac2ax15,_0xac2ax1b,_0xac2ax17){return function(_0xac2ax18){if(_0xac2ax18){var _0xac2ax1c=_0xac2ax18[_0x3488[33]],_0xac2ax1d=_0xac2ax1b[_0x3488[34]],_0xac2ax1e=_0xac2ax1b[_0x3488[34]]+ _0xac2ax1b[_0x3488[35]],_0xac2ax16;if(_0xac2ax1e>= _0xac2ax1c){_0xac2ax1e= _0xac2ax1c;_0xac2ax16= 200}else {_0xac2ax16= 206};_0xac2ax15[_0x3488[29]](_0xac2ax16);logger[_0x3488[24]](_0x3488[22],_0xac2ax17,_0xac2ax16,_0x3488[36]);logger[_0x3488[26]](_0x3488[25],_0xac2ax17,_0xac2ax16,_0x3488[30],JSON[_0x3488[31]](_0xac2ax18));return _0xac2ax15[_0x3488[40]](_0x3488[37],_0xac2ax1d+ _0x3488[38]+ _0xac2ax1e+ _0x3488[39]+ _0xac2ax1c)[_0x3488[32]](_0xac2ax18)};return null}}function patchUpdates(_0xac2ax20){return function(_0xac2ax18){try{jsonpatch[_0x3488[41]](_0xac2ax18,_0xac2ax20,true)}catch(err){return BPromise[_0x3488[42]](err)};return _0xac2ax18[_0x3488[43]]()}}function saveUpdates(_0xac2ax22,_0xac2ax16,_0xac2ax17){return function(_0xac2ax18){if(_0xac2ax18){return _0xac2ax18[_0x3488[46]](_0xac2ax22)[_0x3488[45]](function(_0xac2ax23){logger[_0x3488[24]](_0x3488[22],_0xac2ax17,_0xac2ax16,_0x3488[44]);logger[_0x3488[26]](_0x3488[25],_0xac2ax17,_0xac2ax16,_0x3488[44],JSON[_0x3488[31]](_0xac2ax18));return _0xac2ax23})};return null}}function removeEntity(_0xac2ax15,_0xac2ax16,_0xac2ax17){return function(_0xac2ax18){if(_0xac2ax18){return _0xac2ax18[_0x3488[48]]()[_0x3488[45]](function(){logger[_0x3488[24]](_0x3488[22],_0xac2ax17,_0xac2ax16,_0x3488[47]);logger[_0x3488[26]](_0x3488[25],_0xac2ax17,_0xac2ax16,_0x3488[47],JSON[_0x3488[31]](_0xac2ax18));_0xac2ax15[_0x3488[29]](204)[_0x3488[28]]()})}}}function handleEntityNotFound(_0xac2ax15,_0xac2ax16,_0xac2ax17){return function(_0xac2ax18){if(!_0xac2ax18){logger[_0x3488[50]](_0x3488[22],_0xac2ax17,404,_0x3488[49]);_0xac2ax15[_0x3488[29]](404)[_0x3488[28]]();return null};return _0xac2ax18}}function handleError(_0xac2ax15,_0xac2ax16,_0xac2ax17){_0xac2ax16= _0xac2ax16|| 500;return function(_0xac2ax27){logger[_0x3488[50]](_0x3488[22],_0xac2ax17,_0xac2ax16,JSON[_0x3488[31]](_0xac2ax27));delete _0xac2ax27[_0x3488[51]];_0xac2ax15[_0x3488[29]](_0xac2ax16)[_0x3488[52]](_0xac2ax27)}}exports[_0x3488[53]]= function(_0xac2ax28,_0xac2ax15){var _0xac2ax1b={},_0xac2ax29={};_0xac2ax29[_0x3488[54]]= _[_0x3488[57]](db[_0x3488[56]][_0x3488[55]]);_0xac2ax29[_0x3488[58]]= _[_0x3488[57]](_0xac2ax28[_0x3488[58]]);_0xac2ax29[_0x3488[59]]= _[_0x3488[60]](_0xac2ax29[_0x3488[54]],_0xac2ax29[_0x3488[58]]);_0xac2ax1b[_0x3488[61]]= _[_0x3488[60]](_0xac2ax29[_0x3488[54]],qs[_0x3488[62]](_0xac2ax28[_0x3488[58]][_0x3488[62]]));_0xac2ax1b[_0x3488[61]]= (_0xac2ax1b[_0x3488[61]][_0x3488[63]])?_0xac2ax1b[_0x3488[61]]:_0xac2ax29[_0x3488[54]];if(!_0xac2ax28[_0x3488[58]][_0x3488[65]](_0x3488[64])){_0xac2ax1b[_0x3488[35]]= qs[_0x3488[35]](_0xac2ax28[_0x3488[58]][_0x3488[35]]);_0xac2ax1b[_0x3488[34]]= qs[_0x3488[34]](_0xac2ax28[_0x3488[58]][_0x3488[34]])};_0xac2ax1b[_0x3488[66]]= qs[_0x3488[67]](_0xac2ax28[_0x3488[58]][_0x3488[67]]);_0xac2ax1b[_0x3488[68]]= qs[_0x3488[59]](_[_0x3488[69]](_0xac2ax28[_0x3488[58]],_0xac2ax29[_0x3488[59]]));if(_0xac2ax28[_0x3488[58]][_0x3488[70]]){_0xac2ax1b[_0x3488[68]]= _[_0x3488[73]](_0xac2ax1b[_0x3488[68]],{$or:_[_0x3488[72]](_0xac2ax1b[_0x3488[61]],function(_0xac2ax2a){var _0xac2ax2b={};_0xac2ax2b[_0xac2ax2a]= {$like:_0x3488[71]+ _0xac2ax28[_0x3488[58]][_0x3488[70]]+ _0x3488[71]};return _0xac2ax2b})})};_0xac2ax1b= _[_0x3488[73]]({},_0xac2ax1b,_0xac2ax28[_0x3488[74]]);return db[_0x3488[56]][_0x3488[76]](_0xac2ax1b)[_0x3488[45]](respondWithFilteredResult(_0xac2ax15,_0xac2ax1b,_0x3488[53]))[_0x3488[75]](handleError(_0xac2ax15,null,_0x3488[53]))};exports[_0x3488[77]]= function(_0xac2ax28,_0xac2ax15){var _0xac2ax1b={raw:true,where:{id:_0xac2ax28[_0x3488[79]][_0x3488[78]]}},_0xac2ax29={};_0xac2ax29[_0x3488[54]]= _[_0x3488[57]](db[_0x3488[56]][_0x3488[55]]);_0xac2ax29[_0x3488[58]]= _[_0x3488[57]](_0xac2ax28[_0x3488[58]]);_0xac2ax29[_0x3488[59]]= _[_0x3488[60]](_0xac2ax29[_0x3488[54]],_0xac2ax29[_0x3488[58]]);_0xac2ax1b[_0x3488[61]]= _[_0x3488[60]](_0xac2ax29[_0x3488[54]],qs[_0x3488[62]](_0xac2ax28[_0x3488[58]][_0x3488[62]]));_0xac2ax1b[_0x3488[61]]= (_0xac2ax1b[_0x3488[61]][_0x3488[63]])?_0xac2ax1b[_0x3488[61]]:_0xac2ax29[_0x3488[54]];_0xac2ax1b= _[_0x3488[73]]({},_0xac2ax1b,_0xac2ax28[_0x3488[74]]);return db[_0x3488[56]][_0x3488[80]](_0xac2ax1b)[_0x3488[45]](handleEntityNotFound(_0xac2ax15,null,_0x3488[77]))[_0x3488[45]](respondWithResult(_0xac2ax15,null,_0x3488[77]))[_0x3488[75]](handleError(_0xac2ax15,null,_0x3488[77]))};exports[_0x3488[81]]= function(_0xac2ax28,_0xac2ax15){return db[_0x3488[56]][_0x3488[81]](_0xac2ax28[_0x3488[82]],{})[_0x3488[45]](respondWithResult(_0xac2ax15,201,_0x3488[81]))[_0x3488[75]](handleError(_0xac2ax15,null,_0x3488[81]))};exports[_0x3488[46]]= function(_0xac2ax28,_0xac2ax15){if(_0xac2ax28[_0x3488[82]][_0x3488[78]]){delete _0xac2ax28[_0x3488[82]][_0x3488[78]]};return db[_0x3488[56]][_0x3488[80]]({where:{id:_0xac2ax28[_0x3488[79]][_0x3488[78]]}})[_0x3488[45]](handleEntityNotFound(_0xac2ax15,null,_0x3488[46]))[_0x3488[45]](saveUpdates(_0xac2ax28[_0x3488[82]],null,_0x3488[46]))[_0x3488[45]](respondWithResult(_0xac2ax15,null,_0x3488[46]))[_0x3488[75]](handleError(_0xac2ax15,null,_0x3488[46]))};exports[_0x3488[48]]= function(_0xac2ax28,_0xac2ax15){return db[_0x3488[56]][_0x3488[80]]({where:{id:_0xac2ax28[_0x3488[79]][_0x3488[78]]}})[_0x3488[45]](handleEntityNotFound(_0xac2ax15,null,_0x3488[48]))[_0x3488[45]](removeEntity(_0xac2ax15,null,_0x3488[48]))[_0x3488[75]](handleError(_0xac2ax15,null,_0x3488[48]))};exports[_0x3488[83]]= function(_0xac2ax28,_0xac2ax15,_0xac2ax2c){var _0xac2ax2d;return db[_0x3488[56]][_0x3488[80]]({where:{id:_0xac2ax28[_0x3488[79]][_0x3488[78]]},attributes:[_0x3488[78],_0x3488[85]]})[_0x3488[45]](handleEntityNotFound(_0xac2ax15,null,_0x3488[83]))[_0x3488[45]](function(_0xac2ax18){if(_0xac2ax18){var db=require(_0x3488[84])();db[_0x3488[86]](_0xac2ax18[_0x3488[85]]);db[_0x3488[87]]();return _0xac2ax18}})[_0x3488[45]](respondWithResult(_0xac2ax15,null,_0x3488[83]))[_0x3488[75]](handleError(_0xac2ax15,null,_0x3488[83]))}
\ No newline at end of file
+var _0xe129=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x74\x65\x73\x74","\x6F\x64\x62\x63","\x64\x73\x6E","\x6F\x70\x65\x6E\x53\x79\x6E\x63","\x63\x6C\x6F\x73\x65\x53\x79\x6E\x63"];_0xe129[0];var jsonpatch=require(_0xe129[1]);var rp=require(_0xe129[2]);var moment=require(_0xe129[3]);var BPromise=require(_0xe129[4]);var util=require(_0xe129[5]);var path=require(_0xe129[6]);var sox=require(_0xe129[7]);var ejs=require(_0xe129[8]);var fs=require(_0xe129[9]);var _=require(_0xe129[10]);var squel=require(_0xe129[11]);var crypto=require(_0xe129[12]);var jsforce=require(_0xe129[13]);var toCsv=require(_0xe129[14]);var qs=require(_0xe129[15]);var logger=require(_0xe129[17])(_0xe129[16]);var utils=require(_0xe129[18]);var config=require(_0xe129[19]);var db=require(_0xe129[21])[_0xe129[20]];function respondWithStatusCode(_0x2c4dx15,_0x2c4dx16,_0x2c4dx17){_0x2c4dx16= _0x2c4dx16|| 204;return function(_0x2c4dx18){if(_0x2c4dx18){logger[_0xe129[24]](_0xe129[22],_0x2c4dx17,_0x2c4dx16,_0xe129[23]);logger[_0xe129[26]](_0xe129[25],_0x2c4dx17,_0x2c4dx16,_0xe129[23]);return _0x2c4dx15[_0xe129[27]](_0x2c4dx16)};return _0x2c4dx15[_0xe129[29]](304)[_0xe129[28]]()}}function respondWithResult(_0x2c4dx15,_0x2c4dx16,_0x2c4dx17){_0x2c4dx16= _0x2c4dx16|| 200;return function(_0x2c4dx18){if(_0x2c4dx18){logger[_0xe129[24]](_0xe129[22],_0x2c4dx17,_0x2c4dx16,_0xe129[30]);logger[_0xe129[26]](_0xe129[25],_0x2c4dx17,_0x2c4dx16,_0xe129[30],JSON[_0xe129[31]](_0x2c4dx18));return _0x2c4dx15[_0xe129[29]](_0x2c4dx16)[_0xe129[32]](_0x2c4dx18)};return _0x2c4dx15[_0xe129[29]](304)[_0xe129[28]]()}}function respondWithFilteredResult(_0x2c4dx15,_0x2c4dx1b,_0x2c4dx17){return function(_0x2c4dx18){if(_0x2c4dx18){var _0x2c4dx1c=_0x2c4dx18[_0xe129[33]],_0x2c4dx1d=_0x2c4dx1b[_0xe129[34]],_0x2c4dx1e=_0x2c4dx1b[_0xe129[34]]+ _0x2c4dx1b[_0xe129[35]],_0x2c4dx16;if(_0x2c4dx1e>= _0x2c4dx1c){_0x2c4dx1e= _0x2c4dx1c;_0x2c4dx16= 200}else {_0x2c4dx16= 206};_0x2c4dx15[_0xe129[29]](_0x2c4dx16);logger[_0xe129[24]](_0xe129[22],_0x2c4dx17,_0x2c4dx16,_0xe129[36]);logger[_0xe129[26]](_0xe129[25],_0x2c4dx17,_0x2c4dx16,_0xe129[30],JSON[_0xe129[31]](_0x2c4dx18));return _0x2c4dx15[_0xe129[40]](_0xe129[37],_0x2c4dx1d+ _0xe129[38]+ _0x2c4dx1e+ _0xe129[39]+ _0x2c4dx1c)[_0xe129[32]](_0x2c4dx18)};return null}}function patchUpdates(_0x2c4dx20){return function(_0x2c4dx18){try{jsonpatch[_0xe129[41]](_0x2c4dx18,_0x2c4dx20,true)}catch(err){return BPromise[_0xe129[42]](err)};return _0x2c4dx18[_0xe129[43]]()}}function saveUpdates(_0x2c4dx22,_0x2c4dx16,_0x2c4dx17){return function(_0x2c4dx18){if(_0x2c4dx18){return _0x2c4dx18[_0xe129[46]](_0x2c4dx22)[_0xe129[45]](function(_0x2c4dx23){logger[_0xe129[24]](_0xe129[22],_0x2c4dx17,_0x2c4dx16,_0xe129[44]);logger[_0xe129[26]](_0xe129[25],_0x2c4dx17,_0x2c4dx16,_0xe129[44],JSON[_0xe129[31]](_0x2c4dx18));return _0x2c4dx23})};return null}}function removeEntity(_0x2c4dx15,_0x2c4dx16,_0x2c4dx17){return function(_0x2c4dx18){if(_0x2c4dx18){return _0x2c4dx18[_0xe129[48]]()[_0xe129[45]](function(){logger[_0xe129[24]](_0xe129[22],_0x2c4dx17,_0x2c4dx16,_0xe129[47]);logger[_0xe129[26]](_0xe129[25],_0x2c4dx17,_0x2c4dx16,_0xe129[47],JSON[_0xe129[31]](_0x2c4dx18));_0x2c4dx15[_0xe129[29]](204)[_0xe129[28]]()})}}}function handleEntityNotFound(_0x2c4dx15,_0x2c4dx16,_0x2c4dx17){return function(_0x2c4dx18){if(!_0x2c4dx18){logger[_0xe129[50]](_0xe129[22],_0x2c4dx17,404,_0xe129[49]);_0x2c4dx15[_0xe129[29]](404)[_0xe129[28]]();return null};return _0x2c4dx18}}function handleError(_0x2c4dx15,_0x2c4dx16,_0x2c4dx17){_0x2c4dx16= _0x2c4dx16|| 500;return function(_0x2c4dx27){logger[_0xe129[50]](_0xe129[22],_0x2c4dx17,_0x2c4dx16,JSON[_0xe129[31]](_0x2c4dx27));delete _0x2c4dx27[_0xe129[51]];_0x2c4dx15[_0xe129[29]](_0x2c4dx16)[_0xe129[52]](_0x2c4dx27)}}exports[_0xe129[53]]= function(_0x2c4dx28,_0x2c4dx15){var _0x2c4dx1b={},_0x2c4dx29={};_0x2c4dx29[_0xe129[54]]= _[_0xe129[57]](db[_0xe129[56]][_0xe129[55]]);_0x2c4dx29[_0xe129[58]]= _[_0xe129[57]](_0x2c4dx28[_0xe129[58]]);_0x2c4dx29[_0xe129[59]]= _[_0xe129[60]](_0x2c4dx29[_0xe129[54]],_0x2c4dx29[_0xe129[58]]);_0x2c4dx1b[_0xe129[61]]= _[_0xe129[60]](_0x2c4dx29[_0xe129[54]],qs[_0xe129[62]](_0x2c4dx28[_0xe129[58]][_0xe129[62]]));_0x2c4dx1b[_0xe129[61]]= (_0x2c4dx1b[_0xe129[61]][_0xe129[63]])?_0x2c4dx1b[_0xe129[61]]:_0x2c4dx29[_0xe129[54]];if(!_0x2c4dx28[_0xe129[58]][_0xe129[65]](_0xe129[64])){_0x2c4dx1b[_0xe129[35]]= qs[_0xe129[35]](_0x2c4dx28[_0xe129[58]][_0xe129[35]]);_0x2c4dx1b[_0xe129[34]]= qs[_0xe129[34]](_0x2c4dx28[_0xe129[58]][_0xe129[34]])};_0x2c4dx1b[_0xe129[66]]= qs[_0xe129[67]](_0x2c4dx28[_0xe129[58]][_0xe129[67]]);_0x2c4dx1b[_0xe129[68]]= qs[_0xe129[59]](_[_0xe129[69]](_0x2c4dx28[_0xe129[58]],_0x2c4dx29[_0xe129[59]]));if(_0x2c4dx28[_0xe129[58]][_0xe129[70]]){_0x2c4dx1b[_0xe129[68]]= _[_0xe129[73]](_0x2c4dx1b[_0xe129[68]],{$or:_[_0xe129[72]](_0x2c4dx1b[_0xe129[61]],function(_0x2c4dx2a){var _0x2c4dx2b={};_0x2c4dx2b[_0x2c4dx2a]= {$like:_0xe129[71]+ _0x2c4dx28[_0xe129[58]][_0xe129[70]]+ _0xe129[71]};return _0x2c4dx2b})})};_0x2c4dx1b= _[_0xe129[73]]({},_0x2c4dx1b,_0x2c4dx28[_0xe129[74]]);return db[_0xe129[56]][_0xe129[76]](_0x2c4dx1b)[_0xe129[45]](respondWithFilteredResult(_0x2c4dx15,_0x2c4dx1b,_0xe129[53]))[_0xe129[75]](handleError(_0x2c4dx15,null,_0xe129[53]))};exports[_0xe129[77]]= function(_0x2c4dx28,_0x2c4dx15){var _0x2c4dx1b={raw:true,where:{id:_0x2c4dx28[_0xe129[79]][_0xe129[78]]}},_0x2c4dx29={};_0x2c4dx29[_0xe129[54]]= _[_0xe129[57]](db[_0xe129[56]][_0xe129[55]]);_0x2c4dx29[_0xe129[58]]= _[_0xe129[57]](_0x2c4dx28[_0xe129[58]]);_0x2c4dx29[_0xe129[59]]= _[_0xe129[60]](_0x2c4dx29[_0xe129[54]],_0x2c4dx29[_0xe129[58]]);_0x2c4dx1b[_0xe129[61]]= _[_0xe129[60]](_0x2c4dx29[_0xe129[54]],qs[_0xe129[62]](_0x2c4dx28[_0xe129[58]][_0xe129[62]]));_0x2c4dx1b[_0xe129[61]]= (_0x2c4dx1b[_0xe129[61]][_0xe129[63]])?_0x2c4dx1b[_0xe129[61]]:_0x2c4dx29[_0xe129[54]];_0x2c4dx1b= _[_0xe129[73]]({},_0x2c4dx1b,_0x2c4dx28[_0xe129[74]]);return db[_0xe129[56]][_0xe129[80]](_0x2c4dx1b)[_0xe129[45]](handleEntityNotFound(_0x2c4dx15,null,_0xe129[77]))[_0xe129[45]](respondWithResult(_0x2c4dx15,null,_0xe129[77]))[_0xe129[75]](handleError(_0x2c4dx15,null,_0xe129[77]))};exports[_0xe129[81]]= function(_0x2c4dx28,_0x2c4dx15){return db[_0xe129[56]][_0xe129[81]](_0x2c4dx28[_0xe129[82]],{})[_0xe129[45]](respondWithResult(_0x2c4dx15,201,_0xe129[81]))[_0xe129[75]](handleError(_0x2c4dx15,null,_0xe129[81]))};exports[_0xe129[46]]= function(_0x2c4dx28,_0x2c4dx15){if(_0x2c4dx28[_0xe129[82]][_0xe129[78]]){delete _0x2c4dx28[_0xe129[82]][_0xe129[78]]};return db[_0xe129[56]][_0xe129[80]]({where:{id:_0x2c4dx28[_0xe129[79]][_0xe129[78]]}})[_0xe129[45]](handleEntityNotFound(_0x2c4dx15,null,_0xe129[46]))[_0xe129[45]](saveUpdates(_0x2c4dx28[_0xe129[82]],null,_0xe129[46]))[_0xe129[45]](respondWithResult(_0x2c4dx15,null,_0xe129[46]))[_0xe129[75]](handleError(_0x2c4dx15,null,_0xe129[46]))};exports[_0xe129[48]]= function(_0x2c4dx28,_0x2c4dx15){return db[_0xe129[56]][_0xe129[80]]({where:{id:_0x2c4dx28[_0xe129[79]][_0xe129[78]]}})[_0xe129[45]](handleEntityNotFound(_0x2c4dx15,null,_0xe129[48]))[_0xe129[45]](removeEntity(_0x2c4dx15,null,_0xe129[48]))[_0xe129[75]](handleError(_0x2c4dx15,null,_0xe129[48]))};exports[_0xe129[83]]= function(_0x2c4dx28,_0x2c4dx15,_0x2c4dx2c){var _0x2c4dx2d;return db[_0xe129[56]][_0xe129[80]]({where:{id:_0x2c4dx28[_0xe129[79]][_0xe129[78]]},attributes:[_0xe129[78],_0xe129[85]]})[_0xe129[45]](handleEntityNotFound(_0x2c4dx15,null,_0xe129[83]))[_0xe129[45]](function(_0x2c4dx18){if(_0x2c4dx18){var db=require(_0xe129[84])();db[_0xe129[86]](_0x2c4dx18[_0xe129[85]]);db[_0xe129[87]]();return _0x2c4dx18}})[_0xe129[45]](respondWithResult(_0x2c4dx15,null,_0xe129[83]))[_0xe129[75]](handleError(_0x2c4dx15,null,_0xe129[83]))}
\ No newline at end of file
index 169445d..eda25ae 100644 (file)
@@ -1 +1 @@
-var _0xdc9c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x64\x65\x66\x69\x6E\x65"];_0xdc9c[0];var _=require(_0xdc9c[1]);var util=require(_0xdc9c[2]);var logger=require(_0xdc9c[4])(_0xdc9c[3]);var attributes=require(_0xdc9c[5]);module[_0xdc9c[6]]= function(_0x8ab7x5,_0x8ab7x6){return _0x8ab7x5[_0xdc9c[9]](_0xdc9c[7],attributes,{tableName:_0xdc9c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x1115=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x64\x65\x66\x69\x6E\x65"];_0x1115[0];var _=require(_0x1115[1]);var util=require(_0x1115[2]);var logger=require(_0x1115[4])(_0x1115[3]);var attributes=require(_0x1115[5]);module[_0x1115[6]]= function(_0x7d9ax5,_0x7d9ax6){return _0x7d9ax5[_0x1115[9]](_0x1115[7],attributes,{tableName:_0x1115[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 690d3af..8c33507 100644 (file)
@@ -1 +1 @@
-var _0x8be5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63"];_0x8be5[0];var _=require(_0x8be5[1]);var util=require(_0x8be5[2]);var moment=require(_0x8be5[3]);var BPromise=require(_0x8be5[4]);var db=require(_0x8be5[6])[_0x8be5[5]];var utils=require(_0x8be5[7]);var logger=require(_0x8be5[9])(_0x8be5[8]);var jayson=require(_0x8be5[10]);var client=jayson[_0x8be5[12]][_0x8be5[11]]({port:9002});function respondWithRpcPromise(_0x3a6fxb,_0x3a6fxc,_0x3a6fxd){return  new BPromise(function(_0x3a6fxe,_0x3a6fxf){return client[_0x8be5[25]](_0x3a6fxb,_0x3a6fxd)[_0x8be5[24]](function(_0x3a6fx11){logger[_0x8be5[17]](_0x8be5[13],_0x3a6fxc,_0x8be5[16]);logger[_0x8be5[20]](_0x8be5[18],_0x3a6fxc,_0x8be5[16],JSON[_0x8be5[19]](_0x3a6fx11));if(_0x3a6fx11[_0x8be5[14]]){if(_0x3a6fx11[_0x8be5[14]][_0x8be5[21]]=== 500){logger[_0x8be5[14]](_0x8be5[13],_0x3a6fxc,_0x3a6fx11[_0x8be5[14]][_0x8be5[22]]);return _0x3a6fxf(_0x3a6fx11[_0x8be5[14]][_0x8be5[22]])};logger[_0x8be5[14]](_0x8be5[13],_0x3a6fxc,_0x3a6fx11[_0x8be5[14]][_0x8be5[22]]);return _0x3a6fxe(_0x3a6fx11[_0x8be5[14]][_0x8be5[22]])}else {logger[_0x8be5[17]](_0x8be5[13],_0x3a6fxc,_0x8be5[16]);_0x3a6fxe(_0x3a6fx11[_0x8be5[23]][_0x8be5[22]])}})[_0x8be5[15]](function(_0x3a6fx10){logger[_0x8be5[14]](_0x8be5[13],_0x3a6fxc,_0x3a6fx10);_0x3a6fxf(_0x3a6fx10)})})}exports[_0x8be5[26]]= function(_0x3a6fxd){var _0x3a6fx12=this;return  new Promise(function(_0x3a6fxe,_0x3a6fxf){return db[_0x8be5[36]][_0x8be5[35]]({raw:_0x3a6fxd[_0x8be5[27]]?(_0x3a6fxd[_0x8be5[27]][_0x8be5[28]]=== undefined)?true:false:true,where:_0x3a6fxd[_0x8be5[27]]?_0x3a6fxd[_0x8be5[27]][_0x8be5[29]]|| null:null,attributes:_0x3a6fxd[_0x8be5[27]]?_0x3a6fxd[_0x8be5[27]][_0x8be5[30]]|| null:null,include:_0x3a6fxd[_0x8be5[27]]?(_0x3a6fxd[_0x8be5[27]][_0x8be5[31]]?_[_0x8be5[34]](_0x3a6fxd[_0x8be5[27]][_0x8be5[31]],function(_0x3a6fx13){return {model:db[_0x3a6fx13[_0x8be5[32]]],as:_0x3a6fx13[_0x8be5[33]],attributes:_0x3a6fx13[_0x8be5[30]],include:_0x3a6fx13[_0x8be5[31]]?_[_0x8be5[34]](_0x3a6fx13[_0x8be5[31]],function(_0x3a6fx14){return {model:db[_0x3a6fx14[_0x8be5[32]]],as:_0x3a6fx14[_0x8be5[33]],attributes:_0x3a6fx14[_0x8be5[30]],include:_0x3a6fx14[_0x8be5[31]]?_[_0x8be5[34]](_0x3a6fx14[_0x8be5[31]],function(_0x3a6fx15){return {model:db[_0x3a6fx15[_0x8be5[32]]],as:_0x3a6fx15[_0x8be5[33]],attributes:_0x3a6fx15[_0x8be5[30]]}}):[]}}):[]}}):[]):[]})[_0x8be5[24]](function(_0x3a6fx11){logger[_0x8be5[17]](_0x8be5[26],_0x3a6fxd);logger[_0x8be5[20]](_0x8be5[26],_0x3a6fxd,JSON[_0x8be5[19]](_0x3a6fx11));_0x3a6fxe(_0x3a6fx11)})[_0x8be5[15]](function(_0x3a6fx10){logger[_0x8be5[14]](_0x8be5[26],_0x3a6fx10[_0x8be5[22]],_0x3a6fxd);_0x3a6fxf(_0x3a6fx12[_0x8be5[14]](500,_0x3a6fx10[_0x8be5[22]]))})})}
\ No newline at end of file
+var _0x79a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63"];_0x79a0[0];var _=require(_0x79a0[1]);var util=require(_0x79a0[2]);var moment=require(_0x79a0[3]);var BPromise=require(_0x79a0[4]);var db=require(_0x79a0[6])[_0x79a0[5]];var utils=require(_0x79a0[7]);var logger=require(_0x79a0[9])(_0x79a0[8]);var jayson=require(_0x79a0[10]);var client=jayson[_0x79a0[12]][_0x79a0[11]]({port:9002});function respondWithRpcPromise(_0xa1a8xb,_0xa1a8xc,_0xa1a8xd){return  new BPromise(function(_0xa1a8xe,_0xa1a8xf){return client[_0x79a0[25]](_0xa1a8xb,_0xa1a8xd)[_0x79a0[24]](function(_0xa1a8x11){logger[_0x79a0[17]](_0x79a0[13],_0xa1a8xc,_0x79a0[16]);logger[_0x79a0[20]](_0x79a0[18],_0xa1a8xc,_0x79a0[16],JSON[_0x79a0[19]](_0xa1a8x11));if(_0xa1a8x11[_0x79a0[14]]){if(_0xa1a8x11[_0x79a0[14]][_0x79a0[21]]=== 500){logger[_0x79a0[14]](_0x79a0[13],_0xa1a8xc,_0xa1a8x11[_0x79a0[14]][_0x79a0[22]]);return _0xa1a8xf(_0xa1a8x11[_0x79a0[14]][_0x79a0[22]])};logger[_0x79a0[14]](_0x79a0[13],_0xa1a8xc,_0xa1a8x11[_0x79a0[14]][_0x79a0[22]]);return _0xa1a8xe(_0xa1a8x11[_0x79a0[14]][_0x79a0[22]])}else {logger[_0x79a0[17]](_0x79a0[13],_0xa1a8xc,_0x79a0[16]);_0xa1a8xe(_0xa1a8x11[_0x79a0[23]][_0x79a0[22]])}})[_0x79a0[15]](function(_0xa1a8x10){logger[_0x79a0[14]](_0x79a0[13],_0xa1a8xc,_0xa1a8x10);_0xa1a8xf(_0xa1a8x10)})})}exports[_0x79a0[26]]= function(_0xa1a8xd){var _0xa1a8x12=this;return  new Promise(function(_0xa1a8xe,_0xa1a8xf){return db[_0x79a0[36]][_0x79a0[35]]({raw:_0xa1a8xd[_0x79a0[27]]?(_0xa1a8xd[_0x79a0[27]][_0x79a0[28]]=== undefined)?true:false:true,where:_0xa1a8xd[_0x79a0[27]]?_0xa1a8xd[_0x79a0[27]][_0x79a0[29]]|| null:null,attributes:_0xa1a8xd[_0x79a0[27]]?_0xa1a8xd[_0x79a0[27]][_0x79a0[30]]|| null:null,include:_0xa1a8xd[_0x79a0[27]]?(_0xa1a8xd[_0x79a0[27]][_0x79a0[31]]?_[_0x79a0[34]](_0xa1a8xd[_0x79a0[27]][_0x79a0[31]],function(_0xa1a8x13){return {model:db[_0xa1a8x13[_0x79a0[32]]],as:_0xa1a8x13[_0x79a0[33]],attributes:_0xa1a8x13[_0x79a0[30]],include:_0xa1a8x13[_0x79a0[31]]?_[_0x79a0[34]](_0xa1a8x13[_0x79a0[31]],function(_0xa1a8x14){return {model:db[_0xa1a8x14[_0x79a0[32]]],as:_0xa1a8x14[_0x79a0[33]],attributes:_0xa1a8x14[_0x79a0[30]],include:_0xa1a8x14[_0x79a0[31]]?_[_0x79a0[34]](_0xa1a8x14[_0x79a0[31]],function(_0xa1a8x15){return {model:db[_0xa1a8x15[_0x79a0[32]]],as:_0xa1a8x15[_0x79a0[33]],attributes:_0xa1a8x15[_0x79a0[30]]}}):[]}}):[]}}):[]):[]})[_0x79a0[24]](function(_0xa1a8x11){logger[_0x79a0[17]](_0x79a0[26],_0xa1a8xd);logger[_0x79a0[20]](_0x79a0[26],_0xa1a8xd,JSON[_0x79a0[19]](_0xa1a8x11));_0xa1a8xe(_0xa1a8x11)})[_0x79a0[15]](function(_0xa1a8x10){logger[_0x79a0[14]](_0x79a0[26],_0xa1a8x10[_0x79a0[22]],_0xa1a8xd);_0xa1a8xf(_0xa1a8x12[_0x79a0[14]](500,_0xa1a8x10[_0x79a0[22]]))})})}
\ No newline at end of file
index b82aebd..5d8b280 100644 (file)
@@ -1 +1 @@
-var _0x3f8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3f8c[0];var multer=require(_0x3f8c[1]);var util=require(_0x3f8c[2]);var path=require(_0x3f8c[3]);var express=require(_0x3f8c[4]);var router=express.Router();var auth=require(_0x3f8c[5]);var config=require(_0x3f8c[6]);var controller=require(_0x3f8c[7]);router[_0x3f8c[11]](_0x3f8c[8],auth[_0x3f8c[9]](),controller[_0x3f8c[10]]);router[_0x3f8c[11]](_0x3f8c[12],auth[_0x3f8c[9]](),controller[_0x3f8c[13]]);router[_0x3f8c[15]](_0x3f8c[8],auth[_0x3f8c[9]](),controller[_0x3f8c[14]]);router[_0x3f8c[17]](_0x3f8c[12],auth[_0x3f8c[9]](),controller[_0x3f8c[16]]);router[_0x3f8c[19]](_0x3f8c[12],auth[_0x3f8c[9]](),controller[_0x3f8c[18]]);module[_0x3f8c[20]]= router
\ No newline at end of file
+var _0xc745=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc745[0];var multer=require(_0xc745[1]);var util=require(_0xc745[2]);var path=require(_0xc745[3]);var express=require(_0xc745[4]);var router=express.Router();var auth=require(_0xc745[5]);var config=require(_0xc745[6]);var controller=require(_0xc745[7]);router[_0xc745[11]](_0xc745[8],auth[_0xc745[9]](),controller[_0xc745[10]]);router[_0xc745[11]](_0xc745[12],auth[_0xc745[9]](),controller[_0xc745[13]]);router[_0xc745[15]](_0xc745[8],auth[_0xc745[9]](),controller[_0xc745[14]]);router[_0xc745[17]](_0xc745[12],auth[_0xc745[9]](),controller[_0xc745[16]]);router[_0xc745[19]](_0xc745[12],auth[_0xc745[9]](),controller[_0xc745[18]]);module[_0xc745[20]]= router
\ No newline at end of file
index cf4119f..16e6a95 100644 (file)
@@ -1 +1 @@
-var _0xc3b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54","\x6C\x6F\x6E\x67","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x75\x74\x66\x38","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E"];_0xc3b5[0];var Sequelize=require(_0xc3b5[1]);module[_0xc3b5[2]]= {name:{type:Sequelize[_0xc3b5[3]],unique:_0xc3b5[4],allowNull:false},description:{type:Sequelize[_0xc3b5[3]]},notes:{type:Sequelize[_0xc3b5[5]]},preproduction:{type:Sequelize.BLOB(_0xc3b5[6]),get:function(){if(this[_0xc3b5[8]](_0xc3b5[7])){return this[_0xc3b5[8]](_0xc3b5[7]).toString(_0xc3b5[9])}}},production:{type:Sequelize.BLOB(_0xc3b5[6]),get:function(){if(this[_0xc3b5[8]](_0xc3b5[10])){return this[_0xc3b5[8]](_0xc3b5[10]).toString(_0xc3b5[9])}}}}
\ No newline at end of file
+var _0x608a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54","\x6C\x6F\x6E\x67","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x75\x74\x66\x38","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E"];_0x608a[0];var Sequelize=require(_0x608a[1]);module[_0x608a[2]]= {name:{type:Sequelize[_0x608a[3]],unique:_0x608a[4],allowNull:false},description:{type:Sequelize[_0x608a[3]]},notes:{type:Sequelize[_0x608a[5]]},preproduction:{type:Sequelize.BLOB(_0x608a[6]),get:function(){if(this[_0x608a[8]](_0x608a[7])){return this[_0x608a[8]](_0x608a[7]).toString(_0x608a[9])}}},production:{type:Sequelize.BLOB(_0x608a[6]),get:function(){if(this[_0x608a[8]](_0x608a[10])){return this[_0x608a[8]](_0x608a[10]).toString(_0x608a[9])}}}}
\ No newline at end of file
index e853fbd..1374f51 100644 (file)
@@ -1 +1 @@
-var _0xfc79=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xfc79[0];var jsonpatch=require(_0xfc79[1]);var rp=require(_0xfc79[2]);var moment=require(_0xfc79[3]);var BPromise=require(_0xfc79[4]);var util=require(_0xfc79[5]);var path=require(_0xfc79[6]);var sox=require(_0xfc79[7]);var ejs=require(_0xfc79[8]);var fs=require(_0xfc79[9]);var _=require(_0xfc79[10]);var squel=require(_0xfc79[11]);var crypto=require(_0xfc79[12]);var jsforce=require(_0xfc79[13]);var toCsv=require(_0xfc79[14]);var qs=require(_0xfc79[15]);var logger=require(_0xfc79[17])(_0xfc79[16]);var utils=require(_0xfc79[18]);var config=require(_0xfc79[19]);var db=require(_0xfc79[21])[_0xfc79[20]];function respondWithStatusCode(_0x3140x15,_0x3140x16,_0x3140x17){_0x3140x16= _0x3140x16|| 204;return function(_0x3140x18){if(_0x3140x18){logger[_0xfc79[24]](_0xfc79[22],_0x3140x17,_0x3140x16,_0xfc79[23]);logger[_0xfc79[26]](_0xfc79[25],_0x3140x17,_0x3140x16,_0xfc79[23]);return _0x3140x15[_0xfc79[27]](_0x3140x16)};return _0x3140x15[_0xfc79[29]](304)[_0xfc79[28]]()}}function respondWithResult(_0x3140x15,_0x3140x16,_0x3140x17){_0x3140x16= _0x3140x16|| 200;return function(_0x3140x18){if(_0x3140x18){logger[_0xfc79[24]](_0xfc79[22],_0x3140x17,_0x3140x16,_0xfc79[30]);logger[_0xfc79[26]](_0xfc79[25],_0x3140x17,_0x3140x16,_0xfc79[30],JSON[_0xfc79[31]](_0x3140x18));return _0x3140x15[_0xfc79[29]](_0x3140x16)[_0xfc79[32]](_0x3140x18)};return _0x3140x15[_0xfc79[29]](304)[_0xfc79[28]]()}}function respondWithFilteredResult(_0x3140x15,_0x3140x1b,_0x3140x17){return function(_0x3140x18){if(_0x3140x18){var _0x3140x1c=_0x3140x18[_0xfc79[33]],_0x3140x1d=_0x3140x1b[_0xfc79[34]],_0x3140x1e=_0x3140x1b[_0xfc79[34]]+ _0x3140x1b[_0xfc79[35]],_0x3140x16;if(_0x3140x1e>= _0x3140x1c){_0x3140x1e= _0x3140x1c;_0x3140x16= 200}else {_0x3140x16= 206};_0x3140x15[_0xfc79[29]](_0x3140x16);logger[_0xfc79[24]](_0xfc79[22],_0x3140x17,_0x3140x16,_0xfc79[36]);logger[_0xfc79[26]](_0xfc79[25],_0x3140x17,_0x3140x16,_0xfc79[30],JSON[_0xfc79[31]](_0x3140x18));return _0x3140x15[_0xfc79[40]](_0xfc79[37],_0x3140x1d+ _0xfc79[38]+ _0x3140x1e+ _0xfc79[39]+ _0x3140x1c)[_0xfc79[32]](_0x3140x18)};return null}}function patchUpdates(_0x3140x20){return function(_0x3140x18){try{jsonpatch[_0xfc79[41]](_0x3140x18,_0x3140x20,true)}catch(err){return BPromise[_0xfc79[42]](err)};return _0x3140x18[_0xfc79[43]]()}}function saveUpdates(_0x3140x22,_0x3140x16,_0x3140x17){return function(_0x3140x18){if(_0x3140x18){return _0x3140x18[_0xfc79[46]](_0x3140x22)[_0xfc79[45]](function(_0x3140x23){logger[_0xfc79[24]](_0xfc79[22],_0x3140x17,_0x3140x16,_0xfc79[44]);logger[_0xfc79[26]](_0xfc79[25],_0x3140x17,_0x3140x16,_0xfc79[44],JSON[_0xfc79[31]](_0x3140x18));return _0x3140x23})};return null}}function removeEntity(_0x3140x15,_0x3140x16,_0x3140x17){return function(_0x3140x18){if(_0x3140x18){return _0x3140x18[_0xfc79[48]]()[_0xfc79[45]](function(){logger[_0xfc79[24]](_0xfc79[22],_0x3140x17,_0x3140x16,_0xfc79[47]);logger[_0xfc79[26]](_0xfc79[25],_0x3140x17,_0x3140x16,_0xfc79[47],JSON[_0xfc79[31]](_0x3140x18));_0x3140x15[_0xfc79[29]](204)[_0xfc79[28]]()})}}}function handleEntityNotFound(_0x3140x15,_0x3140x16,_0x3140x17){return function(_0x3140x18){if(!_0x3140x18){logger[_0xfc79[50]](_0xfc79[22],_0x3140x17,404,_0xfc79[49]);_0x3140x15[_0xfc79[29]](404)[_0xfc79[28]]();return null};return _0x3140x18}}function handleError(_0x3140x15,_0x3140x16,_0x3140x17){_0x3140x16= _0x3140x16|| 500;return function(_0x3140x27){logger[_0xfc79[50]](_0xfc79[22],_0x3140x17,_0x3140x16,JSON[_0xfc79[31]](_0x3140x27));delete _0x3140x27[_0xfc79[51]];_0x3140x15[_0xfc79[29]](_0x3140x16)[_0xfc79[52]](_0x3140x27)}}exports[_0xfc79[53]]= function(_0x3140x28,_0x3140x15){var _0x3140x1b={},_0x3140x29={};_0x3140x29[_0xfc79[54]]= _[_0xfc79[57]](db[_0xfc79[56]][_0xfc79[55]]);_0x3140x29[_0xfc79[58]]= _[_0xfc79[57]](_0x3140x28[_0xfc79[58]]);_0x3140x29[_0xfc79[59]]= _[_0xfc79[60]](_0x3140x29[_0xfc79[54]],_0x3140x29[_0xfc79[58]]);_0x3140x1b[_0xfc79[61]]= _[_0xfc79[60]](_0x3140x29[_0xfc79[54]],qs[_0xfc79[62]](_0x3140x28[_0xfc79[58]][_0xfc79[62]]));_0x3140x1b[_0xfc79[61]]= (_0x3140x1b[_0xfc79[61]][_0xfc79[63]])?_0x3140x1b[_0xfc79[61]]:_0x3140x29[_0xfc79[54]];if(!_0x3140x28[_0xfc79[58]][_0xfc79[65]](_0xfc79[64])){_0x3140x1b[_0xfc79[35]]= qs[_0xfc79[35]](_0x3140x28[_0xfc79[58]][_0xfc79[35]]);_0x3140x1b[_0xfc79[34]]= qs[_0xfc79[34]](_0x3140x28[_0xfc79[58]][_0xfc79[34]])};_0x3140x1b[_0xfc79[66]]= qs[_0xfc79[67]](_0x3140x28[_0xfc79[58]][_0xfc79[67]]);_0x3140x1b[_0xfc79[68]]= qs[_0xfc79[59]](_[_0xfc79[69]](_0x3140x28[_0xfc79[58]],_0x3140x29[_0xfc79[59]]));if(_0x3140x28[_0xfc79[58]][_0xfc79[70]]){_0x3140x1b[_0xfc79[68]]= _[_0xfc79[73]](_0x3140x1b[_0xfc79[68]],{$or:_[_0xfc79[72]](_0x3140x1b[_0xfc79[61]],function(_0x3140x2a){var _0x3140x2b={};_0x3140x2b[_0x3140x2a]= {$like:_0xfc79[71]+ _0x3140x28[_0xfc79[58]][_0xfc79[70]]+ _0xfc79[71]};return _0x3140x2b})})};_0x3140x1b= _[_0xfc79[73]]({},_0x3140x1b,_0x3140x28[_0xfc79[74]]);return db[_0xfc79[56]][_0xfc79[76]](_0x3140x1b)[_0xfc79[45]](respondWithFilteredResult(_0x3140x15,_0x3140x1b,_0xfc79[53]))[_0xfc79[75]](handleError(_0x3140x15,null,_0xfc79[53]))};exports[_0xfc79[77]]= function(_0x3140x28,_0x3140x15){var _0x3140x1b={raw:false,where:{id:_0x3140x28[_0xfc79[79]][_0xfc79[78]]}},_0x3140x29={};_0x3140x29[_0xfc79[54]]= _[_0xfc79[57]](db[_0xfc79[56]][_0xfc79[55]]);_0x3140x29[_0xfc79[58]]= _[_0xfc79[57]](_0x3140x28[_0xfc79[58]]);_0x3140x29[_0xfc79[59]]= _[_0xfc79[60]](_0x3140x29[_0xfc79[54]],_0x3140x29[_0xfc79[58]]);_0x3140x1b[_0xfc79[61]]= _[_0xfc79[60]](_0x3140x29[_0xfc79[54]],qs[_0xfc79[62]](_0x3140x28[_0xfc79[58]][_0xfc79[62]]));_0x3140x1b[_0xfc79[61]]= (_0x3140x1b[_0xfc79[61]][_0xfc79[63]])?_0x3140x1b[_0xfc79[61]]:_0x3140x29[_0xfc79[54]];_0x3140x1b= _[_0xfc79[73]]({},_0x3140x1b,_0x3140x28[_0xfc79[74]]);return db[_0xfc79[56]][_0xfc79[80]](_0x3140x1b)[_0xfc79[45]](handleEntityNotFound(_0x3140x15,null,_0xfc79[77]))[_0xfc79[45]](respondWithResult(_0x3140x15,null,_0xfc79[77]))[_0xfc79[75]](handleError(_0x3140x15,null,_0xfc79[77]))};exports[_0xfc79[81]]= function(_0x3140x28,_0x3140x15){return db[_0xfc79[56]][_0xfc79[81]](_0x3140x28[_0xfc79[82]],{})[_0xfc79[45]](respondWithResult(_0x3140x15,201,_0xfc79[81]))[_0xfc79[75]](handleError(_0x3140x15,null,_0xfc79[81]))};exports[_0xfc79[46]]= function(_0x3140x28,_0x3140x15){if(_0x3140x28[_0xfc79[82]][_0xfc79[78]]){delete _0x3140x28[_0xfc79[82]][_0xfc79[78]]};return db[_0xfc79[56]][_0xfc79[80]]({where:{id:_0x3140x28[_0xfc79[79]][_0xfc79[78]]}})[_0xfc79[45]](handleEntityNotFound(_0x3140x15,null,_0xfc79[46]))[_0xfc79[45]](saveUpdates(_0x3140x28[_0xfc79[82]],null,_0xfc79[46]))[_0xfc79[45]](respondWithResult(_0x3140x15,null,_0xfc79[46]))[_0xfc79[75]](handleError(_0x3140x15,null,_0xfc79[46]))};exports[_0xfc79[48]]= function(_0x3140x28,_0x3140x15){return db[_0xfc79[56]][_0xfc79[80]]({where:{id:_0x3140x28[_0xfc79[79]][_0xfc79[78]]}})[_0xfc79[45]](handleEntityNotFound(_0x3140x15,null,_0xfc79[48]))[_0xfc79[45]](removeEntity(_0x3140x15,null,_0xfc79[48]))[_0xfc79[75]](handleError(_0x3140x15,null,_0xfc79[48]))}
\ No newline at end of file
+var _0x4229=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x4229[0];var jsonpatch=require(_0x4229[1]);var rp=require(_0x4229[2]);var moment=require(_0x4229[3]);var BPromise=require(_0x4229[4]);var util=require(_0x4229[5]);var path=require(_0x4229[6]);var sox=require(_0x4229[7]);var ejs=require(_0x4229[8]);var fs=require(_0x4229[9]);var _=require(_0x4229[10]);var squel=require(_0x4229[11]);var crypto=require(_0x4229[12]);var jsforce=require(_0x4229[13]);var toCsv=require(_0x4229[14]);var qs=require(_0x4229[15]);var logger=require(_0x4229[17])(_0x4229[16]);var utils=require(_0x4229[18]);var config=require(_0x4229[19]);var db=require(_0x4229[21])[_0x4229[20]];function respondWithStatusCode(_0x9188x15,_0x9188x16,_0x9188x17){_0x9188x16= _0x9188x16|| 204;return function(_0x9188x18){if(_0x9188x18){logger[_0x4229[24]](_0x4229[22],_0x9188x17,_0x9188x16,_0x4229[23]);logger[_0x4229[26]](_0x4229[25],_0x9188x17,_0x9188x16,_0x4229[23]);return _0x9188x15[_0x4229[27]](_0x9188x16)};return _0x9188x15[_0x4229[29]](304)[_0x4229[28]]()}}function respondWithResult(_0x9188x15,_0x9188x16,_0x9188x17){_0x9188x16= _0x9188x16|| 200;return function(_0x9188x18){if(_0x9188x18){logger[_0x4229[24]](_0x4229[22],_0x9188x17,_0x9188x16,_0x4229[30]);logger[_0x4229[26]](_0x4229[25],_0x9188x17,_0x9188x16,_0x4229[30],JSON[_0x4229[31]](_0x9188x18));return _0x9188x15[_0x4229[29]](_0x9188x16)[_0x4229[32]](_0x9188x18)};return _0x9188x15[_0x4229[29]](304)[_0x4229[28]]()}}function respondWithFilteredResult(_0x9188x15,_0x9188x1b,_0x9188x17){return function(_0x9188x18){if(_0x9188x18){var _0x9188x1c=_0x9188x18[_0x4229[33]],_0x9188x1d=_0x9188x1b[_0x4229[34]],_0x9188x1e=_0x9188x1b[_0x4229[34]]+ _0x9188x1b[_0x4229[35]],_0x9188x16;if(_0x9188x1e>= _0x9188x1c){_0x9188x1e= _0x9188x1c;_0x9188x16= 200}else {_0x9188x16= 206};_0x9188x15[_0x4229[29]](_0x9188x16);logger[_0x4229[24]](_0x4229[22],_0x9188x17,_0x9188x16,_0x4229[36]);logger[_0x4229[26]](_0x4229[25],_0x9188x17,_0x9188x16,_0x4229[30],JSON[_0x4229[31]](_0x9188x18));return _0x9188x15[_0x4229[40]](_0x4229[37],_0x9188x1d+ _0x4229[38]+ _0x9188x1e+ _0x4229[39]+ _0x9188x1c)[_0x4229[32]](_0x9188x18)};return null}}function patchUpdates(_0x9188x20){return function(_0x9188x18){try{jsonpatch[_0x4229[41]](_0x9188x18,_0x9188x20,true)}catch(err){return BPromise[_0x4229[42]](err)};return _0x9188x18[_0x4229[43]]()}}function saveUpdates(_0x9188x22,_0x9188x16,_0x9188x17){return function(_0x9188x18){if(_0x9188x18){return _0x9188x18[_0x4229[46]](_0x9188x22)[_0x4229[45]](function(_0x9188x23){logger[_0x4229[24]](_0x4229[22],_0x9188x17,_0x9188x16,_0x4229[44]);logger[_0x4229[26]](_0x4229[25],_0x9188x17,_0x9188x16,_0x4229[44],JSON[_0x4229[31]](_0x9188x18));return _0x9188x23})};return null}}function removeEntity(_0x9188x15,_0x9188x16,_0x9188x17){return function(_0x9188x18){if(_0x9188x18){return _0x9188x18[_0x4229[48]]()[_0x4229[45]](function(){logger[_0x4229[24]](_0x4229[22],_0x9188x17,_0x9188x16,_0x4229[47]);logger[_0x4229[26]](_0x4229[25],_0x9188x17,_0x9188x16,_0x4229[47],JSON[_0x4229[31]](_0x9188x18));_0x9188x15[_0x4229[29]](204)[_0x4229[28]]()})}}}function handleEntityNotFound(_0x9188x15,_0x9188x16,_0x9188x17){return function(_0x9188x18){if(!_0x9188x18){logger[_0x4229[50]](_0x4229[22],_0x9188x17,404,_0x4229[49]);_0x9188x15[_0x4229[29]](404)[_0x4229[28]]();return null};return _0x9188x18}}function handleError(_0x9188x15,_0x9188x16,_0x9188x17){_0x9188x16= _0x9188x16|| 500;return function(_0x9188x27){logger[_0x4229[50]](_0x4229[22],_0x9188x17,_0x9188x16,JSON[_0x4229[31]](_0x9188x27));delete _0x9188x27[_0x4229[51]];_0x9188x15[_0x4229[29]](_0x9188x16)[_0x4229[52]](_0x9188x27)}}exports[_0x4229[53]]= function(_0x9188x28,_0x9188x15){var _0x9188x1b={},_0x9188x29={};_0x9188x29[_0x4229[54]]= _[_0x4229[57]](db[_0x4229[56]][_0x4229[55]]);_0x9188x29[_0x4229[58]]= _[_0x4229[57]](_0x9188x28[_0x4229[58]]);_0x9188x29[_0x4229[59]]= _[_0x4229[60]](_0x9188x29[_0x4229[54]],_0x9188x29[_0x4229[58]]);_0x9188x1b[_0x4229[61]]= _[_0x4229[60]](_0x9188x29[_0x4229[54]],qs[_0x4229[62]](_0x9188x28[_0x4229[58]][_0x4229[62]]));_0x9188x1b[_0x4229[61]]= (_0x9188x1b[_0x4229[61]][_0x4229[63]])?_0x9188x1b[_0x4229[61]]:_0x9188x29[_0x4229[54]];if(!_0x9188x28[_0x4229[58]][_0x4229[65]](_0x4229[64])){_0x9188x1b[_0x4229[35]]= qs[_0x4229[35]](_0x9188x28[_0x4229[58]][_0x4229[35]]);_0x9188x1b[_0x4229[34]]= qs[_0x4229[34]](_0x9188x28[_0x4229[58]][_0x4229[34]])};_0x9188x1b[_0x4229[66]]= qs[_0x4229[67]](_0x9188x28[_0x4229[58]][_0x4229[67]]);_0x9188x1b[_0x4229[68]]= qs[_0x4229[59]](_[_0x4229[69]](_0x9188x28[_0x4229[58]],_0x9188x29[_0x4229[59]]));if(_0x9188x28[_0x4229[58]][_0x4229[70]]){_0x9188x1b[_0x4229[68]]= _[_0x4229[73]](_0x9188x1b[_0x4229[68]],{$or:_[_0x4229[72]](_0x9188x1b[_0x4229[61]],function(_0x9188x2a){var _0x9188x2b={};_0x9188x2b[_0x9188x2a]= {$like:_0x4229[71]+ _0x9188x28[_0x4229[58]][_0x4229[70]]+ _0x4229[71]};return _0x9188x2b})})};_0x9188x1b= _[_0x4229[73]]({},_0x9188x1b,_0x9188x28[_0x4229[74]]);return db[_0x4229[56]][_0x4229[76]](_0x9188x1b)[_0x4229[45]](respondWithFilteredResult(_0x9188x15,_0x9188x1b,_0x4229[53]))[_0x4229[75]](handleError(_0x9188x15,null,_0x4229[53]))};exports[_0x4229[77]]= function(_0x9188x28,_0x9188x15){var _0x9188x1b={raw:false,where:{id:_0x9188x28[_0x4229[79]][_0x4229[78]]}},_0x9188x29={};_0x9188x29[_0x4229[54]]= _[_0x4229[57]](db[_0x4229[56]][_0x4229[55]]);_0x9188x29[_0x4229[58]]= _[_0x4229[57]](_0x9188x28[_0x4229[58]]);_0x9188x29[_0x4229[59]]= _[_0x4229[60]](_0x9188x29[_0x4229[54]],_0x9188x29[_0x4229[58]]);_0x9188x1b[_0x4229[61]]= _[_0x4229[60]](_0x9188x29[_0x4229[54]],qs[_0x4229[62]](_0x9188x28[_0x4229[58]][_0x4229[62]]));_0x9188x1b[_0x4229[61]]= (_0x9188x1b[_0x4229[61]][_0x4229[63]])?_0x9188x1b[_0x4229[61]]:_0x9188x29[_0x4229[54]];_0x9188x1b= _[_0x4229[73]]({},_0x9188x1b,_0x9188x28[_0x4229[74]]);return db[_0x4229[56]][_0x4229[80]](_0x9188x1b)[_0x4229[45]](handleEntityNotFound(_0x9188x15,null,_0x4229[77]))[_0x4229[45]](respondWithResult(_0x9188x15,null,_0x4229[77]))[_0x4229[75]](handleError(_0x9188x15,null,_0x4229[77]))};exports[_0x4229[81]]= function(_0x9188x28,_0x9188x15){return db[_0x4229[56]][_0x4229[81]](_0x9188x28[_0x4229[82]],{})[_0x4229[45]](respondWithResult(_0x9188x15,201,_0x4229[81]))[_0x4229[75]](handleError(_0x9188x15,null,_0x4229[81]))};exports[_0x4229[46]]= function(_0x9188x28,_0x9188x15){if(_0x9188x28[_0x4229[82]][_0x4229[78]]){delete _0x9188x28[_0x4229[82]][_0x4229[78]]};return db[_0x4229[56]][_0x4229[80]]({where:{id:_0x9188x28[_0x4229[79]][_0x4229[78]]}})[_0x4229[45]](handleEntityNotFound(_0x9188x15,null,_0x4229[46]))[_0x4229[45]](saveUpdates(_0x9188x28[_0x4229[82]],null,_0x4229[46]))[_0x4229[45]](respondWithResult(_0x9188x15,null,_0x4229[46]))[_0x4229[75]](handleError(_0x9188x15,null,_0x4229[46]))};exports[_0x4229[48]]= function(_0x9188x28,_0x9188x15){return db[_0x4229[56]][_0x4229[80]]({where:{id:_0x9188x28[_0x4229[79]][_0x4229[78]]}})[_0x4229[45]](handleEntityNotFound(_0x9188x15,null,_0x4229[48]))[_0x4229[45]](removeEntity(_0x9188x15,null,_0x4229[48]))[_0x4229[75]](handleError(_0x9188x15,null,_0x4229[48]))}
\ No newline at end of file
index 6a859f7..aaeaa36 100644 (file)
@@ -1 +1 @@
-var _0x7364=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x7364[0];var _=require(_0x7364[1]);var util=require(_0x7364[2]);var logger=require(_0x7364[4])(_0x7364[3]);var attributes=require(_0x7364[5]);module[_0x7364[6]]= function(_0xf99cx5,_0xf99cx6){return _0xf99cx5[_0x7364[9]](_0x7364[7],attributes,{tableName:_0x7364[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x1180=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x1180[0];var _=require(_0x1180[1]);var util=require(_0x1180[2]);var logger=require(_0x1180[4])(_0x1180[3]);var attributes=require(_0x1180[5]);module[_0x1180[6]]= function(_0x1903x5,_0x1903x6){return _0x1903x5[_0x1180[9]](_0x1180[7],attributes,{tableName:_0x1180[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index ec4df02..1394712 100644 (file)
@@ -1 +1 @@
-var _0x193d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74"];_0x193d[0];var _=require(_0x193d[1]);var util=require(_0x193d[2]);var moment=require(_0x193d[3]);var BPromise=require(_0x193d[4]);var db=require(_0x193d[6])[_0x193d[5]];var utils=require(_0x193d[7]);var logger=require(_0x193d[9])(_0x193d[8]);var jayson=require(_0x193d[10]);var client=jayson[_0x193d[12]][_0x193d[11]]({port:9002});function respondWithRpcPromise(_0x6638xb,_0x6638xc,_0x6638xd){return  new BPromise(function(_0x6638xe,_0x6638xf){return client[_0x193d[25]](_0x6638xb,_0x6638xd)[_0x193d[24]](function(_0x6638x11){logger[_0x193d[17]](_0x193d[13],_0x6638xc,_0x193d[16]);logger[_0x193d[20]](_0x193d[18],_0x6638xc,_0x193d[16],JSON[_0x193d[19]](_0x6638x11));if(_0x6638x11[_0x193d[14]]){if(_0x6638x11[_0x193d[14]][_0x193d[21]]=== 500){logger[_0x193d[14]](_0x193d[13],_0x6638xc,_0x6638x11[_0x193d[14]][_0x193d[22]]);return _0x6638xf(_0x6638x11[_0x193d[14]][_0x193d[22]])};logger[_0x193d[14]](_0x193d[13],_0x6638xc,_0x6638x11[_0x193d[14]][_0x193d[22]]);return _0x6638xe(_0x6638x11[_0x193d[14]][_0x193d[22]])}else {logger[_0x193d[17]](_0x193d[13],_0x6638xc,_0x193d[16]);_0x6638xe(_0x6638x11[_0x193d[23]][_0x193d[22]])}})[_0x193d[15]](function(_0x6638x10){logger[_0x193d[14]](_0x193d[13],_0x6638xc,_0x6638x10);_0x6638xf(_0x6638x10)})})}exports[_0x193d[26]]= function(_0x6638xd){var _0x6638x12=this;return  new Promise(function(_0x6638xe,_0x6638xf){return db[_0x193d[36]][_0x193d[35]]({raw:_0x6638xd[_0x193d[27]]?(_0x6638xd[_0x193d[27]][_0x193d[28]]=== undefined)?true:false:true,where:_0x6638xd[_0x193d[27]]?_0x6638xd[_0x193d[27]][_0x193d[29]]|| null:null,attributes:_0x6638xd[_0x193d[27]]?_0x6638xd[_0x193d[27]][_0x193d[30]]|| null:null,include:_0x6638xd[_0x193d[27]]?(_0x6638xd[_0x193d[27]][_0x193d[31]]?_[_0x193d[34]](_0x6638xd[_0x193d[27]][_0x193d[31]],function(_0x6638x13){return {model:db[_0x6638x13[_0x193d[32]]],as:_0x6638x13[_0x193d[33]],attributes:_0x6638x13[_0x193d[30]],include:_0x6638x13[_0x193d[31]]?_[_0x193d[34]](_0x6638x13[_0x193d[31]],function(_0x6638x14){return {model:db[_0x6638x14[_0x193d[32]]],as:_0x6638x14[_0x193d[33]],attributes:_0x6638x14[_0x193d[30]],include:_0x6638x14[_0x193d[31]]?_[_0x193d[34]](_0x6638x14[_0x193d[31]],function(_0x6638x15){return {model:db[_0x6638x15[_0x193d[32]]],as:_0x6638x15[_0x193d[33]],attributes:_0x6638x15[_0x193d[30]]}}):[]}}):[]}}):[]):[]})[_0x193d[24]](function(_0x6638x11){logger[_0x193d[17]](_0x193d[26],_0x6638xd);logger[_0x193d[20]](_0x193d[26],_0x6638xd,JSON[_0x193d[19]](_0x6638x11));_0x6638xe(_0x6638x11)})[_0x193d[15]](function(_0x6638x10){logger[_0x193d[14]](_0x193d[26],_0x6638x10[_0x193d[22]],_0x6638xd);_0x6638xf(_0x6638x12[_0x193d[14]](500,_0x6638x10[_0x193d[22]]))})})}
\ No newline at end of file
+var _0xc392=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74"];_0xc392[0];var _=require(_0xc392[1]);var util=require(_0xc392[2]);var moment=require(_0xc392[3]);var BPromise=require(_0xc392[4]);var db=require(_0xc392[6])[_0xc392[5]];var utils=require(_0xc392[7]);var logger=require(_0xc392[9])(_0xc392[8]);var jayson=require(_0xc392[10]);var client=jayson[_0xc392[12]][_0xc392[11]]({port:9002});function respondWithRpcPromise(_0x18a8xb,_0x18a8xc,_0x18a8xd){return  new BPromise(function(_0x18a8xe,_0x18a8xf){return client[_0xc392[25]](_0x18a8xb,_0x18a8xd)[_0xc392[24]](function(_0x18a8x11){logger[_0xc392[17]](_0xc392[13],_0x18a8xc,_0xc392[16]);logger[_0xc392[20]](_0xc392[18],_0x18a8xc,_0xc392[16],JSON[_0xc392[19]](_0x18a8x11));if(_0x18a8x11[_0xc392[14]]){if(_0x18a8x11[_0xc392[14]][_0xc392[21]]=== 500){logger[_0xc392[14]](_0xc392[13],_0x18a8xc,_0x18a8x11[_0xc392[14]][_0xc392[22]]);return _0x18a8xf(_0x18a8x11[_0xc392[14]][_0xc392[22]])};logger[_0xc392[14]](_0xc392[13],_0x18a8xc,_0x18a8x11[_0xc392[14]][_0xc392[22]]);return _0x18a8xe(_0x18a8x11[_0xc392[14]][_0xc392[22]])}else {logger[_0xc392[17]](_0xc392[13],_0x18a8xc,_0xc392[16]);_0x18a8xe(_0x18a8x11[_0xc392[23]][_0xc392[22]])}})[_0xc392[15]](function(_0x18a8x10){logger[_0xc392[14]](_0xc392[13],_0x18a8xc,_0x18a8x10);_0x18a8xf(_0x18a8x10)})})}exports[_0xc392[26]]= function(_0x18a8xd){var _0x18a8x12=this;return  new Promise(function(_0x18a8xe,_0x18a8xf){return db[_0xc392[36]][_0xc392[35]]({raw:_0x18a8xd[_0xc392[27]]?(_0x18a8xd[_0xc392[27]][_0xc392[28]]=== undefined)?true:false:true,where:_0x18a8xd[_0xc392[27]]?_0x18a8xd[_0xc392[27]][_0xc392[29]]|| null:null,attributes:_0x18a8xd[_0xc392[27]]?_0x18a8xd[_0xc392[27]][_0xc392[30]]|| null:null,include:_0x18a8xd[_0xc392[27]]?(_0x18a8xd[_0xc392[27]][_0xc392[31]]?_[_0xc392[34]](_0x18a8xd[_0xc392[27]][_0xc392[31]],function(_0x18a8x13){return {model:db[_0x18a8x13[_0xc392[32]]],as:_0x18a8x13[_0xc392[33]],attributes:_0x18a8x13[_0xc392[30]],include:_0x18a8x13[_0xc392[31]]?_[_0xc392[34]](_0x18a8x13[_0xc392[31]],function(_0x18a8x14){return {model:db[_0x18a8x14[_0xc392[32]]],as:_0x18a8x14[_0xc392[33]],attributes:_0x18a8x14[_0xc392[30]],include:_0x18a8x14[_0xc392[31]]?_[_0xc392[34]](_0x18a8x14[_0xc392[31]],function(_0x18a8x15){return {model:db[_0x18a8x15[_0xc392[32]]],as:_0x18a8x15[_0xc392[33]],attributes:_0x18a8x15[_0xc392[30]]}}):[]}}):[]}}):[]):[]})[_0xc392[24]](function(_0x18a8x11){logger[_0xc392[17]](_0xc392[26],_0x18a8xd);logger[_0xc392[20]](_0xc392[26],_0x18a8xd,JSON[_0xc392[19]](_0x18a8x11));_0x18a8xe(_0x18a8x11)})[_0xc392[15]](function(_0x18a8x10){logger[_0xc392[14]](_0xc392[26],_0x18a8x10[_0xc392[22]],_0x18a8xd);_0x18a8xf(_0x18a8x12[_0xc392[14]](500,_0x18a8x10[_0xc392[22]]))})})}
\ No newline at end of file
index 73f655e..e39b0b7 100644 (file)
@@ -1 +1 @@
-var _0x7f27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7f27[0];var multer=require(_0x7f27[1]);var util=require(_0x7f27[2]);var path=require(_0x7f27[3]);var express=require(_0x7f27[4]);var router=express.Router();var auth=require(_0x7f27[5]);var config=require(_0x7f27[6]);var controller=require(_0x7f27[7]);router[_0x7f27[11]](_0x7f27[8],auth[_0x7f27[9]](),controller[_0x7f27[10]]);router[_0x7f27[11]](_0x7f27[12],auth[_0x7f27[9]](),controller[_0x7f27[13]]);router[_0x7f27[11]](_0x7f27[14],controller[_0x7f27[15]]);router[_0x7f27[17]](_0x7f27[8],auth[_0x7f27[9]](),controller[_0x7f27[16]]);router[_0x7f27[19]](_0x7f27[12],auth[_0x7f27[9]](),controller[_0x7f27[18]]);router[_0x7f27[21]](_0x7f27[12],auth[_0x7f27[9]](),controller[_0x7f27[20]]);module[_0x7f27[22]]= router
\ No newline at end of file
+var _0x4f49=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4f49[0];var multer=require(_0x4f49[1]);var util=require(_0x4f49[2]);var path=require(_0x4f49[3]);var express=require(_0x4f49[4]);var router=express.Router();var auth=require(_0x4f49[5]);var config=require(_0x4f49[6]);var controller=require(_0x4f49[7]);router[_0x4f49[11]](_0x4f49[8],auth[_0x4f49[9]](),controller[_0x4f49[10]]);router[_0x4f49[11]](_0x4f49[12],auth[_0x4f49[9]](),controller[_0x4f49[13]]);router[_0x4f49[11]](_0x4f49[14],controller[_0x4f49[15]]);router[_0x4f49[17]](_0x4f49[8],auth[_0x4f49[9]](),controller[_0x4f49[16]]);router[_0x4f49[19]](_0x4f49[12],auth[_0x4f49[9]](),controller[_0x4f49[18]]);router[_0x4f49[21]](_0x4f49[12],auth[_0x4f49[9]](),controller[_0x4f49[20]]);module[_0x4f49[22]]= router
\ No newline at end of file
index 64d4def..4e82cf7 100644 (file)
@@ -1 +1 @@
-var _0xeba3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xeba3[0];var Sequelize=require(_0xeba3[1]);module[_0xeba3[2]]= {uniqueid:{type:Sequelize[_0xeba3[3]]},callerid:{type:Sequelize[_0xeba3[3]]},calleridname:{type:Sequelize[_0xeba3[3]]},context:{type:Sequelize[_0xeba3[3]]},extension:{type:Sequelize[_0xeba3[3]]},priority:{type:Sequelize[_0xeba3[3]]},accountcode:{type:Sequelize[_0xeba3[3]]},dnid:{type:Sequelize[_0xeba3[3]]},projectName:{type:Sequelize[_0xeba3[3]]},saveName:{type:Sequelize[_0xeba3[3]]},filename:{type:Sequelize[_0xeba3[3]]},savePath:{type:Sequelize[_0xeba3[3]]}}
\ No newline at end of file
+var _0x9b99=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x9b99[0];var Sequelize=require(_0x9b99[1]);module[_0x9b99[2]]= {uniqueid:{type:Sequelize[_0x9b99[3]]},callerid:{type:Sequelize[_0x9b99[3]]},calleridname:{type:Sequelize[_0x9b99[3]]},context:{type:Sequelize[_0x9b99[3]]},extension:{type:Sequelize[_0x9b99[3]]},priority:{type:Sequelize[_0x9b99[3]]},accountcode:{type:Sequelize[_0x9b99[3]]},dnid:{type:Sequelize[_0x9b99[3]]},projectName:{type:Sequelize[_0x9b99[3]]},saveName:{type:Sequelize[_0x9b99[3]]},filename:{type:Sequelize[_0x9b99[3]]},savePath:{type:Sequelize[_0x9b99[3]]}}
\ No newline at end of file
index 015ba84..97d5009 100644 (file)
@@ -1 +1 @@
-var _0x6a0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x61\x76\x65\x50\x61\x74\x68","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x6a0f[0];var jsonpatch=require(_0x6a0f[1]);var rp=require(_0x6a0f[2]);var moment=require(_0x6a0f[3]);var BPromise=require(_0x6a0f[4]);var util=require(_0x6a0f[5]);var path=require(_0x6a0f[6]);var sox=require(_0x6a0f[7]);var ejs=require(_0x6a0f[8]);var fs=require(_0x6a0f[9]);var _=require(_0x6a0f[10]);var squel=require(_0x6a0f[11]);var crypto=require(_0x6a0f[12]);var jsforce=require(_0x6a0f[13]);var toCsv=require(_0x6a0f[14]);var qs=require(_0x6a0f[15]);var logger=require(_0x6a0f[17])(_0x6a0f[16]);var utils=require(_0x6a0f[18]);var config=require(_0x6a0f[19]);var db=require(_0x6a0f[21])[_0x6a0f[20]];function respondWithStatusCode(_0x72a3x15,_0x72a3x16,_0x72a3x17){_0x72a3x16= _0x72a3x16|| 204;return function(_0x72a3x18){if(_0x72a3x18){logger[_0x6a0f[24]](_0x6a0f[22],_0x72a3x17,_0x72a3x16,_0x6a0f[23]);logger[_0x6a0f[26]](_0x6a0f[25],_0x72a3x17,_0x72a3x16,_0x6a0f[23]);return _0x72a3x15[_0x6a0f[27]](_0x72a3x16)};return _0x72a3x15[_0x6a0f[29]](304)[_0x6a0f[28]]()}}function respondWithResult(_0x72a3x15,_0x72a3x16,_0x72a3x17){_0x72a3x16= _0x72a3x16|| 200;return function(_0x72a3x18){if(_0x72a3x18){logger[_0x6a0f[24]](_0x6a0f[22],_0x72a3x17,_0x72a3x16,_0x6a0f[30]);logger[_0x6a0f[26]](_0x6a0f[25],_0x72a3x17,_0x72a3x16,_0x6a0f[30],JSON[_0x6a0f[31]](_0x72a3x18));return _0x72a3x15[_0x6a0f[29]](_0x72a3x16)[_0x6a0f[32]](_0x72a3x18)};return _0x72a3x15[_0x6a0f[29]](304)[_0x6a0f[28]]()}}function respondWithFilteredResult(_0x72a3x15,_0x72a3x1b,_0x72a3x17){return function(_0x72a3x18){if(_0x72a3x18){var _0x72a3x1c=_0x72a3x18[_0x6a0f[33]],_0x72a3x1d=_0x72a3x1b[_0x6a0f[34]],_0x72a3x1e=_0x72a3x1b[_0x6a0f[34]]+ _0x72a3x1b[_0x6a0f[35]],_0x72a3x16;if(_0x72a3x1e>= _0x72a3x1c){_0x72a3x1e= _0x72a3x1c;_0x72a3x16= 200}else {_0x72a3x16= 206};_0x72a3x15[_0x6a0f[29]](_0x72a3x16);logger[_0x6a0f[24]](_0x6a0f[22],_0x72a3x17,_0x72a3x16,_0x6a0f[36]);logger[_0x6a0f[26]](_0x6a0f[25],_0x72a3x17,_0x72a3x16,_0x6a0f[30],JSON[_0x6a0f[31]](_0x72a3x18));return _0x72a3x15[_0x6a0f[40]](_0x6a0f[37],_0x72a3x1d+ _0x6a0f[38]+ _0x72a3x1e+ _0x6a0f[39]+ _0x72a3x1c)[_0x6a0f[32]](_0x72a3x18)};return null}}function patchUpdates(_0x72a3x20){return function(_0x72a3x18){try{jsonpatch[_0x6a0f[41]](_0x72a3x18,_0x72a3x20,true)}catch(err){return BPromise[_0x6a0f[42]](err)};return _0x72a3x18[_0x6a0f[43]]()}}function saveUpdates(_0x72a3x22,_0x72a3x16,_0x72a3x17){return function(_0x72a3x18){if(_0x72a3x18){return _0x72a3x18[_0x6a0f[46]](_0x72a3x22)[_0x6a0f[45]](function(_0x72a3x23){logger[_0x6a0f[24]](_0x6a0f[22],_0x72a3x17,_0x72a3x16,_0x6a0f[44]);logger[_0x6a0f[26]](_0x6a0f[25],_0x72a3x17,_0x72a3x16,_0x6a0f[44],JSON[_0x6a0f[31]](_0x72a3x18));return _0x72a3x23})};return null}}function removeEntity(_0x72a3x15,_0x72a3x16,_0x72a3x17){return function(_0x72a3x18){if(_0x72a3x18){return _0x72a3x18[_0x6a0f[48]]()[_0x6a0f[45]](function(){logger[_0x6a0f[24]](_0x6a0f[22],_0x72a3x17,_0x72a3x16,_0x6a0f[47]);logger[_0x6a0f[26]](_0x6a0f[25],_0x72a3x17,_0x72a3x16,_0x6a0f[47],JSON[_0x6a0f[31]](_0x72a3x18));_0x72a3x15[_0x6a0f[29]](204)[_0x6a0f[28]]()})}}}function handleEntityNotFound(_0x72a3x15,_0x72a3x16,_0x72a3x17){return function(_0x72a3x18){if(!_0x72a3x18){logger[_0x6a0f[50]](_0x6a0f[22],_0x72a3x17,404,_0x6a0f[49]);_0x72a3x15[_0x6a0f[29]](404)[_0x6a0f[28]]();return null};return _0x72a3x18}}function handleError(_0x72a3x15,_0x72a3x16,_0x72a3x17){_0x72a3x16= _0x72a3x16|| 500;return function(_0x72a3x27){logger[_0x6a0f[50]](_0x6a0f[22],_0x72a3x17,_0x72a3x16,JSON[_0x6a0f[31]](_0x72a3x27));delete _0x72a3x27[_0x6a0f[51]];_0x72a3x15[_0x6a0f[29]](_0x72a3x16)[_0x6a0f[52]](_0x72a3x27)}}exports[_0x6a0f[53]]= function(_0x72a3x28,_0x72a3x15){var _0x72a3x1b={},_0x72a3x29={};_0x72a3x29[_0x6a0f[54]]= _[_0x6a0f[57]](db[_0x6a0f[56]][_0x6a0f[55]]);_0x72a3x29[_0x6a0f[58]]= _[_0x6a0f[57]](_0x72a3x28[_0x6a0f[58]]);_0x72a3x29[_0x6a0f[59]]= _[_0x6a0f[60]](_0x72a3x29[_0x6a0f[54]],_0x72a3x29[_0x6a0f[58]]);_0x72a3x1b[_0x6a0f[61]]= _[_0x6a0f[60]](_0x72a3x29[_0x6a0f[54]],qs[_0x6a0f[62]](_0x72a3x28[_0x6a0f[58]][_0x6a0f[62]]));_0x72a3x1b[_0x6a0f[61]]= (_0x72a3x1b[_0x6a0f[61]][_0x6a0f[63]])?_0x72a3x1b[_0x6a0f[61]]:_0x72a3x29[_0x6a0f[54]];if(!_0x72a3x28[_0x6a0f[58]][_0x6a0f[65]](_0x6a0f[64])){_0x72a3x1b[_0x6a0f[35]]= qs[_0x6a0f[35]](_0x72a3x28[_0x6a0f[58]][_0x6a0f[35]]);_0x72a3x1b[_0x6a0f[34]]= qs[_0x6a0f[34]](_0x72a3x28[_0x6a0f[58]][_0x6a0f[34]])};_0x72a3x1b[_0x6a0f[66]]= qs[_0x6a0f[67]](_0x72a3x28[_0x6a0f[58]][_0x6a0f[67]]);_0x72a3x1b[_0x6a0f[68]]= qs[_0x6a0f[59]](_[_0x6a0f[69]](_0x72a3x28[_0x6a0f[58]],_0x72a3x29[_0x6a0f[59]]));if(_0x72a3x28[_0x6a0f[58]][_0x6a0f[70]]){_0x72a3x1b[_0x6a0f[68]]= _[_0x6a0f[73]](_0x72a3x1b[_0x6a0f[68]],{$or:_[_0x6a0f[72]](_0x72a3x1b[_0x6a0f[61]],function(_0x72a3x2a){var _0x72a3x2b={};_0x72a3x2b[_0x72a3x2a]= {$like:_0x6a0f[71]+ _0x72a3x28[_0x6a0f[58]][_0x6a0f[70]]+ _0x6a0f[71]};return _0x72a3x2b})})};_0x72a3x1b= _[_0x6a0f[73]]({},_0x72a3x1b,_0x72a3x28[_0x6a0f[74]]);return db[_0x6a0f[56]][_0x6a0f[76]](_0x72a3x1b)[_0x6a0f[45]](respondWithFilteredResult(_0x72a3x15,_0x72a3x1b,_0x6a0f[53]))[_0x6a0f[75]](handleError(_0x72a3x15,null,_0x6a0f[53]))};exports[_0x6a0f[77]]= function(_0x72a3x28,_0x72a3x15){var _0x72a3x1b={raw:true,where:{id:_0x72a3x28[_0x6a0f[79]][_0x6a0f[78]]}},_0x72a3x29={};_0x72a3x29[_0x6a0f[54]]= _[_0x6a0f[57]](db[_0x6a0f[56]][_0x6a0f[55]]);_0x72a3x29[_0x6a0f[58]]= _[_0x6a0f[57]](_0x72a3x28[_0x6a0f[58]]);_0x72a3x29[_0x6a0f[59]]= _[_0x6a0f[60]](_0x72a3x29[_0x6a0f[54]],_0x72a3x29[_0x6a0f[58]]);_0x72a3x1b[_0x6a0f[61]]= _[_0x6a0f[60]](_0x72a3x29[_0x6a0f[54]],qs[_0x6a0f[62]](_0x72a3x28[_0x6a0f[58]][_0x6a0f[62]]));_0x72a3x1b[_0x6a0f[61]]= (_0x72a3x1b[_0x6a0f[61]][_0x6a0f[63]])?_0x72a3x1b[_0x6a0f[61]]:_0x72a3x29[_0x6a0f[54]];_0x72a3x1b= _[_0x6a0f[73]]({},_0x72a3x1b,_0x72a3x28[_0x6a0f[74]]);return db[_0x6a0f[56]][_0x6a0f[80]](_0x72a3x1b)[_0x6a0f[45]](handleEntityNotFound(_0x72a3x15,null,_0x6a0f[77]))[_0x6a0f[45]](respondWithResult(_0x72a3x15,null,_0x6a0f[77]))[_0x6a0f[75]](handleError(_0x72a3x15,null,_0x6a0f[77]))};exports[_0x6a0f[81]]= function(_0x72a3x28,_0x72a3x15){return db[_0x6a0f[56]][_0x6a0f[81]](_0x72a3x28[_0x6a0f[82]],{})[_0x6a0f[45]](respondWithResult(_0x72a3x15,201,_0x6a0f[81]))[_0x6a0f[75]](handleError(_0x72a3x15,null,_0x6a0f[81]))};exports[_0x6a0f[46]]= function(_0x72a3x28,_0x72a3x15){if(_0x72a3x28[_0x6a0f[82]][_0x6a0f[78]]){delete _0x72a3x28[_0x6a0f[82]][_0x6a0f[78]]};return db[_0x6a0f[56]][_0x6a0f[80]]({where:{id:_0x72a3x28[_0x6a0f[79]][_0x6a0f[78]]}})[_0x6a0f[45]](handleEntityNotFound(_0x72a3x15,null,_0x6a0f[46]))[_0x6a0f[45]](saveUpdates(_0x72a3x28[_0x6a0f[82]],null,_0x6a0f[46]))[_0x6a0f[45]](respondWithResult(_0x72a3x15,null,_0x6a0f[46]))[_0x6a0f[75]](handleError(_0x72a3x15,null,_0x6a0f[46]))};exports[_0x6a0f[48]]= function(_0x72a3x28,_0x72a3x15){return db[_0x6a0f[56]][_0x6a0f[80]]({where:{id:_0x72a3x28[_0x6a0f[79]][_0x6a0f[78]]}})[_0x6a0f[45]](handleEntityNotFound(_0x72a3x15,null,_0x6a0f[48]))[_0x6a0f[45]](removeEntity(_0x72a3x15,null,_0x6a0f[48]))[_0x6a0f[75]](handleError(_0x72a3x15,null,_0x6a0f[48]))};exports[_0x6a0f[83]]= function(_0x72a3x28,_0x72a3x15,_0x72a3x2c){return db[_0x6a0f[56]][_0x6a0f[80]]({where:{id:_0x72a3x28[_0x6a0f[79]][_0x6a0f[78]]},attributes:[_0x6a0f[78],_0x6a0f[86]],raw:true})[_0x6a0f[45]](handleEntityNotFound(_0x72a3x15,null,_0x6a0f[83]))[_0x6a0f[45]](function(_0x72a3x18){if(_0x72a3x18){logger[_0x6a0f[24]](_0x6a0f[85],_0x6a0f[83],_0x6a0f[30]);logger[_0x6a0f[26]](_0x6a0f[22],_0x6a0f[83],_0x6a0f[30],JSON[_0x6a0f[31]](_0x72a3x18));if(!fs[_0x6a0f[87]](_0x72a3x18[_0x6a0f[86]])){throw  new db[_0x6a0f[89]].ValidationError(_0x6a0f[88])};return _0x72a3x15[_0x6a0f[83]](_0x72a3x18[_0x6a0f[86]])}})[_0x6a0f[75]](handleError(_0x72a3x15,null,_0x6a0f[84]))}
\ No newline at end of file
+var _0xf544=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x61\x76\x65\x50\x61\x74\x68","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0xf544[0];var jsonpatch=require(_0xf544[1]);var rp=require(_0xf544[2]);var moment=require(_0xf544[3]);var BPromise=require(_0xf544[4]);var util=require(_0xf544[5]);var path=require(_0xf544[6]);var sox=require(_0xf544[7]);var ejs=require(_0xf544[8]);var fs=require(_0xf544[9]);var _=require(_0xf544[10]);var squel=require(_0xf544[11]);var crypto=require(_0xf544[12]);var jsforce=require(_0xf544[13]);var toCsv=require(_0xf544[14]);var qs=require(_0xf544[15]);var logger=require(_0xf544[17])(_0xf544[16]);var utils=require(_0xf544[18]);var config=require(_0xf544[19]);var db=require(_0xf544[21])[_0xf544[20]];function respondWithStatusCode(_0x3d9fx15,_0x3d9fx16,_0x3d9fx17){_0x3d9fx16= _0x3d9fx16|| 204;return function(_0x3d9fx18){if(_0x3d9fx18){logger[_0xf544[24]](_0xf544[22],_0x3d9fx17,_0x3d9fx16,_0xf544[23]);logger[_0xf544[26]](_0xf544[25],_0x3d9fx17,_0x3d9fx16,_0xf544[23]);return _0x3d9fx15[_0xf544[27]](_0x3d9fx16)};return _0x3d9fx15[_0xf544[29]](304)[_0xf544[28]]()}}function respondWithResult(_0x3d9fx15,_0x3d9fx16,_0x3d9fx17){_0x3d9fx16= _0x3d9fx16|| 200;return function(_0x3d9fx18){if(_0x3d9fx18){logger[_0xf544[24]](_0xf544[22],_0x3d9fx17,_0x3d9fx16,_0xf544[30]);logger[_0xf544[26]](_0xf544[25],_0x3d9fx17,_0x3d9fx16,_0xf544[30],JSON[_0xf544[31]](_0x3d9fx18));return _0x3d9fx15[_0xf544[29]](_0x3d9fx16)[_0xf544[32]](_0x3d9fx18)};return _0x3d9fx15[_0xf544[29]](304)[_0xf544[28]]()}}function respondWithFilteredResult(_0x3d9fx15,_0x3d9fx1b,_0x3d9fx17){return function(_0x3d9fx18){if(_0x3d9fx18){var _0x3d9fx1c=_0x3d9fx18[_0xf544[33]],_0x3d9fx1d=_0x3d9fx1b[_0xf544[34]],_0x3d9fx1e=_0x3d9fx1b[_0xf544[34]]+ _0x3d9fx1b[_0xf544[35]],_0x3d9fx16;if(_0x3d9fx1e>= _0x3d9fx1c){_0x3d9fx1e= _0x3d9fx1c;_0x3d9fx16= 200}else {_0x3d9fx16= 206};_0x3d9fx15[_0xf544[29]](_0x3d9fx16);logger[_0xf544[24]](_0xf544[22],_0x3d9fx17,_0x3d9fx16,_0xf544[36]);logger[_0xf544[26]](_0xf544[25],_0x3d9fx17,_0x3d9fx16,_0xf544[30],JSON[_0xf544[31]](_0x3d9fx18));return _0x3d9fx15[_0xf544[40]](_0xf544[37],_0x3d9fx1d+ _0xf544[38]+ _0x3d9fx1e+ _0xf544[39]+ _0x3d9fx1c)[_0xf544[32]](_0x3d9fx18)};return null}}function patchUpdates(_0x3d9fx20){return function(_0x3d9fx18){try{jsonpatch[_0xf544[41]](_0x3d9fx18,_0x3d9fx20,true)}catch(err){return BPromise[_0xf544[42]](err)};return _0x3d9fx18[_0xf544[43]]()}}function saveUpdates(_0x3d9fx22,_0x3d9fx16,_0x3d9fx17){return function(_0x3d9fx18){if(_0x3d9fx18){return _0x3d9fx18[_0xf544[46]](_0x3d9fx22)[_0xf544[45]](function(_0x3d9fx23){logger[_0xf544[24]](_0xf544[22],_0x3d9fx17,_0x3d9fx16,_0xf544[44]);logger[_0xf544[26]](_0xf544[25],_0x3d9fx17,_0x3d9fx16,_0xf544[44],JSON[_0xf544[31]](_0x3d9fx18));return _0x3d9fx23})};return null}}function removeEntity(_0x3d9fx15,_0x3d9fx16,_0x3d9fx17){return function(_0x3d9fx18){if(_0x3d9fx18){return _0x3d9fx18[_0xf544[48]]()[_0xf544[45]](function(){logger[_0xf544[24]](_0xf544[22],_0x3d9fx17,_0x3d9fx16,_0xf544[47]);logger[_0xf544[26]](_0xf544[25],_0x3d9fx17,_0x3d9fx16,_0xf544[47],JSON[_0xf544[31]](_0x3d9fx18));_0x3d9fx15[_0xf544[29]](204)[_0xf544[28]]()})}}}function handleEntityNotFound(_0x3d9fx15,_0x3d9fx16,_0x3d9fx17){return function(_0x3d9fx18){if(!_0x3d9fx18){logger[_0xf544[50]](_0xf544[22],_0x3d9fx17,404,_0xf544[49]);_0x3d9fx15[_0xf544[29]](404)[_0xf544[28]]();return null};return _0x3d9fx18}}function handleError(_0x3d9fx15,_0x3d9fx16,_0x3d9fx17){_0x3d9fx16= _0x3d9fx16|| 500;return function(_0x3d9fx27){logger[_0xf544[50]](_0xf544[22],_0x3d9fx17,_0x3d9fx16,JSON[_0xf544[31]](_0x3d9fx27));delete _0x3d9fx27[_0xf544[51]];_0x3d9fx15[_0xf544[29]](_0x3d9fx16)[_0xf544[52]](_0x3d9fx27)}}exports[_0xf544[53]]= function(_0x3d9fx28,_0x3d9fx15){var _0x3d9fx1b={},_0x3d9fx29={};_0x3d9fx29[_0xf544[54]]= _[_0xf544[57]](db[_0xf544[56]][_0xf544[55]]);_0x3d9fx29[_0xf544[58]]= _[_0xf544[57]](_0x3d9fx28[_0xf544[58]]);_0x3d9fx29[_0xf544[59]]= _[_0xf544[60]](_0x3d9fx29[_0xf544[54]],_0x3d9fx29[_0xf544[58]]);_0x3d9fx1b[_0xf544[61]]= _[_0xf544[60]](_0x3d9fx29[_0xf544[54]],qs[_0xf544[62]](_0x3d9fx28[_0xf544[58]][_0xf544[62]]));_0x3d9fx1b[_0xf544[61]]= (_0x3d9fx1b[_0xf544[61]][_0xf544[63]])?_0x3d9fx1b[_0xf544[61]]:_0x3d9fx29[_0xf544[54]];if(!_0x3d9fx28[_0xf544[58]][_0xf544[65]](_0xf544[64])){_0x3d9fx1b[_0xf544[35]]= qs[_0xf544[35]](_0x3d9fx28[_0xf544[58]][_0xf544[35]]);_0x3d9fx1b[_0xf544[34]]= qs[_0xf544[34]](_0x3d9fx28[_0xf544[58]][_0xf544[34]])};_0x3d9fx1b[_0xf544[66]]= qs[_0xf544[67]](_0x3d9fx28[_0xf544[58]][_0xf544[67]]);_0x3d9fx1b[_0xf544[68]]= qs[_0xf544[59]](_[_0xf544[69]](_0x3d9fx28[_0xf544[58]],_0x3d9fx29[_0xf544[59]]));if(_0x3d9fx28[_0xf544[58]][_0xf544[70]]){_0x3d9fx1b[_0xf544[68]]= _[_0xf544[73]](_0x3d9fx1b[_0xf544[68]],{$or:_[_0xf544[72]](_0x3d9fx1b[_0xf544[61]],function(_0x3d9fx2a){var _0x3d9fx2b={};_0x3d9fx2b[_0x3d9fx2a]= {$like:_0xf544[71]+ _0x3d9fx28[_0xf544[58]][_0xf544[70]]+ _0xf544[71]};return _0x3d9fx2b})})};_0x3d9fx1b= _[_0xf544[73]]({},_0x3d9fx1b,_0x3d9fx28[_0xf544[74]]);return db[_0xf544[56]][_0xf544[76]](_0x3d9fx1b)[_0xf544[45]](respondWithFilteredResult(_0x3d9fx15,_0x3d9fx1b,_0xf544[53]))[_0xf544[75]](handleError(_0x3d9fx15,null,_0xf544[53]))};exports[_0xf544[77]]= function(_0x3d9fx28,_0x3d9fx15){var _0x3d9fx1b={raw:true,where:{id:_0x3d9fx28[_0xf544[79]][_0xf544[78]]}},_0x3d9fx29={};_0x3d9fx29[_0xf544[54]]= _[_0xf544[57]](db[_0xf544[56]][_0xf544[55]]);_0x3d9fx29[_0xf544[58]]= _[_0xf544[57]](_0x3d9fx28[_0xf544[58]]);_0x3d9fx29[_0xf544[59]]= _[_0xf544[60]](_0x3d9fx29[_0xf544[54]],_0x3d9fx29[_0xf544[58]]);_0x3d9fx1b[_0xf544[61]]= _[_0xf544[60]](_0x3d9fx29[_0xf544[54]],qs[_0xf544[62]](_0x3d9fx28[_0xf544[58]][_0xf544[62]]));_0x3d9fx1b[_0xf544[61]]= (_0x3d9fx1b[_0xf544[61]][_0xf544[63]])?_0x3d9fx1b[_0xf544[61]]:_0x3d9fx29[_0xf544[54]];_0x3d9fx1b= _[_0xf544[73]]({},_0x3d9fx1b,_0x3d9fx28[_0xf544[74]]);return db[_0xf544[56]][_0xf544[80]](_0x3d9fx1b)[_0xf544[45]](handleEntityNotFound(_0x3d9fx15,null,_0xf544[77]))[_0xf544[45]](respondWithResult(_0x3d9fx15,null,_0xf544[77]))[_0xf544[75]](handleError(_0x3d9fx15,null,_0xf544[77]))};exports[_0xf544[81]]= function(_0x3d9fx28,_0x3d9fx15){return db[_0xf544[56]][_0xf544[81]](_0x3d9fx28[_0xf544[82]],{})[_0xf544[45]](respondWithResult(_0x3d9fx15,201,_0xf544[81]))[_0xf544[75]](handleError(_0x3d9fx15,null,_0xf544[81]))};exports[_0xf544[46]]= function(_0x3d9fx28,_0x3d9fx15){if(_0x3d9fx28[_0xf544[82]][_0xf544[78]]){delete _0x3d9fx28[_0xf544[82]][_0xf544[78]]};return db[_0xf544[56]][_0xf544[80]]({where:{id:_0x3d9fx28[_0xf544[79]][_0xf544[78]]}})[_0xf544[45]](handleEntityNotFound(_0x3d9fx15,null,_0xf544[46]))[_0xf544[45]](saveUpdates(_0x3d9fx28[_0xf544[82]],null,_0xf544[46]))[_0xf544[45]](respondWithResult(_0x3d9fx15,null,_0xf544[46]))[_0xf544[75]](handleError(_0x3d9fx15,null,_0xf544[46]))};exports[_0xf544[48]]= function(_0x3d9fx28,_0x3d9fx15){return db[_0xf544[56]][_0xf544[80]]({where:{id:_0x3d9fx28[_0xf544[79]][_0xf544[78]]}})[_0xf544[45]](handleEntityNotFound(_0x3d9fx15,null,_0xf544[48]))[_0xf544[45]](removeEntity(_0x3d9fx15,null,_0xf544[48]))[_0xf544[75]](handleError(_0x3d9fx15,null,_0xf544[48]))};exports[_0xf544[83]]= function(_0x3d9fx28,_0x3d9fx15,_0x3d9fx2c){return db[_0xf544[56]][_0xf544[80]]({where:{id:_0x3d9fx28[_0xf544[79]][_0xf544[78]]},attributes:[_0xf544[78],_0xf544[86]],raw:true})[_0xf544[45]](handleEntityNotFound(_0x3d9fx15,null,_0xf544[83]))[_0xf544[45]](function(_0x3d9fx18){if(_0x3d9fx18){logger[_0xf544[24]](_0xf544[85],_0xf544[83],_0xf544[30]);logger[_0xf544[26]](_0xf544[22],_0xf544[83],_0xf544[30],JSON[_0xf544[31]](_0x3d9fx18));if(!fs[_0xf544[87]](_0x3d9fx18[_0xf544[86]])){throw  new db[_0xf544[89]].ValidationError(_0xf544[88])};return _0x3d9fx15[_0xf544[83]](_0x3d9fx18[_0xf544[86]])}})[_0xf544[75]](handleError(_0x3d9fx15,null,_0xf544[84]))}
\ No newline at end of file
index 2e446c0..daf7ac7 100644 (file)
@@ -1 +1 @@
-var _0x43d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x73\x71\x75\x61\x72\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x43d4[0];var _=require(_0x43d4[1]);var util=require(_0x43d4[2]);var logger=require(_0x43d4[4])(_0x43d4[3]);var attributes=require(_0x43d4[5]);module[_0x43d4[6]]= function(_0xed4bx5,_0xed4bx6){return _0xed4bx5[_0x43d4[9]](_0x43d4[7],attributes,{tableName:_0x43d4[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xfd73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x73\x71\x75\x61\x72\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xfd73[0];var _=require(_0xfd73[1]);var util=require(_0xfd73[2]);var logger=require(_0xfd73[4])(_0xfd73[3]);var attributes=require(_0xfd73[5]);module[_0xfd73[6]]= function(_0xd21cx5,_0xd21cx6){return _0xd21cx5[_0xfd73[9]](_0xfd73[7],attributes,{tableName:_0xfd73[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 2f17ff6..50689d9 100644 (file)
@@ -1 +1 @@
-var _0x8b77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67"];_0x8b77[0];var _=require(_0x8b77[1]);var util=require(_0x8b77[2]);var moment=require(_0x8b77[3]);var BPromise=require(_0x8b77[4]);var db=require(_0x8b77[6])[_0x8b77[5]];var utils=require(_0x8b77[7]);var logger=require(_0x8b77[9])(_0x8b77[8]);var jayson=require(_0x8b77[10]);var client=jayson[_0x8b77[12]][_0x8b77[11]]({port:9002});function respondWithRpcPromise(_0x395fxb,_0x395fxc,_0x395fxd){return  new BPromise(function(_0x395fxe,_0x395fxf){return client[_0x8b77[25]](_0x395fxb,_0x395fxd)[_0x8b77[24]](function(_0x395fx11){logger[_0x8b77[17]](_0x8b77[13],_0x395fxc,_0x8b77[16]);logger[_0x8b77[20]](_0x8b77[18],_0x395fxc,_0x8b77[16],JSON[_0x8b77[19]](_0x395fx11));if(_0x395fx11[_0x8b77[14]]){if(_0x395fx11[_0x8b77[14]][_0x8b77[21]]=== 500){logger[_0x8b77[14]](_0x8b77[13],_0x395fxc,_0x395fx11[_0x8b77[14]][_0x8b77[22]]);return _0x395fxf(_0x395fx11[_0x8b77[14]][_0x8b77[22]])};logger[_0x8b77[14]](_0x8b77[13],_0x395fxc,_0x395fx11[_0x8b77[14]][_0x8b77[22]]);return _0x395fxe(_0x395fx11[_0x8b77[14]][_0x8b77[22]])}else {logger[_0x8b77[17]](_0x8b77[13],_0x395fxc,_0x8b77[16]);_0x395fxe(_0x395fx11[_0x8b77[23]][_0x8b77[22]])}})[_0x8b77[15]](function(_0x395fx10){logger[_0x8b77[14]](_0x8b77[13],_0x395fxc,_0x395fx10);_0x395fxf(_0x395fx10)})})}exports[_0x8b77[26]]= function(_0x395fxd){var _0x395fx12=this;return  new Promise(function(_0x395fxe,_0x395fxf){return db[_0x8b77[31]][_0x8b77[30]](_0x395fxd[_0x8b77[27]],{raw:_0x395fxd[_0x8b77[28]]?(_0x395fxd[_0x8b77[28]][_0x8b77[29]]=== undefined)?true:false:true})[_0x8b77[24]](function(_0x395fx11){logger[_0x8b77[17]](_0x8b77[26],_0x395fxd);logger[_0x8b77[20]](_0x8b77[26],_0x395fxd,JSON[_0x8b77[19]](_0x395fx11));_0x395fxe(_0x395fx11)})[_0x8b77[15]](function(_0x395fx10){logger[_0x8b77[14]](_0x8b77[26],_0x395fx10[_0x8b77[22]],_0x395fxd);_0x395fxf(_0x395fx12[_0x8b77[14]](500,_0x395fx10[_0x8b77[22]]))})})}
\ No newline at end of file
+var _0x5595=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67"];_0x5595[0];var _=require(_0x5595[1]);var util=require(_0x5595[2]);var moment=require(_0x5595[3]);var BPromise=require(_0x5595[4]);var db=require(_0x5595[6])[_0x5595[5]];var utils=require(_0x5595[7]);var logger=require(_0x5595[9])(_0x5595[8]);var jayson=require(_0x5595[10]);var client=jayson[_0x5595[12]][_0x5595[11]]({port:9002});function respondWithRpcPromise(_0x6624xb,_0x6624xc,_0x6624xd){return  new BPromise(function(_0x6624xe,_0x6624xf){return client[_0x5595[25]](_0x6624xb,_0x6624xd)[_0x5595[24]](function(_0x6624x11){logger[_0x5595[17]](_0x5595[13],_0x6624xc,_0x5595[16]);logger[_0x5595[20]](_0x5595[18],_0x6624xc,_0x5595[16],JSON[_0x5595[19]](_0x6624x11));if(_0x6624x11[_0x5595[14]]){if(_0x6624x11[_0x5595[14]][_0x5595[21]]=== 500){logger[_0x5595[14]](_0x5595[13],_0x6624xc,_0x6624x11[_0x5595[14]][_0x5595[22]]);return _0x6624xf(_0x6624x11[_0x5595[14]][_0x5595[22]])};logger[_0x5595[14]](_0x5595[13],_0x6624xc,_0x6624x11[_0x5595[14]][_0x5595[22]]);return _0x6624xe(_0x6624x11[_0x5595[14]][_0x5595[22]])}else {logger[_0x5595[17]](_0x5595[13],_0x6624xc,_0x5595[16]);_0x6624xe(_0x6624x11[_0x5595[23]][_0x5595[22]])}})[_0x5595[15]](function(_0x6624x10){logger[_0x5595[14]](_0x5595[13],_0x6624xc,_0x6624x10);_0x6624xf(_0x6624x10)})})}exports[_0x5595[26]]= function(_0x6624xd){var _0x6624x12=this;return  new Promise(function(_0x6624xe,_0x6624xf){return db[_0x5595[31]][_0x5595[30]](_0x6624xd[_0x5595[27]],{raw:_0x6624xd[_0x5595[28]]?(_0x6624xd[_0x5595[28]][_0x5595[29]]=== undefined)?true:false:true})[_0x5595[24]](function(_0x6624x11){logger[_0x5595[17]](_0x5595[26],_0x6624xd);logger[_0x5595[20]](_0x5595[26],_0x6624xd,JSON[_0x5595[19]](_0x6624x11));_0x6624xe(_0x6624x11)})[_0x5595[15]](function(_0x6624x10){logger[_0x5595[14]](_0x5595[26],_0x6624x10[_0x5595[22]],_0x6624xd);_0x6624xf(_0x6624x12[_0x5595[14]](500,_0x6624x10[_0x5595[22]]))})})}
\ No newline at end of file
index f6e9b8d..caeebb6 100644 (file)
@@ -1 +1 @@
-var _0xbb4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbb4e[0];var multer=require(_0xbb4e[1]);var util=require(_0xbb4e[2]);var path=require(_0xbb4e[3]);var express=require(_0xbb4e[4]);var router=express.Router();var auth=require(_0xbb4e[5]);var config=require(_0xbb4e[6]);var controller=require(_0xbb4e[7]);router[_0xbb4e[11]](_0xbb4e[8],auth[_0xbb4e[9]](),controller[_0xbb4e[10]]);router[_0xbb4e[11]](_0xbb4e[12],auth[_0xbb4e[9]](),controller[_0xbb4e[13]]);router[_0xbb4e[11]](_0xbb4e[14],auth[_0xbb4e[9]](),controller[_0xbb4e[15]]);router[_0xbb4e[17]](_0xbb4e[8],auth[_0xbb4e[9]](),controller[_0xbb4e[16]]);router[_0xbb4e[19]](_0xbb4e[14],auth[_0xbb4e[9]](),controller[_0xbb4e[18]]);router[_0xbb4e[21]](_0xbb4e[14],auth[_0xbb4e[9]](),controller[_0xbb4e[20]]);module[_0xbb4e[22]]= router
\ No newline at end of file
+var _0x1b1d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1b1d[0];var multer=require(_0x1b1d[1]);var util=require(_0x1b1d[2]);var path=require(_0x1b1d[3]);var express=require(_0x1b1d[4]);var router=express.Router();var auth=require(_0x1b1d[5]);var config=require(_0x1b1d[6]);var controller=require(_0x1b1d[7]);router[_0x1b1d[11]](_0x1b1d[8],auth[_0x1b1d[9]](),controller[_0x1b1d[10]]);router[_0x1b1d[11]](_0x1b1d[12],auth[_0x1b1d[9]](),controller[_0x1b1d[13]]);router[_0x1b1d[11]](_0x1b1d[14],auth[_0x1b1d[9]](),controller[_0x1b1d[15]]);router[_0x1b1d[17]](_0x1b1d[8],auth[_0x1b1d[9]](),controller[_0x1b1d[16]]);router[_0x1b1d[19]](_0x1b1d[14],auth[_0x1b1d[9]](),controller[_0x1b1d[18]]);router[_0x1b1d[21]](_0x1b1d[14],auth[_0x1b1d[9]](),controller[_0x1b1d[20]]);module[_0x1b1d[22]]= router
\ No newline at end of file
index 973cd42..f2a6c4f 100644 (file)
@@ -1 +1 @@
-var _0x6612=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45"];_0x6612[0];var Sequelize=require(_0x6612[1]);module[_0x6612[2]]= {network:{type:Sequelize[_0x6612[3]]},network_script:{type:Sequelize[_0x6612[3]]},request:{type:Sequelize[_0x6612[3]]},channel:{type:Sequelize[_0x6612[3]]},language:{type:Sequelize[_0x6612[3]]},type:{type:Sequelize[_0x6612[3]]},uniqueid:{type:Sequelize[_0x6612[3]]},version:{type:Sequelize[_0x6612[3]]},callerid:{type:Sequelize[_0x6612[3]]},calleridname:{type:Sequelize[_0x6612[3]]},callingpres:{type:Sequelize[_0x6612[3]]},callingani2:{type:Sequelize[_0x6612[3]]},callington:{type:Sequelize[_0x6612[3]]},callingtns:{type:Sequelize[_0x6612[3]]},dnid:{type:Sequelize[_0x6612[3]]},rdnis:{type:Sequelize[_0x6612[3]]},context:{type:Sequelize[_0x6612[3]]},extension:{type:Sequelize[_0x6612[3]]},priority:{type:Sequelize[_0x6612[3]]},enhanced:{type:Sequelize[_0x6612[3]]},accountcode:{type:Sequelize[_0x6612[3]]},threadid:{type:Sequelize[_0x6612[3]]},project_name:{type:Sequelize[_0x6612[3]]},joinAt:{type:Sequelize[_0x6612[4]]},leaveAt:{type:Sequelize[_0x6612[4]]}}
\ No newline at end of file
+var _0x3404=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45"];_0x3404[0];var Sequelize=require(_0x3404[1]);module[_0x3404[2]]= {network:{type:Sequelize[_0x3404[3]]},network_script:{type:Sequelize[_0x3404[3]]},request:{type:Sequelize[_0x3404[3]]},channel:{type:Sequelize[_0x3404[3]]},language:{type:Sequelize[_0x3404[3]]},type:{type:Sequelize[_0x3404[3]]},uniqueid:{type:Sequelize[_0x3404[3]]},version:{type:Sequelize[_0x3404[3]]},callerid:{type:Sequelize[_0x3404[3]]},calleridname:{type:Sequelize[_0x3404[3]]},callingpres:{type:Sequelize[_0x3404[3]]},callingani2:{type:Sequelize[_0x3404[3]]},callington:{type:Sequelize[_0x3404[3]]},callingtns:{type:Sequelize[_0x3404[3]]},dnid:{type:Sequelize[_0x3404[3]]},rdnis:{type:Sequelize[_0x3404[3]]},context:{type:Sequelize[_0x3404[3]]},extension:{type:Sequelize[_0x3404[3]]},priority:{type:Sequelize[_0x3404[3]]},enhanced:{type:Sequelize[_0x3404[3]]},accountcode:{type:Sequelize[_0x3404[3]]},threadid:{type:Sequelize[_0x3404[3]]},project_name:{type:Sequelize[_0x3404[3]]},joinAt:{type:Sequelize[_0x3404[4]]},leaveAt:{type:Sequelize[_0x3404[4]]}}
\ No newline at end of file
index e166b75..1519043 100644 (file)
@@ -1 +1 @@
-var _0xf9cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xf9cb[0];var jsonpatch=require(_0xf9cb[1]);var rp=require(_0xf9cb[2]);var moment=require(_0xf9cb[3]);var BPromise=require(_0xf9cb[4]);var util=require(_0xf9cb[5]);var path=require(_0xf9cb[6]);var sox=require(_0xf9cb[7]);var ejs=require(_0xf9cb[8]);var fs=require(_0xf9cb[9]);var _=require(_0xf9cb[10]);var squel=require(_0xf9cb[11]);var crypto=require(_0xf9cb[12]);var jsforce=require(_0xf9cb[13]);var toCsv=require(_0xf9cb[14]);var qs=require(_0xf9cb[15]);var logger=require(_0xf9cb[17])(_0xf9cb[16]);var utils=require(_0xf9cb[18]);var config=require(_0xf9cb[19]);var db=require(_0xf9cb[21])[_0xf9cb[20]];function respondWithStatusCode(_0xda7dx15,_0xda7dx16,_0xda7dx17){_0xda7dx16= _0xda7dx16|| 204;return function(_0xda7dx18){if(_0xda7dx18){logger[_0xf9cb[24]](_0xf9cb[22],_0xda7dx17,_0xda7dx16,_0xf9cb[23]);logger[_0xf9cb[26]](_0xf9cb[25],_0xda7dx17,_0xda7dx16,_0xf9cb[23]);return _0xda7dx15[_0xf9cb[27]](_0xda7dx16)};return _0xda7dx15[_0xf9cb[29]](304)[_0xf9cb[28]]()}}function respondWithResult(_0xda7dx15,_0xda7dx16,_0xda7dx17){_0xda7dx16= _0xda7dx16|| 200;return function(_0xda7dx18){if(_0xda7dx18){logger[_0xf9cb[24]](_0xf9cb[22],_0xda7dx17,_0xda7dx16,_0xf9cb[30]);logger[_0xf9cb[26]](_0xf9cb[25],_0xda7dx17,_0xda7dx16,_0xf9cb[30],JSON[_0xf9cb[31]](_0xda7dx18));return _0xda7dx15[_0xf9cb[29]](_0xda7dx16)[_0xf9cb[32]](_0xda7dx18)};return _0xda7dx15[_0xf9cb[29]](304)[_0xf9cb[28]]()}}function respondWithFilteredResult(_0xda7dx15,_0xda7dx1b,_0xda7dx17){return function(_0xda7dx18){if(_0xda7dx18){var _0xda7dx1c=_0xda7dx18[_0xf9cb[33]],_0xda7dx1d=_0xda7dx1b[_0xf9cb[34]],_0xda7dx1e=_0xda7dx1b[_0xf9cb[34]]+ _0xda7dx1b[_0xf9cb[35]],_0xda7dx16;if(_0xda7dx1e>= _0xda7dx1c){_0xda7dx1e= _0xda7dx1c;_0xda7dx16= 200}else {_0xda7dx16= 206};_0xda7dx15[_0xf9cb[29]](_0xda7dx16);logger[_0xf9cb[24]](_0xf9cb[22],_0xda7dx17,_0xda7dx16,_0xf9cb[36]);logger[_0xf9cb[26]](_0xf9cb[25],_0xda7dx17,_0xda7dx16,_0xf9cb[30],JSON[_0xf9cb[31]](_0xda7dx18));return _0xda7dx15[_0xf9cb[40]](_0xf9cb[37],_0xda7dx1d+ _0xf9cb[38]+ _0xda7dx1e+ _0xf9cb[39]+ _0xda7dx1c)[_0xf9cb[32]](_0xda7dx18)};return null}}function patchUpdates(_0xda7dx20){return function(_0xda7dx18){try{jsonpatch[_0xf9cb[41]](_0xda7dx18,_0xda7dx20,true)}catch(err){return BPromise[_0xf9cb[42]](err)};return _0xda7dx18[_0xf9cb[43]]()}}function saveUpdates(_0xda7dx22,_0xda7dx16,_0xda7dx17){return function(_0xda7dx18){if(_0xda7dx18){return _0xda7dx18[_0xf9cb[46]](_0xda7dx22)[_0xf9cb[45]](function(_0xda7dx23){logger[_0xf9cb[24]](_0xf9cb[22],_0xda7dx17,_0xda7dx16,_0xf9cb[44]);logger[_0xf9cb[26]](_0xf9cb[25],_0xda7dx17,_0xda7dx16,_0xf9cb[44],JSON[_0xf9cb[31]](_0xda7dx18));return _0xda7dx23})};return null}}function removeEntity(_0xda7dx15,_0xda7dx16,_0xda7dx17){return function(_0xda7dx18){if(_0xda7dx18){return _0xda7dx18[_0xf9cb[48]]()[_0xf9cb[45]](function(){logger[_0xf9cb[24]](_0xf9cb[22],_0xda7dx17,_0xda7dx16,_0xf9cb[47]);logger[_0xf9cb[26]](_0xf9cb[25],_0xda7dx17,_0xda7dx16,_0xf9cb[47],JSON[_0xf9cb[31]](_0xda7dx18));_0xda7dx15[_0xf9cb[29]](204)[_0xf9cb[28]]()})}}}function handleEntityNotFound(_0xda7dx15,_0xda7dx16,_0xda7dx17){return function(_0xda7dx18){if(!_0xda7dx18){logger[_0xf9cb[50]](_0xf9cb[22],_0xda7dx17,404,_0xf9cb[49]);_0xda7dx15[_0xf9cb[29]](404)[_0xf9cb[28]]();return null};return _0xda7dx18}}function handleError(_0xda7dx15,_0xda7dx16,_0xda7dx17){_0xda7dx16= _0xda7dx16|| 500;return function(_0xda7dx27){logger[_0xf9cb[50]](_0xf9cb[22],_0xda7dx17,_0xda7dx16,JSON[_0xf9cb[31]](_0xda7dx27));delete _0xda7dx27[_0xf9cb[51]];_0xda7dx15[_0xf9cb[29]](_0xda7dx16)[_0xf9cb[52]](_0xda7dx27)}}exports[_0xf9cb[53]]= function(_0xda7dx28,_0xda7dx15){var _0xda7dx1b={},_0xda7dx29={};_0xda7dx29[_0xf9cb[54]]= _[_0xf9cb[57]](db[_0xf9cb[56]][_0xf9cb[55]]);_0xda7dx29[_0xf9cb[58]]= _[_0xf9cb[57]](_0xda7dx28[_0xf9cb[58]]);_0xda7dx29[_0xf9cb[59]]= _[_0xf9cb[60]](_0xda7dx29[_0xf9cb[54]],_0xda7dx29[_0xf9cb[58]]);_0xda7dx1b[_0xf9cb[61]]= _[_0xf9cb[60]](_0xda7dx29[_0xf9cb[54]],qs[_0xf9cb[62]](_0xda7dx28[_0xf9cb[58]][_0xf9cb[62]]));_0xda7dx1b[_0xf9cb[61]]= (_0xda7dx1b[_0xf9cb[61]][_0xf9cb[63]])?_0xda7dx1b[_0xf9cb[61]]:_0xda7dx29[_0xf9cb[54]];if(!_0xda7dx28[_0xf9cb[58]][_0xf9cb[65]](_0xf9cb[64])){_0xda7dx1b[_0xf9cb[35]]= qs[_0xf9cb[35]](_0xda7dx28[_0xf9cb[58]][_0xf9cb[35]]);_0xda7dx1b[_0xf9cb[34]]= qs[_0xf9cb[34]](_0xda7dx28[_0xf9cb[58]][_0xf9cb[34]])};_0xda7dx1b[_0xf9cb[66]]= qs[_0xf9cb[67]](_0xda7dx28[_0xf9cb[58]][_0xf9cb[67]]);_0xda7dx1b[_0xf9cb[68]]= qs[_0xf9cb[59]](_[_0xf9cb[69]](_0xda7dx28[_0xf9cb[58]],_0xda7dx29[_0xf9cb[59]]));if(_0xda7dx28[_0xf9cb[58]][_0xf9cb[70]]){_0xda7dx1b[_0xf9cb[68]]= _[_0xf9cb[73]](_0xda7dx1b[_0xf9cb[68]],{$or:_[_0xf9cb[72]](_0xda7dx1b[_0xf9cb[61]],function(_0xda7dx2a){var _0xda7dx2b={};_0xda7dx2b[_0xda7dx2a]= {$like:_0xf9cb[71]+ _0xda7dx28[_0xf9cb[58]][_0xf9cb[70]]+ _0xf9cb[71]};return _0xda7dx2b})})};_0xda7dx1b= _[_0xf9cb[73]]({},_0xda7dx1b,_0xda7dx28[_0xf9cb[74]]);return db[_0xf9cb[56]][_0xf9cb[76]](_0xda7dx1b)[_0xf9cb[45]](respondWithFilteredResult(_0xda7dx15,_0xda7dx1b,_0xf9cb[53]))[_0xf9cb[75]](handleError(_0xda7dx15,null,_0xf9cb[53]))};exports[_0xf9cb[77]]= function(_0xda7dx28,_0xda7dx15){var _0xda7dx1b={raw:true,where:{id:_0xda7dx28[_0xf9cb[79]][_0xf9cb[78]]}},_0xda7dx29={};_0xda7dx29[_0xf9cb[54]]= _[_0xf9cb[57]](db[_0xf9cb[56]][_0xf9cb[55]]);_0xda7dx29[_0xf9cb[58]]= _[_0xf9cb[57]](_0xda7dx28[_0xf9cb[58]]);_0xda7dx29[_0xf9cb[59]]= _[_0xf9cb[60]](_0xda7dx29[_0xf9cb[54]],_0xda7dx29[_0xf9cb[58]]);_0xda7dx1b[_0xf9cb[61]]= _[_0xf9cb[60]](_0xda7dx29[_0xf9cb[54]],qs[_0xf9cb[62]](_0xda7dx28[_0xf9cb[58]][_0xf9cb[62]]));_0xda7dx1b[_0xf9cb[61]]= (_0xda7dx1b[_0xf9cb[61]][_0xf9cb[63]])?_0xda7dx1b[_0xf9cb[61]]:_0xda7dx29[_0xf9cb[54]];_0xda7dx1b= _[_0xf9cb[73]]({},_0xda7dx1b,_0xda7dx28[_0xf9cb[74]]);return db[_0xf9cb[56]][_0xf9cb[80]](_0xda7dx1b)[_0xf9cb[45]](handleEntityNotFound(_0xda7dx15,null,_0xf9cb[77]))[_0xf9cb[45]](respondWithResult(_0xda7dx15,null,_0xf9cb[77]))[_0xf9cb[75]](handleError(_0xda7dx15,null,_0xf9cb[77]))};exports[_0xf9cb[81]]= function(_0xda7dx28,_0xda7dx15){return db[_0xf9cb[56]][_0xf9cb[81]](_0xda7dx28[_0xf9cb[82]],{})[_0xf9cb[45]](respondWithResult(_0xda7dx15,201,_0xf9cb[81]))[_0xf9cb[75]](handleError(_0xda7dx15,null,_0xf9cb[81]))};exports[_0xf9cb[46]]= function(_0xda7dx28,_0xda7dx15){if(_0xda7dx28[_0xf9cb[82]][_0xf9cb[78]]){delete _0xda7dx28[_0xf9cb[82]][_0xf9cb[78]]};return db[_0xf9cb[56]][_0xf9cb[80]]({where:{id:_0xda7dx28[_0xf9cb[79]][_0xf9cb[78]]}})[_0xf9cb[45]](handleEntityNotFound(_0xda7dx15,null,_0xf9cb[46]))[_0xf9cb[45]](saveUpdates(_0xda7dx28[_0xf9cb[82]],null,_0xf9cb[46]))[_0xf9cb[45]](respondWithResult(_0xda7dx15,null,_0xf9cb[46]))[_0xf9cb[75]](handleError(_0xda7dx15,null,_0xf9cb[46]))};exports[_0xf9cb[48]]= function(_0xda7dx28,_0xda7dx15){return db[_0xf9cb[56]][_0xf9cb[80]]({where:{id:_0xda7dx28[_0xf9cb[79]][_0xf9cb[78]]}})[_0xf9cb[45]](handleEntityNotFound(_0xda7dx15,null,_0xf9cb[48]))[_0xf9cb[45]](removeEntity(_0xda7dx15,null,_0xf9cb[48]))[_0xf9cb[75]](handleError(_0xda7dx15,null,_0xf9cb[48]))};exports[_0xf9cb[83]]= function(_0xda7dx28,_0xda7dx15){return db[_0xf9cb[56]][_0xf9cb[83]]()[_0xf9cb[45]](respondWithResult(_0xda7dx15,null,_0xf9cb[83]))[_0xf9cb[75]](handleError(_0xda7dx15,null,_0xf9cb[83]))}
\ No newline at end of file
+var _0x6a70=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x6a70[0];var jsonpatch=require(_0x6a70[1]);var rp=require(_0x6a70[2]);var moment=require(_0x6a70[3]);var BPromise=require(_0x6a70[4]);var util=require(_0x6a70[5]);var path=require(_0x6a70[6]);var sox=require(_0x6a70[7]);var ejs=require(_0x6a70[8]);var fs=require(_0x6a70[9]);var _=require(_0x6a70[10]);var squel=require(_0x6a70[11]);var crypto=require(_0x6a70[12]);var jsforce=require(_0x6a70[13]);var toCsv=require(_0x6a70[14]);var qs=require(_0x6a70[15]);var logger=require(_0x6a70[17])(_0x6a70[16]);var utils=require(_0x6a70[18]);var config=require(_0x6a70[19]);var db=require(_0x6a70[21])[_0x6a70[20]];function respondWithStatusCode(_0x6558x15,_0x6558x16,_0x6558x17){_0x6558x16= _0x6558x16|| 204;return function(_0x6558x18){if(_0x6558x18){logger[_0x6a70[24]](_0x6a70[22],_0x6558x17,_0x6558x16,_0x6a70[23]);logger[_0x6a70[26]](_0x6a70[25],_0x6558x17,_0x6558x16,_0x6a70[23]);return _0x6558x15[_0x6a70[27]](_0x6558x16)};return _0x6558x15[_0x6a70[29]](304)[_0x6a70[28]]()}}function respondWithResult(_0x6558x15,_0x6558x16,_0x6558x17){_0x6558x16= _0x6558x16|| 200;return function(_0x6558x18){if(_0x6558x18){logger[_0x6a70[24]](_0x6a70[22],_0x6558x17,_0x6558x16,_0x6a70[30]);logger[_0x6a70[26]](_0x6a70[25],_0x6558x17,_0x6558x16,_0x6a70[30],JSON[_0x6a70[31]](_0x6558x18));return _0x6558x15[_0x6a70[29]](_0x6558x16)[_0x6a70[32]](_0x6558x18)};return _0x6558x15[_0x6a70[29]](304)[_0x6a70[28]]()}}function respondWithFilteredResult(_0x6558x15,_0x6558x1b,_0x6558x17){return function(_0x6558x18){if(_0x6558x18){var _0x6558x1c=_0x6558x18[_0x6a70[33]],_0x6558x1d=_0x6558x1b[_0x6a70[34]],_0x6558x1e=_0x6558x1b[_0x6a70[34]]+ _0x6558x1b[_0x6a70[35]],_0x6558x16;if(_0x6558x1e>= _0x6558x1c){_0x6558x1e= _0x6558x1c;_0x6558x16= 200}else {_0x6558x16= 206};_0x6558x15[_0x6a70[29]](_0x6558x16);logger[_0x6a70[24]](_0x6a70[22],_0x6558x17,_0x6558x16,_0x6a70[36]);logger[_0x6a70[26]](_0x6a70[25],_0x6558x17,_0x6558x16,_0x6a70[30],JSON[_0x6a70[31]](_0x6558x18));return _0x6558x15[_0x6a70[40]](_0x6a70[37],_0x6558x1d+ _0x6a70[38]+ _0x6558x1e+ _0x6a70[39]+ _0x6558x1c)[_0x6a70[32]](_0x6558x18)};return null}}function patchUpdates(_0x6558x20){return function(_0x6558x18){try{jsonpatch[_0x6a70[41]](_0x6558x18,_0x6558x20,true)}catch(err){return BPromise[_0x6a70[42]](err)};return _0x6558x18[_0x6a70[43]]()}}function saveUpdates(_0x6558x22,_0x6558x16,_0x6558x17){return function(_0x6558x18){if(_0x6558x18){return _0x6558x18[_0x6a70[46]](_0x6558x22)[_0x6a70[45]](function(_0x6558x23){logger[_0x6a70[24]](_0x6a70[22],_0x6558x17,_0x6558x16,_0x6a70[44]);logger[_0x6a70[26]](_0x6a70[25],_0x6558x17,_0x6558x16,_0x6a70[44],JSON[_0x6a70[31]](_0x6558x18));return _0x6558x23})};return null}}function removeEntity(_0x6558x15,_0x6558x16,_0x6558x17){return function(_0x6558x18){if(_0x6558x18){return _0x6558x18[_0x6a70[48]]()[_0x6a70[45]](function(){logger[_0x6a70[24]](_0x6a70[22],_0x6558x17,_0x6558x16,_0x6a70[47]);logger[_0x6a70[26]](_0x6a70[25],_0x6558x17,_0x6558x16,_0x6a70[47],JSON[_0x6a70[31]](_0x6558x18));_0x6558x15[_0x6a70[29]](204)[_0x6a70[28]]()})}}}function handleEntityNotFound(_0x6558x15,_0x6558x16,_0x6558x17){return function(_0x6558x18){if(!_0x6558x18){logger[_0x6a70[50]](_0x6a70[22],_0x6558x17,404,_0x6a70[49]);_0x6558x15[_0x6a70[29]](404)[_0x6a70[28]]();return null};return _0x6558x18}}function handleError(_0x6558x15,_0x6558x16,_0x6558x17){_0x6558x16= _0x6558x16|| 500;return function(_0x6558x27){logger[_0x6a70[50]](_0x6a70[22],_0x6558x17,_0x6558x16,JSON[_0x6a70[31]](_0x6558x27));delete _0x6558x27[_0x6a70[51]];_0x6558x15[_0x6a70[29]](_0x6558x16)[_0x6a70[52]](_0x6558x27)}}exports[_0x6a70[53]]= function(_0x6558x28,_0x6558x15){var _0x6558x1b={},_0x6558x29={};_0x6558x29[_0x6a70[54]]= _[_0x6a70[57]](db[_0x6a70[56]][_0x6a70[55]]);_0x6558x29[_0x6a70[58]]= _[_0x6a70[57]](_0x6558x28[_0x6a70[58]]);_0x6558x29[_0x6a70[59]]= _[_0x6a70[60]](_0x6558x29[_0x6a70[54]],_0x6558x29[_0x6a70[58]]);_0x6558x1b[_0x6a70[61]]= _[_0x6a70[60]](_0x6558x29[_0x6a70[54]],qs[_0x6a70[62]](_0x6558x28[_0x6a70[58]][_0x6a70[62]]));_0x6558x1b[_0x6a70[61]]= (_0x6558x1b[_0x6a70[61]][_0x6a70[63]])?_0x6558x1b[_0x6a70[61]]:_0x6558x29[_0x6a70[54]];if(!_0x6558x28[_0x6a70[58]][_0x6a70[65]](_0x6a70[64])){_0x6558x1b[_0x6a70[35]]= qs[_0x6a70[35]](_0x6558x28[_0x6a70[58]][_0x6a70[35]]);_0x6558x1b[_0x6a70[34]]= qs[_0x6a70[34]](_0x6558x28[_0x6a70[58]][_0x6a70[34]])};_0x6558x1b[_0x6a70[66]]= qs[_0x6a70[67]](_0x6558x28[_0x6a70[58]][_0x6a70[67]]);_0x6558x1b[_0x6a70[68]]= qs[_0x6a70[59]](_[_0x6a70[69]](_0x6558x28[_0x6a70[58]],_0x6558x29[_0x6a70[59]]));if(_0x6558x28[_0x6a70[58]][_0x6a70[70]]){_0x6558x1b[_0x6a70[68]]= _[_0x6a70[73]](_0x6558x1b[_0x6a70[68]],{$or:_[_0x6a70[72]](_0x6558x1b[_0x6a70[61]],function(_0x6558x2a){var _0x6558x2b={};_0x6558x2b[_0x6558x2a]= {$like:_0x6a70[71]+ _0x6558x28[_0x6a70[58]][_0x6a70[70]]+ _0x6a70[71]};return _0x6558x2b})})};_0x6558x1b= _[_0x6a70[73]]({},_0x6558x1b,_0x6558x28[_0x6a70[74]]);return db[_0x6a70[56]][_0x6a70[76]](_0x6558x1b)[_0x6a70[45]](respondWithFilteredResult(_0x6558x15,_0x6558x1b,_0x6a70[53]))[_0x6a70[75]](handleError(_0x6558x15,null,_0x6a70[53]))};exports[_0x6a70[77]]= function(_0x6558x28,_0x6558x15){var _0x6558x1b={raw:true,where:{id:_0x6558x28[_0x6a70[79]][_0x6a70[78]]}},_0x6558x29={};_0x6558x29[_0x6a70[54]]= _[_0x6a70[57]](db[_0x6a70[56]][_0x6a70[55]]);_0x6558x29[_0x6a70[58]]= _[_0x6a70[57]](_0x6558x28[_0x6a70[58]]);_0x6558x29[_0x6a70[59]]= _[_0x6a70[60]](_0x6558x29[_0x6a70[54]],_0x6558x29[_0x6a70[58]]);_0x6558x1b[_0x6a70[61]]= _[_0x6a70[60]](_0x6558x29[_0x6a70[54]],qs[_0x6a70[62]](_0x6558x28[_0x6a70[58]][_0x6a70[62]]));_0x6558x1b[_0x6a70[61]]= (_0x6558x1b[_0x6a70[61]][_0x6a70[63]])?_0x6558x1b[_0x6a70[61]]:_0x6558x29[_0x6a70[54]];_0x6558x1b= _[_0x6a70[73]]({},_0x6558x1b,_0x6558x28[_0x6a70[74]]);return db[_0x6a70[56]][_0x6a70[80]](_0x6558x1b)[_0x6a70[45]](handleEntityNotFound(_0x6558x15,null,_0x6a70[77]))[_0x6a70[45]](respondWithResult(_0x6558x15,null,_0x6a70[77]))[_0x6a70[75]](handleError(_0x6558x15,null,_0x6a70[77]))};exports[_0x6a70[81]]= function(_0x6558x28,_0x6558x15){return db[_0x6a70[56]][_0x6a70[81]](_0x6558x28[_0x6a70[82]],{})[_0x6a70[45]](respondWithResult(_0x6558x15,201,_0x6a70[81]))[_0x6a70[75]](handleError(_0x6558x15,null,_0x6a70[81]))};exports[_0x6a70[46]]= function(_0x6558x28,_0x6558x15){if(_0x6558x28[_0x6a70[82]][_0x6a70[78]]){delete _0x6558x28[_0x6a70[82]][_0x6a70[78]]};return db[_0x6a70[56]][_0x6a70[80]]({where:{id:_0x6558x28[_0x6a70[79]][_0x6a70[78]]}})[_0x6a70[45]](handleEntityNotFound(_0x6558x15,null,_0x6a70[46]))[_0x6a70[45]](saveUpdates(_0x6558x28[_0x6a70[82]],null,_0x6a70[46]))[_0x6a70[45]](respondWithResult(_0x6558x15,null,_0x6a70[46]))[_0x6a70[75]](handleError(_0x6558x15,null,_0x6a70[46]))};exports[_0x6a70[48]]= function(_0x6558x28,_0x6558x15){return db[_0x6a70[56]][_0x6a70[80]]({where:{id:_0x6558x28[_0x6a70[79]][_0x6a70[78]]}})[_0x6a70[45]](handleEntityNotFound(_0x6558x15,null,_0x6a70[48]))[_0x6a70[45]](removeEntity(_0x6558x15,null,_0x6a70[48]))[_0x6a70[75]](handleError(_0x6558x15,null,_0x6a70[48]))};exports[_0x6a70[83]]= function(_0x6558x28,_0x6558x15){return db[_0x6a70[56]][_0x6a70[83]]()[_0x6a70[45]](respondWithResult(_0x6558x15,null,_0x6a70[83]))[_0x6a70[75]](handleError(_0x6558x15,null,_0x6a70[83]))}
\ No newline at end of file
index 5912c59..d82e9dc 100644 (file)
@@ -1 +1 @@
-var _0xc005=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x64\x65\x66\x69\x6E\x65"];_0xc005[0];var _=require(_0xc005[1]);var util=require(_0xc005[2]);var logger=require(_0xc005[4])(_0xc005[3]);var attributes=require(_0xc005[5]);module[_0xc005[6]]= function(_0x3fc0x5,_0x3fc0x6){return _0x3fc0x5[_0xc005[9]](_0xc005[7],attributes,{tableName:_0xc005[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x84ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x64\x65\x66\x69\x6E\x65"];_0x84ed[0];var _=require(_0x84ed[1]);var util=require(_0x84ed[2]);var logger=require(_0x84ed[4])(_0x84ed[3]);var attributes=require(_0x84ed[5]);module[_0x84ed[6]]= function(_0x5ea2x5,_0x5ea2x6){return _0x5ea2x5[_0x84ed[9]](_0x84ed[7],attributes,{tableName:_0x84ed[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index bee11a9..9c82837 100644 (file)
@@ -1 +1 @@
-var _0xa7eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xa7eb[0];var _=require(_0xa7eb[1]);var util=require(_0xa7eb[2]);var moment=require(_0xa7eb[3]);var BPromise=require(_0xa7eb[4]);var db=require(_0xa7eb[6])[_0xa7eb[5]];var utils=require(_0xa7eb[7]);var logger=require(_0xa7eb[9])(_0xa7eb[8]);var jayson=require(_0xa7eb[10]);var client=jayson[_0xa7eb[12]][_0xa7eb[11]]({port:9002});function respondWithRpcPromise(_0xf542xb,_0xf542xc,_0xf542xd){return  new BPromise(function(_0xf542xe,_0xf542xf){return client[_0xa7eb[25]](_0xf542xb,_0xf542xd)[_0xa7eb[24]](function(_0xf542x11){logger[_0xa7eb[17]](_0xa7eb[13],_0xf542xc,_0xa7eb[16]);logger[_0xa7eb[20]](_0xa7eb[18],_0xf542xc,_0xa7eb[16],JSON[_0xa7eb[19]](_0xf542x11));if(_0xf542x11[_0xa7eb[14]]){if(_0xf542x11[_0xa7eb[14]][_0xa7eb[21]]=== 500){logger[_0xa7eb[14]](_0xa7eb[13],_0xf542xc,_0xf542x11[_0xa7eb[14]][_0xa7eb[22]]);return _0xf542xf(_0xf542x11[_0xa7eb[14]][_0xa7eb[22]])};logger[_0xa7eb[14]](_0xa7eb[13],_0xf542xc,_0xf542x11[_0xa7eb[14]][_0xa7eb[22]]);return _0xf542xe(_0xf542x11[_0xa7eb[14]][_0xa7eb[22]])}else {logger[_0xa7eb[17]](_0xa7eb[13],_0xf542xc,_0xa7eb[16]);_0xf542xe(_0xf542x11[_0xa7eb[23]][_0xa7eb[22]])}})[_0xa7eb[15]](function(_0xf542x10){logger[_0xa7eb[14]](_0xa7eb[13],_0xf542xc,_0xf542x10);_0xf542xf(_0xf542x10)})})}exports[_0xa7eb[26]]= function(_0xf542xd){var _0xf542x12=this;return  new Promise(function(_0xf542xe,_0xf542xf){return db[_0xa7eb[31]][_0xa7eb[30]](_0xf542xd[_0xa7eb[27]],{raw:_0xf542xd[_0xa7eb[28]]?(_0xf542xd[_0xa7eb[28]][_0xa7eb[29]]=== undefined)?true:false:true})[_0xa7eb[24]](function(_0xf542x11){logger[_0xa7eb[17]](_0xa7eb[26],_0xf542xd);logger[_0xa7eb[20]](_0xa7eb[26],_0xf542xd,JSON[_0xa7eb[19]](_0xf542x11));_0xf542xe(_0xf542x11)})[_0xa7eb[15]](function(_0xf542x10){logger[_0xa7eb[14]](_0xa7eb[26],_0xf542x10[_0xa7eb[22]],_0xf542xd);_0xf542xf(_0xf542x12[_0xa7eb[14]](500,_0xf542x10[_0xa7eb[22]]))})})};exports[_0xa7eb[32]]= function(_0xf542xd){var _0xf542x12=this;return  new Promise(function(_0xf542xe,_0xf542xf){return db[_0xa7eb[31]][_0xa7eb[36]](_0xf542xd[_0xa7eb[27]],{raw:_0xf542xd[_0xa7eb[28]]?(_0xf542xd[_0xa7eb[28]][_0xa7eb[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xf542xd[_0xa7eb[28]]?_0xf542xd[_0xa7eb[28]][_0xa7eb[33]]|| null:null,attributes:_0xf542xd[_0xa7eb[28]]?_0xf542xd[_0xa7eb[28]][_0xa7eb[34]]|| null:null,limit:_0xf542xd[_0xa7eb[28]]?_0xf542xd[_0xa7eb[28]][_0xa7eb[35]]|| null:null})[_0xa7eb[24]](function(_0xf542x11){logger[_0xa7eb[17]](_0xa7eb[32],_0xf542xd);logger[_0xa7eb[20]](_0xa7eb[32],_0xf542xd,JSON[_0xa7eb[19]](_0xf542x11));_0xf542xe(_0xf542x11)})[_0xa7eb[15]](function(_0xf542x10){logger[_0xa7eb[14]](_0xa7eb[32],_0xf542x10[_0xa7eb[22]],_0xf542xd);_0xf542xf(_0xf542x12[_0xa7eb[14]](500,_0xf542x10[_0xa7eb[22]]))})})}
\ No newline at end of file
+var _0xa835=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xa835[0];var _=require(_0xa835[1]);var util=require(_0xa835[2]);var moment=require(_0xa835[3]);var BPromise=require(_0xa835[4]);var db=require(_0xa835[6])[_0xa835[5]];var utils=require(_0xa835[7]);var logger=require(_0xa835[9])(_0xa835[8]);var jayson=require(_0xa835[10]);var client=jayson[_0xa835[12]][_0xa835[11]]({port:9002});function respondWithRpcPromise(_0x9413xb,_0x9413xc,_0x9413xd){return  new BPromise(function(_0x9413xe,_0x9413xf){return client[_0xa835[25]](_0x9413xb,_0x9413xd)[_0xa835[24]](function(_0x9413x11){logger[_0xa835[17]](_0xa835[13],_0x9413xc,_0xa835[16]);logger[_0xa835[20]](_0xa835[18],_0x9413xc,_0xa835[16],JSON[_0xa835[19]](_0x9413x11));if(_0x9413x11[_0xa835[14]]){if(_0x9413x11[_0xa835[14]][_0xa835[21]]=== 500){logger[_0xa835[14]](_0xa835[13],_0x9413xc,_0x9413x11[_0xa835[14]][_0xa835[22]]);return _0x9413xf(_0x9413x11[_0xa835[14]][_0xa835[22]])};logger[_0xa835[14]](_0xa835[13],_0x9413xc,_0x9413x11[_0xa835[14]][_0xa835[22]]);return _0x9413xe(_0x9413x11[_0xa835[14]][_0xa835[22]])}else {logger[_0xa835[17]](_0xa835[13],_0x9413xc,_0xa835[16]);_0x9413xe(_0x9413x11[_0xa835[23]][_0xa835[22]])}})[_0xa835[15]](function(_0x9413x10){logger[_0xa835[14]](_0xa835[13],_0x9413xc,_0x9413x10);_0x9413xf(_0x9413x10)})})}exports[_0xa835[26]]= function(_0x9413xd){var _0x9413x12=this;return  new Promise(function(_0x9413xe,_0x9413xf){return db[_0xa835[31]][_0xa835[30]](_0x9413xd[_0xa835[27]],{raw:_0x9413xd[_0xa835[28]]?(_0x9413xd[_0xa835[28]][_0xa835[29]]=== undefined)?true:false:true})[_0xa835[24]](function(_0x9413x11){logger[_0xa835[17]](_0xa835[26],_0x9413xd);logger[_0xa835[20]](_0xa835[26],_0x9413xd,JSON[_0xa835[19]](_0x9413x11));_0x9413xe(_0x9413x11)})[_0xa835[15]](function(_0x9413x10){logger[_0xa835[14]](_0xa835[26],_0x9413x10[_0xa835[22]],_0x9413xd);_0x9413xf(_0x9413x12[_0xa835[14]](500,_0x9413x10[_0xa835[22]]))})})};exports[_0xa835[32]]= function(_0x9413xd){var _0x9413x12=this;return  new Promise(function(_0x9413xe,_0x9413xf){return db[_0xa835[31]][_0xa835[36]](_0x9413xd[_0xa835[27]],{raw:_0x9413xd[_0xa835[28]]?(_0x9413xd[_0xa835[28]][_0xa835[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x9413xd[_0xa835[28]]?_0x9413xd[_0xa835[28]][_0xa835[33]]|| null:null,attributes:_0x9413xd[_0xa835[28]]?_0x9413xd[_0xa835[28]][_0xa835[34]]|| null:null,limit:_0x9413xd[_0xa835[28]]?_0x9413xd[_0xa835[28]][_0xa835[35]]|| null:null})[_0xa835[24]](function(_0x9413x11){logger[_0xa835[17]](_0xa835[32],_0x9413xd);logger[_0xa835[20]](_0xa835[32],_0x9413xd,JSON[_0xa835[19]](_0x9413x11));_0x9413xe(_0x9413x11)})[_0xa835[15]](function(_0x9413x10){logger[_0xa835[14]](_0xa835[32],_0x9413x10[_0xa835[22]],_0x9413xd);_0x9413xf(_0x9413x12[_0xa835[14]](500,_0x9413x10[_0xa835[22]]))})})}
\ No newline at end of file
index c0237aa..d3a78cc 100644 (file)
@@ -1 +1 @@
-var _0xa557=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa557[0];var multer=require(_0xa557[1]);var util=require(_0xa557[2]);var path=require(_0xa557[3]);var express=require(_0xa557[4]);var router=express.Router();var auth=require(_0xa557[5]);var config=require(_0xa557[6]);var controller=require(_0xa557[7]);router[_0xa557[11]](_0xa557[8],auth[_0xa557[9]](),controller[_0xa557[10]]);router[_0xa557[11]](_0xa557[12],auth[_0xa557[9]](),controller[_0xa557[13]]);router[_0xa557[11]](_0xa557[14],auth[_0xa557[9]](),controller[_0xa557[15]]);router[_0xa557[17]](_0xa557[8],auth[_0xa557[9]](),controller[_0xa557[16]]);router[_0xa557[19]](_0xa557[14],auth[_0xa557[9]](),controller[_0xa557[18]]);router[_0xa557[21]](_0xa557[14],auth[_0xa557[9]](),controller[_0xa557[20]]);module[_0xa557[22]]= router
\ No newline at end of file
+var _0xeafe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xeafe[0];var multer=require(_0xeafe[1]);var util=require(_0xeafe[2]);var path=require(_0xeafe[3]);var express=require(_0xeafe[4]);var router=express.Router();var auth=require(_0xeafe[5]);var config=require(_0xeafe[6]);var controller=require(_0xeafe[7]);router[_0xeafe[11]](_0xeafe[8],auth[_0xeafe[9]](),controller[_0xeafe[10]]);router[_0xeafe[11]](_0xeafe[12],auth[_0xeafe[9]](),controller[_0xeafe[13]]);router[_0xeafe[11]](_0xeafe[14],auth[_0xeafe[9]](),controller[_0xeafe[15]]);router[_0xeafe[17]](_0xeafe[8],auth[_0xeafe[9]](),controller[_0xeafe[16]]);router[_0xeafe[19]](_0xeafe[14],auth[_0xeafe[9]](),controller[_0xeafe[18]]);router[_0xeafe[21]](_0xeafe[14],auth[_0xeafe[9]](),controller[_0xeafe[20]]);module[_0xeafe[22]]= router
\ No newline at end of file
index 4eabc25..6dbe267 100644 (file)
@@ -1 +1 @@
-var _0x5c5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x5c5a[0];var Sequelize=require(_0x5c5a[1]);module[_0x5c5a[2]]= {uniqueid:{type:Sequelize[_0x5c5a[3]]},node:{type:Sequelize[_0x5c5a[3]]},application:{type:Sequelize[_0x5c5a[3]]},data:{type:Sequelize[_0x5c5a[4]]},project_name:{type:Sequelize[_0x5c5a[3]]},callerid:{type:Sequelize[_0x5c5a[3]]}}
\ No newline at end of file
+var _0x48ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x48ad[0];var Sequelize=require(_0x48ad[1]);module[_0x48ad[2]]= {uniqueid:{type:Sequelize[_0x48ad[3]]},node:{type:Sequelize[_0x48ad[3]]},application:{type:Sequelize[_0x48ad[3]]},data:{type:Sequelize[_0x48ad[4]]},project_name:{type:Sequelize[_0x48ad[3]]},callerid:{type:Sequelize[_0x48ad[3]]}}
\ No newline at end of file
index 1f900b9..6574f3e 100644 (file)
@@ -1 +1 @@
-var _0x8aa1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x8aa1[0];var jsonpatch=require(_0x8aa1[1]);var rp=require(_0x8aa1[2]);var moment=require(_0x8aa1[3]);var BPromise=require(_0x8aa1[4]);var util=require(_0x8aa1[5]);var path=require(_0x8aa1[6]);var sox=require(_0x8aa1[7]);var ejs=require(_0x8aa1[8]);var fs=require(_0x8aa1[9]);var _=require(_0x8aa1[10]);var squel=require(_0x8aa1[11]);var crypto=require(_0x8aa1[12]);var jsforce=require(_0x8aa1[13]);var toCsv=require(_0x8aa1[14]);var qs=require(_0x8aa1[15]);var logger=require(_0x8aa1[17])(_0x8aa1[16]);var utils=require(_0x8aa1[18]);var config=require(_0x8aa1[19]);var db=require(_0x8aa1[21])[_0x8aa1[20]];function respondWithStatusCode(_0x3884x15,_0x3884x16,_0x3884x17){_0x3884x16= _0x3884x16|| 204;return function(_0x3884x18){if(_0x3884x18){logger[_0x8aa1[24]](_0x8aa1[22],_0x3884x17,_0x3884x16,_0x8aa1[23]);logger[_0x8aa1[26]](_0x8aa1[25],_0x3884x17,_0x3884x16,_0x8aa1[23]);return _0x3884x15[_0x8aa1[27]](_0x3884x16)};return _0x3884x15[_0x8aa1[29]](304)[_0x8aa1[28]]()}}function respondWithResult(_0x3884x15,_0x3884x16,_0x3884x17){_0x3884x16= _0x3884x16|| 200;return function(_0x3884x18){if(_0x3884x18){logger[_0x8aa1[24]](_0x8aa1[22],_0x3884x17,_0x3884x16,_0x8aa1[30]);logger[_0x8aa1[26]](_0x8aa1[25],_0x3884x17,_0x3884x16,_0x8aa1[30],JSON[_0x8aa1[31]](_0x3884x18));return _0x3884x15[_0x8aa1[29]](_0x3884x16)[_0x8aa1[32]](_0x3884x18)};return _0x3884x15[_0x8aa1[29]](304)[_0x8aa1[28]]()}}function respondWithFilteredResult(_0x3884x15,_0x3884x1b,_0x3884x17){return function(_0x3884x18){if(_0x3884x18){var _0x3884x1c=_0x3884x18[_0x8aa1[33]],_0x3884x1d=_0x3884x1b[_0x8aa1[34]],_0x3884x1e=_0x3884x1b[_0x8aa1[34]]+ _0x3884x1b[_0x8aa1[35]],_0x3884x16;if(_0x3884x1e>= _0x3884x1c){_0x3884x1e= _0x3884x1c;_0x3884x16= 200}else {_0x3884x16= 206};_0x3884x15[_0x8aa1[29]](_0x3884x16);logger[_0x8aa1[24]](_0x8aa1[22],_0x3884x17,_0x3884x16,_0x8aa1[36]);logger[_0x8aa1[26]](_0x8aa1[25],_0x3884x17,_0x3884x16,_0x8aa1[30],JSON[_0x8aa1[31]](_0x3884x18));return _0x3884x15[_0x8aa1[40]](_0x8aa1[37],_0x3884x1d+ _0x8aa1[38]+ _0x3884x1e+ _0x8aa1[39]+ _0x3884x1c)[_0x8aa1[32]](_0x3884x18)};return null}}function patchUpdates(_0x3884x20){return function(_0x3884x18){try{jsonpatch[_0x8aa1[41]](_0x3884x18,_0x3884x20,true)}catch(err){return BPromise[_0x8aa1[42]](err)};return _0x3884x18[_0x8aa1[43]]()}}function saveUpdates(_0x3884x22,_0x3884x16,_0x3884x17){return function(_0x3884x18){if(_0x3884x18){return _0x3884x18[_0x8aa1[46]](_0x3884x22)[_0x8aa1[45]](function(_0x3884x23){logger[_0x8aa1[24]](_0x8aa1[22],_0x3884x17,_0x3884x16,_0x8aa1[44]);logger[_0x8aa1[26]](_0x8aa1[25],_0x3884x17,_0x3884x16,_0x8aa1[44],JSON[_0x8aa1[31]](_0x3884x18));return _0x3884x23})};return null}}function removeEntity(_0x3884x15,_0x3884x16,_0x3884x17){return function(_0x3884x18){if(_0x3884x18){return _0x3884x18[_0x8aa1[48]]()[_0x8aa1[45]](function(){logger[_0x8aa1[24]](_0x8aa1[22],_0x3884x17,_0x3884x16,_0x8aa1[47]);logger[_0x8aa1[26]](_0x8aa1[25],_0x3884x17,_0x3884x16,_0x8aa1[47],JSON[_0x8aa1[31]](_0x3884x18));_0x3884x15[_0x8aa1[29]](204)[_0x8aa1[28]]()})}}}function handleEntityNotFound(_0x3884x15,_0x3884x16,_0x3884x17){return function(_0x3884x18){if(!_0x3884x18){logger[_0x8aa1[50]](_0x8aa1[22],_0x3884x17,404,_0x8aa1[49]);_0x3884x15[_0x8aa1[29]](404)[_0x8aa1[28]]();return null};return _0x3884x18}}function handleError(_0x3884x15,_0x3884x16,_0x3884x17){_0x3884x16= _0x3884x16|| 500;return function(_0x3884x27){logger[_0x8aa1[50]](_0x8aa1[22],_0x3884x17,_0x3884x16,JSON[_0x8aa1[31]](_0x3884x27));delete _0x3884x27[_0x8aa1[51]];_0x3884x15[_0x8aa1[29]](_0x3884x16)[_0x8aa1[52]](_0x3884x27)}}exports[_0x8aa1[53]]= function(_0x3884x28,_0x3884x15){var _0x3884x1b={},_0x3884x29={};_0x3884x29[_0x8aa1[54]]= _[_0x8aa1[57]](db[_0x8aa1[56]][_0x8aa1[55]]);_0x3884x29[_0x8aa1[58]]= _[_0x8aa1[57]](_0x3884x28[_0x8aa1[58]]);_0x3884x29[_0x8aa1[59]]= _[_0x8aa1[60]](_0x3884x29[_0x8aa1[54]],_0x3884x29[_0x8aa1[58]]);_0x3884x1b[_0x8aa1[61]]= _[_0x8aa1[60]](_0x3884x29[_0x8aa1[54]],qs[_0x8aa1[62]](_0x3884x28[_0x8aa1[58]][_0x8aa1[62]]));_0x3884x1b[_0x8aa1[61]]= (_0x3884x1b[_0x8aa1[61]][_0x8aa1[63]])?_0x3884x1b[_0x8aa1[61]]:_0x3884x29[_0x8aa1[54]];if(!_0x3884x28[_0x8aa1[58]][_0x8aa1[65]](_0x8aa1[64])){_0x3884x1b[_0x8aa1[35]]= qs[_0x8aa1[35]](_0x3884x28[_0x8aa1[58]][_0x8aa1[35]]);_0x3884x1b[_0x8aa1[34]]= qs[_0x8aa1[34]](_0x3884x28[_0x8aa1[58]][_0x8aa1[34]])};_0x3884x1b[_0x8aa1[66]]= qs[_0x8aa1[67]](_0x3884x28[_0x8aa1[58]][_0x8aa1[67]]);_0x3884x1b[_0x8aa1[68]]= qs[_0x8aa1[59]](_[_0x8aa1[69]](_0x3884x28[_0x8aa1[58]],_0x3884x29[_0x8aa1[59]]));if(_0x3884x28[_0x8aa1[58]][_0x8aa1[70]]){_0x3884x1b[_0x8aa1[68]]= _[_0x8aa1[73]](_0x3884x1b[_0x8aa1[68]],{$or:_[_0x8aa1[72]](_0x3884x1b[_0x8aa1[61]],function(_0x3884x2a){var _0x3884x2b={};_0x3884x2b[_0x3884x2a]= {$like:_0x8aa1[71]+ _0x3884x28[_0x8aa1[58]][_0x8aa1[70]]+ _0x8aa1[71]};return _0x3884x2b})})};_0x3884x1b= _[_0x8aa1[73]]({},_0x3884x1b,_0x3884x28[_0x8aa1[74]]);return db[_0x8aa1[56]][_0x8aa1[76]](_0x3884x1b)[_0x8aa1[45]](respondWithFilteredResult(_0x3884x15,_0x3884x1b,_0x8aa1[53]))[_0x8aa1[75]](handleError(_0x3884x15,null,_0x8aa1[53]))};exports[_0x8aa1[77]]= function(_0x3884x28,_0x3884x15){var _0x3884x1b={raw:true,where:{id:_0x3884x28[_0x8aa1[79]][_0x8aa1[78]]}},_0x3884x29={};_0x3884x29[_0x8aa1[54]]= _[_0x8aa1[57]](db[_0x8aa1[56]][_0x8aa1[55]]);_0x3884x29[_0x8aa1[58]]= _[_0x8aa1[57]](_0x3884x28[_0x8aa1[58]]);_0x3884x29[_0x8aa1[59]]= _[_0x8aa1[60]](_0x3884x29[_0x8aa1[54]],_0x3884x29[_0x8aa1[58]]);_0x3884x1b[_0x8aa1[61]]= _[_0x8aa1[60]](_0x3884x29[_0x8aa1[54]],qs[_0x8aa1[62]](_0x3884x28[_0x8aa1[58]][_0x8aa1[62]]));_0x3884x1b[_0x8aa1[61]]= (_0x3884x1b[_0x8aa1[61]][_0x8aa1[63]])?_0x3884x1b[_0x8aa1[61]]:_0x3884x29[_0x8aa1[54]];_0x3884x1b= _[_0x8aa1[73]]({},_0x3884x1b,_0x3884x28[_0x8aa1[74]]);return db[_0x8aa1[56]][_0x8aa1[80]](_0x3884x1b)[_0x8aa1[45]](handleEntityNotFound(_0x3884x15,null,_0x8aa1[77]))[_0x8aa1[45]](respondWithResult(_0x3884x15,null,_0x8aa1[77]))[_0x8aa1[75]](handleError(_0x3884x15,null,_0x8aa1[77]))};exports[_0x8aa1[81]]= function(_0x3884x28,_0x3884x15){return db[_0x8aa1[56]][_0x8aa1[81]](_0x3884x28[_0x8aa1[82]],{})[_0x8aa1[45]](respondWithResult(_0x3884x15,201,_0x8aa1[81]))[_0x8aa1[75]](handleError(_0x3884x15,null,_0x8aa1[81]))};exports[_0x8aa1[46]]= function(_0x3884x28,_0x3884x15){if(_0x3884x28[_0x8aa1[82]][_0x8aa1[78]]){delete _0x3884x28[_0x8aa1[82]][_0x8aa1[78]]};return db[_0x8aa1[56]][_0x8aa1[80]]({where:{id:_0x3884x28[_0x8aa1[79]][_0x8aa1[78]]}})[_0x8aa1[45]](handleEntityNotFound(_0x3884x15,null,_0x8aa1[46]))[_0x8aa1[45]](saveUpdates(_0x3884x28[_0x8aa1[82]],null,_0x8aa1[46]))[_0x8aa1[45]](respondWithResult(_0x3884x15,null,_0x8aa1[46]))[_0x8aa1[75]](handleError(_0x3884x15,null,_0x8aa1[46]))};exports[_0x8aa1[48]]= function(_0x3884x28,_0x3884x15){return db[_0x8aa1[56]][_0x8aa1[80]]({where:{id:_0x3884x28[_0x8aa1[79]][_0x8aa1[78]]}})[_0x8aa1[45]](handleEntityNotFound(_0x3884x15,null,_0x8aa1[48]))[_0x8aa1[45]](removeEntity(_0x3884x15,null,_0x8aa1[48]))[_0x8aa1[75]](handleError(_0x3884x15,null,_0x8aa1[48]))};exports[_0x8aa1[83]]= function(_0x3884x28,_0x3884x15){return db[_0x8aa1[56]][_0x8aa1[83]]()[_0x8aa1[45]](respondWithResult(_0x3884x15,null,_0x8aa1[83]))[_0x8aa1[75]](handleError(_0x3884x15,null,_0x8aa1[83]))}
\ No newline at end of file
+var _0x4def=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x4def[0];var jsonpatch=require(_0x4def[1]);var rp=require(_0x4def[2]);var moment=require(_0x4def[3]);var BPromise=require(_0x4def[4]);var util=require(_0x4def[5]);var path=require(_0x4def[6]);var sox=require(_0x4def[7]);var ejs=require(_0x4def[8]);var fs=require(_0x4def[9]);var _=require(_0x4def[10]);var squel=require(_0x4def[11]);var crypto=require(_0x4def[12]);var jsforce=require(_0x4def[13]);var toCsv=require(_0x4def[14]);var qs=require(_0x4def[15]);var logger=require(_0x4def[17])(_0x4def[16]);var utils=require(_0x4def[18]);var config=require(_0x4def[19]);var db=require(_0x4def[21])[_0x4def[20]];function respondWithStatusCode(_0xbae8x15,_0xbae8x16,_0xbae8x17){_0xbae8x16= _0xbae8x16|| 204;return function(_0xbae8x18){if(_0xbae8x18){logger[_0x4def[24]](_0x4def[22],_0xbae8x17,_0xbae8x16,_0x4def[23]);logger[_0x4def[26]](_0x4def[25],_0xbae8x17,_0xbae8x16,_0x4def[23]);return _0xbae8x15[_0x4def[27]](_0xbae8x16)};return _0xbae8x15[_0x4def[29]](304)[_0x4def[28]]()}}function respondWithResult(_0xbae8x15,_0xbae8x16,_0xbae8x17){_0xbae8x16= _0xbae8x16|| 200;return function(_0xbae8x18){if(_0xbae8x18){logger[_0x4def[24]](_0x4def[22],_0xbae8x17,_0xbae8x16,_0x4def[30]);logger[_0x4def[26]](_0x4def[25],_0xbae8x17,_0xbae8x16,_0x4def[30],JSON[_0x4def[31]](_0xbae8x18));return _0xbae8x15[_0x4def[29]](_0xbae8x16)[_0x4def[32]](_0xbae8x18)};return _0xbae8x15[_0x4def[29]](304)[_0x4def[28]]()}}function respondWithFilteredResult(_0xbae8x15,_0xbae8x1b,_0xbae8x17){return function(_0xbae8x18){if(_0xbae8x18){var _0xbae8x1c=_0xbae8x18[_0x4def[33]],_0xbae8x1d=_0xbae8x1b[_0x4def[34]],_0xbae8x1e=_0xbae8x1b[_0x4def[34]]+ _0xbae8x1b[_0x4def[35]],_0xbae8x16;if(_0xbae8x1e>= _0xbae8x1c){_0xbae8x1e= _0xbae8x1c;_0xbae8x16= 200}else {_0xbae8x16= 206};_0xbae8x15[_0x4def[29]](_0xbae8x16);logger[_0x4def[24]](_0x4def[22],_0xbae8x17,_0xbae8x16,_0x4def[36]);logger[_0x4def[26]](_0x4def[25],_0xbae8x17,_0xbae8x16,_0x4def[30],JSON[_0x4def[31]](_0xbae8x18));return _0xbae8x15[_0x4def[40]](_0x4def[37],_0xbae8x1d+ _0x4def[38]+ _0xbae8x1e+ _0x4def[39]+ _0xbae8x1c)[_0x4def[32]](_0xbae8x18)};return null}}function patchUpdates(_0xbae8x20){return function(_0xbae8x18){try{jsonpatch[_0x4def[41]](_0xbae8x18,_0xbae8x20,true)}catch(err){return BPromise[_0x4def[42]](err)};return _0xbae8x18[_0x4def[43]]()}}function saveUpdates(_0xbae8x22,_0xbae8x16,_0xbae8x17){return function(_0xbae8x18){if(_0xbae8x18){return _0xbae8x18[_0x4def[46]](_0xbae8x22)[_0x4def[45]](function(_0xbae8x23){logger[_0x4def[24]](_0x4def[22],_0xbae8x17,_0xbae8x16,_0x4def[44]);logger[_0x4def[26]](_0x4def[25],_0xbae8x17,_0xbae8x16,_0x4def[44],JSON[_0x4def[31]](_0xbae8x18));return _0xbae8x23})};return null}}function removeEntity(_0xbae8x15,_0xbae8x16,_0xbae8x17){return function(_0xbae8x18){if(_0xbae8x18){return _0xbae8x18[_0x4def[48]]()[_0x4def[45]](function(){logger[_0x4def[24]](_0x4def[22],_0xbae8x17,_0xbae8x16,_0x4def[47]);logger[_0x4def[26]](_0x4def[25],_0xbae8x17,_0xbae8x16,_0x4def[47],JSON[_0x4def[31]](_0xbae8x18));_0xbae8x15[_0x4def[29]](204)[_0x4def[28]]()})}}}function handleEntityNotFound(_0xbae8x15,_0xbae8x16,_0xbae8x17){return function(_0xbae8x18){if(!_0xbae8x18){logger[_0x4def[50]](_0x4def[22],_0xbae8x17,404,_0x4def[49]);_0xbae8x15[_0x4def[29]](404)[_0x4def[28]]();return null};return _0xbae8x18}}function handleError(_0xbae8x15,_0xbae8x16,_0xbae8x17){_0xbae8x16= _0xbae8x16|| 500;return function(_0xbae8x27){logger[_0x4def[50]](_0x4def[22],_0xbae8x17,_0xbae8x16,JSON[_0x4def[31]](_0xbae8x27));delete _0xbae8x27[_0x4def[51]];_0xbae8x15[_0x4def[29]](_0xbae8x16)[_0x4def[52]](_0xbae8x27)}}exports[_0x4def[53]]= function(_0xbae8x28,_0xbae8x15){var _0xbae8x1b={},_0xbae8x29={};_0xbae8x29[_0x4def[54]]= _[_0x4def[57]](db[_0x4def[56]][_0x4def[55]]);_0xbae8x29[_0x4def[58]]= _[_0x4def[57]](_0xbae8x28[_0x4def[58]]);_0xbae8x29[_0x4def[59]]= _[_0x4def[60]](_0xbae8x29[_0x4def[54]],_0xbae8x29[_0x4def[58]]);_0xbae8x1b[_0x4def[61]]= _[_0x4def[60]](_0xbae8x29[_0x4def[54]],qs[_0x4def[62]](_0xbae8x28[_0x4def[58]][_0x4def[62]]));_0xbae8x1b[_0x4def[61]]= (_0xbae8x1b[_0x4def[61]][_0x4def[63]])?_0xbae8x1b[_0x4def[61]]:_0xbae8x29[_0x4def[54]];if(!_0xbae8x28[_0x4def[58]][_0x4def[65]](_0x4def[64])){_0xbae8x1b[_0x4def[35]]= qs[_0x4def[35]](_0xbae8x28[_0x4def[58]][_0x4def[35]]);_0xbae8x1b[_0x4def[34]]= qs[_0x4def[34]](_0xbae8x28[_0x4def[58]][_0x4def[34]])};_0xbae8x1b[_0x4def[66]]= qs[_0x4def[67]](_0xbae8x28[_0x4def[58]][_0x4def[67]]);_0xbae8x1b[_0x4def[68]]= qs[_0x4def[59]](_[_0x4def[69]](_0xbae8x28[_0x4def[58]],_0xbae8x29[_0x4def[59]]));if(_0xbae8x28[_0x4def[58]][_0x4def[70]]){_0xbae8x1b[_0x4def[68]]= _[_0x4def[73]](_0xbae8x1b[_0x4def[68]],{$or:_[_0x4def[72]](_0xbae8x1b[_0x4def[61]],function(_0xbae8x2a){var _0xbae8x2b={};_0xbae8x2b[_0xbae8x2a]= {$like:_0x4def[71]+ _0xbae8x28[_0x4def[58]][_0x4def[70]]+ _0x4def[71]};return _0xbae8x2b})})};_0xbae8x1b= _[_0x4def[73]]({},_0xbae8x1b,_0xbae8x28[_0x4def[74]]);return db[_0x4def[56]][_0x4def[76]](_0xbae8x1b)[_0x4def[45]](respondWithFilteredResult(_0xbae8x15,_0xbae8x1b,_0x4def[53]))[_0x4def[75]](handleError(_0xbae8x15,null,_0x4def[53]))};exports[_0x4def[77]]= function(_0xbae8x28,_0xbae8x15){var _0xbae8x1b={raw:true,where:{id:_0xbae8x28[_0x4def[79]][_0x4def[78]]}},_0xbae8x29={};_0xbae8x29[_0x4def[54]]= _[_0x4def[57]](db[_0x4def[56]][_0x4def[55]]);_0xbae8x29[_0x4def[58]]= _[_0x4def[57]](_0xbae8x28[_0x4def[58]]);_0xbae8x29[_0x4def[59]]= _[_0x4def[60]](_0xbae8x29[_0x4def[54]],_0xbae8x29[_0x4def[58]]);_0xbae8x1b[_0x4def[61]]= _[_0x4def[60]](_0xbae8x29[_0x4def[54]],qs[_0x4def[62]](_0xbae8x28[_0x4def[58]][_0x4def[62]]));_0xbae8x1b[_0x4def[61]]= (_0xbae8x1b[_0x4def[61]][_0x4def[63]])?_0xbae8x1b[_0x4def[61]]:_0xbae8x29[_0x4def[54]];_0xbae8x1b= _[_0x4def[73]]({},_0xbae8x1b,_0xbae8x28[_0x4def[74]]);return db[_0x4def[56]][_0x4def[80]](_0xbae8x1b)[_0x4def[45]](handleEntityNotFound(_0xbae8x15,null,_0x4def[77]))[_0x4def[45]](respondWithResult(_0xbae8x15,null,_0x4def[77]))[_0x4def[75]](handleError(_0xbae8x15,null,_0x4def[77]))};exports[_0x4def[81]]= function(_0xbae8x28,_0xbae8x15){return db[_0x4def[56]][_0x4def[81]](_0xbae8x28[_0x4def[82]],{})[_0x4def[45]](respondWithResult(_0xbae8x15,201,_0x4def[81]))[_0x4def[75]](handleError(_0xbae8x15,null,_0x4def[81]))};exports[_0x4def[46]]= function(_0xbae8x28,_0xbae8x15){if(_0xbae8x28[_0x4def[82]][_0x4def[78]]){delete _0xbae8x28[_0x4def[82]][_0x4def[78]]};return db[_0x4def[56]][_0x4def[80]]({where:{id:_0xbae8x28[_0x4def[79]][_0x4def[78]]}})[_0x4def[45]](handleEntityNotFound(_0xbae8x15,null,_0x4def[46]))[_0x4def[45]](saveUpdates(_0xbae8x28[_0x4def[82]],null,_0x4def[46]))[_0x4def[45]](respondWithResult(_0xbae8x15,null,_0x4def[46]))[_0x4def[75]](handleError(_0xbae8x15,null,_0x4def[46]))};exports[_0x4def[48]]= function(_0xbae8x28,_0xbae8x15){return db[_0x4def[56]][_0x4def[80]]({where:{id:_0xbae8x28[_0x4def[79]][_0x4def[78]]}})[_0x4def[45]](handleEntityNotFound(_0xbae8x15,null,_0x4def[48]))[_0x4def[45]](removeEntity(_0xbae8x15,null,_0x4def[48]))[_0x4def[75]](handleError(_0xbae8x15,null,_0x4def[48]))};exports[_0x4def[83]]= function(_0xbae8x28,_0xbae8x15){return db[_0x4def[56]][_0x4def[83]]()[_0x4def[45]](respondWithResult(_0xbae8x15,null,_0x4def[83]))[_0x4def[75]](handleError(_0xbae8x15,null,_0x4def[83]))}
\ No newline at end of file
index af08153..5fb107c 100644 (file)
@@ -1 +1 @@
-var _0x8719=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x64\x65\x66\x69\x6E\x65"];_0x8719[0];var _=require(_0x8719[1]);var util=require(_0x8719[2]);var logger=require(_0x8719[4])(_0x8719[3]);var attributes=require(_0x8719[5]);module[_0x8719[6]]= function(_0x58e4x5,_0x58e4x6){return _0x58e4x5[_0x8719[9]](_0x8719[7],attributes,{tableName:_0x8719[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x22d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x64\x65\x66\x69\x6E\x65"];_0x22d4[0];var _=require(_0x22d4[1]);var util=require(_0x22d4[2]);var logger=require(_0x22d4[4])(_0x22d4[3]);var attributes=require(_0x22d4[5]);module[_0x22d4[6]]= function(_0xfc01x5,_0xfc01x6){return _0xfc01x5[_0x22d4[9]](_0x22d4[7],attributes,{tableName:_0x22d4[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 0dbf675..eb83a57 100644 (file)
@@ -1 +1 @@
-var _0x69c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74"];_0x69c2[0];var _=require(_0x69c2[1]);var util=require(_0x69c2[2]);var moment=require(_0x69c2[3]);var BPromise=require(_0x69c2[4]);var db=require(_0x69c2[6])[_0x69c2[5]];var utils=require(_0x69c2[7]);var logger=require(_0x69c2[9])(_0x69c2[8]);var jayson=require(_0x69c2[10]);var client=jayson[_0x69c2[12]][_0x69c2[11]]({port:9002});function respondWithRpcPromise(_0x293fxb,_0x293fxc,_0x293fxd){return  new BPromise(function(_0x293fxe,_0x293fxf){return client[_0x69c2[25]](_0x293fxb,_0x293fxd)[_0x69c2[24]](function(_0x293fx11){logger[_0x69c2[17]](_0x69c2[13],_0x293fxc,_0x69c2[16]);logger[_0x69c2[20]](_0x69c2[18],_0x293fxc,_0x69c2[16],JSON[_0x69c2[19]](_0x293fx11));if(_0x293fx11[_0x69c2[14]]){if(_0x293fx11[_0x69c2[14]][_0x69c2[21]]=== 500){logger[_0x69c2[14]](_0x69c2[13],_0x293fxc,_0x293fx11[_0x69c2[14]][_0x69c2[22]]);return _0x293fxf(_0x293fx11[_0x69c2[14]][_0x69c2[22]])};logger[_0x69c2[14]](_0x69c2[13],_0x293fxc,_0x293fx11[_0x69c2[14]][_0x69c2[22]]);return _0x293fxe(_0x293fx11[_0x69c2[14]][_0x69c2[22]])}else {logger[_0x69c2[17]](_0x69c2[13],_0x293fxc,_0x69c2[16]);_0x293fxe(_0x293fx11[_0x69c2[23]][_0x69c2[22]])}})[_0x69c2[15]](function(_0x293fx10){logger[_0x69c2[14]](_0x69c2[13],_0x293fxc,_0x293fx10);_0x293fxf(_0x293fx10)})})}exports[_0x69c2[26]]= function(_0x293fxd){var _0x293fx12=this;return  new Promise(function(_0x293fxe,_0x293fxf){return db[_0x69c2[31]][_0x69c2[30]](_0x293fxd[_0x69c2[27]],{raw:_0x293fxd[_0x69c2[28]]?(_0x293fxd[_0x69c2[28]][_0x69c2[29]]=== undefined)?true:false:true})[_0x69c2[24]](function(_0x293fx11){logger[_0x69c2[17]](_0x69c2[26],_0x293fxd);logger[_0x69c2[20]](_0x69c2[26],_0x293fxd,JSON[_0x69c2[19]](_0x293fx11));_0x293fxe(_0x293fx11)})[_0x69c2[15]](function(_0x293fx10){logger[_0x69c2[14]](_0x69c2[26],_0x293fx10[_0x69c2[22]],_0x293fxd);_0x293fxf(_0x293fx12[_0x69c2[14]](500,_0x293fx10[_0x69c2[22]]))})})}
\ No newline at end of file
+var _0x7479=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74"];_0x7479[0];var _=require(_0x7479[1]);var util=require(_0x7479[2]);var moment=require(_0x7479[3]);var BPromise=require(_0x7479[4]);var db=require(_0x7479[6])[_0x7479[5]];var utils=require(_0x7479[7]);var logger=require(_0x7479[9])(_0x7479[8]);var jayson=require(_0x7479[10]);var client=jayson[_0x7479[12]][_0x7479[11]]({port:9002});function respondWithRpcPromise(_0xb9dexb,_0xb9dexc,_0xb9dexd){return  new BPromise(function(_0xb9dexe,_0xb9dexf){return client[_0x7479[25]](_0xb9dexb,_0xb9dexd)[_0x7479[24]](function(_0xb9dex11){logger[_0x7479[17]](_0x7479[13],_0xb9dexc,_0x7479[16]);logger[_0x7479[20]](_0x7479[18],_0xb9dexc,_0x7479[16],JSON[_0x7479[19]](_0xb9dex11));if(_0xb9dex11[_0x7479[14]]){if(_0xb9dex11[_0x7479[14]][_0x7479[21]]=== 500){logger[_0x7479[14]](_0x7479[13],_0xb9dexc,_0xb9dex11[_0x7479[14]][_0x7479[22]]);return _0xb9dexf(_0xb9dex11[_0x7479[14]][_0x7479[22]])};logger[_0x7479[14]](_0x7479[13],_0xb9dexc,_0xb9dex11[_0x7479[14]][_0x7479[22]]);return _0xb9dexe(_0xb9dex11[_0x7479[14]][_0x7479[22]])}else {logger[_0x7479[17]](_0x7479[13],_0xb9dexc,_0x7479[16]);_0xb9dexe(_0xb9dex11[_0x7479[23]][_0x7479[22]])}})[_0x7479[15]](function(_0xb9dex10){logger[_0x7479[14]](_0x7479[13],_0xb9dexc,_0xb9dex10);_0xb9dexf(_0xb9dex10)})})}exports[_0x7479[26]]= function(_0xb9dexd){var _0xb9dex12=this;return  new Promise(function(_0xb9dexe,_0xb9dexf){return db[_0x7479[31]][_0x7479[30]](_0xb9dexd[_0x7479[27]],{raw:_0xb9dexd[_0x7479[28]]?(_0xb9dexd[_0x7479[28]][_0x7479[29]]=== undefined)?true:false:true})[_0x7479[24]](function(_0xb9dex11){logger[_0x7479[17]](_0x7479[26],_0xb9dexd);logger[_0x7479[20]](_0x7479[26],_0xb9dexd,JSON[_0x7479[19]](_0xb9dex11));_0xb9dexe(_0xb9dex11)})[_0x7479[15]](function(_0xb9dex10){logger[_0x7479[14]](_0x7479[26],_0xb9dex10[_0x7479[22]],_0xb9dexd);_0xb9dexf(_0xb9dex12[_0x7479[14]](500,_0xb9dex10[_0x7479[22]]))})})}
\ No newline at end of file
index 5be2f56..0a426f6 100644 (file)
@@ -1 +1 @@
-var _0xb15c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x79\x73\x74\x65\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xb15c[0];var express=require(_0xb15c[1]);var router=express.Router();var auth=require(_0xb15c[2]);var controller=require(_0xb15c[3]);router[_0xb15c[6]](_0xb15c[4],controller[_0xb15c[5]]);module[_0xb15c[7]]= router
\ No newline at end of file
+var _0x6e1e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x79\x73\x74\x65\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x6e1e[0];var express=require(_0x6e1e[1]);var router=express.Router();var auth=require(_0x6e1e[2]);var controller=require(_0x6e1e[3]);router[_0x6e1e[6]](_0x6e1e[4],controller[_0x6e1e[5]]);module[_0x6e1e[7]]= router
\ No newline at end of file
index 0402cd7..b12a2df 100644 (file)
@@ -1 +1 @@
-var _0x40d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x79\x73\x74\x65\x6D\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x41\x6C\x6C\x44\x61\x74\x61"];_0x40d0[0];var info=require(_0x40d0[1]);exports[_0x40d0[2]]= function(_0xea0ex2,_0xea0ex3){return info[_0x40d0[7]]()[_0x40d0[6]](function(_0xea0ex5){return _0xea0ex3[_0x40d0[4]](200)[_0x40d0[3]](_0xea0ex5)})[_0x40d0[5]](function(_0xea0ex4){return _0xea0ex3[_0x40d0[4]](500)[_0x40d0[3]](_0xea0ex4)})}
\ No newline at end of file
+var _0x4243=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x79\x73\x74\x65\x6D\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x41\x6C\x6C\x44\x61\x74\x61"];_0x4243[0];var info=require(_0x4243[1]);exports[_0x4243[2]]= function(_0x13adx2,_0x13adx3){return info[_0x4243[7]]()[_0x4243[6]](function(_0x13adx5){return _0x13adx3[_0x4243[4]](200)[_0x4243[3]](_0x13adx5)})[_0x4243[5]](function(_0x13adx4){return _0x13adx3[_0x4243[4]](500)[_0x4243[3]](_0x13adx4)})}
\ No newline at end of file
index 318645c..0e871c3 100644 (file)
@@ -1 +1 @@
-var _0x57ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x61\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x57ac[0];var multer=require(_0x57ac[1]);var util=require(_0x57ac[2]);var path=require(_0x57ac[3]);var express=require(_0x57ac[4]);var router=express.Router();var auth=require(_0x57ac[5]);var config=require(_0x57ac[6]);var controller=require(_0x57ac[7]);router[_0x57ac[11]](_0x57ac[8],auth[_0x57ac[9]](),controller[_0x57ac[10]]);router[_0x57ac[11]](_0x57ac[12],auth[_0x57ac[9]](),controller[_0x57ac[13]]);router[_0x57ac[15]](_0x57ac[8],auth[_0x57ac[9]](),controller[_0x57ac[14]]);router[_0x57ac[17]](_0x57ac[12],auth[_0x57ac[9]](),controller[_0x57ac[16]]);router[_0x57ac[19]](_0x57ac[12],auth[_0x57ac[9]](),controller[_0x57ac[18]]);module[_0x57ac[20]]= router
\ No newline at end of file
+var _0x2744=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x61\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2744[0];var multer=require(_0x2744[1]);var util=require(_0x2744[2]);var path=require(_0x2744[3]);var express=require(_0x2744[4]);var router=express.Router();var auth=require(_0x2744[5]);var config=require(_0x2744[6]);var controller=require(_0x2744[7]);router[_0x2744[11]](_0x2744[8],auth[_0x2744[9]](),controller[_0x2744[10]]);router[_0x2744[11]](_0x2744[12],auth[_0x2744[9]](),controller[_0x2744[13]]);router[_0x2744[15]](_0x2744[8],auth[_0x2744[9]](),controller[_0x2744[14]]);router[_0x2744[17]](_0x2744[12],auth[_0x2744[9]](),controller[_0x2744[16]]);router[_0x2744[19]](_0x2744[12],auth[_0x2744[9]](),controller[_0x2744[18]]);module[_0x2744[20]]= router
\ No newline at end of file
index 0b9b8f2..c91e25b 100644 (file)
@@ -1 +1 @@
-var _0x2f5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x2f5a[0];var Sequelize=require(_0x2f5a[1]);module[_0x2f5a[2]]= {name:{type:Sequelize[_0x2f5a[3]],unique:_0x2f5a[4],allowNull:false,validate:{is:/[A-Za-z0-9._\\+*!-]+/,notEmpty:true}},description:{type:Sequelize[_0x2f5a[3]]}}
\ No newline at end of file
+var _0x367f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x367f[0];var Sequelize=require(_0x367f[1]);module[_0x367f[2]]= {name:{type:Sequelize[_0x367f[3]],unique:_0x367f[4],allowNull:false,validate:{is:/[A-Za-z0-9._\\+*!-]+/,notEmpty:true}},description:{type:Sequelize[_0x367f[3]]}}
\ No newline at end of file
index 8c24ce0..b12afdb 100644 (file)
@@ -1 +1 @@
-var _0xb898=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x61\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xb898[0];var jsonpatch=require(_0xb898[1]);var rp=require(_0xb898[2]);var moment=require(_0xb898[3]);var BPromise=require(_0xb898[4]);var util=require(_0xb898[5]);var path=require(_0xb898[6]);var sox=require(_0xb898[7]);var ejs=require(_0xb898[8]);var fs=require(_0xb898[9]);var _=require(_0xb898[10]);var squel=require(_0xb898[11]);var crypto=require(_0xb898[12]);var jsforce=require(_0xb898[13]);var toCsv=require(_0xb898[14]);var qs=require(_0xb898[15]);var logger=require(_0xb898[17])(_0xb898[16]);var utils=require(_0xb898[18]);var config=require(_0xb898[19]);var db=require(_0xb898[21])[_0xb898[20]];function respondWithStatusCode(_0xbf96x15,_0xbf96x16,_0xbf96x17){_0xbf96x16= _0xbf96x16|| 204;return function(_0xbf96x18){if(_0xbf96x18){logger[_0xb898[24]](_0xb898[22],_0xbf96x17,_0xbf96x16,_0xb898[23]);logger[_0xb898[26]](_0xb898[25],_0xbf96x17,_0xbf96x16,_0xb898[23]);return _0xbf96x15[_0xb898[27]](_0xbf96x16)};return _0xbf96x15[_0xb898[29]](304)[_0xb898[28]]()}}function respondWithResult(_0xbf96x15,_0xbf96x16,_0xbf96x17){_0xbf96x16= _0xbf96x16|| 200;return function(_0xbf96x18){if(_0xbf96x18){logger[_0xb898[24]](_0xb898[22],_0xbf96x17,_0xbf96x16,_0xb898[30]);logger[_0xb898[26]](_0xb898[25],_0xbf96x17,_0xbf96x16,_0xb898[30],JSON[_0xb898[31]](_0xbf96x18));return _0xbf96x15[_0xb898[29]](_0xbf96x16)[_0xb898[32]](_0xbf96x18)};return _0xbf96x15[_0xb898[29]](304)[_0xb898[28]]()}}function respondWithFilteredResult(_0xbf96x15,_0xbf96x1b,_0xbf96x17){return function(_0xbf96x18){if(_0xbf96x18){var _0xbf96x1c=_0xbf96x18[_0xb898[33]],_0xbf96x1d=_0xbf96x1b[_0xb898[34]],_0xbf96x1e=_0xbf96x1b[_0xb898[34]]+ _0xbf96x1b[_0xb898[35]],_0xbf96x16;if(_0xbf96x1e>= _0xbf96x1c){_0xbf96x1e= _0xbf96x1c;_0xbf96x16= 200}else {_0xbf96x16= 206};_0xbf96x15[_0xb898[29]](_0xbf96x16);logger[_0xb898[24]](_0xb898[22],_0xbf96x17,_0xbf96x16,_0xb898[36]);logger[_0xb898[26]](_0xb898[25],_0xbf96x17,_0xbf96x16,_0xb898[30],JSON[_0xb898[31]](_0xbf96x18));return _0xbf96x15[_0xb898[40]](_0xb898[37],_0xbf96x1d+ _0xb898[38]+ _0xbf96x1e+ _0xb898[39]+ _0xbf96x1c)[_0xb898[32]](_0xbf96x18)};return null}}function patchUpdates(_0xbf96x20){return function(_0xbf96x18){try{jsonpatch[_0xb898[41]](_0xbf96x18,_0xbf96x20,true)}catch(err){return BPromise[_0xb898[42]](err)};return _0xbf96x18[_0xb898[43]]()}}function saveUpdates(_0xbf96x22,_0xbf96x16,_0xbf96x17){return function(_0xbf96x18){if(_0xbf96x18){return _0xbf96x18[_0xb898[46]](_0xbf96x22)[_0xb898[45]](function(_0xbf96x23){logger[_0xb898[24]](_0xb898[22],_0xbf96x17,_0xbf96x16,_0xb898[44]);logger[_0xb898[26]](_0xb898[25],_0xbf96x17,_0xbf96x16,_0xb898[44],JSON[_0xb898[31]](_0xbf96x18));return _0xbf96x23})};return null}}function removeEntity(_0xbf96x15,_0xbf96x16,_0xbf96x17){return function(_0xbf96x18){if(_0xbf96x18){return _0xbf96x18[_0xb898[48]]()[_0xb898[45]](function(){logger[_0xb898[24]](_0xb898[22],_0xbf96x17,_0xbf96x16,_0xb898[47]);logger[_0xb898[26]](_0xb898[25],_0xbf96x17,_0xbf96x16,_0xb898[47],JSON[_0xb898[31]](_0xbf96x18));_0xbf96x15[_0xb898[29]](204)[_0xb898[28]]()})}}}function handleEntityNotFound(_0xbf96x15,_0xbf96x16,_0xbf96x17){return function(_0xbf96x18){if(!_0xbf96x18){logger[_0xb898[50]](_0xb898[22],_0xbf96x17,404,_0xb898[49]);_0xbf96x15[_0xb898[29]](404)[_0xb898[28]]();return null};return _0xbf96x18}}function handleError(_0xbf96x15,_0xbf96x16,_0xbf96x17){_0xbf96x16= _0xbf96x16|| 500;return function(_0xbf96x27){logger[_0xb898[50]](_0xb898[22],_0xbf96x17,_0xbf96x16,JSON[_0xb898[31]](_0xbf96x27));delete _0xbf96x27[_0xb898[51]];_0xbf96x15[_0xb898[29]](_0xbf96x16)[_0xb898[52]](_0xbf96x27)}}exports[_0xb898[53]]= function(_0xbf96x28,_0xbf96x15){var _0xbf96x1b={},_0xbf96x29={};_0xbf96x29[_0xb898[54]]= _[_0xb898[57]](db[_0xb898[56]][_0xb898[55]]);_0xbf96x29[_0xb898[58]]= _[_0xb898[57]](_0xbf96x28[_0xb898[58]]);_0xbf96x29[_0xb898[59]]= _[_0xb898[60]](_0xbf96x29[_0xb898[54]],_0xbf96x29[_0xb898[58]]);_0xbf96x1b[_0xb898[61]]= _[_0xb898[60]](_0xbf96x29[_0xb898[54]],qs[_0xb898[62]](_0xbf96x28[_0xb898[58]][_0xb898[62]]));_0xbf96x1b[_0xb898[61]]= (_0xbf96x1b[_0xb898[61]][_0xb898[63]])?_0xbf96x1b[_0xb898[61]]:_0xbf96x29[_0xb898[54]];if(!_0xbf96x28[_0xb898[58]][_0xb898[65]](_0xb898[64])){_0xbf96x1b[_0xb898[35]]= qs[_0xb898[35]](_0xbf96x28[_0xb898[58]][_0xb898[35]]);_0xbf96x1b[_0xb898[34]]= qs[_0xb898[34]](_0xbf96x28[_0xb898[58]][_0xb898[34]])};_0xbf96x1b[_0xb898[66]]= qs[_0xb898[67]](_0xbf96x28[_0xb898[58]][_0xb898[67]]);_0xbf96x1b[_0xb898[68]]= qs[_0xb898[59]](_[_0xb898[69]](_0xbf96x28[_0xb898[58]],_0xbf96x29[_0xb898[59]]));if(_0xbf96x28[_0xb898[58]][_0xb898[70]]){_0xbf96x1b[_0xb898[68]]= _[_0xb898[73]](_0xbf96x1b[_0xb898[68]],{$or:_[_0xb898[72]](_0xbf96x1b[_0xb898[61]],function(_0xbf96x2a){var _0xbf96x2b={};_0xbf96x2b[_0xbf96x2a]= {$like:_0xb898[71]+ _0xbf96x28[_0xb898[58]][_0xb898[70]]+ _0xb898[71]};return _0xbf96x2b})})};_0xbf96x1b= _[_0xb898[73]]({},_0xbf96x1b,_0xbf96x28[_0xb898[74]]);return db[_0xb898[56]][_0xb898[76]](_0xbf96x1b)[_0xb898[45]](respondWithFilteredResult(_0xbf96x15,_0xbf96x1b,_0xb898[53]))[_0xb898[75]](handleError(_0xbf96x15,null,_0xb898[53]))};exports[_0xb898[77]]= function(_0xbf96x28,_0xbf96x15){var _0xbf96x1b={raw:true,where:{id:_0xbf96x28[_0xb898[79]][_0xb898[78]]}},_0xbf96x29={};_0xbf96x29[_0xb898[54]]= _[_0xb898[57]](db[_0xb898[56]][_0xb898[55]]);_0xbf96x29[_0xb898[58]]= _[_0xb898[57]](_0xbf96x28[_0xb898[58]]);_0xbf96x29[_0xb898[59]]= _[_0xb898[60]](_0xbf96x29[_0xb898[54]],_0xbf96x29[_0xb898[58]]);_0xbf96x1b[_0xb898[61]]= _[_0xb898[60]](_0xbf96x29[_0xb898[54]],qs[_0xb898[62]](_0xbf96x28[_0xb898[58]][_0xb898[62]]));_0xbf96x1b[_0xb898[61]]= (_0xbf96x1b[_0xb898[61]][_0xb898[63]])?_0xbf96x1b[_0xb898[61]]:_0xbf96x29[_0xb898[54]];_0xbf96x1b= _[_0xb898[73]]({},_0xbf96x1b,_0xbf96x28[_0xb898[74]]);return db[_0xb898[56]][_0xb898[80]](_0xbf96x1b)[_0xb898[45]](handleEntityNotFound(_0xbf96x15,null,_0xb898[77]))[_0xb898[45]](respondWithResult(_0xbf96x15,null,_0xb898[77]))[_0xb898[75]](handleError(_0xbf96x15,null,_0xb898[77]))};exports[_0xb898[81]]= function(_0xbf96x28,_0xbf96x15){return db[_0xb898[56]][_0xb898[81]](_0xbf96x28[_0xb898[82]],{})[_0xb898[45]](respondWithResult(_0xbf96x15,201,_0xb898[81]))[_0xb898[75]](handleError(_0xbf96x15,null,_0xb898[81]))};exports[_0xb898[46]]= function(_0xbf96x28,_0xbf96x15){if(_0xbf96x28[_0xb898[82]][_0xb898[78]]){delete _0xbf96x28[_0xb898[82]][_0xb898[78]]};return db[_0xb898[56]][_0xb898[80]]({where:{id:_0xbf96x28[_0xb898[79]][_0xb898[78]]}})[_0xb898[45]](handleEntityNotFound(_0xbf96x15,null,_0xb898[46]))[_0xb898[45]](saveUpdates(_0xbf96x28[_0xb898[82]],null,_0xb898[46]))[_0xb898[45]](respondWithResult(_0xbf96x15,null,_0xb898[46]))[_0xb898[75]](handleError(_0xbf96x15,null,_0xb898[46]))};exports[_0xb898[48]]= function(_0xbf96x28,_0xbf96x15){return db[_0xb898[56]][_0xb898[80]]({where:{id:_0xbf96x28[_0xb898[79]][_0xb898[78]]}})[_0xb898[45]](handleEntityNotFound(_0xbf96x15,null,_0xb898[48]))[_0xb898[45]](removeEntity(_0xbf96x15,null,_0xb898[48]))[_0xb898[75]](handleError(_0xbf96x15,null,_0xb898[48]))}
\ No newline at end of file
+var _0xd35a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x61\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd35a[0];var jsonpatch=require(_0xd35a[1]);var rp=require(_0xd35a[2]);var moment=require(_0xd35a[3]);var BPromise=require(_0xd35a[4]);var util=require(_0xd35a[5]);var path=require(_0xd35a[6]);var sox=require(_0xd35a[7]);var ejs=require(_0xd35a[8]);var fs=require(_0xd35a[9]);var _=require(_0xd35a[10]);var squel=require(_0xd35a[11]);var crypto=require(_0xd35a[12]);var jsforce=require(_0xd35a[13]);var toCsv=require(_0xd35a[14]);var qs=require(_0xd35a[15]);var logger=require(_0xd35a[17])(_0xd35a[16]);var utils=require(_0xd35a[18]);var config=require(_0xd35a[19]);var db=require(_0xd35a[21])[_0xd35a[20]];function respondWithStatusCode(_0x4576x15,_0x4576x16,_0x4576x17){_0x4576x16= _0x4576x16|| 204;return function(_0x4576x18){if(_0x4576x18){logger[_0xd35a[24]](_0xd35a[22],_0x4576x17,_0x4576x16,_0xd35a[23]);logger[_0xd35a[26]](_0xd35a[25],_0x4576x17,_0x4576x16,_0xd35a[23]);return _0x4576x15[_0xd35a[27]](_0x4576x16)};return _0x4576x15[_0xd35a[29]](304)[_0xd35a[28]]()}}function respondWithResult(_0x4576x15,_0x4576x16,_0x4576x17){_0x4576x16= _0x4576x16|| 200;return function(_0x4576x18){if(_0x4576x18){logger[_0xd35a[24]](_0xd35a[22],_0x4576x17,_0x4576x16,_0xd35a[30]);logger[_0xd35a[26]](_0xd35a[25],_0x4576x17,_0x4576x16,_0xd35a[30],JSON[_0xd35a[31]](_0x4576x18));return _0x4576x15[_0xd35a[29]](_0x4576x16)[_0xd35a[32]](_0x4576x18)};return _0x4576x15[_0xd35a[29]](304)[_0xd35a[28]]()}}function respondWithFilteredResult(_0x4576x15,_0x4576x1b,_0x4576x17){return function(_0x4576x18){if(_0x4576x18){var _0x4576x1c=_0x4576x18[_0xd35a[33]],_0x4576x1d=_0x4576x1b[_0xd35a[34]],_0x4576x1e=_0x4576x1b[_0xd35a[34]]+ _0x4576x1b[_0xd35a[35]],_0x4576x16;if(_0x4576x1e>= _0x4576x1c){_0x4576x1e= _0x4576x1c;_0x4576x16= 200}else {_0x4576x16= 206};_0x4576x15[_0xd35a[29]](_0x4576x16);logger[_0xd35a[24]](_0xd35a[22],_0x4576x17,_0x4576x16,_0xd35a[36]);logger[_0xd35a[26]](_0xd35a[25],_0x4576x17,_0x4576x16,_0xd35a[30],JSON[_0xd35a[31]](_0x4576x18));return _0x4576x15[_0xd35a[40]](_0xd35a[37],_0x4576x1d+ _0xd35a[38]+ _0x4576x1e+ _0xd35a[39]+ _0x4576x1c)[_0xd35a[32]](_0x4576x18)};return null}}function patchUpdates(_0x4576x20){return function(_0x4576x18){try{jsonpatch[_0xd35a[41]](_0x4576x18,_0x4576x20,true)}catch(err){return BPromise[_0xd35a[42]](err)};return _0x4576x18[_0xd35a[43]]()}}function saveUpdates(_0x4576x22,_0x4576x16,_0x4576x17){return function(_0x4576x18){if(_0x4576x18){return _0x4576x18[_0xd35a[46]](_0x4576x22)[_0xd35a[45]](function(_0x4576x23){logger[_0xd35a[24]](_0xd35a[22],_0x4576x17,_0x4576x16,_0xd35a[44]);logger[_0xd35a[26]](_0xd35a[25],_0x4576x17,_0x4576x16,_0xd35a[44],JSON[_0xd35a[31]](_0x4576x18));return _0x4576x23})};return null}}function removeEntity(_0x4576x15,_0x4576x16,_0x4576x17){return function(_0x4576x18){if(_0x4576x18){return _0x4576x18[_0xd35a[48]]()[_0xd35a[45]](function(){logger[_0xd35a[24]](_0xd35a[22],_0x4576x17,_0x4576x16,_0xd35a[47]);logger[_0xd35a[26]](_0xd35a[25],_0x4576x17,_0x4576x16,_0xd35a[47],JSON[_0xd35a[31]](_0x4576x18));_0x4576x15[_0xd35a[29]](204)[_0xd35a[28]]()})}}}function handleEntityNotFound(_0x4576x15,_0x4576x16,_0x4576x17){return function(_0x4576x18){if(!_0x4576x18){logger[_0xd35a[50]](_0xd35a[22],_0x4576x17,404,_0xd35a[49]);_0x4576x15[_0xd35a[29]](404)[_0xd35a[28]]();return null};return _0x4576x18}}function handleError(_0x4576x15,_0x4576x16,_0x4576x17){_0x4576x16= _0x4576x16|| 500;return function(_0x4576x27){logger[_0xd35a[50]](_0xd35a[22],_0x4576x17,_0x4576x16,JSON[_0xd35a[31]](_0x4576x27));delete _0x4576x27[_0xd35a[51]];_0x4576x15[_0xd35a[29]](_0x4576x16)[_0xd35a[52]](_0x4576x27)}}exports[_0xd35a[53]]= function(_0x4576x28,_0x4576x15){var _0x4576x1b={},_0x4576x29={};_0x4576x29[_0xd35a[54]]= _[_0xd35a[57]](db[_0xd35a[56]][_0xd35a[55]]);_0x4576x29[_0xd35a[58]]= _[_0xd35a[57]](_0x4576x28[_0xd35a[58]]);_0x4576x29[_0xd35a[59]]= _[_0xd35a[60]](_0x4576x29[_0xd35a[54]],_0x4576x29[_0xd35a[58]]);_0x4576x1b[_0xd35a[61]]= _[_0xd35a[60]](_0x4576x29[_0xd35a[54]],qs[_0xd35a[62]](_0x4576x28[_0xd35a[58]][_0xd35a[62]]));_0x4576x1b[_0xd35a[61]]= (_0x4576x1b[_0xd35a[61]][_0xd35a[63]])?_0x4576x1b[_0xd35a[61]]:_0x4576x29[_0xd35a[54]];if(!_0x4576x28[_0xd35a[58]][_0xd35a[65]](_0xd35a[64])){_0x4576x1b[_0xd35a[35]]= qs[_0xd35a[35]](_0x4576x28[_0xd35a[58]][_0xd35a[35]]);_0x4576x1b[_0xd35a[34]]= qs[_0xd35a[34]](_0x4576x28[_0xd35a[58]][_0xd35a[34]])};_0x4576x1b[_0xd35a[66]]= qs[_0xd35a[67]](_0x4576x28[_0xd35a[58]][_0xd35a[67]]);_0x4576x1b[_0xd35a[68]]= qs[_0xd35a[59]](_[_0xd35a[69]](_0x4576x28[_0xd35a[58]],_0x4576x29[_0xd35a[59]]));if(_0x4576x28[_0xd35a[58]][_0xd35a[70]]){_0x4576x1b[_0xd35a[68]]= _[_0xd35a[73]](_0x4576x1b[_0xd35a[68]],{$or:_[_0xd35a[72]](_0x4576x1b[_0xd35a[61]],function(_0x4576x2a){var _0x4576x2b={};_0x4576x2b[_0x4576x2a]= {$like:_0xd35a[71]+ _0x4576x28[_0xd35a[58]][_0xd35a[70]]+ _0xd35a[71]};return _0x4576x2b})})};_0x4576x1b= _[_0xd35a[73]]({},_0x4576x1b,_0x4576x28[_0xd35a[74]]);return db[_0xd35a[56]][_0xd35a[76]](_0x4576x1b)[_0xd35a[45]](respondWithFilteredResult(_0x4576x15,_0x4576x1b,_0xd35a[53]))[_0xd35a[75]](handleError(_0x4576x15,null,_0xd35a[53]))};exports[_0xd35a[77]]= function(_0x4576x28,_0x4576x15){var _0x4576x1b={raw:true,where:{id:_0x4576x28[_0xd35a[79]][_0xd35a[78]]}},_0x4576x29={};_0x4576x29[_0xd35a[54]]= _[_0xd35a[57]](db[_0xd35a[56]][_0xd35a[55]]);_0x4576x29[_0xd35a[58]]= _[_0xd35a[57]](_0x4576x28[_0xd35a[58]]);_0x4576x29[_0xd35a[59]]= _[_0xd35a[60]](_0x4576x29[_0xd35a[54]],_0x4576x29[_0xd35a[58]]);_0x4576x1b[_0xd35a[61]]= _[_0xd35a[60]](_0x4576x29[_0xd35a[54]],qs[_0xd35a[62]](_0x4576x28[_0xd35a[58]][_0xd35a[62]]));_0x4576x1b[_0xd35a[61]]= (_0x4576x1b[_0xd35a[61]][_0xd35a[63]])?_0x4576x1b[_0xd35a[61]]:_0x4576x29[_0xd35a[54]];_0x4576x1b= _[_0xd35a[73]]({},_0x4576x1b,_0x4576x28[_0xd35a[74]]);return db[_0xd35a[56]][_0xd35a[80]](_0x4576x1b)[_0xd35a[45]](handleEntityNotFound(_0x4576x15,null,_0xd35a[77]))[_0xd35a[45]](respondWithResult(_0x4576x15,null,_0xd35a[77]))[_0xd35a[75]](handleError(_0x4576x15,null,_0xd35a[77]))};exports[_0xd35a[81]]= function(_0x4576x28,_0x4576x15){return db[_0xd35a[56]][_0xd35a[81]](_0x4576x28[_0xd35a[82]],{})[_0xd35a[45]](respondWithResult(_0x4576x15,201,_0xd35a[81]))[_0xd35a[75]](handleError(_0x4576x15,null,_0xd35a[81]))};exports[_0xd35a[46]]= function(_0x4576x28,_0x4576x15){if(_0x4576x28[_0xd35a[82]][_0xd35a[78]]){delete _0x4576x28[_0xd35a[82]][_0xd35a[78]]};return db[_0xd35a[56]][_0xd35a[80]]({where:{id:_0x4576x28[_0xd35a[79]][_0xd35a[78]]}})[_0xd35a[45]](handleEntityNotFound(_0x4576x15,null,_0xd35a[46]))[_0xd35a[45]](saveUpdates(_0x4576x28[_0xd35a[82]],null,_0xd35a[46]))[_0xd35a[45]](respondWithResult(_0x4576x15,null,_0xd35a[46]))[_0xd35a[75]](handleError(_0x4576x15,null,_0xd35a[46]))};exports[_0xd35a[48]]= function(_0x4576x28,_0x4576x15){return db[_0xd35a[56]][_0xd35a[80]]({where:{id:_0x4576x28[_0xd35a[79]][_0xd35a[78]]}})[_0xd35a[45]](handleEntityNotFound(_0x4576x15,null,_0xd35a[48]))[_0xd35a[45]](removeEntity(_0x4576x15,null,_0xd35a[48]))[_0xd35a[75]](handleError(_0x4576x15,null,_0xd35a[48]))}
\ No newline at end of file
index 4b2fdc6..2731e01 100644 (file)
@@ -1 +1 @@
-var _0x504c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x61\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x61\x67","\x74\x6F\x6F\x6C\x73\x5F\x74\x61\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x504c[0];var _=require(_0x504c[1]);var util=require(_0x504c[2]);var logger=require(_0x504c[4])(_0x504c[3]);var attributes=require(_0x504c[5]);module[_0x504c[6]]= function(_0x60a4x5,_0x60a4x6){return _0x60a4x5[_0x504c[9]](_0x504c[7],attributes,{tableName:_0x504c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x4e5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x61\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x61\x67","\x74\x6F\x6F\x6C\x73\x5F\x74\x61\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x4e5d[0];var _=require(_0x4e5d[1]);var util=require(_0x4e5d[2]);var logger=require(_0x4e5d[4])(_0x4e5d[3]);var attributes=require(_0x4e5d[5]);module[_0x4e5d[6]]= function(_0xf455x5,_0xf455x6){return _0xf455x5[_0x4e5d[9]](_0x4e5d[7],attributes,{tableName:_0x4e5d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 5c36485..adcaba2 100644 (file)
@@ -1 +1 @@
-var _0x9321=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9321[0];var _=require(_0x9321[1]);var util=require(_0x9321[2]);var moment=require(_0x9321[3]);var BPromise=require(_0x9321[4]);var db=require(_0x9321[6])[_0x9321[5]];var utils=require(_0x9321[7]);var logger=require(_0x9321[9])(_0x9321[8]);var jayson=require(_0x9321[10]);var client=jayson[_0x9321[12]][_0x9321[11]]({port:9002});function respondWithRpcPromise(_0xad54xb,_0xad54xc,_0xad54xd){return  new BPromise(function(_0xad54xe,_0xad54xf){return client[_0x9321[25]](_0xad54xb,_0xad54xd)[_0x9321[24]](function(_0xad54x11){logger[_0x9321[17]](_0x9321[13],_0xad54xc,_0x9321[16]);logger[_0x9321[20]](_0x9321[18],_0xad54xc,_0x9321[16],JSON[_0x9321[19]](_0xad54x11));if(_0xad54x11[_0x9321[14]]){if(_0xad54x11[_0x9321[14]][_0x9321[21]]=== 500){logger[_0x9321[14]](_0x9321[13],_0xad54xc,_0xad54x11[_0x9321[14]][_0x9321[22]]);return _0xad54xf(_0xad54x11[_0x9321[14]][_0x9321[22]])};logger[_0x9321[14]](_0x9321[13],_0xad54xc,_0xad54x11[_0x9321[14]][_0x9321[22]]);return _0xad54xe(_0xad54x11[_0x9321[14]][_0x9321[22]])}else {logger[_0x9321[17]](_0x9321[13],_0xad54xc,_0x9321[16]);_0xad54xe(_0xad54x11[_0x9321[23]][_0x9321[22]])}})[_0x9321[15]](function(_0xad54x10){logger[_0x9321[14]](_0x9321[13],_0xad54xc,_0xad54x10);_0xad54xf(_0xad54x10)})})}
\ No newline at end of file
+var _0xf54c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf54c[0];var _=require(_0xf54c[1]);var util=require(_0xf54c[2]);var moment=require(_0xf54c[3]);var BPromise=require(_0xf54c[4]);var db=require(_0xf54c[6])[_0xf54c[5]];var utils=require(_0xf54c[7]);var logger=require(_0xf54c[9])(_0xf54c[8]);var jayson=require(_0xf54c[10]);var client=jayson[_0xf54c[12]][_0xf54c[11]]({port:9002});function respondWithRpcPromise(_0x3d99xb,_0x3d99xc,_0x3d99xd){return  new BPromise(function(_0x3d99xe,_0x3d99xf){return client[_0xf54c[25]](_0x3d99xb,_0x3d99xd)[_0xf54c[24]](function(_0x3d99x11){logger[_0xf54c[17]](_0xf54c[13],_0x3d99xc,_0xf54c[16]);logger[_0xf54c[20]](_0xf54c[18],_0x3d99xc,_0xf54c[16],JSON[_0xf54c[19]](_0x3d99x11));if(_0x3d99x11[_0xf54c[14]]){if(_0x3d99x11[_0xf54c[14]][_0xf54c[21]]=== 500){logger[_0xf54c[14]](_0xf54c[13],_0x3d99xc,_0x3d99x11[_0xf54c[14]][_0xf54c[22]]);return _0x3d99xf(_0x3d99x11[_0xf54c[14]][_0xf54c[22]])};logger[_0xf54c[14]](_0xf54c[13],_0x3d99xc,_0x3d99x11[_0xf54c[14]][_0xf54c[22]]);return _0x3d99xe(_0x3d99x11[_0xf54c[14]][_0xf54c[22]])}else {logger[_0xf54c[17]](_0xf54c[13],_0x3d99xc,_0xf54c[16]);_0x3d99xe(_0x3d99x11[_0xf54c[23]][_0xf54c[22]])}})[_0xf54c[15]](function(_0x3d99x10){logger[_0xf54c[14]](_0xf54c[13],_0x3d99xc,_0x3d99x10);_0x3d99xf(_0x3d99x10)})})}
\ No newline at end of file
index 1c6ada2..1e15e0a 100644 (file)
@@ -1 +1 @@
-var _0x8df9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x8df9[0];var multer=require(_0x8df9[1]);var util=require(_0x8df9[2]);var path=require(_0x8df9[3]);var express=require(_0x8df9[4]);var router=express.Router();var auth=require(_0x8df9[5]);var config=require(_0x8df9[6]);var controller=require(_0x8df9[7]);router[_0x8df9[11]](_0x8df9[8],auth[_0x8df9[9]](),controller[_0x8df9[10]]);router[_0x8df9[11]](_0x8df9[12],auth[_0x8df9[9]](),controller[_0x8df9[13]]);router[_0x8df9[11]](_0x8df9[14],auth[_0x8df9[9]](),controller[_0x8df9[15]]);router[_0x8df9[11]](_0x8df9[16],auth[_0x8df9[9]](),controller[_0x8df9[17]]);router[_0x8df9[19]](_0x8df9[8],auth[_0x8df9[9]](),controller[_0x8df9[18]]);router[_0x8df9[19]](_0x8df9[14],auth[_0x8df9[9]](),controller[_0x8df9[20]]);router[_0x8df9[19]](_0x8df9[16],auth[_0x8df9[9]](),controller[_0x8df9[21]]);router[_0x8df9[23]](_0x8df9[12],auth[_0x8df9[9]](),controller[_0x8df9[22]]);router[_0x8df9[25]](_0x8df9[12],auth[_0x8df9[9]](),controller[_0x8df9[24]]);router[_0x8df9[25]](_0x8df9[14],auth[_0x8df9[9]](),controller[_0x8df9[26]]);router[_0x8df9[25]](_0x8df9[16],auth[_0x8df9[9]](),controller[_0x8df9[27]]);module[_0x8df9[28]]= router
\ No newline at end of file
+var _0xf909=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf909[0];var multer=require(_0xf909[1]);var util=require(_0xf909[2]);var path=require(_0xf909[3]);var express=require(_0xf909[4]);var router=express.Router();var auth=require(_0xf909[5]);var config=require(_0xf909[6]);var controller=require(_0xf909[7]);router[_0xf909[11]](_0xf909[8],auth[_0xf909[9]](),controller[_0xf909[10]]);router[_0xf909[11]](_0xf909[12],auth[_0xf909[9]](),controller[_0xf909[13]]);router[_0xf909[11]](_0xf909[14],auth[_0xf909[9]](),controller[_0xf909[15]]);router[_0xf909[11]](_0xf909[16],auth[_0xf909[9]](),controller[_0xf909[17]]);router[_0xf909[19]](_0xf909[8],auth[_0xf909[9]](),controller[_0xf909[18]]);router[_0xf909[19]](_0xf909[14],auth[_0xf909[9]](),controller[_0xf909[20]]);router[_0xf909[19]](_0xf909[16],auth[_0xf909[9]](),controller[_0xf909[21]]);router[_0xf909[23]](_0xf909[12],auth[_0xf909[9]](),controller[_0xf909[22]]);router[_0xf909[25]](_0xf909[12],auth[_0xf909[9]](),controller[_0xf909[24]]);router[_0xf909[25]](_0xf909[14],auth[_0xf909[9]](),controller[_0xf909[26]]);router[_0xf909[25]](_0xf909[16],auth[_0xf909[9]](),controller[_0xf909[27]]);module[_0xf909[28]]= router
\ No newline at end of file
index 6439f25..1ac3aa7 100644 (file)
@@ -1 +1 @@
-var _0x4255=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x4255[0];var Sequelize=require(_0x4255[1]);module[_0x4255[2]]= {name:{type:Sequelize[_0x4255[3]],allowNull:false,unique:_0x4255[4]},description:{type:Sequelize[_0x4255[3]]}}
\ No newline at end of file
+var _0x678f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x678f[0];var Sequelize=require(_0x678f[1]);module[_0x678f[2]]= {name:{type:Sequelize[_0x678f[3]],allowNull:false,unique:_0x678f[4]},description:{type:Sequelize[_0x678f[3]]}}
\ No newline at end of file
index fdadc6b..e63629a 100644 (file)
@@ -1 +1 @@
-var _0x96ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x65\x61\x6D","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x51\x75\x65\x75\x65","\x67\x65\x74","\x51\x75\x65\x75\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x69\x64\x73","\x61\x64\x64","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72"];_0x96ac[0];var jsonpatch=require(_0x96ac[1]);var rp=require(_0x96ac[2]);var moment=require(_0x96ac[3]);var BPromise=require(_0x96ac[4]);var util=require(_0x96ac[5]);var path=require(_0x96ac[6]);var sox=require(_0x96ac[7]);var ejs=require(_0x96ac[8]);var fs=require(_0x96ac[9]);var _=require(_0x96ac[10]);var squel=require(_0x96ac[11]);var crypto=require(_0x96ac[12]);var jsforce=require(_0x96ac[13]);var toCsv=require(_0x96ac[14]);var qs=require(_0x96ac[15]);var logger=require(_0x96ac[17])(_0x96ac[16]);var utils=require(_0x96ac[18]);var config=require(_0x96ac[19]);var db=require(_0x96ac[21])[_0x96ac[20]];function respondWithStatusCode(_0x7ac1x15,_0x7ac1x16,_0x7ac1x17){_0x7ac1x16= _0x7ac1x16|| 204;return function(_0x7ac1x18){if(_0x7ac1x18){logger[_0x96ac[24]](_0x96ac[22],_0x7ac1x17,_0x7ac1x16,_0x96ac[23]);logger[_0x96ac[26]](_0x96ac[25],_0x7ac1x17,_0x7ac1x16,_0x96ac[23]);return _0x7ac1x15[_0x96ac[27]](_0x7ac1x16)};return _0x7ac1x15[_0x96ac[29]](304)[_0x96ac[28]]()}}function respondWithResult(_0x7ac1x15,_0x7ac1x16,_0x7ac1x17){_0x7ac1x16= _0x7ac1x16|| 200;return function(_0x7ac1x18){if(_0x7ac1x18){logger[_0x96ac[24]](_0x96ac[22],_0x7ac1x17,_0x7ac1x16,_0x96ac[30]);logger[_0x96ac[26]](_0x96ac[25],_0x7ac1x17,_0x7ac1x16,_0x96ac[30],JSON[_0x96ac[31]](_0x7ac1x18));return _0x7ac1x15[_0x96ac[29]](_0x7ac1x16)[_0x96ac[32]](_0x7ac1x18)};return _0x7ac1x15[_0x96ac[29]](304)[_0x96ac[28]]()}}function respondWithFilteredResult(_0x7ac1x15,_0x7ac1x1b,_0x7ac1x17){return function(_0x7ac1x18){if(_0x7ac1x18){var _0x7ac1x1c=_0x7ac1x18[_0x96ac[33]],_0x7ac1x1d=_0x7ac1x1b[_0x96ac[34]],_0x7ac1x1e=_0x7ac1x1b[_0x96ac[34]]+ _0x7ac1x1b[_0x96ac[35]],_0x7ac1x16;if(_0x7ac1x1e>= _0x7ac1x1c){_0x7ac1x1e= _0x7ac1x1c;_0x7ac1x16= 200}else {_0x7ac1x16= 206};_0x7ac1x15[_0x96ac[29]](_0x7ac1x16);logger[_0x96ac[24]](_0x96ac[22],_0x7ac1x17,_0x7ac1x16,_0x96ac[36]);logger[_0x96ac[26]](_0x96ac[25],_0x7ac1x17,_0x7ac1x16,_0x96ac[30],JSON[_0x96ac[31]](_0x7ac1x18));return _0x7ac1x15[_0x96ac[40]](_0x96ac[37],_0x7ac1x1d+ _0x96ac[38]+ _0x7ac1x1e+ _0x96ac[39]+ _0x7ac1x1c)[_0x96ac[32]](_0x7ac1x18)};return null}}function patchUpdates(_0x7ac1x20){return function(_0x7ac1x18){try{jsonpatch[_0x96ac[41]](_0x7ac1x18,_0x7ac1x20,true)}catch(err){return BPromise[_0x96ac[42]](err)};return _0x7ac1x18[_0x96ac[43]]()}}function saveUpdates(_0x7ac1x22,_0x7ac1x16,_0x7ac1x17){return function(_0x7ac1x18){if(_0x7ac1x18){return _0x7ac1x18[_0x96ac[46]](_0x7ac1x22)[_0x96ac[45]](function(_0x7ac1x23){logger[_0x96ac[24]](_0x96ac[22],_0x7ac1x17,_0x7ac1x16,_0x96ac[44]);logger[_0x96ac[26]](_0x96ac[25],_0x7ac1x17,_0x7ac1x16,_0x96ac[44],JSON[_0x96ac[31]](_0x7ac1x18));return _0x7ac1x23})};return null}}function removeEntity(_0x7ac1x15,_0x7ac1x16,_0x7ac1x17){return function(_0x7ac1x18){if(_0x7ac1x18){return _0x7ac1x18[_0x96ac[48]]()[_0x96ac[45]](function(){logger[_0x96ac[24]](_0x96ac[22],_0x7ac1x17,_0x7ac1x16,_0x96ac[47]);logger[_0x96ac[26]](_0x96ac[25],_0x7ac1x17,_0x7ac1x16,_0x96ac[47],JSON[_0x96ac[31]](_0x7ac1x18));_0x7ac1x15[_0x96ac[29]](204)[_0x96ac[28]]()})}}}function handleEntityNotFound(_0x7ac1x15,_0x7ac1x16,_0x7ac1x17){return function(_0x7ac1x18){if(!_0x7ac1x18){logger[_0x96ac[50]](_0x96ac[22],_0x7ac1x17,404,_0x96ac[49]);_0x7ac1x15[_0x96ac[29]](404)[_0x96ac[28]]();return null};return _0x7ac1x18}}function handleError(_0x7ac1x15,_0x7ac1x16,_0x7ac1x17){_0x7ac1x16= _0x7ac1x16|| 500;return function(_0x7ac1x27){logger[_0x96ac[50]](_0x96ac[22],_0x7ac1x17,_0x7ac1x16,JSON[_0x96ac[31]](_0x7ac1x27));delete _0x7ac1x27[_0x96ac[51]];_0x7ac1x15[_0x96ac[29]](_0x7ac1x16)[_0x96ac[52]](_0x7ac1x27)}}exports[_0x96ac[53]]= function(_0x7ac1x28,_0x7ac1x15){var _0x7ac1x1b={},_0x7ac1x29={};_0x7ac1x29[_0x96ac[54]]= _[_0x96ac[57]](db[_0x96ac[56]][_0x96ac[55]]);_0x7ac1x29[_0x96ac[58]]= _[_0x96ac[57]](_0x7ac1x28[_0x96ac[58]]);_0x7ac1x29[_0x96ac[59]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],_0x7ac1x29[_0x96ac[58]]);_0x7ac1x1b[_0x96ac[61]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],qs[_0x96ac[62]](_0x7ac1x28[_0x96ac[58]][_0x96ac[62]]));_0x7ac1x1b[_0x96ac[61]]= (_0x7ac1x1b[_0x96ac[61]][_0x96ac[63]])?_0x7ac1x1b[_0x96ac[61]]:_0x7ac1x29[_0x96ac[54]];if(!_0x7ac1x28[_0x96ac[58]][_0x96ac[65]](_0x96ac[64])){_0x7ac1x1b[_0x96ac[35]]= qs[_0x96ac[35]](_0x7ac1x28[_0x96ac[58]][_0x96ac[35]]);_0x7ac1x1b[_0x96ac[34]]= qs[_0x96ac[34]](_0x7ac1x28[_0x96ac[58]][_0x96ac[34]])};_0x7ac1x1b[_0x96ac[66]]= qs[_0x96ac[67]](_0x7ac1x28[_0x96ac[58]][_0x96ac[67]]);_0x7ac1x1b[_0x96ac[68]]= qs[_0x96ac[59]](_[_0x96ac[69]](_0x7ac1x28[_0x96ac[58]],_0x7ac1x29[_0x96ac[59]]));if(_0x7ac1x28[_0x96ac[58]][_0x96ac[70]]){_0x7ac1x1b[_0x96ac[68]]= _[_0x96ac[73]](_0x7ac1x1b[_0x96ac[68]],{$or:_[_0x96ac[72]](_0x7ac1x1b[_0x96ac[61]],function(_0x7ac1x2a){var _0x7ac1x2b={};_0x7ac1x2b[_0x7ac1x2a]= {$like:_0x96ac[71]+ _0x7ac1x28[_0x96ac[58]][_0x96ac[70]]+ _0x96ac[71]};return _0x7ac1x2b})})};_0x7ac1x1b= _[_0x96ac[73]]({},_0x7ac1x1b,_0x7ac1x28[_0x96ac[74]]);return db[_0x96ac[56]][_0x96ac[76]](_0x7ac1x1b)[_0x96ac[45]](respondWithFilteredResult(_0x7ac1x15,_0x7ac1x1b,_0x96ac[53]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[53]))};exports[_0x96ac[77]]= function(_0x7ac1x28,_0x7ac1x15){var _0x7ac1x1b={raw:false,where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}},_0x7ac1x29={};_0x7ac1x29[_0x96ac[54]]= _[_0x96ac[57]](db[_0x96ac[56]][_0x96ac[55]]);_0x7ac1x29[_0x96ac[58]]= _[_0x96ac[57]](_0x7ac1x28[_0x96ac[58]]);_0x7ac1x29[_0x96ac[59]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],_0x7ac1x29[_0x96ac[58]]);_0x7ac1x1b[_0x96ac[61]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],qs[_0x96ac[62]](_0x7ac1x28[_0x96ac[58]][_0x96ac[62]]));_0x7ac1x1b[_0x96ac[61]]= (_0x7ac1x1b[_0x96ac[61]][_0x96ac[63]])?_0x7ac1x1b[_0x96ac[61]]:_0x7ac1x29[_0x96ac[54]];_0x7ac1x1b= _[_0x96ac[73]]({},_0x7ac1x1b,_0x7ac1x28[_0x96ac[74]]);return db[_0x96ac[56]][_0x96ac[80]](_0x7ac1x1b)[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[77]))[_0x96ac[45]](respondWithResult(_0x7ac1x15,null,_0x96ac[77]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[77]))};exports[_0x96ac[81]]= function(_0x7ac1x28,_0x7ac1x15){return db[_0x96ac[56]][_0x96ac[81]](_0x7ac1x28[_0x96ac[82]],{})[_0x96ac[45]](respondWithResult(_0x7ac1x15,201,_0x96ac[81]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[81]))};exports[_0x96ac[46]]= function(_0x7ac1x28,_0x7ac1x15){if(_0x7ac1x28[_0x96ac[82]][_0x96ac[78]]){delete _0x7ac1x28[_0x96ac[82]][_0x96ac[78]]};return db[_0x96ac[56]][_0x96ac[80]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[46]))[_0x96ac[45]](saveUpdates(_0x7ac1x28[_0x96ac[82]],null,_0x96ac[46]))[_0x96ac[45]](respondWithResult(_0x7ac1x15,null,_0x96ac[46]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[46]))};exports[_0x96ac[48]]= function(_0x7ac1x28,_0x7ac1x15){return db[_0x96ac[56]][_0x96ac[80]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[48]))[_0x96ac[45]](removeEntity(_0x7ac1x15,null,_0x96ac[48]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[48]))};exports[_0x96ac[83]]= function(_0x7ac1x28,_0x7ac1x15,_0x7ac1x2c){return db[_0x96ac[56]][_0x96ac[93]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[83]))[_0x96ac[45]](function(_0x7ac1x18){if(!_0x7ac1x28[_0x96ac[58]][_0x96ac[84]]||  !utils[_0x96ac[85]](_0x7ac1x28[_0x96ac[58]][_0x96ac[84]])){throw  new db[_0x96ac[87]].ValidationError(_0x96ac[86])};var _0x7ac1x1b={};var _0x7ac1x29={};_0x7ac1x29[_0x96ac[54]]= _[_0x96ac[57]](db[_[_0x96ac[89]](_0x7ac1x28[_0x96ac[58]][_0x96ac[84]][_0x96ac[88]]())+ _0x96ac[90]][_0x96ac[55]]);_0x7ac1x29[_0x96ac[58]]= _[_0x96ac[57]](_0x7ac1x28[_0x96ac[58]]);_0x7ac1x29[_0x96ac[59]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],_0x7ac1x29[_0x96ac[58]]);_0x7ac1x1b[_0x96ac[61]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],qs[_0x96ac[62]](_0x7ac1x28[_0x96ac[58]][_0x96ac[62]]));_0x7ac1x1b[_0x96ac[61]]= (_0x7ac1x1b[_0x96ac[61]][_0x96ac[63]])?_0x7ac1x1b[_0x96ac[61]]:_0x7ac1x29[_0x96ac[54]];_0x7ac1x1b[_0x96ac[35]]= qs[_0x96ac[35]](_0x7ac1x28[_0x96ac[58]][_0x96ac[35]]);_0x7ac1x1b[_0x96ac[34]]= qs[_0x96ac[34]](_0x7ac1x28[_0x96ac[58]][_0x96ac[34]]);_0x7ac1x1b[_0x96ac[66]]= qs[_0x96ac[67]](_0x7ac1x28[_0x96ac[58]][_0x96ac[67]]);_0x7ac1x1b[_0x96ac[68]]= qs[_0x96ac[59]](_[_0x96ac[69]](_0x7ac1x28[_0x96ac[58]],_0x7ac1x29[_0x96ac[59]]));_0x7ac1x1b= _[_0x96ac[73]]({},_0x7ac1x1b,_0x7ac1x28[_0x96ac[74]]);return _0x7ac1x18[_0x96ac[91]+ _[_0x96ac[89]](_0x7ac1x28[_0x96ac[58]][_0x96ac[84]][_0x96ac[88]]())+ _0x96ac[92]](_0x7ac1x1b)})[_0x96ac[45]](respondWithResult(_0x7ac1x15,null,_0x96ac[83]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[83]))};exports[_0x96ac[94]]= function(_0x7ac1x28,_0x7ac1x15,_0x7ac1x2c){return db[_0x96ac[56]][_0x96ac[93]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](function(_0x7ac1x18){if(_0x7ac1x18){if(!_0x7ac1x28[_0x96ac[82]][_0x96ac[84]]||  !utils[_0x96ac[85]](_0x7ac1x28[_0x96ac[82]][_0x96ac[84]])){throw  new db[_0x96ac[87]].ValidationError(_0x96ac[86])};return _0x7ac1x18[_0x96ac[96]+ _[_0x96ac[89]](_0x7ac1x28[_0x96ac[82]][_0x96ac[84]][_0x96ac[88]]())+ _0x96ac[92]](_0x7ac1x28[_0x96ac[82]][_0x96ac[95]])};return null})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[94]))[_0x96ac[45]](respondWithStatusCode(_0x7ac1x15,null,_0x96ac[94]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[94]))};exports[_0x96ac[97]]= function(_0x7ac1x28,_0x7ac1x15,_0x7ac1x2c){return db[_0x96ac[56]][_0x96ac[93]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](function(_0x7ac1x18){if(_0x7ac1x18){if(!_0x7ac1x28[_0x96ac[58]][_0x96ac[84]]||  !utils[_0x96ac[85]](_0x7ac1x28[_0x96ac[58]][_0x96ac[84]])){throw  new db[_0x96ac[87]].ValidationError(_0x96ac[86])};return _0x7ac1x18[_0x96ac[98]+ _[_0x96ac[89]](_0x7ac1x28[_0x96ac[58]][_0x96ac[84]][_0x96ac[88]]())+ _0x96ac[92]](_0x7ac1x28[_0x96ac[58]][_0x96ac[95]])};return null})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[97]))[_0x96ac[45]](respondWithStatusCode(_0x7ac1x15,null,_0x96ac[97]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[97]))};exports[_0x96ac[99]]= function(_0x7ac1x28,_0x7ac1x15,_0x7ac1x2c){return db[_0x96ac[56]][_0x96ac[80]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[99]))[_0x96ac[45]](function(_0x7ac1x18){if(_0x7ac1x18){return _0x7ac1x18[_0x96ac[99]](_0x7ac1x28[_0x96ac[82]][_0x96ac[95]],_[_0x96ac[100]](_0x7ac1x28[_0x96ac[82]],[_0x96ac[95],_0x96ac[78]])|| {})};return null})[_0x96ac[45]](respondWithResult(_0x7ac1x15,null,_0x96ac[99]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[99]))};exports[_0x96ac[101]]= function(_0x7ac1x28,_0x7ac1x15,_0x7ac1x2c){var _0x7ac1x2d;return db[_0x96ac[56]][_0x96ac[80]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x15,null,_0x96ac[101]))[_0x96ac[45]](function(_0x7ac1x18){if(_0x7ac1x18){return _0x7ac1x18[_0x96ac[101]](_0x7ac1x28[_0x96ac[58]][_0x96ac[95]])}})[_0x96ac[45]](respondWithStatusCode(_0x7ac1x15,null,_0x96ac[101]))[_0x96ac[75]](handleError(_0x7ac1x15,null,_0x96ac[101]))};exports[_0x96ac[102]]= function(_0x7ac1x28,_0x7ac1x18,_0x7ac1x2c){var _0x7ac1x1b={};var _0x7ac1x29={};var _0x7ac1x2e;var _0x7ac1x1c;return db[_0x96ac[56]][_0x96ac[93]]({where:{id:_0x7ac1x28[_0x96ac[79]][_0x96ac[78]]}})[_0x96ac[45]](handleEntityNotFound(_0x7ac1x18,null,_0x96ac[102]))[_0x96ac[45]](function(_0x7ac1x18){if(_0x7ac1x18){_0x7ac1x2e= _0x7ac1x18;_0x7ac1x29[_0x96ac[54]]= _[_0x96ac[57]](db[_0x96ac[103]][_0x96ac[55]]);_0x7ac1x29[_0x96ac[58]]= _[_0x96ac[57]](_0x7ac1x28[_0x96ac[58]]);_0x7ac1x29[_0x96ac[59]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],_0x7ac1x29[_0x96ac[58]]);_0x7ac1x1b[_0x96ac[61]]= _[_0x96ac[60]](_0x7ac1x29[_0x96ac[54]],qs[_0x96ac[62]](_0x7ac1x28[_0x96ac[58]][_0x96ac[62]]));_0x7ac1x1b[_0x96ac[61]]= (_0x7ac1x1b[_0x96ac[61]][_0x96ac[63]])?_0x7ac1x1b[_0x96ac[61]]:_0x7ac1x29[_0x96ac[54]];_0x7ac1x1b[_0x96ac[66]]= qs[_0x96ac[67]](_0x7ac1x28[_0x96ac[58]][_0x96ac[67]]);_0x7ac1x1b[_0x96ac[68]]= qs[_0x96ac[59]](_[_0x96ac[69]](_0x7ac1x28[_0x96ac[58]],_0x7ac1x29[_0x96ac[59]]));if(_0x7ac1x28[_0x96ac[58]][_0x96ac[70]]){_0x7ac1x1b[_0x96ac[68]]= _[_0x96ac[73]](_0x7ac1x1b[_0x96ac[68]],{$or:_[_0x96ac[72]](_0x7ac1x1b[_0x96ac[61]],function(_0x7ac1x2a){var _0x7ac1x2b={};_0x7ac1x2b[_0x7ac1x2a]= {$like:_0x96ac[71]+ _0x7ac1x28[_0x96ac[58]][_0x96ac[70]]+ _0x96ac[71]};return _0x7ac1x2b})})};_0x7ac1x1b= _[_0x96ac[73]]({},_0x7ac1x1b,_0x7ac1x28[_0x96ac[74]]);return _0x7ac1x2e[_0x96ac[102]](_0x7ac1x1b)}})[_0x96ac[45]](function(_0x7ac1x2d){if(_0x7ac1x2d){_0x7ac1x1c= _0x7ac1x2d[_0x96ac[63]];if(!_0x7ac1x28[_0x96ac[58]][_0x96ac[65]](_0x96ac[64])){_0x7ac1x1b[_0x96ac[35]]= qs[_0x96ac[35]](_0x7ac1x28[_0x96ac[58]][_0x96ac[35]]);_0x7ac1x1b[_0x96ac[34]]= qs[_0x96ac[34]](_0x7ac1x28[_0x96ac[58]][_0x96ac[34]])};return _0x7ac1x2e[_0x96ac[102]](_0x7ac1x1b)}})[_0x96ac[45]](function(_0x7ac1x2f){return _0x7ac1x2f?{count:_0x7ac1x1c,rows:_0x7ac1x2f}:null})[_0x96ac[45]](respondWithResult(_0x7ac1x18,null,_0x96ac[102]))[_0x96ac[75]](handleError(_0x7ac1x18,null,_0x96ac[102]))}
\ No newline at end of file
+var _0x14a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x65\x61\x6D","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x51\x75\x65\x75\x65","\x67\x65\x74","\x51\x75\x65\x75\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x69\x64\x73","\x61\x64\x64","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72"];_0x14a6[0];var jsonpatch=require(_0x14a6[1]);var rp=require(_0x14a6[2]);var moment=require(_0x14a6[3]);var BPromise=require(_0x14a6[4]);var util=require(_0x14a6[5]);var path=require(_0x14a6[6]);var sox=require(_0x14a6[7]);var ejs=require(_0x14a6[8]);var fs=require(_0x14a6[9]);var _=require(_0x14a6[10]);var squel=require(_0x14a6[11]);var crypto=require(_0x14a6[12]);var jsforce=require(_0x14a6[13]);var toCsv=require(_0x14a6[14]);var qs=require(_0x14a6[15]);var logger=require(_0x14a6[17])(_0x14a6[16]);var utils=require(_0x14a6[18]);var config=require(_0x14a6[19]);var db=require(_0x14a6[21])[_0x14a6[20]];function respondWithStatusCode(_0xe6d6x15,_0xe6d6x16,_0xe6d6x17){_0xe6d6x16= _0xe6d6x16|| 204;return function(_0xe6d6x18){if(_0xe6d6x18){logger[_0x14a6[24]](_0x14a6[22],_0xe6d6x17,_0xe6d6x16,_0x14a6[23]);logger[_0x14a6[26]](_0x14a6[25],_0xe6d6x17,_0xe6d6x16,_0x14a6[23]);return _0xe6d6x15[_0x14a6[27]](_0xe6d6x16)};return _0xe6d6x15[_0x14a6[29]](304)[_0x14a6[28]]()}}function respondWithResult(_0xe6d6x15,_0xe6d6x16,_0xe6d6x17){_0xe6d6x16= _0xe6d6x16|| 200;return function(_0xe6d6x18){if(_0xe6d6x18){logger[_0x14a6[24]](_0x14a6[22],_0xe6d6x17,_0xe6d6x16,_0x14a6[30]);logger[_0x14a6[26]](_0x14a6[25],_0xe6d6x17,_0xe6d6x16,_0x14a6[30],JSON[_0x14a6[31]](_0xe6d6x18));return _0xe6d6x15[_0x14a6[29]](_0xe6d6x16)[_0x14a6[32]](_0xe6d6x18)};return _0xe6d6x15[_0x14a6[29]](304)[_0x14a6[28]]()}}function respondWithFilteredResult(_0xe6d6x15,_0xe6d6x1b,_0xe6d6x17){return function(_0xe6d6x18){if(_0xe6d6x18){var _0xe6d6x1c=_0xe6d6x18[_0x14a6[33]],_0xe6d6x1d=_0xe6d6x1b[_0x14a6[34]],_0xe6d6x1e=_0xe6d6x1b[_0x14a6[34]]+ _0xe6d6x1b[_0x14a6[35]],_0xe6d6x16;if(_0xe6d6x1e>= _0xe6d6x1c){_0xe6d6x1e= _0xe6d6x1c;_0xe6d6x16= 200}else {_0xe6d6x16= 206};_0xe6d6x15[_0x14a6[29]](_0xe6d6x16);logger[_0x14a6[24]](_0x14a6[22],_0xe6d6x17,_0xe6d6x16,_0x14a6[36]);logger[_0x14a6[26]](_0x14a6[25],_0xe6d6x17,_0xe6d6x16,_0x14a6[30],JSON[_0x14a6[31]](_0xe6d6x18));return _0xe6d6x15[_0x14a6[40]](_0x14a6[37],_0xe6d6x1d+ _0x14a6[38]+ _0xe6d6x1e+ _0x14a6[39]+ _0xe6d6x1c)[_0x14a6[32]](_0xe6d6x18)};return null}}function patchUpdates(_0xe6d6x20){return function(_0xe6d6x18){try{jsonpatch[_0x14a6[41]](_0xe6d6x18,_0xe6d6x20,true)}catch(err){return BPromise[_0x14a6[42]](err)};return _0xe6d6x18[_0x14a6[43]]()}}function saveUpdates(_0xe6d6x22,_0xe6d6x16,_0xe6d6x17){return function(_0xe6d6x18){if(_0xe6d6x18){return _0xe6d6x18[_0x14a6[46]](_0xe6d6x22)[_0x14a6[45]](function(_0xe6d6x23){logger[_0x14a6[24]](_0x14a6[22],_0xe6d6x17,_0xe6d6x16,_0x14a6[44]);logger[_0x14a6[26]](_0x14a6[25],_0xe6d6x17,_0xe6d6x16,_0x14a6[44],JSON[_0x14a6[31]](_0xe6d6x18));return _0xe6d6x23})};return null}}function removeEntity(_0xe6d6x15,_0xe6d6x16,_0xe6d6x17){return function(_0xe6d6x18){if(_0xe6d6x18){return _0xe6d6x18[_0x14a6[48]]()[_0x14a6[45]](function(){logger[_0x14a6[24]](_0x14a6[22],_0xe6d6x17,_0xe6d6x16,_0x14a6[47]);logger[_0x14a6[26]](_0x14a6[25],_0xe6d6x17,_0xe6d6x16,_0x14a6[47],JSON[_0x14a6[31]](_0xe6d6x18));_0xe6d6x15[_0x14a6[29]](204)[_0x14a6[28]]()})}}}function handleEntityNotFound(_0xe6d6x15,_0xe6d6x16,_0xe6d6x17){return function(_0xe6d6x18){if(!_0xe6d6x18){logger[_0x14a6[50]](_0x14a6[22],_0xe6d6x17,404,_0x14a6[49]);_0xe6d6x15[_0x14a6[29]](404)[_0x14a6[28]]();return null};return _0xe6d6x18}}function handleError(_0xe6d6x15,_0xe6d6x16,_0xe6d6x17){_0xe6d6x16= _0xe6d6x16|| 500;return function(_0xe6d6x27){logger[_0x14a6[50]](_0x14a6[22],_0xe6d6x17,_0xe6d6x16,JSON[_0x14a6[31]](_0xe6d6x27));delete _0xe6d6x27[_0x14a6[51]];_0xe6d6x15[_0x14a6[29]](_0xe6d6x16)[_0x14a6[52]](_0xe6d6x27)}}exports[_0x14a6[53]]= function(_0xe6d6x28,_0xe6d6x15){var _0xe6d6x1b={},_0xe6d6x29={};_0xe6d6x29[_0x14a6[54]]= _[_0x14a6[57]](db[_0x14a6[56]][_0x14a6[55]]);_0xe6d6x29[_0x14a6[58]]= _[_0x14a6[57]](_0xe6d6x28[_0x14a6[58]]);_0xe6d6x29[_0x14a6[59]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],_0xe6d6x29[_0x14a6[58]]);_0xe6d6x1b[_0x14a6[61]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],qs[_0x14a6[62]](_0xe6d6x28[_0x14a6[58]][_0x14a6[62]]));_0xe6d6x1b[_0x14a6[61]]= (_0xe6d6x1b[_0x14a6[61]][_0x14a6[63]])?_0xe6d6x1b[_0x14a6[61]]:_0xe6d6x29[_0x14a6[54]];if(!_0xe6d6x28[_0x14a6[58]][_0x14a6[65]](_0x14a6[64])){_0xe6d6x1b[_0x14a6[35]]= qs[_0x14a6[35]](_0xe6d6x28[_0x14a6[58]][_0x14a6[35]]);_0xe6d6x1b[_0x14a6[34]]= qs[_0x14a6[34]](_0xe6d6x28[_0x14a6[58]][_0x14a6[34]])};_0xe6d6x1b[_0x14a6[66]]= qs[_0x14a6[67]](_0xe6d6x28[_0x14a6[58]][_0x14a6[67]]);_0xe6d6x1b[_0x14a6[68]]= qs[_0x14a6[59]](_[_0x14a6[69]](_0xe6d6x28[_0x14a6[58]],_0xe6d6x29[_0x14a6[59]]));if(_0xe6d6x28[_0x14a6[58]][_0x14a6[70]]){_0xe6d6x1b[_0x14a6[68]]= _[_0x14a6[73]](_0xe6d6x1b[_0x14a6[68]],{$or:_[_0x14a6[72]](_0xe6d6x1b[_0x14a6[61]],function(_0xe6d6x2a){var _0xe6d6x2b={};_0xe6d6x2b[_0xe6d6x2a]= {$like:_0x14a6[71]+ _0xe6d6x28[_0x14a6[58]][_0x14a6[70]]+ _0x14a6[71]};return _0xe6d6x2b})})};_0xe6d6x1b= _[_0x14a6[73]]({},_0xe6d6x1b,_0xe6d6x28[_0x14a6[74]]);return db[_0x14a6[56]][_0x14a6[76]](_0xe6d6x1b)[_0x14a6[45]](respondWithFilteredResult(_0xe6d6x15,_0xe6d6x1b,_0x14a6[53]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[53]))};exports[_0x14a6[77]]= function(_0xe6d6x28,_0xe6d6x15){var _0xe6d6x1b={raw:false,where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}},_0xe6d6x29={};_0xe6d6x29[_0x14a6[54]]= _[_0x14a6[57]](db[_0x14a6[56]][_0x14a6[55]]);_0xe6d6x29[_0x14a6[58]]= _[_0x14a6[57]](_0xe6d6x28[_0x14a6[58]]);_0xe6d6x29[_0x14a6[59]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],_0xe6d6x29[_0x14a6[58]]);_0xe6d6x1b[_0x14a6[61]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],qs[_0x14a6[62]](_0xe6d6x28[_0x14a6[58]][_0x14a6[62]]));_0xe6d6x1b[_0x14a6[61]]= (_0xe6d6x1b[_0x14a6[61]][_0x14a6[63]])?_0xe6d6x1b[_0x14a6[61]]:_0xe6d6x29[_0x14a6[54]];_0xe6d6x1b= _[_0x14a6[73]]({},_0xe6d6x1b,_0xe6d6x28[_0x14a6[74]]);return db[_0x14a6[56]][_0x14a6[80]](_0xe6d6x1b)[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[77]))[_0x14a6[45]](respondWithResult(_0xe6d6x15,null,_0x14a6[77]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[77]))};exports[_0x14a6[81]]= function(_0xe6d6x28,_0xe6d6x15){return db[_0x14a6[56]][_0x14a6[81]](_0xe6d6x28[_0x14a6[82]],{})[_0x14a6[45]](respondWithResult(_0xe6d6x15,201,_0x14a6[81]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[81]))};exports[_0x14a6[46]]= function(_0xe6d6x28,_0xe6d6x15){if(_0xe6d6x28[_0x14a6[82]][_0x14a6[78]]){delete _0xe6d6x28[_0x14a6[82]][_0x14a6[78]]};return db[_0x14a6[56]][_0x14a6[80]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[46]))[_0x14a6[45]](saveUpdates(_0xe6d6x28[_0x14a6[82]],null,_0x14a6[46]))[_0x14a6[45]](respondWithResult(_0xe6d6x15,null,_0x14a6[46]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[46]))};exports[_0x14a6[48]]= function(_0xe6d6x28,_0xe6d6x15){return db[_0x14a6[56]][_0x14a6[80]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[48]))[_0x14a6[45]](removeEntity(_0xe6d6x15,null,_0x14a6[48]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[48]))};exports[_0x14a6[83]]= function(_0xe6d6x28,_0xe6d6x15,_0xe6d6x2c){return db[_0x14a6[56]][_0x14a6[93]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[83]))[_0x14a6[45]](function(_0xe6d6x18){if(!_0xe6d6x28[_0x14a6[58]][_0x14a6[84]]||  !utils[_0x14a6[85]](_0xe6d6x28[_0x14a6[58]][_0x14a6[84]])){throw  new db[_0x14a6[87]].ValidationError(_0x14a6[86])};var _0xe6d6x1b={};var _0xe6d6x29={};_0xe6d6x29[_0x14a6[54]]= _[_0x14a6[57]](db[_[_0x14a6[89]](_0xe6d6x28[_0x14a6[58]][_0x14a6[84]][_0x14a6[88]]())+ _0x14a6[90]][_0x14a6[55]]);_0xe6d6x29[_0x14a6[58]]= _[_0x14a6[57]](_0xe6d6x28[_0x14a6[58]]);_0xe6d6x29[_0x14a6[59]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],_0xe6d6x29[_0x14a6[58]]);_0xe6d6x1b[_0x14a6[61]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],qs[_0x14a6[62]](_0xe6d6x28[_0x14a6[58]][_0x14a6[62]]));_0xe6d6x1b[_0x14a6[61]]= (_0xe6d6x1b[_0x14a6[61]][_0x14a6[63]])?_0xe6d6x1b[_0x14a6[61]]:_0xe6d6x29[_0x14a6[54]];_0xe6d6x1b[_0x14a6[35]]= qs[_0x14a6[35]](_0xe6d6x28[_0x14a6[58]][_0x14a6[35]]);_0xe6d6x1b[_0x14a6[34]]= qs[_0x14a6[34]](_0xe6d6x28[_0x14a6[58]][_0x14a6[34]]);_0xe6d6x1b[_0x14a6[66]]= qs[_0x14a6[67]](_0xe6d6x28[_0x14a6[58]][_0x14a6[67]]);_0xe6d6x1b[_0x14a6[68]]= qs[_0x14a6[59]](_[_0x14a6[69]](_0xe6d6x28[_0x14a6[58]],_0xe6d6x29[_0x14a6[59]]));_0xe6d6x1b= _[_0x14a6[73]]({},_0xe6d6x1b,_0xe6d6x28[_0x14a6[74]]);return _0xe6d6x18[_0x14a6[91]+ _[_0x14a6[89]](_0xe6d6x28[_0x14a6[58]][_0x14a6[84]][_0x14a6[88]]())+ _0x14a6[92]](_0xe6d6x1b)})[_0x14a6[45]](respondWithResult(_0xe6d6x15,null,_0x14a6[83]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[83]))};exports[_0x14a6[94]]= function(_0xe6d6x28,_0xe6d6x15,_0xe6d6x2c){return db[_0x14a6[56]][_0x14a6[93]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](function(_0xe6d6x18){if(_0xe6d6x18){if(!_0xe6d6x28[_0x14a6[82]][_0x14a6[84]]||  !utils[_0x14a6[85]](_0xe6d6x28[_0x14a6[82]][_0x14a6[84]])){throw  new db[_0x14a6[87]].ValidationError(_0x14a6[86])};return _0xe6d6x18[_0x14a6[96]+ _[_0x14a6[89]](_0xe6d6x28[_0x14a6[82]][_0x14a6[84]][_0x14a6[88]]())+ _0x14a6[92]](_0xe6d6x28[_0x14a6[82]][_0x14a6[95]])};return null})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[94]))[_0x14a6[45]](respondWithStatusCode(_0xe6d6x15,null,_0x14a6[94]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[94]))};exports[_0x14a6[97]]= function(_0xe6d6x28,_0xe6d6x15,_0xe6d6x2c){return db[_0x14a6[56]][_0x14a6[93]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](function(_0xe6d6x18){if(_0xe6d6x18){if(!_0xe6d6x28[_0x14a6[58]][_0x14a6[84]]||  !utils[_0x14a6[85]](_0xe6d6x28[_0x14a6[58]][_0x14a6[84]])){throw  new db[_0x14a6[87]].ValidationError(_0x14a6[86])};return _0xe6d6x18[_0x14a6[98]+ _[_0x14a6[89]](_0xe6d6x28[_0x14a6[58]][_0x14a6[84]][_0x14a6[88]]())+ _0x14a6[92]](_0xe6d6x28[_0x14a6[58]][_0x14a6[95]])};return null})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[97]))[_0x14a6[45]](respondWithStatusCode(_0xe6d6x15,null,_0x14a6[97]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[97]))};exports[_0x14a6[99]]= function(_0xe6d6x28,_0xe6d6x15,_0xe6d6x2c){return db[_0x14a6[56]][_0x14a6[80]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[99]))[_0x14a6[45]](function(_0xe6d6x18){if(_0xe6d6x18){return _0xe6d6x18[_0x14a6[99]](_0xe6d6x28[_0x14a6[82]][_0x14a6[95]],_[_0x14a6[100]](_0xe6d6x28[_0x14a6[82]],[_0x14a6[95],_0x14a6[78]])|| {})};return null})[_0x14a6[45]](respondWithResult(_0xe6d6x15,null,_0x14a6[99]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[99]))};exports[_0x14a6[101]]= function(_0xe6d6x28,_0xe6d6x15,_0xe6d6x2c){var _0xe6d6x2d;return db[_0x14a6[56]][_0x14a6[80]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x15,null,_0x14a6[101]))[_0x14a6[45]](function(_0xe6d6x18){if(_0xe6d6x18){return _0xe6d6x18[_0x14a6[101]](_0xe6d6x28[_0x14a6[58]][_0x14a6[95]])}})[_0x14a6[45]](respondWithStatusCode(_0xe6d6x15,null,_0x14a6[101]))[_0x14a6[75]](handleError(_0xe6d6x15,null,_0x14a6[101]))};exports[_0x14a6[102]]= function(_0xe6d6x28,_0xe6d6x18,_0xe6d6x2c){var _0xe6d6x1b={};var _0xe6d6x29={};var _0xe6d6x2e;var _0xe6d6x1c;return db[_0x14a6[56]][_0x14a6[93]]({where:{id:_0xe6d6x28[_0x14a6[79]][_0x14a6[78]]}})[_0x14a6[45]](handleEntityNotFound(_0xe6d6x18,null,_0x14a6[102]))[_0x14a6[45]](function(_0xe6d6x18){if(_0xe6d6x18){_0xe6d6x2e= _0xe6d6x18;_0xe6d6x29[_0x14a6[54]]= _[_0x14a6[57]](db[_0x14a6[103]][_0x14a6[55]]);_0xe6d6x29[_0x14a6[58]]= _[_0x14a6[57]](_0xe6d6x28[_0x14a6[58]]);_0xe6d6x29[_0x14a6[59]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],_0xe6d6x29[_0x14a6[58]]);_0xe6d6x1b[_0x14a6[61]]= _[_0x14a6[60]](_0xe6d6x29[_0x14a6[54]],qs[_0x14a6[62]](_0xe6d6x28[_0x14a6[58]][_0x14a6[62]]));_0xe6d6x1b[_0x14a6[61]]= (_0xe6d6x1b[_0x14a6[61]][_0x14a6[63]])?_0xe6d6x1b[_0x14a6[61]]:_0xe6d6x29[_0x14a6[54]];_0xe6d6x1b[_0x14a6[66]]= qs[_0x14a6[67]](_0xe6d6x28[_0x14a6[58]][_0x14a6[67]]);_0xe6d6x1b[_0x14a6[68]]= qs[_0x14a6[59]](_[_0x14a6[69]](_0xe6d6x28[_0x14a6[58]],_0xe6d6x29[_0x14a6[59]]));if(_0xe6d6x28[_0x14a6[58]][_0x14a6[70]]){_0xe6d6x1b[_0x14a6[68]]= _[_0x14a6[73]](_0xe6d6x1b[_0x14a6[68]],{$or:_[_0x14a6[72]](_0xe6d6x1b[_0x14a6[61]],function(_0xe6d6x2a){var _0xe6d6x2b={};_0xe6d6x2b[_0xe6d6x2a]= {$like:_0x14a6[71]+ _0xe6d6x28[_0x14a6[58]][_0x14a6[70]]+ _0x14a6[71]};return _0xe6d6x2b})})};_0xe6d6x1b= _[_0x14a6[73]]({},_0xe6d6x1b,_0xe6d6x28[_0x14a6[74]]);return _0xe6d6x2e[_0x14a6[102]](_0xe6d6x1b)}})[_0x14a6[45]](function(_0xe6d6x2d){if(_0xe6d6x2d){_0xe6d6x1c= _0xe6d6x2d[_0x14a6[63]];if(!_0xe6d6x28[_0x14a6[58]][_0x14a6[65]](_0x14a6[64])){_0xe6d6x1b[_0x14a6[35]]= qs[_0x14a6[35]](_0xe6d6x28[_0x14a6[58]][_0x14a6[35]]);_0xe6d6x1b[_0x14a6[34]]= qs[_0x14a6[34]](_0xe6d6x28[_0x14a6[58]][_0x14a6[34]])};return _0xe6d6x2e[_0x14a6[102]](_0xe6d6x1b)}})[_0x14a6[45]](function(_0xe6d6x2f){return _0xe6d6x2f?{count:_0xe6d6x1c,rows:_0xe6d6x2f}:null})[_0x14a6[45]](respondWithResult(_0xe6d6x18,null,_0x14a6[102]))[_0x14a6[75]](handleError(_0xe6d6x18,null,_0x14a6[102]))}
\ No newline at end of file
index 28ab55a..43ea34b 100644 (file)
@@ -1 +1 @@
-var _0x76ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x65\x61\x6D\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x61\x6D","\x74\x65\x61\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x76ab[0];var _=require(_0x76ab[1]);var util=require(_0x76ab[2]);var logger=require(_0x76ab[4])(_0x76ab[3]);var attributes=require(_0x76ab[5]);module[_0x76ab[6]]= function(_0xa9abx5,_0xa9abx6){return _0xa9abx5[_0x76ab[9]](_0x76ab[7],attributes,{tableName:_0x76ab[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x131c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x65\x61\x6D\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x61\x6D","\x74\x65\x61\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x131c[0];var _=require(_0x131c[1]);var util=require(_0x131c[2]);var logger=require(_0x131c[4])(_0x131c[3]);var attributes=require(_0x131c[5]);module[_0x131c[6]]= function(_0xa28ex5,_0xa28ex6){return _0xa28ex5[_0x131c[9]](_0x131c[7],attributes,{tableName:_0x131c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 6d3f153..04796ba 100644 (file)
@@ -1 +1 @@
-var _0xfe23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfe23[0];var _=require(_0xfe23[1]);var util=require(_0xfe23[2]);var moment=require(_0xfe23[3]);var BPromise=require(_0xfe23[4]);var db=require(_0xfe23[6])[_0xfe23[5]];var utils=require(_0xfe23[7]);var logger=require(_0xfe23[9])(_0xfe23[8]);var jayson=require(_0xfe23[10]);var client=jayson[_0xfe23[12]][_0xfe23[11]]({port:9002});function respondWithRpcPromise(_0x75f3xb,_0x75f3xc,_0x75f3xd){return  new BPromise(function(_0x75f3xe,_0x75f3xf){return client[_0xfe23[25]](_0x75f3xb,_0x75f3xd)[_0xfe23[24]](function(_0x75f3x11){logger[_0xfe23[17]](_0xfe23[13],_0x75f3xc,_0xfe23[16]);logger[_0xfe23[20]](_0xfe23[18],_0x75f3xc,_0xfe23[16],JSON[_0xfe23[19]](_0x75f3x11));if(_0x75f3x11[_0xfe23[14]]){if(_0x75f3x11[_0xfe23[14]][_0xfe23[21]]=== 500){logger[_0xfe23[14]](_0xfe23[13],_0x75f3xc,_0x75f3x11[_0xfe23[14]][_0xfe23[22]]);return _0x75f3xf(_0x75f3x11[_0xfe23[14]][_0xfe23[22]])};logger[_0xfe23[14]](_0xfe23[13],_0x75f3xc,_0x75f3x11[_0xfe23[14]][_0xfe23[22]]);return _0x75f3xe(_0x75f3x11[_0xfe23[14]][_0xfe23[22]])}else {logger[_0xfe23[17]](_0xfe23[13],_0x75f3xc,_0xfe23[16]);_0x75f3xe(_0x75f3x11[_0xfe23[23]][_0xfe23[22]])}})[_0xfe23[15]](function(_0x75f3x10){logger[_0xfe23[14]](_0xfe23[13],_0x75f3xc,_0x75f3x10);_0x75f3xf(_0x75f3x10)})})}
\ No newline at end of file
+var _0x5a53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5a53[0];var _=require(_0x5a53[1]);var util=require(_0x5a53[2]);var moment=require(_0x5a53[3]);var BPromise=require(_0x5a53[4]);var db=require(_0x5a53[6])[_0x5a53[5]];var utils=require(_0x5a53[7]);var logger=require(_0x5a53[9])(_0x5a53[8]);var jayson=require(_0x5a53[10]);var client=jayson[_0x5a53[12]][_0x5a53[11]]({port:9002});function respondWithRpcPromise(_0x9dbexb,_0x9dbexc,_0x9dbexd){return  new BPromise(function(_0x9dbexe,_0x9dbexf){return client[_0x5a53[25]](_0x9dbexb,_0x9dbexd)[_0x5a53[24]](function(_0x9dbex11){logger[_0x5a53[17]](_0x5a53[13],_0x9dbexc,_0x5a53[16]);logger[_0x5a53[20]](_0x5a53[18],_0x9dbexc,_0x5a53[16],JSON[_0x5a53[19]](_0x9dbex11));if(_0x9dbex11[_0x5a53[14]]){if(_0x9dbex11[_0x5a53[14]][_0x5a53[21]]=== 500){logger[_0x5a53[14]](_0x5a53[13],_0x9dbexc,_0x9dbex11[_0x5a53[14]][_0x5a53[22]]);return _0x9dbexf(_0x9dbex11[_0x5a53[14]][_0x5a53[22]])};logger[_0x5a53[14]](_0x5a53[13],_0x9dbexc,_0x9dbex11[_0x5a53[14]][_0x5a53[22]]);return _0x9dbexe(_0x9dbex11[_0x5a53[14]][_0x5a53[22]])}else {logger[_0x5a53[17]](_0x5a53[13],_0x9dbexc,_0x5a53[16]);_0x9dbexe(_0x9dbex11[_0x5a53[23]][_0x5a53[22]])}})[_0x5a53[15]](function(_0x9dbex10){logger[_0x5a53[14]](_0x5a53[13],_0x9dbexc,_0x9dbex10);_0x9dbexf(_0x9dbex10)})})}
\ No newline at end of file
index 9f473ae..3736478 100644 (file)
@@ -1 +1 @@
-var _0xa313=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa313[0];var multer=require(_0xa313[1]);var util=require(_0xa313[2]);var path=require(_0xa313[3]);var express=require(_0xa313[4]);var router=express.Router();var auth=require(_0xa313[5]);var config=require(_0xa313[6]);var controller=require(_0xa313[7]);router[_0xa313[11]](_0xa313[8],auth[_0xa313[9]](),controller[_0xa313[10]]);router[_0xa313[11]](_0xa313[12],auth[_0xa313[9]](),controller[_0xa313[13]]);router[_0xa313[15]](_0xa313[8],auth[_0xa313[9]](),controller[_0xa313[14]]);router[_0xa313[17]](_0xa313[12],auth[_0xa313[9]](),controller[_0xa313[16]]);router[_0xa313[19]](_0xa313[12],auth[_0xa313[9]](),controller[_0xa313[18]]);module[_0xa313[20]]= router
\ No newline at end of file
+var _0xb554=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb554[0];var multer=require(_0xb554[1]);var util=require(_0xb554[2]);var path=require(_0xb554[3]);var express=require(_0xb554[4]);var router=express.Router();var auth=require(_0xb554[5]);var config=require(_0xb554[6]);var controller=require(_0xb554[7]);router[_0xb554[11]](_0xb554[8],auth[_0xb554[9]](),controller[_0xb554[10]]);router[_0xb554[11]](_0xb554[12],auth[_0xb554[9]](),controller[_0xb554[13]]);router[_0xb554[15]](_0xb554[8],auth[_0xb554[9]](),controller[_0xb554[14]]);router[_0xb554[17]](_0xb554[12],auth[_0xb554[9]](),controller[_0xb554[16]]);router[_0xb554[19]](_0xb554[12],auth[_0xb554[9]](),controller[_0xb554[18]]);module[_0xb554[20]]= router
\ No newline at end of file
index 080777d..85979bb 100644 (file)
@@ -1 +1 @@
-var _0x3697=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x3697[0];var Sequelize=require(_0x3697[1]);module[_0x3697[2]]= {name:{type:Sequelize[_0x3697[3]]},description:{type:Sequelize[_0x3697[3]]},subject:{type:Sequelize[_0x3697[3]]},html:{type:Sequelize[_0x3697[4]]}}
\ No newline at end of file
+var _0xf3a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xf3a6[0];var Sequelize=require(_0xf3a6[1]);module[_0xf3a6[2]]= {name:{type:Sequelize[_0xf3a6[3]]},description:{type:Sequelize[_0xf3a6[3]]},subject:{type:Sequelize[_0xf3a6[3]]},html:{type:Sequelize[_0xf3a6[4]]}}
\ No newline at end of file
index 40fdc97..d551109 100644 (file)
@@ -1 +1 @@
-var _0xf222=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xf222[0];var jsonpatch=require(_0xf222[1]);var rp=require(_0xf222[2]);var moment=require(_0xf222[3]);var BPromise=require(_0xf222[4]);var util=require(_0xf222[5]);var path=require(_0xf222[6]);var sox=require(_0xf222[7]);var ejs=require(_0xf222[8]);var fs=require(_0xf222[9]);var _=require(_0xf222[10]);var squel=require(_0xf222[11]);var crypto=require(_0xf222[12]);var jsforce=require(_0xf222[13]);var toCsv=require(_0xf222[14]);var qs=require(_0xf222[15]);var logger=require(_0xf222[17])(_0xf222[16]);var utils=require(_0xf222[18]);var config=require(_0xf222[19]);var db=require(_0xf222[21])[_0xf222[20]];function respondWithStatusCode(_0xad86x15,_0xad86x16,_0xad86x17){_0xad86x16= _0xad86x16|| 204;return function(_0xad86x18){if(_0xad86x18){logger[_0xf222[24]](_0xf222[22],_0xad86x17,_0xad86x16,_0xf222[23]);logger[_0xf222[26]](_0xf222[25],_0xad86x17,_0xad86x16,_0xf222[23]);return _0xad86x15[_0xf222[27]](_0xad86x16)};return _0xad86x15[_0xf222[29]](304)[_0xf222[28]]()}}function respondWithResult(_0xad86x15,_0xad86x16,_0xad86x17){_0xad86x16= _0xad86x16|| 200;return function(_0xad86x18){if(_0xad86x18){logger[_0xf222[24]](_0xf222[22],_0xad86x17,_0xad86x16,_0xf222[30]);logger[_0xf222[26]](_0xf222[25],_0xad86x17,_0xad86x16,_0xf222[30],JSON[_0xf222[31]](_0xad86x18));return _0xad86x15[_0xf222[29]](_0xad86x16)[_0xf222[32]](_0xad86x18)};return _0xad86x15[_0xf222[29]](304)[_0xf222[28]]()}}function respondWithFilteredResult(_0xad86x15,_0xad86x1b,_0xad86x17){return function(_0xad86x18){if(_0xad86x18){var _0xad86x1c=_0xad86x18[_0xf222[33]],_0xad86x1d=_0xad86x1b[_0xf222[34]],_0xad86x1e=_0xad86x1b[_0xf222[34]]+ _0xad86x1b[_0xf222[35]],_0xad86x16;if(_0xad86x1e>= _0xad86x1c){_0xad86x1e= _0xad86x1c;_0xad86x16= 200}else {_0xad86x16= 206};_0xad86x15[_0xf222[29]](_0xad86x16);logger[_0xf222[24]](_0xf222[22],_0xad86x17,_0xad86x16,_0xf222[36]);logger[_0xf222[26]](_0xf222[25],_0xad86x17,_0xad86x16,_0xf222[30],JSON[_0xf222[31]](_0xad86x18));return _0xad86x15[_0xf222[40]](_0xf222[37],_0xad86x1d+ _0xf222[38]+ _0xad86x1e+ _0xf222[39]+ _0xad86x1c)[_0xf222[32]](_0xad86x18)};return null}}function patchUpdates(_0xad86x20){return function(_0xad86x18){try{jsonpatch[_0xf222[41]](_0xad86x18,_0xad86x20,true)}catch(err){return BPromise[_0xf222[42]](err)};return _0xad86x18[_0xf222[43]]()}}function saveUpdates(_0xad86x22,_0xad86x16,_0xad86x17){return function(_0xad86x18){if(_0xad86x18){return _0xad86x18[_0xf222[46]](_0xad86x22)[_0xf222[45]](function(_0xad86x23){logger[_0xf222[24]](_0xf222[22],_0xad86x17,_0xad86x16,_0xf222[44]);logger[_0xf222[26]](_0xf222[25],_0xad86x17,_0xad86x16,_0xf222[44],JSON[_0xf222[31]](_0xad86x18));return _0xad86x23})};return null}}function removeEntity(_0xad86x15,_0xad86x16,_0xad86x17){return function(_0xad86x18){if(_0xad86x18){return _0xad86x18[_0xf222[48]]()[_0xf222[45]](function(){logger[_0xf222[24]](_0xf222[22],_0xad86x17,_0xad86x16,_0xf222[47]);logger[_0xf222[26]](_0xf222[25],_0xad86x17,_0xad86x16,_0xf222[47],JSON[_0xf222[31]](_0xad86x18));_0xad86x15[_0xf222[29]](204)[_0xf222[28]]()})}}}function handleEntityNotFound(_0xad86x15,_0xad86x16,_0xad86x17){return function(_0xad86x18){if(!_0xad86x18){logger[_0xf222[50]](_0xf222[22],_0xad86x17,404,_0xf222[49]);_0xad86x15[_0xf222[29]](404)[_0xf222[28]]();return null};return _0xad86x18}}function handleError(_0xad86x15,_0xad86x16,_0xad86x17){_0xad86x16= _0xad86x16|| 500;return function(_0xad86x27){logger[_0xf222[50]](_0xf222[22],_0xad86x17,_0xad86x16,JSON[_0xf222[31]](_0xad86x27));delete _0xad86x27[_0xf222[51]];_0xad86x15[_0xf222[29]](_0xad86x16)[_0xf222[52]](_0xad86x27)}}exports[_0xf222[53]]= function(_0xad86x28,_0xad86x15){var _0xad86x1b={},_0xad86x29={};_0xad86x29[_0xf222[54]]= _[_0xf222[57]](db[_0xf222[56]][_0xf222[55]]);_0xad86x29[_0xf222[58]]= _[_0xf222[57]](_0xad86x28[_0xf222[58]]);_0xad86x29[_0xf222[59]]= _[_0xf222[60]](_0xad86x29[_0xf222[54]],_0xad86x29[_0xf222[58]]);_0xad86x1b[_0xf222[61]]= _[_0xf222[60]](_0xad86x29[_0xf222[54]],qs[_0xf222[62]](_0xad86x28[_0xf222[58]][_0xf222[62]]));_0xad86x1b[_0xf222[61]]= (_0xad86x1b[_0xf222[61]][_0xf222[63]])?_0xad86x1b[_0xf222[61]]:_0xad86x29[_0xf222[54]];if(!_0xad86x28[_0xf222[58]][_0xf222[65]](_0xf222[64])){_0xad86x1b[_0xf222[35]]= qs[_0xf222[35]](_0xad86x28[_0xf222[58]][_0xf222[35]]);_0xad86x1b[_0xf222[34]]= qs[_0xf222[34]](_0xad86x28[_0xf222[58]][_0xf222[34]])};_0xad86x1b[_0xf222[66]]= qs[_0xf222[67]](_0xad86x28[_0xf222[58]][_0xf222[67]]);_0xad86x1b[_0xf222[68]]= qs[_0xf222[59]](_[_0xf222[69]](_0xad86x28[_0xf222[58]],_0xad86x29[_0xf222[59]]));if(_0xad86x28[_0xf222[58]][_0xf222[70]]){_0xad86x1b[_0xf222[68]]= _[_0xf222[73]](_0xad86x1b[_0xf222[68]],{$or:_[_0xf222[72]](_0xad86x1b[_0xf222[61]],function(_0xad86x2a){var _0xad86x2b={};_0xad86x2b[_0xad86x2a]= {$like:_0xf222[71]+ _0xad86x28[_0xf222[58]][_0xf222[70]]+ _0xf222[71]};return _0xad86x2b})})};_0xad86x1b= _[_0xf222[73]]({},_0xad86x1b,_0xad86x28[_0xf222[74]]);return db[_0xf222[56]][_0xf222[76]](_0xad86x1b)[_0xf222[45]](respondWithFilteredResult(_0xad86x15,_0xad86x1b,_0xf222[53]))[_0xf222[75]](handleError(_0xad86x15,null,_0xf222[53]))};exports[_0xf222[77]]= function(_0xad86x28,_0xad86x15){var _0xad86x1b={raw:true,where:{id:_0xad86x28[_0xf222[79]][_0xf222[78]]}},_0xad86x29={};_0xad86x29[_0xf222[54]]= _[_0xf222[57]](db[_0xf222[56]][_0xf222[55]]);_0xad86x29[_0xf222[58]]= _[_0xf222[57]](_0xad86x28[_0xf222[58]]);_0xad86x29[_0xf222[59]]= _[_0xf222[60]](_0xad86x29[_0xf222[54]],_0xad86x29[_0xf222[58]]);_0xad86x1b[_0xf222[61]]= _[_0xf222[60]](_0xad86x29[_0xf222[54]],qs[_0xf222[62]](_0xad86x28[_0xf222[58]][_0xf222[62]]));_0xad86x1b[_0xf222[61]]= (_0xad86x1b[_0xf222[61]][_0xf222[63]])?_0xad86x1b[_0xf222[61]]:_0xad86x29[_0xf222[54]];_0xad86x1b= _[_0xf222[73]]({},_0xad86x1b,_0xad86x28[_0xf222[74]]);return db[_0xf222[56]][_0xf222[80]](_0xad86x1b)[_0xf222[45]](handleEntityNotFound(_0xad86x15,null,_0xf222[77]))[_0xf222[45]](respondWithResult(_0xad86x15,null,_0xf222[77]))[_0xf222[75]](handleError(_0xad86x15,null,_0xf222[77]))};exports[_0xf222[81]]= function(_0xad86x28,_0xad86x15){return db[_0xf222[56]][_0xf222[81]](_0xad86x28[_0xf222[82]],{})[_0xf222[45]](respondWithResult(_0xad86x15,201,_0xf222[81]))[_0xf222[75]](handleError(_0xad86x15,null,_0xf222[81]))};exports[_0xf222[46]]= function(_0xad86x28,_0xad86x15){if(_0xad86x28[_0xf222[82]][_0xf222[78]]){delete _0xad86x28[_0xf222[82]][_0xf222[78]]};return db[_0xf222[56]][_0xf222[80]]({where:{id:_0xad86x28[_0xf222[79]][_0xf222[78]]}})[_0xf222[45]](handleEntityNotFound(_0xad86x15,null,_0xf222[46]))[_0xf222[45]](saveUpdates(_0xad86x28[_0xf222[82]],null,_0xf222[46]))[_0xf222[45]](respondWithResult(_0xad86x15,null,_0xf222[46]))[_0xf222[75]](handleError(_0xad86x15,null,_0xf222[46]))};exports[_0xf222[48]]= function(_0xad86x28,_0xad86x15){return db[_0xf222[56]][_0xf222[80]]({where:{id:_0xad86x28[_0xf222[79]][_0xf222[78]]}})[_0xf222[45]](handleEntityNotFound(_0xad86x15,null,_0xf222[48]))[_0xf222[45]](removeEntity(_0xad86x15,null,_0xf222[48]))[_0xf222[75]](handleError(_0xad86x15,null,_0xf222[48]))}
\ No newline at end of file
+var _0x1967=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x1967[0];var jsonpatch=require(_0x1967[1]);var rp=require(_0x1967[2]);var moment=require(_0x1967[3]);var BPromise=require(_0x1967[4]);var util=require(_0x1967[5]);var path=require(_0x1967[6]);var sox=require(_0x1967[7]);var ejs=require(_0x1967[8]);var fs=require(_0x1967[9]);var _=require(_0x1967[10]);var squel=require(_0x1967[11]);var crypto=require(_0x1967[12]);var jsforce=require(_0x1967[13]);var toCsv=require(_0x1967[14]);var qs=require(_0x1967[15]);var logger=require(_0x1967[17])(_0x1967[16]);var utils=require(_0x1967[18]);var config=require(_0x1967[19]);var db=require(_0x1967[21])[_0x1967[20]];function respondWithStatusCode(_0xf100x15,_0xf100x16,_0xf100x17){_0xf100x16= _0xf100x16|| 204;return function(_0xf100x18){if(_0xf100x18){logger[_0x1967[24]](_0x1967[22],_0xf100x17,_0xf100x16,_0x1967[23]);logger[_0x1967[26]](_0x1967[25],_0xf100x17,_0xf100x16,_0x1967[23]);return _0xf100x15[_0x1967[27]](_0xf100x16)};return _0xf100x15[_0x1967[29]](304)[_0x1967[28]]()}}function respondWithResult(_0xf100x15,_0xf100x16,_0xf100x17){_0xf100x16= _0xf100x16|| 200;return function(_0xf100x18){if(_0xf100x18){logger[_0x1967[24]](_0x1967[22],_0xf100x17,_0xf100x16,_0x1967[30]);logger[_0x1967[26]](_0x1967[25],_0xf100x17,_0xf100x16,_0x1967[30],JSON[_0x1967[31]](_0xf100x18));return _0xf100x15[_0x1967[29]](_0xf100x16)[_0x1967[32]](_0xf100x18)};return _0xf100x15[_0x1967[29]](304)[_0x1967[28]]()}}function respondWithFilteredResult(_0xf100x15,_0xf100x1b,_0xf100x17){return function(_0xf100x18){if(_0xf100x18){var _0xf100x1c=_0xf100x18[_0x1967[33]],_0xf100x1d=_0xf100x1b[_0x1967[34]],_0xf100x1e=_0xf100x1b[_0x1967[34]]+ _0xf100x1b[_0x1967[35]],_0xf100x16;if(_0xf100x1e>= _0xf100x1c){_0xf100x1e= _0xf100x1c;_0xf100x16= 200}else {_0xf100x16= 206};_0xf100x15[_0x1967[29]](_0xf100x16);logger[_0x1967[24]](_0x1967[22],_0xf100x17,_0xf100x16,_0x1967[36]);logger[_0x1967[26]](_0x1967[25],_0xf100x17,_0xf100x16,_0x1967[30],JSON[_0x1967[31]](_0xf100x18));return _0xf100x15[_0x1967[40]](_0x1967[37],_0xf100x1d+ _0x1967[38]+ _0xf100x1e+ _0x1967[39]+ _0xf100x1c)[_0x1967[32]](_0xf100x18)};return null}}function patchUpdates(_0xf100x20){return function(_0xf100x18){try{jsonpatch[_0x1967[41]](_0xf100x18,_0xf100x20,true)}catch(err){return BPromise[_0x1967[42]](err)};return _0xf100x18[_0x1967[43]]()}}function saveUpdates(_0xf100x22,_0xf100x16,_0xf100x17){return function(_0xf100x18){if(_0xf100x18){return _0xf100x18[_0x1967[46]](_0xf100x22)[_0x1967[45]](function(_0xf100x23){logger[_0x1967[24]](_0x1967[22],_0xf100x17,_0xf100x16,_0x1967[44]);logger[_0x1967[26]](_0x1967[25],_0xf100x17,_0xf100x16,_0x1967[44],JSON[_0x1967[31]](_0xf100x18));return _0xf100x23})};return null}}function removeEntity(_0xf100x15,_0xf100x16,_0xf100x17){return function(_0xf100x18){if(_0xf100x18){return _0xf100x18[_0x1967[48]]()[_0x1967[45]](function(){logger[_0x1967[24]](_0x1967[22],_0xf100x17,_0xf100x16,_0x1967[47]);logger[_0x1967[26]](_0x1967[25],_0xf100x17,_0xf100x16,_0x1967[47],JSON[_0x1967[31]](_0xf100x18));_0xf100x15[_0x1967[29]](204)[_0x1967[28]]()})}}}function handleEntityNotFound(_0xf100x15,_0xf100x16,_0xf100x17){return function(_0xf100x18){if(!_0xf100x18){logger[_0x1967[50]](_0x1967[22],_0xf100x17,404,_0x1967[49]);_0xf100x15[_0x1967[29]](404)[_0x1967[28]]();return null};return _0xf100x18}}function handleError(_0xf100x15,_0xf100x16,_0xf100x17){_0xf100x16= _0xf100x16|| 500;return function(_0xf100x27){logger[_0x1967[50]](_0x1967[22],_0xf100x17,_0xf100x16,JSON[_0x1967[31]](_0xf100x27));delete _0xf100x27[_0x1967[51]];_0xf100x15[_0x1967[29]](_0xf100x16)[_0x1967[52]](_0xf100x27)}}exports[_0x1967[53]]= function(_0xf100x28,_0xf100x15){var _0xf100x1b={},_0xf100x29={};_0xf100x29[_0x1967[54]]= _[_0x1967[57]](db[_0x1967[56]][_0x1967[55]]);_0xf100x29[_0x1967[58]]= _[_0x1967[57]](_0xf100x28[_0x1967[58]]);_0xf100x29[_0x1967[59]]= _[_0x1967[60]](_0xf100x29[_0x1967[54]],_0xf100x29[_0x1967[58]]);_0xf100x1b[_0x1967[61]]= _[_0x1967[60]](_0xf100x29[_0x1967[54]],qs[_0x1967[62]](_0xf100x28[_0x1967[58]][_0x1967[62]]));_0xf100x1b[_0x1967[61]]= (_0xf100x1b[_0x1967[61]][_0x1967[63]])?_0xf100x1b[_0x1967[61]]:_0xf100x29[_0x1967[54]];if(!_0xf100x28[_0x1967[58]][_0x1967[65]](_0x1967[64])){_0xf100x1b[_0x1967[35]]= qs[_0x1967[35]](_0xf100x28[_0x1967[58]][_0x1967[35]]);_0xf100x1b[_0x1967[34]]= qs[_0x1967[34]](_0xf100x28[_0x1967[58]][_0x1967[34]])};_0xf100x1b[_0x1967[66]]= qs[_0x1967[67]](_0xf100x28[_0x1967[58]][_0x1967[67]]);_0xf100x1b[_0x1967[68]]= qs[_0x1967[59]](_[_0x1967[69]](_0xf100x28[_0x1967[58]],_0xf100x29[_0x1967[59]]));if(_0xf100x28[_0x1967[58]][_0x1967[70]]){_0xf100x1b[_0x1967[68]]= _[_0x1967[73]](_0xf100x1b[_0x1967[68]],{$or:_[_0x1967[72]](_0xf100x1b[_0x1967[61]],function(_0xf100x2a){var _0xf100x2b={};_0xf100x2b[_0xf100x2a]= {$like:_0x1967[71]+ _0xf100x28[_0x1967[58]][_0x1967[70]]+ _0x1967[71]};return _0xf100x2b})})};_0xf100x1b= _[_0x1967[73]]({},_0xf100x1b,_0xf100x28[_0x1967[74]]);return db[_0x1967[56]][_0x1967[76]](_0xf100x1b)[_0x1967[45]](respondWithFilteredResult(_0xf100x15,_0xf100x1b,_0x1967[53]))[_0x1967[75]](handleError(_0xf100x15,null,_0x1967[53]))};exports[_0x1967[77]]= function(_0xf100x28,_0xf100x15){var _0xf100x1b={raw:true,where:{id:_0xf100x28[_0x1967[79]][_0x1967[78]]}},_0xf100x29={};_0xf100x29[_0x1967[54]]= _[_0x1967[57]](db[_0x1967[56]][_0x1967[55]]);_0xf100x29[_0x1967[58]]= _[_0x1967[57]](_0xf100x28[_0x1967[58]]);_0xf100x29[_0x1967[59]]= _[_0x1967[60]](_0xf100x29[_0x1967[54]],_0xf100x29[_0x1967[58]]);_0xf100x1b[_0x1967[61]]= _[_0x1967[60]](_0xf100x29[_0x1967[54]],qs[_0x1967[62]](_0xf100x28[_0x1967[58]][_0x1967[62]]));_0xf100x1b[_0x1967[61]]= (_0xf100x1b[_0x1967[61]][_0x1967[63]])?_0xf100x1b[_0x1967[61]]:_0xf100x29[_0x1967[54]];_0xf100x1b= _[_0x1967[73]]({},_0xf100x1b,_0xf100x28[_0x1967[74]]);return db[_0x1967[56]][_0x1967[80]](_0xf100x1b)[_0x1967[45]](handleEntityNotFound(_0xf100x15,null,_0x1967[77]))[_0x1967[45]](respondWithResult(_0xf100x15,null,_0x1967[77]))[_0x1967[75]](handleError(_0xf100x15,null,_0x1967[77]))};exports[_0x1967[81]]= function(_0xf100x28,_0xf100x15){return db[_0x1967[56]][_0x1967[81]](_0xf100x28[_0x1967[82]],{})[_0x1967[45]](respondWithResult(_0xf100x15,201,_0x1967[81]))[_0x1967[75]](handleError(_0xf100x15,null,_0x1967[81]))};exports[_0x1967[46]]= function(_0xf100x28,_0xf100x15){if(_0xf100x28[_0x1967[82]][_0x1967[78]]){delete _0xf100x28[_0x1967[82]][_0x1967[78]]};return db[_0x1967[56]][_0x1967[80]]({where:{id:_0xf100x28[_0x1967[79]][_0x1967[78]]}})[_0x1967[45]](handleEntityNotFound(_0xf100x15,null,_0x1967[46]))[_0x1967[45]](saveUpdates(_0xf100x28[_0x1967[82]],null,_0x1967[46]))[_0x1967[45]](respondWithResult(_0xf100x15,null,_0x1967[46]))[_0x1967[75]](handleError(_0xf100x15,null,_0x1967[46]))};exports[_0x1967[48]]= function(_0xf100x28,_0xf100x15){return db[_0x1967[56]][_0x1967[80]]({where:{id:_0xf100x28[_0x1967[79]][_0x1967[78]]}})[_0x1967[45]](handleEntityNotFound(_0xf100x15,null,_0x1967[48]))[_0x1967[45]](removeEntity(_0xf100x15,null,_0x1967[48]))[_0x1967[75]](handleError(_0xf100x15,null,_0x1967[48]))}
\ No newline at end of file
index c2840e1..c0e1727 100644 (file)
@@ -1 +1 @@
-var _0x3df2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x6F\x6F\x6C\x73\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x3df2[0];var _=require(_0x3df2[1]);var util=require(_0x3df2[2]);var logger=require(_0x3df2[4])(_0x3df2[3]);var attributes=require(_0x3df2[5]);module[_0x3df2[6]]= function(_0xaf89x5,_0xaf89x6){return _0xaf89x5[_0x3df2[9]](_0x3df2[7],attributes,{tableName:_0x3df2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xe609=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x6F\x6F\x6C\x73\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xe609[0];var _=require(_0xe609[1]);var util=require(_0xe609[2]);var logger=require(_0xe609[4])(_0xe609[3]);var attributes=require(_0xe609[5]);module[_0xe609[6]]= function(_0xaf69x5,_0xaf69x6){return _0xaf69x5[_0xe609[9]](_0xe609[7],attributes,{tableName:_0xe609[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 494c52f..22c3533 100644 (file)
@@ -1 +1 @@
-var _0x7099=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x65\x6D\x70\x6C\x61\x74\x65"];_0x7099[0];var _=require(_0x7099[1]);var util=require(_0x7099[2]);var moment=require(_0x7099[3]);var BPromise=require(_0x7099[4]);var db=require(_0x7099[6])[_0x7099[5]];var utils=require(_0x7099[7]);var logger=require(_0x7099[9])(_0x7099[8]);var jayson=require(_0x7099[10]);var client=jayson[_0x7099[12]][_0x7099[11]]({port:9002});function respondWithRpcPromise(_0x7ef7xb,_0x7ef7xc,_0x7ef7xd){return  new BPromise(function(_0x7ef7xe,_0x7ef7xf){return client[_0x7099[25]](_0x7ef7xb,_0x7ef7xd)[_0x7099[24]](function(_0x7ef7x11){logger[_0x7099[17]](_0x7099[13],_0x7ef7xc,_0x7099[16]);logger[_0x7099[20]](_0x7099[18],_0x7ef7xc,_0x7099[16],JSON[_0x7099[19]](_0x7ef7x11));if(_0x7ef7x11[_0x7099[14]]){if(_0x7ef7x11[_0x7099[14]][_0x7099[21]]=== 500){logger[_0x7099[14]](_0x7099[13],_0x7ef7xc,_0x7ef7x11[_0x7099[14]][_0x7099[22]]);return _0x7ef7xf(_0x7ef7x11[_0x7099[14]][_0x7099[22]])};logger[_0x7099[14]](_0x7099[13],_0x7ef7xc,_0x7ef7x11[_0x7099[14]][_0x7099[22]]);return _0x7ef7xe(_0x7ef7x11[_0x7099[14]][_0x7099[22]])}else {logger[_0x7099[17]](_0x7099[13],_0x7ef7xc,_0x7099[16]);_0x7ef7xe(_0x7ef7x11[_0x7099[23]][_0x7099[22]])}})[_0x7099[15]](function(_0x7ef7x10){logger[_0x7099[14]](_0x7099[13],_0x7ef7xc,_0x7ef7x10);_0x7ef7xf(_0x7ef7x10)})})}exports[_0x7099[26]]= function(_0x7ef7xd){var _0x7ef7x12=this;return  new Promise(function(_0x7ef7xe,_0x7ef7xf){return db[_0x7099[37]][_0x7099[36]]({raw:_0x7ef7xd[_0x7099[27]]?(_0x7ef7xd[_0x7099[27]][_0x7099[28]]=== undefined)?true:false:true,where:_0x7ef7xd[_0x7099[27]]?_0x7ef7xd[_0x7099[27]][_0x7099[29]]|| null:null,attributes:_0x7ef7xd[_0x7099[27]]?_0x7ef7xd[_0x7099[27]][_0x7099[30]]|| null:null,limit:_0x7ef7xd[_0x7099[27]]?_0x7ef7xd[_0x7099[27]][_0x7099[31]]|| null:null,include:_0x7ef7xd[_0x7099[27]]?(_0x7ef7xd[_0x7099[27]][_0x7099[32]]?_[_0x7099[35]](_0x7ef7xd[_0x7099[27]][_0x7099[32]],function(_0x7ef7x13){return {model:db[_0x7ef7x13[_0x7099[33]]],as:_0x7ef7x13[_0x7099[34]],attributes:_0x7ef7x13[_0x7099[30]],include:_0x7ef7x13[_0x7099[32]]?_[_0x7099[35]](_0x7ef7x13[_0x7099[32]],function(_0x7ef7x14){return {model:db[_0x7ef7x14[_0x7099[33]]],as:_0x7ef7x14[_0x7099[34]],attributes:_0x7ef7x14[_0x7099[30]],include:_0x7ef7x14[_0x7099[32]]?_[_0x7099[35]](_0x7ef7x14[_0x7099[32]],function(_0x7ef7x15){return {model:db[_0x7ef7x15[_0x7099[33]]],as:_0x7ef7x15[_0x7099[34]],attributes:_0x7ef7x15[_0x7099[30]]}}):[]}}):[]}}):[]):[]})[_0x7099[24]](function(_0x7ef7x11){logger[_0x7099[17]](_0x7099[26],_0x7ef7xd);logger[_0x7099[20]](_0x7099[26],_0x7ef7xd,JSON[_0x7099[19]](_0x7ef7x11));_0x7ef7xe(_0x7ef7x11)})[_0x7099[15]](function(_0x7ef7x10){logger[_0x7099[14]](_0x7099[26],_0x7ef7x10[_0x7099[22]],_0x7ef7xd);_0x7ef7xf(_0x7ef7x12[_0x7099[14]](500,_0x7ef7x10[_0x7099[22]]))})})}
\ No newline at end of file
+var _0x3341=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x65\x6D\x70\x6C\x61\x74\x65"];_0x3341[0];var _=require(_0x3341[1]);var util=require(_0x3341[2]);var moment=require(_0x3341[3]);var BPromise=require(_0x3341[4]);var db=require(_0x3341[6])[_0x3341[5]];var utils=require(_0x3341[7]);var logger=require(_0x3341[9])(_0x3341[8]);var jayson=require(_0x3341[10]);var client=jayson[_0x3341[12]][_0x3341[11]]({port:9002});function respondWithRpcPromise(_0x6d58xb,_0x6d58xc,_0x6d58xd){return  new BPromise(function(_0x6d58xe,_0x6d58xf){return client[_0x3341[25]](_0x6d58xb,_0x6d58xd)[_0x3341[24]](function(_0x6d58x11){logger[_0x3341[17]](_0x3341[13],_0x6d58xc,_0x3341[16]);logger[_0x3341[20]](_0x3341[18],_0x6d58xc,_0x3341[16],JSON[_0x3341[19]](_0x6d58x11));if(_0x6d58x11[_0x3341[14]]){if(_0x6d58x11[_0x3341[14]][_0x3341[21]]=== 500){logger[_0x3341[14]](_0x3341[13],_0x6d58xc,_0x6d58x11[_0x3341[14]][_0x3341[22]]);return _0x6d58xf(_0x6d58x11[_0x3341[14]][_0x3341[22]])};logger[_0x3341[14]](_0x3341[13],_0x6d58xc,_0x6d58x11[_0x3341[14]][_0x3341[22]]);return _0x6d58xe(_0x6d58x11[_0x3341[14]][_0x3341[22]])}else {logger[_0x3341[17]](_0x3341[13],_0x6d58xc,_0x3341[16]);_0x6d58xe(_0x6d58x11[_0x3341[23]][_0x3341[22]])}})[_0x3341[15]](function(_0x6d58x10){logger[_0x3341[14]](_0x3341[13],_0x6d58xc,_0x6d58x10);_0x6d58xf(_0x6d58x10)})})}exports[_0x3341[26]]= function(_0x6d58xd){var _0x6d58x12=this;return  new Promise(function(_0x6d58xe,_0x6d58xf){return db[_0x3341[37]][_0x3341[36]]({raw:_0x6d58xd[_0x3341[27]]?(_0x6d58xd[_0x3341[27]][_0x3341[28]]=== undefined)?true:false:true,where:_0x6d58xd[_0x3341[27]]?_0x6d58xd[_0x3341[27]][_0x3341[29]]|| null:null,attributes:_0x6d58xd[_0x3341[27]]?_0x6d58xd[_0x3341[27]][_0x3341[30]]|| null:null,limit:_0x6d58xd[_0x3341[27]]?_0x6d58xd[_0x3341[27]][_0x3341[31]]|| null:null,include:_0x6d58xd[_0x3341[27]]?(_0x6d58xd[_0x3341[27]][_0x3341[32]]?_[_0x3341[35]](_0x6d58xd[_0x3341[27]][_0x3341[32]],function(_0x6d58x13){return {model:db[_0x6d58x13[_0x3341[33]]],as:_0x6d58x13[_0x3341[34]],attributes:_0x6d58x13[_0x3341[30]],include:_0x6d58x13[_0x3341[32]]?_[_0x3341[35]](_0x6d58x13[_0x3341[32]],function(_0x6d58x14){return {model:db[_0x6d58x14[_0x3341[33]]],as:_0x6d58x14[_0x3341[34]],attributes:_0x6d58x14[_0x3341[30]],include:_0x6d58x14[_0x3341[32]]?_[_0x3341[35]](_0x6d58x14[_0x3341[32]],function(_0x6d58x15){return {model:db[_0x6d58x15[_0x3341[33]]],as:_0x6d58x15[_0x3341[34]],attributes:_0x6d58x15[_0x3341[30]]}}):[]}}):[]}}):[]):[]})[_0x3341[24]](function(_0x6d58x11){logger[_0x3341[17]](_0x3341[26],_0x6d58xd);logger[_0x3341[20]](_0x3341[26],_0x6d58xd,JSON[_0x3341[19]](_0x6d58x11));_0x6d58xe(_0x6d58x11)})[_0x3341[15]](function(_0x6d58x10){logger[_0x3341[14]](_0x3341[26],_0x6d58x10[_0x3341[22]],_0x6d58xd);_0x6d58xf(_0x6d58x12[_0x3341[14]](500,_0x6d58x10[_0x3341[22]]))})})}
\ No newline at end of file
index 479a9f1..5410295 100644 (file)
@@ -1 +1 @@
-var _0x2378=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x6C\x6C\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x6E\x79\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2378[0];var multer=require(_0x2378[1]);var util=require(_0x2378[2]);var path=require(_0x2378[3]);var express=require(_0x2378[4]);var router=express.Router();var auth=require(_0x2378[5]);var config=require(_0x2378[6]);var controller=require(_0x2378[7]);router[_0x2378[11]](_0x2378[8],auth[_0x2378[9]](),controller[_0x2378[10]]);router[_0x2378[11]](_0x2378[12],auth[_0x2378[9]](),controller[_0x2378[13]]);router[_0x2378[11]](_0x2378[14],auth[_0x2378[9]](),controller[_0x2378[15]]);router[_0x2378[11]](_0x2378[16],auth[_0x2378[9]](),controller[_0x2378[17]]);router[_0x2378[11]](_0x2378[18],auth[_0x2378[9]](),controller[_0x2378[19]]);router[_0x2378[21]](_0x2378[8],auth[_0x2378[9]](),controller[_0x2378[20]]);router[_0x2378[21]](_0x2378[14],auth[_0x2378[9]](),controller[_0x2378[22]]);router[_0x2378[21]](_0x2378[16],auth[_0x2378[9]](),controller[_0x2378[23]]);router[_0x2378[21]](_0x2378[18],auth[_0x2378[9]](),controller[_0x2378[24]]);router[_0x2378[26]](_0x2378[12],auth[_0x2378[9]](),controller[_0x2378[25]]);router[_0x2378[28]](_0x2378[12],auth[_0x2378[9]](),controller[_0x2378[27]]);module[_0x2378[29]]= router
\ No newline at end of file
+var _0x5b36=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x6C\x6C\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x6E\x79\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5b36[0];var multer=require(_0x5b36[1]);var util=require(_0x5b36[2]);var path=require(_0x5b36[3]);var express=require(_0x5b36[4]);var router=express.Router();var auth=require(_0x5b36[5]);var config=require(_0x5b36[6]);var controller=require(_0x5b36[7]);router[_0x5b36[11]](_0x5b36[8],auth[_0x5b36[9]](),controller[_0x5b36[10]]);router[_0x5b36[11]](_0x5b36[12],auth[_0x5b36[9]](),controller[_0x5b36[13]]);router[_0x5b36[11]](_0x5b36[14],auth[_0x5b36[9]](),controller[_0x5b36[15]]);router[_0x5b36[11]](_0x5b36[16],auth[_0x5b36[9]](),controller[_0x5b36[17]]);router[_0x5b36[11]](_0x5b36[18],auth[_0x5b36[9]](),controller[_0x5b36[19]]);router[_0x5b36[21]](_0x5b36[8],auth[_0x5b36[9]](),controller[_0x5b36[20]]);router[_0x5b36[21]](_0x5b36[14],auth[_0x5b36[9]](),controller[_0x5b36[22]]);router[_0x5b36[21]](_0x5b36[16],auth[_0x5b36[9]](),controller[_0x5b36[23]]);router[_0x5b36[21]](_0x5b36[18],auth[_0x5b36[9]](),controller[_0x5b36[24]]);router[_0x5b36[26]](_0x5b36[12],auth[_0x5b36[9]](),controller[_0x5b36[25]]);router[_0x5b36[28]](_0x5b36[12],auth[_0x5b36[9]](),controller[_0x5b36[27]]);module[_0x5b36[29]]= router
\ No newline at end of file
index 1ea5635..11634b5 100644 (file)
@@ -1 +1 @@
-var _0x6f46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6f46[0];var Sequelize=require(_0x6f46[1]);module[_0x6f46[2]]= {name:{type:Sequelize[_0x6f46[3]]},channel:{type:Sequelize[_0x6f46[3]]},description:{type:Sequelize[_0x6f46[3]]},status:{type:Sequelize[_0x6f46[4]],defaultValue:false}}
\ No newline at end of file
+var _0xa9b0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xa9b0[0];var Sequelize=require(_0xa9b0[1]);module[_0xa9b0[2]]= {name:{type:Sequelize[_0xa9b0[3]]},channel:{type:Sequelize[_0xa9b0[3]]},description:{type:Sequelize[_0xa9b0[3]]},status:{type:Sequelize[_0xa9b0[4]],defaultValue:false}}
\ No newline at end of file
index 7e313fb..509ad2c 100644 (file)
@@ -1 +1 @@
-var _0xaf9d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x72\x69\x67\x67\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73"];_0xaf9d[0];var jsonpatch=require(_0xaf9d[1]);var rp=require(_0xaf9d[2]);var moment=require(_0xaf9d[3]);var BPromise=require(_0xaf9d[4]);var util=require(_0xaf9d[5]);var path=require(_0xaf9d[6]);var sox=require(_0xaf9d[7]);var ejs=require(_0xaf9d[8]);var fs=require(_0xaf9d[9]);var _=require(_0xaf9d[10]);var squel=require(_0xaf9d[11]);var crypto=require(_0xaf9d[12]);var jsforce=require(_0xaf9d[13]);var toCsv=require(_0xaf9d[14]);var qs=require(_0xaf9d[15]);var logger=require(_0xaf9d[17])(_0xaf9d[16]);var utils=require(_0xaf9d[18]);var config=require(_0xaf9d[19]);var db=require(_0xaf9d[21])[_0xaf9d[20]];function respondWithStatusCode(_0x2311x15,_0x2311x16,_0x2311x17){_0x2311x16= _0x2311x16|| 204;return function(_0x2311x18){if(_0x2311x18){logger[_0xaf9d[24]](_0xaf9d[22],_0x2311x17,_0x2311x16,_0xaf9d[23]);logger[_0xaf9d[26]](_0xaf9d[25],_0x2311x17,_0x2311x16,_0xaf9d[23]);return _0x2311x15[_0xaf9d[27]](_0x2311x16)};return _0x2311x15[_0xaf9d[29]](304)[_0xaf9d[28]]()}}function respondWithResult(_0x2311x15,_0x2311x16,_0x2311x17){_0x2311x16= _0x2311x16|| 200;return function(_0x2311x18){if(_0x2311x18){logger[_0xaf9d[24]](_0xaf9d[22],_0x2311x17,_0x2311x16,_0xaf9d[30]);logger[_0xaf9d[26]](_0xaf9d[25],_0x2311x17,_0x2311x16,_0xaf9d[30],JSON[_0xaf9d[31]](_0x2311x18));return _0x2311x15[_0xaf9d[29]](_0x2311x16)[_0xaf9d[32]](_0x2311x18)};return _0x2311x15[_0xaf9d[29]](304)[_0xaf9d[28]]()}}function respondWithFilteredResult(_0x2311x15,_0x2311x1b,_0x2311x17){return function(_0x2311x18){if(_0x2311x18){var _0x2311x1c=_0x2311x18[_0xaf9d[33]],_0x2311x1d=_0x2311x1b[_0xaf9d[34]],_0x2311x1e=_0x2311x1b[_0xaf9d[34]]+ _0x2311x1b[_0xaf9d[35]],_0x2311x16;if(_0x2311x1e>= _0x2311x1c){_0x2311x1e= _0x2311x1c;_0x2311x16= 200}else {_0x2311x16= 206};_0x2311x15[_0xaf9d[29]](_0x2311x16);logger[_0xaf9d[24]](_0xaf9d[22],_0x2311x17,_0x2311x16,_0xaf9d[36]);logger[_0xaf9d[26]](_0xaf9d[25],_0x2311x17,_0x2311x16,_0xaf9d[30],JSON[_0xaf9d[31]](_0x2311x18));return _0x2311x15[_0xaf9d[40]](_0xaf9d[37],_0x2311x1d+ _0xaf9d[38]+ _0x2311x1e+ _0xaf9d[39]+ _0x2311x1c)[_0xaf9d[32]](_0x2311x18)};return null}}function patchUpdates(_0x2311x20){return function(_0x2311x18){try{jsonpatch[_0xaf9d[41]](_0x2311x18,_0x2311x20,true)}catch(err){return BPromise[_0xaf9d[42]](err)};return _0x2311x18[_0xaf9d[43]]()}}function saveUpdates(_0x2311x22,_0x2311x16,_0x2311x17){return function(_0x2311x18){if(_0x2311x18){return _0x2311x18[_0xaf9d[46]](_0x2311x22)[_0xaf9d[45]](function(_0x2311x23){logger[_0xaf9d[24]](_0xaf9d[22],_0x2311x17,_0x2311x16,_0xaf9d[44]);logger[_0xaf9d[26]](_0xaf9d[25],_0x2311x17,_0x2311x16,_0xaf9d[44],JSON[_0xaf9d[31]](_0x2311x18));return _0x2311x23})};return null}}function removeEntity(_0x2311x15,_0x2311x16,_0x2311x17){return function(_0x2311x18){if(_0x2311x18){return _0x2311x18[_0xaf9d[48]]()[_0xaf9d[45]](function(){logger[_0xaf9d[24]](_0xaf9d[22],_0x2311x17,_0x2311x16,_0xaf9d[47]);logger[_0xaf9d[26]](_0xaf9d[25],_0x2311x17,_0x2311x16,_0xaf9d[47],JSON[_0xaf9d[31]](_0x2311x18));_0x2311x15[_0xaf9d[29]](204)[_0xaf9d[28]]()})}}}function handleEntityNotFound(_0x2311x15,_0x2311x16,_0x2311x17){return function(_0x2311x18){if(!_0x2311x18){logger[_0xaf9d[50]](_0xaf9d[22],_0x2311x17,404,_0xaf9d[49]);_0x2311x15[_0xaf9d[29]](404)[_0xaf9d[28]]();return null};return _0x2311x18}}function handleError(_0x2311x15,_0x2311x16,_0x2311x17){_0x2311x16= _0x2311x16|| 500;return function(_0x2311x27){logger[_0xaf9d[50]](_0xaf9d[22],_0x2311x17,_0x2311x16,JSON[_0xaf9d[31]](_0x2311x27));delete _0x2311x27[_0xaf9d[51]];_0x2311x15[_0xaf9d[29]](_0x2311x16)[_0xaf9d[52]](_0x2311x27)}}exports[_0xaf9d[53]]= function(_0x2311x28,_0x2311x15){var _0x2311x1b={},_0x2311x29={};_0x2311x29[_0xaf9d[54]]= _[_0xaf9d[57]](db[_0xaf9d[56]][_0xaf9d[55]]);_0x2311x29[_0xaf9d[58]]= _[_0xaf9d[57]](_0x2311x28[_0xaf9d[58]]);_0x2311x29[_0xaf9d[59]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],_0x2311x29[_0xaf9d[58]]);_0x2311x1b[_0xaf9d[61]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],qs[_0xaf9d[62]](_0x2311x28[_0xaf9d[58]][_0xaf9d[62]]));_0x2311x1b[_0xaf9d[61]]= (_0x2311x1b[_0xaf9d[61]][_0xaf9d[63]])?_0x2311x1b[_0xaf9d[61]]:_0x2311x29[_0xaf9d[54]];if(!_0x2311x28[_0xaf9d[58]][_0xaf9d[65]](_0xaf9d[64])){_0x2311x1b[_0xaf9d[35]]= qs[_0xaf9d[35]](_0x2311x28[_0xaf9d[58]][_0xaf9d[35]]);_0x2311x1b[_0xaf9d[34]]= qs[_0xaf9d[34]](_0x2311x28[_0xaf9d[58]][_0xaf9d[34]])};_0x2311x1b[_0xaf9d[66]]= qs[_0xaf9d[67]](_0x2311x28[_0xaf9d[58]][_0xaf9d[67]]);_0x2311x1b[_0xaf9d[68]]= qs[_0xaf9d[59]](_[_0xaf9d[69]](_0x2311x28[_0xaf9d[58]],_0x2311x29[_0xaf9d[59]]));if(_0x2311x28[_0xaf9d[58]][_0xaf9d[70]]){_0x2311x1b[_0xaf9d[68]]= _[_0xaf9d[73]](_0x2311x1b[_0xaf9d[68]],{$or:_[_0xaf9d[72]](_0x2311x1b[_0xaf9d[61]],function(_0x2311x2a){var _0x2311x2b={};_0x2311x2b[_0x2311x2a]= {$like:_0xaf9d[71]+ _0x2311x28[_0xaf9d[58]][_0xaf9d[70]]+ _0xaf9d[71]};return _0x2311x2b})})};_0x2311x1b= _[_0xaf9d[73]]({},_0x2311x1b,_0x2311x28[_0xaf9d[74]]);return db[_0xaf9d[56]][_0xaf9d[76]](_0x2311x1b)[_0xaf9d[45]](respondWithFilteredResult(_0x2311x15,_0x2311x1b,_0xaf9d[53]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[53]))};exports[_0xaf9d[77]]= function(_0x2311x28,_0x2311x15){var _0x2311x1b={raw:false,where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}},_0x2311x29={};_0x2311x29[_0xaf9d[54]]= _[_0xaf9d[57]](db[_0xaf9d[56]][_0xaf9d[55]]);_0x2311x29[_0xaf9d[58]]= _[_0xaf9d[57]](_0x2311x28[_0xaf9d[58]]);_0x2311x29[_0xaf9d[59]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],_0x2311x29[_0xaf9d[58]]);_0x2311x1b[_0xaf9d[61]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],qs[_0xaf9d[62]](_0x2311x28[_0xaf9d[58]][_0xaf9d[62]]));_0x2311x1b[_0xaf9d[61]]= (_0x2311x1b[_0xaf9d[61]][_0xaf9d[63]])?_0x2311x1b[_0xaf9d[61]]:_0x2311x29[_0xaf9d[54]];_0x2311x1b= _[_0xaf9d[73]]({},_0x2311x1b,_0x2311x28[_0xaf9d[74]]);return db[_0xaf9d[56]][_0xaf9d[80]](_0x2311x1b)[_0xaf9d[45]](handleEntityNotFound(_0x2311x15,null,_0xaf9d[77]))[_0xaf9d[45]](respondWithResult(_0x2311x15,null,_0xaf9d[77]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[77]))};exports[_0xaf9d[81]]= function(_0x2311x28,_0x2311x15){return db[_0xaf9d[56]][_0xaf9d[81]](_0x2311x28[_0xaf9d[82]],{})[_0xaf9d[45]](respondWithResult(_0x2311x15,201,_0xaf9d[81]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[81]))};exports[_0xaf9d[46]]= function(_0x2311x28,_0x2311x15){if(_0x2311x28[_0xaf9d[82]][_0xaf9d[78]]){delete _0x2311x28[_0xaf9d[82]][_0xaf9d[78]]};return db[_0xaf9d[56]][_0xaf9d[80]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x15,null,_0xaf9d[46]))[_0xaf9d[45]](saveUpdates(_0x2311x28[_0xaf9d[82]],null,_0xaf9d[46]))[_0xaf9d[45]](respondWithResult(_0x2311x15,null,_0xaf9d[46]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[46]))};exports[_0xaf9d[48]]= function(_0x2311x28,_0x2311x15){return db[_0xaf9d[56]][_0xaf9d[80]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x15,null,_0xaf9d[48]))[_0xaf9d[45]](removeEntity(_0x2311x15,null,_0xaf9d[48]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[48]))};exports[_0xaf9d[83]]= function(_0x2311x28,_0x2311x15,_0x2311x2c){if(_0x2311x28[_0xaf9d[82]][_0xaf9d[78]]){delete _0x2311x28[_0xaf9d[82]][_0xaf9d[78]]};return db[_0xaf9d[56]][_0xaf9d[80]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x15,null,_0xaf9d[83]))[_0xaf9d[45]](function(_0x2311x18){if(_0x2311x18){_0x2311x28[_0xaf9d[82]][_0xaf9d[84]]= _0x2311x18[_0xaf9d[78]];return db[_0xaf9d[85]][_0xaf9d[81]](_0x2311x28[_0xaf9d[82]])}})[_0xaf9d[45]](respondWithResult(_0x2311x15,null,_0xaf9d[83]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[83]))};exports[_0xaf9d[86]]= function(_0x2311x28,_0x2311x15,_0x2311x2c){if(_0x2311x28[_0xaf9d[82]][_0xaf9d[78]]){delete _0x2311x28[_0xaf9d[82]][_0xaf9d[78]]};return db[_0xaf9d[56]][_0xaf9d[80]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x15,null,_0xaf9d[86]))[_0xaf9d[45]](function(_0x2311x18){if(_0x2311x18){_0x2311x28[_0xaf9d[82]][_0xaf9d[87]]= _0x2311x18[_0xaf9d[78]];return db[_0xaf9d[85]][_0xaf9d[81]](_0x2311x28[_0xaf9d[82]])}})[_0xaf9d[45]](respondWithResult(_0x2311x15,null,_0xaf9d[86]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[86]))};exports[_0xaf9d[88]]= function(_0x2311x28,_0x2311x18,_0x2311x2c){var _0x2311x1b={};var _0x2311x29={};var _0x2311x2d;var _0x2311x1c;return db[_0xaf9d[56]][_0xaf9d[89]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x18,null,_0xaf9d[88]))[_0xaf9d[45]](function(_0x2311x18){if(_0x2311x18){_0x2311x2d= _0x2311x18;_0x2311x29[_0xaf9d[54]]= _[_0xaf9d[57]](db[_0xaf9d[85]][_0xaf9d[55]]);_0x2311x29[_0xaf9d[58]]= _[_0xaf9d[57]](_0x2311x28[_0xaf9d[58]]);_0x2311x29[_0xaf9d[59]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],_0x2311x29[_0xaf9d[58]]);_0x2311x1b[_0xaf9d[61]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],qs[_0xaf9d[62]](_0x2311x28[_0xaf9d[58]][_0xaf9d[62]]));_0x2311x1b[_0xaf9d[61]]= (_0x2311x1b[_0xaf9d[61]][_0xaf9d[63]])?_0x2311x1b[_0xaf9d[61]]:_0x2311x29[_0xaf9d[54]];_0x2311x1b[_0xaf9d[66]]= qs[_0xaf9d[67]](_0x2311x28[_0xaf9d[58]][_0xaf9d[67]]);_0x2311x1b[_0xaf9d[68]]= qs[_0xaf9d[59]](_[_0xaf9d[69]](_0x2311x28[_0xaf9d[58]],_0x2311x29[_0xaf9d[59]]));if(_0x2311x28[_0xaf9d[58]][_0xaf9d[70]]){_0x2311x1b[_0xaf9d[68]]= _[_0xaf9d[73]](_0x2311x1b[_0xaf9d[68]],{$or:_[_0xaf9d[72]](_0x2311x1b[_0xaf9d[61]],function(_0x2311x2a){var _0x2311x2b={};_0x2311x2b[_0x2311x2a]= {$like:_0xaf9d[71]+ _0x2311x28[_0xaf9d[58]][_0xaf9d[70]]+ _0xaf9d[71]};return _0x2311x2b})})};_0x2311x1b= _[_0xaf9d[73]]({},_0x2311x1b,_0x2311x28[_0xaf9d[74]]);return _0x2311x2d[_0xaf9d[88]](_0x2311x1b)}})[_0xaf9d[45]](function(_0x2311x2f){if(_0x2311x2f){_0x2311x1c= _0x2311x2f[_0xaf9d[63]];if(!_0x2311x28[_0xaf9d[58]][_0xaf9d[65]](_0xaf9d[64])){_0x2311x1b[_0xaf9d[35]]= qs[_0xaf9d[35]](_0x2311x28[_0xaf9d[58]][_0xaf9d[35]]);_0x2311x1b[_0xaf9d[34]]= qs[_0xaf9d[34]](_0x2311x28[_0xaf9d[58]][_0xaf9d[34]])};return _0x2311x2d[_0xaf9d[88]](_0x2311x1b)}})[_0xaf9d[45]](function(_0x2311x2e){return _0x2311x2e?{count:_0x2311x1c,rows:_0x2311x2e}:null})[_0xaf9d[45]](respondWithResult(_0x2311x18,null,_0xaf9d[88]))[_0xaf9d[75]](handleError(_0x2311x18,null,_0xaf9d[88]))};exports[_0xaf9d[90]]= function(_0x2311x28,_0x2311x18,_0x2311x2c){var _0x2311x1b={};var _0x2311x29={};var _0x2311x2d;var _0x2311x1c;return db[_0xaf9d[56]][_0xaf9d[89]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x18,null,_0xaf9d[90]))[_0xaf9d[45]](function(_0x2311x18){if(_0x2311x18){_0x2311x2d= _0x2311x18;_0x2311x29[_0xaf9d[54]]= _[_0xaf9d[57]](db[_0xaf9d[85]][_0xaf9d[55]]);_0x2311x29[_0xaf9d[58]]= _[_0xaf9d[57]](_0x2311x28[_0xaf9d[58]]);_0x2311x29[_0xaf9d[59]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],_0x2311x29[_0xaf9d[58]]);_0x2311x1b[_0xaf9d[61]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],qs[_0xaf9d[62]](_0x2311x28[_0xaf9d[58]][_0xaf9d[62]]));_0x2311x1b[_0xaf9d[61]]= (_0x2311x1b[_0xaf9d[61]][_0xaf9d[63]])?_0x2311x1b[_0xaf9d[61]]:_0x2311x29[_0xaf9d[54]];_0x2311x1b[_0xaf9d[66]]= qs[_0xaf9d[67]](_0x2311x28[_0xaf9d[58]][_0xaf9d[67]]);_0x2311x1b[_0xaf9d[68]]= qs[_0xaf9d[59]](_[_0xaf9d[69]](_0x2311x28[_0xaf9d[58]],_0x2311x29[_0xaf9d[59]]));if(_0x2311x28[_0xaf9d[58]][_0xaf9d[70]]){_0x2311x1b[_0xaf9d[68]]= _[_0xaf9d[73]](_0x2311x1b[_0xaf9d[68]],{$or:_[_0xaf9d[72]](_0x2311x1b[_0xaf9d[61]],function(_0x2311x2a){var _0x2311x2b={};_0x2311x2b[_0x2311x2a]= {$like:_0xaf9d[71]+ _0x2311x28[_0xaf9d[58]][_0xaf9d[70]]+ _0xaf9d[71]};return _0x2311x2b})})};_0x2311x1b= _[_0xaf9d[73]]({},_0x2311x1b,_0x2311x28[_0xaf9d[74]]);return _0x2311x2d[_0xaf9d[90]](_0x2311x1b)}})[_0xaf9d[45]](function(_0x2311x2f){if(_0x2311x2f){_0x2311x1c= _0x2311x2f[_0xaf9d[63]];if(!_0x2311x28[_0xaf9d[58]][_0xaf9d[65]](_0xaf9d[64])){_0x2311x1b[_0xaf9d[35]]= qs[_0xaf9d[35]](_0x2311x28[_0xaf9d[58]][_0xaf9d[35]]);_0x2311x1b[_0xaf9d[34]]= qs[_0xaf9d[34]](_0x2311x28[_0xaf9d[58]][_0xaf9d[34]])};return _0x2311x2d[_0xaf9d[90]](_0x2311x1b)}})[_0xaf9d[45]](function(_0x2311x2e){return _0x2311x2e?{count:_0x2311x1c,rows:_0x2311x2e}:null})[_0xaf9d[45]](respondWithResult(_0x2311x18,null,_0xaf9d[90]))[_0xaf9d[75]](handleError(_0x2311x18,null,_0xaf9d[90]))};exports[_0xaf9d[91]]= function(_0x2311x28,_0x2311x15,_0x2311x2c){if(_0x2311x28[_0xaf9d[82]][_0xaf9d[78]]){delete _0x2311x28[_0xaf9d[82]][_0xaf9d[78]]};return db[_0xaf9d[56]][_0xaf9d[80]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x15,null,_0xaf9d[91]))[_0xaf9d[45]](function(_0x2311x18){if(_0x2311x18){_0x2311x28[_0xaf9d[82]][_0xaf9d[92]]= _0x2311x18[_0xaf9d[78]];return db[_0xaf9d[93]][_0xaf9d[81]](_0x2311x28[_0xaf9d[82]])}})[_0xaf9d[45]](respondWithResult(_0x2311x15,null,_0xaf9d[91]))[_0xaf9d[75]](handleError(_0x2311x15,null,_0xaf9d[91]))};exports[_0xaf9d[94]]= function(_0x2311x28,_0x2311x18,_0x2311x2c){var _0x2311x1b={};var _0x2311x29={};var _0x2311x2d;var _0x2311x1c;return db[_0xaf9d[56]][_0xaf9d[89]]({where:{id:_0x2311x28[_0xaf9d[79]][_0xaf9d[78]]}})[_0xaf9d[45]](handleEntityNotFound(_0x2311x18,null,_0xaf9d[94]))[_0xaf9d[45]](function(_0x2311x18){if(_0x2311x18){_0x2311x2d= _0x2311x18;_0x2311x29[_0xaf9d[54]]= _[_0xaf9d[57]](db[_0xaf9d[93]][_0xaf9d[55]]);_0x2311x29[_0xaf9d[58]]= _[_0xaf9d[57]](_0x2311x28[_0xaf9d[58]]);_0x2311x29[_0xaf9d[59]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],_0x2311x29[_0xaf9d[58]]);_0x2311x1b[_0xaf9d[61]]= _[_0xaf9d[60]](_0x2311x29[_0xaf9d[54]],qs[_0xaf9d[62]](_0x2311x28[_0xaf9d[58]][_0xaf9d[62]]));_0x2311x1b[_0xaf9d[61]]= (_0x2311x1b[_0xaf9d[61]][_0xaf9d[63]])?_0x2311x1b[_0xaf9d[61]]:_0x2311x29[_0xaf9d[54]];_0x2311x1b[_0xaf9d[66]]= qs[_0xaf9d[67]](_0x2311x28[_0xaf9d[58]][_0xaf9d[67]]);_0x2311x1b[_0xaf9d[68]]= qs[_0xaf9d[59]](_[_0xaf9d[69]](_0x2311x28[_0xaf9d[58]],_0x2311x29[_0xaf9d[59]]));if(_0x2311x28[_0xaf9d[58]][_0xaf9d[70]]){_0x2311x1b[_0xaf9d[68]]= _[_0xaf9d[73]](_0x2311x1b[_0xaf9d[68]],{$or:_[_0xaf9d[72]](_0x2311x1b[_0xaf9d[61]],function(_0x2311x2a){var _0x2311x2b={};_0x2311x2b[_0x2311x2a]= {$like:_0xaf9d[71]+ _0x2311x28[_0xaf9d[58]][_0xaf9d[70]]+ _0xaf9d[71]};return _0x2311x2b})})};_0x2311x1b= _[_0xaf9d[73]]({},_0x2311x1b,_0x2311x28[_0xaf9d[74]]);return _0x2311x2d[_0xaf9d[94]](_0x2311x1b)}})[_0xaf9d[45]](function(_0x2311x2f){if(_0x2311x2f){_0x2311x1c= _0x2311x2f[_0xaf9d[63]];if(!_0x2311x28[_0xaf9d[58]][_0xaf9d[65]](_0xaf9d[64])){_0x2311x1b[_0xaf9d[35]]= qs[_0xaf9d[35]](_0x2311x28[_0xaf9d[58]][_0xaf9d[35]]);_0x2311x1b[_0xaf9d[34]]= qs[_0xaf9d[34]](_0x2311x28[_0xaf9d[58]][_0xaf9d[34]])};return _0x2311x2d[_0xaf9d[94]](_0x2311x1b)}})[_0xaf9d[45]](function(_0x2311x2e){return _0x2311x2e?{count:_0x2311x1c,rows:_0x2311x2e}:null})[_0xaf9d[45]](respondWithResult(_0x2311x18,null,_0xaf9d[94]))[_0xaf9d[75]](handleError(_0x2311x18,null,_0xaf9d[94]))}
\ No newline at end of file
+var _0x7051=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x72\x69\x67\x67\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73"];_0x7051[0];var jsonpatch=require(_0x7051[1]);var rp=require(_0x7051[2]);var moment=require(_0x7051[3]);var BPromise=require(_0x7051[4]);var util=require(_0x7051[5]);var path=require(_0x7051[6]);var sox=require(_0x7051[7]);var ejs=require(_0x7051[8]);var fs=require(_0x7051[9]);var _=require(_0x7051[10]);var squel=require(_0x7051[11]);var crypto=require(_0x7051[12]);var jsforce=require(_0x7051[13]);var toCsv=require(_0x7051[14]);var qs=require(_0x7051[15]);var logger=require(_0x7051[17])(_0x7051[16]);var utils=require(_0x7051[18]);var config=require(_0x7051[19]);var db=require(_0x7051[21])[_0x7051[20]];function respondWithStatusCode(_0xd011x15,_0xd011x16,_0xd011x17){_0xd011x16= _0xd011x16|| 204;return function(_0xd011x18){if(_0xd011x18){logger[_0x7051[24]](_0x7051[22],_0xd011x17,_0xd011x16,_0x7051[23]);logger[_0x7051[26]](_0x7051[25],_0xd011x17,_0xd011x16,_0x7051[23]);return _0xd011x15[_0x7051[27]](_0xd011x16)};return _0xd011x15[_0x7051[29]](304)[_0x7051[28]]()}}function respondWithResult(_0xd011x15,_0xd011x16,_0xd011x17){_0xd011x16= _0xd011x16|| 200;return function(_0xd011x18){if(_0xd011x18){logger[_0x7051[24]](_0x7051[22],_0xd011x17,_0xd011x16,_0x7051[30]);logger[_0x7051[26]](_0x7051[25],_0xd011x17,_0xd011x16,_0x7051[30],JSON[_0x7051[31]](_0xd011x18));return _0xd011x15[_0x7051[29]](_0xd011x16)[_0x7051[32]](_0xd011x18)};return _0xd011x15[_0x7051[29]](304)[_0x7051[28]]()}}function respondWithFilteredResult(_0xd011x15,_0xd011x1b,_0xd011x17){return function(_0xd011x18){if(_0xd011x18){var _0xd011x1c=_0xd011x18[_0x7051[33]],_0xd011x1d=_0xd011x1b[_0x7051[34]],_0xd011x1e=_0xd011x1b[_0x7051[34]]+ _0xd011x1b[_0x7051[35]],_0xd011x16;if(_0xd011x1e>= _0xd011x1c){_0xd011x1e= _0xd011x1c;_0xd011x16= 200}else {_0xd011x16= 206};_0xd011x15[_0x7051[29]](_0xd011x16);logger[_0x7051[24]](_0x7051[22],_0xd011x17,_0xd011x16,_0x7051[36]);logger[_0x7051[26]](_0x7051[25],_0xd011x17,_0xd011x16,_0x7051[30],JSON[_0x7051[31]](_0xd011x18));return _0xd011x15[_0x7051[40]](_0x7051[37],_0xd011x1d+ _0x7051[38]+ _0xd011x1e+ _0x7051[39]+ _0xd011x1c)[_0x7051[32]](_0xd011x18)};return null}}function patchUpdates(_0xd011x20){return function(_0xd011x18){try{jsonpatch[_0x7051[41]](_0xd011x18,_0xd011x20,true)}catch(err){return BPromise[_0x7051[42]](err)};return _0xd011x18[_0x7051[43]]()}}function saveUpdates(_0xd011x22,_0xd011x16,_0xd011x17){return function(_0xd011x18){if(_0xd011x18){return _0xd011x18[_0x7051[46]](_0xd011x22)[_0x7051[45]](function(_0xd011x23){logger[_0x7051[24]](_0x7051[22],_0xd011x17,_0xd011x16,_0x7051[44]);logger[_0x7051[26]](_0x7051[25],_0xd011x17,_0xd011x16,_0x7051[44],JSON[_0x7051[31]](_0xd011x18));return _0xd011x23})};return null}}function removeEntity(_0xd011x15,_0xd011x16,_0xd011x17){return function(_0xd011x18){if(_0xd011x18){return _0xd011x18[_0x7051[48]]()[_0x7051[45]](function(){logger[_0x7051[24]](_0x7051[22],_0xd011x17,_0xd011x16,_0x7051[47]);logger[_0x7051[26]](_0x7051[25],_0xd011x17,_0xd011x16,_0x7051[47],JSON[_0x7051[31]](_0xd011x18));_0xd011x15[_0x7051[29]](204)[_0x7051[28]]()})}}}function handleEntityNotFound(_0xd011x15,_0xd011x16,_0xd011x17){return function(_0xd011x18){if(!_0xd011x18){logger[_0x7051[50]](_0x7051[22],_0xd011x17,404,_0x7051[49]);_0xd011x15[_0x7051[29]](404)[_0x7051[28]]();return null};return _0xd011x18}}function handleError(_0xd011x15,_0xd011x16,_0xd011x17){_0xd011x16= _0xd011x16|| 500;return function(_0xd011x27){logger[_0x7051[50]](_0x7051[22],_0xd011x17,_0xd011x16,JSON[_0x7051[31]](_0xd011x27));delete _0xd011x27[_0x7051[51]];_0xd011x15[_0x7051[29]](_0xd011x16)[_0x7051[52]](_0xd011x27)}}exports[_0x7051[53]]= function(_0xd011x28,_0xd011x15){var _0xd011x1b={},_0xd011x29={};_0xd011x29[_0x7051[54]]= _[_0x7051[57]](db[_0x7051[56]][_0x7051[55]]);_0xd011x29[_0x7051[58]]= _[_0x7051[57]](_0xd011x28[_0x7051[58]]);_0xd011x29[_0x7051[59]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],_0xd011x29[_0x7051[58]]);_0xd011x1b[_0x7051[61]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],qs[_0x7051[62]](_0xd011x28[_0x7051[58]][_0x7051[62]]));_0xd011x1b[_0x7051[61]]= (_0xd011x1b[_0x7051[61]][_0x7051[63]])?_0xd011x1b[_0x7051[61]]:_0xd011x29[_0x7051[54]];if(!_0xd011x28[_0x7051[58]][_0x7051[65]](_0x7051[64])){_0xd011x1b[_0x7051[35]]= qs[_0x7051[35]](_0xd011x28[_0x7051[58]][_0x7051[35]]);_0xd011x1b[_0x7051[34]]= qs[_0x7051[34]](_0xd011x28[_0x7051[58]][_0x7051[34]])};_0xd011x1b[_0x7051[66]]= qs[_0x7051[67]](_0xd011x28[_0x7051[58]][_0x7051[67]]);_0xd011x1b[_0x7051[68]]= qs[_0x7051[59]](_[_0x7051[69]](_0xd011x28[_0x7051[58]],_0xd011x29[_0x7051[59]]));if(_0xd011x28[_0x7051[58]][_0x7051[70]]){_0xd011x1b[_0x7051[68]]= _[_0x7051[73]](_0xd011x1b[_0x7051[68]],{$or:_[_0x7051[72]](_0xd011x1b[_0x7051[61]],function(_0xd011x2a){var _0xd011x2b={};_0xd011x2b[_0xd011x2a]= {$like:_0x7051[71]+ _0xd011x28[_0x7051[58]][_0x7051[70]]+ _0x7051[71]};return _0xd011x2b})})};_0xd011x1b= _[_0x7051[73]]({},_0xd011x1b,_0xd011x28[_0x7051[74]]);return db[_0x7051[56]][_0x7051[76]](_0xd011x1b)[_0x7051[45]](respondWithFilteredResult(_0xd011x15,_0xd011x1b,_0x7051[53]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[53]))};exports[_0x7051[77]]= function(_0xd011x28,_0xd011x15){var _0xd011x1b={raw:false,where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}},_0xd011x29={};_0xd011x29[_0x7051[54]]= _[_0x7051[57]](db[_0x7051[56]][_0x7051[55]]);_0xd011x29[_0x7051[58]]= _[_0x7051[57]](_0xd011x28[_0x7051[58]]);_0xd011x29[_0x7051[59]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],_0xd011x29[_0x7051[58]]);_0xd011x1b[_0x7051[61]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],qs[_0x7051[62]](_0xd011x28[_0x7051[58]][_0x7051[62]]));_0xd011x1b[_0x7051[61]]= (_0xd011x1b[_0x7051[61]][_0x7051[63]])?_0xd011x1b[_0x7051[61]]:_0xd011x29[_0x7051[54]];_0xd011x1b= _[_0x7051[73]]({},_0xd011x1b,_0xd011x28[_0x7051[74]]);return db[_0x7051[56]][_0x7051[80]](_0xd011x1b)[_0x7051[45]](handleEntityNotFound(_0xd011x15,null,_0x7051[77]))[_0x7051[45]](respondWithResult(_0xd011x15,null,_0x7051[77]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[77]))};exports[_0x7051[81]]= function(_0xd011x28,_0xd011x15){return db[_0x7051[56]][_0x7051[81]](_0xd011x28[_0x7051[82]],{})[_0x7051[45]](respondWithResult(_0xd011x15,201,_0x7051[81]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[81]))};exports[_0x7051[46]]= function(_0xd011x28,_0xd011x15){if(_0xd011x28[_0x7051[82]][_0x7051[78]]){delete _0xd011x28[_0x7051[82]][_0x7051[78]]};return db[_0x7051[56]][_0x7051[80]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x15,null,_0x7051[46]))[_0x7051[45]](saveUpdates(_0xd011x28[_0x7051[82]],null,_0x7051[46]))[_0x7051[45]](respondWithResult(_0xd011x15,null,_0x7051[46]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[46]))};exports[_0x7051[48]]= function(_0xd011x28,_0xd011x15){return db[_0x7051[56]][_0x7051[80]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x15,null,_0x7051[48]))[_0x7051[45]](removeEntity(_0xd011x15,null,_0x7051[48]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[48]))};exports[_0x7051[83]]= function(_0xd011x28,_0xd011x15,_0xd011x2c){if(_0xd011x28[_0x7051[82]][_0x7051[78]]){delete _0xd011x28[_0x7051[82]][_0x7051[78]]};return db[_0x7051[56]][_0x7051[80]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x15,null,_0x7051[83]))[_0x7051[45]](function(_0xd011x18){if(_0xd011x18){_0xd011x28[_0x7051[82]][_0x7051[84]]= _0xd011x18[_0x7051[78]];return db[_0x7051[85]][_0x7051[81]](_0xd011x28[_0x7051[82]])}})[_0x7051[45]](respondWithResult(_0xd011x15,null,_0x7051[83]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[83]))};exports[_0x7051[86]]= function(_0xd011x28,_0xd011x15,_0xd011x2c){if(_0xd011x28[_0x7051[82]][_0x7051[78]]){delete _0xd011x28[_0x7051[82]][_0x7051[78]]};return db[_0x7051[56]][_0x7051[80]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x15,null,_0x7051[86]))[_0x7051[45]](function(_0xd011x18){if(_0xd011x18){_0xd011x28[_0x7051[82]][_0x7051[87]]= _0xd011x18[_0x7051[78]];return db[_0x7051[85]][_0x7051[81]](_0xd011x28[_0x7051[82]])}})[_0x7051[45]](respondWithResult(_0xd011x15,null,_0x7051[86]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[86]))};exports[_0x7051[88]]= function(_0xd011x28,_0xd011x18,_0xd011x2c){var _0xd011x1b={};var _0xd011x29={};var _0xd011x2d;var _0xd011x1c;return db[_0x7051[56]][_0x7051[89]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x18,null,_0x7051[88]))[_0x7051[45]](function(_0xd011x18){if(_0xd011x18){_0xd011x2d= _0xd011x18;_0xd011x29[_0x7051[54]]= _[_0x7051[57]](db[_0x7051[85]][_0x7051[55]]);_0xd011x29[_0x7051[58]]= _[_0x7051[57]](_0xd011x28[_0x7051[58]]);_0xd011x29[_0x7051[59]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],_0xd011x29[_0x7051[58]]);_0xd011x1b[_0x7051[61]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],qs[_0x7051[62]](_0xd011x28[_0x7051[58]][_0x7051[62]]));_0xd011x1b[_0x7051[61]]= (_0xd011x1b[_0x7051[61]][_0x7051[63]])?_0xd011x1b[_0x7051[61]]:_0xd011x29[_0x7051[54]];_0xd011x1b[_0x7051[66]]= qs[_0x7051[67]](_0xd011x28[_0x7051[58]][_0x7051[67]]);_0xd011x1b[_0x7051[68]]= qs[_0x7051[59]](_[_0x7051[69]](_0xd011x28[_0x7051[58]],_0xd011x29[_0x7051[59]]));if(_0xd011x28[_0x7051[58]][_0x7051[70]]){_0xd011x1b[_0x7051[68]]= _[_0x7051[73]](_0xd011x1b[_0x7051[68]],{$or:_[_0x7051[72]](_0xd011x1b[_0x7051[61]],function(_0xd011x2a){var _0xd011x2b={};_0xd011x2b[_0xd011x2a]= {$like:_0x7051[71]+ _0xd011x28[_0x7051[58]][_0x7051[70]]+ _0x7051[71]};return _0xd011x2b})})};_0xd011x1b= _[_0x7051[73]]({},_0xd011x1b,_0xd011x28[_0x7051[74]]);return _0xd011x2d[_0x7051[88]](_0xd011x1b)}})[_0x7051[45]](function(_0xd011x2f){if(_0xd011x2f){_0xd011x1c= _0xd011x2f[_0x7051[63]];if(!_0xd011x28[_0x7051[58]][_0x7051[65]](_0x7051[64])){_0xd011x1b[_0x7051[35]]= qs[_0x7051[35]](_0xd011x28[_0x7051[58]][_0x7051[35]]);_0xd011x1b[_0x7051[34]]= qs[_0x7051[34]](_0xd011x28[_0x7051[58]][_0x7051[34]])};return _0xd011x2d[_0x7051[88]](_0xd011x1b)}})[_0x7051[45]](function(_0xd011x2e){return _0xd011x2e?{count:_0xd011x1c,rows:_0xd011x2e}:null})[_0x7051[45]](respondWithResult(_0xd011x18,null,_0x7051[88]))[_0x7051[75]](handleError(_0xd011x18,null,_0x7051[88]))};exports[_0x7051[90]]= function(_0xd011x28,_0xd011x18,_0xd011x2c){var _0xd011x1b={};var _0xd011x29={};var _0xd011x2d;var _0xd011x1c;return db[_0x7051[56]][_0x7051[89]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x18,null,_0x7051[90]))[_0x7051[45]](function(_0xd011x18){if(_0xd011x18){_0xd011x2d= _0xd011x18;_0xd011x29[_0x7051[54]]= _[_0x7051[57]](db[_0x7051[85]][_0x7051[55]]);_0xd011x29[_0x7051[58]]= _[_0x7051[57]](_0xd011x28[_0x7051[58]]);_0xd011x29[_0x7051[59]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],_0xd011x29[_0x7051[58]]);_0xd011x1b[_0x7051[61]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],qs[_0x7051[62]](_0xd011x28[_0x7051[58]][_0x7051[62]]));_0xd011x1b[_0x7051[61]]= (_0xd011x1b[_0x7051[61]][_0x7051[63]])?_0xd011x1b[_0x7051[61]]:_0xd011x29[_0x7051[54]];_0xd011x1b[_0x7051[66]]= qs[_0x7051[67]](_0xd011x28[_0x7051[58]][_0x7051[67]]);_0xd011x1b[_0x7051[68]]= qs[_0x7051[59]](_[_0x7051[69]](_0xd011x28[_0x7051[58]],_0xd011x29[_0x7051[59]]));if(_0xd011x28[_0x7051[58]][_0x7051[70]]){_0xd011x1b[_0x7051[68]]= _[_0x7051[73]](_0xd011x1b[_0x7051[68]],{$or:_[_0x7051[72]](_0xd011x1b[_0x7051[61]],function(_0xd011x2a){var _0xd011x2b={};_0xd011x2b[_0xd011x2a]= {$like:_0x7051[71]+ _0xd011x28[_0x7051[58]][_0x7051[70]]+ _0x7051[71]};return _0xd011x2b})})};_0xd011x1b= _[_0x7051[73]]({},_0xd011x1b,_0xd011x28[_0x7051[74]]);return _0xd011x2d[_0x7051[90]](_0xd011x1b)}})[_0x7051[45]](function(_0xd011x2f){if(_0xd011x2f){_0xd011x1c= _0xd011x2f[_0x7051[63]];if(!_0xd011x28[_0x7051[58]][_0x7051[65]](_0x7051[64])){_0xd011x1b[_0x7051[35]]= qs[_0x7051[35]](_0xd011x28[_0x7051[58]][_0x7051[35]]);_0xd011x1b[_0x7051[34]]= qs[_0x7051[34]](_0xd011x28[_0x7051[58]][_0x7051[34]])};return _0xd011x2d[_0x7051[90]](_0xd011x1b)}})[_0x7051[45]](function(_0xd011x2e){return _0xd011x2e?{count:_0xd011x1c,rows:_0xd011x2e}:null})[_0x7051[45]](respondWithResult(_0xd011x18,null,_0x7051[90]))[_0x7051[75]](handleError(_0xd011x18,null,_0x7051[90]))};exports[_0x7051[91]]= function(_0xd011x28,_0xd011x15,_0xd011x2c){if(_0xd011x28[_0x7051[82]][_0x7051[78]]){delete _0xd011x28[_0x7051[82]][_0x7051[78]]};return db[_0x7051[56]][_0x7051[80]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x15,null,_0x7051[91]))[_0x7051[45]](function(_0xd011x18){if(_0xd011x18){_0xd011x28[_0x7051[82]][_0x7051[92]]= _0xd011x18[_0x7051[78]];return db[_0x7051[93]][_0x7051[81]](_0xd011x28[_0x7051[82]])}})[_0x7051[45]](respondWithResult(_0xd011x15,null,_0x7051[91]))[_0x7051[75]](handleError(_0xd011x15,null,_0x7051[91]))};exports[_0x7051[94]]= function(_0xd011x28,_0xd011x18,_0xd011x2c){var _0xd011x1b={};var _0xd011x29={};var _0xd011x2d;var _0xd011x1c;return db[_0x7051[56]][_0x7051[89]]({where:{id:_0xd011x28[_0x7051[79]][_0x7051[78]]}})[_0x7051[45]](handleEntityNotFound(_0xd011x18,null,_0x7051[94]))[_0x7051[45]](function(_0xd011x18){if(_0xd011x18){_0xd011x2d= _0xd011x18;_0xd011x29[_0x7051[54]]= _[_0x7051[57]](db[_0x7051[93]][_0x7051[55]]);_0xd011x29[_0x7051[58]]= _[_0x7051[57]](_0xd011x28[_0x7051[58]]);_0xd011x29[_0x7051[59]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],_0xd011x29[_0x7051[58]]);_0xd011x1b[_0x7051[61]]= _[_0x7051[60]](_0xd011x29[_0x7051[54]],qs[_0x7051[62]](_0xd011x28[_0x7051[58]][_0x7051[62]]));_0xd011x1b[_0x7051[61]]= (_0xd011x1b[_0x7051[61]][_0x7051[63]])?_0xd011x1b[_0x7051[61]]:_0xd011x29[_0x7051[54]];_0xd011x1b[_0x7051[66]]= qs[_0x7051[67]](_0xd011x28[_0x7051[58]][_0x7051[67]]);_0xd011x1b[_0x7051[68]]= qs[_0x7051[59]](_[_0x7051[69]](_0xd011x28[_0x7051[58]],_0xd011x29[_0x7051[59]]));if(_0xd011x28[_0x7051[58]][_0x7051[70]]){_0xd011x1b[_0x7051[68]]= _[_0x7051[73]](_0xd011x1b[_0x7051[68]],{$or:_[_0x7051[72]](_0xd011x1b[_0x7051[61]],function(_0xd011x2a){var _0xd011x2b={};_0xd011x2b[_0xd011x2a]= {$like:_0x7051[71]+ _0xd011x28[_0x7051[58]][_0x7051[70]]+ _0x7051[71]};return _0xd011x2b})})};_0xd011x1b= _[_0x7051[73]]({},_0xd011x1b,_0xd011x28[_0x7051[74]]);return _0xd011x2d[_0x7051[94]](_0xd011x1b)}})[_0x7051[45]](function(_0xd011x2f){if(_0xd011x2f){_0xd011x1c= _0xd011x2f[_0x7051[63]];if(!_0xd011x28[_0x7051[58]][_0x7051[65]](_0x7051[64])){_0xd011x1b[_0x7051[35]]= qs[_0x7051[35]](_0xd011x28[_0x7051[58]][_0x7051[35]]);_0xd011x1b[_0x7051[34]]= qs[_0x7051[34]](_0xd011x28[_0x7051[58]][_0x7051[34]])};return _0xd011x2d[_0x7051[94]](_0xd011x1b)}})[_0x7051[45]](function(_0xd011x2e){return _0xd011x2e?{count:_0xd011x1c,rows:_0xd011x2e}:null})[_0x7051[45]](respondWithResult(_0xd011x18,null,_0x7051[94]))[_0x7051[75]](handleError(_0xd011x18,null,_0x7051[94]))}
\ No newline at end of file
index e6d6182..048fb2d 100644 (file)
@@ -1 +1 @@
-var _0x44f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x69\x67\x67\x65\x72","\x74\x6F\x6F\x6C\x73\x5F\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0x44f7[0];var _=require(_0x44f7[1]);var util=require(_0x44f7[2]);var logger=require(_0x44f7[4])(_0x44f7[3]);var attributes=require(_0x44f7[5]);module[_0x44f7[6]]= function(_0x7649x5,_0x7649x6){return _0x7649x5[_0x44f7[9]](_0x44f7[7],attributes,{tableName:_0x44f7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x9bc0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x69\x67\x67\x65\x72","\x74\x6F\x6F\x6C\x73\x5F\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0x9bc0[0];var _=require(_0x9bc0[1]);var util=require(_0x9bc0[2]);var logger=require(_0x9bc0[4])(_0x9bc0[3]);var attributes=require(_0x9bc0[5]);module[_0x9bc0[6]]= function(_0x27e7x5,_0x27e7x6){return _0x27e7x5[_0x9bc0[9]](_0x9bc0[7],attributes,{tableName:_0x9bc0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 158570d..8cd51e6 100644 (file)
@@ -1 +1 @@
-var _0x5ceb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x72\x69\x67\x67\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x72\x69\x67\x67\x65\x72","\x53\x68\x6F\x77\x54\x72\x69\x67\x67\x65\x72","\x66\x69\x6E\x64"];_0x5ceb[0];var _=require(_0x5ceb[1]);var util=require(_0x5ceb[2]);var moment=require(_0x5ceb[3]);var BPromise=require(_0x5ceb[4]);var db=require(_0x5ceb[6])[_0x5ceb[5]];var utils=require(_0x5ceb[7]);var logger=require(_0x5ceb[9])(_0x5ceb[8]);var jayson=require(_0x5ceb[10]);var client=jayson[_0x5ceb[12]][_0x5ceb[11]]({port:9002});function respondWithRpcPromise(_0xba3exb,_0xba3exc,_0xba3exd){return  new BPromise(function(_0xba3exe,_0xba3exf){return client[_0x5ceb[25]](_0xba3exb,_0xba3exd)[_0x5ceb[24]](function(_0xba3ex11){logger[_0x5ceb[17]](_0x5ceb[13],_0xba3exc,_0x5ceb[16]);logger[_0x5ceb[20]](_0x5ceb[18],_0xba3exc,_0x5ceb[16],JSON[_0x5ceb[19]](_0xba3ex11));if(_0xba3ex11[_0x5ceb[14]]){if(_0xba3ex11[_0x5ceb[14]][_0x5ceb[21]]=== 500){logger[_0x5ceb[14]](_0x5ceb[13],_0xba3exc,_0xba3ex11[_0x5ceb[14]][_0x5ceb[22]]);return _0xba3exf(_0xba3ex11[_0x5ceb[14]][_0x5ceb[22]])};logger[_0x5ceb[14]](_0x5ceb[13],_0xba3exc,_0xba3ex11[_0x5ceb[14]][_0x5ceb[22]]);return _0xba3exe(_0xba3ex11[_0x5ceb[14]][_0x5ceb[22]])}else {logger[_0x5ceb[17]](_0x5ceb[13],_0xba3exc,_0x5ceb[16]);_0xba3exe(_0xba3ex11[_0x5ceb[23]][_0x5ceb[22]])}})[_0x5ceb[15]](function(_0xba3ex10){logger[_0x5ceb[14]](_0x5ceb[13],_0xba3exc,_0xba3ex10);_0xba3exf(_0xba3ex10)})})}exports[_0x5ceb[26]]= function(_0xba3exd){var _0xba3ex12=this;return  new Promise(function(_0xba3exe,_0xba3exf){return db[_0x5ceb[37]][_0x5ceb[36]]({raw:_0xba3exd[_0x5ceb[27]]?(_0xba3exd[_0x5ceb[27]][_0x5ceb[28]]=== undefined)?true:false:true,where:_0xba3exd[_0x5ceb[27]]?_0xba3exd[_0x5ceb[27]][_0x5ceb[29]]|| null:null,attributes:_0xba3exd[_0x5ceb[27]]?_0xba3exd[_0x5ceb[27]][_0x5ceb[30]]|| null:null,limit:_0xba3exd[_0x5ceb[27]]?_0xba3exd[_0x5ceb[27]][_0x5ceb[31]]|| null:null,include:_0xba3exd[_0x5ceb[27]]?(_0xba3exd[_0x5ceb[27]][_0x5ceb[32]]?_[_0x5ceb[35]](_0xba3exd[_0x5ceb[27]][_0x5ceb[32]],function(_0xba3ex13){return {model:db[_0xba3ex13[_0x5ceb[33]]],as:_0xba3ex13[_0x5ceb[34]],attributes:_0xba3ex13[_0x5ceb[30]],include:_0xba3ex13[_0x5ceb[32]]?_[_0x5ceb[35]](_0xba3ex13[_0x5ceb[32]],function(_0xba3ex14){return {model:db[_0xba3ex14[_0x5ceb[33]]],as:_0xba3ex14[_0x5ceb[34]],attributes:_0xba3ex14[_0x5ceb[30]],include:_0xba3ex14[_0x5ceb[32]]?_[_0x5ceb[35]](_0xba3ex14[_0x5ceb[32]],function(_0xba3ex15){return {model:db[_0xba3ex15[_0x5ceb[33]]],as:_0xba3ex15[_0x5ceb[34]],attributes:_0xba3ex15[_0x5ceb[30]]}}):[]}}):[]}}):[]):[]})[_0x5ceb[24]](function(_0xba3ex11){logger[_0x5ceb[17]](_0x5ceb[26],_0xba3exd);logger[_0x5ceb[20]](_0x5ceb[26],_0xba3exd,JSON[_0x5ceb[19]](_0xba3ex11));_0xba3exe(_0xba3ex11)})[_0x5ceb[15]](function(_0xba3ex10){logger[_0x5ceb[14]](_0x5ceb[26],_0xba3ex10[_0x5ceb[22]],_0xba3exd);_0xba3exf(_0xba3ex12[_0x5ceb[14]](500,_0xba3ex10[_0x5ceb[22]]))})})};exports[_0x5ceb[38]]= function(_0xba3exd){var _0xba3ex12=this;return  new Promise(function(_0xba3exe,_0xba3exf){return db[_0x5ceb[37]][_0x5ceb[39]]({raw:_0xba3exd[_0x5ceb[27]]?(_0xba3exd[_0x5ceb[27]][_0x5ceb[28]]=== undefined)?true:false:true,where:_0xba3exd[_0x5ceb[27]]?_0xba3exd[_0x5ceb[27]][_0x5ceb[29]]|| null:null,attributes:_0xba3exd[_0x5ceb[27]]?_0xba3exd[_0x5ceb[27]][_0x5ceb[30]]|| null:null,include:_0xba3exd[_0x5ceb[27]]?(_0xba3exd[_0x5ceb[27]][_0x5ceb[32]]?_[_0x5ceb[35]](_0xba3exd[_0x5ceb[27]][_0x5ceb[32]],function(_0xba3ex13){return {model:db[_0xba3ex13[_0x5ceb[33]]],as:_0xba3ex13[_0x5ceb[34]],attributes:_0xba3ex13[_0x5ceb[30]],include:_0xba3ex13[_0x5ceb[32]]?_[_0x5ceb[35]](_0xba3ex13[_0x5ceb[32]],function(_0xba3ex14){return {model:db[_0xba3ex14[_0x5ceb[33]]],as:_0xba3ex14[_0x5ceb[34]],attributes:_0xba3ex14[_0x5ceb[30]],include:_0xba3ex14[_0x5ceb[32]]?_[_0x5ceb[35]](_0xba3ex14[_0x5ceb[32]],function(_0xba3ex15){return {model:db[_0xba3ex15[_0x5ceb[33]]],as:_0xba3ex15[_0x5ceb[34]],attributes:_0xba3ex15[_0x5ceb[30]]}}):[]}}):[]}}):[]):[]})[_0x5ceb[24]](function(_0xba3ex11){logger[_0x5ceb[17]](_0x5ceb[38],_0xba3exd);logger[_0x5ceb[20]](_0x5ceb[38],_0xba3exd,JSON[_0x5ceb[19]](_0xba3ex11));_0xba3exe(_0xba3ex11)})[_0x5ceb[15]](function(_0xba3ex10){logger[_0x5ceb[14]](_0x5ceb[38],_0xba3ex10[_0x5ceb[22]],_0xba3exd);_0xba3exf(_0xba3ex12[_0x5ceb[14]](500,_0xba3ex10[_0x5ceb[22]]))})})}
\ No newline at end of file
+var _0xa880=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x72\x69\x67\x67\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x72\x69\x67\x67\x65\x72","\x53\x68\x6F\x77\x54\x72\x69\x67\x67\x65\x72","\x66\x69\x6E\x64"];_0xa880[0];var _=require(_0xa880[1]);var util=require(_0xa880[2]);var moment=require(_0xa880[3]);var BPromise=require(_0xa880[4]);var db=require(_0xa880[6])[_0xa880[5]];var utils=require(_0xa880[7]);var logger=require(_0xa880[9])(_0xa880[8]);var jayson=require(_0xa880[10]);var client=jayson[_0xa880[12]][_0xa880[11]]({port:9002});function respondWithRpcPromise(_0x34f0xb,_0x34f0xc,_0x34f0xd){return  new BPromise(function(_0x34f0xe,_0x34f0xf){return client[_0xa880[25]](_0x34f0xb,_0x34f0xd)[_0xa880[24]](function(_0x34f0x11){logger[_0xa880[17]](_0xa880[13],_0x34f0xc,_0xa880[16]);logger[_0xa880[20]](_0xa880[18],_0x34f0xc,_0xa880[16],JSON[_0xa880[19]](_0x34f0x11));if(_0x34f0x11[_0xa880[14]]){if(_0x34f0x11[_0xa880[14]][_0xa880[21]]=== 500){logger[_0xa880[14]](_0xa880[13],_0x34f0xc,_0x34f0x11[_0xa880[14]][_0xa880[22]]);return _0x34f0xf(_0x34f0x11[_0xa880[14]][_0xa880[22]])};logger[_0xa880[14]](_0xa880[13],_0x34f0xc,_0x34f0x11[_0xa880[14]][_0xa880[22]]);return _0x34f0xe(_0x34f0x11[_0xa880[14]][_0xa880[22]])}else {logger[_0xa880[17]](_0xa880[13],_0x34f0xc,_0xa880[16]);_0x34f0xe(_0x34f0x11[_0xa880[23]][_0xa880[22]])}})[_0xa880[15]](function(_0x34f0x10){logger[_0xa880[14]](_0xa880[13],_0x34f0xc,_0x34f0x10);_0x34f0xf(_0x34f0x10)})})}exports[_0xa880[26]]= function(_0x34f0xd){var _0x34f0x12=this;return  new Promise(function(_0x34f0xe,_0x34f0xf){return db[_0xa880[37]][_0xa880[36]]({raw:_0x34f0xd[_0xa880[27]]?(_0x34f0xd[_0xa880[27]][_0xa880[28]]=== undefined)?true:false:true,where:_0x34f0xd[_0xa880[27]]?_0x34f0xd[_0xa880[27]][_0xa880[29]]|| null:null,attributes:_0x34f0xd[_0xa880[27]]?_0x34f0xd[_0xa880[27]][_0xa880[30]]|| null:null,limit:_0x34f0xd[_0xa880[27]]?_0x34f0xd[_0xa880[27]][_0xa880[31]]|| null:null,include:_0x34f0xd[_0xa880[27]]?(_0x34f0xd[_0xa880[27]][_0xa880[32]]?_[_0xa880[35]](_0x34f0xd[_0xa880[27]][_0xa880[32]],function(_0x34f0x13){return {model:db[_0x34f0x13[_0xa880[33]]],as:_0x34f0x13[_0xa880[34]],attributes:_0x34f0x13[_0xa880[30]],include:_0x34f0x13[_0xa880[32]]?_[_0xa880[35]](_0x34f0x13[_0xa880[32]],function(_0x34f0x14){return {model:db[_0x34f0x14[_0xa880[33]]],as:_0x34f0x14[_0xa880[34]],attributes:_0x34f0x14[_0xa880[30]],include:_0x34f0x14[_0xa880[32]]?_[_0xa880[35]](_0x34f0x14[_0xa880[32]],function(_0x34f0x15){return {model:db[_0x34f0x15[_0xa880[33]]],as:_0x34f0x15[_0xa880[34]],attributes:_0x34f0x15[_0xa880[30]]}}):[]}}):[]}}):[]):[]})[_0xa880[24]](function(_0x34f0x11){logger[_0xa880[17]](_0xa880[26],_0x34f0xd);logger[_0xa880[20]](_0xa880[26],_0x34f0xd,JSON[_0xa880[19]](_0x34f0x11));_0x34f0xe(_0x34f0x11)})[_0xa880[15]](function(_0x34f0x10){logger[_0xa880[14]](_0xa880[26],_0x34f0x10[_0xa880[22]],_0x34f0xd);_0x34f0xf(_0x34f0x12[_0xa880[14]](500,_0x34f0x10[_0xa880[22]]))})})};exports[_0xa880[38]]= function(_0x34f0xd){var _0x34f0x12=this;return  new Promise(function(_0x34f0xe,_0x34f0xf){return db[_0xa880[37]][_0xa880[39]]({raw:_0x34f0xd[_0xa880[27]]?(_0x34f0xd[_0xa880[27]][_0xa880[28]]=== undefined)?true:false:true,where:_0x34f0xd[_0xa880[27]]?_0x34f0xd[_0xa880[27]][_0xa880[29]]|| null:null,attributes:_0x34f0xd[_0xa880[27]]?_0x34f0xd[_0xa880[27]][_0xa880[30]]|| null:null,include:_0x34f0xd[_0xa880[27]]?(_0x34f0xd[_0xa880[27]][_0xa880[32]]?_[_0xa880[35]](_0x34f0xd[_0xa880[27]][_0xa880[32]],function(_0x34f0x13){return {model:db[_0x34f0x13[_0xa880[33]]],as:_0x34f0x13[_0xa880[34]],attributes:_0x34f0x13[_0xa880[30]],include:_0x34f0x13[_0xa880[32]]?_[_0xa880[35]](_0x34f0x13[_0xa880[32]],function(_0x34f0x14){return {model:db[_0x34f0x14[_0xa880[33]]],as:_0x34f0x14[_0xa880[34]],attributes:_0x34f0x14[_0xa880[30]],include:_0x34f0x14[_0xa880[32]]?_[_0xa880[35]](_0x34f0x14[_0xa880[32]],function(_0x34f0x15){return {model:db[_0x34f0x15[_0xa880[33]]],as:_0x34f0x15[_0xa880[34]],attributes:_0x34f0x15[_0xa880[30]]}}):[]}}):[]}}):[]):[]})[_0xa880[24]](function(_0x34f0x11){logger[_0xa880[17]](_0xa880[38],_0x34f0xd);logger[_0xa880[20]](_0xa880[38],_0x34f0xd,JSON[_0xa880[19]](_0x34f0x11));_0x34f0xe(_0x34f0x11)})[_0xa880[15]](function(_0x34f0x10){logger[_0xa880[14]](_0xa880[38],_0x34f0x10[_0xa880[22]],_0x34f0xd);_0x34f0xf(_0x34f0x12[_0xa880[14]](500,_0x34f0x10[_0xa880[22]]))})})}
\ No newline at end of file
index c9714bc..9c34ba0 100644 (file)
@@ -1 +1 @@
-var _0x68df=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x68df[0];var multer=require(_0x68df[1]);var util=require(_0x68df[2]);var path=require(_0x68df[3]);var express=require(_0x68df[4]);var router=express.Router();var auth=require(_0x68df[5]);var config=require(_0x68df[6]);var controller=require(_0x68df[7]);router[_0x68df[11]](_0x68df[8],auth[_0x68df[9]](),controller[_0x68df[10]]);router[_0x68df[11]](_0x68df[12],auth[_0x68df[9]](),controller[_0x68df[13]]);router[_0x68df[15]](_0x68df[8],auth[_0x68df[9]](),controller[_0x68df[14]]);router[_0x68df[17]](_0x68df[12],auth[_0x68df[9]](),controller[_0x68df[16]]);router[_0x68df[19]](_0x68df[12],auth[_0x68df[9]](),controller[_0x68df[18]]);module[_0x68df[20]]= router
\ No newline at end of file
+var _0x8f1a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8f1a[0];var multer=require(_0x8f1a[1]);var util=require(_0x8f1a[2]);var path=require(_0x8f1a[3]);var express=require(_0x8f1a[4]);var router=express.Router();var auth=require(_0x8f1a[5]);var config=require(_0x8f1a[6]);var controller=require(_0x8f1a[7]);router[_0x8f1a[11]](_0x8f1a[8],auth[_0x8f1a[9]](),controller[_0x8f1a[10]]);router[_0x8f1a[11]](_0x8f1a[12],auth[_0x8f1a[9]](),controller[_0x8f1a[13]]);router[_0x8f1a[15]](_0x8f1a[8],auth[_0x8f1a[9]](),controller[_0x8f1a[14]]);router[_0x8f1a[17]](_0x8f1a[12],auth[_0x8f1a[9]](),controller[_0x8f1a[16]]);router[_0x8f1a[19]](_0x8f1a[12],auth[_0x8f1a[9]](),controller[_0x8f1a[18]]);module[_0x8f1a[20]]= router
\ No newline at end of file
index 5e4d9be..af70303 100644 (file)
@@ -1 +1 @@
-var _0x395e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x75\x64\x70\x22\x2C\x20\x22\x74\x63\x70\x22\x5D","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x6E\x61\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x22\x2C\x20\x22\x63\x6F\x6D\x65\x64\x69\x61\x22\x5D","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x61\x6C\x6C\x6F\x77","\x3B","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x61\x6C\x61\x77\x22\x2C\x20\x22\x75\x6C\x61\x77\x22\x2C\x20\x22\x67\x73\x6D\x22\x5D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x69\x6E\x73\x65\x63\x75\x72\x65","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x70\x6F\x72\x74\x22\x2C\x20\x22\x69\x6E\x76\x69\x74\x65\x22\x5D","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x64\x79\x6E\x61\x6D\x69\x63","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x395e[0];var Sequelize=require(_0x395e[1]);module[_0x395e[2]]= {name:{type:Sequelize[_0x395e[3]],allowNull:false,unique:_0x395e[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},type:{type:Sequelize.ENUM(_0x395e[5],_0x395e[6],_0x395e[7]),allowNull:false,defaultValue:_0x395e[5]},context:{type:Sequelize[_0x395e[3]],allowNull:false,defaultValue:_0x395e[8]},callingpres:{type:Sequelize.ENUM(_0x395e[9],_0x395e[10],_0x395e[11],_0x395e[12],_0x395e[13],_0x395e[14],_0x395e[15],_0x395e[16])},deny:{type:Sequelize[_0x395e[3]]},permit:{type:Sequelize[_0x395e[3]]},secret:{type:Sequelize[_0x395e[3]]},md5secret:{type:Sequelize[_0x395e[3]]},remotesecret:{type:Sequelize[_0x395e[3]]},transport:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[17],set:function(_0x57d3x2){this[_0x395e[21]](_0x395e[18],_0x57d3x2?_0x57d3x2[_0x395e[20]](_0x395e[19]):null)},get:function(){return this[_0x395e[22]](_0x395e[18])?this[_0x395e[22]](_0x395e[18])[_0x395e[23]](_0x395e[19]):null},comment:_0x395e[24]},dtmfmode:{type:Sequelize.ENUM(_0x395e[25],_0x395e[26],_0x395e[27],_0x395e[28],_0x395e[29]),defaultValue:_0x395e[25]},directmedia:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31],_0x395e[32],_0x395e[33],_0x395e[34]),defaultValue:_0x395e[31]},directrtpsetup:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[31]},directmediapermit:{type:Sequelize[_0x395e[3]]},directmediadeny:{type:Sequelize[_0x395e[3]]},nat:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[35],set:function(_0x57d3x2){this[_0x395e[21]](_0x395e[36],_0x57d3x2?_0x57d3x2[_0x395e[20]](_0x395e[19]):null)},get:function(){return this[_0x395e[22]](_0x395e[36])?this[_0x395e[22]](_0x395e[36])[_0x395e[23]](_0x395e[19]):null},comment:_0x395e[37]},callgroup:{type:Sequelize[_0x395e[3]]},namedcallgroup:{type:Sequelize[_0x395e[3]]},pickupgroup:{type:Sequelize[_0x395e[3]]},namedpickupgroup:{type:Sequelize[_0x395e[3]]},language:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[38]},tonezone:{type:Sequelize[_0x395e[3]],allowNull:true},disallow:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[39]},allow:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[40],set:function(_0x57d3x2){this[_0x395e[21]](_0x395e[41],_0x57d3x2?_0x57d3x2[_0x395e[20]](_0x395e[42]):null)},get:function(){return this[_0x395e[22]](_0x395e[41])?this[_0x395e[22]](_0x395e[41])[_0x395e[23]](_0x395e[42]):null},comment:_0x395e[43]},autoframing:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},insecure:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[44],set:function(_0x57d3x2){this[_0x395e[21]](_0x395e[45],_0x57d3x2?_0x57d3x2[_0x395e[20]](_0x395e[19]):null)},get:function(){return this[_0x395e[22]](_0x395e[45])?this[_0x395e[22]](_0x395e[45])[_0x395e[23]](_0x395e[19]):null},comment:_0x395e[46]},trustrpid:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[31]},trust_id_outbound:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[31]},progressinband:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31],_0x395e[47])},promiscredir:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},useclientcode:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},accountcode:{type:Sequelize.INTEGER(11)},setvar:{type:Sequelize[_0x395e[3]]},callerid:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[48]},amaflags:{type:Sequelize[_0x395e[3]]},callcounter:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[30]},busylevel:{type:Sequelize.INTEGER(11)},allowoverlap:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},allowsubscribe:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},allowtransfer:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},ignoresdpversion:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},subscribecontext:{type:Sequelize[_0x395e[3]]},template:{type:Sequelize[_0x395e[3]]},videosupport:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31],_0x395e[49]),defaultValue:_0x395e[31]},maxcallbitrate:{type:Sequelize.INTEGER(11)},rfc2833compensate:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},mailbox:{type:Sequelize[_0x395e[3]]},session_timers:{type:Sequelize.ENUM(_0x395e[50],_0x395e[51],_0x395e[52])},session_expires:{type:Sequelize.INTEGER(11)},session_minse:{type:Sequelize.INTEGER(11)},session_refresher:{type:Sequelize.ENUM(_0x395e[53],_0x395e[54]),defaultValue:_0x395e[54]},t38pt_usertpsource:{type:Sequelize[_0x395e[3]]},regexten:{type:Sequelize[_0x395e[3]]},fromdomain:{type:Sequelize[_0x395e[3]]},fromuser:{type:Sequelize[_0x395e[3]]},port:{type:Sequelize.INTEGER(5)},qualify:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[30]},keepalive:{type:Sequelize.INTEGER(11)},defaultip:{type:Sequelize[_0x395e[3]]},defaultuser:{type:Sequelize[_0x395e[3]]},rtptimeout:{type:Sequelize.INTEGER(11)},rtpholdtimeout:{type:Sequelize.INTEGER(11)},rtpkeepalive:{type:Sequelize.INTEGER(11)},sendrpid:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[31]},outboundproxy:{type:Sequelize[_0x395e[3]]},callbackextension:{type:Sequelize[_0x395e[3]]},timert1:{type:Sequelize.INTEGER(11)},timerb:{type:Sequelize.INTEGER(11)},qualifyfreq:{type:Sequelize.INTEGER(11)},contactpermit:{type:Sequelize[_0x395e[3]]},contactdeny:{type:Sequelize[_0x395e[3]]},contactacl:{type:Sequelize[_0x395e[3]]},unsolicited_mailbox:{type:Sequelize[_0x395e[3]]},use_q850_reason:{type:Sequelize[_0x395e[3]]},maxforwards:{type:Sequelize.INTEGER(11)},encryption:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[31]},avpf:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},force_avp:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},icesupport:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},dtlsenable:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},dtlsverify:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31],_0x395e[55],_0x395e[56])},dtlsrekey:{type:Sequelize.INTEGER(11)},dtlscertfile:{type:Sequelize[_0x395e[3]]},dtlsprivatekey:{type:Sequelize[_0x395e[3]]},dtlscipher:{type:Sequelize[_0x395e[3]]},dtlscafile:{type:Sequelize[_0x395e[3]]},dtlscapath:{type:Sequelize[_0x395e[3]]},dtlssetup:{type:Sequelize.ENUM(_0x395e[57],_0x395e[58],_0x395e[59]),allowNull:true},dtlsfingerprint:{type:Sequelize[_0x395e[3]]},usereqphone:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31]),defaultValue:_0x395e[31]},recordonfeature:{type:Sequelize[_0x395e[3]]},recordofffeature:{type:Sequelize[_0x395e[3]]},call_limit:{type:Sequelize.INTEGER(11),defaultValue:1000},registertrying:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},subscribemwi:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31])},vmexten:{type:Sequelize[_0x395e[3]]},mohinterpret:{type:Sequelize[_0x395e[3]]},mohsuggest:{type:Sequelize[_0x395e[3]]},parkinglot:{type:Sequelize[_0x395e[3]]},description:{type:Sequelize[_0x395e[3]]},host:{type:Sequelize[_0x395e[3]],defaultValue:_0x395e[60]},canreinvite:{type:Sequelize.ENUM(_0x395e[30],_0x395e[31],_0x395e[32],_0x395e[33],_0x395e[61]),defaultValue:_0x395e[31]},registry:{type:Sequelize[_0x395e[3]]},otherFields:{type:Sequelize[_0x395e[3]]},active:{type:Sequelize[_0x395e[62]],allowNull:false,defaultValue:true}}
\ No newline at end of file
+var _0xed8a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x75\x64\x70\x22\x2C\x20\x22\x74\x63\x70\x22\x5D","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x6E\x61\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x22\x2C\x20\x22\x63\x6F\x6D\x65\x64\x69\x61\x22\x5D","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x61\x6C\x6C\x6F\x77","\x3B","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x61\x6C\x61\x77\x22\x2C\x20\x22\x75\x6C\x61\x77\x22\x2C\x20\x22\x67\x73\x6D\x22\x5D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x69\x6E\x73\x65\x63\x75\x72\x65","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x70\x6F\x72\x74\x22\x2C\x20\x22\x69\x6E\x76\x69\x74\x65\x22\x5D","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x64\x79\x6E\x61\x6D\x69\x63","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xed8a[0];var Sequelize=require(_0xed8a[1]);module[_0xed8a[2]]= {name:{type:Sequelize[_0xed8a[3]],allowNull:false,unique:_0xed8a[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},type:{type:Sequelize.ENUM(_0xed8a[5],_0xed8a[6],_0xed8a[7]),allowNull:false,defaultValue:_0xed8a[5]},context:{type:Sequelize[_0xed8a[3]],allowNull:false,defaultValue:_0xed8a[8]},callingpres:{type:Sequelize.ENUM(_0xed8a[9],_0xed8a[10],_0xed8a[11],_0xed8a[12],_0xed8a[13],_0xed8a[14],_0xed8a[15],_0xed8a[16])},deny:{type:Sequelize[_0xed8a[3]]},permit:{type:Sequelize[_0xed8a[3]]},secret:{type:Sequelize[_0xed8a[3]]},md5secret:{type:Sequelize[_0xed8a[3]]},remotesecret:{type:Sequelize[_0xed8a[3]]},transport:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[17],set:function(_0x1ce4x2){this[_0xed8a[21]](_0xed8a[18],_0x1ce4x2?_0x1ce4x2[_0xed8a[20]](_0xed8a[19]):null)},get:function(){return this[_0xed8a[22]](_0xed8a[18])?this[_0xed8a[22]](_0xed8a[18])[_0xed8a[23]](_0xed8a[19]):null},comment:_0xed8a[24]},dtmfmode:{type:Sequelize.ENUM(_0xed8a[25],_0xed8a[26],_0xed8a[27],_0xed8a[28],_0xed8a[29]),defaultValue:_0xed8a[25]},directmedia:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31],_0xed8a[32],_0xed8a[33],_0xed8a[34]),defaultValue:_0xed8a[31]},directrtpsetup:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[31]},directmediapermit:{type:Sequelize[_0xed8a[3]]},directmediadeny:{type:Sequelize[_0xed8a[3]]},nat:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[35],set:function(_0x1ce4x2){this[_0xed8a[21]](_0xed8a[36],_0x1ce4x2?_0x1ce4x2[_0xed8a[20]](_0xed8a[19]):null)},get:function(){return this[_0xed8a[22]](_0xed8a[36])?this[_0xed8a[22]](_0xed8a[36])[_0xed8a[23]](_0xed8a[19]):null},comment:_0xed8a[37]},callgroup:{type:Sequelize[_0xed8a[3]]},namedcallgroup:{type:Sequelize[_0xed8a[3]]},pickupgroup:{type:Sequelize[_0xed8a[3]]},namedpickupgroup:{type:Sequelize[_0xed8a[3]]},language:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[38]},tonezone:{type:Sequelize[_0xed8a[3]],allowNull:true},disallow:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[39]},allow:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[40],set:function(_0x1ce4x2){this[_0xed8a[21]](_0xed8a[41],_0x1ce4x2?_0x1ce4x2[_0xed8a[20]](_0xed8a[42]):null)},get:function(){return this[_0xed8a[22]](_0xed8a[41])?this[_0xed8a[22]](_0xed8a[41])[_0xed8a[23]](_0xed8a[42]):null},comment:_0xed8a[43]},autoframing:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},insecure:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[44],set:function(_0x1ce4x2){this[_0xed8a[21]](_0xed8a[45],_0x1ce4x2?_0x1ce4x2[_0xed8a[20]](_0xed8a[19]):null)},get:function(){return this[_0xed8a[22]](_0xed8a[45])?this[_0xed8a[22]](_0xed8a[45])[_0xed8a[23]](_0xed8a[19]):null},comment:_0xed8a[46]},trustrpid:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[31]},trust_id_outbound:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[31]},progressinband:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31],_0xed8a[47])},promiscredir:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},useclientcode:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},accountcode:{type:Sequelize.INTEGER(11)},setvar:{type:Sequelize[_0xed8a[3]]},callerid:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[48]},amaflags:{type:Sequelize[_0xed8a[3]]},callcounter:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[30]},busylevel:{type:Sequelize.INTEGER(11)},allowoverlap:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},allowsubscribe:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},allowtransfer:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},ignoresdpversion:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},subscribecontext:{type:Sequelize[_0xed8a[3]]},template:{type:Sequelize[_0xed8a[3]]},videosupport:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31],_0xed8a[49]),defaultValue:_0xed8a[31]},maxcallbitrate:{type:Sequelize.INTEGER(11)},rfc2833compensate:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},mailbox:{type:Sequelize[_0xed8a[3]]},session_timers:{type:Sequelize.ENUM(_0xed8a[50],_0xed8a[51],_0xed8a[52])},session_expires:{type:Sequelize.INTEGER(11)},session_minse:{type:Sequelize.INTEGER(11)},session_refresher:{type:Sequelize.ENUM(_0xed8a[53],_0xed8a[54]),defaultValue:_0xed8a[54]},t38pt_usertpsource:{type:Sequelize[_0xed8a[3]]},regexten:{type:Sequelize[_0xed8a[3]]},fromdomain:{type:Sequelize[_0xed8a[3]]},fromuser:{type:Sequelize[_0xed8a[3]]},port:{type:Sequelize.INTEGER(5)},qualify:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[30]},keepalive:{type:Sequelize.INTEGER(11)},defaultip:{type:Sequelize[_0xed8a[3]]},defaultuser:{type:Sequelize[_0xed8a[3]]},rtptimeout:{type:Sequelize.INTEGER(11)},rtpholdtimeout:{type:Sequelize.INTEGER(11)},rtpkeepalive:{type:Sequelize.INTEGER(11)},sendrpid:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[31]},outboundproxy:{type:Sequelize[_0xed8a[3]]},callbackextension:{type:Sequelize[_0xed8a[3]]},timert1:{type:Sequelize.INTEGER(11)},timerb:{type:Sequelize.INTEGER(11)},qualifyfreq:{type:Sequelize.INTEGER(11)},contactpermit:{type:Sequelize[_0xed8a[3]]},contactdeny:{type:Sequelize[_0xed8a[3]]},contactacl:{type:Sequelize[_0xed8a[3]]},unsolicited_mailbox:{type:Sequelize[_0xed8a[3]]},use_q850_reason:{type:Sequelize[_0xed8a[3]]},maxforwards:{type:Sequelize.INTEGER(11)},encryption:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[31]},avpf:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},force_avp:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},icesupport:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},dtlsenable:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},dtlsverify:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31],_0xed8a[55],_0xed8a[56])},dtlsrekey:{type:Sequelize.INTEGER(11)},dtlscertfile:{type:Sequelize[_0xed8a[3]]},dtlsprivatekey:{type:Sequelize[_0xed8a[3]]},dtlscipher:{type:Sequelize[_0xed8a[3]]},dtlscafile:{type:Sequelize[_0xed8a[3]]},dtlscapath:{type:Sequelize[_0xed8a[3]]},dtlssetup:{type:Sequelize.ENUM(_0xed8a[57],_0xed8a[58],_0xed8a[59]),allowNull:true},dtlsfingerprint:{type:Sequelize[_0xed8a[3]]},usereqphone:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31]),defaultValue:_0xed8a[31]},recordonfeature:{type:Sequelize[_0xed8a[3]]},recordofffeature:{type:Sequelize[_0xed8a[3]]},call_limit:{type:Sequelize.INTEGER(11),defaultValue:1000},registertrying:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},subscribemwi:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31])},vmexten:{type:Sequelize[_0xed8a[3]]},mohinterpret:{type:Sequelize[_0xed8a[3]]},mohsuggest:{type:Sequelize[_0xed8a[3]]},parkinglot:{type:Sequelize[_0xed8a[3]]},description:{type:Sequelize[_0xed8a[3]]},host:{type:Sequelize[_0xed8a[3]],defaultValue:_0xed8a[60]},canreinvite:{type:Sequelize.ENUM(_0xed8a[30],_0xed8a[31],_0xed8a[32],_0xed8a[33],_0xed8a[61]),defaultValue:_0xed8a[31]},registry:{type:Sequelize[_0xed8a[3]]},otherFields:{type:Sequelize[_0xed8a[3]]},active:{type:Sequelize[_0xed8a[62]],allowNull:false,defaultValue:true}}
\ No newline at end of file
index 5cf2fa7..a6768ff 100644 (file)
@@ -1 +1 @@
-var _0x8d95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x72\x75\x6E\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x74\x72\x75\x6E\x6B\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x72\x65\x67\x69\x73\x74\x72\x79\x2E\x65\x6A\x73","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x67\x69\x73\x74\x72\x79","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x72\x65\x67\x69\x73\x74\x65\x72\x73\x2E\x63\x6F\x6E\x66","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x6F\x64\x79"];_0x8d95[0];var jsonpatch=require(_0x8d95[1]);var rp=require(_0x8d95[2]);var moment=require(_0x8d95[3]);var BPromise=require(_0x8d95[4]);var util=require(_0x8d95[5]);var path=require(_0x8d95[6]);var sox=require(_0x8d95[7]);var ejs=require(_0x8d95[8]);var fs=require(_0x8d95[9]);var _=require(_0x8d95[10]);var squel=require(_0x8d95[11]);var crypto=require(_0x8d95[12]);var jsforce=require(_0x8d95[13]);var toCsv=require(_0x8d95[14]);var qs=require(_0x8d95[15]);var logger=require(_0x8d95[17])(_0x8d95[16]);var utils=require(_0x8d95[18]);var config=require(_0x8d95[19]);var db=require(_0x8d95[21])[_0x8d95[20]];var jayson=require(_0x8d95[22]);var client=jayson[_0x8d95[24]][_0x8d95[23]]({port:9002});function respondWithRpcPromise(_0xb5e2x17,_0xb5e2x18,_0xb5e2x19){return  new BPromise(function(_0xb5e2x1a,_0xb5e2x1b){return client[_0x8d95[37]](_0xb5e2x17,_0xb5e2x19)[_0x8d95[36]](function(_0xb5e2x1d){logger[_0x8d95[29]](_0x8d95[25],_0xb5e2x18,_0x8d95[28]);logger[_0x8d95[32]](_0x8d95[30],_0xb5e2x18,_0x8d95[28],JSON[_0x8d95[31]](_0xb5e2x1d));if(_0xb5e2x1d[_0x8d95[26]]){if(_0xb5e2x1d[_0x8d95[26]][_0x8d95[33]]=== 500){logger[_0x8d95[26]](_0x8d95[25],_0xb5e2x18,_0xb5e2x1d[_0x8d95[26]][_0x8d95[34]]);return _0xb5e2x1b(_0xb5e2x1d[_0x8d95[26]][_0x8d95[34]])};logger[_0x8d95[26]](_0x8d95[25],_0xb5e2x18,_0xb5e2x1d[_0x8d95[26]][_0x8d95[34]]);return _0xb5e2x1a(_0xb5e2x1d[_0x8d95[26]][_0x8d95[34]])}else {logger[_0x8d95[29]](_0x8d95[25],_0xb5e2x18,_0x8d95[28]);_0xb5e2x1a(_0xb5e2x1d[_0x8d95[35]][_0x8d95[34]])}})[_0x8d95[27]](function(_0xb5e2x1c){logger[_0x8d95[26]](_0x8d95[25],_0xb5e2x18,_0xb5e2x1c);_0xb5e2x1b(_0xb5e2x1c)})})}function respondWithStatusCode(_0xb5e2x1d,_0xb5e2x1f,_0xb5e2x18){_0xb5e2x1f= _0xb5e2x1f|| 204;return function(_0xb5e2x20){if(_0xb5e2x20){logger[_0x8d95[29]](_0x8d95[30],_0xb5e2x18,_0xb5e2x1f,_0x8d95[38]);logger[_0x8d95[32]](_0x8d95[39],_0xb5e2x18,_0xb5e2x1f,_0x8d95[38]);return _0xb5e2x1d[_0x8d95[40]](_0xb5e2x1f)};return _0xb5e2x1d[_0x8d95[42]](304)[_0x8d95[41]]()}}function respondWithResult(_0xb5e2x1d,_0xb5e2x1f,_0xb5e2x18){_0xb5e2x1f= _0xb5e2x1f|| 200;return function(_0xb5e2x20){if(_0xb5e2x20){logger[_0x8d95[29]](_0x8d95[30],_0xb5e2x18,_0xb5e2x1f,_0x8d95[43]);logger[_0x8d95[32]](_0x8d95[39],_0xb5e2x18,_0xb5e2x1f,_0x8d95[43],JSON[_0x8d95[31]](_0xb5e2x20));return _0xb5e2x1d[_0x8d95[42]](_0xb5e2x1f)[_0x8d95[44]](_0xb5e2x20)};return _0xb5e2x1d[_0x8d95[42]](304)[_0x8d95[41]]()}}function respondWithFilteredResult(_0xb5e2x1d,_0xb5e2x23,_0xb5e2x18){return function(_0xb5e2x20){if(_0xb5e2x20){var _0xb5e2x24=_0xb5e2x20[_0x8d95[45]],_0xb5e2x25=_0xb5e2x23[_0x8d95[46]],_0xb5e2x26=_0xb5e2x23[_0x8d95[46]]+ _0xb5e2x23[_0x8d95[47]],_0xb5e2x1f;if(_0xb5e2x26>= _0xb5e2x24){_0xb5e2x26= _0xb5e2x24;_0xb5e2x1f= 200}else {_0xb5e2x1f= 206};_0xb5e2x1d[_0x8d95[42]](_0xb5e2x1f);logger[_0x8d95[29]](_0x8d95[30],_0xb5e2x18,_0xb5e2x1f,_0x8d95[48]);logger[_0x8d95[32]](_0x8d95[39],_0xb5e2x18,_0xb5e2x1f,_0x8d95[43],JSON[_0x8d95[31]](_0xb5e2x20));return _0xb5e2x1d[_0x8d95[52]](_0x8d95[49],_0xb5e2x25+ _0x8d95[50]+ _0xb5e2x26+ _0x8d95[51]+ _0xb5e2x24)[_0x8d95[44]](_0xb5e2x20)};return null}}function patchUpdates(_0xb5e2x28){return function(_0xb5e2x20){try{jsonpatch[_0x8d95[53]](_0xb5e2x20,_0xb5e2x28,true)}catch(err){return BPromise[_0x8d95[54]](err)};return _0xb5e2x20[_0x8d95[55]]()}}function saveUpdates(_0xb5e2x2a,_0xb5e2x1f,_0xb5e2x18){return function(_0xb5e2x20){if(_0xb5e2x20){return _0xb5e2x20[_0x8d95[57]](_0xb5e2x2a)[_0x8d95[36]](function(_0xb5e2x2b){logger[_0x8d95[29]](_0x8d95[30],_0xb5e2x18,_0xb5e2x1f,_0x8d95[56]);logger[_0x8d95[32]](_0x8d95[39],_0xb5e2x18,_0xb5e2x1f,_0x8d95[56],JSON[_0x8d95[31]](_0xb5e2x20));return _0xb5e2x2b})};return null}}function removeEntity(_0xb5e2x1d,_0xb5e2x1f,_0xb5e2x18){return function(_0xb5e2x20){if(_0xb5e2x20){return _0xb5e2x20[_0x8d95[59]]()[_0x8d95[36]](function(){logger[_0x8d95[29]](_0x8d95[30],_0xb5e2x18,_0xb5e2x1f,_0x8d95[58]);logger[_0x8d95[32]](_0x8d95[39],_0xb5e2x18,_0xb5e2x1f,_0x8d95[58],JSON[_0x8d95[31]](_0xb5e2x20));_0xb5e2x1d[_0x8d95[42]](204)[_0x8d95[41]]()})}}}function handleEntityNotFound(_0xb5e2x1d,_0xb5e2x1f,_0xb5e2x18){return function(_0xb5e2x20){if(!_0xb5e2x20){logger[_0x8d95[26]](_0x8d95[30],_0xb5e2x18,404,_0x8d95[60]);_0xb5e2x1d[_0x8d95[42]](404)[_0x8d95[41]]();return null};return _0xb5e2x20}}function handleError(_0xb5e2x1d,_0xb5e2x1f,_0xb5e2x18){_0xb5e2x1f= _0xb5e2x1f|| 500;return function(_0xb5e2x1c){logger[_0x8d95[26]](_0x8d95[30],_0xb5e2x18,_0xb5e2x1f,JSON[_0x8d95[31]](_0xb5e2x1c));delete _0xb5e2x1c[_0x8d95[61]];_0xb5e2x1d[_0x8d95[42]](_0xb5e2x1f)[_0x8d95[62]](_0xb5e2x1c)}}exports[_0x8d95[63]]= function(_0xb5e2x19,_0xb5e2x1d){var _0xb5e2x23={},_0xb5e2x2f={};_0xb5e2x2f[_0x8d95[64]]= _[_0x8d95[67]](db[_0x8d95[66]][_0x8d95[65]]);_0xb5e2x2f[_0x8d95[68]]= _[_0x8d95[67]](_0xb5e2x19[_0x8d95[68]]);_0xb5e2x2f[_0x8d95[69]]= _[_0x8d95[70]](_0xb5e2x2f[_0x8d95[64]],_0xb5e2x2f[_0x8d95[68]]);_0xb5e2x23[_0x8d95[71]]= _[_0x8d95[70]](_0xb5e2x2f[_0x8d95[64]],qs[_0x8d95[72]](_0xb5e2x19[_0x8d95[68]][_0x8d95[72]]));_0xb5e2x23[_0x8d95[71]]= (_0xb5e2x23[_0x8d95[71]][_0x8d95[73]])?_0xb5e2x23[_0x8d95[71]]:_0xb5e2x2f[_0x8d95[64]];if(!_0xb5e2x19[_0x8d95[68]][_0x8d95[75]](_0x8d95[74])){_0xb5e2x23[_0x8d95[47]]= qs[_0x8d95[47]](_0xb5e2x19[_0x8d95[68]][_0x8d95[47]]);_0xb5e2x23[_0x8d95[46]]= qs[_0x8d95[46]](_0xb5e2x19[_0x8d95[68]][_0x8d95[46]])};_0xb5e2x23[_0x8d95[76]]= qs[_0x8d95[77]](_0xb5e2x19[_0x8d95[68]][_0x8d95[77]]);_0xb5e2x23[_0x8d95[78]]= qs[_0x8d95[69]](_[_0x8d95[79]](_0xb5e2x19[_0x8d95[68]],_0xb5e2x2f[_0x8d95[69]]));if(_0xb5e2x19[_0x8d95[68]][_0x8d95[80]]){_0xb5e2x23[_0x8d95[78]]= _[_0x8d95[83]](_0xb5e2x23[_0x8d95[78]],{$or:_[_0x8d95[82]](_0xb5e2x23[_0x8d95[71]],function(_0xb5e2x30){var _0xb5e2x31={};_0xb5e2x31[_0xb5e2x30]= {$like:_0x8d95[81]+ _0xb5e2x19[_0x8d95[68]][_0x8d95[80]]+ _0x8d95[81]};return _0xb5e2x31})})};_0xb5e2x23= _[_0x8d95[83]]({},_0xb5e2x23,_0xb5e2x19[_0x8d95[84]]);return db[_0x8d95[66]][_0x8d95[85]](_0xb5e2x23)[_0x8d95[36]](respondWithFilteredResult(_0xb5e2x1d,_0xb5e2x23,_0x8d95[63]))[_0x8d95[27]](handleError(_0xb5e2x1d,null,_0x8d95[63]))};exports[_0x8d95[86]]= function(_0xb5e2x19,_0xb5e2x1d){var _0xb5e2x23={raw:false,where:{id:_0xb5e2x19[_0x8d95[88]][_0x8d95[87]]}},_0xb5e2x2f={};_0xb5e2x2f[_0x8d95[64]]= _[_0x8d95[67]](db[_0x8d95[66]][_0x8d95[65]]);_0xb5e2x2f[_0x8d95[68]]= _[_0x8d95[67]](_0xb5e2x19[_0x8d95[68]]);_0xb5e2x2f[_0x8d95[69]]= _[_0x8d95[70]](_0xb5e2x2f[_0x8d95[64]],_0xb5e2x2f[_0x8d95[68]]);_0xb5e2x23[_0x8d95[71]]= _[_0x8d95[70]](_0xb5e2x2f[_0x8d95[64]],qs[_0x8d95[72]](_0xb5e2x19[_0x8d95[68]][_0x8d95[72]]));_0xb5e2x23[_0x8d95[71]]= (_0xb5e2x23[_0x8d95[71]][_0x8d95[73]])?_0xb5e2x23[_0x8d95[71]]:_0xb5e2x2f[_0x8d95[64]];_0xb5e2x23= _[_0x8d95[83]]({},_0xb5e2x23,_0xb5e2x19[_0x8d95[84]]);return db[_0x8d95[66]][_0x8d95[89]](_0xb5e2x23)[_0x8d95[36]](handleEntityNotFound(_0xb5e2x1d,null,_0x8d95[86]))[_0x8d95[36]](respondWithResult(_0xb5e2x1d,null,_0x8d95[86]))[_0x8d95[27]](handleError(_0xb5e2x1d,null,_0x8d95[86]))};exports[_0x8d95[90]]= function(_0xb5e2x19,_0xb5e2x1d,_0xb5e2x32){var _0xb5e2x33;return db[_0x8d95[66]][_0x8d95[90]](_0xb5e2x19[_0x8d95[105]],{raw:true})[_0x8d95[36]](function(_0xb5e2x20){_0xb5e2x33= _0xb5e2x20;return db[_0x8d95[66]][_0x8d95[104]]({raw:true})})[_0x8d95[36]](function(_0xb5e2x34){var _0xb5e2x35=fs[_0x8d95[97]](path[_0x8d95[95]](config[_0x8d95[93]],_0x8d95[94]),_0x8d95[96]);var _0xb5e2x36=fs[_0x8d95[97]](path[_0x8d95[95]](config[_0x8d95[93]],_0x8d95[98]),_0x8d95[96]);var _0xb5e2x37=ejs[_0x8d95[99]](_0xb5e2x35,{trunks:_0xb5e2x34|| []});fs[_0x8d95[101]](_0x8d95[100],_0xb5e2x37);if(_0xb5e2x33[_0x8d95[102]]){var _0xb5e2x38=ejs[_0x8d95[99]](_0xb5e2x36,{trunks:_0xb5e2x34|| []});fs[_0x8d95[101]](_0x8d95[103],_0xb5e2x38)}})[_0x8d95[36]](function(){return respondWithRpcPromise(_0x8d95[91],_0x8d95[90],{module:_0x8d95[92]})})[_0x8d95[36]](function(){return _0xb5e2x33})[_0x8d95[36]](respondWithResult(_0xb5e2x1d,201,_0x8d95[90]))[_0x8d95[27]](handleError(_0xb5e2x1d,null,_0x8d95[90]))};exports[_0x8d95[57]]= function(_0xb5e2x19,_0xb5e2x1d,_0xb5e2x32){var _0xb5e2x33;return db[_0x8d95[66]][_0x8d95[89]]({where:{id:_0xb5e2x19[_0x8d95[88]][_0x8d95[87]]}})[_0x8d95[36]](handleEntityNotFound(_0xb5e2x1d,null,_0x8d95[57]))[_0x8d95[36]](saveUpdates(_0xb5e2x19[_0x8d95[105]],null,_0x8d95[57]))[_0x8d95[36]](function(_0xb5e2x20){if(_0xb5e2x20){_0xb5e2x33= _0xb5e2x20;return db[_0x8d95[66]][_0x8d95[104]]({raw:true})}})[_0x8d95[36]](function(_0xb5e2x34){if(_0xb5e2x34){var _0xb5e2x35=fs[_0x8d95[97]](path[_0x8d95[95]](config[_0x8d95[93]],_0x8d95[94]),_0x8d95[96]);var _0xb5e2x36=fs[_0x8d95[97]](path[_0x8d95[95]](config[_0x8d95[93]],_0x8d95[98]),_0x8d95[96]);var _0xb5e2x37=ejs[_0x8d95[99]](_0xb5e2x35,{trunks:_0xb5e2x34|| []});fs[_0x8d95[101]](_0x8d95[100],_0xb5e2x37);var _0xb5e2x38=ejs[_0x8d95[99]](_0xb5e2x36,{trunks:_0xb5e2x34|| []});fs[_0x8d95[101]](_0x8d95[103],_0xb5e2x38);return respondWithRpcPromise(_0x8d95[91],_0x8d95[57],{module:_0x8d95[92]})};return null})[_0x8d95[36]](function(_0xb5e2x20){if(_0xb5e2x20){return _0xb5e2x33}})[_0x8d95[36]](respondWithResult(_0xb5e2x1d,null,_0x8d95[57]))[_0x8d95[27]](handleError(_0xb5e2x1d,null,_0x8d95[57]))};exports[_0x8d95[59]]= function(_0xb5e2x19,_0xb5e2x1d,_0xb5e2x32){var _0xb5e2x33;return db[_0x8d95[66]][_0x8d95[89]]({where:{id:_0xb5e2x19[_0x8d95[88]][_0x8d95[87]]}})[_0x8d95[36]](handleEntityNotFound(_0xb5e2x1d,null,_0x8d95[59]))[_0x8d95[36]](removeEntity(_0xb5e2x1d,null,_0x8d95[59]))[_0x8d95[36]](function(){return db[_0x8d95[66]][_0x8d95[104]]({raw:true})})[_0x8d95[36]](function(_0xb5e2x34){var _0xb5e2x35=fs[_0x8d95[97]](path[_0x8d95[95]](config[_0x8d95[93]],_0x8d95[94]),_0x8d95[96]);var _0xb5e2x36=fs[_0x8d95[97]](path[_0x8d95[95]](config[_0x8d95[93]],_0x8d95[98]),_0x8d95[96]);var _0xb5e2x37=ejs[_0x8d95[99]](_0xb5e2x35,{trunks:_0xb5e2x34});var _0xb5e2x38=ejs[_0x8d95[99]](_0xb5e2x36,{trunks:_0xb5e2x34});fs[_0x8d95[101]](_0x8d95[100],_0xb5e2x37);fs[_0x8d95[101]](_0x8d95[103],_0xb5e2x38);return respondWithRpcPromise(_0x8d95[91],_0x8d95[59],{module:_0x8d95[92]})})[_0x8d95[27]](handleError(_0xb5e2x1d,null,_0x8d95[59]))}
\ No newline at end of file
+var _0x85a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x72\x75\x6E\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x74\x72\x75\x6E\x6B\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x72\x65\x67\x69\x73\x74\x72\x79\x2E\x65\x6A\x73","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x67\x69\x73\x74\x72\x79","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x72\x65\x67\x69\x73\x74\x65\x72\x73\x2E\x63\x6F\x6E\x66","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x6F\x64\x79"];_0x85a7[0];var jsonpatch=require(_0x85a7[1]);var rp=require(_0x85a7[2]);var moment=require(_0x85a7[3]);var BPromise=require(_0x85a7[4]);var util=require(_0x85a7[5]);var path=require(_0x85a7[6]);var sox=require(_0x85a7[7]);var ejs=require(_0x85a7[8]);var fs=require(_0x85a7[9]);var _=require(_0x85a7[10]);var squel=require(_0x85a7[11]);var crypto=require(_0x85a7[12]);var jsforce=require(_0x85a7[13]);var toCsv=require(_0x85a7[14]);var qs=require(_0x85a7[15]);var logger=require(_0x85a7[17])(_0x85a7[16]);var utils=require(_0x85a7[18]);var config=require(_0x85a7[19]);var db=require(_0x85a7[21])[_0x85a7[20]];var jayson=require(_0x85a7[22]);var client=jayson[_0x85a7[24]][_0x85a7[23]]({port:9002});function respondWithRpcPromise(_0x878ex17,_0x878ex18,_0x878ex19){return  new BPromise(function(_0x878ex1a,_0x878ex1b){return client[_0x85a7[37]](_0x878ex17,_0x878ex19)[_0x85a7[36]](function(_0x878ex1d){logger[_0x85a7[29]](_0x85a7[25],_0x878ex18,_0x85a7[28]);logger[_0x85a7[32]](_0x85a7[30],_0x878ex18,_0x85a7[28],JSON[_0x85a7[31]](_0x878ex1d));if(_0x878ex1d[_0x85a7[26]]){if(_0x878ex1d[_0x85a7[26]][_0x85a7[33]]=== 500){logger[_0x85a7[26]](_0x85a7[25],_0x878ex18,_0x878ex1d[_0x85a7[26]][_0x85a7[34]]);return _0x878ex1b(_0x878ex1d[_0x85a7[26]][_0x85a7[34]])};logger[_0x85a7[26]](_0x85a7[25],_0x878ex18,_0x878ex1d[_0x85a7[26]][_0x85a7[34]]);return _0x878ex1a(_0x878ex1d[_0x85a7[26]][_0x85a7[34]])}else {logger[_0x85a7[29]](_0x85a7[25],_0x878ex18,_0x85a7[28]);_0x878ex1a(_0x878ex1d[_0x85a7[35]][_0x85a7[34]])}})[_0x85a7[27]](function(_0x878ex1c){logger[_0x85a7[26]](_0x85a7[25],_0x878ex18,_0x878ex1c);_0x878ex1b(_0x878ex1c)})})}function respondWithStatusCode(_0x878ex1d,_0x878ex1f,_0x878ex18){_0x878ex1f= _0x878ex1f|| 204;return function(_0x878ex20){if(_0x878ex20){logger[_0x85a7[29]](_0x85a7[30],_0x878ex18,_0x878ex1f,_0x85a7[38]);logger[_0x85a7[32]](_0x85a7[39],_0x878ex18,_0x878ex1f,_0x85a7[38]);return _0x878ex1d[_0x85a7[40]](_0x878ex1f)};return _0x878ex1d[_0x85a7[42]](304)[_0x85a7[41]]()}}function respondWithResult(_0x878ex1d,_0x878ex1f,_0x878ex18){_0x878ex1f= _0x878ex1f|| 200;return function(_0x878ex20){if(_0x878ex20){logger[_0x85a7[29]](_0x85a7[30],_0x878ex18,_0x878ex1f,_0x85a7[43]);logger[_0x85a7[32]](_0x85a7[39],_0x878ex18,_0x878ex1f,_0x85a7[43],JSON[_0x85a7[31]](_0x878ex20));return _0x878ex1d[_0x85a7[42]](_0x878ex1f)[_0x85a7[44]](_0x878ex20)};return _0x878ex1d[_0x85a7[42]](304)[_0x85a7[41]]()}}function respondWithFilteredResult(_0x878ex1d,_0x878ex23,_0x878ex18){return function(_0x878ex20){if(_0x878ex20){var _0x878ex24=_0x878ex20[_0x85a7[45]],_0x878ex25=_0x878ex23[_0x85a7[46]],_0x878ex26=_0x878ex23[_0x85a7[46]]+ _0x878ex23[_0x85a7[47]],_0x878ex1f;if(_0x878ex26>= _0x878ex24){_0x878ex26= _0x878ex24;_0x878ex1f= 200}else {_0x878ex1f= 206};_0x878ex1d[_0x85a7[42]](_0x878ex1f);logger[_0x85a7[29]](_0x85a7[30],_0x878ex18,_0x878ex1f,_0x85a7[48]);logger[_0x85a7[32]](_0x85a7[39],_0x878ex18,_0x878ex1f,_0x85a7[43],JSON[_0x85a7[31]](_0x878ex20));return _0x878ex1d[_0x85a7[52]](_0x85a7[49],_0x878ex25+ _0x85a7[50]+ _0x878ex26+ _0x85a7[51]+ _0x878ex24)[_0x85a7[44]](_0x878ex20)};return null}}function patchUpdates(_0x878ex28){return function(_0x878ex20){try{jsonpatch[_0x85a7[53]](_0x878ex20,_0x878ex28,true)}catch(err){return BPromise[_0x85a7[54]](err)};return _0x878ex20[_0x85a7[55]]()}}function saveUpdates(_0x878ex2a,_0x878ex1f,_0x878ex18){return function(_0x878ex20){if(_0x878ex20){return _0x878ex20[_0x85a7[57]](_0x878ex2a)[_0x85a7[36]](function(_0x878ex2b){logger[_0x85a7[29]](_0x85a7[30],_0x878ex18,_0x878ex1f,_0x85a7[56]);logger[_0x85a7[32]](_0x85a7[39],_0x878ex18,_0x878ex1f,_0x85a7[56],JSON[_0x85a7[31]](_0x878ex20));return _0x878ex2b})};return null}}function removeEntity(_0x878ex1d,_0x878ex1f,_0x878ex18){return function(_0x878ex20){if(_0x878ex20){return _0x878ex20[_0x85a7[59]]()[_0x85a7[36]](function(){logger[_0x85a7[29]](_0x85a7[30],_0x878ex18,_0x878ex1f,_0x85a7[58]);logger[_0x85a7[32]](_0x85a7[39],_0x878ex18,_0x878ex1f,_0x85a7[58],JSON[_0x85a7[31]](_0x878ex20));_0x878ex1d[_0x85a7[42]](204)[_0x85a7[41]]()})}}}function handleEntityNotFound(_0x878ex1d,_0x878ex1f,_0x878ex18){return function(_0x878ex20){if(!_0x878ex20){logger[_0x85a7[26]](_0x85a7[30],_0x878ex18,404,_0x85a7[60]);_0x878ex1d[_0x85a7[42]](404)[_0x85a7[41]]();return null};return _0x878ex20}}function handleError(_0x878ex1d,_0x878ex1f,_0x878ex18){_0x878ex1f= _0x878ex1f|| 500;return function(_0x878ex1c){logger[_0x85a7[26]](_0x85a7[30],_0x878ex18,_0x878ex1f,JSON[_0x85a7[31]](_0x878ex1c));delete _0x878ex1c[_0x85a7[61]];_0x878ex1d[_0x85a7[42]](_0x878ex1f)[_0x85a7[62]](_0x878ex1c)}}exports[_0x85a7[63]]= function(_0x878ex19,_0x878ex1d){var _0x878ex23={},_0x878ex2f={};_0x878ex2f[_0x85a7[64]]= _[_0x85a7[67]](db[_0x85a7[66]][_0x85a7[65]]);_0x878ex2f[_0x85a7[68]]= _[_0x85a7[67]](_0x878ex19[_0x85a7[68]]);_0x878ex2f[_0x85a7[69]]= _[_0x85a7[70]](_0x878ex2f[_0x85a7[64]],_0x878ex2f[_0x85a7[68]]);_0x878ex23[_0x85a7[71]]= _[_0x85a7[70]](_0x878ex2f[_0x85a7[64]],qs[_0x85a7[72]](_0x878ex19[_0x85a7[68]][_0x85a7[72]]));_0x878ex23[_0x85a7[71]]= (_0x878ex23[_0x85a7[71]][_0x85a7[73]])?_0x878ex23[_0x85a7[71]]:_0x878ex2f[_0x85a7[64]];if(!_0x878ex19[_0x85a7[68]][_0x85a7[75]](_0x85a7[74])){_0x878ex23[_0x85a7[47]]= qs[_0x85a7[47]](_0x878ex19[_0x85a7[68]][_0x85a7[47]]);_0x878ex23[_0x85a7[46]]= qs[_0x85a7[46]](_0x878ex19[_0x85a7[68]][_0x85a7[46]])};_0x878ex23[_0x85a7[76]]= qs[_0x85a7[77]](_0x878ex19[_0x85a7[68]][_0x85a7[77]]);_0x878ex23[_0x85a7[78]]= qs[_0x85a7[69]](_[_0x85a7[79]](_0x878ex19[_0x85a7[68]],_0x878ex2f[_0x85a7[69]]));if(_0x878ex19[_0x85a7[68]][_0x85a7[80]]){_0x878ex23[_0x85a7[78]]= _[_0x85a7[83]](_0x878ex23[_0x85a7[78]],{$or:_[_0x85a7[82]](_0x878ex23[_0x85a7[71]],function(_0x878ex30){var _0x878ex31={};_0x878ex31[_0x878ex30]= {$like:_0x85a7[81]+ _0x878ex19[_0x85a7[68]][_0x85a7[80]]+ _0x85a7[81]};return _0x878ex31})})};_0x878ex23= _[_0x85a7[83]]({},_0x878ex23,_0x878ex19[_0x85a7[84]]);return db[_0x85a7[66]][_0x85a7[85]](_0x878ex23)[_0x85a7[36]](respondWithFilteredResult(_0x878ex1d,_0x878ex23,_0x85a7[63]))[_0x85a7[27]](handleError(_0x878ex1d,null,_0x85a7[63]))};exports[_0x85a7[86]]= function(_0x878ex19,_0x878ex1d){var _0x878ex23={raw:false,where:{id:_0x878ex19[_0x85a7[88]][_0x85a7[87]]}},_0x878ex2f={};_0x878ex2f[_0x85a7[64]]= _[_0x85a7[67]](db[_0x85a7[66]][_0x85a7[65]]);_0x878ex2f[_0x85a7[68]]= _[_0x85a7[67]](_0x878ex19[_0x85a7[68]]);_0x878ex2f[_0x85a7[69]]= _[_0x85a7[70]](_0x878ex2f[_0x85a7[64]],_0x878ex2f[_0x85a7[68]]);_0x878ex23[_0x85a7[71]]= _[_0x85a7[70]](_0x878ex2f[_0x85a7[64]],qs[_0x85a7[72]](_0x878ex19[_0x85a7[68]][_0x85a7[72]]));_0x878ex23[_0x85a7[71]]= (_0x878ex23[_0x85a7[71]][_0x85a7[73]])?_0x878ex23[_0x85a7[71]]:_0x878ex2f[_0x85a7[64]];_0x878ex23= _[_0x85a7[83]]({},_0x878ex23,_0x878ex19[_0x85a7[84]]);return db[_0x85a7[66]][_0x85a7[89]](_0x878ex23)[_0x85a7[36]](handleEntityNotFound(_0x878ex1d,null,_0x85a7[86]))[_0x85a7[36]](respondWithResult(_0x878ex1d,null,_0x85a7[86]))[_0x85a7[27]](handleError(_0x878ex1d,null,_0x85a7[86]))};exports[_0x85a7[90]]= function(_0x878ex19,_0x878ex1d,_0x878ex32){var _0x878ex33;return db[_0x85a7[66]][_0x85a7[90]](_0x878ex19[_0x85a7[105]],{raw:true})[_0x85a7[36]](function(_0x878ex20){_0x878ex33= _0x878ex20;return db[_0x85a7[66]][_0x85a7[104]]({raw:true})})[_0x85a7[36]](function(_0x878ex34){var _0x878ex35=fs[_0x85a7[97]](path[_0x85a7[95]](config[_0x85a7[93]],_0x85a7[94]),_0x85a7[96]);var _0x878ex36=fs[_0x85a7[97]](path[_0x85a7[95]](config[_0x85a7[93]],_0x85a7[98]),_0x85a7[96]);var _0x878ex37=ejs[_0x85a7[99]](_0x878ex35,{trunks:_0x878ex34|| []});fs[_0x85a7[101]](_0x85a7[100],_0x878ex37);if(_0x878ex33[_0x85a7[102]]){var _0x878ex38=ejs[_0x85a7[99]](_0x878ex36,{trunks:_0x878ex34|| []});fs[_0x85a7[101]](_0x85a7[103],_0x878ex38)}})[_0x85a7[36]](function(){return respondWithRpcPromise(_0x85a7[91],_0x85a7[90],{module:_0x85a7[92]})})[_0x85a7[36]](function(){return _0x878ex33})[_0x85a7[36]](respondWithResult(_0x878ex1d,201,_0x85a7[90]))[_0x85a7[27]](handleError(_0x878ex1d,null,_0x85a7[90]))};exports[_0x85a7[57]]= function(_0x878ex19,_0x878ex1d,_0x878ex32){var _0x878ex33;return db[_0x85a7[66]][_0x85a7[89]]({where:{id:_0x878ex19[_0x85a7[88]][_0x85a7[87]]}})[_0x85a7[36]](handleEntityNotFound(_0x878ex1d,null,_0x85a7[57]))[_0x85a7[36]](saveUpdates(_0x878ex19[_0x85a7[105]],null,_0x85a7[57]))[_0x85a7[36]](function(_0x878ex20){if(_0x878ex20){_0x878ex33= _0x878ex20;return db[_0x85a7[66]][_0x85a7[104]]({raw:true})}})[_0x85a7[36]](function(_0x878ex34){if(_0x878ex34){var _0x878ex35=fs[_0x85a7[97]](path[_0x85a7[95]](config[_0x85a7[93]],_0x85a7[94]),_0x85a7[96]);var _0x878ex36=fs[_0x85a7[97]](path[_0x85a7[95]](config[_0x85a7[93]],_0x85a7[98]),_0x85a7[96]);var _0x878ex37=ejs[_0x85a7[99]](_0x878ex35,{trunks:_0x878ex34|| []});fs[_0x85a7[101]](_0x85a7[100],_0x878ex37);var _0x878ex38=ejs[_0x85a7[99]](_0x878ex36,{trunks:_0x878ex34|| []});fs[_0x85a7[101]](_0x85a7[103],_0x878ex38);return respondWithRpcPromise(_0x85a7[91],_0x85a7[57],{module:_0x85a7[92]})};return null})[_0x85a7[36]](function(_0x878ex20){if(_0x878ex20){return _0x878ex33}})[_0x85a7[36]](respondWithResult(_0x878ex1d,null,_0x85a7[57]))[_0x85a7[27]](handleError(_0x878ex1d,null,_0x85a7[57]))};exports[_0x85a7[59]]= function(_0x878ex19,_0x878ex1d,_0x878ex32){var _0x878ex33;return db[_0x85a7[66]][_0x85a7[89]]({where:{id:_0x878ex19[_0x85a7[88]][_0x85a7[87]]}})[_0x85a7[36]](handleEntityNotFound(_0x878ex1d,null,_0x85a7[59]))[_0x85a7[36]](removeEntity(_0x878ex1d,null,_0x85a7[59]))[_0x85a7[36]](function(){return db[_0x85a7[66]][_0x85a7[104]]({raw:true})})[_0x85a7[36]](function(_0x878ex34){var _0x878ex35=fs[_0x85a7[97]](path[_0x85a7[95]](config[_0x85a7[93]],_0x85a7[94]),_0x85a7[96]);var _0x878ex36=fs[_0x85a7[97]](path[_0x85a7[95]](config[_0x85a7[93]],_0x85a7[98]),_0x85a7[96]);var _0x878ex37=ejs[_0x85a7[99]](_0x878ex35,{trunks:_0x878ex34});var _0x878ex38=ejs[_0x85a7[99]](_0x878ex36,{trunks:_0x878ex34});fs[_0x85a7[101]](_0x85a7[100],_0x878ex37);fs[_0x85a7[101]](_0x85a7[103],_0x878ex38);return respondWithRpcPromise(_0x85a7[91],_0x85a7[59],{module:_0x85a7[92]})})[_0x85a7[27]](handleError(_0x878ex1d,null,_0x85a7[59]))}
\ No newline at end of file
index bb6cec4..ced3259 100644 (file)
@@ -1 +1 @@
-var _0xe8cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x75\x6E\x6B","\x74\x6F\x6F\x6C\x73\x5F\x74\x72\x75\x6E\x6B\x73","\x64\x65\x66\x69\x6E\x65"];_0xe8cc[0];var _=require(_0xe8cc[1]);var util=require(_0xe8cc[2]);var logger=require(_0xe8cc[4])(_0xe8cc[3]);var attributes=require(_0xe8cc[5]);module[_0xe8cc[6]]= function(_0xcbb1x5,_0xcbb1x6){return _0xcbb1x5[_0xe8cc[9]](_0xe8cc[7],attributes,{tableName:_0xe8cc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xd2cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x75\x6E\x6B","\x74\x6F\x6F\x6C\x73\x5F\x74\x72\x75\x6E\x6B\x73","\x64\x65\x66\x69\x6E\x65"];_0xd2cb[0];var _=require(_0xd2cb[1]);var util=require(_0xd2cb[2]);var logger=require(_0xd2cb[4])(_0xd2cb[3]);var attributes=require(_0xd2cb[5]);module[_0xd2cb[6]]= function(_0x7f57x5,_0x7f57x6){return _0x7f57x5[_0xd2cb[9]](_0xd2cb[7],attributes,{tableName:_0xd2cb[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index e0c6af2..03161d6 100644 (file)
@@ -1 +1 @@
-var _0x216d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x72\x75\x6E\x6B","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x72\x75\x6E\x6B","\x53\x68\x6F\x77\x54\x72\x75\x6E\x6B","\x66\x69\x6E\x64"];_0x216d[0];var _=require(_0x216d[1]);var util=require(_0x216d[2]);var moment=require(_0x216d[3]);var BPromise=require(_0x216d[4]);var db=require(_0x216d[6])[_0x216d[5]];var utils=require(_0x216d[7]);var logger=require(_0x216d[9])(_0x216d[8]);var jayson=require(_0x216d[10]);var client=jayson[_0x216d[12]][_0x216d[11]]({port:9002});function respondWithRpcPromise(_0xffecxb,_0xffecxc,_0xffecxd){return  new BPromise(function(_0xffecxe,_0xffecxf){return client[_0x216d[25]](_0xffecxb,_0xffecxd)[_0x216d[24]](function(_0xffecx11){logger[_0x216d[17]](_0x216d[13],_0xffecxc,_0x216d[16]);logger[_0x216d[20]](_0x216d[18],_0xffecxc,_0x216d[16],JSON[_0x216d[19]](_0xffecx11));if(_0xffecx11[_0x216d[14]]){if(_0xffecx11[_0x216d[14]][_0x216d[21]]=== 500){logger[_0x216d[14]](_0x216d[13],_0xffecxc,_0xffecx11[_0x216d[14]][_0x216d[22]]);return _0xffecxf(_0xffecx11[_0x216d[14]][_0x216d[22]])};logger[_0x216d[14]](_0x216d[13],_0xffecxc,_0xffecx11[_0x216d[14]][_0x216d[22]]);return _0xffecxe(_0xffecx11[_0x216d[14]][_0x216d[22]])}else {logger[_0x216d[17]](_0x216d[13],_0xffecxc,_0x216d[16]);_0xffecxe(_0xffecx11[_0x216d[23]][_0x216d[22]])}})[_0x216d[15]](function(_0xffecx10){logger[_0x216d[14]](_0x216d[13],_0xffecxc,_0xffecx10);_0xffecxf(_0xffecx10)})})}exports[_0x216d[26]]= function(_0xffecxd){var _0xffecx12=this;return  new Promise(function(_0xffecxe,_0xffecxf){return db[_0x216d[37]][_0x216d[36]]({raw:_0xffecxd[_0x216d[27]]?(_0xffecxd[_0x216d[27]][_0x216d[28]]=== undefined)?true:false:true,where:_0xffecxd[_0x216d[27]]?_0xffecxd[_0x216d[27]][_0x216d[29]]|| null:null,attributes:_0xffecxd[_0x216d[27]]?_0xffecxd[_0x216d[27]][_0x216d[30]]|| null:null,limit:_0xffecxd[_0x216d[27]]?_0xffecxd[_0x216d[27]][_0x216d[31]]|| null:null,include:_0xffecxd[_0x216d[27]]?(_0xffecxd[_0x216d[27]][_0x216d[32]]?_[_0x216d[35]](_0xffecxd[_0x216d[27]][_0x216d[32]],function(_0xffecx13){return {model:db[_0xffecx13[_0x216d[33]]],as:_0xffecx13[_0x216d[34]],attributes:_0xffecx13[_0x216d[30]],include:_0xffecx13[_0x216d[32]]?_[_0x216d[35]](_0xffecx13[_0x216d[32]],function(_0xffecx14){return {model:db[_0xffecx14[_0x216d[33]]],as:_0xffecx14[_0x216d[34]],attributes:_0xffecx14[_0x216d[30]],include:_0xffecx14[_0x216d[32]]?_[_0x216d[35]](_0xffecx14[_0x216d[32]],function(_0xffecx15){return {model:db[_0xffecx15[_0x216d[33]]],as:_0xffecx15[_0x216d[34]],attributes:_0xffecx15[_0x216d[30]]}}):[]}}):[]}}):[]):[]})[_0x216d[24]](function(_0xffecx11){logger[_0x216d[17]](_0x216d[26],_0xffecxd);logger[_0x216d[20]](_0x216d[26],_0xffecxd,JSON[_0x216d[19]](_0xffecx11));_0xffecxe(_0xffecx11)})[_0x216d[15]](function(_0xffecx10){logger[_0x216d[14]](_0x216d[26],_0xffecx10[_0x216d[22]],_0xffecxd);_0xffecxf(_0xffecx12[_0x216d[14]](500,_0xffecx10[_0x216d[22]]))})})};exports[_0x216d[38]]= function(_0xffecxd){var _0xffecx12=this;return  new Promise(function(_0xffecxe,_0xffecxf){return db[_0x216d[37]][_0x216d[39]]({raw:_0xffecxd[_0x216d[27]]?(_0xffecxd[_0x216d[27]][_0x216d[28]]=== undefined)?true:false:true,where:_0xffecxd[_0x216d[27]]?_0xffecxd[_0x216d[27]][_0x216d[29]]|| null:null,attributes:_0xffecxd[_0x216d[27]]?_0xffecxd[_0x216d[27]][_0x216d[30]]|| null:null,include:_0xffecxd[_0x216d[27]]?(_0xffecxd[_0x216d[27]][_0x216d[32]]?_[_0x216d[35]](_0xffecxd[_0x216d[27]][_0x216d[32]],function(_0xffecx13){return {model:db[_0xffecx13[_0x216d[33]]],as:_0xffecx13[_0x216d[34]],attributes:_0xffecx13[_0x216d[30]],include:_0xffecx13[_0x216d[32]]?_[_0x216d[35]](_0xffecx13[_0x216d[32]],function(_0xffecx14){return {model:db[_0xffecx14[_0x216d[33]]],as:_0xffecx14[_0x216d[34]],attributes:_0xffecx14[_0x216d[30]],include:_0xffecx14[_0x216d[32]]?_[_0x216d[35]](_0xffecx14[_0x216d[32]],function(_0xffecx15){return {model:db[_0xffecx15[_0x216d[33]]],as:_0xffecx15[_0x216d[34]],attributes:_0xffecx15[_0x216d[30]]}}):[]}}):[]}}):[]):[]})[_0x216d[24]](function(_0xffecx11){logger[_0x216d[17]](_0x216d[38],_0xffecxd);logger[_0x216d[20]](_0x216d[38],_0xffecxd,JSON[_0x216d[19]](_0xffecx11));_0xffecxe(_0xffecx11)})[_0x216d[15]](function(_0xffecx10){logger[_0x216d[14]](_0x216d[38],_0xffecx10[_0x216d[22]],_0xffecxd);_0xffecxf(_0xffecx12[_0x216d[14]](500,_0xffecx10[_0x216d[22]]))})})}
\ No newline at end of file
+var _0x288c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x72\x75\x6E\x6B","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x72\x75\x6E\x6B","\x53\x68\x6F\x77\x54\x72\x75\x6E\x6B","\x66\x69\x6E\x64"];_0x288c[0];var _=require(_0x288c[1]);var util=require(_0x288c[2]);var moment=require(_0x288c[3]);var BPromise=require(_0x288c[4]);var db=require(_0x288c[6])[_0x288c[5]];var utils=require(_0x288c[7]);var logger=require(_0x288c[9])(_0x288c[8]);var jayson=require(_0x288c[10]);var client=jayson[_0x288c[12]][_0x288c[11]]({port:9002});function respondWithRpcPromise(_0x9997xb,_0x9997xc,_0x9997xd){return  new BPromise(function(_0x9997xe,_0x9997xf){return client[_0x288c[25]](_0x9997xb,_0x9997xd)[_0x288c[24]](function(_0x9997x11){logger[_0x288c[17]](_0x288c[13],_0x9997xc,_0x288c[16]);logger[_0x288c[20]](_0x288c[18],_0x9997xc,_0x288c[16],JSON[_0x288c[19]](_0x9997x11));if(_0x9997x11[_0x288c[14]]){if(_0x9997x11[_0x288c[14]][_0x288c[21]]=== 500){logger[_0x288c[14]](_0x288c[13],_0x9997xc,_0x9997x11[_0x288c[14]][_0x288c[22]]);return _0x9997xf(_0x9997x11[_0x288c[14]][_0x288c[22]])};logger[_0x288c[14]](_0x288c[13],_0x9997xc,_0x9997x11[_0x288c[14]][_0x288c[22]]);return _0x9997xe(_0x9997x11[_0x288c[14]][_0x288c[22]])}else {logger[_0x288c[17]](_0x288c[13],_0x9997xc,_0x288c[16]);_0x9997xe(_0x9997x11[_0x288c[23]][_0x288c[22]])}})[_0x288c[15]](function(_0x9997x10){logger[_0x288c[14]](_0x288c[13],_0x9997xc,_0x9997x10);_0x9997xf(_0x9997x10)})})}exports[_0x288c[26]]= function(_0x9997xd){var _0x9997x12=this;return  new Promise(function(_0x9997xe,_0x9997xf){return db[_0x288c[37]][_0x288c[36]]({raw:_0x9997xd[_0x288c[27]]?(_0x9997xd[_0x288c[27]][_0x288c[28]]=== undefined)?true:false:true,where:_0x9997xd[_0x288c[27]]?_0x9997xd[_0x288c[27]][_0x288c[29]]|| null:null,attributes:_0x9997xd[_0x288c[27]]?_0x9997xd[_0x288c[27]][_0x288c[30]]|| null:null,limit:_0x9997xd[_0x288c[27]]?_0x9997xd[_0x288c[27]][_0x288c[31]]|| null:null,include:_0x9997xd[_0x288c[27]]?(_0x9997xd[_0x288c[27]][_0x288c[32]]?_[_0x288c[35]](_0x9997xd[_0x288c[27]][_0x288c[32]],function(_0x9997x13){return {model:db[_0x9997x13[_0x288c[33]]],as:_0x9997x13[_0x288c[34]],attributes:_0x9997x13[_0x288c[30]],include:_0x9997x13[_0x288c[32]]?_[_0x288c[35]](_0x9997x13[_0x288c[32]],function(_0x9997x14){return {model:db[_0x9997x14[_0x288c[33]]],as:_0x9997x14[_0x288c[34]],attributes:_0x9997x14[_0x288c[30]],include:_0x9997x14[_0x288c[32]]?_[_0x288c[35]](_0x9997x14[_0x288c[32]],function(_0x9997x15){return {model:db[_0x9997x15[_0x288c[33]]],as:_0x9997x15[_0x288c[34]],attributes:_0x9997x15[_0x288c[30]]}}):[]}}):[]}}):[]):[]})[_0x288c[24]](function(_0x9997x11){logger[_0x288c[17]](_0x288c[26],_0x9997xd);logger[_0x288c[20]](_0x288c[26],_0x9997xd,JSON[_0x288c[19]](_0x9997x11));_0x9997xe(_0x9997x11)})[_0x288c[15]](function(_0x9997x10){logger[_0x288c[14]](_0x288c[26],_0x9997x10[_0x288c[22]],_0x9997xd);_0x9997xf(_0x9997x12[_0x288c[14]](500,_0x9997x10[_0x288c[22]]))})})};exports[_0x288c[38]]= function(_0x9997xd){var _0x9997x12=this;return  new Promise(function(_0x9997xe,_0x9997xf){return db[_0x288c[37]][_0x288c[39]]({raw:_0x9997xd[_0x288c[27]]?(_0x9997xd[_0x288c[27]][_0x288c[28]]=== undefined)?true:false:true,where:_0x9997xd[_0x288c[27]]?_0x9997xd[_0x288c[27]][_0x288c[29]]|| null:null,attributes:_0x9997xd[_0x288c[27]]?_0x9997xd[_0x288c[27]][_0x288c[30]]|| null:null,include:_0x9997xd[_0x288c[27]]?(_0x9997xd[_0x288c[27]][_0x288c[32]]?_[_0x288c[35]](_0x9997xd[_0x288c[27]][_0x288c[32]],function(_0x9997x13){return {model:db[_0x9997x13[_0x288c[33]]],as:_0x9997x13[_0x288c[34]],attributes:_0x9997x13[_0x288c[30]],include:_0x9997x13[_0x288c[32]]?_[_0x288c[35]](_0x9997x13[_0x288c[32]],function(_0x9997x14){return {model:db[_0x9997x14[_0x288c[33]]],as:_0x9997x14[_0x288c[34]],attributes:_0x9997x14[_0x288c[30]],include:_0x9997x14[_0x288c[32]]?_[_0x288c[35]](_0x9997x14[_0x288c[32]],function(_0x9997x15){return {model:db[_0x9997x15[_0x288c[33]]],as:_0x9997x15[_0x288c[34]],attributes:_0x9997x15[_0x288c[30]]}}):[]}}):[]}}):[]):[]})[_0x288c[24]](function(_0x9997x11){logger[_0x288c[17]](_0x288c[38],_0x9997xd);logger[_0x288c[20]](_0x288c[38],_0x9997xd,JSON[_0x288c[19]](_0x9997x11));_0x9997xe(_0x9997x11)})[_0x288c[15]](function(_0x9997x10){logger[_0x288c[14]](_0x288c[38],_0x9997x10[_0x288c[22]],_0x9997xd);_0x9997xf(_0x9997x12[_0x288c[14]](500,_0x9997x10[_0x288c[22]]))})})}
\ No newline at end of file
index 2729dd9..628b440 100644 (file)
@@ -1 +1 @@
-var _0xd071=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x75\x73\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x76\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73\x5F\x72\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x2F\x3A\x69\x64\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x67\x65\x74\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x72\x65\x61\x74\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F","\x6A\x6F\x69\x6E","\x25\x73\x2D\x25\x73","\x6E\x6F\x77","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x61\x64\x64\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x69\x6E","\x6C\x6F\x67\x69\x6E","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F\x75\x74","\x6C\x6F\x67\x6F\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65","\x2F\x3A\x69\x64\x2F\x75\x6E\x70\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x2F\x64\x65\x73\x74\x72\x6F\x79\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xd071[0];var multer=require(_0xd071[1]);var util=require(_0xd071[2]);var path=require(_0xd071[3]);var express=require(_0xd071[4]);var router=express.Router();var auth=require(_0xd071[5]);var config=require(_0xd071[6]);var controller=require(_0xd071[7]);router[_0xd071[11]](_0xd071[8],auth[_0xd071[9]](),controller[_0xd071[10]]);router[_0xd071[11]](_0xd071[12],auth[_0xd071[9]](),controller[_0xd071[13]]);router[_0xd071[11]](_0xd071[14],auth[_0xd071[9]](),controller[_0xd071[15]]);router[_0xd071[11]](_0xd071[16],controller[_0xd071[17]]);router[_0xd071[11]](_0xd071[18],auth[_0xd071[9]](),controller[_0xd071[19]]);router[_0xd071[11]](_0xd071[20],auth[_0xd071[9]](),controller[_0xd071[21]]);router[_0xd071[11]](_0xd071[22],auth[_0xd071[9]](),controller[_0xd071[23]]);router[_0xd071[11]](_0xd071[24],auth[_0xd071[9]](),controller[_0xd071[25]]);router[_0xd071[11]](_0xd071[26],auth[_0xd071[9]](),controller[_0xd071[27]]);router[_0xd071[11]](_0xd071[28],auth[_0xd071[9]](),controller[_0xd071[29]]);router[_0xd071[32]](_0xd071[30],auth[_0xd071[9]](),controller[_0xd071[31]]);router[_0xd071[32]](_0xd071[18],auth[_0xd071[9]](),controller[_0xd071[33]]);router[_0xd071[32]](_0xd071[8],auth[_0xd071[9]](),controller[_0xd071[34]]);router[_0xd071[32]](_0xd071[20],auth[_0xd071[9]](),controller[_0xd071[35]]);var upload=multer({storage:multer[_0xd071[43]]({destination:function(_0x5bbdxa,_0x5bbdxb,_0x5bbdxc){_0x5bbdxc(null,path[_0xd071[38]](config[_0xd071[36]],_0xd071[37]))},filename:function(_0x5bbdxa,_0x5bbdxb,_0x5bbdxc){_0x5bbdxc(null,util[_0xd071[42]](_0xd071[39],Date[_0xd071[40]](),_0x5bbdxb[_0xd071[41]]))}})});router[_0xd071[32]](_0xd071[16],upload[_0xd071[45]](_0xd071[44]),controller[_0xd071[46]]);router[_0xd071[32]](_0xd071[47],controller[_0xd071[48]]);router[_0xd071[32]](_0xd071[49],auth[_0xd071[9]](),controller[_0xd071[50]]);router[_0xd071[32]](_0xd071[51],auth[_0xd071[9]](),controller[_0xd071[52]]);router[_0xd071[32]](_0xd071[53],auth[_0xd071[9]](),controller[_0xd071[54]]);router[_0xd071[56]](_0xd071[14],auth[_0xd071[9]](),controller[_0xd071[55]]);router[_0xd071[56]](_0xd071[57],auth[_0xd071[9]](),controller[_0xd071[58]]);router[_0xd071[61]](_0xd071[59],auth[_0xd071[9]](),controller[_0xd071[60]]);router[_0xd071[61]](_0xd071[14],auth[_0xd071[9]](),controller[_0xd071[62]]);router[_0xd071[61]](_0xd071[20],auth[_0xd071[9]](),controller[_0xd071[63]]);module[_0xd071[64]]= router
\ No newline at end of file
+var _0x52b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x75\x73\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x76\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73\x5F\x72\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x2F\x3A\x69\x64\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x67\x65\x74\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x72\x65\x61\x74\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F","\x6A\x6F\x69\x6E","\x25\x73\x2D\x25\x73","\x6E\x6F\x77","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x61\x64\x64\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x69\x6E","\x6C\x6F\x67\x69\x6E","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F\x75\x74","\x6C\x6F\x67\x6F\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65","\x2F\x3A\x69\x64\x2F\x75\x6E\x70\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x2F\x64\x65\x73\x74\x72\x6F\x79\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x52b3[0];var multer=require(_0x52b3[1]);var util=require(_0x52b3[2]);var path=require(_0x52b3[3]);var express=require(_0x52b3[4]);var router=express.Router();var auth=require(_0x52b3[5]);var config=require(_0x52b3[6]);var controller=require(_0x52b3[7]);router[_0x52b3[11]](_0x52b3[8],auth[_0x52b3[9]](),controller[_0x52b3[10]]);router[_0x52b3[11]](_0x52b3[12],auth[_0x52b3[9]](),controller[_0x52b3[13]]);router[_0x52b3[11]](_0x52b3[14],auth[_0x52b3[9]](),controller[_0x52b3[15]]);router[_0x52b3[11]](_0x52b3[16],controller[_0x52b3[17]]);router[_0x52b3[11]](_0x52b3[18],auth[_0x52b3[9]](),controller[_0x52b3[19]]);router[_0x52b3[11]](_0x52b3[20],auth[_0x52b3[9]](),controller[_0x52b3[21]]);router[_0x52b3[11]](_0x52b3[22],auth[_0x52b3[9]](),controller[_0x52b3[23]]);router[_0x52b3[11]](_0x52b3[24],auth[_0x52b3[9]](),controller[_0x52b3[25]]);router[_0x52b3[11]](_0x52b3[26],auth[_0x52b3[9]](),controller[_0x52b3[27]]);router[_0x52b3[11]](_0x52b3[28],auth[_0x52b3[9]](),controller[_0x52b3[29]]);router[_0x52b3[32]](_0x52b3[30],auth[_0x52b3[9]](),controller[_0x52b3[31]]);router[_0x52b3[32]](_0x52b3[18],auth[_0x52b3[9]](),controller[_0x52b3[33]]);router[_0x52b3[32]](_0x52b3[8],auth[_0x52b3[9]](),controller[_0x52b3[34]]);router[_0x52b3[32]](_0x52b3[20],auth[_0x52b3[9]](),controller[_0x52b3[35]]);var upload=multer({storage:multer[_0x52b3[43]]({destination:function(_0xe776xa,_0xe776xb,_0xe776xc){_0xe776xc(null,path[_0x52b3[38]](config[_0x52b3[36]],_0x52b3[37]))},filename:function(_0xe776xa,_0xe776xb,_0xe776xc){_0xe776xc(null,util[_0x52b3[42]](_0x52b3[39],Date[_0x52b3[40]](),_0xe776xb[_0x52b3[41]]))}})});router[_0x52b3[32]](_0x52b3[16],upload[_0x52b3[45]](_0x52b3[44]),controller[_0x52b3[46]]);router[_0x52b3[32]](_0x52b3[47],controller[_0x52b3[48]]);router[_0x52b3[32]](_0x52b3[49],auth[_0x52b3[9]](),controller[_0x52b3[50]]);router[_0x52b3[32]](_0x52b3[51],auth[_0x52b3[9]](),controller[_0x52b3[52]]);router[_0x52b3[32]](_0x52b3[53],auth[_0x52b3[9]](),controller[_0x52b3[54]]);router[_0x52b3[56]](_0x52b3[14],auth[_0x52b3[9]](),controller[_0x52b3[55]]);router[_0x52b3[56]](_0x52b3[57],auth[_0x52b3[9]](),controller[_0x52b3[58]]);router[_0x52b3[61]](_0x52b3[59],auth[_0x52b3[9]](),controller[_0x52b3[60]]);router[_0x52b3[61]](_0x52b3[14],auth[_0x52b3[9]](),controller[_0x52b3[62]]);router[_0x52b3[61]](_0x52b3[20],auth[_0x52b3[9]](),controller[_0x52b3[63]]);module[_0x52b3[64]]= router
\ No newline at end of file
index 23a3d9c..3b7197a 100644 (file)
@@ -1 +1 @@
-var _0xf9bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x54\x68\x65\x20\x6E\x61\x6D\x65\x20\x6F\x66\x20\x74\x68\x65\x20\x75\x73\x65\x72","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x61\x69\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x6C\x6F\x63\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x49\x4E\x54\x45\x47\x45\x52","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x2C","\x6A\x6F\x69\x6E","\x73\x70\x6C\x69\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x75\x64\x70\x22\x2C\x20\x22\x74\x63\x70\x22\x5D","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x6E\x61\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x22\x2C\x20\x22\x63\x6F\x6D\x65\x64\x69\x61\x22\x5D","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x61\x6C\x6C\x6F\x77","\x3B","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x61\x6C\x61\x77\x22\x2C\x20\x22\x75\x6C\x61\x77\x22\x2C\x20\x22\x67\x73\x6D\x22\x5D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x69\x6E\x73\x65\x63\x75\x72\x65","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x70\x6F\x72\x74\x22\x2C\x20\x22\x69\x6E\x76\x69\x74\x65\x22\x5D","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x54\x45\x58\x54","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73","\x6D\x61\x70"];_0xf9bd[0];var Sequelize=require(_0xf9bd[1]);var moment=require(_0xf9bd[2]);var util=require(_0xf9bd[3]);var _=require(_0xf9bd[4]);module[_0xf9bd[5]]= {name:{type:Sequelize[_0xf9bd[6]],allowNull:false,unique:_0xf9bd[7],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i},set:function(_0xe435x5){this[_0xf9bd[8]](_0xf9bd[7],_0xe435x5);this[_0xf9bd[8]](_0xf9bd[9],_0xe435x5)},comment:_0xf9bd[10]},fullname:{type:Sequelize[_0xf9bd[6]],allowNull:false,set:function(_0xe435x6){this[_0xf9bd[8]](_0xf9bd[11],_0xe435x6);this[_0xf9bd[8]](_0xf9bd[12],util[_0xf9bd[16]](_0xf9bd[13],_0xe435x6,this[_0xf9bd[15]](_0xf9bd[14])))}},email:{type:Sequelize[_0xf9bd[6]],allowNull:false,unique:_0xf9bd[17],validate:{isEmail:true},set:function(_0xe435x7){if(_0xe435x7){this[_0xf9bd[8]](_0xf9bd[17],_0xe435x7[_0xf9bd[18]]())}}},role:{type:Sequelize.ENUM(_0xf9bd[19],_0xf9bd[20],_0xf9bd[21],_0xf9bd[22]),allowNull:false},password:{type:Sequelize[_0xf9bd[6]],allowNull:false,validate:{notEmpty:true}},provider:{type:Sequelize[_0xf9bd[6]],defaultValue:_0xf9bd[23]},internal:{type:Sequelize.INTEGER(11),allowNull:false,unique:_0xf9bd[14],set:function(_0xe435x8){this[_0xf9bd[8]](_0xf9bd[14],_0xe435x8);this[_0xf9bd[8]](_0xf9bd[24],_0xe435x8);this[_0xf9bd[8]](_0xf9bd[12],util[_0xf9bd[16]](_0xf9bd[13],this[_0xf9bd[15]](_0xf9bd[11]),_0xe435x8))}},salt:{type:Sequelize[_0xf9bd[6]]},phone:{type:Sequelize[_0xf9bd[6]]},mobile:{type:Sequelize[_0xf9bd[6]]},address:{type:Sequelize[_0xf9bd[6]]},zipcode:{type:Sequelize[_0xf9bd[6]]},userpic:{type:Sequelize[_0xf9bd[6]]},city:{type:Sequelize[_0xf9bd[6]]},country:{type:Sequelize[_0xf9bd[6]]},online:{type:Sequelize[_0xf9bd[25]],defaultValue:false},lastLoginAt:{type:Sequelize[_0xf9bd[26]]},voicePause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},chatPause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},mailPause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},faxPause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},smsPause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},openchannelPause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},pauseType:{type:Sequelize[_0xf9bd[6]],defaultValue:_0xf9bd[27]},lastPauseAt:{type:Sequelize[_0xf9bd[26]]},chatCapacity:{type:Sequelize[_0xf9bd[28]],defaultValue:0},mailCapacity:{type:Sequelize[_0xf9bd[28]],defaultValue:0},faxCapacity:{type:Sequelize[_0xf9bd[28]],defaultValue:0},smsCapacity:{type:Sequelize[_0xf9bd[28]],defaultValue:0},openchannelCapacity:{type:Sequelize[_0xf9bd[28]],defaultValue:0},phoneBarAutoAnswer:{type:Sequelize[_0xf9bd[25]],defaultValue:false},phoneBarEnableSettings:{type:Sequelize[_0xf9bd[25]],defaultValue:true},phoneBarListenPort:{type:Sequelize.INTEGER(5),defaultValue:5060},phoneBarExpires:{type:Sequelize.INTEGER(5),defaultValue:120},phoneBarRemoteControl:{type:Sequelize[_0xf9bd[25]],defaultValue:false},phoneBarRemoteControlPort:{type:Sequelize[_0xf9bd[28]],defaultValue:9888},phoneBarEnableRecording:{type:Sequelize[_0xf9bd[25]],defaultValue:false},phoneBarRingInUse:{type:Sequelize[_0xf9bd[25]],defaultValue:false},chanspy:{type:Sequelize[_0xf9bd[25]],defaultValue:false},description:{type:Sequelize[_0xf9bd[6]],allowNull:true},host:{type:Sequelize[_0xf9bd[6]],allowNull:true,defaultValue:_0xf9bd[29]},ipaddr:{type:Sequelize[_0xf9bd[6]],allowNull:true},port:{type:Sequelize.INTEGER(5),allowNull:true},regseconds:{type:Sequelize.INTEGER(11),allowNull:true},fullcontact:{type:Sequelize[_0xf9bd[6]],allowNull:true},regserver:{type:Sequelize[_0xf9bd[6]],allowNull:true},useragent:{type:Sequelize[_0xf9bd[6]],allowNull:true},lastms:{type:Sequelize.INTEGER(11),allowNull:true},type:{type:Sequelize.ENUM(_0xf9bd[30],_0xf9bd[20],_0xf9bd[31]),allowNull:true,defaultValue:_0xf9bd[30]},context:{type:Sequelize[_0xf9bd[6]],allowNull:true,defaultValue:_0xf9bd[32]},callingpres:{type:Sequelize.ENUM(_0xf9bd[33],_0xf9bd[34],_0xf9bd[35],_0xf9bd[36],_0xf9bd[37],_0xf9bd[38],_0xf9bd[39],_0xf9bd[40]),allowNull:true},deny:{type:Sequelize[_0xf9bd[6]],allowNull:true},permit:{type:Sequelize[_0xf9bd[6]],allowNull:true},secret:{type:Sequelize[_0xf9bd[6]],allowNull:true},md5secret:{type:Sequelize[_0xf9bd[6]],allowNull:true},remotesecret:{type:Sequelize[_0xf9bd[6]],allowNull:true},transport:{type:Sequelize[_0xf9bd[6]],allowNull:true,defaultValue:_0xf9bd[41],set:function(_0xe435x9){this[_0xf9bd[8]](_0xf9bd[42],_0xe435x9?_0xe435x9[_0xf9bd[44]](_0xf9bd[43]):null)},get:function(){return this[_0xf9bd[15]](_0xf9bd[42])?this[_0xf9bd[15]](_0xf9bd[42])[_0xf9bd[45]](_0xf9bd[43]):null},comment:_0xf9bd[46]},dtmfmode:{type:Sequelize.ENUM(_0xf9bd[47],_0xf9bd[48],_0xf9bd[49],_0xf9bd[50],_0xf9bd[51]),allowNull:true,defaultValue:_0xf9bd[47]},directmedia:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53],_0xf9bd[54],_0xf9bd[55],_0xf9bd[56]),allowNull:true,defaultValue:_0xf9bd[53]},directrtpsetup:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[53]},directmediapermit:{type:Sequelize[_0xf9bd[6]],allowNull:true},directmediadeny:{type:Sequelize[_0xf9bd[6]],allowNull:true},nat:{type:Sequelize[_0xf9bd[6]],allowNull:true,defaultValue:_0xf9bd[57],set:function(_0xe435x9){this[_0xf9bd[8]](_0xf9bd[58],_0xe435x9?_0xe435x9[_0xf9bd[44]](_0xf9bd[43]):null)},get:function(){return this[_0xf9bd[15]](_0xf9bd[58])?this[_0xf9bd[15]](_0xf9bd[58])[_0xf9bd[45]](_0xf9bd[43]):null},comment:_0xf9bd[59]},callgroup:{type:Sequelize[_0xf9bd[6]]},namedcallgroup:{type:Sequelize[_0xf9bd[6]]},pickupgroup:{type:Sequelize[_0xf9bd[6]]},namedpickupgroup:{type:Sequelize[_0xf9bd[6]]},language:{type:Sequelize[_0xf9bd[6]],defaultValue:_0xf9bd[60]},tonezone:{type:Sequelize[_0xf9bd[6]]},disallow:{type:Sequelize[_0xf9bd[6]],allowNull:false,defaultValue:_0xf9bd[61]},allow:{type:Sequelize[_0xf9bd[6]],allowNull:false,defaultValue:_0xf9bd[62],set:function(_0xe435x9){this[_0xf9bd[8]](_0xf9bd[63],_0xe435x9?_0xe435x9[_0xf9bd[44]](_0xf9bd[64]):null)},get:function(){return this[_0xf9bd[15]](_0xf9bd[63])?this[_0xf9bd[15]](_0xf9bd[63])[_0xf9bd[45]](_0xf9bd[64]):null},comment:_0xf9bd[65]},autoframing:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},insecure:{type:Sequelize[_0xf9bd[6]],allowNull:true,defaultValue:_0xf9bd[66],set:function(_0xe435x9){this[_0xf9bd[8]](_0xf9bd[67],_0xe435x9?_0xe435x9[_0xf9bd[44]](_0xf9bd[43]):null)},get:function(){return this[_0xf9bd[15]](_0xf9bd[67])?this[_0xf9bd[15]](_0xf9bd[67])[_0xf9bd[45]](_0xf9bd[43]):null},comment:_0xf9bd[68]},trustrpid:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[53]},trust_id_outbound:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[53]},progressinband:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53],_0xf9bd[69]),allowNull:true},promiscredir:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},useclientcode:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},accountcode:{type:Sequelize.INTEGER(11),allowNull:true},setvar:{type:Sequelize[_0xf9bd[6]],allowNull:true},callerid:{type:Sequelize[_0xf9bd[6]],allowNull:true,defaultValue:_0xf9bd[70]},amaflags:{type:Sequelize[_0xf9bd[6]],allowNull:true},callcounter:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[52]},busylevel:{type:Sequelize.INTEGER(11),allowNull:true},allowoverlap:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},allowsubscribe:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},allowtransfer:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},ignoresdpversion:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},subscribecontext:{type:Sequelize[_0xf9bd[6]],allowNull:true},template:{type:Sequelize[_0xf9bd[6]],allowNull:true},videosupport:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53],_0xf9bd[71]),allowNull:true,defaultValue:_0xf9bd[53]},maxcallbitrate:{type:Sequelize.INTEGER(11),allowNull:true},rfc2833compensate:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},mailbox:{type:Sequelize[_0xf9bd[6]],allowNull:true},session_timers:{type:Sequelize.ENUM(_0xf9bd[72],_0xf9bd[73],_0xf9bd[74]),allowNull:true},session_expires:{type:Sequelize.INTEGER(11),allowNull:true},session_minse:{type:Sequelize.INTEGER(11),allowNull:true},session_refresher:{type:Sequelize.ENUM(_0xf9bd[75],_0xf9bd[76]),allowNull:true,defaultValue:_0xf9bd[76]},t38pt_usertpsource:{type:Sequelize[_0xf9bd[6]],allowNull:true},regexten:{type:Sequelize[_0xf9bd[6]],allowNull:true},fromdomain:{type:Sequelize[_0xf9bd[6]],allowNull:true},fromuser:{type:Sequelize[_0xf9bd[6]],allowNull:true},qualify:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[52]},keepalive:{type:Sequelize.INTEGER(11),allowNull:true},defaultip:{type:Sequelize[_0xf9bd[6]],allowNull:true},defaultuser:{type:Sequelize[_0xf9bd[6]],allowNull:true},rtptimeout:{type:Sequelize.INTEGER(11),allowNull:true},rtpholdtimeout:{type:Sequelize.INTEGER(11),allowNull:true},rtpkeepalive:{type:Sequelize.INTEGER(11),allowNull:true},sendrpid:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[53]},outboundproxy:{type:Sequelize[_0xf9bd[6]],allowNull:true},callbackextension:{type:Sequelize[_0xf9bd[6]],allowNull:true},timert1:{type:Sequelize.INTEGER(11),allowNull:true},timerb:{type:Sequelize.INTEGER(11),allowNull:true},qualifyfreq:{type:Sequelize.INTEGER(11),allowNull:true},contactpermit:{type:Sequelize[_0xf9bd[6]],allowNull:true},contactdeny:{type:Sequelize[_0xf9bd[6]],allowNull:true},contactacl:{type:Sequelize[_0xf9bd[6]],allowNull:true},unsolicited_mailbox:{type:Sequelize[_0xf9bd[6]],allowNull:true},use_q850_reason:{type:Sequelize[_0xf9bd[6]],allowNull:true},maxforwards:{type:Sequelize.INTEGER(11),allowNull:true},encryption:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[53]},avpf:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},force_avp:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},icesupport:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},dtlsenable:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},dtlsverify:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53],_0xf9bd[77],_0xf9bd[78]),allowNull:true},dtlsrekey:{type:Sequelize.INTEGER(11),allowNull:true},dtlscertfile:{type:Sequelize[_0xf9bd[6]],allowNull:true},dtlsprivatekey:{type:Sequelize[_0xf9bd[6]],allowNull:true},dtlscipher:{type:Sequelize[_0xf9bd[6]],allowNull:true},dtlscafile:{type:Sequelize[_0xf9bd[6]],allowNull:true},dtlscapath:{type:Sequelize[_0xf9bd[6]],allowNull:true},dtlssetup:{type:Sequelize.ENUM(_0xf9bd[79],_0xf9bd[80],_0xf9bd[81]),allowNull:true},dtlsfingerprint:{type:Sequelize[_0xf9bd[6]],allowNull:true},usereqphone:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true,defaultValue:_0xf9bd[53]},recordonfeature:{type:Sequelize[_0xf9bd[6]],allowNull:true},recordofffeature:{type:Sequelize[_0xf9bd[6]],allowNull:true},call_limit:{type:Sequelize.INTEGER(11),allowNull:true,defaultValue:10},registertrying:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},subscribemwi:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53]),allowNull:true},vmexten:{type:Sequelize[_0xf9bd[6]],allowNull:true},mohinterpret:{type:Sequelize[_0xf9bd[6]],allowNull:true},mohsuggest:{type:Sequelize[_0xf9bd[6]],allowNull:true},parkinglot:{type:Sequelize[_0xf9bd[6]],allowNull:true},canreinvite:{type:Sequelize.ENUM(_0xf9bd[52],_0xf9bd[53],_0xf9bd[54],_0xf9bd[55],_0xf9bd[82]),allowNull:true,defaultValue:_0xf9bd[53]},loginInPause:{type:Sequelize[_0xf9bd[25]],defaultValue:false},resetPasswordToken:{type:Sequelize[_0xf9bd[6]]},resetPasswordExpires:{type:Sequelize[_0xf9bd[26]]},showWebBar:{type:Sequelize[_0xf9bd[25]],defaultValue:false},permissions:{type:Sequelize[_0xf9bd[83]],set:function(_0xe435x9){this[_0xf9bd[8]](_0xf9bd[84],_0xe435x9?_0xe435x9[_0xf9bd[44]](_0xf9bd[43]):[])},get:function(){return this[_0xf9bd[15]](_0xf9bd[84])?_[_0xf9bd[85]](this[_0xf9bd[15]](_0xf9bd[84])[_0xf9bd[45]](_0xf9bd[43]),function(_0xe435xa){return parseInt(_0xe435xa,10)}):[]}}}
\ No newline at end of file
+var _0x3413=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x54\x68\x65\x20\x6E\x61\x6D\x65\x20\x6F\x66\x20\x74\x68\x65\x20\x75\x73\x65\x72","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x61\x69\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x6C\x6F\x63\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x49\x4E\x54\x45\x47\x45\x52","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x2C","\x6A\x6F\x69\x6E","\x73\x70\x6C\x69\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x75\x64\x70\x22\x2C\x20\x22\x74\x63\x70\x22\x5D","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x6E\x61\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x22\x2C\x20\x22\x63\x6F\x6D\x65\x64\x69\x61\x22\x5D","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x61\x6C\x6C\x6F\x77","\x3B","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x61\x6C\x61\x77\x22\x2C\x20\x22\x75\x6C\x61\x77\x22\x2C\x20\x22\x67\x73\x6D\x22\x5D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x69\x6E\x73\x65\x63\x75\x72\x65","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x70\x6F\x72\x74\x22\x2C\x20\x22\x69\x6E\x76\x69\x74\x65\x22\x5D","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x54\x45\x58\x54","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73","\x6D\x61\x70"];_0x3413[0];var Sequelize=require(_0x3413[1]);var moment=require(_0x3413[2]);var util=require(_0x3413[3]);var _=require(_0x3413[4]);module[_0x3413[5]]= {name:{type:Sequelize[_0x3413[6]],allowNull:false,unique:_0x3413[7],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i},set:function(_0xdb46x5){this[_0x3413[8]](_0x3413[7],_0xdb46x5);this[_0x3413[8]](_0x3413[9],_0xdb46x5)},comment:_0x3413[10]},fullname:{type:Sequelize[_0x3413[6]],allowNull:false,set:function(_0xdb46x6){this[_0x3413[8]](_0x3413[11],_0xdb46x6);this[_0x3413[8]](_0x3413[12],util[_0x3413[16]](_0x3413[13],_0xdb46x6,this[_0x3413[15]](_0x3413[14])))}},email:{type:Sequelize[_0x3413[6]],allowNull:false,unique:_0x3413[17],validate:{isEmail:true},set:function(_0xdb46x7){if(_0xdb46x7){this[_0x3413[8]](_0x3413[17],_0xdb46x7[_0x3413[18]]())}}},role:{type:Sequelize.ENUM(_0x3413[19],_0x3413[20],_0x3413[21],_0x3413[22]),allowNull:false},password:{type:Sequelize[_0x3413[6]],allowNull:false,validate:{notEmpty:true}},provider:{type:Sequelize[_0x3413[6]],defaultValue:_0x3413[23]},internal:{type:Sequelize.INTEGER(11),allowNull:false,unique:_0x3413[14],set:function(_0xdb46x8){this[_0x3413[8]](_0x3413[14],_0xdb46x8);this[_0x3413[8]](_0x3413[24],_0xdb46x8);this[_0x3413[8]](_0x3413[12],util[_0x3413[16]](_0x3413[13],this[_0x3413[15]](_0x3413[11]),_0xdb46x8))}},salt:{type:Sequelize[_0x3413[6]]},phone:{type:Sequelize[_0x3413[6]]},mobile:{type:Sequelize[_0x3413[6]]},address:{type:Sequelize[_0x3413[6]]},zipcode:{type:Sequelize[_0x3413[6]]},userpic:{type:Sequelize[_0x3413[6]]},city:{type:Sequelize[_0x3413[6]]},country:{type:Sequelize[_0x3413[6]]},online:{type:Sequelize[_0x3413[25]],defaultValue:false},lastLoginAt:{type:Sequelize[_0x3413[26]]},voicePause:{type:Sequelize[_0x3413[25]],defaultValue:false},chatPause:{type:Sequelize[_0x3413[25]],defaultValue:false},mailPause:{type:Sequelize[_0x3413[25]],defaultValue:false},faxPause:{type:Sequelize[_0x3413[25]],defaultValue:false},smsPause:{type:Sequelize[_0x3413[25]],defaultValue:false},openchannelPause:{type:Sequelize[_0x3413[25]],defaultValue:false},pauseType:{type:Sequelize[_0x3413[6]],defaultValue:_0x3413[27]},lastPauseAt:{type:Sequelize[_0x3413[26]]},chatCapacity:{type:Sequelize[_0x3413[28]],defaultValue:0},mailCapacity:{type:Sequelize[_0x3413[28]],defaultValue:0},faxCapacity:{type:Sequelize[_0x3413[28]],defaultValue:0},smsCapacity:{type:Sequelize[_0x3413[28]],defaultValue:0},openchannelCapacity:{type:Sequelize[_0x3413[28]],defaultValue:0},phoneBarAutoAnswer:{type:Sequelize[_0x3413[25]],defaultValue:false},phoneBarEnableSettings:{type:Sequelize[_0x3413[25]],defaultValue:true},phoneBarListenPort:{type:Sequelize.INTEGER(5),defaultValue:5060},phoneBarExpires:{type:Sequelize.INTEGER(5),defaultValue:120},phoneBarRemoteControl:{type:Sequelize[_0x3413[25]],defaultValue:false},phoneBarRemoteControlPort:{type:Sequelize[_0x3413[28]],defaultValue:9888},phoneBarEnableRecording:{type:Sequelize[_0x3413[25]],defaultValue:false},phoneBarRingInUse:{type:Sequelize[_0x3413[25]],defaultValue:false},chanspy:{type:Sequelize[_0x3413[25]],defaultValue:false},description:{type:Sequelize[_0x3413[6]],allowNull:true},host:{type:Sequelize[_0x3413[6]],allowNull:true,defaultValue:_0x3413[29]},ipaddr:{type:Sequelize[_0x3413[6]],allowNull:true},port:{type:Sequelize.INTEGER(5),allowNull:true},regseconds:{type:Sequelize.INTEGER(11),allowNull:true},fullcontact:{type:Sequelize[_0x3413[6]],allowNull:true},regserver:{type:Sequelize[_0x3413[6]],allowNull:true},useragent:{type:Sequelize[_0x3413[6]],allowNull:true},lastms:{type:Sequelize.INTEGER(11),allowNull:true},type:{type:Sequelize.ENUM(_0x3413[30],_0x3413[20],_0x3413[31]),allowNull:true,defaultValue:_0x3413[30]},context:{type:Sequelize[_0x3413[6]],allowNull:true,defaultValue:_0x3413[32]},callingpres:{type:Sequelize.ENUM(_0x3413[33],_0x3413[34],_0x3413[35],_0x3413[36],_0x3413[37],_0x3413[38],_0x3413[39],_0x3413[40]),allowNull:true},deny:{type:Sequelize[_0x3413[6]],allowNull:true},permit:{type:Sequelize[_0x3413[6]],allowNull:true},secret:{type:Sequelize[_0x3413[6]],allowNull:true},md5secret:{type:Sequelize[_0x3413[6]],allowNull:true},remotesecret:{type:Sequelize[_0x3413[6]],allowNull:true},transport:{type:Sequelize[_0x3413[6]],allowNull:true,defaultValue:_0x3413[41],set:function(_0xdb46x9){this[_0x3413[8]](_0x3413[42],_0xdb46x9?_0xdb46x9[_0x3413[44]](_0x3413[43]):null)},get:function(){return this[_0x3413[15]](_0x3413[42])?this[_0x3413[15]](_0x3413[42])[_0x3413[45]](_0x3413[43]):null},comment:_0x3413[46]},dtmfmode:{type:Sequelize.ENUM(_0x3413[47],_0x3413[48],_0x3413[49],_0x3413[50],_0x3413[51]),allowNull:true,defaultValue:_0x3413[47]},directmedia:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53],_0x3413[54],_0x3413[55],_0x3413[56]),allowNull:true,defaultValue:_0x3413[53]},directrtpsetup:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[53]},directmediapermit:{type:Sequelize[_0x3413[6]],allowNull:true},directmediadeny:{type:Sequelize[_0x3413[6]],allowNull:true},nat:{type:Sequelize[_0x3413[6]],allowNull:true,defaultValue:_0x3413[57],set:function(_0xdb46x9){this[_0x3413[8]](_0x3413[58],_0xdb46x9?_0xdb46x9[_0x3413[44]](_0x3413[43]):null)},get:function(){return this[_0x3413[15]](_0x3413[58])?this[_0x3413[15]](_0x3413[58])[_0x3413[45]](_0x3413[43]):null},comment:_0x3413[59]},callgroup:{type:Sequelize[_0x3413[6]]},namedcallgroup:{type:Sequelize[_0x3413[6]]},pickupgroup:{type:Sequelize[_0x3413[6]]},namedpickupgroup:{type:Sequelize[_0x3413[6]]},language:{type:Sequelize[_0x3413[6]],defaultValue:_0x3413[60]},tonezone:{type:Sequelize[_0x3413[6]]},disallow:{type:Sequelize[_0x3413[6]],allowNull:false,defaultValue:_0x3413[61]},allow:{type:Sequelize[_0x3413[6]],allowNull:false,defaultValue:_0x3413[62],set:function(_0xdb46x9){this[_0x3413[8]](_0x3413[63],_0xdb46x9?_0xdb46x9[_0x3413[44]](_0x3413[64]):null)},get:function(){return this[_0x3413[15]](_0x3413[63])?this[_0x3413[15]](_0x3413[63])[_0x3413[45]](_0x3413[64]):null},comment:_0x3413[65]},autoframing:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},insecure:{type:Sequelize[_0x3413[6]],allowNull:true,defaultValue:_0x3413[66],set:function(_0xdb46x9){this[_0x3413[8]](_0x3413[67],_0xdb46x9?_0xdb46x9[_0x3413[44]](_0x3413[43]):null)},get:function(){return this[_0x3413[15]](_0x3413[67])?this[_0x3413[15]](_0x3413[67])[_0x3413[45]](_0x3413[43]):null},comment:_0x3413[68]},trustrpid:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[53]},trust_id_outbound:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[53]},progressinband:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53],_0x3413[69]),allowNull:true},promiscredir:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},useclientcode:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},accountcode:{type:Sequelize.INTEGER(11),allowNull:true},setvar:{type:Sequelize[_0x3413[6]],allowNull:true},callerid:{type:Sequelize[_0x3413[6]],allowNull:true,defaultValue:_0x3413[70]},amaflags:{type:Sequelize[_0x3413[6]],allowNull:true},callcounter:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[52]},busylevel:{type:Sequelize.INTEGER(11),allowNull:true},allowoverlap:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},allowsubscribe:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},allowtransfer:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},ignoresdpversion:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},subscribecontext:{type:Sequelize[_0x3413[6]],allowNull:true},template:{type:Sequelize[_0x3413[6]],allowNull:true},videosupport:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53],_0x3413[71]),allowNull:true,defaultValue:_0x3413[53]},maxcallbitrate:{type:Sequelize.INTEGER(11),allowNull:true},rfc2833compensate:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},mailbox:{type:Sequelize[_0x3413[6]],allowNull:true},session_timers:{type:Sequelize.ENUM(_0x3413[72],_0x3413[73],_0x3413[74]),allowNull:true},session_expires:{type:Sequelize.INTEGER(11),allowNull:true},session_minse:{type:Sequelize.INTEGER(11),allowNull:true},session_refresher:{type:Sequelize.ENUM(_0x3413[75],_0x3413[76]),allowNull:true,defaultValue:_0x3413[76]},t38pt_usertpsource:{type:Sequelize[_0x3413[6]],allowNull:true},regexten:{type:Sequelize[_0x3413[6]],allowNull:true},fromdomain:{type:Sequelize[_0x3413[6]],allowNull:true},fromuser:{type:Sequelize[_0x3413[6]],allowNull:true},qualify:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[52]},keepalive:{type:Sequelize.INTEGER(11),allowNull:true},defaultip:{type:Sequelize[_0x3413[6]],allowNull:true},defaultuser:{type:Sequelize[_0x3413[6]],allowNull:true},rtptimeout:{type:Sequelize.INTEGER(11),allowNull:true},rtpholdtimeout:{type:Sequelize.INTEGER(11),allowNull:true},rtpkeepalive:{type:Sequelize.INTEGER(11),allowNull:true},sendrpid:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[53]},outboundproxy:{type:Sequelize[_0x3413[6]],allowNull:true},callbackextension:{type:Sequelize[_0x3413[6]],allowNull:true},timert1:{type:Sequelize.INTEGER(11),allowNull:true},timerb:{type:Sequelize.INTEGER(11),allowNull:true},qualifyfreq:{type:Sequelize.INTEGER(11),allowNull:true},contactpermit:{type:Sequelize[_0x3413[6]],allowNull:true},contactdeny:{type:Sequelize[_0x3413[6]],allowNull:true},contactacl:{type:Sequelize[_0x3413[6]],allowNull:true},unsolicited_mailbox:{type:Sequelize[_0x3413[6]],allowNull:true},use_q850_reason:{type:Sequelize[_0x3413[6]],allowNull:true},maxforwards:{type:Sequelize.INTEGER(11),allowNull:true},encryption:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[53]},avpf:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},force_avp:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},icesupport:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},dtlsenable:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},dtlsverify:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53],_0x3413[77],_0x3413[78]),allowNull:true},dtlsrekey:{type:Sequelize.INTEGER(11),allowNull:true},dtlscertfile:{type:Sequelize[_0x3413[6]],allowNull:true},dtlsprivatekey:{type:Sequelize[_0x3413[6]],allowNull:true},dtlscipher:{type:Sequelize[_0x3413[6]],allowNull:true},dtlscafile:{type:Sequelize[_0x3413[6]],allowNull:true},dtlscapath:{type:Sequelize[_0x3413[6]],allowNull:true},dtlssetup:{type:Sequelize.ENUM(_0x3413[79],_0x3413[80],_0x3413[81]),allowNull:true},dtlsfingerprint:{type:Sequelize[_0x3413[6]],allowNull:true},usereqphone:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true,defaultValue:_0x3413[53]},recordonfeature:{type:Sequelize[_0x3413[6]],allowNull:true},recordofffeature:{type:Sequelize[_0x3413[6]],allowNull:true},call_limit:{type:Sequelize.INTEGER(11),allowNull:true,defaultValue:10},registertrying:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},subscribemwi:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53]),allowNull:true},vmexten:{type:Sequelize[_0x3413[6]],allowNull:true},mohinterpret:{type:Sequelize[_0x3413[6]],allowNull:true},mohsuggest:{type:Sequelize[_0x3413[6]],allowNull:true},parkinglot:{type:Sequelize[_0x3413[6]],allowNull:true},canreinvite:{type:Sequelize.ENUM(_0x3413[52],_0x3413[53],_0x3413[54],_0x3413[55],_0x3413[82]),allowNull:true,defaultValue:_0x3413[53]},loginInPause:{type:Sequelize[_0x3413[25]],defaultValue:false},resetPasswordToken:{type:Sequelize[_0x3413[6]]},resetPasswordExpires:{type:Sequelize[_0x3413[26]]},showWebBar:{type:Sequelize[_0x3413[25]],defaultValue:false},permissions:{type:Sequelize[_0x3413[83]],set:function(_0xdb46x9){this[_0x3413[8]](_0x3413[84],_0xdb46x9?_0xdb46x9[_0x3413[44]](_0x3413[43]):[])},get:function(){return this[_0x3413[15]](_0x3413[84])?_[_0x3413[85]](this[_0x3413[15]](_0x3413[84])[_0x3413[45]](_0x3413[43]),function(_0xdb46xa){return parseInt(_0xdb46xa,10)}):[]}}}
\ No newline at end of file
index 1799a61..a4fde27 100644 (file)
@@ -1 +1 @@
-var _0xc4c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x55\x73\x65\x72","\x6B\x65\x79\x73","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x61\x6C\x74","\x64\x69\x66\x66\x65\x72\x65\x6E\x63\x65\x42\x79","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x6F\x6D\x69\x74","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74\x20\x72\x6F\x6C\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x75\x73\x65\x72\x73","\x4C\x69\x63\x65\x6E\x73\x65\x20\x6C\x69\x6D\x69\x74\x20\x72\x65\x61\x63\x68\x65\x64","\x63\x6F\x75\x6E\x74\x20\x25\x73\x3A\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x63\x72\x65\x61\x74\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6D\x61\x78","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x6E\x65\x77\x50\x61\x73\x73\x77\x6F\x72\x64","\x49\x6E\x76\x61\x6C\x69\x64\x20\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x61\x74","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6F\x6C\x64\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x76\x6F\x69\x63\x65","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x6C\x6F\x67\x69\x6E\x49\x6E\x50\x61\x75\x73\x65","\x70\x65\x6E\x61\x6C\x74\x79","\x75\x70\x73\x65\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x70\x75\x73\x68","\x61\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x64\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64\x41\x76\x61\x74\x61\x72","\x75\x73\x65\x72\x70\x69\x63","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x61\x76\x61\x64\x64\x41\x76\x61\x74\x61\x72\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x70\x72\x6F\x66\x69\x6C\x65\x2E\x6A\x70\x67","\x6A\x6F\x69\x6E","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65","\x67\x65\x74","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x72\x6F\x6C\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x67\x65\x74\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6C\x6F\x67\x69\x6E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x4C\x4F\x47\x49\x4E\x49\x4E\x50\x41\x55\x53\x45","\x67\x65\x74\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x4C\x4F\x47\x49\x4E","\x50\x41\x55\x53\x45","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x6E\x63\x61\x74","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x70\x65\x6E\x61\x6C\x74\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x6C\x6F\x67\x6F\x75\x74","\x70\x61\x75\x73\x65","\x74\x79\x70\x65","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x6D\x61\x6E\x75\x61\x6C","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74"];_0xc4c9[0];var jsonpatch=require(_0xc4c9[1]);var rp=require(_0xc4c9[2]);var moment=require(_0xc4c9[3]);var BPromise=require(_0xc4c9[4]);var util=require(_0xc4c9[5]);var path=require(_0xc4c9[6]);var sox=require(_0xc4c9[7]);var ejs=require(_0xc4c9[8]);var fs=require(_0xc4c9[9]);var _=require(_0xc4c9[10]);var squel=require(_0xc4c9[11]);var crypto=require(_0xc4c9[12]);var jsforce=require(_0xc4c9[13]);var toCsv=require(_0xc4c9[14]);var qs=require(_0xc4c9[15]);var logger=require(_0xc4c9[17])(_0xc4c9[16]);var utils=require(_0xc4c9[18]);var config=require(_0xc4c9[19]);var db=require(_0xc4c9[21])[_0xc4c9[20]];var socket=require(_0xc4c9[23])({host:_0xc4c9[22],port:6379});require(_0xc4c9[25])[_0xc4c9[24]](socket);var jayson=require(_0xc4c9[26]);var client=jayson[_0xc4c9[28]][_0xc4c9[27]]({port:9002});function respondWithRpcPromise(_0xe1a8x18,_0xe1a8x19,_0xe1a8x1a){return  new BPromise(function(_0xe1a8x1b,_0xe1a8x1c){return client[_0xc4c9[41]](_0xe1a8x18,_0xe1a8x1a)[_0xc4c9[40]](function(_0xe1a8x1e){logger[_0xc4c9[33]](_0xc4c9[29],_0xe1a8x19,_0xc4c9[32]);logger[_0xc4c9[36]](_0xc4c9[34],_0xe1a8x19,_0xc4c9[32],JSON[_0xc4c9[35]](_0xe1a8x1e));if(_0xe1a8x1e[_0xc4c9[30]]){if(_0xe1a8x1e[_0xc4c9[30]][_0xc4c9[37]]=== 500){logger[_0xc4c9[30]](_0xc4c9[29],_0xe1a8x19,_0xe1a8x1e[_0xc4c9[30]][_0xc4c9[38]]);return _0xe1a8x1c(_0xe1a8x1e[_0xc4c9[30]][_0xc4c9[38]])};logger[_0xc4c9[30]](_0xc4c9[29],_0xe1a8x19,_0xe1a8x1e[_0xc4c9[30]][_0xc4c9[38]]);return _0xe1a8x1b(_0xe1a8x1e[_0xc4c9[30]][_0xc4c9[38]])}else {logger[_0xc4c9[33]](_0xc4c9[29],_0xe1a8x19,_0xc4c9[32]);_0xe1a8x1b(_0xe1a8x1e[_0xc4c9[39]][_0xc4c9[38]])}})[_0xc4c9[31]](function(_0xe1a8x1d){logger[_0xc4c9[30]](_0xc4c9[29],_0xe1a8x19,_0xe1a8x1d);_0xe1a8x1c(_0xe1a8x1d)})})}function respondWithStatusCode(_0xe1a8x1e,_0xe1a8x20,_0xe1a8x19){_0xe1a8x20= _0xe1a8x20|| 204;return function(_0xe1a8x21){if(_0xe1a8x21){logger[_0xc4c9[33]](_0xc4c9[34],_0xe1a8x19,_0xe1a8x20,_0xc4c9[42]);logger[_0xc4c9[36]](_0xc4c9[43],_0xe1a8x19,_0xe1a8x20,_0xc4c9[42]);return _0xe1a8x1e[_0xc4c9[44]](_0xe1a8x20)};return _0xe1a8x1e[_0xc4c9[46]](304)[_0xc4c9[45]]()}}function respondWithResult(_0xe1a8x1e,_0xe1a8x20,_0xe1a8x19){_0xe1a8x20= _0xe1a8x20|| 200;return function(_0xe1a8x21){if(_0xe1a8x21){logger[_0xc4c9[33]](_0xc4c9[34],_0xe1a8x19,_0xe1a8x20,_0xc4c9[47]);logger[_0xc4c9[36]](_0xc4c9[43],_0xe1a8x19,_0xe1a8x20,_0xc4c9[47],JSON[_0xc4c9[35]](_0xe1a8x21));return _0xe1a8x1e[_0xc4c9[46]](_0xe1a8x20)[_0xc4c9[48]](_0xe1a8x21)};return _0xe1a8x1e[_0xc4c9[46]](304)[_0xc4c9[45]]()}}function respondWithFilteredResult(_0xe1a8x1e,_0xe1a8x24,_0xe1a8x19){return function(_0xe1a8x21){if(_0xe1a8x21){var _0xe1a8x25=_0xe1a8x21[_0xc4c9[49]],_0xe1a8x26=_0xe1a8x24[_0xc4c9[50]],_0xe1a8x27=_0xe1a8x24[_0xc4c9[50]]+ _0xe1a8x24[_0xc4c9[51]],_0xe1a8x20;if(_0xe1a8x27>= _0xe1a8x25){_0xe1a8x27= _0xe1a8x25;_0xe1a8x20= 200}else {_0xe1a8x20= 206};_0xe1a8x1e[_0xc4c9[46]](_0xe1a8x20);logger[_0xc4c9[33]](_0xc4c9[34],_0xe1a8x19,_0xe1a8x20,_0xc4c9[52]);logger[_0xc4c9[36]](_0xc4c9[43],_0xe1a8x19,_0xe1a8x20,_0xc4c9[47],JSON[_0xc4c9[35]](_0xe1a8x21));return _0xe1a8x1e[_0xc4c9[56]](_0xc4c9[53],_0xe1a8x26+ _0xc4c9[54]+ _0xe1a8x27+ _0xc4c9[55]+ _0xe1a8x25)[_0xc4c9[48]](_0xe1a8x21)};return null}}function patchUpdates(_0xe1a8x29){return function(_0xe1a8x21){try{jsonpatch[_0xc4c9[57]](_0xe1a8x21,_0xe1a8x29,true)}catch(err){return BPromise[_0xc4c9[58]](err)};return _0xe1a8x21[_0xc4c9[59]]()}}function saveUpdates(_0xe1a8x2b,_0xe1a8x20,_0xe1a8x19){return function(_0xe1a8x21){if(_0xe1a8x21){return _0xe1a8x21[_0xc4c9[61]](_0xe1a8x2b)[_0xc4c9[40]](function(_0xe1a8x2c){logger[_0xc4c9[33]](_0xc4c9[34],_0xe1a8x19,_0xe1a8x20,_0xc4c9[60]);logger[_0xc4c9[36]](_0xc4c9[43],_0xe1a8x19,_0xe1a8x20,_0xc4c9[60],JSON[_0xc4c9[35]](_0xe1a8x21));return _0xe1a8x2c})};return null}}function removeEntity(_0xe1a8x1e,_0xe1a8x20,_0xe1a8x19){return function(_0xe1a8x21){if(_0xe1a8x21){return _0xe1a8x21[_0xc4c9[63]]()[_0xc4c9[40]](function(){logger[_0xc4c9[33]](_0xc4c9[34],_0xe1a8x19,_0xe1a8x20,_0xc4c9[62]);logger[_0xc4c9[36]](_0xc4c9[43],_0xe1a8x19,_0xe1a8x20,_0xc4c9[62],JSON[_0xc4c9[35]](_0xe1a8x21));_0xe1a8x1e[_0xc4c9[46]](204)[_0xc4c9[45]]()})}}}function handleEntityNotFound(_0xe1a8x1e,_0xe1a8x20,_0xe1a8x19){return function(_0xe1a8x21){if(!_0xe1a8x21){logger[_0xc4c9[30]](_0xc4c9[34],_0xe1a8x19,404,_0xc4c9[64]);_0xe1a8x1e[_0xc4c9[46]](404)[_0xc4c9[45]]();return null};return _0xe1a8x21}}function handleError(_0xe1a8x1e,_0xe1a8x20,_0xe1a8x19){_0xe1a8x20= _0xe1a8x20|| 500;return function(_0xe1a8x1d){logger[_0xc4c9[30]](_0xc4c9[34],_0xe1a8x19,_0xe1a8x20,JSON[_0xc4c9[35]](_0xe1a8x1d));delete _0xe1a8x1d[_0xc4c9[65]];_0xe1a8x1e[_0xc4c9[46]](_0xe1a8x20)[_0xc4c9[66]](_0xe1a8x1d)}}exports[_0xc4c9[67]]= function(_0xe1a8x1a,_0xe1a8x1e){var _0xe1a8x24={},_0xe1a8x30={};_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[74]](_[_0xc4c9[71]](db[_0xc4c9[70]][_0xc4c9[69]]),[_0xc4c9[72],_0xc4c9[73]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return db[_0xc4c9[70]][_0xc4c9[92]](_0xe1a8x24)[_0xc4c9[40]](respondWithFilteredResult(_0xe1a8x1e,_0xe1a8x24,_0xc4c9[67]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[67]))};exports[_0xc4c9[93]]= function(_0xe1a8x1a,_0xe1a8x1e){var _0xe1a8x24={raw:false,where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}},_0xe1a8x30={};_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[74]](_[_0xc4c9[71]](db[_0xc4c9[70]][_0xc4c9[69]]),[_0xc4c9[72],_0xc4c9[73]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return db[_0xc4c9[70]][_0xc4c9[96]](_0xe1a8x24)[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[93]))[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[93]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[93]))};exports[_0xc4c9[97]]= function(_0xe1a8x1a,_0xe1a8x1e){return db[_0xc4c9[70]][_0xc4c9[97]](_0xe1a8x1a[_0xc4c9[98]],{raw:false,individualHooks:true})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,201,_0xc4c9[97]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[97]))};exports[_0xc4c9[61]]= function(_0xe1a8x1a,_0xe1a8x1e){if(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[94]]){delete _0xe1a8x1a[_0xc4c9[98]][_0xc4c9[94]]};return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[61]))[_0xc4c9[40]](saveUpdates(_0xe1a8x1a[_0xc4c9[98]],null,_0xc4c9[61]))[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[61]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[61]))};exports[_0xc4c9[63]]= function(_0xe1a8x1a,_0xe1a8x1e){return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[63]))[_0xc4c9[40]](removeEntity(_0xe1a8x1e,null,_0xc4c9[63]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[63]))};exports[_0xc4c9[99]]= function(_0xe1a8x1a,_0xe1a8x1e){return db[_0xc4c9[70]][_0xc4c9[99]]()[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[99]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[99]))};exports[_0xc4c9[100]]= function(_0xe1a8x1a,_0xe1a8x1e){return db[_0xc4c9[70]][_0xc4c9[63]]({where:{id:_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[101]]|| []},raw:false,individualHooks:true})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,204,_0xc4c9[100]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[100]))};exports[_0xc4c9[102]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[102]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){return _0xe1a8x21[_0xc4c9[102]](_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[101]],_[_0xc4c9[103]](_0xe1a8x1a[_0xc4c9[98]],[_0xc4c9[101],_0xc4c9[94]])|| {})};return null})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[102]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[102]))};var getLicense=function(_0xe1a8x1a){return  new BPromise(function(_0xe1a8x1b,_0xe1a8x1c){var _0xe1a8x35=0;_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[104]]=== _0xc4c9[105]&& _0xe1a8x1b(_0xc4c9[106]);return db[_0xc4c9[70]][_0xc4c9[49]]({where:{$or:[{role:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[104]]=== _0xc4c9[107]?_0xc4c9[107]:[_0xc4c9[115],_0xc4c9[116]]}]}})[_0xc4c9[40]](function(_0xe1a8x25){_0xe1a8x35= _0xe1a8x25;return require(_0xc4c9[114])[_0xc4c9[113]]()})[_0xc4c9[40]](function(_0xe1a8x36){var _0xe1a8x37=_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[104]]=== _0xc4c9[107]?_0xc4c9[108]:_0xc4c9[109];if(_0xe1a8x36[_0xe1a8x37]&& _0xe1a8x35>= _0xe1a8x36[_0xe1a8x37]){return _0xe1a8x1c({message:_0xc4c9[110]})};return _0xe1a8x1b(util[_0xc4c9[112]](_0xc4c9[111],_0xe1a8x37,_0xe1a8x35))})[_0xc4c9[31]](function(_0xe1a8x1d){return _0xe1a8x1c(_0xe1a8x1d)})})};exports[_0xc4c9[117]]= function(_0xe1a8x1a,_0xe1a8x1e){return getLicense(_0xe1a8x1a)[_0xc4c9[40]](function(_0xe1a8x39){return db[_0xc4c9[70]][_0xc4c9[124]](_0xc4c9[118])})[_0xc4c9[40]](function(_0xe1a8x38){_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[118]]= _0xe1a8x1a[_0xc4c9[98]][_0xc4c9[118]]|| (_0xe1a8x38?_0xe1a8x38+ 1:1000);if(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[119]]){_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[120]]= _0xe1a8x1a[_0xc4c9[98]][_0xc4c9[118]];_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[121]]= {mailbox:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[118]],password:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[72]],fullname:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[122]],email:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[123]]}};return db[_0xc4c9[70]][_0xc4c9[117]](_0xe1a8x1a[_0xc4c9[98]],{include:[{model:db[_0xc4c9[121]],as:_0xc4c9[121]}]})})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,201,_0xc4c9[117]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[117]))};exports[_0xc4c9[125]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){if(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[94]]){delete _0xe1a8x1a[_0xc4c9[98]][_0xc4c9[94]]};return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){switch(_0xe1a8x1a[_0xc4c9[116]][_0xc4c9[104]]){case _0xc4c9[115]:;case _0xc4c9[116]:if(!_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[126]]){throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[127])};return _0xe1a8x21;case _0xc4c9[105]:if(!_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[129]]||  !_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[126]]){throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[127])};if(!_0xe1a8x21[_0xc4c9[130]](_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[129]])){_0xe1a8x1e[_0xc4c9[44]](403);return null}else {return _0xe1a8x21}}};return null})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[125]))[_0xc4c9[40]](saveUpdates({password:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[126]]},null,_0xc4c9[125]))[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[125]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[125]))};exports[_0xc4c9[131]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104],_0xc4c9[137]]})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[131]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3a= _0xe1a8x21;if(!utils[_0xc4c9[145]](_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]])){throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[146])};return _0xe1a8x21[_0xc4c9[147]+ _[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]][_0xc4c9[148]]())+ _0xc4c9[150]](_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[101]],{penalty:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[138]]|| 0})}})[_0xc4c9[40]](function(){if(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]]=== _0xc4c9[133]&& _0xe1a8x1a[_0xc4c9[98]][_0xc4c9[134]]){return db[_0xc4c9[144]][_0xc4c9[143]]({where:{id:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[101]]|| []},raw:true,attributes:[_0xc4c9[94],_0xc4c9[65]]})}})[_0xc4c9[40]](function(_0xe1a8x3b){var _0xe1a8x3c=[];if(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]]=== _0xc4c9[133]&& _0xe1a8x1a[_0xc4c9[98]][_0xc4c9[134]]){for(var _0xe1a8x3d=0;_0xe1a8x3d< _0xe1a8x3b[_0xc4c9[80]];_0xe1a8x3d+= 1){_0xe1a8x3c[_0xc4c9[141]](db[_0xc4c9[140]][_0xc4c9[139]]({membername:_0xe1a8x3a[_0xc4c9[65]],UserId:_0xe1a8x3a[_0xc4c9[94]],queue_name:_0xe1a8x3b[_0xe1a8x3d][_0xc4c9[65]],VoiceQueueId:_0xe1a8x3b[_0xe1a8x3d][_0xc4c9[94]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),paused:_0xe1a8x3a[_0xc4c9[137]]|| false,penalty:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[138]]|| 0}))};return BPromise[_0xc4c9[142]](_0xe1a8x3c)};return _0xe1a8x3a})[_0xc4c9[40]](respondWithStatusCode(_0xe1a8x1e,null,_0xc4c9[131]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[131]))};exports[_0xc4c9[151]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104]]})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[151]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3a= _0xe1a8x21;if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]]||  !utils[_0xc4c9[145]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])){throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[146])};return _0xe1a8x21[_0xc4c9[152]+ _[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]][_0xc4c9[148]]())+ _0xc4c9[150]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[101]])}})[_0xc4c9[40]](function(_0xe1a8x3b){if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]]=== _0xc4c9[133]){return db[_0xc4c9[140]][_0xc4c9[63]]({where:{UserId:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]],VoiceQueueId:_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[101]]},individualHooks:true})[_0xc4c9[40]](function(){return _0xe1a8x3a})};return _0xe1a8x3a})[_0xc4c9[40]](respondWithStatusCode(_0xe1a8x1e,null,_0xc4c9[151]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[151]))};exports[_0xc4c9[153]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[154]]= _0xe1a8x1a[_0xc4c9[156]][_0xc4c9[155]];return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[153]))[_0xc4c9[40]](saveUpdates(_0xe1a8x1a[_0xc4c9[98]],null,_0xc4c9[153]))[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[157]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[153]))};exports[_0xc4c9[158]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3e=path[_0xc4c9[161]](config[_0xc4c9[159]],_0xc4c9[160]);return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]},attributes:[_0xc4c9[94],_0xc4c9[154]],raw:true})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[158]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){logger[_0xc4c9[33]](_0xc4c9[29],_0xc4c9[158],_0xc4c9[47]);logger[_0xc4c9[36]](_0xc4c9[34],_0xc4c9[158],_0xc4c9[47],JSON[_0xc4c9[35]](_0xe1a8x21));if(!fs[_0xc4c9[163]](path[_0xc4c9[161]](config[_0xc4c9[159]],_0xc4c9[162],_0xe1a8x21[_0xc4c9[154]]))){return _0xe1a8x1e[_0xc4c9[164]](_0xe1a8x3e)};return _0xe1a8x1e[_0xc4c9[164]](path[_0xc4c9[161]](config[_0xc4c9[159]],_0xc4c9[162],_0xe1a8x21[_0xc4c9[154]]))}})[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[93]))};exports[_0xc4c9[165]]= function(_0xe1a8x1a,_0xe1a8x21,_0xe1a8x33){var _0xe1a8x24={};var _0xe1a8x30={};var _0xe1a8x3f;var _0xe1a8x25;return db[_0xc4c9[70]][_0xc4c9[167]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x21,null,_0xc4c9[165]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3f= _0xe1a8x21;_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[71]](db[_0xc4c9[166]][_0xc4c9[69]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return _0xe1a8x3f[_0xc4c9[165]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x41){if(_0xe1a8x41){_0xe1a8x25= _0xe1a8x41[_0xc4c9[80]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};return _0xe1a8x3f[_0xc4c9[165]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x40){return _0xe1a8x40?{count:_0xe1a8x25,rows:_0xe1a8x40}:null})[_0xc4c9[40]](respondWithResult(_0xe1a8x21,null,_0xc4c9[165]))[_0xc4c9[31]](handleError(_0xe1a8x21,null,_0xc4c9[165]))};exports[_0xc4c9[168]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;var _0xe1a8x3b;var _0xe1a8x24={};var _0xe1a8x25;return db[_0xc4c9[70]][_0xc4c9[167]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104]]})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[168]))[_0xc4c9[40]](function(_0xe1a8x42){if(!utils[_0xc4c9[145]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])){throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[146])};_0xe1a8x3a= _0xe1a8x42;var _0xe1a8x30={};_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[71]](db[_[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])+ _0xc4c9[169]][_0xc4c9[69]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);switch(_0xe1a8x3a[_0xc4c9[104]]){case _0xc4c9[115]:return db[_[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])+ _0xc4c9[169]][_0xc4c9[143]](_0xe1a8x24);case _0xc4c9[116]:;case _0xc4c9[105]:return _0xe1a8x3a[_0xc4c9[170]+ _[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])+ _0xc4c9[150]](_0xe1a8x24);default:throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[171])}})[_0xc4c9[40]](function(_0xe1a8x41){_0xe1a8x25= _0xe1a8x41[_0xc4c9[80]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};switch(_0xe1a8x3a[_0xc4c9[104]]){case _0xc4c9[115]:return db[_[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])+ _0xc4c9[169]][_0xc4c9[143]](_0xe1a8x24);case _0xc4c9[116]:;case _0xc4c9[105]:return _0xe1a8x3a[_0xc4c9[170]+ _[_0xc4c9[149]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[132]])+ _0xc4c9[150]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x40){return {count:_0xe1a8x25,rows:_0xe1a8x40}})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[168]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[168]))};exports[_0xc4c9[172]]= function(_0xe1a8x1a,_0xe1a8x21,_0xe1a8x33){var _0xe1a8x24={};var _0xe1a8x30={};var _0xe1a8x3f;var _0xe1a8x25;return db[_0xc4c9[70]][_0xc4c9[167]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x21,null,_0xc4c9[172]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3f= _0xe1a8x21;_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[71]](db[_0xc4c9[140]][_0xc4c9[69]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return _0xe1a8x3f[_0xc4c9[172]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x41){if(_0xe1a8x41){_0xe1a8x25= _0xe1a8x41[_0xc4c9[80]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};return _0xe1a8x3f[_0xc4c9[172]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x40){return _0xe1a8x40?{count:_0xe1a8x25,rows:_0xe1a8x40}:null})[_0xc4c9[40]](respondWithResult(_0xe1a8x21,null,_0xc4c9[172]))[_0xc4c9[31]](handleError(_0xe1a8x21,null,_0xc4c9[172]))};exports[_0xc4c9[173]]= function(_0xe1a8x1a,_0xe1a8x21,_0xe1a8x33){var _0xe1a8x24={};var _0xe1a8x30={};var _0xe1a8x3f;var _0xe1a8x25;return db[_0xc4c9[70]][_0xc4c9[167]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x21,null,_0xc4c9[173]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3f= _0xe1a8x21;_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[71]](db[_0xc4c9[174]][_0xc4c9[69]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return _0xe1a8x3f[_0xc4c9[173]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x41){if(_0xe1a8x41){_0xe1a8x25= _0xe1a8x41[_0xc4c9[80]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};return _0xe1a8x3f[_0xc4c9[173]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x40){return _0xe1a8x40?{count:_0xe1a8x25,rows:_0xe1a8x40}:null})[_0xc4c9[40]](respondWithResult(_0xe1a8x21,null,_0xc4c9[173]))[_0xc4c9[31]](handleError(_0xe1a8x21,null,_0xc4c9[173]))};exports[_0xc4c9[175]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;var _0xe1a8x3b;return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]],role:_0xc4c9[105]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104],_0xc4c9[118],_0xc4c9[137]]})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[175]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3a= _0xe1a8x21;return _0xe1a8x3a[_0xc4c9[185]]({raw:true})}})[_0xc4c9[40]](function(_0xe1a8x41){var _0xe1a8x3c=[];if(_0xe1a8x41){_0xe1a8x3b= _0xe1a8x41;if(_0xe1a8x3b[_0xc4c9[80]]){for(var _0xe1a8x3d=0;_0xe1a8x3d< _0xe1a8x3b[_0xc4c9[80]];_0xe1a8x3d++){_0xe1a8x3c[_0xc4c9[141]](db[_0xc4c9[140]][_0xc4c9[139]]({membername:_0xe1a8x3a[_0xc4c9[65]],UserId:_0xe1a8x3a[_0xc4c9[94]],queue_name:_0xe1a8x3b[_0xe1a8x3d][_0xc4c9[65]],VoiceQueueId:_0xe1a8x3b[_0xe1a8x3d][_0xc4c9[94]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),paused:_0xe1a8x3a[_0xc4c9[137]]|| false,penalty:_0xe1a8x3b[_0xe1a8x3d][_0xc4c9[184]]|| 0}))};return BPromise[_0xc4c9[142]](_0xe1a8x3c)}}})[_0xc4c9[40]](function(){return db[_0xc4c9[183]][_0xc4c9[143]]({where:{membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),exitAt:null}})})[_0xc4c9[40]](function(){var _0xe1a8x43=[];var _0xe1a8x44=[];var _0xe1a8x45=utils[_0xc4c9[178]]();var _0xe1a8x46={membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),enterAt:moment()[_0xc4c9[112]](_0xc4c9[176]),role:_0xe1a8x3a[_0xc4c9[104]],internal:_0xe1a8x3a[_0xc4c9[118]]};_0xe1a8x45[_0xc4c9[181]](function(_0xe1a8x47){_0xe1a8x43[_0xc4c9[141]](_[_0xc4c9[90]]({channel:_0xe1a8x47,type:_0xc4c9[179]},_0xe1a8x46));if(_0xe1a8x3a[_0xc4c9[137]]){_0xe1a8x44[_0xc4c9[141]](_[_0xc4c9[90]]({channel:_0xe1a8x47,type:_0xc4c9[180],data1:_0xc4c9[177]},_0xe1a8x46))}});return db[_0xc4c9[183]][_0xc4c9[97]](_0xe1a8x43[_0xc4c9[182]](_0xe1a8x44),{individualHooks:true})})[_0xc4c9[40]](function(){return _0xe1a8x3a[_0xc4c9[61]]({online:true,lastLoginAt:moment()[_0xc4c9[112]](_0xc4c9[176]),voicePause:_0xe1a8x3a[_0xc4c9[137]]|| false,mailPause:_0xe1a8x3a[_0xc4c9[137]]|| false,chatPause:_0xe1a8x3a[_0xc4c9[137]]|| false,faxPause:_0xe1a8x3a[_0xc4c9[137]]|| false,smsPause:_0xe1a8x3a[_0xc4c9[137]]|| false,openchannelPause:_0xe1a8x3a[_0xc4c9[137]]|| false,pauseType:_0xe1a8x3a[_0xc4c9[137]]?_0xc4c9[177]:null})})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[175]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[175]))};exports[_0xc4c9[186]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]],role:_0xc4c9[105]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104]]})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[186]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3a= _0xe1a8x21;return db[_0xc4c9[140]][_0xc4c9[63]]({where:{membername:_0xe1a8x3a[_0xc4c9[65]]},individualHooks:true})}})[_0xc4c9[40]](function(){return db[_0xc4c9[183]][_0xc4c9[143]]({where:{membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),exitAt:null}})})[_0xc4c9[40]](function(_0xe1a8x3c){var _0xe1a8x48=[];_0xe1a8x3c[_0xc4c9[181]](function(_0xe1a8x49){_0xe1a8x48[_0xc4c9[141]](_0xe1a8x49[_0xc4c9[61]]({exitAt:moment()[_0xc4c9[112]](_0xc4c9[176])}))});return BPromise[_0xc4c9[142]](_0xe1a8x48)})[_0xc4c9[40]](function(){return _0xe1a8x3a[_0xc4c9[61]]({online:false,lastLoginAt:null,voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[186]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[186]))};exports[_0xc4c9[187]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;return db[_0xc4c9[140]][_0xc4c9[61]]({paused:1},{where:{UserId:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]},individualHooks:true})[_0xc4c9[40]](function(){return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]],role:_0xc4c9[105]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104],_0xc4c9[118]]})})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[187]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3a= _0xe1a8x21;return respondWithRpcPromise(_0xc4c9[190],_0xc4c9[187],{id:_0xe1a8x3a[_0xc4c9[94]],name:_0xe1a8x3a[_0xc4c9[65]]})}})[_0xc4c9[40]](function(){if(_0xe1a8x3a){return db[_0xc4c9[183]][_0xc4c9[143]]({where:{membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),type:_0xc4c9[180],exitAt:null}})}})[_0xc4c9[40]](function(_0xe1a8x3c){if(_0xe1a8x3c[_0xc4c9[80]]){return db[_0xc4c9[183]][_0xc4c9[61]]({exitAt:moment()[_0xc4c9[112]](_0xc4c9[176])},{where:{id:{$in:_[_0xc4c9[89]](_0xe1a8x3c,_0xc4c9[94])}},individualHooks:true})}})[_0xc4c9[40]](function(){var _0xe1a8x3c=[];var _0xe1a8x45=utils[_0xc4c9[178]]();_0xe1a8x45[_0xc4c9[181]](function(_0xe1a8x47){_0xe1a8x3c[_0xc4c9[141]]({channel:_0xe1a8x47,membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),type:_0xc4c9[180],enterAt:moment()[_0xc4c9[112]](_0xc4c9[176]),data1:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[188]]|| _0xc4c9[189],role:_0xe1a8x3a[_0xc4c9[104]],internal:_0xe1a8x3a[_0xc4c9[118]]})});return db[_0xc4c9[183]][_0xc4c9[97]](_0xe1a8x3c,{individualHooks:true})})[_0xc4c9[40]](function(){return _0xe1a8x3a[_0xc4c9[61]]({voicePause:true,mailPause:true,chatPause:true,faxPause:true,smsPause:true,openchannelPause:true,pauseType:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[188]]|| _0xc4c9[189],lastPauseAt:moment()[_0xc4c9[112]](_0xc4c9[176])})})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[187]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[187]))};exports[_0xc4c9[191]]= function(_0xe1a8x1a,_0xe1a8x1e,_0xe1a8x33){var _0xe1a8x3a;return db[_0xc4c9[70]][_0xc4c9[96]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]},attributes:[_0xc4c9[94],_0xc4c9[65],_0xc4c9[104]]})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x1e,null,_0xc4c9[191]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3a= _0xe1a8x21;if(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]]&&  !utils[_0xc4c9[145]](_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]])){throw  new db[_0xc4c9[128]].ValidationError(_0xc4c9[146])};switch(_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]]){case _0xc4c9[133]:return respondWithRpcPromise(_0xc4c9[190],_0xc4c9[191],{id:_0xe1a8x3a[_0xc4c9[94]],name:_0xe1a8x3a[_0xc4c9[65]]})[_0xc4c9[40]](function(){return db[_0xc4c9[140]][_0xc4c9[61]]({paused:0},{where:{UserId:_0xe1a8x3a[_0xc4c9[94]]},individualHooks:true})})[_0xc4c9[40]](function(){return db[_0xc4c9[183]][_0xc4c9[96]]({where:{channel:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]],membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),type:_0xc4c9[180],exitAt:null}})})[_0xc4c9[40]](function(_0xe1a8x49){if(_0xe1a8x49){return _0xe1a8x49[_0xc4c9[61]]({exitAt:moment()[_0xc4c9[112]](_0xc4c9[176]),data2:_0xc4c9[192]},{individualHooks:true})};return null})[_0xc4c9[40]](function(){return _0xe1a8x3a[_0xc4c9[61]]({voicePause:false})});case _0xc4c9[193]:;case _0xc4c9[194]:;case _0xc4c9[195]:;case _0xc4c9[196]:;case _0xc4c9[199]:return db[_0xc4c9[183]][_0xc4c9[96]]({where:{channel:_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]],membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),type:_0xc4c9[180],exitAt:null}})[_0xc4c9[40]](function(_0xe1a8x49){return _0xe1a8x49[_0xc4c9[61]]({exitAt:moment()[_0xc4c9[112]](_0xc4c9[176]),data2:_0xc4c9[192]},{individualHooks:true})})[_0xc4c9[40]](function(){var _0xe1a8x4a={};_[_0xc4c9[56]](_0xe1a8x4a,util[_0xc4c9[112]](_0xc4c9[197],_0xe1a8x1a[_0xc4c9[98]][_0xc4c9[132]],_0xc4c9[198]),false);return _0xe1a8x3a[_0xc4c9[61]](_0xe1a8x4a)});default:return respondWithRpcPromise(_0xc4c9[190],_0xc4c9[191],{id:_0xe1a8x3a[_0xc4c9[94]],name:_0xe1a8x3a[_0xc4c9[65]]})[_0xc4c9[40]](function(){return db[_0xc4c9[140]][_0xc4c9[61]]({paused:0},{where:{UserId:_0xe1a8x3a[_0xc4c9[94]]}})})[_0xc4c9[40]](function(){return db[_0xc4c9[183]][_0xc4c9[143]]({where:{membername:_0xe1a8x3a[_0xc4c9[65]],interface:util[_0xc4c9[112]](_0xc4c9[135],_0xc4c9[136],_0xe1a8x3a[_0xc4c9[65]]),type:_0xc4c9[180],exitAt:null}})})[_0xc4c9[40]](function(_0xe1a8x3c){var _0xe1a8x48=[];_0xe1a8x3c[_0xc4c9[181]](function(_0xe1a8x49){_0xe1a8x48[_0xc4c9[141]](_0xe1a8x49[_0xc4c9[61]]({exitAt:moment()[_0xc4c9[112]](_0xc4c9[176]),data2:_0xc4c9[192]}))});return BPromise[_0xc4c9[142]](_0xe1a8x48)})[_0xc4c9[40]](function(){return _0xe1a8x3a[_0xc4c9[61]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})}}})[_0xc4c9[40]](respondWithResult(_0xe1a8x1e,null,_0xc4c9[191]))[_0xc4c9[31]](handleError(_0xe1a8x1e,null,_0xc4c9[191]))};exports[_0xc4c9[200]]= function(_0xe1a8x1a,_0xe1a8x21,_0xe1a8x33){var _0xe1a8x24={};var _0xe1a8x30={};var _0xe1a8x3f;var _0xe1a8x25;return db[_0xc4c9[70]][_0xc4c9[167]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x21,null,_0xc4c9[200]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3f= _0xe1a8x21;_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[71]](db[_0xc4c9[201]][_0xc4c9[69]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return _0xe1a8x3f[_0xc4c9[200]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x41){if(_0xe1a8x41){_0xe1a8x25= _0xe1a8x41[_0xc4c9[80]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};return _0xe1a8x3f[_0xc4c9[200]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x40){return _0xe1a8x40?{count:_0xe1a8x25,rows:_0xe1a8x40}:null})[_0xc4c9[40]](respondWithResult(_0xe1a8x21,null,_0xc4c9[200]))[_0xc4c9[31]](handleError(_0xe1a8x21,null,_0xc4c9[200]))};exports[_0xc4c9[202]]= function(_0xe1a8x1a,_0xe1a8x21,_0xe1a8x33){var _0xe1a8x24={};var _0xe1a8x30={};var _0xe1a8x3f;var _0xe1a8x25;return db[_0xc4c9[70]][_0xc4c9[167]]({where:{id:_0xe1a8x1a[_0xc4c9[95]][_0xc4c9[94]]}})[_0xc4c9[40]](handleEntityNotFound(_0xe1a8x21,null,_0xc4c9[202]))[_0xc4c9[40]](function(_0xe1a8x21){if(_0xe1a8x21){_0xe1a8x3f= _0xe1a8x21;_0xe1a8x30[_0xc4c9[68]]= _[_0xc4c9[71]](db[_0xc4c9[203]][_0xc4c9[69]]);_0xe1a8x30[_0xc4c9[75]]= _[_0xc4c9[71]](_0xe1a8x1a[_0xc4c9[75]]);_0xe1a8x30[_0xc4c9[76]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],_0xe1a8x30[_0xc4c9[75]]);_0xe1a8x24[_0xc4c9[78]]= _[_0xc4c9[77]](_0xe1a8x30[_0xc4c9[68]],qs[_0xc4c9[79]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[79]]));_0xe1a8x24[_0xc4c9[78]]= (_0xe1a8x24[_0xc4c9[78]][_0xc4c9[80]])?_0xe1a8x24[_0xc4c9[78]]:_0xe1a8x30[_0xc4c9[68]];_0xe1a8x24[_0xc4c9[83]]= qs[_0xc4c9[84]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[84]]);_0xe1a8x24[_0xc4c9[85]]= qs[_0xc4c9[76]](_[_0xc4c9[86]](_0xe1a8x1a[_0xc4c9[75]],_0xe1a8x30[_0xc4c9[76]]));if(_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]){_0xe1a8x24[_0xc4c9[85]]= _[_0xc4c9[90]](_0xe1a8x24[_0xc4c9[85]],{$or:_[_0xc4c9[89]](_0xe1a8x24[_0xc4c9[78]],function(_0xe1a8x31){var _0xe1a8x32={};_0xe1a8x32[_0xe1a8x31]= {$like:_0xc4c9[88]+ _0xe1a8x1a[_0xc4c9[75]][_0xc4c9[87]]+ _0xc4c9[88]};return _0xe1a8x32})})};_0xe1a8x24= _[_0xc4c9[90]]({},_0xe1a8x24,_0xe1a8x1a[_0xc4c9[91]]);return _0xe1a8x3f[_0xc4c9[202]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x41){if(_0xe1a8x41){_0xe1a8x25= _0xe1a8x41[_0xc4c9[80]];if(!_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[82]](_0xc4c9[81])){_0xe1a8x24[_0xc4c9[51]]= qs[_0xc4c9[51]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[51]]);_0xe1a8x24[_0xc4c9[50]]= qs[_0xc4c9[50]](_0xe1a8x1a[_0xc4c9[75]][_0xc4c9[50]])};return _0xe1a8x3f[_0xc4c9[202]](_0xe1a8x24)}})[_0xc4c9[40]](function(_0xe1a8x40){return _0xe1a8x40?{count:_0xe1a8x25,rows:_0xe1a8x40}:null})[_0xc4c9[40]](respondWithResult(_0xe1a8x21,null,_0xc4c9[202]))[_0xc4c9[31]](handleError(_0xe1a8x21,null,_0xc4c9[202]))}
\ No newline at end of file
+var _0xe9f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x55\x73\x65\x72","\x6B\x65\x79\x73","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x61\x6C\x74","\x64\x69\x66\x66\x65\x72\x65\x6E\x63\x65\x42\x79","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x6F\x6D\x69\x74","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74\x20\x72\x6F\x6C\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x75\x73\x65\x72\x73","\x4C\x69\x63\x65\x6E\x73\x65\x20\x6C\x69\x6D\x69\x74\x20\x72\x65\x61\x63\x68\x65\x64","\x63\x6F\x75\x6E\x74\x20\x25\x73\x3A\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x63\x72\x65\x61\x74\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6D\x61\x78","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x6E\x65\x77\x50\x61\x73\x73\x77\x6F\x72\x64","\x49\x6E\x76\x61\x6C\x69\x64\x20\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x61\x74","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6F\x6C\x64\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x76\x6F\x69\x63\x65","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x6C\x6F\x67\x69\x6E\x49\x6E\x50\x61\x75\x73\x65","\x70\x65\x6E\x61\x6C\x74\x79","\x75\x70\x73\x65\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x70\x75\x73\x68","\x61\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x64\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64\x41\x76\x61\x74\x61\x72","\x75\x73\x65\x72\x70\x69\x63","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x61\x76\x61\x64\x64\x41\x76\x61\x74\x61\x72\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x70\x72\x6F\x66\x69\x6C\x65\x2E\x6A\x70\x67","\x6A\x6F\x69\x6E","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65","\x67\x65\x74","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x72\x6F\x6C\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x67\x65\x74\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6C\x6F\x67\x69\x6E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x4C\x4F\x47\x49\x4E\x49\x4E\x50\x41\x55\x53\x45","\x67\x65\x74\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x4C\x4F\x47\x49\x4E","\x50\x41\x55\x53\x45","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x6E\x63\x61\x74","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x70\x65\x6E\x61\x6C\x74\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x6C\x6F\x67\x6F\x75\x74","\x70\x61\x75\x73\x65","\x74\x79\x70\x65","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x6D\x61\x6E\x75\x61\x6C","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74"];_0xe9f2[0];var jsonpatch=require(_0xe9f2[1]);var rp=require(_0xe9f2[2]);var moment=require(_0xe9f2[3]);var BPromise=require(_0xe9f2[4]);var util=require(_0xe9f2[5]);var path=require(_0xe9f2[6]);var sox=require(_0xe9f2[7]);var ejs=require(_0xe9f2[8]);var fs=require(_0xe9f2[9]);var _=require(_0xe9f2[10]);var squel=require(_0xe9f2[11]);var crypto=require(_0xe9f2[12]);var jsforce=require(_0xe9f2[13]);var toCsv=require(_0xe9f2[14]);var qs=require(_0xe9f2[15]);var logger=require(_0xe9f2[17])(_0xe9f2[16]);var utils=require(_0xe9f2[18]);var config=require(_0xe9f2[19]);var db=require(_0xe9f2[21])[_0xe9f2[20]];var socket=require(_0xe9f2[23])({host:_0xe9f2[22],port:6379});require(_0xe9f2[25])[_0xe9f2[24]](socket);var jayson=require(_0xe9f2[26]);var client=jayson[_0xe9f2[28]][_0xe9f2[27]]({port:9002});function respondWithRpcPromise(_0x1399x18,_0x1399x19,_0x1399x1a){return  new BPromise(function(_0x1399x1b,_0x1399x1c){return client[_0xe9f2[41]](_0x1399x18,_0x1399x1a)[_0xe9f2[40]](function(_0x1399x1e){logger[_0xe9f2[33]](_0xe9f2[29],_0x1399x19,_0xe9f2[32]);logger[_0xe9f2[36]](_0xe9f2[34],_0x1399x19,_0xe9f2[32],JSON[_0xe9f2[35]](_0x1399x1e));if(_0x1399x1e[_0xe9f2[30]]){if(_0x1399x1e[_0xe9f2[30]][_0xe9f2[37]]=== 500){logger[_0xe9f2[30]](_0xe9f2[29],_0x1399x19,_0x1399x1e[_0xe9f2[30]][_0xe9f2[38]]);return _0x1399x1c(_0x1399x1e[_0xe9f2[30]][_0xe9f2[38]])};logger[_0xe9f2[30]](_0xe9f2[29],_0x1399x19,_0x1399x1e[_0xe9f2[30]][_0xe9f2[38]]);return _0x1399x1b(_0x1399x1e[_0xe9f2[30]][_0xe9f2[38]])}else {logger[_0xe9f2[33]](_0xe9f2[29],_0x1399x19,_0xe9f2[32]);_0x1399x1b(_0x1399x1e[_0xe9f2[39]][_0xe9f2[38]])}})[_0xe9f2[31]](function(_0x1399x1d){logger[_0xe9f2[30]](_0xe9f2[29],_0x1399x19,_0x1399x1d);_0x1399x1c(_0x1399x1d)})})}function respondWithStatusCode(_0x1399x1e,_0x1399x20,_0x1399x19){_0x1399x20= _0x1399x20|| 204;return function(_0x1399x21){if(_0x1399x21){logger[_0xe9f2[33]](_0xe9f2[34],_0x1399x19,_0x1399x20,_0xe9f2[42]);logger[_0xe9f2[36]](_0xe9f2[43],_0x1399x19,_0x1399x20,_0xe9f2[42]);return _0x1399x1e[_0xe9f2[44]](_0x1399x20)};return _0x1399x1e[_0xe9f2[46]](304)[_0xe9f2[45]]()}}function respondWithResult(_0x1399x1e,_0x1399x20,_0x1399x19){_0x1399x20= _0x1399x20|| 200;return function(_0x1399x21){if(_0x1399x21){logger[_0xe9f2[33]](_0xe9f2[34],_0x1399x19,_0x1399x20,_0xe9f2[47]);logger[_0xe9f2[36]](_0xe9f2[43],_0x1399x19,_0x1399x20,_0xe9f2[47],JSON[_0xe9f2[35]](_0x1399x21));return _0x1399x1e[_0xe9f2[46]](_0x1399x20)[_0xe9f2[48]](_0x1399x21)};return _0x1399x1e[_0xe9f2[46]](304)[_0xe9f2[45]]()}}function respondWithFilteredResult(_0x1399x1e,_0x1399x24,_0x1399x19){return function(_0x1399x21){if(_0x1399x21){var _0x1399x25=_0x1399x21[_0xe9f2[49]],_0x1399x26=_0x1399x24[_0xe9f2[50]],_0x1399x27=_0x1399x24[_0xe9f2[50]]+ _0x1399x24[_0xe9f2[51]],_0x1399x20;if(_0x1399x27>= _0x1399x25){_0x1399x27= _0x1399x25;_0x1399x20= 200}else {_0x1399x20= 206};_0x1399x1e[_0xe9f2[46]](_0x1399x20);logger[_0xe9f2[33]](_0xe9f2[34],_0x1399x19,_0x1399x20,_0xe9f2[52]);logger[_0xe9f2[36]](_0xe9f2[43],_0x1399x19,_0x1399x20,_0xe9f2[47],JSON[_0xe9f2[35]](_0x1399x21));return _0x1399x1e[_0xe9f2[56]](_0xe9f2[53],_0x1399x26+ _0xe9f2[54]+ _0x1399x27+ _0xe9f2[55]+ _0x1399x25)[_0xe9f2[48]](_0x1399x21)};return null}}function patchUpdates(_0x1399x29){return function(_0x1399x21){try{jsonpatch[_0xe9f2[57]](_0x1399x21,_0x1399x29,true)}catch(err){return BPromise[_0xe9f2[58]](err)};return _0x1399x21[_0xe9f2[59]]()}}function saveUpdates(_0x1399x2b,_0x1399x20,_0x1399x19){return function(_0x1399x21){if(_0x1399x21){return _0x1399x21[_0xe9f2[61]](_0x1399x2b)[_0xe9f2[40]](function(_0x1399x2c){logger[_0xe9f2[33]](_0xe9f2[34],_0x1399x19,_0x1399x20,_0xe9f2[60]);logger[_0xe9f2[36]](_0xe9f2[43],_0x1399x19,_0x1399x20,_0xe9f2[60],JSON[_0xe9f2[35]](_0x1399x21));return _0x1399x2c})};return null}}function removeEntity(_0x1399x1e,_0x1399x20,_0x1399x19){return function(_0x1399x21){if(_0x1399x21){return _0x1399x21[_0xe9f2[63]]()[_0xe9f2[40]](function(){logger[_0xe9f2[33]](_0xe9f2[34],_0x1399x19,_0x1399x20,_0xe9f2[62]);logger[_0xe9f2[36]](_0xe9f2[43],_0x1399x19,_0x1399x20,_0xe9f2[62],JSON[_0xe9f2[35]](_0x1399x21));_0x1399x1e[_0xe9f2[46]](204)[_0xe9f2[45]]()})}}}function handleEntityNotFound(_0x1399x1e,_0x1399x20,_0x1399x19){return function(_0x1399x21){if(!_0x1399x21){logger[_0xe9f2[30]](_0xe9f2[34],_0x1399x19,404,_0xe9f2[64]);_0x1399x1e[_0xe9f2[46]](404)[_0xe9f2[45]]();return null};return _0x1399x21}}function handleError(_0x1399x1e,_0x1399x20,_0x1399x19){_0x1399x20= _0x1399x20|| 500;return function(_0x1399x1d){logger[_0xe9f2[30]](_0xe9f2[34],_0x1399x19,_0x1399x20,JSON[_0xe9f2[35]](_0x1399x1d));delete _0x1399x1d[_0xe9f2[65]];_0x1399x1e[_0xe9f2[46]](_0x1399x20)[_0xe9f2[66]](_0x1399x1d)}}exports[_0xe9f2[67]]= function(_0x1399x1a,_0x1399x1e){var _0x1399x24={},_0x1399x30={};_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[74]](_[_0xe9f2[71]](db[_0xe9f2[70]][_0xe9f2[69]]),[_0xe9f2[72],_0xe9f2[73]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return db[_0xe9f2[70]][_0xe9f2[92]](_0x1399x24)[_0xe9f2[40]](respondWithFilteredResult(_0x1399x1e,_0x1399x24,_0xe9f2[67]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[67]))};exports[_0xe9f2[93]]= function(_0x1399x1a,_0x1399x1e){var _0x1399x24={raw:false,where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}},_0x1399x30={};_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[74]](_[_0xe9f2[71]](db[_0xe9f2[70]][_0xe9f2[69]]),[_0xe9f2[72],_0xe9f2[73]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return db[_0xe9f2[70]][_0xe9f2[96]](_0x1399x24)[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[93]))[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[93]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[93]))};exports[_0xe9f2[97]]= function(_0x1399x1a,_0x1399x1e){return db[_0xe9f2[70]][_0xe9f2[97]](_0x1399x1a[_0xe9f2[98]],{raw:false,individualHooks:true})[_0xe9f2[40]](respondWithResult(_0x1399x1e,201,_0xe9f2[97]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[97]))};exports[_0xe9f2[61]]= function(_0x1399x1a,_0x1399x1e){if(_0x1399x1a[_0xe9f2[98]][_0xe9f2[94]]){delete _0x1399x1a[_0xe9f2[98]][_0xe9f2[94]]};return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[61]))[_0xe9f2[40]](saveUpdates(_0x1399x1a[_0xe9f2[98]],null,_0xe9f2[61]))[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[61]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[61]))};exports[_0xe9f2[63]]= function(_0x1399x1a,_0x1399x1e){return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[63]))[_0xe9f2[40]](removeEntity(_0x1399x1e,null,_0xe9f2[63]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[63]))};exports[_0xe9f2[99]]= function(_0x1399x1a,_0x1399x1e){return db[_0xe9f2[70]][_0xe9f2[99]]()[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[99]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[99]))};exports[_0xe9f2[100]]= function(_0x1399x1a,_0x1399x1e){return db[_0xe9f2[70]][_0xe9f2[63]]({where:{id:_0x1399x1a[_0xe9f2[75]][_0xe9f2[101]]|| []},raw:false,individualHooks:true})[_0xe9f2[40]](respondWithResult(_0x1399x1e,204,_0xe9f2[100]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[100]))};exports[_0xe9f2[102]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[102]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){return _0x1399x21[_0xe9f2[102]](_0x1399x1a[_0xe9f2[98]][_0xe9f2[101]],_[_0xe9f2[103]](_0x1399x1a[_0xe9f2[98]],[_0xe9f2[101],_0xe9f2[94]])|| {})};return null})[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[102]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[102]))};var getLicense=function(_0x1399x1a){return  new BPromise(function(_0x1399x1b,_0x1399x1c){var _0x1399x35=0;_0x1399x1a[_0xe9f2[98]][_0xe9f2[104]]=== _0xe9f2[105]&& _0x1399x1b(_0xe9f2[106]);return db[_0xe9f2[70]][_0xe9f2[49]]({where:{$or:[{role:_0x1399x1a[_0xe9f2[98]][_0xe9f2[104]]=== _0xe9f2[107]?_0xe9f2[107]:[_0xe9f2[115],_0xe9f2[116]]}]}})[_0xe9f2[40]](function(_0x1399x25){_0x1399x35= _0x1399x25;return require(_0xe9f2[114])[_0xe9f2[113]]()})[_0xe9f2[40]](function(_0x1399x36){var _0x1399x37=_0x1399x1a[_0xe9f2[98]][_0xe9f2[104]]=== _0xe9f2[107]?_0xe9f2[108]:_0xe9f2[109];if(_0x1399x36[_0x1399x37]&& _0x1399x35>= _0x1399x36[_0x1399x37]){return _0x1399x1c({message:_0xe9f2[110]})};return _0x1399x1b(util[_0xe9f2[112]](_0xe9f2[111],_0x1399x37,_0x1399x35))})[_0xe9f2[31]](function(_0x1399x1d){return _0x1399x1c(_0x1399x1d)})})};exports[_0xe9f2[117]]= function(_0x1399x1a,_0x1399x1e){return getLicense(_0x1399x1a)[_0xe9f2[40]](function(_0x1399x39){return db[_0xe9f2[70]][_0xe9f2[124]](_0xe9f2[118])})[_0xe9f2[40]](function(_0x1399x38){_0x1399x1a[_0xe9f2[98]][_0xe9f2[118]]= _0x1399x1a[_0xe9f2[98]][_0xe9f2[118]]|| (_0x1399x38?_0x1399x38+ 1:1000);if(_0x1399x1a[_0xe9f2[98]][_0xe9f2[119]]){_0x1399x1a[_0xe9f2[98]][_0xe9f2[120]]= _0x1399x1a[_0xe9f2[98]][_0xe9f2[118]];_0x1399x1a[_0xe9f2[98]][_0xe9f2[121]]= {mailbox:_0x1399x1a[_0xe9f2[98]][_0xe9f2[118]],password:_0x1399x1a[_0xe9f2[98]][_0xe9f2[72]],fullname:_0x1399x1a[_0xe9f2[98]][_0xe9f2[122]],email:_0x1399x1a[_0xe9f2[98]][_0xe9f2[123]]}};return db[_0xe9f2[70]][_0xe9f2[117]](_0x1399x1a[_0xe9f2[98]],{include:[{model:db[_0xe9f2[121]],as:_0xe9f2[121]}]})})[_0xe9f2[40]](respondWithResult(_0x1399x1e,201,_0xe9f2[117]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[117]))};exports[_0xe9f2[125]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){if(_0x1399x1a[_0xe9f2[98]][_0xe9f2[94]]){delete _0x1399x1a[_0xe9f2[98]][_0xe9f2[94]]};return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){switch(_0x1399x1a[_0xe9f2[116]][_0xe9f2[104]]){case _0xe9f2[115]:;case _0xe9f2[116]:if(!_0x1399x1a[_0xe9f2[98]][_0xe9f2[126]]){throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[127])};return _0x1399x21;case _0xe9f2[105]:if(!_0x1399x1a[_0xe9f2[98]][_0xe9f2[129]]||  !_0x1399x1a[_0xe9f2[98]][_0xe9f2[126]]){throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[127])};if(!_0x1399x21[_0xe9f2[130]](_0x1399x1a[_0xe9f2[98]][_0xe9f2[129]])){_0x1399x1e[_0xe9f2[44]](403);return null}else {return _0x1399x21}}};return null})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[125]))[_0xe9f2[40]](saveUpdates({password:_0x1399x1a[_0xe9f2[98]][_0xe9f2[126]]},null,_0xe9f2[125]))[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[125]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[125]))};exports[_0xe9f2[131]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104],_0xe9f2[137]]})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[131]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3a= _0x1399x21;if(!utils[_0xe9f2[145]](_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]])){throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[146])};return _0x1399x21[_0xe9f2[147]+ _[_0xe9f2[149]](_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]][_0xe9f2[148]]())+ _0xe9f2[150]](_0x1399x1a[_0xe9f2[98]][_0xe9f2[101]],{penalty:_0x1399x1a[_0xe9f2[98]][_0xe9f2[138]]|| 0})}})[_0xe9f2[40]](function(){if(_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]]=== _0xe9f2[133]&& _0x1399x1a[_0xe9f2[98]][_0xe9f2[134]]){return db[_0xe9f2[144]][_0xe9f2[143]]({where:{id:_0x1399x1a[_0xe9f2[98]][_0xe9f2[101]]|| []},raw:true,attributes:[_0xe9f2[94],_0xe9f2[65]]})}})[_0xe9f2[40]](function(_0x1399x3b){var _0x1399x3c=[];if(_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]]=== _0xe9f2[133]&& _0x1399x1a[_0xe9f2[98]][_0xe9f2[134]]){for(var _0x1399x3d=0;_0x1399x3d< _0x1399x3b[_0xe9f2[80]];_0x1399x3d+= 1){_0x1399x3c[_0xe9f2[141]](db[_0xe9f2[140]][_0xe9f2[139]]({membername:_0x1399x3a[_0xe9f2[65]],UserId:_0x1399x3a[_0xe9f2[94]],queue_name:_0x1399x3b[_0x1399x3d][_0xe9f2[65]],VoiceQueueId:_0x1399x3b[_0x1399x3d][_0xe9f2[94]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),paused:_0x1399x3a[_0xe9f2[137]]|| false,penalty:_0x1399x1a[_0xe9f2[98]][_0xe9f2[138]]|| 0}))};return BPromise[_0xe9f2[142]](_0x1399x3c)};return _0x1399x3a})[_0xe9f2[40]](respondWithStatusCode(_0x1399x1e,null,_0xe9f2[131]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[131]))};exports[_0xe9f2[151]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104]]})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[151]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3a= _0x1399x21;if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]]||  !utils[_0xe9f2[145]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])){throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[146])};return _0x1399x21[_0xe9f2[152]+ _[_0xe9f2[149]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]][_0xe9f2[148]]())+ _0xe9f2[150]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[101]])}})[_0xe9f2[40]](function(_0x1399x3b){if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]]=== _0xe9f2[133]){return db[_0xe9f2[140]][_0xe9f2[63]]({where:{UserId:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]],VoiceQueueId:_0x1399x1a[_0xe9f2[75]][_0xe9f2[101]]},individualHooks:true})[_0xe9f2[40]](function(){return _0x1399x3a})};return _0x1399x3a})[_0xe9f2[40]](respondWithStatusCode(_0x1399x1e,null,_0xe9f2[151]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[151]))};exports[_0xe9f2[153]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){_0x1399x1a[_0xe9f2[98]][_0xe9f2[154]]= _0x1399x1a[_0xe9f2[156]][_0xe9f2[155]];return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[153]))[_0xe9f2[40]](saveUpdates(_0x1399x1a[_0xe9f2[98]],null,_0xe9f2[153]))[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[157]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[153]))};exports[_0xe9f2[158]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3e=path[_0xe9f2[161]](config[_0xe9f2[159]],_0xe9f2[160]);return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]},attributes:[_0xe9f2[94],_0xe9f2[154]],raw:true})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[158]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){logger[_0xe9f2[33]](_0xe9f2[29],_0xe9f2[158],_0xe9f2[47]);logger[_0xe9f2[36]](_0xe9f2[34],_0xe9f2[158],_0xe9f2[47],JSON[_0xe9f2[35]](_0x1399x21));if(!fs[_0xe9f2[163]](path[_0xe9f2[161]](config[_0xe9f2[159]],_0xe9f2[162],_0x1399x21[_0xe9f2[154]]))){return _0x1399x1e[_0xe9f2[164]](_0x1399x3e)};return _0x1399x1e[_0xe9f2[164]](path[_0xe9f2[161]](config[_0xe9f2[159]],_0xe9f2[162],_0x1399x21[_0xe9f2[154]]))}})[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[93]))};exports[_0xe9f2[165]]= function(_0x1399x1a,_0x1399x21,_0x1399x33){var _0x1399x24={};var _0x1399x30={};var _0x1399x3f;var _0x1399x25;return db[_0xe9f2[70]][_0xe9f2[167]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x21,null,_0xe9f2[165]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3f= _0x1399x21;_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[71]](db[_0xe9f2[166]][_0xe9f2[69]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return _0x1399x3f[_0xe9f2[165]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x41){if(_0x1399x41){_0x1399x25= _0x1399x41[_0xe9f2[80]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};return _0x1399x3f[_0xe9f2[165]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x40){return _0x1399x40?{count:_0x1399x25,rows:_0x1399x40}:null})[_0xe9f2[40]](respondWithResult(_0x1399x21,null,_0xe9f2[165]))[_0xe9f2[31]](handleError(_0x1399x21,null,_0xe9f2[165]))};exports[_0xe9f2[168]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;var _0x1399x3b;var _0x1399x24={};var _0x1399x25;return db[_0xe9f2[70]][_0xe9f2[167]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104]]})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[168]))[_0xe9f2[40]](function(_0x1399x42){if(!utils[_0xe9f2[145]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])){throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[146])};_0x1399x3a= _0x1399x42;var _0x1399x30={};_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[71]](db[_[_0xe9f2[149]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])+ _0xe9f2[169]][_0xe9f2[69]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);switch(_0x1399x3a[_0xe9f2[104]]){case _0xe9f2[115]:return db[_[_0xe9f2[149]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])+ _0xe9f2[169]][_0xe9f2[143]](_0x1399x24);case _0xe9f2[116]:;case _0xe9f2[105]:return _0x1399x3a[_0xe9f2[170]+ _[_0xe9f2[149]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])+ _0xe9f2[150]](_0x1399x24);default:throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[171])}})[_0xe9f2[40]](function(_0x1399x41){_0x1399x25= _0x1399x41[_0xe9f2[80]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};switch(_0x1399x3a[_0xe9f2[104]]){case _0xe9f2[115]:return db[_[_0xe9f2[149]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])+ _0xe9f2[169]][_0xe9f2[143]](_0x1399x24);case _0xe9f2[116]:;case _0xe9f2[105]:return _0x1399x3a[_0xe9f2[170]+ _[_0xe9f2[149]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[132]])+ _0xe9f2[150]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x40){return {count:_0x1399x25,rows:_0x1399x40}})[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[168]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[168]))};exports[_0xe9f2[172]]= function(_0x1399x1a,_0x1399x21,_0x1399x33){var _0x1399x24={};var _0x1399x30={};var _0x1399x3f;var _0x1399x25;return db[_0xe9f2[70]][_0xe9f2[167]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x21,null,_0xe9f2[172]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3f= _0x1399x21;_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[71]](db[_0xe9f2[140]][_0xe9f2[69]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return _0x1399x3f[_0xe9f2[172]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x41){if(_0x1399x41){_0x1399x25= _0x1399x41[_0xe9f2[80]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};return _0x1399x3f[_0xe9f2[172]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x40){return _0x1399x40?{count:_0x1399x25,rows:_0x1399x40}:null})[_0xe9f2[40]](respondWithResult(_0x1399x21,null,_0xe9f2[172]))[_0xe9f2[31]](handleError(_0x1399x21,null,_0xe9f2[172]))};exports[_0xe9f2[173]]= function(_0x1399x1a,_0x1399x21,_0x1399x33){var _0x1399x24={};var _0x1399x30={};var _0x1399x3f;var _0x1399x25;return db[_0xe9f2[70]][_0xe9f2[167]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x21,null,_0xe9f2[173]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3f= _0x1399x21;_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[71]](db[_0xe9f2[174]][_0xe9f2[69]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return _0x1399x3f[_0xe9f2[173]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x41){if(_0x1399x41){_0x1399x25= _0x1399x41[_0xe9f2[80]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};return _0x1399x3f[_0xe9f2[173]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x40){return _0x1399x40?{count:_0x1399x25,rows:_0x1399x40}:null})[_0xe9f2[40]](respondWithResult(_0x1399x21,null,_0xe9f2[173]))[_0xe9f2[31]](handleError(_0x1399x21,null,_0xe9f2[173]))};exports[_0xe9f2[175]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;var _0x1399x3b;return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]],role:_0xe9f2[105]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104],_0xe9f2[118],_0xe9f2[137]]})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[175]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3a= _0x1399x21;return _0x1399x3a[_0xe9f2[185]]({raw:true})}})[_0xe9f2[40]](function(_0x1399x41){var _0x1399x3c=[];if(_0x1399x41){_0x1399x3b= _0x1399x41;if(_0x1399x3b[_0xe9f2[80]]){for(var _0x1399x3d=0;_0x1399x3d< _0x1399x3b[_0xe9f2[80]];_0x1399x3d++){_0x1399x3c[_0xe9f2[141]](db[_0xe9f2[140]][_0xe9f2[139]]({membername:_0x1399x3a[_0xe9f2[65]],UserId:_0x1399x3a[_0xe9f2[94]],queue_name:_0x1399x3b[_0x1399x3d][_0xe9f2[65]],VoiceQueueId:_0x1399x3b[_0x1399x3d][_0xe9f2[94]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),paused:_0x1399x3a[_0xe9f2[137]]|| false,penalty:_0x1399x3b[_0x1399x3d][_0xe9f2[184]]|| 0}))};return BPromise[_0xe9f2[142]](_0x1399x3c)}}})[_0xe9f2[40]](function(){return db[_0xe9f2[183]][_0xe9f2[143]]({where:{membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),exitAt:null}})})[_0xe9f2[40]](function(){var _0x1399x43=[];var _0x1399x44=[];var _0x1399x45=utils[_0xe9f2[178]]();var _0x1399x46={membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),enterAt:moment()[_0xe9f2[112]](_0xe9f2[176]),role:_0x1399x3a[_0xe9f2[104]],internal:_0x1399x3a[_0xe9f2[118]]};_0x1399x45[_0xe9f2[181]](function(_0x1399x47){_0x1399x43[_0xe9f2[141]](_[_0xe9f2[90]]({channel:_0x1399x47,type:_0xe9f2[179]},_0x1399x46));if(_0x1399x3a[_0xe9f2[137]]){_0x1399x44[_0xe9f2[141]](_[_0xe9f2[90]]({channel:_0x1399x47,type:_0xe9f2[180],data1:_0xe9f2[177]},_0x1399x46))}});return db[_0xe9f2[183]][_0xe9f2[97]](_0x1399x43[_0xe9f2[182]](_0x1399x44),{individualHooks:true})})[_0xe9f2[40]](function(){return _0x1399x3a[_0xe9f2[61]]({online:true,lastLoginAt:moment()[_0xe9f2[112]](_0xe9f2[176]),voicePause:_0x1399x3a[_0xe9f2[137]]|| false,mailPause:_0x1399x3a[_0xe9f2[137]]|| false,chatPause:_0x1399x3a[_0xe9f2[137]]|| false,faxPause:_0x1399x3a[_0xe9f2[137]]|| false,smsPause:_0x1399x3a[_0xe9f2[137]]|| false,openchannelPause:_0x1399x3a[_0xe9f2[137]]|| false,pauseType:_0x1399x3a[_0xe9f2[137]]?_0xe9f2[177]:null})})[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[175]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[175]))};exports[_0xe9f2[186]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]],role:_0xe9f2[105]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104]]})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[186]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3a= _0x1399x21;return db[_0xe9f2[140]][_0xe9f2[63]]({where:{membername:_0x1399x3a[_0xe9f2[65]]},individualHooks:true})}})[_0xe9f2[40]](function(){return db[_0xe9f2[183]][_0xe9f2[143]]({where:{membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),exitAt:null}})})[_0xe9f2[40]](function(_0x1399x3c){var _0x1399x48=[];_0x1399x3c[_0xe9f2[181]](function(_0x1399x49){_0x1399x48[_0xe9f2[141]](_0x1399x49[_0xe9f2[61]]({exitAt:moment()[_0xe9f2[112]](_0xe9f2[176])}))});return BPromise[_0xe9f2[142]](_0x1399x48)})[_0xe9f2[40]](function(){return _0x1399x3a[_0xe9f2[61]]({online:false,lastLoginAt:null,voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[186]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[186]))};exports[_0xe9f2[187]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;return db[_0xe9f2[140]][_0xe9f2[61]]({paused:1},{where:{UserId:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]},individualHooks:true})[_0xe9f2[40]](function(){return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]],role:_0xe9f2[105]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104],_0xe9f2[118]]})})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[187]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3a= _0x1399x21;return respondWithRpcPromise(_0xe9f2[190],_0xe9f2[187],{id:_0x1399x3a[_0xe9f2[94]],name:_0x1399x3a[_0xe9f2[65]]})}})[_0xe9f2[40]](function(){if(_0x1399x3a){return db[_0xe9f2[183]][_0xe9f2[143]]({where:{membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),type:_0xe9f2[180],exitAt:null}})}})[_0xe9f2[40]](function(_0x1399x3c){if(_0x1399x3c[_0xe9f2[80]]){return db[_0xe9f2[183]][_0xe9f2[61]]({exitAt:moment()[_0xe9f2[112]](_0xe9f2[176])},{where:{id:{$in:_[_0xe9f2[89]](_0x1399x3c,_0xe9f2[94])}},individualHooks:true})}})[_0xe9f2[40]](function(){var _0x1399x3c=[];var _0x1399x45=utils[_0xe9f2[178]]();_0x1399x45[_0xe9f2[181]](function(_0x1399x47){_0x1399x3c[_0xe9f2[141]]({channel:_0x1399x47,membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),type:_0xe9f2[180],enterAt:moment()[_0xe9f2[112]](_0xe9f2[176]),data1:_0x1399x1a[_0xe9f2[98]][_0xe9f2[188]]|| _0xe9f2[189],role:_0x1399x3a[_0xe9f2[104]],internal:_0x1399x3a[_0xe9f2[118]]})});return db[_0xe9f2[183]][_0xe9f2[97]](_0x1399x3c,{individualHooks:true})})[_0xe9f2[40]](function(){return _0x1399x3a[_0xe9f2[61]]({voicePause:true,mailPause:true,chatPause:true,faxPause:true,smsPause:true,openchannelPause:true,pauseType:_0x1399x1a[_0xe9f2[98]][_0xe9f2[188]]|| _0xe9f2[189],lastPauseAt:moment()[_0xe9f2[112]](_0xe9f2[176])})})[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[187]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[187]))};exports[_0xe9f2[191]]= function(_0x1399x1a,_0x1399x1e,_0x1399x33){var _0x1399x3a;return db[_0xe9f2[70]][_0xe9f2[96]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]},attributes:[_0xe9f2[94],_0xe9f2[65],_0xe9f2[104]]})[_0xe9f2[40]](handleEntityNotFound(_0x1399x1e,null,_0xe9f2[191]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3a= _0x1399x21;if(_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]]&&  !utils[_0xe9f2[145]](_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]])){throw  new db[_0xe9f2[128]].ValidationError(_0xe9f2[146])};switch(_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]]){case _0xe9f2[133]:return respondWithRpcPromise(_0xe9f2[190],_0xe9f2[191],{id:_0x1399x3a[_0xe9f2[94]],name:_0x1399x3a[_0xe9f2[65]]})[_0xe9f2[40]](function(){return db[_0xe9f2[140]][_0xe9f2[61]]({paused:0},{where:{UserId:_0x1399x3a[_0xe9f2[94]]},individualHooks:true})})[_0xe9f2[40]](function(){return db[_0xe9f2[183]][_0xe9f2[96]]({where:{channel:_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]],membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),type:_0xe9f2[180],exitAt:null}})})[_0xe9f2[40]](function(_0x1399x49){if(_0x1399x49){return _0x1399x49[_0xe9f2[61]]({exitAt:moment()[_0xe9f2[112]](_0xe9f2[176]),data2:_0xe9f2[192]},{individualHooks:true})};return null})[_0xe9f2[40]](function(){return _0x1399x3a[_0xe9f2[61]]({voicePause:false})});case _0xe9f2[193]:;case _0xe9f2[194]:;case _0xe9f2[195]:;case _0xe9f2[196]:;case _0xe9f2[199]:return db[_0xe9f2[183]][_0xe9f2[96]]({where:{channel:_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]],membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),type:_0xe9f2[180],exitAt:null}})[_0xe9f2[40]](function(_0x1399x49){return _0x1399x49[_0xe9f2[61]]({exitAt:moment()[_0xe9f2[112]](_0xe9f2[176]),data2:_0xe9f2[192]},{individualHooks:true})})[_0xe9f2[40]](function(){var _0x1399x4a={};_[_0xe9f2[56]](_0x1399x4a,util[_0xe9f2[112]](_0xe9f2[197],_0x1399x1a[_0xe9f2[98]][_0xe9f2[132]],_0xe9f2[198]),false);return _0x1399x3a[_0xe9f2[61]](_0x1399x4a)});default:return respondWithRpcPromise(_0xe9f2[190],_0xe9f2[191],{id:_0x1399x3a[_0xe9f2[94]],name:_0x1399x3a[_0xe9f2[65]]})[_0xe9f2[40]](function(){return db[_0xe9f2[140]][_0xe9f2[61]]({paused:0},{where:{UserId:_0x1399x3a[_0xe9f2[94]]}})})[_0xe9f2[40]](function(){return db[_0xe9f2[183]][_0xe9f2[143]]({where:{membername:_0x1399x3a[_0xe9f2[65]],interface:util[_0xe9f2[112]](_0xe9f2[135],_0xe9f2[136],_0x1399x3a[_0xe9f2[65]]),type:_0xe9f2[180],exitAt:null}})})[_0xe9f2[40]](function(_0x1399x3c){var _0x1399x48=[];_0x1399x3c[_0xe9f2[181]](function(_0x1399x49){_0x1399x48[_0xe9f2[141]](_0x1399x49[_0xe9f2[61]]({exitAt:moment()[_0xe9f2[112]](_0xe9f2[176]),data2:_0xe9f2[192]}))});return BPromise[_0xe9f2[142]](_0x1399x48)})[_0xe9f2[40]](function(){return _0x1399x3a[_0xe9f2[61]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})}}})[_0xe9f2[40]](respondWithResult(_0x1399x1e,null,_0xe9f2[191]))[_0xe9f2[31]](handleError(_0x1399x1e,null,_0xe9f2[191]))};exports[_0xe9f2[200]]= function(_0x1399x1a,_0x1399x21,_0x1399x33){var _0x1399x24={};var _0x1399x30={};var _0x1399x3f;var _0x1399x25;return db[_0xe9f2[70]][_0xe9f2[167]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x21,null,_0xe9f2[200]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3f= _0x1399x21;_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[71]](db[_0xe9f2[201]][_0xe9f2[69]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return _0x1399x3f[_0xe9f2[200]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x41){if(_0x1399x41){_0x1399x25= _0x1399x41[_0xe9f2[80]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};return _0x1399x3f[_0xe9f2[200]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x40){return _0x1399x40?{count:_0x1399x25,rows:_0x1399x40}:null})[_0xe9f2[40]](respondWithResult(_0x1399x21,null,_0xe9f2[200]))[_0xe9f2[31]](handleError(_0x1399x21,null,_0xe9f2[200]))};exports[_0xe9f2[202]]= function(_0x1399x1a,_0x1399x21,_0x1399x33){var _0x1399x24={};var _0x1399x30={};var _0x1399x3f;var _0x1399x25;return db[_0xe9f2[70]][_0xe9f2[167]]({where:{id:_0x1399x1a[_0xe9f2[95]][_0xe9f2[94]]}})[_0xe9f2[40]](handleEntityNotFound(_0x1399x21,null,_0xe9f2[202]))[_0xe9f2[40]](function(_0x1399x21){if(_0x1399x21){_0x1399x3f= _0x1399x21;_0x1399x30[_0xe9f2[68]]= _[_0xe9f2[71]](db[_0xe9f2[203]][_0xe9f2[69]]);_0x1399x30[_0xe9f2[75]]= _[_0xe9f2[71]](_0x1399x1a[_0xe9f2[75]]);_0x1399x30[_0xe9f2[76]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],_0x1399x30[_0xe9f2[75]]);_0x1399x24[_0xe9f2[78]]= _[_0xe9f2[77]](_0x1399x30[_0xe9f2[68]],qs[_0xe9f2[79]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[79]]));_0x1399x24[_0xe9f2[78]]= (_0x1399x24[_0xe9f2[78]][_0xe9f2[80]])?_0x1399x24[_0xe9f2[78]]:_0x1399x30[_0xe9f2[68]];_0x1399x24[_0xe9f2[83]]= qs[_0xe9f2[84]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[84]]);_0x1399x24[_0xe9f2[85]]= qs[_0xe9f2[76]](_[_0xe9f2[86]](_0x1399x1a[_0xe9f2[75]],_0x1399x30[_0xe9f2[76]]));if(_0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]){_0x1399x24[_0xe9f2[85]]= _[_0xe9f2[90]](_0x1399x24[_0xe9f2[85]],{$or:_[_0xe9f2[89]](_0x1399x24[_0xe9f2[78]],function(_0x1399x31){var _0x1399x32={};_0x1399x32[_0x1399x31]= {$like:_0xe9f2[88]+ _0x1399x1a[_0xe9f2[75]][_0xe9f2[87]]+ _0xe9f2[88]};return _0x1399x32})})};_0x1399x24= _[_0xe9f2[90]]({},_0x1399x24,_0x1399x1a[_0xe9f2[91]]);return _0x1399x3f[_0xe9f2[202]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x41){if(_0x1399x41){_0x1399x25= _0x1399x41[_0xe9f2[80]];if(!_0x1399x1a[_0xe9f2[75]][_0xe9f2[82]](_0xe9f2[81])){_0x1399x24[_0xe9f2[51]]= qs[_0xe9f2[51]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[51]]);_0x1399x24[_0xe9f2[50]]= qs[_0xe9f2[50]](_0x1399x1a[_0xe9f2[75]][_0xe9f2[50]])};return _0x1399x3f[_0xe9f2[202]](_0x1399x24)}})[_0xe9f2[40]](function(_0x1399x40){return _0x1399x40?{count:_0x1399x25,rows:_0x1399x40}:null})[_0xe9f2[40]](respondWithResult(_0x1399x21,null,_0xe9f2[202]))[_0xe9f2[31]](handleError(_0x1399x21,null,_0xe9f2[202]))}
\ No newline at end of file
index 83184c4..631ca93 100644 (file)
@@ -1 +1 @@
-var _0x2444=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x76\x65\x6E\x74\x73","\x55\x73\x65\x72","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x3A","\x69\x64","\x65\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x68\x6F\x6F\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0x2444[0];var EventEmitter=require(_0x2444[1]);var User=require(_0x2444[4])[_0x2444[3]][_0x2444[2]];var UserEvents= new EventEmitter();UserEvents[_0x2444[5]](0);var events={afterCreate:_0x2444[6],afterUpdate:_0x2444[7],afterDestroy:_0x2444[8]};function emitEvent(event){return function(_0xf224x7,_0xf224x8,_0xf224x9){UserEvents[_0x2444[11]](event+ _0x2444[9]+ _0xf224x7[_0x2444[10]],_0xf224x7);UserEvents[_0x2444[11]](event,_0xf224x7);_0xf224x9(null)}}for(var e in events){if(events[_0x2444[12]](e)){var event=events[e];User[_0x2444[13]](e,emitEvent(event))}};module[_0x2444[14]]= UserEvents
\ No newline at end of file
+var _0x5891=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x76\x65\x6E\x74\x73","\x55\x73\x65\x72","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x3A","\x69\x64","\x65\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x68\x6F\x6F\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0x5891[0];var EventEmitter=require(_0x5891[1]);var User=require(_0x5891[4])[_0x5891[3]][_0x5891[2]];var UserEvents= new EventEmitter();UserEvents[_0x5891[5]](0);var events={afterCreate:_0x5891[6],afterUpdate:_0x5891[7],afterDestroy:_0x5891[8]};function emitEvent(event){return function(_0xd738x7,_0xd738x8,_0xd738x9){UserEvents[_0x5891[11]](event+ _0x5891[9]+ _0xd738x7[_0x5891[10]],_0xd738x7);UserEvents[_0x5891[11]](event,_0xd738x7);_0xd738x9(null)}}for(var e in events){if(events[_0x5891[12]](e)){var event=events[e];User[_0x5891[13]](e,emitEvent(event))}};module[_0x5891[14]]= UserEvents
\ No newline at end of file
index 977292f..e3d3fab 100644 (file)
@@ -1 +1 @@
-var _0x1ddb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x75\x73\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x67\x6F\x6F\x67\x6C\x65","\x6C\x65\x6E\x67\x74\x68","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x73\x79\x73\x74\x65\x6D","\x69\x64","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x61\x75\x74\x68","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x43\x68\x61\x6E\x53\x70\x79","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6E\x61\x6D\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x44\x69\x61\x6C","\x53\x49\x50\x2F\x25\x73\x2C\x2C\x74\x54\x78\x58","\x48\x61\x6E\x67\x75\x70","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x65\x66\x61\x75\x6C\x74\x73","\x63\x61\x74\x63\x68","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x63\x6F\x6E\x63\x61\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x75\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x4D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x70\x64\x61\x74\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x68\x61\x6E\x73\x70\x79","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","\x73\x61\x6C\x74","\x73\x68\x61\x31","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x70\x62\x6B\x64\x66\x32","\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x64\x65\x78\x4F\x66","\x49\x6E\x76\x61\x6C\x69\x64\x20\x70\x61\x73\x73\x77\x6F\x72\x64","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x64\x65\x66\x69\x6E\x65"];_0x1ddb[0];var BPromise=require(_0x1ddb[1]);var crypto=require(_0x1ddb[2]);var util=require(_0x1ddb[3]);var md5=require(_0x1ddb[4]);var _=require(_0x1ddb[5]);var attributes=require(_0x1ddb[6]);var authTypes=[_0x1ddb[7]];var validatePresenceOf=function(_0xaa43x9){return _0xaa43x9&& _0xaa43x9[_0x1ddb[8]]};var getChanSpyApplications=function(_0xaa43xb,_0xaa43xc,_0xaa43xd){var _0xaa43xe={context:_0x1ddb[9],type:_0x1ddb[10],isApp:false,UserId:_0xaa43xb[_0x1ddb[11]]};var _0xaa43xf=[];for(var _0xaa43x10=0,_0xaa43x11=1;_0xaa43x10< _0xaa43xd[_0x1ddb[8]];_0xaa43x10++,_0xaa43x11= 1){var _0xaa43x12={exten:util[_0x1ddb[14]](_0x1ddb[12],_0xaa43xd[_0xaa43x10][_0x1ddb[13]],_0xaa43xc),ChanSpyId:_0xaa43xd[_0xaa43x10][_0x1ddb[11]]};if(_0xaa43xd[_0xaa43x10][_0x1ddb[15]]){_0xaa43xf[_0x1ddb[20]](_[_0x1ddb[19]]({app:_0x1ddb[16],appdata:util[_0x1ddb[14]](_0x1ddb[17],_0xaa43xd[_0xaa43x10][_0x1ddb[18]]),priority:_0xaa43x11++},_0xaa43xe,_0xaa43x12))};if(_0xaa43xd[_0xaa43x10][_0x1ddb[21]]){_0xaa43xf[_0x1ddb[20]](_[_0x1ddb[19]]({app:_0x1ddb[22],appdata:_0xaa43xd[_0xaa43x10][_0x1ddb[23]],priority:_0xaa43x11++},_0xaa43xe,_0xaa43x12))};_0xaa43xf[_0x1ddb[20]](_[_0x1ddb[19]]({app:_0x1ddb[24],appdata:util[_0x1ddb[14]](_0x1ddb[25],_0xaa43xb[_0x1ddb[26]],_0xaa43xd[_0xaa43x10][_0x1ddb[27]]),priority:_0xaa43x11++},_0xaa43xe,_0xaa43x12));if(_0xaa43xd[_0xaa43x10][_0x1ddb[15]]){_0xaa43xf[_0x1ddb[20]](_[_0x1ddb[19]]({app:_0x1ddb[28],priority:_0xaa43x11++},_0xaa43xe,_0xaa43x12))}};return _0xaa43xf};var getUserApplications=function(_0xaa43xb,_0xaa43xc){var _0xaa43xe={context:_0x1ddb[9],exten:_0xaa43xc,type:_0x1ddb[10],isApp:false,UserId:_0xaa43xb[_0x1ddb[11]]};var _0xaa43xf=[{app:_0x1ddb[29],appdata:_0x1ddb[30]},{app:_0x1ddb[31],appdata:util[_0x1ddb[14]](_0x1ddb[32],_0xaa43xb[_0x1ddb[26]])},{app:_0x1ddb[33]}];for(var _0xaa43x10=0;_0xaa43x10< _0xaa43xf[_0x1ddb[8]];_0xaa43x10++){_0xaa43xf[_0xaa43x10][_0x1ddb[34]]= _0xaa43x10+ 1;_0xaa43xf[_0xaa43x10]= _[_0x1ddb[35]](_0xaa43xf[_0xaa43x10],_0xaa43xe)};return _0xaa43xf};var getChanSpyPromise=function(_0xaa43x15,_0xaa43xb){return  new BPromise(function(_0xaa43x16,_0xaa43x17){return _0xaa43x15[_0x1ddb[41]][_0x1ddb[40]]()[_0x1ddb[39]](function(_0xaa43x19){if(_0xaa43x19){var _0xaa43x1a=getChanSpyApplications(_0xaa43xb,_0xaa43xb[_0x1ddb[37]],_0xaa43x19);var _0xaa43x1b=getChanSpyApplications(_0xaa43xb,_0xaa43xb[_0x1ddb[26]],_0xaa43x19);return _0xaa43x16(_0xaa43x1a[_0x1ddb[38]](_0xaa43x1b))};return _0xaa43x16([])})[_0x1ddb[36]](function(_0xaa43x18){_0xaa43x17(_0xaa43x18)})})};module[_0x1ddb[42]]= function(_0xaa43x1c,_0xaa43x1d){var _0xaa43x15=_0xaa43x1c[_0x1ddb[43]];return _0xaa43x1c[_0x1ddb[68]](_0x1ddb[44],attributes,{tableName:_0x1ddb[45],hooks:{beforeCreate:function(_0xaa43xb,_0xaa43x1e,_0xaa43x1f){_0xaa43xb[_0x1ddb[46]]();_0xaa43xb[_0x1ddb[47]](_0xaa43x1f)},beforeUpdate:function(_0xaa43xb,_0xaa43x1e,_0xaa43x1f){if(_0xaa43xb[_0x1ddb[48]](_0x1ddb[23])){_0xaa43xb[_0x1ddb[46]]();return _0xaa43xb[_0x1ddb[47]](_0xaa43x1f)};_0xaa43x1f()},afterCreate:function(_0xaa43xb,_0xaa43x1e,_0xaa43x1f){var _0xaa43x20=getUserApplications(_0xaa43xb,_0xaa43xb[_0x1ddb[37]]);var _0xaa43x21=getUserApplications(_0xaa43xb,_0xaa43xb[_0x1ddb[26]]);return _0xaa43x15[_0x1ddb[50]][_0x1ddb[49]](_0xaa43x20[_0x1ddb[38]](_0xaa43x21))[_0x1ddb[39]](function(){if(_0xaa43xb[_0x1ddb[51]]){return getChanSpyPromise(_0xaa43x15,_0xaa43xb)}})[_0x1ddb[39]](function(_0xaa43xf){if(_0xaa43xf&& _0xaa43xf[_0x1ddb[8]]){return _0xaa43x15[_0x1ddb[50]][_0x1ddb[49]](_0xaa43xf)}})[_0x1ddb[39]](function(){_0xaa43x1f()})[_0x1ddb[36]](function(_0xaa43x18){_0xaa43x1f(_0xaa43x18)})},afterUpdate:function(_0xaa43xb,_0xaa43x1e,_0xaa43x1f){if(_0xaa43xb[_0x1ddb[48]](_0x1ddb[51])){return _0xaa43x15[_0x1ddb[50]][_0x1ddb[52]]({where:{UserId:_0xaa43xb[_0x1ddb[11]],type:_0x1ddb[10]}})[_0x1ddb[39]](function(){if(_0xaa43xb[_0x1ddb[51]]){return getChanSpyPromise(_0xaa43x15,_0xaa43xb)[_0x1ddb[39]](function(_0xaa43xf){if(_0xaa43xf&& _0xaa43xf[_0x1ddb[8]]){return _0xaa43x15[_0x1ddb[50]][_0x1ddb[49]](_0xaa43xf)}})}else {return _0xaa43x15[_0x1ddb[50]][_0x1ddb[52]]({where:{UserId:_0xaa43xb[_0x1ddb[11]],type:_0x1ddb[10],ChanSpyId:{$ne:null}}})}})[_0x1ddb[39]](function(){_0xaa43x1f()})[_0x1ddb[36]](function(_0xaa43x18){_0xaa43x1f(_0xaa43x18)})}else {_0xaa43x1f()}},afterDestroy:function(_0xaa43xb,_0xaa43x1e){return _0xaa43x15[_0x1ddb[50]][_0x1ddb[52]]({where:{UserId:_0xaa43xb[_0x1ddb[11]],type:_0x1ddb[10]}})}},instanceMethods:{authenticate:function(_0xaa43x22,_0xaa43x23){if(!_0xaa43x23){return this[_0x1ddb[23]]=== this[_0x1ddb[53]](_0xaa43x22)};var _0xaa43x24=this;this[_0x1ddb[53]](_0xaa43x22,function(_0xaa43x18,_0xaa43x25){if(_0xaa43x18){_0xaa43x23(_0xaa43x18)};if(_0xaa43x24[_0x1ddb[23]]=== _0xaa43x25){_0xaa43x23(null,true)}else {_0xaa43x23(null,false)}})},makeSalt:function(_0xaa43x26,_0xaa43x23){var _0xaa43x27=16;if( typeof arguments[0]=== _0x1ddb[54]){_0xaa43x23= arguments[0];_0xaa43x26= _0xaa43x27}else {if( typeof arguments[1]=== _0x1ddb[54]){_0xaa43x23= arguments[1]}else {throw  new Error(_0x1ddb[55])}};if(!_0xaa43x26){_0xaa43x26= _0xaa43x27};return crypto[_0x1ddb[57]](_0xaa43x26,function(_0xaa43x18,_0xaa43x28){if(_0xaa43x18){_0xaa43x23(_0xaa43x18)};return _0xaa43x23(null,_0xaa43x28.toString(_0x1ddb[56]))})},encryptPassword:function(_0xaa43x22,_0xaa43x23){if(!_0xaa43x22||  !this[_0x1ddb[58]]){return _0xaa43x23?_0xaa43x23(null):null};var _0xaa43x29=10000;var _0xaa43x2a=64;var _0xaa43x28= new Buffer(this[_0x1ddb[58]],_0x1ddb[56]);if(!_0xaa43x23){return crypto[_0x1ddb[60]](_0xaa43x22,_0xaa43x28,_0xaa43x29,_0xaa43x2a,_0x1ddb[59]).toString(_0x1ddb[56])};return crypto[_0x1ddb[61]](_0xaa43x22,_0xaa43x28,_0xaa43x29,_0xaa43x2a,_0x1ddb[59],function(_0xaa43x18,_0xaa43x2b){if(_0xaa43x18){_0xaa43x23(_0xaa43x18)};return _0xaa43x23(null,_0xaa43x2b.toString(_0x1ddb[56]))})},updatePassword:function(_0xaa43x1f){if(!this[_0x1ddb[23]]){return _0xaa43x1f(null)};if(!validatePresenceOf(this[_0x1ddb[23]])&& authTypes[_0x1ddb[63]](this[_0x1ddb[62]])===  -1){_0xaa43x1f( new Error(_0x1ddb[64]))};var _0xaa43x24=this;this[_0x1ddb[65]](function(_0xaa43x2c,_0xaa43x28){if(_0xaa43x2c){return _0xaa43x1f(_0xaa43x2c)};_0xaa43x24[_0x1ddb[58]]= _0xaa43x28;_0xaa43x24[_0x1ddb[53]](_0xaa43x24[_0x1ddb[23]],function(_0xaa43x2d,_0xaa43x2e){if(_0xaa43x2d){_0xaa43x1f(_0xaa43x2d)};_0xaa43x24[_0x1ddb[23]]= _0xaa43x2e;_0xaa43x1f(null)})})},updateMd5Password:function(){this[_0x1ddb[66]]= md5(this[_0x1ddb[26]]+ _0x1ddb[67]+ this[_0x1ddb[23]]);return this[_0x1ddb[66]]}}})}
\ No newline at end of file
+var _0x710c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x75\x73\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x67\x6F\x6F\x67\x6C\x65","\x6C\x65\x6E\x67\x74\x68","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x73\x79\x73\x74\x65\x6D","\x69\x64","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x61\x75\x74\x68","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x43\x68\x61\x6E\x53\x70\x79","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6E\x61\x6D\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x44\x69\x61\x6C","\x53\x49\x50\x2F\x25\x73\x2C\x2C\x74\x54\x78\x58","\x48\x61\x6E\x67\x75\x70","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x65\x66\x61\x75\x6C\x74\x73","\x63\x61\x74\x63\x68","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x63\x6F\x6E\x63\x61\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x75\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x4D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x70\x64\x61\x74\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x68\x61\x6E\x73\x70\x79","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","\x73\x61\x6C\x74","\x73\x68\x61\x31","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x70\x62\x6B\x64\x66\x32","\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x64\x65\x78\x4F\x66","\x49\x6E\x76\x61\x6C\x69\x64\x20\x70\x61\x73\x73\x77\x6F\x72\x64","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x64\x65\x66\x69\x6E\x65"];_0x710c[0];var BPromise=require(_0x710c[1]);var crypto=require(_0x710c[2]);var util=require(_0x710c[3]);var md5=require(_0x710c[4]);var _=require(_0x710c[5]);var attributes=require(_0x710c[6]);var authTypes=[_0x710c[7]];var validatePresenceOf=function(_0x32bax9){return _0x32bax9&& _0x32bax9[_0x710c[8]]};var getChanSpyApplications=function(_0x32baxb,_0x32baxc,_0x32baxd){var _0x32baxe={context:_0x710c[9],type:_0x710c[10],isApp:false,UserId:_0x32baxb[_0x710c[11]]};var _0x32baxf=[];for(var _0x32bax10=0,_0x32bax11=1;_0x32bax10< _0x32baxd[_0x710c[8]];_0x32bax10++,_0x32bax11= 1){var _0x32bax12={exten:util[_0x710c[14]](_0x710c[12],_0x32baxd[_0x32bax10][_0x710c[13]],_0x32baxc),ChanSpyId:_0x32baxd[_0x32bax10][_0x710c[11]]};if(_0x32baxd[_0x32bax10][_0x710c[15]]){_0x32baxf[_0x710c[20]](_[_0x710c[19]]({app:_0x710c[16],appdata:util[_0x710c[14]](_0x710c[17],_0x32baxd[_0x32bax10][_0x710c[18]]),priority:_0x32bax11++},_0x32baxe,_0x32bax12))};if(_0x32baxd[_0x32bax10][_0x710c[21]]){_0x32baxf[_0x710c[20]](_[_0x710c[19]]({app:_0x710c[22],appdata:_0x32baxd[_0x32bax10][_0x710c[23]],priority:_0x32bax11++},_0x32baxe,_0x32bax12))};_0x32baxf[_0x710c[20]](_[_0x710c[19]]({app:_0x710c[24],appdata:util[_0x710c[14]](_0x710c[25],_0x32baxb[_0x710c[26]],_0x32baxd[_0x32bax10][_0x710c[27]]),priority:_0x32bax11++},_0x32baxe,_0x32bax12));if(_0x32baxd[_0x32bax10][_0x710c[15]]){_0x32baxf[_0x710c[20]](_[_0x710c[19]]({app:_0x710c[28],priority:_0x32bax11++},_0x32baxe,_0x32bax12))}};return _0x32baxf};var getUserApplications=function(_0x32baxb,_0x32baxc){var _0x32baxe={context:_0x710c[9],exten:_0x32baxc,type:_0x710c[10],isApp:false,UserId:_0x32baxb[_0x710c[11]]};var _0x32baxf=[{app:_0x710c[29],appdata:_0x710c[30]},{app:_0x710c[31],appdata:util[_0x710c[14]](_0x710c[32],_0x32baxb[_0x710c[26]])},{app:_0x710c[33]}];for(var _0x32bax10=0;_0x32bax10< _0x32baxf[_0x710c[8]];_0x32bax10++){_0x32baxf[_0x32bax10][_0x710c[34]]= _0x32bax10+ 1;_0x32baxf[_0x32bax10]= _[_0x710c[35]](_0x32baxf[_0x32bax10],_0x32baxe)};return _0x32baxf};var getChanSpyPromise=function(_0x32bax15,_0x32baxb){return  new BPromise(function(_0x32bax16,_0x32bax17){return _0x32bax15[_0x710c[41]][_0x710c[40]]()[_0x710c[39]](function(_0x32bax19){if(_0x32bax19){var _0x32bax1a=getChanSpyApplications(_0x32baxb,_0x32baxb[_0x710c[37]],_0x32bax19);var _0x32bax1b=getChanSpyApplications(_0x32baxb,_0x32baxb[_0x710c[26]],_0x32bax19);return _0x32bax16(_0x32bax1a[_0x710c[38]](_0x32bax1b))};return _0x32bax16([])})[_0x710c[36]](function(_0x32bax18){_0x32bax17(_0x32bax18)})})};module[_0x710c[42]]= function(_0x32bax1c,_0x32bax1d){var _0x32bax15=_0x32bax1c[_0x710c[43]];return _0x32bax1c[_0x710c[68]](_0x710c[44],attributes,{tableName:_0x710c[45],hooks:{beforeCreate:function(_0x32baxb,_0x32bax1e,_0x32bax1f){_0x32baxb[_0x710c[46]]();_0x32baxb[_0x710c[47]](_0x32bax1f)},beforeUpdate:function(_0x32baxb,_0x32bax1e,_0x32bax1f){if(_0x32baxb[_0x710c[48]](_0x710c[23])){_0x32baxb[_0x710c[46]]();return _0x32baxb[_0x710c[47]](_0x32bax1f)};_0x32bax1f()},afterCreate:function(_0x32baxb,_0x32bax1e,_0x32bax1f){var _0x32bax20=getUserApplications(_0x32baxb,_0x32baxb[_0x710c[37]]);var _0x32bax21=getUserApplications(_0x32baxb,_0x32baxb[_0x710c[26]]);return _0x32bax15[_0x710c[50]][_0x710c[49]](_0x32bax20[_0x710c[38]](_0x32bax21))[_0x710c[39]](function(){if(_0x32baxb[_0x710c[51]]){return getChanSpyPromise(_0x32bax15,_0x32baxb)}})[_0x710c[39]](function(_0x32baxf){if(_0x32baxf&& _0x32baxf[_0x710c[8]]){return _0x32bax15[_0x710c[50]][_0x710c[49]](_0x32baxf)}})[_0x710c[39]](function(){_0x32bax1f()})[_0x710c[36]](function(_0x32bax18){_0x32bax1f(_0x32bax18)})},afterUpdate:function(_0x32baxb,_0x32bax1e,_0x32bax1f){if(_0x32baxb[_0x710c[48]](_0x710c[51])){return _0x32bax15[_0x710c[50]][_0x710c[52]]({where:{UserId:_0x32baxb[_0x710c[11]],type:_0x710c[10]}})[_0x710c[39]](function(){if(_0x32baxb[_0x710c[51]]){return getChanSpyPromise(_0x32bax15,_0x32baxb)[_0x710c[39]](function(_0x32baxf){if(_0x32baxf&& _0x32baxf[_0x710c[8]]){return _0x32bax15[_0x710c[50]][_0x710c[49]](_0x32baxf)}})}else {return _0x32bax15[_0x710c[50]][_0x710c[52]]({where:{UserId:_0x32baxb[_0x710c[11]],type:_0x710c[10],ChanSpyId:{$ne:null}}})}})[_0x710c[39]](function(){_0x32bax1f()})[_0x710c[36]](function(_0x32bax18){_0x32bax1f(_0x32bax18)})}else {_0x32bax1f()}},afterDestroy:function(_0x32baxb,_0x32bax1e){return _0x32bax15[_0x710c[50]][_0x710c[52]]({where:{UserId:_0x32baxb[_0x710c[11]],type:_0x710c[10]}})}},instanceMethods:{authenticate:function(_0x32bax22,_0x32bax23){if(!_0x32bax23){return this[_0x710c[23]]=== this[_0x710c[53]](_0x32bax22)};var _0x32bax24=this;this[_0x710c[53]](_0x32bax22,function(_0x32bax18,_0x32bax25){if(_0x32bax18){_0x32bax23(_0x32bax18)};if(_0x32bax24[_0x710c[23]]=== _0x32bax25){_0x32bax23(null,true)}else {_0x32bax23(null,false)}})},makeSalt:function(_0x32bax26,_0x32bax23){var _0x32bax27=16;if( typeof arguments[0]=== _0x710c[54]){_0x32bax23= arguments[0];_0x32bax26= _0x32bax27}else {if( typeof arguments[1]=== _0x710c[54]){_0x32bax23= arguments[1]}else {throw  new Error(_0x710c[55])}};if(!_0x32bax26){_0x32bax26= _0x32bax27};return crypto[_0x710c[57]](_0x32bax26,function(_0x32bax18,_0x32bax28){if(_0x32bax18){_0x32bax23(_0x32bax18)};return _0x32bax23(null,_0x32bax28.toString(_0x710c[56]))})},encryptPassword:function(_0x32bax22,_0x32bax23){if(!_0x32bax22||  !this[_0x710c[58]]){return _0x32bax23?_0x32bax23(null):null};var _0x32bax29=10000;var _0x32bax2a=64;var _0x32bax28= new Buffer(this[_0x710c[58]],_0x710c[56]);if(!_0x32bax23){return crypto[_0x710c[60]](_0x32bax22,_0x32bax28,_0x32bax29,_0x32bax2a,_0x710c[59]).toString(_0x710c[56])};return crypto[_0x710c[61]](_0x32bax22,_0x32bax28,_0x32bax29,_0x32bax2a,_0x710c[59],function(_0x32bax18,_0x32bax2b){if(_0x32bax18){_0x32bax23(_0x32bax18)};return _0x32bax23(null,_0x32bax2b.toString(_0x710c[56]))})},updatePassword:function(_0x32bax1f){if(!this[_0x710c[23]]){return _0x32bax1f(null)};if(!validatePresenceOf(this[_0x710c[23]])&& authTypes[_0x710c[63]](this[_0x710c[62]])===  -1){_0x32bax1f( new Error(_0x710c[64]))};var _0x32bax24=this;this[_0x710c[65]](function(_0x32bax2c,_0x32bax28){if(_0x32bax2c){return _0x32bax1f(_0x32bax2c)};_0x32bax24[_0x710c[58]]= _0x32bax28;_0x32bax24[_0x710c[53]](_0x32bax24[_0x710c[23]],function(_0x32bax2d,_0x32bax2e){if(_0x32bax2d){_0x32bax1f(_0x32bax2d)};_0x32bax24[_0x710c[23]]= _0x32bax2e;_0x32bax1f(null)})})},updateMd5Password:function(){this[_0x710c[66]]= md5(this[_0x710c[26]]+ _0x710c[67]+ this[_0x710c[23]]);return this[_0x710c[66]]}}})}
\ No newline at end of file
index f43c7d6..1baf9d5 100644 (file)
@@ -1 +1 @@
-var _0xcb7e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x55\x73\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72","\x53\x68\x6F\x77\x55\x73\x65\x72","\x66\x69\x6E\x64","\x50\x61\x75\x73\x65\x55\x73\x65\x72","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x70\x64\x61\x74\x65","\x67\x65\x74\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6E\x61\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x50\x41\x55\x53\x45","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x55\x6E\x70\x61\x75\x73\x65\x55\x73\x65\x72","\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x79\x73\x74\x65\x6D","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x73\x65\x74","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x6C\x6C","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xcb7e[0];var _=require(_0xcb7e[1]);var util=require(_0xcb7e[2]);var moment=require(_0xcb7e[3]);var BPromise=require(_0xcb7e[4]);var db=require(_0xcb7e[6])[_0xcb7e[5]];var utils=require(_0xcb7e[7]);var logger=require(_0xcb7e[9])(_0xcb7e[8]);var jayson=require(_0xcb7e[10]);var client=jayson[_0xcb7e[12]][_0xcb7e[11]]({port:9002});var socket=require(_0xcb7e[14])({host:_0xcb7e[13],port:6379});require(_0xcb7e[16])[_0xcb7e[15]](socket);function respondWithRpcPromise(_0x1c06xc,_0x1c06xd,_0x1c06xe){return  new BPromise(function(_0x1c06xf,_0x1c06x10){return client[_0xcb7e[29]](_0x1c06xc,_0x1c06xe)[_0xcb7e[28]](function(_0x1c06x12){logger[_0xcb7e[21]](_0xcb7e[17],_0x1c06xd,_0xcb7e[20]);logger[_0xcb7e[24]](_0xcb7e[22],_0x1c06xd,_0xcb7e[20],JSON[_0xcb7e[23]](_0x1c06x12));if(_0x1c06x12[_0xcb7e[18]]){if(_0x1c06x12[_0xcb7e[18]][_0xcb7e[25]]=== 500){logger[_0xcb7e[18]](_0xcb7e[17],_0x1c06xd,_0x1c06x12[_0xcb7e[18]][_0xcb7e[26]]);return _0x1c06x10(_0x1c06x12[_0xcb7e[18]][_0xcb7e[26]])};logger[_0xcb7e[18]](_0xcb7e[17],_0x1c06xd,_0x1c06x12[_0xcb7e[18]][_0xcb7e[26]]);return _0x1c06xf(_0x1c06x12[_0xcb7e[18]][_0xcb7e[26]])}else {logger[_0xcb7e[21]](_0xcb7e[17],_0x1c06xd,_0xcb7e[20]);_0x1c06xf(_0x1c06x12[_0xcb7e[27]][_0xcb7e[26]])}})[_0xcb7e[19]](function(_0x1c06x11){logger[_0xcb7e[18]](_0xcb7e[17],_0x1c06xd,_0x1c06x11);_0x1c06x10(_0x1c06x11)})})}exports[_0xcb7e[30]]= function(_0x1c06xe){var _0x1c06x13=this;return  new Promise(function(_0x1c06xf,_0x1c06x10){return db[_0xcb7e[41]][_0xcb7e[40]]({raw:_0x1c06xe[_0xcb7e[31]]?(_0x1c06xe[_0xcb7e[31]][_0xcb7e[32]]=== undefined)?true:false:true,where:_0x1c06xe[_0xcb7e[31]]?_0x1c06xe[_0xcb7e[31]][_0xcb7e[33]]|| null:null,attributes:_0x1c06xe[_0xcb7e[31]]?_0x1c06xe[_0xcb7e[31]][_0xcb7e[34]]|| null:null,limit:_0x1c06xe[_0xcb7e[31]]?_0x1c06xe[_0xcb7e[31]][_0xcb7e[35]]|| null:null,include:_0x1c06xe[_0xcb7e[31]]?(_0x1c06xe[_0xcb7e[31]][_0xcb7e[36]]?_[_0xcb7e[39]](_0x1c06xe[_0xcb7e[31]][_0xcb7e[36]],function(_0x1c06x14){return {model:db[_0x1c06x14[_0xcb7e[37]]],as:_0x1c06x14[_0xcb7e[38]],attributes:_0x1c06x14[_0xcb7e[34]],include:_0x1c06x14[_0xcb7e[36]]?_[_0xcb7e[39]](_0x1c06x14[_0xcb7e[36]],function(_0x1c06x15){return {model:db[_0x1c06x15[_0xcb7e[37]]],as:_0x1c06x15[_0xcb7e[38]],attributes:_0x1c06x15[_0xcb7e[34]],include:_0x1c06x15[_0xcb7e[36]]?_[_0xcb7e[39]](_0x1c06x15[_0xcb7e[36]],function(_0x1c06x16){return {model:db[_0x1c06x16[_0xcb7e[37]]],as:_0x1c06x16[_0xcb7e[38]],attributes:_0x1c06x16[_0xcb7e[34]]}}):[]}}):[]}}):[]):[]})[_0xcb7e[28]](function(_0x1c06x12){logger[_0xcb7e[21]](_0xcb7e[30],_0x1c06xe);logger[_0xcb7e[24]](_0xcb7e[30],_0x1c06xe,JSON[_0xcb7e[23]](_0x1c06x12));_0x1c06xf(_0x1c06x12)})[_0xcb7e[19]](function(_0x1c06x11){logger[_0xcb7e[18]](_0xcb7e[30],_0x1c06x11[_0xcb7e[26]],_0x1c06xe);_0x1c06x10(_0x1c06x13[_0xcb7e[18]](500,_0x1c06x11[_0xcb7e[26]]))})})};exports[_0xcb7e[42]]= function(_0x1c06xe){var _0x1c06x13=this;return  new Promise(function(_0x1c06xf,_0x1c06x10){return db[_0xcb7e[41]][_0xcb7e[43]]({raw:_0x1c06xe[_0xcb7e[31]]?(_0x1c06xe[_0xcb7e[31]][_0xcb7e[32]]=== undefined)?true:false:true,where:_0x1c06xe[_0xcb7e[31]]?_0x1c06xe[_0xcb7e[31]][_0xcb7e[33]]|| null:null,attributes:_0x1c06xe[_0xcb7e[31]]?_0x1c06xe[_0xcb7e[31]][_0xcb7e[34]]|| null:null,include:_0x1c06xe[_0xcb7e[31]]?(_0x1c06xe[_0xcb7e[31]][_0xcb7e[36]]?_[_0xcb7e[39]](_0x1c06xe[_0xcb7e[31]][_0xcb7e[36]],function(_0x1c06x14){return {model:db[_0x1c06x14[_0xcb7e[37]]],as:_0x1c06x14[_0xcb7e[38]],attributes:_0x1c06x14[_0xcb7e[34]],include:_0x1c06x14[_0xcb7e[36]]?_[_0xcb7e[39]](_0x1c06x14[_0xcb7e[36]],function(_0x1c06x15){return {model:db[_0x1c06x15[_0xcb7e[37]]],as:_0x1c06x15[_0xcb7e[38]],attributes:_0x1c06x15[_0xcb7e[34]],include:_0x1c06x15[_0xcb7e[36]]?_[_0xcb7e[39]](_0x1c06x15[_0xcb7e[36]],function(_0x1c06x16){return {model:db[_0x1c06x16[_0xcb7e[37]]],as:_0x1c06x16[_0xcb7e[38]],attributes:_0x1c06x16[_0xcb7e[34]]}}):[]}}):[]}}):[]):[]})[_0xcb7e[28]](function(_0x1c06x12){logger[_0xcb7e[21]](_0xcb7e[42],_0x1c06xe);logger[_0xcb7e[24]](_0xcb7e[42],_0x1c06xe,JSON[_0xcb7e[23]](_0x1c06x12));_0x1c06xf(_0x1c06x12)})[_0xcb7e[19]](function(_0x1c06x11){logger[_0xcb7e[18]](_0xcb7e[42],_0x1c06x11[_0xcb7e[26]],_0x1c06xe);_0x1c06x10(_0x1c06x13[_0xcb7e[18]](500,_0x1c06x11[_0xcb7e[26]]))})})};exports[_0xcb7e[44]]= function(_0x1c06xe){var _0x1c06x13=this;return  new Promise(function(_0x1c06xf,_0x1c06x10){var _0x1c06x17;return db[_0xcb7e[41]][_0xcb7e[43]]({where:_0x1c06xe[_0xcb7e[31]][_0xcb7e[33]]|| {},attributes:[_0xcb7e[63],_0xcb7e[52],_0xcb7e[56],_0xcb7e[57]]})[_0xcb7e[28]](function(_0x1c06x18){if(_0x1c06x18){_0x1c06x17= _0x1c06x18;return db[_0xcb7e[64]][_0xcb7e[50]]({paused:1},{where:{UserId:_0x1c06x17[_0xcb7e[63]]},individualHooks:true})}})[_0xcb7e[28]](function(){if(_0x1c06x17){return db[_0xcb7e[61]][_0xcb7e[40]]({where:{membername:_0x1c06x17[_0xcb7e[52]],interface:util[_0xcb7e[49]](_0xcb7e[53],_0xcb7e[54],_0x1c06x17[_0xcb7e[52]]),type:_0xcb7e[55],exitAt:null},attributes:[_0xcb7e[63]]})}})[_0xcb7e[28]](function(_0x1c06x19){if(_0x1c06x19[_0xcb7e[62]]){return db[_0xcb7e[61]][_0xcb7e[50]]({exitAt:moment()[_0xcb7e[49]](_0xcb7e[48])},{where:{id:{$in:_[_0xcb7e[39]](_0x1c06x19,_0xcb7e[63])}},individualHooks:true})}})[_0xcb7e[28]](function(){var _0x1c06x19=[];var _0x1c06x1a=utils[_0xcb7e[51]]();_0x1c06x1a[_0xcb7e[59]](function(_0x1c06x1b){_0x1c06x19[_0xcb7e[58]]({channel:_0x1c06x1b,membername:_0x1c06x17[_0xcb7e[52]],interface:util[_0xcb7e[49]](_0xcb7e[53],_0xcb7e[54],_0x1c06x17[_0xcb7e[52]]),type:_0xcb7e[55],enterAt:moment()[_0xcb7e[49]](_0xcb7e[48]),data1:_0x1c06xe[_0xcb7e[46]][_0xcb7e[45]]|| _0xcb7e[47],role:_0x1c06x17[_0xcb7e[56]],internal:_0x1c06x17[_0xcb7e[57]]})});return db[_0xcb7e[61]][_0xcb7e[60]](_0x1c06x19,{individualHooks:true})})[_0xcb7e[28]](function(){return _0x1c06x17[_0xcb7e[50]]({voicePause:true,mailPause:true,chatPause:true,faxPause:true,smsPause:true,openchannelPause:true,pauseType:_0x1c06xe[_0xcb7e[46]][_0xcb7e[45]]|| _0xcb7e[47],lastPauseAt:moment()[_0xcb7e[49]](_0xcb7e[48])})})[_0xcb7e[28]](function(_0x1c06x18){_0x1c06xf(_0x1c06x18)})[_0xcb7e[19]](function(_0x1c06x11){_0x1c06x10(_0x1c06x13[_0xcb7e[18]](500,_0x1c06x11[_0xcb7e[26]]))})})};exports[_0xcb7e[65]]= function(_0x1c06xe){var _0x1c06x13=this;return  new Promise(function(_0x1c06xf,_0x1c06x10){var _0x1c06x17;return db[_0xcb7e[41]][_0xcb7e[80]]({where:_0x1c06xe[_0xcb7e[31]][_0xcb7e[33]]|| {},attributes:[_0xcb7e[63],_0xcb7e[52]]})[_0xcb7e[28]](function(_0x1c06x18){if(_0x1c06x18){_0x1c06x17= _0x1c06x18;if(_0x1c06xe[_0xcb7e[46]][_0xcb7e[66]]&&  !utils[_0xcb7e[67]](_0x1c06xe[_0xcb7e[46]][_0xcb7e[66]])){throw  new Error(_0xcb7e[68])};switch(_0x1c06xe[_0xcb7e[46]][_0xcb7e[66]]){case _0xcb7e[70]:return db[_0xcb7e[64]][_0xcb7e[50]]({paused:0},{where:{UserId:_0x1c06x17[_0xcb7e[63]]}})[_0xcb7e[28]](function(){return db[_0xcb7e[61]][_0xcb7e[43]]({where:{channel:_0x1c06xe[_0xcb7e[46]][_0xcb7e[66]],membername:_0x1c06x17[_0xcb7e[52]],interface:util[_0xcb7e[49]](_0xcb7e[53],_0xcb7e[54],_0x1c06x17[_0xcb7e[52]]),type:_0xcb7e[55],exitAt:null}})})[_0xcb7e[28]](function(_0x1c06x1c){if(_0x1c06x1c){return _0x1c06x1c[_0xcb7e[50]]({exitAt:moment()[_0xcb7e[49]](_0xcb7e[48]),data2:_0xcb7e[69]},{individualHooks:true})};return null})[_0xcb7e[28]](function(){return _0x1c06x17[_0xcb7e[50]]({voicePause:false})});case _0xcb7e[71]:;case _0xcb7e[72]:;case _0xcb7e[73]:;case _0xcb7e[74]:;case _0xcb7e[78]:return db[_0xcb7e[61]][_0xcb7e[43]]({where:{channel:_0x1c06xe[_0xcb7e[46]][_0xcb7e[66]],membername:_0x1c06x17[_0xcb7e[52]],interface:util[_0xcb7e[49]](_0xcb7e[53],_0xcb7e[54],_0x1c06x17[_0xcb7e[52]]),type:_0xcb7e[55],exitAt:null}})[_0xcb7e[28]](function(_0x1c06x1c){return _0x1c06x1c[_0xcb7e[50]]({exitAt:moment()[_0xcb7e[49]](_0xcb7e[48]),data2:_0xcb7e[69]},{individualHooks:true})})[_0xcb7e[28]](function(){var _0x1c06x1d={};_[_0xcb7e[77]](_0x1c06x1d,util[_0xcb7e[49]](_0xcb7e[75],_0x1c06xe[_0xcb7e[46]][_0xcb7e[66]],_0xcb7e[76]),false);return _0x1c06x17[_0xcb7e[50]](_0x1c06x1d)});default:return db[_0xcb7e[64]][_0xcb7e[50]]({paused:0},{where:{UserId:_0x1c06x17[_0xcb7e[63]]}})[_0xcb7e[28]](function(){return db[_0xcb7e[61]][_0xcb7e[40]]({where:{membername:_0x1c06x17[_0xcb7e[52]],interface:util[_0xcb7e[49]](_0xcb7e[53],_0xcb7e[54],_0x1c06x17[_0xcb7e[52]]),type:_0xcb7e[55],exitAt:null}})})[_0xcb7e[28]](function(_0x1c06x19){var _0x1c06x1e=[];_0x1c06x19[_0xcb7e[59]](function(_0x1c06x1c){_0x1c06x1e[_0xcb7e[58]](_0x1c06x1c[_0xcb7e[50]]({exitAt:moment()[_0xcb7e[49]](_0xcb7e[48]),data2:_0xcb7e[69]}))});return BPromise[_0xcb7e[79]](_0x1c06x1e)})[_0xcb7e[28]](function(){return _0x1c06x17[_0xcb7e[50]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})}}})[_0xcb7e[28]](function(_0x1c06x18){_0x1c06xf(_0x1c06x18)})[_0xcb7e[19]](function(_0x1c06x11){_0x1c06x10(_0x1c06x13[_0xcb7e[18]](500,_0x1c06x11[_0xcb7e[26]]))})})}
\ No newline at end of file
+var _0x1b56=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x55\x73\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72","\x53\x68\x6F\x77\x55\x73\x65\x72","\x66\x69\x6E\x64","\x50\x61\x75\x73\x65\x55\x73\x65\x72","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x70\x64\x61\x74\x65","\x67\x65\x74\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6E\x61\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x50\x41\x55\x53\x45","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x55\x6E\x70\x61\x75\x73\x65\x55\x73\x65\x72","\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x79\x73\x74\x65\x6D","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x73\x65\x74","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x6C\x6C","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x1b56[0];var _=require(_0x1b56[1]);var util=require(_0x1b56[2]);var moment=require(_0x1b56[3]);var BPromise=require(_0x1b56[4]);var db=require(_0x1b56[6])[_0x1b56[5]];var utils=require(_0x1b56[7]);var logger=require(_0x1b56[9])(_0x1b56[8]);var jayson=require(_0x1b56[10]);var client=jayson[_0x1b56[12]][_0x1b56[11]]({port:9002});var socket=require(_0x1b56[14])({host:_0x1b56[13],port:6379});require(_0x1b56[16])[_0x1b56[15]](socket);function respondWithRpcPromise(_0x85e6xc,_0x85e6xd,_0x85e6xe){return  new BPromise(function(_0x85e6xf,_0x85e6x10){return client[_0x1b56[29]](_0x85e6xc,_0x85e6xe)[_0x1b56[28]](function(_0x85e6x12){logger[_0x1b56[21]](_0x1b56[17],_0x85e6xd,_0x1b56[20]);logger[_0x1b56[24]](_0x1b56[22],_0x85e6xd,_0x1b56[20],JSON[_0x1b56[23]](_0x85e6x12));if(_0x85e6x12[_0x1b56[18]]){if(_0x85e6x12[_0x1b56[18]][_0x1b56[25]]=== 500){logger[_0x1b56[18]](_0x1b56[17],_0x85e6xd,_0x85e6x12[_0x1b56[18]][_0x1b56[26]]);return _0x85e6x10(_0x85e6x12[_0x1b56[18]][_0x1b56[26]])};logger[_0x1b56[18]](_0x1b56[17],_0x85e6xd,_0x85e6x12[_0x1b56[18]][_0x1b56[26]]);return _0x85e6xf(_0x85e6x12[_0x1b56[18]][_0x1b56[26]])}else {logger[_0x1b56[21]](_0x1b56[17],_0x85e6xd,_0x1b56[20]);_0x85e6xf(_0x85e6x12[_0x1b56[27]][_0x1b56[26]])}})[_0x1b56[19]](function(_0x85e6x11){logger[_0x1b56[18]](_0x1b56[17],_0x85e6xd,_0x85e6x11);_0x85e6x10(_0x85e6x11)})})}exports[_0x1b56[30]]= function(_0x85e6xe){var _0x85e6x13=this;return  new Promise(function(_0x85e6xf,_0x85e6x10){return db[_0x1b56[41]][_0x1b56[40]]({raw:_0x85e6xe[_0x1b56[31]]?(_0x85e6xe[_0x1b56[31]][_0x1b56[32]]=== undefined)?true:false:true,where:_0x85e6xe[_0x1b56[31]]?_0x85e6xe[_0x1b56[31]][_0x1b56[33]]|| null:null,attributes:_0x85e6xe[_0x1b56[31]]?_0x85e6xe[_0x1b56[31]][_0x1b56[34]]|| null:null,limit:_0x85e6xe[_0x1b56[31]]?_0x85e6xe[_0x1b56[31]][_0x1b56[35]]|| null:null,include:_0x85e6xe[_0x1b56[31]]?(_0x85e6xe[_0x1b56[31]][_0x1b56[36]]?_[_0x1b56[39]](_0x85e6xe[_0x1b56[31]][_0x1b56[36]],function(_0x85e6x14){return {model:db[_0x85e6x14[_0x1b56[37]]],as:_0x85e6x14[_0x1b56[38]],attributes:_0x85e6x14[_0x1b56[34]],include:_0x85e6x14[_0x1b56[36]]?_[_0x1b56[39]](_0x85e6x14[_0x1b56[36]],function(_0x85e6x15){return {model:db[_0x85e6x15[_0x1b56[37]]],as:_0x85e6x15[_0x1b56[38]],attributes:_0x85e6x15[_0x1b56[34]],include:_0x85e6x15[_0x1b56[36]]?_[_0x1b56[39]](_0x85e6x15[_0x1b56[36]],function(_0x85e6x16){return {model:db[_0x85e6x16[_0x1b56[37]]],as:_0x85e6x16[_0x1b56[38]],attributes:_0x85e6x16[_0x1b56[34]]}}):[]}}):[]}}):[]):[]})[_0x1b56[28]](function(_0x85e6x12){logger[_0x1b56[21]](_0x1b56[30],_0x85e6xe);logger[_0x1b56[24]](_0x1b56[30],_0x85e6xe,JSON[_0x1b56[23]](_0x85e6x12));_0x85e6xf(_0x85e6x12)})[_0x1b56[19]](function(_0x85e6x11){logger[_0x1b56[18]](_0x1b56[30],_0x85e6x11[_0x1b56[26]],_0x85e6xe);_0x85e6x10(_0x85e6x13[_0x1b56[18]](500,_0x85e6x11[_0x1b56[26]]))})})};exports[_0x1b56[42]]= function(_0x85e6xe){var _0x85e6x13=this;return  new Promise(function(_0x85e6xf,_0x85e6x10){return db[_0x1b56[41]][_0x1b56[43]]({raw:_0x85e6xe[_0x1b56[31]]?(_0x85e6xe[_0x1b56[31]][_0x1b56[32]]=== undefined)?true:false:true,where:_0x85e6xe[_0x1b56[31]]?_0x85e6xe[_0x1b56[31]][_0x1b56[33]]|| null:null,attributes:_0x85e6xe[_0x1b56[31]]?_0x85e6xe[_0x1b56[31]][_0x1b56[34]]|| null:null,include:_0x85e6xe[_0x1b56[31]]?(_0x85e6xe[_0x1b56[31]][_0x1b56[36]]?_[_0x1b56[39]](_0x85e6xe[_0x1b56[31]][_0x1b56[36]],function(_0x85e6x14){return {model:db[_0x85e6x14[_0x1b56[37]]],as:_0x85e6x14[_0x1b56[38]],attributes:_0x85e6x14[_0x1b56[34]],include:_0x85e6x14[_0x1b56[36]]?_[_0x1b56[39]](_0x85e6x14[_0x1b56[36]],function(_0x85e6x15){return {model:db[_0x85e6x15[_0x1b56[37]]],as:_0x85e6x15[_0x1b56[38]],attributes:_0x85e6x15[_0x1b56[34]],include:_0x85e6x15[_0x1b56[36]]?_[_0x1b56[39]](_0x85e6x15[_0x1b56[36]],function(_0x85e6x16){return {model:db[_0x85e6x16[_0x1b56[37]]],as:_0x85e6x16[_0x1b56[38]],attributes:_0x85e6x16[_0x1b56[34]]}}):[]}}):[]}}):[]):[]})[_0x1b56[28]](function(_0x85e6x12){logger[_0x1b56[21]](_0x1b56[42],_0x85e6xe);logger[_0x1b56[24]](_0x1b56[42],_0x85e6xe,JSON[_0x1b56[23]](_0x85e6x12));_0x85e6xf(_0x85e6x12)})[_0x1b56[19]](function(_0x85e6x11){logger[_0x1b56[18]](_0x1b56[42],_0x85e6x11[_0x1b56[26]],_0x85e6xe);_0x85e6x10(_0x85e6x13[_0x1b56[18]](500,_0x85e6x11[_0x1b56[26]]))})})};exports[_0x1b56[44]]= function(_0x85e6xe){var _0x85e6x13=this;return  new Promise(function(_0x85e6xf,_0x85e6x10){var _0x85e6x17;return db[_0x1b56[41]][_0x1b56[43]]({where:_0x85e6xe[_0x1b56[31]][_0x1b56[33]]|| {},attributes:[_0x1b56[63],_0x1b56[52],_0x1b56[56],_0x1b56[57]]})[_0x1b56[28]](function(_0x85e6x18){if(_0x85e6x18){_0x85e6x17= _0x85e6x18;return db[_0x1b56[64]][_0x1b56[50]]({paused:1},{where:{UserId:_0x85e6x17[_0x1b56[63]]},individualHooks:true})}})[_0x1b56[28]](function(){if(_0x85e6x17){return db[_0x1b56[61]][_0x1b56[40]]({where:{membername:_0x85e6x17[_0x1b56[52]],interface:util[_0x1b56[49]](_0x1b56[53],_0x1b56[54],_0x85e6x17[_0x1b56[52]]),type:_0x1b56[55],exitAt:null},attributes:[_0x1b56[63]]})}})[_0x1b56[28]](function(_0x85e6x19){if(_0x85e6x19[_0x1b56[62]]){return db[_0x1b56[61]][_0x1b56[50]]({exitAt:moment()[_0x1b56[49]](_0x1b56[48])},{where:{id:{$in:_[_0x1b56[39]](_0x85e6x19,_0x1b56[63])}},individualHooks:true})}})[_0x1b56[28]](function(){var _0x85e6x19=[];var _0x85e6x1a=utils[_0x1b56[51]]();_0x85e6x1a[_0x1b56[59]](function(_0x85e6x1b){_0x85e6x19[_0x1b56[58]]({channel:_0x85e6x1b,membername:_0x85e6x17[_0x1b56[52]],interface:util[_0x1b56[49]](_0x1b56[53],_0x1b56[54],_0x85e6x17[_0x1b56[52]]),type:_0x1b56[55],enterAt:moment()[_0x1b56[49]](_0x1b56[48]),data1:_0x85e6xe[_0x1b56[46]][_0x1b56[45]]|| _0x1b56[47],role:_0x85e6x17[_0x1b56[56]],internal:_0x85e6x17[_0x1b56[57]]})});return db[_0x1b56[61]][_0x1b56[60]](_0x85e6x19,{individualHooks:true})})[_0x1b56[28]](function(){return _0x85e6x17[_0x1b56[50]]({voicePause:true,mailPause:true,chatPause:true,faxPause:true,smsPause:true,openchannelPause:true,pauseType:_0x85e6xe[_0x1b56[46]][_0x1b56[45]]|| _0x1b56[47],lastPauseAt:moment()[_0x1b56[49]](_0x1b56[48])})})[_0x1b56[28]](function(_0x85e6x18){_0x85e6xf(_0x85e6x18)})[_0x1b56[19]](function(_0x85e6x11){_0x85e6x10(_0x85e6x13[_0x1b56[18]](500,_0x85e6x11[_0x1b56[26]]))})})};exports[_0x1b56[65]]= function(_0x85e6xe){var _0x85e6x13=this;return  new Promise(function(_0x85e6xf,_0x85e6x10){var _0x85e6x17;return db[_0x1b56[41]][_0x1b56[80]]({where:_0x85e6xe[_0x1b56[31]][_0x1b56[33]]|| {},attributes:[_0x1b56[63],_0x1b56[52]]})[_0x1b56[28]](function(_0x85e6x18){if(_0x85e6x18){_0x85e6x17= _0x85e6x18;if(_0x85e6xe[_0x1b56[46]][_0x1b56[66]]&&  !utils[_0x1b56[67]](_0x85e6xe[_0x1b56[46]][_0x1b56[66]])){throw  new Error(_0x1b56[68])};switch(_0x85e6xe[_0x1b56[46]][_0x1b56[66]]){case _0x1b56[70]:return db[_0x1b56[64]][_0x1b56[50]]({paused:0},{where:{UserId:_0x85e6x17[_0x1b56[63]]}})[_0x1b56[28]](function(){return db[_0x1b56[61]][_0x1b56[43]]({where:{channel:_0x85e6xe[_0x1b56[46]][_0x1b56[66]],membername:_0x85e6x17[_0x1b56[52]],interface:util[_0x1b56[49]](_0x1b56[53],_0x1b56[54],_0x85e6x17[_0x1b56[52]]),type:_0x1b56[55],exitAt:null}})})[_0x1b56[28]](function(_0x85e6x1c){if(_0x85e6x1c){return _0x85e6x1c[_0x1b56[50]]({exitAt:moment()[_0x1b56[49]](_0x1b56[48]),data2:_0x1b56[69]},{individualHooks:true})};return null})[_0x1b56[28]](function(){return _0x85e6x17[_0x1b56[50]]({voicePause:false})});case _0x1b56[71]:;case _0x1b56[72]:;case _0x1b56[73]:;case _0x1b56[74]:;case _0x1b56[78]:return db[_0x1b56[61]][_0x1b56[43]]({where:{channel:_0x85e6xe[_0x1b56[46]][_0x1b56[66]],membername:_0x85e6x17[_0x1b56[52]],interface:util[_0x1b56[49]](_0x1b56[53],_0x1b56[54],_0x85e6x17[_0x1b56[52]]),type:_0x1b56[55],exitAt:null}})[_0x1b56[28]](function(_0x85e6x1c){return _0x85e6x1c[_0x1b56[50]]({exitAt:moment()[_0x1b56[49]](_0x1b56[48]),data2:_0x1b56[69]},{individualHooks:true})})[_0x1b56[28]](function(){var _0x85e6x1d={};_[_0x1b56[77]](_0x85e6x1d,util[_0x1b56[49]](_0x1b56[75],_0x85e6xe[_0x1b56[46]][_0x1b56[66]],_0x1b56[76]),false);return _0x85e6x17[_0x1b56[50]](_0x85e6x1d)});default:return db[_0x1b56[64]][_0x1b56[50]]({paused:0},{where:{UserId:_0x85e6x17[_0x1b56[63]]}})[_0x1b56[28]](function(){return db[_0x1b56[61]][_0x1b56[40]]({where:{membername:_0x85e6x17[_0x1b56[52]],interface:util[_0x1b56[49]](_0x1b56[53],_0x1b56[54],_0x85e6x17[_0x1b56[52]]),type:_0x1b56[55],exitAt:null}})})[_0x1b56[28]](function(_0x85e6x19){var _0x85e6x1e=[];_0x85e6x19[_0x1b56[59]](function(_0x85e6x1c){_0x85e6x1e[_0x1b56[58]](_0x85e6x1c[_0x1b56[50]]({exitAt:moment()[_0x1b56[49]](_0x1b56[48]),data2:_0x1b56[69]}))});return BPromise[_0x1b56[79]](_0x85e6x1e)})[_0x1b56[28]](function(){return _0x85e6x17[_0x1b56[50]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})}}})[_0x1b56[28]](function(_0x85e6x18){_0x85e6xf(_0x85e6x18)})[_0x1b56[19]](function(_0x85e6x11){_0x85e6x10(_0x85e6x13[_0x1b56[18]](500,_0x85e6x11[_0x1b56[26]]))})})}
\ No newline at end of file
index 3395975..8bb6fe5 100644 (file)
@@ -1 +1 @@
-var _0x7cdb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x75\x73\x65\x72\x2E\x65\x76\x65\x6E\x74\x73","\x73\x61\x76\x65","\x72\x65\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65","\x65\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x75\x73\x65\x72\x3A","\x6F\x6E"];_0x7cdb[0];var UserEvents=require(_0x7cdb[1]);var events=[_0x7cdb[2],_0x7cdb[3],_0x7cdb[4]];function createListener(_0x7b0ex4,_0x7b0ex5){return function(_0x7b0ex6){_0x7b0ex5[_0x7cdb[5]](_0x7b0ex4,_0x7b0ex6)}}function removeListener(_0x7b0ex4,_0x7b0ex8){return function(){UserEvents[_0x7cdb[6]](_0x7b0ex4,_0x7b0ex8)}}exports[_0x7cdb[7]]= function(_0x7b0ex5){for(var _0x7b0ex9=0,_0x7b0exa=events[_0x7cdb[8]];_0x7b0ex9< _0x7b0exa;_0x7b0ex9++){var _0x7b0ex4=events[_0x7b0ex9];var _0x7b0ex8=createListener(_0x7cdb[9]+ _0x7b0ex4,_0x7b0ex5);UserEvents[_0x7cdb[10]](_0x7b0ex4,_0x7b0ex8)}}
\ No newline at end of file
+var _0x9c67=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x75\x73\x65\x72\x2E\x65\x76\x65\x6E\x74\x73","\x73\x61\x76\x65","\x72\x65\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65","\x65\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x75\x73\x65\x72\x3A","\x6F\x6E"];_0x9c67[0];var UserEvents=require(_0x9c67[1]);var events=[_0x9c67[2],_0x9c67[3],_0x9c67[4]];function createListener(_0x4f25x4,_0x4f25x5){return function(_0x4f25x6){_0x4f25x5[_0x9c67[5]](_0x4f25x4,_0x4f25x6)}}function removeListener(_0x4f25x4,_0x4f25x8){return function(){UserEvents[_0x9c67[6]](_0x4f25x4,_0x4f25x8)}}exports[_0x9c67[7]]= function(_0x4f25x5){for(var _0x4f25x9=0,_0x4f25xa=events[_0x9c67[8]];_0x4f25x9< _0x4f25xa;_0x4f25x9++){var _0x4f25x4=events[_0x4f25x9];var _0x4f25x8=createListener(_0x9c67[9]+ _0x4f25x4,_0x4f25x5);UserEvents[_0x9c67[10]](_0x4f25x4,_0x4f25x8)}}
\ No newline at end of file
index 6be828f..ce4f550 100644 (file)
@@ -1 +1 @@
-var _0x1812=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x1812[0];var multer=require(_0x1812[1]);var util=require(_0x1812[2]);var path=require(_0x1812[3]);var express=require(_0x1812[4]);var router=express.Router();var auth=require(_0x1812[5]);var config=require(_0x1812[6]);module[_0x1812[7]]= router
\ No newline at end of file
+var _0xe34d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xe34d[0];var multer=require(_0xe34d[1]);var util=require(_0xe34d[2]);var path=require(_0xe34d[3]);var express=require(_0xe34d[4]);var router=express.Router();var auth=require(_0xe34d[5]);var config=require(_0xe34d[6]);module[_0xe34d[7]]= router
\ No newline at end of file
index 97df5a6..8be744a 100644 (file)
@@ -1 +1 @@
-var _0x1acf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x1acf[0];var Sequelize=require(_0x1acf[1]);module[_0x1acf[2]]= {penalty:{type:Sequelize[_0x1acf[3]],defaultValue:0},assigned:{type:Sequelize[_0x1acf[3]],defaultValue:0},queue:{type:Sequelize[_0x1acf[4]]}}
\ No newline at end of file
+var _0x51c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x51c0[0];var Sequelize=require(_0x51c0[1]);module[_0x51c0[2]]= {penalty:{type:Sequelize[_0x51c0[3]],defaultValue:0},assigned:{type:Sequelize[_0x51c0[3]],defaultValue:0},queue:{type:Sequelize[_0x51c0[4]]}}
\ No newline at end of file
index adf8f99..d24813a 100644 (file)
@@ -1 +1 @@
-var _0x62f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x62f5[0];var _=require(_0x62f5[1]);var util=require(_0x62f5[2]);var logger=require(_0x62f5[4])(_0x62f5[3]);var attributes=require(_0x62f5[5]);module[_0x62f5[6]]= function(_0xbcfcx5,_0xbcfcx6){return _0xbcfcx5[_0x62f5[9]](_0x62f5[7],attributes,{tableName:_0x62f5[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xce11=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xce11[0];var _=require(_0xce11[1]);var util=require(_0xce11[2]);var logger=require(_0xce11[4])(_0xce11[3]);var attributes=require(_0xce11[5]);module[_0xce11[6]]= function(_0x160cx5,_0x160cx6){return _0x160cx5[_0xce11[9]](_0xce11[7],attributes,{tableName:_0xce11[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 1a26d61..a2e803b 100644 (file)
@@ -1 +1 @@
-var _0x9f85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9f85[0];var _=require(_0x9f85[1]);var util=require(_0x9f85[2]);var moment=require(_0x9f85[3]);var BPromise=require(_0x9f85[4]);var db=require(_0x9f85[6])[_0x9f85[5]];var utils=require(_0x9f85[7]);var logger=require(_0x9f85[9])(_0x9f85[8]);var jayson=require(_0x9f85[10]);var client=jayson[_0x9f85[12]][_0x9f85[11]]({port:9002});function respondWithRpcPromise(_0xacb0xb,_0xacb0xc,_0xacb0xd){return  new BPromise(function(_0xacb0xe,_0xacb0xf){return client[_0x9f85[25]](_0xacb0xb,_0xacb0xd)[_0x9f85[24]](function(_0xacb0x11){logger[_0x9f85[17]](_0x9f85[13],_0xacb0xc,_0x9f85[16]);logger[_0x9f85[20]](_0x9f85[18],_0xacb0xc,_0x9f85[16],JSON[_0x9f85[19]](_0xacb0x11));if(_0xacb0x11[_0x9f85[14]]){if(_0xacb0x11[_0x9f85[14]][_0x9f85[21]]=== 500){logger[_0x9f85[14]](_0x9f85[13],_0xacb0xc,_0xacb0x11[_0x9f85[14]][_0x9f85[22]]);return _0xacb0xf(_0xacb0x11[_0x9f85[14]][_0x9f85[22]])};logger[_0x9f85[14]](_0x9f85[13],_0xacb0xc,_0xacb0x11[_0x9f85[14]][_0x9f85[22]]);return _0xacb0xe(_0xacb0x11[_0x9f85[14]][_0x9f85[22]])}else {logger[_0x9f85[17]](_0x9f85[13],_0xacb0xc,_0x9f85[16]);_0xacb0xe(_0xacb0x11[_0x9f85[23]][_0x9f85[22]])}})[_0x9f85[15]](function(_0xacb0x10){logger[_0x9f85[14]](_0x9f85[13],_0xacb0xc,_0xacb0x10);_0xacb0xf(_0xacb0x10)})})}
\ No newline at end of file
+var _0x4fe1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4fe1[0];var _=require(_0x4fe1[1]);var util=require(_0x4fe1[2]);var moment=require(_0x4fe1[3]);var BPromise=require(_0x4fe1[4]);var db=require(_0x4fe1[6])[_0x4fe1[5]];var utils=require(_0x4fe1[7]);var logger=require(_0x4fe1[9])(_0x4fe1[8]);var jayson=require(_0x4fe1[10]);var client=jayson[_0x4fe1[12]][_0x4fe1[11]]({port:9002});function respondWithRpcPromise(_0x26d2xb,_0x26d2xc,_0x26d2xd){return  new BPromise(function(_0x26d2xe,_0x26d2xf){return client[_0x4fe1[25]](_0x26d2xb,_0x26d2xd)[_0x4fe1[24]](function(_0x26d2x11){logger[_0x4fe1[17]](_0x4fe1[13],_0x26d2xc,_0x4fe1[16]);logger[_0x4fe1[20]](_0x4fe1[18],_0x26d2xc,_0x4fe1[16],JSON[_0x4fe1[19]](_0x26d2x11));if(_0x26d2x11[_0x4fe1[14]]){if(_0x26d2x11[_0x4fe1[14]][_0x4fe1[21]]=== 500){logger[_0x4fe1[14]](_0x4fe1[13],_0x26d2xc,_0x26d2x11[_0x4fe1[14]][_0x4fe1[22]]);return _0x26d2xf(_0x26d2x11[_0x4fe1[14]][_0x4fe1[22]])};logger[_0x4fe1[14]](_0x4fe1[13],_0x26d2xc,_0x26d2x11[_0x4fe1[14]][_0x4fe1[22]]);return _0x26d2xe(_0x26d2x11[_0x4fe1[14]][_0x4fe1[22]])}else {logger[_0x4fe1[17]](_0x4fe1[13],_0x26d2xc,_0x4fe1[16]);_0x26d2xe(_0x26d2x11[_0x4fe1[23]][_0x4fe1[22]])}})[_0x4fe1[15]](function(_0x26d2x10){logger[_0x4fe1[14]](_0x4fe1[13],_0x26d2xc,_0x26d2x10);_0x26d2xf(_0x26d2x10)})})}
\ No newline at end of file
index 80f0e1b..9dc8a8d 100644 (file)
@@ -1 +1 @@
-var _0xf41c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xf41c[0];var multer=require(_0xf41c[1]);var util=require(_0xf41c[2]);var path=require(_0xf41c[3]);var express=require(_0xf41c[4]);var router=express.Router();var auth=require(_0xf41c[5]);var config=require(_0xf41c[6]);module[_0xf41c[7]]= router
\ No newline at end of file
+var _0xee28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xee28[0];var multer=require(_0xee28[1]);var util=require(_0xee28[2]);var path=require(_0xee28[3]);var express=require(_0xee28[4]);var router=express.Router();var auth=require(_0xee28[5]);var config=require(_0xee28[6]);module[_0xee28[7]]= router
\ No newline at end of file
index 46a3894..91ccd96 100644 (file)
@@ -1 +1 @@
-var _0x567a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x567a[0];var Sequelize=require(_0x567a[1]);module[_0x567a[2]]= {penalty:{type:Sequelize[_0x567a[3]],defaultValue:0},assigned:{type:Sequelize[_0x567a[3]],defaultValue:0},queue:{type:Sequelize[_0x567a[4]]}}
\ No newline at end of file
+var _0x585f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x585f[0];var Sequelize=require(_0x585f[1]);module[_0x585f[2]]= {penalty:{type:Sequelize[_0x585f[3]],defaultValue:0},assigned:{type:Sequelize[_0x585f[3]],defaultValue:0},queue:{type:Sequelize[_0x585f[4]]}}
\ No newline at end of file
index b234d99..3adb34d 100644 (file)
@@ -1 +1 @@
-var _0x53cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x53cc[0];var _=require(_0x53cc[1]);var util=require(_0x53cc[2]);var logger=require(_0x53cc[4])(_0x53cc[3]);var attributes=require(_0x53cc[5]);module[_0x53cc[6]]= function(_0xeaf2x5,_0xeaf2x6){return _0xeaf2x5[_0x53cc[9]](_0x53cc[7],attributes,{tableName:_0x53cc[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x6ba7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x6ba7[0];var _=require(_0x6ba7[1]);var util=require(_0x6ba7[2]);var logger=require(_0x6ba7[4])(_0x6ba7[3]);var attributes=require(_0x6ba7[5]);module[_0x6ba7[6]]= function(_0xda23x5,_0xda23x6){return _0xda23x5[_0x6ba7[9]](_0x6ba7[7],attributes,{tableName:_0x6ba7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index e1bb45e..aa5c2ad 100644 (file)
@@ -1 +1 @@
-var _0x733f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x733f[0];var _=require(_0x733f[1]);var util=require(_0x733f[2]);var moment=require(_0x733f[3]);var BPromise=require(_0x733f[4]);var db=require(_0x733f[6])[_0x733f[5]];var utils=require(_0x733f[7]);var logger=require(_0x733f[9])(_0x733f[8]);var jayson=require(_0x733f[10]);var client=jayson[_0x733f[12]][_0x733f[11]]({port:9002});function respondWithRpcPromise(_0x9021xb,_0x9021xc,_0x9021xd){return  new BPromise(function(_0x9021xe,_0x9021xf){return client[_0x733f[25]](_0x9021xb,_0x9021xd)[_0x733f[24]](function(_0x9021x11){logger[_0x733f[17]](_0x733f[13],_0x9021xc,_0x733f[16]);logger[_0x733f[20]](_0x733f[18],_0x9021xc,_0x733f[16],JSON[_0x733f[19]](_0x9021x11));if(_0x9021x11[_0x733f[14]]){if(_0x9021x11[_0x733f[14]][_0x733f[21]]=== 500){logger[_0x733f[14]](_0x733f[13],_0x9021xc,_0x9021x11[_0x733f[14]][_0x733f[22]]);return _0x9021xf(_0x9021x11[_0x733f[14]][_0x733f[22]])};logger[_0x733f[14]](_0x733f[13],_0x9021xc,_0x9021x11[_0x733f[14]][_0x733f[22]]);return _0x9021xe(_0x9021x11[_0x733f[14]][_0x733f[22]])}else {logger[_0x733f[17]](_0x733f[13],_0x9021xc,_0x733f[16]);_0x9021xe(_0x9021x11[_0x733f[23]][_0x733f[22]])}})[_0x733f[15]](function(_0x9021x10){logger[_0x733f[14]](_0x733f[13],_0x9021xc,_0x9021x10);_0x9021xf(_0x9021x10)})})}
\ No newline at end of file
+var _0x2a11=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2a11[0];var _=require(_0x2a11[1]);var util=require(_0x2a11[2]);var moment=require(_0x2a11[3]);var BPromise=require(_0x2a11[4]);var db=require(_0x2a11[6])[_0x2a11[5]];var utils=require(_0x2a11[7]);var logger=require(_0x2a11[9])(_0x2a11[8]);var jayson=require(_0x2a11[10]);var client=jayson[_0x2a11[12]][_0x2a11[11]]({port:9002});function respondWithRpcPromise(_0x46e8xb,_0x46e8xc,_0x46e8xd){return  new BPromise(function(_0x46e8xe,_0x46e8xf){return client[_0x2a11[25]](_0x46e8xb,_0x46e8xd)[_0x2a11[24]](function(_0x46e8x11){logger[_0x2a11[17]](_0x2a11[13],_0x46e8xc,_0x2a11[16]);logger[_0x2a11[20]](_0x2a11[18],_0x46e8xc,_0x2a11[16],JSON[_0x2a11[19]](_0x46e8x11));if(_0x46e8x11[_0x2a11[14]]){if(_0x46e8x11[_0x2a11[14]][_0x2a11[21]]=== 500){logger[_0x2a11[14]](_0x2a11[13],_0x46e8xc,_0x46e8x11[_0x2a11[14]][_0x2a11[22]]);return _0x46e8xf(_0x46e8x11[_0x2a11[14]][_0x2a11[22]])};logger[_0x2a11[14]](_0x2a11[13],_0x46e8xc,_0x46e8x11[_0x2a11[14]][_0x2a11[22]]);return _0x46e8xe(_0x46e8x11[_0x2a11[14]][_0x2a11[22]])}else {logger[_0x2a11[17]](_0x2a11[13],_0x46e8xc,_0x2a11[16]);_0x46e8xe(_0x46e8x11[_0x2a11[23]][_0x2a11[22]])}})[_0x2a11[15]](function(_0x46e8x10){logger[_0x2a11[14]](_0x2a11[13],_0x46e8xc,_0x46e8x10);_0x46e8xf(_0x46e8x10)})})}
\ No newline at end of file
index 5269e2a..1398187 100644 (file)
@@ -1 +1 @@
-var _0x1eb8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x1eb8[0];var multer=require(_0x1eb8[1]);var util=require(_0x1eb8[2]);var path=require(_0x1eb8[3]);var express=require(_0x1eb8[4]);var router=express.Router();var auth=require(_0x1eb8[5]);var config=require(_0x1eb8[6]);module[_0x1eb8[7]]= router
\ No newline at end of file
+var _0x2c69=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2c69[0];var multer=require(_0x2c69[1]);var util=require(_0x2c69[2]);var path=require(_0x2c69[3]);var express=require(_0x2c69[4]);var router=express.Router();var auth=require(_0x2c69[5]);var config=require(_0x2c69[6]);module[_0x2c69[7]]= router
\ No newline at end of file
index b592d10..bfaa035 100644 (file)
@@ -1 +1 @@
-var _0x354b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x354b[0];var Sequelize=require(_0x354b[1]);module[_0x354b[2]]= {penalty:{type:Sequelize[_0x354b[3]],defaultValue:0},assigned:{type:Sequelize[_0x354b[3]],defaultValue:0},queue:{type:Sequelize[_0x354b[4]]}}
\ No newline at end of file
+var _0x1522=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x1522[0];var Sequelize=require(_0x1522[1]);module[_0x1522[2]]= {penalty:{type:Sequelize[_0x1522[3]],defaultValue:0},assigned:{type:Sequelize[_0x1522[3]],defaultValue:0},queue:{type:Sequelize[_0x1522[4]]}}
\ No newline at end of file
index dd7d5a6..8ff7018 100644 (file)
@@ -1 +1 @@
-var _0xaab0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xaab0[0];var _=require(_0xaab0[1]);var util=require(_0xaab0[2]);var logger=require(_0xaab0[4])(_0xaab0[3]);var attributes=require(_0xaab0[5]);module[_0xaab0[6]]= function(_0xa907x5,_0xa907x6){return _0xa907x5[_0xaab0[9]](_0xaab0[7],attributes,{tableName:_0xaab0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xbfa4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xbfa4[0];var _=require(_0xbfa4[1]);var util=require(_0xbfa4[2]);var logger=require(_0xbfa4[4])(_0xbfa4[3]);var attributes=require(_0xbfa4[5]);module[_0xbfa4[6]]= function(_0xa864x5,_0xa864x6){return _0xa864x5[_0xbfa4[9]](_0xbfa4[7],attributes,{tableName:_0xbfa4[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 2ceaa4a..69d702d 100644 (file)
@@ -1 +1 @@
-var _0x6c8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6c8c[0];var _=require(_0x6c8c[1]);var util=require(_0x6c8c[2]);var moment=require(_0x6c8c[3]);var BPromise=require(_0x6c8c[4]);var db=require(_0x6c8c[6])[_0x6c8c[5]];var utils=require(_0x6c8c[7]);var logger=require(_0x6c8c[9])(_0x6c8c[8]);var jayson=require(_0x6c8c[10]);var client=jayson[_0x6c8c[12]][_0x6c8c[11]]({port:9002});function respondWithRpcPromise(_0x63c9xb,_0x63c9xc,_0x63c9xd){return  new BPromise(function(_0x63c9xe,_0x63c9xf){return client[_0x6c8c[25]](_0x63c9xb,_0x63c9xd)[_0x6c8c[24]](function(_0x63c9x11){logger[_0x6c8c[17]](_0x6c8c[13],_0x63c9xc,_0x6c8c[16]);logger[_0x6c8c[20]](_0x6c8c[18],_0x63c9xc,_0x6c8c[16],JSON[_0x6c8c[19]](_0x63c9x11));if(_0x63c9x11[_0x6c8c[14]]){if(_0x63c9x11[_0x6c8c[14]][_0x6c8c[21]]=== 500){logger[_0x6c8c[14]](_0x6c8c[13],_0x63c9xc,_0x63c9x11[_0x6c8c[14]][_0x6c8c[22]]);return _0x63c9xf(_0x63c9x11[_0x6c8c[14]][_0x6c8c[22]])};logger[_0x6c8c[14]](_0x6c8c[13],_0x63c9xc,_0x63c9x11[_0x6c8c[14]][_0x6c8c[22]]);return _0x63c9xe(_0x63c9x11[_0x6c8c[14]][_0x6c8c[22]])}else {logger[_0x6c8c[17]](_0x6c8c[13],_0x63c9xc,_0x6c8c[16]);_0x63c9xe(_0x63c9x11[_0x6c8c[23]][_0x6c8c[22]])}})[_0x6c8c[15]](function(_0x63c9x10){logger[_0x6c8c[14]](_0x6c8c[13],_0x63c9xc,_0x63c9x10);_0x63c9xf(_0x63c9x10)})})}
\ No newline at end of file
+var _0x687c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x687c[0];var _=require(_0x687c[1]);var util=require(_0x687c[2]);var moment=require(_0x687c[3]);var BPromise=require(_0x687c[4]);var db=require(_0x687c[6])[_0x687c[5]];var utils=require(_0x687c[7]);var logger=require(_0x687c[9])(_0x687c[8]);var jayson=require(_0x687c[10]);var client=jayson[_0x687c[12]][_0x687c[11]]({port:9002});function respondWithRpcPromise(_0x9200xb,_0x9200xc,_0x9200xd){return  new BPromise(function(_0x9200xe,_0x9200xf){return client[_0x687c[25]](_0x9200xb,_0x9200xd)[_0x687c[24]](function(_0x9200x11){logger[_0x687c[17]](_0x687c[13],_0x9200xc,_0x687c[16]);logger[_0x687c[20]](_0x687c[18],_0x9200xc,_0x687c[16],JSON[_0x687c[19]](_0x9200x11));if(_0x9200x11[_0x687c[14]]){if(_0x9200x11[_0x687c[14]][_0x687c[21]]=== 500){logger[_0x687c[14]](_0x687c[13],_0x9200xc,_0x9200x11[_0x687c[14]][_0x687c[22]]);return _0x9200xf(_0x9200x11[_0x687c[14]][_0x687c[22]])};logger[_0x687c[14]](_0x687c[13],_0x9200xc,_0x9200x11[_0x687c[14]][_0x687c[22]]);return _0x9200xe(_0x9200x11[_0x687c[14]][_0x687c[22]])}else {logger[_0x687c[17]](_0x687c[13],_0x9200xc,_0x687c[16]);_0x9200xe(_0x9200x11[_0x687c[23]][_0x687c[22]])}})[_0x687c[15]](function(_0x9200x10){logger[_0x687c[14]](_0x687c[13],_0x9200xc,_0x9200x10);_0x9200xf(_0x9200x10)})})}
\ No newline at end of file
index 18bdbb0..7611184 100644 (file)
@@ -1 +1 @@
-var _0x7e93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x7e93[0];var multer=require(_0x7e93[1]);var util=require(_0x7e93[2]);var path=require(_0x7e93[3]);var express=require(_0x7e93[4]);var router=express.Router();var auth=require(_0x7e93[5]);var config=require(_0x7e93[6]);module[_0x7e93[7]]= router
\ No newline at end of file
+var _0x9583=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x9583[0];var multer=require(_0x9583[1]);var util=require(_0x9583[2]);var path=require(_0x9583[3]);var express=require(_0x9583[4]);var router=express.Router();var auth=require(_0x9583[5]);var config=require(_0x9583[6]);module[_0x9583[7]]= router
\ No newline at end of file
index 48490e9..61d9704 100644 (file)
@@ -1 +1 @@
-var _0xdfff=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0xdfff[0];var Sequelize=require(_0xdfff[1]);module[_0xdfff[2]]= {penalty:{type:Sequelize[_0xdfff[3]],defaultValue:0},assigned:{type:Sequelize[_0xdfff[3]],defaultValue:0},queue:{type:Sequelize[_0xdfff[4]]}}
\ No newline at end of file
+var _0x665d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x665d[0];var Sequelize=require(_0x665d[1]);module[_0x665d[2]]= {penalty:{type:Sequelize[_0x665d[3]],defaultValue:0},assigned:{type:Sequelize[_0x665d[3]],defaultValue:0},queue:{type:Sequelize[_0x665d[4]]}}
\ No newline at end of file
index 6c79653..62b3bce 100644 (file)
@@ -1 +1 @@
-var _0x7956=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x7956[0];var _=require(_0x7956[1]);var util=require(_0x7956[2]);var logger=require(_0x7956[4])(_0x7956[3]);var attributes=require(_0x7956[5]);module[_0x7956[6]]= function(_0x8e49x5,_0x8e49x6){return _0x8e49x5[_0x7956[9]](_0x7956[7],attributes,{tableName:_0x7956[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x5452=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x5452[0];var _=require(_0x5452[1]);var util=require(_0x5452[2]);var logger=require(_0x5452[4])(_0x5452[3]);var attributes=require(_0x5452[5]);module[_0x5452[6]]= function(_0x61b7x5,_0x61b7x6){return _0x61b7x5[_0x5452[9]](_0x5452[7],attributes,{tableName:_0x5452[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index c24bc03..afe87fc 100644 (file)
@@ -1 +1 @@
-var _0xaa4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xaa4d[0];var _=require(_0xaa4d[1]);var util=require(_0xaa4d[2]);var moment=require(_0xaa4d[3]);var BPromise=require(_0xaa4d[4]);var db=require(_0xaa4d[6])[_0xaa4d[5]];var utils=require(_0xaa4d[7]);var logger=require(_0xaa4d[9])(_0xaa4d[8]);var jayson=require(_0xaa4d[10]);var client=jayson[_0xaa4d[12]][_0xaa4d[11]]({port:9002});function respondWithRpcPromise(_0x88f2xb,_0x88f2xc,_0x88f2xd){return  new BPromise(function(_0x88f2xe,_0x88f2xf){return client[_0xaa4d[25]](_0x88f2xb,_0x88f2xd)[_0xaa4d[24]](function(_0x88f2x11){logger[_0xaa4d[17]](_0xaa4d[13],_0x88f2xc,_0xaa4d[16]);logger[_0xaa4d[20]](_0xaa4d[18],_0x88f2xc,_0xaa4d[16],JSON[_0xaa4d[19]](_0x88f2x11));if(_0x88f2x11[_0xaa4d[14]]){if(_0x88f2x11[_0xaa4d[14]][_0xaa4d[21]]=== 500){logger[_0xaa4d[14]](_0xaa4d[13],_0x88f2xc,_0x88f2x11[_0xaa4d[14]][_0xaa4d[22]]);return _0x88f2xf(_0x88f2x11[_0xaa4d[14]][_0xaa4d[22]])};logger[_0xaa4d[14]](_0xaa4d[13],_0x88f2xc,_0x88f2x11[_0xaa4d[14]][_0xaa4d[22]]);return _0x88f2xe(_0x88f2x11[_0xaa4d[14]][_0xaa4d[22]])}else {logger[_0xaa4d[17]](_0xaa4d[13],_0x88f2xc,_0xaa4d[16]);_0x88f2xe(_0x88f2x11[_0xaa4d[23]][_0xaa4d[22]])}})[_0xaa4d[15]](function(_0x88f2x10){logger[_0xaa4d[14]](_0xaa4d[13],_0x88f2xc,_0x88f2x10);_0x88f2xf(_0x88f2x10)})})}
\ No newline at end of file
+var _0x9ab8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9ab8[0];var _=require(_0x9ab8[1]);var util=require(_0x9ab8[2]);var moment=require(_0x9ab8[3]);var BPromise=require(_0x9ab8[4]);var db=require(_0x9ab8[6])[_0x9ab8[5]];var utils=require(_0x9ab8[7]);var logger=require(_0x9ab8[9])(_0x9ab8[8]);var jayson=require(_0x9ab8[10]);var client=jayson[_0x9ab8[12]][_0x9ab8[11]]({port:9002});function respondWithRpcPromise(_0x40daxb,_0x40daxc,_0x40daxd){return  new BPromise(function(_0x40daxe,_0x40daxf){return client[_0x9ab8[25]](_0x40daxb,_0x40daxd)[_0x9ab8[24]](function(_0x40dax11){logger[_0x9ab8[17]](_0x9ab8[13],_0x40daxc,_0x9ab8[16]);logger[_0x9ab8[20]](_0x9ab8[18],_0x40daxc,_0x9ab8[16],JSON[_0x9ab8[19]](_0x40dax11));if(_0x40dax11[_0x9ab8[14]]){if(_0x40dax11[_0x9ab8[14]][_0x9ab8[21]]=== 500){logger[_0x9ab8[14]](_0x9ab8[13],_0x40daxc,_0x40dax11[_0x9ab8[14]][_0x9ab8[22]]);return _0x40daxf(_0x40dax11[_0x9ab8[14]][_0x9ab8[22]])};logger[_0x9ab8[14]](_0x9ab8[13],_0x40daxc,_0x40dax11[_0x9ab8[14]][_0x9ab8[22]]);return _0x40daxe(_0x40dax11[_0x9ab8[14]][_0x9ab8[22]])}else {logger[_0x9ab8[17]](_0x9ab8[13],_0x40daxc,_0x9ab8[16]);_0x40daxe(_0x40dax11[_0x9ab8[23]][_0x9ab8[22]])}})[_0x9ab8[15]](function(_0x40dax10){logger[_0x9ab8[14]](_0x9ab8[13],_0x40daxc,_0x40dax10);_0x40daxf(_0x40dax10)})})}
\ No newline at end of file
index 0cf2e22..aa38fa3 100644 (file)
@@ -1 +1 @@
-var _0x7893=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x7893[0];var multer=require(_0x7893[1]);var util=require(_0x7893[2]);var path=require(_0x7893[3]);var express=require(_0x7893[4]);var router=express.Router();var auth=require(_0x7893[5]);var config=require(_0x7893[6]);module[_0x7893[7]]= router
\ No newline at end of file
+var _0x64f8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x64f8[0];var multer=require(_0x64f8[1]);var util=require(_0x64f8[2]);var path=require(_0x64f8[3]);var express=require(_0x64f8[4]);var router=express.Router();var auth=require(_0x64f8[5]);var config=require(_0x64f8[6]);module[_0x64f8[7]]= router
\ No newline at end of file
index ed7ceca..96beff6 100644 (file)
@@ -1 +1 @@
-var _0xb085=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0xb085[0];var Sequelize=require(_0xb085[1]);module[_0xb085[2]]= {penalty:{type:Sequelize[_0xb085[3]],defaultValue:0},assigned:{type:Sequelize[_0xb085[3]],defaultValue:0},queue:{type:Sequelize[_0xb085[4]]}}
\ No newline at end of file
+var _0x3dda=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x3dda[0];var Sequelize=require(_0x3dda[1]);module[_0x3dda[2]]= {penalty:{type:Sequelize[_0x3dda[3]],defaultValue:0},assigned:{type:Sequelize[_0x3dda[3]],defaultValue:0},queue:{type:Sequelize[_0x3dda[4]]}}
\ No newline at end of file
index 69f9a95..230c027 100644 (file)
@@ -1 +1 @@
-var _0x44ee=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x44ee[0];var _=require(_0x44ee[1]);var util=require(_0x44ee[2]);var logger=require(_0x44ee[4])(_0x44ee[3]);var attributes=require(_0x44ee[5]);module[_0x44ee[6]]= function(_0x202dx5,_0x202dx6){return _0x202dx5[_0x44ee[9]](_0x44ee[7],attributes,{tableName:_0x44ee[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7bf0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x7bf0[0];var _=require(_0x7bf0[1]);var util=require(_0x7bf0[2]);var logger=require(_0x7bf0[4])(_0x7bf0[3]);var attributes=require(_0x7bf0[5]);module[_0x7bf0[6]]= function(_0x20eex5,_0x20eex6){return _0x20eex5[_0x7bf0[9]](_0x7bf0[7],attributes,{tableName:_0x7bf0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 5c44c79..7fe74f5 100644 (file)
@@ -1 +1 @@
-var _0xbf76=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbf76[0];var _=require(_0xbf76[1]);var util=require(_0xbf76[2]);var moment=require(_0xbf76[3]);var BPromise=require(_0xbf76[4]);var db=require(_0xbf76[6])[_0xbf76[5]];var utils=require(_0xbf76[7]);var logger=require(_0xbf76[9])(_0xbf76[8]);var jayson=require(_0xbf76[10]);var client=jayson[_0xbf76[12]][_0xbf76[11]]({port:9002});function respondWithRpcPromise(_0x412dxb,_0x412dxc,_0x412dxd){return  new BPromise(function(_0x412dxe,_0x412dxf){return client[_0xbf76[25]](_0x412dxb,_0x412dxd)[_0xbf76[24]](function(_0x412dx11){logger[_0xbf76[17]](_0xbf76[13],_0x412dxc,_0xbf76[16]);logger[_0xbf76[20]](_0xbf76[18],_0x412dxc,_0xbf76[16],JSON[_0xbf76[19]](_0x412dx11));if(_0x412dx11[_0xbf76[14]]){if(_0x412dx11[_0xbf76[14]][_0xbf76[21]]=== 500){logger[_0xbf76[14]](_0xbf76[13],_0x412dxc,_0x412dx11[_0xbf76[14]][_0xbf76[22]]);return _0x412dxf(_0x412dx11[_0xbf76[14]][_0xbf76[22]])};logger[_0xbf76[14]](_0xbf76[13],_0x412dxc,_0x412dx11[_0xbf76[14]][_0xbf76[22]]);return _0x412dxe(_0x412dx11[_0xbf76[14]][_0xbf76[22]])}else {logger[_0xbf76[17]](_0xbf76[13],_0x412dxc,_0xbf76[16]);_0x412dxe(_0x412dx11[_0xbf76[23]][_0xbf76[22]])}})[_0xbf76[15]](function(_0x412dx10){logger[_0xbf76[14]](_0xbf76[13],_0x412dxc,_0x412dx10);_0x412dxf(_0x412dx10)})})}
\ No newline at end of file
+var _0x93b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x93b8[0];var _=require(_0x93b8[1]);var util=require(_0x93b8[2]);var moment=require(_0x93b8[3]);var BPromise=require(_0x93b8[4]);var db=require(_0x93b8[6])[_0x93b8[5]];var utils=require(_0x93b8[7]);var logger=require(_0x93b8[9])(_0x93b8[8]);var jayson=require(_0x93b8[10]);var client=jayson[_0x93b8[12]][_0x93b8[11]]({port:9002});function respondWithRpcPromise(_0xe4adxb,_0xe4adxc,_0xe4adxd){return  new BPromise(function(_0xe4adxe,_0xe4adxf){return client[_0x93b8[25]](_0xe4adxb,_0xe4adxd)[_0x93b8[24]](function(_0xe4adx11){logger[_0x93b8[17]](_0x93b8[13],_0xe4adxc,_0x93b8[16]);logger[_0x93b8[20]](_0x93b8[18],_0xe4adxc,_0x93b8[16],JSON[_0x93b8[19]](_0xe4adx11));if(_0xe4adx11[_0x93b8[14]]){if(_0xe4adx11[_0x93b8[14]][_0x93b8[21]]=== 500){logger[_0x93b8[14]](_0x93b8[13],_0xe4adxc,_0xe4adx11[_0x93b8[14]][_0x93b8[22]]);return _0xe4adxf(_0xe4adx11[_0x93b8[14]][_0x93b8[22]])};logger[_0x93b8[14]](_0x93b8[13],_0xe4adxc,_0xe4adx11[_0x93b8[14]][_0x93b8[22]]);return _0xe4adxe(_0xe4adx11[_0x93b8[14]][_0x93b8[22]])}else {logger[_0x93b8[17]](_0x93b8[13],_0xe4adxc,_0x93b8[16]);_0xe4adxe(_0xe4adx11[_0x93b8[23]][_0x93b8[22]])}})[_0x93b8[15]](function(_0xe4adx10){logger[_0x93b8[14]](_0x93b8[13],_0xe4adxc,_0xe4adx10);_0xe4adxf(_0xe4adx10)})})}
\ No newline at end of file
index e8a71a1..7249442 100644 (file)
@@ -1 +1 @@
-var _0x736f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x736f[0];var multer=require(_0x736f[1]);var util=require(_0x736f[2]);var path=require(_0x736f[3]);var express=require(_0x736f[4]);var router=express.Router();var auth=require(_0x736f[5]);var config=require(_0x736f[6]);module[_0x736f[7]]= router
\ No newline at end of file
+var _0x6a6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x6a6a[0];var multer=require(_0x6a6a[1]);var util=require(_0x6a6a[2]);var path=require(_0x6a6a[3]);var express=require(_0x6a6a[4]);var router=express.Router();var auth=require(_0x6a6a[5]);var config=require(_0x6a6a[6]);module[_0x6a6a[7]]= router
\ No newline at end of file
index 36f9d28..8159334 100644 (file)
@@ -1 +1 @@
-var _0x8b95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52"];_0x8b95[0];var Sequelize=require(_0x8b95[1]);module[_0x8b95[2]]= {penalty:{type:Sequelize[_0x8b95[3]],defaultValue:0}}
\ No newline at end of file
+var _0x7ee7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52"];_0x7ee7[0];var Sequelize=require(_0x7ee7[1]);module[_0x7ee7[2]]= {penalty:{type:Sequelize[_0x7ee7[3]],defaultValue:0}}
\ No newline at end of file
index 361b85a..7aa8319 100644 (file)
@@ -1 +1 @@
-var _0x257e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x257e[0];var _=require(_0x257e[1]);var util=require(_0x257e[2]);var logger=require(_0x257e[4])(_0x257e[3]);var attributes=require(_0x257e[5]);module[_0x257e[6]]= function(_0x57f4x5,_0x57f4x6){return _0x57f4x5[_0x257e[9]](_0x257e[7],attributes,{tableName:_0x257e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x7bad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x7bad[0];var _=require(_0x7bad[1]);var util=require(_0x7bad[2]);var logger=require(_0x7bad[4])(_0x7bad[3]);var attributes=require(_0x7bad[5]);module[_0x7bad[6]]= function(_0x5bcax5,_0x5bcax6){return _0x5bcax5[_0x7bad[9]](_0x7bad[7],attributes,{tableName:_0x7bad[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index b874ef1..22731df 100644 (file)
@@ -1 +1 @@
-var _0xe421=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe421[0];var _=require(_0xe421[1]);var util=require(_0xe421[2]);var moment=require(_0xe421[3]);var BPromise=require(_0xe421[4]);var db=require(_0xe421[6])[_0xe421[5]];var utils=require(_0xe421[7]);var logger=require(_0xe421[9])(_0xe421[8]);var jayson=require(_0xe421[10]);var client=jayson[_0xe421[12]][_0xe421[11]]({port:9002});function respondWithRpcPromise(_0x5651xb,_0x5651xc,_0x5651xd){return  new BPromise(function(_0x5651xe,_0x5651xf){return client[_0xe421[25]](_0x5651xb,_0x5651xd)[_0xe421[24]](function(_0x5651x11){logger[_0xe421[17]](_0xe421[13],_0x5651xc,_0xe421[16]);logger[_0xe421[20]](_0xe421[18],_0x5651xc,_0xe421[16],JSON[_0xe421[19]](_0x5651x11));if(_0x5651x11[_0xe421[14]]){if(_0x5651x11[_0xe421[14]][_0xe421[21]]=== 500){logger[_0xe421[14]](_0xe421[13],_0x5651xc,_0x5651x11[_0xe421[14]][_0xe421[22]]);return _0x5651xf(_0x5651x11[_0xe421[14]][_0xe421[22]])};logger[_0xe421[14]](_0xe421[13],_0x5651xc,_0x5651x11[_0xe421[14]][_0xe421[22]]);return _0x5651xe(_0x5651x11[_0xe421[14]][_0xe421[22]])}else {logger[_0xe421[17]](_0xe421[13],_0x5651xc,_0xe421[16]);_0x5651xe(_0x5651x11[_0xe421[23]][_0xe421[22]])}})[_0xe421[15]](function(_0x5651x10){logger[_0xe421[14]](_0xe421[13],_0x5651xc,_0x5651x10);_0x5651xf(_0x5651x10)})})}
\ No newline at end of file
+var _0x5198=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5198[0];var _=require(_0x5198[1]);var util=require(_0x5198[2]);var moment=require(_0x5198[3]);var BPromise=require(_0x5198[4]);var db=require(_0x5198[6])[_0x5198[5]];var utils=require(_0x5198[7]);var logger=require(_0x5198[9])(_0x5198[8]);var jayson=require(_0x5198[10]);var client=jayson[_0x5198[12]][_0x5198[11]]({port:9002});function respondWithRpcPromise(_0x13c3xb,_0x13c3xc,_0x13c3xd){return  new BPromise(function(_0x13c3xe,_0x13c3xf){return client[_0x5198[25]](_0x13c3xb,_0x13c3xd)[_0x5198[24]](function(_0x13c3x11){logger[_0x5198[17]](_0x5198[13],_0x13c3xc,_0x5198[16]);logger[_0x5198[20]](_0x5198[18],_0x13c3xc,_0x5198[16],JSON[_0x5198[19]](_0x13c3x11));if(_0x13c3x11[_0x5198[14]]){if(_0x13c3x11[_0x5198[14]][_0x5198[21]]=== 500){logger[_0x5198[14]](_0x5198[13],_0x13c3xc,_0x13c3x11[_0x5198[14]][_0x5198[22]]);return _0x13c3xf(_0x13c3x11[_0x5198[14]][_0x5198[22]])};logger[_0x5198[14]](_0x5198[13],_0x13c3xc,_0x13c3x11[_0x5198[14]][_0x5198[22]]);return _0x13c3xe(_0x13c3x11[_0x5198[14]][_0x5198[22]])}else {logger[_0x5198[17]](_0x5198[13],_0x13c3xc,_0x5198[16]);_0x13c3xe(_0x13c3x11[_0x5198[23]][_0x5198[22]])}})[_0x5198[15]](function(_0x13c3x10){logger[_0x5198[14]](_0x5198[13],_0x13c3xc,_0x13c3x10);_0x13c3xf(_0x13c3x10)})})}
\ No newline at end of file
index 370623b..0c283d7 100644 (file)
@@ -1 +1 @@
-var _0x34ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x34ed[0];var multer=require(_0x34ed[1]);var util=require(_0x34ed[2]);var path=require(_0x34ed[3]);var express=require(_0x34ed[4]);var router=express.Router();var auth=require(_0x34ed[5]);var config=require(_0x34ed[6]);module[_0x34ed[7]]= router
\ No newline at end of file
+var _0xedff=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xedff[0];var multer=require(_0xedff[1]);var util=require(_0xedff[2]);var path=require(_0xedff[3]);var express=require(_0xedff[4]);var router=express.Router();var auth=require(_0xedff[5]);var config=require(_0xedff[6]);module[_0xedff[7]]= router
\ No newline at end of file
index 31fc5df..a3c0717 100644 (file)
@@ -1 +1 @@
-var _0xeca9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x62\x79\x20\x41\x73\x74\x65\x72\x69\x73\x6B","\x53\x54\x52\x49\x4E\x47","\x71\x75\x65\x75\x65\x5F\x69\x6E\x74\x65\x72\x66\x61\x63\x65"];_0xeca9[0];var Sequelize=require(_0xeca9[1]);module[_0xeca9[2]]= {uniqueid:{type:Sequelize[_0xeca9[3]],primaryKey:true,autoIncrement:true,comment:_0xeca9[4]},membername:{type:Sequelize[_0xeca9[5]],allowNull:false,comment:_0xeca9[4]},UserId:{type:Sequelize[_0xeca9[3]],allowNull:false},queue_name:{type:Sequelize[_0xeca9[5]],allowNull:false,unique:_0xeca9[6],comment:_0xeca9[4]},VoiceQueueId:{type:Sequelize[_0xeca9[3]],allowNull:false},interface:{type:Sequelize[_0xeca9[5]],allowNull:false,unique:_0xeca9[6],comment:_0xeca9[4]},penalty:{type:Sequelize.INTEGER(11),defaultValue:0,comment:_0xeca9[4]},paused:{type:Sequelize.INTEGER(11),defaultValue:0,comment:_0xeca9[4]}}
\ No newline at end of file
+var _0xecef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x62\x79\x20\x41\x73\x74\x65\x72\x69\x73\x6B","\x53\x54\x52\x49\x4E\x47","\x71\x75\x65\x75\x65\x5F\x69\x6E\x74\x65\x72\x66\x61\x63\x65"];_0xecef[0];var Sequelize=require(_0xecef[1]);module[_0xecef[2]]= {uniqueid:{type:Sequelize[_0xecef[3]],primaryKey:true,autoIncrement:true,comment:_0xecef[4]},membername:{type:Sequelize[_0xecef[5]],allowNull:false,comment:_0xecef[4]},UserId:{type:Sequelize[_0xecef[3]],allowNull:false},queue_name:{type:Sequelize[_0xecef[5]],allowNull:false,unique:_0xecef[6],comment:_0xecef[4]},VoiceQueueId:{type:Sequelize[_0xecef[3]],allowNull:false},interface:{type:Sequelize[_0xecef[5]],allowNull:false,unique:_0xecef[6],comment:_0xecef[4]},penalty:{type:Sequelize.INTEGER(11),defaultValue:0,comment:_0xecef[4]},paused:{type:Sequelize.INTEGER(11),defaultValue:0,comment:_0xecef[4]}}
\ No newline at end of file
index 3040467..e20c606 100644 (file)
@@ -1 +1 @@
-var _0xfbb3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x76\x65\x6E\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x3A","\x69\x64","\x65\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x68\x6F\x6F\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0xfbb3[0];var EventEmitter=require(_0xfbb3[1]);var UserVoiceQueueRt=require(_0xfbb3[4])[_0xfbb3[3]][_0xfbb3[2]];var UserVoiceQueueRtEvents= new EventEmitter();UserVoiceQueueRtEvents[_0xfbb3[5]](0);var events={afterCreate:_0xfbb3[6],afterUpdate:_0xfbb3[7],afterDestroy:_0xfbb3[8]};function emitEvent(event){return function(_0x7321x7,_0x7321x8,_0x7321x9){UserVoiceQueueRtEvents[_0xfbb3[11]](event+ _0xfbb3[9]+ _0x7321x7[_0xfbb3[10]],_0x7321x7);UserVoiceQueueRtEvents[_0xfbb3[11]](event,_0x7321x7);_0x7321x9(null)}}for(var e in events){if(events[_0xfbb3[12]](e)){var event=events[e];UserVoiceQueueRt[_0xfbb3[13]](e,emitEvent(event))}};module[_0xfbb3[14]]= UserVoiceQueueRtEvents
\ No newline at end of file
+var _0x45d1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x76\x65\x6E\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x3A","\x69\x64","\x65\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x68\x6F\x6F\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0x45d1[0];var EventEmitter=require(_0x45d1[1]);var UserVoiceQueueRt=require(_0x45d1[4])[_0x45d1[3]][_0x45d1[2]];var UserVoiceQueueRtEvents= new EventEmitter();UserVoiceQueueRtEvents[_0x45d1[5]](0);var events={afterCreate:_0x45d1[6],afterUpdate:_0x45d1[7],afterDestroy:_0x45d1[8]};function emitEvent(event){return function(_0x5344x7,_0x5344x8,_0x5344x9){UserVoiceQueueRtEvents[_0x45d1[11]](event+ _0x45d1[9]+ _0x5344x7[_0x45d1[10]],_0x5344x7);UserVoiceQueueRtEvents[_0x45d1[11]](event,_0x5344x7);_0x5344x9(null)}}for(var e in events){if(events[_0x45d1[12]](e)){var event=events[e];UserVoiceQueueRt[_0x45d1[13]](e,emitEvent(event))}};module[_0x45d1[14]]= UserVoiceQueueRtEvents
\ No newline at end of file
index d0a8079..0120a54 100644 (file)
@@ -1 +1 @@
-var _0x7d32=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x72\x74","\x64\x65\x66\x69\x6E\x65"];_0x7d32[0];var _=require(_0x7d32[1]);var util=require(_0x7d32[2]);var logger=require(_0x7d32[4])(_0x7d32[3]);var attributes=require(_0x7d32[5]);module[_0x7d32[6]]= function(_0x3afdx5,_0x3afdx6){return _0x3afdx5[_0x7d32[9]](_0x7d32[7],attributes,{tableName:_0x7d32[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xef72=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x72\x74","\x64\x65\x66\x69\x6E\x65"];_0xef72[0];var _=require(_0xef72[1]);var util=require(_0xef72[2]);var logger=require(_0xef72[4])(_0xef72[3]);var attributes=require(_0xef72[5]);module[_0xef72[6]]= function(_0xcdb6x5,_0xcdb6x6){return _0xcdb6x5[_0xef72[9]](_0xef72[7],attributes,{tableName:_0xef72[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 15fa100..51e0294 100644 (file)
@@ -1 +1 @@
-var _0x5e0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x43\x4F\x55\x4E\x54","\x49\x46","\x60\x70\x61\x75\x73\x65\x64\x60\x20\x3D\x20\x31\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74"];_0x5e0b[0];var _=require(_0x5e0b[1]);var util=require(_0x5e0b[2]);var moment=require(_0x5e0b[3]);var BPromise=require(_0x5e0b[4]);var db=require(_0x5e0b[6])[_0x5e0b[5]];var utils=require(_0x5e0b[7]);var logger=require(_0x5e0b[9])(_0x5e0b[8]);var jayson=require(_0x5e0b[10]);var client=jayson[_0x5e0b[12]][_0x5e0b[11]]({port:9002});var socket=require(_0x5e0b[14])({host:_0x5e0b[13],port:6379});require(_0x5e0b[16])[_0x5e0b[15]](socket);function respondWithRpcPromise(_0x5bd2xc,_0x5bd2xd,_0x5bd2xe){return  new BPromise(function(_0x5bd2xf,_0x5bd2x10){return client[_0x5e0b[29]](_0x5bd2xc,_0x5bd2xe)[_0x5e0b[28]](function(_0x5bd2x12){logger[_0x5e0b[21]](_0x5e0b[17],_0x5bd2xd,_0x5e0b[20]);logger[_0x5e0b[24]](_0x5e0b[22],_0x5bd2xd,_0x5e0b[20],JSON[_0x5e0b[23]](_0x5bd2x12));if(_0x5bd2x12[_0x5e0b[18]]){if(_0x5bd2x12[_0x5e0b[18]][_0x5e0b[25]]=== 500){logger[_0x5e0b[18]](_0x5e0b[17],_0x5bd2xd,_0x5bd2x12[_0x5e0b[18]][_0x5e0b[26]]);return _0x5bd2x10(_0x5bd2x12[_0x5e0b[18]][_0x5e0b[26]])};logger[_0x5e0b[18]](_0x5e0b[17],_0x5bd2xd,_0x5bd2x12[_0x5e0b[18]][_0x5e0b[26]]);return _0x5bd2xf(_0x5bd2x12[_0x5e0b[18]][_0x5e0b[26]])}else {logger[_0x5e0b[21]](_0x5e0b[17],_0x5bd2xd,_0x5e0b[20]);_0x5bd2xf(_0x5bd2x12[_0x5e0b[27]][_0x5e0b[26]])}})[_0x5e0b[19]](function(_0x5bd2x11){logger[_0x5e0b[18]](_0x5e0b[17],_0x5bd2xd,_0x5bd2x11);_0x5bd2x10(_0x5bd2x11)})})}exports[_0x5e0b[30]]= function(_0x5bd2xe){var _0x5bd2x13=this;return  new Promise(function(_0x5bd2xf,_0x5bd2x10){return db[_0x5e0b[42]][_0x5e0b[41]]({raw:_0x5bd2xe[_0x5e0b[31]]?(_0x5bd2xe[_0x5e0b[31]][_0x5e0b[32]]=== undefined)?true:false:true,where:_0x5bd2xe[_0x5e0b[31]]?_0x5bd2xe[_0x5e0b[31]][_0x5e0b[33]]|| null:null,attributes:[[db[_0x5e0b[38]][_0x5e0b[39]](_0x5e0b[34],db[_0x5e0b[38]][_0x5e0b[39]](_0x5e0b[35],db[_0x5e0b[38]][_0x5e0b[37]](_0x5e0b[36]))),_0x5e0b[40]]]})[_0x5e0b[28]](function(_0x5bd2x12){logger[_0x5e0b[21]](_0x5e0b[30],_0x5bd2xe);logger[_0x5e0b[24]](_0x5e0b[30],_0x5bd2xe,JSON[_0x5e0b[23]](_0x5bd2x12));_0x5bd2xf(_0x5bd2x12)})[_0x5e0b[19]](function(_0x5bd2x11){logger[_0x5e0b[18]](_0x5e0b[30],_0x5bd2x11[_0x5e0b[26]],_0x5bd2xe);_0x5bd2x10(_0x5bd2x13[_0x5e0b[18]](500,_0x5bd2x11[_0x5e0b[26]]))})})}
\ No newline at end of file
+var _0xdc8e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x43\x4F\x55\x4E\x54","\x49\x46","\x60\x70\x61\x75\x73\x65\x64\x60\x20\x3D\x20\x31\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74"];_0xdc8e[0];var _=require(_0xdc8e[1]);var util=require(_0xdc8e[2]);var moment=require(_0xdc8e[3]);var BPromise=require(_0xdc8e[4]);var db=require(_0xdc8e[6])[_0xdc8e[5]];var utils=require(_0xdc8e[7]);var logger=require(_0xdc8e[9])(_0xdc8e[8]);var jayson=require(_0xdc8e[10]);var client=jayson[_0xdc8e[12]][_0xdc8e[11]]({port:9002});var socket=require(_0xdc8e[14])({host:_0xdc8e[13],port:6379});require(_0xdc8e[16])[_0xdc8e[15]](socket);function respondWithRpcPromise(_0x99a8xc,_0x99a8xd,_0x99a8xe){return  new BPromise(function(_0x99a8xf,_0x99a8x10){return client[_0xdc8e[29]](_0x99a8xc,_0x99a8xe)[_0xdc8e[28]](function(_0x99a8x12){logger[_0xdc8e[21]](_0xdc8e[17],_0x99a8xd,_0xdc8e[20]);logger[_0xdc8e[24]](_0xdc8e[22],_0x99a8xd,_0xdc8e[20],JSON[_0xdc8e[23]](_0x99a8x12));if(_0x99a8x12[_0xdc8e[18]]){if(_0x99a8x12[_0xdc8e[18]][_0xdc8e[25]]=== 500){logger[_0xdc8e[18]](_0xdc8e[17],_0x99a8xd,_0x99a8x12[_0xdc8e[18]][_0xdc8e[26]]);return _0x99a8x10(_0x99a8x12[_0xdc8e[18]][_0xdc8e[26]])};logger[_0xdc8e[18]](_0xdc8e[17],_0x99a8xd,_0x99a8x12[_0xdc8e[18]][_0xdc8e[26]]);return _0x99a8xf(_0x99a8x12[_0xdc8e[18]][_0xdc8e[26]])}else {logger[_0xdc8e[21]](_0xdc8e[17],_0x99a8xd,_0xdc8e[20]);_0x99a8xf(_0x99a8x12[_0xdc8e[27]][_0xdc8e[26]])}})[_0xdc8e[19]](function(_0x99a8x11){logger[_0xdc8e[18]](_0xdc8e[17],_0x99a8xd,_0x99a8x11);_0x99a8x10(_0x99a8x11)})})}exports[_0xdc8e[30]]= function(_0x99a8xe){var _0x99a8x13=this;return  new Promise(function(_0x99a8xf,_0x99a8x10){return db[_0xdc8e[42]][_0xdc8e[41]]({raw:_0x99a8xe[_0xdc8e[31]]?(_0x99a8xe[_0xdc8e[31]][_0xdc8e[32]]=== undefined)?true:false:true,where:_0x99a8xe[_0xdc8e[31]]?_0x99a8xe[_0xdc8e[31]][_0xdc8e[33]]|| null:null,attributes:[[db[_0xdc8e[38]][_0xdc8e[39]](_0xdc8e[34],db[_0xdc8e[38]][_0xdc8e[39]](_0xdc8e[35],db[_0xdc8e[38]][_0xdc8e[37]](_0xdc8e[36]))),_0xdc8e[40]]]})[_0xdc8e[28]](function(_0x99a8x12){logger[_0xdc8e[21]](_0xdc8e[30],_0x99a8xe);logger[_0xdc8e[24]](_0xdc8e[30],_0x99a8xe,JSON[_0xdc8e[23]](_0x99a8x12));_0x99a8xf(_0x99a8x12)})[_0xdc8e[19]](function(_0x99a8x11){logger[_0xdc8e[18]](_0xdc8e[30],_0x99a8x11[_0xdc8e[26]],_0x99a8xe);_0x99a8x10(_0x99a8x13[_0xdc8e[18]](500,_0x99a8x11[_0xdc8e[26]]))})})}
\ No newline at end of file
index eb3fc4d..d56f881 100644 (file)
@@ -1 +1 @@
-var _0x9937=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x65\x76\x65\x6E\x74\x73","\x73\x61\x76\x65","\x72\x65\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65","\x65\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x3A","\x6F\x6E"];_0x9937[0];var UserVoiceQueueRtEvents=require(_0x9937[1]);var events=[_0x9937[2],_0x9937[3],_0x9937[4]];function createListener(_0x3ef6x4,_0x3ef6x5){return function(_0x3ef6x6){_0x3ef6x5[_0x9937[5]](_0x3ef6x4,_0x3ef6x6)}}function removeListener(_0x3ef6x4,_0x3ef6x8){return function(){UserVoiceQueueRtEvents[_0x9937[6]](_0x3ef6x4,_0x3ef6x8)}}exports[_0x9937[7]]= function(_0x3ef6x5){for(var _0x3ef6x9=0,_0x3ef6xa=events[_0x9937[8]];_0x3ef6x9< _0x3ef6xa;_0x3ef6x9++){var _0x3ef6x4=events[_0x3ef6x9];var _0x3ef6x8=createListener(_0x9937[9]+ _0x3ef6x4,_0x3ef6x5);UserVoiceQueueRtEvents[_0x9937[10]](_0x3ef6x4,_0x3ef6x8)}}
\ No newline at end of file
+var _0x8192=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x65\x76\x65\x6E\x74\x73","\x73\x61\x76\x65","\x72\x65\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65","\x65\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x3A","\x6F\x6E"];_0x8192[0];var UserVoiceQueueRtEvents=require(_0x8192[1]);var events=[_0x8192[2],_0x8192[3],_0x8192[4]];function createListener(_0x5a78x4,_0x5a78x5){return function(_0x5a78x6){_0x5a78x5[_0x8192[5]](_0x5a78x4,_0x5a78x6)}}function removeListener(_0x5a78x4,_0x5a78x8){return function(){UserVoiceQueueRtEvents[_0x8192[6]](_0x5a78x4,_0x5a78x8)}}exports[_0x8192[7]]= function(_0x5a78x5){for(var _0x5a78x9=0,_0x5a78xa=events[_0x8192[8]];_0x5a78x9< _0x5a78xa;_0x5a78x9++){var _0x5a78x4=events[_0x5a78x9];var _0x5a78x8=createListener(_0x8192[9]+ _0x5a78x4,_0x5a78x5);UserVoiceQueueRtEvents[_0x8192[10]](_0x5a78x4,_0x5a78x8)}}
\ No newline at end of file
index 8614037..3270ff0 100644 (file)
@@ -1 +1 @@
-var _0x2631=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2631[0];var multer=require(_0x2631[1]);var util=require(_0x2631[2]);var path=require(_0x2631[3]);var express=require(_0x2631[4]);var router=express.Router();var auth=require(_0x2631[5]);var config=require(_0x2631[6]);var controller=require(_0x2631[7]);router[_0x2631[11]](_0x2631[8],auth[_0x2631[9]](),controller[_0x2631[10]]);router[_0x2631[11]](_0x2631[12],auth[_0x2631[9]](),controller[_0x2631[13]]);router[_0x2631[15]](_0x2631[8],auth[_0x2631[9]](),controller[_0x2631[14]]);router[_0x2631[17]](_0x2631[12],auth[_0x2631[9]](),controller[_0x2631[16]]);router[_0x2631[19]](_0x2631[12],auth[_0x2631[9]](),controller[_0x2631[18]]);module[_0x2631[20]]= router
\ No newline at end of file
+var _0x1de3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1de3[0];var multer=require(_0x1de3[1]);var util=require(_0x1de3[2]);var path=require(_0x1de3[3]);var express=require(_0x1de3[4]);var router=express.Router();var auth=require(_0x1de3[5]);var config=require(_0x1de3[6]);var controller=require(_0x1de3[7]);router[_0x1de3[11]](_0x1de3[8],auth[_0x1de3[9]](),controller[_0x1de3[10]]);router[_0x1de3[11]](_0x1de3[12],auth[_0x1de3[9]](),controller[_0x1de3[13]]);router[_0x1de3[15]](_0x1de3[8],auth[_0x1de3[9]](),controller[_0x1de3[14]]);router[_0x1de3[17]](_0x1de3[12],auth[_0x1de3[9]](),controller[_0x1de3[16]]);router[_0x1de3[19]](_0x1de3[12],auth[_0x1de3[9]](),controller[_0x1de3[18]]);module[_0x1de3[20]]= router
\ No newline at end of file
index 5d89c89..19d1213 100644 (file)
@@ -1 +1 @@
-var _0xb266=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xb266[0];var Sequelize=require(_0xb266[1]);module[_0xb266[2]]= {name:{type:Sequelize[_0xb266[3]],unique:_0xb266[4],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0xb266[3]]}}
\ No newline at end of file
+var _0xc9c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xc9c8[0];var Sequelize=require(_0xc9c8[1]);module[_0xc9c8[2]]= {name:{type:Sequelize[_0xc9c8[3]],unique:_0xc9c8[4],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0xc9c8[3]]}}
\ No newline at end of file
index fb214b8..239b91e 100644 (file)
@@ -1 +1 @@
-var _0x7f3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x7f3f[0];var jsonpatch=require(_0x7f3f[1]);var rp=require(_0x7f3f[2]);var moment=require(_0x7f3f[3]);var BPromise=require(_0x7f3f[4]);var util=require(_0x7f3f[5]);var path=require(_0x7f3f[6]);var sox=require(_0x7f3f[7]);var ejs=require(_0x7f3f[8]);var fs=require(_0x7f3f[9]);var _=require(_0x7f3f[10]);var squel=require(_0x7f3f[11]);var crypto=require(_0x7f3f[12]);var jsforce=require(_0x7f3f[13]);var toCsv=require(_0x7f3f[14]);var qs=require(_0x7f3f[15]);var logger=require(_0x7f3f[17])(_0x7f3f[16]);var utils=require(_0x7f3f[18]);var config=require(_0x7f3f[19]);var db=require(_0x7f3f[21])[_0x7f3f[20]];function respondWithStatusCode(_0x725cx15,_0x725cx16,_0x725cx17){_0x725cx16= _0x725cx16|| 204;return function(_0x725cx18){if(_0x725cx18){logger[_0x7f3f[24]](_0x7f3f[22],_0x725cx17,_0x725cx16,_0x7f3f[23]);logger[_0x7f3f[26]](_0x7f3f[25],_0x725cx17,_0x725cx16,_0x7f3f[23]);return _0x725cx15[_0x7f3f[27]](_0x725cx16)};return _0x725cx15[_0x7f3f[29]](304)[_0x7f3f[28]]()}}function respondWithResult(_0x725cx15,_0x725cx16,_0x725cx17){_0x725cx16= _0x725cx16|| 200;return function(_0x725cx18){if(_0x725cx18){logger[_0x7f3f[24]](_0x7f3f[22],_0x725cx17,_0x725cx16,_0x7f3f[30]);logger[_0x7f3f[26]](_0x7f3f[25],_0x725cx17,_0x725cx16,_0x7f3f[30],JSON[_0x7f3f[31]](_0x725cx18));return _0x725cx15[_0x7f3f[29]](_0x725cx16)[_0x7f3f[32]](_0x725cx18)};return _0x725cx15[_0x7f3f[29]](304)[_0x7f3f[28]]()}}function respondWithFilteredResult(_0x725cx15,_0x725cx1b,_0x725cx17){return function(_0x725cx18){if(_0x725cx18){var _0x725cx1c=_0x725cx18[_0x7f3f[33]],_0x725cx1d=_0x725cx1b[_0x7f3f[34]],_0x725cx1e=_0x725cx1b[_0x7f3f[34]]+ _0x725cx1b[_0x7f3f[35]],_0x725cx16;if(_0x725cx1e>= _0x725cx1c){_0x725cx1e= _0x725cx1c;_0x725cx16= 200}else {_0x725cx16= 206};_0x725cx15[_0x7f3f[29]](_0x725cx16);logger[_0x7f3f[24]](_0x7f3f[22],_0x725cx17,_0x725cx16,_0x7f3f[36]);logger[_0x7f3f[26]](_0x7f3f[25],_0x725cx17,_0x725cx16,_0x7f3f[30],JSON[_0x7f3f[31]](_0x725cx18));return _0x725cx15[_0x7f3f[40]](_0x7f3f[37],_0x725cx1d+ _0x7f3f[38]+ _0x725cx1e+ _0x7f3f[39]+ _0x725cx1c)[_0x7f3f[32]](_0x725cx18)};return null}}function patchUpdates(_0x725cx20){return function(_0x725cx18){try{jsonpatch[_0x7f3f[41]](_0x725cx18,_0x725cx20,true)}catch(err){return BPromise[_0x7f3f[42]](err)};return _0x725cx18[_0x7f3f[43]]()}}function saveUpdates(_0x725cx22,_0x725cx16,_0x725cx17){return function(_0x725cx18){if(_0x725cx18){return _0x725cx18[_0x7f3f[46]](_0x725cx22)[_0x7f3f[45]](function(_0x725cx23){logger[_0x7f3f[24]](_0x7f3f[22],_0x725cx17,_0x725cx16,_0x7f3f[44]);logger[_0x7f3f[26]](_0x7f3f[25],_0x725cx17,_0x725cx16,_0x7f3f[44],JSON[_0x7f3f[31]](_0x725cx18));return _0x725cx23})};return null}}function removeEntity(_0x725cx15,_0x725cx16,_0x725cx17){return function(_0x725cx18){if(_0x725cx18){return _0x725cx18[_0x7f3f[48]]()[_0x7f3f[45]](function(){logger[_0x7f3f[24]](_0x7f3f[22],_0x725cx17,_0x725cx16,_0x7f3f[47]);logger[_0x7f3f[26]](_0x7f3f[25],_0x725cx17,_0x725cx16,_0x7f3f[47],JSON[_0x7f3f[31]](_0x725cx18));_0x725cx15[_0x7f3f[29]](204)[_0x7f3f[28]]()})}}}function handleEntityNotFound(_0x725cx15,_0x725cx16,_0x725cx17){return function(_0x725cx18){if(!_0x725cx18){logger[_0x7f3f[50]](_0x7f3f[22],_0x725cx17,404,_0x7f3f[49]);_0x725cx15[_0x7f3f[29]](404)[_0x7f3f[28]]();return null};return _0x725cx18}}function handleError(_0x725cx15,_0x725cx16,_0x725cx17){_0x725cx16= _0x725cx16|| 500;return function(_0x725cx27){logger[_0x7f3f[50]](_0x7f3f[22],_0x725cx17,_0x725cx16,JSON[_0x7f3f[31]](_0x725cx27));delete _0x725cx27[_0x7f3f[51]];_0x725cx15[_0x7f3f[29]](_0x725cx16)[_0x7f3f[52]](_0x725cx27)}}exports[_0x7f3f[53]]= function(_0x725cx28,_0x725cx15){var _0x725cx1b={},_0x725cx29={};_0x725cx29[_0x7f3f[54]]= _[_0x7f3f[57]](db[_0x7f3f[56]][_0x7f3f[55]]);_0x725cx29[_0x7f3f[58]]= _[_0x7f3f[57]](_0x725cx28[_0x7f3f[58]]);_0x725cx29[_0x7f3f[59]]= _[_0x7f3f[60]](_0x725cx29[_0x7f3f[54]],_0x725cx29[_0x7f3f[58]]);_0x725cx1b[_0x7f3f[61]]= _[_0x7f3f[60]](_0x725cx29[_0x7f3f[54]],qs[_0x7f3f[62]](_0x725cx28[_0x7f3f[58]][_0x7f3f[62]]));_0x725cx1b[_0x7f3f[61]]= (_0x725cx1b[_0x7f3f[61]][_0x7f3f[63]])?_0x725cx1b[_0x7f3f[61]]:_0x725cx29[_0x7f3f[54]];if(!_0x725cx28[_0x7f3f[58]][_0x7f3f[65]](_0x7f3f[64])){_0x725cx1b[_0x7f3f[35]]= qs[_0x7f3f[35]](_0x725cx28[_0x7f3f[58]][_0x7f3f[35]]);_0x725cx1b[_0x7f3f[34]]= qs[_0x7f3f[34]](_0x725cx28[_0x7f3f[58]][_0x7f3f[34]])};_0x725cx1b[_0x7f3f[66]]= qs[_0x7f3f[67]](_0x725cx28[_0x7f3f[58]][_0x7f3f[67]]);_0x725cx1b[_0x7f3f[68]]= qs[_0x7f3f[59]](_[_0x7f3f[69]](_0x725cx28[_0x7f3f[58]],_0x725cx29[_0x7f3f[59]]));if(_0x725cx28[_0x7f3f[58]][_0x7f3f[70]]){_0x725cx1b[_0x7f3f[68]]= _[_0x7f3f[73]](_0x725cx1b[_0x7f3f[68]],{$or:_[_0x7f3f[72]](_0x725cx1b[_0x7f3f[61]],function(_0x725cx2a){var _0x725cx2b={};_0x725cx2b[_0x725cx2a]= {$like:_0x7f3f[71]+ _0x725cx28[_0x7f3f[58]][_0x7f3f[70]]+ _0x7f3f[71]};return _0x725cx2b})})};_0x725cx1b= _[_0x7f3f[73]]({},_0x725cx1b,_0x725cx28[_0x7f3f[74]]);return db[_0x7f3f[56]][_0x7f3f[76]](_0x725cx1b)[_0x7f3f[45]](respondWithFilteredResult(_0x725cx15,_0x725cx1b,_0x7f3f[53]))[_0x7f3f[75]](handleError(_0x725cx15,null,_0x7f3f[53]))};exports[_0x7f3f[77]]= function(_0x725cx28,_0x725cx15){var _0x725cx1b={raw:true,where:{id:_0x725cx28[_0x7f3f[79]][_0x7f3f[78]]}},_0x725cx29={};_0x725cx29[_0x7f3f[54]]= _[_0x7f3f[57]](db[_0x7f3f[56]][_0x7f3f[55]]);_0x725cx29[_0x7f3f[58]]= _[_0x7f3f[57]](_0x725cx28[_0x7f3f[58]]);_0x725cx29[_0x7f3f[59]]= _[_0x7f3f[60]](_0x725cx29[_0x7f3f[54]],_0x725cx29[_0x7f3f[58]]);_0x725cx1b[_0x7f3f[61]]= _[_0x7f3f[60]](_0x725cx29[_0x7f3f[54]],qs[_0x7f3f[62]](_0x725cx28[_0x7f3f[58]][_0x7f3f[62]]));_0x725cx1b[_0x7f3f[61]]= (_0x725cx1b[_0x7f3f[61]][_0x7f3f[63]])?_0x725cx1b[_0x7f3f[61]]:_0x725cx29[_0x7f3f[54]];_0x725cx1b= _[_0x7f3f[73]]({},_0x725cx1b,_0x725cx28[_0x7f3f[74]]);return db[_0x7f3f[56]][_0x7f3f[80]](_0x725cx1b)[_0x7f3f[45]](handleEntityNotFound(_0x725cx15,null,_0x7f3f[77]))[_0x7f3f[45]](respondWithResult(_0x725cx15,null,_0x7f3f[77]))[_0x7f3f[75]](handleError(_0x725cx15,null,_0x7f3f[77]))};exports[_0x7f3f[81]]= function(_0x725cx28,_0x725cx15){return db[_0x7f3f[56]][_0x7f3f[81]](_0x725cx28[_0x7f3f[82]],{})[_0x7f3f[45]](respondWithResult(_0x725cx15,201,_0x7f3f[81]))[_0x7f3f[75]](handleError(_0x725cx15,null,_0x7f3f[81]))};exports[_0x7f3f[46]]= function(_0x725cx28,_0x725cx15){if(_0x725cx28[_0x7f3f[82]][_0x7f3f[78]]){delete _0x725cx28[_0x7f3f[82]][_0x7f3f[78]]};return db[_0x7f3f[56]][_0x7f3f[80]]({where:{id:_0x725cx28[_0x7f3f[79]][_0x7f3f[78]]}})[_0x7f3f[45]](handleEntityNotFound(_0x725cx15,null,_0x7f3f[46]))[_0x7f3f[45]](saveUpdates(_0x725cx28[_0x7f3f[82]],null,_0x7f3f[46]))[_0x7f3f[45]](respondWithResult(_0x725cx15,null,_0x7f3f[46]))[_0x7f3f[75]](handleError(_0x725cx15,null,_0x7f3f[46]))};exports[_0x7f3f[48]]= function(_0x725cx28,_0x725cx15){return db[_0x7f3f[56]][_0x7f3f[80]]({where:{id:_0x725cx28[_0x7f3f[79]][_0x7f3f[78]]}})[_0x7f3f[45]](handleEntityNotFound(_0x725cx15,null,_0x7f3f[48]))[_0x7f3f[45]](removeEntity(_0x725cx15,null,_0x7f3f[48]))[_0x7f3f[75]](handleError(_0x725cx15,null,_0x7f3f[48]))}
\ No newline at end of file
+var _0x88e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x88e2[0];var jsonpatch=require(_0x88e2[1]);var rp=require(_0x88e2[2]);var moment=require(_0x88e2[3]);var BPromise=require(_0x88e2[4]);var util=require(_0x88e2[5]);var path=require(_0x88e2[6]);var sox=require(_0x88e2[7]);var ejs=require(_0x88e2[8]);var fs=require(_0x88e2[9]);var _=require(_0x88e2[10]);var squel=require(_0x88e2[11]);var crypto=require(_0x88e2[12]);var jsforce=require(_0x88e2[13]);var toCsv=require(_0x88e2[14]);var qs=require(_0x88e2[15]);var logger=require(_0x88e2[17])(_0x88e2[16]);var utils=require(_0x88e2[18]);var config=require(_0x88e2[19]);var db=require(_0x88e2[21])[_0x88e2[20]];function respondWithStatusCode(_0x1e37x15,_0x1e37x16,_0x1e37x17){_0x1e37x16= _0x1e37x16|| 204;return function(_0x1e37x18){if(_0x1e37x18){logger[_0x88e2[24]](_0x88e2[22],_0x1e37x17,_0x1e37x16,_0x88e2[23]);logger[_0x88e2[26]](_0x88e2[25],_0x1e37x17,_0x1e37x16,_0x88e2[23]);return _0x1e37x15[_0x88e2[27]](_0x1e37x16)};return _0x1e37x15[_0x88e2[29]](304)[_0x88e2[28]]()}}function respondWithResult(_0x1e37x15,_0x1e37x16,_0x1e37x17){_0x1e37x16= _0x1e37x16|| 200;return function(_0x1e37x18){if(_0x1e37x18){logger[_0x88e2[24]](_0x88e2[22],_0x1e37x17,_0x1e37x16,_0x88e2[30]);logger[_0x88e2[26]](_0x88e2[25],_0x1e37x17,_0x1e37x16,_0x88e2[30],JSON[_0x88e2[31]](_0x1e37x18));return _0x1e37x15[_0x88e2[29]](_0x1e37x16)[_0x88e2[32]](_0x1e37x18)};return _0x1e37x15[_0x88e2[29]](304)[_0x88e2[28]]()}}function respondWithFilteredResult(_0x1e37x15,_0x1e37x1b,_0x1e37x17){return function(_0x1e37x18){if(_0x1e37x18){var _0x1e37x1c=_0x1e37x18[_0x88e2[33]],_0x1e37x1d=_0x1e37x1b[_0x88e2[34]],_0x1e37x1e=_0x1e37x1b[_0x88e2[34]]+ _0x1e37x1b[_0x88e2[35]],_0x1e37x16;if(_0x1e37x1e>= _0x1e37x1c){_0x1e37x1e= _0x1e37x1c;_0x1e37x16= 200}else {_0x1e37x16= 206};_0x1e37x15[_0x88e2[29]](_0x1e37x16);logger[_0x88e2[24]](_0x88e2[22],_0x1e37x17,_0x1e37x16,_0x88e2[36]);logger[_0x88e2[26]](_0x88e2[25],_0x1e37x17,_0x1e37x16,_0x88e2[30],JSON[_0x88e2[31]](_0x1e37x18));return _0x1e37x15[_0x88e2[40]](_0x88e2[37],_0x1e37x1d+ _0x88e2[38]+ _0x1e37x1e+ _0x88e2[39]+ _0x1e37x1c)[_0x88e2[32]](_0x1e37x18)};return null}}function patchUpdates(_0x1e37x20){return function(_0x1e37x18){try{jsonpatch[_0x88e2[41]](_0x1e37x18,_0x1e37x20,true)}catch(err){return BPromise[_0x88e2[42]](err)};return _0x1e37x18[_0x88e2[43]]()}}function saveUpdates(_0x1e37x22,_0x1e37x16,_0x1e37x17){return function(_0x1e37x18){if(_0x1e37x18){return _0x1e37x18[_0x88e2[46]](_0x1e37x22)[_0x88e2[45]](function(_0x1e37x23){logger[_0x88e2[24]](_0x88e2[22],_0x1e37x17,_0x1e37x16,_0x88e2[44]);logger[_0x88e2[26]](_0x88e2[25],_0x1e37x17,_0x1e37x16,_0x88e2[44],JSON[_0x88e2[31]](_0x1e37x18));return _0x1e37x23})};return null}}function removeEntity(_0x1e37x15,_0x1e37x16,_0x1e37x17){return function(_0x1e37x18){if(_0x1e37x18){return _0x1e37x18[_0x88e2[48]]()[_0x88e2[45]](function(){logger[_0x88e2[24]](_0x88e2[22],_0x1e37x17,_0x1e37x16,_0x88e2[47]);logger[_0x88e2[26]](_0x88e2[25],_0x1e37x17,_0x1e37x16,_0x88e2[47],JSON[_0x88e2[31]](_0x1e37x18));_0x1e37x15[_0x88e2[29]](204)[_0x88e2[28]]()})}}}function handleEntityNotFound(_0x1e37x15,_0x1e37x16,_0x1e37x17){return function(_0x1e37x18){if(!_0x1e37x18){logger[_0x88e2[50]](_0x88e2[22],_0x1e37x17,404,_0x88e2[49]);_0x1e37x15[_0x88e2[29]](404)[_0x88e2[28]]();return null};return _0x1e37x18}}function handleError(_0x1e37x15,_0x1e37x16,_0x1e37x17){_0x1e37x16= _0x1e37x16|| 500;return function(_0x1e37x27){logger[_0x88e2[50]](_0x88e2[22],_0x1e37x17,_0x1e37x16,JSON[_0x88e2[31]](_0x1e37x27));delete _0x1e37x27[_0x88e2[51]];_0x1e37x15[_0x88e2[29]](_0x1e37x16)[_0x88e2[52]](_0x1e37x27)}}exports[_0x88e2[53]]= function(_0x1e37x28,_0x1e37x15){var _0x1e37x1b={},_0x1e37x29={};_0x1e37x29[_0x88e2[54]]= _[_0x88e2[57]](db[_0x88e2[56]][_0x88e2[55]]);_0x1e37x29[_0x88e2[58]]= _[_0x88e2[57]](_0x1e37x28[_0x88e2[58]]);_0x1e37x29[_0x88e2[59]]= _[_0x88e2[60]](_0x1e37x29[_0x88e2[54]],_0x1e37x29[_0x88e2[58]]);_0x1e37x1b[_0x88e2[61]]= _[_0x88e2[60]](_0x1e37x29[_0x88e2[54]],qs[_0x88e2[62]](_0x1e37x28[_0x88e2[58]][_0x88e2[62]]));_0x1e37x1b[_0x88e2[61]]= (_0x1e37x1b[_0x88e2[61]][_0x88e2[63]])?_0x1e37x1b[_0x88e2[61]]:_0x1e37x29[_0x88e2[54]];if(!_0x1e37x28[_0x88e2[58]][_0x88e2[65]](_0x88e2[64])){_0x1e37x1b[_0x88e2[35]]= qs[_0x88e2[35]](_0x1e37x28[_0x88e2[58]][_0x88e2[35]]);_0x1e37x1b[_0x88e2[34]]= qs[_0x88e2[34]](_0x1e37x28[_0x88e2[58]][_0x88e2[34]])};_0x1e37x1b[_0x88e2[66]]= qs[_0x88e2[67]](_0x1e37x28[_0x88e2[58]][_0x88e2[67]]);_0x1e37x1b[_0x88e2[68]]= qs[_0x88e2[59]](_[_0x88e2[69]](_0x1e37x28[_0x88e2[58]],_0x1e37x29[_0x88e2[59]]));if(_0x1e37x28[_0x88e2[58]][_0x88e2[70]]){_0x1e37x1b[_0x88e2[68]]= _[_0x88e2[73]](_0x1e37x1b[_0x88e2[68]],{$or:_[_0x88e2[72]](_0x1e37x1b[_0x88e2[61]],function(_0x1e37x2a){var _0x1e37x2b={};_0x1e37x2b[_0x1e37x2a]= {$like:_0x88e2[71]+ _0x1e37x28[_0x88e2[58]][_0x88e2[70]]+ _0x88e2[71]};return _0x1e37x2b})})};_0x1e37x1b= _[_0x88e2[73]]({},_0x1e37x1b,_0x1e37x28[_0x88e2[74]]);return db[_0x88e2[56]][_0x88e2[76]](_0x1e37x1b)[_0x88e2[45]](respondWithFilteredResult(_0x1e37x15,_0x1e37x1b,_0x88e2[53]))[_0x88e2[75]](handleError(_0x1e37x15,null,_0x88e2[53]))};exports[_0x88e2[77]]= function(_0x1e37x28,_0x1e37x15){var _0x1e37x1b={raw:true,where:{id:_0x1e37x28[_0x88e2[79]][_0x88e2[78]]}},_0x1e37x29={};_0x1e37x29[_0x88e2[54]]= _[_0x88e2[57]](db[_0x88e2[56]][_0x88e2[55]]);_0x1e37x29[_0x88e2[58]]= _[_0x88e2[57]](_0x1e37x28[_0x88e2[58]]);_0x1e37x29[_0x88e2[59]]= _[_0x88e2[60]](_0x1e37x29[_0x88e2[54]],_0x1e37x29[_0x88e2[58]]);_0x1e37x1b[_0x88e2[61]]= _[_0x88e2[60]](_0x1e37x29[_0x88e2[54]],qs[_0x88e2[62]](_0x1e37x28[_0x88e2[58]][_0x88e2[62]]));_0x1e37x1b[_0x88e2[61]]= (_0x1e37x1b[_0x88e2[61]][_0x88e2[63]])?_0x1e37x1b[_0x88e2[61]]:_0x1e37x29[_0x88e2[54]];_0x1e37x1b= _[_0x88e2[73]]({},_0x1e37x1b,_0x1e37x28[_0x88e2[74]]);return db[_0x88e2[56]][_0x88e2[80]](_0x1e37x1b)[_0x88e2[45]](handleEntityNotFound(_0x1e37x15,null,_0x88e2[77]))[_0x88e2[45]](respondWithResult(_0x1e37x15,null,_0x88e2[77]))[_0x88e2[75]](handleError(_0x1e37x15,null,_0x88e2[77]))};exports[_0x88e2[81]]= function(_0x1e37x28,_0x1e37x15){return db[_0x88e2[56]][_0x88e2[81]](_0x1e37x28[_0x88e2[82]],{})[_0x88e2[45]](respondWithResult(_0x1e37x15,201,_0x88e2[81]))[_0x88e2[75]](handleError(_0x1e37x15,null,_0x88e2[81]))};exports[_0x88e2[46]]= function(_0x1e37x28,_0x1e37x15){if(_0x1e37x28[_0x88e2[82]][_0x88e2[78]]){delete _0x1e37x28[_0x88e2[82]][_0x88e2[78]]};return db[_0x88e2[56]][_0x88e2[80]]({where:{id:_0x1e37x28[_0x88e2[79]][_0x88e2[78]]}})[_0x88e2[45]](handleEntityNotFound(_0x1e37x15,null,_0x88e2[46]))[_0x88e2[45]](saveUpdates(_0x1e37x28[_0x88e2[82]],null,_0x88e2[46]))[_0x88e2[45]](respondWithResult(_0x1e37x15,null,_0x88e2[46]))[_0x88e2[75]](handleError(_0x1e37x15,null,_0x88e2[46]))};exports[_0x88e2[48]]= function(_0x1e37x28,_0x1e37x15){return db[_0x88e2[56]][_0x88e2[80]]({where:{id:_0x1e37x28[_0x88e2[79]][_0x88e2[78]]}})[_0x88e2[45]](handleEntityNotFound(_0x1e37x15,null,_0x88e2[48]))[_0x88e2[45]](removeEntity(_0x1e37x15,null,_0x88e2[48]))[_0x88e2[75]](handleError(_0x1e37x15,null,_0x88e2[48]))}
\ No newline at end of file
index 52f0253..c637c41 100644 (file)
@@ -1 +1 @@
-var _0xc2bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x74\x6F\x6F\x6C\x73\x5F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xc2bd[0];var _=require(_0xc2bd[1]);var util=require(_0xc2bd[2]);var logger=require(_0xc2bd[4])(_0xc2bd[3]);var attributes=require(_0xc2bd[5]);module[_0xc2bd[6]]= function(_0x4f7bx5,_0x4f7bx6){return _0x4f7bx5[_0xc2bd[9]](_0xc2bd[7],attributes,{tableName:_0xc2bd[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x9fd2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x74\x6F\x6F\x6C\x73\x5F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x9fd2[0];var _=require(_0x9fd2[1]);var util=require(_0x9fd2[2]);var logger=require(_0x9fd2[4])(_0x9fd2[3]);var attributes=require(_0x9fd2[5]);module[_0x9fd2[6]]= function(_0xb504x5,_0xb504x6){return _0xb504x5[_0x9fd2[9]](_0x9fd2[7],attributes,{tableName:_0x9fd2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 280102a..4399072 100644 (file)
@@ -1 +1 @@
-var _0x46c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x56\x61\x72\x69\x61\x62\x6C\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x56\x61\x72\x69\x61\x62\x6C\x65"];_0x46c4[0];var _=require(_0x46c4[1]);var util=require(_0x46c4[2]);var moment=require(_0x46c4[3]);var BPromise=require(_0x46c4[4]);var db=require(_0x46c4[6])[_0x46c4[5]];var utils=require(_0x46c4[7]);var logger=require(_0x46c4[9])(_0x46c4[8]);var jayson=require(_0x46c4[10]);var client=jayson[_0x46c4[12]][_0x46c4[11]]({port:9002});function respondWithRpcPromise(_0x7409xb,_0x7409xc,_0x7409xd){return  new BPromise(function(_0x7409xe,_0x7409xf){return client[_0x46c4[25]](_0x7409xb,_0x7409xd)[_0x46c4[24]](function(_0x7409x11){logger[_0x46c4[17]](_0x46c4[13],_0x7409xc,_0x46c4[16]);logger[_0x46c4[20]](_0x46c4[18],_0x7409xc,_0x46c4[16],JSON[_0x46c4[19]](_0x7409x11));if(_0x7409x11[_0x46c4[14]]){if(_0x7409x11[_0x46c4[14]][_0x46c4[21]]=== 500){logger[_0x46c4[14]](_0x46c4[13],_0x7409xc,_0x7409x11[_0x46c4[14]][_0x46c4[22]]);return _0x7409xf(_0x7409x11[_0x46c4[14]][_0x46c4[22]])};logger[_0x46c4[14]](_0x46c4[13],_0x7409xc,_0x7409x11[_0x46c4[14]][_0x46c4[22]]);return _0x7409xe(_0x7409x11[_0x46c4[14]][_0x46c4[22]])}else {logger[_0x46c4[17]](_0x46c4[13],_0x7409xc,_0x46c4[16]);_0x7409xe(_0x7409x11[_0x46c4[23]][_0x46c4[22]])}})[_0x46c4[15]](function(_0x7409x10){logger[_0x46c4[14]](_0x46c4[13],_0x7409xc,_0x7409x10);_0x7409xf(_0x7409x10)})})}exports[_0x46c4[26]]= function(_0x7409xd){var _0x7409x12=this;return  new Promise(function(_0x7409xe,_0x7409xf){return db[_0x46c4[36]][_0x46c4[35]]({raw:_0x7409xd[_0x46c4[27]]?(_0x7409xd[_0x46c4[27]][_0x46c4[28]]=== undefined)?true:false:true,where:_0x7409xd[_0x46c4[27]]?_0x7409xd[_0x46c4[27]][_0x46c4[29]]|| null:null,attributes:_0x7409xd[_0x46c4[27]]?_0x7409xd[_0x46c4[27]][_0x46c4[30]]|| null:null,include:_0x7409xd[_0x46c4[27]]?(_0x7409xd[_0x46c4[27]][_0x46c4[31]]?_[_0x46c4[34]](_0x7409xd[_0x46c4[27]][_0x46c4[31]],function(_0x7409x13){return {model:db[_0x7409x13[_0x46c4[32]]],as:_0x7409x13[_0x46c4[33]],attributes:_0x7409x13[_0x46c4[30]],include:_0x7409x13[_0x46c4[31]]?_[_0x46c4[34]](_0x7409x13[_0x46c4[31]],function(_0x7409x14){return {model:db[_0x7409x14[_0x46c4[32]]],as:_0x7409x14[_0x46c4[33]],attributes:_0x7409x14[_0x46c4[30]],include:_0x7409x14[_0x46c4[31]]?_[_0x46c4[34]](_0x7409x14[_0x46c4[31]],function(_0x7409x15){return {model:db[_0x7409x15[_0x46c4[32]]],as:_0x7409x15[_0x46c4[33]],attributes:_0x7409x15[_0x46c4[30]]}}):[]}}):[]}}):[]):[]})[_0x46c4[24]](function(_0x7409x11){logger[_0x46c4[17]](_0x46c4[26],_0x7409xd);logger[_0x46c4[20]](_0x46c4[26],_0x7409xd,JSON[_0x46c4[19]](_0x7409x11));_0x7409xe(_0x7409x11)})[_0x46c4[15]](function(_0x7409x10){logger[_0x46c4[14]](_0x46c4[26],_0x7409x10[_0x46c4[22]],_0x7409xd);_0x7409xf(_0x7409x12[_0x46c4[14]](500,_0x7409x10[_0x46c4[22]]))})})}
\ No newline at end of file
+var _0xf6bb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x56\x61\x72\x69\x61\x62\x6C\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x56\x61\x72\x69\x61\x62\x6C\x65"];_0xf6bb[0];var _=require(_0xf6bb[1]);var util=require(_0xf6bb[2]);var moment=require(_0xf6bb[3]);var BPromise=require(_0xf6bb[4]);var db=require(_0xf6bb[6])[_0xf6bb[5]];var utils=require(_0xf6bb[7]);var logger=require(_0xf6bb[9])(_0xf6bb[8]);var jayson=require(_0xf6bb[10]);var client=jayson[_0xf6bb[12]][_0xf6bb[11]]({port:9002});function respondWithRpcPromise(_0x4253xb,_0x4253xc,_0x4253xd){return  new BPromise(function(_0x4253xe,_0x4253xf){return client[_0xf6bb[25]](_0x4253xb,_0x4253xd)[_0xf6bb[24]](function(_0x4253x11){logger[_0xf6bb[17]](_0xf6bb[13],_0x4253xc,_0xf6bb[16]);logger[_0xf6bb[20]](_0xf6bb[18],_0x4253xc,_0xf6bb[16],JSON[_0xf6bb[19]](_0x4253x11));if(_0x4253x11[_0xf6bb[14]]){if(_0x4253x11[_0xf6bb[14]][_0xf6bb[21]]=== 500){logger[_0xf6bb[14]](_0xf6bb[13],_0x4253xc,_0x4253x11[_0xf6bb[14]][_0xf6bb[22]]);return _0x4253xf(_0x4253x11[_0xf6bb[14]][_0xf6bb[22]])};logger[_0xf6bb[14]](_0xf6bb[13],_0x4253xc,_0x4253x11[_0xf6bb[14]][_0xf6bb[22]]);return _0x4253xe(_0x4253x11[_0xf6bb[14]][_0xf6bb[22]])}else {logger[_0xf6bb[17]](_0xf6bb[13],_0x4253xc,_0xf6bb[16]);_0x4253xe(_0x4253x11[_0xf6bb[23]][_0xf6bb[22]])}})[_0xf6bb[15]](function(_0x4253x10){logger[_0xf6bb[14]](_0xf6bb[13],_0x4253xc,_0x4253x10);_0x4253xf(_0x4253x10)})})}exports[_0xf6bb[26]]= function(_0x4253xd){var _0x4253x12=this;return  new Promise(function(_0x4253xe,_0x4253xf){return db[_0xf6bb[36]][_0xf6bb[35]]({raw:_0x4253xd[_0xf6bb[27]]?(_0x4253xd[_0xf6bb[27]][_0xf6bb[28]]=== undefined)?true:false:true,where:_0x4253xd[_0xf6bb[27]]?_0x4253xd[_0xf6bb[27]][_0xf6bb[29]]|| null:null,attributes:_0x4253xd[_0xf6bb[27]]?_0x4253xd[_0xf6bb[27]][_0xf6bb[30]]|| null:null,include:_0x4253xd[_0xf6bb[27]]?(_0x4253xd[_0xf6bb[27]][_0xf6bb[31]]?_[_0xf6bb[34]](_0x4253xd[_0xf6bb[27]][_0xf6bb[31]],function(_0x4253x13){return {model:db[_0x4253x13[_0xf6bb[32]]],as:_0x4253x13[_0xf6bb[33]],attributes:_0x4253x13[_0xf6bb[30]],include:_0x4253x13[_0xf6bb[31]]?_[_0xf6bb[34]](_0x4253x13[_0xf6bb[31]],function(_0x4253x14){return {model:db[_0x4253x14[_0xf6bb[32]]],as:_0x4253x14[_0xf6bb[33]],attributes:_0x4253x14[_0xf6bb[30]],include:_0x4253x14[_0xf6bb[31]]?_[_0xf6bb[34]](_0x4253x14[_0xf6bb[31]],function(_0x4253x15){return {model:db[_0x4253x15[_0xf6bb[32]]],as:_0x4253x15[_0xf6bb[33]],attributes:_0x4253x15[_0xf6bb[30]]}}):[]}}):[]}}):[]):[]})[_0xf6bb[24]](function(_0x4253x11){logger[_0xf6bb[17]](_0xf6bb[26],_0x4253xd);logger[_0xf6bb[20]](_0xf6bb[26],_0x4253xd,JSON[_0xf6bb[19]](_0x4253x11));_0x4253xe(_0x4253x11)})[_0xf6bb[15]](function(_0x4253x10){logger[_0xf6bb[14]](_0xf6bb[26],_0x4253x10[_0xf6bb[22]],_0x4253xd);_0x4253xf(_0x4253x12[_0xf6bb[14]](500,_0x4253x10[_0xf6bb[22]]))})})}
\ No newline at end of file
index 1a91d68..b9b6118 100644 (file)
@@ -1 +1 @@
-var _0x62bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x76\x65\x72\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x66\x65\x74\x63\x68","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x66\x65\x74\x63\x68","\x2F\x72\x65\x73\x65\x74","\x72\x65\x73\x65\x74","\x2F\x70\x75\x6C\x6C","\x70\x75\x6C\x6C","\x2F\x72\x65\x73\x74\x61\x72\x74","\x72\x65\x73\x74\x61\x72\x74","\x2F\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x62bc[0];var express=require(_0x62bc[1]);var router=express.Router();var auth=require(_0x62bc[2]);var controller=require(_0x62bc[3]);router[_0x62bc[6]](_0x62bc[4],controller[_0x62bc[5]]);router[_0x62bc[6]](_0x62bc[7],auth[_0x62bc[8]](),controller[_0x62bc[9]]);router[_0x62bc[6]](_0x62bc[10],auth[_0x62bc[8]](),controller[_0x62bc[11]]);router[_0x62bc[6]](_0x62bc[12],auth[_0x62bc[8]](),controller[_0x62bc[13]]);router[_0x62bc[6]](_0x62bc[14],auth[_0x62bc[8]](),controller[_0x62bc[15]]);router[_0x62bc[6]](_0x62bc[16],controller[_0x62bc[17]]);module[_0x62bc[18]]= router
\ No newline at end of file
+var _0xa435=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x76\x65\x72\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x66\x65\x74\x63\x68","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x66\x65\x74\x63\x68","\x2F\x72\x65\x73\x65\x74","\x72\x65\x73\x65\x74","\x2F\x70\x75\x6C\x6C","\x70\x75\x6C\x6C","\x2F\x72\x65\x73\x74\x61\x72\x74","\x72\x65\x73\x74\x61\x72\x74","\x2F\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xa435[0];var express=require(_0xa435[1]);var router=express.Router();var auth=require(_0xa435[2]);var controller=require(_0xa435[3]);router[_0xa435[6]](_0xa435[4],controller[_0xa435[5]]);router[_0xa435[6]](_0xa435[7],auth[_0xa435[8]](),controller[_0xa435[9]]);router[_0xa435[6]](_0xa435[10],auth[_0xa435[8]](),controller[_0xa435[11]]);router[_0xa435[6]](_0xa435[12],auth[_0xa435[8]](),controller[_0xa435[13]]);router[_0xa435[6]](_0xa435[14],auth[_0xa435[8]](),controller[_0xa435[15]]);router[_0xa435[6]](_0xa435[16],controller[_0xa435[17]]);module[_0xa435[18]]= router
\ No newline at end of file
index 6d7ab07..e8c4040 100644 (file)
@@ -1 +1 @@
-var _0x4b2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x6D\x7A\x75\x67","\x70\x61\x74\x68","\x76\x65\x72\x73\x69\x6F\x6E","\x70\x6B\x67\x69\x6E\x66\x6F","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x75\x70\x64\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x72\x6F\x6F\x74","\x73\x69\x6D\x70\x6C\x65\x2D\x67\x69\x74","\x69\x6E\x64\x65\x78","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x61\x74\x65\x73\x74","\x32\x2E\x30\x2E\x30","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x74\x61\x67\x73","\x66\x65\x74\x63\x68","\x6F\x72\x69\x67\x69\x6E","\x6D\x61\x73\x74\x65\x72","\x65\x72\x72\x6F\x72","\x67\x69\x74\x20\x66\x65\x74\x63\x68","\x69\x6E\x66\x6F","\x67\x69\x74\x20\x66\x65\x74\x63\x68\x20\x6F\x72\x69\x67\x69\x6E\x20\x6D\x61\x73\x74\x65\x72","\x72\x65\x73\x65\x74","\x2D\x2D\x68\x61\x72\x64","\x46\x45\x54\x43\x48\x5F\x48\x45\x41\x44","\x67\x69\x74\x20\x72\x65\x73\x65\x74\x20\x2D\x2D\x68\x61\x72\x64\x20\x46\x45\x54\x43\x48\x5F\x48\x45\x41\x44","\x67\x69\x74\x20\x72\x65\x73\x65\x74\x20\x2D\x2D\x68\x61\x72\x64","\x70\x75\x6C\x6C","\x6E\x70\x6D\x20\x69\x6E\x73\x74\x61\x6C\x6C\x20\x2D\x2D\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x65\x73\x74\x61\x72\x74","\x63\x61\x74\x63\x68","\x70\x6D\x32\x20\x72\x65\x73\x74\x61\x72\x74\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x25\x73","\x59\x6F\x75\x72\x20\x73\x79\x73\x74\x65\x6D\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x73\x74\x61\x72\x74\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79","\x74\x68\x65\x6E","\x6D\x6F\x74\x69\x6F\x6E\x32","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x67\x65\x74\x51\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x4D\x69\x67\x72\x61\x74\x69\x6F\x6E\x20\x74\x72\x69\x65\x64\x20\x74\x6F\x20\x75\x73\x65\x20\x6F\x6C\x64\x20\x73\x74\x79\x6C\x65\x20\x22\x64\x6F\x6E\x65\x22\x20\x63\x61\x6C\x6C\x62\x61\x63\x6B\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x70\x67\x72\x61\x64\x65\x20\x74\x6F\x20\x22\x75\x6D\x7A\x75\x67\x22\x20\x61\x6E\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x20\x70\x72\x6F\x6D\x69\x73\x65\x20\x69\x6E\x73\x74\x65\x61\x64\x2E","\x73\x65\x72\x76\x65\x72","\x6A\x6F\x69\x6E","\x44\x61\x74\x61\x62\x61\x73\x65\x20\x4D\x69\x67\x72\x61\x74\x69\x6F\x6E\x20\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64\x21","\x75\x70"];_0x4b2f[0];var Umzug=require(_0x4b2f[1]);var path=require(_0x4b2f[2]);var pkginfo=require(_0x4b2f[4])(module,_0x4b2f[3]);var exec=require(_0x4b2f[6])[_0x4b2f[5]];var db=require(_0x4b2f[8])[_0x4b2f[7]];var config=require(_0x4b2f[9]);var pm2=require(_0x4b2f[10]);var logger=require(_0x4b2f[12])(_0x4b2f[11]);var git=require(_0x4b2f[14])(config[_0x4b2f[13]]);exports[_0x4b2f[15]]= function(_0xddf7xa,_0xddf7xb){return git[_0x4b2f[22]]()[_0x4b2f[21]](function(_0xddf7xc,_0xddf7xd){return _0xddf7xb[_0x4b2f[20]](200)[_0x4b2f[19]]({latest:(_0xddf7xc?module[_0x4b2f[16]][_0x4b2f[3]]:_0xddf7xd[_0x4b2f[17]])|| _0x4b2f[18],current:module[_0x4b2f[16]][_0x4b2f[3]],phonebar:2})})};exports[_0x4b2f[22]]= function(_0xddf7xa,_0xddf7xb){return git[_0x4b2f[22]]([_0x4b2f[23],_0x4b2f[24]],function(_0xddf7xc){if(_0xddf7xc){logger[_0x4b2f[25]](_0xddf7xc);return _0xddf7xb[_0x4b2f[20]](500)[_0x4b2f[19]](_0xddf7xc)};logger[_0x4b2f[27]](_0x4b2f[26]);return _0xddf7xb[_0x4b2f[20]](200)[_0x4b2f[19]]({output:_0x4b2f[28]})})};exports[_0x4b2f[29]]= function(_0xddf7xa,_0xddf7xb){return git[_0x4b2f[29]]([_0x4b2f[30],_0x4b2f[31]],function(_0xddf7xc){if(_0xddf7xc){logger[_0x4b2f[25]](_0xddf7xc);return _0xddf7xb[_0x4b2f[20]](500)[_0x4b2f[19]](_0xddf7xc)};logger[_0x4b2f[27]](_0x4b2f[32]);return _0xddf7xb[_0x4b2f[20]](200)[_0x4b2f[19]]({output:_0x4b2f[33]})})};exports[_0x4b2f[34]]= function(_0xddf7xa,_0xddf7xb){exec(_0x4b2f[35],function(_0xddf7xc,_0xddf7xe,_0xddf7xf){logger[_0x4b2f[27]](_0xddf7xe);logger[_0x4b2f[27]](_0xddf7xf);if(_0xddf7xc){logger[_0x4b2f[25]](_0xddf7xc);return _0xddf7xb[_0x4b2f[20]](500)[_0x4b2f[19]](_0xddf7xc)};return _0xddf7xb[_0x4b2f[20]](200)[_0x4b2f[19]]({output:_0xddf7xe})})};exports[_0x4b2f[36]]= function(_0xddf7xa,_0xddf7xb){return pm2[_0x4b2f[36]](_0x4b2f[41])[_0x4b2f[40]](function(_0xddf7x10){logger[_0x4b2f[27]](_0x4b2f[38],_0xddf7x10);return _0xddf7xb[_0x4b2f[20]](200)[_0x4b2f[19]]({output:_0x4b2f[39]})})[_0x4b2f[37]](function(_0xddf7xc){logger[_0x4b2f[25]](_0xddf7xc);return _0xddf7xb[_0x4b2f[20]](500)[_0x4b2f[19]](_0xddf7xc)})};exports[_0x4b2f[42]]= function(_0xddf7xa,_0xddf7xb){var _0xddf7x11= new Umzug({storage:_0x4b2f[43],storageOptions:{sequelize:db[_0x4b2f[43]],tableName:_0x4b2f[42],columnName:_0x4b2f[3]},migrations:{params:[db[_0x4b2f[43]][_0x4b2f[44]](),db[_0x4b2f[43]][_0x4b2f[45]],function(){throw  new Error(_0x4b2f[46])}],path:path[_0x4b2f[48]](config[_0x4b2f[13]],_0x4b2f[47],_0x4b2f[42]),pattern:/\.js$/}});_0xddf7x11[_0x4b2f[50]]()[_0x4b2f[40]](function(){return _0xddf7xb[_0x4b2f[20]](200)[_0x4b2f[19]]({output:_0x4b2f[49]})})[_0x4b2f[37]](function(_0xddf7xc){return _0xddf7xb[_0x4b2f[20]](500)[_0x4b2f[19]](_0xddf7xc)})}
\ No newline at end of file
+var _0x5054=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x6D\x7A\x75\x67","\x70\x61\x74\x68","\x76\x65\x72\x73\x69\x6F\x6E","\x70\x6B\x67\x69\x6E\x66\x6F","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x75\x70\x64\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x72\x6F\x6F\x74","\x73\x69\x6D\x70\x6C\x65\x2D\x67\x69\x74","\x69\x6E\x64\x65\x78","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x61\x74\x65\x73\x74","\x32\x2E\x30\x2E\x30","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x74\x61\x67\x73","\x66\x65\x74\x63\x68","\x6F\x72\x69\x67\x69\x6E","\x6D\x61\x73\x74\x65\x72","\x65\x72\x72\x6F\x72","\x67\x69\x74\x20\x66\x65\x74\x63\x68","\x69\x6E\x66\x6F","\x67\x69\x74\x20\x66\x65\x74\x63\x68\x20\x6F\x72\x69\x67\x69\x6E\x20\x6D\x61\x73\x74\x65\x72","\x72\x65\x73\x65\x74","\x2D\x2D\x68\x61\x72\x64","\x46\x45\x54\x43\x48\x5F\x48\x45\x41\x44","\x67\x69\x74\x20\x72\x65\x73\x65\x74\x20\x2D\x2D\x68\x61\x72\x64\x20\x46\x45\x54\x43\x48\x5F\x48\x45\x41\x44","\x67\x69\x74\x20\x72\x65\x73\x65\x74\x20\x2D\x2D\x68\x61\x72\x64","\x70\x75\x6C\x6C","\x6E\x70\x6D\x20\x69\x6E\x73\x74\x61\x6C\x6C\x20\x2D\x2D\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x65\x73\x74\x61\x72\x74","\x63\x61\x74\x63\x68","\x70\x6D\x32\x20\x72\x65\x73\x74\x61\x72\x74\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x25\x73","\x59\x6F\x75\x72\x20\x73\x79\x73\x74\x65\x6D\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x73\x74\x61\x72\x74\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79","\x74\x68\x65\x6E","\x6D\x6F\x74\x69\x6F\x6E\x32","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x67\x65\x74\x51\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x4D\x69\x67\x72\x61\x74\x69\x6F\x6E\x20\x74\x72\x69\x65\x64\x20\x74\x6F\x20\x75\x73\x65\x20\x6F\x6C\x64\x20\x73\x74\x79\x6C\x65\x20\x22\x64\x6F\x6E\x65\x22\x20\x63\x61\x6C\x6C\x62\x61\x63\x6B\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x70\x67\x72\x61\x64\x65\x20\x74\x6F\x20\x22\x75\x6D\x7A\x75\x67\x22\x20\x61\x6E\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x20\x70\x72\x6F\x6D\x69\x73\x65\x20\x69\x6E\x73\x74\x65\x61\x64\x2E","\x73\x65\x72\x76\x65\x72","\x6A\x6F\x69\x6E","\x44\x61\x74\x61\x62\x61\x73\x65\x20\x4D\x69\x67\x72\x61\x74\x69\x6F\x6E\x20\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64\x21","\x75\x70"];_0x5054[0];var Umzug=require(_0x5054[1]);var path=require(_0x5054[2]);var pkginfo=require(_0x5054[4])(module,_0x5054[3]);var exec=require(_0x5054[6])[_0x5054[5]];var db=require(_0x5054[8])[_0x5054[7]];var config=require(_0x5054[9]);var pm2=require(_0x5054[10]);var logger=require(_0x5054[12])(_0x5054[11]);var git=require(_0x5054[14])(config[_0x5054[13]]);exports[_0x5054[15]]= function(_0x1410xa,_0x1410xb){return git[_0x5054[22]]()[_0x5054[21]](function(_0x1410xc,_0x1410xd){return _0x1410xb[_0x5054[20]](200)[_0x5054[19]]({latest:(_0x1410xc?module[_0x5054[16]][_0x5054[3]]:_0x1410xd[_0x5054[17]])|| _0x5054[18],current:module[_0x5054[16]][_0x5054[3]],phonebar:2})})};exports[_0x5054[22]]= function(_0x1410xa,_0x1410xb){return git[_0x5054[22]]([_0x5054[23],_0x5054[24]],function(_0x1410xc){if(_0x1410xc){logger[_0x5054[25]](_0x1410xc);return _0x1410xb[_0x5054[20]](500)[_0x5054[19]](_0x1410xc)};logger[_0x5054[27]](_0x5054[26]);return _0x1410xb[_0x5054[20]](200)[_0x5054[19]]({output:_0x5054[28]})})};exports[_0x5054[29]]= function(_0x1410xa,_0x1410xb){return git[_0x5054[29]]([_0x5054[30],_0x5054[31]],function(_0x1410xc){if(_0x1410xc){logger[_0x5054[25]](_0x1410xc);return _0x1410xb[_0x5054[20]](500)[_0x5054[19]](_0x1410xc)};logger[_0x5054[27]](_0x5054[32]);return _0x1410xb[_0x5054[20]](200)[_0x5054[19]]({output:_0x5054[33]})})};exports[_0x5054[34]]= function(_0x1410xa,_0x1410xb){exec(_0x5054[35],function(_0x1410xc,_0x1410xe,_0x1410xf){logger[_0x5054[27]](_0x1410xe);logger[_0x5054[27]](_0x1410xf);if(_0x1410xc){logger[_0x5054[25]](_0x1410xc);return _0x1410xb[_0x5054[20]](500)[_0x5054[19]](_0x1410xc)};return _0x1410xb[_0x5054[20]](200)[_0x5054[19]]({output:_0x1410xe})})};exports[_0x5054[36]]= function(_0x1410xa,_0x1410xb){return pm2[_0x5054[36]](_0x5054[41])[_0x5054[40]](function(_0x1410x10){logger[_0x5054[27]](_0x5054[38],_0x1410x10);return _0x1410xb[_0x5054[20]](200)[_0x5054[19]]({output:_0x5054[39]})})[_0x5054[37]](function(_0x1410xc){logger[_0x5054[25]](_0x1410xc);return _0x1410xb[_0x5054[20]](500)[_0x5054[19]](_0x1410xc)})};exports[_0x5054[42]]= function(_0x1410xa,_0x1410xb){var _0x1410x11= new Umzug({storage:_0x5054[43],storageOptions:{sequelize:db[_0x5054[43]],tableName:_0x5054[42],columnName:_0x5054[3]},migrations:{params:[db[_0x5054[43]][_0x5054[44]](),db[_0x5054[43]][_0x5054[45]],function(){throw  new Error(_0x5054[46])}],path:path[_0x5054[48]](config[_0x5054[13]],_0x5054[47],_0x5054[42]),pattern:/\.js$/}});_0x1410x11[_0x5054[50]]()[_0x5054[40]](function(){return _0x1410xb[_0x5054[20]](200)[_0x5054[19]]({output:_0x5054[49]})})[_0x5054[37]](function(_0x1410xc){return _0x1410xb[_0x5054[20]](500)[_0x5054[19]](_0x1410xc)})}
\ No newline at end of file
index 2246101..70e2b13 100644 (file)
@@ -1 +1 @@
-var _0xad58=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xad58[0];var multer=require(_0xad58[1]);var util=require(_0xad58[2]);var path=require(_0xad58[3]);var express=require(_0xad58[4]);var router=express.Router();var auth=require(_0xad58[5]);var config=require(_0xad58[6]);var controller=require(_0xad58[7]);router[_0xad58[11]](_0xad58[8],auth[_0xad58[9]](),controller[_0xad58[10]]);router[_0xad58[11]](_0xad58[12],auth[_0xad58[9]](),controller[_0xad58[13]]);router[_0xad58[11]](_0xad58[14],auth[_0xad58[9]](),controller[_0xad58[15]]);router[_0xad58[17]](_0xad58[8],auth[_0xad58[9]](),controller[_0xad58[16]]);router[_0xad58[19]](_0xad58[14],auth[_0xad58[9]](),controller[_0xad58[18]]);router[_0xad58[21]](_0xad58[14],auth[_0xad58[9]](),controller[_0xad58[20]]);module[_0xad58[22]]= router
\ No newline at end of file
+var _0xdbc3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdbc3[0];var multer=require(_0xdbc3[1]);var util=require(_0xdbc3[2]);var path=require(_0xdbc3[3]);var express=require(_0xdbc3[4]);var router=express.Router();var auth=require(_0xdbc3[5]);var config=require(_0xdbc3[6]);var controller=require(_0xdbc3[7]);router[_0xdbc3[11]](_0xdbc3[8],auth[_0xdbc3[9]](),controller[_0xdbc3[10]]);router[_0xdbc3[11]](_0xdbc3[12],auth[_0xdbc3[9]](),controller[_0xdbc3[13]]);router[_0xdbc3[11]](_0xdbc3[14],auth[_0xdbc3[9]](),controller[_0xdbc3[15]]);router[_0xdbc3[17]](_0xdbc3[8],auth[_0xdbc3[9]](),controller[_0xdbc3[16]]);router[_0xdbc3[19]](_0xdbc3[14],auth[_0xdbc3[9]](),controller[_0xdbc3[18]]);router[_0xdbc3[21]](_0xdbc3[14],auth[_0xdbc3[9]](),controller[_0xdbc3[20]]);module[_0xdbc3[22]]= router
\ No newline at end of file
index 753567d..a8a6402 100644 (file)
@@ -1 +1 @@
-var _0x9464=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x9464[0];var Sequelize=require(_0x9464[1]);module[_0x9464[2]]= {type:{type:Sequelize[_0x9464[3]]},uniqueid:{type:Sequelize[_0x9464[3]]},calleridnum:{type:Sequelize[_0x9464[3]]},calleridname:{type:Sequelize[_0x9464[3]]},queue:{type:Sequelize[_0x9464[3]]},interface:{type:Sequelize[_0x9464[3]]},membername:{type:Sequelize[_0x9464[3]]},agentcalledAt:{type:Sequelize[_0x9464[4]]},agentconnectAt:{type:Sequelize[_0x9464[4]]},agentcompleteAt:{type:Sequelize[_0x9464[4]]},agentringnoanswerAt:{type:Sequelize[_0x9464[4]]},agentdumpAt:{type:Sequelize[_0x9464[4]]},holdtime:{type:Sequelize[_0x9464[5]]},agentcomplete:{type:Sequelize[_0x9464[6]],defaultValue:false},agentringnoanswer:{type:Sequelize[_0x9464[6]],defaultValue:false},agentdump:{type:Sequelize[_0x9464[6]],defaultValue:false},talktime:{type:Sequelize[_0x9464[5]]},agentacw:{type:Sequelize[_0x9464[6]],defaultValue:false},acwtime:{type:Sequelize[_0x9464[5]]},reason:{type:Sequelize[_0x9464[3]]},lastevent:{type:Sequelize[_0x9464[3]]},channel:{type:Sequelize[_0x9464[3]]},channelstate:{type:Sequelize[_0x9464[5]]},channelstatedesc:{type:Sequelize[_0x9464[3]]},connectedlinenum:{type:Sequelize[_0x9464[3]]},connectedlinename:{type:Sequelize[_0x9464[3]]},language:{type:Sequelize[_0x9464[3]]},accountcode:{type:Sequelize[_0x9464[3]]},context:{type:Sequelize[_0x9464[3]]},exten:{type:Sequelize[_0x9464[3]]},priority:{type:Sequelize[_0x9464[3]]},destchannel:{type:Sequelize[_0x9464[3]]},destchannelstate:{type:Sequelize[_0x9464[5]]},destchannelstatedesc:{type:Sequelize[_0x9464[3]]},destcalleridnum:{type:Sequelize[_0x9464[3]]},destcalleridname:{type:Sequelize[_0x9464[3]]},destconnectedlinenum:{type:Sequelize[_0x9464[3]]},destconnectedlinename:{type:Sequelize[_0x9464[3]]},destlanguage:{type:Sequelize[_0x9464[3]]},destaccountcode:{type:Sequelize[_0x9464[3]]},destcontext:{type:Sequelize[_0x9464[3]]},destexten:{type:Sequelize[_0x9464[3]]},destpriority:{type:Sequelize[_0x9464[3]]},destuniqueid:{type:Sequelize[_0x9464[3]]},answeredelsewheredestinationuniqueid:{type:Sequelize[_0x9464[3]]},answeredelsewheremembername:{type:Sequelize[_0x9464[3]]}}
\ No newline at end of file
+var _0x6776=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6776[0];var Sequelize=require(_0x6776[1]);module[_0x6776[2]]= {type:{type:Sequelize[_0x6776[3]]},uniqueid:{type:Sequelize[_0x6776[3]]},calleridnum:{type:Sequelize[_0x6776[3]]},calleridname:{type:Sequelize[_0x6776[3]]},queue:{type:Sequelize[_0x6776[3]]},interface:{type:Sequelize[_0x6776[3]]},membername:{type:Sequelize[_0x6776[3]]},agentcalledAt:{type:Sequelize[_0x6776[4]]},agentconnectAt:{type:Sequelize[_0x6776[4]]},agentcompleteAt:{type:Sequelize[_0x6776[4]]},agentringnoanswerAt:{type:Sequelize[_0x6776[4]]},agentdumpAt:{type:Sequelize[_0x6776[4]]},holdtime:{type:Sequelize[_0x6776[5]]},agentcomplete:{type:Sequelize[_0x6776[6]],defaultValue:false},agentringnoanswer:{type:Sequelize[_0x6776[6]],defaultValue:false},agentdump:{type:Sequelize[_0x6776[6]],defaultValue:false},talktime:{type:Sequelize[_0x6776[5]]},agentacw:{type:Sequelize[_0x6776[6]],defaultValue:false},acwtime:{type:Sequelize[_0x6776[5]]},reason:{type:Sequelize[_0x6776[3]]},lastevent:{type:Sequelize[_0x6776[3]]},channel:{type:Sequelize[_0x6776[3]]},channelstate:{type:Sequelize[_0x6776[5]]},channelstatedesc:{type:Sequelize[_0x6776[3]]},connectedlinenum:{type:Sequelize[_0x6776[3]]},connectedlinename:{type:Sequelize[_0x6776[3]]},language:{type:Sequelize[_0x6776[3]]},accountcode:{type:Sequelize[_0x6776[3]]},context:{type:Sequelize[_0x6776[3]]},exten:{type:Sequelize[_0x6776[3]]},priority:{type:Sequelize[_0x6776[3]]},destchannel:{type:Sequelize[_0x6776[3]]},destchannelstate:{type:Sequelize[_0x6776[5]]},destchannelstatedesc:{type:Sequelize[_0x6776[3]]},destcalleridnum:{type:Sequelize[_0x6776[3]]},destcalleridname:{type:Sequelize[_0x6776[3]]},destconnectedlinenum:{type:Sequelize[_0x6776[3]]},destconnectedlinename:{type:Sequelize[_0x6776[3]]},destlanguage:{type:Sequelize[_0x6776[3]]},destaccountcode:{type:Sequelize[_0x6776[3]]},destcontext:{type:Sequelize[_0x6776[3]]},destexten:{type:Sequelize[_0x6776[3]]},destpriority:{type:Sequelize[_0x6776[3]]},destuniqueid:{type:Sequelize[_0x6776[3]]},answeredelsewheredestinationuniqueid:{type:Sequelize[_0x6776[3]]},answeredelsewheremembername:{type:Sequelize[_0x6776[3]]}}
\ No newline at end of file
index d93ccd5..cb2c870 100644 (file)
@@ -1 +1 @@
-var _0x63d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x63d8[0];var jsonpatch=require(_0x63d8[1]);var rp=require(_0x63d8[2]);var moment=require(_0x63d8[3]);var BPromise=require(_0x63d8[4]);var util=require(_0x63d8[5]);var path=require(_0x63d8[6]);var sox=require(_0x63d8[7]);var ejs=require(_0x63d8[8]);var fs=require(_0x63d8[9]);var _=require(_0x63d8[10]);var squel=require(_0x63d8[11]);var crypto=require(_0x63d8[12]);var jsforce=require(_0x63d8[13]);var toCsv=require(_0x63d8[14]);var qs=require(_0x63d8[15]);var logger=require(_0x63d8[17])(_0x63d8[16]);var utils=require(_0x63d8[18]);var config=require(_0x63d8[19]);var db=require(_0x63d8[21])[_0x63d8[20]];function respondWithStatusCode(_0xc352x15,_0xc352x16,_0xc352x17){_0xc352x16= _0xc352x16|| 204;return function(_0xc352x18){if(_0xc352x18){logger[_0x63d8[24]](_0x63d8[22],_0xc352x17,_0xc352x16,_0x63d8[23]);logger[_0x63d8[26]](_0x63d8[25],_0xc352x17,_0xc352x16,_0x63d8[23]);return _0xc352x15[_0x63d8[27]](_0xc352x16)};return _0xc352x15[_0x63d8[29]](304)[_0x63d8[28]]()}}function respondWithResult(_0xc352x15,_0xc352x16,_0xc352x17){_0xc352x16= _0xc352x16|| 200;return function(_0xc352x18){if(_0xc352x18){logger[_0x63d8[24]](_0x63d8[22],_0xc352x17,_0xc352x16,_0x63d8[30]);logger[_0x63d8[26]](_0x63d8[25],_0xc352x17,_0xc352x16,_0x63d8[30],JSON[_0x63d8[31]](_0xc352x18));return _0xc352x15[_0x63d8[29]](_0xc352x16)[_0x63d8[32]](_0xc352x18)};return _0xc352x15[_0x63d8[29]](304)[_0x63d8[28]]()}}function respondWithFilteredResult(_0xc352x15,_0xc352x1b,_0xc352x17){return function(_0xc352x18){if(_0xc352x18){var _0xc352x1c=_0xc352x18[_0x63d8[33]],_0xc352x1d=_0xc352x1b[_0x63d8[34]],_0xc352x1e=_0xc352x1b[_0x63d8[34]]+ _0xc352x1b[_0x63d8[35]],_0xc352x16;if(_0xc352x1e>= _0xc352x1c){_0xc352x1e= _0xc352x1c;_0xc352x16= 200}else {_0xc352x16= 206};_0xc352x15[_0x63d8[29]](_0xc352x16);logger[_0x63d8[24]](_0x63d8[22],_0xc352x17,_0xc352x16,_0x63d8[36]);logger[_0x63d8[26]](_0x63d8[25],_0xc352x17,_0xc352x16,_0x63d8[30],JSON[_0x63d8[31]](_0xc352x18));return _0xc352x15[_0x63d8[40]](_0x63d8[37],_0xc352x1d+ _0x63d8[38]+ _0xc352x1e+ _0x63d8[39]+ _0xc352x1c)[_0x63d8[32]](_0xc352x18)};return null}}function patchUpdates(_0xc352x20){return function(_0xc352x18){try{jsonpatch[_0x63d8[41]](_0xc352x18,_0xc352x20,true)}catch(err){return BPromise[_0x63d8[42]](err)};return _0xc352x18[_0x63d8[43]]()}}function saveUpdates(_0xc352x22,_0xc352x16,_0xc352x17){return function(_0xc352x18){if(_0xc352x18){return _0xc352x18[_0x63d8[46]](_0xc352x22)[_0x63d8[45]](function(_0xc352x23){logger[_0x63d8[24]](_0x63d8[22],_0xc352x17,_0xc352x16,_0x63d8[44]);logger[_0x63d8[26]](_0x63d8[25],_0xc352x17,_0xc352x16,_0x63d8[44],JSON[_0x63d8[31]](_0xc352x18));return _0xc352x23})};return null}}function removeEntity(_0xc352x15,_0xc352x16,_0xc352x17){return function(_0xc352x18){if(_0xc352x18){return _0xc352x18[_0x63d8[48]]()[_0x63d8[45]](function(){logger[_0x63d8[24]](_0x63d8[22],_0xc352x17,_0xc352x16,_0x63d8[47]);logger[_0x63d8[26]](_0x63d8[25],_0xc352x17,_0xc352x16,_0x63d8[47],JSON[_0x63d8[31]](_0xc352x18));_0xc352x15[_0x63d8[29]](204)[_0x63d8[28]]()})}}}function handleEntityNotFound(_0xc352x15,_0xc352x16,_0xc352x17){return function(_0xc352x18){if(!_0xc352x18){logger[_0x63d8[50]](_0x63d8[22],_0xc352x17,404,_0x63d8[49]);_0xc352x15[_0x63d8[29]](404)[_0x63d8[28]]();return null};return _0xc352x18}}function handleError(_0xc352x15,_0xc352x16,_0xc352x17){_0xc352x16= _0xc352x16|| 500;return function(_0xc352x27){logger[_0x63d8[50]](_0x63d8[22],_0xc352x17,_0xc352x16,JSON[_0x63d8[31]](_0xc352x27));delete _0xc352x27[_0x63d8[51]];_0xc352x15[_0x63d8[29]](_0xc352x16)[_0x63d8[52]](_0xc352x27)}}exports[_0x63d8[53]]= function(_0xc352x28,_0xc352x15){var _0xc352x1b={},_0xc352x29={};_0xc352x29[_0x63d8[54]]= _[_0x63d8[57]](db[_0x63d8[56]][_0x63d8[55]]);_0xc352x29[_0x63d8[58]]= _[_0x63d8[57]](_0xc352x28[_0x63d8[58]]);_0xc352x29[_0x63d8[59]]= _[_0x63d8[60]](_0xc352x29[_0x63d8[54]],_0xc352x29[_0x63d8[58]]);_0xc352x1b[_0x63d8[61]]= _[_0x63d8[60]](_0xc352x29[_0x63d8[54]],qs[_0x63d8[62]](_0xc352x28[_0x63d8[58]][_0x63d8[62]]));_0xc352x1b[_0x63d8[61]]= (_0xc352x1b[_0x63d8[61]][_0x63d8[63]])?_0xc352x1b[_0x63d8[61]]:_0xc352x29[_0x63d8[54]];if(!_0xc352x28[_0x63d8[58]][_0x63d8[65]](_0x63d8[64])){_0xc352x1b[_0x63d8[35]]= qs[_0x63d8[35]](_0xc352x28[_0x63d8[58]][_0x63d8[35]]);_0xc352x1b[_0x63d8[34]]= qs[_0x63d8[34]](_0xc352x28[_0x63d8[58]][_0x63d8[34]])};_0xc352x1b[_0x63d8[66]]= qs[_0x63d8[67]](_0xc352x28[_0x63d8[58]][_0x63d8[67]]);_0xc352x1b[_0x63d8[68]]= qs[_0x63d8[59]](_[_0x63d8[69]](_0xc352x28[_0x63d8[58]],_0xc352x29[_0x63d8[59]]));if(_0xc352x28[_0x63d8[58]][_0x63d8[70]]){_0xc352x1b[_0x63d8[68]]= _[_0x63d8[73]](_0xc352x1b[_0x63d8[68]],{$or:_[_0x63d8[72]](_0xc352x1b[_0x63d8[61]],function(_0xc352x2a){var _0xc352x2b={};_0xc352x2b[_0xc352x2a]= {$like:_0x63d8[71]+ _0xc352x28[_0x63d8[58]][_0x63d8[70]]+ _0x63d8[71]};return _0xc352x2b})})};_0xc352x1b= _[_0x63d8[73]]({},_0xc352x1b,_0xc352x28[_0x63d8[74]]);return db[_0x63d8[56]][_0x63d8[76]](_0xc352x1b)[_0x63d8[45]](respondWithFilteredResult(_0xc352x15,_0xc352x1b,_0x63d8[53]))[_0x63d8[75]](handleError(_0xc352x15,null,_0x63d8[53]))};exports[_0x63d8[77]]= function(_0xc352x28,_0xc352x15){var _0xc352x1b={raw:false,where:{id:_0xc352x28[_0x63d8[79]][_0x63d8[78]]}},_0xc352x29={};_0xc352x29[_0x63d8[54]]= _[_0x63d8[57]](db[_0x63d8[56]][_0x63d8[55]]);_0xc352x29[_0x63d8[58]]= _[_0x63d8[57]](_0xc352x28[_0x63d8[58]]);_0xc352x29[_0x63d8[59]]= _[_0x63d8[60]](_0xc352x29[_0x63d8[54]],_0xc352x29[_0x63d8[58]]);_0xc352x1b[_0x63d8[61]]= _[_0x63d8[60]](_0xc352x29[_0x63d8[54]],qs[_0x63d8[62]](_0xc352x28[_0x63d8[58]][_0x63d8[62]]));_0xc352x1b[_0x63d8[61]]= (_0xc352x1b[_0x63d8[61]][_0x63d8[63]])?_0xc352x1b[_0x63d8[61]]:_0xc352x29[_0x63d8[54]];_0xc352x1b= _[_0x63d8[73]]({},_0xc352x1b,_0xc352x28[_0x63d8[74]]);return db[_0x63d8[56]][_0x63d8[80]](_0xc352x1b)[_0x63d8[45]](handleEntityNotFound(_0xc352x15,null,_0x63d8[77]))[_0x63d8[45]](respondWithResult(_0xc352x15,null,_0x63d8[77]))[_0x63d8[75]](handleError(_0xc352x15,null,_0x63d8[77]))};exports[_0x63d8[81]]= function(_0xc352x28,_0xc352x15){return db[_0x63d8[56]][_0x63d8[81]](_0xc352x28[_0x63d8[82]],{})[_0x63d8[45]](respondWithResult(_0xc352x15,201,_0x63d8[81]))[_0x63d8[75]](handleError(_0xc352x15,null,_0x63d8[81]))};exports[_0x63d8[46]]= function(_0xc352x28,_0xc352x15){if(_0xc352x28[_0x63d8[82]][_0x63d8[78]]){delete _0xc352x28[_0x63d8[82]][_0x63d8[78]]};return db[_0x63d8[56]][_0x63d8[80]]({where:{id:_0xc352x28[_0x63d8[79]][_0x63d8[78]]}})[_0x63d8[45]](handleEntityNotFound(_0xc352x15,null,_0x63d8[46]))[_0x63d8[45]](saveUpdates(_0xc352x28[_0x63d8[82]],null,_0x63d8[46]))[_0x63d8[45]](respondWithResult(_0xc352x15,null,_0x63d8[46]))[_0x63d8[75]](handleError(_0xc352x15,null,_0x63d8[46]))};exports[_0x63d8[48]]= function(_0xc352x28,_0xc352x15){return db[_0x63d8[56]][_0x63d8[80]]({where:{id:_0xc352x28[_0x63d8[79]][_0x63d8[78]]}})[_0x63d8[45]](handleEntityNotFound(_0xc352x15,null,_0x63d8[48]))[_0x63d8[45]](removeEntity(_0xc352x15,null,_0x63d8[48]))[_0x63d8[75]](handleError(_0xc352x15,null,_0x63d8[48]))};exports[_0x63d8[83]]= function(_0xc352x28,_0xc352x15){return db[_0x63d8[56]][_0x63d8[83]]()[_0x63d8[45]](respondWithResult(_0xc352x15,null,_0x63d8[83]))[_0x63d8[75]](handleError(_0xc352x15,null,_0x63d8[83]))}
\ No newline at end of file
+var _0x1dce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x1dce[0];var jsonpatch=require(_0x1dce[1]);var rp=require(_0x1dce[2]);var moment=require(_0x1dce[3]);var BPromise=require(_0x1dce[4]);var util=require(_0x1dce[5]);var path=require(_0x1dce[6]);var sox=require(_0x1dce[7]);var ejs=require(_0x1dce[8]);var fs=require(_0x1dce[9]);var _=require(_0x1dce[10]);var squel=require(_0x1dce[11]);var crypto=require(_0x1dce[12]);var jsforce=require(_0x1dce[13]);var toCsv=require(_0x1dce[14]);var qs=require(_0x1dce[15]);var logger=require(_0x1dce[17])(_0x1dce[16]);var utils=require(_0x1dce[18]);var config=require(_0x1dce[19]);var db=require(_0x1dce[21])[_0x1dce[20]];function respondWithStatusCode(_0x30eex15,_0x30eex16,_0x30eex17){_0x30eex16= _0x30eex16|| 204;return function(_0x30eex18){if(_0x30eex18){logger[_0x1dce[24]](_0x1dce[22],_0x30eex17,_0x30eex16,_0x1dce[23]);logger[_0x1dce[26]](_0x1dce[25],_0x30eex17,_0x30eex16,_0x1dce[23]);return _0x30eex15[_0x1dce[27]](_0x30eex16)};return _0x30eex15[_0x1dce[29]](304)[_0x1dce[28]]()}}function respondWithResult(_0x30eex15,_0x30eex16,_0x30eex17){_0x30eex16= _0x30eex16|| 200;return function(_0x30eex18){if(_0x30eex18){logger[_0x1dce[24]](_0x1dce[22],_0x30eex17,_0x30eex16,_0x1dce[30]);logger[_0x1dce[26]](_0x1dce[25],_0x30eex17,_0x30eex16,_0x1dce[30],JSON[_0x1dce[31]](_0x30eex18));return _0x30eex15[_0x1dce[29]](_0x30eex16)[_0x1dce[32]](_0x30eex18)};return _0x30eex15[_0x1dce[29]](304)[_0x1dce[28]]()}}function respondWithFilteredResult(_0x30eex15,_0x30eex1b,_0x30eex17){return function(_0x30eex18){if(_0x30eex18){var _0x30eex1c=_0x30eex18[_0x1dce[33]],_0x30eex1d=_0x30eex1b[_0x1dce[34]],_0x30eex1e=_0x30eex1b[_0x1dce[34]]+ _0x30eex1b[_0x1dce[35]],_0x30eex16;if(_0x30eex1e>= _0x30eex1c){_0x30eex1e= _0x30eex1c;_0x30eex16= 200}else {_0x30eex16= 206};_0x30eex15[_0x1dce[29]](_0x30eex16);logger[_0x1dce[24]](_0x1dce[22],_0x30eex17,_0x30eex16,_0x1dce[36]);logger[_0x1dce[26]](_0x1dce[25],_0x30eex17,_0x30eex16,_0x1dce[30],JSON[_0x1dce[31]](_0x30eex18));return _0x30eex15[_0x1dce[40]](_0x1dce[37],_0x30eex1d+ _0x1dce[38]+ _0x30eex1e+ _0x1dce[39]+ _0x30eex1c)[_0x1dce[32]](_0x30eex18)};return null}}function patchUpdates(_0x30eex20){return function(_0x30eex18){try{jsonpatch[_0x1dce[41]](_0x30eex18,_0x30eex20,true)}catch(err){return BPromise[_0x1dce[42]](err)};return _0x30eex18[_0x1dce[43]]()}}function saveUpdates(_0x30eex22,_0x30eex16,_0x30eex17){return function(_0x30eex18){if(_0x30eex18){return _0x30eex18[_0x1dce[46]](_0x30eex22)[_0x1dce[45]](function(_0x30eex23){logger[_0x1dce[24]](_0x1dce[22],_0x30eex17,_0x30eex16,_0x1dce[44]);logger[_0x1dce[26]](_0x1dce[25],_0x30eex17,_0x30eex16,_0x1dce[44],JSON[_0x1dce[31]](_0x30eex18));return _0x30eex23})};return null}}function removeEntity(_0x30eex15,_0x30eex16,_0x30eex17){return function(_0x30eex18){if(_0x30eex18){return _0x30eex18[_0x1dce[48]]()[_0x1dce[45]](function(){logger[_0x1dce[24]](_0x1dce[22],_0x30eex17,_0x30eex16,_0x1dce[47]);logger[_0x1dce[26]](_0x1dce[25],_0x30eex17,_0x30eex16,_0x1dce[47],JSON[_0x1dce[31]](_0x30eex18));_0x30eex15[_0x1dce[29]](204)[_0x1dce[28]]()})}}}function handleEntityNotFound(_0x30eex15,_0x30eex16,_0x30eex17){return function(_0x30eex18){if(!_0x30eex18){logger[_0x1dce[50]](_0x1dce[22],_0x30eex17,404,_0x1dce[49]);_0x30eex15[_0x1dce[29]](404)[_0x1dce[28]]();return null};return _0x30eex18}}function handleError(_0x30eex15,_0x30eex16,_0x30eex17){_0x30eex16= _0x30eex16|| 500;return function(_0x30eex27){logger[_0x1dce[50]](_0x1dce[22],_0x30eex17,_0x30eex16,JSON[_0x1dce[31]](_0x30eex27));delete _0x30eex27[_0x1dce[51]];_0x30eex15[_0x1dce[29]](_0x30eex16)[_0x1dce[52]](_0x30eex27)}}exports[_0x1dce[53]]= function(_0x30eex28,_0x30eex15){var _0x30eex1b={},_0x30eex29={};_0x30eex29[_0x1dce[54]]= _[_0x1dce[57]](db[_0x1dce[56]][_0x1dce[55]]);_0x30eex29[_0x1dce[58]]= _[_0x1dce[57]](_0x30eex28[_0x1dce[58]]);_0x30eex29[_0x1dce[59]]= _[_0x1dce[60]](_0x30eex29[_0x1dce[54]],_0x30eex29[_0x1dce[58]]);_0x30eex1b[_0x1dce[61]]= _[_0x1dce[60]](_0x30eex29[_0x1dce[54]],qs[_0x1dce[62]](_0x30eex28[_0x1dce[58]][_0x1dce[62]]));_0x30eex1b[_0x1dce[61]]= (_0x30eex1b[_0x1dce[61]][_0x1dce[63]])?_0x30eex1b[_0x1dce[61]]:_0x30eex29[_0x1dce[54]];if(!_0x30eex28[_0x1dce[58]][_0x1dce[65]](_0x1dce[64])){_0x30eex1b[_0x1dce[35]]= qs[_0x1dce[35]](_0x30eex28[_0x1dce[58]][_0x1dce[35]]);_0x30eex1b[_0x1dce[34]]= qs[_0x1dce[34]](_0x30eex28[_0x1dce[58]][_0x1dce[34]])};_0x30eex1b[_0x1dce[66]]= qs[_0x1dce[67]](_0x30eex28[_0x1dce[58]][_0x1dce[67]]);_0x30eex1b[_0x1dce[68]]= qs[_0x1dce[59]](_[_0x1dce[69]](_0x30eex28[_0x1dce[58]],_0x30eex29[_0x1dce[59]]));if(_0x30eex28[_0x1dce[58]][_0x1dce[70]]){_0x30eex1b[_0x1dce[68]]= _[_0x1dce[73]](_0x30eex1b[_0x1dce[68]],{$or:_[_0x1dce[72]](_0x30eex1b[_0x1dce[61]],function(_0x30eex2a){var _0x30eex2b={};_0x30eex2b[_0x30eex2a]= {$like:_0x1dce[71]+ _0x30eex28[_0x1dce[58]][_0x1dce[70]]+ _0x1dce[71]};return _0x30eex2b})})};_0x30eex1b= _[_0x1dce[73]]({},_0x30eex1b,_0x30eex28[_0x1dce[74]]);return db[_0x1dce[56]][_0x1dce[76]](_0x30eex1b)[_0x1dce[45]](respondWithFilteredResult(_0x30eex15,_0x30eex1b,_0x1dce[53]))[_0x1dce[75]](handleError(_0x30eex15,null,_0x1dce[53]))};exports[_0x1dce[77]]= function(_0x30eex28,_0x30eex15){var _0x30eex1b={raw:false,where:{id:_0x30eex28[_0x1dce[79]][_0x1dce[78]]}},_0x30eex29={};_0x30eex29[_0x1dce[54]]= _[_0x1dce[57]](db[_0x1dce[56]][_0x1dce[55]]);_0x30eex29[_0x1dce[58]]= _[_0x1dce[57]](_0x30eex28[_0x1dce[58]]);_0x30eex29[_0x1dce[59]]= _[_0x1dce[60]](_0x30eex29[_0x1dce[54]],_0x30eex29[_0x1dce[58]]);_0x30eex1b[_0x1dce[61]]= _[_0x1dce[60]](_0x30eex29[_0x1dce[54]],qs[_0x1dce[62]](_0x30eex28[_0x1dce[58]][_0x1dce[62]]));_0x30eex1b[_0x1dce[61]]= (_0x30eex1b[_0x1dce[61]][_0x1dce[63]])?_0x30eex1b[_0x1dce[61]]:_0x30eex29[_0x1dce[54]];_0x30eex1b= _[_0x1dce[73]]({},_0x30eex1b,_0x30eex28[_0x1dce[74]]);return db[_0x1dce[56]][_0x1dce[80]](_0x30eex1b)[_0x1dce[45]](handleEntityNotFound(_0x30eex15,null,_0x1dce[77]))[_0x1dce[45]](respondWithResult(_0x30eex15,null,_0x1dce[77]))[_0x1dce[75]](handleError(_0x30eex15,null,_0x1dce[77]))};exports[_0x1dce[81]]= function(_0x30eex28,_0x30eex15){return db[_0x1dce[56]][_0x1dce[81]](_0x30eex28[_0x1dce[82]],{})[_0x1dce[45]](respondWithResult(_0x30eex15,201,_0x1dce[81]))[_0x1dce[75]](handleError(_0x30eex15,null,_0x1dce[81]))};exports[_0x1dce[46]]= function(_0x30eex28,_0x30eex15){if(_0x30eex28[_0x1dce[82]][_0x1dce[78]]){delete _0x30eex28[_0x1dce[82]][_0x1dce[78]]};return db[_0x1dce[56]][_0x1dce[80]]({where:{id:_0x30eex28[_0x1dce[79]][_0x1dce[78]]}})[_0x1dce[45]](handleEntityNotFound(_0x30eex15,null,_0x1dce[46]))[_0x1dce[45]](saveUpdates(_0x30eex28[_0x1dce[82]],null,_0x1dce[46]))[_0x1dce[45]](respondWithResult(_0x30eex15,null,_0x1dce[46]))[_0x1dce[75]](handleError(_0x30eex15,null,_0x1dce[46]))};exports[_0x1dce[48]]= function(_0x30eex28,_0x30eex15){return db[_0x1dce[56]][_0x1dce[80]]({where:{id:_0x30eex28[_0x1dce[79]][_0x1dce[78]]}})[_0x1dce[45]](handleEntityNotFound(_0x30eex15,null,_0x1dce[48]))[_0x1dce[45]](removeEntity(_0x30eex15,null,_0x1dce[48]))[_0x1dce[75]](handleError(_0x30eex15,null,_0x1dce[48]))};exports[_0x1dce[83]]= function(_0x30eex28,_0x30eex15){return db[_0x1dce[56]][_0x1dce[83]]()[_0x1dce[45]](respondWithResult(_0x30eex15,null,_0x1dce[83]))[_0x1dce[75]](handleError(_0x30eex15,null,_0x1dce[83]))}
\ No newline at end of file
index 1de04c0..d407380 100644 (file)
@@ -1 +1 @@
-var _0x8461=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0x8461[0];var _=require(_0x8461[1]);var util=require(_0x8461[2]);var logger=require(_0x8461[4])(_0x8461[3]);var attributes=require(_0x8461[5]);module[_0x8461[6]]= function(_0x2a1ex5,_0x2a1ex6){return _0x2a1ex5[_0x8461[11]](_0x8461[7],attributes,{tableName:_0x8461[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0x8461[9],_0x8461[10]]}],timestamps:true})}
\ No newline at end of file
+var _0x8985=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0x8985[0];var _=require(_0x8985[1]);var util=require(_0x8985[2]);var logger=require(_0x8985[4])(_0x8985[3]);var attributes=require(_0x8985[5]);module[_0x8985[6]]= function(_0x444bx5,_0x444bx6){return _0x444bx5[_0x8985[11]](_0x8985[7],attributes,{tableName:_0x8985[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0x8985[9],_0x8985[10]]}],timestamps:true})}
\ No newline at end of file
index b590a0f..bdba4bb 100644 (file)
@@ -1 +1 @@
-var _0xd6f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xd6f2[0];var _=require(_0xd6f2[1]);var util=require(_0xd6f2[2]);var moment=require(_0xd6f2[3]);var BPromise=require(_0xd6f2[4]);var db=require(_0xd6f2[6])[_0xd6f2[5]];var utils=require(_0xd6f2[7]);var logger=require(_0xd6f2[9])(_0xd6f2[8]);var jayson=require(_0xd6f2[10]);var client=jayson[_0xd6f2[12]][_0xd6f2[11]]({port:9002});function respondWithRpcPromise(_0xc473xb,_0xc473xc,_0xc473xd){return  new BPromise(function(_0xc473xe,_0xc473xf){return client[_0xd6f2[25]](_0xc473xb,_0xc473xd)[_0xd6f2[24]](function(_0xc473x11){logger[_0xd6f2[17]](_0xd6f2[13],_0xc473xc,_0xd6f2[16]);logger[_0xd6f2[20]](_0xd6f2[18],_0xc473xc,_0xd6f2[16],JSON[_0xd6f2[19]](_0xc473x11));if(_0xc473x11[_0xd6f2[14]]){if(_0xc473x11[_0xd6f2[14]][_0xd6f2[21]]=== 500){logger[_0xd6f2[14]](_0xd6f2[13],_0xc473xc,_0xc473x11[_0xd6f2[14]][_0xd6f2[22]]);return _0xc473xf(_0xc473x11[_0xd6f2[14]][_0xd6f2[22]])};logger[_0xd6f2[14]](_0xd6f2[13],_0xc473xc,_0xc473x11[_0xd6f2[14]][_0xd6f2[22]]);return _0xc473xe(_0xc473x11[_0xd6f2[14]][_0xd6f2[22]])}else {logger[_0xd6f2[17]](_0xd6f2[13],_0xc473xc,_0xd6f2[16]);_0xc473xe(_0xc473x11[_0xd6f2[23]][_0xd6f2[22]])}})[_0xd6f2[15]](function(_0xc473x10){logger[_0xd6f2[14]](_0xd6f2[13],_0xc473xc,_0xc473x10);_0xc473xf(_0xc473x10)})})}exports[_0xd6f2[26]]= function(_0xc473xd){var _0xc473x12=this;return  new Promise(function(_0xc473xe,_0xc473xf){return db[_0xd6f2[31]][_0xd6f2[30]](_0xc473xd[_0xd6f2[27]],{raw:_0xc473xd[_0xd6f2[28]]?(_0xc473xd[_0xd6f2[28]][_0xd6f2[29]]=== undefined)?true:false:true})[_0xd6f2[24]](function(_0xc473x11){logger[_0xd6f2[17]](_0xd6f2[26],_0xc473xd);logger[_0xd6f2[20]](_0xd6f2[26],_0xc473xd,JSON[_0xd6f2[19]](_0xc473x11));_0xc473xe(_0xc473x11)})[_0xd6f2[15]](function(_0xc473x10){logger[_0xd6f2[14]](_0xd6f2[26],_0xc473x10[_0xd6f2[22]],_0xc473xd);_0xc473xf(_0xc473x12[_0xd6f2[14]](500,_0xc473x10[_0xd6f2[22]]))})})};exports[_0xd6f2[32]]= function(_0xc473xd){var _0xc473x12=this;return  new Promise(function(_0xc473xe,_0xc473xf){return db[_0xd6f2[31]][_0xd6f2[36]](_0xc473xd[_0xd6f2[27]],{raw:_0xc473xd[_0xd6f2[28]]?(_0xc473xd[_0xd6f2[28]][_0xd6f2[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xc473xd[_0xd6f2[28]]?_0xc473xd[_0xd6f2[28]][_0xd6f2[33]]|| null:null,attributes:_0xc473xd[_0xd6f2[28]]?_0xc473xd[_0xd6f2[28]][_0xd6f2[34]]|| null:null,limit:_0xc473xd[_0xd6f2[28]]?_0xc473xd[_0xd6f2[28]][_0xd6f2[35]]|| null:null})[_0xd6f2[24]](function(_0xc473x11){logger[_0xd6f2[17]](_0xd6f2[32],_0xc473xd);logger[_0xd6f2[20]](_0xd6f2[32],_0xc473xd,JSON[_0xd6f2[19]](_0xc473x11));_0xc473xe(_0xc473x11)})[_0xd6f2[15]](function(_0xc473x10){logger[_0xd6f2[14]](_0xd6f2[32],_0xc473x10[_0xd6f2[22]],_0xc473xd);_0xc473xf(_0xc473x12[_0xd6f2[14]](500,_0xc473x10[_0xd6f2[22]]))})})}
\ No newline at end of file
+var _0xc194=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xc194[0];var _=require(_0xc194[1]);var util=require(_0xc194[2]);var moment=require(_0xc194[3]);var BPromise=require(_0xc194[4]);var db=require(_0xc194[6])[_0xc194[5]];var utils=require(_0xc194[7]);var logger=require(_0xc194[9])(_0xc194[8]);var jayson=require(_0xc194[10]);var client=jayson[_0xc194[12]][_0xc194[11]]({port:9002});function respondWithRpcPromise(_0x9a83xb,_0x9a83xc,_0x9a83xd){return  new BPromise(function(_0x9a83xe,_0x9a83xf){return client[_0xc194[25]](_0x9a83xb,_0x9a83xd)[_0xc194[24]](function(_0x9a83x11){logger[_0xc194[17]](_0xc194[13],_0x9a83xc,_0xc194[16]);logger[_0xc194[20]](_0xc194[18],_0x9a83xc,_0xc194[16],JSON[_0xc194[19]](_0x9a83x11));if(_0x9a83x11[_0xc194[14]]){if(_0x9a83x11[_0xc194[14]][_0xc194[21]]=== 500){logger[_0xc194[14]](_0xc194[13],_0x9a83xc,_0x9a83x11[_0xc194[14]][_0xc194[22]]);return _0x9a83xf(_0x9a83x11[_0xc194[14]][_0xc194[22]])};logger[_0xc194[14]](_0xc194[13],_0x9a83xc,_0x9a83x11[_0xc194[14]][_0xc194[22]]);return _0x9a83xe(_0x9a83x11[_0xc194[14]][_0xc194[22]])}else {logger[_0xc194[17]](_0xc194[13],_0x9a83xc,_0xc194[16]);_0x9a83xe(_0x9a83x11[_0xc194[23]][_0xc194[22]])}})[_0xc194[15]](function(_0x9a83x10){logger[_0xc194[14]](_0xc194[13],_0x9a83xc,_0x9a83x10);_0x9a83xf(_0x9a83x10)})})}exports[_0xc194[26]]= function(_0x9a83xd){var _0x9a83x12=this;return  new Promise(function(_0x9a83xe,_0x9a83xf){return db[_0xc194[31]][_0xc194[30]](_0x9a83xd[_0xc194[27]],{raw:_0x9a83xd[_0xc194[28]]?(_0x9a83xd[_0xc194[28]][_0xc194[29]]=== undefined)?true:false:true})[_0xc194[24]](function(_0x9a83x11){logger[_0xc194[17]](_0xc194[26],_0x9a83xd);logger[_0xc194[20]](_0xc194[26],_0x9a83xd,JSON[_0xc194[19]](_0x9a83x11));_0x9a83xe(_0x9a83x11)})[_0xc194[15]](function(_0x9a83x10){logger[_0xc194[14]](_0xc194[26],_0x9a83x10[_0xc194[22]],_0x9a83xd);_0x9a83xf(_0x9a83x12[_0xc194[14]](500,_0x9a83x10[_0xc194[22]]))})})};exports[_0xc194[32]]= function(_0x9a83xd){var _0x9a83x12=this;return  new Promise(function(_0x9a83xe,_0x9a83xf){return db[_0xc194[31]][_0xc194[36]](_0x9a83xd[_0xc194[27]],{raw:_0x9a83xd[_0xc194[28]]?(_0x9a83xd[_0xc194[28]][_0xc194[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x9a83xd[_0xc194[28]]?_0x9a83xd[_0xc194[28]][_0xc194[33]]|| null:null,attributes:_0x9a83xd[_0xc194[28]]?_0x9a83xd[_0xc194[28]][_0xc194[34]]|| null:null,limit:_0x9a83xd[_0xc194[28]]?_0x9a83xd[_0xc194[28]][_0xc194[35]]|| null:null})[_0xc194[24]](function(_0x9a83x11){logger[_0xc194[17]](_0xc194[32],_0x9a83xd);logger[_0xc194[20]](_0xc194[32],_0x9a83xd,JSON[_0xc194[19]](_0x9a83x11));_0x9a83xe(_0x9a83x11)})[_0xc194[15]](function(_0x9a83x10){logger[_0xc194[14]](_0xc194[32],_0x9a83x10[_0xc194[22]],_0x9a83xd);_0x9a83xf(_0x9a83x12[_0xc194[14]](500,_0x9a83x10[_0xc194[22]]))})})}
\ No newline at end of file
index e30e9f9..34ec54f 100644 (file)
@@ -1 +1 @@
-var _0xcc7e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcc7e[0];var multer=require(_0xcc7e[1]);var util=require(_0xcc7e[2]);var path=require(_0xcc7e[3]);var express=require(_0xcc7e[4]);var router=express.Router();var auth=require(_0xcc7e[5]);var config=require(_0xcc7e[6]);var controller=require(_0xcc7e[7]);router[_0xcc7e[11]](_0xcc7e[8],auth[_0xcc7e[9]](),controller[_0xcc7e[10]]);router[_0xcc7e[11]](_0xcc7e[12],auth[_0xcc7e[9]](),controller[_0xcc7e[13]]);router[_0xcc7e[11]](_0xcc7e[14],auth[_0xcc7e[9]](),controller[_0xcc7e[15]]);router[_0xcc7e[17]](_0xcc7e[8],auth[_0xcc7e[9]](),controller[_0xcc7e[16]]);router[_0xcc7e[19]](_0xcc7e[14],auth[_0xcc7e[9]](),controller[_0xcc7e[18]]);router[_0xcc7e[21]](_0xcc7e[14],auth[_0xcc7e[9]](),controller[_0xcc7e[20]]);module[_0xcc7e[22]]= router
\ No newline at end of file
+var _0xe0c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe0c3[0];var multer=require(_0xe0c3[1]);var util=require(_0xe0c3[2]);var path=require(_0xe0c3[3]);var express=require(_0xe0c3[4]);var router=express.Router();var auth=require(_0xe0c3[5]);var config=require(_0xe0c3[6]);var controller=require(_0xe0c3[7]);router[_0xe0c3[11]](_0xe0c3[8],auth[_0xe0c3[9]](),controller[_0xe0c3[10]]);router[_0xe0c3[11]](_0xe0c3[12],auth[_0xe0c3[9]](),controller[_0xe0c3[13]]);router[_0xe0c3[11]](_0xe0c3[14],auth[_0xe0c3[9]](),controller[_0xe0c3[15]]);router[_0xe0c3[17]](_0xe0c3[8],auth[_0xe0c3[9]](),controller[_0xe0c3[16]]);router[_0xe0c3[19]](_0xe0c3[14],auth[_0xe0c3[9]](),controller[_0xe0c3[18]]);router[_0xe0c3[21]](_0xe0c3[14],auth[_0xe0c3[9]](),controller[_0xe0c3[20]]);module[_0xe0c3[22]]= router
\ No newline at end of file
index e88eeb1..2531ce6 100644 (file)
@@ -1 +1 @@
-var _0xb413=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x69\x64","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x64\x69\x61\x6C\x65\x72","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52"];_0xb413[0];var Sequelize=require(_0xb413[1]);module[_0xb413[2]]= {uniqueid:{type:Sequelize[_0xb413[3]],unique:_0xb413[4]},type:{type:Sequelize.ENUM(_0xb413[5],_0xb413[6],_0xb413[7],_0xb413[8],_0xb413[9],_0xb413[10])},tag:{type:Sequelize[_0xb413[3]]},accountcode:{type:Sequelize[_0xb413[3]]},source:{type:Sequelize[_0xb413[3]]},destination:{type:Sequelize[_0xb413[3]]},destinationcontext:{type:Sequelize[_0xb413[3]]},callerid:{type:Sequelize[_0xb413[3]]},channel:{type:Sequelize[_0xb413[3]]},destinationchannel:{type:Sequelize[_0xb413[3]]},lastapplication:{type:Sequelize[_0xb413[3]]},lastdata:{type:Sequelize[_0xb413[3]]},starttime:{type:Sequelize[_0xb413[11]]},answertime:{type:Sequelize[_0xb413[11]]},endtime:{type:Sequelize[_0xb413[11]]},duration:{type:Sequelize[_0xb413[12]]},billableseconds:{type:Sequelize[_0xb413[12]]},disposition:{type:Sequelize[_0xb413[3]]},amaflags:{type:Sequelize[_0xb413[3]]},userfield:{type:Sequelize[_0xb413[3]]},userDisposition:{type:Sequelize[_0xb413[3]]}}
\ No newline at end of file
+var _0x6b85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x69\x64","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x64\x69\x61\x6C\x65\x72","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52"];_0x6b85[0];var Sequelize=require(_0x6b85[1]);module[_0x6b85[2]]= {uniqueid:{type:Sequelize[_0x6b85[3]],unique:_0x6b85[4]},type:{type:Sequelize.ENUM(_0x6b85[5],_0x6b85[6],_0x6b85[7],_0x6b85[8],_0x6b85[9],_0x6b85[10])},tag:{type:Sequelize[_0x6b85[3]]},accountcode:{type:Sequelize[_0x6b85[3]]},source:{type:Sequelize[_0x6b85[3]]},destination:{type:Sequelize[_0x6b85[3]]},destinationcontext:{type:Sequelize[_0x6b85[3]]},callerid:{type:Sequelize[_0x6b85[3]]},channel:{type:Sequelize[_0x6b85[3]]},destinationchannel:{type:Sequelize[_0x6b85[3]]},lastapplication:{type:Sequelize[_0x6b85[3]]},lastdata:{type:Sequelize[_0x6b85[3]]},starttime:{type:Sequelize[_0x6b85[11]]},answertime:{type:Sequelize[_0x6b85[11]]},endtime:{type:Sequelize[_0x6b85[11]]},duration:{type:Sequelize[_0x6b85[12]]},billableseconds:{type:Sequelize[_0x6b85[12]]},disposition:{type:Sequelize[_0x6b85[3]]},amaflags:{type:Sequelize[_0x6b85[3]]},userfield:{type:Sequelize[_0x6b85[3]]},userDisposition:{type:Sequelize[_0x6b85[3]]}}
\ No newline at end of file
index 3b7250f..ca0408b 100644 (file)
@@ -1 +1 @@
-var _0xf52e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64"];_0xf52e[0];var jsonpatch=require(_0xf52e[1]);var rp=require(_0xf52e[2]);var moment=require(_0xf52e[3]);var BPromise=require(_0xf52e[4]);var util=require(_0xf52e[5]);var path=require(_0xf52e[6]);var sox=require(_0xf52e[7]);var ejs=require(_0xf52e[8]);var fs=require(_0xf52e[9]);var _=require(_0xf52e[10]);var squel=require(_0xf52e[11]);var crypto=require(_0xf52e[12]);var jsforce=require(_0xf52e[13]);var toCsv=require(_0xf52e[14]);var qs=require(_0xf52e[15]);var logger=require(_0xf52e[17])(_0xf52e[16]);var utils=require(_0xf52e[18]);var config=require(_0xf52e[19]);var db=require(_0xf52e[21])[_0xf52e[20]];function respondWithStatusCode(_0x727bx15,_0x727bx16,_0x727bx17){_0x727bx16= _0x727bx16|| 204;return function(_0x727bx18){if(_0x727bx18){logger[_0xf52e[24]](_0xf52e[22],_0x727bx17,_0x727bx16,_0xf52e[23]);logger[_0xf52e[26]](_0xf52e[25],_0x727bx17,_0x727bx16,_0xf52e[23]);return _0x727bx15[_0xf52e[27]](_0x727bx16)};return _0x727bx15[_0xf52e[29]](304)[_0xf52e[28]]()}}function respondWithResult(_0x727bx15,_0x727bx16,_0x727bx17){_0x727bx16= _0x727bx16|| 200;return function(_0x727bx18){if(_0x727bx18){logger[_0xf52e[24]](_0xf52e[22],_0x727bx17,_0x727bx16,_0xf52e[30]);logger[_0xf52e[26]](_0xf52e[25],_0x727bx17,_0x727bx16,_0xf52e[30],JSON[_0xf52e[31]](_0x727bx18));return _0x727bx15[_0xf52e[29]](_0x727bx16)[_0xf52e[32]](_0x727bx18)};return _0x727bx15[_0xf52e[29]](304)[_0xf52e[28]]()}}function respondWithFilteredResult(_0x727bx15,_0x727bx1b,_0x727bx17){return function(_0x727bx18){if(_0x727bx18){var _0x727bx1c=_0x727bx18[_0xf52e[33]],_0x727bx1d=_0x727bx1b[_0xf52e[34]],_0x727bx1e=_0x727bx1b[_0xf52e[34]]+ _0x727bx1b[_0xf52e[35]],_0x727bx16;if(_0x727bx1e>= _0x727bx1c){_0x727bx1e= _0x727bx1c;_0x727bx16= 200}else {_0x727bx16= 206};_0x727bx15[_0xf52e[29]](_0x727bx16);logger[_0xf52e[24]](_0xf52e[22],_0x727bx17,_0x727bx16,_0xf52e[36]);logger[_0xf52e[26]](_0xf52e[25],_0x727bx17,_0x727bx16,_0xf52e[30],JSON[_0xf52e[31]](_0x727bx18));return _0x727bx15[_0xf52e[40]](_0xf52e[37],_0x727bx1d+ _0xf52e[38]+ _0x727bx1e+ _0xf52e[39]+ _0x727bx1c)[_0xf52e[32]](_0x727bx18)};return null}}function patchUpdates(_0x727bx20){return function(_0x727bx18){try{jsonpatch[_0xf52e[41]](_0x727bx18,_0x727bx20,true)}catch(err){return BPromise[_0xf52e[42]](err)};return _0x727bx18[_0xf52e[43]]()}}function saveUpdates(_0x727bx22,_0x727bx16,_0x727bx17){return function(_0x727bx18){if(_0x727bx18){return _0x727bx18[_0xf52e[46]](_0x727bx22)[_0xf52e[45]](function(_0x727bx23){logger[_0xf52e[24]](_0xf52e[22],_0x727bx17,_0x727bx16,_0xf52e[44]);logger[_0xf52e[26]](_0xf52e[25],_0x727bx17,_0x727bx16,_0xf52e[44],JSON[_0xf52e[31]](_0x727bx18));return _0x727bx23})};return null}}function removeEntity(_0x727bx15,_0x727bx16,_0x727bx17){return function(_0x727bx18){if(_0x727bx18){return _0x727bx18[_0xf52e[48]]()[_0xf52e[45]](function(){logger[_0xf52e[24]](_0xf52e[22],_0x727bx17,_0x727bx16,_0xf52e[47]);logger[_0xf52e[26]](_0xf52e[25],_0x727bx17,_0x727bx16,_0xf52e[47],JSON[_0xf52e[31]](_0x727bx18));_0x727bx15[_0xf52e[29]](204)[_0xf52e[28]]()})}}}function handleEntityNotFound(_0x727bx15,_0x727bx16,_0x727bx17){return function(_0x727bx18){if(!_0x727bx18){logger[_0xf52e[50]](_0xf52e[22],_0x727bx17,404,_0xf52e[49]);_0x727bx15[_0xf52e[29]](404)[_0xf52e[28]]();return null};return _0x727bx18}}function handleError(_0x727bx15,_0x727bx16,_0x727bx17){_0x727bx16= _0x727bx16|| 500;return function(_0x727bx27){logger[_0xf52e[50]](_0xf52e[22],_0x727bx17,_0x727bx16,JSON[_0xf52e[31]](_0x727bx27));delete _0x727bx27[_0xf52e[51]];_0x727bx15[_0xf52e[29]](_0x727bx16)[_0xf52e[52]](_0x727bx27)}}exports[_0xf52e[53]]= function(_0x727bx28,_0x727bx15){var _0x727bx1b={},_0x727bx29={};_0x727bx29[_0xf52e[54]]= _[_0xf52e[57]](db[_0xf52e[56]][_0xf52e[55]]);_0x727bx29[_0xf52e[58]]= _[_0xf52e[57]](_0x727bx28[_0xf52e[58]]);_0x727bx29[_0xf52e[59]]= _[_0xf52e[60]](_0x727bx29[_0xf52e[54]],_0x727bx29[_0xf52e[58]]);_0x727bx1b[_0xf52e[61]]= _[_0xf52e[60]](_0x727bx29[_0xf52e[54]],qs[_0xf52e[62]](_0x727bx28[_0xf52e[58]][_0xf52e[62]]));_0x727bx1b[_0xf52e[61]]= (_0x727bx1b[_0xf52e[61]][_0xf52e[63]])?_0x727bx1b[_0xf52e[61]]:_0x727bx29[_0xf52e[54]];if(!_0x727bx28[_0xf52e[58]][_0xf52e[65]](_0xf52e[64])){_0x727bx1b[_0xf52e[35]]= qs[_0xf52e[35]](_0x727bx28[_0xf52e[58]][_0xf52e[35]]);_0x727bx1b[_0xf52e[34]]= qs[_0xf52e[34]](_0x727bx28[_0xf52e[58]][_0xf52e[34]])};_0x727bx1b[_0xf52e[66]]= qs[_0xf52e[67]](_0x727bx28[_0xf52e[58]][_0xf52e[67]]);_0x727bx1b[_0xf52e[68]]= qs[_0xf52e[59]](_[_0xf52e[69]](_0x727bx28[_0xf52e[58]],_0x727bx29[_0xf52e[59]]));if(_0x727bx28[_0xf52e[58]][_0xf52e[70]]){_0x727bx1b[_0xf52e[68]]= _[_0xf52e[73]](_0x727bx1b[_0xf52e[68]],{$or:_[_0xf52e[72]](_0x727bx1b[_0xf52e[61]],function(_0x727bx2a){var _0x727bx2b={};_0x727bx2b[_0x727bx2a]= {$like:_0xf52e[71]+ _0x727bx28[_0xf52e[58]][_0xf52e[70]]+ _0xf52e[71]};return _0x727bx2b})})};_0x727bx1b= _[_0xf52e[73]]({},_0x727bx1b,_0x727bx28[_0xf52e[74]]);return db[_0xf52e[56]][_0xf52e[76]](_0x727bx1b)[_0xf52e[45]](respondWithFilteredResult(_0x727bx15,_0x727bx1b,_0xf52e[53]))[_0xf52e[75]](handleError(_0x727bx15,null,_0xf52e[53]))};exports[_0xf52e[77]]= function(_0x727bx28,_0x727bx15){var _0x727bx1b={raw:true,where:{id:_0x727bx28[_0xf52e[79]][_0xf52e[78]]}},_0x727bx29={};_0x727bx29[_0xf52e[54]]= _[_0xf52e[57]](db[_0xf52e[56]][_0xf52e[55]]);_0x727bx29[_0xf52e[58]]= _[_0xf52e[57]](_0x727bx28[_0xf52e[58]]);_0x727bx29[_0xf52e[59]]= _[_0xf52e[60]](_0x727bx29[_0xf52e[54]],_0x727bx29[_0xf52e[58]]);_0x727bx1b[_0xf52e[61]]= _[_0xf52e[60]](_0x727bx29[_0xf52e[54]],qs[_0xf52e[62]](_0x727bx28[_0xf52e[58]][_0xf52e[62]]));_0x727bx1b[_0xf52e[61]]= (_0x727bx1b[_0xf52e[61]][_0xf52e[63]])?_0x727bx1b[_0xf52e[61]]:_0x727bx29[_0xf52e[54]];_0x727bx1b= _[_0xf52e[73]]({},_0x727bx1b,_0x727bx28[_0xf52e[74]]);return db[_0xf52e[56]][_0xf52e[80]](_0x727bx1b)[_0xf52e[45]](handleEntityNotFound(_0x727bx15,null,_0xf52e[77]))[_0xf52e[45]](respondWithResult(_0x727bx15,null,_0xf52e[77]))[_0xf52e[75]](handleError(_0x727bx15,null,_0xf52e[77]))};exports[_0xf52e[81]]= function(_0x727bx28,_0x727bx15){return db[_0xf52e[56]][_0xf52e[81]](_0x727bx28[_0xf52e[82]],{})[_0xf52e[45]](respondWithResult(_0x727bx15,201,_0xf52e[81]))[_0xf52e[75]](handleError(_0x727bx15,null,_0xf52e[81]))};exports[_0xf52e[48]]= function(_0x727bx28,_0x727bx15){return db[_0xf52e[56]][_0xf52e[80]]({where:{id:_0x727bx28[_0xf52e[79]][_0xf52e[78]]}})[_0xf52e[45]](handleEntityNotFound(_0x727bx15,null,_0xf52e[48]))[_0xf52e[45]](removeEntity(_0x727bx15,null,_0xf52e[48]))[_0xf52e[75]](handleError(_0x727bx15,null,_0xf52e[48]))};exports[_0xf52e[83]]= function(_0x727bx28,_0x727bx15){return db[_0xf52e[56]][_0xf52e[83]]()[_0xf52e[45]](respondWithResult(_0x727bx15,null,_0xf52e[83]))[_0xf52e[75]](handleError(_0x727bx15,null,_0xf52e[83]))};exports[_0xf52e[46]]= function(_0x727bx28,_0x727bx15){if(_0x727bx28[_0xf52e[82]][_0xf52e[84]]){delete _0x727bx28[_0xf52e[82]][_0xf52e[84]]};return db[_0xf52e[56]][_0xf52e[80]]({where:{uniqueid:_0x727bx28[_0xf52e[79]][_0xf52e[78]]}})[_0xf52e[45]](handleEntityNotFound(_0x727bx15,null,_0xf52e[46]))[_0xf52e[45]](saveUpdates(_0x727bx28[_0xf52e[82]],null,_0xf52e[46]))[_0xf52e[45]](respondWithResult(_0x727bx15,null,_0xf52e[46]))[_0xf52e[75]](handleError(_0x727bx15,null,_0xf52e[46]))}
\ No newline at end of file
+var _0x9a20=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64"];_0x9a20[0];var jsonpatch=require(_0x9a20[1]);var rp=require(_0x9a20[2]);var moment=require(_0x9a20[3]);var BPromise=require(_0x9a20[4]);var util=require(_0x9a20[5]);var path=require(_0x9a20[6]);var sox=require(_0x9a20[7]);var ejs=require(_0x9a20[8]);var fs=require(_0x9a20[9]);var _=require(_0x9a20[10]);var squel=require(_0x9a20[11]);var crypto=require(_0x9a20[12]);var jsforce=require(_0x9a20[13]);var toCsv=require(_0x9a20[14]);var qs=require(_0x9a20[15]);var logger=require(_0x9a20[17])(_0x9a20[16]);var utils=require(_0x9a20[18]);var config=require(_0x9a20[19]);var db=require(_0x9a20[21])[_0x9a20[20]];function respondWithStatusCode(_0xa239x15,_0xa239x16,_0xa239x17){_0xa239x16= _0xa239x16|| 204;return function(_0xa239x18){if(_0xa239x18){logger[_0x9a20[24]](_0x9a20[22],_0xa239x17,_0xa239x16,_0x9a20[23]);logger[_0x9a20[26]](_0x9a20[25],_0xa239x17,_0xa239x16,_0x9a20[23]);return _0xa239x15[_0x9a20[27]](_0xa239x16)};return _0xa239x15[_0x9a20[29]](304)[_0x9a20[28]]()}}function respondWithResult(_0xa239x15,_0xa239x16,_0xa239x17){_0xa239x16= _0xa239x16|| 200;return function(_0xa239x18){if(_0xa239x18){logger[_0x9a20[24]](_0x9a20[22],_0xa239x17,_0xa239x16,_0x9a20[30]);logger[_0x9a20[26]](_0x9a20[25],_0xa239x17,_0xa239x16,_0x9a20[30],JSON[_0x9a20[31]](_0xa239x18));return _0xa239x15[_0x9a20[29]](_0xa239x16)[_0x9a20[32]](_0xa239x18)};return _0xa239x15[_0x9a20[29]](304)[_0x9a20[28]]()}}function respondWithFilteredResult(_0xa239x15,_0xa239x1b,_0xa239x17){return function(_0xa239x18){if(_0xa239x18){var _0xa239x1c=_0xa239x18[_0x9a20[33]],_0xa239x1d=_0xa239x1b[_0x9a20[34]],_0xa239x1e=_0xa239x1b[_0x9a20[34]]+ _0xa239x1b[_0x9a20[35]],_0xa239x16;if(_0xa239x1e>= _0xa239x1c){_0xa239x1e= _0xa239x1c;_0xa239x16= 200}else {_0xa239x16= 206};_0xa239x15[_0x9a20[29]](_0xa239x16);logger[_0x9a20[24]](_0x9a20[22],_0xa239x17,_0xa239x16,_0x9a20[36]);logger[_0x9a20[26]](_0x9a20[25],_0xa239x17,_0xa239x16,_0x9a20[30],JSON[_0x9a20[31]](_0xa239x18));return _0xa239x15[_0x9a20[40]](_0x9a20[37],_0xa239x1d+ _0x9a20[38]+ _0xa239x1e+ _0x9a20[39]+ _0xa239x1c)[_0x9a20[32]](_0xa239x18)};return null}}function patchUpdates(_0xa239x20){return function(_0xa239x18){try{jsonpatch[_0x9a20[41]](_0xa239x18,_0xa239x20,true)}catch(err){return BPromise[_0x9a20[42]](err)};return _0xa239x18[_0x9a20[43]]()}}function saveUpdates(_0xa239x22,_0xa239x16,_0xa239x17){return function(_0xa239x18){if(_0xa239x18){return _0xa239x18[_0x9a20[46]](_0xa239x22)[_0x9a20[45]](function(_0xa239x23){logger[_0x9a20[24]](_0x9a20[22],_0xa239x17,_0xa239x16,_0x9a20[44]);logger[_0x9a20[26]](_0x9a20[25],_0xa239x17,_0xa239x16,_0x9a20[44],JSON[_0x9a20[31]](_0xa239x18));return _0xa239x23})};return null}}function removeEntity(_0xa239x15,_0xa239x16,_0xa239x17){return function(_0xa239x18){if(_0xa239x18){return _0xa239x18[_0x9a20[48]]()[_0x9a20[45]](function(){logger[_0x9a20[24]](_0x9a20[22],_0xa239x17,_0xa239x16,_0x9a20[47]);logger[_0x9a20[26]](_0x9a20[25],_0xa239x17,_0xa239x16,_0x9a20[47],JSON[_0x9a20[31]](_0xa239x18));_0xa239x15[_0x9a20[29]](204)[_0x9a20[28]]()})}}}function handleEntityNotFound(_0xa239x15,_0xa239x16,_0xa239x17){return function(_0xa239x18){if(!_0xa239x18){logger[_0x9a20[50]](_0x9a20[22],_0xa239x17,404,_0x9a20[49]);_0xa239x15[_0x9a20[29]](404)[_0x9a20[28]]();return null};return _0xa239x18}}function handleError(_0xa239x15,_0xa239x16,_0xa239x17){_0xa239x16= _0xa239x16|| 500;return function(_0xa239x27){logger[_0x9a20[50]](_0x9a20[22],_0xa239x17,_0xa239x16,JSON[_0x9a20[31]](_0xa239x27));delete _0xa239x27[_0x9a20[51]];_0xa239x15[_0x9a20[29]](_0xa239x16)[_0x9a20[52]](_0xa239x27)}}exports[_0x9a20[53]]= function(_0xa239x28,_0xa239x15){var _0xa239x1b={},_0xa239x29={};_0xa239x29[_0x9a20[54]]= _[_0x9a20[57]](db[_0x9a20[56]][_0x9a20[55]]);_0xa239x29[_0x9a20[58]]= _[_0x9a20[57]](_0xa239x28[_0x9a20[58]]);_0xa239x29[_0x9a20[59]]= _[_0x9a20[60]](_0xa239x29[_0x9a20[54]],_0xa239x29[_0x9a20[58]]);_0xa239x1b[_0x9a20[61]]= _[_0x9a20[60]](_0xa239x29[_0x9a20[54]],qs[_0x9a20[62]](_0xa239x28[_0x9a20[58]][_0x9a20[62]]));_0xa239x1b[_0x9a20[61]]= (_0xa239x1b[_0x9a20[61]][_0x9a20[63]])?_0xa239x1b[_0x9a20[61]]:_0xa239x29[_0x9a20[54]];if(!_0xa239x28[_0x9a20[58]][_0x9a20[65]](_0x9a20[64])){_0xa239x1b[_0x9a20[35]]= qs[_0x9a20[35]](_0xa239x28[_0x9a20[58]][_0x9a20[35]]);_0xa239x1b[_0x9a20[34]]= qs[_0x9a20[34]](_0xa239x28[_0x9a20[58]][_0x9a20[34]])};_0xa239x1b[_0x9a20[66]]= qs[_0x9a20[67]](_0xa239x28[_0x9a20[58]][_0x9a20[67]]);_0xa239x1b[_0x9a20[68]]= qs[_0x9a20[59]](_[_0x9a20[69]](_0xa239x28[_0x9a20[58]],_0xa239x29[_0x9a20[59]]));if(_0xa239x28[_0x9a20[58]][_0x9a20[70]]){_0xa239x1b[_0x9a20[68]]= _[_0x9a20[73]](_0xa239x1b[_0x9a20[68]],{$or:_[_0x9a20[72]](_0xa239x1b[_0x9a20[61]],function(_0xa239x2a){var _0xa239x2b={};_0xa239x2b[_0xa239x2a]= {$like:_0x9a20[71]+ _0xa239x28[_0x9a20[58]][_0x9a20[70]]+ _0x9a20[71]};return _0xa239x2b})})};_0xa239x1b= _[_0x9a20[73]]({},_0xa239x1b,_0xa239x28[_0x9a20[74]]);return db[_0x9a20[56]][_0x9a20[76]](_0xa239x1b)[_0x9a20[45]](respondWithFilteredResult(_0xa239x15,_0xa239x1b,_0x9a20[53]))[_0x9a20[75]](handleError(_0xa239x15,null,_0x9a20[53]))};exports[_0x9a20[77]]= function(_0xa239x28,_0xa239x15){var _0xa239x1b={raw:true,where:{id:_0xa239x28[_0x9a20[79]][_0x9a20[78]]}},_0xa239x29={};_0xa239x29[_0x9a20[54]]= _[_0x9a20[57]](db[_0x9a20[56]][_0x9a20[55]]);_0xa239x29[_0x9a20[58]]= _[_0x9a20[57]](_0xa239x28[_0x9a20[58]]);_0xa239x29[_0x9a20[59]]= _[_0x9a20[60]](_0xa239x29[_0x9a20[54]],_0xa239x29[_0x9a20[58]]);_0xa239x1b[_0x9a20[61]]= _[_0x9a20[60]](_0xa239x29[_0x9a20[54]],qs[_0x9a20[62]](_0xa239x28[_0x9a20[58]][_0x9a20[62]]));_0xa239x1b[_0x9a20[61]]= (_0xa239x1b[_0x9a20[61]][_0x9a20[63]])?_0xa239x1b[_0x9a20[61]]:_0xa239x29[_0x9a20[54]];_0xa239x1b= _[_0x9a20[73]]({},_0xa239x1b,_0xa239x28[_0x9a20[74]]);return db[_0x9a20[56]][_0x9a20[80]](_0xa239x1b)[_0x9a20[45]](handleEntityNotFound(_0xa239x15,null,_0x9a20[77]))[_0x9a20[45]](respondWithResult(_0xa239x15,null,_0x9a20[77]))[_0x9a20[75]](handleError(_0xa239x15,null,_0x9a20[77]))};exports[_0x9a20[81]]= function(_0xa239x28,_0xa239x15){return db[_0x9a20[56]][_0x9a20[81]](_0xa239x28[_0x9a20[82]],{})[_0x9a20[45]](respondWithResult(_0xa239x15,201,_0x9a20[81]))[_0x9a20[75]](handleError(_0xa239x15,null,_0x9a20[81]))};exports[_0x9a20[48]]= function(_0xa239x28,_0xa239x15){return db[_0x9a20[56]][_0x9a20[80]]({where:{id:_0xa239x28[_0x9a20[79]][_0x9a20[78]]}})[_0x9a20[45]](handleEntityNotFound(_0xa239x15,null,_0x9a20[48]))[_0x9a20[45]](removeEntity(_0xa239x15,null,_0x9a20[48]))[_0x9a20[75]](handleError(_0xa239x15,null,_0x9a20[48]))};exports[_0x9a20[83]]= function(_0xa239x28,_0xa239x15){return db[_0x9a20[56]][_0x9a20[83]]()[_0x9a20[45]](respondWithResult(_0xa239x15,null,_0x9a20[83]))[_0x9a20[75]](handleError(_0xa239x15,null,_0x9a20[83]))};exports[_0x9a20[46]]= function(_0xa239x28,_0xa239x15){if(_0xa239x28[_0x9a20[82]][_0x9a20[84]]){delete _0xa239x28[_0x9a20[82]][_0x9a20[84]]};return db[_0x9a20[56]][_0x9a20[80]]({where:{uniqueid:_0xa239x28[_0x9a20[79]][_0x9a20[78]]}})[_0x9a20[45]](handleEntityNotFound(_0xa239x15,null,_0x9a20[46]))[_0x9a20[45]](saveUpdates(_0xa239x28[_0x9a20[82]],null,_0x9a20[46]))[_0x9a20[45]](respondWithResult(_0xa239x15,null,_0x9a20[46]))[_0x9a20[75]](handleError(_0xa239x15,null,_0x9a20[46]))}
\ No newline at end of file
index ce6d5b4..d437ba6 100644 (file)
@@ -1 +1 @@
-var _0x178b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x64\x65\x66\x69\x6E\x65"];_0x178b[0];var _=require(_0x178b[1]);var util=require(_0x178b[2]);var logger=require(_0x178b[4])(_0x178b[3]);var attributes=require(_0x178b[5]);module[_0x178b[6]]= function(_0x8c3bx5,_0x8c3bx6){return _0x8c3bx5[_0x178b[9]](_0x178b[7],attributes,{tableName:_0x178b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xfa9d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x64\x65\x66\x69\x6E\x65"];_0xfa9d[0];var _=require(_0xfa9d[1]);var util=require(_0xfa9d[2]);var logger=require(_0xfa9d[4])(_0xfa9d[3]);var attributes=require(_0xfa9d[5]);module[_0xfa9d[6]]= function(_0x5309x5,_0x5309x6){return _0x5309x5[_0xfa9d[9]](_0xfa9d[7],attributes,{tableName:_0xfa9d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index b8d4377..9f9595c 100644 (file)
@@ -1 +1 @@
-var _0xe0ff=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0xe0ff[0];var _=require(_0xe0ff[1]);var util=require(_0xe0ff[2]);var moment=require(_0xe0ff[3]);var BPromise=require(_0xe0ff[4]);var db=require(_0xe0ff[6])[_0xe0ff[5]];var utils=require(_0xe0ff[7]);var logger=require(_0xe0ff[9])(_0xe0ff[8]);var jayson=require(_0xe0ff[10]);var client=jayson[_0xe0ff[12]][_0xe0ff[11]]({port:9002});function respondWithRpcPromise(_0x4b4fxb,_0x4b4fxc,_0x4b4fxd){return  new BPromise(function(_0x4b4fxe,_0x4b4fxf){return client[_0xe0ff[25]](_0x4b4fxb,_0x4b4fxd)[_0xe0ff[24]](function(_0x4b4fx11){logger[_0xe0ff[17]](_0xe0ff[13],_0x4b4fxc,_0xe0ff[16]);logger[_0xe0ff[20]](_0xe0ff[18],_0x4b4fxc,_0xe0ff[16],JSON[_0xe0ff[19]](_0x4b4fx11));if(_0x4b4fx11[_0xe0ff[14]]){if(_0x4b4fx11[_0xe0ff[14]][_0xe0ff[21]]=== 500){logger[_0xe0ff[14]](_0xe0ff[13],_0x4b4fxc,_0x4b4fx11[_0xe0ff[14]][_0xe0ff[22]]);return _0x4b4fxf(_0x4b4fx11[_0xe0ff[14]][_0xe0ff[22]])};logger[_0xe0ff[14]](_0xe0ff[13],_0x4b4fxc,_0x4b4fx11[_0xe0ff[14]][_0xe0ff[22]]);return _0x4b4fxe(_0x4b4fx11[_0xe0ff[14]][_0xe0ff[22]])}else {logger[_0xe0ff[17]](_0xe0ff[13],_0x4b4fxc,_0xe0ff[16]);_0x4b4fxe(_0x4b4fx11[_0xe0ff[23]][_0xe0ff[22]])}})[_0xe0ff[15]](function(_0x4b4fx10){logger[_0xe0ff[14]](_0xe0ff[13],_0x4b4fxc,_0x4b4fx10);_0x4b4fxf(_0x4b4fx10)})})}exports[_0xe0ff[26]]= function(_0x4b4fxd){var _0x4b4fx12=this;return  new Promise(function(_0x4b4fxe,_0x4b4fxf){return db[_0xe0ff[37]][_0xe0ff[36]]({raw:_0x4b4fxd[_0xe0ff[27]]?(_0x4b4fxd[_0xe0ff[27]][_0xe0ff[28]]=== undefined)?true:false:true,where:_0x4b4fxd[_0xe0ff[27]]?_0x4b4fxd[_0xe0ff[27]][_0xe0ff[29]]|| null:null,attributes:_0x4b4fxd[_0xe0ff[27]]?_0x4b4fxd[_0xe0ff[27]][_0xe0ff[30]]|| null:null,limit:_0x4b4fxd[_0xe0ff[27]]?_0x4b4fxd[_0xe0ff[27]][_0xe0ff[31]]|| null:null,include:_0x4b4fxd[_0xe0ff[27]]?(_0x4b4fxd[_0xe0ff[27]][_0xe0ff[32]]?_[_0xe0ff[35]](_0x4b4fxd[_0xe0ff[27]][_0xe0ff[32]],function(_0x4b4fx13){return {model:db[_0x4b4fx13[_0xe0ff[33]]],as:_0x4b4fx13[_0xe0ff[34]],attributes:_0x4b4fx13[_0xe0ff[30]],include:_0x4b4fx13[_0xe0ff[32]]?_[_0xe0ff[35]](_0x4b4fx13[_0xe0ff[32]],function(_0x4b4fx14){return {model:db[_0x4b4fx14[_0xe0ff[33]]],as:_0x4b4fx14[_0xe0ff[34]],attributes:_0x4b4fx14[_0xe0ff[30]],include:_0x4b4fx14[_0xe0ff[32]]?_[_0xe0ff[35]](_0x4b4fx14[_0xe0ff[32]],function(_0x4b4fx15){return {model:db[_0x4b4fx15[_0xe0ff[33]]],as:_0x4b4fx15[_0xe0ff[34]],attributes:_0x4b4fx15[_0xe0ff[30]]}}):[]}}):[]}}):[]):[]})[_0xe0ff[24]](function(_0x4b4fx11){logger[_0xe0ff[17]](_0xe0ff[26],_0x4b4fxd);logger[_0xe0ff[20]](_0xe0ff[26],_0x4b4fxd,JSON[_0xe0ff[19]](_0x4b4fx11));_0x4b4fxe(_0x4b4fx11)})[_0xe0ff[15]](function(_0x4b4fx10){logger[_0xe0ff[14]](_0xe0ff[26],_0x4b4fx10[_0xe0ff[22]],_0x4b4fxd);_0x4b4fxf(_0x4b4fx12[_0xe0ff[14]](500,_0x4b4fx10[_0xe0ff[22]]))})})};exports[_0xe0ff[38]]= function(_0x4b4fxd){var _0x4b4fx12=this;return  new Promise(function(_0x4b4fxe,_0x4b4fxf){return db[_0xe0ff[37]][_0xe0ff[40]](_0x4b4fxd[_0xe0ff[39]],{raw:_0x4b4fxd[_0xe0ff[27]]?(_0x4b4fxd[_0xe0ff[27]][_0xe0ff[28]]=== undefined)?true:false:true})[_0xe0ff[24]](function(_0x4b4fx11){logger[_0xe0ff[17]](_0xe0ff[38],_0x4b4fxd);logger[_0xe0ff[20]](_0xe0ff[38],_0x4b4fxd,JSON[_0xe0ff[19]](_0x4b4fx11));_0x4b4fxe(_0x4b4fx11)})[_0xe0ff[15]](function(_0x4b4fx10){logger[_0xe0ff[14]](_0xe0ff[38],_0x4b4fx10[_0xe0ff[22]],_0x4b4fxd);_0x4b4fxf(_0x4b4fx12[_0xe0ff[14]](500,_0x4b4fx10[_0xe0ff[22]]))})})};exports[_0xe0ff[41]]= function(_0x4b4fxd){var _0x4b4fx12=this;return  new Promise(function(_0x4b4fxe,_0x4b4fxf){return db[_0xe0ff[37]][_0xe0ff[42]](_0x4b4fxd[_0xe0ff[39]],{raw:_0x4b4fxd[_0xe0ff[27]]?(_0x4b4fxd[_0xe0ff[27]][_0xe0ff[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x4b4fxd[_0xe0ff[27]]?_0x4b4fxd[_0xe0ff[27]][_0xe0ff[29]]|| null:null,attributes:_0x4b4fxd[_0xe0ff[27]]?_0x4b4fxd[_0xe0ff[27]][_0xe0ff[30]]|| null:null,limit:_0x4b4fxd[_0xe0ff[27]]?_0x4b4fxd[_0xe0ff[27]][_0xe0ff[31]]|| null:null})[_0xe0ff[24]](function(_0x4b4fx11){logger[_0xe0ff[17]](_0xe0ff[41],_0x4b4fxd);logger[_0xe0ff[20]](_0xe0ff[41],_0x4b4fxd,JSON[_0xe0ff[19]](_0x4b4fx11));_0x4b4fxe(_0x4b4fx11)})[_0xe0ff[15]](function(_0x4b4fx10){logger[_0xe0ff[14]](_0xe0ff[41],_0x4b4fx10[_0xe0ff[22]],_0x4b4fxd);_0x4b4fxf(_0x4b4fx12[_0xe0ff[14]](500,_0x4b4fx10[_0xe0ff[22]]))})})}
\ No newline at end of file
+var _0x7c29=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0x7c29[0];var _=require(_0x7c29[1]);var util=require(_0x7c29[2]);var moment=require(_0x7c29[3]);var BPromise=require(_0x7c29[4]);var db=require(_0x7c29[6])[_0x7c29[5]];var utils=require(_0x7c29[7]);var logger=require(_0x7c29[9])(_0x7c29[8]);var jayson=require(_0x7c29[10]);var client=jayson[_0x7c29[12]][_0x7c29[11]]({port:9002});function respondWithRpcPromise(_0x53b7xb,_0x53b7xc,_0x53b7xd){return  new BPromise(function(_0x53b7xe,_0x53b7xf){return client[_0x7c29[25]](_0x53b7xb,_0x53b7xd)[_0x7c29[24]](function(_0x53b7x11){logger[_0x7c29[17]](_0x7c29[13],_0x53b7xc,_0x7c29[16]);logger[_0x7c29[20]](_0x7c29[18],_0x53b7xc,_0x7c29[16],JSON[_0x7c29[19]](_0x53b7x11));if(_0x53b7x11[_0x7c29[14]]){if(_0x53b7x11[_0x7c29[14]][_0x7c29[21]]=== 500){logger[_0x7c29[14]](_0x7c29[13],_0x53b7xc,_0x53b7x11[_0x7c29[14]][_0x7c29[22]]);return _0x53b7xf(_0x53b7x11[_0x7c29[14]][_0x7c29[22]])};logger[_0x7c29[14]](_0x7c29[13],_0x53b7xc,_0x53b7x11[_0x7c29[14]][_0x7c29[22]]);return _0x53b7xe(_0x53b7x11[_0x7c29[14]][_0x7c29[22]])}else {logger[_0x7c29[17]](_0x7c29[13],_0x53b7xc,_0x7c29[16]);_0x53b7xe(_0x53b7x11[_0x7c29[23]][_0x7c29[22]])}})[_0x7c29[15]](function(_0x53b7x10){logger[_0x7c29[14]](_0x7c29[13],_0x53b7xc,_0x53b7x10);_0x53b7xf(_0x53b7x10)})})}exports[_0x7c29[26]]= function(_0x53b7xd){var _0x53b7x12=this;return  new Promise(function(_0x53b7xe,_0x53b7xf){return db[_0x7c29[37]][_0x7c29[36]]({raw:_0x53b7xd[_0x7c29[27]]?(_0x53b7xd[_0x7c29[27]][_0x7c29[28]]=== undefined)?true:false:true,where:_0x53b7xd[_0x7c29[27]]?_0x53b7xd[_0x7c29[27]][_0x7c29[29]]|| null:null,attributes:_0x53b7xd[_0x7c29[27]]?_0x53b7xd[_0x7c29[27]][_0x7c29[30]]|| null:null,limit:_0x53b7xd[_0x7c29[27]]?_0x53b7xd[_0x7c29[27]][_0x7c29[31]]|| null:null,include:_0x53b7xd[_0x7c29[27]]?(_0x53b7xd[_0x7c29[27]][_0x7c29[32]]?_[_0x7c29[35]](_0x53b7xd[_0x7c29[27]][_0x7c29[32]],function(_0x53b7x13){return {model:db[_0x53b7x13[_0x7c29[33]]],as:_0x53b7x13[_0x7c29[34]],attributes:_0x53b7x13[_0x7c29[30]],include:_0x53b7x13[_0x7c29[32]]?_[_0x7c29[35]](_0x53b7x13[_0x7c29[32]],function(_0x53b7x14){return {model:db[_0x53b7x14[_0x7c29[33]]],as:_0x53b7x14[_0x7c29[34]],attributes:_0x53b7x14[_0x7c29[30]],include:_0x53b7x14[_0x7c29[32]]?_[_0x7c29[35]](_0x53b7x14[_0x7c29[32]],function(_0x53b7x15){return {model:db[_0x53b7x15[_0x7c29[33]]],as:_0x53b7x15[_0x7c29[34]],attributes:_0x53b7x15[_0x7c29[30]]}}):[]}}):[]}}):[]):[]})[_0x7c29[24]](function(_0x53b7x11){logger[_0x7c29[17]](_0x7c29[26],_0x53b7xd);logger[_0x7c29[20]](_0x7c29[26],_0x53b7xd,JSON[_0x7c29[19]](_0x53b7x11));_0x53b7xe(_0x53b7x11)})[_0x7c29[15]](function(_0x53b7x10){logger[_0x7c29[14]](_0x7c29[26],_0x53b7x10[_0x7c29[22]],_0x53b7xd);_0x53b7xf(_0x53b7x12[_0x7c29[14]](500,_0x53b7x10[_0x7c29[22]]))})})};exports[_0x7c29[38]]= function(_0x53b7xd){var _0x53b7x12=this;return  new Promise(function(_0x53b7xe,_0x53b7xf){return db[_0x7c29[37]][_0x7c29[40]](_0x53b7xd[_0x7c29[39]],{raw:_0x53b7xd[_0x7c29[27]]?(_0x53b7xd[_0x7c29[27]][_0x7c29[28]]=== undefined)?true:false:true})[_0x7c29[24]](function(_0x53b7x11){logger[_0x7c29[17]](_0x7c29[38],_0x53b7xd);logger[_0x7c29[20]](_0x7c29[38],_0x53b7xd,JSON[_0x7c29[19]](_0x53b7x11));_0x53b7xe(_0x53b7x11)})[_0x7c29[15]](function(_0x53b7x10){logger[_0x7c29[14]](_0x7c29[38],_0x53b7x10[_0x7c29[22]],_0x53b7xd);_0x53b7xf(_0x53b7x12[_0x7c29[14]](500,_0x53b7x10[_0x7c29[22]]))})})};exports[_0x7c29[41]]= function(_0x53b7xd){var _0x53b7x12=this;return  new Promise(function(_0x53b7xe,_0x53b7xf){return db[_0x7c29[37]][_0x7c29[42]](_0x53b7xd[_0x7c29[39]],{raw:_0x53b7xd[_0x7c29[27]]?(_0x53b7xd[_0x7c29[27]][_0x7c29[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x53b7xd[_0x7c29[27]]?_0x53b7xd[_0x7c29[27]][_0x7c29[29]]|| null:null,attributes:_0x53b7xd[_0x7c29[27]]?_0x53b7xd[_0x7c29[27]][_0x7c29[30]]|| null:null,limit:_0x53b7xd[_0x7c29[27]]?_0x53b7xd[_0x7c29[27]][_0x7c29[31]]|| null:null})[_0x7c29[24]](function(_0x53b7x11){logger[_0x7c29[17]](_0x7c29[41],_0x53b7xd);logger[_0x7c29[20]](_0x7c29[41],_0x53b7xd,JSON[_0x7c29[19]](_0x53b7x11));_0x53b7xe(_0x53b7x11)})[_0x7c29[15]](function(_0x53b7x10){logger[_0x7c29[14]](_0x7c29[41],_0x53b7x10[_0x7c29[22]],_0x53b7xd);_0x53b7xf(_0x53b7x12[_0x7c29[14]](500,_0x53b7x10[_0x7c29[22]]))})})}
\ No newline at end of file
index b5705ab..21940e6 100644 (file)
@@ -1 +1 @@
-var _0xc151=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc151[0];var multer=require(_0xc151[1]);var util=require(_0xc151[2]);var path=require(_0xc151[3]);var express=require(_0xc151[4]);var router=express.Router();var auth=require(_0xc151[5]);var config=require(_0xc151[6]);var controller=require(_0xc151[7]);router[_0xc151[11]](_0xc151[8],auth[_0xc151[9]](),controller[_0xc151[10]]);router[_0xc151[11]](_0xc151[12],auth[_0xc151[9]](),controller[_0xc151[13]]);router[_0xc151[15]](_0xc151[8],auth[_0xc151[9]](),controller[_0xc151[14]]);router[_0xc151[17]](_0xc151[12],auth[_0xc151[9]](),controller[_0xc151[16]]);router[_0xc151[19]](_0xc151[12],auth[_0xc151[9]](),controller[_0xc151[18]]);module[_0xc151[20]]= router
\ No newline at end of file
+var _0x330e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x330e[0];var multer=require(_0x330e[1]);var util=require(_0x330e[2]);var path=require(_0x330e[3]);var express=require(_0x330e[4]);var router=express.Router();var auth=require(_0x330e[5]);var config=require(_0x330e[6]);var controller=require(_0x330e[7]);router[_0x330e[11]](_0x330e[8],auth[_0x330e[9]](),controller[_0x330e[10]]);router[_0x330e[11]](_0x330e[12],auth[_0x330e[9]](),controller[_0x330e[13]]);router[_0x330e[15]](_0x330e[8],auth[_0x330e[9]](),controller[_0x330e[14]]);router[_0x330e[17]](_0x330e[12],auth[_0x330e[9]](),controller[_0x330e[16]]);router[_0x330e[19]](_0x330e[12],auth[_0x330e[9]](),controller[_0x330e[18]]);module[_0x330e[20]]= router
\ No newline at end of file
index 76e256f..ede8f39 100644 (file)
@@ -1 +1 @@
-var _0x6354=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x6F\x70\x74\x69\x6F\x6E\x73","","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6354[0];var Sequelize=require(_0x6354[1]);module[_0x6354[2]]= {name:{type:Sequelize[_0x6354[3]]},prefix:{type:Sequelize[_0x6354[3]],unique:_0x6354[4],allowNull:false},options:{type:Sequelize[_0x6354[3]],set:function(_0xc456x2){this[_0x6354[8]](_0x6354[5],_0xc456x2?_0xc456x2[_0x6354[7]](_0x6354[6]):[])},get:function(){return this[_0x6354[9]](_0x6354[5])?this[_0x6354[9]](_0x6354[5])[_0x6354[10]](_0x6354[6]):[]}},auth:{type:Sequelize[_0x6354[11]],defaultValue:false},password:{type:Sequelize[_0x6354[3]]},record:{type:Sequelize[_0x6354[11]],defaultValue:false},recordingFormat:{type:Sequelize[_0x6354[3]]},description:{type:Sequelize[_0x6354[3]]}}
\ No newline at end of file
+var _0x547f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x6F\x70\x74\x69\x6F\x6E\x73","","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x547f[0];var Sequelize=require(_0x547f[1]);module[_0x547f[2]]= {name:{type:Sequelize[_0x547f[3]]},prefix:{type:Sequelize[_0x547f[3]],unique:_0x547f[4],allowNull:false},options:{type:Sequelize[_0x547f[3]],set:function(_0xb44dx2){this[_0x547f[8]](_0x547f[5],_0xb44dx2?_0xb44dx2[_0x547f[7]](_0x547f[6]):[])},get:function(){return this[_0x547f[9]](_0x547f[5])?this[_0x547f[9]](_0x547f[5])[_0x547f[10]](_0x547f[6]):[]}},auth:{type:Sequelize[_0x547f[11]],defaultValue:false},password:{type:Sequelize[_0x547f[3]]},record:{type:Sequelize[_0x547f[11]],defaultValue:false},recordingFormat:{type:Sequelize[_0x547f[3]]},description:{type:Sequelize[_0x547f[3]]}}
\ No newline at end of file
index c931ac9..2e80099 100644 (file)
@@ -1 +1 @@
-var _0x4ef8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x4ef8[0];var jsonpatch=require(_0x4ef8[1]);var rp=require(_0x4ef8[2]);var moment=require(_0x4ef8[3]);var BPromise=require(_0x4ef8[4]);var util=require(_0x4ef8[5]);var path=require(_0x4ef8[6]);var sox=require(_0x4ef8[7]);var ejs=require(_0x4ef8[8]);var fs=require(_0x4ef8[9]);var _=require(_0x4ef8[10]);var squel=require(_0x4ef8[11]);var crypto=require(_0x4ef8[12]);var jsforce=require(_0x4ef8[13]);var toCsv=require(_0x4ef8[14]);var qs=require(_0x4ef8[15]);var logger=require(_0x4ef8[17])(_0x4ef8[16]);var utils=require(_0x4ef8[18]);var config=require(_0x4ef8[19]);var db=require(_0x4ef8[21])[_0x4ef8[20]];function respondWithStatusCode(_0xadacx15,_0xadacx16,_0xadacx17){_0xadacx16= _0xadacx16|| 204;return function(_0xadacx18){if(_0xadacx18){logger[_0x4ef8[24]](_0x4ef8[22],_0xadacx17,_0xadacx16,_0x4ef8[23]);logger[_0x4ef8[26]](_0x4ef8[25],_0xadacx17,_0xadacx16,_0x4ef8[23]);return _0xadacx15[_0x4ef8[27]](_0xadacx16)};return _0xadacx15[_0x4ef8[29]](304)[_0x4ef8[28]]()}}function respondWithResult(_0xadacx15,_0xadacx16,_0xadacx17){_0xadacx16= _0xadacx16|| 200;return function(_0xadacx18){if(_0xadacx18){logger[_0x4ef8[24]](_0x4ef8[22],_0xadacx17,_0xadacx16,_0x4ef8[30]);logger[_0x4ef8[26]](_0x4ef8[25],_0xadacx17,_0xadacx16,_0x4ef8[30],JSON[_0x4ef8[31]](_0xadacx18));return _0xadacx15[_0x4ef8[29]](_0xadacx16)[_0x4ef8[32]](_0xadacx18)};return _0xadacx15[_0x4ef8[29]](304)[_0x4ef8[28]]()}}function respondWithFilteredResult(_0xadacx15,_0xadacx1b,_0xadacx17){return function(_0xadacx18){if(_0xadacx18){var _0xadacx1c=_0xadacx18[_0x4ef8[33]],_0xadacx1d=_0xadacx1b[_0x4ef8[34]],_0xadacx1e=_0xadacx1b[_0x4ef8[34]]+ _0xadacx1b[_0x4ef8[35]],_0xadacx16;if(_0xadacx1e>= _0xadacx1c){_0xadacx1e= _0xadacx1c;_0xadacx16= 200}else {_0xadacx16= 206};_0xadacx15[_0x4ef8[29]](_0xadacx16);logger[_0x4ef8[24]](_0x4ef8[22],_0xadacx17,_0xadacx16,_0x4ef8[36]);logger[_0x4ef8[26]](_0x4ef8[25],_0xadacx17,_0xadacx16,_0x4ef8[30],JSON[_0x4ef8[31]](_0xadacx18));return _0xadacx15[_0x4ef8[40]](_0x4ef8[37],_0xadacx1d+ _0x4ef8[38]+ _0xadacx1e+ _0x4ef8[39]+ _0xadacx1c)[_0x4ef8[32]](_0xadacx18)};return null}}function patchUpdates(_0xadacx20){return function(_0xadacx18){try{jsonpatch[_0x4ef8[41]](_0xadacx18,_0xadacx20,true)}catch(err){return BPromise[_0x4ef8[42]](err)};return _0xadacx18[_0x4ef8[43]]()}}function saveUpdates(_0xadacx22,_0xadacx16,_0xadacx17){return function(_0xadacx18){if(_0xadacx18){return _0xadacx18[_0x4ef8[46]](_0xadacx22)[_0x4ef8[45]](function(_0xadacx23){logger[_0x4ef8[24]](_0x4ef8[22],_0xadacx17,_0xadacx16,_0x4ef8[44]);logger[_0x4ef8[26]](_0x4ef8[25],_0xadacx17,_0xadacx16,_0x4ef8[44],JSON[_0x4ef8[31]](_0xadacx18));return _0xadacx23})};return null}}function removeEntity(_0xadacx15,_0xadacx16,_0xadacx17){return function(_0xadacx18){if(_0xadacx18){return _0xadacx18[_0x4ef8[48]]()[_0x4ef8[45]](function(){logger[_0x4ef8[24]](_0x4ef8[22],_0xadacx17,_0xadacx16,_0x4ef8[47]);logger[_0x4ef8[26]](_0x4ef8[25],_0xadacx17,_0xadacx16,_0x4ef8[47],JSON[_0x4ef8[31]](_0xadacx18));_0xadacx15[_0x4ef8[29]](204)[_0x4ef8[28]]()})}}}function handleEntityNotFound(_0xadacx15,_0xadacx16,_0xadacx17){return function(_0xadacx18){if(!_0xadacx18){logger[_0x4ef8[50]](_0x4ef8[22],_0xadacx17,404,_0x4ef8[49]);_0xadacx15[_0x4ef8[29]](404)[_0x4ef8[28]]();return null};return _0xadacx18}}function handleError(_0xadacx15,_0xadacx16,_0xadacx17){_0xadacx16= _0xadacx16|| 500;return function(_0xadacx27){logger[_0x4ef8[50]](_0x4ef8[22],_0xadacx17,_0xadacx16,JSON[_0x4ef8[31]](_0xadacx27));delete _0xadacx27[_0x4ef8[51]];_0xadacx15[_0x4ef8[29]](_0xadacx16)[_0x4ef8[52]](_0xadacx27)}}exports[_0x4ef8[53]]= function(_0xadacx28,_0xadacx15){var _0xadacx1b={},_0xadacx29={};_0xadacx29[_0x4ef8[54]]= _[_0x4ef8[57]](db[_0x4ef8[56]][_0x4ef8[55]]);_0xadacx29[_0x4ef8[58]]= _[_0x4ef8[57]](_0xadacx28[_0x4ef8[58]]);_0xadacx29[_0x4ef8[59]]= _[_0x4ef8[60]](_0xadacx29[_0x4ef8[54]],_0xadacx29[_0x4ef8[58]]);_0xadacx1b[_0x4ef8[61]]= _[_0x4ef8[60]](_0xadacx29[_0x4ef8[54]],qs[_0x4ef8[62]](_0xadacx28[_0x4ef8[58]][_0x4ef8[62]]));_0xadacx1b[_0x4ef8[61]]= (_0xadacx1b[_0x4ef8[61]][_0x4ef8[63]])?_0xadacx1b[_0x4ef8[61]]:_0xadacx29[_0x4ef8[54]];if(!_0xadacx28[_0x4ef8[58]][_0x4ef8[65]](_0x4ef8[64])){_0xadacx1b[_0x4ef8[35]]= qs[_0x4ef8[35]](_0xadacx28[_0x4ef8[58]][_0x4ef8[35]]);_0xadacx1b[_0x4ef8[34]]= qs[_0x4ef8[34]](_0xadacx28[_0x4ef8[58]][_0x4ef8[34]])};_0xadacx1b[_0x4ef8[66]]= qs[_0x4ef8[67]](_0xadacx28[_0x4ef8[58]][_0x4ef8[67]]);_0xadacx1b[_0x4ef8[68]]= qs[_0x4ef8[59]](_[_0x4ef8[69]](_0xadacx28[_0x4ef8[58]],_0xadacx29[_0x4ef8[59]]));if(_0xadacx28[_0x4ef8[58]][_0x4ef8[70]]){_0xadacx1b[_0x4ef8[68]]= _[_0x4ef8[73]](_0xadacx1b[_0x4ef8[68]],{$or:_[_0x4ef8[72]](_0xadacx1b[_0x4ef8[61]],function(_0xadacx2a){var _0xadacx2b={};_0xadacx2b[_0xadacx2a]= {$like:_0x4ef8[71]+ _0xadacx28[_0x4ef8[58]][_0x4ef8[70]]+ _0x4ef8[71]};return _0xadacx2b})})};_0xadacx1b= _[_0x4ef8[73]]({},_0xadacx1b,_0xadacx28[_0x4ef8[74]]);return db[_0x4ef8[56]][_0x4ef8[76]](_0xadacx1b)[_0x4ef8[45]](respondWithFilteredResult(_0xadacx15,_0xadacx1b,_0x4ef8[53]))[_0x4ef8[75]](handleError(_0xadacx15,null,_0x4ef8[53]))};exports[_0x4ef8[77]]= function(_0xadacx28,_0xadacx15){var _0xadacx1b={raw:false,where:{id:_0xadacx28[_0x4ef8[79]][_0x4ef8[78]]}},_0xadacx29={};_0xadacx29[_0x4ef8[54]]= _[_0x4ef8[57]](db[_0x4ef8[56]][_0x4ef8[55]]);_0xadacx29[_0x4ef8[58]]= _[_0x4ef8[57]](_0xadacx28[_0x4ef8[58]]);_0xadacx29[_0x4ef8[59]]= _[_0x4ef8[60]](_0xadacx29[_0x4ef8[54]],_0xadacx29[_0x4ef8[58]]);_0xadacx1b[_0x4ef8[61]]= _[_0x4ef8[60]](_0xadacx29[_0x4ef8[54]],qs[_0x4ef8[62]](_0xadacx28[_0x4ef8[58]][_0x4ef8[62]]));_0xadacx1b[_0x4ef8[61]]= (_0xadacx1b[_0x4ef8[61]][_0x4ef8[63]])?_0xadacx1b[_0x4ef8[61]]:_0xadacx29[_0x4ef8[54]];_0xadacx1b= _[_0x4ef8[73]]({},_0xadacx1b,_0xadacx28[_0x4ef8[74]]);return db[_0x4ef8[56]][_0x4ef8[80]](_0xadacx1b)[_0x4ef8[45]](handleEntityNotFound(_0xadacx15,null,_0x4ef8[77]))[_0x4ef8[45]](respondWithResult(_0xadacx15,null,_0x4ef8[77]))[_0x4ef8[75]](handleError(_0xadacx15,null,_0x4ef8[77]))};exports[_0x4ef8[81]]= function(_0xadacx28,_0xadacx15){return db[_0x4ef8[56]][_0x4ef8[81]](_0xadacx28[_0x4ef8[82]],{})[_0x4ef8[45]](respondWithResult(_0xadacx15,201,_0x4ef8[81]))[_0x4ef8[75]](handleError(_0xadacx15,null,_0x4ef8[81]))};exports[_0x4ef8[46]]= function(_0xadacx28,_0xadacx15){if(_0xadacx28[_0x4ef8[82]][_0x4ef8[78]]){delete _0xadacx28[_0x4ef8[82]][_0x4ef8[78]]};return db[_0x4ef8[56]][_0x4ef8[80]]({where:{id:_0xadacx28[_0x4ef8[79]][_0x4ef8[78]]}})[_0x4ef8[45]](handleEntityNotFound(_0xadacx15,null,_0x4ef8[46]))[_0x4ef8[45]](saveUpdates(_0xadacx28[_0x4ef8[82]],null,_0x4ef8[46]))[_0x4ef8[45]](respondWithResult(_0xadacx15,null,_0x4ef8[46]))[_0x4ef8[75]](handleError(_0xadacx15,null,_0x4ef8[46]))};exports[_0x4ef8[48]]= function(_0xadacx28,_0xadacx15){return db[_0x4ef8[56]][_0x4ef8[80]]({where:{id:_0xadacx28[_0x4ef8[79]][_0x4ef8[78]]}})[_0x4ef8[45]](handleEntityNotFound(_0xadacx15,null,_0x4ef8[48]))[_0x4ef8[45]](removeEntity(_0xadacx15,null,_0x4ef8[48]))[_0x4ef8[75]](handleError(_0xadacx15,null,_0x4ef8[48]))}
\ No newline at end of file
+var _0xe2f4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xe2f4[0];var jsonpatch=require(_0xe2f4[1]);var rp=require(_0xe2f4[2]);var moment=require(_0xe2f4[3]);var BPromise=require(_0xe2f4[4]);var util=require(_0xe2f4[5]);var path=require(_0xe2f4[6]);var sox=require(_0xe2f4[7]);var ejs=require(_0xe2f4[8]);var fs=require(_0xe2f4[9]);var _=require(_0xe2f4[10]);var squel=require(_0xe2f4[11]);var crypto=require(_0xe2f4[12]);var jsforce=require(_0xe2f4[13]);var toCsv=require(_0xe2f4[14]);var qs=require(_0xe2f4[15]);var logger=require(_0xe2f4[17])(_0xe2f4[16]);var utils=require(_0xe2f4[18]);var config=require(_0xe2f4[19]);var db=require(_0xe2f4[21])[_0xe2f4[20]];function respondWithStatusCode(_0xfba4x15,_0xfba4x16,_0xfba4x17){_0xfba4x16= _0xfba4x16|| 204;return function(_0xfba4x18){if(_0xfba4x18){logger[_0xe2f4[24]](_0xe2f4[22],_0xfba4x17,_0xfba4x16,_0xe2f4[23]);logger[_0xe2f4[26]](_0xe2f4[25],_0xfba4x17,_0xfba4x16,_0xe2f4[23]);return _0xfba4x15[_0xe2f4[27]](_0xfba4x16)};return _0xfba4x15[_0xe2f4[29]](304)[_0xe2f4[28]]()}}function respondWithResult(_0xfba4x15,_0xfba4x16,_0xfba4x17){_0xfba4x16= _0xfba4x16|| 200;return function(_0xfba4x18){if(_0xfba4x18){logger[_0xe2f4[24]](_0xe2f4[22],_0xfba4x17,_0xfba4x16,_0xe2f4[30]);logger[_0xe2f4[26]](_0xe2f4[25],_0xfba4x17,_0xfba4x16,_0xe2f4[30],JSON[_0xe2f4[31]](_0xfba4x18));return _0xfba4x15[_0xe2f4[29]](_0xfba4x16)[_0xe2f4[32]](_0xfba4x18)};return _0xfba4x15[_0xe2f4[29]](304)[_0xe2f4[28]]()}}function respondWithFilteredResult(_0xfba4x15,_0xfba4x1b,_0xfba4x17){return function(_0xfba4x18){if(_0xfba4x18){var _0xfba4x1c=_0xfba4x18[_0xe2f4[33]],_0xfba4x1d=_0xfba4x1b[_0xe2f4[34]],_0xfba4x1e=_0xfba4x1b[_0xe2f4[34]]+ _0xfba4x1b[_0xe2f4[35]],_0xfba4x16;if(_0xfba4x1e>= _0xfba4x1c){_0xfba4x1e= _0xfba4x1c;_0xfba4x16= 200}else {_0xfba4x16= 206};_0xfba4x15[_0xe2f4[29]](_0xfba4x16);logger[_0xe2f4[24]](_0xe2f4[22],_0xfba4x17,_0xfba4x16,_0xe2f4[36]);logger[_0xe2f4[26]](_0xe2f4[25],_0xfba4x17,_0xfba4x16,_0xe2f4[30],JSON[_0xe2f4[31]](_0xfba4x18));return _0xfba4x15[_0xe2f4[40]](_0xe2f4[37],_0xfba4x1d+ _0xe2f4[38]+ _0xfba4x1e+ _0xe2f4[39]+ _0xfba4x1c)[_0xe2f4[32]](_0xfba4x18)};return null}}function patchUpdates(_0xfba4x20){return function(_0xfba4x18){try{jsonpatch[_0xe2f4[41]](_0xfba4x18,_0xfba4x20,true)}catch(err){return BPromise[_0xe2f4[42]](err)};return _0xfba4x18[_0xe2f4[43]]()}}function saveUpdates(_0xfba4x22,_0xfba4x16,_0xfba4x17){return function(_0xfba4x18){if(_0xfba4x18){return _0xfba4x18[_0xe2f4[46]](_0xfba4x22)[_0xe2f4[45]](function(_0xfba4x23){logger[_0xe2f4[24]](_0xe2f4[22],_0xfba4x17,_0xfba4x16,_0xe2f4[44]);logger[_0xe2f4[26]](_0xe2f4[25],_0xfba4x17,_0xfba4x16,_0xe2f4[44],JSON[_0xe2f4[31]](_0xfba4x18));return _0xfba4x23})};return null}}function removeEntity(_0xfba4x15,_0xfba4x16,_0xfba4x17){return function(_0xfba4x18){if(_0xfba4x18){return _0xfba4x18[_0xe2f4[48]]()[_0xe2f4[45]](function(){logger[_0xe2f4[24]](_0xe2f4[22],_0xfba4x17,_0xfba4x16,_0xe2f4[47]);logger[_0xe2f4[26]](_0xe2f4[25],_0xfba4x17,_0xfba4x16,_0xe2f4[47],JSON[_0xe2f4[31]](_0xfba4x18));_0xfba4x15[_0xe2f4[29]](204)[_0xe2f4[28]]()})}}}function handleEntityNotFound(_0xfba4x15,_0xfba4x16,_0xfba4x17){return function(_0xfba4x18){if(!_0xfba4x18){logger[_0xe2f4[50]](_0xe2f4[22],_0xfba4x17,404,_0xe2f4[49]);_0xfba4x15[_0xe2f4[29]](404)[_0xe2f4[28]]();return null};return _0xfba4x18}}function handleError(_0xfba4x15,_0xfba4x16,_0xfba4x17){_0xfba4x16= _0xfba4x16|| 500;return function(_0xfba4x27){logger[_0xe2f4[50]](_0xe2f4[22],_0xfba4x17,_0xfba4x16,JSON[_0xe2f4[31]](_0xfba4x27));delete _0xfba4x27[_0xe2f4[51]];_0xfba4x15[_0xe2f4[29]](_0xfba4x16)[_0xe2f4[52]](_0xfba4x27)}}exports[_0xe2f4[53]]= function(_0xfba4x28,_0xfba4x15){var _0xfba4x1b={},_0xfba4x29={};_0xfba4x29[_0xe2f4[54]]= _[_0xe2f4[57]](db[_0xe2f4[56]][_0xe2f4[55]]);_0xfba4x29[_0xe2f4[58]]= _[_0xe2f4[57]](_0xfba4x28[_0xe2f4[58]]);_0xfba4x29[_0xe2f4[59]]= _[_0xe2f4[60]](_0xfba4x29[_0xe2f4[54]],_0xfba4x29[_0xe2f4[58]]);_0xfba4x1b[_0xe2f4[61]]= _[_0xe2f4[60]](_0xfba4x29[_0xe2f4[54]],qs[_0xe2f4[62]](_0xfba4x28[_0xe2f4[58]][_0xe2f4[62]]));_0xfba4x1b[_0xe2f4[61]]= (_0xfba4x1b[_0xe2f4[61]][_0xe2f4[63]])?_0xfba4x1b[_0xe2f4[61]]:_0xfba4x29[_0xe2f4[54]];if(!_0xfba4x28[_0xe2f4[58]][_0xe2f4[65]](_0xe2f4[64])){_0xfba4x1b[_0xe2f4[35]]= qs[_0xe2f4[35]](_0xfba4x28[_0xe2f4[58]][_0xe2f4[35]]);_0xfba4x1b[_0xe2f4[34]]= qs[_0xe2f4[34]](_0xfba4x28[_0xe2f4[58]][_0xe2f4[34]])};_0xfba4x1b[_0xe2f4[66]]= qs[_0xe2f4[67]](_0xfba4x28[_0xe2f4[58]][_0xe2f4[67]]);_0xfba4x1b[_0xe2f4[68]]= qs[_0xe2f4[59]](_[_0xe2f4[69]](_0xfba4x28[_0xe2f4[58]],_0xfba4x29[_0xe2f4[59]]));if(_0xfba4x28[_0xe2f4[58]][_0xe2f4[70]]){_0xfba4x1b[_0xe2f4[68]]= _[_0xe2f4[73]](_0xfba4x1b[_0xe2f4[68]],{$or:_[_0xe2f4[72]](_0xfba4x1b[_0xe2f4[61]],function(_0xfba4x2a){var _0xfba4x2b={};_0xfba4x2b[_0xfba4x2a]= {$like:_0xe2f4[71]+ _0xfba4x28[_0xe2f4[58]][_0xe2f4[70]]+ _0xe2f4[71]};return _0xfba4x2b})})};_0xfba4x1b= _[_0xe2f4[73]]({},_0xfba4x1b,_0xfba4x28[_0xe2f4[74]]);return db[_0xe2f4[56]][_0xe2f4[76]](_0xfba4x1b)[_0xe2f4[45]](respondWithFilteredResult(_0xfba4x15,_0xfba4x1b,_0xe2f4[53]))[_0xe2f4[75]](handleError(_0xfba4x15,null,_0xe2f4[53]))};exports[_0xe2f4[77]]= function(_0xfba4x28,_0xfba4x15){var _0xfba4x1b={raw:false,where:{id:_0xfba4x28[_0xe2f4[79]][_0xe2f4[78]]}},_0xfba4x29={};_0xfba4x29[_0xe2f4[54]]= _[_0xe2f4[57]](db[_0xe2f4[56]][_0xe2f4[55]]);_0xfba4x29[_0xe2f4[58]]= _[_0xe2f4[57]](_0xfba4x28[_0xe2f4[58]]);_0xfba4x29[_0xe2f4[59]]= _[_0xe2f4[60]](_0xfba4x29[_0xe2f4[54]],_0xfba4x29[_0xe2f4[58]]);_0xfba4x1b[_0xe2f4[61]]= _[_0xe2f4[60]](_0xfba4x29[_0xe2f4[54]],qs[_0xe2f4[62]](_0xfba4x28[_0xe2f4[58]][_0xe2f4[62]]));_0xfba4x1b[_0xe2f4[61]]= (_0xfba4x1b[_0xe2f4[61]][_0xe2f4[63]])?_0xfba4x1b[_0xe2f4[61]]:_0xfba4x29[_0xe2f4[54]];_0xfba4x1b= _[_0xe2f4[73]]({},_0xfba4x1b,_0xfba4x28[_0xe2f4[74]]);return db[_0xe2f4[56]][_0xe2f4[80]](_0xfba4x1b)[_0xe2f4[45]](handleEntityNotFound(_0xfba4x15,null,_0xe2f4[77]))[_0xe2f4[45]](respondWithResult(_0xfba4x15,null,_0xe2f4[77]))[_0xe2f4[75]](handleError(_0xfba4x15,null,_0xe2f4[77]))};exports[_0xe2f4[81]]= function(_0xfba4x28,_0xfba4x15){return db[_0xe2f4[56]][_0xe2f4[81]](_0xfba4x28[_0xe2f4[82]],{})[_0xe2f4[45]](respondWithResult(_0xfba4x15,201,_0xe2f4[81]))[_0xe2f4[75]](handleError(_0xfba4x15,null,_0xe2f4[81]))};exports[_0xe2f4[46]]= function(_0xfba4x28,_0xfba4x15){if(_0xfba4x28[_0xe2f4[82]][_0xe2f4[78]]){delete _0xfba4x28[_0xe2f4[82]][_0xe2f4[78]]};return db[_0xe2f4[56]][_0xe2f4[80]]({where:{id:_0xfba4x28[_0xe2f4[79]][_0xe2f4[78]]}})[_0xe2f4[45]](handleEntityNotFound(_0xfba4x15,null,_0xe2f4[46]))[_0xe2f4[45]](saveUpdates(_0xfba4x28[_0xe2f4[82]],null,_0xe2f4[46]))[_0xe2f4[45]](respondWithResult(_0xfba4x15,null,_0xe2f4[46]))[_0xe2f4[75]](handleError(_0xfba4x15,null,_0xe2f4[46]))};exports[_0xe2f4[48]]= function(_0xfba4x28,_0xfba4x15){return db[_0xe2f4[56]][_0xe2f4[80]]({where:{id:_0xfba4x28[_0xe2f4[79]][_0xe2f4[78]]}})[_0xe2f4[45]](handleEntityNotFound(_0xfba4x15,null,_0xe2f4[48]))[_0xe2f4[45]](removeEntity(_0xfba4x15,null,_0xe2f4[48]))[_0xe2f4[75]](handleError(_0xfba4x15,null,_0xe2f4[48]))}
\ No newline at end of file
index 15255fe..4c29a2d 100644 (file)
@@ -1 +1 @@
-var _0x1269=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x73\x79\x73\x74\x65\x6D","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x69\x64","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x61\x75\x74\x68","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x43\x68\x61\x6E\x53\x70\x79","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6F\x70\x74\x69\x6F\x6E\x73","","\x6A\x6F\x69\x6E","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x6C\x65\x6E\x67\x74\x68","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6E\x61\x6D\x65","\x63\x6F\x6E\x63\x61\x74","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x76\x6F\x69\x63\x65\x5F\x63\x68\x61\x6E\x73\x70\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x66\x69\x6E\x65"];_0x1269[0];var _=require(_0x1269[1]);var util=require(_0x1269[2]);var BPromise=require(_0x1269[3]);var logger=require(_0x1269[5])(_0x1269[4]);var attributes=require(_0x1269[6]);var getUserApplications=function(_0x3b14x7,_0x3b14x8,_0x3b14x9){var _0x3b14xa=1;var _0x3b14xb=[];var _0x3b14xc={context:_0x1269[7],type:_0x1269[8],isApp:false};var _0x3b14xd={exten:util[_0x1269[11]](_0x1269[9],_0x3b14x7[_0x1269[10]],_0x3b14x9),ChanSpyId:_0x3b14x7[_0x1269[12]],UserId:_0x3b14x8[_0x1269[12]]};if(_0x3b14x7[_0x1269[13]]){_0x3b14xb[_0x1269[18]](_[_0x1269[17]]({app:_0x1269[14],appdata:util[_0x1269[11]](_0x1269[15],_0x3b14x7[_0x1269[16]]),priority:_0x3b14xa++},_0x3b14xc,_0x3b14xd))};if(_0x3b14x7[_0x1269[19]]){_0x3b14xb[_0x1269[18]](_[_0x1269[17]]({app:_0x1269[20],appdata:_0x3b14x7[_0x1269[21]],priority:_0x3b14xa++},_0x3b14xc,_0x3b14xd))};_0x3b14xb[_0x1269[18]](_[_0x1269[17]]({app:_0x1269[22],appdata:util[_0x1269[11]](_0x1269[23],_0x3b14x9,_0x3b14x7[_0x1269[24]]?_0x3b14x7[_0x1269[24]][_0x1269[26]](_0x1269[25]):null),priority:_0x3b14xa++},_0x3b14xc,_0x3b14xd));if(_0x3b14x7[_0x1269[13]]){_0x3b14xb[_0x1269[18]](_[_0x1269[17]]({app:_0x1269[27],priority:_0x3b14xa++},_0x3b14xc,_0x3b14xd))};return _0x3b14xb};var getChanSpyApplications=function(_0x3b14x7,_0x3b14xf){var _0x3b14xb=[];for(var _0x3b14x10=0,_0x3b14xa=1;_0x3b14x10< _0x3b14xf[_0x1269[28]];_0x3b14x10++,_0x3b14xa= 1){var _0x3b14x11=getUserApplications(_0x3b14x7,_0x3b14xf[_0x3b14x10],_0x3b14xf[_0x3b14x10][_0x1269[29]]);var _0x3b14x12=getUserApplications(_0x3b14x7,_0x3b14xf[_0x3b14x10],_0x3b14xf[_0x3b14x10][_0x1269[30]]);_0x3b14xb= _0x3b14xb[_0x1269[31]](_0x3b14x11,_0x3b14x12)};return _0x3b14xb};var getChanSpyPromise=function(_0x3b14x14,_0x3b14x7){return  new BPromise(function(_0x3b14x15,_0x3b14x16){return _0x3b14x14[_0x1269[36]][_0x1269[35]]({attributes:[_0x1269[12],_0x1269[30],_0x1269[29]],where:{role:_0x1269[34],chanspy:true},raw:true})[_0x1269[33]](function(_0x3b14x18){if(_0x3b14x18){return _0x3b14x15(getChanSpyApplications(_0x3b14x7,_0x3b14x18))};return _0x3b14x15([])})[_0x1269[32]](function(_0x3b14x17){_0x3b14x16(_0x3b14x17)})})};module[_0x1269[37]]= function(_0x3b14x19,_0x3b14x1a){var _0x3b14x14=_0x3b14x19[_0x1269[38]];return _0x3b14x19[_0x1269[44]](_0x1269[39],attributes,{tableName:_0x1269[40],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0x3b14x1b,_0x3b14x1c,_0x3b14x1d){return getChanSpyPromise(_0x3b14x14,_0x3b14x1b)[_0x1269[33]](function(_0x3b14xb){if(_0x3b14xb&& _0x3b14xb[_0x1269[28]]){return _0x3b14x14[_0x1269[42]][_0x1269[41]](_0x3b14xb)}})[_0x1269[33]](function(){_0x3b14x1d()})[_0x1269[32]](function(_0x3b14x17){_0x3b14x1d(_0x3b14x17)})},afterUpdate:function(_0x3b14x1b,_0x3b14x1c,_0x3b14x1d){return _0x3b14x14[_0x1269[42]][_0x1269[43]]({where:{ChanSpyId:_0x3b14x1b[_0x1269[12]]}})[_0x1269[33]](function(){return getChanSpyPromise(_0x3b14x14,_0x3b14x1b)})[_0x1269[33]](function(_0x3b14xb){if(_0x3b14xb&& _0x3b14xb[_0x1269[28]]){return _0x3b14x14[_0x1269[42]][_0x1269[41]](_0x3b14xb)}})[_0x1269[33]](function(){_0x3b14x1d()})[_0x1269[32]](function(_0x3b14x17){_0x3b14x1d(_0x3b14x17)})},afterDestroy:function(_0x3b14x1b,_0x3b14x1c,_0x3b14x1d){return _0x3b14x14[_0x1269[42]][_0x1269[43]]({where:{ChanSpyId:_0x3b14x1b[_0x1269[12]]}})[_0x1269[33]](function(){_0x3b14x1d()})[_0x1269[32]](function(_0x3b14x17){_0x3b14x1d(_0x3b14x17)})}}})}
\ No newline at end of file
+var _0x8614=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x73\x79\x73\x74\x65\x6D","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x69\x64","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x61\x75\x74\x68","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x43\x68\x61\x6E\x53\x70\x79","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6F\x70\x74\x69\x6F\x6E\x73","","\x6A\x6F\x69\x6E","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x6C\x65\x6E\x67\x74\x68","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6E\x61\x6D\x65","\x63\x6F\x6E\x63\x61\x74","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x76\x6F\x69\x63\x65\x5F\x63\x68\x61\x6E\x73\x70\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x66\x69\x6E\x65"];_0x8614[0];var _=require(_0x8614[1]);var util=require(_0x8614[2]);var BPromise=require(_0x8614[3]);var logger=require(_0x8614[5])(_0x8614[4]);var attributes=require(_0x8614[6]);var getUserApplications=function(_0x51b9x7,_0x51b9x8,_0x51b9x9){var _0x51b9xa=1;var _0x51b9xb=[];var _0x51b9xc={context:_0x8614[7],type:_0x8614[8],isApp:false};var _0x51b9xd={exten:util[_0x8614[11]](_0x8614[9],_0x51b9x7[_0x8614[10]],_0x51b9x9),ChanSpyId:_0x51b9x7[_0x8614[12]],UserId:_0x51b9x8[_0x8614[12]]};if(_0x51b9x7[_0x8614[13]]){_0x51b9xb[_0x8614[18]](_[_0x8614[17]]({app:_0x8614[14],appdata:util[_0x8614[11]](_0x8614[15],_0x51b9x7[_0x8614[16]]),priority:_0x51b9xa++},_0x51b9xc,_0x51b9xd))};if(_0x51b9x7[_0x8614[19]]){_0x51b9xb[_0x8614[18]](_[_0x8614[17]]({app:_0x8614[20],appdata:_0x51b9x7[_0x8614[21]],priority:_0x51b9xa++},_0x51b9xc,_0x51b9xd))};_0x51b9xb[_0x8614[18]](_[_0x8614[17]]({app:_0x8614[22],appdata:util[_0x8614[11]](_0x8614[23],_0x51b9x9,_0x51b9x7[_0x8614[24]]?_0x51b9x7[_0x8614[24]][_0x8614[26]](_0x8614[25]):null),priority:_0x51b9xa++},_0x51b9xc,_0x51b9xd));if(_0x51b9x7[_0x8614[13]]){_0x51b9xb[_0x8614[18]](_[_0x8614[17]]({app:_0x8614[27],priority:_0x51b9xa++},_0x51b9xc,_0x51b9xd))};return _0x51b9xb};var getChanSpyApplications=function(_0x51b9x7,_0x51b9xf){var _0x51b9xb=[];for(var _0x51b9x10=0,_0x51b9xa=1;_0x51b9x10< _0x51b9xf[_0x8614[28]];_0x51b9x10++,_0x51b9xa= 1){var _0x51b9x11=getUserApplications(_0x51b9x7,_0x51b9xf[_0x51b9x10],_0x51b9xf[_0x51b9x10][_0x8614[29]]);var _0x51b9x12=getUserApplications(_0x51b9x7,_0x51b9xf[_0x51b9x10],_0x51b9xf[_0x51b9x10][_0x8614[30]]);_0x51b9xb= _0x51b9xb[_0x8614[31]](_0x51b9x11,_0x51b9x12)};return _0x51b9xb};var getChanSpyPromise=function(_0x51b9x14,_0x51b9x7){return  new BPromise(function(_0x51b9x15,_0x51b9x16){return _0x51b9x14[_0x8614[36]][_0x8614[35]]({attributes:[_0x8614[12],_0x8614[30],_0x8614[29]],where:{role:_0x8614[34],chanspy:true},raw:true})[_0x8614[33]](function(_0x51b9x18){if(_0x51b9x18){return _0x51b9x15(getChanSpyApplications(_0x51b9x7,_0x51b9x18))};return _0x51b9x15([])})[_0x8614[32]](function(_0x51b9x17){_0x51b9x16(_0x51b9x17)})})};module[_0x8614[37]]= function(_0x51b9x19,_0x51b9x1a){var _0x51b9x14=_0x51b9x19[_0x8614[38]];return _0x51b9x19[_0x8614[44]](_0x8614[39],attributes,{tableName:_0x8614[40],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0x51b9x1b,_0x51b9x1c,_0x51b9x1d){return getChanSpyPromise(_0x51b9x14,_0x51b9x1b)[_0x8614[33]](function(_0x51b9xb){if(_0x51b9xb&& _0x51b9xb[_0x8614[28]]){return _0x51b9x14[_0x8614[42]][_0x8614[41]](_0x51b9xb)}})[_0x8614[33]](function(){_0x51b9x1d()})[_0x8614[32]](function(_0x51b9x17){_0x51b9x1d(_0x51b9x17)})},afterUpdate:function(_0x51b9x1b,_0x51b9x1c,_0x51b9x1d){return _0x51b9x14[_0x8614[42]][_0x8614[43]]({where:{ChanSpyId:_0x51b9x1b[_0x8614[12]]}})[_0x8614[33]](function(){return getChanSpyPromise(_0x51b9x14,_0x51b9x1b)})[_0x8614[33]](function(_0x51b9xb){if(_0x51b9xb&& _0x51b9xb[_0x8614[28]]){return _0x51b9x14[_0x8614[42]][_0x8614[41]](_0x51b9xb)}})[_0x8614[33]](function(){_0x51b9x1d()})[_0x8614[32]](function(_0x51b9x17){_0x51b9x1d(_0x51b9x17)})},afterDestroy:function(_0x51b9x1b,_0x51b9x1c,_0x51b9x1d){return _0x51b9x14[_0x8614[42]][_0x8614[43]]({where:{ChanSpyId:_0x51b9x1b[_0x8614[12]]}})[_0x8614[33]](function(){_0x51b9x1d()})[_0x8614[32]](function(_0x51b9x17){_0x51b9x1d(_0x51b9x17)})}}})}
\ No newline at end of file
index 822dd87..4620bc9 100644 (file)
@@ -1 +1 @@
-var _0x7c0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7c0b[0];var _=require(_0x7c0b[1]);var util=require(_0x7c0b[2]);var moment=require(_0x7c0b[3]);var BPromise=require(_0x7c0b[4]);var db=require(_0x7c0b[6])[_0x7c0b[5]];var utils=require(_0x7c0b[7]);var logger=require(_0x7c0b[9])(_0x7c0b[8]);var jayson=require(_0x7c0b[10]);var client=jayson[_0x7c0b[12]][_0x7c0b[11]]({port:9002});function respondWithRpcPromise(_0xcf66xb,_0xcf66xc,_0xcf66xd){return  new BPromise(function(_0xcf66xe,_0xcf66xf){return client[_0x7c0b[25]](_0xcf66xb,_0xcf66xd)[_0x7c0b[24]](function(_0xcf66x11){logger[_0x7c0b[17]](_0x7c0b[13],_0xcf66xc,_0x7c0b[16]);logger[_0x7c0b[20]](_0x7c0b[18],_0xcf66xc,_0x7c0b[16],JSON[_0x7c0b[19]](_0xcf66x11));if(_0xcf66x11[_0x7c0b[14]]){if(_0xcf66x11[_0x7c0b[14]][_0x7c0b[21]]=== 500){logger[_0x7c0b[14]](_0x7c0b[13],_0xcf66xc,_0xcf66x11[_0x7c0b[14]][_0x7c0b[22]]);return _0xcf66xf(_0xcf66x11[_0x7c0b[14]][_0x7c0b[22]])};logger[_0x7c0b[14]](_0x7c0b[13],_0xcf66xc,_0xcf66x11[_0x7c0b[14]][_0x7c0b[22]]);return _0xcf66xe(_0xcf66x11[_0x7c0b[14]][_0x7c0b[22]])}else {logger[_0x7c0b[17]](_0x7c0b[13],_0xcf66xc,_0x7c0b[16]);_0xcf66xe(_0xcf66x11[_0x7c0b[23]][_0x7c0b[22]])}})[_0x7c0b[15]](function(_0xcf66x10){logger[_0x7c0b[14]](_0x7c0b[13],_0xcf66xc,_0xcf66x10);_0xcf66xf(_0xcf66x10)})})}
\ No newline at end of file
+var _0x36b6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x36b6[0];var _=require(_0x36b6[1]);var util=require(_0x36b6[2]);var moment=require(_0x36b6[3]);var BPromise=require(_0x36b6[4]);var db=require(_0x36b6[6])[_0x36b6[5]];var utils=require(_0x36b6[7]);var logger=require(_0x36b6[9])(_0x36b6[8]);var jayson=require(_0x36b6[10]);var client=jayson[_0x36b6[12]][_0x36b6[11]]({port:9002});function respondWithRpcPromise(_0x3e63xb,_0x3e63xc,_0x3e63xd){return  new BPromise(function(_0x3e63xe,_0x3e63xf){return client[_0x36b6[25]](_0x3e63xb,_0x3e63xd)[_0x36b6[24]](function(_0x3e63x11){logger[_0x36b6[17]](_0x36b6[13],_0x3e63xc,_0x36b6[16]);logger[_0x36b6[20]](_0x36b6[18],_0x3e63xc,_0x36b6[16],JSON[_0x36b6[19]](_0x3e63x11));if(_0x3e63x11[_0x36b6[14]]){if(_0x3e63x11[_0x36b6[14]][_0x36b6[21]]=== 500){logger[_0x36b6[14]](_0x36b6[13],_0x3e63xc,_0x3e63x11[_0x36b6[14]][_0x36b6[22]]);return _0x3e63xf(_0x3e63x11[_0x36b6[14]][_0x36b6[22]])};logger[_0x36b6[14]](_0x36b6[13],_0x3e63xc,_0x3e63x11[_0x36b6[14]][_0x36b6[22]]);return _0x3e63xe(_0x3e63x11[_0x36b6[14]][_0x36b6[22]])}else {logger[_0x36b6[17]](_0x36b6[13],_0x3e63xc,_0x36b6[16]);_0x3e63xe(_0x3e63x11[_0x36b6[23]][_0x36b6[22]])}})[_0x36b6[15]](function(_0x3e63x10){logger[_0x36b6[14]](_0x36b6[13],_0x3e63xc,_0x3e63x10);_0x3e63xf(_0x3e63x10)})})}
\ No newline at end of file
index b092571..e8cf25c 100644 (file)
@@ -1 +1 @@
-var _0x453b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x453b[0];var multer=require(_0x453b[1]);var util=require(_0x453b[2]);var path=require(_0x453b[3]);var express=require(_0x453b[4]);var router=express.Router();var auth=require(_0x453b[5]);var config=require(_0x453b[6]);var controller=require(_0x453b[7]);router[_0x453b[11]](_0x453b[8],auth[_0x453b[9]](),controller[_0x453b[10]]);router[_0x453b[11]](_0x453b[12],auth[_0x453b[9]](),controller[_0x453b[13]]);router[_0x453b[15]](_0x453b[8],auth[_0x453b[9]](),controller[_0x453b[14]]);router[_0x453b[17]](_0x453b[12],auth[_0x453b[9]](),controller[_0x453b[16]]);router[_0x453b[19]](_0x453b[12],auth[_0x453b[9]](),controller[_0x453b[18]]);module[_0x453b[20]]= router
\ No newline at end of file
+var _0x6a60=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6a60[0];var multer=require(_0x6a60[1]);var util=require(_0x6a60[2]);var path=require(_0x6a60[3]);var express=require(_0x6a60[4]);var router=express.Router();var auth=require(_0x6a60[5]);var config=require(_0x6a60[6]);var controller=require(_0x6a60[7]);router[_0x6a60[11]](_0x6a60[8],auth[_0x6a60[9]](),controller[_0x6a60[10]]);router[_0x6a60[11]](_0x6a60[12],auth[_0x6a60[9]](),controller[_0x6a60[13]]);router[_0x6a60[15]](_0x6a60[8],auth[_0x6a60[9]](),controller[_0x6a60[14]]);router[_0x6a60[17]](_0x6a60[12],auth[_0x6a60[9]](),controller[_0x6a60[16]]);router[_0x6a60[19]](_0x6a60[12],auth[_0x6a60[9]](),controller[_0x6a60[18]]);module[_0x6a60[20]]= router
\ No newline at end of file
index eb1da77..2bcb987 100644 (file)
@@ -1 +1 @@
-var _0x9b06=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x9b06[0];var Sequelize=require(_0x9b06[1]);module[_0x9b06[2]]= {name:{type:Sequelize[_0x9b06[3]],unique:_0x9b06[4]},description:{type:Sequelize[_0x9b06[3]],allowNull:true},defaultEntry:{type:Sequelize[_0x9b06[5]],defaultValue:0}}
\ No newline at end of file
+var _0xb140=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xb140[0];var Sequelize=require(_0xb140[1]);module[_0xb140[2]]= {name:{type:Sequelize[_0xb140[3]],unique:_0xb140[4]},description:{type:Sequelize[_0xb140[3]],allowNull:true},defaultEntry:{type:Sequelize[_0xb140[5]],defaultValue:0}}
\ No newline at end of file
index e4b8d05..400bde7 100644 (file)
@@ -1 +1 @@
-var _0x24c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x24c1[0];var jsonpatch=require(_0x24c1[1]);var rp=require(_0x24c1[2]);var moment=require(_0x24c1[3]);var BPromise=require(_0x24c1[4]);var util=require(_0x24c1[5]);var path=require(_0x24c1[6]);var sox=require(_0x24c1[7]);var ejs=require(_0x24c1[8]);var fs=require(_0x24c1[9]);var _=require(_0x24c1[10]);var squel=require(_0x24c1[11]);var crypto=require(_0x24c1[12]);var jsforce=require(_0x24c1[13]);var toCsv=require(_0x24c1[14]);var qs=require(_0x24c1[15]);var logger=require(_0x24c1[17])(_0x24c1[16]);var utils=require(_0x24c1[18]);var config=require(_0x24c1[19]);var db=require(_0x24c1[21])[_0x24c1[20]];var jayson=require(_0x24c1[22]);var client=jayson[_0x24c1[24]][_0x24c1[23]]({port:9002});function respondWithRpcPromise(_0x3e95x17,_0x3e95x18,_0x3e95x19){return  new BPromise(function(_0x3e95x1a,_0x3e95x1b){return client[_0x24c1[37]](_0x3e95x17,_0x3e95x19)[_0x24c1[36]](function(_0x3e95x1d){logger[_0x24c1[29]](_0x24c1[25],_0x3e95x18,_0x24c1[28]);logger[_0x24c1[32]](_0x24c1[30],_0x3e95x18,_0x24c1[28],JSON[_0x24c1[31]](_0x3e95x1d));if(_0x3e95x1d[_0x24c1[26]]){if(_0x3e95x1d[_0x24c1[26]][_0x24c1[33]]=== 500){logger[_0x24c1[26]](_0x24c1[25],_0x3e95x18,_0x3e95x1d[_0x24c1[26]][_0x24c1[34]]);return _0x3e95x1b(_0x3e95x1d[_0x24c1[26]][_0x24c1[34]])};logger[_0x24c1[26]](_0x24c1[25],_0x3e95x18,_0x3e95x1d[_0x24c1[26]][_0x24c1[34]]);return _0x3e95x1a(_0x3e95x1d[_0x24c1[26]][_0x24c1[34]])}else {logger[_0x24c1[29]](_0x24c1[25],_0x3e95x18,_0x24c1[28]);_0x3e95x1a(_0x3e95x1d[_0x24c1[35]][_0x24c1[34]])}})[_0x24c1[27]](function(_0x3e95x1c){logger[_0x24c1[26]](_0x24c1[25],_0x3e95x18,_0x3e95x1c);_0x3e95x1b(_0x3e95x1c)})})}function respondWithStatusCode(_0x3e95x1d,_0x3e95x1f,_0x3e95x18){_0x3e95x1f= _0x3e95x1f|| 204;return function(_0x3e95x20){if(_0x3e95x20){logger[_0x24c1[29]](_0x24c1[30],_0x3e95x18,_0x3e95x1f,_0x24c1[38]);logger[_0x24c1[32]](_0x24c1[39],_0x3e95x18,_0x3e95x1f,_0x24c1[38]);return _0x3e95x1d[_0x24c1[40]](_0x3e95x1f)};return _0x3e95x1d[_0x24c1[42]](304)[_0x24c1[41]]()}}function respondWithResult(_0x3e95x1d,_0x3e95x1f,_0x3e95x18){_0x3e95x1f= _0x3e95x1f|| 200;return function(_0x3e95x20){if(_0x3e95x20){logger[_0x24c1[29]](_0x24c1[30],_0x3e95x18,_0x3e95x1f,_0x24c1[43]);logger[_0x24c1[32]](_0x24c1[39],_0x3e95x18,_0x3e95x1f,_0x24c1[43],JSON[_0x24c1[31]](_0x3e95x20));return _0x3e95x1d[_0x24c1[42]](_0x3e95x1f)[_0x24c1[44]](_0x3e95x20)};return _0x3e95x1d[_0x24c1[42]](304)[_0x24c1[41]]()}}function respondWithFilteredResult(_0x3e95x1d,_0x3e95x23,_0x3e95x18){return function(_0x3e95x20){if(_0x3e95x20){var _0x3e95x24=_0x3e95x20[_0x24c1[45]],_0x3e95x25=_0x3e95x23[_0x24c1[46]],_0x3e95x26=_0x3e95x23[_0x24c1[46]]+ _0x3e95x23[_0x24c1[47]],_0x3e95x1f;if(_0x3e95x26>= _0x3e95x24){_0x3e95x26= _0x3e95x24;_0x3e95x1f= 200}else {_0x3e95x1f= 206};_0x3e95x1d[_0x24c1[42]](_0x3e95x1f);logger[_0x24c1[29]](_0x24c1[30],_0x3e95x18,_0x3e95x1f,_0x24c1[48]);logger[_0x24c1[32]](_0x24c1[39],_0x3e95x18,_0x3e95x1f,_0x24c1[43],JSON[_0x24c1[31]](_0x3e95x20));return _0x3e95x1d[_0x24c1[52]](_0x24c1[49],_0x3e95x25+ _0x24c1[50]+ _0x3e95x26+ _0x24c1[51]+ _0x3e95x24)[_0x24c1[44]](_0x3e95x20)};return null}}function patchUpdates(_0x3e95x28){return function(_0x3e95x20){try{jsonpatch[_0x24c1[53]](_0x3e95x20,_0x3e95x28,true)}catch(err){return BPromise[_0x24c1[54]](err)};return _0x3e95x20[_0x24c1[55]]()}}function saveUpdates(_0x3e95x2a,_0x3e95x1f,_0x3e95x18){return function(_0x3e95x20){if(_0x3e95x20){return _0x3e95x20[_0x24c1[57]](_0x3e95x2a)[_0x24c1[36]](function(_0x3e95x2b){logger[_0x24c1[29]](_0x24c1[30],_0x3e95x18,_0x3e95x1f,_0x24c1[56]);logger[_0x24c1[32]](_0x24c1[39],_0x3e95x18,_0x3e95x1f,_0x24c1[56],JSON[_0x24c1[31]](_0x3e95x20));return _0x3e95x2b})};return null}}function removeEntity(_0x3e95x1d,_0x3e95x1f,_0x3e95x18){return function(_0x3e95x20){if(_0x3e95x20){return _0x3e95x20[_0x24c1[59]]()[_0x24c1[36]](function(){logger[_0x24c1[29]](_0x24c1[30],_0x3e95x18,_0x3e95x1f,_0x24c1[58]);logger[_0x24c1[32]](_0x24c1[39],_0x3e95x18,_0x3e95x1f,_0x24c1[58],JSON[_0x24c1[31]](_0x3e95x20));_0x3e95x1d[_0x24c1[42]](204)[_0x24c1[41]]()})}}}function handleEntityNotFound(_0x3e95x1d,_0x3e95x1f,_0x3e95x18){return function(_0x3e95x20){if(!_0x3e95x20){logger[_0x24c1[26]](_0x24c1[30],_0x3e95x18,404,_0x24c1[60]);_0x3e95x1d[_0x24c1[42]](404)[_0x24c1[41]]();return null};return _0x3e95x20}}function handleError(_0x3e95x1d,_0x3e95x1f,_0x3e95x18){_0x3e95x1f= _0x3e95x1f|| 500;return function(_0x3e95x1c){logger[_0x24c1[26]](_0x24c1[30],_0x3e95x18,_0x3e95x1f,JSON[_0x24c1[31]](_0x3e95x1c));delete _0x3e95x1c[_0x24c1[61]];_0x3e95x1d[_0x24c1[42]](_0x3e95x1f)[_0x24c1[62]](_0x3e95x1c)}}exports[_0x24c1[63]]= function(_0x3e95x19,_0x3e95x1d){var _0x3e95x23={},_0x3e95x2f={};_0x3e95x2f[_0x24c1[64]]= _[_0x24c1[67]](db[_0x24c1[66]][_0x24c1[65]]);_0x3e95x2f[_0x24c1[68]]= _[_0x24c1[67]](_0x3e95x19[_0x24c1[68]]);_0x3e95x2f[_0x24c1[69]]= _[_0x24c1[70]](_0x3e95x2f[_0x24c1[64]],_0x3e95x2f[_0x24c1[68]]);_0x3e95x23[_0x24c1[71]]= _[_0x24c1[70]](_0x3e95x2f[_0x24c1[64]],qs[_0x24c1[72]](_0x3e95x19[_0x24c1[68]][_0x24c1[72]]));_0x3e95x23[_0x24c1[71]]= (_0x3e95x23[_0x24c1[71]][_0x24c1[73]])?_0x3e95x23[_0x24c1[71]]:_0x3e95x2f[_0x24c1[64]];if(!_0x3e95x19[_0x24c1[68]][_0x24c1[75]](_0x24c1[74])){_0x3e95x23[_0x24c1[47]]= qs[_0x24c1[47]](_0x3e95x19[_0x24c1[68]][_0x24c1[47]]);_0x3e95x23[_0x24c1[46]]= qs[_0x24c1[46]](_0x3e95x19[_0x24c1[68]][_0x24c1[46]])};_0x3e95x23[_0x24c1[76]]= qs[_0x24c1[77]](_0x3e95x19[_0x24c1[68]][_0x24c1[77]]);_0x3e95x23[_0x24c1[78]]= qs[_0x24c1[69]](_[_0x24c1[79]](_0x3e95x19[_0x24c1[68]],_0x3e95x2f[_0x24c1[69]]));if(_0x3e95x19[_0x24c1[68]][_0x24c1[80]]){_0x3e95x23[_0x24c1[78]]= _[_0x24c1[83]](_0x3e95x23[_0x24c1[78]],{$or:_[_0x24c1[82]](_0x3e95x23[_0x24c1[71]],function(_0x3e95x30){var _0x3e95x31={};_0x3e95x31[_0x3e95x30]= {$like:_0x24c1[81]+ _0x3e95x19[_0x24c1[68]][_0x24c1[80]]+ _0x24c1[81]};return _0x3e95x31})})};_0x3e95x23= _[_0x24c1[83]]({},_0x3e95x23,_0x3e95x19[_0x24c1[84]]);return db[_0x24c1[66]][_0x24c1[85]](_0x3e95x23)[_0x24c1[36]](respondWithFilteredResult(_0x3e95x1d,_0x3e95x23,_0x24c1[63]))[_0x24c1[27]](handleError(_0x3e95x1d,null,_0x24c1[63]))};exports[_0x24c1[86]]= function(_0x3e95x19,_0x3e95x1d){var _0x3e95x23={raw:false,where:{id:_0x3e95x19[_0x24c1[88]][_0x24c1[87]]}},_0x3e95x2f={};_0x3e95x2f[_0x24c1[64]]= _[_0x24c1[67]](db[_0x24c1[66]][_0x24c1[65]]);_0x3e95x2f[_0x24c1[68]]= _[_0x24c1[67]](_0x3e95x19[_0x24c1[68]]);_0x3e95x2f[_0x24c1[69]]= _[_0x24c1[70]](_0x3e95x2f[_0x24c1[64]],_0x3e95x2f[_0x24c1[68]]);_0x3e95x23[_0x24c1[71]]= _[_0x24c1[70]](_0x3e95x2f[_0x24c1[64]],qs[_0x24c1[72]](_0x3e95x19[_0x24c1[68]][_0x24c1[72]]));_0x3e95x23[_0x24c1[71]]= (_0x3e95x23[_0x24c1[71]][_0x24c1[73]])?_0x3e95x23[_0x24c1[71]]:_0x3e95x2f[_0x24c1[64]];_0x3e95x23= _[_0x24c1[83]]({},_0x3e95x23,_0x3e95x19[_0x24c1[84]]);return db[_0x24c1[66]][_0x24c1[89]](_0x3e95x23)[_0x24c1[36]](handleEntityNotFound(_0x3e95x1d,null,_0x24c1[86]))[_0x24c1[36]](respondWithResult(_0x3e95x1d,null,_0x24c1[86]))[_0x24c1[27]](handleError(_0x3e95x1d,null,_0x24c1[86]))};exports[_0x24c1[90]]= function(_0x3e95x19,_0x3e95x1d,_0x3e95x32){var _0x3e95x33;return db[_0x24c1[104]][_0x24c1[103]](function(_0x3e95x34){return db[_0x24c1[66]][_0x24c1[90]](_0x3e95x19[_0x24c1[102]],{raw:true})[_0x24c1[36]](function(_0x3e95x20){_0x3e95x33= _0x3e95x20;return db[_0x24c1[66]][_0x24c1[101]]({raw:true})})[_0x24c1[36]](function(_0x3e95x35){var _0x3e95x36=fs[_0x24c1[97]](path[_0x24c1[95]](config[_0x24c1[93]],_0x24c1[94]),_0x24c1[96]);var _0x3e95x37=ejs[_0x24c1[98]](_0x3e95x36,{contexts:_0x3e95x35|| []});fs[_0x24c1[100]](_0x24c1[99],_0x3e95x37)})[_0x24c1[36]](function(){return respondWithRpcPromise(_0x24c1[91],_0x24c1[90],{module:_0x24c1[92]})})[_0x24c1[36]](function(){return _0x3e95x33})})[_0x24c1[36]](respondWithResult(_0x3e95x1d,201,_0x24c1[90]))[_0x24c1[27]](handleError(_0x3e95x1d,null,_0x24c1[90]))};exports[_0x24c1[57]]= function(_0x3e95x19,_0x3e95x1d,_0x3e95x32){var _0x3e95x33;return db[_0x24c1[104]][_0x24c1[103]](function(_0x3e95x34){return db[_0x24c1[66]][_0x24c1[89]]({where:{id:_0x3e95x19[_0x24c1[88]][_0x24c1[87]]}})[_0x24c1[36]](handleEntityNotFound(_0x3e95x1d,null,_0x24c1[57]))[_0x24c1[36]](saveUpdates(_0x3e95x19[_0x24c1[102]],null,_0x24c1[57]))[_0x24c1[36]](function(_0x3e95x20){if(_0x3e95x20){_0x3e95x33= _0x3e95x20;return db[_0x24c1[66]][_0x24c1[101]]({raw:true})};return null})[_0x24c1[36]](function(_0x3e95x35){if(_0x3e95x35){var _0x3e95x36=fs[_0x24c1[97]](path[_0x24c1[95]](config[_0x24c1[93]],_0x24c1[94]),_0x24c1[96]);var _0x3e95x37=ejs[_0x24c1[98]](_0x3e95x36,{contexts:_0x3e95x35|| []});fs[_0x24c1[100]](_0x24c1[99],_0x3e95x37);return respondWithRpcPromise(_0x24c1[91],_0x24c1[57],{module:_0x24c1[92]})};return null})[_0x24c1[36]](function(_0x3e95x20){if(_0x3e95x20){return _0x3e95x33};return null})})[_0x24c1[36]](respondWithResult(_0x3e95x1d,null,_0x24c1[57]))[_0x24c1[27]](handleError(_0x3e95x1d,null,_0x24c1[57]))};exports[_0x24c1[59]]= function(_0x3e95x19,_0x3e95x1d,_0x3e95x32){var _0x3e95x33;return db[_0x24c1[66]][_0x24c1[89]]({where:{id:_0x3e95x19[_0x24c1[88]][_0x24c1[87]]}})[_0x24c1[36]](handleEntityNotFound(_0x3e95x1d,null,_0x24c1[59]))[_0x24c1[36]](removeEntity(_0x3e95x1d,null,_0x24c1[59]))[_0x24c1[36]](function(){return db[_0x24c1[66]][_0x24c1[101]]({raw:true})})[_0x24c1[36]](function(_0x3e95x35){var _0x3e95x36=fs[_0x24c1[97]](path[_0x24c1[95]](config[_0x24c1[93]],_0x24c1[94]),_0x24c1[96]);var _0x3e95x37=ejs[_0x24c1[98]](_0x3e95x36,{contexts:_0x3e95x35});fs[_0x24c1[100]](_0x24c1[99],_0x3e95x37);return respondWithRpcPromise(_0x24c1[91],_0x24c1[59],{module:_0x24c1[92]})})[_0x24c1[27]](handleError(_0x3e95x1d,null,_0x24c1[59]))}
\ No newline at end of file
+var _0x6270=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x6270[0];var jsonpatch=require(_0x6270[1]);var rp=require(_0x6270[2]);var moment=require(_0x6270[3]);var BPromise=require(_0x6270[4]);var util=require(_0x6270[5]);var path=require(_0x6270[6]);var sox=require(_0x6270[7]);var ejs=require(_0x6270[8]);var fs=require(_0x6270[9]);var _=require(_0x6270[10]);var squel=require(_0x6270[11]);var crypto=require(_0x6270[12]);var jsforce=require(_0x6270[13]);var toCsv=require(_0x6270[14]);var qs=require(_0x6270[15]);var logger=require(_0x6270[17])(_0x6270[16]);var utils=require(_0x6270[18]);var config=require(_0x6270[19]);var db=require(_0x6270[21])[_0x6270[20]];var jayson=require(_0x6270[22]);var client=jayson[_0x6270[24]][_0x6270[23]]({port:9002});function respondWithRpcPromise(_0x1de1x17,_0x1de1x18,_0x1de1x19){return  new BPromise(function(_0x1de1x1a,_0x1de1x1b){return client[_0x6270[37]](_0x1de1x17,_0x1de1x19)[_0x6270[36]](function(_0x1de1x1d){logger[_0x6270[29]](_0x6270[25],_0x1de1x18,_0x6270[28]);logger[_0x6270[32]](_0x6270[30],_0x1de1x18,_0x6270[28],JSON[_0x6270[31]](_0x1de1x1d));if(_0x1de1x1d[_0x6270[26]]){if(_0x1de1x1d[_0x6270[26]][_0x6270[33]]=== 500){logger[_0x6270[26]](_0x6270[25],_0x1de1x18,_0x1de1x1d[_0x6270[26]][_0x6270[34]]);return _0x1de1x1b(_0x1de1x1d[_0x6270[26]][_0x6270[34]])};logger[_0x6270[26]](_0x6270[25],_0x1de1x18,_0x1de1x1d[_0x6270[26]][_0x6270[34]]);return _0x1de1x1a(_0x1de1x1d[_0x6270[26]][_0x6270[34]])}else {logger[_0x6270[29]](_0x6270[25],_0x1de1x18,_0x6270[28]);_0x1de1x1a(_0x1de1x1d[_0x6270[35]][_0x6270[34]])}})[_0x6270[27]](function(_0x1de1x1c){logger[_0x6270[26]](_0x6270[25],_0x1de1x18,_0x1de1x1c);_0x1de1x1b(_0x1de1x1c)})})}function respondWithStatusCode(_0x1de1x1d,_0x1de1x1f,_0x1de1x18){_0x1de1x1f= _0x1de1x1f|| 204;return function(_0x1de1x20){if(_0x1de1x20){logger[_0x6270[29]](_0x6270[30],_0x1de1x18,_0x1de1x1f,_0x6270[38]);logger[_0x6270[32]](_0x6270[39],_0x1de1x18,_0x1de1x1f,_0x6270[38]);return _0x1de1x1d[_0x6270[40]](_0x1de1x1f)};return _0x1de1x1d[_0x6270[42]](304)[_0x6270[41]]()}}function respondWithResult(_0x1de1x1d,_0x1de1x1f,_0x1de1x18){_0x1de1x1f= _0x1de1x1f|| 200;return function(_0x1de1x20){if(_0x1de1x20){logger[_0x6270[29]](_0x6270[30],_0x1de1x18,_0x1de1x1f,_0x6270[43]);logger[_0x6270[32]](_0x6270[39],_0x1de1x18,_0x1de1x1f,_0x6270[43],JSON[_0x6270[31]](_0x1de1x20));return _0x1de1x1d[_0x6270[42]](_0x1de1x1f)[_0x6270[44]](_0x1de1x20)};return _0x1de1x1d[_0x6270[42]](304)[_0x6270[41]]()}}function respondWithFilteredResult(_0x1de1x1d,_0x1de1x23,_0x1de1x18){return function(_0x1de1x20){if(_0x1de1x20){var _0x1de1x24=_0x1de1x20[_0x6270[45]],_0x1de1x25=_0x1de1x23[_0x6270[46]],_0x1de1x26=_0x1de1x23[_0x6270[46]]+ _0x1de1x23[_0x6270[47]],_0x1de1x1f;if(_0x1de1x26>= _0x1de1x24){_0x1de1x26= _0x1de1x24;_0x1de1x1f= 200}else {_0x1de1x1f= 206};_0x1de1x1d[_0x6270[42]](_0x1de1x1f);logger[_0x6270[29]](_0x6270[30],_0x1de1x18,_0x1de1x1f,_0x6270[48]);logger[_0x6270[32]](_0x6270[39],_0x1de1x18,_0x1de1x1f,_0x6270[43],JSON[_0x6270[31]](_0x1de1x20));return _0x1de1x1d[_0x6270[52]](_0x6270[49],_0x1de1x25+ _0x6270[50]+ _0x1de1x26+ _0x6270[51]+ _0x1de1x24)[_0x6270[44]](_0x1de1x20)};return null}}function patchUpdates(_0x1de1x28){return function(_0x1de1x20){try{jsonpatch[_0x6270[53]](_0x1de1x20,_0x1de1x28,true)}catch(err){return BPromise[_0x6270[54]](err)};return _0x1de1x20[_0x6270[55]]()}}function saveUpdates(_0x1de1x2a,_0x1de1x1f,_0x1de1x18){return function(_0x1de1x20){if(_0x1de1x20){return _0x1de1x20[_0x6270[57]](_0x1de1x2a)[_0x6270[36]](function(_0x1de1x2b){logger[_0x6270[29]](_0x6270[30],_0x1de1x18,_0x1de1x1f,_0x6270[56]);logger[_0x6270[32]](_0x6270[39],_0x1de1x18,_0x1de1x1f,_0x6270[56],JSON[_0x6270[31]](_0x1de1x20));return _0x1de1x2b})};return null}}function removeEntity(_0x1de1x1d,_0x1de1x1f,_0x1de1x18){return function(_0x1de1x20){if(_0x1de1x20){return _0x1de1x20[_0x6270[59]]()[_0x6270[36]](function(){logger[_0x6270[29]](_0x6270[30],_0x1de1x18,_0x1de1x1f,_0x6270[58]);logger[_0x6270[32]](_0x6270[39],_0x1de1x18,_0x1de1x1f,_0x6270[58],JSON[_0x6270[31]](_0x1de1x20));_0x1de1x1d[_0x6270[42]](204)[_0x6270[41]]()})}}}function handleEntityNotFound(_0x1de1x1d,_0x1de1x1f,_0x1de1x18){return function(_0x1de1x20){if(!_0x1de1x20){logger[_0x6270[26]](_0x6270[30],_0x1de1x18,404,_0x6270[60]);_0x1de1x1d[_0x6270[42]](404)[_0x6270[41]]();return null};return _0x1de1x20}}function handleError(_0x1de1x1d,_0x1de1x1f,_0x1de1x18){_0x1de1x1f= _0x1de1x1f|| 500;return function(_0x1de1x1c){logger[_0x6270[26]](_0x6270[30],_0x1de1x18,_0x1de1x1f,JSON[_0x6270[31]](_0x1de1x1c));delete _0x1de1x1c[_0x6270[61]];_0x1de1x1d[_0x6270[42]](_0x1de1x1f)[_0x6270[62]](_0x1de1x1c)}}exports[_0x6270[63]]= function(_0x1de1x19,_0x1de1x1d){var _0x1de1x23={},_0x1de1x2f={};_0x1de1x2f[_0x6270[64]]= _[_0x6270[67]](db[_0x6270[66]][_0x6270[65]]);_0x1de1x2f[_0x6270[68]]= _[_0x6270[67]](_0x1de1x19[_0x6270[68]]);_0x1de1x2f[_0x6270[69]]= _[_0x6270[70]](_0x1de1x2f[_0x6270[64]],_0x1de1x2f[_0x6270[68]]);_0x1de1x23[_0x6270[71]]= _[_0x6270[70]](_0x1de1x2f[_0x6270[64]],qs[_0x6270[72]](_0x1de1x19[_0x6270[68]][_0x6270[72]]));_0x1de1x23[_0x6270[71]]= (_0x1de1x23[_0x6270[71]][_0x6270[73]])?_0x1de1x23[_0x6270[71]]:_0x1de1x2f[_0x6270[64]];if(!_0x1de1x19[_0x6270[68]][_0x6270[75]](_0x6270[74])){_0x1de1x23[_0x6270[47]]= qs[_0x6270[47]](_0x1de1x19[_0x6270[68]][_0x6270[47]]);_0x1de1x23[_0x6270[46]]= qs[_0x6270[46]](_0x1de1x19[_0x6270[68]][_0x6270[46]])};_0x1de1x23[_0x6270[76]]= qs[_0x6270[77]](_0x1de1x19[_0x6270[68]][_0x6270[77]]);_0x1de1x23[_0x6270[78]]= qs[_0x6270[69]](_[_0x6270[79]](_0x1de1x19[_0x6270[68]],_0x1de1x2f[_0x6270[69]]));if(_0x1de1x19[_0x6270[68]][_0x6270[80]]){_0x1de1x23[_0x6270[78]]= _[_0x6270[83]](_0x1de1x23[_0x6270[78]],{$or:_[_0x6270[82]](_0x1de1x23[_0x6270[71]],function(_0x1de1x30){var _0x1de1x31={};_0x1de1x31[_0x1de1x30]= {$like:_0x6270[81]+ _0x1de1x19[_0x6270[68]][_0x6270[80]]+ _0x6270[81]};return _0x1de1x31})})};_0x1de1x23= _[_0x6270[83]]({},_0x1de1x23,_0x1de1x19[_0x6270[84]]);return db[_0x6270[66]][_0x6270[85]](_0x1de1x23)[_0x6270[36]](respondWithFilteredResult(_0x1de1x1d,_0x1de1x23,_0x6270[63]))[_0x6270[27]](handleError(_0x1de1x1d,null,_0x6270[63]))};exports[_0x6270[86]]= function(_0x1de1x19,_0x1de1x1d){var _0x1de1x23={raw:false,where:{id:_0x1de1x19[_0x6270[88]][_0x6270[87]]}},_0x1de1x2f={};_0x1de1x2f[_0x6270[64]]= _[_0x6270[67]](db[_0x6270[66]][_0x6270[65]]);_0x1de1x2f[_0x6270[68]]= _[_0x6270[67]](_0x1de1x19[_0x6270[68]]);_0x1de1x2f[_0x6270[69]]= _[_0x6270[70]](_0x1de1x2f[_0x6270[64]],_0x1de1x2f[_0x6270[68]]);_0x1de1x23[_0x6270[71]]= _[_0x6270[70]](_0x1de1x2f[_0x6270[64]],qs[_0x6270[72]](_0x1de1x19[_0x6270[68]][_0x6270[72]]));_0x1de1x23[_0x6270[71]]= (_0x1de1x23[_0x6270[71]][_0x6270[73]])?_0x1de1x23[_0x6270[71]]:_0x1de1x2f[_0x6270[64]];_0x1de1x23= _[_0x6270[83]]({},_0x1de1x23,_0x1de1x19[_0x6270[84]]);return db[_0x6270[66]][_0x6270[89]](_0x1de1x23)[_0x6270[36]](handleEntityNotFound(_0x1de1x1d,null,_0x6270[86]))[_0x6270[36]](respondWithResult(_0x1de1x1d,null,_0x6270[86]))[_0x6270[27]](handleError(_0x1de1x1d,null,_0x6270[86]))};exports[_0x6270[90]]= function(_0x1de1x19,_0x1de1x1d,_0x1de1x32){var _0x1de1x33;return db[_0x6270[104]][_0x6270[103]](function(_0x1de1x34){return db[_0x6270[66]][_0x6270[90]](_0x1de1x19[_0x6270[102]],{raw:true})[_0x6270[36]](function(_0x1de1x20){_0x1de1x33= _0x1de1x20;return db[_0x6270[66]][_0x6270[101]]({raw:true})})[_0x6270[36]](function(_0x1de1x35){var _0x1de1x36=fs[_0x6270[97]](path[_0x6270[95]](config[_0x6270[93]],_0x6270[94]),_0x6270[96]);var _0x1de1x37=ejs[_0x6270[98]](_0x1de1x36,{contexts:_0x1de1x35|| []});fs[_0x6270[100]](_0x6270[99],_0x1de1x37)})[_0x6270[36]](function(){return respondWithRpcPromise(_0x6270[91],_0x6270[90],{module:_0x6270[92]})})[_0x6270[36]](function(){return _0x1de1x33})})[_0x6270[36]](respondWithResult(_0x1de1x1d,201,_0x6270[90]))[_0x6270[27]](handleError(_0x1de1x1d,null,_0x6270[90]))};exports[_0x6270[57]]= function(_0x1de1x19,_0x1de1x1d,_0x1de1x32){var _0x1de1x33;return db[_0x6270[104]][_0x6270[103]](function(_0x1de1x34){return db[_0x6270[66]][_0x6270[89]]({where:{id:_0x1de1x19[_0x6270[88]][_0x6270[87]]}})[_0x6270[36]](handleEntityNotFound(_0x1de1x1d,null,_0x6270[57]))[_0x6270[36]](saveUpdates(_0x1de1x19[_0x6270[102]],null,_0x6270[57]))[_0x6270[36]](function(_0x1de1x20){if(_0x1de1x20){_0x1de1x33= _0x1de1x20;return db[_0x6270[66]][_0x6270[101]]({raw:true})};return null})[_0x6270[36]](function(_0x1de1x35){if(_0x1de1x35){var _0x1de1x36=fs[_0x6270[97]](path[_0x6270[95]](config[_0x6270[93]],_0x6270[94]),_0x6270[96]);var _0x1de1x37=ejs[_0x6270[98]](_0x1de1x36,{contexts:_0x1de1x35|| []});fs[_0x6270[100]](_0x6270[99],_0x1de1x37);return respondWithRpcPromise(_0x6270[91],_0x6270[57],{module:_0x6270[92]})};return null})[_0x6270[36]](function(_0x1de1x20){if(_0x1de1x20){return _0x1de1x33};return null})})[_0x6270[36]](respondWithResult(_0x1de1x1d,null,_0x6270[57]))[_0x6270[27]](handleError(_0x1de1x1d,null,_0x6270[57]))};exports[_0x6270[59]]= function(_0x1de1x19,_0x1de1x1d,_0x1de1x32){var _0x1de1x33;return db[_0x6270[66]][_0x6270[89]]({where:{id:_0x1de1x19[_0x6270[88]][_0x6270[87]]}})[_0x6270[36]](handleEntityNotFound(_0x1de1x1d,null,_0x6270[59]))[_0x6270[36]](removeEntity(_0x1de1x1d,null,_0x6270[59]))[_0x6270[36]](function(){return db[_0x6270[66]][_0x6270[101]]({raw:true})})[_0x6270[36]](function(_0x1de1x35){var _0x1de1x36=fs[_0x6270[97]](path[_0x6270[95]](config[_0x6270[93]],_0x6270[94]),_0x6270[96]);var _0x1de1x37=ejs[_0x6270[98]](_0x1de1x36,{contexts:_0x1de1x35});fs[_0x6270[100]](_0x6270[99],_0x1de1x37);return respondWithRpcPromise(_0x6270[91],_0x6270[59],{module:_0x6270[92]})})[_0x6270[27]](handleError(_0x1de1x1d,null,_0x6270[59]))}
\ No newline at end of file
index b497f9f..26f62af 100644 (file)
@@ -1 +1 @@
-var _0xd4b0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xd4b0[0];var _=require(_0xd4b0[1]);var util=require(_0xd4b0[2]);var logger=require(_0xd4b0[4])(_0xd4b0[3]);var attributes=require(_0xd4b0[5]);module[_0xd4b0[6]]= function(_0x3f49x5,_0x3f49x6){return _0x3f49x5[_0xd4b0[9]](_0xd4b0[7],attributes,{tableName:_0xd4b0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x87aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x87aa[0];var _=require(_0x87aa[1]);var util=require(_0x87aa[2]);var logger=require(_0x87aa[4])(_0x87aa[3]);var attributes=require(_0x87aa[5]);module[_0x87aa[6]]= function(_0x52adx5,_0x52adx6){return _0x52adx5[_0x87aa[9]](_0x87aa[7],attributes,{tableName:_0x87aa[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 346e424..3d5ce4c 100644 (file)
@@ -1 +1 @@
-var _0x370f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x370f[0];var _=require(_0x370f[1]);var util=require(_0x370f[2]);var moment=require(_0x370f[3]);var BPromise=require(_0x370f[4]);var db=require(_0x370f[6])[_0x370f[5]];var utils=require(_0x370f[7]);var logger=require(_0x370f[9])(_0x370f[8]);var jayson=require(_0x370f[10]);var client=jayson[_0x370f[12]][_0x370f[11]]({port:9002});function respondWithRpcPromise(_0xf850xb,_0xf850xc,_0xf850xd){return  new BPromise(function(_0xf850xe,_0xf850xf){return client[_0x370f[25]](_0xf850xb,_0xf850xd)[_0x370f[24]](function(_0xf850x11){logger[_0x370f[17]](_0x370f[13],_0xf850xc,_0x370f[16]);logger[_0x370f[20]](_0x370f[18],_0xf850xc,_0x370f[16],JSON[_0x370f[19]](_0xf850x11));if(_0xf850x11[_0x370f[14]]){if(_0xf850x11[_0x370f[14]][_0x370f[21]]=== 500){logger[_0x370f[14]](_0x370f[13],_0xf850xc,_0xf850x11[_0x370f[14]][_0x370f[22]]);return _0xf850xf(_0xf850x11[_0x370f[14]][_0x370f[22]])};logger[_0x370f[14]](_0x370f[13],_0xf850xc,_0xf850x11[_0x370f[14]][_0x370f[22]]);return _0xf850xe(_0xf850x11[_0x370f[14]][_0x370f[22]])}else {logger[_0x370f[17]](_0x370f[13],_0xf850xc,_0x370f[16]);_0xf850xe(_0xf850x11[_0x370f[23]][_0x370f[22]])}})[_0x370f[15]](function(_0xf850x10){logger[_0x370f[14]](_0x370f[13],_0xf850xc,_0xf850x10);_0xf850xf(_0xf850x10)})})}
\ No newline at end of file
+var _0x9627=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9627[0];var _=require(_0x9627[1]);var util=require(_0x9627[2]);var moment=require(_0x9627[3]);var BPromise=require(_0x9627[4]);var db=require(_0x9627[6])[_0x9627[5]];var utils=require(_0x9627[7]);var logger=require(_0x9627[9])(_0x9627[8]);var jayson=require(_0x9627[10]);var client=jayson[_0x9627[12]][_0x9627[11]]({port:9002});function respondWithRpcPromise(_0x907dxb,_0x907dxc,_0x907dxd){return  new BPromise(function(_0x907dxe,_0x907dxf){return client[_0x9627[25]](_0x907dxb,_0x907dxd)[_0x9627[24]](function(_0x907dx11){logger[_0x9627[17]](_0x9627[13],_0x907dxc,_0x9627[16]);logger[_0x9627[20]](_0x9627[18],_0x907dxc,_0x9627[16],JSON[_0x9627[19]](_0x907dx11));if(_0x907dx11[_0x9627[14]]){if(_0x907dx11[_0x9627[14]][_0x9627[21]]=== 500){logger[_0x9627[14]](_0x9627[13],_0x907dxc,_0x907dx11[_0x9627[14]][_0x9627[22]]);return _0x907dxf(_0x907dx11[_0x9627[14]][_0x9627[22]])};logger[_0x9627[14]](_0x9627[13],_0x907dxc,_0x907dx11[_0x9627[14]][_0x9627[22]]);return _0x907dxe(_0x907dx11[_0x9627[14]][_0x9627[22]])}else {logger[_0x9627[17]](_0x9627[13],_0x907dxc,_0x9627[16]);_0x907dxe(_0x907dx11[_0x9627[23]][_0x9627[22]])}})[_0x9627[15]](function(_0x907dx10){logger[_0x9627[14]](_0x9627[13],_0x907dxc,_0x907dx10);_0x907dxf(_0x907dx10)})})}
\ No newline at end of file
index 597a078..05bcdef 100644 (file)
@@ -1 +1 @@
-var _0x4f11=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4f11[0];var multer=require(_0x4f11[1]);var util=require(_0x4f11[2]);var path=require(_0x4f11[3]);var express=require(_0x4f11[4]);var router=express.Router();var auth=require(_0x4f11[5]);var config=require(_0x4f11[6]);var controller=require(_0x4f11[7]);router[_0x4f11[11]](_0x4f11[8],auth[_0x4f11[9]](),controller[_0x4f11[10]]);router[_0x4f11[11]](_0x4f11[12],auth[_0x4f11[9]](),controller[_0x4f11[13]]);router[_0x4f11[11]](_0x4f11[14],auth[_0x4f11[9]](),controller[_0x4f11[15]]);router[_0x4f11[17]](_0x4f11[8],auth[_0x4f11[9]](),controller[_0x4f11[16]]);router[_0x4f11[19]](_0x4f11[14],auth[_0x4f11[9]](),controller[_0x4f11[18]]);router[_0x4f11[21]](_0x4f11[14],auth[_0x4f11[9]](),controller[_0x4f11[20]]);module[_0x4f11[22]]= router
\ No newline at end of file
+var _0x4411=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4411[0];var multer=require(_0x4411[1]);var util=require(_0x4411[2]);var path=require(_0x4411[3]);var express=require(_0x4411[4]);var router=express.Router();var auth=require(_0x4411[5]);var config=require(_0x4411[6]);var controller=require(_0x4411[7]);router[_0x4411[11]](_0x4411[8],auth[_0x4411[9]](),controller[_0x4411[10]]);router[_0x4411[11]](_0x4411[12],auth[_0x4411[9]](),controller[_0x4411[13]]);router[_0x4411[11]](_0x4411[14],auth[_0x4411[9]](),controller[_0x4411[15]]);router[_0x4411[17]](_0x4411[8],auth[_0x4411[9]](),controller[_0x4411[16]]);router[_0x4411[19]](_0x4411[14],auth[_0x4411[9]](),controller[_0x4411[18]]);router[_0x4411[21]](_0x4411[14],auth[_0x4411[9]](),controller[_0x4411[20]]);module[_0x4411[22]]= router
\ No newline at end of file
index 7f4958a..9b7eae8 100644 (file)
@@ -1 +1 @@
-var _0x3a44=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x63\x61\x6C\x6C\x65\x64\x2C\x63\x6F\x6E\x6E\x65\x63\x74\x2C\x63\x6F\x6D\x70\x6C\x65\x74\x65"];_0x3a44[0];var Sequelize=require(_0x3a44[1]);module[_0x3a44[2]]= {privilege:{type:Sequelize[_0x3a44[3]]},channel:{type:Sequelize[_0x3a44[3]]},channelstate:{type:Sequelize[_0x3a44[4]]},channelstatedesc:{type:Sequelize[_0x3a44[3]]},calleridnum:{type:Sequelize[_0x3a44[3]]},calleridname:{type:Sequelize[_0x3a44[3]]},connectedlinenum:{type:Sequelize[_0x3a44[3]]},connectedlinename:{type:Sequelize[_0x3a44[3]]},language:{type:Sequelize[_0x3a44[3]]},accountcode:{type:Sequelize[_0x3a44[3]]},context:{type:Sequelize[_0x3a44[3]]},exten:{type:Sequelize[_0x3a44[3]]},priority:{type:Sequelize[_0x3a44[4]]},uniqueid:{type:Sequelize[_0x3a44[3]]},linkedid:{type:Sequelize[_0x3a44[3]]},destchannel:{type:Sequelize[_0x3a44[3]]},destchannelstate:{type:Sequelize[_0x3a44[4]]},destchannelstatedesc:{type:Sequelize[_0x3a44[3]]},destcalleridnum:{type:Sequelize[_0x3a44[3]]},destcalleridname:{type:Sequelize[_0x3a44[3]]},destconnectedlinenum:{type:Sequelize[_0x3a44[3]]},destconnectedlinename:{type:Sequelize[_0x3a44[3]]},destlanguage:{type:Sequelize[_0x3a44[3]]},destaccountcode:{type:Sequelize[_0x3a44[3]]},destcontext:{type:Sequelize[_0x3a44[3]]},destexten:{type:Sequelize[_0x3a44[3]]},destpriority:{type:Sequelize[_0x3a44[4]]},destuniqueid:{type:Sequelize[_0x3a44[3]]},destlinkedid:{type:Sequelize[_0x3a44[3]]},dialstring:{type:Sequelize[_0x3a44[3]]},dialstatus:{type:Sequelize[_0x3a44[3]]},starttime:{type:Sequelize[_0x3a44[5]]},answertime:{type:Sequelize[_0x3a44[5]]},endtime:{type:Sequelize[_0x3a44[5]]},lastevent:{type:Sequelize[_0x3a44[3]],comment:_0x3a44[6]},routeId:{type:Sequelize[_0x3a44[4]]}}
\ No newline at end of file
+var _0xf5b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x63\x61\x6C\x6C\x65\x64\x2C\x63\x6F\x6E\x6E\x65\x63\x74\x2C\x63\x6F\x6D\x70\x6C\x65\x74\x65"];_0xf5b8[0];var Sequelize=require(_0xf5b8[1]);module[_0xf5b8[2]]= {privilege:{type:Sequelize[_0xf5b8[3]]},channel:{type:Sequelize[_0xf5b8[3]]},channelstate:{type:Sequelize[_0xf5b8[4]]},channelstatedesc:{type:Sequelize[_0xf5b8[3]]},calleridnum:{type:Sequelize[_0xf5b8[3]]},calleridname:{type:Sequelize[_0xf5b8[3]]},connectedlinenum:{type:Sequelize[_0xf5b8[3]]},connectedlinename:{type:Sequelize[_0xf5b8[3]]},language:{type:Sequelize[_0xf5b8[3]]},accountcode:{type:Sequelize[_0xf5b8[3]]},context:{type:Sequelize[_0xf5b8[3]]},exten:{type:Sequelize[_0xf5b8[3]]},priority:{type:Sequelize[_0xf5b8[4]]},uniqueid:{type:Sequelize[_0xf5b8[3]]},linkedid:{type:Sequelize[_0xf5b8[3]]},destchannel:{type:Sequelize[_0xf5b8[3]]},destchannelstate:{type:Sequelize[_0xf5b8[4]]},destchannelstatedesc:{type:Sequelize[_0xf5b8[3]]},destcalleridnum:{type:Sequelize[_0xf5b8[3]]},destcalleridname:{type:Sequelize[_0xf5b8[3]]},destconnectedlinenum:{type:Sequelize[_0xf5b8[3]]},destconnectedlinename:{type:Sequelize[_0xf5b8[3]]},destlanguage:{type:Sequelize[_0xf5b8[3]]},destaccountcode:{type:Sequelize[_0xf5b8[3]]},destcontext:{type:Sequelize[_0xf5b8[3]]},destexten:{type:Sequelize[_0xf5b8[3]]},destpriority:{type:Sequelize[_0xf5b8[4]]},destuniqueid:{type:Sequelize[_0xf5b8[3]]},destlinkedid:{type:Sequelize[_0xf5b8[3]]},dialstring:{type:Sequelize[_0xf5b8[3]]},dialstatus:{type:Sequelize[_0xf5b8[3]]},starttime:{type:Sequelize[_0xf5b8[5]]},answertime:{type:Sequelize[_0xf5b8[5]]},endtime:{type:Sequelize[_0xf5b8[5]]},lastevent:{type:Sequelize[_0xf5b8[3]],comment:_0xf5b8[6]},routeId:{type:Sequelize[_0xf5b8[4]]}}
\ No newline at end of file
index e7adb33..932bb48 100644 (file)
@@ -1 +1 @@
-var _0xa520=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xa520[0];var jsonpatch=require(_0xa520[1]);var rp=require(_0xa520[2]);var moment=require(_0xa520[3]);var BPromise=require(_0xa520[4]);var util=require(_0xa520[5]);var path=require(_0xa520[6]);var sox=require(_0xa520[7]);var ejs=require(_0xa520[8]);var fs=require(_0xa520[9]);var _=require(_0xa520[10]);var squel=require(_0xa520[11]);var crypto=require(_0xa520[12]);var jsforce=require(_0xa520[13]);var toCsv=require(_0xa520[14]);var qs=require(_0xa520[15]);var logger=require(_0xa520[17])(_0xa520[16]);var utils=require(_0xa520[18]);var config=require(_0xa520[19]);var db=require(_0xa520[21])[_0xa520[20]];function respondWithStatusCode(_0x1df9x15,_0x1df9x16,_0x1df9x17){_0x1df9x16= _0x1df9x16|| 204;return function(_0x1df9x18){if(_0x1df9x18){logger[_0xa520[24]](_0xa520[22],_0x1df9x17,_0x1df9x16,_0xa520[23]);logger[_0xa520[26]](_0xa520[25],_0x1df9x17,_0x1df9x16,_0xa520[23]);return _0x1df9x15[_0xa520[27]](_0x1df9x16)};return _0x1df9x15[_0xa520[29]](304)[_0xa520[28]]()}}function respondWithResult(_0x1df9x15,_0x1df9x16,_0x1df9x17){_0x1df9x16= _0x1df9x16|| 200;return function(_0x1df9x18){if(_0x1df9x18){logger[_0xa520[24]](_0xa520[22],_0x1df9x17,_0x1df9x16,_0xa520[30]);logger[_0xa520[26]](_0xa520[25],_0x1df9x17,_0x1df9x16,_0xa520[30],JSON[_0xa520[31]](_0x1df9x18));return _0x1df9x15[_0xa520[29]](_0x1df9x16)[_0xa520[32]](_0x1df9x18)};return _0x1df9x15[_0xa520[29]](304)[_0xa520[28]]()}}function respondWithFilteredResult(_0x1df9x15,_0x1df9x1b,_0x1df9x17){return function(_0x1df9x18){if(_0x1df9x18){var _0x1df9x1c=_0x1df9x18[_0xa520[33]],_0x1df9x1d=_0x1df9x1b[_0xa520[34]],_0x1df9x1e=_0x1df9x1b[_0xa520[34]]+ _0x1df9x1b[_0xa520[35]],_0x1df9x16;if(_0x1df9x1e>= _0x1df9x1c){_0x1df9x1e= _0x1df9x1c;_0x1df9x16= 200}else {_0x1df9x16= 206};_0x1df9x15[_0xa520[29]](_0x1df9x16);logger[_0xa520[24]](_0xa520[22],_0x1df9x17,_0x1df9x16,_0xa520[36]);logger[_0xa520[26]](_0xa520[25],_0x1df9x17,_0x1df9x16,_0xa520[30],JSON[_0xa520[31]](_0x1df9x18));return _0x1df9x15[_0xa520[40]](_0xa520[37],_0x1df9x1d+ _0xa520[38]+ _0x1df9x1e+ _0xa520[39]+ _0x1df9x1c)[_0xa520[32]](_0x1df9x18)};return null}}function patchUpdates(_0x1df9x20){return function(_0x1df9x18){try{jsonpatch[_0xa520[41]](_0x1df9x18,_0x1df9x20,true)}catch(err){return BPromise[_0xa520[42]](err)};return _0x1df9x18[_0xa520[43]]()}}function saveUpdates(_0x1df9x22,_0x1df9x16,_0x1df9x17){return function(_0x1df9x18){if(_0x1df9x18){return _0x1df9x18[_0xa520[46]](_0x1df9x22)[_0xa520[45]](function(_0x1df9x23){logger[_0xa520[24]](_0xa520[22],_0x1df9x17,_0x1df9x16,_0xa520[44]);logger[_0xa520[26]](_0xa520[25],_0x1df9x17,_0x1df9x16,_0xa520[44],JSON[_0xa520[31]](_0x1df9x18));return _0x1df9x23})};return null}}function removeEntity(_0x1df9x15,_0x1df9x16,_0x1df9x17){return function(_0x1df9x18){if(_0x1df9x18){return _0x1df9x18[_0xa520[48]]()[_0xa520[45]](function(){logger[_0xa520[24]](_0xa520[22],_0x1df9x17,_0x1df9x16,_0xa520[47]);logger[_0xa520[26]](_0xa520[25],_0x1df9x17,_0x1df9x16,_0xa520[47],JSON[_0xa520[31]](_0x1df9x18));_0x1df9x15[_0xa520[29]](204)[_0xa520[28]]()})}}}function handleEntityNotFound(_0x1df9x15,_0x1df9x16,_0x1df9x17){return function(_0x1df9x18){if(!_0x1df9x18){logger[_0xa520[50]](_0xa520[22],_0x1df9x17,404,_0xa520[49]);_0x1df9x15[_0xa520[29]](404)[_0xa520[28]]();return null};return _0x1df9x18}}function handleError(_0x1df9x15,_0x1df9x16,_0x1df9x17){_0x1df9x16= _0x1df9x16|| 500;return function(_0x1df9x27){logger[_0xa520[50]](_0xa520[22],_0x1df9x17,_0x1df9x16,JSON[_0xa520[31]](_0x1df9x27));delete _0x1df9x27[_0xa520[51]];_0x1df9x15[_0xa520[29]](_0x1df9x16)[_0xa520[52]](_0x1df9x27)}}exports[_0xa520[53]]= function(_0x1df9x28,_0x1df9x15){var _0x1df9x1b={},_0x1df9x29={};_0x1df9x29[_0xa520[54]]= _[_0xa520[57]](db[_0xa520[56]][_0xa520[55]]);_0x1df9x29[_0xa520[58]]= _[_0xa520[57]](_0x1df9x28[_0xa520[58]]);_0x1df9x29[_0xa520[59]]= _[_0xa520[60]](_0x1df9x29[_0xa520[54]],_0x1df9x29[_0xa520[58]]);_0x1df9x1b[_0xa520[61]]= _[_0xa520[60]](_0x1df9x29[_0xa520[54]],qs[_0xa520[62]](_0x1df9x28[_0xa520[58]][_0xa520[62]]));_0x1df9x1b[_0xa520[61]]= (_0x1df9x1b[_0xa520[61]][_0xa520[63]])?_0x1df9x1b[_0xa520[61]]:_0x1df9x29[_0xa520[54]];if(!_0x1df9x28[_0xa520[58]][_0xa520[65]](_0xa520[64])){_0x1df9x1b[_0xa520[35]]= qs[_0xa520[35]](_0x1df9x28[_0xa520[58]][_0xa520[35]]);_0x1df9x1b[_0xa520[34]]= qs[_0xa520[34]](_0x1df9x28[_0xa520[58]][_0xa520[34]])};_0x1df9x1b[_0xa520[66]]= qs[_0xa520[67]](_0x1df9x28[_0xa520[58]][_0xa520[67]]);_0x1df9x1b[_0xa520[68]]= qs[_0xa520[59]](_[_0xa520[69]](_0x1df9x28[_0xa520[58]],_0x1df9x29[_0xa520[59]]));if(_0x1df9x28[_0xa520[58]][_0xa520[70]]){_0x1df9x1b[_0xa520[68]]= _[_0xa520[73]](_0x1df9x1b[_0xa520[68]],{$or:_[_0xa520[72]](_0x1df9x1b[_0xa520[61]],function(_0x1df9x2a){var _0x1df9x2b={};_0x1df9x2b[_0x1df9x2a]= {$like:_0xa520[71]+ _0x1df9x28[_0xa520[58]][_0xa520[70]]+ _0xa520[71]};return _0x1df9x2b})})};_0x1df9x1b= _[_0xa520[73]]({},_0x1df9x1b,_0x1df9x28[_0xa520[74]]);return db[_0xa520[56]][_0xa520[76]](_0x1df9x1b)[_0xa520[45]](respondWithFilteredResult(_0x1df9x15,_0x1df9x1b,_0xa520[53]))[_0xa520[75]](handleError(_0x1df9x15,null,_0xa520[53]))};exports[_0xa520[77]]= function(_0x1df9x28,_0x1df9x15){var _0x1df9x1b={raw:true,where:{id:_0x1df9x28[_0xa520[79]][_0xa520[78]]}},_0x1df9x29={};_0x1df9x29[_0xa520[54]]= _[_0xa520[57]](db[_0xa520[56]][_0xa520[55]]);_0x1df9x29[_0xa520[58]]= _[_0xa520[57]](_0x1df9x28[_0xa520[58]]);_0x1df9x29[_0xa520[59]]= _[_0xa520[60]](_0x1df9x29[_0xa520[54]],_0x1df9x29[_0xa520[58]]);_0x1df9x1b[_0xa520[61]]= _[_0xa520[60]](_0x1df9x29[_0xa520[54]],qs[_0xa520[62]](_0x1df9x28[_0xa520[58]][_0xa520[62]]));_0x1df9x1b[_0xa520[61]]= (_0x1df9x1b[_0xa520[61]][_0xa520[63]])?_0x1df9x1b[_0xa520[61]]:_0x1df9x29[_0xa520[54]];_0x1df9x1b= _[_0xa520[73]]({},_0x1df9x1b,_0x1df9x28[_0xa520[74]]);return db[_0xa520[56]][_0xa520[80]](_0x1df9x1b)[_0xa520[45]](handleEntityNotFound(_0x1df9x15,null,_0xa520[77]))[_0xa520[45]](respondWithResult(_0x1df9x15,null,_0xa520[77]))[_0xa520[75]](handleError(_0x1df9x15,null,_0xa520[77]))};exports[_0xa520[81]]= function(_0x1df9x28,_0x1df9x15){return db[_0xa520[56]][_0xa520[81]](_0x1df9x28[_0xa520[82]],{})[_0xa520[45]](respondWithResult(_0x1df9x15,201,_0xa520[81]))[_0xa520[75]](handleError(_0x1df9x15,null,_0xa520[81]))};exports[_0xa520[46]]= function(_0x1df9x28,_0x1df9x15){if(_0x1df9x28[_0xa520[82]][_0xa520[78]]){delete _0x1df9x28[_0xa520[82]][_0xa520[78]]};return db[_0xa520[56]][_0xa520[80]]({where:{id:_0x1df9x28[_0xa520[79]][_0xa520[78]]}})[_0xa520[45]](handleEntityNotFound(_0x1df9x15,null,_0xa520[46]))[_0xa520[45]](saveUpdates(_0x1df9x28[_0xa520[82]],null,_0xa520[46]))[_0xa520[45]](respondWithResult(_0x1df9x15,null,_0xa520[46]))[_0xa520[75]](handleError(_0x1df9x15,null,_0xa520[46]))};exports[_0xa520[48]]= function(_0x1df9x28,_0x1df9x15){return db[_0xa520[56]][_0xa520[80]]({where:{id:_0x1df9x28[_0xa520[79]][_0xa520[78]]}})[_0xa520[45]](handleEntityNotFound(_0x1df9x15,null,_0xa520[48]))[_0xa520[45]](removeEntity(_0x1df9x15,null,_0xa520[48]))[_0xa520[75]](handleError(_0x1df9x15,null,_0xa520[48]))};exports[_0xa520[83]]= function(_0x1df9x28,_0x1df9x15){return db[_0xa520[56]][_0xa520[83]]()[_0xa520[45]](respondWithResult(_0x1df9x15,null,_0xa520[83]))[_0xa520[75]](handleError(_0x1df9x15,null,_0xa520[83]))}
\ No newline at end of file
+var _0xc481=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xc481[0];var jsonpatch=require(_0xc481[1]);var rp=require(_0xc481[2]);var moment=require(_0xc481[3]);var BPromise=require(_0xc481[4]);var util=require(_0xc481[5]);var path=require(_0xc481[6]);var sox=require(_0xc481[7]);var ejs=require(_0xc481[8]);var fs=require(_0xc481[9]);var _=require(_0xc481[10]);var squel=require(_0xc481[11]);var crypto=require(_0xc481[12]);var jsforce=require(_0xc481[13]);var toCsv=require(_0xc481[14]);var qs=require(_0xc481[15]);var logger=require(_0xc481[17])(_0xc481[16]);var utils=require(_0xc481[18]);var config=require(_0xc481[19]);var db=require(_0xc481[21])[_0xc481[20]];function respondWithStatusCode(_0xa564x15,_0xa564x16,_0xa564x17){_0xa564x16= _0xa564x16|| 204;return function(_0xa564x18){if(_0xa564x18){logger[_0xc481[24]](_0xc481[22],_0xa564x17,_0xa564x16,_0xc481[23]);logger[_0xc481[26]](_0xc481[25],_0xa564x17,_0xa564x16,_0xc481[23]);return _0xa564x15[_0xc481[27]](_0xa564x16)};return _0xa564x15[_0xc481[29]](304)[_0xc481[28]]()}}function respondWithResult(_0xa564x15,_0xa564x16,_0xa564x17){_0xa564x16= _0xa564x16|| 200;return function(_0xa564x18){if(_0xa564x18){logger[_0xc481[24]](_0xc481[22],_0xa564x17,_0xa564x16,_0xc481[30]);logger[_0xc481[26]](_0xc481[25],_0xa564x17,_0xa564x16,_0xc481[30],JSON[_0xc481[31]](_0xa564x18));return _0xa564x15[_0xc481[29]](_0xa564x16)[_0xc481[32]](_0xa564x18)};return _0xa564x15[_0xc481[29]](304)[_0xc481[28]]()}}function respondWithFilteredResult(_0xa564x15,_0xa564x1b,_0xa564x17){return function(_0xa564x18){if(_0xa564x18){var _0xa564x1c=_0xa564x18[_0xc481[33]],_0xa564x1d=_0xa564x1b[_0xc481[34]],_0xa564x1e=_0xa564x1b[_0xc481[34]]+ _0xa564x1b[_0xc481[35]],_0xa564x16;if(_0xa564x1e>= _0xa564x1c){_0xa564x1e= _0xa564x1c;_0xa564x16= 200}else {_0xa564x16= 206};_0xa564x15[_0xc481[29]](_0xa564x16);logger[_0xc481[24]](_0xc481[22],_0xa564x17,_0xa564x16,_0xc481[36]);logger[_0xc481[26]](_0xc481[25],_0xa564x17,_0xa564x16,_0xc481[30],JSON[_0xc481[31]](_0xa564x18));return _0xa564x15[_0xc481[40]](_0xc481[37],_0xa564x1d+ _0xc481[38]+ _0xa564x1e+ _0xc481[39]+ _0xa564x1c)[_0xc481[32]](_0xa564x18)};return null}}function patchUpdates(_0xa564x20){return function(_0xa564x18){try{jsonpatch[_0xc481[41]](_0xa564x18,_0xa564x20,true)}catch(err){return BPromise[_0xc481[42]](err)};return _0xa564x18[_0xc481[43]]()}}function saveUpdates(_0xa564x22,_0xa564x16,_0xa564x17){return function(_0xa564x18){if(_0xa564x18){return _0xa564x18[_0xc481[46]](_0xa564x22)[_0xc481[45]](function(_0xa564x23){logger[_0xc481[24]](_0xc481[22],_0xa564x17,_0xa564x16,_0xc481[44]);logger[_0xc481[26]](_0xc481[25],_0xa564x17,_0xa564x16,_0xc481[44],JSON[_0xc481[31]](_0xa564x18));return _0xa564x23})};return null}}function removeEntity(_0xa564x15,_0xa564x16,_0xa564x17){return function(_0xa564x18){if(_0xa564x18){return _0xa564x18[_0xc481[48]]()[_0xc481[45]](function(){logger[_0xc481[24]](_0xc481[22],_0xa564x17,_0xa564x16,_0xc481[47]);logger[_0xc481[26]](_0xc481[25],_0xa564x17,_0xa564x16,_0xc481[47],JSON[_0xc481[31]](_0xa564x18));_0xa564x15[_0xc481[29]](204)[_0xc481[28]]()})}}}function handleEntityNotFound(_0xa564x15,_0xa564x16,_0xa564x17){return function(_0xa564x18){if(!_0xa564x18){logger[_0xc481[50]](_0xc481[22],_0xa564x17,404,_0xc481[49]);_0xa564x15[_0xc481[29]](404)[_0xc481[28]]();return null};return _0xa564x18}}function handleError(_0xa564x15,_0xa564x16,_0xa564x17){_0xa564x16= _0xa564x16|| 500;return function(_0xa564x27){logger[_0xc481[50]](_0xc481[22],_0xa564x17,_0xa564x16,JSON[_0xc481[31]](_0xa564x27));delete _0xa564x27[_0xc481[51]];_0xa564x15[_0xc481[29]](_0xa564x16)[_0xc481[52]](_0xa564x27)}}exports[_0xc481[53]]= function(_0xa564x28,_0xa564x15){var _0xa564x1b={},_0xa564x29={};_0xa564x29[_0xc481[54]]= _[_0xc481[57]](db[_0xc481[56]][_0xc481[55]]);_0xa564x29[_0xc481[58]]= _[_0xc481[57]](_0xa564x28[_0xc481[58]]);_0xa564x29[_0xc481[59]]= _[_0xc481[60]](_0xa564x29[_0xc481[54]],_0xa564x29[_0xc481[58]]);_0xa564x1b[_0xc481[61]]= _[_0xc481[60]](_0xa564x29[_0xc481[54]],qs[_0xc481[62]](_0xa564x28[_0xc481[58]][_0xc481[62]]));_0xa564x1b[_0xc481[61]]= (_0xa564x1b[_0xc481[61]][_0xc481[63]])?_0xa564x1b[_0xc481[61]]:_0xa564x29[_0xc481[54]];if(!_0xa564x28[_0xc481[58]][_0xc481[65]](_0xc481[64])){_0xa564x1b[_0xc481[35]]= qs[_0xc481[35]](_0xa564x28[_0xc481[58]][_0xc481[35]]);_0xa564x1b[_0xc481[34]]= qs[_0xc481[34]](_0xa564x28[_0xc481[58]][_0xc481[34]])};_0xa564x1b[_0xc481[66]]= qs[_0xc481[67]](_0xa564x28[_0xc481[58]][_0xc481[67]]);_0xa564x1b[_0xc481[68]]= qs[_0xc481[59]](_[_0xc481[69]](_0xa564x28[_0xc481[58]],_0xa564x29[_0xc481[59]]));if(_0xa564x28[_0xc481[58]][_0xc481[70]]){_0xa564x1b[_0xc481[68]]= _[_0xc481[73]](_0xa564x1b[_0xc481[68]],{$or:_[_0xc481[72]](_0xa564x1b[_0xc481[61]],function(_0xa564x2a){var _0xa564x2b={};_0xa564x2b[_0xa564x2a]= {$like:_0xc481[71]+ _0xa564x28[_0xc481[58]][_0xc481[70]]+ _0xc481[71]};return _0xa564x2b})})};_0xa564x1b= _[_0xc481[73]]({},_0xa564x1b,_0xa564x28[_0xc481[74]]);return db[_0xc481[56]][_0xc481[76]](_0xa564x1b)[_0xc481[45]](respondWithFilteredResult(_0xa564x15,_0xa564x1b,_0xc481[53]))[_0xc481[75]](handleError(_0xa564x15,null,_0xc481[53]))};exports[_0xc481[77]]= function(_0xa564x28,_0xa564x15){var _0xa564x1b={raw:true,where:{id:_0xa564x28[_0xc481[79]][_0xc481[78]]}},_0xa564x29={};_0xa564x29[_0xc481[54]]= _[_0xc481[57]](db[_0xc481[56]][_0xc481[55]]);_0xa564x29[_0xc481[58]]= _[_0xc481[57]](_0xa564x28[_0xc481[58]]);_0xa564x29[_0xc481[59]]= _[_0xc481[60]](_0xa564x29[_0xc481[54]],_0xa564x29[_0xc481[58]]);_0xa564x1b[_0xc481[61]]= _[_0xc481[60]](_0xa564x29[_0xc481[54]],qs[_0xc481[62]](_0xa564x28[_0xc481[58]][_0xc481[62]]));_0xa564x1b[_0xc481[61]]= (_0xa564x1b[_0xc481[61]][_0xc481[63]])?_0xa564x1b[_0xc481[61]]:_0xa564x29[_0xc481[54]];_0xa564x1b= _[_0xc481[73]]({},_0xa564x1b,_0xa564x28[_0xc481[74]]);return db[_0xc481[56]][_0xc481[80]](_0xa564x1b)[_0xc481[45]](handleEntityNotFound(_0xa564x15,null,_0xc481[77]))[_0xc481[45]](respondWithResult(_0xa564x15,null,_0xc481[77]))[_0xc481[75]](handleError(_0xa564x15,null,_0xc481[77]))};exports[_0xc481[81]]= function(_0xa564x28,_0xa564x15){return db[_0xc481[56]][_0xc481[81]](_0xa564x28[_0xc481[82]],{})[_0xc481[45]](respondWithResult(_0xa564x15,201,_0xc481[81]))[_0xc481[75]](handleError(_0xa564x15,null,_0xc481[81]))};exports[_0xc481[46]]= function(_0xa564x28,_0xa564x15){if(_0xa564x28[_0xc481[82]][_0xc481[78]]){delete _0xa564x28[_0xc481[82]][_0xc481[78]]};return db[_0xc481[56]][_0xc481[80]]({where:{id:_0xa564x28[_0xc481[79]][_0xc481[78]]}})[_0xc481[45]](handleEntityNotFound(_0xa564x15,null,_0xc481[46]))[_0xc481[45]](saveUpdates(_0xa564x28[_0xc481[82]],null,_0xc481[46]))[_0xc481[45]](respondWithResult(_0xa564x15,null,_0xc481[46]))[_0xc481[75]](handleError(_0xa564x15,null,_0xc481[46]))};exports[_0xc481[48]]= function(_0xa564x28,_0xa564x15){return db[_0xc481[56]][_0xc481[80]]({where:{id:_0xa564x28[_0xc481[79]][_0xc481[78]]}})[_0xc481[45]](handleEntityNotFound(_0xa564x15,null,_0xc481[48]))[_0xc481[45]](removeEntity(_0xa564x15,null,_0xc481[48]))[_0xc481[75]](handleError(_0xa564x15,null,_0xc481[48]))};exports[_0xc481[83]]= function(_0xa564x28,_0xa564x15){return db[_0xc481[56]][_0xc481[83]]()[_0xc481[45]](respondWithResult(_0xa564x15,null,_0xc481[83]))[_0xc481[75]](handleError(_0xa564x15,null,_0xc481[83]))}
\ No newline at end of file
index 7a62a3a..8ee8b37 100644 (file)
@@ -1 +1 @@
-var _0x9157=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0x9157[0];var _=require(_0x9157[1]);var util=require(_0x9157[2]);var logger=require(_0x9157[4])(_0x9157[3]);var attributes=require(_0x9157[5]);module[_0x9157[6]]= function(_0x3379x5,_0x3379x6){return _0x3379x5[_0x9157[10]](_0x9157[7],attributes,{tableName:_0x9157[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0x9157[9]]}],timestamps:true})}
\ No newline at end of file
+var _0xb5df=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0xb5df[0];var _=require(_0xb5df[1]);var util=require(_0xb5df[2]);var logger=require(_0xb5df[4])(_0xb5df[3]);var attributes=require(_0xb5df[5]);module[_0xb5df[6]]= function(_0x2dabx5,_0x2dabx6){return _0x2dabx5[_0xb5df[10]](_0xb5df[7],attributes,{tableName:_0xb5df[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0xb5df[9]]}],timestamps:true})}
\ No newline at end of file
index 7c37bc7..5ee821b 100644 (file)
@@ -1 +1 @@
-var _0xd8e3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xd8e3[0];var _=require(_0xd8e3[1]);var util=require(_0xd8e3[2]);var moment=require(_0xd8e3[3]);var BPromise=require(_0xd8e3[4]);var db=require(_0xd8e3[6])[_0xd8e3[5]];var utils=require(_0xd8e3[7]);var logger=require(_0xd8e3[9])(_0xd8e3[8]);var jayson=require(_0xd8e3[10]);var client=jayson[_0xd8e3[12]][_0xd8e3[11]]({port:9002});function respondWithRpcPromise(_0x95daxb,_0x95daxc,_0x95daxd){return  new BPromise(function(_0x95daxe,_0x95daxf){return client[_0xd8e3[25]](_0x95daxb,_0x95daxd)[_0xd8e3[24]](function(_0x95dax11){logger[_0xd8e3[17]](_0xd8e3[13],_0x95daxc,_0xd8e3[16]);logger[_0xd8e3[20]](_0xd8e3[18],_0x95daxc,_0xd8e3[16],JSON[_0xd8e3[19]](_0x95dax11));if(_0x95dax11[_0xd8e3[14]]){if(_0x95dax11[_0xd8e3[14]][_0xd8e3[21]]=== 500){logger[_0xd8e3[14]](_0xd8e3[13],_0x95daxc,_0x95dax11[_0xd8e3[14]][_0xd8e3[22]]);return _0x95daxf(_0x95dax11[_0xd8e3[14]][_0xd8e3[22]])};logger[_0xd8e3[14]](_0xd8e3[13],_0x95daxc,_0x95dax11[_0xd8e3[14]][_0xd8e3[22]]);return _0x95daxe(_0x95dax11[_0xd8e3[14]][_0xd8e3[22]])}else {logger[_0xd8e3[17]](_0xd8e3[13],_0x95daxc,_0xd8e3[16]);_0x95daxe(_0x95dax11[_0xd8e3[23]][_0xd8e3[22]])}})[_0xd8e3[15]](function(_0x95dax10){logger[_0xd8e3[14]](_0xd8e3[13],_0x95daxc,_0x95dax10);_0x95daxf(_0x95dax10)})})}exports[_0xd8e3[26]]= function(_0x95daxd){var _0x95dax12=this;return  new Promise(function(_0x95daxe,_0x95daxf){return db[_0xd8e3[31]][_0xd8e3[30]](_0x95daxd[_0xd8e3[27]],{raw:_0x95daxd[_0xd8e3[28]]?(_0x95daxd[_0xd8e3[28]][_0xd8e3[29]]=== undefined)?true:false:true})[_0xd8e3[24]](function(_0x95dax11){logger[_0xd8e3[17]](_0xd8e3[26],_0x95daxd);logger[_0xd8e3[20]](_0xd8e3[26],_0x95daxd,JSON[_0xd8e3[19]](_0x95dax11));_0x95daxe(_0x95dax11)})[_0xd8e3[15]](function(_0x95dax10){logger[_0xd8e3[14]](_0xd8e3[26],_0x95dax10[_0xd8e3[22]],_0x95daxd);_0x95daxf(_0x95dax12[_0xd8e3[14]](500,_0x95dax10[_0xd8e3[22]]))})})};exports[_0xd8e3[32]]= function(_0x95daxd){var _0x95dax12=this;return  new Promise(function(_0x95daxe,_0x95daxf){return db[_0xd8e3[31]][_0xd8e3[36]](_0x95daxd[_0xd8e3[27]],{raw:_0x95daxd[_0xd8e3[28]]?(_0x95daxd[_0xd8e3[28]][_0xd8e3[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x95daxd[_0xd8e3[28]]?_0x95daxd[_0xd8e3[28]][_0xd8e3[33]]|| null:null,attributes:_0x95daxd[_0xd8e3[28]]?_0x95daxd[_0xd8e3[28]][_0xd8e3[34]]|| null:null,limit:_0x95daxd[_0xd8e3[28]]?_0x95daxd[_0xd8e3[28]][_0xd8e3[35]]|| null:null})[_0xd8e3[24]](function(_0x95dax11){logger[_0xd8e3[17]](_0xd8e3[32],_0x95daxd);logger[_0xd8e3[20]](_0xd8e3[32],_0x95daxd,JSON[_0xd8e3[19]](_0x95dax11));_0x95daxe(_0x95dax11)})[_0xd8e3[15]](function(_0x95dax10){logger[_0xd8e3[14]](_0xd8e3[32],_0x95dax10[_0xd8e3[22]],_0x95daxd);_0x95daxf(_0x95dax12[_0xd8e3[14]](500,_0x95dax10[_0xd8e3[22]]))})})}
\ No newline at end of file
+var _0x5b37=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0x5b37[0];var _=require(_0x5b37[1]);var util=require(_0x5b37[2]);var moment=require(_0x5b37[3]);var BPromise=require(_0x5b37[4]);var db=require(_0x5b37[6])[_0x5b37[5]];var utils=require(_0x5b37[7]);var logger=require(_0x5b37[9])(_0x5b37[8]);var jayson=require(_0x5b37[10]);var client=jayson[_0x5b37[12]][_0x5b37[11]]({port:9002});function respondWithRpcPromise(_0x1f0bxb,_0x1f0bxc,_0x1f0bxd){return  new BPromise(function(_0x1f0bxe,_0x1f0bxf){return client[_0x5b37[25]](_0x1f0bxb,_0x1f0bxd)[_0x5b37[24]](function(_0x1f0bx11){logger[_0x5b37[17]](_0x5b37[13],_0x1f0bxc,_0x5b37[16]);logger[_0x5b37[20]](_0x5b37[18],_0x1f0bxc,_0x5b37[16],JSON[_0x5b37[19]](_0x1f0bx11));if(_0x1f0bx11[_0x5b37[14]]){if(_0x1f0bx11[_0x5b37[14]][_0x5b37[21]]=== 500){logger[_0x5b37[14]](_0x5b37[13],_0x1f0bxc,_0x1f0bx11[_0x5b37[14]][_0x5b37[22]]);return _0x1f0bxf(_0x1f0bx11[_0x5b37[14]][_0x5b37[22]])};logger[_0x5b37[14]](_0x5b37[13],_0x1f0bxc,_0x1f0bx11[_0x5b37[14]][_0x5b37[22]]);return _0x1f0bxe(_0x1f0bx11[_0x5b37[14]][_0x5b37[22]])}else {logger[_0x5b37[17]](_0x5b37[13],_0x1f0bxc,_0x5b37[16]);_0x1f0bxe(_0x1f0bx11[_0x5b37[23]][_0x5b37[22]])}})[_0x5b37[15]](function(_0x1f0bx10){logger[_0x5b37[14]](_0x5b37[13],_0x1f0bxc,_0x1f0bx10);_0x1f0bxf(_0x1f0bx10)})})}exports[_0x5b37[26]]= function(_0x1f0bxd){var _0x1f0bx12=this;return  new Promise(function(_0x1f0bxe,_0x1f0bxf){return db[_0x5b37[31]][_0x5b37[30]](_0x1f0bxd[_0x5b37[27]],{raw:_0x1f0bxd[_0x5b37[28]]?(_0x1f0bxd[_0x5b37[28]][_0x5b37[29]]=== undefined)?true:false:true})[_0x5b37[24]](function(_0x1f0bx11){logger[_0x5b37[17]](_0x5b37[26],_0x1f0bxd);logger[_0x5b37[20]](_0x5b37[26],_0x1f0bxd,JSON[_0x5b37[19]](_0x1f0bx11));_0x1f0bxe(_0x1f0bx11)})[_0x5b37[15]](function(_0x1f0bx10){logger[_0x5b37[14]](_0x5b37[26],_0x1f0bx10[_0x5b37[22]],_0x1f0bxd);_0x1f0bxf(_0x1f0bx12[_0x5b37[14]](500,_0x1f0bx10[_0x5b37[22]]))})})};exports[_0x5b37[32]]= function(_0x1f0bxd){var _0x1f0bx12=this;return  new Promise(function(_0x1f0bxe,_0x1f0bxf){return db[_0x5b37[31]][_0x5b37[36]](_0x1f0bxd[_0x5b37[27]],{raw:_0x1f0bxd[_0x5b37[28]]?(_0x1f0bxd[_0x5b37[28]][_0x5b37[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x1f0bxd[_0x5b37[28]]?_0x1f0bxd[_0x5b37[28]][_0x5b37[33]]|| null:null,attributes:_0x1f0bxd[_0x5b37[28]]?_0x1f0bxd[_0x5b37[28]][_0x5b37[34]]|| null:null,limit:_0x1f0bxd[_0x5b37[28]]?_0x1f0bxd[_0x5b37[28]][_0x5b37[35]]|| null:null})[_0x5b37[24]](function(_0x1f0bx11){logger[_0x5b37[17]](_0x5b37[32],_0x1f0bxd);logger[_0x5b37[20]](_0x5b37[32],_0x1f0bxd,JSON[_0x5b37[19]](_0x1f0bx11));_0x1f0bxe(_0x1f0bx11)})[_0x5b37[15]](function(_0x1f0bx10){logger[_0x5b37[14]](_0x5b37[32],_0x1f0bx10[_0x5b37[22]],_0x1f0bxd);_0x1f0bxf(_0x1f0bx12[_0x5b37[14]](500,_0x1f0bx10[_0x5b37[22]]))})})}
\ No newline at end of file
index 396092e..c2493a3 100644 (file)
@@ -1 +1 @@
-var _0x3a95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3a95[0];var multer=require(_0x3a95[1]);var util=require(_0x3a95[2]);var path=require(_0x3a95[3]);var express=require(_0x3a95[4]);var router=express.Router();var auth=require(_0x3a95[5]);var config=require(_0x3a95[6]);var controller=require(_0x3a95[7]);router[_0x3a95[11]](_0x3a95[8],auth[_0x3a95[9]](),controller[_0x3a95[10]]);router[_0x3a95[11]](_0x3a95[12],auth[_0x3a95[9]](),controller[_0x3a95[13]]);router[_0x3a95[15]](_0x3a95[8],auth[_0x3a95[9]](),controller[_0x3a95[14]]);router[_0x3a95[17]](_0x3a95[12],auth[_0x3a95[9]](),controller[_0x3a95[16]]);router[_0x3a95[19]](_0x3a95[12],auth[_0x3a95[9]](),controller[_0x3a95[18]]);module[_0x3a95[20]]= router
\ No newline at end of file
+var _0x9a86=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9a86[0];var multer=require(_0x9a86[1]);var util=require(_0x9a86[2]);var path=require(_0x9a86[3]);var express=require(_0x9a86[4]);var router=express.Router();var auth=require(_0x9a86[5]);var config=require(_0x9a86[6]);var controller=require(_0x9a86[7]);router[_0x9a86[11]](_0x9a86[8],auth[_0x9a86[9]](),controller[_0x9a86[10]]);router[_0x9a86[11]](_0x9a86[12],auth[_0x9a86[9]](),controller[_0x9a86[13]]);router[_0x9a86[15]](_0x9a86[8],auth[_0x9a86[9]](),controller[_0x9a86[14]]);router[_0x9a86[17]](_0x9a86[12],auth[_0x9a86[9]](),controller[_0x9a86[16]]);router[_0x9a86[19]](_0x9a86[12],auth[_0x9a86[9]](),controller[_0x9a86[18]]);module[_0x9a86[20]]= router
\ No newline at end of file
index be58c6d..c47662c 100644 (file)
@@ -1 +1 @@
-var _0xe601=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xe601[0];var Sequelize=require(_0xe601[1]);module[_0xe601[2]]= {name:{type:Sequelize[_0xe601[3]]}}
\ No newline at end of file
+var _0xab84=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xab84[0];var Sequelize=require(_0xab84[1]);module[_0xab84[2]]= {name:{type:Sequelize[_0xab84[3]]}}
\ No newline at end of file
index 8600891..46dfe51 100644 (file)
@@ -1 +1 @@
-var _0x7d0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x7d0e[0];var jsonpatch=require(_0x7d0e[1]);var rp=require(_0x7d0e[2]);var moment=require(_0x7d0e[3]);var BPromise=require(_0x7d0e[4]);var util=require(_0x7d0e[5]);var path=require(_0x7d0e[6]);var sox=require(_0x7d0e[7]);var ejs=require(_0x7d0e[8]);var fs=require(_0x7d0e[9]);var _=require(_0x7d0e[10]);var squel=require(_0x7d0e[11]);var crypto=require(_0x7d0e[12]);var jsforce=require(_0x7d0e[13]);var toCsv=require(_0x7d0e[14]);var qs=require(_0x7d0e[15]);var logger=require(_0x7d0e[17])(_0x7d0e[16]);var utils=require(_0x7d0e[18]);var config=require(_0x7d0e[19]);var db=require(_0x7d0e[21])[_0x7d0e[20]];function respondWithStatusCode(_0x5248x15,_0x5248x16,_0x5248x17){_0x5248x16= _0x5248x16|| 204;return function(_0x5248x18){if(_0x5248x18){logger[_0x7d0e[24]](_0x7d0e[22],_0x5248x17,_0x5248x16,_0x7d0e[23]);logger[_0x7d0e[26]](_0x7d0e[25],_0x5248x17,_0x5248x16,_0x7d0e[23]);return _0x5248x15[_0x7d0e[27]](_0x5248x16)};return _0x5248x15[_0x7d0e[29]](304)[_0x7d0e[28]]()}}function respondWithResult(_0x5248x15,_0x5248x16,_0x5248x17){_0x5248x16= _0x5248x16|| 200;return function(_0x5248x18){if(_0x5248x18){logger[_0x7d0e[24]](_0x7d0e[22],_0x5248x17,_0x5248x16,_0x7d0e[30]);logger[_0x7d0e[26]](_0x7d0e[25],_0x5248x17,_0x5248x16,_0x7d0e[30],JSON[_0x7d0e[31]](_0x5248x18));return _0x5248x15[_0x7d0e[29]](_0x5248x16)[_0x7d0e[32]](_0x5248x18)};return _0x5248x15[_0x7d0e[29]](304)[_0x7d0e[28]]()}}function respondWithFilteredResult(_0x5248x15,_0x5248x1b,_0x5248x17){return function(_0x5248x18){if(_0x5248x18){var _0x5248x1c=_0x5248x18[_0x7d0e[33]],_0x5248x1d=_0x5248x1b[_0x7d0e[34]],_0x5248x1e=_0x5248x1b[_0x7d0e[34]]+ _0x5248x1b[_0x7d0e[35]],_0x5248x16;if(_0x5248x1e>= _0x5248x1c){_0x5248x1e= _0x5248x1c;_0x5248x16= 200}else {_0x5248x16= 206};_0x5248x15[_0x7d0e[29]](_0x5248x16);logger[_0x7d0e[24]](_0x7d0e[22],_0x5248x17,_0x5248x16,_0x7d0e[36]);logger[_0x7d0e[26]](_0x7d0e[25],_0x5248x17,_0x5248x16,_0x7d0e[30],JSON[_0x7d0e[31]](_0x5248x18));return _0x5248x15[_0x7d0e[40]](_0x7d0e[37],_0x5248x1d+ _0x7d0e[38]+ _0x5248x1e+ _0x7d0e[39]+ _0x5248x1c)[_0x7d0e[32]](_0x5248x18)};return null}}function patchUpdates(_0x5248x20){return function(_0x5248x18){try{jsonpatch[_0x7d0e[41]](_0x5248x18,_0x5248x20,true)}catch(err){return BPromise[_0x7d0e[42]](err)};return _0x5248x18[_0x7d0e[43]]()}}function saveUpdates(_0x5248x22,_0x5248x16,_0x5248x17){return function(_0x5248x18){if(_0x5248x18){return _0x5248x18[_0x7d0e[46]](_0x5248x22)[_0x7d0e[45]](function(_0x5248x23){logger[_0x7d0e[24]](_0x7d0e[22],_0x5248x17,_0x5248x16,_0x7d0e[44]);logger[_0x7d0e[26]](_0x7d0e[25],_0x5248x17,_0x5248x16,_0x7d0e[44],JSON[_0x7d0e[31]](_0x5248x18));return _0x5248x23})};return null}}function removeEntity(_0x5248x15,_0x5248x16,_0x5248x17){return function(_0x5248x18){if(_0x5248x18){return _0x5248x18[_0x7d0e[48]]()[_0x7d0e[45]](function(){logger[_0x7d0e[24]](_0x7d0e[22],_0x5248x17,_0x5248x16,_0x7d0e[47]);logger[_0x7d0e[26]](_0x7d0e[25],_0x5248x17,_0x5248x16,_0x7d0e[47],JSON[_0x7d0e[31]](_0x5248x18));_0x5248x15[_0x7d0e[29]](204)[_0x7d0e[28]]()})}}}function handleEntityNotFound(_0x5248x15,_0x5248x16,_0x5248x17){return function(_0x5248x18){if(!_0x5248x18){logger[_0x7d0e[50]](_0x7d0e[22],_0x5248x17,404,_0x7d0e[49]);_0x5248x15[_0x7d0e[29]](404)[_0x7d0e[28]]();return null};return _0x5248x18}}function handleError(_0x5248x15,_0x5248x16,_0x5248x17){_0x5248x16= _0x5248x16|| 500;return function(_0x5248x27){logger[_0x7d0e[50]](_0x7d0e[22],_0x5248x17,_0x5248x16,JSON[_0x7d0e[31]](_0x5248x27));delete _0x5248x27[_0x7d0e[51]];_0x5248x15[_0x7d0e[29]](_0x5248x16)[_0x7d0e[52]](_0x5248x27)}}exports[_0x7d0e[53]]= function(_0x5248x28,_0x5248x15){var _0x5248x1b={},_0x5248x29={};_0x5248x29[_0x7d0e[54]]= _[_0x7d0e[57]](db[_0x7d0e[56]][_0x7d0e[55]]);_0x5248x29[_0x7d0e[58]]= _[_0x7d0e[57]](_0x5248x28[_0x7d0e[58]]);_0x5248x29[_0x7d0e[59]]= _[_0x7d0e[60]](_0x5248x29[_0x7d0e[54]],_0x5248x29[_0x7d0e[58]]);_0x5248x1b[_0x7d0e[61]]= _[_0x7d0e[60]](_0x5248x29[_0x7d0e[54]],qs[_0x7d0e[62]](_0x5248x28[_0x7d0e[58]][_0x7d0e[62]]));_0x5248x1b[_0x7d0e[61]]= (_0x5248x1b[_0x7d0e[61]][_0x7d0e[63]])?_0x5248x1b[_0x7d0e[61]]:_0x5248x29[_0x7d0e[54]];if(!_0x5248x28[_0x7d0e[58]][_0x7d0e[65]](_0x7d0e[64])){_0x5248x1b[_0x7d0e[35]]= qs[_0x7d0e[35]](_0x5248x28[_0x7d0e[58]][_0x7d0e[35]]);_0x5248x1b[_0x7d0e[34]]= qs[_0x7d0e[34]](_0x5248x28[_0x7d0e[58]][_0x7d0e[34]])};_0x5248x1b[_0x7d0e[66]]= qs[_0x7d0e[67]](_0x5248x28[_0x7d0e[58]][_0x7d0e[67]]);_0x5248x1b[_0x7d0e[68]]= qs[_0x7d0e[59]](_[_0x7d0e[69]](_0x5248x28[_0x7d0e[58]],_0x5248x29[_0x7d0e[59]]));if(_0x5248x28[_0x7d0e[58]][_0x7d0e[70]]){_0x5248x1b[_0x7d0e[68]]= _[_0x7d0e[73]](_0x5248x1b[_0x7d0e[68]],{$or:_[_0x7d0e[72]](_0x5248x1b[_0x7d0e[61]],function(_0x5248x2a){var _0x5248x2b={};_0x5248x2b[_0x5248x2a]= {$like:_0x7d0e[71]+ _0x5248x28[_0x7d0e[58]][_0x7d0e[70]]+ _0x7d0e[71]};return _0x5248x2b})})};_0x5248x1b= _[_0x7d0e[73]]({},_0x5248x1b,_0x5248x28[_0x7d0e[74]]);return db[_0x7d0e[56]][_0x7d0e[76]](_0x5248x1b)[_0x7d0e[45]](respondWithFilteredResult(_0x5248x15,_0x5248x1b,_0x7d0e[53]))[_0x7d0e[75]](handleError(_0x5248x15,null,_0x7d0e[53]))};exports[_0x7d0e[77]]= function(_0x5248x28,_0x5248x15){var _0x5248x1b={raw:true,where:{id:_0x5248x28[_0x7d0e[79]][_0x7d0e[78]]}},_0x5248x29={};_0x5248x29[_0x7d0e[54]]= _[_0x7d0e[57]](db[_0x7d0e[56]][_0x7d0e[55]]);_0x5248x29[_0x7d0e[58]]= _[_0x7d0e[57]](_0x5248x28[_0x7d0e[58]]);_0x5248x29[_0x7d0e[59]]= _[_0x7d0e[60]](_0x5248x29[_0x7d0e[54]],_0x5248x29[_0x7d0e[58]]);_0x5248x1b[_0x7d0e[61]]= _[_0x7d0e[60]](_0x5248x29[_0x7d0e[54]],qs[_0x7d0e[62]](_0x5248x28[_0x7d0e[58]][_0x7d0e[62]]));_0x5248x1b[_0x7d0e[61]]= (_0x5248x1b[_0x7d0e[61]][_0x7d0e[63]])?_0x5248x1b[_0x7d0e[61]]:_0x5248x29[_0x7d0e[54]];_0x5248x1b= _[_0x7d0e[73]]({},_0x5248x1b,_0x5248x28[_0x7d0e[74]]);return db[_0x7d0e[56]][_0x7d0e[80]](_0x5248x1b)[_0x7d0e[45]](handleEntityNotFound(_0x5248x15,null,_0x7d0e[77]))[_0x7d0e[45]](respondWithResult(_0x5248x15,null,_0x7d0e[77]))[_0x7d0e[75]](handleError(_0x5248x15,null,_0x7d0e[77]))};exports[_0x7d0e[81]]= function(_0x5248x28,_0x5248x15){return db[_0x7d0e[56]][_0x7d0e[81]](_0x5248x28[_0x7d0e[82]],{})[_0x7d0e[45]](respondWithResult(_0x5248x15,201,_0x7d0e[81]))[_0x7d0e[75]](handleError(_0x5248x15,null,_0x7d0e[81]))};exports[_0x7d0e[46]]= function(_0x5248x28,_0x5248x15){if(_0x5248x28[_0x7d0e[82]][_0x7d0e[78]]){delete _0x5248x28[_0x7d0e[82]][_0x7d0e[78]]};return db[_0x7d0e[56]][_0x7d0e[80]]({where:{id:_0x5248x28[_0x7d0e[79]][_0x7d0e[78]]}})[_0x7d0e[45]](handleEntityNotFound(_0x5248x15,null,_0x7d0e[46]))[_0x7d0e[45]](saveUpdates(_0x5248x28[_0x7d0e[82]],null,_0x7d0e[46]))[_0x7d0e[45]](respondWithResult(_0x5248x15,null,_0x7d0e[46]))[_0x7d0e[75]](handleError(_0x5248x15,null,_0x7d0e[46]))};exports[_0x7d0e[48]]= function(_0x5248x28,_0x5248x15){return db[_0x7d0e[56]][_0x7d0e[80]]({where:{id:_0x5248x28[_0x7d0e[79]][_0x7d0e[78]]}})[_0x7d0e[45]](handleEntityNotFound(_0x5248x15,null,_0x7d0e[48]))[_0x7d0e[45]](removeEntity(_0x5248x15,null,_0x7d0e[48]))[_0x7d0e[75]](handleError(_0x5248x15,null,_0x7d0e[48]))}
\ No newline at end of file
+var _0x7435=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x7435[0];var jsonpatch=require(_0x7435[1]);var rp=require(_0x7435[2]);var moment=require(_0x7435[3]);var BPromise=require(_0x7435[4]);var util=require(_0x7435[5]);var path=require(_0x7435[6]);var sox=require(_0x7435[7]);var ejs=require(_0x7435[8]);var fs=require(_0x7435[9]);var _=require(_0x7435[10]);var squel=require(_0x7435[11]);var crypto=require(_0x7435[12]);var jsforce=require(_0x7435[13]);var toCsv=require(_0x7435[14]);var qs=require(_0x7435[15]);var logger=require(_0x7435[17])(_0x7435[16]);var utils=require(_0x7435[18]);var config=require(_0x7435[19]);var db=require(_0x7435[21])[_0x7435[20]];function respondWithStatusCode(_0x4b2ax15,_0x4b2ax16,_0x4b2ax17){_0x4b2ax16= _0x4b2ax16|| 204;return function(_0x4b2ax18){if(_0x4b2ax18){logger[_0x7435[24]](_0x7435[22],_0x4b2ax17,_0x4b2ax16,_0x7435[23]);logger[_0x7435[26]](_0x7435[25],_0x4b2ax17,_0x4b2ax16,_0x7435[23]);return _0x4b2ax15[_0x7435[27]](_0x4b2ax16)};return _0x4b2ax15[_0x7435[29]](304)[_0x7435[28]]()}}function respondWithResult(_0x4b2ax15,_0x4b2ax16,_0x4b2ax17){_0x4b2ax16= _0x4b2ax16|| 200;return function(_0x4b2ax18){if(_0x4b2ax18){logger[_0x7435[24]](_0x7435[22],_0x4b2ax17,_0x4b2ax16,_0x7435[30]);logger[_0x7435[26]](_0x7435[25],_0x4b2ax17,_0x4b2ax16,_0x7435[30],JSON[_0x7435[31]](_0x4b2ax18));return _0x4b2ax15[_0x7435[29]](_0x4b2ax16)[_0x7435[32]](_0x4b2ax18)};return _0x4b2ax15[_0x7435[29]](304)[_0x7435[28]]()}}function respondWithFilteredResult(_0x4b2ax15,_0x4b2ax1b,_0x4b2ax17){return function(_0x4b2ax18){if(_0x4b2ax18){var _0x4b2ax1c=_0x4b2ax18[_0x7435[33]],_0x4b2ax1d=_0x4b2ax1b[_0x7435[34]],_0x4b2ax1e=_0x4b2ax1b[_0x7435[34]]+ _0x4b2ax1b[_0x7435[35]],_0x4b2ax16;if(_0x4b2ax1e>= _0x4b2ax1c){_0x4b2ax1e= _0x4b2ax1c;_0x4b2ax16= 200}else {_0x4b2ax16= 206};_0x4b2ax15[_0x7435[29]](_0x4b2ax16);logger[_0x7435[24]](_0x7435[22],_0x4b2ax17,_0x4b2ax16,_0x7435[36]);logger[_0x7435[26]](_0x7435[25],_0x4b2ax17,_0x4b2ax16,_0x7435[30],JSON[_0x7435[31]](_0x4b2ax18));return _0x4b2ax15[_0x7435[40]](_0x7435[37],_0x4b2ax1d+ _0x7435[38]+ _0x4b2ax1e+ _0x7435[39]+ _0x4b2ax1c)[_0x7435[32]](_0x4b2ax18)};return null}}function patchUpdates(_0x4b2ax20){return function(_0x4b2ax18){try{jsonpatch[_0x7435[41]](_0x4b2ax18,_0x4b2ax20,true)}catch(err){return BPromise[_0x7435[42]](err)};return _0x4b2ax18[_0x7435[43]]()}}function saveUpdates(_0x4b2ax22,_0x4b2ax16,_0x4b2ax17){return function(_0x4b2ax18){if(_0x4b2ax18){return _0x4b2ax18[_0x7435[46]](_0x4b2ax22)[_0x7435[45]](function(_0x4b2ax23){logger[_0x7435[24]](_0x7435[22],_0x4b2ax17,_0x4b2ax16,_0x7435[44]);logger[_0x7435[26]](_0x7435[25],_0x4b2ax17,_0x4b2ax16,_0x7435[44],JSON[_0x7435[31]](_0x4b2ax18));return _0x4b2ax23})};return null}}function removeEntity(_0x4b2ax15,_0x4b2ax16,_0x4b2ax17){return function(_0x4b2ax18){if(_0x4b2ax18){return _0x4b2ax18[_0x7435[48]]()[_0x7435[45]](function(){logger[_0x7435[24]](_0x7435[22],_0x4b2ax17,_0x4b2ax16,_0x7435[47]);logger[_0x7435[26]](_0x7435[25],_0x4b2ax17,_0x4b2ax16,_0x7435[47],JSON[_0x7435[31]](_0x4b2ax18));_0x4b2ax15[_0x7435[29]](204)[_0x7435[28]]()})}}}function handleEntityNotFound(_0x4b2ax15,_0x4b2ax16,_0x4b2ax17){return function(_0x4b2ax18){if(!_0x4b2ax18){logger[_0x7435[50]](_0x7435[22],_0x4b2ax17,404,_0x7435[49]);_0x4b2ax15[_0x7435[29]](404)[_0x7435[28]]();return null};return _0x4b2ax18}}function handleError(_0x4b2ax15,_0x4b2ax16,_0x4b2ax17){_0x4b2ax16= _0x4b2ax16|| 500;return function(_0x4b2ax27){logger[_0x7435[50]](_0x7435[22],_0x4b2ax17,_0x4b2ax16,JSON[_0x7435[31]](_0x4b2ax27));delete _0x4b2ax27[_0x7435[51]];_0x4b2ax15[_0x7435[29]](_0x4b2ax16)[_0x7435[52]](_0x4b2ax27)}}exports[_0x7435[53]]= function(_0x4b2ax28,_0x4b2ax15){var _0x4b2ax1b={},_0x4b2ax29={};_0x4b2ax29[_0x7435[54]]= _[_0x7435[57]](db[_0x7435[56]][_0x7435[55]]);_0x4b2ax29[_0x7435[58]]= _[_0x7435[57]](_0x4b2ax28[_0x7435[58]]);_0x4b2ax29[_0x7435[59]]= _[_0x7435[60]](_0x4b2ax29[_0x7435[54]],_0x4b2ax29[_0x7435[58]]);_0x4b2ax1b[_0x7435[61]]= _[_0x7435[60]](_0x4b2ax29[_0x7435[54]],qs[_0x7435[62]](_0x4b2ax28[_0x7435[58]][_0x7435[62]]));_0x4b2ax1b[_0x7435[61]]= (_0x4b2ax1b[_0x7435[61]][_0x7435[63]])?_0x4b2ax1b[_0x7435[61]]:_0x4b2ax29[_0x7435[54]];if(!_0x4b2ax28[_0x7435[58]][_0x7435[65]](_0x7435[64])){_0x4b2ax1b[_0x7435[35]]= qs[_0x7435[35]](_0x4b2ax28[_0x7435[58]][_0x7435[35]]);_0x4b2ax1b[_0x7435[34]]= qs[_0x7435[34]](_0x4b2ax28[_0x7435[58]][_0x7435[34]])};_0x4b2ax1b[_0x7435[66]]= qs[_0x7435[67]](_0x4b2ax28[_0x7435[58]][_0x7435[67]]);_0x4b2ax1b[_0x7435[68]]= qs[_0x7435[59]](_[_0x7435[69]](_0x4b2ax28[_0x7435[58]],_0x4b2ax29[_0x7435[59]]));if(_0x4b2ax28[_0x7435[58]][_0x7435[70]]){_0x4b2ax1b[_0x7435[68]]= _[_0x7435[73]](_0x4b2ax1b[_0x7435[68]],{$or:_[_0x7435[72]](_0x4b2ax1b[_0x7435[61]],function(_0x4b2ax2a){var _0x4b2ax2b={};_0x4b2ax2b[_0x4b2ax2a]= {$like:_0x7435[71]+ _0x4b2ax28[_0x7435[58]][_0x7435[70]]+ _0x7435[71]};return _0x4b2ax2b})})};_0x4b2ax1b= _[_0x7435[73]]({},_0x4b2ax1b,_0x4b2ax28[_0x7435[74]]);return db[_0x7435[56]][_0x7435[76]](_0x4b2ax1b)[_0x7435[45]](respondWithFilteredResult(_0x4b2ax15,_0x4b2ax1b,_0x7435[53]))[_0x7435[75]](handleError(_0x4b2ax15,null,_0x7435[53]))};exports[_0x7435[77]]= function(_0x4b2ax28,_0x4b2ax15){var _0x4b2ax1b={raw:true,where:{id:_0x4b2ax28[_0x7435[79]][_0x7435[78]]}},_0x4b2ax29={};_0x4b2ax29[_0x7435[54]]= _[_0x7435[57]](db[_0x7435[56]][_0x7435[55]]);_0x4b2ax29[_0x7435[58]]= _[_0x7435[57]](_0x4b2ax28[_0x7435[58]]);_0x4b2ax29[_0x7435[59]]= _[_0x7435[60]](_0x4b2ax29[_0x7435[54]],_0x4b2ax29[_0x7435[58]]);_0x4b2ax1b[_0x7435[61]]= _[_0x7435[60]](_0x4b2ax29[_0x7435[54]],qs[_0x7435[62]](_0x4b2ax28[_0x7435[58]][_0x7435[62]]));_0x4b2ax1b[_0x7435[61]]= (_0x4b2ax1b[_0x7435[61]][_0x7435[63]])?_0x4b2ax1b[_0x7435[61]]:_0x4b2ax29[_0x7435[54]];_0x4b2ax1b= _[_0x7435[73]]({},_0x4b2ax1b,_0x4b2ax28[_0x7435[74]]);return db[_0x7435[56]][_0x7435[80]](_0x4b2ax1b)[_0x7435[45]](handleEntityNotFound(_0x4b2ax15,null,_0x7435[77]))[_0x7435[45]](respondWithResult(_0x4b2ax15,null,_0x7435[77]))[_0x7435[75]](handleError(_0x4b2ax15,null,_0x7435[77]))};exports[_0x7435[81]]= function(_0x4b2ax28,_0x4b2ax15){return db[_0x7435[56]][_0x7435[81]](_0x4b2ax28[_0x7435[82]],{})[_0x7435[45]](respondWithResult(_0x4b2ax15,201,_0x7435[81]))[_0x7435[75]](handleError(_0x4b2ax15,null,_0x7435[81]))};exports[_0x7435[46]]= function(_0x4b2ax28,_0x4b2ax15){if(_0x4b2ax28[_0x7435[82]][_0x7435[78]]){delete _0x4b2ax28[_0x7435[82]][_0x7435[78]]};return db[_0x7435[56]][_0x7435[80]]({where:{id:_0x4b2ax28[_0x7435[79]][_0x7435[78]]}})[_0x7435[45]](handleEntityNotFound(_0x4b2ax15,null,_0x7435[46]))[_0x7435[45]](saveUpdates(_0x4b2ax28[_0x7435[82]],null,_0x7435[46]))[_0x7435[45]](respondWithResult(_0x4b2ax15,null,_0x7435[46]))[_0x7435[75]](handleError(_0x4b2ax15,null,_0x7435[46]))};exports[_0x7435[48]]= function(_0x4b2ax28,_0x4b2ax15){return db[_0x7435[56]][_0x7435[80]]({where:{id:_0x4b2ax28[_0x7435[79]][_0x7435[78]]}})[_0x7435[45]](handleEntityNotFound(_0x4b2ax15,null,_0x7435[48]))[_0x7435[45]](removeEntity(_0x4b2ax15,null,_0x7435[48]))[_0x7435[75]](handleError(_0x4b2ax15,null,_0x7435[48]))}
\ No newline at end of file
index 3df9af1..52335c2 100644 (file)
@@ -1 +1 @@
-var _0x2691=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x6F\x69\x63\x65\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x2691[0];var _=require(_0x2691[1]);var util=require(_0x2691[2]);var logger=require(_0x2691[4])(_0x2691[3]);var attributes=require(_0x2691[5]);module[_0x2691[6]]= function(_0x675dx5,_0x675dx6){return _0x675dx5[_0x2691[9]](_0x2691[7],attributes,{tableName:_0x2691[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x6662=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x6F\x69\x63\x65\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x6662[0];var _=require(_0x6662[1]);var util=require(_0x6662[2]);var logger=require(_0x6662[4])(_0x6662[3]);var attributes=require(_0x6662[5]);module[_0x6662[6]]= function(_0x442dx5,_0x442dx6){return _0x442dx5[_0x6662[9]](_0x6662[7],attributes,{tableName:_0x6662[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 1cfbf49..84e854d 100644 (file)
@@ -1 +1 @@
-var _0xf9ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf9ae[0];var _=require(_0xf9ae[1]);var util=require(_0xf9ae[2]);var moment=require(_0xf9ae[3]);var BPromise=require(_0xf9ae[4]);var db=require(_0xf9ae[6])[_0xf9ae[5]];var utils=require(_0xf9ae[7]);var logger=require(_0xf9ae[9])(_0xf9ae[8]);var jayson=require(_0xf9ae[10]);var client=jayson[_0xf9ae[12]][_0xf9ae[11]]({port:9002});function respondWithRpcPromise(_0x4b69xb,_0x4b69xc,_0x4b69xd){return  new BPromise(function(_0x4b69xe,_0x4b69xf){return client[_0xf9ae[25]](_0x4b69xb,_0x4b69xd)[_0xf9ae[24]](function(_0x4b69x11){logger[_0xf9ae[17]](_0xf9ae[13],_0x4b69xc,_0xf9ae[16]);logger[_0xf9ae[20]](_0xf9ae[18],_0x4b69xc,_0xf9ae[16],JSON[_0xf9ae[19]](_0x4b69x11));if(_0x4b69x11[_0xf9ae[14]]){if(_0x4b69x11[_0xf9ae[14]][_0xf9ae[21]]=== 500){logger[_0xf9ae[14]](_0xf9ae[13],_0x4b69xc,_0x4b69x11[_0xf9ae[14]][_0xf9ae[22]]);return _0x4b69xf(_0x4b69x11[_0xf9ae[14]][_0xf9ae[22]])};logger[_0xf9ae[14]](_0xf9ae[13],_0x4b69xc,_0x4b69x11[_0xf9ae[14]][_0xf9ae[22]]);return _0x4b69xe(_0x4b69x11[_0xf9ae[14]][_0xf9ae[22]])}else {logger[_0xf9ae[17]](_0xf9ae[13],_0x4b69xc,_0xf9ae[16]);_0x4b69xe(_0x4b69x11[_0xf9ae[23]][_0xf9ae[22]])}})[_0xf9ae[15]](function(_0x4b69x10){logger[_0xf9ae[14]](_0xf9ae[13],_0x4b69xc,_0x4b69x10);_0x4b69xf(_0x4b69x10)})})}
\ No newline at end of file
+var _0x1fd5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1fd5[0];var _=require(_0x1fd5[1]);var util=require(_0x1fd5[2]);var moment=require(_0x1fd5[3]);var BPromise=require(_0x1fd5[4]);var db=require(_0x1fd5[6])[_0x1fd5[5]];var utils=require(_0x1fd5[7]);var logger=require(_0x1fd5[9])(_0x1fd5[8]);var jayson=require(_0x1fd5[10]);var client=jayson[_0x1fd5[12]][_0x1fd5[11]]({port:9002});function respondWithRpcPromise(_0x637fxb,_0x637fxc,_0x637fxd){return  new BPromise(function(_0x637fxe,_0x637fxf){return client[_0x1fd5[25]](_0x637fxb,_0x637fxd)[_0x1fd5[24]](function(_0x637fx11){logger[_0x1fd5[17]](_0x1fd5[13],_0x637fxc,_0x1fd5[16]);logger[_0x1fd5[20]](_0x1fd5[18],_0x637fxc,_0x1fd5[16],JSON[_0x1fd5[19]](_0x637fx11));if(_0x637fx11[_0x1fd5[14]]){if(_0x637fx11[_0x1fd5[14]][_0x1fd5[21]]=== 500){logger[_0x1fd5[14]](_0x1fd5[13],_0x637fxc,_0x637fx11[_0x1fd5[14]][_0x1fd5[22]]);return _0x637fxf(_0x637fx11[_0x1fd5[14]][_0x1fd5[22]])};logger[_0x1fd5[14]](_0x1fd5[13],_0x637fxc,_0x637fx11[_0x1fd5[14]][_0x1fd5[22]]);return _0x637fxe(_0x637fx11[_0x1fd5[14]][_0x1fd5[22]])}else {logger[_0x1fd5[17]](_0x1fd5[13],_0x637fxc,_0x1fd5[16]);_0x637fxe(_0x637fx11[_0x1fd5[23]][_0x1fd5[22]])}})[_0x1fd5[15]](function(_0x637fx10){logger[_0x1fd5[14]](_0x1fd5[13],_0x637fxc,_0x637fx10);_0x637fxf(_0x637fx10)})})}
\ No newline at end of file
index 8700895..2bfdad1 100644 (file)
@@ -1 +1 @@
-var _0xfb13=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfb13[0];var multer=require(_0xfb13[1]);var util=require(_0xfb13[2]);var path=require(_0xfb13[3]);var express=require(_0xfb13[4]);var router=express.Router();var auth=require(_0xfb13[5]);var config=require(_0xfb13[6]);var controller=require(_0xfb13[7]);router[_0xfb13[11]](_0xfb13[8],auth[_0xfb13[9]](),controller[_0xfb13[10]]);router[_0xfb13[11]](_0xfb13[12],auth[_0xfb13[9]](),controller[_0xfb13[13]]);router[_0xfb13[15]](_0xfb13[8],auth[_0xfb13[9]](),controller[_0xfb13[14]]);router[_0xfb13[15]](_0xfb13[16],auth[_0xfb13[9]](),controller[_0xfb13[17]]);router[_0xfb13[19]](_0xfb13[12],auth[_0xfb13[9]](),controller[_0xfb13[18]]);router[_0xfb13[21]](_0xfb13[12],auth[_0xfb13[9]](),controller[_0xfb13[20]]);module[_0xfb13[22]]= router
\ No newline at end of file
+var _0xdb41=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdb41[0];var multer=require(_0xdb41[1]);var util=require(_0xdb41[2]);var path=require(_0xdb41[3]);var express=require(_0xdb41[4]);var router=express.Router();var auth=require(_0xdb41[5]);var config=require(_0xdb41[6]);var controller=require(_0xdb41[7]);router[_0xdb41[11]](_0xdb41[8],auth[_0xdb41[9]](),controller[_0xdb41[10]]);router[_0xdb41[11]](_0xdb41[12],auth[_0xdb41[9]](),controller[_0xdb41[13]]);router[_0xdb41[15]](_0xdb41[8],auth[_0xdb41[9]](),controller[_0xdb41[14]]);router[_0xdb41[15]](_0xdb41[16],auth[_0xdb41[9]](),controller[_0xdb41[17]]);router[_0xdb41[19]](_0xdb41[12],auth[_0xdb41[9]](),controller[_0xdb41[18]]);router[_0xdb41[21]](_0xdb41[12],auth[_0xdb41[9]](),controller[_0xdb41[20]]);module[_0xdb41[22]]= router
\ No newline at end of file
index 3561396..315fd87 100644 (file)
@@ -1 +1 @@
-var _0xb191=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x6F\x73\x69\x74\x65\x49\x6E\x64\x65\x78","\x31","\x2D\x2D","\x4E\x6F\x4F\x70","","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73\x79\x73\x74\x65\x6D","\x61\x6E\x79","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x77\x61\x76"];_0xb191[0];var Sequelize=require(_0xb191[1]);module[_0xb191[2]]= {context:{type:Sequelize[_0xb191[3]],allowNull:false,unique:_0xb191[4],validate:{notEmpty:true,is:/[A-Za-z0-9._\+*!\-\[\]]+$/i}},exten:{type:Sequelize[_0xb191[3]],allowNull:false,unique:_0xb191[4]},priority:{type:Sequelize[_0xb191[3]],allowNull:false,defaultValue:_0xb191[5],unique:_0xb191[4]},tag:{type:Sequelize[_0xb191[3]],allowNull:false,defaultValue:_0xb191[6]},app:{type:Sequelize[_0xb191[3]],allowNull:false,defaultValue:_0xb191[7]},appdata:{type:Sequelize.STRING(4096),allowNull:true,defaultValue:_0xb191[8]},type:{type:Sequelize.ENUM(_0xb191[9],_0xb191[10],_0xb191[11],_0xb191[12],_0xb191[13],_0xb191[14],_0xb191[15]),allowNull:false},description:{type:Sequelize[_0xb191[3]]},interval:{type:Sequelize[_0xb191[3]],allowNull:false,defaultValue:_0xb191[16]},IntervalId:{type:Sequelize[_0xb191[17]]},isApp:{type:Sequelize[_0xb191[18]],allowNull:false,defaultValue:false},appType:{type:Sequelize[_0xb191[3]],defaultValue:null},callerID:{type:Sequelize[_0xb191[3]],allowNull:true},record:{type:Sequelize[_0xb191[18]],defaultValue:false},cutdigits:{type:Sequelize[_0xb191[17]]},recordingFormat:{type:Sequelize[_0xb191[3]],defaultValue:_0xb191[19]},answer:{type:Sequelize[_0xb191[18]],defaultValue:true}}
\ No newline at end of file
+var _0x4ef4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x6F\x73\x69\x74\x65\x49\x6E\x64\x65\x78","\x31","\x2D\x2D","\x4E\x6F\x4F\x70","","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73\x79\x73\x74\x65\x6D","\x61\x6E\x79","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x77\x61\x76"];_0x4ef4[0];var Sequelize=require(_0x4ef4[1]);module[_0x4ef4[2]]= {context:{type:Sequelize[_0x4ef4[3]],allowNull:false,unique:_0x4ef4[4],validate:{notEmpty:true,is:/[A-Za-z0-9._\+*!\-\[\]]+$/i}},exten:{type:Sequelize[_0x4ef4[3]],allowNull:false,unique:_0x4ef4[4]},priority:{type:Sequelize[_0x4ef4[3]],allowNull:false,defaultValue:_0x4ef4[5],unique:_0x4ef4[4]},tag:{type:Sequelize[_0x4ef4[3]],allowNull:false,defaultValue:_0x4ef4[6]},app:{type:Sequelize[_0x4ef4[3]],allowNull:false,defaultValue:_0x4ef4[7]},appdata:{type:Sequelize.STRING(4096),allowNull:true,defaultValue:_0x4ef4[8]},type:{type:Sequelize.ENUM(_0x4ef4[9],_0x4ef4[10],_0x4ef4[11],_0x4ef4[12],_0x4ef4[13],_0x4ef4[14],_0x4ef4[15]),allowNull:false},description:{type:Sequelize[_0x4ef4[3]]},interval:{type:Sequelize[_0x4ef4[3]],allowNull:false,defaultValue:_0x4ef4[16]},IntervalId:{type:Sequelize[_0x4ef4[17]]},isApp:{type:Sequelize[_0x4ef4[18]],allowNull:false,defaultValue:false},appType:{type:Sequelize[_0x4ef4[3]],defaultValue:null},callerID:{type:Sequelize[_0x4ef4[3]],allowNull:true},record:{type:Sequelize[_0x4ef4[18]],defaultValue:false},cutdigits:{type:Sequelize[_0x4ef4[17]]},recordingFormat:{type:Sequelize[_0x4ef4[3]],defaultValue:_0x4ef4[19]},answer:{type:Sequelize[_0x4ef4[18]],defaultValue:true}}
\ No newline at end of file
index ba0081b..ede7d1c 100644 (file)
@@ -1 +1 @@
-var _0x56d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E","\x5F","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x63\x6F\x6E\x63\x61\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x61\x73\x74\x28\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x61\x73\x20\x75\x6E\x73\x69\x67\x6E\x65\x64\x29","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x56d9[0];var jsonpatch=require(_0x56d9[1]);var rp=require(_0x56d9[2]);var moment=require(_0x56d9[3]);var BPromise=require(_0x56d9[4]);var util=require(_0x56d9[5]);var path=require(_0x56d9[6]);var sox=require(_0x56d9[7]);var ejs=require(_0x56d9[8]);var fs=require(_0x56d9[9]);var _=require(_0x56d9[10]);var squel=require(_0x56d9[11]);var crypto=require(_0x56d9[12]);var jsforce=require(_0x56d9[13]);var toCsv=require(_0x56d9[14]);var qs=require(_0x56d9[15]);var logger=require(_0x56d9[17])(_0x56d9[16]);var utils=require(_0x56d9[18]);var config=require(_0x56d9[19]);var db=require(_0x56d9[21])[_0x56d9[20]];function respondWithStatusCode(_0x7a20x15,_0x7a20x16,_0x7a20x17){_0x7a20x16= _0x7a20x16|| 204;return function(_0x7a20x18){if(_0x7a20x18){logger[_0x56d9[24]](_0x56d9[22],_0x7a20x17,_0x7a20x16,_0x56d9[23]);logger[_0x56d9[26]](_0x56d9[25],_0x7a20x17,_0x7a20x16,_0x56d9[23]);return _0x7a20x15[_0x56d9[27]](_0x7a20x16)};return _0x7a20x15[_0x56d9[29]](304)[_0x56d9[28]]()}}function respondWithResult(_0x7a20x15,_0x7a20x16,_0x7a20x17){_0x7a20x16= _0x7a20x16|| 200;return function(_0x7a20x18){if(_0x7a20x18){logger[_0x56d9[24]](_0x56d9[22],_0x7a20x17,_0x7a20x16,_0x56d9[30]);logger[_0x56d9[26]](_0x56d9[25],_0x7a20x17,_0x7a20x16,_0x56d9[30],JSON[_0x56d9[31]](_0x7a20x18));return _0x7a20x15[_0x56d9[29]](_0x7a20x16)[_0x56d9[32]](_0x7a20x18)};return _0x7a20x15[_0x56d9[29]](304)[_0x56d9[28]]()}}function respondWithFilteredResult(_0x7a20x15,_0x7a20x1b,_0x7a20x17){return function(_0x7a20x18){if(_0x7a20x18){var _0x7a20x1c=_0x7a20x18[_0x56d9[33]],_0x7a20x1d=_0x7a20x1b[_0x56d9[34]],_0x7a20x1e=_0x7a20x1b[_0x56d9[34]]+ _0x7a20x1b[_0x56d9[35]],_0x7a20x16;if(_0x7a20x1e>= _0x7a20x1c){_0x7a20x1e= _0x7a20x1c;_0x7a20x16= 200}else {_0x7a20x16= 206};_0x7a20x15[_0x56d9[29]](_0x7a20x16);logger[_0x56d9[24]](_0x56d9[22],_0x7a20x17,_0x7a20x16,_0x56d9[36]);logger[_0x56d9[26]](_0x56d9[25],_0x7a20x17,_0x7a20x16,_0x56d9[30],JSON[_0x56d9[31]](_0x7a20x18));return _0x7a20x15[_0x56d9[40]](_0x56d9[37],_0x7a20x1d+ _0x56d9[38]+ _0x7a20x1e+ _0x56d9[39]+ _0x7a20x1c)[_0x56d9[32]](_0x7a20x18)};return null}}function patchUpdates(_0x7a20x20){return function(_0x7a20x18){try{jsonpatch[_0x56d9[41]](_0x7a20x18,_0x7a20x20,true)}catch(err){return BPromise[_0x56d9[42]](err)};return _0x7a20x18[_0x56d9[43]]()}}function saveUpdates(_0x7a20x22,_0x7a20x16,_0x7a20x17){return function(_0x7a20x18){if(_0x7a20x18){return _0x7a20x18[_0x56d9[46]](_0x7a20x22)[_0x56d9[45]](function(_0x7a20x23){logger[_0x56d9[24]](_0x56d9[22],_0x7a20x17,_0x7a20x16,_0x56d9[44]);logger[_0x56d9[26]](_0x56d9[25],_0x7a20x17,_0x7a20x16,_0x56d9[44],JSON[_0x56d9[31]](_0x7a20x18));return _0x7a20x23})};return null}}function removeEntity(_0x7a20x15,_0x7a20x16,_0x7a20x17){return function(_0x7a20x18){if(_0x7a20x18){return _0x7a20x18[_0x56d9[48]]()[_0x56d9[45]](function(){logger[_0x56d9[24]](_0x56d9[22],_0x7a20x17,_0x7a20x16,_0x56d9[47]);logger[_0x56d9[26]](_0x56d9[25],_0x7a20x17,_0x7a20x16,_0x56d9[47],JSON[_0x56d9[31]](_0x7a20x18));_0x7a20x15[_0x56d9[29]](204)[_0x56d9[28]]()})}}}function handleEntityNotFound(_0x7a20x15,_0x7a20x16,_0x7a20x17){return function(_0x7a20x18){if(!_0x7a20x18){logger[_0x56d9[50]](_0x56d9[22],_0x7a20x17,404,_0x56d9[49]);_0x7a20x15[_0x56d9[29]](404)[_0x56d9[28]]();return null};return _0x7a20x18}}function handleError(_0x7a20x15,_0x7a20x16,_0x7a20x17){_0x7a20x16= _0x7a20x16|| 500;return function(_0x7a20x27){logger[_0x56d9[50]](_0x56d9[22],_0x7a20x17,_0x7a20x16,JSON[_0x56d9[31]](_0x7a20x27));delete _0x7a20x27[_0x56d9[51]];_0x7a20x15[_0x56d9[29]](_0x7a20x16)[_0x56d9[52]](_0x7a20x27)}}exports[_0x56d9[53]]= function(_0x7a20x28,_0x7a20x15){var _0x7a20x1b={},_0x7a20x29={};_0x7a20x29[_0x56d9[54]]= _[_0x56d9[57]](db[_0x56d9[56]][_0x56d9[55]]);_0x7a20x29[_0x56d9[58]]= _[_0x56d9[57]](_0x7a20x28[_0x56d9[58]]);_0x7a20x29[_0x56d9[59]]= _[_0x56d9[60]](_0x7a20x29[_0x56d9[54]],_0x7a20x29[_0x56d9[58]]);_0x7a20x1b[_0x56d9[61]]= _[_0x56d9[60]](_0x7a20x29[_0x56d9[54]],qs[_0x56d9[62]](_0x7a20x28[_0x56d9[58]][_0x56d9[62]]));_0x7a20x1b[_0x56d9[61]]= (_0x7a20x1b[_0x56d9[61]][_0x56d9[63]])?_0x7a20x1b[_0x56d9[61]]:_0x7a20x29[_0x56d9[54]];if(!_0x7a20x28[_0x56d9[58]][_0x56d9[65]](_0x56d9[64])){_0x7a20x1b[_0x56d9[35]]= qs[_0x56d9[35]](_0x7a20x28[_0x56d9[58]][_0x56d9[35]]);_0x7a20x1b[_0x56d9[34]]= qs[_0x56d9[34]](_0x7a20x28[_0x56d9[58]][_0x56d9[34]])};_0x7a20x1b[_0x56d9[66]]= qs[_0x56d9[67]](_0x7a20x28[_0x56d9[58]][_0x56d9[67]]);_0x7a20x1b[_0x56d9[68]]= qs[_0x56d9[59]](_[_0x56d9[69]](_0x7a20x28[_0x56d9[58]],_0x7a20x29[_0x56d9[59]]));if(_0x7a20x28[_0x56d9[58]][_0x56d9[70]]){_0x7a20x1b[_0x56d9[68]]= _[_0x56d9[73]](_0x7a20x1b[_0x56d9[68]],{$or:_[_0x56d9[72]](_0x7a20x1b[_0x56d9[61]],function(_0x7a20x2a){var _0x7a20x2b={};_0x7a20x2b[_0x7a20x2a]= {$like:_0x56d9[71]+ _0x7a20x28[_0x56d9[58]][_0x56d9[70]]+ _0x56d9[71]};return _0x7a20x2b})})};_0x7a20x1b= _[_0x56d9[73]]({},_0x7a20x1b,_0x7a20x28[_0x56d9[74]]);return db[_0x56d9[56]][_0x56d9[76]](_0x7a20x1b)[_0x56d9[45]](respondWithFilteredResult(_0x7a20x15,_0x7a20x1b,_0x56d9[53]))[_0x56d9[75]](handleError(_0x7a20x15,null,_0x56d9[53]))};exports[_0x56d9[77]]= function(_0x7a20x28,_0x7a20x15){var _0x7a20x1b={raw:false,where:{id:_0x7a20x28[_0x56d9[79]][_0x56d9[78]]}},_0x7a20x29={};_0x7a20x29[_0x56d9[54]]= _[_0x56d9[57]](db[_0x56d9[56]][_0x56d9[55]]);_0x7a20x29[_0x56d9[58]]= _[_0x56d9[57]](_0x7a20x28[_0x56d9[58]]);_0x7a20x29[_0x56d9[59]]= _[_0x56d9[60]](_0x7a20x29[_0x56d9[54]],_0x7a20x29[_0x56d9[58]]);_0x7a20x1b[_0x56d9[61]]= _[_0x56d9[60]](_0x7a20x29[_0x56d9[54]],qs[_0x56d9[62]](_0x7a20x28[_0x56d9[58]][_0x56d9[62]]));_0x7a20x1b[_0x56d9[61]]= (_0x7a20x1b[_0x56d9[61]][_0x56d9[63]])?_0x7a20x1b[_0x56d9[61]]:_0x7a20x29[_0x56d9[54]];_0x7a20x1b= _[_0x56d9[73]]({},_0x7a20x1b,_0x7a20x28[_0x56d9[74]]);return db[_0x56d9[56]][_0x56d9[80]](_0x7a20x1b)[_0x56d9[45]](handleEntityNotFound(_0x7a20x15,null,_0x56d9[77]))[_0x56d9[45]](respondWithResult(_0x7a20x15,null,_0x56d9[77]))[_0x56d9[75]](handleError(_0x7a20x15,null,_0x56d9[77]))};exports[_0x56d9[48]]= function(_0x7a20x28,_0x7a20x15){return db[_0x56d9[56]][_0x56d9[80]]({where:{id:_0x7a20x28[_0x56d9[79]][_0x56d9[78]]}})[_0x56d9[45]](handleEntityNotFound(_0x7a20x15,null,_0x56d9[48]))[_0x56d9[45]](removeEntity(_0x7a20x15,null,_0x56d9[48]))[_0x56d9[75]](handleError(_0x7a20x15,null,_0x56d9[48]))};exports[_0x56d9[81]]= function(_0x7a20x28,_0x7a20x15){if(_0x7a20x28[_0x56d9[83]][_0x56d9[82]]=== _0x56d9[84]&&  !_[_0x56d9[87]](_0x7a20x28[_0x56d9[83]][_0x56d9[85]],_0x56d9[86])){_0x7a20x28[_0x56d9[83]][_0x56d9[85]]= _0x56d9[86][_0x56d9[88]](_0x7a20x28[_0x56d9[83]][_0x56d9[85]])};return db[_0x56d9[56]][_0x56d9[81]](_0x7a20x28[_0x56d9[83]],{raw:false})[_0x56d9[45]](respondWithResult(_0x7a20x15,201,_0x56d9[81]))[_0x56d9[75]](handleError(_0x7a20x15,null,_0x56d9[81]))};exports[_0x56d9[46]]= function(_0x7a20x28,_0x7a20x15){if(_0x7a20x28[_0x56d9[83]][_0x56d9[78]]){delete _0x7a20x28[_0x56d9[83]][_0x56d9[78]]};return db[_0x56d9[56]][_0x56d9[80]]({where:{id:_0x7a20x28[_0x56d9[79]][_0x56d9[78]]}})[_0x56d9[45]](handleEntityNotFound(_0x7a20x15,null,_0x56d9[46]))[_0x56d9[45]](function(_0x7a20x18){if(_0x7a20x18){return db[_0x56d9[56]][_0x56d9[46]](_[_0x56d9[69]](_0x7a20x28[_0x56d9[83]],[_0x56d9[85],_0x56d9[89],_0x56d9[90]]),{where:{context:_0x7a20x18[_0x56d9[89]],exten:_0x7a20x18[_0x56d9[85]]}})[_0x56d9[45]](function(_0x7a20x23){logger[_0x56d9[24]](_0x56d9[22],_0x56d9[46],204,_0x56d9[44]);logger[_0x56d9[26]](_0x56d9[25],_0x56d9[46],204,_0x56d9[44],JSON[_0x56d9[31]](_0x7a20x18));return _0x7a20x23})};return null})[_0x56d9[45]](respondWithStatusCode(_0x7a20x15,null,_0x56d9[46]))[_0x56d9[75]](handleError(_0x7a20x15,null,_0x56d9[46]))};exports[_0x56d9[91]]= function(_0x7a20x28,_0x7a20x15,_0x7a20x2c){return db[_0x56d9[56]][_0x56d9[97]]({where:{id:_0x7a20x28[_0x56d9[79]][_0x56d9[78]]}})[_0x56d9[45]](handleEntityNotFound(_0x7a20x15,null,_0x56d9[91]))[_0x56d9[45]](function(_0x7a20x18){if(_0x7a20x18){return db[_0x56d9[96]][_0x56d9[95]](function(_0x7a20x2d){return db[_0x56d9[56]][_0x56d9[48]]({where:{VoiceExtensionId:_0x7a20x28[_0x56d9[79]][_0x56d9[78]]},transaction:_0x7a20x2d})[_0x56d9[45]](function(_0x7a20x2e){var _0x7a20x2f=_[_0x56d9[72]](_0x7a20x28[_0x56d9[83]],function(_0x7a20x30){_0x7a20x30[_0x56d9[93]]= _0x7a20x28[_0x56d9[79]][_0x56d9[78]];return _0x7a20x30});return db[_0x56d9[56]][_0x56d9[94]](_0x7a20x2f,{transaction:_0x7a20x2d})})})[_0x56d9[45]](function(){return db[_0x56d9[56]][_0x56d9[76]]({where:{isApp:true,VoiceExtensionId:_0x7a20x28[_0x56d9[79]][_0x56d9[78]]},order:_0x56d9[92]})})}})[_0x56d9[45]](respondWithResult(_0x7a20x15,null,_0x56d9[91]))[_0x56d9[75]](handleError(_0x7a20x15,null,_0x56d9[91]))}
\ No newline at end of file
+var _0x3788=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E","\x5F","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x63\x6F\x6E\x63\x61\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x61\x73\x74\x28\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x61\x73\x20\x75\x6E\x73\x69\x67\x6E\x65\x64\x29","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x3788[0];var jsonpatch=require(_0x3788[1]);var rp=require(_0x3788[2]);var moment=require(_0x3788[3]);var BPromise=require(_0x3788[4]);var util=require(_0x3788[5]);var path=require(_0x3788[6]);var sox=require(_0x3788[7]);var ejs=require(_0x3788[8]);var fs=require(_0x3788[9]);var _=require(_0x3788[10]);var squel=require(_0x3788[11]);var crypto=require(_0x3788[12]);var jsforce=require(_0x3788[13]);var toCsv=require(_0x3788[14]);var qs=require(_0x3788[15]);var logger=require(_0x3788[17])(_0x3788[16]);var utils=require(_0x3788[18]);var config=require(_0x3788[19]);var db=require(_0x3788[21])[_0x3788[20]];function respondWithStatusCode(_0x22c4x15,_0x22c4x16,_0x22c4x17){_0x22c4x16= _0x22c4x16|| 204;return function(_0x22c4x18){if(_0x22c4x18){logger[_0x3788[24]](_0x3788[22],_0x22c4x17,_0x22c4x16,_0x3788[23]);logger[_0x3788[26]](_0x3788[25],_0x22c4x17,_0x22c4x16,_0x3788[23]);return _0x22c4x15[_0x3788[27]](_0x22c4x16)};return _0x22c4x15[_0x3788[29]](304)[_0x3788[28]]()}}function respondWithResult(_0x22c4x15,_0x22c4x16,_0x22c4x17){_0x22c4x16= _0x22c4x16|| 200;return function(_0x22c4x18){if(_0x22c4x18){logger[_0x3788[24]](_0x3788[22],_0x22c4x17,_0x22c4x16,_0x3788[30]);logger[_0x3788[26]](_0x3788[25],_0x22c4x17,_0x22c4x16,_0x3788[30],JSON[_0x3788[31]](_0x22c4x18));return _0x22c4x15[_0x3788[29]](_0x22c4x16)[_0x3788[32]](_0x22c4x18)};return _0x22c4x15[_0x3788[29]](304)[_0x3788[28]]()}}function respondWithFilteredResult(_0x22c4x15,_0x22c4x1b,_0x22c4x17){return function(_0x22c4x18){if(_0x22c4x18){var _0x22c4x1c=_0x22c4x18[_0x3788[33]],_0x22c4x1d=_0x22c4x1b[_0x3788[34]],_0x22c4x1e=_0x22c4x1b[_0x3788[34]]+ _0x22c4x1b[_0x3788[35]],_0x22c4x16;if(_0x22c4x1e>= _0x22c4x1c){_0x22c4x1e= _0x22c4x1c;_0x22c4x16= 200}else {_0x22c4x16= 206};_0x22c4x15[_0x3788[29]](_0x22c4x16);logger[_0x3788[24]](_0x3788[22],_0x22c4x17,_0x22c4x16,_0x3788[36]);logger[_0x3788[26]](_0x3788[25],_0x22c4x17,_0x22c4x16,_0x3788[30],JSON[_0x3788[31]](_0x22c4x18));return _0x22c4x15[_0x3788[40]](_0x3788[37],_0x22c4x1d+ _0x3788[38]+ _0x22c4x1e+ _0x3788[39]+ _0x22c4x1c)[_0x3788[32]](_0x22c4x18)};return null}}function patchUpdates(_0x22c4x20){return function(_0x22c4x18){try{jsonpatch[_0x3788[41]](_0x22c4x18,_0x22c4x20,true)}catch(err){return BPromise[_0x3788[42]](err)};return _0x22c4x18[_0x3788[43]]()}}function saveUpdates(_0x22c4x22,_0x22c4x16,_0x22c4x17){return function(_0x22c4x18){if(_0x22c4x18){return _0x22c4x18[_0x3788[46]](_0x22c4x22)[_0x3788[45]](function(_0x22c4x23){logger[_0x3788[24]](_0x3788[22],_0x22c4x17,_0x22c4x16,_0x3788[44]);logger[_0x3788[26]](_0x3788[25],_0x22c4x17,_0x22c4x16,_0x3788[44],JSON[_0x3788[31]](_0x22c4x18));return _0x22c4x23})};return null}}function removeEntity(_0x22c4x15,_0x22c4x16,_0x22c4x17){return function(_0x22c4x18){if(_0x22c4x18){return _0x22c4x18[_0x3788[48]]()[_0x3788[45]](function(){logger[_0x3788[24]](_0x3788[22],_0x22c4x17,_0x22c4x16,_0x3788[47]);logger[_0x3788[26]](_0x3788[25],_0x22c4x17,_0x22c4x16,_0x3788[47],JSON[_0x3788[31]](_0x22c4x18));_0x22c4x15[_0x3788[29]](204)[_0x3788[28]]()})}}}function handleEntityNotFound(_0x22c4x15,_0x22c4x16,_0x22c4x17){return function(_0x22c4x18){if(!_0x22c4x18){logger[_0x3788[50]](_0x3788[22],_0x22c4x17,404,_0x3788[49]);_0x22c4x15[_0x3788[29]](404)[_0x3788[28]]();return null};return _0x22c4x18}}function handleError(_0x22c4x15,_0x22c4x16,_0x22c4x17){_0x22c4x16= _0x22c4x16|| 500;return function(_0x22c4x27){logger[_0x3788[50]](_0x3788[22],_0x22c4x17,_0x22c4x16,JSON[_0x3788[31]](_0x22c4x27));delete _0x22c4x27[_0x3788[51]];_0x22c4x15[_0x3788[29]](_0x22c4x16)[_0x3788[52]](_0x22c4x27)}}exports[_0x3788[53]]= function(_0x22c4x28,_0x22c4x15){var _0x22c4x1b={},_0x22c4x29={};_0x22c4x29[_0x3788[54]]= _[_0x3788[57]](db[_0x3788[56]][_0x3788[55]]);_0x22c4x29[_0x3788[58]]= _[_0x3788[57]](_0x22c4x28[_0x3788[58]]);_0x22c4x29[_0x3788[59]]= _[_0x3788[60]](_0x22c4x29[_0x3788[54]],_0x22c4x29[_0x3788[58]]);_0x22c4x1b[_0x3788[61]]= _[_0x3788[60]](_0x22c4x29[_0x3788[54]],qs[_0x3788[62]](_0x22c4x28[_0x3788[58]][_0x3788[62]]));_0x22c4x1b[_0x3788[61]]= (_0x22c4x1b[_0x3788[61]][_0x3788[63]])?_0x22c4x1b[_0x3788[61]]:_0x22c4x29[_0x3788[54]];if(!_0x22c4x28[_0x3788[58]][_0x3788[65]](_0x3788[64])){_0x22c4x1b[_0x3788[35]]= qs[_0x3788[35]](_0x22c4x28[_0x3788[58]][_0x3788[35]]);_0x22c4x1b[_0x3788[34]]= qs[_0x3788[34]](_0x22c4x28[_0x3788[58]][_0x3788[34]])};_0x22c4x1b[_0x3788[66]]= qs[_0x3788[67]](_0x22c4x28[_0x3788[58]][_0x3788[67]]);_0x22c4x1b[_0x3788[68]]= qs[_0x3788[59]](_[_0x3788[69]](_0x22c4x28[_0x3788[58]],_0x22c4x29[_0x3788[59]]));if(_0x22c4x28[_0x3788[58]][_0x3788[70]]){_0x22c4x1b[_0x3788[68]]= _[_0x3788[73]](_0x22c4x1b[_0x3788[68]],{$or:_[_0x3788[72]](_0x22c4x1b[_0x3788[61]],function(_0x22c4x2a){var _0x22c4x2b={};_0x22c4x2b[_0x22c4x2a]= {$like:_0x3788[71]+ _0x22c4x28[_0x3788[58]][_0x3788[70]]+ _0x3788[71]};return _0x22c4x2b})})};_0x22c4x1b= _[_0x3788[73]]({},_0x22c4x1b,_0x22c4x28[_0x3788[74]]);return db[_0x3788[56]][_0x3788[76]](_0x22c4x1b)[_0x3788[45]](respondWithFilteredResult(_0x22c4x15,_0x22c4x1b,_0x3788[53]))[_0x3788[75]](handleError(_0x22c4x15,null,_0x3788[53]))};exports[_0x3788[77]]= function(_0x22c4x28,_0x22c4x15){var _0x22c4x1b={raw:false,where:{id:_0x22c4x28[_0x3788[79]][_0x3788[78]]}},_0x22c4x29={};_0x22c4x29[_0x3788[54]]= _[_0x3788[57]](db[_0x3788[56]][_0x3788[55]]);_0x22c4x29[_0x3788[58]]= _[_0x3788[57]](_0x22c4x28[_0x3788[58]]);_0x22c4x29[_0x3788[59]]= _[_0x3788[60]](_0x22c4x29[_0x3788[54]],_0x22c4x29[_0x3788[58]]);_0x22c4x1b[_0x3788[61]]= _[_0x3788[60]](_0x22c4x29[_0x3788[54]],qs[_0x3788[62]](_0x22c4x28[_0x3788[58]][_0x3788[62]]));_0x22c4x1b[_0x3788[61]]= (_0x22c4x1b[_0x3788[61]][_0x3788[63]])?_0x22c4x1b[_0x3788[61]]:_0x22c4x29[_0x3788[54]];_0x22c4x1b= _[_0x3788[73]]({},_0x22c4x1b,_0x22c4x28[_0x3788[74]]);return db[_0x3788[56]][_0x3788[80]](_0x22c4x1b)[_0x3788[45]](handleEntityNotFound(_0x22c4x15,null,_0x3788[77]))[_0x3788[45]](respondWithResult(_0x22c4x15,null,_0x3788[77]))[_0x3788[75]](handleError(_0x22c4x15,null,_0x3788[77]))};exports[_0x3788[48]]= function(_0x22c4x28,_0x22c4x15){return db[_0x3788[56]][_0x3788[80]]({where:{id:_0x22c4x28[_0x3788[79]][_0x3788[78]]}})[_0x3788[45]](handleEntityNotFound(_0x22c4x15,null,_0x3788[48]))[_0x3788[45]](removeEntity(_0x22c4x15,null,_0x3788[48]))[_0x3788[75]](handleError(_0x22c4x15,null,_0x3788[48]))};exports[_0x3788[81]]= function(_0x22c4x28,_0x22c4x15){if(_0x22c4x28[_0x3788[83]][_0x3788[82]]=== _0x3788[84]&&  !_[_0x3788[87]](_0x22c4x28[_0x3788[83]][_0x3788[85]],_0x3788[86])){_0x22c4x28[_0x3788[83]][_0x3788[85]]= _0x3788[86][_0x3788[88]](_0x22c4x28[_0x3788[83]][_0x3788[85]])};return db[_0x3788[56]][_0x3788[81]](_0x22c4x28[_0x3788[83]],{raw:false})[_0x3788[45]](respondWithResult(_0x22c4x15,201,_0x3788[81]))[_0x3788[75]](handleError(_0x22c4x15,null,_0x3788[81]))};exports[_0x3788[46]]= function(_0x22c4x28,_0x22c4x15){if(_0x22c4x28[_0x3788[83]][_0x3788[78]]){delete _0x22c4x28[_0x3788[83]][_0x3788[78]]};return db[_0x3788[56]][_0x3788[80]]({where:{id:_0x22c4x28[_0x3788[79]][_0x3788[78]]}})[_0x3788[45]](handleEntityNotFound(_0x22c4x15,null,_0x3788[46]))[_0x3788[45]](function(_0x22c4x18){if(_0x22c4x18){return db[_0x3788[56]][_0x3788[46]](_[_0x3788[69]](_0x22c4x28[_0x3788[83]],[_0x3788[85],_0x3788[89],_0x3788[90]]),{where:{context:_0x22c4x18[_0x3788[89]],exten:_0x22c4x18[_0x3788[85]]}})[_0x3788[45]](function(_0x22c4x23){logger[_0x3788[24]](_0x3788[22],_0x3788[46],204,_0x3788[44]);logger[_0x3788[26]](_0x3788[25],_0x3788[46],204,_0x3788[44],JSON[_0x3788[31]](_0x22c4x18));return _0x22c4x23})};return null})[_0x3788[45]](respondWithStatusCode(_0x22c4x15,null,_0x3788[46]))[_0x3788[75]](handleError(_0x22c4x15,null,_0x3788[46]))};exports[_0x3788[91]]= function(_0x22c4x28,_0x22c4x15,_0x22c4x2c){return db[_0x3788[56]][_0x3788[97]]({where:{id:_0x22c4x28[_0x3788[79]][_0x3788[78]]}})[_0x3788[45]](handleEntityNotFound(_0x22c4x15,null,_0x3788[91]))[_0x3788[45]](function(_0x22c4x18){if(_0x22c4x18){return db[_0x3788[96]][_0x3788[95]](function(_0x22c4x2d){return db[_0x3788[56]][_0x3788[48]]({where:{VoiceExtensionId:_0x22c4x28[_0x3788[79]][_0x3788[78]]},transaction:_0x22c4x2d})[_0x3788[45]](function(_0x22c4x2e){var _0x22c4x2f=_[_0x3788[72]](_0x22c4x28[_0x3788[83]],function(_0x22c4x30){_0x22c4x30[_0x3788[93]]= _0x22c4x28[_0x3788[79]][_0x3788[78]];return _0x22c4x30});return db[_0x3788[56]][_0x3788[94]](_0x22c4x2f,{transaction:_0x22c4x2d})})})[_0x3788[45]](function(){return db[_0x3788[56]][_0x3788[76]]({where:{isApp:true,VoiceExtensionId:_0x22c4x28[_0x3788[79]][_0x3788[78]]},order:_0x3788[92]})})}})[_0x3788[45]](respondWithResult(_0x22c4x15,null,_0x3788[91]))[_0x3788[75]](handleError(_0x22c4x15,null,_0x3788[91]))}
\ No newline at end of file
index a36f176..489440f 100644 (file)
@@ -1 +1 @@
-var _0x603f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x603f[0];var _=require(_0x603f[1]);var util=require(_0x603f[2]);var logger=require(_0x603f[4])(_0x603f[3]);var attributes=require(_0x603f[5]);module[_0x603f[6]]= function(_0xfdaex5,_0xfdaex6){return _0xfdaex5[_0x603f[9]](_0x603f[7],attributes,{tableName:_0x603f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xaf6f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xaf6f[0];var _=require(_0xaf6f[1]);var util=require(_0xaf6f[2]);var logger=require(_0xaf6f[4])(_0xaf6f[3]);var attributes=require(_0xaf6f[5]);module[_0xaf6f[6]]= function(_0x5fb9x5,_0x5fb9x6){return _0x5fb9x5[_0xaf6f[9]](_0xaf6f[7],attributes,{tableName:_0xaf6f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 15a2e23..731e360 100644 (file)
@@ -1 +1 @@
-var _0xe3c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe3c3[0];var _=require(_0xe3c3[1]);var util=require(_0xe3c3[2]);var moment=require(_0xe3c3[3]);var BPromise=require(_0xe3c3[4]);var db=require(_0xe3c3[6])[_0xe3c3[5]];var utils=require(_0xe3c3[7]);var logger=require(_0xe3c3[9])(_0xe3c3[8]);var jayson=require(_0xe3c3[10]);var client=jayson[_0xe3c3[12]][_0xe3c3[11]]({port:9002});function respondWithRpcPromise(_0x65bdxb,_0x65bdxc,_0x65bdxd){return  new BPromise(function(_0x65bdxe,_0x65bdxf){return client[_0xe3c3[25]](_0x65bdxb,_0x65bdxd)[_0xe3c3[24]](function(_0x65bdx11){logger[_0xe3c3[17]](_0xe3c3[13],_0x65bdxc,_0xe3c3[16]);logger[_0xe3c3[20]](_0xe3c3[18],_0x65bdxc,_0xe3c3[16],JSON[_0xe3c3[19]](_0x65bdx11));if(_0x65bdx11[_0xe3c3[14]]){if(_0x65bdx11[_0xe3c3[14]][_0xe3c3[21]]=== 500){logger[_0xe3c3[14]](_0xe3c3[13],_0x65bdxc,_0x65bdx11[_0xe3c3[14]][_0xe3c3[22]]);return _0x65bdxf(_0x65bdx11[_0xe3c3[14]][_0xe3c3[22]])};logger[_0xe3c3[14]](_0xe3c3[13],_0x65bdxc,_0x65bdx11[_0xe3c3[14]][_0xe3c3[22]]);return _0x65bdxe(_0x65bdx11[_0xe3c3[14]][_0xe3c3[22]])}else {logger[_0xe3c3[17]](_0xe3c3[13],_0x65bdxc,_0xe3c3[16]);_0x65bdxe(_0x65bdx11[_0xe3c3[23]][_0xe3c3[22]])}})[_0xe3c3[15]](function(_0x65bdx10){logger[_0xe3c3[14]](_0xe3c3[13],_0x65bdxc,_0x65bdx10);_0x65bdxf(_0x65bdx10)})})}
\ No newline at end of file
+var _0xbd64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbd64[0];var _=require(_0xbd64[1]);var util=require(_0xbd64[2]);var moment=require(_0xbd64[3]);var BPromise=require(_0xbd64[4]);var db=require(_0xbd64[6])[_0xbd64[5]];var utils=require(_0xbd64[7]);var logger=require(_0xbd64[9])(_0xbd64[8]);var jayson=require(_0xbd64[10]);var client=jayson[_0xbd64[12]][_0xbd64[11]]({port:9002});function respondWithRpcPromise(_0xd667xb,_0xd667xc,_0xd667xd){return  new BPromise(function(_0xd667xe,_0xd667xf){return client[_0xbd64[25]](_0xd667xb,_0xd667xd)[_0xbd64[24]](function(_0xd667x11){logger[_0xbd64[17]](_0xbd64[13],_0xd667xc,_0xbd64[16]);logger[_0xbd64[20]](_0xbd64[18],_0xd667xc,_0xbd64[16],JSON[_0xbd64[19]](_0xd667x11));if(_0xd667x11[_0xbd64[14]]){if(_0xd667x11[_0xbd64[14]][_0xbd64[21]]=== 500){logger[_0xbd64[14]](_0xbd64[13],_0xd667xc,_0xd667x11[_0xbd64[14]][_0xbd64[22]]);return _0xd667xf(_0xd667x11[_0xbd64[14]][_0xbd64[22]])};logger[_0xbd64[14]](_0xbd64[13],_0xd667xc,_0xd667x11[_0xbd64[14]][_0xbd64[22]]);return _0xd667xe(_0xd667x11[_0xbd64[14]][_0xbd64[22]])}else {logger[_0xbd64[17]](_0xbd64[13],_0xd667xc,_0xbd64[16]);_0xd667xe(_0xd667x11[_0xbd64[23]][_0xbd64[22]])}})[_0xbd64[15]](function(_0xd667x10){logger[_0xbd64[14]](_0xbd64[13],_0xd667xc,_0xd667x10);_0xd667xf(_0xd667x10)})})}
\ No newline at end of file
index 21c34c3..275be6e 100644 (file)
@@ -1 +1 @@
-var _0x1e62=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1e62[0];var multer=require(_0x1e62[1]);var util=require(_0x1e62[2]);var path=require(_0x1e62[3]);var express=require(_0x1e62[4]);var router=express.Router();var auth=require(_0x1e62[5]);var config=require(_0x1e62[6]);var controller=require(_0x1e62[7]);router[_0x1e62[11]](_0x1e62[8],auth[_0x1e62[9]](),controller[_0x1e62[10]]);router[_0x1e62[11]](_0x1e62[12],auth[_0x1e62[9]](),controller[_0x1e62[13]]);router[_0x1e62[11]](_0x1e62[14],auth[_0x1e62[9]](),controller[_0x1e62[15]]);router[_0x1e62[17]](_0x1e62[8],auth[_0x1e62[9]](),controller[_0x1e62[16]]);router[_0x1e62[19]](_0x1e62[12],auth[_0x1e62[9]](),controller[_0x1e62[18]]);router[_0x1e62[21]](_0x1e62[12],auth[_0x1e62[9]](),controller[_0x1e62[20]]);module[_0x1e62[22]]= router
\ No newline at end of file
+var _0x9530=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9530[0];var multer=require(_0x9530[1]);var util=require(_0x9530[2]);var path=require(_0x9530[3]);var express=require(_0x9530[4]);var router=express.Router();var auth=require(_0x9530[5]);var config=require(_0x9530[6]);var controller=require(_0x9530[7]);router[_0x9530[11]](_0x9530[8],auth[_0x9530[9]](),controller[_0x9530[10]]);router[_0x9530[11]](_0x9530[12],auth[_0x9530[9]](),controller[_0x9530[13]]);router[_0x9530[11]](_0x9530[14],auth[_0x9530[9]](),controller[_0x9530[15]]);router[_0x9530[17]](_0x9530[8],auth[_0x9530[9]](),controller[_0x9530[16]]);router[_0x9530[19]](_0x9530[12],auth[_0x9530[9]](),controller[_0x9530[18]]);router[_0x9530[21]](_0x9530[12],auth[_0x9530[9]](),controller[_0x9530[20]]);module[_0x9530[22]]= router
\ No newline at end of file
index 3aae01f..3c7071f 100644 (file)
@@ -1 +1 @@
-var _0x3005=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x65\x73\x74\x5F\x6D\x61\x69\x6C\x62\x6F\x78","","\x63\x65\x6E\x74\x72\x61\x6C","\x79\x65\x73","\x6E\x6F","\x54\x49\x4E\x59\x49\x4E\x54\x28\x34\x29","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50"];_0x3005[0];var Sequelize=require(_0x3005[1]);module[_0x3005[2]]= {customer_id:{type:Sequelize[_0x3005[3]]},context:{type:Sequelize[_0x3005[3]],defaultValue:_0x3005[4],unique:_0x3005[5]},mailbox:{type:Sequelize[_0x3005[3]],defaultValue:_0x3005[6],allowNull:false,unique:_0x3005[5]},password:{type:Sequelize[_0x3005[3]]},fullname:{type:Sequelize[_0x3005[3]]},email:{type:Sequelize[_0x3005[3]],validate:{isEmail:true}},pager:{type:Sequelize[_0x3005[3]]},tz:{type:Sequelize[_0x3005[3]],defaultValue:_0x3005[7]},attach:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[8],allowNull:false},saycid:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[8],allowNull:false},dialout:{type:Sequelize[_0x3005[3]]},callback:{type:Sequelize[_0x3005[3]]},review:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},operator:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},envelope:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},sayduration:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},saydurationm:{type:_0x3005[10],defaultValue:1,allowNull:false},sendvoicemail:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},delete:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},nextaftercmd:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[8],allowNull:false},forcename:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},forcegreetings:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[9],allowNull:false},hidefromdir:{type:Sequelize.ENUM(_0x3005[8],_0x3005[9]),defaultValue:_0x3005[8],allowNull:false},stamp:{type:_0x3005[11]},emailsubject:{type:Sequelize[_0x3005[3]]},emailbody:{type:Sequelize[_0x3005[3]]},name:{type:Sequelize[_0x3005[3]]},maxsecs:{type:Sequelize.INTEGER(255),defaultValue:180,allowNull:false},maxmsg:{type:Sequelize.INTEGER(255),defaultValue:100,allowNull:false}}
\ No newline at end of file
+var _0x432c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x65\x73\x74\x5F\x6D\x61\x69\x6C\x62\x6F\x78","","\x63\x65\x6E\x74\x72\x61\x6C","\x79\x65\x73","\x6E\x6F","\x54\x49\x4E\x59\x49\x4E\x54\x28\x34\x29","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50"];_0x432c[0];var Sequelize=require(_0x432c[1]);module[_0x432c[2]]= {customer_id:{type:Sequelize[_0x432c[3]]},context:{type:Sequelize[_0x432c[3]],defaultValue:_0x432c[4],unique:_0x432c[5]},mailbox:{type:Sequelize[_0x432c[3]],defaultValue:_0x432c[6],allowNull:false,unique:_0x432c[5]},password:{type:Sequelize[_0x432c[3]]},fullname:{type:Sequelize[_0x432c[3]]},email:{type:Sequelize[_0x432c[3]],validate:{isEmail:true}},pager:{type:Sequelize[_0x432c[3]]},tz:{type:Sequelize[_0x432c[3]],defaultValue:_0x432c[7]},attach:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[8],allowNull:false},saycid:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[8],allowNull:false},dialout:{type:Sequelize[_0x432c[3]]},callback:{type:Sequelize[_0x432c[3]]},review:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},operator:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},envelope:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},sayduration:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},saydurationm:{type:_0x432c[10],defaultValue:1,allowNull:false},sendvoicemail:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},delete:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},nextaftercmd:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[8],allowNull:false},forcename:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},forcegreetings:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[9],allowNull:false},hidefromdir:{type:Sequelize.ENUM(_0x432c[8],_0x432c[9]),defaultValue:_0x432c[8],allowNull:false},stamp:{type:_0x432c[11]},emailsubject:{type:Sequelize[_0x432c[3]]},emailbody:{type:Sequelize[_0x432c[3]]},name:{type:Sequelize[_0x432c[3]]},maxsecs:{type:Sequelize.INTEGER(255),defaultValue:180,allowNull:false},maxmsg:{type:Sequelize.INTEGER(255),defaultValue:100,allowNull:false}}
\ No newline at end of file
index 8f32e73..6e1ea91 100644 (file)
@@ -1 +1 @@
-var _0x36d3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x36d3[0];var jsonpatch=require(_0x36d3[1]);var rp=require(_0x36d3[2]);var moment=require(_0x36d3[3]);var BPromise=require(_0x36d3[4]);var util=require(_0x36d3[5]);var path=require(_0x36d3[6]);var sox=require(_0x36d3[7]);var ejs=require(_0x36d3[8]);var fs=require(_0x36d3[9]);var _=require(_0x36d3[10]);var squel=require(_0x36d3[11]);var crypto=require(_0x36d3[12]);var jsforce=require(_0x36d3[13]);var toCsv=require(_0x36d3[14]);var qs=require(_0x36d3[15]);var logger=require(_0x36d3[17])(_0x36d3[16]);var utils=require(_0x36d3[18]);var config=require(_0x36d3[19]);var db=require(_0x36d3[21])[_0x36d3[20]];function respondWithStatusCode(_0xcbbbx15,_0xcbbbx16,_0xcbbbx17){_0xcbbbx16= _0xcbbbx16|| 204;return function(_0xcbbbx18){if(_0xcbbbx18){logger[_0x36d3[24]](_0x36d3[22],_0xcbbbx17,_0xcbbbx16,_0x36d3[23]);logger[_0x36d3[26]](_0x36d3[25],_0xcbbbx17,_0xcbbbx16,_0x36d3[23]);return _0xcbbbx15[_0x36d3[27]](_0xcbbbx16)};return _0xcbbbx15[_0x36d3[29]](304)[_0x36d3[28]]()}}function respondWithResult(_0xcbbbx15,_0xcbbbx16,_0xcbbbx17){_0xcbbbx16= _0xcbbbx16|| 200;return function(_0xcbbbx18){if(_0xcbbbx18){logger[_0x36d3[24]](_0x36d3[22],_0xcbbbx17,_0xcbbbx16,_0x36d3[30]);logger[_0x36d3[26]](_0x36d3[25],_0xcbbbx17,_0xcbbbx16,_0x36d3[30],JSON[_0x36d3[31]](_0xcbbbx18));return _0xcbbbx15[_0x36d3[29]](_0xcbbbx16)[_0x36d3[32]](_0xcbbbx18)};return _0xcbbbx15[_0x36d3[29]](304)[_0x36d3[28]]()}}function respondWithFilteredResult(_0xcbbbx15,_0xcbbbx1b,_0xcbbbx17){return function(_0xcbbbx18){if(_0xcbbbx18){var _0xcbbbx1c=_0xcbbbx18[_0x36d3[33]],_0xcbbbx1d=_0xcbbbx1b[_0x36d3[34]],_0xcbbbx1e=_0xcbbbx1b[_0x36d3[34]]+ _0xcbbbx1b[_0x36d3[35]],_0xcbbbx16;if(_0xcbbbx1e>= _0xcbbbx1c){_0xcbbbx1e= _0xcbbbx1c;_0xcbbbx16= 200}else {_0xcbbbx16= 206};_0xcbbbx15[_0x36d3[29]](_0xcbbbx16);logger[_0x36d3[24]](_0x36d3[22],_0xcbbbx17,_0xcbbbx16,_0x36d3[36]);logger[_0x36d3[26]](_0x36d3[25],_0xcbbbx17,_0xcbbbx16,_0x36d3[30],JSON[_0x36d3[31]](_0xcbbbx18));return _0xcbbbx15[_0x36d3[40]](_0x36d3[37],_0xcbbbx1d+ _0x36d3[38]+ _0xcbbbx1e+ _0x36d3[39]+ _0xcbbbx1c)[_0x36d3[32]](_0xcbbbx18)};return null}}function patchUpdates(_0xcbbbx20){return function(_0xcbbbx18){try{jsonpatch[_0x36d3[41]](_0xcbbbx18,_0xcbbbx20,true)}catch(err){return BPromise[_0x36d3[42]](err)};return _0xcbbbx18[_0x36d3[43]]()}}function saveUpdates(_0xcbbbx22,_0xcbbbx16,_0xcbbbx17){return function(_0xcbbbx18){if(_0xcbbbx18){return _0xcbbbx18[_0x36d3[46]](_0xcbbbx22)[_0x36d3[45]](function(_0xcbbbx23){logger[_0x36d3[24]](_0x36d3[22],_0xcbbbx17,_0xcbbbx16,_0x36d3[44]);logger[_0x36d3[26]](_0x36d3[25],_0xcbbbx17,_0xcbbbx16,_0x36d3[44],JSON[_0x36d3[31]](_0xcbbbx18));return _0xcbbbx23})};return null}}function removeEntity(_0xcbbbx15,_0xcbbbx16,_0xcbbbx17){return function(_0xcbbbx18){if(_0xcbbbx18){return _0xcbbbx18[_0x36d3[48]]()[_0x36d3[45]](function(){logger[_0x36d3[24]](_0x36d3[22],_0xcbbbx17,_0xcbbbx16,_0x36d3[47]);logger[_0x36d3[26]](_0x36d3[25],_0xcbbbx17,_0xcbbbx16,_0x36d3[47],JSON[_0x36d3[31]](_0xcbbbx18));_0xcbbbx15[_0x36d3[29]](204)[_0x36d3[28]]()})}}}function handleEntityNotFound(_0xcbbbx15,_0xcbbbx16,_0xcbbbx17){return function(_0xcbbbx18){if(!_0xcbbbx18){logger[_0x36d3[50]](_0x36d3[22],_0xcbbbx17,404,_0x36d3[49]);_0xcbbbx15[_0x36d3[29]](404)[_0x36d3[28]]();return null};return _0xcbbbx18}}function handleError(_0xcbbbx15,_0xcbbbx16,_0xcbbbx17){_0xcbbbx16= _0xcbbbx16|| 500;return function(_0xcbbbx27){logger[_0x36d3[50]](_0x36d3[22],_0xcbbbx17,_0xcbbbx16,JSON[_0x36d3[31]](_0xcbbbx27));delete _0xcbbbx27[_0x36d3[51]];_0xcbbbx15[_0x36d3[29]](_0xcbbbx16)[_0x36d3[52]](_0xcbbbx27)}}exports[_0x36d3[53]]= function(_0xcbbbx28,_0xcbbbx15){var _0xcbbbx1b={},_0xcbbbx29={};_0xcbbbx29[_0x36d3[54]]= _[_0x36d3[57]](db[_0x36d3[56]][_0x36d3[55]]);_0xcbbbx29[_0x36d3[58]]= _[_0x36d3[57]](_0xcbbbx28[_0x36d3[58]]);_0xcbbbx29[_0x36d3[59]]= _[_0x36d3[60]](_0xcbbbx29[_0x36d3[54]],_0xcbbbx29[_0x36d3[58]]);_0xcbbbx1b[_0x36d3[61]]= _[_0x36d3[60]](_0xcbbbx29[_0x36d3[54]],qs[_0x36d3[62]](_0xcbbbx28[_0x36d3[58]][_0x36d3[62]]));_0xcbbbx1b[_0x36d3[61]]= (_0xcbbbx1b[_0x36d3[61]][_0x36d3[63]])?_0xcbbbx1b[_0x36d3[61]]:_0xcbbbx29[_0x36d3[54]];if(!_0xcbbbx28[_0x36d3[58]][_0x36d3[65]](_0x36d3[64])){_0xcbbbx1b[_0x36d3[35]]= qs[_0x36d3[35]](_0xcbbbx28[_0x36d3[58]][_0x36d3[35]]);_0xcbbbx1b[_0x36d3[34]]= qs[_0x36d3[34]](_0xcbbbx28[_0x36d3[58]][_0x36d3[34]])};_0xcbbbx1b[_0x36d3[66]]= qs[_0x36d3[67]](_0xcbbbx28[_0x36d3[58]][_0x36d3[67]]);_0xcbbbx1b[_0x36d3[68]]= qs[_0x36d3[59]](_[_0x36d3[69]](_0xcbbbx28[_0x36d3[58]],_0xcbbbx29[_0x36d3[59]]));if(_0xcbbbx28[_0x36d3[58]][_0x36d3[70]]){_0xcbbbx1b[_0x36d3[68]]= _[_0x36d3[73]](_0xcbbbx1b[_0x36d3[68]],{$or:_[_0x36d3[72]](_0xcbbbx1b[_0x36d3[61]],function(_0xcbbbx2a){var _0xcbbbx2b={};_0xcbbbx2b[_0xcbbbx2a]= {$like:_0x36d3[71]+ _0xcbbbx28[_0x36d3[58]][_0x36d3[70]]+ _0x36d3[71]};return _0xcbbbx2b})})};_0xcbbbx1b= _[_0x36d3[73]]({},_0xcbbbx1b,_0xcbbbx28[_0x36d3[74]]);return db[_0x36d3[56]][_0x36d3[76]](_0xcbbbx1b)[_0x36d3[45]](respondWithFilteredResult(_0xcbbbx15,_0xcbbbx1b,_0x36d3[53]))[_0x36d3[75]](handleError(_0xcbbbx15,null,_0x36d3[53]))};exports[_0x36d3[77]]= function(_0xcbbbx28,_0xcbbbx15){var _0xcbbbx1b={raw:true,where:{id:_0xcbbbx28[_0x36d3[79]][_0x36d3[78]]}},_0xcbbbx29={};_0xcbbbx29[_0x36d3[54]]= _[_0x36d3[57]](db[_0x36d3[56]][_0x36d3[55]]);_0xcbbbx29[_0x36d3[58]]= _[_0x36d3[57]](_0xcbbbx28[_0x36d3[58]]);_0xcbbbx29[_0x36d3[59]]= _[_0x36d3[60]](_0xcbbbx29[_0x36d3[54]],_0xcbbbx29[_0x36d3[58]]);_0xcbbbx1b[_0x36d3[61]]= _[_0x36d3[60]](_0xcbbbx29[_0x36d3[54]],qs[_0x36d3[62]](_0xcbbbx28[_0x36d3[58]][_0x36d3[62]]));_0xcbbbx1b[_0x36d3[61]]= (_0xcbbbx1b[_0x36d3[61]][_0x36d3[63]])?_0xcbbbx1b[_0x36d3[61]]:_0xcbbbx29[_0x36d3[54]];_0xcbbbx1b= _[_0x36d3[73]]({},_0xcbbbx1b,_0xcbbbx28[_0x36d3[74]]);return db[_0x36d3[56]][_0x36d3[80]](_0xcbbbx1b)[_0x36d3[45]](handleEntityNotFound(_0xcbbbx15,null,_0x36d3[77]))[_0x36d3[45]](respondWithResult(_0xcbbbx15,null,_0x36d3[77]))[_0x36d3[75]](handleError(_0xcbbbx15,null,_0x36d3[77]))};exports[_0x36d3[81]]= function(_0xcbbbx28,_0xcbbbx15){return db[_0x36d3[56]][_0x36d3[81]](_0xcbbbx28[_0x36d3[82]],{})[_0x36d3[45]](respondWithResult(_0xcbbbx15,201,_0x36d3[81]))[_0x36d3[75]](handleError(_0xcbbbx15,null,_0x36d3[81]))};exports[_0x36d3[46]]= function(_0xcbbbx28,_0xcbbbx15){if(_0xcbbbx28[_0x36d3[82]][_0x36d3[78]]){delete _0xcbbbx28[_0x36d3[82]][_0x36d3[78]]};return db[_0x36d3[56]][_0x36d3[80]]({where:{id:_0xcbbbx28[_0x36d3[79]][_0x36d3[78]]}})[_0x36d3[45]](handleEntityNotFound(_0xcbbbx15,null,_0x36d3[46]))[_0x36d3[45]](saveUpdates(_0xcbbbx28[_0x36d3[82]],null,_0x36d3[46]))[_0x36d3[45]](respondWithResult(_0xcbbbx15,null,_0x36d3[46]))[_0x36d3[75]](handleError(_0xcbbbx15,null,_0x36d3[46]))};exports[_0x36d3[48]]= function(_0xcbbbx28,_0xcbbbx15){return db[_0x36d3[56]][_0x36d3[80]]({where:{id:_0xcbbbx28[_0x36d3[79]][_0x36d3[78]]}})[_0x36d3[45]](handleEntityNotFound(_0xcbbbx15,null,_0x36d3[48]))[_0x36d3[45]](removeEntity(_0xcbbbx15,null,_0x36d3[48]))[_0x36d3[75]](handleError(_0xcbbbx15,null,_0x36d3[48]))};exports[_0x36d3[83]]= function(_0xcbbbx28,_0xcbbbx15,_0xcbbbx2c){return db[_0x36d3[56]][_0x36d3[86]]({where:{id:_0xcbbbx28[_0x36d3[79]][_0x36d3[78]]}})[_0x36d3[45]](handleEntityNotFound(_0xcbbbx15,null,_0x36d3[83]))[_0x36d3[45]](function(_0xcbbbx2d){var _0xcbbbx1c;var _0xcbbbx1b={},_0xcbbbx29={};_0xcbbbx29[_0x36d3[54]]= _[_0x36d3[57]](db[_0x36d3[84]][_0x36d3[55]]);_0xcbbbx29[_0x36d3[58]]= _[_0x36d3[57]](_0xcbbbx28[_0x36d3[58]]);_0xcbbbx29[_0x36d3[59]]= _[_0x36d3[60]](_0xcbbbx29[_0x36d3[54]],_0xcbbbx29[_0x36d3[58]]);_0xcbbbx1b[_0x36d3[61]]= _[_0x36d3[60]](_0xcbbbx29[_0x36d3[54]],qs[_0x36d3[62]](_0xcbbbx28[_0x36d3[58]][_0x36d3[62]]));_0xcbbbx1b[_0x36d3[61]]= (_0xcbbbx1b[_0x36d3[61]][_0x36d3[63]])?_0xcbbbx1b[_0x36d3[61]]:_0xcbbbx29[_0x36d3[54]];if(!_0xcbbbx28[_0x36d3[58]][_0x36d3[65]](_0x36d3[64])){_0xcbbbx1b[_0x36d3[35]]= qs[_0x36d3[35]](_0xcbbbx28[_0x36d3[58]][_0x36d3[35]]);_0xcbbbx1b[_0x36d3[34]]= qs[_0x36d3[34]](_0xcbbbx28[_0x36d3[58]][_0x36d3[34]])};_0xcbbbx1b[_0x36d3[66]]= qs[_0x36d3[67]](_0xcbbbx28[_0x36d3[58]][_0x36d3[67]]);_0xcbbbx1b[_0x36d3[68]]= qs[_0x36d3[59]](_[_0x36d3[69]](_0xcbbbx28[_0x36d3[58]],_0xcbbbx29[_0x36d3[59]]));if(_0xcbbbx28[_0x36d3[58]][_0x36d3[70]]){_0xcbbbx1b[_0x36d3[68]]= _[_0x36d3[73]](_0xcbbbx1b[_0x36d3[68]],{$or:_[_0x36d3[72]](_0xcbbbx1b[_0x36d3[61]],function(_0xcbbbx2a){var _0xcbbbx2b={};_0xcbbbx2b[_0xcbbbx2a]= {$like:_0x36d3[71]+ _0xcbbbx28[_0x36d3[58]][_0x36d3[70]]+ _0x36d3[71]};return _0xcbbbx2b})})};_0xcbbbx1b[_0x36d3[68]]= _[_0x36d3[73]](_0xcbbbx1b[_0x36d3[68]],{mailboxuser:_0xcbbbx2d[_0x36d3[85]]});_0xcbbbx1b= _[_0x36d3[73]]({},_0xcbbbx1b,_0xcbbbx28[_0x36d3[74]]);return db[_0x36d3[84]][_0x36d3[76]](_0xcbbbx1b)[_0x36d3[45]](respondWithFilteredResult(_0xcbbbx15,_0xcbbbx1b,_0x36d3[83]))})[_0x36d3[75]](handleError(_0xcbbbx15,null,_0x36d3[83]))}
\ No newline at end of file
+var _0x34d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x34d4[0];var jsonpatch=require(_0x34d4[1]);var rp=require(_0x34d4[2]);var moment=require(_0x34d4[3]);var BPromise=require(_0x34d4[4]);var util=require(_0x34d4[5]);var path=require(_0x34d4[6]);var sox=require(_0x34d4[7]);var ejs=require(_0x34d4[8]);var fs=require(_0x34d4[9]);var _=require(_0x34d4[10]);var squel=require(_0x34d4[11]);var crypto=require(_0x34d4[12]);var jsforce=require(_0x34d4[13]);var toCsv=require(_0x34d4[14]);var qs=require(_0x34d4[15]);var logger=require(_0x34d4[17])(_0x34d4[16]);var utils=require(_0x34d4[18]);var config=require(_0x34d4[19]);var db=require(_0x34d4[21])[_0x34d4[20]];function respondWithStatusCode(_0xa5bfx15,_0xa5bfx16,_0xa5bfx17){_0xa5bfx16= _0xa5bfx16|| 204;return function(_0xa5bfx18){if(_0xa5bfx18){logger[_0x34d4[24]](_0x34d4[22],_0xa5bfx17,_0xa5bfx16,_0x34d4[23]);logger[_0x34d4[26]](_0x34d4[25],_0xa5bfx17,_0xa5bfx16,_0x34d4[23]);return _0xa5bfx15[_0x34d4[27]](_0xa5bfx16)};return _0xa5bfx15[_0x34d4[29]](304)[_0x34d4[28]]()}}function respondWithResult(_0xa5bfx15,_0xa5bfx16,_0xa5bfx17){_0xa5bfx16= _0xa5bfx16|| 200;return function(_0xa5bfx18){if(_0xa5bfx18){logger[_0x34d4[24]](_0x34d4[22],_0xa5bfx17,_0xa5bfx16,_0x34d4[30]);logger[_0x34d4[26]](_0x34d4[25],_0xa5bfx17,_0xa5bfx16,_0x34d4[30],JSON[_0x34d4[31]](_0xa5bfx18));return _0xa5bfx15[_0x34d4[29]](_0xa5bfx16)[_0x34d4[32]](_0xa5bfx18)};return _0xa5bfx15[_0x34d4[29]](304)[_0x34d4[28]]()}}function respondWithFilteredResult(_0xa5bfx15,_0xa5bfx1b,_0xa5bfx17){return function(_0xa5bfx18){if(_0xa5bfx18){var _0xa5bfx1c=_0xa5bfx18[_0x34d4[33]],_0xa5bfx1d=_0xa5bfx1b[_0x34d4[34]],_0xa5bfx1e=_0xa5bfx1b[_0x34d4[34]]+ _0xa5bfx1b[_0x34d4[35]],_0xa5bfx16;if(_0xa5bfx1e>= _0xa5bfx1c){_0xa5bfx1e= _0xa5bfx1c;_0xa5bfx16= 200}else {_0xa5bfx16= 206};_0xa5bfx15[_0x34d4[29]](_0xa5bfx16);logger[_0x34d4[24]](_0x34d4[22],_0xa5bfx17,_0xa5bfx16,_0x34d4[36]);logger[_0x34d4[26]](_0x34d4[25],_0xa5bfx17,_0xa5bfx16,_0x34d4[30],JSON[_0x34d4[31]](_0xa5bfx18));return _0xa5bfx15[_0x34d4[40]](_0x34d4[37],_0xa5bfx1d+ _0x34d4[38]+ _0xa5bfx1e+ _0x34d4[39]+ _0xa5bfx1c)[_0x34d4[32]](_0xa5bfx18)};return null}}function patchUpdates(_0xa5bfx20){return function(_0xa5bfx18){try{jsonpatch[_0x34d4[41]](_0xa5bfx18,_0xa5bfx20,true)}catch(err){return BPromise[_0x34d4[42]](err)};return _0xa5bfx18[_0x34d4[43]]()}}function saveUpdates(_0xa5bfx22,_0xa5bfx16,_0xa5bfx17){return function(_0xa5bfx18){if(_0xa5bfx18){return _0xa5bfx18[_0x34d4[46]](_0xa5bfx22)[_0x34d4[45]](function(_0xa5bfx23){logger[_0x34d4[24]](_0x34d4[22],_0xa5bfx17,_0xa5bfx16,_0x34d4[44]);logger[_0x34d4[26]](_0x34d4[25],_0xa5bfx17,_0xa5bfx16,_0x34d4[44],JSON[_0x34d4[31]](_0xa5bfx18));return _0xa5bfx23})};return null}}function removeEntity(_0xa5bfx15,_0xa5bfx16,_0xa5bfx17){return function(_0xa5bfx18){if(_0xa5bfx18){return _0xa5bfx18[_0x34d4[48]]()[_0x34d4[45]](function(){logger[_0x34d4[24]](_0x34d4[22],_0xa5bfx17,_0xa5bfx16,_0x34d4[47]);logger[_0x34d4[26]](_0x34d4[25],_0xa5bfx17,_0xa5bfx16,_0x34d4[47],JSON[_0x34d4[31]](_0xa5bfx18));_0xa5bfx15[_0x34d4[29]](204)[_0x34d4[28]]()})}}}function handleEntityNotFound(_0xa5bfx15,_0xa5bfx16,_0xa5bfx17){return function(_0xa5bfx18){if(!_0xa5bfx18){logger[_0x34d4[50]](_0x34d4[22],_0xa5bfx17,404,_0x34d4[49]);_0xa5bfx15[_0x34d4[29]](404)[_0x34d4[28]]();return null};return _0xa5bfx18}}function handleError(_0xa5bfx15,_0xa5bfx16,_0xa5bfx17){_0xa5bfx16= _0xa5bfx16|| 500;return function(_0xa5bfx27){logger[_0x34d4[50]](_0x34d4[22],_0xa5bfx17,_0xa5bfx16,JSON[_0x34d4[31]](_0xa5bfx27));delete _0xa5bfx27[_0x34d4[51]];_0xa5bfx15[_0x34d4[29]](_0xa5bfx16)[_0x34d4[52]](_0xa5bfx27)}}exports[_0x34d4[53]]= function(_0xa5bfx28,_0xa5bfx15){var _0xa5bfx1b={},_0xa5bfx29={};_0xa5bfx29[_0x34d4[54]]= _[_0x34d4[57]](db[_0x34d4[56]][_0x34d4[55]]);_0xa5bfx29[_0x34d4[58]]= _[_0x34d4[57]](_0xa5bfx28[_0x34d4[58]]);_0xa5bfx29[_0x34d4[59]]= _[_0x34d4[60]](_0xa5bfx29[_0x34d4[54]],_0xa5bfx29[_0x34d4[58]]);_0xa5bfx1b[_0x34d4[61]]= _[_0x34d4[60]](_0xa5bfx29[_0x34d4[54]],qs[_0x34d4[62]](_0xa5bfx28[_0x34d4[58]][_0x34d4[62]]));_0xa5bfx1b[_0x34d4[61]]= (_0xa5bfx1b[_0x34d4[61]][_0x34d4[63]])?_0xa5bfx1b[_0x34d4[61]]:_0xa5bfx29[_0x34d4[54]];if(!_0xa5bfx28[_0x34d4[58]][_0x34d4[65]](_0x34d4[64])){_0xa5bfx1b[_0x34d4[35]]= qs[_0x34d4[35]](_0xa5bfx28[_0x34d4[58]][_0x34d4[35]]);_0xa5bfx1b[_0x34d4[34]]= qs[_0x34d4[34]](_0xa5bfx28[_0x34d4[58]][_0x34d4[34]])};_0xa5bfx1b[_0x34d4[66]]= qs[_0x34d4[67]](_0xa5bfx28[_0x34d4[58]][_0x34d4[67]]);_0xa5bfx1b[_0x34d4[68]]= qs[_0x34d4[59]](_[_0x34d4[69]](_0xa5bfx28[_0x34d4[58]],_0xa5bfx29[_0x34d4[59]]));if(_0xa5bfx28[_0x34d4[58]][_0x34d4[70]]){_0xa5bfx1b[_0x34d4[68]]= _[_0x34d4[73]](_0xa5bfx1b[_0x34d4[68]],{$or:_[_0x34d4[72]](_0xa5bfx1b[_0x34d4[61]],function(_0xa5bfx2a){var _0xa5bfx2b={};_0xa5bfx2b[_0xa5bfx2a]= {$like:_0x34d4[71]+ _0xa5bfx28[_0x34d4[58]][_0x34d4[70]]+ _0x34d4[71]};return _0xa5bfx2b})})};_0xa5bfx1b= _[_0x34d4[73]]({},_0xa5bfx1b,_0xa5bfx28[_0x34d4[74]]);return db[_0x34d4[56]][_0x34d4[76]](_0xa5bfx1b)[_0x34d4[45]](respondWithFilteredResult(_0xa5bfx15,_0xa5bfx1b,_0x34d4[53]))[_0x34d4[75]](handleError(_0xa5bfx15,null,_0x34d4[53]))};exports[_0x34d4[77]]= function(_0xa5bfx28,_0xa5bfx15){var _0xa5bfx1b={raw:true,where:{id:_0xa5bfx28[_0x34d4[79]][_0x34d4[78]]}},_0xa5bfx29={};_0xa5bfx29[_0x34d4[54]]= _[_0x34d4[57]](db[_0x34d4[56]][_0x34d4[55]]);_0xa5bfx29[_0x34d4[58]]= _[_0x34d4[57]](_0xa5bfx28[_0x34d4[58]]);_0xa5bfx29[_0x34d4[59]]= _[_0x34d4[60]](_0xa5bfx29[_0x34d4[54]],_0xa5bfx29[_0x34d4[58]]);_0xa5bfx1b[_0x34d4[61]]= _[_0x34d4[60]](_0xa5bfx29[_0x34d4[54]],qs[_0x34d4[62]](_0xa5bfx28[_0x34d4[58]][_0x34d4[62]]));_0xa5bfx1b[_0x34d4[61]]= (_0xa5bfx1b[_0x34d4[61]][_0x34d4[63]])?_0xa5bfx1b[_0x34d4[61]]:_0xa5bfx29[_0x34d4[54]];_0xa5bfx1b= _[_0x34d4[73]]({},_0xa5bfx1b,_0xa5bfx28[_0x34d4[74]]);return db[_0x34d4[56]][_0x34d4[80]](_0xa5bfx1b)[_0x34d4[45]](handleEntityNotFound(_0xa5bfx15,null,_0x34d4[77]))[_0x34d4[45]](respondWithResult(_0xa5bfx15,null,_0x34d4[77]))[_0x34d4[75]](handleError(_0xa5bfx15,null,_0x34d4[77]))};exports[_0x34d4[81]]= function(_0xa5bfx28,_0xa5bfx15){return db[_0x34d4[56]][_0x34d4[81]](_0xa5bfx28[_0x34d4[82]],{})[_0x34d4[45]](respondWithResult(_0xa5bfx15,201,_0x34d4[81]))[_0x34d4[75]](handleError(_0xa5bfx15,null,_0x34d4[81]))};exports[_0x34d4[46]]= function(_0xa5bfx28,_0xa5bfx15){if(_0xa5bfx28[_0x34d4[82]][_0x34d4[78]]){delete _0xa5bfx28[_0x34d4[82]][_0x34d4[78]]};return db[_0x34d4[56]][_0x34d4[80]]({where:{id:_0xa5bfx28[_0x34d4[79]][_0x34d4[78]]}})[_0x34d4[45]](handleEntityNotFound(_0xa5bfx15,null,_0x34d4[46]))[_0x34d4[45]](saveUpdates(_0xa5bfx28[_0x34d4[82]],null,_0x34d4[46]))[_0x34d4[45]](respondWithResult(_0xa5bfx15,null,_0x34d4[46]))[_0x34d4[75]](handleError(_0xa5bfx15,null,_0x34d4[46]))};exports[_0x34d4[48]]= function(_0xa5bfx28,_0xa5bfx15){return db[_0x34d4[56]][_0x34d4[80]]({where:{id:_0xa5bfx28[_0x34d4[79]][_0x34d4[78]]}})[_0x34d4[45]](handleEntityNotFound(_0xa5bfx15,null,_0x34d4[48]))[_0x34d4[45]](removeEntity(_0xa5bfx15,null,_0x34d4[48]))[_0x34d4[75]](handleError(_0xa5bfx15,null,_0x34d4[48]))};exports[_0x34d4[83]]= function(_0xa5bfx28,_0xa5bfx15,_0xa5bfx2c){return db[_0x34d4[56]][_0x34d4[86]]({where:{id:_0xa5bfx28[_0x34d4[79]][_0x34d4[78]]}})[_0x34d4[45]](handleEntityNotFound(_0xa5bfx15,null,_0x34d4[83]))[_0x34d4[45]](function(_0xa5bfx2d){var _0xa5bfx1c;var _0xa5bfx1b={},_0xa5bfx29={};_0xa5bfx29[_0x34d4[54]]= _[_0x34d4[57]](db[_0x34d4[84]][_0x34d4[55]]);_0xa5bfx29[_0x34d4[58]]= _[_0x34d4[57]](_0xa5bfx28[_0x34d4[58]]);_0xa5bfx29[_0x34d4[59]]= _[_0x34d4[60]](_0xa5bfx29[_0x34d4[54]],_0xa5bfx29[_0x34d4[58]]);_0xa5bfx1b[_0x34d4[61]]= _[_0x34d4[60]](_0xa5bfx29[_0x34d4[54]],qs[_0x34d4[62]](_0xa5bfx28[_0x34d4[58]][_0x34d4[62]]));_0xa5bfx1b[_0x34d4[61]]= (_0xa5bfx1b[_0x34d4[61]][_0x34d4[63]])?_0xa5bfx1b[_0x34d4[61]]:_0xa5bfx29[_0x34d4[54]];if(!_0xa5bfx28[_0x34d4[58]][_0x34d4[65]](_0x34d4[64])){_0xa5bfx1b[_0x34d4[35]]= qs[_0x34d4[35]](_0xa5bfx28[_0x34d4[58]][_0x34d4[35]]);_0xa5bfx1b[_0x34d4[34]]= qs[_0x34d4[34]](_0xa5bfx28[_0x34d4[58]][_0x34d4[34]])};_0xa5bfx1b[_0x34d4[66]]= qs[_0x34d4[67]](_0xa5bfx28[_0x34d4[58]][_0x34d4[67]]);_0xa5bfx1b[_0x34d4[68]]= qs[_0x34d4[59]](_[_0x34d4[69]](_0xa5bfx28[_0x34d4[58]],_0xa5bfx29[_0x34d4[59]]));if(_0xa5bfx28[_0x34d4[58]][_0x34d4[70]]){_0xa5bfx1b[_0x34d4[68]]= _[_0x34d4[73]](_0xa5bfx1b[_0x34d4[68]],{$or:_[_0x34d4[72]](_0xa5bfx1b[_0x34d4[61]],function(_0xa5bfx2a){var _0xa5bfx2b={};_0xa5bfx2b[_0xa5bfx2a]= {$like:_0x34d4[71]+ _0xa5bfx28[_0x34d4[58]][_0x34d4[70]]+ _0x34d4[71]};return _0xa5bfx2b})})};_0xa5bfx1b[_0x34d4[68]]= _[_0x34d4[73]](_0xa5bfx1b[_0x34d4[68]],{mailboxuser:_0xa5bfx2d[_0x34d4[85]]});_0xa5bfx1b= _[_0x34d4[73]]({},_0xa5bfx1b,_0xa5bfx28[_0x34d4[74]]);return db[_0x34d4[84]][_0x34d4[76]](_0xa5bfx1b)[_0x34d4[45]](respondWithFilteredResult(_0xa5bfx15,_0xa5bfx1b,_0x34d4[83]))})[_0x34d4[75]](handleError(_0xa5bfx15,null,_0x34d4[83]))}
\ No newline at end of file
index 7ec83f9..5d89827 100644 (file)
@@ -1 +1 @@
-var _0x906d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x66\x69\x6E\x65"];_0x906d[0];var _=require(_0x906d[1]);var util=require(_0x906d[2]);var logger=require(_0x906d[4])(_0x906d[3]);var attributes=require(_0x906d[5]);module[_0x906d[6]]= function(_0x33cax5,_0x33cax6){return _0x33cax5[_0x906d[12]](_0x906d[7],attributes,{tableName:_0x906d[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x906d[9],"\x66\x69\x65\x6C\x64\x73":[_0x906d[10],_0x906d[11]]}],timestamps:true})}
\ No newline at end of file
+var _0x5287=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x66\x69\x6E\x65"];_0x5287[0];var _=require(_0x5287[1]);var util=require(_0x5287[2]);var logger=require(_0x5287[4])(_0x5287[3]);var attributes=require(_0x5287[5]);module[_0x5287[6]]= function(_0xac2cx5,_0xac2cx6){return _0xac2cx5[_0x5287[12]](_0x5287[7],attributes,{tableName:_0x5287[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x5287[9],"\x66\x69\x65\x6C\x64\x73":[_0x5287[10],_0x5287[11]]}],timestamps:true})}
\ No newline at end of file
index 5fdca11..1f3bedc 100644 (file)
@@ -1 +1 @@
-var _0x2fe9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2fe9[0];var _=require(_0x2fe9[1]);var util=require(_0x2fe9[2]);var moment=require(_0x2fe9[3]);var BPromise=require(_0x2fe9[4]);var db=require(_0x2fe9[6])[_0x2fe9[5]];var utils=require(_0x2fe9[7]);var logger=require(_0x2fe9[9])(_0x2fe9[8]);var jayson=require(_0x2fe9[10]);var client=jayson[_0x2fe9[12]][_0x2fe9[11]]({port:9002});function respondWithRpcPromise(_0x581exb,_0x581exc,_0x581exd){return  new BPromise(function(_0x581exe,_0x581exf){return client[_0x2fe9[25]](_0x581exb,_0x581exd)[_0x2fe9[24]](function(_0x581ex11){logger[_0x2fe9[17]](_0x2fe9[13],_0x581exc,_0x2fe9[16]);logger[_0x2fe9[20]](_0x2fe9[18],_0x581exc,_0x2fe9[16],JSON[_0x2fe9[19]](_0x581ex11));if(_0x581ex11[_0x2fe9[14]]){if(_0x581ex11[_0x2fe9[14]][_0x2fe9[21]]=== 500){logger[_0x2fe9[14]](_0x2fe9[13],_0x581exc,_0x581ex11[_0x2fe9[14]][_0x2fe9[22]]);return _0x581exf(_0x581ex11[_0x2fe9[14]][_0x2fe9[22]])};logger[_0x2fe9[14]](_0x2fe9[13],_0x581exc,_0x581ex11[_0x2fe9[14]][_0x2fe9[22]]);return _0x581exe(_0x581ex11[_0x2fe9[14]][_0x2fe9[22]])}else {logger[_0x2fe9[17]](_0x2fe9[13],_0x581exc,_0x2fe9[16]);_0x581exe(_0x581ex11[_0x2fe9[23]][_0x2fe9[22]])}})[_0x2fe9[15]](function(_0x581ex10){logger[_0x2fe9[14]](_0x2fe9[13],_0x581exc,_0x581ex10);_0x581exf(_0x581ex10)})})}
\ No newline at end of file
+var _0x1640=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1640[0];var _=require(_0x1640[1]);var util=require(_0x1640[2]);var moment=require(_0x1640[3]);var BPromise=require(_0x1640[4]);var db=require(_0x1640[6])[_0x1640[5]];var utils=require(_0x1640[7]);var logger=require(_0x1640[9])(_0x1640[8]);var jayson=require(_0x1640[10]);var client=jayson[_0x1640[12]][_0x1640[11]]({port:9002});function respondWithRpcPromise(_0xe2c7xb,_0xe2c7xc,_0xe2c7xd){return  new BPromise(function(_0xe2c7xe,_0xe2c7xf){return client[_0x1640[25]](_0xe2c7xb,_0xe2c7xd)[_0x1640[24]](function(_0xe2c7x11){logger[_0x1640[17]](_0x1640[13],_0xe2c7xc,_0x1640[16]);logger[_0x1640[20]](_0x1640[18],_0xe2c7xc,_0x1640[16],JSON[_0x1640[19]](_0xe2c7x11));if(_0xe2c7x11[_0x1640[14]]){if(_0xe2c7x11[_0x1640[14]][_0x1640[21]]=== 500){logger[_0x1640[14]](_0x1640[13],_0xe2c7xc,_0xe2c7x11[_0x1640[14]][_0x1640[22]]);return _0xe2c7xf(_0xe2c7x11[_0x1640[14]][_0x1640[22]])};logger[_0x1640[14]](_0x1640[13],_0xe2c7xc,_0xe2c7x11[_0x1640[14]][_0x1640[22]]);return _0xe2c7xe(_0xe2c7x11[_0x1640[14]][_0x1640[22]])}else {logger[_0x1640[17]](_0x1640[13],_0xe2c7xc,_0x1640[16]);_0xe2c7xe(_0xe2c7x11[_0x1640[23]][_0x1640[22]])}})[_0x1640[15]](function(_0xe2c7x10){logger[_0x1640[14]](_0x1640[13],_0xe2c7xc,_0xe2c7x10);_0xe2c7xf(_0xe2c7x10)})})}
\ No newline at end of file
index b9429af..59833d1 100644 (file)
@@ -1 +1 @@
-var _0x59e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x59e2[0];var multer=require(_0x59e2[1]);var util=require(_0x59e2[2]);var path=require(_0x59e2[3]);var express=require(_0x59e2[4]);var router=express.Router();var auth=require(_0x59e2[5]);var config=require(_0x59e2[6]);var controller=require(_0x59e2[7]);router[_0x59e2[11]](_0x59e2[8],auth[_0x59e2[9]](),controller[_0x59e2[10]]);router[_0x59e2[11]](_0x59e2[12],auth[_0x59e2[9]](),controller[_0x59e2[13]]);router[_0x59e2[11]](_0x59e2[14],controller[_0x59e2[15]]);router[_0x59e2[17]](_0x59e2[8],auth[_0x59e2[9]](),controller[_0x59e2[16]]);router[_0x59e2[19]](_0x59e2[12],auth[_0x59e2[9]](),controller[_0x59e2[18]]);router[_0x59e2[21]](_0x59e2[12],auth[_0x59e2[9]](),controller[_0x59e2[20]]);module[_0x59e2[22]]= router
\ No newline at end of file
+var _0x130f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x130f[0];var multer=require(_0x130f[1]);var util=require(_0x130f[2]);var path=require(_0x130f[3]);var express=require(_0x130f[4]);var router=express.Router();var auth=require(_0x130f[5]);var config=require(_0x130f[6]);var controller=require(_0x130f[7]);router[_0x130f[11]](_0x130f[8],auth[_0x130f[9]](),controller[_0x130f[10]]);router[_0x130f[11]](_0x130f[12],auth[_0x130f[9]](),controller[_0x130f[13]]);router[_0x130f[11]](_0x130f[14],controller[_0x130f[15]]);router[_0x130f[17]](_0x130f[8],auth[_0x130f[9]](),controller[_0x130f[16]]);router[_0x130f[19]](_0x130f[12],auth[_0x130f[9]](),controller[_0x130f[18]]);router[_0x130f[21]](_0x130f[12],auth[_0x130f[9]](),controller[_0x130f[20]]);module[_0x130f[22]]= router
\ No newline at end of file
index a3a4dad..ce229b5 100644 (file)
@@ -1 +1 @@
-var _0x2236=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x69\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","","\x6C\x6F\x6E\x67","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50"];_0x2236[0];var Sequelize=require(_0x2236[1]);module[_0x2236[2]]= {name:{type:Sequelize[_0x2236[3]],get:function(_0x614cx2){return this[_0x2236[5]](_0x2236[4])}},msgnum:{type:Sequelize.INTEGER(11),defaultValue:0,allowNull:false},dir:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},context:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},macrocontext:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},callerid:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},origtime:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},duration:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},mailboxuser:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},mailboxcontext:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},recording:{type:Sequelize.BLOB(_0x2236[8]),defaultValue:null},flag:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},msg_id:{type:Sequelize[_0x2236[6]],defaultValue:_0x2236[7]},stamp:{type:_0x2236[9],allowNull:false}}
\ No newline at end of file
+var _0x7a0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x69\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","","\x6C\x6F\x6E\x67","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50"];_0x7a0b[0];var Sequelize=require(_0x7a0b[1]);module[_0x7a0b[2]]= {name:{type:Sequelize[_0x7a0b[3]],get:function(_0xf1ecx2){return this[_0x7a0b[5]](_0x7a0b[4])}},msgnum:{type:Sequelize.INTEGER(11),defaultValue:0,allowNull:false},dir:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},context:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},macrocontext:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},callerid:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},origtime:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},duration:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},mailboxuser:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},mailboxcontext:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},recording:{type:Sequelize.BLOB(_0x7a0b[8]),defaultValue:null},flag:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},msg_id:{type:Sequelize[_0x7a0b[6]],defaultValue:_0x7a0b[7]},stamp:{type:_0x7a0b[9],allowNull:false}}
\ No newline at end of file
index 9b434f0..bcd16eb 100644 (file)
@@ -1 +1 @@
-var _0x7d04=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x75\x64\x69\x6F\x2F\x77\x61\x76"];_0x7d04[0];var jsonpatch=require(_0x7d04[1]);var rp=require(_0x7d04[2]);var moment=require(_0x7d04[3]);var BPromise=require(_0x7d04[4]);var util=require(_0x7d04[5]);var path=require(_0x7d04[6]);var sox=require(_0x7d04[7]);var ejs=require(_0x7d04[8]);var fs=require(_0x7d04[9]);var _=require(_0x7d04[10]);var squel=require(_0x7d04[11]);var crypto=require(_0x7d04[12]);var jsforce=require(_0x7d04[13]);var toCsv=require(_0x7d04[14]);var qs=require(_0x7d04[15]);var logger=require(_0x7d04[17])(_0x7d04[16]);var utils=require(_0x7d04[18]);var config=require(_0x7d04[19]);var db=require(_0x7d04[21])[_0x7d04[20]];function respondWithStatusCode(_0x6d4ex15,_0x6d4ex16,_0x6d4ex17){_0x6d4ex16= _0x6d4ex16|| 204;return function(_0x6d4ex18){if(_0x6d4ex18){logger[_0x7d04[24]](_0x7d04[22],_0x6d4ex17,_0x6d4ex16,_0x7d04[23]);logger[_0x7d04[26]](_0x7d04[25],_0x6d4ex17,_0x6d4ex16,_0x7d04[23]);return _0x6d4ex15[_0x7d04[27]](_0x6d4ex16)};return _0x6d4ex15[_0x7d04[29]](304)[_0x7d04[28]]()}}function respondWithResult(_0x6d4ex15,_0x6d4ex16,_0x6d4ex17){_0x6d4ex16= _0x6d4ex16|| 200;return function(_0x6d4ex18){if(_0x6d4ex18){logger[_0x7d04[24]](_0x7d04[22],_0x6d4ex17,_0x6d4ex16,_0x7d04[30]);logger[_0x7d04[26]](_0x7d04[25],_0x6d4ex17,_0x6d4ex16,_0x7d04[30],JSON[_0x7d04[31]](_0x6d4ex18));return _0x6d4ex15[_0x7d04[29]](_0x6d4ex16)[_0x7d04[32]](_0x6d4ex18)};return _0x6d4ex15[_0x7d04[29]](304)[_0x7d04[28]]()}}function respondWithFilteredResult(_0x6d4ex15,_0x6d4ex1b,_0x6d4ex17){return function(_0x6d4ex18){if(_0x6d4ex18){var _0x6d4ex1c=_0x6d4ex18[_0x7d04[33]],_0x6d4ex1d=_0x6d4ex1b[_0x7d04[34]],_0x6d4ex1e=_0x6d4ex1b[_0x7d04[34]]+ _0x6d4ex1b[_0x7d04[35]],_0x6d4ex16;if(_0x6d4ex1e>= _0x6d4ex1c){_0x6d4ex1e= _0x6d4ex1c;_0x6d4ex16= 200}else {_0x6d4ex16= 206};_0x6d4ex15[_0x7d04[29]](_0x6d4ex16);logger[_0x7d04[24]](_0x7d04[22],_0x6d4ex17,_0x6d4ex16,_0x7d04[36]);logger[_0x7d04[26]](_0x7d04[25],_0x6d4ex17,_0x6d4ex16,_0x7d04[30],JSON[_0x7d04[31]](_0x6d4ex18));return _0x6d4ex15[_0x7d04[40]](_0x7d04[37],_0x6d4ex1d+ _0x7d04[38]+ _0x6d4ex1e+ _0x7d04[39]+ _0x6d4ex1c)[_0x7d04[32]](_0x6d4ex18)};return null}}function patchUpdates(_0x6d4ex20){return function(_0x6d4ex18){try{jsonpatch[_0x7d04[41]](_0x6d4ex18,_0x6d4ex20,true)}catch(err){return BPromise[_0x7d04[42]](err)};return _0x6d4ex18[_0x7d04[43]]()}}function saveUpdates(_0x6d4ex22,_0x6d4ex16,_0x6d4ex17){return function(_0x6d4ex18){if(_0x6d4ex18){return _0x6d4ex18[_0x7d04[46]](_0x6d4ex22)[_0x7d04[45]](function(_0x6d4ex23){logger[_0x7d04[24]](_0x7d04[22],_0x6d4ex17,_0x6d4ex16,_0x7d04[44]);logger[_0x7d04[26]](_0x7d04[25],_0x6d4ex17,_0x6d4ex16,_0x7d04[44],JSON[_0x7d04[31]](_0x6d4ex18));return _0x6d4ex23})};return null}}function removeEntity(_0x6d4ex15,_0x6d4ex16,_0x6d4ex17){return function(_0x6d4ex18){if(_0x6d4ex18){return _0x6d4ex18[_0x7d04[48]]()[_0x7d04[45]](function(){logger[_0x7d04[24]](_0x7d04[22],_0x6d4ex17,_0x6d4ex16,_0x7d04[47]);logger[_0x7d04[26]](_0x7d04[25],_0x6d4ex17,_0x6d4ex16,_0x7d04[47],JSON[_0x7d04[31]](_0x6d4ex18));_0x6d4ex15[_0x7d04[29]](204)[_0x7d04[28]]()})}}}function handleEntityNotFound(_0x6d4ex15,_0x6d4ex16,_0x6d4ex17){return function(_0x6d4ex18){if(!_0x6d4ex18){logger[_0x7d04[50]](_0x7d04[22],_0x6d4ex17,404,_0x7d04[49]);_0x6d4ex15[_0x7d04[29]](404)[_0x7d04[28]]();return null};return _0x6d4ex18}}function handleError(_0x6d4ex15,_0x6d4ex16,_0x6d4ex17){_0x6d4ex16= _0x6d4ex16|| 500;return function(_0x6d4ex27){logger[_0x7d04[50]](_0x7d04[22],_0x6d4ex17,_0x6d4ex16,JSON[_0x7d04[31]](_0x6d4ex27));delete _0x6d4ex27[_0x7d04[51]];_0x6d4ex15[_0x7d04[29]](_0x6d4ex16)[_0x7d04[52]](_0x6d4ex27)}}exports[_0x7d04[53]]= function(_0x6d4ex28,_0x6d4ex15){var _0x6d4ex1b={},_0x6d4ex29={};_0x6d4ex29[_0x7d04[54]]= _[_0x7d04[57]](db[_0x7d04[56]][_0x7d04[55]]);_0x6d4ex29[_0x7d04[58]]= _[_0x7d04[57]](_0x6d4ex28[_0x7d04[58]]);_0x6d4ex29[_0x7d04[59]]= _[_0x7d04[60]](_0x6d4ex29[_0x7d04[54]],_0x6d4ex29[_0x7d04[58]]);_0x6d4ex1b[_0x7d04[61]]= _[_0x7d04[60]](_0x6d4ex29[_0x7d04[54]],qs[_0x7d04[62]](_0x6d4ex28[_0x7d04[58]][_0x7d04[62]]));_0x6d4ex1b[_0x7d04[61]]= (_0x6d4ex1b[_0x7d04[61]][_0x7d04[63]])?_0x6d4ex1b[_0x7d04[61]]:_0x6d4ex29[_0x7d04[54]];if(!_0x6d4ex28[_0x7d04[58]][_0x7d04[65]](_0x7d04[64])){_0x6d4ex1b[_0x7d04[35]]= qs[_0x7d04[35]](_0x6d4ex28[_0x7d04[58]][_0x7d04[35]]);_0x6d4ex1b[_0x7d04[34]]= qs[_0x7d04[34]](_0x6d4ex28[_0x7d04[58]][_0x7d04[34]])};_0x6d4ex1b[_0x7d04[66]]= qs[_0x7d04[67]](_0x6d4ex28[_0x7d04[58]][_0x7d04[67]]);_0x6d4ex1b[_0x7d04[68]]= qs[_0x7d04[59]](_[_0x7d04[69]](_0x6d4ex28[_0x7d04[58]],_0x6d4ex29[_0x7d04[59]]));if(_0x6d4ex28[_0x7d04[58]][_0x7d04[70]]){_0x6d4ex1b[_0x7d04[68]]= _[_0x7d04[73]](_0x6d4ex1b[_0x7d04[68]],{$or:_[_0x7d04[72]](_0x6d4ex1b[_0x7d04[61]],function(_0x6d4ex2a){var _0x6d4ex2b={};_0x6d4ex2b[_0x6d4ex2a]= {$like:_0x7d04[71]+ _0x6d4ex28[_0x7d04[58]][_0x7d04[70]]+ _0x7d04[71]};return _0x6d4ex2b})})};_0x6d4ex1b= _[_0x7d04[73]]({},_0x6d4ex1b,_0x6d4ex28[_0x7d04[74]]);return db[_0x7d04[56]][_0x7d04[76]](_0x6d4ex1b)[_0x7d04[45]](respondWithFilteredResult(_0x6d4ex15,_0x6d4ex1b,_0x7d04[53]))[_0x7d04[75]](handleError(_0x6d4ex15,null,_0x7d04[53]))};exports[_0x7d04[77]]= function(_0x6d4ex28,_0x6d4ex15){var _0x6d4ex1b={raw:true,where:{id:_0x6d4ex28[_0x7d04[79]][_0x7d04[78]]}},_0x6d4ex29={};_0x6d4ex29[_0x7d04[54]]= _[_0x7d04[57]](db[_0x7d04[56]][_0x7d04[55]]);_0x6d4ex29[_0x7d04[58]]= _[_0x7d04[57]](_0x6d4ex28[_0x7d04[58]]);_0x6d4ex29[_0x7d04[59]]= _[_0x7d04[60]](_0x6d4ex29[_0x7d04[54]],_0x6d4ex29[_0x7d04[58]]);_0x6d4ex1b[_0x7d04[61]]= _[_0x7d04[60]](_0x6d4ex29[_0x7d04[54]],qs[_0x7d04[62]](_0x6d4ex28[_0x7d04[58]][_0x7d04[62]]));_0x6d4ex1b[_0x7d04[61]]= (_0x6d4ex1b[_0x7d04[61]][_0x7d04[63]])?_0x6d4ex1b[_0x7d04[61]]:_0x6d4ex29[_0x7d04[54]];_0x6d4ex1b= _[_0x7d04[73]]({},_0x6d4ex1b,_0x6d4ex28[_0x7d04[74]]);return db[_0x7d04[56]][_0x7d04[80]](_0x6d4ex1b)[_0x7d04[45]](handleEntityNotFound(_0x6d4ex15,null,_0x7d04[77]))[_0x7d04[45]](respondWithResult(_0x6d4ex15,null,_0x7d04[77]))[_0x7d04[75]](handleError(_0x6d4ex15,null,_0x7d04[77]))};exports[_0x7d04[81]]= function(_0x6d4ex28,_0x6d4ex15){return db[_0x7d04[56]][_0x7d04[81]](_0x6d4ex28[_0x7d04[82]],{})[_0x7d04[45]](respondWithResult(_0x6d4ex15,201,_0x7d04[81]))[_0x7d04[75]](handleError(_0x6d4ex15,null,_0x7d04[81]))};exports[_0x7d04[46]]= function(_0x6d4ex28,_0x6d4ex15){if(_0x6d4ex28[_0x7d04[82]][_0x7d04[78]]){delete _0x6d4ex28[_0x7d04[82]][_0x7d04[78]]};return db[_0x7d04[56]][_0x7d04[80]]({where:{id:_0x6d4ex28[_0x7d04[79]][_0x7d04[78]]}})[_0x7d04[45]](handleEntityNotFound(_0x6d4ex15,null,_0x7d04[46]))[_0x7d04[45]](saveUpdates(_0x6d4ex28[_0x7d04[82]],null,_0x7d04[46]))[_0x7d04[45]](respondWithResult(_0x6d4ex15,null,_0x7d04[46]))[_0x7d04[75]](handleError(_0x6d4ex15,null,_0x7d04[46]))};exports[_0x7d04[48]]= function(_0x6d4ex28,_0x6d4ex15){return db[_0x7d04[56]][_0x7d04[80]]({where:{id:_0x6d4ex28[_0x7d04[79]][_0x7d04[78]]}})[_0x7d04[45]](handleEntityNotFound(_0x6d4ex15,null,_0x7d04[48]))[_0x7d04[45]](removeEntity(_0x6d4ex15,null,_0x7d04[48]))[_0x7d04[75]](handleError(_0x6d4ex15,null,_0x7d04[48]))};exports[_0x7d04[83]]= function(_0x6d4ex28,_0x6d4ex15,_0x6d4ex2c){return db[_0x7d04[56]][_0x7d04[80]]({where:{id:_0x6d4ex28[_0x7d04[79]][_0x7d04[78]]},attributes:[_0x7d04[78],_0x7d04[86]]})[_0x7d04[45]](handleEntityNotFound(_0x6d4ex15,null,_0x7d04[83]))[_0x7d04[45]](function(_0x6d4ex18){if(_0x6d4ex18){logger[_0x7d04[24]](_0x7d04[85],_0x7d04[83],_0x7d04[30]);logger[_0x7d04[26]](_0x7d04[22],_0x7d04[83],_0x7d04[30],JSON[_0x7d04[31]](_0x6d4ex18));if(!_0x6d4ex18[_0x7d04[86]]){throw  new db[_0x7d04[88]].ValidationError(_0x7d04[87])};_0x6d4ex15[_0x7d04[40]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x7d04[89]});return _0x6d4ex15[_0x7d04[52]]( new Buffer(_0x6d4ex18[_0x7d04[86]]))}})[_0x7d04[75]](handleError(_0x6d4ex15,null,_0x7d04[84]))}
\ No newline at end of file
+var _0xb1f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x75\x64\x69\x6F\x2F\x77\x61\x76"];_0xb1f5[0];var jsonpatch=require(_0xb1f5[1]);var rp=require(_0xb1f5[2]);var moment=require(_0xb1f5[3]);var BPromise=require(_0xb1f5[4]);var util=require(_0xb1f5[5]);var path=require(_0xb1f5[6]);var sox=require(_0xb1f5[7]);var ejs=require(_0xb1f5[8]);var fs=require(_0xb1f5[9]);var _=require(_0xb1f5[10]);var squel=require(_0xb1f5[11]);var crypto=require(_0xb1f5[12]);var jsforce=require(_0xb1f5[13]);var toCsv=require(_0xb1f5[14]);var qs=require(_0xb1f5[15]);var logger=require(_0xb1f5[17])(_0xb1f5[16]);var utils=require(_0xb1f5[18]);var config=require(_0xb1f5[19]);var db=require(_0xb1f5[21])[_0xb1f5[20]];function respondWithStatusCode(_0x8e5dx15,_0x8e5dx16,_0x8e5dx17){_0x8e5dx16= _0x8e5dx16|| 204;return function(_0x8e5dx18){if(_0x8e5dx18){logger[_0xb1f5[24]](_0xb1f5[22],_0x8e5dx17,_0x8e5dx16,_0xb1f5[23]);logger[_0xb1f5[26]](_0xb1f5[25],_0x8e5dx17,_0x8e5dx16,_0xb1f5[23]);return _0x8e5dx15[_0xb1f5[27]](_0x8e5dx16)};return _0x8e5dx15[_0xb1f5[29]](304)[_0xb1f5[28]]()}}function respondWithResult(_0x8e5dx15,_0x8e5dx16,_0x8e5dx17){_0x8e5dx16= _0x8e5dx16|| 200;return function(_0x8e5dx18){if(_0x8e5dx18){logger[_0xb1f5[24]](_0xb1f5[22],_0x8e5dx17,_0x8e5dx16,_0xb1f5[30]);logger[_0xb1f5[26]](_0xb1f5[25],_0x8e5dx17,_0x8e5dx16,_0xb1f5[30],JSON[_0xb1f5[31]](_0x8e5dx18));return _0x8e5dx15[_0xb1f5[29]](_0x8e5dx16)[_0xb1f5[32]](_0x8e5dx18)};return _0x8e5dx15[_0xb1f5[29]](304)[_0xb1f5[28]]()}}function respondWithFilteredResult(_0x8e5dx15,_0x8e5dx1b,_0x8e5dx17){return function(_0x8e5dx18){if(_0x8e5dx18){var _0x8e5dx1c=_0x8e5dx18[_0xb1f5[33]],_0x8e5dx1d=_0x8e5dx1b[_0xb1f5[34]],_0x8e5dx1e=_0x8e5dx1b[_0xb1f5[34]]+ _0x8e5dx1b[_0xb1f5[35]],_0x8e5dx16;if(_0x8e5dx1e>= _0x8e5dx1c){_0x8e5dx1e= _0x8e5dx1c;_0x8e5dx16= 200}else {_0x8e5dx16= 206};_0x8e5dx15[_0xb1f5[29]](_0x8e5dx16);logger[_0xb1f5[24]](_0xb1f5[22],_0x8e5dx17,_0x8e5dx16,_0xb1f5[36]);logger[_0xb1f5[26]](_0xb1f5[25],_0x8e5dx17,_0x8e5dx16,_0xb1f5[30],JSON[_0xb1f5[31]](_0x8e5dx18));return _0x8e5dx15[_0xb1f5[40]](_0xb1f5[37],_0x8e5dx1d+ _0xb1f5[38]+ _0x8e5dx1e+ _0xb1f5[39]+ _0x8e5dx1c)[_0xb1f5[32]](_0x8e5dx18)};return null}}function patchUpdates(_0x8e5dx20){return function(_0x8e5dx18){try{jsonpatch[_0xb1f5[41]](_0x8e5dx18,_0x8e5dx20,true)}catch(err){return BPromise[_0xb1f5[42]](err)};return _0x8e5dx18[_0xb1f5[43]]()}}function saveUpdates(_0x8e5dx22,_0x8e5dx16,_0x8e5dx17){return function(_0x8e5dx18){if(_0x8e5dx18){return _0x8e5dx18[_0xb1f5[46]](_0x8e5dx22)[_0xb1f5[45]](function(_0x8e5dx23){logger[_0xb1f5[24]](_0xb1f5[22],_0x8e5dx17,_0x8e5dx16,_0xb1f5[44]);logger[_0xb1f5[26]](_0xb1f5[25],_0x8e5dx17,_0x8e5dx16,_0xb1f5[44],JSON[_0xb1f5[31]](_0x8e5dx18));return _0x8e5dx23})};return null}}function removeEntity(_0x8e5dx15,_0x8e5dx16,_0x8e5dx17){return function(_0x8e5dx18){if(_0x8e5dx18){return _0x8e5dx18[_0xb1f5[48]]()[_0xb1f5[45]](function(){logger[_0xb1f5[24]](_0xb1f5[22],_0x8e5dx17,_0x8e5dx16,_0xb1f5[47]);logger[_0xb1f5[26]](_0xb1f5[25],_0x8e5dx17,_0x8e5dx16,_0xb1f5[47],JSON[_0xb1f5[31]](_0x8e5dx18));_0x8e5dx15[_0xb1f5[29]](204)[_0xb1f5[28]]()})}}}function handleEntityNotFound(_0x8e5dx15,_0x8e5dx16,_0x8e5dx17){return function(_0x8e5dx18){if(!_0x8e5dx18){logger[_0xb1f5[50]](_0xb1f5[22],_0x8e5dx17,404,_0xb1f5[49]);_0x8e5dx15[_0xb1f5[29]](404)[_0xb1f5[28]]();return null};return _0x8e5dx18}}function handleError(_0x8e5dx15,_0x8e5dx16,_0x8e5dx17){_0x8e5dx16= _0x8e5dx16|| 500;return function(_0x8e5dx27){logger[_0xb1f5[50]](_0xb1f5[22],_0x8e5dx17,_0x8e5dx16,JSON[_0xb1f5[31]](_0x8e5dx27));delete _0x8e5dx27[_0xb1f5[51]];_0x8e5dx15[_0xb1f5[29]](_0x8e5dx16)[_0xb1f5[52]](_0x8e5dx27)}}exports[_0xb1f5[53]]= function(_0x8e5dx28,_0x8e5dx15){var _0x8e5dx1b={},_0x8e5dx29={};_0x8e5dx29[_0xb1f5[54]]= _[_0xb1f5[57]](db[_0xb1f5[56]][_0xb1f5[55]]);_0x8e5dx29[_0xb1f5[58]]= _[_0xb1f5[57]](_0x8e5dx28[_0xb1f5[58]]);_0x8e5dx29[_0xb1f5[59]]= _[_0xb1f5[60]](_0x8e5dx29[_0xb1f5[54]],_0x8e5dx29[_0xb1f5[58]]);_0x8e5dx1b[_0xb1f5[61]]= _[_0xb1f5[60]](_0x8e5dx29[_0xb1f5[54]],qs[_0xb1f5[62]](_0x8e5dx28[_0xb1f5[58]][_0xb1f5[62]]));_0x8e5dx1b[_0xb1f5[61]]= (_0x8e5dx1b[_0xb1f5[61]][_0xb1f5[63]])?_0x8e5dx1b[_0xb1f5[61]]:_0x8e5dx29[_0xb1f5[54]];if(!_0x8e5dx28[_0xb1f5[58]][_0xb1f5[65]](_0xb1f5[64])){_0x8e5dx1b[_0xb1f5[35]]= qs[_0xb1f5[35]](_0x8e5dx28[_0xb1f5[58]][_0xb1f5[35]]);_0x8e5dx1b[_0xb1f5[34]]= qs[_0xb1f5[34]](_0x8e5dx28[_0xb1f5[58]][_0xb1f5[34]])};_0x8e5dx1b[_0xb1f5[66]]= qs[_0xb1f5[67]](_0x8e5dx28[_0xb1f5[58]][_0xb1f5[67]]);_0x8e5dx1b[_0xb1f5[68]]= qs[_0xb1f5[59]](_[_0xb1f5[69]](_0x8e5dx28[_0xb1f5[58]],_0x8e5dx29[_0xb1f5[59]]));if(_0x8e5dx28[_0xb1f5[58]][_0xb1f5[70]]){_0x8e5dx1b[_0xb1f5[68]]= _[_0xb1f5[73]](_0x8e5dx1b[_0xb1f5[68]],{$or:_[_0xb1f5[72]](_0x8e5dx1b[_0xb1f5[61]],function(_0x8e5dx2a){var _0x8e5dx2b={};_0x8e5dx2b[_0x8e5dx2a]= {$like:_0xb1f5[71]+ _0x8e5dx28[_0xb1f5[58]][_0xb1f5[70]]+ _0xb1f5[71]};return _0x8e5dx2b})})};_0x8e5dx1b= _[_0xb1f5[73]]({},_0x8e5dx1b,_0x8e5dx28[_0xb1f5[74]]);return db[_0xb1f5[56]][_0xb1f5[76]](_0x8e5dx1b)[_0xb1f5[45]](respondWithFilteredResult(_0x8e5dx15,_0x8e5dx1b,_0xb1f5[53]))[_0xb1f5[75]](handleError(_0x8e5dx15,null,_0xb1f5[53]))};exports[_0xb1f5[77]]= function(_0x8e5dx28,_0x8e5dx15){var _0x8e5dx1b={raw:true,where:{id:_0x8e5dx28[_0xb1f5[79]][_0xb1f5[78]]}},_0x8e5dx29={};_0x8e5dx29[_0xb1f5[54]]= _[_0xb1f5[57]](db[_0xb1f5[56]][_0xb1f5[55]]);_0x8e5dx29[_0xb1f5[58]]= _[_0xb1f5[57]](_0x8e5dx28[_0xb1f5[58]]);_0x8e5dx29[_0xb1f5[59]]= _[_0xb1f5[60]](_0x8e5dx29[_0xb1f5[54]],_0x8e5dx29[_0xb1f5[58]]);_0x8e5dx1b[_0xb1f5[61]]= _[_0xb1f5[60]](_0x8e5dx29[_0xb1f5[54]],qs[_0xb1f5[62]](_0x8e5dx28[_0xb1f5[58]][_0xb1f5[62]]));_0x8e5dx1b[_0xb1f5[61]]= (_0x8e5dx1b[_0xb1f5[61]][_0xb1f5[63]])?_0x8e5dx1b[_0xb1f5[61]]:_0x8e5dx29[_0xb1f5[54]];_0x8e5dx1b= _[_0xb1f5[73]]({},_0x8e5dx1b,_0x8e5dx28[_0xb1f5[74]]);return db[_0xb1f5[56]][_0xb1f5[80]](_0x8e5dx1b)[_0xb1f5[45]](handleEntityNotFound(_0x8e5dx15,null,_0xb1f5[77]))[_0xb1f5[45]](respondWithResult(_0x8e5dx15,null,_0xb1f5[77]))[_0xb1f5[75]](handleError(_0x8e5dx15,null,_0xb1f5[77]))};exports[_0xb1f5[81]]= function(_0x8e5dx28,_0x8e5dx15){return db[_0xb1f5[56]][_0xb1f5[81]](_0x8e5dx28[_0xb1f5[82]],{})[_0xb1f5[45]](respondWithResult(_0x8e5dx15,201,_0xb1f5[81]))[_0xb1f5[75]](handleError(_0x8e5dx15,null,_0xb1f5[81]))};exports[_0xb1f5[46]]= function(_0x8e5dx28,_0x8e5dx15){if(_0x8e5dx28[_0xb1f5[82]][_0xb1f5[78]]){delete _0x8e5dx28[_0xb1f5[82]][_0xb1f5[78]]};return db[_0xb1f5[56]][_0xb1f5[80]]({where:{id:_0x8e5dx28[_0xb1f5[79]][_0xb1f5[78]]}})[_0xb1f5[45]](handleEntityNotFound(_0x8e5dx15,null,_0xb1f5[46]))[_0xb1f5[45]](saveUpdates(_0x8e5dx28[_0xb1f5[82]],null,_0xb1f5[46]))[_0xb1f5[45]](respondWithResult(_0x8e5dx15,null,_0xb1f5[46]))[_0xb1f5[75]](handleError(_0x8e5dx15,null,_0xb1f5[46]))};exports[_0xb1f5[48]]= function(_0x8e5dx28,_0x8e5dx15){return db[_0xb1f5[56]][_0xb1f5[80]]({where:{id:_0x8e5dx28[_0xb1f5[79]][_0xb1f5[78]]}})[_0xb1f5[45]](handleEntityNotFound(_0x8e5dx15,null,_0xb1f5[48]))[_0xb1f5[45]](removeEntity(_0x8e5dx15,null,_0xb1f5[48]))[_0xb1f5[75]](handleError(_0x8e5dx15,null,_0xb1f5[48]))};exports[_0xb1f5[83]]= function(_0x8e5dx28,_0x8e5dx15,_0x8e5dx2c){return db[_0xb1f5[56]][_0xb1f5[80]]({where:{id:_0x8e5dx28[_0xb1f5[79]][_0xb1f5[78]]},attributes:[_0xb1f5[78],_0xb1f5[86]]})[_0xb1f5[45]](handleEntityNotFound(_0x8e5dx15,null,_0xb1f5[83]))[_0xb1f5[45]](function(_0x8e5dx18){if(_0x8e5dx18){logger[_0xb1f5[24]](_0xb1f5[85],_0xb1f5[83],_0xb1f5[30]);logger[_0xb1f5[26]](_0xb1f5[22],_0xb1f5[83],_0xb1f5[30],JSON[_0xb1f5[31]](_0x8e5dx18));if(!_0x8e5dx18[_0xb1f5[86]]){throw  new db[_0xb1f5[88]].ValidationError(_0xb1f5[87])};_0x8e5dx15[_0xb1f5[40]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb1f5[89]});return _0x8e5dx15[_0xb1f5[52]]( new Buffer(_0x8e5dx18[_0xb1f5[86]]))}})[_0xb1f5[75]](handleError(_0x8e5dx15,null,_0xb1f5[84]))}
\ No newline at end of file
index b59e992..f7315df 100644 (file)
@@ -1 +1 @@
-var _0x74ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x69\x72","\x64\x65\x66\x69\x6E\x65"];_0x74ea[0];var _=require(_0x74ea[1]);var util=require(_0x74ea[2]);var logger=require(_0x74ea[4])(_0x74ea[3]);var attributes=require(_0x74ea[5]);module[_0x74ea[6]]= function(_0x979dx5,_0x979dx6){return _0x979dx5[_0x74ea[10]](_0x74ea[7],attributes,{tableName:_0x74ea[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x74ea[9],"\x66\x69\x65\x6C\x64\x73":[_0x74ea[9]]}],timestamps:false})}
\ No newline at end of file
+var _0xcf62=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x69\x72","\x64\x65\x66\x69\x6E\x65"];_0xcf62[0];var _=require(_0xcf62[1]);var util=require(_0xcf62[2]);var logger=require(_0xcf62[4])(_0xcf62[3]);var attributes=require(_0xcf62[5]);module[_0xcf62[6]]= function(_0x80b3x5,_0x80b3x6){return _0x80b3x5[_0xcf62[10]](_0xcf62[7],attributes,{tableName:_0xcf62[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xcf62[9],"\x66\x69\x65\x6C\x64\x73":[_0xcf62[9]]}],timestamps:false})}
\ No newline at end of file
index 8dc8c9e..3c6b736 100644 (file)
@@ -1 +1 @@
-var _0x8e12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8e12[0];var _=require(_0x8e12[1]);var util=require(_0x8e12[2]);var moment=require(_0x8e12[3]);var BPromise=require(_0x8e12[4]);var db=require(_0x8e12[6])[_0x8e12[5]];var utils=require(_0x8e12[7]);var logger=require(_0x8e12[9])(_0x8e12[8]);var jayson=require(_0x8e12[10]);var client=jayson[_0x8e12[12]][_0x8e12[11]]({port:9002});function respondWithRpcPromise(_0x3cf3xb,_0x3cf3xc,_0x3cf3xd){return  new BPromise(function(_0x3cf3xe,_0x3cf3xf){return client[_0x8e12[25]](_0x3cf3xb,_0x3cf3xd)[_0x8e12[24]](function(_0x3cf3x11){logger[_0x8e12[17]](_0x8e12[13],_0x3cf3xc,_0x8e12[16]);logger[_0x8e12[20]](_0x8e12[18],_0x3cf3xc,_0x8e12[16],JSON[_0x8e12[19]](_0x3cf3x11));if(_0x3cf3x11[_0x8e12[14]]){if(_0x3cf3x11[_0x8e12[14]][_0x8e12[21]]=== 500){logger[_0x8e12[14]](_0x8e12[13],_0x3cf3xc,_0x3cf3x11[_0x8e12[14]][_0x8e12[22]]);return _0x3cf3xf(_0x3cf3x11[_0x8e12[14]][_0x8e12[22]])};logger[_0x8e12[14]](_0x8e12[13],_0x3cf3xc,_0x3cf3x11[_0x8e12[14]][_0x8e12[22]]);return _0x3cf3xe(_0x3cf3x11[_0x8e12[14]][_0x8e12[22]])}else {logger[_0x8e12[17]](_0x8e12[13],_0x3cf3xc,_0x8e12[16]);_0x3cf3xe(_0x3cf3x11[_0x8e12[23]][_0x8e12[22]])}})[_0x8e12[15]](function(_0x3cf3x10){logger[_0x8e12[14]](_0x8e12[13],_0x3cf3xc,_0x3cf3x10);_0x3cf3xf(_0x3cf3x10)})})}
\ No newline at end of file
+var _0xb20c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb20c[0];var _=require(_0xb20c[1]);var util=require(_0xb20c[2]);var moment=require(_0xb20c[3]);var BPromise=require(_0xb20c[4]);var db=require(_0xb20c[6])[_0xb20c[5]];var utils=require(_0xb20c[7]);var logger=require(_0xb20c[9])(_0xb20c[8]);var jayson=require(_0xb20c[10]);var client=jayson[_0xb20c[12]][_0xb20c[11]]({port:9002});function respondWithRpcPromise(_0xd017xb,_0xd017xc,_0xd017xd){return  new BPromise(function(_0xd017xe,_0xd017xf){return client[_0xb20c[25]](_0xd017xb,_0xd017xd)[_0xb20c[24]](function(_0xd017x11){logger[_0xb20c[17]](_0xb20c[13],_0xd017xc,_0xb20c[16]);logger[_0xb20c[20]](_0xb20c[18],_0xd017xc,_0xb20c[16],JSON[_0xb20c[19]](_0xd017x11));if(_0xd017x11[_0xb20c[14]]){if(_0xd017x11[_0xb20c[14]][_0xb20c[21]]=== 500){logger[_0xb20c[14]](_0xb20c[13],_0xd017xc,_0xd017x11[_0xb20c[14]][_0xb20c[22]]);return _0xd017xf(_0xd017x11[_0xb20c[14]][_0xb20c[22]])};logger[_0xb20c[14]](_0xb20c[13],_0xd017xc,_0xd017x11[_0xb20c[14]][_0xb20c[22]]);return _0xd017xe(_0xd017x11[_0xb20c[14]][_0xb20c[22]])}else {logger[_0xb20c[17]](_0xb20c[13],_0xd017xc,_0xb20c[16]);_0xd017xe(_0xd017x11[_0xb20c[23]][_0xb20c[22]])}})[_0xb20c[15]](function(_0xd017x10){logger[_0xb20c[14]](_0xb20c[13],_0xd017xc,_0xd017x10);_0xd017xf(_0xd017x10)})})}
\ No newline at end of file
index 56885d3..93b3f7a 100644 (file)
@@ -1 +1 @@
-var _0x3fd8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x53\x6F\x75\x6E\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x2F\x3A\x69\x64\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x3A\x69\x64\x32","\x72\x65\x6D\x6F\x76\x65\x53\x6F\x75\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x3fd8[0];var multer=require(_0x3fd8[1]);var util=require(_0x3fd8[2]);var path=require(_0x3fd8[3]);var express=require(_0x3fd8[4]);var router=express.Router();var auth=require(_0x3fd8[5]);var config=require(_0x3fd8[6]);var controller=require(_0x3fd8[7]);router[_0x3fd8[11]](_0x3fd8[8],auth[_0x3fd8[9]](),controller[_0x3fd8[10]]);router[_0x3fd8[11]](_0x3fd8[12],auth[_0x3fd8[9]](),controller[_0x3fd8[13]]);router[_0x3fd8[11]](_0x3fd8[14],auth[_0x3fd8[9]](),controller[_0x3fd8[15]]);router[_0x3fd8[17]](_0x3fd8[8],auth[_0x3fd8[9]](),controller[_0x3fd8[16]]);router[_0x3fd8[17]](_0x3fd8[14],auth[_0x3fd8[9]](),controller[_0x3fd8[18]]);router[_0x3fd8[20]](_0x3fd8[12],auth[_0x3fd8[9]](),controller[_0x3fd8[19]]);router[_0x3fd8[22]](_0x3fd8[12],auth[_0x3fd8[9]](),controller[_0x3fd8[21]]);router[_0x3fd8[22]](_0x3fd8[23],auth[_0x3fd8[9]](),controller[_0x3fd8[24]]);module[_0x3fd8[25]]= router
\ No newline at end of file
+var _0x87d5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x53\x6F\x75\x6E\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x2F\x3A\x69\x64\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x3A\x69\x64\x32","\x72\x65\x6D\x6F\x76\x65\x53\x6F\x75\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x87d5[0];var multer=require(_0x87d5[1]);var util=require(_0x87d5[2]);var path=require(_0x87d5[3]);var express=require(_0x87d5[4]);var router=express.Router();var auth=require(_0x87d5[5]);var config=require(_0x87d5[6]);var controller=require(_0x87d5[7]);router[_0x87d5[11]](_0x87d5[8],auth[_0x87d5[9]](),controller[_0x87d5[10]]);router[_0x87d5[11]](_0x87d5[12],auth[_0x87d5[9]](),controller[_0x87d5[13]]);router[_0x87d5[11]](_0x87d5[14],auth[_0x87d5[9]](),controller[_0x87d5[15]]);router[_0x87d5[17]](_0x87d5[8],auth[_0x87d5[9]](),controller[_0x87d5[16]]);router[_0x87d5[17]](_0x87d5[14],auth[_0x87d5[9]](),controller[_0x87d5[18]]);router[_0x87d5[20]](_0x87d5[12],auth[_0x87d5[9]](),controller[_0x87d5[19]]);router[_0x87d5[22]](_0x87d5[12],auth[_0x87d5[9]](),controller[_0x87d5[21]]);router[_0x87d5[22]](_0x87d5[23],auth[_0x87d5[9]](),controller[_0x87d5[24]]);module[_0x87d5[25]]= router
\ No newline at end of file
index 562f76a..c83d937 100644 (file)
@@ -1 +1 @@
-var _0xc1d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D","\x66\x69\x6C\x65\x73","\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33","\x6D\x70\x33","\x61\x6C\x70\x68\x61","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xc1d7[0];var Sequelize=require(_0xc1d7[1]);module[_0xc1d7[2]]= {name:{type:Sequelize[_0xc1d7[3]],allowNull:false,unique:_0xc1d7[4]},mode:{type:Sequelize.ENUM(_0xc1d7[5],_0xc1d7[6],_0xc1d7[7],_0xc1d7[8],_0xc1d7[9],_0xc1d7[10]),allowNull:true,defaultValue:_0xc1d7[6]},directory:{type:Sequelize[_0xc1d7[3]],allowNull:true},application:{type:Sequelize[_0xc1d7[3]],allowNull:true},digit:{type:Sequelize[_0xc1d7[3]],allowNull:true},sort:{type:Sequelize[_0xc1d7[3]],allowNull:true,defaultValue:_0xc1d7[11]},format:{type:Sequelize[_0xc1d7[3]],allowNull:true},stamp:{type:_0xc1d7[12]},defaultEntry:{type:Sequelize[_0xc1d7[13]],defaultValue:0}}
\ No newline at end of file
+var _0x36e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D","\x66\x69\x6C\x65\x73","\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33","\x6D\x70\x33","\x61\x6C\x70\x68\x61","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x36e7[0];var Sequelize=require(_0x36e7[1]);module[_0x36e7[2]]= {name:{type:Sequelize[_0x36e7[3]],allowNull:false,unique:_0x36e7[4]},mode:{type:Sequelize.ENUM(_0x36e7[5],_0x36e7[6],_0x36e7[7],_0x36e7[8],_0x36e7[9],_0x36e7[10]),allowNull:true,defaultValue:_0x36e7[6]},directory:{type:Sequelize[_0x36e7[3]],allowNull:true},application:{type:Sequelize[_0x36e7[3]],allowNull:true},digit:{type:Sequelize[_0x36e7[3]],allowNull:true},sort:{type:Sequelize[_0x36e7[3]],allowNull:true,defaultValue:_0x36e7[11]},format:{type:Sequelize[_0x36e7[3]],allowNull:true},stamp:{type:_0x36e7[12]},defaultEntry:{type:Sequelize[_0x36e7[13]],defaultValue:0}}
\ No newline at end of file
index 54de61c..e38eff3 100644 (file)
@@ -1 +1 @@
-var _0xcd57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x6D\x6F\x64\x65","\x66\x69\x6C\x65\x73","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68","\x6A\x6F\x69\x6E","\x30\x37\x37\x37","\x6D\x6B\x64\x69\x72\x53\x79\x6E\x63","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x65\x73\x73\x61\x67\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x72\x65\x61\x64\x64\x69\x72\x53\x79\x6E\x63","\x72\x6D\x64\x69\x72\x53\x79\x6E\x63","\x61\x64\x64\x53\x6F\x75\x6E\x64","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x25\x73\x2E\x25\x73","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x6D\x61\x74","\x73\x79\x6D\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x53\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x53\x6F\x75\x6E\x64","\x69\x64\x32","\x67\x65\x74\x53\x6F\x75\x6E\x64\x73"];_0xcd57[0];var jsonpatch=require(_0xcd57[1]);var rp=require(_0xcd57[2]);var moment=require(_0xcd57[3]);var BPromise=require(_0xcd57[4]);var util=require(_0xcd57[5]);var path=require(_0xcd57[6]);var sox=require(_0xcd57[7]);var ejs=require(_0xcd57[8]);var fs=require(_0xcd57[9]);var _=require(_0xcd57[10]);var squel=require(_0xcd57[11]);var crypto=require(_0xcd57[12]);var jsforce=require(_0xcd57[13]);var toCsv=require(_0xcd57[14]);var qs=require(_0xcd57[15]);var logger=require(_0xcd57[17])(_0xcd57[16]);var utils=require(_0xcd57[18]);var config=require(_0xcd57[19]);var db=require(_0xcd57[21])[_0xcd57[20]];function respondWithStatusCode(_0x1a04x15,_0x1a04x16,_0x1a04x17){_0x1a04x16= _0x1a04x16|| 204;return function(_0x1a04x18){if(_0x1a04x18){logger[_0xcd57[24]](_0xcd57[22],_0x1a04x17,_0x1a04x16,_0xcd57[23]);logger[_0xcd57[26]](_0xcd57[25],_0x1a04x17,_0x1a04x16,_0xcd57[23]);return _0x1a04x15[_0xcd57[27]](_0x1a04x16)};return _0x1a04x15[_0xcd57[29]](304)[_0xcd57[28]]()}}function respondWithResult(_0x1a04x15,_0x1a04x16,_0x1a04x17){_0x1a04x16= _0x1a04x16|| 200;return function(_0x1a04x18){if(_0x1a04x18){logger[_0xcd57[24]](_0xcd57[22],_0x1a04x17,_0x1a04x16,_0xcd57[30]);logger[_0xcd57[26]](_0xcd57[25],_0x1a04x17,_0x1a04x16,_0xcd57[30],JSON[_0xcd57[31]](_0x1a04x18));return _0x1a04x15[_0xcd57[29]](_0x1a04x16)[_0xcd57[32]](_0x1a04x18)};return _0x1a04x15[_0xcd57[29]](304)[_0xcd57[28]]()}}function respondWithFilteredResult(_0x1a04x15,_0x1a04x1b,_0x1a04x17){return function(_0x1a04x18){if(_0x1a04x18){var _0x1a04x1c=_0x1a04x18[_0xcd57[33]],_0x1a04x1d=_0x1a04x1b[_0xcd57[34]],_0x1a04x1e=_0x1a04x1b[_0xcd57[34]]+ _0x1a04x1b[_0xcd57[35]],_0x1a04x16;if(_0x1a04x1e>= _0x1a04x1c){_0x1a04x1e= _0x1a04x1c;_0x1a04x16= 200}else {_0x1a04x16= 206};_0x1a04x15[_0xcd57[29]](_0x1a04x16);logger[_0xcd57[24]](_0xcd57[22],_0x1a04x17,_0x1a04x16,_0xcd57[36]);logger[_0xcd57[26]](_0xcd57[25],_0x1a04x17,_0x1a04x16,_0xcd57[30],JSON[_0xcd57[31]](_0x1a04x18));return _0x1a04x15[_0xcd57[40]](_0xcd57[37],_0x1a04x1d+ _0xcd57[38]+ _0x1a04x1e+ _0xcd57[39]+ _0x1a04x1c)[_0xcd57[32]](_0x1a04x18)};return null}}function patchUpdates(_0x1a04x20){return function(_0x1a04x18){try{jsonpatch[_0xcd57[41]](_0x1a04x18,_0x1a04x20,true)}catch(err){return BPromise[_0xcd57[42]](err)};return _0x1a04x18[_0xcd57[43]]()}}function saveUpdates(_0x1a04x22,_0x1a04x16,_0x1a04x17){return function(_0x1a04x18){if(_0x1a04x18){return _0x1a04x18[_0xcd57[46]](_0x1a04x22)[_0xcd57[45]](function(_0x1a04x23){logger[_0xcd57[24]](_0xcd57[22],_0x1a04x17,_0x1a04x16,_0xcd57[44]);logger[_0xcd57[26]](_0xcd57[25],_0x1a04x17,_0x1a04x16,_0xcd57[44],JSON[_0xcd57[31]](_0x1a04x18));return _0x1a04x23})};return null}}function removeEntity(_0x1a04x15,_0x1a04x16,_0x1a04x17){return function(_0x1a04x18){if(_0x1a04x18){return _0x1a04x18[_0xcd57[48]]()[_0xcd57[45]](function(){logger[_0xcd57[24]](_0xcd57[22],_0x1a04x17,_0x1a04x16,_0xcd57[47]);logger[_0xcd57[26]](_0xcd57[25],_0x1a04x17,_0x1a04x16,_0xcd57[47],JSON[_0xcd57[31]](_0x1a04x18));_0x1a04x15[_0xcd57[29]](204)[_0xcd57[28]]()})}}}function handleEntityNotFound(_0x1a04x15,_0x1a04x16,_0x1a04x17){return function(_0x1a04x18){if(!_0x1a04x18){logger[_0xcd57[50]](_0xcd57[22],_0x1a04x17,404,_0xcd57[49]);_0x1a04x15[_0xcd57[29]](404)[_0xcd57[28]]();return null};return _0x1a04x18}}function handleError(_0x1a04x15,_0x1a04x16,_0x1a04x17){_0x1a04x16= _0x1a04x16|| 500;return function(_0x1a04x27){logger[_0xcd57[50]](_0xcd57[22],_0x1a04x17,_0x1a04x16,JSON[_0xcd57[31]](_0x1a04x27));delete _0x1a04x27[_0xcd57[51]];_0x1a04x15[_0xcd57[29]](_0x1a04x16)[_0xcd57[52]](_0x1a04x27)}}exports[_0xcd57[53]]= function(_0x1a04x28,_0x1a04x15){var _0x1a04x1b={},_0x1a04x29={};_0x1a04x29[_0xcd57[54]]= _[_0xcd57[57]](db[_0xcd57[56]][_0xcd57[55]]);_0x1a04x29[_0xcd57[58]]= _[_0xcd57[57]](_0x1a04x28[_0xcd57[58]]);_0x1a04x29[_0xcd57[59]]= _[_0xcd57[60]](_0x1a04x29[_0xcd57[54]],_0x1a04x29[_0xcd57[58]]);_0x1a04x1b[_0xcd57[61]]= _[_0xcd57[60]](_0x1a04x29[_0xcd57[54]],qs[_0xcd57[62]](_0x1a04x28[_0xcd57[58]][_0xcd57[62]]));_0x1a04x1b[_0xcd57[61]]= (_0x1a04x1b[_0xcd57[61]][_0xcd57[63]])?_0x1a04x1b[_0xcd57[61]]:_0x1a04x29[_0xcd57[54]];if(!_0x1a04x28[_0xcd57[58]][_0xcd57[65]](_0xcd57[64])){_0x1a04x1b[_0xcd57[35]]= qs[_0xcd57[35]](_0x1a04x28[_0xcd57[58]][_0xcd57[35]]);_0x1a04x1b[_0xcd57[34]]= qs[_0xcd57[34]](_0x1a04x28[_0xcd57[58]][_0xcd57[34]])};_0x1a04x1b[_0xcd57[66]]= qs[_0xcd57[67]](_0x1a04x28[_0xcd57[58]][_0xcd57[67]]);_0x1a04x1b[_0xcd57[68]]= qs[_0xcd57[59]](_[_0xcd57[69]](_0x1a04x28[_0xcd57[58]],_0x1a04x29[_0xcd57[59]]));if(_0x1a04x28[_0xcd57[58]][_0xcd57[70]]){_0x1a04x1b[_0xcd57[68]]= _[_0xcd57[73]](_0x1a04x1b[_0xcd57[68]],{$or:_[_0xcd57[72]](_0x1a04x1b[_0xcd57[61]],function(_0x1a04x2a){var _0x1a04x2b={};_0x1a04x2b[_0x1a04x2a]= {$like:_0xcd57[71]+ _0x1a04x28[_0xcd57[58]][_0xcd57[70]]+ _0xcd57[71]};return _0x1a04x2b})})};_0x1a04x1b= _[_0xcd57[73]]({},_0x1a04x1b,_0x1a04x28[_0xcd57[74]]);return db[_0xcd57[56]][_0xcd57[76]](_0x1a04x1b)[_0xcd57[45]](respondWithFilteredResult(_0x1a04x15,_0x1a04x1b,_0xcd57[53]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[53]))};exports[_0xcd57[77]]= function(_0x1a04x28,_0x1a04x15){var _0x1a04x1b={raw:false,where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[78]]}},_0x1a04x29={};_0x1a04x29[_0xcd57[54]]= _[_0xcd57[57]](db[_0xcd57[56]][_0xcd57[55]]);_0x1a04x29[_0xcd57[58]]= _[_0xcd57[57]](_0x1a04x28[_0xcd57[58]]);_0x1a04x29[_0xcd57[59]]= _[_0xcd57[60]](_0x1a04x29[_0xcd57[54]],_0x1a04x29[_0xcd57[58]]);_0x1a04x1b[_0xcd57[61]]= _[_0xcd57[60]](_0x1a04x29[_0xcd57[54]],qs[_0xcd57[62]](_0x1a04x28[_0xcd57[58]][_0xcd57[62]]));_0x1a04x1b[_0xcd57[61]]= (_0x1a04x1b[_0xcd57[61]][_0xcd57[63]])?_0x1a04x1b[_0xcd57[61]]:_0x1a04x29[_0xcd57[54]];_0x1a04x1b= _[_0xcd57[73]]({},_0x1a04x1b,_0x1a04x28[_0xcd57[74]]);return db[_0xcd57[56]][_0xcd57[80]](_0x1a04x1b)[_0xcd57[45]](handleEntityNotFound(_0x1a04x15,null,_0xcd57[77]))[_0xcd57[45]](respondWithResult(_0x1a04x15,null,_0xcd57[77]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[77]))};exports[_0xcd57[46]]= function(_0x1a04x28,_0x1a04x15){if(_0x1a04x28[_0xcd57[81]][_0xcd57[78]]){delete _0x1a04x28[_0xcd57[81]][_0xcd57[78]]};return db[_0xcd57[56]][_0xcd57[80]]({where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[78]]}})[_0xcd57[45]](handleEntityNotFound(_0x1a04x15,null,_0xcd57[46]))[_0xcd57[45]](saveUpdates(_0x1a04x28[_0xcd57[81]],null,_0xcd57[46]))[_0xcd57[45]](respondWithResult(_0x1a04x15,null,_0xcd57[46]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[46]))};exports[_0xcd57[82]]= function(_0x1a04x28,_0x1a04x15,_0x1a04x2c){return db[_0xcd57[92]][_0xcd57[91]](function(_0x1a04x2d){if(_0x1a04x28[_0xcd57[81]][_0xcd57[83]]=== _0xcd57[84]){_0x1a04x28[_0xcd57[81]][_0xcd57[85]]= path[_0xcd57[88]](config[_0xcd57[86]],_0xcd57[87],_0x1a04x28[_0xcd57[81]][_0xcd57[51]])};return db[_0xcd57[56]][_0xcd57[82]](_0x1a04x28[_0xcd57[81]],{transaction:_0x1a04x2d})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x28[_0xcd57[81]][_0xcd57[83]]=== _0xcd57[84]){fs[_0xcd57[90]](_0x1a04x18[_0xcd57[85]],parseInt(_0xcd57[89],8))};return _0x1a04x18})})[_0xcd57[45]](respondWithResult(_0x1a04x15,201,_0xcd57[82]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[82]))};exports[_0xcd57[48]]= function(_0x1a04x28,_0x1a04x15,_0x1a04x2c){var _0x1a04x2e;return db[_0xcd57[56]][_0xcd57[80]]({where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[78]]}})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){return db[_0xcd57[92]][_0xcd57[91]](function(_0x1a04x2d){return _0x1a04x18[_0xcd57[48]]({transaction:_0x1a04x2d,raw:true})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18[_0xcd57[85]]){fs[_0xcd57[97]](_0x1a04x18[_0xcd57[85]])[_0xcd57[96]](function(_0x1a04x2f){fs[_0xcd57[95]](path[_0xcd57[88]](_0x1a04x18[_0xcd57[85]],_0x1a04x2f))});fs[_0xcd57[98]](_0x1a04x18[_0xcd57[85]])};return _0x1a04x18})})[_0xcd57[75]](function(_0x1a04x27){throw  new db[_0xcd57[94]].ValidationError(_0x1a04x27[_0xcd57[93]])})}})[_0xcd57[45]](handleEntityNotFound(_0x1a04x15,null,_0xcd57[48]))[_0xcd57[45]](removeEntity(_0x1a04x15,null,_0xcd57[48]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[48]))};exports[_0xcd57[99]]= function(_0x1a04x28,_0x1a04x15,_0x1a04x2c){return db[_0xcd57[92]][_0xcd57[91]](function(_0x1a04x2d){var _0x1a04x30;return db[_0xcd57[56]][_0xcd57[80]]({where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[78]]}})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){_0x1a04x30= _0x1a04x18;return _0x1a04x18[_0xcd57[99]](_0x1a04x28[_0xcd57[81]][_0xcd57[78]],{transaction:_0x1a04x2d})}})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){return db[_0xcd57[110]][_0xcd57[109]]({where:{id:_0x1a04x28[_0xcd57[81]][_0xcd57[78]]},attributes:[_0xcd57[78],_0xcd57[51],_0xcd57[102],_0xcd57[105],_0xcd57[108]],raw:true})}})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){var _0x1a04x31=path[_0xcd57[88]](config[_0xcd57[86]],_0xcd57[100],util[_0xcd57[106]](_0xcd57[101],path[_0xcd57[104]](_0x1a04x18[_0xcd57[102]],path[_0xcd57[103]](_0x1a04x18[_0xcd57[102]])),_0x1a04x18[_0xcd57[105]]));var _0x1a04x32=path[_0xcd57[88]](config[_0xcd57[86]],_0xcd57[87],_0x1a04x30[_0xcd57[51]],util[_0xcd57[106]](_0xcd57[101],_0x1a04x18[_0xcd57[51]],_0x1a04x18[_0xcd57[105]]));fs[_0xcd57[107]](_0x1a04x31,_0x1a04x32);return _0x1a04x18}})[_0xcd57[75]](function(_0x1a04x27){throw  new db[_0xcd57[94]].ValidationError(_0x1a04x27[_0xcd57[93]])})})[_0xcd57[45]](handleEntityNotFound(_0x1a04x15,null,_0xcd57[99]))[_0xcd57[45]](respondWithResult(_0x1a04x15,201,_0xcd57[99]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[99]))};exports[_0xcd57[111]]= function(_0x1a04x28,_0x1a04x15,_0x1a04x2c){return db[_0xcd57[92]][_0xcd57[91]](function(_0x1a04x2d){var _0x1a04x30;return db[_0xcd57[56]][_0xcd57[109]]({where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[78]]}})[_0xcd57[45]](handleEntityNotFound(_0x1a04x15,null,_0xcd57[111]))[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){_0x1a04x30= _0x1a04x18;return _0x1a04x18[_0xcd57[111]](_0x1a04x28[_0xcd57[79]][_0xcd57[112]])}})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){return db[_0xcd57[110]][_0xcd57[109]]({where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[112]]},attributes:[_0xcd57[78],_0xcd57[51],_0xcd57[102],_0xcd57[105],_0xcd57[108]],raw:true})}})[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){fs[_0xcd57[95]](path[_0xcd57[88]](_0x1a04x30[_0xcd57[85]],util[_0xcd57[106]](_0xcd57[101],_0x1a04x18[_0xcd57[51]],_0x1a04x18[_0xcd57[105]])));return _0x1a04x18}})[_0xcd57[75]](function(_0x1a04x27){throw  new db[_0xcd57[94]].ValidationError(_0x1a04x27[_0xcd57[93]])})})[_0xcd57[45]](handleEntityNotFound(_0x1a04x15,null,_0xcd57[111]))[_0xcd57[45]](respondWithStatusCode(_0x1a04x15,204,_0xcd57[111]))[_0xcd57[75]](handleError(_0x1a04x15,null,_0xcd57[111]))};exports[_0xcd57[113]]= function(_0x1a04x28,_0x1a04x18,_0x1a04x2c){var _0x1a04x1b={};var _0x1a04x29={};var _0x1a04x33;var _0x1a04x1c;return db[_0xcd57[56]][_0xcd57[109]]({where:{id:_0x1a04x28[_0xcd57[79]][_0xcd57[78]]}})[_0xcd57[45]](handleEntityNotFound(_0x1a04x18,null,_0xcd57[113]))[_0xcd57[45]](function(_0x1a04x18){if(_0x1a04x18){_0x1a04x33= _0x1a04x18;_0x1a04x29[_0xcd57[54]]= _[_0xcd57[57]](db[_0xcd57[110]][_0xcd57[55]]);_0x1a04x29[_0xcd57[58]]= _[_0xcd57[57]](_0x1a04x28[_0xcd57[58]]);_0x1a04x29[_0xcd57[59]]= _[_0xcd57[60]](_0x1a04x29[_0xcd57[54]],_0x1a04x29[_0xcd57[58]]);_0x1a04x1b[_0xcd57[61]]= _[_0xcd57[60]](_0x1a04x29[_0xcd57[54]],qs[_0xcd57[62]](_0x1a04x28[_0xcd57[58]][_0xcd57[62]]));_0x1a04x1b[_0xcd57[61]]= (_0x1a04x1b[_0xcd57[61]][_0xcd57[63]])?_0x1a04x1b[_0xcd57[61]]:_0x1a04x29[_0xcd57[54]];_0x1a04x1b[_0xcd57[66]]= qs[_0xcd57[67]](_0x1a04x28[_0xcd57[58]][_0xcd57[67]]);_0x1a04x1b[_0xcd57[68]]= qs[_0xcd57[59]](_[_0xcd57[69]](_0x1a04x28[_0xcd57[58]],_0x1a04x29[_0xcd57[59]]));if(_0x1a04x28[_0xcd57[58]][_0xcd57[70]]){_0x1a04x1b[_0xcd57[68]]= _[_0xcd57[73]](_0x1a04x1b[_0xcd57[68]],{$or:_[_0xcd57[72]](_0x1a04x1b[_0xcd57[61]],function(_0x1a04x2a){var _0x1a04x2b={};_0x1a04x2b[_0x1a04x2a]= {$like:_0xcd57[71]+ _0x1a04x28[_0xcd57[58]][_0xcd57[70]]+ _0xcd57[71]};return _0x1a04x2b})})};_0x1a04x1b= _[_0xcd57[73]]({},_0x1a04x1b,_0x1a04x28[_0xcd57[74]]);return _0x1a04x33[_0xcd57[113]](_0x1a04x1b)}})[_0xcd57[45]](function(_0x1a04x35){if(_0x1a04x35){_0x1a04x1c= _0x1a04x35[_0xcd57[63]];if(!_0x1a04x28[_0xcd57[58]][_0xcd57[65]](_0xcd57[64])){_0x1a04x1b[_0xcd57[35]]= qs[_0xcd57[35]](_0x1a04x28[_0xcd57[58]][_0xcd57[35]]);_0x1a04x1b[_0xcd57[34]]= qs[_0xcd57[34]](_0x1a04x28[_0xcd57[58]][_0xcd57[34]])};return _0x1a04x33[_0xcd57[113]](_0x1a04x1b)}})[_0xcd57[45]](function(_0x1a04x34){return _0x1a04x34?{count:_0x1a04x1c,rows:_0x1a04x34}:null})[_0xcd57[45]](respondWithResult(_0x1a04x18,null,_0xcd57[113]))[_0xcd57[75]](handleError(_0x1a04x18,null,_0xcd57[113]))}
\ No newline at end of file
+var _0xd283=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x6D\x6F\x64\x65","\x66\x69\x6C\x65\x73","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68","\x6A\x6F\x69\x6E","\x30\x37\x37\x37","\x6D\x6B\x64\x69\x72\x53\x79\x6E\x63","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x65\x73\x73\x61\x67\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x72\x65\x61\x64\x64\x69\x72\x53\x79\x6E\x63","\x72\x6D\x64\x69\x72\x53\x79\x6E\x63","\x61\x64\x64\x53\x6F\x75\x6E\x64","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x25\x73\x2E\x25\x73","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x6D\x61\x74","\x73\x79\x6D\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x53\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x53\x6F\x75\x6E\x64","\x69\x64\x32","\x67\x65\x74\x53\x6F\x75\x6E\x64\x73"];_0xd283[0];var jsonpatch=require(_0xd283[1]);var rp=require(_0xd283[2]);var moment=require(_0xd283[3]);var BPromise=require(_0xd283[4]);var util=require(_0xd283[5]);var path=require(_0xd283[6]);var sox=require(_0xd283[7]);var ejs=require(_0xd283[8]);var fs=require(_0xd283[9]);var _=require(_0xd283[10]);var squel=require(_0xd283[11]);var crypto=require(_0xd283[12]);var jsforce=require(_0xd283[13]);var toCsv=require(_0xd283[14]);var qs=require(_0xd283[15]);var logger=require(_0xd283[17])(_0xd283[16]);var utils=require(_0xd283[18]);var config=require(_0xd283[19]);var db=require(_0xd283[21])[_0xd283[20]];function respondWithStatusCode(_0x521dx15,_0x521dx16,_0x521dx17){_0x521dx16= _0x521dx16|| 204;return function(_0x521dx18){if(_0x521dx18){logger[_0xd283[24]](_0xd283[22],_0x521dx17,_0x521dx16,_0xd283[23]);logger[_0xd283[26]](_0xd283[25],_0x521dx17,_0x521dx16,_0xd283[23]);return _0x521dx15[_0xd283[27]](_0x521dx16)};return _0x521dx15[_0xd283[29]](304)[_0xd283[28]]()}}function respondWithResult(_0x521dx15,_0x521dx16,_0x521dx17){_0x521dx16= _0x521dx16|| 200;return function(_0x521dx18){if(_0x521dx18){logger[_0xd283[24]](_0xd283[22],_0x521dx17,_0x521dx16,_0xd283[30]);logger[_0xd283[26]](_0xd283[25],_0x521dx17,_0x521dx16,_0xd283[30],JSON[_0xd283[31]](_0x521dx18));return _0x521dx15[_0xd283[29]](_0x521dx16)[_0xd283[32]](_0x521dx18)};return _0x521dx15[_0xd283[29]](304)[_0xd283[28]]()}}function respondWithFilteredResult(_0x521dx15,_0x521dx1b,_0x521dx17){return function(_0x521dx18){if(_0x521dx18){var _0x521dx1c=_0x521dx18[_0xd283[33]],_0x521dx1d=_0x521dx1b[_0xd283[34]],_0x521dx1e=_0x521dx1b[_0xd283[34]]+ _0x521dx1b[_0xd283[35]],_0x521dx16;if(_0x521dx1e>= _0x521dx1c){_0x521dx1e= _0x521dx1c;_0x521dx16= 200}else {_0x521dx16= 206};_0x521dx15[_0xd283[29]](_0x521dx16);logger[_0xd283[24]](_0xd283[22],_0x521dx17,_0x521dx16,_0xd283[36]);logger[_0xd283[26]](_0xd283[25],_0x521dx17,_0x521dx16,_0xd283[30],JSON[_0xd283[31]](_0x521dx18));return _0x521dx15[_0xd283[40]](_0xd283[37],_0x521dx1d+ _0xd283[38]+ _0x521dx1e+ _0xd283[39]+ _0x521dx1c)[_0xd283[32]](_0x521dx18)};return null}}function patchUpdates(_0x521dx20){return function(_0x521dx18){try{jsonpatch[_0xd283[41]](_0x521dx18,_0x521dx20,true)}catch(err){return BPromise[_0xd283[42]](err)};return _0x521dx18[_0xd283[43]]()}}function saveUpdates(_0x521dx22,_0x521dx16,_0x521dx17){return function(_0x521dx18){if(_0x521dx18){return _0x521dx18[_0xd283[46]](_0x521dx22)[_0xd283[45]](function(_0x521dx23){logger[_0xd283[24]](_0xd283[22],_0x521dx17,_0x521dx16,_0xd283[44]);logger[_0xd283[26]](_0xd283[25],_0x521dx17,_0x521dx16,_0xd283[44],JSON[_0xd283[31]](_0x521dx18));return _0x521dx23})};return null}}function removeEntity(_0x521dx15,_0x521dx16,_0x521dx17){return function(_0x521dx18){if(_0x521dx18){return _0x521dx18[_0xd283[48]]()[_0xd283[45]](function(){logger[_0xd283[24]](_0xd283[22],_0x521dx17,_0x521dx16,_0xd283[47]);logger[_0xd283[26]](_0xd283[25],_0x521dx17,_0x521dx16,_0xd283[47],JSON[_0xd283[31]](_0x521dx18));_0x521dx15[_0xd283[29]](204)[_0xd283[28]]()})}}}function handleEntityNotFound(_0x521dx15,_0x521dx16,_0x521dx17){return function(_0x521dx18){if(!_0x521dx18){logger[_0xd283[50]](_0xd283[22],_0x521dx17,404,_0xd283[49]);_0x521dx15[_0xd283[29]](404)[_0xd283[28]]();return null};return _0x521dx18}}function handleError(_0x521dx15,_0x521dx16,_0x521dx17){_0x521dx16= _0x521dx16|| 500;return function(_0x521dx27){logger[_0xd283[50]](_0xd283[22],_0x521dx17,_0x521dx16,JSON[_0xd283[31]](_0x521dx27));delete _0x521dx27[_0xd283[51]];_0x521dx15[_0xd283[29]](_0x521dx16)[_0xd283[52]](_0x521dx27)}}exports[_0xd283[53]]= function(_0x521dx28,_0x521dx15){var _0x521dx1b={},_0x521dx29={};_0x521dx29[_0xd283[54]]= _[_0xd283[57]](db[_0xd283[56]][_0xd283[55]]);_0x521dx29[_0xd283[58]]= _[_0xd283[57]](_0x521dx28[_0xd283[58]]);_0x521dx29[_0xd283[59]]= _[_0xd283[60]](_0x521dx29[_0xd283[54]],_0x521dx29[_0xd283[58]]);_0x521dx1b[_0xd283[61]]= _[_0xd283[60]](_0x521dx29[_0xd283[54]],qs[_0xd283[62]](_0x521dx28[_0xd283[58]][_0xd283[62]]));_0x521dx1b[_0xd283[61]]= (_0x521dx1b[_0xd283[61]][_0xd283[63]])?_0x521dx1b[_0xd283[61]]:_0x521dx29[_0xd283[54]];if(!_0x521dx28[_0xd283[58]][_0xd283[65]](_0xd283[64])){_0x521dx1b[_0xd283[35]]= qs[_0xd283[35]](_0x521dx28[_0xd283[58]][_0xd283[35]]);_0x521dx1b[_0xd283[34]]= qs[_0xd283[34]](_0x521dx28[_0xd283[58]][_0xd283[34]])};_0x521dx1b[_0xd283[66]]= qs[_0xd283[67]](_0x521dx28[_0xd283[58]][_0xd283[67]]);_0x521dx1b[_0xd283[68]]= qs[_0xd283[59]](_[_0xd283[69]](_0x521dx28[_0xd283[58]],_0x521dx29[_0xd283[59]]));if(_0x521dx28[_0xd283[58]][_0xd283[70]]){_0x521dx1b[_0xd283[68]]= _[_0xd283[73]](_0x521dx1b[_0xd283[68]],{$or:_[_0xd283[72]](_0x521dx1b[_0xd283[61]],function(_0x521dx2a){var _0x521dx2b={};_0x521dx2b[_0x521dx2a]= {$like:_0xd283[71]+ _0x521dx28[_0xd283[58]][_0xd283[70]]+ _0xd283[71]};return _0x521dx2b})})};_0x521dx1b= _[_0xd283[73]]({},_0x521dx1b,_0x521dx28[_0xd283[74]]);return db[_0xd283[56]][_0xd283[76]](_0x521dx1b)[_0xd283[45]](respondWithFilteredResult(_0x521dx15,_0x521dx1b,_0xd283[53]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[53]))};exports[_0xd283[77]]= function(_0x521dx28,_0x521dx15){var _0x521dx1b={raw:false,where:{id:_0x521dx28[_0xd283[79]][_0xd283[78]]}},_0x521dx29={};_0x521dx29[_0xd283[54]]= _[_0xd283[57]](db[_0xd283[56]][_0xd283[55]]);_0x521dx29[_0xd283[58]]= _[_0xd283[57]](_0x521dx28[_0xd283[58]]);_0x521dx29[_0xd283[59]]= _[_0xd283[60]](_0x521dx29[_0xd283[54]],_0x521dx29[_0xd283[58]]);_0x521dx1b[_0xd283[61]]= _[_0xd283[60]](_0x521dx29[_0xd283[54]],qs[_0xd283[62]](_0x521dx28[_0xd283[58]][_0xd283[62]]));_0x521dx1b[_0xd283[61]]= (_0x521dx1b[_0xd283[61]][_0xd283[63]])?_0x521dx1b[_0xd283[61]]:_0x521dx29[_0xd283[54]];_0x521dx1b= _[_0xd283[73]]({},_0x521dx1b,_0x521dx28[_0xd283[74]]);return db[_0xd283[56]][_0xd283[80]](_0x521dx1b)[_0xd283[45]](handleEntityNotFound(_0x521dx15,null,_0xd283[77]))[_0xd283[45]](respondWithResult(_0x521dx15,null,_0xd283[77]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[77]))};exports[_0xd283[46]]= function(_0x521dx28,_0x521dx15){if(_0x521dx28[_0xd283[81]][_0xd283[78]]){delete _0x521dx28[_0xd283[81]][_0xd283[78]]};return db[_0xd283[56]][_0xd283[80]]({where:{id:_0x521dx28[_0xd283[79]][_0xd283[78]]}})[_0xd283[45]](handleEntityNotFound(_0x521dx15,null,_0xd283[46]))[_0xd283[45]](saveUpdates(_0x521dx28[_0xd283[81]],null,_0xd283[46]))[_0xd283[45]](respondWithResult(_0x521dx15,null,_0xd283[46]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[46]))};exports[_0xd283[82]]= function(_0x521dx28,_0x521dx15,_0x521dx2c){return db[_0xd283[92]][_0xd283[91]](function(_0x521dx2d){if(_0x521dx28[_0xd283[81]][_0xd283[83]]=== _0xd283[84]){_0x521dx28[_0xd283[81]][_0xd283[85]]= path[_0xd283[88]](config[_0xd283[86]],_0xd283[87],_0x521dx28[_0xd283[81]][_0xd283[51]])};return db[_0xd283[56]][_0xd283[82]](_0x521dx28[_0xd283[81]],{transaction:_0x521dx2d})[_0xd283[45]](function(_0x521dx18){if(_0x521dx28[_0xd283[81]][_0xd283[83]]=== _0xd283[84]){fs[_0xd283[90]](_0x521dx18[_0xd283[85]],parseInt(_0xd283[89],8))};return _0x521dx18})})[_0xd283[45]](respondWithResult(_0x521dx15,201,_0xd283[82]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[82]))};exports[_0xd283[48]]= function(_0x521dx28,_0x521dx15,_0x521dx2c){var _0x521dx2e;return db[_0xd283[56]][_0xd283[80]]({where:{id:_0x521dx28[_0xd283[79]][_0xd283[78]]}})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){return db[_0xd283[92]][_0xd283[91]](function(_0x521dx2d){return _0x521dx18[_0xd283[48]]({transaction:_0x521dx2d,raw:true})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18[_0xd283[85]]){fs[_0xd283[97]](_0x521dx18[_0xd283[85]])[_0xd283[96]](function(_0x521dx2f){fs[_0xd283[95]](path[_0xd283[88]](_0x521dx18[_0xd283[85]],_0x521dx2f))});fs[_0xd283[98]](_0x521dx18[_0xd283[85]])};return _0x521dx18})})[_0xd283[75]](function(_0x521dx27){throw  new db[_0xd283[94]].ValidationError(_0x521dx27[_0xd283[93]])})}})[_0xd283[45]](handleEntityNotFound(_0x521dx15,null,_0xd283[48]))[_0xd283[45]](removeEntity(_0x521dx15,null,_0xd283[48]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[48]))};exports[_0xd283[99]]= function(_0x521dx28,_0x521dx15,_0x521dx2c){return db[_0xd283[92]][_0xd283[91]](function(_0x521dx2d){var _0x521dx30;return db[_0xd283[56]][_0xd283[80]]({where:{id:_0x521dx28[_0xd283[79]][_0xd283[78]]}})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){_0x521dx30= _0x521dx18;return _0x521dx18[_0xd283[99]](_0x521dx28[_0xd283[81]][_0xd283[78]],{transaction:_0x521dx2d})}})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){return db[_0xd283[110]][_0xd283[109]]({where:{id:_0x521dx28[_0xd283[81]][_0xd283[78]]},attributes:[_0xd283[78],_0xd283[51],_0xd283[102],_0xd283[105],_0xd283[108]],raw:true})}})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){var _0x521dx31=path[_0xd283[88]](config[_0xd283[86]],_0xd283[100],util[_0xd283[106]](_0xd283[101],path[_0xd283[104]](_0x521dx18[_0xd283[102]],path[_0xd283[103]](_0x521dx18[_0xd283[102]])),_0x521dx18[_0xd283[105]]));var _0x521dx32=path[_0xd283[88]](config[_0xd283[86]],_0xd283[87],_0x521dx30[_0xd283[51]],util[_0xd283[106]](_0xd283[101],_0x521dx18[_0xd283[51]],_0x521dx18[_0xd283[105]]));fs[_0xd283[107]](_0x521dx31,_0x521dx32);return _0x521dx18}})[_0xd283[75]](function(_0x521dx27){throw  new db[_0xd283[94]].ValidationError(_0x521dx27[_0xd283[93]])})})[_0xd283[45]](handleEntityNotFound(_0x521dx15,null,_0xd283[99]))[_0xd283[45]](respondWithResult(_0x521dx15,201,_0xd283[99]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[99]))};exports[_0xd283[111]]= function(_0x521dx28,_0x521dx15,_0x521dx2c){return db[_0xd283[92]][_0xd283[91]](function(_0x521dx2d){var _0x521dx30;return db[_0xd283[56]][_0xd283[109]]({where:{id:_0x521dx28[_0xd283[79]][_0xd283[78]]}})[_0xd283[45]](handleEntityNotFound(_0x521dx15,null,_0xd283[111]))[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){_0x521dx30= _0x521dx18;return _0x521dx18[_0xd283[111]](_0x521dx28[_0xd283[79]][_0xd283[112]])}})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){return db[_0xd283[110]][_0xd283[109]]({where:{id:_0x521dx28[_0xd283[79]][_0xd283[112]]},attributes:[_0xd283[78],_0xd283[51],_0xd283[102],_0xd283[105],_0xd283[108]],raw:true})}})[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){fs[_0xd283[95]](path[_0xd283[88]](_0x521dx30[_0xd283[85]],util[_0xd283[106]](_0xd283[101],_0x521dx18[_0xd283[51]],_0x521dx18[_0xd283[105]])));return _0x521dx18}})[_0xd283[75]](function(_0x521dx27){throw  new db[_0xd283[94]].ValidationError(_0x521dx27[_0xd283[93]])})})[_0xd283[45]](handleEntityNotFound(_0x521dx15,null,_0xd283[111]))[_0xd283[45]](respondWithStatusCode(_0x521dx15,204,_0xd283[111]))[_0xd283[75]](handleError(_0x521dx15,null,_0xd283[111]))};exports[_0xd283[113]]= function(_0x521dx28,_0x521dx18,_0x521dx2c){var _0x521dx1b={};var _0x521dx29={};var _0x521dx33;var _0x521dx1c;return db[_0xd283[56]][_0xd283[109]]({where:{id:_0x521dx28[_0xd283[79]][_0xd283[78]]}})[_0xd283[45]](handleEntityNotFound(_0x521dx18,null,_0xd283[113]))[_0xd283[45]](function(_0x521dx18){if(_0x521dx18){_0x521dx33= _0x521dx18;_0x521dx29[_0xd283[54]]= _[_0xd283[57]](db[_0xd283[110]][_0xd283[55]]);_0x521dx29[_0xd283[58]]= _[_0xd283[57]](_0x521dx28[_0xd283[58]]);_0x521dx29[_0xd283[59]]= _[_0xd283[60]](_0x521dx29[_0xd283[54]],_0x521dx29[_0xd283[58]]);_0x521dx1b[_0xd283[61]]= _[_0xd283[60]](_0x521dx29[_0xd283[54]],qs[_0xd283[62]](_0x521dx28[_0xd283[58]][_0xd283[62]]));_0x521dx1b[_0xd283[61]]= (_0x521dx1b[_0xd283[61]][_0xd283[63]])?_0x521dx1b[_0xd283[61]]:_0x521dx29[_0xd283[54]];_0x521dx1b[_0xd283[66]]= qs[_0xd283[67]](_0x521dx28[_0xd283[58]][_0xd283[67]]);_0x521dx1b[_0xd283[68]]= qs[_0xd283[59]](_[_0xd283[69]](_0x521dx28[_0xd283[58]],_0x521dx29[_0xd283[59]]));if(_0x521dx28[_0xd283[58]][_0xd283[70]]){_0x521dx1b[_0xd283[68]]= _[_0xd283[73]](_0x521dx1b[_0xd283[68]],{$or:_[_0xd283[72]](_0x521dx1b[_0xd283[61]],function(_0x521dx2a){var _0x521dx2b={};_0x521dx2b[_0x521dx2a]= {$like:_0xd283[71]+ _0x521dx28[_0xd283[58]][_0xd283[70]]+ _0xd283[71]};return _0x521dx2b})})};_0x521dx1b= _[_0xd283[73]]({},_0x521dx1b,_0x521dx28[_0xd283[74]]);return _0x521dx33[_0xd283[113]](_0x521dx1b)}})[_0xd283[45]](function(_0x521dx35){if(_0x521dx35){_0x521dx1c= _0x521dx35[_0xd283[63]];if(!_0x521dx28[_0xd283[58]][_0xd283[65]](_0xd283[64])){_0x521dx1b[_0xd283[35]]= qs[_0xd283[35]](_0x521dx28[_0xd283[58]][_0xd283[35]]);_0x521dx1b[_0xd283[34]]= qs[_0xd283[34]](_0x521dx28[_0xd283[58]][_0xd283[34]])};return _0x521dx33[_0xd283[113]](_0x521dx1b)}})[_0xd283[45]](function(_0x521dx34){return _0x521dx34?{count:_0x521dx1c,rows:_0x521dx34}:null})[_0xd283[45]](respondWithResult(_0x521dx18,null,_0xd283[113]))[_0xd283[75]](handleError(_0x521dx18,null,_0xd283[113]))}
\ No newline at end of file
index d8f8f61..e6805a8 100644 (file)
@@ -1 +1 @@
-var _0x7885=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x64\x65\x66\x69\x6E\x65"];_0x7885[0];var _=require(_0x7885[1]);var util=require(_0x7885[2]);var logger=require(_0x7885[4])(_0x7885[3]);var attributes=require(_0x7885[5]);module[_0x7885[6]]= function(_0x9141x5,_0x9141x6){return _0x9141x5[_0x7885[9]](_0x7885[7],attributes,{tableName:_0x7885[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x46bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x64\x65\x66\x69\x6E\x65"];_0x46bd[0];var _=require(_0x46bd[1]);var util=require(_0x46bd[2]);var logger=require(_0x46bd[4])(_0x46bd[3]);var attributes=require(_0x46bd[5]);module[_0x46bd[6]]= function(_0x93f1x5,_0x93f1x6){return _0x93f1x5[_0x46bd[9]](_0x46bd[7],attributes,{tableName:_0x46bd[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index b127c36..29e6115 100644 (file)
@@ -1 +1 @@
-var _0x6890=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6890[0];var _=require(_0x6890[1]);var util=require(_0x6890[2]);var moment=require(_0x6890[3]);var BPromise=require(_0x6890[4]);var db=require(_0x6890[6])[_0x6890[5]];var utils=require(_0x6890[7]);var logger=require(_0x6890[9])(_0x6890[8]);var jayson=require(_0x6890[10]);var client=jayson[_0x6890[12]][_0x6890[11]]({port:9002});function respondWithRpcPromise(_0xd048xb,_0xd048xc,_0xd048xd){return  new BPromise(function(_0xd048xe,_0xd048xf){return client[_0x6890[25]](_0xd048xb,_0xd048xd)[_0x6890[24]](function(_0xd048x11){logger[_0x6890[17]](_0x6890[13],_0xd048xc,_0x6890[16]);logger[_0x6890[20]](_0x6890[18],_0xd048xc,_0x6890[16],JSON[_0x6890[19]](_0xd048x11));if(_0xd048x11[_0x6890[14]]){if(_0xd048x11[_0x6890[14]][_0x6890[21]]=== 500){logger[_0x6890[14]](_0x6890[13],_0xd048xc,_0xd048x11[_0x6890[14]][_0x6890[22]]);return _0xd048xf(_0xd048x11[_0x6890[14]][_0x6890[22]])};logger[_0x6890[14]](_0x6890[13],_0xd048xc,_0xd048x11[_0x6890[14]][_0x6890[22]]);return _0xd048xe(_0xd048x11[_0x6890[14]][_0x6890[22]])}else {logger[_0x6890[17]](_0x6890[13],_0xd048xc,_0x6890[16]);_0xd048xe(_0xd048x11[_0x6890[23]][_0x6890[22]])}})[_0x6890[15]](function(_0xd048x10){logger[_0x6890[14]](_0x6890[13],_0xd048xc,_0xd048x10);_0xd048xf(_0xd048x10)})})}
\ No newline at end of file
+var _0x1c1d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1c1d[0];var _=require(_0x1c1d[1]);var util=require(_0x1c1d[2]);var moment=require(_0x1c1d[3]);var BPromise=require(_0x1c1d[4]);var db=require(_0x1c1d[6])[_0x1c1d[5]];var utils=require(_0x1c1d[7]);var logger=require(_0x1c1d[9])(_0x1c1d[8]);var jayson=require(_0x1c1d[10]);var client=jayson[_0x1c1d[12]][_0x1c1d[11]]({port:9002});function respondWithRpcPromise(_0xad1fxb,_0xad1fxc,_0xad1fxd){return  new BPromise(function(_0xad1fxe,_0xad1fxf){return client[_0x1c1d[25]](_0xad1fxb,_0xad1fxd)[_0x1c1d[24]](function(_0xad1fx11){logger[_0x1c1d[17]](_0x1c1d[13],_0xad1fxc,_0x1c1d[16]);logger[_0x1c1d[20]](_0x1c1d[18],_0xad1fxc,_0x1c1d[16],JSON[_0x1c1d[19]](_0xad1fx11));if(_0xad1fx11[_0x1c1d[14]]){if(_0xad1fx11[_0x1c1d[14]][_0x1c1d[21]]=== 500){logger[_0x1c1d[14]](_0x1c1d[13],_0xad1fxc,_0xad1fx11[_0x1c1d[14]][_0x1c1d[22]]);return _0xad1fxf(_0xad1fx11[_0x1c1d[14]][_0x1c1d[22]])};logger[_0x1c1d[14]](_0x1c1d[13],_0xad1fxc,_0xad1fx11[_0x1c1d[14]][_0x1c1d[22]]);return _0xad1fxe(_0xad1fx11[_0x1c1d[14]][_0x1c1d[22]])}else {logger[_0x1c1d[17]](_0x1c1d[13],_0xad1fxc,_0x1c1d[16]);_0xad1fxe(_0xad1fx11[_0x1c1d[23]][_0x1c1d[22]])}})[_0x1c1d[15]](function(_0xad1fx10){logger[_0x1c1d[14]](_0x1c1d[13],_0xad1fxc,_0xad1fx10);_0xad1fxf(_0xad1fx10)})})}
\ No newline at end of file
index a314ea4..6c715e3 100644 (file)
@@ -1 +1 @@
-var _0xaaa3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x2F\x3A\x69\x64\x2F\x6D\x65\x6D\x62\x65\x72\x73","\x67\x65\x74\x4D\x65\x6D\x62\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x64\x64\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x5F\x6C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xaaa3[0];var multer=require(_0xaaa3[1]);var util=require(_0xaaa3[2]);var path=require(_0xaaa3[3]);var express=require(_0xaaa3[4]);var router=express.Router();var auth=require(_0xaaa3[5]);var config=require(_0xaaa3[6]);var controller=require(_0xaaa3[7]);router[_0xaaa3[11]](_0xaaa3[8],auth[_0xaaa3[9]](),controller[_0xaaa3[10]]);router[_0xaaa3[11]](_0xaaa3[12],auth[_0xaaa3[9]](),controller[_0xaaa3[13]]);router[_0xaaa3[11]](_0xaaa3[14],auth[_0xaaa3[9]](),controller[_0xaaa3[15]]);router[_0xaaa3[11]](_0xaaa3[16],auth[_0xaaa3[9]](),controller[_0xaaa3[17]]);router[_0xaaa3[11]](_0xaaa3[18],auth[_0xaaa3[9]](),controller[_0xaaa3[19]]);router[_0xaaa3[11]](_0xaaa3[20],auth[_0xaaa3[9]](),controller[_0xaaa3[21]]);router[_0xaaa3[11]](_0xaaa3[22],auth[_0xaaa3[9]](),controller[_0xaaa3[23]]);router[_0xaaa3[11]](_0xaaa3[24],auth[_0xaaa3[9]](),controller[_0xaaa3[25]]);router[_0xaaa3[11]](_0xaaa3[26],auth[_0xaaa3[9]](),controller[_0xaaa3[27]]);router[_0xaaa3[11]](_0xaaa3[28],auth[_0xaaa3[9]](),controller[_0xaaa3[29]]);router[_0xaaa3[11]](_0xaaa3[30],auth[_0xaaa3[9]](),controller[_0xaaa3[31]]);router[_0xaaa3[33]](_0xaaa3[8],auth[_0xaaa3[9]](),controller[_0xaaa3[32]]);router[_0xaaa3[33]](_0xaaa3[22],auth[_0xaaa3[9]](),controller[_0xaaa3[34]]);router[_0xaaa3[33]](_0xaaa3[24],auth[_0xaaa3[9]](),controller[_0xaaa3[35]]);router[_0xaaa3[33]](_0xaaa3[28],auth[_0xaaa3[9]](),controller[_0xaaa3[36]]);router[_0xaaa3[33]](_0xaaa3[37],auth[_0xaaa3[9]](),controller[_0xaaa3[38]]);router[_0xaaa3[33]](_0xaaa3[30],auth[_0xaaa3[9]](),controller[_0xaaa3[38]]);router[_0xaaa3[40]](_0xaaa3[12],auth[_0xaaa3[9]](),controller[_0xaaa3[39]]);router[_0xaaa3[42]](_0xaaa3[12],auth[_0xaaa3[9]](),controller[_0xaaa3[41]]);router[_0xaaa3[42]](_0xaaa3[22],auth[_0xaaa3[9]](),controller[_0xaaa3[43]]);router[_0xaaa3[42]](_0xaaa3[24],auth[_0xaaa3[9]](),controller[_0xaaa3[44]]);router[_0xaaa3[42]](_0xaaa3[37],auth[_0xaaa3[9]](),controller[_0xaaa3[45]]);router[_0xaaa3[42]](_0xaaa3[28],auth[_0xaaa3[9]](),controller[_0xaaa3[46]]);router[_0xaaa3[42]](_0xaaa3[30],auth[_0xaaa3[9]](),controller[_0xaaa3[45]]);module[_0xaaa3[47]]= router
\ No newline at end of file
+var _0x81d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x2F\x3A\x69\x64\x2F\x6D\x65\x6D\x62\x65\x72\x73","\x67\x65\x74\x4D\x65\x6D\x62\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x64\x64\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x5F\x6C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x81d8[0];var multer=require(_0x81d8[1]);var util=require(_0x81d8[2]);var path=require(_0x81d8[3]);var express=require(_0x81d8[4]);var router=express.Router();var auth=require(_0x81d8[5]);var config=require(_0x81d8[6]);var controller=require(_0x81d8[7]);router[_0x81d8[11]](_0x81d8[8],auth[_0x81d8[9]](),controller[_0x81d8[10]]);router[_0x81d8[11]](_0x81d8[12],auth[_0x81d8[9]](),controller[_0x81d8[13]]);router[_0x81d8[11]](_0x81d8[14],auth[_0x81d8[9]](),controller[_0x81d8[15]]);router[_0x81d8[11]](_0x81d8[16],auth[_0x81d8[9]](),controller[_0x81d8[17]]);router[_0x81d8[11]](_0x81d8[18],auth[_0x81d8[9]](),controller[_0x81d8[19]]);router[_0x81d8[11]](_0x81d8[20],auth[_0x81d8[9]](),controller[_0x81d8[21]]);router[_0x81d8[11]](_0x81d8[22],auth[_0x81d8[9]](),controller[_0x81d8[23]]);router[_0x81d8[11]](_0x81d8[24],auth[_0x81d8[9]](),controller[_0x81d8[25]]);router[_0x81d8[11]](_0x81d8[26],auth[_0x81d8[9]](),controller[_0x81d8[27]]);router[_0x81d8[11]](_0x81d8[28],auth[_0x81d8[9]](),controller[_0x81d8[29]]);router[_0x81d8[11]](_0x81d8[30],auth[_0x81d8[9]](),controller[_0x81d8[31]]);router[_0x81d8[33]](_0x81d8[8],auth[_0x81d8[9]](),controller[_0x81d8[32]]);router[_0x81d8[33]](_0x81d8[22],auth[_0x81d8[9]](),controller[_0x81d8[34]]);router[_0x81d8[33]](_0x81d8[24],auth[_0x81d8[9]](),controller[_0x81d8[35]]);router[_0x81d8[33]](_0x81d8[28],auth[_0x81d8[9]](),controller[_0x81d8[36]]);router[_0x81d8[33]](_0x81d8[37],auth[_0x81d8[9]](),controller[_0x81d8[38]]);router[_0x81d8[33]](_0x81d8[30],auth[_0x81d8[9]](),controller[_0x81d8[38]]);router[_0x81d8[40]](_0x81d8[12],auth[_0x81d8[9]](),controller[_0x81d8[39]]);router[_0x81d8[42]](_0x81d8[12],auth[_0x81d8[9]](),controller[_0x81d8[41]]);router[_0x81d8[42]](_0x81d8[22],auth[_0x81d8[9]](),controller[_0x81d8[43]]);router[_0x81d8[42]](_0x81d8[24],auth[_0x81d8[9]](),controller[_0x81d8[44]]);router[_0x81d8[42]](_0x81d8[37],auth[_0x81d8[9]](),controller[_0x81d8[45]]);router[_0x81d8[42]](_0x81d8[28],auth[_0x81d8[9]](),controller[_0x81d8[46]]);router[_0x81d8[42]](_0x81d8[30],auth[_0x81d8[9]](),controller[_0x81d8[45]]);module[_0x81d8[47]]= router
\ No newline at end of file
index 62878de..2b2b71a 100644 (file)
@@ -1 +1 @@
-var _0x7288=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x66\x61\x75\x6C\x74","","\x72\x69\x6E\x67\x61\x6C\x6C","\x6C\x65\x61\x73\x74\x72\x65\x63\x65\x6E\x74","\x66\x65\x77\x65\x73\x74\x63\x61\x6C\x6C\x73","\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6C\x69\x6E\x65\x61\x72","\x77\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6F\x72\x64\x65\x72\x65\x64","\x79\x65\x73","\x6E\x6F","\x61\x6C\x6C","\x6F\x6E\x63\x65","\x30","\x35","\x31\x30","\x31\x35","\x32\x30","\x33\x30","\x6A\x6F\x69\x6E\x65\x6D\x70\x74\x79","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x6C\x65\x61\x76\x65\x77\x68\x65\x6E\x65\x6D\x70\x74\x79","\x42\x4F\x4F\x4C\x45\x41\x4E","\x41\x63\x74\x69\x76\x65\x2F\x44\x69\x73\x61\x63\x74\x69\x76\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x70\x6F\x77\x65\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x44\x69\x61\x6C\x20\x4D\x65\x74\x68\x6F\x64\x2E","\x55\x4E\x53\x49\x47\x4E\x45\x44","\x4D\x61\x78\x20\x39\x39\x39\x39\x20\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2C\x20\x30\x20\x6D\x65\x61\x6E\x73\x20\x75\x6E\x6C\x69\x6D\x69\x74\x65\x64\x2E","\x4D\x61\x78\x20\x39\x39\x39\x39\x20\x6D\x65\x6D\x62\x65\x72\x20\x69\x6E\x20\x71\x75\x65\x75\x65\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x29\x2C\x20\x30\x20\x6D\x65\x61\x6E\x73\x20\x75\x6E\x6C\x69\x6D\x69\x74\x65\x64\x2E","\x50\x6F\x77\x65\x72\x20\x4C\x65\x76\x65\x6C\x3A\x20\x43\x61\x6C\x6C\x73\x20\x66\x6F\x72\x20\x61\x67\x65\x6E\x74\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x31\x30\x29\x2E","\x61\x67\x65\x6E\x74\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x64\x72\x6F\x70\x52\x61\x74\x65","\x4F\x6E\x6C\x79\x20\x66\x6F\x72\x20\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x6D\x65\x74\x68\x6F\x64\x2E","\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x20\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65\x20\x28\x6D\x69\x6E\x3A\x20\x31\x2C\x20\x6D\x61\x78\x3A\x20\x39\x35\x29","\x49\x6E\x74\x65\x72\x76\x61\x6C\x6C\x20\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x35\x20\x6D\x61\x78\x3A\x33\x30\x29","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x74\x54\x78\x58","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x69\x6B\x69\x2E\x61\x73\x74\x65\x72\x69\x73\x6B\x2E\x6F\x72\x67\x2F\x77\x69\x6B\x69\x2F\x64\x69\x73\x70\x6C\x61\x79\x2F\x41\x53\x54\x2F\x41\x73\x74\x65\x72\x69\x73\x6B\x2B\x31\x33\x2B\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x5F\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x29","\x41\x47\x49\x20\x71\x75\x65\x75\x65\x20\x6F\x70\x74\x69\x6F\x6E\x20\x28\x75\x73\x65\x3A\x20\x61\x67\x69\x3A\x2F\x2F\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x2F\x73\x71\x75\x61\x72\x65\x2C\x3C\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x61\x6D\x65\x3E\x29","\x23\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x47\x6C\x6F\x62\x61\x6C\x20\x4D\x61\x78\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x30\x37\x3A\x30\x30\x2D\x32\x32\x3A\x30\x30\x2C\x2A\x2C\x2A\x2C\x2A"];_0x7288[0];var Sequelize=require(_0x7288[1]);module[_0x7288[2]]= {name:{type:Sequelize[_0x7288[3]],allowNull:false,unique:_0x7288[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},type:{type:Sequelize.ENUM(_0x7288[5],_0x7288[6]),allowNull:false,defaultValue:_0x7288[5]},musiconhold:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[7]},announce:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[8]},strategy:{type:Sequelize.ENUM(_0x7288[9],_0x7288[10],_0x7288[11],_0x7288[12],_0x7288[13],_0x7288[14],_0x7288[15],_0x7288[16]),allowNull:false,defaultValue:_0x7288[9]},servicelevel:{type:Sequelize.INTEGER(11),defaultValue:0},context:{type:Sequelize[_0x7288[3]],defaultValue:null},penaltymemberslimit:{type:Sequelize.INTEGER(11)},timeout:{type:Sequelize.INTEGER(11),defaultValue:0},retry:{type:Sequelize.INTEGER(11),defaultValue:0},timeoutpriority:{type:Sequelize[_0x7288[3]]},weight:{type:Sequelize.INTEGER(11),allowNull:true,defaultValue:0},wrapuptime:{type:Sequelize.INTEGER(11),defaultValue:0},autofill:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[17]},autopause:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18],_0x7288[19]),defaultValue:_0x7288[18]},autopausedelay:{type:Sequelize.INTEGER(11)},autopausebusy:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},autopauseunavail:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},maxlen:{type:Sequelize.INTEGER(11),defaultValue:0},setinterfacevar:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},setqueueentryvar:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defautValue:_0x7288[18]},setqueuevar:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},eventmemberstatus:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},membermacro:{type:Sequelize[_0x7288[3]],allowNull:true},membergosub:{type:Sequelize[_0x7288[3]],allowNull:true},announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},min_announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},periodic_announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},random_periodic_announce:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},relative_periodic_announce:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[17]},announce_holdtime:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18],_0x7288[20]),defaultValue:_0x7288[18]},announce_position:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[18]},announce_to_first_user:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18])},announce_position_limit:{type:Sequelize.INTEGER(11)},announce_round_seconds:{type:Sequelize.ENUM(_0x7288[21],_0x7288[22],_0x7288[23],_0x7288[24],_0x7288[25],_0x7288[26]),defaultValue:_0x7288[21]},monitor_format:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[8]},monitor_type:{type:Sequelize[_0x7288[3]]},queue_youarenext:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_thereare:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_callswaiting:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_holdtime:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_minute:{type:Sequelize[_0x7288[3]],allowNull:true,defaultValue:null},queue_minutes:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_seconds:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_thankyou:{type:Sequelize[_0x7288[3]],defaultValue:null},queue_reporthold:{type:Sequelize[_0x7288[3]]},queue_quantity1:{type:Sequelize[_0x7288[3]]},queue_quantity2:{type:Sequelize[_0x7288[3]]},queue_periodic_announce:{type:Sequelize[_0x7288[3]]},queue_less_than:{type:Sequelize[_0x7288[3]]},periodic_announce:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[8]},joinempty:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[17],set:function(_0x68c9x2){this[_0x7288[30]](_0x7288[27],_0x68c9x2?_0x68c9x2[_0x7288[29]](_0x7288[28]):[])},get:function(){return this[_0x7288[31]](_0x7288[27])?this[_0x7288[31]](_0x7288[27])[_0x7288[32]](_0x7288[28]):[]}},leavewhenempty:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[18],set:function(_0x68c9x2){this[_0x7288[30]](_0x7288[33],_0x68c9x2?_0x68c9x2[_0x7288[29]](_0x7288[28]):[])},get:function(){return this[_0x7288[31]](_0x7288[33])?this[_0x7288[31]](_0x7288[33])[_0x7288[32]](_0x7288[28]):[]}},reportholdtime:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},ringinuse:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},memberdelay:{type:Sequelize.INTEGER(11),defaultValue:0},timeoutrestart:{type:Sequelize.ENUM(_0x7288[17],_0x7288[18]),defaultValue:_0x7288[18]},defaultrule:{type:Sequelize[_0x7288[3]]},description:{type:Sequelize[_0x7288[3]]},acw:{type:Sequelize[_0x7288[34]],defaultValue:0},acwTimeout:{type:Sequelize.INTEGER(11),defaultValue:10},dialActive:{type:Sequelize[_0x7288[34]],defaultValue:0,comment:_0x7288[35]},dialMethod:{type:Sequelize.ENUM(_0x7288[36],_0x7288[37],_0x7288[38],_0x7288[39]),defaultValue:_0x7288[37],comment:_0x7288[40]},dialLimitChannel:{type:Sequelize.INTEGER(4)[_0x7288[41]],defaultValue:0,validate:{min:0,max:9999},comment:_0x7288[42]},dialLimitQueue:{type:Sequelize.INTEGER(4)[_0x7288[41]],defaultValue:0,validate:{min:0,max:9999},comment:_0x7288[43]},dialPowerLevel:{type:Sequelize.FLOAT(2)[_0x7288[41]],defaultValue:1,validate:{min:1,max:10},comment:_0x7288[44]},dialPredictiveOptimization:{type:Sequelize.ENUM(_0x7288[45],_0x7288[46]),defaultValue:_0x7288[46],comment:_0x7288[47]},dialPredictiveOptimizationPercentage:{type:Sequelize.FLOAT(2)[_0x7288[41]],defaultValue:3,validate:{min:1,max:95},comment:_0x7288[48]},dialPredictiveInterval:{type:Sequelize.INTEGER(3)[_0x7288[41]],defaultValue:10,validate:{min:5,max:30},comment:_0x7288[49]},dialOriginateCallerIdName:{type:Sequelize[_0x7288[3]]},dialOriginateCallerIdNumber:{type:Sequelize[_0x7288[3]]},dialOriginateTimeout:{type:Sequelize.INTEGER(3)[_0x7288[41]],defaultValue:30,validate:{min:1,max:999},comment:_0x7288[50]},dialQueueOptions:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[51],comment:_0x7288[52]},dialQueueTimeout:{type:Sequelize.INTEGER(2)[_0x7288[41]],defaultValue:3,validate:{min:1,max:99},comment:_0x7288[53]},dialQueueProject:{type:Sequelize[_0x7288[3]],comment:_0x7288[54]},dialCongestionMaxRetry:{type:Sequelize.INTEGER(3)[_0x7288[41]],defaultValue:3,validate:{min:1,max:999},comment:_0x7288[55]},dialCongestionRetryFrequency:{type:Sequelize.INTEGER(5)[_0x7288[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x7288[56]},dialBusyMaxRetry:{type:Sequelize.INTEGER(3)[_0x7288[41]],defaultValue:3,validate:{min:1,max:999},comment:_0x7288[57]},dialBusyRetryFrequency:{type:Sequelize.INTEGER(5)[_0x7288[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x7288[58]},dialNoAnswerMaxRetry:{type:Sequelize.INTEGER(3)[_0x7288[41]],defaultValue:3,comment:_0x7288[59]},dialNoAnswerRetryFrequency:{type:Sequelize.INTEGER(5)[_0x7288[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x7288[60]},dialGlobalMaxRetry:{type:Sequelize.INTEGER(3)[_0x7288[41]],validate:{min:1,max:999},defaultValue:4,comment:_0x7288[61]},dialTimezone:{type:Sequelize[_0x7288[3]],defaultValue:null},dialGlobalInterval:{type:Sequelize[_0x7288[3]],defaultValue:_0x7288[62]}}
\ No newline at end of file
+var _0x8f9d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x66\x61\x75\x6C\x74","","\x72\x69\x6E\x67\x61\x6C\x6C","\x6C\x65\x61\x73\x74\x72\x65\x63\x65\x6E\x74","\x66\x65\x77\x65\x73\x74\x63\x61\x6C\x6C\x73","\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6C\x69\x6E\x65\x61\x72","\x77\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6F\x72\x64\x65\x72\x65\x64","\x79\x65\x73","\x6E\x6F","\x61\x6C\x6C","\x6F\x6E\x63\x65","\x30","\x35","\x31\x30","\x31\x35","\x32\x30","\x33\x30","\x6A\x6F\x69\x6E\x65\x6D\x70\x74\x79","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x6C\x65\x61\x76\x65\x77\x68\x65\x6E\x65\x6D\x70\x74\x79","\x42\x4F\x4F\x4C\x45\x41\x4E","\x41\x63\x74\x69\x76\x65\x2F\x44\x69\x73\x61\x63\x74\x69\x76\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x70\x6F\x77\x65\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x44\x69\x61\x6C\x20\x4D\x65\x74\x68\x6F\x64\x2E","\x55\x4E\x53\x49\x47\x4E\x45\x44","\x4D\x61\x78\x20\x39\x39\x39\x39\x20\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2C\x20\x30\x20\x6D\x65\x61\x6E\x73\x20\x75\x6E\x6C\x69\x6D\x69\x74\x65\x64\x2E","\x4D\x61\x78\x20\x39\x39\x39\x39\x20\x6D\x65\x6D\x62\x65\x72\x20\x69\x6E\x20\x71\x75\x65\x75\x65\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x29\x2C\x20\x30\x20\x6D\x65\x61\x6E\x73\x20\x75\x6E\x6C\x69\x6D\x69\x74\x65\x64\x2E","\x50\x6F\x77\x65\x72\x20\x4C\x65\x76\x65\x6C\x3A\x20\x43\x61\x6C\x6C\x73\x20\x66\x6F\x72\x20\x61\x67\x65\x6E\x74\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x31\x30\x29\x2E","\x61\x67\x65\x6E\x74\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x64\x72\x6F\x70\x52\x61\x74\x65","\x4F\x6E\x6C\x79\x20\x66\x6F\x72\x20\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x6D\x65\x74\x68\x6F\x64\x2E","\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x20\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65\x20\x28\x6D\x69\x6E\x3A\x20\x31\x2C\x20\x6D\x61\x78\x3A\x20\x39\x35\x29","\x49\x6E\x74\x65\x72\x76\x61\x6C\x6C\x20\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x35\x20\x6D\x61\x78\x3A\x33\x30\x29","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x74\x54\x78\x58","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x69\x6B\x69\x2E\x61\x73\x74\x65\x72\x69\x73\x6B\x2E\x6F\x72\x67\x2F\x77\x69\x6B\x69\x2F\x64\x69\x73\x70\x6C\x61\x79\x2F\x41\x53\x54\x2F\x41\x73\x74\x65\x72\x69\x73\x6B\x2B\x31\x33\x2B\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x5F\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x29","\x41\x47\x49\x20\x71\x75\x65\x75\x65\x20\x6F\x70\x74\x69\x6F\x6E\x20\x28\x75\x73\x65\x3A\x20\x61\x67\x69\x3A\x2F\x2F\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x2F\x73\x71\x75\x61\x72\x65\x2C\x3C\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x61\x6D\x65\x3E\x29","\x23\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x47\x6C\x6F\x62\x61\x6C\x20\x4D\x61\x78\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x30\x37\x3A\x30\x30\x2D\x32\x32\x3A\x30\x30\x2C\x2A\x2C\x2A\x2C\x2A"];_0x8f9d[0];var Sequelize=require(_0x8f9d[1]);module[_0x8f9d[2]]= {name:{type:Sequelize[_0x8f9d[3]],allowNull:false,unique:_0x8f9d[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},type:{type:Sequelize.ENUM(_0x8f9d[5],_0x8f9d[6]),allowNull:false,defaultValue:_0x8f9d[5]},musiconhold:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[7]},announce:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[8]},strategy:{type:Sequelize.ENUM(_0x8f9d[9],_0x8f9d[10],_0x8f9d[11],_0x8f9d[12],_0x8f9d[13],_0x8f9d[14],_0x8f9d[15],_0x8f9d[16]),allowNull:false,defaultValue:_0x8f9d[9]},servicelevel:{type:Sequelize.INTEGER(11),defaultValue:0},context:{type:Sequelize[_0x8f9d[3]],defaultValue:null},penaltymemberslimit:{type:Sequelize.INTEGER(11)},timeout:{type:Sequelize.INTEGER(11),defaultValue:0},retry:{type:Sequelize.INTEGER(11),defaultValue:0},timeoutpriority:{type:Sequelize[_0x8f9d[3]]},weight:{type:Sequelize.INTEGER(11),allowNull:true,defaultValue:0},wrapuptime:{type:Sequelize.INTEGER(11),defaultValue:0},autofill:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[17]},autopause:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18],_0x8f9d[19]),defaultValue:_0x8f9d[18]},autopausedelay:{type:Sequelize.INTEGER(11)},autopausebusy:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},autopauseunavail:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},maxlen:{type:Sequelize.INTEGER(11),defaultValue:0},setinterfacevar:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},setqueueentryvar:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defautValue:_0x8f9d[18]},setqueuevar:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},eventmemberstatus:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},membermacro:{type:Sequelize[_0x8f9d[3]],allowNull:true},membergosub:{type:Sequelize[_0x8f9d[3]],allowNull:true},announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},min_announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},periodic_announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},random_periodic_announce:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},relative_periodic_announce:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[17]},announce_holdtime:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18],_0x8f9d[20]),defaultValue:_0x8f9d[18]},announce_position:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[18]},announce_to_first_user:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18])},announce_position_limit:{type:Sequelize.INTEGER(11)},announce_round_seconds:{type:Sequelize.ENUM(_0x8f9d[21],_0x8f9d[22],_0x8f9d[23],_0x8f9d[24],_0x8f9d[25],_0x8f9d[26]),defaultValue:_0x8f9d[21]},monitor_format:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[8]},monitor_type:{type:Sequelize[_0x8f9d[3]]},queue_youarenext:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_thereare:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_callswaiting:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_holdtime:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_minute:{type:Sequelize[_0x8f9d[3]],allowNull:true,defaultValue:null},queue_minutes:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_seconds:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_thankyou:{type:Sequelize[_0x8f9d[3]],defaultValue:null},queue_reporthold:{type:Sequelize[_0x8f9d[3]]},queue_quantity1:{type:Sequelize[_0x8f9d[3]]},queue_quantity2:{type:Sequelize[_0x8f9d[3]]},queue_periodic_announce:{type:Sequelize[_0x8f9d[3]]},queue_less_than:{type:Sequelize[_0x8f9d[3]]},periodic_announce:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[8]},joinempty:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[17],set:function(_0xd8cax2){this[_0x8f9d[30]](_0x8f9d[27],_0xd8cax2?_0xd8cax2[_0x8f9d[29]](_0x8f9d[28]):[])},get:function(){return this[_0x8f9d[31]](_0x8f9d[27])?this[_0x8f9d[31]](_0x8f9d[27])[_0x8f9d[32]](_0x8f9d[28]):[]}},leavewhenempty:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[18],set:function(_0xd8cax2){this[_0x8f9d[30]](_0x8f9d[33],_0xd8cax2?_0xd8cax2[_0x8f9d[29]](_0x8f9d[28]):[])},get:function(){return this[_0x8f9d[31]](_0x8f9d[33])?this[_0x8f9d[31]](_0x8f9d[33])[_0x8f9d[32]](_0x8f9d[28]):[]}},reportholdtime:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},ringinuse:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},memberdelay:{type:Sequelize.INTEGER(11),defaultValue:0},timeoutrestart:{type:Sequelize.ENUM(_0x8f9d[17],_0x8f9d[18]),defaultValue:_0x8f9d[18]},defaultrule:{type:Sequelize[_0x8f9d[3]]},description:{type:Sequelize[_0x8f9d[3]]},acw:{type:Sequelize[_0x8f9d[34]],defaultValue:0},acwTimeout:{type:Sequelize.INTEGER(11),defaultValue:10},dialActive:{type:Sequelize[_0x8f9d[34]],defaultValue:0,comment:_0x8f9d[35]},dialMethod:{type:Sequelize.ENUM(_0x8f9d[36],_0x8f9d[37],_0x8f9d[38],_0x8f9d[39]),defaultValue:_0x8f9d[37],comment:_0x8f9d[40]},dialLimitChannel:{type:Sequelize.INTEGER(4)[_0x8f9d[41]],defaultValue:0,validate:{min:0,max:9999},comment:_0x8f9d[42]},dialLimitQueue:{type:Sequelize.INTEGER(4)[_0x8f9d[41]],defaultValue:0,validate:{min:0,max:9999},comment:_0x8f9d[43]},dialPowerLevel:{type:Sequelize.FLOAT(2)[_0x8f9d[41]],defaultValue:1,validate:{min:1,max:10},comment:_0x8f9d[44]},dialPredictiveOptimization:{type:Sequelize.ENUM(_0x8f9d[45],_0x8f9d[46]),defaultValue:_0x8f9d[46],comment:_0x8f9d[47]},dialPredictiveOptimizationPercentage:{type:Sequelize.FLOAT(2)[_0x8f9d[41]],defaultValue:3,validate:{min:1,max:95},comment:_0x8f9d[48]},dialPredictiveInterval:{type:Sequelize.INTEGER(3)[_0x8f9d[41]],defaultValue:10,validate:{min:5,max:30},comment:_0x8f9d[49]},dialOriginateCallerIdName:{type:Sequelize[_0x8f9d[3]]},dialOriginateCallerIdNumber:{type:Sequelize[_0x8f9d[3]]},dialOriginateTimeout:{type:Sequelize.INTEGER(3)[_0x8f9d[41]],defaultValue:30,validate:{min:1,max:999},comment:_0x8f9d[50]},dialQueueOptions:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[51],comment:_0x8f9d[52]},dialQueueTimeout:{type:Sequelize.INTEGER(2)[_0x8f9d[41]],defaultValue:3,validate:{min:1,max:99},comment:_0x8f9d[53]},dialQueueProject:{type:Sequelize[_0x8f9d[3]],comment:_0x8f9d[54]},dialCongestionMaxRetry:{type:Sequelize.INTEGER(3)[_0x8f9d[41]],defaultValue:3,validate:{min:1,max:999},comment:_0x8f9d[55]},dialCongestionRetryFrequency:{type:Sequelize.INTEGER(5)[_0x8f9d[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x8f9d[56]},dialBusyMaxRetry:{type:Sequelize.INTEGER(3)[_0x8f9d[41]],defaultValue:3,validate:{min:1,max:999},comment:_0x8f9d[57]},dialBusyRetryFrequency:{type:Sequelize.INTEGER(5)[_0x8f9d[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x8f9d[58]},dialNoAnswerMaxRetry:{type:Sequelize.INTEGER(3)[_0x8f9d[41]],defaultValue:3,comment:_0x8f9d[59]},dialNoAnswerRetryFrequency:{type:Sequelize.INTEGER(5)[_0x8f9d[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x8f9d[60]},dialGlobalMaxRetry:{type:Sequelize.INTEGER(3)[_0x8f9d[41]],validate:{min:1,max:999},defaultValue:4,comment:_0x8f9d[61]},dialTimezone:{type:Sequelize[_0x8f9d[3]],defaultValue:null},dialGlobalInterval:{type:Sequelize[_0x8f9d[3]],defaultValue:_0x8f9d[62]}}
\ No newline at end of file
index 8d92470..9c61956 100644 (file)
@@ -1 +1 @@
-var _0xfc5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67\x69\x6E\x49\x6E\x50\x61\x75\x73\x65","\x75\x70\x73\x65\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x70\x75\x73\x68","\x61\x6C\x6C","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x4D\x65\x6D\x62\x65\x72\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x67\x65\x74","\x70\x68\x6F\x6E\x65","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x4E\x4F\x54\x20\x45\x58\x49\x53\x54\x53\x20\x28\x3F\x29","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x69\x64\x20\x3D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x2E\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64\x20\x3D\x20\x3F","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F\x20","\x43\x6D\x4C\x69\x73\x74\x49\x64","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x66\x72\x6F\x6D","\x4E\x55\x4C\x4C","\x66\x69\x65\x6C\x64","\x73\x65\x6C\x65\x63\x74","\x70\x68\x6F\x6E\x65\x20\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x4E\x4F\x57\x28\x29","\x66\x72\x6F\x6D\x51\x75\x65\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x69\x6E\x74\x6F","\x69\x6E\x73\x65\x72\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73"];_0xfc5a[0];var jsonpatch=require(_0xfc5a[1]);var rp=require(_0xfc5a[2]);var moment=require(_0xfc5a[3]);var BPromise=require(_0xfc5a[4]);var util=require(_0xfc5a[5]);var path=require(_0xfc5a[6]);var sox=require(_0xfc5a[7]);var ejs=require(_0xfc5a[8]);var fs=require(_0xfc5a[9]);var _=require(_0xfc5a[10]);var squel=require(_0xfc5a[11]);var crypto=require(_0xfc5a[12]);var jsforce=require(_0xfc5a[13]);var toCsv=require(_0xfc5a[14]);var qs=require(_0xfc5a[15]);var logger=require(_0xfc5a[17])(_0xfc5a[16]);var utils=require(_0xfc5a[18]);var config=require(_0xfc5a[19]);var db=require(_0xfc5a[21])[_0xfc5a[20]];function respondWithStatusCode(_0xac4ax15,_0xac4ax16,_0xac4ax17){_0xac4ax16= _0xac4ax16|| 204;return function(_0xac4ax18){if(_0xac4ax18){logger[_0xfc5a[24]](_0xfc5a[22],_0xac4ax17,_0xac4ax16,_0xfc5a[23]);logger[_0xfc5a[26]](_0xfc5a[25],_0xac4ax17,_0xac4ax16,_0xfc5a[23]);return _0xac4ax15[_0xfc5a[27]](_0xac4ax16)};return _0xac4ax15[_0xfc5a[29]](304)[_0xfc5a[28]]()}}function respondWithResult(_0xac4ax15,_0xac4ax16,_0xac4ax17){_0xac4ax16= _0xac4ax16|| 200;return function(_0xac4ax18){if(_0xac4ax18){logger[_0xfc5a[24]](_0xfc5a[22],_0xac4ax17,_0xac4ax16,_0xfc5a[30]);logger[_0xfc5a[26]](_0xfc5a[25],_0xac4ax17,_0xac4ax16,_0xfc5a[30],JSON[_0xfc5a[31]](_0xac4ax18));return _0xac4ax15[_0xfc5a[29]](_0xac4ax16)[_0xfc5a[32]](_0xac4ax18)};return _0xac4ax15[_0xfc5a[29]](304)[_0xfc5a[28]]()}}function respondWithFilteredResult(_0xac4ax15,_0xac4ax1b,_0xac4ax17){return function(_0xac4ax18){if(_0xac4ax18){var _0xac4ax1c=_0xac4ax18[_0xfc5a[33]],_0xac4ax1d=_0xac4ax1b[_0xfc5a[34]],_0xac4ax1e=_0xac4ax1b[_0xfc5a[34]]+ _0xac4ax1b[_0xfc5a[35]],_0xac4ax16;if(_0xac4ax1e>= _0xac4ax1c){_0xac4ax1e= _0xac4ax1c;_0xac4ax16= 200}else {_0xac4ax16= 206};_0xac4ax15[_0xfc5a[29]](_0xac4ax16);logger[_0xfc5a[24]](_0xfc5a[22],_0xac4ax17,_0xac4ax16,_0xfc5a[36]);logger[_0xfc5a[26]](_0xfc5a[25],_0xac4ax17,_0xac4ax16,_0xfc5a[30],JSON[_0xfc5a[31]](_0xac4ax18));return _0xac4ax15[_0xfc5a[40]](_0xfc5a[37],_0xac4ax1d+ _0xfc5a[38]+ _0xac4ax1e+ _0xfc5a[39]+ _0xac4ax1c)[_0xfc5a[32]](_0xac4ax18)};return null}}function patchUpdates(_0xac4ax20){return function(_0xac4ax18){try{jsonpatch[_0xfc5a[41]](_0xac4ax18,_0xac4ax20,true)}catch(err){return BPromise[_0xfc5a[42]](err)};return _0xac4ax18[_0xfc5a[43]]()}}function saveUpdates(_0xac4ax22,_0xac4ax16,_0xac4ax17){return function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[46]](_0xac4ax22)[_0xfc5a[45]](function(_0xac4ax23){logger[_0xfc5a[24]](_0xfc5a[22],_0xac4ax17,_0xac4ax16,_0xfc5a[44]);logger[_0xfc5a[26]](_0xfc5a[25],_0xac4ax17,_0xac4ax16,_0xfc5a[44],JSON[_0xfc5a[31]](_0xac4ax18));return _0xac4ax23})};return null}}function removeEntity(_0xac4ax15,_0xac4ax16,_0xac4ax17){return function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[48]]()[_0xfc5a[45]](function(){logger[_0xfc5a[24]](_0xfc5a[22],_0xac4ax17,_0xac4ax16,_0xfc5a[47]);logger[_0xfc5a[26]](_0xfc5a[25],_0xac4ax17,_0xac4ax16,_0xfc5a[47],JSON[_0xfc5a[31]](_0xac4ax18));_0xac4ax15[_0xfc5a[29]](204)[_0xfc5a[28]]()})}}}function handleEntityNotFound(_0xac4ax15,_0xac4ax16,_0xac4ax17){return function(_0xac4ax18){if(!_0xac4ax18){logger[_0xfc5a[50]](_0xfc5a[22],_0xac4ax17,404,_0xfc5a[49]);_0xac4ax15[_0xfc5a[29]](404)[_0xfc5a[28]]();return null};return _0xac4ax18}}function handleError(_0xac4ax15,_0xac4ax16,_0xac4ax17){_0xac4ax16= _0xac4ax16|| 500;return function(_0xac4ax27){logger[_0xfc5a[50]](_0xfc5a[22],_0xac4ax17,_0xac4ax16,JSON[_0xfc5a[31]](_0xac4ax27));delete _0xac4ax27[_0xfc5a[51]];_0xac4ax15[_0xfc5a[29]](_0xac4ax16)[_0xfc5a[52]](_0xac4ax27)}}exports[_0xfc5a[53]]= function(_0xac4ax28,_0xac4ax15){var _0xac4ax1b={},_0xac4ax29={};_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[56]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return db[_0xfc5a[56]][_0xfc5a[76]](_0xac4ax1b)[_0xfc5a[45]](respondWithFilteredResult(_0xac4ax15,_0xac4ax1b,_0xfc5a[53]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[53]))};exports[_0xfc5a[77]]= function(_0xac4ax28,_0xac4ax15){var _0xac4ax1b={raw:false,where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}},_0xac4ax29={};_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[56]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return db[_0xfc5a[56]][_0xfc5a[80]](_0xac4ax1b)[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[77]))[_0xfc5a[45]](respondWithResult(_0xac4ax15,null,_0xfc5a[77]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[77]))};exports[_0xfc5a[81]]= function(_0xac4ax28,_0xac4ax15){return db[_0xfc5a[56]][_0xfc5a[81]](_0xac4ax28[_0xfc5a[82]],{})[_0xfc5a[45]](respondWithResult(_0xac4ax15,201,_0xfc5a[81]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[81]))};exports[_0xfc5a[46]]= function(_0xac4ax28,_0xac4ax15){if(_0xac4ax28[_0xfc5a[82]][_0xfc5a[78]]){delete _0xac4ax28[_0xfc5a[82]][_0xfc5a[78]]};return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[46]))[_0xfc5a[45]](saveUpdates(_0xac4ax28[_0xfc5a[82]],null,_0xfc5a[46]))[_0xfc5a[45]](respondWithResult(_0xac4ax15,null,_0xfc5a[46]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[46]))};exports[_0xfc5a[48]]= function(_0xac4ax28,_0xac4ax15){return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[48]))[_0xfc5a[45]](removeEntity(_0xac4ax15,null,_0xfc5a[48]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[48]))};exports[_0xfc5a[83]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[83]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[84]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[83]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[83]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[83]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[83]))};exports[_0xfc5a[86]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[86]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[87]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[86]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[86]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[86]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[86]))};exports[_0xfc5a[88]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[88]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[89]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[88]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[88]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[88]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[88]))};exports[_0xfc5a[90]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[90]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[91]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[90]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[90]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[90]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[90]))};exports[_0xfc5a[92]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[92]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[93]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[92]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[92]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[92]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[92]))};exports[_0xfc5a[94]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax30=[];var _0xac4ax31;return db[_0xfc5a[93]][_0xfc5a[101]]({where:{id:_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]]},attributes:[_0xfc5a[78]],include:[{model:db[_0xfc5a[100]],as:_0xfc5a[98],attributes:[_0xfc5a[78]],raw:true}]})[_0xfc5a[45]](function(_0xac4ax34){if(_0xac4ax34){for(var _0xac4ax35=0;_0xac4ax35< _0xac4ax34[_0xfc5a[63]];_0xac4ax35+= 1){for(var _0xac4ax36=0;_0xac4ax36< _0xac4ax34[_0xac4ax35][_0xfc5a[98]][_0xfc5a[63]];_0xac4ax36+= 1){_0xac4ax30= _[_0xfc5a[99]](_0xac4ax30,[_0xac4ax34[_0xac4ax35][_0xfc5a[98]][_0xac4ax36][_0xfc5a[78]]])}};return _0xac4ax30}})[_0xfc5a[45]](function(_0xac4ax33){if(_0xac4ax33){return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})}})[_0xfc5a[45]](function(_0xac4ax32){if(_0xac4ax32){_0xac4ax31= _0xac4ax32;return _0xac4ax31[_0xfc5a[97]](_0xac4ax30,{penalty:_0xac4ax28[_0xfc5a[82]][_0xfc5a[96]]})}})[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax31[_0xfc5a[94]](_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]])}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[94]))[_0xfc5a[45]](respondWithStatusCode(_0xac4ax15,null,_0xfc5a[94]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[94]))};exports[_0xfc5a[102]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax30=[];var _0xac4ax31;return db[_0xfc5a[93]][_0xfc5a[101]]({where:{id:_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]]},attributes:[_0xfc5a[78]],include:[{model:db[_0xfc5a[100]],as:_0xfc5a[98],attributes:[_0xfc5a[78]],raw:true}]})[_0xfc5a[45]](function(_0xac4ax34){if(_0xac4ax34){for(var _0xac4ax35=0;_0xac4ax35< _0xac4ax34[_0xfc5a[63]];_0xac4ax35+= 1){for(var _0xac4ax36=0;_0xac4ax36< _0xac4ax34[_0xac4ax35][_0xfc5a[98]][_0xfc5a[63]];_0xac4ax36+= 1){_0xac4ax30= _[_0xfc5a[99]](_0xac4ax30,[_0xac4ax34[_0xac4ax35][_0xfc5a[98]][_0xac4ax36][_0xfc5a[78]]])}};return _0xac4ax30}})[_0xfc5a[45]](function(_0xac4ax33){if(_0xac4ax33){return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})}})[_0xfc5a[45]](function(_0xac4ax32){if(_0xac4ax32){_0xac4ax31= _0xac4ax32;return _0xac4ax31[_0xfc5a[103]](_0xac4ax30)}})[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax31){return _0xac4ax31[_0xfc5a[102]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]])}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[102]))[_0xfc5a[45]](respondWithStatusCode(_0xac4ax15,null,_0xfc5a[102]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[102]))};exports[_0xfc5a[97]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax37,_0xac4ax31;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[97]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax31= _0xac4ax18;return _0xac4ax18[_0xfc5a[97]](_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]],_[_0xfc5a[113]](_0xac4ax28[_0xfc5a[82]],[_0xfc5a[95],_0xfc5a[78]])|| {})};return null})[_0xfc5a[45]](function(_0xac4ax39){_0xac4ax37= _0xac4ax39|| [];if(_0xac4ax31&& _0xac4ax28[_0xfc5a[82]][_0xfc5a[112]]){return db[_0xfc5a[100]][_0xfc5a[101]]({where:{id:_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]]},attributes:[_0xfc5a[78],_0xfc5a[51],_0xfc5a[107]],raw:true})}})[_0xfc5a[45]](function(_0xac4ax39){if(_0xac4ax39&& _0xac4ax39[_0xfc5a[63]]){var _0xac4ax3a=[];for(var _0xac4ax35=0;_0xac4ax35< _0xac4ax39[_0xfc5a[63]];_0xac4ax35++){_0xac4ax3a[_0xfc5a[110]](db[_0xfc5a[109]][_0xfc5a[108]]({membername:_0xac4ax39[_0xac4ax35][_0xfc5a[51]],UserId:_0xac4ax39[_0xac4ax35][_0xfc5a[78]],queue_name:_0xac4ax31[_0xfc5a[51]],VoiceQueueId:_0xac4ax31[_0xfc5a[78]],interface:util[_0xfc5a[106]](_0xfc5a[104],_0xfc5a[105],_0xac4ax39[_0xac4ax35][_0xfc5a[51]]),paused:_0xac4ax39[_0xac4ax35][_0xfc5a[107]]|| false,penalty:_0xac4ax28[_0xfc5a[82]][_0xfc5a[96]]|| 0}))};return BPromise[_0xfc5a[111]](_0xac4ax3a)}})[_0xfc5a[45]](function(_0xac4ax38){return _0xac4ax37})[_0xfc5a[45]](respondWithResult(_0xac4ax15,null,_0xfc5a[97]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[97]))};exports[_0xfc5a[103]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax2f;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[103]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[103]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]])}})[_0xfc5a[45]](function(_0xac4ax3b){if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[112]]){_0xac4ax2f= _0xac4ax3b;return db[_0xfc5a[109]][_0xfc5a[48]]({where:{VoiceQueueId:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]],UserId:_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]]}})[_0xfc5a[45]](function(){return _0xac4ax2f})}})[_0xfc5a[45]](respondWithStatusCode(_0xac4ax15,null,_0xfc5a[103]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[103]))};exports[_0xfc5a[114]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[114]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[100]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[114]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[114]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[114]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[114]))};exports[_0xfc5a[115]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[115]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[109]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[115]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[115]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[115]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[115]))};exports[_0xfc5a[116]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[116]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[117]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[116]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[116]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[116]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[116]))};exports[_0xfc5a[118]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax3c;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[118]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[118]](_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]],_[_0xfc5a[113]](_0xac4ax28[_0xfc5a[82]],[_0xfc5a[95],_0xfc5a[78]])|| {})};return null})[_0xfc5a[146]](function(_0xac4ax3b){_0xac4ax3c= _0xac4ax3b|| [];var _0xac4ax3a=[];if(_0xac4ax3b){for(var _0xac4ax35=0;_0xac4ax35< _0xac4ax3b[_0xfc5a[63]];_0xac4ax35++){var _0xac4ax3d=_0xac4ax3b[_0xac4ax35][_0xfc5a[119]]({plain:true});var _0xac4ax3e=squel[_0xfc5a[144]]()[_0xfc5a[143]](_0xfc5a[142])[_0xfc5a[141]]([_0xfc5a[120],_0xfc5a[121],_0xfc5a[122],_0xfc5a[123],_0xfc5a[124],_0xfc5a[125],_0xfc5a[126]],squel[_0xfc5a[136]]()[_0xfc5a[135]](_0xfc5a[120])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[121])[_0xfc5a[135]](_0xfc5a[78])[_0xfc5a[135]](_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[135]](_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[125])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[126])[_0xfc5a[133]](_0xfc5a[139])[_0xfc5a[68]](_0xfc5a[138],_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[68]](_0xfc5a[137])[_0xfc5a[68]](_0xfc5a[127],squel[_0xfc5a[136]]()[_0xfc5a[135]](_0xfc5a[134])[_0xfc5a[133]](_0xfc5a[132])[_0xfc5a[68]](_0xfc5a[130],_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[68]](_0xfc5a[129],_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]].toString())[_0xfc5a[68]](_0xfc5a[128]))).toString();_0xac4ax3a[_0xfc5a[110]](db[_0xfc5a[145]][_0xfc5a[58]](_0xac4ax3e))};return BPromise[_0xfc5a[111]](_0xac4ax3a)}})[_0xfc5a[45]](function(){return _0xac4ax3c})[_0xfc5a[45]](respondWithResult(_0xac4ax15,null,_0xfc5a[118]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[118]))};exports[_0xfc5a[147]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax3c;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[147]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[147]](_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]],_[_0xfc5a[113]](_0xac4ax28[_0xfc5a[82]],[_0xfc5a[95],_0xfc5a[78]])|| {})};return null})[_0xfc5a[146]](function(_0xac4ax3b){_0xac4ax3c= _0xac4ax3b|| [];var _0xac4ax3a=[];if(_0xac4ax3b){for(var _0xac4ax35=0;_0xac4ax35< _0xac4ax3b[_0xfc5a[63]];_0xac4ax35++){var _0xac4ax3d=_0xac4ax3b[_0xac4ax35][_0xfc5a[119]]({plain:true});var _0xac4ax3e=squel[_0xfc5a[144]]()[_0xfc5a[143]](_0xfc5a[148])[_0xfc5a[141]]([_0xfc5a[120],_0xfc5a[122],_0xfc5a[123],_0xfc5a[124],_0xfc5a[125],_0xfc5a[126]],squel[_0xfc5a[136]]()[_0xfc5a[135]](_0xfc5a[120])[_0xfc5a[135]](_0xfc5a[78])[_0xfc5a[135]](_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[135]](_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[125])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[126])[_0xfc5a[133]](_0xfc5a[139])[_0xfc5a[68]](_0xfc5a[138],_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[68]](_0xfc5a[137])).toString();_0xac4ax3a[_0xfc5a[110]](db[_0xfc5a[145]][_0xfc5a[58]](_0xac4ax3e))};return BPromise[_0xfc5a[111]](_0xac4ax3a)}})[_0xfc5a[45]](function(){return _0xac4ax3c})[_0xfc5a[45]](respondWithResult(_0xac4ax15,null,_0xfc5a[147]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[147]))};exports[_0xfc5a[149]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax2f;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[149]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[149]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]])}})[_0xfc5a[45]](function(_0xac4ax3b){if(_0xac4ax3b){_0xac4ax2f= _0xac4ax3b;return db[_0xfc5a[91]][_0xfc5a[48]]({where:{ListId:_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]],VoiceQueueId:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](function(){return _0xac4ax2f})}})[_0xfc5a[45]](respondWithStatusCode(_0xac4ax15,null,_0xfc5a[149]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[149]))};exports[_0xfc5a[150]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax2f;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[150]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[150]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]])}})[_0xfc5a[45]](function(_0xac4ax3b){if(_0xac4ax3b){_0xac4ax2f= _0xac4ax3b;return db[_0xfc5a[84]][_0xfc5a[48]]({where:{ListId:_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]],VoiceQueueId:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](function(){return _0xac4ax2f})}})[_0xfc5a[45]](respondWithStatusCode(_0xac4ax15,null,_0xfc5a[150]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[150]))};exports[_0xfc5a[151]]= function(_0xac4ax28,_0xac4ax18,_0xac4ax2c){var _0xac4ax1b={};var _0xac4ax29={};var _0xac4ax2d;var _0xac4ax1c;return db[_0xfc5a[56]][_0xfc5a[85]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax18,null,_0xfc5a[151]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){_0xac4ax2d= _0xac4ax18;_0xac4ax29[_0xfc5a[54]]= _[_0xfc5a[57]](db[_0xfc5a[117]][_0xfc5a[55]]);_0xac4ax29[_0xfc5a[58]]= _[_0xfc5a[57]](_0xac4ax28[_0xfc5a[58]]);_0xac4ax29[_0xfc5a[59]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],_0xac4ax29[_0xfc5a[58]]);_0xac4ax1b[_0xfc5a[61]]= _[_0xfc5a[60]](_0xac4ax29[_0xfc5a[54]],qs[_0xfc5a[62]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[62]]));_0xac4ax1b[_0xfc5a[61]]= (_0xac4ax1b[_0xfc5a[61]][_0xfc5a[63]])?_0xac4ax1b[_0xfc5a[61]]:_0xac4ax29[_0xfc5a[54]];_0xac4ax1b[_0xfc5a[66]]= qs[_0xfc5a[67]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[67]]);_0xac4ax1b[_0xfc5a[68]]= qs[_0xfc5a[59]](_[_0xfc5a[69]](_0xac4ax28[_0xfc5a[58]],_0xac4ax29[_0xfc5a[59]]));if(_0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]){_0xac4ax1b[_0xfc5a[68]]= _[_0xfc5a[73]](_0xac4ax1b[_0xfc5a[68]],{$or:_[_0xfc5a[72]](_0xac4ax1b[_0xfc5a[61]],function(_0xac4ax2a){var _0xac4ax2b={};_0xac4ax2b[_0xac4ax2a]= {$like:_0xfc5a[71]+ _0xac4ax28[_0xfc5a[58]][_0xfc5a[70]]+ _0xfc5a[71]};return _0xac4ax2b})})};_0xac4ax1b= _[_0xfc5a[73]]({},_0xac4ax1b,_0xac4ax28[_0xfc5a[74]]);return _0xac4ax2d[_0xfc5a[151]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2f){if(_0xac4ax2f){_0xac4ax1c= _0xac4ax2f[_0xfc5a[63]];if(!_0xac4ax28[_0xfc5a[58]][_0xfc5a[65]](_0xfc5a[64])){_0xac4ax1b[_0xfc5a[35]]= qs[_0xfc5a[35]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[35]]);_0xac4ax1b[_0xfc5a[34]]= qs[_0xfc5a[34]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[34]])};return _0xac4ax2d[_0xfc5a[151]](_0xac4ax1b)}})[_0xfc5a[45]](function(_0xac4ax2e){return _0xac4ax2e?{count:_0xac4ax1c,rows:_0xac4ax2e}:null})[_0xfc5a[45]](respondWithResult(_0xac4ax18,null,_0xfc5a[151]))[_0xfc5a[75]](handleError(_0xac4ax18,null,_0xfc5a[151]))};exports[_0xfc5a[147]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax3c;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[147]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[147]](_0xac4ax28[_0xfc5a[82]][_0xfc5a[95]],_[_0xfc5a[113]](_0xac4ax28[_0xfc5a[82]],[_0xfc5a[95],_0xfc5a[78]])|| {})};return null})[_0xfc5a[146]](function(_0xac4ax3b){_0xac4ax3c= _0xac4ax3b|| [];var _0xac4ax3a=[];if(_0xac4ax3b){for(var _0xac4ax35=0;_0xac4ax35< _0xac4ax3b[_0xfc5a[63]];_0xac4ax35++){var _0xac4ax3d=_0xac4ax3b[_0xac4ax35][_0xfc5a[119]]({plain:true});var _0xac4ax3e=squel[_0xfc5a[144]]()[_0xfc5a[143]](_0xfc5a[148])[_0xfc5a[141]]([_0xfc5a[120],_0xfc5a[122],_0xfc5a[123],_0xfc5a[124],_0xfc5a[125],_0xfc5a[126]],squel[_0xfc5a[136]]()[_0xfc5a[135]](_0xfc5a[120])[_0xfc5a[135]](_0xfc5a[78])[_0xfc5a[135]](_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[135]](_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[125])[_0xfc5a[135]](_0xfc5a[140],_0xfc5a[126])[_0xfc5a[133]](_0xfc5a[139])[_0xfc5a[68]](_0xfc5a[138],_0xac4ax3d[_0xfc5a[131]].toString())[_0xfc5a[68]](_0xfc5a[137])).toString();_0xac4ax3a[_0xfc5a[110]](db[_0xfc5a[145]][_0xfc5a[58]](_0xac4ax3e))};return BPromise[_0xfc5a[111]](_0xac4ax3a)}})[_0xfc5a[45]](function(){return _0xac4ax3c})[_0xfc5a[45]](respondWithResult(_0xac4ax15,null,_0xfc5a[147]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[147]))};exports[_0xfc5a[149]]= function(_0xac4ax28,_0xac4ax15,_0xac4ax2c){var _0xac4ax2f;return db[_0xfc5a[56]][_0xfc5a[80]]({where:{id:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](handleEntityNotFound(_0xac4ax15,null,_0xfc5a[149]))[_0xfc5a[45]](function(_0xac4ax18){if(_0xac4ax18){return _0xac4ax18[_0xfc5a[149]](_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]])}})[_0xfc5a[45]](function(_0xac4ax3b){if(_0xac4ax3b){_0xac4ax2f= _0xac4ax3b;return db[_0xfc5a[91]][_0xfc5a[48]]({where:{ListId:_0xac4ax28[_0xfc5a[58]][_0xfc5a[95]],VoiceQueueId:_0xac4ax28[_0xfc5a[79]][_0xfc5a[78]]}})[_0xfc5a[45]](function(){return _0xac4ax2f})}})[_0xfc5a[45]](respondWithStatusCode(_0xac4ax15,null,_0xfc5a[149]))[_0xfc5a[75]](handleError(_0xac4ax15,null,_0xfc5a[149]))}
\ No newline at end of file
+var _0x1bcc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67\x69\x6E\x49\x6E\x50\x61\x75\x73\x65","\x75\x70\x73\x65\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x70\x75\x73\x68","\x61\x6C\x6C","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x4D\x65\x6D\x62\x65\x72\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x67\x65\x74","\x70\x68\x6F\x6E\x65","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x4E\x4F\x54\x20\x45\x58\x49\x53\x54\x53\x20\x28\x3F\x29","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x69\x64\x20\x3D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x2E\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64\x20\x3D\x20\x3F","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F\x20","\x43\x6D\x4C\x69\x73\x74\x49\x64","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x66\x72\x6F\x6D","\x4E\x55\x4C\x4C","\x66\x69\x65\x6C\x64","\x73\x65\x6C\x65\x63\x74","\x70\x68\x6F\x6E\x65\x20\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x4E\x4F\x57\x28\x29","\x66\x72\x6F\x6D\x51\x75\x65\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x69\x6E\x74\x6F","\x69\x6E\x73\x65\x72\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73"];_0x1bcc[0];var jsonpatch=require(_0x1bcc[1]);var rp=require(_0x1bcc[2]);var moment=require(_0x1bcc[3]);var BPromise=require(_0x1bcc[4]);var util=require(_0x1bcc[5]);var path=require(_0x1bcc[6]);var sox=require(_0x1bcc[7]);var ejs=require(_0x1bcc[8]);var fs=require(_0x1bcc[9]);var _=require(_0x1bcc[10]);var squel=require(_0x1bcc[11]);var crypto=require(_0x1bcc[12]);var jsforce=require(_0x1bcc[13]);var toCsv=require(_0x1bcc[14]);var qs=require(_0x1bcc[15]);var logger=require(_0x1bcc[17])(_0x1bcc[16]);var utils=require(_0x1bcc[18]);var config=require(_0x1bcc[19]);var db=require(_0x1bcc[21])[_0x1bcc[20]];function respondWithStatusCode(_0xfc30x15,_0xfc30x16,_0xfc30x17){_0xfc30x16= _0xfc30x16|| 204;return function(_0xfc30x18){if(_0xfc30x18){logger[_0x1bcc[24]](_0x1bcc[22],_0xfc30x17,_0xfc30x16,_0x1bcc[23]);logger[_0x1bcc[26]](_0x1bcc[25],_0xfc30x17,_0xfc30x16,_0x1bcc[23]);return _0xfc30x15[_0x1bcc[27]](_0xfc30x16)};return _0xfc30x15[_0x1bcc[29]](304)[_0x1bcc[28]]()}}function respondWithResult(_0xfc30x15,_0xfc30x16,_0xfc30x17){_0xfc30x16= _0xfc30x16|| 200;return function(_0xfc30x18){if(_0xfc30x18){logger[_0x1bcc[24]](_0x1bcc[22],_0xfc30x17,_0xfc30x16,_0x1bcc[30]);logger[_0x1bcc[26]](_0x1bcc[25],_0xfc30x17,_0xfc30x16,_0x1bcc[30],JSON[_0x1bcc[31]](_0xfc30x18));return _0xfc30x15[_0x1bcc[29]](_0xfc30x16)[_0x1bcc[32]](_0xfc30x18)};return _0xfc30x15[_0x1bcc[29]](304)[_0x1bcc[28]]()}}function respondWithFilteredResult(_0xfc30x15,_0xfc30x1b,_0xfc30x17){return function(_0xfc30x18){if(_0xfc30x18){var _0xfc30x1c=_0xfc30x18[_0x1bcc[33]],_0xfc30x1d=_0xfc30x1b[_0x1bcc[34]],_0xfc30x1e=_0xfc30x1b[_0x1bcc[34]]+ _0xfc30x1b[_0x1bcc[35]],_0xfc30x16;if(_0xfc30x1e>= _0xfc30x1c){_0xfc30x1e= _0xfc30x1c;_0xfc30x16= 200}else {_0xfc30x16= 206};_0xfc30x15[_0x1bcc[29]](_0xfc30x16);logger[_0x1bcc[24]](_0x1bcc[22],_0xfc30x17,_0xfc30x16,_0x1bcc[36]);logger[_0x1bcc[26]](_0x1bcc[25],_0xfc30x17,_0xfc30x16,_0x1bcc[30],JSON[_0x1bcc[31]](_0xfc30x18));return _0xfc30x15[_0x1bcc[40]](_0x1bcc[37],_0xfc30x1d+ _0x1bcc[38]+ _0xfc30x1e+ _0x1bcc[39]+ _0xfc30x1c)[_0x1bcc[32]](_0xfc30x18)};return null}}function patchUpdates(_0xfc30x20){return function(_0xfc30x18){try{jsonpatch[_0x1bcc[41]](_0xfc30x18,_0xfc30x20,true)}catch(err){return BPromise[_0x1bcc[42]](err)};return _0xfc30x18[_0x1bcc[43]]()}}function saveUpdates(_0xfc30x22,_0xfc30x16,_0xfc30x17){return function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[46]](_0xfc30x22)[_0x1bcc[45]](function(_0xfc30x23){logger[_0x1bcc[24]](_0x1bcc[22],_0xfc30x17,_0xfc30x16,_0x1bcc[44]);logger[_0x1bcc[26]](_0x1bcc[25],_0xfc30x17,_0xfc30x16,_0x1bcc[44],JSON[_0x1bcc[31]](_0xfc30x18));return _0xfc30x23})};return null}}function removeEntity(_0xfc30x15,_0xfc30x16,_0xfc30x17){return function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[48]]()[_0x1bcc[45]](function(){logger[_0x1bcc[24]](_0x1bcc[22],_0xfc30x17,_0xfc30x16,_0x1bcc[47]);logger[_0x1bcc[26]](_0x1bcc[25],_0xfc30x17,_0xfc30x16,_0x1bcc[47],JSON[_0x1bcc[31]](_0xfc30x18));_0xfc30x15[_0x1bcc[29]](204)[_0x1bcc[28]]()})}}}function handleEntityNotFound(_0xfc30x15,_0xfc30x16,_0xfc30x17){return function(_0xfc30x18){if(!_0xfc30x18){logger[_0x1bcc[50]](_0x1bcc[22],_0xfc30x17,404,_0x1bcc[49]);_0xfc30x15[_0x1bcc[29]](404)[_0x1bcc[28]]();return null};return _0xfc30x18}}function handleError(_0xfc30x15,_0xfc30x16,_0xfc30x17){_0xfc30x16= _0xfc30x16|| 500;return function(_0xfc30x27){logger[_0x1bcc[50]](_0x1bcc[22],_0xfc30x17,_0xfc30x16,JSON[_0x1bcc[31]](_0xfc30x27));delete _0xfc30x27[_0x1bcc[51]];_0xfc30x15[_0x1bcc[29]](_0xfc30x16)[_0x1bcc[52]](_0xfc30x27)}}exports[_0x1bcc[53]]= function(_0xfc30x28,_0xfc30x15){var _0xfc30x1b={},_0xfc30x29={};_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[56]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return db[_0x1bcc[56]][_0x1bcc[76]](_0xfc30x1b)[_0x1bcc[45]](respondWithFilteredResult(_0xfc30x15,_0xfc30x1b,_0x1bcc[53]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[53]))};exports[_0x1bcc[77]]= function(_0xfc30x28,_0xfc30x15){var _0xfc30x1b={raw:false,where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}},_0xfc30x29={};_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[56]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return db[_0x1bcc[56]][_0x1bcc[80]](_0xfc30x1b)[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[77]))[_0x1bcc[45]](respondWithResult(_0xfc30x15,null,_0x1bcc[77]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[77]))};exports[_0x1bcc[81]]= function(_0xfc30x28,_0xfc30x15){return db[_0x1bcc[56]][_0x1bcc[81]](_0xfc30x28[_0x1bcc[82]],{})[_0x1bcc[45]](respondWithResult(_0xfc30x15,201,_0x1bcc[81]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[81]))};exports[_0x1bcc[46]]= function(_0xfc30x28,_0xfc30x15){if(_0xfc30x28[_0x1bcc[82]][_0x1bcc[78]]){delete _0xfc30x28[_0x1bcc[82]][_0x1bcc[78]]};return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[46]))[_0x1bcc[45]](saveUpdates(_0xfc30x28[_0x1bcc[82]],null,_0x1bcc[46]))[_0x1bcc[45]](respondWithResult(_0xfc30x15,null,_0x1bcc[46]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[46]))};exports[_0x1bcc[48]]= function(_0xfc30x28,_0xfc30x15){return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[48]))[_0x1bcc[45]](removeEntity(_0xfc30x15,null,_0x1bcc[48]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[48]))};exports[_0x1bcc[83]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[83]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[84]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[83]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[83]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[83]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[83]))};exports[_0x1bcc[86]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[86]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[87]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[86]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[86]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[86]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[86]))};exports[_0x1bcc[88]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[88]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[89]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[88]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[88]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[88]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[88]))};exports[_0x1bcc[90]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[90]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[91]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[90]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[90]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[90]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[90]))};exports[_0x1bcc[92]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[92]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[93]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[92]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[92]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[92]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[92]))};exports[_0x1bcc[94]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x30=[];var _0xfc30x31;return db[_0x1bcc[93]][_0x1bcc[101]]({where:{id:_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]]},attributes:[_0x1bcc[78]],include:[{model:db[_0x1bcc[100]],as:_0x1bcc[98],attributes:[_0x1bcc[78]],raw:true}]})[_0x1bcc[45]](function(_0xfc30x34){if(_0xfc30x34){for(var _0xfc30x35=0;_0xfc30x35< _0xfc30x34[_0x1bcc[63]];_0xfc30x35+= 1){for(var _0xfc30x36=0;_0xfc30x36< _0xfc30x34[_0xfc30x35][_0x1bcc[98]][_0x1bcc[63]];_0xfc30x36+= 1){_0xfc30x30= _[_0x1bcc[99]](_0xfc30x30,[_0xfc30x34[_0xfc30x35][_0x1bcc[98]][_0xfc30x36][_0x1bcc[78]]])}};return _0xfc30x30}})[_0x1bcc[45]](function(_0xfc30x33){if(_0xfc30x33){return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})}})[_0x1bcc[45]](function(_0xfc30x32){if(_0xfc30x32){_0xfc30x31= _0xfc30x32;return _0xfc30x31[_0x1bcc[97]](_0xfc30x30,{penalty:_0xfc30x28[_0x1bcc[82]][_0x1bcc[96]]})}})[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x31[_0x1bcc[94]](_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]])}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[94]))[_0x1bcc[45]](respondWithStatusCode(_0xfc30x15,null,_0x1bcc[94]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[94]))};exports[_0x1bcc[102]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x30=[];var _0xfc30x31;return db[_0x1bcc[93]][_0x1bcc[101]]({where:{id:_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]]},attributes:[_0x1bcc[78]],include:[{model:db[_0x1bcc[100]],as:_0x1bcc[98],attributes:[_0x1bcc[78]],raw:true}]})[_0x1bcc[45]](function(_0xfc30x34){if(_0xfc30x34){for(var _0xfc30x35=0;_0xfc30x35< _0xfc30x34[_0x1bcc[63]];_0xfc30x35+= 1){for(var _0xfc30x36=0;_0xfc30x36< _0xfc30x34[_0xfc30x35][_0x1bcc[98]][_0x1bcc[63]];_0xfc30x36+= 1){_0xfc30x30= _[_0x1bcc[99]](_0xfc30x30,[_0xfc30x34[_0xfc30x35][_0x1bcc[98]][_0xfc30x36][_0x1bcc[78]]])}};return _0xfc30x30}})[_0x1bcc[45]](function(_0xfc30x33){if(_0xfc30x33){return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})}})[_0x1bcc[45]](function(_0xfc30x32){if(_0xfc30x32){_0xfc30x31= _0xfc30x32;return _0xfc30x31[_0x1bcc[103]](_0xfc30x30)}})[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x31){return _0xfc30x31[_0x1bcc[102]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]])}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[102]))[_0x1bcc[45]](respondWithStatusCode(_0xfc30x15,null,_0x1bcc[102]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[102]))};exports[_0x1bcc[97]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x37,_0xfc30x31;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[97]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x31= _0xfc30x18;return _0xfc30x18[_0x1bcc[97]](_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]],_[_0x1bcc[113]](_0xfc30x28[_0x1bcc[82]],[_0x1bcc[95],_0x1bcc[78]])|| {})};return null})[_0x1bcc[45]](function(_0xfc30x39){_0xfc30x37= _0xfc30x39|| [];if(_0xfc30x31&& _0xfc30x28[_0x1bcc[82]][_0x1bcc[112]]){return db[_0x1bcc[100]][_0x1bcc[101]]({where:{id:_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]]},attributes:[_0x1bcc[78],_0x1bcc[51],_0x1bcc[107]],raw:true})}})[_0x1bcc[45]](function(_0xfc30x39){if(_0xfc30x39&& _0xfc30x39[_0x1bcc[63]]){var _0xfc30x3a=[];for(var _0xfc30x35=0;_0xfc30x35< _0xfc30x39[_0x1bcc[63]];_0xfc30x35++){_0xfc30x3a[_0x1bcc[110]](db[_0x1bcc[109]][_0x1bcc[108]]({membername:_0xfc30x39[_0xfc30x35][_0x1bcc[51]],UserId:_0xfc30x39[_0xfc30x35][_0x1bcc[78]],queue_name:_0xfc30x31[_0x1bcc[51]],VoiceQueueId:_0xfc30x31[_0x1bcc[78]],interface:util[_0x1bcc[106]](_0x1bcc[104],_0x1bcc[105],_0xfc30x39[_0xfc30x35][_0x1bcc[51]]),paused:_0xfc30x39[_0xfc30x35][_0x1bcc[107]]|| false,penalty:_0xfc30x28[_0x1bcc[82]][_0x1bcc[96]]|| 0}))};return BPromise[_0x1bcc[111]](_0xfc30x3a)}})[_0x1bcc[45]](function(_0xfc30x38){return _0xfc30x37})[_0x1bcc[45]](respondWithResult(_0xfc30x15,null,_0x1bcc[97]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[97]))};exports[_0x1bcc[103]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x2f;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[103]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[103]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]])}})[_0x1bcc[45]](function(_0xfc30x3b){if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[112]]){_0xfc30x2f= _0xfc30x3b;return db[_0x1bcc[109]][_0x1bcc[48]]({where:{VoiceQueueId:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]],UserId:_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]]}})[_0x1bcc[45]](function(){return _0xfc30x2f})}})[_0x1bcc[45]](respondWithStatusCode(_0xfc30x15,null,_0x1bcc[103]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[103]))};exports[_0x1bcc[114]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[114]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[100]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[114]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[114]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[114]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[114]))};exports[_0x1bcc[115]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[115]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[109]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[115]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[115]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[115]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[115]))};exports[_0x1bcc[116]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[116]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[117]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[116]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[116]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[116]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[116]))};exports[_0x1bcc[118]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x3c;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[118]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[118]](_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]],_[_0x1bcc[113]](_0xfc30x28[_0x1bcc[82]],[_0x1bcc[95],_0x1bcc[78]])|| {})};return null})[_0x1bcc[146]](function(_0xfc30x3b){_0xfc30x3c= _0xfc30x3b|| [];var _0xfc30x3a=[];if(_0xfc30x3b){for(var _0xfc30x35=0;_0xfc30x35< _0xfc30x3b[_0x1bcc[63]];_0xfc30x35++){var _0xfc30x3d=_0xfc30x3b[_0xfc30x35][_0x1bcc[119]]({plain:true});var _0xfc30x3e=squel[_0x1bcc[144]]()[_0x1bcc[143]](_0x1bcc[142])[_0x1bcc[141]]([_0x1bcc[120],_0x1bcc[121],_0x1bcc[122],_0x1bcc[123],_0x1bcc[124],_0x1bcc[125],_0x1bcc[126]],squel[_0x1bcc[136]]()[_0x1bcc[135]](_0x1bcc[120],_0x1bcc[120])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[121])[_0x1bcc[135]](_0x1bcc[78],_0x1bcc[122])[_0x1bcc[135]](_0xfc30x3d[_0x1bcc[131]].toString(),_0x1bcc[123])[_0x1bcc[135]](_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]].toString(),_0x1bcc[124])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[125])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[126])[_0x1bcc[133]](_0x1bcc[139])[_0x1bcc[68]](_0x1bcc[138],_0xfc30x3d[_0x1bcc[131]].toString())[_0x1bcc[68]](_0x1bcc[137])[_0x1bcc[68]](_0x1bcc[127],squel[_0x1bcc[136]]()[_0x1bcc[135]](_0x1bcc[134])[_0x1bcc[133]](_0x1bcc[132])[_0x1bcc[68]](_0x1bcc[130],_0xfc30x3d[_0x1bcc[131]].toString())[_0x1bcc[68]](_0x1bcc[129],_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]].toString())[_0x1bcc[68]](_0x1bcc[128]))).toString();_0xfc30x3a[_0x1bcc[110]](db[_0x1bcc[145]][_0x1bcc[58]](_0xfc30x3e))};return BPromise[_0x1bcc[111]](_0xfc30x3a)}})[_0x1bcc[45]](function(){return _0xfc30x3c})[_0x1bcc[45]](respondWithResult(_0xfc30x15,null,_0x1bcc[118]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[118]))};exports[_0x1bcc[147]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x3c;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[147]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[147]](_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]],_[_0x1bcc[113]](_0xfc30x28[_0x1bcc[82]],[_0x1bcc[95],_0x1bcc[78]])|| {})};return null})[_0x1bcc[146]](function(_0xfc30x3b){_0xfc30x3c= _0xfc30x3b|| [];var _0xfc30x3a=[];if(_0xfc30x3b){for(var _0xfc30x35=0;_0xfc30x35< _0xfc30x3b[_0x1bcc[63]];_0xfc30x35++){var _0xfc30x3d=_0xfc30x3b[_0xfc30x35][_0x1bcc[119]]({plain:true});var _0xfc30x3e=squel[_0x1bcc[144]]()[_0x1bcc[143]](_0x1bcc[148])[_0x1bcc[141]]([_0x1bcc[120],_0x1bcc[122],_0x1bcc[123],_0x1bcc[124],_0x1bcc[125],_0x1bcc[126]],squel[_0x1bcc[136]]()[_0x1bcc[135]](_0x1bcc[120])[_0x1bcc[135]](_0x1bcc[78])[_0x1bcc[135]](_0xfc30x3d[_0x1bcc[131]].toString())[_0x1bcc[135]](_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[125])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[126])[_0x1bcc[133]](_0x1bcc[139])[_0x1bcc[68]](_0x1bcc[138],_0xfc30x3d[_0x1bcc[131]].toString())[_0x1bcc[68]](_0x1bcc[137])).toString();_0xfc30x3a[_0x1bcc[110]](db[_0x1bcc[145]][_0x1bcc[58]](_0xfc30x3e))};return BPromise[_0x1bcc[111]](_0xfc30x3a)}})[_0x1bcc[45]](function(){return _0xfc30x3c})[_0x1bcc[45]](respondWithResult(_0xfc30x15,null,_0x1bcc[147]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[147]))};exports[_0x1bcc[149]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x2f;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[149]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[149]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]])}})[_0x1bcc[45]](function(_0xfc30x3b){if(_0xfc30x3b){_0xfc30x2f= _0xfc30x3b;return db[_0x1bcc[91]][_0x1bcc[48]]({where:{ListId:_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]],VoiceQueueId:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](function(){return _0xfc30x2f})}})[_0x1bcc[45]](respondWithStatusCode(_0xfc30x15,null,_0x1bcc[149]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[149]))};exports[_0x1bcc[150]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x2f;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[150]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[150]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]])}})[_0x1bcc[45]](function(_0xfc30x3b){if(_0xfc30x3b){_0xfc30x2f= _0xfc30x3b;return db[_0x1bcc[84]][_0x1bcc[48]]({where:{ListId:_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]],VoiceQueueId:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](function(){return _0xfc30x2f})}})[_0x1bcc[45]](respondWithStatusCode(_0xfc30x15,null,_0x1bcc[150]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[150]))};exports[_0x1bcc[151]]= function(_0xfc30x28,_0xfc30x18,_0xfc30x2c){var _0xfc30x1b={};var _0xfc30x29={};var _0xfc30x2d;var _0xfc30x1c;return db[_0x1bcc[56]][_0x1bcc[85]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x18,null,_0x1bcc[151]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){_0xfc30x2d= _0xfc30x18;_0xfc30x29[_0x1bcc[54]]= _[_0x1bcc[57]](db[_0x1bcc[117]][_0x1bcc[55]]);_0xfc30x29[_0x1bcc[58]]= _[_0x1bcc[57]](_0xfc30x28[_0x1bcc[58]]);_0xfc30x29[_0x1bcc[59]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],_0xfc30x29[_0x1bcc[58]]);_0xfc30x1b[_0x1bcc[61]]= _[_0x1bcc[60]](_0xfc30x29[_0x1bcc[54]],qs[_0x1bcc[62]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[62]]));_0xfc30x1b[_0x1bcc[61]]= (_0xfc30x1b[_0x1bcc[61]][_0x1bcc[63]])?_0xfc30x1b[_0x1bcc[61]]:_0xfc30x29[_0x1bcc[54]];_0xfc30x1b[_0x1bcc[66]]= qs[_0x1bcc[67]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[67]]);_0xfc30x1b[_0x1bcc[68]]= qs[_0x1bcc[59]](_[_0x1bcc[69]](_0xfc30x28[_0x1bcc[58]],_0xfc30x29[_0x1bcc[59]]));if(_0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]){_0xfc30x1b[_0x1bcc[68]]= _[_0x1bcc[73]](_0xfc30x1b[_0x1bcc[68]],{$or:_[_0x1bcc[72]](_0xfc30x1b[_0x1bcc[61]],function(_0xfc30x2a){var _0xfc30x2b={};_0xfc30x2b[_0xfc30x2a]= {$like:_0x1bcc[71]+ _0xfc30x28[_0x1bcc[58]][_0x1bcc[70]]+ _0x1bcc[71]};return _0xfc30x2b})})};_0xfc30x1b= _[_0x1bcc[73]]({},_0xfc30x1b,_0xfc30x28[_0x1bcc[74]]);return _0xfc30x2d[_0x1bcc[151]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2f){if(_0xfc30x2f){_0xfc30x1c= _0xfc30x2f[_0x1bcc[63]];if(!_0xfc30x28[_0x1bcc[58]][_0x1bcc[65]](_0x1bcc[64])){_0xfc30x1b[_0x1bcc[35]]= qs[_0x1bcc[35]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[35]]);_0xfc30x1b[_0x1bcc[34]]= qs[_0x1bcc[34]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[34]])};return _0xfc30x2d[_0x1bcc[151]](_0xfc30x1b)}})[_0x1bcc[45]](function(_0xfc30x2e){return _0xfc30x2e?{count:_0xfc30x1c,rows:_0xfc30x2e}:null})[_0x1bcc[45]](respondWithResult(_0xfc30x18,null,_0x1bcc[151]))[_0x1bcc[75]](handleError(_0xfc30x18,null,_0x1bcc[151]))};exports[_0x1bcc[147]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x3c;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[147]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[147]](_0xfc30x28[_0x1bcc[82]][_0x1bcc[95]],_[_0x1bcc[113]](_0xfc30x28[_0x1bcc[82]],[_0x1bcc[95],_0x1bcc[78]])|| {})};return null})[_0x1bcc[146]](function(_0xfc30x3b){_0xfc30x3c= _0xfc30x3b|| [];var _0xfc30x3a=[];if(_0xfc30x3b){for(var _0xfc30x35=0;_0xfc30x35< _0xfc30x3b[_0x1bcc[63]];_0xfc30x35++){var _0xfc30x3d=_0xfc30x3b[_0xfc30x35][_0x1bcc[119]]({plain:true});var _0xfc30x3e=squel[_0x1bcc[144]]()[_0x1bcc[143]](_0x1bcc[148])[_0x1bcc[141]]([_0x1bcc[120],_0x1bcc[122],_0x1bcc[123],_0x1bcc[124],_0x1bcc[125],_0x1bcc[126]],squel[_0x1bcc[136]]()[_0x1bcc[135]](_0x1bcc[120])[_0x1bcc[135]](_0x1bcc[78])[_0x1bcc[135]](_0xfc30x3d[_0x1bcc[131]].toString())[_0x1bcc[135]](_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[125])[_0x1bcc[135]](_0x1bcc[140],_0x1bcc[126])[_0x1bcc[133]](_0x1bcc[139])[_0x1bcc[68]](_0x1bcc[138],_0xfc30x3d[_0x1bcc[131]].toString())[_0x1bcc[68]](_0x1bcc[137])).toString();_0xfc30x3a[_0x1bcc[110]](db[_0x1bcc[145]][_0x1bcc[58]](_0xfc30x3e))};return BPromise[_0x1bcc[111]](_0xfc30x3a)}})[_0x1bcc[45]](function(){return _0xfc30x3c})[_0x1bcc[45]](respondWithResult(_0xfc30x15,null,_0x1bcc[147]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[147]))};exports[_0x1bcc[149]]= function(_0xfc30x28,_0xfc30x15,_0xfc30x2c){var _0xfc30x2f;return db[_0x1bcc[56]][_0x1bcc[80]]({where:{id:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](handleEntityNotFound(_0xfc30x15,null,_0x1bcc[149]))[_0x1bcc[45]](function(_0xfc30x18){if(_0xfc30x18){return _0xfc30x18[_0x1bcc[149]](_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]])}})[_0x1bcc[45]](function(_0xfc30x3b){if(_0xfc30x3b){_0xfc30x2f= _0xfc30x3b;return db[_0x1bcc[91]][_0x1bcc[48]]({where:{ListId:_0xfc30x28[_0x1bcc[58]][_0x1bcc[95]],VoiceQueueId:_0xfc30x28[_0x1bcc[79]][_0x1bcc[78]]}})[_0x1bcc[45]](function(){return _0xfc30x2f})}})[_0x1bcc[45]](respondWithStatusCode(_0xfc30x15,null,_0x1bcc[149]))[_0x1bcc[75]](handleError(_0xfc30x15,null,_0x1bcc[149]))}
\ No newline at end of file
index 558d001..a5a647d 100644 (file)
@@ -1 +1 @@
-var _0xaace=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xaace[0];var _=require(_0xaace[1]);var util=require(_0xaace[2]);var logger=require(_0xaace[4])(_0xaace[3]);var attributes=require(_0xaace[5]);module[_0xaace[6]]= function(_0x23a6x5,_0x23a6x6){return _0x23a6x5[_0xaace[9]](_0xaace[7],attributes,{tableName:_0xaace[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x2468=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x2468[0];var _=require(_0x2468[1]);var util=require(_0x2468[2]);var logger=require(_0x2468[4])(_0x2468[3]);var attributes=require(_0x2468[5]);module[_0x2468[6]]= function(_0xa557x5,_0xa557x6){return _0xa557x5[_0x2468[9]](_0x2468[7],attributes,{tableName:_0x2468[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 7783321..99a8752 100644 (file)
@@ -1 +1 @@
-var _0x32e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x53\x68\x6F\x77\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x66\x69\x6E\x64"];_0x32e0[0];var _=require(_0x32e0[1]);var util=require(_0x32e0[2]);var moment=require(_0x32e0[3]);var BPromise=require(_0x32e0[4]);var db=require(_0x32e0[6])[_0x32e0[5]];var utils=require(_0x32e0[7]);var logger=require(_0x32e0[9])(_0x32e0[8]);var jayson=require(_0x32e0[10]);var client=jayson[_0x32e0[12]][_0x32e0[11]]({port:9002});function respondWithRpcPromise(_0x29eaxb,_0x29eaxc,_0x29eaxd){return  new BPromise(function(_0x29eaxe,_0x29eaxf){return client[_0x32e0[25]](_0x29eaxb,_0x29eaxd)[_0x32e0[24]](function(_0x29eax11){logger[_0x32e0[17]](_0x32e0[13],_0x29eaxc,_0x32e0[16]);logger[_0x32e0[20]](_0x32e0[18],_0x29eaxc,_0x32e0[16],JSON[_0x32e0[19]](_0x29eax11));if(_0x29eax11[_0x32e0[14]]){if(_0x29eax11[_0x32e0[14]][_0x32e0[21]]=== 500){logger[_0x32e0[14]](_0x32e0[13],_0x29eaxc,_0x29eax11[_0x32e0[14]][_0x32e0[22]]);return _0x29eaxf(_0x29eax11[_0x32e0[14]][_0x32e0[22]])};logger[_0x32e0[14]](_0x32e0[13],_0x29eaxc,_0x29eax11[_0x32e0[14]][_0x32e0[22]]);return _0x29eaxe(_0x29eax11[_0x32e0[14]][_0x32e0[22]])}else {logger[_0x32e0[17]](_0x32e0[13],_0x29eaxc,_0x32e0[16]);_0x29eaxe(_0x29eax11[_0x32e0[23]][_0x32e0[22]])}})[_0x32e0[15]](function(_0x29eax10){logger[_0x32e0[14]](_0x32e0[13],_0x29eaxc,_0x29eax10);_0x29eaxf(_0x29eax10)})})}exports[_0x32e0[26]]= function(_0x29eaxd){var _0x29eax12=this;return  new Promise(function(_0x29eaxe,_0x29eaxf){return db[_0x32e0[37]][_0x32e0[36]]({raw:_0x29eaxd[_0x32e0[27]]?(_0x29eaxd[_0x32e0[27]][_0x32e0[28]]=== undefined)?true:false:true,where:_0x29eaxd[_0x32e0[27]]?_0x29eaxd[_0x32e0[27]][_0x32e0[29]]|| null:null,attributes:_0x29eaxd[_0x32e0[27]]?_0x29eaxd[_0x32e0[27]][_0x32e0[30]]|| null:null,limit:_0x29eaxd[_0x32e0[27]]?_0x29eaxd[_0x32e0[27]][_0x32e0[31]]|| null:null,include:_0x29eaxd[_0x32e0[27]]?(_0x29eaxd[_0x32e0[27]][_0x32e0[32]]?_[_0x32e0[35]](_0x29eaxd[_0x32e0[27]][_0x32e0[32]],function(_0x29eax13){return {model:db[_0x29eax13[_0x32e0[33]]],as:_0x29eax13[_0x32e0[34]],attributes:_0x29eax13[_0x32e0[30]],include:_0x29eax13[_0x32e0[32]]?_[_0x32e0[35]](_0x29eax13[_0x32e0[32]],function(_0x29eax14){return {model:db[_0x29eax14[_0x32e0[33]]],as:_0x29eax14[_0x32e0[34]],attributes:_0x29eax14[_0x32e0[30]],include:_0x29eax14[_0x32e0[32]]?_[_0x32e0[35]](_0x29eax14[_0x32e0[32]],function(_0x29eax15){return {model:db[_0x29eax15[_0x32e0[33]]],as:_0x29eax15[_0x32e0[34]],attributes:_0x29eax15[_0x32e0[30]]}}):[]}}):[]}}):[]):[]})[_0x32e0[24]](function(_0x29eax11){logger[_0x32e0[17]](_0x32e0[26],_0x29eaxd);logger[_0x32e0[20]](_0x32e0[26],_0x29eaxd,JSON[_0x32e0[19]](_0x29eax11));_0x29eaxe(_0x29eax11)})[_0x32e0[15]](function(_0x29eax10){logger[_0x32e0[14]](_0x32e0[26],_0x29eax10[_0x32e0[22]],_0x29eaxd);_0x29eaxf(_0x29eax12[_0x32e0[14]](500,_0x29eax10[_0x32e0[22]]))})})};exports[_0x32e0[38]]= function(_0x29eaxd){var _0x29eax12=this;return  new Promise(function(_0x29eaxe,_0x29eaxf){return db[_0x32e0[37]][_0x32e0[39]]({raw:_0x29eaxd[_0x32e0[27]]?(_0x29eaxd[_0x32e0[27]][_0x32e0[28]]=== undefined)?true:false:true,where:_0x29eaxd[_0x32e0[27]]?_0x29eaxd[_0x32e0[27]][_0x32e0[29]]|| null:null,attributes:_0x29eaxd[_0x32e0[27]]?_0x29eaxd[_0x32e0[27]][_0x32e0[30]]|| null:null,include:_0x29eaxd[_0x32e0[27]]?(_0x29eaxd[_0x32e0[27]][_0x32e0[32]]?_[_0x32e0[35]](_0x29eaxd[_0x32e0[27]][_0x32e0[32]],function(_0x29eax13){return {model:db[_0x29eax13[_0x32e0[33]]],as:_0x29eax13[_0x32e0[34]],attributes:_0x29eax13[_0x32e0[30]],include:_0x29eax13[_0x32e0[32]]?_[_0x32e0[35]](_0x29eax13[_0x32e0[32]],function(_0x29eax14){return {model:db[_0x29eax14[_0x32e0[33]]],as:_0x29eax14[_0x32e0[34]],attributes:_0x29eax14[_0x32e0[30]],include:_0x29eax14[_0x32e0[32]]?_[_0x32e0[35]](_0x29eax14[_0x32e0[32]],function(_0x29eax15){return {model:db[_0x29eax15[_0x32e0[33]]],as:_0x29eax15[_0x32e0[34]],attributes:_0x29eax15[_0x32e0[30]]}}):[]}}):[]}}):[]):[]})[_0x32e0[24]](function(_0x29eax11){logger[_0x32e0[17]](_0x32e0[38],_0x29eaxd);logger[_0x32e0[20]](_0x32e0[38],_0x29eaxd,JSON[_0x32e0[19]](_0x29eax11));_0x29eaxe(_0x29eax11)})[_0x32e0[15]](function(_0x29eax10){logger[_0x32e0[14]](_0x32e0[38],_0x29eax10[_0x32e0[22]],_0x29eaxd);_0x29eaxf(_0x29eax12[_0x32e0[14]](500,_0x29eax10[_0x32e0[22]]))})})}
\ No newline at end of file
+var _0x14c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x53\x68\x6F\x77\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x66\x69\x6E\x64"];_0x14c4[0];var _=require(_0x14c4[1]);var util=require(_0x14c4[2]);var moment=require(_0x14c4[3]);var BPromise=require(_0x14c4[4]);var db=require(_0x14c4[6])[_0x14c4[5]];var utils=require(_0x14c4[7]);var logger=require(_0x14c4[9])(_0x14c4[8]);var jayson=require(_0x14c4[10]);var client=jayson[_0x14c4[12]][_0x14c4[11]]({port:9002});function respondWithRpcPromise(_0x981dxb,_0x981dxc,_0x981dxd){return  new BPromise(function(_0x981dxe,_0x981dxf){return client[_0x14c4[25]](_0x981dxb,_0x981dxd)[_0x14c4[24]](function(_0x981dx11){logger[_0x14c4[17]](_0x14c4[13],_0x981dxc,_0x14c4[16]);logger[_0x14c4[20]](_0x14c4[18],_0x981dxc,_0x14c4[16],JSON[_0x14c4[19]](_0x981dx11));if(_0x981dx11[_0x14c4[14]]){if(_0x981dx11[_0x14c4[14]][_0x14c4[21]]=== 500){logger[_0x14c4[14]](_0x14c4[13],_0x981dxc,_0x981dx11[_0x14c4[14]][_0x14c4[22]]);return _0x981dxf(_0x981dx11[_0x14c4[14]][_0x14c4[22]])};logger[_0x14c4[14]](_0x14c4[13],_0x981dxc,_0x981dx11[_0x14c4[14]][_0x14c4[22]]);return _0x981dxe(_0x981dx11[_0x14c4[14]][_0x14c4[22]])}else {logger[_0x14c4[17]](_0x14c4[13],_0x981dxc,_0x14c4[16]);_0x981dxe(_0x981dx11[_0x14c4[23]][_0x14c4[22]])}})[_0x14c4[15]](function(_0x981dx10){logger[_0x14c4[14]](_0x14c4[13],_0x981dxc,_0x981dx10);_0x981dxf(_0x981dx10)})})}exports[_0x14c4[26]]= function(_0x981dxd){var _0x981dx12=this;return  new Promise(function(_0x981dxe,_0x981dxf){return db[_0x14c4[37]][_0x14c4[36]]({raw:_0x981dxd[_0x14c4[27]]?(_0x981dxd[_0x14c4[27]][_0x14c4[28]]=== undefined)?true:false:true,where:_0x981dxd[_0x14c4[27]]?_0x981dxd[_0x14c4[27]][_0x14c4[29]]|| null:null,attributes:_0x981dxd[_0x14c4[27]]?_0x981dxd[_0x14c4[27]][_0x14c4[30]]|| null:null,limit:_0x981dxd[_0x14c4[27]]?_0x981dxd[_0x14c4[27]][_0x14c4[31]]|| null:null,include:_0x981dxd[_0x14c4[27]]?(_0x981dxd[_0x14c4[27]][_0x14c4[32]]?_[_0x14c4[35]](_0x981dxd[_0x14c4[27]][_0x14c4[32]],function(_0x981dx13){return {model:db[_0x981dx13[_0x14c4[33]]],as:_0x981dx13[_0x14c4[34]],attributes:_0x981dx13[_0x14c4[30]],include:_0x981dx13[_0x14c4[32]]?_[_0x14c4[35]](_0x981dx13[_0x14c4[32]],function(_0x981dx14){return {model:db[_0x981dx14[_0x14c4[33]]],as:_0x981dx14[_0x14c4[34]],attributes:_0x981dx14[_0x14c4[30]],include:_0x981dx14[_0x14c4[32]]?_[_0x14c4[35]](_0x981dx14[_0x14c4[32]],function(_0x981dx15){return {model:db[_0x981dx15[_0x14c4[33]]],as:_0x981dx15[_0x14c4[34]],attributes:_0x981dx15[_0x14c4[30]]}}):[]}}):[]}}):[]):[]})[_0x14c4[24]](function(_0x981dx11){logger[_0x14c4[17]](_0x14c4[26],_0x981dxd);logger[_0x14c4[20]](_0x14c4[26],_0x981dxd,JSON[_0x14c4[19]](_0x981dx11));_0x981dxe(_0x981dx11)})[_0x14c4[15]](function(_0x981dx10){logger[_0x14c4[14]](_0x14c4[26],_0x981dx10[_0x14c4[22]],_0x981dxd);_0x981dxf(_0x981dx12[_0x14c4[14]](500,_0x981dx10[_0x14c4[22]]))})})};exports[_0x14c4[38]]= function(_0x981dxd){var _0x981dx12=this;return  new Promise(function(_0x981dxe,_0x981dxf){return db[_0x14c4[37]][_0x14c4[39]]({raw:_0x981dxd[_0x14c4[27]]?(_0x981dxd[_0x14c4[27]][_0x14c4[28]]=== undefined)?true:false:true,where:_0x981dxd[_0x14c4[27]]?_0x981dxd[_0x14c4[27]][_0x14c4[29]]|| null:null,attributes:_0x981dxd[_0x14c4[27]]?_0x981dxd[_0x14c4[27]][_0x14c4[30]]|| null:null,include:_0x981dxd[_0x14c4[27]]?(_0x981dxd[_0x14c4[27]][_0x14c4[32]]?_[_0x14c4[35]](_0x981dxd[_0x14c4[27]][_0x14c4[32]],function(_0x981dx13){return {model:db[_0x981dx13[_0x14c4[33]]],as:_0x981dx13[_0x14c4[34]],attributes:_0x981dx13[_0x14c4[30]],include:_0x981dx13[_0x14c4[32]]?_[_0x14c4[35]](_0x981dx13[_0x14c4[32]],function(_0x981dx14){return {model:db[_0x981dx14[_0x14c4[33]]],as:_0x981dx14[_0x14c4[34]],attributes:_0x981dx14[_0x14c4[30]],include:_0x981dx14[_0x14c4[32]]?_[_0x14c4[35]](_0x981dx14[_0x14c4[32]],function(_0x981dx15){return {model:db[_0x981dx15[_0x14c4[33]]],as:_0x981dx15[_0x14c4[34]],attributes:_0x981dx15[_0x14c4[30]]}}):[]}}):[]}}):[]):[]})[_0x14c4[24]](function(_0x981dx11){logger[_0x14c4[17]](_0x14c4[38],_0x981dxd);logger[_0x14c4[20]](_0x14c4[38],_0x981dxd,JSON[_0x14c4[19]](_0x981dx11));_0x981dxe(_0x981dx11)})[_0x14c4[15]](function(_0x981dx10){logger[_0x14c4[14]](_0x14c4[38],_0x981dx10[_0x14c4[22]],_0x981dxd);_0x981dxf(_0x981dx12[_0x14c4[14]](500,_0x981dx10[_0x14c4[22]]))})})}
\ No newline at end of file
index 9caf9e4..ef630f4 100644 (file)
@@ -1 +1 @@
-var _0x4bc6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4bc6[0];var multer=require(_0x4bc6[1]);var util=require(_0x4bc6[2]);var path=require(_0x4bc6[3]);var express=require(_0x4bc6[4]);var router=express.Router();var auth=require(_0x4bc6[5]);var config=require(_0x4bc6[6]);var controller=require(_0x4bc6[7]);router[_0x4bc6[11]](_0x4bc6[8],auth[_0x4bc6[9]](),controller[_0x4bc6[10]]);router[_0x4bc6[11]](_0x4bc6[12],auth[_0x4bc6[9]](),controller[_0x4bc6[13]]);router[_0x4bc6[11]](_0x4bc6[14],auth[_0x4bc6[9]](),controller[_0x4bc6[15]]);router[_0x4bc6[17]](_0x4bc6[8],auth[_0x4bc6[9]](),controller[_0x4bc6[16]]);router[_0x4bc6[19]](_0x4bc6[14],auth[_0x4bc6[9]](),controller[_0x4bc6[18]]);router[_0x4bc6[21]](_0x4bc6[14],auth[_0x4bc6[9]](),controller[_0x4bc6[20]]);module[_0x4bc6[22]]= router
\ No newline at end of file
+var _0xe919=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe919[0];var multer=require(_0xe919[1]);var util=require(_0xe919[2]);var path=require(_0xe919[3]);var express=require(_0xe919[4]);var router=express.Router();var auth=require(_0xe919[5]);var config=require(_0xe919[6]);var controller=require(_0xe919[7]);router[_0xe919[11]](_0xe919[8],auth[_0xe919[9]](),controller[_0xe919[10]]);router[_0xe919[11]](_0xe919[12],auth[_0xe919[9]](),controller[_0xe919[13]]);router[_0xe919[11]](_0xe919[14],auth[_0xe919[9]](),controller[_0xe919[15]]);router[_0xe919[17]](_0xe919[8],auth[_0xe919[9]](),controller[_0xe919[16]]);router[_0xe919[19]](_0xe919[14],auth[_0xe919[9]](),controller[_0xe919[18]]);router[_0xe919[21]](_0xe919[14],auth[_0xe919[9]](),controller[_0xe919[20]]);module[_0xe919[22]]= router
\ No newline at end of file
index f94c4fd..58bbea8 100644 (file)
@@ -1 +1 @@
-var _0xa5ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xa5ef[0];var Sequelize=require(_0xa5ef[1]);var moment=require(_0xa5ef[2]);module[_0xa5ef[3]]= {type:{type:Sequelize[_0xa5ef[4]]},uniqueid:{type:Sequelize[_0xa5ef[4]]},calleridnum:{type:Sequelize[_0xa5ef[4]]},calleridname:{type:Sequelize[_0xa5ef[4]]},queue:{type:Sequelize[_0xa5ef[4]]},queuecallerjoinAt:{type:Sequelize[_0xa5ef[5]]},queuecallerleaveAt:{type:Sequelize[_0xa5ef[5]],set:function(_0x7d7bx3){var _0x7d7bx4=moment(_0x7d7bx3);var _0x7d7bx5=moment(this[_0xa5ef[9]](_0xa5ef[8]))[_0xa5ef[7]](_0xa5ef[6]);var _0x7d7bx6=_0x7d7bx4[_0xa5ef[11]](_0x7d7bx5,_0xa5ef[10]);this[_0xa5ef[13]](_0xa5ef[12],_0x7d7bx3);this[_0xa5ef[13]](_0xa5ef[14],_0x7d7bx6|| null)}},position:{type:Sequelize[_0xa5ef[15]]},count:{type:Sequelize[_0xa5ef[15]]},queuecallerabandon:{type:Sequelize[_0xa5ef[16]],defaultValue:false},queuecallerabandonAt:{type:Sequelize[_0xa5ef[5]]},queuecallercomplete:{type:Sequelize[_0xa5ef[16]],defaultValue:false},queuecallercompleteAt:{type:Sequelize[_0xa5ef[5]]},queuecallerexit:{type:Sequelize[_0xa5ef[16]],defaultValue:false},queuecallerexitAt:{type:Sequelize[_0xa5ef[5]]},queuecallerexitreason:{type:Sequelize[_0xa5ef[4]]},originalposition:{type:Sequelize[_0xa5ef[15]]},channel:{type:Sequelize[_0xa5ef[4]]},connectedlinenum:{type:Sequelize[_0xa5ef[4]]},connectedlinename:{type:Sequelize[_0xa5ef[4]]},accountcode:{type:Sequelize[_0xa5ef[4]]},context:{type:Sequelize[_0xa5ef[4]]},exten:{type:Sequelize[_0xa5ef[4]]},priority:{type:Sequelize[_0xa5ef[4]]},holdtime:{type:Sequelize[_0xa5ef[15]]},assigned:{type:Sequelize[_0xa5ef[16]],defaultValue:false},lastAssignedTo:{type:Sequelize[_0xa5ef[4]]}}
\ No newline at end of file
+var _0xe9bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xe9bd[0];var Sequelize=require(_0xe9bd[1]);var moment=require(_0xe9bd[2]);module[_0xe9bd[3]]= {type:{type:Sequelize[_0xe9bd[4]]},uniqueid:{type:Sequelize[_0xe9bd[4]]},calleridnum:{type:Sequelize[_0xe9bd[4]]},calleridname:{type:Sequelize[_0xe9bd[4]]},queue:{type:Sequelize[_0xe9bd[4]]},queuecallerjoinAt:{type:Sequelize[_0xe9bd[5]]},queuecallerleaveAt:{type:Sequelize[_0xe9bd[5]],set:function(_0x46dex3){var _0x46dex4=moment(_0x46dex3);var _0x46dex5=moment(this[_0xe9bd[9]](_0xe9bd[8]))[_0xe9bd[7]](_0xe9bd[6]);var _0x46dex6=_0x46dex4[_0xe9bd[11]](_0x46dex5,_0xe9bd[10]);this[_0xe9bd[13]](_0xe9bd[12],_0x46dex3);this[_0xe9bd[13]](_0xe9bd[14],_0x46dex6|| null)}},position:{type:Sequelize[_0xe9bd[15]]},count:{type:Sequelize[_0xe9bd[15]]},queuecallerabandon:{type:Sequelize[_0xe9bd[16]],defaultValue:false},queuecallerabandonAt:{type:Sequelize[_0xe9bd[5]]},queuecallercomplete:{type:Sequelize[_0xe9bd[16]],defaultValue:false},queuecallercompleteAt:{type:Sequelize[_0xe9bd[5]]},queuecallerexit:{type:Sequelize[_0xe9bd[16]],defaultValue:false},queuecallerexitAt:{type:Sequelize[_0xe9bd[5]]},queuecallerexitreason:{type:Sequelize[_0xe9bd[4]]},originalposition:{type:Sequelize[_0xe9bd[15]]},channel:{type:Sequelize[_0xe9bd[4]]},connectedlinenum:{type:Sequelize[_0xe9bd[4]]},connectedlinename:{type:Sequelize[_0xe9bd[4]]},accountcode:{type:Sequelize[_0xe9bd[4]]},context:{type:Sequelize[_0xe9bd[4]]},exten:{type:Sequelize[_0xe9bd[4]]},priority:{type:Sequelize[_0xe9bd[4]]},holdtime:{type:Sequelize[_0xe9bd[15]]},assigned:{type:Sequelize[_0xe9bd[16]],defaultValue:false},lastAssignedTo:{type:Sequelize[_0xe9bd[4]]}}
\ No newline at end of file
index e8ad067..980c94e 100644 (file)
@@ -1 +1 @@
-var _0x798d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x798d[0];var jsonpatch=require(_0x798d[1]);var rp=require(_0x798d[2]);var moment=require(_0x798d[3]);var BPromise=require(_0x798d[4]);var util=require(_0x798d[5]);var path=require(_0x798d[6]);var sox=require(_0x798d[7]);var ejs=require(_0x798d[8]);var fs=require(_0x798d[9]);var _=require(_0x798d[10]);var squel=require(_0x798d[11]);var crypto=require(_0x798d[12]);var jsforce=require(_0x798d[13]);var toCsv=require(_0x798d[14]);var qs=require(_0x798d[15]);var logger=require(_0x798d[17])(_0x798d[16]);var utils=require(_0x798d[18]);var config=require(_0x798d[19]);var db=require(_0x798d[21])[_0x798d[20]];function respondWithStatusCode(_0x89f9x15,_0x89f9x16,_0x89f9x17){_0x89f9x16= _0x89f9x16|| 204;return function(_0x89f9x18){if(_0x89f9x18){logger[_0x798d[24]](_0x798d[22],_0x89f9x17,_0x89f9x16,_0x798d[23]);logger[_0x798d[26]](_0x798d[25],_0x89f9x17,_0x89f9x16,_0x798d[23]);return _0x89f9x15[_0x798d[27]](_0x89f9x16)};return _0x89f9x15[_0x798d[29]](304)[_0x798d[28]]()}}function respondWithResult(_0x89f9x15,_0x89f9x16,_0x89f9x17){_0x89f9x16= _0x89f9x16|| 200;return function(_0x89f9x18){if(_0x89f9x18){logger[_0x798d[24]](_0x798d[22],_0x89f9x17,_0x89f9x16,_0x798d[30]);logger[_0x798d[26]](_0x798d[25],_0x89f9x17,_0x89f9x16,_0x798d[30],JSON[_0x798d[31]](_0x89f9x18));return _0x89f9x15[_0x798d[29]](_0x89f9x16)[_0x798d[32]](_0x89f9x18)};return _0x89f9x15[_0x798d[29]](304)[_0x798d[28]]()}}function respondWithFilteredResult(_0x89f9x15,_0x89f9x1b,_0x89f9x17){return function(_0x89f9x18){if(_0x89f9x18){var _0x89f9x1c=_0x89f9x18[_0x798d[33]],_0x89f9x1d=_0x89f9x1b[_0x798d[34]],_0x89f9x1e=_0x89f9x1b[_0x798d[34]]+ _0x89f9x1b[_0x798d[35]],_0x89f9x16;if(_0x89f9x1e>= _0x89f9x1c){_0x89f9x1e= _0x89f9x1c;_0x89f9x16= 200}else {_0x89f9x16= 206};_0x89f9x15[_0x798d[29]](_0x89f9x16);logger[_0x798d[24]](_0x798d[22],_0x89f9x17,_0x89f9x16,_0x798d[36]);logger[_0x798d[26]](_0x798d[25],_0x89f9x17,_0x89f9x16,_0x798d[30],JSON[_0x798d[31]](_0x89f9x18));return _0x89f9x15[_0x798d[40]](_0x798d[37],_0x89f9x1d+ _0x798d[38]+ _0x89f9x1e+ _0x798d[39]+ _0x89f9x1c)[_0x798d[32]](_0x89f9x18)};return null}}function patchUpdates(_0x89f9x20){return function(_0x89f9x18){try{jsonpatch[_0x798d[41]](_0x89f9x18,_0x89f9x20,true)}catch(err){return BPromise[_0x798d[42]](err)};return _0x89f9x18[_0x798d[43]]()}}function saveUpdates(_0x89f9x22,_0x89f9x16,_0x89f9x17){return function(_0x89f9x18){if(_0x89f9x18){return _0x89f9x18[_0x798d[46]](_0x89f9x22)[_0x798d[45]](function(_0x89f9x23){logger[_0x798d[24]](_0x798d[22],_0x89f9x17,_0x89f9x16,_0x798d[44]);logger[_0x798d[26]](_0x798d[25],_0x89f9x17,_0x89f9x16,_0x798d[44],JSON[_0x798d[31]](_0x89f9x18));return _0x89f9x23})};return null}}function removeEntity(_0x89f9x15,_0x89f9x16,_0x89f9x17){return function(_0x89f9x18){if(_0x89f9x18){return _0x89f9x18[_0x798d[48]]()[_0x798d[45]](function(){logger[_0x798d[24]](_0x798d[22],_0x89f9x17,_0x89f9x16,_0x798d[47]);logger[_0x798d[26]](_0x798d[25],_0x89f9x17,_0x89f9x16,_0x798d[47],JSON[_0x798d[31]](_0x89f9x18));_0x89f9x15[_0x798d[29]](204)[_0x798d[28]]()})}}}function handleEntityNotFound(_0x89f9x15,_0x89f9x16,_0x89f9x17){return function(_0x89f9x18){if(!_0x89f9x18){logger[_0x798d[50]](_0x798d[22],_0x89f9x17,404,_0x798d[49]);_0x89f9x15[_0x798d[29]](404)[_0x798d[28]]();return null};return _0x89f9x18}}function handleError(_0x89f9x15,_0x89f9x16,_0x89f9x17){_0x89f9x16= _0x89f9x16|| 500;return function(_0x89f9x27){logger[_0x798d[50]](_0x798d[22],_0x89f9x17,_0x89f9x16,JSON[_0x798d[31]](_0x89f9x27));delete _0x89f9x27[_0x798d[51]];_0x89f9x15[_0x798d[29]](_0x89f9x16)[_0x798d[52]](_0x89f9x27)}}exports[_0x798d[53]]= function(_0x89f9x28,_0x89f9x15){var _0x89f9x1b={},_0x89f9x29={};_0x89f9x29[_0x798d[54]]= _[_0x798d[57]](db[_0x798d[56]][_0x798d[55]]);_0x89f9x29[_0x798d[58]]= _[_0x798d[57]](_0x89f9x28[_0x798d[58]]);_0x89f9x29[_0x798d[59]]= _[_0x798d[60]](_0x89f9x29[_0x798d[54]],_0x89f9x29[_0x798d[58]]);_0x89f9x1b[_0x798d[61]]= _[_0x798d[60]](_0x89f9x29[_0x798d[54]],qs[_0x798d[62]](_0x89f9x28[_0x798d[58]][_0x798d[62]]));_0x89f9x1b[_0x798d[61]]= (_0x89f9x1b[_0x798d[61]][_0x798d[63]])?_0x89f9x1b[_0x798d[61]]:_0x89f9x29[_0x798d[54]];if(!_0x89f9x28[_0x798d[58]][_0x798d[65]](_0x798d[64])){_0x89f9x1b[_0x798d[35]]= qs[_0x798d[35]](_0x89f9x28[_0x798d[58]][_0x798d[35]]);_0x89f9x1b[_0x798d[34]]= qs[_0x798d[34]](_0x89f9x28[_0x798d[58]][_0x798d[34]])};_0x89f9x1b[_0x798d[66]]= qs[_0x798d[67]](_0x89f9x28[_0x798d[58]][_0x798d[67]]);_0x89f9x1b[_0x798d[68]]= qs[_0x798d[59]](_[_0x798d[69]](_0x89f9x28[_0x798d[58]],_0x89f9x29[_0x798d[59]]));if(_0x89f9x28[_0x798d[58]][_0x798d[70]]){_0x89f9x1b[_0x798d[68]]= _[_0x798d[73]](_0x89f9x1b[_0x798d[68]],{$or:_[_0x798d[72]](_0x89f9x1b[_0x798d[61]],function(_0x89f9x2a){var _0x89f9x2b={};_0x89f9x2b[_0x89f9x2a]= {$like:_0x798d[71]+ _0x89f9x28[_0x798d[58]][_0x798d[70]]+ _0x798d[71]};return _0x89f9x2b})})};_0x89f9x1b= _[_0x798d[73]]({},_0x89f9x1b,_0x89f9x28[_0x798d[74]]);return db[_0x798d[56]][_0x798d[76]](_0x89f9x1b)[_0x798d[45]](respondWithFilteredResult(_0x89f9x15,_0x89f9x1b,_0x798d[53]))[_0x798d[75]](handleError(_0x89f9x15,null,_0x798d[53]))};exports[_0x798d[77]]= function(_0x89f9x28,_0x89f9x15){var _0x89f9x1b={raw:false,where:{id:_0x89f9x28[_0x798d[79]][_0x798d[78]]}},_0x89f9x29={};_0x89f9x29[_0x798d[54]]= _[_0x798d[57]](db[_0x798d[56]][_0x798d[55]]);_0x89f9x29[_0x798d[58]]= _[_0x798d[57]](_0x89f9x28[_0x798d[58]]);_0x89f9x29[_0x798d[59]]= _[_0x798d[60]](_0x89f9x29[_0x798d[54]],_0x89f9x29[_0x798d[58]]);_0x89f9x1b[_0x798d[61]]= _[_0x798d[60]](_0x89f9x29[_0x798d[54]],qs[_0x798d[62]](_0x89f9x28[_0x798d[58]][_0x798d[62]]));_0x89f9x1b[_0x798d[61]]= (_0x89f9x1b[_0x798d[61]][_0x798d[63]])?_0x89f9x1b[_0x798d[61]]:_0x89f9x29[_0x798d[54]];_0x89f9x1b= _[_0x798d[73]]({},_0x89f9x1b,_0x89f9x28[_0x798d[74]]);return db[_0x798d[56]][_0x798d[80]](_0x89f9x1b)[_0x798d[45]](handleEntityNotFound(_0x89f9x15,null,_0x798d[77]))[_0x798d[45]](respondWithResult(_0x89f9x15,null,_0x798d[77]))[_0x798d[75]](handleError(_0x89f9x15,null,_0x798d[77]))};exports[_0x798d[81]]= function(_0x89f9x28,_0x89f9x15){return db[_0x798d[56]][_0x798d[81]](_0x89f9x28[_0x798d[82]],{})[_0x798d[45]](respondWithResult(_0x89f9x15,201,_0x798d[81]))[_0x798d[75]](handleError(_0x89f9x15,null,_0x798d[81]))};exports[_0x798d[46]]= function(_0x89f9x28,_0x89f9x15){if(_0x89f9x28[_0x798d[82]][_0x798d[78]]){delete _0x89f9x28[_0x798d[82]][_0x798d[78]]};return db[_0x798d[56]][_0x798d[80]]({where:{id:_0x89f9x28[_0x798d[79]][_0x798d[78]]}})[_0x798d[45]](handleEntityNotFound(_0x89f9x15,null,_0x798d[46]))[_0x798d[45]](saveUpdates(_0x89f9x28[_0x798d[82]],null,_0x798d[46]))[_0x798d[45]](respondWithResult(_0x89f9x15,null,_0x798d[46]))[_0x798d[75]](handleError(_0x89f9x15,null,_0x798d[46]))};exports[_0x798d[48]]= function(_0x89f9x28,_0x89f9x15){return db[_0x798d[56]][_0x798d[80]]({where:{id:_0x89f9x28[_0x798d[79]][_0x798d[78]]}})[_0x798d[45]](handleEntityNotFound(_0x89f9x15,null,_0x798d[48]))[_0x798d[45]](removeEntity(_0x89f9x15,null,_0x798d[48]))[_0x798d[75]](handleError(_0x89f9x15,null,_0x798d[48]))};exports[_0x798d[83]]= function(_0x89f9x28,_0x89f9x15){return db[_0x798d[56]][_0x798d[83]]()[_0x798d[45]](respondWithResult(_0x89f9x15,null,_0x798d[83]))[_0x798d[75]](handleError(_0x89f9x15,null,_0x798d[83]))}
\ No newline at end of file
+var _0x742b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x742b[0];var jsonpatch=require(_0x742b[1]);var rp=require(_0x742b[2]);var moment=require(_0x742b[3]);var BPromise=require(_0x742b[4]);var util=require(_0x742b[5]);var path=require(_0x742b[6]);var sox=require(_0x742b[7]);var ejs=require(_0x742b[8]);var fs=require(_0x742b[9]);var _=require(_0x742b[10]);var squel=require(_0x742b[11]);var crypto=require(_0x742b[12]);var jsforce=require(_0x742b[13]);var toCsv=require(_0x742b[14]);var qs=require(_0x742b[15]);var logger=require(_0x742b[17])(_0x742b[16]);var utils=require(_0x742b[18]);var config=require(_0x742b[19]);var db=require(_0x742b[21])[_0x742b[20]];function respondWithStatusCode(_0x81e4x15,_0x81e4x16,_0x81e4x17){_0x81e4x16= _0x81e4x16|| 204;return function(_0x81e4x18){if(_0x81e4x18){logger[_0x742b[24]](_0x742b[22],_0x81e4x17,_0x81e4x16,_0x742b[23]);logger[_0x742b[26]](_0x742b[25],_0x81e4x17,_0x81e4x16,_0x742b[23]);return _0x81e4x15[_0x742b[27]](_0x81e4x16)};return _0x81e4x15[_0x742b[29]](304)[_0x742b[28]]()}}function respondWithResult(_0x81e4x15,_0x81e4x16,_0x81e4x17){_0x81e4x16= _0x81e4x16|| 200;return function(_0x81e4x18){if(_0x81e4x18){logger[_0x742b[24]](_0x742b[22],_0x81e4x17,_0x81e4x16,_0x742b[30]);logger[_0x742b[26]](_0x742b[25],_0x81e4x17,_0x81e4x16,_0x742b[30],JSON[_0x742b[31]](_0x81e4x18));return _0x81e4x15[_0x742b[29]](_0x81e4x16)[_0x742b[32]](_0x81e4x18)};return _0x81e4x15[_0x742b[29]](304)[_0x742b[28]]()}}function respondWithFilteredResult(_0x81e4x15,_0x81e4x1b,_0x81e4x17){return function(_0x81e4x18){if(_0x81e4x18){var _0x81e4x1c=_0x81e4x18[_0x742b[33]],_0x81e4x1d=_0x81e4x1b[_0x742b[34]],_0x81e4x1e=_0x81e4x1b[_0x742b[34]]+ _0x81e4x1b[_0x742b[35]],_0x81e4x16;if(_0x81e4x1e>= _0x81e4x1c){_0x81e4x1e= _0x81e4x1c;_0x81e4x16= 200}else {_0x81e4x16= 206};_0x81e4x15[_0x742b[29]](_0x81e4x16);logger[_0x742b[24]](_0x742b[22],_0x81e4x17,_0x81e4x16,_0x742b[36]);logger[_0x742b[26]](_0x742b[25],_0x81e4x17,_0x81e4x16,_0x742b[30],JSON[_0x742b[31]](_0x81e4x18));return _0x81e4x15[_0x742b[40]](_0x742b[37],_0x81e4x1d+ _0x742b[38]+ _0x81e4x1e+ _0x742b[39]+ _0x81e4x1c)[_0x742b[32]](_0x81e4x18)};return null}}function patchUpdates(_0x81e4x20){return function(_0x81e4x18){try{jsonpatch[_0x742b[41]](_0x81e4x18,_0x81e4x20,true)}catch(err){return BPromise[_0x742b[42]](err)};return _0x81e4x18[_0x742b[43]]()}}function saveUpdates(_0x81e4x22,_0x81e4x16,_0x81e4x17){return function(_0x81e4x18){if(_0x81e4x18){return _0x81e4x18[_0x742b[46]](_0x81e4x22)[_0x742b[45]](function(_0x81e4x23){logger[_0x742b[24]](_0x742b[22],_0x81e4x17,_0x81e4x16,_0x742b[44]);logger[_0x742b[26]](_0x742b[25],_0x81e4x17,_0x81e4x16,_0x742b[44],JSON[_0x742b[31]](_0x81e4x18));return _0x81e4x23})};return null}}function removeEntity(_0x81e4x15,_0x81e4x16,_0x81e4x17){return function(_0x81e4x18){if(_0x81e4x18){return _0x81e4x18[_0x742b[48]]()[_0x742b[45]](function(){logger[_0x742b[24]](_0x742b[22],_0x81e4x17,_0x81e4x16,_0x742b[47]);logger[_0x742b[26]](_0x742b[25],_0x81e4x17,_0x81e4x16,_0x742b[47],JSON[_0x742b[31]](_0x81e4x18));_0x81e4x15[_0x742b[29]](204)[_0x742b[28]]()})}}}function handleEntityNotFound(_0x81e4x15,_0x81e4x16,_0x81e4x17){return function(_0x81e4x18){if(!_0x81e4x18){logger[_0x742b[50]](_0x742b[22],_0x81e4x17,404,_0x742b[49]);_0x81e4x15[_0x742b[29]](404)[_0x742b[28]]();return null};return _0x81e4x18}}function handleError(_0x81e4x15,_0x81e4x16,_0x81e4x17){_0x81e4x16= _0x81e4x16|| 500;return function(_0x81e4x27){logger[_0x742b[50]](_0x742b[22],_0x81e4x17,_0x81e4x16,JSON[_0x742b[31]](_0x81e4x27));delete _0x81e4x27[_0x742b[51]];_0x81e4x15[_0x742b[29]](_0x81e4x16)[_0x742b[52]](_0x81e4x27)}}exports[_0x742b[53]]= function(_0x81e4x28,_0x81e4x15){var _0x81e4x1b={},_0x81e4x29={};_0x81e4x29[_0x742b[54]]= _[_0x742b[57]](db[_0x742b[56]][_0x742b[55]]);_0x81e4x29[_0x742b[58]]= _[_0x742b[57]](_0x81e4x28[_0x742b[58]]);_0x81e4x29[_0x742b[59]]= _[_0x742b[60]](_0x81e4x29[_0x742b[54]],_0x81e4x29[_0x742b[58]]);_0x81e4x1b[_0x742b[61]]= _[_0x742b[60]](_0x81e4x29[_0x742b[54]],qs[_0x742b[62]](_0x81e4x28[_0x742b[58]][_0x742b[62]]));_0x81e4x1b[_0x742b[61]]= (_0x81e4x1b[_0x742b[61]][_0x742b[63]])?_0x81e4x1b[_0x742b[61]]:_0x81e4x29[_0x742b[54]];if(!_0x81e4x28[_0x742b[58]][_0x742b[65]](_0x742b[64])){_0x81e4x1b[_0x742b[35]]= qs[_0x742b[35]](_0x81e4x28[_0x742b[58]][_0x742b[35]]);_0x81e4x1b[_0x742b[34]]= qs[_0x742b[34]](_0x81e4x28[_0x742b[58]][_0x742b[34]])};_0x81e4x1b[_0x742b[66]]= qs[_0x742b[67]](_0x81e4x28[_0x742b[58]][_0x742b[67]]);_0x81e4x1b[_0x742b[68]]= qs[_0x742b[59]](_[_0x742b[69]](_0x81e4x28[_0x742b[58]],_0x81e4x29[_0x742b[59]]));if(_0x81e4x28[_0x742b[58]][_0x742b[70]]){_0x81e4x1b[_0x742b[68]]= _[_0x742b[73]](_0x81e4x1b[_0x742b[68]],{$or:_[_0x742b[72]](_0x81e4x1b[_0x742b[61]],function(_0x81e4x2a){var _0x81e4x2b={};_0x81e4x2b[_0x81e4x2a]= {$like:_0x742b[71]+ _0x81e4x28[_0x742b[58]][_0x742b[70]]+ _0x742b[71]};return _0x81e4x2b})})};_0x81e4x1b= _[_0x742b[73]]({},_0x81e4x1b,_0x81e4x28[_0x742b[74]]);return db[_0x742b[56]][_0x742b[76]](_0x81e4x1b)[_0x742b[45]](respondWithFilteredResult(_0x81e4x15,_0x81e4x1b,_0x742b[53]))[_0x742b[75]](handleError(_0x81e4x15,null,_0x742b[53]))};exports[_0x742b[77]]= function(_0x81e4x28,_0x81e4x15){var _0x81e4x1b={raw:false,where:{id:_0x81e4x28[_0x742b[79]][_0x742b[78]]}},_0x81e4x29={};_0x81e4x29[_0x742b[54]]= _[_0x742b[57]](db[_0x742b[56]][_0x742b[55]]);_0x81e4x29[_0x742b[58]]= _[_0x742b[57]](_0x81e4x28[_0x742b[58]]);_0x81e4x29[_0x742b[59]]= _[_0x742b[60]](_0x81e4x29[_0x742b[54]],_0x81e4x29[_0x742b[58]]);_0x81e4x1b[_0x742b[61]]= _[_0x742b[60]](_0x81e4x29[_0x742b[54]],qs[_0x742b[62]](_0x81e4x28[_0x742b[58]][_0x742b[62]]));_0x81e4x1b[_0x742b[61]]= (_0x81e4x1b[_0x742b[61]][_0x742b[63]])?_0x81e4x1b[_0x742b[61]]:_0x81e4x29[_0x742b[54]];_0x81e4x1b= _[_0x742b[73]]({},_0x81e4x1b,_0x81e4x28[_0x742b[74]]);return db[_0x742b[56]][_0x742b[80]](_0x81e4x1b)[_0x742b[45]](handleEntityNotFound(_0x81e4x15,null,_0x742b[77]))[_0x742b[45]](respondWithResult(_0x81e4x15,null,_0x742b[77]))[_0x742b[75]](handleError(_0x81e4x15,null,_0x742b[77]))};exports[_0x742b[81]]= function(_0x81e4x28,_0x81e4x15){return db[_0x742b[56]][_0x742b[81]](_0x81e4x28[_0x742b[82]],{})[_0x742b[45]](respondWithResult(_0x81e4x15,201,_0x742b[81]))[_0x742b[75]](handleError(_0x81e4x15,null,_0x742b[81]))};exports[_0x742b[46]]= function(_0x81e4x28,_0x81e4x15){if(_0x81e4x28[_0x742b[82]][_0x742b[78]]){delete _0x81e4x28[_0x742b[82]][_0x742b[78]]};return db[_0x742b[56]][_0x742b[80]]({where:{id:_0x81e4x28[_0x742b[79]][_0x742b[78]]}})[_0x742b[45]](handleEntityNotFound(_0x81e4x15,null,_0x742b[46]))[_0x742b[45]](saveUpdates(_0x81e4x28[_0x742b[82]],null,_0x742b[46]))[_0x742b[45]](respondWithResult(_0x81e4x15,null,_0x742b[46]))[_0x742b[75]](handleError(_0x81e4x15,null,_0x742b[46]))};exports[_0x742b[48]]= function(_0x81e4x28,_0x81e4x15){return db[_0x742b[56]][_0x742b[80]]({where:{id:_0x81e4x28[_0x742b[79]][_0x742b[78]]}})[_0x742b[45]](handleEntityNotFound(_0x81e4x15,null,_0x742b[48]))[_0x742b[45]](removeEntity(_0x81e4x15,null,_0x742b[48]))[_0x742b[75]](handleError(_0x81e4x15,null,_0x742b[48]))};exports[_0x742b[83]]= function(_0x81e4x28,_0x81e4x15){return db[_0x742b[56]][_0x742b[83]]()[_0x742b[45]](respondWithResult(_0x81e4x15,null,_0x742b[83]))[_0x742b[75]](handleError(_0x81e4x15,null,_0x742b[83]))}
\ No newline at end of file
index f3d7cd1..e427a52 100644 (file)
@@ -1 +1 @@
-var _0xa92b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0xa92b[0];var _=require(_0xa92b[1]);var util=require(_0xa92b[2]);var logger=require(_0xa92b[4])(_0xa92b[3]);var attributes=require(_0xa92b[5]);module[_0xa92b[6]]= function(_0xbd4bx5,_0xbd4bx6){return _0xbd4bx5[_0xa92b[10]](_0xa92b[7],attributes,{tableName:_0xa92b[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0xa92b[9]]}],timestamps:true})}
\ No newline at end of file
+var _0xf2a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0xf2a3[0];var _=require(_0xf2a3[1]);var util=require(_0xf2a3[2]);var logger=require(_0xf2a3[4])(_0xf2a3[3]);var attributes=require(_0xf2a3[5]);module[_0xf2a3[6]]= function(_0xa513x5,_0xa513x6){return _0xa513x5[_0xf2a3[10]](_0xf2a3[7],attributes,{tableName:_0xf2a3[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0xf2a3[9]]}],timestamps:true})}
\ No newline at end of file
index bfae40d..ffdb8b5 100644 (file)
@@ -1 +1 @@
-var _0x9f71=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0x9f71[0];var _=require(_0x9f71[1]);var util=require(_0x9f71[2]);var moment=require(_0x9f71[3]);var BPromise=require(_0x9f71[4]);var db=require(_0x9f71[6])[_0x9f71[5]];var utils=require(_0x9f71[7]);var logger=require(_0x9f71[9])(_0x9f71[8]);var jayson=require(_0x9f71[10]);var client=jayson[_0x9f71[12]][_0x9f71[11]]({port:9002});function respondWithRpcPromise(_0xb716xb,_0xb716xc,_0xb716xd){return  new BPromise(function(_0xb716xe,_0xb716xf){return client[_0x9f71[25]](_0xb716xb,_0xb716xd)[_0x9f71[24]](function(_0xb716x11){logger[_0x9f71[17]](_0x9f71[13],_0xb716xc,_0x9f71[16]);logger[_0x9f71[20]](_0x9f71[18],_0xb716xc,_0x9f71[16],JSON[_0x9f71[19]](_0xb716x11));if(_0xb716x11[_0x9f71[14]]){if(_0xb716x11[_0x9f71[14]][_0x9f71[21]]=== 500){logger[_0x9f71[14]](_0x9f71[13],_0xb716xc,_0xb716x11[_0x9f71[14]][_0x9f71[22]]);return _0xb716xf(_0xb716x11[_0x9f71[14]][_0x9f71[22]])};logger[_0x9f71[14]](_0x9f71[13],_0xb716xc,_0xb716x11[_0x9f71[14]][_0x9f71[22]]);return _0xb716xe(_0xb716x11[_0x9f71[14]][_0x9f71[22]])}else {logger[_0x9f71[17]](_0x9f71[13],_0xb716xc,_0x9f71[16]);_0xb716xe(_0xb716x11[_0x9f71[23]][_0x9f71[22]])}})[_0x9f71[15]](function(_0xb716x10){logger[_0x9f71[14]](_0x9f71[13],_0xb716xc,_0xb716x10);_0xb716xf(_0xb716x10)})})}exports[_0x9f71[26]]= function(_0xb716xd){var _0xb716x12=this;return  new Promise(function(_0xb716xe,_0xb716xf){return db[_0x9f71[37]][_0x9f71[36]]({raw:_0xb716xd[_0x9f71[27]]?(_0xb716xd[_0x9f71[27]][_0x9f71[28]]=== undefined)?true:false:true,where:_0xb716xd[_0x9f71[27]]?_0xb716xd[_0x9f71[27]][_0x9f71[29]]|| null:null,attributes:_0xb716xd[_0x9f71[27]]?_0xb716xd[_0x9f71[27]][_0x9f71[30]]|| null:null,limit:_0xb716xd[_0x9f71[27]]?_0xb716xd[_0x9f71[27]][_0x9f71[31]]|| null:null,include:_0xb716xd[_0x9f71[27]]?(_0xb716xd[_0x9f71[27]][_0x9f71[32]]?_[_0x9f71[35]](_0xb716xd[_0x9f71[27]][_0x9f71[32]],function(_0xb716x13){return {model:db[_0xb716x13[_0x9f71[33]]],as:_0xb716x13[_0x9f71[34]],attributes:_0xb716x13[_0x9f71[30]],include:_0xb716x13[_0x9f71[32]]?_[_0x9f71[35]](_0xb716x13[_0x9f71[32]],function(_0xb716x14){return {model:db[_0xb716x14[_0x9f71[33]]],as:_0xb716x14[_0x9f71[34]],attributes:_0xb716x14[_0x9f71[30]],include:_0xb716x14[_0x9f71[32]]?_[_0x9f71[35]](_0xb716x14[_0x9f71[32]],function(_0xb716x15){return {model:db[_0xb716x15[_0x9f71[33]]],as:_0xb716x15[_0x9f71[34]],attributes:_0xb716x15[_0x9f71[30]]}}):[]}}):[]}}):[]):[]})[_0x9f71[24]](function(_0xb716x11){logger[_0x9f71[17]](_0x9f71[26],_0xb716xd);logger[_0x9f71[20]](_0x9f71[26],_0xb716xd,JSON[_0x9f71[19]](_0xb716x11));_0xb716xe(_0xb716x11)})[_0x9f71[15]](function(_0xb716x10){logger[_0x9f71[14]](_0x9f71[26],_0xb716x10[_0x9f71[22]],_0xb716xd);_0xb716xf(_0xb716x12[_0x9f71[14]](500,_0xb716x10[_0x9f71[22]]))})})};exports[_0x9f71[38]]= function(_0xb716xd){var _0xb716x12=this;return  new Promise(function(_0xb716xe,_0xb716xf){return db[_0x9f71[37]][_0x9f71[40]](_0xb716xd[_0x9f71[39]],{raw:_0xb716xd[_0x9f71[27]]?(_0xb716xd[_0x9f71[27]][_0x9f71[28]]=== undefined)?true:false:true})[_0x9f71[24]](function(_0xb716x11){logger[_0x9f71[17]](_0x9f71[38],_0xb716xd);logger[_0x9f71[20]](_0x9f71[38],_0xb716xd,JSON[_0x9f71[19]](_0xb716x11));_0xb716xe(_0xb716x11)})[_0x9f71[15]](function(_0xb716x10){logger[_0x9f71[14]](_0x9f71[38],_0xb716x10[_0x9f71[22]],_0xb716xd);_0xb716xf(_0xb716x12[_0x9f71[14]](500,_0xb716x10[_0x9f71[22]]))})})};exports[_0x9f71[41]]= function(_0xb716xd){var _0xb716x12=this;return  new Promise(function(_0xb716xe,_0xb716xf){return db[_0x9f71[37]][_0x9f71[42]](_0xb716xd[_0x9f71[39]],{raw:_0xb716xd[_0x9f71[27]]?(_0xb716xd[_0x9f71[27]][_0x9f71[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xb716xd[_0x9f71[27]]?_0xb716xd[_0x9f71[27]][_0x9f71[29]]|| null:null,attributes:_0xb716xd[_0x9f71[27]]?_0xb716xd[_0x9f71[27]][_0x9f71[30]]|| null:null,limit:_0xb716xd[_0x9f71[27]]?_0xb716xd[_0x9f71[27]][_0x9f71[31]]|| null:null})[_0x9f71[24]](function(_0xb716x11){logger[_0x9f71[17]](_0x9f71[41],_0xb716xd);logger[_0x9f71[20]](_0x9f71[41],_0xb716xd,JSON[_0x9f71[19]](_0xb716x11));_0xb716xe(_0xb716x11)})[_0x9f71[15]](function(_0xb716x10){logger[_0x9f71[14]](_0x9f71[41],_0xb716x10[_0x9f71[22]],_0xb716xd);_0xb716xf(_0xb716x12[_0x9f71[14]](500,_0xb716x10[_0x9f71[22]]))})})}
\ No newline at end of file
+var _0x6d03=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0x6d03[0];var _=require(_0x6d03[1]);var util=require(_0x6d03[2]);var moment=require(_0x6d03[3]);var BPromise=require(_0x6d03[4]);var db=require(_0x6d03[6])[_0x6d03[5]];var utils=require(_0x6d03[7]);var logger=require(_0x6d03[9])(_0x6d03[8]);var jayson=require(_0x6d03[10]);var client=jayson[_0x6d03[12]][_0x6d03[11]]({port:9002});function respondWithRpcPromise(_0xf7d6xb,_0xf7d6xc,_0xf7d6xd){return  new BPromise(function(_0xf7d6xe,_0xf7d6xf){return client[_0x6d03[25]](_0xf7d6xb,_0xf7d6xd)[_0x6d03[24]](function(_0xf7d6x11){logger[_0x6d03[17]](_0x6d03[13],_0xf7d6xc,_0x6d03[16]);logger[_0x6d03[20]](_0x6d03[18],_0xf7d6xc,_0x6d03[16],JSON[_0x6d03[19]](_0xf7d6x11));if(_0xf7d6x11[_0x6d03[14]]){if(_0xf7d6x11[_0x6d03[14]][_0x6d03[21]]=== 500){logger[_0x6d03[14]](_0x6d03[13],_0xf7d6xc,_0xf7d6x11[_0x6d03[14]][_0x6d03[22]]);return _0xf7d6xf(_0xf7d6x11[_0x6d03[14]][_0x6d03[22]])};logger[_0x6d03[14]](_0x6d03[13],_0xf7d6xc,_0xf7d6x11[_0x6d03[14]][_0x6d03[22]]);return _0xf7d6xe(_0xf7d6x11[_0x6d03[14]][_0x6d03[22]])}else {logger[_0x6d03[17]](_0x6d03[13],_0xf7d6xc,_0x6d03[16]);_0xf7d6xe(_0xf7d6x11[_0x6d03[23]][_0x6d03[22]])}})[_0x6d03[15]](function(_0xf7d6x10){logger[_0x6d03[14]](_0x6d03[13],_0xf7d6xc,_0xf7d6x10);_0xf7d6xf(_0xf7d6x10)})})}exports[_0x6d03[26]]= function(_0xf7d6xd){var _0xf7d6x12=this;return  new Promise(function(_0xf7d6xe,_0xf7d6xf){return db[_0x6d03[37]][_0x6d03[36]]({raw:_0xf7d6xd[_0x6d03[27]]?(_0xf7d6xd[_0x6d03[27]][_0x6d03[28]]=== undefined)?true:false:true,where:_0xf7d6xd[_0x6d03[27]]?_0xf7d6xd[_0x6d03[27]][_0x6d03[29]]|| null:null,attributes:_0xf7d6xd[_0x6d03[27]]?_0xf7d6xd[_0x6d03[27]][_0x6d03[30]]|| null:null,limit:_0xf7d6xd[_0x6d03[27]]?_0xf7d6xd[_0x6d03[27]][_0x6d03[31]]|| null:null,include:_0xf7d6xd[_0x6d03[27]]?(_0xf7d6xd[_0x6d03[27]][_0x6d03[32]]?_[_0x6d03[35]](_0xf7d6xd[_0x6d03[27]][_0x6d03[32]],function(_0xf7d6x13){return {model:db[_0xf7d6x13[_0x6d03[33]]],as:_0xf7d6x13[_0x6d03[34]],attributes:_0xf7d6x13[_0x6d03[30]],include:_0xf7d6x13[_0x6d03[32]]?_[_0x6d03[35]](_0xf7d6x13[_0x6d03[32]],function(_0xf7d6x14){return {model:db[_0xf7d6x14[_0x6d03[33]]],as:_0xf7d6x14[_0x6d03[34]],attributes:_0xf7d6x14[_0x6d03[30]],include:_0xf7d6x14[_0x6d03[32]]?_[_0x6d03[35]](_0xf7d6x14[_0x6d03[32]],function(_0xf7d6x15){return {model:db[_0xf7d6x15[_0x6d03[33]]],as:_0xf7d6x15[_0x6d03[34]],attributes:_0xf7d6x15[_0x6d03[30]]}}):[]}}):[]}}):[]):[]})[_0x6d03[24]](function(_0xf7d6x11){logger[_0x6d03[17]](_0x6d03[26],_0xf7d6xd);logger[_0x6d03[20]](_0x6d03[26],_0xf7d6xd,JSON[_0x6d03[19]](_0xf7d6x11));_0xf7d6xe(_0xf7d6x11)})[_0x6d03[15]](function(_0xf7d6x10){logger[_0x6d03[14]](_0x6d03[26],_0xf7d6x10[_0x6d03[22]],_0xf7d6xd);_0xf7d6xf(_0xf7d6x12[_0x6d03[14]](500,_0xf7d6x10[_0x6d03[22]]))})})};exports[_0x6d03[38]]= function(_0xf7d6xd){var _0xf7d6x12=this;return  new Promise(function(_0xf7d6xe,_0xf7d6xf){return db[_0x6d03[37]][_0x6d03[40]](_0xf7d6xd[_0x6d03[39]],{raw:_0xf7d6xd[_0x6d03[27]]?(_0xf7d6xd[_0x6d03[27]][_0x6d03[28]]=== undefined)?true:false:true})[_0x6d03[24]](function(_0xf7d6x11){logger[_0x6d03[17]](_0x6d03[38],_0xf7d6xd);logger[_0x6d03[20]](_0x6d03[38],_0xf7d6xd,JSON[_0x6d03[19]](_0xf7d6x11));_0xf7d6xe(_0xf7d6x11)})[_0x6d03[15]](function(_0xf7d6x10){logger[_0x6d03[14]](_0x6d03[38],_0xf7d6x10[_0x6d03[22]],_0xf7d6xd);_0xf7d6xf(_0xf7d6x12[_0x6d03[14]](500,_0xf7d6x10[_0x6d03[22]]))})})};exports[_0x6d03[41]]= function(_0xf7d6xd){var _0xf7d6x12=this;return  new Promise(function(_0xf7d6xe,_0xf7d6xf){return db[_0x6d03[37]][_0x6d03[42]](_0xf7d6xd[_0x6d03[39]],{raw:_0xf7d6xd[_0x6d03[27]]?(_0xf7d6xd[_0x6d03[27]][_0x6d03[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xf7d6xd[_0x6d03[27]]?_0xf7d6xd[_0x6d03[27]][_0x6d03[29]]|| null:null,attributes:_0xf7d6xd[_0x6d03[27]]?_0xf7d6xd[_0x6d03[27]][_0x6d03[30]]|| null:null,limit:_0xf7d6xd[_0x6d03[27]]?_0xf7d6xd[_0x6d03[27]][_0x6d03[31]]|| null:null})[_0x6d03[24]](function(_0xf7d6x11){logger[_0x6d03[17]](_0x6d03[41],_0xf7d6xd);logger[_0x6d03[20]](_0x6d03[41],_0xf7d6xd,JSON[_0x6d03[19]](_0xf7d6x11));_0xf7d6xe(_0xf7d6x11)})[_0x6d03[15]](function(_0xf7d6x10){logger[_0x6d03[14]](_0x6d03[41],_0xf7d6x10[_0x6d03[22]],_0xf7d6xd);_0xf7d6xf(_0xf7d6x12[_0x6d03[14]](500,_0xf7d6x10[_0x6d03[22]]))})})}
\ No newline at end of file
index e6d0682..e22a7e5 100644 (file)
@@ -1 +1 @@
-var _0xe6d3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe6d3[0];var multer=require(_0xe6d3[1]);var util=require(_0xe6d3[2]);var path=require(_0xe6d3[3]);var express=require(_0xe6d3[4]);var router=express.Router();var auth=require(_0xe6d3[5]);var config=require(_0xe6d3[6]);var controller=require(_0xe6d3[7]);router[_0xe6d3[11]](_0xe6d3[8],auth[_0xe6d3[9]](),controller[_0xe6d3[10]]);router[_0xe6d3[11]](_0xe6d3[12],auth[_0xe6d3[9]](),controller[_0xe6d3[13]]);router[_0xe6d3[15]](_0xe6d3[8],auth[_0xe6d3[9]](),controller[_0xe6d3[14]]);router[_0xe6d3[17]](_0xe6d3[12],auth[_0xe6d3[9]](),controller[_0xe6d3[16]]);router[_0xe6d3[19]](_0xe6d3[12],auth[_0xe6d3[9]](),controller[_0xe6d3[18]]);module[_0xe6d3[20]]= router
\ No newline at end of file
+var _0x69fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x69fb[0];var multer=require(_0x69fb[1]);var util=require(_0x69fb[2]);var path=require(_0x69fb[3]);var express=require(_0x69fb[4]);var router=express.Router();var auth=require(_0x69fb[5]);var config=require(_0x69fb[6]);var controller=require(_0x69fb[7]);router[_0x69fb[11]](_0x69fb[8],auth[_0x69fb[9]](),controller[_0x69fb[10]]);router[_0x69fb[11]](_0x69fb[12],auth[_0x69fb[9]](),controller[_0x69fb[13]]);router[_0x69fb[15]](_0x69fb[8],auth[_0x69fb[9]](),controller[_0x69fb[14]]);router[_0x69fb[17]](_0x69fb[12],auth[_0x69fb[9]](),controller[_0x69fb[16]]);router[_0x69fb[19]](_0x69fb[12],auth[_0x69fb[9]](),controller[_0x69fb[18]]);module[_0x69fb[20]]= router
\ No newline at end of file
index 9552d7d..cd30e90 100644 (file)
@@ -1 +1 @@
-var _0xa159=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","","\x44\x41\x54\x45","\x4E\x4F\x57","\x66\x6E"];_0xa159[0];var Sequelize=require(_0xa159[1]);module[_0xa159[2]]= {time:{type:Sequelize[_0xa159[3]]},callid:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},queuename:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},agent:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},event:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},data1:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},data2:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},data3:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},data4:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},data5:{type:Sequelize[_0xa159[3]],allowNull:false,defaultValue:_0xa159[4]},dtm:{type:Sequelize[_0xa159[5]],allowNull:false,defaultValue:Sequelize[_0xa159[7]](_0xa159[6])}}
\ No newline at end of file
+var _0xdb85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","","\x44\x41\x54\x45","\x4E\x4F\x57","\x66\x6E"];_0xdb85[0];var Sequelize=require(_0xdb85[1]);module[_0xdb85[2]]= {time:{type:Sequelize[_0xdb85[3]]},callid:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},queuename:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},agent:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},event:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},data1:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},data2:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},data3:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},data4:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},data5:{type:Sequelize[_0xdb85[3]],allowNull:false,defaultValue:_0xdb85[4]},dtm:{type:Sequelize[_0xdb85[5]],allowNull:false,defaultValue:Sequelize[_0xdb85[7]](_0xdb85[6])}}
\ No newline at end of file
index 6a7c956..f6b353d 100644 (file)
@@ -1 +1 @@
-var _0xaca4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xaca4[0];var jsonpatch=require(_0xaca4[1]);var rp=require(_0xaca4[2]);var moment=require(_0xaca4[3]);var BPromise=require(_0xaca4[4]);var util=require(_0xaca4[5]);var path=require(_0xaca4[6]);var sox=require(_0xaca4[7]);var ejs=require(_0xaca4[8]);var fs=require(_0xaca4[9]);var _=require(_0xaca4[10]);var squel=require(_0xaca4[11]);var crypto=require(_0xaca4[12]);var jsforce=require(_0xaca4[13]);var toCsv=require(_0xaca4[14]);var qs=require(_0xaca4[15]);var logger=require(_0xaca4[17])(_0xaca4[16]);var utils=require(_0xaca4[18]);var config=require(_0xaca4[19]);var db=require(_0xaca4[21])[_0xaca4[20]];function respondWithStatusCode(_0x2287x15,_0x2287x16,_0x2287x17){_0x2287x16= _0x2287x16|| 204;return function(_0x2287x18){if(_0x2287x18){logger[_0xaca4[24]](_0xaca4[22],_0x2287x17,_0x2287x16,_0xaca4[23]);logger[_0xaca4[26]](_0xaca4[25],_0x2287x17,_0x2287x16,_0xaca4[23]);return _0x2287x15[_0xaca4[27]](_0x2287x16)};return _0x2287x15[_0xaca4[29]](304)[_0xaca4[28]]()}}function respondWithResult(_0x2287x15,_0x2287x16,_0x2287x17){_0x2287x16= _0x2287x16|| 200;return function(_0x2287x18){if(_0x2287x18){logger[_0xaca4[24]](_0xaca4[22],_0x2287x17,_0x2287x16,_0xaca4[30]);logger[_0xaca4[26]](_0xaca4[25],_0x2287x17,_0x2287x16,_0xaca4[30],JSON[_0xaca4[31]](_0x2287x18));return _0x2287x15[_0xaca4[29]](_0x2287x16)[_0xaca4[32]](_0x2287x18)};return _0x2287x15[_0xaca4[29]](304)[_0xaca4[28]]()}}function respondWithFilteredResult(_0x2287x15,_0x2287x1b,_0x2287x17){return function(_0x2287x18){if(_0x2287x18){var _0x2287x1c=_0x2287x18[_0xaca4[33]],_0x2287x1d=_0x2287x1b[_0xaca4[34]],_0x2287x1e=_0x2287x1b[_0xaca4[34]]+ _0x2287x1b[_0xaca4[35]],_0x2287x16;if(_0x2287x1e>= _0x2287x1c){_0x2287x1e= _0x2287x1c;_0x2287x16= 200}else {_0x2287x16= 206};_0x2287x15[_0xaca4[29]](_0x2287x16);logger[_0xaca4[24]](_0xaca4[22],_0x2287x17,_0x2287x16,_0xaca4[36]);logger[_0xaca4[26]](_0xaca4[25],_0x2287x17,_0x2287x16,_0xaca4[30],JSON[_0xaca4[31]](_0x2287x18));return _0x2287x15[_0xaca4[40]](_0xaca4[37],_0x2287x1d+ _0xaca4[38]+ _0x2287x1e+ _0xaca4[39]+ _0x2287x1c)[_0xaca4[32]](_0x2287x18)};return null}}function patchUpdates(_0x2287x20){return function(_0x2287x18){try{jsonpatch[_0xaca4[41]](_0x2287x18,_0x2287x20,true)}catch(err){return BPromise[_0xaca4[42]](err)};return _0x2287x18[_0xaca4[43]]()}}function saveUpdates(_0x2287x22,_0x2287x16,_0x2287x17){return function(_0x2287x18){if(_0x2287x18){return _0x2287x18[_0xaca4[46]](_0x2287x22)[_0xaca4[45]](function(_0x2287x23){logger[_0xaca4[24]](_0xaca4[22],_0x2287x17,_0x2287x16,_0xaca4[44]);logger[_0xaca4[26]](_0xaca4[25],_0x2287x17,_0x2287x16,_0xaca4[44],JSON[_0xaca4[31]](_0x2287x18));return _0x2287x23})};return null}}function removeEntity(_0x2287x15,_0x2287x16,_0x2287x17){return function(_0x2287x18){if(_0x2287x18){return _0x2287x18[_0xaca4[48]]()[_0xaca4[45]](function(){logger[_0xaca4[24]](_0xaca4[22],_0x2287x17,_0x2287x16,_0xaca4[47]);logger[_0xaca4[26]](_0xaca4[25],_0x2287x17,_0x2287x16,_0xaca4[47],JSON[_0xaca4[31]](_0x2287x18));_0x2287x15[_0xaca4[29]](204)[_0xaca4[28]]()})}}}function handleEntityNotFound(_0x2287x15,_0x2287x16,_0x2287x17){return function(_0x2287x18){if(!_0x2287x18){logger[_0xaca4[50]](_0xaca4[22],_0x2287x17,404,_0xaca4[49]);_0x2287x15[_0xaca4[29]](404)[_0xaca4[28]]();return null};return _0x2287x18}}function handleError(_0x2287x15,_0x2287x16,_0x2287x17){_0x2287x16= _0x2287x16|| 500;return function(_0x2287x27){logger[_0xaca4[50]](_0xaca4[22],_0x2287x17,_0x2287x16,JSON[_0xaca4[31]](_0x2287x27));delete _0x2287x27[_0xaca4[51]];_0x2287x15[_0xaca4[29]](_0x2287x16)[_0xaca4[52]](_0x2287x27)}}exports[_0xaca4[53]]= function(_0x2287x28,_0x2287x15){var _0x2287x1b={},_0x2287x29={};_0x2287x29[_0xaca4[54]]= _[_0xaca4[57]](db[_0xaca4[56]][_0xaca4[55]]);_0x2287x29[_0xaca4[58]]= _[_0xaca4[57]](_0x2287x28[_0xaca4[58]]);_0x2287x29[_0xaca4[59]]= _[_0xaca4[60]](_0x2287x29[_0xaca4[54]],_0x2287x29[_0xaca4[58]]);_0x2287x1b[_0xaca4[61]]= _[_0xaca4[60]](_0x2287x29[_0xaca4[54]],qs[_0xaca4[62]](_0x2287x28[_0xaca4[58]][_0xaca4[62]]));_0x2287x1b[_0xaca4[61]]= (_0x2287x1b[_0xaca4[61]][_0xaca4[63]])?_0x2287x1b[_0xaca4[61]]:_0x2287x29[_0xaca4[54]];if(!_0x2287x28[_0xaca4[58]][_0xaca4[65]](_0xaca4[64])){_0x2287x1b[_0xaca4[35]]= qs[_0xaca4[35]](_0x2287x28[_0xaca4[58]][_0xaca4[35]]);_0x2287x1b[_0xaca4[34]]= qs[_0xaca4[34]](_0x2287x28[_0xaca4[58]][_0xaca4[34]])};_0x2287x1b[_0xaca4[66]]= qs[_0xaca4[67]](_0x2287x28[_0xaca4[58]][_0xaca4[67]]);_0x2287x1b[_0xaca4[68]]= qs[_0xaca4[59]](_[_0xaca4[69]](_0x2287x28[_0xaca4[58]],_0x2287x29[_0xaca4[59]]));if(_0x2287x28[_0xaca4[58]][_0xaca4[70]]){_0x2287x1b[_0xaca4[68]]= _[_0xaca4[73]](_0x2287x1b[_0xaca4[68]],{$or:_[_0xaca4[72]](_0x2287x1b[_0xaca4[61]],function(_0x2287x2a){var _0x2287x2b={};_0x2287x2b[_0x2287x2a]= {$like:_0xaca4[71]+ _0x2287x28[_0xaca4[58]][_0xaca4[70]]+ _0xaca4[71]};return _0x2287x2b})})};_0x2287x1b= _[_0xaca4[73]]({},_0x2287x1b,_0x2287x28[_0xaca4[74]]);return db[_0xaca4[56]][_0xaca4[76]](_0x2287x1b)[_0xaca4[45]](respondWithFilteredResult(_0x2287x15,_0x2287x1b,_0xaca4[53]))[_0xaca4[75]](handleError(_0x2287x15,null,_0xaca4[53]))};exports[_0xaca4[77]]= function(_0x2287x28,_0x2287x15){var _0x2287x1b={raw:true,where:{id:_0x2287x28[_0xaca4[79]][_0xaca4[78]]}},_0x2287x29={};_0x2287x29[_0xaca4[54]]= _[_0xaca4[57]](db[_0xaca4[56]][_0xaca4[55]]);_0x2287x29[_0xaca4[58]]= _[_0xaca4[57]](_0x2287x28[_0xaca4[58]]);_0x2287x29[_0xaca4[59]]= _[_0xaca4[60]](_0x2287x29[_0xaca4[54]],_0x2287x29[_0xaca4[58]]);_0x2287x1b[_0xaca4[61]]= _[_0xaca4[60]](_0x2287x29[_0xaca4[54]],qs[_0xaca4[62]](_0x2287x28[_0xaca4[58]][_0xaca4[62]]));_0x2287x1b[_0xaca4[61]]= (_0x2287x1b[_0xaca4[61]][_0xaca4[63]])?_0x2287x1b[_0xaca4[61]]:_0x2287x29[_0xaca4[54]];_0x2287x1b= _[_0xaca4[73]]({},_0x2287x1b,_0x2287x28[_0xaca4[74]]);return db[_0xaca4[56]][_0xaca4[80]](_0x2287x1b)[_0xaca4[45]](handleEntityNotFound(_0x2287x15,null,_0xaca4[77]))[_0xaca4[45]](respondWithResult(_0x2287x15,null,_0xaca4[77]))[_0xaca4[75]](handleError(_0x2287x15,null,_0xaca4[77]))};exports[_0xaca4[81]]= function(_0x2287x28,_0x2287x15){return db[_0xaca4[56]][_0xaca4[81]](_0x2287x28[_0xaca4[82]],{})[_0xaca4[45]](respondWithResult(_0x2287x15,201,_0xaca4[81]))[_0xaca4[75]](handleError(_0x2287x15,null,_0xaca4[81]))};exports[_0xaca4[46]]= function(_0x2287x28,_0x2287x15){if(_0x2287x28[_0xaca4[82]][_0xaca4[78]]){delete _0x2287x28[_0xaca4[82]][_0xaca4[78]]};return db[_0xaca4[56]][_0xaca4[80]]({where:{id:_0x2287x28[_0xaca4[79]][_0xaca4[78]]}})[_0xaca4[45]](handleEntityNotFound(_0x2287x15,null,_0xaca4[46]))[_0xaca4[45]](saveUpdates(_0x2287x28[_0xaca4[82]],null,_0xaca4[46]))[_0xaca4[45]](respondWithResult(_0x2287x15,null,_0xaca4[46]))[_0xaca4[75]](handleError(_0x2287x15,null,_0xaca4[46]))};exports[_0xaca4[48]]= function(_0x2287x28,_0x2287x15){return db[_0xaca4[56]][_0xaca4[80]]({where:{id:_0x2287x28[_0xaca4[79]][_0xaca4[78]]}})[_0xaca4[45]](handleEntityNotFound(_0x2287x15,null,_0xaca4[48]))[_0xaca4[45]](removeEntity(_0x2287x15,null,_0xaca4[48]))[_0xaca4[75]](handleError(_0x2287x15,null,_0xaca4[48]))}
\ No newline at end of file
+var _0xa977=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xa977[0];var jsonpatch=require(_0xa977[1]);var rp=require(_0xa977[2]);var moment=require(_0xa977[3]);var BPromise=require(_0xa977[4]);var util=require(_0xa977[5]);var path=require(_0xa977[6]);var sox=require(_0xa977[7]);var ejs=require(_0xa977[8]);var fs=require(_0xa977[9]);var _=require(_0xa977[10]);var squel=require(_0xa977[11]);var crypto=require(_0xa977[12]);var jsforce=require(_0xa977[13]);var toCsv=require(_0xa977[14]);var qs=require(_0xa977[15]);var logger=require(_0xa977[17])(_0xa977[16]);var utils=require(_0xa977[18]);var config=require(_0xa977[19]);var db=require(_0xa977[21])[_0xa977[20]];function respondWithStatusCode(_0x673dx15,_0x673dx16,_0x673dx17){_0x673dx16= _0x673dx16|| 204;return function(_0x673dx18){if(_0x673dx18){logger[_0xa977[24]](_0xa977[22],_0x673dx17,_0x673dx16,_0xa977[23]);logger[_0xa977[26]](_0xa977[25],_0x673dx17,_0x673dx16,_0xa977[23]);return _0x673dx15[_0xa977[27]](_0x673dx16)};return _0x673dx15[_0xa977[29]](304)[_0xa977[28]]()}}function respondWithResult(_0x673dx15,_0x673dx16,_0x673dx17){_0x673dx16= _0x673dx16|| 200;return function(_0x673dx18){if(_0x673dx18){logger[_0xa977[24]](_0xa977[22],_0x673dx17,_0x673dx16,_0xa977[30]);logger[_0xa977[26]](_0xa977[25],_0x673dx17,_0x673dx16,_0xa977[30],JSON[_0xa977[31]](_0x673dx18));return _0x673dx15[_0xa977[29]](_0x673dx16)[_0xa977[32]](_0x673dx18)};return _0x673dx15[_0xa977[29]](304)[_0xa977[28]]()}}function respondWithFilteredResult(_0x673dx15,_0x673dx1b,_0x673dx17){return function(_0x673dx18){if(_0x673dx18){var _0x673dx1c=_0x673dx18[_0xa977[33]],_0x673dx1d=_0x673dx1b[_0xa977[34]],_0x673dx1e=_0x673dx1b[_0xa977[34]]+ _0x673dx1b[_0xa977[35]],_0x673dx16;if(_0x673dx1e>= _0x673dx1c){_0x673dx1e= _0x673dx1c;_0x673dx16= 200}else {_0x673dx16= 206};_0x673dx15[_0xa977[29]](_0x673dx16);logger[_0xa977[24]](_0xa977[22],_0x673dx17,_0x673dx16,_0xa977[36]);logger[_0xa977[26]](_0xa977[25],_0x673dx17,_0x673dx16,_0xa977[30],JSON[_0xa977[31]](_0x673dx18));return _0x673dx15[_0xa977[40]](_0xa977[37],_0x673dx1d+ _0xa977[38]+ _0x673dx1e+ _0xa977[39]+ _0x673dx1c)[_0xa977[32]](_0x673dx18)};return null}}function patchUpdates(_0x673dx20){return function(_0x673dx18){try{jsonpatch[_0xa977[41]](_0x673dx18,_0x673dx20,true)}catch(err){return BPromise[_0xa977[42]](err)};return _0x673dx18[_0xa977[43]]()}}function saveUpdates(_0x673dx22,_0x673dx16,_0x673dx17){return function(_0x673dx18){if(_0x673dx18){return _0x673dx18[_0xa977[46]](_0x673dx22)[_0xa977[45]](function(_0x673dx23){logger[_0xa977[24]](_0xa977[22],_0x673dx17,_0x673dx16,_0xa977[44]);logger[_0xa977[26]](_0xa977[25],_0x673dx17,_0x673dx16,_0xa977[44],JSON[_0xa977[31]](_0x673dx18));return _0x673dx23})};return null}}function removeEntity(_0x673dx15,_0x673dx16,_0x673dx17){return function(_0x673dx18){if(_0x673dx18){return _0x673dx18[_0xa977[48]]()[_0xa977[45]](function(){logger[_0xa977[24]](_0xa977[22],_0x673dx17,_0x673dx16,_0xa977[47]);logger[_0xa977[26]](_0xa977[25],_0x673dx17,_0x673dx16,_0xa977[47],JSON[_0xa977[31]](_0x673dx18));_0x673dx15[_0xa977[29]](204)[_0xa977[28]]()})}}}function handleEntityNotFound(_0x673dx15,_0x673dx16,_0x673dx17){return function(_0x673dx18){if(!_0x673dx18){logger[_0xa977[50]](_0xa977[22],_0x673dx17,404,_0xa977[49]);_0x673dx15[_0xa977[29]](404)[_0xa977[28]]();return null};return _0x673dx18}}function handleError(_0x673dx15,_0x673dx16,_0x673dx17){_0x673dx16= _0x673dx16|| 500;return function(_0x673dx27){logger[_0xa977[50]](_0xa977[22],_0x673dx17,_0x673dx16,JSON[_0xa977[31]](_0x673dx27));delete _0x673dx27[_0xa977[51]];_0x673dx15[_0xa977[29]](_0x673dx16)[_0xa977[52]](_0x673dx27)}}exports[_0xa977[53]]= function(_0x673dx28,_0x673dx15){var _0x673dx1b={},_0x673dx29={};_0x673dx29[_0xa977[54]]= _[_0xa977[57]](db[_0xa977[56]][_0xa977[55]]);_0x673dx29[_0xa977[58]]= _[_0xa977[57]](_0x673dx28[_0xa977[58]]);_0x673dx29[_0xa977[59]]= _[_0xa977[60]](_0x673dx29[_0xa977[54]],_0x673dx29[_0xa977[58]]);_0x673dx1b[_0xa977[61]]= _[_0xa977[60]](_0x673dx29[_0xa977[54]],qs[_0xa977[62]](_0x673dx28[_0xa977[58]][_0xa977[62]]));_0x673dx1b[_0xa977[61]]= (_0x673dx1b[_0xa977[61]][_0xa977[63]])?_0x673dx1b[_0xa977[61]]:_0x673dx29[_0xa977[54]];if(!_0x673dx28[_0xa977[58]][_0xa977[65]](_0xa977[64])){_0x673dx1b[_0xa977[35]]= qs[_0xa977[35]](_0x673dx28[_0xa977[58]][_0xa977[35]]);_0x673dx1b[_0xa977[34]]= qs[_0xa977[34]](_0x673dx28[_0xa977[58]][_0xa977[34]])};_0x673dx1b[_0xa977[66]]= qs[_0xa977[67]](_0x673dx28[_0xa977[58]][_0xa977[67]]);_0x673dx1b[_0xa977[68]]= qs[_0xa977[59]](_[_0xa977[69]](_0x673dx28[_0xa977[58]],_0x673dx29[_0xa977[59]]));if(_0x673dx28[_0xa977[58]][_0xa977[70]]){_0x673dx1b[_0xa977[68]]= _[_0xa977[73]](_0x673dx1b[_0xa977[68]],{$or:_[_0xa977[72]](_0x673dx1b[_0xa977[61]],function(_0x673dx2a){var _0x673dx2b={};_0x673dx2b[_0x673dx2a]= {$like:_0xa977[71]+ _0x673dx28[_0xa977[58]][_0xa977[70]]+ _0xa977[71]};return _0x673dx2b})})};_0x673dx1b= _[_0xa977[73]]({},_0x673dx1b,_0x673dx28[_0xa977[74]]);return db[_0xa977[56]][_0xa977[76]](_0x673dx1b)[_0xa977[45]](respondWithFilteredResult(_0x673dx15,_0x673dx1b,_0xa977[53]))[_0xa977[75]](handleError(_0x673dx15,null,_0xa977[53]))};exports[_0xa977[77]]= function(_0x673dx28,_0x673dx15){var _0x673dx1b={raw:true,where:{id:_0x673dx28[_0xa977[79]][_0xa977[78]]}},_0x673dx29={};_0x673dx29[_0xa977[54]]= _[_0xa977[57]](db[_0xa977[56]][_0xa977[55]]);_0x673dx29[_0xa977[58]]= _[_0xa977[57]](_0x673dx28[_0xa977[58]]);_0x673dx29[_0xa977[59]]= _[_0xa977[60]](_0x673dx29[_0xa977[54]],_0x673dx29[_0xa977[58]]);_0x673dx1b[_0xa977[61]]= _[_0xa977[60]](_0x673dx29[_0xa977[54]],qs[_0xa977[62]](_0x673dx28[_0xa977[58]][_0xa977[62]]));_0x673dx1b[_0xa977[61]]= (_0x673dx1b[_0xa977[61]][_0xa977[63]])?_0x673dx1b[_0xa977[61]]:_0x673dx29[_0xa977[54]];_0x673dx1b= _[_0xa977[73]]({},_0x673dx1b,_0x673dx28[_0xa977[74]]);return db[_0xa977[56]][_0xa977[80]](_0x673dx1b)[_0xa977[45]](handleEntityNotFound(_0x673dx15,null,_0xa977[77]))[_0xa977[45]](respondWithResult(_0x673dx15,null,_0xa977[77]))[_0xa977[75]](handleError(_0x673dx15,null,_0xa977[77]))};exports[_0xa977[81]]= function(_0x673dx28,_0x673dx15){return db[_0xa977[56]][_0xa977[81]](_0x673dx28[_0xa977[82]],{})[_0xa977[45]](respondWithResult(_0x673dx15,201,_0xa977[81]))[_0xa977[75]](handleError(_0x673dx15,null,_0xa977[81]))};exports[_0xa977[46]]= function(_0x673dx28,_0x673dx15){if(_0x673dx28[_0xa977[82]][_0xa977[78]]){delete _0x673dx28[_0xa977[82]][_0xa977[78]]};return db[_0xa977[56]][_0xa977[80]]({where:{id:_0x673dx28[_0xa977[79]][_0xa977[78]]}})[_0xa977[45]](handleEntityNotFound(_0x673dx15,null,_0xa977[46]))[_0xa977[45]](saveUpdates(_0x673dx28[_0xa977[82]],null,_0xa977[46]))[_0xa977[45]](respondWithResult(_0x673dx15,null,_0xa977[46]))[_0xa977[75]](handleError(_0x673dx15,null,_0xa977[46]))};exports[_0xa977[48]]= function(_0x673dx28,_0x673dx15){return db[_0xa977[56]][_0xa977[80]]({where:{id:_0x673dx28[_0xa977[79]][_0xa977[78]]}})[_0xa977[45]](handleEntityNotFound(_0x673dx15,null,_0xa977[48]))[_0xa977[45]](removeEntity(_0x673dx15,null,_0xa977[48]))[_0xa977[75]](handleError(_0x673dx15,null,_0xa977[48]))}
\ No newline at end of file
index 9e10f1c..224b70c 100644 (file)
@@ -1 +1 @@
-var _0x7d14=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x6C\x6F\x67","\x65\x76\x65\x6E\x74\x5F\x64\x74\x6D","\x65\x76\x65\x6E\x74","\x64\x74\x6D","\x64\x65\x66\x69\x6E\x65"];_0x7d14[0];var _=require(_0x7d14[1]);var util=require(_0x7d14[2]);var logger=require(_0x7d14[4])(_0x7d14[3]);var attributes=require(_0x7d14[5]);module[_0x7d14[6]]= function(_0x75efx5,_0x75efx6){return _0x75efx5[_0x7d14[12]](_0x7d14[7],attributes,{tableName:_0x7d14[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x7d14[9],"\x66\x69\x65\x6C\x64\x73":[_0x7d14[10],_0x7d14[11]]}],timestamps:false})}
\ No newline at end of file
+var _0xf2b6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x6C\x6F\x67","\x65\x76\x65\x6E\x74\x5F\x64\x74\x6D","\x65\x76\x65\x6E\x74","\x64\x74\x6D","\x64\x65\x66\x69\x6E\x65"];_0xf2b6[0];var _=require(_0xf2b6[1]);var util=require(_0xf2b6[2]);var logger=require(_0xf2b6[4])(_0xf2b6[3]);var attributes=require(_0xf2b6[5]);module[_0xf2b6[6]]= function(_0xe39cx5,_0xe39cx6){return _0xe39cx5[_0xf2b6[12]](_0xf2b6[7],attributes,{tableName:_0xf2b6[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xf2b6[9],"\x66\x69\x65\x6C\x64\x73":[_0xf2b6[10],_0xf2b6[11]]}],timestamps:false})}
\ No newline at end of file
index b25eb5b..021379d 100644 (file)
@@ -1 +1 @@
-var _0x6b96=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6b96[0];var _=require(_0x6b96[1]);var util=require(_0x6b96[2]);var moment=require(_0x6b96[3]);var BPromise=require(_0x6b96[4]);var db=require(_0x6b96[6])[_0x6b96[5]];var utils=require(_0x6b96[7]);var logger=require(_0x6b96[9])(_0x6b96[8]);var jayson=require(_0x6b96[10]);var client=jayson[_0x6b96[12]][_0x6b96[11]]({port:9002});function respondWithRpcPromise(_0xea92xb,_0xea92xc,_0xea92xd){return  new BPromise(function(_0xea92xe,_0xea92xf){return client[_0x6b96[25]](_0xea92xb,_0xea92xd)[_0x6b96[24]](function(_0xea92x11){logger[_0x6b96[17]](_0x6b96[13],_0xea92xc,_0x6b96[16]);logger[_0x6b96[20]](_0x6b96[18],_0xea92xc,_0x6b96[16],JSON[_0x6b96[19]](_0xea92x11));if(_0xea92x11[_0x6b96[14]]){if(_0xea92x11[_0x6b96[14]][_0x6b96[21]]=== 500){logger[_0x6b96[14]](_0x6b96[13],_0xea92xc,_0xea92x11[_0x6b96[14]][_0x6b96[22]]);return _0xea92xf(_0xea92x11[_0x6b96[14]][_0x6b96[22]])};logger[_0x6b96[14]](_0x6b96[13],_0xea92xc,_0xea92x11[_0x6b96[14]][_0x6b96[22]]);return _0xea92xe(_0xea92x11[_0x6b96[14]][_0x6b96[22]])}else {logger[_0x6b96[17]](_0x6b96[13],_0xea92xc,_0x6b96[16]);_0xea92xe(_0xea92x11[_0x6b96[23]][_0x6b96[22]])}})[_0x6b96[15]](function(_0xea92x10){logger[_0x6b96[14]](_0x6b96[13],_0xea92xc,_0xea92x10);_0xea92xf(_0xea92x10)})})}
\ No newline at end of file
+var _0xcb6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcb6a[0];var _=require(_0xcb6a[1]);var util=require(_0xcb6a[2]);var moment=require(_0xcb6a[3]);var BPromise=require(_0xcb6a[4]);var db=require(_0xcb6a[6])[_0xcb6a[5]];var utils=require(_0xcb6a[7]);var logger=require(_0xcb6a[9])(_0xcb6a[8]);var jayson=require(_0xcb6a[10]);var client=jayson[_0xcb6a[12]][_0xcb6a[11]]({port:9002});function respondWithRpcPromise(_0xae48xb,_0xae48xc,_0xae48xd){return  new BPromise(function(_0xae48xe,_0xae48xf){return client[_0xcb6a[25]](_0xae48xb,_0xae48xd)[_0xcb6a[24]](function(_0xae48x11){logger[_0xcb6a[17]](_0xcb6a[13],_0xae48xc,_0xcb6a[16]);logger[_0xcb6a[20]](_0xcb6a[18],_0xae48xc,_0xcb6a[16],JSON[_0xcb6a[19]](_0xae48x11));if(_0xae48x11[_0xcb6a[14]]){if(_0xae48x11[_0xcb6a[14]][_0xcb6a[21]]=== 500){logger[_0xcb6a[14]](_0xcb6a[13],_0xae48xc,_0xae48x11[_0xcb6a[14]][_0xcb6a[22]]);return _0xae48xf(_0xae48x11[_0xcb6a[14]][_0xcb6a[22]])};logger[_0xcb6a[14]](_0xcb6a[13],_0xae48xc,_0xae48x11[_0xcb6a[14]][_0xcb6a[22]]);return _0xae48xe(_0xae48x11[_0xcb6a[14]][_0xcb6a[22]])}else {logger[_0xcb6a[17]](_0xcb6a[13],_0xae48xc,_0xcb6a[16]);_0xae48xe(_0xae48x11[_0xcb6a[23]][_0xcb6a[22]])}})[_0xcb6a[15]](function(_0xae48x10){logger[_0xcb6a[14]](_0xcb6a[13],_0xae48xc,_0xae48x10);_0xae48xf(_0xae48x10)})})}
\ No newline at end of file
index 2fd70fc..cabd71d 100644 (file)
@@ -1 +1 @@
-var _0xf22a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf22a[0];var multer=require(_0xf22a[1]);var util=require(_0xf22a[2]);var path=require(_0xf22a[3]);var express=require(_0xf22a[4]);var router=express.Router();var auth=require(_0xf22a[5]);var config=require(_0xf22a[6]);var controller=require(_0xf22a[7]);router[_0xf22a[11]](_0xf22a[8],auth[_0xf22a[9]](),controller[_0xf22a[10]]);router[_0xf22a[11]](_0xf22a[12],auth[_0xf22a[9]](),controller[_0xf22a[13]]);router[_0xf22a[11]](_0xf22a[14],auth[_0xf22a[9]](),controller[_0xf22a[15]]);router[_0xf22a[11]](_0xf22a[16],controller[_0xf22a[17]]);router[_0xf22a[19]](_0xf22a[8],auth[_0xf22a[9]](),controller[_0xf22a[18]]);router[_0xf22a[21]](_0xf22a[14],auth[_0xf22a[9]](),controller[_0xf22a[20]]);router[_0xf22a[23]](_0xf22a[14],auth[_0xf22a[9]](),controller[_0xf22a[22]]);module[_0xf22a[24]]= router
\ No newline at end of file
+var _0xba87=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xba87[0];var multer=require(_0xba87[1]);var util=require(_0xba87[2]);var path=require(_0xba87[3]);var express=require(_0xba87[4]);var router=express.Router();var auth=require(_0xba87[5]);var config=require(_0xba87[6]);var controller=require(_0xba87[7]);router[_0xba87[11]](_0xba87[8],auth[_0xba87[9]](),controller[_0xba87[10]]);router[_0xba87[11]](_0xba87[12],auth[_0xba87[9]](),controller[_0xba87[13]]);router[_0xba87[11]](_0xba87[14],auth[_0xba87[9]](),controller[_0xba87[15]]);router[_0xba87[11]](_0xba87[16],controller[_0xba87[17]]);router[_0xba87[19]](_0xba87[8],auth[_0xba87[9]](),controller[_0xba87[18]]);router[_0xba87[21]](_0xba87[14],auth[_0xba87[9]](),controller[_0xba87[20]]);router[_0xba87[23]](_0xba87[14],auth[_0xba87[9]](),controller[_0xba87[22]]);module[_0xba87[24]]= router
\ No newline at end of file
index c568c49..dc63065 100644 (file)
@@ -1 +1 @@
-var _0x4e74=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x70\x61\x74\x68","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x76\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x53\x54\x52\x49\x4E\x47","\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x70\x6C\x69\x74","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74"];_0x4e74[0];var Sequelize=require(_0x4e74[1]);var moment=require(_0x4e74[2]);var path=require(_0x4e74[3]);module[_0x4e74[4]]= {format:{type:Sequelize[_0x4e74[5]],get:function(){return this[_0x4e74[7]](_0x4e74[6])?path[_0x4e74[8]](this[_0x4e74[7]](_0x4e74[6])):undefined}},uniqueid:{type:Sequelize[_0x4e74[9]]},channel:{type:Sequelize[_0x4e74[9]],set:function(_0xc46bx4){if(_0xc46bx4){this[_0x4e74[11]](_0x4e74[10],_0xc46bx4);this[_0x4e74[11]](_0x4e74[12],_0xc46bx4[_0x4e74[13]](/\/|-/)[1])}}},membername:{type:Sequelize[_0x4e74[9]]},calleridnum:{type:Sequelize[_0x4e74[9]]},calleridname:{type:Sequelize[_0x4e74[9]]},connectedlinenum:{type:Sequelize[_0x4e74[9]]},connectedlinename:{type:Sequelize[_0x4e74[9]]},accountcode:{type:Sequelize[_0x4e74[9]]},context:{type:Sequelize[_0x4e74[9]]},exten:{type:Sequelize[_0x4e74[9]]},value:{type:Sequelize[_0x4e74[9]]},type:{type:Sequelize[_0x4e74[9]]},rating:{type:Sequelize[_0x4e74[14]],validate:{max:5,min:0}},queue:{type:Sequelize[_0x4e74[9]]},createdAt:{type:Sequelize[_0x4e74[15]],get:function(){return moment(this[_0x4e74[7]](_0x4e74[18]))[_0x4e74[17]](_0x4e74[16]).toString()}},updatedAt:{type:Sequelize[_0x4e74[15]],get:function(){return moment(this[_0x4e74[7]](_0x4e74[19]))[_0x4e74[17]](_0x4e74[16]).toString()}}}
\ No newline at end of file
+var _0x7e2c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x70\x61\x74\x68","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x76\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x53\x54\x52\x49\x4E\x47","\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x70\x6C\x69\x74","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74"];_0x7e2c[0];var Sequelize=require(_0x7e2c[1]);var moment=require(_0x7e2c[2]);var path=require(_0x7e2c[3]);module[_0x7e2c[4]]= {format:{type:Sequelize[_0x7e2c[5]],get:function(){return this[_0x7e2c[7]](_0x7e2c[6])?path[_0x7e2c[8]](this[_0x7e2c[7]](_0x7e2c[6])):undefined}},uniqueid:{type:Sequelize[_0x7e2c[9]]},channel:{type:Sequelize[_0x7e2c[9]],set:function(_0x3663x4){if(_0x3663x4){this[_0x7e2c[11]](_0x7e2c[10],_0x3663x4);this[_0x7e2c[11]](_0x7e2c[12],_0x3663x4[_0x7e2c[13]](/\/|-/)[1])}}},membername:{type:Sequelize[_0x7e2c[9]]},calleridnum:{type:Sequelize[_0x7e2c[9]]},calleridname:{type:Sequelize[_0x7e2c[9]]},connectedlinenum:{type:Sequelize[_0x7e2c[9]]},connectedlinename:{type:Sequelize[_0x7e2c[9]]},accountcode:{type:Sequelize[_0x7e2c[9]]},context:{type:Sequelize[_0x7e2c[9]]},exten:{type:Sequelize[_0x7e2c[9]]},value:{type:Sequelize[_0x7e2c[9]]},type:{type:Sequelize[_0x7e2c[9]]},rating:{type:Sequelize[_0x7e2c[14]],validate:{max:5,min:0}},queue:{type:Sequelize[_0x7e2c[9]]},createdAt:{type:Sequelize[_0x7e2c[15]],get:function(){return moment(this[_0x7e2c[7]](_0x7e2c[18]))[_0x7e2c[17]](_0x7e2c[16]).toString()}},updatedAt:{type:Sequelize[_0x7e2c[15]],get:function(){return moment(this[_0x7e2c[7]](_0x7e2c[19]))[_0x7e2c[17]](_0x7e2c[16]).toString()}}}
\ No newline at end of file
index 9db480c..84bc9c7 100644 (file)
@@ -1 +1 @@
-var _0x8b84=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x76\x61\x6C\x75\x65","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x8b84[0];var jsonpatch=require(_0x8b84[1]);var rp=require(_0x8b84[2]);var moment=require(_0x8b84[3]);var BPromise=require(_0x8b84[4]);var util=require(_0x8b84[5]);var path=require(_0x8b84[6]);var sox=require(_0x8b84[7]);var ejs=require(_0x8b84[8]);var fs=require(_0x8b84[9]);var _=require(_0x8b84[10]);var squel=require(_0x8b84[11]);var crypto=require(_0x8b84[12]);var jsforce=require(_0x8b84[13]);var toCsv=require(_0x8b84[14]);var qs=require(_0x8b84[15]);var logger=require(_0x8b84[17])(_0x8b84[16]);var utils=require(_0x8b84[18]);var config=require(_0x8b84[19]);var db=require(_0x8b84[21])[_0x8b84[20]];function respondWithStatusCode(_0x64d4x15,_0x64d4x16,_0x64d4x17){_0x64d4x16= _0x64d4x16|| 204;return function(_0x64d4x18){if(_0x64d4x18){logger[_0x8b84[24]](_0x8b84[22],_0x64d4x17,_0x64d4x16,_0x8b84[23]);logger[_0x8b84[26]](_0x8b84[25],_0x64d4x17,_0x64d4x16,_0x8b84[23]);return _0x64d4x15[_0x8b84[27]](_0x64d4x16)};return _0x64d4x15[_0x8b84[29]](304)[_0x8b84[28]]()}}function respondWithResult(_0x64d4x15,_0x64d4x16,_0x64d4x17){_0x64d4x16= _0x64d4x16|| 200;return function(_0x64d4x18){if(_0x64d4x18){logger[_0x8b84[24]](_0x8b84[22],_0x64d4x17,_0x64d4x16,_0x8b84[30]);logger[_0x8b84[26]](_0x8b84[25],_0x64d4x17,_0x64d4x16,_0x8b84[30],JSON[_0x8b84[31]](_0x64d4x18));return _0x64d4x15[_0x8b84[29]](_0x64d4x16)[_0x8b84[32]](_0x64d4x18)};return _0x64d4x15[_0x8b84[29]](304)[_0x8b84[28]]()}}function respondWithFilteredResult(_0x64d4x15,_0x64d4x1b,_0x64d4x17){return function(_0x64d4x18){if(_0x64d4x18){var _0x64d4x1c=_0x64d4x18[_0x8b84[33]],_0x64d4x1d=_0x64d4x1b[_0x8b84[34]],_0x64d4x1e=_0x64d4x1b[_0x8b84[34]]+ _0x64d4x1b[_0x8b84[35]],_0x64d4x16;if(_0x64d4x1e>= _0x64d4x1c){_0x64d4x1e= _0x64d4x1c;_0x64d4x16= 200}else {_0x64d4x16= 206};_0x64d4x15[_0x8b84[29]](_0x64d4x16);logger[_0x8b84[24]](_0x8b84[22],_0x64d4x17,_0x64d4x16,_0x8b84[36]);logger[_0x8b84[26]](_0x8b84[25],_0x64d4x17,_0x64d4x16,_0x8b84[30],JSON[_0x8b84[31]](_0x64d4x18));return _0x64d4x15[_0x8b84[40]](_0x8b84[37],_0x64d4x1d+ _0x8b84[38]+ _0x64d4x1e+ _0x8b84[39]+ _0x64d4x1c)[_0x8b84[32]](_0x64d4x18)};return null}}function patchUpdates(_0x64d4x20){return function(_0x64d4x18){try{jsonpatch[_0x8b84[41]](_0x64d4x18,_0x64d4x20,true)}catch(err){return BPromise[_0x8b84[42]](err)};return _0x64d4x18[_0x8b84[43]]()}}function saveUpdates(_0x64d4x22,_0x64d4x16,_0x64d4x17){return function(_0x64d4x18){if(_0x64d4x18){return _0x64d4x18[_0x8b84[46]](_0x64d4x22)[_0x8b84[45]](function(_0x64d4x23){logger[_0x8b84[24]](_0x8b84[22],_0x64d4x17,_0x64d4x16,_0x8b84[44]);logger[_0x8b84[26]](_0x8b84[25],_0x64d4x17,_0x64d4x16,_0x8b84[44],JSON[_0x8b84[31]](_0x64d4x18));return _0x64d4x23})};return null}}function removeEntity(_0x64d4x15,_0x64d4x16,_0x64d4x17){return function(_0x64d4x18){if(_0x64d4x18){return _0x64d4x18[_0x8b84[48]]()[_0x8b84[45]](function(){logger[_0x8b84[24]](_0x8b84[22],_0x64d4x17,_0x64d4x16,_0x8b84[47]);logger[_0x8b84[26]](_0x8b84[25],_0x64d4x17,_0x64d4x16,_0x8b84[47],JSON[_0x8b84[31]](_0x64d4x18));_0x64d4x15[_0x8b84[29]](204)[_0x8b84[28]]()})}}}function handleEntityNotFound(_0x64d4x15,_0x64d4x16,_0x64d4x17){return function(_0x64d4x18){if(!_0x64d4x18){logger[_0x8b84[50]](_0x8b84[22],_0x64d4x17,404,_0x8b84[49]);_0x64d4x15[_0x8b84[29]](404)[_0x8b84[28]]();return null};return _0x64d4x18}}function handleError(_0x64d4x15,_0x64d4x16,_0x64d4x17){_0x64d4x16= _0x64d4x16|| 500;return function(_0x64d4x27){logger[_0x8b84[50]](_0x8b84[22],_0x64d4x17,_0x64d4x16,JSON[_0x8b84[31]](_0x64d4x27));delete _0x64d4x27[_0x8b84[51]];_0x64d4x15[_0x8b84[29]](_0x64d4x16)[_0x8b84[52]](_0x64d4x27)}}exports[_0x8b84[53]]= function(_0x64d4x28,_0x64d4x15){var _0x64d4x1b={},_0x64d4x29={};_0x64d4x29[_0x8b84[54]]= _[_0x8b84[57]](db[_0x8b84[56]][_0x8b84[55]]);_0x64d4x29[_0x8b84[58]]= _[_0x8b84[57]](_0x64d4x28[_0x8b84[58]]);_0x64d4x29[_0x8b84[59]]= _[_0x8b84[60]](_0x64d4x29[_0x8b84[54]],_0x64d4x29[_0x8b84[58]]);_0x64d4x1b[_0x8b84[61]]= _[_0x8b84[60]](_0x64d4x29[_0x8b84[54]],qs[_0x8b84[62]](_0x64d4x28[_0x8b84[58]][_0x8b84[62]]));_0x64d4x1b[_0x8b84[61]]= (_0x64d4x1b[_0x8b84[61]][_0x8b84[63]])?_0x64d4x1b[_0x8b84[61]]:_0x64d4x29[_0x8b84[54]];if(!_0x64d4x28[_0x8b84[58]][_0x8b84[65]](_0x8b84[64])){_0x64d4x1b[_0x8b84[35]]= qs[_0x8b84[35]](_0x64d4x28[_0x8b84[58]][_0x8b84[35]]);_0x64d4x1b[_0x8b84[34]]= qs[_0x8b84[34]](_0x64d4x28[_0x8b84[58]][_0x8b84[34]])};_0x64d4x1b[_0x8b84[66]]= qs[_0x8b84[67]](_0x64d4x28[_0x8b84[58]][_0x8b84[67]]);_0x64d4x1b[_0x8b84[68]]= qs[_0x8b84[59]](_[_0x8b84[69]](_0x64d4x28[_0x8b84[58]],_0x64d4x29[_0x8b84[59]]));if(_0x64d4x28[_0x8b84[58]][_0x8b84[70]]){_0x64d4x1b[_0x8b84[68]]= _[_0x8b84[73]](_0x64d4x1b[_0x8b84[68]],{$or:_[_0x8b84[72]](_0x64d4x1b[_0x8b84[61]],function(_0x64d4x2a){var _0x64d4x2b={};_0x64d4x2b[_0x64d4x2a]= {$like:_0x8b84[71]+ _0x64d4x28[_0x8b84[58]][_0x8b84[70]]+ _0x8b84[71]};return _0x64d4x2b})})};_0x64d4x1b= _[_0x8b84[73]]({},_0x64d4x1b,_0x64d4x28[_0x8b84[74]]);return db[_0x8b84[56]][_0x8b84[76]](_0x64d4x1b)[_0x8b84[45]](respondWithFilteredResult(_0x64d4x15,_0x64d4x1b,_0x8b84[53]))[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[53]))};exports[_0x8b84[77]]= function(_0x64d4x28,_0x64d4x15){var _0x64d4x1b={raw:false,where:{id:_0x64d4x28[_0x8b84[79]][_0x8b84[78]]}},_0x64d4x29={};_0x64d4x29[_0x8b84[54]]= _[_0x8b84[57]](db[_0x8b84[56]][_0x8b84[55]]);_0x64d4x29[_0x8b84[58]]= _[_0x8b84[57]](_0x64d4x28[_0x8b84[58]]);_0x64d4x29[_0x8b84[59]]= _[_0x8b84[60]](_0x64d4x29[_0x8b84[54]],_0x64d4x29[_0x8b84[58]]);_0x64d4x1b[_0x8b84[61]]= _[_0x8b84[60]](_0x64d4x29[_0x8b84[54]],qs[_0x8b84[62]](_0x64d4x28[_0x8b84[58]][_0x8b84[62]]));_0x64d4x1b[_0x8b84[61]]= (_0x64d4x1b[_0x8b84[61]][_0x8b84[63]])?_0x64d4x1b[_0x8b84[61]]:_0x64d4x29[_0x8b84[54]];_0x64d4x1b= _[_0x8b84[73]]({},_0x64d4x1b,_0x64d4x28[_0x8b84[74]]);return db[_0x8b84[56]][_0x8b84[80]](_0x64d4x1b)[_0x8b84[45]](handleEntityNotFound(_0x64d4x15,null,_0x8b84[77]))[_0x8b84[45]](respondWithResult(_0x64d4x15,null,_0x8b84[77]))[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[77]))};exports[_0x8b84[81]]= function(_0x64d4x28,_0x64d4x15){return db[_0x8b84[56]][_0x8b84[81]](_0x64d4x28[_0x8b84[82]],{})[_0x8b84[45]](respondWithResult(_0x64d4x15,201,_0x8b84[81]))[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[81]))};exports[_0x8b84[46]]= function(_0x64d4x28,_0x64d4x15){if(_0x64d4x28[_0x8b84[82]][_0x8b84[78]]){delete _0x64d4x28[_0x8b84[82]][_0x8b84[78]]};return db[_0x8b84[56]][_0x8b84[80]]({where:{id:_0x64d4x28[_0x8b84[79]][_0x8b84[78]]}})[_0x8b84[45]](handleEntityNotFound(_0x64d4x15,null,_0x8b84[46]))[_0x8b84[45]](saveUpdates(_0x64d4x28[_0x8b84[82]],null,_0x8b84[46]))[_0x8b84[45]](respondWithResult(_0x64d4x15,null,_0x8b84[46]))[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[46]))};exports[_0x8b84[48]]= function(_0x64d4x28,_0x64d4x15){return db[_0x8b84[56]][_0x8b84[80]]({where:{id:_0x64d4x28[_0x8b84[79]][_0x8b84[78]]}})[_0x8b84[45]](handleEntityNotFound(_0x64d4x15,null,_0x8b84[48]))[_0x8b84[45]](removeEntity(_0x64d4x15,null,_0x8b84[48]))[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[48]))};exports[_0x8b84[83]]= function(_0x64d4x28,_0x64d4x15){return db[_0x8b84[56]][_0x8b84[83]]()[_0x8b84[45]](respondWithResult(_0x64d4x15,null,_0x8b84[83]))[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[83]))};exports[_0x8b84[84]]= function(_0x64d4x28,_0x64d4x15,_0x64d4x2c){return db[_0x8b84[56]][_0x8b84[80]]({where:{id:_0x64d4x28[_0x8b84[79]][_0x8b84[78]]},attributes:[_0x8b84[78],_0x8b84[87]],raw:true})[_0x8b84[45]](handleEntityNotFound(_0x64d4x15,null,_0x8b84[84]))[_0x8b84[45]](function(_0x64d4x18){if(_0x64d4x18){logger[_0x8b84[24]](_0x8b84[86],_0x8b84[84],_0x8b84[30]);logger[_0x8b84[26]](_0x8b84[22],_0x8b84[84],_0x8b84[30],JSON[_0x8b84[31]](_0x64d4x18));if(!fs[_0x8b84[88]](_0x64d4x18[_0x8b84[87]])){throw  new db[_0x8b84[90]].ValidationError(_0x8b84[89])};return _0x64d4x15[_0x8b84[84]](_0x64d4x18[_0x8b84[87]])}})[_0x8b84[75]](handleError(_0x64d4x15,null,_0x8b84[85]))}
\ No newline at end of file
+var _0xef89=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x76\x61\x6C\x75\x65","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0xef89[0];var jsonpatch=require(_0xef89[1]);var rp=require(_0xef89[2]);var moment=require(_0xef89[3]);var BPromise=require(_0xef89[4]);var util=require(_0xef89[5]);var path=require(_0xef89[6]);var sox=require(_0xef89[7]);var ejs=require(_0xef89[8]);var fs=require(_0xef89[9]);var _=require(_0xef89[10]);var squel=require(_0xef89[11]);var crypto=require(_0xef89[12]);var jsforce=require(_0xef89[13]);var toCsv=require(_0xef89[14]);var qs=require(_0xef89[15]);var logger=require(_0xef89[17])(_0xef89[16]);var utils=require(_0xef89[18]);var config=require(_0xef89[19]);var db=require(_0xef89[21])[_0xef89[20]];function respondWithStatusCode(_0xe63ex15,_0xe63ex16,_0xe63ex17){_0xe63ex16= _0xe63ex16|| 204;return function(_0xe63ex18){if(_0xe63ex18){logger[_0xef89[24]](_0xef89[22],_0xe63ex17,_0xe63ex16,_0xef89[23]);logger[_0xef89[26]](_0xef89[25],_0xe63ex17,_0xe63ex16,_0xef89[23]);return _0xe63ex15[_0xef89[27]](_0xe63ex16)};return _0xe63ex15[_0xef89[29]](304)[_0xef89[28]]()}}function respondWithResult(_0xe63ex15,_0xe63ex16,_0xe63ex17){_0xe63ex16= _0xe63ex16|| 200;return function(_0xe63ex18){if(_0xe63ex18){logger[_0xef89[24]](_0xef89[22],_0xe63ex17,_0xe63ex16,_0xef89[30]);logger[_0xef89[26]](_0xef89[25],_0xe63ex17,_0xe63ex16,_0xef89[30],JSON[_0xef89[31]](_0xe63ex18));return _0xe63ex15[_0xef89[29]](_0xe63ex16)[_0xef89[32]](_0xe63ex18)};return _0xe63ex15[_0xef89[29]](304)[_0xef89[28]]()}}function respondWithFilteredResult(_0xe63ex15,_0xe63ex1b,_0xe63ex17){return function(_0xe63ex18){if(_0xe63ex18){var _0xe63ex1c=_0xe63ex18[_0xef89[33]],_0xe63ex1d=_0xe63ex1b[_0xef89[34]],_0xe63ex1e=_0xe63ex1b[_0xef89[34]]+ _0xe63ex1b[_0xef89[35]],_0xe63ex16;if(_0xe63ex1e>= _0xe63ex1c){_0xe63ex1e= _0xe63ex1c;_0xe63ex16= 200}else {_0xe63ex16= 206};_0xe63ex15[_0xef89[29]](_0xe63ex16);logger[_0xef89[24]](_0xef89[22],_0xe63ex17,_0xe63ex16,_0xef89[36]);logger[_0xef89[26]](_0xef89[25],_0xe63ex17,_0xe63ex16,_0xef89[30],JSON[_0xef89[31]](_0xe63ex18));return _0xe63ex15[_0xef89[40]](_0xef89[37],_0xe63ex1d+ _0xef89[38]+ _0xe63ex1e+ _0xef89[39]+ _0xe63ex1c)[_0xef89[32]](_0xe63ex18)};return null}}function patchUpdates(_0xe63ex20){return function(_0xe63ex18){try{jsonpatch[_0xef89[41]](_0xe63ex18,_0xe63ex20,true)}catch(err){return BPromise[_0xef89[42]](err)};return _0xe63ex18[_0xef89[43]]()}}function saveUpdates(_0xe63ex22,_0xe63ex16,_0xe63ex17){return function(_0xe63ex18){if(_0xe63ex18){return _0xe63ex18[_0xef89[46]](_0xe63ex22)[_0xef89[45]](function(_0xe63ex23){logger[_0xef89[24]](_0xef89[22],_0xe63ex17,_0xe63ex16,_0xef89[44]);logger[_0xef89[26]](_0xef89[25],_0xe63ex17,_0xe63ex16,_0xef89[44],JSON[_0xef89[31]](_0xe63ex18));return _0xe63ex23})};return null}}function removeEntity(_0xe63ex15,_0xe63ex16,_0xe63ex17){return function(_0xe63ex18){if(_0xe63ex18){return _0xe63ex18[_0xef89[48]]()[_0xef89[45]](function(){logger[_0xef89[24]](_0xef89[22],_0xe63ex17,_0xe63ex16,_0xef89[47]);logger[_0xef89[26]](_0xef89[25],_0xe63ex17,_0xe63ex16,_0xef89[47],JSON[_0xef89[31]](_0xe63ex18));_0xe63ex15[_0xef89[29]](204)[_0xef89[28]]()})}}}function handleEntityNotFound(_0xe63ex15,_0xe63ex16,_0xe63ex17){return function(_0xe63ex18){if(!_0xe63ex18){logger[_0xef89[50]](_0xef89[22],_0xe63ex17,404,_0xef89[49]);_0xe63ex15[_0xef89[29]](404)[_0xef89[28]]();return null};return _0xe63ex18}}function handleError(_0xe63ex15,_0xe63ex16,_0xe63ex17){_0xe63ex16= _0xe63ex16|| 500;return function(_0xe63ex27){logger[_0xef89[50]](_0xef89[22],_0xe63ex17,_0xe63ex16,JSON[_0xef89[31]](_0xe63ex27));delete _0xe63ex27[_0xef89[51]];_0xe63ex15[_0xef89[29]](_0xe63ex16)[_0xef89[52]](_0xe63ex27)}}exports[_0xef89[53]]= function(_0xe63ex28,_0xe63ex15){var _0xe63ex1b={},_0xe63ex29={};_0xe63ex29[_0xef89[54]]= _[_0xef89[57]](db[_0xef89[56]][_0xef89[55]]);_0xe63ex29[_0xef89[58]]= _[_0xef89[57]](_0xe63ex28[_0xef89[58]]);_0xe63ex29[_0xef89[59]]= _[_0xef89[60]](_0xe63ex29[_0xef89[54]],_0xe63ex29[_0xef89[58]]);_0xe63ex1b[_0xef89[61]]= _[_0xef89[60]](_0xe63ex29[_0xef89[54]],qs[_0xef89[62]](_0xe63ex28[_0xef89[58]][_0xef89[62]]));_0xe63ex1b[_0xef89[61]]= (_0xe63ex1b[_0xef89[61]][_0xef89[63]])?_0xe63ex1b[_0xef89[61]]:_0xe63ex29[_0xef89[54]];if(!_0xe63ex28[_0xef89[58]][_0xef89[65]](_0xef89[64])){_0xe63ex1b[_0xef89[35]]= qs[_0xef89[35]](_0xe63ex28[_0xef89[58]][_0xef89[35]]);_0xe63ex1b[_0xef89[34]]= qs[_0xef89[34]](_0xe63ex28[_0xef89[58]][_0xef89[34]])};_0xe63ex1b[_0xef89[66]]= qs[_0xef89[67]](_0xe63ex28[_0xef89[58]][_0xef89[67]]);_0xe63ex1b[_0xef89[68]]= qs[_0xef89[59]](_[_0xef89[69]](_0xe63ex28[_0xef89[58]],_0xe63ex29[_0xef89[59]]));if(_0xe63ex28[_0xef89[58]][_0xef89[70]]){_0xe63ex1b[_0xef89[68]]= _[_0xef89[73]](_0xe63ex1b[_0xef89[68]],{$or:_[_0xef89[72]](_0xe63ex1b[_0xef89[61]],function(_0xe63ex2a){var _0xe63ex2b={};_0xe63ex2b[_0xe63ex2a]= {$like:_0xef89[71]+ _0xe63ex28[_0xef89[58]][_0xef89[70]]+ _0xef89[71]};return _0xe63ex2b})})};_0xe63ex1b= _[_0xef89[73]]({},_0xe63ex1b,_0xe63ex28[_0xef89[74]]);return db[_0xef89[56]][_0xef89[76]](_0xe63ex1b)[_0xef89[45]](respondWithFilteredResult(_0xe63ex15,_0xe63ex1b,_0xef89[53]))[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[53]))};exports[_0xef89[77]]= function(_0xe63ex28,_0xe63ex15){var _0xe63ex1b={raw:false,where:{id:_0xe63ex28[_0xef89[79]][_0xef89[78]]}},_0xe63ex29={};_0xe63ex29[_0xef89[54]]= _[_0xef89[57]](db[_0xef89[56]][_0xef89[55]]);_0xe63ex29[_0xef89[58]]= _[_0xef89[57]](_0xe63ex28[_0xef89[58]]);_0xe63ex29[_0xef89[59]]= _[_0xef89[60]](_0xe63ex29[_0xef89[54]],_0xe63ex29[_0xef89[58]]);_0xe63ex1b[_0xef89[61]]= _[_0xef89[60]](_0xe63ex29[_0xef89[54]],qs[_0xef89[62]](_0xe63ex28[_0xef89[58]][_0xef89[62]]));_0xe63ex1b[_0xef89[61]]= (_0xe63ex1b[_0xef89[61]][_0xef89[63]])?_0xe63ex1b[_0xef89[61]]:_0xe63ex29[_0xef89[54]];_0xe63ex1b= _[_0xef89[73]]({},_0xe63ex1b,_0xe63ex28[_0xef89[74]]);return db[_0xef89[56]][_0xef89[80]](_0xe63ex1b)[_0xef89[45]](handleEntityNotFound(_0xe63ex15,null,_0xef89[77]))[_0xef89[45]](respondWithResult(_0xe63ex15,null,_0xef89[77]))[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[77]))};exports[_0xef89[81]]= function(_0xe63ex28,_0xe63ex15){return db[_0xef89[56]][_0xef89[81]](_0xe63ex28[_0xef89[82]],{})[_0xef89[45]](respondWithResult(_0xe63ex15,201,_0xef89[81]))[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[81]))};exports[_0xef89[46]]= function(_0xe63ex28,_0xe63ex15){if(_0xe63ex28[_0xef89[82]][_0xef89[78]]){delete _0xe63ex28[_0xef89[82]][_0xef89[78]]};return db[_0xef89[56]][_0xef89[80]]({where:{id:_0xe63ex28[_0xef89[79]][_0xef89[78]]}})[_0xef89[45]](handleEntityNotFound(_0xe63ex15,null,_0xef89[46]))[_0xef89[45]](saveUpdates(_0xe63ex28[_0xef89[82]],null,_0xef89[46]))[_0xef89[45]](respondWithResult(_0xe63ex15,null,_0xef89[46]))[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[46]))};exports[_0xef89[48]]= function(_0xe63ex28,_0xe63ex15){return db[_0xef89[56]][_0xef89[80]]({where:{id:_0xe63ex28[_0xef89[79]][_0xef89[78]]}})[_0xef89[45]](handleEntityNotFound(_0xe63ex15,null,_0xef89[48]))[_0xef89[45]](removeEntity(_0xe63ex15,null,_0xef89[48]))[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[48]))};exports[_0xef89[83]]= function(_0xe63ex28,_0xe63ex15){return db[_0xef89[56]][_0xef89[83]]()[_0xef89[45]](respondWithResult(_0xe63ex15,null,_0xef89[83]))[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[83]))};exports[_0xef89[84]]= function(_0xe63ex28,_0xe63ex15,_0xe63ex2c){return db[_0xef89[56]][_0xef89[80]]({where:{id:_0xe63ex28[_0xef89[79]][_0xef89[78]]},attributes:[_0xef89[78],_0xef89[87]],raw:true})[_0xef89[45]](handleEntityNotFound(_0xe63ex15,null,_0xef89[84]))[_0xef89[45]](function(_0xe63ex18){if(_0xe63ex18){logger[_0xef89[24]](_0xef89[86],_0xef89[84],_0xef89[30]);logger[_0xef89[26]](_0xef89[22],_0xef89[84],_0xef89[30],JSON[_0xef89[31]](_0xe63ex18));if(!fs[_0xef89[88]](_0xe63ex18[_0xef89[87]])){throw  new db[_0xef89[90]].ValidationError(_0xef89[89])};return _0xe63ex15[_0xef89[84]](_0xe63ex18[_0xef89[87]])}})[_0xef89[75]](handleError(_0xe63ex15,null,_0xef89[85]))}
\ No newline at end of file
index 0d71df3..9c7ef0d 100644 (file)
@@ -1 +1 @@
-var _0x7163=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x7163[0];var _=require(_0x7163[1]);var util=require(_0x7163[2]);var logger=require(_0x7163[4])(_0x7163[3]);var attributes=require(_0x7163[5]);module[_0x7163[6]]= function(_0x4675x5,_0x4675x6){return _0x4675x5[_0x7163[9]](_0x7163[7],attributes,{tableName:_0x7163[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0xb926=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xb926[0];var _=require(_0xb926[1]);var util=require(_0xb926[2]);var logger=require(_0xb926[4])(_0xb926[3]);var attributes=require(_0xb926[5]);module[_0xb926[6]]= function(_0xfdf8x5,_0xfdf8x6){return _0xfdf8x5[_0xb926[9]](_0xb926[7],attributes,{tableName:_0xb926[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 3680e7d..b9a4739 100644 (file)
@@ -1 +1 @@
-var _0xe0da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xe0da[0];var _=require(_0xe0da[1]);var util=require(_0xe0da[2]);var moment=require(_0xe0da[3]);var BPromise=require(_0xe0da[4]);var db=require(_0xe0da[6])[_0xe0da[5]];var utils=require(_0xe0da[7]);var logger=require(_0xe0da[9])(_0xe0da[8]);var jayson=require(_0xe0da[10]);var client=jayson[_0xe0da[12]][_0xe0da[11]]({port:9002});function respondWithRpcPromise(_0x7964xb,_0x7964xc,_0x7964xd){return  new BPromise(function(_0x7964xe,_0x7964xf){return client[_0xe0da[25]](_0x7964xb,_0x7964xd)[_0xe0da[24]](function(_0x7964x11){logger[_0xe0da[17]](_0xe0da[13],_0x7964xc,_0xe0da[16]);logger[_0xe0da[20]](_0xe0da[18],_0x7964xc,_0xe0da[16],JSON[_0xe0da[19]](_0x7964x11));if(_0x7964x11[_0xe0da[14]]){if(_0x7964x11[_0xe0da[14]][_0xe0da[21]]=== 500){logger[_0xe0da[14]](_0xe0da[13],_0x7964xc,_0x7964x11[_0xe0da[14]][_0xe0da[22]]);return _0x7964xf(_0x7964x11[_0xe0da[14]][_0xe0da[22]])};logger[_0xe0da[14]](_0xe0da[13],_0x7964xc,_0x7964x11[_0xe0da[14]][_0xe0da[22]]);return _0x7964xe(_0x7964x11[_0xe0da[14]][_0xe0da[22]])}else {logger[_0xe0da[17]](_0xe0da[13],_0x7964xc,_0xe0da[16]);_0x7964xe(_0x7964x11[_0xe0da[23]][_0xe0da[22]])}})[_0xe0da[15]](function(_0x7964x10){logger[_0xe0da[14]](_0xe0da[13],_0x7964xc,_0x7964x10);_0x7964xf(_0x7964x10)})})}exports[_0xe0da[26]]= function(_0x7964xd){var _0x7964x12=this;return  new Promise(function(_0x7964xe,_0x7964xf){return db[_0xe0da[31]][_0xe0da[30]](_0x7964xd[_0xe0da[27]],{raw:_0x7964xd[_0xe0da[28]]?(_0x7964xd[_0xe0da[28]][_0xe0da[29]]=== undefined)?true:false:true})[_0xe0da[24]](function(_0x7964x11){logger[_0xe0da[17]](_0xe0da[26],_0x7964xd);logger[_0xe0da[20]](_0xe0da[26],_0x7964xd,JSON[_0xe0da[19]](_0x7964x11));_0x7964xe(_0x7964x11)})[_0xe0da[15]](function(_0x7964x10){logger[_0xe0da[14]](_0xe0da[26],_0x7964x10[_0xe0da[22]],_0x7964xd);_0x7964xf(_0x7964x12[_0xe0da[14]](500,_0x7964x10[_0xe0da[22]]))})})};exports[_0xe0da[32]]= function(_0x7964xd){var _0x7964x12=this;return  new Promise(function(_0x7964xe,_0x7964xf){return db[_0xe0da[31]][_0xe0da[36]](_0x7964xd[_0xe0da[27]],{raw:_0x7964xd[_0xe0da[28]]?(_0x7964xd[_0xe0da[28]][_0xe0da[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x7964xd[_0xe0da[28]]?_0x7964xd[_0xe0da[28]][_0xe0da[33]]|| null:null,attributes:_0x7964xd[_0xe0da[28]]?_0x7964xd[_0xe0da[28]][_0xe0da[34]]|| null:null,limit:_0x7964xd[_0xe0da[28]]?_0x7964xd[_0xe0da[28]][_0xe0da[35]]|| null:null})[_0xe0da[24]](function(_0x7964x11){logger[_0xe0da[17]](_0xe0da[32],_0x7964xd);logger[_0xe0da[20]](_0xe0da[32],_0x7964xd,JSON[_0xe0da[19]](_0x7964x11));_0x7964xe(_0x7964x11)})[_0xe0da[15]](function(_0x7964x10){logger[_0xe0da[14]](_0xe0da[32],_0x7964x10[_0xe0da[22]],_0x7964xd);_0x7964xf(_0x7964x12[_0xe0da[14]](500,_0x7964x10[_0xe0da[22]]))})})}
\ No newline at end of file
+var _0x59f8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0x59f8[0];var _=require(_0x59f8[1]);var util=require(_0x59f8[2]);var moment=require(_0x59f8[3]);var BPromise=require(_0x59f8[4]);var db=require(_0x59f8[6])[_0x59f8[5]];var utils=require(_0x59f8[7]);var logger=require(_0x59f8[9])(_0x59f8[8]);var jayson=require(_0x59f8[10]);var client=jayson[_0x59f8[12]][_0x59f8[11]]({port:9002});function respondWithRpcPromise(_0x75b4xb,_0x75b4xc,_0x75b4xd){return  new BPromise(function(_0x75b4xe,_0x75b4xf){return client[_0x59f8[25]](_0x75b4xb,_0x75b4xd)[_0x59f8[24]](function(_0x75b4x11){logger[_0x59f8[17]](_0x59f8[13],_0x75b4xc,_0x59f8[16]);logger[_0x59f8[20]](_0x59f8[18],_0x75b4xc,_0x59f8[16],JSON[_0x59f8[19]](_0x75b4x11));if(_0x75b4x11[_0x59f8[14]]){if(_0x75b4x11[_0x59f8[14]][_0x59f8[21]]=== 500){logger[_0x59f8[14]](_0x59f8[13],_0x75b4xc,_0x75b4x11[_0x59f8[14]][_0x59f8[22]]);return _0x75b4xf(_0x75b4x11[_0x59f8[14]][_0x59f8[22]])};logger[_0x59f8[14]](_0x59f8[13],_0x75b4xc,_0x75b4x11[_0x59f8[14]][_0x59f8[22]]);return _0x75b4xe(_0x75b4x11[_0x59f8[14]][_0x59f8[22]])}else {logger[_0x59f8[17]](_0x59f8[13],_0x75b4xc,_0x59f8[16]);_0x75b4xe(_0x75b4x11[_0x59f8[23]][_0x59f8[22]])}})[_0x59f8[15]](function(_0x75b4x10){logger[_0x59f8[14]](_0x59f8[13],_0x75b4xc,_0x75b4x10);_0x75b4xf(_0x75b4x10)})})}exports[_0x59f8[26]]= function(_0x75b4xd){var _0x75b4x12=this;return  new Promise(function(_0x75b4xe,_0x75b4xf){return db[_0x59f8[31]][_0x59f8[30]](_0x75b4xd[_0x59f8[27]],{raw:_0x75b4xd[_0x59f8[28]]?(_0x75b4xd[_0x59f8[28]][_0x59f8[29]]=== undefined)?true:false:true})[_0x59f8[24]](function(_0x75b4x11){logger[_0x59f8[17]](_0x59f8[26],_0x75b4xd);logger[_0x59f8[20]](_0x59f8[26],_0x75b4xd,JSON[_0x59f8[19]](_0x75b4x11));_0x75b4xe(_0x75b4x11)})[_0x59f8[15]](function(_0x75b4x10){logger[_0x59f8[14]](_0x59f8[26],_0x75b4x10[_0x59f8[22]],_0x75b4xd);_0x75b4xf(_0x75b4x12[_0x59f8[14]](500,_0x75b4x10[_0x59f8[22]]))})})};exports[_0x59f8[32]]= function(_0x75b4xd){var _0x75b4x12=this;return  new Promise(function(_0x75b4xe,_0x75b4xf){return db[_0x59f8[31]][_0x59f8[36]](_0x75b4xd[_0x59f8[27]],{raw:_0x75b4xd[_0x59f8[28]]?(_0x75b4xd[_0x59f8[28]][_0x59f8[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x75b4xd[_0x59f8[28]]?_0x75b4xd[_0x59f8[28]][_0x59f8[33]]|| null:null,attributes:_0x75b4xd[_0x59f8[28]]?_0x75b4xd[_0x59f8[28]][_0x59f8[34]]|| null:null,limit:_0x75b4xd[_0x59f8[28]]?_0x75b4xd[_0x59f8[28]][_0x59f8[35]]|| null:null})[_0x59f8[24]](function(_0x75b4x11){logger[_0x59f8[17]](_0x59f8[32],_0x75b4xd);logger[_0x59f8[20]](_0x59f8[32],_0x75b4xd,JSON[_0x59f8[19]](_0x75b4x11));_0x75b4xe(_0x75b4x11)})[_0x59f8[15]](function(_0x75b4x10){logger[_0x59f8[14]](_0x59f8[32],_0x75b4x10[_0x59f8[22]],_0x75b4xd);_0x75b4xf(_0x75b4x12[_0x59f8[14]](500,_0x75b4x10[_0x59f8[22]]))})})}
\ No newline at end of file
index 9ac4022..5edfee7 100644 (file)
@@ -1 +1 @@
-var _0xa000=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa000[0];var multer=require(_0xa000[1]);var util=require(_0xa000[2]);var path=require(_0xa000[3]);var express=require(_0xa000[4]);var router=express.Router();var auth=require(_0xa000[5]);var config=require(_0xa000[6]);var controller=require(_0xa000[7]);router[_0xa000[11]](_0xa000[8],auth[_0xa000[9]](),controller[_0xa000[10]]);router[_0xa000[11]](_0xa000[12],auth[_0xa000[9]](),controller[_0xa000[13]]);router[_0xa000[15]](_0xa000[8],auth[_0xa000[9]](),controller[_0xa000[14]]);router[_0xa000[17]](_0xa000[12],auth[_0xa000[9]](),controller[_0xa000[16]]);router[_0xa000[19]](_0xa000[12],auth[_0xa000[9]](),controller[_0xa000[18]]);module[_0xa000[20]]= router
\ No newline at end of file
+var _0x8ef1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8ef1[0];var multer=require(_0x8ef1[1]);var util=require(_0x8ef1[2]);var path=require(_0x8ef1[3]);var express=require(_0x8ef1[4]);var router=express.Router();var auth=require(_0x8ef1[5]);var config=require(_0x8ef1[6]);var controller=require(_0x8ef1[7]);router[_0x8ef1[11]](_0x8ef1[8],auth[_0x8ef1[9]](),controller[_0x8ef1[10]]);router[_0x8ef1[11]](_0x8ef1[12],auth[_0x8ef1[9]](),controller[_0x8ef1[13]]);router[_0x8ef1[15]](_0x8ef1[8],auth[_0x8ef1[9]](),controller[_0x8ef1[14]]);router[_0x8ef1[17]](_0x8ef1[12],auth[_0x8ef1[9]](),controller[_0x8ef1[16]]);router[_0x8ef1[19]](_0x8ef1[12],auth[_0x8ef1[9]](),controller[_0x8ef1[18]]);module[_0x8ef1[20]]= router
\ No newline at end of file
index 8a09e4b..6cd29c6 100644 (file)
@@ -1 +1 @@
-var _0x2cb8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64","\x53\x54\x52\x49\x4E\x47","\x59\x65\x73","\x4E\x6F"];_0x2cb8[0];var Sequelize=require(_0x2cb8[1]);var moment=require(_0x2cb8[2]);module[_0x2cb8[3]]= {type:{type:Sequelize.ENUM(_0x2cb8[4],_0x2cb8[5])},result:{type:Sequelize[_0x2cb8[6]]},transfererchannel:{type:Sequelize[_0x2cb8[6]]},transferercalleridnum:{type:Sequelize[_0x2cb8[6]]},transferercalleridname:{type:Sequelize[_0x2cb8[6]]},transfererconnectedlinenum:{type:Sequelize[_0x2cb8[6]]},transfererconnectedlinename:{type:Sequelize[_0x2cb8[6]]},transfereraccountcode:{type:Sequelize[_0x2cb8[6]]},transferercontext:{type:Sequelize[_0x2cb8[6]]},transfererexten:{type:Sequelize[_0x2cb8[6]]},transfererlinkedid:{type:Sequelize[_0x2cb8[6]]},transfereechannel:{type:Sequelize[_0x2cb8[6]]},transfereecalleridnum:{type:Sequelize[_0x2cb8[6]]},transfereecalleridname:{type:Sequelize[_0x2cb8[6]]},transfereeconnectedlinenum:{type:Sequelize[_0x2cb8[6]]},transfereeconnectedlinename:{type:Sequelize[_0x2cb8[6]]},transfereeaccountcode:{type:Sequelize[_0x2cb8[6]]},transfereecontext:{type:Sequelize[_0x2cb8[6]]},transfereeexten:{type:Sequelize[_0x2cb8[6]]},transfereelinkedid:{type:Sequelize[_0x2cb8[6]]},isexternal:{type:Sequelize.ENUM(_0x2cb8[7],_0x2cb8[8])},context:{type:Sequelize[_0x2cb8[6]]},extension:{type:Sequelize[_0x2cb8[6]]}}
\ No newline at end of file
+var _0x4afa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64","\x53\x54\x52\x49\x4E\x47","\x59\x65\x73","\x4E\x6F"];_0x4afa[0];var Sequelize=require(_0x4afa[1]);var moment=require(_0x4afa[2]);module[_0x4afa[3]]= {type:{type:Sequelize.ENUM(_0x4afa[4],_0x4afa[5])},result:{type:Sequelize[_0x4afa[6]]},transfererchannel:{type:Sequelize[_0x4afa[6]]},transferercalleridnum:{type:Sequelize[_0x4afa[6]]},transferercalleridname:{type:Sequelize[_0x4afa[6]]},transfererconnectedlinenum:{type:Sequelize[_0x4afa[6]]},transfererconnectedlinename:{type:Sequelize[_0x4afa[6]]},transfereraccountcode:{type:Sequelize[_0x4afa[6]]},transferercontext:{type:Sequelize[_0x4afa[6]]},transfererexten:{type:Sequelize[_0x4afa[6]]},transfererlinkedid:{type:Sequelize[_0x4afa[6]]},transfereechannel:{type:Sequelize[_0x4afa[6]]},transfereecalleridnum:{type:Sequelize[_0x4afa[6]]},transfereecalleridname:{type:Sequelize[_0x4afa[6]]},transfereeconnectedlinenum:{type:Sequelize[_0x4afa[6]]},transfereeconnectedlinename:{type:Sequelize[_0x4afa[6]]},transfereeaccountcode:{type:Sequelize[_0x4afa[6]]},transfereecontext:{type:Sequelize[_0x4afa[6]]},transfereeexten:{type:Sequelize[_0x4afa[6]]},transfereelinkedid:{type:Sequelize[_0x4afa[6]]},isexternal:{type:Sequelize.ENUM(_0x4afa[7],_0x4afa[8])},context:{type:Sequelize[_0x4afa[6]]},extension:{type:Sequelize[_0x4afa[6]]}}
\ No newline at end of file
index 8839103..ad375fe 100644 (file)
@@ -1 +1 @@
-var _0x859b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x859b[0];var jsonpatch=require(_0x859b[1]);var rp=require(_0x859b[2]);var moment=require(_0x859b[3]);var BPromise=require(_0x859b[4]);var util=require(_0x859b[5]);var path=require(_0x859b[6]);var sox=require(_0x859b[7]);var ejs=require(_0x859b[8]);var fs=require(_0x859b[9]);var _=require(_0x859b[10]);var squel=require(_0x859b[11]);var crypto=require(_0x859b[12]);var jsforce=require(_0x859b[13]);var toCsv=require(_0x859b[14]);var qs=require(_0x859b[15]);var logger=require(_0x859b[17])(_0x859b[16]);var utils=require(_0x859b[18]);var config=require(_0x859b[19]);var db=require(_0x859b[21])[_0x859b[20]];function respondWithStatusCode(_0x39f5x15,_0x39f5x16,_0x39f5x17){_0x39f5x16= _0x39f5x16|| 204;return function(_0x39f5x18){if(_0x39f5x18){logger[_0x859b[24]](_0x859b[22],_0x39f5x17,_0x39f5x16,_0x859b[23]);logger[_0x859b[26]](_0x859b[25],_0x39f5x17,_0x39f5x16,_0x859b[23]);return _0x39f5x15[_0x859b[27]](_0x39f5x16)};return _0x39f5x15[_0x859b[29]](304)[_0x859b[28]]()}}function respondWithResult(_0x39f5x15,_0x39f5x16,_0x39f5x17){_0x39f5x16= _0x39f5x16|| 200;return function(_0x39f5x18){if(_0x39f5x18){logger[_0x859b[24]](_0x859b[22],_0x39f5x17,_0x39f5x16,_0x859b[30]);logger[_0x859b[26]](_0x859b[25],_0x39f5x17,_0x39f5x16,_0x859b[30],JSON[_0x859b[31]](_0x39f5x18));return _0x39f5x15[_0x859b[29]](_0x39f5x16)[_0x859b[32]](_0x39f5x18)};return _0x39f5x15[_0x859b[29]](304)[_0x859b[28]]()}}function respondWithFilteredResult(_0x39f5x15,_0x39f5x1b,_0x39f5x17){return function(_0x39f5x18){if(_0x39f5x18){var _0x39f5x1c=_0x39f5x18[_0x859b[33]],_0x39f5x1d=_0x39f5x1b[_0x859b[34]],_0x39f5x1e=_0x39f5x1b[_0x859b[34]]+ _0x39f5x1b[_0x859b[35]],_0x39f5x16;if(_0x39f5x1e>= _0x39f5x1c){_0x39f5x1e= _0x39f5x1c;_0x39f5x16= 200}else {_0x39f5x16= 206};_0x39f5x15[_0x859b[29]](_0x39f5x16);logger[_0x859b[24]](_0x859b[22],_0x39f5x17,_0x39f5x16,_0x859b[36]);logger[_0x859b[26]](_0x859b[25],_0x39f5x17,_0x39f5x16,_0x859b[30],JSON[_0x859b[31]](_0x39f5x18));return _0x39f5x15[_0x859b[40]](_0x859b[37],_0x39f5x1d+ _0x859b[38]+ _0x39f5x1e+ _0x859b[39]+ _0x39f5x1c)[_0x859b[32]](_0x39f5x18)};return null}}function patchUpdates(_0x39f5x20){return function(_0x39f5x18){try{jsonpatch[_0x859b[41]](_0x39f5x18,_0x39f5x20,true)}catch(err){return BPromise[_0x859b[42]](err)};return _0x39f5x18[_0x859b[43]]()}}function saveUpdates(_0x39f5x22,_0x39f5x16,_0x39f5x17){return function(_0x39f5x18){if(_0x39f5x18){return _0x39f5x18[_0x859b[46]](_0x39f5x22)[_0x859b[45]](function(_0x39f5x23){logger[_0x859b[24]](_0x859b[22],_0x39f5x17,_0x39f5x16,_0x859b[44]);logger[_0x859b[26]](_0x859b[25],_0x39f5x17,_0x39f5x16,_0x859b[44],JSON[_0x859b[31]](_0x39f5x18));return _0x39f5x23})};return null}}function removeEntity(_0x39f5x15,_0x39f5x16,_0x39f5x17){return function(_0x39f5x18){if(_0x39f5x18){return _0x39f5x18[_0x859b[48]]()[_0x859b[45]](function(){logger[_0x859b[24]](_0x859b[22],_0x39f5x17,_0x39f5x16,_0x859b[47]);logger[_0x859b[26]](_0x859b[25],_0x39f5x17,_0x39f5x16,_0x859b[47],JSON[_0x859b[31]](_0x39f5x18));_0x39f5x15[_0x859b[29]](204)[_0x859b[28]]()})}}}function handleEntityNotFound(_0x39f5x15,_0x39f5x16,_0x39f5x17){return function(_0x39f5x18){if(!_0x39f5x18){logger[_0x859b[50]](_0x859b[22],_0x39f5x17,404,_0x859b[49]);_0x39f5x15[_0x859b[29]](404)[_0x859b[28]]();return null};return _0x39f5x18}}function handleError(_0x39f5x15,_0x39f5x16,_0x39f5x17){_0x39f5x16= _0x39f5x16|| 500;return function(_0x39f5x27){logger[_0x859b[50]](_0x859b[22],_0x39f5x17,_0x39f5x16,JSON[_0x859b[31]](_0x39f5x27));delete _0x39f5x27[_0x859b[51]];_0x39f5x15[_0x859b[29]](_0x39f5x16)[_0x859b[52]](_0x39f5x27)}}exports[_0x859b[53]]= function(_0x39f5x28,_0x39f5x15){var _0x39f5x1b={},_0x39f5x29={};_0x39f5x29[_0x859b[54]]= _[_0x859b[57]](db[_0x859b[56]][_0x859b[55]]);_0x39f5x29[_0x859b[58]]= _[_0x859b[57]](_0x39f5x28[_0x859b[58]]);_0x39f5x29[_0x859b[59]]= _[_0x859b[60]](_0x39f5x29[_0x859b[54]],_0x39f5x29[_0x859b[58]]);_0x39f5x1b[_0x859b[61]]= _[_0x859b[60]](_0x39f5x29[_0x859b[54]],qs[_0x859b[62]](_0x39f5x28[_0x859b[58]][_0x859b[62]]));_0x39f5x1b[_0x859b[61]]= (_0x39f5x1b[_0x859b[61]][_0x859b[63]])?_0x39f5x1b[_0x859b[61]]:_0x39f5x29[_0x859b[54]];if(!_0x39f5x28[_0x859b[58]][_0x859b[65]](_0x859b[64])){_0x39f5x1b[_0x859b[35]]= qs[_0x859b[35]](_0x39f5x28[_0x859b[58]][_0x859b[35]]);_0x39f5x1b[_0x859b[34]]= qs[_0x859b[34]](_0x39f5x28[_0x859b[58]][_0x859b[34]])};_0x39f5x1b[_0x859b[66]]= qs[_0x859b[67]](_0x39f5x28[_0x859b[58]][_0x859b[67]]);_0x39f5x1b[_0x859b[68]]= qs[_0x859b[59]](_[_0x859b[69]](_0x39f5x28[_0x859b[58]],_0x39f5x29[_0x859b[59]]));if(_0x39f5x28[_0x859b[58]][_0x859b[70]]){_0x39f5x1b[_0x859b[68]]= _[_0x859b[73]](_0x39f5x1b[_0x859b[68]],{$or:_[_0x859b[72]](_0x39f5x1b[_0x859b[61]],function(_0x39f5x2a){var _0x39f5x2b={};_0x39f5x2b[_0x39f5x2a]= {$like:_0x859b[71]+ _0x39f5x28[_0x859b[58]][_0x859b[70]]+ _0x859b[71]};return _0x39f5x2b})})};_0x39f5x1b= _[_0x859b[73]]({},_0x39f5x1b,_0x39f5x28[_0x859b[74]]);return db[_0x859b[56]][_0x859b[76]](_0x39f5x1b)[_0x859b[45]](respondWithFilteredResult(_0x39f5x15,_0x39f5x1b,_0x859b[53]))[_0x859b[75]](handleError(_0x39f5x15,null,_0x859b[53]))};exports[_0x859b[77]]= function(_0x39f5x28,_0x39f5x15){var _0x39f5x1b={raw:true,where:{id:_0x39f5x28[_0x859b[79]][_0x859b[78]]}},_0x39f5x29={};_0x39f5x29[_0x859b[54]]= _[_0x859b[57]](db[_0x859b[56]][_0x859b[55]]);_0x39f5x29[_0x859b[58]]= _[_0x859b[57]](_0x39f5x28[_0x859b[58]]);_0x39f5x29[_0x859b[59]]= _[_0x859b[60]](_0x39f5x29[_0x859b[54]],_0x39f5x29[_0x859b[58]]);_0x39f5x1b[_0x859b[61]]= _[_0x859b[60]](_0x39f5x29[_0x859b[54]],qs[_0x859b[62]](_0x39f5x28[_0x859b[58]][_0x859b[62]]));_0x39f5x1b[_0x859b[61]]= (_0x39f5x1b[_0x859b[61]][_0x859b[63]])?_0x39f5x1b[_0x859b[61]]:_0x39f5x29[_0x859b[54]];_0x39f5x1b= _[_0x859b[73]]({},_0x39f5x1b,_0x39f5x28[_0x859b[74]]);return db[_0x859b[56]][_0x859b[80]](_0x39f5x1b)[_0x859b[45]](handleEntityNotFound(_0x39f5x15,null,_0x859b[77]))[_0x859b[45]](respondWithResult(_0x39f5x15,null,_0x859b[77]))[_0x859b[75]](handleError(_0x39f5x15,null,_0x859b[77]))};exports[_0x859b[81]]= function(_0x39f5x28,_0x39f5x15){return db[_0x859b[56]][_0x859b[81]](_0x39f5x28[_0x859b[82]],{})[_0x859b[45]](respondWithResult(_0x39f5x15,201,_0x859b[81]))[_0x859b[75]](handleError(_0x39f5x15,null,_0x859b[81]))};exports[_0x859b[46]]= function(_0x39f5x28,_0x39f5x15){if(_0x39f5x28[_0x859b[82]][_0x859b[78]]){delete _0x39f5x28[_0x859b[82]][_0x859b[78]]};return db[_0x859b[56]][_0x859b[80]]({where:{id:_0x39f5x28[_0x859b[79]][_0x859b[78]]}})[_0x859b[45]](handleEntityNotFound(_0x39f5x15,null,_0x859b[46]))[_0x859b[45]](saveUpdates(_0x39f5x28[_0x859b[82]],null,_0x859b[46]))[_0x859b[45]](respondWithResult(_0x39f5x15,null,_0x859b[46]))[_0x859b[75]](handleError(_0x39f5x15,null,_0x859b[46]))};exports[_0x859b[48]]= function(_0x39f5x28,_0x39f5x15){return db[_0x859b[56]][_0x859b[80]]({where:{id:_0x39f5x28[_0x859b[79]][_0x859b[78]]}})[_0x859b[45]](handleEntityNotFound(_0x39f5x15,null,_0x859b[48]))[_0x859b[45]](removeEntity(_0x39f5x15,null,_0x859b[48]))[_0x859b[75]](handleError(_0x39f5x15,null,_0x859b[48]))}
\ No newline at end of file
+var _0xbbe8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xbbe8[0];var jsonpatch=require(_0xbbe8[1]);var rp=require(_0xbbe8[2]);var moment=require(_0xbbe8[3]);var BPromise=require(_0xbbe8[4]);var util=require(_0xbbe8[5]);var path=require(_0xbbe8[6]);var sox=require(_0xbbe8[7]);var ejs=require(_0xbbe8[8]);var fs=require(_0xbbe8[9]);var _=require(_0xbbe8[10]);var squel=require(_0xbbe8[11]);var crypto=require(_0xbbe8[12]);var jsforce=require(_0xbbe8[13]);var toCsv=require(_0xbbe8[14]);var qs=require(_0xbbe8[15]);var logger=require(_0xbbe8[17])(_0xbbe8[16]);var utils=require(_0xbbe8[18]);var config=require(_0xbbe8[19]);var db=require(_0xbbe8[21])[_0xbbe8[20]];function respondWithStatusCode(_0xaff5x15,_0xaff5x16,_0xaff5x17){_0xaff5x16= _0xaff5x16|| 204;return function(_0xaff5x18){if(_0xaff5x18){logger[_0xbbe8[24]](_0xbbe8[22],_0xaff5x17,_0xaff5x16,_0xbbe8[23]);logger[_0xbbe8[26]](_0xbbe8[25],_0xaff5x17,_0xaff5x16,_0xbbe8[23]);return _0xaff5x15[_0xbbe8[27]](_0xaff5x16)};return _0xaff5x15[_0xbbe8[29]](304)[_0xbbe8[28]]()}}function respondWithResult(_0xaff5x15,_0xaff5x16,_0xaff5x17){_0xaff5x16= _0xaff5x16|| 200;return function(_0xaff5x18){if(_0xaff5x18){logger[_0xbbe8[24]](_0xbbe8[22],_0xaff5x17,_0xaff5x16,_0xbbe8[30]);logger[_0xbbe8[26]](_0xbbe8[25],_0xaff5x17,_0xaff5x16,_0xbbe8[30],JSON[_0xbbe8[31]](_0xaff5x18));return _0xaff5x15[_0xbbe8[29]](_0xaff5x16)[_0xbbe8[32]](_0xaff5x18)};return _0xaff5x15[_0xbbe8[29]](304)[_0xbbe8[28]]()}}function respondWithFilteredResult(_0xaff5x15,_0xaff5x1b,_0xaff5x17){return function(_0xaff5x18){if(_0xaff5x18){var _0xaff5x1c=_0xaff5x18[_0xbbe8[33]],_0xaff5x1d=_0xaff5x1b[_0xbbe8[34]],_0xaff5x1e=_0xaff5x1b[_0xbbe8[34]]+ _0xaff5x1b[_0xbbe8[35]],_0xaff5x16;if(_0xaff5x1e>= _0xaff5x1c){_0xaff5x1e= _0xaff5x1c;_0xaff5x16= 200}else {_0xaff5x16= 206};_0xaff5x15[_0xbbe8[29]](_0xaff5x16);logger[_0xbbe8[24]](_0xbbe8[22],_0xaff5x17,_0xaff5x16,_0xbbe8[36]);logger[_0xbbe8[26]](_0xbbe8[25],_0xaff5x17,_0xaff5x16,_0xbbe8[30],JSON[_0xbbe8[31]](_0xaff5x18));return _0xaff5x15[_0xbbe8[40]](_0xbbe8[37],_0xaff5x1d+ _0xbbe8[38]+ _0xaff5x1e+ _0xbbe8[39]+ _0xaff5x1c)[_0xbbe8[32]](_0xaff5x18)};return null}}function patchUpdates(_0xaff5x20){return function(_0xaff5x18){try{jsonpatch[_0xbbe8[41]](_0xaff5x18,_0xaff5x20,true)}catch(err){return BPromise[_0xbbe8[42]](err)};return _0xaff5x18[_0xbbe8[43]]()}}function saveUpdates(_0xaff5x22,_0xaff5x16,_0xaff5x17){return function(_0xaff5x18){if(_0xaff5x18){return _0xaff5x18[_0xbbe8[46]](_0xaff5x22)[_0xbbe8[45]](function(_0xaff5x23){logger[_0xbbe8[24]](_0xbbe8[22],_0xaff5x17,_0xaff5x16,_0xbbe8[44]);logger[_0xbbe8[26]](_0xbbe8[25],_0xaff5x17,_0xaff5x16,_0xbbe8[44],JSON[_0xbbe8[31]](_0xaff5x18));return _0xaff5x23})};return null}}function removeEntity(_0xaff5x15,_0xaff5x16,_0xaff5x17){return function(_0xaff5x18){if(_0xaff5x18){return _0xaff5x18[_0xbbe8[48]]()[_0xbbe8[45]](function(){logger[_0xbbe8[24]](_0xbbe8[22],_0xaff5x17,_0xaff5x16,_0xbbe8[47]);logger[_0xbbe8[26]](_0xbbe8[25],_0xaff5x17,_0xaff5x16,_0xbbe8[47],JSON[_0xbbe8[31]](_0xaff5x18));_0xaff5x15[_0xbbe8[29]](204)[_0xbbe8[28]]()})}}}function handleEntityNotFound(_0xaff5x15,_0xaff5x16,_0xaff5x17){return function(_0xaff5x18){if(!_0xaff5x18){logger[_0xbbe8[50]](_0xbbe8[22],_0xaff5x17,404,_0xbbe8[49]);_0xaff5x15[_0xbbe8[29]](404)[_0xbbe8[28]]();return null};return _0xaff5x18}}function handleError(_0xaff5x15,_0xaff5x16,_0xaff5x17){_0xaff5x16= _0xaff5x16|| 500;return function(_0xaff5x27){logger[_0xbbe8[50]](_0xbbe8[22],_0xaff5x17,_0xaff5x16,JSON[_0xbbe8[31]](_0xaff5x27));delete _0xaff5x27[_0xbbe8[51]];_0xaff5x15[_0xbbe8[29]](_0xaff5x16)[_0xbbe8[52]](_0xaff5x27)}}exports[_0xbbe8[53]]= function(_0xaff5x28,_0xaff5x15){var _0xaff5x1b={},_0xaff5x29={};_0xaff5x29[_0xbbe8[54]]= _[_0xbbe8[57]](db[_0xbbe8[56]][_0xbbe8[55]]);_0xaff5x29[_0xbbe8[58]]= _[_0xbbe8[57]](_0xaff5x28[_0xbbe8[58]]);_0xaff5x29[_0xbbe8[59]]= _[_0xbbe8[60]](_0xaff5x29[_0xbbe8[54]],_0xaff5x29[_0xbbe8[58]]);_0xaff5x1b[_0xbbe8[61]]= _[_0xbbe8[60]](_0xaff5x29[_0xbbe8[54]],qs[_0xbbe8[62]](_0xaff5x28[_0xbbe8[58]][_0xbbe8[62]]));_0xaff5x1b[_0xbbe8[61]]= (_0xaff5x1b[_0xbbe8[61]][_0xbbe8[63]])?_0xaff5x1b[_0xbbe8[61]]:_0xaff5x29[_0xbbe8[54]];if(!_0xaff5x28[_0xbbe8[58]][_0xbbe8[65]](_0xbbe8[64])){_0xaff5x1b[_0xbbe8[35]]= qs[_0xbbe8[35]](_0xaff5x28[_0xbbe8[58]][_0xbbe8[35]]);_0xaff5x1b[_0xbbe8[34]]= qs[_0xbbe8[34]](_0xaff5x28[_0xbbe8[58]][_0xbbe8[34]])};_0xaff5x1b[_0xbbe8[66]]= qs[_0xbbe8[67]](_0xaff5x28[_0xbbe8[58]][_0xbbe8[67]]);_0xaff5x1b[_0xbbe8[68]]= qs[_0xbbe8[59]](_[_0xbbe8[69]](_0xaff5x28[_0xbbe8[58]],_0xaff5x29[_0xbbe8[59]]));if(_0xaff5x28[_0xbbe8[58]][_0xbbe8[70]]){_0xaff5x1b[_0xbbe8[68]]= _[_0xbbe8[73]](_0xaff5x1b[_0xbbe8[68]],{$or:_[_0xbbe8[72]](_0xaff5x1b[_0xbbe8[61]],function(_0xaff5x2a){var _0xaff5x2b={};_0xaff5x2b[_0xaff5x2a]= {$like:_0xbbe8[71]+ _0xaff5x28[_0xbbe8[58]][_0xbbe8[70]]+ _0xbbe8[71]};return _0xaff5x2b})})};_0xaff5x1b= _[_0xbbe8[73]]({},_0xaff5x1b,_0xaff5x28[_0xbbe8[74]]);return db[_0xbbe8[56]][_0xbbe8[76]](_0xaff5x1b)[_0xbbe8[45]](respondWithFilteredResult(_0xaff5x15,_0xaff5x1b,_0xbbe8[53]))[_0xbbe8[75]](handleError(_0xaff5x15,null,_0xbbe8[53]))};exports[_0xbbe8[77]]= function(_0xaff5x28,_0xaff5x15){var _0xaff5x1b={raw:true,where:{id:_0xaff5x28[_0xbbe8[79]][_0xbbe8[78]]}},_0xaff5x29={};_0xaff5x29[_0xbbe8[54]]= _[_0xbbe8[57]](db[_0xbbe8[56]][_0xbbe8[55]]);_0xaff5x29[_0xbbe8[58]]= _[_0xbbe8[57]](_0xaff5x28[_0xbbe8[58]]);_0xaff5x29[_0xbbe8[59]]= _[_0xbbe8[60]](_0xaff5x29[_0xbbe8[54]],_0xaff5x29[_0xbbe8[58]]);_0xaff5x1b[_0xbbe8[61]]= _[_0xbbe8[60]](_0xaff5x29[_0xbbe8[54]],qs[_0xbbe8[62]](_0xaff5x28[_0xbbe8[58]][_0xbbe8[62]]));_0xaff5x1b[_0xbbe8[61]]= (_0xaff5x1b[_0xbbe8[61]][_0xbbe8[63]])?_0xaff5x1b[_0xbbe8[61]]:_0xaff5x29[_0xbbe8[54]];_0xaff5x1b= _[_0xbbe8[73]]({},_0xaff5x1b,_0xaff5x28[_0xbbe8[74]]);return db[_0xbbe8[56]][_0xbbe8[80]](_0xaff5x1b)[_0xbbe8[45]](handleEntityNotFound(_0xaff5x15,null,_0xbbe8[77]))[_0xbbe8[45]](respondWithResult(_0xaff5x15,null,_0xbbe8[77]))[_0xbbe8[75]](handleError(_0xaff5x15,null,_0xbbe8[77]))};exports[_0xbbe8[81]]= function(_0xaff5x28,_0xaff5x15){return db[_0xbbe8[56]][_0xbbe8[81]](_0xaff5x28[_0xbbe8[82]],{})[_0xbbe8[45]](respondWithResult(_0xaff5x15,201,_0xbbe8[81]))[_0xbbe8[75]](handleError(_0xaff5x15,null,_0xbbe8[81]))};exports[_0xbbe8[46]]= function(_0xaff5x28,_0xaff5x15){if(_0xaff5x28[_0xbbe8[82]][_0xbbe8[78]]){delete _0xaff5x28[_0xbbe8[82]][_0xbbe8[78]]};return db[_0xbbe8[56]][_0xbbe8[80]]({where:{id:_0xaff5x28[_0xbbe8[79]][_0xbbe8[78]]}})[_0xbbe8[45]](handleEntityNotFound(_0xaff5x15,null,_0xbbe8[46]))[_0xbbe8[45]](saveUpdates(_0xaff5x28[_0xbbe8[82]],null,_0xbbe8[46]))[_0xbbe8[45]](respondWithResult(_0xaff5x15,null,_0xbbe8[46]))[_0xbbe8[75]](handleError(_0xaff5x15,null,_0xbbe8[46]))};exports[_0xbbe8[48]]= function(_0xaff5x28,_0xaff5x15){return db[_0xbbe8[56]][_0xbbe8[80]]({where:{id:_0xaff5x28[_0xbbe8[79]][_0xbbe8[78]]}})[_0xbbe8[45]](handleEntityNotFound(_0xaff5x15,null,_0xbbe8[48]))[_0xbbe8[45]](removeEntity(_0xaff5x15,null,_0xbbe8[48]))[_0xbbe8[75]](handleError(_0xaff5x15,null,_0xbbe8[48]))}
\ No newline at end of file
index a848ec1..673556d 100644 (file)
@@ -1 +1 @@
-var _0xf6fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5F\x74\x72\x61\x6E\x73\x66\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xf6fe[0];var _=require(_0xf6fe[1]);var util=require(_0xf6fe[2]);var logger=require(_0xf6fe[4])(_0xf6fe[3]);var attributes=require(_0xf6fe[5]);module[_0xf6fe[6]]= function(_0x56e7x5,_0x56e7x6){return _0x56e7x5[_0xf6fe[9]](_0xf6fe[7],attributes,{tableName:_0xf6fe[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
+var _0x9968=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5F\x74\x72\x61\x6E\x73\x66\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0x9968[0];var _=require(_0x9968[1]);var util=require(_0x9968[2]);var logger=require(_0x9968[4])(_0x9968[3]);var attributes=require(_0x9968[5]);module[_0x9968[6]]= function(_0xe635x5,_0xe635x6){return _0xe635x5[_0x9968[9]](_0x9968[7],attributes,{tableName:_0x9968[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
index 512285d..7d371c1 100644 (file)
@@ -1 +1 @@
-var _0x5dad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74"];_0x5dad[0];var _=require(_0x5dad[1]);var util=require(_0x5dad[2]);var moment=require(_0x5dad[3]);var BPromise=require(_0x5dad[4]);var db=require(_0x5dad[6])[_0x5dad[5]];var utils=require(_0x5dad[7]);var logger=require(_0x5dad[9])(_0x5dad[8]);var jayson=require(_0x5dad[10]);var client=jayson[_0x5dad[12]][_0x5dad[11]]({port:9002});function respondWithRpcPromise(_0x480bxb,_0x480bxc,_0x480bxd){return  new BPromise(function(_0x480bxe,_0x480bxf){return client[_0x5dad[25]](_0x480bxb,_0x480bxd)[_0x5dad[24]](function(_0x480bx11){logger[_0x5dad[17]](_0x5dad[13],_0x480bxc,_0x5dad[16]);logger[_0x5dad[20]](_0x5dad[18],_0x480bxc,_0x5dad[16],JSON[_0x5dad[19]](_0x480bx11));if(_0x480bx11[_0x5dad[14]]){if(_0x480bx11[_0x5dad[14]][_0x5dad[21]]=== 500){logger[_0x5dad[14]](_0x5dad[13],_0x480bxc,_0x480bx11[_0x5dad[14]][_0x5dad[22]]);return _0x480bxf(_0x480bx11[_0x5dad[14]][_0x5dad[22]])};logger[_0x5dad[14]](_0x5dad[13],_0x480bxc,_0x480bx11[_0x5dad[14]][_0x5dad[22]]);return _0x480bxe(_0x480bx11[_0x5dad[14]][_0x5dad[22]])}else {logger[_0x5dad[17]](_0x5dad[13],_0x480bxc,_0x5dad[16]);_0x480bxe(_0x480bx11[_0x5dad[23]][_0x5dad[22]])}})[_0x5dad[15]](function(_0x480bx10){logger[_0x5dad[14]](_0x5dad[13],_0x480bxc,_0x480bx10);_0x480bxf(_0x480bx10)})})}exports[_0x5dad[26]]= function(_0x480bxd){var _0x480bx12=this;return  new Promise(function(_0x480bxe,_0x480bxf){return db[_0x5dad[31]][_0x5dad[30]](_0x480bxd[_0x5dad[27]],{raw:_0x480bxd[_0x5dad[28]]?(_0x480bxd[_0x5dad[28]][_0x5dad[29]]=== undefined)?true:false:true})[_0x5dad[24]](function(_0x480bx11){logger[_0x5dad[17]](_0x5dad[26],_0x480bxd);logger[_0x5dad[20]](_0x5dad[26],_0x480bxd,JSON[_0x5dad[19]](_0x480bx11));_0x480bxe(_0x480bx11)})[_0x5dad[15]](function(_0x480bx10){logger[_0x5dad[14]](_0x5dad[26],_0x480bx10[_0x5dad[22]],_0x480bxd);_0x480bxf(_0x480bx12[_0x5dad[14]](500,_0x480bx10[_0x5dad[22]]))})})}
\ No newline at end of file
+var _0x4524=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74"];_0x4524[0];var _=require(_0x4524[1]);var util=require(_0x4524[2]);var moment=require(_0x4524[3]);var BPromise=require(_0x4524[4]);var db=require(_0x4524[6])[_0x4524[5]];var utils=require(_0x4524[7]);var logger=require(_0x4524[9])(_0x4524[8]);var jayson=require(_0x4524[10]);var client=jayson[_0x4524[12]][_0x4524[11]]({port:9002});function respondWithRpcPromise(_0xcfe1xb,_0xcfe1xc,_0xcfe1xd){return  new BPromise(function(_0xcfe1xe,_0xcfe1xf){return client[_0x4524[25]](_0xcfe1xb,_0xcfe1xd)[_0x4524[24]](function(_0xcfe1x11){logger[_0x4524[17]](_0x4524[13],_0xcfe1xc,_0x4524[16]);logger[_0x4524[20]](_0x4524[18],_0xcfe1xc,_0x4524[16],JSON[_0x4524[19]](_0xcfe1x11));if(_0xcfe1x11[_0x4524[14]]){if(_0xcfe1x11[_0x4524[14]][_0x4524[21]]=== 500){logger[_0x4524[14]](_0x4524[13],_0xcfe1xc,_0xcfe1x11[_0x4524[14]][_0x4524[22]]);return _0xcfe1xf(_0xcfe1x11[_0x4524[14]][_0x4524[22]])};logger[_0x4524[14]](_0x4524[13],_0xcfe1xc,_0xcfe1x11[_0x4524[14]][_0x4524[22]]);return _0xcfe1xe(_0xcfe1x11[_0x4524[14]][_0x4524[22]])}else {logger[_0x4524[17]](_0x4524[13],_0xcfe1xc,_0x4524[16]);_0xcfe1xe(_0xcfe1x11[_0x4524[23]][_0x4524[22]])}})[_0x4524[15]](function(_0xcfe1x10){logger[_0x4524[14]](_0x4524[13],_0xcfe1xc,_0xcfe1x10);_0xcfe1xf(_0xcfe1x10)})})}exports[_0x4524[26]]= function(_0xcfe1xd){var _0xcfe1x12=this;return  new Promise(function(_0xcfe1xe,_0xcfe1xf){return db[_0x4524[31]][_0x4524[30]](_0xcfe1xd[_0x4524[27]],{raw:_0xcfe1xd[_0x4524[28]]?(_0xcfe1xd[_0x4524[28]][_0x4524[29]]=== undefined)?true:false:true})[_0x4524[24]](function(_0xcfe1x11){logger[_0x4524[17]](_0x4524[26],_0xcfe1xd);logger[_0x4524[20]](_0x4524[26],_0xcfe1xd,JSON[_0x4524[19]](_0xcfe1x11));_0xcfe1xe(_0xcfe1x11)})[_0x4524[15]](function(_0xcfe1x10){logger[_0x4524[14]](_0x4524[26],_0xcfe1x10[_0x4524[22]],_0xcfe1xd);_0xcfe1xf(_0xcfe1x12[_0x4524[14]](500,_0xcfe1x10[_0x4524[22]]))})})}
\ No newline at end of file
index 709f994..7185b40 100644 (file)
@@ -1 +1 @@
-var _0xe1d5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2F\x72\x70\x63","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x70\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x53\x65\x72\x76\x65\x72\x20\x66\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x64\x75\x65\x20\x74\x6F\x20\x65\x72\x72\x6F\x72\x3A\x20\x25\x73","\x65\x72\x72\x6F\x72","\x65\x78\x69\x74","\x63\x61\x74\x63\x68","\x4F\x6E\x6C\x69\x6E\x65\x20\x61\x70\x70\x73\x3A","\x6A\x6F\x69\x6E","\x6F\x6E\x6C\x69\x6E\x65","\x66\x69\x6C\x74\x65\x72","\x6E\x61\x6D\x65","\x6D\x61\x70","\x69\x6E\x66\x6F","\x4F\x66\x66\x6C\x69\x6E\x65\x20\x61\x70\x70\x73\x3A","\x73\x74\x61\x74\x75\x73","\x4E\x6F\x6E\x65","\x73\x65\x65\x64\x44\x42","\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x74\x68\x65\x6E","\x73\x74\x61\x72\x74","\x6C\x69\x73\x74\x65\x6E","\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x62"];_0xe1d5[0];var _=require(_0xe1d5[1]);var mysqldb=require(_0xe1d5[2]);var rpc=require(_0xe1d5[3]);var config=require(_0xe1d5[4]);var logger=require(_0xe1d5[6])(_0xe1d5[5]);var pm2=require(_0xe1d5[7]);return mysqldb[_0xe1d5[31]][_0xe1d5[30]][_0xe1d5[29]]()[_0xe1d5[26]](function(){return rpc[_0xe1d5[28]]()})[_0xe1d5[26]](function(_0x33e9xa){logger[_0xe1d5[18]](_0x33e9xa);return pm2[_0xe1d5[27]]()})[_0xe1d5[26]](function(_0x33e9x8){logger[_0xe1d5[18]](_0xe1d5[12],_[_0xe1d5[17]](_[_0xe1d5[15]](_0x33e9x8,{status:_0xe1d5[14]}),_0xe1d5[16])[_0xe1d5[13]]());logger[_0xe1d5[18]](_0xe1d5[19],_[_0xe1d5[17]](_[_0xe1d5[15]](_0x33e9x8,function(_0x33e9x9){return _0x33e9x9[_0xe1d5[20]]!== _0xe1d5[14]}),_0xe1d5[16])[_0xe1d5[13]]()|| _0xe1d5[21]);config[_0xe1d5[22]]&& require(_0xe1d5[24])[_0xe1d5[23]]();require(_0xe1d5[25])[_0xe1d5[23]]()})[_0xe1d5[11]](function(_0x33e9x7){logger[_0xe1d5[9]](_0xe1d5[8],_0x33e9x7);process[_0xe1d5[10]](1)})
\ No newline at end of file
+var _0xd619=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2F\x72\x70\x63","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x70\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x53\x65\x72\x76\x65\x72\x20\x66\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x64\x75\x65\x20\x74\x6F\x20\x65\x72\x72\x6F\x72\x3A\x20\x25\x73","\x65\x72\x72\x6F\x72","\x65\x78\x69\x74","\x63\x61\x74\x63\x68","\x4F\x6E\x6C\x69\x6E\x65\x20\x61\x70\x70\x73\x3A","\x6A\x6F\x69\x6E","\x6F\x6E\x6C\x69\x6E\x65","\x66\x69\x6C\x74\x65\x72","\x6E\x61\x6D\x65","\x6D\x61\x70","\x69\x6E\x66\x6F","\x4F\x66\x66\x6C\x69\x6E\x65\x20\x61\x70\x70\x73\x3A","\x73\x74\x61\x74\x75\x73","\x4E\x6F\x6E\x65","\x73\x65\x65\x64\x44\x42","\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x74\x68\x65\x6E","\x73\x74\x61\x72\x74","\x6C\x69\x73\x74\x65\x6E","\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x62"];_0xd619[0];var _=require(_0xd619[1]);var mysqldb=require(_0xd619[2]);var rpc=require(_0xd619[3]);var config=require(_0xd619[4]);var logger=require(_0xd619[6])(_0xd619[5]);var pm2=require(_0xd619[7]);return mysqldb[_0xd619[31]][_0xd619[30]][_0xd619[29]]()[_0xd619[26]](function(){return rpc[_0xd619[28]]()})[_0xd619[26]](function(_0xef7cxa){logger[_0xd619[18]](_0xef7cxa);return pm2[_0xd619[27]]()})[_0xd619[26]](function(_0xef7cx8){logger[_0xd619[18]](_0xd619[12],_[_0xd619[17]](_[_0xd619[15]](_0xef7cx8,{status:_0xd619[14]}),_0xd619[16])[_0xd619[13]]());logger[_0xd619[18]](_0xd619[19],_[_0xd619[17]](_[_0xd619[15]](_0xef7cx8,function(_0xef7cx9){return _0xef7cx9[_0xd619[20]]!== _0xd619[14]}),_0xd619[16])[_0xd619[13]]()|| _0xd619[21]);config[_0xd619[22]]&& require(_0xd619[24])[_0xd619[23]]();require(_0xd619[25])[_0xd619[23]]()})[_0xd619[11]](function(_0xef7cx7){logger[_0xd619[9]](_0xd619[8],_0xef7cx7);process[_0xd619[10]](1)})
\ No newline at end of file
index 23fdd47..6346738 100644 (file)
@@ -1 +1 @@
-var _0xddc5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x62\x61\x73\x69\x63\x2D\x61\x75\x74\x68","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x69\x64","\x72\x6F\x6C\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x6D\x61\x69\x6C","\x75\x73\x65\x72\x70\x69\x63","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73","\x76\x6F\x69\x63\x65\x50\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x54\x79\x70\x65","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x66\x69\x6E\x64","\x55\x73\x65\x72","\x75\x73\x65","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x61\x73\x69\x63","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x70\x61\x73\x73","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x42\x65\x61\x72\x65\x72","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E\x20\x66\x6F\x72\x6D\x61\x74\x2E","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x69\x67\x6E","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x46\x6F\x72\x62\x69\x64\x64\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x49\x74\x20\x6C\x6F\x6F\x6B\x73\x20\x6C\x69\x6B\x65\x20\x79\x6F\x75\x20\x61\x72\x65\x6E\x27\x74\x20\x6C\x6F\x67\x67\x65\x64\x20\x69\x6E\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6D\x6F\x74\x69\x6F\x6E\x2E\x74\x6F\x6B\x65\x6E","\x63\x6F\x6F\x6B\x69\x65","\x6D\x6F\x74\x69\x6F\x6E\x2E\x75\x73\x65\x72","\x70\x69\x63\x6B","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x67\x65\x6E\x65\x72\x61\x6C","\x72\x65\x64\x69\x72\x65\x63\x74"];_0xddc5[0];var db=require(_0xddc5[2])[_0xddc5[1]];var config=require(_0xddc5[3]);var _=require(_0xddc5[4]);var jwt=require(_0xddc5[5]);var expressJwt=require(_0xddc5[6]);var compose=require(_0xddc5[7]);var basicAuth=require(_0xddc5[8]);var validateJwt=expressJwt({secret:config[_0xddc5[10]][_0xddc5[9]]});var userAttributes=[_0xddc5[11],_0xddc5[12],_0xddc5[13],_0xddc5[14],_0xddc5[15],_0xddc5[16],_0xddc5[17],_0xddc5[18],_0xddc5[19],_0xddc5[20]];function isAuthenticated(){return compose()[_0xddc5[29]](function(_0xee33xb,_0xee33xc,_0xee33xd){if(_0xee33xb[_0xddc5[31]][_0xddc5[30]]){if(_[_0xddc5[33]](_0xee33xb[_0xddc5[31]][_0xddc5[30]],_0xddc5[32])){var _0xee33x10=basicAuth(_0xee33xb);db[_0xddc5[28]][_0xddc5[27]]({where:{name:_0xee33x10[_0xddc5[14]]}})[_0xddc5[26]](function(_0xee33xf){if(!_0xee33xf||  !_0xee33xf[_0xddc5[35]](_0xee33x10[_0xddc5[34]])){return _0xee33xc[_0xddc5[24]](401)[_0xddc5[23]]({message:_0xddc5[36]})};_0xee33xb[_0xddc5[25]]= {id:_0xee33xf[_0xddc5[11]]};_0xee33xd()})[_0xddc5[21]](function(_0xee33xe){_0xee33xd(_0xee33xe)})}else {if(_[_0xddc5[33]](_0xee33xb[_0xddc5[31]][_0xddc5[30]],_0xddc5[37])){validateJwt(_0xee33xb,_0xee33xc,_0xee33xd)}}}else {return _0xee33xc[_0xddc5[24]](401)[_0xddc5[23]]({message:_0xddc5[38]})}})[_0xddc5[29]](function(_0xee33xb,_0xee33xc,_0xee33xd){db[_0xddc5[28]][_0xddc5[27]]({where:{id:_0xee33xb[_0xddc5[25]][_0xddc5[11]]},attributes:userAttributes})[_0xddc5[26]](function(_0xee33xf){if(!_0xee33xf){return _0xee33xc[_0xddc5[24]](404)[_0xddc5[23]]({message:_0xddc5[22]})};_0xee33xb[_0xddc5[25]]= _0xee33xf;_0xee33xd()})[_0xddc5[21]](function(_0xee33xe){_0xee33xd(_0xee33xe)})})}exports[_0xddc5[39]]= isAuthenticated;function signToken(_0xee33x12,_0xee33x13){return jwt[_0xddc5[40]]({id:_0xee33x12,role:_0xee33x13},config[_0xddc5[10]][_0xddc5[9]],{expiresIn:86400})}exports[_0xddc5[41]]= signToken;exports[_0xddc5[42]]= function(_0xee33x14){if(!_0xee33x14){throw  new Error(_0xddc5[43])};return compose()[_0xddc5[29]](isAuthenticated())[_0xddc5[29]](function _0xee33x15(_0xee33xb,_0xee33xc,_0xee33xd){if(config[_0xddc5[45]][_0xddc5[44]](_0xee33xb[_0xddc5[25]][_0xddc5[12]])>= config[_0xddc5[45]][_0xddc5[44]](_0xee33x14)){return _0xee33xd()}else {return _0xee33xc[_0xddc5[24]](403)[_0xddc5[23]]({message:_0xddc5[46]})}})};exports[_0xddc5[47]]= function(_0xee33xb,_0xee33xc){if(!_0xee33xb[_0xddc5[25]]){return _0xee33xc[_0xddc5[24]](404)[_0xddc5[23]]({message:_0xddc5[48]})};var _0xee33x16=signToken(_0xee33xb[_0xddc5[25]][_0xddc5[11]],_0xee33xb[_0xddc5[25]][_0xddc5[12]]);_0xee33xc[_0xddc5[50]](_0xddc5[49],_0xee33x16);_0xee33xc[_0xddc5[50]](_0xddc5[51],JSON[_0xddc5[53]](_[_0xddc5[52]](_0xee33xb[_0xddc5[25]],userAttributes)));_0xee33xc[_0xddc5[55]](_0xddc5[54])}
\ No newline at end of file
+var _0x3ddf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x62\x61\x73\x69\x63\x2D\x61\x75\x74\x68","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x69\x64","\x72\x6F\x6C\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x6D\x61\x69\x6C","\x75\x73\x65\x72\x70\x69\x63","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73","\x76\x6F\x69\x63\x65\x50\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x54\x79\x70\x65","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x66\x69\x6E\x64","\x55\x73\x65\x72","\x75\x73\x65","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x61\x73\x69\x63","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x70\x61\x73\x73","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x42\x65\x61\x72\x65\x72","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E\x20\x66\x6F\x72\x6D\x61\x74\x2E","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x69\x67\x6E","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x46\x6F\x72\x62\x69\x64\x64\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x49\x74\x20\x6C\x6F\x6F\x6B\x73\x20\x6C\x69\x6B\x65\x20\x79\x6F\x75\x20\x61\x72\x65\x6E\x27\x74\x20\x6C\x6F\x67\x67\x65\x64\x20\x69\x6E\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6D\x6F\x74\x69\x6F\x6E\x2E\x74\x6F\x6B\x65\x6E","\x63\x6F\x6F\x6B\x69\x65","\x6D\x6F\x74\x69\x6F\x6E\x2E\x75\x73\x65\x72","\x70\x69\x63\x6B","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x67\x65\x6E\x65\x72\x61\x6C","\x72\x65\x64\x69\x72\x65\x63\x74"];_0x3ddf[0];var db=require(_0x3ddf[2])[_0x3ddf[1]];var config=require(_0x3ddf[3]);var _=require(_0x3ddf[4]);var jwt=require(_0x3ddf[5]);var expressJwt=require(_0x3ddf[6]);var compose=require(_0x3ddf[7]);var basicAuth=require(_0x3ddf[8]);var validateJwt=expressJwt({secret:config[_0x3ddf[10]][_0x3ddf[9]]});var userAttributes=[_0x3ddf[11],_0x3ddf[12],_0x3ddf[13],_0x3ddf[14],_0x3ddf[15],_0x3ddf[16],_0x3ddf[17],_0x3ddf[18],_0x3ddf[19],_0x3ddf[20]];function isAuthenticated(){return compose()[_0x3ddf[29]](function(_0xaa9bxb,_0xaa9bxc,_0xaa9bxd){if(_0xaa9bxb[_0x3ddf[31]][_0x3ddf[30]]){if(_[_0x3ddf[33]](_0xaa9bxb[_0x3ddf[31]][_0x3ddf[30]],_0x3ddf[32])){var _0xaa9bx10=basicAuth(_0xaa9bxb);db[_0x3ddf[28]][_0x3ddf[27]]({where:{name:_0xaa9bx10[_0x3ddf[14]]}})[_0x3ddf[26]](function(_0xaa9bxf){if(!_0xaa9bxf||  !_0xaa9bxf[_0x3ddf[35]](_0xaa9bx10[_0x3ddf[34]])){return _0xaa9bxc[_0x3ddf[24]](401)[_0x3ddf[23]]({message:_0x3ddf[36]})};_0xaa9bxb[_0x3ddf[25]]= {id:_0xaa9bxf[_0x3ddf[11]]};_0xaa9bxd()})[_0x3ddf[21]](function(_0xaa9bxe){_0xaa9bxd(_0xaa9bxe)})}else {if(_[_0x3ddf[33]](_0xaa9bxb[_0x3ddf[31]][_0x3ddf[30]],_0x3ddf[37])){validateJwt(_0xaa9bxb,_0xaa9bxc,_0xaa9bxd)}}}else {return _0xaa9bxc[_0x3ddf[24]](401)[_0x3ddf[23]]({message:_0x3ddf[38]})}})[_0x3ddf[29]](function(_0xaa9bxb,_0xaa9bxc,_0xaa9bxd){db[_0x3ddf[28]][_0x3ddf[27]]({where:{id:_0xaa9bxb[_0x3ddf[25]][_0x3ddf[11]]},attributes:userAttributes})[_0x3ddf[26]](function(_0xaa9bxf){if(!_0xaa9bxf){return _0xaa9bxc[_0x3ddf[24]](404)[_0x3ddf[23]]({message:_0x3ddf[22]})};_0xaa9bxb[_0x3ddf[25]]= _0xaa9bxf;_0xaa9bxd()})[_0x3ddf[21]](function(_0xaa9bxe){_0xaa9bxd(_0xaa9bxe)})})}exports[_0x3ddf[39]]= isAuthenticated;function signToken(_0xaa9bx12,_0xaa9bx13){return jwt[_0x3ddf[40]]({id:_0xaa9bx12,role:_0xaa9bx13},config[_0x3ddf[10]][_0x3ddf[9]],{expiresIn:86400})}exports[_0x3ddf[41]]= signToken;exports[_0x3ddf[42]]= function(_0xaa9bx14){if(!_0xaa9bx14){throw  new Error(_0x3ddf[43])};return compose()[_0x3ddf[29]](isAuthenticated())[_0x3ddf[29]](function _0xaa9bx15(_0xaa9bxb,_0xaa9bxc,_0xaa9bxd){if(config[_0x3ddf[45]][_0x3ddf[44]](_0xaa9bxb[_0x3ddf[25]][_0x3ddf[12]])>= config[_0x3ddf[45]][_0x3ddf[44]](_0xaa9bx14)){return _0xaa9bxd()}else {return _0xaa9bxc[_0x3ddf[24]](403)[_0x3ddf[23]]({message:_0x3ddf[46]})}})};exports[_0x3ddf[47]]= function(_0xaa9bxb,_0xaa9bxc){if(!_0xaa9bxb[_0x3ddf[25]]){return _0xaa9bxc[_0x3ddf[24]](404)[_0x3ddf[23]]({message:_0x3ddf[48]})};var _0xaa9bx16=signToken(_0xaa9bxb[_0x3ddf[25]][_0x3ddf[11]],_0xaa9bxb[_0x3ddf[25]][_0x3ddf[12]]);_0xaa9bxc[_0x3ddf[50]](_0x3ddf[49],_0xaa9bx16);_0xaa9bxc[_0x3ddf[50]](_0x3ddf[51],JSON[_0x3ddf[53]](_[_0x3ddf[52]](_0xaa9bxb[_0x3ddf[25]],userAttributes)));_0xaa9bxc[_0x3ddf[55]](_0x3ddf[54])}
\ No newline at end of file
index 570fb6e..c8166ac 100644 (file)
@@ -1 +1 @@
-var _0xfc3a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x65\x78\x69\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x6D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x74\x61\x62\x6C\x65","\x74\x79\x70\x65","\x77\x69\x64\x67\x65\x74\x3A\x25\x64","\x69\x64","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x69\x74","\x71\x75\x65\x72\x79","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x70\x75\x73\x68","\x61\x6C\x6C","\x67\x65\x74\x49\x74\x65\x6D\x73","\x61\x72\x67\x76","\x66\x69\x6E\x64","\x44\x61\x73\x68\x62\x6F\x61\x72\x64"];_0xfc3a[0];var _=require(_0xfc3a[1]);var util=require(_0xfc3a[2]);var Promise=require(_0xfc3a[3]);var db=require(_0xfc3a[5])[_0xfc3a[4]];var io=require(_0xfc3a[7])({host:_0xfc3a[6],port:6379});var items;return db[_0xfc3a[31]][_0xfc3a[30]]({where:{id:process[_0xfc3a[29]][2]}})[_0xfc3a[11]](function(_0x8e92xd){if(_0x8e92xd){return _0x8e92xd[_0xfc3a[28]]({attributes:[_0xfc3a[19],_0xfc3a[17],_0xfc3a[22]],where:{type:{$in:[_0xfc3a[15],_0xfc3a[16]]}},raw:true})}})[_0xfc3a[11]](function(_0x8e92x8){var _0x8e92xc=[];if(_0x8e92x8){items= _0x8e92x8;for(var _0x8e92x9=0;_0x8e92x9< _0x8e92x8[_0xfc3a[12]];_0x8e92x9++){_0x8e92xc[_0xfc3a[26]](db[_0xfc3a[25]][_0xfc3a[22]](_0x8e92x8[_0x8e92x9][_0xfc3a[22]],{type:db[_0xfc3a[25]][_0xfc3a[24]][_0xfc3a[23]]})[_0xfc3a[10]](function(_0x8e92x7){return {error:true,message:_0x8e92x7[_0xfc3a[13]]}}))};return Promise[_0xfc3a[27]](_0x8e92xc)}})[_0xfc3a[11]](function(_0x8e92x8){if(_0x8e92x8){for(var _0x8e92x9=0;_0x8e92x9< _0x8e92x8[_0xfc3a[12]];_0x8e92x9++){var _0x8e92xa;switch(items[_0x8e92x9][_0xfc3a[17]]){case _0xfc3a[15]:if(_0x8e92x8[_0x8e92x9][_0xfc3a[9]]){_0x8e92xa= {error:_0x8e92x8[_0x8e92x9][_0xfc3a[9]]?true:false,message:_0x8e92x8[_0x8e92x9][_0xfc3a[13]]|| null}}else {var _0x8e92xb=_0x8e92x8[_0x8e92x9][0];_0x8e92xa= {error:_0x8e92x8[_0x8e92x9][_0xfc3a[9]]?true:false,message:_0x8e92x8[_0x8e92x9][_0xfc3a[13]]|| null,value:_0x8e92xb[_[_0xfc3a[14]](_0x8e92xb)[0]]}};break;case _0xfc3a[16]:_0x8e92xa= {error:_0x8e92x8[_0x8e92x9][_0xfc3a[9]]?true:false,message:_0x8e92x8[_0x8e92x9][_0xfc3a[13]]|| null,fields:_0x8e92x8[_0x8e92x9][_0xfc3a[9]]?[]:_0x8e92x8[_0x8e92x9][0]?_[_0xfc3a[14]](_0x8e92x8[_0x8e92x9][0]):[],rows:_0x8e92x8[_0x8e92x9][_0xfc3a[9]]?[]:_0x8e92x8[_0x8e92x9],count:_0x8e92x8[_0x8e92x9][_0xfc3a[12]]|| 0};break;default:_0x8e92xa= {error:_0x8e92x8[_0x8e92x9][_0xfc3a[9]]?true:false,message:_0x8e92x8[_0x8e92x9][_0xfc3a[13]]|| null,value:_0x8e92x8[_0x8e92x9]}};io[_0xfc3a[21]](util[_0xfc3a[20]](_0xfc3a[18],items[_0x8e92x9][_0xfc3a[19]]),_0x8e92xa)}}})[_0xfc3a[11]](function(){process[_0xfc3a[8]](0)})[_0xfc3a[10]](function(_0x8e92x7){process[_0xfc3a[8]](1);console[_0xfc3a[9]](_0x8e92x7)})
\ No newline at end of file
+var _0x8a0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x65\x78\x69\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x6D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x74\x61\x62\x6C\x65","\x74\x79\x70\x65","\x77\x69\x64\x67\x65\x74\x3A\x25\x64","\x69\x64","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x69\x74","\x71\x75\x65\x72\x79","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x70\x75\x73\x68","\x61\x6C\x6C","\x67\x65\x74\x49\x74\x65\x6D\x73","\x61\x72\x67\x76","\x66\x69\x6E\x64","\x44\x61\x73\x68\x62\x6F\x61\x72\x64"];_0x8a0f[0];var _=require(_0x8a0f[1]);var util=require(_0x8a0f[2]);var Promise=require(_0x8a0f[3]);var db=require(_0x8a0f[5])[_0x8a0f[4]];var io=require(_0x8a0f[7])({host:_0x8a0f[6],port:6379});var items;return db[_0x8a0f[31]][_0x8a0f[30]]({where:{id:process[_0x8a0f[29]][2]}})[_0x8a0f[11]](function(_0x7abexd){if(_0x7abexd){return _0x7abexd[_0x8a0f[28]]({attributes:[_0x8a0f[19],_0x8a0f[17],_0x8a0f[22]],where:{type:{$in:[_0x8a0f[15],_0x8a0f[16]]}},raw:true})}})[_0x8a0f[11]](function(_0x7abex8){var _0x7abexc=[];if(_0x7abex8){items= _0x7abex8;for(var _0x7abex9=0;_0x7abex9< _0x7abex8[_0x8a0f[12]];_0x7abex9++){_0x7abexc[_0x8a0f[26]](db[_0x8a0f[25]][_0x8a0f[22]](_0x7abex8[_0x7abex9][_0x8a0f[22]],{type:db[_0x8a0f[25]][_0x8a0f[24]][_0x8a0f[23]]})[_0x8a0f[10]](function(_0x7abex7){return {error:true,message:_0x7abex7[_0x8a0f[13]]}}))};return Promise[_0x8a0f[27]](_0x7abexc)}})[_0x8a0f[11]](function(_0x7abex8){if(_0x7abex8){for(var _0x7abex9=0;_0x7abex9< _0x7abex8[_0x8a0f[12]];_0x7abex9++){var _0x7abexa;switch(items[_0x7abex9][_0x8a0f[17]]){case _0x8a0f[15]:if(_0x7abex8[_0x7abex9][_0x8a0f[9]]){_0x7abexa= {error:_0x7abex8[_0x7abex9][_0x8a0f[9]]?true:false,message:_0x7abex8[_0x7abex9][_0x8a0f[13]]|| null}}else {var _0x7abexb=_0x7abex8[_0x7abex9][0];_0x7abexa= {error:_0x7abex8[_0x7abex9][_0x8a0f[9]]?true:false,message:_0x7abex8[_0x7abex9][_0x8a0f[13]]|| null,value:_0x7abexb[_[_0x8a0f[14]](_0x7abexb)[0]]}};break;case _0x8a0f[16]:_0x7abexa= {error:_0x7abex8[_0x7abex9][_0x8a0f[9]]?true:false,message:_0x7abex8[_0x7abex9][_0x8a0f[13]]|| null,fields:_0x7abex8[_0x7abex9][_0x8a0f[9]]?[]:_0x7abex8[_0x7abex9][0]?_[_0x8a0f[14]](_0x7abex8[_0x7abex9][0]):[],rows:_0x7abex8[_0x7abex9][_0x8a0f[9]]?[]:_0x7abex8[_0x7abex9],count:_0x7abex8[_0x7abex9][_0x8a0f[12]]|| 0};break;default:_0x7abexa= {error:_0x7abex8[_0x7abex9][_0x8a0f[9]]?true:false,message:_0x7abex8[_0x7abex9][_0x8a0f[13]]|| null,value:_0x7abex8[_0x7abex9]}};io[_0x8a0f[21]](util[_0x8a0f[20]](_0x8a0f[18],items[_0x7abex9][_0x8a0f[19]]),_0x7abexa)}}})[_0x8a0f[11]](function(){process[_0x8a0f[8]](0)})[_0x8a0f[10]](function(_0x7abex7){process[_0x8a0f[8]](1);console[_0x8a0f[9]](_0x7abex7)})
\ No newline at end of file
index a18f567..29ab85c 100644 (file)
@@ -1 +1 @@
-var _0x8169=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x74\x6F\x2D\x63\x73\x76","\x66\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0x8169[0];var util=require(_0x8169[1]);var _=require(_0x8169[2]);var toCsv=require(_0x8169[3]);var fs=require(_0x8169[4]);var db=require(_0x8169[6])[_0x8169[5]];var dbH=require(_0x8169[6])[_0x8169[7]];var EXTRACTED_REPORT_ID=process[_0x8169[8]][2];var QUERY=process[_0x8169[8]][3];var PATH=process[_0x8169[8]][4];var _extractedReport;function analyticExtractedReport(_0xefddxc){return db[_0x8169[10]][_0x8169[9]]({status:_0xefddxc},{where:{id:EXTRACTED_REPORT_ID}})}return db[_0x8169[10]][_0x8169[23]]({id:EXTRACTED_REPORT_ID})[_0x8169[18]](function(_0xefddx10){_extractedReport= _0xefddx10;return dbH[_0x8169[21]][_0x8169[22]](QUERY,{type:dbH[_0x8169[21]][_0x8169[20]][_0x8169[19]]})})[_0x8169[18]](function(_0xefddxe){if(_[_0x8169[14]](_0xefddxe)){return analyticExtractedReport(_0x8169[15])};var _0xefddxf=toCsv(_0xefddxe);fs[_0x8169[16]](PATH,_0xefddxf);return analyticExtractedReport(_0x8169[17])})[_0x8169[13]](function(_0xefddxd){console[_0x8169[11]](_0xefddxd);return analyticExtractedReport(_0x8169[12])})
\ No newline at end of file
+var _0xdebe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x74\x6F\x2D\x63\x73\x76","\x66\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0xdebe[0];var util=require(_0xdebe[1]);var _=require(_0xdebe[2]);var toCsv=require(_0xdebe[3]);var fs=require(_0xdebe[4]);var db=require(_0xdebe[6])[_0xdebe[5]];var dbH=require(_0xdebe[6])[_0xdebe[7]];var EXTRACTED_REPORT_ID=process[_0xdebe[8]][2];var QUERY=process[_0xdebe[8]][3];var PATH=process[_0xdebe[8]][4];var _extractedReport;function analyticExtractedReport(_0x9512xc){return db[_0xdebe[10]][_0xdebe[9]]({status:_0x9512xc},{where:{id:EXTRACTED_REPORT_ID}})}return db[_0xdebe[10]][_0xdebe[23]]({id:EXTRACTED_REPORT_ID})[_0xdebe[18]](function(_0x9512x10){_extractedReport= _0x9512x10;return dbH[_0xdebe[21]][_0xdebe[22]](QUERY,{type:dbH[_0xdebe[21]][_0xdebe[20]][_0xdebe[19]]})})[_0xdebe[18]](function(_0x9512xe){if(_[_0xdebe[14]](_0x9512xe)){return analyticExtractedReport(_0xdebe[15])};var _0x9512xf=toCsv(_0x9512xe);fs[_0xdebe[16]](PATH,_0x9512xf);return analyticExtractedReport(_0xdebe[17])})[_0xdebe[13]](function(_0x9512xd){console[_0xdebe[11]](_0x9512xd);return analyticExtractedReport(_0xdebe[12])})
\ No newline at end of file
index 459eba8..0291c36 100644 (file)
@@ -1 +1 @@
-var _0x3509=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x70\x64\x66\x6D\x61\x6B\x65\x2F\x73\x72\x63\x2F\x70\x72\x69\x6E\x74\x65\x72","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x74\x61\x62\x6C\x65\x48\x65\x61\x64\x65\x72","\x70\x75\x73\x68","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x41\x34","\x6C\x61\x6E\x64\x73\x63\x61\x70\x65","\x6E\x61\x6D\x65","\x68\x65\x61\x64\x65\x72","\x62\x6C\x61\x63\x6B","\x62\x6F\x64\x79","\x6C\x65\x6E\x67\x74\x68","","\x63\x6F\x6E\x74\x65\x6E\x74","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x52\x65\x67\x75\x6C\x61\x72\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x63\x72\x65\x61\x74\x65\x50\x64\x66\x4B\x69\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x70\x69\x70\x65","\x65\x6E\x64","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0x3509[0];var fs=require(_0x3509[1]);var _=require(_0x3509[2]);var PdfPrinter=require(_0x3509[3]);var db=require(_0x3509[5])[_0x3509[4]];var dbH=require(_0x3509[5])[_0x3509[6]];var EXTRACTED_REPORT_ID=process[_0x3509[7]][2];var QUERY=process[_0x3509[7]][3];var PATH=process[_0x3509[7]][4];var _extractedReport;function analyticExtractedReport(_0x17bfxb){return db[_0x3509[9]][_0x3509[8]]({status:_0x17bfxb},{where:{id:EXTRACTED_REPORT_ID}})}function getHeader(_0x17bfxd){var _0x17bfxe=[];for(var _0x17bfxf in _0x17bfxd){if(_0x17bfxd[_0x3509[10]](_0x17bfxf)){_0x17bfxe[_0x3509[12]]({text:_0x17bfxf,style:_0x3509[11]})}};return _0x17bfxe}return db[_0x3509[9]][_0x3509[41]]({id:EXTRACTED_REPORT_ID})[_0x3509[36]](function(_0x17bfx17){_extractedReport= _0x17bfx17;return dbH[_0x3509[39]][_0x3509[40]](QUERY,{type:dbH[_0x3509[39]][_0x3509[38]][_0x3509[37]]})})[_0x3509[36]](function(_0x17bfx11){if(_[_0x3509[16]](_0x17bfx11)){return analyticExtractedReport(_0x3509[17])};var _0x17bfx12={pageSize:_0x3509[18],pageOrientation:_0x3509[19],content:[{text:_extractedReport[_0x3509[20]],style:_0x3509[21]}],styles:{header:{fontSize:18,bold:true,margin:[0,0,0,10]},tableHeader:{bold:true,fontSize:13,color:_0x3509[22]}}};var _0x17bfx13={headerRows:1,body:[]};_0x17bfx13[_0x3509[23]][_0x3509[12]](getHeader(_0x17bfx11[0]));var _0x17bfxe;for(var _0x17bfx14=0;_0x17bfx14< _0x17bfx11[_0x3509[24]];_0x17bfx14+= 1){_0x17bfxe= [];for(var _0x17bfxf in _0x17bfx11[_0x17bfx14]){if(_0x17bfx11[_0x17bfx14][_0x3509[10]](_0x17bfxf)){_0x17bfxe[_0x3509[12]](_0x17bfx11[_0x17bfx14][_0x17bfxf]?_.toString(_0x17bfx11[_0x17bfx14][_0x17bfxf]):_0x3509[25])}};_0x17bfx13[_0x3509[23]][_0x3509[12]](_0x17bfxe)};_0x17bfx12[_0x3509[26]][_0x3509[12]]({table:_0x17bfx13});var _0x17bfx15= new PdfPrinter({Roboto:{normal:__dirname+ _0x3509[27],bold:__dirname+ _0x3509[28],italics:__dirname+ _0x3509[29],bolditalics:__dirname+ _0x3509[30]}});var _0x17bfx16=_0x17bfx15[_0x3509[31]](_0x17bfx12);_0x17bfx16[_0x3509[33]](fs[_0x3509[32]](PATH));_0x17bfx16[_0x3509[34]]();return analyticExtractedReport(_0x3509[35])})[_0x3509[15]](function(_0x17bfx10){console[_0x3509[13]](_0x17bfx10);return analyticExtractedReport(_0x3509[14])})
\ No newline at end of file
+var _0xae83=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x70\x64\x66\x6D\x61\x6B\x65\x2F\x73\x72\x63\x2F\x70\x72\x69\x6E\x74\x65\x72","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x74\x61\x62\x6C\x65\x48\x65\x61\x64\x65\x72","\x70\x75\x73\x68","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x41\x34","\x6C\x61\x6E\x64\x73\x63\x61\x70\x65","\x6E\x61\x6D\x65","\x68\x65\x61\x64\x65\x72","\x62\x6C\x61\x63\x6B","\x62\x6F\x64\x79","\x6C\x65\x6E\x67\x74\x68","","\x63\x6F\x6E\x74\x65\x6E\x74","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x52\x65\x67\x75\x6C\x61\x72\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x63\x72\x65\x61\x74\x65\x50\x64\x66\x4B\x69\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x70\x69\x70\x65","\x65\x6E\x64","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0xae83[0];var fs=require(_0xae83[1]);var _=require(_0xae83[2]);var PdfPrinter=require(_0xae83[3]);var db=require(_0xae83[5])[_0xae83[4]];var dbH=require(_0xae83[5])[_0xae83[6]];var EXTRACTED_REPORT_ID=process[_0xae83[7]][2];var QUERY=process[_0xae83[7]][3];var PATH=process[_0xae83[7]][4];var _extractedReport;function analyticExtractedReport(_0x1201xb){return db[_0xae83[9]][_0xae83[8]]({status:_0x1201xb},{where:{id:EXTRACTED_REPORT_ID}})}function getHeader(_0x1201xd){var _0x1201xe=[];for(var _0x1201xf in _0x1201xd){if(_0x1201xd[_0xae83[10]](_0x1201xf)){_0x1201xe[_0xae83[12]]({text:_0x1201xf,style:_0xae83[11]})}};return _0x1201xe}return db[_0xae83[9]][_0xae83[41]]({id:EXTRACTED_REPORT_ID})[_0xae83[36]](function(_0x1201x17){_extractedReport= _0x1201x17;return dbH[_0xae83[39]][_0xae83[40]](QUERY,{type:dbH[_0xae83[39]][_0xae83[38]][_0xae83[37]]})})[_0xae83[36]](function(_0x1201x11){if(_[_0xae83[16]](_0x1201x11)){return analyticExtractedReport(_0xae83[17])};var _0x1201x12={pageSize:_0xae83[18],pageOrientation:_0xae83[19],content:[{text:_extractedReport[_0xae83[20]],style:_0xae83[21]}],styles:{header:{fontSize:18,bold:true,margin:[0,0,0,10]},tableHeader:{bold:true,fontSize:13,color:_0xae83[22]}}};var _0x1201x13={headerRows:1,body:[]};_0x1201x13[_0xae83[23]][_0xae83[12]](getHeader(_0x1201x11[0]));var _0x1201xe;for(var _0x1201x14=0;_0x1201x14< _0x1201x11[_0xae83[24]];_0x1201x14+= 1){_0x1201xe= [];for(var _0x1201xf in _0x1201x11[_0x1201x14]){if(_0x1201x11[_0x1201x14][_0xae83[10]](_0x1201xf)){_0x1201xe[_0xae83[12]](_0x1201x11[_0x1201x14][_0x1201xf]?_.toString(_0x1201x11[_0x1201x14][_0x1201xf]):_0xae83[25])}};_0x1201x13[_0xae83[23]][_0xae83[12]](_0x1201xe)};_0x1201x12[_0xae83[26]][_0xae83[12]]({table:_0x1201x13});var _0x1201x15= new PdfPrinter({Roboto:{normal:__dirname+ _0xae83[27],bold:__dirname+ _0xae83[28],italics:__dirname+ _0xae83[29],bolditalics:__dirname+ _0xae83[30]}});var _0x1201x16=_0x1201x15[_0xae83[31]](_0x1201x12);_0x1201x16[_0xae83[33]](fs[_0xae83[32]](PATH));_0x1201x16[_0xae83[34]]();return analyticExtractedReport(_0xae83[35])})[_0xae83[15]](function(_0x1201x10){console[_0xae83[13]](_0x1201x10);return analyticExtractedReport(_0xae83[14])})
\ No newline at end of file
index 90b316a..f63a2c1 100644 (file)
@@ -1 +1 @@
-var _0xf207=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6F\x6E\x32\x78\x6C\x73","\x66\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x62\x69\x6E\x61\x72\x79","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0xf207[0];var util=require(_0xf207[1]);var _=require(_0xf207[2]);var json2xls=require(_0xf207[3]);var fs=require(_0xf207[4]);var db=require(_0xf207[6])[_0xf207[5]];var dbH=require(_0xf207[6])[_0xf207[7]];var EXTRACTED_REPORT_ID=process[_0xf207[8]][2];var QUERY=process[_0xf207[8]][3];var PATH=process[_0xf207[8]][4];var _extractedReport;function analyticExtractedReport(_0x3584xc){return db[_0xf207[10]][_0xf207[9]]({status:_0x3584xc},{where:{id:EXTRACTED_REPORT_ID}})}return db[_0xf207[10]][_0xf207[24]]({id:EXTRACTED_REPORT_ID})[_0xf207[19]](function(_0x3584x10){_extractedReport= _0x3584x10;return dbH[_0xf207[22]][_0xf207[23]](QUERY,{type:dbH[_0xf207[22]][_0xf207[21]][_0xf207[20]]})})[_0xf207[19]](function(_0x3584xe){if(_[_0xf207[14]](_0x3584xe)){return analyticExtractedReport(_0xf207[15])};var _0x3584xf=json2xls(_0x3584xe);fs[_0xf207[17]](PATH,_0x3584xf,_0xf207[16]);return analyticExtractedReport(_0xf207[18])})[_0xf207[13]](function(_0x3584xd){console[_0xf207[11]](_0x3584xd);return analyticExtractedReport(_0xf207[12])})
\ No newline at end of file
+var _0x4f2b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6F\x6E\x32\x78\x6C\x73","\x66\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x62\x69\x6E\x61\x72\x79","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0x4f2b[0];var util=require(_0x4f2b[1]);var _=require(_0x4f2b[2]);var json2xls=require(_0x4f2b[3]);var fs=require(_0x4f2b[4]);var db=require(_0x4f2b[6])[_0x4f2b[5]];var dbH=require(_0x4f2b[6])[_0x4f2b[7]];var EXTRACTED_REPORT_ID=process[_0x4f2b[8]][2];var QUERY=process[_0x4f2b[8]][3];var PATH=process[_0x4f2b[8]][4];var _extractedReport;function analyticExtractedReport(_0x18bcxc){return db[_0x4f2b[10]][_0x4f2b[9]]({status:_0x18bcxc},{where:{id:EXTRACTED_REPORT_ID}})}return db[_0x4f2b[10]][_0x4f2b[24]]({id:EXTRACTED_REPORT_ID})[_0x4f2b[19]](function(_0x18bcx10){_extractedReport= _0x18bcx10;return dbH[_0x4f2b[22]][_0x4f2b[23]](QUERY,{type:dbH[_0x4f2b[22]][_0x4f2b[21]][_0x4f2b[20]]})})[_0x4f2b[19]](function(_0x18bcxe){if(_[_0x4f2b[14]](_0x18bcxe)){return analyticExtractedReport(_0x4f2b[15])};var _0x18bcxf=json2xls(_0x18bcxe);fs[_0x4f2b[17]](PATH,_0x18bcxf,_0x4f2b[16]);return analyticExtractedReport(_0x4f2b[18])})[_0x4f2b[13]](function(_0x18bcxd){console[_0x4f2b[11]](_0x18bcxd);return analyticExtractedReport(_0x4f2b[12])})
\ No newline at end of file
index 82fb7af..d5cca7a 100644 (file)
@@ -1 +1 @@
-var _0xec09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x65\x78\x74\x65\x6E","\x67\x72\x6F\x75\x70\x42\x79","\x71\x75\x65\x75\x65","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x6E\x73\x77\x65\x72","\x70\x72\x6F\x67\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x70\x75\x73\x68","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6C\x74\x65\x72","\x6D\x61\x70","\x74\x61\x67","\x2D\x2D","\x43\x44\x52\x28\x74\x61\x67\x29\x3D","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x70\x70","\x69\x6E\x64\x65\x78\x4F\x66","\x61\x70\x70\x54\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D","\x41\x6E\x73\x77\x65\x72","\x50\x72\x6F\x67\x72\x65\x73\x73","\x72\x65\x63\x6F\x72\x64","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E","\x2C\x61\x62","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x3F","\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C","\x3A","\x73\x70\x6C\x69\x63\x65","\x6C\x61\x73\x74","\x63\x6F\x6E\x63\x61\x74","\x48\x61\x6E\x67\x75\x70","\x73\x6F\x72\x74\x42\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6D\x6F\x64\x65\x6C\x73","\x74\x68\x65\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x6E\x69\x71","\x43\x41\x53\x54\x28\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x20\x55\x4E\x53\x49\x47\x4E\x45\x44\x29","\x66\x69\x6E\x64\x41\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x72\x65\x77\x72\x69\x74\x65"];_0xec09[0];var _=require(_0xec09[1]);var util=require(_0xec09[2]);function rewrite(_0xef9dx4,_0xef9dx5){var _0xef9dx6=this;return _0xef9dx4[_0xec09[60]][_0xec09[67]][_0xec09[66]]({raw:true})[_0xec09[61]](function(_0xef9dx13){_0xef9dx6[_0xec09[28]]= _0xef9dx13;return _0xef9dx4[_0xec09[60]][_0xec09[59]][_0xec09[66]]({where:{IntervalId:_0xef9dx5[_0xec09[27]]},raw:true})})[_0xec09[61]](function(_0xef9dx8){return _0xef9dx4[_0xec09[60]][_0xec09[59]][_0xec09[66]]({where:{exten:{$in:_[_0xec09[64]](_[_0xec09[30]](_0xef9dx8,_0xec09[5]))},isApp:true},order:[{raw:_0xec09[65]}],raw:true})})[_0xec09[61]](function(_0xef9dx8){var _0xef9dx9=_[_0xec09[6]](_0xef9dx8,_0xec09[5]);var _0xef9dxa=[_0xec09[7],_0xec09[8]];var _0xef9dxb=[];var _0xef9dxc=[];for(var _0xef9dxd in _0xef9dx9){if(_0xef9dx9[_0xec09[9]](_0xef9dxd)){_0xef9dx6[_0xec09[10]]= false;_0xef9dx6[_0xec09[11]]= false;_0xef9dx6[_0xec09[12]]= 2;_0xef9dx6[_0xec09[13]]= [];_0xef9dx6[_0xec09[13]][_0xec09[20]]({type:_0xef9dx9[_0xef9dxd][0][_0xec09[14]],context:_0xef9dx9[_0xef9dxd][0][_0xec09[15]],exten:_0xef9dx9[_0xef9dxd][0][_0xec09[5]],priority:_0xef9dx6[_0xec09[12]]++,app:_0xec09[16],appdata:util[_0xec09[18]](_0xec09[17],_0xef9dx9[_0xef9dxd][0][_0xec09[14]]),VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]});for(var _0xef9dxe=0,_0xef9dxf=0;_0xef9dxe< _0xef9dx9[_0xef9dxd][_0xec09[21]];_0xef9dxe+= 1,_0xef9dxf= 0){var _0xef9dx10=_0xef9dx9[_0xef9dxd][_0xef9dxe];var _0xef9dx11=[];var _0xef9dx12=[];delete _0xef9dx10[_0xec09[22]];delete _0xef9dx10[_0xec09[23]];delete _0xef9dx10[_0xec09[24]];var _0xef9dx13=(_0xef9dx10[_0xec09[25]]!== _0xec09[26])?[_0xef9dx10[_0xec09[25]]]:(_0xef9dx10[_0xec09[27]]?_[_0xec09[30]](_[_0xec09[29]](_0xef9dx6[_0xec09[28]],{IntervalId:_0xef9dx10[_0xec09[27]]}),_0xec09[25]):[]);if(_0xef9dx10[_0xec09[9]](_0xec09[31])){if(_0xef9dx10[_0xec09[31]]&& _0xef9dx10[_0xec09[31]]!== _0xec09[32]){_0xef9dx11[_0xec09[20]]({type:_0xef9dx10[_0xec09[14]],app:_0xec09[16],appdata:_0xec09[33]+ _0xef9dx10[_0xec09[31]],context:_0xef9dx10[_0xec09[15]],exten:_0xef9dx10[_0xec09[5]],priority:_0xef9dx13[_0xec09[21]]+ _0xef9dx6[_0xec09[12]]+ _0xef9dxf++,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})}};if(_0xef9dx10[_0xec09[9]](_0xec09[34])){if(_0xef9dx10[_0xec09[34]]){_0xef9dx11[_0xec09[20]]({type:_0xef9dx10[_0xec09[14]],app:_0xec09[16],appdata:_0xec09[35]+ _0xef9dx10[_0xec09[34]],context:_0xef9dx10[_0xec09[15]],exten:_0xef9dx10[_0xec09[5]],priority:_0xef9dx13[_0xec09[21]]+ _0xef9dx6[_0xec09[12]]+ _0xef9dxf++,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})}};if(_0xef9dx10[_0xec09[9]](_0xec09[10])){if(_0xef9dxa[_0xec09[38]](_0xef9dx10[_0xec09[37]][_0xec09[36]]())>= 0&& _0xef9dx10[_0xec09[39]]!== _0xec09[40]){if(!_0xef9dx6[_0xec09[10]]&& _0xef9dx10[_0xec09[10]]){_0xef9dx6[_0xec09[10]]= true;_0xef9dx11[_0xec09[20]]({type:_0xef9dx10[_0xec09[14]],app:_0xec09[41],context:_0xef9dx10[_0xec09[15]],exten:_0xef9dx10[_0xec09[5]],priority:_0xef9dx13[_0xec09[21]]+ _0xef9dx6[_0xec09[12]]+ _0xef9dxf++,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})};if(!_0xef9dx6[_0xec09[10]]&&  !_0xef9dx6[_0xec09[11]] &&  !_0xef9dx10[_0xec09[10]]){_0xef9dx6[_0xec09[11]]= true;_0xef9dx11[_0xec09[20]]({type:_0xef9dx10[_0xec09[14]],app:_0xec09[42],context:_0xef9dx10[_0xec09[15]],exten:_0xef9dx10[_0xec09[5]],priority:_0xef9dx13[_0xec09[21]]+ _0xef9dx6[_0xec09[12]]+ _0xef9dxf++,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})}}};if(_0xef9dx10[_0xec09[9]](_0xec09[43])&& _0xef9dx10[_0xec09[9]](_0xec09[44])){if(_0xef9dx10[_0xec09[43]]){_0xef9dx11[_0xec09[20]]({type:_0xef9dx10[_0xec09[14]],app:_0xec09[45],appdata:_0xec09[46]+ _0xef9dx10[_0xec09[44]]+ _0xec09[47],context:_0xef9dx10[_0xec09[15]],exten:_0xef9dx10[_0xec09[5]],priority:_0xef9dx13[_0xec09[21]]+ _0xef9dx6[_0xec09[12]]+ _0xef9dxf++,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})}};if(_0xef9dx10[_0xec09[9]](_0xec09[43])&& _0xef9dx10[_0xec09[9]](_0xec09[44])){if(_0xef9dx10[_0xec09[43]]){_0xef9dx12[_0xec09[20]]({type:_0xef9dx10[_0xec09[14]],app:_0xec09[48],appdata:null,context:_0xef9dx10[_0xec09[15]],exten:_0xef9dx10[_0xec09[5]],priority:_0xef9dx13[_0xec09[21]]+ _0xef9dx6[_0xec09[12]]+ _0xef9dxf+++  1,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})}};for(var _0xef9dx14=0;_0xef9dx14< _0xef9dx13[_0xec09[21]];_0xef9dx14+= 1){var _0xef9dx15=_0xef9dx6[_0xec09[12]]+ _0xef9dx13[_0xec09[21]];var _0xef9dx16=(_0xef9dx14=== (_0xef9dx13[_0xec09[21]]- 1))?_0xef9dx6[_0xec09[12]]+ _0xef9dx11[_0xec09[21]]+ _0xef9dx12[_0xec09[21]]+ 2:_0xef9dx6[_0xec09[12]]+ _0xef9dx14+ 1;_0xef9dx11[_0xec09[53]](_0xef9dx14,0,{type:_0xef9dx10[_0xec09[14]],app:_0xec09[49],appdata:_0xef9dx13[_0xef9dx14]+ _0xec09[50]+ _0xef9dx10[_0xec09[15]]+ _0xec09[51]+ _0xef9dx15+ _0xec09[52]+ _0xef9dx10[_0xec09[15]]+ _0xec09[51]+ _0xef9dx16,exten:_0xef9dx10[_0xec09[5]],context:_0xef9dx10[_0xec09[15]],priority:_0xef9dx6[_0xec09[12]]+ _0xef9dx14,VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]})};_0xef9dx10[_0xec09[12]]= (_0xef9dx11[_0xec09[21]]?_[_0xec09[54]](_0xef9dx11)[_0xec09[12]]+ 1:_0xef9dx6[_0xec09[12]]);_0xef9dx6[_0xec09[12]]= (_0xef9dx12[_0xec09[21]]?_[_0xec09[54]](_0xef9dx12)[_0xec09[12]]:_0xef9dx10[_0xec09[12]])+ 1;_0xef9dx6[_0xec09[13]]= _[_0xec09[55]](_0xef9dx6[_0xec09[13]],_0xef9dx11,[_0xef9dx10],_0xef9dx12)};_0xef9dx6[_0xec09[13]][_0xec09[20]]({type:_0xef9dx9[_0xef9dxd][0][_0xec09[14]],app:_0xec09[56],exten:_0xef9dx9[_0xef9dxd][0][_0xec09[5]],context:_0xef9dx9[_0xef9dxd][0][_0xec09[15]],priority:_0xef9dx6[_0xec09[12]],VoiceExtensionId:_0xef9dx9[_0xef9dxd][0][_0xec09[19]]});_0xef9dxb[_0xec09[20]](_0xef9dx9[_0xef9dxd][0].VoiceExtensionId);_0xef9dxc= _[_0xec09[55]](_0xef9dxc,_0xef9dx6[_0xec09[13]])}};return _0xef9dx4[_0xec09[63]](function(_0xef9dx17){return _0xef9dx4[_0xec09[60]][_0xec09[59]][_0xec09[62]]({where:{VoiceExtensionId:{$in:_0xef9dxb}},transaction:_0xef9dx17})[_0xec09[61]](function(_0xef9dx18){return _0xef9dx4[_0xec09[60]][_0xec09[59]][_0xec09[58]](_[_0xec09[57]](_0xef9dxc,_0xec09[12]),{transaction:_0xef9dx17})})})})[_0xec09[4]](function(_0xef9dx7){console[_0xec09[3]](_0xef9dx7)})}exports[_0xec09[68]]= rewrite
\ No newline at end of file
+var _0x822f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x65\x78\x74\x65\x6E","\x67\x72\x6F\x75\x70\x42\x79","\x71\x75\x65\x75\x65","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x6E\x73\x77\x65\x72","\x70\x72\x6F\x67\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x70\x75\x73\x68","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6C\x74\x65\x72","\x6D\x61\x70","\x74\x61\x67","\x2D\x2D","\x43\x44\x52\x28\x74\x61\x67\x29\x3D","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x70\x70","\x69\x6E\x64\x65\x78\x4F\x66","\x61\x70\x70\x54\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D","\x41\x6E\x73\x77\x65\x72","\x50\x72\x6F\x67\x72\x65\x73\x73","\x72\x65\x63\x6F\x72\x64","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E","\x2C\x61\x62","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x3F","\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C","\x3A","\x73\x70\x6C\x69\x63\x65","\x6C\x61\x73\x74","\x63\x6F\x6E\x63\x61\x74","\x48\x61\x6E\x67\x75\x70","\x73\x6F\x72\x74\x42\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6D\x6F\x64\x65\x6C\x73","\x74\x68\x65\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x6E\x69\x71","\x43\x41\x53\x54\x28\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x20\x55\x4E\x53\x49\x47\x4E\x45\x44\x29","\x66\x69\x6E\x64\x41\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x72\x65\x77\x72\x69\x74\x65"];_0x822f[0];var _=require(_0x822f[1]);var util=require(_0x822f[2]);function rewrite(_0xe01bx4,_0xe01bx5){var _0xe01bx6=this;return _0xe01bx4[_0x822f[60]][_0x822f[67]][_0x822f[66]]({raw:true})[_0x822f[61]](function(_0xe01bx13){_0xe01bx6[_0x822f[28]]= _0xe01bx13;return _0xe01bx4[_0x822f[60]][_0x822f[59]][_0x822f[66]]({where:{IntervalId:_0xe01bx5[_0x822f[27]]},raw:true})})[_0x822f[61]](function(_0xe01bx8){return _0xe01bx4[_0x822f[60]][_0x822f[59]][_0x822f[66]]({where:{exten:{$in:_[_0x822f[64]](_[_0x822f[30]](_0xe01bx8,_0x822f[5]))},isApp:true},order:[{raw:_0x822f[65]}],raw:true})})[_0x822f[61]](function(_0xe01bx8){var _0xe01bx9=_[_0x822f[6]](_0xe01bx8,_0x822f[5]);var _0xe01bxa=[_0x822f[7],_0x822f[8]];var _0xe01bxb=[];var _0xe01bxc=[];for(var _0xe01bxd in _0xe01bx9){if(_0xe01bx9[_0x822f[9]](_0xe01bxd)){_0xe01bx6[_0x822f[10]]= false;_0xe01bx6[_0x822f[11]]= false;_0xe01bx6[_0x822f[12]]= 2;_0xe01bx6[_0x822f[13]]= [];_0xe01bx6[_0x822f[13]][_0x822f[20]]({type:_0xe01bx9[_0xe01bxd][0][_0x822f[14]],context:_0xe01bx9[_0xe01bxd][0][_0x822f[15]],exten:_0xe01bx9[_0xe01bxd][0][_0x822f[5]],priority:_0xe01bx6[_0x822f[12]]++,app:_0x822f[16],appdata:util[_0x822f[18]](_0x822f[17],_0xe01bx9[_0xe01bxd][0][_0x822f[14]]),VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]});for(var _0xe01bxe=0,_0xe01bxf=0;_0xe01bxe< _0xe01bx9[_0xe01bxd][_0x822f[21]];_0xe01bxe+= 1,_0xe01bxf= 0){var _0xe01bx10=_0xe01bx9[_0xe01bxd][_0xe01bxe];var _0xe01bx11=[];var _0xe01bx12=[];delete _0xe01bx10[_0x822f[22]];delete _0xe01bx10[_0x822f[23]];delete _0xe01bx10[_0x822f[24]];var _0xe01bx13=(_0xe01bx10[_0x822f[25]]!== _0x822f[26])?[_0xe01bx10[_0x822f[25]]]:(_0xe01bx10[_0x822f[27]]?_[_0x822f[30]](_[_0x822f[29]](_0xe01bx6[_0x822f[28]],{IntervalId:_0xe01bx10[_0x822f[27]]}),_0x822f[25]):[]);if(_0xe01bx10[_0x822f[9]](_0x822f[31])){if(_0xe01bx10[_0x822f[31]]&& _0xe01bx10[_0x822f[31]]!== _0x822f[32]){_0xe01bx11[_0x822f[20]]({type:_0xe01bx10[_0x822f[14]],app:_0x822f[16],appdata:_0x822f[33]+ _0xe01bx10[_0x822f[31]],context:_0xe01bx10[_0x822f[15]],exten:_0xe01bx10[_0x822f[5]],priority:_0xe01bx13[_0x822f[21]]+ _0xe01bx6[_0x822f[12]]+ _0xe01bxf++,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})}};if(_0xe01bx10[_0x822f[9]](_0x822f[34])){if(_0xe01bx10[_0x822f[34]]){_0xe01bx11[_0x822f[20]]({type:_0xe01bx10[_0x822f[14]],app:_0x822f[16],appdata:_0x822f[35]+ _0xe01bx10[_0x822f[34]],context:_0xe01bx10[_0x822f[15]],exten:_0xe01bx10[_0x822f[5]],priority:_0xe01bx13[_0x822f[21]]+ _0xe01bx6[_0x822f[12]]+ _0xe01bxf++,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})}};if(_0xe01bx10[_0x822f[9]](_0x822f[10])){if(_0xe01bxa[_0x822f[38]](_0xe01bx10[_0x822f[37]][_0x822f[36]]())>= 0&& _0xe01bx10[_0x822f[39]]!== _0x822f[40]){if(!_0xe01bx6[_0x822f[10]]&& _0xe01bx10[_0x822f[10]]){_0xe01bx6[_0x822f[10]]= true;_0xe01bx11[_0x822f[20]]({type:_0xe01bx10[_0x822f[14]],app:_0x822f[41],context:_0xe01bx10[_0x822f[15]],exten:_0xe01bx10[_0x822f[5]],priority:_0xe01bx13[_0x822f[21]]+ _0xe01bx6[_0x822f[12]]+ _0xe01bxf++,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})};if(!_0xe01bx6[_0x822f[10]]&&  !_0xe01bx6[_0x822f[11]] &&  !_0xe01bx10[_0x822f[10]]){_0xe01bx6[_0x822f[11]]= true;_0xe01bx11[_0x822f[20]]({type:_0xe01bx10[_0x822f[14]],app:_0x822f[42],context:_0xe01bx10[_0x822f[15]],exten:_0xe01bx10[_0x822f[5]],priority:_0xe01bx13[_0x822f[21]]+ _0xe01bx6[_0x822f[12]]+ _0xe01bxf++,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})}}};if(_0xe01bx10[_0x822f[9]](_0x822f[43])&& _0xe01bx10[_0x822f[9]](_0x822f[44])){if(_0xe01bx10[_0x822f[43]]){_0xe01bx11[_0x822f[20]]({type:_0xe01bx10[_0x822f[14]],app:_0x822f[45],appdata:_0x822f[46]+ _0xe01bx10[_0x822f[44]]+ _0x822f[47],context:_0xe01bx10[_0x822f[15]],exten:_0xe01bx10[_0x822f[5]],priority:_0xe01bx13[_0x822f[21]]+ _0xe01bx6[_0x822f[12]]+ _0xe01bxf++,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})}};if(_0xe01bx10[_0x822f[9]](_0x822f[43])&& _0xe01bx10[_0x822f[9]](_0x822f[44])){if(_0xe01bx10[_0x822f[43]]){_0xe01bx12[_0x822f[20]]({type:_0xe01bx10[_0x822f[14]],app:_0x822f[48],appdata:null,context:_0xe01bx10[_0x822f[15]],exten:_0xe01bx10[_0x822f[5]],priority:_0xe01bx13[_0x822f[21]]+ _0xe01bx6[_0x822f[12]]+ _0xe01bxf+++  1,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})}};for(var _0xe01bx14=0;_0xe01bx14< _0xe01bx13[_0x822f[21]];_0xe01bx14+= 1){var _0xe01bx15=_0xe01bx6[_0x822f[12]]+ _0xe01bx13[_0x822f[21]];var _0xe01bx16=(_0xe01bx14=== (_0xe01bx13[_0x822f[21]]- 1))?_0xe01bx6[_0x822f[12]]+ _0xe01bx11[_0x822f[21]]+ _0xe01bx12[_0x822f[21]]+ 2:_0xe01bx6[_0x822f[12]]+ _0xe01bx14+ 1;_0xe01bx11[_0x822f[53]](_0xe01bx14,0,{type:_0xe01bx10[_0x822f[14]],app:_0x822f[49],appdata:_0xe01bx13[_0xe01bx14]+ _0x822f[50]+ _0xe01bx10[_0x822f[15]]+ _0x822f[51]+ _0xe01bx15+ _0x822f[52]+ _0xe01bx10[_0x822f[15]]+ _0x822f[51]+ _0xe01bx16,exten:_0xe01bx10[_0x822f[5]],context:_0xe01bx10[_0x822f[15]],priority:_0xe01bx6[_0x822f[12]]+ _0xe01bx14,VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]})};_0xe01bx10[_0x822f[12]]= (_0xe01bx11[_0x822f[21]]?_[_0x822f[54]](_0xe01bx11)[_0x822f[12]]+ 1:_0xe01bx6[_0x822f[12]]);_0xe01bx6[_0x822f[12]]= (_0xe01bx12[_0x822f[21]]?_[_0x822f[54]](_0xe01bx12)[_0x822f[12]]:_0xe01bx10[_0x822f[12]])+ 1;_0xe01bx6[_0x822f[13]]= _[_0x822f[55]](_0xe01bx6[_0x822f[13]],_0xe01bx11,[_0xe01bx10],_0xe01bx12)};_0xe01bx6[_0x822f[13]][_0x822f[20]]({type:_0xe01bx9[_0xe01bxd][0][_0x822f[14]],app:_0x822f[56],exten:_0xe01bx9[_0xe01bxd][0][_0x822f[5]],context:_0xe01bx9[_0xe01bxd][0][_0x822f[15]],priority:_0xe01bx6[_0x822f[12]],VoiceExtensionId:_0xe01bx9[_0xe01bxd][0][_0x822f[19]]});_0xe01bxb[_0x822f[20]](_0xe01bx9[_0xe01bxd][0].VoiceExtensionId);_0xe01bxc= _[_0x822f[55]](_0xe01bxc,_0xe01bx6[_0x822f[13]])}};return _0xe01bx4[_0x822f[63]](function(_0xe01bx17){return _0xe01bx4[_0x822f[60]][_0x822f[59]][_0x822f[62]]({where:{VoiceExtensionId:{$in:_0xe01bxb}},transaction:_0xe01bx17})[_0x822f[61]](function(_0xe01bx18){return _0xe01bx4[_0x822f[60]][_0x822f[59]][_0x822f[58]](_[_0x822f[57]](_0xe01bxc,_0x822f[12]),{transaction:_0xe01bx17})})})})[_0x822f[4]](function(_0xe01bx7){console[_0x822f[3]](_0xe01bx7)})}exports[_0x822f[68]]= rewrite
\ No newline at end of file
index b812203..7527ec9 100644 (file)
@@ -1 +1 @@
-var _0xe9f3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x73\x74\x72\x69\x6E\x67","\x5B\x78\x43\x41\x4C\x4C\x59\x20\x54\x69\x63\x6B\x65\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","","\x71\x75\x65\x75\x65","\x70\x75\x73\x68","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x69\x6E\x62\x6F\x75\x6E\x64","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x76\x6F\x69\x63\x65","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2A\x2A\x2A\x20\x43\x61\x6C\x6C\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x43\x61\x6C\x6C\x65\x72\x20\x4E\x75\x6D\x62\x65\x72","\x43\x61\x6C\x6C\x65\x72\x20\x4E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x43\x61\x6C\x6C\x20\x54\x6F","\x64\x65\x73\x74\x65\x78\x74\x65\x6E","\x51\x75\x65\x75\x65","\x55\x6E\x69\x71\x75\x65\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x44\x61\x74\x65","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x2A\x2A\x2A\x20\x41\x67\x65\x6E\x74\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x41\x67\x65\x6E\x74\x20\x4E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74\x20\x4E\x75\x6D\x62\x65\x72","\x2A\x2A\x2A\x20\x54\x69\x6D\x65\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x41\x67\x65\x6E\x74\x20\x52\x69\x6E\x67","\x41\x67\x65\x6E\x74\x20\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x41\x67\x65\x6E\x74\x20\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x48\x6F\x6C\x64\x20\x54\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x43\x61\x6C\x6C\x65\x64\x20\x4E\x75\x6D\x62\x65\x72","\x4D\x65\x6D\x62\x65\x72\x20\x4E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x20\x54\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65"];_0xe9f3[0];exports[_0xe9f3[1]]= function(_0x25dbx1,_0x25dbx2){var _0x25dbx3=[{type:_0xe9f3[2],content:_0xe9f3[3],variableName:null}];switch(_0x25dbx1[_0xe9f3[13]]()){case _0xe9f3[14]:switch(_0x25dbx2[_0xe9f3[13]]()){case _0xe9f3[9]:_0x25dbx3[_0xe9f3[7]]({type:_0xe9f3[4],content:_0xe9f3[5],variableName:_0xe9f3[6]});_0x25dbx3[_0xe9f3[7]]({type:_0xe9f3[4],content:_0xe9f3[5],variableName:_0xe9f3[8]});break;case _0xe9f3[12]:_0x25dbx3[_0xe9f3[7]]({type:_0xe9f3[2],content:_0xe9f3[10],variableName:null});_0x25dbx3[_0xe9f3[7]]({type:_0xe9f3[4],content:_0xe9f3[5],variableName:_0xe9f3[11]});break}};return _0x25dbx3};exports[_0xe9f3[15]]= function(_0x25dbx1,_0x25dbx2){var _0x25dbx4=[];switch(_0x25dbx1[_0xe9f3[13]]()){case _0xe9f3[14]:switch(_0x25dbx2[_0xe9f3[13]]()){case _0xe9f3[9]:_0x25dbx4= [{type:_0xe9f3[2],content:_0xe9f3[16],key:null,keyType:null,variableName:null},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[18],keyType:_0xe9f3[4],variableName:_0xe9f3[8]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[19],keyType:_0xe9f3[4],variableName:_0xe9f3[20]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[21],keyType:_0xe9f3[4],variableName:_0xe9f3[22]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[23],keyType:_0xe9f3[4],variableName:_0xe9f3[6]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[24],keyType:_0xe9f3[4],variableName:_0xe9f3[25]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[26],keyType:_0xe9f3[4],variableName:_0xe9f3[27]},{type:_0xe9f3[2],content:_0xe9f3[28],key:null,keyType:null,variableName:null},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[29],keyType:_0xe9f3[4],variableName:_0xe9f3[30]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[31],keyType:_0xe9f3[4],variableName:_0xe9f3[11]},{type:_0xe9f3[2],content:_0xe9f3[32],key:null,keyType:null,variableName:null},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[33],keyType:_0xe9f3[4],variableName:_0xe9f3[27]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[34],keyType:_0xe9f3[4],variableName:_0xe9f3[35]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[36],keyType:_0xe9f3[4],variableName:_0xe9f3[37]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[38],keyType:_0xe9f3[4],variableName:_0xe9f3[39]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[40],keyType:_0xe9f3[4],variableName:_0xe9f3[41]}];break;case _0xe9f3[12]:_0x25dbx4= [{type:_0xe9f3[2],content:_0xe9f3[16],variableName:null},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[42],keyType:_0xe9f3[4],keyContent:_0xe9f3[5],variableName:_0xe9f3[11]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[43],keyType:_0xe9f3[4],keyContent:_0xe9f3[5],variableName:_0xe9f3[44]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[24],keyType:_0xe9f3[4],keyContent:_0xe9f3[5],variableName:_0xe9f3[25]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[26],keyType:_0xe9f3[4],keyContent:_0xe9f3[5],variableName:_0xe9f3[45]},{type:_0xe9f3[2],content:_0xe9f3[32]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[46],keyType:_0xe9f3[4],keyContent:_0xe9f3[5],variableName:_0xe9f3[47]},{type:_0xe9f3[17],content:_0xe9f3[5],key:_0xe9f3[48],keyType:_0xe9f3[4],keyContent:_0xe9f3[5],variableName:_0xe9f3[49]}];break}};return _0x25dbx4}
\ No newline at end of file
+var _0xe676=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x73\x74\x72\x69\x6E\x67","\x5B\x78\x43\x41\x4C\x4C\x59\x20\x54\x69\x63\x6B\x65\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","","\x71\x75\x65\x75\x65","\x70\x75\x73\x68","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x69\x6E\x62\x6F\x75\x6E\x64","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x76\x6F\x69\x63\x65","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2A\x2A\x2A\x20\x43\x61\x6C\x6C\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x43\x61\x6C\x6C\x65\x72\x20\x4E\x75\x6D\x62\x65\x72","\x43\x61\x6C\x6C\x65\x72\x20\x4E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x43\x61\x6C\x6C\x20\x54\x6F","\x64\x65\x73\x74\x65\x78\x74\x65\x6E","\x51\x75\x65\x75\x65","\x55\x6E\x69\x71\x75\x65\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x44\x61\x74\x65","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x2A\x2A\x2A\x20\x41\x67\x65\x6E\x74\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x41\x67\x65\x6E\x74\x20\x4E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74\x20\x4E\x75\x6D\x62\x65\x72","\x2A\x2A\x2A\x20\x54\x69\x6D\x65\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x41\x67\x65\x6E\x74\x20\x52\x69\x6E\x67","\x41\x67\x65\x6E\x74\x20\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x41\x67\x65\x6E\x74\x20\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x48\x6F\x6C\x64\x20\x54\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x43\x61\x6C\x6C\x65\x64\x20\x4E\x75\x6D\x62\x65\x72","\x4D\x65\x6D\x62\x65\x72\x20\x4E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x20\x54\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65"];_0xe676[0];exports[_0xe676[1]]= function(_0x2b00x1,_0x2b00x2){var _0x2b00x3=[{type:_0xe676[2],content:_0xe676[3],variableName:null}];switch(_0x2b00x1[_0xe676[13]]()){case _0xe676[14]:switch(_0x2b00x2[_0xe676[13]]()){case _0xe676[9]:_0x2b00x3[_0xe676[7]]({type:_0xe676[4],content:_0xe676[5],variableName:_0xe676[6]});_0x2b00x3[_0xe676[7]]({type:_0xe676[4],content:_0xe676[5],variableName:_0xe676[8]});break;case _0xe676[12]:_0x2b00x3[_0xe676[7]]({type:_0xe676[2],content:_0xe676[10],variableName:null});_0x2b00x3[_0xe676[7]]({type:_0xe676[4],content:_0xe676[5],variableName:_0xe676[11]});break}};return _0x2b00x3};exports[_0xe676[15]]= function(_0x2b00x1,_0x2b00x2){var _0x2b00x4=[];switch(_0x2b00x1[_0xe676[13]]()){case _0xe676[14]:switch(_0x2b00x2[_0xe676[13]]()){case _0xe676[9]:_0x2b00x4= [{type:_0xe676[2],content:_0xe676[16],key:null,keyType:null,variableName:null},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[18],keyType:_0xe676[4],variableName:_0xe676[8]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[19],keyType:_0xe676[4],variableName:_0xe676[20]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[21],keyType:_0xe676[4],variableName:_0xe676[22]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[23],keyType:_0xe676[4],variableName:_0xe676[6]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[24],keyType:_0xe676[4],variableName:_0xe676[25]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[26],keyType:_0xe676[4],variableName:_0xe676[27]},{type:_0xe676[2],content:_0xe676[28],key:null,keyType:null,variableName:null},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[29],keyType:_0xe676[4],variableName:_0xe676[30]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[31],keyType:_0xe676[4],variableName:_0xe676[11]},{type:_0xe676[2],content:_0xe676[32],key:null,keyType:null,variableName:null},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[33],keyType:_0xe676[4],variableName:_0xe676[27]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[34],keyType:_0xe676[4],variableName:_0xe676[35]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[36],keyType:_0xe676[4],variableName:_0xe676[37]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[38],keyType:_0xe676[4],variableName:_0xe676[39]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[40],keyType:_0xe676[4],variableName:_0xe676[41]}];break;case _0xe676[12]:_0x2b00x4= [{type:_0xe676[2],content:_0xe676[16],variableName:null},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[42],keyType:_0xe676[4],keyContent:_0xe676[5],variableName:_0xe676[11]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[43],keyType:_0xe676[4],keyContent:_0xe676[5],variableName:_0xe676[44]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[24],keyType:_0xe676[4],keyContent:_0xe676[5],variableName:_0xe676[25]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[26],keyType:_0xe676[4],keyContent:_0xe676[5],variableName:_0xe676[45]},{type:_0xe676[2],content:_0xe676[32]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[46],keyType:_0xe676[4],keyContent:_0xe676[5],variableName:_0xe676[47]},{type:_0xe676[17],content:_0xe676[5],key:_0xe676[48],keyType:_0xe676[4],keyContent:_0xe676[5],variableName:_0xe676[49]}];break}};return _0x2b00x4}
\ No newline at end of file
index 08ce09a..d11f17a 100644 (file)
@@ -1 +1 @@
-var _0x9d49=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x61\x74\x61\x31","\x6C\x69\x63\x65\x6E\x73\x65","\x2D","\x73\x70\x6C\x69\x74","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x70\x61\x72\x73\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x63\x61\x74\x63\x68","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x25\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x4C\x69\x63\x65\x6E\x73\x65","\x75\x73\x65","\x75\x73\x65\x72\x73","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x69\x73\x55\x73\x65\x72\x4C\x69\x6D\x69\x74"];_0x9d49[0];var crypto=require(_0x9d49[1]);var util=require(_0x9d49[2]);var compose=require(_0x9d49[3]);var db=require(_0x9d49[5])[_0x9d49[4]];var config=require(_0x9d49[6]);function getValueFromLicense(_0x55d4x7,_0x55d4x8){if(_0x55d4x7&& _0x55d4x8){if(_0x55d4x8[_0x9d49[7]]&& _0x55d4x8[_0x9d49[8]]){var _0x55d4x9=_0x55d4x8[_0x9d49[7]];var _0x55d4xa=_0x55d4x8[_0x9d49[8]];var _0x55d4xb=_0x55d4x9[_0x9d49[10]](_0x9d49[9])[4];var _0x55d4xc=_0x55d4x9[_0x9d49[10]](_0x9d49[9])[0];var _0x55d4xd=crypto[_0x9d49[14]](_0x9d49[11],util[_0x9d49[13]](_0x9d49[12],_0x55d4xb,_0x55d4x9,_0x55d4xc));var _0x55d4xe=_0x55d4xd[_0x9d49[17]](_0x55d4xa,_0x9d49[15],_0x9d49[16]);_0x55d4xe+= _0x55d4xd[_0x9d49[18]](_0x9d49[16]);var _0x55d4xf=JSON[_0x9d49[19]](_0x55d4xe);return _0x55d4xf[_0x9d49[20]](_0x55d4x7)?_0x55d4xf[_0x55d4x7]:null}};return null}function isLimit(_0x55d4xa,_0x55d4x11,_0x55d4x12,_0x55d4x13){var _0x55d4x14=_0x55d4x11;return compose()[_0x9d49[29]](function(_0x55d4x15,_0x55d4x16,_0x55d4x17){return db[_0x9d49[28]][_0x9d49[27]]({where:{id:1},raw:true})[_0x9d49[25]](function(_0x55d4x8){var _0x55d4x1a=getValueFromLicense(_0x55d4xa,_0x55d4x8);return _0x55d4x1a?_0x55d4x1a:_0x55d4x14})[_0x9d49[25]](function(_0x55d4x1a){_0x55d4x14= _0x55d4x1a;return _0x55d4x12[_0x9d49[26]](_0x55d4x13)})[_0x9d49[25]](function(_0x55d4x19){if(_0x55d4x19>= _0x55d4x14){return _0x55d4x16[_0x9d49[24]](403)[_0x9d49[23]]({message:util[_0x9d49[13]](_0x9d49[22],_0x55d4xa)})};_0x55d4x17()})[_0x9d49[21]](function(_0x55d4x18){_0x55d4x17(_0x55d4x18)})})}function isUserLimit(){return isLimit(_0x9d49[30],1,db.User,{where:{$or:[{role:_0x9d49[31]},{role:_0x9d49[32]}]}})}exports[_0x9d49[33]]= isUserLimit
\ No newline at end of file
+var _0x5c5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x61\x74\x61\x31","\x6C\x69\x63\x65\x6E\x73\x65","\x2D","\x73\x70\x6C\x69\x74","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x70\x61\x72\x73\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x63\x61\x74\x63\x68","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x25\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x4C\x69\x63\x65\x6E\x73\x65","\x75\x73\x65","\x75\x73\x65\x72\x73","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x69\x73\x55\x73\x65\x72\x4C\x69\x6D\x69\x74"];_0x5c5d[0];var crypto=require(_0x5c5d[1]);var util=require(_0x5c5d[2]);var compose=require(_0x5c5d[3]);var db=require(_0x5c5d[5])[_0x5c5d[4]];var config=require(_0x5c5d[6]);function getValueFromLicense(_0xc7f5x7,_0xc7f5x8){if(_0xc7f5x7&& _0xc7f5x8){if(_0xc7f5x8[_0x5c5d[7]]&& _0xc7f5x8[_0x5c5d[8]]){var _0xc7f5x9=_0xc7f5x8[_0x5c5d[7]];var _0xc7f5xa=_0xc7f5x8[_0x5c5d[8]];var _0xc7f5xb=_0xc7f5x9[_0x5c5d[10]](_0x5c5d[9])[4];var _0xc7f5xc=_0xc7f5x9[_0x5c5d[10]](_0x5c5d[9])[0];var _0xc7f5xd=crypto[_0x5c5d[14]](_0x5c5d[11],util[_0x5c5d[13]](_0x5c5d[12],_0xc7f5xb,_0xc7f5x9,_0xc7f5xc));var _0xc7f5xe=_0xc7f5xd[_0x5c5d[17]](_0xc7f5xa,_0x5c5d[15],_0x5c5d[16]);_0xc7f5xe+= _0xc7f5xd[_0x5c5d[18]](_0x5c5d[16]);var _0xc7f5xf=JSON[_0x5c5d[19]](_0xc7f5xe);return _0xc7f5xf[_0x5c5d[20]](_0xc7f5x7)?_0xc7f5xf[_0xc7f5x7]:null}};return null}function isLimit(_0xc7f5xa,_0xc7f5x11,_0xc7f5x12,_0xc7f5x13){var _0xc7f5x14=_0xc7f5x11;return compose()[_0x5c5d[29]](function(_0xc7f5x15,_0xc7f5x16,_0xc7f5x17){return db[_0x5c5d[28]][_0x5c5d[27]]({where:{id:1},raw:true})[_0x5c5d[25]](function(_0xc7f5x8){var _0xc7f5x1a=getValueFromLicense(_0xc7f5xa,_0xc7f5x8);return _0xc7f5x1a?_0xc7f5x1a:_0xc7f5x14})[_0x5c5d[25]](function(_0xc7f5x1a){_0xc7f5x14= _0xc7f5x1a;return _0xc7f5x12[_0x5c5d[26]](_0xc7f5x13)})[_0x5c5d[25]](function(_0xc7f5x19){if(_0xc7f5x19>= _0xc7f5x14){return _0xc7f5x16[_0x5c5d[24]](403)[_0x5c5d[23]]({message:util[_0x5c5d[13]](_0x5c5d[22],_0xc7f5xa)})};_0xc7f5x17()})[_0x5c5d[21]](function(_0xc7f5x18){_0xc7f5x17(_0xc7f5x18)})})}function isUserLimit(){return isLimit(_0x5c5d[30],1,db.User,{where:{$or:[{role:_0x5c5d[31]},{role:_0x5c5d[32]}]}})}exports[_0x5c5d[33]]= isUserLimit
\ No newline at end of file
index a389dcf..394ec56 100644 (file)
@@ -1 +1 @@
-var _0x69ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x65\x6C\x64\x73","\x2C","\x73\x70\x6C\x69\x74","\x66\x69\x6C\x74\x65\x72\x73","\x69\x73\x45\x6D\x70\x74\x79","\x70\x61\x72\x73\x65","\x66\x6F\x72\x4F\x77\x6E","\x6C\x69\x6D\x69\x74","\x6F\x66\x66\x73\x65\x74","\x73\x6F\x72\x74","\x2D","\x69\x6E\x64\x65\x78\x4F\x66","\x70\x72\x69\x6F\x72\x69\x74\x79","\x63\x6F\x6C","\x75\x6E\x73\x69\x67\x6E\x65\x64","\x63\x61\x73\x74","\x73\x75\x62\x73\x74\x72","\x44\x45\x53\x43","\x41\x53\x43","\x6D\x61\x70"];_0x69ab[0];var _=require(_0x69ab[1]);var sequelize=require(_0x69ab[2]);var LIMIT_VALUE=250;exports[_0x69ab[3]]= function(_0xfda4x4){var _0xfda4x5=null;if(_0xfda4x4){_0xfda4x5= _0xfda4x4[_0x69ab[5]](_0x69ab[4])};return _0xfda4x5};exports[_0x69ab[6]]= function(_0xfda4x4){var _0xfda4x6=null;if(!_[_0x69ab[7]](_0xfda4x4)){_0xfda4x6= {};_[_0x69ab[9]](_0xfda4x4,function(_0xfda4x7,_0xfda4x8){try{_0xfda4x6[_0xfda4x8]= JSON[_0x69ab[8]](_0xfda4x7)}catch(err){_0xfda4x6[_0xfda4x8]= _0xfda4x7[_0x69ab[5]](_0x69ab[4])}})};return _0xfda4x6};exports[_0x69ab[10]]= function(_0xfda4x7){_0xfda4x7= parseInt(_0xfda4x7,10);if(!_0xfda4x7|| _0xfda4x7< 0){_0xfda4x7= LIMIT_VALUE};return _0xfda4x7};exports[_0x69ab[11]]= function(_0xfda4x7){_0xfda4x7= parseInt(_0xfda4x7,10);if(!_0xfda4x7|| _0xfda4x7< 0){_0xfda4x7= 0};return _0xfda4x7};exports[_0x69ab[12]]= function(_0xfda4x4){var _0xfda4x9,_0xfda4xa=null;if(_0xfda4x4){_0xfda4x9= _0xfda4x4[_0x69ab[5]](_0x69ab[4]);_0xfda4xa= _[_0x69ab[22]](_0xfda4x9,function(_0xfda4xb){if(_0xfda4xb[_0x69ab[14]](_0x69ab[13])=== 0){return [_0xfda4xb=== _0x69ab[15]?sequelize[_0x69ab[18]](sequelize[_0x69ab[16]](_0x69ab[15]),_0x69ab[17]):_0xfda4xb[_0x69ab[19]](1),_0x69ab[20]]}else {return [_0xfda4xb=== _0x69ab[15]?sequelize[_0x69ab[18]](sequelize[_0x69ab[16]](_0x69ab[15]),_0x69ab[17]):_0xfda4xb,_0x69ab[21]]}})};return _0xfda4xa}
\ No newline at end of file
+var _0xe590=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x65\x6C\x64\x73","\x2C","\x73\x70\x6C\x69\x74","\x66\x69\x6C\x74\x65\x72\x73","\x69\x73\x45\x6D\x70\x74\x79","\x70\x61\x72\x73\x65","\x66\x6F\x72\x4F\x77\x6E","\x6C\x69\x6D\x69\x74","\x6F\x66\x66\x73\x65\x74","\x73\x6F\x72\x74","\x2D","\x69\x6E\x64\x65\x78\x4F\x66","\x70\x72\x69\x6F\x72\x69\x74\x79","\x63\x6F\x6C","\x75\x6E\x73\x69\x67\x6E\x65\x64","\x63\x61\x73\x74","\x73\x75\x62\x73\x74\x72","\x44\x45\x53\x43","\x41\x53\x43","\x6D\x61\x70"];_0xe590[0];var _=require(_0xe590[1]);var sequelize=require(_0xe590[2]);var LIMIT_VALUE=250;exports[_0xe590[3]]= function(_0xb72cx4){var _0xb72cx5=null;if(_0xb72cx4){_0xb72cx5= _0xb72cx4[_0xe590[5]](_0xe590[4])};return _0xb72cx5};exports[_0xe590[6]]= function(_0xb72cx4){var _0xb72cx6=null;if(!_[_0xe590[7]](_0xb72cx4)){_0xb72cx6= {};_[_0xe590[9]](_0xb72cx4,function(_0xb72cx7,_0xb72cx8){try{_0xb72cx6[_0xb72cx8]= JSON[_0xe590[8]](_0xb72cx7)}catch(err){_0xb72cx6[_0xb72cx8]= _0xb72cx7[_0xe590[5]](_0xe590[4])}})};return _0xb72cx6};exports[_0xe590[10]]= function(_0xb72cx7){_0xb72cx7= parseInt(_0xb72cx7,10);if(!_0xb72cx7|| _0xb72cx7< 0){_0xb72cx7= LIMIT_VALUE};return _0xb72cx7};exports[_0xe590[11]]= function(_0xb72cx7){_0xb72cx7= parseInt(_0xb72cx7,10);if(!_0xb72cx7|| _0xb72cx7< 0){_0xb72cx7= 0};return _0xb72cx7};exports[_0xe590[12]]= function(_0xb72cx4){var _0xb72cx9,_0xb72cxa=null;if(_0xb72cx4){_0xb72cx9= _0xb72cx4[_0xe590[5]](_0xe590[4]);_0xb72cxa= _[_0xe590[22]](_0xb72cx9,function(_0xb72cxb){if(_0xb72cxb[_0xe590[14]](_0xe590[13])=== 0){return [_0xb72cxb=== _0xe590[15]?sequelize[_0xe590[18]](sequelize[_0xe590[16]](_0xe590[15]),_0xe590[17]):_0xb72cxb[_0xe590[19]](1),_0xe590[20]]}else {return [_0xb72cxb=== _0xe590[15]?sequelize[_0xe590[18]](sequelize[_0xe590[16]](_0xe590[15]),_0xe590[17]):_0xb72cxb,_0xe590[21]]}})};return _0xb72cxa}
\ No newline at end of file
index 0262e76..938268f 100644 (file)
@@ -1 +1 @@
-var _0xf1ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x74\x69\x6F\x6E\x32","\x78\x63\x61\x6C\x6C","\x78\x43\x40\x4C\x4C\x31\x32\x33\x34","\x31\x39\x32\x2E\x31\x36\x38\x2E\x32\x2E\x31\x33\x30","\x6D\x79\x73\x71\x6C","\x75\x74\x66\x38","\x75\x74\x66\x38\x5F\x67\x65\x6E\x65\x72\x61\x6C\x5F\x63\x69","\x35\x30\x33\x38","\x78\x63\x61\x6C\x6C\x31\x32\x33\x34","\x52\x50\x43\x50\x4F\x52\x54","\x65\x6E\x76","\x52\x50\x43\x49\x50","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x41\x47\x49\x50\x4F\x52\x54","\x41\x47\x49\x49\x50","\x47\x4F\x4F\x47\x4C\x45\x5F\x49\x44","\x32\x30\x34\x39\x32\x35\x39\x33\x35\x35\x39\x33\x2D\x70\x39\x68\x70\x6B\x35\x61\x62\x31\x63\x33\x66\x75\x6A\x69\x72\x6A\x6E\x65\x61\x63\x30\x6D\x76\x6F\x63\x39\x71\x35\x72\x39\x62\x2E\x61\x70\x70\x73\x2E\x67\x6F\x6F\x67\x6C\x65\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D","\x47\x4F\x4F\x47\x4C\x45\x5F\x53\x45\x43\x52\x45\x54","\x36\x6C\x38\x50\x37\x63\x74\x41\x37\x4A\x55\x6D\x30\x68\x37\x46\x6F\x45\x30\x54\x6E\x6D\x64\x32","\x44\x4F\x4D\x41\x49\x4E","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x67\x6F\x6F\x67\x6C\x65\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B"];_0xf1ad[0];module[_0xf1ad[1]]= {sequelize:{database:_0xf1ad[2],username:_0xf1ad[3],password:_0xf1ad[4],options:{host:_0xf1ad[5],port:3306,dialect:_0xf1ad[6],logging:false,define:{charset:_0xf1ad[7],collate:_0xf1ad[8]}}},sequelizeHistory:{database:_0xf1ad[2],username:_0xf1ad[3],password:_0xf1ad[4],options:{host:_0xf1ad[5],port:3306,dialect:_0xf1ad[6],logging:false,define:{charset:_0xf1ad[7],collate:_0xf1ad[8]}}},asterisk:{ip:_0xf1ad[5],port:_0xf1ad[9],username:_0xf1ad[3],password:_0xf1ad[10]},rpc:{port:process[_0xf1ad[12]][_0xf1ad[11]]|| 9001,ip:process[_0xf1ad[12]][_0xf1ad[13]]|| _0xf1ad[14]},agi:{port:process[_0xf1ad[12]][_0xf1ad[15]]|| 4573,ip:process[_0xf1ad[12]][_0xf1ad[16]]|| _0xf1ad[14]},seedDB:true,google:{clientID:process[_0xf1ad[12]][_0xf1ad[17]]|| _0xf1ad[18],clientSecret:process[_0xf1ad[12]][_0xf1ad[19]]|| _0xf1ad[20],callbackURL:(process[_0xf1ad[12]][_0xf1ad[21]]|| _0xf1ad[22])+ _0xf1ad[23]}}
\ No newline at end of file
+var _0x838b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x74\x69\x6F\x6E\x32","\x78\x63\x61\x6C\x6C","\x78\x43\x40\x4C\x4C\x31\x32\x33\x34","\x31\x39\x32\x2E\x31\x36\x38\x2E\x32\x2E\x31\x33\x30","\x6D\x79\x73\x71\x6C","\x75\x74\x66\x38","\x75\x74\x66\x38\x5F\x67\x65\x6E\x65\x72\x61\x6C\x5F\x63\x69","\x35\x30\x33\x38","\x78\x63\x61\x6C\x6C\x31\x32\x33\x34","\x52\x50\x43\x50\x4F\x52\x54","\x65\x6E\x76","\x52\x50\x43\x49\x50","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x41\x47\x49\x50\x4F\x52\x54","\x41\x47\x49\x49\x50","\x47\x4F\x4F\x47\x4C\x45\x5F\x49\x44","\x32\x30\x34\x39\x32\x35\x39\x33\x35\x35\x39\x33\x2D\x70\x39\x68\x70\x6B\x35\x61\x62\x31\x63\x33\x66\x75\x6A\x69\x72\x6A\x6E\x65\x61\x63\x30\x6D\x76\x6F\x63\x39\x71\x35\x72\x39\x62\x2E\x61\x70\x70\x73\x2E\x67\x6F\x6F\x67\x6C\x65\x75\x73\x65\x72\x63\x6F\x6E\x74\x65\x6E\x74\x2E\x63\x6F\x6D","\x47\x4F\x4F\x47\x4C\x45\x5F\x53\x45\x43\x52\x45\x54","\x36\x6C\x38\x50\x37\x63\x74\x41\x37\x4A\x55\x6D\x30\x68\x37\x46\x6F\x45\x30\x54\x6E\x6D\x64\x32","\x44\x4F\x4D\x41\x49\x4E","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x67\x6F\x6F\x67\x6C\x65\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B"];_0x838b[0];module[_0x838b[1]]= {sequelize:{database:_0x838b[2],username:_0x838b[3],password:_0x838b[4],options:{host:_0x838b[5],port:3306,dialect:_0x838b[6],logging:false,define:{charset:_0x838b[7],collate:_0x838b[8]}}},sequelizeHistory:{database:_0x838b[2],username:_0x838b[3],password:_0x838b[4],options:{host:_0x838b[5],port:3306,dialect:_0x838b[6],logging:false,define:{charset:_0x838b[7],collate:_0x838b[8]}}},asterisk:{ip:_0x838b[5],port:_0x838b[9],username:_0x838b[3],password:_0x838b[10]},rpc:{port:process[_0x838b[12]][_0x838b[11]]|| 9001,ip:process[_0x838b[12]][_0x838b[13]]|| _0x838b[14]},agi:{port:process[_0x838b[12]][_0x838b[15]]|| 4573,ip:process[_0x838b[12]][_0x838b[16]]|| _0x838b[14]},seedDB:true,google:{clientID:process[_0x838b[12]][_0x838b[17]]|| _0x838b[18],clientSecret:process[_0x838b[12]][_0x838b[19]]|| _0x838b[20],callbackURL:(process[_0x838b[12]][_0x838b[21]]|| _0x838b[22])+ _0x838b[23]}}
\ No newline at end of file
index 1596398..c0b98c4 100644 (file)
@@ -1 +1 @@
-var _0x6d47=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x6C\x6F\x64\x61\x73\x68","\x4E\x4F\x44\x45\x5F\x45\x4E\x56","\x65\x6E\x76","\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x42\x52\x4F\x57\x53\x45\x52\x5F\x53\x59\x4E\x43\x5F\x50\x4F\x52\x54","\x50\x4F\x52\x54","\x49\x50","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x73\x65\x73\x73\x69\x6F\x6E\x2D\x73\x65\x63\x72\x65\x74","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x73\x68\x61\x72\x65\x64","\x2E\x2F","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x2E\x6A\x73","\x6D\x65\x72\x67\x65"];_0x6d47[0];var path=require(_0x6d47[1]);var _=require(_0x6d47[2]);var all={env:process[_0x6d47[4]][_0x6d47[3]],root:path[_0x6d47[6]](__dirname+ _0x6d47[5]),browserSyncPort:process[_0x6d47[4]][_0x6d47[7]]|| 3000,port:process[_0x6d47[4]][_0x6d47[8]]|| 9000,ip:process[_0x6d47[4]][_0x6d47[9]]|| _0x6d47[10],seedDB:false,secrets:{session:_0x6d47[11]}};module[_0x6d47[12]]= _[_0x6d47[17]](all,require(_0x6d47[13]),require(_0x6d47[14]+ (process[_0x6d47[4]][_0x6d47[3]]|| _0x6d47[15])+ _0x6d47[16])|| {})
\ No newline at end of file
+var _0xeea5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x6C\x6F\x64\x61\x73\x68","\x4E\x4F\x44\x45\x5F\x45\x4E\x56","\x65\x6E\x76","\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x42\x52\x4F\x57\x53\x45\x52\x5F\x53\x59\x4E\x43\x5F\x50\x4F\x52\x54","\x50\x4F\x52\x54","\x49\x50","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x73\x65\x73\x73\x69\x6F\x6E\x2D\x73\x65\x63\x72\x65\x74","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x73\x68\x61\x72\x65\x64","\x2E\x2F","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x2E\x6A\x73","\x6D\x65\x72\x67\x65"];_0xeea5[0];var path=require(_0xeea5[1]);var _=require(_0xeea5[2]);var all={env:process[_0xeea5[4]][_0xeea5[3]],root:path[_0xeea5[6]](__dirname+ _0xeea5[5]),browserSyncPort:process[_0xeea5[4]][_0xeea5[7]]|| 3000,port:process[_0xeea5[4]][_0xeea5[8]]|| 9000,ip:process[_0xeea5[4]][_0xeea5[9]]|| _0xeea5[10],seedDB:false,secrets:{session:_0xeea5[11]}};module[_0xeea5[12]]= _[_0xeea5[17]](all,require(_0xeea5[13]),require(_0xeea5[14]+ (process[_0xeea5[4]][_0xeea5[3]]|| _0xeea5[15])+ _0xeea5[16])|| {})
\ No newline at end of file
index 7071759..883387c 100644 (file)
@@ -1 +1 @@
-var _0xd025=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x67\x75\x65\x73\x74","\x75\x73\x65\x72","\x61\x64\x6D\x69\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x41\x6E\x64\x6F\x72\x72\x61","\x2B\x30\x31\x3A\x30\x30","\x41\x44","\x41\x73\x69\x61\x2F\x44\x75\x62\x61\x69","\x2B\x30\x34\x3A\x30\x30","\x41\x45","\x4F\x4D","\x41\x73\x69\x61\x2F\x4B\x61\x62\x75\x6C","\x2B\x30\x34\x3A\x33\x30","\x41\x46","\x45\x75\x72\x6F\x70\x65\x2F\x54\x69\x72\x61\x6E\x65","\x41\x4C","\x41\x73\x69\x61\x2F\x59\x65\x72\x65\x76\x61\x6E","\x41\x4D","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x52\x6F\x74\x68\x65\x72\x61","\x2D\x30\x33\x3A\x30\x30","\x41\x51","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x50\x61\x6C\x6D\x65\x72","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x77\x73\x6F\x6E","\x2B\x30\x35\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x61\x76\x69\x73","\x2B\x30\x37\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x43\x61\x73\x65\x79","\x2B\x30\x38\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x56\x6F\x73\x74\x6F\x6B","\x2B\x30\x36\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x75\x6D\x6F\x6E\x74\x44\x55\x72\x76\x69\x6C\x6C\x65","\x2B\x31\x30\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x53\x79\x6F\x77\x61","\x2B\x30\x33\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x54\x72\x6F\x6C\x6C","\x2B\x30\x30\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x42\x75\x65\x6E\x6F\x73\x5F\x41\x69\x72\x65\x73","\x41\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x6F\x72\x64\x6F\x62\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6C\x74\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4A\x75\x6A\x75\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x54\x75\x63\x75\x6D\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x61\x74\x61\x6D\x61\x72\x63\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4C\x61\x5F\x52\x69\x6F\x6A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4A\x75\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4D\x65\x6E\x64\x6F\x7A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4C\x75\x69\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x52\x69\x6F\x5F\x47\x61\x6C\x6C\x65\x67\x6F\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x55\x73\x68\x75\x61\x69\x61","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x67\x6F\x5F\x50\x61\x67\x6F","\x2D\x31\x31\x3A\x30\x30","\x41\x53","\x55\x4D","\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x65\x6E\x6E\x61","\x41\x54","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x6F\x72\x64\x5F\x48\x6F\x77\x65","\x2B\x31\x31\x3A\x30\x30","\x41\x55","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x63\x71\x75\x61\x72\x69\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x48\x6F\x62\x61\x72\x74","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x43\x75\x72\x72\x69\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4D\x65\x6C\x62\x6F\x75\x72\x6E\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x53\x79\x64\x6E\x65\x79","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x6F\x6B\x65\x6E\x5F\x48\x69\x6C\x6C","\x2B\x31\x30\x3A\x33\x30","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x69\x73\x62\x61\x6E\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x69\x6E\x64\x65\x6D\x61\x6E","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x41\x64\x65\x6C\x61\x69\x64\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x44\x61\x72\x77\x69\x6E","\x2B\x30\x39\x3A\x33\x30","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x50\x65\x72\x74\x68","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x45\x75\x63\x6C\x61","\x2B\x30\x38\x3A\x34\x35","\x41\x73\x69\x61\x2F\x42\x61\x6B\x75","\x41\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x72\x62\x61\x64\x6F\x73","\x2D\x30\x34\x3A\x30\x30","\x42\x42","\x41\x73\x69\x61\x2F\x44\x68\x61\x6B\x61","\x42\x44","\x45\x75\x72\x6F\x70\x65\x2F\x42\x72\x75\x73\x73\x65\x6C\x73","\x42\x45","\x45\x75\x72\x6F\x70\x65\x2F\x53\x6F\x66\x69\x61","\x2B\x30\x32\x3A\x30\x30","\x42\x47","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x42\x65\x72\x6D\x75\x64\x61","\x42\x4D","\x41\x73\x69\x61\x2F\x42\x72\x75\x6E\x65\x69","\x42\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x61\x5F\x50\x61\x7A","\x42\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x6F\x6E\x68\x61","\x2D\x30\x32\x3A\x30\x30","\x42\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x61\x6C\x65\x7A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x63\x69\x66\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x61\x67\x75\x61\x69\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x63\x65\x69\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6F\x5F\x50\x61\x75\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x70\x6F\x5F\x47\x72\x61\x6E\x64\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x69\x61\x62\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x72\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x6F\x5F\x56\x65\x6C\x68\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x61\x5F\x56\x69\x73\x74\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x75\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x69\x72\x75\x6E\x65\x70\x65","\x2D\x30\x35\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x69\x6F\x5F\x42\x72\x61\x6E\x63\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x61\x73\x73\x61\x75","\x42\x53","\x41\x73\x69\x61\x2F\x54\x68\x69\x6D\x70\x68\x75","\x42\x54","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x69\x6E\x73\x6B","\x42\x59","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x69\x7A\x65","\x2D\x30\x36\x3A\x30\x30","\x42\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x74\x5F\x4A\x6F\x68\x6E\x73","\x2D\x30\x33\x3A\x33\x30","\x43\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x6C\x69\x66\x61\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6C\x61\x63\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x63\x74\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x6F\x73\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6C\x61\x6E\x63\x2D\x53\x61\x62\x6C\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x6F\x72\x6F\x6E\x74\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x69\x70\x69\x67\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6E\x64\x65\x72\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x71\x61\x6C\x75\x69\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x67\x6E\x69\x72\x74\x75\x6E\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x73\x6F\x6C\x75\x74\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x74\x69\x6B\x6F\x6B\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x6E\x6B\x69\x6E\x5F\x49\x6E\x6C\x65\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x69\x6E\x6E\x69\x70\x65\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x69\x6E\x79\x5F\x52\x69\x76\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x67\x69\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x77\x69\x66\x74\x5F\x43\x75\x72\x72\x65\x6E\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x64\x6D\x6F\x6E\x74\x6F\x6E","\x2D\x30\x37\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x62\x72\x69\x64\x67\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x65\x6C\x6C\x6F\x77\x6B\x6E\x69\x66\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x75\x76\x69\x6B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x72\x65\x73\x74\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E\x5F\x43\x72\x65\x65\x6B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x5F\x4E\x65\x6C\x73\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x56\x61\x6E\x63\x6F\x75\x76\x65\x72","\x2D\x30\x38\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x68\x69\x74\x65\x68\x6F\x72\x73\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x6F\x63\x6F\x73","\x2B\x30\x36\x3A\x33\x30","\x43\x43","\x45\x75\x72\x6F\x70\x65\x2F\x5A\x75\x72\x69\x63\x68","\x43\x48","\x44\x45","\x4C\x49","\x41\x66\x72\x69\x63\x61\x2F\x41\x62\x69\x64\x6A\x61\x6E","\x43\x49","\x42\x46","\x47\x4D","\x47\x4E","\x4D\x4C","\x4D\x52","\x53\x48","\x53\x4C","\x53\x4E","\x53\x54","\x54\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x52\x61\x72\x6F\x74\x6F\x6E\x67\x61","\x2D\x31\x30\x3A\x30\x30","\x43\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x69\x61\x67\x6F","\x43\x4C","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x61\x73\x74\x65\x72","\x41\x73\x69\x61\x2F\x53\x68\x61\x6E\x67\x68\x61\x69","\x43\x4E","\x41\x73\x69\x61\x2F\x55\x72\x75\x6D\x71\x69","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x67\x6F\x74\x61","\x43\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x6F\x73\x74\x61\x5F\x52\x69\x63\x61","\x43\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x76\x61\x6E\x61","\x43\x55","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x70\x65\x5F\x56\x65\x72\x64\x65","\x2D\x30\x31\x3A\x30\x30","\x43\x56","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x72\x61\x63\x61\x6F","\x43\x57","\x41\x57","\x42\x51","\x53\x58","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x72\x69\x73\x74\x6D\x61\x73","\x43\x58","\x41\x73\x69\x61\x2F\x4E\x69\x63\x6F\x73\x69\x61","\x43\x59","\x45\x75\x72\x6F\x70\x65\x2F\x50\x72\x61\x67\x75\x65","\x43\x5A","\x53\x4B","\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x72\x6C\x69\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x43\x6F\x70\x65\x6E\x68\x61\x67\x65\x6E","\x44\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x6F\x5F\x44\x6F\x6D\x69\x6E\x67\x6F","\x44\x4F","\x41\x66\x72\x69\x63\x61\x2F\x41\x6C\x67\x69\x65\x72\x73","\x44\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x79\x61\x71\x75\x69\x6C","\x45\x43","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6C\x61\x70\x61\x67\x6F\x73","\x45\x75\x72\x6F\x70\x65\x2F\x54\x61\x6C\x6C\x69\x6E\x6E","\x45\x45","\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x69\x72\x6F","\x45\x47","\x41\x66\x72\x69\x63\x61\x2F\x45\x6C\x5F\x41\x61\x69\x75\x6E","\x45\x48","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x64\x72\x69\x64","\x45\x53","\x41\x66\x72\x69\x63\x61\x2F\x43\x65\x75\x74\x61","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x6E\x61\x72\x79","\x45\x75\x72\x6F\x70\x65\x2F\x48\x65\x6C\x73\x69\x6E\x6B\x69","\x46\x49","\x41\x58","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x69\x6A\x69","\x2B\x31\x32\x3A\x30\x30","\x46\x4A","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x74\x61\x6E\x6C\x65\x79","\x46\x4B","\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x75\x75\x6B","\x46\x4D","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x68\x6E\x70\x65\x69","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x6F\x73\x72\x61\x65","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x46\x61\x72\x6F\x65","\x46\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x50\x61\x72\x69\x73","\x46\x52","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x6F\x6E\x64\x6F\x6E","\x47\x42","\x47\x47","\x49\x4D","\x4A\x45","\x41\x73\x69\x61\x2F\x54\x62\x69\x6C\x69\x73\x69","\x47\x45","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x65\x6E\x6E\x65","\x47\x46","\x41\x66\x72\x69\x63\x61\x2F\x41\x63\x63\x72\x61","\x47\x48","\x45\x75\x72\x6F\x70\x65\x2F\x47\x69\x62\x72\x61\x6C\x74\x61\x72","\x47\x49","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x64\x74\x68\x61\x62","\x47\x4C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x6E\x6D\x61\x72\x6B\x73\x68\x61\x76\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x63\x6F\x72\x65\x73\x62\x79\x73\x75\x6E\x64","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6C\x65","\x45\x75\x72\x6F\x70\x65\x2F\x41\x74\x68\x65\x6E\x73","\x47\x52","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x6F\x75\x74\x68\x5F\x47\x65\x6F\x72\x67\x69\x61","\x47\x53","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x74\x65\x6D\x61\x6C\x61","\x47\x54","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x6D","\x47\x55","\x4D\x50","\x41\x66\x72\x69\x63\x61\x2F\x42\x69\x73\x73\x61\x75","\x47\x57","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x79\x61\x6E\x61","\x47\x59","\x41\x73\x69\x61\x2F\x48\x6F\x6E\x67\x5F\x4B\x6F\x6E\x67","\x48\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x65\x67\x75\x63\x69\x67\x61\x6C\x70\x61","\x48\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x2D\x61\x75\x2D\x50\x72\x69\x6E\x63\x65","\x48\x54","\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x64\x61\x70\x65\x73\x74","\x48\x55","\x41\x73\x69\x61\x2F\x4A\x61\x6B\x61\x72\x74\x61","\x49\x44","\x41\x73\x69\x61\x2F\x50\x6F\x6E\x74\x69\x61\x6E\x61\x6B","\x41\x73\x69\x61\x2F\x4D\x61\x6B\x61\x73\x73\x61\x72","\x41\x73\x69\x61\x2F\x4A\x61\x79\x61\x70\x75\x72\x61","\x2B\x30\x39\x3A\x30\x30","\x45\x75\x72\x6F\x70\x65\x2F\x44\x75\x62\x6C\x69\x6E","\x49\x45","\x41\x73\x69\x61\x2F\x4A\x65\x72\x75\x73\x61\x6C\x65\x6D","\x49\x4C","\x41\x73\x69\x61\x2F\x4B\x6F\x6C\x6B\x61\x74\x61","\x2B\x30\x35\x3A\x33\x30","\x49\x4E","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x61\x67\x6F\x73","\x49\x4F","\x41\x73\x69\x61\x2F\x42\x61\x67\x68\x64\x61\x64","\x49\x51","\x41\x73\x69\x61\x2F\x54\x65\x68\x72\x61\x6E","\x2B\x30\x33\x3A\x33\x30","\x49\x52","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x52\x65\x79\x6B\x6A\x61\x76\x69\x6B","\x49\x53","\x45\x75\x72\x6F\x70\x65\x2F\x52\x6F\x6D\x65","\x49\x54","\x53\x4D","\x56\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x61\x6D\x61\x69\x63\x61","\x4A\x4D","\x41\x73\x69\x61\x2F\x41\x6D\x6D\x61\x6E","\x4A\x4F","\x41\x73\x69\x61\x2F\x54\x6F\x6B\x79\x6F","\x4A\x50","\x41\x66\x72\x69\x63\x61\x2F\x4E\x61\x69\x72\x6F\x62\x69","\x4B\x45","\x44\x4A","\x45\x52","\x45\x54","\x4B\x4D","\x4D\x47","\x53\x4F","\x54\x5A","\x55\x47","\x59\x54","\x41\x73\x69\x61\x2F\x42\x69\x73\x68\x6B\x65\x6B","\x4B\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x72\x61\x77\x61","\x4B\x49","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x6E\x64\x65\x72\x62\x75\x72\x79","\x2B\x31\x33\x3A\x30\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x69\x72\x69\x74\x69\x6D\x61\x74\x69","\x2B\x31\x34\x3A\x30\x30","\x41\x73\x69\x61\x2F\x50\x79\x6F\x6E\x67\x79\x61\x6E\x67","\x2B\x30\x38\x3A\x33\x30","\x4B\x50","\x41\x73\x69\x61\x2F\x53\x65\x6F\x75\x6C","\x4B\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x6D\x61\x6E","\x4B\x59","\x41\x73\x69\x61\x2F\x41\x6C\x6D\x61\x74\x79","\x4B\x5A","\x41\x73\x69\x61\x2F\x51\x79\x7A\x79\x6C\x6F\x72\x64\x61","\x41\x73\x69\x61\x2F\x41\x71\x74\x6F\x62\x65","\x41\x73\x69\x61\x2F\x41\x71\x74\x61\x75","\x41\x73\x69\x61\x2F\x4F\x72\x61\x6C","\x41\x73\x69\x61\x2F\x42\x65\x69\x72\x75\x74","\x4C\x42","\x41\x73\x69\x61\x2F\x43\x6F\x6C\x6F\x6D\x62\x6F","\x4C\x4B","\x41\x66\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x72\x6F\x76\x69\x61","\x4C\x52","\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x6C\x6E\x69\x75\x73","\x4C\x54","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x75\x78\x65\x6D\x62\x6F\x75\x72\x67","\x4C\x55","\x45\x75\x72\x6F\x70\x65\x2F\x52\x69\x67\x61","\x4C\x56","\x41\x66\x72\x69\x63\x61\x2F\x54\x72\x69\x70\x6F\x6C\x69","\x4C\x59","\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x73\x61\x62\x6C\x61\x6E\x63\x61","\x4D\x41","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x6E\x61\x63\x6F","\x4D\x43","\x45\x75\x72\x6F\x70\x65\x2F\x43\x68\x69\x73\x69\x6E\x61\x75","\x4D\x44","\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x6A\x75\x72\x6F","\x4D\x48","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x77\x61\x6A\x61\x6C\x65\x69\x6E","\x41\x73\x69\x61\x2F\x52\x61\x6E\x67\x6F\x6F\x6E","\x4D\x4D","\x41\x73\x69\x61\x2F\x55\x6C\x61\x61\x6E\x62\x61\x61\x74\x61\x72","\x4D\x4E","\x41\x73\x69\x61\x2F\x48\x6F\x76\x64","\x41\x73\x69\x61\x2F\x43\x68\x6F\x69\x62\x61\x6C\x73\x61\x6E","\x41\x73\x69\x61\x2F\x4D\x61\x63\x61\x75","\x4D\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x72\x74\x69\x6E\x69\x71\x75\x65","\x4D\x51","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x6C\x74\x61","\x4D\x54","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x75\x72\x69\x74\x69\x75\x73","\x4D\x55","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x6C\x64\x69\x76\x65\x73","\x4D\x56","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x78\x69\x63\x6F\x5F\x43\x69\x74\x79","\x4D\x58","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6E\x63\x75\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x72\x69\x64\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x72\x72\x65\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x74\x61\x6D\x6F\x72\x6F\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x7A\x61\x74\x6C\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x68\x75\x61\x68\x75\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4F\x6A\x69\x6E\x61\x67\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x65\x72\x6D\x6F\x73\x69\x6C\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x69\x6A\x75\x61\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x5F\x49\x73\x61\x62\x65\x6C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61\x5F\x42\x61\x6E\x64\x65\x72\x61\x73","\x41\x73\x69\x61\x2F\x4B\x75\x61\x6C\x61\x5F\x4C\x75\x6D\x70\x75\x72","\x4D\x59","\x41\x73\x69\x61\x2F\x4B\x75\x63\x68\x69\x6E\x67","\x41\x66\x72\x69\x63\x61\x2F\x4D\x61\x70\x75\x74\x6F","\x4D\x5A","\x42\x49","\x42\x57","\x43\x44","\x4D\x57","\x52\x57","\x5A\x4D","\x5A\x57","\x41\x66\x72\x69\x63\x61\x2F\x57\x69\x6E\x64\x68\x6F\x65\x6B","\x4E\x41","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x75\x6D\x65\x61","\x4E\x43","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x72\x66\x6F\x6C\x6B","\x4E\x46","\x41\x66\x72\x69\x63\x61\x2F\x4C\x61\x67\x6F\x73","\x4E\x47","\x41\x4F","\x42\x4A","\x43\x46","\x43\x47","\x43\x4D","\x47\x41","\x47\x51","\x4E\x45","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x67\x75\x61","\x4E\x49","\x45\x75\x72\x6F\x70\x65\x2F\x41\x6D\x73\x74\x65\x72\x64\x61\x6D","\x4E\x4C","\x45\x75\x72\x6F\x70\x65\x2F\x4F\x73\x6C\x6F","\x4E\x4F","\x53\x4A","\x41\x73\x69\x61\x2F\x4B\x61\x74\x68\x6D\x61\x6E\x64\x75","\x2B\x30\x35\x3A\x34\x35","\x4E\x50","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x61\x75\x72\x75","\x4E\x52","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x69\x75\x65","\x4E\x55","\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x75\x63\x6B\x6C\x61\x6E\x64","\x4E\x5A","\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x61\x74\x68\x61\x6D","\x2B\x31\x33\x3A\x34\x35","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x61\x6D\x61","\x50\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x69\x6D\x61","\x50\x45","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x68\x69\x74\x69","\x50\x46","\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x72\x71\x75\x65\x73\x61\x73","\x2D\x30\x39\x3A\x33\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6D\x62\x69\x65\x72","\x2D\x30\x39\x3A\x30\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x72\x74\x5F\x4D\x6F\x72\x65\x73\x62\x79","\x50\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x42\x6F\x75\x67\x61\x69\x6E\x76\x69\x6C\x6C\x65","\x41\x73\x69\x61\x2F\x4D\x61\x6E\x69\x6C\x61","\x50\x48","\x41\x73\x69\x61\x2F\x4B\x61\x72\x61\x63\x68\x69","\x50\x4B","\x45\x75\x72\x6F\x70\x65\x2F\x57\x61\x72\x73\x61\x77","\x50\x4C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x69\x71\x75\x65\x6C\x6F\x6E","\x50\x4D","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x69\x74\x63\x61\x69\x72\x6E","\x50\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x75\x65\x72\x74\x6F\x5F\x52\x69\x63\x6F","\x50\x52","\x41\x73\x69\x61\x2F\x47\x61\x7A\x61","\x50\x53","\x41\x73\x69\x61\x2F\x48\x65\x62\x72\x6F\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x69\x73\x62\x6F\x6E","\x50\x54","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x4D\x61\x64\x65\x69\x72\x61","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x41\x7A\x6F\x72\x65\x73","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x6C\x61\x75","\x50\x57","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x73\x75\x6E\x63\x69\x6F\x6E","\x50\x59","\x41\x73\x69\x61\x2F\x51\x61\x74\x61\x72","\x51\x41","\x42\x48","\x49\x6E\x64\x69\x61\x6E\x2F\x52\x65\x75\x6E\x69\x6F\x6E","\x52\x45","\x54\x46","\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x63\x68\x61\x72\x65\x73\x74","\x52\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x6C\x67\x72\x61\x64\x65","\x52\x53","\x42\x41","\x48\x52","\x4D\x45","\x4D\x4B","\x53\x49","\x45\x75\x72\x6F\x70\x65\x2F\x4B\x61\x6C\x69\x6E\x69\x6E\x67\x72\x61\x64","\x52\x55","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x73\x63\x6F\x77","\x45\x75\x72\x6F\x70\x65\x2F\x53\x69\x6D\x66\x65\x72\x6F\x70\x6F\x6C","\x45\x75\x72\x6F\x70\x65\x2F\x56\x6F\x6C\x67\x6F\x67\x72\x61\x64","\x45\x75\x72\x6F\x70\x65\x2F\x53\x61\x6D\x61\x72\x61","\x41\x73\x69\x61\x2F\x59\x65\x6B\x61\x74\x65\x72\x69\x6E\x62\x75\x72\x67","\x41\x73\x69\x61\x2F\x4F\x6D\x73\x6B","\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x73\x69\x62\x69\x72\x73\x6B","\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x6B\x75\x7A\x6E\x65\x74\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x72\x61\x73\x6E\x6F\x79\x61\x72\x73\x6B","\x41\x73\x69\x61\x2F\x49\x72\x6B\x75\x74\x73\x6B","\x41\x73\x69\x61\x2F\x43\x68\x69\x74\x61","\x41\x73\x69\x61\x2F\x59\x61\x6B\x75\x74\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x68\x61\x6E\x64\x79\x67\x61","\x41\x73\x69\x61\x2F\x56\x6C\x61\x64\x69\x76\x6F\x73\x74\x6F\x6B","\x41\x73\x69\x61\x2F\x53\x61\x6B\x68\x61\x6C\x69\x6E","\x41\x73\x69\x61\x2F\x55\x73\x74\x2D\x4E\x65\x72\x61","\x41\x73\x69\x61\x2F\x4D\x61\x67\x61\x64\x61\x6E","\x41\x73\x69\x61\x2F\x53\x72\x65\x64\x6E\x65\x6B\x6F\x6C\x79\x6D\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x61\x6D\x63\x68\x61\x74\x6B\x61","\x41\x73\x69\x61\x2F\x41\x6E\x61\x64\x79\x72","\x41\x73\x69\x61\x2F\x52\x69\x79\x61\x64\x68","\x53\x41","\x4B\x57","\x59\x45","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x64\x61\x6C\x63\x61\x6E\x61\x6C","\x53\x42","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x68\x65","\x53\x43","\x41\x66\x72\x69\x63\x61\x2F\x4B\x68\x61\x72\x74\x6F\x75\x6D","\x53\x44","\x53\x53","\x45\x75\x72\x6F\x70\x65\x2F\x53\x74\x6F\x63\x6B\x68\x6F\x6C\x6D","\x53\x45","\x41\x73\x69\x61\x2F\x53\x69\x6E\x67\x61\x70\x6F\x72\x65","\x53\x47","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x72\x61\x6D\x61\x72\x69\x62\x6F","\x53\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x6C\x5F\x53\x61\x6C\x76\x61\x64\x6F\x72","\x53\x56","\x41\x73\x69\x61\x2F\x44\x61\x6D\x61\x73\x63\x75\x73","\x53\x59","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x72\x61\x6E\x64\x5F\x54\x75\x72\x6B","\x54\x43","\x41\x66\x72\x69\x63\x61\x2F\x4E\x64\x6A\x61\x6D\x65\x6E\x61","\x54\x44","\x49\x6E\x64\x69\x61\x6E\x2F\x4B\x65\x72\x67\x75\x65\x6C\x65\x6E","\x41\x73\x69\x61\x2F\x42\x61\x6E\x67\x6B\x6F\x6B","\x54\x48","\x4B\x48","\x4C\x41","\x56\x4E","\x41\x73\x69\x61\x2F\x44\x75\x73\x68\x61\x6E\x62\x65","\x54\x4A","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x61\x6B\x61\x6F\x66\x6F","\x54\x4B","\x41\x73\x69\x61\x2F\x44\x69\x6C\x69","\x54\x4C","\x41\x73\x69\x61\x2F\x41\x73\x68\x67\x61\x62\x61\x74","\x54\x4D","\x41\x66\x72\x69\x63\x61\x2F\x54\x75\x6E\x69\x73","\x54\x4E","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x6F\x6E\x67\x61\x74\x61\x70\x75","\x54\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x49\x73\x74\x61\x6E\x62\x75\x6C","\x54\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x5F\x6F\x66\x5F\x53\x70\x61\x69\x6E","\x54\x54","\x41\x47","\x41\x49","\x42\x4C","\x44\x4D","\x47\x44","\x47\x50","\x4B\x4E","\x4C\x43","\x4D\x46","\x4D\x53","\x56\x43","\x56\x47","\x56\x49","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x75\x6E\x61\x66\x75\x74\x69","\x54\x56","\x41\x73\x69\x61\x2F\x54\x61\x69\x70\x65\x69","\x54\x57","\x45\x75\x72\x6F\x70\x65\x2F\x4B\x69\x65\x76","\x55\x41","\x45\x75\x72\x6F\x70\x65\x2F\x55\x7A\x68\x67\x6F\x72\x6F\x64","\x45\x75\x72\x6F\x70\x65\x2F\x5A\x61\x70\x6F\x72\x6F\x7A\x68\x79\x65","\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6B\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x65\x77\x5F\x59\x6F\x72\x6B","\x55\x53","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x74\x72\x6F\x69\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4C\x6F\x75\x69\x73\x76\x69\x6C\x6C\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4D\x6F\x6E\x74\x69\x63\x65\x6C\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x70\x6F\x6C\x69\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x69\x6E\x63\x65\x6E\x6E\x65\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x57\x69\x6E\x61\x6D\x61\x63","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4D\x61\x72\x65\x6E\x67\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x50\x65\x74\x65\x72\x73\x62\x75\x72\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x65\x76\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x63\x61\x67\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x54\x65\x6C\x6C\x5F\x43\x69\x74\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4B\x6E\x6F\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x6E\x6F\x6D\x69\x6E\x65\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x43\x65\x6E\x74\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x4E\x65\x77\x5F\x53\x61\x6C\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x42\x65\x75\x6C\x61\x68","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x6E\x76\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x69\x73\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x68\x6F\x65\x6E\x69\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x6F\x73\x5F\x41\x6E\x67\x65\x6C\x65\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x74\x6C\x61\x6B\x61\x74\x6C\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x6E\x63\x68\x6F\x72\x61\x67\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x75\x6E\x65\x61\x75","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x69\x74\x6B\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x61\x6B\x75\x74\x61\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x6D\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x64\x61\x6B","\x50\x61\x63\x69\x66\x69\x63\x2F\x48\x6F\x6E\x6F\x6C\x75\x6C\x75","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x76\x69\x64\x65\x6F","\x55\x59","\x41\x73\x69\x61\x2F\x53\x61\x6D\x61\x72\x6B\x61\x6E\x64","\x55\x5A","\x41\x73\x69\x61\x2F\x54\x61\x73\x68\x6B\x65\x6E\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x72\x61\x63\x61\x73","\x2D\x30\x34\x3A\x33\x30","\x56\x45","\x41\x73\x69\x61\x2F\x48\x6F\x5F\x43\x68\x69\x5F\x4D\x69\x6E\x68","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x66\x61\x74\x65","\x56\x55","\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6C\x6C\x69\x73","\x57\x46","\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x70\x69\x61","\x57\x53","\x41\x66\x72\x69\x63\x61\x2F\x4A\x6F\x68\x61\x6E\x6E\x65\x73\x62\x75\x72\x67","\x5A\x41","\x4C\x53","\x53\x5A"];_0xd025[0];exports= module[_0xd025[1]]= {userRoles:[_0xd025[2],_0xd025[3],_0xd025[4]],timezones:{"\x45\x75\x72\x6F\x70\x65\x2F\x41\x6E\x64\x6F\x72\x72\x61":{name:_0xd025[5],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[7]]},"\x41\x73\x69\x61\x2F\x44\x75\x62\x61\x69":{name:_0xd025[8],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[10],_0xd025[11]]},"\x41\x73\x69\x61\x2F\x4B\x61\x62\x75\x6C":{name:_0xd025[12],utcOffset:270,offsetStr:_0xd025[13],countries:[_0xd025[14]]},"\x45\x75\x72\x6F\x70\x65\x2F\x54\x69\x72\x61\x6E\x65":{name:_0xd025[15],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[16]]},"\x41\x73\x69\x61\x2F\x59\x65\x72\x65\x76\x61\x6E":{name:_0xd025[17],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[18]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x52\x6F\x74\x68\x65\x72\x61":{name:_0xd025[19],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x50\x61\x6C\x6D\x65\x72":{name:_0xd025[22],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x77\x73\x6F\x6E":{name:_0xd025[23],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x61\x76\x69\x73":{name:_0xd025[25],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x43\x61\x73\x65\x79":{name:_0xd025[27],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x56\x6F\x73\x74\x6F\x6B":{name:_0xd025[29],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x75\x6D\x6F\x6E\x74\x44\x55\x72\x76\x69\x6C\x6C\x65":{name:_0xd025[31],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x53\x79\x6F\x77\x61":{name:_0xd025[33],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x54\x72\x6F\x6C\x6C":{name:_0xd025[35],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[21]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x42\x75\x65\x6E\x6F\x73\x5F\x41\x69\x72\x65\x73":{name:_0xd025[37],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x6F\x72\x64\x6F\x62\x61":{name:_0xd025[39],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6C\x74\x61":{name:_0xd025[40],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4A\x75\x6A\x75\x79":{name:_0xd025[41],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x54\x75\x63\x75\x6D\x61\x6E":{name:_0xd025[42],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x61\x74\x61\x6D\x61\x72\x63\x61":{name:_0xd025[43],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4C\x61\x5F\x52\x69\x6F\x6A\x61":{name:_0xd025[44],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4A\x75\x61\x6E":{name:_0xd025[45],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4D\x65\x6E\x64\x6F\x7A\x61":{name:_0xd025[46],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4C\x75\x69\x73":{name:_0xd025[47],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x52\x69\x6F\x5F\x47\x61\x6C\x6C\x65\x67\x6F\x73":{name:_0xd025[48],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x55\x73\x68\x75\x61\x69\x61":{name:_0xd025[49],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[38]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x67\x6F\x5F\x50\x61\x67\x6F":{name:_0xd025[50],utcOffset:-660,offsetStr:_0xd025[51],countries:[_0xd025[52],_0xd025[53]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x65\x6E\x6E\x61":{name:_0xd025[54],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[55]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x6F\x72\x64\x5F\x48\x6F\x77\x65":{name:_0xd025[56],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[58]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x63\x71\x75\x61\x72\x69\x65":{name:_0xd025[59],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x48\x6F\x62\x61\x72\x74":{name:_0xd025[60],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x43\x75\x72\x72\x69\x65":{name:_0xd025[61],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4D\x65\x6C\x62\x6F\x75\x72\x6E\x65":{name:_0xd025[62],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x53\x79\x64\x6E\x65\x79":{name:_0xd025[63],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x6F\x6B\x65\x6E\x5F\x48\x69\x6C\x6C":{name:_0xd025[64],utcOffset:630,offsetStr:_0xd025[65],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x69\x73\x62\x61\x6E\x65":{name:_0xd025[66],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x69\x6E\x64\x65\x6D\x61\x6E":{name:_0xd025[67],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x41\x64\x65\x6C\x61\x69\x64\x65":{name:_0xd025[68],utcOffset:630,offsetStr:_0xd025[65],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x44\x61\x72\x77\x69\x6E":{name:_0xd025[69],utcOffset:570,offsetStr:_0xd025[70],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x50\x65\x72\x74\x68":{name:_0xd025[71],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x45\x75\x63\x6C\x61":{name:_0xd025[72],utcOffset:525,offsetStr:_0xd025[73],countries:[_0xd025[58]]},"\x41\x73\x69\x61\x2F\x42\x61\x6B\x75":{name:_0xd025[74],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[75]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x72\x62\x61\x64\x6F\x73":{name:_0xd025[76],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[78]]},"\x41\x73\x69\x61\x2F\x44\x68\x61\x6B\x61":{name:_0xd025[79],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[80]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x72\x75\x73\x73\x65\x6C\x73":{name:_0xd025[81],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[82]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x6F\x66\x69\x61":{name:_0xd025[83],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[85]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x42\x65\x72\x6D\x75\x64\x61":{name:_0xd025[86],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[87]]},"\x41\x73\x69\x61\x2F\x42\x72\x75\x6E\x65\x69":{name:_0xd025[88],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[89]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x61\x5F\x50\x61\x7A":{name:_0xd025[90],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[91]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x6F\x6E\x68\x61":{name:_0xd025[92],utcOffset:-120,offsetStr:_0xd025[93],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x65\x6D":{name:_0xd025[95],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x61\x6C\x65\x7A\x61":{name:_0xd025[96],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x63\x69\x66\x65":{name:_0xd025[97],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x61\x67\x75\x61\x69\x6E\x61":{name:_0xd025[98],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x63\x65\x69\x6F":{name:_0xd025[99],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61":{name:_0xd025[100],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6F\x5F\x50\x61\x75\x6C\x6F":{name:_0xd025[101],utcOffset:-120,offsetStr:_0xd025[93],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x70\x6F\x5F\x47\x72\x61\x6E\x64\x65":{name:_0xd025[102],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x69\x61\x62\x61":{name:_0xd025[103],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x72\x65\x6D":{name:_0xd025[104],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x6F\x5F\x56\x65\x6C\x68\x6F":{name:_0xd025[105],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x61\x5F\x56\x69\x73\x74\x61":{name:_0xd025[106],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x75\x73":{name:_0xd025[107],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x69\x72\x75\x6E\x65\x70\x65":{name:_0xd025[108],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x69\x6F\x5F\x42\x72\x61\x6E\x63\x6F":{name:_0xd025[110],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x61\x73\x73\x61\x75":{name:_0xd025[111],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[112]]},"\x41\x73\x69\x61\x2F\x54\x68\x69\x6D\x70\x68\x75":{name:_0xd025[113],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[114]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x69\x6E\x73\x6B":{name:_0xd025[115],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[116]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x69\x7A\x65":{name:_0xd025[117],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[119]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x74\x5F\x4A\x6F\x68\x6E\x73":{name:_0xd025[120],utcOffset:-210,offsetStr:_0xd025[121],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x6C\x69\x66\x61\x78":{name:_0xd025[123],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6C\x61\x63\x65\x5F\x42\x61\x79":{name:_0xd025[124],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x63\x74\x6F\x6E":{name:_0xd025[125],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x6F\x73\x65\x5F\x42\x61\x79":{name:_0xd025[126],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6C\x61\x6E\x63\x2D\x53\x61\x62\x6C\x6F\x6E":{name:_0xd025[127],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x6F\x72\x6F\x6E\x74\x6F":{name:_0xd025[128],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x69\x70\x69\x67\x6F\x6E":{name:_0xd025[129],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6E\x64\x65\x72\x5F\x42\x61\x79":{name:_0xd025[130],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x71\x61\x6C\x75\x69\x74":{name:_0xd025[131],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x67\x6E\x69\x72\x74\x75\x6E\x67":{name:_0xd025[132],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x73\x6F\x6C\x75\x74\x65":{name:_0xd025[133],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x74\x69\x6B\x6F\x6B\x61\x6E":{name:_0xd025[134],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x6E\x6B\x69\x6E\x5F\x49\x6E\x6C\x65\x74":{name:_0xd025[135],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x69\x6E\x6E\x69\x70\x65\x67":{name:_0xd025[136],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x69\x6E\x79\x5F\x52\x69\x76\x65\x72":{name:_0xd025[137],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x67\x69\x6E\x61":{name:_0xd025[138],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x77\x69\x66\x74\x5F\x43\x75\x72\x72\x65\x6E\x74":{name:_0xd025[139],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x64\x6D\x6F\x6E\x74\x6F\x6E":{name:_0xd025[140],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x62\x72\x69\x64\x67\x65\x5F\x42\x61\x79":{name:_0xd025[142],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x65\x6C\x6C\x6F\x77\x6B\x6E\x69\x66\x65":{name:_0xd025[143],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x75\x76\x69\x6B":{name:_0xd025[144],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x72\x65\x73\x74\x6F\x6E":{name:_0xd025[145],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E\x5F\x43\x72\x65\x65\x6B":{name:_0xd025[146],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x5F\x4E\x65\x6C\x73\x6F\x6E":{name:_0xd025[147],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x56\x61\x6E\x63\x6F\x75\x76\x65\x72":{name:_0xd025[148],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x68\x69\x74\x65\x68\x6F\x72\x73\x65":{name:_0xd025[150],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E":{name:_0xd025[151],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[122]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x6F\x63\x6F\x73":{name:_0xd025[152],utcOffset:390,offsetStr:_0xd025[153],countries:[_0xd025[154]]},"\x45\x75\x72\x6F\x70\x65\x2F\x5A\x75\x72\x69\x63\x68":{name:_0xd025[155],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[156],_0xd025[157],_0xd025[158]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x62\x69\x64\x6A\x61\x6E":{name:_0xd025[159],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[160],_0xd025[161],_0xd025[162],_0xd025[163],_0xd025[164],_0xd025[165],_0xd025[166],_0xd025[167],_0xd025[168],_0xd025[169],_0xd025[170]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x52\x61\x72\x6F\x74\x6F\x6E\x67\x61":{name:_0xd025[171],utcOffset:-600,offsetStr:_0xd025[172],countries:[_0xd025[173]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x69\x61\x67\x6F":{name:_0xd025[174],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[175]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x61\x73\x74\x65\x72":{name:_0xd025[176],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[175]]},"\x41\x73\x69\x61\x2F\x53\x68\x61\x6E\x67\x68\x61\x69":{name:_0xd025[177],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[178]]},"\x41\x73\x69\x61\x2F\x55\x72\x75\x6D\x71\x69":{name:_0xd025[179],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[178]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x67\x6F\x74\x61":{name:_0xd025[180],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[181]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x6F\x73\x74\x61\x5F\x52\x69\x63\x61":{name:_0xd025[182],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[183]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x76\x61\x6E\x61":{name:_0xd025[184],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[185]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x70\x65\x5F\x56\x65\x72\x64\x65":{name:_0xd025[186],utcOffset:-60,offsetStr:_0xd025[187],countries:[_0xd025[188]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x72\x61\x63\x61\x6F":{name:_0xd025[189],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[190],_0xd025[191],_0xd025[192],_0xd025[193]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x72\x69\x73\x74\x6D\x61\x73":{name:_0xd025[194],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[195]]},"\x41\x73\x69\x61\x2F\x4E\x69\x63\x6F\x73\x69\x61":{name:_0xd025[196],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[197]]},"\x45\x75\x72\x6F\x70\x65\x2F\x50\x72\x61\x67\x75\x65":{name:_0xd025[198],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[199],_0xd025[200]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x72\x6C\x69\x6E":{name:_0xd025[201],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[157]]},"\x45\x75\x72\x6F\x70\x65\x2F\x43\x6F\x70\x65\x6E\x68\x61\x67\x65\x6E":{name:_0xd025[202],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[203]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x6F\x5F\x44\x6F\x6D\x69\x6E\x67\x6F":{name:_0xd025[204],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[205]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x6C\x67\x69\x65\x72\x73":{name:_0xd025[206],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[207]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x79\x61\x71\x75\x69\x6C":{name:_0xd025[208],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[209]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6C\x61\x70\x61\x67\x6F\x73":{name:_0xd025[210],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[209]]},"\x45\x75\x72\x6F\x70\x65\x2F\x54\x61\x6C\x6C\x69\x6E\x6E":{name:_0xd025[211],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[212]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x69\x72\x6F":{name:_0xd025[213],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[214]]},"\x41\x66\x72\x69\x63\x61\x2F\x45\x6C\x5F\x41\x61\x69\x75\x6E":{name:_0xd025[215],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[216]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x64\x72\x69\x64":{name:_0xd025[217],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[218]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x65\x75\x74\x61":{name:_0xd025[219],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[218]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x6E\x61\x72\x79":{name:_0xd025[220],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[218]]},"\x45\x75\x72\x6F\x70\x65\x2F\x48\x65\x6C\x73\x69\x6E\x6B\x69":{name:_0xd025[221],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[222],_0xd025[223]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x69\x6A\x69":{name:_0xd025[224],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[226]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x74\x61\x6E\x6C\x65\x79":{name:_0xd025[227],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[228]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x75\x75\x6B":{name:_0xd025[229],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[230]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x68\x6E\x70\x65\x69":{name:_0xd025[231],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[230]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x6F\x73\x72\x61\x65":{name:_0xd025[232],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[230]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x46\x61\x72\x6F\x65":{name:_0xd025[233],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[234]]},"\x45\x75\x72\x6F\x70\x65\x2F\x50\x61\x72\x69\x73":{name:_0xd025[235],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[236]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x6F\x6E\x64\x6F\x6E":{name:_0xd025[237],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[238],_0xd025[239],_0xd025[240],_0xd025[241]]},"\x41\x73\x69\x61\x2F\x54\x62\x69\x6C\x69\x73\x69":{name:_0xd025[242],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[243]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x65\x6E\x6E\x65":{name:_0xd025[244],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[245]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x63\x63\x72\x61":{name:_0xd025[246],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[247]]},"\x45\x75\x72\x6F\x70\x65\x2F\x47\x69\x62\x72\x61\x6C\x74\x61\x72":{name:_0xd025[248],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[249]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x64\x74\x68\x61\x62":{name:_0xd025[250],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x6E\x6D\x61\x72\x6B\x73\x68\x61\x76\x6E":{name:_0xd025[252],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x63\x6F\x72\x65\x73\x62\x79\x73\x75\x6E\x64":{name:_0xd025[253],utcOffset:-60,offsetStr:_0xd025[187],countries:[_0xd025[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6C\x65":{name:_0xd025[254],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[251]]},"\x45\x75\x72\x6F\x70\x65\x2F\x41\x74\x68\x65\x6E\x73":{name:_0xd025[255],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[256]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x6F\x75\x74\x68\x5F\x47\x65\x6F\x72\x67\x69\x61":{name:_0xd025[257],utcOffset:-120,offsetStr:_0xd025[93],countries:[_0xd025[258]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x74\x65\x6D\x61\x6C\x61":{name:_0xd025[259],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[260]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x6D":{name:_0xd025[261],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[262],_0xd025[263]]},"\x41\x66\x72\x69\x63\x61\x2F\x42\x69\x73\x73\x61\x75":{name:_0xd025[264],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[265]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x79\x61\x6E\x61":{name:_0xd025[266],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[267]]},"\x41\x73\x69\x61\x2F\x48\x6F\x6E\x67\x5F\x4B\x6F\x6E\x67":{name:_0xd025[268],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[269]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x65\x67\x75\x63\x69\x67\x61\x6C\x70\x61":{name:_0xd025[270],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[271]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x2D\x61\x75\x2D\x50\x72\x69\x6E\x63\x65":{name:_0xd025[272],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[273]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x64\x61\x70\x65\x73\x74":{name:_0xd025[274],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[275]]},"\x41\x73\x69\x61\x2F\x4A\x61\x6B\x61\x72\x74\x61":{name:_0xd025[276],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[277]]},"\x41\x73\x69\x61\x2F\x50\x6F\x6E\x74\x69\x61\x6E\x61\x6B":{name:_0xd025[278],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[277]]},"\x41\x73\x69\x61\x2F\x4D\x61\x6B\x61\x73\x73\x61\x72":{name:_0xd025[279],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[277]]},"\x41\x73\x69\x61\x2F\x4A\x61\x79\x61\x70\x75\x72\x61":{name:_0xd025[280],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[277]]},"\x45\x75\x72\x6F\x70\x65\x2F\x44\x75\x62\x6C\x69\x6E":{name:_0xd025[282],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[283]]},"\x41\x73\x69\x61\x2F\x4A\x65\x72\x75\x73\x61\x6C\x65\x6D":{name:_0xd025[284],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[285]]},"\x41\x73\x69\x61\x2F\x4B\x6F\x6C\x6B\x61\x74\x61":{name:_0xd025[286],utcOffset:330,offsetStr:_0xd025[287],countries:[_0xd025[288]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x61\x67\x6F\x73":{name:_0xd025[289],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[290]]},"\x41\x73\x69\x61\x2F\x42\x61\x67\x68\x64\x61\x64":{name:_0xd025[291],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[292]]},"\x41\x73\x69\x61\x2F\x54\x65\x68\x72\x61\x6E":{name:_0xd025[293],utcOffset:210,offsetStr:_0xd025[294],countries:[_0xd025[295]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x52\x65\x79\x6B\x6A\x61\x76\x69\x6B":{name:_0xd025[296],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[297]]},"\x45\x75\x72\x6F\x70\x65\x2F\x52\x6F\x6D\x65":{name:_0xd025[298],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[299],_0xd025[300],_0xd025[301]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x61\x6D\x61\x69\x63\x61":{name:_0xd025[302],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[303]]},"\x41\x73\x69\x61\x2F\x41\x6D\x6D\x61\x6E":{name:_0xd025[304],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[305]]},"\x41\x73\x69\x61\x2F\x54\x6F\x6B\x79\x6F":{name:_0xd025[306],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[307]]},"\x41\x66\x72\x69\x63\x61\x2F\x4E\x61\x69\x72\x6F\x62\x69":{name:_0xd025[308],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[309],_0xd025[310],_0xd025[311],_0xd025[312],_0xd025[313],_0xd025[314],_0xd025[315],_0xd025[316],_0xd025[317],_0xd025[318]]},"\x41\x73\x69\x61\x2F\x42\x69\x73\x68\x6B\x65\x6B":{name:_0xd025[319],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[320]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x72\x61\x77\x61":{name:_0xd025[321],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[322]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x6E\x64\x65\x72\x62\x75\x72\x79":{name:_0xd025[323],utcOffset:780,offsetStr:_0xd025[324],countries:[_0xd025[322]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x69\x72\x69\x74\x69\x6D\x61\x74\x69":{name:_0xd025[325],utcOffset:840,offsetStr:_0xd025[326],countries:[_0xd025[322]]},"\x41\x73\x69\x61\x2F\x50\x79\x6F\x6E\x67\x79\x61\x6E\x67":{name:_0xd025[327],utcOffset:510,offsetStr:_0xd025[328],countries:[_0xd025[329]]},"\x41\x73\x69\x61\x2F\x53\x65\x6F\x75\x6C":{name:_0xd025[330],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[331]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x6D\x61\x6E":{name:_0xd025[332],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[333]]},"\x41\x73\x69\x61\x2F\x41\x6C\x6D\x61\x74\x79":{name:_0xd025[334],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[335]]},"\x41\x73\x69\x61\x2F\x51\x79\x7A\x79\x6C\x6F\x72\x64\x61":{name:_0xd025[336],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[335]]},"\x41\x73\x69\x61\x2F\x41\x71\x74\x6F\x62\x65":{name:_0xd025[337],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[335]]},"\x41\x73\x69\x61\x2F\x41\x71\x74\x61\x75":{name:_0xd025[338],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[335]]},"\x41\x73\x69\x61\x2F\x4F\x72\x61\x6C":{name:_0xd025[339],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[335]]},"\x41\x73\x69\x61\x2F\x42\x65\x69\x72\x75\x74":{name:_0xd025[340],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[341]]},"\x41\x73\x69\x61\x2F\x43\x6F\x6C\x6F\x6D\x62\x6F":{name:_0xd025[342],utcOffset:330,offsetStr:_0xd025[287],countries:[_0xd025[343]]},"\x41\x66\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x72\x6F\x76\x69\x61":{name:_0xd025[344],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[345]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x6C\x6E\x69\x75\x73":{name:_0xd025[346],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[347]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x75\x78\x65\x6D\x62\x6F\x75\x72\x67":{name:_0xd025[348],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[349]]},"\x45\x75\x72\x6F\x70\x65\x2F\x52\x69\x67\x61":{name:_0xd025[350],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[351]]},"\x41\x66\x72\x69\x63\x61\x2F\x54\x72\x69\x70\x6F\x6C\x69":{name:_0xd025[352],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[353]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x73\x61\x62\x6C\x61\x6E\x63\x61":{name:_0xd025[354],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[355]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x6E\x61\x63\x6F":{name:_0xd025[356],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[357]]},"\x45\x75\x72\x6F\x70\x65\x2F\x43\x68\x69\x73\x69\x6E\x61\x75":{name:_0xd025[358],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[359]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x6A\x75\x72\x6F":{name:_0xd025[360],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[361]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x77\x61\x6A\x61\x6C\x65\x69\x6E":{name:_0xd025[362],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[361]]},"\x41\x73\x69\x61\x2F\x52\x61\x6E\x67\x6F\x6F\x6E":{name:_0xd025[363],utcOffset:390,offsetStr:_0xd025[153],countries:[_0xd025[364]]},"\x41\x73\x69\x61\x2F\x55\x6C\x61\x61\x6E\x62\x61\x61\x74\x61\x72":{name:_0xd025[365],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[366]]},"\x41\x73\x69\x61\x2F\x48\x6F\x76\x64":{name:_0xd025[367],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[366]]},"\x41\x73\x69\x61\x2F\x43\x68\x6F\x69\x62\x61\x6C\x73\x61\x6E":{name:_0xd025[368],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[366]]},"\x41\x73\x69\x61\x2F\x4D\x61\x63\x61\x75":{name:_0xd025[369],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[370]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x72\x74\x69\x6E\x69\x71\x75\x65":{name:_0xd025[371],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[372]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x6C\x74\x61":{name:_0xd025[373],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[374]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x75\x72\x69\x74\x69\x75\x73":{name:_0xd025[375],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[376]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x6C\x64\x69\x76\x65\x73":{name:_0xd025[377],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[378]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x78\x69\x63\x6F\x5F\x43\x69\x74\x79":{name:_0xd025[379],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6E\x63\x75\x6E":{name:_0xd025[381],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x72\x69\x64\x61":{name:_0xd025[382],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x72\x72\x65\x79":{name:_0xd025[383],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x74\x61\x6D\x6F\x72\x6F\x73":{name:_0xd025[384],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x7A\x61\x74\x6C\x61\x6E":{name:_0xd025[385],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x68\x75\x61\x68\x75\x61":{name:_0xd025[386],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4F\x6A\x69\x6E\x61\x67\x61":{name:_0xd025[387],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x65\x72\x6D\x6F\x73\x69\x6C\x6C\x6F":{name:_0xd025[388],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x69\x6A\x75\x61\x6E\x61":{name:_0xd025[389],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x5F\x49\x73\x61\x62\x65\x6C":{name:_0xd025[390],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61\x5F\x42\x61\x6E\x64\x65\x72\x61\x73":{name:_0xd025[391],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[380]]},"\x41\x73\x69\x61\x2F\x4B\x75\x61\x6C\x61\x5F\x4C\x75\x6D\x70\x75\x72":{name:_0xd025[392],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[393]]},"\x41\x73\x69\x61\x2F\x4B\x75\x63\x68\x69\x6E\x67":{name:_0xd025[394],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[393]]},"\x41\x66\x72\x69\x63\x61\x2F\x4D\x61\x70\x75\x74\x6F":{name:_0xd025[395],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[396],_0xd025[397],_0xd025[398],_0xd025[399],_0xd025[400],_0xd025[401],_0xd025[402],_0xd025[403]]},"\x41\x66\x72\x69\x63\x61\x2F\x57\x69\x6E\x64\x68\x6F\x65\x6B":{name:_0xd025[404],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[405]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x75\x6D\x65\x61":{name:_0xd025[406],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[407]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x72\x66\x6F\x6C\x6B":{name:_0xd025[408],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[409]]},"\x41\x66\x72\x69\x63\x61\x2F\x4C\x61\x67\x6F\x73":{name:_0xd025[410],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[411],_0xd025[412],_0xd025[413],_0xd025[399],_0xd025[414],_0xd025[415],_0xd025[416],_0xd025[417],_0xd025[418],_0xd025[419]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x67\x75\x61":{name:_0xd025[420],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[421]]},"\x45\x75\x72\x6F\x70\x65\x2F\x41\x6D\x73\x74\x65\x72\x64\x61\x6D":{name:_0xd025[422],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[423]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4F\x73\x6C\x6F":{name:_0xd025[424],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[425],_0xd025[426]]},"\x41\x73\x69\x61\x2F\x4B\x61\x74\x68\x6D\x61\x6E\x64\x75":{name:_0xd025[427],utcOffset:345,offsetStr:_0xd025[428],countries:[_0xd025[429]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x61\x75\x72\x75":{name:_0xd025[430],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[431]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x69\x75\x65":{name:_0xd025[432],utcOffset:-660,offsetStr:_0xd025[51],countries:[_0xd025[433]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x75\x63\x6B\x6C\x61\x6E\x64":{name:_0xd025[434],utcOffset:780,offsetStr:_0xd025[324],countries:[_0xd025[435],_0xd025[21]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x61\x74\x68\x61\x6D":{name:_0xd025[436],utcOffset:825,offsetStr:_0xd025[437],countries:[_0xd025[435]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x61\x6D\x61":{name:_0xd025[438],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[439]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x69\x6D\x61":{name:_0xd025[440],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[441]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x68\x69\x74\x69":{name:_0xd025[442],utcOffset:-600,offsetStr:_0xd025[172],countries:[_0xd025[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x72\x71\x75\x65\x73\x61\x73":{name:_0xd025[444],utcOffset:-570,offsetStr:_0xd025[445],countries:[_0xd025[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6D\x62\x69\x65\x72":{name:_0xd025[446],utcOffset:-540,offsetStr:_0xd025[447],countries:[_0xd025[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x72\x74\x5F\x4D\x6F\x72\x65\x73\x62\x79":{name:_0xd025[448],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[449]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x42\x6F\x75\x67\x61\x69\x6E\x76\x69\x6C\x6C\x65":{name:_0xd025[450],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[449]]},"\x41\x73\x69\x61\x2F\x4D\x61\x6E\x69\x6C\x61":{name:_0xd025[451],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[452]]},"\x41\x73\x69\x61\x2F\x4B\x61\x72\x61\x63\x68\x69":{name:_0xd025[453],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[454]]},"\x45\x75\x72\x6F\x70\x65\x2F\x57\x61\x72\x73\x61\x77":{name:_0xd025[455],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[456]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x69\x71\x75\x65\x6C\x6F\x6E":{name:_0xd025[457],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[458]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x69\x74\x63\x61\x69\x72\x6E":{name:_0xd025[459],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[460]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x75\x65\x72\x74\x6F\x5F\x52\x69\x63\x6F":{name:_0xd025[461],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[462]]},"\x41\x73\x69\x61\x2F\x47\x61\x7A\x61":{name:_0xd025[463],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[464]]},"\x41\x73\x69\x61\x2F\x48\x65\x62\x72\x6F\x6E":{name:_0xd025[465],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[464]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x69\x73\x62\x6F\x6E":{name:_0xd025[466],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[467]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x4D\x61\x64\x65\x69\x72\x61":{name:_0xd025[468],utcOffset:0,offsetStr:_0xd025[36],countries:[_0xd025[467]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x41\x7A\x6F\x72\x65\x73":{name:_0xd025[469],utcOffset:-60,offsetStr:_0xd025[187],countries:[_0xd025[467]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x6C\x61\x75":{name:_0xd025[470],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[471]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x73\x75\x6E\x63\x69\x6F\x6E":{name:_0xd025[472],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[473]]},"\x41\x73\x69\x61\x2F\x51\x61\x74\x61\x72":{name:_0xd025[474],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[475],_0xd025[476]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x52\x65\x75\x6E\x69\x6F\x6E":{name:_0xd025[477],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[478],_0xd025[479]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x63\x68\x61\x72\x65\x73\x74":{name:_0xd025[480],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[481]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x6C\x67\x72\x61\x64\x65":{name:_0xd025[482],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[483],_0xd025[484],_0xd025[485],_0xd025[486],_0xd025[487],_0xd025[488]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4B\x61\x6C\x69\x6E\x69\x6E\x67\x72\x61\x64":{name:_0xd025[489],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x73\x63\x6F\x77":{name:_0xd025[491],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x69\x6D\x66\x65\x72\x6F\x70\x6F\x6C":{name:_0xd025[492],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x6F\x6C\x67\x6F\x67\x72\x61\x64":{name:_0xd025[493],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x61\x6D\x61\x72\x61":{name:_0xd025[494],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x59\x65\x6B\x61\x74\x65\x72\x69\x6E\x62\x75\x72\x67":{name:_0xd025[495],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4F\x6D\x73\x6B":{name:_0xd025[496],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x73\x69\x62\x69\x72\x73\x6B":{name:_0xd025[497],utcOffset:360,offsetStr:_0xd025[30],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x6B\x75\x7A\x6E\x65\x74\x73\x6B":{name:_0xd025[498],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4B\x72\x61\x73\x6E\x6F\x79\x61\x72\x73\x6B":{name:_0xd025[499],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x49\x72\x6B\x75\x74\x73\x6B":{name:_0xd025[500],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x43\x68\x69\x74\x61":{name:_0xd025[501],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x59\x61\x6B\x75\x74\x73\x6B":{name:_0xd025[502],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4B\x68\x61\x6E\x64\x79\x67\x61":{name:_0xd025[503],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x56\x6C\x61\x64\x69\x76\x6F\x73\x74\x6F\x6B":{name:_0xd025[504],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x53\x61\x6B\x68\x61\x6C\x69\x6E":{name:_0xd025[505],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x55\x73\x74\x2D\x4E\x65\x72\x61":{name:_0xd025[506],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4D\x61\x67\x61\x64\x61\x6E":{name:_0xd025[507],utcOffset:600,offsetStr:_0xd025[32],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x53\x72\x65\x64\x6E\x65\x6B\x6F\x6C\x79\x6D\x73\x6B":{name:_0xd025[508],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x4B\x61\x6D\x63\x68\x61\x74\x6B\x61":{name:_0xd025[509],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x41\x6E\x61\x64\x79\x72":{name:_0xd025[510],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[490]]},"\x41\x73\x69\x61\x2F\x52\x69\x79\x61\x64\x68":{name:_0xd025[511],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[512],_0xd025[513],_0xd025[514]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x64\x61\x6C\x63\x61\x6E\x61\x6C":{name:_0xd025[515],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[516]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x68\x65":{name:_0xd025[517],utcOffset:240,offsetStr:_0xd025[9],countries:[_0xd025[518]]},"\x41\x66\x72\x69\x63\x61\x2F\x4B\x68\x61\x72\x74\x6F\x75\x6D":{name:_0xd025[519],utcOffset:180,offsetStr:_0xd025[34],countries:[_0xd025[520],_0xd025[521]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x74\x6F\x63\x6B\x68\x6F\x6C\x6D":{name:_0xd025[522],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[523]]},"\x41\x73\x69\x61\x2F\x53\x69\x6E\x67\x61\x70\x6F\x72\x65":{name:_0xd025[524],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[525]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x72\x61\x6D\x61\x72\x69\x62\x6F":{name:_0xd025[526],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[527]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x6C\x5F\x53\x61\x6C\x76\x61\x64\x6F\x72":{name:_0xd025[528],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[529]]},"\x41\x73\x69\x61\x2F\x44\x61\x6D\x61\x73\x63\x75\x73":{name:_0xd025[530],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[531]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x72\x61\x6E\x64\x5F\x54\x75\x72\x6B":{name:_0xd025[532],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[533]]},"\x41\x66\x72\x69\x63\x61\x2F\x4E\x64\x6A\x61\x6D\x65\x6E\x61":{name:_0xd025[534],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[535]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4B\x65\x72\x67\x75\x65\x6C\x65\x6E":{name:_0xd025[536],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[479]]},"\x41\x73\x69\x61\x2F\x42\x61\x6E\x67\x6B\x6F\x6B":{name:_0xd025[537],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[538],_0xd025[539],_0xd025[540],_0xd025[541]]},"\x41\x73\x69\x61\x2F\x44\x75\x73\x68\x61\x6E\x62\x65":{name:_0xd025[542],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[543]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x61\x6B\x61\x6F\x66\x6F":{name:_0xd025[544],utcOffset:780,offsetStr:_0xd025[324],countries:[_0xd025[545]]},"\x41\x73\x69\x61\x2F\x44\x69\x6C\x69":{name:_0xd025[546],utcOffset:540,offsetStr:_0xd025[281],countries:[_0xd025[547]]},"\x41\x73\x69\x61\x2F\x41\x73\x68\x67\x61\x62\x61\x74":{name:_0xd025[548],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[549]]},"\x41\x66\x72\x69\x63\x61\x2F\x54\x75\x6E\x69\x73":{name:_0xd025[550],utcOffset:60,offsetStr:_0xd025[6],countries:[_0xd025[551]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x6F\x6E\x67\x61\x74\x61\x70\x75":{name:_0xd025[552],utcOffset:780,offsetStr:_0xd025[324],countries:[_0xd025[553]]},"\x45\x75\x72\x6F\x70\x65\x2F\x49\x73\x74\x61\x6E\x62\x75\x6C":{name:_0xd025[554],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[555]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x5F\x6F\x66\x5F\x53\x70\x61\x69\x6E":{name:_0xd025[556],utcOffset:-240,offsetStr:_0xd025[77],countries:[_0xd025[557],_0xd025[558],_0xd025[559],_0xd025[560],_0xd025[561],_0xd025[562],_0xd025[563],_0xd025[564],_0xd025[565],_0xd025[566],_0xd025[567],_0xd025[568],_0xd025[569],_0xd025[570]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x75\x6E\x61\x66\x75\x74\x69":{name:_0xd025[571],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[572]]},"\x41\x73\x69\x61\x2F\x54\x61\x69\x70\x65\x69":{name:_0xd025[573],utcOffset:480,offsetStr:_0xd025[28],countries:[_0xd025[574]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4B\x69\x65\x76":{name:_0xd025[575],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[576]]},"\x45\x75\x72\x6F\x70\x65\x2F\x55\x7A\x68\x67\x6F\x72\x6F\x64":{name:_0xd025[577],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[576]]},"\x45\x75\x72\x6F\x70\x65\x2F\x5A\x61\x70\x6F\x72\x6F\x7A\x68\x79\x65":{name:_0xd025[578],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[576]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6B\x65":{name:_0xd025[579],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[53]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x65\x77\x5F\x59\x6F\x72\x6B":{name:_0xd025[580],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x74\x72\x6F\x69\x74":{name:_0xd025[582],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4C\x6F\x75\x69\x73\x76\x69\x6C\x6C\x65":{name:_0xd025[583],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4D\x6F\x6E\x74\x69\x63\x65\x6C\x6C\x6F":{name:_0xd025[584],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x70\x6F\x6C\x69\x73":{name:_0xd025[585],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x69\x6E\x63\x65\x6E\x6E\x65\x73":{name:_0xd025[586],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x57\x69\x6E\x61\x6D\x61\x63":{name:_0xd025[587],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4D\x61\x72\x65\x6E\x67\x6F":{name:_0xd025[588],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x50\x65\x74\x65\x72\x73\x62\x75\x72\x67":{name:_0xd025[589],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x65\x76\x61\x79":{name:_0xd025[590],utcOffset:-300,offsetStr:_0xd025[109],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x63\x61\x67\x6F":{name:_0xd025[591],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x54\x65\x6C\x6C\x5F\x43\x69\x74\x79":{name:_0xd025[592],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4B\x6E\x6F\x78":{name:_0xd025[593],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x6E\x6F\x6D\x69\x6E\x65\x65":{name:_0xd025[594],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x43\x65\x6E\x74\x65\x72":{name:_0xd025[595],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x4E\x65\x77\x5F\x53\x61\x6C\x65\x6D":{name:_0xd025[596],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x42\x65\x75\x6C\x61\x68":{name:_0xd025[597],utcOffset:-360,offsetStr:_0xd025[118],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x6E\x76\x65\x72":{name:_0xd025[598],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x69\x73\x65":{name:_0xd025[599],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x68\x6F\x65\x6E\x69\x78":{name:_0xd025[600],utcOffset:-420,offsetStr:_0xd025[141],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x6F\x73\x5F\x41\x6E\x67\x65\x6C\x65\x73":{name:_0xd025[601],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x74\x6C\x61\x6B\x61\x74\x6C\x61":{name:_0xd025[602],utcOffset:-480,offsetStr:_0xd025[149],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x6E\x63\x68\x6F\x72\x61\x67\x65":{name:_0xd025[603],utcOffset:-540,offsetStr:_0xd025[447],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x75\x6E\x65\x61\x75":{name:_0xd025[604],utcOffset:-540,offsetStr:_0xd025[447],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x69\x74\x6B\x61":{name:_0xd025[605],utcOffset:-540,offsetStr:_0xd025[447],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x61\x6B\x75\x74\x61\x74":{name:_0xd025[606],utcOffset:-540,offsetStr:_0xd025[447],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x6D\x65":{name:_0xd025[607],utcOffset:-540,offsetStr:_0xd025[447],countries:[_0xd025[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x64\x61\x6B":{name:_0xd025[608],utcOffset:-600,offsetStr:_0xd025[172],countries:[_0xd025[581]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x48\x6F\x6E\x6F\x6C\x75\x6C\x75":{name:_0xd025[609],utcOffset:-600,offsetStr:_0xd025[172],countries:[_0xd025[581],_0xd025[53]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x76\x69\x64\x65\x6F":{name:_0xd025[610],utcOffset:-180,offsetStr:_0xd025[20],countries:[_0xd025[611]]},"\x41\x73\x69\x61\x2F\x53\x61\x6D\x61\x72\x6B\x61\x6E\x64":{name:_0xd025[612],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[613]]},"\x41\x73\x69\x61\x2F\x54\x61\x73\x68\x6B\x65\x6E\x74":{name:_0xd025[614],utcOffset:300,offsetStr:_0xd025[24],countries:[_0xd025[613]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x72\x61\x63\x61\x73":{name:_0xd025[615],utcOffset:-270,offsetStr:_0xd025[616],countries:[_0xd025[617]]},"\x41\x73\x69\x61\x2F\x48\x6F\x5F\x43\x68\x69\x5F\x4D\x69\x6E\x68":{name:_0xd025[618],utcOffset:420,offsetStr:_0xd025[26],countries:[_0xd025[541]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x66\x61\x74\x65":{name:_0xd025[619],utcOffset:660,offsetStr:_0xd025[57],countries:[_0xd025[620]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6C\x6C\x69\x73":{name:_0xd025[621],utcOffset:720,offsetStr:_0xd025[225],countries:[_0xd025[622]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x70\x69\x61":{name:_0xd025[623],utcOffset:840,offsetStr:_0xd025[326],countries:[_0xd025[624]]},"\x41\x66\x72\x69\x63\x61\x2F\x4A\x6F\x68\x61\x6E\x6E\x65\x73\x62\x75\x72\x67":{name:_0xd025[625],utcOffset:120,offsetStr:_0xd025[84],countries:[_0xd025[626],_0xd025[627],_0xd025[628]]}}}
\ No newline at end of file
+var _0x61f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x67\x75\x65\x73\x74","\x75\x73\x65\x72","\x61\x64\x6D\x69\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x41\x6E\x64\x6F\x72\x72\x61","\x2B\x30\x31\x3A\x30\x30","\x41\x44","\x41\x73\x69\x61\x2F\x44\x75\x62\x61\x69","\x2B\x30\x34\x3A\x30\x30","\x41\x45","\x4F\x4D","\x41\x73\x69\x61\x2F\x4B\x61\x62\x75\x6C","\x2B\x30\x34\x3A\x33\x30","\x41\x46","\x45\x75\x72\x6F\x70\x65\x2F\x54\x69\x72\x61\x6E\x65","\x41\x4C","\x41\x73\x69\x61\x2F\x59\x65\x72\x65\x76\x61\x6E","\x41\x4D","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x52\x6F\x74\x68\x65\x72\x61","\x2D\x30\x33\x3A\x30\x30","\x41\x51","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x50\x61\x6C\x6D\x65\x72","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x77\x73\x6F\x6E","\x2B\x30\x35\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x61\x76\x69\x73","\x2B\x30\x37\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x43\x61\x73\x65\x79","\x2B\x30\x38\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x56\x6F\x73\x74\x6F\x6B","\x2B\x30\x36\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x75\x6D\x6F\x6E\x74\x44\x55\x72\x76\x69\x6C\x6C\x65","\x2B\x31\x30\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x53\x79\x6F\x77\x61","\x2B\x30\x33\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x54\x72\x6F\x6C\x6C","\x2B\x30\x30\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x42\x75\x65\x6E\x6F\x73\x5F\x41\x69\x72\x65\x73","\x41\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x6F\x72\x64\x6F\x62\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6C\x74\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4A\x75\x6A\x75\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x54\x75\x63\x75\x6D\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x61\x74\x61\x6D\x61\x72\x63\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4C\x61\x5F\x52\x69\x6F\x6A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4A\x75\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4D\x65\x6E\x64\x6F\x7A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4C\x75\x69\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x52\x69\x6F\x5F\x47\x61\x6C\x6C\x65\x67\x6F\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x55\x73\x68\x75\x61\x69\x61","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x67\x6F\x5F\x50\x61\x67\x6F","\x2D\x31\x31\x3A\x30\x30","\x41\x53","\x55\x4D","\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x65\x6E\x6E\x61","\x41\x54","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x6F\x72\x64\x5F\x48\x6F\x77\x65","\x2B\x31\x31\x3A\x30\x30","\x41\x55","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x63\x71\x75\x61\x72\x69\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x48\x6F\x62\x61\x72\x74","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x43\x75\x72\x72\x69\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4D\x65\x6C\x62\x6F\x75\x72\x6E\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x53\x79\x64\x6E\x65\x79","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x6F\x6B\x65\x6E\x5F\x48\x69\x6C\x6C","\x2B\x31\x30\x3A\x33\x30","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x69\x73\x62\x61\x6E\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x69\x6E\x64\x65\x6D\x61\x6E","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x41\x64\x65\x6C\x61\x69\x64\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x44\x61\x72\x77\x69\x6E","\x2B\x30\x39\x3A\x33\x30","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x50\x65\x72\x74\x68","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x45\x75\x63\x6C\x61","\x2B\x30\x38\x3A\x34\x35","\x41\x73\x69\x61\x2F\x42\x61\x6B\x75","\x41\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x72\x62\x61\x64\x6F\x73","\x2D\x30\x34\x3A\x30\x30","\x42\x42","\x41\x73\x69\x61\x2F\x44\x68\x61\x6B\x61","\x42\x44","\x45\x75\x72\x6F\x70\x65\x2F\x42\x72\x75\x73\x73\x65\x6C\x73","\x42\x45","\x45\x75\x72\x6F\x70\x65\x2F\x53\x6F\x66\x69\x61","\x2B\x30\x32\x3A\x30\x30","\x42\x47","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x42\x65\x72\x6D\x75\x64\x61","\x42\x4D","\x41\x73\x69\x61\x2F\x42\x72\x75\x6E\x65\x69","\x42\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x61\x5F\x50\x61\x7A","\x42\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x6F\x6E\x68\x61","\x2D\x30\x32\x3A\x30\x30","\x42\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x61\x6C\x65\x7A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x63\x69\x66\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x61\x67\x75\x61\x69\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x63\x65\x69\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6F\x5F\x50\x61\x75\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x70\x6F\x5F\x47\x72\x61\x6E\x64\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x69\x61\x62\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x72\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x6F\x5F\x56\x65\x6C\x68\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x61\x5F\x56\x69\x73\x74\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x75\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x69\x72\x75\x6E\x65\x70\x65","\x2D\x30\x35\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x69\x6F\x5F\x42\x72\x61\x6E\x63\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x61\x73\x73\x61\x75","\x42\x53","\x41\x73\x69\x61\x2F\x54\x68\x69\x6D\x70\x68\x75","\x42\x54","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x69\x6E\x73\x6B","\x42\x59","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x69\x7A\x65","\x2D\x30\x36\x3A\x30\x30","\x42\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x74\x5F\x4A\x6F\x68\x6E\x73","\x2D\x30\x33\x3A\x33\x30","\x43\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x6C\x69\x66\x61\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6C\x61\x63\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x63\x74\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x6F\x73\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6C\x61\x6E\x63\x2D\x53\x61\x62\x6C\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x6F\x72\x6F\x6E\x74\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x69\x70\x69\x67\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6E\x64\x65\x72\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x71\x61\x6C\x75\x69\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x67\x6E\x69\x72\x74\x75\x6E\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x73\x6F\x6C\x75\x74\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x74\x69\x6B\x6F\x6B\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x6E\x6B\x69\x6E\x5F\x49\x6E\x6C\x65\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x69\x6E\x6E\x69\x70\x65\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x69\x6E\x79\x5F\x52\x69\x76\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x67\x69\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x77\x69\x66\x74\x5F\x43\x75\x72\x72\x65\x6E\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x64\x6D\x6F\x6E\x74\x6F\x6E","\x2D\x30\x37\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x62\x72\x69\x64\x67\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x65\x6C\x6C\x6F\x77\x6B\x6E\x69\x66\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x75\x76\x69\x6B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x72\x65\x73\x74\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E\x5F\x43\x72\x65\x65\x6B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x5F\x4E\x65\x6C\x73\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x56\x61\x6E\x63\x6F\x75\x76\x65\x72","\x2D\x30\x38\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x68\x69\x74\x65\x68\x6F\x72\x73\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x6F\x63\x6F\x73","\x2B\x30\x36\x3A\x33\x30","\x43\x43","\x45\x75\x72\x6F\x70\x65\x2F\x5A\x75\x72\x69\x63\x68","\x43\x48","\x44\x45","\x4C\x49","\x41\x66\x72\x69\x63\x61\x2F\x41\x62\x69\x64\x6A\x61\x6E","\x43\x49","\x42\x46","\x47\x4D","\x47\x4E","\x4D\x4C","\x4D\x52","\x53\x48","\x53\x4C","\x53\x4E","\x53\x54","\x54\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x52\x61\x72\x6F\x74\x6F\x6E\x67\x61","\x2D\x31\x30\x3A\x30\x30","\x43\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x69\x61\x67\x6F","\x43\x4C","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x61\x73\x74\x65\x72","\x41\x73\x69\x61\x2F\x53\x68\x61\x6E\x67\x68\x61\x69","\x43\x4E","\x41\x73\x69\x61\x2F\x55\x72\x75\x6D\x71\x69","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x67\x6F\x74\x61","\x43\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x6F\x73\x74\x61\x5F\x52\x69\x63\x61","\x43\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x76\x61\x6E\x61","\x43\x55","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x70\x65\x5F\x56\x65\x72\x64\x65","\x2D\x30\x31\x3A\x30\x30","\x43\x56","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x72\x61\x63\x61\x6F","\x43\x57","\x41\x57","\x42\x51","\x53\x58","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x72\x69\x73\x74\x6D\x61\x73","\x43\x58","\x41\x73\x69\x61\x2F\x4E\x69\x63\x6F\x73\x69\x61","\x43\x59","\x45\x75\x72\x6F\x70\x65\x2F\x50\x72\x61\x67\x75\x65","\x43\x5A","\x53\x4B","\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x72\x6C\x69\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x43\x6F\x70\x65\x6E\x68\x61\x67\x65\x6E","\x44\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x6F\x5F\x44\x6F\x6D\x69\x6E\x67\x6F","\x44\x4F","\x41\x66\x72\x69\x63\x61\x2F\x41\x6C\x67\x69\x65\x72\x73","\x44\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x79\x61\x71\x75\x69\x6C","\x45\x43","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6C\x61\x70\x61\x67\x6F\x73","\x45\x75\x72\x6F\x70\x65\x2F\x54\x61\x6C\x6C\x69\x6E\x6E","\x45\x45","\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x69\x72\x6F","\x45\x47","\x41\x66\x72\x69\x63\x61\x2F\x45\x6C\x5F\x41\x61\x69\x75\x6E","\x45\x48","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x64\x72\x69\x64","\x45\x53","\x41\x66\x72\x69\x63\x61\x2F\x43\x65\x75\x74\x61","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x6E\x61\x72\x79","\x45\x75\x72\x6F\x70\x65\x2F\x48\x65\x6C\x73\x69\x6E\x6B\x69","\x46\x49","\x41\x58","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x69\x6A\x69","\x2B\x31\x32\x3A\x30\x30","\x46\x4A","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x74\x61\x6E\x6C\x65\x79","\x46\x4B","\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x75\x75\x6B","\x46\x4D","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x68\x6E\x70\x65\x69","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x6F\x73\x72\x61\x65","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x46\x61\x72\x6F\x65","\x46\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x50\x61\x72\x69\x73","\x46\x52","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x6F\x6E\x64\x6F\x6E","\x47\x42","\x47\x47","\x49\x4D","\x4A\x45","\x41\x73\x69\x61\x2F\x54\x62\x69\x6C\x69\x73\x69","\x47\x45","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x65\x6E\x6E\x65","\x47\x46","\x41\x66\x72\x69\x63\x61\x2F\x41\x63\x63\x72\x61","\x47\x48","\x45\x75\x72\x6F\x70\x65\x2F\x47\x69\x62\x72\x61\x6C\x74\x61\x72","\x47\x49","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x64\x74\x68\x61\x62","\x47\x4C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x6E\x6D\x61\x72\x6B\x73\x68\x61\x76\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x63\x6F\x72\x65\x73\x62\x79\x73\x75\x6E\x64","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6C\x65","\x45\x75\x72\x6F\x70\x65\x2F\x41\x74\x68\x65\x6E\x73","\x47\x52","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x6F\x75\x74\x68\x5F\x47\x65\x6F\x72\x67\x69\x61","\x47\x53","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x74\x65\x6D\x61\x6C\x61","\x47\x54","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x6D","\x47\x55","\x4D\x50","\x41\x66\x72\x69\x63\x61\x2F\x42\x69\x73\x73\x61\x75","\x47\x57","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x79\x61\x6E\x61","\x47\x59","\x41\x73\x69\x61\x2F\x48\x6F\x6E\x67\x5F\x4B\x6F\x6E\x67","\x48\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x65\x67\x75\x63\x69\x67\x61\x6C\x70\x61","\x48\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x2D\x61\x75\x2D\x50\x72\x69\x6E\x63\x65","\x48\x54","\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x64\x61\x70\x65\x73\x74","\x48\x55","\x41\x73\x69\x61\x2F\x4A\x61\x6B\x61\x72\x74\x61","\x49\x44","\x41\x73\x69\x61\x2F\x50\x6F\x6E\x74\x69\x61\x6E\x61\x6B","\x41\x73\x69\x61\x2F\x4D\x61\x6B\x61\x73\x73\x61\x72","\x41\x73\x69\x61\x2F\x4A\x61\x79\x61\x70\x75\x72\x61","\x2B\x30\x39\x3A\x30\x30","\x45\x75\x72\x6F\x70\x65\x2F\x44\x75\x62\x6C\x69\x6E","\x49\x45","\x41\x73\x69\x61\x2F\x4A\x65\x72\x75\x73\x61\x6C\x65\x6D","\x49\x4C","\x41\x73\x69\x61\x2F\x4B\x6F\x6C\x6B\x61\x74\x61","\x2B\x30\x35\x3A\x33\x30","\x49\x4E","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x61\x67\x6F\x73","\x49\x4F","\x41\x73\x69\x61\x2F\x42\x61\x67\x68\x64\x61\x64","\x49\x51","\x41\x73\x69\x61\x2F\x54\x65\x68\x72\x61\x6E","\x2B\x30\x33\x3A\x33\x30","\x49\x52","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x52\x65\x79\x6B\x6A\x61\x76\x69\x6B","\x49\x53","\x45\x75\x72\x6F\x70\x65\x2F\x52\x6F\x6D\x65","\x49\x54","\x53\x4D","\x56\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x61\x6D\x61\x69\x63\x61","\x4A\x4D","\x41\x73\x69\x61\x2F\x41\x6D\x6D\x61\x6E","\x4A\x4F","\x41\x73\x69\x61\x2F\x54\x6F\x6B\x79\x6F","\x4A\x50","\x41\x66\x72\x69\x63\x61\x2F\x4E\x61\x69\x72\x6F\x62\x69","\x4B\x45","\x44\x4A","\x45\x52","\x45\x54","\x4B\x4D","\x4D\x47","\x53\x4F","\x54\x5A","\x55\x47","\x59\x54","\x41\x73\x69\x61\x2F\x42\x69\x73\x68\x6B\x65\x6B","\x4B\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x72\x61\x77\x61","\x4B\x49","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x6E\x64\x65\x72\x62\x75\x72\x79","\x2B\x31\x33\x3A\x30\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x69\x72\x69\x74\x69\x6D\x61\x74\x69","\x2B\x31\x34\x3A\x30\x30","\x41\x73\x69\x61\x2F\x50\x79\x6F\x6E\x67\x79\x61\x6E\x67","\x2B\x30\x38\x3A\x33\x30","\x4B\x50","\x41\x73\x69\x61\x2F\x53\x65\x6F\x75\x6C","\x4B\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x6D\x61\x6E","\x4B\x59","\x41\x73\x69\x61\x2F\x41\x6C\x6D\x61\x74\x79","\x4B\x5A","\x41\x73\x69\x61\x2F\x51\x79\x7A\x79\x6C\x6F\x72\x64\x61","\x41\x73\x69\x61\x2F\x41\x71\x74\x6F\x62\x65","\x41\x73\x69\x61\x2F\x41\x71\x74\x61\x75","\x41\x73\x69\x61\x2F\x4F\x72\x61\x6C","\x41\x73\x69\x61\x2F\x42\x65\x69\x72\x75\x74","\x4C\x42","\x41\x73\x69\x61\x2F\x43\x6F\x6C\x6F\x6D\x62\x6F","\x4C\x4B","\x41\x66\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x72\x6F\x76\x69\x61","\x4C\x52","\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x6C\x6E\x69\x75\x73","\x4C\x54","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x75\x78\x65\x6D\x62\x6F\x75\x72\x67","\x4C\x55","\x45\x75\x72\x6F\x70\x65\x2F\x52\x69\x67\x61","\x4C\x56","\x41\x66\x72\x69\x63\x61\x2F\x54\x72\x69\x70\x6F\x6C\x69","\x4C\x59","\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x73\x61\x62\x6C\x61\x6E\x63\x61","\x4D\x41","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x6E\x61\x63\x6F","\x4D\x43","\x45\x75\x72\x6F\x70\x65\x2F\x43\x68\x69\x73\x69\x6E\x61\x75","\x4D\x44","\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x6A\x75\x72\x6F","\x4D\x48","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x77\x61\x6A\x61\x6C\x65\x69\x6E","\x41\x73\x69\x61\x2F\x52\x61\x6E\x67\x6F\x6F\x6E","\x4D\x4D","\x41\x73\x69\x61\x2F\x55\x6C\x61\x61\x6E\x62\x61\x61\x74\x61\x72","\x4D\x4E","\x41\x73\x69\x61\x2F\x48\x6F\x76\x64","\x41\x73\x69\x61\x2F\x43\x68\x6F\x69\x62\x61\x6C\x73\x61\x6E","\x41\x73\x69\x61\x2F\x4D\x61\x63\x61\x75","\x4D\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x72\x74\x69\x6E\x69\x71\x75\x65","\x4D\x51","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x6C\x74\x61","\x4D\x54","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x75\x72\x69\x74\x69\x75\x73","\x4D\x55","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x6C\x64\x69\x76\x65\x73","\x4D\x56","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x78\x69\x63\x6F\x5F\x43\x69\x74\x79","\x4D\x58","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6E\x63\x75\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x72\x69\x64\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x72\x72\x65\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x74\x61\x6D\x6F\x72\x6F\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x7A\x61\x74\x6C\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x68\x75\x61\x68\x75\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4F\x6A\x69\x6E\x61\x67\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x65\x72\x6D\x6F\x73\x69\x6C\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x69\x6A\x75\x61\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x5F\x49\x73\x61\x62\x65\x6C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61\x5F\x42\x61\x6E\x64\x65\x72\x61\x73","\x41\x73\x69\x61\x2F\x4B\x75\x61\x6C\x61\x5F\x4C\x75\x6D\x70\x75\x72","\x4D\x59","\x41\x73\x69\x61\x2F\x4B\x75\x63\x68\x69\x6E\x67","\x41\x66\x72\x69\x63\x61\x2F\x4D\x61\x70\x75\x74\x6F","\x4D\x5A","\x42\x49","\x42\x57","\x43\x44","\x4D\x57","\x52\x57","\x5A\x4D","\x5A\x57","\x41\x66\x72\x69\x63\x61\x2F\x57\x69\x6E\x64\x68\x6F\x65\x6B","\x4E\x41","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x75\x6D\x65\x61","\x4E\x43","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x72\x66\x6F\x6C\x6B","\x4E\x46","\x41\x66\x72\x69\x63\x61\x2F\x4C\x61\x67\x6F\x73","\x4E\x47","\x41\x4F","\x42\x4A","\x43\x46","\x43\x47","\x43\x4D","\x47\x41","\x47\x51","\x4E\x45","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x67\x75\x61","\x4E\x49","\x45\x75\x72\x6F\x70\x65\x2F\x41\x6D\x73\x74\x65\x72\x64\x61\x6D","\x4E\x4C","\x45\x75\x72\x6F\x70\x65\x2F\x4F\x73\x6C\x6F","\x4E\x4F","\x53\x4A","\x41\x73\x69\x61\x2F\x4B\x61\x74\x68\x6D\x61\x6E\x64\x75","\x2B\x30\x35\x3A\x34\x35","\x4E\x50","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x61\x75\x72\x75","\x4E\x52","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x69\x75\x65","\x4E\x55","\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x75\x63\x6B\x6C\x61\x6E\x64","\x4E\x5A","\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x61\x74\x68\x61\x6D","\x2B\x31\x33\x3A\x34\x35","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x61\x6D\x61","\x50\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x69\x6D\x61","\x50\x45","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x68\x69\x74\x69","\x50\x46","\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x72\x71\x75\x65\x73\x61\x73","\x2D\x30\x39\x3A\x33\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6D\x62\x69\x65\x72","\x2D\x30\x39\x3A\x30\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x72\x74\x5F\x4D\x6F\x72\x65\x73\x62\x79","\x50\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x42\x6F\x75\x67\x61\x69\x6E\x76\x69\x6C\x6C\x65","\x41\x73\x69\x61\x2F\x4D\x61\x6E\x69\x6C\x61","\x50\x48","\x41\x73\x69\x61\x2F\x4B\x61\x72\x61\x63\x68\x69","\x50\x4B","\x45\x75\x72\x6F\x70\x65\x2F\x57\x61\x72\x73\x61\x77","\x50\x4C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x69\x71\x75\x65\x6C\x6F\x6E","\x50\x4D","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x69\x74\x63\x61\x69\x72\x6E","\x50\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x75\x65\x72\x74\x6F\x5F\x52\x69\x63\x6F","\x50\x52","\x41\x73\x69\x61\x2F\x47\x61\x7A\x61","\x50\x53","\x41\x73\x69\x61\x2F\x48\x65\x62\x72\x6F\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x69\x73\x62\x6F\x6E","\x50\x54","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x4D\x61\x64\x65\x69\x72\x61","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x41\x7A\x6F\x72\x65\x73","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x6C\x61\x75","\x50\x57","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x73\x75\x6E\x63\x69\x6F\x6E","\x50\x59","\x41\x73\x69\x61\x2F\x51\x61\x74\x61\x72","\x51\x41","\x42\x48","\x49\x6E\x64\x69\x61\x6E\x2F\x52\x65\x75\x6E\x69\x6F\x6E","\x52\x45","\x54\x46","\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x63\x68\x61\x72\x65\x73\x74","\x52\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x6C\x67\x72\x61\x64\x65","\x52\x53","\x42\x41","\x48\x52","\x4D\x45","\x4D\x4B","\x53\x49","\x45\x75\x72\x6F\x70\x65\x2F\x4B\x61\x6C\x69\x6E\x69\x6E\x67\x72\x61\x64","\x52\x55","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x73\x63\x6F\x77","\x45\x75\x72\x6F\x70\x65\x2F\x53\x69\x6D\x66\x65\x72\x6F\x70\x6F\x6C","\x45\x75\x72\x6F\x70\x65\x2F\x56\x6F\x6C\x67\x6F\x67\x72\x61\x64","\x45\x75\x72\x6F\x70\x65\x2F\x53\x61\x6D\x61\x72\x61","\x41\x73\x69\x61\x2F\x59\x65\x6B\x61\x74\x65\x72\x69\x6E\x62\x75\x72\x67","\x41\x73\x69\x61\x2F\x4F\x6D\x73\x6B","\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x73\x69\x62\x69\x72\x73\x6B","\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x6B\x75\x7A\x6E\x65\x74\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x72\x61\x73\x6E\x6F\x79\x61\x72\x73\x6B","\x41\x73\x69\x61\x2F\x49\x72\x6B\x75\x74\x73\x6B","\x41\x73\x69\x61\x2F\x43\x68\x69\x74\x61","\x41\x73\x69\x61\x2F\x59\x61\x6B\x75\x74\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x68\x61\x6E\x64\x79\x67\x61","\x41\x73\x69\x61\x2F\x56\x6C\x61\x64\x69\x76\x6F\x73\x74\x6F\x6B","\x41\x73\x69\x61\x2F\x53\x61\x6B\x68\x61\x6C\x69\x6E","\x41\x73\x69\x61\x2F\x55\x73\x74\x2D\x4E\x65\x72\x61","\x41\x73\x69\x61\x2F\x4D\x61\x67\x61\x64\x61\x6E","\x41\x73\x69\x61\x2F\x53\x72\x65\x64\x6E\x65\x6B\x6F\x6C\x79\x6D\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x61\x6D\x63\x68\x61\x74\x6B\x61","\x41\x73\x69\x61\x2F\x41\x6E\x61\x64\x79\x72","\x41\x73\x69\x61\x2F\x52\x69\x79\x61\x64\x68","\x53\x41","\x4B\x57","\x59\x45","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x64\x61\x6C\x63\x61\x6E\x61\x6C","\x53\x42","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x68\x65","\x53\x43","\x41\x66\x72\x69\x63\x61\x2F\x4B\x68\x61\x72\x74\x6F\x75\x6D","\x53\x44","\x53\x53","\x45\x75\x72\x6F\x70\x65\x2F\x53\x74\x6F\x63\x6B\x68\x6F\x6C\x6D","\x53\x45","\x41\x73\x69\x61\x2F\x53\x69\x6E\x67\x61\x70\x6F\x72\x65","\x53\x47","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x72\x61\x6D\x61\x72\x69\x62\x6F","\x53\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x6C\x5F\x53\x61\x6C\x76\x61\x64\x6F\x72","\x53\x56","\x41\x73\x69\x61\x2F\x44\x61\x6D\x61\x73\x63\x75\x73","\x53\x59","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x72\x61\x6E\x64\x5F\x54\x75\x72\x6B","\x54\x43","\x41\x66\x72\x69\x63\x61\x2F\x4E\x64\x6A\x61\x6D\x65\x6E\x61","\x54\x44","\x49\x6E\x64\x69\x61\x6E\x2F\x4B\x65\x72\x67\x75\x65\x6C\x65\x6E","\x41\x73\x69\x61\x2F\x42\x61\x6E\x67\x6B\x6F\x6B","\x54\x48","\x4B\x48","\x4C\x41","\x56\x4E","\x41\x73\x69\x61\x2F\x44\x75\x73\x68\x61\x6E\x62\x65","\x54\x4A","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x61\x6B\x61\x6F\x66\x6F","\x54\x4B","\x41\x73\x69\x61\x2F\x44\x69\x6C\x69","\x54\x4C","\x41\x73\x69\x61\x2F\x41\x73\x68\x67\x61\x62\x61\x74","\x54\x4D","\x41\x66\x72\x69\x63\x61\x2F\x54\x75\x6E\x69\x73","\x54\x4E","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x6F\x6E\x67\x61\x74\x61\x70\x75","\x54\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x49\x73\x74\x61\x6E\x62\x75\x6C","\x54\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x5F\x6F\x66\x5F\x53\x70\x61\x69\x6E","\x54\x54","\x41\x47","\x41\x49","\x42\x4C","\x44\x4D","\x47\x44","\x47\x50","\x4B\x4E","\x4C\x43","\x4D\x46","\x4D\x53","\x56\x43","\x56\x47","\x56\x49","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x75\x6E\x61\x66\x75\x74\x69","\x54\x56","\x41\x73\x69\x61\x2F\x54\x61\x69\x70\x65\x69","\x54\x57","\x45\x75\x72\x6F\x70\x65\x2F\x4B\x69\x65\x76","\x55\x41","\x45\x75\x72\x6F\x70\x65\x2F\x55\x7A\x68\x67\x6F\x72\x6F\x64","\x45\x75\x72\x6F\x70\x65\x2F\x5A\x61\x70\x6F\x72\x6F\x7A\x68\x79\x65","\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6B\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x65\x77\x5F\x59\x6F\x72\x6B","\x55\x53","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x74\x72\x6F\x69\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4C\x6F\x75\x69\x73\x76\x69\x6C\x6C\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4D\x6F\x6E\x74\x69\x63\x65\x6C\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x70\x6F\x6C\x69\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x69\x6E\x63\x65\x6E\x6E\x65\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x57\x69\x6E\x61\x6D\x61\x63","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4D\x61\x72\x65\x6E\x67\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x50\x65\x74\x65\x72\x73\x62\x75\x72\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x65\x76\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x63\x61\x67\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x54\x65\x6C\x6C\x5F\x43\x69\x74\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4B\x6E\x6F\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x6E\x6F\x6D\x69\x6E\x65\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x43\x65\x6E\x74\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x4E\x65\x77\x5F\x53\x61\x6C\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x42\x65\x75\x6C\x61\x68","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x6E\x76\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x69\x73\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x68\x6F\x65\x6E\x69\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x6F\x73\x5F\x41\x6E\x67\x65\x6C\x65\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x74\x6C\x61\x6B\x61\x74\x6C\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x6E\x63\x68\x6F\x72\x61\x67\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x75\x6E\x65\x61\x75","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x69\x74\x6B\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x61\x6B\x75\x74\x61\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x6D\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x64\x61\x6B","\x50\x61\x63\x69\x66\x69\x63\x2F\x48\x6F\x6E\x6F\x6C\x75\x6C\x75","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x76\x69\x64\x65\x6F","\x55\x59","\x41\x73\x69\x61\x2F\x53\x61\x6D\x61\x72\x6B\x61\x6E\x64","\x55\x5A","\x41\x73\x69\x61\x2F\x54\x61\x73\x68\x6B\x65\x6E\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x72\x61\x63\x61\x73","\x2D\x30\x34\x3A\x33\x30","\x56\x45","\x41\x73\x69\x61\x2F\x48\x6F\x5F\x43\x68\x69\x5F\x4D\x69\x6E\x68","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x66\x61\x74\x65","\x56\x55","\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6C\x6C\x69\x73","\x57\x46","\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x70\x69\x61","\x57\x53","\x41\x66\x72\x69\x63\x61\x2F\x4A\x6F\x68\x61\x6E\x6E\x65\x73\x62\x75\x72\x67","\x5A\x41","\x4C\x53","\x53\x5A"];_0x61f2[0];exports= module[_0x61f2[1]]= {userRoles:[_0x61f2[2],_0x61f2[3],_0x61f2[4]],timezones:{"\x45\x75\x72\x6F\x70\x65\x2F\x41\x6E\x64\x6F\x72\x72\x61":{name:_0x61f2[5],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[7]]},"\x41\x73\x69\x61\x2F\x44\x75\x62\x61\x69":{name:_0x61f2[8],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[10],_0x61f2[11]]},"\x41\x73\x69\x61\x2F\x4B\x61\x62\x75\x6C":{name:_0x61f2[12],utcOffset:270,offsetStr:_0x61f2[13],countries:[_0x61f2[14]]},"\x45\x75\x72\x6F\x70\x65\x2F\x54\x69\x72\x61\x6E\x65":{name:_0x61f2[15],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[16]]},"\x41\x73\x69\x61\x2F\x59\x65\x72\x65\x76\x61\x6E":{name:_0x61f2[17],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[18]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x52\x6F\x74\x68\x65\x72\x61":{name:_0x61f2[19],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x50\x61\x6C\x6D\x65\x72":{name:_0x61f2[22],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x77\x73\x6F\x6E":{name:_0x61f2[23],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x61\x76\x69\x73":{name:_0x61f2[25],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x43\x61\x73\x65\x79":{name:_0x61f2[27],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x56\x6F\x73\x74\x6F\x6B":{name:_0x61f2[29],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x75\x6D\x6F\x6E\x74\x44\x55\x72\x76\x69\x6C\x6C\x65":{name:_0x61f2[31],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x53\x79\x6F\x77\x61":{name:_0x61f2[33],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x54\x72\x6F\x6C\x6C":{name:_0x61f2[35],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[21]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x42\x75\x65\x6E\x6F\x73\x5F\x41\x69\x72\x65\x73":{name:_0x61f2[37],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x6F\x72\x64\x6F\x62\x61":{name:_0x61f2[39],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6C\x74\x61":{name:_0x61f2[40],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4A\x75\x6A\x75\x79":{name:_0x61f2[41],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x54\x75\x63\x75\x6D\x61\x6E":{name:_0x61f2[42],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x61\x74\x61\x6D\x61\x72\x63\x61":{name:_0x61f2[43],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4C\x61\x5F\x52\x69\x6F\x6A\x61":{name:_0x61f2[44],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4A\x75\x61\x6E":{name:_0x61f2[45],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4D\x65\x6E\x64\x6F\x7A\x61":{name:_0x61f2[46],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4C\x75\x69\x73":{name:_0x61f2[47],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x52\x69\x6F\x5F\x47\x61\x6C\x6C\x65\x67\x6F\x73":{name:_0x61f2[48],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x55\x73\x68\x75\x61\x69\x61":{name:_0x61f2[49],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[38]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x67\x6F\x5F\x50\x61\x67\x6F":{name:_0x61f2[50],utcOffset:-660,offsetStr:_0x61f2[51],countries:[_0x61f2[52],_0x61f2[53]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x65\x6E\x6E\x61":{name:_0x61f2[54],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[55]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x6F\x72\x64\x5F\x48\x6F\x77\x65":{name:_0x61f2[56],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[58]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x63\x71\x75\x61\x72\x69\x65":{name:_0x61f2[59],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x48\x6F\x62\x61\x72\x74":{name:_0x61f2[60],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x43\x75\x72\x72\x69\x65":{name:_0x61f2[61],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4D\x65\x6C\x62\x6F\x75\x72\x6E\x65":{name:_0x61f2[62],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x53\x79\x64\x6E\x65\x79":{name:_0x61f2[63],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x6F\x6B\x65\x6E\x5F\x48\x69\x6C\x6C":{name:_0x61f2[64],utcOffset:630,offsetStr:_0x61f2[65],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x69\x73\x62\x61\x6E\x65":{name:_0x61f2[66],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x69\x6E\x64\x65\x6D\x61\x6E":{name:_0x61f2[67],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x41\x64\x65\x6C\x61\x69\x64\x65":{name:_0x61f2[68],utcOffset:630,offsetStr:_0x61f2[65],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x44\x61\x72\x77\x69\x6E":{name:_0x61f2[69],utcOffset:570,offsetStr:_0x61f2[70],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x50\x65\x72\x74\x68":{name:_0x61f2[71],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x45\x75\x63\x6C\x61":{name:_0x61f2[72],utcOffset:525,offsetStr:_0x61f2[73],countries:[_0x61f2[58]]},"\x41\x73\x69\x61\x2F\x42\x61\x6B\x75":{name:_0x61f2[74],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[75]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x72\x62\x61\x64\x6F\x73":{name:_0x61f2[76],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[78]]},"\x41\x73\x69\x61\x2F\x44\x68\x61\x6B\x61":{name:_0x61f2[79],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[80]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x72\x75\x73\x73\x65\x6C\x73":{name:_0x61f2[81],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[82]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x6F\x66\x69\x61":{name:_0x61f2[83],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[85]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x42\x65\x72\x6D\x75\x64\x61":{name:_0x61f2[86],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[87]]},"\x41\x73\x69\x61\x2F\x42\x72\x75\x6E\x65\x69":{name:_0x61f2[88],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[89]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x61\x5F\x50\x61\x7A":{name:_0x61f2[90],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[91]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x6F\x6E\x68\x61":{name:_0x61f2[92],utcOffset:-120,offsetStr:_0x61f2[93],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x65\x6D":{name:_0x61f2[95],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x61\x6C\x65\x7A\x61":{name:_0x61f2[96],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x63\x69\x66\x65":{name:_0x61f2[97],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x61\x67\x75\x61\x69\x6E\x61":{name:_0x61f2[98],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x63\x65\x69\x6F":{name:_0x61f2[99],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61":{name:_0x61f2[100],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6F\x5F\x50\x61\x75\x6C\x6F":{name:_0x61f2[101],utcOffset:-120,offsetStr:_0x61f2[93],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x70\x6F\x5F\x47\x72\x61\x6E\x64\x65":{name:_0x61f2[102],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x69\x61\x62\x61":{name:_0x61f2[103],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x72\x65\x6D":{name:_0x61f2[104],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x6F\x5F\x56\x65\x6C\x68\x6F":{name:_0x61f2[105],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x61\x5F\x56\x69\x73\x74\x61":{name:_0x61f2[106],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x75\x73":{name:_0x61f2[107],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x69\x72\x75\x6E\x65\x70\x65":{name:_0x61f2[108],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x69\x6F\x5F\x42\x72\x61\x6E\x63\x6F":{name:_0x61f2[110],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x61\x73\x73\x61\x75":{name:_0x61f2[111],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[112]]},"\x41\x73\x69\x61\x2F\x54\x68\x69\x6D\x70\x68\x75":{name:_0x61f2[113],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[114]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x69\x6E\x73\x6B":{name:_0x61f2[115],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[116]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x69\x7A\x65":{name:_0x61f2[117],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[119]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x74\x5F\x4A\x6F\x68\x6E\x73":{name:_0x61f2[120],utcOffset:-210,offsetStr:_0x61f2[121],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x6C\x69\x66\x61\x78":{name:_0x61f2[123],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6C\x61\x63\x65\x5F\x42\x61\x79":{name:_0x61f2[124],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x63\x74\x6F\x6E":{name:_0x61f2[125],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x6F\x73\x65\x5F\x42\x61\x79":{name:_0x61f2[126],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6C\x61\x6E\x63\x2D\x53\x61\x62\x6C\x6F\x6E":{name:_0x61f2[127],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x6F\x72\x6F\x6E\x74\x6F":{name:_0x61f2[128],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x69\x70\x69\x67\x6F\x6E":{name:_0x61f2[129],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6E\x64\x65\x72\x5F\x42\x61\x79":{name:_0x61f2[130],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x71\x61\x6C\x75\x69\x74":{name:_0x61f2[131],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x67\x6E\x69\x72\x74\x75\x6E\x67":{name:_0x61f2[132],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x73\x6F\x6C\x75\x74\x65":{name:_0x61f2[133],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x74\x69\x6B\x6F\x6B\x61\x6E":{name:_0x61f2[134],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x6E\x6B\x69\x6E\x5F\x49\x6E\x6C\x65\x74":{name:_0x61f2[135],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x69\x6E\x6E\x69\x70\x65\x67":{name:_0x61f2[136],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x69\x6E\x79\x5F\x52\x69\x76\x65\x72":{name:_0x61f2[137],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x67\x69\x6E\x61":{name:_0x61f2[138],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x77\x69\x66\x74\x5F\x43\x75\x72\x72\x65\x6E\x74":{name:_0x61f2[139],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x64\x6D\x6F\x6E\x74\x6F\x6E":{name:_0x61f2[140],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x62\x72\x69\x64\x67\x65\x5F\x42\x61\x79":{name:_0x61f2[142],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x65\x6C\x6C\x6F\x77\x6B\x6E\x69\x66\x65":{name:_0x61f2[143],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x75\x76\x69\x6B":{name:_0x61f2[144],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x72\x65\x73\x74\x6F\x6E":{name:_0x61f2[145],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E\x5F\x43\x72\x65\x65\x6B":{name:_0x61f2[146],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x5F\x4E\x65\x6C\x73\x6F\x6E":{name:_0x61f2[147],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x56\x61\x6E\x63\x6F\x75\x76\x65\x72":{name:_0x61f2[148],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x68\x69\x74\x65\x68\x6F\x72\x73\x65":{name:_0x61f2[150],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E":{name:_0x61f2[151],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[122]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x6F\x63\x6F\x73":{name:_0x61f2[152],utcOffset:390,offsetStr:_0x61f2[153],countries:[_0x61f2[154]]},"\x45\x75\x72\x6F\x70\x65\x2F\x5A\x75\x72\x69\x63\x68":{name:_0x61f2[155],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[156],_0x61f2[157],_0x61f2[158]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x62\x69\x64\x6A\x61\x6E":{name:_0x61f2[159],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[160],_0x61f2[161],_0x61f2[162],_0x61f2[163],_0x61f2[164],_0x61f2[165],_0x61f2[166],_0x61f2[167],_0x61f2[168],_0x61f2[169],_0x61f2[170]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x52\x61\x72\x6F\x74\x6F\x6E\x67\x61":{name:_0x61f2[171],utcOffset:-600,offsetStr:_0x61f2[172],countries:[_0x61f2[173]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x69\x61\x67\x6F":{name:_0x61f2[174],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[175]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x61\x73\x74\x65\x72":{name:_0x61f2[176],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[175]]},"\x41\x73\x69\x61\x2F\x53\x68\x61\x6E\x67\x68\x61\x69":{name:_0x61f2[177],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[178]]},"\x41\x73\x69\x61\x2F\x55\x72\x75\x6D\x71\x69":{name:_0x61f2[179],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[178]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x67\x6F\x74\x61":{name:_0x61f2[180],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[181]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x6F\x73\x74\x61\x5F\x52\x69\x63\x61":{name:_0x61f2[182],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[183]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x76\x61\x6E\x61":{name:_0x61f2[184],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[185]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x70\x65\x5F\x56\x65\x72\x64\x65":{name:_0x61f2[186],utcOffset:-60,offsetStr:_0x61f2[187],countries:[_0x61f2[188]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x72\x61\x63\x61\x6F":{name:_0x61f2[189],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[190],_0x61f2[191],_0x61f2[192],_0x61f2[193]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x72\x69\x73\x74\x6D\x61\x73":{name:_0x61f2[194],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[195]]},"\x41\x73\x69\x61\x2F\x4E\x69\x63\x6F\x73\x69\x61":{name:_0x61f2[196],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[197]]},"\x45\x75\x72\x6F\x70\x65\x2F\x50\x72\x61\x67\x75\x65":{name:_0x61f2[198],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[199],_0x61f2[200]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x72\x6C\x69\x6E":{name:_0x61f2[201],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[157]]},"\x45\x75\x72\x6F\x70\x65\x2F\x43\x6F\x70\x65\x6E\x68\x61\x67\x65\x6E":{name:_0x61f2[202],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[203]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x6F\x5F\x44\x6F\x6D\x69\x6E\x67\x6F":{name:_0x61f2[204],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[205]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x6C\x67\x69\x65\x72\x73":{name:_0x61f2[206],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[207]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x79\x61\x71\x75\x69\x6C":{name:_0x61f2[208],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[209]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6C\x61\x70\x61\x67\x6F\x73":{name:_0x61f2[210],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[209]]},"\x45\x75\x72\x6F\x70\x65\x2F\x54\x61\x6C\x6C\x69\x6E\x6E":{name:_0x61f2[211],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[212]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x69\x72\x6F":{name:_0x61f2[213],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[214]]},"\x41\x66\x72\x69\x63\x61\x2F\x45\x6C\x5F\x41\x61\x69\x75\x6E":{name:_0x61f2[215],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[216]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x64\x72\x69\x64":{name:_0x61f2[217],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[218]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x65\x75\x74\x61":{name:_0x61f2[219],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[218]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x6E\x61\x72\x79":{name:_0x61f2[220],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[218]]},"\x45\x75\x72\x6F\x70\x65\x2F\x48\x65\x6C\x73\x69\x6E\x6B\x69":{name:_0x61f2[221],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[222],_0x61f2[223]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x69\x6A\x69":{name:_0x61f2[224],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[226]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x74\x61\x6E\x6C\x65\x79":{name:_0x61f2[227],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[228]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x75\x75\x6B":{name:_0x61f2[229],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[230]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x68\x6E\x70\x65\x69":{name:_0x61f2[231],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[230]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x6F\x73\x72\x61\x65":{name:_0x61f2[232],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[230]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x46\x61\x72\x6F\x65":{name:_0x61f2[233],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[234]]},"\x45\x75\x72\x6F\x70\x65\x2F\x50\x61\x72\x69\x73":{name:_0x61f2[235],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[236]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x6F\x6E\x64\x6F\x6E":{name:_0x61f2[237],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[238],_0x61f2[239],_0x61f2[240],_0x61f2[241]]},"\x41\x73\x69\x61\x2F\x54\x62\x69\x6C\x69\x73\x69":{name:_0x61f2[242],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[243]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x65\x6E\x6E\x65":{name:_0x61f2[244],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[245]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x63\x63\x72\x61":{name:_0x61f2[246],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[247]]},"\x45\x75\x72\x6F\x70\x65\x2F\x47\x69\x62\x72\x61\x6C\x74\x61\x72":{name:_0x61f2[248],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[249]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x64\x74\x68\x61\x62":{name:_0x61f2[250],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x6E\x6D\x61\x72\x6B\x73\x68\x61\x76\x6E":{name:_0x61f2[252],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x63\x6F\x72\x65\x73\x62\x79\x73\x75\x6E\x64":{name:_0x61f2[253],utcOffset:-60,offsetStr:_0x61f2[187],countries:[_0x61f2[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6C\x65":{name:_0x61f2[254],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[251]]},"\x45\x75\x72\x6F\x70\x65\x2F\x41\x74\x68\x65\x6E\x73":{name:_0x61f2[255],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[256]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x6F\x75\x74\x68\x5F\x47\x65\x6F\x72\x67\x69\x61":{name:_0x61f2[257],utcOffset:-120,offsetStr:_0x61f2[93],countries:[_0x61f2[258]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x74\x65\x6D\x61\x6C\x61":{name:_0x61f2[259],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[260]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x6D":{name:_0x61f2[261],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[262],_0x61f2[263]]},"\x41\x66\x72\x69\x63\x61\x2F\x42\x69\x73\x73\x61\x75":{name:_0x61f2[264],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[265]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x79\x61\x6E\x61":{name:_0x61f2[266],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[267]]},"\x41\x73\x69\x61\x2F\x48\x6F\x6E\x67\x5F\x4B\x6F\x6E\x67":{name:_0x61f2[268],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[269]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x65\x67\x75\x63\x69\x67\x61\x6C\x70\x61":{name:_0x61f2[270],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[271]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x2D\x61\x75\x2D\x50\x72\x69\x6E\x63\x65":{name:_0x61f2[272],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[273]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x64\x61\x70\x65\x73\x74":{name:_0x61f2[274],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[275]]},"\x41\x73\x69\x61\x2F\x4A\x61\x6B\x61\x72\x74\x61":{name:_0x61f2[276],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[277]]},"\x41\x73\x69\x61\x2F\x50\x6F\x6E\x74\x69\x61\x6E\x61\x6B":{name:_0x61f2[278],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[277]]},"\x41\x73\x69\x61\x2F\x4D\x61\x6B\x61\x73\x73\x61\x72":{name:_0x61f2[279],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[277]]},"\x41\x73\x69\x61\x2F\x4A\x61\x79\x61\x70\x75\x72\x61":{name:_0x61f2[280],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[277]]},"\x45\x75\x72\x6F\x70\x65\x2F\x44\x75\x62\x6C\x69\x6E":{name:_0x61f2[282],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[283]]},"\x41\x73\x69\x61\x2F\x4A\x65\x72\x75\x73\x61\x6C\x65\x6D":{name:_0x61f2[284],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[285]]},"\x41\x73\x69\x61\x2F\x4B\x6F\x6C\x6B\x61\x74\x61":{name:_0x61f2[286],utcOffset:330,offsetStr:_0x61f2[287],countries:[_0x61f2[288]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x61\x67\x6F\x73":{name:_0x61f2[289],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[290]]},"\x41\x73\x69\x61\x2F\x42\x61\x67\x68\x64\x61\x64":{name:_0x61f2[291],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[292]]},"\x41\x73\x69\x61\x2F\x54\x65\x68\x72\x61\x6E":{name:_0x61f2[293],utcOffset:210,offsetStr:_0x61f2[294],countries:[_0x61f2[295]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x52\x65\x79\x6B\x6A\x61\x76\x69\x6B":{name:_0x61f2[296],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[297]]},"\x45\x75\x72\x6F\x70\x65\x2F\x52\x6F\x6D\x65":{name:_0x61f2[298],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[299],_0x61f2[300],_0x61f2[301]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x61\x6D\x61\x69\x63\x61":{name:_0x61f2[302],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[303]]},"\x41\x73\x69\x61\x2F\x41\x6D\x6D\x61\x6E":{name:_0x61f2[304],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[305]]},"\x41\x73\x69\x61\x2F\x54\x6F\x6B\x79\x6F":{name:_0x61f2[306],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[307]]},"\x41\x66\x72\x69\x63\x61\x2F\x4E\x61\x69\x72\x6F\x62\x69":{name:_0x61f2[308],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[309],_0x61f2[310],_0x61f2[311],_0x61f2[312],_0x61f2[313],_0x61f2[314],_0x61f2[315],_0x61f2[316],_0x61f2[317],_0x61f2[318]]},"\x41\x73\x69\x61\x2F\x42\x69\x73\x68\x6B\x65\x6B":{name:_0x61f2[319],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[320]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x72\x61\x77\x61":{name:_0x61f2[321],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[322]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x6E\x64\x65\x72\x62\x75\x72\x79":{name:_0x61f2[323],utcOffset:780,offsetStr:_0x61f2[324],countries:[_0x61f2[322]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x69\x72\x69\x74\x69\x6D\x61\x74\x69":{name:_0x61f2[325],utcOffset:840,offsetStr:_0x61f2[326],countries:[_0x61f2[322]]},"\x41\x73\x69\x61\x2F\x50\x79\x6F\x6E\x67\x79\x61\x6E\x67":{name:_0x61f2[327],utcOffset:510,offsetStr:_0x61f2[328],countries:[_0x61f2[329]]},"\x41\x73\x69\x61\x2F\x53\x65\x6F\x75\x6C":{name:_0x61f2[330],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[331]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x6D\x61\x6E":{name:_0x61f2[332],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[333]]},"\x41\x73\x69\x61\x2F\x41\x6C\x6D\x61\x74\x79":{name:_0x61f2[334],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[335]]},"\x41\x73\x69\x61\x2F\x51\x79\x7A\x79\x6C\x6F\x72\x64\x61":{name:_0x61f2[336],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[335]]},"\x41\x73\x69\x61\x2F\x41\x71\x74\x6F\x62\x65":{name:_0x61f2[337],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[335]]},"\x41\x73\x69\x61\x2F\x41\x71\x74\x61\x75":{name:_0x61f2[338],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[335]]},"\x41\x73\x69\x61\x2F\x4F\x72\x61\x6C":{name:_0x61f2[339],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[335]]},"\x41\x73\x69\x61\x2F\x42\x65\x69\x72\x75\x74":{name:_0x61f2[340],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[341]]},"\x41\x73\x69\x61\x2F\x43\x6F\x6C\x6F\x6D\x62\x6F":{name:_0x61f2[342],utcOffset:330,offsetStr:_0x61f2[287],countries:[_0x61f2[343]]},"\x41\x66\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x72\x6F\x76\x69\x61":{name:_0x61f2[344],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[345]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x6C\x6E\x69\x75\x73":{name:_0x61f2[346],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[347]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x75\x78\x65\x6D\x62\x6F\x75\x72\x67":{name:_0x61f2[348],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[349]]},"\x45\x75\x72\x6F\x70\x65\x2F\x52\x69\x67\x61":{name:_0x61f2[350],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[351]]},"\x41\x66\x72\x69\x63\x61\x2F\x54\x72\x69\x70\x6F\x6C\x69":{name:_0x61f2[352],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[353]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x73\x61\x62\x6C\x61\x6E\x63\x61":{name:_0x61f2[354],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[355]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x6E\x61\x63\x6F":{name:_0x61f2[356],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[357]]},"\x45\x75\x72\x6F\x70\x65\x2F\x43\x68\x69\x73\x69\x6E\x61\x75":{name:_0x61f2[358],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[359]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x6A\x75\x72\x6F":{name:_0x61f2[360],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[361]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x77\x61\x6A\x61\x6C\x65\x69\x6E":{name:_0x61f2[362],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[361]]},"\x41\x73\x69\x61\x2F\x52\x61\x6E\x67\x6F\x6F\x6E":{name:_0x61f2[363],utcOffset:390,offsetStr:_0x61f2[153],countries:[_0x61f2[364]]},"\x41\x73\x69\x61\x2F\x55\x6C\x61\x61\x6E\x62\x61\x61\x74\x61\x72":{name:_0x61f2[365],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[366]]},"\x41\x73\x69\x61\x2F\x48\x6F\x76\x64":{name:_0x61f2[367],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[366]]},"\x41\x73\x69\x61\x2F\x43\x68\x6F\x69\x62\x61\x6C\x73\x61\x6E":{name:_0x61f2[368],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[366]]},"\x41\x73\x69\x61\x2F\x4D\x61\x63\x61\x75":{name:_0x61f2[369],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[370]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x72\x74\x69\x6E\x69\x71\x75\x65":{name:_0x61f2[371],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[372]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x6C\x74\x61":{name:_0x61f2[373],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[374]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x75\x72\x69\x74\x69\x75\x73":{name:_0x61f2[375],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[376]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x6C\x64\x69\x76\x65\x73":{name:_0x61f2[377],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[378]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x78\x69\x63\x6F\x5F\x43\x69\x74\x79":{name:_0x61f2[379],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6E\x63\x75\x6E":{name:_0x61f2[381],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x72\x69\x64\x61":{name:_0x61f2[382],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x72\x72\x65\x79":{name:_0x61f2[383],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x74\x61\x6D\x6F\x72\x6F\x73":{name:_0x61f2[384],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x7A\x61\x74\x6C\x61\x6E":{name:_0x61f2[385],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x68\x75\x61\x68\x75\x61":{name:_0x61f2[386],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4F\x6A\x69\x6E\x61\x67\x61":{name:_0x61f2[387],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x65\x72\x6D\x6F\x73\x69\x6C\x6C\x6F":{name:_0x61f2[388],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x69\x6A\x75\x61\x6E\x61":{name:_0x61f2[389],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x5F\x49\x73\x61\x62\x65\x6C":{name:_0x61f2[390],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61\x5F\x42\x61\x6E\x64\x65\x72\x61\x73":{name:_0x61f2[391],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[380]]},"\x41\x73\x69\x61\x2F\x4B\x75\x61\x6C\x61\x5F\x4C\x75\x6D\x70\x75\x72":{name:_0x61f2[392],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[393]]},"\x41\x73\x69\x61\x2F\x4B\x75\x63\x68\x69\x6E\x67":{name:_0x61f2[394],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[393]]},"\x41\x66\x72\x69\x63\x61\x2F\x4D\x61\x70\x75\x74\x6F":{name:_0x61f2[395],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[396],_0x61f2[397],_0x61f2[398],_0x61f2[399],_0x61f2[400],_0x61f2[401],_0x61f2[402],_0x61f2[403]]},"\x41\x66\x72\x69\x63\x61\x2F\x57\x69\x6E\x64\x68\x6F\x65\x6B":{name:_0x61f2[404],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[405]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x75\x6D\x65\x61":{name:_0x61f2[406],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[407]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x72\x66\x6F\x6C\x6B":{name:_0x61f2[408],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[409]]},"\x41\x66\x72\x69\x63\x61\x2F\x4C\x61\x67\x6F\x73":{name:_0x61f2[410],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[411],_0x61f2[412],_0x61f2[413],_0x61f2[399],_0x61f2[414],_0x61f2[415],_0x61f2[416],_0x61f2[417],_0x61f2[418],_0x61f2[419]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x67\x75\x61":{name:_0x61f2[420],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[421]]},"\x45\x75\x72\x6F\x70\x65\x2F\x41\x6D\x73\x74\x65\x72\x64\x61\x6D":{name:_0x61f2[422],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[423]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4F\x73\x6C\x6F":{name:_0x61f2[424],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[425],_0x61f2[426]]},"\x41\x73\x69\x61\x2F\x4B\x61\x74\x68\x6D\x61\x6E\x64\x75":{name:_0x61f2[427],utcOffset:345,offsetStr:_0x61f2[428],countries:[_0x61f2[429]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x61\x75\x72\x75":{name:_0x61f2[430],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[431]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x69\x75\x65":{name:_0x61f2[432],utcOffset:-660,offsetStr:_0x61f2[51],countries:[_0x61f2[433]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x75\x63\x6B\x6C\x61\x6E\x64":{name:_0x61f2[434],utcOffset:780,offsetStr:_0x61f2[324],countries:[_0x61f2[435],_0x61f2[21]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x61\x74\x68\x61\x6D":{name:_0x61f2[436],utcOffset:825,offsetStr:_0x61f2[437],countries:[_0x61f2[435]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x61\x6D\x61":{name:_0x61f2[438],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[439]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x69\x6D\x61":{name:_0x61f2[440],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[441]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x68\x69\x74\x69":{name:_0x61f2[442],utcOffset:-600,offsetStr:_0x61f2[172],countries:[_0x61f2[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x72\x71\x75\x65\x73\x61\x73":{name:_0x61f2[444],utcOffset:-570,offsetStr:_0x61f2[445],countries:[_0x61f2[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6D\x62\x69\x65\x72":{name:_0x61f2[446],utcOffset:-540,offsetStr:_0x61f2[447],countries:[_0x61f2[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x72\x74\x5F\x4D\x6F\x72\x65\x73\x62\x79":{name:_0x61f2[448],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[449]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x42\x6F\x75\x67\x61\x69\x6E\x76\x69\x6C\x6C\x65":{name:_0x61f2[450],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[449]]},"\x41\x73\x69\x61\x2F\x4D\x61\x6E\x69\x6C\x61":{name:_0x61f2[451],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[452]]},"\x41\x73\x69\x61\x2F\x4B\x61\x72\x61\x63\x68\x69":{name:_0x61f2[453],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[454]]},"\x45\x75\x72\x6F\x70\x65\x2F\x57\x61\x72\x73\x61\x77":{name:_0x61f2[455],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[456]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x69\x71\x75\x65\x6C\x6F\x6E":{name:_0x61f2[457],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[458]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x69\x74\x63\x61\x69\x72\x6E":{name:_0x61f2[459],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[460]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x75\x65\x72\x74\x6F\x5F\x52\x69\x63\x6F":{name:_0x61f2[461],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[462]]},"\x41\x73\x69\x61\x2F\x47\x61\x7A\x61":{name:_0x61f2[463],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[464]]},"\x41\x73\x69\x61\x2F\x48\x65\x62\x72\x6F\x6E":{name:_0x61f2[465],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[464]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x69\x73\x62\x6F\x6E":{name:_0x61f2[466],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[467]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x4D\x61\x64\x65\x69\x72\x61":{name:_0x61f2[468],utcOffset:0,offsetStr:_0x61f2[36],countries:[_0x61f2[467]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x41\x7A\x6F\x72\x65\x73":{name:_0x61f2[469],utcOffset:-60,offsetStr:_0x61f2[187],countries:[_0x61f2[467]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x6C\x61\x75":{name:_0x61f2[470],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[471]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x73\x75\x6E\x63\x69\x6F\x6E":{name:_0x61f2[472],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[473]]},"\x41\x73\x69\x61\x2F\x51\x61\x74\x61\x72":{name:_0x61f2[474],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[475],_0x61f2[476]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x52\x65\x75\x6E\x69\x6F\x6E":{name:_0x61f2[477],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[478],_0x61f2[479]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x63\x68\x61\x72\x65\x73\x74":{name:_0x61f2[480],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[481]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x6C\x67\x72\x61\x64\x65":{name:_0x61f2[482],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[483],_0x61f2[484],_0x61f2[485],_0x61f2[486],_0x61f2[487],_0x61f2[488]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4B\x61\x6C\x69\x6E\x69\x6E\x67\x72\x61\x64":{name:_0x61f2[489],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x73\x63\x6F\x77":{name:_0x61f2[491],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x69\x6D\x66\x65\x72\x6F\x70\x6F\x6C":{name:_0x61f2[492],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x6F\x6C\x67\x6F\x67\x72\x61\x64":{name:_0x61f2[493],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x61\x6D\x61\x72\x61":{name:_0x61f2[494],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x59\x65\x6B\x61\x74\x65\x72\x69\x6E\x62\x75\x72\x67":{name:_0x61f2[495],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4F\x6D\x73\x6B":{name:_0x61f2[496],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x73\x69\x62\x69\x72\x73\x6B":{name:_0x61f2[497],utcOffset:360,offsetStr:_0x61f2[30],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x6B\x75\x7A\x6E\x65\x74\x73\x6B":{name:_0x61f2[498],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4B\x72\x61\x73\x6E\x6F\x79\x61\x72\x73\x6B":{name:_0x61f2[499],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x49\x72\x6B\x75\x74\x73\x6B":{name:_0x61f2[500],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x43\x68\x69\x74\x61":{name:_0x61f2[501],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x59\x61\x6B\x75\x74\x73\x6B":{name:_0x61f2[502],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4B\x68\x61\x6E\x64\x79\x67\x61":{name:_0x61f2[503],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x56\x6C\x61\x64\x69\x76\x6F\x73\x74\x6F\x6B":{name:_0x61f2[504],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x53\x61\x6B\x68\x61\x6C\x69\x6E":{name:_0x61f2[505],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x55\x73\x74\x2D\x4E\x65\x72\x61":{name:_0x61f2[506],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4D\x61\x67\x61\x64\x61\x6E":{name:_0x61f2[507],utcOffset:600,offsetStr:_0x61f2[32],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x53\x72\x65\x64\x6E\x65\x6B\x6F\x6C\x79\x6D\x73\x6B":{name:_0x61f2[508],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x4B\x61\x6D\x63\x68\x61\x74\x6B\x61":{name:_0x61f2[509],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x41\x6E\x61\x64\x79\x72":{name:_0x61f2[510],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[490]]},"\x41\x73\x69\x61\x2F\x52\x69\x79\x61\x64\x68":{name:_0x61f2[511],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[512],_0x61f2[513],_0x61f2[514]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x64\x61\x6C\x63\x61\x6E\x61\x6C":{name:_0x61f2[515],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[516]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x68\x65":{name:_0x61f2[517],utcOffset:240,offsetStr:_0x61f2[9],countries:[_0x61f2[518]]},"\x41\x66\x72\x69\x63\x61\x2F\x4B\x68\x61\x72\x74\x6F\x75\x6D":{name:_0x61f2[519],utcOffset:180,offsetStr:_0x61f2[34],countries:[_0x61f2[520],_0x61f2[521]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x74\x6F\x63\x6B\x68\x6F\x6C\x6D":{name:_0x61f2[522],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[523]]},"\x41\x73\x69\x61\x2F\x53\x69\x6E\x67\x61\x70\x6F\x72\x65":{name:_0x61f2[524],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[525]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x72\x61\x6D\x61\x72\x69\x62\x6F":{name:_0x61f2[526],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[527]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x6C\x5F\x53\x61\x6C\x76\x61\x64\x6F\x72":{name:_0x61f2[528],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[529]]},"\x41\x73\x69\x61\x2F\x44\x61\x6D\x61\x73\x63\x75\x73":{name:_0x61f2[530],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[531]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x72\x61\x6E\x64\x5F\x54\x75\x72\x6B":{name:_0x61f2[532],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[533]]},"\x41\x66\x72\x69\x63\x61\x2F\x4E\x64\x6A\x61\x6D\x65\x6E\x61":{name:_0x61f2[534],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[535]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4B\x65\x72\x67\x75\x65\x6C\x65\x6E":{name:_0x61f2[536],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[479]]},"\x41\x73\x69\x61\x2F\x42\x61\x6E\x67\x6B\x6F\x6B":{name:_0x61f2[537],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[538],_0x61f2[539],_0x61f2[540],_0x61f2[541]]},"\x41\x73\x69\x61\x2F\x44\x75\x73\x68\x61\x6E\x62\x65":{name:_0x61f2[542],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[543]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x61\x6B\x61\x6F\x66\x6F":{name:_0x61f2[544],utcOffset:780,offsetStr:_0x61f2[324],countries:[_0x61f2[545]]},"\x41\x73\x69\x61\x2F\x44\x69\x6C\x69":{name:_0x61f2[546],utcOffset:540,offsetStr:_0x61f2[281],countries:[_0x61f2[547]]},"\x41\x73\x69\x61\x2F\x41\x73\x68\x67\x61\x62\x61\x74":{name:_0x61f2[548],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[549]]},"\x41\x66\x72\x69\x63\x61\x2F\x54\x75\x6E\x69\x73":{name:_0x61f2[550],utcOffset:60,offsetStr:_0x61f2[6],countries:[_0x61f2[551]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x6F\x6E\x67\x61\x74\x61\x70\x75":{name:_0x61f2[552],utcOffset:780,offsetStr:_0x61f2[324],countries:[_0x61f2[553]]},"\x45\x75\x72\x6F\x70\x65\x2F\x49\x73\x74\x61\x6E\x62\x75\x6C":{name:_0x61f2[554],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[555]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x5F\x6F\x66\x5F\x53\x70\x61\x69\x6E":{name:_0x61f2[556],utcOffset:-240,offsetStr:_0x61f2[77],countries:[_0x61f2[557],_0x61f2[558],_0x61f2[559],_0x61f2[560],_0x61f2[561],_0x61f2[562],_0x61f2[563],_0x61f2[564],_0x61f2[565],_0x61f2[566],_0x61f2[567],_0x61f2[568],_0x61f2[569],_0x61f2[570]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x75\x6E\x61\x66\x75\x74\x69":{name:_0x61f2[571],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[572]]},"\x41\x73\x69\x61\x2F\x54\x61\x69\x70\x65\x69":{name:_0x61f2[573],utcOffset:480,offsetStr:_0x61f2[28],countries:[_0x61f2[574]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4B\x69\x65\x76":{name:_0x61f2[575],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[576]]},"\x45\x75\x72\x6F\x70\x65\x2F\x55\x7A\x68\x67\x6F\x72\x6F\x64":{name:_0x61f2[577],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[576]]},"\x45\x75\x72\x6F\x70\x65\x2F\x5A\x61\x70\x6F\x72\x6F\x7A\x68\x79\x65":{name:_0x61f2[578],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[576]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6B\x65":{name:_0x61f2[579],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[53]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x65\x77\x5F\x59\x6F\x72\x6B":{name:_0x61f2[580],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x74\x72\x6F\x69\x74":{name:_0x61f2[582],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4C\x6F\x75\x69\x73\x76\x69\x6C\x6C\x65":{name:_0x61f2[583],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4D\x6F\x6E\x74\x69\x63\x65\x6C\x6C\x6F":{name:_0x61f2[584],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x70\x6F\x6C\x69\x73":{name:_0x61f2[585],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x69\x6E\x63\x65\x6E\x6E\x65\x73":{name:_0x61f2[586],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x57\x69\x6E\x61\x6D\x61\x63":{name:_0x61f2[587],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4D\x61\x72\x65\x6E\x67\x6F":{name:_0x61f2[588],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x50\x65\x74\x65\x72\x73\x62\x75\x72\x67":{name:_0x61f2[589],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x65\x76\x61\x79":{name:_0x61f2[590],utcOffset:-300,offsetStr:_0x61f2[109],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x63\x61\x67\x6F":{name:_0x61f2[591],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x54\x65\x6C\x6C\x5F\x43\x69\x74\x79":{name:_0x61f2[592],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4B\x6E\x6F\x78":{name:_0x61f2[593],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x6E\x6F\x6D\x69\x6E\x65\x65":{name:_0x61f2[594],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x43\x65\x6E\x74\x65\x72":{name:_0x61f2[595],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x4E\x65\x77\x5F\x53\x61\x6C\x65\x6D":{name:_0x61f2[596],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x42\x65\x75\x6C\x61\x68":{name:_0x61f2[597],utcOffset:-360,offsetStr:_0x61f2[118],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x6E\x76\x65\x72":{name:_0x61f2[598],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x69\x73\x65":{name:_0x61f2[599],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x68\x6F\x65\x6E\x69\x78":{name:_0x61f2[600],utcOffset:-420,offsetStr:_0x61f2[141],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x6F\x73\x5F\x41\x6E\x67\x65\x6C\x65\x73":{name:_0x61f2[601],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x74\x6C\x61\x6B\x61\x74\x6C\x61":{name:_0x61f2[602],utcOffset:-480,offsetStr:_0x61f2[149],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x6E\x63\x68\x6F\x72\x61\x67\x65":{name:_0x61f2[603],utcOffset:-540,offsetStr:_0x61f2[447],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x75\x6E\x65\x61\x75":{name:_0x61f2[604],utcOffset:-540,offsetStr:_0x61f2[447],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x69\x74\x6B\x61":{name:_0x61f2[605],utcOffset:-540,offsetStr:_0x61f2[447],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x61\x6B\x75\x74\x61\x74":{name:_0x61f2[606],utcOffset:-540,offsetStr:_0x61f2[447],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x6D\x65":{name:_0x61f2[607],utcOffset:-540,offsetStr:_0x61f2[447],countries:[_0x61f2[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x64\x61\x6B":{name:_0x61f2[608],utcOffset:-600,offsetStr:_0x61f2[172],countries:[_0x61f2[581]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x48\x6F\x6E\x6F\x6C\x75\x6C\x75":{name:_0x61f2[609],utcOffset:-600,offsetStr:_0x61f2[172],countries:[_0x61f2[581],_0x61f2[53]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x76\x69\x64\x65\x6F":{name:_0x61f2[610],utcOffset:-180,offsetStr:_0x61f2[20],countries:[_0x61f2[611]]},"\x41\x73\x69\x61\x2F\x53\x61\x6D\x61\x72\x6B\x61\x6E\x64":{name:_0x61f2[612],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[613]]},"\x41\x73\x69\x61\x2F\x54\x61\x73\x68\x6B\x65\x6E\x74":{name:_0x61f2[614],utcOffset:300,offsetStr:_0x61f2[24],countries:[_0x61f2[613]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x72\x61\x63\x61\x73":{name:_0x61f2[615],utcOffset:-270,offsetStr:_0x61f2[616],countries:[_0x61f2[617]]},"\x41\x73\x69\x61\x2F\x48\x6F\x5F\x43\x68\x69\x5F\x4D\x69\x6E\x68":{name:_0x61f2[618],utcOffset:420,offsetStr:_0x61f2[26],countries:[_0x61f2[541]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x66\x61\x74\x65":{name:_0x61f2[619],utcOffset:660,offsetStr:_0x61f2[57],countries:[_0x61f2[620]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6C\x6C\x69\x73":{name:_0x61f2[621],utcOffset:720,offsetStr:_0x61f2[225],countries:[_0x61f2[622]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x70\x69\x61":{name:_0x61f2[623],utcOffset:840,offsetStr:_0x61f2[326],countries:[_0x61f2[624]]},"\x41\x66\x72\x69\x63\x61\x2F\x4A\x6F\x68\x61\x6E\x6E\x65\x73\x62\x75\x72\x67":{name:_0x61f2[625],utcOffset:120,offsetStr:_0x61f2[84],countries:[_0x61f2[626],_0x61f2[627],_0x61f2[628]]}}}
\ No newline at end of file
index 3582884..69efedb 100644 (file)
@@ -1 +1 @@
-var _0x4839=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x73\x65\x72\x76\x65\x2D\x66\x61\x76\x69\x63\x6F\x6E","\x6D\x6F\x72\x67\x61\x6E","\x73\x68\x72\x69\x6E\x6B\x2D\x72\x61\x79","\x62\x6F\x64\x79\x2D\x70\x61\x72\x73\x65\x72","\x6D\x65\x74\x68\x6F\x64\x2D\x6F\x76\x65\x72\x72\x69\x64\x65","\x63\x6F\x6F\x6B\x69\x65\x2D\x70\x61\x72\x73\x65\x72","\x65\x72\x72\x6F\x72\x68\x61\x6E\x64\x6C\x65\x72","\x70\x61\x74\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x6D\x6F\x6D\x65\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74","\x65\x6E\x76","\x67\x65\x74","\x72\x65\x6D\x6F\x74\x65\x2D\x61\x64\x64\x72\x65\x73\x73","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x69\x70","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x65\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x75\x62\x6C\x69\x63","\x66\x61\x76\x69\x63\x6F\x6E\x2E\x69\x63\x6F","\x6A\x6F\x69\x6E","\x75\x73\x65","\x61\x70\x70\x50\x61\x74\x68","\x73\x65\x74","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6C\x69\x65\x6E\x74","\x6A\x73\x6F\x6E\x20\x72\x65\x70\x6C\x61\x63\x65\x72","\x2E","\x73\x70\x6C\x69\x74","\x74\x6F\x49\x53\x4F\x53\x74\x72\x69\x6E\x67","\x5A","\x73\x74\x61\x74\x69\x63","\x5B\x3A\x64\x61\x74\x65\x74\x69\x6D\x65\x5D\x20\x3A\x6D\x65\x74\x68\x6F\x64\x20\x3A\x72\x65\x6D\x6F\x74\x65\x2D\x61\x64\x64\x72\x65\x73\x73\x20\x3A\x72\x65\x6D\x6F\x74\x65\x2D\x75\x73\x65\x72\x20\x3A\x75\x72\x6C\x20\x3A\x73\x74\x61\x74\x75\x73\x20\x3A\x72\x65\x73\x70\x6F\x6E\x73\x65\x2D\x74\x69\x6D\x65\x20\x6D\x73\x20\x2D\x20\x3A\x72\x65\x73\x5B\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x6C\x65\x6E\x67\x74\x68\x5D","\x76\x69\x65\x77\x73","\x2F\x73\x65\x72\x76\x65\x72\x2F\x76\x69\x65\x77\x73","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72\x46\x69\x6C\x65","\x65\x6A\x73","\x65\x6E\x67\x69\x6E\x65","\x76\x69\x65\x77\x20\x65\x6E\x67\x69\x6E\x65","\x35\x30\x6D\x62","\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6A\x73\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x65\x73\x73\x69\x6F\x6E\x73","\x73\x79\x6E\x63","\x53\x65\x73\x73\x69\x6F\x6E","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73"];_0x4839[0];var express=require(_0x4839[1]);var favicon=require(_0x4839[2]);var morgan=require(_0x4839[3]);var shrinkRay=require(_0x4839[4]);var bodyParser=require(_0x4839[5]);var methodOverride=require(_0x4839[6]);var cookieParser=require(_0x4839[7]);var errorHandler=require(_0x4839[8]);var path=require(_0x4839[9]);var config=require(_0x4839[10]);var passport=require(_0x4839[11]);var session=require(_0x4839[12]);var db=require(_0x4839[14])[_0x4839[13]];var expressSequelizeSession=require(_0x4839[15]);var moment=require(_0x4839[16]);var Store=expressSequelizeSession(session.Store);exports[_0x4839[17]]= function(_0xc89cx11){var _0xc89cx12=_0xc89cx11[_0x4839[19]](_0x4839[18]);morgan[_0x4839[26]](_0x4839[20],function(_0xc89cx13,_0xc89cx14){return _0xc89cx13[_0x4839[22]][_0x4839[21]]?_0xc89cx13[_0x4839[22]][_0x4839[21]]:_0xc89cx13[_0x4839[24]][_0x4839[23]]|| _0xc89cx13[_0x4839[25]]});morgan[_0x4839[26]](_0x4839[27],function(_0xc89cx13,_0xc89cx14){return moment()[_0x4839[29]](_0x4839[28])});if(_0xc89cx12=== _0x4839[30]){_0xc89cx11[_0x4839[35]](favicon(path[_0x4839[34]](config[_0x4839[31]],_0x4839[32],_0x4839[33])));_0xc89cx11[_0x4839[37]](_0x4839[36],path[_0x4839[34]](config[_0x4839[31]],_0x4839[32]))};if(_0xc89cx12=== _0x4839[38]|| _0xc89cx12=== _0x4839[39]){_0xc89cx11[_0x4839[35]](favicon(path[_0x4839[34]](config[_0x4839[31]],_0x4839[40],_0x4839[33])));_0xc89cx11[_0x4839[37]](_0x4839[36],path[_0x4839[34]](config[_0x4839[31]],_0x4839[40]));_0xc89cx11[_0x4839[35]](errorHandler())};_0xc89cx11[_0x4839[37]](_0x4839[41],function(_0xc89cx15,_0xc89cx16){if(this[_0xc89cx15] instanceof  Date){_0xc89cx16= this[_0xc89cx15][_0x4839[44]]()[_0x4839[43]](_0x4839[42])[0]+ _0x4839[45]};return _0xc89cx16});_0xc89cx11[_0x4839[35]](express[_0x4839[46]](_0xc89cx11[_0x4839[19]](_0x4839[36])));_0xc89cx11[_0x4839[35]](morgan(_0x4839[47]));_0xc89cx11[_0x4839[37]](_0x4839[48],config[_0x4839[31]]+ _0x4839[49]);_0xc89cx11[_0x4839[53]](_0x4839[50],require(_0x4839[52])[_0x4839[51]]);_0xc89cx11[_0x4839[37]](_0x4839[54],_0x4839[50]);_0xc89cx11[_0x4839[35]](shrinkRay());_0xc89cx11[_0x4839[35]](bodyParser[_0x4839[56]]({limit:_0x4839[55],extended:true}));_0xc89cx11[_0x4839[35]](bodyParser[_0x4839[57]]({limit:_0x4839[55]}));_0xc89cx11[_0x4839[35]](methodOverride());_0xc89cx11[_0x4839[35]](cookieParser());_0xc89cx11[_0x4839[35]](passport[_0x4839[58]]());var _0xc89cx17= new Store(db[_0x4839[59]],_0x4839[60]);_0xc89cx17[_0x4839[62]][_0x4839[61]]();_0xc89cx11[_0x4839[35]](session({secret:config[_0x4839[64]][_0x4839[63]],saveUninitialized:true,resave:false,store:_0xc89cx17}))}
\ No newline at end of file
+var _0xae9d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x73\x65\x72\x76\x65\x2D\x66\x61\x76\x69\x63\x6F\x6E","\x6D\x6F\x72\x67\x61\x6E","\x73\x68\x72\x69\x6E\x6B\x2D\x72\x61\x79","\x62\x6F\x64\x79\x2D\x70\x61\x72\x73\x65\x72","\x6D\x65\x74\x68\x6F\x64\x2D\x6F\x76\x65\x72\x72\x69\x64\x65","\x63\x6F\x6F\x6B\x69\x65\x2D\x70\x61\x72\x73\x65\x72","\x65\x72\x72\x6F\x72\x68\x61\x6E\x64\x6C\x65\x72","\x70\x61\x74\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x6D\x6F\x6D\x65\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74","\x65\x6E\x76","\x67\x65\x74","\x72\x65\x6D\x6F\x74\x65\x2D\x61\x64\x64\x72\x65\x73\x73","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x69\x70","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x65\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x75\x62\x6C\x69\x63","\x66\x61\x76\x69\x63\x6F\x6E\x2E\x69\x63\x6F","\x6A\x6F\x69\x6E","\x75\x73\x65","\x61\x70\x70\x50\x61\x74\x68","\x73\x65\x74","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6C\x69\x65\x6E\x74","\x6A\x73\x6F\x6E\x20\x72\x65\x70\x6C\x61\x63\x65\x72","\x2E","\x73\x70\x6C\x69\x74","\x74\x6F\x49\x53\x4F\x53\x74\x72\x69\x6E\x67","\x5A","\x73\x74\x61\x74\x69\x63","\x5B\x3A\x64\x61\x74\x65\x74\x69\x6D\x65\x5D\x20\x3A\x6D\x65\x74\x68\x6F\x64\x20\x3A\x72\x65\x6D\x6F\x74\x65\x2D\x61\x64\x64\x72\x65\x73\x73\x20\x3A\x72\x65\x6D\x6F\x74\x65\x2D\x75\x73\x65\x72\x20\x3A\x75\x72\x6C\x20\x3A\x73\x74\x61\x74\x75\x73\x20\x3A\x72\x65\x73\x70\x6F\x6E\x73\x65\x2D\x74\x69\x6D\x65\x20\x6D\x73\x20\x2D\x20\x3A\x72\x65\x73\x5B\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x6C\x65\x6E\x67\x74\x68\x5D","\x76\x69\x65\x77\x73","\x2F\x73\x65\x72\x76\x65\x72\x2F\x76\x69\x65\x77\x73","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72\x46\x69\x6C\x65","\x65\x6A\x73","\x65\x6E\x67\x69\x6E\x65","\x76\x69\x65\x77\x20\x65\x6E\x67\x69\x6E\x65","\x35\x30\x6D\x62","\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6A\x73\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x65\x73\x73\x69\x6F\x6E\x73","\x73\x79\x6E\x63","\x53\x65\x73\x73\x69\x6F\x6E","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73"];_0xae9d[0];var express=require(_0xae9d[1]);var favicon=require(_0xae9d[2]);var morgan=require(_0xae9d[3]);var shrinkRay=require(_0xae9d[4]);var bodyParser=require(_0xae9d[5]);var methodOverride=require(_0xae9d[6]);var cookieParser=require(_0xae9d[7]);var errorHandler=require(_0xae9d[8]);var path=require(_0xae9d[9]);var config=require(_0xae9d[10]);var passport=require(_0xae9d[11]);var session=require(_0xae9d[12]);var db=require(_0xae9d[14])[_0xae9d[13]];var expressSequelizeSession=require(_0xae9d[15]);var moment=require(_0xae9d[16]);var Store=expressSequelizeSession(session.Store);exports[_0xae9d[17]]= function(_0x97ecx11){var _0x97ecx12=_0x97ecx11[_0xae9d[19]](_0xae9d[18]);morgan[_0xae9d[26]](_0xae9d[20],function(_0x97ecx13,_0x97ecx14){return _0x97ecx13[_0xae9d[22]][_0xae9d[21]]?_0x97ecx13[_0xae9d[22]][_0xae9d[21]]:_0x97ecx13[_0xae9d[24]][_0xae9d[23]]|| _0x97ecx13[_0xae9d[25]]});morgan[_0xae9d[26]](_0xae9d[27],function(_0x97ecx13,_0x97ecx14){return moment()[_0xae9d[29]](_0xae9d[28])});if(_0x97ecx12=== _0xae9d[30]){_0x97ecx11[_0xae9d[35]](favicon(path[_0xae9d[34]](config[_0xae9d[31]],_0xae9d[32],_0xae9d[33])));_0x97ecx11[_0xae9d[37]](_0xae9d[36],path[_0xae9d[34]](config[_0xae9d[31]],_0xae9d[32]))};if(_0x97ecx12=== _0xae9d[38]|| _0x97ecx12=== _0xae9d[39]){_0x97ecx11[_0xae9d[35]](favicon(path[_0xae9d[34]](config[_0xae9d[31]],_0xae9d[40],_0xae9d[33])));_0x97ecx11[_0xae9d[37]](_0xae9d[36],path[_0xae9d[34]](config[_0xae9d[31]],_0xae9d[40]));_0x97ecx11[_0xae9d[35]](errorHandler())};_0x97ecx11[_0xae9d[37]](_0xae9d[41],function(_0x97ecx15,_0x97ecx16){if(this[_0x97ecx15] instanceof  Date){_0x97ecx16= this[_0x97ecx15][_0xae9d[44]]()[_0xae9d[43]](_0xae9d[42])[0]+ _0xae9d[45]};return _0x97ecx16});_0x97ecx11[_0xae9d[35]](express[_0xae9d[46]](_0x97ecx11[_0xae9d[19]](_0xae9d[36])));_0x97ecx11[_0xae9d[35]](morgan(_0xae9d[47]));_0x97ecx11[_0xae9d[37]](_0xae9d[48],config[_0xae9d[31]]+ _0xae9d[49]);_0x97ecx11[_0xae9d[53]](_0xae9d[50],require(_0xae9d[52])[_0xae9d[51]]);_0x97ecx11[_0xae9d[37]](_0xae9d[54],_0xae9d[50]);_0x97ecx11[_0xae9d[35]](shrinkRay());_0x97ecx11[_0xae9d[35]](bodyParser[_0xae9d[56]]({limit:_0xae9d[55],extended:true}));_0x97ecx11[_0xae9d[35]](bodyParser[_0xae9d[57]]({limit:_0xae9d[55]}));_0x97ecx11[_0xae9d[35]](methodOverride());_0x97ecx11[_0xae9d[35]](cookieParser());_0x97ecx11[_0xae9d[35]](passport[_0xae9d[58]]());var _0x97ecx17= new Store(db[_0xae9d[59]],_0xae9d[60]);_0x97ecx17[_0xae9d[62]][_0xae9d[61]]();_0x97ecx11[_0xae9d[35]](session({secret:config[_0xae9d[64]][_0xae9d[63]],saveUninitialized:true,resave:false,store:_0x97ecx17}))}
\ No newline at end of file
index 4b65d1a..943f05b 100644 (file)
@@ -1 +1 @@
-var _0x5029=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6F\x73","\x63\x72\x79\x70\x74\x6F","\x62\x69\x6D\x65\x64\x69\x61\x2D\x6D\x61\x63\x68\x69\x6E\x65\x2D\x75\x75\x69\x64","\x65\x78\x65\x63\x53\x79\x6E\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x6E\x65\x74\x77\x6F\x72\x6B\x49\x6E\x74\x65\x72\x66\x61\x63\x65\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x66\x61\x6D\x69\x6C\x79","\x49\x50\x76\x34","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x69\x6C\x74\x65\x72","\x63\x6F\x6E\x63\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x6D\x61\x63","\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30","\x61\x64\x64\x72\x65\x73\x73","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x67\x65\x74\x55\x75\x69\x64","\x0D\x0A","","\x72\x65\x70\x6C\x61\x63\x65","\x64\x6D\x69\x64\x65\x63\x6F\x64\x65\x20\x2D\x2D\x73\x74\x72\x69\x6E\x67\x20\x73\x79\x73\x74\x65\x6D\x2D\x75\x75\x69\x64","\x75\x74\x66\x38","\x77\x69\x6E\x33\x32","\x75\x75\x69\x64","\x7C","\x68\x65\x78","\x64\x69\x67\x65\x73\x74","\x75\x70\x64\x61\x74\x65","\x6D\x64\x35","\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2D","\x70\x6C\x61\x74\x66\x6F\x72\x6D"];_0x5029[0];var os=require(_0x5029[1]);var crypto=require(_0x5029[2]);var machine=require(_0x5029[3]);var exec=require(_0x5029[5])[_0x5029[4]];function getInterfaces(){var _0x5663x6=[];var _0x5663x7=os[_0x5029[6]]();for(var _0x5663x8 in _0x5663x7){if(_0x5663x7[_0x5029[7]](_0x5663x8)){var _0x5663x9=_0x5663x7[_0x5663x8][_0x5029[11]](function(_0x5663xa){return _0x5663xa[_0x5029[8]]=== _0x5029[9]&& _0x5663xa[_0x5029[10]]=== false});_0x5663x6= _0x5663x6[_0x5029[12]](_0x5663x9)}};return _0x5663x6}function macAddress(){var _0x5663x6=getInterfaces();return (_0x5663x6[_0x5029[13]]> 0)?_0x5663x6[0][_0x5029[14]]:_0x5029[15]}function ipAddress(){var _0x5663x6=getInterfaces();return (_0x5663x6[_0x5029[13]]> 0)?_0x5663x6[0][_0x5029[16]]:_0x5029[17]}exports[_0x5029[18]]= function(){switch(os[_0x5029[34]]()){case _0x5029[24]:return exec(_0x5029[22],{encoding:_0x5029[23]})[_0x5029[21]](_0x5029[19],_0x5029[20]);default:var _0x5663xd=machine[_0x5029[25]]+ _0x5029[26]+ macAddress()+ _0x5029[26]+ ipAddress();var _0x5663xe=crypto[_0x5029[31]](_0x5029[30])[_0x5029[29]](_0x5663xd)[_0x5029[28]](_0x5029[27]);return _0x5663xe[_0x5029[32]](0,8)+ _0x5029[33]+ _0x5663xe[_0x5029[32]](8,12)+ _0x5029[33]+ _0x5663xe[_0x5029[32]](12,16)+ _0x5029[33]+ _0x5663xe[_0x5029[32]](16,20)+ _0x5029[33]+ _0x5663xe[_0x5029[32]](20)}}
\ No newline at end of file
+var _0xef0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6F\x73","\x63\x72\x79\x70\x74\x6F","\x62\x69\x6D\x65\x64\x69\x61\x2D\x6D\x61\x63\x68\x69\x6E\x65\x2D\x75\x75\x69\x64","\x65\x78\x65\x63\x53\x79\x6E\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x6E\x65\x74\x77\x6F\x72\x6B\x49\x6E\x74\x65\x72\x66\x61\x63\x65\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x66\x61\x6D\x69\x6C\x79","\x49\x50\x76\x34","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x69\x6C\x74\x65\x72","\x63\x6F\x6E\x63\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x6D\x61\x63","\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30","\x61\x64\x64\x72\x65\x73\x73","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x67\x65\x74\x55\x75\x69\x64","\x0D\x0A","","\x72\x65\x70\x6C\x61\x63\x65","\x64\x6D\x69\x64\x65\x63\x6F\x64\x65\x20\x2D\x2D\x73\x74\x72\x69\x6E\x67\x20\x73\x79\x73\x74\x65\x6D\x2D\x75\x75\x69\x64","\x75\x74\x66\x38","\x77\x69\x6E\x33\x32","\x75\x75\x69\x64","\x7C","\x68\x65\x78","\x64\x69\x67\x65\x73\x74","\x75\x70\x64\x61\x74\x65","\x6D\x64\x35","\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2D","\x70\x6C\x61\x74\x66\x6F\x72\x6D"];_0xef0b[0];var os=require(_0xef0b[1]);var crypto=require(_0xef0b[2]);var machine=require(_0xef0b[3]);var exec=require(_0xef0b[5])[_0xef0b[4]];function getInterfaces(){var _0x15ebx6=[];var _0x15ebx7=os[_0xef0b[6]]();for(var _0x15ebx8 in _0x15ebx7){if(_0x15ebx7[_0xef0b[7]](_0x15ebx8)){var _0x15ebx9=_0x15ebx7[_0x15ebx8][_0xef0b[11]](function(_0x15ebxa){return _0x15ebxa[_0xef0b[8]]=== _0xef0b[9]&& _0x15ebxa[_0xef0b[10]]=== false});_0x15ebx6= _0x15ebx6[_0xef0b[12]](_0x15ebx9)}};return _0x15ebx6}function macAddress(){var _0x15ebx6=getInterfaces();return (_0x15ebx6[_0xef0b[13]]> 0)?_0x15ebx6[0][_0xef0b[14]]:_0xef0b[15]}function ipAddress(){var _0x15ebx6=getInterfaces();return (_0x15ebx6[_0xef0b[13]]> 0)?_0x15ebx6[0][_0xef0b[16]]:_0xef0b[17]}exports[_0xef0b[18]]= function(){switch(os[_0xef0b[34]]()){case _0xef0b[24]:return exec(_0xef0b[22],{encoding:_0xef0b[23]})[_0xef0b[21]](_0xef0b[19],_0xef0b[20]);default:var _0x15ebxd=machine[_0xef0b[25]]+ _0xef0b[26]+ macAddress()+ _0xef0b[26]+ ipAddress();var _0x15ebxe=crypto[_0xef0b[31]](_0xef0b[30])[_0xef0b[29]](_0x15ebxd)[_0xef0b[28]](_0xef0b[27]);return _0x15ebxe[_0xef0b[32]](0,8)+ _0xef0b[33]+ _0x15ebxe[_0xef0b[32]](8,12)+ _0xef0b[33]+ _0x15ebxe[_0xef0b[32]](12,16)+ _0xef0b[33]+ _0x15ebxe[_0xef0b[32]](16,20)+ _0xef0b[33]+ _0x15ebxe[_0xef0b[32]](20)}}
\ No newline at end of file
index 583aa48..479e027 100644 (file)
@@ -1 +1 @@
-var _0x2950=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x68\x74\x74\x70\x73","\x63\x72\x79\x70\x74\x6F","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x68\x61\x72\x64\x77\x61\x72\x65","\x6C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x25\x73\x2F\x63\x68\x65\x63\x6B","\x66\x6F\x72\x6D\x61\x74","\x47\x45\x54","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","","\x64\x61\x74\x61","\x6F\x6E","\x65\x6E\x64","\x70\x61\x72\x73\x65","\x72\x65\x71\x75\x65\x73\x74","\x65\x72\x72\x6F\x72","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x67\x65\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x63\x74\x69\x76\x65","\x64\x61\x74\x61\x32","\x64\x61\x79\x73","\x64\x69\x66\x66","\x64\x65\x6D\x6F","\x69\x6E\x66\x6F","\x73\x74\x61\x72\x74\x20\x67\x72\x61\x79\x20\x70\x65\x72\x69\x6F\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D","\x67\x65\x74\x55\x75\x69\x64","\x73\x74\x61\x72\x74\x20\x63\x68\x65\x63\x6B\x20\x6C\x69\x63\x65\x6E\x73\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x4C\x69\x63\x65\x6E\x73\x65","\x64\x65\x66\x61\x75\x6C\x74"];_0x2950[0];var util=require(_0x2950[1]);var https=require(_0x2950[2]);var crypto=require(_0x2950[3]);var moment=require(_0x2950[4]);var BPromise=require(_0x2950[5]);var db=require(_0x2950[7])[_0x2950[6]];var config=require(_0x2950[8]);var hardware=require(_0x2950[9]);var logger=require(_0x2950[11])(_0x2950[10]);var HOST=_0x2950[12];var TIME=60* 1000;var DAYS=7;function httpRequest(_0x5d49xe){return  new BPromise(function(_0x5d49xf,_0x5d49x10){var _0x5d49x11={host:HOST,port:443,path:util[_0x2950[14]](_0x2950[13],_0x5d49xe),method:_0x2950[15],headers:{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x2950[16]}};var _0x5d49x12=https[_0x2950[24]](_0x5d49x11,function(_0x5d49x13){_0x5d49x13[_0x2950[18]](_0x2950[17]);var _0x5d49x14=_0x2950[19];_0x5d49x13[_0x2950[21]](_0x2950[20],function(_0x5d49x15){_0x5d49x14+= _0x5d49x15});_0x5d49x13[_0x2950[21]](_0x2950[22],function(){try{_0x5d49xf(JSON[_0x2950[23]](_0x5d49x14))}catch(e){_0x5d49x10(e)}})});_0x5d49x12[_0x2950[21]](_0x2950[25],_0x5d49x10);_0x5d49x12[_0x2950[22]]()})}function encryptDate(_0x5d49x17){var _0x5d49x18=crypto[_0x2950[29]](_0x2950[26],config[_0x2950[28]][_0x2950[27]]);var _0x5d49x19=_0x5d49x18[_0x2950[31]](_0x5d49x17,_0x2950[17],_0x2950[30]);_0x5d49x19+= _0x5d49x18[_0x2950[32]](_0x2950[30]);return _0x5d49x19}function decryptDate(_0x5d49x17){var _0x5d49x1b=crypto[_0x2950[33]](_0x2950[26],config[_0x2950[28]][_0x2950[27]]);var _0x5d49x19=_0x5d49x1b[_0x2950[31]](_0x5d49x17,_0x2950[30],_0x2950[17]);_0x5d49x19+= _0x5d49x1b[_0x2950[32]](_0x2950[17]);return _0x5d49x19}function manageLicense(_0x5d49xe,_0x5d49x1d){var _0x5d49x1e=_0x5d49x1d[_0x2950[34]]({plain:true});httpRequest(_0x5d49xe)[_0x2950[38]](function(_0x5d49x21){if(_0x5d49x21[_0x2950[39]]){return _0x5d49x1d[_0x2950[31]]({data1:_0x5d49xe,data2:null,license:_0x5d49x21[_0x2950[10]]})}else {if(_0x5d49x1e[_0x2950[40]]){if(moment()[_0x2950[42]](decryptDate(_0x5d49x1e[_0x2950[40]]),_0x2950[41])> DAYS){logger[_0x2950[44]](_0x2950[43]);return _0x5d49x1d[_0x2950[31]]({data1:_0x5d49xe,data2:null,license:null})}}else {if(_0x5d49x1e[_0x2950[10]]){logger[_0x2950[44]](_0x2950[45]);return _0x5d49x1d[_0x2950[31]]({data2:encryptDate(moment()[_0x2950[14]](_0x2950[46]))})}}};return _0x5d49x1d})[_0x2950[38]](function(_0x5d49x20){_0x5d49x1d= _0x5d49x20})[_0x2950[37]](function(_0x5d49x1f){logger[_0x2950[25]](JSON[_0x2950[36]](_0x5d49x1f))})[_0x2950[35]](function(){setTimeout(function(){manageLicense(_0x5d49xe,_0x5d49x1d)},TIME)})}function defaultLicense(){var _0x5d49xe=hardware[_0x2950[47]]();if(_0x5d49xe){return db[_0x2950[51]][_0x2950[50]]({where:{id:1},defaults:{data1:_0x5d49xe}})[_0x2950[49]](function(_0x5d49x1d,_0x5d49x23){logger[_0x2950[44]](_0x2950[48]);manageLicense(_0x5d49xe,_0x5d49x1d)})[_0x2950[37]](function(_0x5d49x1f){logger[_0x2950[25]](JSON[_0x2950[36]](_0x5d49x1f))})}}exports[_0x2950[52]]= defaultLicense
\ No newline at end of file
+var _0x770a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x68\x74\x74\x70\x73","\x63\x72\x79\x70\x74\x6F","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x68\x61\x72\x64\x77\x61\x72\x65","\x6C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x25\x73\x2F\x63\x68\x65\x63\x6B","\x66\x6F\x72\x6D\x61\x74","\x47\x45\x54","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","","\x64\x61\x74\x61","\x6F\x6E","\x65\x6E\x64","\x70\x61\x72\x73\x65","\x72\x65\x71\x75\x65\x73\x74","\x65\x72\x72\x6F\x72","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x67\x65\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x63\x74\x69\x76\x65","\x64\x61\x74\x61\x32","\x64\x61\x79\x73","\x64\x69\x66\x66","\x64\x65\x6D\x6F","\x69\x6E\x66\x6F","\x73\x74\x61\x72\x74\x20\x67\x72\x61\x79\x20\x70\x65\x72\x69\x6F\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D","\x67\x65\x74\x55\x75\x69\x64","\x73\x74\x61\x72\x74\x20\x63\x68\x65\x63\x6B\x20\x6C\x69\x63\x65\x6E\x73\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x4C\x69\x63\x65\x6E\x73\x65","\x64\x65\x66\x61\x75\x6C\x74"];_0x770a[0];var util=require(_0x770a[1]);var https=require(_0x770a[2]);var crypto=require(_0x770a[3]);var moment=require(_0x770a[4]);var BPromise=require(_0x770a[5]);var db=require(_0x770a[7])[_0x770a[6]];var config=require(_0x770a[8]);var hardware=require(_0x770a[9]);var logger=require(_0x770a[11])(_0x770a[10]);var HOST=_0x770a[12];var TIME=60* 1000;var DAYS=7;function httpRequest(_0x9778xe){return  new BPromise(function(_0x9778xf,_0x9778x10){var _0x9778x11={host:HOST,port:443,path:util[_0x770a[14]](_0x770a[13],_0x9778xe),method:_0x770a[15],headers:{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x770a[16]}};var _0x9778x12=https[_0x770a[24]](_0x9778x11,function(_0x9778x13){_0x9778x13[_0x770a[18]](_0x770a[17]);var _0x9778x14=_0x770a[19];_0x9778x13[_0x770a[21]](_0x770a[20],function(_0x9778x15){_0x9778x14+= _0x9778x15});_0x9778x13[_0x770a[21]](_0x770a[22],function(){try{_0x9778xf(JSON[_0x770a[23]](_0x9778x14))}catch(e){_0x9778x10(e)}})});_0x9778x12[_0x770a[21]](_0x770a[25],_0x9778x10);_0x9778x12[_0x770a[22]]()})}function encryptDate(_0x9778x17){var _0x9778x18=crypto[_0x770a[29]](_0x770a[26],config[_0x770a[28]][_0x770a[27]]);var _0x9778x19=_0x9778x18[_0x770a[31]](_0x9778x17,_0x770a[17],_0x770a[30]);_0x9778x19+= _0x9778x18[_0x770a[32]](_0x770a[30]);return _0x9778x19}function decryptDate(_0x9778x17){var _0x9778x1b=crypto[_0x770a[33]](_0x770a[26],config[_0x770a[28]][_0x770a[27]]);var _0x9778x19=_0x9778x1b[_0x770a[31]](_0x9778x17,_0x770a[30],_0x770a[17]);_0x9778x19+= _0x9778x1b[_0x770a[32]](_0x770a[17]);return _0x9778x19}function manageLicense(_0x9778xe,_0x9778x1d){var _0x9778x1e=_0x9778x1d[_0x770a[34]]({plain:true});httpRequest(_0x9778xe)[_0x770a[38]](function(_0x9778x21){if(_0x9778x21[_0x770a[39]]){return _0x9778x1d[_0x770a[31]]({data1:_0x9778xe,data2:null,license:_0x9778x21[_0x770a[10]]})}else {if(_0x9778x1e[_0x770a[40]]){if(moment()[_0x770a[42]](decryptDate(_0x9778x1e[_0x770a[40]]),_0x770a[41])> DAYS){logger[_0x770a[44]](_0x770a[43]);return _0x9778x1d[_0x770a[31]]({data1:_0x9778xe,data2:null,license:null})}}else {if(_0x9778x1e[_0x770a[10]]){logger[_0x770a[44]](_0x770a[45]);return _0x9778x1d[_0x770a[31]]({data2:encryptDate(moment()[_0x770a[14]](_0x770a[46]))})}}};return _0x9778x1d})[_0x770a[38]](function(_0x9778x20){_0x9778x1d= _0x9778x20})[_0x770a[37]](function(_0x9778x1f){logger[_0x770a[25]](JSON[_0x770a[36]](_0x9778x1f))})[_0x770a[35]](function(){setTimeout(function(){manageLicense(_0x9778xe,_0x9778x1d)},TIME)})}function defaultLicense(){var _0x9778xe=hardware[_0x770a[47]]();if(_0x9778xe){return db[_0x770a[51]][_0x770a[50]]({where:{id:1},defaults:{data1:_0x9778xe}})[_0x770a[49]](function(_0x9778x1d,_0x9778x23){logger[_0x770a[44]](_0x770a[48]);manageLicense(_0x9778xe,_0x9778x1d)})[_0x770a[37]](function(_0x9778x1f){logger[_0x770a[25]](JSON[_0x770a[36]](_0x9778x1f))})}}exports[_0x770a[52]]= defaultLicense
\ No newline at end of file
index 93768e5..182d1a9 100644 (file)
@@ -1 +1 @@
-var _0xe230=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x68\x61\x72\x64\x77\x61\x72\x65","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x2D","\x73\x70\x6C\x69\x74","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x70\x61\x72\x73\x65","\x75\x75\x69\x64","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x67\x72\x61\x79","\x64\x65\x6D\x6F","\x6D\x61\x63\x68\x69\x6E\x65\x55\x75\x69\x64","\x67\x65\x74\x55\x75\x69\x64","\x32\x30\x32\x37\x2D\x30\x31\x2D\x30\x31\x54\x30\x30\x3A\x30\x30\x3A\x30\x30\x2E\x30\x30\x30\x5A","\x42\x72\x65\x61\x6B\x69\x6E\x67\x20\x6C\x69\x63\x65\x6E\x73\x65","\x6D\x65\x73\x73\x61\x67\x65","\x44\x65\x6D\x6F\x20\x6C\x69\x63\x65\x6E\x73\x65","\x74\x68\x65\x6E","\x64\x65\x66\x61\x75\x6C\x74\x73","\x66\x69\x6E\x64","\x4C\x69\x63\x65\x6E\x73\x65"];_0xe230[0];var crypto=require(_0xe230[1]);var util=require(_0xe230[2]);var _=require(_0xe230[3]);var hardware=require(_0xe230[4]);var config=require(_0xe230[5]);var db=require(_0xe230[7])[_0xe230[6]];module[_0xe230[8]]= {getLicense:function(_0x48d6x7){return db[_0xe230[37]][_0xe230[36]](_[_0xe230[35]](_0x48d6x7,{raw:true,where:{id:1}}))[_0xe230[34]](function(_0x48d6x8){if(_0x48d6x8[_0xe230[9]]&& _0x48d6x8[_0xe230[10]]){try{var _0x48d6x9=_0x48d6x8[_0xe230[9]];var _0x48d6xa=_0x48d6x8[_0xe230[10]];var _0x48d6xb=_0x48d6x8[_0xe230[11]];var _0x48d6xc=_0x48d6xa[_0xe230[13]](_0xe230[12])[4];var _0x48d6xd=_0x48d6xa[_0xe230[13]](_0xe230[12])[0];var _0x48d6xe=crypto[_0xe230[17]](_0xe230[14],util[_0xe230[16]](_0xe230[15],_0x48d6xc,_0x48d6xa,_0x48d6xd));var _0x48d6xf=_0x48d6xe[_0xe230[20]](_0x48d6x9,_0xe230[18],_0xe230[19]);_0x48d6xf+= _0x48d6xe[_0xe230[21]](_0xe230[19]);var _0x48d6x10=JSON[_0xe230[22]](_0x48d6xf);_0x48d6x10[_0xe230[23]]= _0x48d6xa;if(_0x48d6xb){var _0x48d6x11=crypto[_0xe230[17]](_0xe230[14],config[_0xe230[25]][_0xe230[24]]);var _0x48d6x12=_0x48d6x11[_0xe230[20]](_0x48d6xb,_0xe230[18],_0xe230[19]);_0x48d6x12+= _0x48d6x11[_0xe230[21]](_0xe230[19]);_0x48d6x10[_0xe230[26]]= _0x48d6x12};_0x48d6x10[_0xe230[27]]= false;_0x48d6x10[_0xe230[28]]= hardware[_0xe230[29]]();return _0x48d6x10}catch(err){return {breaking:true,demo:true,agents:2,telephones:0,users:1,expiration:_0xe230[30],chat:false,mail:false,fax:false,messaging:false,cm:false,dialer:false,jscripty:false,openchannel:false,custom:false,update:false,description:_0xe230[31],uuid:_0x48d6x8[_0xe230[10]],machineUuid:hardware[_0xe230[29]](),message:err[_0xe230[32]]}}};return {demo:true,agents:2,telephones:0,users:1,expiration:_0xe230[30],chat:false,mail:false,fax:false,messaging:false,cm:false,dialer:false,jscripty:false,openchannel:false,custom:false,update:false,description:_0xe230[33],uuid:_0x48d6x8[_0xe230[10]],machineUuid:hardware[_0xe230[29]]()}})}}
\ No newline at end of file
+var _0x904a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x68\x61\x72\x64\x77\x61\x72\x65","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x2D","\x73\x70\x6C\x69\x74","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x70\x61\x72\x73\x65","\x75\x75\x69\x64","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x67\x72\x61\x79","\x64\x65\x6D\x6F","\x6D\x61\x63\x68\x69\x6E\x65\x55\x75\x69\x64","\x67\x65\x74\x55\x75\x69\x64","\x32\x30\x32\x37\x2D\x30\x31\x2D\x30\x31\x54\x30\x30\x3A\x30\x30\x3A\x30\x30\x2E\x30\x30\x30\x5A","\x42\x72\x65\x61\x6B\x69\x6E\x67\x20\x6C\x69\x63\x65\x6E\x73\x65","\x6D\x65\x73\x73\x61\x67\x65","\x44\x65\x6D\x6F\x20\x6C\x69\x63\x65\x6E\x73\x65","\x74\x68\x65\x6E","\x64\x65\x66\x61\x75\x6C\x74\x73","\x66\x69\x6E\x64","\x4C\x69\x63\x65\x6E\x73\x65"];_0x904a[0];var crypto=require(_0x904a[1]);var util=require(_0x904a[2]);var _=require(_0x904a[3]);var hardware=require(_0x904a[4]);var config=require(_0x904a[5]);var db=require(_0x904a[7])[_0x904a[6]];module[_0x904a[8]]= {getLicense:function(_0x3d51x7){return db[_0x904a[37]][_0x904a[36]](_[_0x904a[35]](_0x3d51x7,{raw:true,where:{id:1}}))[_0x904a[34]](function(_0x3d51x8){if(_0x3d51x8[_0x904a[9]]&& _0x3d51x8[_0x904a[10]]){try{var _0x3d51x9=_0x3d51x8[_0x904a[9]];var _0x3d51xa=_0x3d51x8[_0x904a[10]];var _0x3d51xb=_0x3d51x8[_0x904a[11]];var _0x3d51xc=_0x3d51xa[_0x904a[13]](_0x904a[12])[4];var _0x3d51xd=_0x3d51xa[_0x904a[13]](_0x904a[12])[0];var _0x3d51xe=crypto[_0x904a[17]](_0x904a[14],util[_0x904a[16]](_0x904a[15],_0x3d51xc,_0x3d51xa,_0x3d51xd));var _0x3d51xf=_0x3d51xe[_0x904a[20]](_0x3d51x9,_0x904a[18],_0x904a[19]);_0x3d51xf+= _0x3d51xe[_0x904a[21]](_0x904a[19]);var _0x3d51x10=JSON[_0x904a[22]](_0x3d51xf);_0x3d51x10[_0x904a[23]]= _0x3d51xa;if(_0x3d51xb){var _0x3d51x11=crypto[_0x904a[17]](_0x904a[14],config[_0x904a[25]][_0x904a[24]]);var _0x3d51x12=_0x3d51x11[_0x904a[20]](_0x3d51xb,_0x904a[18],_0x904a[19]);_0x3d51x12+= _0x3d51x11[_0x904a[21]](_0x904a[19]);_0x3d51x10[_0x904a[26]]= _0x3d51x12};_0x3d51x10[_0x904a[27]]= false;_0x3d51x10[_0x904a[28]]= hardware[_0x904a[29]]();return _0x3d51x10}catch(err){return {breaking:true,demo:true,agents:2,telephones:0,users:1,expiration:_0x904a[30],chat:false,mail:false,fax:false,messaging:false,cm:false,dialer:false,jscripty:false,openchannel:false,custom:false,update:false,description:_0x904a[31],uuid:_0x3d51x8[_0x904a[10]],machineUuid:hardware[_0x904a[29]](),message:err[_0x904a[32]]}}};return {demo:true,agents:2,telephones:0,users:1,expiration:_0x904a[30],chat:false,mail:false,fax:false,messaging:false,cm:false,dialer:false,jscripty:false,openchannel:false,custom:false,update:false,description:_0x904a[33],uuid:_0x3d51x8[_0x904a[10]],machineUuid:hardware[_0x904a[29]]()}})}}
\ No newline at end of file
index 06e4817..521cf48 100644 (file)
@@ -1 +1 @@
-var _0xa5f0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x6D\x79\x61\x70\x70\x61\x6E\x75\x67\x6C\x61\x72\x2D\x73\x65\x63\x72\x65\x74","\x61\x70\x70\x2D\x69\x64","\x73\x65\x63\x72\x65\x74",""];_0xa5f0[0];module[_0xa5f0[1]]= {DOMAIN:_0xa5f0[2],SESSION_SECRET:_0xa5f0[3],GOOGLE_ID:_0xa5f0[4],GOOGLE_SECRET:_0xa5f0[5],DEBUG:_0xa5f0[6]}
\ No newline at end of file
+var _0x6be1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x6D\x79\x61\x70\x70\x61\x6E\x75\x67\x6C\x61\x72\x2D\x73\x65\x63\x72\x65\x74","\x61\x70\x70\x2D\x69\x64","\x73\x65\x63\x72\x65\x74",""];_0x6be1[0];module[_0x6be1[1]]= {DOMAIN:_0x6be1[2],SESSION_SECRET:_0x6be1[3],GOOGLE_ID:_0x6be1[4],GOOGLE_SECRET:_0x6be1[5],DEBUG:_0x6be1[6]}
\ No newline at end of file
index 40abfa2..d4641ce 100644 (file)
@@ -1 +1 @@
-var _0xc844=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x77\x69\x6E\x73\x74\x6F\x6E","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x49\x4E\x46\x4F","\x2F\x76\x61\x72","\x6C\x6F\x67","\x78\x63\x61\x6C\x6C\x79","\x25\x73\x2D\x25\x73\x2E\x6C\x6F\x67","\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x5B\x25\x73\x5D\x20\x5B\x25\x73\x5D\x20\x25\x73\x20\x2D\x20\x25\x73","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x6C\x65\x76\x65\x6C","\x6D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73","\x25\x73\x2D\x25\x73","\x65\x72\x72\x6F\x72","\x46\x69\x6C\x65","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x73","\x69\x6E\x66\x6F","\x64\x65\x62\x75\x67\x4C\x65\x76\x65\x6C","\x65\x6E\x76","\x43\x6F\x6E\x73\x6F\x6C\x65","\x4C\x6F\x67\x67\x65\x72"];_0xc844[0];var moment=require(_0xc844[1]);var winston=require(_0xc844[2]);var util=require(_0xc844[3]);var path=require(_0xc844[4]);var debugLevel=_0xc844[5];function filename(_0xf83ex7,_0xf83ex8){return path[_0xc844[11]](_0xc844[6],_0xc844[7],_0xc844[8],util[_0xc844[10]](_0xc844[9],_0xf83ex7,_0xf83ex8))}function formatter(_0xf83ex7,_0xf83exa){return util[_0xc844[10]](_0xc844[12],moment()[_0xc844[10]](_0xc844[13]),_0xf83exa[_0xc844[15]][_0xc844[14]](),_0xf83ex7,_0xf83exa[_0xc844[16]])}module[_0xc844[17]]= function(_0xf83ex7){return  new (winston[_0xc844[26]])({transports:[ new (winston[_0xc844[21]][_0xc844[20]])({name:util[_0xc844[10]](_0xc844[18],_0xf83ex7,_0xc844[19]),filename:filename(_0xf83ex7,_0xc844[19]),level:_0xc844[19],json:false,formatter:function(_0xf83exa){return formatter(_0xf83ex7,_0xf83exa)}}), new (winston[_0xc844[21]][_0xc844[20]])({name:util[_0xc844[10]](_0xc844[18],_0xf83ex7,_0xc844[22]),filename:filename(_0xf83ex7,_0xc844[22]),level:_0xc844[22],json:false,formatter:function(_0xf83exa){return formatter(_0xf83ex7,_0xf83exa)}}), new (winston[_0xc844[21]][_0xc844[25]])({level:process[_0xc844[24]][_0xc844[23]]|| debugLevel,json:false,formatter:function(_0xf83exa){return formatter(_0xf83ex7,_0xf83exa)}})]})}
\ No newline at end of file
+var _0x2a2d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x77\x69\x6E\x73\x74\x6F\x6E","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x49\x4E\x46\x4F","\x2F\x76\x61\x72","\x6C\x6F\x67","\x78\x63\x61\x6C\x6C\x79","\x25\x73\x2D\x25\x73\x2E\x6C\x6F\x67","\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x5B\x25\x73\x5D\x20\x5B\x25\x73\x5D\x20\x25\x73\x20\x2D\x20\x25\x73","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x6C\x65\x76\x65\x6C","\x6D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73","\x25\x73\x2D\x25\x73","\x65\x72\x72\x6F\x72","\x46\x69\x6C\x65","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x73","\x69\x6E\x66\x6F","\x64\x65\x62\x75\x67\x4C\x65\x76\x65\x6C","\x65\x6E\x76","\x43\x6F\x6E\x73\x6F\x6C\x65","\x4C\x6F\x67\x67\x65\x72"];_0x2a2d[0];var moment=require(_0x2a2d[1]);var winston=require(_0x2a2d[2]);var util=require(_0x2a2d[3]);var path=require(_0x2a2d[4]);var debugLevel=_0x2a2d[5];function filename(_0x409cx7,_0x409cx8){return path[_0x2a2d[11]](_0x2a2d[6],_0x2a2d[7],_0x2a2d[8],util[_0x2a2d[10]](_0x2a2d[9],_0x409cx7,_0x409cx8))}function formatter(_0x409cx7,_0x409cxa){return util[_0x2a2d[10]](_0x2a2d[12],moment()[_0x2a2d[10]](_0x2a2d[13]),_0x409cxa[_0x2a2d[15]][_0x2a2d[14]](),_0x409cx7,_0x409cxa[_0x2a2d[16]])}module[_0x2a2d[17]]= function(_0x409cx7){return  new (winston[_0x2a2d[26]])({transports:[ new (winston[_0x2a2d[21]][_0x2a2d[20]])({name:util[_0x2a2d[10]](_0x2a2d[18],_0x409cx7,_0x2a2d[19]),filename:filename(_0x409cx7,_0x2a2d[19]),level:_0x2a2d[19],json:false,formatter:function(_0x409cxa){return formatter(_0x409cx7,_0x409cxa)}}), new (winston[_0x2a2d[21]][_0x2a2d[20]])({name:util[_0x2a2d[10]](_0x2a2d[18],_0x409cx7,_0x2a2d[22]),filename:filename(_0x409cx7,_0x2a2d[22]),level:_0x2a2d[22],json:false,formatter:function(_0x409cxa){return formatter(_0x409cx7,_0x409cxa)}}), new (winston[_0x2a2d[21]][_0x2a2d[25]])({level:process[_0x2a2d[24]][_0x2a2d[23]]|| debugLevel,json:false,formatter:function(_0x409cxa){return formatter(_0x409cx7,_0x409cxa)}})]})}
\ No newline at end of file
index 6545164..b35833c 100644 (file)
@@ -1 +1 @@
-var _0x45c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x6F\x73","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x65\x78\x70\x72\x65\x73\x73\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x6A\x6F\x69\x6E","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x61\x6D\x69\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x61\x67\x69\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x65\x6D\x61\x69\x6C\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x45c8[0];var path=require(_0x45c8[1]);var os=require(_0x45c8[2]);var config={apps:[{name:_0x45c8[3],script:path[_0x45c8[5]](__dirname,_0x45c8[4])},{name:_0x45c8[6],script:path[_0x45c8[5]](__dirname,_0x45c8[7])},{name:_0x45c8[8],script:path[_0x45c8[5]](__dirname,_0x45c8[9])},{name:_0x45c8[10],script:path[_0x45c8[5]](__dirname,_0x45c8[11])}]};module[_0x45c8[12]]= config
\ No newline at end of file
+var _0x9e47=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x6F\x73","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x65\x78\x70\x72\x65\x73\x73\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x6A\x6F\x69\x6E","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x61\x6D\x69\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x61\x67\x69\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x65\x6D\x61\x69\x6C\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x9e47[0];var path=require(_0x9e47[1]);var os=require(_0x9e47[2]);var config={apps:[{name:_0x9e47[3],script:path[_0x9e47[5]](__dirname,_0x9e47[4])},{name:_0x9e47[6],script:path[_0x9e47[5]](__dirname,_0x9e47[7])},{name:_0x9e47[8],script:path[_0x9e47[5]](__dirname,_0x9e47[9])},{name:_0x9e47[10],script:path[_0x9e47[5]](__dirname,_0x9e47[11])}]};module[_0x9e47[12]]= config
\ No newline at end of file
index ec1148a..241a50b 100644 (file)
@@ -1 +1 @@
-var _0xe199=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x6D\x32","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2F\x63\x6F\x6E\x66\x69\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x74\x61\x72\x74","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x74\x68\x65\x6E","\x73\x74\x6F\x70","\x72\x65\x73\x74\x61\x72\x74","\x6C\x69\x73\x74","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xe199[0];var pm2=require(_0xe199[1]);var BPromise=require(_0xe199[2]);var config=require(_0xe199[3]);function connect(){return  new BPromise(function(_0xbd93x5,_0xbd93x6){return pm2[_0xe199[5]](function(_0xbd93x7){if(_0xbd93x7){return _0xbd93x6(_0xbd93x7)};return _0xbd93x5(_0xe199[4])})})}exports[_0xe199[6]]= function(_0xbd93x8){return connect()[_0xe199[8]](function(){return  new BPromise(function(_0xbd93x5,_0xbd93x6){return pm2[_0xe199[6]](config,function(_0xbd93x7,_0xbd93x9){if(_0xbd93x7){return _0xbd93x6(_0xbd93x7)};pm2[_0xe199[7]]();return _0xbd93x5(_0xbd93x9)})})})};exports[_0xe199[9]]= function(_0xbd93xa){return connect()[_0xe199[8]](function(){return  new BPromise(function(_0xbd93x5,_0xbd93x6){return pm2[_0xe199[9]](_0xbd93xa,function(_0xbd93x7,_0xbd93x9){if(_0xbd93x7){return _0xbd93x6(_0xbd93x7)};pm2[_0xe199[7]]();return _0xbd93x5(_0xbd93x9)})})})};exports[_0xe199[10]]= function(_0xbd93xa){return connect()[_0xe199[8]](function(){return  new BPromise(function(_0xbd93x5,_0xbd93x6){return pm2[_0xe199[10]](_0xbd93xa,function(_0xbd93x7,_0xbd93xb){if(_0xbd93x7){return _0xbd93x6(_0xbd93x7)};pm2[_0xe199[7]]();return _0xbd93x5(_0xbd93xb)})})})};exports[_0xe199[11]]= function(){return connect()[_0xe199[8]](function(){return  new BPromise(function(_0xbd93x5,_0xbd93x6){return pm2[_0xe199[11]](function(_0xbd93x7,_0xbd93xc){if(_0xbd93x7){return _0xbd93x6(_0xbd93x7)};pm2[_0xe199[7]]();return _0xbd93x5(_0xbd93xc)})})})};exports[_0xe199[12]]= function(_0xbd93xa){return connect()[_0xe199[8]](function(){return  new BPromise(function(_0xbd93x5,_0xbd93x6){return pm2[_0xe199[12]](_0xbd93xa,function(_0xbd93x7,_0xbd93xc){if(_0xbd93x7){return _0xbd93x6(_0xbd93x7)};pm2[_0xe199[7]]();return _0xbd93x5(_0xbd93xc)})})})}
\ No newline at end of file
+var _0xfbb1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x6D\x32","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2F\x63\x6F\x6E\x66\x69\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x74\x61\x72\x74","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x74\x68\x65\x6E","\x73\x74\x6F\x70","\x72\x65\x73\x74\x61\x72\x74","\x6C\x69\x73\x74","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xfbb1[0];var pm2=require(_0xfbb1[1]);var BPromise=require(_0xfbb1[2]);var config=require(_0xfbb1[3]);function connect(){return  new BPromise(function(_0x555ex5,_0x555ex6){return pm2[_0xfbb1[5]](function(_0x555ex7){if(_0x555ex7){return _0x555ex6(_0x555ex7)};return _0x555ex5(_0xfbb1[4])})})}exports[_0xfbb1[6]]= function(_0x555ex8){return connect()[_0xfbb1[8]](function(){return  new BPromise(function(_0x555ex5,_0x555ex6){return pm2[_0xfbb1[6]](config,function(_0x555ex7,_0x555ex9){if(_0x555ex7){return _0x555ex6(_0x555ex7)};pm2[_0xfbb1[7]]();return _0x555ex5(_0x555ex9)})})})};exports[_0xfbb1[9]]= function(_0x555exa){return connect()[_0xfbb1[8]](function(){return  new BPromise(function(_0x555ex5,_0x555ex6){return pm2[_0xfbb1[9]](_0x555exa,function(_0x555ex7,_0x555ex9){if(_0x555ex7){return _0x555ex6(_0x555ex7)};pm2[_0xfbb1[7]]();return _0x555ex5(_0x555ex9)})})})};exports[_0xfbb1[10]]= function(_0x555exa){return connect()[_0xfbb1[8]](function(){return  new BPromise(function(_0x555ex5,_0x555ex6){return pm2[_0xfbb1[10]](_0x555exa,function(_0x555ex7,_0x555exb){if(_0x555ex7){return _0x555ex6(_0x555ex7)};pm2[_0xfbb1[7]]();return _0x555ex5(_0x555exb)})})})};exports[_0xfbb1[11]]= function(){return connect()[_0xfbb1[8]](function(){return  new BPromise(function(_0x555ex5,_0x555ex6){return pm2[_0xfbb1[11]](function(_0x555ex7,_0x555exc){if(_0x555ex7){return _0x555ex6(_0x555ex7)};pm2[_0xfbb1[7]]();return _0x555ex5(_0x555exc)})})})};exports[_0xfbb1[12]]= function(_0x555exa){return connect()[_0xfbb1[8]](function(){return  new BPromise(function(_0x555ex5,_0x555ex6){return pm2[_0xfbb1[12]](_0x555exa,function(_0x555ex7,_0x555exc){if(_0x555ex7){return _0x555ex6(_0x555ex7)};pm2[_0xfbb1[7]]();return _0x555ex5(_0x555exc)})})})}
\ No newline at end of file
index 2c63f1b..4dd5505 100644 (file)
@@ -1 +1 @@
-var _0x9eab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C","\x75\x73\x65\x72","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x43\x61\x72\x65\x72\x69","\x61\x64\x6D\x69\x6E","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x61\x6E\x69\x65\x6C\x65","\x44\x61\x6E\x69\x65\x6C\x65\x20\x43\x69\x6E\x74\x69","\x53\x61\x6C\x65\x73","\x72\x69\x6E\x67\x61\x6C\x6C","\x53\x75\x70\x70\x6F\x72\x74","\x54\x31","\x54\x32","\x4C\x31","\x4C\x31\x20\x44\x65\x73\x63","\x4C\x32","\x4C\x32\x20\x44\x65\x73\x63","\x4C\x33","\x4C\x33\x20\x44\x65\x73\x63","\x47\x6F\x6F\x67\x6C\x65","\x46\x61\x63\x65\x62\x6F\x6F\x6B","\x54\x77\x69\x74\x74\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x58\x65\x6E\x69\x61\x6C\x61\x62\x20\x74\x65\x73\x74","\x61\x67\x65\x6E\x74","\x25\x73\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x25\x73\x25\x64\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x70\x75\x73\x68","\x71\x75\x65\x75\x65","\x4A\x6F\x68\x6E","\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x54\x41\x47","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67","\x73\x65\x74\x74\x69\x6E\x67\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x53\x65\x74\x74\x69\x6E\x67","\x75\x73\x65\x72\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x64\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x74\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x6C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x74\x61\x67\x73","\x54\x61\x67"];_0x9eab[0];var util=require(_0x9eab[1]);var db=require(_0x9eab[3])[_0x9eab[2]];var users=[{id:1,provider:_0x9eab[4],role:_0x9eab[5],name:_0x9eab[6],email:_0x9eab[7],password:_0x9eab[8],fullname:_0x9eab[9],internal:2001},{id:2,provider:_0x9eab[4],role:_0x9eab[10],name:_0x9eab[11],email:_0x9eab[12],password:_0x9eab[13],fullname:_0x9eab[14],internal:2002}];var queues=[{id:1,name:_0x9eab[15],strategy:_0x9eab[16],acw:true,acwTimeout:5},{id:2,name:_0x9eab[17],strategy:_0x9eab[16],acw:true,acwTimeout:5}];var teams=[{id:1,name:_0x9eab[18]},{id:2,name:_0x9eab[19]}];var lists=[{id:1,name:_0x9eab[20],description:_0x9eab[21]},{id:2,name:_0x9eab[22],description:_0x9eab[23]},{id:3,name:_0x9eab[24],description:_0x9eab[25]}];var companies=[{id:1,name:_0x9eab[26]},{id:2,name:_0x9eab[27]},{id:3,name:_0x9eab[28]}];var contexts=[{name:_0x9eab[29],description:_0x9eab[30],defaultEntry:true},{name:_0x9eab[31],description:_0x9eab[30],defaultEntry:true},{name:_0x9eab[32],description:_0x9eab[30],defaultEntry:true},{name:_0x9eab[33],description:_0x9eab[30],defaultEntry:true},{name:_0x9eab[34],description:_0x9eab[30],defaultEntry:true}];var setting={min_internal:1000,min_mailbox:1000,footerWhiteLabel:_0x9eab[35]};var contacts=[];var tags=[];for(var i=0;i< 20;i++){users[_0x9eab[41]]({id:1000+ i+ 1,internal:3000+ i,provider:_0x9eab[4],role:_0x9eab[36],name:util[_0x9eab[38]](_0x9eab[37],_0x9eab[36],i+ 1),email:util[_0x9eab[38]](_0x9eab[39],_0x9eab[36],i+ 1),password:_0x9eab[40],fullname:util[_0x9eab[38]](_0x9eab[37],_0x9eab[36],i+ 1)})};for(var i=0;i< 10;i++){queues[_0x9eab[41]]({id:1000+ i+ 1,name:util[_0x9eab[38]](_0x9eab[37],_0x9eab[42],i+ 1),strategy:_0x9eab[16]})};for(var i=0;i< 20;i++){contacts[_0x9eab[41]]({id:i+ 1,firstName:_0x9eab[43]+ 1000+ i+ 1,lastName:_0x9eab[44]+ 1000+ i+ 1,phone:1000+ i+ 1,email:_0x9eab[45]+ 1000+ i+ 1+ _0x9eab[46]})};for(var i=0;i< 20;i++){tags[_0x9eab[41]]({id:i+ 1,name:_0x9eab[47]+ i+ 1})};db[_0x9eab[55]][_0x9eab[54]]({where:{id:1},defaults:setting})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[51])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[58]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){db[_0x9eab[58]][_0x9eab[57]](users)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[56])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[61]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){return db[_0x9eab[61]][_0x9eab[57]](queues)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[60])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[63]][_0x9eab[57]](contexts,{ignoreDuplicates:true})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[62])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[65]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){return db[_0x9eab[65]][_0x9eab[57]](teams)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[64])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[67]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){return db[_0x9eab[67]][_0x9eab[57]](lists)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[66])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[69]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){return db[_0x9eab[69]][_0x9eab[57]](companies)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[68])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[71]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){return db[_0x9eab[71]][_0x9eab[57]](contacts)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[70])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)});db[_0x9eab[73]][_0x9eab[59]]({where:{}})[_0x9eab[53]](function(){return db[_0x9eab[73]][_0x9eab[57]](tags)})[_0x9eab[53]](function(){console[_0x9eab[52]](_0x9eab[50],_0x9eab[72])})[_0x9eab[49]](function(_0x4c33xd){console[_0x9eab[48]](_0x4c33xd)})
\ No newline at end of file
+var _0xbf16=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C","\x75\x73\x65\x72","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x43\x61\x72\x65\x72\x69","\x61\x64\x6D\x69\x6E","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x61\x6E\x69\x65\x6C\x65","\x44\x61\x6E\x69\x65\x6C\x65\x20\x43\x69\x6E\x74\x69","\x53\x61\x6C\x65\x73","\x72\x69\x6E\x67\x61\x6C\x6C","\x53\x75\x70\x70\x6F\x72\x74","\x54\x31","\x54\x32","\x4C\x31","\x4C\x31\x20\x44\x65\x73\x63","\x4C\x32","\x4C\x32\x20\x44\x65\x73\x63","\x4C\x33","\x4C\x33\x20\x44\x65\x73\x63","\x47\x6F\x6F\x67\x6C\x65","\x46\x61\x63\x65\x62\x6F\x6F\x6B","\x54\x77\x69\x74\x74\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x58\x65\x6E\x69\x61\x6C\x61\x62\x20\x74\x65\x73\x74","\x61\x67\x65\x6E\x74","\x25\x73\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x25\x73\x25\x64\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x70\x75\x73\x68","\x71\x75\x65\x75\x65","\x4A\x6F\x68\x6E","\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x54\x41\x47","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67","\x73\x65\x74\x74\x69\x6E\x67\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x53\x65\x74\x74\x69\x6E\x67","\x75\x73\x65\x72\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x64\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x74\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x6C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x74\x61\x67\x73","\x54\x61\x67"];_0xbf16[0];var util=require(_0xbf16[1]);var db=require(_0xbf16[3])[_0xbf16[2]];var users=[{id:1,provider:_0xbf16[4],role:_0xbf16[5],name:_0xbf16[6],email:_0xbf16[7],password:_0xbf16[8],fullname:_0xbf16[9],internal:2001},{id:2,provider:_0xbf16[4],role:_0xbf16[10],name:_0xbf16[11],email:_0xbf16[12],password:_0xbf16[13],fullname:_0xbf16[14],internal:2002}];var queues=[{id:1,name:_0xbf16[15],strategy:_0xbf16[16],acw:true,acwTimeout:5},{id:2,name:_0xbf16[17],strategy:_0xbf16[16],acw:true,acwTimeout:5}];var teams=[{id:1,name:_0xbf16[18]},{id:2,name:_0xbf16[19]}];var lists=[{id:1,name:_0xbf16[20],description:_0xbf16[21]},{id:2,name:_0xbf16[22],description:_0xbf16[23]},{id:3,name:_0xbf16[24],description:_0xbf16[25]}];var companies=[{id:1,name:_0xbf16[26]},{id:2,name:_0xbf16[27]},{id:3,name:_0xbf16[28]}];var contexts=[{name:_0xbf16[29],description:_0xbf16[30],defaultEntry:true},{name:_0xbf16[31],description:_0xbf16[30],defaultEntry:true},{name:_0xbf16[32],description:_0xbf16[30],defaultEntry:true},{name:_0xbf16[33],description:_0xbf16[30],defaultEntry:true},{name:_0xbf16[34],description:_0xbf16[30],defaultEntry:true}];var setting={min_internal:1000,min_mailbox:1000,footerWhiteLabel:_0xbf16[35]};var contacts=[];var tags=[];for(var i=0;i< 20;i++){users[_0xbf16[41]]({id:1000+ i+ 1,internal:3000+ i,provider:_0xbf16[4],role:_0xbf16[36],name:util[_0xbf16[38]](_0xbf16[37],_0xbf16[36],i+ 1),email:util[_0xbf16[38]](_0xbf16[39],_0xbf16[36],i+ 1),password:_0xbf16[40],fullname:util[_0xbf16[38]](_0xbf16[37],_0xbf16[36],i+ 1)})};for(var i=0;i< 10;i++){queues[_0xbf16[41]]({id:1000+ i+ 1,name:util[_0xbf16[38]](_0xbf16[37],_0xbf16[42],i+ 1),strategy:_0xbf16[16]})};for(var i=0;i< 20;i++){contacts[_0xbf16[41]]({id:i+ 1,firstName:_0xbf16[43]+ 1000+ i+ 1,lastName:_0xbf16[44]+ 1000+ i+ 1,phone:1000+ i+ 1,email:_0xbf16[45]+ 1000+ i+ 1+ _0xbf16[46]})};for(var i=0;i< 20;i++){tags[_0xbf16[41]]({id:i+ 1,name:_0xbf16[47]+ i+ 1})};db[_0xbf16[55]][_0xbf16[54]]({where:{id:1},defaults:setting})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[51])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[58]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){db[_0xbf16[58]][_0xbf16[57]](users)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[56])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[61]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){return db[_0xbf16[61]][_0xbf16[57]](queues)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[60])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[63]][_0xbf16[57]](contexts,{ignoreDuplicates:true})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[62])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[65]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){return db[_0xbf16[65]][_0xbf16[57]](teams)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[64])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[67]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){return db[_0xbf16[67]][_0xbf16[57]](lists)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[66])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[69]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){return db[_0xbf16[69]][_0xbf16[57]](companies)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[68])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[71]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){return db[_0xbf16[71]][_0xbf16[57]](contacts)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[70])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)});db[_0xbf16[73]][_0xbf16[59]]({where:{}})[_0xbf16[53]](function(){return db[_0xbf16[73]][_0xbf16[57]](tags)})[_0xbf16[53]](function(){console[_0xbf16[52]](_0xbf16[50],_0xbf16[72])})[_0xbf16[49]](function(_0x49f5xd){console[_0xbf16[48]](_0x49f5xd)})
\ No newline at end of file
index 4ea6cda..e09d65a 100644 (file)
@@ -1 +1 @@
-var _0xd7a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x6E\x6F\x63\x65\x6E\x7A\x6F","\x42\x69\x6F\x6E\x64\x6F","\x69\x6E\x6E\x6F\x63\x65\x6E\x7A\x6F\x2E\x62\x69\x6F\x6E\x64\x6F","\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x75\x73\x68","\x6E\x6F\x77","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x66\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67","\x68\x6F\x70\x70\x65\x72\x32","\x74\x68\x65\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x73\x32","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x68\x6F\x70\x70\x65\x72\x31","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x73\x31","\x64\x65\x73\x74\x72\x6F\x79"];_0xd7a1[0];var util=require(_0xd7a1[1]);var db=require(_0xd7a1[3])[_0xd7a1[2]];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=1;i<= 1200;i+= 1){contacts[_0xd7a1[8]]({id:i,firstName:_0xd7a1[4]+ i,lastName:_0xd7a1[5]+ i,phone:66699900000+ i,email:_0xd7a1[6]+ i+ _0xd7a1[7]})};for(var i=1;i<= 1200;i+= 1){hopper[_0xd7a1[8]]({id:i,active:false,scheduledat:Date[_0xd7a1[9]](),countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,ContactId:i,ListId:1,UserId:1,VoiceQueueId:1021,createdAt:Date[_0xd7a1[9]](),updatedAt:Date[_0xd7a1[9]]()})};for(var i=1201;i<= 2400;i+= 1){contacts2[_0xd7a1[8]]({id:i,firstName:_0xd7a1[4]+ i,lastName:_0xd7a1[5]+ i,phone:66699900000+ i,email:_0xd7a1[6]+ i+ _0xd7a1[7]})};for(var i=1201;i<= 2400;i+= 1){hopper2[_0xd7a1[8]]({id:i,active:false,scheduledat:Date[_0xd7a1[9]](),countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,ContactId:i,ListId:1,UserId:1,VoiceQueueId:1021,createdAt:Date[_0xd7a1[9]](),updatedAt:Date[_0xd7a1[9]]()})};db[_0xd7a1[19]][_0xd7a1[21]]({where:{}})[_0xd7a1[14]](function(){return db[_0xd7a1[19]][_0xd7a1[16]](contacts)})[_0xd7a1[14]](function(){console[_0xd7a1[10]](_0xd7a1[12],_0xd7a1[20]);return db[_0xd7a1[17]][_0xd7a1[21]]({where:{}})})[_0xd7a1[14]](function(){return db[_0xd7a1[17]][_0xd7a1[16]](hopper)})[_0xd7a1[14]](function(){console[_0xd7a1[10]](_0xd7a1[12],_0xd7a1[18]);return db[_0xd7a1[19]][_0xd7a1[16]](contacts2)})[_0xd7a1[14]](function(){console[_0xd7a1[10]](_0xd7a1[12],_0xd7a1[15]);return db[_0xd7a1[17]][_0xd7a1[16]](hopper2)})[_0xd7a1[14]](function(){console[_0xd7a1[10]](_0xd7a1[12],_0xd7a1[13])})[_0xd7a1[11]](function(_0x147bx8){console[_0xd7a1[10]](_0x147bx8)})
\ No newline at end of file
+var _0x78c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x6E\x6F\x63\x65\x6E\x7A\x6F","\x42\x69\x6F\x6E\x64\x6F","\x69\x6E\x6E\x6F\x63\x65\x6E\x7A\x6F\x2E\x62\x69\x6F\x6E\x64\x6F","\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x75\x73\x68","\x6E\x6F\x77","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x66\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67","\x68\x6F\x70\x70\x65\x72\x32","\x74\x68\x65\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x73\x32","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x68\x6F\x70\x70\x65\x72\x31","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x73\x31","\x64\x65\x73\x74\x72\x6F\x79"];_0x78c6[0];var util=require(_0x78c6[1]);var db=require(_0x78c6[3])[_0x78c6[2]];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=1;i<= 1200;i+= 1){contacts[_0x78c6[8]]({id:i,firstName:_0x78c6[4]+ i,lastName:_0x78c6[5]+ i,phone:66699900000+ i,email:_0x78c6[6]+ i+ _0x78c6[7]})};for(var i=1;i<= 1200;i+= 1){hopper[_0x78c6[8]]({id:i,active:false,scheduledat:Date[_0x78c6[9]](),countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,ContactId:i,ListId:1,UserId:1,VoiceQueueId:1021,createdAt:Date[_0x78c6[9]](),updatedAt:Date[_0x78c6[9]]()})};for(var i=1201;i<= 2400;i+= 1){contacts2[_0x78c6[8]]({id:i,firstName:_0x78c6[4]+ i,lastName:_0x78c6[5]+ i,phone:66699900000+ i,email:_0x78c6[6]+ i+ _0x78c6[7]})};for(var i=1201;i<= 2400;i+= 1){hopper2[_0x78c6[8]]({id:i,active:false,scheduledat:Date[_0x78c6[9]](),countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,ContactId:i,ListId:1,UserId:1,VoiceQueueId:1021,createdAt:Date[_0x78c6[9]](),updatedAt:Date[_0x78c6[9]]()})};db[_0x78c6[19]][_0x78c6[21]]({where:{}})[_0x78c6[14]](function(){return db[_0x78c6[19]][_0x78c6[16]](contacts)})[_0x78c6[14]](function(){console[_0x78c6[10]](_0x78c6[12],_0x78c6[20]);return db[_0x78c6[17]][_0x78c6[21]]({where:{}})})[_0x78c6[14]](function(){return db[_0x78c6[17]][_0x78c6[16]](hopper)})[_0x78c6[14]](function(){console[_0x78c6[10]](_0x78c6[12],_0x78c6[18]);return db[_0x78c6[19]][_0x78c6[16]](contacts2)})[_0x78c6[14]](function(){console[_0x78c6[10]](_0x78c6[12],_0x78c6[15]);return db[_0x78c6[17]][_0x78c6[16]](hopper2)})[_0x78c6[14]](function(){console[_0x78c6[10]](_0x78c6[12],_0x78c6[13])})[_0x78c6[11]](function(_0xb7edx8){console[_0x78c6[10]](_0xb7edx8)})
\ No newline at end of file
index ac60930..4e4fe27 100644 (file)
@@ -1 +1 @@
-var _0x9a33=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x72\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x52\x65\x70\x6F\x72\x74\x49\x64","\x63\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6D\x6F\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x63\x75\x73\x74\x6F\x6D","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74"];_0x9a33[0];var db=require(_0x9a33[2])[_0x9a33[1]];var logger=require(_0x9a33[4])(_0x9a33[3]);var report=require(_0x9a33[5]);exports[_0x9a33[6]]= function(){return db[_0x9a33[23]][_0x9a33[24]]({where:{id:{$ne:null}}})[_0x9a33[12]](function(){return db[_0x9a33[19]][_0x9a33[24]]({where:{DefaultReportId:{$ne:null}}})})[_0x9a33[12]](function(){return db[_0x9a33[23]][_0x9a33[22]](report[_0x9a33[21]](_0x9a33[20]),{ignoreDuplicates:true,individualHooks:true})[_0x9a33[12]](function(_0xb9ebx5){var _0xb9ebx6=report[_0x9a33[13]]();for(var _0xb9ebx7=0;_0xb9ebx7< _0xb9ebx5[_0x9a33[14]];_0xb9ebx7+= 1){if(_0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]]){for(var _0xb9ebx8=0;_0xb9ebx8< _0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0x9a33[14]];_0xb9ebx8+= 1){_0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8][_0x9a33[16]]= _0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8][_0x9a33[17]];delete _0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8][_0x9a33[17]];db[_0x9a33[19]][_0x9a33[18]](_0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8])}}}})})[_0x9a33[12]](function(){logger[_0x9a33[11]](_0x9a33[10])})[_0x9a33[9]](function(_0xb9ebx4){logger[_0x9a33[8]](_0x9a33[7])})};exports[_0x9a33[25]]= function(){return db[_0x9a33[30]][_0x9a33[22]](report[_0x9a33[21]](_0x9a33[29]),{ignoreDuplicates:true,individualHooks:true})[_0x9a33[12]](function(_0xb9ebx5){var _0xb9ebx6=report[_0x9a33[13]]();for(var _0xb9ebx7=0;_0xb9ebx7< _0xb9ebx5[_0x9a33[14]];_0xb9ebx7+= 1){if(_0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]]){for(var _0xb9ebx8=0;_0xb9ebx8< _0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0x9a33[14]];_0xb9ebx8+= 1){_0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8][_0x9a33[28]]= _0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8][_0x9a33[17]];delete _0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8][_0x9a33[17]];db[_0x9a33[19]][_0x9a33[18]](_0xb9ebx6[_0xb9ebx5[_0xb9ebx7][_0x9a33[15]]][_0xb9ebx8])}}}})[_0x9a33[12]](function(){logger[_0x9a33[11]](_0x9a33[27])})[_0x9a33[9]](function(_0xb9ebx4){logger[_0x9a33[8]](_0x9a33[26])})}
\ No newline at end of file
+var _0x536d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x72\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x52\x65\x70\x6F\x72\x74\x49\x64","\x63\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6D\x6F\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x63\x75\x73\x74\x6F\x6D","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74"];_0x536d[0];var db=require(_0x536d[2])[_0x536d[1]];var logger=require(_0x536d[4])(_0x536d[3]);var report=require(_0x536d[5]);exports[_0x536d[6]]= function(){return db[_0x536d[23]][_0x536d[24]]({where:{id:{$ne:null}}})[_0x536d[12]](function(){return db[_0x536d[19]][_0x536d[24]]({where:{DefaultReportId:{$ne:null}}})})[_0x536d[12]](function(){return db[_0x536d[23]][_0x536d[22]](report[_0x536d[21]](_0x536d[20]),{ignoreDuplicates:true,individualHooks:true})[_0x536d[12]](function(_0xcbd4x5){var _0xcbd4x6=report[_0x536d[13]]();for(var _0xcbd4x7=0;_0xcbd4x7< _0xcbd4x5[_0x536d[14]];_0xcbd4x7+= 1){if(_0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]]){for(var _0xcbd4x8=0;_0xcbd4x8< _0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0x536d[14]];_0xcbd4x8+= 1){_0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8][_0x536d[16]]= _0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8][_0x536d[17]];delete _0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8][_0x536d[17]];db[_0x536d[19]][_0x536d[18]](_0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8])}}}})})[_0x536d[12]](function(){logger[_0x536d[11]](_0x536d[10])})[_0x536d[9]](function(_0xcbd4x4){logger[_0x536d[8]](_0x536d[7])})};exports[_0x536d[25]]= function(){return db[_0x536d[30]][_0x536d[22]](report[_0x536d[21]](_0x536d[29]),{ignoreDuplicates:true,individualHooks:true})[_0x536d[12]](function(_0xcbd4x5){var _0xcbd4x6=report[_0x536d[13]]();for(var _0xcbd4x7=0;_0xcbd4x7< _0xcbd4x5[_0x536d[14]];_0xcbd4x7+= 1){if(_0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]]){for(var _0xcbd4x8=0;_0xcbd4x8< _0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0x536d[14]];_0xcbd4x8+= 1){_0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8][_0x536d[28]]= _0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8][_0x536d[17]];delete _0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8][_0x536d[17]];db[_0x536d[19]][_0x536d[18]](_0xcbd4x6[_0xcbd4x5[_0xcbd4x7][_0x536d[15]]][_0xcbd4x8])}}}})[_0x536d[12]](function(){logger[_0x536d[11]](_0x536d[27])})[_0x536d[9]](function(_0xcbd4x4){logger[_0x536d[8]](_0x536d[26])})}
\ No newline at end of file
index a31b525..edb5652 100644 (file)
@@ -1 +1 @@
-var _0x4b74=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x65\x65","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6D\x6F\x74\x69\x6F\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D"];_0x4b74[0];var db=require(_0x4b74[2])[_0x4b74[1]];var logger=require(_0x4b74[4])(_0x4b74[3]);var tree=require(_0x4b74[5]);exports[_0x4b74[6]]= function(){return db[_0x4b74[16]][_0x4b74[17]]({where:{id:1}})[_0x4b74[12]](function(){return db[_0x4b74[16]][_0x4b74[15]]([{id:1,tree:JSON[_0x4b74[14]](tree[_0x4b74[13]])}],{ignoreDuplicates:true,individualHooks:true})})[_0x4b74[12]](function(){logger[_0x4b74[11]](_0x4b74[10])})[_0x4b74[9]](function(_0xbce1x4){logger[_0x4b74[8]](_0x4b74[7])})};exports[_0x4b74[18]]= function(){return db[_0x4b74[16]][_0x4b74[15]]([{id:2,tree:JSON[_0x4b74[14]](tree[_0x4b74[21]])}],{ignoreDuplicates:true,individualHooks:true})[_0x4b74[12]](function(){logger[_0x4b74[11]](_0x4b74[20])})[_0x4b74[9]](function(_0xbce1x4){logger[_0x4b74[8]](_0x4b74[19])})}
\ No newline at end of file
+var _0x2227=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x65\x65","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6D\x6F\x74\x69\x6F\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D"];_0x2227[0];var db=require(_0x2227[2])[_0x2227[1]];var logger=require(_0x2227[4])(_0x2227[3]);var tree=require(_0x2227[5]);exports[_0x2227[6]]= function(){return db[_0x2227[16]][_0x2227[17]]({where:{id:1}})[_0x2227[12]](function(){return db[_0x2227[16]][_0x2227[15]]([{id:1,tree:JSON[_0x2227[14]](tree[_0x2227[13]])}],{ignoreDuplicates:true,individualHooks:true})})[_0x2227[12]](function(){logger[_0x2227[11]](_0x2227[10])})[_0x2227[9]](function(_0xf56dx4){logger[_0x2227[8]](_0x2227[7])})};exports[_0x2227[18]]= function(){return db[_0x2227[16]][_0x2227[15]]([{id:2,tree:JSON[_0x2227[14]](tree[_0x2227[21]])}],{ignoreDuplicates:true,individualHooks:true})[_0x2227[12]](function(){logger[_0x2227[11]](_0x2227[20])})[_0x2227[9]](function(_0xf56dx4){logger[_0x2227[8]](_0x2227[19])})}
\ No newline at end of file
index 02f3075..d9671a7 100644 (file)
@@ -1 +1 @@
-var _0xae20=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x4C\x69\x73\x74\x65\x6E\x26\x54\x61\x6C\x6B\x4F\x6E\x65","\x73\x70\x79\x31","\x62","\x77","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6C\x69\x73\x74\x65\x6E\x20\x61\x6E\x64\x20\x74\x61\x6C\x6B\x20\x74\x6F\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x2E\x20\x54\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x77\x69\x6C\x6C\x20\x6E\x6F\x74\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x6F\x20\x74\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x76\x6F\x69\x63\x65\x2E","\x4F\x6E\x6C\x79\x4C\x69\x73\x74\x65\x6E","\x73\x70\x79\x32","\x6F","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6F\x6E\x6C\x79\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x63\x68\x61\x6E\x6E\x65\x6C\x20\x28\x6E\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x6E\x6F\x72\x20\x74\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x77\x69\x6C\x6C\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x6F\x20\x74\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x76\x6F\x69\x63\x65\x2E","\x4C\x69\x73\x74\x65\x6E\x26\x54\x61\x6C\x6B\x42\x6F\x74\x68","\x73\x70\x79\x33","\x57","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6C\x69\x73\x74\x65\x6E\x20\x61\x6E\x64\x20\x74\x61\x6C\x6B\x20\x62\x6F\x74\x68\x20\x74\x6F\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x61\x6E\x64\x20\x74\x6F\x20\x74\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x2C\x20\x6C\x69\x6B\x65\x20\x61\x20\x70\x75\x72\x65\x20\x33\x20\x77\x61\x79\x20\x63\x6F\x6E\x66\x65\x72\x65\x6E\x63\x65\x20\x72\x6F\x6F\x6D\x2E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x68\x61\x6E\x53\x70\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x68\x61\x6E\x53\x70\x61\x79\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79"];_0xae20[0];var db=require(_0xae20[2])[_0xae20[1]];var logger=require(_0xae20[4])(_0xae20[3]);var chanSpy=[{id:1,name:_0xae20[5],prefix:_0xae20[6],options:[_0xae20[7],_0xae20[8]],description:_0xae20[9]},{id:2,name:_0xae20[10],prefix:_0xae20[11],options:[_0xae20[7],_0xae20[12]],description:_0xae20[13]},{id:3,name:_0xae20[14],prefix:_0xae20[15],options:[_0xae20[7],_0xae20[16]],description:_0xae20[17]}];exports[_0xae20[18]]= function(){return db[_0xae20[26]][_0xae20[25]](chanSpy,{ignoreDuplicates:true,individualHooks:true})[_0xae20[24]](function(){logger[_0xae20[23]](_0xae20[22])})[_0xae20[21]](function(_0x425dx4){logger[_0xae20[20]](_0xae20[19])})}
\ No newline at end of file
+var _0x6e73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x4C\x69\x73\x74\x65\x6E\x26\x54\x61\x6C\x6B\x4F\x6E\x65","\x73\x70\x79\x31","\x62","\x77","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6C\x69\x73\x74\x65\x6E\x20\x61\x6E\x64\x20\x74\x61\x6C\x6B\x20\x74\x6F\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x2E\x20\x54\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x77\x69\x6C\x6C\x20\x6E\x6F\x74\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x6F\x20\x74\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x76\x6F\x69\x63\x65\x2E","\x4F\x6E\x6C\x79\x4C\x69\x73\x74\x65\x6E","\x73\x70\x79\x32","\x6F","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6F\x6E\x6C\x79\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x63\x68\x61\x6E\x6E\x65\x6C\x20\x28\x6E\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x6E\x6F\x72\x20\x74\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x77\x69\x6C\x6C\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x6F\x20\x74\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x76\x6F\x69\x63\x65\x2E","\x4C\x69\x73\x74\x65\x6E\x26\x54\x61\x6C\x6B\x42\x6F\x74\x68","\x73\x70\x79\x33","\x57","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6C\x69\x73\x74\x65\x6E\x20\x61\x6E\x64\x20\x74\x61\x6C\x6B\x20\x62\x6F\x74\x68\x20\x74\x6F\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x61\x6E\x64\x20\x74\x6F\x20\x74\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x2C\x20\x6C\x69\x6B\x65\x20\x61\x20\x70\x75\x72\x65\x20\x33\x20\x77\x61\x79\x20\x63\x6F\x6E\x66\x65\x72\x65\x6E\x63\x65\x20\x72\x6F\x6F\x6D\x2E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x68\x61\x6E\x53\x70\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x68\x61\x6E\x53\x70\x61\x79\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79"];_0x6e73[0];var db=require(_0x6e73[2])[_0x6e73[1]];var logger=require(_0x6e73[4])(_0x6e73[3]);var chanSpy=[{id:1,name:_0x6e73[5],prefix:_0x6e73[6],options:[_0x6e73[7],_0x6e73[8]],description:_0x6e73[9]},{id:2,name:_0x6e73[10],prefix:_0x6e73[11],options:[_0x6e73[7],_0x6e73[12]],description:_0x6e73[13]},{id:3,name:_0x6e73[14],prefix:_0x6e73[15],options:[_0x6e73[7],_0x6e73[16]],description:_0x6e73[17]}];exports[_0x6e73[18]]= function(){return db[_0x6e73[26]][_0x6e73[25]](chanSpy,{ignoreDuplicates:true,individualHooks:true})[_0x6e73[24]](function(){logger[_0x6e73[23]](_0x6e73[22])})[_0x6e73[21]](function(_0x1d28x4){logger[_0x6e73[20]](_0x6e73[19])})}
\ No newline at end of file
index 161c7bc..b44baf1 100644 (file)
@@ -1 +1 @@
-var _0x93b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x58\x65\x6E\x69\x61\x6C\x61\x62","\x73\x72\x6C","\x30\x39\x36\x36\x38\x39\x31\x30\x30\x31\x32","\x2B\x33\x39\x30\x31\x31\x31\x39\x38\x38\x36\x35\x30\x30","\x2B\x33\x39\x30\x31\x31\x30\x39\x36\x30\x30\x37\x30","\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x69\x6E\x66\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x43\x6F\x72\x73\x6F\x20\x56\x69\x74\x74\x6F\x72\x69\x6F\x20\x45\x6D\x61\x6E\x75\x65\x6C\x65\x20\x49\x49\x2C\x20\x31\x31\x31","\x31\x30\x31\x32\x38","\x54\x75\x72\x69\x6E","\x49\x74\x61\x6C\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6D\x70\x61\x6E\x69\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79"];_0x93b7[0];var db=require(_0x93b7[2])[_0x93b7[1]];var logger=require(_0x93b7[4])(_0x93b7[3]);var companies=[{id:1,name:_0x93b7[5],type:_0x93b7[6],vat:_0x93b7[7],phone:_0x93b7[8],fax:_0x93b7[9],website:_0x93b7[10],email:_0x93b7[11],emailDomain:_0x93b7[12],street:_0x93b7[13],postalCode:_0x93b7[14],city:_0x93b7[15],country:_0x93b7[16],description:_0x93b7[17]}];exports[_0x93b7[18]]= function(){return db[_0x93b7[26]][_0x93b7[25]](companies,{ignoreDuplicates:true,individualHooks:true})[_0x93b7[24]](function(){logger[_0x93b7[23]](_0x93b7[22])})[_0x93b7[21]](function(_0x32d8x4){logger[_0x93b7[20]](_0x93b7[19])})}
\ No newline at end of file
+var _0x534c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x58\x65\x6E\x69\x61\x6C\x61\x62","\x73\x72\x6C","\x30\x39\x36\x36\x38\x39\x31\x30\x30\x31\x32","\x2B\x33\x39\x30\x31\x31\x31\x39\x38\x38\x36\x35\x30\x30","\x2B\x33\x39\x30\x31\x31\x30\x39\x36\x30\x30\x37\x30","\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x69\x6E\x66\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x43\x6F\x72\x73\x6F\x20\x56\x69\x74\x74\x6F\x72\x69\x6F\x20\x45\x6D\x61\x6E\x75\x65\x6C\x65\x20\x49\x49\x2C\x20\x31\x31\x31","\x31\x30\x31\x32\x38","\x54\x75\x72\x69\x6E","\x49\x74\x61\x6C\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6D\x70\x61\x6E\x69\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79"];_0x534c[0];var db=require(_0x534c[2])[_0x534c[1]];var logger=require(_0x534c[4])(_0x534c[3]);var companies=[{id:1,name:_0x534c[5],type:_0x534c[6],vat:_0x534c[7],phone:_0x534c[8],fax:_0x534c[9],website:_0x534c[10],email:_0x534c[11],emailDomain:_0x534c[12],street:_0x534c[13],postalCode:_0x534c[14],city:_0x534c[15],country:_0x534c[16],description:_0x534c[17]}];exports[_0x534c[18]]= function(){return db[_0x534c[26]][_0x534c[25]](companies,{ignoreDuplicates:true,individualHooks:true})[_0x534c[24]](function(){logger[_0x534c[23]](_0x534c[22])})[_0x534c[21]](function(_0x2108x4){logger[_0x534c[20]](_0x534c[19])})}
\ No newline at end of file
index 18cc89a..080fdc3 100644 (file)
@@ -1 +1 @@
-var _0x972d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x61\x67\x73","\x67\x65\x74\x4E\x61\x6D\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x72\x61\x6E\x64\x6F\x6D","\x66\x6C\x6F\x6F\x72","\x4D\x61\x72\x69\x6F","\x52\x6F\x73\x73\x69","\x31\x32\x33","\x6D\x61\x72\x69\x6F\x2E\x72\x6F\x73\x73\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x6F\x6E\x74\x61\x63\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x47\x69\x75\x73\x65\x70\x70\x65","\x56\x65\x72\x64\x69","\x34\x35\x36","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x76\x65\x72\x64\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x41\x6E\x64\x72\x65\x61","\x42\x69\x61\x6E\x63\x6F","\x37\x38\x39","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6E\x74\x61\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6E\x74\x61\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74"];_0x972d[0];var db=require(_0x972d[2])[_0x972d[1]];var logger=require(_0x972d[4])(_0x972d[3]);var tags=require(_0x972d[5]);var tags=tags[_0x972d[6]]();var getRandomTag=function(){var _0x9edcx5=tags[_0x972d[7]]- 1;return [tags[Math[_0x972d[9]](Math[_0x972d[8]]()* _0x9edcx5)+ 1]]};var contacts=[{id:1,firstName:_0x972d[10],lastName:_0x972d[11],phone:_0x972d[12],email:_0x972d[13],ListId:1,CompanyId:1,tags:getRandomTag(),description:_0x972d[14]},{id:2,firstName:_0x972d[15],lastName:_0x972d[16],phone:_0x972d[17],email:_0x972d[18],ListId:1,CompanyId:1,tags:getRandomTag(),description:_0x972d[14]},{id:3,firstName:_0x972d[19],lastName:_0x972d[20],phone:_0x972d[21],email:_0x972d[22],ListId:2,CompanyId:1,tags:getRandomTag(),description:_0x972d[14]}];exports[_0x972d[23]]= function(){return db[_0x972d[31]][_0x972d[30]](contacts,{ignoreDuplicates:true,individualHooks:true})[_0x972d[29]](function(){logger[_0x972d[28]](_0x972d[27])})[_0x972d[26]](function(_0x9edcx7){logger[_0x972d[25]](_0x972d[24])})}
\ No newline at end of file
+var _0x8d3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x61\x67\x73","\x67\x65\x74\x4E\x61\x6D\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x72\x61\x6E\x64\x6F\x6D","\x66\x6C\x6F\x6F\x72","\x4D\x61\x72\x69\x6F","\x52\x6F\x73\x73\x69","\x31\x32\x33","\x6D\x61\x72\x69\x6F\x2E\x72\x6F\x73\x73\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x6F\x6E\x74\x61\x63\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x47\x69\x75\x73\x65\x70\x70\x65","\x56\x65\x72\x64\x69","\x34\x35\x36","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x76\x65\x72\x64\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x41\x6E\x64\x72\x65\x61","\x42\x69\x61\x6E\x63\x6F","\x37\x38\x39","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6E\x74\x61\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6E\x74\x61\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74"];_0x8d3f[0];var db=require(_0x8d3f[2])[_0x8d3f[1]];var logger=require(_0x8d3f[4])(_0x8d3f[3]);var tags=require(_0x8d3f[5]);var tags=tags[_0x8d3f[6]]();var getRandomTag=function(){var _0xd7e7x5=tags[_0x8d3f[7]]- 1;return [tags[Math[_0x8d3f[9]](Math[_0x8d3f[8]]()* _0xd7e7x5)+ 1]]};var contacts=[{id:1,firstName:_0x8d3f[10],lastName:_0x8d3f[11],phone:_0x8d3f[12],email:_0x8d3f[13],ListId:1,CompanyId:1,tags:getRandomTag(),description:_0x8d3f[14]},{id:2,firstName:_0x8d3f[15],lastName:_0x8d3f[16],phone:_0x8d3f[17],email:_0x8d3f[18],ListId:1,CompanyId:1,tags:getRandomTag(),description:_0x8d3f[14]},{id:3,firstName:_0x8d3f[19],lastName:_0x8d3f[20],phone:_0x8d3f[21],email:_0x8d3f[22],ListId:2,CompanyId:1,tags:getRandomTag(),description:_0x8d3f[14]}];exports[_0x8d3f[23]]= function(){return db[_0x8d3f[31]][_0x8d3f[30]](contacts,{ignoreDuplicates:true,individualHooks:true})[_0x8d3f[29]](function(){logger[_0x8d3f[28]](_0x8d3f[27])})[_0x8d3f[26]](function(_0xd7e7x7){logger[_0x8d3f[25]](_0x8d3f[24])})}
\ No newline at end of file
index 089bd74..45ceb95 100644 (file)
@@ -1 +1 @@
-var _0xb879=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x52\x65\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x2E\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x74\x61\x67\x73","\x2E\x2F\x6C\x69\x73\x74\x73","\x2E\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x53\x65\x74\x74\x69\x6E\x67","\x64\x65\x66\x61\x75\x6C\x74"];_0xb879[0];var BPromise=require(_0xb879[1]);var db=require(_0xb879[3])[_0xb879[2]];var logger=require(_0xb879[5])(_0xb879[4]);var defaultSeed=function(){return db[_0xb879[36]][_0xb879[35]]({where:{id:1},defaults:{firstSetup:true}})[_0xb879[34]](function(_0x11d8x6,_0x11d8x7){require(_0xb879[10])[_0xb879[9]]();require(_0xb879[11])[_0xb879[9]]();if(_0x11d8x7){logger[_0xb879[13]](_0xb879[12]);require(_0xb879[10])[_0xb879[14]]();require(_0xb879[11])[_0xb879[14]]();require(_0xb879[16])[_0xb879[15]]();require(_0xb879[17])[_0xb879[15]]();require(_0xb879[18])[_0xb879[15]]();require(_0xb879[19])[_0xb879[15]]();require(_0xb879[20])[_0xb879[15]]();require(_0xb879[21])[_0xb879[15]]();require(_0xb879[22])[_0xb879[15]]();require(_0xb879[23])[_0xb879[15]]();require(_0xb879[24])[_0xb879[15]]();require(_0xb879[25])[_0xb879[15]]();require(_0xb879[26])[_0xb879[15]]();require(_0xb879[27])[_0xb879[15]]();require(_0xb879[28])[_0xb879[15]]();require(_0xb879[29])[_0xb879[15]]();require(_0xb879[30])[_0xb879[15]]();require(_0xb879[31])[_0xb879[15]]();require(_0xb879[32])[_0xb879[15]]();require(_0xb879[33])[_0xb879[15]]()}})[_0xb879[8]](function(_0x11d8x5){logger[_0xb879[7]](JSON[_0xb879[6]](_0x11d8x5))})};exports[_0xb879[37]]= defaultSeed
\ No newline at end of file
+var _0xf912=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x52\x65\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x2E\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x74\x61\x67\x73","\x2E\x2F\x6C\x69\x73\x74\x73","\x2E\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x53\x65\x74\x74\x69\x6E\x67","\x64\x65\x66\x61\x75\x6C\x74"];_0xf912[0];var BPromise=require(_0xf912[1]);var db=require(_0xf912[3])[_0xf912[2]];var logger=require(_0xf912[5])(_0xf912[4]);var defaultSeed=function(){return db[_0xf912[36]][_0xf912[35]]({where:{id:1},defaults:{firstSetup:true}})[_0xf912[34]](function(_0x362ax6,_0x362ax7){require(_0xf912[10])[_0xf912[9]]();require(_0xf912[11])[_0xf912[9]]();if(_0x362ax7){logger[_0xf912[13]](_0xf912[12]);require(_0xf912[10])[_0xf912[14]]();require(_0xf912[11])[_0xf912[14]]();require(_0xf912[16])[_0xf912[15]]();require(_0xf912[17])[_0xf912[15]]();require(_0xf912[18])[_0xf912[15]]();require(_0xf912[19])[_0xf912[15]]();require(_0xf912[20])[_0xf912[15]]();require(_0xf912[21])[_0xf912[15]]();require(_0xf912[22])[_0xf912[15]]();require(_0xf912[23])[_0xf912[15]]();require(_0xf912[24])[_0xf912[15]]();require(_0xf912[25])[_0xf912[15]]();require(_0xf912[26])[_0xf912[15]]();require(_0xf912[27])[_0xf912[15]]();require(_0xf912[28])[_0xf912[15]]();require(_0xf912[29])[_0xf912[15]]();require(_0xf912[30])[_0xf912[15]]();require(_0xf912[31])[_0xf912[15]]();require(_0xf912[32])[_0xf912[15]]();require(_0xf912[33])[_0xf912[15]]()}})[_0xf912[8]](function(_0x362ax5){logger[_0xf912[7]](JSON[_0xf912[6]](_0x362ax5))})};exports[_0xf912[37]]= defaultSeed
\ No newline at end of file
index 9c50251..13072a2 100644 (file)
@@ -1 +1 @@
-var _0xab1b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x4D\x6F\x6F\x72\x6E\x69\x67","\x30\x39\x3A\x30\x30\x2D\x31\x33\x3A\x30\x30\x2C\x6D\x6F\x6E\x2D\x66\x72\x69\x2C\x2A\x2C\x2A","\x41\x66\x74\x65\x72\x6E\x6F\x6F\x6E","\x31\x34\x3A\x30\x30\x2D\x31\x38\x3A\x30\x30\x2C\x6D\x6F\x6E\x2D\x66\x72\x69\x2C\x2A\x2C\x2A","\x43\x68\x72\x69\x73\x74\x6D\x61\x73","\x2A\x2C\x2A\x2C\x32\x35\x2C\x64\x65\x63","\x4E\x65\x77\x59\x65\x61\x72","\x2A\x2C\x2A\x2C\x31\x2C\x6A\x61\x6E","\x56\x61\x6C\x65\x6E\x74\x69\x6E\x65\x73","\x2A\x2C\x2A\x2C\x31\x34\x2C\x66\x65\x62","\x48\x61\x6C\x6C\x6F\x77\x65\x65\x6E","\x2A\x2C\x2A\x2C\x33\x31\x2C\x6F\x63\x74","\x57\x6F\x72\x6B\x69\x6E\x67\x54\x69\x6D\x65","\x77\x6F\x72\x6B\x69\x6E\x67\x20\x74\x69\x6D\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x48\x6F\x6C\x69\x64\x61\x79\x73","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x49\x6E\x74\x65\x76\x61\x6C\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x69\x64","\x64\x65\x66\x61\x75\x6C\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0xab1b[0];var _=require(_0xab1b[1]);var db=require(_0xab1b[3])[_0xab1b[2]];var logger=require(_0xab1b[5])(_0xab1b[4]);var subIntervals={"\x57\x6F\x72\x6B\x69\x6E\x67\x54\x69\x6D\x65":[{name:_0xab1b[6],interval:_0xab1b[7]},{name:_0xab1b[8],interval:_0xab1b[9]}],"\x48\x6F\x6C\x69\x64\x61\x79\x73":[{name:_0xab1b[10],interval:_0xab1b[11]},{name:_0xab1b[12],interval:_0xab1b[13]},{name:_0xab1b[14],interval:_0xab1b[15]},{name:_0xab1b[16],interval:_0xab1b[17]}]};var intervals=[{id:1,name:_0xab1b[18],description:_0xab1b[19]},{id:2,name:_0xab1b[20],description:_0xab1b[19]}];exports[_0xab1b[21]]= function(){return db[_0xab1b[33]][_0xab1b[34]](intervals,{ignoreDuplicates:true,individualHooks:true})[_0xab1b[27]](function(_0x5fd6x7){for(var _0x5fd6x8=0;_0x5fd6x8< _0x5fd6x7[_0xab1b[28]];_0x5fd6x8+= 1){if(subIntervals[_0x5fd6x7[_0x5fd6x8][_0xab1b[29]]]){for(var _0x5fd6x9=0;_0x5fd6x9< subIntervals[_0x5fd6x7[_0x5fd6x8][_0xab1b[29]]][_0xab1b[28]];_0x5fd6x9+= 1){subIntervals[_0x5fd6x7[_0x5fd6x8][_0xab1b[29]]][_0x5fd6x9]= _[_0xab1b[32]](subIntervals[_0x5fd6x7[_0x5fd6x8][_0xab1b[29]]][_0x5fd6x9],{description:_0x5fd6x7[_0x5fd6x8][_0xab1b[30]],IntervalId:_0x5fd6x7[_0x5fd6x8][_0xab1b[31]]});db[_0xab1b[33]][_0xab1b[21]](subIntervals[_0x5fd6x7[_0x5fd6x8][_0xab1b[29]]][_0x5fd6x9])}}}})[_0xab1b[27]](function(){logger[_0xab1b[26]](_0xab1b[25])})[_0xab1b[24]](function(_0x5fd6x6){logger[_0xab1b[23]](_0xab1b[22])})}
\ No newline at end of file
+var _0xc3bb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x4D\x6F\x6F\x72\x6E\x69\x67","\x30\x39\x3A\x30\x30\x2D\x31\x33\x3A\x30\x30\x2C\x6D\x6F\x6E\x2D\x66\x72\x69\x2C\x2A\x2C\x2A","\x41\x66\x74\x65\x72\x6E\x6F\x6F\x6E","\x31\x34\x3A\x30\x30\x2D\x31\x38\x3A\x30\x30\x2C\x6D\x6F\x6E\x2D\x66\x72\x69\x2C\x2A\x2C\x2A","\x43\x68\x72\x69\x73\x74\x6D\x61\x73","\x2A\x2C\x2A\x2C\x32\x35\x2C\x64\x65\x63","\x4E\x65\x77\x59\x65\x61\x72","\x2A\x2C\x2A\x2C\x31\x2C\x6A\x61\x6E","\x56\x61\x6C\x65\x6E\x74\x69\x6E\x65\x73","\x2A\x2C\x2A\x2C\x31\x34\x2C\x66\x65\x62","\x48\x61\x6C\x6C\x6F\x77\x65\x65\x6E","\x2A\x2C\x2A\x2C\x33\x31\x2C\x6F\x63\x74","\x57\x6F\x72\x6B\x69\x6E\x67\x54\x69\x6D\x65","\x77\x6F\x72\x6B\x69\x6E\x67\x20\x74\x69\x6D\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x48\x6F\x6C\x69\x64\x61\x79\x73","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x49\x6E\x74\x65\x76\x61\x6C\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x69\x64","\x64\x65\x66\x61\x75\x6C\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0xc3bb[0];var _=require(_0xc3bb[1]);var db=require(_0xc3bb[3])[_0xc3bb[2]];var logger=require(_0xc3bb[5])(_0xc3bb[4]);var subIntervals={"\x57\x6F\x72\x6B\x69\x6E\x67\x54\x69\x6D\x65":[{name:_0xc3bb[6],interval:_0xc3bb[7]},{name:_0xc3bb[8],interval:_0xc3bb[9]}],"\x48\x6F\x6C\x69\x64\x61\x79\x73":[{name:_0xc3bb[10],interval:_0xc3bb[11]},{name:_0xc3bb[12],interval:_0xc3bb[13]},{name:_0xc3bb[14],interval:_0xc3bb[15]},{name:_0xc3bb[16],interval:_0xc3bb[17]}]};var intervals=[{id:1,name:_0xc3bb[18],description:_0xc3bb[19]},{id:2,name:_0xc3bb[20],description:_0xc3bb[19]}];exports[_0xc3bb[21]]= function(){return db[_0xc3bb[33]][_0xc3bb[34]](intervals,{ignoreDuplicates:true,individualHooks:true})[_0xc3bb[27]](function(_0x6a71x7){for(var _0x6a71x8=0;_0x6a71x8< _0x6a71x7[_0xc3bb[28]];_0x6a71x8+= 1){if(subIntervals[_0x6a71x7[_0x6a71x8][_0xc3bb[29]]]){for(var _0x6a71x9=0;_0x6a71x9< subIntervals[_0x6a71x7[_0x6a71x8][_0xc3bb[29]]][_0xc3bb[28]];_0x6a71x9+= 1){subIntervals[_0x6a71x7[_0x6a71x8][_0xc3bb[29]]][_0x6a71x9]= _[_0xc3bb[32]](subIntervals[_0x6a71x7[_0x6a71x8][_0xc3bb[29]]][_0x6a71x9],{description:_0x6a71x7[_0x6a71x8][_0xc3bb[30]],IntervalId:_0x6a71x7[_0x6a71x8][_0xc3bb[31]]});db[_0xc3bb[33]][_0xc3bb[21]](subIntervals[_0x6a71x7[_0x6a71x8][_0xc3bb[29]]][_0x6a71x9])}}}})[_0xc3bb[27]](function(){logger[_0xc3bb[26]](_0xc3bb[25])})[_0xc3bb[24]](function(_0x6a71x6){logger[_0xc3bb[23]](_0xc3bb[22])})}
\ No newline at end of file
index 6095a42..189b562 100644 (file)
@@ -1 +1 @@
-var _0x6726=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x50\x75\x62\x6C\x69\x63\x20\x4C\x69\x73\x74","\x70\x75\x62\x6C\x69\x63\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x42\x6C\x61\x63\x6B\x20\x4C\x69\x73\x74","\x62\x6C\x61\x63\x6B\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x4C\x69\x73\x74","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4C\x69\x73\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4C\x69\x73\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x4C\x69\x73\x74"];_0x6726[0];var db=require(_0x6726[2])[_0x6726[1]];var logger=require(_0x6726[4])(_0x6726[3]);var lists=[{id:1,name:_0x6726[5],description:_0x6726[6]},{id:2,name:_0x6726[7],description:_0x6726[8]},{id:3,name:_0x6726[9],description:_0x6726[10]}];exports[_0x6726[11]]= function(){return db[_0x6726[19]][_0x6726[18]](lists,{ignoreDuplicates:true,individualHooks:true})[_0x6726[17]](function(){logger[_0x6726[16]](_0x6726[15])})[_0x6726[14]](function(_0x917fx4){logger[_0x6726[13]](_0x6726[12])})}
\ No newline at end of file
+var _0xc307=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x50\x75\x62\x6C\x69\x63\x20\x4C\x69\x73\x74","\x70\x75\x62\x6C\x69\x63\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x42\x6C\x61\x63\x6B\x20\x4C\x69\x73\x74","\x62\x6C\x61\x63\x6B\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x4C\x69\x73\x74","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4C\x69\x73\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4C\x69\x73\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x4C\x69\x73\x74"];_0xc307[0];var db=require(_0xc307[2])[_0xc307[1]];var logger=require(_0xc307[4])(_0xc307[3]);var lists=[{id:1,name:_0xc307[5],description:_0xc307[6]},{id:2,name:_0xc307[7],description:_0xc307[8]},{id:3,name:_0xc307[9],description:_0xc307[10]}];exports[_0xc307[11]]= function(){return db[_0xc307[19]][_0xc307[18]](lists,{ignoreDuplicates:true,individualHooks:true})[_0xc307[17]](function(){logger[_0xc307[16]](_0xc307[15])})[_0xc307[14]](function(_0x4010x4){logger[_0xc307[13]](_0xc307[12])})}
\ No newline at end of file
index 5f16622..f4eaa9e 100644 (file)
@@ -1 +1 @@
-var _0x4745=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x53\x65\x72\x76\x69\x63\x65\x20\x4D\x61\x69\x6C","\x73\x65\x72\x76\x69\x63\x65\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4D\x61\x69\x6C\x20\x41\x63\x63\x6F\x75\x6E\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4D\x61\x69\x6C\x20\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x69\x64","\x73\x65\x72\x76\x69\x63\x65\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x73\x6D\x74\x70\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74"];_0x4745[0];var db=require(_0x4745[2])[_0x4745[1]];var logger=require(_0x4745[4])(_0x4745[3]);var mailAccounts=[{id:1,name:_0x4745[5],service:true,description:_0x4745[6]}];exports[_0x4745[7]]= function(){return db[_0x4745[22]][_0x4745[21]](mailAccounts,{ignoreDuplicates:true,individualHooks:true})[_0x4745[13]](function(_0x1cccx5){for(var _0x1cccx6=0;_0x1cccx6< _0x1cccx5[_0x4745[14]];_0x1cccx6+= 1){db[_0x4745[20]][_0x4745[7]]({host:_0x4745[15],user:_0x4745[16],pass:_0x4745[17],port:465,secure:true,MailAccountId:_0x1cccx5[_0x1cccx6][_0x4745[18]],description:_0x4745[19]})}})[_0x4745[13]](function(){logger[_0x4745[12]](_0x4745[11])})[_0x4745[10]](function(_0x1cccx4){logger[_0x4745[9]](_0x4745[8])})}
\ No newline at end of file
+var _0xc569=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x53\x65\x72\x76\x69\x63\x65\x20\x4D\x61\x69\x6C","\x73\x65\x72\x76\x69\x63\x65\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4D\x61\x69\x6C\x20\x41\x63\x63\x6F\x75\x6E\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4D\x61\x69\x6C\x20\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x69\x64","\x73\x65\x72\x76\x69\x63\x65\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x73\x6D\x74\x70\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74"];_0xc569[0];var db=require(_0xc569[2])[_0xc569[1]];var logger=require(_0xc569[4])(_0xc569[3]);var mailAccounts=[{id:1,name:_0xc569[5],service:true,description:_0xc569[6]}];exports[_0xc569[7]]= function(){return db[_0xc569[22]][_0xc569[21]](mailAccounts,{ignoreDuplicates:true,individualHooks:true})[_0xc569[13]](function(_0x8671x5){for(var _0x8671x6=0;_0x8671x6< _0x8671x5[_0xc569[14]];_0x8671x6+= 1){db[_0xc569[20]][_0xc569[7]]({host:_0xc569[15],user:_0xc569[16],pass:_0xc569[17],port:465,secure:true,MailAccountId:_0x8671x5[_0x8671x6][_0xc569[18]],description:_0xc569[19]})}})[_0xc569[13]](function(){logger[_0xc569[12]](_0xc569[11])})[_0xc569[10]](function(_0x8671x4){logger[_0xc569[9]](_0xc569[8])})}
\ No newline at end of file
index 103c3e2..b45701e 100644 (file)
@@ -1 +1 @@
-var _0x6d12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x42\x41\x43\x4B\x4F\x46\x46\x49\x43\x45","\x62\x61\x63\x6B\x6F\x66\x66\x69\x63\x65\x20\x70\x61\x75\x73\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x41\x46\x54\x45\x52\x43\x41\x4C\x4C","\x61\x66\x74\x65\x72\x63\x61\x6C\x6C\x20\x70\x61\x75\x73\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x50\x61\x75\x73\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x50\x61\x75\x73\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x50\x61\x75\x73\x65"];_0x6d12[0];var db=require(_0x6d12[2])[_0x6d12[1]];var logger=require(_0x6d12[4])(_0x6d12[3]);var pauses=[{id:1,name:_0x6d12[5],description:_0x6d12[6]},{id:2,name:_0x6d12[7],description:_0x6d12[8]}];exports[_0x6d12[9]]= function(){return db[_0x6d12[17]][_0x6d12[16]](pauses,{ignoreDuplicates:true,individualHooks:true})[_0x6d12[15]](function(){logger[_0x6d12[14]](_0x6d12[13])})[_0x6d12[12]](function(_0x884cx4){logger[_0x6d12[11]](_0x6d12[10])})}
\ No newline at end of file
+var _0x2b91=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x42\x41\x43\x4B\x4F\x46\x46\x49\x43\x45","\x62\x61\x63\x6B\x6F\x66\x66\x69\x63\x65\x20\x70\x61\x75\x73\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x41\x46\x54\x45\x52\x43\x41\x4C\x4C","\x61\x66\x74\x65\x72\x63\x61\x6C\x6C\x20\x70\x61\x75\x73\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x50\x61\x75\x73\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x50\x61\x75\x73\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x50\x61\x75\x73\x65"];_0x2b91[0];var db=require(_0x2b91[2])[_0x2b91[1]];var logger=require(_0x2b91[4])(_0x2b91[3]);var pauses=[{id:1,name:_0x2b91[5],description:_0x2b91[6]},{id:2,name:_0x2b91[7],description:_0x2b91[8]}];exports[_0x2b91[9]]= function(){return db[_0x2b91[17]][_0x2b91[16]](pauses,{ignoreDuplicates:true,individualHooks:true})[_0x2b91[15]](function(){logger[_0x2b91[14]](_0x2b91[13])})[_0x2b91[12]](function(_0x64ffx4){logger[_0x2b91[11]](_0x2b91[10])})}
\ No newline at end of file
index acb3618..372ce2b 100644 (file)
@@ -1 +1 @@
-var _0x4f22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x74\x61\x69\x6C\x73","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x71\x75\x65\x75\x65\x73\x20\x72\x65\x70\x6F\x72\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x52\x65\x73\x75\x6C\x74","\x53\x69\x6D\x70\x6C\x65\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73\x20\x6F\x76\x65\x72\x76\x69\x65\x77","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x20\x61\x62\x6F\x75\x74\x20\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x61\x6E\x73\x77\x65\x72\x65\x64","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x41\x67\x65\x6E\x74\x20\x63\x61\x6C\x6C\x73\x20\x74\x69\x6D\x65\x72\x20\x48\x61\x6E\x64\x6C\x65\x20\x74\x69\x6D\x65\x3D\x20\x74\x61\x6C\x6B\x20\x74\x69\x6D\x65\x20\x2B\x20\x41\x43\x57\x20\x74\x69\x6D\x65","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x20\x74\x69\x6D\x65\x72\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65\x3D\x20\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65\x20\x2B\x20\x41\x56\x47\x20\x54\x49\x6D\x65","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x73\x20\x61\x6E\x73\x77\x65\x72\x20\x74\x69\x6D\x65\x20\x70\x65\x72\x66\x6F\x72\x6D\x61\x6E\x63\x65","\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x43\x61\x75\x73\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x73\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x61\x75\x73\x65\x73","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x48\x6F\x75\x72","\x41\x6E\x73\x77\x65\x72\x20\x74\x69\x6D\x65\x20\x20\x62\x79\x20\x68\x6F\x75\x72","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x20\x61\x62\x6F\x75\x74\x20\x74\x68\x65\x20\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x63\x61\x6C\x6C\x73","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x63\x61\x6C\x6C\x73","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x74\x69\x6D\x65\x20\x70\x65\x72\x66\x6F\x72\x6D\x61\x6E\x63\x65\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x74\x65","\x51\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x64\x61\x74\x65","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x48\x6F\x75\x72","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x68\x6F\x75\x72","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x64\x61\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x6D\x6F\x6E\x74\x68","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x57\x65\x65\x6B\x64\x61\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x64\x61\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x77\x65\x65\x6B","\x53\x75\x6D\x6D\x61\x72\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x43\x61\x6C\x6C\x73\x20\x64\x65\x74\x61\x69\x6C\x20\x28\x63\x64\x72\x29","\x5F\x76\x6F\x69\x63\x65\x5F\x63\x61\x6C\x6C\x73","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x4F\x75\x74\x62\x6F\x75\x6E\x64","\x4D\x61\x6E\x75\x61\x6C\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x64\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x6F\x75\x74\x62\x6F\x75\x6E\x64\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x54\x79\x70\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x72\x65\x70\x6F\x72\x74\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x73\x20\x74\x79\x70\x65","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x61\x67\x65\x6E\x74","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x74\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x64\x61\x74\x65","\x4C\x6F\x67\x69\x6E\x20\x54\x69\x6D\x65","\x41\x67\x65\x6E\x74\x27\x73\x20\x6C\x6F\x67\x69\x6E\x20\x74\x69\x6D\x65","\x5F\x61\x67\x65\x6E\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x4C\x4F\x47\x49\x4E\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x63\x74\x69\x76\x69\x74\x69\x65\x73\x20\x53\x75\x6D\x6D\x61\x72\x79","\x41\x67\x65\x6E\x74\x27\x73\x20\x61\x63\x74\x69\x76\x69\x74\x69\x65\x73\x20\x72\x65\x70\x6F\x72\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x61\x67\x65\x6E\x74\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x50\x61\x75\x73\x65\x20\x44\x65\x74\x61\x69\x6C\x73","\x41\x67\x65\x6E\x74\x73\x20\x73\x74\x61\x74\x75\x73\x20\x64\x65\x74\x61\x69\x6C\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x50\x41\x55\x53\x45\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x67\x65\x6E\x74\x27\x73\x20\x73\x74\x61\x74\x75\x73\x20\x64\x65\x74\x61\x69\x6C","\x50\x61\x75\x73\x65\x20\x54\x69\x6D\x65","\x41\x67\x65\x6E\x74\x27\x73\x20\x70\x61\x75\x73\x65\x20\x74\x69\x6D\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x50\x41\x55\x53\x45\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x79\x53\x71\x75\x61\x72\x65\x20\x53\x75\x6D\x6D\x61\x72\x79","\x5F\x76\x6F\x69\x63\x65\x5F\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x42\x6C\x6F\x63\x6B\x73","\x43\x61\x6C\x6C\x79\x53\x71\x75\x61\x72\x65\x20\x42\x6C\x6F\x63\x6B\x73\x20\x44\x65\x74\x61\x69\x6C","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x52\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x52\x65\x63\x6F\x72\x64\x73\x20\x72\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x61\x67\x65\x6E\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3E\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x72\x61\x74\x69\x6E\x67\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x52\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x52\x65\x63\x6F\x72\x64\x73\x20\x72\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3E\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x72\x61\x74\x69\x6E\x67\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","","\x5F\x62\x75\x6C\x6C\x5F\x71\x75\x65\x75\x65\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x53\x75\x6D\x6D\x61\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x43\x61\x6C\x6C\x73","\x4C\x69\x73\x74\x20\x50\x65\x6E\x65\x74\x72\x61\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x41\x67\x65\x6E\x74\x20\x43\x61\x6C\x6C\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x73\x74\x61\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x34\x22\x7D\x5D\x7D\x7D","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x73\x74\x61\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x34\x22\x7D\x5D\x7D\x7D","\x41\x67\x65\x6E\x74\x20\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x5F\x62\x75\x6C\x6C\x5F\x69\x76\x72\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x69\x76\x72\x27\x22\x7D\x5D\x7D\x7D"];_0x4f22[0];module[_0x4f22[1]]= function(_0xf6bex1){return [{id:1,name:_0x4f22[2],description:_0x4f22[3],parent:_0xf6bex1+ _0x4f22[4],table:_0x4f22[5],conditions:_0x4f22[6]},{id:2,name:_0x4f22[7],description:_0x4f22[8],parent:_0xf6bex1+ _0x4f22[4],table:_0x4f22[5],conditions:_0x4f22[6]},{id:3,name:_0x4f22[2],description:_0x4f22[9],parent:_0xf6bex1+ _0x4f22[10],table:_0x4f22[11],conditions:_0x4f22[12]},{id:4,name:_0x4f22[13],description:_0x4f22[14],parent:_0xf6bex1+ _0x4f22[10],table:_0x4f22[11],conditions:_0x4f22[12]},{id:5,name:_0x4f22[15],description:_0x4f22[16],parent:_0xf6bex1+ _0x4f22[10],table:_0x4f22[11],conditions:_0x4f22[12]},{id:6,name:_0x4f22[17],description:_0x4f22[18],parent:_0xf6bex1+ _0x4f22[10],table:_0x4f22[11],conditions:_0x4f22[12]},{id:7,name:_0x4f22[19],description:_0x4f22[20],parent:_0xf6bex1+ _0x4f22[10],table:_0x4f22[11],conditions:_0x4f22[12]},{id:8,name:_0x4f22[21],description:_0x4f22[22],parent:_0xf6bex1+ _0x4f22[10],table:_0x4f22[11],conditions:_0x4f22[12]},{id:9,name:_0x4f22[2],description:_0x4f22[23],parent:_0xf6bex1+ _0x4f22[24],table:_0x4f22[5],conditions:_0x4f22[25]},{id:10,name:_0x4f22[26],description:_0x4f22[27],parent:_0xf6bex1+ _0x4f22[24],table:_0x4f22[5],conditions:_0x4f22[25]},{id:11,name:_0x4f22[28],description:_0x4f22[29],parent:_0xf6bex1+ _0x4f22[24],table:_0x4f22[5],conditions:_0x4f22[30]},{id:12,name:_0x4f22[31],description:_0x4f22[32],parent:_0xf6bex1+ _0x4f22[24],table:_0x4f22[5],conditions:_0x4f22[33]},{id:13,name:_0x4f22[34],description:_0x4f22[35],parent:_0xf6bex1+ _0x4f22[36],table:_0x4f22[5],conditions:_0x4f22[6]},{id:14,name:_0x4f22[37],description:_0x4f22[38],parent:_0xf6bex1+ _0x4f22[36],table:_0x4f22[5],conditions:_0x4f22[6]},{id:15,name:_0x4f22[39],description:_0x4f22[40],parent:_0xf6bex1+ _0x4f22[36],table:_0x4f22[5],conditions:_0x4f22[6]},{id:16,name:_0x4f22[41],description:_0x4f22[42],parent:_0xf6bex1+ _0x4f22[36],table:_0x4f22[5],conditions:_0x4f22[6]},{id:17,name:_0x4f22[43],description:_0x4f22[44],parent:_0xf6bex1+ _0x4f22[4],table:_0x4f22[5],conditions:_0x4f22[6]},{id:18,name:_0x4f22[2],description:_0x4f22[45],parent:_0xf6bex1+ _0x4f22[46],table:_0x4f22[47],conditions:_0x4f22[6]},{id:19,name:_0x4f22[48],description:_0x4f22[49],parent:_0xf6bex1+ _0x4f22[46],table:_0x4f22[47],conditions:_0x4f22[50]},{id:20,name:_0x4f22[51],description:_0x4f22[52],parent:_0xf6bex1+ _0x4f22[46],table:_0x4f22[47],conditions:_0x4f22[6]},{id:21,name:_0x4f22[53],description:_0x4f22[54],parent:_0xf6bex1+ _0x4f22[46],table:_0x4f22[47],conditions:_0x4f22[50]},{id:22,name:_0x4f22[55],description:_0x4f22[56],parent:_0xf6bex1+ _0x4f22[46],table:_0x4f22[47],conditions:_0x4f22[50]},{id:23,name:_0x4f22[57],description:_0x4f22[58],parent:_0xf6bex1+ _0x4f22[46],table:_0x4f22[47],conditions:_0x4f22[50]},{id:24,name:_0x4f22[59],description:_0x4f22[60],parent:_0xf6bex1+ _0x4f22[61],table:_0x4f22[62],conditions:_0x4f22[63]},{id:25,name:_0x4f22[64],description:_0x4f22[65],parent:_0xf6bex1+ _0x4f22[66],table:_0x4f22[62],conditions:_0x4f22[67]},{id:26,name:_0x4f22[68],description:_0x4f22[69],parent:_0xf6bex1+ _0x4f22[66],table:_0x4f22[62],conditions:_0x4f22[70]},{id:27,name:_0x4f22[2],description:_0x4f22[71],parent:_0xf6bex1+ _0x4f22[66],table:_0x4f22[62],conditions:_0x4f22[67]},{id:28,name:_0x4f22[72],description:_0x4f22[73],parent:_0xf6bex1+ _0x4f22[66],table:_0x4f22[62],conditions:_0x4f22[74]},{id:29,name:_0x4f22[43],description:_0x4f22[75],parent:_0xf6bex1+ _0x4f22[76],table:_0x4f22[77],conditions:_0x4f22[6]},{id:30,name:_0x4f22[78],description:_0x4f22[79],parent:_0xf6bex1+ _0x4f22[76],table:_0x4f22[80],conditions:_0x4f22[6]},{id:31,name:_0x4f22[81],description:_0x4f22[82],parent:_0xf6bex1+ _0x4f22[83],table:_0x4f22[84],conditions:_0x4f22[85]},{id:32,name:_0x4f22[86],description:_0x4f22[87],parent:_0xf6bex1+ _0x4f22[83],table:_0x4f22[84],conditions:_0x4f22[88]},{id:33,name:_0x4f22[2],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[91],conditions:_0x4f22[92]},{id:34,name:_0x4f22[93],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[94],conditions:_0x4f22[92]},{id:35,name:_0x4f22[95],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[91],conditions:_0x4f22[92]},{id:36,name:_0x4f22[96],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[91],conditions:_0x4f22[92]},{id:37,name:_0x4f22[97],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[91],conditions:_0x4f22[98]},{id:38,name:_0x4f22[99],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[91],conditions:_0x4f22[100]},{id:39,name:_0x4f22[101],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[90],table:_0x4f22[91],conditions:_0x4f22[100]},{id:40,name:_0x4f22[2],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[102],table:_0x4f22[91],conditions:_0x4f22[103]},{id:41,name:_0x4f22[93],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[102],table:_0x4f22[94],conditions:_0x4f22[103]},{id:42,name:_0x4f22[95],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[102],table:_0x4f22[91],conditions:_0x4f22[103]},{id:43,name:_0x4f22[96],description:_0x4f22[89],parent:_0xf6bex1+ _0x4f22[102],table:_0x4f22[91],conditions:_0x4f22[103]}]}
\ No newline at end of file
+var _0xf644=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x74\x61\x69\x6C\x73","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x71\x75\x65\x75\x65\x73\x20\x72\x65\x70\x6F\x72\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x52\x65\x73\x75\x6C\x74","\x53\x69\x6D\x70\x6C\x65\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73\x20\x6F\x76\x65\x72\x76\x69\x65\x77","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x20\x61\x62\x6F\x75\x74\x20\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x61\x6E\x73\x77\x65\x72\x65\x64","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x41\x67\x65\x6E\x74\x20\x63\x61\x6C\x6C\x73\x20\x74\x69\x6D\x65\x72\x20\x48\x61\x6E\x64\x6C\x65\x20\x74\x69\x6D\x65\x3D\x20\x74\x61\x6C\x6B\x20\x74\x69\x6D\x65\x20\x2B\x20\x41\x43\x57\x20\x74\x69\x6D\x65","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x20\x74\x69\x6D\x65\x72\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65\x3D\x20\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65\x20\x2B\x20\x41\x56\x47\x20\x54\x49\x6D\x65","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x73\x20\x61\x6E\x73\x77\x65\x72\x20\x74\x69\x6D\x65\x20\x70\x65\x72\x66\x6F\x72\x6D\x61\x6E\x63\x65","\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x43\x61\x75\x73\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x73\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x61\x75\x73\x65\x73","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x48\x6F\x75\x72","\x41\x6E\x73\x77\x65\x72\x20\x74\x69\x6D\x65\x20\x20\x62\x79\x20\x68\x6F\x75\x72","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x20\x61\x62\x6F\x75\x74\x20\x74\x68\x65\x20\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x63\x61\x6C\x6C\x73","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x63\x61\x6C\x6C\x73","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x74\x69\x6D\x65\x20\x70\x65\x72\x66\x6F\x72\x6D\x61\x6E\x63\x65\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x74\x65","\x51\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x64\x61\x74\x65","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x48\x6F\x75\x72","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x68\x6F\x75\x72","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x64\x61\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x6D\x6F\x6E\x74\x68","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x57\x65\x65\x6B\x64\x61\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x64\x61\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x77\x65\x65\x6B","\x53\x75\x6D\x6D\x61\x72\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x43\x61\x6C\x6C\x73\x20\x64\x65\x74\x61\x69\x6C\x20\x28\x63\x64\x72\x29","\x5F\x76\x6F\x69\x63\x65\x5F\x63\x61\x6C\x6C\x73","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x4F\x75\x74\x62\x6F\x75\x6E\x64","\x4D\x61\x6E\x75\x61\x6C\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x64\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x6F\x75\x74\x62\x6F\x75\x6E\x64\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x54\x79\x70\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x72\x65\x70\x6F\x72\x74\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x73\x20\x74\x79\x70\x65","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x61\x67\x65\x6E\x74","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x74\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x64\x61\x74\x65","\x4C\x6F\x67\x69\x6E\x20\x54\x69\x6D\x65","\x41\x67\x65\x6E\x74\x27\x73\x20\x6C\x6F\x67\x69\x6E\x20\x74\x69\x6D\x65","\x5F\x61\x67\x65\x6E\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x4C\x4F\x47\x49\x4E\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x63\x74\x69\x76\x69\x74\x69\x65\x73\x20\x53\x75\x6D\x6D\x61\x72\x79","\x41\x67\x65\x6E\x74\x27\x73\x20\x61\x63\x74\x69\x76\x69\x74\x69\x65\x73\x20\x72\x65\x70\x6F\x72\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x61\x67\x65\x6E\x74\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x50\x61\x75\x73\x65\x20\x44\x65\x74\x61\x69\x6C\x73","\x41\x67\x65\x6E\x74\x73\x20\x73\x74\x61\x74\x75\x73\x20\x64\x65\x74\x61\x69\x6C\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x50\x41\x55\x53\x45\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x67\x65\x6E\x74\x27\x73\x20\x73\x74\x61\x74\x75\x73\x20\x64\x65\x74\x61\x69\x6C","\x50\x61\x75\x73\x65\x20\x54\x69\x6D\x65","\x41\x67\x65\x6E\x74\x27\x73\x20\x70\x61\x75\x73\x65\x20\x74\x69\x6D\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x50\x41\x55\x53\x45\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x79\x53\x71\x75\x61\x72\x65\x20\x53\x75\x6D\x6D\x61\x72\x79","\x5F\x76\x6F\x69\x63\x65\x5F\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x42\x6C\x6F\x63\x6B\x73","\x43\x61\x6C\x6C\x79\x53\x71\x75\x61\x72\x65\x20\x42\x6C\x6F\x63\x6B\x73\x20\x44\x65\x74\x61\x69\x6C","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x52\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x52\x65\x63\x6F\x72\x64\x73\x20\x72\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x61\x67\x65\x6E\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3E\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x72\x61\x74\x69\x6E\x67\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x52\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x52\x65\x63\x6F\x72\x64\x73\x20\x72\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3E\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x72\x61\x74\x69\x6E\x67\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","","\x5F\x62\x75\x6C\x6C\x5F\x71\x75\x65\x75\x65\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x53\x75\x6D\x6D\x61\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x43\x61\x6C\x6C\x73","\x4C\x69\x73\x74\x20\x50\x65\x6E\x65\x74\x72\x61\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x41\x67\x65\x6E\x74\x20\x43\x61\x6C\x6C\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x73\x74\x61\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x34\x22\x7D\x5D\x7D\x7D","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x73\x74\x61\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x34\x22\x7D\x5D\x7D\x7D","\x41\x67\x65\x6E\x74\x20\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x5F\x62\x75\x6C\x6C\x5F\x69\x76\x72\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x69\x76\x72\x27\x22\x7D\x5D\x7D\x7D"];_0xf644[0];module[_0xf644[1]]= function(_0x9a92x1){return [{id:1,name:_0xf644[2],description:_0xf644[3],parent:_0x9a92x1+ _0xf644[4],table:_0xf644[5],conditions:_0xf644[6]},{id:2,name:_0xf644[7],description:_0xf644[8],parent:_0x9a92x1+ _0xf644[4],table:_0xf644[5],conditions:_0xf644[6]},{id:3,name:_0xf644[2],description:_0xf644[9],parent:_0x9a92x1+ _0xf644[10],table:_0xf644[11],conditions:_0xf644[12]},{id:4,name:_0xf644[13],description:_0xf644[14],parent:_0x9a92x1+ _0xf644[10],table:_0xf644[11],conditions:_0xf644[12]},{id:5,name:_0xf644[15],description:_0xf644[16],parent:_0x9a92x1+ _0xf644[10],table:_0xf644[11],conditions:_0xf644[12]},{id:6,name:_0xf644[17],description:_0xf644[18],parent:_0x9a92x1+ _0xf644[10],table:_0xf644[11],conditions:_0xf644[12]},{id:7,name:_0xf644[19],description:_0xf644[20],parent:_0x9a92x1+ _0xf644[10],table:_0xf644[11],conditions:_0xf644[12]},{id:8,name:_0xf644[21],description:_0xf644[22],parent:_0x9a92x1+ _0xf644[10],table:_0xf644[11],conditions:_0xf644[12]},{id:9,name:_0xf644[2],description:_0xf644[23],parent:_0x9a92x1+ _0xf644[24],table:_0xf644[5],conditions:_0xf644[25]},{id:10,name:_0xf644[26],description:_0xf644[27],parent:_0x9a92x1+ _0xf644[24],table:_0xf644[5],conditions:_0xf644[25]},{id:11,name:_0xf644[28],description:_0xf644[29],parent:_0x9a92x1+ _0xf644[24],table:_0xf644[5],conditions:_0xf644[30]},{id:12,name:_0xf644[31],description:_0xf644[32],parent:_0x9a92x1+ _0xf644[24],table:_0xf644[5],conditions:_0xf644[33]},{id:13,name:_0xf644[34],description:_0xf644[35],parent:_0x9a92x1+ _0xf644[36],table:_0xf644[5],conditions:_0xf644[6]},{id:14,name:_0xf644[37],description:_0xf644[38],parent:_0x9a92x1+ _0xf644[36],table:_0xf644[5],conditions:_0xf644[6]},{id:15,name:_0xf644[39],description:_0xf644[40],parent:_0x9a92x1+ _0xf644[36],table:_0xf644[5],conditions:_0xf644[6]},{id:16,name:_0xf644[41],description:_0xf644[42],parent:_0x9a92x1+ _0xf644[36],table:_0xf644[5],conditions:_0xf644[6]},{id:17,name:_0xf644[43],description:_0xf644[44],parent:_0x9a92x1+ _0xf644[4],table:_0xf644[5],conditions:_0xf644[6]},{id:18,name:_0xf644[2],description:_0xf644[45],parent:_0x9a92x1+ _0xf644[46],table:_0xf644[47],conditions:_0xf644[6]},{id:19,name:_0xf644[48],description:_0xf644[49],parent:_0x9a92x1+ _0xf644[46],table:_0xf644[47],conditions:_0xf644[50]},{id:20,name:_0xf644[51],description:_0xf644[52],parent:_0x9a92x1+ _0xf644[46],table:_0xf644[47],conditions:_0xf644[6]},{id:21,name:_0xf644[53],description:_0xf644[54],parent:_0x9a92x1+ _0xf644[46],table:_0xf644[47],conditions:_0xf644[50]},{id:22,name:_0xf644[55],description:_0xf644[56],parent:_0x9a92x1+ _0xf644[46],table:_0xf644[47],conditions:_0xf644[50]},{id:23,name:_0xf644[57],description:_0xf644[58],parent:_0x9a92x1+ _0xf644[46],table:_0xf644[47],conditions:_0xf644[50]},{id:24,name:_0xf644[59],description:_0xf644[60],parent:_0x9a92x1+ _0xf644[61],table:_0xf644[62],conditions:_0xf644[63]},{id:25,name:_0xf644[64],description:_0xf644[65],parent:_0x9a92x1+ _0xf644[66],table:_0xf644[62],conditions:_0xf644[67]},{id:26,name:_0xf644[68],description:_0xf644[69],parent:_0x9a92x1+ _0xf644[66],table:_0xf644[62],conditions:_0xf644[70]},{id:27,name:_0xf644[2],description:_0xf644[71],parent:_0x9a92x1+ _0xf644[66],table:_0xf644[62],conditions:_0xf644[67]},{id:28,name:_0xf644[72],description:_0xf644[73],parent:_0x9a92x1+ _0xf644[66],table:_0xf644[62],conditions:_0xf644[74]},{id:29,name:_0xf644[43],description:_0xf644[75],parent:_0x9a92x1+ _0xf644[76],table:_0xf644[77],conditions:_0xf644[6]},{id:30,name:_0xf644[78],description:_0xf644[79],parent:_0x9a92x1+ _0xf644[76],table:_0xf644[80],conditions:_0xf644[6]},{id:31,name:_0xf644[81],description:_0xf644[82],parent:_0x9a92x1+ _0xf644[83],table:_0xf644[84],conditions:_0xf644[85]},{id:32,name:_0xf644[86],description:_0xf644[87],parent:_0x9a92x1+ _0xf644[83],table:_0xf644[84],conditions:_0xf644[88]},{id:33,name:_0xf644[2],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[91],conditions:_0xf644[92]},{id:34,name:_0xf644[93],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[94],conditions:_0xf644[92]},{id:35,name:_0xf644[95],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[91],conditions:_0xf644[92]},{id:36,name:_0xf644[96],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[91],conditions:_0xf644[92]},{id:37,name:_0xf644[97],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[91],conditions:_0xf644[98]},{id:38,name:_0xf644[99],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[91],conditions:_0xf644[100]},{id:39,name:_0xf644[101],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[90],table:_0xf644[91],conditions:_0xf644[100]},{id:40,name:_0xf644[2],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[102],table:_0xf644[91],conditions:_0xf644[103]},{id:41,name:_0xf644[93],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[102],table:_0xf644[94],conditions:_0xf644[103]},{id:42,name:_0xf644[95],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[102],table:_0xf644[91],conditions:_0xf644[103]},{id:43,name:_0xf644[96],description:_0xf644[89],parent:_0x9a92x1+ _0xf644[102],table:_0xf644[91],conditions:_0xf644[103]}]}
\ No newline at end of file
index 30c9e2c..e885b09 100644 (file)
@@ -1 +1 @@
-var _0x1aec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x55\x6E\x69\x71\x75\x65\x49\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x51\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x51\x75\x65\x75\x65\x4A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x51\x75\x65\x75\x65\x4C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x51\x75\x65\x75\x65\x41\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x51\x75\x65\x75\x65\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x51\x75\x65\x75\x65\x45\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x51\x75\x65\x75\x65\x45\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x51\x75\x65\x75\x65\x45\x78\x69\x74\x52\x65\x61\x73\x6F\x6E","\x65\x78\x74\x65\x6E","\x44\x49\x44","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74\x29","\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x49\x46\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x2C\x68\x6F\x6C\x64\x74\x69\x6D\x65\x2C\x6E\x75\x6C\x6C\x29","\x41\x6E\x73\x77\x65\x72\x54\x69\x6D\x65","\x43\x61\x6C\x6C\x65\x72\x49\x44","\x53\x74\x61\x72\x74\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x20\x54\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x20\x45\x4C\x53\x45\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65\x41\x74\x20\x45\x4E\x44","\x45\x6E\x64\x54\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x20\x54\x48\x45\x4E\x20\x27\x59\x45\x53\x27\x20\x45\x4C\x53\x45\x20\x27\x4E\x4F\x27\x20\x45\x4E\x44","\x41\x6E\x73\x77\x65\x72\x65\x64","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64\x41\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x61\x67\x65\x6E\x74\x61\x63\x77","\x41\x67\x65\x6E\x74\x41\x43\x57","\x61\x63\x77\x74\x69\x6D\x65","\x41\x67\x65\x6E\x74\x41\x43\x57\x54\x69\x6D\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x72\x65\x61\x73\x6F\x6E","\x48\x61\x6E\x67\x75\x70\x52\x65\x61\x73\x6F\x6E","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x4C\x61\x73\x74\x45\x76\x65\x6E\x74","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x53\x55\x4D","\x54\x6F\x74\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x54\x6F\x74\x41\x43\x57\x54\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65\x20\x2B\x20\x61\x63\x77\x74\x69\x6D\x65","\x54\x6F\x74\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x61\x63\x77\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x41\x43\x57\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x20\x2B\x20\x61\x63\x77\x74\x69\x6D\x65\x29\x2F\x43\x4F\x55\x4E\x54\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x29","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x54\x6F\x74\x20\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x54\x6F\x74\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x54\x6F\x74\x20\x41\x43\x57\x54\x69\x6D\x65","\x54\x6F\x74\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65","\x41\x76\x67\x20\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x41\x76\x67\x20\x41\x43\x57\x54\x69\x6D\x65","\x41\x76\x67\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65","\x54\x6F\x74\x20\x41\x6E\x73\x77\x65\x72\x65\x64","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x3C\x31\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x3C\x31\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x31\x30\x2D\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x31\x30\x2D\x32\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x32\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x32\x30\x2D\x33\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x32\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x32\x30\x2D\x33\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x3E\x33\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x3E\x33\x30\x73","\x52\x65\x61\x73\x6F\x6E","\x43\x61\x6C\x6C\x73","\x43\x4F\x55\x4E\x54","\x48\x6F\x75\x72","\x48\x4F\x55\x52","\x4A\x6F\x69\x6E\x41\x74","\x4C\x65\x61\x76\x65\x41\x74","\x41\x62\x61\x6E\x64\x6F\x6E","\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x41\x74","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x52\x65\x61\x73\x6F\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x51\x75\x65\x75\x65\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x54\x69\x6D\x65","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x45\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x54\x6F\x74\x20\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x29\x29","\x41\x76\x67\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x54\x6F\x74\x20\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x45\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x29\x29","\x41\x76\x67\x20\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x54\x49\x6D\x65","\x54\x6F\x74\x20\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x3C\x31\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x3C\x31\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x36\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x31\x30\x2D\x36\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x36\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x20\x31\x30\x2D\x36\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x36\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x36\x30\x2D\x31\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x36\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x20\x36\x30\x2D\x31\x32\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x3E\x31\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x3E\x31\x32\x30\x73","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74","\x44\x61\x74\x65","\x44\x41\x54\x45","\x4F\x66\x66\x65\x72\x65\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74\x29\x29\x29","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x2F\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x29\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65","\x44\x41\x59\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74\x29","\x44\x61\x79","\x44\x41\x59\x4E\x41\x4D\x45\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74\x29","\x44\x61\x79\x4F\x66\x57\x65\x65\x6B","\x41\x53\x43","\x55\x6E\x69\x71\x75\x65\x49\x44","\x74\x79\x70\x65","\x54\x79\x70\x65","\x74\x61\x67","\x54\x61\x67","\x73\x6F\x75\x72\x63\x65","\x53\x6F\x75\x72\x63\x65","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x44\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x44\x65\x73\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x4C\x61\x73\x74\x41\x70\x70","\x6C\x61\x73\x74\x64\x61\x74\x61","\x4C\x61\x73\x74\x44\x61\x74\x61","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x44\x75\x72\x61\x74\x69\x6F\x6E","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x41\x67\x65\x6E\x74\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x43\x61\x6C\x6C\x65\x72\x49\x64","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x42\x69\x6C\x6C\x73\x65\x63","\x54\x6F\x74\x20\x44\x75\x72\x61\x74\x69\x6F\x6E","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x64\x75\x72\x61\x74\x69\x6F\x6E\x29\x29","\x41\x76\x67\x20\x44\x75\x72\x61\x74\x69\x6F\x6E","\x53\x55\x42\x53\x54\x52\x49\x4E\x47\x5F\x49\x4E\x44\x45\x58\x28\x63\x68\x61\x6E\x6E\x65\x6C\x2C\x20\x22\x2D\x22\x2C\x20\x31\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x4C\x4F\x47\x49\x4E\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x4C\x6F\x67\x69\x6E\x20\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x54\x41\x4C\x4B\x49\x4E\x47\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x50\x41\x55\x53\x45\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x50\x61\x75\x73\x65\x20\x54\x69\x6D\x65","\x65\x6E\x74\x65\x72\x41\x74","\x45\x6E\x74\x65\x72\x41\x74","\x65\x78\x69\x74\x41\x74","\x45\x78\x69\x74\x41\x74","\x64\x61\x74\x61\x31","\x50\x61\x75\x73\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x45\x76\x65\x6E\x74","\x50\x61\x75\x73\x65\x54\x79\x70\x65","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x61\x6D\x65","\x50\x72\x6F\x6A\x65\x63\x74\x20\x4E\x61\x6D\x65","\x64\x6E\x69\x64","\x6A\x6F\x69\x6E\x41\x74","\x53\x74\x61\x72\x74\x20\x54\x69\x6D\x65","\x6C\x65\x61\x76\x65\x41\x74","\x45\x6E\x64\x20\x54\x69\x6D\x65","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x6C\x65\x61\x76\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x6A\x6F\x69\x6E\x41\x74\x29","\x55\x6E\x69\x71\x75\x65\x20\x49\x64","\x43\x61\x6C\x6C\x65\x72\x20\x49\x64","\x6E\x6F\x64\x65","\x42\x6C\x6F\x63\x6B","\x64\x61\x74\x61","\x44\x61\x74\x61","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x52\x65\x63\x6F\x72\x64\x65\x64\x20\x43\x61\x6C\x6C\x73","\x72\x61\x74\x69\x6E\x67","\x54\x6F\x74\x61\x6C\x20\x52\x61\x74\x69\x6E\x67","\x41\x76\x67\x20\x52\x61\x74\x69\x6E\x67","\x41\x56\x47","\x52\x61\x74\x65\x64\x20\x43\x61\x6C\x6C\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x4E\x61\x6D\x65","\x4C\x61\x73\x74\x43\x61\x6C\x6C\x41\x74","\x44\x45\x53\x43","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x53\x74\x61\x74\x65","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x47\x6C\x6F\x62\x61\x6C\x20\x43\x6F\x75\x6E\x74","\x64\x72\x6F\x70\x72\x65\x61\x73\x6F\x6E","\x44\x72\x6F\x70\x20\x52\x65\x61\x73\x6F\x6E","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x69\x64","\x52\x4F\x55\x4E\x44\x28\x63\x6F\x75\x6E\x74\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79\x20\x57\x48\x45\x52\x45\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x71\x75\x65\x75\x65\x27\x29\x2C\x32\x29","\x43\x61\x6C\x6C\x73\x20\x28\x25\x29","\x54\x6F\x74\x61\x6C\x20\x43\x61\x6C\x6C\x73","\x4C\x69\x73\x74\x49\x64","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x53\x55\x4D\x28\x49\x46\x28\x73\x74\x61\x74\x65\x3D\x34\x2C\x31\x2C\x30\x29\x29","\x4D\x61\x6E\x61\x67\x65\x64","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x49\x46\x28\x73\x74\x61\x74\x65\x3D\x34\x2C\x31\x2C\x30\x29\x29\x2F\x43\x4F\x55\x4E\x54\x28\x2A\x29\x2A\x31\x30\x30\x2C\x31\x29","\x50\x65\x6E\x65\x74\x72\x61\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x41\x56\x47\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x29\x29","\x41\x56\x47\x20\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x54\x6F\x74\x61\x6C","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x20\x57\x48\x45\x52\x45\x20\x73\x74\x61\x74\x65\x3D\x34\x20\x61\x6E\x64\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x71\x75\x65\x75\x65\x27\x29\x2C\x32\x29","\x54\x6F\x74\x61\x6C\x20\x28\x25\x29","\x52\x4F\x55\x4E\x44\x28\x63\x6F\x75\x6E\x74\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79\x20\x57\x48\x45\x52\x45\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x69\x76\x72\x27\x29\x2C\x32\x29","\x52\x65\x70\x6F\x72\x74\x49\x64","\x67\x72\x6F\x75\x70\x42\x79"];_0x1aec[0];var _=require(_0x1aec[1]);module[_0x1aec[2]]= function(){var _0xff9dx2=[{field:_0x1aec[3],alias:_0x1aec[4],ReportId:1},{field:_0x1aec[5],alias:_0x1aec[6],ReportId:1},{field:_0x1aec[7],alias:_0x1aec[8],ReportId:1},{field:_0x1aec[9],alias:_0x1aec[10],ReportId:1},{field:_0x1aec[11],alias:_0x1aec[12],ReportId:1},{field:_0x1aec[13],alias:_0x1aec[14],ReportId:1},{field:_0x1aec[15],alias:_0x1aec[16],ReportId:1},{field:_0x1aec[17],alias:_0x1aec[18],ReportId:1},{field:_0x1aec[19],alias:_0x1aec[20],ReportId:1},{field:_0x1aec[21],alias:_0x1aec[22],ReportId:1},{field:_0x1aec[23],alias:_0x1aec[24],ReportId:1},{field:_0x1aec[25],alias:_0x1aec[26],ReportId:1},{field:_0x1aec[27],alias:_0x1aec[28],ReportId:1},{field:_0x1aec[29],alias:_0x1aec[30],ReportId:1},{field:_0x1aec[31],alias:_0x1aec[32],format:_0x1aec[33],custom:1,ReportId:1},{field:_0x1aec[34],alias:_0x1aec[35],format:_0x1aec[33],custom:1,ReportId:1},{field:_0x1aec[36],alias:_0x1aec[37],format:_0x1aec[33],custom:1,ReportId:1},{field:_0x1aec[5],alias:_0x1aec[38],ReportId:2},{field:_0x1aec[9],alias:_0x1aec[10],ReportId:2},{field:_0x1aec[11],alias:_0x1aec[39],ReportId:2},{field:_0x1aec[40],alias:_0x1aec[41],custom:1,ReportId:2},{field:_0x1aec[42],alias:_0x1aec[43],format:_0x1aec[33],ReportId:2},{field:_0x1aec[44],alias:_0x1aec[45],custom:1,ReportId:2},{field:_0x1aec[3],alias:_0x1aec[4],ReportId:3},{field:_0x1aec[5],alias:_0x1aec[6],ReportId:3},{field:_0x1aec[7],alias:_0x1aec[8],ReportId:3},{field:_0x1aec[9],alias:_0x1aec[10],ReportId:3},{field:_0x1aec[46],alias:_0x1aec[47],ReportId:3},{field:_0x1aec[48],alias:_0x1aec[49],ReportId:3},{field:_0x1aec[50],alias:_0x1aec[51],ReportId:3},{field:_0x1aec[52],alias:_0x1aec[53],ReportId:3},{field:_0x1aec[42],alias:_0x1aec[37],ReportId:3},{field:_0x1aec[54],alias:_0x1aec[32],ReportId:3},{field:_0x1aec[55],alias:_0x1aec[56],ReportId:3},{field:_0x1aec[57],alias:_0x1aec[58],ReportId:3},{field:_0x1aec[59],alias:_0x1aec[60],ReportId:3},{field:_0x1aec[61],alias:_0x1aec[62],ReportId:3},{field:_0x1aec[63],alias:_0x1aec[64],ReportId:3},{field:_0x1aec[29],alias:_0x1aec[30],ReportId:3},{field:_0x1aec[46],alias:_0x1aec[47],groupBy:1,ReportId:4},{field:_0x1aec[59],alias:_0x1aec[65],function:_0x1aec[66],ReportId:4},{field:_0x1aec[54],alias:_0x1aec[67],function:_0x1aec[66],format:_0x1aec[33],ReportId:4},{field:_0x1aec[57],alias:_0x1aec[68],function:_0x1aec[66],format:_0x1aec[33],ReportId:4},{field:_0x1aec[69],alias:_0x1aec[70],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:4},{field:_0x1aec[71],alias:_0x1aec[72],format:_0x1aec[33],custom:1,ReportId:4},{field:_0x1aec[73],alias:_0x1aec[74],format:_0x1aec[33],custom:1,ReportId:4},{field:_0x1aec[75],alias:_0x1aec[76],format:_0x1aec[33],custom:1,ReportId:4},{field:_0x1aec[9],alias:_0x1aec[10],groupBy:1,ReportId:5},{field:_0x1aec[59],alias:_0x1aec[65],function:_0x1aec[66],ReportId:5},{field:_0x1aec[54],alias:_0x1aec[77],function:_0x1aec[66],format:_0x1aec[33],ReportId:5},{field:_0x1aec[42],alias:_0x1aec[78],function:_0x1aec[66],format:_0x1aec[33],ReportId:5},{field:_0x1aec[57],alias:_0x1aec[79],function:_0x1aec[66],format:_0x1aec[33],ReportId:5},{field:_0x1aec[69],alias:_0x1aec[80],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:5},{field:_0x1aec[71],alias:_0x1aec[81],format:_0x1aec[33],custom:1,ReportId:5},{field:_0x1aec[82],alias:_0x1aec[83],format:_0x1aec[33],custom:1,ReportId:5},{field:_0x1aec[73],alias:_0x1aec[84],format:_0x1aec[33],custom:1,ReportId:5},{field:_0x1aec[75],alias:_0x1aec[85],format:_0x1aec[33],custom:1,ReportId:5},{field:_0x1aec[9],alias:_0x1aec[10],groupBy:1,ReportId:6},{field:_0x1aec[59],alias:_0x1aec[86],function:_0x1aec[66],ReportId:6},{field:_0x1aec[87],alias:_0x1aec[88],custom:1,ReportId:6},{field:_0x1aec[89],alias:_0x1aec[90],custom:1,ReportId:6},{field:_0x1aec[91],alias:_0x1aec[92],custom:1,ReportId:6},{field:_0x1aec[93],alias:_0x1aec[94],custom:1,ReportId:6},{field:_0x1aec[95],alias:_0x1aec[96],custom:1,ReportId:6},{field:_0x1aec[97],alias:_0x1aec[98],custom:1,ReportId:6},{field:_0x1aec[99],alias:_0x1aec[100],custom:1,ReportId:6},{field:_0x1aec[101],alias:_0x1aec[102],custom:1,ReportId:6},{field:_0x1aec[61],alias:_0x1aec[103],groupBy:1,ReportId:7},{field:_0x1aec[3],alias:_0x1aec[104],function:_0x1aec[105],ReportId:7},{field:_0x1aec[50],alias:_0x1aec[106],format:_0x1aec[107],groupBy:1,ReportId:8},{field:_0x1aec[59],alias:_0x1aec[86],function:_0x1aec[66],ReportId:8},{field:_0x1aec[87],alias:_0x1aec[88],custom:1,ReportId:8},{field:_0x1aec[91],alias:_0x1aec[92],custom:1,ReportId:8},{field:_0x1aec[95],alias:_0x1aec[96],custom:1,ReportId:8},{field:_0x1aec[99],alias:_0x1aec[100],custom:1,ReportId:8},{field:_0x1aec[3],alias:_0x1aec[4],ReportId:9},{field:_0x1aec[5],alias:_0x1aec[6],ReportId:9},{field:_0x1aec[9],alias:_0x1aec[10],ReportId:9},{field:_0x1aec[11],alias:_0x1aec[108],ReportId:9},{field:_0x1aec[13],alias:_0x1aec[109],ReportId:9},{field:_0x1aec[15],alias:_0x1aec[110],ReportId:9},{field:_0x1aec[17],alias:_0x1aec[111],ReportId:9},{field:_0x1aec[23],alias:_0x1aec[112],ReportId:9},{field:_0x1aec[25],alias:_0x1aec[113],ReportId:9},{field:_0x1aec[27],alias:_0x1aec[114],ReportId:9},{field:_0x1aec[115],alias:_0x1aec[116],ReportId:9},{field:_0x1aec[29],alias:_0x1aec[30],ReportId:9},{field:_0x1aec[34],alias:_0x1aec[117],format:_0x1aec[33],custom:1,ReportId:9},{field:_0x1aec[118],alias:_0x1aec[119],format:_0x1aec[33],custom:1,ReportId:9},{field:_0x1aec[9],alias:_0x1aec[10],groupBy:1,ReportId:10},{field:_0x1aec[15],alias:_0x1aec[120],function:_0x1aec[66],ReportId:10},{field:_0x1aec[23],alias:_0x1aec[112],function:_0x1aec[66],ReportId:10},{field:_0x1aec[34],alias:_0x1aec[121],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:10},{field:_0x1aec[122],alias:_0x1aec[123],format:_0x1aec[33],custom:1,ReportId:10},{field:_0x1aec[118],alias:_0x1aec[124],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:10},{field:_0x1aec[125],alias:_0x1aec[126],format:_0x1aec[33],custom:1,ReportId:10},{field:_0x1aec[27],alias:_0x1aec[103],groupBy:1,ReportId:11},{field:_0x1aec[23],alias:_0x1aec[104],function:_0x1aec[66],ReportId:11},{field:_0x1aec[118],alias:_0x1aec[124],function:_0x1aec[66],custom:1,ReportId:11},{field:_0x1aec[9],alias:_0x1aec[10],groupBy:1,ReportId:12},{field:_0x1aec[15],alias:_0x1aec[127],function:_0x1aec[66],ReportId:12},{field:_0x1aec[128],alias:_0x1aec[129],custom:1,ReportId:12},{field:_0x1aec[130],alias:_0x1aec[131],custom:1,ReportId:12},{field:_0x1aec[132],alias:_0x1aec[133],custom:1,ReportId:12},{field:_0x1aec[134],alias:_0x1aec[135],custom:1,ReportId:12},{field:_0x1aec[136],alias:_0x1aec[137],custom:1,ReportId:12},{field:_0x1aec[138],alias:_0x1aec[139],custom:1,ReportId:12},{field:_0x1aec[140],alias:_0x1aec[141],custom:1,ReportId:12},{field:_0x1aec[142],alias:_0x1aec[143],custom:1,ReportId:12},{field:_0x1aec[144],alias:_0x1aec[145],format:_0x1aec[146],groupBy:1,custom:1,ReportId:13},{field:_0x1aec[3],alias:_0x1aec[147],function:_0x1aec[148],ReportId:13},{field:_0x1aec[19],alias:_0x1aec[65],function:_0x1aec[66],ReportId:13},{field:_0x1aec[15],alias:_0x1aec[120],function:_0x1aec[66],custom:1,ReportId:13},{field:_0x1aec[23],alias:_0x1aec[112],function:_0x1aec[66],custom:1,ReportId:13},{field:_0x1aec[31],alias:_0x1aec[77],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:13},{field:_0x1aec[149],alias:_0x1aec[72],format:_0x1aec[33],custom:1,ReportId:13},{field:_0x1aec[122],alias:_0x1aec[123],format:_0x1aec[33],custom:1,ReportId:13},{field:_0x1aec[144],alias:_0x1aec[106],format:_0x1aec[107],groupBy:1,custom:1,ReportId:14},{field:_0x1aec[3],alias:_0x1aec[147],function:_0x1aec[148],ReportId:14},{field:_0x1aec[19],alias:_0x1aec[45],function:_0x1aec[66],ReportId:14},{field:_0x1aec[150],alias:_0x1aec[151],custom:1,ReportId:14},{field:_0x1aec[15],alias:_0x1aec[120],function:_0x1aec[66],ReportId:14},{field:_0x1aec[23],alias:_0x1aec[112],function:_0x1aec[66],ReportId:14},{field:_0x1aec[31],alias:_0x1aec[77],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:14},{field:_0x1aec[149],alias:_0x1aec[72],format:_0x1aec[33],custom:1,ReportId:14},{field:_0x1aec[122],alias:_0x1aec[123],format:_0x1aec[33],custom:1,ReportId:14},{field:_0x1aec[152],alias:_0x1aec[153],groupBy:1,custom:1,ReportId:15},{field:_0x1aec[3],alias:_0x1aec[147],function:_0x1aec[148],ReportId:15},{field:_0x1aec[19],alias:_0x1aec[45],function:_0x1aec[66],ReportId:15},{field:_0x1aec[150],alias:_0x1aec[151],custom:1,ReportId:15},{field:_0x1aec[15],alias:_0x1aec[120],function:_0x1aec[66],ReportId:15},{field:_0x1aec[23],alias:_0x1aec[112],function:_0x1aec[66],ReportId:15},{field:_0x1aec[31],alias:_0x1aec[77],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:15},{field:_0x1aec[149],alias:_0x1aec[72],format:_0x1aec[33],custom:1,ReportId:15},{field:_0x1aec[122],alias:_0x1aec[123],format:_0x1aec[33],custom:1,ReportId:15},{field:_0x1aec[154],alias:_0x1aec[155],groupBy:1,custom:1,ReportId:16},{field:_0x1aec[3],alias:_0x1aec[147],function:_0x1aec[148],ReportId:16},{field:_0x1aec[19],alias:_0x1aec[45],function:_0x1aec[66],ReportId:16},{field:_0x1aec[150],alias:_0x1aec[151],custom:1,ReportId:16},{field:_0x1aec[15],alias:_0x1aec[120],function:_0x1aec[66],orderBy:_0x1aec[156],ReportId:16},{field:_0x1aec[23],alias:_0x1aec[112],function:_0x1aec[66],ReportId:16},{field:_0x1aec[31],alias:_0x1aec[77],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:16},{field:_0x1aec[149],alias:_0x1aec[72],format:_0x1aec[33],custom:1,ReportId:16},{field:_0x1aec[122],alias:_0x1aec[123],format:_0x1aec[33],custom:1,ReportId:16},{field:_0x1aec[9],alias:_0x1aec[10],groupBy:1,ReportId:17},{field:_0x1aec[3],alias:_0x1aec[147],function:_0x1aec[148],ReportId:17},{field:_0x1aec[19],alias:_0x1aec[45],function:_0x1aec[66],ReportId:17},{field:_0x1aec[150],alias:_0x1aec[151],custom:1,ReportId:17},{field:_0x1aec[15],alias:_0x1aec[120],function:_0x1aec[66],ReportId:17},{field:_0x1aec[23],alias:_0x1aec[112],function:_0x1aec[66],ReportId:17},{field:_0x1aec[31],alias:_0x1aec[77],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:17},{field:_0x1aec[149],alias:_0x1aec[72],format:_0x1aec[33],custom:1,ReportId:17},{field:_0x1aec[122],alias:_0x1aec[123],format:_0x1aec[33],custom:1,ReportId:17},{field:_0x1aec[3],alias:_0x1aec[157],ReportId:18},{field:_0x1aec[158],alias:_0x1aec[159],ReportId:18},{field:_0x1aec[160],alias:_0x1aec[161],ReportId:18},{field:_0x1aec[162],alias:_0x1aec[163],ReportId:18},{field:_0x1aec[164],alias:_0x1aec[165],ReportId:18},{field:_0x1aec[166],alias:_0x1aec[38],ReportId:18},{field:_0x1aec[167],alias:_0x1aec[168],ReportId:18},{field:_0x1aec[169],alias:_0x1aec[170],ReportId:18},{field:_0x1aec[171],alias:_0x1aec[172],ReportId:18},{field:_0x1aec[173],alias:_0x1aec[39],ReportId:18},{field:_0x1aec[174],alias:_0x1aec[37],ReportId:18},{field:_0x1aec[175],alias:_0x1aec[41],ReportId:18},{field:_0x1aec[176],alias:_0x1aec[177],ReportId:18},{field:_0x1aec[178],alias:_0x1aec[179],ReportId:18},{field:_0x1aec[3],alias:_0x1aec[157],ReportId:19},{field:_0x1aec[180],alias:_0x1aec[181],ReportId:19},{field:_0x1aec[162],alias:_0x1aec[163],ReportId:19},{field:_0x1aec[164],alias:_0x1aec[165],ReportId:19},{field:_0x1aec[166],alias:_0x1aec[182],ReportId:19},{field:_0x1aec[173],alias:_0x1aec[39],ReportId:19},{field:_0x1aec[174],alias:_0x1aec[37],ReportId:19},{field:_0x1aec[175],alias:_0x1aec[41],ReportId:19},{field:_0x1aec[176],alias:_0x1aec[177],format:_0x1aec[33],ReportId:19},{field:_0x1aec[183],alias:_0x1aec[184],format:_0x1aec[33],ReportId:19},{field:_0x1aec[178],alias:_0x1aec[179],ReportId:19},{field:_0x1aec[160],alias:_0x1aec[161],ReportId:19},{field:_0x1aec[158],alias:_0x1aec[159],groupBy:1,ReportId:20},{field:_0x1aec[3],alias:_0x1aec[104],function:_0x1aec[105],ReportId:20},{field:_0x1aec[176],alias:_0x1aec[185],function:_0x1aec[66],format:_0x1aec[33],ReportId:20},{field:_0x1aec[186],alias:_0x1aec[187],format:_0x1aec[33],custom:1,ReportId:20},{field:_0x1aec[178],alias:_0x1aec[179],groupBy:1,ReportId:21},{field:_0x1aec[3],alias:_0x1aec[104],function:_0x1aec[105],ReportId:21},{field:_0x1aec[176],alias:_0x1aec[185],function:_0x1aec[66],format:_0x1aec[33],ReportId:21},{field:_0x1aec[186],alias:_0x1aec[187],format:_0x1aec[33],custom:1,ReportId:21},{field:_0x1aec[188],alias:_0x1aec[47],groupBy:1,custom:1,ReportId:22},{field:_0x1aec[3],alias:_0x1aec[104],function:_0x1aec[105],ReportId:22},{field:_0x1aec[176],alias:_0x1aec[185],function:_0x1aec[66],format:_0x1aec[33],ReportId:22},{field:_0x1aec[186],alias:_0x1aec[187],format:_0x1aec[33],custom:1,ReportId:22},{field:_0x1aec[173],alias:_0x1aec[145],format:_0x1aec[146],groupBy:1,ReportId:23},{field:_0x1aec[3],alias:_0x1aec[104],function:_0x1aec[105],ReportId:23},{field:_0x1aec[176],alias:_0x1aec[185],function:_0x1aec[66],format:_0x1aec[33],ReportId:23},{field:_0x1aec[186],alias:_0x1aec[187],format:_0x1aec[33],custom:1,ReportId:23},{field:_0x1aec[46],alias:_0x1aec[47],groupBy:1,orderBy:_0x1aec[156],ReportId:24},{field:_0x1aec[189],alias:_0x1aec[177],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:24},{field:_0x1aec[46],alias:_0x1aec[47],groupBy:1,ReportId:25},{field:_0x1aec[190],alias:_0x1aec[191],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:25},{field:_0x1aec[192],alias:_0x1aec[193],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:25},{field:_0x1aec[194],alias:_0x1aec[195],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:25},{field:_0x1aec[46],alias:_0x1aec[47],ReportId:26},{field:_0x1aec[196],alias:_0x1aec[197],ReportId:26},{field:_0x1aec[198],alias:_0x1aec[199],ReportId:26},{field:_0x1aec[200],alias:_0x1aec[201],ReportId:26},{field:_0x1aec[176],alias:_0x1aec[177],format:_0x1aec[33],ReportId:26},{field:_0x1aec[46],alias:_0x1aec[47],ReportId:27},{field:_0x1aec[202],alias:_0x1aec[203],ReportId:27},{field:_0x1aec[158],alias:_0x1aec[204],ReportId:27},{field:_0x1aec[200],alias:_0x1aec[159],ReportId:27},{field:_0x1aec[196],alias:_0x1aec[197],ReportId:27},{field:_0x1aec[198],alias:_0x1aec[199],ReportId:27},{field:_0x1aec[189],alias:_0x1aec[177],format:_0x1aec[33],custom:1,ReportId:27},{field:_0x1aec[46],alias:_0x1aec[47],groupBy:1,orderBy:_0x1aec[156],ReportId:28},{field:_0x1aec[200],alias:_0x1aec[205],groupBy:1,orderBy:_0x1aec[156],ReportId:28},{field:_0x1aec[189],alias:_0x1aec[177],function:_0x1aec[66],format:_0x1aec[33],custom:1,ReportId:28},{field:_0x1aec[206],alias:_0x1aec[207],ReportId:29},{field:_0x1aec[3],alias:_0x1aec[4],ReportId:29},{field:_0x1aec[166],alias:_0x1aec[182],ReportId:29},{field:_0x1aec[208],alias:_0x1aec[30],ReportId:29},{field:_0x1aec[209],alias:_0x1aec[210],orderBy:_0x1aec[156],ReportId:29},{field:_0x1aec[211],alias:_0x1aec[212],ReportId:29},{field:_0x1aec[213],alias:_0x1aec[177],format:_0x1aec[33],custom:1,ReportId:29},{field:_0x1aec[3],alias:_0x1aec[214],ReportId:30},{field:_0x1aec[206],alias:_0x1aec[207],ReportId:30},{field:_0x1aec[166],alias:_0x1aec[215],ReportId:30},{field:_0x1aec[216],alias:_0x1aec[217],ReportId:30},{field:_0x1aec[218],alias:_0x1aec[219],ReportId:30},{field:_0x1aec[220],alias:_0x1aec[47],groupBy:1,ReportId:31},{field:_0x1aec[3],alias:_0x1aec[221],function:_0x1aec[105],ReportId:31},{field:_0x1aec[222],alias:_0x1aec[223],function:_0x1aec[66],ReportId:31},{field:_0x1aec[222],alias:_0x1aec[224],function:_0x1aec[225],ReportId:31},{field:_0x1aec[9],alias:_0x1aec[10],groupBy:1,ReportId:32},{field:_0x1aec[3],alias:_0x1aec[226],function:_0x1aec[105],ReportId:32},{field:_0x1aec[222],alias:_0x1aec[223],function:_0x1aec[66],ReportId:32},{field:_0x1aec[222],alias:_0x1aec[224],function:_0x1aec[225],ReportId:32},{field:_0x1aec[227],alias:_0x1aec[228],ReportId:33},{field:_0x1aec[5],alias:_0x1aec[6],ReportId:33},{field:_0x1aec[173],alias:_0x1aec[229],orderBy:_0x1aec[230],ReportId:33},{field:_0x1aec[231],alias:_0x1aec[232],ReportId:33},{field:_0x1aec[233],alias:_0x1aec[234],ReportId:33},{field:_0x1aec[235],alias:_0x1aec[236],ReportId:33},{field:_0x1aec[237],alias:_0x1aec[238],ReportId:33},{field:_0x1aec[46],alias:_0x1aec[47],ReportId:33},{field:_0x1aec[54],alias:_0x1aec[193],ReportId:33},{field:_0x1aec[178],alias:_0x1aec[179],ReportId:33},{field:_0x1aec[3],alias:_0x1aec[4],ReportId:33},{field:_0x1aec[231],alias:_0x1aec[232],groupBy:true,orderBy:_0x1aec[156],ReportId:34},{field:_0x1aec[239],alias:_0x1aec[104],function:_0x1aec[105],ReportId:34},{field:_0x1aec[240],alias:_0x1aec[241],custom:true,ReportId:34},{field:_0x1aec[227],alias:_0x1aec[228],orderBy:_0x1aec[156],groupBy:true,ReportId:35},{field:_0x1aec[231],alias:_0x1aec[232],groupBy:true,ReportId:35},{field:_0x1aec[239],alias:_0x1aec[242],function:_0x1aec[105],ReportId:35},{field:_0x1aec[243],groupBy:true,orderBy:_0x1aec[156],ReportId:36},{field:_0x1aec[239],alias:_0x1aec[244],function:_0x1aec[105],ReportId:36},{field:_0x1aec[245],alias:_0x1aec[246],custom:true,ReportId:36},{field:_0x1aec[247],alias:_0x1aec[248],custom:true,ReportId:36},{field:_0x1aec[46],alias:_0x1aec[47],groupBy:true,orderBy:_0x1aec[156],ReportId:37},{field:_0x1aec[239],alias:_0x1aec[104],function:_0x1aec[105],ReportId:37},{field:_0x1aec[249],alias:_0x1aec[250],custom:true,ReportId:37},{field:_0x1aec[178],alias:_0x1aec[179],groupBy:true,ReportId:38},{field:_0x1aec[239],alias:_0x1aec[251],function:_0x1aec[105],ReportId:38},{field:_0x1aec[252],alias:_0x1aec[253],custom:true,ReportId:38},{field:_0x1aec[46],alias:_0x1aec[47],groupBy:true,ReportId:39},{field:_0x1aec[178],alias:_0x1aec[179],groupBy:true,ReportId:39},{field:_0x1aec[239],alias:_0x1aec[251],function:_0x1aec[105],ReportId:39},{field:_0x1aec[252],alias:_0x1aec[253],custom:true,ReportId:39},{field:_0x1aec[227],alias:_0x1aec[228],ReportId:40},{field:_0x1aec[5],alias:_0x1aec[6],ReportId:40},{field:_0x1aec[173],alias:_0x1aec[229],orderBy:_0x1aec[230],ReportId:40},{field:_0x1aec[231],alias:_0x1aec[232],ReportId:40},{field:_0x1aec[233],alias:_0x1aec[234],ReportId:40},{field:_0x1aec[235],alias:_0x1aec[236],ReportId:40},{field:_0x1aec[237],alias:_0x1aec[238],ReportId:40},{field:_0x1aec[54],alias:_0x1aec[193],ReportId:40},{field:_0x1aec[3],alias:_0x1aec[4],ReportId:40},{field:_0x1aec[231],alias:_0x1aec[232],groupBy:true,orderBy:_0x1aec[156],ReportId:41},{field:_0x1aec[239],alias:_0x1aec[104],function:_0x1aec[105],ReportId:41},{field:_0x1aec[254],alias:_0x1aec[241],custom:true,ReportId:41},{field:_0x1aec[227],alias:_0x1aec[228],orderBy:_0x1aec[156],groupBy:true,ReportId:42},{field:_0x1aec[231],alias:_0x1aec[232],groupBy:true,ReportId:42},{field:_0x1aec[239],alias:_0x1aec[242],function:_0x1aec[105],ReportId:42},{field:_0x1aec[243],groupBy:true,orderBy:_0x1aec[156],ReportId:43},{field:_0x1aec[239],alias:_0x1aec[244],function:_0x1aec[105],ReportId:43},{field:_0x1aec[245],alias:_0x1aec[246],custom:true,ReportId:43},{field:_0x1aec[247],alias:_0x1aec[248],custom:true,ReportId:43}];return _[_0x1aec[256]](_0xff9dx2,_0x1aec[255])}
\ No newline at end of file
+var _0xe22b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x55\x6E\x69\x71\x75\x65\x49\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x51\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x51\x75\x65\x75\x65\x4A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x51\x75\x65\x75\x65\x4C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x51\x75\x65\x75\x65\x41\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x51\x75\x65\x75\x65\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x51\x75\x65\x75\x65\x45\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x51\x75\x65\x75\x65\x45\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x51\x75\x65\x75\x65\x45\x78\x69\x74\x52\x65\x61\x73\x6F\x6E","\x65\x78\x74\x65\x6E","\x44\x49\x44","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74\x29","\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x49\x46\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x2C\x68\x6F\x6C\x64\x74\x69\x6D\x65\x2C\x6E\x75\x6C\x6C\x29","\x41\x6E\x73\x77\x65\x72\x54\x69\x6D\x65","\x43\x61\x6C\x6C\x65\x72\x49\x44","\x53\x74\x61\x72\x74\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x20\x54\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x20\x45\x4C\x53\x45\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65\x41\x74\x20\x45\x4E\x44","\x45\x6E\x64\x54\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x20\x54\x48\x45\x4E\x20\x27\x59\x45\x53\x27\x20\x45\x4C\x53\x45\x20\x27\x4E\x4F\x27\x20\x45\x4E\x44","\x41\x6E\x73\x77\x65\x72\x65\x64","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64\x41\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x61\x67\x65\x6E\x74\x61\x63\x77","\x41\x67\x65\x6E\x74\x41\x43\x57","\x61\x63\x77\x74\x69\x6D\x65","\x41\x67\x65\x6E\x74\x41\x43\x57\x54\x69\x6D\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x72\x65\x61\x73\x6F\x6E","\x48\x61\x6E\x67\x75\x70\x52\x65\x61\x73\x6F\x6E","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x4C\x61\x73\x74\x45\x76\x65\x6E\x74","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x53\x55\x4D","\x54\x6F\x74\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x54\x6F\x74\x41\x43\x57\x54\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65\x20\x2B\x20\x61\x63\x77\x74\x69\x6D\x65","\x54\x6F\x74\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x61\x63\x77\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x41\x43\x57\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x20\x2B\x20\x61\x63\x77\x74\x69\x6D\x65\x29\x2F\x43\x4F\x55\x4E\x54\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x29","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x54\x6F\x74\x20\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x54\x6F\x74\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x54\x6F\x74\x20\x41\x43\x57\x54\x69\x6D\x65","\x54\x6F\x74\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65","\x41\x76\x67\x20\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x41\x76\x67\x20\x41\x43\x57\x54\x69\x6D\x65","\x41\x76\x67\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65","\x54\x6F\x74\x20\x41\x6E\x73\x77\x65\x72\x65\x64","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x3C\x31\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x3C\x31\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x31\x30\x2D\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x31\x30\x2D\x32\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x32\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x32\x30\x2D\x33\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x32\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x32\x30\x2D\x33\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x3E\x33\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x3E\x33\x30\x73","\x52\x65\x61\x73\x6F\x6E","\x43\x61\x6C\x6C\x73","\x43\x4F\x55\x4E\x54","\x48\x6F\x75\x72","\x48\x4F\x55\x52","\x4A\x6F\x69\x6E\x41\x74","\x4C\x65\x61\x76\x65\x41\x74","\x41\x62\x61\x6E\x64\x6F\x6E","\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x41\x74","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x52\x65\x61\x73\x6F\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x51\x75\x65\x75\x65\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x54\x69\x6D\x65","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x45\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x54\x6F\x74\x20\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x29\x29","\x41\x76\x67\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x54\x6F\x74\x20\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x45\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x29\x29","\x41\x76\x67\x20\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x54\x49\x6D\x65","\x54\x6F\x74\x20\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x3C\x31\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x3C\x31\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x36\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x31\x30\x2D\x36\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x36\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x20\x31\x30\x2D\x36\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x36\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x36\x30\x2D\x31\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x36\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x20\x36\x30\x2D\x31\x32\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x3E\x31\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x3E\x31\x32\x30\x73","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74","\x44\x61\x74\x65","\x44\x41\x54\x45","\x4F\x66\x66\x65\x72\x65\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74\x29\x29\x29","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x2F\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x29\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65","\x44\x41\x59\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74\x29","\x44\x61\x79","\x44\x41\x59\x4E\x41\x4D\x45\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74\x29","\x44\x61\x79\x4F\x66\x57\x65\x65\x6B","\x41\x53\x43","\x55\x6E\x69\x71\x75\x65\x49\x44","\x74\x79\x70\x65","\x54\x79\x70\x65","\x74\x61\x67","\x54\x61\x67","\x73\x6F\x75\x72\x63\x65","\x53\x6F\x75\x72\x63\x65","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x44\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x44\x65\x73\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x4C\x61\x73\x74\x41\x70\x70","\x6C\x61\x73\x74\x64\x61\x74\x61","\x4C\x61\x73\x74\x44\x61\x74\x61","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x44\x75\x72\x61\x74\x69\x6F\x6E","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x41\x67\x65\x6E\x74\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x43\x61\x6C\x6C\x65\x72\x49\x64","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x42\x69\x6C\x6C\x73\x65\x63","\x54\x6F\x74\x20\x44\x75\x72\x61\x74\x69\x6F\x6E","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x64\x75\x72\x61\x74\x69\x6F\x6E\x29\x29","\x41\x76\x67\x20\x44\x75\x72\x61\x74\x69\x6F\x6E","\x53\x55\x42\x53\x54\x52\x49\x4E\x47\x5F\x49\x4E\x44\x45\x58\x28\x63\x68\x61\x6E\x6E\x65\x6C\x2C\x20\x22\x2D\x22\x2C\x20\x31\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x4C\x4F\x47\x49\x4E\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x4C\x6F\x67\x69\x6E\x20\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x54\x41\x4C\x4B\x49\x4E\x47\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x50\x41\x55\x53\x45\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x50\x61\x75\x73\x65\x20\x54\x69\x6D\x65","\x65\x6E\x74\x65\x72\x41\x74","\x45\x6E\x74\x65\x72\x41\x74","\x65\x78\x69\x74\x41\x74","\x45\x78\x69\x74\x41\x74","\x64\x61\x74\x61\x31","\x50\x61\x75\x73\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x45\x76\x65\x6E\x74","\x50\x61\x75\x73\x65\x54\x79\x70\x65","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x61\x6D\x65","\x50\x72\x6F\x6A\x65\x63\x74\x20\x4E\x61\x6D\x65","\x64\x6E\x69\x64","\x6A\x6F\x69\x6E\x41\x74","\x53\x74\x61\x72\x74\x20\x54\x69\x6D\x65","\x6C\x65\x61\x76\x65\x41\x74","\x45\x6E\x64\x20\x54\x69\x6D\x65","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x6C\x65\x61\x76\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x6A\x6F\x69\x6E\x41\x74\x29","\x55\x6E\x69\x71\x75\x65\x20\x49\x64","\x43\x61\x6C\x6C\x65\x72\x20\x49\x64","\x6E\x6F\x64\x65","\x42\x6C\x6F\x63\x6B","\x64\x61\x74\x61","\x44\x61\x74\x61","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x52\x65\x63\x6F\x72\x64\x65\x64\x20\x43\x61\x6C\x6C\x73","\x72\x61\x74\x69\x6E\x67","\x54\x6F\x74\x61\x6C\x20\x52\x61\x74\x69\x6E\x67","\x41\x76\x67\x20\x52\x61\x74\x69\x6E\x67","\x41\x56\x47","\x52\x61\x74\x65\x64\x20\x43\x61\x6C\x6C\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x4E\x61\x6D\x65","\x4C\x61\x73\x74\x43\x61\x6C\x6C\x41\x74","\x44\x45\x53\x43","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x53\x74\x61\x74\x65","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x47\x6C\x6F\x62\x61\x6C\x20\x43\x6F\x75\x6E\x74","\x64\x72\x6F\x70\x72\x65\x61\x73\x6F\x6E","\x44\x72\x6F\x70\x20\x52\x65\x61\x73\x6F\x6E","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x69\x64","\x52\x4F\x55\x4E\x44\x28\x63\x6F\x75\x6E\x74\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79\x20\x57\x48\x45\x52\x45\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x71\x75\x65\x75\x65\x27\x29\x2C\x32\x29","\x43\x61\x6C\x6C\x73\x20\x28\x25\x29","\x54\x6F\x74\x61\x6C\x20\x43\x61\x6C\x6C\x73","\x4C\x69\x73\x74\x49\x64","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x53\x55\x4D\x28\x49\x46\x28\x73\x74\x61\x74\x65\x3D\x34\x2C\x31\x2C\x30\x29\x29","\x4D\x61\x6E\x61\x67\x65\x64","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x49\x46\x28\x73\x74\x61\x74\x65\x3D\x34\x2C\x31\x2C\x30\x29\x29\x2F\x43\x4F\x55\x4E\x54\x28\x2A\x29\x2A\x31\x30\x30\x2C\x31\x29","\x50\x65\x6E\x65\x74\x72\x61\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x41\x56\x47\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x29\x29","\x41\x56\x47\x20\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x54\x6F\x74\x61\x6C","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x20\x57\x48\x45\x52\x45\x20\x73\x74\x61\x74\x65\x3D\x34\x20\x61\x6E\x64\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x71\x75\x65\x75\x65\x27\x29\x2C\x32\x29","\x54\x6F\x74\x61\x6C\x20\x28\x25\x29","\x52\x4F\x55\x4E\x44\x28\x63\x6F\x75\x6E\x74\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79\x20\x57\x48\x45\x52\x45\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x69\x76\x72\x27\x29\x2C\x32\x29","\x52\x65\x70\x6F\x72\x74\x49\x64","\x67\x72\x6F\x75\x70\x42\x79"];_0xe22b[0];var _=require(_0xe22b[1]);module[_0xe22b[2]]= function(){var _0xada0x2=[{field:_0xe22b[3],alias:_0xe22b[4],ReportId:1},{field:_0xe22b[5],alias:_0xe22b[6],ReportId:1},{field:_0xe22b[7],alias:_0xe22b[8],ReportId:1},{field:_0xe22b[9],alias:_0xe22b[10],ReportId:1},{field:_0xe22b[11],alias:_0xe22b[12],ReportId:1},{field:_0xe22b[13],alias:_0xe22b[14],ReportId:1},{field:_0xe22b[15],alias:_0xe22b[16],ReportId:1},{field:_0xe22b[17],alias:_0xe22b[18],ReportId:1},{field:_0xe22b[19],alias:_0xe22b[20],ReportId:1},{field:_0xe22b[21],alias:_0xe22b[22],ReportId:1},{field:_0xe22b[23],alias:_0xe22b[24],ReportId:1},{field:_0xe22b[25],alias:_0xe22b[26],ReportId:1},{field:_0xe22b[27],alias:_0xe22b[28],ReportId:1},{field:_0xe22b[29],alias:_0xe22b[30],ReportId:1},{field:_0xe22b[31],alias:_0xe22b[32],format:_0xe22b[33],custom:1,ReportId:1},{field:_0xe22b[34],alias:_0xe22b[35],format:_0xe22b[33],custom:1,ReportId:1},{field:_0xe22b[36],alias:_0xe22b[37],format:_0xe22b[33],custom:1,ReportId:1},{field:_0xe22b[5],alias:_0xe22b[38],ReportId:2},{field:_0xe22b[9],alias:_0xe22b[10],ReportId:2},{field:_0xe22b[11],alias:_0xe22b[39],ReportId:2},{field:_0xe22b[40],alias:_0xe22b[41],custom:1,ReportId:2},{field:_0xe22b[42],alias:_0xe22b[43],format:_0xe22b[33],ReportId:2},{field:_0xe22b[44],alias:_0xe22b[45],custom:1,ReportId:2},{field:_0xe22b[3],alias:_0xe22b[4],ReportId:3},{field:_0xe22b[5],alias:_0xe22b[6],ReportId:3},{field:_0xe22b[7],alias:_0xe22b[8],ReportId:3},{field:_0xe22b[9],alias:_0xe22b[10],ReportId:3},{field:_0xe22b[46],alias:_0xe22b[47],ReportId:3},{field:_0xe22b[48],alias:_0xe22b[49],ReportId:3},{field:_0xe22b[50],alias:_0xe22b[51],ReportId:3},{field:_0xe22b[52],alias:_0xe22b[53],ReportId:3},{field:_0xe22b[42],alias:_0xe22b[37],ReportId:3},{field:_0xe22b[54],alias:_0xe22b[32],ReportId:3},{field:_0xe22b[55],alias:_0xe22b[56],ReportId:3},{field:_0xe22b[57],alias:_0xe22b[58],ReportId:3},{field:_0xe22b[59],alias:_0xe22b[60],ReportId:3},{field:_0xe22b[61],alias:_0xe22b[62],ReportId:3},{field:_0xe22b[63],alias:_0xe22b[64],ReportId:3},{field:_0xe22b[29],alias:_0xe22b[30],ReportId:3},{field:_0xe22b[46],alias:_0xe22b[47],groupBy:1,ReportId:4},{field:_0xe22b[59],alias:_0xe22b[65],function:_0xe22b[66],ReportId:4},{field:_0xe22b[54],alias:_0xe22b[67],function:_0xe22b[66],format:_0xe22b[33],ReportId:4},{field:_0xe22b[57],alias:_0xe22b[68],function:_0xe22b[66],format:_0xe22b[33],ReportId:4},{field:_0xe22b[69],alias:_0xe22b[70],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:4},{field:_0xe22b[71],alias:_0xe22b[72],format:_0xe22b[33],custom:1,ReportId:4},{field:_0xe22b[73],alias:_0xe22b[74],format:_0xe22b[33],custom:1,ReportId:4},{field:_0xe22b[75],alias:_0xe22b[76],format:_0xe22b[33],custom:1,ReportId:4},{field:_0xe22b[9],alias:_0xe22b[10],groupBy:1,ReportId:5},{field:_0xe22b[59],alias:_0xe22b[65],function:_0xe22b[66],ReportId:5},{field:_0xe22b[54],alias:_0xe22b[77],function:_0xe22b[66],format:_0xe22b[33],ReportId:5},{field:_0xe22b[42],alias:_0xe22b[78],function:_0xe22b[66],format:_0xe22b[33],ReportId:5},{field:_0xe22b[57],alias:_0xe22b[79],function:_0xe22b[66],format:_0xe22b[33],ReportId:5},{field:_0xe22b[69],alias:_0xe22b[80],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:5},{field:_0xe22b[71],alias:_0xe22b[81],format:_0xe22b[33],custom:1,ReportId:5},{field:_0xe22b[82],alias:_0xe22b[83],format:_0xe22b[33],custom:1,ReportId:5},{field:_0xe22b[73],alias:_0xe22b[84],format:_0xe22b[33],custom:1,ReportId:5},{field:_0xe22b[75],alias:_0xe22b[85],format:_0xe22b[33],custom:1,ReportId:5},{field:_0xe22b[9],alias:_0xe22b[10],groupBy:1,ReportId:6},{field:_0xe22b[59],alias:_0xe22b[86],function:_0xe22b[66],ReportId:6},{field:_0xe22b[87],alias:_0xe22b[88],custom:1,ReportId:6},{field:_0xe22b[89],alias:_0xe22b[90],custom:1,ReportId:6},{field:_0xe22b[91],alias:_0xe22b[92],custom:1,ReportId:6},{field:_0xe22b[93],alias:_0xe22b[94],custom:1,ReportId:6},{field:_0xe22b[95],alias:_0xe22b[96],custom:1,ReportId:6},{field:_0xe22b[97],alias:_0xe22b[98],custom:1,ReportId:6},{field:_0xe22b[99],alias:_0xe22b[100],custom:1,ReportId:6},{field:_0xe22b[101],alias:_0xe22b[102],custom:1,ReportId:6},{field:_0xe22b[61],alias:_0xe22b[103],groupBy:1,ReportId:7},{field:_0xe22b[3],alias:_0xe22b[104],function:_0xe22b[105],ReportId:7},{field:_0xe22b[50],alias:_0xe22b[106],format:_0xe22b[107],groupBy:1,ReportId:8},{field:_0xe22b[59],alias:_0xe22b[86],function:_0xe22b[66],ReportId:8},{field:_0xe22b[87],alias:_0xe22b[88],custom:1,ReportId:8},{field:_0xe22b[91],alias:_0xe22b[92],custom:1,ReportId:8},{field:_0xe22b[95],alias:_0xe22b[96],custom:1,ReportId:8},{field:_0xe22b[99],alias:_0xe22b[100],custom:1,ReportId:8},{field:_0xe22b[3],alias:_0xe22b[4],ReportId:9},{field:_0xe22b[5],alias:_0xe22b[6],ReportId:9},{field:_0xe22b[9],alias:_0xe22b[10],ReportId:9},{field:_0xe22b[11],alias:_0xe22b[108],ReportId:9},{field:_0xe22b[13],alias:_0xe22b[109],ReportId:9},{field:_0xe22b[15],alias:_0xe22b[110],ReportId:9},{field:_0xe22b[17],alias:_0xe22b[111],ReportId:9},{field:_0xe22b[23],alias:_0xe22b[112],ReportId:9},{field:_0xe22b[25],alias:_0xe22b[113],ReportId:9},{field:_0xe22b[27],alias:_0xe22b[114],ReportId:9},{field:_0xe22b[115],alias:_0xe22b[116],ReportId:9},{field:_0xe22b[29],alias:_0xe22b[30],ReportId:9},{field:_0xe22b[34],alias:_0xe22b[117],format:_0xe22b[33],custom:1,ReportId:9},{field:_0xe22b[118],alias:_0xe22b[119],format:_0xe22b[33],custom:1,ReportId:9},{field:_0xe22b[9],alias:_0xe22b[10],groupBy:1,ReportId:10},{field:_0xe22b[15],alias:_0xe22b[120],function:_0xe22b[66],ReportId:10},{field:_0xe22b[23],alias:_0xe22b[112],function:_0xe22b[66],ReportId:10},{field:_0xe22b[34],alias:_0xe22b[121],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:10},{field:_0xe22b[122],alias:_0xe22b[123],format:_0xe22b[33],custom:1,ReportId:10},{field:_0xe22b[118],alias:_0xe22b[124],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:10},{field:_0xe22b[125],alias:_0xe22b[126],format:_0xe22b[33],custom:1,ReportId:10},{field:_0xe22b[27],alias:_0xe22b[103],groupBy:1,ReportId:11},{field:_0xe22b[23],alias:_0xe22b[104],function:_0xe22b[66],ReportId:11},{field:_0xe22b[118],alias:_0xe22b[124],function:_0xe22b[66],custom:1,ReportId:11},{field:_0xe22b[9],alias:_0xe22b[10],groupBy:1,ReportId:12},{field:_0xe22b[15],alias:_0xe22b[127],function:_0xe22b[66],ReportId:12},{field:_0xe22b[128],alias:_0xe22b[129],custom:1,ReportId:12},{field:_0xe22b[130],alias:_0xe22b[131],custom:1,ReportId:12},{field:_0xe22b[132],alias:_0xe22b[133],custom:1,ReportId:12},{field:_0xe22b[134],alias:_0xe22b[135],custom:1,ReportId:12},{field:_0xe22b[136],alias:_0xe22b[137],custom:1,ReportId:12},{field:_0xe22b[138],alias:_0xe22b[139],custom:1,ReportId:12},{field:_0xe22b[140],alias:_0xe22b[141],custom:1,ReportId:12},{field:_0xe22b[142],alias:_0xe22b[143],custom:1,ReportId:12},{field:_0xe22b[144],alias:_0xe22b[145],format:_0xe22b[146],groupBy:1,custom:1,ReportId:13},{field:_0xe22b[3],alias:_0xe22b[147],function:_0xe22b[148],ReportId:13},{field:_0xe22b[19],alias:_0xe22b[65],function:_0xe22b[66],ReportId:13},{field:_0xe22b[15],alias:_0xe22b[120],function:_0xe22b[66],custom:1,ReportId:13},{field:_0xe22b[23],alias:_0xe22b[112],function:_0xe22b[66],custom:1,ReportId:13},{field:_0xe22b[31],alias:_0xe22b[77],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:13},{field:_0xe22b[149],alias:_0xe22b[72],format:_0xe22b[33],custom:1,ReportId:13},{field:_0xe22b[122],alias:_0xe22b[123],format:_0xe22b[33],custom:1,ReportId:13},{field:_0xe22b[144],alias:_0xe22b[106],format:_0xe22b[107],groupBy:1,custom:1,ReportId:14},{field:_0xe22b[3],alias:_0xe22b[147],function:_0xe22b[148],ReportId:14},{field:_0xe22b[19],alias:_0xe22b[45],function:_0xe22b[66],ReportId:14},{field:_0xe22b[150],alias:_0xe22b[151],custom:1,ReportId:14},{field:_0xe22b[15],alias:_0xe22b[120],function:_0xe22b[66],ReportId:14},{field:_0xe22b[23],alias:_0xe22b[112],function:_0xe22b[66],ReportId:14},{field:_0xe22b[31],alias:_0xe22b[77],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:14},{field:_0xe22b[149],alias:_0xe22b[72],format:_0xe22b[33],custom:1,ReportId:14},{field:_0xe22b[122],alias:_0xe22b[123],format:_0xe22b[33],custom:1,ReportId:14},{field:_0xe22b[152],alias:_0xe22b[153],groupBy:1,custom:1,ReportId:15},{field:_0xe22b[3],alias:_0xe22b[147],function:_0xe22b[148],ReportId:15},{field:_0xe22b[19],alias:_0xe22b[45],function:_0xe22b[66],ReportId:15},{field:_0xe22b[150],alias:_0xe22b[151],custom:1,ReportId:15},{field:_0xe22b[15],alias:_0xe22b[120],function:_0xe22b[66],ReportId:15},{field:_0xe22b[23],alias:_0xe22b[112],function:_0xe22b[66],ReportId:15},{field:_0xe22b[31],alias:_0xe22b[77],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:15},{field:_0xe22b[149],alias:_0xe22b[72],format:_0xe22b[33],custom:1,ReportId:15},{field:_0xe22b[122],alias:_0xe22b[123],format:_0xe22b[33],custom:1,ReportId:15},{field:_0xe22b[154],alias:_0xe22b[155],groupBy:1,custom:1,ReportId:16},{field:_0xe22b[3],alias:_0xe22b[147],function:_0xe22b[148],ReportId:16},{field:_0xe22b[19],alias:_0xe22b[45],function:_0xe22b[66],ReportId:16},{field:_0xe22b[150],alias:_0xe22b[151],custom:1,ReportId:16},{field:_0xe22b[15],alias:_0xe22b[120],function:_0xe22b[66],orderBy:_0xe22b[156],ReportId:16},{field:_0xe22b[23],alias:_0xe22b[112],function:_0xe22b[66],ReportId:16},{field:_0xe22b[31],alias:_0xe22b[77],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:16},{field:_0xe22b[149],alias:_0xe22b[72],format:_0xe22b[33],custom:1,ReportId:16},{field:_0xe22b[122],alias:_0xe22b[123],format:_0xe22b[33],custom:1,ReportId:16},{field:_0xe22b[9],alias:_0xe22b[10],groupBy:1,ReportId:17},{field:_0xe22b[3],alias:_0xe22b[147],function:_0xe22b[148],ReportId:17},{field:_0xe22b[19],alias:_0xe22b[45],function:_0xe22b[66],ReportId:17},{field:_0xe22b[150],alias:_0xe22b[151],custom:1,ReportId:17},{field:_0xe22b[15],alias:_0xe22b[120],function:_0xe22b[66],ReportId:17},{field:_0xe22b[23],alias:_0xe22b[112],function:_0xe22b[66],ReportId:17},{field:_0xe22b[31],alias:_0xe22b[77],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:17},{field:_0xe22b[149],alias:_0xe22b[72],format:_0xe22b[33],custom:1,ReportId:17},{field:_0xe22b[122],alias:_0xe22b[123],format:_0xe22b[33],custom:1,ReportId:17},{field:_0xe22b[3],alias:_0xe22b[157],ReportId:18},{field:_0xe22b[158],alias:_0xe22b[159],ReportId:18},{field:_0xe22b[160],alias:_0xe22b[161],ReportId:18},{field:_0xe22b[162],alias:_0xe22b[163],ReportId:18},{field:_0xe22b[164],alias:_0xe22b[165],ReportId:18},{field:_0xe22b[166],alias:_0xe22b[38],ReportId:18},{field:_0xe22b[167],alias:_0xe22b[168],ReportId:18},{field:_0xe22b[169],alias:_0xe22b[170],ReportId:18},{field:_0xe22b[171],alias:_0xe22b[172],ReportId:18},{field:_0xe22b[173],alias:_0xe22b[39],ReportId:18},{field:_0xe22b[174],alias:_0xe22b[37],ReportId:18},{field:_0xe22b[175],alias:_0xe22b[41],ReportId:18},{field:_0xe22b[176],alias:_0xe22b[177],ReportId:18},{field:_0xe22b[178],alias:_0xe22b[179],ReportId:18},{field:_0xe22b[3],alias:_0xe22b[157],ReportId:19},{field:_0xe22b[180],alias:_0xe22b[181],ReportId:19},{field:_0xe22b[162],alias:_0xe22b[163],ReportId:19},{field:_0xe22b[164],alias:_0xe22b[165],ReportId:19},{field:_0xe22b[166],alias:_0xe22b[182],ReportId:19},{field:_0xe22b[173],alias:_0xe22b[39],ReportId:19},{field:_0xe22b[174],alias:_0xe22b[37],ReportId:19},{field:_0xe22b[175],alias:_0xe22b[41],ReportId:19},{field:_0xe22b[176],alias:_0xe22b[177],format:_0xe22b[33],ReportId:19},{field:_0xe22b[183],alias:_0xe22b[184],format:_0xe22b[33],ReportId:19},{field:_0xe22b[178],alias:_0xe22b[179],ReportId:19},{field:_0xe22b[160],alias:_0xe22b[161],ReportId:19},{field:_0xe22b[158],alias:_0xe22b[159],groupBy:1,ReportId:20},{field:_0xe22b[3],alias:_0xe22b[104],function:_0xe22b[105],ReportId:20},{field:_0xe22b[176],alias:_0xe22b[185],function:_0xe22b[66],format:_0xe22b[33],ReportId:20},{field:_0xe22b[186],alias:_0xe22b[187],format:_0xe22b[33],custom:1,ReportId:20},{field:_0xe22b[178],alias:_0xe22b[179],groupBy:1,ReportId:21},{field:_0xe22b[3],alias:_0xe22b[104],function:_0xe22b[105],ReportId:21},{field:_0xe22b[176],alias:_0xe22b[185],function:_0xe22b[66],format:_0xe22b[33],ReportId:21},{field:_0xe22b[186],alias:_0xe22b[187],format:_0xe22b[33],custom:1,ReportId:21},{field:_0xe22b[188],alias:_0xe22b[47],groupBy:1,custom:1,ReportId:22},{field:_0xe22b[3],alias:_0xe22b[104],function:_0xe22b[105],ReportId:22},{field:_0xe22b[176],alias:_0xe22b[185],function:_0xe22b[66],format:_0xe22b[33],ReportId:22},{field:_0xe22b[186],alias:_0xe22b[187],format:_0xe22b[33],custom:1,ReportId:22},{field:_0xe22b[173],alias:_0xe22b[145],format:_0xe22b[146],groupBy:1,ReportId:23},{field:_0xe22b[3],alias:_0xe22b[104],function:_0xe22b[105],ReportId:23},{field:_0xe22b[176],alias:_0xe22b[185],function:_0xe22b[66],format:_0xe22b[33],ReportId:23},{field:_0xe22b[186],alias:_0xe22b[187],format:_0xe22b[33],custom:1,ReportId:23},{field:_0xe22b[46],alias:_0xe22b[47],groupBy:1,orderBy:_0xe22b[156],ReportId:24},{field:_0xe22b[189],alias:_0xe22b[177],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:24},{field:_0xe22b[46],alias:_0xe22b[47],groupBy:1,ReportId:25},{field:_0xe22b[190],alias:_0xe22b[191],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:25},{field:_0xe22b[192],alias:_0xe22b[193],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:25},{field:_0xe22b[194],alias:_0xe22b[195],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:25},{field:_0xe22b[46],alias:_0xe22b[47],ReportId:26},{field:_0xe22b[196],alias:_0xe22b[197],ReportId:26},{field:_0xe22b[198],alias:_0xe22b[199],ReportId:26},{field:_0xe22b[200],alias:_0xe22b[201],ReportId:26},{field:_0xe22b[176],alias:_0xe22b[177],format:_0xe22b[33],ReportId:26},{field:_0xe22b[46],alias:_0xe22b[47],ReportId:27},{field:_0xe22b[202],alias:_0xe22b[203],ReportId:27},{field:_0xe22b[158],alias:_0xe22b[204],ReportId:27},{field:_0xe22b[200],alias:_0xe22b[159],ReportId:27},{field:_0xe22b[196],alias:_0xe22b[197],ReportId:27},{field:_0xe22b[198],alias:_0xe22b[199],ReportId:27},{field:_0xe22b[189],alias:_0xe22b[177],format:_0xe22b[33],custom:1,ReportId:27},{field:_0xe22b[46],alias:_0xe22b[47],groupBy:1,orderBy:_0xe22b[156],ReportId:28},{field:_0xe22b[200],alias:_0xe22b[205],groupBy:1,orderBy:_0xe22b[156],ReportId:28},{field:_0xe22b[189],alias:_0xe22b[177],function:_0xe22b[66],format:_0xe22b[33],custom:1,ReportId:28},{field:_0xe22b[206],alias:_0xe22b[207],ReportId:29},{field:_0xe22b[3],alias:_0xe22b[4],ReportId:29},{field:_0xe22b[166],alias:_0xe22b[182],ReportId:29},{field:_0xe22b[208],alias:_0xe22b[30],ReportId:29},{field:_0xe22b[209],alias:_0xe22b[210],orderBy:_0xe22b[156],ReportId:29},{field:_0xe22b[211],alias:_0xe22b[212],ReportId:29},{field:_0xe22b[213],alias:_0xe22b[177],format:_0xe22b[33],custom:1,ReportId:29},{field:_0xe22b[3],alias:_0xe22b[214],ReportId:30},{field:_0xe22b[206],alias:_0xe22b[207],ReportId:30},{field:_0xe22b[166],alias:_0xe22b[215],ReportId:30},{field:_0xe22b[216],alias:_0xe22b[217],ReportId:30},{field:_0xe22b[218],alias:_0xe22b[219],ReportId:30},{field:_0xe22b[220],alias:_0xe22b[47],groupBy:1,ReportId:31},{field:_0xe22b[3],alias:_0xe22b[221],function:_0xe22b[105],ReportId:31},{field:_0xe22b[222],alias:_0xe22b[223],function:_0xe22b[66],ReportId:31},{field:_0xe22b[222],alias:_0xe22b[224],function:_0xe22b[225],ReportId:31},{field:_0xe22b[9],alias:_0xe22b[10],groupBy:1,ReportId:32},{field:_0xe22b[3],alias:_0xe22b[226],function:_0xe22b[105],ReportId:32},{field:_0xe22b[222],alias:_0xe22b[223],function:_0xe22b[66],ReportId:32},{field:_0xe22b[222],alias:_0xe22b[224],function:_0xe22b[225],ReportId:32},{field:_0xe22b[227],alias:_0xe22b[228],ReportId:33},{field:_0xe22b[5],alias:_0xe22b[6],ReportId:33},{field:_0xe22b[173],alias:_0xe22b[229],orderBy:_0xe22b[230],ReportId:33},{field:_0xe22b[231],alias:_0xe22b[232],ReportId:33},{field:_0xe22b[233],alias:_0xe22b[234],ReportId:33},{field:_0xe22b[235],alias:_0xe22b[236],ReportId:33},{field:_0xe22b[237],alias:_0xe22b[238],ReportId:33},{field:_0xe22b[46],alias:_0xe22b[47],ReportId:33},{field:_0xe22b[54],alias:_0xe22b[193],ReportId:33},{field:_0xe22b[178],alias:_0xe22b[179],ReportId:33},{field:_0xe22b[3],alias:_0xe22b[4],ReportId:33},{field:_0xe22b[231],alias:_0xe22b[232],groupBy:true,orderBy:_0xe22b[156],ReportId:34},{field:_0xe22b[239],alias:_0xe22b[104],function:_0xe22b[105],ReportId:34},{field:_0xe22b[240],alias:_0xe22b[241],custom:true,ReportId:34},{field:_0xe22b[227],alias:_0xe22b[228],orderBy:_0xe22b[156],groupBy:true,ReportId:35},{field:_0xe22b[231],alias:_0xe22b[232],groupBy:true,ReportId:35},{field:_0xe22b[239],alias:_0xe22b[242],function:_0xe22b[105],ReportId:35},{field:_0xe22b[243],groupBy:true,orderBy:_0xe22b[156],ReportId:36},{field:_0xe22b[239],alias:_0xe22b[244],function:_0xe22b[105],ReportId:36},{field:_0xe22b[245],alias:_0xe22b[246],custom:true,ReportId:36},{field:_0xe22b[247],alias:_0xe22b[248],custom:true,ReportId:36},{field:_0xe22b[46],alias:_0xe22b[47],groupBy:true,orderBy:_0xe22b[156],ReportId:37},{field:_0xe22b[239],alias:_0xe22b[104],function:_0xe22b[105],ReportId:37},{field:_0xe22b[249],alias:_0xe22b[250],custom:true,ReportId:37},{field:_0xe22b[178],alias:_0xe22b[179],groupBy:true,ReportId:38},{field:_0xe22b[239],alias:_0xe22b[251],function:_0xe22b[105],ReportId:38},{field:_0xe22b[252],alias:_0xe22b[253],custom:true,ReportId:38},{field:_0xe22b[46],alias:_0xe22b[47],groupBy:true,ReportId:39},{field:_0xe22b[178],alias:_0xe22b[179],groupBy:true,ReportId:39},{field:_0xe22b[239],alias:_0xe22b[251],function:_0xe22b[105],ReportId:39},{field:_0xe22b[252],alias:_0xe22b[253],custom:true,ReportId:39},{field:_0xe22b[227],alias:_0xe22b[228],ReportId:40},{field:_0xe22b[5],alias:_0xe22b[6],ReportId:40},{field:_0xe22b[173],alias:_0xe22b[229],orderBy:_0xe22b[230],ReportId:40},{field:_0xe22b[231],alias:_0xe22b[232],ReportId:40},{field:_0xe22b[233],alias:_0xe22b[234],ReportId:40},{field:_0xe22b[235],alias:_0xe22b[236],ReportId:40},{field:_0xe22b[237],alias:_0xe22b[238],ReportId:40},{field:_0xe22b[54],alias:_0xe22b[193],ReportId:40},{field:_0xe22b[3],alias:_0xe22b[4],ReportId:40},{field:_0xe22b[231],alias:_0xe22b[232],groupBy:true,orderBy:_0xe22b[156],ReportId:41},{field:_0xe22b[239],alias:_0xe22b[104],function:_0xe22b[105],ReportId:41},{field:_0xe22b[254],alias:_0xe22b[241],custom:true,ReportId:41},{field:_0xe22b[227],alias:_0xe22b[228],orderBy:_0xe22b[156],groupBy:true,ReportId:42},{field:_0xe22b[231],alias:_0xe22b[232],groupBy:true,ReportId:42},{field:_0xe22b[239],alias:_0xe22b[242],function:_0xe22b[105],ReportId:42},{field:_0xe22b[243],groupBy:true,orderBy:_0xe22b[156],ReportId:43},{field:_0xe22b[239],alias:_0xe22b[244],function:_0xe22b[105],ReportId:43},{field:_0xe22b[245],alias:_0xe22b[246],custom:true,ReportId:43},{field:_0xe22b[247],alias:_0xe22b[248],custom:true,ReportId:43}];return _[_0xe22b[256]](_0xada0x2,_0xe22b[255])}
\ No newline at end of file
index ee91287..2ec5402 100644 (file)
@@ -1 +1 @@
-var _0x1d38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x66\x69\x65\x6C\x64\x73"];_0x1d38[0];module[_0x1d38[1]]= {default:require(_0x1d38[2]),fields:require(_0x1d38[3])}
\ No newline at end of file
+var _0x7e6f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x66\x69\x65\x6C\x64\x73"];_0x7e6f[0];module[_0x7e6f[1]]= {default:require(_0x7e6f[2]),fields:require(_0x7e6f[3])}
\ No newline at end of file
index 7a1fe33..d1b1a3b 100644 (file)
@@ -1 +1 @@
-var _0x9bd1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x61\x74\x61\x62\x61\x73\x65","\x44\x52\x49\x56\x45\x52\x3D\x4D\x79\x53\x51\x4C\x3B\x53\x45\x52\x56\x45\x52\x3D\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x3B\x55\x49\x44\x3D\x78\x63\x61\x6C\x6C\x3B\x50\x57\x44\x3D\x78\x43\x40\x4C\x4C\x31\x32\x33\x34\x3B\x44\x41\x54\x41\x42\x41\x53\x45\x3D\x6D\x6F\x74\x69\x6F\x6E\x32","\x78\x63\x61\x6C\x6C\x79\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x64\x62\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4F\x44\x42\x43","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4F\x44\x42\x43\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63"];_0x9bd1[0];var db=require(_0x9bd1[2])[_0x9bd1[1]];var logger=require(_0x9bd1[4])(_0x9bd1[3]);var odbc=[{id:1,name:_0x9bd1[5],dsn:_0x9bd1[6],description:_0x9bd1[7]}];exports[_0x9bd1[8]]= function(){return db[_0x9bd1[16]][_0x9bd1[15]](odbc,{ignoreDuplicates:true,individualHooks:true})[_0x9bd1[14]](function(){logger[_0x9bd1[13]](_0x9bd1[12])})[_0x9bd1[11]](function(_0x3a0bx4){logger[_0x9bd1[10]](_0x9bd1[9])})}
\ No newline at end of file
+var _0x87e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x61\x74\x61\x62\x61\x73\x65","\x44\x52\x49\x56\x45\x52\x3D\x4D\x79\x53\x51\x4C\x3B\x53\x45\x52\x56\x45\x52\x3D\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x3B\x55\x49\x44\x3D\x78\x63\x61\x6C\x6C\x3B\x50\x57\x44\x3D\x78\x43\x40\x4C\x4C\x31\x32\x33\x34\x3B\x44\x41\x54\x41\x42\x41\x53\x45\x3D\x6D\x6F\x74\x69\x6F\x6E\x32","\x78\x63\x61\x6C\x6C\x79\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x64\x62\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4F\x44\x42\x43","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4F\x44\x42\x43\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63"];_0x87e7[0];var db=require(_0x87e7[2])[_0x87e7[1]];var logger=require(_0x87e7[4])(_0x87e7[3]);var odbc=[{id:1,name:_0x87e7[5],dsn:_0x87e7[6],description:_0x87e7[7]}];exports[_0x87e7[8]]= function(){return db[_0x87e7[16]][_0x87e7[15]](odbc,{ignoreDuplicates:true,individualHooks:true})[_0x87e7[14]](function(){logger[_0x87e7[13]](_0x87e7[12])})[_0x87e7[11]](function(_0x8dfex4){logger[_0x87e7[10]](_0x87e7[9])})}
\ No newline at end of file
index fa07b8e..cac504b 100644 (file)
@@ -1 +1 @@
-var _0x3003=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x78\x6D\x6C","\x2E\x78\x6D\x6C","\x6A\x6F\x69\x6E","\x75\x74\x66\x2D\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x41\x75\x74\x6F\x41\x74\x74\x65\x6E\x64\x61\x6E\x74","\x42\x61\x73\x69\x63\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x43\x53\x49","\x43\x75\x73\x74\x6F\x6D\x65\x72\x20\x53\x61\x74\x69\x73\x66\x61\x63\x74\x69\x6F\x6E\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4F\x72\x64\x65\x72\x73","\x4F\x72\x64\x65\x72\x20\x44\x42\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x53\x75\x72\x76\x65\x79","\x53\x75\x72\x76\x65\x79\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x50\x72\x6F\x6A\x65\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x50\x72\x6F\x6A\x65\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74"];_0x3003[0];var fs=require(_0x3003[1]);var path=require(_0x3003[2]);var db=require(_0x3003[4])[_0x3003[3]];var logger=require(_0x3003[6])(_0x3003[5]);var getXml=function(_0x8ed6x6){return fs[_0x3003[11]](path[_0x3003[9]](__dirname,_0x3003[7],_0x8ed6x6+ _0x3003[8]),{encoding:_0x3003[10]})};var squareProjects=[{id:1,name:_0x3003[12],description:_0x3003[13],preproduction:getXml(_0x3003[12]),production:getXml(_0x3003[12])},{id:2,name:_0x3003[14],description:_0x3003[15],preproduction:getXml(_0x3003[14]),production:getXml(_0x3003[14])},{id:3,name:_0x3003[16],description:_0x3003[17],preproduction:getXml(_0x3003[16]),production:getXml(_0x3003[16])},{id:4,name:_0x3003[18],description:_0x3003[19],preproduction:getXml(_0x3003[18]),production:getXml(_0x3003[18])}];exports[_0x3003[20]]= function(){return db[_0x3003[28]][_0x3003[27]](squareProjects,{ignoreDuplicates:true,individualHooks:true})[_0x3003[26]](function(){logger[_0x3003[25]](_0x3003[24])})[_0x3003[23]](function(_0x8ed6x8){logger[_0x3003[22]](_0x3003[21])})}
\ No newline at end of file
+var _0xc683=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x78\x6D\x6C","\x2E\x78\x6D\x6C","\x6A\x6F\x69\x6E","\x75\x74\x66\x2D\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x41\x75\x74\x6F\x41\x74\x74\x65\x6E\x64\x61\x6E\x74","\x42\x61\x73\x69\x63\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x43\x53\x49","\x43\x75\x73\x74\x6F\x6D\x65\x72\x20\x53\x61\x74\x69\x73\x66\x61\x63\x74\x69\x6F\x6E\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4F\x72\x64\x65\x72\x73","\x4F\x72\x64\x65\x72\x20\x44\x42\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x53\x75\x72\x76\x65\x79","\x53\x75\x72\x76\x65\x79\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x50\x72\x6F\x6A\x65\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x50\x72\x6F\x6A\x65\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74"];_0xc683[0];var fs=require(_0xc683[1]);var path=require(_0xc683[2]);var db=require(_0xc683[4])[_0xc683[3]];var logger=require(_0xc683[6])(_0xc683[5]);var getXml=function(_0x82cfx6){return fs[_0xc683[11]](path[_0xc683[9]](__dirname,_0xc683[7],_0x82cfx6+ _0xc683[8]),{encoding:_0xc683[10]})};var squareProjects=[{id:1,name:_0xc683[12],description:_0xc683[13],preproduction:getXml(_0xc683[12]),production:getXml(_0xc683[12])},{id:2,name:_0xc683[14],description:_0xc683[15],preproduction:getXml(_0xc683[14]),production:getXml(_0xc683[14])},{id:3,name:_0xc683[16],description:_0xc683[17],preproduction:getXml(_0xc683[16]),production:getXml(_0xc683[16])},{id:4,name:_0xc683[18],description:_0xc683[19],preproduction:getXml(_0xc683[18]),production:getXml(_0xc683[18])}];exports[_0xc683[20]]= function(){return db[_0xc683[28]][_0xc683[27]](squareProjects,{ignoreDuplicates:true,individualHooks:true})[_0xc683[26]](function(){logger[_0xc683[25]](_0xc683[24])})[_0xc683[23]](function(_0x82cfx8){logger[_0xc683[22]](_0xc683[21])})}
\ No newline at end of file
index 15322d2..f3341fe 100644 (file)
@@ -1 +1 @@
-var _0x59c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x66\x6F\x72\x75\x6D\x73","\x74\x61\x67\x20\x66\x6F\x72\x75\x6D\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x64\x65\x66\x65\x63\x74\x69\x76\x65","\x74\x61\x67\x20\x64\x65\x66\x65\x63\x74\x69\x76\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x66\x61\x71","\x74\x61\x67\x20\x66\x61\x71\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x69\x6E\x73\x74\x61\x6C\x6C\x61\x74\x69\x6F\x6E","\x74\x61\x67\x20\x69\x6E\x73\x74\x61\x6C\x6C\x61\x74\x69\x6F\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x61\x62\x6F\x75\x74\x5F\x73\x61\x6C\x65\x73","\x74\x61\x67\x20\x61\x62\x6F\x75\x74\x5F\x73\x61\x6C\x65\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x61\x67\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x61\x67\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x61\x67","\x67\x65\x74\x4E\x61\x6D\x65\x73","\x6E\x61\x6D\x65","\x6D\x61\x70"];_0x59c6[0];var _=require(_0x59c6[1]);var db=require(_0x59c6[3])[_0x59c6[2]];var logger=require(_0x59c6[5])(_0x59c6[4]);var tags=[{id:1,name:_0x59c6[6],description:_0x59c6[7]},{id:2,name:_0x59c6[8],description:_0x59c6[9]},{id:3,name:_0x59c6[10],description:_0x59c6[11]},{id:4,name:_0x59c6[12],description:_0x59c6[13]},{id:5,name:_0x59c6[14],description:_0x59c6[15]}];exports[_0x59c6[16]]= function(){return db[_0x59c6[24]][_0x59c6[23]](tags,{ignoreDuplicates:true,individualHooks:true})[_0x59c6[22]](function(){logger[_0x59c6[21]](_0x59c6[20])})[_0x59c6[19]](function(_0xce99x5){logger[_0x59c6[18]](_0x59c6[17])})};exports[_0x59c6[25]]= function(){return _[_0x59c6[27]](tags,_0x59c6[26])}
\ No newline at end of file
+var _0xadf7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x66\x6F\x72\x75\x6D\x73","\x74\x61\x67\x20\x66\x6F\x72\x75\x6D\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x64\x65\x66\x65\x63\x74\x69\x76\x65","\x74\x61\x67\x20\x64\x65\x66\x65\x63\x74\x69\x76\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x66\x61\x71","\x74\x61\x67\x20\x66\x61\x71\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x69\x6E\x73\x74\x61\x6C\x6C\x61\x74\x69\x6F\x6E","\x74\x61\x67\x20\x69\x6E\x73\x74\x61\x6C\x6C\x61\x74\x69\x6F\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x61\x62\x6F\x75\x74\x5F\x73\x61\x6C\x65\x73","\x74\x61\x67\x20\x61\x62\x6F\x75\x74\x5F\x73\x61\x6C\x65\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x61\x67\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x61\x67\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x61\x67","\x67\x65\x74\x4E\x61\x6D\x65\x73","\x6E\x61\x6D\x65","\x6D\x61\x70"];_0xadf7[0];var _=require(_0xadf7[1]);var db=require(_0xadf7[3])[_0xadf7[2]];var logger=require(_0xadf7[5])(_0xadf7[4]);var tags=[{id:1,name:_0xadf7[6],description:_0xadf7[7]},{id:2,name:_0xadf7[8],description:_0xadf7[9]},{id:3,name:_0xadf7[10],description:_0xadf7[11]},{id:4,name:_0xadf7[12],description:_0xadf7[13]},{id:5,name:_0xadf7[14],description:_0xadf7[15]}];exports[_0xadf7[16]]= function(){return db[_0xadf7[24]][_0xadf7[23]](tags,{ignoreDuplicates:true,individualHooks:true})[_0xadf7[22]](function(){logger[_0xadf7[21]](_0xadf7[20])})[_0xadf7[19]](function(_0x8874x5){logger[_0xadf7[18]](_0xadf7[17])})};exports[_0xadf7[25]]= function(){return _[_0xadf7[27]](tags,_0xadf7[26])}
\ No newline at end of file
index e9d9d04..cb9398c 100644 (file)
@@ -1 +1 @@
-var _0x93ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x44\x65\x6D\x6F\x20\x54\x65\x61\x6D","\x64\x65\x6D\x6F\x20\x74\x65\x61\x6D\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x65\x61\x6D\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x65\x61\x6D\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x65\x61\x6D"];_0x93ca[0];var db=require(_0x93ca[2])[_0x93ca[1]];var logger=require(_0x93ca[4])(_0x93ca[3]);var teams=[{id:1,name:_0x93ca[5],description:_0x93ca[6]}];exports[_0x93ca[7]]= function(){return db[_0x93ca[17]][_0x93ca[16]](teams,{ignoreDuplicates:true,individualHooks:true})[_0x93ca[13]](function(_0xb572x5){for(var _0xb572x6=0;_0xb572x6< _0xb572x5[_0x93ca[14]];_0xb572x6+= 1){_0xb572x5[_0xb572x6][_0x93ca[15]]([2,3])}})[_0x93ca[13]](function(){logger[_0x93ca[12]](_0x93ca[11])})[_0x93ca[10]](function(_0xb572x4){logger[_0x93ca[9]](_0x93ca[8])})}
\ No newline at end of file
+var _0xe5dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x44\x65\x6D\x6F\x20\x54\x65\x61\x6D","\x64\x65\x6D\x6F\x20\x74\x65\x61\x6D\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x65\x61\x6D\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x65\x61\x6D\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x65\x61\x6D"];_0xe5dc[0];var db=require(_0xe5dc[2])[_0xe5dc[1]];var logger=require(_0xe5dc[4])(_0xe5dc[3]);var teams=[{id:1,name:_0xe5dc[5],description:_0xe5dc[6]}];exports[_0xe5dc[7]]= function(){return db[_0xe5dc[17]][_0xe5dc[16]](teams,{ignoreDuplicates:true,individualHooks:true})[_0xe5dc[13]](function(_0xedb9x5){for(var _0xedb9x6=0;_0xedb9x6< _0xedb9x5[_0xe5dc[14]];_0xedb9x6+= 1){_0xedb9x5[_0xedb9x6][_0xe5dc[15]]([2,3])}})[_0xe5dc[13]](function(){logger[_0xe5dc[12]](_0xe5dc[11])})[_0xe5dc[10]](function(_0xedb9x4){logger[_0xe5dc[9]](_0xe5dc[8])})}
\ No newline at end of file
index ca51598..8e86fab 100644 (file)
@@ -1 +1 @@
-var _0xca38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5F","\x61\x6E\x73\x77\x65\x72\x65\x64","\x41\x6E\x73\x77\x65\x72\x65\x64","\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x44\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x73\x74\x61\x63\x6B\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x63\x61\x6C\x6C\x73","\x43\x61\x6C\x6C\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x70\x68\x6F\x6E\x65\x2D\x64\x6F\x74\x73","\x61\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x61\x63\x63\x6F\x75\x6E\x74\x2D\x6D\x75\x6C\x74\x69\x70\x6C\x65","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x73\x69\x74\x65\x6D\x61\x70","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x6D\x69\x63\x72\x6F\x70\x68\x6F\x6E\x65","\x71\x75\x65\x75\x65\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x51\x75\x65\x75\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x76\x72\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x49\x56\x52\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x76\x6F\x69\x63\x65","\x56\x6F\x69\x63\x65","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x70\x68\x6F\x6E\x65\x2D\x6C\x6F\x67","\x62\x75\x6C\x6C","\x4D\x6F\x74\x69\x6F\x6E\x20\x42\x75\x6C\x6C","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x66\x69\x72\x65","\x63\x75\x73\x74\x6F\x6D","\x6D\x6F\x74\x69\x6F\x6E","\x43\x75\x73\x74\x6F\x6D","\x4D\x6F\x74\x69\x6F\x6E","\x20\x52\x65\x70\x6F\x72\x74\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20","\x69\x63\x6F\x6E\x2D\x6C\x61\x70\x74\x6F\x70\x2D\x63\x68\x72\x6F\x6D\x65\x62\x6F\x6F\x6B","\x69\x63\x6F\x6E\x2D\x63\x6C\x6F\x75\x64"];_0xca38[0];var getQueuesChildren=function(_0xfaa8x2){_0xfaa8x2+= _0xca38[1];return [{id:_0xfaa8x2+ _0xca38[2],text:_0xca38[3]},{id:_0xfaa8x2+ _0xca38[4],text:_0xca38[5]},{id:_0xfaa8x2+ _0xca38[6],text:_0xca38[7]}]};var getVoiceChildren=function(_0xfaa8x2){_0xfaa8x2+= _0xca38[1];return [{id:_0xfaa8x2+ _0xca38[8],text:_0xca38[9],icon:_0xca38[10],children:getQueuesChildren(_0xfaa8x2+ _0xca38[8])},{id:_0xfaa8x2+ _0xca38[11],text:_0xca38[12],icon:_0xca38[13]},{id:_0xfaa8x2+ _0xca38[14],text:_0xca38[15],icon:_0xca38[16]},{id:_0xfaa8x2+ _0xca38[17],text:_0xca38[18],icon:_0xca38[19]},{id:_0xfaa8x2+ _0xca38[20],text:_0xca38[21],icon:_0xca38[22]}]};var getBullChildren=function(_0xfaa8x2){_0xfaa8x2+= _0xca38[1];return [{id:_0xfaa8x2+ _0xca38[23],text:_0xca38[24],icon:_0xca38[10]},{id:_0xfaa8x2+ _0xca38[25],text:_0xca38[26],icon:_0xca38[19]}]};var getMotionChildren=function(_0xfaa8x2){_0xfaa8x2+= _0xca38[1];return [{id:_0xfaa8x2+ _0xca38[27],text:_0xca38[28],icon:_0xca38[29],children:getVoiceChildren(_0xfaa8x2+ _0xca38[27])},{id:_0xfaa8x2+ _0xca38[30],text:_0xca38[31],icon:_0xca38[32],children:getBullChildren(_0xfaa8x2+ _0xca38[30])},{id:_0xfaa8x2+ _0xca38[14],text:_0xca38[15],icon:_0xca38[16]}]};var getTree=function(_0xfaa8x7){return [{id:_0xfaa8x7?_0xca38[33]:_0xca38[34],text:(_0xfaa8x7?_0xca38[35]:_0xca38[36])+ _0xca38[37],icon:_0xca38[38]+ (_0xfaa8x7?_0xca38[39]:_0xca38[40]),state:{opened:true,selected:true},children:getMotionChildren(_0xfaa8x7?_0xca38[33]:_0xca38[34])}]};exports[_0xca38[34]]= getTree(false);exports[_0xca38[33]]= getTree(true)
\ No newline at end of file
+var _0x8531=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5F","\x61\x6E\x73\x77\x65\x72\x65\x64","\x41\x6E\x73\x77\x65\x72\x65\x64","\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x44\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x73\x74\x61\x63\x6B\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x63\x61\x6C\x6C\x73","\x43\x61\x6C\x6C\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x70\x68\x6F\x6E\x65\x2D\x64\x6F\x74\x73","\x61\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x61\x63\x63\x6F\x75\x6E\x74\x2D\x6D\x75\x6C\x74\x69\x70\x6C\x65","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x73\x69\x74\x65\x6D\x61\x70","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x6D\x69\x63\x72\x6F\x70\x68\x6F\x6E\x65","\x71\x75\x65\x75\x65\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x51\x75\x65\x75\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x76\x72\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x49\x56\x52\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x76\x6F\x69\x63\x65","\x56\x6F\x69\x63\x65","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x70\x68\x6F\x6E\x65\x2D\x6C\x6F\x67","\x62\x75\x6C\x6C","\x4D\x6F\x74\x69\x6F\x6E\x20\x42\x75\x6C\x6C","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x66\x69\x72\x65","\x63\x75\x73\x74\x6F\x6D","\x6D\x6F\x74\x69\x6F\x6E","\x43\x75\x73\x74\x6F\x6D","\x4D\x6F\x74\x69\x6F\x6E","\x20\x52\x65\x70\x6F\x72\x74\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20","\x69\x63\x6F\x6E\x2D\x6C\x61\x70\x74\x6F\x70\x2D\x63\x68\x72\x6F\x6D\x65\x62\x6F\x6F\x6B","\x69\x63\x6F\x6E\x2D\x63\x6C\x6F\x75\x64"];_0x8531[0];var getQueuesChildren=function(_0xd5eex2){_0xd5eex2+= _0x8531[1];return [{id:_0xd5eex2+ _0x8531[2],text:_0x8531[3]},{id:_0xd5eex2+ _0x8531[4],text:_0x8531[5]},{id:_0xd5eex2+ _0x8531[6],text:_0x8531[7]}]};var getVoiceChildren=function(_0xd5eex2){_0xd5eex2+= _0x8531[1];return [{id:_0xd5eex2+ _0x8531[8],text:_0x8531[9],icon:_0x8531[10],children:getQueuesChildren(_0xd5eex2+ _0x8531[8])},{id:_0xd5eex2+ _0x8531[11],text:_0x8531[12],icon:_0x8531[13]},{id:_0xd5eex2+ _0x8531[14],text:_0x8531[15],icon:_0x8531[16]},{id:_0xd5eex2+ _0x8531[17],text:_0x8531[18],icon:_0x8531[19]},{id:_0xd5eex2+ _0x8531[20],text:_0x8531[21],icon:_0x8531[22]}]};var getBullChildren=function(_0xd5eex2){_0xd5eex2+= _0x8531[1];return [{id:_0xd5eex2+ _0x8531[23],text:_0x8531[24],icon:_0x8531[10]},{id:_0xd5eex2+ _0x8531[25],text:_0x8531[26],icon:_0x8531[19]}]};var getMotionChildren=function(_0xd5eex2){_0xd5eex2+= _0x8531[1];return [{id:_0xd5eex2+ _0x8531[27],text:_0x8531[28],icon:_0x8531[29],children:getVoiceChildren(_0xd5eex2+ _0x8531[27])},{id:_0xd5eex2+ _0x8531[30],text:_0x8531[31],icon:_0x8531[32],children:getBullChildren(_0xd5eex2+ _0x8531[30])},{id:_0xd5eex2+ _0x8531[14],text:_0x8531[15],icon:_0x8531[16]}]};var getTree=function(_0xd5eex7){return [{id:_0xd5eex7?_0x8531[33]:_0x8531[34],text:(_0xd5eex7?_0x8531[35]:_0x8531[36])+ _0x8531[37],icon:_0x8531[38]+ (_0xd5eex7?_0x8531[39]:_0x8531[40]),state:{opened:true,selected:true},children:getMotionChildren(_0xd5eex7?_0x8531[33]:_0x8531[34])}]};exports[_0x8531[34]]= getTree(false);exports[_0x8531[33]]= getTree(true)
\ No newline at end of file
index b59234d..96931b6 100644 (file)
@@ -1 +1 @@
-var _0x8042=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x64\x65\x6D\x6F","\x35\x35\x78\x63\x61\x6C\x6C\x79\x35\x35","\x74\x72\x75\x6E\x6B\x20\x64\x65\x6D\x6F\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x72\x75\x6E\x6B\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x72\x75\x6E\x6B\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x72\x75\x6E\x6B"];_0x8042[0];var db=require(_0x8042[2])[_0x8042[1]];var logger=require(_0x8042[4])(_0x8042[3]);var trunks=[{id:1,name:_0x8042[5],secret:_0x8042[6],defaultuser:_0x8042[5],description:_0x8042[7]}];exports[_0x8042[8]]= function(){return db[_0x8042[16]][_0x8042[15]](trunks,{ignoreDuplicates:true,individualHooks:true})[_0x8042[14]](function(){logger[_0x8042[13]](_0x8042[12])})[_0x8042[11]](function(_0x40f6x4){logger[_0x8042[10]](_0x8042[9])})}
\ No newline at end of file
+var _0x1b92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x64\x65\x6D\x6F","\x35\x35\x78\x63\x61\x6C\x6C\x79\x35\x35","\x74\x72\x75\x6E\x6B\x20\x64\x65\x6D\x6F\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x72\x75\x6E\x6B\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x72\x75\x6E\x6B\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x72\x75\x6E\x6B"];_0x1b92[0];var db=require(_0x1b92[2])[_0x1b92[1]];var logger=require(_0x1b92[4])(_0x1b92[3]);var trunks=[{id:1,name:_0x1b92[5],secret:_0x1b92[6],defaultuser:_0x1b92[5],description:_0x1b92[7]}];exports[_0x1b92[8]]= function(){return db[_0x1b92[16]][_0x1b92[15]](trunks,{ignoreDuplicates:true,individualHooks:true})[_0x1b92[14]](function(){logger[_0x1b92[13]](_0x1b92[12])})[_0x1b92[11]](function(_0xd331x4){logger[_0x1b92[10]](_0x1b92[9])})}
\ No newline at end of file
index 94c00af..a040f20 100644 (file)
@@ -1 +1 @@
-var _0xe00d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x61\x64\x6D\x69\x6E","\x70\x61\x73\x73\x77\x6F\x72\x64","\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x6F\x72","\x61\x64\x6D\x69\x6E\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x75\x73\x65\x72\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x61\x67\x65\x6E\x74","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x73\x68\x75\x74\x74\x6C\x65\x35\x35","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x61\x67\x65\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x55\x73\x65\x72\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72"];_0xe00d[0];var db=require(_0xe00d[2])[_0xe00d[1]];var logger=require(_0xe00d[4])(_0xe00d[3]);var users=[{id:1,role:_0xe00d[5],name:_0xe00d[5],password:_0xe00d[6],fullname:_0xe00d[7],email:_0xe00d[8],internal:1000,description:_0xe00d[9]},{id:2,role:_0xe00d[10],name:_0xe00d[11],email:_0xe00d[12],password:_0xe00d[13],fullname:_0xe00d[14],internal:1001,description:_0xe00d[15]},{id:3,role:_0xe00d[10],name:_0xe00d[16],email:_0xe00d[17],password:_0xe00d[13],fullname:_0xe00d[18],internal:1002,description:_0xe00d[15]}];exports[_0xe00d[19]]= function(){return db[_0xe00d[27]][_0xe00d[26]](users,{ignoreDuplicates:true,individualHooks:true})[_0xe00d[25]](function(){logger[_0xe00d[24]](_0xe00d[23])})[_0xe00d[22]](function(_0x2d57x4){logger[_0xe00d[21]](_0xe00d[20])})}
\ No newline at end of file
+var _0xf0d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x61\x64\x6D\x69\x6E","\x70\x61\x73\x73\x77\x6F\x72\x64","\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x6F\x72","\x61\x64\x6D\x69\x6E\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x75\x73\x65\x72\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x61\x67\x65\x6E\x74","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x73\x68\x75\x74\x74\x6C\x65\x35\x35","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x61\x67\x65\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x55\x73\x65\x72\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72"];_0xf0d0[0];var db=require(_0xf0d0[2])[_0xf0d0[1]];var logger=require(_0xf0d0[4])(_0xf0d0[3]);var users=[{id:1,role:_0xf0d0[5],name:_0xf0d0[5],password:_0xf0d0[6],fullname:_0xf0d0[7],email:_0xf0d0[8],internal:1000,description:_0xf0d0[9]},{id:2,role:_0xf0d0[10],name:_0xf0d0[11],email:_0xf0d0[12],password:_0xf0d0[13],fullname:_0xf0d0[14],internal:1001,description:_0xf0d0[15]},{id:3,role:_0xf0d0[10],name:_0xf0d0[16],email:_0xf0d0[17],password:_0xf0d0[13],fullname:_0xf0d0[18],internal:1002,description:_0xf0d0[15]}];exports[_0xf0d0[19]]= function(){return db[_0xf0d0[27]][_0xf0d0[26]](users,{ignoreDuplicates:true,individualHooks:true})[_0xf0d0[25]](function(){logger[_0xf0d0[24]](_0xf0d0[23])})[_0xf0d0[22]](function(_0x22f0x4){logger[_0xf0d0[21]](_0xf0d0[20])})}
\ No newline at end of file
index 7420951..89f1b1f 100644 (file)
@@ -1 +1 @@
-var _0x714e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x43\x48\x4F\x49\x43\x45","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x6D\x65\x6E\x75\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4F\x52\x44\x45\x52\x4E\x55\x4D","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x6F\x72\x64\x65\x72\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x44\x42\x52\x45\x53\x55\x4C\x54","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x64\x62\x20\x71\x75\x65\x72\x79\x20\x72\x65\x73\x75\x6C\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x52\x41\x54\x45","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x72\x61\x74\x65\x20\x63\x61\x6C\x6C\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x61\x72\x69\x61\x62\x6C\x65"];_0x714e[0];var db=require(_0x714e[2])[_0x714e[1]];var logger=require(_0x714e[4])(_0x714e[3]);var variables=[{id:1,name:_0x714e[5],description:_0x714e[6]},{id:2,name:_0x714e[7],description:_0x714e[8]},{id:3,name:_0x714e[9],description:_0x714e[10]},{id:4,name:_0x714e[11],description:_0x714e[12]}];exports[_0x714e[13]]= function(){return db[_0x714e[21]][_0x714e[20]](variables,{ignoreDuplicates:true,individualHooks:true})[_0x714e[19]](function(){logger[_0x714e[18]](_0x714e[17])})[_0x714e[16]](function(_0xde5dx4){logger[_0x714e[15]](_0x714e[14])})}
\ No newline at end of file
+var _0xf016=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x43\x48\x4F\x49\x43\x45","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x6D\x65\x6E\x75\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4F\x52\x44\x45\x52\x4E\x55\x4D","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x6F\x72\x64\x65\x72\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x44\x42\x52\x45\x53\x55\x4C\x54","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x64\x62\x20\x71\x75\x65\x72\x79\x20\x72\x65\x73\x75\x6C\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x52\x41\x54\x45","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x72\x61\x74\x65\x20\x63\x61\x6C\x6C\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x61\x72\x69\x61\x62\x6C\x65"];_0xf016[0];var db=require(_0xf016[2])[_0xf016[1]];var logger=require(_0xf016[4])(_0xf016[3]);var variables=[{id:1,name:_0xf016[5],description:_0xf016[6]},{id:2,name:_0xf016[7],description:_0xf016[8]},{id:3,name:_0xf016[9],description:_0xf016[10]},{id:4,name:_0xf016[11],description:_0xf016[12]}];exports[_0xf016[13]]= function(){return db[_0xf016[21]][_0xf016[20]](variables,{ignoreDuplicates:true,individualHooks:true})[_0xf016[19]](function(){logger[_0xf016[18]](_0xf016[17])})[_0xf016[16]](function(_0x90f6x4){logger[_0xf016[15]](_0xf016[14])})}
\ No newline at end of file
index f364311..d619c9f 100644 (file)
@@ -1 +1 @@
-var _0x34e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x64\x65\x66\x61\x75\x6C\x74\x20\x65\x6E\x74\x72\x79\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6E\x74\x65\x78\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6E\x74\x65\x78\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74"];_0x34e5[0];var db=require(_0x34e5[2])[_0x34e5[1]];var logger=require(_0x34e5[4])(_0x34e5[3]);var voiceContexts=[{id:1,name:_0x34e5[5],description:_0x34e5[6],defaultEntry:true},{id:2,name:_0x34e5[7],description:_0x34e5[6],defaultEntry:true},{id:3,name:_0x34e5[8],description:_0x34e5[6],defaultEntry:true},{id:4,name:_0x34e5[9],description:_0x34e5[6],defaultEntry:true},{id:5,name:_0x34e5[10],description:_0x34e5[6],defaultEntry:true}];exports[_0x34e5[11]]= function(){return db[_0x34e5[19]][_0x34e5[18]](voiceContexts,{ignoreDuplicates:true,individualHooks:true})[_0x34e5[17]](function(){logger[_0x34e5[16]](_0x34e5[15])})[_0x34e5[14]](function(_0xf6a2x4){logger[_0x34e5[13]](_0x34e5[12])})}
\ No newline at end of file
+var _0xe62b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x64\x65\x66\x61\x75\x6C\x74\x20\x65\x6E\x74\x72\x79\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6E\x74\x65\x78\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6E\x74\x65\x78\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74"];_0xe62b[0];var db=require(_0xe62b[2])[_0xe62b[1]];var logger=require(_0xe62b[4])(_0xe62b[3]);var voiceContexts=[{id:1,name:_0xe62b[5],description:_0xe62b[6],defaultEntry:true},{id:2,name:_0xe62b[7],description:_0xe62b[6],defaultEntry:true},{id:3,name:_0xe62b[8],description:_0xe62b[6],defaultEntry:true},{id:4,name:_0xe62b[9],description:_0xe62b[6],defaultEntry:true},{id:5,name:_0xe62b[10],description:_0xe62b[6],defaultEntry:true}];exports[_0xe62b[11]]= function(){return db[_0xe62b[19]][_0xe62b[18]](voiceContexts,{ignoreDuplicates:true,individualHooks:true})[_0xe62b[17]](function(){logger[_0xe62b[16]](_0xe62b[15])})[_0xe62b[14]](function(_0x2b9cx4){logger[_0xe62b[13]](_0xe62b[12])})}
\ No newline at end of file
index 941b915..a12e2f8 100644 (file)
@@ -1 +1 @@
-var _0x9738=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x41\x6E\x73\x77\x65\x72","\x50\x6C\x61\x79\x62\x61\x63\x6B","\x64\x65\x6D\x6F\x2D\x65\x63\x68\x6F\x74\x65\x73\x74","\x45\x63\x68\x6F","\x64\x65\x6D\x6F\x2D\x65\x63\x68\x6F\x64\x6F\x6E\x65","\x48\x61\x6E\x67\x75\x70","\x51\x75\x65\x75\x65","\x53\x75\x70\x70\x6F\x72\x74\x2C\x78\x58\x2C\x2C\x2C\x33\x30\x30\x2C\x2C\x2C\x2C\x2C","\x71\x75\x65\x75\x65","\x53\x61\x6C\x65\x73\x2C\x78\x58\x2C\x2C\x2C\x33\x30\x30\x2C\x2C\x2C\x2C\x2C","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x64\x69\x61\x6C\x65\x72","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x24\x7B\x58\x4D\x44\x2D\x43\x41\x4C\x4C\x45\x52\x49\x44\x7D","\x45\x78\x65\x63\x69\x66","\x24\x5B\x22\x24\x7B\x58\x4D\x44\x2D\x41\x47\x49\x7D\x22\x20\x21\x3D\x20\x22\x4E\x4F\x4E\x45\x22\x20\x5D\x3F\x41\x47\x49\x28\x24\x7B\x58\x4D\x44\x2D\x41\x47\x49\x7D\x29","\x24\x5B\x22\x24\x7B\x58\x4D\x44\x2D\x51\x55\x45\x55\x45\x7D\x22\x20\x21\x3D\x20\x22\x4E\x4F\x4E\x45\x22\x20\x5D\x3F\x51\x55\x45\x55\x45\x28\x24\x7B\x58\x4D\x44\x2D\x51\x55\x45\x55\x45\x7D\x29","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x6D\x6F\x2D\x63\x6F\x6E\x67\x72\x61\x74\x73","\x63\x75\x73\x74\x6F\x6D","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x36\x30\x30","\x64\x65\x6D\x6F\x20\x65\x63\x68\x6F\x20\x74\x65\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x36\x30\x30\x30","\x66\x6F\x72\x77\x61\x72\x64\x20\x74\x6F\x20\x53\x75\x70\x70\x6F\x72\x74\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x36\x30\x30\x31","\x66\x6F\x72\x77\x61\x72\x64\x20\x74\x6F\x20\x53\x61\x6C\x65\x73\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x73\x79\x73\x74\x65\x6D","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72","\x64\x69\x61\x6C\x65\x72\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5F\x2E","\x64\x65\x6D\x6F\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x69\x6E\x62\x6F\x75\x6E\x64","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x5F\x58\x2E","\x63\x61\x74\x63\x68\x20\x61\x6C\x6C\x20\x69\x6E\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x68","\x63\x61\x74\x63\x68\x20\x68\x61\x6E\x67\x75\x70\x20\x65\x76\x65\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x6F\x69\x63\x65\x20\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x6F\x69\x63\x65\x20\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x65\x78\x74\x65\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64","\x61\x70\x70\x64\x61\x74\x61","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64\x3D","\x69\x64","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0x9738[0];var _=require(_0x9738[1]);var db=require(_0x9738[3])[_0x9738[2]];var logger=require(_0x9738[5])(_0x9738[4]);var applications={"\x36\x30\x30":[{app:_0x9738[6],appdata:_0x9738[7]},{app:_0x9738[8]},{app:_0x9738[9],appdata:_0x9738[10],isApp:true},{app:_0x9738[11],isApp:true},{app:_0x9738[9],appdata:_0x9738[12],isApp:true},{app:_0x9738[13]}],"\x36\x30\x30\x30":[{app:_0x9738[6],appdata:_0x9738[7]},{app:_0x9738[8]},{app:_0x9738[14],appdata:_0x9738[15],appType:_0x9738[16],isApp:true},{app:_0x9738[13]}],"\x36\x30\x30\x31":[{app:_0x9738[6],appdata:_0x9738[7]},{app:_0x9738[8]},{app:_0x9738[14],appdata:_0x9738[17],appType:_0x9738[16],isApp:true},{app:_0x9738[13]}],"\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72":[{app:_0x9738[6],appdata:_0x9738[18]},{app:_0x9738[6],appdata:_0x9738[19]},{app:_0x9738[20],appdata:_0x9738[21]},{app:_0x9738[20],appdata:_0x9738[22]},{app:_0x9738[13]}],"\x5F\x2E":[{app:_0x9738[6],appdata:_0x9738[23]},{app:_0x9738[6],outboundrouteid:true},{app:_0x9738[9],appdata:_0x9738[24],appType:_0x9738[25],isApp:true},{app:_0x9738[13]}],"\x5F\x58\x2E":[{app:_0x9738[6],appdata:_0x9738[26]},{app:_0x9738[8]},{app:_0x9738[9],appdata:_0x9738[24],isApp:true},{app:_0x9738[13]}],"\x68":[{app:_0x9738[13]}]};var voiceExtensions=[{type:_0x9738[27],context:_0x9738[28],exten:_0x9738[29],description:_0x9738[30]},{type:_0x9738[27],context:_0x9738[28],exten:_0x9738[31],description:_0x9738[32]},{type:_0x9738[27],context:_0x9738[28],exten:_0x9738[33],description:_0x9738[34]},{type:_0x9738[35],context:_0x9738[28],exten:_0x9738[36],description:_0x9738[37]},{type:_0x9738[38],context:_0x9738[28],exten:_0x9738[39],description:_0x9738[40]},{type:_0x9738[41],context:_0x9738[42],exten:_0x9738[43],description:_0x9738[44]},{type:_0x9738[35],context:_0x9738[28],exten:_0x9738[45],description:_0x9738[46]}];exports[_0x9738[47]]= function(){return db[_0x9738[65]][_0x9738[66]](voiceExtensions,{ignoreDuplicates:true,individualHooks:true})[_0x9738[53]](function(_0x303dx7){for(var _0x303dx8=0;_0x303dx8< _0x303dx7[_0x9738[54]];_0x303dx8+= 1){if(applications[_0x303dx7[_0x303dx8][_0x9738[55]]]){for(var _0x303dx9=0;_0x303dx9< applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x9738[54]];_0x303dx9+= 1){if(applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x303dx9][_0x9738[56]]){applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x303dx9][_0x9738[57]]= _0x9738[58]+ _0x303dx7[_0x303dx8][_0x9738[59]];delete applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x303dx9][_0x9738[56]]};applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x303dx9]= _[_0x9738[64]](applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x303dx9],{isApp:false,appType:_0x9738[25],type:_0x303dx7[_0x303dx8][_0x9738[60]],context:_0x303dx7[_0x303dx8][_0x9738[61]],exten:_0x303dx7[_0x303dx8][_0x9738[55]],priority:parseInt(_0x303dx7[_0x303dx8][_0x9738[62]],10)+ 1+ _0x303dx9,description:_0x303dx7[_0x303dx8][_0x9738[63]],VoiceExtensionId:_0x303dx7[_0x303dx8][_0x9738[59]]});db[_0x9738[65]][_0x9738[47]](applications[_0x303dx7[_0x303dx8][_0x9738[55]]][_0x303dx9])}}}})[_0x9738[53]](function(){logger[_0x9738[52]](_0x9738[51])})[_0x9738[50]](function(_0x303dx6){logger[_0x9738[49]](_0x9738[48])})}
\ No newline at end of file
+var _0x37f8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x41\x6E\x73\x77\x65\x72","\x50\x6C\x61\x79\x62\x61\x63\x6B","\x64\x65\x6D\x6F\x2D\x65\x63\x68\x6F\x74\x65\x73\x74","\x45\x63\x68\x6F","\x64\x65\x6D\x6F\x2D\x65\x63\x68\x6F\x64\x6F\x6E\x65","\x48\x61\x6E\x67\x75\x70","\x51\x75\x65\x75\x65","\x53\x75\x70\x70\x6F\x72\x74\x2C\x78\x58\x2C\x2C\x2C\x33\x30\x30\x2C\x2C\x2C\x2C\x2C","\x71\x75\x65\x75\x65","\x53\x61\x6C\x65\x73\x2C\x78\x58\x2C\x2C\x2C\x33\x30\x30\x2C\x2C\x2C\x2C\x2C","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x64\x69\x61\x6C\x65\x72","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x24\x7B\x58\x4D\x44\x2D\x43\x41\x4C\x4C\x45\x52\x49\x44\x7D","\x45\x78\x65\x63\x69\x66","\x24\x5B\x22\x24\x7B\x58\x4D\x44\x2D\x41\x47\x49\x7D\x22\x20\x21\x3D\x20\x22\x4E\x4F\x4E\x45\x22\x20\x5D\x3F\x41\x47\x49\x28\x24\x7B\x58\x4D\x44\x2D\x41\x47\x49\x7D\x29","\x24\x5B\x22\x24\x7B\x58\x4D\x44\x2D\x51\x55\x45\x55\x45\x7D\x22\x20\x21\x3D\x20\x22\x4E\x4F\x4E\x45\x22\x20\x5D\x3F\x51\x55\x45\x55\x45\x28\x24\x7B\x58\x4D\x44\x2D\x51\x55\x45\x55\x45\x7D\x29","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x6D\x6F\x2D\x63\x6F\x6E\x67\x72\x61\x74\x73","\x63\x75\x73\x74\x6F\x6D","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x36\x30\x30","\x64\x65\x6D\x6F\x20\x65\x63\x68\x6F\x20\x74\x65\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x36\x30\x30\x30","\x66\x6F\x72\x77\x61\x72\x64\x20\x74\x6F\x20\x53\x75\x70\x70\x6F\x72\x74\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x36\x30\x30\x31","\x66\x6F\x72\x77\x61\x72\x64\x20\x74\x6F\x20\x53\x61\x6C\x65\x73\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x73\x79\x73\x74\x65\x6D","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72","\x64\x69\x61\x6C\x65\x72\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5F\x2E","\x64\x65\x6D\x6F\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x69\x6E\x62\x6F\x75\x6E\x64","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x5F\x58\x2E","\x63\x61\x74\x63\x68\x20\x61\x6C\x6C\x20\x69\x6E\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x68","\x63\x61\x74\x63\x68\x20\x68\x61\x6E\x67\x75\x70\x20\x65\x76\x65\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x6F\x69\x63\x65\x20\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x6F\x69\x63\x65\x20\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x65\x78\x74\x65\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64","\x61\x70\x70\x64\x61\x74\x61","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64\x3D","\x69\x64","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0x37f8[0];var _=require(_0x37f8[1]);var db=require(_0x37f8[3])[_0x37f8[2]];var logger=require(_0x37f8[5])(_0x37f8[4]);var applications={"\x36\x30\x30":[{app:_0x37f8[6],appdata:_0x37f8[7]},{app:_0x37f8[8]},{app:_0x37f8[9],appdata:_0x37f8[10],isApp:true},{app:_0x37f8[11],isApp:true},{app:_0x37f8[9],appdata:_0x37f8[12],isApp:true},{app:_0x37f8[13]}],"\x36\x30\x30\x30":[{app:_0x37f8[6],appdata:_0x37f8[7]},{app:_0x37f8[8]},{app:_0x37f8[14],appdata:_0x37f8[15],appType:_0x37f8[16],isApp:true},{app:_0x37f8[13]}],"\x36\x30\x30\x31":[{app:_0x37f8[6],appdata:_0x37f8[7]},{app:_0x37f8[8]},{app:_0x37f8[14],appdata:_0x37f8[17],appType:_0x37f8[16],isApp:true},{app:_0x37f8[13]}],"\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72":[{app:_0x37f8[6],appdata:_0x37f8[18]},{app:_0x37f8[6],appdata:_0x37f8[19]},{app:_0x37f8[20],appdata:_0x37f8[21]},{app:_0x37f8[20],appdata:_0x37f8[22]},{app:_0x37f8[13]}],"\x5F\x2E":[{app:_0x37f8[6],appdata:_0x37f8[23]},{app:_0x37f8[6],outboundrouteid:true},{app:_0x37f8[9],appdata:_0x37f8[24],appType:_0x37f8[25],isApp:true},{app:_0x37f8[13]}],"\x5F\x58\x2E":[{app:_0x37f8[6],appdata:_0x37f8[26]},{app:_0x37f8[8]},{app:_0x37f8[9],appdata:_0x37f8[24],isApp:true},{app:_0x37f8[13]}],"\x68":[{app:_0x37f8[13]}]};var voiceExtensions=[{type:_0x37f8[27],context:_0x37f8[28],exten:_0x37f8[29],description:_0x37f8[30]},{type:_0x37f8[27],context:_0x37f8[28],exten:_0x37f8[31],description:_0x37f8[32]},{type:_0x37f8[27],context:_0x37f8[28],exten:_0x37f8[33],description:_0x37f8[34]},{type:_0x37f8[35],context:_0x37f8[28],exten:_0x37f8[36],description:_0x37f8[37]},{type:_0x37f8[38],context:_0x37f8[28],exten:_0x37f8[39],description:_0x37f8[40]},{type:_0x37f8[41],context:_0x37f8[42],exten:_0x37f8[43],description:_0x37f8[44]},{type:_0x37f8[35],context:_0x37f8[28],exten:_0x37f8[45],description:_0x37f8[46]}];exports[_0x37f8[47]]= function(){return db[_0x37f8[65]][_0x37f8[66]](voiceExtensions,{ignoreDuplicates:true,individualHooks:true})[_0x37f8[53]](function(_0x2697x7){for(var _0x2697x8=0;_0x2697x8< _0x2697x7[_0x37f8[54]];_0x2697x8+= 1){if(applications[_0x2697x7[_0x2697x8][_0x37f8[55]]]){for(var _0x2697x9=0;_0x2697x9< applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x37f8[54]];_0x2697x9+= 1){if(applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x2697x9][_0x37f8[56]]){applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x2697x9][_0x37f8[57]]= _0x37f8[58]+ _0x2697x7[_0x2697x8][_0x37f8[59]];delete applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x2697x9][_0x37f8[56]]};applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x2697x9]= _[_0x37f8[64]](applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x2697x9],{isApp:false,appType:_0x37f8[25],type:_0x2697x7[_0x2697x8][_0x37f8[60]],context:_0x2697x7[_0x2697x8][_0x37f8[61]],exten:_0x2697x7[_0x2697x8][_0x37f8[55]],priority:parseInt(_0x2697x7[_0x2697x8][_0x37f8[62]],10)+ 1+ _0x2697x9,description:_0x2697x7[_0x2697x8][_0x37f8[63]],VoiceExtensionId:_0x2697x7[_0x2697x8][_0x37f8[59]]});db[_0x37f8[65]][_0x37f8[47]](applications[_0x2697x7[_0x2697x8][_0x37f8[55]]][_0x2697x9])}}}})[_0x37f8[53]](function(){logger[_0x37f8[52]](_0x37f8[51])})[_0x37f8[50]](function(_0x2697x6){logger[_0x37f8[49]](_0x37f8[48])})}
\ No newline at end of file
index 22d597e..1cd51fc 100644 (file)
@@ -1 +1 @@
-var _0xc7bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x2F\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68\x2F","\x66\x69\x6C\x65\x73","\x72\x61\x6E\x64\x6F\x6D","\x77\x61\x76","\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6E\x6F\x69\x63\x65","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68\x2F\x6E\x6F\x69\x63\x65\x2F","\x6E\x6F\x69\x63\x65\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x77\x61\x69\x74","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68\x2F\x77\x61\x69\x74\x2F","\x77\x61\x69\x74\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4D\x75\x73\x69\x63\x20\x6F\x6E\x20\x68\x6F\x6C\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4D\x75\x73\x69\x63\x20\x6F\x6E\x20\x68\x6F\x6C\x64\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64"];_0xc7bd[0];var db=require(_0xc7bd[2])[_0xc7bd[1]];var logger=require(_0xc7bd[4])(_0xc7bd[3]);var voiceMusicOnHold=[{id:1,name:_0xc7bd[5],directory:_0xc7bd[6],mode:_0xc7bd[7],sort:_0xc7bd[8],format:_0xc7bd[9],defaultEntry:true,description:_0xc7bd[10]},{id:2,name:_0xc7bd[11],directory:_0xc7bd[12],mode:_0xc7bd[7],sort:_0xc7bd[8],format:_0xc7bd[9],defaultEntry:true,description:_0xc7bd[13]},{id:3,name:_0xc7bd[14],directory:_0xc7bd[15],mode:_0xc7bd[7],sort:_0xc7bd[8],format:_0xc7bd[9],defaultEntry:true,description:_0xc7bd[16]}];exports[_0xc7bd[17]]= function(){return db[_0xc7bd[25]][_0xc7bd[24]](voiceMusicOnHold,{ignoreDuplicates:true,individualHooks:true})[_0xc7bd[23]](function(){logger[_0xc7bd[22]](_0xc7bd[21])})[_0xc7bd[20]](function(_0xc863x4){logger[_0xc7bd[19]](_0xc7bd[18])})}
\ No newline at end of file
+var _0xace7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x2F\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68\x2F","\x66\x69\x6C\x65\x73","\x72\x61\x6E\x64\x6F\x6D","\x77\x61\x76","\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6E\x6F\x69\x63\x65","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68\x2F\x6E\x6F\x69\x63\x65\x2F","\x6E\x6F\x69\x63\x65\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x77\x61\x69\x74","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68\x2F\x77\x61\x69\x74\x2F","\x77\x61\x69\x74\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4D\x75\x73\x69\x63\x20\x6F\x6E\x20\x68\x6F\x6C\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4D\x75\x73\x69\x63\x20\x6F\x6E\x20\x68\x6F\x6C\x64\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64"];_0xace7[0];var db=require(_0xace7[2])[_0xace7[1]];var logger=require(_0xace7[4])(_0xace7[3]);var voiceMusicOnHold=[{id:1,name:_0xace7[5],directory:_0xace7[6],mode:_0xace7[7],sort:_0xace7[8],format:_0xace7[9],defaultEntry:true,description:_0xace7[10]},{id:2,name:_0xace7[11],directory:_0xace7[12],mode:_0xace7[7],sort:_0xace7[8],format:_0xace7[9],defaultEntry:true,description:_0xace7[13]},{id:3,name:_0xace7[14],directory:_0xace7[15],mode:_0xace7[7],sort:_0xace7[8],format:_0xace7[9],defaultEntry:true,description:_0xace7[16]}];exports[_0xace7[17]]= function(){return db[_0xace7[25]][_0xace7[24]](voiceMusicOnHold,{ignoreDuplicates:true,individualHooks:true})[_0xace7[23]](function(){logger[_0xace7[22]](_0xace7[21])})[_0xace7[20]](function(_0x4e75x4){logger[_0xace7[19]](_0xace7[18])})}
\ No newline at end of file
index 2fde2ab..5606716 100644 (file)
@@ -1 +1 @@
-var _0x62e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64","\x53\x75\x70\x70\x6F\x72\x74","\x72\x69\x6E\x67\x61\x6C\x6C","\x77\x61\x69\x74","\x69\x6E\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x53\x61\x6C\x65\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x53\x75\x72\x76\x65\x79","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6E\x6F\x69\x63\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x54\x65\x6C\x65\x6D\x61\x72\x6B\x65\x74\x69\x6E\x67","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x6F\x69\x63\x65\x20\x51\x75\x65\x75\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x6F\x69\x63\x65\x20\x51\x75\x65\x75\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x64\x64\x54\x65\x61\x6D\x73","\x74\x79\x70\x65","\x69\x64","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65"];_0x62e6[0];var db=require(_0x62e6[2])[_0x62e6[1]];var logger=require(_0x62e6[4])(_0x62e6[3]);var voiceQueues=[{id:1,type:_0x62e6[5],name:_0x62e6[6],strategy:_0x62e6[7],musiconhold:_0x62e6[8],description:_0x62e6[9]},{id:2,type:_0x62e6[5],name:_0x62e6[10],strategy:_0x62e6[7],musiconhold:_0x62e6[8],description:_0x62e6[9]},{id:3,type:_0x62e6[11],name:_0x62e6[12],strategy:_0x62e6[13],TrunkId:1,IntervalId:1,musiconhold:_0x62e6[14],description:_0x62e6[15]},{id:4,type:_0x62e6[11],name:_0x62e6[16],strategy:_0x62e6[13],TrunkId:1,IntervalId:1,musiconhold:_0x62e6[14],description:_0x62e6[15]},{id:5,type:_0x62e6[11],name:_0x62e6[17],strategy:_0x62e6[13],TrunkId:1,IntervalId:1,musiconhold:_0x62e6[14],description:_0x62e6[15]}];exports[_0x62e6[18]]= function(){return db[_0x62e6[33]][_0x62e6[32]](voiceQueues,{ignoreDuplicates:true,individualHooks:true})[_0x62e6[24]](function(_0x915bx5){for(var _0x915bx6=0;_0x915bx6< _0x915bx5[_0x62e6[25]];_0x915bx6+= 1){_0x915bx5[_0x915bx6][_0x62e6[26]]([2,3],{ignoreDuplicates:true,individualHooks:true});_0x915bx5[_0x915bx6][_0x62e6[27]]([1],{ignoreDuplicates:true,individualHooks:true});if(_0x915bx5[_0x915bx6][_0x62e6[28]]=== _0x62e6[11]&& _0x915bx5[_0x915bx6][_0x62e6[29]]!== 5){_0x915bx5[_0x915bx6][_0x62e6[30]]([1],{ignoreDuplicates:true,individualHooks:true});_0x915bx5[_0x915bx6][_0x62e6[31]]([2],{ignoreDuplicates:true,individualHooks:true})};if(_0x915bx5[_0x915bx6][_0x62e6[29]]=== 5){_0x915bx5[_0x915bx6][_0x62e6[30]]([3],{ignoreDuplicates:true,individualHooks:true})}};return _0x915bx5})[_0x62e6[24]](function(){logger[_0x62e6[23]](_0x62e6[22])})[_0x62e6[21]](function(_0x915bx4){logger[_0x62e6[20]](_0x62e6[19])})}
\ No newline at end of file
+var _0x6b68=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64","\x53\x75\x70\x70\x6F\x72\x74","\x72\x69\x6E\x67\x61\x6C\x6C","\x77\x61\x69\x74","\x69\x6E\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x53\x61\x6C\x65\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x53\x75\x72\x76\x65\x79","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6E\x6F\x69\x63\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x54\x65\x6C\x65\x6D\x61\x72\x6B\x65\x74\x69\x6E\x67","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x6F\x69\x63\x65\x20\x51\x75\x65\x75\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x6F\x69\x63\x65\x20\x51\x75\x65\x75\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x64\x64\x54\x65\x61\x6D\x73","\x74\x79\x70\x65","\x69\x64","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65"];_0x6b68[0];var db=require(_0x6b68[2])[_0x6b68[1]];var logger=require(_0x6b68[4])(_0x6b68[3]);var voiceQueues=[{id:1,type:_0x6b68[5],name:_0x6b68[6],strategy:_0x6b68[7],musiconhold:_0x6b68[8],description:_0x6b68[9]},{id:2,type:_0x6b68[5],name:_0x6b68[10],strategy:_0x6b68[7],musiconhold:_0x6b68[8],description:_0x6b68[9]},{id:3,type:_0x6b68[11],name:_0x6b68[12],strategy:_0x6b68[13],TrunkId:1,IntervalId:1,musiconhold:_0x6b68[14],description:_0x6b68[15]},{id:4,type:_0x6b68[11],name:_0x6b68[16],strategy:_0x6b68[13],TrunkId:1,IntervalId:1,musiconhold:_0x6b68[14],description:_0x6b68[15]},{id:5,type:_0x6b68[11],name:_0x6b68[17],strategy:_0x6b68[13],TrunkId:1,IntervalId:1,musiconhold:_0x6b68[14],description:_0x6b68[15]}];exports[_0x6b68[18]]= function(){return db[_0x6b68[33]][_0x6b68[32]](voiceQueues,{ignoreDuplicates:true,individualHooks:true})[_0x6b68[24]](function(_0x3404x5){for(var _0x3404x6=0;_0x3404x6< _0x3404x5[_0x6b68[25]];_0x3404x6+= 1){_0x3404x5[_0x3404x6][_0x6b68[26]]([2,3],{ignoreDuplicates:true,individualHooks:true});_0x3404x5[_0x3404x6][_0x6b68[27]]([1],{ignoreDuplicates:true,individualHooks:true});if(_0x3404x5[_0x3404x6][_0x6b68[28]]=== _0x6b68[11]&& _0x3404x5[_0x3404x6][_0x6b68[29]]!== 5){_0x3404x5[_0x3404x6][_0x6b68[30]]([1],{ignoreDuplicates:true,individualHooks:true});_0x3404x5[_0x3404x6][_0x6b68[31]]([2],{ignoreDuplicates:true,individualHooks:true})};if(_0x3404x5[_0x3404x6][_0x6b68[29]]=== 5){_0x3404x5[_0x3404x6][_0x6b68[30]]([3],{ignoreDuplicates:true,individualHooks:true})}};return _0x3404x5})[_0x6b68[24]](function(){logger[_0x6b68[23]](_0x6b68[22])})[_0x6b68[21]](function(_0x3404x4){logger[_0x6b68[20]](_0x6b68[19])})}
\ No newline at end of file
index 6781fe7..c78e67d 100644 (file)
@@ -1 +1 @@
-var _0x630d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x25\x73\x25\x73","\x61\x67\x65\x6E\x74","\x66\x6F\x72\x6D\x61\x74","\x25\x73\x25\x73\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x66\x72\x69\x65\x6E\x64","\x75\x64\x70","\x77\x73","\x77\x73\x73","\x61\x6C\x6C","\x75\x6C\x61\x77","\x79\x65\x73","\x6E\x6F","\x2F\x65\x74\x63\x2F\x70\x6B\x69\x2F\x74\x6C\x73\x2F\x63\x65\x72\x74\x73\x2F\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x72\x74","\x2F\x65\x74\x63\x2F\x70\x6B\x69\x2F\x74\x6C\x73\x2F\x70\x72\x69\x76\x61\x74\x65\x2F\x6D\x6F\x74\x69\x6F\x6E\x2E\x6B\x65\x79","\x61\x63\x74\x70\x61\x73\x73","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x70\x75\x73\x68","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x61\x64\x64\x20\x75\x73\x65\x72","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72"];_0x630d[0];var util=require(_0x630d[1]);var db=require(_0x630d[3])[_0x630d[2]];var users=[];for(var i=1;i<= 200;i+= 1){users[_0x630d[21]]({name:util[_0x630d[6]](_0x630d[4],_0x630d[5],i),fullname:util[_0x630d[6]](_0x630d[4],_0x630d[5],i),email:util[_0x630d[6]](_0x630d[7],_0x630d[5],i),role:_0x630d[5],password:_0x630d[8],internal:4000+ i,type:_0x630d[9],transport:[_0x630d[10],_0x630d[11],_0x630d[12]],disallow:[_0x630d[13]],allow:[_0x630d[14]],defaultuser:util[_0x630d[6]](_0x630d[4],_0x630d[5],i),encryption:_0x630d[15],avpf:_0x630d[15],force_avp:_0x630d[15],icesupport:_0x630d[15],dtlsenable:_0x630d[15],dtlsverify:_0x630d[16],dtlscertfile:_0x630d[17],dtlsprivatekey:_0x630d[18],dtlssetup:_0x630d[19],callerid:util[_0x630d[6]](_0x630d[20],util[_0x630d[6]](_0x630d[4],_0x630d[5],i),4000+ i)})};db[_0x630d[27]][_0x630d[26]](users)[_0x630d[25]](function(){console[_0x630d[22]](_0x630d[24])})[_0x630d[23]](function(_0x23eax5){console[_0x630d[22]](_0x23eax5)})
\ No newline at end of file
+var _0x50e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x25\x73\x25\x73","\x61\x67\x65\x6E\x74","\x66\x6F\x72\x6D\x61\x74","\x25\x73\x25\x73\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x66\x72\x69\x65\x6E\x64","\x75\x64\x70","\x77\x73","\x77\x73\x73","\x61\x6C\x6C","\x75\x6C\x61\x77","\x79\x65\x73","\x6E\x6F","\x2F\x65\x74\x63\x2F\x70\x6B\x69\x2F\x74\x6C\x73\x2F\x63\x65\x72\x74\x73\x2F\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x72\x74","\x2F\x65\x74\x63\x2F\x70\x6B\x69\x2F\x74\x6C\x73\x2F\x70\x72\x69\x76\x61\x74\x65\x2F\x6D\x6F\x74\x69\x6F\x6E\x2E\x6B\x65\x79","\x61\x63\x74\x70\x61\x73\x73","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x70\x75\x73\x68","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x61\x64\x64\x20\x75\x73\x65\x72","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72"];_0x50e7[0];var util=require(_0x50e7[1]);var db=require(_0x50e7[3])[_0x50e7[2]];var users=[];for(var i=1;i<= 200;i+= 1){users[_0x50e7[21]]({name:util[_0x50e7[6]](_0x50e7[4],_0x50e7[5],i),fullname:util[_0x50e7[6]](_0x50e7[4],_0x50e7[5],i),email:util[_0x50e7[6]](_0x50e7[7],_0x50e7[5],i),role:_0x50e7[5],password:_0x50e7[8],internal:4000+ i,type:_0x50e7[9],transport:[_0x50e7[10],_0x50e7[11],_0x50e7[12]],disallow:[_0x50e7[13]],allow:[_0x50e7[14]],defaultuser:util[_0x50e7[6]](_0x50e7[4],_0x50e7[5],i),encryption:_0x50e7[15],avpf:_0x50e7[15],force_avp:_0x50e7[15],icesupport:_0x50e7[15],dtlsenable:_0x50e7[15],dtlsverify:_0x50e7[16],dtlscertfile:_0x50e7[17],dtlsprivatekey:_0x50e7[18],dtlssetup:_0x50e7[19],callerid:util[_0x50e7[6]](_0x50e7[20],util[_0x50e7[6]](_0x50e7[4],_0x50e7[5],i),4000+ i)})};db[_0x50e7[27]][_0x50e7[26]](users)[_0x50e7[25]](function(){console[_0x50e7[22]](_0x50e7[24])})[_0x50e7[23]](function(_0xed13x5){console[_0x50e7[22]](_0xed13x5)})
\ No newline at end of file
index 1b4bd46..becad39 100644 (file)
@@ -1 +1 @@
-var _0xfd3b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x74\x79\x70\x65","\x69\x76\x72","\x71\x75\x65\x72\x79","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x73\x65\x72\x3A\x25\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x74\x72\x75\x6E\x6B\x3A\x25\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x25\x73\x3A\x25\x73","\x74\x68\x65\x6E","\x76\x6F\x69\x63\x65\x3A\x69\x6E\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x3A\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x63\x6C\x75\x64\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x70\x75\x73\x68","\x54\x72\x75\x6E\x6B","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x61\x64\x6D\x69\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x75\x73\x65\x72","\x61\x6C\x6C","\x66\x69\x6E\x64","\x6C\x65\x61\x76\x65","\x6A\x6F\x69\x6E","\x64\x65\x66\x61\x75\x6C\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x64\x64\x72\x65\x73\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x72\x65\x71\x75\x65\x73\x74","\x3A","\x72\x65\x6D\x6F\x74\x65\x50\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x53\x6F\x63\x6B\x65\x74\x49\x4F\x20","\x6E\x73\x70","\x5B","\x5D","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x6F\x6E","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44"];_0xfd3b[0];var util=require(_0xfd3b[1]);var BPromise=require(_0xfd3b[2]);var db=require(_0xfd3b[4])[_0xfd3b[3]];var config=require(_0xfd3b[5]);var queryVoiceQueues={attributes:[_0xfd3b[6],_0xfd3b[7]],include:[{as:_0xfd3b[8],model:db[_0xfd3b[9]],attributes:[_0xfd3b[6],_0xfd3b[7],_0xfd3b[10]],raw:true,where:{role:_0xfd3b[11]},required:false}]};var queryTelephones={raw:true,attributes:[_0xfd3b[6],_0xfd3b[7]],where:{role:_0xfd3b[12]}};var queryTrunks={raw:true,attributes:[_0xfd3b[6],_0xfd3b[7]]};var queryAgents={raw:true,attributes:[_0xfd3b[6],_0xfd3b[7]],where:{role:_0xfd3b[11]}};var queryCampaigns={raw:true,attributes:[_0xfd3b[6],_0xfd3b[7],_0xfd3b[13]],where:{type:_0xfd3b[14]}};function joinOrLeave(_0x4067xb,_0x4067xc){if(_0x4067xb[_0xfd3b[16]][_0xfd3b[15]][_0xfd3b[6]]){db[_0xfd3b[9]][_0xfd3b[40]]({attributes:[_0xfd3b[6],_0xfd3b[7],_0xfd3b[10]],where:{id:_0x4067xb[_0xfd3b[16]][_0xfd3b[15]][_0xfd3b[6]]}})[_0xfd3b[26]](function(_0x4067x12){if(_0x4067x12){_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[22],_0x4067x12[_0xfd3b[7]]));var _0x4067x13=[];switch(_0x4067x12[_0xfd3b[10]]){case _0xfd3b[36]:_0x4067xb[_0x4067xc](_0xfd3b[27]);_0x4067xb[_0x4067xc](_0xfd3b[28]);if(queryVoiceQueues[_0xfd3b[30]](_0xfd3b[29])){delete queryVoiceQueues[_0xfd3b[29]]};_0x4067x13[_0xfd3b[33]](db[_0xfd3b[32]][_0xfd3b[31]](queryVoiceQueues));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[9]][_0xfd3b[31]](queryTelephones));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[34]][_0xfd3b[31]](queryTrunks));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[9]][_0xfd3b[31]](queryAgents));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[35]][_0xfd3b[31]](queryCampaigns));break;case _0xfd3b[38]:_0x4067xb[_0x4067xc](_0xfd3b[27]);_0x4067xb[_0x4067xc](_0xfd3b[28]);_0x4067x13[_0xfd3b[33]](_0x4067x12[_0xfd3b[37]](queryVoiceQueues));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[9]][_0xfd3b[31]](queryTelephones));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[34]][_0xfd3b[31]](queryTrunks));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[9]][_0xfd3b[31]](queryAgents));_0x4067x13[_0xfd3b[33]](db[_0xfd3b[35]][_0xfd3b[31]](queryCampaigns));break;case _0xfd3b[11]:_0x4067x13[_0xfd3b[33]](_0x4067x12[_0xfd3b[37]]({attributes:[_0xfd3b[6],_0xfd3b[7]]}))};return BPromise[_0xfd3b[39]](_0x4067x13)}})[_0xfd3b[26]](function(_0x4067xe){if(_0x4067xe&& _0x4067xe[_0xfd3b[19]]){for(var _0x4067xf=0;_0x4067xf< _0x4067xe[_0xfd3b[19]];_0x4067xf+= 1){for(var _0x4067x10=0;_0x4067x10< _0x4067xe[_0x4067xf][_0xfd3b[19]];_0x4067x10+= 1){switch(_0x4067xf){case 0:_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[20],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[7]]));if(_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[8]]){for(var _0x4067x11=0;_0x4067x11< _0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[8]][_0xfd3b[19]];_0x4067x11+= 1){_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[22],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[8]][_0x4067x11][_0xfd3b[7]]))}};break;case 1:_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[23],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[7]]));break;case 2:_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[24],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[7]]));break;case 3:_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[22],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[7]]));break;case 4:_0x4067xb[_0x4067xc](util[_0xfd3b[21]](_0xfd3b[25],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[13]],_0x4067xe[_0x4067xf][_0x4067x10][_0xfd3b[7]]));break}}}}})[_0xfd3b[18]](function(_0x4067xd){_0x4067xb[_0xfd3b[17]](_0x4067xd)})}}function onDisconnect(_0x4067xb){joinOrLeave(_0x4067xb,_0xfd3b[41])}function onConnect(_0x4067xb){joinOrLeave(_0x4067xb,_0xfd3b[42])}exports[_0xfd3b[43]]= function(_0x4067x16){_0x4067x16[_0xfd3b[58]](_0xfd3b[44],function(_0x4067xb){_0x4067xb[_0xfd3b[45]](0);_0x4067xb[_0xfd3b[46]]= _0x4067xb[_0xfd3b[48]][_0xfd3b[44]][_0xfd3b[47]]+ _0xfd3b[49]+ _0x4067xb[_0xfd3b[48]][_0xfd3b[44]][_0xfd3b[50]];_0x4067xb[_0xfd3b[51]]=  new Date();_0x4067xb[_0xfd3b[17]]= function(_0x4067x17){console[_0xfd3b[17]](_0xfd3b[52]+ _0x4067xb[_0xfd3b[53]][_0xfd3b[7]]+ _0xfd3b[54]+ _0x4067xb[_0xfd3b[46]]+ _0xfd3b[55],_0x4067x17)};_0x4067xb[_0xfd3b[58]](_0xfd3b[56],function(){onDisconnect(_0x4067xb);_0x4067xb[_0xfd3b[17]](_0xfd3b[57])});onConnect(_0x4067xb);_0x4067xb[_0xfd3b[17]](_0xfd3b[59])})}
\ No newline at end of file
+var _0xc957=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x74\x79\x70\x65","\x69\x76\x72","\x71\x75\x65\x72\x79","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x73\x65\x72\x3A\x25\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x74\x72\x75\x6E\x6B\x3A\x25\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x25\x73\x3A\x25\x73","\x74\x68\x65\x6E","\x76\x6F\x69\x63\x65\x3A\x69\x6E\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x3A\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x63\x6C\x75\x64\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x70\x75\x73\x68","\x54\x72\x75\x6E\x6B","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x61\x64\x6D\x69\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x75\x73\x65\x72","\x61\x6C\x6C","\x66\x69\x6E\x64","\x6C\x65\x61\x76\x65","\x6A\x6F\x69\x6E","\x64\x65\x66\x61\x75\x6C\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x64\x64\x72\x65\x73\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x72\x65\x71\x75\x65\x73\x74","\x3A","\x72\x65\x6D\x6F\x74\x65\x50\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x53\x6F\x63\x6B\x65\x74\x49\x4F\x20","\x6E\x73\x70","\x5B","\x5D","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x6F\x6E","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44"];_0xc957[0];var util=require(_0xc957[1]);var BPromise=require(_0xc957[2]);var db=require(_0xc957[4])[_0xc957[3]];var config=require(_0xc957[5]);var queryVoiceQueues={attributes:[_0xc957[6],_0xc957[7]],include:[{as:_0xc957[8],model:db[_0xc957[9]],attributes:[_0xc957[6],_0xc957[7],_0xc957[10]],raw:true,where:{role:_0xc957[11]},required:false}]};var queryTelephones={raw:true,attributes:[_0xc957[6],_0xc957[7]],where:{role:_0xc957[12]}};var queryTrunks={raw:true,attributes:[_0xc957[6],_0xc957[7]]};var queryAgents={raw:true,attributes:[_0xc957[6],_0xc957[7]],where:{role:_0xc957[11]}};var queryCampaigns={raw:true,attributes:[_0xc957[6],_0xc957[7],_0xc957[13]],where:{type:_0xc957[14]}};function joinOrLeave(_0x9a57xb,_0x9a57xc){if(_0x9a57xb[_0xc957[16]][_0xc957[15]][_0xc957[6]]){db[_0xc957[9]][_0xc957[40]]({attributes:[_0xc957[6],_0xc957[7],_0xc957[10]],where:{id:_0x9a57xb[_0xc957[16]][_0xc957[15]][_0xc957[6]]}})[_0xc957[26]](function(_0x9a57x12){if(_0x9a57x12){_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[22],_0x9a57x12[_0xc957[7]]));var _0x9a57x13=[];switch(_0x9a57x12[_0xc957[10]]){case _0xc957[36]:_0x9a57xb[_0x9a57xc](_0xc957[27]);_0x9a57xb[_0x9a57xc](_0xc957[28]);if(queryVoiceQueues[_0xc957[30]](_0xc957[29])){delete queryVoiceQueues[_0xc957[29]]};_0x9a57x13[_0xc957[33]](db[_0xc957[32]][_0xc957[31]](queryVoiceQueues));_0x9a57x13[_0xc957[33]](db[_0xc957[9]][_0xc957[31]](queryTelephones));_0x9a57x13[_0xc957[33]](db[_0xc957[34]][_0xc957[31]](queryTrunks));_0x9a57x13[_0xc957[33]](db[_0xc957[9]][_0xc957[31]](queryAgents));_0x9a57x13[_0xc957[33]](db[_0xc957[35]][_0xc957[31]](queryCampaigns));break;case _0xc957[38]:_0x9a57xb[_0x9a57xc](_0xc957[27]);_0x9a57xb[_0x9a57xc](_0xc957[28]);_0x9a57x13[_0xc957[33]](_0x9a57x12[_0xc957[37]](queryVoiceQueues));_0x9a57x13[_0xc957[33]](db[_0xc957[9]][_0xc957[31]](queryTelephones));_0x9a57x13[_0xc957[33]](db[_0xc957[34]][_0xc957[31]](queryTrunks));_0x9a57x13[_0xc957[33]](db[_0xc957[9]][_0xc957[31]](queryAgents));_0x9a57x13[_0xc957[33]](db[_0xc957[35]][_0xc957[31]](queryCampaigns));break;case _0xc957[11]:_0x9a57x13[_0xc957[33]](_0x9a57x12[_0xc957[37]]({attributes:[_0xc957[6],_0xc957[7]]}))};return BPromise[_0xc957[39]](_0x9a57x13)}})[_0xc957[26]](function(_0x9a57xe){if(_0x9a57xe&& _0x9a57xe[_0xc957[19]]){for(var _0x9a57xf=0;_0x9a57xf< _0x9a57xe[_0xc957[19]];_0x9a57xf+= 1){for(var _0x9a57x10=0;_0x9a57x10< _0x9a57xe[_0x9a57xf][_0xc957[19]];_0x9a57x10+= 1){switch(_0x9a57xf){case 0:_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[20],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[7]]));if(_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[8]]){for(var _0x9a57x11=0;_0x9a57x11< _0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[8]][_0xc957[19]];_0x9a57x11+= 1){_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[22],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[8]][_0x9a57x11][_0xc957[7]]))}};break;case 1:_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[23],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[7]]));break;case 2:_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[24],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[7]]));break;case 3:_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[22],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[7]]));break;case 4:_0x9a57xb[_0x9a57xc](util[_0xc957[21]](_0xc957[25],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[13]],_0x9a57xe[_0x9a57xf][_0x9a57x10][_0xc957[7]]));break}}}}})[_0xc957[18]](function(_0x9a57xd){_0x9a57xb[_0xc957[17]](_0x9a57xd)})}}function onDisconnect(_0x9a57xb){joinOrLeave(_0x9a57xb,_0xc957[41])}function onConnect(_0x9a57xb){joinOrLeave(_0x9a57xb,_0xc957[42])}exports[_0xc957[43]]= function(_0x9a57x16){_0x9a57x16[_0xc957[58]](_0xc957[44],function(_0x9a57xb){_0x9a57xb[_0xc957[45]](0);_0x9a57xb[_0xc957[46]]= _0x9a57xb[_0xc957[48]][_0xc957[44]][_0xc957[47]]+ _0xc957[49]+ _0x9a57xb[_0xc957[48]][_0xc957[44]][_0xc957[50]];_0x9a57xb[_0xc957[51]]=  new Date();_0x9a57xb[_0xc957[17]]= function(_0x9a57x17){console[_0xc957[17]](_0xc957[52]+ _0x9a57xb[_0xc957[53]][_0xc957[7]]+ _0xc957[54]+ _0x9a57xb[_0xc957[46]]+ _0xc957[55],_0x9a57x17)};_0x9a57xb[_0xc957[58]](_0xc957[56],function(){onDisconnect(_0x9a57xb);_0x9a57xb[_0xc957[17]](_0xc957[57])});onConnect(_0x9a57xb);_0x9a57xb[_0xc957[17]](_0xc957[59])})}
\ No newline at end of file
index 4af8643..367d33c 100644 (file)
@@ -1 +1 @@
-var _0xce5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73"];_0xce5a[0];var _=require(_0xce5a[1]);var channels=[_0xce5a[2],_0xce5a[3],_0xce5a[4],_0xce5a[5],_0xce5a[6],_0xce5a[7]];module[_0xce5a[8]]= {getChannels:function(){return channels},isValidChannel:function(_0x7581x3){_0x7581x3= _0x7581x3[_0xce5a[9]]();return _[_0xce5a[10]](channels,_0x7581x3)}}
\ No newline at end of file
+var _0x4192=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73"];_0x4192[0];var _=require(_0x4192[1]);var channels=[_0x4192[2],_0x4192[3],_0x4192[4],_0x4192[5],_0x4192[6],_0x4192[7]];module[_0x4192[8]]= {getChannels:function(){return channels},isValidChannel:function(_0x34fax3){_0x34fax3= _0x34fax3[_0x4192[9]]();return _[_0x4192[10]](channels,_0x34fax3)}}
\ No newline at end of file
index 232091b..f515dde 100644 (file)
@@ -1 +1 @@
-var _0xa154=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x34\x30\x34","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64","\x72\x65\x6E\x64\x65\x72"];_0xa154[0];module[_0xa154[1]][404]= function pageNotFound(_0x4aa8x2,_0x4aa8x3){var _0x4aa8x4=_0xa154[2];var _0x4aa8x5=404;var _0x4aa8x6={status:_0x4aa8x5};_0x4aa8x3[_0xa154[3]](_0x4aa8x6[_0xa154[3]]);_0x4aa8x3[_0xa154[6]](_0x4aa8x4,{},function(_0x4aa8x7,_0x4aa8x8){if(_0x4aa8x7){return _0x4aa8x3[_0xa154[3]](_0x4aa8x6[_0xa154[3]])[_0xa154[4]](_0x4aa8x6)};_0x4aa8x3[_0xa154[5]](_0x4aa8x8)})}
\ No newline at end of file
+var _0xcae4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x34\x30\x34","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64","\x72\x65\x6E\x64\x65\x72"];_0xcae4[0];module[_0xcae4[1]][404]= function pageNotFound(_0x7dd6x2,_0x7dd6x3){var _0x7dd6x4=_0xcae4[2];var _0x7dd6x5=404;var _0x7dd6x6={status:_0x7dd6x5};_0x7dd6x3[_0xcae4[3]](_0x7dd6x6[_0xcae4[3]]);_0x7dd6x3[_0xcae4[6]](_0x7dd6x4,{},function(_0x7dd6x7,_0x7dd6x8){if(_0x7dd6x7){return _0x7dd6x3[_0xcae4[3]](_0x7dd6x6[_0xcae4[3]])[_0xcae4[4]](_0x7dd6x6)};_0x7dd6x3[_0xcae4[5]](_0x7dd6x8)})}
\ No newline at end of file
diff --git a/server/files/images/1497532321680-face.png b/server/files/images/1497532321680-face.png
deleted file mode 100644 (file)
index 05b2374..0000000
Binary files a/server/files/images/1497532321680-face.png and /dev/null differ
diff --git a/server/files/reports/Details-kcZW.csv b/server/files/reports/Details-kcZW.csv
deleted file mode 100644 (file)
index 8a1954f..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-UniqueId,CallerIdNum,CallerIdName,Queue,AgentCalledAt,AgentConnectAt,Agent,AgentCompleteAt,AnswerTime,TalkTime,AgentACW,AgentACWTime,AgentComplete,HangupReason,LastEvent,DID
-1494237161.84,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 13:52:41 GMT+0200 (CEST),Mon May 08 2017 13:52:43 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 13:52:44 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494237170.88,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 13:52:50 GMT+0200 (CEST),Mon May 08 2017 13:52:52 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 13:52:53 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494237274.92,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 13:54:34 GMT+0200 (CEST),Mon May 08 2017 13:54:35 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 13:54:36 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494237384.96,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 13:56:24 GMT+0200 (CEST),Mon May 08 2017 13:56:25 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 13:56:27 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494237432.100,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 13:57:12 GMT+0200 (CEST),Mon May 08 2017 13:57:13 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 13:57:14 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494237548.104,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 13:59:08 GMT+0200 (CEST),Mon May 08 2017 13:59:09 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 13:59:10 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494237604.108,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:00:04 GMT+0200 (CEST),Mon May 08 2017 14:00:05 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:00:07 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494238007.112,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:06:47 GMT+0200 (CEST),Mon May 08 2017 14:06:48 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:06:49 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494238029.116,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:07:10 GMT+0200 (CEST),Mon May 08 2017 14:07:11 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:07:12 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494238302.120,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:11:42 GMT+0200 (CEST),Mon May 08 2017 14:11:45 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:11:46 GMT+0200 (CEST),3,1,0,,1,agent,complete,4444\r
-1494238360.124,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:12:40 GMT+0200 (CEST),Mon May 08 2017 14:12:40 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:12:41 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494238438.128,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:13:58 GMT+0200 (CEST),Mon May 08 2017 14:13:59 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:14:00 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494238449.132,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:14:09 GMT+0200 (CEST),Mon May 08 2017 14:14:10 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:14:11 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494238595.136,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:16:35 GMT+0200 (CEST),Mon May 08 2017 14:16:36 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:16:37 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494239536.140,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:32:16 GMT+0200 (CEST),Mon May 08 2017 14:32:19 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:32:19 GMT+0200 (CEST),3,0,0,,1,agent,complete,4444\r
-1494239599.144,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:33:19 GMT+0200 (CEST),Mon May 08 2017 14:33:20 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:33:22 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494239605.148,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:33:25 GMT+0200 (CEST),Mon May 08 2017 14:33:26 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:33:27 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494239644.152,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 14:34:04 GMT+0200 (CEST),Mon May 08 2017 14:34:06 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 14:34:07 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494254648.156,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 18:44:08 GMT+0200 (CEST),Mon May 08 2017 18:44:09 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 18:44:10 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494254965.160,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 18:49:25 GMT+0200 (CEST),Mon May 08 2017 18:49:26 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 18:49:27 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494255013.164,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 18:50:13 GMT+0200 (CEST),Mon May 08 2017 18:50:14 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 18:50:15 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494255222.168,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 18:53:42 GMT+0200 (CEST),Mon May 08 2017 18:53:43 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 18:53:44 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494256648.176,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:17:28 GMT+0200 (CEST),Mon May 08 2017 19:17:29 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:17:30 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494257156.180,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:25:56 GMT+0200 (CEST),Mon May 08 2017 19:25:57 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:25:59 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494257238.184,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:27:18 GMT+0200 (CEST),Mon May 08 2017 19:27:19 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:27:20 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494257334.188,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:28:54 GMT+0200 (CEST),Mon May 08 2017 19:28:55 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:28:56 GMT+0200 (CEST),1,1,0,,1,caller,complete,4444\r
-1494257925.192,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:38:45 GMT+0200 (CEST),Mon May 08 2017 19:38:46 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:38:49 GMT+0200 (CEST),1,3,0,,1,agent,complete,4444\r
-1494258330.196,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:45:30 GMT+0200 (CEST),Mon May 08 2017 19:45:38 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:45:39 GMT+0200 (CEST),8,1,0,,1,agent,complete,4444\r
-1494258425.200,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:47:05 GMT+0200 (CEST),Mon May 08 2017 19:47:06 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:47:07 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494258468.204,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:47:48 GMT+0200 (CEST),Mon May 08 2017 19:47:49 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:47:50 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494258504.208,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:48:24 GMT+0200 (CEST),Mon May 08 2017 19:48:24 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:48:25 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494258541.212,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:49:02 GMT+0200 (CEST),Mon May 08 2017 19:49:02 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:49:03 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494258587.216,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:49:47 GMT+0200 (CEST),Mon May 08 2017 19:49:48 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:49:50 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494258676.220,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:51:16 GMT+0200 (CEST),Mon May 08 2017 19:51:17 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:51:18 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494258825.224,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 19:53:45 GMT+0200 (CEST),Mon May 08 2017 19:53:46 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 19:53:48 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494259510.228,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 20:05:10 GMT+0200 (CEST),Mon May 08 2017 20:05:11 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 20:05:11 GMT+0200 (CEST),1,0,0,,1,agent,complete,4444\r
-1494259527.232,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 20:05:27 GMT+0200 (CEST),Mon May 08 2017 20:05:29 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 20:05:30 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494259618.236,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 20:06:58 GMT+0200 (CEST),Mon May 08 2017 20:06:59 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 20:07:01 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494259749.240,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 20:09:09 GMT+0200 (CEST),Mon May 08 2017 20:09:10 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 20:09:11 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494259834.244,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 20:10:34 GMT+0200 (CEST),Mon May 08 2017 20:10:35 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 20:10:36 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494260006.248,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon May 08 2017 20:13:26 GMT+0200 (CEST),Mon May 08 2017 20:13:27 GMT+0200 (CEST),daniele.cinti,Mon May 08 2017 20:13:28 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494319961.1374,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 12:52:41 GMT+0200 (CEST),Tue May 09 2017 12:52:42 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 12:52:43 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494322452.1381,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 13:34:12 GMT+0200 (CEST),Tue May 09 2017 13:34:13 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 13:34:14 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494322607.1385,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 13:36:48 GMT+0200 (CEST),Tue May 09 2017 13:36:52 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 13:36:54 GMT+0200 (CEST),4,2,0,,1,caller,complete,4444\r
-1494322862.1389,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 13:41:02 GMT+0200 (CEST),Tue May 09 2017 13:41:02 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 13:41:03 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494324320.1399,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 14:05:20 GMT+0200 (CEST),Tue May 09 2017 14:05:21 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 14:05:22 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494324887.1412,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 14:14:47 GMT+0200 (CEST),Tue May 09 2017 14:14:48 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 14:14:49 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494325114.1420,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 14:18:34 GMT+0200 (CEST),Tue May 09 2017 14:18:35 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 14:18:36 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494332485.1693,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Tue May 09 2017 16:21:26 GMT+0200 (CEST),Tue May 09 2017 16:21:27 GMT+0200 (CEST),daniele.cinti,Tue May 09 2017 16:21:31 GMT+0200 (CEST),1,4,0,,1,agent,complete,4444\r
-dcc39018-8e0a-4e5a-877b-2c445d410acd,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 14:06:31 GMT+0200 (CEST),Thu May 11 2017 14:06:32 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:06:41 GMT+0200 (CEST),1,9,0,,1,caller,complete,xcally-motion-dialer\r
-b004e057-3ee9-439f-8b1b-09be6e33d8c1,347947492,null,DaniCamp,Thu May 11 2017 14:06:42 GMT+0200 (CEST),Thu May 11 2017 14:06:43 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:06:52 GMT+0200 (CEST),1,9,0,,1,caller,complete,xcally-motion-dialer\r
-56a9f38a-7cfe-44ea-a0a5-ff0b833eafb3,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 14:21:24 GMT+0200 (CEST),Thu May 11 2017 14:21:26 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:21:28 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-7fe3fa21-980f-4a46-8a68-188ae8bad484,347947492,null,DaniCamp,Thu May 11 2017 14:21:28 GMT+0200 (CEST),Thu May 11 2017 14:21:29 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:21:31 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-68b18a07-d71f-48d9-96d9-3320d821ca11,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 14:28:03 GMT+0200 (CEST),Thu May 11 2017 14:28:05 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:28:07 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-3da466e0-45e5-44ed-a770-01df0d9c2b5e,347947492,null,DaniCamp,Thu May 11 2017 14:28:07 GMT+0200 (CEST),Thu May 11 2017 14:28:08 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:28:10 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-29fcbfc9-4518-4298-9cd9-933f1d01fb47,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 14:49:43 GMT+0200 (CEST),Thu May 11 2017 14:49:45 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:49:48 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-38fd95b9-0c54-48cf-90f5-3a065958469d,347947492,null,DaniCamp,Thu May 11 2017 14:49:49 GMT+0200 (CEST),Thu May 11 2017 14:49:50 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:49:54 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-5a43abda-6f2a-4a84-a07d-e154de7c58c6,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 14:53:02 GMT+0200 (CEST),Thu May 11 2017 14:53:05 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:53:09 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-62fb8e82-5b64-4135-878a-174562b0cbfc,347947492,null,DaniCamp,Thu May 11 2017 14:53:09 GMT+0200 (CEST),Thu May 11 2017 14:53:10 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:53:14 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-e904b8fe-afdc-464c-b621-2fc8dfeac0cb,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 14:58:42 GMT+0200 (CEST),Thu May 11 2017 14:58:44 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:58:46 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-ac2866b5-5300-43de-93f5-848e43f59eab,347947492,null,DaniCamp,Thu May 11 2017 14:58:46 GMT+0200 (CEST),Thu May 11 2017 14:58:48 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 14:58:51 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-d1a313c4-5563-4a7c-b3aa-0f6963421dc3,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 15:01:12 GMT+0200 (CEST),Thu May 11 2017 15:01:14 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 15:01:15 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-79b82c99-cf91-4fd1-869f-5661617ca235,347947492,null,DaniCamp,Thu May 11 2017 15:01:17 GMT+0200 (CEST),Thu May 11 2017 15:01:17 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 15:01:19 GMT+0200 (CEST),0,2,0,,1,agent,complete,xcally-motion-dialer\r
-2dc8622f-182e-4c44-a65e-d4bfed80f596,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 16:49:06 GMT+0200 (CEST),Thu May 11 2017 16:49:08 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 16:49:10 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-664811bf-bff1-4002-ba43-5d7b900d9c11,347947492,null,DaniCamp,Thu May 11 2017 16:49:11 GMT+0200 (CEST),Thu May 11 2017 16:49:12 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 16:49:13 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-4bf5405a-a511-46ac-a061-9ee6f9a10b1d,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 16:58:30 GMT+0200 (CEST),Thu May 11 2017 16:58:32 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 16:58:34 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-2730101b-6db7-473a-915a-cfb0f8865f1f,347947492,null,DaniCamp,Thu May 11 2017 16:58:36 GMT+0200 (CEST),Thu May 11 2017 16:58:37 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 16:58:38 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-eb66c428-00f6-4498-9883-a9169477d15a,347947492,null,DaniCamp,Thu May 11 2017 17:02:52 GMT+0200 (CEST),Thu May 11 2017 17:02:53 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:02:54 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-865b0c8a-c4d1-49db-bc80-c69f6389a2db,347947492,null,DaniCamp,Thu May 11 2017 17:03:29 GMT+0200 (CEST),Thu May 11 2017 17:03:30 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:03:35 GMT+0200 (CEST),1,5,0,,1,agent,complete,xcally-motion-dialer\r
-45c89d50-956f-4b9c-b4d0-ff47b3f383fc,347947492,null,DaniCamp,Thu May 11 2017 17:06:57 GMT+0200 (CEST),Thu May 11 2017 17:06:58 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:07:00 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-223eefc3-60ac-49ab-9035-d93ca76e8434,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:11:45 GMT+0200 (CEST),Thu May 11 2017 17:11:48 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:11:52 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-a861fec9-d8ea-4b4e-bf71-b81eb13d6d42,347947492,null,DaniCamp,Thu May 11 2017 17:11:53 GMT+0200 (CEST),Thu May 11 2017 17:11:54 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:11:56 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-4fa15b3e-5ad7-48c7-86af-dffdcb3f3a0c,347947492,null,DaniCamp,Thu May 11 2017 17:17:50 GMT+0200 (CEST),Thu May 11 2017 17:17:52 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:18:00 GMT+0200 (CEST),2,8,0,,1,caller,complete,xcally-motion-dialer\r
-697ba96b-d815-44c1-82c6-58f7eba3fb42,347947492,null,DaniCamp,Thu May 11 2017 17:23:03 GMT+0200 (CEST),Thu May 11 2017 17:23:03 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:23:05 GMT+0200 (CEST),0,2,0,,1,agent,complete,xcally-motion-dialer\r
-96d87314-4572-4225-a266-c7b794ddd3a2,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:27:28 GMT+0200 (CEST),Thu May 11 2017 17:27:29 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:27:38 GMT+0200 (CEST),1,9,0,,1,caller,complete,xcally-motion-dialer\r
-dd234fee-8870-4c05-9ba5-836d3d486777,347947492,null,DaniCamp,Thu May 11 2017 17:27:39 GMT+0200 (CEST),Thu May 11 2017 17:27:40 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:27:46 GMT+0200 (CEST),1,6,0,,1,agent,complete,xcally-motion-dialer\r
-384d8434-49ff-4443-8a8d-76c472768e1b,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:29:44 GMT+0200 (CEST),Thu May 11 2017 17:29:46 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:29:54 GMT+0200 (CEST),2,8,0,,1,caller,complete,xcally-motion-dialer\r
-fba41d1d-1803-4a38-9c3f-ef86969439cd,347947492,null,DaniCamp,Thu May 11 2017 17:29:55 GMT+0200 (CEST),Thu May 11 2017 17:29:58 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:30:00 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-db69a464-a560-4e3e-a1fa-dcef40844bb4,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:48:09 GMT+0200 (CEST),Thu May 11 2017 17:48:11 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:48:12 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-f43c6039-5620-4cfa-8c43-3fc0b0ae90b4,347947492,null,DaniCamp,Thu May 11 2017 17:48:13 GMT+0200 (CEST),Thu May 11 2017 17:48:14 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:48:15 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-002addbf-def5-4636-9a46-e657cfe1a96b,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:48:54 GMT+0200 (CEST),Thu May 11 2017 17:48:55 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:48:57 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-3d114381-e067-4d61-b765-39562e1d2d29,347947492,null,DaniCamp,Thu May 11 2017 17:48:57 GMT+0200 (CEST),Thu May 11 2017 17:48:58 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:48:58 GMT+0200 (CEST),0,1,0,,1,agent,complete,xcally-motion-dialer\r
-1b812c90-3fcf-4ffe-a577-114b0508111c,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:51:50 GMT+0200 (CEST),Thu May 11 2017 17:51:53 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:52:00 GMT+0200 (CEST),3,7,0,,1,caller,complete,xcally-motion-dialer\r
-839a9de7-ae51-46e4-a225-2ab96f820564,347947492,null,DaniCamp,Thu May 11 2017 17:52:01 GMT+0200 (CEST),Thu May 11 2017 17:52:04 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:52:05 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-960350ac-bc72-4b63-9f37-d99f971eef0c,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:53:44 GMT+0200 (CEST),Thu May 11 2017 17:53:45 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:53:46 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-ec35f813-ba9e-4e18-a523-e305f288cbd7,347947492,null,DaniCamp,Thu May 11 2017 17:53:47 GMT+0200 (CEST),Thu May 11 2017 17:53:48 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:53:49 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-b33c239e-8f1a-4483-8de5-a6d2fb1e725d,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 17:58:32 GMT+0200 (CEST),Thu May 11 2017 17:58:35 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 17:58:43 GMT+0200 (CEST),3,8,0,,1,caller,complete,xcally-motion-dialer\r
-d2689f46-bcb0-4865-b49e-15e2b2cf37ba,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 18:08:16 GMT+0200 (CEST),Thu May 11 2017 18:08:17 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 18:08:18 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-b4c07664-d209-47c0-b0ed-fd17a36206c8,347947492,null,DaniCamp,Thu May 11 2017 18:08:19 GMT+0200 (CEST),Thu May 11 2017 18:08:20 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 18:08:20 GMT+0200 (CEST),0,1,0,,1,agent,complete,xcally-motion-dialer\r
-bb8196a9-ca1b-4c62-b7e5-51dcb77acfc9,347947492,Daniele Cinti,DaniCamp,Thu May 11 2017 18:20:23 GMT+0200 (CEST),Thu May 11 2017 18:20:25 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 18:20:25 GMT+0200 (CEST),2,0,0,,1,agent,complete,xcally-motion-dialer\r
-8caa23fa-4f36-408f-b856-5eb9ede4c6f2,347947492,null,DaniCamp,Thu May 11 2017 18:20:26 GMT+0200 (CEST),Thu May 11 2017 18:20:27 GMT+0200 (CEST),daniele.cinti,Thu May 11 2017 18:20:28 GMT+0200 (CEST),1,0,0,,1,agent,complete,xcally-motion-dialer\r
-15841efd-a610-43ab-93f4-0ec1e972ca9c,347947492,Daniele Cinti,DaniCamp,Fri May 12 2017 12:50:39 GMT+0200 (CEST),Fri May 12 2017 12:50:41 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 12:50:42 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-4af846a8-a70f-4f95-b2a3-37ccce2dac32,347947492,null,DaniCamp,Fri May 12 2017 12:50:43 GMT+0200 (CEST),Fri May 12 2017 12:50:45 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 12:50:47 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-77a85942-6e46-4bb9-8c29-dd50f5125ccb,347947492,Daniele Cinti,DaniCamp,Fri May 12 2017 12:54:16 GMT+0200 (CEST),Fri May 12 2017 12:54:18 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 12:54:21 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-f550c18b-f60b-480c-9698-a69bf7106706,347947492,null,DaniCamp,Fri May 12 2017 12:54:21 GMT+0200 (CEST),Fri May 12 2017 12:54:22 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 12:54:23 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-97fbc9c3-fdf8-4692-860c-f1ba741a5ee3,347947492,Daniele Cinti,DaniCamp,Fri May 12 2017 13:16:30 GMT+0200 (CEST),Fri May 12 2017 13:16:32 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 13:16:34 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-3f3cb3cd-5e44-4a32-8638-6f7c3c6775d4,347947492,null,DaniCamp,Fri May 12 2017 13:16:37 GMT+0200 (CEST),Fri May 12 2017 13:16:38 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 13:16:40 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-055232da-1a93-4c59-a2ab-f4cb975e0603,347947492,Daniele Cinti,DaniCamp,Fri May 12 2017 13:18:13 GMT+0200 (CEST),Fri May 12 2017 13:18:15 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 13:18:28 GMT+0200 (CEST),2,13,0,,1,caller,complete,xcally-motion-dialer\r
-d60e44f9-c880-4e70-a614-b0882316f6c7,347947492,Daniele Cinti,DaniCamp,Fri May 12 2017 16:00:59 GMT+0200 (CEST),Fri May 12 2017 16:01:02 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 16:01:03 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-e174e583-d94a-4ad0-be57-07b8d3ad14b4,347947492,null,DaniCamp,Fri May 12 2017 16:01:04 GMT+0200 (CEST),Fri May 12 2017 16:01:04 GMT+0200 (CEST),daniele.cinti,Fri May 12 2017 16:01:05 GMT+0200 (CEST),0,1,0,,1,agent,complete,xcally-motion-dialer\r
-ce6944b9-05b8-4425-9139-acf91d8b29ed,66699910639,Innocenzo639 Biondo639,DaniCamp,Tue May 30 2017 11:58:59 GMT+0200 (CEST),Tue May 30 2017 11:59:01 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 11:59:04 GMT+0200 (CEST),2,3,0,,1,caller,complete,xcally-motion-dialer\r
-5879219f-f80d-4e26-8660-52d972b512bb,66699911323,Innocenzo1323 Biondo1323,DaniCamp,Tue May 30 2017 11:59:12 GMT+0200 (CEST),Tue May 30 2017 11:59:15 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 11:59:17 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-b10da81f-2381-42d0-a584-aee5b82e7ba3,66699911245,Innocenzo1245 Biondo1245,DaniCamp,Tue May 30 2017 11:59:22 GMT+0200 (CEST),Tue May 30 2017 11:59:23 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 11:59:24 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-f1d25852-2453-4172-9cfa-462ca3f2bea0,66699911601,Innocenzo1601 Biondo1601,DaniCamp,Tue May 30 2017 12:10:15 GMT+0200 (CEST),Tue May 30 2017 12:10:15 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 12:10:20 GMT+0200 (CEST),0,5,0,,1,agent,complete,xcally-motion-dialer\r
-182f7597-1f93-46ee-8ada-60b7bf5eafb1,66699910111,Innocenzo111 Biondo111,DaniCamp,Tue May 30 2017 12:10:37 GMT+0200 (CEST),Tue May 30 2017 12:10:38 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 12:10:40 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-ad9044a2-e9ba-4078-b77f-65579bb53c2d,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 12:25:29 GMT+0200 (CEST),Tue May 30 2017 12:25:30 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 12:25:33 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-c2e678a6-32a0-426c-8710-881dabf78e2c,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 12:35:03 GMT+0200 (CEST),Tue May 30 2017 12:35:05 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 12:35:08 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-fd5ee1cb-47ed-492c-a876-f17df1a0a830,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:15:43 GMT+0200 (CEST),Tue May 30 2017 15:15:44 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:15:48 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-71f9d398-a63f-4cd9-b880-d8d37de9c976,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 15:15:48 GMT+0200 (CEST),Tue May 30 2017 15:15:50 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:15:51 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-e1c08049-158a-40d5-966a-4b607473966a,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:35:28 GMT+0200 (CEST),Tue May 30 2017 15:35:29 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:35:32 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-e1c08049-158a-40d5-966a-4b607473966a,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:35:28 GMT+0200 (CEST),Tue May 30 2017 15:35:29 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:35:32 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-f0698270-bc25-4d89-aeca-d30d0b2c9e18,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:35:33 GMT+0200 (CEST),Tue May 30 2017 15:35:35 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:35:36 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-f0698270-bc25-4d89-aeca-d30d0b2c9e18,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:35:33 GMT+0200 (CEST),Tue May 30 2017 15:35:35 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:35:36 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-ad350fc9-01db-4d45-8219-caad116e383f,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 15:47:03 GMT+0200 (CEST),Tue May 30 2017 15:47:06 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:47:10 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-ad350fc9-01db-4d45-8219-caad116e383f,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 15:47:03 GMT+0200 (CEST),Tue May 30 2017 15:47:06 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:47:10 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-861a8477-8e9f-4be4-9e8d-9a11e5fdf2c2,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:47:11 GMT+0200 (CEST),Tue May 30 2017 15:47:12 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:47:16 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-861a8477-8e9f-4be4-9e8d-9a11e5fdf2c2,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:47:11 GMT+0200 (CEST),Tue May 30 2017 15:47:12 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:47:16 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-64852a33-9e27-42c6-bccf-f594f727ec10,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 15:51:03 GMT+0200 (CEST),Tue May 30 2017 15:51:06 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:51:08 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-64852a33-9e27-42c6-bccf-f594f727ec10,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 15:51:03 GMT+0200 (CEST),Tue May 30 2017 15:51:06 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:51:08 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-de760063-080a-4a4b-98d3-1f411890cc07,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:51:09 GMT+0200 (CEST),Tue May 30 2017 15:51:10 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:51:13 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-de760063-080a-4a4b-98d3-1f411890cc07,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:51:09 GMT+0200 (CEST),Tue May 30 2017 15:51:10 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:51:13 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-363579e0-8332-40ce-8fad-c4cd4111bee1,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:51:15 GMT+0200 (CEST),Tue May 30 2017 15:51:18 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:51:20 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-363579e0-8332-40ce-8fad-c4cd4111bee1,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:51:15 GMT+0200 (CEST),Tue May 30 2017 15:51:18 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:51:20 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-4fcb923d-e86c-4712-8a77-0239958bd705,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:54:25 GMT+0200 (CEST),Tue May 30 2017 15:54:26 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:54:30 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-d1e524c0-4bcd-40c2-af3b-56107c8d0e99,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 15:56:50 GMT+0200 (CEST),Tue May 30 2017 15:56:51 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 15:57:23 GMT+0200 (CEST),1,32,0,,1,agent,complete,xcally-motion-dialer\r
-b1e22282-7b2f-4a61-ab9a-b25e076d8373,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 16:01:08 GMT+0200 (CEST),Tue May 30 2017 16:01:09 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:01:26 GMT+0200 (CEST),1,17,0,,1,agent,complete,xcally-motion-dialer\r
-8fdbdcb2-1ab6-488d-bd57-58b8512a7285,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 16:03:35 GMT+0200 (CEST),Tue May 30 2017 16:03:38 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:06:17 GMT+0200 (CEST),3,159,0,,1,agent,complete,xcally-motion-dialer\r
-d3da7646-451f-4df4-98d3-2335695844a0,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 16:06:18 GMT+0200 (CEST),Tue May 30 2017 16:06:21 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:06:23 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-f38f557a-baad-428d-ba2a-2593abc5e8dd,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 16:06:25 GMT+0200 (CEST),Tue May 30 2017 16:06:26 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:06:29 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-b4ad3a2e-881e-4adc-8b04-a8763793a840,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 16:31:53 GMT+0200 (CEST),Tue May 30 2017 16:31:56 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:31:59 GMT+0200 (CEST),3,3,0,,1,caller,complete,xcally-motion-dialer\r
-dff36e1f-d2e2-4b3d-851b-5399a7dfe34a,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 16:32:31 GMT+0200 (CEST),Tue May 30 2017 16:32:34 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:32:37 GMT+0200 (CEST),3,2,0,,1,caller,complete,xcally-motion-dialer\r
-d89034bf-7cef-418e-9033-6b4dda15dea6,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 16:32:37 GMT+0200 (CEST),Tue May 30 2017 16:32:40 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:33:47 GMT+0200 (CEST),3,67,0,,1,agent,complete,xcally-motion-dialer\r
-3117f3a3-ea35-40c6-acbe-6a7724e6cc84,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 16:34:09 GMT+0200 (CEST),Tue May 30 2017 16:34:11 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 16:34:14 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-00251e8c-bf51-4ffe-b640-1c1a624f09c8,66699910609,Innocenzo609 Biondo609,DaniCamp,Tue May 30 2017 17:01:30 GMT+0200 (CEST),Tue May 30 2017 17:01:32 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 17:01:39 GMT+0200 (CEST),2,7,0,,1,agent,complete,xcally-motion-dialer\r
-40483b7a-ae5f-45d6-ac47-fe53ae24d6df,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 17:01:40 GMT+0200 (CEST),Tue May 30 2017 17:01:41 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 17:01:42 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-02defe9f-2a82-445f-a708-32c99b4d2390,66699910549,Innocenzo549 Biondo549,DaniCamp,Tue May 30 2017 17:35:41 GMT+0200 (CEST),Tue May 30 2017 17:35:41 GMT+0200 (CEST),daniele.cinti,Tue May 30 2017 17:35:44 GMT+0200 (CEST),0,3,0,,1,agent,complete,xcally-motion-dialer\r
-1496653399.285543,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 13:03:20 GMT+0200 (CEST),Mon Jun 05 2017 13:03:25 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 13:04:00 GMT+0200 (CEST),5,35,0,,1,caller,complete,4444\r
-1496653399.285543,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 11:03:20 GMT+0200 (CEST),Mon Jun 05 2017 11:03:25 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 11:04:00 GMT+0200 (CEST),5,35,0,,1,caller,complete,4444\r
-1496653462.285639,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 13:04:22 GMT+0200 (CEST),Mon Jun 05 2017 13:04:23 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 13:04:46 GMT+0200 (CEST),1,23,0,,1,caller,complete,4444\r
-1496653462.285639,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 11:04:22 GMT+0200 (CEST),Mon Jun 05 2017 11:04:23 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 11:04:46 GMT+0200 (CEST),1,23,0,,1,caller,complete,4444\r
-1496653499.285647,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 13:04:59 GMT+0200 (CEST),Mon Jun 05 2017 13:05:01 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 13:05:21 GMT+0200 (CEST),2,20,0,,1,caller,complete,4444\r
-1496653499.285647,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 11:04:59 GMT+0200 (CEST),Mon Jun 05 2017 11:05:01 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 11:05:21 GMT+0200 (CEST),2,20,0,,1,caller,complete,4444\r
-1496653716.285735,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 13:08:36 GMT+0200 (CEST),Mon Jun 05 2017 13:08:40 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 13:09:03 GMT+0200 (CEST),4,23,0,,1,caller,complete,4444\r
-1496653716.285735,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 11:08:36 GMT+0200 (CEST),Mon Jun 05 2017 11:08:40 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 11:09:03 GMT+0200 (CEST),4,23,0,,1,caller,complete,4444\r
-1496654906.286070,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,Mon Jun 05 2017 11:28:26 GMT+0200 (CEST),Mon Jun 05 2017 11:28:31 GMT+0200 (CEST),daniele.cinti,Mon Jun 05 2017 11:28:39 GMT+0200 (CEST),5,8,0,,1,agent,complete,4444\r
-1497343593.533286,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 10:46:34 GMT+0200 (CEST),Tue Jun 13 2017 10:46:36 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 10:46:40 GMT+0200 (CEST),3,4,0,,1,agent,complete,6000\r
-1497343593.533286,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 10:46:33 GMT+0200 (CEST),Tue Jun 13 2017 10:46:35 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 10:46:39 GMT+0200 (CEST),3,4,0,,1,agent,complete,6000\r
-1497343621.533290,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 10:47:01 GMT+0200 (CEST),Tue Jun 13 2017 10:47:02 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 10:48:12 GMT+0200 (CEST),2,70,0,,1,agent,complete,6000\r
-1497343621.533290,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 10:47:01 GMT+0200 (CEST),Tue Jun 13 2017 10:47:03 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 10:48:13 GMT+0200 (CEST),2,70,0,,1,agent,complete,6000\r
-1497345245.533294,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 11:14:05 GMT+0200 (CEST),Tue Jun 13 2017 11:14:06 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 11:14:39 GMT+0200 (CEST),1,33,0,,1,agent,complete,6000\r
-1497345245.533294,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 11:14:05 GMT+0200 (CEST),Tue Jun 13 2017 11:14:06 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 11:14:39 GMT+0200 (CEST),1,33,0,,1,agent,complete,6000\r
-1497345281.533298,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 11:14:42 GMT+0200 (CEST),Tue Jun 13 2017 11:14:43 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 11:16:45 GMT+0200 (CEST),1,122,0,,1,agent,complete,6000\r
-1497345281.533298,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 11:14:42 GMT+0200 (CEST),Tue Jun 13 2017 11:14:43 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 11:16:45 GMT+0200 (CEST),1,122,0,,1,agent,complete,6000\r
-1497365002.533956,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 16:43:22 GMT+0200 (CEST),Tue Jun 13 2017 16:43:23 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 16:43:25 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497365002.533956,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 16:43:22 GMT+0200 (CEST),Tue Jun 13 2017 16:43:23 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 16:43:26 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497365613.534021,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 16:53:33 GMT+0200 (CEST),Tue Jun 13 2017 16:53:36 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 16:53:37 GMT+0200 (CEST),3,1,0,,1,agent,complete,6000\r
-1497365613.534021,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 16:53:33 GMT+0200 (CEST),Tue Jun 13 2017 16:53:36 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 16:53:37 GMT+0200 (CEST),3,1,0,,1,agent,complete,6000\r
-1497365843.534033,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 16:57:40 GMT+0200 (CEST),Tue Jun 13 2017 16:57:49 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 16:58:22 GMT+0200 (CEST),26,33,0,,1,agent,complete,6000\r
-1497365843.534033,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 16:57:40 GMT+0200 (CEST),Tue Jun 13 2017 16:57:49 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 16:58:22 GMT+0200 (CEST),26,33,0,,1,agent,complete,6000\r
-1497367987.534701,2207,Enzino,Support,Tue Jun 13 2017 17:35:20 GMT+0200 (CEST),Tue Jun 13 2017 17:35:31 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),144,4,0,,1,agent,complete,6000\r
-1497367987.534701,2207,Enzino,Support,Tue Jun 13 2017 17:35:20 GMT+0200 (CEST),Tue Jun 13 2017 17:35:32 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),144,4,0,,1,agent,complete,6000\r
-1497367988.534702,2207,Enzino,Support,Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),Tue Jun 13 2017 17:35:36 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 17:35:37 GMT+0200 (CEST),148,1,0,,1,agent,complete,6000\r
-1497367988.534702,2207,Enzino,Support,Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),Tue Jun 13 2017 17:35:36 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 17:35:37 GMT+0200 (CEST),148,1,0,,1,agent,complete,6000\r
-1497377604.543168,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 20:13:25 GMT+0200 (CEST),Tue Jun 13 2017 20:13:26 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 20:14:03 GMT+0200 (CEST),1,37,0,,1,agent,complete,6000\r
-1497378761.543283,giuseppe.careri,Giuseppe Careri,Support,Tue Jun 13 2017 20:32:41 GMT+0200 (CEST),Tue Jun 13 2017 20:32:43 GMT+0200 (CEST),giuseppe.careri2,Tue Jun 13 2017 20:35:53 GMT+0200 (CEST),2,190,0,,1,agent,complete,6000\r
-1497430026.547048,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:47:06 GMT+0200 (CEST),Wed Jun 14 2017 10:47:08 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 10:47:13 GMT+0200 (CEST),2,5,0,,1,agent,complete,6000\r
-1497430026.547048,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:47:06 GMT+0200 (CEST),Wed Jun 14 2017 10:47:08 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 10:47:13 GMT+0200 (CEST),2,5,0,,1,agent,complete,6000\r
-1497430034.547055,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:47:14 GMT+0200 (CEST),Wed Jun 14 2017 10:47:16 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 10:47:41 GMT+0200 (CEST),2,25,0,,1,agent,complete,6000\r
-1497430034.547055,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:47:14 GMT+0200 (CEST),Wed Jun 14 2017 10:47:16 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 10:47:41 GMT+0200 (CEST),2,25,0,,1,agent,complete,6000\r
-1497430062.547060,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:47:43 GMT+0200 (CEST),Wed Jun 14 2017 10:47:45 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 10:48:11 GMT+0200 (CEST),2,26,0,,1,agent,complete,6000\r
-1497430062.547060,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:47:43 GMT+0200 (CEST),Wed Jun 14 2017 10:47:45 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 10:48:11 GMT+0200 (CEST),2,26,0,,1,agent,complete,6000\r
-1497430093.547065,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:48:13 GMT+0200 (CEST),Wed Jun 14 2017 10:48:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:00:46 GMT+0200 (CEST),1,752,0,,1,agent,complete,6000\r
-1497430093.547065,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 10:48:13 GMT+0200 (CEST),Wed Jun 14 2017 10:48:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:00:46 GMT+0200 (CEST),1,752,0,,1,agent,complete,6000\r
-1497430847.547080,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:00:47 GMT+0200 (CEST),Wed Jun 14 2017 11:00:48 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:02:13 GMT+0200 (CEST),1,85,0,,1,agent,complete,6000\r
-1497430847.547080,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:00:47 GMT+0200 (CEST),Wed Jun 14 2017 11:00:48 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:02:13 GMT+0200 (CEST),1,85,0,,1,agent,complete,6000\r
-1497430934.547084,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:02:14 GMT+0200 (CEST),Wed Jun 14 2017 11:02:16 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:05:03 GMT+0200 (CEST),2,167,0,,1,agent,complete,6000\r
-1497430934.547084,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:02:14 GMT+0200 (CEST),Wed Jun 14 2017 11:02:16 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:05:03 GMT+0200 (CEST),2,167,0,,1,agent,complete,6000\r
-1497431105.547088,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:05:05 GMT+0200 (CEST),Wed Jun 14 2017 11:05:06 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:50:46 GMT+0200 (CEST),1,2740,0,,1,agent,complete,6000\r
-1497433985.547756,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:53:05 GMT+0200 (CEST),Wed Jun 14 2017 11:53:06 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:53:38 GMT+0200 (CEST),1,32,0,,1,agent,complete,6000\r
-1497433985.547756,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:53:05 GMT+0200 (CEST),Wed Jun 14 2017 11:53:06 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:53:38 GMT+0200 (CEST),1,32,0,,1,agent,complete,6000\r
-1497434020.547768,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:53:40 GMT+0200 (CEST),Wed Jun 14 2017 11:53:41 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:55:13 GMT+0200 (CEST),1,92,0,,1,agent,complete,6000\r
-1497434020.547768,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:53:40 GMT+0200 (CEST),Wed Jun 14 2017 11:53:41 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:55:13 GMT+0200 (CEST),1,92,0,,1,agent,complete,6000\r
-1497434173.547793,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:56:13 GMT+0200 (CEST),Wed Jun 14 2017 11:56:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:57:16 GMT+0200 (CEST),1,62,0,,1,agent,complete,6000\r
-1497434173.547793,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:56:13 GMT+0200 (CEST),Wed Jun 14 2017 11:56:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 11:57:16 GMT+0200 (CEST),1,62,0,,1,agent,complete,6000\r
-1497434239.547802,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:57:19 GMT+0200 (CEST),Wed Jun 14 2017 11:57:20 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:03:18 GMT+0200 (CEST),1,358,0,,1,agent,complete,6000\r
-1497434239.547802,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 11:57:19 GMT+0200 (CEST),Wed Jun 14 2017 11:57:20 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:03:18 GMT+0200 (CEST),1,358,0,,1,agent,complete,6000\r
-1497434599.547846,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 12:03:19 GMT+0200 (CEST),Wed Jun 14 2017 12:03:21 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:03:48 GMT+0200 (CEST),2,27,0,,1,agent,complete,6000\r
-1497434599.547846,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 12:03:19 GMT+0200 (CEST),Wed Jun 14 2017 12:03:21 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:03:48 GMT+0200 (CEST),2,27,0,,1,agent,complete,6000\r
-1497434631.547850,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 12:03:51 GMT+0200 (CEST),Wed Jun 14 2017 12:03:52 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:04:44 GMT+0200 (CEST),1,52,0,,1,agent,complete,6000\r
-1497434631.547850,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 12:03:51 GMT+0200 (CEST),Wed Jun 14 2017 12:03:52 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:04:44 GMT+0200 (CEST),1,52,0,,1,agent,complete,6000\r
-1497434685.547856,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 12:04:45 GMT+0200 (CEST),Wed Jun 14 2017 12:04:46 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:57:31 GMT+0200 (CEST),1,3165,0,,1,agent,complete,6000\r
-1497434685.547856,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 12:04:45 GMT+0200 (CEST),Wed Jun 14 2017 12:04:46 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 12:57:31 GMT+0200 (CEST),1,3165,0,,1,agent,complete,6000\r
-1497439646.548401,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 13:27:26 GMT+0200 (CEST),Wed Jun 14 2017 13:27:28 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 13:31:45 GMT+0200 (CEST),2,257,0,,1,agent,complete,6000\r
-1497439908.548432,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 13:31:48 GMT+0200 (CEST),Wed Jun 14 2017 13:31:50 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 13:31:54 GMT+0200 (CEST),2,4,0,,1,agent,complete,6000\r
-1497439915.548436,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 13:31:55 GMT+0200 (CEST),Wed Jun 14 2017 13:31:57 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 13:32:09 GMT+0200 (CEST),2,12,0,,1,agent,complete,6000\r
-1497444676.548852,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:51:20 GMT+0200 (CEST),Wed Jun 14 2017 14:51:21 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:22 GMT+0200 (CEST),1,121,0,,1,agent,complete,6000\r
-1497444676.548852,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:51:16 GMT+0200 (CEST),Wed Jun 14 2017 14:51:17 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:18 GMT+0200 (CEST),1,121,0,,1,agent,complete,6000\r
-1497444800.548860,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:53:24 GMT+0200 (CEST),Wed Jun 14 2017 14:53:26 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:30 GMT+0200 (CEST),2,4,0,,1,agent,complete,6000\r
-1497444800.548860,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:53:20 GMT+0200 (CEST),Wed Jun 14 2017 14:53:22 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:26 GMT+0200 (CEST),2,4,0,,1,agent,complete,6000\r
-1497444807.548864,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:53:31 GMT+0200 (CEST),Wed Jun 14 2017 14:53:33 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:39 GMT+0200 (CEST),2,6,0,,1,agent,complete,6000\r
-1497444807.548864,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:53:27 GMT+0200 (CEST),Wed Jun 14 2017 14:53:29 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:35 GMT+0200 (CEST),2,6,0,,1,agent,complete,6000\r
-1497444824.548869,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:53:48 GMT+0200 (CEST),Wed Jun 14 2017 14:53:50 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:54:02 GMT+0200 (CEST),2,12,0,,1,agent,complete,6000\r
-1497444824.548869,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:53:45 GMT+0200 (CEST),Wed Jun 14 2017 14:53:46 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:53:58 GMT+0200 (CEST),2,12,0,,1,agent,complete,6000\r
-1497444844.548873,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:54:04 GMT+0200 (CEST),Wed Jun 14 2017 14:54:05 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:54:09 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497444844.548873,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:54:08 GMT+0200 (CEST),Wed Jun 14 2017 14:54:09 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:54:13 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497444854.548877,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:54:14 GMT+0200 (CEST),Wed Jun 14 2017 14:54:15 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:54:23 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497444854.548877,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 14:54:18 GMT+0200 (CEST),Wed Jun 14 2017 14:54:19 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 14:54:27 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497445802.549168,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:10:06 GMT+0200 (CEST),Wed Jun 14 2017 15:10:07 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:10:11 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497445802.549168,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:10:01 GMT+0200 (CEST),Wed Jun 14 2017 15:10:03 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:10:07 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497445811.549176,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:10:11 GMT+0200 (CEST),Wed Jun 14 2017 15:10:12 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:48:35 GMT+0200 (CEST),1,2303,0,,1,agent,complete,6000\r
-1497448221.551232,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:50:21 GMT+0200 (CEST),Wed Jun 14 2017 15:50:22 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:50:48 GMT+0200 (CEST),1,26,0,,1,agent,complete,6000\r
-1497448250.551240,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:50:50 GMT+0200 (CEST),Wed Jun 14 2017 15:50:51 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:51:35 GMT+0200 (CEST),1,44,0,,1,agent,complete,6000\r
-1497448297.551260,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:51:37 GMT+0200 (CEST),Wed Jun 14 2017 15:51:39 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:52:19 GMT+0200 (CEST),2,40,0,,1,agent,complete,6000\r
-1497448340.551265,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:52:20 GMT+0200 (CEST),Wed Jun 14 2017 15:52:21 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:52:24 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-1497448346.551269,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 15:52:26 GMT+0200 (CEST),Wed Jun 14 2017 15:52:27 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 15:52:28 GMT+0200 (CEST),1,1,0,,1,agent,complete,6000\r
-1497449943.551482,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 16:19:03 GMT+0200 (CEST),Wed Jun 14 2017 16:19:07 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 17:07:57 GMT+0200 (CEST),4,2928,0,,1,agent,complete,6000\r
-1497452888.555777,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 17:08:08 GMT+0200 (CEST),Wed Jun 14 2017 17:08:08 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 17:08:09 GMT+0200 (CEST),1,1,0,,1,agent,complete,6000\r
-1497453146.555793,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 17:12:26 GMT+0200 (CEST),Wed Jun 14 2017 17:12:27 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 17:12:31 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497454812.557740,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 17:40:12 GMT+0200 (CEST),Wed Jun 14 2017 17:40:16 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 17:41:12 GMT+0200 (CEST),4,56,0,,1,agent,complete,6000\r
-1497454893.557854,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 17:41:33 GMT+0200 (CEST),Wed Jun 14 2017 17:41:34 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 17:41:36 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497455668.558892,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 17:54:28 GMT+0200 (CEST),Wed Jun 14 2017 17:54:29 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 17:54:29 GMT+0200 (CEST),1,0,0,,1,agent,complete,6000\r
-2cf67c90-0506-482a-8859-023360157027,123123,null,DaniCamp,Wed Jun 14 2017 18:05:33 GMT+0200 (CEST),Wed Jun 14 2017 18:05:34 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:05:44 GMT+0200 (CEST),1,10,0,,1,agent,complete,xcally-motion-dialer\r
-5dad4206-2f9f-47f0-a659-04d6d03e6eab,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 18:07:17 GMT+0200 (CEST),Wed Jun 14 2017 18:07:18 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:07:22 GMT+0200 (CEST),1,4,0,,1,caller,complete,xcally-motion-dialer\r
-8fa2649b-03f5-4d1c-a50f-b10634d63061,12312,null,DaniCamp,Wed Jun 14 2017 18:08:57 GMT+0200 (CEST),Wed Jun 14 2017 18:08:58 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:09:21 GMT+0200 (CEST),1,23,0,,1,agent,complete,xcally-motion-dialer\r
-9623a7be-3f39-46f7-8426-83e7364c0b14,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 18:09:23 GMT+0200 (CEST),Wed Jun 14 2017 18:09:24 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:09:43 GMT+0200 (CEST),1,19,0,,1,agent,complete,xcally-motion-dialer\r
-bb342190-6313-4f10-b3da-b9c915509f92,12312,null,DaniCamp,Wed Jun 14 2017 18:11:24 GMT+0200 (CEST),Wed Jun 14 2017 18:11:25 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:12:09 GMT+0200 (CEST),1,44,0,,1,agent,complete,xcally-motion-dialer\r
-1497456871.560393,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 18:14:31 GMT+0200 (CEST),Wed Jun 14 2017 18:14:32 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:14:35 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-46747011-3f2a-4789-84b8-ca04203c5216,12123,null,DaniCamp,Wed Jun 14 2017 18:15:06 GMT+0200 (CEST),Wed Jun 14 2017 18:15:07 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:15:14 GMT+0200 (CEST),1,7,0,,1,agent,complete,xcally-motion-dialer\r
-4f98cc47-f798-46ce-a77f-3f231d46a13d,123123,null,DaniCamp,Wed Jun 14 2017 18:15:15 GMT+0200 (CEST),Wed Jun 14 2017 18:15:17 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:15:22 GMT+0200 (CEST),2,5,0,,1,agent,complete,xcally-motion-dialer\r
-06edee27-b18d-4764-8045-51c82d9af1f2,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 18:15:24 GMT+0200 (CEST),Wed Jun 14 2017 18:15:25 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:16:24 GMT+0200 (CEST),1,59,0,,1,caller,complete,xcally-motion-dialer\r
-950648ca-cc8f-480b-b4b4-384eb53b0b76,123123,null,DaniCamp,Wed Jun 14 2017 18:19:21 GMT+0200 (CEST),Wed Jun 14 2017 18:19:23 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:19:52 GMT+0200 (CEST),2,29,0,,1,agent,complete,xcally-motion-dialer\r
-5dd7a360-4081-40af-af6b-c43cdefb2ad8,12123,null,DaniCamp,Wed Jun 14 2017 18:19:53 GMT+0200 (CEST),Wed Jun 14 2017 18:19:54 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:19:58 GMT+0200 (CEST),1,4,0,,1,caller,complete,xcally-motion-dialer\r
-bae28658-5c14-4bc3-83a9-35a2284acec9,12312,null,DaniCamp,Wed Jun 14 2017 18:19:59 GMT+0200 (CEST),Wed Jun 14 2017 18:20:00 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:20:07 GMT+0200 (CEST),1,6,0,,1,agent,complete,xcally-motion-dialer\r
-8b84c50e-3aa3-40b2-9dd4-24d0b53bc7b1,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 18:20:07 GMT+0200 (CEST),Wed Jun 14 2017 18:20:08 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:21:07 GMT+0200 (CEST),1,58,0,,1,agent,complete,xcally-motion-dialer\r
-dd8302a3-39c9-4691-9dba-c643e7b12e51,123123,null,DaniCamp,Wed Jun 14 2017 18:21:33 GMT+0200 (CEST),Wed Jun 14 2017 18:21:35 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:22:40 GMT+0200 (CEST),2,65,0,,1,agent,complete,xcally-motion-dialer\r
-6c5bceab-413d-488b-80d7-aa3e128ac846,12312,null,DaniCamp,Wed Jun 14 2017 18:22:41 GMT+0200 (CEST),Wed Jun 14 2017 18:22:43 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:23:41 GMT+0200 (CEST),2,58,0,,1,caller,complete,xcally-motion-dialer\r
-3cf1e7c4-ca3f-4954-a289-7f8e02ad6deb,12123,null,DaniCamp,Wed Jun 14 2017 18:27:21 GMT+0200 (CEST),Wed Jun 14 2017 18:27:24 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:28:08 GMT+0200 (CEST),3,44,0,,1,agent,complete,xcally-motion-dialer\r
-1b8c2079-db10-4837-b786-873ad63f7251,12312,null,DaniCamp,Wed Jun 14 2017 18:28:13 GMT+0200 (CEST),Wed Jun 14 2017 18:28:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:28:37 GMT+0200 (CEST),1,23,0,,1,agent,complete,xcally-motion-dialer\r
-90b691e2-44a3-4fe7-b070-9b8699459c0f,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 18:28:39 GMT+0200 (CEST),Wed Jun 14 2017 18:28:40 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:29:40 GMT+0200 (CEST),1,60,0,,1,caller,complete,xcally-motion-dialer\r
-6fd8f525-d00c-49a2-b05f-6e0b0c119a72,12123,null,DaniCamp,Wed Jun 14 2017 18:40:24 GMT+0200 (CEST),Wed Jun 14 2017 18:40:25 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:40:29 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-40e1c980-d588-4baf-9a33-5cd2dd784d66,12312,null,DaniCamp,Wed Jun 14 2017 18:40:30 GMT+0200 (CEST),Wed Jun 14 2017 18:40:31 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:40:34 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-3c132576-38e1-465b-97c9-fac5712a1353,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 18:40:38 GMT+0200 (CEST),Wed Jun 14 2017 18:40:38 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 18:40:41 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-84b6e19e-d0fc-44bb-89cc-219cec4b8500,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 19:20:10 GMT+0200 (CEST),Wed Jun 14 2017 19:20:12 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:20:46 GMT+0200 (CEST),2,34,0,,1,agent,complete,xcally-motion-dialer\r
-35e48ee5-d846-49b2-b60f-b5ea06cd82bd,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:20:47 GMT+0200 (CEST),Wed Jun 14 2017 19:20:50 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:22:50 GMT+0200 (CEST),3,120,0,,1,agent,complete,xcally-motion-dialer\r
-b5c50dae-45d3-405f-a3d1-655b01aadbbf,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:23:41 GMT+0200 (CEST),Wed Jun 14 2017 19:23:42 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:24:02 GMT+0200 (CEST),1,19,0,,1,agent,complete,xcally-motion-dialer\r
-bef91286-ec23-474c-972c-f889d0c82228,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 19:25:09 GMT+0200 (CEST),Wed Jun 14 2017 19:25:12 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:26:09 GMT+0200 (CEST),3,57,0,,1,caller,complete,xcally-motion-dialer\r
-f70683f6-6c08-4f57-ac38-76a4a4302445,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:26:10 GMT+0200 (CEST),Wed Jun 14 2017 19:26:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:26:26 GMT+0200 (CEST),4,12,0,,1,agent,complete,xcally-motion-dialer\r
-d6e9c582-04a4-44e7-9394-f9a879db3c1f,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 19:26:50 GMT+0200 (CEST),Wed Jun 14 2017 19:26:53 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:26:59 GMT+0200 (CEST),3,6,0,,1,agent,complete,xcally-motion-dialer\r
-737b754c-8ee9-47a8-92f3-34bac14a78d5,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:27:00 GMT+0200 (CEST),Wed Jun 14 2017 19:27:02 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:27:03 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-a37a61fe-8343-4711-9f98-5828ad7556d2,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:27:57 GMT+0200 (CEST),Wed Jun 14 2017 19:28:03 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:28:12 GMT+0200 (CEST),6,9,0,,1,agent,complete,xcally-motion-dialer\r
-a012cc7a-b50d-41dd-b7bd-3f21ad55ab5b,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:29:47 GMT+0200 (CEST),Wed Jun 14 2017 19:29:49 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:29:54 GMT+0200 (CEST),2,5,0,,1,agent,complete,xcally-motion-dialer\r
-10032f2c-92b0-40de-b5fb-f709cd681317,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:32:58 GMT+0200 (CEST),Wed Jun 14 2017 19:33:11 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:33:12 GMT+0200 (CEST),13,1,0,,1,agent,complete,xcally-motion-dialer\r
-96579f7b-2933-4e57-85e1-057570a844d8,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:35:39 GMT+0200 (CEST),Wed Jun 14 2017 19:35:43 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:35:46 GMT+0200 (CEST),4,3,0,,1,agent,complete,xcally-motion-dialer\r
-a267007a-c304-40ba-a749-bddc8ba0ec19,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 19:37:52 GMT+0200 (CEST),Wed Jun 14 2017 19:37:55 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:37:57 GMT+0200 (CEST),4,2,0,,1,agent,complete,xcally-motion-dialer\r
-1497462095.565439,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:41:35 GMT+0200 (CEST),Wed Jun 14 2017 19:41:37 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:44:31 GMT+0200 (CEST),2,174,0,,1,agent,complete,6000\r
-1497462340.565696,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:45:40 GMT+0200 (CEST),Wed Jun 14 2017 19:45:41 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:47:09 GMT+0200 (CEST),1,88,0,,1,agent,complete,6000\r
-1497462686.566060,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:51:26 GMT+0200 (CEST),Wed Jun 14 2017 19:51:27 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:51:31 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497462762.566175,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:52:42 GMT+0200 (CEST),Wed Jun 14 2017 19:52:43 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:52:47 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497462792.566216,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:53:12 GMT+0200 (CEST),Wed Jun 14 2017 19:53:14 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:53:19 GMT+0200 (CEST),2,5,0,,1,agent,complete,6000\r
-1497462852.566334,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:54:12 GMT+0200 (CEST),Wed Jun 14 2017 19:54:13 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:54:18 GMT+0200 (CEST),1,5,0,,1,agent,complete,6000\r
-1497462927.566571,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:55:27 GMT+0200 (CEST),Wed Jun 14 2017 19:55:28 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:55:32 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-1497463053.566934,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:57:33 GMT+0200 (CEST),Wed Jun 14 2017 19:57:34 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:57:41 GMT+0200 (CEST),2,6,0,,1,agent,complete,6000\r
-1497463170.567254,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 19:59:30 GMT+0200 (CEST),Wed Jun 14 2017 19:59:31 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 19:59:34 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-1497463253.567486,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:00:53 GMT+0200 (CEST),Wed Jun 14 2017 20:00:54 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:01:02 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497463346.567766,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:02:26 GMT+0200 (CEST),Wed Jun 14 2017 20:02:28 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:02:31 GMT+0200 (CEST),2,3,0,,1,agent,complete,6000\r
-1497463409.567792,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:03:29 GMT+0200 (CEST),Wed Jun 14 2017 20:03:30 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:03:32 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497463435.567814,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:03:55 GMT+0200 (CEST),Wed Jun 14 2017 20:03:56 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:03:58 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497463456.567903,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:04:16 GMT+0200 (CEST),Wed Jun 14 2017 20:04:20 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:04:21 GMT+0200 (CEST),4,1,0,,1,agent,complete,6000\r
-1497463528.568104,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:05:28 GMT+0200 (CEST),Wed Jun 14 2017 20:05:29 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:05:31 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-f2b4fe77-3314-4b6b-8dde-e8b7a918e499,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 20:05:48 GMT+0200 (CEST),Wed Jun 14 2017 20:05:50 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:05:55 GMT+0200 (CEST),2,5,0,,1,agent,complete,xcally-motion-dialer\r
-1497463595.568284,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:06:35 GMT+0200 (CEST),Wed Jun 14 2017 20:06:36 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:06:45 GMT+0200 (CEST),1,9,0,,1,agent,complete,6000\r
-1497463646.568434,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:07:26 GMT+0200 (CEST),Wed Jun 14 2017 20:07:27 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:07:35 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497463660.568477,giuseppe.careri,Giuseppe Careri,Support,Wed Jun 14 2017 20:07:40 GMT+0200 (CEST),Wed Jun 14 2017 20:07:41 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:07:56 GMT+0200 (CEST),1,15,0,,1,agent,complete,6000\r
-24efc7b3-34d7-41a5-b98e-3490dadef88d,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 20:09:14 GMT+0200 (CEST),Wed Jun 14 2017 20:09:17 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:09:19 GMT+0200 (CEST),3,2,0,,1,caller,complete,xcally-motion-dialer\r
-a920e176-24a5-4899-ab3f-caed7a9c86fa,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 20:12:25 GMT+0200 (CEST),Wed Jun 14 2017 20:12:28 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:12:29 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-058b0c08-a53b-4f54-be71-bba7ab3db923,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 20:39:49 GMT+0200 (CEST),Wed Jun 14 2017 20:39:54 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:39:58 GMT+0200 (CEST),3,6,0,,1,agent,complete,xcally-motion-dialer\r
-ffdfe9d7-193c-410d-82c6-7b74d1022c42,3479547988,Giuseppe Careri,DaniCamp,Wed Jun 14 2017 20:39:59 GMT+0200 (CEST),Wed Jun 14 2017 20:40:03 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:41:00 GMT+0200 (CEST),3,58,0,,1,caller,complete,xcally-motion-dialer\r
-6d31d569-d20a-4f50-b4b5-b3a0136ab2bf,3479547987,Daniele Cinti,DaniCamp,Wed Jun 14 2017 20:41:33 GMT+0200 (CEST),Wed Jun 14 2017 20:41:37 GMT+0200 (CEST),giuseppe.careri2,Wed Jun 14 2017 20:41:43 GMT+0200 (CEST),4,5,0,,1,agent,complete,xcally-motion-dialer\r
-5f68a547-3e76-4efc-a38c-544e79a8e51c,3428957161,Giuseppe Careri,DaniCamp,Thu Jun 15 2017 19:22:48 GMT+0200 (CEST),Thu Jun 15 2017 19:22:53 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 19:23:08 GMT+0200 (CEST),5,9,0,,1,agent,complete,xcally-motion-dialer\r
-10142106-f092-4e23-b879-6636adfd7e18,3428957161,Giuseppe Careri,DaniCamp,Thu Jun 15 2017 19:24:12 GMT+0200 (CEST),Thu Jun 15 2017 19:24:15 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 19:25:07 GMT+0200 (CEST),3,47,0,,1,agent,complete,xcally-motion-dialer\r
-1a8a7700-cc4f-4f1c-8433-2eae146df1e9,34289571212,Giuseppe Careri,DaniCamp,Thu Jun 15 2017 19:25:07 GMT+0200 (CEST),Thu Jun 15 2017 19:25:09 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 19:25:21 GMT+0200 (CEST),2,12,0,,1,agent,complete,xcally-motion-dialer\r
-d3ba5ed7-e146-45b9-8c0d-1c4e26186128,3428957162,Giuseppe Careri,DaniCamp,Thu Jun 15 2017 19:27:20 GMT+0200 (CEST),Thu Jun 15 2017 19:27:22 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 19:27:33 GMT+0200 (CEST),2,11,0,,1,agent,complete,xcally-motion-dialer\r
-882fc3c9-1c0c-41f3-a9d4-419a46af1fe2,3428957162,Giuseppe Careri,ConcactManager,Thu Jun 15 2017 17:47:13 GMT+0200 (CEST),Thu Jun 15 2017 17:47:13 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 17:48:44 GMT+0200 (CEST),6,91,0,,1,caller,complete,xcally-motion-dialer\r
-21f12498-309b-4f25-847b-5803b86eee26,3428957163,Giuseppe Careri,ConcactManager,Thu Jun 15 2017 17:48:54 GMT+0200 (CEST),Thu Jun 15 2017 17:48:57 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 17:49:00 GMT+0200 (CEST),3,3,0,,1,caller,complete,xcally-motion-dialer\r
-b84a93ef-5ebf-4116-af15-f3eb18b5ada9,3428957163,Giuseppe Careri,ConcactManager,Thu Jun 15 2017 17:49:00 GMT+0200 (CEST),Thu Jun 15 2017 17:49:08 GMT+0200 (CEST),giuseppe.careri2,Thu Jun 15 2017 17:49:13 GMT+0200 (CEST),8,5,0,,1,agent,complete,xcally-motion-dialer\r
-95a0bebf-0f8b-4fbb-bb44-5dce1647f6ee,3428957163,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 15:48:17 GMT+0200 (CEST),Fri Jun 16 2017 15:48:30 GMT+0200 (CEST),giuseppe.careri2,Fri Jun 16 2017 15:48:32 GMT+0200 (CEST),13,2,0,,1,agent,complete,xcally-motion-dialer\r
-95a0bebf-0f8b-4fbb-bb44-5dce1647f6ee,3428957163,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 17:48:17 GMT+0200 (CEST),Fri Jun 16 2017 17:48:30 GMT+0200 (CEST),giuseppe.careri2,Fri Jun 16 2017 17:48:32 GMT+0200 (CEST),13,2,0,,1,agent,complete,xcally-motion-dialer\r
-841722ef-b62a-4752-8268-f42c443357f0,3428957163,Giuseppe Carerio,DaniCamp,Fri Jun 16 2017 15:48:17 GMT+0200 (CEST),Fri Jun 16 2017 15:48:20 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 15:48:36 GMT+0200 (CEST),3,16,0,,1,agent,complete,xcally-motion-dialer\r
-841722ef-b62a-4752-8268-f42c443357f0,3428957163,Giuseppe Carerio,DaniCamp,Fri Jun 16 2017 17:48:17 GMT+0200 (CEST),Fri Jun 16 2017 17:48:20 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:48:36 GMT+0200 (CEST),3,16,0,,1,agent,complete,xcally-motion-dialer\r
-5d1f43e6-c283-45aa-8a80-b31905f4ff3a,3428957162,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 15:48:41 GMT+0200 (CEST),Fri Jun 16 2017 15:48:44 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 15:48:46 GMT+0200 (CEST),11,2,0,,1,agent,complete,xcally-motion-dialer\r
-5d1f43e6-c283-45aa-8a80-b31905f4ff3a,3428957162,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 17:48:41 GMT+0200 (CEST),Fri Jun 16 2017 17:48:44 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:48:46 GMT+0200 (CEST),11,2,0,,1,agent,complete,xcally-motion-dialer\r
-b3eab7ad-a325-461a-9938-291872b261f3,3428957161,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 15:48:47 GMT+0200 (CEST),Fri Jun 16 2017 15:48:49 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 15:48:52 GMT+0200 (CEST),2,3,0,,1,caller,complete,xcally-motion-dialer\r
-b3eab7ad-a325-461a-9938-291872b261f3,3428957161,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 17:48:47 GMT+0200 (CEST),Fri Jun 16 2017 17:48:49 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:48:53 GMT+0200 (CEST),2,3,0,,1,caller,complete,xcally-motion-dialer\r
-91f1aec6-f4b2-4a39-8f81-49e009d7cbb6,3428957163,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 17:53:50 GMT+0200 (CEST),Fri Jun 16 2017 17:53:54 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:53:58 GMT+0200 (CEST),4,4,0,,1,agent,complete,xcally-motion-dialer\r
-91f1aec6-f4b2-4a39-8f81-49e009d7cbb6,3428957163,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 19:53:50 GMT+0200 (CEST),Fri Jun 16 2017 19:53:54 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 19:53:58 GMT+0200 (CEST),4,4,0,,1,agent,complete,xcally-motion-dialer\r
-a8c1679e-db18-4d22-9ad6-e363eeb7c905,3428957163,Giuseppe Carerio,DaniCamp,Fri Jun 16 2017 17:54:17 GMT+0200 (CEST),Fri Jun 16 2017 17:54:20 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:54:23 GMT+0200 (CEST),30,3,0,,1,agent,complete,xcally-motion-dialer\r
-a8c1679e-db18-4d22-9ad6-e363eeb7c905,3428957163,Giuseppe Carerio,DaniCamp,Fri Jun 16 2017 19:54:17 GMT+0200 (CEST),Fri Jun 16 2017 19:54:20 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 19:54:23 GMT+0200 (CEST),30,3,0,,1,agent,complete,xcally-motion-dialer\r
-903ec0e1-843b-42bf-b186-721535284942,3428957162,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 17:54:23 GMT+0200 (CEST),Fri Jun 16 2017 17:54:26 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:54:27 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-903ec0e1-843b-42bf-b186-721535284942,3428957162,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 19:54:23 GMT+0200 (CEST),Fri Jun 16 2017 19:54:26 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 19:54:27 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-8cb37cdd-8c52-4b8a-9e55-a7c1eba38428,3428957161,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 17:54:28 GMT+0200 (CEST),Fri Jun 16 2017 17:54:30 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 17:54:31 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-8cb37cdd-8c52-4b8a-9e55-a7c1eba38428,3428957161,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 19:54:28 GMT+0200 (CEST),Fri Jun 16 2017 19:54:30 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 19:54:31 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-89720e18-035c-4343-afac-44d5634c65cf,3428957163,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 18:08:17 GMT+0200 (CEST),Fri Jun 16 2017 18:08:19 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 18:08:26 GMT+0200 (CEST),2,7,0,,1,agent,complete,xcally-motion-dialer\r
-89720e18-035c-4343-afac-44d5634c65cf,3428957163,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 20:08:17 GMT+0200 (CEST),Fri Jun 16 2017 20:08:19 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 20:08:26 GMT+0200 (CEST),2,7,0,,1,agent,complete,xcally-motion-dialer\r
-1fcfffea-e357-4877-a958-fb52ca6f0e85,3428957163,Giuseppe Carerio,DaniCamp,Fri Jun 16 2017 18:08:27 GMT+0200 (CEST),Fri Jun 16 2017 18:08:29 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 18:08:30 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-1fcfffea-e357-4877-a958-fb52ca6f0e85,3428957163,Giuseppe Carerio,DaniCamp,Fri Jun 16 2017 20:08:27 GMT+0200 (CEST),Fri Jun 16 2017 20:08:30 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 20:08:30 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-4915e896-9419-4185-9dce-0c8bc7ab7563,3428957162,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 18:08:31 GMT+0200 (CEST),Fri Jun 16 2017 18:08:34 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 18:08:35 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-4915e896-9419-4185-9dce-0c8bc7ab7563,3428957162,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 20:08:31 GMT+0200 (CEST),Fri Jun 16 2017 20:08:34 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 20:08:35 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-379ca2d8-25d2-4e3a-a27d-81956d72bed9,3428957161,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 18:08:36 GMT+0200 (CEST),Fri Jun 16 2017 18:08:45 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 18:08:46 GMT+0200 (CEST),9,1,0,,1,agent,complete,xcally-motion-dialer\r
-379ca2d8-25d2-4e3a-a27d-81956d72bed9,3428957161,Giuseppe Careri,DaniCamp,Fri Jun 16 2017 20:08:36 GMT+0200 (CEST),Fri Jun 16 2017 20:08:45 GMT+0200 (CEST),daniele.cinti,Fri Jun 16 2017 20:08:46 GMT+0200 (CEST),9,1,0,,1,agent,complete,xcally-motion-dialer\r
diff --git a/server/files/reports/Details-oCeZ.csv b/server/files/reports/Details-oCeZ.csv
deleted file mode 100644 (file)
index 1ad5855..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-UniqueId,CallerIdNum,CallerIdName,Queue,Agent,AgentCalledAt,AgentConnectAt,AgentCompleteAt,AnswerTime,TalkTime,AgentACW,AgentACWTime,AgentComplete,HangupReason,LastEvent,DID
-1494237161.84,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 13:52:41 GMT+0200 (CEST),Mon May 08 2017 13:52:43 GMT+0200 (CEST),Mon May 08 2017 13:52:44 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494237170.88,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 13:52:50 GMT+0200 (CEST),Mon May 08 2017 13:52:52 GMT+0200 (CEST),Mon May 08 2017 13:52:53 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494237274.92,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 13:54:34 GMT+0200 (CEST),Mon May 08 2017 13:54:35 GMT+0200 (CEST),Mon May 08 2017 13:54:36 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494237384.96,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 13:56:24 GMT+0200 (CEST),Mon May 08 2017 13:56:25 GMT+0200 (CEST),Mon May 08 2017 13:56:27 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494237432.100,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 13:57:12 GMT+0200 (CEST),Mon May 08 2017 13:57:13 GMT+0200 (CEST),Mon May 08 2017 13:57:14 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494237548.104,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 13:59:08 GMT+0200 (CEST),Mon May 08 2017 13:59:09 GMT+0200 (CEST),Mon May 08 2017 13:59:10 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494237604.108,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:00:04 GMT+0200 (CEST),Mon May 08 2017 14:00:05 GMT+0200 (CEST),Mon May 08 2017 14:00:07 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494238007.112,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:06:47 GMT+0200 (CEST),Mon May 08 2017 14:06:48 GMT+0200 (CEST),Mon May 08 2017 14:06:49 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494238029.116,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:07:10 GMT+0200 (CEST),Mon May 08 2017 14:07:11 GMT+0200 (CEST),Mon May 08 2017 14:07:12 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494238302.120,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:11:42 GMT+0200 (CEST),Mon May 08 2017 14:11:45 GMT+0200 (CEST),Mon May 08 2017 14:11:46 GMT+0200 (CEST),3,1,0,,1,agent,complete,4444\r
-1494238360.124,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:12:40 GMT+0200 (CEST),Mon May 08 2017 14:12:40 GMT+0200 (CEST),Mon May 08 2017 14:12:41 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494238438.128,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:13:58 GMT+0200 (CEST),Mon May 08 2017 14:13:59 GMT+0200 (CEST),Mon May 08 2017 14:14:00 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494238449.132,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:14:09 GMT+0200 (CEST),Mon May 08 2017 14:14:10 GMT+0200 (CEST),Mon May 08 2017 14:14:11 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494238595.136,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:16:35 GMT+0200 (CEST),Mon May 08 2017 14:16:36 GMT+0200 (CEST),Mon May 08 2017 14:16:37 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494239536.140,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:32:16 GMT+0200 (CEST),Mon May 08 2017 14:32:19 GMT+0200 (CEST),Mon May 08 2017 14:32:19 GMT+0200 (CEST),3,0,0,,1,agent,complete,4444\r
-1494239599.144,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:33:19 GMT+0200 (CEST),Mon May 08 2017 14:33:20 GMT+0200 (CEST),Mon May 08 2017 14:33:22 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494239605.148,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:33:25 GMT+0200 (CEST),Mon May 08 2017 14:33:26 GMT+0200 (CEST),Mon May 08 2017 14:33:27 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494239644.152,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 14:34:04 GMT+0200 (CEST),Mon May 08 2017 14:34:06 GMT+0200 (CEST),Mon May 08 2017 14:34:07 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494254648.156,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 18:44:08 GMT+0200 (CEST),Mon May 08 2017 18:44:09 GMT+0200 (CEST),Mon May 08 2017 18:44:10 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494254965.160,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 18:49:25 GMT+0200 (CEST),Mon May 08 2017 18:49:26 GMT+0200 (CEST),Mon May 08 2017 18:49:27 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494255013.164,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 18:50:13 GMT+0200 (CEST),Mon May 08 2017 18:50:14 GMT+0200 (CEST),Mon May 08 2017 18:50:15 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494255222.168,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 18:53:42 GMT+0200 (CEST),Mon May 08 2017 18:53:43 GMT+0200 (CEST),Mon May 08 2017 18:53:44 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494256648.176,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:17:28 GMT+0200 (CEST),Mon May 08 2017 19:17:29 GMT+0200 (CEST),Mon May 08 2017 19:17:30 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494257156.180,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:25:56 GMT+0200 (CEST),Mon May 08 2017 19:25:57 GMT+0200 (CEST),Mon May 08 2017 19:25:59 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494257238.184,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:27:18 GMT+0200 (CEST),Mon May 08 2017 19:27:19 GMT+0200 (CEST),Mon May 08 2017 19:27:20 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494257334.188,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:28:54 GMT+0200 (CEST),Mon May 08 2017 19:28:55 GMT+0200 (CEST),Mon May 08 2017 19:28:56 GMT+0200 (CEST),1,1,0,,1,caller,complete,4444\r
-1494257925.192,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:38:45 GMT+0200 (CEST),Mon May 08 2017 19:38:46 GMT+0200 (CEST),Mon May 08 2017 19:38:49 GMT+0200 (CEST),1,3,0,,1,agent,complete,4444\r
-1494258330.196,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:45:30 GMT+0200 (CEST),Mon May 08 2017 19:45:38 GMT+0200 (CEST),Mon May 08 2017 19:45:39 GMT+0200 (CEST),8,1,0,,1,agent,complete,4444\r
-1494258425.200,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:47:05 GMT+0200 (CEST),Mon May 08 2017 19:47:06 GMT+0200 (CEST),Mon May 08 2017 19:47:07 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494258468.204,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:47:48 GMT+0200 (CEST),Mon May 08 2017 19:47:49 GMT+0200 (CEST),Mon May 08 2017 19:47:50 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494258504.208,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:48:24 GMT+0200 (CEST),Mon May 08 2017 19:48:24 GMT+0200 (CEST),Mon May 08 2017 19:48:25 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494258541.212,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:49:02 GMT+0200 (CEST),Mon May 08 2017 19:49:02 GMT+0200 (CEST),Mon May 08 2017 19:49:03 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494258587.216,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:49:47 GMT+0200 (CEST),Mon May 08 2017 19:49:48 GMT+0200 (CEST),Mon May 08 2017 19:49:50 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494258676.220,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:51:16 GMT+0200 (CEST),Mon May 08 2017 19:51:17 GMT+0200 (CEST),Mon May 08 2017 19:51:18 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494258825.224,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 19:53:45 GMT+0200 (CEST),Mon May 08 2017 19:53:46 GMT+0200 (CEST),Mon May 08 2017 19:53:48 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494259510.228,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 20:05:10 GMT+0200 (CEST),Mon May 08 2017 20:05:11 GMT+0200 (CEST),Mon May 08 2017 20:05:11 GMT+0200 (CEST),1,0,0,,1,agent,complete,4444\r
-1494259527.232,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 20:05:27 GMT+0200 (CEST),Mon May 08 2017 20:05:29 GMT+0200 (CEST),Mon May 08 2017 20:05:30 GMT+0200 (CEST),2,1,0,,1,agent,complete,4444\r
-1494259618.236,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 20:06:58 GMT+0200 (CEST),Mon May 08 2017 20:06:59 GMT+0200 (CEST),Mon May 08 2017 20:07:01 GMT+0200 (CEST),1,2,0,,1,agent,complete,4444\r
-1494259749.240,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 20:09:09 GMT+0200 (CEST),Mon May 08 2017 20:09:10 GMT+0200 (CEST),Mon May 08 2017 20:09:11 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494259834.244,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 20:10:34 GMT+0200 (CEST),Mon May 08 2017 20:10:35 GMT+0200 (CEST),Mon May 08 2017 20:10:36 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494260006.248,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon May 08 2017 20:13:26 GMT+0200 (CEST),Mon May 08 2017 20:13:27 GMT+0200 (CEST),Mon May 08 2017 20:13:28 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494319961.1374,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 12:52:41 GMT+0200 (CEST),Tue May 09 2017 12:52:42 GMT+0200 (CEST),Tue May 09 2017 12:52:43 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494322452.1381,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 13:34:12 GMT+0200 (CEST),Tue May 09 2017 13:34:13 GMT+0200 (CEST),Tue May 09 2017 13:34:14 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494322607.1385,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 13:36:48 GMT+0200 (CEST),Tue May 09 2017 13:36:52 GMT+0200 (CEST),Tue May 09 2017 13:36:54 GMT+0200 (CEST),4,2,0,,1,caller,complete,4444\r
-1494322862.1389,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 13:41:02 GMT+0200 (CEST),Tue May 09 2017 13:41:02 GMT+0200 (CEST),Tue May 09 2017 13:41:03 GMT+0200 (CEST),0,1,0,,1,agent,complete,4444\r
-1494324320.1399,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 14:05:20 GMT+0200 (CEST),Tue May 09 2017 14:05:21 GMT+0200 (CEST),Tue May 09 2017 14:05:22 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494324887.1412,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 14:14:47 GMT+0200 (CEST),Tue May 09 2017 14:14:48 GMT+0200 (CEST),Tue May 09 2017 14:14:49 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494325114.1420,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 14:18:34 GMT+0200 (CEST),Tue May 09 2017 14:18:35 GMT+0200 (CEST),Tue May 09 2017 14:18:36 GMT+0200 (CEST),1,1,0,,1,agent,complete,4444\r
-1494332485.1693,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Tue May 09 2017 16:21:26 GMT+0200 (CEST),Tue May 09 2017 16:21:27 GMT+0200 (CEST),Tue May 09 2017 16:21:31 GMT+0200 (CEST),1,4,0,,1,agent,complete,4444\r
-dcc39018-8e0a-4e5a-877b-2c445d410acd,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 14:06:31 GMT+0200 (CEST),Thu May 11 2017 14:06:32 GMT+0200 (CEST),Thu May 11 2017 14:06:41 GMT+0200 (CEST),1,9,0,,1,caller,complete,xcally-motion-dialer\r
-b004e057-3ee9-439f-8b1b-09be6e33d8c1,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 14:06:42 GMT+0200 (CEST),Thu May 11 2017 14:06:43 GMT+0200 (CEST),Thu May 11 2017 14:06:52 GMT+0200 (CEST),1,9,0,,1,caller,complete,xcally-motion-dialer\r
-56a9f38a-7cfe-44ea-a0a5-ff0b833eafb3,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 14:21:24 GMT+0200 (CEST),Thu May 11 2017 14:21:26 GMT+0200 (CEST),Thu May 11 2017 14:21:28 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-7fe3fa21-980f-4a46-8a68-188ae8bad484,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 14:21:28 GMT+0200 (CEST),Thu May 11 2017 14:21:29 GMT+0200 (CEST),Thu May 11 2017 14:21:31 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-68b18a07-d71f-48d9-96d9-3320d821ca11,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 14:28:03 GMT+0200 (CEST),Thu May 11 2017 14:28:05 GMT+0200 (CEST),Thu May 11 2017 14:28:07 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-3da466e0-45e5-44ed-a770-01df0d9c2b5e,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 14:28:07 GMT+0200 (CEST),Thu May 11 2017 14:28:08 GMT+0200 (CEST),Thu May 11 2017 14:28:10 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-29fcbfc9-4518-4298-9cd9-933f1d01fb47,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 14:49:43 GMT+0200 (CEST),Thu May 11 2017 14:49:45 GMT+0200 (CEST),Thu May 11 2017 14:49:48 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-38fd95b9-0c54-48cf-90f5-3a065958469d,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 14:49:49 GMT+0200 (CEST),Thu May 11 2017 14:49:50 GMT+0200 (CEST),Thu May 11 2017 14:49:54 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-5a43abda-6f2a-4a84-a07d-e154de7c58c6,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 14:53:02 GMT+0200 (CEST),Thu May 11 2017 14:53:05 GMT+0200 (CEST),Thu May 11 2017 14:53:09 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-62fb8e82-5b64-4135-878a-174562b0cbfc,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 14:53:09 GMT+0200 (CEST),Thu May 11 2017 14:53:10 GMT+0200 (CEST),Thu May 11 2017 14:53:14 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-e904b8fe-afdc-464c-b621-2fc8dfeac0cb,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 14:58:42 GMT+0200 (CEST),Thu May 11 2017 14:58:44 GMT+0200 (CEST),Thu May 11 2017 14:58:46 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-ac2866b5-5300-43de-93f5-848e43f59eab,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 14:58:46 GMT+0200 (CEST),Thu May 11 2017 14:58:48 GMT+0200 (CEST),Thu May 11 2017 14:58:51 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-d1a313c4-5563-4a7c-b3aa-0f6963421dc3,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 15:01:12 GMT+0200 (CEST),Thu May 11 2017 15:01:14 GMT+0200 (CEST),Thu May 11 2017 15:01:15 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-79b82c99-cf91-4fd1-869f-5661617ca235,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 15:01:17 GMT+0200 (CEST),Thu May 11 2017 15:01:17 GMT+0200 (CEST),Thu May 11 2017 15:01:19 GMT+0200 (CEST),0,2,0,,1,agent,complete,xcally-motion-dialer\r
-2dc8622f-182e-4c44-a65e-d4bfed80f596,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 16:49:06 GMT+0200 (CEST),Thu May 11 2017 16:49:08 GMT+0200 (CEST),Thu May 11 2017 16:49:10 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-664811bf-bff1-4002-ba43-5d7b900d9c11,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 16:49:11 GMT+0200 (CEST),Thu May 11 2017 16:49:12 GMT+0200 (CEST),Thu May 11 2017 16:49:13 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-4bf5405a-a511-46ac-a061-9ee6f9a10b1d,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 16:58:30 GMT+0200 (CEST),Thu May 11 2017 16:58:32 GMT+0200 (CEST),Thu May 11 2017 16:58:34 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-2730101b-6db7-473a-915a-cfb0f8865f1f,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 16:58:36 GMT+0200 (CEST),Thu May 11 2017 16:58:37 GMT+0200 (CEST),Thu May 11 2017 16:58:38 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-eb66c428-00f6-4498-9883-a9169477d15a,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:02:52 GMT+0200 (CEST),Thu May 11 2017 17:02:53 GMT+0200 (CEST),Thu May 11 2017 17:02:54 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-865b0c8a-c4d1-49db-bc80-c69f6389a2db,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:03:29 GMT+0200 (CEST),Thu May 11 2017 17:03:30 GMT+0200 (CEST),Thu May 11 2017 17:03:35 GMT+0200 (CEST),1,5,0,,1,agent,complete,xcally-motion-dialer\r
-45c89d50-956f-4b9c-b4d0-ff47b3f383fc,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:06:57 GMT+0200 (CEST),Thu May 11 2017 17:06:58 GMT+0200 (CEST),Thu May 11 2017 17:07:00 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-223eefc3-60ac-49ab-9035-d93ca76e8434,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:11:45 GMT+0200 (CEST),Thu May 11 2017 17:11:48 GMT+0200 (CEST),Thu May 11 2017 17:11:52 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-a861fec9-d8ea-4b4e-bf71-b81eb13d6d42,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:11:53 GMT+0200 (CEST),Thu May 11 2017 17:11:54 GMT+0200 (CEST),Thu May 11 2017 17:11:56 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-4fa15b3e-5ad7-48c7-86af-dffdcb3f3a0c,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:17:50 GMT+0200 (CEST),Thu May 11 2017 17:17:52 GMT+0200 (CEST),Thu May 11 2017 17:18:00 GMT+0200 (CEST),2,8,0,,1,caller,complete,xcally-motion-dialer\r
-697ba96b-d815-44c1-82c6-58f7eba3fb42,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:23:03 GMT+0200 (CEST),Thu May 11 2017 17:23:03 GMT+0200 (CEST),Thu May 11 2017 17:23:05 GMT+0200 (CEST),0,2,0,,1,agent,complete,xcally-motion-dialer\r
-96d87314-4572-4225-a266-c7b794ddd3a2,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:27:28 GMT+0200 (CEST),Thu May 11 2017 17:27:29 GMT+0200 (CEST),Thu May 11 2017 17:27:38 GMT+0200 (CEST),1,9,0,,1,caller,complete,xcally-motion-dialer\r
-dd234fee-8870-4c05-9ba5-836d3d486777,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:27:39 GMT+0200 (CEST),Thu May 11 2017 17:27:40 GMT+0200 (CEST),Thu May 11 2017 17:27:46 GMT+0200 (CEST),1,6,0,,1,agent,complete,xcally-motion-dialer\r
-384d8434-49ff-4443-8a8d-76c472768e1b,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:29:44 GMT+0200 (CEST),Thu May 11 2017 17:29:46 GMT+0200 (CEST),Thu May 11 2017 17:29:54 GMT+0200 (CEST),2,8,0,,1,caller,complete,xcally-motion-dialer\r
-fba41d1d-1803-4a38-9c3f-ef86969439cd,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:29:55 GMT+0200 (CEST),Thu May 11 2017 17:29:58 GMT+0200 (CEST),Thu May 11 2017 17:30:00 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-db69a464-a560-4e3e-a1fa-dcef40844bb4,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:48:09 GMT+0200 (CEST),Thu May 11 2017 17:48:11 GMT+0200 (CEST),Thu May 11 2017 17:48:12 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-f43c6039-5620-4cfa-8c43-3fc0b0ae90b4,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:48:13 GMT+0200 (CEST),Thu May 11 2017 17:48:14 GMT+0200 (CEST),Thu May 11 2017 17:48:15 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-002addbf-def5-4636-9a46-e657cfe1a96b,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:48:54 GMT+0200 (CEST),Thu May 11 2017 17:48:55 GMT+0200 (CEST),Thu May 11 2017 17:48:57 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-3d114381-e067-4d61-b765-39562e1d2d29,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:48:57 GMT+0200 (CEST),Thu May 11 2017 17:48:58 GMT+0200 (CEST),Thu May 11 2017 17:48:58 GMT+0200 (CEST),0,1,0,,1,agent,complete,xcally-motion-dialer\r
-1b812c90-3fcf-4ffe-a577-114b0508111c,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:51:50 GMT+0200 (CEST),Thu May 11 2017 17:51:53 GMT+0200 (CEST),Thu May 11 2017 17:52:00 GMT+0200 (CEST),3,7,0,,1,caller,complete,xcally-motion-dialer\r
-839a9de7-ae51-46e4-a225-2ab96f820564,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:52:01 GMT+0200 (CEST),Thu May 11 2017 17:52:04 GMT+0200 (CEST),Thu May 11 2017 17:52:05 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-960350ac-bc72-4b63-9f37-d99f971eef0c,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:53:44 GMT+0200 (CEST),Thu May 11 2017 17:53:45 GMT+0200 (CEST),Thu May 11 2017 17:53:46 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-ec35f813-ba9e-4e18-a523-e305f288cbd7,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 17:53:47 GMT+0200 (CEST),Thu May 11 2017 17:53:48 GMT+0200 (CEST),Thu May 11 2017 17:53:49 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-b33c239e-8f1a-4483-8de5-a6d2fb1e725d,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 17:58:32 GMT+0200 (CEST),Thu May 11 2017 17:58:35 GMT+0200 (CEST),Thu May 11 2017 17:58:43 GMT+0200 (CEST),3,8,0,,1,caller,complete,xcally-motion-dialer\r
-d2689f46-bcb0-4865-b49e-15e2b2cf37ba,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 18:08:16 GMT+0200 (CEST),Thu May 11 2017 18:08:17 GMT+0200 (CEST),Thu May 11 2017 18:08:18 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-b4c07664-d209-47c0-b0ed-fd17a36206c8,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 18:08:19 GMT+0200 (CEST),Thu May 11 2017 18:08:20 GMT+0200 (CEST),Thu May 11 2017 18:08:20 GMT+0200 (CEST),0,1,0,,1,agent,complete,xcally-motion-dialer\r
-bb8196a9-ca1b-4c62-b7e5-51dcb77acfc9,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Thu May 11 2017 18:20:23 GMT+0200 (CEST),Thu May 11 2017 18:20:25 GMT+0200 (CEST),Thu May 11 2017 18:20:25 GMT+0200 (CEST),2,0,0,,1,agent,complete,xcally-motion-dialer\r
-8caa23fa-4f36-408f-b856-5eb9ede4c6f2,347947492,null,DaniCamp,daniele.cinti,Thu May 11 2017 18:20:26 GMT+0200 (CEST),Thu May 11 2017 18:20:27 GMT+0200 (CEST),Thu May 11 2017 18:20:28 GMT+0200 (CEST),1,0,0,,1,agent,complete,xcally-motion-dialer\r
-15841efd-a610-43ab-93f4-0ec1e972ca9c,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Fri May 12 2017 12:50:39 GMT+0200 (CEST),Fri May 12 2017 12:50:41 GMT+0200 (CEST),Fri May 12 2017 12:50:42 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-4af846a8-a70f-4f95-b2a3-37ccce2dac32,347947492,null,DaniCamp,daniele.cinti,Fri May 12 2017 12:50:43 GMT+0200 (CEST),Fri May 12 2017 12:50:45 GMT+0200 (CEST),Fri May 12 2017 12:50:47 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-77a85942-6e46-4bb9-8c29-dd50f5125ccb,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Fri May 12 2017 12:54:16 GMT+0200 (CEST),Fri May 12 2017 12:54:18 GMT+0200 (CEST),Fri May 12 2017 12:54:21 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-f550c18b-f60b-480c-9698-a69bf7106706,347947492,null,DaniCamp,daniele.cinti,Fri May 12 2017 12:54:21 GMT+0200 (CEST),Fri May 12 2017 12:54:22 GMT+0200 (CEST),Fri May 12 2017 12:54:23 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-97fbc9c3-fdf8-4692-860c-f1ba741a5ee3,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Fri May 12 2017 13:16:30 GMT+0200 (CEST),Fri May 12 2017 13:16:32 GMT+0200 (CEST),Fri May 12 2017 13:16:34 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-3f3cb3cd-5e44-4a32-8638-6f7c3c6775d4,347947492,null,DaniCamp,daniele.cinti,Fri May 12 2017 13:16:37 GMT+0200 (CEST),Fri May 12 2017 13:16:38 GMT+0200 (CEST),Fri May 12 2017 13:16:40 GMT+0200 (CEST),2,2,0,,1,agent,complete,xcally-motion-dialer\r
-055232da-1a93-4c59-a2ab-f4cb975e0603,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Fri May 12 2017 13:18:13 GMT+0200 (CEST),Fri May 12 2017 13:18:15 GMT+0200 (CEST),Fri May 12 2017 13:18:28 GMT+0200 (CEST),2,13,0,,1,caller,complete,xcally-motion-dialer\r
-d60e44f9-c880-4e70-a614-b0882316f6c7,347947492,Daniele Cinti,DaniCamp,daniele.cinti,Fri May 12 2017 16:00:59 GMT+0200 (CEST),Fri May 12 2017 16:01:02 GMT+0200 (CEST),Fri May 12 2017 16:01:03 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-e174e583-d94a-4ad0-be57-07b8d3ad14b4,347947492,null,DaniCamp,daniele.cinti,Fri May 12 2017 16:01:04 GMT+0200 (CEST),Fri May 12 2017 16:01:04 GMT+0200 (CEST),Fri May 12 2017 16:01:05 GMT+0200 (CEST),0,1,0,,1,agent,complete,xcally-motion-dialer\r
-ce6944b9-05b8-4425-9139-acf91d8b29ed,66699910639,Innocenzo639 Biondo639,DaniCamp,daniele.cinti,Tue May 30 2017 11:58:59 GMT+0200 (CEST),Tue May 30 2017 11:59:01 GMT+0200 (CEST),Tue May 30 2017 11:59:04 GMT+0200 (CEST),2,3,0,,1,caller,complete,xcally-motion-dialer\r
-5879219f-f80d-4e26-8660-52d972b512bb,66699911323,Innocenzo1323 Biondo1323,DaniCamp,daniele.cinti,Tue May 30 2017 11:59:12 GMT+0200 (CEST),Tue May 30 2017 11:59:15 GMT+0200 (CEST),Tue May 30 2017 11:59:17 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-b10da81f-2381-42d0-a584-aee5b82e7ba3,66699911245,Innocenzo1245 Biondo1245,DaniCamp,daniele.cinti,Tue May 30 2017 11:59:22 GMT+0200 (CEST),Tue May 30 2017 11:59:23 GMT+0200 (CEST),Tue May 30 2017 11:59:24 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-f1d25852-2453-4172-9cfa-462ca3f2bea0,66699911601,Innocenzo1601 Biondo1601,DaniCamp,daniele.cinti,Tue May 30 2017 12:10:15 GMT+0200 (CEST),Tue May 30 2017 12:10:15 GMT+0200 (CEST),Tue May 30 2017 12:10:20 GMT+0200 (CEST),0,5,0,,1,agent,complete,xcally-motion-dialer\r
-182f7597-1f93-46ee-8ada-60b7bf5eafb1,66699910111,Innocenzo111 Biondo111,DaniCamp,daniele.cinti,Tue May 30 2017 12:10:37 GMT+0200 (CEST),Tue May 30 2017 12:10:38 GMT+0200 (CEST),Tue May 30 2017 12:10:40 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-ad9044a2-e9ba-4078-b77f-65579bb53c2d,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 12:25:29 GMT+0200 (CEST),Tue May 30 2017 12:25:30 GMT+0200 (CEST),Tue May 30 2017 12:25:33 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-c2e678a6-32a0-426c-8710-881dabf78e2c,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 12:35:03 GMT+0200 (CEST),Tue May 30 2017 12:35:05 GMT+0200 (CEST),Tue May 30 2017 12:35:08 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-fd5ee1cb-47ed-492c-a876-f17df1a0a830,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:15:43 GMT+0200 (CEST),Tue May 30 2017 15:15:44 GMT+0200 (CEST),Tue May 30 2017 15:15:48 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-71f9d398-a63f-4cd9-b880-d8d37de9c976,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 15:15:48 GMT+0200 (CEST),Tue May 30 2017 15:15:50 GMT+0200 (CEST),Tue May 30 2017 15:15:51 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-e1c08049-158a-40d5-966a-4b607473966a,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:35:28 GMT+0200 (CEST),Tue May 30 2017 15:35:29 GMT+0200 (CEST),Tue May 30 2017 15:35:32 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-e1c08049-158a-40d5-966a-4b607473966a,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:35:28 GMT+0200 (CEST),Tue May 30 2017 15:35:29 GMT+0200 (CEST),Tue May 30 2017 15:35:32 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-f0698270-bc25-4d89-aeca-d30d0b2c9e18,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:35:33 GMT+0200 (CEST),Tue May 30 2017 15:35:35 GMT+0200 (CEST),Tue May 30 2017 15:35:36 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-f0698270-bc25-4d89-aeca-d30d0b2c9e18,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:35:33 GMT+0200 (CEST),Tue May 30 2017 15:35:35 GMT+0200 (CEST),Tue May 30 2017 15:35:36 GMT+0200 (CEST),2,1,0,,1,agent,complete,xcally-motion-dialer\r
-ad350fc9-01db-4d45-8219-caad116e383f,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 15:47:03 GMT+0200 (CEST),Tue May 30 2017 15:47:06 GMT+0200 (CEST),Tue May 30 2017 15:47:10 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-ad350fc9-01db-4d45-8219-caad116e383f,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 15:47:03 GMT+0200 (CEST),Tue May 30 2017 15:47:06 GMT+0200 (CEST),Tue May 30 2017 15:47:10 GMT+0200 (CEST),3,4,0,,1,agent,complete,xcally-motion-dialer\r
-861a8477-8e9f-4be4-9e8d-9a11e5fdf2c2,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:47:11 GMT+0200 (CEST),Tue May 30 2017 15:47:12 GMT+0200 (CEST),Tue May 30 2017 15:47:16 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-861a8477-8e9f-4be4-9e8d-9a11e5fdf2c2,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:47:11 GMT+0200 (CEST),Tue May 30 2017 15:47:12 GMT+0200 (CEST),Tue May 30 2017 15:47:16 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-64852a33-9e27-42c6-bccf-f594f727ec10,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 15:51:03 GMT+0200 (CEST),Tue May 30 2017 15:51:06 GMT+0200 (CEST),Tue May 30 2017 15:51:08 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-64852a33-9e27-42c6-bccf-f594f727ec10,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 15:51:03 GMT+0200 (CEST),Tue May 30 2017 15:51:06 GMT+0200 (CEST),Tue May 30 2017 15:51:08 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-de760063-080a-4a4b-98d3-1f411890cc07,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:51:09 GMT+0200 (CEST),Tue May 30 2017 15:51:10 GMT+0200 (CEST),Tue May 30 2017 15:51:13 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-de760063-080a-4a4b-98d3-1f411890cc07,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:51:09 GMT+0200 (CEST),Tue May 30 2017 15:51:10 GMT+0200 (CEST),Tue May 30 2017 15:51:13 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-363579e0-8332-40ce-8fad-c4cd4111bee1,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:51:15 GMT+0200 (CEST),Tue May 30 2017 15:51:18 GMT+0200 (CEST),Tue May 30 2017 15:51:20 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-363579e0-8332-40ce-8fad-c4cd4111bee1,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:51:15 GMT+0200 (CEST),Tue May 30 2017 15:51:18 GMT+0200 (CEST),Tue May 30 2017 15:51:20 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-4fcb923d-e86c-4712-8a77-0239958bd705,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:54:25 GMT+0200 (CEST),Tue May 30 2017 15:54:26 GMT+0200 (CEST),Tue May 30 2017 15:54:30 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-d1e524c0-4bcd-40c2-af3b-56107c8d0e99,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 15:56:50 GMT+0200 (CEST),Tue May 30 2017 15:56:51 GMT+0200 (CEST),Tue May 30 2017 15:57:23 GMT+0200 (CEST),1,32,0,,1,agent,complete,xcally-motion-dialer\r
-b1e22282-7b2f-4a61-ab9a-b25e076d8373,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 16:01:08 GMT+0200 (CEST),Tue May 30 2017 16:01:09 GMT+0200 (CEST),Tue May 30 2017 16:01:26 GMT+0200 (CEST),1,17,0,,1,agent,complete,xcally-motion-dialer\r
-8fdbdcb2-1ab6-488d-bd57-58b8512a7285,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 16:03:35 GMT+0200 (CEST),Tue May 30 2017 16:03:38 GMT+0200 (CEST),Tue May 30 2017 16:06:17 GMT+0200 (CEST),3,159,0,,1,agent,complete,xcally-motion-dialer\r
-d3da7646-451f-4df4-98d3-2335695844a0,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 16:06:18 GMT+0200 (CEST),Tue May 30 2017 16:06:21 GMT+0200 (CEST),Tue May 30 2017 16:06:23 GMT+0200 (CEST),3,2,0,,1,agent,complete,xcally-motion-dialer\r
-f38f557a-baad-428d-ba2a-2593abc5e8dd,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 16:06:25 GMT+0200 (CEST),Tue May 30 2017 16:06:26 GMT+0200 (CEST),Tue May 30 2017 16:06:29 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-b4ad3a2e-881e-4adc-8b04-a8763793a840,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 16:31:53 GMT+0200 (CEST),Tue May 30 2017 16:31:56 GMT+0200 (CEST),Tue May 30 2017 16:31:59 GMT+0200 (CEST),3,3,0,,1,caller,complete,xcally-motion-dialer\r
-dff36e1f-d2e2-4b3d-851b-5399a7dfe34a,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 16:32:31 GMT+0200 (CEST),Tue May 30 2017 16:32:34 GMT+0200 (CEST),Tue May 30 2017 16:32:37 GMT+0200 (CEST),3,2,0,,1,caller,complete,xcally-motion-dialer\r
-d89034bf-7cef-418e-9033-6b4dda15dea6,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 16:32:37 GMT+0200 (CEST),Tue May 30 2017 16:32:40 GMT+0200 (CEST),Tue May 30 2017 16:33:47 GMT+0200 (CEST),3,67,0,,1,agent,complete,xcally-motion-dialer\r
-3117f3a3-ea35-40c6-acbe-6a7724e6cc84,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 16:34:09 GMT+0200 (CEST),Tue May 30 2017 16:34:11 GMT+0200 (CEST),Tue May 30 2017 16:34:14 GMT+0200 (CEST),2,3,0,,1,agent,complete,xcally-motion-dialer\r
-00251e8c-bf51-4ffe-b640-1c1a624f09c8,66699910609,Innocenzo609 Biondo609,DaniCamp,daniele.cinti,Tue May 30 2017 17:01:30 GMT+0200 (CEST),Tue May 30 2017 17:01:32 GMT+0200 (CEST),Tue May 30 2017 17:01:39 GMT+0200 (CEST),2,7,0,,1,agent,complete,xcally-motion-dialer\r
-40483b7a-ae5f-45d6-ac47-fe53ae24d6df,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 17:01:40 GMT+0200 (CEST),Tue May 30 2017 17:01:41 GMT+0200 (CEST),Tue May 30 2017 17:01:42 GMT+0200 (CEST),1,1,0,,1,agent,complete,xcally-motion-dialer\r
-02defe9f-2a82-445f-a708-32c99b4d2390,66699910549,Innocenzo549 Biondo549,DaniCamp,daniele.cinti,Tue May 30 2017 17:35:41 GMT+0200 (CEST),Tue May 30 2017 17:35:41 GMT+0200 (CEST),Tue May 30 2017 17:35:44 GMT+0200 (CEST),0,3,0,,1,agent,complete,xcally-motion-dialer\r
-1496653399.285543,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 13:03:20 GMT+0200 (CEST),Mon Jun 05 2017 13:03:25 GMT+0200 (CEST),Mon Jun 05 2017 13:04:00 GMT+0200 (CEST),5,35,0,,1,caller,complete,4444\r
-1496653399.285543,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 11:03:20 GMT+0200 (CEST),Mon Jun 05 2017 11:03:25 GMT+0200 (CEST),Mon Jun 05 2017 11:04:00 GMT+0200 (CEST),5,35,0,,1,caller,complete,4444\r
-1496653462.285639,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 13:04:22 GMT+0200 (CEST),Mon Jun 05 2017 13:04:23 GMT+0200 (CEST),Mon Jun 05 2017 13:04:46 GMT+0200 (CEST),1,23,0,,1,caller,complete,4444\r
-1496653462.285639,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 11:04:22 GMT+0200 (CEST),Mon Jun 05 2017 11:04:23 GMT+0200 (CEST),Mon Jun 05 2017 11:04:46 GMT+0200 (CEST),1,23,0,,1,caller,complete,4444\r
-1496653499.285647,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 13:04:59 GMT+0200 (CEST),Mon Jun 05 2017 13:05:01 GMT+0200 (CEST),Mon Jun 05 2017 13:05:21 GMT+0200 (CEST),2,20,0,,1,caller,complete,4444\r
-1496653499.285647,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 11:04:59 GMT+0200 (CEST),Mon Jun 05 2017 11:05:01 GMT+0200 (CEST),Mon Jun 05 2017 11:05:21 GMT+0200 (CEST),2,20,0,,1,caller,complete,4444\r
-1496653716.285735,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 13:08:36 GMT+0200 (CEST),Mon Jun 05 2017 13:08:40 GMT+0200 (CEST),Mon Jun 05 2017 13:09:03 GMT+0200 (CEST),4,23,0,,1,caller,complete,4444\r
-1496653716.285735,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 11:08:36 GMT+0200 (CEST),Mon Jun 05 2017 11:08:40 GMT+0200 (CEST),Mon Jun 05 2017 11:09:03 GMT+0200 (CEST),4,23,0,,1,caller,complete,4444\r
-1496654906.286070,daniele.cinti.tel,Daniele Cinti Tel,daniQueue,daniele.cinti,Mon Jun 05 2017 11:28:26 GMT+0200 (CEST),Mon Jun 05 2017 11:28:31 GMT+0200 (CEST),Mon Jun 05 2017 11:28:39 GMT+0200 (CEST),5,8,0,,1,agent,complete,4444\r
-1497343593.533286,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 10:46:34 GMT+0200 (CEST),Tue Jun 13 2017 10:46:36 GMT+0200 (CEST),Tue Jun 13 2017 10:46:40 GMT+0200 (CEST),3,4,0,,1,agent,complete,6000\r
-1497343593.533286,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 10:46:33 GMT+0200 (CEST),Tue Jun 13 2017 10:46:35 GMT+0200 (CEST),Tue Jun 13 2017 10:46:39 GMT+0200 (CEST),3,4,0,,1,agent,complete,6000\r
-1497343621.533290,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 10:47:01 GMT+0200 (CEST),Tue Jun 13 2017 10:47:02 GMT+0200 (CEST),Tue Jun 13 2017 10:48:12 GMT+0200 (CEST),2,70,0,,1,agent,complete,6000\r
-1497343621.533290,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 10:47:01 GMT+0200 (CEST),Tue Jun 13 2017 10:47:03 GMT+0200 (CEST),Tue Jun 13 2017 10:48:13 GMT+0200 (CEST),2,70,0,,1,agent,complete,6000\r
-1497345245.533294,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 11:14:05 GMT+0200 (CEST),Tue Jun 13 2017 11:14:06 GMT+0200 (CEST),Tue Jun 13 2017 11:14:39 GMT+0200 (CEST),1,33,0,,1,agent,complete,6000\r
-1497345245.533294,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 11:14:05 GMT+0200 (CEST),Tue Jun 13 2017 11:14:06 GMT+0200 (CEST),Tue Jun 13 2017 11:14:39 GMT+0200 (CEST),1,33,0,,1,agent,complete,6000\r
-1497345281.533298,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 11:14:42 GMT+0200 (CEST),Tue Jun 13 2017 11:14:43 GMT+0200 (CEST),Tue Jun 13 2017 11:16:45 GMT+0200 (CEST),1,122,0,,1,agent,complete,6000\r
-1497345281.533298,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 11:14:42 GMT+0200 (CEST),Tue Jun 13 2017 11:14:43 GMT+0200 (CEST),Tue Jun 13 2017 11:16:45 GMT+0200 (CEST),1,122,0,,1,agent,complete,6000\r
-1497365002.533956,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 16:43:22 GMT+0200 (CEST),Tue Jun 13 2017 16:43:23 GMT+0200 (CEST),Tue Jun 13 2017 16:43:25 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497365002.533956,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 16:43:22 GMT+0200 (CEST),Tue Jun 13 2017 16:43:23 GMT+0200 (CEST),Tue Jun 13 2017 16:43:26 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497365613.534021,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 16:53:33 GMT+0200 (CEST),Tue Jun 13 2017 16:53:36 GMT+0200 (CEST),Tue Jun 13 2017 16:53:37 GMT+0200 (CEST),3,1,0,,1,agent,complete,6000\r
-1497365613.534021,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 16:53:33 GMT+0200 (CEST),Tue Jun 13 2017 16:53:36 GMT+0200 (CEST),Tue Jun 13 2017 16:53:37 GMT+0200 (CEST),3,1,0,,1,agent,complete,6000\r
-1497365843.534033,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 16:57:40 GMT+0200 (CEST),Tue Jun 13 2017 16:57:49 GMT+0200 (CEST),Tue Jun 13 2017 16:58:22 GMT+0200 (CEST),26,33,0,,1,agent,complete,6000\r
-1497365843.534033,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 16:57:40 GMT+0200 (CEST),Tue Jun 13 2017 16:57:49 GMT+0200 (CEST),Tue Jun 13 2017 16:58:22 GMT+0200 (CEST),26,33,0,,1,agent,complete,6000\r
-1497367987.534701,2207,Enzino,Support,giuseppe.careri2,Tue Jun 13 2017 17:35:20 GMT+0200 (CEST),Tue Jun 13 2017 17:35:31 GMT+0200 (CEST),Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),144,4,0,,1,agent,complete,6000\r
-1497367987.534701,2207,Enzino,Support,giuseppe.careri2,Tue Jun 13 2017 17:35:20 GMT+0200 (CEST),Tue Jun 13 2017 17:35:32 GMT+0200 (CEST),Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),144,4,0,,1,agent,complete,6000\r
-1497367988.534702,2207,Enzino,Support,giuseppe.careri2,Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),Tue Jun 13 2017 17:35:36 GMT+0200 (CEST),Tue Jun 13 2017 17:35:37 GMT+0200 (CEST),148,1,0,,1,agent,complete,6000\r
-1497367988.534702,2207,Enzino,Support,giuseppe.careri2,Tue Jun 13 2017 17:35:35 GMT+0200 (CEST),Tue Jun 13 2017 17:35:36 GMT+0200 (CEST),Tue Jun 13 2017 17:35:37 GMT+0200 (CEST),148,1,0,,1,agent,complete,6000\r
-1497377604.543168,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 20:13:25 GMT+0200 (CEST),Tue Jun 13 2017 20:13:26 GMT+0200 (CEST),Tue Jun 13 2017 20:14:03 GMT+0200 (CEST),1,37,0,,1,agent,complete,6000\r
-1497378761.543283,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Tue Jun 13 2017 20:32:41 GMT+0200 (CEST),Tue Jun 13 2017 20:32:43 GMT+0200 (CEST),Tue Jun 13 2017 20:35:53 GMT+0200 (CEST),2,190,0,,1,agent,complete,6000\r
-1497430026.547048,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:47:06 GMT+0200 (CEST),Wed Jun 14 2017 10:47:08 GMT+0200 (CEST),Wed Jun 14 2017 10:47:13 GMT+0200 (CEST),2,5,0,,1,agent,complete,6000\r
-1497430026.547048,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:47:06 GMT+0200 (CEST),Wed Jun 14 2017 10:47:08 GMT+0200 (CEST),Wed Jun 14 2017 10:47:13 GMT+0200 (CEST),2,5,0,,1,agent,complete,6000\r
-1497430034.547055,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:47:14 GMT+0200 (CEST),Wed Jun 14 2017 10:47:16 GMT+0200 (CEST),Wed Jun 14 2017 10:47:41 GMT+0200 (CEST),2,25,0,,1,agent,complete,6000\r
-1497430034.547055,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:47:14 GMT+0200 (CEST),Wed Jun 14 2017 10:47:16 GMT+0200 (CEST),Wed Jun 14 2017 10:47:41 GMT+0200 (CEST),2,25,0,,1,agent,complete,6000\r
-1497430062.547060,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:47:43 GMT+0200 (CEST),Wed Jun 14 2017 10:47:45 GMT+0200 (CEST),Wed Jun 14 2017 10:48:11 GMT+0200 (CEST),2,26,0,,1,agent,complete,6000\r
-1497430062.547060,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:47:43 GMT+0200 (CEST),Wed Jun 14 2017 10:47:45 GMT+0200 (CEST),Wed Jun 14 2017 10:48:11 GMT+0200 (CEST),2,26,0,,1,agent,complete,6000\r
-1497430093.547065,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:48:13 GMT+0200 (CEST),Wed Jun 14 2017 10:48:14 GMT+0200 (CEST),Wed Jun 14 2017 11:00:46 GMT+0200 (CEST),1,752,0,,1,agent,complete,6000\r
-1497430093.547065,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 10:48:13 GMT+0200 (CEST),Wed Jun 14 2017 10:48:14 GMT+0200 (CEST),Wed Jun 14 2017 11:00:46 GMT+0200 (CEST),1,752,0,,1,agent,complete,6000\r
-1497430847.547080,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:00:47 GMT+0200 (CEST),Wed Jun 14 2017 11:00:48 GMT+0200 (CEST),Wed Jun 14 2017 11:02:13 GMT+0200 (CEST),1,85,0,,1,agent,complete,6000\r
-1497430847.547080,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:00:47 GMT+0200 (CEST),Wed Jun 14 2017 11:00:48 GMT+0200 (CEST),Wed Jun 14 2017 11:02:13 GMT+0200 (CEST),1,85,0,,1,agent,complete,6000\r
-1497430934.547084,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:02:14 GMT+0200 (CEST),Wed Jun 14 2017 11:02:16 GMT+0200 (CEST),Wed Jun 14 2017 11:05:03 GMT+0200 (CEST),2,167,0,,1,agent,complete,6000\r
-1497430934.547084,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:02:14 GMT+0200 (CEST),Wed Jun 14 2017 11:02:16 GMT+0200 (CEST),Wed Jun 14 2017 11:05:03 GMT+0200 (CEST),2,167,0,,1,agent,complete,6000\r
-1497431105.547088,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:05:05 GMT+0200 (CEST),Wed Jun 14 2017 11:05:06 GMT+0200 (CEST),Wed Jun 14 2017 11:50:46 GMT+0200 (CEST),1,2740,0,,1,agent,complete,6000\r
-1497433985.547756,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:53:05 GMT+0200 (CEST),Wed Jun 14 2017 11:53:06 GMT+0200 (CEST),Wed Jun 14 2017 11:53:38 GMT+0200 (CEST),1,32,0,,1,agent,complete,6000\r
-1497433985.547756,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:53:05 GMT+0200 (CEST),Wed Jun 14 2017 11:53:06 GMT+0200 (CEST),Wed Jun 14 2017 11:53:38 GMT+0200 (CEST),1,32,0,,1,agent,complete,6000\r
-1497434020.547768,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:53:40 GMT+0200 (CEST),Wed Jun 14 2017 11:53:41 GMT+0200 (CEST),Wed Jun 14 2017 11:55:13 GMT+0200 (CEST),1,92,0,,1,agent,complete,6000\r
-1497434020.547768,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:53:40 GMT+0200 (CEST),Wed Jun 14 2017 11:53:41 GMT+0200 (CEST),Wed Jun 14 2017 11:55:13 GMT+0200 (CEST),1,92,0,,1,agent,complete,6000\r
-1497434173.547793,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:56:13 GMT+0200 (CEST),Wed Jun 14 2017 11:56:14 GMT+0200 (CEST),Wed Jun 14 2017 11:57:16 GMT+0200 (CEST),1,62,0,,1,agent,complete,6000\r
-1497434173.547793,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:56:13 GMT+0200 (CEST),Wed Jun 14 2017 11:56:14 GMT+0200 (CEST),Wed Jun 14 2017 11:57:16 GMT+0200 (CEST),1,62,0,,1,agent,complete,6000\r
-1497434239.547802,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:57:19 GMT+0200 (CEST),Wed Jun 14 2017 11:57:20 GMT+0200 (CEST),Wed Jun 14 2017 12:03:18 GMT+0200 (CEST),1,358,0,,1,agent,complete,6000\r
-1497434239.547802,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 11:57:19 GMT+0200 (CEST),Wed Jun 14 2017 11:57:20 GMT+0200 (CEST),Wed Jun 14 2017 12:03:18 GMT+0200 (CEST),1,358,0,,1,agent,complete,6000\r
-1497434599.547846,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 12:03:19 GMT+0200 (CEST),Wed Jun 14 2017 12:03:21 GMT+0200 (CEST),Wed Jun 14 2017 12:03:48 GMT+0200 (CEST),2,27,0,,1,agent,complete,6000\r
-1497434599.547846,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 12:03:19 GMT+0200 (CEST),Wed Jun 14 2017 12:03:21 GMT+0200 (CEST),Wed Jun 14 2017 12:03:48 GMT+0200 (CEST),2,27,0,,1,agent,complete,6000\r
-1497434631.547850,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 12:03:51 GMT+0200 (CEST),Wed Jun 14 2017 12:03:52 GMT+0200 (CEST),Wed Jun 14 2017 12:04:44 GMT+0200 (CEST),1,52,0,,1,agent,complete,6000\r
-1497434631.547850,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 12:03:51 GMT+0200 (CEST),Wed Jun 14 2017 12:03:52 GMT+0200 (CEST),Wed Jun 14 2017 12:04:44 GMT+0200 (CEST),1,52,0,,1,agent,complete,6000\r
-1497434685.547856,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 12:04:45 GMT+0200 (CEST),Wed Jun 14 2017 12:04:46 GMT+0200 (CEST),Wed Jun 14 2017 12:57:31 GMT+0200 (CEST),1,3165,0,,1,agent,complete,6000\r
-1497434685.547856,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 12:04:45 GMT+0200 (CEST),Wed Jun 14 2017 12:04:46 GMT+0200 (CEST),Wed Jun 14 2017 12:57:31 GMT+0200 (CEST),1,3165,0,,1,agent,complete,6000\r
-1497439646.548401,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 13:27:26 GMT+0200 (CEST),Wed Jun 14 2017 13:27:28 GMT+0200 (CEST),Wed Jun 14 2017 13:31:45 GMT+0200 (CEST),2,257,0,,1,agent,complete,6000\r
-1497439908.548432,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 13:31:48 GMT+0200 (CEST),Wed Jun 14 2017 13:31:50 GMT+0200 (CEST),Wed Jun 14 2017 13:31:54 GMT+0200 (CEST),2,4,0,,1,agent,complete,6000\r
-1497439915.548436,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 13:31:55 GMT+0200 (CEST),Wed Jun 14 2017 13:31:57 GMT+0200 (CEST),Wed Jun 14 2017 13:32:09 GMT+0200 (CEST),2,12,0,,1,agent,complete,6000\r
-1497444676.548852,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:51:20 GMT+0200 (CEST),Wed Jun 14 2017 14:51:21 GMT+0200 (CEST),Wed Jun 14 2017 14:53:22 GMT+0200 (CEST),1,121,0,,1,agent,complete,6000\r
-1497444676.548852,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:51:16 GMT+0200 (CEST),Wed Jun 14 2017 14:51:17 GMT+0200 (CEST),Wed Jun 14 2017 14:53:18 GMT+0200 (CEST),1,121,0,,1,agent,complete,6000\r
-1497444800.548860,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:53:24 GMT+0200 (CEST),Wed Jun 14 2017 14:53:26 GMT+0200 (CEST),Wed Jun 14 2017 14:53:30 GMT+0200 (CEST),2,4,0,,1,agent,complete,6000\r
-1497444800.548860,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:53:20 GMT+0200 (CEST),Wed Jun 14 2017 14:53:22 GMT+0200 (CEST),Wed Jun 14 2017 14:53:26 GMT+0200 (CEST),2,4,0,,1,agent,complete,6000\r
-1497444807.548864,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:53:31 GMT+0200 (CEST),Wed Jun 14 2017 14:53:33 GMT+0200 (CEST),Wed Jun 14 2017 14:53:39 GMT+0200 (CEST),2,6,0,,1,agent,complete,6000\r
-1497444807.548864,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:53:27 GMT+0200 (CEST),Wed Jun 14 2017 14:53:29 GMT+0200 (CEST),Wed Jun 14 2017 14:53:35 GMT+0200 (CEST),2,6,0,,1,agent,complete,6000\r
-1497444824.548869,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:53:48 GMT+0200 (CEST),Wed Jun 14 2017 14:53:50 GMT+0200 (CEST),Wed Jun 14 2017 14:54:02 GMT+0200 (CEST),2,12,0,,1,agent,complete,6000\r
-1497444824.548869,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:53:45 GMT+0200 (CEST),Wed Jun 14 2017 14:53:46 GMT+0200 (CEST),Wed Jun 14 2017 14:53:58 GMT+0200 (CEST),2,12,0,,1,agent,complete,6000\r
-1497444844.548873,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:54:04 GMT+0200 (CEST),Wed Jun 14 2017 14:54:05 GMT+0200 (CEST),Wed Jun 14 2017 14:54:09 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497444844.548873,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:54:08 GMT+0200 (CEST),Wed Jun 14 2017 14:54:09 GMT+0200 (CEST),Wed Jun 14 2017 14:54:13 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497444854.548877,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:54:14 GMT+0200 (CEST),Wed Jun 14 2017 14:54:15 GMT+0200 (CEST),Wed Jun 14 2017 14:54:23 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497444854.548877,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 14:54:18 GMT+0200 (CEST),Wed Jun 14 2017 14:54:19 GMT+0200 (CEST),Wed Jun 14 2017 14:54:27 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497445802.549168,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:10:06 GMT+0200 (CEST),Wed Jun 14 2017 15:10:07 GMT+0200 (CEST),Wed Jun 14 2017 15:10:11 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497445802.549168,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:10:01 GMT+0200 (CEST),Wed Jun 14 2017 15:10:03 GMT+0200 (CEST),Wed Jun 14 2017 15:10:07 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497445811.549176,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:10:11 GMT+0200 (CEST),Wed Jun 14 2017 15:10:12 GMT+0200 (CEST),Wed Jun 14 2017 15:48:35 GMT+0200 (CEST),1,2303,0,,1,agent,complete,6000\r
-1497448221.551232,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:50:21 GMT+0200 (CEST),Wed Jun 14 2017 15:50:22 GMT+0200 (CEST),Wed Jun 14 2017 15:50:48 GMT+0200 (CEST),1,26,0,,1,agent,complete,6000\r
-1497448250.551240,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:50:50 GMT+0200 (CEST),Wed Jun 14 2017 15:50:51 GMT+0200 (CEST),Wed Jun 14 2017 15:51:35 GMT+0200 (CEST),1,44,0,,1,agent,complete,6000\r
-1497448297.551260,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:51:37 GMT+0200 (CEST),Wed Jun 14 2017 15:51:39 GMT+0200 (CEST),Wed Jun 14 2017 15:52:19 GMT+0200 (CEST),2,40,0,,1,agent,complete,6000\r
-1497448340.551265,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:52:20 GMT+0200 (CEST),Wed Jun 14 2017 15:52:21 GMT+0200 (CEST),Wed Jun 14 2017 15:52:24 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-1497448346.551269,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 15:52:26 GMT+0200 (CEST),Wed Jun 14 2017 15:52:27 GMT+0200 (CEST),Wed Jun 14 2017 15:52:28 GMT+0200 (CEST),1,1,0,,1,agent,complete,6000\r
-1497449943.551482,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 16:19:03 GMT+0200 (CEST),Wed Jun 14 2017 16:19:07 GMT+0200 (CEST),Wed Jun 14 2017 17:07:57 GMT+0200 (CEST),4,2928,0,,1,agent,complete,6000\r
-1497452888.555777,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 17:08:08 GMT+0200 (CEST),Wed Jun 14 2017 17:08:08 GMT+0200 (CEST),Wed Jun 14 2017 17:08:09 GMT+0200 (CEST),1,1,0,,1,agent,complete,6000\r
-1497453146.555793,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 17:12:26 GMT+0200 (CEST),Wed Jun 14 2017 17:12:27 GMT+0200 (CEST),Wed Jun 14 2017 17:12:31 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497454812.557740,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 17:40:12 GMT+0200 (CEST),Wed Jun 14 2017 17:40:16 GMT+0200 (CEST),Wed Jun 14 2017 17:41:12 GMT+0200 (CEST),4,56,0,,1,agent,complete,6000\r
-1497454893.557854,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 17:41:33 GMT+0200 (CEST),Wed Jun 14 2017 17:41:34 GMT+0200 (CEST),Wed Jun 14 2017 17:41:36 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497455668.558892,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 17:54:28 GMT+0200 (CEST),Wed Jun 14 2017 17:54:29 GMT+0200 (CEST),Wed Jun 14 2017 17:54:29 GMT+0200 (CEST),1,0,0,,1,agent,complete,6000\r
-2cf67c90-0506-482a-8859-023360157027,123123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:05:33 GMT+0200 (CEST),Wed Jun 14 2017 18:05:34 GMT+0200 (CEST),Wed Jun 14 2017 18:05:44 GMT+0200 (CEST),1,10,0,,1,agent,complete,xcally-motion-dialer\r
-5dad4206-2f9f-47f0-a659-04d6d03e6eab,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:07:17 GMT+0200 (CEST),Wed Jun 14 2017 18:07:18 GMT+0200 (CEST),Wed Jun 14 2017 18:07:22 GMT+0200 (CEST),1,4,0,,1,caller,complete,xcally-motion-dialer\r
-8fa2649b-03f5-4d1c-a50f-b10634d63061,12312,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:08:57 GMT+0200 (CEST),Wed Jun 14 2017 18:08:58 GMT+0200 (CEST),Wed Jun 14 2017 18:09:21 GMT+0200 (CEST),1,23,0,,1,agent,complete,xcally-motion-dialer\r
-9623a7be-3f39-46f7-8426-83e7364c0b14,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:09:23 GMT+0200 (CEST),Wed Jun 14 2017 18:09:24 GMT+0200 (CEST),Wed Jun 14 2017 18:09:43 GMT+0200 (CEST),1,19,0,,1,agent,complete,xcally-motion-dialer\r
-bb342190-6313-4f10-b3da-b9c915509f92,12312,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:11:24 GMT+0200 (CEST),Wed Jun 14 2017 18:11:25 GMT+0200 (CEST),Wed Jun 14 2017 18:12:09 GMT+0200 (CEST),1,44,0,,1,agent,complete,xcally-motion-dialer\r
-1497456871.560393,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 18:14:31 GMT+0200 (CEST),Wed Jun 14 2017 18:14:32 GMT+0200 (CEST),Wed Jun 14 2017 18:14:35 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-46747011-3f2a-4789-84b8-ca04203c5216,12123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:15:06 GMT+0200 (CEST),Wed Jun 14 2017 18:15:07 GMT+0200 (CEST),Wed Jun 14 2017 18:15:14 GMT+0200 (CEST),1,7,0,,1,agent,complete,xcally-motion-dialer\r
-4f98cc47-f798-46ce-a77f-3f231d46a13d,123123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:15:15 GMT+0200 (CEST),Wed Jun 14 2017 18:15:17 GMT+0200 (CEST),Wed Jun 14 2017 18:15:22 GMT+0200 (CEST),2,5,0,,1,agent,complete,xcally-motion-dialer\r
-06edee27-b18d-4764-8045-51c82d9af1f2,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:15:24 GMT+0200 (CEST),Wed Jun 14 2017 18:15:25 GMT+0200 (CEST),Wed Jun 14 2017 18:16:24 GMT+0200 (CEST),1,59,0,,1,caller,complete,xcally-motion-dialer\r
-950648ca-cc8f-480b-b4b4-384eb53b0b76,123123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:19:21 GMT+0200 (CEST),Wed Jun 14 2017 18:19:23 GMT+0200 (CEST),Wed Jun 14 2017 18:19:52 GMT+0200 (CEST),2,29,0,,1,agent,complete,xcally-motion-dialer\r
-5dd7a360-4081-40af-af6b-c43cdefb2ad8,12123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:19:53 GMT+0200 (CEST),Wed Jun 14 2017 18:19:54 GMT+0200 (CEST),Wed Jun 14 2017 18:19:58 GMT+0200 (CEST),1,4,0,,1,caller,complete,xcally-motion-dialer\r
-bae28658-5c14-4bc3-83a9-35a2284acec9,12312,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:19:59 GMT+0200 (CEST),Wed Jun 14 2017 18:20:00 GMT+0200 (CEST),Wed Jun 14 2017 18:20:07 GMT+0200 (CEST),1,6,0,,1,agent,complete,xcally-motion-dialer\r
-8b84c50e-3aa3-40b2-9dd4-24d0b53bc7b1,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:20:07 GMT+0200 (CEST),Wed Jun 14 2017 18:20:08 GMT+0200 (CEST),Wed Jun 14 2017 18:21:07 GMT+0200 (CEST),1,58,0,,1,agent,complete,xcally-motion-dialer\r
-dd8302a3-39c9-4691-9dba-c643e7b12e51,123123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:21:33 GMT+0200 (CEST),Wed Jun 14 2017 18:21:35 GMT+0200 (CEST),Wed Jun 14 2017 18:22:40 GMT+0200 (CEST),2,65,0,,1,agent,complete,xcally-motion-dialer\r
-6c5bceab-413d-488b-80d7-aa3e128ac846,12312,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:22:41 GMT+0200 (CEST),Wed Jun 14 2017 18:22:43 GMT+0200 (CEST),Wed Jun 14 2017 18:23:41 GMT+0200 (CEST),2,58,0,,1,caller,complete,xcally-motion-dialer\r
-3cf1e7c4-ca3f-4954-a289-7f8e02ad6deb,12123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:27:21 GMT+0200 (CEST),Wed Jun 14 2017 18:27:24 GMT+0200 (CEST),Wed Jun 14 2017 18:28:08 GMT+0200 (CEST),3,44,0,,1,agent,complete,xcally-motion-dialer\r
-1b8c2079-db10-4837-b786-873ad63f7251,12312,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:28:13 GMT+0200 (CEST),Wed Jun 14 2017 18:28:14 GMT+0200 (CEST),Wed Jun 14 2017 18:28:37 GMT+0200 (CEST),1,23,0,,1,agent,complete,xcally-motion-dialer\r
-90b691e2-44a3-4fe7-b070-9b8699459c0f,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:28:39 GMT+0200 (CEST),Wed Jun 14 2017 18:28:40 GMT+0200 (CEST),Wed Jun 14 2017 18:29:40 GMT+0200 (CEST),1,60,0,,1,caller,complete,xcally-motion-dialer\r
-6fd8f525-d00c-49a2-b05f-6e0b0c119a72,12123,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:40:24 GMT+0200 (CEST),Wed Jun 14 2017 18:40:25 GMT+0200 (CEST),Wed Jun 14 2017 18:40:29 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-40e1c980-d588-4baf-9a33-5cd2dd784d66,12312,null,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:40:30 GMT+0200 (CEST),Wed Jun 14 2017 18:40:31 GMT+0200 (CEST),Wed Jun 14 2017 18:40:34 GMT+0200 (CEST),1,3,0,,1,agent,complete,xcally-motion-dialer\r
-3c132576-38e1-465b-97c9-fac5712a1353,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 18:40:38 GMT+0200 (CEST),Wed Jun 14 2017 18:40:38 GMT+0200 (CEST),Wed Jun 14 2017 18:40:41 GMT+0200 (CEST),1,4,0,,1,agent,complete,xcally-motion-dialer\r
-84b6e19e-d0fc-44bb-89cc-219cec4b8500,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:20:10 GMT+0200 (CEST),Wed Jun 14 2017 19:20:12 GMT+0200 (CEST),Wed Jun 14 2017 19:20:46 GMT+0200 (CEST),2,34,0,,1,agent,complete,xcally-motion-dialer\r
-35e48ee5-d846-49b2-b60f-b5ea06cd82bd,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:20:47 GMT+0200 (CEST),Wed Jun 14 2017 19:20:50 GMT+0200 (CEST),Wed Jun 14 2017 19:22:50 GMT+0200 (CEST),3,120,0,,1,agent,complete,xcally-motion-dialer\r
-b5c50dae-45d3-405f-a3d1-655b01aadbbf,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:23:41 GMT+0200 (CEST),Wed Jun 14 2017 19:23:42 GMT+0200 (CEST),Wed Jun 14 2017 19:24:02 GMT+0200 (CEST),1,19,0,,1,agent,complete,xcally-motion-dialer\r
-bef91286-ec23-474c-972c-f889d0c82228,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:25:09 GMT+0200 (CEST),Wed Jun 14 2017 19:25:12 GMT+0200 (CEST),Wed Jun 14 2017 19:26:09 GMT+0200 (CEST),3,57,0,,1,caller,complete,xcally-motion-dialer\r
-f70683f6-6c08-4f57-ac38-76a4a4302445,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:26:10 GMT+0200 (CEST),Wed Jun 14 2017 19:26:14 GMT+0200 (CEST),Wed Jun 14 2017 19:26:26 GMT+0200 (CEST),4,12,0,,1,agent,complete,xcally-motion-dialer\r
-d6e9c582-04a4-44e7-9394-f9a879db3c1f,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:26:50 GMT+0200 (CEST),Wed Jun 14 2017 19:26:53 GMT+0200 (CEST),Wed Jun 14 2017 19:26:59 GMT+0200 (CEST),3,6,0,,1,agent,complete,xcally-motion-dialer\r
-737b754c-8ee9-47a8-92f3-34bac14a78d5,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:27:00 GMT+0200 (CEST),Wed Jun 14 2017 19:27:02 GMT+0200 (CEST),Wed Jun 14 2017 19:27:03 GMT+0200 (CEST),1,2,0,,1,agent,complete,xcally-motion-dialer\r
-a37a61fe-8343-4711-9f98-5828ad7556d2,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:27:57 GMT+0200 (CEST),Wed Jun 14 2017 19:28:03 GMT+0200 (CEST),Wed Jun 14 2017 19:28:12 GMT+0200 (CEST),6,9,0,,1,agent,complete,xcally-motion-dialer\r
-a012cc7a-b50d-41dd-b7bd-3f21ad55ab5b,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:29:47 GMT+0200 (CEST),Wed Jun 14 2017 19:29:49 GMT+0200 (CEST),Wed Jun 14 2017 19:29:54 GMT+0200 (CEST),2,5,0,,1,agent,complete,xcally-motion-dialer\r
-10032f2c-92b0-40de-b5fb-f709cd681317,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:32:58 GMT+0200 (CEST),Wed Jun 14 2017 19:33:11 GMT+0200 (CEST),Wed Jun 14 2017 19:33:12 GMT+0200 (CEST),13,1,0,,1,agent,complete,xcally-motion-dialer\r
-96579f7b-2933-4e57-85e1-057570a844d8,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:35:39 GMT+0200 (CEST),Wed Jun 14 2017 19:35:43 GMT+0200 (CEST),Wed Jun 14 2017 19:35:46 GMT+0200 (CEST),4,3,0,,1,agent,complete,xcally-motion-dialer\r
-a267007a-c304-40ba-a749-bddc8ba0ec19,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 19:37:52 GMT+0200 (CEST),Wed Jun 14 2017 19:37:55 GMT+0200 (CEST),Wed Jun 14 2017 19:37:57 GMT+0200 (CEST),4,2,0,,1,agent,complete,xcally-motion-dialer\r
-1497462095.565439,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:41:35 GMT+0200 (CEST),Wed Jun 14 2017 19:41:37 GMT+0200 (CEST),Wed Jun 14 2017 19:44:31 GMT+0200 (CEST),2,174,0,,1,agent,complete,6000\r
-1497462340.565696,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:45:40 GMT+0200 (CEST),Wed Jun 14 2017 19:45:41 GMT+0200 (CEST),Wed Jun 14 2017 19:47:09 GMT+0200 (CEST),1,88,0,,1,agent,complete,6000\r
-1497462686.566060,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:51:26 GMT+0200 (CEST),Wed Jun 14 2017 19:51:27 GMT+0200 (CEST),Wed Jun 14 2017 19:51:31 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497462762.566175,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:52:42 GMT+0200 (CEST),Wed Jun 14 2017 19:52:43 GMT+0200 (CEST),Wed Jun 14 2017 19:52:47 GMT+0200 (CEST),1,4,0,,1,agent,complete,6000\r
-1497462792.566216,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:53:12 GMT+0200 (CEST),Wed Jun 14 2017 19:53:14 GMT+0200 (CEST),Wed Jun 14 2017 19:53:19 GMT+0200 (CEST),2,5,0,,1,agent,complete,6000\r
-1497462852.566334,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:54:12 GMT+0200 (CEST),Wed Jun 14 2017 19:54:13 GMT+0200 (CEST),Wed Jun 14 2017 19:54:18 GMT+0200 (CEST),1,5,0,,1,agent,complete,6000\r
-1497462927.566571,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:55:27 GMT+0200 (CEST),Wed Jun 14 2017 19:55:28 GMT+0200 (CEST),Wed Jun 14 2017 19:55:32 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-1497463053.566934,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:57:33 GMT+0200 (CEST),Wed Jun 14 2017 19:57:34 GMT+0200 (CEST),Wed Jun 14 2017 19:57:41 GMT+0200 (CEST),2,6,0,,1,agent,complete,6000\r
-1497463170.567254,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 19:59:30 GMT+0200 (CEST),Wed Jun 14 2017 19:59:31 GMT+0200 (CEST),Wed Jun 14 2017 19:59:34 GMT+0200 (CEST),1,3,0,,1,agent,complete,6000\r
-1497463253.567486,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:00:53 GMT+0200 (CEST),Wed Jun 14 2017 20:00:54 GMT+0200 (CEST),Wed Jun 14 2017 20:01:02 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497463346.567766,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:02:26 GMT+0200 (CEST),Wed Jun 14 2017 20:02:28 GMT+0200 (CEST),Wed Jun 14 2017 20:02:31 GMT+0200 (CEST),2,3,0,,1,agent,complete,6000\r
-1497463409.567792,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:03:29 GMT+0200 (CEST),Wed Jun 14 2017 20:03:30 GMT+0200 (CEST),Wed Jun 14 2017 20:03:32 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497463435.567814,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:03:55 GMT+0200 (CEST),Wed Jun 14 2017 20:03:56 GMT+0200 (CEST),Wed Jun 14 2017 20:03:58 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-1497463456.567903,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:04:16 GMT+0200 (CEST),Wed Jun 14 2017 20:04:20 GMT+0200 (CEST),Wed Jun 14 2017 20:04:21 GMT+0200 (CEST),4,1,0,,1,agent,complete,6000\r
-1497463528.568104,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:05:28 GMT+0200 (CEST),Wed Jun 14 2017 20:05:29 GMT+0200 (CEST),Wed Jun 14 2017 20:05:31 GMT+0200 (CEST),1,2,0,,1,agent,complete,6000\r
-f2b4fe77-3314-4b6b-8dde-e8b7a918e499,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 20:05:48 GMT+0200 (CEST),Wed Jun 14 2017 20:05:50 GMT+0200 (CEST),Wed Jun 14 2017 20:05:55 GMT+0200 (CEST),2,5,0,,1,agent,complete,xcally-motion-dialer\r
-1497463595.568284,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:06:35 GMT+0200 (CEST),Wed Jun 14 2017 20:06:36 GMT+0200 (CEST),Wed Jun 14 2017 20:06:45 GMT+0200 (CEST),1,9,0,,1,agent,complete,6000\r
-1497463646.568434,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:07:26 GMT+0200 (CEST),Wed Jun 14 2017 20:07:27 GMT+0200 (CEST),Wed Jun 14 2017 20:07:35 GMT+0200 (CEST),1,8,0,,1,agent,complete,6000\r
-1497463660.568477,giuseppe.careri,Giuseppe Careri,Support,giuseppe.careri2,Wed Jun 14 2017 20:07:40 GMT+0200 (CEST),Wed Jun 14 2017 20:07:41 GMT+0200 (CEST),Wed Jun 14 2017 20:07:56 GMT+0200 (CEST),1,15,0,,1,agent,complete,6000\r
-24efc7b3-34d7-41a5-b98e-3490dadef88d,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 20:09:14 GMT+0200 (CEST),Wed Jun 14 2017 20:09:17 GMT+0200 (CEST),Wed Jun 14 2017 20:09:19 GMT+0200 (CEST),3,2,0,,1,caller,complete,xcally-motion-dialer\r
-a920e176-24a5-4899-ab3f-caed7a9c86fa,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 20:12:25 GMT+0200 (CEST),Wed Jun 14 2017 20:12:28 GMT+0200 (CEST),Wed Jun 14 2017 20:12:29 GMT+0200 (CEST),3,1,0,,1,agent,complete,xcally-motion-dialer\r
-058b0c08-a53b-4f54-be71-bba7ab3db923,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 20:39:49 GMT+0200 (CEST),Wed Jun 14 2017 20:39:54 GMT+0200 (CEST),Wed Jun 14 2017 20:39:58 GMT+0200 (CEST),3,6,0,,1,agent,complete,xcally-motion-dialer\r
-ffdfe9d7-193c-410d-82c6-7b74d1022c42,3479547988,Giuseppe Careri,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 20:39:59 GMT+0200 (CEST),Wed Jun 14 2017 20:40:03 GMT+0200 (CEST),Wed Jun 14 2017 20:41:00 GMT+0200 (CEST),3,58,0,,1,caller,complete,xcally-motion-dialer\r
-6d31d569-d20a-4f50-b4b5-b3a0136ab2bf,3479547987,Daniele Cinti,DaniCamp,giuseppe.careri2,Wed Jun 14 2017 20:41:33 GMT+0200 (CEST),Wed Jun 14 2017 20:41:37 GMT+0200 (CEST),Wed Jun 14 2017 20:41:43 GMT+0200 (CEST),4,5,0,,1,agent,complete,xcally-motion-dialer\r
diff --git a/server/files/sounds/original/normal-1491835612787.csv b/server/files/sounds/original/normal-1491835612787.csv
deleted file mode 100644 (file)
index 1bfa2f5..0000000
+++ /dev/null
@@ -1,1136 +0,0 @@
-"CONTENT TYPE","TITLE","ABBR","ISSN","e-ISSN","PUBLICATION RANGE: START","PUBLICATION RANGE: LATEST PUBLISHED","SHORTCUT URL","ARCHIVE URL"
-"Journals","ACM Computing Surveys ","ACM Comput. Surv.","0360-0300","1557-7341","Volume 1 Issue 1 (March 1969)","Volume 46 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J204","http://dl.acm.org/citation.cfm?id=J204&picked=prox"
-"Journals","ACM Journal of Computer Documentation ","ACM J. Comput. Doc.","1527-6805","1557-9441","Volume 24 Issue 1 (Feb. 1, 2000)","Volume 26 Issue 4 (November 2002)","http://dl.acm.org/citation.cfm?id=J24","http://dl.acm.org/citation.cfm?id=J24&picked=prox"
-"Journals","ACM Journal on Emerging Technologies in Computing Systems ","J. Emerg. Technol. Comput. Syst.","1550-4832","1550-4840","Volume 1 Issue 1 (April 2005)","Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics","http://dl.acm.org/citation.cfm?id=J967","http://dl.acm.org/citation.cfm?id=J967&picked=prox"
-"Journals","Journal of Data and Information Quality ","J. Data and Information Quality","1936-1955","1936-1963","Volume 1 Issue 1 (June 2009)","Volume 4 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J1191","http://dl.acm.org/citation.cfm?id=J1191&picked=prox"
-"Journals","Journal of Experimental Algorithmics ","J. Exp. Algorithmics","1084-6654","1084-6654","Volume 1 (1996)","Volume 18 (April 2013)","http://dl.acm.org/citation.cfm?id=J430","http://dl.acm.org/citation.cfm?id=J430&picked=prox"
-"Journals","Journal of the ACM ","J. ACM","0004-5411","1557-735X","Volume 1 Issue 1 (Jan. 1954)","Volume 60 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J401","http://dl.acm.org/citation.cfm?id=J401&picked=prox"
-"Journals","Journal on Computing and Cultural Heritage ","J. Comput. Cult. Herit.","1556-4673","1556-4711","Volume 1 Issue 1 (June 2008)","Volume 6 Issue 3 (July 2013)","http://dl.acm.org/citation.cfm?id=J1157","http://dl.acm.org/citation.cfm?id=J1157&picked=prox"
-"Journals","Journal on Educational Resources in Computing ","J. Educ. Resour. Comput.","1531-4278","1531-4278","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom","http://dl.acm.org/citation.cfm?id=J814","http://dl.acm.org/citation.cfm?id=J814&picked=prox"
-"Transactions","ACM Letters on Programming Languages and Systems ","ACM Lett. Program. Lang. Syst.","1057-4514","1557-7384","Volume 1 Issue 1 (March 1992)","Volume 2 Issue 1-4 (March&#8211;Dec. 1993)","http://dl.acm.org/citation.cfm?id=J513","http://dl.acm.org/citation.cfm?id=J513&picked=prox"
-"Transactions","ACM Transactions on Accessible Computing ","ACM Trans. Access. Comput.","1936-7228","1936-7236","Volume 1 Issue 1 (May 2008)","Volume 5 Issue 2 (October 2013)","http://dl.acm.org/citation.cfm?id=J1156","http://dl.acm.org/citation.cfm?id=J1156&picked=prox"
-"Transactions","ACM Transactions on Algorithms ","ACM Trans. Algorithms","1549-6325","1549-6333","Volume 1 Issue 1 (July 2005)","Volume 9 Issue 4 (September 2013)","http://dl.acm.org/citation.cfm?id=J982","http://dl.acm.org/citation.cfm?id=J982&picked=prox"
-"Transactions","ACM Transactions on Applied Perception ","ACM Trans. Appl. Percept.","1544-3558","1544-3965","Volume 1 Issue 1 (July 2004)","Volume 10 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J932","http://dl.acm.org/citation.cfm?id=J932&picked=prox"
-"Transactions","ACM Transactions on Architecture and Code Optimization ","ACM Trans. Archit. Code Optim.","1544-3566","1544-3973","Volume 1 Issue 1 (March 2004)","Volume 10 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J924","http://dl.acm.org/citation.cfm?id=J924&picked=prox"
-"Transactions","ACM Transactions on Asian Language Information Processing ","","1530-0226","1558-3430","Volume 1 Issue 1 (March 2002)","Volume 12 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J820","http://dl.acm.org/citation.cfm?id=J820&picked=prox"
-"Transactions","ACM Transactions on Autonomous and Adaptive Systems ","ACM Trans. Auton. Adapt. Syst.","1556-4665","1556-4703","Volume 1 Issue 1 (September 2006)","Volume 8 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1010","http://dl.acm.org/citation.cfm?id=J1010&picked=prox"
-"Transactions","ACM Transactions on Computation Theory ","ACM Trans. Comput. Theory","1942-3454","1942-3462","Volume 1 Issue 1 (February 2009)","Volume 5 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1190","http://dl.acm.org/citation.cfm?id=J1190&picked=prox"
-"Transactions","ACM Transactions on Computational Logic ","ACM Trans. Comput. Logic","1529-3785","1557-945X","Volume 1 Issue 1 (July 2000)","Volume 14 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J773","http://dl.acm.org/citation.cfm?id=J773&picked=prox"
-"Transactions","ACM Transactions on Computer Systems ","ACM Trans. Comput. Syst.","0734-2071","1557-7333","Volume 1 Issue 1 (Feb. 1983)","Volume 31 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J774","http://dl.acm.org/citation.cfm?id=J774&picked=prox"
-"Transactions","ACM Transactions on Computer-Human Interaction ","ACM Trans. Comput.-Hum. Interact.","1073-0516","1557-7325","Volume 1 Issue 1 (March 1994)","Volume 20 Issue 5 (November 2013)","http://dl.acm.org/citation.cfm?id=J756","http://dl.acm.org/citation.cfm?id=J756&picked=prox"
-"Transactions","ACM Transactions on Computing Education ","Trans. Comput. Educ.","","1946-6226","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1193","http://dl.acm.org/citation.cfm?id=J1193&picked=prox"
-"Transactions","ACM Transactions on Database Systems ","ACM Trans. Database Syst.","0362-5915","1557-4644","Volume 1 Issue 1 (March 1976)","Volume 38 Issue 4 (November 2013) - Invited papers issue","http://dl.acm.org/citation.cfm?id=J777","http://dl.acm.org/citation.cfm?id=J777&picked=prox"
-"Transactions","ACM Transactions on Design Automation of Electronic Systems ","ACM Trans. Des. Autom. Electron. Syst.","1084-4309","1557-7309","Volume 1 Issue 1 (Jan. 1996)","Volume 19 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J776","http://dl.acm.org/citation.cfm?id=J776&picked=prox"
-"Transactions","ACM Transactions on Economics and Computation","ACM Trans. Econ. Comput.","2167-8375","2167-8383","Volume 1 Issue 1 (January 2013)","Volume 1 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1359","http://dl.acm.org/citation.cfm?id=J1359&picked=prox"
-"Transactions","ACM Transactions on Embedded Computing Systems ","ACM Trans. Embed. Comput. Syst.","1539-9087","1558-3465","Volume 1 Issue 1 (November 2002)","Volume 13 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J840","http://dl.acm.org/citation.cfm?id=J840&picked=prox"
-"Transactions","ACM Transactions on Graphics ","ACM Trans. Graph.","0730-0301","1557-7368","Volume 1 Issue 1 (Jan. 1982)","Volume 32 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J778","http://dl.acm.org/citation.cfm?id=J778&picked=prox"
-"Transactions","ACM Transactions on Information Systems ","ACM Trans. Inf. Syst.","1046-8188","1558-2868","Volume 1 Issue 1 (Jan. 1983)","Volume 31 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J779","http://dl.acm.org/citation.cfm?id=J779&picked=prox"
-"Transactions","ACM Transactions on Information and System Security ","ACM Trans. Inf. Syst. Secur.","1094-9224","1557-7406","Volume 1 Issue 1 (Nov. 1998)","Volume 16 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J789","http://dl.acm.org/citation.cfm?id=J789&picked=prox"
-"Transactions","ACM Transactions on Intelligent Systems and Technology ","ACM Trans. Intell. Syst. Technol.","2157-6904","2157-6912","Volume 1 Issue 1 (October 2010)","Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining","http://dl.acm.org/citation.cfm?id=J1318","http://dl.acm.org/citation.cfm?id=J1318&picked=prox"
-"Transactions","ACM Transactions on Interactive Intelligent Systems ","ACM Trans. Interact. Intell. Syst.","2160-6455","2160-6463","Volume 1 Issue 1 (October 2011)","Volume 3 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1341","http://dl.acm.org/citation.cfm?id=J1341&picked=prox"
-"Transactions","ACM Transactions on Internet Technology ","ACM Trans. Internet Technol.","1533-5399","1557-6051","Volume 1 Issue 1 (Aug. 2001)","Volume 13 Issue 2 (December 2013)","http://dl.acm.org/citation.cfm?id=J780","http://dl.acm.org/citation.cfm?id=J780&picked=prox"
-"Transactions","ACM Transactions on Knowledge Discovery from Data ","ACM Trans. Knowl. Discov. Data","1556-4681","1556-472X","Volume 1 Issue 1 (March 2007)","Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012","http://dl.acm.org/citation.cfm?id=J1054","http://dl.acm.org/citation.cfm?id=J1054&picked=prox"
-"Transactions","ACM Transactions on Management Information Systems ","ACM Trans. Manage. Inf. Syst.","2158-656X","2158-6578","Volume 1 Issue 1 (December 2010)","Volume 4 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1320","http://dl.acm.org/citation.cfm?id=J1320&picked=prox"
-"Transactions","ACM Transactions on Mathematical Software ","ACM Trans. Math. Softw.","0098-3500","1557-7295","Volume 1 Issue 1 (March 1975)","Volume 40 Issue 1 (September 2013)","http://dl.acm.org/citation.cfm?id=J782","http://dl.acm.org/citation.cfm?id=J782&picked=prox"
-"Transactions","ACM Transactions on Modeling and Computer Simulation ","ACM Trans. Model. Comput. Simul.","1049-3301","1558-1195","Volume 1 Issue 1 (Jan. 1991)","Volume 23 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J781","http://dl.acm.org/citation.cfm?id=J781&picked=prox"
-"Transactions","ACM Transactions on Multimedia Computing, Communications, and Applications ","ACM Trans. Multimedia Comput. Commun. Appl.","1551-6857","1551-6865","Volume 1 Issue 1 (February 2005)","Volume 10 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J961","http://dl.acm.org/citation.cfm?id=J961&picked=prox"
-"Transactions","ACM Transactions on Programming Languages and Systems ","ACM Trans. Program. Lang. Syst.","0164-0925","1558-4593","Volume 1 Issue 1 (July 1979)","Volume 35 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J783","http://dl.acm.org/citation.cfm?id=J783&picked=prox"
-"Transactions","ACM Transactions on Reconfigurable Technology and Systems ","ACM Trans. Reconfigurable Technol. Syst.","1936-7406","1936-7414","Volume 1 Issue 1 (March 2008)","Volume 6 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1151","http://dl.acm.org/citation.cfm?id=J1151&picked=prox"
-"Transactions","ACM Transactions on Sensor Networks ","ACM Trans. Sen. Netw.","1550-4859","1550-4867","Volume 1 Issue 1 (August 2005)","Volume 10 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J981","http://dl.acm.org/citation.cfm?id=J981&picked=prox"
-"Transactions","ACM Transactions on Software Engineering and Methodology ","ACM Trans. Softw. Eng. Methodol.","1049-331X","1557-7392","Volume 1 Issue 1 (Jan. 1992)","Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance","http://dl.acm.org/citation.cfm?id=J790","http://dl.acm.org/citation.cfm?id=J790&picked=prox"
-"Transactions","ACM Transactions on Speech and Language Processing ","ACM Trans. Speech Lang. Process.","1550-4875","1550-4883","Volume 1 (November 2004)","Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2","http://dl.acm.org/citation.cfm?id=J957","http://dl.acm.org/citation.cfm?id=J957&picked=prox"
-"Transactions","ACM Transactions on Storage ","Trans. Storage","1553-3077","1553-3093","Volume 1 Issue 1 (February 2005)","Volume 9 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J960","http://dl.acm.org/citation.cfm?id=J960&picked=prox"
-"Transactions","ACM Transactions on the Web ","ACM Trans. Web","1559-1131","1559-114X","Volume 1 Issue 1 (May 2007)","Volume 7 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J1062","http://dl.acm.org/citation.cfm?id=J1062&picked=prox"
-"Transactions","IEEE/ACM Transactions on Computational Biology and Bioinformatics ","IEEE/ACM Trans. Comput. Biol. Bioinformatics","1545-5963","","Volume 1 Issue 1 (January 2004)","Volume 10 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J954","http://dl.acm.org/citation.cfm?id=J954&picked=prox"
-"Transactions","IEEE/ACM Transactions on Networking ","IEEE/ACM Trans. Netw.","1063-6692","","Volume 1 Issue 1 (Feb. 1993)","Volume 21 Issue 4 (August 2013)","http://dl.acm.org/citation.cfm?id=J771","http://dl.acm.org/citation.cfm?id=J771&picked=prox"
-"Magazines","ACM Inroads","ACM Inroads","2153-2184","2153-2192","Volume 1 Issue 1 (March 2010)","Volume 4 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1268","http://dl.acm.org/citation.cfm?id=J1268&picked=prox"
-"Magazines","Communications of the ACM","Commun. ACM","0001-0782","1557-7317","Volume 1 Issue 1 (Jan. 1958)","Volume 57 Issue 1 (January 2014)","http://dl.acm.org/citation.cfm?id=J79","http://dl.acm.org/citation.cfm?id=J79&picked=prox"
-"Magazines","Computers in Entertainment ","Comput. Entertain.","","1544-3574","Volume 1 Issue 1 (October 2003)","Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment","http://dl.acm.org/citation.cfm?id=J912","http://dl.acm.org/citation.cfm?id=J912&picked=prox"
-"Magazines","Queue","Queue","1542-7730","1542-7749","Volume 1 Issue 1 (March 2003)","Volume 11 Issue 12 (December 2013) - Large-Scale Implementations","http://dl.acm.org/citation.cfm?id=J882","http://dl.acm.org/citation.cfm?id=J882&picked=prox"
-"Magazines","StandardView","StandardView","1067-9936","1557-7376","Volume 1 Issue 1 (Sept. 1993)","Volume 6 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J741","http://dl.acm.org/citation.cfm?id=J741&picked=prox"
-"Magazines","Ubiquity","Ubiquity","","1530-2180","Volume 2000 Issue February (February 1 - February 28, 2000)","Volume 2013 Issue December (December 2013)","http://dl.acm.org/citation.cfm?id=J793","http://dl.acm.org/citation.cfm?id=J793&picked=prox"
-"Magazines","XRDS: Crossroads, The ACM Magazine for Students","XRDS","1528-4972","1528-4980","Volume 1 Issue 1 (September 1994)","Volume 20 Issue 2 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J1271","http://dl.acm.org/citation.cfm?id=J1271&picked=prox"
-"Magazines","eLearn","eLearn","","1535-394X","Volume 2001 Issue 5 (May 2001)","Volume 2013 Issue 12 (12-01-2013) - December 2013","http://dl.acm.org/citation.cfm?id=J815","http://dl.acm.org/citation.cfm?id=J815&picked=prox"
-"Magazines","intelligence","Intelligence","1523-8822","1557-9425","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J372","http://dl.acm.org/citation.cfm?id=J372&picked=prox"
-"Magazines","interactions","interactions","1072-5520","1558-3449","Volume 1 Issue 1 (Jan. 1994)","Volume 20 Issue 6 (November + December 2013)","http://dl.acm.org/citation.cfm?id=J373","http://dl.acm.org/citation.cfm?id=J373&picked=prox"
-"Magazines","netWorker","netWorker","1091-3556","1558-3473","Volume 1 Issue 1 (March/April 1997)","Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics","http://dl.acm.org/citation.cfm?id=J582","http://dl.acm.org/citation.cfm?id=J582&picked=prox"
-"Publications by Affiliated Organizations","ALGOL Bulletin","ALGOL Bull.","0084-6198","","Issue 1 (Mar. 1959)","Issue 52 (Aug. 1988)","http://dl.acm.org/citation.cfm?id=J33","http://dl.acm.org/citation.cfm?id=J33&picked=prox"
-"Publications by Affiliated Organizations","Computational Linguistics","Comput. Linguist.","0891-2017","","Volume 6 Issue 1 (January-March 1980)","Volume 39 Issue 2 (June 2013)","http://dl.acm.org/citation.cfm?id=J25","http://dl.acm.org/citation.cfm?id=J25&picked=prox"
-"Publications by Affiliated Organizations","Evolutionary Computation","Evol. Comput.","1063-6560","1530-9304","Volume 1 Issue 1 (Spring 1993)","Volume 21 Issue 4 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J277","http://dl.acm.org/citation.cfm?id=J277&picked=prox"
-"Publications by Affiliated Organizations","Journal of Computing Sciences in Colleges","J. Comput. Sci. Coll.","1937-4771","1937-4763","Volume 6 Issue 5 (May 1991)","Volume 29 Issue 3 (January 2014)","http://dl.acm.org/citation.cfm?id=J420","http://dl.acm.org/citation.cfm?id=J420&picked=prox"
-"Publications by Affiliated Organizations","Journal of Usability Studies","J. Usability Studies","1931-3357","","Volume 5 Issue 4 (August 2010)","Volume 6 Issue 3 (May 2011)","http://dl.acm.org/citation.cfm?id=J1340","http://dl.acm.org/citation.cfm?id=J1340&picked=prox"
-"Publications by Affiliated Organizations","Linux Journal","Linux J.","1075-3583","","Volume 1994 Issue 1es (March 1994)","Volume 2013 Issue 235 (November 2013)","http://dl.acm.org/citation.cfm?id=J508","http://dl.acm.org/citation.cfm?id=J508&picked=prox"
-"Publications by Affiliated Organizations","Mobile Networks and Applications","Mob. Netw. Appl.","1383-469X","","Volume 1 Issue 1 (Aug. 1996)","Volume 18 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J547","http://dl.acm.org/citation.cfm?id=J547&picked=prox"
-"Publications by Affiliated Organizations","Personal and Ubiquitous Computing","Personal Ubiquitous Comput.","1617-4909","","Volume 4 Issue 4 (August 2000)","Volume 17 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J822","http://dl.acm.org/citation.cfm?id=J822&picked=prox"
-"Publications by Affiliated Organizations","Proceedings of the VLDB Endowment","Proc. VLDB Endow.","2150-8097","","Volume 1 Issue 1 (August 2008)","Volume 6 Issue 14 (September 2013)","http://dl.acm.org/citation.cfm?id=J1174","http://dl.acm.org/citation.cfm?id=J1174&picked=prox"
-"Publications by Affiliated Organizations","The Journal of Machine Learning Research","J. Mach. Learn. Res.","1532-4435","1533-7928","Volume 1 (9/1/2001)","Volume 14 Issue 1 (January 2013)","http://dl.acm.org/citation.cfm?id=J832","http://dl.acm.org/citation.cfm?id=J832&picked=prox"
-"Publications by Affiliated Organizations","The VLDB Journal &#8212; The International Journal on Very Large Data Bases","The VLDB Journal","1066-8888","","Volume 1 Issue 1 (July 1992)","Volume 22 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J869","http://dl.acm.org/citation.cfm?id=J869&picked=prox"
-"Publications by Affiliated Organizations","Wireless Networks","Wirel. Netw.","1022-0038","","Volume 1 Issue 1 (Feb. 1995)","Volume 19 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J804","http://dl.acm.org/citation.cfm?id=J804&picked=prox"
-"SIG Newsletters","3C ON-LINE","3C ON-LINE","1078-2192","","Volume 1 Issue 1 (Oct. 1994)","Volume 4 Issue 4 (Oct., 1997)","http://dl.acm.org/citation.cfm?id=J685","http://dl.acm.org/citation.cfm?id=J685&picked=prox"
-"SIG Newsletters","ACM Communications in Computer Algebra","ACM Commun. Comput. Algebra","1932-2240","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J1000","http://dl.acm.org/citation.cfm?id=J1000&picked=prox"
-"SIG Newsletters","ACM Lisp Bulletin","Lisp Bull.","","","Volume 4 Issue 9 (September 1969)","Issue 3 (December 1979)","http://dl.acm.org/citation.cfm?id=J1166","http://dl.acm.org/citation.cfm?id=J1166&picked=prox"
-"SIG Newsletters","ACM SIGACCESS Accessibility and Computing","SIGACCESS Access. Comput.","1558-2337","1558-1187","Issue 77-78 (Sept. 2003 - Jan. 2004)","Issue 107 (September 2013)","http://dl.acm.org/citation.cfm?id=J956","http://dl.acm.org/citation.cfm?id=J956&picked=prox"
-"SIG Newsletters","ACM SIGACT News","SIGACT News","0163-5700","","Issue 1 (April 1969)","Volume 44 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J697","http://dl.acm.org/citation.cfm?id=J697&picked=prox"
-"SIG Newsletters","ACM SIGAPL APL Quote Quad","SIGAPL APL Quote Quad","0163-6006","","Volume 3 Issue 1 (June 1971)","Volume 35 Issue 4 (December 2007)","http://dl.acm.org/citation.cfm?id=J46","http://dl.acm.org/citation.cfm?id=J46&picked=prox"
-"SIG Newsletters","ACM SIGAPP Applied Computing Review","SIGAPP Appl. Comput. Rev.","1559-6915","1931-0161","Volume 1 Issue 1 (Winter 1993)","Volume 13 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J693","http://dl.acm.org/citation.cfm?id=J693&picked=prox"
-"SIG Newsletters","ACM SIGARCH Computer Architecture News","SIGARCH Comput. Archit. News","0163-5964","","Volume 1 Issue 1 (January 1972)","Volume 41 Issue 3 (June 2013) - ICSA '13","http://dl.acm.org/citation.cfm?id=J89","http://dl.acm.org/citation.cfm?id=J89&picked=prox"
-"SIG Newsletters","ACM SIGART Bulletin","SIGART Bull.","0163-5719","","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J686","http://dl.acm.org/citation.cfm?id=J686&picked=prox"
-"SIG Newsletters","ACM SIGAda Ada Letters","Ada Lett.","1094-3641","","Volume I Issue 1 (July-August 1981)","Volume 33 Issue 2 (August 2013)","http://dl.acm.org/citation.cfm?id=J32","http://dl.acm.org/citation.cfm?id=J32&picked=prox"
-"SIG Newsletters","ACM SIGBED Review","SIGBED Rev.","","1551-3688","Volume 1 Issue 1 (April 2004)","Volume 10 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J994","http://dl.acm.org/citation.cfm?id=J994&picked=prox"
-"SIG Newsletters","ACM SIGBIO Newsletter","SIGBIO Newsl.","0163-5697","","Volume 1 Issue 2 (October 1976)","Volume 21 Issue 1 (April 2001)","http://dl.acm.org/citation.cfm?id=J698","http://dl.acm.org/citation.cfm?id=J698&picked=prox"
-"SIG Newsletters","ACM SIGBioinformatics Record","ACM SIGBioinformatics Rec.","2331-9291","2159-1210","Volume 1 Issue 1 (January 2011)","Volume 3 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1323","http://dl.acm.org/citation.cfm?id=J1323&picked=prox"
-"SIG Newsletters","ACM SIGCAPH Computers and the Physically Handicapped","SIGCAPH Comput. Phys. Handicap.","0163-5727","","Issue 5 (Fall 1971)","Issue 76 (June 2003)","http://dl.acm.org/citation.cfm?id=J298","http://dl.acm.org/citation.cfm?id=J298&picked=prox"
-"SIG Newsletters","ACM SIGCAS Computers and Society","SIGCAS Comput. Soc.","0095-2737","","Volume 1 Issue 2 (April 1970)","Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry","http://dl.acm.org/citation.cfm?id=J198","http://dl.acm.org/citation.cfm?id=J198&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin","SIGCHI Bull.","0736-6906","","Volume 14 Issue 1 (July 1982)","Volume 32 Issue 2 (April 2000)","http://dl.acm.org/citation.cfm?id=J687","http://dl.acm.org/citation.cfm?id=J687&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin - a supplement to <i>interactions</i>","SIGCHI Bull.: suppl. <i>interactions</i>","0736-6906","1558-1217","Volume 2000 (July/August 2000)","Volume 2003 (May-June 2003)","http://dl.acm.org/citation.cfm?id=J122","http://dl.acm.org/citation.cfm?id=J122&picked=prox"
-"SIG Newsletters","ACM SIGCOMM Computer Communication Review","SIGCOMM Comput. Commun. Rev.","0146-4833","","Volume 1 Issue 2 (March 1970)","Volume 43 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J101","http://dl.acm.org/citation.cfm?id=J101&picked=prox"
-"SIG Newsletters","ACM SIGCPR Computer Personnel","SIGCPR Comput. Pers.","0160-2497","","Volume 2 Issue 1 (July 1964)","Volume 20 Issue 4 (October 1999)","http://dl.acm.org/citation.cfm?id=J188","http://dl.acm.org/citation.cfm?id=J188&picked=prox"
-"SIG Newsletters","ACM SIGCSE Bulletin","SIGCSE Bull.","0097-8418","","Volume 1 Issue 1 (February 1969)","Volume 45 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J688","http://dl.acm.org/citation.cfm?id=J688&picked=prox"
-"SIG Newsletters","ACM SIGCSIM Installation Management Review","Install Manag. Rev.","0163-5972","","Issue 1 (August 1969)","Volume 6 Issue 4 (December 1977)","http://dl.acm.org/citation.cfm?id=J959","http://dl.acm.org/citation.cfm?id=J959&picked=prox"
-"SIG Newsletters","ACM SIGCUE Outlook","SIGCUE Outlook","0163-5735","","Volume 4 Issue 1 (February 1970)","Volume 27 Issue 3 (September 2001)","http://dl.acm.org/citation.cfm?id=J678","http://dl.acm.org/citation.cfm?id=J678&picked=prox"
-"SIG Newsletters","ACM SIGDA Newsletter","SIGDA Newsl.","0163-5743","","Volume 1 Issue 1 (January 1971)","Volume 40 Issue 9 (September 2010)","http://dl.acm.org/citation.cfm?id=J700","http://dl.acm.org/citation.cfm?id=J700&picked=prox"
-"SIG Newsletters","ACM SIGDOC Asterisk Journal of Computer Documentation","SIGDOC Asterisk J. Comput. Doc.","0731-1001","","Volume 2 Issue 5 (October 1975)","Volume 12 Issue 4 (December 2011)","http://dl.acm.org/citation.cfm?id=J62","http://dl.acm.org/citation.cfm?id=J62&picked=prox"
-"SIG Newsletters","ACM SIGEVOlution","SIGEVOlution","","1931-8499","Volume 1 Issue 1 (April 2006)","Volume 6 Issue 1 (July 2012)","http://dl.acm.org/citation.cfm?id=J999","http://dl.acm.org/citation.cfm?id=J999&picked=prox"
-"SIG Newsletters","ACM SIGFORTH Newsletter","SIGFORTH Newsl.","1047-4544","","Volume 1 Issue 1 (Spring 1989)","Volume 4 Issue 4 (Dec. 1994)","http://dl.acm.org/citation.cfm?id=J696","http://dl.acm.org/citation.cfm?id=J696&picked=prox"
-"SIG Newsletters","ACM SIGGRAPH Computer Graphics","SIGGRAPH Comput. Graph.","0097-8930","","Volume 3 Issue 3 (Fal 1969)","Volume 45 Issue 1 (February 2011)","http://dl.acm.org/citation.cfm?id=J166","http://dl.acm.org/citation.cfm?id=J166&picked=prox"
-"SIG Newsletters","ACM SIGGROUP Bulletin","SIGGROUP Bull.","","","Volume 18 Issue 1 (April 1997)","Volume 25 Issue 2 (February 2005) - Special issue on virtual communities","http://dl.acm.org/citation.cfm?id=J702","http://dl.acm.org/citation.cfm?id=J702&picked=prox"
-"SIG Newsletters","ACM SIGHIT Record","SIGHIT Rec.","","2158-8813","Volume 1 Issue 1 (March 2011)","Volume 2 Issue 2 (September 2012)","http://dl.acm.org/citation.cfm?id=J1322","http://dl.acm.org/citation.cfm?id=J1322&picked=prox"
-"SIG Newsletters","ACM SIGHPC Connect","ACM SIGHPC Connect","","2168-135X","Volume 1 Issue 1 (June 2012)","Volume 2 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J1356","http://dl.acm.org/citation.cfm?id=J1356&picked=prox"
-"SIG Newsletters","ACM SIGICE Bulletin","SIGICE Bull.","0893-2875","","Volume 19 Issue 3 (Feb. 1994)","Volume 23 Issue 2 (Oct. 1997)","http://dl.acm.org/citation.cfm?id=J694","http://dl.acm.org/citation.cfm?id=J694&picked=prox"
-"SIG Newsletters","ACM SIGIR Forum","SIGIR Forum","0163-5840","","Volume 6 Issue 2 (Summer 1971)","Volume 47 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J701","http://dl.acm.org/citation.cfm?id=J701&picked=prox"
-"SIG Newsletters","ACM SIGITE Newsletter","SIGITE Newsl.","2166-1685","1550-1469","Volume 2 Issue 1 (Spring 2004)","Volume 9 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J977","http://dl.acm.org/citation.cfm?id=J977&picked=prox"
-"SIG Newsletters","ACM SIGKDD Explorations Newsletter","SIGKDD Explor. Newsl.","1931-0145","1931-0153","Volume 1 Issue 1 (June 1999)","Volume 14 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J721","http://dl.acm.org/citation.cfm?id=J721&picked=prox"
-"SIG Newsletters","ACM SIGLASH Newsletter","SIGLASH Newsl.","0036-147X","1931-1095","Volume 10 Issue 1-2 (December 1976/March 1977)","Volume 14 Issue 1-2 (March/June 1981)","http://dl.acm.org/citation.cfm?id=J958","http://dl.acm.org/citation.cfm?id=J958&picked=prox"
-"SIG Newsletters","ACM SIGMAP Bulletin","SIGMAP Bull.","0163-5786","1931-1184","Issue 5 (June 1969)","Issue 32 (April 1983)","http://dl.acm.org/citation.cfm?id=J952","http://dl.acm.org/citation.cfm?id=J952&picked=prox"
-"SIG Newsletters","ACM SIGMETRICS Performance Evaluation Review","SIGMETRICS Perform. Eval. Rev.","0163-5999","","Volume 1 Issue 1 (March 1972)","Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013)","http://dl.acm.org/citation.cfm?id=J618","http://dl.acm.org/citation.cfm?id=J618&picked=prox"
-"SIG Newsletters","ACM SIGMICRO Newsletter","SIGMICRO Newsl.","1050-916X","","Volume 2 Issue 4 (January 1972)","Volume 23 Issue 1-2 (Dec. 1992)","http://dl.acm.org/citation.cfm?id=J703","http://dl.acm.org/citation.cfm?id=J703&picked=prox"
-"SIG Newsletters","ACM SIGMINI Newsletter","SIGMINI Newsl.","0163-576X","","Volume 1 Issue 1 (July 1975)","Volume 4 Issue 4 (August 1978)","http://dl.acm.org/citation.cfm?id=J951","http://dl.acm.org/citation.cfm?id=J951&picked=prox"
-"SIG Newsletters","ACM SIGMIS Database","SIGMIS Database","0095-0033","","Volume 1 Issue 2 (Summer 1969)","Volume 44 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J219","http://dl.acm.org/citation.cfm?id=J219&picked=prox"
-"SIG Newsletters","ACM SIGMOBILE Mobile Computing and Communications Review","SIGMOBILE Mob. Comput. Commun. Rev.","1559-1662","1931-1222","Volume 1 Issue 1 (April 1997)","Volume 17 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J548","http://dl.acm.org/citation.cfm?id=J548&picked=prox"
-"SIG Newsletters","ACM SIGMOD Record","SIGMOD Rec.","0163-5808","","Volume 1 Issue 1 (August 1969)","Volume 42 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J689","http://dl.acm.org/citation.cfm?id=J689&picked=prox"
-"SIG Newsletters","ACM SIGMultimedia Records","SIGMultimedia Rec.","","1947-4598","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1232","http://dl.acm.org/citation.cfm?id=J1232&picked=prox"
-"SIG Newsletters","ACM SIGNUM Newsletter","SIGNUM Newsl.","0163-5778","","Volume 1 Issue 1 (June 1966)","Volume 33 Issue 2 (April 1, 1998)","http://dl.acm.org/citation.cfm?id=J690","http://dl.acm.org/citation.cfm?id=J690&picked=prox"
-"SIG Newsletters","ACM SIGOA Newsletter","ACM SIGOA Newsletter","0737-819X","","Volume 1 Issue 1 (March 1980)","Volume 7 Issue 1 (Spring 1986)","http://dl.acm.org/citation.cfm?id=J915","http://dl.acm.org/citation.cfm?id=J915&picked=prox"
-"SIG Newsletters","ACM SIGOIS Bulletin","SIGOIS Bull.","0894-0819","","Volume 7 Issue 2-3 (Summer-Fall 1986)","Volume 17 Issue 3 (Dec. 1996)","http://dl.acm.org/citation.cfm?id=J705","http://dl.acm.org/citation.cfm?id=J705&picked=prox"
-"SIG Newsletters","ACM SIGOPS Operating Systems Review","SIGOPS Oper. Syst. Rev.","0163-5980","","Volume 3 Issue 1 (February 1969)","Volume 47 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J597","http://dl.acm.org/citation.cfm?id=J597&picked=prox"
-"SIG Newsletters","ACM SIGPC Notes","SIGPC Note.","0163-5816","","Volume 1 Issue 2 (Summer 1978)","Volume 5 Issue 1-2 (Fall/Winter 1982/1983)","http://dl.acm.org/citation.cfm?id=J950","http://dl.acm.org/citation.cfm?id=J950&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Fortran Forum","SIGPLAN Fortran Forum","1061-7264","1931-1311","Volume 1 Issue 1 (July 1982)","Volume 32 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J286","http://dl.acm.org/citation.cfm?id=J286&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Lisp Pointers","SIGPLAN Lisp Pointers","1045-3563","","Volume 1 Issue 1 (April-May 1987)","Volume VIII Issue 2 (May-Aug., 1995)","http://dl.acm.org/citation.cfm?id=J509","http://dl.acm.org/citation.cfm?id=J509&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Notices","SIGPLAN Not.","0362-1340","1558-1160","Volume 1 Issue 8 (August 1966)","Volume 48 Issue 11 (November 2013) - ISMM '13","http://dl.acm.org/citation.cfm?id=J706","http://dl.acm.org/citation.cfm?id=J706&picked=prox"
-"SIG Newsletters","ACM SIGPLAN OOPS Messenger","SIGPLAN OOPS Mess.","1055-6400","","Volume 1 Issue 1 (Aug. 1990)","Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems","http://dl.acm.org/citation.cfm?id=J594","http://dl.acm.org/citation.cfm?id=J594&picked=prox"
-"SIG Newsletters","ACM SIGSAC Review","SIGSAC Rev.","0277-920X","","Volume 1 Issue 1 (Winter 1981-1982)","Volume 15 Issue 2 (April 1997)","http://dl.acm.org/citation.cfm?id=J691","http://dl.acm.org/citation.cfm?id=J691&picked=prox"
-"SIG Newsletters","ACM SIGSAM Bulletin","SIGSAM Bull.","0163-5824","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J707","http://dl.acm.org/citation.cfm?id=J707&picked=prox"
-"SIG Newsletters","ACM SIGSIM Simulation Digest","SIGSIM Simul. Dig.","0163-6103","","Volume 3 Issue 1 (September 1971)","Volume 28 Issue 1 (July 1998)","http://dl.acm.org/citation.cfm?id=J711","http://dl.acm.org/citation.cfm?id=J711&picked=prox"
-"SIG Newsletters","ACM SIGSMALL Newsletter","SIGSMALL Newsl.","0272-720X","","Volume 4 Issue 5 (October 1978)","Volume 10 Issue 4 (October 1984)","http://dl.acm.org/citation.cfm?id=J949","http://dl.acm.org/citation.cfm?id=J949&picked=prox"
-"SIG Newsletters","ACM SIGSMALL/PC Notes","SIGSMALL/PC Notes","0893-2875","","Volume 11 Issue 3 (Aug. 1985)","Volume 19 Issue 2 (Nov. 1993)","http://dl.acm.org/citation.cfm?id=J692","http://dl.acm.org/citation.cfm?id=J692&picked=prox"
-"SIG Newsletters","ACM SIGSOC Bulletin","SIGSOC Bull.","0163-5794","","Volume 1 Issue 1 (March 1969)","Volume 13 Issue 4 (April 1982)","http://dl.acm.org/citation.cfm?id=J948","http://dl.acm.org/citation.cfm?id=J948&picked=prox"
-"SIG Newsletters","ACM SIGSOFT Software Engineering Notes","SIGSOFT Softw. Eng. Notes","0163-5948","","Volume 1 Issue 1 (May 1976)","Volume 38 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J728","http://dl.acm.org/citation.cfm?id=J728&picked=prox"
-"SIG Newsletters","ACM SIGUCCS Newsletter","SIGUCCS Newsl.","0736-6892","","Volume 1 Issue 1 (January 1965)","Volume 28 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J708","http://dl.acm.org/citation.cfm?id=J708&picked=prox"
-"SIG Newsletters","ACM SIGUCCS plugged in","ACM SIGUCCS plugged in","","2168-8516","Volume 1 Issue 1 (Summer 2012)","Volume 2 Issue 1 (Summer 2013)","http://dl.acm.org/citation.cfm?id=J1358","http://dl.acm.org/citation.cfm?id=J1358&picked=prox"
-"SIG Newsletters","ACM SIGWEB Newsletter","SIGWEB Newsl.","1931-1745","1931-1435","Volume 1 Issue 1 (March 1992)","Issue Autumn (Autumn 2013)","http://dl.acm.org/citation.cfm?id=J507","http://dl.acm.org/citation.cfm?id=J507&picked=prox"
-"SIG Newsletters","ACM SIGecom Exchanges","SIGecom Exch.","","1551-9031","Volume 1 Issue 1 (Summer, 2000)","Volume 12 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J684","http://dl.acm.org/citation.cfm?id=J684&picked=prox"
-"SIG Newsletters","Communication Design Quarterly Review","Commun. Des. Q. Rev","2166-1200","2166-1642","Volume 2 Issue 1 (March 2001)","Volume 2 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J1351","http://dl.acm.org/citation.cfm?id=J1351&picked=prox"
-"SIG Newsletters","SIGSPATIAL Special","SIGSPATIAL Special","","1946-7729","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J1196","http://dl.acm.org/citation.cfm?id=J1196&picked=prox"
-"Conference Proceedings","3DOR: 3D Object Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dor/","http://portal.acm.org/proceedings/3dor/archive/"
-"Conference Proceedings","3DVP: 3D Video Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dvp/","http://portal.acm.org/proceedings/3dvp/archive/"
-"Conference Proceedings","A-MOST: Advances in Model-Based Testing","","","","2005 (May 2005)","2007 (July 2007)","http://portal.acm.org/proceedings/a-most/","http://portal.acm.org/proceedings/a-most/archive/"
-"Conference Proceedings","A2CWiC: Amrita ACM-W Celebration on Women in Computing in India","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/a2cwic/","http://portal.acm.org/proceedings/a2cwic/archive/"
-"Conference Proceedings","AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/aaa-idea/","http://portal.acm.org/proceedings/aaa-idea/archive/"
-"Conference Proceedings","AADEBUG: Automated analysis-driven debugging","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/aadebug/","http://portal.acm.org/proceedings/aadebug/archive/"
-"Conference Proceedings","AAMAS: Autonomous Agents and Multiagent Systems","","","","2002 (July 2002)","2013 (May 2013)","http://portal.acm.org/proceedings/aamas/","http://portal.acm.org/proceedings/aamas/archive/"
-"Conference Proceedings","ACDC: Automated Control for Datacenters and Clouds","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/acdc/","http://portal.acm.org/proceedings/acdc/archive/"
-"Conference Proceedings","ACET: Advances in Computer Entertainment Technology","","","","2004 (September 2004)","2011 (November 2011)","http://portal.acm.org/proceedings/ace/","http://portal.acm.org/proceedings/ace/archive/"
-"Conference Proceedings","ACISNR: Applications of Computer and Information Sciences to Nature Research","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/acisnr/","http://portal.acm.org/proceedings/acisnr/archive/"
-"Conference Proceedings","ACL2: ACL2 Theorem Prover and its Applications","","","","2006 (August 2006)","2009 (May 2009)","http://portal.acm.org/proceedings/acl2/","http://portal.acm.org/proceedings/acl2/archive/"
-"Conference Proceedings","ACM DEV: Computing for Development","","","","2010 (December 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/acmdev/","http://portal.acm.org/proceedings/acmdev/archive/"
-"Conference Proceedings","ACM POLICY: ACM POLICY","","","","1998 (June 1998)","1998 (June 1998)","http://portal.acm.org/proceedings/acmpolicy/","http://portal.acm.org/proceedings/acmpolicy/archive/"
-"Conference Proceedings","ACM SE: Annual Southeast Regional Conference","","","","1967 (June 1967)","2013 (April 2013)","http://portal.acm.org/proceedings/acmse/","http://portal.acm.org/proceedings/acmse/archive/"
-"Conference Proceedings","ACM-BCS: ACM-BCS","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/acm-bcs/","http://portal.acm.org/proceedings/acm-bcs/archive/"
-"Conference Proceedings","ACM: ACM Annual Conference/Annual Meeting","","","","1952 (May 1952)","1987 (December 1987)","http://portal.acm.org/proceedings/acm/","http://portal.acm.org/proceedings/acm/archive/"
-"Conference Proceedings","ACPIS: Aspects, Components, and Patterns for Infrastructure Software","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/acpis/","http://portal.acm.org/proceedings/acpis/archive/"
-"Conference Proceedings","ACSAC: Annual Computer Security Applications Conference","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/acsac/","http://portal.acm.org/proceedings/acsac/archive/"
-"Conference Proceedings","ACSE: Australasian Conference on Computing Education","","","","1996 (July 1996)","2010 (January 2010)","http://portal.acm.org/proceedings/acse/","http://portal.acm.org/proceedings/acse/archive/"
-"Conference Proceedings","ACoM: Assessment of Contemporary Modularization Techniques","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/acom/","http://portal.acm.org/proceedings/acom/archive/"
-"Conference Proceedings","ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/adamus/","http://portal.acm.org/proceedings/adamus/archive/"
-"Conference Proceedings","ADKDD: Data Mining and Audience Intelligence for Advertising","","","","2007 (August 2007)","2013 (August 2013)","http://portal.acm.org/proceedings/adkdd/","http://portal.acm.org/proceedings/adkdd/archive/"
-"Conference Proceedings","ADPUC: Advanced Data Processing in Ubiquitous Computing ","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/adpuc/","http://portal.acm.org/proceedings/adpuc/archive/"
-"Conference Proceedings","AFFINE: Affective-Aware Virtual Agents and Social Robots","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/affine/","http://portal.acm.org/proceedings/affine/archive/"
-"Conference Proceedings","AFIPS: AFIPS","","","","1955 (March 1955)","1984 (July 1984)","http://portal.acm.org/proceedings/afips/","http://portal.acm.org/proceedings/afips/archive/"
-"Conference Proceedings","AFM: Automated Formal Methods","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/afm/","http://portal.acm.org/proceedings/afm/archive/"
-"Conference Proceedings","AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa","","","","2001 (November 2001)","2010 (June 2010)","http://portal.acm.org/proceedings/afrigraph/","http://portal.acm.org/proceedings/afrigraph/archive/"
-"Conference Proceedings","AGENTS: Autonomous Agents","","","","1997 (February 1997)","2001 (May 2001)","http://portal.acm.org/proceedings/agents/","http://portal.acm.org/proceedings/agents/archive/"
-"Conference Proceedings","AH: Augmented Human","","","","2010 (April 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/ah/","http://portal.acm.org/proceedings/ah/archive/"
-"Conference Proceedings","AIEE-IRE: AIEE-IRE","","","","1951 (December 1951)","1962 (May 1962)","http://portal.acm.org/proceedings/aiee-ire/","http://portal.acm.org/proceedings/aiee-ire/archive/"
-"Conference Proceedings","AIEMPro: Automated Information Extraction in Media Production","","","","2010 (October 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/aiempro/","http://portal.acm.org/proceedings/aiempro/archive/"
-"Conference Proceedings","AIGC: Artificial Intelligence in Grid Computing","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/aigc/","http://portal.acm.org/proceedings/aigc/archive/"
-"Conference Proceedings","AINTEC: Asian Conference on Internet Engineering","","","","2008 (November 2008)","2012 (November 2012)","http://portal.acm.org/proceedings/aintec/","http://portal.acm.org/proceedings/aintec/archive/"
-"Conference Proceedings","AIPACa: Applications of Private and Anonymous Communications","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/aipaca/","http://portal.acm.org/proceedings/aipaca/archive/"
-"Conference Proceedings","AIRS: Asia Information Retrieval Symposium ","","","","2008 (January 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/airs/","http://portal.acm.org/proceedings/airs/archive/"
-"Conference Proceedings","AIRWeb: Adversarial Information Retrieval on the Web","","","","2007 (May 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/airweb/","http://portal.acm.org/proceedings/airweb/archive/"
-"Conference Proceedings","AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/aisc/mkm/calculemus/","http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/"
-"Conference Proceedings","AISec: Artificial Intelligence and Security","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/aisec/","http://portal.acm.org/proceedings/aisec/archive/"
-"Conference Proceedings","ALICE: Alice Symposium","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/alice/","http://portal.acm.org/proceedings/alice/archive/"
-"Conference Proceedings","AM: Audio Mostly","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/am/","http://portal.acm.org/proceedings/am/archive/"
-"Conference Proceedings","AMC: Ambient Media Computing","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/amc/","http://portal.acm.org/proceedings/amc/archive/"
-"Conference Proceedings","AMCMM: Audio and Music Computing Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/amcmm/","http://portal.acm.org/proceedings/amcmm/archive/"
-"Conference Proceedings","ANCS: Architectures for Networking and Communications Systems","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/ancs/","http://portal.acm.org/proceedings/ancs/archive/"
-"Conference Proceedings","AND: Analytics for Noisy Unstructured Text Data","","","","2008 (July 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/and/","http://portal.acm.org/proceedings/and/archive/"
-"Conference Proceedings","ANNA: Analysis of Neural Network Applications","","","","1991 (May 1991)","1991 (May 1991)","http://portal.acm.org/proceedings/anna/","http://portal.acm.org/proceedings/anna/archive/"
-"Conference Proceedings","ANSS: Annual Simulation Symposium","","","","1973 (June 1973)","2013 (April 2013)","http://portal.acm.org/proceedings/anss/","http://portal.acm.org/proceedings/anss/archive/"
-"Conference Proceedings","AOM: Aspect-Oriented Modeling","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/aom/","http://portal.acm.org/proceedings/aom/archive/"
-"Conference Proceedings","AOMD: Aspect Oriented Middleware Development","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/aomd/","http://portal.acm.org/proceedings/aomd/archive/"
-"Conference Proceedings","AOSD: Aspect-Oriented Software Development","","","","2002 (April 2002)","2013 (March 2013)","http://portal.acm.org/proceedings/aosd/","http://portal.acm.org/proceedings/aosd/archive/"
-"Conference Proceedings","APGV: Applied Perception in Graphics and Visualization","","","","2004 (August 2004)","2011 (August 2011)","http://portal.acm.org/proceedings/apgv/","http://portal.acm.org/proceedings/apgv/archive/"
-"Conference Proceedings","APL: APL","","","","1969 (January 1969)","2003 (June 2003)","http://portal.acm.org/proceedings/apl/","http://portal.acm.org/proceedings/apl/archive/"
-"Conference Proceedings","APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/aplwaca/","http://portal.acm.org/proceedings/aplwaca/archive/"
-"Conference Proceedings","APOS: Scrutinizing Agile Practices","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/apos/","http://portal.acm.org/proceedings/apos/archive/"
-"Conference Proceedings","APS: Adaptive, Personalization &#38; the Semantic Web","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/aps/","http://portal.acm.org/proceedings/aps/archive/"
-"Conference Proceedings","APSys: Asia-Pacific Workshop on Systems","","","","2010 (August 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/apsys/","http://portal.acm.org/proceedings/apsys/archive/"
-"Conference Proceedings","AREA: Analysis and Retrieval of Events","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/area/","http://portal.acm.org/proceedings/area/archive/"
-"Conference Proceedings","ARM: Adaptive and Reflective MIddleware","","","","2004 (October 2004)","2013 (December 2013)","http://portal.acm.org/proceedings/arm/","http://portal.acm.org/proceedings/arm/archive/"
-"Conference Proceedings","ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams","","","","2010 (October 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/artemis/","http://portal.acm.org/proceedings/artemis/archive/"
-"Conference Proceedings","ASE: Automated Software Engineering","","","","1997 (November 1997)","2012 (September 2012)","http://portal.acm.org/proceedings/ase/","http://portal.acm.org/proceedings/ase/archive/"
-"Conference Proceedings","ASIA CCS: Information, Computer and Communications Security","","","","2006 (March 2006)","2013 (May 2013)","http://portal.acm.org/proceedings/asiaccs/","http://portal.acm.org/proceedings/asiaccs/archive/"
-"Conference Proceedings","ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/asia-pepm/","http://portal.acm.org/proceedings/asia-pepm/archive/"
-"Conference Proceedings","ASID: Architectural and System Support for Improving Software Dependability","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/asid/","http://portal.acm.org/proceedings/asid/archive/"
-"Conference Proceedings","ASPDAC: Asia and South Pacific Design Automation Conference","","","","1995 (August 1995)","2011 (January 2011)","http://portal.acm.org/proceedings/aspdac/","http://portal.acm.org/proceedings/aspdac/archive/"
-"Conference Proceedings","ASPLOS: Architectural Support for Programming Languages and Operating Systems","","","","1982 (March 1982)","2013 (March 2013)","http://portal.acm.org/proceedings/asplos/","http://portal.acm.org/proceedings/asplos/archive/"
-"Conference Proceedings","AST: Automation of Software Test","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/ast/","http://portal.acm.org/proceedings/ast/archive/"
-"Conference Proceedings","AUIC: User Interface","","","","2001 (January 2001)","2010 (January 2010)","http://portal.acm.org/proceedings/auic/","http://portal.acm.org/proceedings/auic/archive/"
-"Conference Proceedings","AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/aupc/","http://portal.acm.org/proceedings/aupc/archive/"
-"Conference Proceedings","AVI: Advanced Visual Interfaces","","","","1994 (June 1994)","2012 (May 2012)","http://portal.acm.org/proceedings/avi/","http://portal.acm.org/proceedings/avi/archive/"
-"Conference Proceedings","AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/avstp2p/","http://portal.acm.org/proceedings/avstp2p/archive/"
-"Conference Proceedings","AcessNets: Access Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/acessnets/","http://portal.acm.org/proceedings/acessnets/archive/"
-"Conference Proceedings","Ambi-Sys: Ambient Media and Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/ambi-sys/","http://portal.acm.org/proceedings/ambi-sys/archive/"
-"Conference Proceedings","Assets: Computers and Accessibility","","","","1994 (October 1994)","2013 (October 2013)","http://portal.acm.org/proceedings/assets/","http://portal.acm.org/proceedings/assets/archive/"
-"Conference Proceedings","AusGrid: Grid Computing and e-Research","","","","2008 (January 2008)","2009 (January 2009)","http://portal.acm.org/proceedings/ausgrid/","http://portal.acm.org/proceedings/ausgrid/archive/"
-"Conference Proceedings","AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications","","","","2009 (September 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/automotiveui/","http://portal.acm.org/proceedings/automotiveui/archive/"
-"Conference Proceedings","Autonomics: Autonomic Computing and Communication Systems","","","","2007 (October 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/autonomics/","http://portal.acm.org/proceedings/autonomics/archive/"
-"Conference Proceedings","BADS: Bio-Inspired Algorithms for Distributed Systems","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/bads/","http://portal.acm.org/proceedings/bads/archive/"
-"Conference Proceedings","BCB: Bioinformatics and Computational Biology","","","","2010 (August 2010)","2007 (September 2013)","http://portal.acm.org/proceedings/bcb/","http://portal.acm.org/proceedings/bcb/archive/"
-"Conference Proceedings","BCS-HCI: British HCI Group Annual Conference on People and Computers","","","","2007 (September 2007)","2009 (September 2009)","http://portal.acm.org/proceedings/bcs-hci/","http://portal.acm.org/proceedings/bcs-hci/archive/"
-"Conference Proceedings","BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization","","","","2006 (May 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/beliv/","http://portal.acm.org/proceedings/beliv/archive/"
-"Conference Proceedings","BIOKDD: Bioinformatics","","","","2005 (August 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/biokdd/","http://portal.acm.org/proceedings/biokdd/archive/"
-"Conference Proceedings","BIONETICS: Bio Inspired Models of Network, Information and Computing Systems","","","","2006 (December 2006)","2006 (December 2006)","http://portal.acm.org/proceedings/bionetics/","http://portal.acm.org/proceedings/bionetics/archive/"
-"Conference Proceedings","BM-FA: Behaviour Modelling","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/bm-fa/","http://portal.acm.org/proceedings/bm-fa/archive/"
-"Conference Proceedings","BM-MDA: Behaviour Modelling in Model-Driven Architecture","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/bm-mda/","http://portal.acm.org/proceedings/bm-mda/archive/"
-"Conference Proceedings","BPAOSD: Best Practices in Applying Aspect-Oriented Software Development","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/bpaosd/","http://portal.acm.org/proceedings/bpaosd/archive/"
-"Conference Proceedings","BQGT: Behavioral and Quantitative Game Theory","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/bqgt/","http://portal.acm.org/proceedings/bqgt/archive/"
-"Conference Proceedings","BWAN: Broadband Wireless Access for Ubiquitous Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/bwan/","http://portal.acm.org/proceedings/bwan/archive/"
-"Conference Proceedings","Baltic Sea: Baltic Sea Conference on Computing Education Research","","","","2006 (February 2006)","2006 (February 2006)","http://portal.acm.org/proceedings/balticsea/","http://portal.acm.org/proceedings/balticsea/archive/"
-"Conference Proceedings","BiPi: Business Impact of Process Improvements","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/bipi/","http://portal.acm.org/proceedings/bipi/archive/"
-"Conference Proceedings","BooksOnline: Research Advances in Large Digital Book Repositories","","","","2008 (October 2008)","2012 (October 2012)","http://portal.acm.org/proceedings/booksonline/","http://portal.acm.org/proceedings/booksonline/archive/"
-"Conference Proceedings","BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/buildsys/","http://portal.acm.org/proceedings/buildsys/archive/"
-"Conference Proceedings","C&#38;C: Creativity and Cognition","","","","1999 (October 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;c/","http://portal.acm.org/proceedings/c&amp;c/archive/"
-"Conference Proceedings","C&#38;T: Communities and Technologies","","","","2009 (June 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;t/","http://portal.acm.org/proceedings/c&amp;t/archive/"
-"Conference Proceedings","C3P: Hypercube Concurrent Computers and Applications","","","","1988 (January 1988)","1988 (January 1989)","http://portal.acm.org/proceedings/c3p/","http://portal.acm.org/proceedings/c3p/archive/"
-"Conference Proceedings","C3S2E: Canadian Conference on Computer Science and Software Engineering","","","","2008 (May 2008)","2013 (July 2013)","http://portal.acm.org/proceedings/cse/","http://portal.acm.org/proceedings/cse/archive/"
-"Conference Proceedings","CAI: Context in Advanced Interfaces","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/cai/","http://portal.acm.org/proceedings/cai/archive/"
-"Conference Proceedings","CAMA: Contextualized Attention Metadata","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/cama/","http://portal.acm.org/proceedings/cama/archive/"
-"Conference Proceedings","CAMRa: Context-aware Movie Recommendation","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/camra/","http://portal.acm.org/proceedings/camra/archive/"
-"Conference Proceedings","CAMS: Context-Aware Middleware and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/cams/","http://portal.acm.org/proceedings/cams/archive/"
-"Conference Proceedings","CARPE: Continous Archival and Retrieval of Personal Experiences","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/carpe/","http://portal.acm.org/proceedings/carpe/archive/"
-"Conference Proceedings","CARS: Critical Automotive Applications","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/cars/","http://portal.acm.org/proceedings/cars/archive/"
-"Conference Proceedings","CASEMANS: Context-Awareness for Self-Managing Systems","","","","2008 (May 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CASES: Compilers, Architectures and Synthesis for Embedded Systems","","","","2000 (November 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/cases/","http://portal.acm.org/proceedings/cases/archive/"
-"Conference Proceedings","CASTA: Context-Aware Software Technology and Application","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/casta/","http://portal.acm.org/proceedings/casta/archive/"
-"Conference Proceedings","CAW: Computer Architecture for Non-Numeric Processing","","","","1977 (January 1977)","1980 (March 1980)","http://portal.acm.org/proceedings/caw/","http://portal.acm.org/proceedings/caw/archive/"
-"Conference Proceedings","CBHPC: Component-Based High Performance Computing","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/cbhpc/","http://portal.acm.org/proceedings/cbhpc/archive/"
-"Conference Proceedings","CC: Critical Computing","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/cc/","http://portal.acm.org/proceedings/cc/archive/"
-"Conference Proceedings","CCS: Computer and Communications Security","","","","1993 (December 1993)","2013 (November 2013)","http://portal.acm.org/proceedings/ccs/","http://portal.acm.org/proceedings/ccs/archive/"
-"Conference Proceedings","CCSC: Consortium for Computing Sciences in Colleges","","","","1991 (May 1991)","2001 (April 2001)","http://portal.acm.org/proceedings/ccsc/","http://portal.acm.org/proceedings/ccsc/archive/"
-"Conference Proceedings","CCSW: Cloud Computing Security Workshop","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ccsw/","http://portal.acm.org/proceedings/ccsw/archive/"
-"Conference Proceedings","CCU: Contemporary Computing in Ukraine","","","","2000 (February 2000)","2000 (February 2000)","http://portal.acm.org/proceedings/ccu/","http://portal.acm.org/proceedings/ccu/archive/"
-"Conference Proceedings","CEA: Cooking and Eating Activities","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/cea/","http://portal.acm.org/proceedings/cea/archive/"
-"Conference Proceedings","CF: Computing Frontiers","","","","2004 (April 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/cf/","http://portal.acm.org/proceedings/cf/archive/"
-"Conference Proceedings","CFI: Future Internet Technologies","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/cfi/","http://portal.acm.org/proceedings/cfi/archive/"
-"Conference Proceedings","CFP: Computers, Freedom and Privacy","","","","1992 (April 1992)","2002 (April 2002)","http://portal.acm.org/proceedings/cfp/","http://portal.acm.org/proceedings/cfp/archive/"
-"Conference Proceedings","CGI: Computer Graphics International","","","","1996 (June 1996)","2009 (May 2009)","http://portal.acm.org/proceedings/cgi/","http://portal.acm.org/proceedings/cgi/archive/"
-"Conference Proceedings","CGO: Code Generation and Optimization","","","","2003 (March 2003)","2013 (February 2013)","http://portal.acm.org/proceedings/cgo/","http://portal.acm.org/proceedings/cgo/archive/"
-"Conference Proceedings","CHANTS: Challenged Networks","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/chants/","http://portal.acm.org/proceedings/chants/archive/"
-"Conference Proceedings","CHASE: Cooperative and Human Aspects on Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/chase/","http://portal.acm.org/proceedings/chase/archive/"
-"Conference Proceedings","CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts","","","","1997 (March 1997)","2013 (April 2013)","http://portal.acm.org/proceedings/chiea/","http://portal.acm.org/proceedings/chiea/archive/"
-"Conference Proceedings","CHI: Conference on Human Factors in Computing Systems","","","","1981 (May 1981)","2013 (April 2013)","http://portal.acm.org/proceedings/chi/","http://portal.acm.org/proceedings/chi/archive/"
-"Conference Proceedings","CHINA HPC: High Performance Computing","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/chinahpc/","http://portal.acm.org/proceedings/chinahpc/archive/"
-"Conference Proceedings","CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction","","","","2001 (July 2001)","2012 (July 2012)","http://portal.acm.org/proceedings/chinz/","http://portal.acm.org/proceedings/chinz/archive/"
-"Conference Proceedings","CHiMiT: Computer Human Interaction for the Management of Information Technology","","","","2007 (March 2007)","2011 (December 2011)","http://portal.acm.org/proceedings/chimit/","http://portal.acm.org/proceedings/chimit/archive/"
-"Conference Proceedings","CIAA: Implementation and Application of Automata","","","","2003 (July 2002)","2003 (July 2002)","http://portal.acm.org/proceedings/ciaa/","http://portal.acm.org/proceedings/ciaa/archive/"
-"Conference Proceedings","CIAO: Context, Information and Ontologies","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/ciao/","http://portal.acm.org/proceedings/ciao/archive/"
-"Conference Proceedings","CIKM: Conference on Information and Knowledge Management","","","","1993 (December 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/cikm/","http://portal.acm.org/proceedings/cikm/archive/"
-"Conference Proceedings","CIMS: CyberInfrastructure: Information Management in eScience","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/cims/","http://portal.acm.org/proceedings/cims/archive/"
-"Conference Proceedings","CIVR: Conference on Image and Video Retrieval","","","","2007 (July 2007)","2010 (July 2010)","http://portal.acm.org/proceedings/civr/","http://portal.acm.org/proceedings/civr/archive/"
-"Conference Proceedings","CLADE: Challenges of Large Applications in Distributed Environments","","","","2003 (June 2003)","2009 (June 2009)","http://portal.acm.org/proceedings/clade/","http://portal.acm.org/proceedings/clade/archive/"
-"Conference Proceedings","CLIHC: Latin American Conference on Human-Computer Interaction","","","","2003 (August 2003)","2005 (October 2005)","http://portal.acm.org/proceedings/clihc/","http://portal.acm.org/proceedings/clihc/archive/"
-"Conference Proceedings","CLOUD: Software Engineering Challenges of Cloud Computing","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/cloud/","http://portal.acm.org/proceedings/cloud/archive/"
-"Conference Proceedings","CMM: Connected Multimedia","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/cmm/","http://portal.acm.org/proceedings/cmm/archive/"
-"Conference Proceedings","CMSB: Computational Methods in Systems Biology","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/cmsb/","http://portal.acm.org/proceedings/cmsb/archive/"
-"Conference Proceedings","CNIKM: Complex Networks Meet Information & Knowledge Management","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/cnikm/","http://portal.acm.org/proceedings/cnikm/archive/"
-"Conference Proceedings","CNS: Communications and Networking Simulation","","","","2008 (April 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/cns/","http://portal.acm.org/proceedings/cns/archive/"
-"Conference Proceedings","COCS: Conference on Organizational Computing Systems","","","","1984 (January 1984)","1995 (August 1995)","http://portal.acm.org/proceedings/cocs/","http://portal.acm.org/proceedings/cocs/archive/"
-"Conference Proceedings","CODES: Hardware Software Codesign","","","","1994 (September 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/codes/","http://portal.acm.org/proceedings/codes/archive/"
-"Conference Proceedings","COLT: Computational Learning Theory","","","","1988 (December 1988)","1999 (July 1999)","http://portal.acm.org/proceedings/colt/","http://portal.acm.org/proceedings/colt/archive/"
-"Conference Proceedings","COM.Geo: Computing for Geospatial Research &#38; Application","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/com.geo/","http://portal.acm.org/proceedings/com.geo/archive/"
-"Conference Proceedings","COMM: Communications Architectures and Protocols","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/comm/","http://portal.acm.org/proceedings/comm/archive/"
-"Conference Proceedings","COMPUTE: COMPUTE","","","","2008 (January 2008)","2013 (August 2013)","http://portal.acm.org/proceedings/compute/","http://portal.acm.org/proceedings/compute/archive/"
-"Conference Proceedings","COMSWARE: Communication System Software and Middleware","","","","2009 (June 2009)","2011 (July 2011)","http://portal.acm.org/proceedings/comsware/","http://portal.acm.org/proceedings/comsware/archive/"
-"Conference Proceedings","COP: Context-Oriented Programming","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/cop/","http://portal.acm.org/proceedings/cop/archive/"
-"Conference Proceedings by Affiliated Organizations","CPR: Computers and People Research","","","","1962 (June 1962)","2013 (May 2013)","http://portal.acm.org/proceedings/sigcpr/","http://portal.acm.org/proceedings/sigcpr/archive/"
-"Conference Proceedings","CQL: Computers and the Quality of Life","","","","1990 (August 1990)","1996 (February 1996)","http://portal.acm.org/proceedings/cql/","http://portal.acm.org/proceedings/cql/archive/"
-"Conference Proceedings","CSAW: Computer Security Architectures","","","","2007 (November 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/csaw/","http://portal.acm.org/proceedings/csaw/archive/"
-"Conference Proceedings","CSC: Conference on Computer Science","","","","1973 (February 1973)","1996 (February 1996)","http://portal.acm.org/proceedings/csc/","http://portal.acm.org/proceedings/csc/archive/"
-"Conference Proceedings","CSCW: Computer Supported Cooperative Work","","","","1986 (December 1986)","2013 (February 2013)","http://portal.acm.org/proceedings/cscw/","http://portal.acm.org/proceedings/cscw/archive/"
-"Conference Proceedings","CSI-KDD: CyberSecurity and Intelligence Informatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/csi-kdd/","http://portal.acm.org/proceedings/csi-kdd/archive/"
-"Conference Proceedings","CSIIRW: Cyber Security and Information Intelligence Research","","","","2008 (May 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/csiirw/","http://portal.acm.org/proceedings/csiirw/archive/"
-"Conference Proceedings","CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/csssia/","http://portal.acm.org/proceedings/csssia/archive/"
-"Conference Proceedings","CSTST: Soft Computing as Transdisciplinary Science and Technology","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/cstst/","http://portal.acm.org/proceedings/cstst/archive/"
-"Conference Proceedings","CUFP: Commercial Users of Functional Programming","","","","2007 (October 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/cufp/","http://portal.acm.org/proceedings/cufp/archive/"
-"Conference Proceedings","CUU: Conference on Universal Usability","","","","2000 (November 2000)","2003 (November 2003)","http://portal.acm.org/proceedings/cuu/","http://portal.acm.org/proceedings/cuu/archive/"
-"Conference Proceedings","CVDB: Computer Vision Meets Databases","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/cvdb/","http://portal.acm.org/proceedings/cvdb/archive/"
-"Conference Proceedings","CVE: Collaborative Virtual Environments","","","","2000 (September 2000)","2002 (September 2002)","http://portal.acm.org/proceedings/cve/","http://portal.acm.org/proceedings/cve/archive/"
-"Conference Proceedings","CVSM: Comparison and Versioning of Software Models","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/cvsm/","http://portal.acm.org/proceedings/cvsm/archive/"
-"Conference Proceedings","CWIT: Women and ICT","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/cwit/","http://portal.acm.org/proceedings/cwit/archive/"
-"Conference Proceedings","CWNETS: Cognitive Wireless Networks","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/cwnets/","http://portal.acm.org/proceedings/cwnets/archive/"
-"Conference Proceedings","Casemans: Context-Awareness for Self-Managing Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CloudDB: Cloud Data Management","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/clouddb/","http://portal.acm.org/proceedings/clouddb/archive/"
-"Conference Proceedings","CoNEXT: Co-NEXT","","","","2005 (October 2005)","2013 (December 2013)","http://portal.acm.org/proceedings/conext/","http://portal.acm.org/proceedings/conext/archive/"
-"Conference Proceedings","CoRoNet: Cognitive Radio Networks","","","","2009 (September 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/coronet/","http://portal.acm.org/proceedings/coronet/archive/"
-"Conference Proceedings","CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/communicabilityms/","http://portal.acm.org/proceedings/communicabilityms/archive/"
-"Conference Proceedings","CompBio: Computational biology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/compbio/","http://portal.acm.org/proceedings/compbio/archive/"
-"Conference Proceedings","CompFrame: Component and Framework Technology in High-Performance and Scientific Computing","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/compframe/","http://portal.acm.org/proceedings/compframe/archive/"
-"Conference Proceedings","CompSysTech: Computer Systems and Technologies","","","","2000 (June 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/compsystech/","http://portal.acm.org/proceedings/compsystech/archive/"
-"Conference Proceedings","Companion: Middleware 08 Conference Companion","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/companion/","http://portal.acm.org/proceedings/companion/archive/"
-"Conference Proceedings","Creating: Creating Out of the Machine","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/creating/","http://portal.acm.org/proceedings/creating/archive/"
-"Conference Proceedings","DAC: Design Automation Conference","","","","1964 (January 1964)","2013 (May 2013)","http://portal.acm.org/proceedings/dac/","http://portal.acm.org/proceedings/dac/archive/"
-"Conference Proceedings","DADC: Data-aware Distributed Computing","","","","2008 (June 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/dadc/","http://portal.acm.org/proceedings/dadc/archive/"
-"Conference Proceedings","DAMP: Declarative Aspects of Multicore Programming","","","","2007 (January 2007)","2012 (January 2012)","http://portal.acm.org/proceedings/damp/","http://portal.acm.org/proceedings/damp/archive/"
-"Conference Proceedings","DARE: Designing Augmented Reality Environments","","","","2000 (April 2000)","2013 (November 2013)","http://portal.acm.org/proceedings/dare/","http://portal.acm.org/proceedings/dare/archive/"
-"Conference Proceedings","DAS: Document Analysis Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/das/","http://portal.acm.org/proceedings/das/archive/"
-"Conference Proceedings","DATACOMM: Data Communications and Data Networks","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/datacomm/","http://portal.acm.org/proceedings/datacomm/archive/"
-"Conference Proceedings","DATE: Design, Automation and Test in Europe","","","","1998 (February 1998)","2013 (March 2013)","http://portal.acm.org/proceedings/date/","http://portal.acm.org/proceedings/date/archive/"
-"Conference Proceedings","DBTest: Testing Database Systems","","","","2008 (June 2008)","2013 (June 2013)","http://portal.acm.org/proceedings/dbtest/","http://portal.acm.org/proceedings/dbtest/archive/"
-"Conference Proceedings","DCOSS:  Distributed Computing in Sensor Systems","","","","2007 (June 2007)","2010 (June 2010)","http://portal.acm.org/proceedings/dcoss/","http://portal.acm.org/proceedings/dcoss/archive/"
-"Conference Proceedings","DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dd4lcci/","http://portal.acm.org/proceedings/dd4lcci/archive/"
-"Conference Proceedings","DDDM: Domain Driven Data Mining","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/dddm/","http://portal.acm.org/proceedings/dddm/archive/"
-"Conference Proceedings","DEAS: Design and Evolution of Autonomic Application Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/deas/","http://portal.acm.org/proceedings/deas/archive/"
-"Conference Proceedings","DEBS: Distributed Event-Based Systems","","","","2003 (June 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/debs/","http://portal.acm.org/proceedings/debs/archive/"
-"Conference Proceedings","DEECS: Data Enginering issues in E-commerce and Services","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/deecs/","http://portal.acm.org/proceedings/deecs/archive/"
-"Conference Proceedings","DEFECTS: Defects in Large Software Systems","","","","2008 (July 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/defects/","http://portal.acm.org/proceedings/defects/archive/"
-"Conference Proceedings","DESIRE: Creativity and Innovation in Design","","","","2010 (August 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/desire/","http://portal.acm.org/proceedings/desire/archive/"
-"Conference Proceedings","DESRIST: Design Science Research in Information Systems and Technology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/desrist/","http://portal.acm.org/proceedings/desrist/archive/"
-"Conference Proceedings","DIALM: DIALM","","","","1999 (August 1999)","2010 (September 2010)","http://portal.acm.org/proceedings/dialm/","http://portal.acm.org/proceedings/dialm/archive/"
-"Conference Proceedings","DIM: Digital Identity Management","","","","2005 (November 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/dim/","http://portal.acm.org/proceedings/dim/archive/"
-"Conference Proceedings","DIMEA: Digital Interactive Media in Entertainment and Arts","","","","2007 (September 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/dimea/","http://portal.acm.org/proceedings/dimea/archive/"
-"Conference Proceedings","DIN: Dynamic Interconnection of Networks","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/din/","http://portal.acm.org/proceedings/din/archive/"
-"Conference Proceedings","DIS: Designing Interactive Systems","","","","1995 (August 1995)","2012 (June 2012)","http://portal.acm.org/proceedings/dis/","http://portal.acm.org/proceedings/dis/archive/"
-"Conference Proceedings","DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/diwans/","http://portal.acm.org/proceedings/diwans/archive/"
-"Conference Proceedings","DL: Digital Libraries","","","","1996 (April 1996)","2000 (June 2000)","http://portal.acm.org/proceedings/dl/","http://portal.acm.org/proceedings/dl/archive/"
-"Conference Proceedings","DLS: Dynamic Languages","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/dls/","http://portal.acm.org/proceedings/dls/archive/"
-"Conference Proceedings","DMG: Data Mining for Geoinformatics","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/dmg/","http://portal.acm.org/proceedings/dmg/archive/"
-"Conference Proceedings","DMKD: Research Issues in Data Mining and Knowledge Discovery","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/dmkd/","http://portal.acm.org/proceedings/dmkd/archive/"
-"Conference Proceedings","DMMT: Data Mining using Matrices and Tensors","","","","2001 (July 2001)","2009 (June 2009)","http://portal.acm.org/proceedings/dmmt/","http://portal.acm.org/proceedings/dmmt/archive/"
-"Conference Proceedings","DMSN: Data Management for Sensor Networks","","","","2004 (August 2004)","2010 (September 2010)","http://portal.acm.org/proceedings/dmsn/","http://portal.acm.org/proceedings/dmsn/archive/"
-"Conference Proceedings","DMSSP: Data Mining Standards, Services and Platforms","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/dmssp/","http://portal.acm.org/proceedings/dmssp/archive/"
-"Conference Proceedings","DO: Distributed Objects","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/do/","http://portal.acm.org/proceedings/do/archive/"
-"Conference Proceedings","DOCPROCS: Document Processing Systems","","","","1988 (January 2000)","1988 (January 2000)","http://portal.acm.org/proceedings/docprocs/","http://portal.acm.org/proceedings/docprocs/archive/"
-"Conference Proceedings","DOLAP: Data Warehousing and OLAP","","","","1998 (November 1998)","2013 (October 2013)","http://portal.acm.org/proceedings/dolap/","http://portal.acm.org/proceedings/dolap/archive/"
-"Conference Proceedings","DOSTA: Domain Specific Approaches to Software Test Automation","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/dosta/","http://portal.acm.org/proceedings/dosta/archive/"
-"Conference Proceedings","DPDS: Databases in Parallel and Distributed Systems","","","","1990 (July 1990)","1988 (January 2000)","http://portal.acm.org/proceedings/dpds/","http://portal.acm.org/proceedings/dpds/archive/"
-"Conference Proceedings","DPPI: Designing Pleasurable Products and Interfaces","","","","2003 (June 2003)","2013 (September 2013)","http://portal.acm.org/proceedings/dppi/","http://portal.acm.org/proceedings/dppi/archive/"
-"Conference Proceedings","DRM: Digital Rights Management","","","","2003 (October 2003)","2011 (October 2011)","http://portal.acm.org/proceedings/drm/","http://portal.acm.org/proceedings/drm/archive/"
-"Conference Proceedings","DS-RT: Distributed Simulation and Real Time Applications","","","","2000 (August 2000)","2012 (October 2012)","http://portal.acm.org/proceedings/ds-rt/","http://portal.acm.org/proceedings/ds-rt/archive/"
-"Conference Proceedings","DSAL: Domain-Specific Aspect Languages","","","","2007 (March 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/dsal/","http://portal.acm.org/proceedings/dsal/archive/"
-"Conference Proceedings","DSL: Domain-Specific Languages","","","","1999 (December 1999)","1999 (December 1999)","http://portal.acm.org/proceedings/dsl/","http://portal.acm.org/proceedings/dsl/archive/"
-"Conference Proceedings","DSM: Doctoral Symposium on Middleware","","","","2004 (October 2004)","2012 (October 2012)","http://portal.acm.org/proceedings/dsm/","http://portal.acm.org/proceedings/dsm/archive/"
-"Conference Proceedings","DSMM: Data-Intensive Software Management and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/dsmm/","http://portal.acm.org/proceedings/dsmm/archive/"
-"Conference Proceedings","DTMBIO: Data and Text Mining in Biomedical Informatics","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/dtmbio/","http://portal.acm.org/proceedings/dtmbio/archive/"
-"Conference Proceedings","DUX: Designing for User eXperiences","","","","2003 (June 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/dux/","http://portal.acm.org/proceedings/dux/archive/"
-"Conference Proceedings","DYADEM-FTS: Dependeability Models for Fault-Tolerant Systems","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dyadem-fts/","http://portal.acm.org/proceedings/dyadem-fts/archive/"
-"Conference Proceedings","DYNAMO: Dynamic and Adaptive Compilation and Optimization","","","","2000 (January 2000)","2000 (January 2000)","http://portal.acm.org/proceedings/dynamo/","http://portal.acm.org/proceedings/dynamo/archive/"
-"Conference Proceedings","DaGreS: Data Grids for eScience","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/dagres/","http://portal.acm.org/proceedings/dagres/archive/"
-"Conference Proceedings","DaMaP: Data Management in Peer-to-Peer Systems","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/damap/","http://portal.acm.org/proceedings/damap/archive/"
-"Conference Proceedings","DaMoN: Data Management on New Hardware","","","","2005 (June 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/damon/","http://portal.acm.org/proceedings/damon/archive/"
-"Conference Proceedings","DataX: Database Technologies for Handling XML Information on the Web","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/datax/","http://portal.acm.org/proceedings/datax/archive/"
-"Conference Proceedings","DocEng: Document Engineering","","","","2001 (November 2001)","2013 (September 2013)","http://portal.acm.org/proceedings/doceng/","http://portal.acm.org/proceedings/doceng/archive/"
-"Conference Proceedings","Dutch HCI: Dutch directions in HCI","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/dutchhci/","http://portal.acm.org/proceedings/dutchhci/archive/"
-"Conference Proceedings","E-WIND: Experimental Approaches to Wireless Network Design and Analysis","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/e-wind/","http://portal.acm.org/proceedings/e-wind/archive/"
-"Conference Proceedings","EA: Early Aspects","","","","2006 (May 2006)","2011 (March 2011)","http://portal.acm.org/proceedings/ea/","http://portal.acm.org/proceedings/ea/archive/"
-"Conference Proceedings","EATIS: Euro American Conference on Telematics and Information Systems","","","","2007 (May 2007)","2012 (May 2012)","http://portal.acm.org/proceedings/eatis/","http://portal.acm.org/proceedings/eatis/archive/"
-"Conference Proceedings","EC: Electronic Commerce","","","","1999 (November 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/ec/","http://portal.acm.org/proceedings/ec/archive/"
-"Conference Proceedings","ECA: Ethics in the Computer Age","","","","1994 (November 1994)","1994 (November 1994)","http://portal.acm.org/proceedings/eca/","http://portal.acm.org/proceedings/eca/archive/"
-"Conference Proceedings","ECCE: European Conference on Cognitive Ergonomics","","","","2006 (September 2006)","2013 (August 2013)","http://portal.acm.org/proceedings/ecce/","http://portal.acm.org/proceedings/ecce/archive/"
-"Conference Proceedings","ECHT: European Conference on Hypermedia Technology","","","","1992 (November 1992)","1994 (September 1994)","http://portal.acm.org/proceedings/echt/","http://portal.acm.org/proceedings/echt/archive/"
-"Conference Proceedings","ECIR: European Conference on Information Retrieval","","","","2008 (March 2008)","2012 (April 2012)","http://portal.acm.org/proceedings/ecir/","http://portal.acm.org/proceedings/ecir/archive/"
-"Conference Proceedings","ECMFA-TW: ECMFA Traceability Workshop","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/ecmfa-tw/","http://portal.acm.org/proceedings/ecmfa-tw/archive/"
-"Conference Proceedings","ECOOP: European Conference on Object-Oriented Programming","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/ecoop/","http://portal.acm.org/proceedings/ecoop/archive/"
-"Conference Proceedings","ECSA: European Conference on Software Architecture","","","","2010 (August 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/ecsa/","http://portal.acm.org/proceedings/ecsa/archive/"
-"Conference Proceedings","EDBT: Extending Database Technology","","","","2008 (March 2008)","2013 (March 2013)","http://portal.acm.org/proceedings/edbt/","http://portal.acm.org/proceedings/edbt/archive/"
-"Conference Proceedings","EDSER: Economics-Driven Software Engineering Research","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/edser/","http://portal.acm.org/proceedings/edser/archive/"
-"Conference Proceedings","EDT: Emerging Displays Technologies","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/edt/","http://portal.acm.org/proceedings/edt/archive/"
-"Conference Proceedings","EDTC: European Conference on Design and Test","","","","1995 (March 1995)","1997 (March 1997)","http://portal.acm.org/proceedings/edtc/","http://portal.acm.org/proceedings/edtc/archive/"
-"Conference Proceedings","EESR: End-to-end, Sense-and-respond Systems, Applications and Services","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/eesr/","http://portal.acm.org/proceedings/eesr/archive/"
-"Conference Proceedings","EFTS: Engineering Fault Tolerant Systems","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/efts/","http://portal.acm.org/proceedings/efts/archive/"
-"Conference Proceedings","EGPGV: Eurographics Workshop on Parallel Graphics and Visualization","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/egpgv/","http://portal.acm.org/proceedings/egpgv/archive/"
-"Conference Proceedings","EGRW: Eurographics Workshop on Rendering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/egrw/","http://portal.acm.org/proceedings/egrw/archive/"
-"Conference Proceedings","EGVE: Virtual Environments","","","","2002 (May 2002)","2007 (July 2007)","http://portal.acm.org/proceedings/egve/","http://portal.acm.org/proceedings/egve/archive/"
-"Conference Proceedings","EICS: Engineering Interactive Computing Systems","","","","2009 (July 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/eics/","http://portal.acm.org/proceedings/eics/archive/"
-"Conference Proceedings","ELW: European Lisp Workshop","","","","2009 (July 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/elw/","http://portal.acm.org/proceedings/elw/archive/"
-"Conference Proceedings","EMSOFT: Embedded Software","","","","2004 (September 2004)","2013 (September 2013)","http://portal.acm.org/proceedings/emsoft/","http://portal.acm.org/proceedings/emsoft/archive/"
-"Conference Proceedings","EOMAS: Enterprises & Organizational Modeling and Simulation","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/eomas/","http://portal.acm.org/proceedings/eomas/archive/"
-"Conference Proceedings","EPIA: Progress in Artificial Intelligence","","","","2007 (December 2007)","2007 (December 2007)","http://portal.acm.org/proceedings/epia/","http://portal.acm.org/proceedings/epia/archive/"
-"Conference Proceedings","ERLANG: ERLANG","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/erlang/","http://portal.acm.org/proceedings/erlang/archive/"
-"Conference Proceedings","ESAIR: Exploiting Semantic Annotations in Information Retrieval","","","","2009 (February 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/esair/","http://portal.acm.org/proceedings/esair/archive/"
-"Conference Proceedings","ESC: Economics of Software and Computation","","","","2007 (May 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/esc/","http://portal.acm.org/proceedings/esc/archive/"
-"Conference Proceedings","ESEC/FSE: European Software Engineering Conference","","","","1997 (November 1997)","2013 (August 2013)","http://portal.acm.org/proceedings/esec/fse/","http://portal.acm.org/proceedings/esec/fse/archive/"
-"Conference Proceedings","ESEM: Empirical Software Engineering and Measurement","","","","2007 (September 2007)","2012 (September 2012)","http://portal.acm.org/proceedings/esem/","http://portal.acm.org/proceedings/esem/archive/"
-"Conference Proceedings","ESP: Empirical Studies of Programmers","","","","1997 (October 1997)","1997 (October 1997)","http://portal.acm.org/proceedings/esp/","http://portal.acm.org/proceedings/esp/archive/"
-"Conference Proceedings","ESSPE: Engineering of Software Services for Pervasive Environments","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/esspe/","http://portal.acm.org/proceedings/esspe/archive/"
-"Conference Proceedings","ESTMED: Embedded Systems for Real Time Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/estmed/","http://portal.acm.org/proceedings/estmed/archive/"
-"Conference Proceedings","ETOOS: Testing Object-Oriented Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/etoos/","http://portal.acm.org/proceedings/etoos/archive/"
-"Conference Proceedings","ETP: Effective Telepresence","","","","2003 (November 2003)","2004 (October 2004)","http://portal.acm.org/proceedings/etp/","http://portal.acm.org/proceedings/etp/archive/"
-"Conference Proceedings","ETRA: Eye Tracking Research and Applications","","","","2000 (November 2000)","2012 (March 2012)","http://portal.acm.org/proceedings/etra/","http://portal.acm.org/proceedings/etra/archive/"
-"Conference Proceedings","EURO-DAC: European Design Automation","","","","1990 (March 1990)","1996 (September 1996)","http://portal.acm.org/proceedings/euro-dac/","http://portal.acm.org/proceedings/euro-dac/archive/"
-"Conference Proceedings","EUROSEC: European Workshop on System Security","","","","2008 (March 2008)","2011 (April 2011)","http://portal.acm.org/proceedings/eurosec/","http://portal.acm.org/proceedings/eurosec/archive/"
-"Conference Proceedings","EUSAI: European Union symposium on Ambient intelligence","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/eusai/","http://portal.acm.org/proceedings/eusai/archive/"
-"Conference Proceedings","EW: ACM SIGOPS European Workshop","","","","1985 (January 1985)","2004 (September 2004)","http://portal.acm.org/proceedings/ew/","http://portal.acm.org/proceedings/ew/archive/"
-"Conference Proceedings","EiMM: Events in Multimedia","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/eimm/","http://portal.acm.org/proceedings/eimm/archive/"
-"Conference Proceedings","EmNets: Embedded Networked Sensors","","","","2005 (April 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/emnets/","http://portal.acm.org/proceedings/emnets/archive/"
-"Conference Proceedings","Emme: Educational Multimedia and Multimedia Education","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/emme/","http://portal.acm.org/proceedings/emme/archive/"
-"Conference Proceedings","Ergo'IA: Ergonomie et Informatique Avancee Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/ergo'ia/","http://portal.acm.org/proceedings/ergo'ia/archive/"
-"Conference Proceedings","EuroITV: Interactive TV &#38; Video","","","","2007 (May 2007)","2013 (June 2013)","http://portal.acm.org/proceedings/euroitv/","http://portal.acm.org/proceedings/euroitv/archive/"
-"Conference Proceedings","EuroSys: European Conference on Computer Systems","","","","2006 (April 2006)","2013 (April 2013)","http://portal.acm.org/proceedings/eurosys/","http://portal.acm.org/proceedings/eurosys/archive/"
-"Conference Proceedings","ExpCS: Experimental Computer Science","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/expcs/","http://portal.acm.org/proceedings/expcs/archive/"
-"Conference Proceedings","FAA: Facial Analysis and Animation","","","","2010 (October 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/faa/","http://portal.acm.org/proceedings/faa/archive/"
-"Conference Proceedings","FAST: File and Storage Technologies","","","","2005 (December 2005)","2012 (February 2012)","http://portal.acm.org/proceedings/fast/","http://portal.acm.org/proceedings/fast/archive/"
-"Conference Proceedings","FDG: Foundations of Digital Games","","","","2009 (April 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/fdg/","http://portal.acm.org/proceedings/fdg/archive/"
-"Conference Proceedings","FDNA: Future Directions in Network Architectures","","","","2003 (August 2003)","2004 (August 2004)","http://portal.acm.org/proceedings/fdna/","http://portal.acm.org/proceedings/fdna/archive/"
-"Conference Proceedings","FDPE: Functional and Declarative Progamming in Education","","","","2005 (September 2005)","2008 (September 2008)","http://portal.acm.org/proceedings/fdpe/","http://portal.acm.org/proceedings/fdpe/archive/"
-"Conference Proceedings","FIT: Frontiers of Information Technology","","","","2009 (December 2009)","2010 (December 2010)","http://portal.acm.org/proceedings/fit/","http://portal.acm.org/proceedings/fit/archive/"
-"Conference Proceedings","FLOSS: Emerging Trends in Free/Libre/Open Source Software Research and Development","","","","2007 (May 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/floss/","http://portal.acm.org/proceedings/floss/archive/"
-"Conference Proceedings","FMICS: Formal Methods for Industrial Critical Systems","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/fmics/","http://portal.acm.org/proceedings/fmics/archive/"
-"Conference Proceedings","FMSE: Formal Methods in Security Engineering","","","","2003 (October 2003)","2008 (October 2008)","http://portal.acm.org/proceedings/fmse/","http://portal.acm.org/proceedings/fmse/archive/"
-"Conference Proceedings","FMSP: Formal Methods in Software Practice","","","","1998 (March 1998)","2000 (August 2000)","http://portal.acm.org/proceedings/fmsp/","http://portal.acm.org/proceedings/fmsp/archive/"
-"Conference Proceedings","FOAL: Foundations of Aspect-Oriented Languages","","","","2007 (March 2007)","2013 (March 2013)","http://portal.acm.org/proceedings/foal/","http://portal.acm.org/proceedings/foal/archive/"
-"Conference Proceedings","FOGA: Foundations of Genetic Algorithms","","","","2007 (January 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/foga/","http://portal.acm.org/proceedings/foga/archive/"
-"Conference Proceedings","FOIS: Formal Ontology in Information Systems","","","","2001 (October 2001)","2001 (October 2001)","http://portal.acm.org/proceedings/fois/","http://portal.acm.org/proceedings/fois/archive/"
-"Conference Proceedings","FORTH: FORTH","","","","1989 (January 1989)","1992 (December 1993)","http://portal.acm.org/proceedings/forth/","http://portal.acm.org/proceedings/forth/archive/"
-"Conference Proceedings","FOSD: Feature-Oriented Software Development","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/fosd/","http://portal.acm.org/proceedings/fosd/archive/"
-"Conference Proceedings","FOSE: Future of Software Engineering","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/fose/","http://portal.acm.org/proceedings/fose/archive/"
-"Conference Proceedings","FOWANC: Foundations of Wireless Ad-Hoc and Sensor Networking and Computing","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/fowanc/","http://portal.acm.org/proceedings/fowanc/archive/"
-"Conference Proceedings","FPCA: Functional Programming Languages and Computer Architecture","","","","1981 (October 1981)","1995 (October 1995)","http://portal.acm.org/proceedings/fpca/","http://portal.acm.org/proceedings/fpca/archive/"
-"Conference Proceedings","FPGA: Field Programmable Gate Arrays","","","","1995 (February 1995)","2013 (February 2013)","http://portal.acm.org/proceedings/fpga/","http://portal.acm.org/proceedings/fpga/archive/"
-"Conference Proceedings","FPGAworld: FPGAworld","","","","2009 (September 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/fpgaworld/","http://portal.acm.org/proceedings/fpgaworld/archive/"
-"Conference Proceedings","FSEDS: Foundations of Software Engineering Doctoral Symposium","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/fseds/","http://portal.acm.org/proceedings/fseds/archive/"
-"Conference Proceedings","FSEN: Fundamentals of Software Engineering","","","","2007 (April 2007)","2007 (April 2007)","http://portal.acm.org/proceedings/fsen/","http://portal.acm.org/proceedings/fsen/archive/"
-"Conference Proceedings","FSM: Functional Size Measurement","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/fsm/","http://portal.acm.org/proceedings/fsm/archive/"
-"Conference Proceedings","FTfJP: Formal Techniques for Java-like Programs","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/ftfjp/","http://portal.acm.org/proceedings/ftfjp/archive/"
-"Conference Proceedings","FeBiD: International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/febid/","http://portal.acm.org/proceedings/febid/archive/"
-"Conference Proceedings","FoSER: Future of Software Engineering Research ","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/foser/","http://portal.acm.org/proceedings/foser/archive/"
-"Conference Proceedings","Fun and Games: Fun and Games","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/funandgames/","http://portal.acm.org/proceedings/funandgames/archive/"
-"Conference Proceedings","Future Play: Future Play","","","","2007 (November 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/futureplay/","http://portal.acm.org/proceedings/futureplay/archive/"
-"Conference Proceedings","GCE: Grid Computing Environments","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/gce/","http://portal.acm.org/proceedings/gce/archive/"
-"Conference Proceedings","GCM: Green Computing","","","","2010 (November 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gcm/","http://portal.acm.org/proceedings/gcm/archive/"
-"Conference Proceedings","GDCSE: Game Development in Computer Science Education","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/gdcse/","http://portal.acm.org/proceedings/gdcse/archive/"
-"Conference Proceedings","GEC: Genetic and Evolutionary Computation","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/gec/","http://portal.acm.org/proceedings/gec/archive/"
-"Conference Proceedings","GECCO: Genetic and Evolutionary Computation Conference","","","","1996 (July 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/gecco/","http://portal.acm.org/proceedings/gecco/archive/"
-"Conference Proceedings","GH: Graphics Hardware","","","","1997 (August 1997)","2008 (June 2008)","http://portal.acm.org/proceedings/gh/","http://portal.acm.org/proceedings/gh/archive/"
-"Conference Proceedings","GI: Graphics Interface","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/gi/","http://portal.acm.org/proceedings/gi/archive/"
-"Conference Proceedings","GIR: Geographic Information Retrieval","","","","2005 (November 2005)","2010 (February 2010)","http://portal.acm.org/proceedings/gir/","http://portal.acm.org/proceedings/gir/archive/"
-"Conference Proceedings","GIS: Geographic Information Systems","","","","1996 (November 1996)","2012 (November 2012)","http://portal.acm.org/proceedings/gis/","http://portal.acm.org/proceedings/gis/archive/"
-"Conference Proceedings","GLSVLSI: Great Lakes Symposium on VLSI","","","","1995 (March 1995)","2013 (May 2013)","http://portal.acm.org/proceedings/glsvlsi/","http://portal.acm.org/proceedings/glsvlsi/archive/"
-"Conference Proceedings","GMAC: Grids Meets Autonomic Computing","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/gmac/","http://portal.acm.org/proceedings/gmac/archive/"
-"Conference Proceedings","GMW: Grid Monitoring","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/gmw/","http://portal.acm.org/proceedings/gmw/archive/"
-"Conference Proceedings","GPCE: Generative Programming and Component Engineering","","","","2002 (October 2002)","2013 (October 2013)","http://portal.acm.org/proceedings/gpce/","http://portal.acm.org/proceedings/gpce/archive/"
-"Conference Proceedings","GPGPU: General Purpose Processing on Graphics Processing Units","","","","2009 (March 2009)","2012 (March 2012)","http://portal.acm.org/proceedings/gpgpu/","http://portal.acm.org/proceedings/gpgpu/archive/"
-"Conference Proceedings","GRAPHITE: Computer Graphics and Interactive Techniques in Australia and South East Asia","","","","2003 (February 2003)","2007 (December 2007)","http://portal.acm.org/proceedings/graphite/","http://portal.acm.org/proceedings/graphite/archive/"
-"Conference Proceedings","GRID: Grid Computing","","","","2003 (November 2003)","2008 (September 2008)","http://portal.acm.org/proceedings/grid/","http://portal.acm.org/proceedings/grid/archive/"
-"Conference Proceedings","GROUP: Supporting Group Work","","","","1997 (November 1997)","2012 (October 2012)","http://portal.acm.org/proceedings/group/","http://portal.acm.org/proceedings/group/archive/"
-"Conference Proceedings","GRaMoT: Graph and Model Transformations","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/gramot/","http://portal.acm.org/proceedings/gramot/archive/"
-"Conference Proceedings","GSD: Global Software Development for the Practitioner","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gsd/","http://portal.acm.org/proceedings/gsd/archive/"
-"Conference Proceedings","GTIP: Governance of Technology, Information, and Policies ","","","","2010 (December 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gtip/","http://portal.acm.org/proceedings/gtip/archive/"
-"Conference Proceedings","GaMMa: Global Integrated Model Management","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gamma/","http://portal.acm.org/proceedings/gamma/archive/"
-"Conference Proceedings","GameNets: Game Theory for Communications and Networks","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/gamenets/","http://portal.acm.org/proceedings/gamenets/archive/"
-"Conference Proceedings","Green Networking: Green networking","","","","2010 (August 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/greennetworking/","http://portal.acm.org/proceedings/greennetworking/archive/"
-"Conference Proceedings","GridNets: Networks for Grid Applications","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/gridnets/","http://portal.acm.org/proceedings/gridnets/archive/"
-"Conference Proceedings","HAS: Haptic User Interfaces in Ambient Media Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/has/","http://portal.acm.org/proceedings/has/archive/"
-"Conference Proceedings","HCC: Human-Centered Computing","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/hcc/","http://portal.acm.org/proceedings/hcc/archive/"
-"Conference Proceedings","HCM: Human-Centered Multimedia","","","","2006 (October 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/hcm/","http://portal.acm.org/proceedings/hcm/archive/"
-"Conference Proceedings","HCOMP: Human Computation","","","","2009 (June 2009)","2010 (July 2010)","http://portal.acm.org/proceedings/hcomp/","http://portal.acm.org/proceedings/hcomp/archive/"
-"Conference Proceedings","HDP: Hardcopy Document Processing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/hdp/","http://portal.acm.org/proceedings/hdp/archive/"
-"Conference Proceedings","HIKM: Healthcare Information and Knowledge Management","","","","2006 (November 2006)","2010 (January 2010)","http://portal.acm.org/proceedings/hikm/","http://portal.acm.org/proceedings/hikm/archive/"
-"Conference Proceedings","HLLCA: High-Level-Language Computer Architecture","","","","1973 (November 1973)","1973 (November 1973)","http://portal.acm.org/proceedings/hllca/","http://portal.acm.org/proceedings/hllca/archive/"
-"Conference Proceedings","HLPP: High-level parallel programming and applications","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/hlpp/","http://portal.acm.org/proceedings/hlpp/archive/"
-"Conference Proceedings","HOPL: History of Programming Languages","","","","1993 (April 1993)","2007 (June 2007)","http://portal.acm.org/proceedings/hopl/","http://portal.acm.org/proceedings/hopl/archive/"
-"Conference Proceedings","HPCVirt: System-level Virtualization for High Performance Computing","","","","2008 (March 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/hpcvirt/","http://portal.acm.org/proceedings/hpcvirt/archive/"
-"Conference Proceedings","HPDC: High Performance Distributed Computing","","","","1995 (August 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/hpdc/","http://portal.acm.org/proceedings/hpdc/archive/"
-"Conference Proceedings","HPDGIS: High Performance and Distributed Geographic Information Systems ","","","","2010 (November 2010)","2011 (November 2011)","http://portal.acm.org/proceedings/hpdgis/","http://portal.acm.org/proceedings/hpdgis/archive/"
-"Conference Proceedings","HPG: High Perfomance Graphics","","","","2009 (August 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/hpg/","http://portal.acm.org/proceedings/hpg/archive/"
-"Conference Proceedings","HPRCTA: High-Performance Reconfigurable Computing Technology and Applications","","","","2007 (November 2007)","2009 (November 2009)","http://portal.acm.org/proceedings/hprcta/","http://portal.acm.org/proceedings/hprcta/archive/"
-"Conference Proceedings","HPW: History of Personal Workstations","","","","1986 (January 1986)","1986 (January 1986)","http://portal.acm.org/proceedings/hpw/","http://portal.acm.org/proceedings/hpw/archive/"
-"Conference Proceedings","HRI: Human-Robot Interaction","","","","2006 (March 2006)","2013 (March 2013)","http://portal.acm.org/proceedings/hri/","http://portal.acm.org/proceedings/hri/archive/"
-"Conference Proceedings","HSCC: Hybrid Systems: Computation and Control","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/hscc/","http://portal.acm.org/proceedings/hscc/archive/"
-"Conference Proceedings","HSNC: History of Scientific and Numeric Computation","","","","1987 (October 1987)","1987 (October 1987)","http://portal.acm.org/proceedings/hsnc/","http://portal.acm.org/proceedings/hsnc/archive/"
-"Conference Proceedings","HSSE: Human and Social Factors of Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/hsse/","http://portal.acm.org/proceedings/hsse/archive/"
-"Conference Proceedings","HT: Hypertext and hypermedia","","","","1987 (November 1987)","2013 (May 2013)","http://portal.acm.org/proceedings/ht/","http://portal.acm.org/proceedings/ht/archive/"
-"Conference Proceedings","Haskell: Haskell","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/haskell/","http://portal.acm.org/proceedings/haskell/archive/"
-"Conference Proceedings","HealthNet: Networking Support for Health Care and Assisted Living Environments","","","","2007 (June 2007)","2008 (June 2008)","http://portal.acm.org/proceedings/healthnet/","http://portal.acm.org/proceedings/healthnet/archive/"
-"Conference Proceedings","HetRec: Information Heterogeneity and Fusion in Recommender Systems ","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/hetrec/","http://portal.acm.org/proceedings/hetrec/archive/"
-"Conference Proceedings","HeterSanet: Heterogeneous Sensor and Actor Networks","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/hetersanet/","http://portal.acm.org/proceedings/hetersanet/archive/"
-"Conference Proceedings","HiPC: High Performance Computing ","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/hipc/","http://portal.acm.org/proceedings/hipc/archive/"
-"Conference Proceedings","HomeNets: Home Networks","","","","2010 (September 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/homenets/","http://portal.acm.org/proceedings/homenets/archive/"
-"Conference Proceedings","HotMobile: Mobile Computing Systems and Applications","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/hotmobile/","http://portal.acm.org/proceedings/hotmobile/archive/"
-"Conference Proceedings","HotPlanet: Hot Topics of Planet-Scale Mobility Measurements","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/hotplanet/","http://portal.acm.org/proceedings/hotplanet/archive/"
-"Conference Proceedings","HotSWUp: Hot Topics in Software Upgrades","","","","2008 (October 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/hotswup/","http://portal.acm.org/proceedings/hotswup/archive/"
-"Conference Proceedings","Hotnets: Hot Topics in Networks","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/hotnets/","http://portal.acm.org/proceedings/hotnets/archive/"
-"Conference Proceedings","HuCom: Human Factors and Computational Models in Negotiation","","","","2009 (December 2008)","2009 (December 2008)","http://portal.acm.org/proceedings/hucom/","http://portal.acm.org/proceedings/hucom/archive/"
-"Conference Proceedings","I-SEMANTICS: Semantic Systems","","","","2010 (September 2010)","2013 (September 2013)","http://portal.acm.org/proceedings/i-semantics/","http://portal.acm.org/proceedings/i-semantics/archive/"
-"Conference Proceedings","I3D: Interactive 3D Graphics and Games","","","","1987 (January 1987)","2013 (March 2013)","http://portal.acm.org/proceedings/i3d/","http://portal.acm.org/proceedings/i3d/archive/"
-"Conference Proceedings","IAT: Intelligent Agent Technology","","","","2006 (December 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/iat/","http://portal.acm.org/proceedings/iat/archive/"
-"Conference Proceedings","ICAC3: Advances in Computing, Communication and Control","","","","2009 (January 2009)","2009 (January 2009)","http://portal.acm.org/proceedings/icac3/","http://portal.acm.org/proceedings/icac3/archive/"
-"Conference Proceedings","ICAC: Autonomic Computing","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/icac/","http://portal.acm.org/proceedings/icac/archive/"
-"Conference Proceedings","ICAIL: International Conference on Artificial Intelligence and Law","","","","1987 (December 1987)","2013 (June 2013)","http://portal.acm.org/proceedings/icail/","http://portal.acm.org/proceedings/icail/archive/"
-"Conference Proceedings","ICAIT: Advanced Infocomm Technology","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/icait/","http://portal.acm.org/proceedings/icait/archive/"
-"Conference Proceedings","ICAT: Augmented Tele-existence","","","","2005 (December 2005)","2005 (December 2005)","http://portal.acm.org/proceedings/icat/","http://portal.acm.org/proceedings/icat/archive/"
-"Conference Proceedings","ICCAD: International Conference on Computer-Aided Design","","","","1992 (November 1992)","2012 (November 2012)","http://portal.acm.org/proceedings/iccad/","http://portal.acm.org/proceedings/iccad/archive/"
-"Conference Proceedings","ICCPS: Cyber-Physical Systems","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/iccps/","http://portal.acm.org/proceedings/iccps/archive/"
-"Conference Proceedings","ICDL: International Conference on Dynamic Languages","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/icdl/","http://portal.acm.org/proceedings/icdl/archive/"
-"Conference Proceedings","ICDSC: Distributed Smart Cameras","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/icdsc/","http://portal.acm.org/proceedings/icdsc/archive/"
-"Conference Proceedings","ICDT: Database Theory","","","","2009 (March 2009)","2013 (March 2013)","http://portal.acm.org/proceedings/icdt/","http://portal.acm.org/proceedings/icdt/archive/"
-"Conference Proceedings","ICE: Information and Computation Economies","","","","1998 (October 1998)","1998 (October 1998)","http://portal.acm.org/proceedings/ice/","http://portal.acm.org/proceedings/ice/archive/"
-"Conference Proceedings","ICEC: International Conference on Electronic Commerce","","","","2003 (September 2003)","2012 (August 2012)","http://portal.acm.org/proceedings/icec/","http://portal.acm.org/proceedings/icec/archive/"
-"Conference Proceedings","ICEGOV: International Conference on Theory and Practice of Electronic Governance","","","","2007 (December 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/icegov/","http://portal.acm.org/proceedings/icegov/archive/"
-"Conference Proceedings","ICER: International Computing Education Research Workshop","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/icer/","http://portal.acm.org/proceedings/icer/archive/"
-"Conference Proceedings","ICFP: International Conference on Functional Programmuing","","","","1996 (June 1996)","2013 (September 2013)","http://portal.acm.org/proceedings/icfp/","http://portal.acm.org/proceedings/icfp/archive/"
-"Conference Proceedings","ICHIT: International Conference on Hybrid Information Technology","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/ichit/","http://portal.acm.org/proceedings/ichit/archive/"
-"Conference Proceedings","ICIC: Intercultural Collaboration","","","","2010 (August 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/icic/","http://portal.acm.org/proceedings/icic/archive/"
-"Conference Proceedings","ICIMCS: Internet Multimedia Computing and Service","","","","2009 (November 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/icimcs/","http://portal.acm.org/proceedings/icimcs/archive/"
-"Conference Proceedings","ICIS: International Conference on Computer and Information Science","","","","1989 (December 1989)","2009 (November 2009)","http://portal.acm.org/proceedings/icis/","http://portal.acm.org/proceedings/icis/archive/"
-"Conference Proceedings","ICMI: International Conference on Multimodal Interfaces","","","","2002 (October 2002)","2013 (December 2013)","http://portal.acm.org/proceedings/icmi/","http://portal.acm.org/proceedings/icmi/archive/"
-"Conference Proceedings","ICML: International Conference on Machine Learning","","","","2004 (July 2004)","2009 (June 2009)","http://portal.acm.org/proceedings/icml/","http://portal.acm.org/proceedings/icml/archive/"
-"Conference Proceedings","ICOOOLPS: Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/icooolps/","http://portal.acm.org/proceedings/icooolps/archive/"
-"Conference Proceedings","ICPS: Pervasive Services","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/icps/","http://portal.acm.org/proceedings/icps/archive/"
-"Conference Proceedings","ICPW: International Conference on Pragmatic Web","","","","2007 (October 2007)","2008 (November 2008)","http://portal.acm.org/proceedings/icpw/","http://portal.acm.org/proceedings/icpw/archive/"
-"Conference Proceedings","ICS: International Conference on Supercomputing","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/ics/","http://portal.acm.org/proceedings/ics/archive/"
-"Conference Proceedings","ICSE: International Conference on Software Engineering","","","","1976 (October 1976)","2012 (June 2012)","http://portal.acm.org/proceedings/icse/","http://portal.acm.org/proceedings/icse/archive/"
-"Conference Proceedings","ICSOC: International Conference on Service Oriented Computing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/icsoc/","http://portal.acm.org/proceedings/icsoc/archive/"
-"Conference Proceedings","ICTD: Information and Communication Technologies and Development ","","","","2009 (April 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/ictd/","http://portal.acm.org/proceedings/ictd/archive/"
-"Conference Proceedings","ICUIMC: International Conference on Ubiquitous Information Management and Communication","","","","2008 (January 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/icuimc/","http://portal.acm.org/proceedings/icuimc/archive/"
-"Conference Proceedings","ICVGIP: Indian Conference on Computer Vision, Graphics and Image Processing","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/icvgip/","http://portal.acm.org/proceedings/icvgip/archive/"
-"Conference Proceedings","ICWE: Web Engineering","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/icwe/","http://portal.acm.org/proceedings/icwe/archive/"
-"Conference Proceedings","ICWET: Workshop on Emerging Trends in Technology","","","","2010 (February 2010)","2011 (February 2011)","http://portal.acm.org/proceedings/icwet/","http://portal.acm.org/proceedings/icwet/archive/"
-"Conference Proceedings","IDAR: Innovative Database Research","","","","2008 (June 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/idar/","http://portal.acm.org/proceedings/idar/archive/"
-"Conference Proceedings","IDC: Interaction Design and Children","","","","2003 (July 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/idc/","http://portal.acm.org/proceedings/idc/archive/"
-"Conference Proceedings","IDEAS: International Database Engineering &#38; Applications Symposium","","","","2008 (September 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/ideas/","http://portal.acm.org/proceedings/ideas/archive/"
-"Conference Proceedings","IDL: Interface Definition Languages","","","","1994 (August 1994)","1994 (August 1994)","http://portal.acm.org/proceedings/idl/","http://portal.acm.org/proceedings/idl/archive/"
-"Conference Proceedings","IDTRUST: Identity and Trust on the Internet","","","","2008 (March 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/idtrust/","http://portal.acm.org/proceedings/idtrust/archive/"
-"Conference Proceedings","IE: Interactive Entertainment","","","","2006 (December 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/ie/","http://portal.acm.org/proceedings/ie/archive/"
-"Conference Proceedings","IEA/AIE: Industrial and Engineering Applications of Artificial Intelligence and Expert Systems","","","","1988 (June 1988)","2011 (June 2011)","http://portal.acm.org/proceedings/iea/aie/","http://portal.acm.org/proceedings/iea/aie/archive/"
-"Conference Proceedings","IFMT: Next-Generation Multicore/Manycore Technologies","","","","2008 (November 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/ifmt/","http://portal.acm.org/proceedings/ifmt/archive/"
-"Conference Proceedings","IHC: Brazilian Symposium on Human Factors in Computing Systems","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ihc/","http://portal.acm.org/proceedings/ihc/archive/"
-"Conference Proceedings","IHI: International Health Informatics Symposium","","","","2010 (November 2010)","2012 (January 2012)","http://portal.acm.org/proceedings/ihi/","http://portal.acm.org/proceedings/ihi/archive/"
-"Conference Proceedings","IHIS: Interoperability of Heterogeneous Information Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ihis/","http://portal.acm.org/proceedings/ihis/archive/"
-"Conference Proceedings","IHM: International Conference on Association Francophone d'Interaction Homme-Machine","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/ihm/","http://portal.acm.org/proceedings/ihm/archive/"
-"Conference Proceedings","IIES: Isolation and Integration in Embedded Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/iies/","http://portal.acm.org/proceedings/iies/archive/"
-"Conference Proceedings","IIiX: Information Interaction in Context","","","","2006 (October 2006)","2012 (August 2012)","http://portal.acm.org/proceedings/iiix/","http://portal.acm.org/proceedings/iiix/archive/"
-"Conference Proceedings","ILC: International Lisp Conference","","","","2009 (April 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/ilc/","http://portal.acm.org/proceedings/ilc/archive/"
-"Conference Proceedings","IMC: Internet Measurement Conference","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/imc/","http://portal.acm.org/proceedings/imc/archive/"
-"Conference Proceedings","IMCE: Interactive Multimedia for Consumer Electronics","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/imce/","http://portal.acm.org/proceedings/imce/archive/"
-"Conference Proceedings","IMW: Internet Measurement Workshop","","","","2001 (November 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/imw/","http://portal.acm.org/proceedings/imw/archive/"
-"Conference Proceedings","INA-OCMC: Interconnection Network Architecture: On-Chip, Multi-Chip","","","","2011 (January 2011)","2011 (January 2011)","http://portal.acm.org/proceedings/ina-ocmc/","http://portal.acm.org/proceedings/ina-ocmc/archive/"
-"Conference Proceedings","INM: Internet Network Management","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/inm/","http://portal.acm.org/proceedings/inm/archive/"
-"Conference Proceedings","INT3: Intelligent Narrative Technologies","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/int3/","http://portal.acm.org/proceedings/int3/archive/"
-"Conference Proceedings","INTERACT: Interaction between Compilers and Computer Architecture","","","","2010 (March 2010)","2010 (March 2010)","http://portal.acm.org/proceedings/interact/","http://portal.acm.org/proceedings/interact/archive/"
-"Conference Proceedings","INTETAIN: Intelligent Technologies for Interactive Entertainment","","","","2007 (January 2008)","2007 (January 2008)","http://portal.acm.org/proceedings/intetain/","http://portal.acm.org/proceedings/intetain/archive/"
-"Conference Proceedings","IOPADS: I/O in Parallel and Distributed Systems","","","","1996 (May 1996)","1999 (May 1999)","http://portal.acm.org/proceedings/iopads/","http://portal.acm.org/proceedings/iopads/archive/"
-"Conference Proceedings","IPSN: Information Processing in Sensor Networks","","","","2004 (April 2004)","2013 (April 2013)","http://portal.acm.org/proceedings/ipsn/","http://portal.acm.org/proceedings/ipsn/archive/"
-"Conference Proceedings","IPT/EDT: Immersive Projection technologies/Emerging Display Technologies","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/ipt/edt/","http://portal.acm.org/proceedings/ipt/edt/archive/"
-"Conference Proceedings","IPTComm: Principles, Systems and Applications of IP Telecommunications","","","","2007 (July 2007)","2010 (August 2010)","http://portal.acm.org/proceedings/iptcomm/","http://portal.acm.org/proceedings/iptcomm/archive/"
-"Conference Proceedings","IQIS: Information Quality in Information Systems","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/iqis/","http://portal.acm.org/proceedings/iqis/archive/"
-"Conference Proceedings","IR: Intermediate Representations","","","","1995 (March 1995)","1995 (March 1995)","http://portal.acm.org/proceedings/ir/","http://portal.acm.org/proceedings/ir/archive/"
-"Conference Proceedings","IRAL: Information Retrieval with Asian Languages","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/iral/","http://portal.acm.org/proceedings/iral/archive/"
-"Conference Proceedings","IRE-ACM-AIEE: IRE-ACM-AIEE","","","","1957 (February 1957)","1961 (May 1961)","http://portal.acm.org/proceedings/ire-acm-aiee/","http://portal.acm.org/proceedings/ire-acm-aiee/archive/"
-"Conference Proceedings","IRTAW: Real-Time Ada","","","","1987 (October 1987)","2007 (April 2007)","http://portal.acm.org/proceedings/irtaw/","http://portal.acm.org/proceedings/irtaw/archive/"
-"Conference Proceedings","IS: Guidelines for undergraduate degree programs on Model curriculum and guidelines for undergraduate degree programs in information systems","","","","1997 (December 1997)","1997 (December 1997)","http://portal.acm.org/proceedings/is/","http://portal.acm.org/proceedings/is/archive/"
-"Conference Proceedings","ISA: Indoor Spatial Awareness ","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/isa/","http://portal.acm.org/proceedings/isa/archive/"
-"Conference Proceedings","ISAW: Software Architecture Workshop","","","","1996 (October 1996)","1998 (November 1998)","http://portal.acm.org/proceedings/isaw/","http://portal.acm.org/proceedings/isaw/archive/"
-"Conference Proceedings","ISB: International Symposium on Biocomputing","","","","2010 (February 2010)","2010 (February 2010)","http://portal.acm.org/proceedings/isb/","http://portal.acm.org/proceedings/isb/archive/"
-"Conference Proceedings","ISCA: International Symposium on Computer Architecture","","","","1973 (December 1973)","2013 (June 2013)","http://portal.acm.org/proceedings/isca/","http://portal.acm.org/proceedings/isca/archive/"
-"Conference Proceedings","ISEC: India Software Engineering Conference","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/isec/","http://portal.acm.org/proceedings/isec/archive/"
-"Conference Proceedings","ISESE: International Symposium on Empirical Software Engineering","","","","2002 (October 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/isese/","http://portal.acm.org/proceedings/isese/archive/"
-"Conference Proceedings","ISLPED: International Symposium on Low Power Electronic Design","","","","1995 (April 1995)","2012 (July 2012)","http://portal.acm.org/proceedings/islped/","http://portal.acm.org/proceedings/islped/archive/"
-"Conference Proceedings","ISMAR: Mixed and Augmented Reality","","","","2002 (September 2002)","2009 (October 2009)","http://portal.acm.org/proceedings/ismar/","http://portal.acm.org/proceedings/ismar/archive/"
-"Conference Proceedings","ISMIS: International Symposium on Methodologies for Intelligent Systems","","","","1986 (December 1986)","1986 (December 1986)","http://portal.acm.org/proceedings/ismis/","http://portal.acm.org/proceedings/ismis/archive/"
-"Conference Proceedings","ISMM: Memory Management","","","","1998 (October 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/ismm/","http://portal.acm.org/proceedings/ismm/archive/"
-"Conference Proceedings","ISPA: Parallel and Distributed Processing and Applications","","","","2003 (July 2003)","2004 (December 2004)","http://portal.acm.org/proceedings/ispa/","http://portal.acm.org/proceedings/ispa/archive/"
-"Conference Proceedings","ISPD: Physical Design","","","","1997 (April 1997)","2013 (March 2013)","http://portal.acm.org/proceedings/ispd/","http://portal.acm.org/proceedings/ispd/archive/"
-"Conference Proceedings","ISPW: International Software Process Workshop","","","","1988 (April 1988)","1996 (June 1996)","http://portal.acm.org/proceedings/ispw/","http://portal.acm.org/proceedings/ispw/archive/"
-"Conference Proceedings","ISQED: Quality Electronic Design","","","","2006 (March 2006)","2006 (March 2006)","http://portal.acm.org/proceedings/isqed/","http://portal.acm.org/proceedings/isqed/archive/"
-"Conference Proceedings","ISSAC: International Symposium of Symbolic and Algebraic Computation","","","","1989 (July 1989)","2013 (June 2013)","http://portal.acm.org/proceedings/issac/","http://portal.acm.org/proceedings/issac/archive/"
-"Conference Proceedings","ISSS: International Symposium on System Synthesis","","","","1994 (May 1994)","2002 (October 2002)","http://portal.acm.org/proceedings/isss/","http://portal.acm.org/proceedings/isss/archive/"
-"Conference Proceedings","ISSTA: International Symposium on Software Testing and Analysis","","","","1993 (August 1993)","2013 (July 2013)","http://portal.acm.org/proceedings/issta/","http://portal.acm.org/proceedings/issta/archive/"
-"Conference Proceedings","ISTA: Information Science, Technology and Applications","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/ista/","http://portal.acm.org/proceedings/ista/archive/"
-"Conference Proceedings","ISWSA: Intelligent Semantic Web &mdash; Services and Applications","","","","2010 (June 2010)","2011 (April 2011)","http://portal.acm.org/proceedings/iswsa/","http://portal.acm.org/proceedings/iswsa/archive/"
-"Conference Proceedings","ITS: Interactive Tabletops and Surfaces","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/its/","http://portal.acm.org/proceedings/its/archive/"
-"Conference Proceedings","ITiCSE: Innovation and Technology in Computer Science Education","","","","1996 (June 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/iticse/","http://portal.acm.org/proceedings/iticse/archive/"
-"Conference Proceedings","IUCS: International Universal Communication Symposium","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/iucs/","http://portal.acm.org/proceedings/iucs/archive/"
-"Conference Proceedings","IUI: Intelligent User Interfaces","","","","1993 (February 1993)","2013 (March 2013)","http://portal.acm.org/proceedings/iui/","http://portal.acm.org/proceedings/iui/archive/"
-"Conference Proceedings","IVME: Interpreters, Virtual Machines and Emulators","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/ivme/","http://portal.acm.org/proceedings/ivme/archive/"
-"Conference Proceedings","IW-SOSWE: Service Oriented Software Engineering","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/iw-soswe/","http://portal.acm.org/proceedings/iw-soswe/archive/"
-"Conference Proceedings","IWAAPF: Application and Advances of Problem Frames","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/iwaapf/","http://portal.acm.org/proceedings/iwaapf/archive/"
-"Conference Proceedings","IWACO: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/iwaco/","http://portal.acm.org/proceedings/iwaco/archive/"
-"Conference Proceedings","IWCMC: International Wireless Communications and Mobile Computing Conference","","","","2006 (July 2006)","2010 (June 2010)","http://portal.acm.org/proceedings/iwcmc/","http://portal.acm.org/proceedings/iwcmc/archive/"
-"Conference Proceedings","IWCTS: Computational Transportation Science","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/iwcts/","http://portal.acm.org/proceedings/iwcts/archive/"
-"Conference Proceedings","IWDE: Digital Engineering","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/iwde/","http://portal.acm.org/proceedings/iwde/archive/"
-"Conference Proceedings","IWGS: International Workshop on GeoStreaming","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/iwgs/","http://portal.acm.org/proceedings/iwgs/archive/"
-"Conference Proceedings","IWIC: Intercultural Collaboration","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/iwic/","http://portal.acm.org/proceedings/iwic/archive/"
-"Conference Proceedings","IWICSS: Incorporating COTS Software into Software Systems","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/iwicss/","http://portal.acm.org/proceedings/iwicss/archive/"
-"Conference Proceedings","IWMCP: Model Comparison in Practice","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/iwmcp/","http://portal.acm.org/proceedings/iwmcp/archive/"
-"Conference Proceedings","IWMSE: Multicore Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/iwmse/","http://portal.acm.org/proceedings/iwmse/archive/"
-"Conference Proceedings","IWOCE: Open Component EcoSystems","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/iwoce/","http://portal.acm.org/proceedings/iwoce/archive/"
-"Conference Proceedings","IWPSE-EVOL: Software Evolution and Principles of Software Evolution ","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/iwpse-evol/","http://portal.acm.org/proceedings/iwpse-evol/archive/"
-"Conference Proceedings","IWPSE: Principles of Software Evolution","","","","2001 (September 2001)","2013 (August 2013)","http://portal.acm.org/proceedings/iwpse/","http://portal.acm.org/proceedings/iwpse/archive/"
-"Conference Proceedings","IWQoS: Quality of Service","","","","2003 (June 2003)","2012 (June 2012)","http://portal.acm.org/proceedings/iwqos/","http://portal.acm.org/proceedings/iwqos/archive/"
-"Conference Proceedings","IWRIDL: Research Issues in Digital Libraries","","","","2007 (December 2006)","2007 (December 2006)","http://portal.acm.org/proceedings/iwridl/","http://portal.acm.org/proceedings/iwridl/archive/"
-"Conference Proceedings","IWSC: Software Clones","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/iwsc/","http://portal.acm.org/proceedings/iwsc/archive/"
-"Conference Proceedings","IWSESS: Software Engineering for Secure Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/iwsess/","http://portal.acm.org/proceedings/iwsess/archive/"
-"Conference Proceedings","IWSSD: International Workshop on Software Specification and Design","","","","1989 (April 1989)","2000 (November 2000)","http://portal.acm.org/proceedings/iwssd/","http://portal.acm.org/proceedings/iwssd/archive/"
-"Conference Proceedings","IWST: Smalltalk Technologies","","","","2009 (August 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/iwst/","http://portal.acm.org/proceedings/iwst/archive/"
-"Conference Proceedings","IWSTI: Satellite/Terrestrial Interworking","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/iwsti/","http://portal.acm.org/proceedings/iwsti/archive/"
-"Conference Proceedings","IWVS: Video Surveillance","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/iwvs/","http://portal.acm.org/proceedings/iwvs/archive/"
-"Conference Proceedings","InfoScale: Scalable Information Systems","","","","2006 (May 2006)","2007 (June 2007)","http://portal.acm.org/proceedings/infoscale/","http://portal.acm.org/proceedings/infoscale/archive/"
-"Conference Proceedings","InfoSecCD: Information Security Curriculum Development","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/infoseccd/","http://portal.acm.org/proceedings/infoseccd/archive/"
-"Conference Proceedings","InfoSecu: Information Security","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/infosecu/","http://portal.acm.org/proceedings/infosecu/archive/"
-"Conference Proceedings","Insider Threats: Insider Threats","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/insiderthreats/","http://portal.acm.org/proceedings/insiderthreats/archive/"
-"Conference Proceedings","InterSense: Integrated Internet Ad Hoc and Sensor Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/intersense/","http://portal.acm.org/proceedings/intersense/archive/"
-"Conference Proceedings","Internetware: Internetware","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/internetware/","http://portal.acm.org/proceedings/internetware/archive/"
-"Conference Proceedings","Interperf: Interdisciplinary Systems Approach in Performance Evaluation and Design of Computer & Communications Systems","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/interperf/","http://portal.acm.org/proceedings/interperf/archive/"
-"Conference Proceedings","JAVA: Java Grande","","","","1999 (June 1999)","2000 (June 2000)","http://portal.acm.org/proceedings/java/","http://portal.acm.org/proceedings/java/archive/"
-"Conference Proceedings","JCDL: Joint Conference on Digital Libraries","","","","2001 (January 2001)","2013 (July 2013)","http://portal.acm.org/proceedings/jcdl/","http://portal.acm.org/proceedings/jcdl/archive/"
-"Conference Proceedings","JGI: ACM-ISCOPE conference on Java Grande","","","","2001 (June 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/jgi/","http://portal.acm.org/proceedings/jgi/archive/"
-"Conference Proceedings","JTRES: Java Technologies for Real-Time and Embedded Systems","","","","2006 (October 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/jtres/","http://portal.acm.org/proceedings/jtres/archive/"
-"Conference Proceedings","K-CAP: Knowledge Capture","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/k-cap/","http://portal.acm.org/proceedings/k-cap/archive/"
-"Conference Proceedings","KDD: Knowledge Discovery and Data Mining","","","","1999 (August 1999)","2013 (August 2013)","http://portal.acm.org/proceedings/kdd/","http://portal.acm.org/proceedings/kdd/archive/"
-"Conference Proceedings","KEYS: Keyword Search on Structured Data","","","","2009 (June 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/keys/","http://portal.acm.org/proceedings/keys/archive/"
-"Conference Proceedings","Koli Calling: Koli Calling International Conference on Computing Education Research ","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/kolicalling/","http://portal.acm.org/proceedings/kolicalling/archive/"
-"Conference Proceedings","Koli: Computing Education Research","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/koli/","http://portal.acm.org/proceedings/koli/archive/"
-"Conference Proceedings","LADIS: Large-Scale Distributed Systems and Middleware","","","","2008 (September 2008)","2010 (July 2010)","http://portal.acm.org/proceedings/ladis/","http://portal.acm.org/proceedings/ladis/archive/"
-"Conference Proceedings","LANC: Latin American Networking Conference","","","","2003 (October 2003)","2012 (October 2012)","http://portal.acm.org/proceedings/lanc/","http://portal.acm.org/proceedings/lanc/archive/"
-"Conference Proceedings","LATE: Linking Aspect Technology and Evolution","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/late/","http://portal.acm.org/proceedings/late/archive/"
-"Conference Proceedings","LBSN: Location Based Social Networks","","","","2009 (November 2009)","2012 (November 2012)","http://portal.acm.org/proceedings/lbsn/","http://portal.acm.org/proceedings/lbsn/archive/"
-"Conference Proceedings","LCR: Languages, Compilers, and Run-time Support for Scalable Systems","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/lcr/","http://portal.acm.org/proceedings/lcr/archive/"
-"Conference Proceedings","LCSD: Library-Centric Software Design","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/lcsd/","http://portal.acm.org/proceedings/lcsd/archive/"
-"Conference Proceedings","LCTES: Languages, Compilers, and Tools for Embedded Systems","","","","1995 (November 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/lctes/","http://portal.acm.org/proceedings/lctes/archive/"
-"Conference Proceedings","LDTA: Language Descriptions, Tools and Applications","","","","2010 (March 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/ldta/","http://portal.acm.org/proceedings/ldta/archive/"
-"Conference Proceedings","LFMTP: Logical Frameworks and Meta-Languages","","","","2009 (August 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/lfmtp/","http://portal.acm.org/proceedings/lfmtp/archive/"
-"Conference Proceedings","LFP: LISP and Functional Programming","","","","1980 (August 1980)","1994 (July 1994)","http://portal.acm.org/proceedings/lfp/","http://portal.acm.org/proceedings/lfp/archive/"
-"Conference Proceedings","LISP: Celebrating the 50th Anniversary of Lisp","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/lisp/","http://portal.acm.org/proceedings/lisp/archive/"
-"Conference Proceedings","LMSA: Leadership and Management in Software Architecture","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/lmsa/","http://portal.acm.org/proceedings/lmsa/archive/"
-"Conference Proceedings","LOCWEB: Location and the Web","","","","2008 (April 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/locweb/","http://portal.acm.org/proceedings/locweb/archive/"
-"Conference Proceedings","LS-MMRM: Large-Scale Multimedia Retrieval and Mining","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/ls-mmrm/","http://portal.acm.org/proceedings/ls-mmrm/archive/"
-"Conference Proceedings","LSAD: Large-Scale Attack Defense","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/lsad/","http://portal.acm.org/proceedings/lsad/archive/"
-"Conference Proceedings","LSAP: Large-scale System and Application Performance","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/lsap/","http://portal.acm.org/proceedings/lsap/archive/"
-"Conference Proceedings","LSDS-IR: Large-Scale Distributed Systems for Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/lsds-ir/","http://portal.acm.org/proceedings/lsds-ir/archive/"
-"Conference Proceedings","LUV: LISP Users and Vendors","","","","1992 (August 1992)","1995 (August 1994)","http://portal.acm.org/proceedings/luv/","http://portal.acm.org/proceedings/luv/archive/"
-"Conference Proceedings","LinkKDD: Link Discovery","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/linkkdd/","http://portal.acm.org/proceedings/linkkdd/archive/"
-"Conference Proceedings","M-MPAC: Middleware for Pervasive Mobile and Embedded Computing","","","","2009 (November 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/m-mpac/","http://portal.acm.org/proceedings/m-mpac/archive/"
-"Conference Proceedings","MACS: Modeling and Analysis of Concerns in Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/macs/","http://portal.acm.org/proceedings/macs/archive/"
-"Conference Proceedings","MAI: Middleware Application Interaction","","","","2007 (March 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/mai/","http://portal.acm.org/proceedings/mai/archive/"
-"Conference Proceedings","MASPEGHI: MechAnisms for SPEcialization, Generalization and inHerItance","","","","2010 (June 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/maspeghi/","http://portal.acm.org/proceedings/maspeghi/archive/"
-"Conference Proceedings","MAW: Memory Access on Future Processors","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/maw/","http://portal.acm.org/proceedings/maw/archive/"
-"Conference Proceedings","MB: Methods and Techniques in Behavioral Research","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/mb/","http://portal.acm.org/proceedings/mb/archive/"
-"Conference Proceedings","MC: Middleware Companion","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mc/","http://portal.acm.org/proceedings/mc/archive/"
-"Conference Proceedings","MCMC: Mobile Cloud Media Computing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mcmc/","http://portal.acm.org/proceedings/mcmc/archive/"
-"Conference Proceedings","MCPS: Contents Proctection and Security","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/mcps/","http://portal.acm.org/proceedings/mcps/archive/"
-"Conference Proceedings","MCS: Mobile Cloud Computing and Services","","","","2010 (June 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/mcs/","http://portal.acm.org/proceedings/mcs/archive/"
-"Conference Proceedings","MD: Massive Datasets","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/md/","http://portal.acm.org/proceedings/md/archive/"
-"Conference Proceedings","MDAC: Massive Data Analytics on the Cloud","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/mdac/","http://portal.acm.org/proceedings/mdac/archive/"
-"Conference Proceedings","MDI: Model-Drive Interoperability","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mdi/","http://portal.acm.org/proceedings/mdi/archive/"
-"Conference Proceedings","MDM: Mobile Data Management","","","","2005 (May 2005)","2010 (May 2010)","http://portal.acm.org/proceedings/mdm/","http://portal.acm.org/proceedings/mdm/archive/"
-"Conference Proceedings","MDMKDD: Multimedia Data Mining","","","","2010 (July 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/mdmkdd/","http://portal.acm.org/proceedings/mdmkdd/archive/"
-"Conference Proceedings","MDS: Middleware Doctoral Symposium","","","","2006 (November 2006)","2013 (December 2013)","http://portal.acm.org/proceedings/mds/","http://portal.acm.org/proceedings/mds/archive/"
-"Conference Proceedings","MEDEA: Memory Performance: Dealing with Applications, Systems and Architecture","","","","2003 (September 2003)","2009 (September 2009)","http://portal.acm.org/proceedings/medea/","http://portal.acm.org/proceedings/medea/archive/"
-"Conference Proceedings","MEDES: Management of Emergent Digital EcoSystems","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/medes/","http://portal.acm.org/proceedings/medes/archive/"
-"Conference Proceedings","MELT: Mobile Entity Localization and Tracking in GPS-Less Environment","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/melt/","http://portal.acm.org/proceedings/melt/archive/"
-"Conference Proceedings","MEMOCODE: Formal Methods and Models for Co-Design","","","","2005 (July 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/memocode/","http://portal.acm.org/proceedings/memocode/archive/"
-"Conference Proceedings","MERLIN: Mechanized Reasoning about Languages with Variable Binding","","","","2003 (August 2003)","2005 (September 2005)","http://portal.acm.org/proceedings/merlin/","http://portal.acm.org/proceedings/merlin/archive/"
-"Conference Proceedings","MG: Mardi Gras Conference","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/mg/","http://portal.acm.org/proceedings/mg/archive/"
-"Conference Proceedings","MGC: Middleware for Grids, Clouds and e-Science","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mgc/","http://portal.acm.org/proceedings/mgc/archive/"
-"Conference Proceedings","MHC: Multimedia for Human Communication","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mhc/","http://portal.acm.org/proceedings/mhc/archive/"
-"Conference Proceedings","MICNET: Mobile Internet Through Cellular Networks","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/micnet/","http://portal.acm.org/proceedings/micnet/archive/"
-"Conference Proceedings","MICRO: Microarchitecture","","","","1972 (September 1972)","2013 (December 2013)","http://portal.acm.org/proceedings/micro/","http://portal.acm.org/proceedings/micro/archive/"
-"Conference Proceedings","MIIT: Model Inference In Testing","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/miit/","http://portal.acm.org/proceedings/miit/archive/"
-"Conference Proceedings","MIR: Multimedia Information Retrieval","","","","2003 (November 2003)","2010 (March 2010)","http://portal.acm.org/proceedings/mir/","http://portal.acm.org/proceedings/mir/archive/"
-"Conference Proceedings","MIS: Metainformatics","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mis/","http://portal.acm.org/proceedings/mis/archive/"
-"Conference Proceedings","MISE: Modeling in Software Engineering","","","","2007 (May 2007)","2009 (May 2009)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","ML: ML","","","","2006 (September 2006)","2009 (August 2009)","http://portal.acm.org/proceedings/ml/","http://portal.acm.org/proceedings/ml/archive/"
-"Conference Proceedings","MLG: Mining and Learning with Graphs","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/mlg/","http://portal.acm.org/proceedings/mlg/archive/"
-"Conference Proceedings","MLPA: Modules and Libraries for Proof Assistants","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/mlpa/","http://portal.acm.org/proceedings/mlpa/archive/"
-"Conference Proceedings","MMDB: Multimedia Databases","","","","2003 (November 2003)","2004 (November 2004)","http://portal.acm.org/proceedings/mmdb/","http://portal.acm.org/proceedings/mmdb/archive/"
-"Conference Proceedings","MML: Machine Learning and Music","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mml/","http://portal.acm.org/proceedings/mml/archive/"
-"Conference Proceedings","MMSEC: Multimedia and Security","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/mmsec/","http://portal.acm.org/proceedings/mmsec/archive/"
-"Conference Proceedings","MMSys: Multimedia Systems","","","","2010 (February 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/mmsys/","http://portal.acm.org/proceedings/mmsys/archive/"
-"Conference Proceedings","MNCNA: Middleware for Next-Generation Converged Networks and Applications","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mncna/","http://portal.acm.org/proceedings/mncna/archive/"
-"Conference Proceedings","MOBILWARE: Mobile Wireless Middleware, Operating Systems, and Applications","","","","2007 (February 2008)","2007 (February 2008)","http://portal.acm.org/proceedings/mobilware/","http://portal.acm.org/proceedings/mobilware/archive/"
-"Conference Proceedings","MOCR: Multilingual OCR","","","","2009 (July 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/mocr/","http://portal.acm.org/proceedings/mocr/archive/"
-"Conference Proceedings","MODDM: Model Driven Development for Middleware","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/moddm/","http://portal.acm.org/proceedings/moddm/archive/"
-"Conference Proceedings","MOMPES: Model-Based Methodologies for Pervasive and Embedded Software","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mompes/","http://portal.acm.org/proceedings/mompes/archive/"
-"Conference Proceedings","MPAC: Middleware for Pervasive and Ad-Hoc Computing","","","","2004 (October 2004)","2008 (December 2008)","http://portal.acm.org/proceedings/mpac/","http://portal.acm.org/proceedings/mpac/archive/"
-"Conference Proceedings","MPEC: Models and Processes for the Evaluation of Off-the-Shelf Components","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/mpec/","http://portal.acm.org/proceedings/mpec/archive/"
-"Conference Proceedings","MPVA: Multimodal Pervasive Video Analysis","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mpva/","http://portal.acm.org/proceedings/mpva/archive/"
-"Conference Proceedings","MRDM: Multi-Relational Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/mrdm/","http://portal.acm.org/proceedings/mrdm/archive/"
-"Conference Proceedings","MS: Multimedia Semantics","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/ms/","http://portal.acm.org/proceedings/ms/archive/"
-"Conference Proceedings","MSC: Multimedia Service Composition","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/msc/","http://portal.acm.org/proceedings/msc/archive/"
-"Conference Proceedings","MSFP: Mathematically Structured Functional Programming","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/msfp/","http://portal.acm.org/proceedings/msfp/archive/"
-"Conference Proceedings","MSIADU: Media Studies and Implementations that Help Improving Access to Disabled Users","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/msiadu/","http://portal.acm.org/proceedings/msiadu/archive/"
-"Conference Proceedings","MSM: Modeling Social Media","","","","2010 (June 2010)","2013 (May 2013)","http://portal.acm.org/proceedings/msm/","http://portal.acm.org/proceedings/msm/archive/"
-"Conference Proceedings","MSPC: Memory System Performance and Correctness","","","","2002 (June 2002)","2012 (June 2012)","http://portal.acm.org/proceedings/mspc/","http://portal.acm.org/proceedings/mspc/archive/"
-"Conference Proceedings","MSR: Mining Software Repositories","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/msr/","http://portal.acm.org/proceedings/msr/archive/"
-"Conference Proceedings","MSWiM: Modeling, Analysis and Simulation of Wireless and Mobile Systems","","","","1999 (August 1999)","2013 (November 2013)","http://portal.acm.org/proceedings/mswim/","http://portal.acm.org/proceedings/mswim/archive/"
-"Conference Proceedings","MTAGS: Many-Task Computing on Grids and Supercomputers","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mtags/","http://portal.acm.org/proceedings/mtags/archive/"
-"Conference Proceedings","MTDL: Multimedia Technologies for Distance Learning","","","","2009 (October 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/mtdl/","http://portal.acm.org/proceedings/mtdl/archive/"
-"Conference Proceedings","MUCS: Managing Ubiquitous Communications and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/mucs/","http://portal.acm.org/proceedings/mucs/archive/"
-"Conference Proceedings","MULTIMEDIA: Multimedia","","","","1993 (September 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/multimedia/","http://portal.acm.org/proceedings/multimedia/archive/"
-"Conference Proceedings","MUM: Mobile and Ubiquitous Multimedia","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mum/","http://portal.acm.org/proceedings/mum/archive/"
-"Conference Proceedings","MV: Mobile Video","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/mv/","http://portal.acm.org/proceedings/mv/archive/"
-"Conference Proceedings","MW: Multimedia Middleware","","","","2001 (October 2001)","2012 (September 2012)","http://portal.acm.org/proceedings/mw/","http://portal.acm.org/proceedings/mw/archive/"
-"Conference Proceedings","MWSOC: Middleware for Service Oriented Computing","","","","2006 (November 2006)","2011 (December 2011)","http://portal.acm.org/proceedings/mwsoc/","http://portal.acm.org/proceedings/mwsoc/archive/"
-"Conference Proceedings","MetriSec: Security Measurements and Metrics","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/metrisec/","http://portal.acm.org/proceedings/metrisec/archive/"
-"Conference Proceedings","MiFor: Multimedia in Forensics","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mifor/","http://portal.acm.org/proceedings/mifor/archive/"
-"Conference Proceedings","MiNEMA: Middleware for Network Eccentric and Mobile Applications","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/minema/","http://portal.acm.org/proceedings/minema/archive/"
-"Conference Proceedings","MiSE: Models in Software Engineering","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","MidSec: Middleware Security","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/midsec/","http://portal.acm.org/proceedings/midsec/archive/"
-"Conference Proceedings","MidSens: Middleware Tools, Services and Run-Time Support for Sensor Networks","","","","2006 (November 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/midsens/","http://portal.acm.org/proceedings/midsens/archive/"
-"Conference Proceedings","Middleware Industrial Track: Middleware Industrial Track","","","","2010 (November 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/middlewareindustrialtrack/","http://portal.acm.org/proceedings/middlewareindustrialtrack/archive/"
-"Conference Proceedings","Middleware: Middleware","","","","2000 (April 2000)","2012 (December 2012)","http://portal.acm.org/proceedings/middleware/","http://portal.acm.org/proceedings/middleware/archive/"
-"Conference Proceedings","MindTrek: Entertainment and Media in the Ubiquitous Era","","","","2008 (October 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/mindtrek/","http://portal.acm.org/proceedings/mindtrek/archive/"
-"Conference Proceedings","MineNet: Mining Network Data","","","","2005 (August 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/minenet/","http://portal.acm.org/proceedings/minenet/archive/"
-"Conference Proceedings","MoDELS: Models in software engineering","","","","2005 (October 2005)","2012 (September 2012)","http://portal.acm.org/proceedings/models/","http://portal.acm.org/proceedings/models/archive/"
-"Conference Proceedings","MoDeVVa: Model-Driven Engineering, Verification and Validation","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/modevva/","http://portal.acm.org/proceedings/modevva/archive/"
-"Conference Proceedings","MoMM: Mobile Computing and Multimedia","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/momm/","http://portal.acm.org/proceedings/momm/archive/"
-"Conference Proceedings","MoMeTools: Models, Methods and Tools for Reproducible Network Research","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/mometools/","http://portal.acm.org/proceedings/mometools/archive/"
-"Conference Proceedings","MoSE+DQS: Model Driven Service Engineering and Data Quality and Security","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/mose+dqs/","http://portal.acm.org/proceedings/mose+dqs/archive/"
-"Conference Proceedings","MoViD: Mobile Video Delivery","","","","2010 (October 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/movid/","http://portal.acm.org/proceedings/movid/archive/"
-"Conference Proceedings","MobConQoE: Mobile Content Quality of Experience","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/mobconqoe/","http://portal.acm.org/proceedings/mobconqoe/archive/"
-"Conference Proceedings","MobMid: Mobile Middleware","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/mobmid/","http://portal.acm.org/proceedings/mobmid/archive/"
-"Conference Proceedings","MobiArch: Mobility in the Evolving Internet Architecture","","","","2006 (December 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/mobiarch/","http://portal.acm.org/proceedings/mobiarch/archive/"
-"Conference Proceedings","MobiCom: Mobile Computing","","","","1995 (December 1995)","2013 (September 2013)","http://portal.acm.org/proceedings/mobicom/","http://portal.acm.org/proceedings/mobicom/archive/"
-"Conference Proceedings","MobiDE: Data Engineering for Wireless and Mobile Access","","","","1999 (August 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/mobide/","http://portal.acm.org/proceedings/mobide/archive/"
-"Conference Proceedings","MobiEval: System Evaluation for Mobile Platforms","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/mobieval/","http://portal.acm.org/proceedings/mobieval/archive/"
-"Conference Proceedings","MobiHeld: Networking, Systems, and Applications for Mobile Handhelds","","","","2009 (August 2009)","2011 (October 2011)","http://portal.acm.org/proceedings/mobiheld/","http://portal.acm.org/proceedings/mobiheld/archive/"
-"Conference Proceedings","MobiHoc: Mobile Ad Hoc Networking and Computing","","","","2000 (November 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/mobihoc/","http://portal.acm.org/proceedings/mobihoc/archive/"
-"Conference Proceedings","MobiMedia: Mobile Multimedia Communications","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/mobimedia/","http://portal.acm.org/proceedings/mobimedia/archive/"
-"Conference Proceedings","MobiOpp: Mobile Opportunistic Networking","","","","2007 (June 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/mobiopp/","http://portal.acm.org/proceedings/mobiopp/archive/"
-"Conference Proceedings","MobiShare: Decentralized Resource Sharing in Mobile Computing and Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/mobishare/","http://portal.acm.org/proceedings/mobishare/archive/"
-"Conference Proceedings","MobiSys: Mobile Systems, Applications, and Services","","","","2003 (May 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/mobisys/","http://portal.acm.org/proceedings/mobisys/archive/"
-"Conference Proceedings","MobiVirt: Virtualization in Mobile Computing","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/mobivirt/","http://portal.acm.org/proceedings/mobivirt/archive/"
-"Conference Proceedings","MobiWac: Mobility Management and Wireless Access","","","","2002 (October 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/mobiwac/","http://portal.acm.org/proceedings/mobiwac/archive/"
-"Conference Proceedings","MobileHCI: Human Computer Interaction with Mobile Devices and Services","","","","2005 (September 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/mobilehci/","http://portal.acm.org/proceedings/mobilehci/archive/"
-"Conference Proceedings","Mobility: Mobile Technology, Applications, and Systems","","","","2006 (October 2006)","2009 (September 2009)","http://portal.acm.org/proceedings/mobility/","http://portal.acm.org/proceedings/mobility/archive/"
-"Conference Proceedings","MobilityModels: Mobility Models","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mobilitymodels/","http://portal.acm.org/proceedings/mobilitymodels/archive/"
-"Conference Proceedings","NAOMI: Next Generation Aspect Oriented Middleware","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/naomi/","http://portal.acm.org/proceedings/naomi/archive/"
-"Conference Proceedings","NDA: Network Data Anonymization","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/nda/","http://portal.acm.org/proceedings/nda/archive/"
-"Conference Proceedings","NETFLIX: Large-Scale Recommender Systems and the Netflix Prize Competition","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/netflix/","http://portal.acm.org/proceedings/netflix/archive/"
-"Conference Proceedings","NICELI: Network-I/O Convergence","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/niceli/","http://portal.acm.org/proceedings/niceli/archive/"
-"Conference Proceedings","NIME: New Interfaces for Musical Expression","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/nime/","http://portal.acm.org/proceedings/nime/archive/"
-"Conference Proceedings","NOSSDAV: Network and Operating Systems Support for Digital Audio and Video","","","","2001 (January 2001)","2013 (February 2013)","http://portal.acm.org/proceedings/nossdav/","http://portal.acm.org/proceedings/nossdav/archive/"
-"Conference Proceedings","NOTERE: New Technologies in Distributed Systems","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/notere/","http://portal.acm.org/proceedings/notere/archive/"
-"Conference Proceedings","NPAR: Non-Photorealistic Animation and Rendering","","","","2000 (June 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/npar/","http://portal.acm.org/proceedings/npar/archive/"
-"Conference Proceedings","NPIV: New Paradigms in Information Visualization and Manipulation","","","","1997 (November 1997)","1998 (November 1998)","http://portal.acm.org/proceedings/npiv/","http://portal.acm.org/proceedings/npiv/archive/"
-"Conference Proceedings","NPIVM: NPIVM","","","","1999 (November 1999)","1999 (November 1999)","http://portal.acm.org/proceedings/npivm/","http://portal.acm.org/proceedings/npivm/archive/"
-"Conference Proceedings","NRBC: Next-Generation Residential Broadband Challenges","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/nrbc/","http://portal.acm.org/proceedings/nrbc/archive/"
-"Conference Proceedings","NSDI: Networked Systems Design & Implementation ","","","","2005 (May 2005)","2011 (March 2011)","http://portal.acm.org/proceedings/nsdi/","http://portal.acm.org/proceedings/nsdi/archive/"
-"Conference Proceedings","NSDR: Networked Systems for Developing Regions","","","","2007 (August 2007)","2011 (June 2011)","http://portal.acm.org/proceedings/nsdr/","http://portal.acm.org/proceedings/nsdr/archive/"
-"Conference Proceedings","NSEC: National Software Engineering Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/nsec/","http://portal.acm.org/proceedings/nsec/archive/"
-"Conference Proceedings","NSPW: New Security Paradigms and Workshop","","","","1993 (August 1993)","2013 (December 2013)","http://portal.acm.org/proceedings/nspw/","http://portal.acm.org/proceedings/nspw/archive/"
-"Conference Proceedings","Nanoarch: Nanoscale Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/nanoarch/","http://portal.acm.org/proceedings/nanoarch/archive/"
-"Conference Proceedings","NetEcon: Economics of Networked Systems","","","","2008 (August 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/netecon/","http://portal.acm.org/proceedings/netecon/archive/"
-"Conference Proceedings","NetGames: Network and Systems Support for Games","","","","2002 (April 2002)","2012 (November 2012)","http://portal.acm.org/proceedings/netgames/","http://portal.acm.org/proceedings/netgames/archive/"
-"Conference Proceedings","NetT: Network Troubleshooting","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/nett/","http://portal.acm.org/proceedings/nett/archive/"
-"Conference Proceedings","NoCArc: Network on Chip Architectures","","","","2009 (December 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/nocarc/","http://portal.acm.org/proceedings/nocarc/archive/"
-"Conference Proceedings","NordiCHI: Nordic Conference on Human-Computer Interaction","","","","2002 (October 2002)","2012 (October 2012)","http://portal.acm.org/proceedings/nordichi/","http://portal.acm.org/proceedings/nordichi/archive/"
-"Conference Proceedings","OBI: Ontology-supported Business Intelligence","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/obi/","http://portal.acm.org/proceedings/obi/archive/"
-"Conference Proceedings","OM: Optimization of Middleware and Distributed Systems","","","","2001 (August 2001)","2001 (August 2001)","http://portal.acm.org/proceedings/om/","http://portal.acm.org/proceedings/om/archive/"
-"Conference Proceedings","ONISW: Ontologies and Information Systems for the Semantic Web","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/onisw/","http://portal.acm.org/proceedings/onisw/archive/"
-"Conference Proceedings","OODS: Object-Oriented Database Systems","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/oods/","http://portal.acm.org/proceedings/oods/archive/"
-"Conference Proceedings","OOPWORK: OOPWORK","","","","1986 (June 1986)","1986 (June 1986)","http://portal.acm.org/proceedings/oopwork/","http://portal.acm.org/proceedings/oopwork/archive/"
-"Conference Proceedings","OSDI: Operating Systems Design and Implementation","","","","1994 (November 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/osdi/","http://portal.acm.org/proceedings/osdi/archive/"
-"Conference Proceedings","OSDM: Open Source Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/osdm/","http://portal.acm.org/proceedings/osdm/archive/"
-"Conference Proceedings","OZCHI: Australian Computer-Human Interaction Special Interest Group: Design","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ozchi/","http://portal.acm.org/proceedings/ozchi/archive/"
-"Conference Proceedings","P2PECON: Economics of Peer-to-Peer Systems","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/p2pecon/","http://portal.acm.org/proceedings/p2pecon/archive/"
-"Conference Proceedings","P2PIR: PPIR","","","","2005 (November 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/p2pir/","http://portal.acm.org/proceedings/p2pir/archive/"
-"Conference Proceedings","PACT: Parallel Architectures and Compilation Techniques","","","","1993 (January 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/pact/","http://portal.acm.org/proceedings/pact/archive/"
-"Conference Proceedings","PADD: Parallel and Distributed Debugging","","","","1988 (November 1988)","1993 (December 1993)","http://portal.acm.org/proceedings/padd/","http://portal.acm.org/proceedings/padd/archive/"
-"Conference Proceedings","PADS: Principles of Advanced and Distributed Simulation","","","","1993 (July 1993)","2013 (May 2013)","http://portal.acm.org/proceedings/pads/","http://portal.acm.org/proceedings/pads/archive/"
-"Conference Proceedings","PADTAD: Parallel and Distributed Systems: Testing, Analysis, and Debugging","","","","2006 (July 2006)","2012 (July 2012)","http://portal.acm.org/proceedings/padtad/","http://portal.acm.org/proceedings/padtad/archive/"
-"Conference Proceedings","PAIS: Privacy and Anonymity in Information Society","","","","2008 (March 2008)","2011 (March 2011)","http://portal.acm.org/proceedings/pais/","http://portal.acm.org/proceedings/pais/archive/"
-"Conference Proceedings","PASCO: Parallel Symbolic Computation","","","","1997 (July 1997)","2010 (July 2010)","http://portal.acm.org/proceedings/pasco/","http://portal.acm.org/proceedings/pasco/archive/"
-"Conference Proceedings","PASTE: Program Analysis for Software Tools and Engineering","","","","1998 (July 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/paste/","http://portal.acm.org/proceedings/paste/archive/"
-"Conference Proceedings","PAVLAD: Privacy and Anonymity for Very Large Databases","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/pavlad/","http://portal.acm.org/proceedings/pavlad/archive/"
-"Conference Proceedings","PCAR: Practical Cognitive Agents and Robots","","","","2006 (November 2006)","2010 (May 2010)","http://portal.acm.org/proceedings/pcar/","http://portal.acm.org/proceedings/pcar/archive/"
-"Conference Proceedings","PCGames: Procedural Content Generation in Games","","","","2010 (June 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/pcgames/","http://portal.acm.org/proceedings/pcgames/archive/"
-"Conference Proceedings","PCK: Principles of Computing & Knowledge","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/pck/","http://portal.acm.org/proceedings/pck/archive/"
-"Conference Proceedings","PCS: Personal Computer Security","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/pcs/","http://portal.acm.org/proceedings/pcs/archive/"
-"Conference Proceedings","PDC: Participatory Design","","","","2004 (July 2004)","2012 (August 2012)","http://portal.acm.org/proceedings/pdc/","http://portal.acm.org/proceedings/pdc/archive/"
-"Conference Proceedings","PDSW: Petascale Data Storage","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pdsw/","http://portal.acm.org/proceedings/pdsw/archive/"
-"Conference Proceedings","PE-WASUN: Performance Evaluation of Wireless Ad hoc Sensor, and Ubiquitous Networks","","","","2004 (October 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/pe-wasun/","http://portal.acm.org/proceedings/pe-wasun/archive/"
-"Conference Proceedings","PEICS: Pattern-Driven Engineering of Interactive Computing Systems","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/peics/","http://portal.acm.org/proceedings/peics/archive/"
-"Conference Proceedings","PEPM: Partial Evaluation and Program Manipulation","","","","1991 (May 1991)","2013 (January 2013)","http://portal.acm.org/proceedings/pepm/","http://portal.acm.org/proceedings/pepm/archive/"
-"Conference Proceedings","PERFORMANCE: Computer Performance Modelling, Measurement and Evaluation","","","","1980 (May 1980)","1980 (May 1980)","http://portal.acm.org/proceedings/performance/","http://portal.acm.org/proceedings/performance/archive/"
-"Conference Proceedings","PESOS: Principles of Engineering Service-Oriented Systems","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/pesos/","http://portal.acm.org/proceedings/pesos/archive/"
-"Conference Proceedings","PETRA: Pervasive Technologies Related to Assistive Environments","","","","2008 (July 2008)","2013 (May 2013)","http://portal.acm.org/proceedings/petra/","http://portal.acm.org/proceedings/petra/archive/"
-"Conference Proceedings","PGAS: Partitioned Global Address Space Programing Models","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/pgas/","http://portal.acm.org/proceedings/pgas/archive/"
-"Conference Proceedings","PIKM: Ph.D. Students in Information and Knowledge Management","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pikm/","http://portal.acm.org/proceedings/pikm/archive/"
-"Conference Proceedings","PINS: Practice and Theory of Incentives in Networked Systems","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/pins/","http://portal.acm.org/proceedings/pins/archive/"
-"Conference Proceedings","PLAS: Programming Languages and Analysis for Security","","","","2006 (June 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/plas/","http://portal.acm.org/proceedings/plas/archive/"
-"Conference Proceedings","PLATE: Linking Aspect Technology and Evolution","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/plate/","http://portal.acm.org/proceedings/plate/archive/"
-"Conference Proceedings","PLDI: Programming Language Design and Implementation","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/pldi/","http://portal.acm.org/proceedings/pldi/archive/"
-"Conference Proceedings","PLEASE: Product Line Approaches in Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/please/","http://portal.acm.org/proceedings/please/archive/"
-"Conference Proceedings","PLOS: Programming Languages and Operating Systems","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/plos/","http://portal.acm.org/proceedings/plos/archive/"
-"Conference Proceedings","PLPV: Programming Languages Meets Program Verification","","","","2007 (October 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/plpv/","http://portal.acm.org/proceedings/plpv/archive/"
-"Conference Proceedings","PLoP: Pattern Languages of Programs","","","","2006 (October 2006)","2010 (August 2009)","http://portal.acm.org/proceedings/plop/","http://portal.acm.org/proceedings/plop/archive/"
-"Conference Proceedings","PMHWN: Performance Monitoring and Measurement of Heterogenous Wireless and Wired Networks","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/pmhwn/","http://portal.acm.org/proceedings/pmhwn/archive/"
-"Conference Proceedings","PODC: Principles of Distributed Computing","","","","1982 (August 1982)","2013 (July 2013)","http://portal.acm.org/proceedings/podc/","http://portal.acm.org/proceedings/podc/archive/"
-"Conference Proceedings","PODS: Principles of Database Systems","","","","1982 (March 1982)","2013 (June 2013)","http://portal.acm.org/proceedings/pods/","http://portal.acm.org/proceedings/pods/archive/"
-"Conference Proceedings","POMC: Principles of Mobile Computing","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/pomc/","http://portal.acm.org/proceedings/pomc/archive/"
-"Conference Proceedings","POOSC: Parallel/High-Performance Object-Oriented Scientific Computing","","","","2009 (July 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/poosc/","http://portal.acm.org/proceedings/poosc/archive/"
-"Conference Proceedings","POPL: Principles of Programming Languages","","","","1973 (October 1973)","2013 (January 2013)","http://portal.acm.org/proceedings/popl/","http://portal.acm.org/proceedings/popl/archive/"
-"Conference Proceedings","PP-TV: Peer-to-Peer Streaming and IP-TV","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/pp-tv/","http://portal.acm.org/proceedings/pp-tv/archive/"
-"Conference Proceedings","PPDP: Principles and Practice of Declarative Programming","","","","2000 (September 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/ppdp/","http://portal.acm.org/proceedings/ppdp/archive/"
-"Conference Proceedings","PPEALS: Parallel Programming: Experience with Applications, Languages and Systems","","","","1988 (January 1988)","1988 (January 1988)","http://portal.acm.org/proceedings/ppeals/","http://portal.acm.org/proceedings/ppeals/archive/"
-"Conference Proceedings","PPMMS: Peer-to-Peer Multimedia Streaming","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ppmms/","http://portal.acm.org/proceedings/ppmms/archive/"
-"Conference Proceedings","PPPJ: Principles and Practice of Programming in Java","","","","2006 (August 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/pppj/","http://portal.acm.org/proceedings/pppj/archive/"
-"Conference Proceedings","PPoPP: Principles and Practice of Parallel Programming","","","","1990 (February 1990)","2013 (February 2013)","http://portal.acm.org/proceedings/ppopp/","http://portal.acm.org/proceedings/ppopp/archive/"
-"Conference Proceedings","PRESTO: Programmable Routers for Extensible Services of Tomorrow","","","","2008 (August 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/presto/","http://portal.acm.org/proceedings/presto/archive/"
-"Conference Proceedings","PROCAMS: Projector Camera Systems","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/procams/","http://portal.acm.org/proceedings/procams/archive/"
-"Conference Proceedings","PROMISE: Predictor Models in Software Engineering","","","","2005 (May 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/promise/","http://portal.acm.org/proceedings/promise/archive/"
-"Conference Proceedings","PRS: Parallel Rendering","","","","1993 (November 1993)","1997 (October 1997)","http://portal.acm.org/proceedings/prs/","http://portal.acm.org/proceedings/prs/archive/"
-"Conference Proceedings","PST: Privacy, Security and Trust","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/pst/","http://portal.acm.org/proceedings/pst/archive/"
-"Conference Proceedings","PUI: Perceptive User Interfaces","","","","2001 (November 2001)","2001 (November 2001)","http://portal.acm.org/proceedings/pui/","http://portal.acm.org/proceedings/pui/archive/"
-"Conference Proceedings","PVG: Parallel and Large-Data Visualization and Graphics","","","","2001 (October 2001)","2003 (October 2003)","http://portal.acm.org/proceedings/pvg/","http://portal.acm.org/proceedings/pvg/archive/"
-"Conference Proceedings","PVGS: Parallel Visualization and Graphics","","","","1999 (October 1999)","1999 (October 1999)","http://portal.acm.org/proceedings/pvgs/","http://portal.acm.org/proceedings/pvgs/archive/"
-"Conference Proceedings","PaIR: Patent Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/pair/","http://portal.acm.org/proceedings/pair/archive/"
-"Conference Proceedings","PerMIS: Performance Metrics for Intelligent Systems","","","","2007 (August 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/permis/","http://portal.acm.org/proceedings/permis/archive/"
-"Conference Proceedings","Persuasive: Persuasive Technology","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/persuasive/","http://portal.acm.org/proceedings/persuasive/archive/"
-"Conference Proceedings","Ph.D.: EDBT Ph.D. workshop","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ph.d./","http://portal.acm.org/proceedings/ph.d./archive/"
-"Conference Proceedings","QSWinet: Quality of Service and Security for Wireless in Mobile Networks","","","","2005 (October 2005)","2012 (October 2012)","http://portal.acm.org/proceedings/qswinet/","http://portal.acm.org/proceedings/qswinet/archive/"
-"Conference Proceedings","QShine: Heterogeneous Networking for Quality, Reliability, Security and Robustness","","","","2006 (August 2006)","2008 (July 2008)","http://portal.acm.org/proceedings/qshine/","http://portal.acm.org/proceedings/qshine/archive/"
-"Conference Proceedings","QTNA: Queueing Theory and Network Applications","","","","2009 (July 2009)","2011 (August 2011)","http://portal.acm.org/proceedings/qtna/","http://portal.acm.org/proceedings/qtna/archive/"
-"Conference Proceedings","QUASOSS: Quality of Service-Oriented Software Systems","","","","2009 (August 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/quasoss/","http://portal.acm.org/proceedings/quasoss/archive/"
-"Conference Proceedings","QUOVADIS: Quantitative Stochastic Models in the Verification and Design of Software Systems","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/quovadis/","http://portal.acm.org/proceedings/quovadis/archive/"
-"Conference Proceedings","QUTE-SWAP: Quantitative Techniques for Software Agile Process","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/qute-swap/","http://portal.acm.org/proceedings/qute-swap/archive/"
-"Conference Proceedings","QoP: Quality of Protection","","","","2006 (October 2006)","2008 (October 2008)","http://portal.acm.org/proceedings/qop/","http://portal.acm.org/proceedings/qop/archive/"
-"Conference Proceedings","RAM-SE: Reflection, AOP and Meta-Data for Software Evolution","","","","2009 (July 2009)","2012 (June 2012)","http://portal.acm.org/proceedings/ram-se/","http://portal.acm.org/proceedings/ram-se/archive/"
-"Conference Proceedings","RAOOL: Relationships and Associations in Object-Oriented Languages","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/raool/","http://portal.acm.org/proceedings/raool/archive/"
-"Conference Proceedings","RBAC: Role-Based Access Control","","","","1996 (December 1996)","2000 (July 2000)","http://portal.acm.org/proceedings/rbac/","http://portal.acm.org/proceedings/rbac/archive/"
-"Conference Proceedings","REALMAN: Multi-Hop Ad Hoc Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/realman/","http://portal.acm.org/proceedings/realman/archive/"
-"Conference Proceedings","REALWSN: Real-world Wireless Sensor Networks","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/realwsn/","http://portal.acm.org/proceedings/realwsn/archive/"
-"Conference Proceedings","REBSE: Realising Evidence-Based Software Engineering","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/rebse/","http://portal.acm.org/proceedings/rebse/archive/"
-"Conference Proceedings","RECOMB: Resaerch in Computational Molecular Biology","","","","1997 (January 1997)","2004 (March 2004)","http://portal.acm.org/proceedings/recomb/","http://portal.acm.org/proceedings/recomb/archive/"
-"Conference Proceedings","RIPQoS: Revisiting IP QoS","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/ripqos/","http://portal.acm.org/proceedings/ripqos/archive/"
-"Conference Proceedings","RKRAS: Research In Knowledge Representation For Autonomous Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/rkras/","http://portal.acm.org/proceedings/rkras/archive/"
-"Conference Proceedings","ROA: Role of Abstraction in Software Engineering","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/roa/","http://portal.acm.org/proceedings/roa/archive/"
-"Conference Proceedings","ROSATEA: Role of Software Architecture for Testing and Analysis","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/rosatea/","http://portal.acm.org/proceedings/rosatea/archive/"
-"Conference Proceedings","RSSE: Recommendation Systems for Software Engineering","","","","2008 (November 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/rsse/","http://portal.acm.org/proceedings/rsse/archive/"
-"Conference Proceedings","RT: Randon Testing","","","","2006 (July 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/rt/","http://portal.acm.org/proceedings/rt/archive/"
-"Conference Proceedings","RULE: Rule-Based Programming","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/rule/","http://portal.acm.org/proceedings/rule/archive/"
-"Conference Proceedings","ReArch: Re-architecting the Internet","","","","2009 (December 2009)","2010 (November 2010)","http://portal.acm.org/proceedings/rearch/","http://portal.acm.org/proceedings/rearch/archive/"
-"Conference Proceedings","RecSys: Recommender Systems","","","","2007 (October 2007)","2013 (October 2013)","http://portal.acm.org/proceedings/recsys/","http://portal.acm.org/proceedings/recsys/archive/"
-"Conference Proceedings","Resilience: Resilience in High Performance","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/resilience/","http://portal.acm.org/proceedings/resilience/archive/"
-"Conference Proceedings","S&D4RCES: Security and Dependability for Resource Constrained Embedded Systems","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/s&d4rces/","http://portal.acm.org/proceedings/s&d4rces/archive/"
-"Conference Proceedings","S3: Wireless of the Students, by the Students, for the Students","","","","2008 (February 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/s3/","http://portal.acm.org/proceedings/s3/archive/"
-"Conference Proceedings","SAC: Symposium on Applied Computing","","","","1986 (October 1986)","2013 (March 2013)","http://portal.acm.org/proceedings/sac/","http://portal.acm.org/proceedings/sac/archive/"
-"Conference Proceedings","SACLA: Southern African Computer Lecturers' Association","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/sacla/","http://portal.acm.org/proceedings/sacla/archive/"
-"Conference Proceedings","SACMAT: Symposium on Access Control Models and Technologies","","","","2001 (May 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/sacmat/","http://portal.acm.org/proceedings/sacmat/archive/"
-"Conference Proceedings","SADPI: Semantically Aware Document Processing and Indexing","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sadpi/","http://portal.acm.org/proceedings/sadpi/archive/"
-"Conference Proceedings","SAICSIT: South African Institute of Computer Scientists and Information Technologists","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/saicsit/","http://portal.acm.org/proceedings/saicsit/archive/"
-"Conference Proceedings","SAM: Software Architectures and Mobility","","","","2008 (May 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/sam/","http://portal.acm.org/proceedings/sam/archive/"
-"Conference Proceedings","SAME: Semantic Ambient Media Experiences","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/same/","http://portal.acm.org/proceedings/same/archive/"
-"Conference Proceedings","SANET: Sensor and Actor Networks","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/sanet/","http://portal.acm.org/proceedings/sanet/archive/"
-"Conference Proceedings","SAPMIA: Social, Adaptive and Personalized Multimedia Interaction and Access","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sapmia/","http://portal.acm.org/proceedings/sapmia/archive/"
-"Conference Proceedings","SAS: Static Analysis","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/sas/","http://portal.acm.org/proceedings/sas/archive/"
-"Conference Proceedings","SASN: Security of Ad hoc and Sensor Networks","","","","2003 (October 2003)","2006 (October 2006)","http://portal.acm.org/proceedings/sasn/","http://portal.acm.org/proceedings/sasn/archive/"
-"Conference Proceedings","SAVCBS: Specification and Verification of Component-Based Systems","","","","2005 (September 2005)","2009 (August 2009)","http://portal.acm.org/proceedings/savcbs/","http://portal.acm.org/proceedings/savcbs/archive/"
-"Conference Proceedings","SAW: Static Analysis","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/saw/","http://portal.acm.org/proceedings/saw/archive/"
-"Conference Proceedings","SBCCI: Symposium on Integrated Circuits and System Design","","","","1998 (January 1998)","2011 (August 2011)","http://portal.acm.org/proceedings/sbcci/","http://portal.acm.org/proceedings/sbcci/archive/"
-"Conference Proceedings","SBIM: Sketch-Based Interfaces and Modeling","","","","2007 (August 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/sbim/","http://portal.acm.org/proceedings/sbim/archive/"
-"Conference Proceedings","SC: Supercomputing","","","","1988 (November 1988)","2013 (November 2013)","http://portal.acm.org/proceedings/sc/","http://portal.acm.org/proceedings/sc/archive/"
-"Conference Proceedings","SCA: Symposium on Computer Animation","","","","2002 (July 2002)","2013 (July 2013)","http://portal.acm.org/proceedings/sca/","http://portal.acm.org/proceedings/sca/archive/"
-"Conference Proceedings","SCC: Services Computing","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/scc/","http://portal.acm.org/proceedings/scc/archive/"
-"Conference Proceedings","SCCG: Spring Conference on Computer graphics","","","","2001 (April 2001)","2013 (March 2013)","http://portal.acm.org/proceedings/sccg/","http://portal.acm.org/proceedings/sccg/archive/"
-"Conference Proceedings","SCE: Summit on Computing Education","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/sce/","http://portal.acm.org/proceedings/sce/archive/"
-"Conference Proceedings","SCESM: Scenarios and State Machines","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/scesm/","http://portal.acm.org/proceedings/scesm/archive/"
-"Conference Proceedings","SCM: Software Configuration Management","","","","1989 (October 1989)","2005 (September 2005)","http://portal.acm.org/proceedings/scm/","http://portal.acm.org/proceedings/scm/archive/"
-"Conference Proceedings","SCN: Simulation of Computer Networks","","","","1987 (August 1987)","1987 (August 1987)","http://portal.acm.org/proceedings/scn/","http://portal.acm.org/proceedings/scn/archive/"
-"Conference Proceedings","SCOPES: Software and Compilers for Embedded Systems","","","","2005 (September 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/scopes/","http://portal.acm.org/proceedings/scopes/archive/"
-"Conference Proceedings","SCORE: Software Metrics","","","","1982 (August 1982)","1982 (August 1982)","http://portal.acm.org/proceedings/score/","http://portal.acm.org/proceedings/score/archive/"
-"Conference Proceedings","SCSC: Summer Computer Simulation Conference","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/scsc/","http://portal.acm.org/proceedings/scsc/archive/"
-"Conference Proceedings","SDDDM: Dependable Distributed Data Management","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/sdddm/","http://portal.acm.org/proceedings/sdddm/archive/"
-"Conference Proceedings","SDE: Software Development Environments","","","","1984 (April 1984)","1992 (November 1992)","http://portal.acm.org/proceedings/sde/","http://portal.acm.org/proceedings/sde/archive/"
-"Conference Proceedings","SDG: Software Development Governance","","","","2008 (May 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/sdg/","http://portal.acm.org/proceedings/sdg/archive/"
-"Conference Proceedings","SDSOA: Systems Development in SOA Environments","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/sdsoa/","http://portal.acm.org/proceedings/sdsoa/archive/"
-"Conference Proceedings","SE-HPC: Software Engineering for High Performance Computing Applications","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/se-hpc/","http://portal.acm.org/proceedings/se-hpc/archive/"
-"Conference Proceedings","SEAMS: Software Engineering for Adaptive and Self-Managing Systems","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/seams/","http://portal.acm.org/proceedings/seams/archive/"
-"Conference Proceedings","SEAS: Software Engineering for Automotive Systems","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/seas/","http://portal.acm.org/proceedings/seas/archive/"
-"Conference Proceedings","SECSE: Software Engineering for Computational Science and Engineering","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/secse/","http://portal.acm.org/proceedings/secse/archive/"
-"Conference Proceedings","SEESE: Software Engineering in East and South Europe","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/seese/","http://portal.acm.org/proceedings/seese/archive/"
-"Conference Proceedings","SEEUP: Software Engineering Foundations for End User Programming","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/seeup/","http://portal.acm.org/proceedings/seeup/archive/"
-"Conference Proceedings","SEHC: Software Engineering in Health Care","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/sehc/","http://portal.acm.org/proceedings/sehc/archive/"
-"Conference Proceedings","SEKE: Software Engineering and Knowledge Engineering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/seke/","http://portal.acm.org/proceedings/seke/archive/"
-"Conference Proceedings","SELMAS: Software Engineering for Large-Scale Multi-Agent Systems","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/selmas/","http://portal.acm.org/proceedings/selmas/archive/"
-"Conference Proceedings","SEM: Software Engineering and Middleware","","","","2005 (September 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/sem/","http://portal.acm.org/proceedings/sem/archive/"
-"Conference Proceedings","SEMSEARCH: Semantic Search","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/semsearch/","http://portal.acm.org/proceedings/semsearch/archive/"
-"Conference Proceedings","SEPCASE: Software Engineering for Pervasive Computing Applications, Systems, and Environments","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sepcase/","http://portal.acm.org/proceedings/sepcase/archive/"
-"Conference Proceedings","SEPS: Software Engineering for Pervasive Services","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/seps/","http://portal.acm.org/proceedings/seps/archive/"
-"Conference Proceedings","SERENE: Software Engineering for Resilient Systems","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/serene/","http://portal.acm.org/proceedings/serene/archive/"
-"Conference Proceedings","SESENA: Software Engineering for Sensor Network Applications","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/sesena/","http://portal.acm.org/proceedings/sesena/archive/"
-"Conference Proceedings","SESS: Software Engineering for Secure Systems","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/sess/","http://portal.acm.org/proceedings/sess/archive/"
-"Conference Proceedings","SETA: Symposium on Environments and Tools for Ada","","","","1991 (April 1991)","1994 (September 1994)","http://portal.acm.org/proceedings/seta/","http://portal.acm.org/proceedings/seta/archive/"
-"Conference Proceedings","SETMDM: Software Engineering for Tailor-Made Data Management","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/setmdm/","http://portal.acm.org/proceedings/setmdm/archive/"
-"Conference Proceedings","SGP: Symposium on Geometry Processing","","","","2003 (June 2003)","2006 (June 2006)","http://portal.acm.org/proceedings/sgp/","http://portal.acm.org/proceedings/sgp/archive/"
-"Conference Proceedings","SHARK: Sharing and Reusing Architectural Knowledge","","","","2007 (May 2007)","2011 (May 2011)","http://portal.acm.org/proceedings/shark/","http://portal.acm.org/proceedings/shark/archive/"
-"Conference Proceedings","SICOSIM: SICOSIM","","","","1972 (October 1972)","1973 (October 1973)","http://portal.acm.org/proceedings/sicosim/","http://portal.acm.org/proceedings/sicosim/archive/"
-"Conference Proceedings","SIGAda: SIGAda International Conference on Ada","","","","1985 (May 1985)","2011 (November 2011)","http://portal.acm.org/proceedings/sigada/","http://portal.acm.org/proceedings/sigada/archive/"
-"Conference Proceedings","SIGBDP: SIGBDP Conference on Trends and Directions in Expert Systems","","","","1990 (September 1990)","1990 (September 1990)","http://portal.acm.org/proceedings/sigbdp/","http://portal.acm.org/proceedings/sigbdp/archive/"
-"Conference Proceedings","SIGCOMM LA: Data Communication in Latin America and the Caribbean","","","","2001 (April 2001)","2001 (April 2001)","http://portal.acm.org/proceedings/sigcommla/","http://portal.acm.org/proceedings/sigcommla/archive/"
-"Conference Proceedings","SIGCOMM: ACM SIGCOMM","","","","1977 (September 1977)","2013 (August 2013)","http://portal.acm.org/proceedings/sigcomm/","http://portal.acm.org/proceedings/sigcomm/archive/"
-"Conference Proceedings","SIGCSE: Computer Science Education","","","","1970 (January 1970)","2013 (March 2013)","http://portal.acm.org/proceedings/sigcse/","http://portal.acm.org/proceedings/sigcse/archive/"
-"Conference Proceedings","SIGDOC: Design of Communication","","","","1982 (January 1982)","2013 (September 2013)","http://portal.acm.org/proceedings/sigdoc/","http://portal.acm.org/proceedings/sigdoc/archive/"
-"Conference Proceedings","SIGFIDET: Data Description, Access and Control","","","","1970 (November 1970)","1975 (January 1975)","http://portal.acm.org/proceedings/sigfidet/","http://portal.acm.org/proceedings/sigfidet/archive/"
-"Conference Proceedings","SIGGRAPH Asia: Computer Graphics and Interactive Techniques Conference - Asia","","","","2008 (December 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/siggraphasia/","http://portal.acm.org/proceedings/siggraphasia/archive/"
-"Conference Proceedings","SIGGRAPH: Computer Graphics and Interactive Techniques Conference","","","","1974 (July 1974)","2013 (July 2013)","http://portal.acm.org/proceedings/siggraph/","http://portal.acm.org/proceedings/siggraph/archive/"
-"Conference Proceedings","SIGIR: Information Retrieval","","","","1971 (April 1971)","2013 (July 2013)","http://portal.acm.org/proceedings/sigir/","http://portal.acm.org/proceedings/sigir/archive/"
-"Conference Proceedings","SIGITE: Information Technology Education","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/sigite/","http://portal.acm.org/proceedings/sigite/archive/"
-"Conference Proceedings","SIGME: SIGME Symposium","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/sigme/","http://portal.acm.org/proceedings/sigme/archive/"
-"Conference Proceedings","SIGMETRICS: Measurement and Modeling of Computer Systems","","","","1974 (January 1974)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmetrics/","http://portal.acm.org/proceedings/sigmetrics/archive/"
-"Conference Proceedings","SIGMINI: SIGMINI Symposium on Small Systems","","","","1976 (March 1976)","1978 (August 1978)","http://portal.acm.org/proceedings/sigmini/","http://portal.acm.org/proceedings/sigmini/archive/"
-"Conference Proceedings","SIGMOD: Management of Data","","","","1975 (May 1975)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmod/","http://portal.acm.org/proceedings/sigmod/archive/"
-"Conference Proceedings","SIGPLAN: SIGPLAN Symposium","","","","1973 (November 1973)","1987 (July 1987)","http://portal.acm.org/proceedings/sigplan/","http://portal.acm.org/proceedings/sigplan/archive/"
-"Conference Proceedings","SIGSMALL: SIGSMALL/PC Symposium on Small Systems","","","","1979 (October 1979)","1991 (May 1991)","http://portal.acm.org/proceedings/sigsmall/","http://portal.acm.org/proceedings/sigsmall/archive/"
-"Conference Proceedings","SIGSOFT: Foundations of Software Engineering","","","","1983 (January 1983)","2012 (November 2012)","http://portal.acm.org/proceedings/sigsoft/","http://portal.acm.org/proceedings/sigsoft/archive/"
-"Conference Proceedings","SIGUCCS: User Services","","","","1972 (January 1972)","2013 (November 2013)","http://portal.acm.org/proceedings/siguccs/","http://portal.acm.org/proceedings/siguccs/archive/"
-"Conference Proceedings","SIMPLEX: Simplifying Complex Network for Practitioners","","","","2009 (July 2009)","2012 (April 2012)","http://portal.acm.org/proceedings/simplex/","http://portal.acm.org/proceedings/simplex/archive/"
-"Conference Proceedings","SIMUTools: Simulation Tools and Techniques","","","","2010 (March 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/simutools/","http://portal.acm.org/proceedings/simutools/archive/"
-"Conference Proceedings","SIN: Security of Information and Networks","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/sin/","http://portal.acm.org/proceedings/sin/archive/"
-"Conference Proceedings","SINTER: Software Integration and Evolution at Runtime","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sinter/","http://portal.acm.org/proceedings/sinter/archive/"
-"Conference Proceedings","SIPE: Services Integration in Pervasive Environments","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/sipe/","http://portal.acm.org/proceedings/sipe/archive/"
-"Conference Proceedings","SISAP: Similarity Search and Applications","","","","2008 (April 2008)","2011 (June 2011)","http://portal.acm.org/proceedings/sisap/","http://portal.acm.org/proceedings/sisap/archive/"
-"Conference Proceedings","SLIP: System Level Interconnect Prediction","","","","2000 (April 2000)","2012 (June 2012)","http://portal.acm.org/proceedings/slip/","http://portal.acm.org/proceedings/slip/archive/"
-"Conference Proceedings","SLIPE: Symposium on Language Issues in Programming Environments","","","","1985 (June 1985)","1985 (June 1985)","http://portal.acm.org/proceedings/slipe/","http://portal.acm.org/proceedings/slipe/archive/"
-"Conference Proceedings","SM: Solid Modelling and Applications","","","","1991 (May 1991)","2004 (June 2004)","http://portal.acm.org/proceedings/sm/","http://portal.acm.org/proceedings/sm/archive/"
-"Conference Proceedings","SMARTGRAPH: Smart Graphics","","","","2002 (June 2002)","2002 (June 2002)","http://portal.acm.org/proceedings/smartgraph/","http://portal.acm.org/proceedings/smartgraph/archive/"
-"Conference Proceedings","SMCtools: Tools for Solving Structured Markov Chains","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/smctools/","http://portal.acm.org/proceedings/smctools/archive/"
-"Conference Proceedings","SMT: Satisfiability Modulo Theories","","","","2008 (July 2008)","2009 (August 2009)","http://portal.acm.org/proceedings/smt/","http://portal.acm.org/proceedings/smt/archive/"
-"Conference Proceedings","SMUC: Search and Mining User-generated Contents","","","","2010 (October 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/smuc/","http://portal.acm.org/proceedings/smuc/archive/"
-"Conference Proceedings","SMVC: Surreal Media and Virtual Cloning","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/smvc/","http://portal.acm.org/proceedings/smvc/archive/"
-"Conference Proceedings","SNA-KDD: Social Network Mining and Analysis","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/sna-kdd/","http://portal.acm.org/proceedings/sna-kdd/archive/"
-"Conference Proceedings","SNAPI: Storage Network Architecture and Parallel I/Os","","","","2003 (September 2003)","2004 (September 2004)","http://portal.acm.org/proceedings/snapi/","http://portal.acm.org/proceedings/snapi/archive/"
-"Conference Proceedings","SNC: Symbolic-Numeric Computation","","","","2007 (July 2007)","2011 (June 2012)","http://portal.acm.org/proceedings/snc/","http://portal.acm.org/proceedings/snc/archive/"
-"Conference Proceedings","SNS: Social Network Systems","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/sns/","http://portal.acm.org/proceedings/sns/archive/"
-"Conference Proceedings","SOAR: Self-organizing Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/soar/","http://portal.acm.org/proceedings/soar/archive/"
-"Conference Proceedings","SOCP: Service-oriented Computing Performance","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/socp/","http://portal.acm.org/proceedings/socp/archive/"
-"Conference Proceedings","SODA: Symposium on Discrete Algorithms","","","","1990 (January 1990)","2012 (January 2012)","http://portal.acm.org/proceedings/soda/","http://portal.acm.org/proceedings/soda/archive/"
-"Conference Proceedings","SOMITAS: Software Organisation and Monitoring of Ambient Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/somitas/","http://portal.acm.org/proceedings/somitas/archive/"
-"Conference Proceedings","SOQUA: Software Quality Assurance","","","","2006 (November 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/soqua/","http://portal.acm.org/proceedings/soqua/archive/"
-"Conference Proceedings","SOSE: Service-Oriented Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/sose/","http://portal.acm.org/proceedings/sose/archive/"
-"Conference Proceedings","SOSOC: Security in Opportunistic and Social networks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/sosoc/","http://portal.acm.org/proceedings/sosoc/archive/"
-"Conference Proceedings","SOSP: Symposium on Operating Systems Principles","","","","1967 (January 1967)","2013 (November 2013)","http://portal.acm.org/proceedings/sosp/","http://portal.acm.org/proceedings/sosp/archive/"
-"Conference Proceedings","SOUPS: Symposium on Usable Privacy and Security","","","","2005 (July 2005)","2013 (July 2013)","http://portal.acm.org/proceedings/soups/","http://portal.acm.org/proceedings/soups/archive/"
-"Conference Proceedings","SP: Security and Privacy","","","","1996 (May 1996)","1996 (May 1996)","http://portal.acm.org/proceedings/sp/","http://portal.acm.org/proceedings/sp/archive/"
-"Conference Proceedings","SPAA: Symposium on Parallelism in Algorithms and Architectures","","","","1989 (March 1989)","2013 (July 2013)","http://portal.acm.org/proceedings/spaa/","http://portal.acm.org/proceedings/spaa/archive/"
-"Conference Proceedings","SPDT: Parallel and Distributed Tools","","","","1996 (January 1996)","1998 (August 1998)","http://portal.acm.org/proceedings/spdt/","http://portal.acm.org/proceedings/spdt/archive/"
-"Conference Proceedings","SPIMACS: Security and Privacy in Medical and Home-Care Systems","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/spimacs/","http://portal.acm.org/proceedings/spimacs/archive/"
-"Conference Proceedings","SPIN: SPIN workshop on Model Checking of Software","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/spin/","http://portal.acm.org/proceedings/spin/archive/"
-"Conference Proceedings","SPLASH: Object-Oriented Programming Systems, Languages, and Applications","","","","1986 (June 1986)","2013 (October 2013)","http://portal.acm.org/proceedings/splash/","http://portal.acm.org/proceedings/splash/archive/"
-"Conference Proceedings","SPLAT: Software Engineering Properties of Languages and Aspect Technologies","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/splat/","http://portal.acm.org/proceedings/splat/archive/"
-"Conference Proceedings","SPM: Geometric and Physical Modeling","","","","2005 (June 2005)","2010 (September 2010)","http://portal.acm.org/proceedings/spm/","http://portal.acm.org/proceedings/spm/archive/"
-"Conference Proceedings","SPRINGL: Security and Privacy in GIS and LBS","","","","2008 (November 2008)","2011 (November 2011)","http://portal.acm.org/proceedings/springl/","http://portal.acm.org/proceedings/springl/archive/"
-"Conference Proceedings","SRMC: Story Representation, Mechanism and Context","","","","2004 (October 2004)","2008 (October 2008)","http://portal.acm.org/proceedings/srmc/","http://portal.acm.org/proceedings/srmc/archive/"
-"Conference Proceedings","SSCS: Searching Spontaneous COnversational Speech","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/sscs/","http://portal.acm.org/proceedings/sscs/archive/"
-"Conference Proceedings","SSEE: Summit on Software Engineering Eductation","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/ssee/","http://portal.acm.org/proceedings/ssee/archive/"
-"Conference Proceedings","SSM: Search in Social Media","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/ssm/","http://portal.acm.org/proceedings/ssm/archive/"
-"Conference Proceedings","SSPS: Scalable Stream Processing System","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ssps/","http://portal.acm.org/proceedings/ssps/archive/"
-"Conference Proceedings","SSPW: Social Signal Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sspw/","http://portal.acm.org/proceedings/sspw/archive/"
-"Conference Proceedings","SSR: Symposium on Software Reusability","","","","1995 (August 1995)","2001 (May 2001)","http://portal.acm.org/proceedings/ssr/","http://portal.acm.org/proceedings/ssr/archive/"
-"Conference Proceedings","SSRS: Survivable and Self-Regenerative Systems","","","","2003 (October 2003)","2003 (October 2003)","http://portal.acm.org/proceedings/ssrs/","http://portal.acm.org/proceedings/ssrs/archive/"
-"Conference Proceedings","STC: Scalable Trusted Computing","","","","2006 (November 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/stc/","http://portal.acm.org/proceedings/stc/archive/"
-"Conference Proceedings","STOC: Symposium on Theory of Computing","","","","1969 (May 1969)","2013 (June 2013)","http://portal.acm.org/proceedings/stoc/","http://portal.acm.org/proceedings/stoc/archive/"
-"Conference Proceedings","STOP: Script to Program Evolution","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/stop/","http://portal.acm.org/proceedings/stop/archive/"
-"Conference Proceedings","STOV: Software Test Output Validation","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/stov/","http://portal.acm.org/proceedings/stov/archive/"
-"Conference Proceedings","SUITE: Search-driven Development: Users, Infrastructure, Tools and Evaluation","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/suite/","http://portal.acm.org/proceedings/suite/archive/"
-"Conference Proceedings","SVR: SIGGRAPH Video Review","","","","2001 (August 2001)","2003 (July 2003)","http://portal.acm.org/proceedings/svr/","http://portal.acm.org/proceedings/svr/archive/"
-"Conference Proceedings","SWS: Secure Web Services","","","","2004 (October 2004)","2009 (November 2009)","http://portal.acm.org/proceedings/sws/","http://portal.acm.org/proceedings/sws/archive/"
-"Conference Proceedings","SWSM: Social Web Search and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/swsm/","http://portal.acm.org/proceedings/swsm/archive/"
-"Conference Proceedings","SYANCO: Synthesis and Analysis of Component Connectors","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/syanco/","http://portal.acm.org/proceedings/syanco/archive/"
-"Conference Proceedings","SYMSAC: Symposium on Symbolic and Algebraic Computation","","","","1966 (January 1966)","1986 (October 1986)","http://portal.acm.org/proceedings/symsac/","http://portal.acm.org/proceedings/symsac/archive/"
-"Conference Proceedings","SYSTOR: Experimental Systems Conference","","","","2009 (May 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/systor/","http://portal.acm.org/proceedings/systor/archive/"
-"Conference Proceedings","SafeConfig: Assurable and Usable Security Configuration","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/safeconfig/","http://portal.acm.org/proceedings/safeconfig/archive/"
-"Conference Proceedings","Sandbox: Symposium on Video Games","","","","2006 (July 2006)","2011 (August 2011)","http://portal.acm.org/proceedings/sandbox/","http://portal.acm.org/proceedings/sandbox/archive/"
-"Conference Proceedings","SecPerU: Security, Privacy and Trust in Pervasive and Ubiquitous Computing","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/secperu/","http://portal.acm.org/proceedings/secperu/archive/"
-"Conference Proceedings","SecuCode: Secure Execution of Untrusted Code","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/secucode/","http://portal.acm.org/proceedings/secucode/archive/"
-"Conference Proceedings","SecureComm: Security and Privacy in Communication Netowrks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/securecomm/","http://portal.acm.org/proceedings/securecomm/archive/"
-"Conference Proceedings","SenSys: Embedded Networked Sensor Systems","","","","2003 (November 2003)","2013 (November 2013)","http://portal.acm.org/proceedings/sensys/","http://portal.acm.org/proceedings/sensys/archive/"
-"Conference Proceedings","SensorKDD: Knowledge Discovery from Sensor Data","","","","2009 (June 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/sensorkdd/","http://portal.acm.org/proceedings/sensorkdd/archive/"
-"Conference Proceedings","SoCC: Cloud Computing","","","","2010 (June 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/socc/","http://portal.acm.org/proceedings/socc/archive/"
-"Conference Proceedings","SoCG: Computational Geometry","","","","1985 (June 1985)","2013 (June 2013)","http://portal.acm.org/proceedings/socg/","http://portal.acm.org/proceedings/socg/archive/"
-"Conference Proceedings","SoD: Science of Design","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/sod/","http://portal.acm.org/proceedings/sod/archive/"
-"Conference Proceedings","SoICT: Information and Communication Technology","","","","2010 (August 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/soict/","http://portal.acm.org/proceedings/soict/archive/"
-"Conference Proceedings","SoSEA: Social Software Engineering Applications","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sosea/","http://portal.acm.org/proceedings/sosea/archive/"
-"Conference Proceedings","SocialNets: Social Network Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/socialnets/","http://portal.acm.org/proceedings/socialnets/archive/"
-"Conference Proceedings","SoftVis: Software Visualization","","","","2003 (June 2003)","2010 (October 2010)","http://portal.acm.org/proceedings/softvis/","http://portal.acm.org/proceedings/softvis/archive/"
-"Conference Proceedings","SpringSim: Spring Simulation Multiconference","","","","2007 (March 2007)","2013 (April 2013)","http://portal.acm.org/proceedings/springsim/","http://portal.acm.org/proceedings/springsim/archive/"
-"Conference Proceedings","StReBio: Statistical and Relational Learning in Bioinformatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/strebio/","http://portal.acm.org/proceedings/strebio/archive/"
-"Conference Proceedings","StorageSS: Storage Security and Survivability","","","","2005 (November 2005)","2008 (October 2008)","http://portal.acm.org/proceedings/storagess/","http://portal.acm.org/proceedings/storagess/archive/"
-"Conference Proceedings","StreamKDD: Novel Data Stream Pattern Mining Techniques","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/streamkdd/","http://portal.acm.org/proceedings/streamkdd/archive/"
-"Conference Proceedings","TAMODIA: Task Models and Diagrams","","","","2004 (November 2004)","2005 (September 2005)","http://portal.acm.org/proceedings/tamodia/","http://portal.acm.org/proceedings/tamodia/archive/"
-"Conference Proceedings","TAPAS: Technology and Policy for Accessing Spectrum","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/tapas/","http://portal.acm.org/proceedings/tapas/archive/"
-"Conference Proceedings","TAPIA: Diversity in Computing","","","","2003 (October 2003)","2009 (April 2009)","http://portal.acm.org/proceedings/tapia/","http://portal.acm.org/proceedings/tapia/archive/"
-"Conference Proceedings","TAPP: Theory and Practice of Provenance","","","","2010 (February 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/tapp/","http://portal.acm.org/proceedings/tapp/archive/"
-"Conference Proceedings","TARK: Theoretical Aspects of Rationality and Knowledge","","","","1986 (March 1986)","2009 (July 2009)","http://portal.acm.org/proceedings/tark/","http://portal.acm.org/proceedings/tark/archive/"
-"Conference Proceedings","TAU: Timing Iissues in the Specification and Synthesis of Digital Systems","","","","2002 (December 2002)","2002 (December 2002)","http://portal.acm.org/proceedings/tau/","http://portal.acm.org/proceedings/tau/archive/"
-"Conference Proceedings","TAV: Testing, Analysis and Verification","","","","1989 (November 1989)","2008 (July 2008)","http://portal.acm.org/proceedings/tav/","http://portal.acm.org/proceedings/tav/archive/"
-"Conference Proceedings","TEFSE: Traceability in Emerging Forms of Software Engineering","","","","2005 (November 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/tefse/","http://portal.acm.org/proceedings/tefse/archive/"
-"Conference Proceedings","TEI: Tangible and Embedded Interaction","","","","2007 (February 2007)","2013 (February 2013)","http://portal.acm.org/proceedings/tei/","http://portal.acm.org/proceedings/tei/archive/"
-"Conference Proceedings","TG: TeraGrid","","","","2010 (August 2010)","2011 (July 2011)","http://portal.acm.org/proceedings/tg/","http://portal.acm.org/proceedings/tg/archive/"
-"Conference Proceedings","TINLAP: Theoretical Issues in Natural Language Processing","","","","1975 (June 1975)","1975 (June 1975)","http://portal.acm.org/proceedings/tinlap/","http://portal.acm.org/proceedings/tinlap/archive/"
-"Conference Proceedings","TLDI: Types in Language Design and Implentation","","","","2003 (January 2003)","2012 (January 2012)","http://portal.acm.org/proceedings/tldi/","http://portal.acm.org/proceedings/tldi/archive/"
-"Conference Proceedings","TMBIO: Text Mining in Bioinformatics","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/tmbio/","http://portal.acm.org/proceedings/tmbio/archive/"
-"Conference Proceedings","TMR: Tagging, Mining and Retrieval","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/tmr/","http://portal.acm.org/proceedings/tmr/archive/"
-"Conference Proceedings","TRI-Ada: TRI-Ada","","","","1989 (January 1989)","1997 (November 1997)","http://portal.acm.org/proceedings/tri-ada/","http://portal.acm.org/proceedings/tri-ada/archive/"
-"Conference Proceedings","TSA: Topic-Sentiment Analysis for Mass Opinion","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/tsa/","http://portal.acm.org/proceedings/tsa/archive/"
-"Conference Proceedings","TT: Software Technology Transfer in Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/tt/","http://portal.acm.org/proceedings/tt/archive/"
-"Conference Proceedings","TVS: TRECVid Video Summarization","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/tvs/","http://portal.acm.org/proceedings/tvs/archive/"
-"Conference Proceedings","TridentCom: Testbeds and Research Infrastructures for the Development of Networks & Communities","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/tridentcom/","http://portal.acm.org/proceedings/tridentcom/archive/"
-"Conference Proceedings","U-NET: User-Provided Networking","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/u-net/","http://portal.acm.org/proceedings/u-net/archive/"
-"Conference Proceedings","U: Knowledge Discovery from Uncertain Data","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/u/","http://portal.acm.org/proceedings/u/archive/"
-"Conference Proceedings","UBDM: Utility-Based Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/ubdm/","http://portal.acm.org/proceedings/ubdm/archive/"
-"Conference Proceedings","UCHPC-MAW: UnConventional High Performance Computing Workshop plus Memory Access Workshop","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/uchpc-maw/","http://portal.acm.org/proceedings/uchpc-maw/archive/"
-"Conference Proceedings","UCVP: Use of Context in Vision Processing","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/ucvp/","http://portal.acm.org/proceedings/ucvp/archive/"
-"Conference Proceedings","UIST: User Interface Software and Technology","","","","1988 (January 1988)","2013 (October 2013)","http://portal.acm.org/proceedings/uist/","http://portal.acm.org/proceedings/uist/archive/"
-"Conference Proceedings","ULSSIS: Ultra-Large-Scale Software-Intensive Systems","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/ulssis/","http://portal.acm.org/proceedings/ulssis/archive/"
-"Conference Proceedings","UML: Unified Modeling Language","","","","1999 (October 1999)","2000 (October 2000)","http://portal.acm.org/proceedings/uml/","http://portal.acm.org/proceedings/uml/archive/"
-"Conference Proceedings","UODIGS: User-Oriented Design of Interactive Graphics Systems","","","","1977 (October 1976)","1977 (October 1976)","http://portal.acm.org/proceedings/uodigs/","http://portal.acm.org/proceedings/uodigs/archive/"
-"Conference Proceedings","UP: Useful Patterns","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/up/","http://portal.acm.org/proceedings/up/archive/"
-"Conference Proceedings","UPGRADE: Use of P2P, GRID and Agents for the Development of Content Networks","","","","2007 (June 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/upgrade/","http://portal.acm.org/proceedings/upgrade/archive/"
-"Conference Proceedings","UXTV: Designing Interactive User Experiences for TV and Video","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/uxtv/","http://portal.acm.org/proceedings/uxtv/archive/"
-"Conference Proceedings","UbiComp: Ubiquitous Computing","","","","2002 (September 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/ubicomp/","http://portal.acm.org/proceedings/ubicomp/archive/"
-"Conference Proceedings","UbiMob: Mobility and Ubiquity Computing","","","","2004 (June 2004)","2009 (July 2009)","http://portal.acm.org/proceedings/ubimob/","http://portal.acm.org/proceedings/ubimob/archive/"
-"Conference Proceedings","UltraVis: Ultrascale Visualization","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ultravis/","http://portal.acm.org/proceedings/ultravis/archive/"
-"Conference Proceedings","VAKD: Visual Analytics and Knowledge Discovery","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/vakd/","http://portal.acm.org/proceedings/vakd/archive/"
-"Conference Proceedings","VANET: VehiculAr InterNETworking","","","","2004 (October 2004)","2013 (June 2013)","http://portal.acm.org/proceedings/vanet/","http://portal.acm.org/proceedings/vanet/archive/"
-"Conference Proceedings","VAST: Visual Analytics Science and Technology","","","","2001 (November 2001)","2009 (September 2009)","http://portal.acm.org/proceedings/vast/","http://portal.acm.org/proceedings/vast/archive/"
-"Conference Proceedings","VDTS: Virtualization Technology for Dependable Systems","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/vdts/","http://portal.acm.org/proceedings/vdts/archive/"
-"Conference Proceedings","VEE: Virtual Execution Environments","","","","2005 (June 2005)","2013 (March 2013)","http://portal.acm.org/proceedings/vee/","http://portal.acm.org/proceedings/vee/archive/"
-"Conference Proceedings","VG: Volume Graphics","","","","2003 (July 2003)","2005 (June 2005)","http://portal.acm.org/proceedings/vg/","http://portal.acm.org/proceedings/vg/archive/"
-"Conference Proceedings","VIS: Visualization","","","","1990 (October 1990)","2004 (October 2004)","http://portal.acm.org/proceedings/vis/","http://portal.acm.org/proceedings/vis/archive/"
-"Conference Proceedings","VISA: Virtualized Infrastructure Systems and Architectures","","","","2009 (August 2009)","2010 (September 2010)","http://portal.acm.org/proceedings/visa/","http://portal.acm.org/proceedings/visa/archive/"
-"Conference Proceedings","VISSYM: Symposium on Data Visualisation","","","","2003 (May 2003)","2004 (May 2004)","http://portal.acm.org/proceedings/vissym/","http://portal.acm.org/proceedings/vissym/archive/"
-"Conference Proceedings","VLDB: Very Large Data Bases","","","","1975 (September 1975)","2007 (September 2007)","http://portal.acm.org/proceedings/vldb/","http://portal.acm.org/proceedings/vldb/archive/"
-"Conference Proceedings","VLS-MCMR: Very-Large-Scale Multimedia Corpus, Mining and Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/vls-mcmr/","http://portal.acm.org/proceedings/vls-mcmr/archive/"
-"Conference Proceedings","VMIL: Virtual Machines and Intermediate Languages","","","","2007 (March 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/vmil/","http://portal.acm.org/proceedings/vmil/archive/"
-"Conference Proceedings","VMSec: Virtual Machine Security","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/vmsec/","http://portal.acm.org/proceedings/vmsec/archive/"
-"Conference Proceedings","VNBA: Vision Networks for Behaviour Analysis","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/vnba/","http://portal.acm.org/proceedings/vnba/archive/"
-"Conference Proceedings","VRCAI: Virtual Reality Continuum and its Applications in Industry","","","","2004 (June 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/vrcai/","http://portal.acm.org/proceedings/vrcai/archive/"
-"Conference Proceedings","VRML: Virtual Reality Modeling Language","","","","1995 (January 1995)","2000 (February 2000)","http://portal.acm.org/proceedings/vrml/","http://portal.acm.org/proceedings/vrml/archive/"
-"Conference Proceedings","VRST: Virtual Reality Software and Technology","","","","1997 (September 1997)","2013 (October 2013)","http://portal.acm.org/proceedings/vrst/","http://portal.acm.org/proceedings/vrst/archive/"
-"Conference Proceedings","VSSN: Video Surveillance and Sensor Networks","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/vssn/","http://portal.acm.org/proceedings/vssn/archive/"
-"Conference Proceedings","VTDC: Virtualization Technology in Distributed Computing","","","","2006 (November 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/vtdc/","http://portal.acm.org/proceedings/vtdc/archive/"
-"Conference Proceedings","VVS: Symposium on Volume Visualization","","","","1989 (May 1989)","2002 (October 2002)","http://portal.acm.org/proceedings/vvs/","http://portal.acm.org/proceedings/vvs/archive/"
-"Conference Proceedings","ValueTools: Performance Evaluation Methodologies and Tools","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","Valuetools: Performance Evaluation Methodologies and Tools","","","","2006 (October 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","VizSEC: Visualization for Computer Security","","","","2004 (October 2004)","2006 (November 2006)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","VizSec: Visualization for Cyber Security","","","","2010 (September 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","WA: Web Accessibility","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/wa/","http://portal.acm.org/proceedings/wa/archive/"
-"Conference Proceedings","WACC: Work Activities Coordination and Collaboration","","","","1999 (March 1999)","1999 (March 1999)","http://portal.acm.org/proceedings/wacc/","http://portal.acm.org/proceedings/wacc/archive/"
-"Conference Proceedings","WADAS: Washington Ada symposium on Ada","","","","1984 (March 1984)","1994 (July 1994)","http://portal.acm.org/proceedings/wadas/","http://portal.acm.org/proceedings/wadas/archive/"
-"Conference Proceedings","WADS: Workshop on Architecting Dependable Systems","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wads/","http://portal.acm.org/proceedings/wads/archive/"
-"Conference Proceedings","WBIA: Workshop on Binary Instrumentation and Applications","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/wbia/","http://portal.acm.org/proceedings/wbia/archive/"
-"Conference Proceedings","WBMA: Biometrics Methods and Applications","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/wbma/","http://portal.acm.org/proceedings/wbma/archive/"
-"Conference Proceedings","WCAE: Computer Architecture Education","","","","1995 (January 1995)","2007 (June 2007)","http://portal.acm.org/proceedings/wcae/","http://portal.acm.org/proceedings/wcae/archive/"
-"Conference Proceedings","WCCCE: Computing Education","","","","2009 (May 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/wccce/","http://portal.acm.org/proceedings/wccce/archive/"
-"Conference Proceedings","WCFLP: Workshop on Curry and Functional Logic Programming","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/wcflp/","http://portal.acm.org/proceedings/wcflp/archive/"
-"Conference Proceedings","WDTN: Delay-Tolerant Networking","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/wdtn/","http://portal.acm.org/proceedings/wdtn/archive/"
-"Conference Proceedings","WEASELTech: Empirical Assessment of Software Engineering Languages and Technologies","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/weaseltech/","http://portal.acm.org/proceedings/weaseltech/archive/"
-"Conference Proceedings","WEH: Exception Handling","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/weh/","http://portal.acm.org/proceedings/weh/archive/"
-"Conference Proceedings","WESS: Workshop on Embedded Systems Security","","","","2009 (October 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/wess/","http://portal.acm.org/proceedings/wess/archive/"
-"Conference Proceedings","WETSoM: Workshop on Emerging Trends in Software Metrics","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/wetsom/","http://portal.acm.org/proceedings/wetsom/archive/"
-"Conference Proceedings","WEUSE: Workshop on End-User Software Engineering","","","","2005 (May 2005)","2008 (May 2008)","http://portal.acm.org/proceedings/weuse/","http://portal.acm.org/proceedings/weuse/archive/"
-"Conference Proceedings","WEWST: Workshop on Enhanced Web Service Technologies","","","","2009 (November 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/wewst/","http://portal.acm.org/proceedings/wewst/archive/"
-"Conference Proceedings","WGP: Workshop on Generic Programming","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wgp/","http://portal.acm.org/proceedings/wgp/archive/"
-"Conference Proceedings","WH: Wireless Health","","","","2010 (October 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/wh/","http://portal.acm.org/proceedings/wh/archive/"
-"Conference Proceedings","WHPCF: High Performance Computational Finance","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/whpcf/","http://portal.acm.org/proceedings/whpcf/archive/"
-"Conference Proceedings","WI-IATW: Web Intelligence and Intelligent Agent Technology","","","","2006 (December 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/wi-iatw/","http://portal.acm.org/proceedings/wi-iatw/archive/"
-"Conference Proceedings","WI: Web Intelligence","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/wi/","http://portal.acm.org/proceedings/wi/archive/"
-"Conference Proceedings","WICON: Wireless internet","","","","2006 (August 2006)","2007 (October 2007)","http://portal.acm.org/proceedings/wicon/","http://portal.acm.org/proceedings/wicon/archive/"
-"Conference Proceedings","WICOW: Information Credibility on the Web","","","","2008 (October 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/wicow/","http://portal.acm.org/proceedings/wicow/archive/"
-"Conference Proceedings","WIDM: Web Information and Data Management","","","","1999 (November 1999)","2012 (November 2012)","http://portal.acm.org/proceedings/widm/","http://portal.acm.org/proceedings/widm/archive/"
-"Conference Proceedings","WIESS: Industrial Experiences with Systems Software ","","","","2000 (October 2000)","2002 (December 2002)","http://portal.acm.org/proceedings/wiess/","http://portal.acm.org/proceedings/wiess/archive/"
-"Conference Proceedings","WINITS: Wireless Networking for Intelligent Transportation Systems","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/winits/","http://portal.acm.org/proceedings/winits/archive/"
-"Conference Proceedings","WINTECH: Exerimental Evaluation and Characterization","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WISER: Workshop on Interdisciplinary Software Engineering Research","","","","2004 (November 2004)","2006 (May 2006)","http://portal.acm.org/proceedings/wiser/","http://portal.acm.org/proceedings/wiser/archive/"
-"Conference Proceedings","WISG: Workshop on Information Security Governance","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wisg/","http://portal.acm.org/proceedings/wisg/archive/"
-"Conference Proceedings","WISTP: Information Security Theory and Practices","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/wistp/","http://portal.acm.org/proceedings/wistp/archive/"
-"Conference Proceedings","WITS: Issues in the Theory of Security","","","","2005 (January 2005)","2005 (January 2005)","http://portal.acm.org/proceedings/wits/","http://portal.acm.org/proceedings/wits/archive/"
-"Conference Proceedings","WMASH: Wireless Mobile Applications and Services on WLAN Hotspots","","","","2003 (September 2003)","2006 (September 2006)","http://portal.acm.org/proceedings/wmash/","http://portal.acm.org/proceedings/wmash/archive/"
-"Conference Proceedings","WMC: Workshop on Mobile Commerce","","","","2001 (July 2001)","2002 (September 2002)","http://portal.acm.org/proceedings/wmc/","http://portal.acm.org/proceedings/wmc/archive/"
-"Conference Proceedings","WMI: Wireless Mobile Internet","","","","2001 (July 2001)","2001 (July 2001)","http://portal.acm.org/proceedings/wmi/","http://portal.acm.org/proceedings/wmi/archive/"
-"Conference Proceedings","WMISI: Workshop on Multimodal Interfaces in Semantic Interaction","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wmisi/","http://portal.acm.org/proceedings/wmisi/archive/"
-"Conference Proceedings","WMPI: Memory Performance Issues","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/wmpi/","http://portal.acm.org/proceedings/wmpi/archive/"
-"Conference Proceedings","WMUPS: Middleware for Ubiquitous and Pervasive Systems","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/wmups/","http://portal.acm.org/proceedings/wmups/archive/"
-"Conference Proceedings","WMuNeP: Wireless Multimedia and Performance Modeling","","","","2005 (October 2005)","2011 (October 2011)","http://portal.acm.org/proceedings/wmunep/","http://portal.acm.org/proceedings/wmunep/archive/"
-"Conference Proceedings","WNS: Workshop on NS-2: the IP Network Simulator","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/wns/","http://portal.acm.org/proceedings/wns/archive/"
-"Conference Proceedings","WOCCI: Workshop on Child, Computer and Interaction","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wocci/","http://portal.acm.org/proceedings/wocci/archive/"
-"Conference Proceedings","WODA: Workshop on Dynamic Analysis","","","","2005 (May 2005)","2012 (July 2012)","http://portal.acm.org/proceedings/woda/","http://portal.acm.org/proceedings/woda/archive/"
-"Conference Proceedings","WORKS: Workflows in Support of Large-Scale Science","","","","2007 (June 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/works/","http://portal.acm.org/proceedings/works/archive/"
-"Conference Proceedings","WORM: Workshop on Recurring Malcode","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/worm/","http://portal.acm.org/proceedings/worm/archive/"
-"Conference Proceedings","WOSN: Online Social Networks","","","","2008 (August 2008)","2012 (August 2012)","http://portal.acm.org/proceedings/wosn/","http://portal.acm.org/proceedings/wosn/archive/"
-"Conference Proceedings by Affiliated Organizations","WOSP: Software and Performance","","","","1998 (October 1998)","2013 (April 2013)","http://portal.acm.org/proceedings/wosp/","http://portal.acm.org/proceedings/wosp/archive/"
-"Conference Proceedings","WOSS: Self-Managed Systems","","","","2002 (November 2002)","2004 (October 2004)","http://portal.acm.org/proceedings/woss/","http://portal.acm.org/proceedings/woss/archive/"
-"Conference Proceedings","WOSSE: Workshop on Open Source Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wosse/","http://portal.acm.org/proceedings/wosse/archive/"
-"Conference Proceedings","WOWMOM: Workshop on Wireless Mobile Multimedia","","","","1998 (October 1998)","2006 (June 2006)","http://portal.acm.org/proceedings/wowmom/","http://portal.acm.org/proceedings/wowmom/archive/"
-"Conference Proceedings","WPES: Workshop on Privacy in the Electronic Society","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/wpes/","http://portal.acm.org/proceedings/wpes/archive/"
-"Conference Proceedings","WRAITS: Recent Advances on Intrusion-Tolerant Systems","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/wraits/","http://portal.acm.org/proceedings/wraits/archive/"
-"Conference Proceedings","WRASQ: Workshop on Automating Service Quality","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wrasq/","http://portal.acm.org/proceedings/wrasq/archive/"
-"Conference Proceedings","WREFT: Workshop on Radiation Effects and Fault Tolerance in Nanometer Technologies","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/wreft/","http://portal.acm.org/proceedings/wreft/archive/"
-"Conference Proceedings","WREN: Research on Enterprise Networking","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/wren/","http://portal.acm.org/proceedings/wren/archive/"
-"Conference Proceedings","WRT: Refactoring Tools","","","","2008 (October 2008)","2012 (June 2012)","http://portal.acm.org/proceedings/wrt/","http://portal.acm.org/proceedings/wrt/archive/"
-"Conference Proceedings","WS-REST: RESTful Design","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/ws-rest/","http://portal.acm.org/proceedings/ws-rest/archive/"
-"Conference Proceedings","WSC: Winter Simulation Conference","","","","1971 (January 1971)","2012 (December 2012)","http://portal.acm.org/proceedings/wsc/","http://portal.acm.org/proceedings/wsc/archive/"
-"Conference Proceedings","WSCD: Web Search Click Data","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/wscd/","http://portal.acm.org/proceedings/wscd/archive/"
-"Conference Proceedings","WSDM: Web Search and Data Mining","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/wsdm/","http://portal.acm.org/proceedings/wsdm/archive/"
-"Conference Proceedings","WSM: Social Media","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/wsm/","http://portal.acm.org/proceedings/wsm/archive/"
-"Conference Proceedings","WSMC: Web-Scale Multimedia Corpus","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/wsmc/","http://portal.acm.org/proceedings/wsmc/archive/"
-"Conference Proceedings","WSNA: Wireless Sensor Networks and Applications","","","","2002 (September 2002)","2003 (September 2003)","http://portal.acm.org/proceedings/wsna/","http://portal.acm.org/proceedings/wsna/archive/"
-"Conference Proceedings","WTAOP: Workshop on Testing Aspect-Oriented Programs","","","","2006 (July 2006)","2007 (March 2007)","http://portal.acm.org/proceedings/wtaop/","http://portal.acm.org/proceedings/wtaop/archive/"
-"Conference Proceedings","WUAUC: Universal Accessibility of Ubiquitous Computing","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/wuauc/","http://portal.acm.org/proceedings/wuauc/archive/"
-"Conference Proceedings","WUP: Warm Up Workshop for ACM/IEEE ICSE 2010","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/wup/","http://portal.acm.org/proceedings/wup/archive/"
-"Conference Proceedings","WWW: World Wide Web","","","","2001 (April 2001)","2013 (May 2013)","http://portal.acm.org/proceedings/www/","http://portal.acm.org/proceedings/www/archive/"
-"Conference Proceedings","Wands: Workflow Approaches to New Data-centric Science","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/wands/","http://portal.acm.org/proceedings/wands/archive/"
-"Conference Proceedings","Web3D: 3D Web Technology","","","","2001 (February 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/web3d/","http://portal.acm.org/proceedings/web3d/archive/"
-"Conference Proceedings","WebDB: Web and Databases","","","","2004 (June 2004)","2010 (June 2010)","http://portal.acm.org/proceedings/webdb/","http://portal.acm.org/proceedings/webdb/archive/"
-"Conference Proceedings","WebKDD/SNA-KDD: Web Mining and Social Network Analysis","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/webkdd/sna-kdd/","http://portal.acm.org/proceedings/webkdd/sna-kdd/archive/"
-"Conference Proceedings","WebMedia: Multimedia and the Web","","","","2005 (December 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/webmedia/","http://portal.acm.org/proceedings/webmedia/archive/"
-"Conference Proceedings","WebSE: Workshop on Web 2.0 for Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/webse/","http://portal.acm.org/proceedings/webse/archive/"
-"Conference Proceedings","WebScience: Collaborative and Collective Intelligence","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/webscience/","http://portal.acm.org/proceedings/webscience/archive/"
-"Conference Proceedings","WiMD: Medical Grade Wireless Networks","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/wimd/","http://portal.acm.org/proceedings/wimd/archive/"
-"Conference Proceedings","WiNS-DR: Wireless Networks and Systems for Developing Regions","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/wins-dr/","http://portal.acm.org/proceedings/wins-dr/archive/"
-"Conference Proceedings","WiNTECH: Wireless Network Tesbeds, Experimental Evaluation and Characterization","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WiSE: Wireless Security","","","","2002 (September 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/wise/","http://portal.acm.org/proceedings/wise/archive/"
-"Conference Proceedings","WiSec: Wireless Network Security","","","","2008 (March 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/wisec/","http://portal.acm.org/proceedings/wisec/archive/"
-"Conference Proceedings","WiTMeMo: Wireless Traffic Measurements and Modeling","","","","2005 (June 2005)","2006 (August 2006)","http://portal.acm.org/proceedings/witmemo/","http://portal.acm.org/proceedings/witmemo/archive/"
-"Conference Proceedings","WikiSym: International Symposium on Wikis","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/wikisym/","http://portal.acm.org/proceedings/wikisym/archive/"
-"Conference Proceedings","WoSQ: Workshop on Software Quality","","","","2005 (May 2005)","2011 (September 2011)","http://portal.acm.org/proceedings/wosq/","http://portal.acm.org/proceedings/wosq/archive/"
-"Conference Proceedings","WuWNeT: UnderWater Networks","","","","2006 (September 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/wuwnet/","http://portal.acm.org/proceedings/wuwnet/archive/"
-"Conference Proceedings","XIME-P: XQuery Implementation, Experience and Perpectives","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/xime-p/","http://portal.acm.org/proceedings/xime-p/archive/"
-"Conference Proceedings","XMLSEC: XML Security","","","","2002 (November 2002)","2003 (October 2003)","http://portal.acm.org/proceedings/xmlsec/","http://portal.acm.org/proceedings/xmlsec/archive/"
-"Conference Proceedings","dg.o: Digital Government Research","","","","2000 (May 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/dg.o/","http://portal.acm.org/proceedings/dg.o/archive/"
-"Conference Proceedings","e-Energy: Energy-Efficient Computing and Networking","","","","2010 (April 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/e-energy/","http://portal.acm.org/proceedings/e-energy/archive/"
-"Conference Proceedings","e-Forensics: Forensic Applications and Techniques in Telecommunications, Information, and Multimedia","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/e-forensics/","http://portal.acm.org/proceedings/e-forensics/archive/"
-"Conference Proceedings","eConf: e-Services and e-Systems","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/econf/","http://portal.acm.org/proceedings/econf/archive/"
-"Conference Proceedings","eCrime: eCrime Researchers Summit","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/ecrime/","http://portal.acm.org/proceedings/ecrime/archive/"
-"Conference Proceedings","eHeritage: eHeritage and Digital Art Preservation","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/eheritage/","http://portal.acm.org/proceedings/eheritage/archive/"
-"Conference Proceedings","eclipse: eclipse Technology eXchange","","","","2003 (October 2003)","2007 (October 2007)","http://portal.acm.org/proceedings/eclipse/","http://portal.acm.org/proceedings/eclipse/archive/"
-"Conference Proceedings","i-CREATe: Rehabilitation Engineering & Assistive Technology","","","","2007 (April 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/i-create/","http://portal.acm.org/proceedings/i-create/archive/"
-"Conference Proceedings","iNEWS: Improving Non English Web Searching","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/inews/","http://portal.acm.org/proceedings/inews/archive/"
-"Conference Proceedings","iiWAS: Information Integration and Web-based Applications & Services","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/iiwas/","http://portal.acm.org/proceedings/iiwas/archive/"
-"Conference Proceedings","mmCom: mmWave communications","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mmcom/","http://portal.acm.org/proceedings/mmcom/archive/"
-"Conference Proceedings","sOc-EUSAI: Smart Objects and Ambient Intelligence","","","","2005 (October 2005)","2005 (October 2005)","http://portal.acm.org/proceedings/soc-eusai/","http://portal.acm.org/proceedings/soc-eusai/archive/"
-"Conference Proceedings","years of DAC: Years of DAC","","","","1988 (June 1988)","1988 (June 1988)","http://portal.acm.org/proceedings/yearsofdac/","http://portal.acm.org/proceedings/yearsofdac/archive/"
\ No newline at end of file
diff --git a/server/files/sounds/original/normal-1491835791584.csv b/server/files/sounds/original/normal-1491835791584.csv
deleted file mode 100644 (file)
index 1bfa2f5..0000000
+++ /dev/null
@@ -1,1136 +0,0 @@
-"CONTENT TYPE","TITLE","ABBR","ISSN","e-ISSN","PUBLICATION RANGE: START","PUBLICATION RANGE: LATEST PUBLISHED","SHORTCUT URL","ARCHIVE URL"
-"Journals","ACM Computing Surveys ","ACM Comput. Surv.","0360-0300","1557-7341","Volume 1 Issue 1 (March 1969)","Volume 46 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J204","http://dl.acm.org/citation.cfm?id=J204&picked=prox"
-"Journals","ACM Journal of Computer Documentation ","ACM J. Comput. Doc.","1527-6805","1557-9441","Volume 24 Issue 1 (Feb. 1, 2000)","Volume 26 Issue 4 (November 2002)","http://dl.acm.org/citation.cfm?id=J24","http://dl.acm.org/citation.cfm?id=J24&picked=prox"
-"Journals","ACM Journal on Emerging Technologies in Computing Systems ","J. Emerg. Technol. Comput. Syst.","1550-4832","1550-4840","Volume 1 Issue 1 (April 2005)","Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics","http://dl.acm.org/citation.cfm?id=J967","http://dl.acm.org/citation.cfm?id=J967&picked=prox"
-"Journals","Journal of Data and Information Quality ","J. Data and Information Quality","1936-1955","1936-1963","Volume 1 Issue 1 (June 2009)","Volume 4 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J1191","http://dl.acm.org/citation.cfm?id=J1191&picked=prox"
-"Journals","Journal of Experimental Algorithmics ","J. Exp. Algorithmics","1084-6654","1084-6654","Volume 1 (1996)","Volume 18 (April 2013)","http://dl.acm.org/citation.cfm?id=J430","http://dl.acm.org/citation.cfm?id=J430&picked=prox"
-"Journals","Journal of the ACM ","J. ACM","0004-5411","1557-735X","Volume 1 Issue 1 (Jan. 1954)","Volume 60 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J401","http://dl.acm.org/citation.cfm?id=J401&picked=prox"
-"Journals","Journal on Computing and Cultural Heritage ","J. Comput. Cult. Herit.","1556-4673","1556-4711","Volume 1 Issue 1 (June 2008)","Volume 6 Issue 3 (July 2013)","http://dl.acm.org/citation.cfm?id=J1157","http://dl.acm.org/citation.cfm?id=J1157&picked=prox"
-"Journals","Journal on Educational Resources in Computing ","J. Educ. Resour. Comput.","1531-4278","1531-4278","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom","http://dl.acm.org/citation.cfm?id=J814","http://dl.acm.org/citation.cfm?id=J814&picked=prox"
-"Transactions","ACM Letters on Programming Languages and Systems ","ACM Lett. Program. Lang. Syst.","1057-4514","1557-7384","Volume 1 Issue 1 (March 1992)","Volume 2 Issue 1-4 (March&#8211;Dec. 1993)","http://dl.acm.org/citation.cfm?id=J513","http://dl.acm.org/citation.cfm?id=J513&picked=prox"
-"Transactions","ACM Transactions on Accessible Computing ","ACM Trans. Access. Comput.","1936-7228","1936-7236","Volume 1 Issue 1 (May 2008)","Volume 5 Issue 2 (October 2013)","http://dl.acm.org/citation.cfm?id=J1156","http://dl.acm.org/citation.cfm?id=J1156&picked=prox"
-"Transactions","ACM Transactions on Algorithms ","ACM Trans. Algorithms","1549-6325","1549-6333","Volume 1 Issue 1 (July 2005)","Volume 9 Issue 4 (September 2013)","http://dl.acm.org/citation.cfm?id=J982","http://dl.acm.org/citation.cfm?id=J982&picked=prox"
-"Transactions","ACM Transactions on Applied Perception ","ACM Trans. Appl. Percept.","1544-3558","1544-3965","Volume 1 Issue 1 (July 2004)","Volume 10 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J932","http://dl.acm.org/citation.cfm?id=J932&picked=prox"
-"Transactions","ACM Transactions on Architecture and Code Optimization ","ACM Trans. Archit. Code Optim.","1544-3566","1544-3973","Volume 1 Issue 1 (March 2004)","Volume 10 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J924","http://dl.acm.org/citation.cfm?id=J924&picked=prox"
-"Transactions","ACM Transactions on Asian Language Information Processing ","","1530-0226","1558-3430","Volume 1 Issue 1 (March 2002)","Volume 12 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J820","http://dl.acm.org/citation.cfm?id=J820&picked=prox"
-"Transactions","ACM Transactions on Autonomous and Adaptive Systems ","ACM Trans. Auton. Adapt. Syst.","1556-4665","1556-4703","Volume 1 Issue 1 (September 2006)","Volume 8 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1010","http://dl.acm.org/citation.cfm?id=J1010&picked=prox"
-"Transactions","ACM Transactions on Computation Theory ","ACM Trans. Comput. Theory","1942-3454","1942-3462","Volume 1 Issue 1 (February 2009)","Volume 5 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1190","http://dl.acm.org/citation.cfm?id=J1190&picked=prox"
-"Transactions","ACM Transactions on Computational Logic ","ACM Trans. Comput. Logic","1529-3785","1557-945X","Volume 1 Issue 1 (July 2000)","Volume 14 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J773","http://dl.acm.org/citation.cfm?id=J773&picked=prox"
-"Transactions","ACM Transactions on Computer Systems ","ACM Trans. Comput. Syst.","0734-2071","1557-7333","Volume 1 Issue 1 (Feb. 1983)","Volume 31 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J774","http://dl.acm.org/citation.cfm?id=J774&picked=prox"
-"Transactions","ACM Transactions on Computer-Human Interaction ","ACM Trans. Comput.-Hum. Interact.","1073-0516","1557-7325","Volume 1 Issue 1 (March 1994)","Volume 20 Issue 5 (November 2013)","http://dl.acm.org/citation.cfm?id=J756","http://dl.acm.org/citation.cfm?id=J756&picked=prox"
-"Transactions","ACM Transactions on Computing Education ","Trans. Comput. Educ.","","1946-6226","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1193","http://dl.acm.org/citation.cfm?id=J1193&picked=prox"
-"Transactions","ACM Transactions on Database Systems ","ACM Trans. Database Syst.","0362-5915","1557-4644","Volume 1 Issue 1 (March 1976)","Volume 38 Issue 4 (November 2013) - Invited papers issue","http://dl.acm.org/citation.cfm?id=J777","http://dl.acm.org/citation.cfm?id=J777&picked=prox"
-"Transactions","ACM Transactions on Design Automation of Electronic Systems ","ACM Trans. Des. Autom. Electron. Syst.","1084-4309","1557-7309","Volume 1 Issue 1 (Jan. 1996)","Volume 19 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J776","http://dl.acm.org/citation.cfm?id=J776&picked=prox"
-"Transactions","ACM Transactions on Economics and Computation","ACM Trans. Econ. Comput.","2167-8375","2167-8383","Volume 1 Issue 1 (January 2013)","Volume 1 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1359","http://dl.acm.org/citation.cfm?id=J1359&picked=prox"
-"Transactions","ACM Transactions on Embedded Computing Systems ","ACM Trans. Embed. Comput. Syst.","1539-9087","1558-3465","Volume 1 Issue 1 (November 2002)","Volume 13 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J840","http://dl.acm.org/citation.cfm?id=J840&picked=prox"
-"Transactions","ACM Transactions on Graphics ","ACM Trans. Graph.","0730-0301","1557-7368","Volume 1 Issue 1 (Jan. 1982)","Volume 32 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J778","http://dl.acm.org/citation.cfm?id=J778&picked=prox"
-"Transactions","ACM Transactions on Information Systems ","ACM Trans. Inf. Syst.","1046-8188","1558-2868","Volume 1 Issue 1 (Jan. 1983)","Volume 31 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J779","http://dl.acm.org/citation.cfm?id=J779&picked=prox"
-"Transactions","ACM Transactions on Information and System Security ","ACM Trans. Inf. Syst. Secur.","1094-9224","1557-7406","Volume 1 Issue 1 (Nov. 1998)","Volume 16 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J789","http://dl.acm.org/citation.cfm?id=J789&picked=prox"
-"Transactions","ACM Transactions on Intelligent Systems and Technology ","ACM Trans. Intell. Syst. Technol.","2157-6904","2157-6912","Volume 1 Issue 1 (October 2010)","Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining","http://dl.acm.org/citation.cfm?id=J1318","http://dl.acm.org/citation.cfm?id=J1318&picked=prox"
-"Transactions","ACM Transactions on Interactive Intelligent Systems ","ACM Trans. Interact. Intell. Syst.","2160-6455","2160-6463","Volume 1 Issue 1 (October 2011)","Volume 3 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1341","http://dl.acm.org/citation.cfm?id=J1341&picked=prox"
-"Transactions","ACM Transactions on Internet Technology ","ACM Trans. Internet Technol.","1533-5399","1557-6051","Volume 1 Issue 1 (Aug. 2001)","Volume 13 Issue 2 (December 2013)","http://dl.acm.org/citation.cfm?id=J780","http://dl.acm.org/citation.cfm?id=J780&picked=prox"
-"Transactions","ACM Transactions on Knowledge Discovery from Data ","ACM Trans. Knowl. Discov. Data","1556-4681","1556-472X","Volume 1 Issue 1 (March 2007)","Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012","http://dl.acm.org/citation.cfm?id=J1054","http://dl.acm.org/citation.cfm?id=J1054&picked=prox"
-"Transactions","ACM Transactions on Management Information Systems ","ACM Trans. Manage. Inf. Syst.","2158-656X","2158-6578","Volume 1 Issue 1 (December 2010)","Volume 4 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1320","http://dl.acm.org/citation.cfm?id=J1320&picked=prox"
-"Transactions","ACM Transactions on Mathematical Software ","ACM Trans. Math. Softw.","0098-3500","1557-7295","Volume 1 Issue 1 (March 1975)","Volume 40 Issue 1 (September 2013)","http://dl.acm.org/citation.cfm?id=J782","http://dl.acm.org/citation.cfm?id=J782&picked=prox"
-"Transactions","ACM Transactions on Modeling and Computer Simulation ","ACM Trans. Model. Comput. Simul.","1049-3301","1558-1195","Volume 1 Issue 1 (Jan. 1991)","Volume 23 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J781","http://dl.acm.org/citation.cfm?id=J781&picked=prox"
-"Transactions","ACM Transactions on Multimedia Computing, Communications, and Applications ","ACM Trans. Multimedia Comput. Commun. Appl.","1551-6857","1551-6865","Volume 1 Issue 1 (February 2005)","Volume 10 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J961","http://dl.acm.org/citation.cfm?id=J961&picked=prox"
-"Transactions","ACM Transactions on Programming Languages and Systems ","ACM Trans. Program. Lang. Syst.","0164-0925","1558-4593","Volume 1 Issue 1 (July 1979)","Volume 35 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J783","http://dl.acm.org/citation.cfm?id=J783&picked=prox"
-"Transactions","ACM Transactions on Reconfigurable Technology and Systems ","ACM Trans. Reconfigurable Technol. Syst.","1936-7406","1936-7414","Volume 1 Issue 1 (March 2008)","Volume 6 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1151","http://dl.acm.org/citation.cfm?id=J1151&picked=prox"
-"Transactions","ACM Transactions on Sensor Networks ","ACM Trans. Sen. Netw.","1550-4859","1550-4867","Volume 1 Issue 1 (August 2005)","Volume 10 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J981","http://dl.acm.org/citation.cfm?id=J981&picked=prox"
-"Transactions","ACM Transactions on Software Engineering and Methodology ","ACM Trans. Softw. Eng. Methodol.","1049-331X","1557-7392","Volume 1 Issue 1 (Jan. 1992)","Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance","http://dl.acm.org/citation.cfm?id=J790","http://dl.acm.org/citation.cfm?id=J790&picked=prox"
-"Transactions","ACM Transactions on Speech and Language Processing ","ACM Trans. Speech Lang. Process.","1550-4875","1550-4883","Volume 1 (November 2004)","Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2","http://dl.acm.org/citation.cfm?id=J957","http://dl.acm.org/citation.cfm?id=J957&picked=prox"
-"Transactions","ACM Transactions on Storage ","Trans. Storage","1553-3077","1553-3093","Volume 1 Issue 1 (February 2005)","Volume 9 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J960","http://dl.acm.org/citation.cfm?id=J960&picked=prox"
-"Transactions","ACM Transactions on the Web ","ACM Trans. Web","1559-1131","1559-114X","Volume 1 Issue 1 (May 2007)","Volume 7 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J1062","http://dl.acm.org/citation.cfm?id=J1062&picked=prox"
-"Transactions","IEEE/ACM Transactions on Computational Biology and Bioinformatics ","IEEE/ACM Trans. Comput. Biol. Bioinformatics","1545-5963","","Volume 1 Issue 1 (January 2004)","Volume 10 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J954","http://dl.acm.org/citation.cfm?id=J954&picked=prox"
-"Transactions","IEEE/ACM Transactions on Networking ","IEEE/ACM Trans. Netw.","1063-6692","","Volume 1 Issue 1 (Feb. 1993)","Volume 21 Issue 4 (August 2013)","http://dl.acm.org/citation.cfm?id=J771","http://dl.acm.org/citation.cfm?id=J771&picked=prox"
-"Magazines","ACM Inroads","ACM Inroads","2153-2184","2153-2192","Volume 1 Issue 1 (March 2010)","Volume 4 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1268","http://dl.acm.org/citation.cfm?id=J1268&picked=prox"
-"Magazines","Communications of the ACM","Commun. ACM","0001-0782","1557-7317","Volume 1 Issue 1 (Jan. 1958)","Volume 57 Issue 1 (January 2014)","http://dl.acm.org/citation.cfm?id=J79","http://dl.acm.org/citation.cfm?id=J79&picked=prox"
-"Magazines","Computers in Entertainment ","Comput. Entertain.","","1544-3574","Volume 1 Issue 1 (October 2003)","Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment","http://dl.acm.org/citation.cfm?id=J912","http://dl.acm.org/citation.cfm?id=J912&picked=prox"
-"Magazines","Queue","Queue","1542-7730","1542-7749","Volume 1 Issue 1 (March 2003)","Volume 11 Issue 12 (December 2013) - Large-Scale Implementations","http://dl.acm.org/citation.cfm?id=J882","http://dl.acm.org/citation.cfm?id=J882&picked=prox"
-"Magazines","StandardView","StandardView","1067-9936","1557-7376","Volume 1 Issue 1 (Sept. 1993)","Volume 6 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J741","http://dl.acm.org/citation.cfm?id=J741&picked=prox"
-"Magazines","Ubiquity","Ubiquity","","1530-2180","Volume 2000 Issue February (February 1 - February 28, 2000)","Volume 2013 Issue December (December 2013)","http://dl.acm.org/citation.cfm?id=J793","http://dl.acm.org/citation.cfm?id=J793&picked=prox"
-"Magazines","XRDS: Crossroads, The ACM Magazine for Students","XRDS","1528-4972","1528-4980","Volume 1 Issue 1 (September 1994)","Volume 20 Issue 2 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J1271","http://dl.acm.org/citation.cfm?id=J1271&picked=prox"
-"Magazines","eLearn","eLearn","","1535-394X","Volume 2001 Issue 5 (May 2001)","Volume 2013 Issue 12 (12-01-2013) - December 2013","http://dl.acm.org/citation.cfm?id=J815","http://dl.acm.org/citation.cfm?id=J815&picked=prox"
-"Magazines","intelligence","Intelligence","1523-8822","1557-9425","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J372","http://dl.acm.org/citation.cfm?id=J372&picked=prox"
-"Magazines","interactions","interactions","1072-5520","1558-3449","Volume 1 Issue 1 (Jan. 1994)","Volume 20 Issue 6 (November + December 2013)","http://dl.acm.org/citation.cfm?id=J373","http://dl.acm.org/citation.cfm?id=J373&picked=prox"
-"Magazines","netWorker","netWorker","1091-3556","1558-3473","Volume 1 Issue 1 (March/April 1997)","Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics","http://dl.acm.org/citation.cfm?id=J582","http://dl.acm.org/citation.cfm?id=J582&picked=prox"
-"Publications by Affiliated Organizations","ALGOL Bulletin","ALGOL Bull.","0084-6198","","Issue 1 (Mar. 1959)","Issue 52 (Aug. 1988)","http://dl.acm.org/citation.cfm?id=J33","http://dl.acm.org/citation.cfm?id=J33&picked=prox"
-"Publications by Affiliated Organizations","Computational Linguistics","Comput. Linguist.","0891-2017","","Volume 6 Issue 1 (January-March 1980)","Volume 39 Issue 2 (June 2013)","http://dl.acm.org/citation.cfm?id=J25","http://dl.acm.org/citation.cfm?id=J25&picked=prox"
-"Publications by Affiliated Organizations","Evolutionary Computation","Evol. Comput.","1063-6560","1530-9304","Volume 1 Issue 1 (Spring 1993)","Volume 21 Issue 4 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J277","http://dl.acm.org/citation.cfm?id=J277&picked=prox"
-"Publications by Affiliated Organizations","Journal of Computing Sciences in Colleges","J. Comput. Sci. Coll.","1937-4771","1937-4763","Volume 6 Issue 5 (May 1991)","Volume 29 Issue 3 (January 2014)","http://dl.acm.org/citation.cfm?id=J420","http://dl.acm.org/citation.cfm?id=J420&picked=prox"
-"Publications by Affiliated Organizations","Journal of Usability Studies","J. Usability Studies","1931-3357","","Volume 5 Issue 4 (August 2010)","Volume 6 Issue 3 (May 2011)","http://dl.acm.org/citation.cfm?id=J1340","http://dl.acm.org/citation.cfm?id=J1340&picked=prox"
-"Publications by Affiliated Organizations","Linux Journal","Linux J.","1075-3583","","Volume 1994 Issue 1es (March 1994)","Volume 2013 Issue 235 (November 2013)","http://dl.acm.org/citation.cfm?id=J508","http://dl.acm.org/citation.cfm?id=J508&picked=prox"
-"Publications by Affiliated Organizations","Mobile Networks and Applications","Mob. Netw. Appl.","1383-469X","","Volume 1 Issue 1 (Aug. 1996)","Volume 18 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J547","http://dl.acm.org/citation.cfm?id=J547&picked=prox"
-"Publications by Affiliated Organizations","Personal and Ubiquitous Computing","Personal Ubiquitous Comput.","1617-4909","","Volume 4 Issue 4 (August 2000)","Volume 17 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J822","http://dl.acm.org/citation.cfm?id=J822&picked=prox"
-"Publications by Affiliated Organizations","Proceedings of the VLDB Endowment","Proc. VLDB Endow.","2150-8097","","Volume 1 Issue 1 (August 2008)","Volume 6 Issue 14 (September 2013)","http://dl.acm.org/citation.cfm?id=J1174","http://dl.acm.org/citation.cfm?id=J1174&picked=prox"
-"Publications by Affiliated Organizations","The Journal of Machine Learning Research","J. Mach. Learn. Res.","1532-4435","1533-7928","Volume 1 (9/1/2001)","Volume 14 Issue 1 (January 2013)","http://dl.acm.org/citation.cfm?id=J832","http://dl.acm.org/citation.cfm?id=J832&picked=prox"
-"Publications by Affiliated Organizations","The VLDB Journal &#8212; The International Journal on Very Large Data Bases","The VLDB Journal","1066-8888","","Volume 1 Issue 1 (July 1992)","Volume 22 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J869","http://dl.acm.org/citation.cfm?id=J869&picked=prox"
-"Publications by Affiliated Organizations","Wireless Networks","Wirel. Netw.","1022-0038","","Volume 1 Issue 1 (Feb. 1995)","Volume 19 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J804","http://dl.acm.org/citation.cfm?id=J804&picked=prox"
-"SIG Newsletters","3C ON-LINE","3C ON-LINE","1078-2192","","Volume 1 Issue 1 (Oct. 1994)","Volume 4 Issue 4 (Oct., 1997)","http://dl.acm.org/citation.cfm?id=J685","http://dl.acm.org/citation.cfm?id=J685&picked=prox"
-"SIG Newsletters","ACM Communications in Computer Algebra","ACM Commun. Comput. Algebra","1932-2240","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J1000","http://dl.acm.org/citation.cfm?id=J1000&picked=prox"
-"SIG Newsletters","ACM Lisp Bulletin","Lisp Bull.","","","Volume 4 Issue 9 (September 1969)","Issue 3 (December 1979)","http://dl.acm.org/citation.cfm?id=J1166","http://dl.acm.org/citation.cfm?id=J1166&picked=prox"
-"SIG Newsletters","ACM SIGACCESS Accessibility and Computing","SIGACCESS Access. Comput.","1558-2337","1558-1187","Issue 77-78 (Sept. 2003 - Jan. 2004)","Issue 107 (September 2013)","http://dl.acm.org/citation.cfm?id=J956","http://dl.acm.org/citation.cfm?id=J956&picked=prox"
-"SIG Newsletters","ACM SIGACT News","SIGACT News","0163-5700","","Issue 1 (April 1969)","Volume 44 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J697","http://dl.acm.org/citation.cfm?id=J697&picked=prox"
-"SIG Newsletters","ACM SIGAPL APL Quote Quad","SIGAPL APL Quote Quad","0163-6006","","Volume 3 Issue 1 (June 1971)","Volume 35 Issue 4 (December 2007)","http://dl.acm.org/citation.cfm?id=J46","http://dl.acm.org/citation.cfm?id=J46&picked=prox"
-"SIG Newsletters","ACM SIGAPP Applied Computing Review","SIGAPP Appl. Comput. Rev.","1559-6915","1931-0161","Volume 1 Issue 1 (Winter 1993)","Volume 13 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J693","http://dl.acm.org/citation.cfm?id=J693&picked=prox"
-"SIG Newsletters","ACM SIGARCH Computer Architecture News","SIGARCH Comput. Archit. News","0163-5964","","Volume 1 Issue 1 (January 1972)","Volume 41 Issue 3 (June 2013) - ICSA '13","http://dl.acm.org/citation.cfm?id=J89","http://dl.acm.org/citation.cfm?id=J89&picked=prox"
-"SIG Newsletters","ACM SIGART Bulletin","SIGART Bull.","0163-5719","","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J686","http://dl.acm.org/citation.cfm?id=J686&picked=prox"
-"SIG Newsletters","ACM SIGAda Ada Letters","Ada Lett.","1094-3641","","Volume I Issue 1 (July-August 1981)","Volume 33 Issue 2 (August 2013)","http://dl.acm.org/citation.cfm?id=J32","http://dl.acm.org/citation.cfm?id=J32&picked=prox"
-"SIG Newsletters","ACM SIGBED Review","SIGBED Rev.","","1551-3688","Volume 1 Issue 1 (April 2004)","Volume 10 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J994","http://dl.acm.org/citation.cfm?id=J994&picked=prox"
-"SIG Newsletters","ACM SIGBIO Newsletter","SIGBIO Newsl.","0163-5697","","Volume 1 Issue 2 (October 1976)","Volume 21 Issue 1 (April 2001)","http://dl.acm.org/citation.cfm?id=J698","http://dl.acm.org/citation.cfm?id=J698&picked=prox"
-"SIG Newsletters","ACM SIGBioinformatics Record","ACM SIGBioinformatics Rec.","2331-9291","2159-1210","Volume 1 Issue 1 (January 2011)","Volume 3 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1323","http://dl.acm.org/citation.cfm?id=J1323&picked=prox"
-"SIG Newsletters","ACM SIGCAPH Computers and the Physically Handicapped","SIGCAPH Comput. Phys. Handicap.","0163-5727","","Issue 5 (Fall 1971)","Issue 76 (June 2003)","http://dl.acm.org/citation.cfm?id=J298","http://dl.acm.org/citation.cfm?id=J298&picked=prox"
-"SIG Newsletters","ACM SIGCAS Computers and Society","SIGCAS Comput. Soc.","0095-2737","","Volume 1 Issue 2 (April 1970)","Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry","http://dl.acm.org/citation.cfm?id=J198","http://dl.acm.org/citation.cfm?id=J198&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin","SIGCHI Bull.","0736-6906","","Volume 14 Issue 1 (July 1982)","Volume 32 Issue 2 (April 2000)","http://dl.acm.org/citation.cfm?id=J687","http://dl.acm.org/citation.cfm?id=J687&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin - a supplement to <i>interactions</i>","SIGCHI Bull.: suppl. <i>interactions</i>","0736-6906","1558-1217","Volume 2000 (July/August 2000)","Volume 2003 (May-June 2003)","http://dl.acm.org/citation.cfm?id=J122","http://dl.acm.org/citation.cfm?id=J122&picked=prox"
-"SIG Newsletters","ACM SIGCOMM Computer Communication Review","SIGCOMM Comput. Commun. Rev.","0146-4833","","Volume 1 Issue 2 (March 1970)","Volume 43 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J101","http://dl.acm.org/citation.cfm?id=J101&picked=prox"
-"SIG Newsletters","ACM SIGCPR Computer Personnel","SIGCPR Comput. Pers.","0160-2497","","Volume 2 Issue 1 (July 1964)","Volume 20 Issue 4 (October 1999)","http://dl.acm.org/citation.cfm?id=J188","http://dl.acm.org/citation.cfm?id=J188&picked=prox"
-"SIG Newsletters","ACM SIGCSE Bulletin","SIGCSE Bull.","0097-8418","","Volume 1 Issue 1 (February 1969)","Volume 45 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J688","http://dl.acm.org/citation.cfm?id=J688&picked=prox"
-"SIG Newsletters","ACM SIGCSIM Installation Management Review","Install Manag. Rev.","0163-5972","","Issue 1 (August 1969)","Volume 6 Issue 4 (December 1977)","http://dl.acm.org/citation.cfm?id=J959","http://dl.acm.org/citation.cfm?id=J959&picked=prox"
-"SIG Newsletters","ACM SIGCUE Outlook","SIGCUE Outlook","0163-5735","","Volume 4 Issue 1 (February 1970)","Volume 27 Issue 3 (September 2001)","http://dl.acm.org/citation.cfm?id=J678","http://dl.acm.org/citation.cfm?id=J678&picked=prox"
-"SIG Newsletters","ACM SIGDA Newsletter","SIGDA Newsl.","0163-5743","","Volume 1 Issue 1 (January 1971)","Volume 40 Issue 9 (September 2010)","http://dl.acm.org/citation.cfm?id=J700","http://dl.acm.org/citation.cfm?id=J700&picked=prox"
-"SIG Newsletters","ACM SIGDOC Asterisk Journal of Computer Documentation","SIGDOC Asterisk J. Comput. Doc.","0731-1001","","Volume 2 Issue 5 (October 1975)","Volume 12 Issue 4 (December 2011)","http://dl.acm.org/citation.cfm?id=J62","http://dl.acm.org/citation.cfm?id=J62&picked=prox"
-"SIG Newsletters","ACM SIGEVOlution","SIGEVOlution","","1931-8499","Volume 1 Issue 1 (April 2006)","Volume 6 Issue 1 (July 2012)","http://dl.acm.org/citation.cfm?id=J999","http://dl.acm.org/citation.cfm?id=J999&picked=prox"
-"SIG Newsletters","ACM SIGFORTH Newsletter","SIGFORTH Newsl.","1047-4544","","Volume 1 Issue 1 (Spring 1989)","Volume 4 Issue 4 (Dec. 1994)","http://dl.acm.org/citation.cfm?id=J696","http://dl.acm.org/citation.cfm?id=J696&picked=prox"
-"SIG Newsletters","ACM SIGGRAPH Computer Graphics","SIGGRAPH Comput. Graph.","0097-8930","","Volume 3 Issue 3 (Fal 1969)","Volume 45 Issue 1 (February 2011)","http://dl.acm.org/citation.cfm?id=J166","http://dl.acm.org/citation.cfm?id=J166&picked=prox"
-"SIG Newsletters","ACM SIGGROUP Bulletin","SIGGROUP Bull.","","","Volume 18 Issue 1 (April 1997)","Volume 25 Issue 2 (February 2005) - Special issue on virtual communities","http://dl.acm.org/citation.cfm?id=J702","http://dl.acm.org/citation.cfm?id=J702&picked=prox"
-"SIG Newsletters","ACM SIGHIT Record","SIGHIT Rec.","","2158-8813","Volume 1 Issue 1 (March 2011)","Volume 2 Issue 2 (September 2012)","http://dl.acm.org/citation.cfm?id=J1322","http://dl.acm.org/citation.cfm?id=J1322&picked=prox"
-"SIG Newsletters","ACM SIGHPC Connect","ACM SIGHPC Connect","","2168-135X","Volume 1 Issue 1 (June 2012)","Volume 2 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J1356","http://dl.acm.org/citation.cfm?id=J1356&picked=prox"
-"SIG Newsletters","ACM SIGICE Bulletin","SIGICE Bull.","0893-2875","","Volume 19 Issue 3 (Feb. 1994)","Volume 23 Issue 2 (Oct. 1997)","http://dl.acm.org/citation.cfm?id=J694","http://dl.acm.org/citation.cfm?id=J694&picked=prox"
-"SIG Newsletters","ACM SIGIR Forum","SIGIR Forum","0163-5840","","Volume 6 Issue 2 (Summer 1971)","Volume 47 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J701","http://dl.acm.org/citation.cfm?id=J701&picked=prox"
-"SIG Newsletters","ACM SIGITE Newsletter","SIGITE Newsl.","2166-1685","1550-1469","Volume 2 Issue 1 (Spring 2004)","Volume 9 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J977","http://dl.acm.org/citation.cfm?id=J977&picked=prox"
-"SIG Newsletters","ACM SIGKDD Explorations Newsletter","SIGKDD Explor. Newsl.","1931-0145","1931-0153","Volume 1 Issue 1 (June 1999)","Volume 14 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J721","http://dl.acm.org/citation.cfm?id=J721&picked=prox"
-"SIG Newsletters","ACM SIGLASH Newsletter","SIGLASH Newsl.","0036-147X","1931-1095","Volume 10 Issue 1-2 (December 1976/March 1977)","Volume 14 Issue 1-2 (March/June 1981)","http://dl.acm.org/citation.cfm?id=J958","http://dl.acm.org/citation.cfm?id=J958&picked=prox"
-"SIG Newsletters","ACM SIGMAP Bulletin","SIGMAP Bull.","0163-5786","1931-1184","Issue 5 (June 1969)","Issue 32 (April 1983)","http://dl.acm.org/citation.cfm?id=J952","http://dl.acm.org/citation.cfm?id=J952&picked=prox"
-"SIG Newsletters","ACM SIGMETRICS Performance Evaluation Review","SIGMETRICS Perform. Eval. Rev.","0163-5999","","Volume 1 Issue 1 (March 1972)","Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013)","http://dl.acm.org/citation.cfm?id=J618","http://dl.acm.org/citation.cfm?id=J618&picked=prox"
-"SIG Newsletters","ACM SIGMICRO Newsletter","SIGMICRO Newsl.","1050-916X","","Volume 2 Issue 4 (January 1972)","Volume 23 Issue 1-2 (Dec. 1992)","http://dl.acm.org/citation.cfm?id=J703","http://dl.acm.org/citation.cfm?id=J703&picked=prox"
-"SIG Newsletters","ACM SIGMINI Newsletter","SIGMINI Newsl.","0163-576X","","Volume 1 Issue 1 (July 1975)","Volume 4 Issue 4 (August 1978)","http://dl.acm.org/citation.cfm?id=J951","http://dl.acm.org/citation.cfm?id=J951&picked=prox"
-"SIG Newsletters","ACM SIGMIS Database","SIGMIS Database","0095-0033","","Volume 1 Issue 2 (Summer 1969)","Volume 44 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J219","http://dl.acm.org/citation.cfm?id=J219&picked=prox"
-"SIG Newsletters","ACM SIGMOBILE Mobile Computing and Communications Review","SIGMOBILE Mob. Comput. Commun. Rev.","1559-1662","1931-1222","Volume 1 Issue 1 (April 1997)","Volume 17 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J548","http://dl.acm.org/citation.cfm?id=J548&picked=prox"
-"SIG Newsletters","ACM SIGMOD Record","SIGMOD Rec.","0163-5808","","Volume 1 Issue 1 (August 1969)","Volume 42 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J689","http://dl.acm.org/citation.cfm?id=J689&picked=prox"
-"SIG Newsletters","ACM SIGMultimedia Records","SIGMultimedia Rec.","","1947-4598","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1232","http://dl.acm.org/citation.cfm?id=J1232&picked=prox"
-"SIG Newsletters","ACM SIGNUM Newsletter","SIGNUM Newsl.","0163-5778","","Volume 1 Issue 1 (June 1966)","Volume 33 Issue 2 (April 1, 1998)","http://dl.acm.org/citation.cfm?id=J690","http://dl.acm.org/citation.cfm?id=J690&picked=prox"
-"SIG Newsletters","ACM SIGOA Newsletter","ACM SIGOA Newsletter","0737-819X","","Volume 1 Issue 1 (March 1980)","Volume 7 Issue 1 (Spring 1986)","http://dl.acm.org/citation.cfm?id=J915","http://dl.acm.org/citation.cfm?id=J915&picked=prox"
-"SIG Newsletters","ACM SIGOIS Bulletin","SIGOIS Bull.","0894-0819","","Volume 7 Issue 2-3 (Summer-Fall 1986)","Volume 17 Issue 3 (Dec. 1996)","http://dl.acm.org/citation.cfm?id=J705","http://dl.acm.org/citation.cfm?id=J705&picked=prox"
-"SIG Newsletters","ACM SIGOPS Operating Systems Review","SIGOPS Oper. Syst. Rev.","0163-5980","","Volume 3 Issue 1 (February 1969)","Volume 47 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J597","http://dl.acm.org/citation.cfm?id=J597&picked=prox"
-"SIG Newsletters","ACM SIGPC Notes","SIGPC Note.","0163-5816","","Volume 1 Issue 2 (Summer 1978)","Volume 5 Issue 1-2 (Fall/Winter 1982/1983)","http://dl.acm.org/citation.cfm?id=J950","http://dl.acm.org/citation.cfm?id=J950&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Fortran Forum","SIGPLAN Fortran Forum","1061-7264","1931-1311","Volume 1 Issue 1 (July 1982)","Volume 32 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J286","http://dl.acm.org/citation.cfm?id=J286&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Lisp Pointers","SIGPLAN Lisp Pointers","1045-3563","","Volume 1 Issue 1 (April-May 1987)","Volume VIII Issue 2 (May-Aug., 1995)","http://dl.acm.org/citation.cfm?id=J509","http://dl.acm.org/citation.cfm?id=J509&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Notices","SIGPLAN Not.","0362-1340","1558-1160","Volume 1 Issue 8 (August 1966)","Volume 48 Issue 11 (November 2013) - ISMM '13","http://dl.acm.org/citation.cfm?id=J706","http://dl.acm.org/citation.cfm?id=J706&picked=prox"
-"SIG Newsletters","ACM SIGPLAN OOPS Messenger","SIGPLAN OOPS Mess.","1055-6400","","Volume 1 Issue 1 (Aug. 1990)","Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems","http://dl.acm.org/citation.cfm?id=J594","http://dl.acm.org/citation.cfm?id=J594&picked=prox"
-"SIG Newsletters","ACM SIGSAC Review","SIGSAC Rev.","0277-920X","","Volume 1 Issue 1 (Winter 1981-1982)","Volume 15 Issue 2 (April 1997)","http://dl.acm.org/citation.cfm?id=J691","http://dl.acm.org/citation.cfm?id=J691&picked=prox"
-"SIG Newsletters","ACM SIGSAM Bulletin","SIGSAM Bull.","0163-5824","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J707","http://dl.acm.org/citation.cfm?id=J707&picked=prox"
-"SIG Newsletters","ACM SIGSIM Simulation Digest","SIGSIM Simul. Dig.","0163-6103","","Volume 3 Issue 1 (September 1971)","Volume 28 Issue 1 (July 1998)","http://dl.acm.org/citation.cfm?id=J711","http://dl.acm.org/citation.cfm?id=J711&picked=prox"
-"SIG Newsletters","ACM SIGSMALL Newsletter","SIGSMALL Newsl.","0272-720X","","Volume 4 Issue 5 (October 1978)","Volume 10 Issue 4 (October 1984)","http://dl.acm.org/citation.cfm?id=J949","http://dl.acm.org/citation.cfm?id=J949&picked=prox"
-"SIG Newsletters","ACM SIGSMALL/PC Notes","SIGSMALL/PC Notes","0893-2875","","Volume 11 Issue 3 (Aug. 1985)","Volume 19 Issue 2 (Nov. 1993)","http://dl.acm.org/citation.cfm?id=J692","http://dl.acm.org/citation.cfm?id=J692&picked=prox"
-"SIG Newsletters","ACM SIGSOC Bulletin","SIGSOC Bull.","0163-5794","","Volume 1 Issue 1 (March 1969)","Volume 13 Issue 4 (April 1982)","http://dl.acm.org/citation.cfm?id=J948","http://dl.acm.org/citation.cfm?id=J948&picked=prox"
-"SIG Newsletters","ACM SIGSOFT Software Engineering Notes","SIGSOFT Softw. Eng. Notes","0163-5948","","Volume 1 Issue 1 (May 1976)","Volume 38 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J728","http://dl.acm.org/citation.cfm?id=J728&picked=prox"
-"SIG Newsletters","ACM SIGUCCS Newsletter","SIGUCCS Newsl.","0736-6892","","Volume 1 Issue 1 (January 1965)","Volume 28 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J708","http://dl.acm.org/citation.cfm?id=J708&picked=prox"
-"SIG Newsletters","ACM SIGUCCS plugged in","ACM SIGUCCS plugged in","","2168-8516","Volume 1 Issue 1 (Summer 2012)","Volume 2 Issue 1 (Summer 2013)","http://dl.acm.org/citation.cfm?id=J1358","http://dl.acm.org/citation.cfm?id=J1358&picked=prox"
-"SIG Newsletters","ACM SIGWEB Newsletter","SIGWEB Newsl.","1931-1745","1931-1435","Volume 1 Issue 1 (March 1992)","Issue Autumn (Autumn 2013)","http://dl.acm.org/citation.cfm?id=J507","http://dl.acm.org/citation.cfm?id=J507&picked=prox"
-"SIG Newsletters","ACM SIGecom Exchanges","SIGecom Exch.","","1551-9031","Volume 1 Issue 1 (Summer, 2000)","Volume 12 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J684","http://dl.acm.org/citation.cfm?id=J684&picked=prox"
-"SIG Newsletters","Communication Design Quarterly Review","Commun. Des. Q. Rev","2166-1200","2166-1642","Volume 2 Issue 1 (March 2001)","Volume 2 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J1351","http://dl.acm.org/citation.cfm?id=J1351&picked=prox"
-"SIG Newsletters","SIGSPATIAL Special","SIGSPATIAL Special","","1946-7729","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J1196","http://dl.acm.org/citation.cfm?id=J1196&picked=prox"
-"Conference Proceedings","3DOR: 3D Object Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dor/","http://portal.acm.org/proceedings/3dor/archive/"
-"Conference Proceedings","3DVP: 3D Video Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dvp/","http://portal.acm.org/proceedings/3dvp/archive/"
-"Conference Proceedings","A-MOST: Advances in Model-Based Testing","","","","2005 (May 2005)","2007 (July 2007)","http://portal.acm.org/proceedings/a-most/","http://portal.acm.org/proceedings/a-most/archive/"
-"Conference Proceedings","A2CWiC: Amrita ACM-W Celebration on Women in Computing in India","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/a2cwic/","http://portal.acm.org/proceedings/a2cwic/archive/"
-"Conference Proceedings","AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/aaa-idea/","http://portal.acm.org/proceedings/aaa-idea/archive/"
-"Conference Proceedings","AADEBUG: Automated analysis-driven debugging","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/aadebug/","http://portal.acm.org/proceedings/aadebug/archive/"
-"Conference Proceedings","AAMAS: Autonomous Agents and Multiagent Systems","","","","2002 (July 2002)","2013 (May 2013)","http://portal.acm.org/proceedings/aamas/","http://portal.acm.org/proceedings/aamas/archive/"
-"Conference Proceedings","ACDC: Automated Control for Datacenters and Clouds","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/acdc/","http://portal.acm.org/proceedings/acdc/archive/"
-"Conference Proceedings","ACET: Advances in Computer Entertainment Technology","","","","2004 (September 2004)","2011 (November 2011)","http://portal.acm.org/proceedings/ace/","http://portal.acm.org/proceedings/ace/archive/"
-"Conference Proceedings","ACISNR: Applications of Computer and Information Sciences to Nature Research","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/acisnr/","http://portal.acm.org/proceedings/acisnr/archive/"
-"Conference Proceedings","ACL2: ACL2 Theorem Prover and its Applications","","","","2006 (August 2006)","2009 (May 2009)","http://portal.acm.org/proceedings/acl2/","http://portal.acm.org/proceedings/acl2/archive/"
-"Conference Proceedings","ACM DEV: Computing for Development","","","","2010 (December 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/acmdev/","http://portal.acm.org/proceedings/acmdev/archive/"
-"Conference Proceedings","ACM POLICY: ACM POLICY","","","","1998 (June 1998)","1998 (June 1998)","http://portal.acm.org/proceedings/acmpolicy/","http://portal.acm.org/proceedings/acmpolicy/archive/"
-"Conference Proceedings","ACM SE: Annual Southeast Regional Conference","","","","1967 (June 1967)","2013 (April 2013)","http://portal.acm.org/proceedings/acmse/","http://portal.acm.org/proceedings/acmse/archive/"
-"Conference Proceedings","ACM-BCS: ACM-BCS","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/acm-bcs/","http://portal.acm.org/proceedings/acm-bcs/archive/"
-"Conference Proceedings","ACM: ACM Annual Conference/Annual Meeting","","","","1952 (May 1952)","1987 (December 1987)","http://portal.acm.org/proceedings/acm/","http://portal.acm.org/proceedings/acm/archive/"
-"Conference Proceedings","ACPIS: Aspects, Components, and Patterns for Infrastructure Software","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/acpis/","http://portal.acm.org/proceedings/acpis/archive/"
-"Conference Proceedings","ACSAC: Annual Computer Security Applications Conference","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/acsac/","http://portal.acm.org/proceedings/acsac/archive/"
-"Conference Proceedings","ACSE: Australasian Conference on Computing Education","","","","1996 (July 1996)","2010 (January 2010)","http://portal.acm.org/proceedings/acse/","http://portal.acm.org/proceedings/acse/archive/"
-"Conference Proceedings","ACoM: Assessment of Contemporary Modularization Techniques","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/acom/","http://portal.acm.org/proceedings/acom/archive/"
-"Conference Proceedings","ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/adamus/","http://portal.acm.org/proceedings/adamus/archive/"
-"Conference Proceedings","ADKDD: Data Mining and Audience Intelligence for Advertising","","","","2007 (August 2007)","2013 (August 2013)","http://portal.acm.org/proceedings/adkdd/","http://portal.acm.org/proceedings/adkdd/archive/"
-"Conference Proceedings","ADPUC: Advanced Data Processing in Ubiquitous Computing ","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/adpuc/","http://portal.acm.org/proceedings/adpuc/archive/"
-"Conference Proceedings","AFFINE: Affective-Aware Virtual Agents and Social Robots","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/affine/","http://portal.acm.org/proceedings/affine/archive/"
-"Conference Proceedings","AFIPS: AFIPS","","","","1955 (March 1955)","1984 (July 1984)","http://portal.acm.org/proceedings/afips/","http://portal.acm.org/proceedings/afips/archive/"
-"Conference Proceedings","AFM: Automated Formal Methods","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/afm/","http://portal.acm.org/proceedings/afm/archive/"
-"Conference Proceedings","AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa","","","","2001 (November 2001)","2010 (June 2010)","http://portal.acm.org/proceedings/afrigraph/","http://portal.acm.org/proceedings/afrigraph/archive/"
-"Conference Proceedings","AGENTS: Autonomous Agents","","","","1997 (February 1997)","2001 (May 2001)","http://portal.acm.org/proceedings/agents/","http://portal.acm.org/proceedings/agents/archive/"
-"Conference Proceedings","AH: Augmented Human","","","","2010 (April 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/ah/","http://portal.acm.org/proceedings/ah/archive/"
-"Conference Proceedings","AIEE-IRE: AIEE-IRE","","","","1951 (December 1951)","1962 (May 1962)","http://portal.acm.org/proceedings/aiee-ire/","http://portal.acm.org/proceedings/aiee-ire/archive/"
-"Conference Proceedings","AIEMPro: Automated Information Extraction in Media Production","","","","2010 (October 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/aiempro/","http://portal.acm.org/proceedings/aiempro/archive/"
-"Conference Proceedings","AIGC: Artificial Intelligence in Grid Computing","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/aigc/","http://portal.acm.org/proceedings/aigc/archive/"
-"Conference Proceedings","AINTEC: Asian Conference on Internet Engineering","","","","2008 (November 2008)","2012 (November 2012)","http://portal.acm.org/proceedings/aintec/","http://portal.acm.org/proceedings/aintec/archive/"
-"Conference Proceedings","AIPACa: Applications of Private and Anonymous Communications","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/aipaca/","http://portal.acm.org/proceedings/aipaca/archive/"
-"Conference Proceedings","AIRS: Asia Information Retrieval Symposium ","","","","2008 (January 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/airs/","http://portal.acm.org/proceedings/airs/archive/"
-"Conference Proceedings","AIRWeb: Adversarial Information Retrieval on the Web","","","","2007 (May 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/airweb/","http://portal.acm.org/proceedings/airweb/archive/"
-"Conference Proceedings","AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/aisc/mkm/calculemus/","http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/"
-"Conference Proceedings","AISec: Artificial Intelligence and Security","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/aisec/","http://portal.acm.org/proceedings/aisec/archive/"
-"Conference Proceedings","ALICE: Alice Symposium","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/alice/","http://portal.acm.org/proceedings/alice/archive/"
-"Conference Proceedings","AM: Audio Mostly","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/am/","http://portal.acm.org/proceedings/am/archive/"
-"Conference Proceedings","AMC: Ambient Media Computing","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/amc/","http://portal.acm.org/proceedings/amc/archive/"
-"Conference Proceedings","AMCMM: Audio and Music Computing Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/amcmm/","http://portal.acm.org/proceedings/amcmm/archive/"
-"Conference Proceedings","ANCS: Architectures for Networking and Communications Systems","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/ancs/","http://portal.acm.org/proceedings/ancs/archive/"
-"Conference Proceedings","AND: Analytics for Noisy Unstructured Text Data","","","","2008 (July 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/and/","http://portal.acm.org/proceedings/and/archive/"
-"Conference Proceedings","ANNA: Analysis of Neural Network Applications","","","","1991 (May 1991)","1991 (May 1991)","http://portal.acm.org/proceedings/anna/","http://portal.acm.org/proceedings/anna/archive/"
-"Conference Proceedings","ANSS: Annual Simulation Symposium","","","","1973 (June 1973)","2013 (April 2013)","http://portal.acm.org/proceedings/anss/","http://portal.acm.org/proceedings/anss/archive/"
-"Conference Proceedings","AOM: Aspect-Oriented Modeling","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/aom/","http://portal.acm.org/proceedings/aom/archive/"
-"Conference Proceedings","AOMD: Aspect Oriented Middleware Development","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/aomd/","http://portal.acm.org/proceedings/aomd/archive/"
-"Conference Proceedings","AOSD: Aspect-Oriented Software Development","","","","2002 (April 2002)","2013 (March 2013)","http://portal.acm.org/proceedings/aosd/","http://portal.acm.org/proceedings/aosd/archive/"
-"Conference Proceedings","APGV: Applied Perception in Graphics and Visualization","","","","2004 (August 2004)","2011 (August 2011)","http://portal.acm.org/proceedings/apgv/","http://portal.acm.org/proceedings/apgv/archive/"
-"Conference Proceedings","APL: APL","","","","1969 (January 1969)","2003 (June 2003)","http://portal.acm.org/proceedings/apl/","http://portal.acm.org/proceedings/apl/archive/"
-"Conference Proceedings","APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/aplwaca/","http://portal.acm.org/proceedings/aplwaca/archive/"
-"Conference Proceedings","APOS: Scrutinizing Agile Practices","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/apos/","http://portal.acm.org/proceedings/apos/archive/"
-"Conference Proceedings","APS: Adaptive, Personalization &#38; the Semantic Web","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/aps/","http://portal.acm.org/proceedings/aps/archive/"
-"Conference Proceedings","APSys: Asia-Pacific Workshop on Systems","","","","2010 (August 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/apsys/","http://portal.acm.org/proceedings/apsys/archive/"
-"Conference Proceedings","AREA: Analysis and Retrieval of Events","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/area/","http://portal.acm.org/proceedings/area/archive/"
-"Conference Proceedings","ARM: Adaptive and Reflective MIddleware","","","","2004 (October 2004)","2013 (December 2013)","http://portal.acm.org/proceedings/arm/","http://portal.acm.org/proceedings/arm/archive/"
-"Conference Proceedings","ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams","","","","2010 (October 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/artemis/","http://portal.acm.org/proceedings/artemis/archive/"
-"Conference Proceedings","ASE: Automated Software Engineering","","","","1997 (November 1997)","2012 (September 2012)","http://portal.acm.org/proceedings/ase/","http://portal.acm.org/proceedings/ase/archive/"
-"Conference Proceedings","ASIA CCS: Information, Computer and Communications Security","","","","2006 (March 2006)","2013 (May 2013)","http://portal.acm.org/proceedings/asiaccs/","http://portal.acm.org/proceedings/asiaccs/archive/"
-"Conference Proceedings","ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/asia-pepm/","http://portal.acm.org/proceedings/asia-pepm/archive/"
-"Conference Proceedings","ASID: Architectural and System Support for Improving Software Dependability","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/asid/","http://portal.acm.org/proceedings/asid/archive/"
-"Conference Proceedings","ASPDAC: Asia and South Pacific Design Automation Conference","","","","1995 (August 1995)","2011 (January 2011)","http://portal.acm.org/proceedings/aspdac/","http://portal.acm.org/proceedings/aspdac/archive/"
-"Conference Proceedings","ASPLOS: Architectural Support for Programming Languages and Operating Systems","","","","1982 (March 1982)","2013 (March 2013)","http://portal.acm.org/proceedings/asplos/","http://portal.acm.org/proceedings/asplos/archive/"
-"Conference Proceedings","AST: Automation of Software Test","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/ast/","http://portal.acm.org/proceedings/ast/archive/"
-"Conference Proceedings","AUIC: User Interface","","","","2001 (January 2001)","2010 (January 2010)","http://portal.acm.org/proceedings/auic/","http://portal.acm.org/proceedings/auic/archive/"
-"Conference Proceedings","AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/aupc/","http://portal.acm.org/proceedings/aupc/archive/"
-"Conference Proceedings","AVI: Advanced Visual Interfaces","","","","1994 (June 1994)","2012 (May 2012)","http://portal.acm.org/proceedings/avi/","http://portal.acm.org/proceedings/avi/archive/"
-"Conference Proceedings","AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/avstp2p/","http://portal.acm.org/proceedings/avstp2p/archive/"
-"Conference Proceedings","AcessNets: Access Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/acessnets/","http://portal.acm.org/proceedings/acessnets/archive/"
-"Conference Proceedings","Ambi-Sys: Ambient Media and Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/ambi-sys/","http://portal.acm.org/proceedings/ambi-sys/archive/"
-"Conference Proceedings","Assets: Computers and Accessibility","","","","1994 (October 1994)","2013 (October 2013)","http://portal.acm.org/proceedings/assets/","http://portal.acm.org/proceedings/assets/archive/"
-"Conference Proceedings","AusGrid: Grid Computing and e-Research","","","","2008 (January 2008)","2009 (January 2009)","http://portal.acm.org/proceedings/ausgrid/","http://portal.acm.org/proceedings/ausgrid/archive/"
-"Conference Proceedings","AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications","","","","2009 (September 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/automotiveui/","http://portal.acm.org/proceedings/automotiveui/archive/"
-"Conference Proceedings","Autonomics: Autonomic Computing and Communication Systems","","","","2007 (October 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/autonomics/","http://portal.acm.org/proceedings/autonomics/archive/"
-"Conference Proceedings","BADS: Bio-Inspired Algorithms for Distributed Systems","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/bads/","http://portal.acm.org/proceedings/bads/archive/"
-"Conference Proceedings","BCB: Bioinformatics and Computational Biology","","","","2010 (August 2010)","2007 (September 2013)","http://portal.acm.org/proceedings/bcb/","http://portal.acm.org/proceedings/bcb/archive/"
-"Conference Proceedings","BCS-HCI: British HCI Group Annual Conference on People and Computers","","","","2007 (September 2007)","2009 (September 2009)","http://portal.acm.org/proceedings/bcs-hci/","http://portal.acm.org/proceedings/bcs-hci/archive/"
-"Conference Proceedings","BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization","","","","2006 (May 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/beliv/","http://portal.acm.org/proceedings/beliv/archive/"
-"Conference Proceedings","BIOKDD: Bioinformatics","","","","2005 (August 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/biokdd/","http://portal.acm.org/proceedings/biokdd/archive/"
-"Conference Proceedings","BIONETICS: Bio Inspired Models of Network, Information and Computing Systems","","","","2006 (December 2006)","2006 (December 2006)","http://portal.acm.org/proceedings/bionetics/","http://portal.acm.org/proceedings/bionetics/archive/"
-"Conference Proceedings","BM-FA: Behaviour Modelling","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/bm-fa/","http://portal.acm.org/proceedings/bm-fa/archive/"
-"Conference Proceedings","BM-MDA: Behaviour Modelling in Model-Driven Architecture","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/bm-mda/","http://portal.acm.org/proceedings/bm-mda/archive/"
-"Conference Proceedings","BPAOSD: Best Practices in Applying Aspect-Oriented Software Development","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/bpaosd/","http://portal.acm.org/proceedings/bpaosd/archive/"
-"Conference Proceedings","BQGT: Behavioral and Quantitative Game Theory","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/bqgt/","http://portal.acm.org/proceedings/bqgt/archive/"
-"Conference Proceedings","BWAN: Broadband Wireless Access for Ubiquitous Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/bwan/","http://portal.acm.org/proceedings/bwan/archive/"
-"Conference Proceedings","Baltic Sea: Baltic Sea Conference on Computing Education Research","","","","2006 (February 2006)","2006 (February 2006)","http://portal.acm.org/proceedings/balticsea/","http://portal.acm.org/proceedings/balticsea/archive/"
-"Conference Proceedings","BiPi: Business Impact of Process Improvements","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/bipi/","http://portal.acm.org/proceedings/bipi/archive/"
-"Conference Proceedings","BooksOnline: Research Advances in Large Digital Book Repositories","","","","2008 (October 2008)","2012 (October 2012)","http://portal.acm.org/proceedings/booksonline/","http://portal.acm.org/proceedings/booksonline/archive/"
-"Conference Proceedings","BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/buildsys/","http://portal.acm.org/proceedings/buildsys/archive/"
-"Conference Proceedings","C&#38;C: Creativity and Cognition","","","","1999 (October 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;c/","http://portal.acm.org/proceedings/c&amp;c/archive/"
-"Conference Proceedings","C&#38;T: Communities and Technologies","","","","2009 (June 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;t/","http://portal.acm.org/proceedings/c&amp;t/archive/"
-"Conference Proceedings","C3P: Hypercube Concurrent Computers and Applications","","","","1988 (January 1988)","1988 (January 1989)","http://portal.acm.org/proceedings/c3p/","http://portal.acm.org/proceedings/c3p/archive/"
-"Conference Proceedings","C3S2E: Canadian Conference on Computer Science and Software Engineering","","","","2008 (May 2008)","2013 (July 2013)","http://portal.acm.org/proceedings/cse/","http://portal.acm.org/proceedings/cse/archive/"
-"Conference Proceedings","CAI: Context in Advanced Interfaces","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/cai/","http://portal.acm.org/proceedings/cai/archive/"
-"Conference Proceedings","CAMA: Contextualized Attention Metadata","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/cama/","http://portal.acm.org/proceedings/cama/archive/"
-"Conference Proceedings","CAMRa: Context-aware Movie Recommendation","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/camra/","http://portal.acm.org/proceedings/camra/archive/"
-"Conference Proceedings","CAMS: Context-Aware Middleware and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/cams/","http://portal.acm.org/proceedings/cams/archive/"
-"Conference Proceedings","CARPE: Continous Archival and Retrieval of Personal Experiences","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/carpe/","http://portal.acm.org/proceedings/carpe/archive/"
-"Conference Proceedings","CARS: Critical Automotive Applications","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/cars/","http://portal.acm.org/proceedings/cars/archive/"
-"Conference Proceedings","CASEMANS: Context-Awareness for Self-Managing Systems","","","","2008 (May 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CASES: Compilers, Architectures and Synthesis for Embedded Systems","","","","2000 (November 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/cases/","http://portal.acm.org/proceedings/cases/archive/"
-"Conference Proceedings","CASTA: Context-Aware Software Technology and Application","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/casta/","http://portal.acm.org/proceedings/casta/archive/"
-"Conference Proceedings","CAW: Computer Architecture for Non-Numeric Processing","","","","1977 (January 1977)","1980 (March 1980)","http://portal.acm.org/proceedings/caw/","http://portal.acm.org/proceedings/caw/archive/"
-"Conference Proceedings","CBHPC: Component-Based High Performance Computing","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/cbhpc/","http://portal.acm.org/proceedings/cbhpc/archive/"
-"Conference Proceedings","CC: Critical Computing","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/cc/","http://portal.acm.org/proceedings/cc/archive/"
-"Conference Proceedings","CCS: Computer and Communications Security","","","","1993 (December 1993)","2013 (November 2013)","http://portal.acm.org/proceedings/ccs/","http://portal.acm.org/proceedings/ccs/archive/"
-"Conference Proceedings","CCSC: Consortium for Computing Sciences in Colleges","","","","1991 (May 1991)","2001 (April 2001)","http://portal.acm.org/proceedings/ccsc/","http://portal.acm.org/proceedings/ccsc/archive/"
-"Conference Proceedings","CCSW: Cloud Computing Security Workshop","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ccsw/","http://portal.acm.org/proceedings/ccsw/archive/"
-"Conference Proceedings","CCU: Contemporary Computing in Ukraine","","","","2000 (February 2000)","2000 (February 2000)","http://portal.acm.org/proceedings/ccu/","http://portal.acm.org/proceedings/ccu/archive/"
-"Conference Proceedings","CEA: Cooking and Eating Activities","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/cea/","http://portal.acm.org/proceedings/cea/archive/"
-"Conference Proceedings","CF: Computing Frontiers","","","","2004 (April 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/cf/","http://portal.acm.org/proceedings/cf/archive/"
-"Conference Proceedings","CFI: Future Internet Technologies","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/cfi/","http://portal.acm.org/proceedings/cfi/archive/"
-"Conference Proceedings","CFP: Computers, Freedom and Privacy","","","","1992 (April 1992)","2002 (April 2002)","http://portal.acm.org/proceedings/cfp/","http://portal.acm.org/proceedings/cfp/archive/"
-"Conference Proceedings","CGI: Computer Graphics International","","","","1996 (June 1996)","2009 (May 2009)","http://portal.acm.org/proceedings/cgi/","http://portal.acm.org/proceedings/cgi/archive/"
-"Conference Proceedings","CGO: Code Generation and Optimization","","","","2003 (March 2003)","2013 (February 2013)","http://portal.acm.org/proceedings/cgo/","http://portal.acm.org/proceedings/cgo/archive/"
-"Conference Proceedings","CHANTS: Challenged Networks","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/chants/","http://portal.acm.org/proceedings/chants/archive/"
-"Conference Proceedings","CHASE: Cooperative and Human Aspects on Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/chase/","http://portal.acm.org/proceedings/chase/archive/"
-"Conference Proceedings","CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts","","","","1997 (March 1997)","2013 (April 2013)","http://portal.acm.org/proceedings/chiea/","http://portal.acm.org/proceedings/chiea/archive/"
-"Conference Proceedings","CHI: Conference on Human Factors in Computing Systems","","","","1981 (May 1981)","2013 (April 2013)","http://portal.acm.org/proceedings/chi/","http://portal.acm.org/proceedings/chi/archive/"
-"Conference Proceedings","CHINA HPC: High Performance Computing","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/chinahpc/","http://portal.acm.org/proceedings/chinahpc/archive/"
-"Conference Proceedings","CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction","","","","2001 (July 2001)","2012 (July 2012)","http://portal.acm.org/proceedings/chinz/","http://portal.acm.org/proceedings/chinz/archive/"
-"Conference Proceedings","CHiMiT: Computer Human Interaction for the Management of Information Technology","","","","2007 (March 2007)","2011 (December 2011)","http://portal.acm.org/proceedings/chimit/","http://portal.acm.org/proceedings/chimit/archive/"
-"Conference Proceedings","CIAA: Implementation and Application of Automata","","","","2003 (July 2002)","2003 (July 2002)","http://portal.acm.org/proceedings/ciaa/","http://portal.acm.org/proceedings/ciaa/archive/"
-"Conference Proceedings","CIAO: Context, Information and Ontologies","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/ciao/","http://portal.acm.org/proceedings/ciao/archive/"
-"Conference Proceedings","CIKM: Conference on Information and Knowledge Management","","","","1993 (December 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/cikm/","http://portal.acm.org/proceedings/cikm/archive/"
-"Conference Proceedings","CIMS: CyberInfrastructure: Information Management in eScience","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/cims/","http://portal.acm.org/proceedings/cims/archive/"
-"Conference Proceedings","CIVR: Conference on Image and Video Retrieval","","","","2007 (July 2007)","2010 (July 2010)","http://portal.acm.org/proceedings/civr/","http://portal.acm.org/proceedings/civr/archive/"
-"Conference Proceedings","CLADE: Challenges of Large Applications in Distributed Environments","","","","2003 (June 2003)","2009 (June 2009)","http://portal.acm.org/proceedings/clade/","http://portal.acm.org/proceedings/clade/archive/"
-"Conference Proceedings","CLIHC: Latin American Conference on Human-Computer Interaction","","","","2003 (August 2003)","2005 (October 2005)","http://portal.acm.org/proceedings/clihc/","http://portal.acm.org/proceedings/clihc/archive/"
-"Conference Proceedings","CLOUD: Software Engineering Challenges of Cloud Computing","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/cloud/","http://portal.acm.org/proceedings/cloud/archive/"
-"Conference Proceedings","CMM: Connected Multimedia","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/cmm/","http://portal.acm.org/proceedings/cmm/archive/"
-"Conference Proceedings","CMSB: Computational Methods in Systems Biology","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/cmsb/","http://portal.acm.org/proceedings/cmsb/archive/"
-"Conference Proceedings","CNIKM: Complex Networks Meet Information & Knowledge Management","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/cnikm/","http://portal.acm.org/proceedings/cnikm/archive/"
-"Conference Proceedings","CNS: Communications and Networking Simulation","","","","2008 (April 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/cns/","http://portal.acm.org/proceedings/cns/archive/"
-"Conference Proceedings","COCS: Conference on Organizational Computing Systems","","","","1984 (January 1984)","1995 (August 1995)","http://portal.acm.org/proceedings/cocs/","http://portal.acm.org/proceedings/cocs/archive/"
-"Conference Proceedings","CODES: Hardware Software Codesign","","","","1994 (September 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/codes/","http://portal.acm.org/proceedings/codes/archive/"
-"Conference Proceedings","COLT: Computational Learning Theory","","","","1988 (December 1988)","1999 (July 1999)","http://portal.acm.org/proceedings/colt/","http://portal.acm.org/proceedings/colt/archive/"
-"Conference Proceedings","COM.Geo: Computing for Geospatial Research &#38; Application","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/com.geo/","http://portal.acm.org/proceedings/com.geo/archive/"
-"Conference Proceedings","COMM: Communications Architectures and Protocols","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/comm/","http://portal.acm.org/proceedings/comm/archive/"
-"Conference Proceedings","COMPUTE: COMPUTE","","","","2008 (January 2008)","2013 (August 2013)","http://portal.acm.org/proceedings/compute/","http://portal.acm.org/proceedings/compute/archive/"
-"Conference Proceedings","COMSWARE: Communication System Software and Middleware","","","","2009 (June 2009)","2011 (July 2011)","http://portal.acm.org/proceedings/comsware/","http://portal.acm.org/proceedings/comsware/archive/"
-"Conference Proceedings","COP: Context-Oriented Programming","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/cop/","http://portal.acm.org/proceedings/cop/archive/"
-"Conference Proceedings by Affiliated Organizations","CPR: Computers and People Research","","","","1962 (June 1962)","2013 (May 2013)","http://portal.acm.org/proceedings/sigcpr/","http://portal.acm.org/proceedings/sigcpr/archive/"
-"Conference Proceedings","CQL: Computers and the Quality of Life","","","","1990 (August 1990)","1996 (February 1996)","http://portal.acm.org/proceedings/cql/","http://portal.acm.org/proceedings/cql/archive/"
-"Conference Proceedings","CSAW: Computer Security Architectures","","","","2007 (November 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/csaw/","http://portal.acm.org/proceedings/csaw/archive/"
-"Conference Proceedings","CSC: Conference on Computer Science","","","","1973 (February 1973)","1996 (February 1996)","http://portal.acm.org/proceedings/csc/","http://portal.acm.org/proceedings/csc/archive/"
-"Conference Proceedings","CSCW: Computer Supported Cooperative Work","","","","1986 (December 1986)","2013 (February 2013)","http://portal.acm.org/proceedings/cscw/","http://portal.acm.org/proceedings/cscw/archive/"
-"Conference Proceedings","CSI-KDD: CyberSecurity and Intelligence Informatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/csi-kdd/","http://portal.acm.org/proceedings/csi-kdd/archive/"
-"Conference Proceedings","CSIIRW: Cyber Security and Information Intelligence Research","","","","2008 (May 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/csiirw/","http://portal.acm.org/proceedings/csiirw/archive/"
-"Conference Proceedings","CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/csssia/","http://portal.acm.org/proceedings/csssia/archive/"
-"Conference Proceedings","CSTST: Soft Computing as Transdisciplinary Science and Technology","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/cstst/","http://portal.acm.org/proceedings/cstst/archive/"
-"Conference Proceedings","CUFP: Commercial Users of Functional Programming","","","","2007 (October 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/cufp/","http://portal.acm.org/proceedings/cufp/archive/"
-"Conference Proceedings","CUU: Conference on Universal Usability","","","","2000 (November 2000)","2003 (November 2003)","http://portal.acm.org/proceedings/cuu/","http://portal.acm.org/proceedings/cuu/archive/"
-"Conference Proceedings","CVDB: Computer Vision Meets Databases","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/cvdb/","http://portal.acm.org/proceedings/cvdb/archive/"
-"Conference Proceedings","CVE: Collaborative Virtual Environments","","","","2000 (September 2000)","2002 (September 2002)","http://portal.acm.org/proceedings/cve/","http://portal.acm.org/proceedings/cve/archive/"
-"Conference Proceedings","CVSM: Comparison and Versioning of Software Models","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/cvsm/","http://portal.acm.org/proceedings/cvsm/archive/"
-"Conference Proceedings","CWIT: Women and ICT","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/cwit/","http://portal.acm.org/proceedings/cwit/archive/"
-"Conference Proceedings","CWNETS: Cognitive Wireless Networks","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/cwnets/","http://portal.acm.org/proceedings/cwnets/archive/"
-"Conference Proceedings","Casemans: Context-Awareness for Self-Managing Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CloudDB: Cloud Data Management","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/clouddb/","http://portal.acm.org/proceedings/clouddb/archive/"
-"Conference Proceedings","CoNEXT: Co-NEXT","","","","2005 (October 2005)","2013 (December 2013)","http://portal.acm.org/proceedings/conext/","http://portal.acm.org/proceedings/conext/archive/"
-"Conference Proceedings","CoRoNet: Cognitive Radio Networks","","","","2009 (September 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/coronet/","http://portal.acm.org/proceedings/coronet/archive/"
-"Conference Proceedings","CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/communicabilityms/","http://portal.acm.org/proceedings/communicabilityms/archive/"
-"Conference Proceedings","CompBio: Computational biology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/compbio/","http://portal.acm.org/proceedings/compbio/archive/"
-"Conference Proceedings","CompFrame: Component and Framework Technology in High-Performance and Scientific Computing","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/compframe/","http://portal.acm.org/proceedings/compframe/archive/"
-"Conference Proceedings","CompSysTech: Computer Systems and Technologies","","","","2000 (June 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/compsystech/","http://portal.acm.org/proceedings/compsystech/archive/"
-"Conference Proceedings","Companion: Middleware 08 Conference Companion","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/companion/","http://portal.acm.org/proceedings/companion/archive/"
-"Conference Proceedings","Creating: Creating Out of the Machine","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/creating/","http://portal.acm.org/proceedings/creating/archive/"
-"Conference Proceedings","DAC: Design Automation Conference","","","","1964 (January 1964)","2013 (May 2013)","http://portal.acm.org/proceedings/dac/","http://portal.acm.org/proceedings/dac/archive/"
-"Conference Proceedings","DADC: Data-aware Distributed Computing","","","","2008 (June 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/dadc/","http://portal.acm.org/proceedings/dadc/archive/"
-"Conference Proceedings","DAMP: Declarative Aspects of Multicore Programming","","","","2007 (January 2007)","2012 (January 2012)","http://portal.acm.org/proceedings/damp/","http://portal.acm.org/proceedings/damp/archive/"
-"Conference Proceedings","DARE: Designing Augmented Reality Environments","","","","2000 (April 2000)","2013 (November 2013)","http://portal.acm.org/proceedings/dare/","http://portal.acm.org/proceedings/dare/archive/"
-"Conference Proceedings","DAS: Document Analysis Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/das/","http://portal.acm.org/proceedings/das/archive/"
-"Conference Proceedings","DATACOMM: Data Communications and Data Networks","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/datacomm/","http://portal.acm.org/proceedings/datacomm/archive/"
-"Conference Proceedings","DATE: Design, Automation and Test in Europe","","","","1998 (February 1998)","2013 (March 2013)","http://portal.acm.org/proceedings/date/","http://portal.acm.org/proceedings/date/archive/"
-"Conference Proceedings","DBTest: Testing Database Systems","","","","2008 (June 2008)","2013 (June 2013)","http://portal.acm.org/proceedings/dbtest/","http://portal.acm.org/proceedings/dbtest/archive/"
-"Conference Proceedings","DCOSS:  Distributed Computing in Sensor Systems","","","","2007 (June 2007)","2010 (June 2010)","http://portal.acm.org/proceedings/dcoss/","http://portal.acm.org/proceedings/dcoss/archive/"
-"Conference Proceedings","DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dd4lcci/","http://portal.acm.org/proceedings/dd4lcci/archive/"
-"Conference Proceedings","DDDM: Domain Driven Data Mining","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/dddm/","http://portal.acm.org/proceedings/dddm/archive/"
-"Conference Proceedings","DEAS: Design and Evolution of Autonomic Application Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/deas/","http://portal.acm.org/proceedings/deas/archive/"
-"Conference Proceedings","DEBS: Distributed Event-Based Systems","","","","2003 (June 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/debs/","http://portal.acm.org/proceedings/debs/archive/"
-"Conference Proceedings","DEECS: Data Enginering issues in E-commerce and Services","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/deecs/","http://portal.acm.org/proceedings/deecs/archive/"
-"Conference Proceedings","DEFECTS: Defects in Large Software Systems","","","","2008 (July 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/defects/","http://portal.acm.org/proceedings/defects/archive/"
-"Conference Proceedings","DESIRE: Creativity and Innovation in Design","","","","2010 (August 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/desire/","http://portal.acm.org/proceedings/desire/archive/"
-"Conference Proceedings","DESRIST: Design Science Research in Information Systems and Technology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/desrist/","http://portal.acm.org/proceedings/desrist/archive/"
-"Conference Proceedings","DIALM: DIALM","","","","1999 (August 1999)","2010 (September 2010)","http://portal.acm.org/proceedings/dialm/","http://portal.acm.org/proceedings/dialm/archive/"
-"Conference Proceedings","DIM: Digital Identity Management","","","","2005 (November 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/dim/","http://portal.acm.org/proceedings/dim/archive/"
-"Conference Proceedings","DIMEA: Digital Interactive Media in Entertainment and Arts","","","","2007 (September 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/dimea/","http://portal.acm.org/proceedings/dimea/archive/"
-"Conference Proceedings","DIN: Dynamic Interconnection of Networks","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/din/","http://portal.acm.org/proceedings/din/archive/"
-"Conference Proceedings","DIS: Designing Interactive Systems","","","","1995 (August 1995)","2012 (June 2012)","http://portal.acm.org/proceedings/dis/","http://portal.acm.org/proceedings/dis/archive/"
-"Conference Proceedings","DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/diwans/","http://portal.acm.org/proceedings/diwans/archive/"
-"Conference Proceedings","DL: Digital Libraries","","","","1996 (April 1996)","2000 (June 2000)","http://portal.acm.org/proceedings/dl/","http://portal.acm.org/proceedings/dl/archive/"
-"Conference Proceedings","DLS: Dynamic Languages","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/dls/","http://portal.acm.org/proceedings/dls/archive/"
-"Conference Proceedings","DMG: Data Mining for Geoinformatics","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/dmg/","http://portal.acm.org/proceedings/dmg/archive/"
-"Conference Proceedings","DMKD: Research Issues in Data Mining and Knowledge Discovery","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/dmkd/","http://portal.acm.org/proceedings/dmkd/archive/"
-"Conference Proceedings","DMMT: Data Mining using Matrices and Tensors","","","","2001 (July 2001)","2009 (June 2009)","http://portal.acm.org/proceedings/dmmt/","http://portal.acm.org/proceedings/dmmt/archive/"
-"Conference Proceedings","DMSN: Data Management for Sensor Networks","","","","2004 (August 2004)","2010 (September 2010)","http://portal.acm.org/proceedings/dmsn/","http://portal.acm.org/proceedings/dmsn/archive/"
-"Conference Proceedings","DMSSP: Data Mining Standards, Services and Platforms","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/dmssp/","http://portal.acm.org/proceedings/dmssp/archive/"
-"Conference Proceedings","DO: Distributed Objects","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/do/","http://portal.acm.org/proceedings/do/archive/"
-"Conference Proceedings","DOCPROCS: Document Processing Systems","","","","1988 (January 2000)","1988 (January 2000)","http://portal.acm.org/proceedings/docprocs/","http://portal.acm.org/proceedings/docprocs/archive/"
-"Conference Proceedings","DOLAP: Data Warehousing and OLAP","","","","1998 (November 1998)","2013 (October 2013)","http://portal.acm.org/proceedings/dolap/","http://portal.acm.org/proceedings/dolap/archive/"
-"Conference Proceedings","DOSTA: Domain Specific Approaches to Software Test Automation","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/dosta/","http://portal.acm.org/proceedings/dosta/archive/"
-"Conference Proceedings","DPDS: Databases in Parallel and Distributed Systems","","","","1990 (July 1990)","1988 (January 2000)","http://portal.acm.org/proceedings/dpds/","http://portal.acm.org/proceedings/dpds/archive/"
-"Conference Proceedings","DPPI: Designing Pleasurable Products and Interfaces","","","","2003 (June 2003)","2013 (September 2013)","http://portal.acm.org/proceedings/dppi/","http://portal.acm.org/proceedings/dppi/archive/"
-"Conference Proceedings","DRM: Digital Rights Management","","","","2003 (October 2003)","2011 (October 2011)","http://portal.acm.org/proceedings/drm/","http://portal.acm.org/proceedings/drm/archive/"
-"Conference Proceedings","DS-RT: Distributed Simulation and Real Time Applications","","","","2000 (August 2000)","2012 (October 2012)","http://portal.acm.org/proceedings/ds-rt/","http://portal.acm.org/proceedings/ds-rt/archive/"
-"Conference Proceedings","DSAL: Domain-Specific Aspect Languages","","","","2007 (March 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/dsal/","http://portal.acm.org/proceedings/dsal/archive/"
-"Conference Proceedings","DSL: Domain-Specific Languages","","","","1999 (December 1999)","1999 (December 1999)","http://portal.acm.org/proceedings/dsl/","http://portal.acm.org/proceedings/dsl/archive/"
-"Conference Proceedings","DSM: Doctoral Symposium on Middleware","","","","2004 (October 2004)","2012 (October 2012)","http://portal.acm.org/proceedings/dsm/","http://portal.acm.org/proceedings/dsm/archive/"
-"Conference Proceedings","DSMM: Data-Intensive Software Management and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/dsmm/","http://portal.acm.org/proceedings/dsmm/archive/"
-"Conference Proceedings","DTMBIO: Data and Text Mining in Biomedical Informatics","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/dtmbio/","http://portal.acm.org/proceedings/dtmbio/archive/"
-"Conference Proceedings","DUX: Designing for User eXperiences","","","","2003 (June 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/dux/","http://portal.acm.org/proceedings/dux/archive/"
-"Conference Proceedings","DYADEM-FTS: Dependeability Models for Fault-Tolerant Systems","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dyadem-fts/","http://portal.acm.org/proceedings/dyadem-fts/archive/"
-"Conference Proceedings","DYNAMO: Dynamic and Adaptive Compilation and Optimization","","","","2000 (January 2000)","2000 (January 2000)","http://portal.acm.org/proceedings/dynamo/","http://portal.acm.org/proceedings/dynamo/archive/"
-"Conference Proceedings","DaGreS: Data Grids for eScience","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/dagres/","http://portal.acm.org/proceedings/dagres/archive/"
-"Conference Proceedings","DaMaP: Data Management in Peer-to-Peer Systems","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/damap/","http://portal.acm.org/proceedings/damap/archive/"
-"Conference Proceedings","DaMoN: Data Management on New Hardware","","","","2005 (June 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/damon/","http://portal.acm.org/proceedings/damon/archive/"
-"Conference Proceedings","DataX: Database Technologies for Handling XML Information on the Web","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/datax/","http://portal.acm.org/proceedings/datax/archive/"
-"Conference Proceedings","DocEng: Document Engineering","","","","2001 (November 2001)","2013 (September 2013)","http://portal.acm.org/proceedings/doceng/","http://portal.acm.org/proceedings/doceng/archive/"
-"Conference Proceedings","Dutch HCI: Dutch directions in HCI","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/dutchhci/","http://portal.acm.org/proceedings/dutchhci/archive/"
-"Conference Proceedings","E-WIND: Experimental Approaches to Wireless Network Design and Analysis","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/e-wind/","http://portal.acm.org/proceedings/e-wind/archive/"
-"Conference Proceedings","EA: Early Aspects","","","","2006 (May 2006)","2011 (March 2011)","http://portal.acm.org/proceedings/ea/","http://portal.acm.org/proceedings/ea/archive/"
-"Conference Proceedings","EATIS: Euro American Conference on Telematics and Information Systems","","","","2007 (May 2007)","2012 (May 2012)","http://portal.acm.org/proceedings/eatis/","http://portal.acm.org/proceedings/eatis/archive/"
-"Conference Proceedings","EC: Electronic Commerce","","","","1999 (November 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/ec/","http://portal.acm.org/proceedings/ec/archive/"
-"Conference Proceedings","ECA: Ethics in the Computer Age","","","","1994 (November 1994)","1994 (November 1994)","http://portal.acm.org/proceedings/eca/","http://portal.acm.org/proceedings/eca/archive/"
-"Conference Proceedings","ECCE: European Conference on Cognitive Ergonomics","","","","2006 (September 2006)","2013 (August 2013)","http://portal.acm.org/proceedings/ecce/","http://portal.acm.org/proceedings/ecce/archive/"
-"Conference Proceedings","ECHT: European Conference on Hypermedia Technology","","","","1992 (November 1992)","1994 (September 1994)","http://portal.acm.org/proceedings/echt/","http://portal.acm.org/proceedings/echt/archive/"
-"Conference Proceedings","ECIR: European Conference on Information Retrieval","","","","2008 (March 2008)","2012 (April 2012)","http://portal.acm.org/proceedings/ecir/","http://portal.acm.org/proceedings/ecir/archive/"
-"Conference Proceedings","ECMFA-TW: ECMFA Traceability Workshop","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/ecmfa-tw/","http://portal.acm.org/proceedings/ecmfa-tw/archive/"
-"Conference Proceedings","ECOOP: European Conference on Object-Oriented Programming","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/ecoop/","http://portal.acm.org/proceedings/ecoop/archive/"
-"Conference Proceedings","ECSA: European Conference on Software Architecture","","","","2010 (August 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/ecsa/","http://portal.acm.org/proceedings/ecsa/archive/"
-"Conference Proceedings","EDBT: Extending Database Technology","","","","2008 (March 2008)","2013 (March 2013)","http://portal.acm.org/proceedings/edbt/","http://portal.acm.org/proceedings/edbt/archive/"
-"Conference Proceedings","EDSER: Economics-Driven Software Engineering Research","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/edser/","http://portal.acm.org/proceedings/edser/archive/"
-"Conference Proceedings","EDT: Emerging Displays Technologies","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/edt/","http://portal.acm.org/proceedings/edt/archive/"
-"Conference Proceedings","EDTC: European Conference on Design and Test","","","","1995 (March 1995)","1997 (March 1997)","http://portal.acm.org/proceedings/edtc/","http://portal.acm.org/proceedings/edtc/archive/"
-"Conference Proceedings","EESR: End-to-end, Sense-and-respond Systems, Applications and Services","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/eesr/","http://portal.acm.org/proceedings/eesr/archive/"
-"Conference Proceedings","EFTS: Engineering Fault Tolerant Systems","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/efts/","http://portal.acm.org/proceedings/efts/archive/"
-"Conference Proceedings","EGPGV: Eurographics Workshop on Parallel Graphics and Visualization","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/egpgv/","http://portal.acm.org/proceedings/egpgv/archive/"
-"Conference Proceedings","EGRW: Eurographics Workshop on Rendering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/egrw/","http://portal.acm.org/proceedings/egrw/archive/"
-"Conference Proceedings","EGVE: Virtual Environments","","","","2002 (May 2002)","2007 (July 2007)","http://portal.acm.org/proceedings/egve/","http://portal.acm.org/proceedings/egve/archive/"
-"Conference Proceedings","EICS: Engineering Interactive Computing Systems","","","","2009 (July 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/eics/","http://portal.acm.org/proceedings/eics/archive/"
-"Conference Proceedings","ELW: European Lisp Workshop","","","","2009 (July 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/elw/","http://portal.acm.org/proceedings/elw/archive/"
-"Conference Proceedings","EMSOFT: Embedded Software","","","","2004 (September 2004)","2013 (September 2013)","http://portal.acm.org/proceedings/emsoft/","http://portal.acm.org/proceedings/emsoft/archive/"
-"Conference Proceedings","EOMAS: Enterprises & Organizational Modeling and Simulation","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/eomas/","http://portal.acm.org/proceedings/eomas/archive/"
-"Conference Proceedings","EPIA: Progress in Artificial Intelligence","","","","2007 (December 2007)","2007 (December 2007)","http://portal.acm.org/proceedings/epia/","http://portal.acm.org/proceedings/epia/archive/"
-"Conference Proceedings","ERLANG: ERLANG","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/erlang/","http://portal.acm.org/proceedings/erlang/archive/"
-"Conference Proceedings","ESAIR: Exploiting Semantic Annotations in Information Retrieval","","","","2009 (February 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/esair/","http://portal.acm.org/proceedings/esair/archive/"
-"Conference Proceedings","ESC: Economics of Software and Computation","","","","2007 (May 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/esc/","http://portal.acm.org/proceedings/esc/archive/"
-"Conference Proceedings","ESEC/FSE: European Software Engineering Conference","","","","1997 (November 1997)","2013 (August 2013)","http://portal.acm.org/proceedings/esec/fse/","http://portal.acm.org/proceedings/esec/fse/archive/"
-"Conference Proceedings","ESEM: Empirical Software Engineering and Measurement","","","","2007 (September 2007)","2012 (September 2012)","http://portal.acm.org/proceedings/esem/","http://portal.acm.org/proceedings/esem/archive/"
-"Conference Proceedings","ESP: Empirical Studies of Programmers","","","","1997 (October 1997)","1997 (October 1997)","http://portal.acm.org/proceedings/esp/","http://portal.acm.org/proceedings/esp/archive/"
-"Conference Proceedings","ESSPE: Engineering of Software Services for Pervasive Environments","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/esspe/","http://portal.acm.org/proceedings/esspe/archive/"
-"Conference Proceedings","ESTMED: Embedded Systems for Real Time Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/estmed/","http://portal.acm.org/proceedings/estmed/archive/"
-"Conference Proceedings","ETOOS: Testing Object-Oriented Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/etoos/","http://portal.acm.org/proceedings/etoos/archive/"
-"Conference Proceedings","ETP: Effective Telepresence","","","","2003 (November 2003)","2004 (October 2004)","http://portal.acm.org/proceedings/etp/","http://portal.acm.org/proceedings/etp/archive/"
-"Conference Proceedings","ETRA: Eye Tracking Research and Applications","","","","2000 (November 2000)","2012 (March 2012)","http://portal.acm.org/proceedings/etra/","http://portal.acm.org/proceedings/etra/archive/"
-"Conference Proceedings","EURO-DAC: European Design Automation","","","","1990 (March 1990)","1996 (September 1996)","http://portal.acm.org/proceedings/euro-dac/","http://portal.acm.org/proceedings/euro-dac/archive/"
-"Conference Proceedings","EUROSEC: European Workshop on System Security","","","","2008 (March 2008)","2011 (April 2011)","http://portal.acm.org/proceedings/eurosec/","http://portal.acm.org/proceedings/eurosec/archive/"
-"Conference Proceedings","EUSAI: European Union symposium on Ambient intelligence","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/eusai/","http://portal.acm.org/proceedings/eusai/archive/"
-"Conference Proceedings","EW: ACM SIGOPS European Workshop","","","","1985 (January 1985)","2004 (September 2004)","http://portal.acm.org/proceedings/ew/","http://portal.acm.org/proceedings/ew/archive/"
-"Conference Proceedings","EiMM: Events in Multimedia","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/eimm/","http://portal.acm.org/proceedings/eimm/archive/"
-"Conference Proceedings","EmNets: Embedded Networked Sensors","","","","2005 (April 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/emnets/","http://portal.acm.org/proceedings/emnets/archive/"
-"Conference Proceedings","Emme: Educational Multimedia and Multimedia Education","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/emme/","http://portal.acm.org/proceedings/emme/archive/"
-"Conference Proceedings","Ergo'IA: Ergonomie et Informatique Avancee Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/ergo'ia/","http://portal.acm.org/proceedings/ergo'ia/archive/"
-"Conference Proceedings","EuroITV: Interactive TV &#38; Video","","","","2007 (May 2007)","2013 (June 2013)","http://portal.acm.org/proceedings/euroitv/","http://portal.acm.org/proceedings/euroitv/archive/"
-"Conference Proceedings","EuroSys: European Conference on Computer Systems","","","","2006 (April 2006)","2013 (April 2013)","http://portal.acm.org/proceedings/eurosys/","http://portal.acm.org/proceedings/eurosys/archive/"
-"Conference Proceedings","ExpCS: Experimental Computer Science","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/expcs/","http://portal.acm.org/proceedings/expcs/archive/"
-"Conference Proceedings","FAA: Facial Analysis and Animation","","","","2010 (October 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/faa/","http://portal.acm.org/proceedings/faa/archive/"
-"Conference Proceedings","FAST: File and Storage Technologies","","","","2005 (December 2005)","2012 (February 2012)","http://portal.acm.org/proceedings/fast/","http://portal.acm.org/proceedings/fast/archive/"
-"Conference Proceedings","FDG: Foundations of Digital Games","","","","2009 (April 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/fdg/","http://portal.acm.org/proceedings/fdg/archive/"
-"Conference Proceedings","FDNA: Future Directions in Network Architectures","","","","2003 (August 2003)","2004 (August 2004)","http://portal.acm.org/proceedings/fdna/","http://portal.acm.org/proceedings/fdna/archive/"
-"Conference Proceedings","FDPE: Functional and Declarative Progamming in Education","","","","2005 (September 2005)","2008 (September 2008)","http://portal.acm.org/proceedings/fdpe/","http://portal.acm.org/proceedings/fdpe/archive/"
-"Conference Proceedings","FIT: Frontiers of Information Technology","","","","2009 (December 2009)","2010 (December 2010)","http://portal.acm.org/proceedings/fit/","http://portal.acm.org/proceedings/fit/archive/"
-"Conference Proceedings","FLOSS: Emerging Trends in Free/Libre/Open Source Software Research and Development","","","","2007 (May 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/floss/","http://portal.acm.org/proceedings/floss/archive/"
-"Conference Proceedings","FMICS: Formal Methods for Industrial Critical Systems","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/fmics/","http://portal.acm.org/proceedings/fmics/archive/"
-"Conference Proceedings","FMSE: Formal Methods in Security Engineering","","","","2003 (October 2003)","2008 (October 2008)","http://portal.acm.org/proceedings/fmse/","http://portal.acm.org/proceedings/fmse/archive/"
-"Conference Proceedings","FMSP: Formal Methods in Software Practice","","","","1998 (March 1998)","2000 (August 2000)","http://portal.acm.org/proceedings/fmsp/","http://portal.acm.org/proceedings/fmsp/archive/"
-"Conference Proceedings","FOAL: Foundations of Aspect-Oriented Languages","","","","2007 (March 2007)","2013 (March 2013)","http://portal.acm.org/proceedings/foal/","http://portal.acm.org/proceedings/foal/archive/"
-"Conference Proceedings","FOGA: Foundations of Genetic Algorithms","","","","2007 (January 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/foga/","http://portal.acm.org/proceedings/foga/archive/"
-"Conference Proceedings","FOIS: Formal Ontology in Information Systems","","","","2001 (October 2001)","2001 (October 2001)","http://portal.acm.org/proceedings/fois/","http://portal.acm.org/proceedings/fois/archive/"
-"Conference Proceedings","FORTH: FORTH","","","","1989 (January 1989)","1992 (December 1993)","http://portal.acm.org/proceedings/forth/","http://portal.acm.org/proceedings/forth/archive/"
-"Conference Proceedings","FOSD: Feature-Oriented Software Development","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/fosd/","http://portal.acm.org/proceedings/fosd/archive/"
-"Conference Proceedings","FOSE: Future of Software Engineering","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/fose/","http://portal.acm.org/proceedings/fose/archive/"
-"Conference Proceedings","FOWANC: Foundations of Wireless Ad-Hoc and Sensor Networking and Computing","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/fowanc/","http://portal.acm.org/proceedings/fowanc/archive/"
-"Conference Proceedings","FPCA: Functional Programming Languages and Computer Architecture","","","","1981 (October 1981)","1995 (October 1995)","http://portal.acm.org/proceedings/fpca/","http://portal.acm.org/proceedings/fpca/archive/"
-"Conference Proceedings","FPGA: Field Programmable Gate Arrays","","","","1995 (February 1995)","2013 (February 2013)","http://portal.acm.org/proceedings/fpga/","http://portal.acm.org/proceedings/fpga/archive/"
-"Conference Proceedings","FPGAworld: FPGAworld","","","","2009 (September 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/fpgaworld/","http://portal.acm.org/proceedings/fpgaworld/archive/"
-"Conference Proceedings","FSEDS: Foundations of Software Engineering Doctoral Symposium","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/fseds/","http://portal.acm.org/proceedings/fseds/archive/"
-"Conference Proceedings","FSEN: Fundamentals of Software Engineering","","","","2007 (April 2007)","2007 (April 2007)","http://portal.acm.org/proceedings/fsen/","http://portal.acm.org/proceedings/fsen/archive/"
-"Conference Proceedings","FSM: Functional Size Measurement","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/fsm/","http://portal.acm.org/proceedings/fsm/archive/"
-"Conference Proceedings","FTfJP: Formal Techniques for Java-like Programs","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/ftfjp/","http://portal.acm.org/proceedings/ftfjp/archive/"
-"Conference Proceedings","FeBiD: International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/febid/","http://portal.acm.org/proceedings/febid/archive/"
-"Conference Proceedings","FoSER: Future of Software Engineering Research ","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/foser/","http://portal.acm.org/proceedings/foser/archive/"
-"Conference Proceedings","Fun and Games: Fun and Games","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/funandgames/","http://portal.acm.org/proceedings/funandgames/archive/"
-"Conference Proceedings","Future Play: Future Play","","","","2007 (November 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/futureplay/","http://portal.acm.org/proceedings/futureplay/archive/"
-"Conference Proceedings","GCE: Grid Computing Environments","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/gce/","http://portal.acm.org/proceedings/gce/archive/"
-"Conference Proceedings","GCM: Green Computing","","","","2010 (November 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gcm/","http://portal.acm.org/proceedings/gcm/archive/"
-"Conference Proceedings","GDCSE: Game Development in Computer Science Education","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/gdcse/","http://portal.acm.org/proceedings/gdcse/archive/"
-"Conference Proceedings","GEC: Genetic and Evolutionary Computation","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/gec/","http://portal.acm.org/proceedings/gec/archive/"
-"Conference Proceedings","GECCO: Genetic and Evolutionary Computation Conference","","","","1996 (July 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/gecco/","http://portal.acm.org/proceedings/gecco/archive/"
-"Conference Proceedings","GH: Graphics Hardware","","","","1997 (August 1997)","2008 (June 2008)","http://portal.acm.org/proceedings/gh/","http://portal.acm.org/proceedings/gh/archive/"
-"Conference Proceedings","GI: Graphics Interface","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/gi/","http://portal.acm.org/proceedings/gi/archive/"
-"Conference Proceedings","GIR: Geographic Information Retrieval","","","","2005 (November 2005)","2010 (February 2010)","http://portal.acm.org/proceedings/gir/","http://portal.acm.org/proceedings/gir/archive/"
-"Conference Proceedings","GIS: Geographic Information Systems","","","","1996 (November 1996)","2012 (November 2012)","http://portal.acm.org/proceedings/gis/","http://portal.acm.org/proceedings/gis/archive/"
-"Conference Proceedings","GLSVLSI: Great Lakes Symposium on VLSI","","","","1995 (March 1995)","2013 (May 2013)","http://portal.acm.org/proceedings/glsvlsi/","http://portal.acm.org/proceedings/glsvlsi/archive/"
-"Conference Proceedings","GMAC: Grids Meets Autonomic Computing","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/gmac/","http://portal.acm.org/proceedings/gmac/archive/"
-"Conference Proceedings","GMW: Grid Monitoring","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/gmw/","http://portal.acm.org/proceedings/gmw/archive/"
-"Conference Proceedings","GPCE: Generative Programming and Component Engineering","","","","2002 (October 2002)","2013 (October 2013)","http://portal.acm.org/proceedings/gpce/","http://portal.acm.org/proceedings/gpce/archive/"
-"Conference Proceedings","GPGPU: General Purpose Processing on Graphics Processing Units","","","","2009 (March 2009)","2012 (March 2012)","http://portal.acm.org/proceedings/gpgpu/","http://portal.acm.org/proceedings/gpgpu/archive/"
-"Conference Proceedings","GRAPHITE: Computer Graphics and Interactive Techniques in Australia and South East Asia","","","","2003 (February 2003)","2007 (December 2007)","http://portal.acm.org/proceedings/graphite/","http://portal.acm.org/proceedings/graphite/archive/"
-"Conference Proceedings","GRID: Grid Computing","","","","2003 (November 2003)","2008 (September 2008)","http://portal.acm.org/proceedings/grid/","http://portal.acm.org/proceedings/grid/archive/"
-"Conference Proceedings","GROUP: Supporting Group Work","","","","1997 (November 1997)","2012 (October 2012)","http://portal.acm.org/proceedings/group/","http://portal.acm.org/proceedings/group/archive/"
-"Conference Proceedings","GRaMoT: Graph and Model Transformations","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/gramot/","http://portal.acm.org/proceedings/gramot/archive/"
-"Conference Proceedings","GSD: Global Software Development for the Practitioner","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gsd/","http://portal.acm.org/proceedings/gsd/archive/"
-"Conference Proceedings","GTIP: Governance of Technology, Information, and Policies ","","","","2010 (December 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gtip/","http://portal.acm.org/proceedings/gtip/archive/"
-"Conference Proceedings","GaMMa: Global Integrated Model Management","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gamma/","http://portal.acm.org/proceedings/gamma/archive/"
-"Conference Proceedings","GameNets: Game Theory for Communications and Networks","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/gamenets/","http://portal.acm.org/proceedings/gamenets/archive/"
-"Conference Proceedings","Green Networking: Green networking","","","","2010 (August 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/greennetworking/","http://portal.acm.org/proceedings/greennetworking/archive/"
-"Conference Proceedings","GridNets: Networks for Grid Applications","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/gridnets/","http://portal.acm.org/proceedings/gridnets/archive/"
-"Conference Proceedings","HAS: Haptic User Interfaces in Ambient Media Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/has/","http://portal.acm.org/proceedings/has/archive/"
-"Conference Proceedings","HCC: Human-Centered Computing","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/hcc/","http://portal.acm.org/proceedings/hcc/archive/"
-"Conference Proceedings","HCM: Human-Centered Multimedia","","","","2006 (October 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/hcm/","http://portal.acm.org/proceedings/hcm/archive/"
-"Conference Proceedings","HCOMP: Human Computation","","","","2009 (June 2009)","2010 (July 2010)","http://portal.acm.org/proceedings/hcomp/","http://portal.acm.org/proceedings/hcomp/archive/"
-"Conference Proceedings","HDP: Hardcopy Document Processing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/hdp/","http://portal.acm.org/proceedings/hdp/archive/"
-"Conference Proceedings","HIKM: Healthcare Information and Knowledge Management","","","","2006 (November 2006)","2010 (January 2010)","http://portal.acm.org/proceedings/hikm/","http://portal.acm.org/proceedings/hikm/archive/"
-"Conference Proceedings","HLLCA: High-Level-Language Computer Architecture","","","","1973 (November 1973)","1973 (November 1973)","http://portal.acm.org/proceedings/hllca/","http://portal.acm.org/proceedings/hllca/archive/"
-"Conference Proceedings","HLPP: High-level parallel programming and applications","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/hlpp/","http://portal.acm.org/proceedings/hlpp/archive/"
-"Conference Proceedings","HOPL: History of Programming Languages","","","","1993 (April 1993)","2007 (June 2007)","http://portal.acm.org/proceedings/hopl/","http://portal.acm.org/proceedings/hopl/archive/"
-"Conference Proceedings","HPCVirt: System-level Virtualization for High Performance Computing","","","","2008 (March 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/hpcvirt/","http://portal.acm.org/proceedings/hpcvirt/archive/"
-"Conference Proceedings","HPDC: High Performance Distributed Computing","","","","1995 (August 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/hpdc/","http://portal.acm.org/proceedings/hpdc/archive/"
-"Conference Proceedings","HPDGIS: High Performance and Distributed Geographic Information Systems ","","","","2010 (November 2010)","2011 (November 2011)","http://portal.acm.org/proceedings/hpdgis/","http://portal.acm.org/proceedings/hpdgis/archive/"
-"Conference Proceedings","HPG: High Perfomance Graphics","","","","2009 (August 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/hpg/","http://portal.acm.org/proceedings/hpg/archive/"
-"Conference Proceedings","HPRCTA: High-Performance Reconfigurable Computing Technology and Applications","","","","2007 (November 2007)","2009 (November 2009)","http://portal.acm.org/proceedings/hprcta/","http://portal.acm.org/proceedings/hprcta/archive/"
-"Conference Proceedings","HPW: History of Personal Workstations","","","","1986 (January 1986)","1986 (January 1986)","http://portal.acm.org/proceedings/hpw/","http://portal.acm.org/proceedings/hpw/archive/"
-"Conference Proceedings","HRI: Human-Robot Interaction","","","","2006 (March 2006)","2013 (March 2013)","http://portal.acm.org/proceedings/hri/","http://portal.acm.org/proceedings/hri/archive/"
-"Conference Proceedings","HSCC: Hybrid Systems: Computation and Control","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/hscc/","http://portal.acm.org/proceedings/hscc/archive/"
-"Conference Proceedings","HSNC: History of Scientific and Numeric Computation","","","","1987 (October 1987)","1987 (October 1987)","http://portal.acm.org/proceedings/hsnc/","http://portal.acm.org/proceedings/hsnc/archive/"
-"Conference Proceedings","HSSE: Human and Social Factors of Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/hsse/","http://portal.acm.org/proceedings/hsse/archive/"
-"Conference Proceedings","HT: Hypertext and hypermedia","","","","1987 (November 1987)","2013 (May 2013)","http://portal.acm.org/proceedings/ht/","http://portal.acm.org/proceedings/ht/archive/"
-"Conference Proceedings","Haskell: Haskell","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/haskell/","http://portal.acm.org/proceedings/haskell/archive/"
-"Conference Proceedings","HealthNet: Networking Support for Health Care and Assisted Living Environments","","","","2007 (June 2007)","2008 (June 2008)","http://portal.acm.org/proceedings/healthnet/","http://portal.acm.org/proceedings/healthnet/archive/"
-"Conference Proceedings","HetRec: Information Heterogeneity and Fusion in Recommender Systems ","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/hetrec/","http://portal.acm.org/proceedings/hetrec/archive/"
-"Conference Proceedings","HeterSanet: Heterogeneous Sensor and Actor Networks","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/hetersanet/","http://portal.acm.org/proceedings/hetersanet/archive/"
-"Conference Proceedings","HiPC: High Performance Computing ","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/hipc/","http://portal.acm.org/proceedings/hipc/archive/"
-"Conference Proceedings","HomeNets: Home Networks","","","","2010 (September 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/homenets/","http://portal.acm.org/proceedings/homenets/archive/"
-"Conference Proceedings","HotMobile: Mobile Computing Systems and Applications","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/hotmobile/","http://portal.acm.org/proceedings/hotmobile/archive/"
-"Conference Proceedings","HotPlanet: Hot Topics of Planet-Scale Mobility Measurements","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/hotplanet/","http://portal.acm.org/proceedings/hotplanet/archive/"
-"Conference Proceedings","HotSWUp: Hot Topics in Software Upgrades","","","","2008 (October 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/hotswup/","http://portal.acm.org/proceedings/hotswup/archive/"
-"Conference Proceedings","Hotnets: Hot Topics in Networks","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/hotnets/","http://portal.acm.org/proceedings/hotnets/archive/"
-"Conference Proceedings","HuCom: Human Factors and Computational Models in Negotiation","","","","2009 (December 2008)","2009 (December 2008)","http://portal.acm.org/proceedings/hucom/","http://portal.acm.org/proceedings/hucom/archive/"
-"Conference Proceedings","I-SEMANTICS: Semantic Systems","","","","2010 (September 2010)","2013 (September 2013)","http://portal.acm.org/proceedings/i-semantics/","http://portal.acm.org/proceedings/i-semantics/archive/"
-"Conference Proceedings","I3D: Interactive 3D Graphics and Games","","","","1987 (January 1987)","2013 (March 2013)","http://portal.acm.org/proceedings/i3d/","http://portal.acm.org/proceedings/i3d/archive/"
-"Conference Proceedings","IAT: Intelligent Agent Technology","","","","2006 (December 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/iat/","http://portal.acm.org/proceedings/iat/archive/"
-"Conference Proceedings","ICAC3: Advances in Computing, Communication and Control","","","","2009 (January 2009)","2009 (January 2009)","http://portal.acm.org/proceedings/icac3/","http://portal.acm.org/proceedings/icac3/archive/"
-"Conference Proceedings","ICAC: Autonomic Computing","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/icac/","http://portal.acm.org/proceedings/icac/archive/"
-"Conference Proceedings","ICAIL: International Conference on Artificial Intelligence and Law","","","","1987 (December 1987)","2013 (June 2013)","http://portal.acm.org/proceedings/icail/","http://portal.acm.org/proceedings/icail/archive/"
-"Conference Proceedings","ICAIT: Advanced Infocomm Technology","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/icait/","http://portal.acm.org/proceedings/icait/archive/"
-"Conference Proceedings","ICAT: Augmented Tele-existence","","","","2005 (December 2005)","2005 (December 2005)","http://portal.acm.org/proceedings/icat/","http://portal.acm.org/proceedings/icat/archive/"
-"Conference Proceedings","ICCAD: International Conference on Computer-Aided Design","","","","1992 (November 1992)","2012 (November 2012)","http://portal.acm.org/proceedings/iccad/","http://portal.acm.org/proceedings/iccad/archive/"
-"Conference Proceedings","ICCPS: Cyber-Physical Systems","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/iccps/","http://portal.acm.org/proceedings/iccps/archive/"
-"Conference Proceedings","ICDL: International Conference on Dynamic Languages","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/icdl/","http://portal.acm.org/proceedings/icdl/archive/"
-"Conference Proceedings","ICDSC: Distributed Smart Cameras","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/icdsc/","http://portal.acm.org/proceedings/icdsc/archive/"
-"Conference Proceedings","ICDT: Database Theory","","","","2009 (March 2009)","2013 (March 2013)","http://portal.acm.org/proceedings/icdt/","http://portal.acm.org/proceedings/icdt/archive/"
-"Conference Proceedings","ICE: Information and Computation Economies","","","","1998 (October 1998)","1998 (October 1998)","http://portal.acm.org/proceedings/ice/","http://portal.acm.org/proceedings/ice/archive/"
-"Conference Proceedings","ICEC: International Conference on Electronic Commerce","","","","2003 (September 2003)","2012 (August 2012)","http://portal.acm.org/proceedings/icec/","http://portal.acm.org/proceedings/icec/archive/"
-"Conference Proceedings","ICEGOV: International Conference on Theory and Practice of Electronic Governance","","","","2007 (December 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/icegov/","http://portal.acm.org/proceedings/icegov/archive/"
-"Conference Proceedings","ICER: International Computing Education Research Workshop","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/icer/","http://portal.acm.org/proceedings/icer/archive/"
-"Conference Proceedings","ICFP: International Conference on Functional Programmuing","","","","1996 (June 1996)","2013 (September 2013)","http://portal.acm.org/proceedings/icfp/","http://portal.acm.org/proceedings/icfp/archive/"
-"Conference Proceedings","ICHIT: International Conference on Hybrid Information Technology","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/ichit/","http://portal.acm.org/proceedings/ichit/archive/"
-"Conference Proceedings","ICIC: Intercultural Collaboration","","","","2010 (August 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/icic/","http://portal.acm.org/proceedings/icic/archive/"
-"Conference Proceedings","ICIMCS: Internet Multimedia Computing and Service","","","","2009 (November 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/icimcs/","http://portal.acm.org/proceedings/icimcs/archive/"
-"Conference Proceedings","ICIS: International Conference on Computer and Information Science","","","","1989 (December 1989)","2009 (November 2009)","http://portal.acm.org/proceedings/icis/","http://portal.acm.org/proceedings/icis/archive/"
-"Conference Proceedings","ICMI: International Conference on Multimodal Interfaces","","","","2002 (October 2002)","2013 (December 2013)","http://portal.acm.org/proceedings/icmi/","http://portal.acm.org/proceedings/icmi/archive/"
-"Conference Proceedings","ICML: International Conference on Machine Learning","","","","2004 (July 2004)","2009 (June 2009)","http://portal.acm.org/proceedings/icml/","http://portal.acm.org/proceedings/icml/archive/"
-"Conference Proceedings","ICOOOLPS: Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/icooolps/","http://portal.acm.org/proceedings/icooolps/archive/"
-"Conference Proceedings","ICPS: Pervasive Services","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/icps/","http://portal.acm.org/proceedings/icps/archive/"
-"Conference Proceedings","ICPW: International Conference on Pragmatic Web","","","","2007 (October 2007)","2008 (November 2008)","http://portal.acm.org/proceedings/icpw/","http://portal.acm.org/proceedings/icpw/archive/"
-"Conference Proceedings","ICS: International Conference on Supercomputing","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/ics/","http://portal.acm.org/proceedings/ics/archive/"
-"Conference Proceedings","ICSE: International Conference on Software Engineering","","","","1976 (October 1976)","2012 (June 2012)","http://portal.acm.org/proceedings/icse/","http://portal.acm.org/proceedings/icse/archive/"
-"Conference Proceedings","ICSOC: International Conference on Service Oriented Computing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/icsoc/","http://portal.acm.org/proceedings/icsoc/archive/"
-"Conference Proceedings","ICTD: Information and Communication Technologies and Development ","","","","2009 (April 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/ictd/","http://portal.acm.org/proceedings/ictd/archive/"
-"Conference Proceedings","ICUIMC: International Conference on Ubiquitous Information Management and Communication","","","","2008 (January 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/icuimc/","http://portal.acm.org/proceedings/icuimc/archive/"
-"Conference Proceedings","ICVGIP: Indian Conference on Computer Vision, Graphics and Image Processing","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/icvgip/","http://portal.acm.org/proceedings/icvgip/archive/"
-"Conference Proceedings","ICWE: Web Engineering","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/icwe/","http://portal.acm.org/proceedings/icwe/archive/"
-"Conference Proceedings","ICWET: Workshop on Emerging Trends in Technology","","","","2010 (February 2010)","2011 (February 2011)","http://portal.acm.org/proceedings/icwet/","http://portal.acm.org/proceedings/icwet/archive/"
-"Conference Proceedings","IDAR: Innovative Database Research","","","","2008 (June 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/idar/","http://portal.acm.org/proceedings/idar/archive/"
-"Conference Proceedings","IDC: Interaction Design and Children","","","","2003 (July 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/idc/","http://portal.acm.org/proceedings/idc/archive/"
-"Conference Proceedings","IDEAS: International Database Engineering &#38; Applications Symposium","","","","2008 (September 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/ideas/","http://portal.acm.org/proceedings/ideas/archive/"
-"Conference Proceedings","IDL: Interface Definition Languages","","","","1994 (August 1994)","1994 (August 1994)","http://portal.acm.org/proceedings/idl/","http://portal.acm.org/proceedings/idl/archive/"
-"Conference Proceedings","IDTRUST: Identity and Trust on the Internet","","","","2008 (March 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/idtrust/","http://portal.acm.org/proceedings/idtrust/archive/"
-"Conference Proceedings","IE: Interactive Entertainment","","","","2006 (December 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/ie/","http://portal.acm.org/proceedings/ie/archive/"
-"Conference Proceedings","IEA/AIE: Industrial and Engineering Applications of Artificial Intelligence and Expert Systems","","","","1988 (June 1988)","2011 (June 2011)","http://portal.acm.org/proceedings/iea/aie/","http://portal.acm.org/proceedings/iea/aie/archive/"
-"Conference Proceedings","IFMT: Next-Generation Multicore/Manycore Technologies","","","","2008 (November 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/ifmt/","http://portal.acm.org/proceedings/ifmt/archive/"
-"Conference Proceedings","IHC: Brazilian Symposium on Human Factors in Computing Systems","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ihc/","http://portal.acm.org/proceedings/ihc/archive/"
-"Conference Proceedings","IHI: International Health Informatics Symposium","","","","2010 (November 2010)","2012 (January 2012)","http://portal.acm.org/proceedings/ihi/","http://portal.acm.org/proceedings/ihi/archive/"
-"Conference Proceedings","IHIS: Interoperability of Heterogeneous Information Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ihis/","http://portal.acm.org/proceedings/ihis/archive/"
-"Conference Proceedings","IHM: International Conference on Association Francophone d'Interaction Homme-Machine","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/ihm/","http://portal.acm.org/proceedings/ihm/archive/"
-"Conference Proceedings","IIES: Isolation and Integration in Embedded Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/iies/","http://portal.acm.org/proceedings/iies/archive/"
-"Conference Proceedings","IIiX: Information Interaction in Context","","","","2006 (October 2006)","2012 (August 2012)","http://portal.acm.org/proceedings/iiix/","http://portal.acm.org/proceedings/iiix/archive/"
-"Conference Proceedings","ILC: International Lisp Conference","","","","2009 (April 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/ilc/","http://portal.acm.org/proceedings/ilc/archive/"
-"Conference Proceedings","IMC: Internet Measurement Conference","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/imc/","http://portal.acm.org/proceedings/imc/archive/"
-"Conference Proceedings","IMCE: Interactive Multimedia for Consumer Electronics","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/imce/","http://portal.acm.org/proceedings/imce/archive/"
-"Conference Proceedings","IMW: Internet Measurement Workshop","","","","2001 (November 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/imw/","http://portal.acm.org/proceedings/imw/archive/"
-"Conference Proceedings","INA-OCMC: Interconnection Network Architecture: On-Chip, Multi-Chip","","","","2011 (January 2011)","2011 (January 2011)","http://portal.acm.org/proceedings/ina-ocmc/","http://portal.acm.org/proceedings/ina-ocmc/archive/"
-"Conference Proceedings","INM: Internet Network Management","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/inm/","http://portal.acm.org/proceedings/inm/archive/"
-"Conference Proceedings","INT3: Intelligent Narrative Technologies","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/int3/","http://portal.acm.org/proceedings/int3/archive/"
-"Conference Proceedings","INTERACT: Interaction between Compilers and Computer Architecture","","","","2010 (March 2010)","2010 (March 2010)","http://portal.acm.org/proceedings/interact/","http://portal.acm.org/proceedings/interact/archive/"
-"Conference Proceedings","INTETAIN: Intelligent Technologies for Interactive Entertainment","","","","2007 (January 2008)","2007 (January 2008)","http://portal.acm.org/proceedings/intetain/","http://portal.acm.org/proceedings/intetain/archive/"
-"Conference Proceedings","IOPADS: I/O in Parallel and Distributed Systems","","","","1996 (May 1996)","1999 (May 1999)","http://portal.acm.org/proceedings/iopads/","http://portal.acm.org/proceedings/iopads/archive/"
-"Conference Proceedings","IPSN: Information Processing in Sensor Networks","","","","2004 (April 2004)","2013 (April 2013)","http://portal.acm.org/proceedings/ipsn/","http://portal.acm.org/proceedings/ipsn/archive/"
-"Conference Proceedings","IPT/EDT: Immersive Projection technologies/Emerging Display Technologies","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/ipt/edt/","http://portal.acm.org/proceedings/ipt/edt/archive/"
-"Conference Proceedings","IPTComm: Principles, Systems and Applications of IP Telecommunications","","","","2007 (July 2007)","2010 (August 2010)","http://portal.acm.org/proceedings/iptcomm/","http://portal.acm.org/proceedings/iptcomm/archive/"
-"Conference Proceedings","IQIS: Information Quality in Information Systems","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/iqis/","http://portal.acm.org/proceedings/iqis/archive/"
-"Conference Proceedings","IR: Intermediate Representations","","","","1995 (March 1995)","1995 (March 1995)","http://portal.acm.org/proceedings/ir/","http://portal.acm.org/proceedings/ir/archive/"
-"Conference Proceedings","IRAL: Information Retrieval with Asian Languages","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/iral/","http://portal.acm.org/proceedings/iral/archive/"
-"Conference Proceedings","IRE-ACM-AIEE: IRE-ACM-AIEE","","","","1957 (February 1957)","1961 (May 1961)","http://portal.acm.org/proceedings/ire-acm-aiee/","http://portal.acm.org/proceedings/ire-acm-aiee/archive/"
-"Conference Proceedings","IRTAW: Real-Time Ada","","","","1987 (October 1987)","2007 (April 2007)","http://portal.acm.org/proceedings/irtaw/","http://portal.acm.org/proceedings/irtaw/archive/"
-"Conference Proceedings","IS: Guidelines for undergraduate degree programs on Model curriculum and guidelines for undergraduate degree programs in information systems","","","","1997 (December 1997)","1997 (December 1997)","http://portal.acm.org/proceedings/is/","http://portal.acm.org/proceedings/is/archive/"
-"Conference Proceedings","ISA: Indoor Spatial Awareness ","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/isa/","http://portal.acm.org/proceedings/isa/archive/"
-"Conference Proceedings","ISAW: Software Architecture Workshop","","","","1996 (October 1996)","1998 (November 1998)","http://portal.acm.org/proceedings/isaw/","http://portal.acm.org/proceedings/isaw/archive/"
-"Conference Proceedings","ISB: International Symposium on Biocomputing","","","","2010 (February 2010)","2010 (February 2010)","http://portal.acm.org/proceedings/isb/","http://portal.acm.org/proceedings/isb/archive/"
-"Conference Proceedings","ISCA: International Symposium on Computer Architecture","","","","1973 (December 1973)","2013 (June 2013)","http://portal.acm.org/proceedings/isca/","http://portal.acm.org/proceedings/isca/archive/"
-"Conference Proceedings","ISEC: India Software Engineering Conference","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/isec/","http://portal.acm.org/proceedings/isec/archive/"
-"Conference Proceedings","ISESE: International Symposium on Empirical Software Engineering","","","","2002 (October 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/isese/","http://portal.acm.org/proceedings/isese/archive/"
-"Conference Proceedings","ISLPED: International Symposium on Low Power Electronic Design","","","","1995 (April 1995)","2012 (July 2012)","http://portal.acm.org/proceedings/islped/","http://portal.acm.org/proceedings/islped/archive/"
-"Conference Proceedings","ISMAR: Mixed and Augmented Reality","","","","2002 (September 2002)","2009 (October 2009)","http://portal.acm.org/proceedings/ismar/","http://portal.acm.org/proceedings/ismar/archive/"
-"Conference Proceedings","ISMIS: International Symposium on Methodologies for Intelligent Systems","","","","1986 (December 1986)","1986 (December 1986)","http://portal.acm.org/proceedings/ismis/","http://portal.acm.org/proceedings/ismis/archive/"
-"Conference Proceedings","ISMM: Memory Management","","","","1998 (October 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/ismm/","http://portal.acm.org/proceedings/ismm/archive/"
-"Conference Proceedings","ISPA: Parallel and Distributed Processing and Applications","","","","2003 (July 2003)","2004 (December 2004)","http://portal.acm.org/proceedings/ispa/","http://portal.acm.org/proceedings/ispa/archive/"
-"Conference Proceedings","ISPD: Physical Design","","","","1997 (April 1997)","2013 (March 2013)","http://portal.acm.org/proceedings/ispd/","http://portal.acm.org/proceedings/ispd/archive/"
-"Conference Proceedings","ISPW: International Software Process Workshop","","","","1988 (April 1988)","1996 (June 1996)","http://portal.acm.org/proceedings/ispw/","http://portal.acm.org/proceedings/ispw/archive/"
-"Conference Proceedings","ISQED: Quality Electronic Design","","","","2006 (March 2006)","2006 (March 2006)","http://portal.acm.org/proceedings/isqed/","http://portal.acm.org/proceedings/isqed/archive/"
-"Conference Proceedings","ISSAC: International Symposium of Symbolic and Algebraic Computation","","","","1989 (July 1989)","2013 (June 2013)","http://portal.acm.org/proceedings/issac/","http://portal.acm.org/proceedings/issac/archive/"
-"Conference Proceedings","ISSS: International Symposium on System Synthesis","","","","1994 (May 1994)","2002 (October 2002)","http://portal.acm.org/proceedings/isss/","http://portal.acm.org/proceedings/isss/archive/"
-"Conference Proceedings","ISSTA: International Symposium on Software Testing and Analysis","","","","1993 (August 1993)","2013 (July 2013)","http://portal.acm.org/proceedings/issta/","http://portal.acm.org/proceedings/issta/archive/"
-"Conference Proceedings","ISTA: Information Science, Technology and Applications","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/ista/","http://portal.acm.org/proceedings/ista/archive/"
-"Conference Proceedings","ISWSA: Intelligent Semantic Web &mdash; Services and Applications","","","","2010 (June 2010)","2011 (April 2011)","http://portal.acm.org/proceedings/iswsa/","http://portal.acm.org/proceedings/iswsa/archive/"
-"Conference Proceedings","ITS: Interactive Tabletops and Surfaces","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/its/","http://portal.acm.org/proceedings/its/archive/"
-"Conference Proceedings","ITiCSE: Innovation and Technology in Computer Science Education","","","","1996 (June 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/iticse/","http://portal.acm.org/proceedings/iticse/archive/"
-"Conference Proceedings","IUCS: International Universal Communication Symposium","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/iucs/","http://portal.acm.org/proceedings/iucs/archive/"
-"Conference Proceedings","IUI: Intelligent User Interfaces","","","","1993 (February 1993)","2013 (March 2013)","http://portal.acm.org/proceedings/iui/","http://portal.acm.org/proceedings/iui/archive/"
-"Conference Proceedings","IVME: Interpreters, Virtual Machines and Emulators","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/ivme/","http://portal.acm.org/proceedings/ivme/archive/"
-"Conference Proceedings","IW-SOSWE: Service Oriented Software Engineering","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/iw-soswe/","http://portal.acm.org/proceedings/iw-soswe/archive/"
-"Conference Proceedings","IWAAPF: Application and Advances of Problem Frames","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/iwaapf/","http://portal.acm.org/proceedings/iwaapf/archive/"
-"Conference Proceedings","IWACO: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/iwaco/","http://portal.acm.org/proceedings/iwaco/archive/"
-"Conference Proceedings","IWCMC: International Wireless Communications and Mobile Computing Conference","","","","2006 (July 2006)","2010 (June 2010)","http://portal.acm.org/proceedings/iwcmc/","http://portal.acm.org/proceedings/iwcmc/archive/"
-"Conference Proceedings","IWCTS: Computational Transportation Science","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/iwcts/","http://portal.acm.org/proceedings/iwcts/archive/"
-"Conference Proceedings","IWDE: Digital Engineering","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/iwde/","http://portal.acm.org/proceedings/iwde/archive/"
-"Conference Proceedings","IWGS: International Workshop on GeoStreaming","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/iwgs/","http://portal.acm.org/proceedings/iwgs/archive/"
-"Conference Proceedings","IWIC: Intercultural Collaboration","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/iwic/","http://portal.acm.org/proceedings/iwic/archive/"
-"Conference Proceedings","IWICSS: Incorporating COTS Software into Software Systems","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/iwicss/","http://portal.acm.org/proceedings/iwicss/archive/"
-"Conference Proceedings","IWMCP: Model Comparison in Practice","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/iwmcp/","http://portal.acm.org/proceedings/iwmcp/archive/"
-"Conference Proceedings","IWMSE: Multicore Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/iwmse/","http://portal.acm.org/proceedings/iwmse/archive/"
-"Conference Proceedings","IWOCE: Open Component EcoSystems","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/iwoce/","http://portal.acm.org/proceedings/iwoce/archive/"
-"Conference Proceedings","IWPSE-EVOL: Software Evolution and Principles of Software Evolution ","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/iwpse-evol/","http://portal.acm.org/proceedings/iwpse-evol/archive/"
-"Conference Proceedings","IWPSE: Principles of Software Evolution","","","","2001 (September 2001)","2013 (August 2013)","http://portal.acm.org/proceedings/iwpse/","http://portal.acm.org/proceedings/iwpse/archive/"
-"Conference Proceedings","IWQoS: Quality of Service","","","","2003 (June 2003)","2012 (June 2012)","http://portal.acm.org/proceedings/iwqos/","http://portal.acm.org/proceedings/iwqos/archive/"
-"Conference Proceedings","IWRIDL: Research Issues in Digital Libraries","","","","2007 (December 2006)","2007 (December 2006)","http://portal.acm.org/proceedings/iwridl/","http://portal.acm.org/proceedings/iwridl/archive/"
-"Conference Proceedings","IWSC: Software Clones","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/iwsc/","http://portal.acm.org/proceedings/iwsc/archive/"
-"Conference Proceedings","IWSESS: Software Engineering for Secure Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/iwsess/","http://portal.acm.org/proceedings/iwsess/archive/"
-"Conference Proceedings","IWSSD: International Workshop on Software Specification and Design","","","","1989 (April 1989)","2000 (November 2000)","http://portal.acm.org/proceedings/iwssd/","http://portal.acm.org/proceedings/iwssd/archive/"
-"Conference Proceedings","IWST: Smalltalk Technologies","","","","2009 (August 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/iwst/","http://portal.acm.org/proceedings/iwst/archive/"
-"Conference Proceedings","IWSTI: Satellite/Terrestrial Interworking","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/iwsti/","http://portal.acm.org/proceedings/iwsti/archive/"
-"Conference Proceedings","IWVS: Video Surveillance","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/iwvs/","http://portal.acm.org/proceedings/iwvs/archive/"
-"Conference Proceedings","InfoScale: Scalable Information Systems","","","","2006 (May 2006)","2007 (June 2007)","http://portal.acm.org/proceedings/infoscale/","http://portal.acm.org/proceedings/infoscale/archive/"
-"Conference Proceedings","InfoSecCD: Information Security Curriculum Development","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/infoseccd/","http://portal.acm.org/proceedings/infoseccd/archive/"
-"Conference Proceedings","InfoSecu: Information Security","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/infosecu/","http://portal.acm.org/proceedings/infosecu/archive/"
-"Conference Proceedings","Insider Threats: Insider Threats","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/insiderthreats/","http://portal.acm.org/proceedings/insiderthreats/archive/"
-"Conference Proceedings","InterSense: Integrated Internet Ad Hoc and Sensor Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/intersense/","http://portal.acm.org/proceedings/intersense/archive/"
-"Conference Proceedings","Internetware: Internetware","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/internetware/","http://portal.acm.org/proceedings/internetware/archive/"
-"Conference Proceedings","Interperf: Interdisciplinary Systems Approach in Performance Evaluation and Design of Computer & Communications Systems","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/interperf/","http://portal.acm.org/proceedings/interperf/archive/"
-"Conference Proceedings","JAVA: Java Grande","","","","1999 (June 1999)","2000 (June 2000)","http://portal.acm.org/proceedings/java/","http://portal.acm.org/proceedings/java/archive/"
-"Conference Proceedings","JCDL: Joint Conference on Digital Libraries","","","","2001 (January 2001)","2013 (July 2013)","http://portal.acm.org/proceedings/jcdl/","http://portal.acm.org/proceedings/jcdl/archive/"
-"Conference Proceedings","JGI: ACM-ISCOPE conference on Java Grande","","","","2001 (June 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/jgi/","http://portal.acm.org/proceedings/jgi/archive/"
-"Conference Proceedings","JTRES: Java Technologies for Real-Time and Embedded Systems","","","","2006 (October 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/jtres/","http://portal.acm.org/proceedings/jtres/archive/"
-"Conference Proceedings","K-CAP: Knowledge Capture","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/k-cap/","http://portal.acm.org/proceedings/k-cap/archive/"
-"Conference Proceedings","KDD: Knowledge Discovery and Data Mining","","","","1999 (August 1999)","2013 (August 2013)","http://portal.acm.org/proceedings/kdd/","http://portal.acm.org/proceedings/kdd/archive/"
-"Conference Proceedings","KEYS: Keyword Search on Structured Data","","","","2009 (June 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/keys/","http://portal.acm.org/proceedings/keys/archive/"
-"Conference Proceedings","Koli Calling: Koli Calling International Conference on Computing Education Research ","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/kolicalling/","http://portal.acm.org/proceedings/kolicalling/archive/"
-"Conference Proceedings","Koli: Computing Education Research","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/koli/","http://portal.acm.org/proceedings/koli/archive/"
-"Conference Proceedings","LADIS: Large-Scale Distributed Systems and Middleware","","","","2008 (September 2008)","2010 (July 2010)","http://portal.acm.org/proceedings/ladis/","http://portal.acm.org/proceedings/ladis/archive/"
-"Conference Proceedings","LANC: Latin American Networking Conference","","","","2003 (October 2003)","2012 (October 2012)","http://portal.acm.org/proceedings/lanc/","http://portal.acm.org/proceedings/lanc/archive/"
-"Conference Proceedings","LATE: Linking Aspect Technology and Evolution","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/late/","http://portal.acm.org/proceedings/late/archive/"
-"Conference Proceedings","LBSN: Location Based Social Networks","","","","2009 (November 2009)","2012 (November 2012)","http://portal.acm.org/proceedings/lbsn/","http://portal.acm.org/proceedings/lbsn/archive/"
-"Conference Proceedings","LCR: Languages, Compilers, and Run-time Support for Scalable Systems","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/lcr/","http://portal.acm.org/proceedings/lcr/archive/"
-"Conference Proceedings","LCSD: Library-Centric Software Design","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/lcsd/","http://portal.acm.org/proceedings/lcsd/archive/"
-"Conference Proceedings","LCTES: Languages, Compilers, and Tools for Embedded Systems","","","","1995 (November 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/lctes/","http://portal.acm.org/proceedings/lctes/archive/"
-"Conference Proceedings","LDTA: Language Descriptions, Tools and Applications","","","","2010 (March 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/ldta/","http://portal.acm.org/proceedings/ldta/archive/"
-"Conference Proceedings","LFMTP: Logical Frameworks and Meta-Languages","","","","2009 (August 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/lfmtp/","http://portal.acm.org/proceedings/lfmtp/archive/"
-"Conference Proceedings","LFP: LISP and Functional Programming","","","","1980 (August 1980)","1994 (July 1994)","http://portal.acm.org/proceedings/lfp/","http://portal.acm.org/proceedings/lfp/archive/"
-"Conference Proceedings","LISP: Celebrating the 50th Anniversary of Lisp","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/lisp/","http://portal.acm.org/proceedings/lisp/archive/"
-"Conference Proceedings","LMSA: Leadership and Management in Software Architecture","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/lmsa/","http://portal.acm.org/proceedings/lmsa/archive/"
-"Conference Proceedings","LOCWEB: Location and the Web","","","","2008 (April 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/locweb/","http://portal.acm.org/proceedings/locweb/archive/"
-"Conference Proceedings","LS-MMRM: Large-Scale Multimedia Retrieval and Mining","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/ls-mmrm/","http://portal.acm.org/proceedings/ls-mmrm/archive/"
-"Conference Proceedings","LSAD: Large-Scale Attack Defense","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/lsad/","http://portal.acm.org/proceedings/lsad/archive/"
-"Conference Proceedings","LSAP: Large-scale System and Application Performance","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/lsap/","http://portal.acm.org/proceedings/lsap/archive/"
-"Conference Proceedings","LSDS-IR: Large-Scale Distributed Systems for Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/lsds-ir/","http://portal.acm.org/proceedings/lsds-ir/archive/"
-"Conference Proceedings","LUV: LISP Users and Vendors","","","","1992 (August 1992)","1995 (August 1994)","http://portal.acm.org/proceedings/luv/","http://portal.acm.org/proceedings/luv/archive/"
-"Conference Proceedings","LinkKDD: Link Discovery","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/linkkdd/","http://portal.acm.org/proceedings/linkkdd/archive/"
-"Conference Proceedings","M-MPAC: Middleware for Pervasive Mobile and Embedded Computing","","","","2009 (November 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/m-mpac/","http://portal.acm.org/proceedings/m-mpac/archive/"
-"Conference Proceedings","MACS: Modeling and Analysis of Concerns in Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/macs/","http://portal.acm.org/proceedings/macs/archive/"
-"Conference Proceedings","MAI: Middleware Application Interaction","","","","2007 (March 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/mai/","http://portal.acm.org/proceedings/mai/archive/"
-"Conference Proceedings","MASPEGHI: MechAnisms for SPEcialization, Generalization and inHerItance","","","","2010 (June 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/maspeghi/","http://portal.acm.org/proceedings/maspeghi/archive/"
-"Conference Proceedings","MAW: Memory Access on Future Processors","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/maw/","http://portal.acm.org/proceedings/maw/archive/"
-"Conference Proceedings","MB: Methods and Techniques in Behavioral Research","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/mb/","http://portal.acm.org/proceedings/mb/archive/"
-"Conference Proceedings","MC: Middleware Companion","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mc/","http://portal.acm.org/proceedings/mc/archive/"
-"Conference Proceedings","MCMC: Mobile Cloud Media Computing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mcmc/","http://portal.acm.org/proceedings/mcmc/archive/"
-"Conference Proceedings","MCPS: Contents Proctection and Security","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/mcps/","http://portal.acm.org/proceedings/mcps/archive/"
-"Conference Proceedings","MCS: Mobile Cloud Computing and Services","","","","2010 (June 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/mcs/","http://portal.acm.org/proceedings/mcs/archive/"
-"Conference Proceedings","MD: Massive Datasets","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/md/","http://portal.acm.org/proceedings/md/archive/"
-"Conference Proceedings","MDAC: Massive Data Analytics on the Cloud","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/mdac/","http://portal.acm.org/proceedings/mdac/archive/"
-"Conference Proceedings","MDI: Model-Drive Interoperability","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mdi/","http://portal.acm.org/proceedings/mdi/archive/"
-"Conference Proceedings","MDM: Mobile Data Management","","","","2005 (May 2005)","2010 (May 2010)","http://portal.acm.org/proceedings/mdm/","http://portal.acm.org/proceedings/mdm/archive/"
-"Conference Proceedings","MDMKDD: Multimedia Data Mining","","","","2010 (July 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/mdmkdd/","http://portal.acm.org/proceedings/mdmkdd/archive/"
-"Conference Proceedings","MDS: Middleware Doctoral Symposium","","","","2006 (November 2006)","2013 (December 2013)","http://portal.acm.org/proceedings/mds/","http://portal.acm.org/proceedings/mds/archive/"
-"Conference Proceedings","MEDEA: Memory Performance: Dealing with Applications, Systems and Architecture","","","","2003 (September 2003)","2009 (September 2009)","http://portal.acm.org/proceedings/medea/","http://portal.acm.org/proceedings/medea/archive/"
-"Conference Proceedings","MEDES: Management of Emergent Digital EcoSystems","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/medes/","http://portal.acm.org/proceedings/medes/archive/"
-"Conference Proceedings","MELT: Mobile Entity Localization and Tracking in GPS-Less Environment","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/melt/","http://portal.acm.org/proceedings/melt/archive/"
-"Conference Proceedings","MEMOCODE: Formal Methods and Models for Co-Design","","","","2005 (July 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/memocode/","http://portal.acm.org/proceedings/memocode/archive/"
-"Conference Proceedings","MERLIN: Mechanized Reasoning about Languages with Variable Binding","","","","2003 (August 2003)","2005 (September 2005)","http://portal.acm.org/proceedings/merlin/","http://portal.acm.org/proceedings/merlin/archive/"
-"Conference Proceedings","MG: Mardi Gras Conference","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/mg/","http://portal.acm.org/proceedings/mg/archive/"
-"Conference Proceedings","MGC: Middleware for Grids, Clouds and e-Science","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mgc/","http://portal.acm.org/proceedings/mgc/archive/"
-"Conference Proceedings","MHC: Multimedia for Human Communication","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mhc/","http://portal.acm.org/proceedings/mhc/archive/"
-"Conference Proceedings","MICNET: Mobile Internet Through Cellular Networks","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/micnet/","http://portal.acm.org/proceedings/micnet/archive/"
-"Conference Proceedings","MICRO: Microarchitecture","","","","1972 (September 1972)","2013 (December 2013)","http://portal.acm.org/proceedings/micro/","http://portal.acm.org/proceedings/micro/archive/"
-"Conference Proceedings","MIIT: Model Inference In Testing","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/miit/","http://portal.acm.org/proceedings/miit/archive/"
-"Conference Proceedings","MIR: Multimedia Information Retrieval","","","","2003 (November 2003)","2010 (March 2010)","http://portal.acm.org/proceedings/mir/","http://portal.acm.org/proceedings/mir/archive/"
-"Conference Proceedings","MIS: Metainformatics","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mis/","http://portal.acm.org/proceedings/mis/archive/"
-"Conference Proceedings","MISE: Modeling in Software Engineering","","","","2007 (May 2007)","2009 (May 2009)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","ML: ML","","","","2006 (September 2006)","2009 (August 2009)","http://portal.acm.org/proceedings/ml/","http://portal.acm.org/proceedings/ml/archive/"
-"Conference Proceedings","MLG: Mining and Learning with Graphs","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/mlg/","http://portal.acm.org/proceedings/mlg/archive/"
-"Conference Proceedings","MLPA: Modules and Libraries for Proof Assistants","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/mlpa/","http://portal.acm.org/proceedings/mlpa/archive/"
-"Conference Proceedings","MMDB: Multimedia Databases","","","","2003 (November 2003)","2004 (November 2004)","http://portal.acm.org/proceedings/mmdb/","http://portal.acm.org/proceedings/mmdb/archive/"
-"Conference Proceedings","MML: Machine Learning and Music","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mml/","http://portal.acm.org/proceedings/mml/archive/"
-"Conference Proceedings","MMSEC: Multimedia and Security","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/mmsec/","http://portal.acm.org/proceedings/mmsec/archive/"
-"Conference Proceedings","MMSys: Multimedia Systems","","","","2010 (February 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/mmsys/","http://portal.acm.org/proceedings/mmsys/archive/"
-"Conference Proceedings","MNCNA: Middleware for Next-Generation Converged Networks and Applications","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mncna/","http://portal.acm.org/proceedings/mncna/archive/"
-"Conference Proceedings","MOBILWARE: Mobile Wireless Middleware, Operating Systems, and Applications","","","","2007 (February 2008)","2007 (February 2008)","http://portal.acm.org/proceedings/mobilware/","http://portal.acm.org/proceedings/mobilware/archive/"
-"Conference Proceedings","MOCR: Multilingual OCR","","","","2009 (July 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/mocr/","http://portal.acm.org/proceedings/mocr/archive/"
-"Conference Proceedings","MODDM: Model Driven Development for Middleware","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/moddm/","http://portal.acm.org/proceedings/moddm/archive/"
-"Conference Proceedings","MOMPES: Model-Based Methodologies for Pervasive and Embedded Software","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mompes/","http://portal.acm.org/proceedings/mompes/archive/"
-"Conference Proceedings","MPAC: Middleware for Pervasive and Ad-Hoc Computing","","","","2004 (October 2004)","2008 (December 2008)","http://portal.acm.org/proceedings/mpac/","http://portal.acm.org/proceedings/mpac/archive/"
-"Conference Proceedings","MPEC: Models and Processes for the Evaluation of Off-the-Shelf Components","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/mpec/","http://portal.acm.org/proceedings/mpec/archive/"
-"Conference Proceedings","MPVA: Multimodal Pervasive Video Analysis","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mpva/","http://portal.acm.org/proceedings/mpva/archive/"
-"Conference Proceedings","MRDM: Multi-Relational Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/mrdm/","http://portal.acm.org/proceedings/mrdm/archive/"
-"Conference Proceedings","MS: Multimedia Semantics","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/ms/","http://portal.acm.org/proceedings/ms/archive/"
-"Conference Proceedings","MSC: Multimedia Service Composition","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/msc/","http://portal.acm.org/proceedings/msc/archive/"
-"Conference Proceedings","MSFP: Mathematically Structured Functional Programming","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/msfp/","http://portal.acm.org/proceedings/msfp/archive/"
-"Conference Proceedings","MSIADU: Media Studies and Implementations that Help Improving Access to Disabled Users","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/msiadu/","http://portal.acm.org/proceedings/msiadu/archive/"
-"Conference Proceedings","MSM: Modeling Social Media","","","","2010 (June 2010)","2013 (May 2013)","http://portal.acm.org/proceedings/msm/","http://portal.acm.org/proceedings/msm/archive/"
-"Conference Proceedings","MSPC: Memory System Performance and Correctness","","","","2002 (June 2002)","2012 (June 2012)","http://portal.acm.org/proceedings/mspc/","http://portal.acm.org/proceedings/mspc/archive/"
-"Conference Proceedings","MSR: Mining Software Repositories","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/msr/","http://portal.acm.org/proceedings/msr/archive/"
-"Conference Proceedings","MSWiM: Modeling, Analysis and Simulation of Wireless and Mobile Systems","","","","1999 (August 1999)","2013 (November 2013)","http://portal.acm.org/proceedings/mswim/","http://portal.acm.org/proceedings/mswim/archive/"
-"Conference Proceedings","MTAGS: Many-Task Computing on Grids and Supercomputers","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mtags/","http://portal.acm.org/proceedings/mtags/archive/"
-"Conference Proceedings","MTDL: Multimedia Technologies for Distance Learning","","","","2009 (October 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/mtdl/","http://portal.acm.org/proceedings/mtdl/archive/"
-"Conference Proceedings","MUCS: Managing Ubiquitous Communications and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/mucs/","http://portal.acm.org/proceedings/mucs/archive/"
-"Conference Proceedings","MULTIMEDIA: Multimedia","","","","1993 (September 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/multimedia/","http://portal.acm.org/proceedings/multimedia/archive/"
-"Conference Proceedings","MUM: Mobile and Ubiquitous Multimedia","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mum/","http://portal.acm.org/proceedings/mum/archive/"
-"Conference Proceedings","MV: Mobile Video","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/mv/","http://portal.acm.org/proceedings/mv/archive/"
-"Conference Proceedings","MW: Multimedia Middleware","","","","2001 (October 2001)","2012 (September 2012)","http://portal.acm.org/proceedings/mw/","http://portal.acm.org/proceedings/mw/archive/"
-"Conference Proceedings","MWSOC: Middleware for Service Oriented Computing","","","","2006 (November 2006)","2011 (December 2011)","http://portal.acm.org/proceedings/mwsoc/","http://portal.acm.org/proceedings/mwsoc/archive/"
-"Conference Proceedings","MetriSec: Security Measurements and Metrics","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/metrisec/","http://portal.acm.org/proceedings/metrisec/archive/"
-"Conference Proceedings","MiFor: Multimedia in Forensics","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mifor/","http://portal.acm.org/proceedings/mifor/archive/"
-"Conference Proceedings","MiNEMA: Middleware for Network Eccentric and Mobile Applications","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/minema/","http://portal.acm.org/proceedings/minema/archive/"
-"Conference Proceedings","MiSE: Models in Software Engineering","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","MidSec: Middleware Security","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/midsec/","http://portal.acm.org/proceedings/midsec/archive/"
-"Conference Proceedings","MidSens: Middleware Tools, Services and Run-Time Support for Sensor Networks","","","","2006 (November 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/midsens/","http://portal.acm.org/proceedings/midsens/archive/"
-"Conference Proceedings","Middleware Industrial Track: Middleware Industrial Track","","","","2010 (November 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/middlewareindustrialtrack/","http://portal.acm.org/proceedings/middlewareindustrialtrack/archive/"
-"Conference Proceedings","Middleware: Middleware","","","","2000 (April 2000)","2012 (December 2012)","http://portal.acm.org/proceedings/middleware/","http://portal.acm.org/proceedings/middleware/archive/"
-"Conference Proceedings","MindTrek: Entertainment and Media in the Ubiquitous Era","","","","2008 (October 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/mindtrek/","http://portal.acm.org/proceedings/mindtrek/archive/"
-"Conference Proceedings","MineNet: Mining Network Data","","","","2005 (August 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/minenet/","http://portal.acm.org/proceedings/minenet/archive/"
-"Conference Proceedings","MoDELS: Models in software engineering","","","","2005 (October 2005)","2012 (September 2012)","http://portal.acm.org/proceedings/models/","http://portal.acm.org/proceedings/models/archive/"
-"Conference Proceedings","MoDeVVa: Model-Driven Engineering, Verification and Validation","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/modevva/","http://portal.acm.org/proceedings/modevva/archive/"
-"Conference Proceedings","MoMM: Mobile Computing and Multimedia","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/momm/","http://portal.acm.org/proceedings/momm/archive/"
-"Conference Proceedings","MoMeTools: Models, Methods and Tools for Reproducible Network Research","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/mometools/","http://portal.acm.org/proceedings/mometools/archive/"
-"Conference Proceedings","MoSE+DQS: Model Driven Service Engineering and Data Quality and Security","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/mose+dqs/","http://portal.acm.org/proceedings/mose+dqs/archive/"
-"Conference Proceedings","MoViD: Mobile Video Delivery","","","","2010 (October 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/movid/","http://portal.acm.org/proceedings/movid/archive/"
-"Conference Proceedings","MobConQoE: Mobile Content Quality of Experience","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/mobconqoe/","http://portal.acm.org/proceedings/mobconqoe/archive/"
-"Conference Proceedings","MobMid: Mobile Middleware","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/mobmid/","http://portal.acm.org/proceedings/mobmid/archive/"
-"Conference Proceedings","MobiArch: Mobility in the Evolving Internet Architecture","","","","2006 (December 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/mobiarch/","http://portal.acm.org/proceedings/mobiarch/archive/"
-"Conference Proceedings","MobiCom: Mobile Computing","","","","1995 (December 1995)","2013 (September 2013)","http://portal.acm.org/proceedings/mobicom/","http://portal.acm.org/proceedings/mobicom/archive/"
-"Conference Proceedings","MobiDE: Data Engineering for Wireless and Mobile Access","","","","1999 (August 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/mobide/","http://portal.acm.org/proceedings/mobide/archive/"
-"Conference Proceedings","MobiEval: System Evaluation for Mobile Platforms","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/mobieval/","http://portal.acm.org/proceedings/mobieval/archive/"
-"Conference Proceedings","MobiHeld: Networking, Systems, and Applications for Mobile Handhelds","","","","2009 (August 2009)","2011 (October 2011)","http://portal.acm.org/proceedings/mobiheld/","http://portal.acm.org/proceedings/mobiheld/archive/"
-"Conference Proceedings","MobiHoc: Mobile Ad Hoc Networking and Computing","","","","2000 (November 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/mobihoc/","http://portal.acm.org/proceedings/mobihoc/archive/"
-"Conference Proceedings","MobiMedia: Mobile Multimedia Communications","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/mobimedia/","http://portal.acm.org/proceedings/mobimedia/archive/"
-"Conference Proceedings","MobiOpp: Mobile Opportunistic Networking","","","","2007 (June 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/mobiopp/","http://portal.acm.org/proceedings/mobiopp/archive/"
-"Conference Proceedings","MobiShare: Decentralized Resource Sharing in Mobile Computing and Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/mobishare/","http://portal.acm.org/proceedings/mobishare/archive/"
-"Conference Proceedings","MobiSys: Mobile Systems, Applications, and Services","","","","2003 (May 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/mobisys/","http://portal.acm.org/proceedings/mobisys/archive/"
-"Conference Proceedings","MobiVirt: Virtualization in Mobile Computing","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/mobivirt/","http://portal.acm.org/proceedings/mobivirt/archive/"
-"Conference Proceedings","MobiWac: Mobility Management and Wireless Access","","","","2002 (October 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/mobiwac/","http://portal.acm.org/proceedings/mobiwac/archive/"
-"Conference Proceedings","MobileHCI: Human Computer Interaction with Mobile Devices and Services","","","","2005 (September 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/mobilehci/","http://portal.acm.org/proceedings/mobilehci/archive/"
-"Conference Proceedings","Mobility: Mobile Technology, Applications, and Systems","","","","2006 (October 2006)","2009 (September 2009)","http://portal.acm.org/proceedings/mobility/","http://portal.acm.org/proceedings/mobility/archive/"
-"Conference Proceedings","MobilityModels: Mobility Models","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mobilitymodels/","http://portal.acm.org/proceedings/mobilitymodels/archive/"
-"Conference Proceedings","NAOMI: Next Generation Aspect Oriented Middleware","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/naomi/","http://portal.acm.org/proceedings/naomi/archive/"
-"Conference Proceedings","NDA: Network Data Anonymization","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/nda/","http://portal.acm.org/proceedings/nda/archive/"
-"Conference Proceedings","NETFLIX: Large-Scale Recommender Systems and the Netflix Prize Competition","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/netflix/","http://portal.acm.org/proceedings/netflix/archive/"
-"Conference Proceedings","NICELI: Network-I/O Convergence","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/niceli/","http://portal.acm.org/proceedings/niceli/archive/"
-"Conference Proceedings","NIME: New Interfaces for Musical Expression","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/nime/","http://portal.acm.org/proceedings/nime/archive/"
-"Conference Proceedings","NOSSDAV: Network and Operating Systems Support for Digital Audio and Video","","","","2001 (January 2001)","2013 (February 2013)","http://portal.acm.org/proceedings/nossdav/","http://portal.acm.org/proceedings/nossdav/archive/"
-"Conference Proceedings","NOTERE: New Technologies in Distributed Systems","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/notere/","http://portal.acm.org/proceedings/notere/archive/"
-"Conference Proceedings","NPAR: Non-Photorealistic Animation and Rendering","","","","2000 (June 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/npar/","http://portal.acm.org/proceedings/npar/archive/"
-"Conference Proceedings","NPIV: New Paradigms in Information Visualization and Manipulation","","","","1997 (November 1997)","1998 (November 1998)","http://portal.acm.org/proceedings/npiv/","http://portal.acm.org/proceedings/npiv/archive/"
-"Conference Proceedings","NPIVM: NPIVM","","","","1999 (November 1999)","1999 (November 1999)","http://portal.acm.org/proceedings/npivm/","http://portal.acm.org/proceedings/npivm/archive/"
-"Conference Proceedings","NRBC: Next-Generation Residential Broadband Challenges","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/nrbc/","http://portal.acm.org/proceedings/nrbc/archive/"
-"Conference Proceedings","NSDI: Networked Systems Design & Implementation ","","","","2005 (May 2005)","2011 (March 2011)","http://portal.acm.org/proceedings/nsdi/","http://portal.acm.org/proceedings/nsdi/archive/"
-"Conference Proceedings","NSDR: Networked Systems for Developing Regions","","","","2007 (August 2007)","2011 (June 2011)","http://portal.acm.org/proceedings/nsdr/","http://portal.acm.org/proceedings/nsdr/archive/"
-"Conference Proceedings","NSEC: National Software Engineering Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/nsec/","http://portal.acm.org/proceedings/nsec/archive/"
-"Conference Proceedings","NSPW: New Security Paradigms and Workshop","","","","1993 (August 1993)","2013 (December 2013)","http://portal.acm.org/proceedings/nspw/","http://portal.acm.org/proceedings/nspw/archive/"
-"Conference Proceedings","Nanoarch: Nanoscale Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/nanoarch/","http://portal.acm.org/proceedings/nanoarch/archive/"
-"Conference Proceedings","NetEcon: Economics of Networked Systems","","","","2008 (August 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/netecon/","http://portal.acm.org/proceedings/netecon/archive/"
-"Conference Proceedings","NetGames: Network and Systems Support for Games","","","","2002 (April 2002)","2012 (November 2012)","http://portal.acm.org/proceedings/netgames/","http://portal.acm.org/proceedings/netgames/archive/"
-"Conference Proceedings","NetT: Network Troubleshooting","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/nett/","http://portal.acm.org/proceedings/nett/archive/"
-"Conference Proceedings","NoCArc: Network on Chip Architectures","","","","2009 (December 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/nocarc/","http://portal.acm.org/proceedings/nocarc/archive/"
-"Conference Proceedings","NordiCHI: Nordic Conference on Human-Computer Interaction","","","","2002 (October 2002)","2012 (October 2012)","http://portal.acm.org/proceedings/nordichi/","http://portal.acm.org/proceedings/nordichi/archive/"
-"Conference Proceedings","OBI: Ontology-supported Business Intelligence","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/obi/","http://portal.acm.org/proceedings/obi/archive/"
-"Conference Proceedings","OM: Optimization of Middleware and Distributed Systems","","","","2001 (August 2001)","2001 (August 2001)","http://portal.acm.org/proceedings/om/","http://portal.acm.org/proceedings/om/archive/"
-"Conference Proceedings","ONISW: Ontologies and Information Systems for the Semantic Web","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/onisw/","http://portal.acm.org/proceedings/onisw/archive/"
-"Conference Proceedings","OODS: Object-Oriented Database Systems","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/oods/","http://portal.acm.org/proceedings/oods/archive/"
-"Conference Proceedings","OOPWORK: OOPWORK","","","","1986 (June 1986)","1986 (June 1986)","http://portal.acm.org/proceedings/oopwork/","http://portal.acm.org/proceedings/oopwork/archive/"
-"Conference Proceedings","OSDI: Operating Systems Design and Implementation","","","","1994 (November 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/osdi/","http://portal.acm.org/proceedings/osdi/archive/"
-"Conference Proceedings","OSDM: Open Source Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/osdm/","http://portal.acm.org/proceedings/osdm/archive/"
-"Conference Proceedings","OZCHI: Australian Computer-Human Interaction Special Interest Group: Design","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ozchi/","http://portal.acm.org/proceedings/ozchi/archive/"
-"Conference Proceedings","P2PECON: Economics of Peer-to-Peer Systems","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/p2pecon/","http://portal.acm.org/proceedings/p2pecon/archive/"
-"Conference Proceedings","P2PIR: PPIR","","","","2005 (November 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/p2pir/","http://portal.acm.org/proceedings/p2pir/archive/"
-"Conference Proceedings","PACT: Parallel Architectures and Compilation Techniques","","","","1993 (January 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/pact/","http://portal.acm.org/proceedings/pact/archive/"
-"Conference Proceedings","PADD: Parallel and Distributed Debugging","","","","1988 (November 1988)","1993 (December 1993)","http://portal.acm.org/proceedings/padd/","http://portal.acm.org/proceedings/padd/archive/"
-"Conference Proceedings","PADS: Principles of Advanced and Distributed Simulation","","","","1993 (July 1993)","2013 (May 2013)","http://portal.acm.org/proceedings/pads/","http://portal.acm.org/proceedings/pads/archive/"
-"Conference Proceedings","PADTAD: Parallel and Distributed Systems: Testing, Analysis, and Debugging","","","","2006 (July 2006)","2012 (July 2012)","http://portal.acm.org/proceedings/padtad/","http://portal.acm.org/proceedings/padtad/archive/"
-"Conference Proceedings","PAIS: Privacy and Anonymity in Information Society","","","","2008 (March 2008)","2011 (March 2011)","http://portal.acm.org/proceedings/pais/","http://portal.acm.org/proceedings/pais/archive/"
-"Conference Proceedings","PASCO: Parallel Symbolic Computation","","","","1997 (July 1997)","2010 (July 2010)","http://portal.acm.org/proceedings/pasco/","http://portal.acm.org/proceedings/pasco/archive/"
-"Conference Proceedings","PASTE: Program Analysis for Software Tools and Engineering","","","","1998 (July 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/paste/","http://portal.acm.org/proceedings/paste/archive/"
-"Conference Proceedings","PAVLAD: Privacy and Anonymity for Very Large Databases","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/pavlad/","http://portal.acm.org/proceedings/pavlad/archive/"
-"Conference Proceedings","PCAR: Practical Cognitive Agents and Robots","","","","2006 (November 2006)","2010 (May 2010)","http://portal.acm.org/proceedings/pcar/","http://portal.acm.org/proceedings/pcar/archive/"
-"Conference Proceedings","PCGames: Procedural Content Generation in Games","","","","2010 (June 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/pcgames/","http://portal.acm.org/proceedings/pcgames/archive/"
-"Conference Proceedings","PCK: Principles of Computing & Knowledge","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/pck/","http://portal.acm.org/proceedings/pck/archive/"
-"Conference Proceedings","PCS: Personal Computer Security","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/pcs/","http://portal.acm.org/proceedings/pcs/archive/"
-"Conference Proceedings","PDC: Participatory Design","","","","2004 (July 2004)","2012 (August 2012)","http://portal.acm.org/proceedings/pdc/","http://portal.acm.org/proceedings/pdc/archive/"
-"Conference Proceedings","PDSW: Petascale Data Storage","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pdsw/","http://portal.acm.org/proceedings/pdsw/archive/"
-"Conference Proceedings","PE-WASUN: Performance Evaluation of Wireless Ad hoc Sensor, and Ubiquitous Networks","","","","2004 (October 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/pe-wasun/","http://portal.acm.org/proceedings/pe-wasun/archive/"
-"Conference Proceedings","PEICS: Pattern-Driven Engineering of Interactive Computing Systems","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/peics/","http://portal.acm.org/proceedings/peics/archive/"
-"Conference Proceedings","PEPM: Partial Evaluation and Program Manipulation","","","","1991 (May 1991)","2013 (January 2013)","http://portal.acm.org/proceedings/pepm/","http://portal.acm.org/proceedings/pepm/archive/"
-"Conference Proceedings","PERFORMANCE: Computer Performance Modelling, Measurement and Evaluation","","","","1980 (May 1980)","1980 (May 1980)","http://portal.acm.org/proceedings/performance/","http://portal.acm.org/proceedings/performance/archive/"
-"Conference Proceedings","PESOS: Principles of Engineering Service-Oriented Systems","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/pesos/","http://portal.acm.org/proceedings/pesos/archive/"
-"Conference Proceedings","PETRA: Pervasive Technologies Related to Assistive Environments","","","","2008 (July 2008)","2013 (May 2013)","http://portal.acm.org/proceedings/petra/","http://portal.acm.org/proceedings/petra/archive/"
-"Conference Proceedings","PGAS: Partitioned Global Address Space Programing Models","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/pgas/","http://portal.acm.org/proceedings/pgas/archive/"
-"Conference Proceedings","PIKM: Ph.D. Students in Information and Knowledge Management","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pikm/","http://portal.acm.org/proceedings/pikm/archive/"
-"Conference Proceedings","PINS: Practice and Theory of Incentives in Networked Systems","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/pins/","http://portal.acm.org/proceedings/pins/archive/"
-"Conference Proceedings","PLAS: Programming Languages and Analysis for Security","","","","2006 (June 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/plas/","http://portal.acm.org/proceedings/plas/archive/"
-"Conference Proceedings","PLATE: Linking Aspect Technology and Evolution","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/plate/","http://portal.acm.org/proceedings/plate/archive/"
-"Conference Proceedings","PLDI: Programming Language Design and Implementation","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/pldi/","http://portal.acm.org/proceedings/pldi/archive/"
-"Conference Proceedings","PLEASE: Product Line Approaches in Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/please/","http://portal.acm.org/proceedings/please/archive/"
-"Conference Proceedings","PLOS: Programming Languages and Operating Systems","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/plos/","http://portal.acm.org/proceedings/plos/archive/"
-"Conference Proceedings","PLPV: Programming Languages Meets Program Verification","","","","2007 (October 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/plpv/","http://portal.acm.org/proceedings/plpv/archive/"
-"Conference Proceedings","PLoP: Pattern Languages of Programs","","","","2006 (October 2006)","2010 (August 2009)","http://portal.acm.org/proceedings/plop/","http://portal.acm.org/proceedings/plop/archive/"
-"Conference Proceedings","PMHWN: Performance Monitoring and Measurement of Heterogenous Wireless and Wired Networks","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/pmhwn/","http://portal.acm.org/proceedings/pmhwn/archive/"
-"Conference Proceedings","PODC: Principles of Distributed Computing","","","","1982 (August 1982)","2013 (July 2013)","http://portal.acm.org/proceedings/podc/","http://portal.acm.org/proceedings/podc/archive/"
-"Conference Proceedings","PODS: Principles of Database Systems","","","","1982 (March 1982)","2013 (June 2013)","http://portal.acm.org/proceedings/pods/","http://portal.acm.org/proceedings/pods/archive/"
-"Conference Proceedings","POMC: Principles of Mobile Computing","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/pomc/","http://portal.acm.org/proceedings/pomc/archive/"
-"Conference Proceedings","POOSC: Parallel/High-Performance Object-Oriented Scientific Computing","","","","2009 (July 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/poosc/","http://portal.acm.org/proceedings/poosc/archive/"
-"Conference Proceedings","POPL: Principles of Programming Languages","","","","1973 (October 1973)","2013 (January 2013)","http://portal.acm.org/proceedings/popl/","http://portal.acm.org/proceedings/popl/archive/"
-"Conference Proceedings","PP-TV: Peer-to-Peer Streaming and IP-TV","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/pp-tv/","http://portal.acm.org/proceedings/pp-tv/archive/"
-"Conference Proceedings","PPDP: Principles and Practice of Declarative Programming","","","","2000 (September 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/ppdp/","http://portal.acm.org/proceedings/ppdp/archive/"
-"Conference Proceedings","PPEALS: Parallel Programming: Experience with Applications, Languages and Systems","","","","1988 (January 1988)","1988 (January 1988)","http://portal.acm.org/proceedings/ppeals/","http://portal.acm.org/proceedings/ppeals/archive/"
-"Conference Proceedings","PPMMS: Peer-to-Peer Multimedia Streaming","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ppmms/","http://portal.acm.org/proceedings/ppmms/archive/"
-"Conference Proceedings","PPPJ: Principles and Practice of Programming in Java","","","","2006 (August 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/pppj/","http://portal.acm.org/proceedings/pppj/archive/"
-"Conference Proceedings","PPoPP: Principles and Practice of Parallel Programming","","","","1990 (February 1990)","2013 (February 2013)","http://portal.acm.org/proceedings/ppopp/","http://portal.acm.org/proceedings/ppopp/archive/"
-"Conference Proceedings","PRESTO: Programmable Routers for Extensible Services of Tomorrow","","","","2008 (August 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/presto/","http://portal.acm.org/proceedings/presto/archive/"
-"Conference Proceedings","PROCAMS: Projector Camera Systems","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/procams/","http://portal.acm.org/proceedings/procams/archive/"
-"Conference Proceedings","PROMISE: Predictor Models in Software Engineering","","","","2005 (May 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/promise/","http://portal.acm.org/proceedings/promise/archive/"
-"Conference Proceedings","PRS: Parallel Rendering","","","","1993 (November 1993)","1997 (October 1997)","http://portal.acm.org/proceedings/prs/","http://portal.acm.org/proceedings/prs/archive/"
-"Conference Proceedings","PST: Privacy, Security and Trust","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/pst/","http://portal.acm.org/proceedings/pst/archive/"
-"Conference Proceedings","PUI: Perceptive User Interfaces","","","","2001 (November 2001)","2001 (November 2001)","http://portal.acm.org/proceedings/pui/","http://portal.acm.org/proceedings/pui/archive/"
-"Conference Proceedings","PVG: Parallel and Large-Data Visualization and Graphics","","","","2001 (October 2001)","2003 (October 2003)","http://portal.acm.org/proceedings/pvg/","http://portal.acm.org/proceedings/pvg/archive/"
-"Conference Proceedings","PVGS: Parallel Visualization and Graphics","","","","1999 (October 1999)","1999 (October 1999)","http://portal.acm.org/proceedings/pvgs/","http://portal.acm.org/proceedings/pvgs/archive/"
-"Conference Proceedings","PaIR: Patent Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/pair/","http://portal.acm.org/proceedings/pair/archive/"
-"Conference Proceedings","PerMIS: Performance Metrics for Intelligent Systems","","","","2007 (August 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/permis/","http://portal.acm.org/proceedings/permis/archive/"
-"Conference Proceedings","Persuasive: Persuasive Technology","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/persuasive/","http://portal.acm.org/proceedings/persuasive/archive/"
-"Conference Proceedings","Ph.D.: EDBT Ph.D. workshop","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ph.d./","http://portal.acm.org/proceedings/ph.d./archive/"
-"Conference Proceedings","QSWinet: Quality of Service and Security for Wireless in Mobile Networks","","","","2005 (October 2005)","2012 (October 2012)","http://portal.acm.org/proceedings/qswinet/","http://portal.acm.org/proceedings/qswinet/archive/"
-"Conference Proceedings","QShine: Heterogeneous Networking for Quality, Reliability, Security and Robustness","","","","2006 (August 2006)","2008 (July 2008)","http://portal.acm.org/proceedings/qshine/","http://portal.acm.org/proceedings/qshine/archive/"
-"Conference Proceedings","QTNA: Queueing Theory and Network Applications","","","","2009 (July 2009)","2011 (August 2011)","http://portal.acm.org/proceedings/qtna/","http://portal.acm.org/proceedings/qtna/archive/"
-"Conference Proceedings","QUASOSS: Quality of Service-Oriented Software Systems","","","","2009 (August 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/quasoss/","http://portal.acm.org/proceedings/quasoss/archive/"
-"Conference Proceedings","QUOVADIS: Quantitative Stochastic Models in the Verification and Design of Software Systems","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/quovadis/","http://portal.acm.org/proceedings/quovadis/archive/"
-"Conference Proceedings","QUTE-SWAP: Quantitative Techniques for Software Agile Process","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/qute-swap/","http://portal.acm.org/proceedings/qute-swap/archive/"
-"Conference Proceedings","QoP: Quality of Protection","","","","2006 (October 2006)","2008 (October 2008)","http://portal.acm.org/proceedings/qop/","http://portal.acm.org/proceedings/qop/archive/"
-"Conference Proceedings","RAM-SE: Reflection, AOP and Meta-Data for Software Evolution","","","","2009 (July 2009)","2012 (June 2012)","http://portal.acm.org/proceedings/ram-se/","http://portal.acm.org/proceedings/ram-se/archive/"
-"Conference Proceedings","RAOOL: Relationships and Associations in Object-Oriented Languages","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/raool/","http://portal.acm.org/proceedings/raool/archive/"
-"Conference Proceedings","RBAC: Role-Based Access Control","","","","1996 (December 1996)","2000 (July 2000)","http://portal.acm.org/proceedings/rbac/","http://portal.acm.org/proceedings/rbac/archive/"
-"Conference Proceedings","REALMAN: Multi-Hop Ad Hoc Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/realman/","http://portal.acm.org/proceedings/realman/archive/"
-"Conference Proceedings","REALWSN: Real-world Wireless Sensor Networks","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/realwsn/","http://portal.acm.org/proceedings/realwsn/archive/"
-"Conference Proceedings","REBSE: Realising Evidence-Based Software Engineering","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/rebse/","http://portal.acm.org/proceedings/rebse/archive/"
-"Conference Proceedings","RECOMB: Resaerch in Computational Molecular Biology","","","","1997 (January 1997)","2004 (March 2004)","http://portal.acm.org/proceedings/recomb/","http://portal.acm.org/proceedings/recomb/archive/"
-"Conference Proceedings","RIPQoS: Revisiting IP QoS","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/ripqos/","http://portal.acm.org/proceedings/ripqos/archive/"
-"Conference Proceedings","RKRAS: Research In Knowledge Representation For Autonomous Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/rkras/","http://portal.acm.org/proceedings/rkras/archive/"
-"Conference Proceedings","ROA: Role of Abstraction in Software Engineering","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/roa/","http://portal.acm.org/proceedings/roa/archive/"
-"Conference Proceedings","ROSATEA: Role of Software Architecture for Testing and Analysis","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/rosatea/","http://portal.acm.org/proceedings/rosatea/archive/"
-"Conference Proceedings","RSSE: Recommendation Systems for Software Engineering","","","","2008 (November 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/rsse/","http://portal.acm.org/proceedings/rsse/archive/"
-"Conference Proceedings","RT: Randon Testing","","","","2006 (July 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/rt/","http://portal.acm.org/proceedings/rt/archive/"
-"Conference Proceedings","RULE: Rule-Based Programming","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/rule/","http://portal.acm.org/proceedings/rule/archive/"
-"Conference Proceedings","ReArch: Re-architecting the Internet","","","","2009 (December 2009)","2010 (November 2010)","http://portal.acm.org/proceedings/rearch/","http://portal.acm.org/proceedings/rearch/archive/"
-"Conference Proceedings","RecSys: Recommender Systems","","","","2007 (October 2007)","2013 (October 2013)","http://portal.acm.org/proceedings/recsys/","http://portal.acm.org/proceedings/recsys/archive/"
-"Conference Proceedings","Resilience: Resilience in High Performance","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/resilience/","http://portal.acm.org/proceedings/resilience/archive/"
-"Conference Proceedings","S&D4RCES: Security and Dependability for Resource Constrained Embedded Systems","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/s&d4rces/","http://portal.acm.org/proceedings/s&d4rces/archive/"
-"Conference Proceedings","S3: Wireless of the Students, by the Students, for the Students","","","","2008 (February 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/s3/","http://portal.acm.org/proceedings/s3/archive/"
-"Conference Proceedings","SAC: Symposium on Applied Computing","","","","1986 (October 1986)","2013 (March 2013)","http://portal.acm.org/proceedings/sac/","http://portal.acm.org/proceedings/sac/archive/"
-"Conference Proceedings","SACLA: Southern African Computer Lecturers' Association","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/sacla/","http://portal.acm.org/proceedings/sacla/archive/"
-"Conference Proceedings","SACMAT: Symposium on Access Control Models and Technologies","","","","2001 (May 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/sacmat/","http://portal.acm.org/proceedings/sacmat/archive/"
-"Conference Proceedings","SADPI: Semantically Aware Document Processing and Indexing","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sadpi/","http://portal.acm.org/proceedings/sadpi/archive/"
-"Conference Proceedings","SAICSIT: South African Institute of Computer Scientists and Information Technologists","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/saicsit/","http://portal.acm.org/proceedings/saicsit/archive/"
-"Conference Proceedings","SAM: Software Architectures and Mobility","","","","2008 (May 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/sam/","http://portal.acm.org/proceedings/sam/archive/"
-"Conference Proceedings","SAME: Semantic Ambient Media Experiences","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/same/","http://portal.acm.org/proceedings/same/archive/"
-"Conference Proceedings","SANET: Sensor and Actor Networks","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/sanet/","http://portal.acm.org/proceedings/sanet/archive/"
-"Conference Proceedings","SAPMIA: Social, Adaptive and Personalized Multimedia Interaction and Access","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sapmia/","http://portal.acm.org/proceedings/sapmia/archive/"
-"Conference Proceedings","SAS: Static Analysis","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/sas/","http://portal.acm.org/proceedings/sas/archive/"
-"Conference Proceedings","SASN: Security of Ad hoc and Sensor Networks","","","","2003 (October 2003)","2006 (October 2006)","http://portal.acm.org/proceedings/sasn/","http://portal.acm.org/proceedings/sasn/archive/"
-"Conference Proceedings","SAVCBS: Specification and Verification of Component-Based Systems","","","","2005 (September 2005)","2009 (August 2009)","http://portal.acm.org/proceedings/savcbs/","http://portal.acm.org/proceedings/savcbs/archive/"
-"Conference Proceedings","SAW: Static Analysis","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/saw/","http://portal.acm.org/proceedings/saw/archive/"
-"Conference Proceedings","SBCCI: Symposium on Integrated Circuits and System Design","","","","1998 (January 1998)","2011 (August 2011)","http://portal.acm.org/proceedings/sbcci/","http://portal.acm.org/proceedings/sbcci/archive/"
-"Conference Proceedings","SBIM: Sketch-Based Interfaces and Modeling","","","","2007 (August 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/sbim/","http://portal.acm.org/proceedings/sbim/archive/"
-"Conference Proceedings","SC: Supercomputing","","","","1988 (November 1988)","2013 (November 2013)","http://portal.acm.org/proceedings/sc/","http://portal.acm.org/proceedings/sc/archive/"
-"Conference Proceedings","SCA: Symposium on Computer Animation","","","","2002 (July 2002)","2013 (July 2013)","http://portal.acm.org/proceedings/sca/","http://portal.acm.org/proceedings/sca/archive/"
-"Conference Proceedings","SCC: Services Computing","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/scc/","http://portal.acm.org/proceedings/scc/archive/"
-"Conference Proceedings","SCCG: Spring Conference on Computer graphics","","","","2001 (April 2001)","2013 (March 2013)","http://portal.acm.org/proceedings/sccg/","http://portal.acm.org/proceedings/sccg/archive/"
-"Conference Proceedings","SCE: Summit on Computing Education","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/sce/","http://portal.acm.org/proceedings/sce/archive/"
-"Conference Proceedings","SCESM: Scenarios and State Machines","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/scesm/","http://portal.acm.org/proceedings/scesm/archive/"
-"Conference Proceedings","SCM: Software Configuration Management","","","","1989 (October 1989)","2005 (September 2005)","http://portal.acm.org/proceedings/scm/","http://portal.acm.org/proceedings/scm/archive/"
-"Conference Proceedings","SCN: Simulation of Computer Networks","","","","1987 (August 1987)","1987 (August 1987)","http://portal.acm.org/proceedings/scn/","http://portal.acm.org/proceedings/scn/archive/"
-"Conference Proceedings","SCOPES: Software and Compilers for Embedded Systems","","","","2005 (September 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/scopes/","http://portal.acm.org/proceedings/scopes/archive/"
-"Conference Proceedings","SCORE: Software Metrics","","","","1982 (August 1982)","1982 (August 1982)","http://portal.acm.org/proceedings/score/","http://portal.acm.org/proceedings/score/archive/"
-"Conference Proceedings","SCSC: Summer Computer Simulation Conference","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/scsc/","http://portal.acm.org/proceedings/scsc/archive/"
-"Conference Proceedings","SDDDM: Dependable Distributed Data Management","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/sdddm/","http://portal.acm.org/proceedings/sdddm/archive/"
-"Conference Proceedings","SDE: Software Development Environments","","","","1984 (April 1984)","1992 (November 1992)","http://portal.acm.org/proceedings/sde/","http://portal.acm.org/proceedings/sde/archive/"
-"Conference Proceedings","SDG: Software Development Governance","","","","2008 (May 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/sdg/","http://portal.acm.org/proceedings/sdg/archive/"
-"Conference Proceedings","SDSOA: Systems Development in SOA Environments","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/sdsoa/","http://portal.acm.org/proceedings/sdsoa/archive/"
-"Conference Proceedings","SE-HPC: Software Engineering for High Performance Computing Applications","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/se-hpc/","http://portal.acm.org/proceedings/se-hpc/archive/"
-"Conference Proceedings","SEAMS: Software Engineering for Adaptive and Self-Managing Systems","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/seams/","http://portal.acm.org/proceedings/seams/archive/"
-"Conference Proceedings","SEAS: Software Engineering for Automotive Systems","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/seas/","http://portal.acm.org/proceedings/seas/archive/"
-"Conference Proceedings","SECSE: Software Engineering for Computational Science and Engineering","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/secse/","http://portal.acm.org/proceedings/secse/archive/"
-"Conference Proceedings","SEESE: Software Engineering in East and South Europe","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/seese/","http://portal.acm.org/proceedings/seese/archive/"
-"Conference Proceedings","SEEUP: Software Engineering Foundations for End User Programming","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/seeup/","http://portal.acm.org/proceedings/seeup/archive/"
-"Conference Proceedings","SEHC: Software Engineering in Health Care","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/sehc/","http://portal.acm.org/proceedings/sehc/archive/"
-"Conference Proceedings","SEKE: Software Engineering and Knowledge Engineering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/seke/","http://portal.acm.org/proceedings/seke/archive/"
-"Conference Proceedings","SELMAS: Software Engineering for Large-Scale Multi-Agent Systems","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/selmas/","http://portal.acm.org/proceedings/selmas/archive/"
-"Conference Proceedings","SEM: Software Engineering and Middleware","","","","2005 (September 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/sem/","http://portal.acm.org/proceedings/sem/archive/"
-"Conference Proceedings","SEMSEARCH: Semantic Search","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/semsearch/","http://portal.acm.org/proceedings/semsearch/archive/"
-"Conference Proceedings","SEPCASE: Software Engineering for Pervasive Computing Applications, Systems, and Environments","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sepcase/","http://portal.acm.org/proceedings/sepcase/archive/"
-"Conference Proceedings","SEPS: Software Engineering for Pervasive Services","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/seps/","http://portal.acm.org/proceedings/seps/archive/"
-"Conference Proceedings","SERENE: Software Engineering for Resilient Systems","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/serene/","http://portal.acm.org/proceedings/serene/archive/"
-"Conference Proceedings","SESENA: Software Engineering for Sensor Network Applications","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/sesena/","http://portal.acm.org/proceedings/sesena/archive/"
-"Conference Proceedings","SESS: Software Engineering for Secure Systems","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/sess/","http://portal.acm.org/proceedings/sess/archive/"
-"Conference Proceedings","SETA: Symposium on Environments and Tools for Ada","","","","1991 (April 1991)","1994 (September 1994)","http://portal.acm.org/proceedings/seta/","http://portal.acm.org/proceedings/seta/archive/"
-"Conference Proceedings","SETMDM: Software Engineering for Tailor-Made Data Management","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/setmdm/","http://portal.acm.org/proceedings/setmdm/archive/"
-"Conference Proceedings","SGP: Symposium on Geometry Processing","","","","2003 (June 2003)","2006 (June 2006)","http://portal.acm.org/proceedings/sgp/","http://portal.acm.org/proceedings/sgp/archive/"
-"Conference Proceedings","SHARK: Sharing and Reusing Architectural Knowledge","","","","2007 (May 2007)","2011 (May 2011)","http://portal.acm.org/proceedings/shark/","http://portal.acm.org/proceedings/shark/archive/"
-"Conference Proceedings","SICOSIM: SICOSIM","","","","1972 (October 1972)","1973 (October 1973)","http://portal.acm.org/proceedings/sicosim/","http://portal.acm.org/proceedings/sicosim/archive/"
-"Conference Proceedings","SIGAda: SIGAda International Conference on Ada","","","","1985 (May 1985)","2011 (November 2011)","http://portal.acm.org/proceedings/sigada/","http://portal.acm.org/proceedings/sigada/archive/"
-"Conference Proceedings","SIGBDP: SIGBDP Conference on Trends and Directions in Expert Systems","","","","1990 (September 1990)","1990 (September 1990)","http://portal.acm.org/proceedings/sigbdp/","http://portal.acm.org/proceedings/sigbdp/archive/"
-"Conference Proceedings","SIGCOMM LA: Data Communication in Latin America and the Caribbean","","","","2001 (April 2001)","2001 (April 2001)","http://portal.acm.org/proceedings/sigcommla/","http://portal.acm.org/proceedings/sigcommla/archive/"
-"Conference Proceedings","SIGCOMM: ACM SIGCOMM","","","","1977 (September 1977)","2013 (August 2013)","http://portal.acm.org/proceedings/sigcomm/","http://portal.acm.org/proceedings/sigcomm/archive/"
-"Conference Proceedings","SIGCSE: Computer Science Education","","","","1970 (January 1970)","2013 (March 2013)","http://portal.acm.org/proceedings/sigcse/","http://portal.acm.org/proceedings/sigcse/archive/"
-"Conference Proceedings","SIGDOC: Design of Communication","","","","1982 (January 1982)","2013 (September 2013)","http://portal.acm.org/proceedings/sigdoc/","http://portal.acm.org/proceedings/sigdoc/archive/"
-"Conference Proceedings","SIGFIDET: Data Description, Access and Control","","","","1970 (November 1970)","1975 (January 1975)","http://portal.acm.org/proceedings/sigfidet/","http://portal.acm.org/proceedings/sigfidet/archive/"
-"Conference Proceedings","SIGGRAPH Asia: Computer Graphics and Interactive Techniques Conference - Asia","","","","2008 (December 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/siggraphasia/","http://portal.acm.org/proceedings/siggraphasia/archive/"
-"Conference Proceedings","SIGGRAPH: Computer Graphics and Interactive Techniques Conference","","","","1974 (July 1974)","2013 (July 2013)","http://portal.acm.org/proceedings/siggraph/","http://portal.acm.org/proceedings/siggraph/archive/"
-"Conference Proceedings","SIGIR: Information Retrieval","","","","1971 (April 1971)","2013 (July 2013)","http://portal.acm.org/proceedings/sigir/","http://portal.acm.org/proceedings/sigir/archive/"
-"Conference Proceedings","SIGITE: Information Technology Education","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/sigite/","http://portal.acm.org/proceedings/sigite/archive/"
-"Conference Proceedings","SIGME: SIGME Symposium","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/sigme/","http://portal.acm.org/proceedings/sigme/archive/"
-"Conference Proceedings","SIGMETRICS: Measurement and Modeling of Computer Systems","","","","1974 (January 1974)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmetrics/","http://portal.acm.org/proceedings/sigmetrics/archive/"
-"Conference Proceedings","SIGMINI: SIGMINI Symposium on Small Systems","","","","1976 (March 1976)","1978 (August 1978)","http://portal.acm.org/proceedings/sigmini/","http://portal.acm.org/proceedings/sigmini/archive/"
-"Conference Proceedings","SIGMOD: Management of Data","","","","1975 (May 1975)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmod/","http://portal.acm.org/proceedings/sigmod/archive/"
-"Conference Proceedings","SIGPLAN: SIGPLAN Symposium","","","","1973 (November 1973)","1987 (July 1987)","http://portal.acm.org/proceedings/sigplan/","http://portal.acm.org/proceedings/sigplan/archive/"
-"Conference Proceedings","SIGSMALL: SIGSMALL/PC Symposium on Small Systems","","","","1979 (October 1979)","1991 (May 1991)","http://portal.acm.org/proceedings/sigsmall/","http://portal.acm.org/proceedings/sigsmall/archive/"
-"Conference Proceedings","SIGSOFT: Foundations of Software Engineering","","","","1983 (January 1983)","2012 (November 2012)","http://portal.acm.org/proceedings/sigsoft/","http://portal.acm.org/proceedings/sigsoft/archive/"
-"Conference Proceedings","SIGUCCS: User Services","","","","1972 (January 1972)","2013 (November 2013)","http://portal.acm.org/proceedings/siguccs/","http://portal.acm.org/proceedings/siguccs/archive/"
-"Conference Proceedings","SIMPLEX: Simplifying Complex Network for Practitioners","","","","2009 (July 2009)","2012 (April 2012)","http://portal.acm.org/proceedings/simplex/","http://portal.acm.org/proceedings/simplex/archive/"
-"Conference Proceedings","SIMUTools: Simulation Tools and Techniques","","","","2010 (March 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/simutools/","http://portal.acm.org/proceedings/simutools/archive/"
-"Conference Proceedings","SIN: Security of Information and Networks","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/sin/","http://portal.acm.org/proceedings/sin/archive/"
-"Conference Proceedings","SINTER: Software Integration and Evolution at Runtime","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sinter/","http://portal.acm.org/proceedings/sinter/archive/"
-"Conference Proceedings","SIPE: Services Integration in Pervasive Environments","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/sipe/","http://portal.acm.org/proceedings/sipe/archive/"
-"Conference Proceedings","SISAP: Similarity Search and Applications","","","","2008 (April 2008)","2011 (June 2011)","http://portal.acm.org/proceedings/sisap/","http://portal.acm.org/proceedings/sisap/archive/"
-"Conference Proceedings","SLIP: System Level Interconnect Prediction","","","","2000 (April 2000)","2012 (June 2012)","http://portal.acm.org/proceedings/slip/","http://portal.acm.org/proceedings/slip/archive/"
-"Conference Proceedings","SLIPE: Symposium on Language Issues in Programming Environments","","","","1985 (June 1985)","1985 (June 1985)","http://portal.acm.org/proceedings/slipe/","http://portal.acm.org/proceedings/slipe/archive/"
-"Conference Proceedings","SM: Solid Modelling and Applications","","","","1991 (May 1991)","2004 (June 2004)","http://portal.acm.org/proceedings/sm/","http://portal.acm.org/proceedings/sm/archive/"
-"Conference Proceedings","SMARTGRAPH: Smart Graphics","","","","2002 (June 2002)","2002 (June 2002)","http://portal.acm.org/proceedings/smartgraph/","http://portal.acm.org/proceedings/smartgraph/archive/"
-"Conference Proceedings","SMCtools: Tools for Solving Structured Markov Chains","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/smctools/","http://portal.acm.org/proceedings/smctools/archive/"
-"Conference Proceedings","SMT: Satisfiability Modulo Theories","","","","2008 (July 2008)","2009 (August 2009)","http://portal.acm.org/proceedings/smt/","http://portal.acm.org/proceedings/smt/archive/"
-"Conference Proceedings","SMUC: Search and Mining User-generated Contents","","","","2010 (October 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/smuc/","http://portal.acm.org/proceedings/smuc/archive/"
-"Conference Proceedings","SMVC: Surreal Media and Virtual Cloning","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/smvc/","http://portal.acm.org/proceedings/smvc/archive/"
-"Conference Proceedings","SNA-KDD: Social Network Mining and Analysis","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/sna-kdd/","http://portal.acm.org/proceedings/sna-kdd/archive/"
-"Conference Proceedings","SNAPI: Storage Network Architecture and Parallel I/Os","","","","2003 (September 2003)","2004 (September 2004)","http://portal.acm.org/proceedings/snapi/","http://portal.acm.org/proceedings/snapi/archive/"
-"Conference Proceedings","SNC: Symbolic-Numeric Computation","","","","2007 (July 2007)","2011 (June 2012)","http://portal.acm.org/proceedings/snc/","http://portal.acm.org/proceedings/snc/archive/"
-"Conference Proceedings","SNS: Social Network Systems","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/sns/","http://portal.acm.org/proceedings/sns/archive/"
-"Conference Proceedings","SOAR: Self-organizing Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/soar/","http://portal.acm.org/proceedings/soar/archive/"
-"Conference Proceedings","SOCP: Service-oriented Computing Performance","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/socp/","http://portal.acm.org/proceedings/socp/archive/"
-"Conference Proceedings","SODA: Symposium on Discrete Algorithms","","","","1990 (January 1990)","2012 (January 2012)","http://portal.acm.org/proceedings/soda/","http://portal.acm.org/proceedings/soda/archive/"
-"Conference Proceedings","SOMITAS: Software Organisation and Monitoring of Ambient Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/somitas/","http://portal.acm.org/proceedings/somitas/archive/"
-"Conference Proceedings","SOQUA: Software Quality Assurance","","","","2006 (November 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/soqua/","http://portal.acm.org/proceedings/soqua/archive/"
-"Conference Proceedings","SOSE: Service-Oriented Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/sose/","http://portal.acm.org/proceedings/sose/archive/"
-"Conference Proceedings","SOSOC: Security in Opportunistic and Social networks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/sosoc/","http://portal.acm.org/proceedings/sosoc/archive/"
-"Conference Proceedings","SOSP: Symposium on Operating Systems Principles","","","","1967 (January 1967)","2013 (November 2013)","http://portal.acm.org/proceedings/sosp/","http://portal.acm.org/proceedings/sosp/archive/"
-"Conference Proceedings","SOUPS: Symposium on Usable Privacy and Security","","","","2005 (July 2005)","2013 (July 2013)","http://portal.acm.org/proceedings/soups/","http://portal.acm.org/proceedings/soups/archive/"
-"Conference Proceedings","SP: Security and Privacy","","","","1996 (May 1996)","1996 (May 1996)","http://portal.acm.org/proceedings/sp/","http://portal.acm.org/proceedings/sp/archive/"
-"Conference Proceedings","SPAA: Symposium on Parallelism in Algorithms and Architectures","","","","1989 (March 1989)","2013 (July 2013)","http://portal.acm.org/proceedings/spaa/","http://portal.acm.org/proceedings/spaa/archive/"
-"Conference Proceedings","SPDT: Parallel and Distributed Tools","","","","1996 (January 1996)","1998 (August 1998)","http://portal.acm.org/proceedings/spdt/","http://portal.acm.org/proceedings/spdt/archive/"
-"Conference Proceedings","SPIMACS: Security and Privacy in Medical and Home-Care Systems","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/spimacs/","http://portal.acm.org/proceedings/spimacs/archive/"
-"Conference Proceedings","SPIN: SPIN workshop on Model Checking of Software","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/spin/","http://portal.acm.org/proceedings/spin/archive/"
-"Conference Proceedings","SPLASH: Object-Oriented Programming Systems, Languages, and Applications","","","","1986 (June 1986)","2013 (October 2013)","http://portal.acm.org/proceedings/splash/","http://portal.acm.org/proceedings/splash/archive/"
-"Conference Proceedings","SPLAT: Software Engineering Properties of Languages and Aspect Technologies","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/splat/","http://portal.acm.org/proceedings/splat/archive/"
-"Conference Proceedings","SPM: Geometric and Physical Modeling","","","","2005 (June 2005)","2010 (September 2010)","http://portal.acm.org/proceedings/spm/","http://portal.acm.org/proceedings/spm/archive/"
-"Conference Proceedings","SPRINGL: Security and Privacy in GIS and LBS","","","","2008 (November 2008)","2011 (November 2011)","http://portal.acm.org/proceedings/springl/","http://portal.acm.org/proceedings/springl/archive/"
-"Conference Proceedings","SRMC: Story Representation, Mechanism and Context","","","","2004 (October 2004)","2008 (October 2008)","http://portal.acm.org/proceedings/srmc/","http://portal.acm.org/proceedings/srmc/archive/"
-"Conference Proceedings","SSCS: Searching Spontaneous COnversational Speech","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/sscs/","http://portal.acm.org/proceedings/sscs/archive/"
-"Conference Proceedings","SSEE: Summit on Software Engineering Eductation","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/ssee/","http://portal.acm.org/proceedings/ssee/archive/"
-"Conference Proceedings","SSM: Search in Social Media","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/ssm/","http://portal.acm.org/proceedings/ssm/archive/"
-"Conference Proceedings","SSPS: Scalable Stream Processing System","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ssps/","http://portal.acm.org/proceedings/ssps/archive/"
-"Conference Proceedings","SSPW: Social Signal Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sspw/","http://portal.acm.org/proceedings/sspw/archive/"
-"Conference Proceedings","SSR: Symposium on Software Reusability","","","","1995 (August 1995)","2001 (May 2001)","http://portal.acm.org/proceedings/ssr/","http://portal.acm.org/proceedings/ssr/archive/"
-"Conference Proceedings","SSRS: Survivable and Self-Regenerative Systems","","","","2003 (October 2003)","2003 (October 2003)","http://portal.acm.org/proceedings/ssrs/","http://portal.acm.org/proceedings/ssrs/archive/"
-"Conference Proceedings","STC: Scalable Trusted Computing","","","","2006 (November 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/stc/","http://portal.acm.org/proceedings/stc/archive/"
-"Conference Proceedings","STOC: Symposium on Theory of Computing","","","","1969 (May 1969)","2013 (June 2013)","http://portal.acm.org/proceedings/stoc/","http://portal.acm.org/proceedings/stoc/archive/"
-"Conference Proceedings","STOP: Script to Program Evolution","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/stop/","http://portal.acm.org/proceedings/stop/archive/"
-"Conference Proceedings","STOV: Software Test Output Validation","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/stov/","http://portal.acm.org/proceedings/stov/archive/"
-"Conference Proceedings","SUITE: Search-driven Development: Users, Infrastructure, Tools and Evaluation","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/suite/","http://portal.acm.org/proceedings/suite/archive/"
-"Conference Proceedings","SVR: SIGGRAPH Video Review","","","","2001 (August 2001)","2003 (July 2003)","http://portal.acm.org/proceedings/svr/","http://portal.acm.org/proceedings/svr/archive/"
-"Conference Proceedings","SWS: Secure Web Services","","","","2004 (October 2004)","2009 (November 2009)","http://portal.acm.org/proceedings/sws/","http://portal.acm.org/proceedings/sws/archive/"
-"Conference Proceedings","SWSM: Social Web Search and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/swsm/","http://portal.acm.org/proceedings/swsm/archive/"
-"Conference Proceedings","SYANCO: Synthesis and Analysis of Component Connectors","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/syanco/","http://portal.acm.org/proceedings/syanco/archive/"
-"Conference Proceedings","SYMSAC: Symposium on Symbolic and Algebraic Computation","","","","1966 (January 1966)","1986 (October 1986)","http://portal.acm.org/proceedings/symsac/","http://portal.acm.org/proceedings/symsac/archive/"
-"Conference Proceedings","SYSTOR: Experimental Systems Conference","","","","2009 (May 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/systor/","http://portal.acm.org/proceedings/systor/archive/"
-"Conference Proceedings","SafeConfig: Assurable and Usable Security Configuration","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/safeconfig/","http://portal.acm.org/proceedings/safeconfig/archive/"
-"Conference Proceedings","Sandbox: Symposium on Video Games","","","","2006 (July 2006)","2011 (August 2011)","http://portal.acm.org/proceedings/sandbox/","http://portal.acm.org/proceedings/sandbox/archive/"
-"Conference Proceedings","SecPerU: Security, Privacy and Trust in Pervasive and Ubiquitous Computing","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/secperu/","http://portal.acm.org/proceedings/secperu/archive/"
-"Conference Proceedings","SecuCode: Secure Execution of Untrusted Code","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/secucode/","http://portal.acm.org/proceedings/secucode/archive/"
-"Conference Proceedings","SecureComm: Security and Privacy in Communication Netowrks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/securecomm/","http://portal.acm.org/proceedings/securecomm/archive/"
-"Conference Proceedings","SenSys: Embedded Networked Sensor Systems","","","","2003 (November 2003)","2013 (November 2013)","http://portal.acm.org/proceedings/sensys/","http://portal.acm.org/proceedings/sensys/archive/"
-"Conference Proceedings","SensorKDD: Knowledge Discovery from Sensor Data","","","","2009 (June 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/sensorkdd/","http://portal.acm.org/proceedings/sensorkdd/archive/"
-"Conference Proceedings","SoCC: Cloud Computing","","","","2010 (June 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/socc/","http://portal.acm.org/proceedings/socc/archive/"
-"Conference Proceedings","SoCG: Computational Geometry","","","","1985 (June 1985)","2013 (June 2013)","http://portal.acm.org/proceedings/socg/","http://portal.acm.org/proceedings/socg/archive/"
-"Conference Proceedings","SoD: Science of Design","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/sod/","http://portal.acm.org/proceedings/sod/archive/"
-"Conference Proceedings","SoICT: Information and Communication Technology","","","","2010 (August 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/soict/","http://portal.acm.org/proceedings/soict/archive/"
-"Conference Proceedings","SoSEA: Social Software Engineering Applications","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sosea/","http://portal.acm.org/proceedings/sosea/archive/"
-"Conference Proceedings","SocialNets: Social Network Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/socialnets/","http://portal.acm.org/proceedings/socialnets/archive/"
-"Conference Proceedings","SoftVis: Software Visualization","","","","2003 (June 2003)","2010 (October 2010)","http://portal.acm.org/proceedings/softvis/","http://portal.acm.org/proceedings/softvis/archive/"
-"Conference Proceedings","SpringSim: Spring Simulation Multiconference","","","","2007 (March 2007)","2013 (April 2013)","http://portal.acm.org/proceedings/springsim/","http://portal.acm.org/proceedings/springsim/archive/"
-"Conference Proceedings","StReBio: Statistical and Relational Learning in Bioinformatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/strebio/","http://portal.acm.org/proceedings/strebio/archive/"
-"Conference Proceedings","StorageSS: Storage Security and Survivability","","","","2005 (November 2005)","2008 (October 2008)","http://portal.acm.org/proceedings/storagess/","http://portal.acm.org/proceedings/storagess/archive/"
-"Conference Proceedings","StreamKDD: Novel Data Stream Pattern Mining Techniques","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/streamkdd/","http://portal.acm.org/proceedings/streamkdd/archive/"
-"Conference Proceedings","TAMODIA: Task Models and Diagrams","","","","2004 (November 2004)","2005 (September 2005)","http://portal.acm.org/proceedings/tamodia/","http://portal.acm.org/proceedings/tamodia/archive/"
-"Conference Proceedings","TAPAS: Technology and Policy for Accessing Spectrum","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/tapas/","http://portal.acm.org/proceedings/tapas/archive/"
-"Conference Proceedings","TAPIA: Diversity in Computing","","","","2003 (October 2003)","2009 (April 2009)","http://portal.acm.org/proceedings/tapia/","http://portal.acm.org/proceedings/tapia/archive/"
-"Conference Proceedings","TAPP: Theory and Practice of Provenance","","","","2010 (February 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/tapp/","http://portal.acm.org/proceedings/tapp/archive/"
-"Conference Proceedings","TARK: Theoretical Aspects of Rationality and Knowledge","","","","1986 (March 1986)","2009 (July 2009)","http://portal.acm.org/proceedings/tark/","http://portal.acm.org/proceedings/tark/archive/"
-"Conference Proceedings","TAU: Timing Iissues in the Specification and Synthesis of Digital Systems","","","","2002 (December 2002)","2002 (December 2002)","http://portal.acm.org/proceedings/tau/","http://portal.acm.org/proceedings/tau/archive/"
-"Conference Proceedings","TAV: Testing, Analysis and Verification","","","","1989 (November 1989)","2008 (July 2008)","http://portal.acm.org/proceedings/tav/","http://portal.acm.org/proceedings/tav/archive/"
-"Conference Proceedings","TEFSE: Traceability in Emerging Forms of Software Engineering","","","","2005 (November 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/tefse/","http://portal.acm.org/proceedings/tefse/archive/"
-"Conference Proceedings","TEI: Tangible and Embedded Interaction","","","","2007 (February 2007)","2013 (February 2013)","http://portal.acm.org/proceedings/tei/","http://portal.acm.org/proceedings/tei/archive/"
-"Conference Proceedings","TG: TeraGrid","","","","2010 (August 2010)","2011 (July 2011)","http://portal.acm.org/proceedings/tg/","http://portal.acm.org/proceedings/tg/archive/"
-"Conference Proceedings","TINLAP: Theoretical Issues in Natural Language Processing","","","","1975 (June 1975)","1975 (June 1975)","http://portal.acm.org/proceedings/tinlap/","http://portal.acm.org/proceedings/tinlap/archive/"
-"Conference Proceedings","TLDI: Types in Language Design and Implentation","","","","2003 (January 2003)","2012 (January 2012)","http://portal.acm.org/proceedings/tldi/","http://portal.acm.org/proceedings/tldi/archive/"
-"Conference Proceedings","TMBIO: Text Mining in Bioinformatics","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/tmbio/","http://portal.acm.org/proceedings/tmbio/archive/"
-"Conference Proceedings","TMR: Tagging, Mining and Retrieval","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/tmr/","http://portal.acm.org/proceedings/tmr/archive/"
-"Conference Proceedings","TRI-Ada: TRI-Ada","","","","1989 (January 1989)","1997 (November 1997)","http://portal.acm.org/proceedings/tri-ada/","http://portal.acm.org/proceedings/tri-ada/archive/"
-"Conference Proceedings","TSA: Topic-Sentiment Analysis for Mass Opinion","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/tsa/","http://portal.acm.org/proceedings/tsa/archive/"
-"Conference Proceedings","TT: Software Technology Transfer in Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/tt/","http://portal.acm.org/proceedings/tt/archive/"
-"Conference Proceedings","TVS: TRECVid Video Summarization","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/tvs/","http://portal.acm.org/proceedings/tvs/archive/"
-"Conference Proceedings","TridentCom: Testbeds and Research Infrastructures for the Development of Networks & Communities","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/tridentcom/","http://portal.acm.org/proceedings/tridentcom/archive/"
-"Conference Proceedings","U-NET: User-Provided Networking","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/u-net/","http://portal.acm.org/proceedings/u-net/archive/"
-"Conference Proceedings","U: Knowledge Discovery from Uncertain Data","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/u/","http://portal.acm.org/proceedings/u/archive/"
-"Conference Proceedings","UBDM: Utility-Based Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/ubdm/","http://portal.acm.org/proceedings/ubdm/archive/"
-"Conference Proceedings","UCHPC-MAW: UnConventional High Performance Computing Workshop plus Memory Access Workshop","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/uchpc-maw/","http://portal.acm.org/proceedings/uchpc-maw/archive/"
-"Conference Proceedings","UCVP: Use of Context in Vision Processing","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/ucvp/","http://portal.acm.org/proceedings/ucvp/archive/"
-"Conference Proceedings","UIST: User Interface Software and Technology","","","","1988 (January 1988)","2013 (October 2013)","http://portal.acm.org/proceedings/uist/","http://portal.acm.org/proceedings/uist/archive/"
-"Conference Proceedings","ULSSIS: Ultra-Large-Scale Software-Intensive Systems","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/ulssis/","http://portal.acm.org/proceedings/ulssis/archive/"
-"Conference Proceedings","UML: Unified Modeling Language","","","","1999 (October 1999)","2000 (October 2000)","http://portal.acm.org/proceedings/uml/","http://portal.acm.org/proceedings/uml/archive/"
-"Conference Proceedings","UODIGS: User-Oriented Design of Interactive Graphics Systems","","","","1977 (October 1976)","1977 (October 1976)","http://portal.acm.org/proceedings/uodigs/","http://portal.acm.org/proceedings/uodigs/archive/"
-"Conference Proceedings","UP: Useful Patterns","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/up/","http://portal.acm.org/proceedings/up/archive/"
-"Conference Proceedings","UPGRADE: Use of P2P, GRID and Agents for the Development of Content Networks","","","","2007 (June 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/upgrade/","http://portal.acm.org/proceedings/upgrade/archive/"
-"Conference Proceedings","UXTV: Designing Interactive User Experiences for TV and Video","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/uxtv/","http://portal.acm.org/proceedings/uxtv/archive/"
-"Conference Proceedings","UbiComp: Ubiquitous Computing","","","","2002 (September 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/ubicomp/","http://portal.acm.org/proceedings/ubicomp/archive/"
-"Conference Proceedings","UbiMob: Mobility and Ubiquity Computing","","","","2004 (June 2004)","2009 (July 2009)","http://portal.acm.org/proceedings/ubimob/","http://portal.acm.org/proceedings/ubimob/archive/"
-"Conference Proceedings","UltraVis: Ultrascale Visualization","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ultravis/","http://portal.acm.org/proceedings/ultravis/archive/"
-"Conference Proceedings","VAKD: Visual Analytics and Knowledge Discovery","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/vakd/","http://portal.acm.org/proceedings/vakd/archive/"
-"Conference Proceedings","VANET: VehiculAr InterNETworking","","","","2004 (October 2004)","2013 (June 2013)","http://portal.acm.org/proceedings/vanet/","http://portal.acm.org/proceedings/vanet/archive/"
-"Conference Proceedings","VAST: Visual Analytics Science and Technology","","","","2001 (November 2001)","2009 (September 2009)","http://portal.acm.org/proceedings/vast/","http://portal.acm.org/proceedings/vast/archive/"
-"Conference Proceedings","VDTS: Virtualization Technology for Dependable Systems","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/vdts/","http://portal.acm.org/proceedings/vdts/archive/"
-"Conference Proceedings","VEE: Virtual Execution Environments","","","","2005 (June 2005)","2013 (March 2013)","http://portal.acm.org/proceedings/vee/","http://portal.acm.org/proceedings/vee/archive/"
-"Conference Proceedings","VG: Volume Graphics","","","","2003 (July 2003)","2005 (June 2005)","http://portal.acm.org/proceedings/vg/","http://portal.acm.org/proceedings/vg/archive/"
-"Conference Proceedings","VIS: Visualization","","","","1990 (October 1990)","2004 (October 2004)","http://portal.acm.org/proceedings/vis/","http://portal.acm.org/proceedings/vis/archive/"
-"Conference Proceedings","VISA: Virtualized Infrastructure Systems and Architectures","","","","2009 (August 2009)","2010 (September 2010)","http://portal.acm.org/proceedings/visa/","http://portal.acm.org/proceedings/visa/archive/"
-"Conference Proceedings","VISSYM: Symposium on Data Visualisation","","","","2003 (May 2003)","2004 (May 2004)","http://portal.acm.org/proceedings/vissym/","http://portal.acm.org/proceedings/vissym/archive/"
-"Conference Proceedings","VLDB: Very Large Data Bases","","","","1975 (September 1975)","2007 (September 2007)","http://portal.acm.org/proceedings/vldb/","http://portal.acm.org/proceedings/vldb/archive/"
-"Conference Proceedings","VLS-MCMR: Very-Large-Scale Multimedia Corpus, Mining and Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/vls-mcmr/","http://portal.acm.org/proceedings/vls-mcmr/archive/"
-"Conference Proceedings","VMIL: Virtual Machines and Intermediate Languages","","","","2007 (March 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/vmil/","http://portal.acm.org/proceedings/vmil/archive/"
-"Conference Proceedings","VMSec: Virtual Machine Security","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/vmsec/","http://portal.acm.org/proceedings/vmsec/archive/"
-"Conference Proceedings","VNBA: Vision Networks for Behaviour Analysis","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/vnba/","http://portal.acm.org/proceedings/vnba/archive/"
-"Conference Proceedings","VRCAI: Virtual Reality Continuum and its Applications in Industry","","","","2004 (June 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/vrcai/","http://portal.acm.org/proceedings/vrcai/archive/"
-"Conference Proceedings","VRML: Virtual Reality Modeling Language","","","","1995 (January 1995)","2000 (February 2000)","http://portal.acm.org/proceedings/vrml/","http://portal.acm.org/proceedings/vrml/archive/"
-"Conference Proceedings","VRST: Virtual Reality Software and Technology","","","","1997 (September 1997)","2013 (October 2013)","http://portal.acm.org/proceedings/vrst/","http://portal.acm.org/proceedings/vrst/archive/"
-"Conference Proceedings","VSSN: Video Surveillance and Sensor Networks","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/vssn/","http://portal.acm.org/proceedings/vssn/archive/"
-"Conference Proceedings","VTDC: Virtualization Technology in Distributed Computing","","","","2006 (November 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/vtdc/","http://portal.acm.org/proceedings/vtdc/archive/"
-"Conference Proceedings","VVS: Symposium on Volume Visualization","","","","1989 (May 1989)","2002 (October 2002)","http://portal.acm.org/proceedings/vvs/","http://portal.acm.org/proceedings/vvs/archive/"
-"Conference Proceedings","ValueTools: Performance Evaluation Methodologies and Tools","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","Valuetools: Performance Evaluation Methodologies and Tools","","","","2006 (October 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","VizSEC: Visualization for Computer Security","","","","2004 (October 2004)","2006 (November 2006)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","VizSec: Visualization for Cyber Security","","","","2010 (September 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","WA: Web Accessibility","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/wa/","http://portal.acm.org/proceedings/wa/archive/"
-"Conference Proceedings","WACC: Work Activities Coordination and Collaboration","","","","1999 (March 1999)","1999 (March 1999)","http://portal.acm.org/proceedings/wacc/","http://portal.acm.org/proceedings/wacc/archive/"
-"Conference Proceedings","WADAS: Washington Ada symposium on Ada","","","","1984 (March 1984)","1994 (July 1994)","http://portal.acm.org/proceedings/wadas/","http://portal.acm.org/proceedings/wadas/archive/"
-"Conference Proceedings","WADS: Workshop on Architecting Dependable Systems","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wads/","http://portal.acm.org/proceedings/wads/archive/"
-"Conference Proceedings","WBIA: Workshop on Binary Instrumentation and Applications","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/wbia/","http://portal.acm.org/proceedings/wbia/archive/"
-"Conference Proceedings","WBMA: Biometrics Methods and Applications","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/wbma/","http://portal.acm.org/proceedings/wbma/archive/"
-"Conference Proceedings","WCAE: Computer Architecture Education","","","","1995 (January 1995)","2007 (June 2007)","http://portal.acm.org/proceedings/wcae/","http://portal.acm.org/proceedings/wcae/archive/"
-"Conference Proceedings","WCCCE: Computing Education","","","","2009 (May 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/wccce/","http://portal.acm.org/proceedings/wccce/archive/"
-"Conference Proceedings","WCFLP: Workshop on Curry and Functional Logic Programming","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/wcflp/","http://portal.acm.org/proceedings/wcflp/archive/"
-"Conference Proceedings","WDTN: Delay-Tolerant Networking","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/wdtn/","http://portal.acm.org/proceedings/wdtn/archive/"
-"Conference Proceedings","WEASELTech: Empirical Assessment of Software Engineering Languages and Technologies","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/weaseltech/","http://portal.acm.org/proceedings/weaseltech/archive/"
-"Conference Proceedings","WEH: Exception Handling","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/weh/","http://portal.acm.org/proceedings/weh/archive/"
-"Conference Proceedings","WESS: Workshop on Embedded Systems Security","","","","2009 (October 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/wess/","http://portal.acm.org/proceedings/wess/archive/"
-"Conference Proceedings","WETSoM: Workshop on Emerging Trends in Software Metrics","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/wetsom/","http://portal.acm.org/proceedings/wetsom/archive/"
-"Conference Proceedings","WEUSE: Workshop on End-User Software Engineering","","","","2005 (May 2005)","2008 (May 2008)","http://portal.acm.org/proceedings/weuse/","http://portal.acm.org/proceedings/weuse/archive/"
-"Conference Proceedings","WEWST: Workshop on Enhanced Web Service Technologies","","","","2009 (November 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/wewst/","http://portal.acm.org/proceedings/wewst/archive/"
-"Conference Proceedings","WGP: Workshop on Generic Programming","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wgp/","http://portal.acm.org/proceedings/wgp/archive/"
-"Conference Proceedings","WH: Wireless Health","","","","2010 (October 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/wh/","http://portal.acm.org/proceedings/wh/archive/"
-"Conference Proceedings","WHPCF: High Performance Computational Finance","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/whpcf/","http://portal.acm.org/proceedings/whpcf/archive/"
-"Conference Proceedings","WI-IATW: Web Intelligence and Intelligent Agent Technology","","","","2006 (December 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/wi-iatw/","http://portal.acm.org/proceedings/wi-iatw/archive/"
-"Conference Proceedings","WI: Web Intelligence","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/wi/","http://portal.acm.org/proceedings/wi/archive/"
-"Conference Proceedings","WICON: Wireless internet","","","","2006 (August 2006)","2007 (October 2007)","http://portal.acm.org/proceedings/wicon/","http://portal.acm.org/proceedings/wicon/archive/"
-"Conference Proceedings","WICOW: Information Credibility on the Web","","","","2008 (October 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/wicow/","http://portal.acm.org/proceedings/wicow/archive/"
-"Conference Proceedings","WIDM: Web Information and Data Management","","","","1999 (November 1999)","2012 (November 2012)","http://portal.acm.org/proceedings/widm/","http://portal.acm.org/proceedings/widm/archive/"
-"Conference Proceedings","WIESS: Industrial Experiences with Systems Software ","","","","2000 (October 2000)","2002 (December 2002)","http://portal.acm.org/proceedings/wiess/","http://portal.acm.org/proceedings/wiess/archive/"
-"Conference Proceedings","WINITS: Wireless Networking for Intelligent Transportation Systems","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/winits/","http://portal.acm.org/proceedings/winits/archive/"
-"Conference Proceedings","WINTECH: Exerimental Evaluation and Characterization","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WISER: Workshop on Interdisciplinary Software Engineering Research","","","","2004 (November 2004)","2006 (May 2006)","http://portal.acm.org/proceedings/wiser/","http://portal.acm.org/proceedings/wiser/archive/"
-"Conference Proceedings","WISG: Workshop on Information Security Governance","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wisg/","http://portal.acm.org/proceedings/wisg/archive/"
-"Conference Proceedings","WISTP: Information Security Theory and Practices","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/wistp/","http://portal.acm.org/proceedings/wistp/archive/"
-"Conference Proceedings","WITS: Issues in the Theory of Security","","","","2005 (January 2005)","2005 (January 2005)","http://portal.acm.org/proceedings/wits/","http://portal.acm.org/proceedings/wits/archive/"
-"Conference Proceedings","WMASH: Wireless Mobile Applications and Services on WLAN Hotspots","","","","2003 (September 2003)","2006 (September 2006)","http://portal.acm.org/proceedings/wmash/","http://portal.acm.org/proceedings/wmash/archive/"
-"Conference Proceedings","WMC: Workshop on Mobile Commerce","","","","2001 (July 2001)","2002 (September 2002)","http://portal.acm.org/proceedings/wmc/","http://portal.acm.org/proceedings/wmc/archive/"
-"Conference Proceedings","WMI: Wireless Mobile Internet","","","","2001 (July 2001)","2001 (July 2001)","http://portal.acm.org/proceedings/wmi/","http://portal.acm.org/proceedings/wmi/archive/"
-"Conference Proceedings","WMISI: Workshop on Multimodal Interfaces in Semantic Interaction","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wmisi/","http://portal.acm.org/proceedings/wmisi/archive/"
-"Conference Proceedings","WMPI: Memory Performance Issues","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/wmpi/","http://portal.acm.org/proceedings/wmpi/archive/"
-"Conference Proceedings","WMUPS: Middleware for Ubiquitous and Pervasive Systems","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/wmups/","http://portal.acm.org/proceedings/wmups/archive/"
-"Conference Proceedings","WMuNeP: Wireless Multimedia and Performance Modeling","","","","2005 (October 2005)","2011 (October 2011)","http://portal.acm.org/proceedings/wmunep/","http://portal.acm.org/proceedings/wmunep/archive/"
-"Conference Proceedings","WNS: Workshop on NS-2: the IP Network Simulator","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/wns/","http://portal.acm.org/proceedings/wns/archive/"
-"Conference Proceedings","WOCCI: Workshop on Child, Computer and Interaction","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wocci/","http://portal.acm.org/proceedings/wocci/archive/"
-"Conference Proceedings","WODA: Workshop on Dynamic Analysis","","","","2005 (May 2005)","2012 (July 2012)","http://portal.acm.org/proceedings/woda/","http://portal.acm.org/proceedings/woda/archive/"
-"Conference Proceedings","WORKS: Workflows in Support of Large-Scale Science","","","","2007 (June 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/works/","http://portal.acm.org/proceedings/works/archive/"
-"Conference Proceedings","WORM: Workshop on Recurring Malcode","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/worm/","http://portal.acm.org/proceedings/worm/archive/"
-"Conference Proceedings","WOSN: Online Social Networks","","","","2008 (August 2008)","2012 (August 2012)","http://portal.acm.org/proceedings/wosn/","http://portal.acm.org/proceedings/wosn/archive/"
-"Conference Proceedings by Affiliated Organizations","WOSP: Software and Performance","","","","1998 (October 1998)","2013 (April 2013)","http://portal.acm.org/proceedings/wosp/","http://portal.acm.org/proceedings/wosp/archive/"
-"Conference Proceedings","WOSS: Self-Managed Systems","","","","2002 (November 2002)","2004 (October 2004)","http://portal.acm.org/proceedings/woss/","http://portal.acm.org/proceedings/woss/archive/"
-"Conference Proceedings","WOSSE: Workshop on Open Source Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wosse/","http://portal.acm.org/proceedings/wosse/archive/"
-"Conference Proceedings","WOWMOM: Workshop on Wireless Mobile Multimedia","","","","1998 (October 1998)","2006 (June 2006)","http://portal.acm.org/proceedings/wowmom/","http://portal.acm.org/proceedings/wowmom/archive/"
-"Conference Proceedings","WPES: Workshop on Privacy in the Electronic Society","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/wpes/","http://portal.acm.org/proceedings/wpes/archive/"
-"Conference Proceedings","WRAITS: Recent Advances on Intrusion-Tolerant Systems","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/wraits/","http://portal.acm.org/proceedings/wraits/archive/"
-"Conference Proceedings","WRASQ: Workshop on Automating Service Quality","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wrasq/","http://portal.acm.org/proceedings/wrasq/archive/"
-"Conference Proceedings","WREFT: Workshop on Radiation Effects and Fault Tolerance in Nanometer Technologies","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/wreft/","http://portal.acm.org/proceedings/wreft/archive/"
-"Conference Proceedings","WREN: Research on Enterprise Networking","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/wren/","http://portal.acm.org/proceedings/wren/archive/"
-"Conference Proceedings","WRT: Refactoring Tools","","","","2008 (October 2008)","2012 (June 2012)","http://portal.acm.org/proceedings/wrt/","http://portal.acm.org/proceedings/wrt/archive/"
-"Conference Proceedings","WS-REST: RESTful Design","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/ws-rest/","http://portal.acm.org/proceedings/ws-rest/archive/"
-"Conference Proceedings","WSC: Winter Simulation Conference","","","","1971 (January 1971)","2012 (December 2012)","http://portal.acm.org/proceedings/wsc/","http://portal.acm.org/proceedings/wsc/archive/"
-"Conference Proceedings","WSCD: Web Search Click Data","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/wscd/","http://portal.acm.org/proceedings/wscd/archive/"
-"Conference Proceedings","WSDM: Web Search and Data Mining","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/wsdm/","http://portal.acm.org/proceedings/wsdm/archive/"
-"Conference Proceedings","WSM: Social Media","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/wsm/","http://portal.acm.org/proceedings/wsm/archive/"
-"Conference Proceedings","WSMC: Web-Scale Multimedia Corpus","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/wsmc/","http://portal.acm.org/proceedings/wsmc/archive/"
-"Conference Proceedings","WSNA: Wireless Sensor Networks and Applications","","","","2002 (September 2002)","2003 (September 2003)","http://portal.acm.org/proceedings/wsna/","http://portal.acm.org/proceedings/wsna/archive/"
-"Conference Proceedings","WTAOP: Workshop on Testing Aspect-Oriented Programs","","","","2006 (July 2006)","2007 (March 2007)","http://portal.acm.org/proceedings/wtaop/","http://portal.acm.org/proceedings/wtaop/archive/"
-"Conference Proceedings","WUAUC: Universal Accessibility of Ubiquitous Computing","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/wuauc/","http://portal.acm.org/proceedings/wuauc/archive/"
-"Conference Proceedings","WUP: Warm Up Workshop for ACM/IEEE ICSE 2010","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/wup/","http://portal.acm.org/proceedings/wup/archive/"
-"Conference Proceedings","WWW: World Wide Web","","","","2001 (April 2001)","2013 (May 2013)","http://portal.acm.org/proceedings/www/","http://portal.acm.org/proceedings/www/archive/"
-"Conference Proceedings","Wands: Workflow Approaches to New Data-centric Science","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/wands/","http://portal.acm.org/proceedings/wands/archive/"
-"Conference Proceedings","Web3D: 3D Web Technology","","","","2001 (February 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/web3d/","http://portal.acm.org/proceedings/web3d/archive/"
-"Conference Proceedings","WebDB: Web and Databases","","","","2004 (June 2004)","2010 (June 2010)","http://portal.acm.org/proceedings/webdb/","http://portal.acm.org/proceedings/webdb/archive/"
-"Conference Proceedings","WebKDD/SNA-KDD: Web Mining and Social Network Analysis","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/webkdd/sna-kdd/","http://portal.acm.org/proceedings/webkdd/sna-kdd/archive/"
-"Conference Proceedings","WebMedia: Multimedia and the Web","","","","2005 (December 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/webmedia/","http://portal.acm.org/proceedings/webmedia/archive/"
-"Conference Proceedings","WebSE: Workshop on Web 2.0 for Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/webse/","http://portal.acm.org/proceedings/webse/archive/"
-"Conference Proceedings","WebScience: Collaborative and Collective Intelligence","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/webscience/","http://portal.acm.org/proceedings/webscience/archive/"
-"Conference Proceedings","WiMD: Medical Grade Wireless Networks","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/wimd/","http://portal.acm.org/proceedings/wimd/archive/"
-"Conference Proceedings","WiNS-DR: Wireless Networks and Systems for Developing Regions","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/wins-dr/","http://portal.acm.org/proceedings/wins-dr/archive/"
-"Conference Proceedings","WiNTECH: Wireless Network Tesbeds, Experimental Evaluation and Characterization","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WiSE: Wireless Security","","","","2002 (September 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/wise/","http://portal.acm.org/proceedings/wise/archive/"
-"Conference Proceedings","WiSec: Wireless Network Security","","","","2008 (March 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/wisec/","http://portal.acm.org/proceedings/wisec/archive/"
-"Conference Proceedings","WiTMeMo: Wireless Traffic Measurements and Modeling","","","","2005 (June 2005)","2006 (August 2006)","http://portal.acm.org/proceedings/witmemo/","http://portal.acm.org/proceedings/witmemo/archive/"
-"Conference Proceedings","WikiSym: International Symposium on Wikis","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/wikisym/","http://portal.acm.org/proceedings/wikisym/archive/"
-"Conference Proceedings","WoSQ: Workshop on Software Quality","","","","2005 (May 2005)","2011 (September 2011)","http://portal.acm.org/proceedings/wosq/","http://portal.acm.org/proceedings/wosq/archive/"
-"Conference Proceedings","WuWNeT: UnderWater Networks","","","","2006 (September 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/wuwnet/","http://portal.acm.org/proceedings/wuwnet/archive/"
-"Conference Proceedings","XIME-P: XQuery Implementation, Experience and Perpectives","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/xime-p/","http://portal.acm.org/proceedings/xime-p/archive/"
-"Conference Proceedings","XMLSEC: XML Security","","","","2002 (November 2002)","2003 (October 2003)","http://portal.acm.org/proceedings/xmlsec/","http://portal.acm.org/proceedings/xmlsec/archive/"
-"Conference Proceedings","dg.o: Digital Government Research","","","","2000 (May 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/dg.o/","http://portal.acm.org/proceedings/dg.o/archive/"
-"Conference Proceedings","e-Energy: Energy-Efficient Computing and Networking","","","","2010 (April 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/e-energy/","http://portal.acm.org/proceedings/e-energy/archive/"
-"Conference Proceedings","e-Forensics: Forensic Applications and Techniques in Telecommunications, Information, and Multimedia","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/e-forensics/","http://portal.acm.org/proceedings/e-forensics/archive/"
-"Conference Proceedings","eConf: e-Services and e-Systems","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/econf/","http://portal.acm.org/proceedings/econf/archive/"
-"Conference Proceedings","eCrime: eCrime Researchers Summit","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/ecrime/","http://portal.acm.org/proceedings/ecrime/archive/"
-"Conference Proceedings","eHeritage: eHeritage and Digital Art Preservation","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/eheritage/","http://portal.acm.org/proceedings/eheritage/archive/"
-"Conference Proceedings","eclipse: eclipse Technology eXchange","","","","2003 (October 2003)","2007 (October 2007)","http://portal.acm.org/proceedings/eclipse/","http://portal.acm.org/proceedings/eclipse/archive/"
-"Conference Proceedings","i-CREATe: Rehabilitation Engineering & Assistive Technology","","","","2007 (April 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/i-create/","http://portal.acm.org/proceedings/i-create/archive/"
-"Conference Proceedings","iNEWS: Improving Non English Web Searching","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/inews/","http://portal.acm.org/proceedings/inews/archive/"
-"Conference Proceedings","iiWAS: Information Integration and Web-based Applications & Services","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/iiwas/","http://portal.acm.org/proceedings/iiwas/archive/"
-"Conference Proceedings","mmCom: mmWave communications","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mmcom/","http://portal.acm.org/proceedings/mmcom/archive/"
-"Conference Proceedings","sOc-EUSAI: Smart Objects and Ambient Intelligence","","","","2005 (October 2005)","2005 (October 2005)","http://portal.acm.org/proceedings/soc-eusai/","http://portal.acm.org/proceedings/soc-eusai/archive/"
-"Conference Proceedings","years of DAC: Years of DAC","","","","1988 (June 1988)","1988 (June 1988)","http://portal.acm.org/proceedings/yearsofdac/","http://portal.acm.org/proceedings/yearsofdac/archive/"
\ No newline at end of file
diff --git a/server/files/sounds/original/normal-1491836119722.csv b/server/files/sounds/original/normal-1491836119722.csv
deleted file mode 100644 (file)
index 1bfa2f5..0000000
+++ /dev/null
@@ -1,1136 +0,0 @@
-"CONTENT TYPE","TITLE","ABBR","ISSN","e-ISSN","PUBLICATION RANGE: START","PUBLICATION RANGE: LATEST PUBLISHED","SHORTCUT URL","ARCHIVE URL"
-"Journals","ACM Computing Surveys ","ACM Comput. Surv.","0360-0300","1557-7341","Volume 1 Issue 1 (March 1969)","Volume 46 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J204","http://dl.acm.org/citation.cfm?id=J204&picked=prox"
-"Journals","ACM Journal of Computer Documentation ","ACM J. Comput. Doc.","1527-6805","1557-9441","Volume 24 Issue 1 (Feb. 1, 2000)","Volume 26 Issue 4 (November 2002)","http://dl.acm.org/citation.cfm?id=J24","http://dl.acm.org/citation.cfm?id=J24&picked=prox"
-"Journals","ACM Journal on Emerging Technologies in Computing Systems ","J. Emerg. Technol. Comput. Syst.","1550-4832","1550-4840","Volume 1 Issue 1 (April 2005)","Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics","http://dl.acm.org/citation.cfm?id=J967","http://dl.acm.org/citation.cfm?id=J967&picked=prox"
-"Journals","Journal of Data and Information Quality ","J. Data and Information Quality","1936-1955","1936-1963","Volume 1 Issue 1 (June 2009)","Volume 4 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J1191","http://dl.acm.org/citation.cfm?id=J1191&picked=prox"
-"Journals","Journal of Experimental Algorithmics ","J. Exp. Algorithmics","1084-6654","1084-6654","Volume 1 (1996)","Volume 18 (April 2013)","http://dl.acm.org/citation.cfm?id=J430","http://dl.acm.org/citation.cfm?id=J430&picked=prox"
-"Journals","Journal of the ACM ","J. ACM","0004-5411","1557-735X","Volume 1 Issue 1 (Jan. 1954)","Volume 60 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J401","http://dl.acm.org/citation.cfm?id=J401&picked=prox"
-"Journals","Journal on Computing and Cultural Heritage ","J. Comput. Cult. Herit.","1556-4673","1556-4711","Volume 1 Issue 1 (June 2008)","Volume 6 Issue 3 (July 2013)","http://dl.acm.org/citation.cfm?id=J1157","http://dl.acm.org/citation.cfm?id=J1157&picked=prox"
-"Journals","Journal on Educational Resources in Computing ","J. Educ. Resour. Comput.","1531-4278","1531-4278","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom","http://dl.acm.org/citation.cfm?id=J814","http://dl.acm.org/citation.cfm?id=J814&picked=prox"
-"Transactions","ACM Letters on Programming Languages and Systems ","ACM Lett. Program. Lang. Syst.","1057-4514","1557-7384","Volume 1 Issue 1 (March 1992)","Volume 2 Issue 1-4 (March&#8211;Dec. 1993)","http://dl.acm.org/citation.cfm?id=J513","http://dl.acm.org/citation.cfm?id=J513&picked=prox"
-"Transactions","ACM Transactions on Accessible Computing ","ACM Trans. Access. Comput.","1936-7228","1936-7236","Volume 1 Issue 1 (May 2008)","Volume 5 Issue 2 (October 2013)","http://dl.acm.org/citation.cfm?id=J1156","http://dl.acm.org/citation.cfm?id=J1156&picked=prox"
-"Transactions","ACM Transactions on Algorithms ","ACM Trans. Algorithms","1549-6325","1549-6333","Volume 1 Issue 1 (July 2005)","Volume 9 Issue 4 (September 2013)","http://dl.acm.org/citation.cfm?id=J982","http://dl.acm.org/citation.cfm?id=J982&picked=prox"
-"Transactions","ACM Transactions on Applied Perception ","ACM Trans. Appl. Percept.","1544-3558","1544-3965","Volume 1 Issue 1 (July 2004)","Volume 10 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J932","http://dl.acm.org/citation.cfm?id=J932&picked=prox"
-"Transactions","ACM Transactions on Architecture and Code Optimization ","ACM Trans. Archit. Code Optim.","1544-3566","1544-3973","Volume 1 Issue 1 (March 2004)","Volume 10 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J924","http://dl.acm.org/citation.cfm?id=J924&picked=prox"
-"Transactions","ACM Transactions on Asian Language Information Processing ","","1530-0226","1558-3430","Volume 1 Issue 1 (March 2002)","Volume 12 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J820","http://dl.acm.org/citation.cfm?id=J820&picked=prox"
-"Transactions","ACM Transactions on Autonomous and Adaptive Systems ","ACM Trans. Auton. Adapt. Syst.","1556-4665","1556-4703","Volume 1 Issue 1 (September 2006)","Volume 8 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1010","http://dl.acm.org/citation.cfm?id=J1010&picked=prox"
-"Transactions","ACM Transactions on Computation Theory ","ACM Trans. Comput. Theory","1942-3454","1942-3462","Volume 1 Issue 1 (February 2009)","Volume 5 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1190","http://dl.acm.org/citation.cfm?id=J1190&picked=prox"
-"Transactions","ACM Transactions on Computational Logic ","ACM Trans. Comput. Logic","1529-3785","1557-945X","Volume 1 Issue 1 (July 2000)","Volume 14 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J773","http://dl.acm.org/citation.cfm?id=J773&picked=prox"
-"Transactions","ACM Transactions on Computer Systems ","ACM Trans. Comput. Syst.","0734-2071","1557-7333","Volume 1 Issue 1 (Feb. 1983)","Volume 31 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J774","http://dl.acm.org/citation.cfm?id=J774&picked=prox"
-"Transactions","ACM Transactions on Computer-Human Interaction ","ACM Trans. Comput.-Hum. Interact.","1073-0516","1557-7325","Volume 1 Issue 1 (March 1994)","Volume 20 Issue 5 (November 2013)","http://dl.acm.org/citation.cfm?id=J756","http://dl.acm.org/citation.cfm?id=J756&picked=prox"
-"Transactions","ACM Transactions on Computing Education ","Trans. Comput. Educ.","","1946-6226","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1193","http://dl.acm.org/citation.cfm?id=J1193&picked=prox"
-"Transactions","ACM Transactions on Database Systems ","ACM Trans. Database Syst.","0362-5915","1557-4644","Volume 1 Issue 1 (March 1976)","Volume 38 Issue 4 (November 2013) - Invited papers issue","http://dl.acm.org/citation.cfm?id=J777","http://dl.acm.org/citation.cfm?id=J777&picked=prox"
-"Transactions","ACM Transactions on Design Automation of Electronic Systems ","ACM Trans. Des. Autom. Electron. Syst.","1084-4309","1557-7309","Volume 1 Issue 1 (Jan. 1996)","Volume 19 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J776","http://dl.acm.org/citation.cfm?id=J776&picked=prox"
-"Transactions","ACM Transactions on Economics and Computation","ACM Trans. Econ. Comput.","2167-8375","2167-8383","Volume 1 Issue 1 (January 2013)","Volume 1 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1359","http://dl.acm.org/citation.cfm?id=J1359&picked=prox"
-"Transactions","ACM Transactions on Embedded Computing Systems ","ACM Trans. Embed. Comput. Syst.","1539-9087","1558-3465","Volume 1 Issue 1 (November 2002)","Volume 13 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J840","http://dl.acm.org/citation.cfm?id=J840&picked=prox"
-"Transactions","ACM Transactions on Graphics ","ACM Trans. Graph.","0730-0301","1557-7368","Volume 1 Issue 1 (Jan. 1982)","Volume 32 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J778","http://dl.acm.org/citation.cfm?id=J778&picked=prox"
-"Transactions","ACM Transactions on Information Systems ","ACM Trans. Inf. Syst.","1046-8188","1558-2868","Volume 1 Issue 1 (Jan. 1983)","Volume 31 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J779","http://dl.acm.org/citation.cfm?id=J779&picked=prox"
-"Transactions","ACM Transactions on Information and System Security ","ACM Trans. Inf. Syst. Secur.","1094-9224","1557-7406","Volume 1 Issue 1 (Nov. 1998)","Volume 16 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J789","http://dl.acm.org/citation.cfm?id=J789&picked=prox"
-"Transactions","ACM Transactions on Intelligent Systems and Technology ","ACM Trans. Intell. Syst. Technol.","2157-6904","2157-6912","Volume 1 Issue 1 (October 2010)","Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining","http://dl.acm.org/citation.cfm?id=J1318","http://dl.acm.org/citation.cfm?id=J1318&picked=prox"
-"Transactions","ACM Transactions on Interactive Intelligent Systems ","ACM Trans. Interact. Intell. Syst.","2160-6455","2160-6463","Volume 1 Issue 1 (October 2011)","Volume 3 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1341","http://dl.acm.org/citation.cfm?id=J1341&picked=prox"
-"Transactions","ACM Transactions on Internet Technology ","ACM Trans. Internet Technol.","1533-5399","1557-6051","Volume 1 Issue 1 (Aug. 2001)","Volume 13 Issue 2 (December 2013)","http://dl.acm.org/citation.cfm?id=J780","http://dl.acm.org/citation.cfm?id=J780&picked=prox"
-"Transactions","ACM Transactions on Knowledge Discovery from Data ","ACM Trans. Knowl. Discov. Data","1556-4681","1556-472X","Volume 1 Issue 1 (March 2007)","Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012","http://dl.acm.org/citation.cfm?id=J1054","http://dl.acm.org/citation.cfm?id=J1054&picked=prox"
-"Transactions","ACM Transactions on Management Information Systems ","ACM Trans. Manage. Inf. Syst.","2158-656X","2158-6578","Volume 1 Issue 1 (December 2010)","Volume 4 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1320","http://dl.acm.org/citation.cfm?id=J1320&picked=prox"
-"Transactions","ACM Transactions on Mathematical Software ","ACM Trans. Math. Softw.","0098-3500","1557-7295","Volume 1 Issue 1 (March 1975)","Volume 40 Issue 1 (September 2013)","http://dl.acm.org/citation.cfm?id=J782","http://dl.acm.org/citation.cfm?id=J782&picked=prox"
-"Transactions","ACM Transactions on Modeling and Computer Simulation ","ACM Trans. Model. Comput. Simul.","1049-3301","1558-1195","Volume 1 Issue 1 (Jan. 1991)","Volume 23 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J781","http://dl.acm.org/citation.cfm?id=J781&picked=prox"
-"Transactions","ACM Transactions on Multimedia Computing, Communications, and Applications ","ACM Trans. Multimedia Comput. Commun. Appl.","1551-6857","1551-6865","Volume 1 Issue 1 (February 2005)","Volume 10 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J961","http://dl.acm.org/citation.cfm?id=J961&picked=prox"
-"Transactions","ACM Transactions on Programming Languages and Systems ","ACM Trans. Program. Lang. Syst.","0164-0925","1558-4593","Volume 1 Issue 1 (July 1979)","Volume 35 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J783","http://dl.acm.org/citation.cfm?id=J783&picked=prox"
-"Transactions","ACM Transactions on Reconfigurable Technology and Systems ","ACM Trans. Reconfigurable Technol. Syst.","1936-7406","1936-7414","Volume 1 Issue 1 (March 2008)","Volume 6 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1151","http://dl.acm.org/citation.cfm?id=J1151&picked=prox"
-"Transactions","ACM Transactions on Sensor Networks ","ACM Trans. Sen. Netw.","1550-4859","1550-4867","Volume 1 Issue 1 (August 2005)","Volume 10 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J981","http://dl.acm.org/citation.cfm?id=J981&picked=prox"
-"Transactions","ACM Transactions on Software Engineering and Methodology ","ACM Trans. Softw. Eng. Methodol.","1049-331X","1557-7392","Volume 1 Issue 1 (Jan. 1992)","Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance","http://dl.acm.org/citation.cfm?id=J790","http://dl.acm.org/citation.cfm?id=J790&picked=prox"
-"Transactions","ACM Transactions on Speech and Language Processing ","ACM Trans. Speech Lang. Process.","1550-4875","1550-4883","Volume 1 (November 2004)","Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2","http://dl.acm.org/citation.cfm?id=J957","http://dl.acm.org/citation.cfm?id=J957&picked=prox"
-"Transactions","ACM Transactions on Storage ","Trans. Storage","1553-3077","1553-3093","Volume 1 Issue 1 (February 2005)","Volume 9 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J960","http://dl.acm.org/citation.cfm?id=J960&picked=prox"
-"Transactions","ACM Transactions on the Web ","ACM Trans. Web","1559-1131","1559-114X","Volume 1 Issue 1 (May 2007)","Volume 7 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J1062","http://dl.acm.org/citation.cfm?id=J1062&picked=prox"
-"Transactions","IEEE/ACM Transactions on Computational Biology and Bioinformatics ","IEEE/ACM Trans. Comput. Biol. Bioinformatics","1545-5963","","Volume 1 Issue 1 (January 2004)","Volume 10 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J954","http://dl.acm.org/citation.cfm?id=J954&picked=prox"
-"Transactions","IEEE/ACM Transactions on Networking ","IEEE/ACM Trans. Netw.","1063-6692","","Volume 1 Issue 1 (Feb. 1993)","Volume 21 Issue 4 (August 2013)","http://dl.acm.org/citation.cfm?id=J771","http://dl.acm.org/citation.cfm?id=J771&picked=prox"
-"Magazines","ACM Inroads","ACM Inroads","2153-2184","2153-2192","Volume 1 Issue 1 (March 2010)","Volume 4 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1268","http://dl.acm.org/citation.cfm?id=J1268&picked=prox"
-"Magazines","Communications of the ACM","Commun. ACM","0001-0782","1557-7317","Volume 1 Issue 1 (Jan. 1958)","Volume 57 Issue 1 (January 2014)","http://dl.acm.org/citation.cfm?id=J79","http://dl.acm.org/citation.cfm?id=J79&picked=prox"
-"Magazines","Computers in Entertainment ","Comput. Entertain.","","1544-3574","Volume 1 Issue 1 (October 2003)","Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment","http://dl.acm.org/citation.cfm?id=J912","http://dl.acm.org/citation.cfm?id=J912&picked=prox"
-"Magazines","Queue","Queue","1542-7730","1542-7749","Volume 1 Issue 1 (March 2003)","Volume 11 Issue 12 (December 2013) - Large-Scale Implementations","http://dl.acm.org/citation.cfm?id=J882","http://dl.acm.org/citation.cfm?id=J882&picked=prox"
-"Magazines","StandardView","StandardView","1067-9936","1557-7376","Volume 1 Issue 1 (Sept. 1993)","Volume 6 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J741","http://dl.acm.org/citation.cfm?id=J741&picked=prox"
-"Magazines","Ubiquity","Ubiquity","","1530-2180","Volume 2000 Issue February (February 1 - February 28, 2000)","Volume 2013 Issue December (December 2013)","http://dl.acm.org/citation.cfm?id=J793","http://dl.acm.org/citation.cfm?id=J793&picked=prox"
-"Magazines","XRDS: Crossroads, The ACM Magazine for Students","XRDS","1528-4972","1528-4980","Volume 1 Issue 1 (September 1994)","Volume 20 Issue 2 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J1271","http://dl.acm.org/citation.cfm?id=J1271&picked=prox"
-"Magazines","eLearn","eLearn","","1535-394X","Volume 2001 Issue 5 (May 2001)","Volume 2013 Issue 12 (12-01-2013) - December 2013","http://dl.acm.org/citation.cfm?id=J815","http://dl.acm.org/citation.cfm?id=J815&picked=prox"
-"Magazines","intelligence","Intelligence","1523-8822","1557-9425","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J372","http://dl.acm.org/citation.cfm?id=J372&picked=prox"
-"Magazines","interactions","interactions","1072-5520","1558-3449","Volume 1 Issue 1 (Jan. 1994)","Volume 20 Issue 6 (November + December 2013)","http://dl.acm.org/citation.cfm?id=J373","http://dl.acm.org/citation.cfm?id=J373&picked=prox"
-"Magazines","netWorker","netWorker","1091-3556","1558-3473","Volume 1 Issue 1 (March/April 1997)","Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics","http://dl.acm.org/citation.cfm?id=J582","http://dl.acm.org/citation.cfm?id=J582&picked=prox"
-"Publications by Affiliated Organizations","ALGOL Bulletin","ALGOL Bull.","0084-6198","","Issue 1 (Mar. 1959)","Issue 52 (Aug. 1988)","http://dl.acm.org/citation.cfm?id=J33","http://dl.acm.org/citation.cfm?id=J33&picked=prox"
-"Publications by Affiliated Organizations","Computational Linguistics","Comput. Linguist.","0891-2017","","Volume 6 Issue 1 (January-March 1980)","Volume 39 Issue 2 (June 2013)","http://dl.acm.org/citation.cfm?id=J25","http://dl.acm.org/citation.cfm?id=J25&picked=prox"
-"Publications by Affiliated Organizations","Evolutionary Computation","Evol. Comput.","1063-6560","1530-9304","Volume 1 Issue 1 (Spring 1993)","Volume 21 Issue 4 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J277","http://dl.acm.org/citation.cfm?id=J277&picked=prox"
-"Publications by Affiliated Organizations","Journal of Computing Sciences in Colleges","J. Comput. Sci. Coll.","1937-4771","1937-4763","Volume 6 Issue 5 (May 1991)","Volume 29 Issue 3 (January 2014)","http://dl.acm.org/citation.cfm?id=J420","http://dl.acm.org/citation.cfm?id=J420&picked=prox"
-"Publications by Affiliated Organizations","Journal of Usability Studies","J. Usability Studies","1931-3357","","Volume 5 Issue 4 (August 2010)","Volume 6 Issue 3 (May 2011)","http://dl.acm.org/citation.cfm?id=J1340","http://dl.acm.org/citation.cfm?id=J1340&picked=prox"
-"Publications by Affiliated Organizations","Linux Journal","Linux J.","1075-3583","","Volume 1994 Issue 1es (March 1994)","Volume 2013 Issue 235 (November 2013)","http://dl.acm.org/citation.cfm?id=J508","http://dl.acm.org/citation.cfm?id=J508&picked=prox"
-"Publications by Affiliated Organizations","Mobile Networks and Applications","Mob. Netw. Appl.","1383-469X","","Volume 1 Issue 1 (Aug. 1996)","Volume 18 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J547","http://dl.acm.org/citation.cfm?id=J547&picked=prox"
-"Publications by Affiliated Organizations","Personal and Ubiquitous Computing","Personal Ubiquitous Comput.","1617-4909","","Volume 4 Issue 4 (August 2000)","Volume 17 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J822","http://dl.acm.org/citation.cfm?id=J822&picked=prox"
-"Publications by Affiliated Organizations","Proceedings of the VLDB Endowment","Proc. VLDB Endow.","2150-8097","","Volume 1 Issue 1 (August 2008)","Volume 6 Issue 14 (September 2013)","http://dl.acm.org/citation.cfm?id=J1174","http://dl.acm.org/citation.cfm?id=J1174&picked=prox"
-"Publications by Affiliated Organizations","The Journal of Machine Learning Research","J. Mach. Learn. Res.","1532-4435","1533-7928","Volume 1 (9/1/2001)","Volume 14 Issue 1 (January 2013)","http://dl.acm.org/citation.cfm?id=J832","http://dl.acm.org/citation.cfm?id=J832&picked=prox"
-"Publications by Affiliated Organizations","The VLDB Journal &#8212; The International Journal on Very Large Data Bases","The VLDB Journal","1066-8888","","Volume 1 Issue 1 (July 1992)","Volume 22 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J869","http://dl.acm.org/citation.cfm?id=J869&picked=prox"
-"Publications by Affiliated Organizations","Wireless Networks","Wirel. Netw.","1022-0038","","Volume 1 Issue 1 (Feb. 1995)","Volume 19 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J804","http://dl.acm.org/citation.cfm?id=J804&picked=prox"
-"SIG Newsletters","3C ON-LINE","3C ON-LINE","1078-2192","","Volume 1 Issue 1 (Oct. 1994)","Volume 4 Issue 4 (Oct., 1997)","http://dl.acm.org/citation.cfm?id=J685","http://dl.acm.org/citation.cfm?id=J685&picked=prox"
-"SIG Newsletters","ACM Communications in Computer Algebra","ACM Commun. Comput. Algebra","1932-2240","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J1000","http://dl.acm.org/citation.cfm?id=J1000&picked=prox"
-"SIG Newsletters","ACM Lisp Bulletin","Lisp Bull.","","","Volume 4 Issue 9 (September 1969)","Issue 3 (December 1979)","http://dl.acm.org/citation.cfm?id=J1166","http://dl.acm.org/citation.cfm?id=J1166&picked=prox"
-"SIG Newsletters","ACM SIGACCESS Accessibility and Computing","SIGACCESS Access. Comput.","1558-2337","1558-1187","Issue 77-78 (Sept. 2003 - Jan. 2004)","Issue 107 (September 2013)","http://dl.acm.org/citation.cfm?id=J956","http://dl.acm.org/citation.cfm?id=J956&picked=prox"
-"SIG Newsletters","ACM SIGACT News","SIGACT News","0163-5700","","Issue 1 (April 1969)","Volume 44 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J697","http://dl.acm.org/citation.cfm?id=J697&picked=prox"
-"SIG Newsletters","ACM SIGAPL APL Quote Quad","SIGAPL APL Quote Quad","0163-6006","","Volume 3 Issue 1 (June 1971)","Volume 35 Issue 4 (December 2007)","http://dl.acm.org/citation.cfm?id=J46","http://dl.acm.org/citation.cfm?id=J46&picked=prox"
-"SIG Newsletters","ACM SIGAPP Applied Computing Review","SIGAPP Appl. Comput. Rev.","1559-6915","1931-0161","Volume 1 Issue 1 (Winter 1993)","Volume 13 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J693","http://dl.acm.org/citation.cfm?id=J693&picked=prox"
-"SIG Newsletters","ACM SIGARCH Computer Architecture News","SIGARCH Comput. Archit. News","0163-5964","","Volume 1 Issue 1 (January 1972)","Volume 41 Issue 3 (June 2013) - ICSA '13","http://dl.acm.org/citation.cfm?id=J89","http://dl.acm.org/citation.cfm?id=J89&picked=prox"
-"SIG Newsletters","ACM SIGART Bulletin","SIGART Bull.","0163-5719","","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J686","http://dl.acm.org/citation.cfm?id=J686&picked=prox"
-"SIG Newsletters","ACM SIGAda Ada Letters","Ada Lett.","1094-3641","","Volume I Issue 1 (July-August 1981)","Volume 33 Issue 2 (August 2013)","http://dl.acm.org/citation.cfm?id=J32","http://dl.acm.org/citation.cfm?id=J32&picked=prox"
-"SIG Newsletters","ACM SIGBED Review","SIGBED Rev.","","1551-3688","Volume 1 Issue 1 (April 2004)","Volume 10 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J994","http://dl.acm.org/citation.cfm?id=J994&picked=prox"
-"SIG Newsletters","ACM SIGBIO Newsletter","SIGBIO Newsl.","0163-5697","","Volume 1 Issue 2 (October 1976)","Volume 21 Issue 1 (April 2001)","http://dl.acm.org/citation.cfm?id=J698","http://dl.acm.org/citation.cfm?id=J698&picked=prox"
-"SIG Newsletters","ACM SIGBioinformatics Record","ACM SIGBioinformatics Rec.","2331-9291","2159-1210","Volume 1 Issue 1 (January 2011)","Volume 3 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1323","http://dl.acm.org/citation.cfm?id=J1323&picked=prox"
-"SIG Newsletters","ACM SIGCAPH Computers and the Physically Handicapped","SIGCAPH Comput. Phys. Handicap.","0163-5727","","Issue 5 (Fall 1971)","Issue 76 (June 2003)","http://dl.acm.org/citation.cfm?id=J298","http://dl.acm.org/citation.cfm?id=J298&picked=prox"
-"SIG Newsletters","ACM SIGCAS Computers and Society","SIGCAS Comput. Soc.","0095-2737","","Volume 1 Issue 2 (April 1970)","Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry","http://dl.acm.org/citation.cfm?id=J198","http://dl.acm.org/citation.cfm?id=J198&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin","SIGCHI Bull.","0736-6906","","Volume 14 Issue 1 (July 1982)","Volume 32 Issue 2 (April 2000)","http://dl.acm.org/citation.cfm?id=J687","http://dl.acm.org/citation.cfm?id=J687&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin - a supplement to <i>interactions</i>","SIGCHI Bull.: suppl. <i>interactions</i>","0736-6906","1558-1217","Volume 2000 (July/August 2000)","Volume 2003 (May-June 2003)","http://dl.acm.org/citation.cfm?id=J122","http://dl.acm.org/citation.cfm?id=J122&picked=prox"
-"SIG Newsletters","ACM SIGCOMM Computer Communication Review","SIGCOMM Comput. Commun. Rev.","0146-4833","","Volume 1 Issue 2 (March 1970)","Volume 43 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J101","http://dl.acm.org/citation.cfm?id=J101&picked=prox"
-"SIG Newsletters","ACM SIGCPR Computer Personnel","SIGCPR Comput. Pers.","0160-2497","","Volume 2 Issue 1 (July 1964)","Volume 20 Issue 4 (October 1999)","http://dl.acm.org/citation.cfm?id=J188","http://dl.acm.org/citation.cfm?id=J188&picked=prox"
-"SIG Newsletters","ACM SIGCSE Bulletin","SIGCSE Bull.","0097-8418","","Volume 1 Issue 1 (February 1969)","Volume 45 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J688","http://dl.acm.org/citation.cfm?id=J688&picked=prox"
-"SIG Newsletters","ACM SIGCSIM Installation Management Review","Install Manag. Rev.","0163-5972","","Issue 1 (August 1969)","Volume 6 Issue 4 (December 1977)","http://dl.acm.org/citation.cfm?id=J959","http://dl.acm.org/citation.cfm?id=J959&picked=prox"
-"SIG Newsletters","ACM SIGCUE Outlook","SIGCUE Outlook","0163-5735","","Volume 4 Issue 1 (February 1970)","Volume 27 Issue 3 (September 2001)","http://dl.acm.org/citation.cfm?id=J678","http://dl.acm.org/citation.cfm?id=J678&picked=prox"
-"SIG Newsletters","ACM SIGDA Newsletter","SIGDA Newsl.","0163-5743","","Volume 1 Issue 1 (January 1971)","Volume 40 Issue 9 (September 2010)","http://dl.acm.org/citation.cfm?id=J700","http://dl.acm.org/citation.cfm?id=J700&picked=prox"
-"SIG Newsletters","ACM SIGDOC Asterisk Journal of Computer Documentation","SIGDOC Asterisk J. Comput. Doc.","0731-1001","","Volume 2 Issue 5 (October 1975)","Volume 12 Issue 4 (December 2011)","http://dl.acm.org/citation.cfm?id=J62","http://dl.acm.org/citation.cfm?id=J62&picked=prox"
-"SIG Newsletters","ACM SIGEVOlution","SIGEVOlution","","1931-8499","Volume 1 Issue 1 (April 2006)","Volume 6 Issue 1 (July 2012)","http://dl.acm.org/citation.cfm?id=J999","http://dl.acm.org/citation.cfm?id=J999&picked=prox"
-"SIG Newsletters","ACM SIGFORTH Newsletter","SIGFORTH Newsl.","1047-4544","","Volume 1 Issue 1 (Spring 1989)","Volume 4 Issue 4 (Dec. 1994)","http://dl.acm.org/citation.cfm?id=J696","http://dl.acm.org/citation.cfm?id=J696&picked=prox"
-"SIG Newsletters","ACM SIGGRAPH Computer Graphics","SIGGRAPH Comput. Graph.","0097-8930","","Volume 3 Issue 3 (Fal 1969)","Volume 45 Issue 1 (February 2011)","http://dl.acm.org/citation.cfm?id=J166","http://dl.acm.org/citation.cfm?id=J166&picked=prox"
-"SIG Newsletters","ACM SIGGROUP Bulletin","SIGGROUP Bull.","","","Volume 18 Issue 1 (April 1997)","Volume 25 Issue 2 (February 2005) - Special issue on virtual communities","http://dl.acm.org/citation.cfm?id=J702","http://dl.acm.org/citation.cfm?id=J702&picked=prox"
-"SIG Newsletters","ACM SIGHIT Record","SIGHIT Rec.","","2158-8813","Volume 1 Issue 1 (March 2011)","Volume 2 Issue 2 (September 2012)","http://dl.acm.org/citation.cfm?id=J1322","http://dl.acm.org/citation.cfm?id=J1322&picked=prox"
-"SIG Newsletters","ACM SIGHPC Connect","ACM SIGHPC Connect","","2168-135X","Volume 1 Issue 1 (June 2012)","Volume 2 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J1356","http://dl.acm.org/citation.cfm?id=J1356&picked=prox"
-"SIG Newsletters","ACM SIGICE Bulletin","SIGICE Bull.","0893-2875","","Volume 19 Issue 3 (Feb. 1994)","Volume 23 Issue 2 (Oct. 1997)","http://dl.acm.org/citation.cfm?id=J694","http://dl.acm.org/citation.cfm?id=J694&picked=prox"
-"SIG Newsletters","ACM SIGIR Forum","SIGIR Forum","0163-5840","","Volume 6 Issue 2 (Summer 1971)","Volume 47 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J701","http://dl.acm.org/citation.cfm?id=J701&picked=prox"
-"SIG Newsletters","ACM SIGITE Newsletter","SIGITE Newsl.","2166-1685","1550-1469","Volume 2 Issue 1 (Spring 2004)","Volume 9 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J977","http://dl.acm.org/citation.cfm?id=J977&picked=prox"
-"SIG Newsletters","ACM SIGKDD Explorations Newsletter","SIGKDD Explor. Newsl.","1931-0145","1931-0153","Volume 1 Issue 1 (June 1999)","Volume 14 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J721","http://dl.acm.org/citation.cfm?id=J721&picked=prox"
-"SIG Newsletters","ACM SIGLASH Newsletter","SIGLASH Newsl.","0036-147X","1931-1095","Volume 10 Issue 1-2 (December 1976/March 1977)","Volume 14 Issue 1-2 (March/June 1981)","http://dl.acm.org/citation.cfm?id=J958","http://dl.acm.org/citation.cfm?id=J958&picked=prox"
-"SIG Newsletters","ACM SIGMAP Bulletin","SIGMAP Bull.","0163-5786","1931-1184","Issue 5 (June 1969)","Issue 32 (April 1983)","http://dl.acm.org/citation.cfm?id=J952","http://dl.acm.org/citation.cfm?id=J952&picked=prox"
-"SIG Newsletters","ACM SIGMETRICS Performance Evaluation Review","SIGMETRICS Perform. Eval. Rev.","0163-5999","","Volume 1 Issue 1 (March 1972)","Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013)","http://dl.acm.org/citation.cfm?id=J618","http://dl.acm.org/citation.cfm?id=J618&picked=prox"
-"SIG Newsletters","ACM SIGMICRO Newsletter","SIGMICRO Newsl.","1050-916X","","Volume 2 Issue 4 (January 1972)","Volume 23 Issue 1-2 (Dec. 1992)","http://dl.acm.org/citation.cfm?id=J703","http://dl.acm.org/citation.cfm?id=J703&picked=prox"
-"SIG Newsletters","ACM SIGMINI Newsletter","SIGMINI Newsl.","0163-576X","","Volume 1 Issue 1 (July 1975)","Volume 4 Issue 4 (August 1978)","http://dl.acm.org/citation.cfm?id=J951","http://dl.acm.org/citation.cfm?id=J951&picked=prox"
-"SIG Newsletters","ACM SIGMIS Database","SIGMIS Database","0095-0033","","Volume 1 Issue 2 (Summer 1969)","Volume 44 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J219","http://dl.acm.org/citation.cfm?id=J219&picked=prox"
-"SIG Newsletters","ACM SIGMOBILE Mobile Computing and Communications Review","SIGMOBILE Mob. Comput. Commun. Rev.","1559-1662","1931-1222","Volume 1 Issue 1 (April 1997)","Volume 17 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J548","http://dl.acm.org/citation.cfm?id=J548&picked=prox"
-"SIG Newsletters","ACM SIGMOD Record","SIGMOD Rec.","0163-5808","","Volume 1 Issue 1 (August 1969)","Volume 42 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J689","http://dl.acm.org/citation.cfm?id=J689&picked=prox"
-"SIG Newsletters","ACM SIGMultimedia Records","SIGMultimedia Rec.","","1947-4598","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1232","http://dl.acm.org/citation.cfm?id=J1232&picked=prox"
-"SIG Newsletters","ACM SIGNUM Newsletter","SIGNUM Newsl.","0163-5778","","Volume 1 Issue 1 (June 1966)","Volume 33 Issue 2 (April 1, 1998)","http://dl.acm.org/citation.cfm?id=J690","http://dl.acm.org/citation.cfm?id=J690&picked=prox"
-"SIG Newsletters","ACM SIGOA Newsletter","ACM SIGOA Newsletter","0737-819X","","Volume 1 Issue 1 (March 1980)","Volume 7 Issue 1 (Spring 1986)","http://dl.acm.org/citation.cfm?id=J915","http://dl.acm.org/citation.cfm?id=J915&picked=prox"
-"SIG Newsletters","ACM SIGOIS Bulletin","SIGOIS Bull.","0894-0819","","Volume 7 Issue 2-3 (Summer-Fall 1986)","Volume 17 Issue 3 (Dec. 1996)","http://dl.acm.org/citation.cfm?id=J705","http://dl.acm.org/citation.cfm?id=J705&picked=prox"
-"SIG Newsletters","ACM SIGOPS Operating Systems Review","SIGOPS Oper. Syst. Rev.","0163-5980","","Volume 3 Issue 1 (February 1969)","Volume 47 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J597","http://dl.acm.org/citation.cfm?id=J597&picked=prox"
-"SIG Newsletters","ACM SIGPC Notes","SIGPC Note.","0163-5816","","Volume 1 Issue 2 (Summer 1978)","Volume 5 Issue 1-2 (Fall/Winter 1982/1983)","http://dl.acm.org/citation.cfm?id=J950","http://dl.acm.org/citation.cfm?id=J950&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Fortran Forum","SIGPLAN Fortran Forum","1061-7264","1931-1311","Volume 1 Issue 1 (July 1982)","Volume 32 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J286","http://dl.acm.org/citation.cfm?id=J286&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Lisp Pointers","SIGPLAN Lisp Pointers","1045-3563","","Volume 1 Issue 1 (April-May 1987)","Volume VIII Issue 2 (May-Aug., 1995)","http://dl.acm.org/citation.cfm?id=J509","http://dl.acm.org/citation.cfm?id=J509&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Notices","SIGPLAN Not.","0362-1340","1558-1160","Volume 1 Issue 8 (August 1966)","Volume 48 Issue 11 (November 2013) - ISMM '13","http://dl.acm.org/citation.cfm?id=J706","http://dl.acm.org/citation.cfm?id=J706&picked=prox"
-"SIG Newsletters","ACM SIGPLAN OOPS Messenger","SIGPLAN OOPS Mess.","1055-6400","","Volume 1 Issue 1 (Aug. 1990)","Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems","http://dl.acm.org/citation.cfm?id=J594","http://dl.acm.org/citation.cfm?id=J594&picked=prox"
-"SIG Newsletters","ACM SIGSAC Review","SIGSAC Rev.","0277-920X","","Volume 1 Issue 1 (Winter 1981-1982)","Volume 15 Issue 2 (April 1997)","http://dl.acm.org/citation.cfm?id=J691","http://dl.acm.org/citation.cfm?id=J691&picked=prox"
-"SIG Newsletters","ACM SIGSAM Bulletin","SIGSAM Bull.","0163-5824","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J707","http://dl.acm.org/citation.cfm?id=J707&picked=prox"
-"SIG Newsletters","ACM SIGSIM Simulation Digest","SIGSIM Simul. Dig.","0163-6103","","Volume 3 Issue 1 (September 1971)","Volume 28 Issue 1 (July 1998)","http://dl.acm.org/citation.cfm?id=J711","http://dl.acm.org/citation.cfm?id=J711&picked=prox"
-"SIG Newsletters","ACM SIGSMALL Newsletter","SIGSMALL Newsl.","0272-720X","","Volume 4 Issue 5 (October 1978)","Volume 10 Issue 4 (October 1984)","http://dl.acm.org/citation.cfm?id=J949","http://dl.acm.org/citation.cfm?id=J949&picked=prox"
-"SIG Newsletters","ACM SIGSMALL/PC Notes","SIGSMALL/PC Notes","0893-2875","","Volume 11 Issue 3 (Aug. 1985)","Volume 19 Issue 2 (Nov. 1993)","http://dl.acm.org/citation.cfm?id=J692","http://dl.acm.org/citation.cfm?id=J692&picked=prox"
-"SIG Newsletters","ACM SIGSOC Bulletin","SIGSOC Bull.","0163-5794","","Volume 1 Issue 1 (March 1969)","Volume 13 Issue 4 (April 1982)","http://dl.acm.org/citation.cfm?id=J948","http://dl.acm.org/citation.cfm?id=J948&picked=prox"
-"SIG Newsletters","ACM SIGSOFT Software Engineering Notes","SIGSOFT Softw. Eng. Notes","0163-5948","","Volume 1 Issue 1 (May 1976)","Volume 38 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J728","http://dl.acm.org/citation.cfm?id=J728&picked=prox"
-"SIG Newsletters","ACM SIGUCCS Newsletter","SIGUCCS Newsl.","0736-6892","","Volume 1 Issue 1 (January 1965)","Volume 28 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J708","http://dl.acm.org/citation.cfm?id=J708&picked=prox"
-"SIG Newsletters","ACM SIGUCCS plugged in","ACM SIGUCCS plugged in","","2168-8516","Volume 1 Issue 1 (Summer 2012)","Volume 2 Issue 1 (Summer 2013)","http://dl.acm.org/citation.cfm?id=J1358","http://dl.acm.org/citation.cfm?id=J1358&picked=prox"
-"SIG Newsletters","ACM SIGWEB Newsletter","SIGWEB Newsl.","1931-1745","1931-1435","Volume 1 Issue 1 (March 1992)","Issue Autumn (Autumn 2013)","http://dl.acm.org/citation.cfm?id=J507","http://dl.acm.org/citation.cfm?id=J507&picked=prox"
-"SIG Newsletters","ACM SIGecom Exchanges","SIGecom Exch.","","1551-9031","Volume 1 Issue 1 (Summer, 2000)","Volume 12 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J684","http://dl.acm.org/citation.cfm?id=J684&picked=prox"
-"SIG Newsletters","Communication Design Quarterly Review","Commun. Des. Q. Rev","2166-1200","2166-1642","Volume 2 Issue 1 (March 2001)","Volume 2 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J1351","http://dl.acm.org/citation.cfm?id=J1351&picked=prox"
-"SIG Newsletters","SIGSPATIAL Special","SIGSPATIAL Special","","1946-7729","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J1196","http://dl.acm.org/citation.cfm?id=J1196&picked=prox"
-"Conference Proceedings","3DOR: 3D Object Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dor/","http://portal.acm.org/proceedings/3dor/archive/"
-"Conference Proceedings","3DVP: 3D Video Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dvp/","http://portal.acm.org/proceedings/3dvp/archive/"
-"Conference Proceedings","A-MOST: Advances in Model-Based Testing","","","","2005 (May 2005)","2007 (July 2007)","http://portal.acm.org/proceedings/a-most/","http://portal.acm.org/proceedings/a-most/archive/"
-"Conference Proceedings","A2CWiC: Amrita ACM-W Celebration on Women in Computing in India","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/a2cwic/","http://portal.acm.org/proceedings/a2cwic/archive/"
-"Conference Proceedings","AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/aaa-idea/","http://portal.acm.org/proceedings/aaa-idea/archive/"
-"Conference Proceedings","AADEBUG: Automated analysis-driven debugging","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/aadebug/","http://portal.acm.org/proceedings/aadebug/archive/"
-"Conference Proceedings","AAMAS: Autonomous Agents and Multiagent Systems","","","","2002 (July 2002)","2013 (May 2013)","http://portal.acm.org/proceedings/aamas/","http://portal.acm.org/proceedings/aamas/archive/"
-"Conference Proceedings","ACDC: Automated Control for Datacenters and Clouds","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/acdc/","http://portal.acm.org/proceedings/acdc/archive/"
-"Conference Proceedings","ACET: Advances in Computer Entertainment Technology","","","","2004 (September 2004)","2011 (November 2011)","http://portal.acm.org/proceedings/ace/","http://portal.acm.org/proceedings/ace/archive/"
-"Conference Proceedings","ACISNR: Applications of Computer and Information Sciences to Nature Research","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/acisnr/","http://portal.acm.org/proceedings/acisnr/archive/"
-"Conference Proceedings","ACL2: ACL2 Theorem Prover and its Applications","","","","2006 (August 2006)","2009 (May 2009)","http://portal.acm.org/proceedings/acl2/","http://portal.acm.org/proceedings/acl2/archive/"
-"Conference Proceedings","ACM DEV: Computing for Development","","","","2010 (December 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/acmdev/","http://portal.acm.org/proceedings/acmdev/archive/"
-"Conference Proceedings","ACM POLICY: ACM POLICY","","","","1998 (June 1998)","1998 (June 1998)","http://portal.acm.org/proceedings/acmpolicy/","http://portal.acm.org/proceedings/acmpolicy/archive/"
-"Conference Proceedings","ACM SE: Annual Southeast Regional Conference","","","","1967 (June 1967)","2013 (April 2013)","http://portal.acm.org/proceedings/acmse/","http://portal.acm.org/proceedings/acmse/archive/"
-"Conference Proceedings","ACM-BCS: ACM-BCS","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/acm-bcs/","http://portal.acm.org/proceedings/acm-bcs/archive/"
-"Conference Proceedings","ACM: ACM Annual Conference/Annual Meeting","","","","1952 (May 1952)","1987 (December 1987)","http://portal.acm.org/proceedings/acm/","http://portal.acm.org/proceedings/acm/archive/"
-"Conference Proceedings","ACPIS: Aspects, Components, and Patterns for Infrastructure Software","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/acpis/","http://portal.acm.org/proceedings/acpis/archive/"
-"Conference Proceedings","ACSAC: Annual Computer Security Applications Conference","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/acsac/","http://portal.acm.org/proceedings/acsac/archive/"
-"Conference Proceedings","ACSE: Australasian Conference on Computing Education","","","","1996 (July 1996)","2010 (January 2010)","http://portal.acm.org/proceedings/acse/","http://portal.acm.org/proceedings/acse/archive/"
-"Conference Proceedings","ACoM: Assessment of Contemporary Modularization Techniques","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/acom/","http://portal.acm.org/proceedings/acom/archive/"
-"Conference Proceedings","ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/adamus/","http://portal.acm.org/proceedings/adamus/archive/"
-"Conference Proceedings","ADKDD: Data Mining and Audience Intelligence for Advertising","","","","2007 (August 2007)","2013 (August 2013)","http://portal.acm.org/proceedings/adkdd/","http://portal.acm.org/proceedings/adkdd/archive/"
-"Conference Proceedings","ADPUC: Advanced Data Processing in Ubiquitous Computing ","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/adpuc/","http://portal.acm.org/proceedings/adpuc/archive/"
-"Conference Proceedings","AFFINE: Affective-Aware Virtual Agents and Social Robots","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/affine/","http://portal.acm.org/proceedings/affine/archive/"
-"Conference Proceedings","AFIPS: AFIPS","","","","1955 (March 1955)","1984 (July 1984)","http://portal.acm.org/proceedings/afips/","http://portal.acm.org/proceedings/afips/archive/"
-"Conference Proceedings","AFM: Automated Formal Methods","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/afm/","http://portal.acm.org/proceedings/afm/archive/"
-"Conference Proceedings","AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa","","","","2001 (November 2001)","2010 (June 2010)","http://portal.acm.org/proceedings/afrigraph/","http://portal.acm.org/proceedings/afrigraph/archive/"
-"Conference Proceedings","AGENTS: Autonomous Agents","","","","1997 (February 1997)","2001 (May 2001)","http://portal.acm.org/proceedings/agents/","http://portal.acm.org/proceedings/agents/archive/"
-"Conference Proceedings","AH: Augmented Human","","","","2010 (April 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/ah/","http://portal.acm.org/proceedings/ah/archive/"
-"Conference Proceedings","AIEE-IRE: AIEE-IRE","","","","1951 (December 1951)","1962 (May 1962)","http://portal.acm.org/proceedings/aiee-ire/","http://portal.acm.org/proceedings/aiee-ire/archive/"
-"Conference Proceedings","AIEMPro: Automated Information Extraction in Media Production","","","","2010 (October 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/aiempro/","http://portal.acm.org/proceedings/aiempro/archive/"
-"Conference Proceedings","AIGC: Artificial Intelligence in Grid Computing","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/aigc/","http://portal.acm.org/proceedings/aigc/archive/"
-"Conference Proceedings","AINTEC: Asian Conference on Internet Engineering","","","","2008 (November 2008)","2012 (November 2012)","http://portal.acm.org/proceedings/aintec/","http://portal.acm.org/proceedings/aintec/archive/"
-"Conference Proceedings","AIPACa: Applications of Private and Anonymous Communications","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/aipaca/","http://portal.acm.org/proceedings/aipaca/archive/"
-"Conference Proceedings","AIRS: Asia Information Retrieval Symposium ","","","","2008 (January 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/airs/","http://portal.acm.org/proceedings/airs/archive/"
-"Conference Proceedings","AIRWeb: Adversarial Information Retrieval on the Web","","","","2007 (May 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/airweb/","http://portal.acm.org/proceedings/airweb/archive/"
-"Conference Proceedings","AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/aisc/mkm/calculemus/","http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/"
-"Conference Proceedings","AISec: Artificial Intelligence and Security","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/aisec/","http://portal.acm.org/proceedings/aisec/archive/"
-"Conference Proceedings","ALICE: Alice Symposium","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/alice/","http://portal.acm.org/proceedings/alice/archive/"
-"Conference Proceedings","AM: Audio Mostly","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/am/","http://portal.acm.org/proceedings/am/archive/"
-"Conference Proceedings","AMC: Ambient Media Computing","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/amc/","http://portal.acm.org/proceedings/amc/archive/"
-"Conference Proceedings","AMCMM: Audio and Music Computing Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/amcmm/","http://portal.acm.org/proceedings/amcmm/archive/"
-"Conference Proceedings","ANCS: Architectures for Networking and Communications Systems","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/ancs/","http://portal.acm.org/proceedings/ancs/archive/"
-"Conference Proceedings","AND: Analytics for Noisy Unstructured Text Data","","","","2008 (July 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/and/","http://portal.acm.org/proceedings/and/archive/"
-"Conference Proceedings","ANNA: Analysis of Neural Network Applications","","","","1991 (May 1991)","1991 (May 1991)","http://portal.acm.org/proceedings/anna/","http://portal.acm.org/proceedings/anna/archive/"
-"Conference Proceedings","ANSS: Annual Simulation Symposium","","","","1973 (June 1973)","2013 (April 2013)","http://portal.acm.org/proceedings/anss/","http://portal.acm.org/proceedings/anss/archive/"
-"Conference Proceedings","AOM: Aspect-Oriented Modeling","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/aom/","http://portal.acm.org/proceedings/aom/archive/"
-"Conference Proceedings","AOMD: Aspect Oriented Middleware Development","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/aomd/","http://portal.acm.org/proceedings/aomd/archive/"
-"Conference Proceedings","AOSD: Aspect-Oriented Software Development","","","","2002 (April 2002)","2013 (March 2013)","http://portal.acm.org/proceedings/aosd/","http://portal.acm.org/proceedings/aosd/archive/"
-"Conference Proceedings","APGV: Applied Perception in Graphics and Visualization","","","","2004 (August 2004)","2011 (August 2011)","http://portal.acm.org/proceedings/apgv/","http://portal.acm.org/proceedings/apgv/archive/"
-"Conference Proceedings","APL: APL","","","","1969 (January 1969)","2003 (June 2003)","http://portal.acm.org/proceedings/apl/","http://portal.acm.org/proceedings/apl/archive/"
-"Conference Proceedings","APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/aplwaca/","http://portal.acm.org/proceedings/aplwaca/archive/"
-"Conference Proceedings","APOS: Scrutinizing Agile Practices","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/apos/","http://portal.acm.org/proceedings/apos/archive/"
-"Conference Proceedings","APS: Adaptive, Personalization &#38; the Semantic Web","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/aps/","http://portal.acm.org/proceedings/aps/archive/"
-"Conference Proceedings","APSys: Asia-Pacific Workshop on Systems","","","","2010 (August 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/apsys/","http://portal.acm.org/proceedings/apsys/archive/"
-"Conference Proceedings","AREA: Analysis and Retrieval of Events","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/area/","http://portal.acm.org/proceedings/area/archive/"
-"Conference Proceedings","ARM: Adaptive and Reflective MIddleware","","","","2004 (October 2004)","2013 (December 2013)","http://portal.acm.org/proceedings/arm/","http://portal.acm.org/proceedings/arm/archive/"
-"Conference Proceedings","ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams","","","","2010 (October 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/artemis/","http://portal.acm.org/proceedings/artemis/archive/"
-"Conference Proceedings","ASE: Automated Software Engineering","","","","1997 (November 1997)","2012 (September 2012)","http://portal.acm.org/proceedings/ase/","http://portal.acm.org/proceedings/ase/archive/"
-"Conference Proceedings","ASIA CCS: Information, Computer and Communications Security","","","","2006 (March 2006)","2013 (May 2013)","http://portal.acm.org/proceedings/asiaccs/","http://portal.acm.org/proceedings/asiaccs/archive/"
-"Conference Proceedings","ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/asia-pepm/","http://portal.acm.org/proceedings/asia-pepm/archive/"
-"Conference Proceedings","ASID: Architectural and System Support for Improving Software Dependability","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/asid/","http://portal.acm.org/proceedings/asid/archive/"
-"Conference Proceedings","ASPDAC: Asia and South Pacific Design Automation Conference","","","","1995 (August 1995)","2011 (January 2011)","http://portal.acm.org/proceedings/aspdac/","http://portal.acm.org/proceedings/aspdac/archive/"
-"Conference Proceedings","ASPLOS: Architectural Support for Programming Languages and Operating Systems","","","","1982 (March 1982)","2013 (March 2013)","http://portal.acm.org/proceedings/asplos/","http://portal.acm.org/proceedings/asplos/archive/"
-"Conference Proceedings","AST: Automation of Software Test","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/ast/","http://portal.acm.org/proceedings/ast/archive/"
-"Conference Proceedings","AUIC: User Interface","","","","2001 (January 2001)","2010 (January 2010)","http://portal.acm.org/proceedings/auic/","http://portal.acm.org/proceedings/auic/archive/"
-"Conference Proceedings","AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/aupc/","http://portal.acm.org/proceedings/aupc/archive/"
-"Conference Proceedings","AVI: Advanced Visual Interfaces","","","","1994 (June 1994)","2012 (May 2012)","http://portal.acm.org/proceedings/avi/","http://portal.acm.org/proceedings/avi/archive/"
-"Conference Proceedings","AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/avstp2p/","http://portal.acm.org/proceedings/avstp2p/archive/"
-"Conference Proceedings","AcessNets: Access Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/acessnets/","http://portal.acm.org/proceedings/acessnets/archive/"
-"Conference Proceedings","Ambi-Sys: Ambient Media and Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/ambi-sys/","http://portal.acm.org/proceedings/ambi-sys/archive/"
-"Conference Proceedings","Assets: Computers and Accessibility","","","","1994 (October 1994)","2013 (October 2013)","http://portal.acm.org/proceedings/assets/","http://portal.acm.org/proceedings/assets/archive/"
-"Conference Proceedings","AusGrid: Grid Computing and e-Research","","","","2008 (January 2008)","2009 (January 2009)","http://portal.acm.org/proceedings/ausgrid/","http://portal.acm.org/proceedings/ausgrid/archive/"
-"Conference Proceedings","AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications","","","","2009 (September 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/automotiveui/","http://portal.acm.org/proceedings/automotiveui/archive/"
-"Conference Proceedings","Autonomics: Autonomic Computing and Communication Systems","","","","2007 (October 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/autonomics/","http://portal.acm.org/proceedings/autonomics/archive/"
-"Conference Proceedings","BADS: Bio-Inspired Algorithms for Distributed Systems","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/bads/","http://portal.acm.org/proceedings/bads/archive/"
-"Conference Proceedings","BCB: Bioinformatics and Computational Biology","","","","2010 (August 2010)","2007 (September 2013)","http://portal.acm.org/proceedings/bcb/","http://portal.acm.org/proceedings/bcb/archive/"
-"Conference Proceedings","BCS-HCI: British HCI Group Annual Conference on People and Computers","","","","2007 (September 2007)","2009 (September 2009)","http://portal.acm.org/proceedings/bcs-hci/","http://portal.acm.org/proceedings/bcs-hci/archive/"
-"Conference Proceedings","BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization","","","","2006 (May 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/beliv/","http://portal.acm.org/proceedings/beliv/archive/"
-"Conference Proceedings","BIOKDD: Bioinformatics","","","","2005 (August 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/biokdd/","http://portal.acm.org/proceedings/biokdd/archive/"
-"Conference Proceedings","BIONETICS: Bio Inspired Models of Network, Information and Computing Systems","","","","2006 (December 2006)","2006 (December 2006)","http://portal.acm.org/proceedings/bionetics/","http://portal.acm.org/proceedings/bionetics/archive/"
-"Conference Proceedings","BM-FA: Behaviour Modelling","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/bm-fa/","http://portal.acm.org/proceedings/bm-fa/archive/"
-"Conference Proceedings","BM-MDA: Behaviour Modelling in Model-Driven Architecture","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/bm-mda/","http://portal.acm.org/proceedings/bm-mda/archive/"
-"Conference Proceedings","BPAOSD: Best Practices in Applying Aspect-Oriented Software Development","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/bpaosd/","http://portal.acm.org/proceedings/bpaosd/archive/"
-"Conference Proceedings","BQGT: Behavioral and Quantitative Game Theory","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/bqgt/","http://portal.acm.org/proceedings/bqgt/archive/"
-"Conference Proceedings","BWAN: Broadband Wireless Access for Ubiquitous Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/bwan/","http://portal.acm.org/proceedings/bwan/archive/"
-"Conference Proceedings","Baltic Sea: Baltic Sea Conference on Computing Education Research","","","","2006 (February 2006)","2006 (February 2006)","http://portal.acm.org/proceedings/balticsea/","http://portal.acm.org/proceedings/balticsea/archive/"
-"Conference Proceedings","BiPi: Business Impact of Process Improvements","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/bipi/","http://portal.acm.org/proceedings/bipi/archive/"
-"Conference Proceedings","BooksOnline: Research Advances in Large Digital Book Repositories","","","","2008 (October 2008)","2012 (October 2012)","http://portal.acm.org/proceedings/booksonline/","http://portal.acm.org/proceedings/booksonline/archive/"
-"Conference Proceedings","BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/buildsys/","http://portal.acm.org/proceedings/buildsys/archive/"
-"Conference Proceedings","C&#38;C: Creativity and Cognition","","","","1999 (October 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;c/","http://portal.acm.org/proceedings/c&amp;c/archive/"
-"Conference Proceedings","C&#38;T: Communities and Technologies","","","","2009 (June 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;t/","http://portal.acm.org/proceedings/c&amp;t/archive/"
-"Conference Proceedings","C3P: Hypercube Concurrent Computers and Applications","","","","1988 (January 1988)","1988 (January 1989)","http://portal.acm.org/proceedings/c3p/","http://portal.acm.org/proceedings/c3p/archive/"
-"Conference Proceedings","C3S2E: Canadian Conference on Computer Science and Software Engineering","","","","2008 (May 2008)","2013 (July 2013)","http://portal.acm.org/proceedings/cse/","http://portal.acm.org/proceedings/cse/archive/"
-"Conference Proceedings","CAI: Context in Advanced Interfaces","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/cai/","http://portal.acm.org/proceedings/cai/archive/"
-"Conference Proceedings","CAMA: Contextualized Attention Metadata","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/cama/","http://portal.acm.org/proceedings/cama/archive/"
-"Conference Proceedings","CAMRa: Context-aware Movie Recommendation","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/camra/","http://portal.acm.org/proceedings/camra/archive/"
-"Conference Proceedings","CAMS: Context-Aware Middleware and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/cams/","http://portal.acm.org/proceedings/cams/archive/"
-"Conference Proceedings","CARPE: Continous Archival and Retrieval of Personal Experiences","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/carpe/","http://portal.acm.org/proceedings/carpe/archive/"
-"Conference Proceedings","CARS: Critical Automotive Applications","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/cars/","http://portal.acm.org/proceedings/cars/archive/"
-"Conference Proceedings","CASEMANS: Context-Awareness for Self-Managing Systems","","","","2008 (May 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CASES: Compilers, Architectures and Synthesis for Embedded Systems","","","","2000 (November 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/cases/","http://portal.acm.org/proceedings/cases/archive/"
-"Conference Proceedings","CASTA: Context-Aware Software Technology and Application","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/casta/","http://portal.acm.org/proceedings/casta/archive/"
-"Conference Proceedings","CAW: Computer Architecture for Non-Numeric Processing","","","","1977 (January 1977)","1980 (March 1980)","http://portal.acm.org/proceedings/caw/","http://portal.acm.org/proceedings/caw/archive/"
-"Conference Proceedings","CBHPC: Component-Based High Performance Computing","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/cbhpc/","http://portal.acm.org/proceedings/cbhpc/archive/"
-"Conference Proceedings","CC: Critical Computing","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/cc/","http://portal.acm.org/proceedings/cc/archive/"
-"Conference Proceedings","CCS: Computer and Communications Security","","","","1993 (December 1993)","2013 (November 2013)","http://portal.acm.org/proceedings/ccs/","http://portal.acm.org/proceedings/ccs/archive/"
-"Conference Proceedings","CCSC: Consortium for Computing Sciences in Colleges","","","","1991 (May 1991)","2001 (April 2001)","http://portal.acm.org/proceedings/ccsc/","http://portal.acm.org/proceedings/ccsc/archive/"
-"Conference Proceedings","CCSW: Cloud Computing Security Workshop","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ccsw/","http://portal.acm.org/proceedings/ccsw/archive/"
-"Conference Proceedings","CCU: Contemporary Computing in Ukraine","","","","2000 (February 2000)","2000 (February 2000)","http://portal.acm.org/proceedings/ccu/","http://portal.acm.org/proceedings/ccu/archive/"
-"Conference Proceedings","CEA: Cooking and Eating Activities","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/cea/","http://portal.acm.org/proceedings/cea/archive/"
-"Conference Proceedings","CF: Computing Frontiers","","","","2004 (April 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/cf/","http://portal.acm.org/proceedings/cf/archive/"
-"Conference Proceedings","CFI: Future Internet Technologies","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/cfi/","http://portal.acm.org/proceedings/cfi/archive/"
-"Conference Proceedings","CFP: Computers, Freedom and Privacy","","","","1992 (April 1992)","2002 (April 2002)","http://portal.acm.org/proceedings/cfp/","http://portal.acm.org/proceedings/cfp/archive/"
-"Conference Proceedings","CGI: Computer Graphics International","","","","1996 (June 1996)","2009 (May 2009)","http://portal.acm.org/proceedings/cgi/","http://portal.acm.org/proceedings/cgi/archive/"
-"Conference Proceedings","CGO: Code Generation and Optimization","","","","2003 (March 2003)","2013 (February 2013)","http://portal.acm.org/proceedings/cgo/","http://portal.acm.org/proceedings/cgo/archive/"
-"Conference Proceedings","CHANTS: Challenged Networks","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/chants/","http://portal.acm.org/proceedings/chants/archive/"
-"Conference Proceedings","CHASE: Cooperative and Human Aspects on Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/chase/","http://portal.acm.org/proceedings/chase/archive/"
-"Conference Proceedings","CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts","","","","1997 (March 1997)","2013 (April 2013)","http://portal.acm.org/proceedings/chiea/","http://portal.acm.org/proceedings/chiea/archive/"
-"Conference Proceedings","CHI: Conference on Human Factors in Computing Systems","","","","1981 (May 1981)","2013 (April 2013)","http://portal.acm.org/proceedings/chi/","http://portal.acm.org/proceedings/chi/archive/"
-"Conference Proceedings","CHINA HPC: High Performance Computing","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/chinahpc/","http://portal.acm.org/proceedings/chinahpc/archive/"
-"Conference Proceedings","CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction","","","","2001 (July 2001)","2012 (July 2012)","http://portal.acm.org/proceedings/chinz/","http://portal.acm.org/proceedings/chinz/archive/"
-"Conference Proceedings","CHiMiT: Computer Human Interaction for the Management of Information Technology","","","","2007 (March 2007)","2011 (December 2011)","http://portal.acm.org/proceedings/chimit/","http://portal.acm.org/proceedings/chimit/archive/"
-"Conference Proceedings","CIAA: Implementation and Application of Automata","","","","2003 (July 2002)","2003 (July 2002)","http://portal.acm.org/proceedings/ciaa/","http://portal.acm.org/proceedings/ciaa/archive/"
-"Conference Proceedings","CIAO: Context, Information and Ontologies","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/ciao/","http://portal.acm.org/proceedings/ciao/archive/"
-"Conference Proceedings","CIKM: Conference on Information and Knowledge Management","","","","1993 (December 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/cikm/","http://portal.acm.org/proceedings/cikm/archive/"
-"Conference Proceedings","CIMS: CyberInfrastructure: Information Management in eScience","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/cims/","http://portal.acm.org/proceedings/cims/archive/"
-"Conference Proceedings","CIVR: Conference on Image and Video Retrieval","","","","2007 (July 2007)","2010 (July 2010)","http://portal.acm.org/proceedings/civr/","http://portal.acm.org/proceedings/civr/archive/"
-"Conference Proceedings","CLADE: Challenges of Large Applications in Distributed Environments","","","","2003 (June 2003)","2009 (June 2009)","http://portal.acm.org/proceedings/clade/","http://portal.acm.org/proceedings/clade/archive/"
-"Conference Proceedings","CLIHC: Latin American Conference on Human-Computer Interaction","","","","2003 (August 2003)","2005 (October 2005)","http://portal.acm.org/proceedings/clihc/","http://portal.acm.org/proceedings/clihc/archive/"
-"Conference Proceedings","CLOUD: Software Engineering Challenges of Cloud Computing","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/cloud/","http://portal.acm.org/proceedings/cloud/archive/"
-"Conference Proceedings","CMM: Connected Multimedia","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/cmm/","http://portal.acm.org/proceedings/cmm/archive/"
-"Conference Proceedings","CMSB: Computational Methods in Systems Biology","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/cmsb/","http://portal.acm.org/proceedings/cmsb/archive/"
-"Conference Proceedings","CNIKM: Complex Networks Meet Information & Knowledge Management","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/cnikm/","http://portal.acm.org/proceedings/cnikm/archive/"
-"Conference Proceedings","CNS: Communications and Networking Simulation","","","","2008 (April 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/cns/","http://portal.acm.org/proceedings/cns/archive/"
-"Conference Proceedings","COCS: Conference on Organizational Computing Systems","","","","1984 (January 1984)","1995 (August 1995)","http://portal.acm.org/proceedings/cocs/","http://portal.acm.org/proceedings/cocs/archive/"
-"Conference Proceedings","CODES: Hardware Software Codesign","","","","1994 (September 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/codes/","http://portal.acm.org/proceedings/codes/archive/"
-"Conference Proceedings","COLT: Computational Learning Theory","","","","1988 (December 1988)","1999 (July 1999)","http://portal.acm.org/proceedings/colt/","http://portal.acm.org/proceedings/colt/archive/"
-"Conference Proceedings","COM.Geo: Computing for Geospatial Research &#38; Application","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/com.geo/","http://portal.acm.org/proceedings/com.geo/archive/"
-"Conference Proceedings","COMM: Communications Architectures and Protocols","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/comm/","http://portal.acm.org/proceedings/comm/archive/"
-"Conference Proceedings","COMPUTE: COMPUTE","","","","2008 (January 2008)","2013 (August 2013)","http://portal.acm.org/proceedings/compute/","http://portal.acm.org/proceedings/compute/archive/"
-"Conference Proceedings","COMSWARE: Communication System Software and Middleware","","","","2009 (June 2009)","2011 (July 2011)","http://portal.acm.org/proceedings/comsware/","http://portal.acm.org/proceedings/comsware/archive/"
-"Conference Proceedings","COP: Context-Oriented Programming","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/cop/","http://portal.acm.org/proceedings/cop/archive/"
-"Conference Proceedings by Affiliated Organizations","CPR: Computers and People Research","","","","1962 (June 1962)","2013 (May 2013)","http://portal.acm.org/proceedings/sigcpr/","http://portal.acm.org/proceedings/sigcpr/archive/"
-"Conference Proceedings","CQL: Computers and the Quality of Life","","","","1990 (August 1990)","1996 (February 1996)","http://portal.acm.org/proceedings/cql/","http://portal.acm.org/proceedings/cql/archive/"
-"Conference Proceedings","CSAW: Computer Security Architectures","","","","2007 (November 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/csaw/","http://portal.acm.org/proceedings/csaw/archive/"
-"Conference Proceedings","CSC: Conference on Computer Science","","","","1973 (February 1973)","1996 (February 1996)","http://portal.acm.org/proceedings/csc/","http://portal.acm.org/proceedings/csc/archive/"
-"Conference Proceedings","CSCW: Computer Supported Cooperative Work","","","","1986 (December 1986)","2013 (February 2013)","http://portal.acm.org/proceedings/cscw/","http://portal.acm.org/proceedings/cscw/archive/"
-"Conference Proceedings","CSI-KDD: CyberSecurity and Intelligence Informatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/csi-kdd/","http://portal.acm.org/proceedings/csi-kdd/archive/"
-"Conference Proceedings","CSIIRW: Cyber Security and Information Intelligence Research","","","","2008 (May 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/csiirw/","http://portal.acm.org/proceedings/csiirw/archive/"
-"Conference Proceedings","CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/csssia/","http://portal.acm.org/proceedings/csssia/archive/"
-"Conference Proceedings","CSTST: Soft Computing as Transdisciplinary Science and Technology","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/cstst/","http://portal.acm.org/proceedings/cstst/archive/"
-"Conference Proceedings","CUFP: Commercial Users of Functional Programming","","","","2007 (October 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/cufp/","http://portal.acm.org/proceedings/cufp/archive/"
-"Conference Proceedings","CUU: Conference on Universal Usability","","","","2000 (November 2000)","2003 (November 2003)","http://portal.acm.org/proceedings/cuu/","http://portal.acm.org/proceedings/cuu/archive/"
-"Conference Proceedings","CVDB: Computer Vision Meets Databases","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/cvdb/","http://portal.acm.org/proceedings/cvdb/archive/"
-"Conference Proceedings","CVE: Collaborative Virtual Environments","","","","2000 (September 2000)","2002 (September 2002)","http://portal.acm.org/proceedings/cve/","http://portal.acm.org/proceedings/cve/archive/"
-"Conference Proceedings","CVSM: Comparison and Versioning of Software Models","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/cvsm/","http://portal.acm.org/proceedings/cvsm/archive/"
-"Conference Proceedings","CWIT: Women and ICT","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/cwit/","http://portal.acm.org/proceedings/cwit/archive/"
-"Conference Proceedings","CWNETS: Cognitive Wireless Networks","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/cwnets/","http://portal.acm.org/proceedings/cwnets/archive/"
-"Conference Proceedings","Casemans: Context-Awareness for Self-Managing Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CloudDB: Cloud Data Management","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/clouddb/","http://portal.acm.org/proceedings/clouddb/archive/"
-"Conference Proceedings","CoNEXT: Co-NEXT","","","","2005 (October 2005)","2013 (December 2013)","http://portal.acm.org/proceedings/conext/","http://portal.acm.org/proceedings/conext/archive/"
-"Conference Proceedings","CoRoNet: Cognitive Radio Networks","","","","2009 (September 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/coronet/","http://portal.acm.org/proceedings/coronet/archive/"
-"Conference Proceedings","CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/communicabilityms/","http://portal.acm.org/proceedings/communicabilityms/archive/"
-"Conference Proceedings","CompBio: Computational biology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/compbio/","http://portal.acm.org/proceedings/compbio/archive/"
-"Conference Proceedings","CompFrame: Component and Framework Technology in High-Performance and Scientific Computing","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/compframe/","http://portal.acm.org/proceedings/compframe/archive/"
-"Conference Proceedings","CompSysTech: Computer Systems and Technologies","","","","2000 (June 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/compsystech/","http://portal.acm.org/proceedings/compsystech/archive/"
-"Conference Proceedings","Companion: Middleware 08 Conference Companion","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/companion/","http://portal.acm.org/proceedings/companion/archive/"
-"Conference Proceedings","Creating: Creating Out of the Machine","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/creating/","http://portal.acm.org/proceedings/creating/archive/"
-"Conference Proceedings","DAC: Design Automation Conference","","","","1964 (January 1964)","2013 (May 2013)","http://portal.acm.org/proceedings/dac/","http://portal.acm.org/proceedings/dac/archive/"
-"Conference Proceedings","DADC: Data-aware Distributed Computing","","","","2008 (June 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/dadc/","http://portal.acm.org/proceedings/dadc/archive/"
-"Conference Proceedings","DAMP: Declarative Aspects of Multicore Programming","","","","2007 (January 2007)","2012 (January 2012)","http://portal.acm.org/proceedings/damp/","http://portal.acm.org/proceedings/damp/archive/"
-"Conference Proceedings","DARE: Designing Augmented Reality Environments","","","","2000 (April 2000)","2013 (November 2013)","http://portal.acm.org/proceedings/dare/","http://portal.acm.org/proceedings/dare/archive/"
-"Conference Proceedings","DAS: Document Analysis Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/das/","http://portal.acm.org/proceedings/das/archive/"
-"Conference Proceedings","DATACOMM: Data Communications and Data Networks","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/datacomm/","http://portal.acm.org/proceedings/datacomm/archive/"
-"Conference Proceedings","DATE: Design, Automation and Test in Europe","","","","1998 (February 1998)","2013 (March 2013)","http://portal.acm.org/proceedings/date/","http://portal.acm.org/proceedings/date/archive/"
-"Conference Proceedings","DBTest: Testing Database Systems","","","","2008 (June 2008)","2013 (June 2013)","http://portal.acm.org/proceedings/dbtest/","http://portal.acm.org/proceedings/dbtest/archive/"
-"Conference Proceedings","DCOSS:  Distributed Computing in Sensor Systems","","","","2007 (June 2007)","2010 (June 2010)","http://portal.acm.org/proceedings/dcoss/","http://portal.acm.org/proceedings/dcoss/archive/"
-"Conference Proceedings","DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dd4lcci/","http://portal.acm.org/proceedings/dd4lcci/archive/"
-"Conference Proceedings","DDDM: Domain Driven Data Mining","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/dddm/","http://portal.acm.org/proceedings/dddm/archive/"
-"Conference Proceedings","DEAS: Design and Evolution of Autonomic Application Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/deas/","http://portal.acm.org/proceedings/deas/archive/"
-"Conference Proceedings","DEBS: Distributed Event-Based Systems","","","","2003 (June 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/debs/","http://portal.acm.org/proceedings/debs/archive/"
-"Conference Proceedings","DEECS: Data Enginering issues in E-commerce and Services","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/deecs/","http://portal.acm.org/proceedings/deecs/archive/"
-"Conference Proceedings","DEFECTS: Defects in Large Software Systems","","","","2008 (July 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/defects/","http://portal.acm.org/proceedings/defects/archive/"
-"Conference Proceedings","DESIRE: Creativity and Innovation in Design","","","","2010 (August 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/desire/","http://portal.acm.org/proceedings/desire/archive/"
-"Conference Proceedings","DESRIST: Design Science Research in Information Systems and Technology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/desrist/","http://portal.acm.org/proceedings/desrist/archive/"
-"Conference Proceedings","DIALM: DIALM","","","","1999 (August 1999)","2010 (September 2010)","http://portal.acm.org/proceedings/dialm/","http://portal.acm.org/proceedings/dialm/archive/"
-"Conference Proceedings","DIM: Digital Identity Management","","","","2005 (November 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/dim/","http://portal.acm.org/proceedings/dim/archive/"
-"Conference Proceedings","DIMEA: Digital Interactive Media in Entertainment and Arts","","","","2007 (September 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/dimea/","http://portal.acm.org/proceedings/dimea/archive/"
-"Conference Proceedings","DIN: Dynamic Interconnection of Networks","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/din/","http://portal.acm.org/proceedings/din/archive/"
-"Conference Proceedings","DIS: Designing Interactive Systems","","","","1995 (August 1995)","2012 (June 2012)","http://portal.acm.org/proceedings/dis/","http://portal.acm.org/proceedings/dis/archive/"
-"Conference Proceedings","DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/diwans/","http://portal.acm.org/proceedings/diwans/archive/"
-"Conference Proceedings","DL: Digital Libraries","","","","1996 (April 1996)","2000 (June 2000)","http://portal.acm.org/proceedings/dl/","http://portal.acm.org/proceedings/dl/archive/"
-"Conference Proceedings","DLS: Dynamic Languages","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/dls/","http://portal.acm.org/proceedings/dls/archive/"
-"Conference Proceedings","DMG: Data Mining for Geoinformatics","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/dmg/","http://portal.acm.org/proceedings/dmg/archive/"
-"Conference Proceedings","DMKD: Research Issues in Data Mining and Knowledge Discovery","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/dmkd/","http://portal.acm.org/proceedings/dmkd/archive/"
-"Conference Proceedings","DMMT: Data Mining using Matrices and Tensors","","","","2001 (July 2001)","2009 (June 2009)","http://portal.acm.org/proceedings/dmmt/","http://portal.acm.org/proceedings/dmmt/archive/"
-"Conference Proceedings","DMSN: Data Management for Sensor Networks","","","","2004 (August 2004)","2010 (September 2010)","http://portal.acm.org/proceedings/dmsn/","http://portal.acm.org/proceedings/dmsn/archive/"
-"Conference Proceedings","DMSSP: Data Mining Standards, Services and Platforms","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/dmssp/","http://portal.acm.org/proceedings/dmssp/archive/"
-"Conference Proceedings","DO: Distributed Objects","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/do/","http://portal.acm.org/proceedings/do/archive/"
-"Conference Proceedings","DOCPROCS: Document Processing Systems","","","","1988 (January 2000)","1988 (January 2000)","http://portal.acm.org/proceedings/docprocs/","http://portal.acm.org/proceedings/docprocs/archive/"
-"Conference Proceedings","DOLAP: Data Warehousing and OLAP","","","","1998 (November 1998)","2013 (October 2013)","http://portal.acm.org/proceedings/dolap/","http://portal.acm.org/proceedings/dolap/archive/"
-"Conference Proceedings","DOSTA: Domain Specific Approaches to Software Test Automation","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/dosta/","http://portal.acm.org/proceedings/dosta/archive/"
-"Conference Proceedings","DPDS: Databases in Parallel and Distributed Systems","","","","1990 (July 1990)","1988 (January 2000)","http://portal.acm.org/proceedings/dpds/","http://portal.acm.org/proceedings/dpds/archive/"
-"Conference Proceedings","DPPI: Designing Pleasurable Products and Interfaces","","","","2003 (June 2003)","2013 (September 2013)","http://portal.acm.org/proceedings/dppi/","http://portal.acm.org/proceedings/dppi/archive/"
-"Conference Proceedings","DRM: Digital Rights Management","","","","2003 (October 2003)","2011 (October 2011)","http://portal.acm.org/proceedings/drm/","http://portal.acm.org/proceedings/drm/archive/"
-"Conference Proceedings","DS-RT: Distributed Simulation and Real Time Applications","","","","2000 (August 2000)","2012 (October 2012)","http://portal.acm.org/proceedings/ds-rt/","http://portal.acm.org/proceedings/ds-rt/archive/"
-"Conference Proceedings","DSAL: Domain-Specific Aspect Languages","","","","2007 (March 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/dsal/","http://portal.acm.org/proceedings/dsal/archive/"
-"Conference Proceedings","DSL: Domain-Specific Languages","","","","1999 (December 1999)","1999 (December 1999)","http://portal.acm.org/proceedings/dsl/","http://portal.acm.org/proceedings/dsl/archive/"
-"Conference Proceedings","DSM: Doctoral Symposium on Middleware","","","","2004 (October 2004)","2012 (October 2012)","http://portal.acm.org/proceedings/dsm/","http://portal.acm.org/proceedings/dsm/archive/"
-"Conference Proceedings","DSMM: Data-Intensive Software Management and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/dsmm/","http://portal.acm.org/proceedings/dsmm/archive/"
-"Conference Proceedings","DTMBIO: Data and Text Mining in Biomedical Informatics","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/dtmbio/","http://portal.acm.org/proceedings/dtmbio/archive/"
-"Conference Proceedings","DUX: Designing for User eXperiences","","","","2003 (June 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/dux/","http://portal.acm.org/proceedings/dux/archive/"
-"Conference Proceedings","DYADEM-FTS: Dependeability Models for Fault-Tolerant Systems","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dyadem-fts/","http://portal.acm.org/proceedings/dyadem-fts/archive/"
-"Conference Proceedings","DYNAMO: Dynamic and Adaptive Compilation and Optimization","","","","2000 (January 2000)","2000 (January 2000)","http://portal.acm.org/proceedings/dynamo/","http://portal.acm.org/proceedings/dynamo/archive/"
-"Conference Proceedings","DaGreS: Data Grids for eScience","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/dagres/","http://portal.acm.org/proceedings/dagres/archive/"
-"Conference Proceedings","DaMaP: Data Management in Peer-to-Peer Systems","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/damap/","http://portal.acm.org/proceedings/damap/archive/"
-"Conference Proceedings","DaMoN: Data Management on New Hardware","","","","2005 (June 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/damon/","http://portal.acm.org/proceedings/damon/archive/"
-"Conference Proceedings","DataX: Database Technologies for Handling XML Information on the Web","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/datax/","http://portal.acm.org/proceedings/datax/archive/"
-"Conference Proceedings","DocEng: Document Engineering","","","","2001 (November 2001)","2013 (September 2013)","http://portal.acm.org/proceedings/doceng/","http://portal.acm.org/proceedings/doceng/archive/"
-"Conference Proceedings","Dutch HCI: Dutch directions in HCI","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/dutchhci/","http://portal.acm.org/proceedings/dutchhci/archive/"
-"Conference Proceedings","E-WIND: Experimental Approaches to Wireless Network Design and Analysis","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/e-wind/","http://portal.acm.org/proceedings/e-wind/archive/"
-"Conference Proceedings","EA: Early Aspects","","","","2006 (May 2006)","2011 (March 2011)","http://portal.acm.org/proceedings/ea/","http://portal.acm.org/proceedings/ea/archive/"
-"Conference Proceedings","EATIS: Euro American Conference on Telematics and Information Systems","","","","2007 (May 2007)","2012 (May 2012)","http://portal.acm.org/proceedings/eatis/","http://portal.acm.org/proceedings/eatis/archive/"
-"Conference Proceedings","EC: Electronic Commerce","","","","1999 (November 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/ec/","http://portal.acm.org/proceedings/ec/archive/"
-"Conference Proceedings","ECA: Ethics in the Computer Age","","","","1994 (November 1994)","1994 (November 1994)","http://portal.acm.org/proceedings/eca/","http://portal.acm.org/proceedings/eca/archive/"
-"Conference Proceedings","ECCE: European Conference on Cognitive Ergonomics","","","","2006 (September 2006)","2013 (August 2013)","http://portal.acm.org/proceedings/ecce/","http://portal.acm.org/proceedings/ecce/archive/"
-"Conference Proceedings","ECHT: European Conference on Hypermedia Technology","","","","1992 (November 1992)","1994 (September 1994)","http://portal.acm.org/proceedings/echt/","http://portal.acm.org/proceedings/echt/archive/"
-"Conference Proceedings","ECIR: European Conference on Information Retrieval","","","","2008 (March 2008)","2012 (April 2012)","http://portal.acm.org/proceedings/ecir/","http://portal.acm.org/proceedings/ecir/archive/"
-"Conference Proceedings","ECMFA-TW: ECMFA Traceability Workshop","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/ecmfa-tw/","http://portal.acm.org/proceedings/ecmfa-tw/archive/"
-"Conference Proceedings","ECOOP: European Conference on Object-Oriented Programming","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/ecoop/","http://portal.acm.org/proceedings/ecoop/archive/"
-"Conference Proceedings","ECSA: European Conference on Software Architecture","","","","2010 (August 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/ecsa/","http://portal.acm.org/proceedings/ecsa/archive/"
-"Conference Proceedings","EDBT: Extending Database Technology","","","","2008 (March 2008)","2013 (March 2013)","http://portal.acm.org/proceedings/edbt/","http://portal.acm.org/proceedings/edbt/archive/"
-"Conference Proceedings","EDSER: Economics-Driven Software Engineering Research","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/edser/","http://portal.acm.org/proceedings/edser/archive/"
-"Conference Proceedings","EDT: Emerging Displays Technologies","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/edt/","http://portal.acm.org/proceedings/edt/archive/"
-"Conference Proceedings","EDTC: European Conference on Design and Test","","","","1995 (March 1995)","1997 (March 1997)","http://portal.acm.org/proceedings/edtc/","http://portal.acm.org/proceedings/edtc/archive/"
-"Conference Proceedings","EESR: End-to-end, Sense-and-respond Systems, Applications and Services","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/eesr/","http://portal.acm.org/proceedings/eesr/archive/"
-"Conference Proceedings","EFTS: Engineering Fault Tolerant Systems","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/efts/","http://portal.acm.org/proceedings/efts/archive/"
-"Conference Proceedings","EGPGV: Eurographics Workshop on Parallel Graphics and Visualization","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/egpgv/","http://portal.acm.org/proceedings/egpgv/archive/"
-"Conference Proceedings","EGRW: Eurographics Workshop on Rendering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/egrw/","http://portal.acm.org/proceedings/egrw/archive/"
-"Conference Proceedings","EGVE: Virtual Environments","","","","2002 (May 2002)","2007 (July 2007)","http://portal.acm.org/proceedings/egve/","http://portal.acm.org/proceedings/egve/archive/"
-"Conference Proceedings","EICS: Engineering Interactive Computing Systems","","","","2009 (July 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/eics/","http://portal.acm.org/proceedings/eics/archive/"
-"Conference Proceedings","ELW: European Lisp Workshop","","","","2009 (July 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/elw/","http://portal.acm.org/proceedings/elw/archive/"
-"Conference Proceedings","EMSOFT: Embedded Software","","","","2004 (September 2004)","2013 (September 2013)","http://portal.acm.org/proceedings/emsoft/","http://portal.acm.org/proceedings/emsoft/archive/"
-"Conference Proceedings","EOMAS: Enterprises & Organizational Modeling and Simulation","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/eomas/","http://portal.acm.org/proceedings/eomas/archive/"
-"Conference Proceedings","EPIA: Progress in Artificial Intelligence","","","","2007 (December 2007)","2007 (December 2007)","http://portal.acm.org/proceedings/epia/","http://portal.acm.org/proceedings/epia/archive/"
-"Conference Proceedings","ERLANG: ERLANG","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/erlang/","http://portal.acm.org/proceedings/erlang/archive/"
-"Conference Proceedings","ESAIR: Exploiting Semantic Annotations in Information Retrieval","","","","2009 (February 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/esair/","http://portal.acm.org/proceedings/esair/archive/"
-"Conference Proceedings","ESC: Economics of Software and Computation","","","","2007 (May 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/esc/","http://portal.acm.org/proceedings/esc/archive/"
-"Conference Proceedings","ESEC/FSE: European Software Engineering Conference","","","","1997 (November 1997)","2013 (August 2013)","http://portal.acm.org/proceedings/esec/fse/","http://portal.acm.org/proceedings/esec/fse/archive/"
-"Conference Proceedings","ESEM: Empirical Software Engineering and Measurement","","","","2007 (September 2007)","2012 (September 2012)","http://portal.acm.org/proceedings/esem/","http://portal.acm.org/proceedings/esem/archive/"
-"Conference Proceedings","ESP: Empirical Studies of Programmers","","","","1997 (October 1997)","1997 (October 1997)","http://portal.acm.org/proceedings/esp/","http://portal.acm.org/proceedings/esp/archive/"
-"Conference Proceedings","ESSPE: Engineering of Software Services for Pervasive Environments","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/esspe/","http://portal.acm.org/proceedings/esspe/archive/"
-"Conference Proceedings","ESTMED: Embedded Systems for Real Time Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/estmed/","http://portal.acm.org/proceedings/estmed/archive/"
-"Conference Proceedings","ETOOS: Testing Object-Oriented Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/etoos/","http://portal.acm.org/proceedings/etoos/archive/"
-"Conference Proceedings","ETP: Effective Telepresence","","","","2003 (November 2003)","2004 (October 2004)","http://portal.acm.org/proceedings/etp/","http://portal.acm.org/proceedings/etp/archive/"
-"Conference Proceedings","ETRA: Eye Tracking Research and Applications","","","","2000 (November 2000)","2012 (March 2012)","http://portal.acm.org/proceedings/etra/","http://portal.acm.org/proceedings/etra/archive/"
-"Conference Proceedings","EURO-DAC: European Design Automation","","","","1990 (March 1990)","1996 (September 1996)","http://portal.acm.org/proceedings/euro-dac/","http://portal.acm.org/proceedings/euro-dac/archive/"
-"Conference Proceedings","EUROSEC: European Workshop on System Security","","","","2008 (March 2008)","2011 (April 2011)","http://portal.acm.org/proceedings/eurosec/","http://portal.acm.org/proceedings/eurosec/archive/"
-"Conference Proceedings","EUSAI: European Union symposium on Ambient intelligence","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/eusai/","http://portal.acm.org/proceedings/eusai/archive/"
-"Conference Proceedings","EW: ACM SIGOPS European Workshop","","","","1985 (January 1985)","2004 (September 2004)","http://portal.acm.org/proceedings/ew/","http://portal.acm.org/proceedings/ew/archive/"
-"Conference Proceedings","EiMM: Events in Multimedia","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/eimm/","http://portal.acm.org/proceedings/eimm/archive/"
-"Conference Proceedings","EmNets: Embedded Networked Sensors","","","","2005 (April 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/emnets/","http://portal.acm.org/proceedings/emnets/archive/"
-"Conference Proceedings","Emme: Educational Multimedia and Multimedia Education","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/emme/","http://portal.acm.org/proceedings/emme/archive/"
-"Conference Proceedings","Ergo'IA: Ergonomie et Informatique Avancee Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/ergo'ia/","http://portal.acm.org/proceedings/ergo'ia/archive/"
-"Conference Proceedings","EuroITV: Interactive TV &#38; Video","","","","2007 (May 2007)","2013 (June 2013)","http://portal.acm.org/proceedings/euroitv/","http://portal.acm.org/proceedings/euroitv/archive/"
-"Conference Proceedings","EuroSys: European Conference on Computer Systems","","","","2006 (April 2006)","2013 (April 2013)","http://portal.acm.org/proceedings/eurosys/","http://portal.acm.org/proceedings/eurosys/archive/"
-"Conference Proceedings","ExpCS: Experimental Computer Science","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/expcs/","http://portal.acm.org/proceedings/expcs/archive/"
-"Conference Proceedings","FAA: Facial Analysis and Animation","","","","2010 (October 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/faa/","http://portal.acm.org/proceedings/faa/archive/"
-"Conference Proceedings","FAST: File and Storage Technologies","","","","2005 (December 2005)","2012 (February 2012)","http://portal.acm.org/proceedings/fast/","http://portal.acm.org/proceedings/fast/archive/"
-"Conference Proceedings","FDG: Foundations of Digital Games","","","","2009 (April 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/fdg/","http://portal.acm.org/proceedings/fdg/archive/"
-"Conference Proceedings","FDNA: Future Directions in Network Architectures","","","","2003 (August 2003)","2004 (August 2004)","http://portal.acm.org/proceedings/fdna/","http://portal.acm.org/proceedings/fdna/archive/"
-"Conference Proceedings","FDPE: Functional and Declarative Progamming in Education","","","","2005 (September 2005)","2008 (September 2008)","http://portal.acm.org/proceedings/fdpe/","http://portal.acm.org/proceedings/fdpe/archive/"
-"Conference Proceedings","FIT: Frontiers of Information Technology","","","","2009 (December 2009)","2010 (December 2010)","http://portal.acm.org/proceedings/fit/","http://portal.acm.org/proceedings/fit/archive/"
-"Conference Proceedings","FLOSS: Emerging Trends in Free/Libre/Open Source Software Research and Development","","","","2007 (May 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/floss/","http://portal.acm.org/proceedings/floss/archive/"
-"Conference Proceedings","FMICS: Formal Methods for Industrial Critical Systems","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/fmics/","http://portal.acm.org/proceedings/fmics/archive/"
-"Conference Proceedings","FMSE: Formal Methods in Security Engineering","","","","2003 (October 2003)","2008 (October 2008)","http://portal.acm.org/proceedings/fmse/","http://portal.acm.org/proceedings/fmse/archive/"
-"Conference Proceedings","FMSP: Formal Methods in Software Practice","","","","1998 (March 1998)","2000 (August 2000)","http://portal.acm.org/proceedings/fmsp/","http://portal.acm.org/proceedings/fmsp/archive/"
-"Conference Proceedings","FOAL: Foundations of Aspect-Oriented Languages","","","","2007 (March 2007)","2013 (March 2013)","http://portal.acm.org/proceedings/foal/","http://portal.acm.org/proceedings/foal/archive/"
-"Conference Proceedings","FOGA: Foundations of Genetic Algorithms","","","","2007 (January 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/foga/","http://portal.acm.org/proceedings/foga/archive/"
-"Conference Proceedings","FOIS: Formal Ontology in Information Systems","","","","2001 (October 2001)","2001 (October 2001)","http://portal.acm.org/proceedings/fois/","http://portal.acm.org/proceedings/fois/archive/"
-"Conference Proceedings","FORTH: FORTH","","","","1989 (January 1989)","1992 (December 1993)","http://portal.acm.org/proceedings/forth/","http://portal.acm.org/proceedings/forth/archive/"
-"Conference Proceedings","FOSD: Feature-Oriented Software Development","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/fosd/","http://portal.acm.org/proceedings/fosd/archive/"
-"Conference Proceedings","FOSE: Future of Software Engineering","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/fose/","http://portal.acm.org/proceedings/fose/archive/"
-"Conference Proceedings","FOWANC: Foundations of Wireless Ad-Hoc and Sensor Networking and Computing","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/fowanc/","http://portal.acm.org/proceedings/fowanc/archive/"
-"Conference Proceedings","FPCA: Functional Programming Languages and Computer Architecture","","","","1981 (October 1981)","1995 (October 1995)","http://portal.acm.org/proceedings/fpca/","http://portal.acm.org/proceedings/fpca/archive/"
-"Conference Proceedings","FPGA: Field Programmable Gate Arrays","","","","1995 (February 1995)","2013 (February 2013)","http://portal.acm.org/proceedings/fpga/","http://portal.acm.org/proceedings/fpga/archive/"
-"Conference Proceedings","FPGAworld: FPGAworld","","","","2009 (September 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/fpgaworld/","http://portal.acm.org/proceedings/fpgaworld/archive/"
-"Conference Proceedings","FSEDS: Foundations of Software Engineering Doctoral Symposium","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/fseds/","http://portal.acm.org/proceedings/fseds/archive/"
-"Conference Proceedings","FSEN: Fundamentals of Software Engineering","","","","2007 (April 2007)","2007 (April 2007)","http://portal.acm.org/proceedings/fsen/","http://portal.acm.org/proceedings/fsen/archive/"
-"Conference Proceedings","FSM: Functional Size Measurement","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/fsm/","http://portal.acm.org/proceedings/fsm/archive/"
-"Conference Proceedings","FTfJP: Formal Techniques for Java-like Programs","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/ftfjp/","http://portal.acm.org/proceedings/ftfjp/archive/"
-"Conference Proceedings","FeBiD: International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/febid/","http://portal.acm.org/proceedings/febid/archive/"
-"Conference Proceedings","FoSER: Future of Software Engineering Research ","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/foser/","http://portal.acm.org/proceedings/foser/archive/"
-"Conference Proceedings","Fun and Games: Fun and Games","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/funandgames/","http://portal.acm.org/proceedings/funandgames/archive/"
-"Conference Proceedings","Future Play: Future Play","","","","2007 (November 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/futureplay/","http://portal.acm.org/proceedings/futureplay/archive/"
-"Conference Proceedings","GCE: Grid Computing Environments","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/gce/","http://portal.acm.org/proceedings/gce/archive/"
-"Conference Proceedings","GCM: Green Computing","","","","2010 (November 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gcm/","http://portal.acm.org/proceedings/gcm/archive/"
-"Conference Proceedings","GDCSE: Game Development in Computer Science Education","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/gdcse/","http://portal.acm.org/proceedings/gdcse/archive/"
-"Conference Proceedings","GEC: Genetic and Evolutionary Computation","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/gec/","http://portal.acm.org/proceedings/gec/archive/"
-"Conference Proceedings","GECCO: Genetic and Evolutionary Computation Conference","","","","1996 (July 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/gecco/","http://portal.acm.org/proceedings/gecco/archive/"
-"Conference Proceedings","GH: Graphics Hardware","","","","1997 (August 1997)","2008 (June 2008)","http://portal.acm.org/proceedings/gh/","http://portal.acm.org/proceedings/gh/archive/"
-"Conference Proceedings","GI: Graphics Interface","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/gi/","http://portal.acm.org/proceedings/gi/archive/"
-"Conference Proceedings","GIR: Geographic Information Retrieval","","","","2005 (November 2005)","2010 (February 2010)","http://portal.acm.org/proceedings/gir/","http://portal.acm.org/proceedings/gir/archive/"
-"Conference Proceedings","GIS: Geographic Information Systems","","","","1996 (November 1996)","2012 (November 2012)","http://portal.acm.org/proceedings/gis/","http://portal.acm.org/proceedings/gis/archive/"
-"Conference Proceedings","GLSVLSI: Great Lakes Symposium on VLSI","","","","1995 (March 1995)","2013 (May 2013)","http://portal.acm.org/proceedings/glsvlsi/","http://portal.acm.org/proceedings/glsvlsi/archive/"
-"Conference Proceedings","GMAC: Grids Meets Autonomic Computing","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/gmac/","http://portal.acm.org/proceedings/gmac/archive/"
-"Conference Proceedings","GMW: Grid Monitoring","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/gmw/","http://portal.acm.org/proceedings/gmw/archive/"
-"Conference Proceedings","GPCE: Generative Programming and Component Engineering","","","","2002 (October 2002)","2013 (October 2013)","http://portal.acm.org/proceedings/gpce/","http://portal.acm.org/proceedings/gpce/archive/"
-"Conference Proceedings","GPGPU: General Purpose Processing on Graphics Processing Units","","","","2009 (March 2009)","2012 (March 2012)","http://portal.acm.org/proceedings/gpgpu/","http://portal.acm.org/proceedings/gpgpu/archive/"
-"Conference Proceedings","GRAPHITE: Computer Graphics and Interactive Techniques in Australia and South East Asia","","","","2003 (February 2003)","2007 (December 2007)","http://portal.acm.org/proceedings/graphite/","http://portal.acm.org/proceedings/graphite/archive/"
-"Conference Proceedings","GRID: Grid Computing","","","","2003 (November 2003)","2008 (September 2008)","http://portal.acm.org/proceedings/grid/","http://portal.acm.org/proceedings/grid/archive/"
-"Conference Proceedings","GROUP: Supporting Group Work","","","","1997 (November 1997)","2012 (October 2012)","http://portal.acm.org/proceedings/group/","http://portal.acm.org/proceedings/group/archive/"
-"Conference Proceedings","GRaMoT: Graph and Model Transformations","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/gramot/","http://portal.acm.org/proceedings/gramot/archive/"
-"Conference Proceedings","GSD: Global Software Development for the Practitioner","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gsd/","http://portal.acm.org/proceedings/gsd/archive/"
-"Conference Proceedings","GTIP: Governance of Technology, Information, and Policies ","","","","2010 (December 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gtip/","http://portal.acm.org/proceedings/gtip/archive/"
-"Conference Proceedings","GaMMa: Global Integrated Model Management","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gamma/","http://portal.acm.org/proceedings/gamma/archive/"
-"Conference Proceedings","GameNets: Game Theory for Communications and Networks","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/gamenets/","http://portal.acm.org/proceedings/gamenets/archive/"
-"Conference Proceedings","Green Networking: Green networking","","","","2010 (August 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/greennetworking/","http://portal.acm.org/proceedings/greennetworking/archive/"
-"Conference Proceedings","GridNets: Networks for Grid Applications","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/gridnets/","http://portal.acm.org/proceedings/gridnets/archive/"
-"Conference Proceedings","HAS: Haptic User Interfaces in Ambient Media Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/has/","http://portal.acm.org/proceedings/has/archive/"
-"Conference Proceedings","HCC: Human-Centered Computing","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/hcc/","http://portal.acm.org/proceedings/hcc/archive/"
-"Conference Proceedings","HCM: Human-Centered Multimedia","","","","2006 (October 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/hcm/","http://portal.acm.org/proceedings/hcm/archive/"
-"Conference Proceedings","HCOMP: Human Computation","","","","2009 (June 2009)","2010 (July 2010)","http://portal.acm.org/proceedings/hcomp/","http://portal.acm.org/proceedings/hcomp/archive/"
-"Conference Proceedings","HDP: Hardcopy Document Processing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/hdp/","http://portal.acm.org/proceedings/hdp/archive/"
-"Conference Proceedings","HIKM: Healthcare Information and Knowledge Management","","","","2006 (November 2006)","2010 (January 2010)","http://portal.acm.org/proceedings/hikm/","http://portal.acm.org/proceedings/hikm/archive/"
-"Conference Proceedings","HLLCA: High-Level-Language Computer Architecture","","","","1973 (November 1973)","1973 (November 1973)","http://portal.acm.org/proceedings/hllca/","http://portal.acm.org/proceedings/hllca/archive/"
-"Conference Proceedings","HLPP: High-level parallel programming and applications","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/hlpp/","http://portal.acm.org/proceedings/hlpp/archive/"
-"Conference Proceedings","HOPL: History of Programming Languages","","","","1993 (April 1993)","2007 (June 2007)","http://portal.acm.org/proceedings/hopl/","http://portal.acm.org/proceedings/hopl/archive/"
-"Conference Proceedings","HPCVirt: System-level Virtualization for High Performance Computing","","","","2008 (March 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/hpcvirt/","http://portal.acm.org/proceedings/hpcvirt/archive/"
-"Conference Proceedings","HPDC: High Performance Distributed Computing","","","","1995 (August 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/hpdc/","http://portal.acm.org/proceedings/hpdc/archive/"
-"Conference Proceedings","HPDGIS: High Performance and Distributed Geographic Information Systems ","","","","2010 (November 2010)","2011 (November 2011)","http://portal.acm.org/proceedings/hpdgis/","http://portal.acm.org/proceedings/hpdgis/archive/"
-"Conference Proceedings","HPG: High Perfomance Graphics","","","","2009 (August 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/hpg/","http://portal.acm.org/proceedings/hpg/archive/"
-"Conference Proceedings","HPRCTA: High-Performance Reconfigurable Computing Technology and Applications","","","","2007 (November 2007)","2009 (November 2009)","http://portal.acm.org/proceedings/hprcta/","http://portal.acm.org/proceedings/hprcta/archive/"
-"Conference Proceedings","HPW: History of Personal Workstations","","","","1986 (January 1986)","1986 (January 1986)","http://portal.acm.org/proceedings/hpw/","http://portal.acm.org/proceedings/hpw/archive/"
-"Conference Proceedings","HRI: Human-Robot Interaction","","","","2006 (March 2006)","2013 (March 2013)","http://portal.acm.org/proceedings/hri/","http://portal.acm.org/proceedings/hri/archive/"
-"Conference Proceedings","HSCC: Hybrid Systems: Computation and Control","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/hscc/","http://portal.acm.org/proceedings/hscc/archive/"
-"Conference Proceedings","HSNC: History of Scientific and Numeric Computation","","","","1987 (October 1987)","1987 (October 1987)","http://portal.acm.org/proceedings/hsnc/","http://portal.acm.org/proceedings/hsnc/archive/"
-"Conference Proceedings","HSSE: Human and Social Factors of Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/hsse/","http://portal.acm.org/proceedings/hsse/archive/"
-"Conference Proceedings","HT: Hypertext and hypermedia","","","","1987 (November 1987)","2013 (May 2013)","http://portal.acm.org/proceedings/ht/","http://portal.acm.org/proceedings/ht/archive/"
-"Conference Proceedings","Haskell: Haskell","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/haskell/","http://portal.acm.org/proceedings/haskell/archive/"
-"Conference Proceedings","HealthNet: Networking Support for Health Care and Assisted Living Environments","","","","2007 (June 2007)","2008 (June 2008)","http://portal.acm.org/proceedings/healthnet/","http://portal.acm.org/proceedings/healthnet/archive/"
-"Conference Proceedings","HetRec: Information Heterogeneity and Fusion in Recommender Systems ","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/hetrec/","http://portal.acm.org/proceedings/hetrec/archive/"
-"Conference Proceedings","HeterSanet: Heterogeneous Sensor and Actor Networks","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/hetersanet/","http://portal.acm.org/proceedings/hetersanet/archive/"
-"Conference Proceedings","HiPC: High Performance Computing ","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/hipc/","http://portal.acm.org/proceedings/hipc/archive/"
-"Conference Proceedings","HomeNets: Home Networks","","","","2010 (September 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/homenets/","http://portal.acm.org/proceedings/homenets/archive/"
-"Conference Proceedings","HotMobile: Mobile Computing Systems and Applications","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/hotmobile/","http://portal.acm.org/proceedings/hotmobile/archive/"
-"Conference Proceedings","HotPlanet: Hot Topics of Planet-Scale Mobility Measurements","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/hotplanet/","http://portal.acm.org/proceedings/hotplanet/archive/"
-"Conference Proceedings","HotSWUp: Hot Topics in Software Upgrades","","","","2008 (October 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/hotswup/","http://portal.acm.org/proceedings/hotswup/archive/"
-"Conference Proceedings","Hotnets: Hot Topics in Networks","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/hotnets/","http://portal.acm.org/proceedings/hotnets/archive/"
-"Conference Proceedings","HuCom: Human Factors and Computational Models in Negotiation","","","","2009 (December 2008)","2009 (December 2008)","http://portal.acm.org/proceedings/hucom/","http://portal.acm.org/proceedings/hucom/archive/"
-"Conference Proceedings","I-SEMANTICS: Semantic Systems","","","","2010 (September 2010)","2013 (September 2013)","http://portal.acm.org/proceedings/i-semantics/","http://portal.acm.org/proceedings/i-semantics/archive/"
-"Conference Proceedings","I3D: Interactive 3D Graphics and Games","","","","1987 (January 1987)","2013 (March 2013)","http://portal.acm.org/proceedings/i3d/","http://portal.acm.org/proceedings/i3d/archive/"
-"Conference Proceedings","IAT: Intelligent Agent Technology","","","","2006 (December 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/iat/","http://portal.acm.org/proceedings/iat/archive/"
-"Conference Proceedings","ICAC3: Advances in Computing, Communication and Control","","","","2009 (January 2009)","2009 (January 2009)","http://portal.acm.org/proceedings/icac3/","http://portal.acm.org/proceedings/icac3/archive/"
-"Conference Proceedings","ICAC: Autonomic Computing","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/icac/","http://portal.acm.org/proceedings/icac/archive/"
-"Conference Proceedings","ICAIL: International Conference on Artificial Intelligence and Law","","","","1987 (December 1987)","2013 (June 2013)","http://portal.acm.org/proceedings/icail/","http://portal.acm.org/proceedings/icail/archive/"
-"Conference Proceedings","ICAIT: Advanced Infocomm Technology","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/icait/","http://portal.acm.org/proceedings/icait/archive/"
-"Conference Proceedings","ICAT: Augmented Tele-existence","","","","2005 (December 2005)","2005 (December 2005)","http://portal.acm.org/proceedings/icat/","http://portal.acm.org/proceedings/icat/archive/"
-"Conference Proceedings","ICCAD: International Conference on Computer-Aided Design","","","","1992 (November 1992)","2012 (November 2012)","http://portal.acm.org/proceedings/iccad/","http://portal.acm.org/proceedings/iccad/archive/"
-"Conference Proceedings","ICCPS: Cyber-Physical Systems","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/iccps/","http://portal.acm.org/proceedings/iccps/archive/"
-"Conference Proceedings","ICDL: International Conference on Dynamic Languages","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/icdl/","http://portal.acm.org/proceedings/icdl/archive/"
-"Conference Proceedings","ICDSC: Distributed Smart Cameras","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/icdsc/","http://portal.acm.org/proceedings/icdsc/archive/"
-"Conference Proceedings","ICDT: Database Theory","","","","2009 (March 2009)","2013 (March 2013)","http://portal.acm.org/proceedings/icdt/","http://portal.acm.org/proceedings/icdt/archive/"
-"Conference Proceedings","ICE: Information and Computation Economies","","","","1998 (October 1998)","1998 (October 1998)","http://portal.acm.org/proceedings/ice/","http://portal.acm.org/proceedings/ice/archive/"
-"Conference Proceedings","ICEC: International Conference on Electronic Commerce","","","","2003 (September 2003)","2012 (August 2012)","http://portal.acm.org/proceedings/icec/","http://portal.acm.org/proceedings/icec/archive/"
-"Conference Proceedings","ICEGOV: International Conference on Theory and Practice of Electronic Governance","","","","2007 (December 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/icegov/","http://portal.acm.org/proceedings/icegov/archive/"
-"Conference Proceedings","ICER: International Computing Education Research Workshop","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/icer/","http://portal.acm.org/proceedings/icer/archive/"
-"Conference Proceedings","ICFP: International Conference on Functional Programmuing","","","","1996 (June 1996)","2013 (September 2013)","http://portal.acm.org/proceedings/icfp/","http://portal.acm.org/proceedings/icfp/archive/"
-"Conference Proceedings","ICHIT: International Conference on Hybrid Information Technology","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/ichit/","http://portal.acm.org/proceedings/ichit/archive/"
-"Conference Proceedings","ICIC: Intercultural Collaboration","","","","2010 (August 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/icic/","http://portal.acm.org/proceedings/icic/archive/"
-"Conference Proceedings","ICIMCS: Internet Multimedia Computing and Service","","","","2009 (November 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/icimcs/","http://portal.acm.org/proceedings/icimcs/archive/"
-"Conference Proceedings","ICIS: International Conference on Computer and Information Science","","","","1989 (December 1989)","2009 (November 2009)","http://portal.acm.org/proceedings/icis/","http://portal.acm.org/proceedings/icis/archive/"
-"Conference Proceedings","ICMI: International Conference on Multimodal Interfaces","","","","2002 (October 2002)","2013 (December 2013)","http://portal.acm.org/proceedings/icmi/","http://portal.acm.org/proceedings/icmi/archive/"
-"Conference Proceedings","ICML: International Conference on Machine Learning","","","","2004 (July 2004)","2009 (June 2009)","http://portal.acm.org/proceedings/icml/","http://portal.acm.org/proceedings/icml/archive/"
-"Conference Proceedings","ICOOOLPS: Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/icooolps/","http://portal.acm.org/proceedings/icooolps/archive/"
-"Conference Proceedings","ICPS: Pervasive Services","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/icps/","http://portal.acm.org/proceedings/icps/archive/"
-"Conference Proceedings","ICPW: International Conference on Pragmatic Web","","","","2007 (October 2007)","2008 (November 2008)","http://portal.acm.org/proceedings/icpw/","http://portal.acm.org/proceedings/icpw/archive/"
-"Conference Proceedings","ICS: International Conference on Supercomputing","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/ics/","http://portal.acm.org/proceedings/ics/archive/"
-"Conference Proceedings","ICSE: International Conference on Software Engineering","","","","1976 (October 1976)","2012 (June 2012)","http://portal.acm.org/proceedings/icse/","http://portal.acm.org/proceedings/icse/archive/"
-"Conference Proceedings","ICSOC: International Conference on Service Oriented Computing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/icsoc/","http://portal.acm.org/proceedings/icsoc/archive/"
-"Conference Proceedings","ICTD: Information and Communication Technologies and Development ","","","","2009 (April 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/ictd/","http://portal.acm.org/proceedings/ictd/archive/"
-"Conference Proceedings","ICUIMC: International Conference on Ubiquitous Information Management and Communication","","","","2008 (January 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/icuimc/","http://portal.acm.org/proceedings/icuimc/archive/"
-"Conference Proceedings","ICVGIP: Indian Conference on Computer Vision, Graphics and Image Processing","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/icvgip/","http://portal.acm.org/proceedings/icvgip/archive/"
-"Conference Proceedings","ICWE: Web Engineering","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/icwe/","http://portal.acm.org/proceedings/icwe/archive/"
-"Conference Proceedings","ICWET: Workshop on Emerging Trends in Technology","","","","2010 (February 2010)","2011 (February 2011)","http://portal.acm.org/proceedings/icwet/","http://portal.acm.org/proceedings/icwet/archive/"
-"Conference Proceedings","IDAR: Innovative Database Research","","","","2008 (June 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/idar/","http://portal.acm.org/proceedings/idar/archive/"
-"Conference Proceedings","IDC: Interaction Design and Children","","","","2003 (July 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/idc/","http://portal.acm.org/proceedings/idc/archive/"
-"Conference Proceedings","IDEAS: International Database Engineering &#38; Applications Symposium","","","","2008 (September 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/ideas/","http://portal.acm.org/proceedings/ideas/archive/"
-"Conference Proceedings","IDL: Interface Definition Languages","","","","1994 (August 1994)","1994 (August 1994)","http://portal.acm.org/proceedings/idl/","http://portal.acm.org/proceedings/idl/archive/"
-"Conference Proceedings","IDTRUST: Identity and Trust on the Internet","","","","2008 (March 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/idtrust/","http://portal.acm.org/proceedings/idtrust/archive/"
-"Conference Proceedings","IE: Interactive Entertainment","","","","2006 (December 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/ie/","http://portal.acm.org/proceedings/ie/archive/"
-"Conference Proceedings","IEA/AIE: Industrial and Engineering Applications of Artificial Intelligence and Expert Systems","","","","1988 (June 1988)","2011 (June 2011)","http://portal.acm.org/proceedings/iea/aie/","http://portal.acm.org/proceedings/iea/aie/archive/"
-"Conference Proceedings","IFMT: Next-Generation Multicore/Manycore Technologies","","","","2008 (November 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/ifmt/","http://portal.acm.org/proceedings/ifmt/archive/"
-"Conference Proceedings","IHC: Brazilian Symposium on Human Factors in Computing Systems","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ihc/","http://portal.acm.org/proceedings/ihc/archive/"
-"Conference Proceedings","IHI: International Health Informatics Symposium","","","","2010 (November 2010)","2012 (January 2012)","http://portal.acm.org/proceedings/ihi/","http://portal.acm.org/proceedings/ihi/archive/"
-"Conference Proceedings","IHIS: Interoperability of Heterogeneous Information Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ihis/","http://portal.acm.org/proceedings/ihis/archive/"
-"Conference Proceedings","IHM: International Conference on Association Francophone d'Interaction Homme-Machine","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/ihm/","http://portal.acm.org/proceedings/ihm/archive/"
-"Conference Proceedings","IIES: Isolation and Integration in Embedded Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/iies/","http://portal.acm.org/proceedings/iies/archive/"
-"Conference Proceedings","IIiX: Information Interaction in Context","","","","2006 (October 2006)","2012 (August 2012)","http://portal.acm.org/proceedings/iiix/","http://portal.acm.org/proceedings/iiix/archive/"
-"Conference Proceedings","ILC: International Lisp Conference","","","","2009 (April 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/ilc/","http://portal.acm.org/proceedings/ilc/archive/"
-"Conference Proceedings","IMC: Internet Measurement Conference","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/imc/","http://portal.acm.org/proceedings/imc/archive/"
-"Conference Proceedings","IMCE: Interactive Multimedia for Consumer Electronics","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/imce/","http://portal.acm.org/proceedings/imce/archive/"
-"Conference Proceedings","IMW: Internet Measurement Workshop","","","","2001 (November 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/imw/","http://portal.acm.org/proceedings/imw/archive/"
-"Conference Proceedings","INA-OCMC: Interconnection Network Architecture: On-Chip, Multi-Chip","","","","2011 (January 2011)","2011 (January 2011)","http://portal.acm.org/proceedings/ina-ocmc/","http://portal.acm.org/proceedings/ina-ocmc/archive/"
-"Conference Proceedings","INM: Internet Network Management","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/inm/","http://portal.acm.org/proceedings/inm/archive/"
-"Conference Proceedings","INT3: Intelligent Narrative Technologies","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/int3/","http://portal.acm.org/proceedings/int3/archive/"
-"Conference Proceedings","INTERACT: Interaction between Compilers and Computer Architecture","","","","2010 (March 2010)","2010 (March 2010)","http://portal.acm.org/proceedings/interact/","http://portal.acm.org/proceedings/interact/archive/"
-"Conference Proceedings","INTETAIN: Intelligent Technologies for Interactive Entertainment","","","","2007 (January 2008)","2007 (January 2008)","http://portal.acm.org/proceedings/intetain/","http://portal.acm.org/proceedings/intetain/archive/"
-"Conference Proceedings","IOPADS: I/O in Parallel and Distributed Systems","","","","1996 (May 1996)","1999 (May 1999)","http://portal.acm.org/proceedings/iopads/","http://portal.acm.org/proceedings/iopads/archive/"
-"Conference Proceedings","IPSN: Information Processing in Sensor Networks","","","","2004 (April 2004)","2013 (April 2013)","http://portal.acm.org/proceedings/ipsn/","http://portal.acm.org/proceedings/ipsn/archive/"
-"Conference Proceedings","IPT/EDT: Immersive Projection technologies/Emerging Display Technologies","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/ipt/edt/","http://portal.acm.org/proceedings/ipt/edt/archive/"
-"Conference Proceedings","IPTComm: Principles, Systems and Applications of IP Telecommunications","","","","2007 (July 2007)","2010 (August 2010)","http://portal.acm.org/proceedings/iptcomm/","http://portal.acm.org/proceedings/iptcomm/archive/"
-"Conference Proceedings","IQIS: Information Quality in Information Systems","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/iqis/","http://portal.acm.org/proceedings/iqis/archive/"
-"Conference Proceedings","IR: Intermediate Representations","","","","1995 (March 1995)","1995 (March 1995)","http://portal.acm.org/proceedings/ir/","http://portal.acm.org/proceedings/ir/archive/"
-"Conference Proceedings","IRAL: Information Retrieval with Asian Languages","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/iral/","http://portal.acm.org/proceedings/iral/archive/"
-"Conference Proceedings","IRE-ACM-AIEE: IRE-ACM-AIEE","","","","1957 (February 1957)","1961 (May 1961)","http://portal.acm.org/proceedings/ire-acm-aiee/","http://portal.acm.org/proceedings/ire-acm-aiee/archive/"
-"Conference Proceedings","IRTAW: Real-Time Ada","","","","1987 (October 1987)","2007 (April 2007)","http://portal.acm.org/proceedings/irtaw/","http://portal.acm.org/proceedings/irtaw/archive/"
-"Conference Proceedings","IS: Guidelines for undergraduate degree programs on Model curriculum and guidelines for undergraduate degree programs in information systems","","","","1997 (December 1997)","1997 (December 1997)","http://portal.acm.org/proceedings/is/","http://portal.acm.org/proceedings/is/archive/"
-"Conference Proceedings","ISA: Indoor Spatial Awareness ","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/isa/","http://portal.acm.org/proceedings/isa/archive/"
-"Conference Proceedings","ISAW: Software Architecture Workshop","","","","1996 (October 1996)","1998 (November 1998)","http://portal.acm.org/proceedings/isaw/","http://portal.acm.org/proceedings/isaw/archive/"
-"Conference Proceedings","ISB: International Symposium on Biocomputing","","","","2010 (February 2010)","2010 (February 2010)","http://portal.acm.org/proceedings/isb/","http://portal.acm.org/proceedings/isb/archive/"
-"Conference Proceedings","ISCA: International Symposium on Computer Architecture","","","","1973 (December 1973)","2013 (June 2013)","http://portal.acm.org/proceedings/isca/","http://portal.acm.org/proceedings/isca/archive/"
-"Conference Proceedings","ISEC: India Software Engineering Conference","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/isec/","http://portal.acm.org/proceedings/isec/archive/"
-"Conference Proceedings","ISESE: International Symposium on Empirical Software Engineering","","","","2002 (October 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/isese/","http://portal.acm.org/proceedings/isese/archive/"
-"Conference Proceedings","ISLPED: International Symposium on Low Power Electronic Design","","","","1995 (April 1995)","2012 (July 2012)","http://portal.acm.org/proceedings/islped/","http://portal.acm.org/proceedings/islped/archive/"
-"Conference Proceedings","ISMAR: Mixed and Augmented Reality","","","","2002 (September 2002)","2009 (October 2009)","http://portal.acm.org/proceedings/ismar/","http://portal.acm.org/proceedings/ismar/archive/"
-"Conference Proceedings","ISMIS: International Symposium on Methodologies for Intelligent Systems","","","","1986 (December 1986)","1986 (December 1986)","http://portal.acm.org/proceedings/ismis/","http://portal.acm.org/proceedings/ismis/archive/"
-"Conference Proceedings","ISMM: Memory Management","","","","1998 (October 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/ismm/","http://portal.acm.org/proceedings/ismm/archive/"
-"Conference Proceedings","ISPA: Parallel and Distributed Processing and Applications","","","","2003 (July 2003)","2004 (December 2004)","http://portal.acm.org/proceedings/ispa/","http://portal.acm.org/proceedings/ispa/archive/"
-"Conference Proceedings","ISPD: Physical Design","","","","1997 (April 1997)","2013 (March 2013)","http://portal.acm.org/proceedings/ispd/","http://portal.acm.org/proceedings/ispd/archive/"
-"Conference Proceedings","ISPW: International Software Process Workshop","","","","1988 (April 1988)","1996 (June 1996)","http://portal.acm.org/proceedings/ispw/","http://portal.acm.org/proceedings/ispw/archive/"
-"Conference Proceedings","ISQED: Quality Electronic Design","","","","2006 (March 2006)","2006 (March 2006)","http://portal.acm.org/proceedings/isqed/","http://portal.acm.org/proceedings/isqed/archive/"
-"Conference Proceedings","ISSAC: International Symposium of Symbolic and Algebraic Computation","","","","1989 (July 1989)","2013 (June 2013)","http://portal.acm.org/proceedings/issac/","http://portal.acm.org/proceedings/issac/archive/"
-"Conference Proceedings","ISSS: International Symposium on System Synthesis","","","","1994 (May 1994)","2002 (October 2002)","http://portal.acm.org/proceedings/isss/","http://portal.acm.org/proceedings/isss/archive/"
-"Conference Proceedings","ISSTA: International Symposium on Software Testing and Analysis","","","","1993 (August 1993)","2013 (July 2013)","http://portal.acm.org/proceedings/issta/","http://portal.acm.org/proceedings/issta/archive/"
-"Conference Proceedings","ISTA: Information Science, Technology and Applications","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/ista/","http://portal.acm.org/proceedings/ista/archive/"
-"Conference Proceedings","ISWSA: Intelligent Semantic Web &mdash; Services and Applications","","","","2010 (June 2010)","2011 (April 2011)","http://portal.acm.org/proceedings/iswsa/","http://portal.acm.org/proceedings/iswsa/archive/"
-"Conference Proceedings","ITS: Interactive Tabletops and Surfaces","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/its/","http://portal.acm.org/proceedings/its/archive/"
-"Conference Proceedings","ITiCSE: Innovation and Technology in Computer Science Education","","","","1996 (June 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/iticse/","http://portal.acm.org/proceedings/iticse/archive/"
-"Conference Proceedings","IUCS: International Universal Communication Symposium","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/iucs/","http://portal.acm.org/proceedings/iucs/archive/"
-"Conference Proceedings","IUI: Intelligent User Interfaces","","","","1993 (February 1993)","2013 (March 2013)","http://portal.acm.org/proceedings/iui/","http://portal.acm.org/proceedings/iui/archive/"
-"Conference Proceedings","IVME: Interpreters, Virtual Machines and Emulators","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/ivme/","http://portal.acm.org/proceedings/ivme/archive/"
-"Conference Proceedings","IW-SOSWE: Service Oriented Software Engineering","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/iw-soswe/","http://portal.acm.org/proceedings/iw-soswe/archive/"
-"Conference Proceedings","IWAAPF: Application and Advances of Problem Frames","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/iwaapf/","http://portal.acm.org/proceedings/iwaapf/archive/"
-"Conference Proceedings","IWACO: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/iwaco/","http://portal.acm.org/proceedings/iwaco/archive/"
-"Conference Proceedings","IWCMC: International Wireless Communications and Mobile Computing Conference","","","","2006 (July 2006)","2010 (June 2010)","http://portal.acm.org/proceedings/iwcmc/","http://portal.acm.org/proceedings/iwcmc/archive/"
-"Conference Proceedings","IWCTS: Computational Transportation Science","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/iwcts/","http://portal.acm.org/proceedings/iwcts/archive/"
-"Conference Proceedings","IWDE: Digital Engineering","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/iwde/","http://portal.acm.org/proceedings/iwde/archive/"
-"Conference Proceedings","IWGS: International Workshop on GeoStreaming","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/iwgs/","http://portal.acm.org/proceedings/iwgs/archive/"
-"Conference Proceedings","IWIC: Intercultural Collaboration","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/iwic/","http://portal.acm.org/proceedings/iwic/archive/"
-"Conference Proceedings","IWICSS: Incorporating COTS Software into Software Systems","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/iwicss/","http://portal.acm.org/proceedings/iwicss/archive/"
-"Conference Proceedings","IWMCP: Model Comparison in Practice","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/iwmcp/","http://portal.acm.org/proceedings/iwmcp/archive/"
-"Conference Proceedings","IWMSE: Multicore Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/iwmse/","http://portal.acm.org/proceedings/iwmse/archive/"
-"Conference Proceedings","IWOCE: Open Component EcoSystems","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/iwoce/","http://portal.acm.org/proceedings/iwoce/archive/"
-"Conference Proceedings","IWPSE-EVOL: Software Evolution and Principles of Software Evolution ","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/iwpse-evol/","http://portal.acm.org/proceedings/iwpse-evol/archive/"
-"Conference Proceedings","IWPSE: Principles of Software Evolution","","","","2001 (September 2001)","2013 (August 2013)","http://portal.acm.org/proceedings/iwpse/","http://portal.acm.org/proceedings/iwpse/archive/"
-"Conference Proceedings","IWQoS: Quality of Service","","","","2003 (June 2003)","2012 (June 2012)","http://portal.acm.org/proceedings/iwqos/","http://portal.acm.org/proceedings/iwqos/archive/"
-"Conference Proceedings","IWRIDL: Research Issues in Digital Libraries","","","","2007 (December 2006)","2007 (December 2006)","http://portal.acm.org/proceedings/iwridl/","http://portal.acm.org/proceedings/iwridl/archive/"
-"Conference Proceedings","IWSC: Software Clones","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/iwsc/","http://portal.acm.org/proceedings/iwsc/archive/"
-"Conference Proceedings","IWSESS: Software Engineering for Secure Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/iwsess/","http://portal.acm.org/proceedings/iwsess/archive/"
-"Conference Proceedings","IWSSD: International Workshop on Software Specification and Design","","","","1989 (April 1989)","2000 (November 2000)","http://portal.acm.org/proceedings/iwssd/","http://portal.acm.org/proceedings/iwssd/archive/"
-"Conference Proceedings","IWST: Smalltalk Technologies","","","","2009 (August 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/iwst/","http://portal.acm.org/proceedings/iwst/archive/"
-"Conference Proceedings","IWSTI: Satellite/Terrestrial Interworking","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/iwsti/","http://portal.acm.org/proceedings/iwsti/archive/"
-"Conference Proceedings","IWVS: Video Surveillance","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/iwvs/","http://portal.acm.org/proceedings/iwvs/archive/"
-"Conference Proceedings","InfoScale: Scalable Information Systems","","","","2006 (May 2006)","2007 (June 2007)","http://portal.acm.org/proceedings/infoscale/","http://portal.acm.org/proceedings/infoscale/archive/"
-"Conference Proceedings","InfoSecCD: Information Security Curriculum Development","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/infoseccd/","http://portal.acm.org/proceedings/infoseccd/archive/"
-"Conference Proceedings","InfoSecu: Information Security","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/infosecu/","http://portal.acm.org/proceedings/infosecu/archive/"
-"Conference Proceedings","Insider Threats: Insider Threats","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/insiderthreats/","http://portal.acm.org/proceedings/insiderthreats/archive/"
-"Conference Proceedings","InterSense: Integrated Internet Ad Hoc and Sensor Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/intersense/","http://portal.acm.org/proceedings/intersense/archive/"
-"Conference Proceedings","Internetware: Internetware","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/internetware/","http://portal.acm.org/proceedings/internetware/archive/"
-"Conference Proceedings","Interperf: Interdisciplinary Systems Approach in Performance Evaluation and Design of Computer & Communications Systems","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/interperf/","http://portal.acm.org/proceedings/interperf/archive/"
-"Conference Proceedings","JAVA: Java Grande","","","","1999 (June 1999)","2000 (June 2000)","http://portal.acm.org/proceedings/java/","http://portal.acm.org/proceedings/java/archive/"
-"Conference Proceedings","JCDL: Joint Conference on Digital Libraries","","","","2001 (January 2001)","2013 (July 2013)","http://portal.acm.org/proceedings/jcdl/","http://portal.acm.org/proceedings/jcdl/archive/"
-"Conference Proceedings","JGI: ACM-ISCOPE conference on Java Grande","","","","2001 (June 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/jgi/","http://portal.acm.org/proceedings/jgi/archive/"
-"Conference Proceedings","JTRES: Java Technologies for Real-Time and Embedded Systems","","","","2006 (October 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/jtres/","http://portal.acm.org/proceedings/jtres/archive/"
-"Conference Proceedings","K-CAP: Knowledge Capture","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/k-cap/","http://portal.acm.org/proceedings/k-cap/archive/"
-"Conference Proceedings","KDD: Knowledge Discovery and Data Mining","","","","1999 (August 1999)","2013 (August 2013)","http://portal.acm.org/proceedings/kdd/","http://portal.acm.org/proceedings/kdd/archive/"
-"Conference Proceedings","KEYS: Keyword Search on Structured Data","","","","2009 (June 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/keys/","http://portal.acm.org/proceedings/keys/archive/"
-"Conference Proceedings","Koli Calling: Koli Calling International Conference on Computing Education Research ","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/kolicalling/","http://portal.acm.org/proceedings/kolicalling/archive/"
-"Conference Proceedings","Koli: Computing Education Research","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/koli/","http://portal.acm.org/proceedings/koli/archive/"
-"Conference Proceedings","LADIS: Large-Scale Distributed Systems and Middleware","","","","2008 (September 2008)","2010 (July 2010)","http://portal.acm.org/proceedings/ladis/","http://portal.acm.org/proceedings/ladis/archive/"
-"Conference Proceedings","LANC: Latin American Networking Conference","","","","2003 (October 2003)","2012 (October 2012)","http://portal.acm.org/proceedings/lanc/","http://portal.acm.org/proceedings/lanc/archive/"
-"Conference Proceedings","LATE: Linking Aspect Technology and Evolution","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/late/","http://portal.acm.org/proceedings/late/archive/"
-"Conference Proceedings","LBSN: Location Based Social Networks","","","","2009 (November 2009)","2012 (November 2012)","http://portal.acm.org/proceedings/lbsn/","http://portal.acm.org/proceedings/lbsn/archive/"
-"Conference Proceedings","LCR: Languages, Compilers, and Run-time Support for Scalable Systems","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/lcr/","http://portal.acm.org/proceedings/lcr/archive/"
-"Conference Proceedings","LCSD: Library-Centric Software Design","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/lcsd/","http://portal.acm.org/proceedings/lcsd/archive/"
-"Conference Proceedings","LCTES: Languages, Compilers, and Tools for Embedded Systems","","","","1995 (November 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/lctes/","http://portal.acm.org/proceedings/lctes/archive/"
-"Conference Proceedings","LDTA: Language Descriptions, Tools and Applications","","","","2010 (March 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/ldta/","http://portal.acm.org/proceedings/ldta/archive/"
-"Conference Proceedings","LFMTP: Logical Frameworks and Meta-Languages","","","","2009 (August 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/lfmtp/","http://portal.acm.org/proceedings/lfmtp/archive/"
-"Conference Proceedings","LFP: LISP and Functional Programming","","","","1980 (August 1980)","1994 (July 1994)","http://portal.acm.org/proceedings/lfp/","http://portal.acm.org/proceedings/lfp/archive/"
-"Conference Proceedings","LISP: Celebrating the 50th Anniversary of Lisp","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/lisp/","http://portal.acm.org/proceedings/lisp/archive/"
-"Conference Proceedings","LMSA: Leadership and Management in Software Architecture","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/lmsa/","http://portal.acm.org/proceedings/lmsa/archive/"
-"Conference Proceedings","LOCWEB: Location and the Web","","","","2008 (April 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/locweb/","http://portal.acm.org/proceedings/locweb/archive/"
-"Conference Proceedings","LS-MMRM: Large-Scale Multimedia Retrieval and Mining","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/ls-mmrm/","http://portal.acm.org/proceedings/ls-mmrm/archive/"
-"Conference Proceedings","LSAD: Large-Scale Attack Defense","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/lsad/","http://portal.acm.org/proceedings/lsad/archive/"
-"Conference Proceedings","LSAP: Large-scale System and Application Performance","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/lsap/","http://portal.acm.org/proceedings/lsap/archive/"
-"Conference Proceedings","LSDS-IR: Large-Scale Distributed Systems for Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/lsds-ir/","http://portal.acm.org/proceedings/lsds-ir/archive/"
-"Conference Proceedings","LUV: LISP Users and Vendors","","","","1992 (August 1992)","1995 (August 1994)","http://portal.acm.org/proceedings/luv/","http://portal.acm.org/proceedings/luv/archive/"
-"Conference Proceedings","LinkKDD: Link Discovery","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/linkkdd/","http://portal.acm.org/proceedings/linkkdd/archive/"
-"Conference Proceedings","M-MPAC: Middleware for Pervasive Mobile and Embedded Computing","","","","2009 (November 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/m-mpac/","http://portal.acm.org/proceedings/m-mpac/archive/"
-"Conference Proceedings","MACS: Modeling and Analysis of Concerns in Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/macs/","http://portal.acm.org/proceedings/macs/archive/"
-"Conference Proceedings","MAI: Middleware Application Interaction","","","","2007 (March 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/mai/","http://portal.acm.org/proceedings/mai/archive/"
-"Conference Proceedings","MASPEGHI: MechAnisms for SPEcialization, Generalization and inHerItance","","","","2010 (June 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/maspeghi/","http://portal.acm.org/proceedings/maspeghi/archive/"
-"Conference Proceedings","MAW: Memory Access on Future Processors","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/maw/","http://portal.acm.org/proceedings/maw/archive/"
-"Conference Proceedings","MB: Methods and Techniques in Behavioral Research","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/mb/","http://portal.acm.org/proceedings/mb/archive/"
-"Conference Proceedings","MC: Middleware Companion","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mc/","http://portal.acm.org/proceedings/mc/archive/"
-"Conference Proceedings","MCMC: Mobile Cloud Media Computing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mcmc/","http://portal.acm.org/proceedings/mcmc/archive/"
-"Conference Proceedings","MCPS: Contents Proctection and Security","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/mcps/","http://portal.acm.org/proceedings/mcps/archive/"
-"Conference Proceedings","MCS: Mobile Cloud Computing and Services","","","","2010 (June 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/mcs/","http://portal.acm.org/proceedings/mcs/archive/"
-"Conference Proceedings","MD: Massive Datasets","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/md/","http://portal.acm.org/proceedings/md/archive/"
-"Conference Proceedings","MDAC: Massive Data Analytics on the Cloud","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/mdac/","http://portal.acm.org/proceedings/mdac/archive/"
-"Conference Proceedings","MDI: Model-Drive Interoperability","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mdi/","http://portal.acm.org/proceedings/mdi/archive/"
-"Conference Proceedings","MDM: Mobile Data Management","","","","2005 (May 2005)","2010 (May 2010)","http://portal.acm.org/proceedings/mdm/","http://portal.acm.org/proceedings/mdm/archive/"
-"Conference Proceedings","MDMKDD: Multimedia Data Mining","","","","2010 (July 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/mdmkdd/","http://portal.acm.org/proceedings/mdmkdd/archive/"
-"Conference Proceedings","MDS: Middleware Doctoral Symposium","","","","2006 (November 2006)","2013 (December 2013)","http://portal.acm.org/proceedings/mds/","http://portal.acm.org/proceedings/mds/archive/"
-"Conference Proceedings","MEDEA: Memory Performance: Dealing with Applications, Systems and Architecture","","","","2003 (September 2003)","2009 (September 2009)","http://portal.acm.org/proceedings/medea/","http://portal.acm.org/proceedings/medea/archive/"
-"Conference Proceedings","MEDES: Management of Emergent Digital EcoSystems","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/medes/","http://portal.acm.org/proceedings/medes/archive/"
-"Conference Proceedings","MELT: Mobile Entity Localization and Tracking in GPS-Less Environment","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/melt/","http://portal.acm.org/proceedings/melt/archive/"
-"Conference Proceedings","MEMOCODE: Formal Methods and Models for Co-Design","","","","2005 (July 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/memocode/","http://portal.acm.org/proceedings/memocode/archive/"
-"Conference Proceedings","MERLIN: Mechanized Reasoning about Languages with Variable Binding","","","","2003 (August 2003)","2005 (September 2005)","http://portal.acm.org/proceedings/merlin/","http://portal.acm.org/proceedings/merlin/archive/"
-"Conference Proceedings","MG: Mardi Gras Conference","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/mg/","http://portal.acm.org/proceedings/mg/archive/"
-"Conference Proceedings","MGC: Middleware for Grids, Clouds and e-Science","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mgc/","http://portal.acm.org/proceedings/mgc/archive/"
-"Conference Proceedings","MHC: Multimedia for Human Communication","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mhc/","http://portal.acm.org/proceedings/mhc/archive/"
-"Conference Proceedings","MICNET: Mobile Internet Through Cellular Networks","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/micnet/","http://portal.acm.org/proceedings/micnet/archive/"
-"Conference Proceedings","MICRO: Microarchitecture","","","","1972 (September 1972)","2013 (December 2013)","http://portal.acm.org/proceedings/micro/","http://portal.acm.org/proceedings/micro/archive/"
-"Conference Proceedings","MIIT: Model Inference In Testing","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/miit/","http://portal.acm.org/proceedings/miit/archive/"
-"Conference Proceedings","MIR: Multimedia Information Retrieval","","","","2003 (November 2003)","2010 (March 2010)","http://portal.acm.org/proceedings/mir/","http://portal.acm.org/proceedings/mir/archive/"
-"Conference Proceedings","MIS: Metainformatics","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mis/","http://portal.acm.org/proceedings/mis/archive/"
-"Conference Proceedings","MISE: Modeling in Software Engineering","","","","2007 (May 2007)","2009 (May 2009)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","ML: ML","","","","2006 (September 2006)","2009 (August 2009)","http://portal.acm.org/proceedings/ml/","http://portal.acm.org/proceedings/ml/archive/"
-"Conference Proceedings","MLG: Mining and Learning with Graphs","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/mlg/","http://portal.acm.org/proceedings/mlg/archive/"
-"Conference Proceedings","MLPA: Modules and Libraries for Proof Assistants","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/mlpa/","http://portal.acm.org/proceedings/mlpa/archive/"
-"Conference Proceedings","MMDB: Multimedia Databases","","","","2003 (November 2003)","2004 (November 2004)","http://portal.acm.org/proceedings/mmdb/","http://portal.acm.org/proceedings/mmdb/archive/"
-"Conference Proceedings","MML: Machine Learning and Music","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mml/","http://portal.acm.org/proceedings/mml/archive/"
-"Conference Proceedings","MMSEC: Multimedia and Security","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/mmsec/","http://portal.acm.org/proceedings/mmsec/archive/"
-"Conference Proceedings","MMSys: Multimedia Systems","","","","2010 (February 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/mmsys/","http://portal.acm.org/proceedings/mmsys/archive/"
-"Conference Proceedings","MNCNA: Middleware for Next-Generation Converged Networks and Applications","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mncna/","http://portal.acm.org/proceedings/mncna/archive/"
-"Conference Proceedings","MOBILWARE: Mobile Wireless Middleware, Operating Systems, and Applications","","","","2007 (February 2008)","2007 (February 2008)","http://portal.acm.org/proceedings/mobilware/","http://portal.acm.org/proceedings/mobilware/archive/"
-"Conference Proceedings","MOCR: Multilingual OCR","","","","2009 (July 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/mocr/","http://portal.acm.org/proceedings/mocr/archive/"
-"Conference Proceedings","MODDM: Model Driven Development for Middleware","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/moddm/","http://portal.acm.org/proceedings/moddm/archive/"
-"Conference Proceedings","MOMPES: Model-Based Methodologies for Pervasive and Embedded Software","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mompes/","http://portal.acm.org/proceedings/mompes/archive/"
-"Conference Proceedings","MPAC: Middleware for Pervasive and Ad-Hoc Computing","","","","2004 (October 2004)","2008 (December 2008)","http://portal.acm.org/proceedings/mpac/","http://portal.acm.org/proceedings/mpac/archive/"
-"Conference Proceedings","MPEC: Models and Processes for the Evaluation of Off-the-Shelf Components","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/mpec/","http://portal.acm.org/proceedings/mpec/archive/"
-"Conference Proceedings","MPVA: Multimodal Pervasive Video Analysis","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mpva/","http://portal.acm.org/proceedings/mpva/archive/"
-"Conference Proceedings","MRDM: Multi-Relational Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/mrdm/","http://portal.acm.org/proceedings/mrdm/archive/"
-"Conference Proceedings","MS: Multimedia Semantics","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/ms/","http://portal.acm.org/proceedings/ms/archive/"
-"Conference Proceedings","MSC: Multimedia Service Composition","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/msc/","http://portal.acm.org/proceedings/msc/archive/"
-"Conference Proceedings","MSFP: Mathematically Structured Functional Programming","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/msfp/","http://portal.acm.org/proceedings/msfp/archive/"
-"Conference Proceedings","MSIADU: Media Studies and Implementations that Help Improving Access to Disabled Users","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/msiadu/","http://portal.acm.org/proceedings/msiadu/archive/"
-"Conference Proceedings","MSM: Modeling Social Media","","","","2010 (June 2010)","2013 (May 2013)","http://portal.acm.org/proceedings/msm/","http://portal.acm.org/proceedings/msm/archive/"
-"Conference Proceedings","MSPC: Memory System Performance and Correctness","","","","2002 (June 2002)","2012 (June 2012)","http://portal.acm.org/proceedings/mspc/","http://portal.acm.org/proceedings/mspc/archive/"
-"Conference Proceedings","MSR: Mining Software Repositories","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/msr/","http://portal.acm.org/proceedings/msr/archive/"
-"Conference Proceedings","MSWiM: Modeling, Analysis and Simulation of Wireless and Mobile Systems","","","","1999 (August 1999)","2013 (November 2013)","http://portal.acm.org/proceedings/mswim/","http://portal.acm.org/proceedings/mswim/archive/"
-"Conference Proceedings","MTAGS: Many-Task Computing on Grids and Supercomputers","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mtags/","http://portal.acm.org/proceedings/mtags/archive/"
-"Conference Proceedings","MTDL: Multimedia Technologies for Distance Learning","","","","2009 (October 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/mtdl/","http://portal.acm.org/proceedings/mtdl/archive/"
-"Conference Proceedings","MUCS: Managing Ubiquitous Communications and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/mucs/","http://portal.acm.org/proceedings/mucs/archive/"
-"Conference Proceedings","MULTIMEDIA: Multimedia","","","","1993 (September 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/multimedia/","http://portal.acm.org/proceedings/multimedia/archive/"
-"Conference Proceedings","MUM: Mobile and Ubiquitous Multimedia","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mum/","http://portal.acm.org/proceedings/mum/archive/"
-"Conference Proceedings","MV: Mobile Video","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/mv/","http://portal.acm.org/proceedings/mv/archive/"
-"Conference Proceedings","MW: Multimedia Middleware","","","","2001 (October 2001)","2012 (September 2012)","http://portal.acm.org/proceedings/mw/","http://portal.acm.org/proceedings/mw/archive/"
-"Conference Proceedings","MWSOC: Middleware for Service Oriented Computing","","","","2006 (November 2006)","2011 (December 2011)","http://portal.acm.org/proceedings/mwsoc/","http://portal.acm.org/proceedings/mwsoc/archive/"
-"Conference Proceedings","MetriSec: Security Measurements and Metrics","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/metrisec/","http://portal.acm.org/proceedings/metrisec/archive/"
-"Conference Proceedings","MiFor: Multimedia in Forensics","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mifor/","http://portal.acm.org/proceedings/mifor/archive/"
-"Conference Proceedings","MiNEMA: Middleware for Network Eccentric and Mobile Applications","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/minema/","http://portal.acm.org/proceedings/minema/archive/"
-"Conference Proceedings","MiSE: Models in Software Engineering","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","MidSec: Middleware Security","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/midsec/","http://portal.acm.org/proceedings/midsec/archive/"
-"Conference Proceedings","MidSens: Middleware Tools, Services and Run-Time Support for Sensor Networks","","","","2006 (November 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/midsens/","http://portal.acm.org/proceedings/midsens/archive/"
-"Conference Proceedings","Middleware Industrial Track: Middleware Industrial Track","","","","2010 (November 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/middlewareindustrialtrack/","http://portal.acm.org/proceedings/middlewareindustrialtrack/archive/"
-"Conference Proceedings","Middleware: Middleware","","","","2000 (April 2000)","2012 (December 2012)","http://portal.acm.org/proceedings/middleware/","http://portal.acm.org/proceedings/middleware/archive/"
-"Conference Proceedings","MindTrek: Entertainment and Media in the Ubiquitous Era","","","","2008 (October 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/mindtrek/","http://portal.acm.org/proceedings/mindtrek/archive/"
-"Conference Proceedings","MineNet: Mining Network Data","","","","2005 (August 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/minenet/","http://portal.acm.org/proceedings/minenet/archive/"
-"Conference Proceedings","MoDELS: Models in software engineering","","","","2005 (October 2005)","2012 (September 2012)","http://portal.acm.org/proceedings/models/","http://portal.acm.org/proceedings/models/archive/"
-"Conference Proceedings","MoDeVVa: Model-Driven Engineering, Verification and Validation","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/modevva/","http://portal.acm.org/proceedings/modevva/archive/"
-"Conference Proceedings","MoMM: Mobile Computing and Multimedia","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/momm/","http://portal.acm.org/proceedings/momm/archive/"
-"Conference Proceedings","MoMeTools: Models, Methods and Tools for Reproducible Network Research","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/mometools/","http://portal.acm.org/proceedings/mometools/archive/"
-"Conference Proceedings","MoSE+DQS: Model Driven Service Engineering and Data Quality and Security","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/mose+dqs/","http://portal.acm.org/proceedings/mose+dqs/archive/"
-"Conference Proceedings","MoViD: Mobile Video Delivery","","","","2010 (October 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/movid/","http://portal.acm.org/proceedings/movid/archive/"
-"Conference Proceedings","MobConQoE: Mobile Content Quality of Experience","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/mobconqoe/","http://portal.acm.org/proceedings/mobconqoe/archive/"
-"Conference Proceedings","MobMid: Mobile Middleware","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/mobmid/","http://portal.acm.org/proceedings/mobmid/archive/"
-"Conference Proceedings","MobiArch: Mobility in the Evolving Internet Architecture","","","","2006 (December 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/mobiarch/","http://portal.acm.org/proceedings/mobiarch/archive/"
-"Conference Proceedings","MobiCom: Mobile Computing","","","","1995 (December 1995)","2013 (September 2013)","http://portal.acm.org/proceedings/mobicom/","http://portal.acm.org/proceedings/mobicom/archive/"
-"Conference Proceedings","MobiDE: Data Engineering for Wireless and Mobile Access","","","","1999 (August 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/mobide/","http://portal.acm.org/proceedings/mobide/archive/"
-"Conference Proceedings","MobiEval: System Evaluation for Mobile Platforms","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/mobieval/","http://portal.acm.org/proceedings/mobieval/archive/"
-"Conference Proceedings","MobiHeld: Networking, Systems, and Applications for Mobile Handhelds","","","","2009 (August 2009)","2011 (October 2011)","http://portal.acm.org/proceedings/mobiheld/","http://portal.acm.org/proceedings/mobiheld/archive/"
-"Conference Proceedings","MobiHoc: Mobile Ad Hoc Networking and Computing","","","","2000 (November 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/mobihoc/","http://portal.acm.org/proceedings/mobihoc/archive/"
-"Conference Proceedings","MobiMedia: Mobile Multimedia Communications","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/mobimedia/","http://portal.acm.org/proceedings/mobimedia/archive/"
-"Conference Proceedings","MobiOpp: Mobile Opportunistic Networking","","","","2007 (June 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/mobiopp/","http://portal.acm.org/proceedings/mobiopp/archive/"
-"Conference Proceedings","MobiShare: Decentralized Resource Sharing in Mobile Computing and Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/mobishare/","http://portal.acm.org/proceedings/mobishare/archive/"
-"Conference Proceedings","MobiSys: Mobile Systems, Applications, and Services","","","","2003 (May 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/mobisys/","http://portal.acm.org/proceedings/mobisys/archive/"
-"Conference Proceedings","MobiVirt: Virtualization in Mobile Computing","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/mobivirt/","http://portal.acm.org/proceedings/mobivirt/archive/"
-"Conference Proceedings","MobiWac: Mobility Management and Wireless Access","","","","2002 (October 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/mobiwac/","http://portal.acm.org/proceedings/mobiwac/archive/"
-"Conference Proceedings","MobileHCI: Human Computer Interaction with Mobile Devices and Services","","","","2005 (September 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/mobilehci/","http://portal.acm.org/proceedings/mobilehci/archive/"
-"Conference Proceedings","Mobility: Mobile Technology, Applications, and Systems","","","","2006 (October 2006)","2009 (September 2009)","http://portal.acm.org/proceedings/mobility/","http://portal.acm.org/proceedings/mobility/archive/"
-"Conference Proceedings","MobilityModels: Mobility Models","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mobilitymodels/","http://portal.acm.org/proceedings/mobilitymodels/archive/"
-"Conference Proceedings","NAOMI: Next Generation Aspect Oriented Middleware","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/naomi/","http://portal.acm.org/proceedings/naomi/archive/"
-"Conference Proceedings","NDA: Network Data Anonymization","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/nda/","http://portal.acm.org/proceedings/nda/archive/"
-"Conference Proceedings","NETFLIX: Large-Scale Recommender Systems and the Netflix Prize Competition","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/netflix/","http://portal.acm.org/proceedings/netflix/archive/"
-"Conference Proceedings","NICELI: Network-I/O Convergence","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/niceli/","http://portal.acm.org/proceedings/niceli/archive/"
-"Conference Proceedings","NIME: New Interfaces for Musical Expression","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/nime/","http://portal.acm.org/proceedings/nime/archive/"
-"Conference Proceedings","NOSSDAV: Network and Operating Systems Support for Digital Audio and Video","","","","2001 (January 2001)","2013 (February 2013)","http://portal.acm.org/proceedings/nossdav/","http://portal.acm.org/proceedings/nossdav/archive/"
-"Conference Proceedings","NOTERE: New Technologies in Distributed Systems","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/notere/","http://portal.acm.org/proceedings/notere/archive/"
-"Conference Proceedings","NPAR: Non-Photorealistic Animation and Rendering","","","","2000 (June 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/npar/","http://portal.acm.org/proceedings/npar/archive/"
-"Conference Proceedings","NPIV: New Paradigms in Information Visualization and Manipulation","","","","1997 (November 1997)","1998 (November 1998)","http://portal.acm.org/proceedings/npiv/","http://portal.acm.org/proceedings/npiv/archive/"
-"Conference Proceedings","NPIVM: NPIVM","","","","1999 (November 1999)","1999 (November 1999)","http://portal.acm.org/proceedings/npivm/","http://portal.acm.org/proceedings/npivm/archive/"
-"Conference Proceedings","NRBC: Next-Generation Residential Broadband Challenges","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/nrbc/","http://portal.acm.org/proceedings/nrbc/archive/"
-"Conference Proceedings","NSDI: Networked Systems Design & Implementation ","","","","2005 (May 2005)","2011 (March 2011)","http://portal.acm.org/proceedings/nsdi/","http://portal.acm.org/proceedings/nsdi/archive/"
-"Conference Proceedings","NSDR: Networked Systems for Developing Regions","","","","2007 (August 2007)","2011 (June 2011)","http://portal.acm.org/proceedings/nsdr/","http://portal.acm.org/proceedings/nsdr/archive/"
-"Conference Proceedings","NSEC: National Software Engineering Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/nsec/","http://portal.acm.org/proceedings/nsec/archive/"
-"Conference Proceedings","NSPW: New Security Paradigms and Workshop","","","","1993 (August 1993)","2013 (December 2013)","http://portal.acm.org/proceedings/nspw/","http://portal.acm.org/proceedings/nspw/archive/"
-"Conference Proceedings","Nanoarch: Nanoscale Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/nanoarch/","http://portal.acm.org/proceedings/nanoarch/archive/"
-"Conference Proceedings","NetEcon: Economics of Networked Systems","","","","2008 (August 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/netecon/","http://portal.acm.org/proceedings/netecon/archive/"
-"Conference Proceedings","NetGames: Network and Systems Support for Games","","","","2002 (April 2002)","2012 (November 2012)","http://portal.acm.org/proceedings/netgames/","http://portal.acm.org/proceedings/netgames/archive/"
-"Conference Proceedings","NetT: Network Troubleshooting","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/nett/","http://portal.acm.org/proceedings/nett/archive/"
-"Conference Proceedings","NoCArc: Network on Chip Architectures","","","","2009 (December 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/nocarc/","http://portal.acm.org/proceedings/nocarc/archive/"
-"Conference Proceedings","NordiCHI: Nordic Conference on Human-Computer Interaction","","","","2002 (October 2002)","2012 (October 2012)","http://portal.acm.org/proceedings/nordichi/","http://portal.acm.org/proceedings/nordichi/archive/"
-"Conference Proceedings","OBI: Ontology-supported Business Intelligence","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/obi/","http://portal.acm.org/proceedings/obi/archive/"
-"Conference Proceedings","OM: Optimization of Middleware and Distributed Systems","","","","2001 (August 2001)","2001 (August 2001)","http://portal.acm.org/proceedings/om/","http://portal.acm.org/proceedings/om/archive/"
-"Conference Proceedings","ONISW: Ontologies and Information Systems for the Semantic Web","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/onisw/","http://portal.acm.org/proceedings/onisw/archive/"
-"Conference Proceedings","OODS: Object-Oriented Database Systems","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/oods/","http://portal.acm.org/proceedings/oods/archive/"
-"Conference Proceedings","OOPWORK: OOPWORK","","","","1986 (June 1986)","1986 (June 1986)","http://portal.acm.org/proceedings/oopwork/","http://portal.acm.org/proceedings/oopwork/archive/"
-"Conference Proceedings","OSDI: Operating Systems Design and Implementation","","","","1994 (November 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/osdi/","http://portal.acm.org/proceedings/osdi/archive/"
-"Conference Proceedings","OSDM: Open Source Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/osdm/","http://portal.acm.org/proceedings/osdm/archive/"
-"Conference Proceedings","OZCHI: Australian Computer-Human Interaction Special Interest Group: Design","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ozchi/","http://portal.acm.org/proceedings/ozchi/archive/"
-"Conference Proceedings","P2PECON: Economics of Peer-to-Peer Systems","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/p2pecon/","http://portal.acm.org/proceedings/p2pecon/archive/"
-"Conference Proceedings","P2PIR: PPIR","","","","2005 (November 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/p2pir/","http://portal.acm.org/proceedings/p2pir/archive/"
-"Conference Proceedings","PACT: Parallel Architectures and Compilation Techniques","","","","1993 (January 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/pact/","http://portal.acm.org/proceedings/pact/archive/"
-"Conference Proceedings","PADD: Parallel and Distributed Debugging","","","","1988 (November 1988)","1993 (December 1993)","http://portal.acm.org/proceedings/padd/","http://portal.acm.org/proceedings/padd/archive/"
-"Conference Proceedings","PADS: Principles of Advanced and Distributed Simulation","","","","1993 (July 1993)","2013 (May 2013)","http://portal.acm.org/proceedings/pads/","http://portal.acm.org/proceedings/pads/archive/"
-"Conference Proceedings","PADTAD: Parallel and Distributed Systems: Testing, Analysis, and Debugging","","","","2006 (July 2006)","2012 (July 2012)","http://portal.acm.org/proceedings/padtad/","http://portal.acm.org/proceedings/padtad/archive/"
-"Conference Proceedings","PAIS: Privacy and Anonymity in Information Society","","","","2008 (March 2008)","2011 (March 2011)","http://portal.acm.org/proceedings/pais/","http://portal.acm.org/proceedings/pais/archive/"
-"Conference Proceedings","PASCO: Parallel Symbolic Computation","","","","1997 (July 1997)","2010 (July 2010)","http://portal.acm.org/proceedings/pasco/","http://portal.acm.org/proceedings/pasco/archive/"
-"Conference Proceedings","PASTE: Program Analysis for Software Tools and Engineering","","","","1998 (July 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/paste/","http://portal.acm.org/proceedings/paste/archive/"
-"Conference Proceedings","PAVLAD: Privacy and Anonymity for Very Large Databases","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/pavlad/","http://portal.acm.org/proceedings/pavlad/archive/"
-"Conference Proceedings","PCAR: Practical Cognitive Agents and Robots","","","","2006 (November 2006)","2010 (May 2010)","http://portal.acm.org/proceedings/pcar/","http://portal.acm.org/proceedings/pcar/archive/"
-"Conference Proceedings","PCGames: Procedural Content Generation in Games","","","","2010 (June 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/pcgames/","http://portal.acm.org/proceedings/pcgames/archive/"
-"Conference Proceedings","PCK: Principles of Computing & Knowledge","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/pck/","http://portal.acm.org/proceedings/pck/archive/"
-"Conference Proceedings","PCS: Personal Computer Security","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/pcs/","http://portal.acm.org/proceedings/pcs/archive/"
-"Conference Proceedings","PDC: Participatory Design","","","","2004 (July 2004)","2012 (August 2012)","http://portal.acm.org/proceedings/pdc/","http://portal.acm.org/proceedings/pdc/archive/"
-"Conference Proceedings","PDSW: Petascale Data Storage","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pdsw/","http://portal.acm.org/proceedings/pdsw/archive/"
-"Conference Proceedings","PE-WASUN: Performance Evaluation of Wireless Ad hoc Sensor, and Ubiquitous Networks","","","","2004 (October 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/pe-wasun/","http://portal.acm.org/proceedings/pe-wasun/archive/"
-"Conference Proceedings","PEICS: Pattern-Driven Engineering of Interactive Computing Systems","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/peics/","http://portal.acm.org/proceedings/peics/archive/"
-"Conference Proceedings","PEPM: Partial Evaluation and Program Manipulation","","","","1991 (May 1991)","2013 (January 2013)","http://portal.acm.org/proceedings/pepm/","http://portal.acm.org/proceedings/pepm/archive/"
-"Conference Proceedings","PERFORMANCE: Computer Performance Modelling, Measurement and Evaluation","","","","1980 (May 1980)","1980 (May 1980)","http://portal.acm.org/proceedings/performance/","http://portal.acm.org/proceedings/performance/archive/"
-"Conference Proceedings","PESOS: Principles of Engineering Service-Oriented Systems","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/pesos/","http://portal.acm.org/proceedings/pesos/archive/"
-"Conference Proceedings","PETRA: Pervasive Technologies Related to Assistive Environments","","","","2008 (July 2008)","2013 (May 2013)","http://portal.acm.org/proceedings/petra/","http://portal.acm.org/proceedings/petra/archive/"
-"Conference Proceedings","PGAS: Partitioned Global Address Space Programing Models","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/pgas/","http://portal.acm.org/proceedings/pgas/archive/"
-"Conference Proceedings","PIKM: Ph.D. Students in Information and Knowledge Management","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pikm/","http://portal.acm.org/proceedings/pikm/archive/"
-"Conference Proceedings","PINS: Practice and Theory of Incentives in Networked Systems","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/pins/","http://portal.acm.org/proceedings/pins/archive/"
-"Conference Proceedings","PLAS: Programming Languages and Analysis for Security","","","","2006 (June 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/plas/","http://portal.acm.org/proceedings/plas/archive/"
-"Conference Proceedings","PLATE: Linking Aspect Technology and Evolution","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/plate/","http://portal.acm.org/proceedings/plate/archive/"
-"Conference Proceedings","PLDI: Programming Language Design and Implementation","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/pldi/","http://portal.acm.org/proceedings/pldi/archive/"
-"Conference Proceedings","PLEASE: Product Line Approaches in Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/please/","http://portal.acm.org/proceedings/please/archive/"
-"Conference Proceedings","PLOS: Programming Languages and Operating Systems","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/plos/","http://portal.acm.org/proceedings/plos/archive/"
-"Conference Proceedings","PLPV: Programming Languages Meets Program Verification","","","","2007 (October 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/plpv/","http://portal.acm.org/proceedings/plpv/archive/"
-"Conference Proceedings","PLoP: Pattern Languages of Programs","","","","2006 (October 2006)","2010 (August 2009)","http://portal.acm.org/proceedings/plop/","http://portal.acm.org/proceedings/plop/archive/"
-"Conference Proceedings","PMHWN: Performance Monitoring and Measurement of Heterogenous Wireless and Wired Networks","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/pmhwn/","http://portal.acm.org/proceedings/pmhwn/archive/"
-"Conference Proceedings","PODC: Principles of Distributed Computing","","","","1982 (August 1982)","2013 (July 2013)","http://portal.acm.org/proceedings/podc/","http://portal.acm.org/proceedings/podc/archive/"
-"Conference Proceedings","PODS: Principles of Database Systems","","","","1982 (March 1982)","2013 (June 2013)","http://portal.acm.org/proceedings/pods/","http://portal.acm.org/proceedings/pods/archive/"
-"Conference Proceedings","POMC: Principles of Mobile Computing","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/pomc/","http://portal.acm.org/proceedings/pomc/archive/"
-"Conference Proceedings","POOSC: Parallel/High-Performance Object-Oriented Scientific Computing","","","","2009 (July 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/poosc/","http://portal.acm.org/proceedings/poosc/archive/"
-"Conference Proceedings","POPL: Principles of Programming Languages","","","","1973 (October 1973)","2013 (January 2013)","http://portal.acm.org/proceedings/popl/","http://portal.acm.org/proceedings/popl/archive/"
-"Conference Proceedings","PP-TV: Peer-to-Peer Streaming and IP-TV","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/pp-tv/","http://portal.acm.org/proceedings/pp-tv/archive/"
-"Conference Proceedings","PPDP: Principles and Practice of Declarative Programming","","","","2000 (September 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/ppdp/","http://portal.acm.org/proceedings/ppdp/archive/"
-"Conference Proceedings","PPEALS: Parallel Programming: Experience with Applications, Languages and Systems","","","","1988 (January 1988)","1988 (January 1988)","http://portal.acm.org/proceedings/ppeals/","http://portal.acm.org/proceedings/ppeals/archive/"
-"Conference Proceedings","PPMMS: Peer-to-Peer Multimedia Streaming","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ppmms/","http://portal.acm.org/proceedings/ppmms/archive/"
-"Conference Proceedings","PPPJ: Principles and Practice of Programming in Java","","","","2006 (August 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/pppj/","http://portal.acm.org/proceedings/pppj/archive/"
-"Conference Proceedings","PPoPP: Principles and Practice of Parallel Programming","","","","1990 (February 1990)","2013 (February 2013)","http://portal.acm.org/proceedings/ppopp/","http://portal.acm.org/proceedings/ppopp/archive/"
-"Conference Proceedings","PRESTO: Programmable Routers for Extensible Services of Tomorrow","","","","2008 (August 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/presto/","http://portal.acm.org/proceedings/presto/archive/"
-"Conference Proceedings","PROCAMS: Projector Camera Systems","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/procams/","http://portal.acm.org/proceedings/procams/archive/"
-"Conference Proceedings","PROMISE: Predictor Models in Software Engineering","","","","2005 (May 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/promise/","http://portal.acm.org/proceedings/promise/archive/"
-"Conference Proceedings","PRS: Parallel Rendering","","","","1993 (November 1993)","1997 (October 1997)","http://portal.acm.org/proceedings/prs/","http://portal.acm.org/proceedings/prs/archive/"
-"Conference Proceedings","PST: Privacy, Security and Trust","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/pst/","http://portal.acm.org/proceedings/pst/archive/"
-"Conference Proceedings","PUI: Perceptive User Interfaces","","","","2001 (November 2001)","2001 (November 2001)","http://portal.acm.org/proceedings/pui/","http://portal.acm.org/proceedings/pui/archive/"
-"Conference Proceedings","PVG: Parallel and Large-Data Visualization and Graphics","","","","2001 (October 2001)","2003 (October 2003)","http://portal.acm.org/proceedings/pvg/","http://portal.acm.org/proceedings/pvg/archive/"
-"Conference Proceedings","PVGS: Parallel Visualization and Graphics","","","","1999 (October 1999)","1999 (October 1999)","http://portal.acm.org/proceedings/pvgs/","http://portal.acm.org/proceedings/pvgs/archive/"
-"Conference Proceedings","PaIR: Patent Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/pair/","http://portal.acm.org/proceedings/pair/archive/"
-"Conference Proceedings","PerMIS: Performance Metrics for Intelligent Systems","","","","2007 (August 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/permis/","http://portal.acm.org/proceedings/permis/archive/"
-"Conference Proceedings","Persuasive: Persuasive Technology","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/persuasive/","http://portal.acm.org/proceedings/persuasive/archive/"
-"Conference Proceedings","Ph.D.: EDBT Ph.D. workshop","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ph.d./","http://portal.acm.org/proceedings/ph.d./archive/"
-"Conference Proceedings","QSWinet: Quality of Service and Security for Wireless in Mobile Networks","","","","2005 (October 2005)","2012 (October 2012)","http://portal.acm.org/proceedings/qswinet/","http://portal.acm.org/proceedings/qswinet/archive/"
-"Conference Proceedings","QShine: Heterogeneous Networking for Quality, Reliability, Security and Robustness","","","","2006 (August 2006)","2008 (July 2008)","http://portal.acm.org/proceedings/qshine/","http://portal.acm.org/proceedings/qshine/archive/"
-"Conference Proceedings","QTNA: Queueing Theory and Network Applications","","","","2009 (July 2009)","2011 (August 2011)","http://portal.acm.org/proceedings/qtna/","http://portal.acm.org/proceedings/qtna/archive/"
-"Conference Proceedings","QUASOSS: Quality of Service-Oriented Software Systems","","","","2009 (August 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/quasoss/","http://portal.acm.org/proceedings/quasoss/archive/"
-"Conference Proceedings","QUOVADIS: Quantitative Stochastic Models in the Verification and Design of Software Systems","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/quovadis/","http://portal.acm.org/proceedings/quovadis/archive/"
-"Conference Proceedings","QUTE-SWAP: Quantitative Techniques for Software Agile Process","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/qute-swap/","http://portal.acm.org/proceedings/qute-swap/archive/"
-"Conference Proceedings","QoP: Quality of Protection","","","","2006 (October 2006)","2008 (October 2008)","http://portal.acm.org/proceedings/qop/","http://portal.acm.org/proceedings/qop/archive/"
-"Conference Proceedings","RAM-SE: Reflection, AOP and Meta-Data for Software Evolution","","","","2009 (July 2009)","2012 (June 2012)","http://portal.acm.org/proceedings/ram-se/","http://portal.acm.org/proceedings/ram-se/archive/"
-"Conference Proceedings","RAOOL: Relationships and Associations in Object-Oriented Languages","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/raool/","http://portal.acm.org/proceedings/raool/archive/"
-"Conference Proceedings","RBAC: Role-Based Access Control","","","","1996 (December 1996)","2000 (July 2000)","http://portal.acm.org/proceedings/rbac/","http://portal.acm.org/proceedings/rbac/archive/"
-"Conference Proceedings","REALMAN: Multi-Hop Ad Hoc Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/realman/","http://portal.acm.org/proceedings/realman/archive/"
-"Conference Proceedings","REALWSN: Real-world Wireless Sensor Networks","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/realwsn/","http://portal.acm.org/proceedings/realwsn/archive/"
-"Conference Proceedings","REBSE: Realising Evidence-Based Software Engineering","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/rebse/","http://portal.acm.org/proceedings/rebse/archive/"
-"Conference Proceedings","RECOMB: Resaerch in Computational Molecular Biology","","","","1997 (January 1997)","2004 (March 2004)","http://portal.acm.org/proceedings/recomb/","http://portal.acm.org/proceedings/recomb/archive/"
-"Conference Proceedings","RIPQoS: Revisiting IP QoS","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/ripqos/","http://portal.acm.org/proceedings/ripqos/archive/"
-"Conference Proceedings","RKRAS: Research In Knowledge Representation For Autonomous Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/rkras/","http://portal.acm.org/proceedings/rkras/archive/"
-"Conference Proceedings","ROA: Role of Abstraction in Software Engineering","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/roa/","http://portal.acm.org/proceedings/roa/archive/"
-"Conference Proceedings","ROSATEA: Role of Software Architecture for Testing and Analysis","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/rosatea/","http://portal.acm.org/proceedings/rosatea/archive/"
-"Conference Proceedings","RSSE: Recommendation Systems for Software Engineering","","","","2008 (November 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/rsse/","http://portal.acm.org/proceedings/rsse/archive/"
-"Conference Proceedings","RT: Randon Testing","","","","2006 (July 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/rt/","http://portal.acm.org/proceedings/rt/archive/"
-"Conference Proceedings","RULE: Rule-Based Programming","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/rule/","http://portal.acm.org/proceedings/rule/archive/"
-"Conference Proceedings","ReArch: Re-architecting the Internet","","","","2009 (December 2009)","2010 (November 2010)","http://portal.acm.org/proceedings/rearch/","http://portal.acm.org/proceedings/rearch/archive/"
-"Conference Proceedings","RecSys: Recommender Systems","","","","2007 (October 2007)","2013 (October 2013)","http://portal.acm.org/proceedings/recsys/","http://portal.acm.org/proceedings/recsys/archive/"
-"Conference Proceedings","Resilience: Resilience in High Performance","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/resilience/","http://portal.acm.org/proceedings/resilience/archive/"
-"Conference Proceedings","S&D4RCES: Security and Dependability for Resource Constrained Embedded Systems","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/s&d4rces/","http://portal.acm.org/proceedings/s&d4rces/archive/"
-"Conference Proceedings","S3: Wireless of the Students, by the Students, for the Students","","","","2008 (February 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/s3/","http://portal.acm.org/proceedings/s3/archive/"
-"Conference Proceedings","SAC: Symposium on Applied Computing","","","","1986 (October 1986)","2013 (March 2013)","http://portal.acm.org/proceedings/sac/","http://portal.acm.org/proceedings/sac/archive/"
-"Conference Proceedings","SACLA: Southern African Computer Lecturers' Association","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/sacla/","http://portal.acm.org/proceedings/sacla/archive/"
-"Conference Proceedings","SACMAT: Symposium on Access Control Models and Technologies","","","","2001 (May 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/sacmat/","http://portal.acm.org/proceedings/sacmat/archive/"
-"Conference Proceedings","SADPI: Semantically Aware Document Processing and Indexing","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sadpi/","http://portal.acm.org/proceedings/sadpi/archive/"
-"Conference Proceedings","SAICSIT: South African Institute of Computer Scientists and Information Technologists","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/saicsit/","http://portal.acm.org/proceedings/saicsit/archive/"
-"Conference Proceedings","SAM: Software Architectures and Mobility","","","","2008 (May 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/sam/","http://portal.acm.org/proceedings/sam/archive/"
-"Conference Proceedings","SAME: Semantic Ambient Media Experiences","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/same/","http://portal.acm.org/proceedings/same/archive/"
-"Conference Proceedings","SANET: Sensor and Actor Networks","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/sanet/","http://portal.acm.org/proceedings/sanet/archive/"
-"Conference Proceedings","SAPMIA: Social, Adaptive and Personalized Multimedia Interaction and Access","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sapmia/","http://portal.acm.org/proceedings/sapmia/archive/"
-"Conference Proceedings","SAS: Static Analysis","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/sas/","http://portal.acm.org/proceedings/sas/archive/"
-"Conference Proceedings","SASN: Security of Ad hoc and Sensor Networks","","","","2003 (October 2003)","2006 (October 2006)","http://portal.acm.org/proceedings/sasn/","http://portal.acm.org/proceedings/sasn/archive/"
-"Conference Proceedings","SAVCBS: Specification and Verification of Component-Based Systems","","","","2005 (September 2005)","2009 (August 2009)","http://portal.acm.org/proceedings/savcbs/","http://portal.acm.org/proceedings/savcbs/archive/"
-"Conference Proceedings","SAW: Static Analysis","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/saw/","http://portal.acm.org/proceedings/saw/archive/"
-"Conference Proceedings","SBCCI: Symposium on Integrated Circuits and System Design","","","","1998 (January 1998)","2011 (August 2011)","http://portal.acm.org/proceedings/sbcci/","http://portal.acm.org/proceedings/sbcci/archive/"
-"Conference Proceedings","SBIM: Sketch-Based Interfaces and Modeling","","","","2007 (August 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/sbim/","http://portal.acm.org/proceedings/sbim/archive/"
-"Conference Proceedings","SC: Supercomputing","","","","1988 (November 1988)","2013 (November 2013)","http://portal.acm.org/proceedings/sc/","http://portal.acm.org/proceedings/sc/archive/"
-"Conference Proceedings","SCA: Symposium on Computer Animation","","","","2002 (July 2002)","2013 (July 2013)","http://portal.acm.org/proceedings/sca/","http://portal.acm.org/proceedings/sca/archive/"
-"Conference Proceedings","SCC: Services Computing","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/scc/","http://portal.acm.org/proceedings/scc/archive/"
-"Conference Proceedings","SCCG: Spring Conference on Computer graphics","","","","2001 (April 2001)","2013 (March 2013)","http://portal.acm.org/proceedings/sccg/","http://portal.acm.org/proceedings/sccg/archive/"
-"Conference Proceedings","SCE: Summit on Computing Education","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/sce/","http://portal.acm.org/proceedings/sce/archive/"
-"Conference Proceedings","SCESM: Scenarios and State Machines","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/scesm/","http://portal.acm.org/proceedings/scesm/archive/"
-"Conference Proceedings","SCM: Software Configuration Management","","","","1989 (October 1989)","2005 (September 2005)","http://portal.acm.org/proceedings/scm/","http://portal.acm.org/proceedings/scm/archive/"
-"Conference Proceedings","SCN: Simulation of Computer Networks","","","","1987 (August 1987)","1987 (August 1987)","http://portal.acm.org/proceedings/scn/","http://portal.acm.org/proceedings/scn/archive/"
-"Conference Proceedings","SCOPES: Software and Compilers for Embedded Systems","","","","2005 (September 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/scopes/","http://portal.acm.org/proceedings/scopes/archive/"
-"Conference Proceedings","SCORE: Software Metrics","","","","1982 (August 1982)","1982 (August 1982)","http://portal.acm.org/proceedings/score/","http://portal.acm.org/proceedings/score/archive/"
-"Conference Proceedings","SCSC: Summer Computer Simulation Conference","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/scsc/","http://portal.acm.org/proceedings/scsc/archive/"
-"Conference Proceedings","SDDDM: Dependable Distributed Data Management","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/sdddm/","http://portal.acm.org/proceedings/sdddm/archive/"
-"Conference Proceedings","SDE: Software Development Environments","","","","1984 (April 1984)","1992 (November 1992)","http://portal.acm.org/proceedings/sde/","http://portal.acm.org/proceedings/sde/archive/"
-"Conference Proceedings","SDG: Software Development Governance","","","","2008 (May 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/sdg/","http://portal.acm.org/proceedings/sdg/archive/"
-"Conference Proceedings","SDSOA: Systems Development in SOA Environments","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/sdsoa/","http://portal.acm.org/proceedings/sdsoa/archive/"
-"Conference Proceedings","SE-HPC: Software Engineering for High Performance Computing Applications","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/se-hpc/","http://portal.acm.org/proceedings/se-hpc/archive/"
-"Conference Proceedings","SEAMS: Software Engineering for Adaptive and Self-Managing Systems","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/seams/","http://portal.acm.org/proceedings/seams/archive/"
-"Conference Proceedings","SEAS: Software Engineering for Automotive Systems","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/seas/","http://portal.acm.org/proceedings/seas/archive/"
-"Conference Proceedings","SECSE: Software Engineering for Computational Science and Engineering","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/secse/","http://portal.acm.org/proceedings/secse/archive/"
-"Conference Proceedings","SEESE: Software Engineering in East and South Europe","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/seese/","http://portal.acm.org/proceedings/seese/archive/"
-"Conference Proceedings","SEEUP: Software Engineering Foundations for End User Programming","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/seeup/","http://portal.acm.org/proceedings/seeup/archive/"
-"Conference Proceedings","SEHC: Software Engineering in Health Care","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/sehc/","http://portal.acm.org/proceedings/sehc/archive/"
-"Conference Proceedings","SEKE: Software Engineering and Knowledge Engineering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/seke/","http://portal.acm.org/proceedings/seke/archive/"
-"Conference Proceedings","SELMAS: Software Engineering for Large-Scale Multi-Agent Systems","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/selmas/","http://portal.acm.org/proceedings/selmas/archive/"
-"Conference Proceedings","SEM: Software Engineering and Middleware","","","","2005 (September 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/sem/","http://portal.acm.org/proceedings/sem/archive/"
-"Conference Proceedings","SEMSEARCH: Semantic Search","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/semsearch/","http://portal.acm.org/proceedings/semsearch/archive/"
-"Conference Proceedings","SEPCASE: Software Engineering for Pervasive Computing Applications, Systems, and Environments","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sepcase/","http://portal.acm.org/proceedings/sepcase/archive/"
-"Conference Proceedings","SEPS: Software Engineering for Pervasive Services","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/seps/","http://portal.acm.org/proceedings/seps/archive/"
-"Conference Proceedings","SERENE: Software Engineering for Resilient Systems","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/serene/","http://portal.acm.org/proceedings/serene/archive/"
-"Conference Proceedings","SESENA: Software Engineering for Sensor Network Applications","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/sesena/","http://portal.acm.org/proceedings/sesena/archive/"
-"Conference Proceedings","SESS: Software Engineering for Secure Systems","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/sess/","http://portal.acm.org/proceedings/sess/archive/"
-"Conference Proceedings","SETA: Symposium on Environments and Tools for Ada","","","","1991 (April 1991)","1994 (September 1994)","http://portal.acm.org/proceedings/seta/","http://portal.acm.org/proceedings/seta/archive/"
-"Conference Proceedings","SETMDM: Software Engineering for Tailor-Made Data Management","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/setmdm/","http://portal.acm.org/proceedings/setmdm/archive/"
-"Conference Proceedings","SGP: Symposium on Geometry Processing","","","","2003 (June 2003)","2006 (June 2006)","http://portal.acm.org/proceedings/sgp/","http://portal.acm.org/proceedings/sgp/archive/"
-"Conference Proceedings","SHARK: Sharing and Reusing Architectural Knowledge","","","","2007 (May 2007)","2011 (May 2011)","http://portal.acm.org/proceedings/shark/","http://portal.acm.org/proceedings/shark/archive/"
-"Conference Proceedings","SICOSIM: SICOSIM","","","","1972 (October 1972)","1973 (October 1973)","http://portal.acm.org/proceedings/sicosim/","http://portal.acm.org/proceedings/sicosim/archive/"
-"Conference Proceedings","SIGAda: SIGAda International Conference on Ada","","","","1985 (May 1985)","2011 (November 2011)","http://portal.acm.org/proceedings/sigada/","http://portal.acm.org/proceedings/sigada/archive/"
-"Conference Proceedings","SIGBDP: SIGBDP Conference on Trends and Directions in Expert Systems","","","","1990 (September 1990)","1990 (September 1990)","http://portal.acm.org/proceedings/sigbdp/","http://portal.acm.org/proceedings/sigbdp/archive/"
-"Conference Proceedings","SIGCOMM LA: Data Communication in Latin America and the Caribbean","","","","2001 (April 2001)","2001 (April 2001)","http://portal.acm.org/proceedings/sigcommla/","http://portal.acm.org/proceedings/sigcommla/archive/"
-"Conference Proceedings","SIGCOMM: ACM SIGCOMM","","","","1977 (September 1977)","2013 (August 2013)","http://portal.acm.org/proceedings/sigcomm/","http://portal.acm.org/proceedings/sigcomm/archive/"
-"Conference Proceedings","SIGCSE: Computer Science Education","","","","1970 (January 1970)","2013 (March 2013)","http://portal.acm.org/proceedings/sigcse/","http://portal.acm.org/proceedings/sigcse/archive/"
-"Conference Proceedings","SIGDOC: Design of Communication","","","","1982 (January 1982)","2013 (September 2013)","http://portal.acm.org/proceedings/sigdoc/","http://portal.acm.org/proceedings/sigdoc/archive/"
-"Conference Proceedings","SIGFIDET: Data Description, Access and Control","","","","1970 (November 1970)","1975 (January 1975)","http://portal.acm.org/proceedings/sigfidet/","http://portal.acm.org/proceedings/sigfidet/archive/"
-"Conference Proceedings","SIGGRAPH Asia: Computer Graphics and Interactive Techniques Conference - Asia","","","","2008 (December 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/siggraphasia/","http://portal.acm.org/proceedings/siggraphasia/archive/"
-"Conference Proceedings","SIGGRAPH: Computer Graphics and Interactive Techniques Conference","","","","1974 (July 1974)","2013 (July 2013)","http://portal.acm.org/proceedings/siggraph/","http://portal.acm.org/proceedings/siggraph/archive/"
-"Conference Proceedings","SIGIR: Information Retrieval","","","","1971 (April 1971)","2013 (July 2013)","http://portal.acm.org/proceedings/sigir/","http://portal.acm.org/proceedings/sigir/archive/"
-"Conference Proceedings","SIGITE: Information Technology Education","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/sigite/","http://portal.acm.org/proceedings/sigite/archive/"
-"Conference Proceedings","SIGME: SIGME Symposium","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/sigme/","http://portal.acm.org/proceedings/sigme/archive/"
-"Conference Proceedings","SIGMETRICS: Measurement and Modeling of Computer Systems","","","","1974 (January 1974)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmetrics/","http://portal.acm.org/proceedings/sigmetrics/archive/"
-"Conference Proceedings","SIGMINI: SIGMINI Symposium on Small Systems","","","","1976 (March 1976)","1978 (August 1978)","http://portal.acm.org/proceedings/sigmini/","http://portal.acm.org/proceedings/sigmini/archive/"
-"Conference Proceedings","SIGMOD: Management of Data","","","","1975 (May 1975)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmod/","http://portal.acm.org/proceedings/sigmod/archive/"
-"Conference Proceedings","SIGPLAN: SIGPLAN Symposium","","","","1973 (November 1973)","1987 (July 1987)","http://portal.acm.org/proceedings/sigplan/","http://portal.acm.org/proceedings/sigplan/archive/"
-"Conference Proceedings","SIGSMALL: SIGSMALL/PC Symposium on Small Systems","","","","1979 (October 1979)","1991 (May 1991)","http://portal.acm.org/proceedings/sigsmall/","http://portal.acm.org/proceedings/sigsmall/archive/"
-"Conference Proceedings","SIGSOFT: Foundations of Software Engineering","","","","1983 (January 1983)","2012 (November 2012)","http://portal.acm.org/proceedings/sigsoft/","http://portal.acm.org/proceedings/sigsoft/archive/"
-"Conference Proceedings","SIGUCCS: User Services","","","","1972 (January 1972)","2013 (November 2013)","http://portal.acm.org/proceedings/siguccs/","http://portal.acm.org/proceedings/siguccs/archive/"
-"Conference Proceedings","SIMPLEX: Simplifying Complex Network for Practitioners","","","","2009 (July 2009)","2012 (April 2012)","http://portal.acm.org/proceedings/simplex/","http://portal.acm.org/proceedings/simplex/archive/"
-"Conference Proceedings","SIMUTools: Simulation Tools and Techniques","","","","2010 (March 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/simutools/","http://portal.acm.org/proceedings/simutools/archive/"
-"Conference Proceedings","SIN: Security of Information and Networks","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/sin/","http://portal.acm.org/proceedings/sin/archive/"
-"Conference Proceedings","SINTER: Software Integration and Evolution at Runtime","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sinter/","http://portal.acm.org/proceedings/sinter/archive/"
-"Conference Proceedings","SIPE: Services Integration in Pervasive Environments","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/sipe/","http://portal.acm.org/proceedings/sipe/archive/"
-"Conference Proceedings","SISAP: Similarity Search and Applications","","","","2008 (April 2008)","2011 (June 2011)","http://portal.acm.org/proceedings/sisap/","http://portal.acm.org/proceedings/sisap/archive/"
-"Conference Proceedings","SLIP: System Level Interconnect Prediction","","","","2000 (April 2000)","2012 (June 2012)","http://portal.acm.org/proceedings/slip/","http://portal.acm.org/proceedings/slip/archive/"
-"Conference Proceedings","SLIPE: Symposium on Language Issues in Programming Environments","","","","1985 (June 1985)","1985 (June 1985)","http://portal.acm.org/proceedings/slipe/","http://portal.acm.org/proceedings/slipe/archive/"
-"Conference Proceedings","SM: Solid Modelling and Applications","","","","1991 (May 1991)","2004 (June 2004)","http://portal.acm.org/proceedings/sm/","http://portal.acm.org/proceedings/sm/archive/"
-"Conference Proceedings","SMARTGRAPH: Smart Graphics","","","","2002 (June 2002)","2002 (June 2002)","http://portal.acm.org/proceedings/smartgraph/","http://portal.acm.org/proceedings/smartgraph/archive/"
-"Conference Proceedings","SMCtools: Tools for Solving Structured Markov Chains","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/smctools/","http://portal.acm.org/proceedings/smctools/archive/"
-"Conference Proceedings","SMT: Satisfiability Modulo Theories","","","","2008 (July 2008)","2009 (August 2009)","http://portal.acm.org/proceedings/smt/","http://portal.acm.org/proceedings/smt/archive/"
-"Conference Proceedings","SMUC: Search and Mining User-generated Contents","","","","2010 (October 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/smuc/","http://portal.acm.org/proceedings/smuc/archive/"
-"Conference Proceedings","SMVC: Surreal Media and Virtual Cloning","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/smvc/","http://portal.acm.org/proceedings/smvc/archive/"
-"Conference Proceedings","SNA-KDD: Social Network Mining and Analysis","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/sna-kdd/","http://portal.acm.org/proceedings/sna-kdd/archive/"
-"Conference Proceedings","SNAPI: Storage Network Architecture and Parallel I/Os","","","","2003 (September 2003)","2004 (September 2004)","http://portal.acm.org/proceedings/snapi/","http://portal.acm.org/proceedings/snapi/archive/"
-"Conference Proceedings","SNC: Symbolic-Numeric Computation","","","","2007 (July 2007)","2011 (June 2012)","http://portal.acm.org/proceedings/snc/","http://portal.acm.org/proceedings/snc/archive/"
-"Conference Proceedings","SNS: Social Network Systems","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/sns/","http://portal.acm.org/proceedings/sns/archive/"
-"Conference Proceedings","SOAR: Self-organizing Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/soar/","http://portal.acm.org/proceedings/soar/archive/"
-"Conference Proceedings","SOCP: Service-oriented Computing Performance","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/socp/","http://portal.acm.org/proceedings/socp/archive/"
-"Conference Proceedings","SODA: Symposium on Discrete Algorithms","","","","1990 (January 1990)","2012 (January 2012)","http://portal.acm.org/proceedings/soda/","http://portal.acm.org/proceedings/soda/archive/"
-"Conference Proceedings","SOMITAS: Software Organisation and Monitoring of Ambient Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/somitas/","http://portal.acm.org/proceedings/somitas/archive/"
-"Conference Proceedings","SOQUA: Software Quality Assurance","","","","2006 (November 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/soqua/","http://portal.acm.org/proceedings/soqua/archive/"
-"Conference Proceedings","SOSE: Service-Oriented Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/sose/","http://portal.acm.org/proceedings/sose/archive/"
-"Conference Proceedings","SOSOC: Security in Opportunistic and Social networks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/sosoc/","http://portal.acm.org/proceedings/sosoc/archive/"
-"Conference Proceedings","SOSP: Symposium on Operating Systems Principles","","","","1967 (January 1967)","2013 (November 2013)","http://portal.acm.org/proceedings/sosp/","http://portal.acm.org/proceedings/sosp/archive/"
-"Conference Proceedings","SOUPS: Symposium on Usable Privacy and Security","","","","2005 (July 2005)","2013 (July 2013)","http://portal.acm.org/proceedings/soups/","http://portal.acm.org/proceedings/soups/archive/"
-"Conference Proceedings","SP: Security and Privacy","","","","1996 (May 1996)","1996 (May 1996)","http://portal.acm.org/proceedings/sp/","http://portal.acm.org/proceedings/sp/archive/"
-"Conference Proceedings","SPAA: Symposium on Parallelism in Algorithms and Architectures","","","","1989 (March 1989)","2013 (July 2013)","http://portal.acm.org/proceedings/spaa/","http://portal.acm.org/proceedings/spaa/archive/"
-"Conference Proceedings","SPDT: Parallel and Distributed Tools","","","","1996 (January 1996)","1998 (August 1998)","http://portal.acm.org/proceedings/spdt/","http://portal.acm.org/proceedings/spdt/archive/"
-"Conference Proceedings","SPIMACS: Security and Privacy in Medical and Home-Care Systems","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/spimacs/","http://portal.acm.org/proceedings/spimacs/archive/"
-"Conference Proceedings","SPIN: SPIN workshop on Model Checking of Software","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/spin/","http://portal.acm.org/proceedings/spin/archive/"
-"Conference Proceedings","SPLASH: Object-Oriented Programming Systems, Languages, and Applications","","","","1986 (June 1986)","2013 (October 2013)","http://portal.acm.org/proceedings/splash/","http://portal.acm.org/proceedings/splash/archive/"
-"Conference Proceedings","SPLAT: Software Engineering Properties of Languages and Aspect Technologies","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/splat/","http://portal.acm.org/proceedings/splat/archive/"
-"Conference Proceedings","SPM: Geometric and Physical Modeling","","","","2005 (June 2005)","2010 (September 2010)","http://portal.acm.org/proceedings/spm/","http://portal.acm.org/proceedings/spm/archive/"
-"Conference Proceedings","SPRINGL: Security and Privacy in GIS and LBS","","","","2008 (November 2008)","2011 (November 2011)","http://portal.acm.org/proceedings/springl/","http://portal.acm.org/proceedings/springl/archive/"
-"Conference Proceedings","SRMC: Story Representation, Mechanism and Context","","","","2004 (October 2004)","2008 (October 2008)","http://portal.acm.org/proceedings/srmc/","http://portal.acm.org/proceedings/srmc/archive/"
-"Conference Proceedings","SSCS: Searching Spontaneous COnversational Speech","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/sscs/","http://portal.acm.org/proceedings/sscs/archive/"
-"Conference Proceedings","SSEE: Summit on Software Engineering Eductation","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/ssee/","http://portal.acm.org/proceedings/ssee/archive/"
-"Conference Proceedings","SSM: Search in Social Media","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/ssm/","http://portal.acm.org/proceedings/ssm/archive/"
-"Conference Proceedings","SSPS: Scalable Stream Processing System","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ssps/","http://portal.acm.org/proceedings/ssps/archive/"
-"Conference Proceedings","SSPW: Social Signal Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sspw/","http://portal.acm.org/proceedings/sspw/archive/"
-"Conference Proceedings","SSR: Symposium on Software Reusability","","","","1995 (August 1995)","2001 (May 2001)","http://portal.acm.org/proceedings/ssr/","http://portal.acm.org/proceedings/ssr/archive/"
-"Conference Proceedings","SSRS: Survivable and Self-Regenerative Systems","","","","2003 (October 2003)","2003 (October 2003)","http://portal.acm.org/proceedings/ssrs/","http://portal.acm.org/proceedings/ssrs/archive/"
-"Conference Proceedings","STC: Scalable Trusted Computing","","","","2006 (November 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/stc/","http://portal.acm.org/proceedings/stc/archive/"
-"Conference Proceedings","STOC: Symposium on Theory of Computing","","","","1969 (May 1969)","2013 (June 2013)","http://portal.acm.org/proceedings/stoc/","http://portal.acm.org/proceedings/stoc/archive/"
-"Conference Proceedings","STOP: Script to Program Evolution","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/stop/","http://portal.acm.org/proceedings/stop/archive/"
-"Conference Proceedings","STOV: Software Test Output Validation","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/stov/","http://portal.acm.org/proceedings/stov/archive/"
-"Conference Proceedings","SUITE: Search-driven Development: Users, Infrastructure, Tools and Evaluation","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/suite/","http://portal.acm.org/proceedings/suite/archive/"
-"Conference Proceedings","SVR: SIGGRAPH Video Review","","","","2001 (August 2001)","2003 (July 2003)","http://portal.acm.org/proceedings/svr/","http://portal.acm.org/proceedings/svr/archive/"
-"Conference Proceedings","SWS: Secure Web Services","","","","2004 (October 2004)","2009 (November 2009)","http://portal.acm.org/proceedings/sws/","http://portal.acm.org/proceedings/sws/archive/"
-"Conference Proceedings","SWSM: Social Web Search and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/swsm/","http://portal.acm.org/proceedings/swsm/archive/"
-"Conference Proceedings","SYANCO: Synthesis and Analysis of Component Connectors","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/syanco/","http://portal.acm.org/proceedings/syanco/archive/"
-"Conference Proceedings","SYMSAC: Symposium on Symbolic and Algebraic Computation","","","","1966 (January 1966)","1986 (October 1986)","http://portal.acm.org/proceedings/symsac/","http://portal.acm.org/proceedings/symsac/archive/"
-"Conference Proceedings","SYSTOR: Experimental Systems Conference","","","","2009 (May 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/systor/","http://portal.acm.org/proceedings/systor/archive/"
-"Conference Proceedings","SafeConfig: Assurable and Usable Security Configuration","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/safeconfig/","http://portal.acm.org/proceedings/safeconfig/archive/"
-"Conference Proceedings","Sandbox: Symposium on Video Games","","","","2006 (July 2006)","2011 (August 2011)","http://portal.acm.org/proceedings/sandbox/","http://portal.acm.org/proceedings/sandbox/archive/"
-"Conference Proceedings","SecPerU: Security, Privacy and Trust in Pervasive and Ubiquitous Computing","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/secperu/","http://portal.acm.org/proceedings/secperu/archive/"
-"Conference Proceedings","SecuCode: Secure Execution of Untrusted Code","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/secucode/","http://portal.acm.org/proceedings/secucode/archive/"
-"Conference Proceedings","SecureComm: Security and Privacy in Communication Netowrks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/securecomm/","http://portal.acm.org/proceedings/securecomm/archive/"
-"Conference Proceedings","SenSys: Embedded Networked Sensor Systems","","","","2003 (November 2003)","2013 (November 2013)","http://portal.acm.org/proceedings/sensys/","http://portal.acm.org/proceedings/sensys/archive/"
-"Conference Proceedings","SensorKDD: Knowledge Discovery from Sensor Data","","","","2009 (June 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/sensorkdd/","http://portal.acm.org/proceedings/sensorkdd/archive/"
-"Conference Proceedings","SoCC: Cloud Computing","","","","2010 (June 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/socc/","http://portal.acm.org/proceedings/socc/archive/"
-"Conference Proceedings","SoCG: Computational Geometry","","","","1985 (June 1985)","2013 (June 2013)","http://portal.acm.org/proceedings/socg/","http://portal.acm.org/proceedings/socg/archive/"
-"Conference Proceedings","SoD: Science of Design","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/sod/","http://portal.acm.org/proceedings/sod/archive/"
-"Conference Proceedings","SoICT: Information and Communication Technology","","","","2010 (August 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/soict/","http://portal.acm.org/proceedings/soict/archive/"
-"Conference Proceedings","SoSEA: Social Software Engineering Applications","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sosea/","http://portal.acm.org/proceedings/sosea/archive/"
-"Conference Proceedings","SocialNets: Social Network Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/socialnets/","http://portal.acm.org/proceedings/socialnets/archive/"
-"Conference Proceedings","SoftVis: Software Visualization","","","","2003 (June 2003)","2010 (October 2010)","http://portal.acm.org/proceedings/softvis/","http://portal.acm.org/proceedings/softvis/archive/"
-"Conference Proceedings","SpringSim: Spring Simulation Multiconference","","","","2007 (March 2007)","2013 (April 2013)","http://portal.acm.org/proceedings/springsim/","http://portal.acm.org/proceedings/springsim/archive/"
-"Conference Proceedings","StReBio: Statistical and Relational Learning in Bioinformatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/strebio/","http://portal.acm.org/proceedings/strebio/archive/"
-"Conference Proceedings","StorageSS: Storage Security and Survivability","","","","2005 (November 2005)","2008 (October 2008)","http://portal.acm.org/proceedings/storagess/","http://portal.acm.org/proceedings/storagess/archive/"
-"Conference Proceedings","StreamKDD: Novel Data Stream Pattern Mining Techniques","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/streamkdd/","http://portal.acm.org/proceedings/streamkdd/archive/"
-"Conference Proceedings","TAMODIA: Task Models and Diagrams","","","","2004 (November 2004)","2005 (September 2005)","http://portal.acm.org/proceedings/tamodia/","http://portal.acm.org/proceedings/tamodia/archive/"
-"Conference Proceedings","TAPAS: Technology and Policy for Accessing Spectrum","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/tapas/","http://portal.acm.org/proceedings/tapas/archive/"
-"Conference Proceedings","TAPIA: Diversity in Computing","","","","2003 (October 2003)","2009 (April 2009)","http://portal.acm.org/proceedings/tapia/","http://portal.acm.org/proceedings/tapia/archive/"
-"Conference Proceedings","TAPP: Theory and Practice of Provenance","","","","2010 (February 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/tapp/","http://portal.acm.org/proceedings/tapp/archive/"
-"Conference Proceedings","TARK: Theoretical Aspects of Rationality and Knowledge","","","","1986 (March 1986)","2009 (July 2009)","http://portal.acm.org/proceedings/tark/","http://portal.acm.org/proceedings/tark/archive/"
-"Conference Proceedings","TAU: Timing Iissues in the Specification and Synthesis of Digital Systems","","","","2002 (December 2002)","2002 (December 2002)","http://portal.acm.org/proceedings/tau/","http://portal.acm.org/proceedings/tau/archive/"
-"Conference Proceedings","TAV: Testing, Analysis and Verification","","","","1989 (November 1989)","2008 (July 2008)","http://portal.acm.org/proceedings/tav/","http://portal.acm.org/proceedings/tav/archive/"
-"Conference Proceedings","TEFSE: Traceability in Emerging Forms of Software Engineering","","","","2005 (November 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/tefse/","http://portal.acm.org/proceedings/tefse/archive/"
-"Conference Proceedings","TEI: Tangible and Embedded Interaction","","","","2007 (February 2007)","2013 (February 2013)","http://portal.acm.org/proceedings/tei/","http://portal.acm.org/proceedings/tei/archive/"
-"Conference Proceedings","TG: TeraGrid","","","","2010 (August 2010)","2011 (July 2011)","http://portal.acm.org/proceedings/tg/","http://portal.acm.org/proceedings/tg/archive/"
-"Conference Proceedings","TINLAP: Theoretical Issues in Natural Language Processing","","","","1975 (June 1975)","1975 (June 1975)","http://portal.acm.org/proceedings/tinlap/","http://portal.acm.org/proceedings/tinlap/archive/"
-"Conference Proceedings","TLDI: Types in Language Design and Implentation","","","","2003 (January 2003)","2012 (January 2012)","http://portal.acm.org/proceedings/tldi/","http://portal.acm.org/proceedings/tldi/archive/"
-"Conference Proceedings","TMBIO: Text Mining in Bioinformatics","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/tmbio/","http://portal.acm.org/proceedings/tmbio/archive/"
-"Conference Proceedings","TMR: Tagging, Mining and Retrieval","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/tmr/","http://portal.acm.org/proceedings/tmr/archive/"
-"Conference Proceedings","TRI-Ada: TRI-Ada","","","","1989 (January 1989)","1997 (November 1997)","http://portal.acm.org/proceedings/tri-ada/","http://portal.acm.org/proceedings/tri-ada/archive/"
-"Conference Proceedings","TSA: Topic-Sentiment Analysis for Mass Opinion","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/tsa/","http://portal.acm.org/proceedings/tsa/archive/"
-"Conference Proceedings","TT: Software Technology Transfer in Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/tt/","http://portal.acm.org/proceedings/tt/archive/"
-"Conference Proceedings","TVS: TRECVid Video Summarization","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/tvs/","http://portal.acm.org/proceedings/tvs/archive/"
-"Conference Proceedings","TridentCom: Testbeds and Research Infrastructures for the Development of Networks & Communities","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/tridentcom/","http://portal.acm.org/proceedings/tridentcom/archive/"
-"Conference Proceedings","U-NET: User-Provided Networking","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/u-net/","http://portal.acm.org/proceedings/u-net/archive/"
-"Conference Proceedings","U: Knowledge Discovery from Uncertain Data","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/u/","http://portal.acm.org/proceedings/u/archive/"
-"Conference Proceedings","UBDM: Utility-Based Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/ubdm/","http://portal.acm.org/proceedings/ubdm/archive/"
-"Conference Proceedings","UCHPC-MAW: UnConventional High Performance Computing Workshop plus Memory Access Workshop","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/uchpc-maw/","http://portal.acm.org/proceedings/uchpc-maw/archive/"
-"Conference Proceedings","UCVP: Use of Context in Vision Processing","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/ucvp/","http://portal.acm.org/proceedings/ucvp/archive/"
-"Conference Proceedings","UIST: User Interface Software and Technology","","","","1988 (January 1988)","2013 (October 2013)","http://portal.acm.org/proceedings/uist/","http://portal.acm.org/proceedings/uist/archive/"
-"Conference Proceedings","ULSSIS: Ultra-Large-Scale Software-Intensive Systems","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/ulssis/","http://portal.acm.org/proceedings/ulssis/archive/"
-"Conference Proceedings","UML: Unified Modeling Language","","","","1999 (October 1999)","2000 (October 2000)","http://portal.acm.org/proceedings/uml/","http://portal.acm.org/proceedings/uml/archive/"
-"Conference Proceedings","UODIGS: User-Oriented Design of Interactive Graphics Systems","","","","1977 (October 1976)","1977 (October 1976)","http://portal.acm.org/proceedings/uodigs/","http://portal.acm.org/proceedings/uodigs/archive/"
-"Conference Proceedings","UP: Useful Patterns","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/up/","http://portal.acm.org/proceedings/up/archive/"
-"Conference Proceedings","UPGRADE: Use of P2P, GRID and Agents for the Development of Content Networks","","","","2007 (June 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/upgrade/","http://portal.acm.org/proceedings/upgrade/archive/"
-"Conference Proceedings","UXTV: Designing Interactive User Experiences for TV and Video","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/uxtv/","http://portal.acm.org/proceedings/uxtv/archive/"
-"Conference Proceedings","UbiComp: Ubiquitous Computing","","","","2002 (September 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/ubicomp/","http://portal.acm.org/proceedings/ubicomp/archive/"
-"Conference Proceedings","UbiMob: Mobility and Ubiquity Computing","","","","2004 (June 2004)","2009 (July 2009)","http://portal.acm.org/proceedings/ubimob/","http://portal.acm.org/proceedings/ubimob/archive/"
-"Conference Proceedings","UltraVis: Ultrascale Visualization","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ultravis/","http://portal.acm.org/proceedings/ultravis/archive/"
-"Conference Proceedings","VAKD: Visual Analytics and Knowledge Discovery","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/vakd/","http://portal.acm.org/proceedings/vakd/archive/"
-"Conference Proceedings","VANET: VehiculAr InterNETworking","","","","2004 (October 2004)","2013 (June 2013)","http://portal.acm.org/proceedings/vanet/","http://portal.acm.org/proceedings/vanet/archive/"
-"Conference Proceedings","VAST: Visual Analytics Science and Technology","","","","2001 (November 2001)","2009 (September 2009)","http://portal.acm.org/proceedings/vast/","http://portal.acm.org/proceedings/vast/archive/"
-"Conference Proceedings","VDTS: Virtualization Technology for Dependable Systems","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/vdts/","http://portal.acm.org/proceedings/vdts/archive/"
-"Conference Proceedings","VEE: Virtual Execution Environments","","","","2005 (June 2005)","2013 (March 2013)","http://portal.acm.org/proceedings/vee/","http://portal.acm.org/proceedings/vee/archive/"
-"Conference Proceedings","VG: Volume Graphics","","","","2003 (July 2003)","2005 (June 2005)","http://portal.acm.org/proceedings/vg/","http://portal.acm.org/proceedings/vg/archive/"
-"Conference Proceedings","VIS: Visualization","","","","1990 (October 1990)","2004 (October 2004)","http://portal.acm.org/proceedings/vis/","http://portal.acm.org/proceedings/vis/archive/"
-"Conference Proceedings","VISA: Virtualized Infrastructure Systems and Architectures","","","","2009 (August 2009)","2010 (September 2010)","http://portal.acm.org/proceedings/visa/","http://portal.acm.org/proceedings/visa/archive/"
-"Conference Proceedings","VISSYM: Symposium on Data Visualisation","","","","2003 (May 2003)","2004 (May 2004)","http://portal.acm.org/proceedings/vissym/","http://portal.acm.org/proceedings/vissym/archive/"
-"Conference Proceedings","VLDB: Very Large Data Bases","","","","1975 (September 1975)","2007 (September 2007)","http://portal.acm.org/proceedings/vldb/","http://portal.acm.org/proceedings/vldb/archive/"
-"Conference Proceedings","VLS-MCMR: Very-Large-Scale Multimedia Corpus, Mining and Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/vls-mcmr/","http://portal.acm.org/proceedings/vls-mcmr/archive/"
-"Conference Proceedings","VMIL: Virtual Machines and Intermediate Languages","","","","2007 (March 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/vmil/","http://portal.acm.org/proceedings/vmil/archive/"
-"Conference Proceedings","VMSec: Virtual Machine Security","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/vmsec/","http://portal.acm.org/proceedings/vmsec/archive/"
-"Conference Proceedings","VNBA: Vision Networks for Behaviour Analysis","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/vnba/","http://portal.acm.org/proceedings/vnba/archive/"
-"Conference Proceedings","VRCAI: Virtual Reality Continuum and its Applications in Industry","","","","2004 (June 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/vrcai/","http://portal.acm.org/proceedings/vrcai/archive/"
-"Conference Proceedings","VRML: Virtual Reality Modeling Language","","","","1995 (January 1995)","2000 (February 2000)","http://portal.acm.org/proceedings/vrml/","http://portal.acm.org/proceedings/vrml/archive/"
-"Conference Proceedings","VRST: Virtual Reality Software and Technology","","","","1997 (September 1997)","2013 (October 2013)","http://portal.acm.org/proceedings/vrst/","http://portal.acm.org/proceedings/vrst/archive/"
-"Conference Proceedings","VSSN: Video Surveillance and Sensor Networks","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/vssn/","http://portal.acm.org/proceedings/vssn/archive/"
-"Conference Proceedings","VTDC: Virtualization Technology in Distributed Computing","","","","2006 (November 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/vtdc/","http://portal.acm.org/proceedings/vtdc/archive/"
-"Conference Proceedings","VVS: Symposium on Volume Visualization","","","","1989 (May 1989)","2002 (October 2002)","http://portal.acm.org/proceedings/vvs/","http://portal.acm.org/proceedings/vvs/archive/"
-"Conference Proceedings","ValueTools: Performance Evaluation Methodologies and Tools","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","Valuetools: Performance Evaluation Methodologies and Tools","","","","2006 (October 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","VizSEC: Visualization for Computer Security","","","","2004 (October 2004)","2006 (November 2006)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","VizSec: Visualization for Cyber Security","","","","2010 (September 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","WA: Web Accessibility","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/wa/","http://portal.acm.org/proceedings/wa/archive/"
-"Conference Proceedings","WACC: Work Activities Coordination and Collaboration","","","","1999 (March 1999)","1999 (March 1999)","http://portal.acm.org/proceedings/wacc/","http://portal.acm.org/proceedings/wacc/archive/"
-"Conference Proceedings","WADAS: Washington Ada symposium on Ada","","","","1984 (March 1984)","1994 (July 1994)","http://portal.acm.org/proceedings/wadas/","http://portal.acm.org/proceedings/wadas/archive/"
-"Conference Proceedings","WADS: Workshop on Architecting Dependable Systems","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wads/","http://portal.acm.org/proceedings/wads/archive/"
-"Conference Proceedings","WBIA: Workshop on Binary Instrumentation and Applications","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/wbia/","http://portal.acm.org/proceedings/wbia/archive/"
-"Conference Proceedings","WBMA: Biometrics Methods and Applications","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/wbma/","http://portal.acm.org/proceedings/wbma/archive/"
-"Conference Proceedings","WCAE: Computer Architecture Education","","","","1995 (January 1995)","2007 (June 2007)","http://portal.acm.org/proceedings/wcae/","http://portal.acm.org/proceedings/wcae/archive/"
-"Conference Proceedings","WCCCE: Computing Education","","","","2009 (May 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/wccce/","http://portal.acm.org/proceedings/wccce/archive/"
-"Conference Proceedings","WCFLP: Workshop on Curry and Functional Logic Programming","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/wcflp/","http://portal.acm.org/proceedings/wcflp/archive/"
-"Conference Proceedings","WDTN: Delay-Tolerant Networking","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/wdtn/","http://portal.acm.org/proceedings/wdtn/archive/"
-"Conference Proceedings","WEASELTech: Empirical Assessment of Software Engineering Languages and Technologies","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/weaseltech/","http://portal.acm.org/proceedings/weaseltech/archive/"
-"Conference Proceedings","WEH: Exception Handling","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/weh/","http://portal.acm.org/proceedings/weh/archive/"
-"Conference Proceedings","WESS: Workshop on Embedded Systems Security","","","","2009 (October 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/wess/","http://portal.acm.org/proceedings/wess/archive/"
-"Conference Proceedings","WETSoM: Workshop on Emerging Trends in Software Metrics","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/wetsom/","http://portal.acm.org/proceedings/wetsom/archive/"
-"Conference Proceedings","WEUSE: Workshop on End-User Software Engineering","","","","2005 (May 2005)","2008 (May 2008)","http://portal.acm.org/proceedings/weuse/","http://portal.acm.org/proceedings/weuse/archive/"
-"Conference Proceedings","WEWST: Workshop on Enhanced Web Service Technologies","","","","2009 (November 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/wewst/","http://portal.acm.org/proceedings/wewst/archive/"
-"Conference Proceedings","WGP: Workshop on Generic Programming","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wgp/","http://portal.acm.org/proceedings/wgp/archive/"
-"Conference Proceedings","WH: Wireless Health","","","","2010 (October 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/wh/","http://portal.acm.org/proceedings/wh/archive/"
-"Conference Proceedings","WHPCF: High Performance Computational Finance","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/whpcf/","http://portal.acm.org/proceedings/whpcf/archive/"
-"Conference Proceedings","WI-IATW: Web Intelligence and Intelligent Agent Technology","","","","2006 (December 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/wi-iatw/","http://portal.acm.org/proceedings/wi-iatw/archive/"
-"Conference Proceedings","WI: Web Intelligence","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/wi/","http://portal.acm.org/proceedings/wi/archive/"
-"Conference Proceedings","WICON: Wireless internet","","","","2006 (August 2006)","2007 (October 2007)","http://portal.acm.org/proceedings/wicon/","http://portal.acm.org/proceedings/wicon/archive/"
-"Conference Proceedings","WICOW: Information Credibility on the Web","","","","2008 (October 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/wicow/","http://portal.acm.org/proceedings/wicow/archive/"
-"Conference Proceedings","WIDM: Web Information and Data Management","","","","1999 (November 1999)","2012 (November 2012)","http://portal.acm.org/proceedings/widm/","http://portal.acm.org/proceedings/widm/archive/"
-"Conference Proceedings","WIESS: Industrial Experiences with Systems Software ","","","","2000 (October 2000)","2002 (December 2002)","http://portal.acm.org/proceedings/wiess/","http://portal.acm.org/proceedings/wiess/archive/"
-"Conference Proceedings","WINITS: Wireless Networking for Intelligent Transportation Systems","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/winits/","http://portal.acm.org/proceedings/winits/archive/"
-"Conference Proceedings","WINTECH: Exerimental Evaluation and Characterization","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WISER: Workshop on Interdisciplinary Software Engineering Research","","","","2004 (November 2004)","2006 (May 2006)","http://portal.acm.org/proceedings/wiser/","http://portal.acm.org/proceedings/wiser/archive/"
-"Conference Proceedings","WISG: Workshop on Information Security Governance","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wisg/","http://portal.acm.org/proceedings/wisg/archive/"
-"Conference Proceedings","WISTP: Information Security Theory and Practices","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/wistp/","http://portal.acm.org/proceedings/wistp/archive/"
-"Conference Proceedings","WITS: Issues in the Theory of Security","","","","2005 (January 2005)","2005 (January 2005)","http://portal.acm.org/proceedings/wits/","http://portal.acm.org/proceedings/wits/archive/"
-"Conference Proceedings","WMASH: Wireless Mobile Applications and Services on WLAN Hotspots","","","","2003 (September 2003)","2006 (September 2006)","http://portal.acm.org/proceedings/wmash/","http://portal.acm.org/proceedings/wmash/archive/"
-"Conference Proceedings","WMC: Workshop on Mobile Commerce","","","","2001 (July 2001)","2002 (September 2002)","http://portal.acm.org/proceedings/wmc/","http://portal.acm.org/proceedings/wmc/archive/"
-"Conference Proceedings","WMI: Wireless Mobile Internet","","","","2001 (July 2001)","2001 (July 2001)","http://portal.acm.org/proceedings/wmi/","http://portal.acm.org/proceedings/wmi/archive/"
-"Conference Proceedings","WMISI: Workshop on Multimodal Interfaces in Semantic Interaction","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wmisi/","http://portal.acm.org/proceedings/wmisi/archive/"
-"Conference Proceedings","WMPI: Memory Performance Issues","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/wmpi/","http://portal.acm.org/proceedings/wmpi/archive/"
-"Conference Proceedings","WMUPS: Middleware for Ubiquitous and Pervasive Systems","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/wmups/","http://portal.acm.org/proceedings/wmups/archive/"
-"Conference Proceedings","WMuNeP: Wireless Multimedia and Performance Modeling","","","","2005 (October 2005)","2011 (October 2011)","http://portal.acm.org/proceedings/wmunep/","http://portal.acm.org/proceedings/wmunep/archive/"
-"Conference Proceedings","WNS: Workshop on NS-2: the IP Network Simulator","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/wns/","http://portal.acm.org/proceedings/wns/archive/"
-"Conference Proceedings","WOCCI: Workshop on Child, Computer and Interaction","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wocci/","http://portal.acm.org/proceedings/wocci/archive/"
-"Conference Proceedings","WODA: Workshop on Dynamic Analysis","","","","2005 (May 2005)","2012 (July 2012)","http://portal.acm.org/proceedings/woda/","http://portal.acm.org/proceedings/woda/archive/"
-"Conference Proceedings","WORKS: Workflows in Support of Large-Scale Science","","","","2007 (June 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/works/","http://portal.acm.org/proceedings/works/archive/"
-"Conference Proceedings","WORM: Workshop on Recurring Malcode","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/worm/","http://portal.acm.org/proceedings/worm/archive/"
-"Conference Proceedings","WOSN: Online Social Networks","","","","2008 (August 2008)","2012 (August 2012)","http://portal.acm.org/proceedings/wosn/","http://portal.acm.org/proceedings/wosn/archive/"
-"Conference Proceedings by Affiliated Organizations","WOSP: Software and Performance","","","","1998 (October 1998)","2013 (April 2013)","http://portal.acm.org/proceedings/wosp/","http://portal.acm.org/proceedings/wosp/archive/"
-"Conference Proceedings","WOSS: Self-Managed Systems","","","","2002 (November 2002)","2004 (October 2004)","http://portal.acm.org/proceedings/woss/","http://portal.acm.org/proceedings/woss/archive/"
-"Conference Proceedings","WOSSE: Workshop on Open Source Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wosse/","http://portal.acm.org/proceedings/wosse/archive/"
-"Conference Proceedings","WOWMOM: Workshop on Wireless Mobile Multimedia","","","","1998 (October 1998)","2006 (June 2006)","http://portal.acm.org/proceedings/wowmom/","http://portal.acm.org/proceedings/wowmom/archive/"
-"Conference Proceedings","WPES: Workshop on Privacy in the Electronic Society","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/wpes/","http://portal.acm.org/proceedings/wpes/archive/"
-"Conference Proceedings","WRAITS: Recent Advances on Intrusion-Tolerant Systems","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/wraits/","http://portal.acm.org/proceedings/wraits/archive/"
-"Conference Proceedings","WRASQ: Workshop on Automating Service Quality","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wrasq/","http://portal.acm.org/proceedings/wrasq/archive/"
-"Conference Proceedings","WREFT: Workshop on Radiation Effects and Fault Tolerance in Nanometer Technologies","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/wreft/","http://portal.acm.org/proceedings/wreft/archive/"
-"Conference Proceedings","WREN: Research on Enterprise Networking","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/wren/","http://portal.acm.org/proceedings/wren/archive/"
-"Conference Proceedings","WRT: Refactoring Tools","","","","2008 (October 2008)","2012 (June 2012)","http://portal.acm.org/proceedings/wrt/","http://portal.acm.org/proceedings/wrt/archive/"
-"Conference Proceedings","WS-REST: RESTful Design","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/ws-rest/","http://portal.acm.org/proceedings/ws-rest/archive/"
-"Conference Proceedings","WSC: Winter Simulation Conference","","","","1971 (January 1971)","2012 (December 2012)","http://portal.acm.org/proceedings/wsc/","http://portal.acm.org/proceedings/wsc/archive/"
-"Conference Proceedings","WSCD: Web Search Click Data","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/wscd/","http://portal.acm.org/proceedings/wscd/archive/"
-"Conference Proceedings","WSDM: Web Search and Data Mining","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/wsdm/","http://portal.acm.org/proceedings/wsdm/archive/"
-"Conference Proceedings","WSM: Social Media","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/wsm/","http://portal.acm.org/proceedings/wsm/archive/"
-"Conference Proceedings","WSMC: Web-Scale Multimedia Corpus","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/wsmc/","http://portal.acm.org/proceedings/wsmc/archive/"
-"Conference Proceedings","WSNA: Wireless Sensor Networks and Applications","","","","2002 (September 2002)","2003 (September 2003)","http://portal.acm.org/proceedings/wsna/","http://portal.acm.org/proceedings/wsna/archive/"
-"Conference Proceedings","WTAOP: Workshop on Testing Aspect-Oriented Programs","","","","2006 (July 2006)","2007 (March 2007)","http://portal.acm.org/proceedings/wtaop/","http://portal.acm.org/proceedings/wtaop/archive/"
-"Conference Proceedings","WUAUC: Universal Accessibility of Ubiquitous Computing","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/wuauc/","http://portal.acm.org/proceedings/wuauc/archive/"
-"Conference Proceedings","WUP: Warm Up Workshop for ACM/IEEE ICSE 2010","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/wup/","http://portal.acm.org/proceedings/wup/archive/"
-"Conference Proceedings","WWW: World Wide Web","","","","2001 (April 2001)","2013 (May 2013)","http://portal.acm.org/proceedings/www/","http://portal.acm.org/proceedings/www/archive/"
-"Conference Proceedings","Wands: Workflow Approaches to New Data-centric Science","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/wands/","http://portal.acm.org/proceedings/wands/archive/"
-"Conference Proceedings","Web3D: 3D Web Technology","","","","2001 (February 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/web3d/","http://portal.acm.org/proceedings/web3d/archive/"
-"Conference Proceedings","WebDB: Web and Databases","","","","2004 (June 2004)","2010 (June 2010)","http://portal.acm.org/proceedings/webdb/","http://portal.acm.org/proceedings/webdb/archive/"
-"Conference Proceedings","WebKDD/SNA-KDD: Web Mining and Social Network Analysis","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/webkdd/sna-kdd/","http://portal.acm.org/proceedings/webkdd/sna-kdd/archive/"
-"Conference Proceedings","WebMedia: Multimedia and the Web","","","","2005 (December 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/webmedia/","http://portal.acm.org/proceedings/webmedia/archive/"
-"Conference Proceedings","WebSE: Workshop on Web 2.0 for Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/webse/","http://portal.acm.org/proceedings/webse/archive/"
-"Conference Proceedings","WebScience: Collaborative and Collective Intelligence","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/webscience/","http://portal.acm.org/proceedings/webscience/archive/"
-"Conference Proceedings","WiMD: Medical Grade Wireless Networks","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/wimd/","http://portal.acm.org/proceedings/wimd/archive/"
-"Conference Proceedings","WiNS-DR: Wireless Networks and Systems for Developing Regions","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/wins-dr/","http://portal.acm.org/proceedings/wins-dr/archive/"
-"Conference Proceedings","WiNTECH: Wireless Network Tesbeds, Experimental Evaluation and Characterization","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WiSE: Wireless Security","","","","2002 (September 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/wise/","http://portal.acm.org/proceedings/wise/archive/"
-"Conference Proceedings","WiSec: Wireless Network Security","","","","2008 (March 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/wisec/","http://portal.acm.org/proceedings/wisec/archive/"
-"Conference Proceedings","WiTMeMo: Wireless Traffic Measurements and Modeling","","","","2005 (June 2005)","2006 (August 2006)","http://portal.acm.org/proceedings/witmemo/","http://portal.acm.org/proceedings/witmemo/archive/"
-"Conference Proceedings","WikiSym: International Symposium on Wikis","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/wikisym/","http://portal.acm.org/proceedings/wikisym/archive/"
-"Conference Proceedings","WoSQ: Workshop on Software Quality","","","","2005 (May 2005)","2011 (September 2011)","http://portal.acm.org/proceedings/wosq/","http://portal.acm.org/proceedings/wosq/archive/"
-"Conference Proceedings","WuWNeT: UnderWater Networks","","","","2006 (September 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/wuwnet/","http://portal.acm.org/proceedings/wuwnet/archive/"
-"Conference Proceedings","XIME-P: XQuery Implementation, Experience and Perpectives","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/xime-p/","http://portal.acm.org/proceedings/xime-p/archive/"
-"Conference Proceedings","XMLSEC: XML Security","","","","2002 (November 2002)","2003 (October 2003)","http://portal.acm.org/proceedings/xmlsec/","http://portal.acm.org/proceedings/xmlsec/archive/"
-"Conference Proceedings","dg.o: Digital Government Research","","","","2000 (May 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/dg.o/","http://portal.acm.org/proceedings/dg.o/archive/"
-"Conference Proceedings","e-Energy: Energy-Efficient Computing and Networking","","","","2010 (April 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/e-energy/","http://portal.acm.org/proceedings/e-energy/archive/"
-"Conference Proceedings","e-Forensics: Forensic Applications and Techniques in Telecommunications, Information, and Multimedia","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/e-forensics/","http://portal.acm.org/proceedings/e-forensics/archive/"
-"Conference Proceedings","eConf: e-Services and e-Systems","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/econf/","http://portal.acm.org/proceedings/econf/archive/"
-"Conference Proceedings","eCrime: eCrime Researchers Summit","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/ecrime/","http://portal.acm.org/proceedings/ecrime/archive/"
-"Conference Proceedings","eHeritage: eHeritage and Digital Art Preservation","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/eheritage/","http://portal.acm.org/proceedings/eheritage/archive/"
-"Conference Proceedings","eclipse: eclipse Technology eXchange","","","","2003 (October 2003)","2007 (October 2007)","http://portal.acm.org/proceedings/eclipse/","http://portal.acm.org/proceedings/eclipse/archive/"
-"Conference Proceedings","i-CREATe: Rehabilitation Engineering & Assistive Technology","","","","2007 (April 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/i-create/","http://portal.acm.org/proceedings/i-create/archive/"
-"Conference Proceedings","iNEWS: Improving Non English Web Searching","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/inews/","http://portal.acm.org/proceedings/inews/archive/"
-"Conference Proceedings","iiWAS: Information Integration and Web-based Applications & Services","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/iiwas/","http://portal.acm.org/proceedings/iiwas/archive/"
-"Conference Proceedings","mmCom: mmWave communications","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mmcom/","http://portal.acm.org/proceedings/mmcom/archive/"
-"Conference Proceedings","sOc-EUSAI: Smart Objects and Ambient Intelligence","","","","2005 (October 2005)","2005 (October 2005)","http://portal.acm.org/proceedings/soc-eusai/","http://portal.acm.org/proceedings/soc-eusai/archive/"
-"Conference Proceedings","years of DAC: Years of DAC","","","","1988 (June 1988)","1988 (June 1988)","http://portal.acm.org/proceedings/yearsofdac/","http://portal.acm.org/proceedings/yearsofdac/archive/"
\ No newline at end of file
diff --git a/server/files/sounds/original/normal-1491836330178.csv b/server/files/sounds/original/normal-1491836330178.csv
deleted file mode 100644 (file)
index 1bfa2f5..0000000
+++ /dev/null
@@ -1,1136 +0,0 @@
-"CONTENT TYPE","TITLE","ABBR","ISSN","e-ISSN","PUBLICATION RANGE: START","PUBLICATION RANGE: LATEST PUBLISHED","SHORTCUT URL","ARCHIVE URL"
-"Journals","ACM Computing Surveys ","ACM Comput. Surv.","0360-0300","1557-7341","Volume 1 Issue 1 (March 1969)","Volume 46 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J204","http://dl.acm.org/citation.cfm?id=J204&picked=prox"
-"Journals","ACM Journal of Computer Documentation ","ACM J. Comput. Doc.","1527-6805","1557-9441","Volume 24 Issue 1 (Feb. 1, 2000)","Volume 26 Issue 4 (November 2002)","http://dl.acm.org/citation.cfm?id=J24","http://dl.acm.org/citation.cfm?id=J24&picked=prox"
-"Journals","ACM Journal on Emerging Technologies in Computing Systems ","J. Emerg. Technol. Comput. Syst.","1550-4832","1550-4840","Volume 1 Issue 1 (April 2005)","Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics","http://dl.acm.org/citation.cfm?id=J967","http://dl.acm.org/citation.cfm?id=J967&picked=prox"
-"Journals","Journal of Data and Information Quality ","J. Data and Information Quality","1936-1955","1936-1963","Volume 1 Issue 1 (June 2009)","Volume 4 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J1191","http://dl.acm.org/citation.cfm?id=J1191&picked=prox"
-"Journals","Journal of Experimental Algorithmics ","J. Exp. Algorithmics","1084-6654","1084-6654","Volume 1 (1996)","Volume 18 (April 2013)","http://dl.acm.org/citation.cfm?id=J430","http://dl.acm.org/citation.cfm?id=J430&picked=prox"
-"Journals","Journal of the ACM ","J. ACM","0004-5411","1557-735X","Volume 1 Issue 1 (Jan. 1954)","Volume 60 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J401","http://dl.acm.org/citation.cfm?id=J401&picked=prox"
-"Journals","Journal on Computing and Cultural Heritage ","J. Comput. Cult. Herit.","1556-4673","1556-4711","Volume 1 Issue 1 (June 2008)","Volume 6 Issue 3 (July 2013)","http://dl.acm.org/citation.cfm?id=J1157","http://dl.acm.org/citation.cfm?id=J1157&picked=prox"
-"Journals","Journal on Educational Resources in Computing ","J. Educ. Resour. Comput.","1531-4278","1531-4278","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom","http://dl.acm.org/citation.cfm?id=J814","http://dl.acm.org/citation.cfm?id=J814&picked=prox"
-"Transactions","ACM Letters on Programming Languages and Systems ","ACM Lett. Program. Lang. Syst.","1057-4514","1557-7384","Volume 1 Issue 1 (March 1992)","Volume 2 Issue 1-4 (March&#8211;Dec. 1993)","http://dl.acm.org/citation.cfm?id=J513","http://dl.acm.org/citation.cfm?id=J513&picked=prox"
-"Transactions","ACM Transactions on Accessible Computing ","ACM Trans. Access. Comput.","1936-7228","1936-7236","Volume 1 Issue 1 (May 2008)","Volume 5 Issue 2 (October 2013)","http://dl.acm.org/citation.cfm?id=J1156","http://dl.acm.org/citation.cfm?id=J1156&picked=prox"
-"Transactions","ACM Transactions on Algorithms ","ACM Trans. Algorithms","1549-6325","1549-6333","Volume 1 Issue 1 (July 2005)","Volume 9 Issue 4 (September 2013)","http://dl.acm.org/citation.cfm?id=J982","http://dl.acm.org/citation.cfm?id=J982&picked=prox"
-"Transactions","ACM Transactions on Applied Perception ","ACM Trans. Appl. Percept.","1544-3558","1544-3965","Volume 1 Issue 1 (July 2004)","Volume 10 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J932","http://dl.acm.org/citation.cfm?id=J932&picked=prox"
-"Transactions","ACM Transactions on Architecture and Code Optimization ","ACM Trans. Archit. Code Optim.","1544-3566","1544-3973","Volume 1 Issue 1 (March 2004)","Volume 10 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J924","http://dl.acm.org/citation.cfm?id=J924&picked=prox"
-"Transactions","ACM Transactions on Asian Language Information Processing ","","1530-0226","1558-3430","Volume 1 Issue 1 (March 2002)","Volume 12 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J820","http://dl.acm.org/citation.cfm?id=J820&picked=prox"
-"Transactions","ACM Transactions on Autonomous and Adaptive Systems ","ACM Trans. Auton. Adapt. Syst.","1556-4665","1556-4703","Volume 1 Issue 1 (September 2006)","Volume 8 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1010","http://dl.acm.org/citation.cfm?id=J1010&picked=prox"
-"Transactions","ACM Transactions on Computation Theory ","ACM Trans. Comput. Theory","1942-3454","1942-3462","Volume 1 Issue 1 (February 2009)","Volume 5 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1190","http://dl.acm.org/citation.cfm?id=J1190&picked=prox"
-"Transactions","ACM Transactions on Computational Logic ","ACM Trans. Comput. Logic","1529-3785","1557-945X","Volume 1 Issue 1 (July 2000)","Volume 14 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J773","http://dl.acm.org/citation.cfm?id=J773&picked=prox"
-"Transactions","ACM Transactions on Computer Systems ","ACM Trans. Comput. Syst.","0734-2071","1557-7333","Volume 1 Issue 1 (Feb. 1983)","Volume 31 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J774","http://dl.acm.org/citation.cfm?id=J774&picked=prox"
-"Transactions","ACM Transactions on Computer-Human Interaction ","ACM Trans. Comput.-Hum. Interact.","1073-0516","1557-7325","Volume 1 Issue 1 (March 1994)","Volume 20 Issue 5 (November 2013)","http://dl.acm.org/citation.cfm?id=J756","http://dl.acm.org/citation.cfm?id=J756&picked=prox"
-"Transactions","ACM Transactions on Computing Education ","Trans. Comput. Educ.","","1946-6226","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1193","http://dl.acm.org/citation.cfm?id=J1193&picked=prox"
-"Transactions","ACM Transactions on Database Systems ","ACM Trans. Database Syst.","0362-5915","1557-4644","Volume 1 Issue 1 (March 1976)","Volume 38 Issue 4 (November 2013) - Invited papers issue","http://dl.acm.org/citation.cfm?id=J777","http://dl.acm.org/citation.cfm?id=J777&picked=prox"
-"Transactions","ACM Transactions on Design Automation of Electronic Systems ","ACM Trans. Des. Autom. Electron. Syst.","1084-4309","1557-7309","Volume 1 Issue 1 (Jan. 1996)","Volume 19 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J776","http://dl.acm.org/citation.cfm?id=J776&picked=prox"
-"Transactions","ACM Transactions on Economics and Computation","ACM Trans. Econ. Comput.","2167-8375","2167-8383","Volume 1 Issue 1 (January 2013)","Volume 1 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1359","http://dl.acm.org/citation.cfm?id=J1359&picked=prox"
-"Transactions","ACM Transactions on Embedded Computing Systems ","ACM Trans. Embed. Comput. Syst.","1539-9087","1558-3465","Volume 1 Issue 1 (November 2002)","Volume 13 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J840","http://dl.acm.org/citation.cfm?id=J840&picked=prox"
-"Transactions","ACM Transactions on Graphics ","ACM Trans. Graph.","0730-0301","1557-7368","Volume 1 Issue 1 (Jan. 1982)","Volume 32 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J778","http://dl.acm.org/citation.cfm?id=J778&picked=prox"
-"Transactions","ACM Transactions on Information Systems ","ACM Trans. Inf. Syst.","1046-8188","1558-2868","Volume 1 Issue 1 (Jan. 1983)","Volume 31 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J779","http://dl.acm.org/citation.cfm?id=J779&picked=prox"
-"Transactions","ACM Transactions on Information and System Security ","ACM Trans. Inf. Syst. Secur.","1094-9224","1557-7406","Volume 1 Issue 1 (Nov. 1998)","Volume 16 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J789","http://dl.acm.org/citation.cfm?id=J789&picked=prox"
-"Transactions","ACM Transactions on Intelligent Systems and Technology ","ACM Trans. Intell. Syst. Technol.","2157-6904","2157-6912","Volume 1 Issue 1 (October 2010)","Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining","http://dl.acm.org/citation.cfm?id=J1318","http://dl.acm.org/citation.cfm?id=J1318&picked=prox"
-"Transactions","ACM Transactions on Interactive Intelligent Systems ","ACM Trans. Interact. Intell. Syst.","2160-6455","2160-6463","Volume 1 Issue 1 (October 2011)","Volume 3 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1341","http://dl.acm.org/citation.cfm?id=J1341&picked=prox"
-"Transactions","ACM Transactions on Internet Technology ","ACM Trans. Internet Technol.","1533-5399","1557-6051","Volume 1 Issue 1 (Aug. 2001)","Volume 13 Issue 2 (December 2013)","http://dl.acm.org/citation.cfm?id=J780","http://dl.acm.org/citation.cfm?id=J780&picked=prox"
-"Transactions","ACM Transactions on Knowledge Discovery from Data ","ACM Trans. Knowl. Discov. Data","1556-4681","1556-472X","Volume 1 Issue 1 (March 2007)","Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012","http://dl.acm.org/citation.cfm?id=J1054","http://dl.acm.org/citation.cfm?id=J1054&picked=prox"
-"Transactions","ACM Transactions on Management Information Systems ","ACM Trans. Manage. Inf. Syst.","2158-656X","2158-6578","Volume 1 Issue 1 (December 2010)","Volume 4 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1320","http://dl.acm.org/citation.cfm?id=J1320&picked=prox"
-"Transactions","ACM Transactions on Mathematical Software ","ACM Trans. Math. Softw.","0098-3500","1557-7295","Volume 1 Issue 1 (March 1975)","Volume 40 Issue 1 (September 2013)","http://dl.acm.org/citation.cfm?id=J782","http://dl.acm.org/citation.cfm?id=J782&picked=prox"
-"Transactions","ACM Transactions on Modeling and Computer Simulation ","ACM Trans. Model. Comput. Simul.","1049-3301","1558-1195","Volume 1 Issue 1 (Jan. 1991)","Volume 23 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J781","http://dl.acm.org/citation.cfm?id=J781&picked=prox"
-"Transactions","ACM Transactions on Multimedia Computing, Communications, and Applications ","ACM Trans. Multimedia Comput. Commun. Appl.","1551-6857","1551-6865","Volume 1 Issue 1 (February 2005)","Volume 10 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J961","http://dl.acm.org/citation.cfm?id=J961&picked=prox"
-"Transactions","ACM Transactions on Programming Languages and Systems ","ACM Trans. Program. Lang. Syst.","0164-0925","1558-4593","Volume 1 Issue 1 (July 1979)","Volume 35 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J783","http://dl.acm.org/citation.cfm?id=J783&picked=prox"
-"Transactions","ACM Transactions on Reconfigurable Technology and Systems ","ACM Trans. Reconfigurable Technol. Syst.","1936-7406","1936-7414","Volume 1 Issue 1 (March 2008)","Volume 6 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1151","http://dl.acm.org/citation.cfm?id=J1151&picked=prox"
-"Transactions","ACM Transactions on Sensor Networks ","ACM Trans. Sen. Netw.","1550-4859","1550-4867","Volume 1 Issue 1 (August 2005)","Volume 10 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J981","http://dl.acm.org/citation.cfm?id=J981&picked=prox"
-"Transactions","ACM Transactions on Software Engineering and Methodology ","ACM Trans. Softw. Eng. Methodol.","1049-331X","1557-7392","Volume 1 Issue 1 (Jan. 1992)","Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance","http://dl.acm.org/citation.cfm?id=J790","http://dl.acm.org/citation.cfm?id=J790&picked=prox"
-"Transactions","ACM Transactions on Speech and Language Processing ","ACM Trans. Speech Lang. Process.","1550-4875","1550-4883","Volume 1 (November 2004)","Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2","http://dl.acm.org/citation.cfm?id=J957","http://dl.acm.org/citation.cfm?id=J957&picked=prox"
-"Transactions","ACM Transactions on Storage ","Trans. Storage","1553-3077","1553-3093","Volume 1 Issue 1 (February 2005)","Volume 9 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J960","http://dl.acm.org/citation.cfm?id=J960&picked=prox"
-"Transactions","ACM Transactions on the Web ","ACM Trans. Web","1559-1131","1559-114X","Volume 1 Issue 1 (May 2007)","Volume 7 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J1062","http://dl.acm.org/citation.cfm?id=J1062&picked=prox"
-"Transactions","IEEE/ACM Transactions on Computational Biology and Bioinformatics ","IEEE/ACM Trans. Comput. Biol. Bioinformatics","1545-5963","","Volume 1 Issue 1 (January 2004)","Volume 10 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J954","http://dl.acm.org/citation.cfm?id=J954&picked=prox"
-"Transactions","IEEE/ACM Transactions on Networking ","IEEE/ACM Trans. Netw.","1063-6692","","Volume 1 Issue 1 (Feb. 1993)","Volume 21 Issue 4 (August 2013)","http://dl.acm.org/citation.cfm?id=J771","http://dl.acm.org/citation.cfm?id=J771&picked=prox"
-"Magazines","ACM Inroads","ACM Inroads","2153-2184","2153-2192","Volume 1 Issue 1 (March 2010)","Volume 4 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1268","http://dl.acm.org/citation.cfm?id=J1268&picked=prox"
-"Magazines","Communications of the ACM","Commun. ACM","0001-0782","1557-7317","Volume 1 Issue 1 (Jan. 1958)","Volume 57 Issue 1 (January 2014)","http://dl.acm.org/citation.cfm?id=J79","http://dl.acm.org/citation.cfm?id=J79&picked=prox"
-"Magazines","Computers in Entertainment ","Comput. Entertain.","","1544-3574","Volume 1 Issue 1 (October 2003)","Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment","http://dl.acm.org/citation.cfm?id=J912","http://dl.acm.org/citation.cfm?id=J912&picked=prox"
-"Magazines","Queue","Queue","1542-7730","1542-7749","Volume 1 Issue 1 (March 2003)","Volume 11 Issue 12 (December 2013) - Large-Scale Implementations","http://dl.acm.org/citation.cfm?id=J882","http://dl.acm.org/citation.cfm?id=J882&picked=prox"
-"Magazines","StandardView","StandardView","1067-9936","1557-7376","Volume 1 Issue 1 (Sept. 1993)","Volume 6 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J741","http://dl.acm.org/citation.cfm?id=J741&picked=prox"
-"Magazines","Ubiquity","Ubiquity","","1530-2180","Volume 2000 Issue February (February 1 - February 28, 2000)","Volume 2013 Issue December (December 2013)","http://dl.acm.org/citation.cfm?id=J793","http://dl.acm.org/citation.cfm?id=J793&picked=prox"
-"Magazines","XRDS: Crossroads, The ACM Magazine for Students","XRDS","1528-4972","1528-4980","Volume 1 Issue 1 (September 1994)","Volume 20 Issue 2 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J1271","http://dl.acm.org/citation.cfm?id=J1271&picked=prox"
-"Magazines","eLearn","eLearn","","1535-394X","Volume 2001 Issue 5 (May 2001)","Volume 2013 Issue 12 (12-01-2013) - December 2013","http://dl.acm.org/citation.cfm?id=J815","http://dl.acm.org/citation.cfm?id=J815&picked=prox"
-"Magazines","intelligence","Intelligence","1523-8822","1557-9425","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J372","http://dl.acm.org/citation.cfm?id=J372&picked=prox"
-"Magazines","interactions","interactions","1072-5520","1558-3449","Volume 1 Issue 1 (Jan. 1994)","Volume 20 Issue 6 (November + December 2013)","http://dl.acm.org/citation.cfm?id=J373","http://dl.acm.org/citation.cfm?id=J373&picked=prox"
-"Magazines","netWorker","netWorker","1091-3556","1558-3473","Volume 1 Issue 1 (March/April 1997)","Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics","http://dl.acm.org/citation.cfm?id=J582","http://dl.acm.org/citation.cfm?id=J582&picked=prox"
-"Publications by Affiliated Organizations","ALGOL Bulletin","ALGOL Bull.","0084-6198","","Issue 1 (Mar. 1959)","Issue 52 (Aug. 1988)","http://dl.acm.org/citation.cfm?id=J33","http://dl.acm.org/citation.cfm?id=J33&picked=prox"
-"Publications by Affiliated Organizations","Computational Linguistics","Comput. Linguist.","0891-2017","","Volume 6 Issue 1 (January-March 1980)","Volume 39 Issue 2 (June 2013)","http://dl.acm.org/citation.cfm?id=J25","http://dl.acm.org/citation.cfm?id=J25&picked=prox"
-"Publications by Affiliated Organizations","Evolutionary Computation","Evol. Comput.","1063-6560","1530-9304","Volume 1 Issue 1 (Spring 1993)","Volume 21 Issue 4 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J277","http://dl.acm.org/citation.cfm?id=J277&picked=prox"
-"Publications by Affiliated Organizations","Journal of Computing Sciences in Colleges","J. Comput. Sci. Coll.","1937-4771","1937-4763","Volume 6 Issue 5 (May 1991)","Volume 29 Issue 3 (January 2014)","http://dl.acm.org/citation.cfm?id=J420","http://dl.acm.org/citation.cfm?id=J420&picked=prox"
-"Publications by Affiliated Organizations","Journal of Usability Studies","J. Usability Studies","1931-3357","","Volume 5 Issue 4 (August 2010)","Volume 6 Issue 3 (May 2011)","http://dl.acm.org/citation.cfm?id=J1340","http://dl.acm.org/citation.cfm?id=J1340&picked=prox"
-"Publications by Affiliated Organizations","Linux Journal","Linux J.","1075-3583","","Volume 1994 Issue 1es (March 1994)","Volume 2013 Issue 235 (November 2013)","http://dl.acm.org/citation.cfm?id=J508","http://dl.acm.org/citation.cfm?id=J508&picked=prox"
-"Publications by Affiliated Organizations","Mobile Networks and Applications","Mob. Netw. Appl.","1383-469X","","Volume 1 Issue 1 (Aug. 1996)","Volume 18 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J547","http://dl.acm.org/citation.cfm?id=J547&picked=prox"
-"Publications by Affiliated Organizations","Personal and Ubiquitous Computing","Personal Ubiquitous Comput.","1617-4909","","Volume 4 Issue 4 (August 2000)","Volume 17 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J822","http://dl.acm.org/citation.cfm?id=J822&picked=prox"
-"Publications by Affiliated Organizations","Proceedings of the VLDB Endowment","Proc. VLDB Endow.","2150-8097","","Volume 1 Issue 1 (August 2008)","Volume 6 Issue 14 (September 2013)","http://dl.acm.org/citation.cfm?id=J1174","http://dl.acm.org/citation.cfm?id=J1174&picked=prox"
-"Publications by Affiliated Organizations","The Journal of Machine Learning Research","J. Mach. Learn. Res.","1532-4435","1533-7928","Volume 1 (9/1/2001)","Volume 14 Issue 1 (January 2013)","http://dl.acm.org/citation.cfm?id=J832","http://dl.acm.org/citation.cfm?id=J832&picked=prox"
-"Publications by Affiliated Organizations","The VLDB Journal &#8212; The International Journal on Very Large Data Bases","The VLDB Journal","1066-8888","","Volume 1 Issue 1 (July 1992)","Volume 22 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J869","http://dl.acm.org/citation.cfm?id=J869&picked=prox"
-"Publications by Affiliated Organizations","Wireless Networks","Wirel. Netw.","1022-0038","","Volume 1 Issue 1 (Feb. 1995)","Volume 19 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J804","http://dl.acm.org/citation.cfm?id=J804&picked=prox"
-"SIG Newsletters","3C ON-LINE","3C ON-LINE","1078-2192","","Volume 1 Issue 1 (Oct. 1994)","Volume 4 Issue 4 (Oct., 1997)","http://dl.acm.org/citation.cfm?id=J685","http://dl.acm.org/citation.cfm?id=J685&picked=prox"
-"SIG Newsletters","ACM Communications in Computer Algebra","ACM Commun. Comput. Algebra","1932-2240","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J1000","http://dl.acm.org/citation.cfm?id=J1000&picked=prox"
-"SIG Newsletters","ACM Lisp Bulletin","Lisp Bull.","","","Volume 4 Issue 9 (September 1969)","Issue 3 (December 1979)","http://dl.acm.org/citation.cfm?id=J1166","http://dl.acm.org/citation.cfm?id=J1166&picked=prox"
-"SIG Newsletters","ACM SIGACCESS Accessibility and Computing","SIGACCESS Access. Comput.","1558-2337","1558-1187","Issue 77-78 (Sept. 2003 - Jan. 2004)","Issue 107 (September 2013)","http://dl.acm.org/citation.cfm?id=J956","http://dl.acm.org/citation.cfm?id=J956&picked=prox"
-"SIG Newsletters","ACM SIGACT News","SIGACT News","0163-5700","","Issue 1 (April 1969)","Volume 44 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J697","http://dl.acm.org/citation.cfm?id=J697&picked=prox"
-"SIG Newsletters","ACM SIGAPL APL Quote Quad","SIGAPL APL Quote Quad","0163-6006","","Volume 3 Issue 1 (June 1971)","Volume 35 Issue 4 (December 2007)","http://dl.acm.org/citation.cfm?id=J46","http://dl.acm.org/citation.cfm?id=J46&picked=prox"
-"SIG Newsletters","ACM SIGAPP Applied Computing Review","SIGAPP Appl. Comput. Rev.","1559-6915","1931-0161","Volume 1 Issue 1 (Winter 1993)","Volume 13 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J693","http://dl.acm.org/citation.cfm?id=J693&picked=prox"
-"SIG Newsletters","ACM SIGARCH Computer Architecture News","SIGARCH Comput. Archit. News","0163-5964","","Volume 1 Issue 1 (January 1972)","Volume 41 Issue 3 (June 2013) - ICSA '13","http://dl.acm.org/citation.cfm?id=J89","http://dl.acm.org/citation.cfm?id=J89&picked=prox"
-"SIG Newsletters","ACM SIGART Bulletin","SIGART Bull.","0163-5719","","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J686","http://dl.acm.org/citation.cfm?id=J686&picked=prox"
-"SIG Newsletters","ACM SIGAda Ada Letters","Ada Lett.","1094-3641","","Volume I Issue 1 (July-August 1981)","Volume 33 Issue 2 (August 2013)","http://dl.acm.org/citation.cfm?id=J32","http://dl.acm.org/citation.cfm?id=J32&picked=prox"
-"SIG Newsletters","ACM SIGBED Review","SIGBED Rev.","","1551-3688","Volume 1 Issue 1 (April 2004)","Volume 10 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J994","http://dl.acm.org/citation.cfm?id=J994&picked=prox"
-"SIG Newsletters","ACM SIGBIO Newsletter","SIGBIO Newsl.","0163-5697","","Volume 1 Issue 2 (October 1976)","Volume 21 Issue 1 (April 2001)","http://dl.acm.org/citation.cfm?id=J698","http://dl.acm.org/citation.cfm?id=J698&picked=prox"
-"SIG Newsletters","ACM SIGBioinformatics Record","ACM SIGBioinformatics Rec.","2331-9291","2159-1210","Volume 1 Issue 1 (January 2011)","Volume 3 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1323","http://dl.acm.org/citation.cfm?id=J1323&picked=prox"
-"SIG Newsletters","ACM SIGCAPH Computers and the Physically Handicapped","SIGCAPH Comput. Phys. Handicap.","0163-5727","","Issue 5 (Fall 1971)","Issue 76 (June 2003)","http://dl.acm.org/citation.cfm?id=J298","http://dl.acm.org/citation.cfm?id=J298&picked=prox"
-"SIG Newsletters","ACM SIGCAS Computers and Society","SIGCAS Comput. Soc.","0095-2737","","Volume 1 Issue 2 (April 1970)","Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry","http://dl.acm.org/citation.cfm?id=J198","http://dl.acm.org/citation.cfm?id=J198&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin","SIGCHI Bull.","0736-6906","","Volume 14 Issue 1 (July 1982)","Volume 32 Issue 2 (April 2000)","http://dl.acm.org/citation.cfm?id=J687","http://dl.acm.org/citation.cfm?id=J687&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin - a supplement to <i>interactions</i>","SIGCHI Bull.: suppl. <i>interactions</i>","0736-6906","1558-1217","Volume 2000 (July/August 2000)","Volume 2003 (May-June 2003)","http://dl.acm.org/citation.cfm?id=J122","http://dl.acm.org/citation.cfm?id=J122&picked=prox"
-"SIG Newsletters","ACM SIGCOMM Computer Communication Review","SIGCOMM Comput. Commun. Rev.","0146-4833","","Volume 1 Issue 2 (March 1970)","Volume 43 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J101","http://dl.acm.org/citation.cfm?id=J101&picked=prox"
-"SIG Newsletters","ACM SIGCPR Computer Personnel","SIGCPR Comput. Pers.","0160-2497","","Volume 2 Issue 1 (July 1964)","Volume 20 Issue 4 (October 1999)","http://dl.acm.org/citation.cfm?id=J188","http://dl.acm.org/citation.cfm?id=J188&picked=prox"
-"SIG Newsletters","ACM SIGCSE Bulletin","SIGCSE Bull.","0097-8418","","Volume 1 Issue 1 (February 1969)","Volume 45 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J688","http://dl.acm.org/citation.cfm?id=J688&picked=prox"
-"SIG Newsletters","ACM SIGCSIM Installation Management Review","Install Manag. Rev.","0163-5972","","Issue 1 (August 1969)","Volume 6 Issue 4 (December 1977)","http://dl.acm.org/citation.cfm?id=J959","http://dl.acm.org/citation.cfm?id=J959&picked=prox"
-"SIG Newsletters","ACM SIGCUE Outlook","SIGCUE Outlook","0163-5735","","Volume 4 Issue 1 (February 1970)","Volume 27 Issue 3 (September 2001)","http://dl.acm.org/citation.cfm?id=J678","http://dl.acm.org/citation.cfm?id=J678&picked=prox"
-"SIG Newsletters","ACM SIGDA Newsletter","SIGDA Newsl.","0163-5743","","Volume 1 Issue 1 (January 1971)","Volume 40 Issue 9 (September 2010)","http://dl.acm.org/citation.cfm?id=J700","http://dl.acm.org/citation.cfm?id=J700&picked=prox"
-"SIG Newsletters","ACM SIGDOC Asterisk Journal of Computer Documentation","SIGDOC Asterisk J. Comput. Doc.","0731-1001","","Volume 2 Issue 5 (October 1975)","Volume 12 Issue 4 (December 2011)","http://dl.acm.org/citation.cfm?id=J62","http://dl.acm.org/citation.cfm?id=J62&picked=prox"
-"SIG Newsletters","ACM SIGEVOlution","SIGEVOlution","","1931-8499","Volume 1 Issue 1 (April 2006)","Volume 6 Issue 1 (July 2012)","http://dl.acm.org/citation.cfm?id=J999","http://dl.acm.org/citation.cfm?id=J999&picked=prox"
-"SIG Newsletters","ACM SIGFORTH Newsletter","SIGFORTH Newsl.","1047-4544","","Volume 1 Issue 1 (Spring 1989)","Volume 4 Issue 4 (Dec. 1994)","http://dl.acm.org/citation.cfm?id=J696","http://dl.acm.org/citation.cfm?id=J696&picked=prox"
-"SIG Newsletters","ACM SIGGRAPH Computer Graphics","SIGGRAPH Comput. Graph.","0097-8930","","Volume 3 Issue 3 (Fal 1969)","Volume 45 Issue 1 (February 2011)","http://dl.acm.org/citation.cfm?id=J166","http://dl.acm.org/citation.cfm?id=J166&picked=prox"
-"SIG Newsletters","ACM SIGGROUP Bulletin","SIGGROUP Bull.","","","Volume 18 Issue 1 (April 1997)","Volume 25 Issue 2 (February 2005) - Special issue on virtual communities","http://dl.acm.org/citation.cfm?id=J702","http://dl.acm.org/citation.cfm?id=J702&picked=prox"
-"SIG Newsletters","ACM SIGHIT Record","SIGHIT Rec.","","2158-8813","Volume 1 Issue 1 (March 2011)","Volume 2 Issue 2 (September 2012)","http://dl.acm.org/citation.cfm?id=J1322","http://dl.acm.org/citation.cfm?id=J1322&picked=prox"
-"SIG Newsletters","ACM SIGHPC Connect","ACM SIGHPC Connect","","2168-135X","Volume 1 Issue 1 (June 2012)","Volume 2 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J1356","http://dl.acm.org/citation.cfm?id=J1356&picked=prox"
-"SIG Newsletters","ACM SIGICE Bulletin","SIGICE Bull.","0893-2875","","Volume 19 Issue 3 (Feb. 1994)","Volume 23 Issue 2 (Oct. 1997)","http://dl.acm.org/citation.cfm?id=J694","http://dl.acm.org/citation.cfm?id=J694&picked=prox"
-"SIG Newsletters","ACM SIGIR Forum","SIGIR Forum","0163-5840","","Volume 6 Issue 2 (Summer 1971)","Volume 47 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J701","http://dl.acm.org/citation.cfm?id=J701&picked=prox"
-"SIG Newsletters","ACM SIGITE Newsletter","SIGITE Newsl.","2166-1685","1550-1469","Volume 2 Issue 1 (Spring 2004)","Volume 9 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J977","http://dl.acm.org/citation.cfm?id=J977&picked=prox"
-"SIG Newsletters","ACM SIGKDD Explorations Newsletter","SIGKDD Explor. Newsl.","1931-0145","1931-0153","Volume 1 Issue 1 (June 1999)","Volume 14 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J721","http://dl.acm.org/citation.cfm?id=J721&picked=prox"
-"SIG Newsletters","ACM SIGLASH Newsletter","SIGLASH Newsl.","0036-147X","1931-1095","Volume 10 Issue 1-2 (December 1976/March 1977)","Volume 14 Issue 1-2 (March/June 1981)","http://dl.acm.org/citation.cfm?id=J958","http://dl.acm.org/citation.cfm?id=J958&picked=prox"
-"SIG Newsletters","ACM SIGMAP Bulletin","SIGMAP Bull.","0163-5786","1931-1184","Issue 5 (June 1969)","Issue 32 (April 1983)","http://dl.acm.org/citation.cfm?id=J952","http://dl.acm.org/citation.cfm?id=J952&picked=prox"
-"SIG Newsletters","ACM SIGMETRICS Performance Evaluation Review","SIGMETRICS Perform. Eval. Rev.","0163-5999","","Volume 1 Issue 1 (March 1972)","Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013)","http://dl.acm.org/citation.cfm?id=J618","http://dl.acm.org/citation.cfm?id=J618&picked=prox"
-"SIG Newsletters","ACM SIGMICRO Newsletter","SIGMICRO Newsl.","1050-916X","","Volume 2 Issue 4 (January 1972)","Volume 23 Issue 1-2 (Dec. 1992)","http://dl.acm.org/citation.cfm?id=J703","http://dl.acm.org/citation.cfm?id=J703&picked=prox"
-"SIG Newsletters","ACM SIGMINI Newsletter","SIGMINI Newsl.","0163-576X","","Volume 1 Issue 1 (July 1975)","Volume 4 Issue 4 (August 1978)","http://dl.acm.org/citation.cfm?id=J951","http://dl.acm.org/citation.cfm?id=J951&picked=prox"
-"SIG Newsletters","ACM SIGMIS Database","SIGMIS Database","0095-0033","","Volume 1 Issue 2 (Summer 1969)","Volume 44 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J219","http://dl.acm.org/citation.cfm?id=J219&picked=prox"
-"SIG Newsletters","ACM SIGMOBILE Mobile Computing and Communications Review","SIGMOBILE Mob. Comput. Commun. Rev.","1559-1662","1931-1222","Volume 1 Issue 1 (April 1997)","Volume 17 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J548","http://dl.acm.org/citation.cfm?id=J548&picked=prox"
-"SIG Newsletters","ACM SIGMOD Record","SIGMOD Rec.","0163-5808","","Volume 1 Issue 1 (August 1969)","Volume 42 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J689","http://dl.acm.org/citation.cfm?id=J689&picked=prox"
-"SIG Newsletters","ACM SIGMultimedia Records","SIGMultimedia Rec.","","1947-4598","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1232","http://dl.acm.org/citation.cfm?id=J1232&picked=prox"
-"SIG Newsletters","ACM SIGNUM Newsletter","SIGNUM Newsl.","0163-5778","","Volume 1 Issue 1 (June 1966)","Volume 33 Issue 2 (April 1, 1998)","http://dl.acm.org/citation.cfm?id=J690","http://dl.acm.org/citation.cfm?id=J690&picked=prox"
-"SIG Newsletters","ACM SIGOA Newsletter","ACM SIGOA Newsletter","0737-819X","","Volume 1 Issue 1 (March 1980)","Volume 7 Issue 1 (Spring 1986)","http://dl.acm.org/citation.cfm?id=J915","http://dl.acm.org/citation.cfm?id=J915&picked=prox"
-"SIG Newsletters","ACM SIGOIS Bulletin","SIGOIS Bull.","0894-0819","","Volume 7 Issue 2-3 (Summer-Fall 1986)","Volume 17 Issue 3 (Dec. 1996)","http://dl.acm.org/citation.cfm?id=J705","http://dl.acm.org/citation.cfm?id=J705&picked=prox"
-"SIG Newsletters","ACM SIGOPS Operating Systems Review","SIGOPS Oper. Syst. Rev.","0163-5980","","Volume 3 Issue 1 (February 1969)","Volume 47 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J597","http://dl.acm.org/citation.cfm?id=J597&picked=prox"
-"SIG Newsletters","ACM SIGPC Notes","SIGPC Note.","0163-5816","","Volume 1 Issue 2 (Summer 1978)","Volume 5 Issue 1-2 (Fall/Winter 1982/1983)","http://dl.acm.org/citation.cfm?id=J950","http://dl.acm.org/citation.cfm?id=J950&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Fortran Forum","SIGPLAN Fortran Forum","1061-7264","1931-1311","Volume 1 Issue 1 (July 1982)","Volume 32 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J286","http://dl.acm.org/citation.cfm?id=J286&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Lisp Pointers","SIGPLAN Lisp Pointers","1045-3563","","Volume 1 Issue 1 (April-May 1987)","Volume VIII Issue 2 (May-Aug., 1995)","http://dl.acm.org/citation.cfm?id=J509","http://dl.acm.org/citation.cfm?id=J509&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Notices","SIGPLAN Not.","0362-1340","1558-1160","Volume 1 Issue 8 (August 1966)","Volume 48 Issue 11 (November 2013) - ISMM '13","http://dl.acm.org/citation.cfm?id=J706","http://dl.acm.org/citation.cfm?id=J706&picked=prox"
-"SIG Newsletters","ACM SIGPLAN OOPS Messenger","SIGPLAN OOPS Mess.","1055-6400","","Volume 1 Issue 1 (Aug. 1990)","Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems","http://dl.acm.org/citation.cfm?id=J594","http://dl.acm.org/citation.cfm?id=J594&picked=prox"
-"SIG Newsletters","ACM SIGSAC Review","SIGSAC Rev.","0277-920X","","Volume 1 Issue 1 (Winter 1981-1982)","Volume 15 Issue 2 (April 1997)","http://dl.acm.org/citation.cfm?id=J691","http://dl.acm.org/citation.cfm?id=J691&picked=prox"
-"SIG Newsletters","ACM SIGSAM Bulletin","SIGSAM Bull.","0163-5824","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J707","http://dl.acm.org/citation.cfm?id=J707&picked=prox"
-"SIG Newsletters","ACM SIGSIM Simulation Digest","SIGSIM Simul. Dig.","0163-6103","","Volume 3 Issue 1 (September 1971)","Volume 28 Issue 1 (July 1998)","http://dl.acm.org/citation.cfm?id=J711","http://dl.acm.org/citation.cfm?id=J711&picked=prox"
-"SIG Newsletters","ACM SIGSMALL Newsletter","SIGSMALL Newsl.","0272-720X","","Volume 4 Issue 5 (October 1978)","Volume 10 Issue 4 (October 1984)","http://dl.acm.org/citation.cfm?id=J949","http://dl.acm.org/citation.cfm?id=J949&picked=prox"
-"SIG Newsletters","ACM SIGSMALL/PC Notes","SIGSMALL/PC Notes","0893-2875","","Volume 11 Issue 3 (Aug. 1985)","Volume 19 Issue 2 (Nov. 1993)","http://dl.acm.org/citation.cfm?id=J692","http://dl.acm.org/citation.cfm?id=J692&picked=prox"
-"SIG Newsletters","ACM SIGSOC Bulletin","SIGSOC Bull.","0163-5794","","Volume 1 Issue 1 (March 1969)","Volume 13 Issue 4 (April 1982)","http://dl.acm.org/citation.cfm?id=J948","http://dl.acm.org/citation.cfm?id=J948&picked=prox"
-"SIG Newsletters","ACM SIGSOFT Software Engineering Notes","SIGSOFT Softw. Eng. Notes","0163-5948","","Volume 1 Issue 1 (May 1976)","Volume 38 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J728","http://dl.acm.org/citation.cfm?id=J728&picked=prox"
-"SIG Newsletters","ACM SIGUCCS Newsletter","SIGUCCS Newsl.","0736-6892","","Volume 1 Issue 1 (January 1965)","Volume 28 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J708","http://dl.acm.org/citation.cfm?id=J708&picked=prox"
-"SIG Newsletters","ACM SIGUCCS plugged in","ACM SIGUCCS plugged in","","2168-8516","Volume 1 Issue 1 (Summer 2012)","Volume 2 Issue 1 (Summer 2013)","http://dl.acm.org/citation.cfm?id=J1358","http://dl.acm.org/citation.cfm?id=J1358&picked=prox"
-"SIG Newsletters","ACM SIGWEB Newsletter","SIGWEB Newsl.","1931-1745","1931-1435","Volume 1 Issue 1 (March 1992)","Issue Autumn (Autumn 2013)","http://dl.acm.org/citation.cfm?id=J507","http://dl.acm.org/citation.cfm?id=J507&picked=prox"
-"SIG Newsletters","ACM SIGecom Exchanges","SIGecom Exch.","","1551-9031","Volume 1 Issue 1 (Summer, 2000)","Volume 12 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J684","http://dl.acm.org/citation.cfm?id=J684&picked=prox"
-"SIG Newsletters","Communication Design Quarterly Review","Commun. Des. Q. Rev","2166-1200","2166-1642","Volume 2 Issue 1 (March 2001)","Volume 2 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J1351","http://dl.acm.org/citation.cfm?id=J1351&picked=prox"
-"SIG Newsletters","SIGSPATIAL Special","SIGSPATIAL Special","","1946-7729","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J1196","http://dl.acm.org/citation.cfm?id=J1196&picked=prox"
-"Conference Proceedings","3DOR: 3D Object Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dor/","http://portal.acm.org/proceedings/3dor/archive/"
-"Conference Proceedings","3DVP: 3D Video Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dvp/","http://portal.acm.org/proceedings/3dvp/archive/"
-"Conference Proceedings","A-MOST: Advances in Model-Based Testing","","","","2005 (May 2005)","2007 (July 2007)","http://portal.acm.org/proceedings/a-most/","http://portal.acm.org/proceedings/a-most/archive/"
-"Conference Proceedings","A2CWiC: Amrita ACM-W Celebration on Women in Computing in India","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/a2cwic/","http://portal.acm.org/proceedings/a2cwic/archive/"
-"Conference Proceedings","AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/aaa-idea/","http://portal.acm.org/proceedings/aaa-idea/archive/"
-"Conference Proceedings","AADEBUG: Automated analysis-driven debugging","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/aadebug/","http://portal.acm.org/proceedings/aadebug/archive/"
-"Conference Proceedings","AAMAS: Autonomous Agents and Multiagent Systems","","","","2002 (July 2002)","2013 (May 2013)","http://portal.acm.org/proceedings/aamas/","http://portal.acm.org/proceedings/aamas/archive/"
-"Conference Proceedings","ACDC: Automated Control for Datacenters and Clouds","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/acdc/","http://portal.acm.org/proceedings/acdc/archive/"
-"Conference Proceedings","ACET: Advances in Computer Entertainment Technology","","","","2004 (September 2004)","2011 (November 2011)","http://portal.acm.org/proceedings/ace/","http://portal.acm.org/proceedings/ace/archive/"
-"Conference Proceedings","ACISNR: Applications of Computer and Information Sciences to Nature Research","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/acisnr/","http://portal.acm.org/proceedings/acisnr/archive/"
-"Conference Proceedings","ACL2: ACL2 Theorem Prover and its Applications","","","","2006 (August 2006)","2009 (May 2009)","http://portal.acm.org/proceedings/acl2/","http://portal.acm.org/proceedings/acl2/archive/"
-"Conference Proceedings","ACM DEV: Computing for Development","","","","2010 (December 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/acmdev/","http://portal.acm.org/proceedings/acmdev/archive/"
-"Conference Proceedings","ACM POLICY: ACM POLICY","","","","1998 (June 1998)","1998 (June 1998)","http://portal.acm.org/proceedings/acmpolicy/","http://portal.acm.org/proceedings/acmpolicy/archive/"
-"Conference Proceedings","ACM SE: Annual Southeast Regional Conference","","","","1967 (June 1967)","2013 (April 2013)","http://portal.acm.org/proceedings/acmse/","http://portal.acm.org/proceedings/acmse/archive/"
-"Conference Proceedings","ACM-BCS: ACM-BCS","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/acm-bcs/","http://portal.acm.org/proceedings/acm-bcs/archive/"
-"Conference Proceedings","ACM: ACM Annual Conference/Annual Meeting","","","","1952 (May 1952)","1987 (December 1987)","http://portal.acm.org/proceedings/acm/","http://portal.acm.org/proceedings/acm/archive/"
-"Conference Proceedings","ACPIS: Aspects, Components, and Patterns for Infrastructure Software","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/acpis/","http://portal.acm.org/proceedings/acpis/archive/"
-"Conference Proceedings","ACSAC: Annual Computer Security Applications Conference","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/acsac/","http://portal.acm.org/proceedings/acsac/archive/"
-"Conference Proceedings","ACSE: Australasian Conference on Computing Education","","","","1996 (July 1996)","2010 (January 2010)","http://portal.acm.org/proceedings/acse/","http://portal.acm.org/proceedings/acse/archive/"
-"Conference Proceedings","ACoM: Assessment of Contemporary Modularization Techniques","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/acom/","http://portal.acm.org/proceedings/acom/archive/"
-"Conference Proceedings","ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/adamus/","http://portal.acm.org/proceedings/adamus/archive/"
-"Conference Proceedings","ADKDD: Data Mining and Audience Intelligence for Advertising","","","","2007 (August 2007)","2013 (August 2013)","http://portal.acm.org/proceedings/adkdd/","http://portal.acm.org/proceedings/adkdd/archive/"
-"Conference Proceedings","ADPUC: Advanced Data Processing in Ubiquitous Computing ","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/adpuc/","http://portal.acm.org/proceedings/adpuc/archive/"
-"Conference Proceedings","AFFINE: Affective-Aware Virtual Agents and Social Robots","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/affine/","http://portal.acm.org/proceedings/affine/archive/"
-"Conference Proceedings","AFIPS: AFIPS","","","","1955 (March 1955)","1984 (July 1984)","http://portal.acm.org/proceedings/afips/","http://portal.acm.org/proceedings/afips/archive/"
-"Conference Proceedings","AFM: Automated Formal Methods","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/afm/","http://portal.acm.org/proceedings/afm/archive/"
-"Conference Proceedings","AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa","","","","2001 (November 2001)","2010 (June 2010)","http://portal.acm.org/proceedings/afrigraph/","http://portal.acm.org/proceedings/afrigraph/archive/"
-"Conference Proceedings","AGENTS: Autonomous Agents","","","","1997 (February 1997)","2001 (May 2001)","http://portal.acm.org/proceedings/agents/","http://portal.acm.org/proceedings/agents/archive/"
-"Conference Proceedings","AH: Augmented Human","","","","2010 (April 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/ah/","http://portal.acm.org/proceedings/ah/archive/"
-"Conference Proceedings","AIEE-IRE: AIEE-IRE","","","","1951 (December 1951)","1962 (May 1962)","http://portal.acm.org/proceedings/aiee-ire/","http://portal.acm.org/proceedings/aiee-ire/archive/"
-"Conference Proceedings","AIEMPro: Automated Information Extraction in Media Production","","","","2010 (October 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/aiempro/","http://portal.acm.org/proceedings/aiempro/archive/"
-"Conference Proceedings","AIGC: Artificial Intelligence in Grid Computing","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/aigc/","http://portal.acm.org/proceedings/aigc/archive/"
-"Conference Proceedings","AINTEC: Asian Conference on Internet Engineering","","","","2008 (November 2008)","2012 (November 2012)","http://portal.acm.org/proceedings/aintec/","http://portal.acm.org/proceedings/aintec/archive/"
-"Conference Proceedings","AIPACa: Applications of Private and Anonymous Communications","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/aipaca/","http://portal.acm.org/proceedings/aipaca/archive/"
-"Conference Proceedings","AIRS: Asia Information Retrieval Symposium ","","","","2008 (January 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/airs/","http://portal.acm.org/proceedings/airs/archive/"
-"Conference Proceedings","AIRWeb: Adversarial Information Retrieval on the Web","","","","2007 (May 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/airweb/","http://portal.acm.org/proceedings/airweb/archive/"
-"Conference Proceedings","AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/aisc/mkm/calculemus/","http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/"
-"Conference Proceedings","AISec: Artificial Intelligence and Security","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/aisec/","http://portal.acm.org/proceedings/aisec/archive/"
-"Conference Proceedings","ALICE: Alice Symposium","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/alice/","http://portal.acm.org/proceedings/alice/archive/"
-"Conference Proceedings","AM: Audio Mostly","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/am/","http://portal.acm.org/proceedings/am/archive/"
-"Conference Proceedings","AMC: Ambient Media Computing","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/amc/","http://portal.acm.org/proceedings/amc/archive/"
-"Conference Proceedings","AMCMM: Audio and Music Computing Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/amcmm/","http://portal.acm.org/proceedings/amcmm/archive/"
-"Conference Proceedings","ANCS: Architectures for Networking and Communications Systems","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/ancs/","http://portal.acm.org/proceedings/ancs/archive/"
-"Conference Proceedings","AND: Analytics for Noisy Unstructured Text Data","","","","2008 (July 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/and/","http://portal.acm.org/proceedings/and/archive/"
-"Conference Proceedings","ANNA: Analysis of Neural Network Applications","","","","1991 (May 1991)","1991 (May 1991)","http://portal.acm.org/proceedings/anna/","http://portal.acm.org/proceedings/anna/archive/"
-"Conference Proceedings","ANSS: Annual Simulation Symposium","","","","1973 (June 1973)","2013 (April 2013)","http://portal.acm.org/proceedings/anss/","http://portal.acm.org/proceedings/anss/archive/"
-"Conference Proceedings","AOM: Aspect-Oriented Modeling","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/aom/","http://portal.acm.org/proceedings/aom/archive/"
-"Conference Proceedings","AOMD: Aspect Oriented Middleware Development","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/aomd/","http://portal.acm.org/proceedings/aomd/archive/"
-"Conference Proceedings","AOSD: Aspect-Oriented Software Development","","","","2002 (April 2002)","2013 (March 2013)","http://portal.acm.org/proceedings/aosd/","http://portal.acm.org/proceedings/aosd/archive/"
-"Conference Proceedings","APGV: Applied Perception in Graphics and Visualization","","","","2004 (August 2004)","2011 (August 2011)","http://portal.acm.org/proceedings/apgv/","http://portal.acm.org/proceedings/apgv/archive/"
-"Conference Proceedings","APL: APL","","","","1969 (January 1969)","2003 (June 2003)","http://portal.acm.org/proceedings/apl/","http://portal.acm.org/proceedings/apl/archive/"
-"Conference Proceedings","APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/aplwaca/","http://portal.acm.org/proceedings/aplwaca/archive/"
-"Conference Proceedings","APOS: Scrutinizing Agile Practices","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/apos/","http://portal.acm.org/proceedings/apos/archive/"
-"Conference Proceedings","APS: Adaptive, Personalization &#38; the Semantic Web","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/aps/","http://portal.acm.org/proceedings/aps/archive/"
-"Conference Proceedings","APSys: Asia-Pacific Workshop on Systems","","","","2010 (August 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/apsys/","http://portal.acm.org/proceedings/apsys/archive/"
-"Conference Proceedings","AREA: Analysis and Retrieval of Events","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/area/","http://portal.acm.org/proceedings/area/archive/"
-"Conference Proceedings","ARM: Adaptive and Reflective MIddleware","","","","2004 (October 2004)","2013 (December 2013)","http://portal.acm.org/proceedings/arm/","http://portal.acm.org/proceedings/arm/archive/"
-"Conference Proceedings","ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams","","","","2010 (October 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/artemis/","http://portal.acm.org/proceedings/artemis/archive/"
-"Conference Proceedings","ASE: Automated Software Engineering","","","","1997 (November 1997)","2012 (September 2012)","http://portal.acm.org/proceedings/ase/","http://portal.acm.org/proceedings/ase/archive/"
-"Conference Proceedings","ASIA CCS: Information, Computer and Communications Security","","","","2006 (March 2006)","2013 (May 2013)","http://portal.acm.org/proceedings/asiaccs/","http://portal.acm.org/proceedings/asiaccs/archive/"
-"Conference Proceedings","ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/asia-pepm/","http://portal.acm.org/proceedings/asia-pepm/archive/"
-"Conference Proceedings","ASID: Architectural and System Support for Improving Software Dependability","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/asid/","http://portal.acm.org/proceedings/asid/archive/"
-"Conference Proceedings","ASPDAC: Asia and South Pacific Design Automation Conference","","","","1995 (August 1995)","2011 (January 2011)","http://portal.acm.org/proceedings/aspdac/","http://portal.acm.org/proceedings/aspdac/archive/"
-"Conference Proceedings","ASPLOS: Architectural Support for Programming Languages and Operating Systems","","","","1982 (March 1982)","2013 (March 2013)","http://portal.acm.org/proceedings/asplos/","http://portal.acm.org/proceedings/asplos/archive/"
-"Conference Proceedings","AST: Automation of Software Test","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/ast/","http://portal.acm.org/proceedings/ast/archive/"
-"Conference Proceedings","AUIC: User Interface","","","","2001 (January 2001)","2010 (January 2010)","http://portal.acm.org/proceedings/auic/","http://portal.acm.org/proceedings/auic/archive/"
-"Conference Proceedings","AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/aupc/","http://portal.acm.org/proceedings/aupc/archive/"
-"Conference Proceedings","AVI: Advanced Visual Interfaces","","","","1994 (June 1994)","2012 (May 2012)","http://portal.acm.org/proceedings/avi/","http://portal.acm.org/proceedings/avi/archive/"
-"Conference Proceedings","AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/avstp2p/","http://portal.acm.org/proceedings/avstp2p/archive/"
-"Conference Proceedings","AcessNets: Access Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/acessnets/","http://portal.acm.org/proceedings/acessnets/archive/"
-"Conference Proceedings","Ambi-Sys: Ambient Media and Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/ambi-sys/","http://portal.acm.org/proceedings/ambi-sys/archive/"
-"Conference Proceedings","Assets: Computers and Accessibility","","","","1994 (October 1994)","2013 (October 2013)","http://portal.acm.org/proceedings/assets/","http://portal.acm.org/proceedings/assets/archive/"
-"Conference Proceedings","AusGrid: Grid Computing and e-Research","","","","2008 (January 2008)","2009 (January 2009)","http://portal.acm.org/proceedings/ausgrid/","http://portal.acm.org/proceedings/ausgrid/archive/"
-"Conference Proceedings","AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications","","","","2009 (September 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/automotiveui/","http://portal.acm.org/proceedings/automotiveui/archive/"
-"Conference Proceedings","Autonomics: Autonomic Computing and Communication Systems","","","","2007 (October 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/autonomics/","http://portal.acm.org/proceedings/autonomics/archive/"
-"Conference Proceedings","BADS: Bio-Inspired Algorithms for Distributed Systems","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/bads/","http://portal.acm.org/proceedings/bads/archive/"
-"Conference Proceedings","BCB: Bioinformatics and Computational Biology","","","","2010 (August 2010)","2007 (September 2013)","http://portal.acm.org/proceedings/bcb/","http://portal.acm.org/proceedings/bcb/archive/"
-"Conference Proceedings","BCS-HCI: British HCI Group Annual Conference on People and Computers","","","","2007 (September 2007)","2009 (September 2009)","http://portal.acm.org/proceedings/bcs-hci/","http://portal.acm.org/proceedings/bcs-hci/archive/"
-"Conference Proceedings","BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization","","","","2006 (May 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/beliv/","http://portal.acm.org/proceedings/beliv/archive/"
-"Conference Proceedings","BIOKDD: Bioinformatics","","","","2005 (August 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/biokdd/","http://portal.acm.org/proceedings/biokdd/archive/"
-"Conference Proceedings","BIONETICS: Bio Inspired Models of Network, Information and Computing Systems","","","","2006 (December 2006)","2006 (December 2006)","http://portal.acm.org/proceedings/bionetics/","http://portal.acm.org/proceedings/bionetics/archive/"
-"Conference Proceedings","BM-FA: Behaviour Modelling","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/bm-fa/","http://portal.acm.org/proceedings/bm-fa/archive/"
-"Conference Proceedings","BM-MDA: Behaviour Modelling in Model-Driven Architecture","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/bm-mda/","http://portal.acm.org/proceedings/bm-mda/archive/"
-"Conference Proceedings","BPAOSD: Best Practices in Applying Aspect-Oriented Software Development","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/bpaosd/","http://portal.acm.org/proceedings/bpaosd/archive/"
-"Conference Proceedings","BQGT: Behavioral and Quantitative Game Theory","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/bqgt/","http://portal.acm.org/proceedings/bqgt/archive/"
-"Conference Proceedings","BWAN: Broadband Wireless Access for Ubiquitous Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/bwan/","http://portal.acm.org/proceedings/bwan/archive/"
-"Conference Proceedings","Baltic Sea: Baltic Sea Conference on Computing Education Research","","","","2006 (February 2006)","2006 (February 2006)","http://portal.acm.org/proceedings/balticsea/","http://portal.acm.org/proceedings/balticsea/archive/"
-"Conference Proceedings","BiPi: Business Impact of Process Improvements","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/bipi/","http://portal.acm.org/proceedings/bipi/archive/"
-"Conference Proceedings","BooksOnline: Research Advances in Large Digital Book Repositories","","","","2008 (October 2008)","2012 (October 2012)","http://portal.acm.org/proceedings/booksonline/","http://portal.acm.org/proceedings/booksonline/archive/"
-"Conference Proceedings","BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/buildsys/","http://portal.acm.org/proceedings/buildsys/archive/"
-"Conference Proceedings","C&#38;C: Creativity and Cognition","","","","1999 (October 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;c/","http://portal.acm.org/proceedings/c&amp;c/archive/"
-"Conference Proceedings","C&#38;T: Communities and Technologies","","","","2009 (June 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;t/","http://portal.acm.org/proceedings/c&amp;t/archive/"
-"Conference Proceedings","C3P: Hypercube Concurrent Computers and Applications","","","","1988 (January 1988)","1988 (January 1989)","http://portal.acm.org/proceedings/c3p/","http://portal.acm.org/proceedings/c3p/archive/"
-"Conference Proceedings","C3S2E: Canadian Conference on Computer Science and Software Engineering","","","","2008 (May 2008)","2013 (July 2013)","http://portal.acm.org/proceedings/cse/","http://portal.acm.org/proceedings/cse/archive/"
-"Conference Proceedings","CAI: Context in Advanced Interfaces","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/cai/","http://portal.acm.org/proceedings/cai/archive/"
-"Conference Proceedings","CAMA: Contextualized Attention Metadata","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/cama/","http://portal.acm.org/proceedings/cama/archive/"
-"Conference Proceedings","CAMRa: Context-aware Movie Recommendation","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/camra/","http://portal.acm.org/proceedings/camra/archive/"
-"Conference Proceedings","CAMS: Context-Aware Middleware and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/cams/","http://portal.acm.org/proceedings/cams/archive/"
-"Conference Proceedings","CARPE: Continous Archival and Retrieval of Personal Experiences","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/carpe/","http://portal.acm.org/proceedings/carpe/archive/"
-"Conference Proceedings","CARS: Critical Automotive Applications","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/cars/","http://portal.acm.org/proceedings/cars/archive/"
-"Conference Proceedings","CASEMANS: Context-Awareness for Self-Managing Systems","","","","2008 (May 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CASES: Compilers, Architectures and Synthesis for Embedded Systems","","","","2000 (November 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/cases/","http://portal.acm.org/proceedings/cases/archive/"
-"Conference Proceedings","CASTA: Context-Aware Software Technology and Application","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/casta/","http://portal.acm.org/proceedings/casta/archive/"
-"Conference Proceedings","CAW: Computer Architecture for Non-Numeric Processing","","","","1977 (January 1977)","1980 (March 1980)","http://portal.acm.org/proceedings/caw/","http://portal.acm.org/proceedings/caw/archive/"
-"Conference Proceedings","CBHPC: Component-Based High Performance Computing","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/cbhpc/","http://portal.acm.org/proceedings/cbhpc/archive/"
-"Conference Proceedings","CC: Critical Computing","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/cc/","http://portal.acm.org/proceedings/cc/archive/"
-"Conference Proceedings","CCS: Computer and Communications Security","","","","1993 (December 1993)","2013 (November 2013)","http://portal.acm.org/proceedings/ccs/","http://portal.acm.org/proceedings/ccs/archive/"
-"Conference Proceedings","CCSC: Consortium for Computing Sciences in Colleges","","","","1991 (May 1991)","2001 (April 2001)","http://portal.acm.org/proceedings/ccsc/","http://portal.acm.org/proceedings/ccsc/archive/"
-"Conference Proceedings","CCSW: Cloud Computing Security Workshop","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ccsw/","http://portal.acm.org/proceedings/ccsw/archive/"
-"Conference Proceedings","CCU: Contemporary Computing in Ukraine","","","","2000 (February 2000)","2000 (February 2000)","http://portal.acm.org/proceedings/ccu/","http://portal.acm.org/proceedings/ccu/archive/"
-"Conference Proceedings","CEA: Cooking and Eating Activities","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/cea/","http://portal.acm.org/proceedings/cea/archive/"
-"Conference Proceedings","CF: Computing Frontiers","","","","2004 (April 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/cf/","http://portal.acm.org/proceedings/cf/archive/"
-"Conference Proceedings","CFI: Future Internet Technologies","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/cfi/","http://portal.acm.org/proceedings/cfi/archive/"
-"Conference Proceedings","CFP: Computers, Freedom and Privacy","","","","1992 (April 1992)","2002 (April 2002)","http://portal.acm.org/proceedings/cfp/","http://portal.acm.org/proceedings/cfp/archive/"
-"Conference Proceedings","CGI: Computer Graphics International","","","","1996 (June 1996)","2009 (May 2009)","http://portal.acm.org/proceedings/cgi/","http://portal.acm.org/proceedings/cgi/archive/"
-"Conference Proceedings","CGO: Code Generation and Optimization","","","","2003 (March 2003)","2013 (February 2013)","http://portal.acm.org/proceedings/cgo/","http://portal.acm.org/proceedings/cgo/archive/"
-"Conference Proceedings","CHANTS: Challenged Networks","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/chants/","http://portal.acm.org/proceedings/chants/archive/"
-"Conference Proceedings","CHASE: Cooperative and Human Aspects on Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/chase/","http://portal.acm.org/proceedings/chase/archive/"
-"Conference Proceedings","CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts","","","","1997 (March 1997)","2013 (April 2013)","http://portal.acm.org/proceedings/chiea/","http://portal.acm.org/proceedings/chiea/archive/"
-"Conference Proceedings","CHI: Conference on Human Factors in Computing Systems","","","","1981 (May 1981)","2013 (April 2013)","http://portal.acm.org/proceedings/chi/","http://portal.acm.org/proceedings/chi/archive/"
-"Conference Proceedings","CHINA HPC: High Performance Computing","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/chinahpc/","http://portal.acm.org/proceedings/chinahpc/archive/"
-"Conference Proceedings","CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction","","","","2001 (July 2001)","2012 (July 2012)","http://portal.acm.org/proceedings/chinz/","http://portal.acm.org/proceedings/chinz/archive/"
-"Conference Proceedings","CHiMiT: Computer Human Interaction for the Management of Information Technology","","","","2007 (March 2007)","2011 (December 2011)","http://portal.acm.org/proceedings/chimit/","http://portal.acm.org/proceedings/chimit/archive/"
-"Conference Proceedings","CIAA: Implementation and Application of Automata","","","","2003 (July 2002)","2003 (July 2002)","http://portal.acm.org/proceedings/ciaa/","http://portal.acm.org/proceedings/ciaa/archive/"
-"Conference Proceedings","CIAO: Context, Information and Ontologies","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/ciao/","http://portal.acm.org/proceedings/ciao/archive/"
-"Conference Proceedings","CIKM: Conference on Information and Knowledge Management","","","","1993 (December 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/cikm/","http://portal.acm.org/proceedings/cikm/archive/"
-"Conference Proceedings","CIMS: CyberInfrastructure: Information Management in eScience","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/cims/","http://portal.acm.org/proceedings/cims/archive/"
-"Conference Proceedings","CIVR: Conference on Image and Video Retrieval","","","","2007 (July 2007)","2010 (July 2010)","http://portal.acm.org/proceedings/civr/","http://portal.acm.org/proceedings/civr/archive/"
-"Conference Proceedings","CLADE: Challenges of Large Applications in Distributed Environments","","","","2003 (June 2003)","2009 (June 2009)","http://portal.acm.org/proceedings/clade/","http://portal.acm.org/proceedings/clade/archive/"
-"Conference Proceedings","CLIHC: Latin American Conference on Human-Computer Interaction","","","","2003 (August 2003)","2005 (October 2005)","http://portal.acm.org/proceedings/clihc/","http://portal.acm.org/proceedings/clihc/archive/"
-"Conference Proceedings","CLOUD: Software Engineering Challenges of Cloud Computing","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/cloud/","http://portal.acm.org/proceedings/cloud/archive/"
-"Conference Proceedings","CMM: Connected Multimedia","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/cmm/","http://portal.acm.org/proceedings/cmm/archive/"
-"Conference Proceedings","CMSB: Computational Methods in Systems Biology","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/cmsb/","http://portal.acm.org/proceedings/cmsb/archive/"
-"Conference Proceedings","CNIKM: Complex Networks Meet Information & Knowledge Management","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/cnikm/","http://portal.acm.org/proceedings/cnikm/archive/"
-"Conference Proceedings","CNS: Communications and Networking Simulation","","","","2008 (April 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/cns/","http://portal.acm.org/proceedings/cns/archive/"
-"Conference Proceedings","COCS: Conference on Organizational Computing Systems","","","","1984 (January 1984)","1995 (August 1995)","http://portal.acm.org/proceedings/cocs/","http://portal.acm.org/proceedings/cocs/archive/"
-"Conference Proceedings","CODES: Hardware Software Codesign","","","","1994 (September 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/codes/","http://portal.acm.org/proceedings/codes/archive/"
-"Conference Proceedings","COLT: Computational Learning Theory","","","","1988 (December 1988)","1999 (July 1999)","http://portal.acm.org/proceedings/colt/","http://portal.acm.org/proceedings/colt/archive/"
-"Conference Proceedings","COM.Geo: Computing for Geospatial Research &#38; Application","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/com.geo/","http://portal.acm.org/proceedings/com.geo/archive/"
-"Conference Proceedings","COMM: Communications Architectures and Protocols","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/comm/","http://portal.acm.org/proceedings/comm/archive/"
-"Conference Proceedings","COMPUTE: COMPUTE","","","","2008 (January 2008)","2013 (August 2013)","http://portal.acm.org/proceedings/compute/","http://portal.acm.org/proceedings/compute/archive/"
-"Conference Proceedings","COMSWARE: Communication System Software and Middleware","","","","2009 (June 2009)","2011 (July 2011)","http://portal.acm.org/proceedings/comsware/","http://portal.acm.org/proceedings/comsware/archive/"
-"Conference Proceedings","COP: Context-Oriented Programming","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/cop/","http://portal.acm.org/proceedings/cop/archive/"
-"Conference Proceedings by Affiliated Organizations","CPR: Computers and People Research","","","","1962 (June 1962)","2013 (May 2013)","http://portal.acm.org/proceedings/sigcpr/","http://portal.acm.org/proceedings/sigcpr/archive/"
-"Conference Proceedings","CQL: Computers and the Quality of Life","","","","1990 (August 1990)","1996 (February 1996)","http://portal.acm.org/proceedings/cql/","http://portal.acm.org/proceedings/cql/archive/"
-"Conference Proceedings","CSAW: Computer Security Architectures","","","","2007 (November 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/csaw/","http://portal.acm.org/proceedings/csaw/archive/"
-"Conference Proceedings","CSC: Conference on Computer Science","","","","1973 (February 1973)","1996 (February 1996)","http://portal.acm.org/proceedings/csc/","http://portal.acm.org/proceedings/csc/archive/"
-"Conference Proceedings","CSCW: Computer Supported Cooperative Work","","","","1986 (December 1986)","2013 (February 2013)","http://portal.acm.org/proceedings/cscw/","http://portal.acm.org/proceedings/cscw/archive/"
-"Conference Proceedings","CSI-KDD: CyberSecurity and Intelligence Informatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/csi-kdd/","http://portal.acm.org/proceedings/csi-kdd/archive/"
-"Conference Proceedings","CSIIRW: Cyber Security and Information Intelligence Research","","","","2008 (May 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/csiirw/","http://portal.acm.org/proceedings/csiirw/archive/"
-"Conference Proceedings","CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/csssia/","http://portal.acm.org/proceedings/csssia/archive/"
-"Conference Proceedings","CSTST: Soft Computing as Transdisciplinary Science and Technology","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/cstst/","http://portal.acm.org/proceedings/cstst/archive/"
-"Conference Proceedings","CUFP: Commercial Users of Functional Programming","","","","2007 (October 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/cufp/","http://portal.acm.org/proceedings/cufp/archive/"
-"Conference Proceedings","CUU: Conference on Universal Usability","","","","2000 (November 2000)","2003 (November 2003)","http://portal.acm.org/proceedings/cuu/","http://portal.acm.org/proceedings/cuu/archive/"
-"Conference Proceedings","CVDB: Computer Vision Meets Databases","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/cvdb/","http://portal.acm.org/proceedings/cvdb/archive/"
-"Conference Proceedings","CVE: Collaborative Virtual Environments","","","","2000 (September 2000)","2002 (September 2002)","http://portal.acm.org/proceedings/cve/","http://portal.acm.org/proceedings/cve/archive/"
-"Conference Proceedings","CVSM: Comparison and Versioning of Software Models","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/cvsm/","http://portal.acm.org/proceedings/cvsm/archive/"
-"Conference Proceedings","CWIT: Women and ICT","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/cwit/","http://portal.acm.org/proceedings/cwit/archive/"
-"Conference Proceedings","CWNETS: Cognitive Wireless Networks","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/cwnets/","http://portal.acm.org/proceedings/cwnets/archive/"
-"Conference Proceedings","Casemans: Context-Awareness for Self-Managing Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CloudDB: Cloud Data Management","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/clouddb/","http://portal.acm.org/proceedings/clouddb/archive/"
-"Conference Proceedings","CoNEXT: Co-NEXT","","","","2005 (October 2005)","2013 (December 2013)","http://portal.acm.org/proceedings/conext/","http://portal.acm.org/proceedings/conext/archive/"
-"Conference Proceedings","CoRoNet: Cognitive Radio Networks","","","","2009 (September 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/coronet/","http://portal.acm.org/proceedings/coronet/archive/"
-"Conference Proceedings","CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/communicabilityms/","http://portal.acm.org/proceedings/communicabilityms/archive/"
-"Conference Proceedings","CompBio: Computational biology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/compbio/","http://portal.acm.org/proceedings/compbio/archive/"
-"Conference Proceedings","CompFrame: Component and Framework Technology in High-Performance and Scientific Computing","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/compframe/","http://portal.acm.org/proceedings/compframe/archive/"
-"Conference Proceedings","CompSysTech: Computer Systems and Technologies","","","","2000 (June 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/compsystech/","http://portal.acm.org/proceedings/compsystech/archive/"
-"Conference Proceedings","Companion: Middleware 08 Conference Companion","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/companion/","http://portal.acm.org/proceedings/companion/archive/"
-"Conference Proceedings","Creating: Creating Out of the Machine","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/creating/","http://portal.acm.org/proceedings/creating/archive/"
-"Conference Proceedings","DAC: Design Automation Conference","","","","1964 (January 1964)","2013 (May 2013)","http://portal.acm.org/proceedings/dac/","http://portal.acm.org/proceedings/dac/archive/"
-"Conference Proceedings","DADC: Data-aware Distributed Computing","","","","2008 (June 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/dadc/","http://portal.acm.org/proceedings/dadc/archive/"
-"Conference Proceedings","DAMP: Declarative Aspects of Multicore Programming","","","","2007 (January 2007)","2012 (January 2012)","http://portal.acm.org/proceedings/damp/","http://portal.acm.org/proceedings/damp/archive/"
-"Conference Proceedings","DARE: Designing Augmented Reality Environments","","","","2000 (April 2000)","2013 (November 2013)","http://portal.acm.org/proceedings/dare/","http://portal.acm.org/proceedings/dare/archive/"
-"Conference Proceedings","DAS: Document Analysis Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/das/","http://portal.acm.org/proceedings/das/archive/"
-"Conference Proceedings","DATACOMM: Data Communications and Data Networks","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/datacomm/","http://portal.acm.org/proceedings/datacomm/archive/"
-"Conference Proceedings","DATE: Design, Automation and Test in Europe","","","","1998 (February 1998)","2013 (March 2013)","http://portal.acm.org/proceedings/date/","http://portal.acm.org/proceedings/date/archive/"
-"Conference Proceedings","DBTest: Testing Database Systems","","","","2008 (June 2008)","2013 (June 2013)","http://portal.acm.org/proceedings/dbtest/","http://portal.acm.org/proceedings/dbtest/archive/"
-"Conference Proceedings","DCOSS:  Distributed Computing in Sensor Systems","","","","2007 (June 2007)","2010 (June 2010)","http://portal.acm.org/proceedings/dcoss/","http://portal.acm.org/proceedings/dcoss/archive/"
-"Conference Proceedings","DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dd4lcci/","http://portal.acm.org/proceedings/dd4lcci/archive/"
-"Conference Proceedings","DDDM: Domain Driven Data Mining","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/dddm/","http://portal.acm.org/proceedings/dddm/archive/"
-"Conference Proceedings","DEAS: Design and Evolution of Autonomic Application Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/deas/","http://portal.acm.org/proceedings/deas/archive/"
-"Conference Proceedings","DEBS: Distributed Event-Based Systems","","","","2003 (June 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/debs/","http://portal.acm.org/proceedings/debs/archive/"
-"Conference Proceedings","DEECS: Data Enginering issues in E-commerce and Services","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/deecs/","http://portal.acm.org/proceedings/deecs/archive/"
-"Conference Proceedings","DEFECTS: Defects in Large Software Systems","","","","2008 (July 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/defects/","http://portal.acm.org/proceedings/defects/archive/"
-"Conference Proceedings","DESIRE: Creativity and Innovation in Design","","","","2010 (August 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/desire/","http://portal.acm.org/proceedings/desire/archive/"
-"Conference Proceedings","DESRIST: Design Science Research in Information Systems and Technology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/desrist/","http://portal.acm.org/proceedings/desrist/archive/"
-"Conference Proceedings","DIALM: DIALM","","","","1999 (August 1999)","2010 (September 2010)","http://portal.acm.org/proceedings/dialm/","http://portal.acm.org/proceedings/dialm/archive/"
-"Conference Proceedings","DIM: Digital Identity Management","","","","2005 (November 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/dim/","http://portal.acm.org/proceedings/dim/archive/"
-"Conference Proceedings","DIMEA: Digital Interactive Media in Entertainment and Arts","","","","2007 (September 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/dimea/","http://portal.acm.org/proceedings/dimea/archive/"
-"Conference Proceedings","DIN: Dynamic Interconnection of Networks","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/din/","http://portal.acm.org/proceedings/din/archive/"
-"Conference Proceedings","DIS: Designing Interactive Systems","","","","1995 (August 1995)","2012 (June 2012)","http://portal.acm.org/proceedings/dis/","http://portal.acm.org/proceedings/dis/archive/"
-"Conference Proceedings","DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/diwans/","http://portal.acm.org/proceedings/diwans/archive/"
-"Conference Proceedings","DL: Digital Libraries","","","","1996 (April 1996)","2000 (June 2000)","http://portal.acm.org/proceedings/dl/","http://portal.acm.org/proceedings/dl/archive/"
-"Conference Proceedings","DLS: Dynamic Languages","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/dls/","http://portal.acm.org/proceedings/dls/archive/"
-"Conference Proceedings","DMG: Data Mining for Geoinformatics","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/dmg/","http://portal.acm.org/proceedings/dmg/archive/"
-"Conference Proceedings","DMKD: Research Issues in Data Mining and Knowledge Discovery","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/dmkd/","http://portal.acm.org/proceedings/dmkd/archive/"
-"Conference Proceedings","DMMT: Data Mining using Matrices and Tensors","","","","2001 (July 2001)","2009 (June 2009)","http://portal.acm.org/proceedings/dmmt/","http://portal.acm.org/proceedings/dmmt/archive/"
-"Conference Proceedings","DMSN: Data Management for Sensor Networks","","","","2004 (August 2004)","2010 (September 2010)","http://portal.acm.org/proceedings/dmsn/","http://portal.acm.org/proceedings/dmsn/archive/"
-"Conference Proceedings","DMSSP: Data Mining Standards, Services and Platforms","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/dmssp/","http://portal.acm.org/proceedings/dmssp/archive/"
-"Conference Proceedings","DO: Distributed Objects","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/do/","http://portal.acm.org/proceedings/do/archive/"
-"Conference Proceedings","DOCPROCS: Document Processing Systems","","","","1988 (January 2000)","1988 (January 2000)","http://portal.acm.org/proceedings/docprocs/","http://portal.acm.org/proceedings/docprocs/archive/"
-"Conference Proceedings","DOLAP: Data Warehousing and OLAP","","","","1998 (November 1998)","2013 (October 2013)","http://portal.acm.org/proceedings/dolap/","http://portal.acm.org/proceedings/dolap/archive/"
-"Conference Proceedings","DOSTA: Domain Specific Approaches to Software Test Automation","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/dosta/","http://portal.acm.org/proceedings/dosta/archive/"
-"Conference Proceedings","DPDS: Databases in Parallel and Distributed Systems","","","","1990 (July 1990)","1988 (January 2000)","http://portal.acm.org/proceedings/dpds/","http://portal.acm.org/proceedings/dpds/archive/"
-"Conference Proceedings","DPPI: Designing Pleasurable Products and Interfaces","","","","2003 (June 2003)","2013 (September 2013)","http://portal.acm.org/proceedings/dppi/","http://portal.acm.org/proceedings/dppi/archive/"
-"Conference Proceedings","DRM: Digital Rights Management","","","","2003 (October 2003)","2011 (October 2011)","http://portal.acm.org/proceedings/drm/","http://portal.acm.org/proceedings/drm/archive/"
-"Conference Proceedings","DS-RT: Distributed Simulation and Real Time Applications","","","","2000 (August 2000)","2012 (October 2012)","http://portal.acm.org/proceedings/ds-rt/","http://portal.acm.org/proceedings/ds-rt/archive/"
-"Conference Proceedings","DSAL: Domain-Specific Aspect Languages","","","","2007 (March 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/dsal/","http://portal.acm.org/proceedings/dsal/archive/"
-"Conference Proceedings","DSL: Domain-Specific Languages","","","","1999 (December 1999)","1999 (December 1999)","http://portal.acm.org/proceedings/dsl/","http://portal.acm.org/proceedings/dsl/archive/"
-"Conference Proceedings","DSM: Doctoral Symposium on Middleware","","","","2004 (October 2004)","2012 (October 2012)","http://portal.acm.org/proceedings/dsm/","http://portal.acm.org/proceedings/dsm/archive/"
-"Conference Proceedings","DSMM: Data-Intensive Software Management and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/dsmm/","http://portal.acm.org/proceedings/dsmm/archive/"
-"Conference Proceedings","DTMBIO: Data and Text Mining in Biomedical Informatics","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/dtmbio/","http://portal.acm.org/proceedings/dtmbio/archive/"
-"Conference Proceedings","DUX: Designing for User eXperiences","","","","2003 (June 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/dux/","http://portal.acm.org/proceedings/dux/archive/"
-"Conference Proceedings","DYADEM-FTS: Dependeability Models for Fault-Tolerant Systems","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dyadem-fts/","http://portal.acm.org/proceedings/dyadem-fts/archive/"
-"Conference Proceedings","DYNAMO: Dynamic and Adaptive Compilation and Optimization","","","","2000 (January 2000)","2000 (January 2000)","http://portal.acm.org/proceedings/dynamo/","http://portal.acm.org/proceedings/dynamo/archive/"
-"Conference Proceedings","DaGreS: Data Grids for eScience","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/dagres/","http://portal.acm.org/proceedings/dagres/archive/"
-"Conference Proceedings","DaMaP: Data Management in Peer-to-Peer Systems","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/damap/","http://portal.acm.org/proceedings/damap/archive/"
-"Conference Proceedings","DaMoN: Data Management on New Hardware","","","","2005 (June 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/damon/","http://portal.acm.org/proceedings/damon/archive/"
-"Conference Proceedings","DataX: Database Technologies for Handling XML Information on the Web","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/datax/","http://portal.acm.org/proceedings/datax/archive/"
-"Conference Proceedings","DocEng: Document Engineering","","","","2001 (November 2001)","2013 (September 2013)","http://portal.acm.org/proceedings/doceng/","http://portal.acm.org/proceedings/doceng/archive/"
-"Conference Proceedings","Dutch HCI: Dutch directions in HCI","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/dutchhci/","http://portal.acm.org/proceedings/dutchhci/archive/"
-"Conference Proceedings","E-WIND: Experimental Approaches to Wireless Network Design and Analysis","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/e-wind/","http://portal.acm.org/proceedings/e-wind/archive/"
-"Conference Proceedings","EA: Early Aspects","","","","2006 (May 2006)","2011 (March 2011)","http://portal.acm.org/proceedings/ea/","http://portal.acm.org/proceedings/ea/archive/"
-"Conference Proceedings","EATIS: Euro American Conference on Telematics and Information Systems","","","","2007 (May 2007)","2012 (May 2012)","http://portal.acm.org/proceedings/eatis/","http://portal.acm.org/proceedings/eatis/archive/"
-"Conference Proceedings","EC: Electronic Commerce","","","","1999 (November 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/ec/","http://portal.acm.org/proceedings/ec/archive/"
-"Conference Proceedings","ECA: Ethics in the Computer Age","","","","1994 (November 1994)","1994 (November 1994)","http://portal.acm.org/proceedings/eca/","http://portal.acm.org/proceedings/eca/archive/"
-"Conference Proceedings","ECCE: European Conference on Cognitive Ergonomics","","","","2006 (September 2006)","2013 (August 2013)","http://portal.acm.org/proceedings/ecce/","http://portal.acm.org/proceedings/ecce/archive/"
-"Conference Proceedings","ECHT: European Conference on Hypermedia Technology","","","","1992 (November 1992)","1994 (September 1994)","http://portal.acm.org/proceedings/echt/","http://portal.acm.org/proceedings/echt/archive/"
-"Conference Proceedings","ECIR: European Conference on Information Retrieval","","","","2008 (March 2008)","2012 (April 2012)","http://portal.acm.org/proceedings/ecir/","http://portal.acm.org/proceedings/ecir/archive/"
-"Conference Proceedings","ECMFA-TW: ECMFA Traceability Workshop","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/ecmfa-tw/","http://portal.acm.org/proceedings/ecmfa-tw/archive/"
-"Conference Proceedings","ECOOP: European Conference on Object-Oriented Programming","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/ecoop/","http://portal.acm.org/proceedings/ecoop/archive/"
-"Conference Proceedings","ECSA: European Conference on Software Architecture","","","","2010 (August 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/ecsa/","http://portal.acm.org/proceedings/ecsa/archive/"
-"Conference Proceedings","EDBT: Extending Database Technology","","","","2008 (March 2008)","2013 (March 2013)","http://portal.acm.org/proceedings/edbt/","http://portal.acm.org/proceedings/edbt/archive/"
-"Conference Proceedings","EDSER: Economics-Driven Software Engineering Research","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/edser/","http://portal.acm.org/proceedings/edser/archive/"
-"Conference Proceedings","EDT: Emerging Displays Technologies","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/edt/","http://portal.acm.org/proceedings/edt/archive/"
-"Conference Proceedings","EDTC: European Conference on Design and Test","","","","1995 (March 1995)","1997 (March 1997)","http://portal.acm.org/proceedings/edtc/","http://portal.acm.org/proceedings/edtc/archive/"
-"Conference Proceedings","EESR: End-to-end, Sense-and-respond Systems, Applications and Services","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/eesr/","http://portal.acm.org/proceedings/eesr/archive/"
-"Conference Proceedings","EFTS: Engineering Fault Tolerant Systems","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/efts/","http://portal.acm.org/proceedings/efts/archive/"
-"Conference Proceedings","EGPGV: Eurographics Workshop on Parallel Graphics and Visualization","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/egpgv/","http://portal.acm.org/proceedings/egpgv/archive/"
-"Conference Proceedings","EGRW: Eurographics Workshop on Rendering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/egrw/","http://portal.acm.org/proceedings/egrw/archive/"
-"Conference Proceedings","EGVE: Virtual Environments","","","","2002 (May 2002)","2007 (July 2007)","http://portal.acm.org/proceedings/egve/","http://portal.acm.org/proceedings/egve/archive/"
-"Conference Proceedings","EICS: Engineering Interactive Computing Systems","","","","2009 (July 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/eics/","http://portal.acm.org/proceedings/eics/archive/"
-"Conference Proceedings","ELW: European Lisp Workshop","","","","2009 (July 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/elw/","http://portal.acm.org/proceedings/elw/archive/"
-"Conference Proceedings","EMSOFT: Embedded Software","","","","2004 (September 2004)","2013 (September 2013)","http://portal.acm.org/proceedings/emsoft/","http://portal.acm.org/proceedings/emsoft/archive/"
-"Conference Proceedings","EOMAS: Enterprises & Organizational Modeling and Simulation","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/eomas/","http://portal.acm.org/proceedings/eomas/archive/"
-"Conference Proceedings","EPIA: Progress in Artificial Intelligence","","","","2007 (December 2007)","2007 (December 2007)","http://portal.acm.org/proceedings/epia/","http://portal.acm.org/proceedings/epia/archive/"
-"Conference Proceedings","ERLANG: ERLANG","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/erlang/","http://portal.acm.org/proceedings/erlang/archive/"
-"Conference Proceedings","ESAIR: Exploiting Semantic Annotations in Information Retrieval","","","","2009 (February 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/esair/","http://portal.acm.org/proceedings/esair/archive/"
-"Conference Proceedings","ESC: Economics of Software and Computation","","","","2007 (May 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/esc/","http://portal.acm.org/proceedings/esc/archive/"
-"Conference Proceedings","ESEC/FSE: European Software Engineering Conference","","","","1997 (November 1997)","2013 (August 2013)","http://portal.acm.org/proceedings/esec/fse/","http://portal.acm.org/proceedings/esec/fse/archive/"
-"Conference Proceedings","ESEM: Empirical Software Engineering and Measurement","","","","2007 (September 2007)","2012 (September 2012)","http://portal.acm.org/proceedings/esem/","http://portal.acm.org/proceedings/esem/archive/"
-"Conference Proceedings","ESP: Empirical Studies of Programmers","","","","1997 (October 1997)","1997 (October 1997)","http://portal.acm.org/proceedings/esp/","http://portal.acm.org/proceedings/esp/archive/"
-"Conference Proceedings","ESSPE: Engineering of Software Services for Pervasive Environments","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/esspe/","http://portal.acm.org/proceedings/esspe/archive/"
-"Conference Proceedings","ESTMED: Embedded Systems for Real Time Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/estmed/","http://portal.acm.org/proceedings/estmed/archive/"
-"Conference Proceedings","ETOOS: Testing Object-Oriented Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/etoos/","http://portal.acm.org/proceedings/etoos/archive/"
-"Conference Proceedings","ETP: Effective Telepresence","","","","2003 (November 2003)","2004 (October 2004)","http://portal.acm.org/proceedings/etp/","http://portal.acm.org/proceedings/etp/archive/"
-"Conference Proceedings","ETRA: Eye Tracking Research and Applications","","","","2000 (November 2000)","2012 (March 2012)","http://portal.acm.org/proceedings/etra/","http://portal.acm.org/proceedings/etra/archive/"
-"Conference Proceedings","EURO-DAC: European Design Automation","","","","1990 (March 1990)","1996 (September 1996)","http://portal.acm.org/proceedings/euro-dac/","http://portal.acm.org/proceedings/euro-dac/archive/"
-"Conference Proceedings","EUROSEC: European Workshop on System Security","","","","2008 (March 2008)","2011 (April 2011)","http://portal.acm.org/proceedings/eurosec/","http://portal.acm.org/proceedings/eurosec/archive/"
-"Conference Proceedings","EUSAI: European Union symposium on Ambient intelligence","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/eusai/","http://portal.acm.org/proceedings/eusai/archive/"
-"Conference Proceedings","EW: ACM SIGOPS European Workshop","","","","1985 (January 1985)","2004 (September 2004)","http://portal.acm.org/proceedings/ew/","http://portal.acm.org/proceedings/ew/archive/"
-"Conference Proceedings","EiMM: Events in Multimedia","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/eimm/","http://portal.acm.org/proceedings/eimm/archive/"
-"Conference Proceedings","EmNets: Embedded Networked Sensors","","","","2005 (April 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/emnets/","http://portal.acm.org/proceedings/emnets/archive/"
-"Conference Proceedings","Emme: Educational Multimedia and Multimedia Education","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/emme/","http://portal.acm.org/proceedings/emme/archive/"
-"Conference Proceedings","Ergo'IA: Ergonomie et Informatique Avancee Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/ergo'ia/","http://portal.acm.org/proceedings/ergo'ia/archive/"
-"Conference Proceedings","EuroITV: Interactive TV &#38; Video","","","","2007 (May 2007)","2013 (June 2013)","http://portal.acm.org/proceedings/euroitv/","http://portal.acm.org/proceedings/euroitv/archive/"
-"Conference Proceedings","EuroSys: European Conference on Computer Systems","","","","2006 (April 2006)","2013 (April 2013)","http://portal.acm.org/proceedings/eurosys/","http://portal.acm.org/proceedings/eurosys/archive/"
-"Conference Proceedings","ExpCS: Experimental Computer Science","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/expcs/","http://portal.acm.org/proceedings/expcs/archive/"
-"Conference Proceedings","FAA: Facial Analysis and Animation","","","","2010 (October 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/faa/","http://portal.acm.org/proceedings/faa/archive/"
-"Conference Proceedings","FAST: File and Storage Technologies","","","","2005 (December 2005)","2012 (February 2012)","http://portal.acm.org/proceedings/fast/","http://portal.acm.org/proceedings/fast/archive/"
-"Conference Proceedings","FDG: Foundations of Digital Games","","","","2009 (April 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/fdg/","http://portal.acm.org/proceedings/fdg/archive/"
-"Conference Proceedings","FDNA: Future Directions in Network Architectures","","","","2003 (August 2003)","2004 (August 2004)","http://portal.acm.org/proceedings/fdna/","http://portal.acm.org/proceedings/fdna/archive/"
-"Conference Proceedings","FDPE: Functional and Declarative Progamming in Education","","","","2005 (September 2005)","2008 (September 2008)","http://portal.acm.org/proceedings/fdpe/","http://portal.acm.org/proceedings/fdpe/archive/"
-"Conference Proceedings","FIT: Frontiers of Information Technology","","","","2009 (December 2009)","2010 (December 2010)","http://portal.acm.org/proceedings/fit/","http://portal.acm.org/proceedings/fit/archive/"
-"Conference Proceedings","FLOSS: Emerging Trends in Free/Libre/Open Source Software Research and Development","","","","2007 (May 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/floss/","http://portal.acm.org/proceedings/floss/archive/"
-"Conference Proceedings","FMICS: Formal Methods for Industrial Critical Systems","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/fmics/","http://portal.acm.org/proceedings/fmics/archive/"
-"Conference Proceedings","FMSE: Formal Methods in Security Engineering","","","","2003 (October 2003)","2008 (October 2008)","http://portal.acm.org/proceedings/fmse/","http://portal.acm.org/proceedings/fmse/archive/"
-"Conference Proceedings","FMSP: Formal Methods in Software Practice","","","","1998 (March 1998)","2000 (August 2000)","http://portal.acm.org/proceedings/fmsp/","http://portal.acm.org/proceedings/fmsp/archive/"
-"Conference Proceedings","FOAL: Foundations of Aspect-Oriented Languages","","","","2007 (March 2007)","2013 (March 2013)","http://portal.acm.org/proceedings/foal/","http://portal.acm.org/proceedings/foal/archive/"
-"Conference Proceedings","FOGA: Foundations of Genetic Algorithms","","","","2007 (January 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/foga/","http://portal.acm.org/proceedings/foga/archive/"
-"Conference Proceedings","FOIS: Formal Ontology in Information Systems","","","","2001 (October 2001)","2001 (October 2001)","http://portal.acm.org/proceedings/fois/","http://portal.acm.org/proceedings/fois/archive/"
-"Conference Proceedings","FORTH: FORTH","","","","1989 (January 1989)","1992 (December 1993)","http://portal.acm.org/proceedings/forth/","http://portal.acm.org/proceedings/forth/archive/"
-"Conference Proceedings","FOSD: Feature-Oriented Software Development","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/fosd/","http://portal.acm.org/proceedings/fosd/archive/"
-"Conference Proceedings","FOSE: Future of Software Engineering","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/fose/","http://portal.acm.org/proceedings/fose/archive/"
-"Conference Proceedings","FOWANC: Foundations of Wireless Ad-Hoc and Sensor Networking and Computing","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/fowanc/","http://portal.acm.org/proceedings/fowanc/archive/"
-"Conference Proceedings","FPCA: Functional Programming Languages and Computer Architecture","","","","1981 (October 1981)","1995 (October 1995)","http://portal.acm.org/proceedings/fpca/","http://portal.acm.org/proceedings/fpca/archive/"
-"Conference Proceedings","FPGA: Field Programmable Gate Arrays","","","","1995 (February 1995)","2013 (February 2013)","http://portal.acm.org/proceedings/fpga/","http://portal.acm.org/proceedings/fpga/archive/"
-"Conference Proceedings","FPGAworld: FPGAworld","","","","2009 (September 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/fpgaworld/","http://portal.acm.org/proceedings/fpgaworld/archive/"
-"Conference Proceedings","FSEDS: Foundations of Software Engineering Doctoral Symposium","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/fseds/","http://portal.acm.org/proceedings/fseds/archive/"
-"Conference Proceedings","FSEN: Fundamentals of Software Engineering","","","","2007 (April 2007)","2007 (April 2007)","http://portal.acm.org/proceedings/fsen/","http://portal.acm.org/proceedings/fsen/archive/"
-"Conference Proceedings","FSM: Functional Size Measurement","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/fsm/","http://portal.acm.org/proceedings/fsm/archive/"
-"Conference Proceedings","FTfJP: Formal Techniques for Java-like Programs","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/ftfjp/","http://portal.acm.org/proceedings/ftfjp/archive/"
-"Conference Proceedings","FeBiD: International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/febid/","http://portal.acm.org/proceedings/febid/archive/"
-"Conference Proceedings","FoSER: Future of Software Engineering Research ","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/foser/","http://portal.acm.org/proceedings/foser/archive/"
-"Conference Proceedings","Fun and Games: Fun and Games","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/funandgames/","http://portal.acm.org/proceedings/funandgames/archive/"
-"Conference Proceedings","Future Play: Future Play","","","","2007 (November 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/futureplay/","http://portal.acm.org/proceedings/futureplay/archive/"
-"Conference Proceedings","GCE: Grid Computing Environments","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/gce/","http://portal.acm.org/proceedings/gce/archive/"
-"Conference Proceedings","GCM: Green Computing","","","","2010 (November 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gcm/","http://portal.acm.org/proceedings/gcm/archive/"
-"Conference Proceedings","GDCSE: Game Development in Computer Science Education","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/gdcse/","http://portal.acm.org/proceedings/gdcse/archive/"
-"Conference Proceedings","GEC: Genetic and Evolutionary Computation","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/gec/","http://portal.acm.org/proceedings/gec/archive/"
-"Conference Proceedings","GECCO: Genetic and Evolutionary Computation Conference","","","","1996 (July 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/gecco/","http://portal.acm.org/proceedings/gecco/archive/"
-"Conference Proceedings","GH: Graphics Hardware","","","","1997 (August 1997)","2008 (June 2008)","http://portal.acm.org/proceedings/gh/","http://portal.acm.org/proceedings/gh/archive/"
-"Conference Proceedings","GI: Graphics Interface","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/gi/","http://portal.acm.org/proceedings/gi/archive/"
-"Conference Proceedings","GIR: Geographic Information Retrieval","","","","2005 (November 2005)","2010 (February 2010)","http://portal.acm.org/proceedings/gir/","http://portal.acm.org/proceedings/gir/archive/"
-"Conference Proceedings","GIS: Geographic Information Systems","","","","1996 (November 1996)","2012 (November 2012)","http://portal.acm.org/proceedings/gis/","http://portal.acm.org/proceedings/gis/archive/"
-"Conference Proceedings","GLSVLSI: Great Lakes Symposium on VLSI","","","","1995 (March 1995)","2013 (May 2013)","http://portal.acm.org/proceedings/glsvlsi/","http://portal.acm.org/proceedings/glsvlsi/archive/"
-"Conference Proceedings","GMAC: Grids Meets Autonomic Computing","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/gmac/","http://portal.acm.org/proceedings/gmac/archive/"
-"Conference Proceedings","GMW: Grid Monitoring","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/gmw/","http://portal.acm.org/proceedings/gmw/archive/"
-"Conference Proceedings","GPCE: Generative Programming and Component Engineering","","","","2002 (October 2002)","2013 (October 2013)","http://portal.acm.org/proceedings/gpce/","http://portal.acm.org/proceedings/gpce/archive/"
-"Conference Proceedings","GPGPU: General Purpose Processing on Graphics Processing Units","","","","2009 (March 2009)","2012 (March 2012)","http://portal.acm.org/proceedings/gpgpu/","http://portal.acm.org/proceedings/gpgpu/archive/"
-"Conference Proceedings","GRAPHITE: Computer Graphics and Interactive Techniques in Australia and South East Asia","","","","2003 (February 2003)","2007 (December 2007)","http://portal.acm.org/proceedings/graphite/","http://portal.acm.org/proceedings/graphite/archive/"
-"Conference Proceedings","GRID: Grid Computing","","","","2003 (November 2003)","2008 (September 2008)","http://portal.acm.org/proceedings/grid/","http://portal.acm.org/proceedings/grid/archive/"
-"Conference Proceedings","GROUP: Supporting Group Work","","","","1997 (November 1997)","2012 (October 2012)","http://portal.acm.org/proceedings/group/","http://portal.acm.org/proceedings/group/archive/"
-"Conference Proceedings","GRaMoT: Graph and Model Transformations","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/gramot/","http://portal.acm.org/proceedings/gramot/archive/"
-"Conference Proceedings","GSD: Global Software Development for the Practitioner","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gsd/","http://portal.acm.org/proceedings/gsd/archive/"
-"Conference Proceedings","GTIP: Governance of Technology, Information, and Policies ","","","","2010 (December 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gtip/","http://portal.acm.org/proceedings/gtip/archive/"
-"Conference Proceedings","GaMMa: Global Integrated Model Management","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gamma/","http://portal.acm.org/proceedings/gamma/archive/"
-"Conference Proceedings","GameNets: Game Theory for Communications and Networks","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/gamenets/","http://portal.acm.org/proceedings/gamenets/archive/"
-"Conference Proceedings","Green Networking: Green networking","","","","2010 (August 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/greennetworking/","http://portal.acm.org/proceedings/greennetworking/archive/"
-"Conference Proceedings","GridNets: Networks for Grid Applications","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/gridnets/","http://portal.acm.org/proceedings/gridnets/archive/"
-"Conference Proceedings","HAS: Haptic User Interfaces in Ambient Media Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/has/","http://portal.acm.org/proceedings/has/archive/"
-"Conference Proceedings","HCC: Human-Centered Computing","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/hcc/","http://portal.acm.org/proceedings/hcc/archive/"
-"Conference Proceedings","HCM: Human-Centered Multimedia","","","","2006 (October 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/hcm/","http://portal.acm.org/proceedings/hcm/archive/"
-"Conference Proceedings","HCOMP: Human Computation","","","","2009 (June 2009)","2010 (July 2010)","http://portal.acm.org/proceedings/hcomp/","http://portal.acm.org/proceedings/hcomp/archive/"
-"Conference Proceedings","HDP: Hardcopy Document Processing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/hdp/","http://portal.acm.org/proceedings/hdp/archive/"
-"Conference Proceedings","HIKM: Healthcare Information and Knowledge Management","","","","2006 (November 2006)","2010 (January 2010)","http://portal.acm.org/proceedings/hikm/","http://portal.acm.org/proceedings/hikm/archive/"
-"Conference Proceedings","HLLCA: High-Level-Language Computer Architecture","","","","1973 (November 1973)","1973 (November 1973)","http://portal.acm.org/proceedings/hllca/","http://portal.acm.org/proceedings/hllca/archive/"
-"Conference Proceedings","HLPP: High-level parallel programming and applications","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/hlpp/","http://portal.acm.org/proceedings/hlpp/archive/"
-"Conference Proceedings","HOPL: History of Programming Languages","","","","1993 (April 1993)","2007 (June 2007)","http://portal.acm.org/proceedings/hopl/","http://portal.acm.org/proceedings/hopl/archive/"
-"Conference Proceedings","HPCVirt: System-level Virtualization for High Performance Computing","","","","2008 (March 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/hpcvirt/","http://portal.acm.org/proceedings/hpcvirt/archive/"
-"Conference Proceedings","HPDC: High Performance Distributed Computing","","","","1995 (August 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/hpdc/","http://portal.acm.org/proceedings/hpdc/archive/"
-"Conference Proceedings","HPDGIS: High Performance and Distributed Geographic Information Systems ","","","","2010 (November 2010)","2011 (November 2011)","http://portal.acm.org/proceedings/hpdgis/","http://portal.acm.org/proceedings/hpdgis/archive/"
-"Conference Proceedings","HPG: High Perfomance Graphics","","","","2009 (August 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/hpg/","http://portal.acm.org/proceedings/hpg/archive/"
-"Conference Proceedings","HPRCTA: High-Performance Reconfigurable Computing Technology and Applications","","","","2007 (November 2007)","2009 (November 2009)","http://portal.acm.org/proceedings/hprcta/","http://portal.acm.org/proceedings/hprcta/archive/"
-"Conference Proceedings","HPW: History of Personal Workstations","","","","1986 (January 1986)","1986 (January 1986)","http://portal.acm.org/proceedings/hpw/","http://portal.acm.org/proceedings/hpw/archive/"
-"Conference Proceedings","HRI: Human-Robot Interaction","","","","2006 (March 2006)","2013 (March 2013)","http://portal.acm.org/proceedings/hri/","http://portal.acm.org/proceedings/hri/archive/"
-"Conference Proceedings","HSCC: Hybrid Systems: Computation and Control","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/hscc/","http://portal.acm.org/proceedings/hscc/archive/"
-"Conference Proceedings","HSNC: History of Scientific and Numeric Computation","","","","1987 (October 1987)","1987 (October 1987)","http://portal.acm.org/proceedings/hsnc/","http://portal.acm.org/proceedings/hsnc/archive/"
-"Conference Proceedings","HSSE: Human and Social Factors of Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/hsse/","http://portal.acm.org/proceedings/hsse/archive/"
-"Conference Proceedings","HT: Hypertext and hypermedia","","","","1987 (November 1987)","2013 (May 2013)","http://portal.acm.org/proceedings/ht/","http://portal.acm.org/proceedings/ht/archive/"
-"Conference Proceedings","Haskell: Haskell","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/haskell/","http://portal.acm.org/proceedings/haskell/archive/"
-"Conference Proceedings","HealthNet: Networking Support for Health Care and Assisted Living Environments","","","","2007 (June 2007)","2008 (June 2008)","http://portal.acm.org/proceedings/healthnet/","http://portal.acm.org/proceedings/healthnet/archive/"
-"Conference Proceedings","HetRec: Information Heterogeneity and Fusion in Recommender Systems ","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/hetrec/","http://portal.acm.org/proceedings/hetrec/archive/"
-"Conference Proceedings","HeterSanet: Heterogeneous Sensor and Actor Networks","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/hetersanet/","http://portal.acm.org/proceedings/hetersanet/archive/"
-"Conference Proceedings","HiPC: High Performance Computing ","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/hipc/","http://portal.acm.org/proceedings/hipc/archive/"
-"Conference Proceedings","HomeNets: Home Networks","","","","2010 (September 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/homenets/","http://portal.acm.org/proceedings/homenets/archive/"
-"Conference Proceedings","HotMobile: Mobile Computing Systems and Applications","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/hotmobile/","http://portal.acm.org/proceedings/hotmobile/archive/"
-"Conference Proceedings","HotPlanet: Hot Topics of Planet-Scale Mobility Measurements","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/hotplanet/","http://portal.acm.org/proceedings/hotplanet/archive/"
-"Conference Proceedings","HotSWUp: Hot Topics in Software Upgrades","","","","2008 (October 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/hotswup/","http://portal.acm.org/proceedings/hotswup/archive/"
-"Conference Proceedings","Hotnets: Hot Topics in Networks","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/hotnets/","http://portal.acm.org/proceedings/hotnets/archive/"
-"Conference Proceedings","HuCom: Human Factors and Computational Models in Negotiation","","","","2009 (December 2008)","2009 (December 2008)","http://portal.acm.org/proceedings/hucom/","http://portal.acm.org/proceedings/hucom/archive/"
-"Conference Proceedings","I-SEMANTICS: Semantic Systems","","","","2010 (September 2010)","2013 (September 2013)","http://portal.acm.org/proceedings/i-semantics/","http://portal.acm.org/proceedings/i-semantics/archive/"
-"Conference Proceedings","I3D: Interactive 3D Graphics and Games","","","","1987 (January 1987)","2013 (March 2013)","http://portal.acm.org/proceedings/i3d/","http://portal.acm.org/proceedings/i3d/archive/"
-"Conference Proceedings","IAT: Intelligent Agent Technology","","","","2006 (December 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/iat/","http://portal.acm.org/proceedings/iat/archive/"
-"Conference Proceedings","ICAC3: Advances in Computing, Communication and Control","","","","2009 (January 2009)","2009 (January 2009)","http://portal.acm.org/proceedings/icac3/","http://portal.acm.org/proceedings/icac3/archive/"
-"Conference Proceedings","ICAC: Autonomic Computing","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/icac/","http://portal.acm.org/proceedings/icac/archive/"
-"Conference Proceedings","ICAIL: International Conference on Artificial Intelligence and Law","","","","1987 (December 1987)","2013 (June 2013)","http://portal.acm.org/proceedings/icail/","http://portal.acm.org/proceedings/icail/archive/"
-"Conference Proceedings","ICAIT: Advanced Infocomm Technology","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/icait/","http://portal.acm.org/proceedings/icait/archive/"
-"Conference Proceedings","ICAT: Augmented Tele-existence","","","","2005 (December 2005)","2005 (December 2005)","http://portal.acm.org/proceedings/icat/","http://portal.acm.org/proceedings/icat/archive/"
-"Conference Proceedings","ICCAD: International Conference on Computer-Aided Design","","","","1992 (November 1992)","2012 (November 2012)","http://portal.acm.org/proceedings/iccad/","http://portal.acm.org/proceedings/iccad/archive/"
-"Conference Proceedings","ICCPS: Cyber-Physical Systems","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/iccps/","http://portal.acm.org/proceedings/iccps/archive/"
-"Conference Proceedings","ICDL: International Conference on Dynamic Languages","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/icdl/","http://portal.acm.org/proceedings/icdl/archive/"
-"Conference Proceedings","ICDSC: Distributed Smart Cameras","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/icdsc/","http://portal.acm.org/proceedings/icdsc/archive/"
-"Conference Proceedings","ICDT: Database Theory","","","","2009 (March 2009)","2013 (March 2013)","http://portal.acm.org/proceedings/icdt/","http://portal.acm.org/proceedings/icdt/archive/"
-"Conference Proceedings","ICE: Information and Computation Economies","","","","1998 (October 1998)","1998 (October 1998)","http://portal.acm.org/proceedings/ice/","http://portal.acm.org/proceedings/ice/archive/"
-"Conference Proceedings","ICEC: International Conference on Electronic Commerce","","","","2003 (September 2003)","2012 (August 2012)","http://portal.acm.org/proceedings/icec/","http://portal.acm.org/proceedings/icec/archive/"
-"Conference Proceedings","ICEGOV: International Conference on Theory and Practice of Electronic Governance","","","","2007 (December 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/icegov/","http://portal.acm.org/proceedings/icegov/archive/"
-"Conference Proceedings","ICER: International Computing Education Research Workshop","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/icer/","http://portal.acm.org/proceedings/icer/archive/"
-"Conference Proceedings","ICFP: International Conference on Functional Programmuing","","","","1996 (June 1996)","2013 (September 2013)","http://portal.acm.org/proceedings/icfp/","http://portal.acm.org/proceedings/icfp/archive/"
-"Conference Proceedings","ICHIT: International Conference on Hybrid Information Technology","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/ichit/","http://portal.acm.org/proceedings/ichit/archive/"
-"Conference Proceedings","ICIC: Intercultural Collaboration","","","","2010 (August 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/icic/","http://portal.acm.org/proceedings/icic/archive/"
-"Conference Proceedings","ICIMCS: Internet Multimedia Computing and Service","","","","2009 (November 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/icimcs/","http://portal.acm.org/proceedings/icimcs/archive/"
-"Conference Proceedings","ICIS: International Conference on Computer and Information Science","","","","1989 (December 1989)","2009 (November 2009)","http://portal.acm.org/proceedings/icis/","http://portal.acm.org/proceedings/icis/archive/"
-"Conference Proceedings","ICMI: International Conference on Multimodal Interfaces","","","","2002 (October 2002)","2013 (December 2013)","http://portal.acm.org/proceedings/icmi/","http://portal.acm.org/proceedings/icmi/archive/"
-"Conference Proceedings","ICML: International Conference on Machine Learning","","","","2004 (July 2004)","2009 (June 2009)","http://portal.acm.org/proceedings/icml/","http://portal.acm.org/proceedings/icml/archive/"
-"Conference Proceedings","ICOOOLPS: Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/icooolps/","http://portal.acm.org/proceedings/icooolps/archive/"
-"Conference Proceedings","ICPS: Pervasive Services","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/icps/","http://portal.acm.org/proceedings/icps/archive/"
-"Conference Proceedings","ICPW: International Conference on Pragmatic Web","","","","2007 (October 2007)","2008 (November 2008)","http://portal.acm.org/proceedings/icpw/","http://portal.acm.org/proceedings/icpw/archive/"
-"Conference Proceedings","ICS: International Conference on Supercomputing","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/ics/","http://portal.acm.org/proceedings/ics/archive/"
-"Conference Proceedings","ICSE: International Conference on Software Engineering","","","","1976 (October 1976)","2012 (June 2012)","http://portal.acm.org/proceedings/icse/","http://portal.acm.org/proceedings/icse/archive/"
-"Conference Proceedings","ICSOC: International Conference on Service Oriented Computing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/icsoc/","http://portal.acm.org/proceedings/icsoc/archive/"
-"Conference Proceedings","ICTD: Information and Communication Technologies and Development ","","","","2009 (April 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/ictd/","http://portal.acm.org/proceedings/ictd/archive/"
-"Conference Proceedings","ICUIMC: International Conference on Ubiquitous Information Management and Communication","","","","2008 (January 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/icuimc/","http://portal.acm.org/proceedings/icuimc/archive/"
-"Conference Proceedings","ICVGIP: Indian Conference on Computer Vision, Graphics and Image Processing","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/icvgip/","http://portal.acm.org/proceedings/icvgip/archive/"
-"Conference Proceedings","ICWE: Web Engineering","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/icwe/","http://portal.acm.org/proceedings/icwe/archive/"
-"Conference Proceedings","ICWET: Workshop on Emerging Trends in Technology","","","","2010 (February 2010)","2011 (February 2011)","http://portal.acm.org/proceedings/icwet/","http://portal.acm.org/proceedings/icwet/archive/"
-"Conference Proceedings","IDAR: Innovative Database Research","","","","2008 (June 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/idar/","http://portal.acm.org/proceedings/idar/archive/"
-"Conference Proceedings","IDC: Interaction Design and Children","","","","2003 (July 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/idc/","http://portal.acm.org/proceedings/idc/archive/"
-"Conference Proceedings","IDEAS: International Database Engineering &#38; Applications Symposium","","","","2008 (September 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/ideas/","http://portal.acm.org/proceedings/ideas/archive/"
-"Conference Proceedings","IDL: Interface Definition Languages","","","","1994 (August 1994)","1994 (August 1994)","http://portal.acm.org/proceedings/idl/","http://portal.acm.org/proceedings/idl/archive/"
-"Conference Proceedings","IDTRUST: Identity and Trust on the Internet","","","","2008 (March 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/idtrust/","http://portal.acm.org/proceedings/idtrust/archive/"
-"Conference Proceedings","IE: Interactive Entertainment","","","","2006 (December 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/ie/","http://portal.acm.org/proceedings/ie/archive/"
-"Conference Proceedings","IEA/AIE: Industrial and Engineering Applications of Artificial Intelligence and Expert Systems","","","","1988 (June 1988)","2011 (June 2011)","http://portal.acm.org/proceedings/iea/aie/","http://portal.acm.org/proceedings/iea/aie/archive/"
-"Conference Proceedings","IFMT: Next-Generation Multicore/Manycore Technologies","","","","2008 (November 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/ifmt/","http://portal.acm.org/proceedings/ifmt/archive/"
-"Conference Proceedings","IHC: Brazilian Symposium on Human Factors in Computing Systems","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ihc/","http://portal.acm.org/proceedings/ihc/archive/"
-"Conference Proceedings","IHI: International Health Informatics Symposium","","","","2010 (November 2010)","2012 (January 2012)","http://portal.acm.org/proceedings/ihi/","http://portal.acm.org/proceedings/ihi/archive/"
-"Conference Proceedings","IHIS: Interoperability of Heterogeneous Information Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ihis/","http://portal.acm.org/proceedings/ihis/archive/"
-"Conference Proceedings","IHM: International Conference on Association Francophone d'Interaction Homme-Machine","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/ihm/","http://portal.acm.org/proceedings/ihm/archive/"
-"Conference Proceedings","IIES: Isolation and Integration in Embedded Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/iies/","http://portal.acm.org/proceedings/iies/archive/"
-"Conference Proceedings","IIiX: Information Interaction in Context","","","","2006 (October 2006)","2012 (August 2012)","http://portal.acm.org/proceedings/iiix/","http://portal.acm.org/proceedings/iiix/archive/"
-"Conference Proceedings","ILC: International Lisp Conference","","","","2009 (April 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/ilc/","http://portal.acm.org/proceedings/ilc/archive/"
-"Conference Proceedings","IMC: Internet Measurement Conference","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/imc/","http://portal.acm.org/proceedings/imc/archive/"
-"Conference Proceedings","IMCE: Interactive Multimedia for Consumer Electronics","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/imce/","http://portal.acm.org/proceedings/imce/archive/"
-"Conference Proceedings","IMW: Internet Measurement Workshop","","","","2001 (November 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/imw/","http://portal.acm.org/proceedings/imw/archive/"
-"Conference Proceedings","INA-OCMC: Interconnection Network Architecture: On-Chip, Multi-Chip","","","","2011 (January 2011)","2011 (January 2011)","http://portal.acm.org/proceedings/ina-ocmc/","http://portal.acm.org/proceedings/ina-ocmc/archive/"
-"Conference Proceedings","INM: Internet Network Management","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/inm/","http://portal.acm.org/proceedings/inm/archive/"
-"Conference Proceedings","INT3: Intelligent Narrative Technologies","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/int3/","http://portal.acm.org/proceedings/int3/archive/"
-"Conference Proceedings","INTERACT: Interaction between Compilers and Computer Architecture","","","","2010 (March 2010)","2010 (March 2010)","http://portal.acm.org/proceedings/interact/","http://portal.acm.org/proceedings/interact/archive/"
-"Conference Proceedings","INTETAIN: Intelligent Technologies for Interactive Entertainment","","","","2007 (January 2008)","2007 (January 2008)","http://portal.acm.org/proceedings/intetain/","http://portal.acm.org/proceedings/intetain/archive/"
-"Conference Proceedings","IOPADS: I/O in Parallel and Distributed Systems","","","","1996 (May 1996)","1999 (May 1999)","http://portal.acm.org/proceedings/iopads/","http://portal.acm.org/proceedings/iopads/archive/"
-"Conference Proceedings","IPSN: Information Processing in Sensor Networks","","","","2004 (April 2004)","2013 (April 2013)","http://portal.acm.org/proceedings/ipsn/","http://portal.acm.org/proceedings/ipsn/archive/"
-"Conference Proceedings","IPT/EDT: Immersive Projection technologies/Emerging Display Technologies","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/ipt/edt/","http://portal.acm.org/proceedings/ipt/edt/archive/"
-"Conference Proceedings","IPTComm: Principles, Systems and Applications of IP Telecommunications","","","","2007 (July 2007)","2010 (August 2010)","http://portal.acm.org/proceedings/iptcomm/","http://portal.acm.org/proceedings/iptcomm/archive/"
-"Conference Proceedings","IQIS: Information Quality in Information Systems","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/iqis/","http://portal.acm.org/proceedings/iqis/archive/"
-"Conference Proceedings","IR: Intermediate Representations","","","","1995 (March 1995)","1995 (March 1995)","http://portal.acm.org/proceedings/ir/","http://portal.acm.org/proceedings/ir/archive/"
-"Conference Proceedings","IRAL: Information Retrieval with Asian Languages","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/iral/","http://portal.acm.org/proceedings/iral/archive/"
-"Conference Proceedings","IRE-ACM-AIEE: IRE-ACM-AIEE","","","","1957 (February 1957)","1961 (May 1961)","http://portal.acm.org/proceedings/ire-acm-aiee/","http://portal.acm.org/proceedings/ire-acm-aiee/archive/"
-"Conference Proceedings","IRTAW: Real-Time Ada","","","","1987 (October 1987)","2007 (April 2007)","http://portal.acm.org/proceedings/irtaw/","http://portal.acm.org/proceedings/irtaw/archive/"
-"Conference Proceedings","IS: Guidelines for undergraduate degree programs on Model curriculum and guidelines for undergraduate degree programs in information systems","","","","1997 (December 1997)","1997 (December 1997)","http://portal.acm.org/proceedings/is/","http://portal.acm.org/proceedings/is/archive/"
-"Conference Proceedings","ISA: Indoor Spatial Awareness ","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/isa/","http://portal.acm.org/proceedings/isa/archive/"
-"Conference Proceedings","ISAW: Software Architecture Workshop","","","","1996 (October 1996)","1998 (November 1998)","http://portal.acm.org/proceedings/isaw/","http://portal.acm.org/proceedings/isaw/archive/"
-"Conference Proceedings","ISB: International Symposium on Biocomputing","","","","2010 (February 2010)","2010 (February 2010)","http://portal.acm.org/proceedings/isb/","http://portal.acm.org/proceedings/isb/archive/"
-"Conference Proceedings","ISCA: International Symposium on Computer Architecture","","","","1973 (December 1973)","2013 (June 2013)","http://portal.acm.org/proceedings/isca/","http://portal.acm.org/proceedings/isca/archive/"
-"Conference Proceedings","ISEC: India Software Engineering Conference","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/isec/","http://portal.acm.org/proceedings/isec/archive/"
-"Conference Proceedings","ISESE: International Symposium on Empirical Software Engineering","","","","2002 (October 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/isese/","http://portal.acm.org/proceedings/isese/archive/"
-"Conference Proceedings","ISLPED: International Symposium on Low Power Electronic Design","","","","1995 (April 1995)","2012 (July 2012)","http://portal.acm.org/proceedings/islped/","http://portal.acm.org/proceedings/islped/archive/"
-"Conference Proceedings","ISMAR: Mixed and Augmented Reality","","","","2002 (September 2002)","2009 (October 2009)","http://portal.acm.org/proceedings/ismar/","http://portal.acm.org/proceedings/ismar/archive/"
-"Conference Proceedings","ISMIS: International Symposium on Methodologies for Intelligent Systems","","","","1986 (December 1986)","1986 (December 1986)","http://portal.acm.org/proceedings/ismis/","http://portal.acm.org/proceedings/ismis/archive/"
-"Conference Proceedings","ISMM: Memory Management","","","","1998 (October 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/ismm/","http://portal.acm.org/proceedings/ismm/archive/"
-"Conference Proceedings","ISPA: Parallel and Distributed Processing and Applications","","","","2003 (July 2003)","2004 (December 2004)","http://portal.acm.org/proceedings/ispa/","http://portal.acm.org/proceedings/ispa/archive/"
-"Conference Proceedings","ISPD: Physical Design","","","","1997 (April 1997)","2013 (March 2013)","http://portal.acm.org/proceedings/ispd/","http://portal.acm.org/proceedings/ispd/archive/"
-"Conference Proceedings","ISPW: International Software Process Workshop","","","","1988 (April 1988)","1996 (June 1996)","http://portal.acm.org/proceedings/ispw/","http://portal.acm.org/proceedings/ispw/archive/"
-"Conference Proceedings","ISQED: Quality Electronic Design","","","","2006 (March 2006)","2006 (March 2006)","http://portal.acm.org/proceedings/isqed/","http://portal.acm.org/proceedings/isqed/archive/"
-"Conference Proceedings","ISSAC: International Symposium of Symbolic and Algebraic Computation","","","","1989 (July 1989)","2013 (June 2013)","http://portal.acm.org/proceedings/issac/","http://portal.acm.org/proceedings/issac/archive/"
-"Conference Proceedings","ISSS: International Symposium on System Synthesis","","","","1994 (May 1994)","2002 (October 2002)","http://portal.acm.org/proceedings/isss/","http://portal.acm.org/proceedings/isss/archive/"
-"Conference Proceedings","ISSTA: International Symposium on Software Testing and Analysis","","","","1993 (August 1993)","2013 (July 2013)","http://portal.acm.org/proceedings/issta/","http://portal.acm.org/proceedings/issta/archive/"
-"Conference Proceedings","ISTA: Information Science, Technology and Applications","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/ista/","http://portal.acm.org/proceedings/ista/archive/"
-"Conference Proceedings","ISWSA: Intelligent Semantic Web &mdash; Services and Applications","","","","2010 (June 2010)","2011 (April 2011)","http://portal.acm.org/proceedings/iswsa/","http://portal.acm.org/proceedings/iswsa/archive/"
-"Conference Proceedings","ITS: Interactive Tabletops and Surfaces","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/its/","http://portal.acm.org/proceedings/its/archive/"
-"Conference Proceedings","ITiCSE: Innovation and Technology in Computer Science Education","","","","1996 (June 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/iticse/","http://portal.acm.org/proceedings/iticse/archive/"
-"Conference Proceedings","IUCS: International Universal Communication Symposium","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/iucs/","http://portal.acm.org/proceedings/iucs/archive/"
-"Conference Proceedings","IUI: Intelligent User Interfaces","","","","1993 (February 1993)","2013 (March 2013)","http://portal.acm.org/proceedings/iui/","http://portal.acm.org/proceedings/iui/archive/"
-"Conference Proceedings","IVME: Interpreters, Virtual Machines and Emulators","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/ivme/","http://portal.acm.org/proceedings/ivme/archive/"
-"Conference Proceedings","IW-SOSWE: Service Oriented Software Engineering","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/iw-soswe/","http://portal.acm.org/proceedings/iw-soswe/archive/"
-"Conference Proceedings","IWAAPF: Application and Advances of Problem Frames","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/iwaapf/","http://portal.acm.org/proceedings/iwaapf/archive/"
-"Conference Proceedings","IWACO: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/iwaco/","http://portal.acm.org/proceedings/iwaco/archive/"
-"Conference Proceedings","IWCMC: International Wireless Communications and Mobile Computing Conference","","","","2006 (July 2006)","2010 (June 2010)","http://portal.acm.org/proceedings/iwcmc/","http://portal.acm.org/proceedings/iwcmc/archive/"
-"Conference Proceedings","IWCTS: Computational Transportation Science","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/iwcts/","http://portal.acm.org/proceedings/iwcts/archive/"
-"Conference Proceedings","IWDE: Digital Engineering","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/iwde/","http://portal.acm.org/proceedings/iwde/archive/"
-"Conference Proceedings","IWGS: International Workshop on GeoStreaming","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/iwgs/","http://portal.acm.org/proceedings/iwgs/archive/"
-"Conference Proceedings","IWIC: Intercultural Collaboration","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/iwic/","http://portal.acm.org/proceedings/iwic/archive/"
-"Conference Proceedings","IWICSS: Incorporating COTS Software into Software Systems","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/iwicss/","http://portal.acm.org/proceedings/iwicss/archive/"
-"Conference Proceedings","IWMCP: Model Comparison in Practice","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/iwmcp/","http://portal.acm.org/proceedings/iwmcp/archive/"
-"Conference Proceedings","IWMSE: Multicore Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/iwmse/","http://portal.acm.org/proceedings/iwmse/archive/"
-"Conference Proceedings","IWOCE: Open Component EcoSystems","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/iwoce/","http://portal.acm.org/proceedings/iwoce/archive/"
-"Conference Proceedings","IWPSE-EVOL: Software Evolution and Principles of Software Evolution ","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/iwpse-evol/","http://portal.acm.org/proceedings/iwpse-evol/archive/"
-"Conference Proceedings","IWPSE: Principles of Software Evolution","","","","2001 (September 2001)","2013 (August 2013)","http://portal.acm.org/proceedings/iwpse/","http://portal.acm.org/proceedings/iwpse/archive/"
-"Conference Proceedings","IWQoS: Quality of Service","","","","2003 (June 2003)","2012 (June 2012)","http://portal.acm.org/proceedings/iwqos/","http://portal.acm.org/proceedings/iwqos/archive/"
-"Conference Proceedings","IWRIDL: Research Issues in Digital Libraries","","","","2007 (December 2006)","2007 (December 2006)","http://portal.acm.org/proceedings/iwridl/","http://portal.acm.org/proceedings/iwridl/archive/"
-"Conference Proceedings","IWSC: Software Clones","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/iwsc/","http://portal.acm.org/proceedings/iwsc/archive/"
-"Conference Proceedings","IWSESS: Software Engineering for Secure Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/iwsess/","http://portal.acm.org/proceedings/iwsess/archive/"
-"Conference Proceedings","IWSSD: International Workshop on Software Specification and Design","","","","1989 (April 1989)","2000 (November 2000)","http://portal.acm.org/proceedings/iwssd/","http://portal.acm.org/proceedings/iwssd/archive/"
-"Conference Proceedings","IWST: Smalltalk Technologies","","","","2009 (August 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/iwst/","http://portal.acm.org/proceedings/iwst/archive/"
-"Conference Proceedings","IWSTI: Satellite/Terrestrial Interworking","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/iwsti/","http://portal.acm.org/proceedings/iwsti/archive/"
-"Conference Proceedings","IWVS: Video Surveillance","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/iwvs/","http://portal.acm.org/proceedings/iwvs/archive/"
-"Conference Proceedings","InfoScale: Scalable Information Systems","","","","2006 (May 2006)","2007 (June 2007)","http://portal.acm.org/proceedings/infoscale/","http://portal.acm.org/proceedings/infoscale/archive/"
-"Conference Proceedings","InfoSecCD: Information Security Curriculum Development","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/infoseccd/","http://portal.acm.org/proceedings/infoseccd/archive/"
-"Conference Proceedings","InfoSecu: Information Security","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/infosecu/","http://portal.acm.org/proceedings/infosecu/archive/"
-"Conference Proceedings","Insider Threats: Insider Threats","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/insiderthreats/","http://portal.acm.org/proceedings/insiderthreats/archive/"
-"Conference Proceedings","InterSense: Integrated Internet Ad Hoc and Sensor Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/intersense/","http://portal.acm.org/proceedings/intersense/archive/"
-"Conference Proceedings","Internetware: Internetware","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/internetware/","http://portal.acm.org/proceedings/internetware/archive/"
-"Conference Proceedings","Interperf: Interdisciplinary Systems Approach in Performance Evaluation and Design of Computer & Communications Systems","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/interperf/","http://portal.acm.org/proceedings/interperf/archive/"
-"Conference Proceedings","JAVA: Java Grande","","","","1999 (June 1999)","2000 (June 2000)","http://portal.acm.org/proceedings/java/","http://portal.acm.org/proceedings/java/archive/"
-"Conference Proceedings","JCDL: Joint Conference on Digital Libraries","","","","2001 (January 2001)","2013 (July 2013)","http://portal.acm.org/proceedings/jcdl/","http://portal.acm.org/proceedings/jcdl/archive/"
-"Conference Proceedings","JGI: ACM-ISCOPE conference on Java Grande","","","","2001 (June 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/jgi/","http://portal.acm.org/proceedings/jgi/archive/"
-"Conference Proceedings","JTRES: Java Technologies for Real-Time and Embedded Systems","","","","2006 (October 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/jtres/","http://portal.acm.org/proceedings/jtres/archive/"
-"Conference Proceedings","K-CAP: Knowledge Capture","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/k-cap/","http://portal.acm.org/proceedings/k-cap/archive/"
-"Conference Proceedings","KDD: Knowledge Discovery and Data Mining","","","","1999 (August 1999)","2013 (August 2013)","http://portal.acm.org/proceedings/kdd/","http://portal.acm.org/proceedings/kdd/archive/"
-"Conference Proceedings","KEYS: Keyword Search on Structured Data","","","","2009 (June 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/keys/","http://portal.acm.org/proceedings/keys/archive/"
-"Conference Proceedings","Koli Calling: Koli Calling International Conference on Computing Education Research ","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/kolicalling/","http://portal.acm.org/proceedings/kolicalling/archive/"
-"Conference Proceedings","Koli: Computing Education Research","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/koli/","http://portal.acm.org/proceedings/koli/archive/"
-"Conference Proceedings","LADIS: Large-Scale Distributed Systems and Middleware","","","","2008 (September 2008)","2010 (July 2010)","http://portal.acm.org/proceedings/ladis/","http://portal.acm.org/proceedings/ladis/archive/"
-"Conference Proceedings","LANC: Latin American Networking Conference","","","","2003 (October 2003)","2012 (October 2012)","http://portal.acm.org/proceedings/lanc/","http://portal.acm.org/proceedings/lanc/archive/"
-"Conference Proceedings","LATE: Linking Aspect Technology and Evolution","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/late/","http://portal.acm.org/proceedings/late/archive/"
-"Conference Proceedings","LBSN: Location Based Social Networks","","","","2009 (November 2009)","2012 (November 2012)","http://portal.acm.org/proceedings/lbsn/","http://portal.acm.org/proceedings/lbsn/archive/"
-"Conference Proceedings","LCR: Languages, Compilers, and Run-time Support for Scalable Systems","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/lcr/","http://portal.acm.org/proceedings/lcr/archive/"
-"Conference Proceedings","LCSD: Library-Centric Software Design","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/lcsd/","http://portal.acm.org/proceedings/lcsd/archive/"
-"Conference Proceedings","LCTES: Languages, Compilers, and Tools for Embedded Systems","","","","1995 (November 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/lctes/","http://portal.acm.org/proceedings/lctes/archive/"
-"Conference Proceedings","LDTA: Language Descriptions, Tools and Applications","","","","2010 (March 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/ldta/","http://portal.acm.org/proceedings/ldta/archive/"
-"Conference Proceedings","LFMTP: Logical Frameworks and Meta-Languages","","","","2009 (August 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/lfmtp/","http://portal.acm.org/proceedings/lfmtp/archive/"
-"Conference Proceedings","LFP: LISP and Functional Programming","","","","1980 (August 1980)","1994 (July 1994)","http://portal.acm.org/proceedings/lfp/","http://portal.acm.org/proceedings/lfp/archive/"
-"Conference Proceedings","LISP: Celebrating the 50th Anniversary of Lisp","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/lisp/","http://portal.acm.org/proceedings/lisp/archive/"
-"Conference Proceedings","LMSA: Leadership and Management in Software Architecture","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/lmsa/","http://portal.acm.org/proceedings/lmsa/archive/"
-"Conference Proceedings","LOCWEB: Location and the Web","","","","2008 (April 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/locweb/","http://portal.acm.org/proceedings/locweb/archive/"
-"Conference Proceedings","LS-MMRM: Large-Scale Multimedia Retrieval and Mining","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/ls-mmrm/","http://portal.acm.org/proceedings/ls-mmrm/archive/"
-"Conference Proceedings","LSAD: Large-Scale Attack Defense","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/lsad/","http://portal.acm.org/proceedings/lsad/archive/"
-"Conference Proceedings","LSAP: Large-scale System and Application Performance","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/lsap/","http://portal.acm.org/proceedings/lsap/archive/"
-"Conference Proceedings","LSDS-IR: Large-Scale Distributed Systems for Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/lsds-ir/","http://portal.acm.org/proceedings/lsds-ir/archive/"
-"Conference Proceedings","LUV: LISP Users and Vendors","","","","1992 (August 1992)","1995 (August 1994)","http://portal.acm.org/proceedings/luv/","http://portal.acm.org/proceedings/luv/archive/"
-"Conference Proceedings","LinkKDD: Link Discovery","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/linkkdd/","http://portal.acm.org/proceedings/linkkdd/archive/"
-"Conference Proceedings","M-MPAC: Middleware for Pervasive Mobile and Embedded Computing","","","","2009 (November 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/m-mpac/","http://portal.acm.org/proceedings/m-mpac/archive/"
-"Conference Proceedings","MACS: Modeling and Analysis of Concerns in Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/macs/","http://portal.acm.org/proceedings/macs/archive/"
-"Conference Proceedings","MAI: Middleware Application Interaction","","","","2007 (March 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/mai/","http://portal.acm.org/proceedings/mai/archive/"
-"Conference Proceedings","MASPEGHI: MechAnisms for SPEcialization, Generalization and inHerItance","","","","2010 (June 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/maspeghi/","http://portal.acm.org/proceedings/maspeghi/archive/"
-"Conference Proceedings","MAW: Memory Access on Future Processors","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/maw/","http://portal.acm.org/proceedings/maw/archive/"
-"Conference Proceedings","MB: Methods and Techniques in Behavioral Research","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/mb/","http://portal.acm.org/proceedings/mb/archive/"
-"Conference Proceedings","MC: Middleware Companion","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mc/","http://portal.acm.org/proceedings/mc/archive/"
-"Conference Proceedings","MCMC: Mobile Cloud Media Computing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mcmc/","http://portal.acm.org/proceedings/mcmc/archive/"
-"Conference Proceedings","MCPS: Contents Proctection and Security","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/mcps/","http://portal.acm.org/proceedings/mcps/archive/"
-"Conference Proceedings","MCS: Mobile Cloud Computing and Services","","","","2010 (June 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/mcs/","http://portal.acm.org/proceedings/mcs/archive/"
-"Conference Proceedings","MD: Massive Datasets","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/md/","http://portal.acm.org/proceedings/md/archive/"
-"Conference Proceedings","MDAC: Massive Data Analytics on the Cloud","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/mdac/","http://portal.acm.org/proceedings/mdac/archive/"
-"Conference Proceedings","MDI: Model-Drive Interoperability","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mdi/","http://portal.acm.org/proceedings/mdi/archive/"
-"Conference Proceedings","MDM: Mobile Data Management","","","","2005 (May 2005)","2010 (May 2010)","http://portal.acm.org/proceedings/mdm/","http://portal.acm.org/proceedings/mdm/archive/"
-"Conference Proceedings","MDMKDD: Multimedia Data Mining","","","","2010 (July 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/mdmkdd/","http://portal.acm.org/proceedings/mdmkdd/archive/"
-"Conference Proceedings","MDS: Middleware Doctoral Symposium","","","","2006 (November 2006)","2013 (December 2013)","http://portal.acm.org/proceedings/mds/","http://portal.acm.org/proceedings/mds/archive/"
-"Conference Proceedings","MEDEA: Memory Performance: Dealing with Applications, Systems and Architecture","","","","2003 (September 2003)","2009 (September 2009)","http://portal.acm.org/proceedings/medea/","http://portal.acm.org/proceedings/medea/archive/"
-"Conference Proceedings","MEDES: Management of Emergent Digital EcoSystems","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/medes/","http://portal.acm.org/proceedings/medes/archive/"
-"Conference Proceedings","MELT: Mobile Entity Localization and Tracking in GPS-Less Environment","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/melt/","http://portal.acm.org/proceedings/melt/archive/"
-"Conference Proceedings","MEMOCODE: Formal Methods and Models for Co-Design","","","","2005 (July 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/memocode/","http://portal.acm.org/proceedings/memocode/archive/"
-"Conference Proceedings","MERLIN: Mechanized Reasoning about Languages with Variable Binding","","","","2003 (August 2003)","2005 (September 2005)","http://portal.acm.org/proceedings/merlin/","http://portal.acm.org/proceedings/merlin/archive/"
-"Conference Proceedings","MG: Mardi Gras Conference","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/mg/","http://portal.acm.org/proceedings/mg/archive/"
-"Conference Proceedings","MGC: Middleware for Grids, Clouds and e-Science","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mgc/","http://portal.acm.org/proceedings/mgc/archive/"
-"Conference Proceedings","MHC: Multimedia for Human Communication","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mhc/","http://portal.acm.org/proceedings/mhc/archive/"
-"Conference Proceedings","MICNET: Mobile Internet Through Cellular Networks","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/micnet/","http://portal.acm.org/proceedings/micnet/archive/"
-"Conference Proceedings","MICRO: Microarchitecture","","","","1972 (September 1972)","2013 (December 2013)","http://portal.acm.org/proceedings/micro/","http://portal.acm.org/proceedings/micro/archive/"
-"Conference Proceedings","MIIT: Model Inference In Testing","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/miit/","http://portal.acm.org/proceedings/miit/archive/"
-"Conference Proceedings","MIR: Multimedia Information Retrieval","","","","2003 (November 2003)","2010 (March 2010)","http://portal.acm.org/proceedings/mir/","http://portal.acm.org/proceedings/mir/archive/"
-"Conference Proceedings","MIS: Metainformatics","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mis/","http://portal.acm.org/proceedings/mis/archive/"
-"Conference Proceedings","MISE: Modeling in Software Engineering","","","","2007 (May 2007)","2009 (May 2009)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","ML: ML","","","","2006 (September 2006)","2009 (August 2009)","http://portal.acm.org/proceedings/ml/","http://portal.acm.org/proceedings/ml/archive/"
-"Conference Proceedings","MLG: Mining and Learning with Graphs","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/mlg/","http://portal.acm.org/proceedings/mlg/archive/"
-"Conference Proceedings","MLPA: Modules and Libraries for Proof Assistants","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/mlpa/","http://portal.acm.org/proceedings/mlpa/archive/"
-"Conference Proceedings","MMDB: Multimedia Databases","","","","2003 (November 2003)","2004 (November 2004)","http://portal.acm.org/proceedings/mmdb/","http://portal.acm.org/proceedings/mmdb/archive/"
-"Conference Proceedings","MML: Machine Learning and Music","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mml/","http://portal.acm.org/proceedings/mml/archive/"
-"Conference Proceedings","MMSEC: Multimedia and Security","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/mmsec/","http://portal.acm.org/proceedings/mmsec/archive/"
-"Conference Proceedings","MMSys: Multimedia Systems","","","","2010 (February 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/mmsys/","http://portal.acm.org/proceedings/mmsys/archive/"
-"Conference Proceedings","MNCNA: Middleware for Next-Generation Converged Networks and Applications","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mncna/","http://portal.acm.org/proceedings/mncna/archive/"
-"Conference Proceedings","MOBILWARE: Mobile Wireless Middleware, Operating Systems, and Applications","","","","2007 (February 2008)","2007 (February 2008)","http://portal.acm.org/proceedings/mobilware/","http://portal.acm.org/proceedings/mobilware/archive/"
-"Conference Proceedings","MOCR: Multilingual OCR","","","","2009 (July 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/mocr/","http://portal.acm.org/proceedings/mocr/archive/"
-"Conference Proceedings","MODDM: Model Driven Development for Middleware","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/moddm/","http://portal.acm.org/proceedings/moddm/archive/"
-"Conference Proceedings","MOMPES: Model-Based Methodologies for Pervasive and Embedded Software","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mompes/","http://portal.acm.org/proceedings/mompes/archive/"
-"Conference Proceedings","MPAC: Middleware for Pervasive and Ad-Hoc Computing","","","","2004 (October 2004)","2008 (December 2008)","http://portal.acm.org/proceedings/mpac/","http://portal.acm.org/proceedings/mpac/archive/"
-"Conference Proceedings","MPEC: Models and Processes for the Evaluation of Off-the-Shelf Components","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/mpec/","http://portal.acm.org/proceedings/mpec/archive/"
-"Conference Proceedings","MPVA: Multimodal Pervasive Video Analysis","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mpva/","http://portal.acm.org/proceedings/mpva/archive/"
-"Conference Proceedings","MRDM: Multi-Relational Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/mrdm/","http://portal.acm.org/proceedings/mrdm/archive/"
-"Conference Proceedings","MS: Multimedia Semantics","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/ms/","http://portal.acm.org/proceedings/ms/archive/"
-"Conference Proceedings","MSC: Multimedia Service Composition","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/msc/","http://portal.acm.org/proceedings/msc/archive/"
-"Conference Proceedings","MSFP: Mathematically Structured Functional Programming","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/msfp/","http://portal.acm.org/proceedings/msfp/archive/"
-"Conference Proceedings","MSIADU: Media Studies and Implementations that Help Improving Access to Disabled Users","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/msiadu/","http://portal.acm.org/proceedings/msiadu/archive/"
-"Conference Proceedings","MSM: Modeling Social Media","","","","2010 (June 2010)","2013 (May 2013)","http://portal.acm.org/proceedings/msm/","http://portal.acm.org/proceedings/msm/archive/"
-"Conference Proceedings","MSPC: Memory System Performance and Correctness","","","","2002 (June 2002)","2012 (June 2012)","http://portal.acm.org/proceedings/mspc/","http://portal.acm.org/proceedings/mspc/archive/"
-"Conference Proceedings","MSR: Mining Software Repositories","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/msr/","http://portal.acm.org/proceedings/msr/archive/"
-"Conference Proceedings","MSWiM: Modeling, Analysis and Simulation of Wireless and Mobile Systems","","","","1999 (August 1999)","2013 (November 2013)","http://portal.acm.org/proceedings/mswim/","http://portal.acm.org/proceedings/mswim/archive/"
-"Conference Proceedings","MTAGS: Many-Task Computing on Grids and Supercomputers","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mtags/","http://portal.acm.org/proceedings/mtags/archive/"
-"Conference Proceedings","MTDL: Multimedia Technologies for Distance Learning","","","","2009 (October 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/mtdl/","http://portal.acm.org/proceedings/mtdl/archive/"
-"Conference Proceedings","MUCS: Managing Ubiquitous Communications and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/mucs/","http://portal.acm.org/proceedings/mucs/archive/"
-"Conference Proceedings","MULTIMEDIA: Multimedia","","","","1993 (September 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/multimedia/","http://portal.acm.org/proceedings/multimedia/archive/"
-"Conference Proceedings","MUM: Mobile and Ubiquitous Multimedia","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mum/","http://portal.acm.org/proceedings/mum/archive/"
-"Conference Proceedings","MV: Mobile Video","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/mv/","http://portal.acm.org/proceedings/mv/archive/"
-"Conference Proceedings","MW: Multimedia Middleware","","","","2001 (October 2001)","2012 (September 2012)","http://portal.acm.org/proceedings/mw/","http://portal.acm.org/proceedings/mw/archive/"
-"Conference Proceedings","MWSOC: Middleware for Service Oriented Computing","","","","2006 (November 2006)","2011 (December 2011)","http://portal.acm.org/proceedings/mwsoc/","http://portal.acm.org/proceedings/mwsoc/archive/"
-"Conference Proceedings","MetriSec: Security Measurements and Metrics","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/metrisec/","http://portal.acm.org/proceedings/metrisec/archive/"
-"Conference Proceedings","MiFor: Multimedia in Forensics","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mifor/","http://portal.acm.org/proceedings/mifor/archive/"
-"Conference Proceedings","MiNEMA: Middleware for Network Eccentric and Mobile Applications","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/minema/","http://portal.acm.org/proceedings/minema/archive/"
-"Conference Proceedings","MiSE: Models in Software Engineering","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","MidSec: Middleware Security","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/midsec/","http://portal.acm.org/proceedings/midsec/archive/"
-"Conference Proceedings","MidSens: Middleware Tools, Services and Run-Time Support for Sensor Networks","","","","2006 (November 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/midsens/","http://portal.acm.org/proceedings/midsens/archive/"
-"Conference Proceedings","Middleware Industrial Track: Middleware Industrial Track","","","","2010 (November 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/middlewareindustrialtrack/","http://portal.acm.org/proceedings/middlewareindustrialtrack/archive/"
-"Conference Proceedings","Middleware: Middleware","","","","2000 (April 2000)","2012 (December 2012)","http://portal.acm.org/proceedings/middleware/","http://portal.acm.org/proceedings/middleware/archive/"
-"Conference Proceedings","MindTrek: Entertainment and Media in the Ubiquitous Era","","","","2008 (October 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/mindtrek/","http://portal.acm.org/proceedings/mindtrek/archive/"
-"Conference Proceedings","MineNet: Mining Network Data","","","","2005 (August 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/minenet/","http://portal.acm.org/proceedings/minenet/archive/"
-"Conference Proceedings","MoDELS: Models in software engineering","","","","2005 (October 2005)","2012 (September 2012)","http://portal.acm.org/proceedings/models/","http://portal.acm.org/proceedings/models/archive/"
-"Conference Proceedings","MoDeVVa: Model-Driven Engineering, Verification and Validation","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/modevva/","http://portal.acm.org/proceedings/modevva/archive/"
-"Conference Proceedings","MoMM: Mobile Computing and Multimedia","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/momm/","http://portal.acm.org/proceedings/momm/archive/"
-"Conference Proceedings","MoMeTools: Models, Methods and Tools for Reproducible Network Research","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/mometools/","http://portal.acm.org/proceedings/mometools/archive/"
-"Conference Proceedings","MoSE+DQS: Model Driven Service Engineering and Data Quality and Security","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/mose+dqs/","http://portal.acm.org/proceedings/mose+dqs/archive/"
-"Conference Proceedings","MoViD: Mobile Video Delivery","","","","2010 (October 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/movid/","http://portal.acm.org/proceedings/movid/archive/"
-"Conference Proceedings","MobConQoE: Mobile Content Quality of Experience","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/mobconqoe/","http://portal.acm.org/proceedings/mobconqoe/archive/"
-"Conference Proceedings","MobMid: Mobile Middleware","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/mobmid/","http://portal.acm.org/proceedings/mobmid/archive/"
-"Conference Proceedings","MobiArch: Mobility in the Evolving Internet Architecture","","","","2006 (December 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/mobiarch/","http://portal.acm.org/proceedings/mobiarch/archive/"
-"Conference Proceedings","MobiCom: Mobile Computing","","","","1995 (December 1995)","2013 (September 2013)","http://portal.acm.org/proceedings/mobicom/","http://portal.acm.org/proceedings/mobicom/archive/"
-"Conference Proceedings","MobiDE: Data Engineering for Wireless and Mobile Access","","","","1999 (August 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/mobide/","http://portal.acm.org/proceedings/mobide/archive/"
-"Conference Proceedings","MobiEval: System Evaluation for Mobile Platforms","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/mobieval/","http://portal.acm.org/proceedings/mobieval/archive/"
-"Conference Proceedings","MobiHeld: Networking, Systems, and Applications for Mobile Handhelds","","","","2009 (August 2009)","2011 (October 2011)","http://portal.acm.org/proceedings/mobiheld/","http://portal.acm.org/proceedings/mobiheld/archive/"
-"Conference Proceedings","MobiHoc: Mobile Ad Hoc Networking and Computing","","","","2000 (November 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/mobihoc/","http://portal.acm.org/proceedings/mobihoc/archive/"
-"Conference Proceedings","MobiMedia: Mobile Multimedia Communications","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/mobimedia/","http://portal.acm.org/proceedings/mobimedia/archive/"
-"Conference Proceedings","MobiOpp: Mobile Opportunistic Networking","","","","2007 (June 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/mobiopp/","http://portal.acm.org/proceedings/mobiopp/archive/"
-"Conference Proceedings","MobiShare: Decentralized Resource Sharing in Mobile Computing and Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/mobishare/","http://portal.acm.org/proceedings/mobishare/archive/"
-"Conference Proceedings","MobiSys: Mobile Systems, Applications, and Services","","","","2003 (May 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/mobisys/","http://portal.acm.org/proceedings/mobisys/archive/"
-"Conference Proceedings","MobiVirt: Virtualization in Mobile Computing","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/mobivirt/","http://portal.acm.org/proceedings/mobivirt/archive/"
-"Conference Proceedings","MobiWac: Mobility Management and Wireless Access","","","","2002 (October 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/mobiwac/","http://portal.acm.org/proceedings/mobiwac/archive/"
-"Conference Proceedings","MobileHCI: Human Computer Interaction with Mobile Devices and Services","","","","2005 (September 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/mobilehci/","http://portal.acm.org/proceedings/mobilehci/archive/"
-"Conference Proceedings","Mobility: Mobile Technology, Applications, and Systems","","","","2006 (October 2006)","2009 (September 2009)","http://portal.acm.org/proceedings/mobility/","http://portal.acm.org/proceedings/mobility/archive/"
-"Conference Proceedings","MobilityModels: Mobility Models","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mobilitymodels/","http://portal.acm.org/proceedings/mobilitymodels/archive/"
-"Conference Proceedings","NAOMI: Next Generation Aspect Oriented Middleware","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/naomi/","http://portal.acm.org/proceedings/naomi/archive/"
-"Conference Proceedings","NDA: Network Data Anonymization","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/nda/","http://portal.acm.org/proceedings/nda/archive/"
-"Conference Proceedings","NETFLIX: Large-Scale Recommender Systems and the Netflix Prize Competition","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/netflix/","http://portal.acm.org/proceedings/netflix/archive/"
-"Conference Proceedings","NICELI: Network-I/O Convergence","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/niceli/","http://portal.acm.org/proceedings/niceli/archive/"
-"Conference Proceedings","NIME: New Interfaces for Musical Expression","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/nime/","http://portal.acm.org/proceedings/nime/archive/"
-"Conference Proceedings","NOSSDAV: Network and Operating Systems Support for Digital Audio and Video","","","","2001 (January 2001)","2013 (February 2013)","http://portal.acm.org/proceedings/nossdav/","http://portal.acm.org/proceedings/nossdav/archive/"
-"Conference Proceedings","NOTERE: New Technologies in Distributed Systems","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/notere/","http://portal.acm.org/proceedings/notere/archive/"
-"Conference Proceedings","NPAR: Non-Photorealistic Animation and Rendering","","","","2000 (June 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/npar/","http://portal.acm.org/proceedings/npar/archive/"
-"Conference Proceedings","NPIV: New Paradigms in Information Visualization and Manipulation","","","","1997 (November 1997)","1998 (November 1998)","http://portal.acm.org/proceedings/npiv/","http://portal.acm.org/proceedings/npiv/archive/"
-"Conference Proceedings","NPIVM: NPIVM","","","","1999 (November 1999)","1999 (November 1999)","http://portal.acm.org/proceedings/npivm/","http://portal.acm.org/proceedings/npivm/archive/"
-"Conference Proceedings","NRBC: Next-Generation Residential Broadband Challenges","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/nrbc/","http://portal.acm.org/proceedings/nrbc/archive/"
-"Conference Proceedings","NSDI: Networked Systems Design & Implementation ","","","","2005 (May 2005)","2011 (March 2011)","http://portal.acm.org/proceedings/nsdi/","http://portal.acm.org/proceedings/nsdi/archive/"
-"Conference Proceedings","NSDR: Networked Systems for Developing Regions","","","","2007 (August 2007)","2011 (June 2011)","http://portal.acm.org/proceedings/nsdr/","http://portal.acm.org/proceedings/nsdr/archive/"
-"Conference Proceedings","NSEC: National Software Engineering Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/nsec/","http://portal.acm.org/proceedings/nsec/archive/"
-"Conference Proceedings","NSPW: New Security Paradigms and Workshop","","","","1993 (August 1993)","2013 (December 2013)","http://portal.acm.org/proceedings/nspw/","http://portal.acm.org/proceedings/nspw/archive/"
-"Conference Proceedings","Nanoarch: Nanoscale Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/nanoarch/","http://portal.acm.org/proceedings/nanoarch/archive/"
-"Conference Proceedings","NetEcon: Economics of Networked Systems","","","","2008 (August 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/netecon/","http://portal.acm.org/proceedings/netecon/archive/"
-"Conference Proceedings","NetGames: Network and Systems Support for Games","","","","2002 (April 2002)","2012 (November 2012)","http://portal.acm.org/proceedings/netgames/","http://portal.acm.org/proceedings/netgames/archive/"
-"Conference Proceedings","NetT: Network Troubleshooting","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/nett/","http://portal.acm.org/proceedings/nett/archive/"
-"Conference Proceedings","NoCArc: Network on Chip Architectures","","","","2009 (December 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/nocarc/","http://portal.acm.org/proceedings/nocarc/archive/"
-"Conference Proceedings","NordiCHI: Nordic Conference on Human-Computer Interaction","","","","2002 (October 2002)","2012 (October 2012)","http://portal.acm.org/proceedings/nordichi/","http://portal.acm.org/proceedings/nordichi/archive/"
-"Conference Proceedings","OBI: Ontology-supported Business Intelligence","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/obi/","http://portal.acm.org/proceedings/obi/archive/"
-"Conference Proceedings","OM: Optimization of Middleware and Distributed Systems","","","","2001 (August 2001)","2001 (August 2001)","http://portal.acm.org/proceedings/om/","http://portal.acm.org/proceedings/om/archive/"
-"Conference Proceedings","ONISW: Ontologies and Information Systems for the Semantic Web","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/onisw/","http://portal.acm.org/proceedings/onisw/archive/"
-"Conference Proceedings","OODS: Object-Oriented Database Systems","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/oods/","http://portal.acm.org/proceedings/oods/archive/"
-"Conference Proceedings","OOPWORK: OOPWORK","","","","1986 (June 1986)","1986 (June 1986)","http://portal.acm.org/proceedings/oopwork/","http://portal.acm.org/proceedings/oopwork/archive/"
-"Conference Proceedings","OSDI: Operating Systems Design and Implementation","","","","1994 (November 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/osdi/","http://portal.acm.org/proceedings/osdi/archive/"
-"Conference Proceedings","OSDM: Open Source Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/osdm/","http://portal.acm.org/proceedings/osdm/archive/"
-"Conference Proceedings","OZCHI: Australian Computer-Human Interaction Special Interest Group: Design","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ozchi/","http://portal.acm.org/proceedings/ozchi/archive/"
-"Conference Proceedings","P2PECON: Economics of Peer-to-Peer Systems","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/p2pecon/","http://portal.acm.org/proceedings/p2pecon/archive/"
-"Conference Proceedings","P2PIR: PPIR","","","","2005 (November 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/p2pir/","http://portal.acm.org/proceedings/p2pir/archive/"
-"Conference Proceedings","PACT: Parallel Architectures and Compilation Techniques","","","","1993 (January 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/pact/","http://portal.acm.org/proceedings/pact/archive/"
-"Conference Proceedings","PADD: Parallel and Distributed Debugging","","","","1988 (November 1988)","1993 (December 1993)","http://portal.acm.org/proceedings/padd/","http://portal.acm.org/proceedings/padd/archive/"
-"Conference Proceedings","PADS: Principles of Advanced and Distributed Simulation","","","","1993 (July 1993)","2013 (May 2013)","http://portal.acm.org/proceedings/pads/","http://portal.acm.org/proceedings/pads/archive/"
-"Conference Proceedings","PADTAD: Parallel and Distributed Systems: Testing, Analysis, and Debugging","","","","2006 (July 2006)","2012 (July 2012)","http://portal.acm.org/proceedings/padtad/","http://portal.acm.org/proceedings/padtad/archive/"
-"Conference Proceedings","PAIS: Privacy and Anonymity in Information Society","","","","2008 (March 2008)","2011 (March 2011)","http://portal.acm.org/proceedings/pais/","http://portal.acm.org/proceedings/pais/archive/"
-"Conference Proceedings","PASCO: Parallel Symbolic Computation","","","","1997 (July 1997)","2010 (July 2010)","http://portal.acm.org/proceedings/pasco/","http://portal.acm.org/proceedings/pasco/archive/"
-"Conference Proceedings","PASTE: Program Analysis for Software Tools and Engineering","","","","1998 (July 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/paste/","http://portal.acm.org/proceedings/paste/archive/"
-"Conference Proceedings","PAVLAD: Privacy and Anonymity for Very Large Databases","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/pavlad/","http://portal.acm.org/proceedings/pavlad/archive/"
-"Conference Proceedings","PCAR: Practical Cognitive Agents and Robots","","","","2006 (November 2006)","2010 (May 2010)","http://portal.acm.org/proceedings/pcar/","http://portal.acm.org/proceedings/pcar/archive/"
-"Conference Proceedings","PCGames: Procedural Content Generation in Games","","","","2010 (June 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/pcgames/","http://portal.acm.org/proceedings/pcgames/archive/"
-"Conference Proceedings","PCK: Principles of Computing & Knowledge","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/pck/","http://portal.acm.org/proceedings/pck/archive/"
-"Conference Proceedings","PCS: Personal Computer Security","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/pcs/","http://portal.acm.org/proceedings/pcs/archive/"
-"Conference Proceedings","PDC: Participatory Design","","","","2004 (July 2004)","2012 (August 2012)","http://portal.acm.org/proceedings/pdc/","http://portal.acm.org/proceedings/pdc/archive/"
-"Conference Proceedings","PDSW: Petascale Data Storage","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pdsw/","http://portal.acm.org/proceedings/pdsw/archive/"
-"Conference Proceedings","PE-WASUN: Performance Evaluation of Wireless Ad hoc Sensor, and Ubiquitous Networks","","","","2004 (October 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/pe-wasun/","http://portal.acm.org/proceedings/pe-wasun/archive/"
-"Conference Proceedings","PEICS: Pattern-Driven Engineering of Interactive Computing Systems","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/peics/","http://portal.acm.org/proceedings/peics/archive/"
-"Conference Proceedings","PEPM: Partial Evaluation and Program Manipulation","","","","1991 (May 1991)","2013 (January 2013)","http://portal.acm.org/proceedings/pepm/","http://portal.acm.org/proceedings/pepm/archive/"
-"Conference Proceedings","PERFORMANCE: Computer Performance Modelling, Measurement and Evaluation","","","","1980 (May 1980)","1980 (May 1980)","http://portal.acm.org/proceedings/performance/","http://portal.acm.org/proceedings/performance/archive/"
-"Conference Proceedings","PESOS: Principles of Engineering Service-Oriented Systems","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/pesos/","http://portal.acm.org/proceedings/pesos/archive/"
-"Conference Proceedings","PETRA: Pervasive Technologies Related to Assistive Environments","","","","2008 (July 2008)","2013 (May 2013)","http://portal.acm.org/proceedings/petra/","http://portal.acm.org/proceedings/petra/archive/"
-"Conference Proceedings","PGAS: Partitioned Global Address Space Programing Models","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/pgas/","http://portal.acm.org/proceedings/pgas/archive/"
-"Conference Proceedings","PIKM: Ph.D. Students in Information and Knowledge Management","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pikm/","http://portal.acm.org/proceedings/pikm/archive/"
-"Conference Proceedings","PINS: Practice and Theory of Incentives in Networked Systems","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/pins/","http://portal.acm.org/proceedings/pins/archive/"
-"Conference Proceedings","PLAS: Programming Languages and Analysis for Security","","","","2006 (June 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/plas/","http://portal.acm.org/proceedings/plas/archive/"
-"Conference Proceedings","PLATE: Linking Aspect Technology and Evolution","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/plate/","http://portal.acm.org/proceedings/plate/archive/"
-"Conference Proceedings","PLDI: Programming Language Design and Implementation","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/pldi/","http://portal.acm.org/proceedings/pldi/archive/"
-"Conference Proceedings","PLEASE: Product Line Approaches in Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/please/","http://portal.acm.org/proceedings/please/archive/"
-"Conference Proceedings","PLOS: Programming Languages and Operating Systems","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/plos/","http://portal.acm.org/proceedings/plos/archive/"
-"Conference Proceedings","PLPV: Programming Languages Meets Program Verification","","","","2007 (October 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/plpv/","http://portal.acm.org/proceedings/plpv/archive/"
-"Conference Proceedings","PLoP: Pattern Languages of Programs","","","","2006 (October 2006)","2010 (August 2009)","http://portal.acm.org/proceedings/plop/","http://portal.acm.org/proceedings/plop/archive/"
-"Conference Proceedings","PMHWN: Performance Monitoring and Measurement of Heterogenous Wireless and Wired Networks","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/pmhwn/","http://portal.acm.org/proceedings/pmhwn/archive/"
-"Conference Proceedings","PODC: Principles of Distributed Computing","","","","1982 (August 1982)","2013 (July 2013)","http://portal.acm.org/proceedings/podc/","http://portal.acm.org/proceedings/podc/archive/"
-"Conference Proceedings","PODS: Principles of Database Systems","","","","1982 (March 1982)","2013 (June 2013)","http://portal.acm.org/proceedings/pods/","http://portal.acm.org/proceedings/pods/archive/"
-"Conference Proceedings","POMC: Principles of Mobile Computing","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/pomc/","http://portal.acm.org/proceedings/pomc/archive/"
-"Conference Proceedings","POOSC: Parallel/High-Performance Object-Oriented Scientific Computing","","","","2009 (July 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/poosc/","http://portal.acm.org/proceedings/poosc/archive/"
-"Conference Proceedings","POPL: Principles of Programming Languages","","","","1973 (October 1973)","2013 (January 2013)","http://portal.acm.org/proceedings/popl/","http://portal.acm.org/proceedings/popl/archive/"
-"Conference Proceedings","PP-TV: Peer-to-Peer Streaming and IP-TV","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/pp-tv/","http://portal.acm.org/proceedings/pp-tv/archive/"
-"Conference Proceedings","PPDP: Principles and Practice of Declarative Programming","","","","2000 (September 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/ppdp/","http://portal.acm.org/proceedings/ppdp/archive/"
-"Conference Proceedings","PPEALS: Parallel Programming: Experience with Applications, Languages and Systems","","","","1988 (January 1988)","1988 (January 1988)","http://portal.acm.org/proceedings/ppeals/","http://portal.acm.org/proceedings/ppeals/archive/"
-"Conference Proceedings","PPMMS: Peer-to-Peer Multimedia Streaming","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ppmms/","http://portal.acm.org/proceedings/ppmms/archive/"
-"Conference Proceedings","PPPJ: Principles and Practice of Programming in Java","","","","2006 (August 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/pppj/","http://portal.acm.org/proceedings/pppj/archive/"
-"Conference Proceedings","PPoPP: Principles and Practice of Parallel Programming","","","","1990 (February 1990)","2013 (February 2013)","http://portal.acm.org/proceedings/ppopp/","http://portal.acm.org/proceedings/ppopp/archive/"
-"Conference Proceedings","PRESTO: Programmable Routers for Extensible Services of Tomorrow","","","","2008 (August 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/presto/","http://portal.acm.org/proceedings/presto/archive/"
-"Conference Proceedings","PROCAMS: Projector Camera Systems","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/procams/","http://portal.acm.org/proceedings/procams/archive/"
-"Conference Proceedings","PROMISE: Predictor Models in Software Engineering","","","","2005 (May 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/promise/","http://portal.acm.org/proceedings/promise/archive/"
-"Conference Proceedings","PRS: Parallel Rendering","","","","1993 (November 1993)","1997 (October 1997)","http://portal.acm.org/proceedings/prs/","http://portal.acm.org/proceedings/prs/archive/"
-"Conference Proceedings","PST: Privacy, Security and Trust","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/pst/","http://portal.acm.org/proceedings/pst/archive/"
-"Conference Proceedings","PUI: Perceptive User Interfaces","","","","2001 (November 2001)","2001 (November 2001)","http://portal.acm.org/proceedings/pui/","http://portal.acm.org/proceedings/pui/archive/"
-"Conference Proceedings","PVG: Parallel and Large-Data Visualization and Graphics","","","","2001 (October 2001)","2003 (October 2003)","http://portal.acm.org/proceedings/pvg/","http://portal.acm.org/proceedings/pvg/archive/"
-"Conference Proceedings","PVGS: Parallel Visualization and Graphics","","","","1999 (October 1999)","1999 (October 1999)","http://portal.acm.org/proceedings/pvgs/","http://portal.acm.org/proceedings/pvgs/archive/"
-"Conference Proceedings","PaIR: Patent Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/pair/","http://portal.acm.org/proceedings/pair/archive/"
-"Conference Proceedings","PerMIS: Performance Metrics for Intelligent Systems","","","","2007 (August 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/permis/","http://portal.acm.org/proceedings/permis/archive/"
-"Conference Proceedings","Persuasive: Persuasive Technology","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/persuasive/","http://portal.acm.org/proceedings/persuasive/archive/"
-"Conference Proceedings","Ph.D.: EDBT Ph.D. workshop","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ph.d./","http://portal.acm.org/proceedings/ph.d./archive/"
-"Conference Proceedings","QSWinet: Quality of Service and Security for Wireless in Mobile Networks","","","","2005 (October 2005)","2012 (October 2012)","http://portal.acm.org/proceedings/qswinet/","http://portal.acm.org/proceedings/qswinet/archive/"
-"Conference Proceedings","QShine: Heterogeneous Networking for Quality, Reliability, Security and Robustness","","","","2006 (August 2006)","2008 (July 2008)","http://portal.acm.org/proceedings/qshine/","http://portal.acm.org/proceedings/qshine/archive/"
-"Conference Proceedings","QTNA: Queueing Theory and Network Applications","","","","2009 (July 2009)","2011 (August 2011)","http://portal.acm.org/proceedings/qtna/","http://portal.acm.org/proceedings/qtna/archive/"
-"Conference Proceedings","QUASOSS: Quality of Service-Oriented Software Systems","","","","2009 (August 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/quasoss/","http://portal.acm.org/proceedings/quasoss/archive/"
-"Conference Proceedings","QUOVADIS: Quantitative Stochastic Models in the Verification and Design of Software Systems","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/quovadis/","http://portal.acm.org/proceedings/quovadis/archive/"
-"Conference Proceedings","QUTE-SWAP: Quantitative Techniques for Software Agile Process","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/qute-swap/","http://portal.acm.org/proceedings/qute-swap/archive/"
-"Conference Proceedings","QoP: Quality of Protection","","","","2006 (October 2006)","2008 (October 2008)","http://portal.acm.org/proceedings/qop/","http://portal.acm.org/proceedings/qop/archive/"
-"Conference Proceedings","RAM-SE: Reflection, AOP and Meta-Data for Software Evolution","","","","2009 (July 2009)","2012 (June 2012)","http://portal.acm.org/proceedings/ram-se/","http://portal.acm.org/proceedings/ram-se/archive/"
-"Conference Proceedings","RAOOL: Relationships and Associations in Object-Oriented Languages","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/raool/","http://portal.acm.org/proceedings/raool/archive/"
-"Conference Proceedings","RBAC: Role-Based Access Control","","","","1996 (December 1996)","2000 (July 2000)","http://portal.acm.org/proceedings/rbac/","http://portal.acm.org/proceedings/rbac/archive/"
-"Conference Proceedings","REALMAN: Multi-Hop Ad Hoc Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/realman/","http://portal.acm.org/proceedings/realman/archive/"
-"Conference Proceedings","REALWSN: Real-world Wireless Sensor Networks","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/realwsn/","http://portal.acm.org/proceedings/realwsn/archive/"
-"Conference Proceedings","REBSE: Realising Evidence-Based Software Engineering","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/rebse/","http://portal.acm.org/proceedings/rebse/archive/"
-"Conference Proceedings","RECOMB: Resaerch in Computational Molecular Biology","","","","1997 (January 1997)","2004 (March 2004)","http://portal.acm.org/proceedings/recomb/","http://portal.acm.org/proceedings/recomb/archive/"
-"Conference Proceedings","RIPQoS: Revisiting IP QoS","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/ripqos/","http://portal.acm.org/proceedings/ripqos/archive/"
-"Conference Proceedings","RKRAS: Research In Knowledge Representation For Autonomous Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/rkras/","http://portal.acm.org/proceedings/rkras/archive/"
-"Conference Proceedings","ROA: Role of Abstraction in Software Engineering","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/roa/","http://portal.acm.org/proceedings/roa/archive/"
-"Conference Proceedings","ROSATEA: Role of Software Architecture for Testing and Analysis","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/rosatea/","http://portal.acm.org/proceedings/rosatea/archive/"
-"Conference Proceedings","RSSE: Recommendation Systems for Software Engineering","","","","2008 (November 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/rsse/","http://portal.acm.org/proceedings/rsse/archive/"
-"Conference Proceedings","RT: Randon Testing","","","","2006 (July 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/rt/","http://portal.acm.org/proceedings/rt/archive/"
-"Conference Proceedings","RULE: Rule-Based Programming","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/rule/","http://portal.acm.org/proceedings/rule/archive/"
-"Conference Proceedings","ReArch: Re-architecting the Internet","","","","2009 (December 2009)","2010 (November 2010)","http://portal.acm.org/proceedings/rearch/","http://portal.acm.org/proceedings/rearch/archive/"
-"Conference Proceedings","RecSys: Recommender Systems","","","","2007 (October 2007)","2013 (October 2013)","http://portal.acm.org/proceedings/recsys/","http://portal.acm.org/proceedings/recsys/archive/"
-"Conference Proceedings","Resilience: Resilience in High Performance","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/resilience/","http://portal.acm.org/proceedings/resilience/archive/"
-"Conference Proceedings","S&D4RCES: Security and Dependability for Resource Constrained Embedded Systems","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/s&d4rces/","http://portal.acm.org/proceedings/s&d4rces/archive/"
-"Conference Proceedings","S3: Wireless of the Students, by the Students, for the Students","","","","2008 (February 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/s3/","http://portal.acm.org/proceedings/s3/archive/"
-"Conference Proceedings","SAC: Symposium on Applied Computing","","","","1986 (October 1986)","2013 (March 2013)","http://portal.acm.org/proceedings/sac/","http://portal.acm.org/proceedings/sac/archive/"
-"Conference Proceedings","SACLA: Southern African Computer Lecturers' Association","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/sacla/","http://portal.acm.org/proceedings/sacla/archive/"
-"Conference Proceedings","SACMAT: Symposium on Access Control Models and Technologies","","","","2001 (May 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/sacmat/","http://portal.acm.org/proceedings/sacmat/archive/"
-"Conference Proceedings","SADPI: Semantically Aware Document Processing and Indexing","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sadpi/","http://portal.acm.org/proceedings/sadpi/archive/"
-"Conference Proceedings","SAICSIT: South African Institute of Computer Scientists and Information Technologists","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/saicsit/","http://portal.acm.org/proceedings/saicsit/archive/"
-"Conference Proceedings","SAM: Software Architectures and Mobility","","","","2008 (May 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/sam/","http://portal.acm.org/proceedings/sam/archive/"
-"Conference Proceedings","SAME: Semantic Ambient Media Experiences","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/same/","http://portal.acm.org/proceedings/same/archive/"
-"Conference Proceedings","SANET: Sensor and Actor Networks","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/sanet/","http://portal.acm.org/proceedings/sanet/archive/"
-"Conference Proceedings","SAPMIA: Social, Adaptive and Personalized Multimedia Interaction and Access","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sapmia/","http://portal.acm.org/proceedings/sapmia/archive/"
-"Conference Proceedings","SAS: Static Analysis","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/sas/","http://portal.acm.org/proceedings/sas/archive/"
-"Conference Proceedings","SASN: Security of Ad hoc and Sensor Networks","","","","2003 (October 2003)","2006 (October 2006)","http://portal.acm.org/proceedings/sasn/","http://portal.acm.org/proceedings/sasn/archive/"
-"Conference Proceedings","SAVCBS: Specification and Verification of Component-Based Systems","","","","2005 (September 2005)","2009 (August 2009)","http://portal.acm.org/proceedings/savcbs/","http://portal.acm.org/proceedings/savcbs/archive/"
-"Conference Proceedings","SAW: Static Analysis","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/saw/","http://portal.acm.org/proceedings/saw/archive/"
-"Conference Proceedings","SBCCI: Symposium on Integrated Circuits and System Design","","","","1998 (January 1998)","2011 (August 2011)","http://portal.acm.org/proceedings/sbcci/","http://portal.acm.org/proceedings/sbcci/archive/"
-"Conference Proceedings","SBIM: Sketch-Based Interfaces and Modeling","","","","2007 (August 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/sbim/","http://portal.acm.org/proceedings/sbim/archive/"
-"Conference Proceedings","SC: Supercomputing","","","","1988 (November 1988)","2013 (November 2013)","http://portal.acm.org/proceedings/sc/","http://portal.acm.org/proceedings/sc/archive/"
-"Conference Proceedings","SCA: Symposium on Computer Animation","","","","2002 (July 2002)","2013 (July 2013)","http://portal.acm.org/proceedings/sca/","http://portal.acm.org/proceedings/sca/archive/"
-"Conference Proceedings","SCC: Services Computing","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/scc/","http://portal.acm.org/proceedings/scc/archive/"
-"Conference Proceedings","SCCG: Spring Conference on Computer graphics","","","","2001 (April 2001)","2013 (March 2013)","http://portal.acm.org/proceedings/sccg/","http://portal.acm.org/proceedings/sccg/archive/"
-"Conference Proceedings","SCE: Summit on Computing Education","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/sce/","http://portal.acm.org/proceedings/sce/archive/"
-"Conference Proceedings","SCESM: Scenarios and State Machines","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/scesm/","http://portal.acm.org/proceedings/scesm/archive/"
-"Conference Proceedings","SCM: Software Configuration Management","","","","1989 (October 1989)","2005 (September 2005)","http://portal.acm.org/proceedings/scm/","http://portal.acm.org/proceedings/scm/archive/"
-"Conference Proceedings","SCN: Simulation of Computer Networks","","","","1987 (August 1987)","1987 (August 1987)","http://portal.acm.org/proceedings/scn/","http://portal.acm.org/proceedings/scn/archive/"
-"Conference Proceedings","SCOPES: Software and Compilers for Embedded Systems","","","","2005 (September 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/scopes/","http://portal.acm.org/proceedings/scopes/archive/"
-"Conference Proceedings","SCORE: Software Metrics","","","","1982 (August 1982)","1982 (August 1982)","http://portal.acm.org/proceedings/score/","http://portal.acm.org/proceedings/score/archive/"
-"Conference Proceedings","SCSC: Summer Computer Simulation Conference","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/scsc/","http://portal.acm.org/proceedings/scsc/archive/"
-"Conference Proceedings","SDDDM: Dependable Distributed Data Management","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/sdddm/","http://portal.acm.org/proceedings/sdddm/archive/"
-"Conference Proceedings","SDE: Software Development Environments","","","","1984 (April 1984)","1992 (November 1992)","http://portal.acm.org/proceedings/sde/","http://portal.acm.org/proceedings/sde/archive/"
-"Conference Proceedings","SDG: Software Development Governance","","","","2008 (May 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/sdg/","http://portal.acm.org/proceedings/sdg/archive/"
-"Conference Proceedings","SDSOA: Systems Development in SOA Environments","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/sdsoa/","http://portal.acm.org/proceedings/sdsoa/archive/"
-"Conference Proceedings","SE-HPC: Software Engineering for High Performance Computing Applications","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/se-hpc/","http://portal.acm.org/proceedings/se-hpc/archive/"
-"Conference Proceedings","SEAMS: Software Engineering for Adaptive and Self-Managing Systems","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/seams/","http://portal.acm.org/proceedings/seams/archive/"
-"Conference Proceedings","SEAS: Software Engineering for Automotive Systems","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/seas/","http://portal.acm.org/proceedings/seas/archive/"
-"Conference Proceedings","SECSE: Software Engineering for Computational Science and Engineering","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/secse/","http://portal.acm.org/proceedings/secse/archive/"
-"Conference Proceedings","SEESE: Software Engineering in East and South Europe","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/seese/","http://portal.acm.org/proceedings/seese/archive/"
-"Conference Proceedings","SEEUP: Software Engineering Foundations for End User Programming","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/seeup/","http://portal.acm.org/proceedings/seeup/archive/"
-"Conference Proceedings","SEHC: Software Engineering in Health Care","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/sehc/","http://portal.acm.org/proceedings/sehc/archive/"
-"Conference Proceedings","SEKE: Software Engineering and Knowledge Engineering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/seke/","http://portal.acm.org/proceedings/seke/archive/"
-"Conference Proceedings","SELMAS: Software Engineering for Large-Scale Multi-Agent Systems","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/selmas/","http://portal.acm.org/proceedings/selmas/archive/"
-"Conference Proceedings","SEM: Software Engineering and Middleware","","","","2005 (September 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/sem/","http://portal.acm.org/proceedings/sem/archive/"
-"Conference Proceedings","SEMSEARCH: Semantic Search","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/semsearch/","http://portal.acm.org/proceedings/semsearch/archive/"
-"Conference Proceedings","SEPCASE: Software Engineering for Pervasive Computing Applications, Systems, and Environments","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sepcase/","http://portal.acm.org/proceedings/sepcase/archive/"
-"Conference Proceedings","SEPS: Software Engineering for Pervasive Services","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/seps/","http://portal.acm.org/proceedings/seps/archive/"
-"Conference Proceedings","SERENE: Software Engineering for Resilient Systems","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/serene/","http://portal.acm.org/proceedings/serene/archive/"
-"Conference Proceedings","SESENA: Software Engineering for Sensor Network Applications","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/sesena/","http://portal.acm.org/proceedings/sesena/archive/"
-"Conference Proceedings","SESS: Software Engineering for Secure Systems","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/sess/","http://portal.acm.org/proceedings/sess/archive/"
-"Conference Proceedings","SETA: Symposium on Environments and Tools for Ada","","","","1991 (April 1991)","1994 (September 1994)","http://portal.acm.org/proceedings/seta/","http://portal.acm.org/proceedings/seta/archive/"
-"Conference Proceedings","SETMDM: Software Engineering for Tailor-Made Data Management","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/setmdm/","http://portal.acm.org/proceedings/setmdm/archive/"
-"Conference Proceedings","SGP: Symposium on Geometry Processing","","","","2003 (June 2003)","2006 (June 2006)","http://portal.acm.org/proceedings/sgp/","http://portal.acm.org/proceedings/sgp/archive/"
-"Conference Proceedings","SHARK: Sharing and Reusing Architectural Knowledge","","","","2007 (May 2007)","2011 (May 2011)","http://portal.acm.org/proceedings/shark/","http://portal.acm.org/proceedings/shark/archive/"
-"Conference Proceedings","SICOSIM: SICOSIM","","","","1972 (October 1972)","1973 (October 1973)","http://portal.acm.org/proceedings/sicosim/","http://portal.acm.org/proceedings/sicosim/archive/"
-"Conference Proceedings","SIGAda: SIGAda International Conference on Ada","","","","1985 (May 1985)","2011 (November 2011)","http://portal.acm.org/proceedings/sigada/","http://portal.acm.org/proceedings/sigada/archive/"
-"Conference Proceedings","SIGBDP: SIGBDP Conference on Trends and Directions in Expert Systems","","","","1990 (September 1990)","1990 (September 1990)","http://portal.acm.org/proceedings/sigbdp/","http://portal.acm.org/proceedings/sigbdp/archive/"
-"Conference Proceedings","SIGCOMM LA: Data Communication in Latin America and the Caribbean","","","","2001 (April 2001)","2001 (April 2001)","http://portal.acm.org/proceedings/sigcommla/","http://portal.acm.org/proceedings/sigcommla/archive/"
-"Conference Proceedings","SIGCOMM: ACM SIGCOMM","","","","1977 (September 1977)","2013 (August 2013)","http://portal.acm.org/proceedings/sigcomm/","http://portal.acm.org/proceedings/sigcomm/archive/"
-"Conference Proceedings","SIGCSE: Computer Science Education","","","","1970 (January 1970)","2013 (March 2013)","http://portal.acm.org/proceedings/sigcse/","http://portal.acm.org/proceedings/sigcse/archive/"
-"Conference Proceedings","SIGDOC: Design of Communication","","","","1982 (January 1982)","2013 (September 2013)","http://portal.acm.org/proceedings/sigdoc/","http://portal.acm.org/proceedings/sigdoc/archive/"
-"Conference Proceedings","SIGFIDET: Data Description, Access and Control","","","","1970 (November 1970)","1975 (January 1975)","http://portal.acm.org/proceedings/sigfidet/","http://portal.acm.org/proceedings/sigfidet/archive/"
-"Conference Proceedings","SIGGRAPH Asia: Computer Graphics and Interactive Techniques Conference - Asia","","","","2008 (December 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/siggraphasia/","http://portal.acm.org/proceedings/siggraphasia/archive/"
-"Conference Proceedings","SIGGRAPH: Computer Graphics and Interactive Techniques Conference","","","","1974 (July 1974)","2013 (July 2013)","http://portal.acm.org/proceedings/siggraph/","http://portal.acm.org/proceedings/siggraph/archive/"
-"Conference Proceedings","SIGIR: Information Retrieval","","","","1971 (April 1971)","2013 (July 2013)","http://portal.acm.org/proceedings/sigir/","http://portal.acm.org/proceedings/sigir/archive/"
-"Conference Proceedings","SIGITE: Information Technology Education","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/sigite/","http://portal.acm.org/proceedings/sigite/archive/"
-"Conference Proceedings","SIGME: SIGME Symposium","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/sigme/","http://portal.acm.org/proceedings/sigme/archive/"
-"Conference Proceedings","SIGMETRICS: Measurement and Modeling of Computer Systems","","","","1974 (January 1974)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmetrics/","http://portal.acm.org/proceedings/sigmetrics/archive/"
-"Conference Proceedings","SIGMINI: SIGMINI Symposium on Small Systems","","","","1976 (March 1976)","1978 (August 1978)","http://portal.acm.org/proceedings/sigmini/","http://portal.acm.org/proceedings/sigmini/archive/"
-"Conference Proceedings","SIGMOD: Management of Data","","","","1975 (May 1975)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmod/","http://portal.acm.org/proceedings/sigmod/archive/"
-"Conference Proceedings","SIGPLAN: SIGPLAN Symposium","","","","1973 (November 1973)","1987 (July 1987)","http://portal.acm.org/proceedings/sigplan/","http://portal.acm.org/proceedings/sigplan/archive/"
-"Conference Proceedings","SIGSMALL: SIGSMALL/PC Symposium on Small Systems","","","","1979 (October 1979)","1991 (May 1991)","http://portal.acm.org/proceedings/sigsmall/","http://portal.acm.org/proceedings/sigsmall/archive/"
-"Conference Proceedings","SIGSOFT: Foundations of Software Engineering","","","","1983 (January 1983)","2012 (November 2012)","http://portal.acm.org/proceedings/sigsoft/","http://portal.acm.org/proceedings/sigsoft/archive/"
-"Conference Proceedings","SIGUCCS: User Services","","","","1972 (January 1972)","2013 (November 2013)","http://portal.acm.org/proceedings/siguccs/","http://portal.acm.org/proceedings/siguccs/archive/"
-"Conference Proceedings","SIMPLEX: Simplifying Complex Network for Practitioners","","","","2009 (July 2009)","2012 (April 2012)","http://portal.acm.org/proceedings/simplex/","http://portal.acm.org/proceedings/simplex/archive/"
-"Conference Proceedings","SIMUTools: Simulation Tools and Techniques","","","","2010 (March 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/simutools/","http://portal.acm.org/proceedings/simutools/archive/"
-"Conference Proceedings","SIN: Security of Information and Networks","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/sin/","http://portal.acm.org/proceedings/sin/archive/"
-"Conference Proceedings","SINTER: Software Integration and Evolution at Runtime","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sinter/","http://portal.acm.org/proceedings/sinter/archive/"
-"Conference Proceedings","SIPE: Services Integration in Pervasive Environments","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/sipe/","http://portal.acm.org/proceedings/sipe/archive/"
-"Conference Proceedings","SISAP: Similarity Search and Applications","","","","2008 (April 2008)","2011 (June 2011)","http://portal.acm.org/proceedings/sisap/","http://portal.acm.org/proceedings/sisap/archive/"
-"Conference Proceedings","SLIP: System Level Interconnect Prediction","","","","2000 (April 2000)","2012 (June 2012)","http://portal.acm.org/proceedings/slip/","http://portal.acm.org/proceedings/slip/archive/"
-"Conference Proceedings","SLIPE: Symposium on Language Issues in Programming Environments","","","","1985 (June 1985)","1985 (June 1985)","http://portal.acm.org/proceedings/slipe/","http://portal.acm.org/proceedings/slipe/archive/"
-"Conference Proceedings","SM: Solid Modelling and Applications","","","","1991 (May 1991)","2004 (June 2004)","http://portal.acm.org/proceedings/sm/","http://portal.acm.org/proceedings/sm/archive/"
-"Conference Proceedings","SMARTGRAPH: Smart Graphics","","","","2002 (June 2002)","2002 (June 2002)","http://portal.acm.org/proceedings/smartgraph/","http://portal.acm.org/proceedings/smartgraph/archive/"
-"Conference Proceedings","SMCtools: Tools for Solving Structured Markov Chains","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/smctools/","http://portal.acm.org/proceedings/smctools/archive/"
-"Conference Proceedings","SMT: Satisfiability Modulo Theories","","","","2008 (July 2008)","2009 (August 2009)","http://portal.acm.org/proceedings/smt/","http://portal.acm.org/proceedings/smt/archive/"
-"Conference Proceedings","SMUC: Search and Mining User-generated Contents","","","","2010 (October 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/smuc/","http://portal.acm.org/proceedings/smuc/archive/"
-"Conference Proceedings","SMVC: Surreal Media and Virtual Cloning","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/smvc/","http://portal.acm.org/proceedings/smvc/archive/"
-"Conference Proceedings","SNA-KDD: Social Network Mining and Analysis","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/sna-kdd/","http://portal.acm.org/proceedings/sna-kdd/archive/"
-"Conference Proceedings","SNAPI: Storage Network Architecture and Parallel I/Os","","","","2003 (September 2003)","2004 (September 2004)","http://portal.acm.org/proceedings/snapi/","http://portal.acm.org/proceedings/snapi/archive/"
-"Conference Proceedings","SNC: Symbolic-Numeric Computation","","","","2007 (July 2007)","2011 (June 2012)","http://portal.acm.org/proceedings/snc/","http://portal.acm.org/proceedings/snc/archive/"
-"Conference Proceedings","SNS: Social Network Systems","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/sns/","http://portal.acm.org/proceedings/sns/archive/"
-"Conference Proceedings","SOAR: Self-organizing Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/soar/","http://portal.acm.org/proceedings/soar/archive/"
-"Conference Proceedings","SOCP: Service-oriented Computing Performance","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/socp/","http://portal.acm.org/proceedings/socp/archive/"
-"Conference Proceedings","SODA: Symposium on Discrete Algorithms","","","","1990 (January 1990)","2012 (January 2012)","http://portal.acm.org/proceedings/soda/","http://portal.acm.org/proceedings/soda/archive/"
-"Conference Proceedings","SOMITAS: Software Organisation and Monitoring of Ambient Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/somitas/","http://portal.acm.org/proceedings/somitas/archive/"
-"Conference Proceedings","SOQUA: Software Quality Assurance","","","","2006 (November 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/soqua/","http://portal.acm.org/proceedings/soqua/archive/"
-"Conference Proceedings","SOSE: Service-Oriented Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/sose/","http://portal.acm.org/proceedings/sose/archive/"
-"Conference Proceedings","SOSOC: Security in Opportunistic and Social networks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/sosoc/","http://portal.acm.org/proceedings/sosoc/archive/"
-"Conference Proceedings","SOSP: Symposium on Operating Systems Principles","","","","1967 (January 1967)","2013 (November 2013)","http://portal.acm.org/proceedings/sosp/","http://portal.acm.org/proceedings/sosp/archive/"
-"Conference Proceedings","SOUPS: Symposium on Usable Privacy and Security","","","","2005 (July 2005)","2013 (July 2013)","http://portal.acm.org/proceedings/soups/","http://portal.acm.org/proceedings/soups/archive/"
-"Conference Proceedings","SP: Security and Privacy","","","","1996 (May 1996)","1996 (May 1996)","http://portal.acm.org/proceedings/sp/","http://portal.acm.org/proceedings/sp/archive/"
-"Conference Proceedings","SPAA: Symposium on Parallelism in Algorithms and Architectures","","","","1989 (March 1989)","2013 (July 2013)","http://portal.acm.org/proceedings/spaa/","http://portal.acm.org/proceedings/spaa/archive/"
-"Conference Proceedings","SPDT: Parallel and Distributed Tools","","","","1996 (January 1996)","1998 (August 1998)","http://portal.acm.org/proceedings/spdt/","http://portal.acm.org/proceedings/spdt/archive/"
-"Conference Proceedings","SPIMACS: Security and Privacy in Medical and Home-Care Systems","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/spimacs/","http://portal.acm.org/proceedings/spimacs/archive/"
-"Conference Proceedings","SPIN: SPIN workshop on Model Checking of Software","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/spin/","http://portal.acm.org/proceedings/spin/archive/"
-"Conference Proceedings","SPLASH: Object-Oriented Programming Systems, Languages, and Applications","","","","1986 (June 1986)","2013 (October 2013)","http://portal.acm.org/proceedings/splash/","http://portal.acm.org/proceedings/splash/archive/"
-"Conference Proceedings","SPLAT: Software Engineering Properties of Languages and Aspect Technologies","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/splat/","http://portal.acm.org/proceedings/splat/archive/"
-"Conference Proceedings","SPM: Geometric and Physical Modeling","","","","2005 (June 2005)","2010 (September 2010)","http://portal.acm.org/proceedings/spm/","http://portal.acm.org/proceedings/spm/archive/"
-"Conference Proceedings","SPRINGL: Security and Privacy in GIS and LBS","","","","2008 (November 2008)","2011 (November 2011)","http://portal.acm.org/proceedings/springl/","http://portal.acm.org/proceedings/springl/archive/"
-"Conference Proceedings","SRMC: Story Representation, Mechanism and Context","","","","2004 (October 2004)","2008 (October 2008)","http://portal.acm.org/proceedings/srmc/","http://portal.acm.org/proceedings/srmc/archive/"
-"Conference Proceedings","SSCS: Searching Spontaneous COnversational Speech","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/sscs/","http://portal.acm.org/proceedings/sscs/archive/"
-"Conference Proceedings","SSEE: Summit on Software Engineering Eductation","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/ssee/","http://portal.acm.org/proceedings/ssee/archive/"
-"Conference Proceedings","SSM: Search in Social Media","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/ssm/","http://portal.acm.org/proceedings/ssm/archive/"
-"Conference Proceedings","SSPS: Scalable Stream Processing System","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ssps/","http://portal.acm.org/proceedings/ssps/archive/"
-"Conference Proceedings","SSPW: Social Signal Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sspw/","http://portal.acm.org/proceedings/sspw/archive/"
-"Conference Proceedings","SSR: Symposium on Software Reusability","","","","1995 (August 1995)","2001 (May 2001)","http://portal.acm.org/proceedings/ssr/","http://portal.acm.org/proceedings/ssr/archive/"
-"Conference Proceedings","SSRS: Survivable and Self-Regenerative Systems","","","","2003 (October 2003)","2003 (October 2003)","http://portal.acm.org/proceedings/ssrs/","http://portal.acm.org/proceedings/ssrs/archive/"
-"Conference Proceedings","STC: Scalable Trusted Computing","","","","2006 (November 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/stc/","http://portal.acm.org/proceedings/stc/archive/"
-"Conference Proceedings","STOC: Symposium on Theory of Computing","","","","1969 (May 1969)","2013 (June 2013)","http://portal.acm.org/proceedings/stoc/","http://portal.acm.org/proceedings/stoc/archive/"
-"Conference Proceedings","STOP: Script to Program Evolution","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/stop/","http://portal.acm.org/proceedings/stop/archive/"
-"Conference Proceedings","STOV: Software Test Output Validation","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/stov/","http://portal.acm.org/proceedings/stov/archive/"
-"Conference Proceedings","SUITE: Search-driven Development: Users, Infrastructure, Tools and Evaluation","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/suite/","http://portal.acm.org/proceedings/suite/archive/"
-"Conference Proceedings","SVR: SIGGRAPH Video Review","","","","2001 (August 2001)","2003 (July 2003)","http://portal.acm.org/proceedings/svr/","http://portal.acm.org/proceedings/svr/archive/"
-"Conference Proceedings","SWS: Secure Web Services","","","","2004 (October 2004)","2009 (November 2009)","http://portal.acm.org/proceedings/sws/","http://portal.acm.org/proceedings/sws/archive/"
-"Conference Proceedings","SWSM: Social Web Search and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/swsm/","http://portal.acm.org/proceedings/swsm/archive/"
-"Conference Proceedings","SYANCO: Synthesis and Analysis of Component Connectors","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/syanco/","http://portal.acm.org/proceedings/syanco/archive/"
-"Conference Proceedings","SYMSAC: Symposium on Symbolic and Algebraic Computation","","","","1966 (January 1966)","1986 (October 1986)","http://portal.acm.org/proceedings/symsac/","http://portal.acm.org/proceedings/symsac/archive/"
-"Conference Proceedings","SYSTOR: Experimental Systems Conference","","","","2009 (May 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/systor/","http://portal.acm.org/proceedings/systor/archive/"
-"Conference Proceedings","SafeConfig: Assurable and Usable Security Configuration","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/safeconfig/","http://portal.acm.org/proceedings/safeconfig/archive/"
-"Conference Proceedings","Sandbox: Symposium on Video Games","","","","2006 (July 2006)","2011 (August 2011)","http://portal.acm.org/proceedings/sandbox/","http://portal.acm.org/proceedings/sandbox/archive/"
-"Conference Proceedings","SecPerU: Security, Privacy and Trust in Pervasive and Ubiquitous Computing","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/secperu/","http://portal.acm.org/proceedings/secperu/archive/"
-"Conference Proceedings","SecuCode: Secure Execution of Untrusted Code","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/secucode/","http://portal.acm.org/proceedings/secucode/archive/"
-"Conference Proceedings","SecureComm: Security and Privacy in Communication Netowrks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/securecomm/","http://portal.acm.org/proceedings/securecomm/archive/"
-"Conference Proceedings","SenSys: Embedded Networked Sensor Systems","","","","2003 (November 2003)","2013 (November 2013)","http://portal.acm.org/proceedings/sensys/","http://portal.acm.org/proceedings/sensys/archive/"
-"Conference Proceedings","SensorKDD: Knowledge Discovery from Sensor Data","","","","2009 (June 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/sensorkdd/","http://portal.acm.org/proceedings/sensorkdd/archive/"
-"Conference Proceedings","SoCC: Cloud Computing","","","","2010 (June 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/socc/","http://portal.acm.org/proceedings/socc/archive/"
-"Conference Proceedings","SoCG: Computational Geometry","","","","1985 (June 1985)","2013 (June 2013)","http://portal.acm.org/proceedings/socg/","http://portal.acm.org/proceedings/socg/archive/"
-"Conference Proceedings","SoD: Science of Design","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/sod/","http://portal.acm.org/proceedings/sod/archive/"
-"Conference Proceedings","SoICT: Information and Communication Technology","","","","2010 (August 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/soict/","http://portal.acm.org/proceedings/soict/archive/"
-"Conference Proceedings","SoSEA: Social Software Engineering Applications","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sosea/","http://portal.acm.org/proceedings/sosea/archive/"
-"Conference Proceedings","SocialNets: Social Network Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/socialnets/","http://portal.acm.org/proceedings/socialnets/archive/"
-"Conference Proceedings","SoftVis: Software Visualization","","","","2003 (June 2003)","2010 (October 2010)","http://portal.acm.org/proceedings/softvis/","http://portal.acm.org/proceedings/softvis/archive/"
-"Conference Proceedings","SpringSim: Spring Simulation Multiconference","","","","2007 (March 2007)","2013 (April 2013)","http://portal.acm.org/proceedings/springsim/","http://portal.acm.org/proceedings/springsim/archive/"
-"Conference Proceedings","StReBio: Statistical and Relational Learning in Bioinformatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/strebio/","http://portal.acm.org/proceedings/strebio/archive/"
-"Conference Proceedings","StorageSS: Storage Security and Survivability","","","","2005 (November 2005)","2008 (October 2008)","http://portal.acm.org/proceedings/storagess/","http://portal.acm.org/proceedings/storagess/archive/"
-"Conference Proceedings","StreamKDD: Novel Data Stream Pattern Mining Techniques","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/streamkdd/","http://portal.acm.org/proceedings/streamkdd/archive/"
-"Conference Proceedings","TAMODIA: Task Models and Diagrams","","","","2004 (November 2004)","2005 (September 2005)","http://portal.acm.org/proceedings/tamodia/","http://portal.acm.org/proceedings/tamodia/archive/"
-"Conference Proceedings","TAPAS: Technology and Policy for Accessing Spectrum","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/tapas/","http://portal.acm.org/proceedings/tapas/archive/"
-"Conference Proceedings","TAPIA: Diversity in Computing","","","","2003 (October 2003)","2009 (April 2009)","http://portal.acm.org/proceedings/tapia/","http://portal.acm.org/proceedings/tapia/archive/"
-"Conference Proceedings","TAPP: Theory and Practice of Provenance","","","","2010 (February 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/tapp/","http://portal.acm.org/proceedings/tapp/archive/"
-"Conference Proceedings","TARK: Theoretical Aspects of Rationality and Knowledge","","","","1986 (March 1986)","2009 (July 2009)","http://portal.acm.org/proceedings/tark/","http://portal.acm.org/proceedings/tark/archive/"
-"Conference Proceedings","TAU: Timing Iissues in the Specification and Synthesis of Digital Systems","","","","2002 (December 2002)","2002 (December 2002)","http://portal.acm.org/proceedings/tau/","http://portal.acm.org/proceedings/tau/archive/"
-"Conference Proceedings","TAV: Testing, Analysis and Verification","","","","1989 (November 1989)","2008 (July 2008)","http://portal.acm.org/proceedings/tav/","http://portal.acm.org/proceedings/tav/archive/"
-"Conference Proceedings","TEFSE: Traceability in Emerging Forms of Software Engineering","","","","2005 (November 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/tefse/","http://portal.acm.org/proceedings/tefse/archive/"
-"Conference Proceedings","TEI: Tangible and Embedded Interaction","","","","2007 (February 2007)","2013 (February 2013)","http://portal.acm.org/proceedings/tei/","http://portal.acm.org/proceedings/tei/archive/"
-"Conference Proceedings","TG: TeraGrid","","","","2010 (August 2010)","2011 (July 2011)","http://portal.acm.org/proceedings/tg/","http://portal.acm.org/proceedings/tg/archive/"
-"Conference Proceedings","TINLAP: Theoretical Issues in Natural Language Processing","","","","1975 (June 1975)","1975 (June 1975)","http://portal.acm.org/proceedings/tinlap/","http://portal.acm.org/proceedings/tinlap/archive/"
-"Conference Proceedings","TLDI: Types in Language Design and Implentation","","","","2003 (January 2003)","2012 (January 2012)","http://portal.acm.org/proceedings/tldi/","http://portal.acm.org/proceedings/tldi/archive/"
-"Conference Proceedings","TMBIO: Text Mining in Bioinformatics","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/tmbio/","http://portal.acm.org/proceedings/tmbio/archive/"
-"Conference Proceedings","TMR: Tagging, Mining and Retrieval","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/tmr/","http://portal.acm.org/proceedings/tmr/archive/"
-"Conference Proceedings","TRI-Ada: TRI-Ada","","","","1989 (January 1989)","1997 (November 1997)","http://portal.acm.org/proceedings/tri-ada/","http://portal.acm.org/proceedings/tri-ada/archive/"
-"Conference Proceedings","TSA: Topic-Sentiment Analysis for Mass Opinion","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/tsa/","http://portal.acm.org/proceedings/tsa/archive/"
-"Conference Proceedings","TT: Software Technology Transfer in Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/tt/","http://portal.acm.org/proceedings/tt/archive/"
-"Conference Proceedings","TVS: TRECVid Video Summarization","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/tvs/","http://portal.acm.org/proceedings/tvs/archive/"
-"Conference Proceedings","TridentCom: Testbeds and Research Infrastructures for the Development of Networks & Communities","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/tridentcom/","http://portal.acm.org/proceedings/tridentcom/archive/"
-"Conference Proceedings","U-NET: User-Provided Networking","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/u-net/","http://portal.acm.org/proceedings/u-net/archive/"
-"Conference Proceedings","U: Knowledge Discovery from Uncertain Data","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/u/","http://portal.acm.org/proceedings/u/archive/"
-"Conference Proceedings","UBDM: Utility-Based Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/ubdm/","http://portal.acm.org/proceedings/ubdm/archive/"
-"Conference Proceedings","UCHPC-MAW: UnConventional High Performance Computing Workshop plus Memory Access Workshop","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/uchpc-maw/","http://portal.acm.org/proceedings/uchpc-maw/archive/"
-"Conference Proceedings","UCVP: Use of Context in Vision Processing","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/ucvp/","http://portal.acm.org/proceedings/ucvp/archive/"
-"Conference Proceedings","UIST: User Interface Software and Technology","","","","1988 (January 1988)","2013 (October 2013)","http://portal.acm.org/proceedings/uist/","http://portal.acm.org/proceedings/uist/archive/"
-"Conference Proceedings","ULSSIS: Ultra-Large-Scale Software-Intensive Systems","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/ulssis/","http://portal.acm.org/proceedings/ulssis/archive/"
-"Conference Proceedings","UML: Unified Modeling Language","","","","1999 (October 1999)","2000 (October 2000)","http://portal.acm.org/proceedings/uml/","http://portal.acm.org/proceedings/uml/archive/"
-"Conference Proceedings","UODIGS: User-Oriented Design of Interactive Graphics Systems","","","","1977 (October 1976)","1977 (October 1976)","http://portal.acm.org/proceedings/uodigs/","http://portal.acm.org/proceedings/uodigs/archive/"
-"Conference Proceedings","UP: Useful Patterns","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/up/","http://portal.acm.org/proceedings/up/archive/"
-"Conference Proceedings","UPGRADE: Use of P2P, GRID and Agents for the Development of Content Networks","","","","2007 (June 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/upgrade/","http://portal.acm.org/proceedings/upgrade/archive/"
-"Conference Proceedings","UXTV: Designing Interactive User Experiences for TV and Video","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/uxtv/","http://portal.acm.org/proceedings/uxtv/archive/"
-"Conference Proceedings","UbiComp: Ubiquitous Computing","","","","2002 (September 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/ubicomp/","http://portal.acm.org/proceedings/ubicomp/archive/"
-"Conference Proceedings","UbiMob: Mobility and Ubiquity Computing","","","","2004 (June 2004)","2009 (July 2009)","http://portal.acm.org/proceedings/ubimob/","http://portal.acm.org/proceedings/ubimob/archive/"
-"Conference Proceedings","UltraVis: Ultrascale Visualization","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ultravis/","http://portal.acm.org/proceedings/ultravis/archive/"
-"Conference Proceedings","VAKD: Visual Analytics and Knowledge Discovery","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/vakd/","http://portal.acm.org/proceedings/vakd/archive/"
-"Conference Proceedings","VANET: VehiculAr InterNETworking","","","","2004 (October 2004)","2013 (June 2013)","http://portal.acm.org/proceedings/vanet/","http://portal.acm.org/proceedings/vanet/archive/"
-"Conference Proceedings","VAST: Visual Analytics Science and Technology","","","","2001 (November 2001)","2009 (September 2009)","http://portal.acm.org/proceedings/vast/","http://portal.acm.org/proceedings/vast/archive/"
-"Conference Proceedings","VDTS: Virtualization Technology for Dependable Systems","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/vdts/","http://portal.acm.org/proceedings/vdts/archive/"
-"Conference Proceedings","VEE: Virtual Execution Environments","","","","2005 (June 2005)","2013 (March 2013)","http://portal.acm.org/proceedings/vee/","http://portal.acm.org/proceedings/vee/archive/"
-"Conference Proceedings","VG: Volume Graphics","","","","2003 (July 2003)","2005 (June 2005)","http://portal.acm.org/proceedings/vg/","http://portal.acm.org/proceedings/vg/archive/"
-"Conference Proceedings","VIS: Visualization","","","","1990 (October 1990)","2004 (October 2004)","http://portal.acm.org/proceedings/vis/","http://portal.acm.org/proceedings/vis/archive/"
-"Conference Proceedings","VISA: Virtualized Infrastructure Systems and Architectures","","","","2009 (August 2009)","2010 (September 2010)","http://portal.acm.org/proceedings/visa/","http://portal.acm.org/proceedings/visa/archive/"
-"Conference Proceedings","VISSYM: Symposium on Data Visualisation","","","","2003 (May 2003)","2004 (May 2004)","http://portal.acm.org/proceedings/vissym/","http://portal.acm.org/proceedings/vissym/archive/"
-"Conference Proceedings","VLDB: Very Large Data Bases","","","","1975 (September 1975)","2007 (September 2007)","http://portal.acm.org/proceedings/vldb/","http://portal.acm.org/proceedings/vldb/archive/"
-"Conference Proceedings","VLS-MCMR: Very-Large-Scale Multimedia Corpus, Mining and Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/vls-mcmr/","http://portal.acm.org/proceedings/vls-mcmr/archive/"
-"Conference Proceedings","VMIL: Virtual Machines and Intermediate Languages","","","","2007 (March 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/vmil/","http://portal.acm.org/proceedings/vmil/archive/"
-"Conference Proceedings","VMSec: Virtual Machine Security","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/vmsec/","http://portal.acm.org/proceedings/vmsec/archive/"
-"Conference Proceedings","VNBA: Vision Networks for Behaviour Analysis","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/vnba/","http://portal.acm.org/proceedings/vnba/archive/"
-"Conference Proceedings","VRCAI: Virtual Reality Continuum and its Applications in Industry","","","","2004 (June 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/vrcai/","http://portal.acm.org/proceedings/vrcai/archive/"
-"Conference Proceedings","VRML: Virtual Reality Modeling Language","","","","1995 (January 1995)","2000 (February 2000)","http://portal.acm.org/proceedings/vrml/","http://portal.acm.org/proceedings/vrml/archive/"
-"Conference Proceedings","VRST: Virtual Reality Software and Technology","","","","1997 (September 1997)","2013 (October 2013)","http://portal.acm.org/proceedings/vrst/","http://portal.acm.org/proceedings/vrst/archive/"
-"Conference Proceedings","VSSN: Video Surveillance and Sensor Networks","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/vssn/","http://portal.acm.org/proceedings/vssn/archive/"
-"Conference Proceedings","VTDC: Virtualization Technology in Distributed Computing","","","","2006 (November 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/vtdc/","http://portal.acm.org/proceedings/vtdc/archive/"
-"Conference Proceedings","VVS: Symposium on Volume Visualization","","","","1989 (May 1989)","2002 (October 2002)","http://portal.acm.org/proceedings/vvs/","http://portal.acm.org/proceedings/vvs/archive/"
-"Conference Proceedings","ValueTools: Performance Evaluation Methodologies and Tools","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","Valuetools: Performance Evaluation Methodologies and Tools","","","","2006 (October 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","VizSEC: Visualization for Computer Security","","","","2004 (October 2004)","2006 (November 2006)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","VizSec: Visualization for Cyber Security","","","","2010 (September 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","WA: Web Accessibility","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/wa/","http://portal.acm.org/proceedings/wa/archive/"
-"Conference Proceedings","WACC: Work Activities Coordination and Collaboration","","","","1999 (March 1999)","1999 (March 1999)","http://portal.acm.org/proceedings/wacc/","http://portal.acm.org/proceedings/wacc/archive/"
-"Conference Proceedings","WADAS: Washington Ada symposium on Ada","","","","1984 (March 1984)","1994 (July 1994)","http://portal.acm.org/proceedings/wadas/","http://portal.acm.org/proceedings/wadas/archive/"
-"Conference Proceedings","WADS: Workshop on Architecting Dependable Systems","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wads/","http://portal.acm.org/proceedings/wads/archive/"
-"Conference Proceedings","WBIA: Workshop on Binary Instrumentation and Applications","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/wbia/","http://portal.acm.org/proceedings/wbia/archive/"
-"Conference Proceedings","WBMA: Biometrics Methods and Applications","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/wbma/","http://portal.acm.org/proceedings/wbma/archive/"
-"Conference Proceedings","WCAE: Computer Architecture Education","","","","1995 (January 1995)","2007 (June 2007)","http://portal.acm.org/proceedings/wcae/","http://portal.acm.org/proceedings/wcae/archive/"
-"Conference Proceedings","WCCCE: Computing Education","","","","2009 (May 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/wccce/","http://portal.acm.org/proceedings/wccce/archive/"
-"Conference Proceedings","WCFLP: Workshop on Curry and Functional Logic Programming","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/wcflp/","http://portal.acm.org/proceedings/wcflp/archive/"
-"Conference Proceedings","WDTN: Delay-Tolerant Networking","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/wdtn/","http://portal.acm.org/proceedings/wdtn/archive/"
-"Conference Proceedings","WEASELTech: Empirical Assessment of Software Engineering Languages and Technologies","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/weaseltech/","http://portal.acm.org/proceedings/weaseltech/archive/"
-"Conference Proceedings","WEH: Exception Handling","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/weh/","http://portal.acm.org/proceedings/weh/archive/"
-"Conference Proceedings","WESS: Workshop on Embedded Systems Security","","","","2009 (October 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/wess/","http://portal.acm.org/proceedings/wess/archive/"
-"Conference Proceedings","WETSoM: Workshop on Emerging Trends in Software Metrics","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/wetsom/","http://portal.acm.org/proceedings/wetsom/archive/"
-"Conference Proceedings","WEUSE: Workshop on End-User Software Engineering","","","","2005 (May 2005)","2008 (May 2008)","http://portal.acm.org/proceedings/weuse/","http://portal.acm.org/proceedings/weuse/archive/"
-"Conference Proceedings","WEWST: Workshop on Enhanced Web Service Technologies","","","","2009 (November 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/wewst/","http://portal.acm.org/proceedings/wewst/archive/"
-"Conference Proceedings","WGP: Workshop on Generic Programming","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wgp/","http://portal.acm.org/proceedings/wgp/archive/"
-"Conference Proceedings","WH: Wireless Health","","","","2010 (October 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/wh/","http://portal.acm.org/proceedings/wh/archive/"
-"Conference Proceedings","WHPCF: High Performance Computational Finance","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/whpcf/","http://portal.acm.org/proceedings/whpcf/archive/"
-"Conference Proceedings","WI-IATW: Web Intelligence and Intelligent Agent Technology","","","","2006 (December 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/wi-iatw/","http://portal.acm.org/proceedings/wi-iatw/archive/"
-"Conference Proceedings","WI: Web Intelligence","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/wi/","http://portal.acm.org/proceedings/wi/archive/"
-"Conference Proceedings","WICON: Wireless internet","","","","2006 (August 2006)","2007 (October 2007)","http://portal.acm.org/proceedings/wicon/","http://portal.acm.org/proceedings/wicon/archive/"
-"Conference Proceedings","WICOW: Information Credibility on the Web","","","","2008 (October 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/wicow/","http://portal.acm.org/proceedings/wicow/archive/"
-"Conference Proceedings","WIDM: Web Information and Data Management","","","","1999 (November 1999)","2012 (November 2012)","http://portal.acm.org/proceedings/widm/","http://portal.acm.org/proceedings/widm/archive/"
-"Conference Proceedings","WIESS: Industrial Experiences with Systems Software ","","","","2000 (October 2000)","2002 (December 2002)","http://portal.acm.org/proceedings/wiess/","http://portal.acm.org/proceedings/wiess/archive/"
-"Conference Proceedings","WINITS: Wireless Networking for Intelligent Transportation Systems","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/winits/","http://portal.acm.org/proceedings/winits/archive/"
-"Conference Proceedings","WINTECH: Exerimental Evaluation and Characterization","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WISER: Workshop on Interdisciplinary Software Engineering Research","","","","2004 (November 2004)","2006 (May 2006)","http://portal.acm.org/proceedings/wiser/","http://portal.acm.org/proceedings/wiser/archive/"
-"Conference Proceedings","WISG: Workshop on Information Security Governance","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wisg/","http://portal.acm.org/proceedings/wisg/archive/"
-"Conference Proceedings","WISTP: Information Security Theory and Practices","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/wistp/","http://portal.acm.org/proceedings/wistp/archive/"
-"Conference Proceedings","WITS: Issues in the Theory of Security","","","","2005 (January 2005)","2005 (January 2005)","http://portal.acm.org/proceedings/wits/","http://portal.acm.org/proceedings/wits/archive/"
-"Conference Proceedings","WMASH: Wireless Mobile Applications and Services on WLAN Hotspots","","","","2003 (September 2003)","2006 (September 2006)","http://portal.acm.org/proceedings/wmash/","http://portal.acm.org/proceedings/wmash/archive/"
-"Conference Proceedings","WMC: Workshop on Mobile Commerce","","","","2001 (July 2001)","2002 (September 2002)","http://portal.acm.org/proceedings/wmc/","http://portal.acm.org/proceedings/wmc/archive/"
-"Conference Proceedings","WMI: Wireless Mobile Internet","","","","2001 (July 2001)","2001 (July 2001)","http://portal.acm.org/proceedings/wmi/","http://portal.acm.org/proceedings/wmi/archive/"
-"Conference Proceedings","WMISI: Workshop on Multimodal Interfaces in Semantic Interaction","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wmisi/","http://portal.acm.org/proceedings/wmisi/archive/"
-"Conference Proceedings","WMPI: Memory Performance Issues","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/wmpi/","http://portal.acm.org/proceedings/wmpi/archive/"
-"Conference Proceedings","WMUPS: Middleware for Ubiquitous and Pervasive Systems","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/wmups/","http://portal.acm.org/proceedings/wmups/archive/"
-"Conference Proceedings","WMuNeP: Wireless Multimedia and Performance Modeling","","","","2005 (October 2005)","2011 (October 2011)","http://portal.acm.org/proceedings/wmunep/","http://portal.acm.org/proceedings/wmunep/archive/"
-"Conference Proceedings","WNS: Workshop on NS-2: the IP Network Simulator","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/wns/","http://portal.acm.org/proceedings/wns/archive/"
-"Conference Proceedings","WOCCI: Workshop on Child, Computer and Interaction","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wocci/","http://portal.acm.org/proceedings/wocci/archive/"
-"Conference Proceedings","WODA: Workshop on Dynamic Analysis","","","","2005 (May 2005)","2012 (July 2012)","http://portal.acm.org/proceedings/woda/","http://portal.acm.org/proceedings/woda/archive/"
-"Conference Proceedings","WORKS: Workflows in Support of Large-Scale Science","","","","2007 (June 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/works/","http://portal.acm.org/proceedings/works/archive/"
-"Conference Proceedings","WORM: Workshop on Recurring Malcode","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/worm/","http://portal.acm.org/proceedings/worm/archive/"
-"Conference Proceedings","WOSN: Online Social Networks","","","","2008 (August 2008)","2012 (August 2012)","http://portal.acm.org/proceedings/wosn/","http://portal.acm.org/proceedings/wosn/archive/"
-"Conference Proceedings by Affiliated Organizations","WOSP: Software and Performance","","","","1998 (October 1998)","2013 (April 2013)","http://portal.acm.org/proceedings/wosp/","http://portal.acm.org/proceedings/wosp/archive/"
-"Conference Proceedings","WOSS: Self-Managed Systems","","","","2002 (November 2002)","2004 (October 2004)","http://portal.acm.org/proceedings/woss/","http://portal.acm.org/proceedings/woss/archive/"
-"Conference Proceedings","WOSSE: Workshop on Open Source Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wosse/","http://portal.acm.org/proceedings/wosse/archive/"
-"Conference Proceedings","WOWMOM: Workshop on Wireless Mobile Multimedia","","","","1998 (October 1998)","2006 (June 2006)","http://portal.acm.org/proceedings/wowmom/","http://portal.acm.org/proceedings/wowmom/archive/"
-"Conference Proceedings","WPES: Workshop on Privacy in the Electronic Society","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/wpes/","http://portal.acm.org/proceedings/wpes/archive/"
-"Conference Proceedings","WRAITS: Recent Advances on Intrusion-Tolerant Systems","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/wraits/","http://portal.acm.org/proceedings/wraits/archive/"
-"Conference Proceedings","WRASQ: Workshop on Automating Service Quality","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wrasq/","http://portal.acm.org/proceedings/wrasq/archive/"
-"Conference Proceedings","WREFT: Workshop on Radiation Effects and Fault Tolerance in Nanometer Technologies","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/wreft/","http://portal.acm.org/proceedings/wreft/archive/"
-"Conference Proceedings","WREN: Research on Enterprise Networking","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/wren/","http://portal.acm.org/proceedings/wren/archive/"
-"Conference Proceedings","WRT: Refactoring Tools","","","","2008 (October 2008)","2012 (June 2012)","http://portal.acm.org/proceedings/wrt/","http://portal.acm.org/proceedings/wrt/archive/"
-"Conference Proceedings","WS-REST: RESTful Design","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/ws-rest/","http://portal.acm.org/proceedings/ws-rest/archive/"
-"Conference Proceedings","WSC: Winter Simulation Conference","","","","1971 (January 1971)","2012 (December 2012)","http://portal.acm.org/proceedings/wsc/","http://portal.acm.org/proceedings/wsc/archive/"
-"Conference Proceedings","WSCD: Web Search Click Data","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/wscd/","http://portal.acm.org/proceedings/wscd/archive/"
-"Conference Proceedings","WSDM: Web Search and Data Mining","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/wsdm/","http://portal.acm.org/proceedings/wsdm/archive/"
-"Conference Proceedings","WSM: Social Media","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/wsm/","http://portal.acm.org/proceedings/wsm/archive/"
-"Conference Proceedings","WSMC: Web-Scale Multimedia Corpus","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/wsmc/","http://portal.acm.org/proceedings/wsmc/archive/"
-"Conference Proceedings","WSNA: Wireless Sensor Networks and Applications","","","","2002 (September 2002)","2003 (September 2003)","http://portal.acm.org/proceedings/wsna/","http://portal.acm.org/proceedings/wsna/archive/"
-"Conference Proceedings","WTAOP: Workshop on Testing Aspect-Oriented Programs","","","","2006 (July 2006)","2007 (March 2007)","http://portal.acm.org/proceedings/wtaop/","http://portal.acm.org/proceedings/wtaop/archive/"
-"Conference Proceedings","WUAUC: Universal Accessibility of Ubiquitous Computing","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/wuauc/","http://portal.acm.org/proceedings/wuauc/archive/"
-"Conference Proceedings","WUP: Warm Up Workshop for ACM/IEEE ICSE 2010","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/wup/","http://portal.acm.org/proceedings/wup/archive/"
-"Conference Proceedings","WWW: World Wide Web","","","","2001 (April 2001)","2013 (May 2013)","http://portal.acm.org/proceedings/www/","http://portal.acm.org/proceedings/www/archive/"
-"Conference Proceedings","Wands: Workflow Approaches to New Data-centric Science","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/wands/","http://portal.acm.org/proceedings/wands/archive/"
-"Conference Proceedings","Web3D: 3D Web Technology","","","","2001 (February 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/web3d/","http://portal.acm.org/proceedings/web3d/archive/"
-"Conference Proceedings","WebDB: Web and Databases","","","","2004 (June 2004)","2010 (June 2010)","http://portal.acm.org/proceedings/webdb/","http://portal.acm.org/proceedings/webdb/archive/"
-"Conference Proceedings","WebKDD/SNA-KDD: Web Mining and Social Network Analysis","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/webkdd/sna-kdd/","http://portal.acm.org/proceedings/webkdd/sna-kdd/archive/"
-"Conference Proceedings","WebMedia: Multimedia and the Web","","","","2005 (December 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/webmedia/","http://portal.acm.org/proceedings/webmedia/archive/"
-"Conference Proceedings","WebSE: Workshop on Web 2.0 for Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/webse/","http://portal.acm.org/proceedings/webse/archive/"
-"Conference Proceedings","WebScience: Collaborative and Collective Intelligence","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/webscience/","http://portal.acm.org/proceedings/webscience/archive/"
-"Conference Proceedings","WiMD: Medical Grade Wireless Networks","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/wimd/","http://portal.acm.org/proceedings/wimd/archive/"
-"Conference Proceedings","WiNS-DR: Wireless Networks and Systems for Developing Regions","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/wins-dr/","http://portal.acm.org/proceedings/wins-dr/archive/"
-"Conference Proceedings","WiNTECH: Wireless Network Tesbeds, Experimental Evaluation and Characterization","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WiSE: Wireless Security","","","","2002 (September 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/wise/","http://portal.acm.org/proceedings/wise/archive/"
-"Conference Proceedings","WiSec: Wireless Network Security","","","","2008 (March 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/wisec/","http://portal.acm.org/proceedings/wisec/archive/"
-"Conference Proceedings","WiTMeMo: Wireless Traffic Measurements and Modeling","","","","2005 (June 2005)","2006 (August 2006)","http://portal.acm.org/proceedings/witmemo/","http://portal.acm.org/proceedings/witmemo/archive/"
-"Conference Proceedings","WikiSym: International Symposium on Wikis","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/wikisym/","http://portal.acm.org/proceedings/wikisym/archive/"
-"Conference Proceedings","WoSQ: Workshop on Software Quality","","","","2005 (May 2005)","2011 (September 2011)","http://portal.acm.org/proceedings/wosq/","http://portal.acm.org/proceedings/wosq/archive/"
-"Conference Proceedings","WuWNeT: UnderWater Networks","","","","2006 (September 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/wuwnet/","http://portal.acm.org/proceedings/wuwnet/archive/"
-"Conference Proceedings","XIME-P: XQuery Implementation, Experience and Perpectives","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/xime-p/","http://portal.acm.org/proceedings/xime-p/archive/"
-"Conference Proceedings","XMLSEC: XML Security","","","","2002 (November 2002)","2003 (October 2003)","http://portal.acm.org/proceedings/xmlsec/","http://portal.acm.org/proceedings/xmlsec/archive/"
-"Conference Proceedings","dg.o: Digital Government Research","","","","2000 (May 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/dg.o/","http://portal.acm.org/proceedings/dg.o/archive/"
-"Conference Proceedings","e-Energy: Energy-Efficient Computing and Networking","","","","2010 (April 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/e-energy/","http://portal.acm.org/proceedings/e-energy/archive/"
-"Conference Proceedings","e-Forensics: Forensic Applications and Techniques in Telecommunications, Information, and Multimedia","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/e-forensics/","http://portal.acm.org/proceedings/e-forensics/archive/"
-"Conference Proceedings","eConf: e-Services and e-Systems","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/econf/","http://portal.acm.org/proceedings/econf/archive/"
-"Conference Proceedings","eCrime: eCrime Researchers Summit","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/ecrime/","http://portal.acm.org/proceedings/ecrime/archive/"
-"Conference Proceedings","eHeritage: eHeritage and Digital Art Preservation","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/eheritage/","http://portal.acm.org/proceedings/eheritage/archive/"
-"Conference Proceedings","eclipse: eclipse Technology eXchange","","","","2003 (October 2003)","2007 (October 2007)","http://portal.acm.org/proceedings/eclipse/","http://portal.acm.org/proceedings/eclipse/archive/"
-"Conference Proceedings","i-CREATe: Rehabilitation Engineering & Assistive Technology","","","","2007 (April 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/i-create/","http://portal.acm.org/proceedings/i-create/archive/"
-"Conference Proceedings","iNEWS: Improving Non English Web Searching","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/inews/","http://portal.acm.org/proceedings/inews/archive/"
-"Conference Proceedings","iiWAS: Information Integration and Web-based Applications & Services","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/iiwas/","http://portal.acm.org/proceedings/iiwas/archive/"
-"Conference Proceedings","mmCom: mmWave communications","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mmcom/","http://portal.acm.org/proceedings/mmcom/archive/"
-"Conference Proceedings","sOc-EUSAI: Smart Objects and Ambient Intelligence","","","","2005 (October 2005)","2005 (October 2005)","http://portal.acm.org/proceedings/soc-eusai/","http://portal.acm.org/proceedings/soc-eusai/archive/"
-"Conference Proceedings","years of DAC: Years of DAC","","","","1988 (June 1988)","1988 (June 1988)","http://portal.acm.org/proceedings/yearsofdac/","http://portal.acm.org/proceedings/yearsofdac/archive/"
\ No newline at end of file
diff --git a/server/files/sounds/original/normal-1491836855000.csv b/server/files/sounds/original/normal-1491836855000.csv
deleted file mode 100644 (file)
index 1bfa2f5..0000000
+++ /dev/null
@@ -1,1136 +0,0 @@
-"CONTENT TYPE","TITLE","ABBR","ISSN","e-ISSN","PUBLICATION RANGE: START","PUBLICATION RANGE: LATEST PUBLISHED","SHORTCUT URL","ARCHIVE URL"
-"Journals","ACM Computing Surveys ","ACM Comput. Surv.","0360-0300","1557-7341","Volume 1 Issue 1 (March 1969)","Volume 46 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J204","http://dl.acm.org/citation.cfm?id=J204&picked=prox"
-"Journals","ACM Journal of Computer Documentation ","ACM J. Comput. Doc.","1527-6805","1557-9441","Volume 24 Issue 1 (Feb. 1, 2000)","Volume 26 Issue 4 (November 2002)","http://dl.acm.org/citation.cfm?id=J24","http://dl.acm.org/citation.cfm?id=J24&picked=prox"
-"Journals","ACM Journal on Emerging Technologies in Computing Systems ","J. Emerg. Technol. Comput. Syst.","1550-4832","1550-4840","Volume 1 Issue 1 (April 2005)","Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics","http://dl.acm.org/citation.cfm?id=J967","http://dl.acm.org/citation.cfm?id=J967&picked=prox"
-"Journals","Journal of Data and Information Quality ","J. Data and Information Quality","1936-1955","1936-1963","Volume 1 Issue 1 (June 2009)","Volume 4 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J1191","http://dl.acm.org/citation.cfm?id=J1191&picked=prox"
-"Journals","Journal of Experimental Algorithmics ","J. Exp. Algorithmics","1084-6654","1084-6654","Volume 1 (1996)","Volume 18 (April 2013)","http://dl.acm.org/citation.cfm?id=J430","http://dl.acm.org/citation.cfm?id=J430&picked=prox"
-"Journals","Journal of the ACM ","J. ACM","0004-5411","1557-735X","Volume 1 Issue 1 (Jan. 1954)","Volume 60 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J401","http://dl.acm.org/citation.cfm?id=J401&picked=prox"
-"Journals","Journal on Computing and Cultural Heritage ","J. Comput. Cult. Herit.","1556-4673","1556-4711","Volume 1 Issue 1 (June 2008)","Volume 6 Issue 3 (July 2013)","http://dl.acm.org/citation.cfm?id=J1157","http://dl.acm.org/citation.cfm?id=J1157&picked=prox"
-"Journals","Journal on Educational Resources in Computing ","J. Educ. Resour. Comput.","1531-4278","1531-4278","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom","http://dl.acm.org/citation.cfm?id=J814","http://dl.acm.org/citation.cfm?id=J814&picked=prox"
-"Transactions","ACM Letters on Programming Languages and Systems ","ACM Lett. Program. Lang. Syst.","1057-4514","1557-7384","Volume 1 Issue 1 (March 1992)","Volume 2 Issue 1-4 (March&#8211;Dec. 1993)","http://dl.acm.org/citation.cfm?id=J513","http://dl.acm.org/citation.cfm?id=J513&picked=prox"
-"Transactions","ACM Transactions on Accessible Computing ","ACM Trans. Access. Comput.","1936-7228","1936-7236","Volume 1 Issue 1 (May 2008)","Volume 5 Issue 2 (October 2013)","http://dl.acm.org/citation.cfm?id=J1156","http://dl.acm.org/citation.cfm?id=J1156&picked=prox"
-"Transactions","ACM Transactions on Algorithms ","ACM Trans. Algorithms","1549-6325","1549-6333","Volume 1 Issue 1 (July 2005)","Volume 9 Issue 4 (September 2013)","http://dl.acm.org/citation.cfm?id=J982","http://dl.acm.org/citation.cfm?id=J982&picked=prox"
-"Transactions","ACM Transactions on Applied Perception ","ACM Trans. Appl. Percept.","1544-3558","1544-3965","Volume 1 Issue 1 (July 2004)","Volume 10 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J932","http://dl.acm.org/citation.cfm?id=J932&picked=prox"
-"Transactions","ACM Transactions on Architecture and Code Optimization ","ACM Trans. Archit. Code Optim.","1544-3566","1544-3973","Volume 1 Issue 1 (March 2004)","Volume 10 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J924","http://dl.acm.org/citation.cfm?id=J924&picked=prox"
-"Transactions","ACM Transactions on Asian Language Information Processing ","","1530-0226","1558-3430","Volume 1 Issue 1 (March 2002)","Volume 12 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J820","http://dl.acm.org/citation.cfm?id=J820&picked=prox"
-"Transactions","ACM Transactions on Autonomous and Adaptive Systems ","ACM Trans. Auton. Adapt. Syst.","1556-4665","1556-4703","Volume 1 Issue 1 (September 2006)","Volume 8 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1010","http://dl.acm.org/citation.cfm?id=J1010&picked=prox"
-"Transactions","ACM Transactions on Computation Theory ","ACM Trans. Comput. Theory","1942-3454","1942-3462","Volume 1 Issue 1 (February 2009)","Volume 5 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1190","http://dl.acm.org/citation.cfm?id=J1190&picked=prox"
-"Transactions","ACM Transactions on Computational Logic ","ACM Trans. Comput. Logic","1529-3785","1557-945X","Volume 1 Issue 1 (July 2000)","Volume 14 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J773","http://dl.acm.org/citation.cfm?id=J773&picked=prox"
-"Transactions","ACM Transactions on Computer Systems ","ACM Trans. Comput. Syst.","0734-2071","1557-7333","Volume 1 Issue 1 (Feb. 1983)","Volume 31 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J774","http://dl.acm.org/citation.cfm?id=J774&picked=prox"
-"Transactions","ACM Transactions on Computer-Human Interaction ","ACM Trans. Comput.-Hum. Interact.","1073-0516","1557-7325","Volume 1 Issue 1 (March 1994)","Volume 20 Issue 5 (November 2013)","http://dl.acm.org/citation.cfm?id=J756","http://dl.acm.org/citation.cfm?id=J756&picked=prox"
-"Transactions","ACM Transactions on Computing Education ","Trans. Comput. Educ.","","1946-6226","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1193","http://dl.acm.org/citation.cfm?id=J1193&picked=prox"
-"Transactions","ACM Transactions on Database Systems ","ACM Trans. Database Syst.","0362-5915","1557-4644","Volume 1 Issue 1 (March 1976)","Volume 38 Issue 4 (November 2013) - Invited papers issue","http://dl.acm.org/citation.cfm?id=J777","http://dl.acm.org/citation.cfm?id=J777&picked=prox"
-"Transactions","ACM Transactions on Design Automation of Electronic Systems ","ACM Trans. Des. Autom. Electron. Syst.","1084-4309","1557-7309","Volume 1 Issue 1 (Jan. 1996)","Volume 19 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J776","http://dl.acm.org/citation.cfm?id=J776&picked=prox"
-"Transactions","ACM Transactions on Economics and Computation","ACM Trans. Econ. Comput.","2167-8375","2167-8383","Volume 1 Issue 1 (January 2013)","Volume 1 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1359","http://dl.acm.org/citation.cfm?id=J1359&picked=prox"
-"Transactions","ACM Transactions on Embedded Computing Systems ","ACM Trans. Embed. Comput. Syst.","1539-9087","1558-3465","Volume 1 Issue 1 (November 2002)","Volume 13 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J840","http://dl.acm.org/citation.cfm?id=J840&picked=prox"
-"Transactions","ACM Transactions on Graphics ","ACM Trans. Graph.","0730-0301","1557-7368","Volume 1 Issue 1 (Jan. 1982)","Volume 32 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J778","http://dl.acm.org/citation.cfm?id=J778&picked=prox"
-"Transactions","ACM Transactions on Information Systems ","ACM Trans. Inf. Syst.","1046-8188","1558-2868","Volume 1 Issue 1 (Jan. 1983)","Volume 31 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J779","http://dl.acm.org/citation.cfm?id=J779&picked=prox"
-"Transactions","ACM Transactions on Information and System Security ","ACM Trans. Inf. Syst. Secur.","1094-9224","1557-7406","Volume 1 Issue 1 (Nov. 1998)","Volume 16 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J789","http://dl.acm.org/citation.cfm?id=J789&picked=prox"
-"Transactions","ACM Transactions on Intelligent Systems and Technology ","ACM Trans. Intell. Syst. Technol.","2157-6904","2157-6912","Volume 1 Issue 1 (October 2010)","Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining","http://dl.acm.org/citation.cfm?id=J1318","http://dl.acm.org/citation.cfm?id=J1318&picked=prox"
-"Transactions","ACM Transactions on Interactive Intelligent Systems ","ACM Trans. Interact. Intell. Syst.","2160-6455","2160-6463","Volume 1 Issue 1 (October 2011)","Volume 3 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1341","http://dl.acm.org/citation.cfm?id=J1341&picked=prox"
-"Transactions","ACM Transactions on Internet Technology ","ACM Trans. Internet Technol.","1533-5399","1557-6051","Volume 1 Issue 1 (Aug. 2001)","Volume 13 Issue 2 (December 2013)","http://dl.acm.org/citation.cfm?id=J780","http://dl.acm.org/citation.cfm?id=J780&picked=prox"
-"Transactions","ACM Transactions on Knowledge Discovery from Data ","ACM Trans. Knowl. Discov. Data","1556-4681","1556-472X","Volume 1 Issue 1 (March 2007)","Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012","http://dl.acm.org/citation.cfm?id=J1054","http://dl.acm.org/citation.cfm?id=J1054&picked=prox"
-"Transactions","ACM Transactions on Management Information Systems ","ACM Trans. Manage. Inf. Syst.","2158-656X","2158-6578","Volume 1 Issue 1 (December 2010)","Volume 4 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1320","http://dl.acm.org/citation.cfm?id=J1320&picked=prox"
-"Transactions","ACM Transactions on Mathematical Software ","ACM Trans. Math. Softw.","0098-3500","1557-7295","Volume 1 Issue 1 (March 1975)","Volume 40 Issue 1 (September 2013)","http://dl.acm.org/citation.cfm?id=J782","http://dl.acm.org/citation.cfm?id=J782&picked=prox"
-"Transactions","ACM Transactions on Modeling and Computer Simulation ","ACM Trans. Model. Comput. Simul.","1049-3301","1558-1195","Volume 1 Issue 1 (Jan. 1991)","Volume 23 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J781","http://dl.acm.org/citation.cfm?id=J781&picked=prox"
-"Transactions","ACM Transactions on Multimedia Computing, Communications, and Applications ","ACM Trans. Multimedia Comput. Commun. Appl.","1551-6857","1551-6865","Volume 1 Issue 1 (February 2005)","Volume 10 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J961","http://dl.acm.org/citation.cfm?id=J961&picked=prox"
-"Transactions","ACM Transactions on Programming Languages and Systems ","ACM Trans. Program. Lang. Syst.","0164-0925","1558-4593","Volume 1 Issue 1 (July 1979)","Volume 35 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J783","http://dl.acm.org/citation.cfm?id=J783&picked=prox"
-"Transactions","ACM Transactions on Reconfigurable Technology and Systems ","ACM Trans. Reconfigurable Technol. Syst.","1936-7406","1936-7414","Volume 1 Issue 1 (March 2008)","Volume 6 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1151","http://dl.acm.org/citation.cfm?id=J1151&picked=prox"
-"Transactions","ACM Transactions on Sensor Networks ","ACM Trans. Sen. Netw.","1550-4859","1550-4867","Volume 1 Issue 1 (August 2005)","Volume 10 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J981","http://dl.acm.org/citation.cfm?id=J981&picked=prox"
-"Transactions","ACM Transactions on Software Engineering and Methodology ","ACM Trans. Softw. Eng. Methodol.","1049-331X","1557-7392","Volume 1 Issue 1 (Jan. 1992)","Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance","http://dl.acm.org/citation.cfm?id=J790","http://dl.acm.org/citation.cfm?id=J790&picked=prox"
-"Transactions","ACM Transactions on Speech and Language Processing ","ACM Trans. Speech Lang. Process.","1550-4875","1550-4883","Volume 1 (November 2004)","Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2","http://dl.acm.org/citation.cfm?id=J957","http://dl.acm.org/citation.cfm?id=J957&picked=prox"
-"Transactions","ACM Transactions on Storage ","Trans. Storage","1553-3077","1553-3093","Volume 1 Issue 1 (February 2005)","Volume 9 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J960","http://dl.acm.org/citation.cfm?id=J960&picked=prox"
-"Transactions","ACM Transactions on the Web ","ACM Trans. Web","1559-1131","1559-114X","Volume 1 Issue 1 (May 2007)","Volume 7 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J1062","http://dl.acm.org/citation.cfm?id=J1062&picked=prox"
-"Transactions","IEEE/ACM Transactions on Computational Biology and Bioinformatics ","IEEE/ACM Trans. Comput. Biol. Bioinformatics","1545-5963","","Volume 1 Issue 1 (January 2004)","Volume 10 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J954","http://dl.acm.org/citation.cfm?id=J954&picked=prox"
-"Transactions","IEEE/ACM Transactions on Networking ","IEEE/ACM Trans. Netw.","1063-6692","","Volume 1 Issue 1 (Feb. 1993)","Volume 21 Issue 4 (August 2013)","http://dl.acm.org/citation.cfm?id=J771","http://dl.acm.org/citation.cfm?id=J771&picked=prox"
-"Magazines","ACM Inroads","ACM Inroads","2153-2184","2153-2192","Volume 1 Issue 1 (March 2010)","Volume 4 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1268","http://dl.acm.org/citation.cfm?id=J1268&picked=prox"
-"Magazines","Communications of the ACM","Commun. ACM","0001-0782","1557-7317","Volume 1 Issue 1 (Jan. 1958)","Volume 57 Issue 1 (January 2014)","http://dl.acm.org/citation.cfm?id=J79","http://dl.acm.org/citation.cfm?id=J79&picked=prox"
-"Magazines","Computers in Entertainment ","Comput. Entertain.","","1544-3574","Volume 1 Issue 1 (October 2003)","Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment","http://dl.acm.org/citation.cfm?id=J912","http://dl.acm.org/citation.cfm?id=J912&picked=prox"
-"Magazines","Queue","Queue","1542-7730","1542-7749","Volume 1 Issue 1 (March 2003)","Volume 11 Issue 12 (December 2013) - Large-Scale Implementations","http://dl.acm.org/citation.cfm?id=J882","http://dl.acm.org/citation.cfm?id=J882&picked=prox"
-"Magazines","StandardView","StandardView","1067-9936","1557-7376","Volume 1 Issue 1 (Sept. 1993)","Volume 6 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J741","http://dl.acm.org/citation.cfm?id=J741&picked=prox"
-"Magazines","Ubiquity","Ubiquity","","1530-2180","Volume 2000 Issue February (February 1 - February 28, 2000)","Volume 2013 Issue December (December 2013)","http://dl.acm.org/citation.cfm?id=J793","http://dl.acm.org/citation.cfm?id=J793&picked=prox"
-"Magazines","XRDS: Crossroads, The ACM Magazine for Students","XRDS","1528-4972","1528-4980","Volume 1 Issue 1 (September 1994)","Volume 20 Issue 2 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J1271","http://dl.acm.org/citation.cfm?id=J1271&picked=prox"
-"Magazines","eLearn","eLearn","","1535-394X","Volume 2001 Issue 5 (May 2001)","Volume 2013 Issue 12 (12-01-2013) - December 2013","http://dl.acm.org/citation.cfm?id=J815","http://dl.acm.org/citation.cfm?id=J815&picked=prox"
-"Magazines","intelligence","Intelligence","1523-8822","1557-9425","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J372","http://dl.acm.org/citation.cfm?id=J372&picked=prox"
-"Magazines","interactions","interactions","1072-5520","1558-3449","Volume 1 Issue 1 (Jan. 1994)","Volume 20 Issue 6 (November + December 2013)","http://dl.acm.org/citation.cfm?id=J373","http://dl.acm.org/citation.cfm?id=J373&picked=prox"
-"Magazines","netWorker","netWorker","1091-3556","1558-3473","Volume 1 Issue 1 (March/April 1997)","Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics","http://dl.acm.org/citation.cfm?id=J582","http://dl.acm.org/citation.cfm?id=J582&picked=prox"
-"Publications by Affiliated Organizations","ALGOL Bulletin","ALGOL Bull.","0084-6198","","Issue 1 (Mar. 1959)","Issue 52 (Aug. 1988)","http://dl.acm.org/citation.cfm?id=J33","http://dl.acm.org/citation.cfm?id=J33&picked=prox"
-"Publications by Affiliated Organizations","Computational Linguistics","Comput. Linguist.","0891-2017","","Volume 6 Issue 1 (January-March 1980)","Volume 39 Issue 2 (June 2013)","http://dl.acm.org/citation.cfm?id=J25","http://dl.acm.org/citation.cfm?id=J25&picked=prox"
-"Publications by Affiliated Organizations","Evolutionary Computation","Evol. Comput.","1063-6560","1530-9304","Volume 1 Issue 1 (Spring 1993)","Volume 21 Issue 4 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J277","http://dl.acm.org/citation.cfm?id=J277&picked=prox"
-"Publications by Affiliated Organizations","Journal of Computing Sciences in Colleges","J. Comput. Sci. Coll.","1937-4771","1937-4763","Volume 6 Issue 5 (May 1991)","Volume 29 Issue 3 (January 2014)","http://dl.acm.org/citation.cfm?id=J420","http://dl.acm.org/citation.cfm?id=J420&picked=prox"
-"Publications by Affiliated Organizations","Journal of Usability Studies","J. Usability Studies","1931-3357","","Volume 5 Issue 4 (August 2010)","Volume 6 Issue 3 (May 2011)","http://dl.acm.org/citation.cfm?id=J1340","http://dl.acm.org/citation.cfm?id=J1340&picked=prox"
-"Publications by Affiliated Organizations","Linux Journal","Linux J.","1075-3583","","Volume 1994 Issue 1es (March 1994)","Volume 2013 Issue 235 (November 2013)","http://dl.acm.org/citation.cfm?id=J508","http://dl.acm.org/citation.cfm?id=J508&picked=prox"
-"Publications by Affiliated Organizations","Mobile Networks and Applications","Mob. Netw. Appl.","1383-469X","","Volume 1 Issue 1 (Aug. 1996)","Volume 18 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J547","http://dl.acm.org/citation.cfm?id=J547&picked=prox"
-"Publications by Affiliated Organizations","Personal and Ubiquitous Computing","Personal Ubiquitous Comput.","1617-4909","","Volume 4 Issue 4 (August 2000)","Volume 17 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J822","http://dl.acm.org/citation.cfm?id=J822&picked=prox"
-"Publications by Affiliated Organizations","Proceedings of the VLDB Endowment","Proc. VLDB Endow.","2150-8097","","Volume 1 Issue 1 (August 2008)","Volume 6 Issue 14 (September 2013)","http://dl.acm.org/citation.cfm?id=J1174","http://dl.acm.org/citation.cfm?id=J1174&picked=prox"
-"Publications by Affiliated Organizations","The Journal of Machine Learning Research","J. Mach. Learn. Res.","1532-4435","1533-7928","Volume 1 (9/1/2001)","Volume 14 Issue 1 (January 2013)","http://dl.acm.org/citation.cfm?id=J832","http://dl.acm.org/citation.cfm?id=J832&picked=prox"
-"Publications by Affiliated Organizations","The VLDB Journal &#8212; The International Journal on Very Large Data Bases","The VLDB Journal","1066-8888","","Volume 1 Issue 1 (July 1992)","Volume 22 Issue 5 (October   2013)","http://dl.acm.org/citation.cfm?id=J869","http://dl.acm.org/citation.cfm?id=J869&picked=prox"
-"Publications by Affiliated Organizations","Wireless Networks","Wirel. Netw.","1022-0038","","Volume 1 Issue 1 (Feb. 1995)","Volume 19 Issue 7 (October   2013)","http://dl.acm.org/citation.cfm?id=J804","http://dl.acm.org/citation.cfm?id=J804&picked=prox"
-"SIG Newsletters","3C ON-LINE","3C ON-LINE","1078-2192","","Volume 1 Issue 1 (Oct. 1994)","Volume 4 Issue 4 (Oct., 1997)","http://dl.acm.org/citation.cfm?id=J685","http://dl.acm.org/citation.cfm?id=J685&picked=prox"
-"SIG Newsletters","ACM Communications in Computer Algebra","ACM Commun. Comput. Algebra","1932-2240","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J1000","http://dl.acm.org/citation.cfm?id=J1000&picked=prox"
-"SIG Newsletters","ACM Lisp Bulletin","Lisp Bull.","","","Volume 4 Issue 9 (September 1969)","Issue 3 (December 1979)","http://dl.acm.org/citation.cfm?id=J1166","http://dl.acm.org/citation.cfm?id=J1166&picked=prox"
-"SIG Newsletters","ACM SIGACCESS Accessibility and Computing","SIGACCESS Access. Comput.","1558-2337","1558-1187","Issue 77-78 (Sept. 2003 - Jan. 2004)","Issue 107 (September 2013)","http://dl.acm.org/citation.cfm?id=J956","http://dl.acm.org/citation.cfm?id=J956&picked=prox"
-"SIG Newsletters","ACM SIGACT News","SIGACT News","0163-5700","","Issue 1 (April 1969)","Volume 44 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J697","http://dl.acm.org/citation.cfm?id=J697&picked=prox"
-"SIG Newsletters","ACM SIGAPL APL Quote Quad","SIGAPL APL Quote Quad","0163-6006","","Volume 3 Issue 1 (June 1971)","Volume 35 Issue 4 (December 2007)","http://dl.acm.org/citation.cfm?id=J46","http://dl.acm.org/citation.cfm?id=J46&picked=prox"
-"SIG Newsletters","ACM SIGAPP Applied Computing Review","SIGAPP Appl. Comput. Rev.","1559-6915","1931-0161","Volume 1 Issue 1 (Winter 1993)","Volume 13 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J693","http://dl.acm.org/citation.cfm?id=J693&picked=prox"
-"SIG Newsletters","ACM SIGARCH Computer Architecture News","SIGARCH Comput. Archit. News","0163-5964","","Volume 1 Issue 1 (January 1972)","Volume 41 Issue 3 (June 2013) - ICSA '13","http://dl.acm.org/citation.cfm?id=J89","http://dl.acm.org/citation.cfm?id=J89&picked=prox"
-"SIG Newsletters","ACM SIGART Bulletin","SIGART Bull.","0163-5719","","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J686","http://dl.acm.org/citation.cfm?id=J686&picked=prox"
-"SIG Newsletters","ACM SIGAda Ada Letters","Ada Lett.","1094-3641","","Volume I Issue 1 (July-August 1981)","Volume 33 Issue 2 (August 2013)","http://dl.acm.org/citation.cfm?id=J32","http://dl.acm.org/citation.cfm?id=J32&picked=prox"
-"SIG Newsletters","ACM SIGBED Review","SIGBED Rev.","","1551-3688","Volume 1 Issue 1 (April 2004)","Volume 10 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J994","http://dl.acm.org/citation.cfm?id=J994&picked=prox"
-"SIG Newsletters","ACM SIGBIO Newsletter","SIGBIO Newsl.","0163-5697","","Volume 1 Issue 2 (October 1976)","Volume 21 Issue 1 (April 2001)","http://dl.acm.org/citation.cfm?id=J698","http://dl.acm.org/citation.cfm?id=J698&picked=prox"
-"SIG Newsletters","ACM SIGBioinformatics Record","ACM SIGBioinformatics Rec.","2331-9291","2159-1210","Volume 1 Issue 1 (January 2011)","Volume 3 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1323","http://dl.acm.org/citation.cfm?id=J1323&picked=prox"
-"SIG Newsletters","ACM SIGCAPH Computers and the Physically Handicapped","SIGCAPH Comput. Phys. Handicap.","0163-5727","","Issue 5 (Fall 1971)","Issue 76 (June 2003)","http://dl.acm.org/citation.cfm?id=J298","http://dl.acm.org/citation.cfm?id=J298&picked=prox"
-"SIG Newsletters","ACM SIGCAS Computers and Society","SIGCAS Comput. Soc.","0095-2737","","Volume 1 Issue 2 (April 1970)","Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry","http://dl.acm.org/citation.cfm?id=J198","http://dl.acm.org/citation.cfm?id=J198&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin","SIGCHI Bull.","0736-6906","","Volume 14 Issue 1 (July 1982)","Volume 32 Issue 2 (April 2000)","http://dl.acm.org/citation.cfm?id=J687","http://dl.acm.org/citation.cfm?id=J687&picked=prox"
-"SIG Newsletters","ACM SIGCHI Bulletin - a supplement to <i>interactions</i>","SIGCHI Bull.: suppl. <i>interactions</i>","0736-6906","1558-1217","Volume 2000 (July/August 2000)","Volume 2003 (May-June 2003)","http://dl.acm.org/citation.cfm?id=J122","http://dl.acm.org/citation.cfm?id=J122&picked=prox"
-"SIG Newsletters","ACM SIGCOMM Computer Communication Review","SIGCOMM Comput. Commun. Rev.","0146-4833","","Volume 1 Issue 2 (March 1970)","Volume 43 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J101","http://dl.acm.org/citation.cfm?id=J101&picked=prox"
-"SIG Newsletters","ACM SIGCPR Computer Personnel","SIGCPR Comput. Pers.","0160-2497","","Volume 2 Issue 1 (July 1964)","Volume 20 Issue 4 (October 1999)","http://dl.acm.org/citation.cfm?id=J188","http://dl.acm.org/citation.cfm?id=J188&picked=prox"
-"SIG Newsletters","ACM SIGCSE Bulletin","SIGCSE Bull.","0097-8418","","Volume 1 Issue 1 (February 1969)","Volume 45 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J688","http://dl.acm.org/citation.cfm?id=J688&picked=prox"
-"SIG Newsletters","ACM SIGCSIM Installation Management Review","Install Manag. Rev.","0163-5972","","Issue 1 (August 1969)","Volume 6 Issue 4 (December 1977)","http://dl.acm.org/citation.cfm?id=J959","http://dl.acm.org/citation.cfm?id=J959&picked=prox"
-"SIG Newsletters","ACM SIGCUE Outlook","SIGCUE Outlook","0163-5735","","Volume 4 Issue 1 (February 1970)","Volume 27 Issue 3 (September 2001)","http://dl.acm.org/citation.cfm?id=J678","http://dl.acm.org/citation.cfm?id=J678&picked=prox"
-"SIG Newsletters","ACM SIGDA Newsletter","SIGDA Newsl.","0163-5743","","Volume 1 Issue 1 (January 1971)","Volume 40 Issue 9 (September 2010)","http://dl.acm.org/citation.cfm?id=J700","http://dl.acm.org/citation.cfm?id=J700&picked=prox"
-"SIG Newsletters","ACM SIGDOC Asterisk Journal of Computer Documentation","SIGDOC Asterisk J. Comput. Doc.","0731-1001","","Volume 2 Issue 5 (October 1975)","Volume 12 Issue 4 (December 2011)","http://dl.acm.org/citation.cfm?id=J62","http://dl.acm.org/citation.cfm?id=J62&picked=prox"
-"SIG Newsletters","ACM SIGEVOlution","SIGEVOlution","","1931-8499","Volume 1 Issue 1 (April 2006)","Volume 6 Issue 1 (July 2012)","http://dl.acm.org/citation.cfm?id=J999","http://dl.acm.org/citation.cfm?id=J999&picked=prox"
-"SIG Newsletters","ACM SIGFORTH Newsletter","SIGFORTH Newsl.","1047-4544","","Volume 1 Issue 1 (Spring 1989)","Volume 4 Issue 4 (Dec. 1994)","http://dl.acm.org/citation.cfm?id=J696","http://dl.acm.org/citation.cfm?id=J696&picked=prox"
-"SIG Newsletters","ACM SIGGRAPH Computer Graphics","SIGGRAPH Comput. Graph.","0097-8930","","Volume 3 Issue 3 (Fal 1969)","Volume 45 Issue 1 (February 2011)","http://dl.acm.org/citation.cfm?id=J166","http://dl.acm.org/citation.cfm?id=J166&picked=prox"
-"SIG Newsletters","ACM SIGGROUP Bulletin","SIGGROUP Bull.","","","Volume 18 Issue 1 (April 1997)","Volume 25 Issue 2 (February 2005) - Special issue on virtual communities","http://dl.acm.org/citation.cfm?id=J702","http://dl.acm.org/citation.cfm?id=J702&picked=prox"
-"SIG Newsletters","ACM SIGHIT Record","SIGHIT Rec.","","2158-8813","Volume 1 Issue 1 (March 2011)","Volume 2 Issue 2 (September 2012)","http://dl.acm.org/citation.cfm?id=J1322","http://dl.acm.org/citation.cfm?id=J1322&picked=prox"
-"SIG Newsletters","ACM SIGHPC Connect","ACM SIGHPC Connect","","2168-135X","Volume 1 Issue 1 (June 2012)","Volume 2 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J1356","http://dl.acm.org/citation.cfm?id=J1356&picked=prox"
-"SIG Newsletters","ACM SIGICE Bulletin","SIGICE Bull.","0893-2875","","Volume 19 Issue 3 (Feb. 1994)","Volume 23 Issue 2 (Oct. 1997)","http://dl.acm.org/citation.cfm?id=J694","http://dl.acm.org/citation.cfm?id=J694&picked=prox"
-"SIG Newsletters","ACM SIGIR Forum","SIGIR Forum","0163-5840","","Volume 6 Issue 2 (Summer 1971)","Volume 47 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J701","http://dl.acm.org/citation.cfm?id=J701&picked=prox"
-"SIG Newsletters","ACM SIGITE Newsletter","SIGITE Newsl.","2166-1685","1550-1469","Volume 2 Issue 1 (Spring 2004)","Volume 9 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J977","http://dl.acm.org/citation.cfm?id=J977&picked=prox"
-"SIG Newsletters","ACM SIGKDD Explorations Newsletter","SIGKDD Explor. Newsl.","1931-0145","1931-0153","Volume 1 Issue 1 (June 1999)","Volume 14 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J721","http://dl.acm.org/citation.cfm?id=J721&picked=prox"
-"SIG Newsletters","ACM SIGLASH Newsletter","SIGLASH Newsl.","0036-147X","1931-1095","Volume 10 Issue 1-2 (December 1976/March 1977)","Volume 14 Issue 1-2 (March/June 1981)","http://dl.acm.org/citation.cfm?id=J958","http://dl.acm.org/citation.cfm?id=J958&picked=prox"
-"SIG Newsletters","ACM SIGMAP Bulletin","SIGMAP Bull.","0163-5786","1931-1184","Issue 5 (June 1969)","Issue 32 (April 1983)","http://dl.acm.org/citation.cfm?id=J952","http://dl.acm.org/citation.cfm?id=J952&picked=prox"
-"SIG Newsletters","ACM SIGMETRICS Performance Evaluation Review","SIGMETRICS Perform. Eval. Rev.","0163-5999","","Volume 1 Issue 1 (March 1972)","Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013)","http://dl.acm.org/citation.cfm?id=J618","http://dl.acm.org/citation.cfm?id=J618&picked=prox"
-"SIG Newsletters","ACM SIGMICRO Newsletter","SIGMICRO Newsl.","1050-916X","","Volume 2 Issue 4 (January 1972)","Volume 23 Issue 1-2 (Dec. 1992)","http://dl.acm.org/citation.cfm?id=J703","http://dl.acm.org/citation.cfm?id=J703&picked=prox"
-"SIG Newsletters","ACM SIGMINI Newsletter","SIGMINI Newsl.","0163-576X","","Volume 1 Issue 1 (July 1975)","Volume 4 Issue 4 (August 1978)","http://dl.acm.org/citation.cfm?id=J951","http://dl.acm.org/citation.cfm?id=J951&picked=prox"
-"SIG Newsletters","ACM SIGMIS Database","SIGMIS Database","0095-0033","","Volume 1 Issue 2 (Summer 1969)","Volume 44 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J219","http://dl.acm.org/citation.cfm?id=J219&picked=prox"
-"SIG Newsletters","ACM SIGMOBILE Mobile Computing and Communications Review","SIGMOBILE Mob. Comput. Commun. Rev.","1559-1662","1931-1222","Volume 1 Issue 1 (April 1997)","Volume 17 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J548","http://dl.acm.org/citation.cfm?id=J548&picked=prox"
-"SIG Newsletters","ACM SIGMOD Record","SIGMOD Rec.","0163-5808","","Volume 1 Issue 1 (August 1969)","Volume 42 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J689","http://dl.acm.org/citation.cfm?id=J689&picked=prox"
-"SIG Newsletters","ACM SIGMultimedia Records","SIGMultimedia Rec.","","1947-4598","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1232","http://dl.acm.org/citation.cfm?id=J1232&picked=prox"
-"SIG Newsletters","ACM SIGNUM Newsletter","SIGNUM Newsl.","0163-5778","","Volume 1 Issue 1 (June 1966)","Volume 33 Issue 2 (April 1, 1998)","http://dl.acm.org/citation.cfm?id=J690","http://dl.acm.org/citation.cfm?id=J690&picked=prox"
-"SIG Newsletters","ACM SIGOA Newsletter","ACM SIGOA Newsletter","0737-819X","","Volume 1 Issue 1 (March 1980)","Volume 7 Issue 1 (Spring 1986)","http://dl.acm.org/citation.cfm?id=J915","http://dl.acm.org/citation.cfm?id=J915&picked=prox"
-"SIG Newsletters","ACM SIGOIS Bulletin","SIGOIS Bull.","0894-0819","","Volume 7 Issue 2-3 (Summer-Fall 1986)","Volume 17 Issue 3 (Dec. 1996)","http://dl.acm.org/citation.cfm?id=J705","http://dl.acm.org/citation.cfm?id=J705&picked=prox"
-"SIG Newsletters","ACM SIGOPS Operating Systems Review","SIGOPS Oper. Syst. Rev.","0163-5980","","Volume 3 Issue 1 (February 1969)","Volume 47 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J597","http://dl.acm.org/citation.cfm?id=J597&picked=prox"
-"SIG Newsletters","ACM SIGPC Notes","SIGPC Note.","0163-5816","","Volume 1 Issue 2 (Summer 1978)","Volume 5 Issue 1-2 (Fall/Winter 1982/1983)","http://dl.acm.org/citation.cfm?id=J950","http://dl.acm.org/citation.cfm?id=J950&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Fortran Forum","SIGPLAN Fortran Forum","1061-7264","1931-1311","Volume 1 Issue 1 (July 1982)","Volume 32 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J286","http://dl.acm.org/citation.cfm?id=J286&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Lisp Pointers","SIGPLAN Lisp Pointers","1045-3563","","Volume 1 Issue 1 (April-May 1987)","Volume VIII Issue 2 (May-Aug., 1995)","http://dl.acm.org/citation.cfm?id=J509","http://dl.acm.org/citation.cfm?id=J509&picked=prox"
-"SIG Newsletters","ACM SIGPLAN Notices","SIGPLAN Not.","0362-1340","1558-1160","Volume 1 Issue 8 (August 1966)","Volume 48 Issue 11 (November 2013) - ISMM '13","http://dl.acm.org/citation.cfm?id=J706","http://dl.acm.org/citation.cfm?id=J706&picked=prox"
-"SIG Newsletters","ACM SIGPLAN OOPS Messenger","SIGPLAN OOPS Mess.","1055-6400","","Volume 1 Issue 1 (Aug. 1990)","Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems","http://dl.acm.org/citation.cfm?id=J594","http://dl.acm.org/citation.cfm?id=J594&picked=prox"
-"SIG Newsletters","ACM SIGSAC Review","SIGSAC Rev.","0277-920X","","Volume 1 Issue 1 (Winter 1981-1982)","Volume 15 Issue 2 (April 1997)","http://dl.acm.org/citation.cfm?id=J691","http://dl.acm.org/citation.cfm?id=J691&picked=prox"
-"SIG Newsletters","ACM SIGSAM Bulletin","SIGSAM Bull.","0163-5824","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J707","http://dl.acm.org/citation.cfm?id=J707&picked=prox"
-"SIG Newsletters","ACM SIGSIM Simulation Digest","SIGSIM Simul. Dig.","0163-6103","","Volume 3 Issue 1 (September 1971)","Volume 28 Issue 1 (July 1998)","http://dl.acm.org/citation.cfm?id=J711","http://dl.acm.org/citation.cfm?id=J711&picked=prox"
-"SIG Newsletters","ACM SIGSMALL Newsletter","SIGSMALL Newsl.","0272-720X","","Volume 4 Issue 5 (October 1978)","Volume 10 Issue 4 (October 1984)","http://dl.acm.org/citation.cfm?id=J949","http://dl.acm.org/citation.cfm?id=J949&picked=prox"
-"SIG Newsletters","ACM SIGSMALL/PC Notes","SIGSMALL/PC Notes","0893-2875","","Volume 11 Issue 3 (Aug. 1985)","Volume 19 Issue 2 (Nov. 1993)","http://dl.acm.org/citation.cfm?id=J692","http://dl.acm.org/citation.cfm?id=J692&picked=prox"
-"SIG Newsletters","ACM SIGSOC Bulletin","SIGSOC Bull.","0163-5794","","Volume 1 Issue 1 (March 1969)","Volume 13 Issue 4 (April 1982)","http://dl.acm.org/citation.cfm?id=J948","http://dl.acm.org/citation.cfm?id=J948&picked=prox"
-"SIG Newsletters","ACM SIGSOFT Software Engineering Notes","SIGSOFT Softw. Eng. Notes","0163-5948","","Volume 1 Issue 1 (May 1976)","Volume 38 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J728","http://dl.acm.org/citation.cfm?id=J728&picked=prox"
-"SIG Newsletters","ACM SIGUCCS Newsletter","SIGUCCS Newsl.","0736-6892","","Volume 1 Issue 1 (January 1965)","Volume 28 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J708","http://dl.acm.org/citation.cfm?id=J708&picked=prox"
-"SIG Newsletters","ACM SIGUCCS plugged in","ACM SIGUCCS plugged in","","2168-8516","Volume 1 Issue 1 (Summer 2012)","Volume 2 Issue 1 (Summer 2013)","http://dl.acm.org/citation.cfm?id=J1358","http://dl.acm.org/citation.cfm?id=J1358&picked=prox"
-"SIG Newsletters","ACM SIGWEB Newsletter","SIGWEB Newsl.","1931-1745","1931-1435","Volume 1 Issue 1 (March 1992)","Issue Autumn (Autumn 2013)","http://dl.acm.org/citation.cfm?id=J507","http://dl.acm.org/citation.cfm?id=J507&picked=prox"
-"SIG Newsletters","ACM SIGecom Exchanges","SIGecom Exch.","","1551-9031","Volume 1 Issue 1 (Summer, 2000)","Volume 12 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J684","http://dl.acm.org/citation.cfm?id=J684&picked=prox"
-"SIG Newsletters","Communication Design Quarterly Review","Commun. Des. Q. Rev","2166-1200","2166-1642","Volume 2 Issue 1 (March 2001)","Volume 2 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J1351","http://dl.acm.org/citation.cfm?id=J1351&picked=prox"
-"SIG Newsletters","SIGSPATIAL Special","SIGSPATIAL Special","","1946-7729","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J1196","http://dl.acm.org/citation.cfm?id=J1196&picked=prox"
-"Conference Proceedings","3DOR: 3D Object Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dor/","http://portal.acm.org/proceedings/3dor/archive/"
-"Conference Proceedings","3DVP: 3D Video Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dvp/","http://portal.acm.org/proceedings/3dvp/archive/"
-"Conference Proceedings","A-MOST: Advances in Model-Based Testing","","","","2005 (May 2005)","2007 (July 2007)","http://portal.acm.org/proceedings/a-most/","http://portal.acm.org/proceedings/a-most/archive/"
-"Conference Proceedings","A2CWiC: Amrita ACM-W Celebration on Women in Computing in India","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/a2cwic/","http://portal.acm.org/proceedings/a2cwic/archive/"
-"Conference Proceedings","AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/aaa-idea/","http://portal.acm.org/proceedings/aaa-idea/archive/"
-"Conference Proceedings","AADEBUG: Automated analysis-driven debugging","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/aadebug/","http://portal.acm.org/proceedings/aadebug/archive/"
-"Conference Proceedings","AAMAS: Autonomous Agents and Multiagent Systems","","","","2002 (July 2002)","2013 (May 2013)","http://portal.acm.org/proceedings/aamas/","http://portal.acm.org/proceedings/aamas/archive/"
-"Conference Proceedings","ACDC: Automated Control for Datacenters and Clouds","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/acdc/","http://portal.acm.org/proceedings/acdc/archive/"
-"Conference Proceedings","ACET: Advances in Computer Entertainment Technology","","","","2004 (September 2004)","2011 (November 2011)","http://portal.acm.org/proceedings/ace/","http://portal.acm.org/proceedings/ace/archive/"
-"Conference Proceedings","ACISNR: Applications of Computer and Information Sciences to Nature Research","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/acisnr/","http://portal.acm.org/proceedings/acisnr/archive/"
-"Conference Proceedings","ACL2: ACL2 Theorem Prover and its Applications","","","","2006 (August 2006)","2009 (May 2009)","http://portal.acm.org/proceedings/acl2/","http://portal.acm.org/proceedings/acl2/archive/"
-"Conference Proceedings","ACM DEV: Computing for Development","","","","2010 (December 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/acmdev/","http://portal.acm.org/proceedings/acmdev/archive/"
-"Conference Proceedings","ACM POLICY: ACM POLICY","","","","1998 (June 1998)","1998 (June 1998)","http://portal.acm.org/proceedings/acmpolicy/","http://portal.acm.org/proceedings/acmpolicy/archive/"
-"Conference Proceedings","ACM SE: Annual Southeast Regional Conference","","","","1967 (June 1967)","2013 (April 2013)","http://portal.acm.org/proceedings/acmse/","http://portal.acm.org/proceedings/acmse/archive/"
-"Conference Proceedings","ACM-BCS: ACM-BCS","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/acm-bcs/","http://portal.acm.org/proceedings/acm-bcs/archive/"
-"Conference Proceedings","ACM: ACM Annual Conference/Annual Meeting","","","","1952 (May 1952)","1987 (December 1987)","http://portal.acm.org/proceedings/acm/","http://portal.acm.org/proceedings/acm/archive/"
-"Conference Proceedings","ACPIS: Aspects, Components, and Patterns for Infrastructure Software","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/acpis/","http://portal.acm.org/proceedings/acpis/archive/"
-"Conference Proceedings","ACSAC: Annual Computer Security Applications Conference","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/acsac/","http://portal.acm.org/proceedings/acsac/archive/"
-"Conference Proceedings","ACSE: Australasian Conference on Computing Education","","","","1996 (July 1996)","2010 (January 2010)","http://portal.acm.org/proceedings/acse/","http://portal.acm.org/proceedings/acse/archive/"
-"Conference Proceedings","ACoM: Assessment of Contemporary Modularization Techniques","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/acom/","http://portal.acm.org/proceedings/acom/archive/"
-"Conference Proceedings","ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/adamus/","http://portal.acm.org/proceedings/adamus/archive/"
-"Conference Proceedings","ADKDD: Data Mining and Audience Intelligence for Advertising","","","","2007 (August 2007)","2013 (August 2013)","http://portal.acm.org/proceedings/adkdd/","http://portal.acm.org/proceedings/adkdd/archive/"
-"Conference Proceedings","ADPUC: Advanced Data Processing in Ubiquitous Computing ","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/adpuc/","http://portal.acm.org/proceedings/adpuc/archive/"
-"Conference Proceedings","AFFINE: Affective-Aware Virtual Agents and Social Robots","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/affine/","http://portal.acm.org/proceedings/affine/archive/"
-"Conference Proceedings","AFIPS: AFIPS","","","","1955 (March 1955)","1984 (July 1984)","http://portal.acm.org/proceedings/afips/","http://portal.acm.org/proceedings/afips/archive/"
-"Conference Proceedings","AFM: Automated Formal Methods","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/afm/","http://portal.acm.org/proceedings/afm/archive/"
-"Conference Proceedings","AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa","","","","2001 (November 2001)","2010 (June 2010)","http://portal.acm.org/proceedings/afrigraph/","http://portal.acm.org/proceedings/afrigraph/archive/"
-"Conference Proceedings","AGENTS: Autonomous Agents","","","","1997 (February 1997)","2001 (May 2001)","http://portal.acm.org/proceedings/agents/","http://portal.acm.org/proceedings/agents/archive/"
-"Conference Proceedings","AH: Augmented Human","","","","2010 (April 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/ah/","http://portal.acm.org/proceedings/ah/archive/"
-"Conference Proceedings","AIEE-IRE: AIEE-IRE","","","","1951 (December 1951)","1962 (May 1962)","http://portal.acm.org/proceedings/aiee-ire/","http://portal.acm.org/proceedings/aiee-ire/archive/"
-"Conference Proceedings","AIEMPro: Automated Information Extraction in Media Production","","","","2010 (October 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/aiempro/","http://portal.acm.org/proceedings/aiempro/archive/"
-"Conference Proceedings","AIGC: Artificial Intelligence in Grid Computing","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/aigc/","http://portal.acm.org/proceedings/aigc/archive/"
-"Conference Proceedings","AINTEC: Asian Conference on Internet Engineering","","","","2008 (November 2008)","2012 (November 2012)","http://portal.acm.org/proceedings/aintec/","http://portal.acm.org/proceedings/aintec/archive/"
-"Conference Proceedings","AIPACa: Applications of Private and Anonymous Communications","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/aipaca/","http://portal.acm.org/proceedings/aipaca/archive/"
-"Conference Proceedings","AIRS: Asia Information Retrieval Symposium ","","","","2008 (January 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/airs/","http://portal.acm.org/proceedings/airs/archive/"
-"Conference Proceedings","AIRWeb: Adversarial Information Retrieval on the Web","","","","2007 (May 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/airweb/","http://portal.acm.org/proceedings/airweb/archive/"
-"Conference Proceedings","AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/aisc/mkm/calculemus/","http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/"
-"Conference Proceedings","AISec: Artificial Intelligence and Security","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/aisec/","http://portal.acm.org/proceedings/aisec/archive/"
-"Conference Proceedings","ALICE: Alice Symposium","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/alice/","http://portal.acm.org/proceedings/alice/archive/"
-"Conference Proceedings","AM: Audio Mostly","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/am/","http://portal.acm.org/proceedings/am/archive/"
-"Conference Proceedings","AMC: Ambient Media Computing","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/amc/","http://portal.acm.org/proceedings/amc/archive/"
-"Conference Proceedings","AMCMM: Audio and Music Computing Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/amcmm/","http://portal.acm.org/proceedings/amcmm/archive/"
-"Conference Proceedings","ANCS: Architectures for Networking and Communications Systems","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/ancs/","http://portal.acm.org/proceedings/ancs/archive/"
-"Conference Proceedings","AND: Analytics for Noisy Unstructured Text Data","","","","2008 (July 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/and/","http://portal.acm.org/proceedings/and/archive/"
-"Conference Proceedings","ANNA: Analysis of Neural Network Applications","","","","1991 (May 1991)","1991 (May 1991)","http://portal.acm.org/proceedings/anna/","http://portal.acm.org/proceedings/anna/archive/"
-"Conference Proceedings","ANSS: Annual Simulation Symposium","","","","1973 (June 1973)","2013 (April 2013)","http://portal.acm.org/proceedings/anss/","http://portal.acm.org/proceedings/anss/archive/"
-"Conference Proceedings","AOM: Aspect-Oriented Modeling","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/aom/","http://portal.acm.org/proceedings/aom/archive/"
-"Conference Proceedings","AOMD: Aspect Oriented Middleware Development","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/aomd/","http://portal.acm.org/proceedings/aomd/archive/"
-"Conference Proceedings","AOSD: Aspect-Oriented Software Development","","","","2002 (April 2002)","2013 (March 2013)","http://portal.acm.org/proceedings/aosd/","http://portal.acm.org/proceedings/aosd/archive/"
-"Conference Proceedings","APGV: Applied Perception in Graphics and Visualization","","","","2004 (August 2004)","2011 (August 2011)","http://portal.acm.org/proceedings/apgv/","http://portal.acm.org/proceedings/apgv/archive/"
-"Conference Proceedings","APL: APL","","","","1969 (January 1969)","2003 (June 2003)","http://portal.acm.org/proceedings/apl/","http://portal.acm.org/proceedings/apl/archive/"
-"Conference Proceedings","APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/aplwaca/","http://portal.acm.org/proceedings/aplwaca/archive/"
-"Conference Proceedings","APOS: Scrutinizing Agile Practices","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/apos/","http://portal.acm.org/proceedings/apos/archive/"
-"Conference Proceedings","APS: Adaptive, Personalization &#38; the Semantic Web","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/aps/","http://portal.acm.org/proceedings/aps/archive/"
-"Conference Proceedings","APSys: Asia-Pacific Workshop on Systems","","","","2010 (August 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/apsys/","http://portal.acm.org/proceedings/apsys/archive/"
-"Conference Proceedings","AREA: Analysis and Retrieval of Events","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/area/","http://portal.acm.org/proceedings/area/archive/"
-"Conference Proceedings","ARM: Adaptive and Reflective MIddleware","","","","2004 (October 2004)","2013 (December 2013)","http://portal.acm.org/proceedings/arm/","http://portal.acm.org/proceedings/arm/archive/"
-"Conference Proceedings","ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams","","","","2010 (October 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/artemis/","http://portal.acm.org/proceedings/artemis/archive/"
-"Conference Proceedings","ASE: Automated Software Engineering","","","","1997 (November 1997)","2012 (September 2012)","http://portal.acm.org/proceedings/ase/","http://portal.acm.org/proceedings/ase/archive/"
-"Conference Proceedings","ASIA CCS: Information, Computer and Communications Security","","","","2006 (March 2006)","2013 (May 2013)","http://portal.acm.org/proceedings/asiaccs/","http://portal.acm.org/proceedings/asiaccs/archive/"
-"Conference Proceedings","ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/asia-pepm/","http://portal.acm.org/proceedings/asia-pepm/archive/"
-"Conference Proceedings","ASID: Architectural and System Support for Improving Software Dependability","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/asid/","http://portal.acm.org/proceedings/asid/archive/"
-"Conference Proceedings","ASPDAC: Asia and South Pacific Design Automation Conference","","","","1995 (August 1995)","2011 (January 2011)","http://portal.acm.org/proceedings/aspdac/","http://portal.acm.org/proceedings/aspdac/archive/"
-"Conference Proceedings","ASPLOS: Architectural Support for Programming Languages and Operating Systems","","","","1982 (March 1982)","2013 (March 2013)","http://portal.acm.org/proceedings/asplos/","http://portal.acm.org/proceedings/asplos/archive/"
-"Conference Proceedings","AST: Automation of Software Test","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/ast/","http://portal.acm.org/proceedings/ast/archive/"
-"Conference Proceedings","AUIC: User Interface","","","","2001 (January 2001)","2010 (January 2010)","http://portal.acm.org/proceedings/auic/","http://portal.acm.org/proceedings/auic/archive/"
-"Conference Proceedings","AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/aupc/","http://portal.acm.org/proceedings/aupc/archive/"
-"Conference Proceedings","AVI: Advanced Visual Interfaces","","","","1994 (June 1994)","2012 (May 2012)","http://portal.acm.org/proceedings/avi/","http://portal.acm.org/proceedings/avi/archive/"
-"Conference Proceedings","AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/avstp2p/","http://portal.acm.org/proceedings/avstp2p/archive/"
-"Conference Proceedings","AcessNets: Access Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/acessnets/","http://portal.acm.org/proceedings/acessnets/archive/"
-"Conference Proceedings","Ambi-Sys: Ambient Media and Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/ambi-sys/","http://portal.acm.org/proceedings/ambi-sys/archive/"
-"Conference Proceedings","Assets: Computers and Accessibility","","","","1994 (October 1994)","2013 (October 2013)","http://portal.acm.org/proceedings/assets/","http://portal.acm.org/proceedings/assets/archive/"
-"Conference Proceedings","AusGrid: Grid Computing and e-Research","","","","2008 (January 2008)","2009 (January 2009)","http://portal.acm.org/proceedings/ausgrid/","http://portal.acm.org/proceedings/ausgrid/archive/"
-"Conference Proceedings","AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications","","","","2009 (September 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/automotiveui/","http://portal.acm.org/proceedings/automotiveui/archive/"
-"Conference Proceedings","Autonomics: Autonomic Computing and Communication Systems","","","","2007 (October 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/autonomics/","http://portal.acm.org/proceedings/autonomics/archive/"
-"Conference Proceedings","BADS: Bio-Inspired Algorithms for Distributed Systems","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/bads/","http://portal.acm.org/proceedings/bads/archive/"
-"Conference Proceedings","BCB: Bioinformatics and Computational Biology","","","","2010 (August 2010)","2007 (September 2013)","http://portal.acm.org/proceedings/bcb/","http://portal.acm.org/proceedings/bcb/archive/"
-"Conference Proceedings","BCS-HCI: British HCI Group Annual Conference on People and Computers","","","","2007 (September 2007)","2009 (September 2009)","http://portal.acm.org/proceedings/bcs-hci/","http://portal.acm.org/proceedings/bcs-hci/archive/"
-"Conference Proceedings","BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization","","","","2006 (May 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/beliv/","http://portal.acm.org/proceedings/beliv/archive/"
-"Conference Proceedings","BIOKDD: Bioinformatics","","","","2005 (August 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/biokdd/","http://portal.acm.org/proceedings/biokdd/archive/"
-"Conference Proceedings","BIONETICS: Bio Inspired Models of Network, Information and Computing Systems","","","","2006 (December 2006)","2006 (December 2006)","http://portal.acm.org/proceedings/bionetics/","http://portal.acm.org/proceedings/bionetics/archive/"
-"Conference Proceedings","BM-FA: Behaviour Modelling","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/bm-fa/","http://portal.acm.org/proceedings/bm-fa/archive/"
-"Conference Proceedings","BM-MDA: Behaviour Modelling in Model-Driven Architecture","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/bm-mda/","http://portal.acm.org/proceedings/bm-mda/archive/"
-"Conference Proceedings","BPAOSD: Best Practices in Applying Aspect-Oriented Software Development","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/bpaosd/","http://portal.acm.org/proceedings/bpaosd/archive/"
-"Conference Proceedings","BQGT: Behavioral and Quantitative Game Theory","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/bqgt/","http://portal.acm.org/proceedings/bqgt/archive/"
-"Conference Proceedings","BWAN: Broadband Wireless Access for Ubiquitous Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/bwan/","http://portal.acm.org/proceedings/bwan/archive/"
-"Conference Proceedings","Baltic Sea: Baltic Sea Conference on Computing Education Research","","","","2006 (February 2006)","2006 (February 2006)","http://portal.acm.org/proceedings/balticsea/","http://portal.acm.org/proceedings/balticsea/archive/"
-"Conference Proceedings","BiPi: Business Impact of Process Improvements","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/bipi/","http://portal.acm.org/proceedings/bipi/archive/"
-"Conference Proceedings","BooksOnline: Research Advances in Large Digital Book Repositories","","","","2008 (October 2008)","2012 (October 2012)","http://portal.acm.org/proceedings/booksonline/","http://portal.acm.org/proceedings/booksonline/archive/"
-"Conference Proceedings","BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/buildsys/","http://portal.acm.org/proceedings/buildsys/archive/"
-"Conference Proceedings","C&#38;C: Creativity and Cognition","","","","1999 (October 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;c/","http://portal.acm.org/proceedings/c&amp;c/archive/"
-"Conference Proceedings","C&#38;T: Communities and Technologies","","","","2009 (June 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/c&amp;t/","http://portal.acm.org/proceedings/c&amp;t/archive/"
-"Conference Proceedings","C3P: Hypercube Concurrent Computers and Applications","","","","1988 (January 1988)","1988 (January 1989)","http://portal.acm.org/proceedings/c3p/","http://portal.acm.org/proceedings/c3p/archive/"
-"Conference Proceedings","C3S2E: Canadian Conference on Computer Science and Software Engineering","","","","2008 (May 2008)","2013 (July 2013)","http://portal.acm.org/proceedings/cse/","http://portal.acm.org/proceedings/cse/archive/"
-"Conference Proceedings","CAI: Context in Advanced Interfaces","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/cai/","http://portal.acm.org/proceedings/cai/archive/"
-"Conference Proceedings","CAMA: Contextualized Attention Metadata","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/cama/","http://portal.acm.org/proceedings/cama/archive/"
-"Conference Proceedings","CAMRa: Context-aware Movie Recommendation","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/camra/","http://portal.acm.org/proceedings/camra/archive/"
-"Conference Proceedings","CAMS: Context-Aware Middleware and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/cams/","http://portal.acm.org/proceedings/cams/archive/"
-"Conference Proceedings","CARPE: Continous Archival and Retrieval of Personal Experiences","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/carpe/","http://portal.acm.org/proceedings/carpe/archive/"
-"Conference Proceedings","CARS: Critical Automotive Applications","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/cars/","http://portal.acm.org/proceedings/cars/archive/"
-"Conference Proceedings","CASEMANS: Context-Awareness for Self-Managing Systems","","","","2008 (May 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CASES: Compilers, Architectures and Synthesis for Embedded Systems","","","","2000 (November 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/cases/","http://portal.acm.org/proceedings/cases/archive/"
-"Conference Proceedings","CASTA: Context-Aware Software Technology and Application","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/casta/","http://portal.acm.org/proceedings/casta/archive/"
-"Conference Proceedings","CAW: Computer Architecture for Non-Numeric Processing","","","","1977 (January 1977)","1980 (March 1980)","http://portal.acm.org/proceedings/caw/","http://portal.acm.org/proceedings/caw/archive/"
-"Conference Proceedings","CBHPC: Component-Based High Performance Computing","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/cbhpc/","http://portal.acm.org/proceedings/cbhpc/archive/"
-"Conference Proceedings","CC: Critical Computing","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/cc/","http://portal.acm.org/proceedings/cc/archive/"
-"Conference Proceedings","CCS: Computer and Communications Security","","","","1993 (December 1993)","2013 (November 2013)","http://portal.acm.org/proceedings/ccs/","http://portal.acm.org/proceedings/ccs/archive/"
-"Conference Proceedings","CCSC: Consortium for Computing Sciences in Colleges","","","","1991 (May 1991)","2001 (April 2001)","http://portal.acm.org/proceedings/ccsc/","http://portal.acm.org/proceedings/ccsc/archive/"
-"Conference Proceedings","CCSW: Cloud Computing Security Workshop","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ccsw/","http://portal.acm.org/proceedings/ccsw/archive/"
-"Conference Proceedings","CCU: Contemporary Computing in Ukraine","","","","2000 (February 2000)","2000 (February 2000)","http://portal.acm.org/proceedings/ccu/","http://portal.acm.org/proceedings/ccu/archive/"
-"Conference Proceedings","CEA: Cooking and Eating Activities","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/cea/","http://portal.acm.org/proceedings/cea/archive/"
-"Conference Proceedings","CF: Computing Frontiers","","","","2004 (April 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/cf/","http://portal.acm.org/proceedings/cf/archive/"
-"Conference Proceedings","CFI: Future Internet Technologies","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/cfi/","http://portal.acm.org/proceedings/cfi/archive/"
-"Conference Proceedings","CFP: Computers, Freedom and Privacy","","","","1992 (April 1992)","2002 (April 2002)","http://portal.acm.org/proceedings/cfp/","http://portal.acm.org/proceedings/cfp/archive/"
-"Conference Proceedings","CGI: Computer Graphics International","","","","1996 (June 1996)","2009 (May 2009)","http://portal.acm.org/proceedings/cgi/","http://portal.acm.org/proceedings/cgi/archive/"
-"Conference Proceedings","CGO: Code Generation and Optimization","","","","2003 (March 2003)","2013 (February 2013)","http://portal.acm.org/proceedings/cgo/","http://portal.acm.org/proceedings/cgo/archive/"
-"Conference Proceedings","CHANTS: Challenged Networks","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/chants/","http://portal.acm.org/proceedings/chants/archive/"
-"Conference Proceedings","CHASE: Cooperative and Human Aspects on Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/chase/","http://portal.acm.org/proceedings/chase/archive/"
-"Conference Proceedings","CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts","","","","1997 (March 1997)","2013 (April 2013)","http://portal.acm.org/proceedings/chiea/","http://portal.acm.org/proceedings/chiea/archive/"
-"Conference Proceedings","CHI: Conference on Human Factors in Computing Systems","","","","1981 (May 1981)","2013 (April 2013)","http://portal.acm.org/proceedings/chi/","http://portal.acm.org/proceedings/chi/archive/"
-"Conference Proceedings","CHINA HPC: High Performance Computing","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/chinahpc/","http://portal.acm.org/proceedings/chinahpc/archive/"
-"Conference Proceedings","CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction","","","","2001 (July 2001)","2012 (July 2012)","http://portal.acm.org/proceedings/chinz/","http://portal.acm.org/proceedings/chinz/archive/"
-"Conference Proceedings","CHiMiT: Computer Human Interaction for the Management of Information Technology","","","","2007 (March 2007)","2011 (December 2011)","http://portal.acm.org/proceedings/chimit/","http://portal.acm.org/proceedings/chimit/archive/"
-"Conference Proceedings","CIAA: Implementation and Application of Automata","","","","2003 (July 2002)","2003 (July 2002)","http://portal.acm.org/proceedings/ciaa/","http://portal.acm.org/proceedings/ciaa/archive/"
-"Conference Proceedings","CIAO: Context, Information and Ontologies","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/ciao/","http://portal.acm.org/proceedings/ciao/archive/"
-"Conference Proceedings","CIKM: Conference on Information and Knowledge Management","","","","1993 (December 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/cikm/","http://portal.acm.org/proceedings/cikm/archive/"
-"Conference Proceedings","CIMS: CyberInfrastructure: Information Management in eScience","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/cims/","http://portal.acm.org/proceedings/cims/archive/"
-"Conference Proceedings","CIVR: Conference on Image and Video Retrieval","","","","2007 (July 2007)","2010 (July 2010)","http://portal.acm.org/proceedings/civr/","http://portal.acm.org/proceedings/civr/archive/"
-"Conference Proceedings","CLADE: Challenges of Large Applications in Distributed Environments","","","","2003 (June 2003)","2009 (June 2009)","http://portal.acm.org/proceedings/clade/","http://portal.acm.org/proceedings/clade/archive/"
-"Conference Proceedings","CLIHC: Latin American Conference on Human-Computer Interaction","","","","2003 (August 2003)","2005 (October 2005)","http://portal.acm.org/proceedings/clihc/","http://portal.acm.org/proceedings/clihc/archive/"
-"Conference Proceedings","CLOUD: Software Engineering Challenges of Cloud Computing","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/cloud/","http://portal.acm.org/proceedings/cloud/archive/"
-"Conference Proceedings","CMM: Connected Multimedia","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/cmm/","http://portal.acm.org/proceedings/cmm/archive/"
-"Conference Proceedings","CMSB: Computational Methods in Systems Biology","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/cmsb/","http://portal.acm.org/proceedings/cmsb/archive/"
-"Conference Proceedings","CNIKM: Complex Networks Meet Information & Knowledge Management","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/cnikm/","http://portal.acm.org/proceedings/cnikm/archive/"
-"Conference Proceedings","CNS: Communications and Networking Simulation","","","","2008 (April 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/cns/","http://portal.acm.org/proceedings/cns/archive/"
-"Conference Proceedings","COCS: Conference on Organizational Computing Systems","","","","1984 (January 1984)","1995 (August 1995)","http://portal.acm.org/proceedings/cocs/","http://portal.acm.org/proceedings/cocs/archive/"
-"Conference Proceedings","CODES: Hardware Software Codesign","","","","1994 (September 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/codes/","http://portal.acm.org/proceedings/codes/archive/"
-"Conference Proceedings","COLT: Computational Learning Theory","","","","1988 (December 1988)","1999 (July 1999)","http://portal.acm.org/proceedings/colt/","http://portal.acm.org/proceedings/colt/archive/"
-"Conference Proceedings","COM.Geo: Computing for Geospatial Research &#38; Application","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/com.geo/","http://portal.acm.org/proceedings/com.geo/archive/"
-"Conference Proceedings","COMM: Communications Architectures and Protocols","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/comm/","http://portal.acm.org/proceedings/comm/archive/"
-"Conference Proceedings","COMPUTE: COMPUTE","","","","2008 (January 2008)","2013 (August 2013)","http://portal.acm.org/proceedings/compute/","http://portal.acm.org/proceedings/compute/archive/"
-"Conference Proceedings","COMSWARE: Communication System Software and Middleware","","","","2009 (June 2009)","2011 (July 2011)","http://portal.acm.org/proceedings/comsware/","http://portal.acm.org/proceedings/comsware/archive/"
-"Conference Proceedings","COP: Context-Oriented Programming","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/cop/","http://portal.acm.org/proceedings/cop/archive/"
-"Conference Proceedings by Affiliated Organizations","CPR: Computers and People Research","","","","1962 (June 1962)","2013 (May 2013)","http://portal.acm.org/proceedings/sigcpr/","http://portal.acm.org/proceedings/sigcpr/archive/"
-"Conference Proceedings","CQL: Computers and the Quality of Life","","","","1990 (August 1990)","1996 (February 1996)","http://portal.acm.org/proceedings/cql/","http://portal.acm.org/proceedings/cql/archive/"
-"Conference Proceedings","CSAW: Computer Security Architectures","","","","2007 (November 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/csaw/","http://portal.acm.org/proceedings/csaw/archive/"
-"Conference Proceedings","CSC: Conference on Computer Science","","","","1973 (February 1973)","1996 (February 1996)","http://portal.acm.org/proceedings/csc/","http://portal.acm.org/proceedings/csc/archive/"
-"Conference Proceedings","CSCW: Computer Supported Cooperative Work","","","","1986 (December 1986)","2013 (February 2013)","http://portal.acm.org/proceedings/cscw/","http://portal.acm.org/proceedings/cscw/archive/"
-"Conference Proceedings","CSI-KDD: CyberSecurity and Intelligence Informatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/csi-kdd/","http://portal.acm.org/proceedings/csi-kdd/archive/"
-"Conference Proceedings","CSIIRW: Cyber Security and Information Intelligence Research","","","","2008 (May 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/csiirw/","http://portal.acm.org/proceedings/csiirw/archive/"
-"Conference Proceedings","CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/csssia/","http://portal.acm.org/proceedings/csssia/archive/"
-"Conference Proceedings","CSTST: Soft Computing as Transdisciplinary Science and Technology","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/cstst/","http://portal.acm.org/proceedings/cstst/archive/"
-"Conference Proceedings","CUFP: Commercial Users of Functional Programming","","","","2007 (October 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/cufp/","http://portal.acm.org/proceedings/cufp/archive/"
-"Conference Proceedings","CUU: Conference on Universal Usability","","","","2000 (November 2000)","2003 (November 2003)","http://portal.acm.org/proceedings/cuu/","http://portal.acm.org/proceedings/cuu/archive/"
-"Conference Proceedings","CVDB: Computer Vision Meets Databases","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/cvdb/","http://portal.acm.org/proceedings/cvdb/archive/"
-"Conference Proceedings","CVE: Collaborative Virtual Environments","","","","2000 (September 2000)","2002 (September 2002)","http://portal.acm.org/proceedings/cve/","http://portal.acm.org/proceedings/cve/archive/"
-"Conference Proceedings","CVSM: Comparison and Versioning of Software Models","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/cvsm/","http://portal.acm.org/proceedings/cvsm/archive/"
-"Conference Proceedings","CWIT: Women and ICT","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/cwit/","http://portal.acm.org/proceedings/cwit/archive/"
-"Conference Proceedings","CWNETS: Cognitive Wireless Networks","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/cwnets/","http://portal.acm.org/proceedings/cwnets/archive/"
-"Conference Proceedings","Casemans: Context-Awareness for Self-Managing Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
-"Conference Proceedings","CloudDB: Cloud Data Management","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/clouddb/","http://portal.acm.org/proceedings/clouddb/archive/"
-"Conference Proceedings","CoNEXT: Co-NEXT","","","","2005 (October 2005)","2013 (December 2013)","http://portal.acm.org/proceedings/conext/","http://portal.acm.org/proceedings/conext/archive/"
-"Conference Proceedings","CoRoNet: Cognitive Radio Networks","","","","2009 (September 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/coronet/","http://portal.acm.org/proceedings/coronet/archive/"
-"Conference Proceedings","CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/communicabilityms/","http://portal.acm.org/proceedings/communicabilityms/archive/"
-"Conference Proceedings","CompBio: Computational biology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/compbio/","http://portal.acm.org/proceedings/compbio/archive/"
-"Conference Proceedings","CompFrame: Component and Framework Technology in High-Performance and Scientific Computing","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/compframe/","http://portal.acm.org/proceedings/compframe/archive/"
-"Conference Proceedings","CompSysTech: Computer Systems and Technologies","","","","2000 (June 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/compsystech/","http://portal.acm.org/proceedings/compsystech/archive/"
-"Conference Proceedings","Companion: Middleware 08 Conference Companion","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/companion/","http://portal.acm.org/proceedings/companion/archive/"
-"Conference Proceedings","Creating: Creating Out of the Machine","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/creating/","http://portal.acm.org/proceedings/creating/archive/"
-"Conference Proceedings","DAC: Design Automation Conference","","","","1964 (January 1964)","2013 (May 2013)","http://portal.acm.org/proceedings/dac/","http://portal.acm.org/proceedings/dac/archive/"
-"Conference Proceedings","DADC: Data-aware Distributed Computing","","","","2008 (June 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/dadc/","http://portal.acm.org/proceedings/dadc/archive/"
-"Conference Proceedings","DAMP: Declarative Aspects of Multicore Programming","","","","2007 (January 2007)","2012 (January 2012)","http://portal.acm.org/proceedings/damp/","http://portal.acm.org/proceedings/damp/archive/"
-"Conference Proceedings","DARE: Designing Augmented Reality Environments","","","","2000 (April 2000)","2013 (November 2013)","http://portal.acm.org/proceedings/dare/","http://portal.acm.org/proceedings/dare/archive/"
-"Conference Proceedings","DAS: Document Analysis Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/das/","http://portal.acm.org/proceedings/das/archive/"
-"Conference Proceedings","DATACOMM: Data Communications and Data Networks","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/datacomm/","http://portal.acm.org/proceedings/datacomm/archive/"
-"Conference Proceedings","DATE: Design, Automation and Test in Europe","","","","1998 (February 1998)","2013 (March 2013)","http://portal.acm.org/proceedings/date/","http://portal.acm.org/proceedings/date/archive/"
-"Conference Proceedings","DBTest: Testing Database Systems","","","","2008 (June 2008)","2013 (June 2013)","http://portal.acm.org/proceedings/dbtest/","http://portal.acm.org/proceedings/dbtest/archive/"
-"Conference Proceedings","DCOSS:  Distributed Computing in Sensor Systems","","","","2007 (June 2007)","2010 (June 2010)","http://portal.acm.org/proceedings/dcoss/","http://portal.acm.org/proceedings/dcoss/archive/"
-"Conference Proceedings","DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dd4lcci/","http://portal.acm.org/proceedings/dd4lcci/archive/"
-"Conference Proceedings","DDDM: Domain Driven Data Mining","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/dddm/","http://portal.acm.org/proceedings/dddm/archive/"
-"Conference Proceedings","DEAS: Design and Evolution of Autonomic Application Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/deas/","http://portal.acm.org/proceedings/deas/archive/"
-"Conference Proceedings","DEBS: Distributed Event-Based Systems","","","","2003 (June 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/debs/","http://portal.acm.org/proceedings/debs/archive/"
-"Conference Proceedings","DEECS: Data Enginering issues in E-commerce and Services","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/deecs/","http://portal.acm.org/proceedings/deecs/archive/"
-"Conference Proceedings","DEFECTS: Defects in Large Software Systems","","","","2008 (July 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/defects/","http://portal.acm.org/proceedings/defects/archive/"
-"Conference Proceedings","DESIRE: Creativity and Innovation in Design","","","","2010 (August 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/desire/","http://portal.acm.org/proceedings/desire/archive/"
-"Conference Proceedings","DESRIST: Design Science Research in Information Systems and Technology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/desrist/","http://portal.acm.org/proceedings/desrist/archive/"
-"Conference Proceedings","DIALM: DIALM","","","","1999 (August 1999)","2010 (September 2010)","http://portal.acm.org/proceedings/dialm/","http://portal.acm.org/proceedings/dialm/archive/"
-"Conference Proceedings","DIM: Digital Identity Management","","","","2005 (November 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/dim/","http://portal.acm.org/proceedings/dim/archive/"
-"Conference Proceedings","DIMEA: Digital Interactive Media in Entertainment and Arts","","","","2007 (September 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/dimea/","http://portal.acm.org/proceedings/dimea/archive/"
-"Conference Proceedings","DIN: Dynamic Interconnection of Networks","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/din/","http://portal.acm.org/proceedings/din/archive/"
-"Conference Proceedings","DIS: Designing Interactive Systems","","","","1995 (August 1995)","2012 (June 2012)","http://portal.acm.org/proceedings/dis/","http://portal.acm.org/proceedings/dis/archive/"
-"Conference Proceedings","DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/diwans/","http://portal.acm.org/proceedings/diwans/archive/"
-"Conference Proceedings","DL: Digital Libraries","","","","1996 (April 1996)","2000 (June 2000)","http://portal.acm.org/proceedings/dl/","http://portal.acm.org/proceedings/dl/archive/"
-"Conference Proceedings","DLS: Dynamic Languages","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/dls/","http://portal.acm.org/proceedings/dls/archive/"
-"Conference Proceedings","DMG: Data Mining for Geoinformatics","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/dmg/","http://portal.acm.org/proceedings/dmg/archive/"
-"Conference Proceedings","DMKD: Research Issues in Data Mining and Knowledge Discovery","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/dmkd/","http://portal.acm.org/proceedings/dmkd/archive/"
-"Conference Proceedings","DMMT: Data Mining using Matrices and Tensors","","","","2001 (July 2001)","2009 (June 2009)","http://portal.acm.org/proceedings/dmmt/","http://portal.acm.org/proceedings/dmmt/archive/"
-"Conference Proceedings","DMSN: Data Management for Sensor Networks","","","","2004 (August 2004)","2010 (September 2010)","http://portal.acm.org/proceedings/dmsn/","http://portal.acm.org/proceedings/dmsn/archive/"
-"Conference Proceedings","DMSSP: Data Mining Standards, Services and Platforms","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/dmssp/","http://portal.acm.org/proceedings/dmssp/archive/"
-"Conference Proceedings","DO: Distributed Objects","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/do/","http://portal.acm.org/proceedings/do/archive/"
-"Conference Proceedings","DOCPROCS: Document Processing Systems","","","","1988 (January 2000)","1988 (January 2000)","http://portal.acm.org/proceedings/docprocs/","http://portal.acm.org/proceedings/docprocs/archive/"
-"Conference Proceedings","DOLAP: Data Warehousing and OLAP","","","","1998 (November 1998)","2013 (October 2013)","http://portal.acm.org/proceedings/dolap/","http://portal.acm.org/proceedings/dolap/archive/"
-"Conference Proceedings","DOSTA: Domain Specific Approaches to Software Test Automation","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/dosta/","http://portal.acm.org/proceedings/dosta/archive/"
-"Conference Proceedings","DPDS: Databases in Parallel and Distributed Systems","","","","1990 (July 1990)","1988 (January 2000)","http://portal.acm.org/proceedings/dpds/","http://portal.acm.org/proceedings/dpds/archive/"
-"Conference Proceedings","DPPI: Designing Pleasurable Products and Interfaces","","","","2003 (June 2003)","2013 (September 2013)","http://portal.acm.org/proceedings/dppi/","http://portal.acm.org/proceedings/dppi/archive/"
-"Conference Proceedings","DRM: Digital Rights Management","","","","2003 (October 2003)","2011 (October 2011)","http://portal.acm.org/proceedings/drm/","http://portal.acm.org/proceedings/drm/archive/"
-"Conference Proceedings","DS-RT: Distributed Simulation and Real Time Applications","","","","2000 (August 2000)","2012 (October 2012)","http://portal.acm.org/proceedings/ds-rt/","http://portal.acm.org/proceedings/ds-rt/archive/"
-"Conference Proceedings","DSAL: Domain-Specific Aspect Languages","","","","2007 (March 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/dsal/","http://portal.acm.org/proceedings/dsal/archive/"
-"Conference Proceedings","DSL: Domain-Specific Languages","","","","1999 (December 1999)","1999 (December 1999)","http://portal.acm.org/proceedings/dsl/","http://portal.acm.org/proceedings/dsl/archive/"
-"Conference Proceedings","DSM: Doctoral Symposium on Middleware","","","","2004 (October 2004)","2012 (October 2012)","http://portal.acm.org/proceedings/dsm/","http://portal.acm.org/proceedings/dsm/archive/"
-"Conference Proceedings","DSMM: Data-Intensive Software Management and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/dsmm/","http://portal.acm.org/proceedings/dsmm/archive/"
-"Conference Proceedings","DTMBIO: Data and Text Mining in Biomedical Informatics","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/dtmbio/","http://portal.acm.org/proceedings/dtmbio/archive/"
-"Conference Proceedings","DUX: Designing for User eXperiences","","","","2003 (June 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/dux/","http://portal.acm.org/proceedings/dux/archive/"
-"Conference Proceedings","DYADEM-FTS: Dependeability Models for Fault-Tolerant Systems","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dyadem-fts/","http://portal.acm.org/proceedings/dyadem-fts/archive/"
-"Conference Proceedings","DYNAMO: Dynamic and Adaptive Compilation and Optimization","","","","2000 (January 2000)","2000 (January 2000)","http://portal.acm.org/proceedings/dynamo/","http://portal.acm.org/proceedings/dynamo/archive/"
-"Conference Proceedings","DaGreS: Data Grids for eScience","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/dagres/","http://portal.acm.org/proceedings/dagres/archive/"
-"Conference Proceedings","DaMaP: Data Management in Peer-to-Peer Systems","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/damap/","http://portal.acm.org/proceedings/damap/archive/"
-"Conference Proceedings","DaMoN: Data Management on New Hardware","","","","2005 (June 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/damon/","http://portal.acm.org/proceedings/damon/archive/"
-"Conference Proceedings","DataX: Database Technologies for Handling XML Information on the Web","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/datax/","http://portal.acm.org/proceedings/datax/archive/"
-"Conference Proceedings","DocEng: Document Engineering","","","","2001 (November 2001)","2013 (September 2013)","http://portal.acm.org/proceedings/doceng/","http://portal.acm.org/proceedings/doceng/archive/"
-"Conference Proceedings","Dutch HCI: Dutch directions in HCI","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/dutchhci/","http://portal.acm.org/proceedings/dutchhci/archive/"
-"Conference Proceedings","E-WIND: Experimental Approaches to Wireless Network Design and Analysis","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/e-wind/","http://portal.acm.org/proceedings/e-wind/archive/"
-"Conference Proceedings","EA: Early Aspects","","","","2006 (May 2006)","2011 (March 2011)","http://portal.acm.org/proceedings/ea/","http://portal.acm.org/proceedings/ea/archive/"
-"Conference Proceedings","EATIS: Euro American Conference on Telematics and Information Systems","","","","2007 (May 2007)","2012 (May 2012)","http://portal.acm.org/proceedings/eatis/","http://portal.acm.org/proceedings/eatis/archive/"
-"Conference Proceedings","EC: Electronic Commerce","","","","1999 (November 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/ec/","http://portal.acm.org/proceedings/ec/archive/"
-"Conference Proceedings","ECA: Ethics in the Computer Age","","","","1994 (November 1994)","1994 (November 1994)","http://portal.acm.org/proceedings/eca/","http://portal.acm.org/proceedings/eca/archive/"
-"Conference Proceedings","ECCE: European Conference on Cognitive Ergonomics","","","","2006 (September 2006)","2013 (August 2013)","http://portal.acm.org/proceedings/ecce/","http://portal.acm.org/proceedings/ecce/archive/"
-"Conference Proceedings","ECHT: European Conference on Hypermedia Technology","","","","1992 (November 1992)","1994 (September 1994)","http://portal.acm.org/proceedings/echt/","http://portal.acm.org/proceedings/echt/archive/"
-"Conference Proceedings","ECIR: European Conference on Information Retrieval","","","","2008 (March 2008)","2012 (April 2012)","http://portal.acm.org/proceedings/ecir/","http://portal.acm.org/proceedings/ecir/archive/"
-"Conference Proceedings","ECMFA-TW: ECMFA Traceability Workshop","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/ecmfa-tw/","http://portal.acm.org/proceedings/ecmfa-tw/archive/"
-"Conference Proceedings","ECOOP: European Conference on Object-Oriented Programming","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/ecoop/","http://portal.acm.org/proceedings/ecoop/archive/"
-"Conference Proceedings","ECSA: European Conference on Software Architecture","","","","2010 (August 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/ecsa/","http://portal.acm.org/proceedings/ecsa/archive/"
-"Conference Proceedings","EDBT: Extending Database Technology","","","","2008 (March 2008)","2013 (March 2013)","http://portal.acm.org/proceedings/edbt/","http://portal.acm.org/proceedings/edbt/archive/"
-"Conference Proceedings","EDSER: Economics-Driven Software Engineering Research","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/edser/","http://portal.acm.org/proceedings/edser/archive/"
-"Conference Proceedings","EDT: Emerging Displays Technologies","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/edt/","http://portal.acm.org/proceedings/edt/archive/"
-"Conference Proceedings","EDTC: European Conference on Design and Test","","","","1995 (March 1995)","1997 (March 1997)","http://portal.acm.org/proceedings/edtc/","http://portal.acm.org/proceedings/edtc/archive/"
-"Conference Proceedings","EESR: End-to-end, Sense-and-respond Systems, Applications and Services","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/eesr/","http://portal.acm.org/proceedings/eesr/archive/"
-"Conference Proceedings","EFTS: Engineering Fault Tolerant Systems","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/efts/","http://portal.acm.org/proceedings/efts/archive/"
-"Conference Proceedings","EGPGV: Eurographics Workshop on Parallel Graphics and Visualization","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/egpgv/","http://portal.acm.org/proceedings/egpgv/archive/"
-"Conference Proceedings","EGRW: Eurographics Workshop on Rendering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/egrw/","http://portal.acm.org/proceedings/egrw/archive/"
-"Conference Proceedings","EGVE: Virtual Environments","","","","2002 (May 2002)","2007 (July 2007)","http://portal.acm.org/proceedings/egve/","http://portal.acm.org/proceedings/egve/archive/"
-"Conference Proceedings","EICS: Engineering Interactive Computing Systems","","","","2009 (July 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/eics/","http://portal.acm.org/proceedings/eics/archive/"
-"Conference Proceedings","ELW: European Lisp Workshop","","","","2009 (July 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/elw/","http://portal.acm.org/proceedings/elw/archive/"
-"Conference Proceedings","EMSOFT: Embedded Software","","","","2004 (September 2004)","2013 (September 2013)","http://portal.acm.org/proceedings/emsoft/","http://portal.acm.org/proceedings/emsoft/archive/"
-"Conference Proceedings","EOMAS: Enterprises & Organizational Modeling and Simulation","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/eomas/","http://portal.acm.org/proceedings/eomas/archive/"
-"Conference Proceedings","EPIA: Progress in Artificial Intelligence","","","","2007 (December 2007)","2007 (December 2007)","http://portal.acm.org/proceedings/epia/","http://portal.acm.org/proceedings/epia/archive/"
-"Conference Proceedings","ERLANG: ERLANG","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/erlang/","http://portal.acm.org/proceedings/erlang/archive/"
-"Conference Proceedings","ESAIR: Exploiting Semantic Annotations in Information Retrieval","","","","2009 (February 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/esair/","http://portal.acm.org/proceedings/esair/archive/"
-"Conference Proceedings","ESC: Economics of Software and Computation","","","","2007 (May 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/esc/","http://portal.acm.org/proceedings/esc/archive/"
-"Conference Proceedings","ESEC/FSE: European Software Engineering Conference","","","","1997 (November 1997)","2013 (August 2013)","http://portal.acm.org/proceedings/esec/fse/","http://portal.acm.org/proceedings/esec/fse/archive/"
-"Conference Proceedings","ESEM: Empirical Software Engineering and Measurement","","","","2007 (September 2007)","2012 (September 2012)","http://portal.acm.org/proceedings/esem/","http://portal.acm.org/proceedings/esem/archive/"
-"Conference Proceedings","ESP: Empirical Studies of Programmers","","","","1997 (October 1997)","1997 (October 1997)","http://portal.acm.org/proceedings/esp/","http://portal.acm.org/proceedings/esp/archive/"
-"Conference Proceedings","ESSPE: Engineering of Software Services for Pervasive Environments","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/esspe/","http://portal.acm.org/proceedings/esspe/archive/"
-"Conference Proceedings","ESTMED: Embedded Systems for Real Time Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/estmed/","http://portal.acm.org/proceedings/estmed/archive/"
-"Conference Proceedings","ETOOS: Testing Object-Oriented Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/etoos/","http://portal.acm.org/proceedings/etoos/archive/"
-"Conference Proceedings","ETP: Effective Telepresence","","","","2003 (November 2003)","2004 (October 2004)","http://portal.acm.org/proceedings/etp/","http://portal.acm.org/proceedings/etp/archive/"
-"Conference Proceedings","ETRA: Eye Tracking Research and Applications","","","","2000 (November 2000)","2012 (March 2012)","http://portal.acm.org/proceedings/etra/","http://portal.acm.org/proceedings/etra/archive/"
-"Conference Proceedings","EURO-DAC: European Design Automation","","","","1990 (March 1990)","1996 (September 1996)","http://portal.acm.org/proceedings/euro-dac/","http://portal.acm.org/proceedings/euro-dac/archive/"
-"Conference Proceedings","EUROSEC: European Workshop on System Security","","","","2008 (March 2008)","2011 (April 2011)","http://portal.acm.org/proceedings/eurosec/","http://portal.acm.org/proceedings/eurosec/archive/"
-"Conference Proceedings","EUSAI: European Union symposium on Ambient intelligence","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/eusai/","http://portal.acm.org/proceedings/eusai/archive/"
-"Conference Proceedings","EW: ACM SIGOPS European Workshop","","","","1985 (January 1985)","2004 (September 2004)","http://portal.acm.org/proceedings/ew/","http://portal.acm.org/proceedings/ew/archive/"
-"Conference Proceedings","EiMM: Events in Multimedia","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/eimm/","http://portal.acm.org/proceedings/eimm/archive/"
-"Conference Proceedings","EmNets: Embedded Networked Sensors","","","","2005 (April 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/emnets/","http://portal.acm.org/proceedings/emnets/archive/"
-"Conference Proceedings","Emme: Educational Multimedia and Multimedia Education","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/emme/","http://portal.acm.org/proceedings/emme/archive/"
-"Conference Proceedings","Ergo'IA: Ergonomie et Informatique Avancee Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/ergo'ia/","http://portal.acm.org/proceedings/ergo'ia/archive/"
-"Conference Proceedings","EuroITV: Interactive TV &#38; Video","","","","2007 (May 2007)","2013 (June 2013)","http://portal.acm.org/proceedings/euroitv/","http://portal.acm.org/proceedings/euroitv/archive/"
-"Conference Proceedings","EuroSys: European Conference on Computer Systems","","","","2006 (April 2006)","2013 (April 2013)","http://portal.acm.org/proceedings/eurosys/","http://portal.acm.org/proceedings/eurosys/archive/"
-"Conference Proceedings","ExpCS: Experimental Computer Science","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/expcs/","http://portal.acm.org/proceedings/expcs/archive/"
-"Conference Proceedings","FAA: Facial Analysis and Animation","","","","2010 (October 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/faa/","http://portal.acm.org/proceedings/faa/archive/"
-"Conference Proceedings","FAST: File and Storage Technologies","","","","2005 (December 2005)","2012 (February 2012)","http://portal.acm.org/proceedings/fast/","http://portal.acm.org/proceedings/fast/archive/"
-"Conference Proceedings","FDG: Foundations of Digital Games","","","","2009 (April 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/fdg/","http://portal.acm.org/proceedings/fdg/archive/"
-"Conference Proceedings","FDNA: Future Directions in Network Architectures","","","","2003 (August 2003)","2004 (August 2004)","http://portal.acm.org/proceedings/fdna/","http://portal.acm.org/proceedings/fdna/archive/"
-"Conference Proceedings","FDPE: Functional and Declarative Progamming in Education","","","","2005 (September 2005)","2008 (September 2008)","http://portal.acm.org/proceedings/fdpe/","http://portal.acm.org/proceedings/fdpe/archive/"
-"Conference Proceedings","FIT: Frontiers of Information Technology","","","","2009 (December 2009)","2010 (December 2010)","http://portal.acm.org/proceedings/fit/","http://portal.acm.org/proceedings/fit/archive/"
-"Conference Proceedings","FLOSS: Emerging Trends in Free/Libre/Open Source Software Research and Development","","","","2007 (May 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/floss/","http://portal.acm.org/proceedings/floss/archive/"
-"Conference Proceedings","FMICS: Formal Methods for Industrial Critical Systems","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/fmics/","http://portal.acm.org/proceedings/fmics/archive/"
-"Conference Proceedings","FMSE: Formal Methods in Security Engineering","","","","2003 (October 2003)","2008 (October 2008)","http://portal.acm.org/proceedings/fmse/","http://portal.acm.org/proceedings/fmse/archive/"
-"Conference Proceedings","FMSP: Formal Methods in Software Practice","","","","1998 (March 1998)","2000 (August 2000)","http://portal.acm.org/proceedings/fmsp/","http://portal.acm.org/proceedings/fmsp/archive/"
-"Conference Proceedings","FOAL: Foundations of Aspect-Oriented Languages","","","","2007 (March 2007)","2013 (March 2013)","http://portal.acm.org/proceedings/foal/","http://portal.acm.org/proceedings/foal/archive/"
-"Conference Proceedings","FOGA: Foundations of Genetic Algorithms","","","","2007 (January 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/foga/","http://portal.acm.org/proceedings/foga/archive/"
-"Conference Proceedings","FOIS: Formal Ontology in Information Systems","","","","2001 (October 2001)","2001 (October 2001)","http://portal.acm.org/proceedings/fois/","http://portal.acm.org/proceedings/fois/archive/"
-"Conference Proceedings","FORTH: FORTH","","","","1989 (January 1989)","1992 (December 1993)","http://portal.acm.org/proceedings/forth/","http://portal.acm.org/proceedings/forth/archive/"
-"Conference Proceedings","FOSD: Feature-Oriented Software Development","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/fosd/","http://portal.acm.org/proceedings/fosd/archive/"
-"Conference Proceedings","FOSE: Future of Software Engineering","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/fose/","http://portal.acm.org/proceedings/fose/archive/"
-"Conference Proceedings","FOWANC: Foundations of Wireless Ad-Hoc and Sensor Networking and Computing","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/fowanc/","http://portal.acm.org/proceedings/fowanc/archive/"
-"Conference Proceedings","FPCA: Functional Programming Languages and Computer Architecture","","","","1981 (October 1981)","1995 (October 1995)","http://portal.acm.org/proceedings/fpca/","http://portal.acm.org/proceedings/fpca/archive/"
-"Conference Proceedings","FPGA: Field Programmable Gate Arrays","","","","1995 (February 1995)","2013 (February 2013)","http://portal.acm.org/proceedings/fpga/","http://portal.acm.org/proceedings/fpga/archive/"
-"Conference Proceedings","FPGAworld: FPGAworld","","","","2009 (September 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/fpgaworld/","http://portal.acm.org/proceedings/fpgaworld/archive/"
-"Conference Proceedings","FSEDS: Foundations of Software Engineering Doctoral Symposium","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/fseds/","http://portal.acm.org/proceedings/fseds/archive/"
-"Conference Proceedings","FSEN: Fundamentals of Software Engineering","","","","2007 (April 2007)","2007 (April 2007)","http://portal.acm.org/proceedings/fsen/","http://portal.acm.org/proceedings/fsen/archive/"
-"Conference Proceedings","FSM: Functional Size Measurement","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/fsm/","http://portal.acm.org/proceedings/fsm/archive/"
-"Conference Proceedings","FTfJP: Formal Techniques for Java-like Programs","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/ftfjp/","http://portal.acm.org/proceedings/ftfjp/archive/"
-"Conference Proceedings","FeBiD: International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/febid/","http://portal.acm.org/proceedings/febid/archive/"
-"Conference Proceedings","FoSER: Future of Software Engineering Research ","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/foser/","http://portal.acm.org/proceedings/foser/archive/"
-"Conference Proceedings","Fun and Games: Fun and Games","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/funandgames/","http://portal.acm.org/proceedings/funandgames/archive/"
-"Conference Proceedings","Future Play: Future Play","","","","2007 (November 2007)","2010 (May 2010)","http://portal.acm.org/proceedings/futureplay/","http://portal.acm.org/proceedings/futureplay/archive/"
-"Conference Proceedings","GCE: Grid Computing Environments","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/gce/","http://portal.acm.org/proceedings/gce/archive/"
-"Conference Proceedings","GCM: Green Computing","","","","2010 (November 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gcm/","http://portal.acm.org/proceedings/gcm/archive/"
-"Conference Proceedings","GDCSE: Game Development in Computer Science Education","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/gdcse/","http://portal.acm.org/proceedings/gdcse/archive/"
-"Conference Proceedings","GEC: Genetic and Evolutionary Computation","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/gec/","http://portal.acm.org/proceedings/gec/archive/"
-"Conference Proceedings","GECCO: Genetic and Evolutionary Computation Conference","","","","1996 (July 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/gecco/","http://portal.acm.org/proceedings/gecco/archive/"
-"Conference Proceedings","GH: Graphics Hardware","","","","1997 (August 1997)","2008 (June 2008)","http://portal.acm.org/proceedings/gh/","http://portal.acm.org/proceedings/gh/archive/"
-"Conference Proceedings","GI: Graphics Interface","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/gi/","http://portal.acm.org/proceedings/gi/archive/"
-"Conference Proceedings","GIR: Geographic Information Retrieval","","","","2005 (November 2005)","2010 (February 2010)","http://portal.acm.org/proceedings/gir/","http://portal.acm.org/proceedings/gir/archive/"
-"Conference Proceedings","GIS: Geographic Information Systems","","","","1996 (November 1996)","2012 (November 2012)","http://portal.acm.org/proceedings/gis/","http://portal.acm.org/proceedings/gis/archive/"
-"Conference Proceedings","GLSVLSI: Great Lakes Symposium on VLSI","","","","1995 (March 1995)","2013 (May 2013)","http://portal.acm.org/proceedings/glsvlsi/","http://portal.acm.org/proceedings/glsvlsi/archive/"
-"Conference Proceedings","GMAC: Grids Meets Autonomic Computing","","","","2009 (June 2009)","2010 (June 2010)","http://portal.acm.org/proceedings/gmac/","http://portal.acm.org/proceedings/gmac/archive/"
-"Conference Proceedings","GMW: Grid Monitoring","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/gmw/","http://portal.acm.org/proceedings/gmw/archive/"
-"Conference Proceedings","GPCE: Generative Programming and Component Engineering","","","","2002 (October 2002)","2013 (October 2013)","http://portal.acm.org/proceedings/gpce/","http://portal.acm.org/proceedings/gpce/archive/"
-"Conference Proceedings","GPGPU: General Purpose Processing on Graphics Processing Units","","","","2009 (March 2009)","2012 (March 2012)","http://portal.acm.org/proceedings/gpgpu/","http://portal.acm.org/proceedings/gpgpu/archive/"
-"Conference Proceedings","GRAPHITE: Computer Graphics and Interactive Techniques in Australia and South East Asia","","","","2003 (February 2003)","2007 (December 2007)","http://portal.acm.org/proceedings/graphite/","http://portal.acm.org/proceedings/graphite/archive/"
-"Conference Proceedings","GRID: Grid Computing","","","","2003 (November 2003)","2008 (September 2008)","http://portal.acm.org/proceedings/grid/","http://portal.acm.org/proceedings/grid/archive/"
-"Conference Proceedings","GROUP: Supporting Group Work","","","","1997 (November 1997)","2012 (October 2012)","http://portal.acm.org/proceedings/group/","http://portal.acm.org/proceedings/group/archive/"
-"Conference Proceedings","GRaMoT: Graph and Model Transformations","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/gramot/","http://portal.acm.org/proceedings/gramot/archive/"
-"Conference Proceedings","GSD: Global Software Development for the Practitioner","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gsd/","http://portal.acm.org/proceedings/gsd/archive/"
-"Conference Proceedings","GTIP: Governance of Technology, Information, and Policies ","","","","2010 (December 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/gtip/","http://portal.acm.org/proceedings/gtip/archive/"
-"Conference Proceedings","GaMMa: Global Integrated Model Management","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/gamma/","http://portal.acm.org/proceedings/gamma/archive/"
-"Conference Proceedings","GameNets: Game Theory for Communications and Networks","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/gamenets/","http://portal.acm.org/proceedings/gamenets/archive/"
-"Conference Proceedings","Green Networking: Green networking","","","","2010 (August 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/greennetworking/","http://portal.acm.org/proceedings/greennetworking/archive/"
-"Conference Proceedings","GridNets: Networks for Grid Applications","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/gridnets/","http://portal.acm.org/proceedings/gridnets/archive/"
-"Conference Proceedings","HAS: Haptic User Interfaces in Ambient Media Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/has/","http://portal.acm.org/proceedings/has/archive/"
-"Conference Proceedings","HCC: Human-Centered Computing","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/hcc/","http://portal.acm.org/proceedings/hcc/archive/"
-"Conference Proceedings","HCM: Human-Centered Multimedia","","","","2006 (October 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/hcm/","http://portal.acm.org/proceedings/hcm/archive/"
-"Conference Proceedings","HCOMP: Human Computation","","","","2009 (June 2009)","2010 (July 2010)","http://portal.acm.org/proceedings/hcomp/","http://portal.acm.org/proceedings/hcomp/archive/"
-"Conference Proceedings","HDP: Hardcopy Document Processing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/hdp/","http://portal.acm.org/proceedings/hdp/archive/"
-"Conference Proceedings","HIKM: Healthcare Information and Knowledge Management","","","","2006 (November 2006)","2010 (January 2010)","http://portal.acm.org/proceedings/hikm/","http://portal.acm.org/proceedings/hikm/archive/"
-"Conference Proceedings","HLLCA: High-Level-Language Computer Architecture","","","","1973 (November 1973)","1973 (November 1973)","http://portal.acm.org/proceedings/hllca/","http://portal.acm.org/proceedings/hllca/archive/"
-"Conference Proceedings","HLPP: High-level parallel programming and applications","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/hlpp/","http://portal.acm.org/proceedings/hlpp/archive/"
-"Conference Proceedings","HOPL: History of Programming Languages","","","","1993 (April 1993)","2007 (June 2007)","http://portal.acm.org/proceedings/hopl/","http://portal.acm.org/proceedings/hopl/archive/"
-"Conference Proceedings","HPCVirt: System-level Virtualization for High Performance Computing","","","","2008 (March 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/hpcvirt/","http://portal.acm.org/proceedings/hpcvirt/archive/"
-"Conference Proceedings","HPDC: High Performance Distributed Computing","","","","1995 (August 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/hpdc/","http://portal.acm.org/proceedings/hpdc/archive/"
-"Conference Proceedings","HPDGIS: High Performance and Distributed Geographic Information Systems ","","","","2010 (November 2010)","2011 (November 2011)","http://portal.acm.org/proceedings/hpdgis/","http://portal.acm.org/proceedings/hpdgis/archive/"
-"Conference Proceedings","HPG: High Perfomance Graphics","","","","2009 (August 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/hpg/","http://portal.acm.org/proceedings/hpg/archive/"
-"Conference Proceedings","HPRCTA: High-Performance Reconfigurable Computing Technology and Applications","","","","2007 (November 2007)","2009 (November 2009)","http://portal.acm.org/proceedings/hprcta/","http://portal.acm.org/proceedings/hprcta/archive/"
-"Conference Proceedings","HPW: History of Personal Workstations","","","","1986 (January 1986)","1986 (January 1986)","http://portal.acm.org/proceedings/hpw/","http://portal.acm.org/proceedings/hpw/archive/"
-"Conference Proceedings","HRI: Human-Robot Interaction","","","","2006 (March 2006)","2013 (March 2013)","http://portal.acm.org/proceedings/hri/","http://portal.acm.org/proceedings/hri/archive/"
-"Conference Proceedings","HSCC: Hybrid Systems: Computation and Control","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/hscc/","http://portal.acm.org/proceedings/hscc/archive/"
-"Conference Proceedings","HSNC: History of Scientific and Numeric Computation","","","","1987 (October 1987)","1987 (October 1987)","http://portal.acm.org/proceedings/hsnc/","http://portal.acm.org/proceedings/hsnc/archive/"
-"Conference Proceedings","HSSE: Human and Social Factors of Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/hsse/","http://portal.acm.org/proceedings/hsse/archive/"
-"Conference Proceedings","HT: Hypertext and hypermedia","","","","1987 (November 1987)","2013 (May 2013)","http://portal.acm.org/proceedings/ht/","http://portal.acm.org/proceedings/ht/archive/"
-"Conference Proceedings","Haskell: Haskell","","","","2002 (October 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/haskell/","http://portal.acm.org/proceedings/haskell/archive/"
-"Conference Proceedings","HealthNet: Networking Support for Health Care and Assisted Living Environments","","","","2007 (June 2007)","2008 (June 2008)","http://portal.acm.org/proceedings/healthnet/","http://portal.acm.org/proceedings/healthnet/archive/"
-"Conference Proceedings","HetRec: Information Heterogeneity and Fusion in Recommender Systems ","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/hetrec/","http://portal.acm.org/proceedings/hetrec/archive/"
-"Conference Proceedings","HeterSanet: Heterogeneous Sensor and Actor Networks","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/hetersanet/","http://portal.acm.org/proceedings/hetersanet/archive/"
-"Conference Proceedings","HiPC: High Performance Computing ","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/hipc/","http://portal.acm.org/proceedings/hipc/archive/"
-"Conference Proceedings","HomeNets: Home Networks","","","","2010 (September 2010)","2011 (August 2011)","http://portal.acm.org/proceedings/homenets/","http://portal.acm.org/proceedings/homenets/archive/"
-"Conference Proceedings","HotMobile: Mobile Computing Systems and Applications","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/hotmobile/","http://portal.acm.org/proceedings/hotmobile/archive/"
-"Conference Proceedings","HotPlanet: Hot Topics of Planet-Scale Mobility Measurements","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/hotplanet/","http://portal.acm.org/proceedings/hotplanet/archive/"
-"Conference Proceedings","HotSWUp: Hot Topics in Software Upgrades","","","","2008 (October 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/hotswup/","http://portal.acm.org/proceedings/hotswup/archive/"
-"Conference Proceedings","Hotnets: Hot Topics in Networks","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/hotnets/","http://portal.acm.org/proceedings/hotnets/archive/"
-"Conference Proceedings","HuCom: Human Factors and Computational Models in Negotiation","","","","2009 (December 2008)","2009 (December 2008)","http://portal.acm.org/proceedings/hucom/","http://portal.acm.org/proceedings/hucom/archive/"
-"Conference Proceedings","I-SEMANTICS: Semantic Systems","","","","2010 (September 2010)","2013 (September 2013)","http://portal.acm.org/proceedings/i-semantics/","http://portal.acm.org/proceedings/i-semantics/archive/"
-"Conference Proceedings","I3D: Interactive 3D Graphics and Games","","","","1987 (January 1987)","2013 (March 2013)","http://portal.acm.org/proceedings/i3d/","http://portal.acm.org/proceedings/i3d/archive/"
-"Conference Proceedings","IAT: Intelligent Agent Technology","","","","2006 (December 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/iat/","http://portal.acm.org/proceedings/iat/archive/"
-"Conference Proceedings","ICAC3: Advances in Computing, Communication and Control","","","","2009 (January 2009)","2009 (January 2009)","http://portal.acm.org/proceedings/icac3/","http://portal.acm.org/proceedings/icac3/archive/"
-"Conference Proceedings","ICAC: Autonomic Computing","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/icac/","http://portal.acm.org/proceedings/icac/archive/"
-"Conference Proceedings","ICAIL: International Conference on Artificial Intelligence and Law","","","","1987 (December 1987)","2013 (June 2013)","http://portal.acm.org/proceedings/icail/","http://portal.acm.org/proceedings/icail/archive/"
-"Conference Proceedings","ICAIT: Advanced Infocomm Technology","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/icait/","http://portal.acm.org/proceedings/icait/archive/"
-"Conference Proceedings","ICAT: Augmented Tele-existence","","","","2005 (December 2005)","2005 (December 2005)","http://portal.acm.org/proceedings/icat/","http://portal.acm.org/proceedings/icat/archive/"
-"Conference Proceedings","ICCAD: International Conference on Computer-Aided Design","","","","1992 (November 1992)","2012 (November 2012)","http://portal.acm.org/proceedings/iccad/","http://portal.acm.org/proceedings/iccad/archive/"
-"Conference Proceedings","ICCPS: Cyber-Physical Systems","","","","2010 (April 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/iccps/","http://portal.acm.org/proceedings/iccps/archive/"
-"Conference Proceedings","ICDL: International Conference on Dynamic Languages","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/icdl/","http://portal.acm.org/proceedings/icdl/archive/"
-"Conference Proceedings","ICDSC: Distributed Smart Cameras","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/icdsc/","http://portal.acm.org/proceedings/icdsc/archive/"
-"Conference Proceedings","ICDT: Database Theory","","","","2009 (March 2009)","2013 (March 2013)","http://portal.acm.org/proceedings/icdt/","http://portal.acm.org/proceedings/icdt/archive/"
-"Conference Proceedings","ICE: Information and Computation Economies","","","","1998 (October 1998)","1998 (October 1998)","http://portal.acm.org/proceedings/ice/","http://portal.acm.org/proceedings/ice/archive/"
-"Conference Proceedings","ICEC: International Conference on Electronic Commerce","","","","2003 (September 2003)","2012 (August 2012)","http://portal.acm.org/proceedings/icec/","http://portal.acm.org/proceedings/icec/archive/"
-"Conference Proceedings","ICEGOV: International Conference on Theory and Practice of Electronic Governance","","","","2007 (December 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/icegov/","http://portal.acm.org/proceedings/icegov/archive/"
-"Conference Proceedings","ICER: International Computing Education Research Workshop","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/icer/","http://portal.acm.org/proceedings/icer/archive/"
-"Conference Proceedings","ICFP: International Conference on Functional Programmuing","","","","1996 (June 1996)","2013 (September 2013)","http://portal.acm.org/proceedings/icfp/","http://portal.acm.org/proceedings/icfp/archive/"
-"Conference Proceedings","ICHIT: International Conference on Hybrid Information Technology","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/ichit/","http://portal.acm.org/proceedings/ichit/archive/"
-"Conference Proceedings","ICIC: Intercultural Collaboration","","","","2010 (August 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/icic/","http://portal.acm.org/proceedings/icic/archive/"
-"Conference Proceedings","ICIMCS: Internet Multimedia Computing and Service","","","","2009 (November 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/icimcs/","http://portal.acm.org/proceedings/icimcs/archive/"
-"Conference Proceedings","ICIS: International Conference on Computer and Information Science","","","","1989 (December 1989)","2009 (November 2009)","http://portal.acm.org/proceedings/icis/","http://portal.acm.org/proceedings/icis/archive/"
-"Conference Proceedings","ICMI: International Conference on Multimodal Interfaces","","","","2002 (October 2002)","2013 (December 2013)","http://portal.acm.org/proceedings/icmi/","http://portal.acm.org/proceedings/icmi/archive/"
-"Conference Proceedings","ICML: International Conference on Machine Learning","","","","2004 (July 2004)","2009 (June 2009)","http://portal.acm.org/proceedings/icml/","http://portal.acm.org/proceedings/icml/archive/"
-"Conference Proceedings","ICOOOLPS: Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/icooolps/","http://portal.acm.org/proceedings/icooolps/archive/"
-"Conference Proceedings","ICPS: Pervasive Services","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/icps/","http://portal.acm.org/proceedings/icps/archive/"
-"Conference Proceedings","ICPW: International Conference on Pragmatic Web","","","","2007 (October 2007)","2008 (November 2008)","http://portal.acm.org/proceedings/icpw/","http://portal.acm.org/proceedings/icpw/archive/"
-"Conference Proceedings","ICS: International Conference on Supercomputing","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/ics/","http://portal.acm.org/proceedings/ics/archive/"
-"Conference Proceedings","ICSE: International Conference on Software Engineering","","","","1976 (October 1976)","2012 (June 2012)","http://portal.acm.org/proceedings/icse/","http://portal.acm.org/proceedings/icse/archive/"
-"Conference Proceedings","ICSOC: International Conference on Service Oriented Computing","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/icsoc/","http://portal.acm.org/proceedings/icsoc/archive/"
-"Conference Proceedings","ICTD: Information and Communication Technologies and Development ","","","","2009 (April 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/ictd/","http://portal.acm.org/proceedings/ictd/archive/"
-"Conference Proceedings","ICUIMC: International Conference on Ubiquitous Information Management and Communication","","","","2008 (January 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/icuimc/","http://portal.acm.org/proceedings/icuimc/archive/"
-"Conference Proceedings","ICVGIP: Indian Conference on Computer Vision, Graphics and Image Processing","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/icvgip/","http://portal.acm.org/proceedings/icvgip/archive/"
-"Conference Proceedings","ICWE: Web Engineering","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/icwe/","http://portal.acm.org/proceedings/icwe/archive/"
-"Conference Proceedings","ICWET: Workshop on Emerging Trends in Technology","","","","2010 (February 2010)","2011 (February 2011)","http://portal.acm.org/proceedings/icwet/","http://portal.acm.org/proceedings/icwet/archive/"
-"Conference Proceedings","IDAR: Innovative Database Research","","","","2008 (June 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/idar/","http://portal.acm.org/proceedings/idar/archive/"
-"Conference Proceedings","IDC: Interaction Design and Children","","","","2003 (July 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/idc/","http://portal.acm.org/proceedings/idc/archive/"
-"Conference Proceedings","IDEAS: International Database Engineering &#38; Applications Symposium","","","","2008 (September 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/ideas/","http://portal.acm.org/proceedings/ideas/archive/"
-"Conference Proceedings","IDL: Interface Definition Languages","","","","1994 (August 1994)","1994 (August 1994)","http://portal.acm.org/proceedings/idl/","http://portal.acm.org/proceedings/idl/archive/"
-"Conference Proceedings","IDTRUST: Identity and Trust on the Internet","","","","2008 (March 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/idtrust/","http://portal.acm.org/proceedings/idtrust/archive/"
-"Conference Proceedings","IE: Interactive Entertainment","","","","2006 (December 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/ie/","http://portal.acm.org/proceedings/ie/archive/"
-"Conference Proceedings","IEA/AIE: Industrial and Engineering Applications of Artificial Intelligence and Expert Systems","","","","1988 (June 1988)","2011 (June 2011)","http://portal.acm.org/proceedings/iea/aie/","http://portal.acm.org/proceedings/iea/aie/archive/"
-"Conference Proceedings","IFMT: Next-Generation Multicore/Manycore Technologies","","","","2008 (November 2008)","2010 (June 2010)","http://portal.acm.org/proceedings/ifmt/","http://portal.acm.org/proceedings/ifmt/archive/"
-"Conference Proceedings","IHC: Brazilian Symposium on Human Factors in Computing Systems","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ihc/","http://portal.acm.org/proceedings/ihc/archive/"
-"Conference Proceedings","IHI: International Health Informatics Symposium","","","","2010 (November 2010)","2012 (January 2012)","http://portal.acm.org/proceedings/ihi/","http://portal.acm.org/proceedings/ihi/archive/"
-"Conference Proceedings","IHIS: Interoperability of Heterogeneous Information Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ihis/","http://portal.acm.org/proceedings/ihis/archive/"
-"Conference Proceedings","IHM: International Conference on Association Francophone d'Interaction Homme-Machine","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/ihm/","http://portal.acm.org/proceedings/ihm/archive/"
-"Conference Proceedings","IIES: Isolation and Integration in Embedded Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/iies/","http://portal.acm.org/proceedings/iies/archive/"
-"Conference Proceedings","IIiX: Information Interaction in Context","","","","2006 (October 2006)","2012 (August 2012)","http://portal.acm.org/proceedings/iiix/","http://portal.acm.org/proceedings/iiix/archive/"
-"Conference Proceedings","ILC: International Lisp Conference","","","","2009 (April 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/ilc/","http://portal.acm.org/proceedings/ilc/archive/"
-"Conference Proceedings","IMC: Internet Measurement Conference","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/imc/","http://portal.acm.org/proceedings/imc/archive/"
-"Conference Proceedings","IMCE: Interactive Multimedia for Consumer Electronics","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/imce/","http://portal.acm.org/proceedings/imce/archive/"
-"Conference Proceedings","IMW: Internet Measurement Workshop","","","","2001 (November 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/imw/","http://portal.acm.org/proceedings/imw/archive/"
-"Conference Proceedings","INA-OCMC: Interconnection Network Architecture: On-Chip, Multi-Chip","","","","2011 (January 2011)","2011 (January 2011)","http://portal.acm.org/proceedings/ina-ocmc/","http://portal.acm.org/proceedings/ina-ocmc/archive/"
-"Conference Proceedings","INM: Internet Network Management","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/inm/","http://portal.acm.org/proceedings/inm/archive/"
-"Conference Proceedings","INT3: Intelligent Narrative Technologies","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/int3/","http://portal.acm.org/proceedings/int3/archive/"
-"Conference Proceedings","INTERACT: Interaction between Compilers and Computer Architecture","","","","2010 (March 2010)","2010 (March 2010)","http://portal.acm.org/proceedings/interact/","http://portal.acm.org/proceedings/interact/archive/"
-"Conference Proceedings","INTETAIN: Intelligent Technologies for Interactive Entertainment","","","","2007 (January 2008)","2007 (January 2008)","http://portal.acm.org/proceedings/intetain/","http://portal.acm.org/proceedings/intetain/archive/"
-"Conference Proceedings","IOPADS: I/O in Parallel and Distributed Systems","","","","1996 (May 1996)","1999 (May 1999)","http://portal.acm.org/proceedings/iopads/","http://portal.acm.org/proceedings/iopads/archive/"
-"Conference Proceedings","IPSN: Information Processing in Sensor Networks","","","","2004 (April 2004)","2013 (April 2013)","http://portal.acm.org/proceedings/ipsn/","http://portal.acm.org/proceedings/ipsn/archive/"
-"Conference Proceedings","IPT/EDT: Immersive Projection technologies/Emerging Display Technologies","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/ipt/edt/","http://portal.acm.org/proceedings/ipt/edt/archive/"
-"Conference Proceedings","IPTComm: Principles, Systems and Applications of IP Telecommunications","","","","2007 (July 2007)","2010 (August 2010)","http://portal.acm.org/proceedings/iptcomm/","http://portal.acm.org/proceedings/iptcomm/archive/"
-"Conference Proceedings","IQIS: Information Quality in Information Systems","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/iqis/","http://portal.acm.org/proceedings/iqis/archive/"
-"Conference Proceedings","IR: Intermediate Representations","","","","1995 (March 1995)","1995 (March 1995)","http://portal.acm.org/proceedings/ir/","http://portal.acm.org/proceedings/ir/archive/"
-"Conference Proceedings","IRAL: Information Retrieval with Asian Languages","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/iral/","http://portal.acm.org/proceedings/iral/archive/"
-"Conference Proceedings","IRE-ACM-AIEE: IRE-ACM-AIEE","","","","1957 (February 1957)","1961 (May 1961)","http://portal.acm.org/proceedings/ire-acm-aiee/","http://portal.acm.org/proceedings/ire-acm-aiee/archive/"
-"Conference Proceedings","IRTAW: Real-Time Ada","","","","1987 (October 1987)","2007 (April 2007)","http://portal.acm.org/proceedings/irtaw/","http://portal.acm.org/proceedings/irtaw/archive/"
-"Conference Proceedings","IS: Guidelines for undergraduate degree programs on Model curriculum and guidelines for undergraduate degree programs in information systems","","","","1997 (December 1997)","1997 (December 1997)","http://portal.acm.org/proceedings/is/","http://portal.acm.org/proceedings/is/archive/"
-"Conference Proceedings","ISA: Indoor Spatial Awareness ","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/isa/","http://portal.acm.org/proceedings/isa/archive/"
-"Conference Proceedings","ISAW: Software Architecture Workshop","","","","1996 (October 1996)","1998 (November 1998)","http://portal.acm.org/proceedings/isaw/","http://portal.acm.org/proceedings/isaw/archive/"
-"Conference Proceedings","ISB: International Symposium on Biocomputing","","","","2010 (February 2010)","2010 (February 2010)","http://portal.acm.org/proceedings/isb/","http://portal.acm.org/proceedings/isb/archive/"
-"Conference Proceedings","ISCA: International Symposium on Computer Architecture","","","","1973 (December 1973)","2013 (June 2013)","http://portal.acm.org/proceedings/isca/","http://portal.acm.org/proceedings/isca/archive/"
-"Conference Proceedings","ISEC: India Software Engineering Conference","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/isec/","http://portal.acm.org/proceedings/isec/archive/"
-"Conference Proceedings","ISESE: International Symposium on Empirical Software Engineering","","","","2002 (October 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/isese/","http://portal.acm.org/proceedings/isese/archive/"
-"Conference Proceedings","ISLPED: International Symposium on Low Power Electronic Design","","","","1995 (April 1995)","2012 (July 2012)","http://portal.acm.org/proceedings/islped/","http://portal.acm.org/proceedings/islped/archive/"
-"Conference Proceedings","ISMAR: Mixed and Augmented Reality","","","","2002 (September 2002)","2009 (October 2009)","http://portal.acm.org/proceedings/ismar/","http://portal.acm.org/proceedings/ismar/archive/"
-"Conference Proceedings","ISMIS: International Symposium on Methodologies for Intelligent Systems","","","","1986 (December 1986)","1986 (December 1986)","http://portal.acm.org/proceedings/ismis/","http://portal.acm.org/proceedings/ismis/archive/"
-"Conference Proceedings","ISMM: Memory Management","","","","1998 (October 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/ismm/","http://portal.acm.org/proceedings/ismm/archive/"
-"Conference Proceedings","ISPA: Parallel and Distributed Processing and Applications","","","","2003 (July 2003)","2004 (December 2004)","http://portal.acm.org/proceedings/ispa/","http://portal.acm.org/proceedings/ispa/archive/"
-"Conference Proceedings","ISPD: Physical Design","","","","1997 (April 1997)","2013 (March 2013)","http://portal.acm.org/proceedings/ispd/","http://portal.acm.org/proceedings/ispd/archive/"
-"Conference Proceedings","ISPW: International Software Process Workshop","","","","1988 (April 1988)","1996 (June 1996)","http://portal.acm.org/proceedings/ispw/","http://portal.acm.org/proceedings/ispw/archive/"
-"Conference Proceedings","ISQED: Quality Electronic Design","","","","2006 (March 2006)","2006 (March 2006)","http://portal.acm.org/proceedings/isqed/","http://portal.acm.org/proceedings/isqed/archive/"
-"Conference Proceedings","ISSAC: International Symposium of Symbolic and Algebraic Computation","","","","1989 (July 1989)","2013 (June 2013)","http://portal.acm.org/proceedings/issac/","http://portal.acm.org/proceedings/issac/archive/"
-"Conference Proceedings","ISSS: International Symposium on System Synthesis","","","","1994 (May 1994)","2002 (October 2002)","http://portal.acm.org/proceedings/isss/","http://portal.acm.org/proceedings/isss/archive/"
-"Conference Proceedings","ISSTA: International Symposium on Software Testing and Analysis","","","","1993 (August 1993)","2013 (July 2013)","http://portal.acm.org/proceedings/issta/","http://portal.acm.org/proceedings/issta/archive/"
-"Conference Proceedings","ISTA: Information Science, Technology and Applications","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/ista/","http://portal.acm.org/proceedings/ista/archive/"
-"Conference Proceedings","ISWSA: Intelligent Semantic Web &mdash; Services and Applications","","","","2010 (June 2010)","2011 (April 2011)","http://portal.acm.org/proceedings/iswsa/","http://portal.acm.org/proceedings/iswsa/archive/"
-"Conference Proceedings","ITS: Interactive Tabletops and Surfaces","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/its/","http://portal.acm.org/proceedings/its/archive/"
-"Conference Proceedings","ITiCSE: Innovation and Technology in Computer Science Education","","","","1996 (June 1996)","2013 (July 2013)","http://portal.acm.org/proceedings/iticse/","http://portal.acm.org/proceedings/iticse/archive/"
-"Conference Proceedings","IUCS: International Universal Communication Symposium","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/iucs/","http://portal.acm.org/proceedings/iucs/archive/"
-"Conference Proceedings","IUI: Intelligent User Interfaces","","","","1993 (February 1993)","2013 (March 2013)","http://portal.acm.org/proceedings/iui/","http://portal.acm.org/proceedings/iui/archive/"
-"Conference Proceedings","IVME: Interpreters, Virtual Machines and Emulators","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/ivme/","http://portal.acm.org/proceedings/ivme/archive/"
-"Conference Proceedings","IW-SOSWE: Service Oriented Software Engineering","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/iw-soswe/","http://portal.acm.org/proceedings/iw-soswe/archive/"
-"Conference Proceedings","IWAAPF: Application and Advances of Problem Frames","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/iwaapf/","http://portal.acm.org/proceedings/iwaapf/archive/"
-"Conference Proceedings","IWACO: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/iwaco/","http://portal.acm.org/proceedings/iwaco/archive/"
-"Conference Proceedings","IWCMC: International Wireless Communications and Mobile Computing Conference","","","","2006 (July 2006)","2010 (June 2010)","http://portal.acm.org/proceedings/iwcmc/","http://portal.acm.org/proceedings/iwcmc/archive/"
-"Conference Proceedings","IWCTS: Computational Transportation Science","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/iwcts/","http://portal.acm.org/proceedings/iwcts/archive/"
-"Conference Proceedings","IWDE: Digital Engineering","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/iwde/","http://portal.acm.org/proceedings/iwde/archive/"
-"Conference Proceedings","IWGS: International Workshop on GeoStreaming","","","","2010 (November 2010)","2012 (November 2012)","http://portal.acm.org/proceedings/iwgs/","http://portal.acm.org/proceedings/iwgs/archive/"
-"Conference Proceedings","IWIC: Intercultural Collaboration","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/iwic/","http://portal.acm.org/proceedings/iwic/archive/"
-"Conference Proceedings","IWICSS: Incorporating COTS Software into Software Systems","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/iwicss/","http://portal.acm.org/proceedings/iwicss/archive/"
-"Conference Proceedings","IWMCP: Model Comparison in Practice","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/iwmcp/","http://portal.acm.org/proceedings/iwmcp/archive/"
-"Conference Proceedings","IWMSE: Multicore Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/iwmse/","http://portal.acm.org/proceedings/iwmse/archive/"
-"Conference Proceedings","IWOCE: Open Component EcoSystems","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/iwoce/","http://portal.acm.org/proceedings/iwoce/archive/"
-"Conference Proceedings","IWPSE-EVOL: Software Evolution and Principles of Software Evolution ","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/iwpse-evol/","http://portal.acm.org/proceedings/iwpse-evol/archive/"
-"Conference Proceedings","IWPSE: Principles of Software Evolution","","","","2001 (September 2001)","2013 (August 2013)","http://portal.acm.org/proceedings/iwpse/","http://portal.acm.org/proceedings/iwpse/archive/"
-"Conference Proceedings","IWQoS: Quality of Service","","","","2003 (June 2003)","2012 (June 2012)","http://portal.acm.org/proceedings/iwqos/","http://portal.acm.org/proceedings/iwqos/archive/"
-"Conference Proceedings","IWRIDL: Research Issues in Digital Libraries","","","","2007 (December 2006)","2007 (December 2006)","http://portal.acm.org/proceedings/iwridl/","http://portal.acm.org/proceedings/iwridl/archive/"
-"Conference Proceedings","IWSC: Software Clones","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/iwsc/","http://portal.acm.org/proceedings/iwsc/archive/"
-"Conference Proceedings","IWSESS: Software Engineering for Secure Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/iwsess/","http://portal.acm.org/proceedings/iwsess/archive/"
-"Conference Proceedings","IWSSD: International Workshop on Software Specification and Design","","","","1989 (April 1989)","2000 (November 2000)","http://portal.acm.org/proceedings/iwssd/","http://portal.acm.org/proceedings/iwssd/archive/"
-"Conference Proceedings","IWST: Smalltalk Technologies","","","","2009 (August 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/iwst/","http://portal.acm.org/proceedings/iwst/archive/"
-"Conference Proceedings","IWSTI: Satellite/Terrestrial Interworking","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/iwsti/","http://portal.acm.org/proceedings/iwsti/archive/"
-"Conference Proceedings","IWVS: Video Surveillance","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/iwvs/","http://portal.acm.org/proceedings/iwvs/archive/"
-"Conference Proceedings","InfoScale: Scalable Information Systems","","","","2006 (May 2006)","2007 (June 2007)","http://portal.acm.org/proceedings/infoscale/","http://portal.acm.org/proceedings/infoscale/archive/"
-"Conference Proceedings","InfoSecCD: Information Security Curriculum Development","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/infoseccd/","http://portal.acm.org/proceedings/infoseccd/archive/"
-"Conference Proceedings","InfoSecu: Information Security","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/infosecu/","http://portal.acm.org/proceedings/infosecu/archive/"
-"Conference Proceedings","Insider Threats: Insider Threats","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/insiderthreats/","http://portal.acm.org/proceedings/insiderthreats/archive/"
-"Conference Proceedings","InterSense: Integrated Internet Ad Hoc and Sensor Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/intersense/","http://portal.acm.org/proceedings/intersense/archive/"
-"Conference Proceedings","Internetware: Internetware","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/internetware/","http://portal.acm.org/proceedings/internetware/archive/"
-"Conference Proceedings","Interperf: Interdisciplinary Systems Approach in Performance Evaluation and Design of Computer & Communications Systems","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/interperf/","http://portal.acm.org/proceedings/interperf/archive/"
-"Conference Proceedings","JAVA: Java Grande","","","","1999 (June 1999)","2000 (June 2000)","http://portal.acm.org/proceedings/java/","http://portal.acm.org/proceedings/java/archive/"
-"Conference Proceedings","JCDL: Joint Conference on Digital Libraries","","","","2001 (January 2001)","2013 (July 2013)","http://portal.acm.org/proceedings/jcdl/","http://portal.acm.org/proceedings/jcdl/archive/"
-"Conference Proceedings","JGI: ACM-ISCOPE conference on Java Grande","","","","2001 (June 2001)","2002 (November 2002)","http://portal.acm.org/proceedings/jgi/","http://portal.acm.org/proceedings/jgi/archive/"
-"Conference Proceedings","JTRES: Java Technologies for Real-Time and Embedded Systems","","","","2006 (October 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/jtres/","http://portal.acm.org/proceedings/jtres/archive/"
-"Conference Proceedings","K-CAP: Knowledge Capture","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/k-cap/","http://portal.acm.org/proceedings/k-cap/archive/"
-"Conference Proceedings","KDD: Knowledge Discovery and Data Mining","","","","1999 (August 1999)","2013 (August 2013)","http://portal.acm.org/proceedings/kdd/","http://portal.acm.org/proceedings/kdd/archive/"
-"Conference Proceedings","KEYS: Keyword Search on Structured Data","","","","2009 (June 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/keys/","http://portal.acm.org/proceedings/keys/archive/"
-"Conference Proceedings","Koli Calling: Koli Calling International Conference on Computing Education Research ","","","","2010 (October 2010)","2013 (November 2013)","http://portal.acm.org/proceedings/kolicalling/","http://portal.acm.org/proceedings/kolicalling/archive/"
-"Conference Proceedings","Koli: Computing Education Research","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/koli/","http://portal.acm.org/proceedings/koli/archive/"
-"Conference Proceedings","LADIS: Large-Scale Distributed Systems and Middleware","","","","2008 (September 2008)","2010 (July 2010)","http://portal.acm.org/proceedings/ladis/","http://portal.acm.org/proceedings/ladis/archive/"
-"Conference Proceedings","LANC: Latin American Networking Conference","","","","2003 (October 2003)","2012 (October 2012)","http://portal.acm.org/proceedings/lanc/","http://portal.acm.org/proceedings/lanc/archive/"
-"Conference Proceedings","LATE: Linking Aspect Technology and Evolution","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/late/","http://portal.acm.org/proceedings/late/archive/"
-"Conference Proceedings","LBSN: Location Based Social Networks","","","","2009 (November 2009)","2012 (November 2012)","http://portal.acm.org/proceedings/lbsn/","http://portal.acm.org/proceedings/lbsn/archive/"
-"Conference Proceedings","LCR: Languages, Compilers, and Run-time Support for Scalable Systems","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/lcr/","http://portal.acm.org/proceedings/lcr/archive/"
-"Conference Proceedings","LCSD: Library-Centric Software Design","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/lcsd/","http://portal.acm.org/proceedings/lcsd/archive/"
-"Conference Proceedings","LCTES: Languages, Compilers, and Tools for Embedded Systems","","","","1995 (November 1995)","2013 (June 2013)","http://portal.acm.org/proceedings/lctes/","http://portal.acm.org/proceedings/lctes/archive/"
-"Conference Proceedings","LDTA: Language Descriptions, Tools and Applications","","","","2010 (March 2010)","2012 (March 2012)","http://portal.acm.org/proceedings/ldta/","http://portal.acm.org/proceedings/ldta/archive/"
-"Conference Proceedings","LFMTP: Logical Frameworks and Meta-Languages","","","","2009 (August 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/lfmtp/","http://portal.acm.org/proceedings/lfmtp/archive/"
-"Conference Proceedings","LFP: LISP and Functional Programming","","","","1980 (August 1980)","1994 (July 1994)","http://portal.acm.org/proceedings/lfp/","http://portal.acm.org/proceedings/lfp/archive/"
-"Conference Proceedings","LISP: Celebrating the 50th Anniversary of Lisp","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/lisp/","http://portal.acm.org/proceedings/lisp/archive/"
-"Conference Proceedings","LMSA: Leadership and Management in Software Architecture","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/lmsa/","http://portal.acm.org/proceedings/lmsa/archive/"
-"Conference Proceedings","LOCWEB: Location and the Web","","","","2008 (April 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/locweb/","http://portal.acm.org/proceedings/locweb/archive/"
-"Conference Proceedings","LS-MMRM: Large-Scale Multimedia Retrieval and Mining","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/ls-mmrm/","http://portal.acm.org/proceedings/ls-mmrm/archive/"
-"Conference Proceedings","LSAD: Large-Scale Attack Defense","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/lsad/","http://portal.acm.org/proceedings/lsad/archive/"
-"Conference Proceedings","LSAP: Large-scale System and Application Performance","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/lsap/","http://portal.acm.org/proceedings/lsap/archive/"
-"Conference Proceedings","LSDS-IR: Large-Scale Distributed Systems for Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/lsds-ir/","http://portal.acm.org/proceedings/lsds-ir/archive/"
-"Conference Proceedings","LUV: LISP Users and Vendors","","","","1992 (August 1992)","1995 (August 1994)","http://portal.acm.org/proceedings/luv/","http://portal.acm.org/proceedings/luv/archive/"
-"Conference Proceedings","LinkKDD: Link Discovery","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/linkkdd/","http://portal.acm.org/proceedings/linkkdd/archive/"
-"Conference Proceedings","M-MPAC: Middleware for Pervasive Mobile and Embedded Computing","","","","2009 (November 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/m-mpac/","http://portal.acm.org/proceedings/m-mpac/archive/"
-"Conference Proceedings","MACS: Modeling and Analysis of Concerns in Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/macs/","http://portal.acm.org/proceedings/macs/archive/"
-"Conference Proceedings","MAI: Middleware Application Interaction","","","","2007 (March 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/mai/","http://portal.acm.org/proceedings/mai/archive/"
-"Conference Proceedings","MASPEGHI: MechAnisms for SPEcialization, Generalization and inHerItance","","","","2010 (June 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/maspeghi/","http://portal.acm.org/proceedings/maspeghi/archive/"
-"Conference Proceedings","MAW: Memory Access on Future Processors","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/maw/","http://portal.acm.org/proceedings/maw/archive/"
-"Conference Proceedings","MB: Methods and Techniques in Behavioral Research","","","","2010 (August 2010)","2010 (August 2010)","http://portal.acm.org/proceedings/mb/","http://portal.acm.org/proceedings/mb/archive/"
-"Conference Proceedings","MC: Middleware Companion","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mc/","http://portal.acm.org/proceedings/mc/archive/"
-"Conference Proceedings","MCMC: Mobile Cloud Media Computing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mcmc/","http://portal.acm.org/proceedings/mcmc/archive/"
-"Conference Proceedings","MCPS: Contents Proctection and Security","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/mcps/","http://portal.acm.org/proceedings/mcps/archive/"
-"Conference Proceedings","MCS: Mobile Cloud Computing and Services","","","","2010 (June 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/mcs/","http://portal.acm.org/proceedings/mcs/archive/"
-"Conference Proceedings","MD: Massive Datasets","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/md/","http://portal.acm.org/proceedings/md/archive/"
-"Conference Proceedings","MDAC: Massive Data Analytics on the Cloud","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/mdac/","http://portal.acm.org/proceedings/mdac/archive/"
-"Conference Proceedings","MDI: Model-Drive Interoperability","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mdi/","http://portal.acm.org/proceedings/mdi/archive/"
-"Conference Proceedings","MDM: Mobile Data Management","","","","2005 (May 2005)","2010 (May 2010)","http://portal.acm.org/proceedings/mdm/","http://portal.acm.org/proceedings/mdm/archive/"
-"Conference Proceedings","MDMKDD: Multimedia Data Mining","","","","2010 (July 2010)","2012 (August 2012)","http://portal.acm.org/proceedings/mdmkdd/","http://portal.acm.org/proceedings/mdmkdd/archive/"
-"Conference Proceedings","MDS: Middleware Doctoral Symposium","","","","2006 (November 2006)","2013 (December 2013)","http://portal.acm.org/proceedings/mds/","http://portal.acm.org/proceedings/mds/archive/"
-"Conference Proceedings","MEDEA: Memory Performance: Dealing with Applications, Systems and Architecture","","","","2003 (September 2003)","2009 (September 2009)","http://portal.acm.org/proceedings/medea/","http://portal.acm.org/proceedings/medea/archive/"
-"Conference Proceedings","MEDES: Management of Emergent Digital EcoSystems","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/medes/","http://portal.acm.org/proceedings/medes/archive/"
-"Conference Proceedings","MELT: Mobile Entity Localization and Tracking in GPS-Less Environment","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/melt/","http://portal.acm.org/proceedings/melt/archive/"
-"Conference Proceedings","MEMOCODE: Formal Methods and Models for Co-Design","","","","2005 (July 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/memocode/","http://portal.acm.org/proceedings/memocode/archive/"
-"Conference Proceedings","MERLIN: Mechanized Reasoning about Languages with Variable Binding","","","","2003 (August 2003)","2005 (September 2005)","http://portal.acm.org/proceedings/merlin/","http://portal.acm.org/proceedings/merlin/archive/"
-"Conference Proceedings","MG: Mardi Gras Conference","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/mg/","http://portal.acm.org/proceedings/mg/archive/"
-"Conference Proceedings","MGC: Middleware for Grids, Clouds and e-Science","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mgc/","http://portal.acm.org/proceedings/mgc/archive/"
-"Conference Proceedings","MHC: Multimedia for Human Communication","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mhc/","http://portal.acm.org/proceedings/mhc/archive/"
-"Conference Proceedings","MICNET: Mobile Internet Through Cellular Networks","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/micnet/","http://portal.acm.org/proceedings/micnet/archive/"
-"Conference Proceedings","MICRO: Microarchitecture","","","","1972 (September 1972)","2013 (December 2013)","http://portal.acm.org/proceedings/micro/","http://portal.acm.org/proceedings/micro/archive/"
-"Conference Proceedings","MIIT: Model Inference In Testing","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/miit/","http://portal.acm.org/proceedings/miit/archive/"
-"Conference Proceedings","MIR: Multimedia Information Retrieval","","","","2003 (November 2003)","2010 (March 2010)","http://portal.acm.org/proceedings/mir/","http://portal.acm.org/proceedings/mir/archive/"
-"Conference Proceedings","MIS: Metainformatics","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/mis/","http://portal.acm.org/proceedings/mis/archive/"
-"Conference Proceedings","MISE: Modeling in Software Engineering","","","","2007 (May 2007)","2009 (May 2009)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","ML: ML","","","","2006 (September 2006)","2009 (August 2009)","http://portal.acm.org/proceedings/ml/","http://portal.acm.org/proceedings/ml/archive/"
-"Conference Proceedings","MLG: Mining and Learning with Graphs","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/mlg/","http://portal.acm.org/proceedings/mlg/archive/"
-"Conference Proceedings","MLPA: Modules and Libraries for Proof Assistants","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/mlpa/","http://portal.acm.org/proceedings/mlpa/archive/"
-"Conference Proceedings","MMDB: Multimedia Databases","","","","2003 (November 2003)","2004 (November 2004)","http://portal.acm.org/proceedings/mmdb/","http://portal.acm.org/proceedings/mmdb/archive/"
-"Conference Proceedings","MML: Machine Learning and Music","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mml/","http://portal.acm.org/proceedings/mml/archive/"
-"Conference Proceedings","MMSEC: Multimedia and Security","","","","2001 (October 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/mmsec/","http://portal.acm.org/proceedings/mmsec/archive/"
-"Conference Proceedings","MMSys: Multimedia Systems","","","","2010 (February 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/mmsys/","http://portal.acm.org/proceedings/mmsys/archive/"
-"Conference Proceedings","MNCNA: Middleware for Next-Generation Converged Networks and Applications","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/mncna/","http://portal.acm.org/proceedings/mncna/archive/"
-"Conference Proceedings","MOBILWARE: Mobile Wireless Middleware, Operating Systems, and Applications","","","","2007 (February 2008)","2007 (February 2008)","http://portal.acm.org/proceedings/mobilware/","http://portal.acm.org/proceedings/mobilware/archive/"
-"Conference Proceedings","MOCR: Multilingual OCR","","","","2009 (July 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/mocr/","http://portal.acm.org/proceedings/mocr/archive/"
-"Conference Proceedings","MODDM: Model Driven Development for Middleware","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/moddm/","http://portal.acm.org/proceedings/moddm/archive/"
-"Conference Proceedings","MOMPES: Model-Based Methodologies for Pervasive and Embedded Software","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mompes/","http://portal.acm.org/proceedings/mompes/archive/"
-"Conference Proceedings","MPAC: Middleware for Pervasive and Ad-Hoc Computing","","","","2004 (October 2004)","2008 (December 2008)","http://portal.acm.org/proceedings/mpac/","http://portal.acm.org/proceedings/mpac/archive/"
-"Conference Proceedings","MPEC: Models and Processes for the Evaluation of Off-the-Shelf Components","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/mpec/","http://portal.acm.org/proceedings/mpec/archive/"
-"Conference Proceedings","MPVA: Multimodal Pervasive Video Analysis","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/mpva/","http://portal.acm.org/proceedings/mpva/archive/"
-"Conference Proceedings","MRDM: Multi-Relational Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/mrdm/","http://portal.acm.org/proceedings/mrdm/archive/"
-"Conference Proceedings","MS: Multimedia Semantics","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/ms/","http://portal.acm.org/proceedings/ms/archive/"
-"Conference Proceedings","MSC: Multimedia Service Composition","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/msc/","http://portal.acm.org/proceedings/msc/archive/"
-"Conference Proceedings","MSFP: Mathematically Structured Functional Programming","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/msfp/","http://portal.acm.org/proceedings/msfp/archive/"
-"Conference Proceedings","MSIADU: Media Studies and Implementations that Help Improving Access to Disabled Users","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/msiadu/","http://portal.acm.org/proceedings/msiadu/archive/"
-"Conference Proceedings","MSM: Modeling Social Media","","","","2010 (June 2010)","2013 (May 2013)","http://portal.acm.org/proceedings/msm/","http://portal.acm.org/proceedings/msm/archive/"
-"Conference Proceedings","MSPC: Memory System Performance and Correctness","","","","2002 (June 2002)","2012 (June 2012)","http://portal.acm.org/proceedings/mspc/","http://portal.acm.org/proceedings/mspc/archive/"
-"Conference Proceedings","MSR: Mining Software Repositories","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/msr/","http://portal.acm.org/proceedings/msr/archive/"
-"Conference Proceedings","MSWiM: Modeling, Analysis and Simulation of Wireless and Mobile Systems","","","","1999 (August 1999)","2013 (November 2013)","http://portal.acm.org/proceedings/mswim/","http://portal.acm.org/proceedings/mswim/archive/"
-"Conference Proceedings","MTAGS: Many-Task Computing on Grids and Supercomputers","","","","2009 (November 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mtags/","http://portal.acm.org/proceedings/mtags/archive/"
-"Conference Proceedings","MTDL: Multimedia Technologies for Distance Learning","","","","2009 (October 2009)","2011 (December 2011)","http://portal.acm.org/proceedings/mtdl/","http://portal.acm.org/proceedings/mtdl/archive/"
-"Conference Proceedings","MUCS: Managing Ubiquitous Communications and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/mucs/","http://portal.acm.org/proceedings/mucs/archive/"
-"Conference Proceedings","MULTIMEDIA: Multimedia","","","","1993 (September 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/multimedia/","http://portal.acm.org/proceedings/multimedia/archive/"
-"Conference Proceedings","MUM: Mobile and Ubiquitous Multimedia","","","","2004 (October 2004)","2012 (December 2012)","http://portal.acm.org/proceedings/mum/","http://portal.acm.org/proceedings/mum/archive/"
-"Conference Proceedings","MV: Mobile Video","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/mv/","http://portal.acm.org/proceedings/mv/archive/"
-"Conference Proceedings","MW: Multimedia Middleware","","","","2001 (October 2001)","2012 (September 2012)","http://portal.acm.org/proceedings/mw/","http://portal.acm.org/proceedings/mw/archive/"
-"Conference Proceedings","MWSOC: Middleware for Service Oriented Computing","","","","2006 (November 2006)","2011 (December 2011)","http://portal.acm.org/proceedings/mwsoc/","http://portal.acm.org/proceedings/mwsoc/archive/"
-"Conference Proceedings","MetriSec: Security Measurements and Metrics","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/metrisec/","http://portal.acm.org/proceedings/metrisec/archive/"
-"Conference Proceedings","MiFor: Multimedia in Forensics","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/mifor/","http://portal.acm.org/proceedings/mifor/archive/"
-"Conference Proceedings","MiNEMA: Middleware for Network Eccentric and Mobile Applications","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/minema/","http://portal.acm.org/proceedings/minema/archive/"
-"Conference Proceedings","MiSE: Models in Software Engineering","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mise/","http://portal.acm.org/proceedings/mise/archive/"
-"Conference Proceedings","MidSec: Middleware Security","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/midsec/","http://portal.acm.org/proceedings/midsec/archive/"
-"Conference Proceedings","MidSens: Middleware Tools, Services and Run-Time Support for Sensor Networks","","","","2006 (November 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/midsens/","http://portal.acm.org/proceedings/midsens/archive/"
-"Conference Proceedings","Middleware Industrial Track: Middleware Industrial Track","","","","2010 (November 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/middlewareindustrialtrack/","http://portal.acm.org/proceedings/middlewareindustrialtrack/archive/"
-"Conference Proceedings","Middleware: Middleware","","","","2000 (April 2000)","2012 (December 2012)","http://portal.acm.org/proceedings/middleware/","http://portal.acm.org/proceedings/middleware/archive/"
-"Conference Proceedings","MindTrek: Entertainment and Media in the Ubiquitous Era","","","","2008 (October 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/mindtrek/","http://portal.acm.org/proceedings/mindtrek/archive/"
-"Conference Proceedings","MineNet: Mining Network Data","","","","2005 (August 2005)","2007 (June 2007)","http://portal.acm.org/proceedings/minenet/","http://portal.acm.org/proceedings/minenet/archive/"
-"Conference Proceedings","MoDELS: Models in software engineering","","","","2005 (October 2005)","2012 (September 2012)","http://portal.acm.org/proceedings/models/","http://portal.acm.org/proceedings/models/archive/"
-"Conference Proceedings","MoDeVVa: Model-Driven Engineering, Verification and Validation","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/modevva/","http://portal.acm.org/proceedings/modevva/archive/"
-"Conference Proceedings","MoMM: Mobile Computing and Multimedia","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/momm/","http://portal.acm.org/proceedings/momm/archive/"
-"Conference Proceedings","MoMeTools: Models, Methods and Tools for Reproducible Network Research","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/mometools/","http://portal.acm.org/proceedings/mometools/archive/"
-"Conference Proceedings","MoSE+DQS: Model Driven Service Engineering and Data Quality and Security","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/mose+dqs/","http://portal.acm.org/proceedings/mose+dqs/archive/"
-"Conference Proceedings","MoViD: Mobile Video Delivery","","","","2010 (October 2010)","2013 (February 2013)","http://portal.acm.org/proceedings/movid/","http://portal.acm.org/proceedings/movid/archive/"
-"Conference Proceedings","MobConQoE: Mobile Content Quality of Experience","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/mobconqoe/","http://portal.acm.org/proceedings/mobconqoe/archive/"
-"Conference Proceedings","MobMid: Mobile Middleware","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/mobmid/","http://portal.acm.org/proceedings/mobmid/archive/"
-"Conference Proceedings","MobiArch: Mobility in the Evolving Internet Architecture","","","","2006 (December 2006)","2013 (October 2013)","http://portal.acm.org/proceedings/mobiarch/","http://portal.acm.org/proceedings/mobiarch/archive/"
-"Conference Proceedings","MobiCom: Mobile Computing","","","","1995 (December 1995)","2013 (September 2013)","http://portal.acm.org/proceedings/mobicom/","http://portal.acm.org/proceedings/mobicom/archive/"
-"Conference Proceedings","MobiDE: Data Engineering for Wireless and Mobile Access","","","","1999 (August 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/mobide/","http://portal.acm.org/proceedings/mobide/archive/"
-"Conference Proceedings","MobiEval: System Evaluation for Mobile Platforms","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/mobieval/","http://portal.acm.org/proceedings/mobieval/archive/"
-"Conference Proceedings","MobiHeld: Networking, Systems, and Applications for Mobile Handhelds","","","","2009 (August 2009)","2011 (October 2011)","http://portal.acm.org/proceedings/mobiheld/","http://portal.acm.org/proceedings/mobiheld/archive/"
-"Conference Proceedings","MobiHoc: Mobile Ad Hoc Networking and Computing","","","","2000 (November 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/mobihoc/","http://portal.acm.org/proceedings/mobihoc/archive/"
-"Conference Proceedings","MobiMedia: Mobile Multimedia Communications","","","","2006 (September 2006)","2007 (August 2007)","http://portal.acm.org/proceedings/mobimedia/","http://portal.acm.org/proceedings/mobimedia/archive/"
-"Conference Proceedings","MobiOpp: Mobile Opportunistic Networking","","","","2007 (June 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/mobiopp/","http://portal.acm.org/proceedings/mobiopp/archive/"
-"Conference Proceedings","MobiShare: Decentralized Resource Sharing in Mobile Computing and Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/mobishare/","http://portal.acm.org/proceedings/mobishare/archive/"
-"Conference Proceedings","MobiSys: Mobile Systems, Applications, and Services","","","","2003 (May 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/mobisys/","http://portal.acm.org/proceedings/mobisys/archive/"
-"Conference Proceedings","MobiVirt: Virtualization in Mobile Computing","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/mobivirt/","http://portal.acm.org/proceedings/mobivirt/archive/"
-"Conference Proceedings","MobiWac: Mobility Management and Wireless Access","","","","2002 (October 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/mobiwac/","http://portal.acm.org/proceedings/mobiwac/archive/"
-"Conference Proceedings","MobileHCI: Human Computer Interaction with Mobile Devices and Services","","","","2005 (September 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/mobilehci/","http://portal.acm.org/proceedings/mobilehci/archive/"
-"Conference Proceedings","Mobility: Mobile Technology, Applications, and Systems","","","","2006 (October 2006)","2009 (September 2009)","http://portal.acm.org/proceedings/mobility/","http://portal.acm.org/proceedings/mobility/archive/"
-"Conference Proceedings","MobilityModels: Mobility Models","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/mobilitymodels/","http://portal.acm.org/proceedings/mobilitymodels/archive/"
-"Conference Proceedings","NAOMI: Next Generation Aspect Oriented Middleware","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/naomi/","http://portal.acm.org/proceedings/naomi/archive/"
-"Conference Proceedings","NDA: Network Data Anonymization","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/nda/","http://portal.acm.org/proceedings/nda/archive/"
-"Conference Proceedings","NETFLIX: Large-Scale Recommender Systems and the Netflix Prize Competition","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/netflix/","http://portal.acm.org/proceedings/netflix/archive/"
-"Conference Proceedings","NICELI: Network-I/O Convergence","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/niceli/","http://portal.acm.org/proceedings/niceli/archive/"
-"Conference Proceedings","NIME: New Interfaces for Musical Expression","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/nime/","http://portal.acm.org/proceedings/nime/archive/"
-"Conference Proceedings","NOSSDAV: Network and Operating Systems Support for Digital Audio and Video","","","","2001 (January 2001)","2013 (February 2013)","http://portal.acm.org/proceedings/nossdav/","http://portal.acm.org/proceedings/nossdav/archive/"
-"Conference Proceedings","NOTERE: New Technologies in Distributed Systems","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/notere/","http://portal.acm.org/proceedings/notere/archive/"
-"Conference Proceedings","NPAR: Non-Photorealistic Animation and Rendering","","","","2000 (June 2000)","2013 (July 2013)","http://portal.acm.org/proceedings/npar/","http://portal.acm.org/proceedings/npar/archive/"
-"Conference Proceedings","NPIV: New Paradigms in Information Visualization and Manipulation","","","","1997 (November 1997)","1998 (November 1998)","http://portal.acm.org/proceedings/npiv/","http://portal.acm.org/proceedings/npiv/archive/"
-"Conference Proceedings","NPIVM: NPIVM","","","","1999 (November 1999)","1999 (November 1999)","http://portal.acm.org/proceedings/npivm/","http://portal.acm.org/proceedings/npivm/archive/"
-"Conference Proceedings","NRBC: Next-Generation Residential Broadband Challenges","","","","2004 (October 2004)","2004 (October 2004)","http://portal.acm.org/proceedings/nrbc/","http://portal.acm.org/proceedings/nrbc/archive/"
-"Conference Proceedings","NSDI: Networked Systems Design & Implementation ","","","","2005 (May 2005)","2011 (March 2011)","http://portal.acm.org/proceedings/nsdi/","http://portal.acm.org/proceedings/nsdi/archive/"
-"Conference Proceedings","NSDR: Networked Systems for Developing Regions","","","","2007 (August 2007)","2011 (June 2011)","http://portal.acm.org/proceedings/nsdr/","http://portal.acm.org/proceedings/nsdr/archive/"
-"Conference Proceedings","NSEC: National Software Engineering Conference","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/nsec/","http://portal.acm.org/proceedings/nsec/archive/"
-"Conference Proceedings","NSPW: New Security Paradigms and Workshop","","","","1993 (August 1993)","2013 (December 2013)","http://portal.acm.org/proceedings/nspw/","http://portal.acm.org/proceedings/nspw/archive/"
-"Conference Proceedings","Nanoarch: Nanoscale Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/nanoarch/","http://portal.acm.org/proceedings/nanoarch/archive/"
-"Conference Proceedings","NetEcon: Economics of Networked Systems","","","","2008 (August 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/netecon/","http://portal.acm.org/proceedings/netecon/archive/"
-"Conference Proceedings","NetGames: Network and Systems Support for Games","","","","2002 (April 2002)","2012 (November 2012)","http://portal.acm.org/proceedings/netgames/","http://portal.acm.org/proceedings/netgames/archive/"
-"Conference Proceedings","NetT: Network Troubleshooting","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/nett/","http://portal.acm.org/proceedings/nett/archive/"
-"Conference Proceedings","NoCArc: Network on Chip Architectures","","","","2009 (December 2009)","2013 (December 2013)","http://portal.acm.org/proceedings/nocarc/","http://portal.acm.org/proceedings/nocarc/archive/"
-"Conference Proceedings","NordiCHI: Nordic Conference on Human-Computer Interaction","","","","2002 (October 2002)","2012 (October 2012)","http://portal.acm.org/proceedings/nordichi/","http://portal.acm.org/proceedings/nordichi/archive/"
-"Conference Proceedings","OBI: Ontology-supported Business Intelligence","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/obi/","http://portal.acm.org/proceedings/obi/archive/"
-"Conference Proceedings","OM: Optimization of Middleware and Distributed Systems","","","","2001 (August 2001)","2001 (August 2001)","http://portal.acm.org/proceedings/om/","http://portal.acm.org/proceedings/om/archive/"
-"Conference Proceedings","ONISW: Ontologies and Information Systems for the Semantic Web","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/onisw/","http://portal.acm.org/proceedings/onisw/archive/"
-"Conference Proceedings","OODS: Object-Oriented Database Systems","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/oods/","http://portal.acm.org/proceedings/oods/archive/"
-"Conference Proceedings","OOPWORK: OOPWORK","","","","1986 (June 1986)","1986 (June 1986)","http://portal.acm.org/proceedings/oopwork/","http://portal.acm.org/proceedings/oopwork/archive/"
-"Conference Proceedings","OSDI: Operating Systems Design and Implementation","","","","1994 (November 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/osdi/","http://portal.acm.org/proceedings/osdi/archive/"
-"Conference Proceedings","OSDM: Open Source Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/osdm/","http://portal.acm.org/proceedings/osdm/archive/"
-"Conference Proceedings","OZCHI: Australian Computer-Human Interaction Special Interest Group: Design","","","","2006 (November 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/ozchi/","http://portal.acm.org/proceedings/ozchi/archive/"
-"Conference Proceedings","P2PECON: Economics of Peer-to-Peer Systems","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/p2pecon/","http://portal.acm.org/proceedings/p2pecon/archive/"
-"Conference Proceedings","P2PIR: PPIR","","","","2005 (November 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/p2pir/","http://portal.acm.org/proceedings/p2pir/archive/"
-"Conference Proceedings","PACT: Parallel Architectures and Compilation Techniques","","","","1993 (January 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/pact/","http://portal.acm.org/proceedings/pact/archive/"
-"Conference Proceedings","PADD: Parallel and Distributed Debugging","","","","1988 (November 1988)","1993 (December 1993)","http://portal.acm.org/proceedings/padd/","http://portal.acm.org/proceedings/padd/archive/"
-"Conference Proceedings","PADS: Principles of Advanced and Distributed Simulation","","","","1993 (July 1993)","2013 (May 2013)","http://portal.acm.org/proceedings/pads/","http://portal.acm.org/proceedings/pads/archive/"
-"Conference Proceedings","PADTAD: Parallel and Distributed Systems: Testing, Analysis, and Debugging","","","","2006 (July 2006)","2012 (July 2012)","http://portal.acm.org/proceedings/padtad/","http://portal.acm.org/proceedings/padtad/archive/"
-"Conference Proceedings","PAIS: Privacy and Anonymity in Information Society","","","","2008 (March 2008)","2011 (March 2011)","http://portal.acm.org/proceedings/pais/","http://portal.acm.org/proceedings/pais/archive/"
-"Conference Proceedings","PASCO: Parallel Symbolic Computation","","","","1997 (July 1997)","2010 (July 2010)","http://portal.acm.org/proceedings/pasco/","http://portal.acm.org/proceedings/pasco/archive/"
-"Conference Proceedings","PASTE: Program Analysis for Software Tools and Engineering","","","","1998 (July 1998)","2013 (June 2013)","http://portal.acm.org/proceedings/paste/","http://portal.acm.org/proceedings/paste/archive/"
-"Conference Proceedings","PAVLAD: Privacy and Anonymity for Very Large Databases","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/pavlad/","http://portal.acm.org/proceedings/pavlad/archive/"
-"Conference Proceedings","PCAR: Practical Cognitive Agents and Robots","","","","2006 (November 2006)","2010 (May 2010)","http://portal.acm.org/proceedings/pcar/","http://portal.acm.org/proceedings/pcar/archive/"
-"Conference Proceedings","PCGames: Procedural Content Generation in Games","","","","2010 (June 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/pcgames/","http://portal.acm.org/proceedings/pcgames/archive/"
-"Conference Proceedings","PCK: Principles of Computing & Knowledge","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/pck/","http://portal.acm.org/proceedings/pck/archive/"
-"Conference Proceedings","PCS: Personal Computer Security","","","","1986 (September 1986)","1986 (September 1986)","http://portal.acm.org/proceedings/pcs/","http://portal.acm.org/proceedings/pcs/archive/"
-"Conference Proceedings","PDC: Participatory Design","","","","2004 (July 2004)","2012 (August 2012)","http://portal.acm.org/proceedings/pdc/","http://portal.acm.org/proceedings/pdc/archive/"
-"Conference Proceedings","PDSW: Petascale Data Storage","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pdsw/","http://portal.acm.org/proceedings/pdsw/archive/"
-"Conference Proceedings","PE-WASUN: Performance Evaluation of Wireless Ad hoc Sensor, and Ubiquitous Networks","","","","2004 (October 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/pe-wasun/","http://portal.acm.org/proceedings/pe-wasun/archive/"
-"Conference Proceedings","PEICS: Pattern-Driven Engineering of Interactive Computing Systems","","","","2010 (July 2010)","2011 (June 2011)","http://portal.acm.org/proceedings/peics/","http://portal.acm.org/proceedings/peics/archive/"
-"Conference Proceedings","PEPM: Partial Evaluation and Program Manipulation","","","","1991 (May 1991)","2013 (January 2013)","http://portal.acm.org/proceedings/pepm/","http://portal.acm.org/proceedings/pepm/archive/"
-"Conference Proceedings","PERFORMANCE: Computer Performance Modelling, Measurement and Evaluation","","","","1980 (May 1980)","1980 (May 1980)","http://portal.acm.org/proceedings/performance/","http://portal.acm.org/proceedings/performance/archive/"
-"Conference Proceedings","PESOS: Principles of Engineering Service-Oriented Systems","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/pesos/","http://portal.acm.org/proceedings/pesos/archive/"
-"Conference Proceedings","PETRA: Pervasive Technologies Related to Assistive Environments","","","","2008 (July 2008)","2013 (May 2013)","http://portal.acm.org/proceedings/petra/","http://portal.acm.org/proceedings/petra/archive/"
-"Conference Proceedings","PGAS: Partitioned Global Address Space Programing Models","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/pgas/","http://portal.acm.org/proceedings/pgas/archive/"
-"Conference Proceedings","PIKM: Ph.D. Students in Information and Knowledge Management","","","","2007 (November 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/pikm/","http://portal.acm.org/proceedings/pikm/archive/"
-"Conference Proceedings","PINS: Practice and Theory of Incentives in Networked Systems","","","","2004 (September 2004)","2004 (September 2004)","http://portal.acm.org/proceedings/pins/","http://portal.acm.org/proceedings/pins/archive/"
-"Conference Proceedings","PLAS: Programming Languages and Analysis for Security","","","","2006 (June 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/plas/","http://portal.acm.org/proceedings/plas/archive/"
-"Conference Proceedings","PLATE: Linking Aspect Technology and Evolution","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/plate/","http://portal.acm.org/proceedings/plate/archive/"
-"Conference Proceedings","PLDI: Programming Language Design and Implementation","","","","1988 (June 1988)","2013 (June 2013)","http://portal.acm.org/proceedings/pldi/","http://portal.acm.org/proceedings/pldi/archive/"
-"Conference Proceedings","PLEASE: Product Line Approaches in Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/please/","http://portal.acm.org/proceedings/please/archive/"
-"Conference Proceedings","PLOS: Programming Languages and Operating Systems","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/plos/","http://portal.acm.org/proceedings/plos/archive/"
-"Conference Proceedings","PLPV: Programming Languages Meets Program Verification","","","","2007 (October 2007)","2013 (January 2013)","http://portal.acm.org/proceedings/plpv/","http://portal.acm.org/proceedings/plpv/archive/"
-"Conference Proceedings","PLoP: Pattern Languages of Programs","","","","2006 (October 2006)","2010 (August 2009)","http://portal.acm.org/proceedings/plop/","http://portal.acm.org/proceedings/plop/archive/"
-"Conference Proceedings","PMHWN: Performance Monitoring and Measurement of Heterogenous Wireless and Wired Networks","","","","2006 (October 2006)","2013 (November 2013)","http://portal.acm.org/proceedings/pmhwn/","http://portal.acm.org/proceedings/pmhwn/archive/"
-"Conference Proceedings","PODC: Principles of Distributed Computing","","","","1982 (August 1982)","2013 (July 2013)","http://portal.acm.org/proceedings/podc/","http://portal.acm.org/proceedings/podc/archive/"
-"Conference Proceedings","PODS: Principles of Database Systems","","","","1982 (March 1982)","2013 (June 2013)","http://portal.acm.org/proceedings/pods/","http://portal.acm.org/proceedings/pods/archive/"
-"Conference Proceedings","POMC: Principles of Mobile Computing","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/pomc/","http://portal.acm.org/proceedings/pomc/archive/"
-"Conference Proceedings","POOSC: Parallel/High-Performance Object-Oriented Scientific Computing","","","","2009 (July 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/poosc/","http://portal.acm.org/proceedings/poosc/archive/"
-"Conference Proceedings","POPL: Principles of Programming Languages","","","","1973 (October 1973)","2013 (January 2013)","http://portal.acm.org/proceedings/popl/","http://portal.acm.org/proceedings/popl/archive/"
-"Conference Proceedings","PP-TV: Peer-to-Peer Streaming and IP-TV","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/pp-tv/","http://portal.acm.org/proceedings/pp-tv/archive/"
-"Conference Proceedings","PPDP: Principles and Practice of Declarative Programming","","","","2000 (September 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/ppdp/","http://portal.acm.org/proceedings/ppdp/archive/"
-"Conference Proceedings","PPEALS: Parallel Programming: Experience with Applications, Languages and Systems","","","","1988 (January 1988)","1988 (January 1988)","http://portal.acm.org/proceedings/ppeals/","http://portal.acm.org/proceedings/ppeals/archive/"
-"Conference Proceedings","PPMMS: Peer-to-Peer Multimedia Streaming","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/ppmms/","http://portal.acm.org/proceedings/ppmms/archive/"
-"Conference Proceedings","PPPJ: Principles and Practice of Programming in Java","","","","2006 (August 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/pppj/","http://portal.acm.org/proceedings/pppj/archive/"
-"Conference Proceedings","PPoPP: Principles and Practice of Parallel Programming","","","","1990 (February 1990)","2013 (February 2013)","http://portal.acm.org/proceedings/ppopp/","http://portal.acm.org/proceedings/ppopp/archive/"
-"Conference Proceedings","PRESTO: Programmable Routers for Extensible Services of Tomorrow","","","","2008 (August 2008)","2010 (November 2010)","http://portal.acm.org/proceedings/presto/","http://portal.acm.org/proceedings/presto/archive/"
-"Conference Proceedings","PROCAMS: Projector Camera Systems","","","","2008 (August 2008)","2008 (August 2008)","http://portal.acm.org/proceedings/procams/","http://portal.acm.org/proceedings/procams/archive/"
-"Conference Proceedings","PROMISE: Predictor Models in Software Engineering","","","","2005 (May 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/promise/","http://portal.acm.org/proceedings/promise/archive/"
-"Conference Proceedings","PRS: Parallel Rendering","","","","1993 (November 1993)","1997 (October 1997)","http://portal.acm.org/proceedings/prs/","http://portal.acm.org/proceedings/prs/archive/"
-"Conference Proceedings","PST: Privacy, Security and Trust","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/pst/","http://portal.acm.org/proceedings/pst/archive/"
-"Conference Proceedings","PUI: Perceptive User Interfaces","","","","2001 (November 2001)","2001 (November 2001)","http://portal.acm.org/proceedings/pui/","http://portal.acm.org/proceedings/pui/archive/"
-"Conference Proceedings","PVG: Parallel and Large-Data Visualization and Graphics","","","","2001 (October 2001)","2003 (October 2003)","http://portal.acm.org/proceedings/pvg/","http://portal.acm.org/proceedings/pvg/archive/"
-"Conference Proceedings","PVGS: Parallel Visualization and Graphics","","","","1999 (October 1999)","1999 (October 1999)","http://portal.acm.org/proceedings/pvgs/","http://portal.acm.org/proceedings/pvgs/archive/"
-"Conference Proceedings","PaIR: Patent Information Retrieval","","","","2008 (October 2008)","2011 (October 2011)","http://portal.acm.org/proceedings/pair/","http://portal.acm.org/proceedings/pair/archive/"
-"Conference Proceedings","PerMIS: Performance Metrics for Intelligent Systems","","","","2007 (August 2007)","2012 (March 2012)","http://portal.acm.org/proceedings/permis/","http://portal.acm.org/proceedings/permis/archive/"
-"Conference Proceedings","Persuasive: Persuasive Technology","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/persuasive/","http://portal.acm.org/proceedings/persuasive/archive/"
-"Conference Proceedings","Ph.D.: EDBT Ph.D. workshop","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ph.d./","http://portal.acm.org/proceedings/ph.d./archive/"
-"Conference Proceedings","QSWinet: Quality of Service and Security for Wireless in Mobile Networks","","","","2005 (October 2005)","2012 (October 2012)","http://portal.acm.org/proceedings/qswinet/","http://portal.acm.org/proceedings/qswinet/archive/"
-"Conference Proceedings","QShine: Heterogeneous Networking for Quality, Reliability, Security and Robustness","","","","2006 (August 2006)","2008 (July 2008)","http://portal.acm.org/proceedings/qshine/","http://portal.acm.org/proceedings/qshine/archive/"
-"Conference Proceedings","QTNA: Queueing Theory and Network Applications","","","","2009 (July 2009)","2011 (August 2011)","http://portal.acm.org/proceedings/qtna/","http://portal.acm.org/proceedings/qtna/archive/"
-"Conference Proceedings","QUASOSS: Quality of Service-Oriented Software Systems","","","","2009 (August 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/quasoss/","http://portal.acm.org/proceedings/quasoss/archive/"
-"Conference Proceedings","QUOVADIS: Quantitative Stochastic Models in the Verification and Design of Software Systems","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/quovadis/","http://portal.acm.org/proceedings/quovadis/archive/"
-"Conference Proceedings","QUTE-SWAP: Quantitative Techniques for Software Agile Process","","","","2004 (November 2004)","2004 (November 2004)","http://portal.acm.org/proceedings/qute-swap/","http://portal.acm.org/proceedings/qute-swap/archive/"
-"Conference Proceedings","QoP: Quality of Protection","","","","2006 (October 2006)","2008 (October 2008)","http://portal.acm.org/proceedings/qop/","http://portal.acm.org/proceedings/qop/archive/"
-"Conference Proceedings","RAM-SE: Reflection, AOP and Meta-Data for Software Evolution","","","","2009 (July 2009)","2012 (June 2012)","http://portal.acm.org/proceedings/ram-se/","http://portal.acm.org/proceedings/ram-se/archive/"
-"Conference Proceedings","RAOOL: Relationships and Associations in Object-Oriented Languages","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/raool/","http://portal.acm.org/proceedings/raool/archive/"
-"Conference Proceedings","RBAC: Role-Based Access Control","","","","1996 (December 1996)","2000 (July 2000)","http://portal.acm.org/proceedings/rbac/","http://portal.acm.org/proceedings/rbac/archive/"
-"Conference Proceedings","REALMAN: Multi-Hop Ad Hoc Networks","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/realman/","http://portal.acm.org/proceedings/realman/archive/"
-"Conference Proceedings","REALWSN: Real-world Wireless Sensor Networks","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/realwsn/","http://portal.acm.org/proceedings/realwsn/archive/"
-"Conference Proceedings","REBSE: Realising Evidence-Based Software Engineering","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/rebse/","http://portal.acm.org/proceedings/rebse/archive/"
-"Conference Proceedings","RECOMB: Resaerch in Computational Molecular Biology","","","","1997 (January 1997)","2004 (March 2004)","http://portal.acm.org/proceedings/recomb/","http://portal.acm.org/proceedings/recomb/archive/"
-"Conference Proceedings","RIPQoS: Revisiting IP QoS","","","","2003 (August 2003)","2003 (August 2003)","http://portal.acm.org/proceedings/ripqos/","http://portal.acm.org/proceedings/ripqos/archive/"
-"Conference Proceedings","RKRAS: Research In Knowledge Representation For Autonomous Systems","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/rkras/","http://portal.acm.org/proceedings/rkras/archive/"
-"Conference Proceedings","ROA: Role of Abstraction in Software Engineering","","","","2006 (May 2006)","2008 (May 2008)","http://portal.acm.org/proceedings/roa/","http://portal.acm.org/proceedings/roa/archive/"
-"Conference Proceedings","ROSATEA: Role of Software Architecture for Testing and Analysis","","","","2006 (July 2006)","2006 (July 2006)","http://portal.acm.org/proceedings/rosatea/","http://portal.acm.org/proceedings/rosatea/archive/"
-"Conference Proceedings","RSSE: Recommendation Systems for Software Engineering","","","","2008 (November 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/rsse/","http://portal.acm.org/proceedings/rsse/archive/"
-"Conference Proceedings","RT: Randon Testing","","","","2006 (July 2006)","2007 (November 2007)","http://portal.acm.org/proceedings/rt/","http://portal.acm.org/proceedings/rt/archive/"
-"Conference Proceedings","RULE: Rule-Based Programming","","","","2002 (October 2002)","2002 (October 2002)","http://portal.acm.org/proceedings/rule/","http://portal.acm.org/proceedings/rule/archive/"
-"Conference Proceedings","ReArch: Re-architecting the Internet","","","","2009 (December 2009)","2010 (November 2010)","http://portal.acm.org/proceedings/rearch/","http://portal.acm.org/proceedings/rearch/archive/"
-"Conference Proceedings","RecSys: Recommender Systems","","","","2007 (October 2007)","2013 (October 2013)","http://portal.acm.org/proceedings/recsys/","http://portal.acm.org/proceedings/recsys/archive/"
-"Conference Proceedings","Resilience: Resilience in High Performance","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/resilience/","http://portal.acm.org/proceedings/resilience/archive/"
-"Conference Proceedings","S&D4RCES: Security and Dependability for Resource Constrained Embedded Systems","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/s&d4rces/","http://portal.acm.org/proceedings/s&d4rces/archive/"
-"Conference Proceedings","S3: Wireless of the Students, by the Students, for the Students","","","","2008 (February 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/s3/","http://portal.acm.org/proceedings/s3/archive/"
-"Conference Proceedings","SAC: Symposium on Applied Computing","","","","1986 (October 1986)","2013 (March 2013)","http://portal.acm.org/proceedings/sac/","http://portal.acm.org/proceedings/sac/archive/"
-"Conference Proceedings","SACLA: Southern African Computer Lecturers' Association","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/sacla/","http://portal.acm.org/proceedings/sacla/archive/"
-"Conference Proceedings","SACMAT: Symposium on Access Control Models and Technologies","","","","2001 (May 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/sacmat/","http://portal.acm.org/proceedings/sacmat/archive/"
-"Conference Proceedings","SADPI: Semantically Aware Document Processing and Indexing","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sadpi/","http://portal.acm.org/proceedings/sadpi/archive/"
-"Conference Proceedings","SAICSIT: South African Institute of Computer Scientists and Information Technologists","","","","2004 (October 2004)","2013 (October 2013)","http://portal.acm.org/proceedings/saicsit/","http://portal.acm.org/proceedings/saicsit/archive/"
-"Conference Proceedings","SAM: Software Architectures and Mobility","","","","2008 (May 2008)","2013 (October 2013)","http://portal.acm.org/proceedings/sam/","http://portal.acm.org/proceedings/sam/archive/"
-"Conference Proceedings","SAME: Semantic Ambient Media Experiences","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/same/","http://portal.acm.org/proceedings/same/archive/"
-"Conference Proceedings","SANET: Sensor and Actor Networks","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/sanet/","http://portal.acm.org/proceedings/sanet/archive/"
-"Conference Proceedings","SAPMIA: Social, Adaptive and Personalized Multimedia Interaction and Access","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sapmia/","http://portal.acm.org/proceedings/sapmia/archive/"
-"Conference Proceedings","SAS: Static Analysis","","","","2003 (June 2003)","2003 (June 2003)","http://portal.acm.org/proceedings/sas/","http://portal.acm.org/proceedings/sas/archive/"
-"Conference Proceedings","SASN: Security of Ad hoc and Sensor Networks","","","","2003 (October 2003)","2006 (October 2006)","http://portal.acm.org/proceedings/sasn/","http://portal.acm.org/proceedings/sasn/archive/"
-"Conference Proceedings","SAVCBS: Specification and Verification of Component-Based Systems","","","","2005 (September 2005)","2009 (August 2009)","http://portal.acm.org/proceedings/savcbs/","http://portal.acm.org/proceedings/savcbs/archive/"
-"Conference Proceedings","SAW: Static Analysis","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/saw/","http://portal.acm.org/proceedings/saw/archive/"
-"Conference Proceedings","SBCCI: Symposium on Integrated Circuits and System Design","","","","1998 (January 1998)","2011 (August 2011)","http://portal.acm.org/proceedings/sbcci/","http://portal.acm.org/proceedings/sbcci/archive/"
-"Conference Proceedings","SBIM: Sketch-Based Interfaces and Modeling","","","","2007 (August 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/sbim/","http://portal.acm.org/proceedings/sbim/archive/"
-"Conference Proceedings","SC: Supercomputing","","","","1988 (November 1988)","2013 (November 2013)","http://portal.acm.org/proceedings/sc/","http://portal.acm.org/proceedings/sc/archive/"
-"Conference Proceedings","SCA: Symposium on Computer Animation","","","","2002 (July 2002)","2013 (July 2013)","http://portal.acm.org/proceedings/sca/","http://portal.acm.org/proceedings/sca/archive/"
-"Conference Proceedings","SCC: Services Computing","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/scc/","http://portal.acm.org/proceedings/scc/archive/"
-"Conference Proceedings","SCCG: Spring Conference on Computer graphics","","","","2001 (April 2001)","2013 (March 2013)","http://portal.acm.org/proceedings/sccg/","http://portal.acm.org/proceedings/sccg/archive/"
-"Conference Proceedings","SCE: Summit on Computing Education","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/sce/","http://portal.acm.org/proceedings/sce/archive/"
-"Conference Proceedings","SCESM: Scenarios and State Machines","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/scesm/","http://portal.acm.org/proceedings/scesm/archive/"
-"Conference Proceedings","SCM: Software Configuration Management","","","","1989 (October 1989)","2005 (September 2005)","http://portal.acm.org/proceedings/scm/","http://portal.acm.org/proceedings/scm/archive/"
-"Conference Proceedings","SCN: Simulation of Computer Networks","","","","1987 (August 1987)","1987 (August 1987)","http://portal.acm.org/proceedings/scn/","http://portal.acm.org/proceedings/scn/archive/"
-"Conference Proceedings","SCOPES: Software and Compilers for Embedded Systems","","","","2005 (September 2005)","2013 (June 2013)","http://portal.acm.org/proceedings/scopes/","http://portal.acm.org/proceedings/scopes/archive/"
-"Conference Proceedings","SCORE: Software Metrics","","","","1982 (August 1982)","1982 (August 1982)","http://portal.acm.org/proceedings/score/","http://portal.acm.org/proceedings/score/archive/"
-"Conference Proceedings","SCSC: Summer Computer Simulation Conference","","","","2007 (July 2007)","2013 (July 2013)","http://portal.acm.org/proceedings/scsc/","http://portal.acm.org/proceedings/scsc/archive/"
-"Conference Proceedings","SDDDM: Dependable Distributed Data Management","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/sdddm/","http://portal.acm.org/proceedings/sdddm/archive/"
-"Conference Proceedings","SDE: Software Development Environments","","","","1984 (April 1984)","1992 (November 1992)","http://portal.acm.org/proceedings/sde/","http://portal.acm.org/proceedings/sde/archive/"
-"Conference Proceedings","SDG: Software Development Governance","","","","2008 (May 2008)","2010 (May 2010)","http://portal.acm.org/proceedings/sdg/","http://portal.acm.org/proceedings/sdg/archive/"
-"Conference Proceedings","SDSOA: Systems Development in SOA Environments","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/sdsoa/","http://portal.acm.org/proceedings/sdsoa/archive/"
-"Conference Proceedings","SE-HPC: Software Engineering for High Performance Computing Applications","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/se-hpc/","http://portal.acm.org/proceedings/se-hpc/archive/"
-"Conference Proceedings","SEAMS: Software Engineering for Adaptive and Self-Managing Systems","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/seams/","http://portal.acm.org/proceedings/seams/archive/"
-"Conference Proceedings","SEAS: Software Engineering for Automotive Systems","","","","2005 (May 2005)","2007 (May 2007)","http://portal.acm.org/proceedings/seas/","http://portal.acm.org/proceedings/seas/archive/"
-"Conference Proceedings","SECSE: Software Engineering for Computational Science and Engineering","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/secse/","http://portal.acm.org/proceedings/secse/archive/"
-"Conference Proceedings","SEESE: Software Engineering in East and South Europe","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/seese/","http://portal.acm.org/proceedings/seese/archive/"
-"Conference Proceedings","SEEUP: Software Engineering Foundations for End User Programming","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/seeup/","http://portal.acm.org/proceedings/seeup/archive/"
-"Conference Proceedings","SEHC: Software Engineering in Health Care","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/sehc/","http://portal.acm.org/proceedings/sehc/archive/"
-"Conference Proceedings","SEKE: Software Engineering and Knowledge Engineering","","","","2002 (July 2002)","2002 (July 2002)","http://portal.acm.org/proceedings/seke/","http://portal.acm.org/proceedings/seke/archive/"
-"Conference Proceedings","SELMAS: Software Engineering for Large-Scale Multi-Agent Systems","","","","2005 (May 2005)","2006 (May 2006)","http://portal.acm.org/proceedings/selmas/","http://portal.acm.org/proceedings/selmas/archive/"
-"Conference Proceedings","SEM: Software Engineering and Middleware","","","","2005 (September 2005)","2006 (November 2006)","http://portal.acm.org/proceedings/sem/","http://portal.acm.org/proceedings/sem/archive/"
-"Conference Proceedings","SEMSEARCH: Semantic Search","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/semsearch/","http://portal.acm.org/proceedings/semsearch/archive/"
-"Conference Proceedings","SEPCASE: Software Engineering for Pervasive Computing Applications, Systems, and Environments","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/sepcase/","http://portal.acm.org/proceedings/sepcase/archive/"
-"Conference Proceedings","SEPS: Software Engineering for Pervasive Services","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/seps/","http://portal.acm.org/proceedings/seps/archive/"
-"Conference Proceedings","SERENE: Software Engineering for Resilient Systems","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/serene/","http://portal.acm.org/proceedings/serene/archive/"
-"Conference Proceedings","SESENA: Software Engineering for Sensor Network Applications","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/sesena/","http://portal.acm.org/proceedings/sesena/archive/"
-"Conference Proceedings","SESS: Software Engineering for Secure Systems","","","","2005 (May 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/sess/","http://portal.acm.org/proceedings/sess/archive/"
-"Conference Proceedings","SETA: Symposium on Environments and Tools for Ada","","","","1991 (April 1991)","1994 (September 1994)","http://portal.acm.org/proceedings/seta/","http://portal.acm.org/proceedings/seta/archive/"
-"Conference Proceedings","SETMDM: Software Engineering for Tailor-Made Data Management","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/setmdm/","http://portal.acm.org/proceedings/setmdm/archive/"
-"Conference Proceedings","SGP: Symposium on Geometry Processing","","","","2003 (June 2003)","2006 (June 2006)","http://portal.acm.org/proceedings/sgp/","http://portal.acm.org/proceedings/sgp/archive/"
-"Conference Proceedings","SHARK: Sharing and Reusing Architectural Knowledge","","","","2007 (May 2007)","2011 (May 2011)","http://portal.acm.org/proceedings/shark/","http://portal.acm.org/proceedings/shark/archive/"
-"Conference Proceedings","SICOSIM: SICOSIM","","","","1972 (October 1972)","1973 (October 1973)","http://portal.acm.org/proceedings/sicosim/","http://portal.acm.org/proceedings/sicosim/archive/"
-"Conference Proceedings","SIGAda: SIGAda International Conference on Ada","","","","1985 (May 1985)","2011 (November 2011)","http://portal.acm.org/proceedings/sigada/","http://portal.acm.org/proceedings/sigada/archive/"
-"Conference Proceedings","SIGBDP: SIGBDP Conference on Trends and Directions in Expert Systems","","","","1990 (September 1990)","1990 (September 1990)","http://portal.acm.org/proceedings/sigbdp/","http://portal.acm.org/proceedings/sigbdp/archive/"
-"Conference Proceedings","SIGCOMM LA: Data Communication in Latin America and the Caribbean","","","","2001 (April 2001)","2001 (April 2001)","http://portal.acm.org/proceedings/sigcommla/","http://portal.acm.org/proceedings/sigcommla/archive/"
-"Conference Proceedings","SIGCOMM: ACM SIGCOMM","","","","1977 (September 1977)","2013 (August 2013)","http://portal.acm.org/proceedings/sigcomm/","http://portal.acm.org/proceedings/sigcomm/archive/"
-"Conference Proceedings","SIGCSE: Computer Science Education","","","","1970 (January 1970)","2013 (March 2013)","http://portal.acm.org/proceedings/sigcse/","http://portal.acm.org/proceedings/sigcse/archive/"
-"Conference Proceedings","SIGDOC: Design of Communication","","","","1982 (January 1982)","2013 (September 2013)","http://portal.acm.org/proceedings/sigdoc/","http://portal.acm.org/proceedings/sigdoc/archive/"
-"Conference Proceedings","SIGFIDET: Data Description, Access and Control","","","","1970 (November 1970)","1975 (January 1975)","http://portal.acm.org/proceedings/sigfidet/","http://portal.acm.org/proceedings/sigfidet/archive/"
-"Conference Proceedings","SIGGRAPH Asia: Computer Graphics and Interactive Techniques Conference - Asia","","","","2008 (December 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/siggraphasia/","http://portal.acm.org/proceedings/siggraphasia/archive/"
-"Conference Proceedings","SIGGRAPH: Computer Graphics and Interactive Techniques Conference","","","","1974 (July 1974)","2013 (July 2013)","http://portal.acm.org/proceedings/siggraph/","http://portal.acm.org/proceedings/siggraph/archive/"
-"Conference Proceedings","SIGIR: Information Retrieval","","","","1971 (April 1971)","2013 (July 2013)","http://portal.acm.org/proceedings/sigir/","http://portal.acm.org/proceedings/sigir/archive/"
-"Conference Proceedings","SIGITE: Information Technology Education","","","","2003 (October 2003)","2013 (October 2013)","http://portal.acm.org/proceedings/sigite/","http://portal.acm.org/proceedings/sigite/archive/"
-"Conference Proceedings","SIGME: SIGME Symposium","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/sigme/","http://portal.acm.org/proceedings/sigme/archive/"
-"Conference Proceedings","SIGMETRICS: Measurement and Modeling of Computer Systems","","","","1974 (January 1974)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmetrics/","http://portal.acm.org/proceedings/sigmetrics/archive/"
-"Conference Proceedings","SIGMINI: SIGMINI Symposium on Small Systems","","","","1976 (March 1976)","1978 (August 1978)","http://portal.acm.org/proceedings/sigmini/","http://portal.acm.org/proceedings/sigmini/archive/"
-"Conference Proceedings","SIGMOD: Management of Data","","","","1975 (May 1975)","2013 (June 2013)","http://portal.acm.org/proceedings/sigmod/","http://portal.acm.org/proceedings/sigmod/archive/"
-"Conference Proceedings","SIGPLAN: SIGPLAN Symposium","","","","1973 (November 1973)","1987 (July 1987)","http://portal.acm.org/proceedings/sigplan/","http://portal.acm.org/proceedings/sigplan/archive/"
-"Conference Proceedings","SIGSMALL: SIGSMALL/PC Symposium on Small Systems","","","","1979 (October 1979)","1991 (May 1991)","http://portal.acm.org/proceedings/sigsmall/","http://portal.acm.org/proceedings/sigsmall/archive/"
-"Conference Proceedings","SIGSOFT: Foundations of Software Engineering","","","","1983 (January 1983)","2012 (November 2012)","http://portal.acm.org/proceedings/sigsoft/","http://portal.acm.org/proceedings/sigsoft/archive/"
-"Conference Proceedings","SIGUCCS: User Services","","","","1972 (January 1972)","2013 (November 2013)","http://portal.acm.org/proceedings/siguccs/","http://portal.acm.org/proceedings/siguccs/archive/"
-"Conference Proceedings","SIMPLEX: Simplifying Complex Network for Practitioners","","","","2009 (July 2009)","2012 (April 2012)","http://portal.acm.org/proceedings/simplex/","http://portal.acm.org/proceedings/simplex/archive/"
-"Conference Proceedings","SIMUTools: Simulation Tools and Techniques","","","","2010 (March 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/simutools/","http://portal.acm.org/proceedings/simutools/archive/"
-"Conference Proceedings","SIN: Security of Information and Networks","","","","2009 (October 2009)","2012 (October 2012)","http://portal.acm.org/proceedings/sin/","http://portal.acm.org/proceedings/sin/archive/"
-"Conference Proceedings","SINTER: Software Integration and Evolution at Runtime","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sinter/","http://portal.acm.org/proceedings/sinter/archive/"
-"Conference Proceedings","SIPE: Services Integration in Pervasive Environments","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/sipe/","http://portal.acm.org/proceedings/sipe/archive/"
-"Conference Proceedings","SISAP: Similarity Search and Applications","","","","2008 (April 2008)","2011 (June 2011)","http://portal.acm.org/proceedings/sisap/","http://portal.acm.org/proceedings/sisap/archive/"
-"Conference Proceedings","SLIP: System Level Interconnect Prediction","","","","2000 (April 2000)","2012 (June 2012)","http://portal.acm.org/proceedings/slip/","http://portal.acm.org/proceedings/slip/archive/"
-"Conference Proceedings","SLIPE: Symposium on Language Issues in Programming Environments","","","","1985 (June 1985)","1985 (June 1985)","http://portal.acm.org/proceedings/slipe/","http://portal.acm.org/proceedings/slipe/archive/"
-"Conference Proceedings","SM: Solid Modelling and Applications","","","","1991 (May 1991)","2004 (June 2004)","http://portal.acm.org/proceedings/sm/","http://portal.acm.org/proceedings/sm/archive/"
-"Conference Proceedings","SMARTGRAPH: Smart Graphics","","","","2002 (June 2002)","2002 (June 2002)","http://portal.acm.org/proceedings/smartgraph/","http://portal.acm.org/proceedings/smartgraph/archive/"
-"Conference Proceedings","SMCtools: Tools for Solving Structured Markov Chains","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/smctools/","http://portal.acm.org/proceedings/smctools/archive/"
-"Conference Proceedings","SMT: Satisfiability Modulo Theories","","","","2008 (July 2008)","2009 (August 2009)","http://portal.acm.org/proceedings/smt/","http://portal.acm.org/proceedings/smt/archive/"
-"Conference Proceedings","SMUC: Search and Mining User-generated Contents","","","","2010 (October 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/smuc/","http://portal.acm.org/proceedings/smuc/archive/"
-"Conference Proceedings","SMVC: Surreal Media and Virtual Cloning","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/smvc/","http://portal.acm.org/proceedings/smvc/archive/"
-"Conference Proceedings","SNA-KDD: Social Network Mining and Analysis","","","","2009 (June 2009)","2013 (August 2013)","http://portal.acm.org/proceedings/sna-kdd/","http://portal.acm.org/proceedings/sna-kdd/archive/"
-"Conference Proceedings","SNAPI: Storage Network Architecture and Parallel I/Os","","","","2003 (September 2003)","2004 (September 2004)","http://portal.acm.org/proceedings/snapi/","http://portal.acm.org/proceedings/snapi/archive/"
-"Conference Proceedings","SNC: Symbolic-Numeric Computation","","","","2007 (July 2007)","2011 (June 2012)","http://portal.acm.org/proceedings/snc/","http://portal.acm.org/proceedings/snc/archive/"
-"Conference Proceedings","SNS: Social Network Systems","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/sns/","http://portal.acm.org/proceedings/sns/archive/"
-"Conference Proceedings","SOAR: Self-organizing Architectures","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/soar/","http://portal.acm.org/proceedings/soar/archive/"
-"Conference Proceedings","SOCP: Service-oriented Computing Performance","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/socp/","http://portal.acm.org/proceedings/socp/archive/"
-"Conference Proceedings","SODA: Symposium on Discrete Algorithms","","","","1990 (January 1990)","2012 (January 2012)","http://portal.acm.org/proceedings/soda/","http://portal.acm.org/proceedings/soda/archive/"
-"Conference Proceedings","SOMITAS: Software Organisation and Monitoring of Ambient Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/somitas/","http://portal.acm.org/proceedings/somitas/archive/"
-"Conference Proceedings","SOQUA: Software Quality Assurance","","","","2006 (November 2006)","2007 (September 2007)","http://portal.acm.org/proceedings/soqua/","http://portal.acm.org/proceedings/soqua/archive/"
-"Conference Proceedings","SOSE: Service-Oriented Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/sose/","http://portal.acm.org/proceedings/sose/archive/"
-"Conference Proceedings","SOSOC: Security in Opportunistic and Social networks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/sosoc/","http://portal.acm.org/proceedings/sosoc/archive/"
-"Conference Proceedings","SOSP: Symposium on Operating Systems Principles","","","","1967 (January 1967)","2013 (November 2013)","http://portal.acm.org/proceedings/sosp/","http://portal.acm.org/proceedings/sosp/archive/"
-"Conference Proceedings","SOUPS: Symposium on Usable Privacy and Security","","","","2005 (July 2005)","2013 (July 2013)","http://portal.acm.org/proceedings/soups/","http://portal.acm.org/proceedings/soups/archive/"
-"Conference Proceedings","SP: Security and Privacy","","","","1996 (May 1996)","1996 (May 1996)","http://portal.acm.org/proceedings/sp/","http://portal.acm.org/proceedings/sp/archive/"
-"Conference Proceedings","SPAA: Symposium on Parallelism in Algorithms and Architectures","","","","1989 (March 1989)","2013 (July 2013)","http://portal.acm.org/proceedings/spaa/","http://portal.acm.org/proceedings/spaa/archive/"
-"Conference Proceedings","SPDT: Parallel and Distributed Tools","","","","1996 (January 1996)","1998 (August 1998)","http://portal.acm.org/proceedings/spdt/","http://portal.acm.org/proceedings/spdt/archive/"
-"Conference Proceedings","SPIMACS: Security and Privacy in Medical and Home-Care Systems","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/spimacs/","http://portal.acm.org/proceedings/spimacs/archive/"
-"Conference Proceedings","SPIN: SPIN workshop on Model Checking of Software","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/spin/","http://portal.acm.org/proceedings/spin/archive/"
-"Conference Proceedings","SPLASH: Object-Oriented Programming Systems, Languages, and Applications","","","","1986 (June 1986)","2013 (October 2013)","http://portal.acm.org/proceedings/splash/","http://portal.acm.org/proceedings/splash/archive/"
-"Conference Proceedings","SPLAT: Software Engineering Properties of Languages and Aspect Technologies","","","","2007 (March 2007)","2008 (March 2008)","http://portal.acm.org/proceedings/splat/","http://portal.acm.org/proceedings/splat/archive/"
-"Conference Proceedings","SPM: Geometric and Physical Modeling","","","","2005 (June 2005)","2010 (September 2010)","http://portal.acm.org/proceedings/spm/","http://portal.acm.org/proceedings/spm/archive/"
-"Conference Proceedings","SPRINGL: Security and Privacy in GIS and LBS","","","","2008 (November 2008)","2011 (November 2011)","http://portal.acm.org/proceedings/springl/","http://portal.acm.org/proceedings/springl/archive/"
-"Conference Proceedings","SRMC: Story Representation, Mechanism and Context","","","","2004 (October 2004)","2008 (October 2008)","http://portal.acm.org/proceedings/srmc/","http://portal.acm.org/proceedings/srmc/archive/"
-"Conference Proceedings","SSCS: Searching Spontaneous COnversational Speech","","","","2009 (October 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/sscs/","http://portal.acm.org/proceedings/sscs/archive/"
-"Conference Proceedings","SSEE: Summit on Software Engineering Eductation","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/ssee/","http://portal.acm.org/proceedings/ssee/archive/"
-"Conference Proceedings","SSM: Search in Social Media","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/ssm/","http://portal.acm.org/proceedings/ssm/archive/"
-"Conference Proceedings","SSPS: Scalable Stream Processing System","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/ssps/","http://portal.acm.org/proceedings/ssps/archive/"
-"Conference Proceedings","SSPW: Social Signal Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/sspw/","http://portal.acm.org/proceedings/sspw/archive/"
-"Conference Proceedings","SSR: Symposium on Software Reusability","","","","1995 (August 1995)","2001 (May 2001)","http://portal.acm.org/proceedings/ssr/","http://portal.acm.org/proceedings/ssr/archive/"
-"Conference Proceedings","SSRS: Survivable and Self-Regenerative Systems","","","","2003 (October 2003)","2003 (October 2003)","http://portal.acm.org/proceedings/ssrs/","http://portal.acm.org/proceedings/ssrs/archive/"
-"Conference Proceedings","STC: Scalable Trusted Computing","","","","2006 (November 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/stc/","http://portal.acm.org/proceedings/stc/archive/"
-"Conference Proceedings","STOC: Symposium on Theory of Computing","","","","1969 (May 1969)","2013 (June 2013)","http://portal.acm.org/proceedings/stoc/","http://portal.acm.org/proceedings/stoc/archive/"
-"Conference Proceedings","STOP: Script to Program Evolution","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/stop/","http://portal.acm.org/proceedings/stop/archive/"
-"Conference Proceedings","STOV: Software Test Output Validation","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/stov/","http://portal.acm.org/proceedings/stov/archive/"
-"Conference Proceedings","SUITE: Search-driven Development: Users, Infrastructure, Tools and Evaluation","","","","2009 (May 2009)","2011 (May 2011)","http://portal.acm.org/proceedings/suite/","http://portal.acm.org/proceedings/suite/archive/"
-"Conference Proceedings","SVR: SIGGRAPH Video Review","","","","2001 (August 2001)","2003 (July 2003)","http://portal.acm.org/proceedings/svr/","http://portal.acm.org/proceedings/svr/archive/"
-"Conference Proceedings","SWS: Secure Web Services","","","","2004 (October 2004)","2009 (November 2009)","http://portal.acm.org/proceedings/sws/","http://portal.acm.org/proceedings/sws/archive/"
-"Conference Proceedings","SWSM: Social Web Search and Mining","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/swsm/","http://portal.acm.org/proceedings/swsm/archive/"
-"Conference Proceedings","SYANCO: Synthesis and Analysis of Component Connectors","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/syanco/","http://portal.acm.org/proceedings/syanco/archive/"
-"Conference Proceedings","SYMSAC: Symposium on Symbolic and Algebraic Computation","","","","1966 (January 1966)","1986 (October 1986)","http://portal.acm.org/proceedings/symsac/","http://portal.acm.org/proceedings/symsac/archive/"
-"Conference Proceedings","SYSTOR: Experimental Systems Conference","","","","2009 (May 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/systor/","http://portal.acm.org/proceedings/systor/archive/"
-"Conference Proceedings","SafeConfig: Assurable and Usable Security Configuration","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/safeconfig/","http://portal.acm.org/proceedings/safeconfig/archive/"
-"Conference Proceedings","Sandbox: Symposium on Video Games","","","","2006 (July 2006)","2011 (August 2011)","http://portal.acm.org/proceedings/sandbox/","http://portal.acm.org/proceedings/sandbox/archive/"
-"Conference Proceedings","SecPerU: Security, Privacy and Trust in Pervasive and Ubiquitous Computing","","","","2008 (July 2008)","2008 (July 2008)","http://portal.acm.org/proceedings/secperu/","http://portal.acm.org/proceedings/secperu/archive/"
-"Conference Proceedings","SecuCode: Secure Execution of Untrusted Code","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/secucode/","http://portal.acm.org/proceedings/secucode/archive/"
-"Conference Proceedings","SecureComm: Security and Privacy in Communication Netowrks","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/securecomm/","http://portal.acm.org/proceedings/securecomm/archive/"
-"Conference Proceedings","SenSys: Embedded Networked Sensor Systems","","","","2003 (November 2003)","2013 (November 2013)","http://portal.acm.org/proceedings/sensys/","http://portal.acm.org/proceedings/sensys/archive/"
-"Conference Proceedings","SensorKDD: Knowledge Discovery from Sensor Data","","","","2009 (June 2009)","2012 (August 2012)","http://portal.acm.org/proceedings/sensorkdd/","http://portal.acm.org/proceedings/sensorkdd/archive/"
-"Conference Proceedings","SoCC: Cloud Computing","","","","2010 (June 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/socc/","http://portal.acm.org/proceedings/socc/archive/"
-"Conference Proceedings","SoCG: Computational Geometry","","","","1985 (June 1985)","2013 (June 2013)","http://portal.acm.org/proceedings/socg/","http://portal.acm.org/proceedings/socg/archive/"
-"Conference Proceedings","SoD: Science of Design","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/sod/","http://portal.acm.org/proceedings/sod/archive/"
-"Conference Proceedings","SoICT: Information and Communication Technology","","","","2010 (August 2010)","2013 (December 2013)","http://portal.acm.org/proceedings/soict/","http://portal.acm.org/proceedings/soict/archive/"
-"Conference Proceedings","SoSEA: Social Software Engineering Applications","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/sosea/","http://portal.acm.org/proceedings/sosea/archive/"
-"Conference Proceedings","SocialNets: Social Network Systems","","","","2008 (April 2008)","2009 (March 2009)","http://portal.acm.org/proceedings/socialnets/","http://portal.acm.org/proceedings/socialnets/archive/"
-"Conference Proceedings","SoftVis: Software Visualization","","","","2003 (June 2003)","2010 (October 2010)","http://portal.acm.org/proceedings/softvis/","http://portal.acm.org/proceedings/softvis/archive/"
-"Conference Proceedings","SpringSim: Spring Simulation Multiconference","","","","2007 (March 2007)","2013 (April 2013)","http://portal.acm.org/proceedings/springsim/","http://portal.acm.org/proceedings/springsim/archive/"
-"Conference Proceedings","StReBio: Statistical and Relational Learning in Bioinformatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/strebio/","http://portal.acm.org/proceedings/strebio/archive/"
-"Conference Proceedings","StorageSS: Storage Security and Survivability","","","","2005 (November 2005)","2008 (October 2008)","http://portal.acm.org/proceedings/storagess/","http://portal.acm.org/proceedings/storagess/archive/"
-"Conference Proceedings","StreamKDD: Novel Data Stream Pattern Mining Techniques","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/streamkdd/","http://portal.acm.org/proceedings/streamkdd/archive/"
-"Conference Proceedings","TAMODIA: Task Models and Diagrams","","","","2004 (November 2004)","2005 (September 2005)","http://portal.acm.org/proceedings/tamodia/","http://portal.acm.org/proceedings/tamodia/archive/"
-"Conference Proceedings","TAPAS: Technology and Policy for Accessing Spectrum","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/tapas/","http://portal.acm.org/proceedings/tapas/archive/"
-"Conference Proceedings","TAPIA: Diversity in Computing","","","","2003 (October 2003)","2009 (April 2009)","http://portal.acm.org/proceedings/tapia/","http://portal.acm.org/proceedings/tapia/archive/"
-"Conference Proceedings","TAPP: Theory and Practice of Provenance","","","","2010 (February 2010)","2013 (April 2013)","http://portal.acm.org/proceedings/tapp/","http://portal.acm.org/proceedings/tapp/archive/"
-"Conference Proceedings","TARK: Theoretical Aspects of Rationality and Knowledge","","","","1986 (March 1986)","2009 (July 2009)","http://portal.acm.org/proceedings/tark/","http://portal.acm.org/proceedings/tark/archive/"
-"Conference Proceedings","TAU: Timing Iissues in the Specification and Synthesis of Digital Systems","","","","2002 (December 2002)","2002 (December 2002)","http://portal.acm.org/proceedings/tau/","http://portal.acm.org/proceedings/tau/archive/"
-"Conference Proceedings","TAV: Testing, Analysis and Verification","","","","1989 (November 1989)","2008 (July 2008)","http://portal.acm.org/proceedings/tav/","http://portal.acm.org/proceedings/tav/archive/"
-"Conference Proceedings","TEFSE: Traceability in Emerging Forms of Software Engineering","","","","2005 (November 2005)","2011 (May 2011)","http://portal.acm.org/proceedings/tefse/","http://portal.acm.org/proceedings/tefse/archive/"
-"Conference Proceedings","TEI: Tangible and Embedded Interaction","","","","2007 (February 2007)","2013 (February 2013)","http://portal.acm.org/proceedings/tei/","http://portal.acm.org/proceedings/tei/archive/"
-"Conference Proceedings","TG: TeraGrid","","","","2010 (August 2010)","2011 (July 2011)","http://portal.acm.org/proceedings/tg/","http://portal.acm.org/proceedings/tg/archive/"
-"Conference Proceedings","TINLAP: Theoretical Issues in Natural Language Processing","","","","1975 (June 1975)","1975 (June 1975)","http://portal.acm.org/proceedings/tinlap/","http://portal.acm.org/proceedings/tinlap/archive/"
-"Conference Proceedings","TLDI: Types in Language Design and Implentation","","","","2003 (January 2003)","2012 (January 2012)","http://portal.acm.org/proceedings/tldi/","http://portal.acm.org/proceedings/tldi/archive/"
-"Conference Proceedings","TMBIO: Text Mining in Bioinformatics","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/tmbio/","http://portal.acm.org/proceedings/tmbio/archive/"
-"Conference Proceedings","TMR: Tagging, Mining and Retrieval","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/tmr/","http://portal.acm.org/proceedings/tmr/archive/"
-"Conference Proceedings","TRI-Ada: TRI-Ada","","","","1989 (January 1989)","1997 (November 1997)","http://portal.acm.org/proceedings/tri-ada/","http://portal.acm.org/proceedings/tri-ada/archive/"
-"Conference Proceedings","TSA: Topic-Sentiment Analysis for Mass Opinion","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/tsa/","http://portal.acm.org/proceedings/tsa/archive/"
-"Conference Proceedings","TT: Software Technology Transfer in Software Engineering","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/tt/","http://portal.acm.org/proceedings/tt/archive/"
-"Conference Proceedings","TVS: TRECVid Video Summarization","","","","2007 (September 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/tvs/","http://portal.acm.org/proceedings/tvs/archive/"
-"Conference Proceedings","TridentCom: Testbeds and Research Infrastructures for the Development of Networks & Communities","","","","2008 (March 2008)","2008 (March 2008)","http://portal.acm.org/proceedings/tridentcom/","http://portal.acm.org/proceedings/tridentcom/archive/"
-"Conference Proceedings","U-NET: User-Provided Networking","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/u-net/","http://portal.acm.org/proceedings/u-net/archive/"
-"Conference Proceedings","U: Knowledge Discovery from Uncertain Data","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/u/","http://portal.acm.org/proceedings/u/archive/"
-"Conference Proceedings","UBDM: Utility-Based Data Mining","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/ubdm/","http://portal.acm.org/proceedings/ubdm/archive/"
-"Conference Proceedings","UCHPC-MAW: UnConventional High Performance Computing Workshop plus Memory Access Workshop","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/uchpc-maw/","http://portal.acm.org/proceedings/uchpc-maw/archive/"
-"Conference Proceedings","UCVP: Use of Context in Vision Processing","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/ucvp/","http://portal.acm.org/proceedings/ucvp/archive/"
-"Conference Proceedings","UIST: User Interface Software and Technology","","","","1988 (January 1988)","2013 (October 2013)","http://portal.acm.org/proceedings/uist/","http://portal.acm.org/proceedings/uist/archive/"
-"Conference Proceedings","ULSSIS: Ultra-Large-Scale Software-Intensive Systems","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/ulssis/","http://portal.acm.org/proceedings/ulssis/archive/"
-"Conference Proceedings","UML: Unified Modeling Language","","","","1999 (October 1999)","2000 (October 2000)","http://portal.acm.org/proceedings/uml/","http://portal.acm.org/proceedings/uml/archive/"
-"Conference Proceedings","UODIGS: User-Oriented Design of Interactive Graphics Systems","","","","1977 (October 1976)","1977 (October 1976)","http://portal.acm.org/proceedings/uodigs/","http://portal.acm.org/proceedings/uodigs/archive/"
-"Conference Proceedings","UP: Useful Patterns","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/up/","http://portal.acm.org/proceedings/up/archive/"
-"Conference Proceedings","UPGRADE: Use of P2P, GRID and Agents for the Development of Content Networks","","","","2007 (June 2007)","2009 (June 2009)","http://portal.acm.org/proceedings/upgrade/","http://portal.acm.org/proceedings/upgrade/archive/"
-"Conference Proceedings","UXTV: Designing Interactive User Experiences for TV and Video","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/uxtv/","http://portal.acm.org/proceedings/uxtv/archive/"
-"Conference Proceedings","UbiComp: Ubiquitous Computing","","","","2002 (September 2002)","2013 (September 2013)","http://portal.acm.org/proceedings/ubicomp/","http://portal.acm.org/proceedings/ubicomp/archive/"
-"Conference Proceedings","UbiMob: Mobility and Ubiquity Computing","","","","2004 (June 2004)","2009 (July 2009)","http://portal.acm.org/proceedings/ubimob/","http://portal.acm.org/proceedings/ubimob/archive/"
-"Conference Proceedings","UltraVis: Ultrascale Visualization","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ultravis/","http://portal.acm.org/proceedings/ultravis/archive/"
-"Conference Proceedings","VAKD: Visual Analytics and Knowledge Discovery","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/vakd/","http://portal.acm.org/proceedings/vakd/archive/"
-"Conference Proceedings","VANET: VehiculAr InterNETworking","","","","2004 (October 2004)","2013 (June 2013)","http://portal.acm.org/proceedings/vanet/","http://portal.acm.org/proceedings/vanet/archive/"
-"Conference Proceedings","VAST: Visual Analytics Science and Technology","","","","2001 (November 2001)","2009 (September 2009)","http://portal.acm.org/proceedings/vast/","http://portal.acm.org/proceedings/vast/archive/"
-"Conference Proceedings","VDTS: Virtualization Technology for Dependable Systems","","","","2009 (March 2009)","2009 (March 2009)","http://portal.acm.org/proceedings/vdts/","http://portal.acm.org/proceedings/vdts/archive/"
-"Conference Proceedings","VEE: Virtual Execution Environments","","","","2005 (June 2005)","2013 (March 2013)","http://portal.acm.org/proceedings/vee/","http://portal.acm.org/proceedings/vee/archive/"
-"Conference Proceedings","VG: Volume Graphics","","","","2003 (July 2003)","2005 (June 2005)","http://portal.acm.org/proceedings/vg/","http://portal.acm.org/proceedings/vg/archive/"
-"Conference Proceedings","VIS: Visualization","","","","1990 (October 1990)","2004 (October 2004)","http://portal.acm.org/proceedings/vis/","http://portal.acm.org/proceedings/vis/archive/"
-"Conference Proceedings","VISA: Virtualized Infrastructure Systems and Architectures","","","","2009 (August 2009)","2010 (September 2010)","http://portal.acm.org/proceedings/visa/","http://portal.acm.org/proceedings/visa/archive/"
-"Conference Proceedings","VISSYM: Symposium on Data Visualisation","","","","2003 (May 2003)","2004 (May 2004)","http://portal.acm.org/proceedings/vissym/","http://portal.acm.org/proceedings/vissym/archive/"
-"Conference Proceedings","VLDB: Very Large Data Bases","","","","1975 (September 1975)","2007 (September 2007)","http://portal.acm.org/proceedings/vldb/","http://portal.acm.org/proceedings/vldb/archive/"
-"Conference Proceedings","VLS-MCMR: Very-Large-Scale Multimedia Corpus, Mining and Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/vls-mcmr/","http://portal.acm.org/proceedings/vls-mcmr/archive/"
-"Conference Proceedings","VMIL: Virtual Machines and Intermediate Languages","","","","2007 (March 2007)","2012 (October 2012)","http://portal.acm.org/proceedings/vmil/","http://portal.acm.org/proceedings/vmil/archive/"
-"Conference Proceedings","VMSec: Virtual Machine Security","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/vmsec/","http://portal.acm.org/proceedings/vmsec/archive/"
-"Conference Proceedings","VNBA: Vision Networks for Behaviour Analysis","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/vnba/","http://portal.acm.org/proceedings/vnba/archive/"
-"Conference Proceedings","VRCAI: Virtual Reality Continuum and its Applications in Industry","","","","2004 (June 2004)","2013 (November 2013)","http://portal.acm.org/proceedings/vrcai/","http://portal.acm.org/proceedings/vrcai/archive/"
-"Conference Proceedings","VRML: Virtual Reality Modeling Language","","","","1995 (January 1995)","2000 (February 2000)","http://portal.acm.org/proceedings/vrml/","http://portal.acm.org/proceedings/vrml/archive/"
-"Conference Proceedings","VRST: Virtual Reality Software and Technology","","","","1997 (September 1997)","2013 (October 2013)","http://portal.acm.org/proceedings/vrst/","http://portal.acm.org/proceedings/vrst/archive/"
-"Conference Proceedings","VSSN: Video Surveillance and Sensor Networks","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/vssn/","http://portal.acm.org/proceedings/vssn/archive/"
-"Conference Proceedings","VTDC: Virtualization Technology in Distributed Computing","","","","2006 (November 2006)","2013 (June 2013)","http://portal.acm.org/proceedings/vtdc/","http://portal.acm.org/proceedings/vtdc/archive/"
-"Conference Proceedings","VVS: Symposium on Volume Visualization","","","","1989 (May 1989)","2002 (October 2002)","http://portal.acm.org/proceedings/vvs/","http://portal.acm.org/proceedings/vvs/archive/"
-"Conference Proceedings","ValueTools: Performance Evaluation Methodologies and Tools","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","Valuetools: Performance Evaluation Methodologies and Tools","","","","2006 (October 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/valuetools/","http://portal.acm.org/proceedings/valuetools/archive/"
-"Conference Proceedings","VizSEC: Visualization for Computer Security","","","","2004 (October 2004)","2006 (November 2006)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","VizSec: Visualization for Cyber Security","","","","2010 (September 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/vizsec/","http://portal.acm.org/proceedings/vizsec/archive/"
-"Conference Proceedings","WA: Web Accessibility","","","","2004 (May 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/wa/","http://portal.acm.org/proceedings/wa/archive/"
-"Conference Proceedings","WACC: Work Activities Coordination and Collaboration","","","","1999 (March 1999)","1999 (March 1999)","http://portal.acm.org/proceedings/wacc/","http://portal.acm.org/proceedings/wacc/archive/"
-"Conference Proceedings","WADAS: Washington Ada symposium on Ada","","","","1984 (March 1984)","1994 (July 1994)","http://portal.acm.org/proceedings/wadas/","http://portal.acm.org/proceedings/wadas/archive/"
-"Conference Proceedings","WADS: Workshop on Architecting Dependable Systems","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wads/","http://portal.acm.org/proceedings/wads/archive/"
-"Conference Proceedings","WBIA: Workshop on Binary Instrumentation and Applications","","","","2009 (December 2009)","2009 (December 2009)","http://portal.acm.org/proceedings/wbia/","http://portal.acm.org/proceedings/wbia/archive/"
-"Conference Proceedings","WBMA: Biometrics Methods and Applications","","","","2003 (November 2003)","2003 (November 2003)","http://portal.acm.org/proceedings/wbma/","http://portal.acm.org/proceedings/wbma/archive/"
-"Conference Proceedings","WCAE: Computer Architecture Education","","","","1995 (January 1995)","2007 (June 2007)","http://portal.acm.org/proceedings/wcae/","http://portal.acm.org/proceedings/wcae/archive/"
-"Conference Proceedings","WCCCE: Computing Education","","","","2009 (May 2009)","2012 (May 2012)","http://portal.acm.org/proceedings/wccce/","http://portal.acm.org/proceedings/wccce/archive/"
-"Conference Proceedings","WCFLP: Workshop on Curry and Functional Logic Programming","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/wcflp/","http://portal.acm.org/proceedings/wcflp/archive/"
-"Conference Proceedings","WDTN: Delay-Tolerant Networking","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/wdtn/","http://portal.acm.org/proceedings/wdtn/archive/"
-"Conference Proceedings","WEASELTech: Empirical Assessment of Software Engineering Languages and Technologies","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/weaseltech/","http://portal.acm.org/proceedings/weaseltech/archive/"
-"Conference Proceedings","WEH: Exception Handling","","","","2008 (November 2008)","2008 (November 2008)","http://portal.acm.org/proceedings/weh/","http://portal.acm.org/proceedings/weh/archive/"
-"Conference Proceedings","WESS: Workshop on Embedded Systems Security","","","","2009 (October 2009)","2013 (September 2013)","http://portal.acm.org/proceedings/wess/","http://portal.acm.org/proceedings/wess/archive/"
-"Conference Proceedings","WETSoM: Workshop on Emerging Trends in Software Metrics","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/wetsom/","http://portal.acm.org/proceedings/wetsom/archive/"
-"Conference Proceedings","WEUSE: Workshop on End-User Software Engineering","","","","2005 (May 2005)","2008 (May 2008)","http://portal.acm.org/proceedings/weuse/","http://portal.acm.org/proceedings/weuse/archive/"
-"Conference Proceedings","WEWST: Workshop on Enhanced Web Service Technologies","","","","2009 (November 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/wewst/","http://portal.acm.org/proceedings/wewst/archive/"
-"Conference Proceedings","WGP: Workshop on Generic Programming","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wgp/","http://portal.acm.org/proceedings/wgp/archive/"
-"Conference Proceedings","WH: Wireless Health","","","","2010 (October 2010)","2012 (October 2012)","http://portal.acm.org/proceedings/wh/","http://portal.acm.org/proceedings/wh/archive/"
-"Conference Proceedings","WHPCF: High Performance Computational Finance","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/whpcf/","http://portal.acm.org/proceedings/whpcf/archive/"
-"Conference Proceedings","WI-IATW: Web Intelligence and Intelligent Agent Technology","","","","2006 (December 2006)","2012 (December 2012)","http://portal.acm.org/proceedings/wi-iatw/","http://portal.acm.org/proceedings/wi-iatw/archive/"
-"Conference Proceedings","WI: Web Intelligence","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/wi/","http://portal.acm.org/proceedings/wi/archive/"
-"Conference Proceedings","WICON: Wireless internet","","","","2006 (August 2006)","2007 (October 2007)","http://portal.acm.org/proceedings/wicon/","http://portal.acm.org/proceedings/wicon/archive/"
-"Conference Proceedings","WICOW: Information Credibility on the Web","","","","2008 (October 2008)","2010 (April 2010)","http://portal.acm.org/proceedings/wicow/","http://portal.acm.org/proceedings/wicow/archive/"
-"Conference Proceedings","WIDM: Web Information and Data Management","","","","1999 (November 1999)","2012 (November 2012)","http://portal.acm.org/proceedings/widm/","http://portal.acm.org/proceedings/widm/archive/"
-"Conference Proceedings","WIESS: Industrial Experiences with Systems Software ","","","","2000 (October 2000)","2002 (December 2002)","http://portal.acm.org/proceedings/wiess/","http://portal.acm.org/proceedings/wiess/archive/"
-"Conference Proceedings","WINITS: Wireless Networking for Intelligent Transportation Systems","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/winits/","http://portal.acm.org/proceedings/winits/archive/"
-"Conference Proceedings","WINTECH: Exerimental Evaluation and Characterization","","","","2009 (September 2009)","2009 (September 2009)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WISER: Workshop on Interdisciplinary Software Engineering Research","","","","2004 (November 2004)","2006 (May 2006)","http://portal.acm.org/proceedings/wiser/","http://portal.acm.org/proceedings/wiser/archive/"
-"Conference Proceedings","WISG: Workshop on Information Security Governance","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wisg/","http://portal.acm.org/proceedings/wisg/archive/"
-"Conference Proceedings","WISTP: Information Security Theory and Practices","","","","2007 (May 2007)","2008 (May 2008)","http://portal.acm.org/proceedings/wistp/","http://portal.acm.org/proceedings/wistp/archive/"
-"Conference Proceedings","WITS: Issues in the Theory of Security","","","","2005 (January 2005)","2005 (January 2005)","http://portal.acm.org/proceedings/wits/","http://portal.acm.org/proceedings/wits/archive/"
-"Conference Proceedings","WMASH: Wireless Mobile Applications and Services on WLAN Hotspots","","","","2003 (September 2003)","2006 (September 2006)","http://portal.acm.org/proceedings/wmash/","http://portal.acm.org/proceedings/wmash/archive/"
-"Conference Proceedings","WMC: Workshop on Mobile Commerce","","","","2001 (July 2001)","2002 (September 2002)","http://portal.acm.org/proceedings/wmc/","http://portal.acm.org/proceedings/wmc/archive/"
-"Conference Proceedings","WMI: Wireless Mobile Internet","","","","2001 (July 2001)","2001 (July 2001)","http://portal.acm.org/proceedings/wmi/","http://portal.acm.org/proceedings/wmi/archive/"
-"Conference Proceedings","WMISI: Workshop on Multimodal Interfaces in Semantic Interaction","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wmisi/","http://portal.acm.org/proceedings/wmisi/archive/"
-"Conference Proceedings","WMPI: Memory Performance Issues","","","","2004 (June 2004)","2004 (June 2004)","http://portal.acm.org/proceedings/wmpi/","http://portal.acm.org/proceedings/wmpi/archive/"
-"Conference Proceedings","WMUPS: Middleware for Ubiquitous and Pervasive Systems","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/wmups/","http://portal.acm.org/proceedings/wmups/archive/"
-"Conference Proceedings","WMuNeP: Wireless Multimedia and Performance Modeling","","","","2005 (October 2005)","2011 (October 2011)","http://portal.acm.org/proceedings/wmunep/","http://portal.acm.org/proceedings/wmunep/archive/"
-"Conference Proceedings","WNS: Workshop on NS-2: the IP Network Simulator","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/wns/","http://portal.acm.org/proceedings/wns/archive/"
-"Conference Proceedings","WOCCI: Workshop on Child, Computer and Interaction","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/wocci/","http://portal.acm.org/proceedings/wocci/archive/"
-"Conference Proceedings","WODA: Workshop on Dynamic Analysis","","","","2005 (May 2005)","2012 (July 2012)","http://portal.acm.org/proceedings/woda/","http://portal.acm.org/proceedings/woda/archive/"
-"Conference Proceedings","WORKS: Workflows in Support of Large-Scale Science","","","","2007 (June 2007)","2013 (November 2013)","http://portal.acm.org/proceedings/works/","http://portal.acm.org/proceedings/works/archive/"
-"Conference Proceedings","WORM: Workshop on Recurring Malcode","","","","2003 (October 2003)","2007 (November 2007)","http://portal.acm.org/proceedings/worm/","http://portal.acm.org/proceedings/worm/archive/"
-"Conference Proceedings","WOSN: Online Social Networks","","","","2008 (August 2008)","2012 (August 2012)","http://portal.acm.org/proceedings/wosn/","http://portal.acm.org/proceedings/wosn/archive/"
-"Conference Proceedings by Affiliated Organizations","WOSP: Software and Performance","","","","1998 (October 1998)","2013 (April 2013)","http://portal.acm.org/proceedings/wosp/","http://portal.acm.org/proceedings/wosp/archive/"
-"Conference Proceedings","WOSS: Self-Managed Systems","","","","2002 (November 2002)","2004 (October 2004)","http://portal.acm.org/proceedings/woss/","http://portal.acm.org/proceedings/woss/archive/"
-"Conference Proceedings","WOSSE: Workshop on Open Source Software Engineering","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/wosse/","http://portal.acm.org/proceedings/wosse/archive/"
-"Conference Proceedings","WOWMOM: Workshop on Wireless Mobile Multimedia","","","","1998 (October 1998)","2006 (June 2006)","http://portal.acm.org/proceedings/wowmom/","http://portal.acm.org/proceedings/wowmom/archive/"
-"Conference Proceedings","WPES: Workshop on Privacy in the Electronic Society","","","","2002 (November 2002)","2013 (November 2013)","http://portal.acm.org/proceedings/wpes/","http://portal.acm.org/proceedings/wpes/archive/"
-"Conference Proceedings","WRAITS: Recent Advances on Intrusion-Tolerant Systems","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/wraits/","http://portal.acm.org/proceedings/wraits/archive/"
-"Conference Proceedings","WRASQ: Workshop on Automating Service Quality","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/wrasq/","http://portal.acm.org/proceedings/wrasq/archive/"
-"Conference Proceedings","WREFT: Workshop on Radiation Effects and Fault Tolerance in Nanometer Technologies","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/wreft/","http://portal.acm.org/proceedings/wreft/archive/"
-"Conference Proceedings","WREN: Research on Enterprise Networking","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/wren/","http://portal.acm.org/proceedings/wren/archive/"
-"Conference Proceedings","WRT: Refactoring Tools","","","","2008 (October 2008)","2012 (June 2012)","http://portal.acm.org/proceedings/wrt/","http://portal.acm.org/proceedings/wrt/archive/"
-"Conference Proceedings","WS-REST: RESTful Design","","","","2010 (April 2010)","2012 (April 2012)","http://portal.acm.org/proceedings/ws-rest/","http://portal.acm.org/proceedings/ws-rest/archive/"
-"Conference Proceedings","WSC: Winter Simulation Conference","","","","1971 (January 1971)","2012 (December 2012)","http://portal.acm.org/proceedings/wsc/","http://portal.acm.org/proceedings/wsc/archive/"
-"Conference Proceedings","WSCD: Web Search Click Data","","","","2009 (February 2009)","2009 (February 2009)","http://portal.acm.org/proceedings/wscd/","http://portal.acm.org/proceedings/wscd/archive/"
-"Conference Proceedings","WSDM: Web Search and Data Mining","","","","2008 (February 2008)","2013 (February 2013)","http://portal.acm.org/proceedings/wsdm/","http://portal.acm.org/proceedings/wsdm/archive/"
-"Conference Proceedings","WSM: Social Media","","","","2009 (October 2009)","2011 (November 2011)","http://portal.acm.org/proceedings/wsm/","http://portal.acm.org/proceedings/wsm/archive/"
-"Conference Proceedings","WSMC: Web-Scale Multimedia Corpus","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/wsmc/","http://portal.acm.org/proceedings/wsmc/archive/"
-"Conference Proceedings","WSNA: Wireless Sensor Networks and Applications","","","","2002 (September 2002)","2003 (September 2003)","http://portal.acm.org/proceedings/wsna/","http://portal.acm.org/proceedings/wsna/archive/"
-"Conference Proceedings","WTAOP: Workshop on Testing Aspect-Oriented Programs","","","","2006 (July 2006)","2007 (March 2007)","http://portal.acm.org/proceedings/wtaop/","http://portal.acm.org/proceedings/wtaop/archive/"
-"Conference Proceedings","WUAUC: Universal Accessibility of Ubiquitous Computing","","","","2001 (May 2001)","2001 (May 2001)","http://portal.acm.org/proceedings/wuauc/","http://portal.acm.org/proceedings/wuauc/archive/"
-"Conference Proceedings","WUP: Warm Up Workshop for ACM/IEEE ICSE 2010","","","","2009 (April 2009)","2009 (April 2009)","http://portal.acm.org/proceedings/wup/","http://portal.acm.org/proceedings/wup/archive/"
-"Conference Proceedings","WWW: World Wide Web","","","","2001 (April 2001)","2013 (May 2013)","http://portal.acm.org/proceedings/www/","http://portal.acm.org/proceedings/www/archive/"
-"Conference Proceedings","Wands: Workflow Approaches to New Data-centric Science","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/wands/","http://portal.acm.org/proceedings/wands/archive/"
-"Conference Proceedings","Web3D: 3D Web Technology","","","","2001 (February 2001)","2013 (June 2013)","http://portal.acm.org/proceedings/web3d/","http://portal.acm.org/proceedings/web3d/archive/"
-"Conference Proceedings","WebDB: Web and Databases","","","","2004 (June 2004)","2010 (June 2010)","http://portal.acm.org/proceedings/webdb/","http://portal.acm.org/proceedings/webdb/archive/"
-"Conference Proceedings","WebKDD/SNA-KDD: Web Mining and Social Network Analysis","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/webkdd/sna-kdd/","http://portal.acm.org/proceedings/webkdd/sna-kdd/archive/"
-"Conference Proceedings","WebMedia: Multimedia and the Web","","","","2005 (December 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/webmedia/","http://portal.acm.org/proceedings/webmedia/archive/"
-"Conference Proceedings","WebSE: Workshop on Web 2.0 for Software Engineering","","","","2010 (May 2010)","2011 (May 2011)","http://portal.acm.org/proceedings/webse/","http://portal.acm.org/proceedings/webse/archive/"
-"Conference Proceedings","WebScience: Collaborative and Collective Intelligence","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/webscience/","http://portal.acm.org/proceedings/webscience/archive/"
-"Conference Proceedings","WiMD: Medical Grade Wireless Networks","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/wimd/","http://portal.acm.org/proceedings/wimd/archive/"
-"Conference Proceedings","WiNS-DR: Wireless Networks and Systems for Developing Regions","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/wins-dr/","http://portal.acm.org/proceedings/wins-dr/archive/"
-"Conference Proceedings","WiNTECH: Wireless Network Tesbeds, Experimental Evaluation and Characterization","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/wintech/","http://portal.acm.org/proceedings/wintech/archive/"
-"Conference Proceedings","WiSE: Wireless Security","","","","2002 (September 2002)","2006 (September 2006)","http://portal.acm.org/proceedings/wise/","http://portal.acm.org/proceedings/wise/archive/"
-"Conference Proceedings","WiSec: Wireless Network Security","","","","2008 (March 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/wisec/","http://portal.acm.org/proceedings/wisec/archive/"
-"Conference Proceedings","WiTMeMo: Wireless Traffic Measurements and Modeling","","","","2005 (June 2005)","2006 (August 2006)","http://portal.acm.org/proceedings/witmemo/","http://portal.acm.org/proceedings/witmemo/archive/"
-"Conference Proceedings","WikiSym: International Symposium on Wikis","","","","2005 (October 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/wikisym/","http://portal.acm.org/proceedings/wikisym/archive/"
-"Conference Proceedings","WoSQ: Workshop on Software Quality","","","","2005 (May 2005)","2011 (September 2011)","http://portal.acm.org/proceedings/wosq/","http://portal.acm.org/proceedings/wosq/archive/"
-"Conference Proceedings","WuWNeT: UnderWater Networks","","","","2006 (September 2006)","2012 (November 2012)","http://portal.acm.org/proceedings/wuwnet/","http://portal.acm.org/proceedings/wuwnet/archive/"
-"Conference Proceedings","XIME-P: XQuery Implementation, Experience and Perpectives","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/xime-p/","http://portal.acm.org/proceedings/xime-p/archive/"
-"Conference Proceedings","XMLSEC: XML Security","","","","2002 (November 2002)","2003 (October 2003)","http://portal.acm.org/proceedings/xmlsec/","http://portal.acm.org/proceedings/xmlsec/archive/"
-"Conference Proceedings","dg.o: Digital Government Research","","","","2000 (May 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/dg.o/","http://portal.acm.org/proceedings/dg.o/archive/"
-"Conference Proceedings","e-Energy: Energy-Efficient Computing and Networking","","","","2010 (April 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/e-energy/","http://portal.acm.org/proceedings/e-energy/archive/"
-"Conference Proceedings","e-Forensics: Forensic Applications and Techniques in Telecommunications, Information, and Multimedia","","","","2008 (January 2008)","2008 (January 2008)","http://portal.acm.org/proceedings/e-forensics/","http://portal.acm.org/proceedings/e-forensics/archive/"
-"Conference Proceedings","eConf: e-Services and e-Systems","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/econf/","http://portal.acm.org/proceedings/econf/archive/"
-"Conference Proceedings","eCrime: eCrime Researchers Summit","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/ecrime/","http://portal.acm.org/proceedings/ecrime/archive/"
-"Conference Proceedings","eHeritage: eHeritage and Digital Art Preservation","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/eheritage/","http://portal.acm.org/proceedings/eheritage/archive/"
-"Conference Proceedings","eclipse: eclipse Technology eXchange","","","","2003 (October 2003)","2007 (October 2007)","http://portal.acm.org/proceedings/eclipse/","http://portal.acm.org/proceedings/eclipse/archive/"
-"Conference Proceedings","i-CREATe: Rehabilitation Engineering & Assistive Technology","","","","2007 (April 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/i-create/","http://portal.acm.org/proceedings/i-create/archive/"
-"Conference Proceedings","iNEWS: Improving Non English Web Searching","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/inews/","http://portal.acm.org/proceedings/inews/archive/"
-"Conference Proceedings","iiWAS: Information Integration and Web-based Applications & Services","","","","2008 (November 2008)","2012 (December 2012)","http://portal.acm.org/proceedings/iiwas/","http://portal.acm.org/proceedings/iiwas/archive/"
-"Conference Proceedings","mmCom: mmWave communications","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/mmcom/","http://portal.acm.org/proceedings/mmcom/archive/"
-"Conference Proceedings","sOc-EUSAI: Smart Objects and Ambient Intelligence","","","","2005 (October 2005)","2005 (October 2005)","http://portal.acm.org/proceedings/soc-eusai/","http://portal.acm.org/proceedings/soc-eusai/archive/"
-"Conference Proceedings","years of DAC: Years of DAC","","","","1988 (June 1988)","1988 (June 1988)","http://portal.acm.org/proceedings/yearsofdac/","http://portal.acm.org/proceedings/yearsofdac/archive/"
\ No newline at end of file
diff --git a/server/files/sounds/original/normal_contacts-1491835417569.csv b/server/files/sounds/original/normal_contacts-1491835417569.csv
deleted file mode 100644 (file)
index 7dff9cc..0000000
+++ /dev/null
@@ -1,1136 +0,0 @@
-firstName,lastName,cf_3,phone,mobile,PUBLICATION RANGE: START,PUBLICATION RANGE: LATEST PUBLISHED,SHORTCUT URL,ARCHIVE URL
-Journals,ACM Computing Surveys ,ACM Comput. Surv.,0360-0300,1557-7341,Volume 1 Issue 1 (March 1969),Volume 46 Issue 1 (October 2013),http://dl.acm.org/citation.cfm?id=J204,http://dl.acm.org/citation.cfm?id=J204&picked=prox
-Journals,ACM Journal of Computer Documentation ,ACM J. Comput. Doc.,1527-6805,1557-9441,Volume 24 Issue 1 (Feb. 1, 2000),Volume 26 Issue 4 (November 2002),http://dl.acm.org/citation.cfm?id=J24,http://dl.acm.org/citation.cfm?id=J24&picked=prox
-Journals,ACM Journal on Emerging Technologies in Computing Systems ,J. Emerg. Technol. Comput. Syst.,1550-4832,1550-4840,Volume 1 Issue 1 (April 2005),Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics,http://dl.acm.org/citation.cfm?id=J967,http://dl.acm.org/citation.cfm?id=J967&picked=prox
-Journals,Journal of Data and Information Quality ,J. Data and Information Quality,1936-1955,1936-1963,Volume 1 Issue 1 (June 2009),Volume 4 Issue 3 (May 2013),http://dl.acm.org/citation.cfm?id=J1191,http://dl.acm.org/citation.cfm?id=J1191&picked=prox
-Journals,Journal of Experimental Algorithmics ,J. Exp. Algorithmics,1084-6654,1084-6654,Volume 1 (1996),Volume 18 (April 2013),http://dl.acm.org/citation.cfm?id=J430,http://dl.acm.org/citation.cfm?id=J430&picked=prox
-Journals,Journal of the ACM ,J. ACM,0004-5411,1557-735X,Volume 1 Issue 1 (Jan. 1954),Volume 60 Issue 6 (November 2013),http://dl.acm.org/citation.cfm?id=J401,http://dl.acm.org/citation.cfm?id=J401&picked=prox
-Journals,Journal on Computing and Cultural Heritage ,J. Comput. Cult. Herit.,1556-4673,1556-4711,Volume 1 Issue 1 (June 2008),Volume 6 Issue 3 (July 2013),http://dl.acm.org/citation.cfm?id=J1157,http://dl.acm.org/citation.cfm?id=J1157&picked=prox
-Journals,Journal on Educational Resources in Computing ,J. Educ. Resour. Comput.,1531-4278,1531-4278,Volume 1 Issue 1es (March 2001),Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom,http://dl.acm.org/citation.cfm?id=J814,http://dl.acm.org/citation.cfm?id=J814&picked=prox
-Transactions,ACM Letters on Programming Languages and Systems ,ACM Lett. Program. Lang. Syst.,1057-4514,1557-7384,Volume 1 Issue 1 (March 1992),Volume 2 Issue 1-4 (March&#8211;Dec. 1993),http://dl.acm.org/citation.cfm?id=J513,http://dl.acm.org/citation.cfm?id=J513&picked=prox
-Transactions,ACM Transactions on Accessible Computing ,ACM Trans. Access. Comput.,1936-7228,1936-7236,Volume 1 Issue 1 (May 2008),Volume 5 Issue 2 (October 2013),http://dl.acm.org/citation.cfm?id=J1156,http://dl.acm.org/citation.cfm?id=J1156&picked=prox
-Transactions,ACM Transactions on Algorithms ,ACM Trans. Algorithms,1549-6325,1549-6333,Volume 1 Issue 1 (July 2005),Volume 9 Issue 4 (September 2013),http://dl.acm.org/citation.cfm?id=J982,http://dl.acm.org/citation.cfm?id=J982&picked=prox
-Transactions,ACM Transactions on Applied Perception ,ACM Trans. Appl. Percept.,1544-3558,1544-3965,Volume 1 Issue 1 (July 2004),Volume 10 Issue 4 (October 2013),http://dl.acm.org/citation.cfm?id=J932,http://dl.acm.org/citation.cfm?id=J932&picked=prox
-Transactions,ACM Transactions on Architecture and Code Optimization ,ACM Trans. Archit. Code Optim.,1544-3566,1544-3973,Volume 1 Issue 1 (March 2004),Volume 10 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J924,http://dl.acm.org/citation.cfm?id=J924&picked=prox
-Transactions,ACM Transactions on Asian Language Information Processing ,,1530-0226,1558-3430,Volume 1 Issue 1 (March 2002),Volume 12 Issue 4 (October 2013),http://dl.acm.org/citation.cfm?id=J820,http://dl.acm.org/citation.cfm?id=J820&picked=prox
-Transactions,ACM Transactions on Autonomous and Adaptive Systems ,ACM Trans. Auton. Adapt. Syst.,1556-4665,1556-4703,Volume 1 Issue 1 (September 2006),Volume 8 Issue 3 (September 2013),http://dl.acm.org/citation.cfm?id=J1010,http://dl.acm.org/citation.cfm?id=J1010&picked=prox
-Transactions,ACM Transactions on Computation Theory ,ACM Trans. Comput. Theory,1942-3454,1942-3462,Volume 1 Issue 1 (February 2009),Volume 5 Issue 4 (November 2013),http://dl.acm.org/citation.cfm?id=J1190,http://dl.acm.org/citation.cfm?id=J1190&picked=prox
-Transactions,ACM Transactions on Computational Logic ,ACM Trans. Comput. Logic,1529-3785,1557-945X,Volume 1 Issue 1 (July 2000),Volume 14 Issue 4 (November 2013),http://dl.acm.org/citation.cfm?id=J773,http://dl.acm.org/citation.cfm?id=J773&picked=prox
-Transactions,ACM Transactions on Computer Systems ,ACM Trans. Comput. Syst.,0734-2071,1557-7333,Volume 1 Issue 1 (Feb. 1983),Volume 31 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J774,http://dl.acm.org/citation.cfm?id=J774&picked=prox
-Transactions,ACM Transactions on Computer-Human Interaction ,ACM Trans. Comput.-Hum. Interact.,1073-0516,1557-7325,Volume 1 Issue 1 (March 1994),Volume 20 Issue 5 (November 2013),http://dl.acm.org/citation.cfm?id=J756,http://dl.acm.org/citation.cfm?id=J756&picked=prox
-Transactions,ACM Transactions on Computing Education ,Trans. Comput. Educ.,,1946-6226,Volume 1 Issue 1es (March 2001),Volume 13 Issue 4 (November 2013),http://dl.acm.org/citation.cfm?id=J1193,http://dl.acm.org/citation.cfm?id=J1193&picked=prox
-Transactions,ACM Transactions on Database Systems ,ACM Trans. Database Syst.,0362-5915,1557-4644,Volume 1 Issue 1 (March 1976),Volume 38 Issue 4 (November 2013) - Invited papers issue,http://dl.acm.org/citation.cfm?id=J777,http://dl.acm.org/citation.cfm?id=J777&picked=prox
-Transactions,ACM Transactions on Design Automation of Electronic Systems ,ACM Trans. Des. Autom. Electron. Syst.,1084-4309,1557-7309,Volume 1 Issue 1 (Jan. 1996),Volume 19 Issue 1 (December 2013),http://dl.acm.org/citation.cfm?id=J776,http://dl.acm.org/citation.cfm?id=J776&picked=prox
-Transactions,ACM Transactions on Economics and Computation,ACM Trans. Econ. Comput.,2167-8375,2167-8383,Volume 1 Issue 1 (January 2013),Volume 1 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J1359,http://dl.acm.org/citation.cfm?id=J1359&picked=prox
-Transactions,ACM Transactions on Embedded Computing Systems ,ACM Trans. Embed. Comput. Syst.,1539-9087,1558-3465,Volume 1 Issue 1 (November 2002),Volume 13 Issue 3 (December 2013),http://dl.acm.org/citation.cfm?id=J840,http://dl.acm.org/citation.cfm?id=J840&picked=prox
-Transactions,ACM Transactions on Graphics ,ACM Trans. Graph.,0730-0301,1557-7368,Volume 1 Issue 1 (Jan. 1982),Volume 32 Issue 6 (November 2013),http://dl.acm.org/citation.cfm?id=J778,http://dl.acm.org/citation.cfm?id=J778&picked=prox
-Transactions,ACM Transactions on Information Systems ,ACM Trans. Inf. Syst.,1046-8188,1558-2868,Volume 1 Issue 1 (Jan. 1983),Volume 31 Issue 4 (November 2013),http://dl.acm.org/citation.cfm?id=J779,http://dl.acm.org/citation.cfm?id=J779&picked=prox
-Transactions,ACM Transactions on Information and System Security ,ACM Trans. Inf. Syst. Secur.,1094-9224,1557-7406,Volume 1 Issue 1 (Nov. 1998),Volume 16 Issue 3 (November 2013),http://dl.acm.org/citation.cfm?id=J789,http://dl.acm.org/citation.cfm?id=J789&picked=prox
-Transactions,ACM Transactions on Intelligent Systems and Technology ,ACM Trans. Intell. Syst. Technol.,2157-6904,2157-6912,Volume 1 Issue 1 (October 2010),Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining,http://dl.acm.org/citation.cfm?id=J1318,http://dl.acm.org/citation.cfm?id=J1318&picked=prox
-Transactions,ACM Transactions on Interactive Intelligent Systems ,ACM Trans. Interact. Intell. Syst.,2160-6455,2160-6463,Volume 1 Issue 1 (October 2011),Volume 3 Issue 3 (October 2013),http://dl.acm.org/citation.cfm?id=J1341,http://dl.acm.org/citation.cfm?id=J1341&picked=prox
-Transactions,ACM Transactions on Internet Technology ,ACM Trans. Internet Technol.,1533-5399,1557-6051,Volume 1 Issue 1 (Aug. 2001),Volume 13 Issue 2 (December 2013),http://dl.acm.org/citation.cfm?id=J780,http://dl.acm.org/citation.cfm?id=J780&picked=prox
-Transactions,ACM Transactions on Knowledge Discovery from Data ,ACM Trans. Knowl. Discov. Data,1556-4681,1556-472X,Volume 1 Issue 1 (March 2007),Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012,http://dl.acm.org/citation.cfm?id=J1054,http://dl.acm.org/citation.cfm?id=J1054&picked=prox
-Transactions,ACM Transactions on Management Information Systems ,ACM Trans. Manage. Inf. Syst.,2158-656X,2158-6578,Volume 1 Issue 1 (December 2010),Volume 4 Issue 3 (October 2013),http://dl.acm.org/citation.cfm?id=J1320,http://dl.acm.org/citation.cfm?id=J1320&picked=prox
-Transactions,ACM Transactions on Mathematical Software ,ACM Trans. Math. Softw.,0098-3500,1557-7295,Volume 1 Issue 1 (March 1975),Volume 40 Issue 1 (September 2013),http://dl.acm.org/citation.cfm?id=J782,http://dl.acm.org/citation.cfm?id=J782&picked=prox
-Transactions,ACM Transactions on Modeling and Computer Simulation ,ACM Trans. Model. Comput. Simul.,1049-3301,1558-1195,Volume 1 Issue 1 (Jan. 1991),Volume 23 Issue 4 (October 2013),http://dl.acm.org/citation.cfm?id=J781,http://dl.acm.org/citation.cfm?id=J781&picked=prox
-Transactions,ACM Transactions on Multimedia Computing, Communications, and Applications ,ACM Trans. Multimedia Comput. Commun. Appl.,1551-6857,1551-6865,Volume 1 Issue 1 (February 2005),Volume 10 Issue 1 (December 2013),http://dl.acm.org/citation.cfm?id=J961,http://dl.acm.org/citation.cfm?id=J961&picked=prox
-Transactions,ACM Transactions on Programming Languages and Systems ,ACM Trans. Program. Lang. Syst.,0164-0925,1558-4593,Volume 1 Issue 1 (July 1979),Volume 35 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J783,http://dl.acm.org/citation.cfm?id=J783&picked=prox
-Transactions,ACM Transactions on Reconfigurable Technology and Systems ,ACM Trans. Reconfigurable Technol. Syst.,1936-7406,1936-7414,Volume 1 Issue 1 (March 2008),Volume 6 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J1151,http://dl.acm.org/citation.cfm?id=J1151&picked=prox
-Transactions,ACM Transactions on Sensor Networks ,ACM Trans. Sen. Netw.,1550-4859,1550-4867,Volume 1 Issue 1 (August 2005),Volume 10 Issue 1 (November 2013),http://dl.acm.org/citation.cfm?id=J981,http://dl.acm.org/citation.cfm?id=J981&picked=prox
-Transactions,ACM Transactions on Software Engineering and Methodology ,ACM Trans. Softw. Eng. Methodol.,1049-331X,1557-7392,Volume 1 Issue 1 (Jan. 1992),Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance,http://dl.acm.org/citation.cfm?id=J790,http://dl.acm.org/citation.cfm?id=J790&picked=prox
-Transactions,ACM Transactions on Speech and Language Processing ,ACM Trans. Speech Lang. Process.,1550-4875,1550-4883,Volume 1 (November 2004),Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2,http://dl.acm.org/citation.cfm?id=J957,http://dl.acm.org/citation.cfm?id=J957&picked=prox
-Transactions,ACM Transactions on Storage ,Trans. Storage,1553-3077,1553-3093,Volume 1 Issue 1 (February 2005),Volume 9 Issue 4 (November 2013),http://dl.acm.org/citation.cfm?id=J960,http://dl.acm.org/citation.cfm?id=J960&picked=prox
-Transactions,ACM Transactions on the Web ,ACM Trans. Web,1559-1131,1559-114X,Volume 1 Issue 1 (May 2007),Volume 7 Issue 4 (October 2013),http://dl.acm.org/citation.cfm?id=J1062,http://dl.acm.org/citation.cfm?id=J1062&picked=prox
-Transactions,IEEE/ACM Transactions on Computational Biology and Bioinformatics ,IEEE/ACM Trans. Comput. Biol. Bioinformatics,1545-5963,,Volume 1 Issue 1 (January 2004),Volume 10 Issue 3 (May 2013),http://dl.acm.org/citation.cfm?id=J954,http://dl.acm.org/citation.cfm?id=J954&picked=prox
-Transactions,IEEE/ACM Transactions on Networking ,IEEE/ACM Trans. Netw.,1063-6692,,Volume 1 Issue 1 (Feb. 1993),Volume 21 Issue 4 (August 2013),http://dl.acm.org/citation.cfm?id=J771,http://dl.acm.org/citation.cfm?id=J771&picked=prox
-Magazines,ACM Inroads,ACM Inroads,2153-2184,2153-2192,Volume 1 Issue 1 (March 2010),Volume 4 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J1268,http://dl.acm.org/citation.cfm?id=J1268&picked=prox
-Magazines,Communications of the ACM,Commun. ACM,0001-0782,1557-7317,Volume 1 Issue 1 (Jan. 1958),Volume 57 Issue 1 (January 2014),http://dl.acm.org/citation.cfm?id=J79,http://dl.acm.org/citation.cfm?id=J79&picked=prox
-Magazines,Computers in Entertainment ,Comput. Entertain.,,1544-3574,Volume 1 Issue 1 (October 2003),Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment,http://dl.acm.org/citation.cfm?id=J912,http://dl.acm.org/citation.cfm?id=J912&picked=prox
-Magazines,Queue,Queue,1542-7730,1542-7749,Volume 1 Issue 1 (March 2003),Volume 11 Issue 12 (December 2013) - Large-Scale Implementations,http://dl.acm.org/citation.cfm?id=J882,http://dl.acm.org/citation.cfm?id=J882&picked=prox
-Magazines,StandardView,StandardView,1067-9936,1557-7376,Volume 1 Issue 1 (Sept. 1993),Volume 6 Issue 4 (Dec. 1998),http://dl.acm.org/citation.cfm?id=J741,http://dl.acm.org/citation.cfm?id=J741&picked=prox
-Magazines,Ubiquity,Ubiquity,,1530-2180,Volume 2000 Issue February (February 1 - February 28, 2000),Volume 2013 Issue December (December 2013),http://dl.acm.org/citation.cfm?id=J793,http://dl.acm.org/citation.cfm?id=J793&picked=prox
-Magazines,XRDS: Crossroads, The ACM Magazine for Students,XRDS,1528-4972,1528-4980,Volume 1 Issue 1 (September 1994),Volume 20 Issue 2 (Winter 2013),http://dl.acm.org/citation.cfm?id=J1271,http://dl.acm.org/citation.cfm?id=J1271&picked=prox
-Magazines,eLearn,eLearn,,1535-394X,Volume 2001 Issue 5 (May 2001),Volume 2013 Issue 12 (12-01-2013) - December 2013,http://dl.acm.org/citation.cfm?id=J815,http://dl.acm.org/citation.cfm?id=J815&picked=prox
-Magazines,intelligence,Intelligence,1523-8822,1557-9425,Issue 24 (October 1970),Volume 12 Issue 4 (Winter 2001),http://dl.acm.org/citation.cfm?id=J372,http://dl.acm.org/citation.cfm?id=J372&picked=prox
-Magazines,interactions,interactions,1072-5520,1558-3449,Volume 1 Issue 1 (Jan. 1994),Volume 20 Issue 6 (November + December 2013),http://dl.acm.org/citation.cfm?id=J373,http://dl.acm.org/citation.cfm?id=J373&picked=prox
-Magazines,netWorker,netWorker,1091-3556,1558-3473,Volume 1 Issue 1 (March/April 1997),Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics,http://dl.acm.org/citation.cfm?id=J582,http://dl.acm.org/citation.cfm?id=J582&picked=prox
-Publications by Affiliated Organizations,ALGOL Bulletin,ALGOL Bull.,0084-6198,,Issue 1 (Mar. 1959),Issue 52 (Aug. 1988),http://dl.acm.org/citation.cfm?id=J33,http://dl.acm.org/citation.cfm?id=J33&picked=prox
-Publications by Affiliated Organizations,Computational Linguistics,Comput. Linguist.,0891-2017,,Volume 6 Issue 1 (January-March 1980),Volume 39 Issue 2 (June 2013),http://dl.acm.org/citation.cfm?id=J25,http://dl.acm.org/citation.cfm?id=J25&picked=prox
-Publications by Affiliated Organizations,Evolutionary Computation,Evol. Comput.,1063-6560,1530-9304,Volume 1 Issue 1 (Spring 1993),Volume 21 Issue 4 (Winter 2013),http://dl.acm.org/citation.cfm?id=J277,http://dl.acm.org/citation.cfm?id=J277&picked=prox
-Publications by Affiliated Organizations,Journal of Computing Sciences in Colleges,J. Comput. Sci. Coll.,1937-4771,1937-4763,Volume 6 Issue 5 (May 1991),Volume 29 Issue 3 (January 2014),http://dl.acm.org/citation.cfm?id=J420,http://dl.acm.org/citation.cfm?id=J420&picked=prox
-Publications by Affiliated Organizations,Journal of Usability Studies,J. Usability Studies,1931-3357,,Volume 5 Issue 4 (August 2010),Volume 6 Issue 3 (May 2011),http://dl.acm.org/citation.cfm?id=J1340,http://dl.acm.org/citation.cfm?id=J1340&picked=prox
-Publications by Affiliated Organizations,Linux Journal,Linux J.,1075-3583,,Volume 1994 Issue 1es (March 1994),Volume 2013 Issue 235 (November 2013),http://dl.acm.org/citation.cfm?id=J508,http://dl.acm.org/citation.cfm?id=J508&picked=prox
-Publications by Affiliated Organizations,Mobile Networks and Applications,Mob. Netw. Appl.,1383-469X,,Volume 1 Issue 1 (Aug. 1996),Volume 18 Issue 5 (October   2013),http://dl.acm.org/citation.cfm?id=J547,http://dl.acm.org/citation.cfm?id=J547&picked=prox
-Publications by Affiliated Organizations,Personal and Ubiquitous Computing,Personal Ubiquitous Comput.,1617-4909,,Volume 4 Issue 4 (August 2000),Volume 17 Issue 7 (October   2013),http://dl.acm.org/citation.cfm?id=J822,http://dl.acm.org/citation.cfm?id=J822&picked=prox
-Publications by Affiliated Organizations,Proceedings of the VLDB Endowment,Proc. VLDB Endow.,2150-8097,,Volume 1 Issue 1 (August 2008),Volume 6 Issue 14 (September 2013),http://dl.acm.org/citation.cfm?id=J1174,http://dl.acm.org/citation.cfm?id=J1174&picked=prox
-Publications by Affiliated Organizations,The Journal of Machine Learning Research,J. Mach. Learn. Res.,1532-4435,1533-7928,Volume 1 (9/1/2001),Volume 14 Issue 1 (January 2013),http://dl.acm.org/citation.cfm?id=J832,http://dl.acm.org/citation.cfm?id=J832&picked=prox
-Publications by Affiliated Organizations,The VLDB Journal &#8212; The International Journal on Very Large Data Bases,The VLDB Journal,1066-8888,,Volume 1 Issue 1 (July 1992),Volume 22 Issue 5 (October   2013),http://dl.acm.org/citation.cfm?id=J869,http://dl.acm.org/citation.cfm?id=J869&picked=prox
-Publications by Affiliated Organizations,Wireless Networks,Wirel. Netw.,1022-0038,,Volume 1 Issue 1 (Feb. 1995),Volume 19 Issue 7 (October   2013),http://dl.acm.org/citation.cfm?id=J804,http://dl.acm.org/citation.cfm?id=J804&picked=prox
-SIG Newsletters,3C ON-LINE,3C ON-LINE,1078-2192,,Volume 1 Issue 1 (Oct. 1994),Volume 4 Issue 4 (Oct., 1997),http://dl.acm.org/citation.cfm?id=J685,http://dl.acm.org/citation.cfm?id=J685&picked=prox
-SIG Newsletters,ACM Communications in Computer Algebra,ACM Commun. Comput. Algebra,1932-2240,,Issue 8 (December 1967),Volume 47 Issue 1/2 (March/June 2013),http://dl.acm.org/citation.cfm?id=J1000,http://dl.acm.org/citation.cfm?id=J1000&picked=prox
-SIG Newsletters,ACM Lisp Bulletin,Lisp Bull.,,,Volume 4 Issue 9 (September 1969),Issue 3 (December 1979),http://dl.acm.org/citation.cfm?id=J1166,http://dl.acm.org/citation.cfm?id=J1166&picked=prox
-SIG Newsletters,ACM SIGACCESS Accessibility and Computing,SIGACCESS Access. Comput.,1558-2337,1558-1187,Issue 77-78 (Sept. 2003 - Jan. 2004),Issue 107 (September 2013),http://dl.acm.org/citation.cfm?id=J956,http://dl.acm.org/citation.cfm?id=J956&picked=prox
-SIG Newsletters,ACM SIGACT News,SIGACT News,0163-5700,,Issue 1 (April 1969),Volume 44 Issue 4 (December 2013),http://dl.acm.org/citation.cfm?id=J697,http://dl.acm.org/citation.cfm?id=J697&picked=prox
-SIG Newsletters,ACM SIGAPL APL Quote Quad,SIGAPL APL Quote Quad,0163-6006,,Volume 3 Issue 1 (June 1971),Volume 35 Issue 4 (December 2007),http://dl.acm.org/citation.cfm?id=J46,http://dl.acm.org/citation.cfm?id=J46&picked=prox
-SIG Newsletters,ACM SIGAPP Applied Computing Review,SIGAPP Appl. Comput. Rev.,1559-6915,1931-0161,Volume 1 Issue 1 (Winter 1993),Volume 13 Issue 3 (September 2013),http://dl.acm.org/citation.cfm?id=J693,http://dl.acm.org/citation.cfm?id=J693&picked=prox
-SIG Newsletters,ACM SIGARCH Computer Architecture News,SIGARCH Comput. Archit. News,0163-5964,,Volume 1 Issue 1 (January 1972),Volume 41 Issue 3 (June 2013) - ICSA '13,http://dl.acm.org/citation.cfm?id=J89,http://dl.acm.org/citation.cfm?id=J89&picked=prox
-SIG Newsletters,ACM SIGART Bulletin,SIGART Bull.,0163-5719,,Issue 24 (October 1970),Volume 12 Issue 4 (Winter 2001),http://dl.acm.org/citation.cfm?id=J686,http://dl.acm.org/citation.cfm?id=J686&picked=prox
-SIG Newsletters,ACM SIGAda Ada Letters,Ada Lett.,1094-3641,,Volume I Issue 1 (July-August 1981),Volume 33 Issue 2 (August 2013),http://dl.acm.org/citation.cfm?id=J32,http://dl.acm.org/citation.cfm?id=J32&picked=prox
-SIG Newsletters,ACM SIGBED Review,SIGBED Rev.,,1551-3688,Volume 1 Issue 1 (April 2004),Volume 10 Issue 3 (October 2013),http://dl.acm.org/citation.cfm?id=J994,http://dl.acm.org/citation.cfm?id=J994&picked=prox
-SIG Newsletters,ACM SIGBIO Newsletter,SIGBIO Newsl.,0163-5697,,Volume 1 Issue 2 (October 1976),Volume 21 Issue 1 (April 2001),http://dl.acm.org/citation.cfm?id=J698,http://dl.acm.org/citation.cfm?id=J698&picked=prox
-SIG Newsletters,ACM SIGBioinformatics Record,ACM SIGBioinformatics Rec.,2331-9291,2159-1210,Volume 1 Issue 1 (January 2011),Volume 3 Issue 3 (September 2013),http://dl.acm.org/citation.cfm?id=J1323,http://dl.acm.org/citation.cfm?id=J1323&picked=prox
-SIG Newsletters,ACM SIGCAPH Computers and the Physically Handicapped,SIGCAPH Comput. Phys. Handicap.,0163-5727,,Issue 5 (Fall 1971),Issue 76 (June 2003),http://dl.acm.org/citation.cfm?id=J298,http://dl.acm.org/citation.cfm?id=J298&picked=prox
-SIG Newsletters,ACM SIGCAS Computers and Society,SIGCAS Comput. Soc.,0095-2737,,Volume 1 Issue 2 (April 1970),Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry,http://dl.acm.org/citation.cfm?id=J198,http://dl.acm.org/citation.cfm?id=J198&picked=prox
-SIG Newsletters,ACM SIGCHI Bulletin,SIGCHI Bull.,0736-6906,,Volume 14 Issue 1 (July 1982),Volume 32 Issue 2 (April 2000),http://dl.acm.org/citation.cfm?id=J687,http://dl.acm.org/citation.cfm?id=J687&picked=prox
-SIG Newsletters,ACM SIGCHI Bulletin - a supplement to <i>interactions</i>,SIGCHI Bull.: suppl. <i>interactions</i>,0736-6906,1558-1217,Volume 2000 (July/August 2000),Volume 2003 (May-June 2003),http://dl.acm.org/citation.cfm?id=J122,http://dl.acm.org/citation.cfm?id=J122&picked=prox
-SIG Newsletters,ACM SIGCOMM Computer Communication Review,SIGCOMM Comput. Commun. Rev.,0146-4833,,Volume 1 Issue 2 (March 1970),Volume 43 Issue 5 (October 2013),http://dl.acm.org/citation.cfm?id=J101,http://dl.acm.org/citation.cfm?id=J101&picked=prox
-SIG Newsletters,ACM SIGCPR Computer Personnel,SIGCPR Comput. Pers.,0160-2497,,Volume 2 Issue 1 (July 1964),Volume 20 Issue 4 (October 1999),http://dl.acm.org/citation.cfm?id=J188,http://dl.acm.org/citation.cfm?id=J188&picked=prox
-SIG Newsletters,ACM SIGCSE Bulletin,SIGCSE Bull.,0097-8418,,Volume 1 Issue 1 (February 1969),Volume 45 Issue 4 (October 2013),http://dl.acm.org/citation.cfm?id=J688,http://dl.acm.org/citation.cfm?id=J688&picked=prox
-SIG Newsletters,ACM SIGCSIM Installation Management Review,Install Manag. Rev.,0163-5972,,Issue 1 (August 1969),Volume 6 Issue 4 (December 1977),http://dl.acm.org/citation.cfm?id=J959,http://dl.acm.org/citation.cfm?id=J959&picked=prox
-SIG Newsletters,ACM SIGCUE Outlook,SIGCUE Outlook,0163-5735,,Volume 4 Issue 1 (February 1970),Volume 27 Issue 3 (September 2001),http://dl.acm.org/citation.cfm?id=J678,http://dl.acm.org/citation.cfm?id=J678&picked=prox
-SIG Newsletters,ACM SIGDA Newsletter,SIGDA Newsl.,0163-5743,,Volume 1 Issue 1 (January 1971),Volume 40 Issue 9 (September 2010),http://dl.acm.org/citation.cfm?id=J700,http://dl.acm.org/citation.cfm?id=J700&picked=prox
-SIG Newsletters,ACM SIGDOC Asterisk Journal of Computer Documentation,SIGDOC Asterisk J. Comput. Doc.,0731-1001,,Volume 2 Issue 5 (October 1975),Volume 12 Issue 4 (December 2011),http://dl.acm.org/citation.cfm?id=J62,http://dl.acm.org/citation.cfm?id=J62&picked=prox
-SIG Newsletters,ACM SIGEVOlution,SIGEVOlution,,1931-8499,Volume 1 Issue 1 (April 2006),Volume 6 Issue 1 (July 2012),http://dl.acm.org/citation.cfm?id=J999,http://dl.acm.org/citation.cfm?id=J999&picked=prox
-SIG Newsletters,ACM SIGFORTH Newsletter,SIGFORTH Newsl.,1047-4544,,Volume 1 Issue 1 (Spring 1989),Volume 4 Issue 4 (Dec. 1994),http://dl.acm.org/citation.cfm?id=J696,http://dl.acm.org/citation.cfm?id=J696&picked=prox
-SIG Newsletters,ACM SIGGRAPH Computer Graphics,SIGGRAPH Comput. Graph.,0097-8930,,Volume 3 Issue 3 (Fal 1969),Volume 45 Issue 1 (February 2011),http://dl.acm.org/citation.cfm?id=J166,http://dl.acm.org/citation.cfm?id=J166&picked=prox
-SIG Newsletters,ACM SIGGROUP Bulletin,SIGGROUP Bull.,,,Volume 18 Issue 1 (April 1997),Volume 25 Issue 2 (February 2005) - Special issue on virtual communities,http://dl.acm.org/citation.cfm?id=J702,http://dl.acm.org/citation.cfm?id=J702&picked=prox
-SIG Newsletters,ACM SIGHIT Record,SIGHIT Rec.,,2158-8813,Volume 1 Issue 1 (March 2011),Volume 2 Issue 2 (September 2012),http://dl.acm.org/citation.cfm?id=J1322,http://dl.acm.org/citation.cfm?id=J1322&picked=prox
-SIG Newsletters,ACM SIGHPC Connect,ACM SIGHPC Connect,,2168-135X,Volume 1 Issue 1 (June 2012),Volume 2 Issue 1 (October 2013),http://dl.acm.org/citation.cfm?id=J1356,http://dl.acm.org/citation.cfm?id=J1356&picked=prox
-SIG Newsletters,ACM SIGICE Bulletin,SIGICE Bull.,0893-2875,,Volume 19 Issue 3 (Feb. 1994),Volume 23 Issue 2 (Oct. 1997),http://dl.acm.org/citation.cfm?id=J694,http://dl.acm.org/citation.cfm?id=J694&picked=prox
-SIG Newsletters,ACM SIGIR Forum,SIGIR Forum,0163-5840,,Volume 6 Issue 2 (Summer 1971),Volume 47 Issue 1 (June 2013),http://dl.acm.org/citation.cfm?id=J701,http://dl.acm.org/citation.cfm?id=J701&picked=prox
-SIG Newsletters,ACM SIGITE Newsletter,SIGITE Newsl.,2166-1685,1550-1469,Volume 2 Issue 1 (Spring 2004),Volume 9 Issue 2 (December 2012),http://dl.acm.org/citation.cfm?id=J977,http://dl.acm.org/citation.cfm?id=J977&picked=prox
-SIG Newsletters,ACM SIGKDD Explorations Newsletter,SIGKDD Explor. Newsl.,1931-0145,1931-0153,Volume 1 Issue 1 (June 1999),Volume 14 Issue 2 (December 2012),http://dl.acm.org/citation.cfm?id=J721,http://dl.acm.org/citation.cfm?id=J721&picked=prox
-SIG Newsletters,ACM SIGLASH Newsletter,SIGLASH Newsl.,0036-147X,1931-1095,Volume 10 Issue 1-2 (December 1976/March 1977),Volume 14 Issue 1-2 (March/June 1981),http://dl.acm.org/citation.cfm?id=J958,http://dl.acm.org/citation.cfm?id=J958&picked=prox
-SIG Newsletters,ACM SIGMAP Bulletin,SIGMAP Bull.,0163-5786,1931-1184,Issue 5 (June 1969),Issue 32 (April 1983),http://dl.acm.org/citation.cfm?id=J952,http://dl.acm.org/citation.cfm?id=J952&picked=prox
-SIG Newsletters,ACM SIGMETRICS Performance Evaluation Review,SIGMETRICS Perform. Eval. Rev.,0163-5999,,Volume 1 Issue 1 (March 1972),Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013),http://dl.acm.org/citation.cfm?id=J618,http://dl.acm.org/citation.cfm?id=J618&picked=prox
-SIG Newsletters,ACM SIGMICRO Newsletter,SIGMICRO Newsl.,1050-916X,,Volume 2 Issue 4 (January 1972),Volume 23 Issue 1-2 (Dec. 1992),http://dl.acm.org/citation.cfm?id=J703,http://dl.acm.org/citation.cfm?id=J703&picked=prox
-SIG Newsletters,ACM SIGMINI Newsletter,SIGMINI Newsl.,0163-576X,,Volume 1 Issue 1 (July 1975),Volume 4 Issue 4 (August 1978),http://dl.acm.org/citation.cfm?id=J951,http://dl.acm.org/citation.cfm?id=J951&picked=prox
-SIG Newsletters,ACM SIGMIS Database,SIGMIS Database,0095-0033,,Volume 1 Issue 2 (Summer 1969),Volume 44 Issue 4 (November 2013),http://dl.acm.org/citation.cfm?id=J219,http://dl.acm.org/citation.cfm?id=J219&picked=prox
-SIG Newsletters,ACM SIGMOBILE Mobile Computing and Communications Review,SIGMOBILE Mob. Comput. Commun. Rev.,1559-1662,1931-1222,Volume 1 Issue 1 (April 1997),Volume 17 Issue 4 (October 2013),http://dl.acm.org/citation.cfm?id=J548,http://dl.acm.org/citation.cfm?id=J548&picked=prox
-SIG Newsletters,ACM SIGMOD Record,SIGMOD Rec.,0163-5808,,Volume 1 Issue 1 (August 1969),Volume 42 Issue 3 (September 2013),http://dl.acm.org/citation.cfm?id=J689,http://dl.acm.org/citation.cfm?id=J689&picked=prox
-SIG Newsletters,ACM SIGMultimedia Records,SIGMultimedia Rec.,,1947-4598,Volume 1 Issue 1 (March 2009),Volume 5 Issue 3 (September 2013),http://dl.acm.org/citation.cfm?id=J1232,http://dl.acm.org/citation.cfm?id=J1232&picked=prox
-SIG Newsletters,ACM SIGNUM Newsletter,SIGNUM Newsl.,0163-5778,,Volume 1 Issue 1 (June 1966),Volume 33 Issue 2 (April 1, 1998),http://dl.acm.org/citation.cfm?id=J690,http://dl.acm.org/citation.cfm?id=J690&picked=prox
-SIG Newsletters,ACM SIGOA Newsletter,ACM SIGOA Newsletter,0737-819X,,Volume 1 Issue 1 (March 1980),Volume 7 Issue 1 (Spring 1986),http://dl.acm.org/citation.cfm?id=J915,http://dl.acm.org/citation.cfm?id=J915&picked=prox
-SIG Newsletters,ACM SIGOIS Bulletin,SIGOIS Bull.,0894-0819,,Volume 7 Issue 2-3 (Summer-Fall 1986),Volume 17 Issue 3 (Dec. 1996),http://dl.acm.org/citation.cfm?id=J705,http://dl.acm.org/citation.cfm?id=J705&picked=prox
-SIG Newsletters,ACM SIGOPS Operating Systems Review,SIGOPS Oper. Syst. Rev.,0163-5980,,Volume 3 Issue 1 (February 1969),Volume 47 Issue 3 (December 2013),http://dl.acm.org/citation.cfm?id=J597,http://dl.acm.org/citation.cfm?id=J597&picked=prox
-SIG Newsletters,ACM SIGPC Notes,SIGPC Note.,0163-5816,,Volume 1 Issue 2 (Summer 1978),Volume 5 Issue 1-2 (Fall/Winter 1982/1983),http://dl.acm.org/citation.cfm?id=J950,http://dl.acm.org/citation.cfm?id=J950&picked=prox
-SIG Newsletters,ACM SIGPLAN Fortran Forum,SIGPLAN Fortran Forum,1061-7264,1931-1311,Volume 1 Issue 1 (July 1982),Volume 32 Issue 3 (December 2013),http://dl.acm.org/citation.cfm?id=J286,http://dl.acm.org/citation.cfm?id=J286&picked=prox
-SIG Newsletters,ACM SIGPLAN Lisp Pointers,SIGPLAN Lisp Pointers,1045-3563,,Volume 1 Issue 1 (April-May 1987),Volume VIII Issue 2 (May-Aug., 1995),http://dl.acm.org/citation.cfm?id=J509,http://dl.acm.org/citation.cfm?id=J509&picked=prox
-SIG Newsletters,ACM SIGPLAN Notices,SIGPLAN Not.,0362-1340,1558-1160,Volume 1 Issue 8 (August 1966),Volume 48 Issue 11 (November 2013) - ISMM '13,http://dl.acm.org/citation.cfm?id=J706,http://dl.acm.org/citation.cfm?id=J706&picked=prox
-SIG Newsletters,ACM SIGPLAN OOPS Messenger,SIGPLAN OOPS Mess.,1055-6400,,Volume 1 Issue 1 (Aug. 1990),Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems,http://dl.acm.org/citation.cfm?id=J594,http://dl.acm.org/citation.cfm?id=J594&picked=prox
-SIG Newsletters,ACM SIGSAC Review,SIGSAC Rev.,0277-920X,,Volume 1 Issue 1 (Winter 1981-1982),Volume 15 Issue 2 (April 1997),http://dl.acm.org/citation.cfm?id=J691,http://dl.acm.org/citation.cfm?id=J691&picked=prox
-SIG Newsletters,ACM SIGSAM Bulletin,SIGSAM Bull.,0163-5824,,Issue 8 (December 1967),Volume 47 Issue 1/2 (March/June 2013),http://dl.acm.org/citation.cfm?id=J707,http://dl.acm.org/citation.cfm?id=J707&picked=prox
-SIG Newsletters,ACM SIGSIM Simulation Digest,SIGSIM Simul. Dig.,0163-6103,,Volume 3 Issue 1 (September 1971),Volume 28 Issue 1 (July 1998),http://dl.acm.org/citation.cfm?id=J711,http://dl.acm.org/citation.cfm?id=J711&picked=prox
-SIG Newsletters,ACM SIGSMALL Newsletter,SIGSMALL Newsl.,0272-720X,,Volume 4 Issue 5 (October 1978),Volume 10 Issue 4 (October 1984),http://dl.acm.org/citation.cfm?id=J949,http://dl.acm.org/citation.cfm?id=J949&picked=prox
-SIG Newsletters,ACM SIGSMALL/PC Notes,SIGSMALL/PC Notes,0893-2875,,Volume 11 Issue 3 (Aug. 1985),Volume 19 Issue 2 (Nov. 1993),http://dl.acm.org/citation.cfm?id=J692,http://dl.acm.org/citation.cfm?id=J692&picked=prox
-SIG Newsletters,ACM SIGSOC Bulletin,SIGSOC Bull.,0163-5794,,Volume 1 Issue 1 (March 1969),Volume 13 Issue 4 (April 1982),http://dl.acm.org/citation.cfm?id=J948,http://dl.acm.org/citation.cfm?id=J948&picked=prox
-SIG Newsletters,ACM SIGSOFT Software Engineering Notes,SIGSOFT Softw. Eng. Notes,0163-5948,,Volume 1 Issue 1 (May 1976),Volume 38 Issue 6 (November 2013),http://dl.acm.org/citation.cfm?id=J728,http://dl.acm.org/citation.cfm?id=J728&picked=prox
-SIG Newsletters,ACM SIGUCCS Newsletter,SIGUCCS Newsl.,0736-6892,,Volume 1 Issue 1 (January 1965),Volume 28 Issue 4 (Dec. 1998),http://dl.acm.org/citation.cfm?id=J708,http://dl.acm.org/citation.cfm?id=J708&picked=prox
-SIG Newsletters,ACM SIGUCCS plugged in,ACM SIGUCCS plugged in,,2168-8516,Volume 1 Issue 1 (Summer 2012),Volume 2 Issue 1 (Summer 2013),http://dl.acm.org/citation.cfm?id=J1358,http://dl.acm.org/citation.cfm?id=J1358&picked=prox
-SIG Newsletters,ACM SIGWEB Newsletter,SIGWEB Newsl.,1931-1745,1931-1435,Volume 1 Issue 1 (March 1992),Issue Autumn (Autumn 2013),http://dl.acm.org/citation.cfm?id=J507,http://dl.acm.org/citation.cfm?id=J507&picked=prox
-SIG Newsletters,ACM SIGecom Exchanges,SIGecom Exch.,,1551-9031,Volume 1 Issue 1 (Summer, 2000),Volume 12 Issue 1 (June 2013),http://dl.acm.org/citation.cfm?id=J684,http://dl.acm.org/citation.cfm?id=J684&picked=prox
-SIG Newsletters,Communication Design Quarterly Review,Commun. Des. Q. Rev,2166-1200,2166-1642,Volume 2 Issue 1 (March 2001),Volume 2 Issue 1 (November 2013),http://dl.acm.org/citation.cfm?id=J1351,http://dl.acm.org/citation.cfm?id=J1351&picked=prox
-SIG Newsletters,SIGSPATIAL Special,SIGSPATIAL Special,,1946-7729,Volume 1 Issue 1 (March 2009),Volume 5 Issue 3 (November 2013),http://dl.acm.org/citation.cfm?id=J1196,http://dl.acm.org/citation.cfm?id=J1196&picked=prox
-Conference Proceedings,3DOR: 3D Object Retrieval,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/3dor/,http://portal.acm.org/proceedings/3dor/archive/
-Conference Proceedings,3DVP: 3D Video Processing,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/3dvp/,http://portal.acm.org/proceedings/3dvp/archive/
-Conference Proceedings,A-MOST: Advances in Model-Based Testing,,,,2005 (May 2005),2007 (July 2007),http://portal.acm.org/proceedings/a-most/,http://portal.acm.org/proceedings/a-most/archive/
-Conference Proceedings,A2CWiC: Amrita ACM-W Celebration on Women in Computing in India,,,,2010 (September 2010),2010 (September 2010),http://portal.acm.org/proceedings/a2cwic/,http://portal.acm.org/proceedings/a2cwic/archive/
-Conference Proceedings,AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/aaa-idea/,http://portal.acm.org/proceedings/aaa-idea/archive/
-Conference Proceedings,AADEBUG: Automated analysis-driven debugging,,,,2005 (September 2005),2005 (September 2005),http://portal.acm.org/proceedings/aadebug/,http://portal.acm.org/proceedings/aadebug/archive/
-Conference Proceedings,AAMAS: Autonomous Agents and Multiagent Systems,,,,2002 (July 2002),2013 (May 2013),http://portal.acm.org/proceedings/aamas/,http://portal.acm.org/proceedings/aamas/archive/
-Conference Proceedings,ACDC: Automated Control for Datacenters and Clouds,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/acdc/,http://portal.acm.org/proceedings/acdc/archive/
-Conference Proceedings,ACET: Advances in Computer Entertainment Technology,,,,2004 (September 2004),2011 (November 2011),http://portal.acm.org/proceedings/ace/,http://portal.acm.org/proceedings/ace/archive/
-Conference Proceedings,ACISNR: Applications of Computer and Information Sciences to Nature Research,,,,2010 (May 2010),2010 (May 2010),http://portal.acm.org/proceedings/acisnr/,http://portal.acm.org/proceedings/acisnr/archive/
-Conference Proceedings,ACL2: ACL2 Theorem Prover and its Applications,,,,2006 (August 2006),2009 (May 2009),http://portal.acm.org/proceedings/acl2/,http://portal.acm.org/proceedings/acl2/archive/
-Conference Proceedings,ACM DEV: Computing for Development,,,,2010 (December 2010),2013 (January 2013),http://portal.acm.org/proceedings/acmdev/,http://portal.acm.org/proceedings/acmdev/archive/
-Conference Proceedings,ACM POLICY: ACM POLICY,,,,1998 (June 1998),1998 (June 1998),http://portal.acm.org/proceedings/acmpolicy/,http://portal.acm.org/proceedings/acmpolicy/archive/
-Conference Proceedings,ACM SE: Annual Southeast Regional Conference,,,,1967 (June 1967),2013 (April 2013),http://portal.acm.org/proceedings/acmse/,http://portal.acm.org/proceedings/acmse/archive/
-Conference Proceedings,ACM-BCS: ACM-BCS,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/acm-bcs/,http://portal.acm.org/proceedings/acm-bcs/archive/
-Conference Proceedings,ACM: ACM Annual Conference/Annual Meeting,,,,1952 (May 1952),1987 (December 1987),http://portal.acm.org/proceedings/acm/,http://portal.acm.org/proceedings/acm/archive/
-Conference Proceedings,ACPIS: Aspects, Components, and Patterns for Infrastructure Software,,,,2007 (March 2007),2009 (March 2009),http://portal.acm.org/proceedings/acpis/,http://portal.acm.org/proceedings/acpis/archive/
-Conference Proceedings,ACSAC: Annual Computer Security Applications Conference,,,,2010 (December 2010),2012 (December 2012),http://portal.acm.org/proceedings/acsac/,http://portal.acm.org/proceedings/acsac/archive/
-Conference Proceedings,ACSE: Australasian Conference on Computing Education,,,,1996 (July 1996),2010 (January 2010),http://portal.acm.org/proceedings/acse/,http://portal.acm.org/proceedings/acse/archive/
-Conference Proceedings,ACoM: Assessment of Contemporary Modularization Techniques,,,,2007 (May 2007),2007 (May 2007),http://portal.acm.org/proceedings/acom/,http://portal.acm.org/proceedings/acom/archive/
-Conference Proceedings,ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems,,,,2009 (July 2009),2009 (July 2009),http://portal.acm.org/proceedings/adamus/,http://portal.acm.org/proceedings/adamus/archive/
-Conference Proceedings,ADKDD: Data Mining and Audience Intelligence for Advertising,,,,2007 (August 2007),2013 (August 2013),http://portal.acm.org/proceedings/adkdd/,http://portal.acm.org/proceedings/adkdd/archive/
-Conference Proceedings,ADPUC: Advanced Data Processing in Ubiquitous Computing ,,,,2006 (November 2006),2006 (November 2006),http://portal.acm.org/proceedings/adpuc/,http://portal.acm.org/proceedings/adpuc/archive/
-Conference Proceedings,AFFINE: Affective-Aware Virtual Agents and Social Robots,,,,2009 (November 2009),2010 (October 2010),http://portal.acm.org/proceedings/affine/,http://portal.acm.org/proceedings/affine/archive/
-Conference Proceedings,AFIPS: AFIPS,,,,1955 (March 1955),1984 (July 1984),http://portal.acm.org/proceedings/afips/,http://portal.acm.org/proceedings/afips/archive/
-Conference Proceedings,AFM: Automated Formal Methods,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/afm/,http://portal.acm.org/proceedings/afm/archive/
-Conference Proceedings,AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa,,,,2001 (November 2001),2010 (June 2010),http://portal.acm.org/proceedings/afrigraph/,http://portal.acm.org/proceedings/afrigraph/archive/
-Conference Proceedings,AGENTS: Autonomous Agents,,,,1997 (February 1997),2001 (May 2001),http://portal.acm.org/proceedings/agents/,http://portal.acm.org/proceedings/agents/archive/
-Conference Proceedings,AH: Augmented Human,,,,2010 (April 2010),2013 (March 2013),http://portal.acm.org/proceedings/ah/,http://portal.acm.org/proceedings/ah/archive/
-Conference Proceedings,AIEE-IRE: AIEE-IRE,,,,1951 (December 1951),1962 (May 1962),http://portal.acm.org/proceedings/aiee-ire/,http://portal.acm.org/proceedings/aiee-ire/archive/
-Conference Proceedings,AIEMPro: Automated Information Extraction in Media Production,,,,2010 (October 2010),2011 (December 2011),http://portal.acm.org/proceedings/aiempro/,http://portal.acm.org/proceedings/aiempro/archive/
-Conference Proceedings,AIGC: Artificial Intelligence in Grid Computing,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/aigc/,http://portal.acm.org/proceedings/aigc/archive/
-Conference Proceedings,AINTEC: Asian Conference on Internet Engineering,,,,2008 (November 2008),2012 (November 2012),http://portal.acm.org/proceedings/aintec/,http://portal.acm.org/proceedings/aintec/archive/
-Conference Proceedings,AIPACa: Applications of Private and Anonymous Communications,,,,2008 (September 2008),2008 (September 2008),http://portal.acm.org/proceedings/aipaca/,http://portal.acm.org/proceedings/aipaca/archive/
-Conference Proceedings,AIRS: Asia Information Retrieval Symposium ,,,,2008 (January 2008),2009 (October 2009),http://portal.acm.org/proceedings/airs/,http://portal.acm.org/proceedings/airs/archive/
-Conference Proceedings,AIRWeb: Adversarial Information Retrieval on the Web,,,,2007 (May 2007),2009 (April 2009),http://portal.acm.org/proceedings/airweb/,http://portal.acm.org/proceedings/airweb/archive/
-Conference Proceedings,AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics,,,,2010 (July 2010),2010 (July 2010),http://portal.acm.org/proceedings/aisc/mkm/calculemus/,http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/
-Conference Proceedings,AISec: Artificial Intelligence and Security,,,,2008 (October 2008),2013 (November 2013),http://portal.acm.org/proceedings/aisec/,http://portal.acm.org/proceedings/aisec/archive/
-Conference Proceedings,ALICE: Alice Symposium,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/alice/,http://portal.acm.org/proceedings/alice/archive/
-Conference Proceedings,AM: Audio Mostly,,,,2010 (September 2010),2012 (September 2012),http://portal.acm.org/proceedings/am/,http://portal.acm.org/proceedings/am/archive/
-Conference Proceedings,AMC: Ambient Media Computing,,,,2009 (October 2009),2009 (October 2009),http://portal.acm.org/proceedings/amc/,http://portal.acm.org/proceedings/amc/archive/
-Conference Proceedings,AMCMM: Audio and Music Computing Multimedia,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/amcmm/,http://portal.acm.org/proceedings/amcmm/archive/
-Conference Proceedings,ANCS: Architectures for Networking and Communications Systems,,,,2005 (October 2005),2013 (October 2013),http://portal.acm.org/proceedings/ancs/,http://portal.acm.org/proceedings/ancs/archive/
-Conference Proceedings,AND: Analytics for Noisy Unstructured Text Data,,,,2008 (July 2008),2010 (October 2010),http://portal.acm.org/proceedings/and/,http://portal.acm.org/proceedings/and/archive/
-Conference Proceedings,ANNA: Analysis of Neural Network Applications,,,,1991 (May 1991),1991 (May 1991),http://portal.acm.org/proceedings/anna/,http://portal.acm.org/proceedings/anna/archive/
-Conference Proceedings,ANSS: Annual Simulation Symposium,,,,1973 (June 1973),2013 (April 2013),http://portal.acm.org/proceedings/anss/,http://portal.acm.org/proceedings/anss/archive/
-Conference Proceedings,AOM: Aspect-Oriented Modeling,,,,2007 (March 2007),2009 (March 2009),http://portal.acm.org/proceedings/aom/,http://portal.acm.org/proceedings/aom/archive/
-Conference Proceedings,AOMD: Aspect Oriented Middleware Development,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/aomd/,http://portal.acm.org/proceedings/aomd/archive/
-Conference Proceedings,AOSD: Aspect-Oriented Software Development,,,,2002 (April 2002),2013 (March 2013),http://portal.acm.org/proceedings/aosd/,http://portal.acm.org/proceedings/aosd/archive/
-Conference Proceedings,APGV: Applied Perception in Graphics and Visualization,,,,2004 (August 2004),2011 (August 2011),http://portal.acm.org/proceedings/apgv/,http://portal.acm.org/proceedings/apgv/archive/
-Conference Proceedings,APL: APL,,,,1969 (January 1969),2003 (June 2003),http://portal.acm.org/proceedings/apl/,http://portal.acm.org/proceedings/apl/archive/
-Conference Proceedings,APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/aplwaca/,http://portal.acm.org/proceedings/aplwaca/archive/
-Conference Proceedings,APOS: Scrutinizing Agile Practices,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/apos/,http://portal.acm.org/proceedings/apos/archive/
-Conference Proceedings,APS: Adaptive, Personalization &#38; the Semantic Web,,,,2006 (August 2006),2006 (August 2006),http://portal.acm.org/proceedings/aps/,http://portal.acm.org/proceedings/aps/archive/
-Conference Proceedings,APSys: Asia-Pacific Workshop on Systems,,,,2010 (August 2010),2013 (July 2013),http://portal.acm.org/proceedings/apsys/,http://portal.acm.org/proceedings/apsys/archive/
-Conference Proceedings,AREA: Analysis and Retrieval of Events,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/area/,http://portal.acm.org/proceedings/area/archive/
-Conference Proceedings,ARM: Adaptive and Reflective MIddleware,,,,2004 (October 2004),2013 (December 2013),http://portal.acm.org/proceedings/arm/,http://portal.acm.org/proceedings/arm/archive/
-Conference Proceedings,ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams,,,,2010 (October 2010),2013 (October 2013),http://portal.acm.org/proceedings/artemis/,http://portal.acm.org/proceedings/artemis/archive/
-Conference Proceedings,ASE: Automated Software Engineering,,,,1997 (November 1997),2012 (September 2012),http://portal.acm.org/proceedings/ase/,http://portal.acm.org/proceedings/ase/archive/
-Conference Proceedings,ASIA CCS: Information, Computer and Communications Security,,,,2006 (March 2006),2013 (May 2013),http://portal.acm.org/proceedings/asiaccs/,http://portal.acm.org/proceedings/asiaccs/archive/
-Conference Proceedings,ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation,,,,2002 (September 2002),2002 (September 2002),http://portal.acm.org/proceedings/asia-pepm/,http://portal.acm.org/proceedings/asia-pepm/archive/
-Conference Proceedings,ASID: Architectural and System Support for Improving Software Dependability,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/asid/,http://portal.acm.org/proceedings/asid/archive/
-Conference Proceedings,ASPDAC: Asia and South Pacific Design Automation Conference,,,,1995 (August 1995),2011 (January 2011),http://portal.acm.org/proceedings/aspdac/,http://portal.acm.org/proceedings/aspdac/archive/
-Conference Proceedings,ASPLOS: Architectural Support for Programming Languages and Operating Systems,,,,1982 (March 1982),2013 (March 2013),http://portal.acm.org/proceedings/asplos/,http://portal.acm.org/proceedings/asplos/archive/
-Conference Proceedings,AST: Automation of Software Test,,,,2006 (May 2006),2011 (May 2011),http://portal.acm.org/proceedings/ast/,http://portal.acm.org/proceedings/ast/archive/
-Conference Proceedings,AUIC: User Interface,,,,2001 (January 2001),2010 (January 2010),http://portal.acm.org/proceedings/auic/,http://portal.acm.org/proceedings/auic/archive/
-Conference Proceedings,AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing,,,,2008 (July 2008),2009 (July 2009),http://portal.acm.org/proceedings/aupc/,http://portal.acm.org/proceedings/aupc/archive/
-Conference Proceedings,AVI: Advanced Visual Interfaces,,,,1994 (June 1994),2012 (May 2012),http://portal.acm.org/proceedings/avi/,http://portal.acm.org/proceedings/avi/archive/
-Conference Proceedings,AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/avstp2p/,http://portal.acm.org/proceedings/avstp2p/archive/
-Conference Proceedings,AcessNets: Access Networks,,,,2006 (September 2006),2006 (September 2006),http://portal.acm.org/proceedings/acessnets/,http://portal.acm.org/proceedings/acessnets/archive/
-Conference Proceedings,Ambi-Sys: Ambient Media and Systems,,,,2008 (February 2008),2008 (February 2008),http://portal.acm.org/proceedings/ambi-sys/,http://portal.acm.org/proceedings/ambi-sys/archive/
-Conference Proceedings,Assets: Computers and Accessibility,,,,1994 (October 1994),2013 (October 2013),http://portal.acm.org/proceedings/assets/,http://portal.acm.org/proceedings/assets/archive/
-Conference Proceedings,AusGrid: Grid Computing and e-Research,,,,2008 (January 2008),2009 (January 2009),http://portal.acm.org/proceedings/ausgrid/,http://portal.acm.org/proceedings/ausgrid/archive/
-Conference Proceedings,AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications,,,,2009 (September 2009),2013 (October 2013),http://portal.acm.org/proceedings/automotiveui/,http://portal.acm.org/proceedings/automotiveui/archive/
-Conference Proceedings,Autonomics: Autonomic Computing and Communication Systems,,,,2007 (October 2007),2008 (September 2008),http://portal.acm.org/proceedings/autonomics/,http://portal.acm.org/proceedings/autonomics/archive/
-Conference Proceedings,BADS: Bio-Inspired Algorithms for Distributed Systems,,,,2009 (June 2009),2011 (June 2011),http://portal.acm.org/proceedings/bads/,http://portal.acm.org/proceedings/bads/archive/
-Conference Proceedings,BCB: Bioinformatics and Computational Biology,,,,2010 (August 2010),2007 (September 2013),http://portal.acm.org/proceedings/bcb/,http://portal.acm.org/proceedings/bcb/archive/
-Conference Proceedings,BCS-HCI: British HCI Group Annual Conference on People and Computers,,,,2007 (September 2007),2009 (September 2009),http://portal.acm.org/proceedings/bcs-hci/,http://portal.acm.org/proceedings/bcs-hci/archive/
-Conference Proceedings,BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization,,,,2006 (May 2006),2012 (October 2012),http://portal.acm.org/proceedings/beliv/,http://portal.acm.org/proceedings/beliv/archive/
-Conference Proceedings,BIOKDD: Bioinformatics,,,,2005 (August 2005),2013 (August 2013),http://portal.acm.org/proceedings/biokdd/,http://portal.acm.org/proceedings/biokdd/archive/
-Conference Proceedings,BIONETICS: Bio Inspired Models of Network, Information and Computing Systems,,,,2006 (December 2006),2006 (December 2006),http://portal.acm.org/proceedings/bionetics/,http://portal.acm.org/proceedings/bionetics/archive/
-Conference Proceedings,BM-FA: Behaviour Modelling,,,,2010 (June 2010),2012 (July 2012),http://portal.acm.org/proceedings/bm-fa/,http://portal.acm.org/proceedings/bm-fa/archive/
-Conference Proceedings,BM-MDA: Behaviour Modelling in Model-Driven Architecture,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/bm-mda/,http://portal.acm.org/proceedings/bm-mda/archive/
-Conference Proceedings,BPAOSD: Best Practices in Applying Aspect-Oriented Software Development,,,,2007 (March 2007),2007 (March 2007),http://portal.acm.org/proceedings/bpaosd/,http://portal.acm.org/proceedings/bpaosd/archive/
-Conference Proceedings,BQGT: Behavioral and Quantitative Game Theory,,,,2010 (May 2010),2010 (May 2010),http://portal.acm.org/proceedings/bqgt/,http://portal.acm.org/proceedings/bqgt/archive/
-Conference Proceedings,BWAN: Broadband Wireless Access for Ubiquitous Networking,,,,2006 (September 2006),2006 (September 2006),http://portal.acm.org/proceedings/bwan/,http://portal.acm.org/proceedings/bwan/archive/
-Conference Proceedings,Baltic Sea: Baltic Sea Conference on Computing Education Research,,,,2006 (February 2006),2006 (February 2006),http://portal.acm.org/proceedings/balticsea/,http://portal.acm.org/proceedings/balticsea/archive/
-Conference Proceedings,BiPi: Business Impact of Process Improvements,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/bipi/,http://portal.acm.org/proceedings/bipi/archive/
-Conference Proceedings,BooksOnline: Research Advances in Large Digital Book Repositories,,,,2008 (October 2008),2012 (October 2012),http://portal.acm.org/proceedings/booksonline/,http://portal.acm.org/proceedings/booksonline/archive/
-Conference Proceedings,BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings,,,,2009 (November 2009),2013 (November 2013),http://portal.acm.org/proceedings/buildsys/,http://portal.acm.org/proceedings/buildsys/archive/
-Conference Proceedings,C&#38;C: Creativity and Cognition,,,,1999 (October 1999),2013 (June 2013),http://portal.acm.org/proceedings/c&amp;c/,http://portal.acm.org/proceedings/c&amp;c/archive/
-Conference Proceedings,C&#38;T: Communities and Technologies,,,,2009 (June 2009),2013 (June 2013),http://portal.acm.org/proceedings/c&amp;t/,http://portal.acm.org/proceedings/c&amp;t/archive/
-Conference Proceedings,C3P: Hypercube Concurrent Computers and Applications,,,,1988 (January 1988),1988 (January 1989),http://portal.acm.org/proceedings/c3p/,http://portal.acm.org/proceedings/c3p/archive/
-Conference Proceedings,C3S2E: Canadian Conference on Computer Science and Software Engineering,,,,2008 (May 2008),2013 (July 2013),http://portal.acm.org/proceedings/cse/,http://portal.acm.org/proceedings/cse/archive/
-Conference Proceedings,CAI: Context in Advanced Interfaces,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/cai/,http://portal.acm.org/proceedings/cai/archive/
-Conference Proceedings,CAMA: Contextualized Attention Metadata,,,,2006 (November 2006),2006 (November 2006),http://portal.acm.org/proceedings/cama/,http://portal.acm.org/proceedings/cama/archive/
-Conference Proceedings,CAMRa: Context-aware Movie Recommendation,,,,2010 (September 2010),2011 (October 2011),http://portal.acm.org/proceedings/camra/,http://portal.acm.org/proceedings/camra/archive/
-Conference Proceedings,CAMS: Context-Aware Middleware and Services,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/cams/,http://portal.acm.org/proceedings/cams/archive/
-Conference Proceedings,CARPE: Continous Archival and Retrieval of Personal Experiences,,,,2004 (October 2004),2006 (October 2006),http://portal.acm.org/proceedings/carpe/,http://portal.acm.org/proceedings/carpe/archive/
-Conference Proceedings,CARS: Critical Automotive Applications,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/cars/,http://portal.acm.org/proceedings/cars/archive/
-Conference Proceedings,CASEMANS: Context-Awareness for Self-Managing Systems,,,,2008 (May 2008),2011 (September 2011),http://portal.acm.org/proceedings/casemans/,http://portal.acm.org/proceedings/casemans/archive/
-Conference Proceedings,CASES: Compilers, Architectures and Synthesis for Embedded Systems,,,,2000 (November 2000),2013 (September 2013),http://portal.acm.org/proceedings/cases/,http://portal.acm.org/proceedings/cases/archive/
-Conference Proceedings,CASTA: Context-Aware Software Technology and Application,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/casta/,http://portal.acm.org/proceedings/casta/archive/
-Conference Proceedings,CAW: Computer Architecture for Non-Numeric Processing,,,,1977 (January 1977),1980 (March 1980),http://portal.acm.org/proceedings/caw/,http://portal.acm.org/proceedings/caw/archive/
-Conference Proceedings,CBHPC: Component-Based High Performance Computing,,,,2008 (October 2008),2009 (November 2009),http://portal.acm.org/proceedings/cbhpc/,http://portal.acm.org/proceedings/cbhpc/archive/
-Conference Proceedings,CC: Critical Computing,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/cc/,http://portal.acm.org/proceedings/cc/archive/
-Conference Proceedings,CCS: Computer and Communications Security,,,,1993 (December 1993),2013 (November 2013),http://portal.acm.org/proceedings/ccs/,http://portal.acm.org/proceedings/ccs/archive/
-Conference Proceedings,CCSC: Consortium for Computing Sciences in Colleges,,,,1991 (May 1991),2001 (April 2001),http://portal.acm.org/proceedings/ccsc/,http://portal.acm.org/proceedings/ccsc/archive/
-Conference Proceedings,CCSW: Cloud Computing Security Workshop,,,,2009 (November 2009),2013 (November 2013),http://portal.acm.org/proceedings/ccsw/,http://portal.acm.org/proceedings/ccsw/archive/
-Conference Proceedings,CCU: Contemporary Computing in Ukraine,,,,2000 (February 2000),2000 (February 2000),http://portal.acm.org/proceedings/ccu/,http://portal.acm.org/proceedings/ccu/archive/
-Conference Proceedings,CEA: Cooking and Eating Activities,,,,2009 (October 2009),2013 (October 2013),http://portal.acm.org/proceedings/cea/,http://portal.acm.org/proceedings/cea/archive/
-Conference Proceedings,CF: Computing Frontiers,,,,2004 (April 2004),2013 (May 2013),http://portal.acm.org/proceedings/cf/,http://portal.acm.org/proceedings/cf/archive/
-Conference Proceedings,CFI: Future Internet Technologies,,,,2009 (June 2009),2012 (September 2012),http://portal.acm.org/proceedings/cfi/,http://portal.acm.org/proceedings/cfi/archive/
-Conference Proceedings,CFP: Computers, Freedom and Privacy,,,,1992 (April 1992),2002 (April 2002),http://portal.acm.org/proceedings/cfp/,http://portal.acm.org/proceedings/cfp/archive/
-Conference Proceedings,CGI: Computer Graphics International,,,,1996 (June 1996),2009 (May 2009),http://portal.acm.org/proceedings/cgi/,http://portal.acm.org/proceedings/cgi/archive/
-Conference Proceedings,CGO: Code Generation and Optimization,,,,2003 (March 2003),2013 (February 2013),http://portal.acm.org/proceedings/cgo/,http://portal.acm.org/proceedings/cgo/archive/
-Conference Proceedings,CHANTS: Challenged Networks,,,,2006 (September 2006),2013 (September 2013),http://portal.acm.org/proceedings/chants/,http://portal.acm.org/proceedings/chants/archive/
-Conference Proceedings,CHASE: Cooperative and Human Aspects on Software Engineering,,,,2008 (May 2008),2011 (May 2011),http://portal.acm.org/proceedings/chase/,http://portal.acm.org/proceedings/chase/archive/
-Conference Proceedings,CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts,,,,1997 (March 1997),2013 (April 2013),http://portal.acm.org/proceedings/chiea/,http://portal.acm.org/proceedings/chiea/archive/
-Conference Proceedings,CHI: Conference on Human Factors in Computing Systems,,,,1981 (May 1981),2013 (April 2013),http://portal.acm.org/proceedings/chi/,http://portal.acm.org/proceedings/chi/archive/
-Conference Proceedings,CHINA HPC: High Performance Computing,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/chinahpc/,http://portal.acm.org/proceedings/chinahpc/archive/
-Conference Proceedings,CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction,,,,2001 (July 2001),2012 (July 2012),http://portal.acm.org/proceedings/chinz/,http://portal.acm.org/proceedings/chinz/archive/
-Conference Proceedings,CHiMiT: Computer Human Interaction for the Management of Information Technology,,,,2007 (March 2007),2011 (December 2011),http://portal.acm.org/proceedings/chimit/,http://portal.acm.org/proceedings/chimit/archive/
-Conference Proceedings,CIAA: Implementation and Application of Automata,,,,2003 (July 2002),2003 (July 2002),http://portal.acm.org/proceedings/ciaa/,http://portal.acm.org/proceedings/ciaa/archive/
-Conference Proceedings,CIAO: Context, Information and Ontologies,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/ciao/,http://portal.acm.org/proceedings/ciao/archive/
-Conference Proceedings,CIKM: Conference on Information and Knowledge Management,,,,1993 (December 1993),2013 (October 2013),http://portal.acm.org/proceedings/cikm/,http://portal.acm.org/proceedings/cikm/archive/
-Conference Proceedings,CIMS: CyberInfrastructure: Information Management in eScience,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/cims/,http://portal.acm.org/proceedings/cims/archive/
-Conference Proceedings,CIVR: Conference on Image and Video Retrieval,,,,2007 (July 2007),2010 (July 2010),http://portal.acm.org/proceedings/civr/,http://portal.acm.org/proceedings/civr/archive/
-Conference Proceedings,CLADE: Challenges of Large Applications in Distributed Environments,,,,2003 (June 2003),2009 (June 2009),http://portal.acm.org/proceedings/clade/,http://portal.acm.org/proceedings/clade/archive/
-Conference Proceedings,CLIHC: Latin American Conference on Human-Computer Interaction,,,,2003 (August 2003),2005 (October 2005),http://portal.acm.org/proceedings/clihc/,http://portal.acm.org/proceedings/clihc/archive/
-Conference Proceedings,CLOUD: Software Engineering Challenges of Cloud Computing,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/cloud/,http://portal.acm.org/proceedings/cloud/archive/
-Conference Proceedings,CMM: Connected Multimedia,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/cmm/,http://portal.acm.org/proceedings/cmm/archive/
-Conference Proceedings,CMSB: Computational Methods in Systems Biology,,,,2010 (September 2010),2011 (September 2011),http://portal.acm.org/proceedings/cmsb/,http://portal.acm.org/proceedings/cmsb/archive/
-Conference Proceedings,CNIKM: Complex Networks Meet Information & Knowledge Management,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/cnikm/,http://portal.acm.org/proceedings/cnikm/archive/
-Conference Proceedings,CNS: Communications and Networking Simulation,,,,2008 (April 2008),2013 (April 2013),http://portal.acm.org/proceedings/cns/,http://portal.acm.org/proceedings/cns/archive/
-Conference Proceedings,COCS: Conference on Organizational Computing Systems,,,,1984 (January 1984),1995 (August 1995),http://portal.acm.org/proceedings/cocs/,http://portal.acm.org/proceedings/cocs/archive/
-Conference Proceedings,CODES: Hardware Software Codesign,,,,1994 (September 1994),2012 (October 2012),http://portal.acm.org/proceedings/codes/,http://portal.acm.org/proceedings/codes/archive/
-Conference Proceedings,COLT: Computational Learning Theory,,,,1988 (December 1988),1999 (July 1999),http://portal.acm.org/proceedings/colt/,http://portal.acm.org/proceedings/colt/archive/
-Conference Proceedings,COM.Geo: Computing for Geospatial Research &#38; Application,,,,2010 (June 2010),2012 (July 2012),http://portal.acm.org/proceedings/com.geo/,http://portal.acm.org/proceedings/com.geo/archive/
-Conference Proceedings,COMM: Communications Architectures and Protocols,,,,2000 (November 2000),2000 (November 2000),http://portal.acm.org/proceedings/comm/,http://portal.acm.org/proceedings/comm/archive/
-Conference Proceedings,COMPUTE: COMPUTE,,,,2008 (January 2008),2013 (August 2013),http://portal.acm.org/proceedings/compute/,http://portal.acm.org/proceedings/compute/archive/
-Conference Proceedings,COMSWARE: Communication System Software and Middleware,,,,2009 (June 2009),2011 (July 2011),http://portal.acm.org/proceedings/comsware/,http://portal.acm.org/proceedings/comsware/archive/
-Conference Proceedings,COP: Context-Oriented Programming,,,,2009 (July 2009),2013 (July 2013),http://portal.acm.org/proceedings/cop/,http://portal.acm.org/proceedings/cop/archive/
-Conference Proceedings by Affiliated Organizations,CPR: Computers and People Research,,,,1962 (June 1962),2013 (May 2013),http://portal.acm.org/proceedings/sigcpr/,http://portal.acm.org/proceedings/sigcpr/archive/
-Conference Proceedings,CQL: Computers and the Quality of Life,,,,1990 (August 1990),1996 (February 1996),http://portal.acm.org/proceedings/cql/,http://portal.acm.org/proceedings/cql/archive/
-Conference Proceedings,CSAW: Computer Security Architectures,,,,2007 (November 2007),2008 (October 2008),http://portal.acm.org/proceedings/csaw/,http://portal.acm.org/proceedings/csaw/archive/
-Conference Proceedings,CSC: Conference on Computer Science,,,,1973 (February 1973),1996 (February 1996),http://portal.acm.org/proceedings/csc/,http://portal.acm.org/proceedings/csc/archive/
-Conference Proceedings,CSCW: Computer Supported Cooperative Work,,,,1986 (December 1986),2013 (February 2013),http://portal.acm.org/proceedings/cscw/,http://portal.acm.org/proceedings/cscw/archive/
-Conference Proceedings,CSI-KDD: CyberSecurity and Intelligence Informatics,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/csi-kdd/,http://portal.acm.org/proceedings/csi-kdd/archive/
-Conference Proceedings,CSIIRW: Cyber Security and Information Intelligence Research,,,,2008 (May 2008),2013 (January 2013),http://portal.acm.org/proceedings/csiirw/,http://portal.acm.org/proceedings/csiirw/archive/
-Conference Proceedings,CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption,,,,2008 (April 2008),2008 (April 2008),http://portal.acm.org/proceedings/csssia/,http://portal.acm.org/proceedings/csssia/archive/
-Conference Proceedings,CSTST: Soft Computing as Transdisciplinary Science and Technology,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/cstst/,http://portal.acm.org/proceedings/cstst/archive/
-Conference Proceedings,CUFP: Commercial Users of Functional Programming,,,,2007 (October 2007),2010 (October 2010),http://portal.acm.org/proceedings/cufp/,http://portal.acm.org/proceedings/cufp/archive/
-Conference Proceedings,CUU: Conference on Universal Usability,,,,2000 (November 2000),2003 (November 2003),http://portal.acm.org/proceedings/cuu/,http://portal.acm.org/proceedings/cuu/archive/
-Conference Proceedings,CVDB: Computer Vision Meets Databases,,,,2004 (June 2004),2005 (June 2005),http://portal.acm.org/proceedings/cvdb/,http://portal.acm.org/proceedings/cvdb/archive/
-Conference Proceedings,CVE: Collaborative Virtual Environments,,,,2000 (September 2000),2002 (September 2002),http://portal.acm.org/proceedings/cve/,http://portal.acm.org/proceedings/cve/archive/
-Conference Proceedings,CVSM: Comparison and Versioning of Software Models,,,,2008 (May 2008),2009 (May 2009),http://portal.acm.org/proceedings/cvsm/,http://portal.acm.org/proceedings/cvsm/archive/
-Conference Proceedings,CWIT: Women and ICT,,,,2005 (June 2005),2005 (June 2005),http://portal.acm.org/proceedings/cwit/,http://portal.acm.org/proceedings/cwit/archive/
-Conference Proceedings,CWNETS: Cognitive Wireless Networks,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/cwnets/,http://portal.acm.org/proceedings/cwnets/archive/
-Conference Proceedings,Casemans: Context-Awareness for Self-Managing Systems,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/casemans/,http://portal.acm.org/proceedings/casemans/archive/
-Conference Proceedings,CloudDB: Cloud Data Management,,,,2009 (November 2009),2013 (October 2013),http://portal.acm.org/proceedings/clouddb/,http://portal.acm.org/proceedings/clouddb/archive/
-Conference Proceedings,CoNEXT: Co-NEXT,,,,2005 (October 2005),2013 (December 2013),http://portal.acm.org/proceedings/conext/,http://portal.acm.org/proceedings/conext/archive/
-Conference Proceedings,CoRoNet: Cognitive Radio Networks,,,,2009 (September 2009),2011 (September 2011),http://portal.acm.org/proceedings/coronet/,http://portal.acm.org/proceedings/coronet/archive/
-Conference Proceedings,CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/communicabilityms/,http://portal.acm.org/proceedings/communicabilityms/archive/
-Conference Proceedings,CompBio: Computational biology,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/compbio/,http://portal.acm.org/proceedings/compbio/archive/
-Conference Proceedings,CompFrame: Component and Framework Technology in High-Performance and Scientific Computing,,,,2007 (October 2007),2007 (October 2007),http://portal.acm.org/proceedings/compframe/,http://portal.acm.org/proceedings/compframe/archive/
-Conference Proceedings,CompSysTech: Computer Systems and Technologies,,,,2000 (June 2000),2013 (June 2013),http://portal.acm.org/proceedings/compsystech/,http://portal.acm.org/proceedings/compsystech/archive/
-Conference Proceedings,Companion: Middleware 08 Conference Companion,,,,2008 (December 2008),2008 (December 2008),http://portal.acm.org/proceedings/companion/,http://portal.acm.org/proceedings/companion/archive/
-Conference Proceedings,Creating: Creating Out of the Machine,,,,2008 (June 2008),2008 (June 2008),http://portal.acm.org/proceedings/creating/,http://portal.acm.org/proceedings/creating/archive/
-Conference Proceedings,DAC: Design Automation Conference,,,,1964 (January 1964),2013 (May 2013),http://portal.acm.org/proceedings/dac/,http://portal.acm.org/proceedings/dac/archive/
-Conference Proceedings,DADC: Data-aware Distributed Computing,,,,2008 (June 2008),2009 (June 2009),http://portal.acm.org/proceedings/dadc/,http://portal.acm.org/proceedings/dadc/archive/
-Conference Proceedings,DAMP: Declarative Aspects of Multicore Programming,,,,2007 (January 2007),2012 (January 2012),http://portal.acm.org/proceedings/damp/,http://portal.acm.org/proceedings/damp/archive/
-Conference Proceedings,DARE: Designing Augmented Reality Environments,,,,2000 (April 2000),2013 (November 2013),http://portal.acm.org/proceedings/dare/,http://portal.acm.org/proceedings/dare/archive/
-Conference Proceedings,DAS: Document Analysis Systems,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/das/,http://portal.acm.org/proceedings/das/archive/
-Conference Proceedings,DATACOMM: Data Communications and Data Networks,,,,1973 (January 1973),1973 (January 1973),http://portal.acm.org/proceedings/datacomm/,http://portal.acm.org/proceedings/datacomm/archive/
-Conference Proceedings,DATE: Design, Automation and Test in Europe,,,,1998 (February 1998),2013 (March 2013),http://portal.acm.org/proceedings/date/,http://portal.acm.org/proceedings/date/archive/
-Conference Proceedings,DBTest: Testing Database Systems,,,,2008 (June 2008),2013 (June 2013),http://portal.acm.org/proceedings/dbtest/,http://portal.acm.org/proceedings/dbtest/archive/
-Conference Proceedings,DCOSS:  Distributed Computing in Sensor Systems,,,,2007 (June 2007),2010 (June 2010),http://portal.acm.org/proceedings/dcoss/,http://portal.acm.org/proceedings/dcoss/archive/
-Conference Proceedings,DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/dd4lcci/,http://portal.acm.org/proceedings/dd4lcci/archive/
-Conference Proceedings,DDDM: Domain Driven Data Mining,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/dddm/,http://portal.acm.org/proceedings/dddm/archive/
-Conference Proceedings,DEAS: Design and Evolution of Autonomic Application Software,,,,2005 (May 2005),2005 (May 2005),http://portal.acm.org/proceedings/deas/,http://portal.acm.org/proceedings/deas/archive/
-Conference Proceedings,DEBS: Distributed Event-Based Systems,,,,2003 (June 2003),2013 (June 2013),http://portal.acm.org/proceedings/debs/,http://portal.acm.org/proceedings/debs/archive/
-Conference Proceedings,DEECS: Data Enginering issues in E-commerce and Services,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/deecs/,http://portal.acm.org/proceedings/deecs/archive/
-Conference Proceedings,DEFECTS: Defects in Large Software Systems,,,,2008 (July 2008),2009 (June 2009),http://portal.acm.org/proceedings/defects/,http://portal.acm.org/proceedings/defects/archive/
-Conference Proceedings,DESIRE: Creativity and Innovation in Design,,,,2010 (August 2010),2011 (October 2011),http://portal.acm.org/proceedings/desire/,http://portal.acm.org/proceedings/desire/archive/
-Conference Proceedings,DESRIST: Design Science Research in Information Systems and Technology,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/desrist/,http://portal.acm.org/proceedings/desrist/archive/
-Conference Proceedings,DIALM: DIALM,,,,1999 (August 1999),2010 (September 2010),http://portal.acm.org/proceedings/dialm/,http://portal.acm.org/proceedings/dialm/archive/
-Conference Proceedings,DIM: Digital Identity Management,,,,2005 (November 2005),2013 (November 2013),http://portal.acm.org/proceedings/dim/,http://portal.acm.org/proceedings/dim/archive/
-Conference Proceedings,DIMEA: Digital Interactive Media in Entertainment and Arts,,,,2007 (September 2007),2008 (September 2008),http://portal.acm.org/proceedings/dimea/,http://portal.acm.org/proceedings/dimea/archive/
-Conference Proceedings,DIN: Dynamic Interconnection of Networks,,,,2005 (September 2005),2005 (September 2005),http://portal.acm.org/proceedings/din/,http://portal.acm.org/proceedings/din/archive/
-Conference Proceedings,DIS: Designing Interactive Systems,,,,1995 (August 1995),2012 (June 2012),http://portal.acm.org/proceedings/dis/,http://portal.acm.org/proceedings/dis/archive/
-Conference Proceedings,DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks,,,,2006 (September 2006),2006 (September 2006),http://portal.acm.org/proceedings/diwans/,http://portal.acm.org/proceedings/diwans/archive/
-Conference Proceedings,DL: Digital Libraries,,,,1996 (April 1996),2000 (June 2000),http://portal.acm.org/proceedings/dl/,http://portal.acm.org/proceedings/dl/archive/
-Conference Proceedings,DLS: Dynamic Languages,,,,2005 (October 2005),2013 (October 2013),http://portal.acm.org/proceedings/dls/,http://portal.acm.org/proceedings/dls/archive/
-Conference Proceedings,DMG: Data Mining for Geoinformatics,,,,2010 (November 2010),2010 (November 2010),http://portal.acm.org/proceedings/dmg/,http://portal.acm.org/proceedings/dmg/archive/
-Conference Proceedings,DMKD: Research Issues in Data Mining and Knowledge Discovery,,,,2003 (June 2003),2004 (June 2004),http://portal.acm.org/proceedings/dmkd/,http://portal.acm.org/proceedings/dmkd/archive/
-Conference Proceedings,DMMT: Data Mining using Matrices and Tensors,,,,2001 (July 2001),2009 (June 2009),http://portal.acm.org/proceedings/dmmt/,http://portal.acm.org/proceedings/dmmt/archive/
-Conference Proceedings,DMSN: Data Management for Sensor Networks,,,,2004 (August 2004),2010 (September 2010),http://portal.acm.org/proceedings/dmsn/,http://portal.acm.org/proceedings/dmsn/archive/
-Conference Proceedings,DMSSP: Data Mining Standards, Services and Platforms,,,,2006 (August 2006),2006 (August 2006),http://portal.acm.org/proceedings/dmssp/,http://portal.acm.org/proceedings/dmssp/archive/
-Conference Proceedings,DO: Distributed Objects,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/do/,http://portal.acm.org/proceedings/do/archive/
-Conference Proceedings,DOCPROCS: Document Processing Systems,,,,1988 (January 2000),1988 (January 2000),http://portal.acm.org/proceedings/docprocs/,http://portal.acm.org/proceedings/docprocs/archive/
-Conference Proceedings,DOLAP: Data Warehousing and OLAP,,,,1998 (November 1998),2013 (October 2013),http://portal.acm.org/proceedings/dolap/,http://portal.acm.org/proceedings/dolap/archive/
-Conference Proceedings,DOSTA: Domain Specific Approaches to Software Test Automation,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/dosta/,http://portal.acm.org/proceedings/dosta/archive/
-Conference Proceedings,DPDS: Databases in Parallel and Distributed Systems,,,,1990 (July 1990),1988 (January 2000),http://portal.acm.org/proceedings/dpds/,http://portal.acm.org/proceedings/dpds/archive/
-Conference Proceedings,DPPI: Designing Pleasurable Products and Interfaces,,,,2003 (June 2003),2013 (September 2013),http://portal.acm.org/proceedings/dppi/,http://portal.acm.org/proceedings/dppi/archive/
-Conference Proceedings,DRM: Digital Rights Management,,,,2003 (October 2003),2011 (October 2011),http://portal.acm.org/proceedings/drm/,http://portal.acm.org/proceedings/drm/archive/
-Conference Proceedings,DS-RT: Distributed Simulation and Real Time Applications,,,,2000 (August 2000),2012 (October 2012),http://portal.acm.org/proceedings/ds-rt/,http://portal.acm.org/proceedings/ds-rt/archive/
-Conference Proceedings,DSAL: Domain-Specific Aspect Languages,,,,2007 (March 2007),2012 (March 2012),http://portal.acm.org/proceedings/dsal/,http://portal.acm.org/proceedings/dsal/archive/
-Conference Proceedings,DSL: Domain-Specific Languages,,,,1999 (December 1999),1999 (December 1999),http://portal.acm.org/proceedings/dsl/,http://portal.acm.org/proceedings/dsl/archive/
-Conference Proceedings,DSM: Doctoral Symposium on Middleware,,,,2004 (October 2004),2012 (October 2012),http://portal.acm.org/proceedings/dsm/,http://portal.acm.org/proceedings/dsm/archive/
-Conference Proceedings,DSMM: Data-Intensive Software Management and Mining,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/dsmm/,http://portal.acm.org/proceedings/dsmm/archive/
-Conference Proceedings,DTMBIO: Data and Text Mining in Biomedical Informatics,,,,2008 (October 2008),2013 (November 2013),http://portal.acm.org/proceedings/dtmbio/,http://portal.acm.org/proceedings/dtmbio/archive/
-Conference Proceedings,DUX: Designing for User eXperiences,,,,2003 (June 2003),2007 (November 2007),http://portal.acm.org/proceedings/dux/,http://portal.acm.org/proceedings/dux/archive/
-Conference Proceedings,DYADEM-FTS: Dependeability Models for Fault-Tolerant Systems,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/dyadem-fts/,http://portal.acm.org/proceedings/dyadem-fts/archive/
-Conference Proceedings,DYNAMO: Dynamic and Adaptive Compilation and Optimization,,,,2000 (January 2000),2000 (January 2000),http://portal.acm.org/proceedings/dynamo/,http://portal.acm.org/proceedings/dynamo/archive/
-Conference Proceedings,DaGreS: Data Grids for eScience,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/dagres/,http://portal.acm.org/proceedings/dagres/archive/
-Conference Proceedings,DaMaP: Data Management in Peer-to-Peer Systems,,,,2008 (March 2008),2008 (March 2008),http://portal.acm.org/proceedings/damap/,http://portal.acm.org/proceedings/damap/archive/
-Conference Proceedings,DaMoN: Data Management on New Hardware,,,,2005 (June 2005),2013 (June 2013),http://portal.acm.org/proceedings/damon/,http://portal.acm.org/proceedings/damon/archive/
-Conference Proceedings,DataX: Database Technologies for Handling XML Information on the Web,,,,2008 (March 2008),2008 (March 2008),http://portal.acm.org/proceedings/datax/,http://portal.acm.org/proceedings/datax/archive/
-Conference Proceedings,DocEng: Document Engineering,,,,2001 (November 2001),2013 (September 2013),http://portal.acm.org/proceedings/doceng/,http://portal.acm.org/proceedings/doceng/archive/
-Conference Proceedings,Dutch HCI: Dutch directions in HCI,,,,2004 (June 2004),2004 (June 2004),http://portal.acm.org/proceedings/dutchhci/,http://portal.acm.org/proceedings/dutchhci/archive/
-Conference Proceedings,E-WIND: Experimental Approaches to Wireless Network Design and Analysis,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/e-wind/,http://portal.acm.org/proceedings/e-wind/archive/
-Conference Proceedings,EA: Early Aspects,,,,2006 (May 2006),2011 (March 2011),http://portal.acm.org/proceedings/ea/,http://portal.acm.org/proceedings/ea/archive/
-Conference Proceedings,EATIS: Euro American Conference on Telematics and Information Systems,,,,2007 (May 2007),2012 (May 2012),http://portal.acm.org/proceedings/eatis/,http://portal.acm.org/proceedings/eatis/archive/
-Conference Proceedings,EC: Electronic Commerce,,,,1999 (November 1999),2013 (June 2013),http://portal.acm.org/proceedings/ec/,http://portal.acm.org/proceedings/ec/archive/
-Conference Proceedings,ECA: Ethics in the Computer Age,,,,1994 (November 1994),1994 (November 1994),http://portal.acm.org/proceedings/eca/,http://portal.acm.org/proceedings/eca/archive/
-Conference Proceedings,ECCE: European Conference on Cognitive Ergonomics,,,,2006 (September 2006),2013 (August 2013),http://portal.acm.org/proceedings/ecce/,http://portal.acm.org/proceedings/ecce/archive/
-Conference Proceedings,ECHT: European Conference on Hypermedia Technology,,,,1992 (November 1992),1994 (September 1994),http://portal.acm.org/proceedings/echt/,http://portal.acm.org/proceedings/echt/archive/
-Conference Proceedings,ECIR: European Conference on Information Retrieval,,,,2008 (March 2008),2012 (April 2012),http://portal.acm.org/proceedings/ecir/,http://portal.acm.org/proceedings/ecir/archive/
-Conference Proceedings,ECMFA-TW: ECMFA Traceability Workshop,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/ecmfa-tw/,http://portal.acm.org/proceedings/ecmfa-tw/archive/
-Conference Proceedings,ECOOP: European Conference on Object-Oriented Programming,,,,2007 (July 2007),2013 (July 2013),http://portal.acm.org/proceedings/ecoop/,http://portal.acm.org/proceedings/ecoop/archive/
-Conference Proceedings,ECSA: European Conference on Software Architecture,,,,2010 (August 2010),2012 (August 2012),http://portal.acm.org/proceedings/ecsa/,http://portal.acm.org/proceedings/ecsa/archive/
-Conference Proceedings,EDBT: Extending Database Technology,,,,2008 (March 2008),2013 (March 2013),http://portal.acm.org/proceedings/edbt/,http://portal.acm.org/proceedings/edbt/archive/
-Conference Proceedings,EDSER: Economics-Driven Software Engineering Research,,,,2005 (May 2005),2006 (May 2006),http://portal.acm.org/proceedings/edser/,http://portal.acm.org/proceedings/edser/archive/
-Conference Proceedings,EDT: Emerging Displays Technologies,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/edt/,http://portal.acm.org/proceedings/edt/archive/
-Conference Proceedings,EDTC: European Conference on Design and Test,,,,1995 (March 1995),1997 (March 1997),http://portal.acm.org/proceedings/edtc/,http://portal.acm.org/proceedings/edtc/archive/
-Conference Proceedings,EESR: End-to-end, Sense-and-respond Systems, Applications and Services,,,,2005 (June 2005),2005 (June 2005),http://portal.acm.org/proceedings/eesr/,http://portal.acm.org/proceedings/eesr/archive/
-Conference Proceedings,EFTS: Engineering Fault Tolerant Systems,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/efts/,http://portal.acm.org/proceedings/efts/archive/
-Conference Proceedings,EGPGV: Eurographics Workshop on Parallel Graphics and Visualization,,,,2002 (September 2002),2002 (September 2002),http://portal.acm.org/proceedings/egpgv/,http://portal.acm.org/proceedings/egpgv/archive/
-Conference Proceedings,EGRW: Eurographics Workshop on Rendering,,,,2002 (July 2002),2002 (July 2002),http://portal.acm.org/proceedings/egrw/,http://portal.acm.org/proceedings/egrw/archive/
-Conference Proceedings,EGVE: Virtual Environments,,,,2002 (May 2002),2007 (July 2007),http://portal.acm.org/proceedings/egve/,http://portal.acm.org/proceedings/egve/archive/
-Conference Proceedings,EICS: Engineering Interactive Computing Systems,,,,2009 (July 2009),2013 (June 2013),http://portal.acm.org/proceedings/eics/,http://portal.acm.org/proceedings/eics/archive/
-Conference Proceedings,ELW: European Lisp Workshop,,,,2009 (July 2009),2010 (June 2010),http://portal.acm.org/proceedings/elw/,http://portal.acm.org/proceedings/elw/archive/
-Conference Proceedings,EMSOFT: Embedded Software,,,,2004 (September 2004),2013 (September 2013),http://portal.acm.org/proceedings/emsoft/,http://portal.acm.org/proceedings/emsoft/archive/
-Conference Proceedings,EOMAS: Enterprises & Organizational Modeling and Simulation,,,,2009 (June 2009),2010 (June 2010),http://portal.acm.org/proceedings/eomas/,http://portal.acm.org/proceedings/eomas/archive/
-Conference Proceedings,EPIA: Progress in Artificial Intelligence,,,,2007 (December 2007),2007 (December 2007),http://portal.acm.org/proceedings/epia/,http://portal.acm.org/proceedings/epia/archive/
-Conference Proceedings,ERLANG: ERLANG,,,,2002 (October 2002),2013 (September 2013),http://portal.acm.org/proceedings/erlang/,http://portal.acm.org/proceedings/erlang/archive/
-Conference Proceedings,ESAIR: Exploiting Semantic Annotations in Information Retrieval,,,,2009 (February 2009),2013 (October 2013),http://portal.acm.org/proceedings/esair/,http://portal.acm.org/proceedings/esair/archive/
-Conference Proceedings,ESC: Economics of Software and Computation,,,,2007 (May 2007),2013 (November 2013),http://portal.acm.org/proceedings/esc/,http://portal.acm.org/proceedings/esc/archive/
-Conference Proceedings,ESEC/FSE: European Software Engineering Conference,,,,1997 (November 1997),2013 (August 2013),http://portal.acm.org/proceedings/esec/fse/,http://portal.acm.org/proceedings/esec/fse/archive/
-Conference Proceedings,ESEM: Empirical Software Engineering and Measurement,,,,2007 (September 2007),2012 (September 2012),http://portal.acm.org/proceedings/esem/,http://portal.acm.org/proceedings/esem/archive/
-Conference Proceedings,ESP: Empirical Studies of Programmers,,,,1997 (October 1997),1997 (October 1997),http://portal.acm.org/proceedings/esp/,http://portal.acm.org/proceedings/esp/archive/
-Conference Proceedings,ESSPE: Engineering of Software Services for Pervasive Environments,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/esspe/,http://portal.acm.org/proceedings/esspe/archive/
-Conference Proceedings,ESTMED: Embedded Systems for Real Time Multimedia,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/estmed/,http://portal.acm.org/proceedings/estmed/archive/
-Conference Proceedings,ETOOS: Testing Object-Oriented Systems,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/etoos/,http://portal.acm.org/proceedings/etoos/archive/
-Conference Proceedings,ETP: Effective Telepresence,,,,2003 (November 2003),2004 (October 2004),http://portal.acm.org/proceedings/etp/,http://portal.acm.org/proceedings/etp/archive/
-Conference Proceedings,ETRA: Eye Tracking Research and Applications,,,,2000 (November 2000),2012 (March 2012),http://portal.acm.org/proceedings/etra/,http://portal.acm.org/proceedings/etra/archive/
-Conference Proceedings,EURO-DAC: European Design Automation,,,,1990 (March 1990),1996 (September 1996),http://portal.acm.org/proceedings/euro-dac/,http://portal.acm.org/proceedings/euro-dac/archive/
-Conference Proceedings,EUROSEC: European Workshop on System Security,,,,2008 (March 2008),2011 (April 2011),http://portal.acm.org/proceedings/eurosec/,http://portal.acm.org/proceedings/eurosec/archive/
-Conference Proceedings,EUSAI: European Union symposium on Ambient intelligence,,,,2004 (November 2004),2004 (November 2004),http://portal.acm.org/proceedings/eusai/,http://portal.acm.org/proceedings/eusai/archive/
-Conference Proceedings,EW: ACM SIGOPS European Workshop,,,,1985 (January 1985),2004 (September 2004),http://portal.acm.org/proceedings/ew/,http://portal.acm.org/proceedings/ew/archive/
-Conference Proceedings,EiMM: Events in Multimedia,,,,2009 (October 2009),2010 (October 2010),http://portal.acm.org/proceedings/eimm/,http://portal.acm.org/proceedings/eimm/archive/
-Conference Proceedings,EmNets: Embedded Networked Sensors,,,,2005 (April 2005),2007 (June 2007),http://portal.acm.org/proceedings/emnets/,http://portal.acm.org/proceedings/emnets/archive/
-Conference Proceedings,Emme: Educational Multimedia and Multimedia Education,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/emme/,http://portal.acm.org/proceedings/emme/archive/
-Conference Proceedings,Ergo'IA: Ergonomie et Informatique Avancee Conference,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/ergo'ia/,http://portal.acm.org/proceedings/ergo'ia/archive/
-Conference Proceedings,EuroITV: Interactive TV &#38; Video,,,,2007 (May 2007),2013 (June 2013),http://portal.acm.org/proceedings/euroitv/,http://portal.acm.org/proceedings/euroitv/archive/
-Conference Proceedings,EuroSys: European Conference on Computer Systems,,,,2006 (April 2006),2013 (April 2013),http://portal.acm.org/proceedings/eurosys/,http://portal.acm.org/proceedings/eurosys/archive/
-Conference Proceedings,ExpCS: Experimental Computer Science,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/expcs/,http://portal.acm.org/proceedings/expcs/archive/
-Conference Proceedings,FAA: Facial Analysis and Animation,,,,2010 (October 2010),2012 (September 2012),http://portal.acm.org/proceedings/faa/,http://portal.acm.org/proceedings/faa/archive/
-Conference Proceedings,FAST: File and Storage Technologies,,,,2005 (December 2005),2012 (February 2012),http://portal.acm.org/proceedings/fast/,http://portal.acm.org/proceedings/fast/archive/
-Conference Proceedings,FDG: Foundations of Digital Games,,,,2009 (April 2009),2012 (May 2012),http://portal.acm.org/proceedings/fdg/,http://portal.acm.org/proceedings/fdg/archive/
-Conference Proceedings,FDNA: Future Directions in Network Architectures,,,,2003 (August 2003),2004 (August 2004),http://portal.acm.org/proceedings/fdna/,http://portal.acm.org/proceedings/fdna/archive/
-Conference Proceedings,FDPE: Functional and Declarative Progamming in Education,,,,2005 (September 2005),2008 (September 2008),http://portal.acm.org/proceedings/fdpe/,http://portal.acm.org/proceedings/fdpe/archive/
-Conference Proceedings,FIT: Frontiers of Information Technology,,,,2009 (December 2009),2010 (December 2010),http://portal.acm.org/proceedings/fit/,http://portal.acm.org/proceedings/fit/archive/
-Conference Proceedings,FLOSS: Emerging Trends in Free/Libre/Open Source Software Research and Development,,,,2007 (May 2007),2010 (May 2010),http://portal.acm.org/proceedings/floss/,http://portal.acm.org/proceedings/floss/archive/
-Conference Proceedings,FMICS: Formal Methods for Industrial Critical Systems,,,,2005 (September 2005),2005 (September 2005),http://portal.acm.org/proceedings/fmics/,http://portal.acm.org/proceedings/fmics/archive/
-Conference Proceedings,FMSE: Formal Methods in Security Engineering,,,,2003 (October 2003),2008 (October 2008),http://portal.acm.org/proceedings/fmse/,http://portal.acm.org/proceedings/fmse/archive/
-Conference Proceedings,FMSP: Formal Methods in Software Practice,,,,1998 (March 1998),2000 (August 2000),http://portal.acm.org/proceedings/fmsp/,http://portal.acm.org/proceedings/fmsp/archive/
-Conference Proceedings,FOAL: Foundations of Aspect-Oriented Languages,,,,2007 (March 2007),2013 (March 2013),http://portal.acm.org/proceedings/foal/,http://portal.acm.org/proceedings/foal/archive/
-Conference Proceedings,FOGA: Foundations of Genetic Algorithms,,,,2007 (January 2007),2013 (January 2013),http://portal.acm.org/proceedings/foga/,http://portal.acm.org/proceedings/foga/archive/
-Conference Proceedings,FOIS: Formal Ontology in Information Systems,,,,2001 (October 2001),2001 (October 2001),http://portal.acm.org/proceedings/fois/,http://portal.acm.org/proceedings/fois/archive/
-Conference Proceedings,FORTH: FORTH,,,,1989 (January 1989),1992 (December 1993),http://portal.acm.org/proceedings/forth/,http://portal.acm.org/proceedings/forth/archive/
-Conference Proceedings,FOSD: Feature-Oriented Software Development,,,,2009 (October 2009),2013 (October 2013),http://portal.acm.org/proceedings/fosd/,http://portal.acm.org/proceedings/fosd/archive/
-Conference Proceedings,FOSE: Future of Software Engineering,,,,2007 (May 2007),2007 (May 2007),http://portal.acm.org/proceedings/fose/,http://portal.acm.org/proceedings/fose/archive/
-Conference Proceedings,FOWANC: Foundations of Wireless Ad-Hoc and Sensor Networking and Computing,,,,2008 (May 2008),2009 (May 2009),http://portal.acm.org/proceedings/fowanc/,http://portal.acm.org/proceedings/fowanc/archive/
-Conference Proceedings,FPCA: Functional Programming Languages and Computer Architecture,,,,1981 (October 1981),1995 (October 1995),http://portal.acm.org/proceedings/fpca/,http://portal.acm.org/proceedings/fpca/archive/
-Conference Proceedings,FPGA: Field Programmable Gate Arrays,,,,1995 (February 1995),2013 (February 2013),http://portal.acm.org/proceedings/fpga/,http://portal.acm.org/proceedings/fpga/archive/
-Conference Proceedings,FPGAworld: FPGAworld,,,,2009 (September 2009),2013 (September 2013),http://portal.acm.org/proceedings/fpgaworld/,http://portal.acm.org/proceedings/fpgaworld/archive/
-Conference Proceedings,FSEDS: Foundations of Software Engineering Doctoral Symposium,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/fseds/,http://portal.acm.org/proceedings/fseds/archive/
-Conference Proceedings,FSEN: Fundamentals of Software Engineering,,,,2007 (April 2007),2007 (April 2007),http://portal.acm.org/proceedings/fsen/,http://portal.acm.org/proceedings/fsen/archive/
-Conference Proceedings,FSM: Functional Size Measurement,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/fsm/,http://portal.acm.org/proceedings/fsm/archive/
-Conference Proceedings,FTfJP: Formal Techniques for Java-like Programs,,,,2009 (July 2009),2013 (July 2013),http://portal.acm.org/proceedings/ftfjp/,http://portal.acm.org/proceedings/ftfjp/archive/
-Conference Proceedings,FeBiD: International Workshop on Feedback Control Implementation and Design in Computing Systems and Networks,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/febid/,http://portal.acm.org/proceedings/febid/archive/
-Conference Proceedings,FoSER: Future of Software Engineering Research ,,,,2010 (November 2010),2010 (November 2010),http://portal.acm.org/proceedings/foser/,http://portal.acm.org/proceedings/foser/archive/
-Conference Proceedings,Fun and Games: Fun and Games,,,,2010 (September 2010),2010 (September 2010),http://portal.acm.org/proceedings/funandgames/,http://portal.acm.org/proceedings/funandgames/archive/
-Conference Proceedings,Future Play: Future Play,,,,2007 (November 2007),2010 (May 2010),http://portal.acm.org/proceedings/futureplay/,http://portal.acm.org/proceedings/futureplay/archive/
-Conference Proceedings,GCE: Grid Computing Environments,,,,2009 (November 2009),2011 (November 2011),http://portal.acm.org/proceedings/gce/,http://portal.acm.org/proceedings/gce/archive/
-Conference Proceedings,GCM: Green Computing,,,,2010 (November 2010),2011 (December 2011),http://portal.acm.org/proceedings/gcm/,http://portal.acm.org/proceedings/gcm/archive/
-Conference Proceedings,GDCSE: Game Development in Computer Science Education,,,,2008 (February 2008),2008 (February 2008),http://portal.acm.org/proceedings/gdcse/,http://portal.acm.org/proceedings/gdcse/archive/
-Conference Proceedings,GEC: Genetic and Evolutionary Computation,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/gec/,http://portal.acm.org/proceedings/gec/archive/
-Conference Proceedings,GECCO: Genetic and Evolutionary Computation Conference,,,,1996 (July 1996),2013 (July 2013),http://portal.acm.org/proceedings/gecco/,http://portal.acm.org/proceedings/gecco/archive/
-Conference Proceedings,GH: Graphics Hardware,,,,1997 (August 1997),2008 (June 2008),http://portal.acm.org/proceedings/gh/,http://portal.acm.org/proceedings/gh/archive/
-Conference Proceedings,GI: Graphics Interface,,,,2004 (May 2004),2013 (May 2013),http://portal.acm.org/proceedings/gi/,http://portal.acm.org/proceedings/gi/archive/
-Conference Proceedings,GIR: Geographic Information Retrieval,,,,2005 (November 2005),2010 (February 2010),http://portal.acm.org/proceedings/gir/,http://portal.acm.org/proceedings/gir/archive/
-Conference Proceedings,GIS: Geographic Information Systems,,,,1996 (November 1996),2012 (November 2012),http://portal.acm.org/proceedings/gis/,http://portal.acm.org/proceedings/gis/archive/
-Conference Proceedings,GLSVLSI: Great Lakes Symposium on VLSI,,,,1995 (March 1995),2013 (May 2013),http://portal.acm.org/proceedings/glsvlsi/,http://portal.acm.org/proceedings/glsvlsi/archive/
-Conference Proceedings,GMAC: Grids Meets Autonomic Computing,,,,2009 (June 2009),2010 (June 2010),http://portal.acm.org/proceedings/gmac/,http://portal.acm.org/proceedings/gmac/archive/
-Conference Proceedings,GMW: Grid Monitoring,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/gmw/,http://portal.acm.org/proceedings/gmw/archive/
-Conference Proceedings,GPCE: Generative Programming and Component Engineering,,,,2002 (October 2002),2013 (October 2013),http://portal.acm.org/proceedings/gpce/,http://portal.acm.org/proceedings/gpce/archive/
-Conference Proceedings,GPGPU: General Purpose Processing on Graphics Processing Units,,,,2009 (March 2009),2012 (March 2012),http://portal.acm.org/proceedings/gpgpu/,http://portal.acm.org/proceedings/gpgpu/archive/
-Conference Proceedings,GRAPHITE: Computer Graphics and Interactive Techniques in Australia and South East Asia,,,,2003 (February 2003),2007 (December 2007),http://portal.acm.org/proceedings/graphite/,http://portal.acm.org/proceedings/graphite/archive/
-Conference Proceedings,GRID: Grid Computing,,,,2003 (November 2003),2008 (September 2008),http://portal.acm.org/proceedings/grid/,http://portal.acm.org/proceedings/grid/archive/
-Conference Proceedings,GROUP: Supporting Group Work,,,,1997 (November 1997),2012 (October 2012),http://portal.acm.org/proceedings/group/,http://portal.acm.org/proceedings/group/archive/
-Conference Proceedings,GRaMoT: Graph and Model Transformations,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/gramot/,http://portal.acm.org/proceedings/gramot/archive/
-Conference Proceedings,GSD: Global Software Development for the Practitioner,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/gsd/,http://portal.acm.org/proceedings/gsd/archive/
-Conference Proceedings,GTIP: Governance of Technology, Information, and Policies ,,,,2010 (December 2010),2011 (December 2011),http://portal.acm.org/proceedings/gtip/,http://portal.acm.org/proceedings/gtip/archive/
-Conference Proceedings,GaMMa: Global Integrated Model Management,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/gamma/,http://portal.acm.org/proceedings/gamma/archive/
-Conference Proceedings,GameNets: Game Theory for Communications and Networks,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/gamenets/,http://portal.acm.org/proceedings/gamenets/archive/
-Conference Proceedings,Green Networking: Green networking,,,,2010 (August 2010),2011 (August 2011),http://portal.acm.org/proceedings/greennetworking/,http://portal.acm.org/proceedings/greennetworking/archive/
-Conference Proceedings,GridNets: Networks for Grid Applications,,,,2007 (October 2007),2007 (October 2007),http://portal.acm.org/proceedings/gridnets/,http://portal.acm.org/proceedings/gridnets/archive/
-Conference Proceedings,HAS: Haptic User Interfaces in Ambient Media Systems,,,,2008 (February 2008),2008 (February 2008),http://portal.acm.org/proceedings/has/,http://portal.acm.org/proceedings/has/archive/
-Conference Proceedings,HCC: Human-Centered Computing,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/hcc/,http://portal.acm.org/proceedings/hcc/archive/
-Conference Proceedings,HCM: Human-Centered Multimedia,,,,2006 (October 2006),2007 (September 2007),http://portal.acm.org/proceedings/hcm/,http://portal.acm.org/proceedings/hcm/archive/
-Conference Proceedings,HCOMP: Human Computation,,,,2009 (June 2009),2010 (July 2010),http://portal.acm.org/proceedings/hcomp/,http://portal.acm.org/proceedings/hcomp/archive/
-Conference Proceedings,HDP: Hardcopy Document Processing,,,,2004 (November 2004),2004 (November 2004),http://portal.acm.org/proceedings/hdp/,http://portal.acm.org/proceedings/hdp/archive/
-Conference Proceedings,HIKM: Healthcare Information and Knowledge Management,,,,2006 (November 2006),2010 (January 2010),http://portal.acm.org/proceedings/hikm/,http://portal.acm.org/proceedings/hikm/archive/
-Conference Proceedings,HLLCA: High-Level-Language Computer Architecture,,,,1973 (November 1973),1973 (November 1973),http://portal.acm.org/proceedings/hllca/,http://portal.acm.org/proceedings/hllca/archive/
-Conference Proceedings,HLPP: High-level parallel programming and applications,,,,2010 (September 2010),2011 (September 2011),http://portal.acm.org/proceedings/hlpp/,http://portal.acm.org/proceedings/hlpp/archive/
-Conference Proceedings,HOPL: History of Programming Languages,,,,1993 (April 1993),2007 (June 2007),http://portal.acm.org/proceedings/hopl/,http://portal.acm.org/proceedings/hopl/archive/
-Conference Proceedings,HPCVirt: System-level Virtualization for High Performance Computing,,,,2008 (March 2008),2009 (March 2009),http://portal.acm.org/proceedings/hpcvirt/,http://portal.acm.org/proceedings/hpcvirt/archive/
-Conference Proceedings,HPDC: High Performance Distributed Computing,,,,1995 (August 1995),2013 (June 2013),http://portal.acm.org/proceedings/hpdc/,http://portal.acm.org/proceedings/hpdc/archive/
-Conference Proceedings,HPDGIS: High Performance and Distributed Geographic Information Systems ,,,,2010 (November 2010),2011 (November 2011),http://portal.acm.org/proceedings/hpdgis/,http://portal.acm.org/proceedings/hpdgis/archive/
-Conference Proceedings,HPG: High Perfomance Graphics,,,,2009 (August 2009),2013 (July 2013),http://portal.acm.org/proceedings/hpg/,http://portal.acm.org/proceedings/hpg/archive/
-Conference Proceedings,HPRCTA: High-Performance Reconfigurable Computing Technology and Applications,,,,2007 (November 2007),2009 (November 2009),http://portal.acm.org/proceedings/hprcta/,http://portal.acm.org/proceedings/hprcta/archive/
-Conference Proceedings,HPW: History of Personal Workstations,,,,1986 (January 1986),1986 (January 1986),http://portal.acm.org/proceedings/hpw/,http://portal.acm.org/proceedings/hpw/archive/
-Conference Proceedings,HRI: Human-Robot Interaction,,,,2006 (March 2006),2013 (March 2013),http://portal.acm.org/proceedings/hri/,http://portal.acm.org/proceedings/hri/archive/
-Conference Proceedings,HSCC: Hybrid Systems: Computation and Control,,,,2010 (April 2010),2013 (April 2013),http://portal.acm.org/proceedings/hscc/,http://portal.acm.org/proceedings/hscc/archive/
-Conference Proceedings,HSNC: History of Scientific and Numeric Computation,,,,1987 (October 1987),1987 (October 1987),http://portal.acm.org/proceedings/hsnc/,http://portal.acm.org/proceedings/hsnc/archive/
-Conference Proceedings,HSSE: Human and Social Factors of Software Engineering,,,,2005 (May 2005),2005 (May 2005),http://portal.acm.org/proceedings/hsse/,http://portal.acm.org/proceedings/hsse/archive/
-Conference Proceedings,HT: Hypertext and hypermedia,,,,1987 (November 1987),2013 (May 2013),http://portal.acm.org/proceedings/ht/,http://portal.acm.org/proceedings/ht/archive/
-Conference Proceedings,Haskell: Haskell,,,,2002 (October 2002),2013 (September 2013),http://portal.acm.org/proceedings/haskell/,http://portal.acm.org/proceedings/haskell/archive/
-Conference Proceedings,HealthNet: Networking Support for Health Care and Assisted Living Environments,,,,2007 (June 2007),2008 (June 2008),http://portal.acm.org/proceedings/healthnet/,http://portal.acm.org/proceedings/healthnet/archive/
-Conference Proceedings,HetRec: Information Heterogeneity and Fusion in Recommender Systems ,,,,2010 (September 2010),2011 (October 2011),http://portal.acm.org/proceedings/hetrec/,http://portal.acm.org/proceedings/hetrec/archive/
-Conference Proceedings,HeterSanet: Heterogeneous Sensor and Actor Networks,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/hetersanet/,http://portal.acm.org/proceedings/hetersanet/archive/
-Conference Proceedings,HiPC: High Performance Computing ,,,,2008 (December 2008),2008 (December 2008),http://portal.acm.org/proceedings/hipc/,http://portal.acm.org/proceedings/hipc/archive/
-Conference Proceedings,HomeNets: Home Networks,,,,2010 (September 2010),2011 (August 2011),http://portal.acm.org/proceedings/homenets/,http://portal.acm.org/proceedings/homenets/archive/
-Conference Proceedings,HotMobile: Mobile Computing Systems and Applications,,,,2008 (February 2008),2013 (February 2013),http://portal.acm.org/proceedings/hotmobile/,http://portal.acm.org/proceedings/hotmobile/archive/
-Conference Proceedings,HotPlanet: Hot Topics of Planet-Scale Mobility Measurements,,,,2009 (June 2009),2013 (August 2013),http://portal.acm.org/proceedings/hotplanet/,http://portal.acm.org/proceedings/hotplanet/archive/
-Conference Proceedings,HotSWUp: Hot Topics in Software Upgrades,,,,2008 (October 2008),2009 (October 2009),http://portal.acm.org/proceedings/hotswup/,http://portal.acm.org/proceedings/hotswup/archive/
-Conference Proceedings,Hotnets: Hot Topics in Networks,,,,2010 (October 2010),2013 (November 2013),http://portal.acm.org/proceedings/hotnets/,http://portal.acm.org/proceedings/hotnets/archive/
-Conference Proceedings,HuCom: Human Factors and Computational Models in Negotiation,,,,2009 (December 2008),2009 (December 2008),http://portal.acm.org/proceedings/hucom/,http://portal.acm.org/proceedings/hucom/archive/
-Conference Proceedings,I-SEMANTICS: Semantic Systems,,,,2010 (September 2010),2013 (September 2013),http://portal.acm.org/proceedings/i-semantics/,http://portal.acm.org/proceedings/i-semantics/archive/
-Conference Proceedings,I3D: Interactive 3D Graphics and Games,,,,1987 (January 1987),2013 (March 2013),http://portal.acm.org/proceedings/i3d/,http://portal.acm.org/proceedings/i3d/archive/
-Conference Proceedings,IAT: Intelligent Agent Technology,,,,2006 (December 2006),2007 (November 2007),http://portal.acm.org/proceedings/iat/,http://portal.acm.org/proceedings/iat/archive/
-Conference Proceedings,ICAC3: Advances in Computing, Communication and Control,,,,2009 (January 2009),2009 (January 2009),http://portal.acm.org/proceedings/icac3/,http://portal.acm.org/proceedings/icac3/archive/
-Conference Proceedings,ICAC: Autonomic Computing,,,,2009 (June 2009),2012 (September 2012),http://portal.acm.org/proceedings/icac/,http://portal.acm.org/proceedings/icac/archive/
-Conference Proceedings,ICAIL: International Conference on Artificial Intelligence and Law,,,,1987 (December 1987),2013 (June 2013),http://portal.acm.org/proceedings/icail/,http://portal.acm.org/proceedings/icail/archive/
-Conference Proceedings,ICAIT: Advanced Infocomm Technology,,,,2008 (July 2008),2008 (July 2008),http://portal.acm.org/proceedings/icait/,http://portal.acm.org/proceedings/icait/archive/
-Conference Proceedings,ICAT: Augmented Tele-existence,,,,2005 (December 2005),2005 (December 2005),http://portal.acm.org/proceedings/icat/,http://portal.acm.org/proceedings/icat/archive/
-Conference Proceedings,ICCAD: International Conference on Computer-Aided Design,,,,1992 (November 1992),2012 (November 2012),http://portal.acm.org/proceedings/iccad/,http://portal.acm.org/proceedings/iccad/archive/
-Conference Proceedings,ICCPS: Cyber-Physical Systems,,,,2010 (April 2010),2013 (April 2013),http://portal.acm.org/proceedings/iccps/,http://portal.acm.org/proceedings/iccps/archive/
-Conference Proceedings,ICDL: International Conference on Dynamic Languages,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/icdl/,http://portal.acm.org/proceedings/icdl/archive/
-Conference Proceedings,ICDSC: Distributed Smart Cameras,,,,2010 (August 2010),2010 (August 2010),http://portal.acm.org/proceedings/icdsc/,http://portal.acm.org/proceedings/icdsc/archive/
-Conference Proceedings,ICDT: Database Theory,,,,2009 (March 2009),2013 (March 2013),http://portal.acm.org/proceedings/icdt/,http://portal.acm.org/proceedings/icdt/archive/
-Conference Proceedings,ICE: Information and Computation Economies,,,,1998 (October 1998),1998 (October 1998),http://portal.acm.org/proceedings/ice/,http://portal.acm.org/proceedings/ice/archive/
-Conference Proceedings,ICEC: International Conference on Electronic Commerce,,,,2003 (September 2003),2012 (August 2012),http://portal.acm.org/proceedings/icec/,http://portal.acm.org/proceedings/icec/archive/
-Conference Proceedings,ICEGOV: International Conference on Theory and Practice of Electronic Governance,,,,2007 (December 2007),2012 (October 2012),http://portal.acm.org/proceedings/icegov/,http://portal.acm.org/proceedings/icegov/archive/
-Conference Proceedings,ICER: International Computing Education Research Workshop,,,,2005 (October 2005),2013 (August 2013),http://portal.acm.org/proceedings/icer/,http://portal.acm.org/proceedings/icer/archive/
-Conference Proceedings,ICFP: International Conference on Functional Programmuing,,,,1996 (June 1996),2013 (September 2013),http://portal.acm.org/proceedings/icfp/,http://portal.acm.org/proceedings/icfp/archive/
-Conference Proceedings,ICHIT: International Conference on Hybrid Information Technology,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/ichit/,http://portal.acm.org/proceedings/ichit/archive/
-Conference Proceedings,ICIC: Intercultural Collaboration,,,,2010 (August 2010),2012 (March 2012),http://portal.acm.org/proceedings/icic/,http://portal.acm.org/proceedings/icic/archive/
-Conference Proceedings,ICIMCS: Internet Multimedia Computing and Service,,,,2009 (November 2009),2013 (August 2013),http://portal.acm.org/proceedings/icimcs/,http://portal.acm.org/proceedings/icimcs/archive/
-Conference Proceedings,ICIS: International Conference on Computer and Information Science,,,,1989 (December 1989),2009 (November 2009),http://portal.acm.org/proceedings/icis/,http://portal.acm.org/proceedings/icis/archive/
-Conference Proceedings,ICMI: International Conference on Multimodal Interfaces,,,,2002 (October 2002),2013 (December 2013),http://portal.acm.org/proceedings/icmi/,http://portal.acm.org/proceedings/icmi/archive/
-Conference Proceedings,ICML: International Conference on Machine Learning,,,,2004 (July 2004),2009 (June 2009),http://portal.acm.org/proceedings/icml/,http://portal.acm.org/proceedings/icml/archive/
-Conference Proceedings,ICOOOLPS: Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems,,,,2009 (July 2009),2013 (July 2013),http://portal.acm.org/proceedings/icooolps/,http://portal.acm.org/proceedings/icooolps/archive/
-Conference Proceedings,ICPS: Pervasive Services,,,,2008 (July 2008),2009 (July 2009),http://portal.acm.org/proceedings/icps/,http://portal.acm.org/proceedings/icps/archive/
-Conference Proceedings,ICPW: International Conference on Pragmatic Web,,,,2007 (October 2007),2008 (November 2008),http://portal.acm.org/proceedings/icpw/,http://portal.acm.org/proceedings/icpw/archive/
-Conference Proceedings,ICS: International Conference on Supercomputing,,,,1988 (June 1988),2013 (June 2013),http://portal.acm.org/proceedings/ics/,http://portal.acm.org/proceedings/ics/archive/
-Conference Proceedings,ICSE: International Conference on Software Engineering,,,,1976 (October 1976),2012 (June 2012),http://portal.acm.org/proceedings/icse/,http://portal.acm.org/proceedings/icse/archive/
-Conference Proceedings,ICSOC: International Conference on Service Oriented Computing,,,,2004 (November 2004),2004 (November 2004),http://portal.acm.org/proceedings/icsoc/,http://portal.acm.org/proceedings/icsoc/archive/
-Conference Proceedings,ICTD: Information and Communication Technologies and Development ,,,,2009 (April 2009),2013 (December 2013),http://portal.acm.org/proceedings/ictd/,http://portal.acm.org/proceedings/ictd/archive/
-Conference Proceedings,ICUIMC: International Conference on Ubiquitous Information Management and Communication,,,,2008 (January 2008),2013 (January 2013),http://portal.acm.org/proceedings/icuimc/,http://portal.acm.org/proceedings/icuimc/archive/
-Conference Proceedings,ICVGIP: Indian Conference on Computer Vision, Graphics and Image Processing,,,,2010 (December 2010),2012 (December 2012),http://portal.acm.org/proceedings/icvgip/,http://portal.acm.org/proceedings/icvgip/archive/
-Conference Proceedings,ICWE: Web Engineering,,,,2006 (July 2006),2006 (July 2006),http://portal.acm.org/proceedings/icwe/,http://portal.acm.org/proceedings/icwe/archive/
-Conference Proceedings,ICWET: Workshop on Emerging Trends in Technology,,,,2010 (February 2010),2011 (February 2011),http://portal.acm.org/proceedings/icwet/,http://portal.acm.org/proceedings/icwet/archive/
-Conference Proceedings,IDAR: Innovative Database Research,,,,2008 (June 2008),2010 (June 2010),http://portal.acm.org/proceedings/idar/,http://portal.acm.org/proceedings/idar/archive/
-Conference Proceedings,IDC: Interaction Design and Children,,,,2003 (July 2003),2013 (June 2013),http://portal.acm.org/proceedings/idc/,http://portal.acm.org/proceedings/idc/archive/
-Conference Proceedings,IDEAS: International Database Engineering &#38; Applications Symposium,,,,2008 (September 2008),2013 (October 2013),http://portal.acm.org/proceedings/ideas/,http://portal.acm.org/proceedings/ideas/archive/
-Conference Proceedings,IDL: Interface Definition Languages,,,,1994 (August 1994),1994 (August 1994),http://portal.acm.org/proceedings/idl/,http://portal.acm.org/proceedings/idl/archive/
-Conference Proceedings,IDTRUST: Identity and Trust on the Internet,,,,2008 (March 2008),2010 (April 2010),http://portal.acm.org/proceedings/idtrust/,http://portal.acm.org/proceedings/idtrust/archive/
-Conference Proceedings,IE: Interactive Entertainment,,,,2006 (December 2006),2013 (September 2013),http://portal.acm.org/proceedings/ie/,http://portal.acm.org/proceedings/ie/archive/
-Conference Proceedings,IEA/AIE: Industrial and Engineering Applications of Artificial Intelligence and Expert Systems,,,,1988 (June 1988),2011 (June 2011),http://portal.acm.org/proceedings/iea/aie/,http://portal.acm.org/proceedings/iea/aie/archive/
-Conference Proceedings,IFMT: Next-Generation Multicore/Manycore Technologies,,,,2008 (November 2008),2010 (June 2010),http://portal.acm.org/proceedings/ifmt/,http://portal.acm.org/proceedings/ifmt/archive/
-Conference Proceedings,IHC: Brazilian Symposium on Human Factors in Computing Systems,,,,2006 (November 2006),2012 (November 2012),http://portal.acm.org/proceedings/ihc/,http://portal.acm.org/proceedings/ihc/archive/
-Conference Proceedings,IHI: International Health Informatics Symposium,,,,2010 (November 2010),2012 (January 2012),http://portal.acm.org/proceedings/ihi/,http://portal.acm.org/proceedings/ihi/archive/
-Conference Proceedings,IHIS: Interoperability of Heterogeneous Information Systems,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/ihis/,http://portal.acm.org/proceedings/ihis/archive/
-Conference Proceedings,IHM: International Conference on Association Francophone d'Interaction Homme-Machine,,,,2002 (November 2002),2013 (November 2013),http://portal.acm.org/proceedings/ihm/,http://portal.acm.org/proceedings/ihm/archive/
-Conference Proceedings,IIES: Isolation and Integration in Embedded Systems,,,,2008 (April 2008),2009 (March 2009),http://portal.acm.org/proceedings/iies/,http://portal.acm.org/proceedings/iies/archive/
-Conference Proceedings,IIiX: Information Interaction in Context,,,,2006 (October 2006),2012 (August 2012),http://portal.acm.org/proceedings/iiix/,http://portal.acm.org/proceedings/iiix/archive/
-Conference Proceedings,ILC: International Lisp Conference,,,,2009 (April 2007),2010 (October 2010),http://portal.acm.org/proceedings/ilc/,http://portal.acm.org/proceedings/ilc/archive/
-Conference Proceedings,IMC: Internet Measurement Conference,,,,2003 (October 2003),2013 (October 2013),http://portal.acm.org/proceedings/imc/,http://portal.acm.org/proceedings/imc/archive/
-Conference Proceedings,IMCE: Interactive Multimedia for Consumer Electronics,,,,2009 (October 2009),2009 (October 2009),http://portal.acm.org/proceedings/imce/,http://portal.acm.org/proceedings/imce/archive/
-Conference Proceedings,IMW: Internet Measurement Workshop,,,,2001 (November 2001),2002 (November 2002),http://portal.acm.org/proceedings/imw/,http://portal.acm.org/proceedings/imw/archive/
-Conference Proceedings,INA-OCMC: Interconnection Network Architecture: On-Chip, Multi-Chip,,,,2011 (January 2011),2011 (January 2011),http://portal.acm.org/proceedings/ina-ocmc/,http://portal.acm.org/proceedings/ina-ocmc/archive/
-Conference Proceedings,INM: Internet Network Management,,,,2006 (September 2006),2007 (August 2007),http://portal.acm.org/proceedings/inm/,http://portal.acm.org/proceedings/inm/archive/
-Conference Proceedings,INT3: Intelligent Narrative Technologies,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/int3/,http://portal.acm.org/proceedings/int3/archive/
-Conference Proceedings,INTERACT: Interaction between Compilers and Computer Architecture,,,,2010 (March 2010),2010 (March 2010),http://portal.acm.org/proceedings/interact/,http://portal.acm.org/proceedings/interact/archive/
-Conference Proceedings,INTETAIN: Intelligent Technologies for Interactive Entertainment,,,,2007 (January 2008),2007 (January 2008),http://portal.acm.org/proceedings/intetain/,http://portal.acm.org/proceedings/intetain/archive/
-Conference Proceedings,IOPADS: I/O in Parallel and Distributed Systems,,,,1996 (May 1996),1999 (May 1999),http://portal.acm.org/proceedings/iopads/,http://portal.acm.org/proceedings/iopads/archive/
-Conference Proceedings,IPSN: Information Processing in Sensor Networks,,,,2004 (April 2004),2013 (April 2013),http://portal.acm.org/proceedings/ipsn/,http://portal.acm.org/proceedings/ipsn/archive/
-Conference Proceedings,IPT/EDT: Immersive Projection technologies/Emerging Display Technologies,,,,2008 (August 2008),2008 (August 2008),http://portal.acm.org/proceedings/ipt/edt/,http://portal.acm.org/proceedings/ipt/edt/archive/
-Conference Proceedings,IPTComm: Principles, Systems and Applications of IP Telecommunications,,,,2007 (July 2007),2010 (August 2010),http://portal.acm.org/proceedings/iptcomm/,http://portal.acm.org/proceedings/iptcomm/archive/
-Conference Proceedings,IQIS: Information Quality in Information Systems,,,,2004 (June 2004),2005 (June 2005),http://portal.acm.org/proceedings/iqis/,http://portal.acm.org/proceedings/iqis/archive/
-Conference Proceedings,IR: Intermediate Representations,,,,1995 (March 1995),1995 (March 1995),http://portal.acm.org/proceedings/ir/,http://portal.acm.org/proceedings/ir/archive/
-Conference Proceedings,IRAL: Information Retrieval with Asian Languages,,,,2000 (November 2000),2000 (November 2000),http://portal.acm.org/proceedings/iral/,http://portal.acm.org/proceedings/iral/archive/
-Conference Proceedings,IRE-ACM-AIEE: IRE-ACM-AIEE,,,,1957 (February 1957),1961 (May 1961),http://portal.acm.org/proceedings/ire-acm-aiee/,http://portal.acm.org/proceedings/ire-acm-aiee/archive/
-Conference Proceedings,IRTAW: Real-Time Ada,,,,1987 (October 1987),2007 (April 2007),http://portal.acm.org/proceedings/irtaw/,http://portal.acm.org/proceedings/irtaw/archive/
-Conference Proceedings,IS: Guidelines for undergraduate degree programs on Model curriculum and guidelines for undergraduate degree programs in information systems,,,,1997 (December 1997),1997 (December 1997),http://portal.acm.org/proceedings/is/,http://portal.acm.org/proceedings/is/archive/
-Conference Proceedings,ISA: Indoor Spatial Awareness ,,,,2010 (November 2010),2012 (November 2012),http://portal.acm.org/proceedings/isa/,http://portal.acm.org/proceedings/isa/archive/
-Conference Proceedings,ISAW: Software Architecture Workshop,,,,1996 (October 1996),1998 (November 1998),http://portal.acm.org/proceedings/isaw/,http://portal.acm.org/proceedings/isaw/archive/
-Conference Proceedings,ISB: International Symposium on Biocomputing,,,,2010 (February 2010),2010 (February 2010),http://portal.acm.org/proceedings/isb/,http://portal.acm.org/proceedings/isb/archive/
-Conference Proceedings,ISCA: International Symposium on Computer Architecture,,,,1973 (December 1973),2013 (June 2013),http://portal.acm.org/proceedings/isca/,http://portal.acm.org/proceedings/isca/archive/
-Conference Proceedings,ISEC: India Software Engineering Conference,,,,2008 (February 2008),2013 (February 2013),http://portal.acm.org/proceedings/isec/,http://portal.acm.org/proceedings/isec/archive/
-Conference Proceedings,ISESE: International Symposium on Empirical Software Engineering,,,,2002 (October 2002),2006 (September 2006),http://portal.acm.org/proceedings/isese/,http://portal.acm.org/proceedings/isese/archive/
-Conference Proceedings,ISLPED: International Symposium on Low Power Electronic Design,,,,1995 (April 1995),2012 (July 2012),http://portal.acm.org/proceedings/islped/,http://portal.acm.org/proceedings/islped/archive/
-Conference Proceedings,ISMAR: Mixed and Augmented Reality,,,,2002 (September 2002),2009 (October 2009),http://portal.acm.org/proceedings/ismar/,http://portal.acm.org/proceedings/ismar/archive/
-Conference Proceedings,ISMIS: International Symposium on Methodologies for Intelligent Systems,,,,1986 (December 1986),1986 (December 1986),http://portal.acm.org/proceedings/ismis/,http://portal.acm.org/proceedings/ismis/archive/
-Conference Proceedings,ISMM: Memory Management,,,,1998 (October 1998),2013 (June 2013),http://portal.acm.org/proceedings/ismm/,http://portal.acm.org/proceedings/ismm/archive/
-Conference Proceedings,ISPA: Parallel and Distributed Processing and Applications,,,,2003 (July 2003),2004 (December 2004),http://portal.acm.org/proceedings/ispa/,http://portal.acm.org/proceedings/ispa/archive/
-Conference Proceedings,ISPD: Physical Design,,,,1997 (April 1997),2013 (March 2013),http://portal.acm.org/proceedings/ispd/,http://portal.acm.org/proceedings/ispd/archive/
-Conference Proceedings,ISPW: International Software Process Workshop,,,,1988 (April 1988),1996 (June 1996),http://portal.acm.org/proceedings/ispw/,http://portal.acm.org/proceedings/ispw/archive/
-Conference Proceedings,ISQED: Quality Electronic Design,,,,2006 (March 2006),2006 (March 2006),http://portal.acm.org/proceedings/isqed/,http://portal.acm.org/proceedings/isqed/archive/
-Conference Proceedings,ISSAC: International Symposium of Symbolic and Algebraic Computation,,,,1989 (July 1989),2013 (June 2013),http://portal.acm.org/proceedings/issac/,http://portal.acm.org/proceedings/issac/archive/
-Conference Proceedings,ISSS: International Symposium on System Synthesis,,,,1994 (May 1994),2002 (October 2002),http://portal.acm.org/proceedings/isss/,http://portal.acm.org/proceedings/isss/archive/
-Conference Proceedings,ISSTA: International Symposium on Software Testing and Analysis,,,,1993 (August 1993),2013 (July 2013),http://portal.acm.org/proceedings/issta/,http://portal.acm.org/proceedings/issta/archive/
-Conference Proceedings,ISTA: Information Science, Technology and Applications,,,,2009 (March 2009),2009 (March 2009),http://portal.acm.org/proceedings/ista/,http://portal.acm.org/proceedings/ista/archive/
-Conference Proceedings,ISWSA: Intelligent Semantic Web &mdash; Services and Applications,,,,2010 (June 2010),2011 (April 2011),http://portal.acm.org/proceedings/iswsa/,http://portal.acm.org/proceedings/iswsa/archive/
-Conference Proceedings,ITS: Interactive Tabletops and Surfaces,,,,2009 (November 2009),2013 (October 2013),http://portal.acm.org/proceedings/its/,http://portal.acm.org/proceedings/its/archive/
-Conference Proceedings,ITiCSE: Innovation and Technology in Computer Science Education,,,,1996 (June 1996),2013 (July 2013),http://portal.acm.org/proceedings/iticse/,http://portal.acm.org/proceedings/iticse/archive/
-Conference Proceedings,IUCS: International Universal Communication Symposium,,,,2009 (December 2009),2009 (December 2009),http://portal.acm.org/proceedings/iucs/,http://portal.acm.org/proceedings/iucs/archive/
-Conference Proceedings,IUI: Intelligent User Interfaces,,,,1993 (February 1993),2013 (March 2013),http://portal.acm.org/proceedings/iui/,http://portal.acm.org/proceedings/iui/archive/
-Conference Proceedings,IVME: Interpreters, Virtual Machines and Emulators,,,,2003 (June 2003),2004 (June 2004),http://portal.acm.org/proceedings/ivme/,http://portal.acm.org/proceedings/ivme/archive/
-Conference Proceedings,IW-SOSWE: Service Oriented Software Engineering,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/iw-soswe/,http://portal.acm.org/proceedings/iw-soswe/archive/
-Conference Proceedings,IWAAPF: Application and Advances of Problem Frames,,,,2006 (May 2006),2008 (May 2008),http://portal.acm.org/proceedings/iwaapf/,http://portal.acm.org/proceedings/iwaapf/archive/
-Conference Proceedings,IWACO: International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming,,,,2009 (July 2009),2009 (July 2009),http://portal.acm.org/proceedings/iwaco/,http://portal.acm.org/proceedings/iwaco/archive/
-Conference Proceedings,IWCMC: International Wireless Communications and Mobile Computing Conference,,,,2006 (July 2006),2010 (June 2010),http://portal.acm.org/proceedings/iwcmc/,http://portal.acm.org/proceedings/iwcmc/archive/
-Conference Proceedings,IWCTS: Computational Transportation Science,,,,2009 (November 2009),2013 (November 2013),http://portal.acm.org/proceedings/iwcts/,http://portal.acm.org/proceedings/iwcts/archive/
-Conference Proceedings,IWDE: Digital Engineering,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/iwde/,http://portal.acm.org/proceedings/iwde/archive/
-Conference Proceedings,IWGS: International Workshop on GeoStreaming,,,,2010 (November 2010),2012 (November 2012),http://portal.acm.org/proceedings/iwgs/,http://portal.acm.org/proceedings/iwgs/archive/
-Conference Proceedings,IWIC: Intercultural Collaboration,,,,2009 (February 2009),2009 (February 2009),http://portal.acm.org/proceedings/iwic/,http://portal.acm.org/proceedings/iwic/archive/
-Conference Proceedings,IWICSS: Incorporating COTS Software into Software Systems,,,,2007 (May 2007),2007 (May 2007),http://portal.acm.org/proceedings/iwicss/,http://portal.acm.org/proceedings/iwicss/archive/
-Conference Proceedings,IWMCP: Model Comparison in Practice,,,,2010 (July 2010),2011 (June 2011),http://portal.acm.org/proceedings/iwmcp/,http://portal.acm.org/proceedings/iwmcp/archive/
-Conference Proceedings,IWMSE: Multicore Software Engineering,,,,2008 (May 2008),2011 (May 2011),http://portal.acm.org/proceedings/iwmse/,http://portal.acm.org/proceedings/iwmse/archive/
-Conference Proceedings,IWOCE: Open Component EcoSystems,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/iwoce/,http://portal.acm.org/proceedings/iwoce/archive/
-Conference Proceedings,IWPSE-EVOL: Software Evolution and Principles of Software Evolution ,,,,2010 (September 2010),2011 (September 2011),http://portal.acm.org/proceedings/iwpse-evol/,http://portal.acm.org/proceedings/iwpse-evol/archive/
-Conference Proceedings,IWPSE: Principles of Software Evolution,,,,2001 (September 2001),2013 (August 2013),http://portal.acm.org/proceedings/iwpse/,http://portal.acm.org/proceedings/iwpse/archive/
-Conference Proceedings,IWQoS: Quality of Service,,,,2003 (June 2003),2012 (June 2012),http://portal.acm.org/proceedings/iwqos/,http://portal.acm.org/proceedings/iwqos/archive/
-Conference Proceedings,IWRIDL: Research Issues in Digital Libraries,,,,2007 (December 2006),2007 (December 2006),http://portal.acm.org/proceedings/iwridl/,http://portal.acm.org/proceedings/iwridl/archive/
-Conference Proceedings,IWSC: Software Clones,,,,2010 (May 2010),2011 (May 2011),http://portal.acm.org/proceedings/iwsc/,http://portal.acm.org/proceedings/iwsc/archive/
-Conference Proceedings,IWSESS: Software Engineering for Secure Systems,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/iwsess/,http://portal.acm.org/proceedings/iwsess/archive/
-Conference Proceedings,IWSSD: International Workshop on Software Specification and Design,,,,1989 (April 1989),2000 (November 2000),http://portal.acm.org/proceedings/iwssd/,http://portal.acm.org/proceedings/iwssd/archive/
-Conference Proceedings,IWST: Smalltalk Technologies,,,,2009 (August 2009),2012 (August 2012),http://portal.acm.org/proceedings/iwst/,http://portal.acm.org/proceedings/iwst/archive/
-Conference Proceedings,IWSTI: Satellite/Terrestrial Interworking,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/iwsti/,http://portal.acm.org/proceedings/iwsti/archive/
-Conference Proceedings,IWVS: Video Surveillance,,,,2003 (November 2003),2003 (November 2003),http://portal.acm.org/proceedings/iwvs/,http://portal.acm.org/proceedings/iwvs/archive/
-Conference Proceedings,InfoScale: Scalable Information Systems,,,,2006 (May 2006),2007 (June 2007),http://portal.acm.org/proceedings/infoscale/,http://portal.acm.org/proceedings/infoscale/archive/
-Conference Proceedings,InfoSecCD: Information Security Curriculum Development,,,,2004 (October 2004),2013 (October 2013),http://portal.acm.org/proceedings/infoseccd/,http://portal.acm.org/proceedings/infoseccd/archive/
-Conference Proceedings,InfoSecu: Information Security,,,,2004 (November 2004),2004 (November 2004),http://portal.acm.org/proceedings/infosecu/,http://portal.acm.org/proceedings/infosecu/archive/
-Conference Proceedings,Insider Threats: Insider Threats,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/insiderthreats/,http://portal.acm.org/proceedings/insiderthreats/archive/
-Conference Proceedings,InterSense: Integrated Internet Ad Hoc and Sensor Networks,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/intersense/,http://portal.acm.org/proceedings/intersense/archive/
-Conference Proceedings,Internetware: Internetware,,,,2009 (October 2009),2013 (October 2013),http://portal.acm.org/proceedings/internetware/,http://portal.acm.org/proceedings/internetware/archive/
-Conference Proceedings,Interperf: Interdisciplinary Systems Approach in Performance Evaluation and Design of Computer & Communications Systems,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/interperf/,http://portal.acm.org/proceedings/interperf/archive/
-Conference Proceedings,JAVA: Java Grande,,,,1999 (June 1999),2000 (June 2000),http://portal.acm.org/proceedings/java/,http://portal.acm.org/proceedings/java/archive/
-Conference Proceedings,JCDL: Joint Conference on Digital Libraries,,,,2001 (January 2001),2013 (July 2013),http://portal.acm.org/proceedings/jcdl/,http://portal.acm.org/proceedings/jcdl/archive/
-Conference Proceedings,JGI: ACM-ISCOPE conference on Java Grande,,,,2001 (June 2001),2002 (November 2002),http://portal.acm.org/proceedings/jgi/,http://portal.acm.org/proceedings/jgi/archive/
-Conference Proceedings,JTRES: Java Technologies for Real-Time and Embedded Systems,,,,2006 (October 2006),2013 (October 2013),http://portal.acm.org/proceedings/jtres/,http://portal.acm.org/proceedings/jtres/archive/
-Conference Proceedings,K-CAP: Knowledge Capture,,,,2001 (October 2001),2013 (June 2013),http://portal.acm.org/proceedings/k-cap/,http://portal.acm.org/proceedings/k-cap/archive/
-Conference Proceedings,KDD: Knowledge Discovery and Data Mining,,,,1999 (August 1999),2013 (August 2013),http://portal.acm.org/proceedings/kdd/,http://portal.acm.org/proceedings/kdd/archive/
-Conference Proceedings,KEYS: Keyword Search on Structured Data,,,,2009 (June 2009),2012 (May 2012),http://portal.acm.org/proceedings/keys/,http://portal.acm.org/proceedings/keys/archive/
-Conference Proceedings,Koli Calling: Koli Calling International Conference on Computing Education Research ,,,,2010 (October 2010),2013 (November 2013),http://portal.acm.org/proceedings/kolicalling/,http://portal.acm.org/proceedings/kolicalling/archive/
-Conference Proceedings,Koli: Computing Education Research,,,,2008 (November 2008),2008 (November 2008),http://portal.acm.org/proceedings/koli/,http://portal.acm.org/proceedings/koli/archive/
-Conference Proceedings,LADIS: Large-Scale Distributed Systems and Middleware,,,,2008 (September 2008),2010 (July 2010),http://portal.acm.org/proceedings/ladis/,http://portal.acm.org/proceedings/ladis/archive/
-Conference Proceedings,LANC: Latin American Networking Conference,,,,2003 (October 2003),2012 (October 2012),http://portal.acm.org/proceedings/lanc/,http://portal.acm.org/proceedings/lanc/archive/
-Conference Proceedings,LATE: Linking Aspect Technology and Evolution,,,,2007 (March 2007),2008 (March 2008),http://portal.acm.org/proceedings/late/,http://portal.acm.org/proceedings/late/archive/
-Conference Proceedings,LBSN: Location Based Social Networks,,,,2009 (November 2009),2012 (November 2012),http://portal.acm.org/proceedings/lbsn/,http://portal.acm.org/proceedings/lbsn/archive/
-Conference Proceedings,LCR: Languages, Compilers, and Run-time Support for Scalable Systems,,,,2004 (October 2004),2004 (October 2004),http://portal.acm.org/proceedings/lcr/,http://portal.acm.org/proceedings/lcr/archive/
-Conference Proceedings,LCSD: Library-Centric Software Design,,,,2007 (October 2007),2007 (October 2007),http://portal.acm.org/proceedings/lcsd/,http://portal.acm.org/proceedings/lcsd/archive/
-Conference Proceedings,LCTES: Languages, Compilers, and Tools for Embedded Systems,,,,1995 (November 1995),2013 (June 2013),http://portal.acm.org/proceedings/lctes/,http://portal.acm.org/proceedings/lctes/archive/
-Conference Proceedings,LDTA: Language Descriptions, Tools and Applications,,,,2010 (March 2010),2012 (March 2012),http://portal.acm.org/proceedings/ldta/,http://portal.acm.org/proceedings/ldta/archive/
-Conference Proceedings,LFMTP: Logical Frameworks and Meta-Languages,,,,2009 (August 2009),2013 (September 2013),http://portal.acm.org/proceedings/lfmtp/,http://portal.acm.org/proceedings/lfmtp/archive/
-Conference Proceedings,LFP: LISP and Functional Programming,,,,1980 (August 1980),1994 (July 1994),http://portal.acm.org/proceedings/lfp/,http://portal.acm.org/proceedings/lfp/archive/
-Conference Proceedings,LISP: Celebrating the 50th Anniversary of Lisp,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/lisp/,http://portal.acm.org/proceedings/lisp/archive/
-Conference Proceedings,LMSA: Leadership and Management in Software Architecture,,,,2008 (May 2008),2009 (May 2009),http://portal.acm.org/proceedings/lmsa/,http://portal.acm.org/proceedings/lmsa/archive/
-Conference Proceedings,LOCWEB: Location and the Web,,,,2008 (April 2008),2010 (November 2010),http://portal.acm.org/proceedings/locweb/,http://portal.acm.org/proceedings/locweb/archive/
-Conference Proceedings,LS-MMRM: Large-Scale Multimedia Retrieval and Mining,,,,2009 (October 2009),2009 (October 2009),http://portal.acm.org/proceedings/ls-mmrm/,http://portal.acm.org/proceedings/ls-mmrm/archive/
-Conference Proceedings,LSAD: Large-Scale Attack Defense,,,,2006 (September 2006),2007 (August 2007),http://portal.acm.org/proceedings/lsad/,http://portal.acm.org/proceedings/lsad/archive/
-Conference Proceedings,LSAP: Large-scale System and Application Performance,,,,2009 (June 2009),2011 (June 2011),http://portal.acm.org/proceedings/lsap/,http://portal.acm.org/proceedings/lsap/archive/
-Conference Proceedings,LSDS-IR: Large-Scale Distributed Systems for Information Retrieval,,,,2008 (October 2008),2011 (October 2011),http://portal.acm.org/proceedings/lsds-ir/,http://portal.acm.org/proceedings/lsds-ir/archive/
-Conference Proceedings,LUV: LISP Users and Vendors,,,,1992 (August 1992),1995 (August 1994),http://portal.acm.org/proceedings/luv/,http://portal.acm.org/proceedings/luv/archive/
-Conference Proceedings,LinkKDD: Link Discovery,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/linkkdd/,http://portal.acm.org/proceedings/linkkdd/archive/
-Conference Proceedings,M-MPAC: Middleware for Pervasive Mobile and Embedded Computing,,,,2009 (November 2009),2011 (December 2011),http://portal.acm.org/proceedings/m-mpac/,http://portal.acm.org/proceedings/m-mpac/archive/
-Conference Proceedings,MACS: Modeling and Analysis of Concerns in Software,,,,2005 (May 2005),2005 (May 2005),http://portal.acm.org/proceedings/macs/,http://portal.acm.org/proceedings/macs/archive/
-Conference Proceedings,MAI: Middleware Application Interaction,,,,2007 (March 2007),2009 (June 2009),http://portal.acm.org/proceedings/mai/,http://portal.acm.org/proceedings/mai/archive/
-Conference Proceedings,MASPEGHI: MechAnisms for SPEcialization, Generalization and inHerItance,,,,2010 (June 2010),2013 (July 2013),http://portal.acm.org/proceedings/maspeghi/,http://portal.acm.org/proceedings/maspeghi/archive/
-Conference Proceedings,MAW: Memory Access on Future Processors,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/maw/,http://portal.acm.org/proceedings/maw/archive/
-Conference Proceedings,MB: Methods and Techniques in Behavioral Research,,,,2010 (August 2010),2010 (August 2010),http://portal.acm.org/proceedings/mb/,http://portal.acm.org/proceedings/mb/archive/
-Conference Proceedings,MC: Middleware Companion,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/mc/,http://portal.acm.org/proceedings/mc/archive/
-Conference Proceedings,MCMC: Mobile Cloud Media Computing,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/mcmc/,http://portal.acm.org/proceedings/mcmc/archive/
-Conference Proceedings,MCPS: Contents Proctection and Security,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/mcps/,http://portal.acm.org/proceedings/mcps/archive/
-Conference Proceedings,MCS: Mobile Cloud Computing and Services,,,,2010 (June 2010),2013 (December 2013),http://portal.acm.org/proceedings/mcs/,http://portal.acm.org/proceedings/mcs/archive/
-Conference Proceedings,MD: Massive Datasets,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/md/,http://portal.acm.org/proceedings/md/archive/
-Conference Proceedings,MDAC: Massive Data Analytics on the Cloud,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/mdac/,http://portal.acm.org/proceedings/mdac/archive/
-Conference Proceedings,MDI: Model-Drive Interoperability,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/mdi/,http://portal.acm.org/proceedings/mdi/archive/
-Conference Proceedings,MDM: Mobile Data Management,,,,2005 (May 2005),2010 (May 2010),http://portal.acm.org/proceedings/mdm/,http://portal.acm.org/proceedings/mdm/archive/
-Conference Proceedings,MDMKDD: Multimedia Data Mining,,,,2010 (July 2010),2012 (August 2012),http://portal.acm.org/proceedings/mdmkdd/,http://portal.acm.org/proceedings/mdmkdd/archive/
-Conference Proceedings,MDS: Middleware Doctoral Symposium,,,,2006 (November 2006),2013 (December 2013),http://portal.acm.org/proceedings/mds/,http://portal.acm.org/proceedings/mds/archive/
-Conference Proceedings,MEDEA: Memory Performance: Dealing with Applications, Systems and Architecture,,,,2003 (September 2003),2009 (September 2009),http://portal.acm.org/proceedings/medea/,http://portal.acm.org/proceedings/medea/archive/
-Conference Proceedings,MEDES: Management of Emergent Digital EcoSystems,,,,2009 (October 2009),2013 (October 2013),http://portal.acm.org/proceedings/medes/,http://portal.acm.org/proceedings/medes/archive/
-Conference Proceedings,MELT: Mobile Entity Localization and Tracking in GPS-Less Environment,,,,2008 (September 2008),2008 (September 2008),http://portal.acm.org/proceedings/melt/,http://portal.acm.org/proceedings/melt/archive/
-Conference Proceedings,MEMOCODE: Formal Methods and Models for Co-Design,,,,2005 (July 2005),2007 (May 2007),http://portal.acm.org/proceedings/memocode/,http://portal.acm.org/proceedings/memocode/archive/
-Conference Proceedings,MERLIN: Mechanized Reasoning about Languages with Variable Binding,,,,2003 (August 2003),2005 (September 2005),http://portal.acm.org/proceedings/merlin/,http://portal.acm.org/proceedings/merlin/archive/
-Conference Proceedings,MG: Mardi Gras Conference,,,,2008 (January 2008),2008 (January 2008),http://portal.acm.org/proceedings/mg/,http://portal.acm.org/proceedings/mg/archive/
-Conference Proceedings,MGC: Middleware for Grids, Clouds and e-Science,,,,2004 (October 2004),2012 (December 2012),http://portal.acm.org/proceedings/mgc/,http://portal.acm.org/proceedings/mgc/archive/
-Conference Proceedings,MHC: Multimedia for Human Communication,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/mhc/,http://portal.acm.org/proceedings/mhc/archive/
-Conference Proceedings,MICNET: Mobile Internet Through Cellular Networks,,,,2009 (September 2009),2009 (September 2009),http://portal.acm.org/proceedings/micnet/,http://portal.acm.org/proceedings/micnet/archive/
-Conference Proceedings,MICRO: Microarchitecture,,,,1972 (September 1972),2013 (December 2013),http://portal.acm.org/proceedings/micro/,http://portal.acm.org/proceedings/micro/archive/
-Conference Proceedings,MIIT: Model Inference In Testing,,,,2010 (July 2010),2010 (July 2010),http://portal.acm.org/proceedings/miit/,http://portal.acm.org/proceedings/miit/archive/
-Conference Proceedings,MIR: Multimedia Information Retrieval,,,,2003 (November 2003),2010 (March 2010),http://portal.acm.org/proceedings/mir/,http://portal.acm.org/proceedings/mir/archive/
-Conference Proceedings,MIS: Metainformatics,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/mis/,http://portal.acm.org/proceedings/mis/archive/
-Conference Proceedings,MISE: Modeling in Software Engineering,,,,2007 (May 2007),2009 (May 2009),http://portal.acm.org/proceedings/mise/,http://portal.acm.org/proceedings/mise/archive/
-Conference Proceedings,ML: ML,,,,2006 (September 2006),2009 (August 2009),http://portal.acm.org/proceedings/ml/,http://portal.acm.org/proceedings/ml/archive/
-Conference Proceedings,MLG: Mining and Learning with Graphs,,,,2010 (July 2010),2010 (July 2010),http://portal.acm.org/proceedings/mlg/,http://portal.acm.org/proceedings/mlg/archive/
-Conference Proceedings,MLPA: Modules and Libraries for Proof Assistants,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/mlpa/,http://portal.acm.org/proceedings/mlpa/archive/
-Conference Proceedings,MMDB: Multimedia Databases,,,,2003 (November 2003),2004 (November 2004),http://portal.acm.org/proceedings/mmdb/,http://portal.acm.org/proceedings/mmdb/archive/
-Conference Proceedings,MML: Machine Learning and Music,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/mml/,http://portal.acm.org/proceedings/mml/archive/
-Conference Proceedings,MMSEC: Multimedia and Security,,,,2001 (October 2001),2013 (June 2013),http://portal.acm.org/proceedings/mmsec/,http://portal.acm.org/proceedings/mmsec/archive/
-Conference Proceedings,MMSys: Multimedia Systems,,,,2010 (February 2010),2013 (February 2013),http://portal.acm.org/proceedings/mmsys/,http://portal.acm.org/proceedings/mmsys/archive/
-Conference Proceedings,MNCNA: Middleware for Next-Generation Converged Networks and Applications,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/mncna/,http://portal.acm.org/proceedings/mncna/archive/
-Conference Proceedings,MOBILWARE: Mobile Wireless Middleware, Operating Systems, and Applications,,,,2007 (February 2008),2007 (February 2008),http://portal.acm.org/proceedings/mobilware/,http://portal.acm.org/proceedings/mobilware/archive/
-Conference Proceedings,MOCR: Multilingual OCR,,,,2009 (July 2009),2013 (August 2013),http://portal.acm.org/proceedings/mocr/,http://portal.acm.org/proceedings/mocr/archive/
-Conference Proceedings,MODDM: Model Driven Development for Middleware,,,,2006 (November 2006),2006 (November 2006),http://portal.acm.org/proceedings/moddm/,http://portal.acm.org/proceedings/moddm/archive/
-Conference Proceedings,MOMPES: Model-Based Methodologies for Pervasive and Embedded Software,,,,2010 (September 2010),2010 (September 2010),http://portal.acm.org/proceedings/mompes/,http://portal.acm.org/proceedings/mompes/archive/
-Conference Proceedings,MPAC: Middleware for Pervasive and Ad-Hoc Computing,,,,2004 (October 2004),2008 (December 2008),http://portal.acm.org/proceedings/mpac/,http://portal.acm.org/proceedings/mpac/archive/
-Conference Proceedings,MPEC: Models and Processes for the Evaluation of Off-the-Shelf Components,,,,2005 (May 2005),2005 (May 2005),http://portal.acm.org/proceedings/mpec/,http://portal.acm.org/proceedings/mpec/archive/
-Conference Proceedings,MPVA: Multimodal Pervasive Video Analysis,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/mpva/,http://portal.acm.org/proceedings/mpva/archive/
-Conference Proceedings,MRDM: Multi-Relational Mining,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/mrdm/,http://portal.acm.org/proceedings/mrdm/archive/
-Conference Proceedings,MS: Multimedia Semantics,,,,2007 (September 2007),2008 (October 2008),http://portal.acm.org/proceedings/ms/,http://portal.acm.org/proceedings/ms/archive/
-Conference Proceedings,MSC: Multimedia Service Composition,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/msc/,http://portal.acm.org/proceedings/msc/archive/
-Conference Proceedings,MSFP: Mathematically Structured Functional Programming,,,,2010 (September 2010),2010 (September 2010),http://portal.acm.org/proceedings/msfp/,http://portal.acm.org/proceedings/msfp/archive/
-Conference Proceedings,MSIADU: Media Studies and Implementations that Help Improving Access to Disabled Users,,,,2009 (October 2009),2009 (October 2009),http://portal.acm.org/proceedings/msiadu/,http://portal.acm.org/proceedings/msiadu/archive/
-Conference Proceedings,MSM: Modeling Social Media,,,,2010 (June 2010),2013 (May 2013),http://portal.acm.org/proceedings/msm/,http://portal.acm.org/proceedings/msm/archive/
-Conference Proceedings,MSPC: Memory System Performance and Correctness,,,,2002 (June 2002),2012 (June 2012),http://portal.acm.org/proceedings/mspc/,http://portal.acm.org/proceedings/mspc/archive/
-Conference Proceedings,MSR: Mining Software Repositories,,,,2005 (May 2005),2011 (May 2011),http://portal.acm.org/proceedings/msr/,http://portal.acm.org/proceedings/msr/archive/
-Conference Proceedings,MSWiM: Modeling, Analysis and Simulation of Wireless and Mobile Systems,,,,1999 (August 1999),2013 (November 2013),http://portal.acm.org/proceedings/mswim/,http://portal.acm.org/proceedings/mswim/archive/
-Conference Proceedings,MTAGS: Many-Task Computing on Grids and Supercomputers,,,,2009 (November 2009),2011 (November 2011),http://portal.acm.org/proceedings/mtags/,http://portal.acm.org/proceedings/mtags/archive/
-Conference Proceedings,MTDL: Multimedia Technologies for Distance Learning,,,,2009 (October 2009),2011 (December 2011),http://portal.acm.org/proceedings/mtdl/,http://portal.acm.org/proceedings/mtdl/archive/
-Conference Proceedings,MUCS: Managing Ubiquitous Communications and Services,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/mucs/,http://portal.acm.org/proceedings/mucs/archive/
-Conference Proceedings,MULTIMEDIA: Multimedia,,,,1993 (September 1993),2013 (October 2013),http://portal.acm.org/proceedings/multimedia/,http://portal.acm.org/proceedings/multimedia/archive/
-Conference Proceedings,MUM: Mobile and Ubiquitous Multimedia,,,,2004 (October 2004),2012 (December 2012),http://portal.acm.org/proceedings/mum/,http://portal.acm.org/proceedings/mum/archive/
-Conference Proceedings,MV: Mobile Video,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/mv/,http://portal.acm.org/proceedings/mv/archive/
-Conference Proceedings,MW: Multimedia Middleware,,,,2001 (October 2001),2012 (September 2012),http://portal.acm.org/proceedings/mw/,http://portal.acm.org/proceedings/mw/archive/
-Conference Proceedings,MWSOC: Middleware for Service Oriented Computing,,,,2006 (November 2006),2011 (December 2011),http://portal.acm.org/proceedings/mwsoc/,http://portal.acm.org/proceedings/mwsoc/archive/
-Conference Proceedings,MetriSec: Security Measurements and Metrics,,,,2010 (September 2010),2012 (September 2012),http://portal.acm.org/proceedings/metrisec/,http://portal.acm.org/proceedings/metrisec/archive/
-Conference Proceedings,MiFor: Multimedia in Forensics,,,,2009 (October 2009),2011 (November 2011),http://portal.acm.org/proceedings/mifor/,http://portal.acm.org/proceedings/mifor/archive/
-Conference Proceedings,MiNEMA: Middleware for Network Eccentric and Mobile Applications,,,,2008 (April 2008),2008 (April 2008),http://portal.acm.org/proceedings/minema/,http://portal.acm.org/proceedings/minema/archive/
-Conference Proceedings,MiSE: Models in Software Engineering,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/mise/,http://portal.acm.org/proceedings/mise/archive/
-Conference Proceedings,MidSec: Middleware Security,,,,2008 (December 2008),2008 (December 2008),http://portal.acm.org/proceedings/midsec/,http://portal.acm.org/proceedings/midsec/archive/
-Conference Proceedings,MidSens: Middleware Tools, Services and Run-Time Support for Sensor Networks,,,,2006 (November 2006),2012 (December 2012),http://portal.acm.org/proceedings/midsens/,http://portal.acm.org/proceedings/midsens/archive/
-Conference Proceedings,Middleware Industrial Track: Middleware Industrial Track,,,,2010 (November 2010),2013 (December 2013),http://portal.acm.org/proceedings/middlewareindustrialtrack/,http://portal.acm.org/proceedings/middlewareindustrialtrack/archive/
-Conference Proceedings,Middleware: Middleware,,,,2000 (April 2000),2012 (December 2012),http://portal.acm.org/proceedings/middleware/,http://portal.acm.org/proceedings/middleware/archive/
-Conference Proceedings,MindTrek: Entertainment and Media in the Ubiquitous Era,,,,2008 (October 2008),2013 (October 2013),http://portal.acm.org/proceedings/mindtrek/,http://portal.acm.org/proceedings/mindtrek/archive/
-Conference Proceedings,MineNet: Mining Network Data,,,,2005 (August 2005),2007 (June 2007),http://portal.acm.org/proceedings/minenet/,http://portal.acm.org/proceedings/minenet/archive/
-Conference Proceedings,MoDELS: Models in software engineering,,,,2005 (October 2005),2012 (September 2012),http://portal.acm.org/proceedings/models/,http://portal.acm.org/proceedings/models/archive/
-Conference Proceedings,MoDeVVa: Model-Driven Engineering, Verification and Validation,,,,2009 (October 2009),2012 (October 2012),http://portal.acm.org/proceedings/modevva/,http://portal.acm.org/proceedings/modevva/archive/
-Conference Proceedings,MoMM: Mobile Computing and Multimedia,,,,2008 (November 2008),2012 (December 2012),http://portal.acm.org/proceedings/momm/,http://portal.acm.org/proceedings/momm/archive/
-Conference Proceedings,MoMeTools: Models, Methods and Tools for Reproducible Network Research,,,,2003 (August 2003),2003 (August 2003),http://portal.acm.org/proceedings/mometools/,http://portal.acm.org/proceedings/mometools/archive/
-Conference Proceedings,MoSE+DQS: Model Driven Service Engineering and Data Quality and Security,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/mose+dqs/,http://portal.acm.org/proceedings/mose+dqs/archive/
-Conference Proceedings,MoViD: Mobile Video Delivery,,,,2010 (October 2010),2013 (February 2013),http://portal.acm.org/proceedings/movid/,http://portal.acm.org/proceedings/movid/archive/
-Conference Proceedings,MobConQoE: Mobile Content Quality of Experience,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/mobconqoe/,http://portal.acm.org/proceedings/mobconqoe/archive/
-Conference Proceedings,MobMid: Mobile Middleware,,,,2008 (December 2008),2008 (December 2008),http://portal.acm.org/proceedings/mobmid/,http://portal.acm.org/proceedings/mobmid/archive/
-Conference Proceedings,MobiArch: Mobility in the Evolving Internet Architecture,,,,2006 (December 2006),2013 (October 2013),http://portal.acm.org/proceedings/mobiarch/,http://portal.acm.org/proceedings/mobiarch/archive/
-Conference Proceedings,MobiCom: Mobile Computing,,,,1995 (December 1995),2013 (September 2013),http://portal.acm.org/proceedings/mobicom/,http://portal.acm.org/proceedings/mobicom/archive/
-Conference Proceedings,MobiDE: Data Engineering for Wireless and Mobile Access,,,,1999 (August 1999),2013 (June 2013),http://portal.acm.org/proceedings/mobide/,http://portal.acm.org/proceedings/mobide/archive/
-Conference Proceedings,MobiEval: System Evaluation for Mobile Platforms,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/mobieval/,http://portal.acm.org/proceedings/mobieval/archive/
-Conference Proceedings,MobiHeld: Networking, Systems, and Applications for Mobile Handhelds,,,,2009 (August 2009),2011 (October 2011),http://portal.acm.org/proceedings/mobiheld/,http://portal.acm.org/proceedings/mobiheld/archive/
-Conference Proceedings,MobiHoc: Mobile Ad Hoc Networking and Computing,,,,2000 (November 2000),2013 (July 2013),http://portal.acm.org/proceedings/mobihoc/,http://portal.acm.org/proceedings/mobihoc/archive/
-Conference Proceedings,MobiMedia: Mobile Multimedia Communications,,,,2006 (September 2006),2007 (August 2007),http://portal.acm.org/proceedings/mobimedia/,http://portal.acm.org/proceedings/mobimedia/archive/
-Conference Proceedings,MobiOpp: Mobile Opportunistic Networking,,,,2007 (June 2007),2012 (March 2012),http://portal.acm.org/proceedings/mobiopp/,http://portal.acm.org/proceedings/mobiopp/archive/
-Conference Proceedings,MobiShare: Decentralized Resource Sharing in Mobile Computing and Networking,,,,2006 (September 2006),2006 (September 2006),http://portal.acm.org/proceedings/mobishare/,http://portal.acm.org/proceedings/mobishare/archive/
-Conference Proceedings,MobiSys: Mobile Systems, Applications, and Services,,,,2003 (May 2003),2013 (June 2013),http://portal.acm.org/proceedings/mobisys/,http://portal.acm.org/proceedings/mobisys/archive/
-Conference Proceedings,MobiVirt: Virtualization in Mobile Computing,,,,2008 (June 2008),2008 (June 2008),http://portal.acm.org/proceedings/mobivirt/,http://portal.acm.org/proceedings/mobivirt/archive/
-Conference Proceedings,MobiWac: Mobility Management and Wireless Access,,,,2002 (October 2002),2013 (November 2013),http://portal.acm.org/proceedings/mobiwac/,http://portal.acm.org/proceedings/mobiwac/archive/
-Conference Proceedings,MobileHCI: Human Computer Interaction with Mobile Devices and Services,,,,2005 (September 2005),2013 (August 2013),http://portal.acm.org/proceedings/mobilehci/,http://portal.acm.org/proceedings/mobilehci/archive/
-Conference Proceedings,Mobility: Mobile Technology, Applications, and Systems,,,,2006 (October 2006),2009 (September 2009),http://portal.acm.org/proceedings/mobility/,http://portal.acm.org/proceedings/mobility/archive/
-Conference Proceedings,MobilityModels: Mobility Models,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/mobilitymodels/,http://portal.acm.org/proceedings/mobilitymodels/archive/
-Conference Proceedings,NAOMI: Next Generation Aspect Oriented Middleware,,,,2008 (April 2008),2008 (April 2008),http://portal.acm.org/proceedings/naomi/,http://portal.acm.org/proceedings/naomi/archive/
-Conference Proceedings,NDA: Network Data Anonymization,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/nda/,http://portal.acm.org/proceedings/nda/archive/
-Conference Proceedings,NETFLIX: Large-Scale Recommender Systems and the Netflix Prize Competition,,,,2008 (August 2008),2008 (August 2008),http://portal.acm.org/proceedings/netflix/,http://portal.acm.org/proceedings/netflix/archive/
-Conference Proceedings,NICELI: Network-I/O Convergence,,,,2003 (August 2003),2003 (August 2003),http://portal.acm.org/proceedings/niceli/,http://portal.acm.org/proceedings/niceli/archive/
-Conference Proceedings,NIME: New Interfaces for Musical Expression,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/nime/,http://portal.acm.org/proceedings/nime/archive/
-Conference Proceedings,NOSSDAV: Network and Operating Systems Support for Digital Audio and Video,,,,2001 (January 2001),2013 (February 2013),http://portal.acm.org/proceedings/nossdav/,http://portal.acm.org/proceedings/nossdav/archive/
-Conference Proceedings,NOTERE: New Technologies in Distributed Systems,,,,2008 (June 2008),2008 (June 2008),http://portal.acm.org/proceedings/notere/,http://portal.acm.org/proceedings/notere/archive/
-Conference Proceedings,NPAR: Non-Photorealistic Animation and Rendering,,,,2000 (June 2000),2013 (July 2013),http://portal.acm.org/proceedings/npar/,http://portal.acm.org/proceedings/npar/archive/
-Conference Proceedings,NPIV: New Paradigms in Information Visualization and Manipulation,,,,1997 (November 1997),1998 (November 1998),http://portal.acm.org/proceedings/npiv/,http://portal.acm.org/proceedings/npiv/archive/
-Conference Proceedings,NPIVM: NPIVM,,,,1999 (November 1999),1999 (November 1999),http://portal.acm.org/proceedings/npivm/,http://portal.acm.org/proceedings/npivm/archive/
-Conference Proceedings,NRBC: Next-Generation Residential Broadband Challenges,,,,2004 (October 2004),2004 (October 2004),http://portal.acm.org/proceedings/nrbc/,http://portal.acm.org/proceedings/nrbc/archive/
-Conference Proceedings,NSDI: Networked Systems Design & Implementation ,,,,2005 (May 2005),2011 (March 2011),http://portal.acm.org/proceedings/nsdi/,http://portal.acm.org/proceedings/nsdi/archive/
-Conference Proceedings,NSDR: Networked Systems for Developing Regions,,,,2007 (August 2007),2011 (June 2011),http://portal.acm.org/proceedings/nsdr/,http://portal.acm.org/proceedings/nsdr/archive/
-Conference Proceedings,NSEC: National Software Engineering Conference,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/nsec/,http://portal.acm.org/proceedings/nsec/archive/
-Conference Proceedings,NSPW: New Security Paradigms and Workshop,,,,1993 (August 1993),2013 (December 2013),http://portal.acm.org/proceedings/nspw/,http://portal.acm.org/proceedings/nspw/archive/
-Conference Proceedings,Nanoarch: Nanoscale Architectures,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/nanoarch/,http://portal.acm.org/proceedings/nanoarch/archive/
-Conference Proceedings,NetEcon: Economics of Networked Systems,,,,2008 (August 2008),2010 (October 2010),http://portal.acm.org/proceedings/netecon/,http://portal.acm.org/proceedings/netecon/archive/
-Conference Proceedings,NetGames: Network and Systems Support for Games,,,,2002 (April 2002),2012 (November 2012),http://portal.acm.org/proceedings/netgames/,http://portal.acm.org/proceedings/netgames/archive/
-Conference Proceedings,NetT: Network Troubleshooting,,,,2004 (September 2004),2004 (September 2004),http://portal.acm.org/proceedings/nett/,http://portal.acm.org/proceedings/nett/archive/
-Conference Proceedings,NoCArc: Network on Chip Architectures,,,,2009 (December 2009),2013 (December 2013),http://portal.acm.org/proceedings/nocarc/,http://portal.acm.org/proceedings/nocarc/archive/
-Conference Proceedings,NordiCHI: Nordic Conference on Human-Computer Interaction,,,,2002 (October 2002),2012 (October 2012),http://portal.acm.org/proceedings/nordichi/,http://portal.acm.org/proceedings/nordichi/archive/
-Conference Proceedings,OBI: Ontology-supported Business Intelligence,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/obi/,http://portal.acm.org/proceedings/obi/archive/
-Conference Proceedings,OM: Optimization of Middleware and Distributed Systems,,,,2001 (August 2001),2001 (August 2001),http://portal.acm.org/proceedings/om/,http://portal.acm.org/proceedings/om/archive/
-Conference Proceedings,ONISW: Ontologies and Information Systems for the Semantic Web,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/onisw/,http://portal.acm.org/proceedings/onisw/archive/
-Conference Proceedings,OODS: Object-Oriented Database Systems,,,,1986 (September 1986),1986 (September 1986),http://portal.acm.org/proceedings/oods/,http://portal.acm.org/proceedings/oods/archive/
-Conference Proceedings,OOPWORK: OOPWORK,,,,1986 (June 1986),1986 (June 1986),http://portal.acm.org/proceedings/oopwork/,http://portal.acm.org/proceedings/oopwork/archive/
-Conference Proceedings,OSDI: Operating Systems Design and Implementation,,,,1994 (November 1994),2012 (October 2012),http://portal.acm.org/proceedings/osdi/,http://portal.acm.org/proceedings/osdi/archive/
-Conference Proceedings,OSDM: Open Source Data Mining,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/osdm/,http://portal.acm.org/proceedings/osdm/archive/
-Conference Proceedings,OZCHI: Australian Computer-Human Interaction Special Interest Group: Design,,,,2006 (November 2006),2012 (November 2012),http://portal.acm.org/proceedings/ozchi/,http://portal.acm.org/proceedings/ozchi/archive/
-Conference Proceedings,P2PECON: Economics of Peer-to-Peer Systems,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/p2pecon/,http://portal.acm.org/proceedings/p2pecon/archive/
-Conference Proceedings,P2PIR: PPIR,,,,2005 (November 2005),2006 (November 2006),http://portal.acm.org/proceedings/p2pir/,http://portal.acm.org/proceedings/p2pir/archive/
-Conference Proceedings,PACT: Parallel Architectures and Compilation Techniques,,,,1993 (January 1993),2013 (October 2013),http://portal.acm.org/proceedings/pact/,http://portal.acm.org/proceedings/pact/archive/
-Conference Proceedings,PADD: Parallel and Distributed Debugging,,,,1988 (November 1988),1993 (December 1993),http://portal.acm.org/proceedings/padd/,http://portal.acm.org/proceedings/padd/archive/
-Conference Proceedings,PADS: Principles of Advanced and Distributed Simulation,,,,1993 (July 1993),2013 (May 2013),http://portal.acm.org/proceedings/pads/,http://portal.acm.org/proceedings/pads/archive/
-Conference Proceedings,PADTAD: Parallel and Distributed Systems: Testing, Analysis, and Debugging,,,,2006 (July 2006),2012 (July 2012),http://portal.acm.org/proceedings/padtad/,http://portal.acm.org/proceedings/padtad/archive/
-Conference Proceedings,PAIS: Privacy and Anonymity in Information Society,,,,2008 (March 2008),2011 (March 2011),http://portal.acm.org/proceedings/pais/,http://portal.acm.org/proceedings/pais/archive/
-Conference Proceedings,PASCO: Parallel Symbolic Computation,,,,1997 (July 1997),2010 (July 2010),http://portal.acm.org/proceedings/pasco/,http://portal.acm.org/proceedings/pasco/archive/
-Conference Proceedings,PASTE: Program Analysis for Software Tools and Engineering,,,,1998 (July 1998),2013 (June 2013),http://portal.acm.org/proceedings/paste/,http://portal.acm.org/proceedings/paste/archive/
-Conference Proceedings,PAVLAD: Privacy and Anonymity for Very Large Databases,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/pavlad/,http://portal.acm.org/proceedings/pavlad/archive/
-Conference Proceedings,PCAR: Practical Cognitive Agents and Robots,,,,2006 (November 2006),2010 (May 2010),http://portal.acm.org/proceedings/pcar/,http://portal.acm.org/proceedings/pcar/archive/
-Conference Proceedings,PCGames: Procedural Content Generation in Games,,,,2010 (June 2010),2011 (June 2011),http://portal.acm.org/proceedings/pcgames/,http://portal.acm.org/proceedings/pcgames/archive/
-Conference Proceedings,PCK: Principles of Computing & Knowledge,,,,2003 (June 2003),2003 (June 2003),http://portal.acm.org/proceedings/pck/,http://portal.acm.org/proceedings/pck/archive/
-Conference Proceedings,PCS: Personal Computer Security,,,,1986 (September 1986),1986 (September 1986),http://portal.acm.org/proceedings/pcs/,http://portal.acm.org/proceedings/pcs/archive/
-Conference Proceedings,PDC: Participatory Design,,,,2004 (July 2004),2012 (August 2012),http://portal.acm.org/proceedings/pdc/,http://portal.acm.org/proceedings/pdc/archive/
-Conference Proceedings,PDSW: Petascale Data Storage,,,,2007 (November 2007),2013 (November 2013),http://portal.acm.org/proceedings/pdsw/,http://portal.acm.org/proceedings/pdsw/archive/
-Conference Proceedings,PE-WASUN: Performance Evaluation of Wireless Ad hoc Sensor, and Ubiquitous Networks,,,,2004 (October 2004),2013 (November 2013),http://portal.acm.org/proceedings/pe-wasun/,http://portal.acm.org/proceedings/pe-wasun/archive/
-Conference Proceedings,PEICS: Pattern-Driven Engineering of Interactive Computing Systems,,,,2010 (July 2010),2011 (June 2011),http://portal.acm.org/proceedings/peics/,http://portal.acm.org/proceedings/peics/archive/
-Conference Proceedings,PEPM: Partial Evaluation and Program Manipulation,,,,1991 (May 1991),2013 (January 2013),http://portal.acm.org/proceedings/pepm/,http://portal.acm.org/proceedings/pepm/archive/
-Conference Proceedings,PERFORMANCE: Computer Performance Modelling, Measurement and Evaluation,,,,1980 (May 1980),1980 (May 1980),http://portal.acm.org/proceedings/performance/,http://portal.acm.org/proceedings/performance/archive/
-Conference Proceedings,PESOS: Principles of Engineering Service-Oriented Systems,,,,2009 (May 2009),2011 (May 2011),http://portal.acm.org/proceedings/pesos/,http://portal.acm.org/proceedings/pesos/archive/
-Conference Proceedings,PETRA: Pervasive Technologies Related to Assistive Environments,,,,2008 (July 2008),2013 (May 2013),http://portal.acm.org/proceedings/petra/,http://portal.acm.org/proceedings/petra/archive/
-Conference Proceedings,PGAS: Partitioned Global Address Space Programing Models,,,,2009 (October 2009),2010 (October 2010),http://portal.acm.org/proceedings/pgas/,http://portal.acm.org/proceedings/pgas/archive/
-Conference Proceedings,PIKM: Ph.D. Students in Information and Knowledge Management,,,,2007 (November 2007),2013 (November 2013),http://portal.acm.org/proceedings/pikm/,http://portal.acm.org/proceedings/pikm/archive/
-Conference Proceedings,PINS: Practice and Theory of Incentives in Networked Systems,,,,2004 (September 2004),2004 (September 2004),http://portal.acm.org/proceedings/pins/,http://portal.acm.org/proceedings/pins/archive/
-Conference Proceedings,PLAS: Programming Languages and Analysis for Security,,,,2006 (June 2006),2013 (June 2013),http://portal.acm.org/proceedings/plas/,http://portal.acm.org/proceedings/plas/archive/
-Conference Proceedings,PLATE: Linking Aspect Technology and Evolution,,,,2009 (March 2009),2009 (March 2009),http://portal.acm.org/proceedings/plate/,http://portal.acm.org/proceedings/plate/archive/
-Conference Proceedings,PLDI: Programming Language Design and Implementation,,,,1988 (June 1988),2013 (June 2013),http://portal.acm.org/proceedings/pldi/,http://portal.acm.org/proceedings/pldi/archive/
-Conference Proceedings,PLEASE: Product Line Approaches in Software Engineering,,,,2010 (May 2010),2011 (May 2011),http://portal.acm.org/proceedings/please/,http://portal.acm.org/proceedings/please/archive/
-Conference Proceedings,PLOS: Programming Languages and Operating Systems,,,,2006 (October 2006),2013 (November 2013),http://portal.acm.org/proceedings/plos/,http://portal.acm.org/proceedings/plos/archive/
-Conference Proceedings,PLPV: Programming Languages Meets Program Verification,,,,2007 (October 2007),2013 (January 2013),http://portal.acm.org/proceedings/plpv/,http://portal.acm.org/proceedings/plpv/archive/
-Conference Proceedings,PLoP: Pattern Languages of Programs,,,,2006 (October 2006),2010 (August 2009),http://portal.acm.org/proceedings/plop/,http://portal.acm.org/proceedings/plop/archive/
-Conference Proceedings,PMHWN: Performance Monitoring and Measurement of Heterogenous Wireless and Wired Networks,,,,2006 (October 2006),2013 (November 2013),http://portal.acm.org/proceedings/pmhwn/,http://portal.acm.org/proceedings/pmhwn/archive/
-Conference Proceedings,PODC: Principles of Distributed Computing,,,,1982 (August 1982),2013 (July 2013),http://portal.acm.org/proceedings/podc/,http://portal.acm.org/proceedings/podc/archive/
-Conference Proceedings,PODS: Principles of Database Systems,,,,1982 (March 1982),2013 (June 2013),http://portal.acm.org/proceedings/pods/,http://portal.acm.org/proceedings/pods/archive/
-Conference Proceedings,POMC: Principles of Mobile Computing,,,,2002 (October 2002),2002 (October 2002),http://portal.acm.org/proceedings/pomc/,http://portal.acm.org/proceedings/pomc/archive/
-Conference Proceedings,POOSC: Parallel/High-Performance Object-Oriented Scientific Computing,,,,2009 (July 2009),2010 (October 2010),http://portal.acm.org/proceedings/poosc/,http://portal.acm.org/proceedings/poosc/archive/
-Conference Proceedings,POPL: Principles of Programming Languages,,,,1973 (October 1973),2013 (January 2013),http://portal.acm.org/proceedings/popl/,http://portal.acm.org/proceedings/popl/archive/
-Conference Proceedings,PP-TV: Peer-to-Peer Streaming and IP-TV,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/pp-tv/,http://portal.acm.org/proceedings/pp-tv/archive/
-Conference Proceedings,PPDP: Principles and Practice of Declarative Programming,,,,2000 (September 2000),2013 (September 2013),http://portal.acm.org/proceedings/ppdp/,http://portal.acm.org/proceedings/ppdp/archive/
-Conference Proceedings,PPEALS: Parallel Programming: Experience with Applications, Languages and Systems,,,,1988 (January 1988),1988 (January 1988),http://portal.acm.org/proceedings/ppeals/,http://portal.acm.org/proceedings/ppeals/archive/
-Conference Proceedings,PPMMS: Peer-to-Peer Multimedia Streaming,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/ppmms/,http://portal.acm.org/proceedings/ppmms/archive/
-Conference Proceedings,PPPJ: Principles and Practice of Programming in Java,,,,2006 (August 2006),2013 (September 2013),http://portal.acm.org/proceedings/pppj/,http://portal.acm.org/proceedings/pppj/archive/
-Conference Proceedings,PPoPP: Principles and Practice of Parallel Programming,,,,1990 (February 1990),2013 (February 2013),http://portal.acm.org/proceedings/ppopp/,http://portal.acm.org/proceedings/ppopp/archive/
-Conference Proceedings,PRESTO: Programmable Routers for Extensible Services of Tomorrow,,,,2008 (August 2008),2010 (November 2010),http://portal.acm.org/proceedings/presto/,http://portal.acm.org/proceedings/presto/archive/
-Conference Proceedings,PROCAMS: Projector Camera Systems,,,,2008 (August 2008),2008 (August 2008),http://portal.acm.org/proceedings/procams/,http://portal.acm.org/proceedings/procams/archive/
-Conference Proceedings,PROMISE: Predictor Models in Software Engineering,,,,2005 (May 2005),2013 (October 2013),http://portal.acm.org/proceedings/promise/,http://portal.acm.org/proceedings/promise/archive/
-Conference Proceedings,PRS: Parallel Rendering,,,,1993 (November 1993),1997 (October 1997),http://portal.acm.org/proceedings/prs/,http://portal.acm.org/proceedings/prs/archive/
-Conference Proceedings,PST: Privacy, Security and Trust,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/pst/,http://portal.acm.org/proceedings/pst/archive/
-Conference Proceedings,PUI: Perceptive User Interfaces,,,,2001 (November 2001),2001 (November 2001),http://portal.acm.org/proceedings/pui/,http://portal.acm.org/proceedings/pui/archive/
-Conference Proceedings,PVG: Parallel and Large-Data Visualization and Graphics,,,,2001 (October 2001),2003 (October 2003),http://portal.acm.org/proceedings/pvg/,http://portal.acm.org/proceedings/pvg/archive/
-Conference Proceedings,PVGS: Parallel Visualization and Graphics,,,,1999 (October 1999),1999 (October 1999),http://portal.acm.org/proceedings/pvgs/,http://portal.acm.org/proceedings/pvgs/archive/
-Conference Proceedings,PaIR: Patent Information Retrieval,,,,2008 (October 2008),2011 (October 2011),http://portal.acm.org/proceedings/pair/,http://portal.acm.org/proceedings/pair/archive/
-Conference Proceedings,PerMIS: Performance Metrics for Intelligent Systems,,,,2007 (August 2007),2012 (March 2012),http://portal.acm.org/proceedings/permis/,http://portal.acm.org/proceedings/permis/archive/
-Conference Proceedings,Persuasive: Persuasive Technology,,,,2009 (April 2009),2009 (April 2009),http://portal.acm.org/proceedings/persuasive/,http://portal.acm.org/proceedings/persuasive/archive/
-Conference Proceedings,Ph.D.: EDBT Ph.D. workshop,,,,2008 (March 2008),2008 (March 2008),http://portal.acm.org/proceedings/ph.d./,http://portal.acm.org/proceedings/ph.d./archive/
-Conference Proceedings,QSWinet: Quality of Service and Security for Wireless in Mobile Networks,,,,2005 (October 2005),2012 (October 2012),http://portal.acm.org/proceedings/qswinet/,http://portal.acm.org/proceedings/qswinet/archive/
-Conference Proceedings,QShine: Heterogeneous Networking for Quality, Reliability, Security and Robustness,,,,2006 (August 2006),2008 (July 2008),http://portal.acm.org/proceedings/qshine/,http://portal.acm.org/proceedings/qshine/archive/
-Conference Proceedings,QTNA: Queueing Theory and Network Applications,,,,2009 (July 2009),2011 (August 2011),http://portal.acm.org/proceedings/qtna/,http://portal.acm.org/proceedings/qtna/archive/
-Conference Proceedings,QUASOSS: Quality of Service-Oriented Software Systems,,,,2009 (August 2009),2010 (October 2010),http://portal.acm.org/proceedings/quasoss/,http://portal.acm.org/proceedings/quasoss/archive/
-Conference Proceedings,QUOVADIS: Quantitative Stochastic Models in the Verification and Design of Software Systems,,,,2010 (May 2010),2010 (May 2010),http://portal.acm.org/proceedings/quovadis/,http://portal.acm.org/proceedings/quovadis/archive/
-Conference Proceedings,QUTE-SWAP: Quantitative Techniques for Software Agile Process,,,,2004 (November 2004),2004 (November 2004),http://portal.acm.org/proceedings/qute-swap/,http://portal.acm.org/proceedings/qute-swap/archive/
-Conference Proceedings,QoP: Quality of Protection,,,,2006 (October 2006),2008 (October 2008),http://portal.acm.org/proceedings/qop/,http://portal.acm.org/proceedings/qop/archive/
-Conference Proceedings,RAM-SE: Reflection, AOP and Meta-Data for Software Evolution,,,,2009 (July 2009),2012 (June 2012),http://portal.acm.org/proceedings/ram-se/,http://portal.acm.org/proceedings/ram-se/archive/
-Conference Proceedings,RAOOL: Relationships and Associations in Object-Oriented Languages,,,,2009 (July 2009),2009 (July 2009),http://portal.acm.org/proceedings/raool/,http://portal.acm.org/proceedings/raool/archive/
-Conference Proceedings,RBAC: Role-Based Access Control,,,,1996 (December 1996),2000 (July 2000),http://portal.acm.org/proceedings/rbac/,http://portal.acm.org/proceedings/rbac/archive/
-Conference Proceedings,REALMAN: Multi-Hop Ad Hoc Networks,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/realman/,http://portal.acm.org/proceedings/realman/archive/
-Conference Proceedings,REALWSN: Real-world Wireless Sensor Networks,,,,2008 (April 2008),2008 (April 2008),http://portal.acm.org/proceedings/realwsn/,http://portal.acm.org/proceedings/realwsn/archive/
-Conference Proceedings,REBSE: Realising Evidence-Based Software Engineering,,,,2005 (May 2005),2007 (May 2007),http://portal.acm.org/proceedings/rebse/,http://portal.acm.org/proceedings/rebse/archive/
-Conference Proceedings,RECOMB: Resaerch in Computational Molecular Biology,,,,1997 (January 1997),2004 (March 2004),http://portal.acm.org/proceedings/recomb/,http://portal.acm.org/proceedings/recomb/archive/
-Conference Proceedings,RIPQoS: Revisiting IP QoS,,,,2003 (August 2003),2003 (August 2003),http://portal.acm.org/proceedings/ripqos/,http://portal.acm.org/proceedings/ripqos/archive/
-Conference Proceedings,RKRAS: Research In Knowledge Representation For Autonomous Systems,,,,2005 (November 2005),2005 (November 2005),http://portal.acm.org/proceedings/rkras/,http://portal.acm.org/proceedings/rkras/archive/
-Conference Proceedings,ROA: Role of Abstraction in Software Engineering,,,,2006 (May 2006),2008 (May 2008),http://portal.acm.org/proceedings/roa/,http://portal.acm.org/proceedings/roa/archive/
-Conference Proceedings,ROSATEA: Role of Software Architecture for Testing and Analysis,,,,2006 (July 2006),2006 (July 2006),http://portal.acm.org/proceedings/rosatea/,http://portal.acm.org/proceedings/rosatea/archive/
-Conference Proceedings,RSSE: Recommendation Systems for Software Engineering,,,,2008 (November 2008),2010 (May 2010),http://portal.acm.org/proceedings/rsse/,http://portal.acm.org/proceedings/rsse/archive/
-Conference Proceedings,RT: Randon Testing,,,,2006 (July 2006),2007 (November 2007),http://portal.acm.org/proceedings/rt/,http://portal.acm.org/proceedings/rt/archive/
-Conference Proceedings,RULE: Rule-Based Programming,,,,2002 (October 2002),2002 (October 2002),http://portal.acm.org/proceedings/rule/,http://portal.acm.org/proceedings/rule/archive/
-Conference Proceedings,ReArch: Re-architecting the Internet,,,,2009 (December 2009),2010 (November 2010),http://portal.acm.org/proceedings/rearch/,http://portal.acm.org/proceedings/rearch/archive/
-Conference Proceedings,RecSys: Recommender Systems,,,,2007 (October 2007),2013 (October 2013),http://portal.acm.org/proceedings/recsys/,http://portal.acm.org/proceedings/recsys/archive/
-Conference Proceedings,Resilience: Resilience in High Performance,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/resilience/,http://portal.acm.org/proceedings/resilience/archive/
-Conference Proceedings,S&D4RCES: Security and Dependability for Resource Constrained Embedded Systems,,,,2010 (September 2010),2010 (September 2010),http://portal.acm.org/proceedings/s&d4rces/,http://portal.acm.org/proceedings/s&d4rces/archive/
-Conference Proceedings,S3: Wireless of the Students, by the Students, for the Students,,,,2008 (February 2008),2011 (September 2011),http://portal.acm.org/proceedings/s3/,http://portal.acm.org/proceedings/s3/archive/
-Conference Proceedings,SAC: Symposium on Applied Computing,,,,1986 (October 1986),2013 (March 2013),http://portal.acm.org/proceedings/sac/,http://portal.acm.org/proceedings/sac/archive/
-Conference Proceedings,SACLA: Southern African Computer Lecturers' Association,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/sacla/,http://portal.acm.org/proceedings/sacla/archive/
-Conference Proceedings,SACMAT: Symposium on Access Control Models and Technologies,,,,2001 (May 2001),2013 (June 2013),http://portal.acm.org/proceedings/sacmat/,http://portal.acm.org/proceedings/sacmat/archive/
-Conference Proceedings,SADPI: Semantically Aware Document Processing and Indexing,,,,2007 (May 2007),2007 (May 2007),http://portal.acm.org/proceedings/sadpi/,http://portal.acm.org/proceedings/sadpi/archive/
-Conference Proceedings,SAICSIT: South African Institute of Computer Scientists and Information Technologists,,,,2004 (October 2004),2013 (October 2013),http://portal.acm.org/proceedings/saicsit/,http://portal.acm.org/proceedings/saicsit/archive/
-Conference Proceedings,SAM: Software Architectures and Mobility,,,,2008 (May 2008),2013 (October 2013),http://portal.acm.org/proceedings/sam/,http://portal.acm.org/proceedings/sam/archive/
-Conference Proceedings,SAME: Semantic Ambient Media Experiences,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/same/,http://portal.acm.org/proceedings/same/archive/
-Conference Proceedings,SANET: Sensor and Actor Networks,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/sanet/,http://portal.acm.org/proceedings/sanet/archive/
-Conference Proceedings,SAPMIA: Social, Adaptive and Personalized Multimedia Interaction and Access,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/sapmia/,http://portal.acm.org/proceedings/sapmia/archive/
-Conference Proceedings,SAS: Static Analysis,,,,2003 (June 2003),2003 (June 2003),http://portal.acm.org/proceedings/sas/,http://portal.acm.org/proceedings/sas/archive/
-Conference Proceedings,SASN: Security of Ad hoc and Sensor Networks,,,,2003 (October 2003),2006 (October 2006),http://portal.acm.org/proceedings/sasn/,http://portal.acm.org/proceedings/sasn/archive/
-Conference Proceedings,SAVCBS: Specification and Verification of Component-Based Systems,,,,2005 (September 2005),2009 (August 2009),http://portal.acm.org/proceedings/savcbs/,http://portal.acm.org/proceedings/savcbs/archive/
-Conference Proceedings,SAW: Static Analysis,,,,2008 (June 2008),2008 (June 2008),http://portal.acm.org/proceedings/saw/,http://portal.acm.org/proceedings/saw/archive/
-Conference Proceedings,SBCCI: Symposium on Integrated Circuits and System Design,,,,1998 (January 1998),2011 (August 2011),http://portal.acm.org/proceedings/sbcci/,http://portal.acm.org/proceedings/sbcci/archive/
-Conference Proceedings,SBIM: Sketch-Based Interfaces and Modeling,,,,2007 (August 2007),2013 (July 2013),http://portal.acm.org/proceedings/sbim/,http://portal.acm.org/proceedings/sbim/archive/
-Conference Proceedings,SC: Supercomputing,,,,1988 (November 1988),2013 (November 2013),http://portal.acm.org/proceedings/sc/,http://portal.acm.org/proceedings/sc/archive/
-Conference Proceedings,SCA: Symposium on Computer Animation,,,,2002 (July 2002),2013 (July 2013),http://portal.acm.org/proceedings/sca/,http://portal.acm.org/proceedings/sca/archive/
-Conference Proceedings,SCC: Services Computing,,,,2009 (September 2009),2009 (September 2009),http://portal.acm.org/proceedings/scc/,http://portal.acm.org/proceedings/scc/archive/
-Conference Proceedings,SCCG: Spring Conference on Computer graphics,,,,2001 (April 2001),2013 (March 2013),http://portal.acm.org/proceedings/sccg/,http://portal.acm.org/proceedings/sccg/archive/
-Conference Proceedings,SCE: Summit on Computing Education,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/sce/,http://portal.acm.org/proceedings/sce/archive/
-Conference Proceedings,SCESM: Scenarios and State Machines,,,,2005 (May 2005),2007 (May 2007),http://portal.acm.org/proceedings/scesm/,http://portal.acm.org/proceedings/scesm/archive/
-Conference Proceedings,SCM: Software Configuration Management,,,,1989 (October 1989),2005 (September 2005),http://portal.acm.org/proceedings/scm/,http://portal.acm.org/proceedings/scm/archive/
-Conference Proceedings,SCN: Simulation of Computer Networks,,,,1987 (August 1987),1987 (August 1987),http://portal.acm.org/proceedings/scn/,http://portal.acm.org/proceedings/scn/archive/
-Conference Proceedings,SCOPES: Software and Compilers for Embedded Systems,,,,2005 (September 2005),2013 (June 2013),http://portal.acm.org/proceedings/scopes/,http://portal.acm.org/proceedings/scopes/archive/
-Conference Proceedings,SCORE: Software Metrics,,,,1982 (August 1982),1982 (August 1982),http://portal.acm.org/proceedings/score/,http://portal.acm.org/proceedings/score/archive/
-Conference Proceedings,SCSC: Summer Computer Simulation Conference,,,,2007 (July 2007),2013 (July 2013),http://portal.acm.org/proceedings/scsc/,http://portal.acm.org/proceedings/scsc/archive/
-Conference Proceedings,SDDDM: Dependable Distributed Data Management,,,,2008 (April 2008),2009 (March 2009),http://portal.acm.org/proceedings/sdddm/,http://portal.acm.org/proceedings/sdddm/archive/
-Conference Proceedings,SDE: Software Development Environments,,,,1984 (April 1984),1992 (November 1992),http://portal.acm.org/proceedings/sde/,http://portal.acm.org/proceedings/sde/archive/
-Conference Proceedings,SDG: Software Development Governance,,,,2008 (May 2008),2010 (May 2010),http://portal.acm.org/proceedings/sdg/,http://portal.acm.org/proceedings/sdg/archive/
-Conference Proceedings,SDSOA: Systems Development in SOA Environments,,,,2007 (May 2007),2008 (May 2008),http://portal.acm.org/proceedings/sdsoa/,http://portal.acm.org/proceedings/sdsoa/archive/
-Conference Proceedings,SE-HPC: Software Engineering for High Performance Computing Applications,,,,2005 (May 2005),2007 (May 2007),http://portal.acm.org/proceedings/se-hpc/,http://portal.acm.org/proceedings/se-hpc/archive/
-Conference Proceedings,SEAMS: Software Engineering for Adaptive and Self-Managing Systems,,,,2006 (May 2006),2011 (May 2011),http://portal.acm.org/proceedings/seams/,http://portal.acm.org/proceedings/seams/archive/
-Conference Proceedings,SEAS: Software Engineering for Automotive Systems,,,,2005 (May 2005),2007 (May 2007),http://portal.acm.org/proceedings/seas/,http://portal.acm.org/proceedings/seas/archive/
-Conference Proceedings,SECSE: Software Engineering for Computational Science and Engineering,,,,2009 (May 2009),2011 (May 2011),http://portal.acm.org/proceedings/secse/,http://portal.acm.org/proceedings/secse/archive/
-Conference Proceedings,SEESE: Software Engineering in East and South Europe,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/seese/,http://portal.acm.org/proceedings/seese/archive/
-Conference Proceedings,SEEUP: Software Engineering Foundations for End User Programming,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/seeup/,http://portal.acm.org/proceedings/seeup/archive/
-Conference Proceedings,SEHC: Software Engineering in Health Care,,,,2009 (May 2009),2011 (May 2011),http://portal.acm.org/proceedings/sehc/,http://portal.acm.org/proceedings/sehc/archive/
-Conference Proceedings,SEKE: Software Engineering and Knowledge Engineering,,,,2002 (July 2002),2002 (July 2002),http://portal.acm.org/proceedings/seke/,http://portal.acm.org/proceedings/seke/archive/
-Conference Proceedings,SELMAS: Software Engineering for Large-Scale Multi-Agent Systems,,,,2005 (May 2005),2006 (May 2006),http://portal.acm.org/proceedings/selmas/,http://portal.acm.org/proceedings/selmas/archive/
-Conference Proceedings,SEM: Software Engineering and Middleware,,,,2005 (September 2005),2006 (November 2006),http://portal.acm.org/proceedings/sem/,http://portal.acm.org/proceedings/sem/archive/
-Conference Proceedings,SEMSEARCH: Semantic Search,,,,2010 (April 2010),2010 (April 2010),http://portal.acm.org/proceedings/semsearch/,http://portal.acm.org/proceedings/semsearch/archive/
-Conference Proceedings,SEPCASE: Software Engineering for Pervasive Computing Applications, Systems, and Environments,,,,2007 (May 2007),2007 (May 2007),http://portal.acm.org/proceedings/sepcase/,http://portal.acm.org/proceedings/sepcase/archive/
-Conference Proceedings,SEPS: Software Engineering for Pervasive Services,,,,2008 (July 2008),2008 (July 2008),http://portal.acm.org/proceedings/seps/,http://portal.acm.org/proceedings/seps/archive/
-Conference Proceedings,SERENE: Software Engineering for Resilient Systems,,,,2008 (November 2008),2008 (November 2008),http://portal.acm.org/proceedings/serene/,http://portal.acm.org/proceedings/serene/archive/
-Conference Proceedings,SESENA: Software Engineering for Sensor Network Applications,,,,2010 (May 2010),2011 (May 2011),http://portal.acm.org/proceedings/sesena/,http://portal.acm.org/proceedings/sesena/archive/
-Conference Proceedings,SESS: Software Engineering for Secure Systems,,,,2005 (May 2005),2011 (May 2011),http://portal.acm.org/proceedings/sess/,http://portal.acm.org/proceedings/sess/archive/
-Conference Proceedings,SETA: Symposium on Environments and Tools for Ada,,,,1991 (April 1991),1994 (September 1994),http://portal.acm.org/proceedings/seta/,http://portal.acm.org/proceedings/seta/archive/
-Conference Proceedings,SETMDM: Software Engineering for Tailor-Made Data Management,,,,2008 (March 2008),2008 (March 2008),http://portal.acm.org/proceedings/setmdm/,http://portal.acm.org/proceedings/setmdm/archive/
-Conference Proceedings,SGP: Symposium on Geometry Processing,,,,2003 (June 2003),2006 (June 2006),http://portal.acm.org/proceedings/sgp/,http://portal.acm.org/proceedings/sgp/archive/
-Conference Proceedings,SHARK: Sharing and Reusing Architectural Knowledge,,,,2007 (May 2007),2011 (May 2011),http://portal.acm.org/proceedings/shark/,http://portal.acm.org/proceedings/shark/archive/
-Conference Proceedings,SICOSIM: SICOSIM,,,,1972 (October 1972),1973 (October 1973),http://portal.acm.org/proceedings/sicosim/,http://portal.acm.org/proceedings/sicosim/archive/
-Conference Proceedings,SIGAda: SIGAda International Conference on Ada,,,,1985 (May 1985),2011 (November 2011),http://portal.acm.org/proceedings/sigada/,http://portal.acm.org/proceedings/sigada/archive/
-Conference Proceedings,SIGBDP: SIGBDP Conference on Trends and Directions in Expert Systems,,,,1990 (September 1990),1990 (September 1990),http://portal.acm.org/proceedings/sigbdp/,http://portal.acm.org/proceedings/sigbdp/archive/
-Conference Proceedings,SIGCOMM LA: Data Communication in Latin America and the Caribbean,,,,2001 (April 2001),2001 (April 2001),http://portal.acm.org/proceedings/sigcommla/,http://portal.acm.org/proceedings/sigcommla/archive/
-Conference Proceedings,SIGCOMM: ACM SIGCOMM,,,,1977 (September 1977),2013 (August 2013),http://portal.acm.org/proceedings/sigcomm/,http://portal.acm.org/proceedings/sigcomm/archive/
-Conference Proceedings,SIGCSE: Computer Science Education,,,,1970 (January 1970),2013 (March 2013),http://portal.acm.org/proceedings/sigcse/,http://portal.acm.org/proceedings/sigcse/archive/
-Conference Proceedings,SIGDOC: Design of Communication,,,,1982 (January 1982),2013 (September 2013),http://portal.acm.org/proceedings/sigdoc/,http://portal.acm.org/proceedings/sigdoc/archive/
-Conference Proceedings,SIGFIDET: Data Description, Access and Control,,,,1970 (November 1970),1975 (January 1975),http://portal.acm.org/proceedings/sigfidet/,http://portal.acm.org/proceedings/sigfidet/archive/
-Conference Proceedings,SIGGRAPH Asia: Computer Graphics and Interactive Techniques Conference - Asia,,,,2008 (December 2008),2013 (November 2013),http://portal.acm.org/proceedings/siggraphasia/,http://portal.acm.org/proceedings/siggraphasia/archive/
-Conference Proceedings,SIGGRAPH: Computer Graphics and Interactive Techniques Conference,,,,1974 (July 1974),2013 (July 2013),http://portal.acm.org/proceedings/siggraph/,http://portal.acm.org/proceedings/siggraph/archive/
-Conference Proceedings,SIGIR: Information Retrieval,,,,1971 (April 1971),2013 (July 2013),http://portal.acm.org/proceedings/sigir/,http://portal.acm.org/proceedings/sigir/archive/
-Conference Proceedings,SIGITE: Information Technology Education,,,,2003 (October 2003),2013 (October 2013),http://portal.acm.org/proceedings/sigite/,http://portal.acm.org/proceedings/sigite/archive/
-Conference Proceedings,SIGME: SIGME Symposium,,,,1973 (January 1973),1973 (January 1973),http://portal.acm.org/proceedings/sigme/,http://portal.acm.org/proceedings/sigme/archive/
-Conference Proceedings,SIGMETRICS: Measurement and Modeling of Computer Systems,,,,1974 (January 1974),2013 (June 2013),http://portal.acm.org/proceedings/sigmetrics/,http://portal.acm.org/proceedings/sigmetrics/archive/
-Conference Proceedings,SIGMINI: SIGMINI Symposium on Small Systems,,,,1976 (March 1976),1978 (August 1978),http://portal.acm.org/proceedings/sigmini/,http://portal.acm.org/proceedings/sigmini/archive/
-Conference Proceedings,SIGMOD: Management of Data,,,,1975 (May 1975),2013 (June 2013),http://portal.acm.org/proceedings/sigmod/,http://portal.acm.org/proceedings/sigmod/archive/
-Conference Proceedings,SIGPLAN: SIGPLAN Symposium,,,,1973 (November 1973),1987 (July 1987),http://portal.acm.org/proceedings/sigplan/,http://portal.acm.org/proceedings/sigplan/archive/
-Conference Proceedings,SIGSMALL: SIGSMALL/PC Symposium on Small Systems,,,,1979 (October 1979),1991 (May 1991),http://portal.acm.org/proceedings/sigsmall/,http://portal.acm.org/proceedings/sigsmall/archive/
-Conference Proceedings,SIGSOFT: Foundations of Software Engineering,,,,1983 (January 1983),2012 (November 2012),http://portal.acm.org/proceedings/sigsoft/,http://portal.acm.org/proceedings/sigsoft/archive/
-Conference Proceedings,SIGUCCS: User Services,,,,1972 (January 1972),2013 (November 2013),http://portal.acm.org/proceedings/siguccs/,http://portal.acm.org/proceedings/siguccs/archive/
-Conference Proceedings,SIMPLEX: Simplifying Complex Network for Practitioners,,,,2009 (July 2009),2012 (April 2012),http://portal.acm.org/proceedings/simplex/,http://portal.acm.org/proceedings/simplex/archive/
-Conference Proceedings,SIMUTools: Simulation Tools and Techniques,,,,2010 (March 2010),2013 (March 2013),http://portal.acm.org/proceedings/simutools/,http://portal.acm.org/proceedings/simutools/archive/
-Conference Proceedings,SIN: Security of Information and Networks,,,,2009 (October 2009),2012 (October 2012),http://portal.acm.org/proceedings/sin/,http://portal.acm.org/proceedings/sin/archive/
-Conference Proceedings,SINTER: Software Integration and Evolution at Runtime,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/sinter/,http://portal.acm.org/proceedings/sinter/archive/
-Conference Proceedings,SIPE: Services Integration in Pervasive Environments,,,,2008 (July 2008),2009 (July 2009),http://portal.acm.org/proceedings/sipe/,http://portal.acm.org/proceedings/sipe/archive/
-Conference Proceedings,SISAP: Similarity Search and Applications,,,,2008 (April 2008),2011 (June 2011),http://portal.acm.org/proceedings/sisap/,http://portal.acm.org/proceedings/sisap/archive/
-Conference Proceedings,SLIP: System Level Interconnect Prediction,,,,2000 (April 2000),2012 (June 2012),http://portal.acm.org/proceedings/slip/,http://portal.acm.org/proceedings/slip/archive/
-Conference Proceedings,SLIPE: Symposium on Language Issues in Programming Environments,,,,1985 (June 1985),1985 (June 1985),http://portal.acm.org/proceedings/slipe/,http://portal.acm.org/proceedings/slipe/archive/
-Conference Proceedings,SM: Solid Modelling and Applications,,,,1991 (May 1991),2004 (June 2004),http://portal.acm.org/proceedings/sm/,http://portal.acm.org/proceedings/sm/archive/
-Conference Proceedings,SMARTGRAPH: Smart Graphics,,,,2002 (June 2002),2002 (June 2002),http://portal.acm.org/proceedings/smartgraph/,http://portal.acm.org/proceedings/smartgraph/archive/
-Conference Proceedings,SMCtools: Tools for Solving Structured Markov Chains,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/smctools/,http://portal.acm.org/proceedings/smctools/archive/
-Conference Proceedings,SMT: Satisfiability Modulo Theories,,,,2008 (July 2008),2009 (August 2009),http://portal.acm.org/proceedings/smt/,http://portal.acm.org/proceedings/smt/archive/
-Conference Proceedings,SMUC: Search and Mining User-generated Contents,,,,2010 (October 2010),2011 (October 2011),http://portal.acm.org/proceedings/smuc/,http://portal.acm.org/proceedings/smuc/archive/
-Conference Proceedings,SMVC: Surreal Media and Virtual Cloning,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/smvc/,http://portal.acm.org/proceedings/smvc/archive/
-Conference Proceedings,SNA-KDD: Social Network Mining and Analysis,,,,2009 (June 2009),2013 (August 2013),http://portal.acm.org/proceedings/sna-kdd/,http://portal.acm.org/proceedings/sna-kdd/archive/
-Conference Proceedings,SNAPI: Storage Network Architecture and Parallel I/Os,,,,2003 (September 2003),2004 (September 2004),http://portal.acm.org/proceedings/snapi/,http://portal.acm.org/proceedings/snapi/archive/
-Conference Proceedings,SNC: Symbolic-Numeric Computation,,,,2007 (July 2007),2011 (June 2012),http://portal.acm.org/proceedings/snc/,http://portal.acm.org/proceedings/snc/archive/
-Conference Proceedings,SNS: Social Network Systems,,,,2010 (April 2010),2012 (April 2012),http://portal.acm.org/proceedings/sns/,http://portal.acm.org/proceedings/sns/archive/
-Conference Proceedings,SOAR: Self-organizing Architectures,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/soar/,http://portal.acm.org/proceedings/soar/archive/
-Conference Proceedings,SOCP: Service-oriented Computing Performance,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/socp/,http://portal.acm.org/proceedings/socp/archive/
-Conference Proceedings,SODA: Symposium on Discrete Algorithms,,,,1990 (January 1990),2012 (January 2012),http://portal.acm.org/proceedings/soda/,http://portal.acm.org/proceedings/soda/archive/
-Conference Proceedings,SOMITAS: Software Organisation and Monitoring of Ambient Systems,,,,2008 (February 2008),2008 (February 2008),http://portal.acm.org/proceedings/somitas/,http://portal.acm.org/proceedings/somitas/archive/
-Conference Proceedings,SOQUA: Software Quality Assurance,,,,2006 (November 2006),2007 (September 2007),http://portal.acm.org/proceedings/soqua/,http://portal.acm.org/proceedings/soqua/archive/
-Conference Proceedings,SOSE: Service-Oriented Software Engineering,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/sose/,http://portal.acm.org/proceedings/sose/archive/
-Conference Proceedings,SOSOC: Security in Opportunistic and Social networks,,,,2008 (September 2008),2008 (September 2008),http://portal.acm.org/proceedings/sosoc/,http://portal.acm.org/proceedings/sosoc/archive/
-Conference Proceedings,SOSP: Symposium on Operating Systems Principles,,,,1967 (January 1967),2013 (November 2013),http://portal.acm.org/proceedings/sosp/,http://portal.acm.org/proceedings/sosp/archive/
-Conference Proceedings,SOUPS: Symposium on Usable Privacy and Security,,,,2005 (July 2005),2013 (July 2013),http://portal.acm.org/proceedings/soups/,http://portal.acm.org/proceedings/soups/archive/
-Conference Proceedings,SP: Security and Privacy,,,,1996 (May 1996),1996 (May 1996),http://portal.acm.org/proceedings/sp/,http://portal.acm.org/proceedings/sp/archive/
-Conference Proceedings,SPAA: Symposium on Parallelism in Algorithms and Architectures,,,,1989 (March 1989),2013 (July 2013),http://portal.acm.org/proceedings/spaa/,http://portal.acm.org/proceedings/spaa/archive/
-Conference Proceedings,SPDT: Parallel and Distributed Tools,,,,1996 (January 1996),1998 (August 1998),http://portal.acm.org/proceedings/spdt/,http://portal.acm.org/proceedings/spdt/archive/
-Conference Proceedings,SPIMACS: Security and Privacy in Medical and Home-Care Systems,,,,2009 (November 2009),2010 (October 2010),http://portal.acm.org/proceedings/spimacs/,http://portal.acm.org/proceedings/spimacs/archive/
-Conference Proceedings,SPIN: SPIN workshop on Model Checking of Software,,,,2001 (May 2001),2001 (May 2001),http://portal.acm.org/proceedings/spin/,http://portal.acm.org/proceedings/spin/archive/
-Conference Proceedings,SPLASH: Object-Oriented Programming Systems, Languages, and Applications,,,,1986 (June 1986),2013 (October 2013),http://portal.acm.org/proceedings/splash/,http://portal.acm.org/proceedings/splash/archive/
-Conference Proceedings,SPLAT: Software Engineering Properties of Languages and Aspect Technologies,,,,2007 (March 2007),2008 (March 2008),http://portal.acm.org/proceedings/splat/,http://portal.acm.org/proceedings/splat/archive/
-Conference Proceedings,SPM: Geometric and Physical Modeling,,,,2005 (June 2005),2010 (September 2010),http://portal.acm.org/proceedings/spm/,http://portal.acm.org/proceedings/spm/archive/
-Conference Proceedings,SPRINGL: Security and Privacy in GIS and LBS,,,,2008 (November 2008),2011 (November 2011),http://portal.acm.org/proceedings/springl/,http://portal.acm.org/proceedings/springl/archive/
-Conference Proceedings,SRMC: Story Representation, Mechanism and Context,,,,2004 (October 2004),2008 (October 2008),http://portal.acm.org/proceedings/srmc/,http://portal.acm.org/proceedings/srmc/archive/
-Conference Proceedings,SSCS: Searching Spontaneous COnversational Speech,,,,2009 (October 2009),2010 (October 2010),http://portal.acm.org/proceedings/sscs/,http://portal.acm.org/proceedings/sscs/archive/
-Conference Proceedings,SSEE: Summit on Software Engineering Eductation,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/ssee/,http://portal.acm.org/proceedings/ssee/archive/
-Conference Proceedings,SSM: Search in Social Media,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/ssm/,http://portal.acm.org/proceedings/ssm/archive/
-Conference Proceedings,SSPS: Scalable Stream Processing System,,,,2008 (March 2008),2008 (March 2008),http://portal.acm.org/proceedings/ssps/,http://portal.acm.org/proceedings/ssps/archive/
-Conference Proceedings,SSPW: Social Signal Processing,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/sspw/,http://portal.acm.org/proceedings/sspw/archive/
-Conference Proceedings,SSR: Symposium on Software Reusability,,,,1995 (August 1995),2001 (May 2001),http://portal.acm.org/proceedings/ssr/,http://portal.acm.org/proceedings/ssr/archive/
-Conference Proceedings,SSRS: Survivable and Self-Regenerative Systems,,,,2003 (October 2003),2003 (October 2003),http://portal.acm.org/proceedings/ssrs/,http://portal.acm.org/proceedings/ssrs/archive/
-Conference Proceedings,STC: Scalable Trusted Computing,,,,2006 (November 2006),2012 (October 2012),http://portal.acm.org/proceedings/stc/,http://portal.acm.org/proceedings/stc/archive/
-Conference Proceedings,STOC: Symposium on Theory of Computing,,,,1969 (May 1969),2013 (June 2013),http://portal.acm.org/proceedings/stoc/,http://portal.acm.org/proceedings/stoc/archive/
-Conference Proceedings,STOP: Script to Program Evolution,,,,2009 (July 2009),2009 (July 2009),http://portal.acm.org/proceedings/stop/,http://portal.acm.org/proceedings/stop/archive/
-Conference Proceedings,STOV: Software Test Output Validation,,,,2010 (July 2010),2010 (July 2010),http://portal.acm.org/proceedings/stov/,http://portal.acm.org/proceedings/stov/archive/
-Conference Proceedings,SUITE: Search-driven Development: Users, Infrastructure, Tools and Evaluation,,,,2009 (May 2009),2011 (May 2011),http://portal.acm.org/proceedings/suite/,http://portal.acm.org/proceedings/suite/archive/
-Conference Proceedings,SVR: SIGGRAPH Video Review,,,,2001 (August 2001),2003 (July 2003),http://portal.acm.org/proceedings/svr/,http://portal.acm.org/proceedings/svr/archive/
-Conference Proceedings,SWS: Secure Web Services,,,,2004 (October 2004),2009 (November 2009),http://portal.acm.org/proceedings/sws/,http://portal.acm.org/proceedings/sws/archive/
-Conference Proceedings,SWSM: Social Web Search and Mining,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/swsm/,http://portal.acm.org/proceedings/swsm/archive/
-Conference Proceedings,SYANCO: Synthesis and Analysis of Component Connectors,,,,2007 (September 2007),2007 (September 2007),http://portal.acm.org/proceedings/syanco/,http://portal.acm.org/proceedings/syanco/archive/
-Conference Proceedings,SYMSAC: Symposium on Symbolic and Algebraic Computation,,,,1966 (January 1966),1986 (October 1986),http://portal.acm.org/proceedings/symsac/,http://portal.acm.org/proceedings/symsac/archive/
-Conference Proceedings,SYSTOR: Experimental Systems Conference,,,,2009 (May 2009),2013 (June 2013),http://portal.acm.org/proceedings/systor/,http://portal.acm.org/proceedings/systor/archive/
-Conference Proceedings,SafeConfig: Assurable and Usable Security Configuration,,,,2009 (November 2009),2010 (October 2010),http://portal.acm.org/proceedings/safeconfig/,http://portal.acm.org/proceedings/safeconfig/archive/
-Conference Proceedings,Sandbox: Symposium on Video Games,,,,2006 (July 2006),2011 (August 2011),http://portal.acm.org/proceedings/sandbox/,http://portal.acm.org/proceedings/sandbox/archive/
-Conference Proceedings,SecPerU: Security, Privacy and Trust in Pervasive and Ubiquitous Computing,,,,2008 (July 2008),2008 (July 2008),http://portal.acm.org/proceedings/secperu/,http://portal.acm.org/proceedings/secperu/archive/
-Conference Proceedings,SecuCode: Secure Execution of Untrusted Code,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/secucode/,http://portal.acm.org/proceedings/secucode/archive/
-Conference Proceedings,SecureComm: Security and Privacy in Communication Netowrks,,,,2008 (September 2008),2008 (September 2008),http://portal.acm.org/proceedings/securecomm/,http://portal.acm.org/proceedings/securecomm/archive/
-Conference Proceedings,SenSys: Embedded Networked Sensor Systems,,,,2003 (November 2003),2013 (November 2013),http://portal.acm.org/proceedings/sensys/,http://portal.acm.org/proceedings/sensys/archive/
-Conference Proceedings,SensorKDD: Knowledge Discovery from Sensor Data,,,,2009 (June 2009),2012 (August 2012),http://portal.acm.org/proceedings/sensorkdd/,http://portal.acm.org/proceedings/sensorkdd/archive/
-Conference Proceedings,SoCC: Cloud Computing,,,,2010 (June 2010),2012 (October 2012),http://portal.acm.org/proceedings/socc/,http://portal.acm.org/proceedings/socc/archive/
-Conference Proceedings,SoCG: Computational Geometry,,,,1985 (June 1985),2013 (June 2013),http://portal.acm.org/proceedings/socg/,http://portal.acm.org/proceedings/socg/archive/
-Conference Proceedings,SoD: Science of Design,,,,2007 (March 2007),2007 (March 2007),http://portal.acm.org/proceedings/sod/,http://portal.acm.org/proceedings/sod/archive/
-Conference Proceedings,SoICT: Information and Communication Technology,,,,2010 (August 2010),2013 (December 2013),http://portal.acm.org/proceedings/soict/,http://portal.acm.org/proceedings/soict/archive/
-Conference Proceedings,SoSEA: Social Software Engineering Applications,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/sosea/,http://portal.acm.org/proceedings/sosea/archive/
-Conference Proceedings,SocialNets: Social Network Systems,,,,2008 (April 2008),2009 (March 2009),http://portal.acm.org/proceedings/socialnets/,http://portal.acm.org/proceedings/socialnets/archive/
-Conference Proceedings,SoftVis: Software Visualization,,,,2003 (June 2003),2010 (October 2010),http://portal.acm.org/proceedings/softvis/,http://portal.acm.org/proceedings/softvis/archive/
-Conference Proceedings,SpringSim: Spring Simulation Multiconference,,,,2007 (March 2007),2013 (April 2013),http://portal.acm.org/proceedings/springsim/,http://portal.acm.org/proceedings/springsim/archive/
-Conference Proceedings,StReBio: Statistical and Relational Learning in Bioinformatics,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/strebio/,http://portal.acm.org/proceedings/strebio/archive/
-Conference Proceedings,StorageSS: Storage Security and Survivability,,,,2005 (November 2005),2008 (October 2008),http://portal.acm.org/proceedings/storagess/,http://portal.acm.org/proceedings/storagess/archive/
-Conference Proceedings,StreamKDD: Novel Data Stream Pattern Mining Techniques,,,,2010 (July 2010),2010 (July 2010),http://portal.acm.org/proceedings/streamkdd/,http://portal.acm.org/proceedings/streamkdd/archive/
-Conference Proceedings,TAMODIA: Task Models and Diagrams,,,,2004 (November 2004),2005 (September 2005),http://portal.acm.org/proceedings/tamodia/,http://portal.acm.org/proceedings/tamodia/archive/
-Conference Proceedings,TAPAS: Technology and Policy for Accessing Spectrum,,,,2006 (August 2006),2006 (August 2006),http://portal.acm.org/proceedings/tapas/,http://portal.acm.org/proceedings/tapas/archive/
-Conference Proceedings,TAPIA: Diversity in Computing,,,,2003 (October 2003),2009 (April 2009),http://portal.acm.org/proceedings/tapia/,http://portal.acm.org/proceedings/tapia/archive/
-Conference Proceedings,TAPP: Theory and Practice of Provenance,,,,2010 (February 2010),2013 (April 2013),http://portal.acm.org/proceedings/tapp/,http://portal.acm.org/proceedings/tapp/archive/
-Conference Proceedings,TARK: Theoretical Aspects of Rationality and Knowledge,,,,1986 (March 1986),2009 (July 2009),http://portal.acm.org/proceedings/tark/,http://portal.acm.org/proceedings/tark/archive/
-Conference Proceedings,TAU: Timing Iissues in the Specification and Synthesis of Digital Systems,,,,2002 (December 2002),2002 (December 2002),http://portal.acm.org/proceedings/tau/,http://portal.acm.org/proceedings/tau/archive/
-Conference Proceedings,TAV: Testing, Analysis and Verification,,,,1989 (November 1989),2008 (July 2008),http://portal.acm.org/proceedings/tav/,http://portal.acm.org/proceedings/tav/archive/
-Conference Proceedings,TEFSE: Traceability in Emerging Forms of Software Engineering,,,,2005 (November 2005),2011 (May 2011),http://portal.acm.org/proceedings/tefse/,http://portal.acm.org/proceedings/tefse/archive/
-Conference Proceedings,TEI: Tangible and Embedded Interaction,,,,2007 (February 2007),2013 (February 2013),http://portal.acm.org/proceedings/tei/,http://portal.acm.org/proceedings/tei/archive/
-Conference Proceedings,TG: TeraGrid,,,,2010 (August 2010),2011 (July 2011),http://portal.acm.org/proceedings/tg/,http://portal.acm.org/proceedings/tg/archive/
-Conference Proceedings,TINLAP: Theoretical Issues in Natural Language Processing,,,,1975 (June 1975),1975 (June 1975),http://portal.acm.org/proceedings/tinlap/,http://portal.acm.org/proceedings/tinlap/archive/
-Conference Proceedings,TLDI: Types in Language Design and Implentation,,,,2003 (January 2003),2012 (January 2012),http://portal.acm.org/proceedings/tldi/,http://portal.acm.org/proceedings/tldi/archive/
-Conference Proceedings,TMBIO: Text Mining in Bioinformatics,,,,2006 (November 2006),2006 (November 2006),http://portal.acm.org/proceedings/tmbio/,http://portal.acm.org/proceedings/tmbio/archive/
-Conference Proceedings,TMR: Tagging, Mining and Retrieval,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/tmr/,http://portal.acm.org/proceedings/tmr/archive/
-Conference Proceedings,TRI-Ada: TRI-Ada,,,,1989 (January 1989),1997 (November 1997),http://portal.acm.org/proceedings/tri-ada/,http://portal.acm.org/proceedings/tri-ada/archive/
-Conference Proceedings,TSA: Topic-Sentiment Analysis for Mass Opinion,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/tsa/,http://portal.acm.org/proceedings/tsa/archive/
-Conference Proceedings,TT: Software Technology Transfer in Software Engineering,,,,2006 (May 2006),2006 (May 2006),http://portal.acm.org/proceedings/tt/,http://portal.acm.org/proceedings/tt/archive/
-Conference Proceedings,TVS: TRECVid Video Summarization,,,,2007 (September 2007),2008 (October 2008),http://portal.acm.org/proceedings/tvs/,http://portal.acm.org/proceedings/tvs/archive/
-Conference Proceedings,TridentCom: Testbeds and Research Infrastructures for the Development of Networks & Communities,,,,2008 (March 2008),2008 (March 2008),http://portal.acm.org/proceedings/tridentcom/,http://portal.acm.org/proceedings/tridentcom/archive/
-Conference Proceedings,U-NET: User-Provided Networking,,,,2009 (December 2009),2009 (December 2009),http://portal.acm.org/proceedings/u-net/,http://portal.acm.org/proceedings/u-net/archive/
-Conference Proceedings,U: Knowledge Discovery from Uncertain Data,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/u/,http://portal.acm.org/proceedings/u/archive/
-Conference Proceedings,UBDM: Utility-Based Data Mining,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/ubdm/,http://portal.acm.org/proceedings/ubdm/archive/
-Conference Proceedings,UCHPC-MAW: UnConventional High Performance Computing Workshop plus Memory Access Workshop,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/uchpc-maw/,http://portal.acm.org/proceedings/uchpc-maw/archive/
-Conference Proceedings,UCVP: Use of Context in Vision Processing,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/ucvp/,http://portal.acm.org/proceedings/ucvp/archive/
-Conference Proceedings,UIST: User Interface Software and Technology,,,,1988 (January 1988),2013 (October 2013),http://portal.acm.org/proceedings/uist/,http://portal.acm.org/proceedings/uist/archive/
-Conference Proceedings,ULSSIS: Ultra-Large-Scale Software-Intensive Systems,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/ulssis/,http://portal.acm.org/proceedings/ulssis/archive/
-Conference Proceedings,UML: Unified Modeling Language,,,,1999 (October 1999),2000 (October 2000),http://portal.acm.org/proceedings/uml/,http://portal.acm.org/proceedings/uml/archive/
-Conference Proceedings,UODIGS: User-Oriented Design of Interactive Graphics Systems,,,,1977 (October 1976),1977 (October 1976),http://portal.acm.org/proceedings/uodigs/,http://portal.acm.org/proceedings/uodigs/archive/
-Conference Proceedings,UP: Useful Patterns,,,,2010 (July 2010),2010 (July 2010),http://portal.acm.org/proceedings/up/,http://portal.acm.org/proceedings/up/archive/
-Conference Proceedings,UPGRADE: Use of P2P, GRID and Agents for the Development of Content Networks,,,,2007 (June 2007),2009 (June 2009),http://portal.acm.org/proceedings/upgrade/,http://portal.acm.org/proceedings/upgrade/archive/
-Conference Proceedings,UXTV: Designing Interactive User Experiences for TV and Video,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/uxtv/,http://portal.acm.org/proceedings/uxtv/archive/
-Conference Proceedings,UbiComp: Ubiquitous Computing,,,,2002 (September 2002),2013 (September 2013),http://portal.acm.org/proceedings/ubicomp/,http://portal.acm.org/proceedings/ubicomp/archive/
-Conference Proceedings,UbiMob: Mobility and Ubiquity Computing,,,,2004 (June 2004),2009 (July 2009),http://portal.acm.org/proceedings/ubimob/,http://portal.acm.org/proceedings/ubimob/archive/
-Conference Proceedings,UltraVis: Ultrascale Visualization,,,,2009 (November 2009),2013 (November 2013),http://portal.acm.org/proceedings/ultravis/,http://portal.acm.org/proceedings/ultravis/archive/
-Conference Proceedings,VAKD: Visual Analytics and Knowledge Discovery,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/vakd/,http://portal.acm.org/proceedings/vakd/archive/
-Conference Proceedings,VANET: VehiculAr InterNETworking,,,,2004 (October 2004),2013 (June 2013),http://portal.acm.org/proceedings/vanet/,http://portal.acm.org/proceedings/vanet/archive/
-Conference Proceedings,VAST: Visual Analytics Science and Technology,,,,2001 (November 2001),2009 (September 2009),http://portal.acm.org/proceedings/vast/,http://portal.acm.org/proceedings/vast/archive/
-Conference Proceedings,VDTS: Virtualization Technology for Dependable Systems,,,,2009 (March 2009),2009 (March 2009),http://portal.acm.org/proceedings/vdts/,http://portal.acm.org/proceedings/vdts/archive/
-Conference Proceedings,VEE: Virtual Execution Environments,,,,2005 (June 2005),2013 (March 2013),http://portal.acm.org/proceedings/vee/,http://portal.acm.org/proceedings/vee/archive/
-Conference Proceedings,VG: Volume Graphics,,,,2003 (July 2003),2005 (June 2005),http://portal.acm.org/proceedings/vg/,http://portal.acm.org/proceedings/vg/archive/
-Conference Proceedings,VIS: Visualization,,,,1990 (October 1990),2004 (October 2004),http://portal.acm.org/proceedings/vis/,http://portal.acm.org/proceedings/vis/archive/
-Conference Proceedings,VISA: Virtualized Infrastructure Systems and Architectures,,,,2009 (August 2009),2010 (September 2010),http://portal.acm.org/proceedings/visa/,http://portal.acm.org/proceedings/visa/archive/
-Conference Proceedings,VISSYM: Symposium on Data Visualisation,,,,2003 (May 2003),2004 (May 2004),http://portal.acm.org/proceedings/vissym/,http://portal.acm.org/proceedings/vissym/archive/
-Conference Proceedings,VLDB: Very Large Data Bases,,,,1975 (September 1975),2007 (September 2007),http://portal.acm.org/proceedings/vldb/,http://portal.acm.org/proceedings/vldb/archive/
-Conference Proceedings,VLS-MCMR: Very-Large-Scale Multimedia Corpus, Mining and Retrieval,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/vls-mcmr/,http://portal.acm.org/proceedings/vls-mcmr/archive/
-Conference Proceedings,VMIL: Virtual Machines and Intermediate Languages,,,,2007 (March 2007),2012 (October 2012),http://portal.acm.org/proceedings/vmil/,http://portal.acm.org/proceedings/vmil/archive/
-Conference Proceedings,VMSec: Virtual Machine Security,,,,2008 (October 2008),2009 (November 2009),http://portal.acm.org/proceedings/vmsec/,http://portal.acm.org/proceedings/vmsec/archive/
-Conference Proceedings,VNBA: Vision Networks for Behaviour Analysis,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/vnba/,http://portal.acm.org/proceedings/vnba/archive/
-Conference Proceedings,VRCAI: Virtual Reality Continuum and its Applications in Industry,,,,2004 (June 2004),2013 (November 2013),http://portal.acm.org/proceedings/vrcai/,http://portal.acm.org/proceedings/vrcai/archive/
-Conference Proceedings,VRML: Virtual Reality Modeling Language,,,,1995 (January 1995),2000 (February 2000),http://portal.acm.org/proceedings/vrml/,http://portal.acm.org/proceedings/vrml/archive/
-Conference Proceedings,VRST: Virtual Reality Software and Technology,,,,1997 (September 1997),2013 (October 2013),http://portal.acm.org/proceedings/vrst/,http://portal.acm.org/proceedings/vrst/archive/
-Conference Proceedings,VSSN: Video Surveillance and Sensor Networks,,,,2004 (October 2004),2006 (October 2006),http://portal.acm.org/proceedings/vssn/,http://portal.acm.org/proceedings/vssn/archive/
-Conference Proceedings,VTDC: Virtualization Technology in Distributed Computing,,,,2006 (November 2006),2013 (June 2013),http://portal.acm.org/proceedings/vtdc/,http://portal.acm.org/proceedings/vtdc/archive/
-Conference Proceedings,VVS: Symposium on Volume Visualization,,,,1989 (May 1989),2002 (October 2002),http://portal.acm.org/proceedings/vvs/,http://portal.acm.org/proceedings/vvs/archive/
-Conference Proceedings,ValueTools: Performance Evaluation Methodologies and Tools,,,,2007 (October 2007),2007 (October 2007),http://portal.acm.org/proceedings/valuetools/,http://portal.acm.org/proceedings/valuetools/archive/
-Conference Proceedings,Valuetools: Performance Evaluation Methodologies and Tools,,,,2006 (October 2006),2011 (May 2011),http://portal.acm.org/proceedings/valuetools/,http://portal.acm.org/proceedings/valuetools/archive/
-Conference Proceedings,VizSEC: Visualization for Computer Security,,,,2004 (October 2004),2006 (November 2006),http://portal.acm.org/proceedings/vizsec/,http://portal.acm.org/proceedings/vizsec/archive/
-Conference Proceedings,VizSec: Visualization for Cyber Security,,,,2010 (September 2010),2013 (October 2013),http://portal.acm.org/proceedings/vizsec/,http://portal.acm.org/proceedings/vizsec/archive/
-Conference Proceedings,WA: Web Accessibility,,,,2004 (May 2004),2013 (May 2013),http://portal.acm.org/proceedings/wa/,http://portal.acm.org/proceedings/wa/archive/
-Conference Proceedings,WACC: Work Activities Coordination and Collaboration,,,,1999 (March 1999),1999 (March 1999),http://portal.acm.org/proceedings/wacc/,http://portal.acm.org/proceedings/wacc/archive/
-Conference Proceedings,WADAS: Washington Ada symposium on Ada,,,,1984 (March 1984),1994 (July 1994),http://portal.acm.org/proceedings/wadas/,http://portal.acm.org/proceedings/wadas/archive/
-Conference Proceedings,WADS: Workshop on Architecting Dependable Systems,,,,2005 (May 2005),2005 (May 2005),http://portal.acm.org/proceedings/wads/,http://portal.acm.org/proceedings/wads/archive/
-Conference Proceedings,WBIA: Workshop on Binary Instrumentation and Applications,,,,2009 (December 2009),2009 (December 2009),http://portal.acm.org/proceedings/wbia/,http://portal.acm.org/proceedings/wbia/archive/
-Conference Proceedings,WBMA: Biometrics Methods and Applications,,,,2003 (November 2003),2003 (November 2003),http://portal.acm.org/proceedings/wbma/,http://portal.acm.org/proceedings/wbma/archive/
-Conference Proceedings,WCAE: Computer Architecture Education,,,,1995 (January 1995),2007 (June 2007),http://portal.acm.org/proceedings/wcae/,http://portal.acm.org/proceedings/wcae/archive/
-Conference Proceedings,WCCCE: Computing Education,,,,2009 (May 2009),2012 (May 2012),http://portal.acm.org/proceedings/wccce/,http://portal.acm.org/proceedings/wccce/archive/
-Conference Proceedings,WCFLP: Workshop on Curry and Functional Logic Programming,,,,2005 (September 2005),2005 (September 2005),http://portal.acm.org/proceedings/wcflp/,http://portal.acm.org/proceedings/wcflp/archive/
-Conference Proceedings,WDTN: Delay-Tolerant Networking,,,,2005 (August 2005),2005 (August 2005),http://portal.acm.org/proceedings/wdtn/,http://portal.acm.org/proceedings/wdtn/archive/
-Conference Proceedings,WEASELTech: Empirical Assessment of Software Engineering Languages and Technologies,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/weaseltech/,http://portal.acm.org/proceedings/weaseltech/archive/
-Conference Proceedings,WEH: Exception Handling,,,,2008 (November 2008),2008 (November 2008),http://portal.acm.org/proceedings/weh/,http://portal.acm.org/proceedings/weh/archive/
-Conference Proceedings,WESS: Workshop on Embedded Systems Security,,,,2009 (October 2009),2013 (September 2013),http://portal.acm.org/proceedings/wess/,http://portal.acm.org/proceedings/wess/archive/
-Conference Proceedings,WETSoM: Workshop on Emerging Trends in Software Metrics,,,,2010 (May 2010),2011 (May 2011),http://portal.acm.org/proceedings/wetsom/,http://portal.acm.org/proceedings/wetsom/archive/
-Conference Proceedings,WEUSE: Workshop on End-User Software Engineering,,,,2005 (May 2005),2008 (May 2008),http://portal.acm.org/proceedings/weuse/,http://portal.acm.org/proceedings/weuse/archive/
-Conference Proceedings,WEWST: Workshop on Enhanced Web Service Technologies,,,,2009 (November 2009),2011 (September 2011),http://portal.acm.org/proceedings/wewst/,http://portal.acm.org/proceedings/wewst/archive/
-Conference Proceedings,WGP: Workshop on Generic Programming,,,,2006 (September 2006),2013 (September 2013),http://portal.acm.org/proceedings/wgp/,http://portal.acm.org/proceedings/wgp/archive/
-Conference Proceedings,WH: Wireless Health,,,,2010 (October 2010),2012 (October 2012),http://portal.acm.org/proceedings/wh/,http://portal.acm.org/proceedings/wh/archive/
-Conference Proceedings,WHPCF: High Performance Computational Finance,,,,2009 (November 2009),2013 (November 2013),http://portal.acm.org/proceedings/whpcf/,http://portal.acm.org/proceedings/whpcf/archive/
-Conference Proceedings,WI-IATW: Web Intelligence and Intelligent Agent Technology,,,,2006 (December 2006),2012 (December 2012),http://portal.acm.org/proceedings/wi-iatw/,http://portal.acm.org/proceedings/wi-iatw/archive/
-Conference Proceedings,WI: Web Intelligence,,,,2003 (October 2003),2007 (November 2007),http://portal.acm.org/proceedings/wi/,http://portal.acm.org/proceedings/wi/archive/
-Conference Proceedings,WICON: Wireless internet,,,,2006 (August 2006),2007 (October 2007),http://portal.acm.org/proceedings/wicon/,http://portal.acm.org/proceedings/wicon/archive/
-Conference Proceedings,WICOW: Information Credibility on the Web,,,,2008 (October 2008),2010 (April 2010),http://portal.acm.org/proceedings/wicow/,http://portal.acm.org/proceedings/wicow/archive/
-Conference Proceedings,WIDM: Web Information and Data Management,,,,1999 (November 1999),2012 (November 2012),http://portal.acm.org/proceedings/widm/,http://portal.acm.org/proceedings/widm/archive/
-Conference Proceedings,WIESS: Industrial Experiences with Systems Software ,,,,2000 (October 2000),2002 (December 2002),http://portal.acm.org/proceedings/wiess/,http://portal.acm.org/proceedings/wiess/archive/
-Conference Proceedings,WINITS: Wireless Networking for Intelligent Transportation Systems,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/winits/,http://portal.acm.org/proceedings/winits/archive/
-Conference Proceedings,WINTECH: Exerimental Evaluation and Characterization,,,,2009 (September 2009),2009 (September 2009),http://portal.acm.org/proceedings/wintech/,http://portal.acm.org/proceedings/wintech/archive/
-Conference Proceedings,WISER: Workshop on Interdisciplinary Software Engineering Research,,,,2004 (November 2004),2006 (May 2006),http://portal.acm.org/proceedings/wiser/,http://portal.acm.org/proceedings/wiser/archive/
-Conference Proceedings,WISG: Workshop on Information Security Governance,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/wisg/,http://portal.acm.org/proceedings/wisg/archive/
-Conference Proceedings,WISTP: Information Security Theory and Practices,,,,2007 (May 2007),2008 (May 2008),http://portal.acm.org/proceedings/wistp/,http://portal.acm.org/proceedings/wistp/archive/
-Conference Proceedings,WITS: Issues in the Theory of Security,,,,2005 (January 2005),2005 (January 2005),http://portal.acm.org/proceedings/wits/,http://portal.acm.org/proceedings/wits/archive/
-Conference Proceedings,WMASH: Wireless Mobile Applications and Services on WLAN Hotspots,,,,2003 (September 2003),2006 (September 2006),http://portal.acm.org/proceedings/wmash/,http://portal.acm.org/proceedings/wmash/archive/
-Conference Proceedings,WMC: Workshop on Mobile Commerce,,,,2001 (July 2001),2002 (September 2002),http://portal.acm.org/proceedings/wmc/,http://portal.acm.org/proceedings/wmc/archive/
-Conference Proceedings,WMI: Wireless Mobile Internet,,,,2001 (July 2001),2001 (July 2001),http://portal.acm.org/proceedings/wmi/,http://portal.acm.org/proceedings/wmi/archive/
-Conference Proceedings,WMISI: Workshop on Multimodal Interfaces in Semantic Interaction,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/wmisi/,http://portal.acm.org/proceedings/wmisi/archive/
-Conference Proceedings,WMPI: Memory Performance Issues,,,,2004 (June 2004),2004 (June 2004),http://portal.acm.org/proceedings/wmpi/,http://portal.acm.org/proceedings/wmpi/archive/
-Conference Proceedings,WMUPS: Middleware for Ubiquitous and Pervasive Systems,,,,2009 (June 2009),2009 (June 2009),http://portal.acm.org/proceedings/wmups/,http://portal.acm.org/proceedings/wmups/archive/
-Conference Proceedings,WMuNeP: Wireless Multimedia and Performance Modeling,,,,2005 (October 2005),2011 (October 2011),http://portal.acm.org/proceedings/wmunep/,http://portal.acm.org/proceedings/wmunep/archive/
-Conference Proceedings,WNS: Workshop on NS-2: the IP Network Simulator,,,,2006 (October 2006),2006 (October 2006),http://portal.acm.org/proceedings/wns/,http://portal.acm.org/proceedings/wns/archive/
-Conference Proceedings,WOCCI: Workshop on Child, Computer and Interaction,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/wocci/,http://portal.acm.org/proceedings/wocci/archive/
-Conference Proceedings,WODA: Workshop on Dynamic Analysis,,,,2005 (May 2005),2012 (July 2012),http://portal.acm.org/proceedings/woda/,http://portal.acm.org/proceedings/woda/archive/
-Conference Proceedings,WORKS: Workflows in Support of Large-Scale Science,,,,2007 (June 2007),2013 (November 2013),http://portal.acm.org/proceedings/works/,http://portal.acm.org/proceedings/works/archive/
-Conference Proceedings,WORM: Workshop on Recurring Malcode,,,,2003 (October 2003),2007 (November 2007),http://portal.acm.org/proceedings/worm/,http://portal.acm.org/proceedings/worm/archive/
-Conference Proceedings,WOSN: Online Social Networks,,,,2008 (August 2008),2012 (August 2012),http://portal.acm.org/proceedings/wosn/,http://portal.acm.org/proceedings/wosn/archive/
-Conference Proceedings by Affiliated Organizations,WOSP: Software and Performance,,,,1998 (October 1998),2013 (April 2013),http://portal.acm.org/proceedings/wosp/,http://portal.acm.org/proceedings/wosp/archive/
-Conference Proceedings,WOSS: Self-Managed Systems,,,,2002 (November 2002),2004 (October 2004),http://portal.acm.org/proceedings/woss/,http://portal.acm.org/proceedings/woss/archive/
-Conference Proceedings,WOSSE: Workshop on Open Source Software Engineering,,,,2005 (May 2005),2005 (May 2005),http://portal.acm.org/proceedings/wosse/,http://portal.acm.org/proceedings/wosse/archive/
-Conference Proceedings,WOWMOM: Workshop on Wireless Mobile Multimedia,,,,1998 (October 1998),2006 (June 2006),http://portal.acm.org/proceedings/wowmom/,http://portal.acm.org/proceedings/wowmom/archive/
-Conference Proceedings,WPES: Workshop on Privacy in the Electronic Society,,,,2002 (November 2002),2013 (November 2013),http://portal.acm.org/proceedings/wpes/,http://portal.acm.org/proceedings/wpes/archive/
-Conference Proceedings,WRAITS: Recent Advances on Intrusion-Tolerant Systems,,,,2008 (April 2008),2008 (April 2008),http://portal.acm.org/proceedings/wraits/,http://portal.acm.org/proceedings/wraits/archive/
-Conference Proceedings,WRASQ: Workshop on Automating Service Quality,,,,2007 (November 2007),2007 (November 2007),http://portal.acm.org/proceedings/wrasq/,http://portal.acm.org/proceedings/wrasq/archive/
-Conference Proceedings,WREFT: Workshop on Radiation Effects and Fault Tolerance in Nanometer Technologies,,,,2008 (May 2008),2008 (May 2008),http://portal.acm.org/proceedings/wreft/,http://portal.acm.org/proceedings/wreft/archive/
-Conference Proceedings,WREN: Research on Enterprise Networking,,,,2009 (August 2009),2009 (August 2009),http://portal.acm.org/proceedings/wren/,http://portal.acm.org/proceedings/wren/archive/
-Conference Proceedings,WRT: Refactoring Tools,,,,2008 (October 2008),2012 (June 2012),http://portal.acm.org/proceedings/wrt/,http://portal.acm.org/proceedings/wrt/archive/
-Conference Proceedings,WS-REST: RESTful Design,,,,2010 (April 2010),2012 (April 2012),http://portal.acm.org/proceedings/ws-rest/,http://portal.acm.org/proceedings/ws-rest/archive/
-Conference Proceedings,WSC: Winter Simulation Conference,,,,1971 (January 1971),2012 (December 2012),http://portal.acm.org/proceedings/wsc/,http://portal.acm.org/proceedings/wsc/archive/
-Conference Proceedings,WSCD: Web Search Click Data,,,,2009 (February 2009),2009 (February 2009),http://portal.acm.org/proceedings/wscd/,http://portal.acm.org/proceedings/wscd/archive/
-Conference Proceedings,WSDM: Web Search and Data Mining,,,,2008 (February 2008),2013 (February 2013),http://portal.acm.org/proceedings/wsdm/,http://portal.acm.org/proceedings/wsdm/archive/
-Conference Proceedings,WSM: Social Media,,,,2009 (October 2009),2011 (November 2011),http://portal.acm.org/proceedings/wsm/,http://portal.acm.org/proceedings/wsm/archive/
-Conference Proceedings,WSMC: Web-Scale Multimedia Corpus,,,,2009 (October 2009),2009 (October 2009),http://portal.acm.org/proceedings/wsmc/,http://portal.acm.org/proceedings/wsmc/archive/
-Conference Proceedings,WSNA: Wireless Sensor Networks and Applications,,,,2002 (September 2002),2003 (September 2003),http://portal.acm.org/proceedings/wsna/,http://portal.acm.org/proceedings/wsna/archive/
-Conference Proceedings,WTAOP: Workshop on Testing Aspect-Oriented Programs,,,,2006 (July 2006),2007 (March 2007),http://portal.acm.org/proceedings/wtaop/,http://portal.acm.org/proceedings/wtaop/archive/
-Conference Proceedings,WUAUC: Universal Accessibility of Ubiquitous Computing,,,,2001 (May 2001),2001 (May 2001),http://portal.acm.org/proceedings/wuauc/,http://portal.acm.org/proceedings/wuauc/archive/
-Conference Proceedings,WUP: Warm Up Workshop for ACM/IEEE ICSE 2010,,,,2009 (April 2009),2009 (April 2009),http://portal.acm.org/proceedings/wup/,http://portal.acm.org/proceedings/wup/archive/
-Conference Proceedings,WWW: World Wide Web,,,,2001 (April 2001),2013 (May 2013),http://portal.acm.org/proceedings/www/,http://portal.acm.org/proceedings/www/archive/
-Conference Proceedings,Wands: Workflow Approaches to New Data-centric Science,,,,2010 (June 2010),2010 (June 2010),http://portal.acm.org/proceedings/wands/,http://portal.acm.org/proceedings/wands/archive/
-Conference Proceedings,Web3D: 3D Web Technology,,,,2001 (February 2001),2013 (June 2013),http://portal.acm.org/proceedings/web3d/,http://portal.acm.org/proceedings/web3d/archive/
-Conference Proceedings,WebDB: Web and Databases,,,,2004 (June 2004),2010 (June 2010),http://portal.acm.org/proceedings/webdb/,http://portal.acm.org/proceedings/webdb/archive/
-Conference Proceedings,WebKDD/SNA-KDD: Web Mining and Social Network Analysis,,,,2007 (August 2007),2007 (August 2007),http://portal.acm.org/proceedings/webkdd/sna-kdd/,http://portal.acm.org/proceedings/webkdd/sna-kdd/archive/
-Conference Proceedings,WebMedia: Multimedia and the Web,,,,2005 (December 2005),2013 (November 2013),http://portal.acm.org/proceedings/webmedia/,http://portal.acm.org/proceedings/webmedia/archive/
-Conference Proceedings,WebSE: Workshop on Web 2.0 for Software Engineering,,,,2010 (May 2010),2011 (May 2011),http://portal.acm.org/proceedings/webse/,http://portal.acm.org/proceedings/webse/archive/
-Conference Proceedings,WebScience: Collaborative and Collective Intelligence,,,,2008 (June 2008),2008 (June 2008),http://portal.acm.org/proceedings/webscience/,http://portal.acm.org/proceedings/webscience/archive/
-Conference Proceedings,WiMD: Medical Grade Wireless Networks,,,,2009 (May 2009),2009 (May 2009),http://portal.acm.org/proceedings/wimd/,http://portal.acm.org/proceedings/wimd/archive/
-Conference Proceedings,WiNS-DR: Wireless Networks and Systems for Developing Regions,,,,2008 (September 2008),2008 (September 2008),http://portal.acm.org/proceedings/wins-dr/,http://portal.acm.org/proceedings/wins-dr/archive/
-Conference Proceedings,WiNTECH: Wireless Network Tesbeds, Experimental Evaluation and Characterization,,,,2006 (September 2006),2013 (September 2013),http://portal.acm.org/proceedings/wintech/,http://portal.acm.org/proceedings/wintech/archive/
-Conference Proceedings,WiSE: Wireless Security,,,,2002 (September 2002),2006 (September 2006),http://portal.acm.org/proceedings/wise/,http://portal.acm.org/proceedings/wise/archive/
-Conference Proceedings,WiSec: Wireless Network Security,,,,2008 (March 2008),2013 (April 2013),http://portal.acm.org/proceedings/wisec/,http://portal.acm.org/proceedings/wisec/archive/
-Conference Proceedings,WiTMeMo: Wireless Traffic Measurements and Modeling,,,,2005 (June 2005),2006 (August 2006),http://portal.acm.org/proceedings/witmemo/,http://portal.acm.org/proceedings/witmemo/archive/
-Conference Proceedings,WikiSym: International Symposium on Wikis,,,,2005 (October 2005),2013 (August 2013),http://portal.acm.org/proceedings/wikisym/,http://portal.acm.org/proceedings/wikisym/archive/
-Conference Proceedings,WoSQ: Workshop on Software Quality,,,,2005 (May 2005),2011 (September 2011),http://portal.acm.org/proceedings/wosq/,http://portal.acm.org/proceedings/wosq/archive/
-Conference Proceedings,WuWNeT: UnderWater Networks,,,,2006 (September 2006),2012 (November 2012),http://portal.acm.org/proceedings/wuwnet/,http://portal.acm.org/proceedings/wuwnet/archive/
-Conference Proceedings,XIME-P: XQuery Implementation, Experience and Perpectives,,,,2007 (June 2007),2007 (June 2007),http://portal.acm.org/proceedings/xime-p/,http://portal.acm.org/proceedings/xime-p/archive/
-Conference Proceedings,XMLSEC: XML Security,,,,2002 (November 2002),2003 (October 2003),http://portal.acm.org/proceedings/xmlsec/,http://portal.acm.org/proceedings/xmlsec/archive/
-Conference Proceedings,dg.o: Digital Government Research,,,,2000 (May 2000),2013 (June 2013),http://portal.acm.org/proceedings/dg.o/,http://portal.acm.org/proceedings/dg.o/archive/
-Conference Proceedings,e-Energy: Energy-Efficient Computing and Networking,,,,2010 (April 2010),2013 (January 2013),http://portal.acm.org/proceedings/e-energy/,http://portal.acm.org/proceedings/e-energy/archive/
-Conference Proceedings,e-Forensics: Forensic Applications and Techniques in Telecommunications, Information, and Multimedia,,,,2008 (January 2008),2008 (January 2008),http://portal.acm.org/proceedings/e-forensics/,http://portal.acm.org/proceedings/e-forensics/archive/
-Conference Proceedings,eConf: e-Services and e-Systems,,,,2009 (November 2009),2009 (November 2009),http://portal.acm.org/proceedings/econf/,http://portal.acm.org/proceedings/econf/archive/
-Conference Proceedings,eCrime: eCrime Researchers Summit,,,,2007 (October 2007),2007 (October 2007),http://portal.acm.org/proceedings/ecrime/,http://portal.acm.org/proceedings/ecrime/archive/
-Conference Proceedings,eHeritage: eHeritage and Digital Art Preservation,,,,2010 (October 2010),2010 (October 2010),http://portal.acm.org/proceedings/eheritage/,http://portal.acm.org/proceedings/eheritage/archive/
-Conference Proceedings,eclipse: eclipse Technology eXchange,,,,2003 (October 2003),2007 (October 2007),http://portal.acm.org/proceedings/eclipse/,http://portal.acm.org/proceedings/eclipse/archive/
-Conference Proceedings,i-CREATe: Rehabilitation Engineering & Assistive Technology,,,,2007 (April 2007),2009 (April 2009),http://portal.acm.org/proceedings/i-create/,http://portal.acm.org/proceedings/i-create/archive/
-Conference Proceedings,iNEWS: Improving Non English Web Searching,,,,2008 (October 2008),2008 (October 2008),http://portal.acm.org/proceedings/inews/,http://portal.acm.org/proceedings/inews/archive/
-Conference Proceedings,iiWAS: Information Integration and Web-based Applications & Services,,,,2008 (November 2008),2012 (December 2012),http://portal.acm.org/proceedings/iiwas/,http://portal.acm.org/proceedings/iiwas/archive/
-Conference Proceedings,mmCom: mmWave communications,,,,2010 (September 2010),2010 (September 2010),http://portal.acm.org/proceedings/mmcom/,http://portal.acm.org/proceedings/mmcom/archive/
-Conference Proceedings,sOc-EUSAI: Smart Objects and Ambient Intelligence,,,,2005 (October 2005),2005 (October 2005),http://portal.acm.org/proceedings/soc-eusai/,http://portal.acm.org/proceedings/soc-eusai/archive/
-Conference Proceedings,years of DAC: Years of DAC,,,,1988 (June 1988),1988 (June 1988),http://portal.acm.org/proceedings/yearsofdac/,http://portal.acm.org/proceedings/yearsofdac/archive/
\ No newline at end of file
diff --git a/server/files/sounds/original/utf-8''funzionalità centralino-1491835187299.odt b/server/files/sounds/original/utf-8''funzionalità centralino-1491835187299.odt
deleted file mode 100644 (file)
index dde8c8a..0000000
Binary files "a/server/files/sounds/original/utf-8''funzionalit\303\240 centralino-1491835187299.odt" and /dev/null differ
index 6120273..a8a79e6 100644 (file)
@@ -1 +1 @@
-var _0xdd0f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xdd0f[0];module[_0xdd0f[1]]= {up:function(_0x47f6x1,_0x47f6x2){},down:function(_0x47f6x1,_0x47f6x2){}}
\ No newline at end of file
+var _0x21ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x21ca[0];module[_0x21ca[1]]= {up:function(_0xe12bx1,_0xe12bx2){},down:function(_0xe12bx1,_0xe12bx2){}}
\ No newline at end of file
index 68ca379..0825d99 100644 (file)
@@ -1 +1 @@
-var _0xffb8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x63\x61\x74\x63\x68","\x41\x64\x64\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x74\x6F\x20\x25\x73","\x74\x68\x65\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6D\x6F\x76\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x66\x72\x6F\x6D\x20\x25\x73","\x72\x65\x6E\x61\x6D\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6E\x61\x6D\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x66\x72\x6F\x6D\x20\x25\x73\x20\x74\x6F\x20\x25\x73\x20\x6F\x6E\x20\x25\x73","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x64\x65\x6C\x65\x74\x65\x64\x61\x74","\x44\x41\x54\x45","\x75\x73\x65\x72\x73","\x70\x68\x6F\x6E\x65\x42\x61\x72\x52\x69\x6E\x67\x49\x6E\x55\x73\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x64\x65\x6C\x65\x74\x65\x64","\x53\x54\x52\x49\x4E\x47","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0xffb8[0];var BPromise=require(_0xffb8[1]);var logger=require(_0xffb8[3])(_0xffb8[2]);var Migration=function(_0x618ax4){this[_0xffb8[4]]= _0x618ax4};Migration[_0xffb8[6]][_0xffb8[5]]= function(_0x618ax5,_0x618ax6,_0x618ax7){return this[_0xffb8[4]][_0xffb8[5]](_0x618ax5,_0x618ax6,_0x618ax7)[_0xffb8[11]](function(_0x618ax9){logger[_0xffb8[8]](_0xffb8[10],_0x618ax6,_0x618ax5)})[_0xffb8[9]](function(_0x618ax8){logger[_0xffb8[8]](JSON[_0xffb8[7]](_0x618ax8))})};Migration[_0xffb8[6]][_0xffb8[12]]= function(_0x618ax5,_0x618ax6){return this[_0xffb8[4]][_0xffb8[12]](_0x618ax5,_0x618ax6)[_0xffb8[11]](function(_0x618ax9){logger[_0xffb8[8]](_0xffb8[13],_0x618ax6,_0x618ax5)})[_0xffb8[9]](function(_0x618ax8){logger[_0xffb8[8]](JSON[_0xffb8[7]](_0x618ax8))})};Migration[_0xffb8[6]][_0xffb8[14]]= function(_0x618ax5,_0x618axa,_0x618axb){return this[_0xffb8[4]][_0xffb8[14]](_0x618ax5,_0x618axa,_0x618axb)[_0xffb8[11]](function(_0x618ax9){logger[_0xffb8[8]](_0xffb8[15],_0x618axa,_0x618axb,_0x618ax5)})[_0xffb8[9]](function(_0x618ax8){logger[_0xffb8[8]](JSON[_0xffb8[7]](_0x618ax8))})};module[_0xffb8[16]]= {up:function(_0x618ax4,_0x618axc){var _0x618axd= new Migration(_0x618ax4);_0x618axd[_0xffb8[5]](_0xffb8[17],_0xffb8[18],{type:_0x618axc[_0xffb8[19]]});_0x618axd[_0xffb8[5]](_0xffb8[20],_0xffb8[21],{type:_0x618axc[_0xffb8[22]],defaultValue:false});_0x618axd[_0xffb8[5]](_0xffb8[17],_0xffb8[23],{type:_0x618axc[_0xffb8[24]],defaultValue:null});_0x618axd[_0xffb8[14]](_0xffb8[17],_0xffb8[25],_0xffb8[26])},down:function(_0x618ax4,_0x618axc){var _0x618axd= new Migration(_0x618ax4,_0x618axc);_0x618axd[_0xffb8[12]](_0xffb8[20],_0xffb8[21]);_0x618axd[_0xffb8[12]](_0xffb8[17],_0xffb8[18]);_0x618axd[_0xffb8[12]](_0xffb8[17],_0xffb8[23]);_0x618axd[_0xffb8[14]](_0xffb8[17],_0xffb8[26],_0xffb8[25])}}
\ No newline at end of file
+var _0xf507=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x63\x61\x74\x63\x68","\x41\x64\x64\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x74\x6F\x20\x25\x73","\x74\x68\x65\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6D\x6F\x76\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x66\x72\x6F\x6D\x20\x25\x73","\x72\x65\x6E\x61\x6D\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6E\x61\x6D\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x66\x72\x6F\x6D\x20\x25\x73\x20\x74\x6F\x20\x25\x73\x20\x6F\x6E\x20\x25\x73","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x64\x65\x6C\x65\x74\x65\x64\x61\x74","\x44\x41\x54\x45","\x75\x73\x65\x72\x73","\x70\x68\x6F\x6E\x65\x42\x61\x72\x52\x69\x6E\x67\x49\x6E\x55\x73\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x64\x65\x6C\x65\x74\x65\x64","\x53\x54\x52\x49\x4E\x47","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0xf507[0];var BPromise=require(_0xf507[1]);var logger=require(_0xf507[3])(_0xf507[2]);var Migration=function(_0x72a5x4){this[_0xf507[4]]= _0x72a5x4};Migration[_0xf507[6]][_0xf507[5]]= function(_0x72a5x5,_0x72a5x6,_0x72a5x7){return this[_0xf507[4]][_0xf507[5]](_0x72a5x5,_0x72a5x6,_0x72a5x7)[_0xf507[11]](function(_0x72a5x9){logger[_0xf507[8]](_0xf507[10],_0x72a5x6,_0x72a5x5)})[_0xf507[9]](function(_0x72a5x8){logger[_0xf507[8]](JSON[_0xf507[7]](_0x72a5x8))})};Migration[_0xf507[6]][_0xf507[12]]= function(_0x72a5x5,_0x72a5x6){return this[_0xf507[4]][_0xf507[12]](_0x72a5x5,_0x72a5x6)[_0xf507[11]](function(_0x72a5x9){logger[_0xf507[8]](_0xf507[13],_0x72a5x6,_0x72a5x5)})[_0xf507[9]](function(_0x72a5x8){logger[_0xf507[8]](JSON[_0xf507[7]](_0x72a5x8))})};Migration[_0xf507[6]][_0xf507[14]]= function(_0x72a5x5,_0x72a5xa,_0x72a5xb){return this[_0xf507[4]][_0xf507[14]](_0x72a5x5,_0x72a5xa,_0x72a5xb)[_0xf507[11]](function(_0x72a5x9){logger[_0xf507[8]](_0xf507[15],_0x72a5xa,_0x72a5xb,_0x72a5x5)})[_0xf507[9]](function(_0x72a5x8){logger[_0xf507[8]](JSON[_0xf507[7]](_0x72a5x8))})};module[_0xf507[16]]= {up:function(_0x72a5x4,_0x72a5xc){var _0x72a5xd= new Migration(_0x72a5x4);_0x72a5xd[_0xf507[5]](_0xf507[17],_0xf507[18],{type:_0x72a5xc[_0xf507[19]]});_0x72a5xd[_0xf507[5]](_0xf507[20],_0xf507[21],{type:_0x72a5xc[_0xf507[22]],defaultValue:false});_0x72a5xd[_0xf507[5]](_0xf507[17],_0xf507[23],{type:_0x72a5xc[_0xf507[24]],defaultValue:null});_0x72a5xd[_0xf507[14]](_0xf507[17],_0xf507[25],_0xf507[26])},down:function(_0x72a5x4,_0x72a5xc){var _0x72a5xd= new Migration(_0x72a5x4,_0x72a5xc);_0x72a5xd[_0xf507[12]](_0xf507[20],_0xf507[21]);_0x72a5xd[_0xf507[12]](_0xf507[17],_0xf507[18]);_0x72a5xd[_0xf507[12]](_0xf507[17],_0xf507[23]);_0x72a5xd[_0xf507[14]](_0xf507[17],_0xf507[26],_0xf507[25])}}
\ No newline at end of file
index 4bb651f..03e4a7f 100644 (file)
@@ -1 +1 @@
-var _0x223b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x61\x74\x61\x62\x61\x73\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x48\x69\x73\x74\x6F\x72\x79","\x55\x73\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x69\x6D\x70\x6F\x72\x74","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x6D\x6F\x64\x65\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x4C\x69\x73\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x4C\x69\x73\x74\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x6D\x6F\x64\x65\x6C","\x50\x61\x75\x73\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x2F\x70\x61\x75\x73\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x64\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x64\x72\x2F\x63\x64\x72\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x6D\x6F\x64\x65\x6C","\x53\x63\x68\x65\x64\x75\x6C\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x6D\x6F\x64\x65\x6C","\x53\x6F\x75\x6E\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x6D\x6F\x64\x65\x6C","\x54\x61\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67\x2F\x74\x61\x67\x2E\x6D\x6F\x64\x65\x6C","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x6D\x6F\x64\x65\x6C","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x4E\x65\x74\x77\x6F\x72\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x54\x65\x61\x6D","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x2F\x74\x65\x61\x6D\x2E\x6D\x6F\x64\x65\x6C","\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x6D\x6F\x64\x65\x6C","\x63\x61\x73\x63\x61\x64\x65","\x55\x73\x65\x72\x49\x64","\x68\x61\x73\x4F\x6E\x65","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x6D\x5F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6C\x69\x73\x74\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x72\x6F\x6F\x6D\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x73","\x46\x61\x78\x51\x75\x65\x75\x65\x73","\x53\x6D\x73\x51\x75\x65\x75\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73","\x53\x70\x69\x65\x64\x41\x67\x65\x6E\x74\x73","\x43\x68\x61\x6E\x53\x70\x79\x49\x64","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6F\x75\x6E\x64\x73","\x6D\x6F\x68\x5F\x68\x61\x73\x5F\x73\x6F\x75\x6E\x64\x73","\x4D\x65\x6D\x62\x65\x72\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x48\x6F\x70\x70\x65\x72\x73","\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x54\x72\x75\x6E\x6B\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70\x49\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x41\x67\x65\x6E\x74\x73","\x54\x65\x61\x6D\x73","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x49\x6D\x61\x70","\x53\x6D\x74\x70","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x4C\x69\x73\x74","\x4C\x69\x73\x74\x49\x64","\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x4D\x65\x73\x73\x61\x67\x65\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x49\x64","\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x72\x65\x73\x74\x72\x69\x63\x74","\x49\x74\x65\x6D\x73","\x45\x78\x6E\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x61\x78\x52\x6F\x6F\x6D\x49\x64","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x6D\x73\x52\x6F\x6F\x6D\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x6F\x6F\x6D\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x45\x6E\x71\x75\x69\x72\x69\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x56\x69\x73\x69\x74\x6F\x72\x73","\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x4F\x66\x66\x6C\x69\x6E\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x49\x64","\x4F\x6E\x6C\x69\x6E\x65","\x4F\x6E\x6C\x69\x6E\x65\x49\x64","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x41\x67\x65\x6E\x74","\x51\x75\x65\x75\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x49\x64","\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x45\x6E\x71\x75\x69\x72\x79","\x43\x6F\x6D\x70\x61\x6E\x79\x49\x64","\x43\x6F\x6D\x70\x61\x6E\x79","\x55\x73\x65\x72\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x51\x75\x65\x75\x65\x73","\x41\x6C\x6C","\x4F\x6E\x65\x41\x6C\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6C\x6C\x49\x64","\x41\x6E\x79","\x4F\x6E\x65\x41\x6E\x79","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6E\x79\x49\x64","\x41\x63\x74\x69\x6F\x6E\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x49\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4D\x6F\x68\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x46\x69\x65\x6C\x64\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x4D\x65\x74\x72\x69\x63\x49\x64","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64\x49\x64","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x56\x61\x72\x69\x61\x62\x6C\x65\x49\x64","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x71\x75\x65\x73\x74\x69\x6F\x6E\x49\x64","\x73\x65\x73\x73\x69\x6F\x6E\x49\x64","\x70\x72\x6F\x6A\x65\x63\x74\x49\x64","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x49\x64","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x223b[0];var path=require(_0x223b[1]);var config=require(_0x223b[2]);var Sequelize=require(_0x223b[3]);var db={Sequelize:Sequelize,sequelize: new Sequelize(config[_0x223b[3]][_0x223b[4]],config[_0x223b[3]][_0x223b[5]],config[_0x223b[3]][_0x223b[6]],config[_0x223b[3]][_0x223b[7]])};var dbH={Sequelize:Sequelize,sequelize: new Sequelize(config[_0x223b[8]][_0x223b[4]],config[_0x223b[8]][_0x223b[5]],config[_0x223b[8]][_0x223b[6]],config[_0x223b[8]][_0x223b[7]])};db[_0x223b[9]]= db[_0x223b[3]][_0x223b[11]](_0x223b[10]);db[_0x223b[12]]= db[_0x223b[3]][_0x223b[11]](_0x223b[13]);db[_0x223b[14]]= db[_0x223b[3]][_0x223b[11]](_0x223b[15]);db[_0x223b[16]]= db[_0x223b[3]][_0x223b[11]](_0x223b[17]);db[_0x223b[18]]= db[_0x223b[3]][_0x223b[11]](_0x223b[19]);db[_0x223b[20]]= db[_0x223b[3]][_0x223b[11]](_0x223b[21]);db[_0x223b[22]]= db[_0x223b[3]][_0x223b[11]](_0x223b[23]);db[_0x223b[24]]= db[_0x223b[3]][_0x223b[11]](_0x223b[25]);db[_0x223b[26]]= db[_0x223b[3]][_0x223b[11]](_0x223b[27]);db[_0x223b[28]]= db[_0x223b[3]][_0x223b[11]](_0x223b[29]);db[_0x223b[30]]= db[_0x223b[3]][_0x223b[11]](_0x223b[31]);db[_0x223b[32]]= db[_0x223b[3]][_0x223b[11]](_0x223b[33]);db[_0x223b[34]]= db[_0x223b[3]][_0x223b[11]](_0x223b[35]);db[_0x223b[36]]= db[_0x223b[3]][_0x223b[11]](_0x223b[37]);db[_0x223b[38]]= db[_0x223b[3]][_0x223b[11]](_0x223b[39]);db[_0x223b[40]]= db[_0x223b[3]][_0x223b[11]](_0x223b[41]);db[_0x223b[42]]= db[_0x223b[3]][_0x223b[11]](_0x223b[43]);db[_0x223b[44]]= db[_0x223b[3]][_0x223b[11]](_0x223b[45]);db[_0x223b[46]]= db[_0x223b[3]][_0x223b[11]](_0x223b[47]);db[_0x223b[48]]= db[_0x223b[3]][_0x223b[11]](_0x223b[49]);db[_0x223b[50]]= db[_0x223b[3]][_0x223b[11]](_0x223b[51]);db[_0x223b[52]]= db[_0x223b[3]][_0x223b[11]](_0x223b[53]);db[_0x223b[54]]= db[_0x223b[3]][_0x223b[11]](_0x223b[55]);db[_0x223b[56]]= db[_0x223b[3]][_0x223b[11]](_0x223b[57]);db[_0x223b[58]]= db[_0x223b[3]][_0x223b[11]](_0x223b[59]);db[_0x223b[60]]= db[_0x223b[3]][_0x223b[11]](_0x223b[61]);db[_0x223b[62]]= db[_0x223b[3]][_0x223b[11]](_0x223b[63]);db[_0x223b[64]]= db[_0x223b[3]][_0x223b[11]](_0x223b[65]);db[_0x223b[66]]= db[_0x223b[3]][_0x223b[11]](_0x223b[67]);db[_0x223b[68]]= db[_0x223b[3]][_0x223b[11]](_0x223b[69]);db[_0x223b[70]]= db[_0x223b[3]][_0x223b[11]](_0x223b[71]);db[_0x223b[72]]= db[_0x223b[3]][_0x223b[11]](_0x223b[73]);db[_0x223b[74]]= db[_0x223b[3]][_0x223b[11]](_0x223b[75]);db[_0x223b[76]]= db[_0x223b[3]][_0x223b[11]](_0x223b[77]);db[_0x223b[78]]= db[_0x223b[3]][_0x223b[11]](_0x223b[79]);db[_0x223b[80]]= db[_0x223b[3]][_0x223b[11]](_0x223b[81]);db[_0x223b[82]]= db[_0x223b[3]][_0x223b[11]](_0x223b[83]);db[_0x223b[84]]= db[_0x223b[3]][_0x223b[11]](_0x223b[85]);db[_0x223b[86]]= db[_0x223b[3]][_0x223b[11]](_0x223b[87]);db[_0x223b[88]]= db[_0x223b[3]][_0x223b[11]](_0x223b[89]);db[_0x223b[90]]= db[_0x223b[3]][_0x223b[11]](_0x223b[91]);db[_0x223b[92]]= db[_0x223b[3]][_0x223b[11]](_0x223b[93]);db[_0x223b[94]]= db[_0x223b[3]][_0x223b[11]](_0x223b[95]);db[_0x223b[96]]= db[_0x223b[3]][_0x223b[11]](_0x223b[97]);db[_0x223b[98]]= db[_0x223b[3]][_0x223b[11]](_0x223b[99]);db[_0x223b[100]]= db[_0x223b[3]][_0x223b[11]](_0x223b[101]);db[_0x223b[102]]= db[_0x223b[3]][_0x223b[11]](_0x223b[103]);db[_0x223b[104]]= db[_0x223b[3]][_0x223b[11]](_0x223b[105]);db[_0x223b[106]]= db[_0x223b[3]][_0x223b[11]](_0x223b[107]);db[_0x223b[108]]= db[_0x223b[3]][_0x223b[11]](_0x223b[109]);db[_0x223b[110]]= db[_0x223b[3]][_0x223b[11]](_0x223b[111]);db[_0x223b[112]]= db[_0x223b[3]][_0x223b[11]](_0x223b[113]);db[_0x223b[114]]= db[_0x223b[3]][_0x223b[11]](_0x223b[115]);db[_0x223b[116]]= db[_0x223b[3]][_0x223b[11]](_0x223b[117]);db[_0x223b[118]]= db[_0x223b[3]][_0x223b[11]](_0x223b[119]);db[_0x223b[120]]= db[_0x223b[3]][_0x223b[11]](_0x223b[121]);db[_0x223b[122]]= db[_0x223b[3]][_0x223b[11]](_0x223b[123]);db[_0x223b[124]]= db[_0x223b[3]][_0x223b[11]](_0x223b[125]);db[_0x223b[126]]= db[_0x223b[3]][_0x223b[11]](_0x223b[127]);db[_0x223b[128]]= db[_0x223b[3]][_0x223b[11]](_0x223b[129]);db[_0x223b[130]]= db[_0x223b[3]][_0x223b[11]](_0x223b[131]);db[_0x223b[132]]= db[_0x223b[3]][_0x223b[11]](_0x223b[133]);db[_0x223b[134]]= db[_0x223b[3]][_0x223b[11]](_0x223b[135]);db[_0x223b[136]]= db[_0x223b[3]][_0x223b[11]](_0x223b[137]);db[_0x223b[138]]= db[_0x223b[3]][_0x223b[11]](_0x223b[139]);db[_0x223b[140]]= db[_0x223b[3]][_0x223b[11]](_0x223b[141]);db[_0x223b[142]]= db[_0x223b[3]][_0x223b[11]](_0x223b[143]);db[_0x223b[144]]= db[_0x223b[3]][_0x223b[11]](_0x223b[145]);db[_0x223b[146]]= db[_0x223b[3]][_0x223b[11]](_0x223b[147]);db[_0x223b[148]]= db[_0x223b[3]][_0x223b[11]](_0x223b[149]);db[_0x223b[150]]= db[_0x223b[3]][_0x223b[11]](_0x223b[151]);db[_0x223b[152]]= db[_0x223b[3]][_0x223b[11]](_0x223b[153]);db[_0x223b[154]]= db[_0x223b[3]][_0x223b[11]](_0x223b[155]);db[_0x223b[156]]= db[_0x223b[3]][_0x223b[11]](_0x223b[157]);db[_0x223b[158]]= db[_0x223b[3]][_0x223b[11]](_0x223b[159]);db[_0x223b[160]]= db[_0x223b[3]][_0x223b[11]](_0x223b[161]);db[_0x223b[162]]= db[_0x223b[3]][_0x223b[11]](_0x223b[163]);db[_0x223b[164]]= db[_0x223b[3]][_0x223b[11]](_0x223b[165]);db[_0x223b[166]]= db[_0x223b[3]][_0x223b[11]](_0x223b[167]);db[_0x223b[168]]= db[_0x223b[3]][_0x223b[11]](_0x223b[169]);db[_0x223b[170]]= db[_0x223b[3]][_0x223b[11]](_0x223b[171]);db[_0x223b[172]]= db[_0x223b[3]][_0x223b[11]](_0x223b[173]);db[_0x223b[174]]= db[_0x223b[3]][_0x223b[11]](_0x223b[175]);db[_0x223b[176]]= db[_0x223b[3]][_0x223b[11]](_0x223b[177]);db[_0x223b[178]]= db[_0x223b[3]][_0x223b[11]](_0x223b[179]);db[_0x223b[180]]= db[_0x223b[3]][_0x223b[11]](_0x223b[181]);db[_0x223b[182]]= db[_0x223b[3]][_0x223b[11]](_0x223b[183]);db[_0x223b[184]]= db[_0x223b[3]][_0x223b[11]](_0x223b[185]);db[_0x223b[186]]= db[_0x223b[3]][_0x223b[11]](_0x223b[187]);db[_0x223b[188]]= db[_0x223b[3]][_0x223b[11]](_0x223b[189]);db[_0x223b[190]]= db[_0x223b[3]][_0x223b[11]](_0x223b[191]);db[_0x223b[192]]= db[_0x223b[3]][_0x223b[11]](_0x223b[193]);db[_0x223b[194]]= db[_0x223b[3]][_0x223b[11]](_0x223b[195]);db[_0x223b[196]]= db[_0x223b[3]][_0x223b[11]](_0x223b[197]);db[_0x223b[198]]= db[_0x223b[3]][_0x223b[11]](_0x223b[199]);db[_0x223b[200]]= db[_0x223b[3]][_0x223b[11]](_0x223b[201]);db[_0x223b[202]]= db[_0x223b[3]][_0x223b[11]](_0x223b[203]);db[_0x223b[204]]= db[_0x223b[3]][_0x223b[11]](_0x223b[205]);db[_0x223b[206]]= db[_0x223b[3]][_0x223b[11]](_0x223b[207]);db[_0x223b[208]]= db[_0x223b[3]][_0x223b[11]](_0x223b[209]);db[_0x223b[210]]= db[_0x223b[3]][_0x223b[11]](_0x223b[211]);db[_0x223b[212]]= db[_0x223b[3]][_0x223b[11]](_0x223b[213]);db[_0x223b[214]]= db[_0x223b[3]][_0x223b[11]](_0x223b[215]);db[_0x223b[216]]= db[_0x223b[3]][_0x223b[11]](_0x223b[217]);db[_0x223b[218]]= db[_0x223b[3]][_0x223b[11]](_0x223b[219]);db[_0x223b[220]]= db[_0x223b[3]][_0x223b[11]](_0x223b[221]);db[_0x223b[222]]= db[_0x223b[3]][_0x223b[11]](_0x223b[223]);db[_0x223b[224]]= db[_0x223b[3]][_0x223b[11]](_0x223b[225]);db[_0x223b[226]]= db[_0x223b[3]][_0x223b[11]](_0x223b[227]);db[_0x223b[228]]= db[_0x223b[3]][_0x223b[11]](_0x223b[229]);db[_0x223b[230]]= db[_0x223b[3]][_0x223b[11]](_0x223b[231]);db[_0x223b[192]]= db[_0x223b[3]][_0x223b[11]](_0x223b[193]);db[_0x223b[232]]= db[_0x223b[3]][_0x223b[11]](_0x223b[233]);db[_0x223b[234]]= db[_0x223b[3]][_0x223b[11]](_0x223b[235]);db[_0x223b[236]]= db[_0x223b[3]][_0x223b[11]](_0x223b[237]);db[_0x223b[238]]= db[_0x223b[3]][_0x223b[11]](_0x223b[239]);db[_0x223b[240]]= db[_0x223b[3]][_0x223b[11]](_0x223b[241]);db[_0x223b[242]]= db[_0x223b[3]][_0x223b[11]](_0x223b[243]);db[_0x223b[244]]= db[_0x223b[3]][_0x223b[11]](_0x223b[245]);db[_0x223b[246]]= db[_0x223b[3]][_0x223b[11]](_0x223b[247]);db[_0x223b[248]]= db[_0x223b[3]][_0x223b[11]](_0x223b[249]);db[_0x223b[250]]= db[_0x223b[3]][_0x223b[11]](_0x223b[251]);db[_0x223b[252]]= db[_0x223b[3]][_0x223b[11]](_0x223b[253]);db[_0x223b[254]]= db[_0x223b[3]][_0x223b[11]](_0x223b[255]);db[_0x223b[256]]= db[_0x223b[3]][_0x223b[11]](_0x223b[257]);db[_0x223b[258]]= db[_0x223b[3]][_0x223b[11]](_0x223b[259]);db[_0x223b[260]]= db[_0x223b[3]][_0x223b[11]](_0x223b[261]);db[_0x223b[262]]= db[_0x223b[3]][_0x223b[11]](_0x223b[263]);db[_0x223b[264]]= db[_0x223b[3]][_0x223b[11]](_0x223b[265]);db[_0x223b[266]]= db[_0x223b[3]][_0x223b[11]](_0x223b[267]);db[_0x223b[268]]= db[_0x223b[3]][_0x223b[11]](_0x223b[269]);db[_0x223b[9]][_0x223b[272]](db.VoiceMail,{"\x61\x73":_0x223b[26],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[9]][_0x223b[274]](db.VoiceRecording,{"\x61\x73":_0x223b[273],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[9]][_0x223b[274]](db.UserVoiceQueueRt,{"\x61\x73":_0x223b[275],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[9]][_0x223b[274]](db.VoiceExtension,{"\x61\x73":_0x223b[276],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[9]][_0x223b[274]](db.CmHopperFinal,{"\x61\x73":_0x223b[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[9]][_0x223b[274]](db.CmHopperHistory,{"\x61\x73":_0x223b[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[9]][_0x223b[281]](db.CmContact,{"\x61\x73":_0x223b[279],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[280]});db[_0x223b[9]][_0x223b[281]](db.CmList,{"\x61\x73":_0x223b[282],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[283]});db[_0x223b[9]][_0x223b[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[284]});db[_0x223b[9]][_0x223b[281]](db.MailInteraction,{"\x61\x73":_0x223b[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[286]});db[_0x223b[9]][_0x223b[281]](db.ChatInteraction,{"\x61\x73":_0x223b[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[287]});db[_0x223b[9]][_0x223b[281]](db.FaxInteraction,{"\x61\x73":_0x223b[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[288]});db[_0x223b[9]][_0x223b[281]](db.SmsInteraction,{"\x61\x73":_0x223b[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[289]});db[_0x223b[9]][_0x223b[281]](db.OpenchannelInteraction,{"\x61\x73":_0x223b[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[290]});db[_0x223b[9]][_0x223b[281]](db.VoiceQueue,{"\x61\x73":_0x223b[291],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[46],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[9]][_0x223b[281]](db.MailQueue,{"\x61\x73":_0x223b[292],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[50],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[9]][_0x223b[281]](db.ChatQueue,{"\x61\x73":_0x223b[293],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[48],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[9]][_0x223b[281]](db.FaxQueue,{"\x61\x73":_0x223b[294],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[52],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[9]][_0x223b[281]](db.SmsQueue,{"\x61\x73":_0x223b[295],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[54],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[9]][_0x223b[281]](db.OpenchannelQueue,{"\x61\x73":_0x223b[296],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[56],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[9]][_0x223b[281]](db.CmList,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[283]});db[_0x223b[12]][_0x223b[274]](db.VoiceExtension,{"\x61\x73":_0x223b[297],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[298]});db[_0x223b[14]][_0x223b[274]](db.VoiceExtension,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[18]][_0x223b[274]](db.VoiceExtension,{"\x61\x73":_0x223b[299],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[20]][_0x223b[281]](db.Sound,{"\x61\x73":_0x223b[300],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[301]});db[_0x223b[22]][_0x223b[274]](db.UserVoiceQueueRt,{"\x61\x73":_0x223b[302],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303]});db[_0x223b[22]][_0x223b[274]](db.CmHopper,{"\x61\x73":_0x223b[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303]});db[_0x223b[22]][_0x223b[274]](db.CmHopperFinal,{"\x61\x73":_0x223b[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303]});db[_0x223b[22]][_0x223b[274]](db.CmHopperHistory,{"\x61\x73":_0x223b[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303]});db[_0x223b[22]][_0x223b[274]](db.CmHopperBlack,{"\x61\x73":_0x223b[306],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303]});db[_0x223b[22]][_0x223b[308]](db.Trunk,{"\x61\x73":_0x223b[40],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[307]});db[_0x223b[22]][_0x223b[308]](db.Trunk,{"\x61\x73":_0x223b[309],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[310]});db[_0x223b[22]][_0x223b[308]](db.Interval,{"\x61\x73":_0x223b[172],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[22]][_0x223b[281]](db.CmList,{"\x61\x73":_0x223b[282],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[312]});db[_0x223b[22]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[46]});db[_0x223b[22]][_0x223b[281]](db.Team,{"\x61\x73":_0x223b[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[315]});db[_0x223b[22]][_0x223b[281]](db.CmList,{"\x61\x73":_0x223b[316],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[317]});db[_0x223b[30]][_0x223b[274]](db.VoiceQueueReport,{"\x61\x73":_0x223b[318],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x223b[30]][_0x223b[274]](db.VoiceAgentReport,{"\x61\x73":_0x223b[320],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x223b[30]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[9],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[30]][_0x223b[308]](db.CmContact,{"\x61\x73":_0x223b[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[322]});db[_0x223b[62]][_0x223b[272]](db.MailServerIn,{"\x61\x73":_0x223b[323],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[62]][_0x223b[272]](db.MailServerOut,{"\x61\x73":_0x223b[324],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[62]][_0x223b[274]](db.MailInteraction,{"\x61\x73":_0x223b[285]});db[_0x223b[62]][_0x223b[274]](db.MailApplication,{"\x61\x73":_0x223b[299]});db[_0x223b[62]][_0x223b[274]](db.MailDisposition,{"\x61\x73":_0x223b[325]});db[_0x223b[62]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[62]][_0x223b[308]](db.Template,{"\x61\x73":_0x223b[186],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[328]});db[_0x223b[64]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[50]});db[_0x223b[64]][_0x223b[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[329],"\x61\x73":_0x223b[314]});db[_0x223b[66]][_0x223b[274]](db.MailMessage,{"\x61\x73":_0x223b[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[331]});db[_0x223b[66]][_0x223b[308]](db.MailAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[333]});db[_0x223b[66]][_0x223b[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[286],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[331]});db[_0x223b[68]][_0x223b[274]](db.MailAttachment,{"\x61\x73":_0x223b[334],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[335]});db[_0x223b[68]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[9]});db[_0x223b[68]][_0x223b[308]](db.MailInteraction,{"\x61\x73":_0x223b[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[331]});db[_0x223b[70]][_0x223b[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[70]][_0x223b[308]](db.MailQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[70]][_0x223b[308]](db.MailAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[72]][_0x223b[308]](db.MailAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[333]});db[_0x223b[76]][_0x223b[274]](db.VoiceQueueReport,{"\x61\x73":_0x223b[318],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x223b[76]][_0x223b[274]](db.VoiceAgentReport,{"\x61\x73":_0x223b[320],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x223b[82]][_0x223b[274]](db.DashboardItem,{"\x61\x73":_0x223b[338],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[86]][_0x223b[274]](db.FaxInteraction,{"\x61\x73":_0x223b[285]});db[_0x223b[86]][_0x223b[274]](db.FaxApplication,{"\x61\x73":_0x223b[299]});db[_0x223b[86]][_0x223b[274]](db.VoiceExtension,{"\x61\x73":_0x223b[339],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[86]][_0x223b[274]](db.FaxDisposition,{"\x61\x73":_0x223b[325]});db[_0x223b[86]][_0x223b[308]](db.Trunk,{"\x61\x73":_0x223b[40]});db[_0x223b[86]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[88]][_0x223b[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[88]][_0x223b[308]](db.FaxQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[88]][_0x223b[308]](db.FaxAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[90]][_0x223b[308]](db.FaxAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[340]});db[_0x223b[94]][_0x223b[274]](db.FaxMessage,{"\x61\x73":_0x223b[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[341]});db[_0x223b[94]][_0x223b[308]](db.FaxAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[340]});db[_0x223b[94]][_0x223b[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[288],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[341]});db[_0x223b[96]][_0x223b[274]](db.FaxAttachment,{"\x61\x73":_0x223b[334],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[342]});db[_0x223b[96]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[9]});db[_0x223b[96]][_0x223b[308]](db.FaxInteraction,{"\x61\x73":_0x223b[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[341]});db[_0x223b[98]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[52]});db[_0x223b[98]][_0x223b[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[343],"\x61\x73":_0x223b[314]});db[_0x223b[100]][_0x223b[274]](db.VoiceQueueReport,{"\x61\x73":_0x223b[318],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x223b[100]][_0x223b[274]](db.VoiceAgentReport,{"\x61\x73":_0x223b[320],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x223b[102]][_0x223b[274]](db.SmsMessage,{"\x61\x73":_0x223b[330],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[344]});db[_0x223b[102]][_0x223b[274]](db.SmsInteraction,{"\x61\x73":_0x223b[285]});db[_0x223b[102]][_0x223b[274]](db.SmsApplication,{"\x61\x73":_0x223b[299]});db[_0x223b[102]][_0x223b[274]](db.SmsDisposition,{"\x61\x73":_0x223b[325]});db[_0x223b[102]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[104]][_0x223b[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[104]][_0x223b[308]](db.SmsQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[104]][_0x223b[308]](db.SmsAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[106]][_0x223b[308]](db.SmsAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[344]});db[_0x223b[108]][_0x223b[274]](db.SmsMessage,{"\x61\x73":_0x223b[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[345]});db[_0x223b[108]][_0x223b[308]](db.SmsAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[344]});db[_0x223b[108]][_0x223b[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[289],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[345]});db[_0x223b[110]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[9]});db[_0x223b[110]][_0x223b[308]](db.SmsInteraction,{"\x61\x73":_0x223b[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[345]});db[_0x223b[112]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[54]});db[_0x223b[112]][_0x223b[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[346],"\x61\x73":_0x223b[314]});db[_0x223b[114]][_0x223b[274]](db.OpenchannelInteraction,{"\x61\x73":_0x223b[285],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[114]][_0x223b[274]](db.OpenchannelMessage,{"\x61\x73":_0x223b[330],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[114]][_0x223b[274]](db.OpenchannelApplication,{"\x61\x73":_0x223b[299],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[114]][_0x223b[274]](db.OpenchannelDisposition,{"\x61\x73":_0x223b[325],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[114]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[116]][_0x223b[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[116]][_0x223b[308]](db.OpenchannelQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[348]});db[_0x223b[116]][_0x223b[308]](db.OpenchannelAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[116]][_0x223b[308]](db.Interval,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[118]][_0x223b[308]](db.OpenchannelAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[120]][_0x223b[274]](db.OpenchannelMessage,{"\x61\x73":_0x223b[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[349]});db[_0x223b[120]][_0x223b[308]](db.OpenchannelAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[347]});db[_0x223b[120]][_0x223b[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[290],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[349]});db[_0x223b[122]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[9]});db[_0x223b[122]][_0x223b[308]](db.OpenchannelInteraction,{"\x61\x73":_0x223b[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[349]});db[_0x223b[124]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[56],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[348]});db[_0x223b[124]][_0x223b[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[350],"\x61\x73":_0x223b[314]});db[_0x223b[126]][_0x223b[274]](db.ChatEnquiry,{"\x61\x73":_0x223b[351],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[126]][_0x223b[274]](db.ChatVisitor,{"\x61\x73":_0x223b[353],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[126]][_0x223b[274]](db.ChatProactiveAction,{"\x61\x73":_0x223b[354]});db[_0x223b[126]][_0x223b[274]](db.ChatWebsiteField,{"\x61\x73":_0x223b[355],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[356]});db[_0x223b[126]][_0x223b[274]](db.ChatWebsiteField,{"\x61\x73":_0x223b[357],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[358]});db[_0x223b[126]][_0x223b[274]](db.ChatInteraction,{"\x61\x73":_0x223b[285]});db[_0x223b[126]][_0x223b[274]](db.ChatApplication,{"\x61\x73":_0x223b[299]});db[_0x223b[126]][_0x223b[274]](db.ChatDisposition,{"\x61\x73":_0x223b[325]});db[_0x223b[126]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[126]][_0x223b[308]](db.Template,{"\x61\x73":_0x223b[359],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[360]});db[_0x223b[130]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[361],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[130]][_0x223b[308]](db.ChatQueue,{"\x61\x73":_0x223b[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[363],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[130]][_0x223b[308]](db.ChatWebsite,{"\x61\x73":_0x223b[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[132]][_0x223b[308]](db.ChatWebsite,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[134]][_0x223b[274]](db.ChatMessage,{"\x61\x73":_0x223b[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[365]});db[_0x223b[134]][_0x223b[308]](db.ChatWebsite,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[134]][_0x223b[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[287],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[365]});db[_0x223b[136]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[9],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[136]][_0x223b[308]](db.ChatVisitor,{"\x61\x73":_0x223b[366],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[367]});db[_0x223b[136]][_0x223b[308]](db.ChatInteraction,{"\x61\x73":_0x223b[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[365]});db[_0x223b[138]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[48]});db[_0x223b[138]][_0x223b[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[368],"\x61\x73":_0x223b[314]});db[_0x223b[140]][_0x223b[308]](db.ChatWebsite,{"\x61\x73":_0x223b[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[140]][_0x223b[308]](db.ChatVisitor,{"\x61\x73":_0x223b[366],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[367]});db[_0x223b[142]][_0x223b[308]](db.ChatWebsite,{"\x61\x73":_0x223b[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[144]][_0x223b[272]](db.ChatEnquiry,{"\x61\x73":_0x223b[369]});db[_0x223b[144]][_0x223b[274]](db.ChatInteraction,{"\x61\x73":_0x223b[285]});db[_0x223b[144]][_0x223b[274]](db.ChatMessage,{"\x61\x73":_0x223b[330]});db[_0x223b[144]][_0x223b[308]](db.ChatWebsite,{"\x61\x73":_0x223b[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[352]});db[_0x223b[148]][_0x223b[274]](db.CmContact,{"\x61\x73":_0x223b[279],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[370]});db[_0x223b[150]][_0x223b[274]](db.CmHopperFinal,{"\x61\x73":_0x223b[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[322]});db[_0x223b[150]][_0x223b[274]](db.CmHopperHistory,{"\x61\x73":_0x223b[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[322]});db[_0x223b[150]][_0x223b[308]](db.CmCompany,{"\x61\x73":_0x223b[371],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[370]});db[_0x223b[150]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[150]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[372],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[280]});db[_0x223b[152]][_0x223b[308]](db.CmContact,{"\x61\x73":_0x223b[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[322],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[152]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[152]][_0x223b[308]](db.User,{"\x61\x73":_0x223b[361],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[271]});db[_0x223b[152]][_0x223b[308]](db.VoiceQueue,{"\x61\x73":_0x223b[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[152]][_0x223b[308]](db.Campaign,{"\x61\x73":_0x223b[268],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[373],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[154]][_0x223b[308]](db.CmContact,{"\x61\x73":_0x223b[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[322],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[154]][_0x223b[308]](db.CmList,{"\x61\x73":_0x223b[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[154]][_0x223b[308]](db.VoiceQueue,{"\x61\x73":_0x223b[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[303],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[154]][_0x223b[308]](db.Campaign,{"\x61\x73":_0x223b[268],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[373],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270]});db[_0x223b[162]][_0x223b[274]](db.VoiceDisposition,{"\x61\x73":_0x223b[325],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[162]][_0x223b[274]](db.CmCustomField,{"\x61\x73":_0x223b[374],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[162]][_0x223b[274]](db.CmContact,{"\x61\x73":_0x223b[279],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[162]][_0x223b[274]](db.CmHopperFinal,{"\x61\x73":_0x223b[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[162]][_0x223b[274]](db.CmHopperHistory,{"\x61\x73":_0x223b[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[327]});db[_0x223b[162]][_0x223b[281]](db.VoiceQueue,{"\x61\x73":_0x223b[375],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[312]});db[_0x223b[162]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[283]});db[_0x223b[166]][_0x223b[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x223b[376],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x223b[377]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[378],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[166]][_0x223b[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x223b[379],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x223b[380]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[381],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[166]][_0x223b[274]](db.Action,{"\x61\x73":_0x223b[382],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[383],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[172]][_0x223b[274]](db.Interval,{"\x61\x73":_0x223b[384],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true,"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x223b[172]][_0x223b[274]](db.VoiceExtension,{"\x61\x73":_0x223b[276],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[172]][_0x223b[274]](db.MailApplication,{"\x61\x73":_0x223b[385],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[172]][_0x223b[274]](db.ChatApplication,{"\x61\x73":_0x223b[386],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[172]][_0x223b[274]](db.FaxApplication,{"\x61\x73":_0x223b[387],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[172]][_0x223b[274]](db.SmsApplication,{"\x61\x73":_0x223b[388],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[180]][_0x223b[308]](db.MailServerOut,{});db[_0x223b[182]][_0x223b[281]](db.VoiceMusicOnHold,{"\x61\x73":_0x223b[389],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[301],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[337]});db[_0x223b[188]][_0x223b[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x223b[390],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x223b[391]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[392],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[188]][_0x223b[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x223b[393],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x223b[394]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[395],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[188]][_0x223b[274]](db.Action,{"\x61\x73":_0x223b[382],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[396],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[196]][_0x223b[274]](db.AnalyticFieldReport,{"\x61\x73":_0x223b[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[398],"\x68\x6F\x6F\x6B\x73":true});db[_0x223b[198]][_0x223b[274]](db.AnalyticFieldReport,{"\x61\x73":_0x223b[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[399]});db[_0x223b[200]][_0x223b[308]](db.MailMessage,{});db[_0x223b[202]][_0x223b[274]](db.AnalyticFieldReport,{"\x61\x73":_0x223b[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[400]});db[_0x223b[204]][_0x223b[308]](db.AnalyticMetric,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[400]});db[_0x223b[208]][_0x223b[274]](db.SalesforceConfiguration,{"\x61\x73":_0x223b[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[210]][_0x223b[274]](db.SalesforceField,{"\x61\x73":_0x223b[403],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[210]][_0x223b[274]](db.SalesforceField,{"\x61\x73":_0x223b[405],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[210]][_0x223b[274]](db.SalesforceField,{"\x61\x73":_0x223b[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[210]][_0x223b[308]](db.SalesforceAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[212]][_0x223b[274]](db.SalesforceField,{"\x61\x73":_0x223b[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[212]][_0x223b[274]](db.SalesforceField,{"\x61\x73":_0x223b[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[212]][_0x223b[274]](db.SalesforceField,{"\x61\x73":_0x223b[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[212]][_0x223b[308]](db.Variable,{"\x61\x73":_0x223b[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[411]});db[_0x223b[214]][_0x223b[274]](db.SugarcrmConfiguration,{"\x61\x73":_0x223b[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[216]][_0x223b[274]](db.SugarcrmField,{"\x61\x73":_0x223b[403],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[216]][_0x223b[274]](db.SugarcrmField,{"\x61\x73":_0x223b[405],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[216]][_0x223b[274]](db.SugarcrmField,{"\x61\x73":_0x223b[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[216]][_0x223b[308]](db.SugarcrmAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[218]][_0x223b[274]](db.SugarcrmField,{"\x61\x73":_0x223b[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[218]][_0x223b[274]](db.SugarcrmField,{"\x61\x73":_0x223b[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[218]][_0x223b[274]](db.SugarcrmField,{"\x61\x73":_0x223b[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[218]][_0x223b[308]](db.Variable,{"\x61\x73":_0x223b[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[411]});db[_0x223b[220]][_0x223b[274]](db.ZendeskConfiguration,{"\x61\x73":_0x223b[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[222]][_0x223b[274]](db.ZendeskField,{"\x61\x73":_0x223b[403],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[222]][_0x223b[274]](db.ZendeskField,{"\x61\x73":_0x223b[405],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[222]][_0x223b[274]](db.ZendeskField,{"\x61\x73":_0x223b[397],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[222]][_0x223b[308]](db.ZendeskAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[222]][_0x223b[281]](db.Tag,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[412]});db[_0x223b[224]][_0x223b[274]](db.ZendeskField,{"\x61\x73":_0x223b[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[224]][_0x223b[274]](db.ZendeskField,{"\x61\x73":_0x223b[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[224]][_0x223b[274]](db.ZendeskField,{"\x61\x73":_0x223b[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[224]][_0x223b[308]](db.Variable,{"\x61\x73":_0x223b[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[411]});db[_0x223b[226]][_0x223b[274]](db.FreshdeskConfiguration,{"\x61\x73":_0x223b[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[228]][_0x223b[274]](db.FreshdeskField,{"\x61\x73":_0x223b[403],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[228]][_0x223b[274]](db.FreshdeskField,{"\x61\x73":_0x223b[405],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[228]][_0x223b[274]](db.FreshdeskField,{"\x61\x73":_0x223b[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[228]][_0x223b[308]](db.FreshdeskAccount,{"\x61\x73":_0x223b[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[402]});db[_0x223b[228]][_0x223b[281]](db.Tag,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[413]});db[_0x223b[230]][_0x223b[274]](db.FreshdeskField,{"\x61\x73":_0x223b[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[404]});db[_0x223b[230]][_0x223b[274]](db.FreshdeskField,{"\x61\x73":_0x223b[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[406]});db[_0x223b[230]][_0x223b[274]](db.FreshdeskField,{"\x61\x73":_0x223b[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[407]});db[_0x223b[230]][_0x223b[308]](db.Variable,{"\x61\x73":_0x223b[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[411]});db[_0x223b[242]][_0x223b[274]](db.JscriptyInputReport,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[414]});db[_0x223b[244]][_0x223b[274]](db.JscriptyQuestionReport,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x223b[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[415]});db[_0x223b[254]][_0x223b[274]](db.JscriptySessionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[416]});db[_0x223b[254]][_0x223b[274]](db.JscriptyQuestionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[416]});db[_0x223b[264]][_0x223b[281]](db.User,{"\x61\x73":_0x223b[313],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[284]});db[_0x223b[264]][_0x223b[281]](db.VoiceQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[315],"\x61\x73":_0x223b[291]});db[_0x223b[264]][_0x223b[281]](db.MailQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[329],"\x61\x73":_0x223b[292]});db[_0x223b[264]][_0x223b[281]](db.ChatQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[368],"\x61\x73":_0x223b[293]});db[_0x223b[264]][_0x223b[281]](db.FaxQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[343],"\x61\x73":_0x223b[294]});db[_0x223b[264]][_0x223b[281]](db.SmsQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[346],"\x61\x73":_0x223b[295]});db[_0x223b[264]][_0x223b[281]](db.OpenchannelQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[350],"\x61\x73":_0x223b[296]});db[_0x223b[268]][_0x223b[274]](db.CmHopper,{"\x61\x73":_0x223b[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[373]});db[_0x223b[268]][_0x223b[274]](db.CmHopperFinal,{"\x61\x73":_0x223b[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[373]});db[_0x223b[268]][_0x223b[274]](db.CmHopperHistory,{"\x61\x73":_0x223b[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[373]});db[_0x223b[268]][_0x223b[274]](db.CmHopperBlack,{"\x61\x73":_0x223b[306],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[373]});db[_0x223b[268]][_0x223b[308]](db.Trunk,{"\x61\x73":_0x223b[40],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[307]});db[_0x223b[268]][_0x223b[308]](db.Trunk,{"\x61\x73":_0x223b[309],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[310]});db[_0x223b[268]][_0x223b[308]](db.Interval,{"\x61\x73":_0x223b[172],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[311]});db[_0x223b[268]][_0x223b[308]](db.SquareProject,{"\x61\x73":_0x223b[260],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x223b[417]});db[_0x223b[268]][_0x223b[281]](db.CmList,{"\x61\x73":_0x223b[282],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[418]});db[_0x223b[268]][_0x223b[281]](db.CmList,{"\x61\x73":_0x223b[316],"\x74\x68\x72\x6F\x75\x67\x68":_0x223b[419]});module[_0x223b[420]]= {db:db,dbH:dbH}
\ No newline at end of file
+var _0xefae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x61\x74\x61\x62\x61\x73\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x48\x69\x73\x74\x6F\x72\x79","\x55\x73\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x69\x6D\x70\x6F\x72\x74","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x6D\x6F\x64\x65\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x4C\x69\x73\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x4C\x69\x73\x74\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x6D\x6F\x64\x65\x6C","\x50\x61\x75\x73\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x2F\x70\x61\x75\x73\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x64\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x64\x72\x2F\x63\x64\x72\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x6D\x6F\x64\x65\x6C","\x53\x63\x68\x65\x64\x75\x6C\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x6D\x6F\x64\x65\x6C","\x53\x6F\x75\x6E\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x6D\x6F\x64\x65\x6C","\x54\x61\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67\x2F\x74\x61\x67\x2E\x6D\x6F\x64\x65\x6C","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x6D\x6F\x64\x65\x6C","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x4E\x65\x74\x77\x6F\x72\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x54\x65\x61\x6D","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x2F\x74\x65\x61\x6D\x2E\x6D\x6F\x64\x65\x6C","\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x6D\x6F\x64\x65\x6C","\x63\x61\x73\x63\x61\x64\x65","\x55\x73\x65\x72\x49\x64","\x68\x61\x73\x4F\x6E\x65","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x6D\x5F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6C\x69\x73\x74\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x72\x6F\x6F\x6D\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x73","\x46\x61\x78\x51\x75\x65\x75\x65\x73","\x53\x6D\x73\x51\x75\x65\x75\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73","\x53\x70\x69\x65\x64\x41\x67\x65\x6E\x74\x73","\x43\x68\x61\x6E\x53\x70\x79\x49\x64","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6F\x75\x6E\x64\x73","\x6D\x6F\x68\x5F\x68\x61\x73\x5F\x73\x6F\x75\x6E\x64\x73","\x4D\x65\x6D\x62\x65\x72\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x48\x6F\x70\x70\x65\x72\x73","\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x54\x72\x75\x6E\x6B\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70\x49\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x41\x67\x65\x6E\x74\x73","\x54\x65\x61\x6D\x73","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x49\x6D\x61\x70","\x53\x6D\x74\x70","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x4C\x69\x73\x74","\x4C\x69\x73\x74\x49\x64","\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x4D\x65\x73\x73\x61\x67\x65\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x49\x64","\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x72\x65\x73\x74\x72\x69\x63\x74","\x49\x74\x65\x6D\x73","\x45\x78\x6E\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x61\x78\x52\x6F\x6F\x6D\x49\x64","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x6D\x73\x52\x6F\x6F\x6D\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x6F\x6F\x6D\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x45\x6E\x71\x75\x69\x72\x69\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x56\x69\x73\x69\x74\x6F\x72\x73","\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x4F\x66\x66\x6C\x69\x6E\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x49\x64","\x4F\x6E\x6C\x69\x6E\x65","\x4F\x6E\x6C\x69\x6E\x65\x49\x64","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x41\x67\x65\x6E\x74","\x51\x75\x65\x75\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x49\x64","\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x45\x6E\x71\x75\x69\x72\x79","\x43\x6F\x6D\x70\x61\x6E\x79\x49\x64","\x43\x6F\x6D\x70\x61\x6E\x79","\x55\x73\x65\x72\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x51\x75\x65\x75\x65\x73","\x41\x6C\x6C","\x4F\x6E\x65\x41\x6C\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6C\x6C\x49\x64","\x41\x6E\x79","\x4F\x6E\x65\x41\x6E\x79","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6E\x79\x49\x64","\x41\x63\x74\x69\x6F\x6E\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x49\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4D\x6F\x68\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x46\x69\x65\x6C\x64\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x4D\x65\x74\x72\x69\x63\x49\x64","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64\x49\x64","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x56\x61\x72\x69\x61\x62\x6C\x65\x49\x64","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x71\x75\x65\x73\x74\x69\x6F\x6E\x49\x64","\x73\x65\x73\x73\x69\x6F\x6E\x49\x64","\x70\x72\x6F\x6A\x65\x63\x74\x49\x64","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x49\x64","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xefae[0];var path=require(_0xefae[1]);var config=require(_0xefae[2]);var Sequelize=require(_0xefae[3]);var db={Sequelize:Sequelize,sequelize: new Sequelize(config[_0xefae[3]][_0xefae[4]],config[_0xefae[3]][_0xefae[5]],config[_0xefae[3]][_0xefae[6]],config[_0xefae[3]][_0xefae[7]])};var dbH={Sequelize:Sequelize,sequelize: new Sequelize(config[_0xefae[8]][_0xefae[4]],config[_0xefae[8]][_0xefae[5]],config[_0xefae[8]][_0xefae[6]],config[_0xefae[8]][_0xefae[7]])};db[_0xefae[9]]= db[_0xefae[3]][_0xefae[11]](_0xefae[10]);db[_0xefae[12]]= db[_0xefae[3]][_0xefae[11]](_0xefae[13]);db[_0xefae[14]]= db[_0xefae[3]][_0xefae[11]](_0xefae[15]);db[_0xefae[16]]= db[_0xefae[3]][_0xefae[11]](_0xefae[17]);db[_0xefae[18]]= db[_0xefae[3]][_0xefae[11]](_0xefae[19]);db[_0xefae[20]]= db[_0xefae[3]][_0xefae[11]](_0xefae[21]);db[_0xefae[22]]= db[_0xefae[3]][_0xefae[11]](_0xefae[23]);db[_0xefae[24]]= db[_0xefae[3]][_0xefae[11]](_0xefae[25]);db[_0xefae[26]]= db[_0xefae[3]][_0xefae[11]](_0xefae[27]);db[_0xefae[28]]= db[_0xefae[3]][_0xefae[11]](_0xefae[29]);db[_0xefae[30]]= db[_0xefae[3]][_0xefae[11]](_0xefae[31]);db[_0xefae[32]]= db[_0xefae[3]][_0xefae[11]](_0xefae[33]);db[_0xefae[34]]= db[_0xefae[3]][_0xefae[11]](_0xefae[35]);db[_0xefae[36]]= db[_0xefae[3]][_0xefae[11]](_0xefae[37]);db[_0xefae[38]]= db[_0xefae[3]][_0xefae[11]](_0xefae[39]);db[_0xefae[40]]= db[_0xefae[3]][_0xefae[11]](_0xefae[41]);db[_0xefae[42]]= db[_0xefae[3]][_0xefae[11]](_0xefae[43]);db[_0xefae[44]]= db[_0xefae[3]][_0xefae[11]](_0xefae[45]);db[_0xefae[46]]= db[_0xefae[3]][_0xefae[11]](_0xefae[47]);db[_0xefae[48]]= db[_0xefae[3]][_0xefae[11]](_0xefae[49]);db[_0xefae[50]]= db[_0xefae[3]][_0xefae[11]](_0xefae[51]);db[_0xefae[52]]= db[_0xefae[3]][_0xefae[11]](_0xefae[53]);db[_0xefae[54]]= db[_0xefae[3]][_0xefae[11]](_0xefae[55]);db[_0xefae[56]]= db[_0xefae[3]][_0xefae[11]](_0xefae[57]);db[_0xefae[58]]= db[_0xefae[3]][_0xefae[11]](_0xefae[59]);db[_0xefae[60]]= db[_0xefae[3]][_0xefae[11]](_0xefae[61]);db[_0xefae[62]]= db[_0xefae[3]][_0xefae[11]](_0xefae[63]);db[_0xefae[64]]= db[_0xefae[3]][_0xefae[11]](_0xefae[65]);db[_0xefae[66]]= db[_0xefae[3]][_0xefae[11]](_0xefae[67]);db[_0xefae[68]]= db[_0xefae[3]][_0xefae[11]](_0xefae[69]);db[_0xefae[70]]= db[_0xefae[3]][_0xefae[11]](_0xefae[71]);db[_0xefae[72]]= db[_0xefae[3]][_0xefae[11]](_0xefae[73]);db[_0xefae[74]]= db[_0xefae[3]][_0xefae[11]](_0xefae[75]);db[_0xefae[76]]= db[_0xefae[3]][_0xefae[11]](_0xefae[77]);db[_0xefae[78]]= db[_0xefae[3]][_0xefae[11]](_0xefae[79]);db[_0xefae[80]]= db[_0xefae[3]][_0xefae[11]](_0xefae[81]);db[_0xefae[82]]= db[_0xefae[3]][_0xefae[11]](_0xefae[83]);db[_0xefae[84]]= db[_0xefae[3]][_0xefae[11]](_0xefae[85]);db[_0xefae[86]]= db[_0xefae[3]][_0xefae[11]](_0xefae[87]);db[_0xefae[88]]= db[_0xefae[3]][_0xefae[11]](_0xefae[89]);db[_0xefae[90]]= db[_0xefae[3]][_0xefae[11]](_0xefae[91]);db[_0xefae[92]]= db[_0xefae[3]][_0xefae[11]](_0xefae[93]);db[_0xefae[94]]= db[_0xefae[3]][_0xefae[11]](_0xefae[95]);db[_0xefae[96]]= db[_0xefae[3]][_0xefae[11]](_0xefae[97]);db[_0xefae[98]]= db[_0xefae[3]][_0xefae[11]](_0xefae[99]);db[_0xefae[100]]= db[_0xefae[3]][_0xefae[11]](_0xefae[101]);db[_0xefae[102]]= db[_0xefae[3]][_0xefae[11]](_0xefae[103]);db[_0xefae[104]]= db[_0xefae[3]][_0xefae[11]](_0xefae[105]);db[_0xefae[106]]= db[_0xefae[3]][_0xefae[11]](_0xefae[107]);db[_0xefae[108]]= db[_0xefae[3]][_0xefae[11]](_0xefae[109]);db[_0xefae[110]]= db[_0xefae[3]][_0xefae[11]](_0xefae[111]);db[_0xefae[112]]= db[_0xefae[3]][_0xefae[11]](_0xefae[113]);db[_0xefae[114]]= db[_0xefae[3]][_0xefae[11]](_0xefae[115]);db[_0xefae[116]]= db[_0xefae[3]][_0xefae[11]](_0xefae[117]);db[_0xefae[118]]= db[_0xefae[3]][_0xefae[11]](_0xefae[119]);db[_0xefae[120]]= db[_0xefae[3]][_0xefae[11]](_0xefae[121]);db[_0xefae[122]]= db[_0xefae[3]][_0xefae[11]](_0xefae[123]);db[_0xefae[124]]= db[_0xefae[3]][_0xefae[11]](_0xefae[125]);db[_0xefae[126]]= db[_0xefae[3]][_0xefae[11]](_0xefae[127]);db[_0xefae[128]]= db[_0xefae[3]][_0xefae[11]](_0xefae[129]);db[_0xefae[130]]= db[_0xefae[3]][_0xefae[11]](_0xefae[131]);db[_0xefae[132]]= db[_0xefae[3]][_0xefae[11]](_0xefae[133]);db[_0xefae[134]]= db[_0xefae[3]][_0xefae[11]](_0xefae[135]);db[_0xefae[136]]= db[_0xefae[3]][_0xefae[11]](_0xefae[137]);db[_0xefae[138]]= db[_0xefae[3]][_0xefae[11]](_0xefae[139]);db[_0xefae[140]]= db[_0xefae[3]][_0xefae[11]](_0xefae[141]);db[_0xefae[142]]= db[_0xefae[3]][_0xefae[11]](_0xefae[143]);db[_0xefae[144]]= db[_0xefae[3]][_0xefae[11]](_0xefae[145]);db[_0xefae[146]]= db[_0xefae[3]][_0xefae[11]](_0xefae[147]);db[_0xefae[148]]= db[_0xefae[3]][_0xefae[11]](_0xefae[149]);db[_0xefae[150]]= db[_0xefae[3]][_0xefae[11]](_0xefae[151]);db[_0xefae[152]]= db[_0xefae[3]][_0xefae[11]](_0xefae[153]);db[_0xefae[154]]= db[_0xefae[3]][_0xefae[11]](_0xefae[155]);db[_0xefae[156]]= db[_0xefae[3]][_0xefae[11]](_0xefae[157]);db[_0xefae[158]]= db[_0xefae[3]][_0xefae[11]](_0xefae[159]);db[_0xefae[160]]= db[_0xefae[3]][_0xefae[11]](_0xefae[161]);db[_0xefae[162]]= db[_0xefae[3]][_0xefae[11]](_0xefae[163]);db[_0xefae[164]]= db[_0xefae[3]][_0xefae[11]](_0xefae[165]);db[_0xefae[166]]= db[_0xefae[3]][_0xefae[11]](_0xefae[167]);db[_0xefae[168]]= db[_0xefae[3]][_0xefae[11]](_0xefae[169]);db[_0xefae[170]]= db[_0xefae[3]][_0xefae[11]](_0xefae[171]);db[_0xefae[172]]= db[_0xefae[3]][_0xefae[11]](_0xefae[173]);db[_0xefae[174]]= db[_0xefae[3]][_0xefae[11]](_0xefae[175]);db[_0xefae[176]]= db[_0xefae[3]][_0xefae[11]](_0xefae[177]);db[_0xefae[178]]= db[_0xefae[3]][_0xefae[11]](_0xefae[179]);db[_0xefae[180]]= db[_0xefae[3]][_0xefae[11]](_0xefae[181]);db[_0xefae[182]]= db[_0xefae[3]][_0xefae[11]](_0xefae[183]);db[_0xefae[184]]= db[_0xefae[3]][_0xefae[11]](_0xefae[185]);db[_0xefae[186]]= db[_0xefae[3]][_0xefae[11]](_0xefae[187]);db[_0xefae[188]]= db[_0xefae[3]][_0xefae[11]](_0xefae[189]);db[_0xefae[190]]= db[_0xefae[3]][_0xefae[11]](_0xefae[191]);db[_0xefae[192]]= db[_0xefae[3]][_0xefae[11]](_0xefae[193]);db[_0xefae[194]]= db[_0xefae[3]][_0xefae[11]](_0xefae[195]);db[_0xefae[196]]= db[_0xefae[3]][_0xefae[11]](_0xefae[197]);db[_0xefae[198]]= db[_0xefae[3]][_0xefae[11]](_0xefae[199]);db[_0xefae[200]]= db[_0xefae[3]][_0xefae[11]](_0xefae[201]);db[_0xefae[202]]= db[_0xefae[3]][_0xefae[11]](_0xefae[203]);db[_0xefae[204]]= db[_0xefae[3]][_0xefae[11]](_0xefae[205]);db[_0xefae[206]]= db[_0xefae[3]][_0xefae[11]](_0xefae[207]);db[_0xefae[208]]= db[_0xefae[3]][_0xefae[11]](_0xefae[209]);db[_0xefae[210]]= db[_0xefae[3]][_0xefae[11]](_0xefae[211]);db[_0xefae[212]]= db[_0xefae[3]][_0xefae[11]](_0xefae[213]);db[_0xefae[214]]= db[_0xefae[3]][_0xefae[11]](_0xefae[215]);db[_0xefae[216]]= db[_0xefae[3]][_0xefae[11]](_0xefae[217]);db[_0xefae[218]]= db[_0xefae[3]][_0xefae[11]](_0xefae[219]);db[_0xefae[220]]= db[_0xefae[3]][_0xefae[11]](_0xefae[221]);db[_0xefae[222]]= db[_0xefae[3]][_0xefae[11]](_0xefae[223]);db[_0xefae[224]]= db[_0xefae[3]][_0xefae[11]](_0xefae[225]);db[_0xefae[226]]= db[_0xefae[3]][_0xefae[11]](_0xefae[227]);db[_0xefae[228]]= db[_0xefae[3]][_0xefae[11]](_0xefae[229]);db[_0xefae[230]]= db[_0xefae[3]][_0xefae[11]](_0xefae[231]);db[_0xefae[192]]= db[_0xefae[3]][_0xefae[11]](_0xefae[193]);db[_0xefae[232]]= db[_0xefae[3]][_0xefae[11]](_0xefae[233]);db[_0xefae[234]]= db[_0xefae[3]][_0xefae[11]](_0xefae[235]);db[_0xefae[236]]= db[_0xefae[3]][_0xefae[11]](_0xefae[237]);db[_0xefae[238]]= db[_0xefae[3]][_0xefae[11]](_0xefae[239]);db[_0xefae[240]]= db[_0xefae[3]][_0xefae[11]](_0xefae[241]);db[_0xefae[242]]= db[_0xefae[3]][_0xefae[11]](_0xefae[243]);db[_0xefae[244]]= db[_0xefae[3]][_0xefae[11]](_0xefae[245]);db[_0xefae[246]]= db[_0xefae[3]][_0xefae[11]](_0xefae[247]);db[_0xefae[248]]= db[_0xefae[3]][_0xefae[11]](_0xefae[249]);db[_0xefae[250]]= db[_0xefae[3]][_0xefae[11]](_0xefae[251]);db[_0xefae[252]]= db[_0xefae[3]][_0xefae[11]](_0xefae[253]);db[_0xefae[254]]= db[_0xefae[3]][_0xefae[11]](_0xefae[255]);db[_0xefae[256]]= db[_0xefae[3]][_0xefae[11]](_0xefae[257]);db[_0xefae[258]]= db[_0xefae[3]][_0xefae[11]](_0xefae[259]);db[_0xefae[260]]= db[_0xefae[3]][_0xefae[11]](_0xefae[261]);db[_0xefae[262]]= db[_0xefae[3]][_0xefae[11]](_0xefae[263]);db[_0xefae[264]]= db[_0xefae[3]][_0xefae[11]](_0xefae[265]);db[_0xefae[266]]= db[_0xefae[3]][_0xefae[11]](_0xefae[267]);db[_0xefae[268]]= db[_0xefae[3]][_0xefae[11]](_0xefae[269]);db[_0xefae[9]][_0xefae[272]](db.VoiceMail,{"\x61\x73":_0xefae[26],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[9]][_0xefae[274]](db.VoiceRecording,{"\x61\x73":_0xefae[273],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[9]][_0xefae[274]](db.UserVoiceQueueRt,{"\x61\x73":_0xefae[275],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[9]][_0xefae[274]](db.VoiceExtension,{"\x61\x73":_0xefae[276],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[9]][_0xefae[274]](db.CmHopperFinal,{"\x61\x73":_0xefae[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[9]][_0xefae[274]](db.CmHopperHistory,{"\x61\x73":_0xefae[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[9]][_0xefae[281]](db.CmContact,{"\x61\x73":_0xefae[279],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[280]});db[_0xefae[9]][_0xefae[281]](db.CmList,{"\x61\x73":_0xefae[282],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[283]});db[_0xefae[9]][_0xefae[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[284]});db[_0xefae[9]][_0xefae[281]](db.MailInteraction,{"\x61\x73":_0xefae[285],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[286]});db[_0xefae[9]][_0xefae[281]](db.ChatInteraction,{"\x61\x73":_0xefae[285],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[287]});db[_0xefae[9]][_0xefae[281]](db.FaxInteraction,{"\x61\x73":_0xefae[285],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[288]});db[_0xefae[9]][_0xefae[281]](db.SmsInteraction,{"\x61\x73":_0xefae[285],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[289]});db[_0xefae[9]][_0xefae[281]](db.OpenchannelInteraction,{"\x61\x73":_0xefae[285],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[290]});db[_0xefae[9]][_0xefae[281]](db.VoiceQueue,{"\x61\x73":_0xefae[291],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[46],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[9]][_0xefae[281]](db.MailQueue,{"\x61\x73":_0xefae[292],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[50],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[9]][_0xefae[281]](db.ChatQueue,{"\x61\x73":_0xefae[293],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[48],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[9]][_0xefae[281]](db.FaxQueue,{"\x61\x73":_0xefae[294],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[52],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[9]][_0xefae[281]](db.SmsQueue,{"\x61\x73":_0xefae[295],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[54],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[9]][_0xefae[281]](db.OpenchannelQueue,{"\x61\x73":_0xefae[296],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[56],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[9]][_0xefae[281]](db.CmList,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[283]});db[_0xefae[12]][_0xefae[274]](db.VoiceExtension,{"\x61\x73":_0xefae[297],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[298]});db[_0xefae[14]][_0xefae[274]](db.VoiceExtension,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[18]][_0xefae[274]](db.VoiceExtension,{"\x61\x73":_0xefae[299],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[20]][_0xefae[281]](db.Sound,{"\x61\x73":_0xefae[300],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[301]});db[_0xefae[22]][_0xefae[274]](db.UserVoiceQueueRt,{"\x61\x73":_0xefae[302],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303]});db[_0xefae[22]][_0xefae[274]](db.CmHopper,{"\x61\x73":_0xefae[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303]});db[_0xefae[22]][_0xefae[274]](db.CmHopperFinal,{"\x61\x73":_0xefae[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303]});db[_0xefae[22]][_0xefae[274]](db.CmHopperHistory,{"\x61\x73":_0xefae[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303]});db[_0xefae[22]][_0xefae[274]](db.CmHopperBlack,{"\x61\x73":_0xefae[306],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303]});db[_0xefae[22]][_0xefae[308]](db.Trunk,{"\x61\x73":_0xefae[40],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[307]});db[_0xefae[22]][_0xefae[308]](db.Trunk,{"\x61\x73":_0xefae[309],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[310]});db[_0xefae[22]][_0xefae[308]](db.Interval,{"\x61\x73":_0xefae[172],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[22]][_0xefae[281]](db.CmList,{"\x61\x73":_0xefae[282],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[312]});db[_0xefae[22]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[46]});db[_0xefae[22]][_0xefae[281]](db.Team,{"\x61\x73":_0xefae[314],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[315]});db[_0xefae[22]][_0xefae[281]](db.CmList,{"\x61\x73":_0xefae[316],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[317]});db[_0xefae[30]][_0xefae[274]](db.VoiceQueueReport,{"\x61\x73":_0xefae[318],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0xefae[30]][_0xefae[274]](db.VoiceAgentReport,{"\x61\x73":_0xefae[320],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0xefae[30]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[9],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[30]][_0xefae[308]](db.CmContact,{"\x61\x73":_0xefae[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[322]});db[_0xefae[62]][_0xefae[272]](db.MailServerIn,{"\x61\x73":_0xefae[323],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[62]][_0xefae[272]](db.MailServerOut,{"\x61\x73":_0xefae[324],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[62]][_0xefae[274]](db.MailInteraction,{"\x61\x73":_0xefae[285]});db[_0xefae[62]][_0xefae[274]](db.MailApplication,{"\x61\x73":_0xefae[299]});db[_0xefae[62]][_0xefae[274]](db.MailDisposition,{"\x61\x73":_0xefae[325]});db[_0xefae[62]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[62]][_0xefae[308]](db.Template,{"\x61\x73":_0xefae[186],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[328]});db[_0xefae[64]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[50]});db[_0xefae[64]][_0xefae[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[329],"\x61\x73":_0xefae[314]});db[_0xefae[66]][_0xefae[274]](db.MailMessage,{"\x61\x73":_0xefae[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[331]});db[_0xefae[66]][_0xefae[308]](db.MailAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[333]});db[_0xefae[66]][_0xefae[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[286],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[331]});db[_0xefae[68]][_0xefae[274]](db.MailAttachment,{"\x61\x73":_0xefae[334],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[335]});db[_0xefae[68]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[9]});db[_0xefae[68]][_0xefae[308]](db.MailInteraction,{"\x61\x73":_0xefae[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[331]});db[_0xefae[70]][_0xefae[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[70]][_0xefae[308]](db.MailQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[70]][_0xefae[308]](db.MailAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[72]][_0xefae[308]](db.MailAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[333]});db[_0xefae[76]][_0xefae[274]](db.VoiceQueueReport,{"\x61\x73":_0xefae[318],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0xefae[76]][_0xefae[274]](db.VoiceAgentReport,{"\x61\x73":_0xefae[320],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0xefae[82]][_0xefae[274]](db.DashboardItem,{"\x61\x73":_0xefae[338],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[86]][_0xefae[274]](db.FaxInteraction,{"\x61\x73":_0xefae[285]});db[_0xefae[86]][_0xefae[274]](db.FaxApplication,{"\x61\x73":_0xefae[299]});db[_0xefae[86]][_0xefae[274]](db.VoiceExtension,{"\x61\x73":_0xefae[339],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[86]][_0xefae[274]](db.FaxDisposition,{"\x61\x73":_0xefae[325]});db[_0xefae[86]][_0xefae[308]](db.Trunk,{"\x61\x73":_0xefae[40]});db[_0xefae[86]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[88]][_0xefae[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[88]][_0xefae[308]](db.FaxQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[88]][_0xefae[308]](db.FaxAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[90]][_0xefae[308]](db.FaxAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[340]});db[_0xefae[94]][_0xefae[274]](db.FaxMessage,{"\x61\x73":_0xefae[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[341]});db[_0xefae[94]][_0xefae[308]](db.FaxAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[340]});db[_0xefae[94]][_0xefae[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[288],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[341]});db[_0xefae[96]][_0xefae[274]](db.FaxAttachment,{"\x61\x73":_0xefae[334],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[342]});db[_0xefae[96]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[9]});db[_0xefae[96]][_0xefae[308]](db.FaxInteraction,{"\x61\x73":_0xefae[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[341]});db[_0xefae[98]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[52]});db[_0xefae[98]][_0xefae[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[343],"\x61\x73":_0xefae[314]});db[_0xefae[100]][_0xefae[274]](db.VoiceQueueReport,{"\x61\x73":_0xefae[318],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0xefae[100]][_0xefae[274]](db.VoiceAgentReport,{"\x61\x73":_0xefae[320],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[319],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0xefae[102]][_0xefae[274]](db.SmsMessage,{"\x61\x73":_0xefae[330],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[344]});db[_0xefae[102]][_0xefae[274]](db.SmsInteraction,{"\x61\x73":_0xefae[285]});db[_0xefae[102]][_0xefae[274]](db.SmsApplication,{"\x61\x73":_0xefae[299]});db[_0xefae[102]][_0xefae[274]](db.SmsDisposition,{"\x61\x73":_0xefae[325]});db[_0xefae[102]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[104]][_0xefae[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[104]][_0xefae[308]](db.SmsQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[104]][_0xefae[308]](db.SmsAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[106]][_0xefae[308]](db.SmsAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[344]});db[_0xefae[108]][_0xefae[274]](db.SmsMessage,{"\x61\x73":_0xefae[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[345]});db[_0xefae[108]][_0xefae[308]](db.SmsAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[344]});db[_0xefae[108]][_0xefae[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[289],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[345]});db[_0xefae[110]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[9]});db[_0xefae[110]][_0xefae[308]](db.SmsInteraction,{"\x61\x73":_0xefae[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[345]});db[_0xefae[112]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[54]});db[_0xefae[112]][_0xefae[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[346],"\x61\x73":_0xefae[314]});db[_0xefae[114]][_0xefae[274]](db.OpenchannelInteraction,{"\x61\x73":_0xefae[285],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[114]][_0xefae[274]](db.OpenchannelMessage,{"\x61\x73":_0xefae[330],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[114]][_0xefae[274]](db.OpenchannelApplication,{"\x61\x73":_0xefae[299],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[114]][_0xefae[274]](db.OpenchannelDisposition,{"\x61\x73":_0xefae[325],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[114]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[116]][_0xefae[308]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[116]][_0xefae[308]](db.OpenchannelQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[348]});db[_0xefae[116]][_0xefae[308]](db.OpenchannelAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[116]][_0xefae[308]](db.Interval,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[118]][_0xefae[308]](db.OpenchannelAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[120]][_0xefae[274]](db.OpenchannelMessage,{"\x61\x73":_0xefae[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[349]});db[_0xefae[120]][_0xefae[308]](db.OpenchannelAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[347]});db[_0xefae[120]][_0xefae[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[290],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[349]});db[_0xefae[122]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[9]});db[_0xefae[122]][_0xefae[308]](db.OpenchannelInteraction,{"\x61\x73":_0xefae[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[349]});db[_0xefae[124]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[56],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[348]});db[_0xefae[124]][_0xefae[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[350],"\x61\x73":_0xefae[314]});db[_0xefae[126]][_0xefae[274]](db.ChatEnquiry,{"\x61\x73":_0xefae[351],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[126]][_0xefae[274]](db.ChatVisitor,{"\x61\x73":_0xefae[353],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[126]][_0xefae[274]](db.ChatProactiveAction,{"\x61\x73":_0xefae[354]});db[_0xefae[126]][_0xefae[274]](db.ChatWebsiteField,{"\x61\x73":_0xefae[355],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[356]});db[_0xefae[126]][_0xefae[274]](db.ChatWebsiteField,{"\x61\x73":_0xefae[357],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[358]});db[_0xefae[126]][_0xefae[274]](db.ChatInteraction,{"\x61\x73":_0xefae[285]});db[_0xefae[126]][_0xefae[274]](db.ChatApplication,{"\x61\x73":_0xefae[299]});db[_0xefae[126]][_0xefae[274]](db.ChatDisposition,{"\x61\x73":_0xefae[325]});db[_0xefae[126]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[126]][_0xefae[308]](db.Template,{"\x61\x73":_0xefae[359],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[360]});db[_0xefae[130]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[361],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[130]][_0xefae[308]](db.ChatQueue,{"\x61\x73":_0xefae[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[363],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[130]][_0xefae[308]](db.ChatWebsite,{"\x61\x73":_0xefae[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[132]][_0xefae[308]](db.ChatWebsite,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[134]][_0xefae[274]](db.ChatMessage,{"\x61\x73":_0xefae[330],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[365]});db[_0xefae[134]][_0xefae[308]](db.ChatWebsite,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[134]][_0xefae[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[287],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[365]});db[_0xefae[136]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[9],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[136]][_0xefae[308]](db.ChatVisitor,{"\x61\x73":_0xefae[366],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[367]});db[_0xefae[136]][_0xefae[308]](db.ChatInteraction,{"\x61\x73":_0xefae[336],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[365]});db[_0xefae[138]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[48]});db[_0xefae[138]][_0xefae[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[368],"\x61\x73":_0xefae[314]});db[_0xefae[140]][_0xefae[308]](db.ChatWebsite,{"\x61\x73":_0xefae[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[140]][_0xefae[308]](db.ChatVisitor,{"\x61\x73":_0xefae[366],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[367]});db[_0xefae[142]][_0xefae[308]](db.ChatWebsite,{"\x61\x73":_0xefae[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[144]][_0xefae[272]](db.ChatEnquiry,{"\x61\x73":_0xefae[369]});db[_0xefae[144]][_0xefae[274]](db.ChatInteraction,{"\x61\x73":_0xefae[285]});db[_0xefae[144]][_0xefae[274]](db.ChatMessage,{"\x61\x73":_0xefae[330]});db[_0xefae[144]][_0xefae[308]](db.ChatWebsite,{"\x61\x73":_0xefae[364],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[352]});db[_0xefae[148]][_0xefae[274]](db.CmContact,{"\x61\x73":_0xefae[279],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[370]});db[_0xefae[150]][_0xefae[274]](db.CmHopperFinal,{"\x61\x73":_0xefae[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[322]});db[_0xefae[150]][_0xefae[274]](db.CmHopperHistory,{"\x61\x73":_0xefae[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[322]});db[_0xefae[150]][_0xefae[308]](db.CmCompany,{"\x61\x73":_0xefae[371],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[370]});db[_0xefae[150]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[150]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[372],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[280]});db[_0xefae[152]][_0xefae[308]](db.CmContact,{"\x61\x73":_0xefae[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[322],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[152]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[152]][_0xefae[308]](db.User,{"\x61\x73":_0xefae[361],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[271]});db[_0xefae[152]][_0xefae[308]](db.VoiceQueue,{"\x61\x73":_0xefae[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[152]][_0xefae[308]](db.Campaign,{"\x61\x73":_0xefae[268],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[373],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[154]][_0xefae[308]](db.CmContact,{"\x61\x73":_0xefae[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[322],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[154]][_0xefae[308]](db.CmList,{"\x61\x73":_0xefae[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[154]][_0xefae[308]](db.VoiceQueue,{"\x61\x73":_0xefae[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[303],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[154]][_0xefae[308]](db.Campaign,{"\x61\x73":_0xefae[268],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[373],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270]});db[_0xefae[162]][_0xefae[274]](db.VoiceDisposition,{"\x61\x73":_0xefae[325],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[162]][_0xefae[274]](db.CmCustomField,{"\x61\x73":_0xefae[374],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[162]][_0xefae[274]](db.CmContact,{"\x61\x73":_0xefae[279],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[162]][_0xefae[274]](db.CmHopperFinal,{"\x61\x73":_0xefae[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[162]][_0xefae[274]](db.CmHopperHistory,{"\x61\x73":_0xefae[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[327]});db[_0xefae[162]][_0xefae[281]](db.VoiceQueue,{"\x61\x73":_0xefae[375],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[312]});db[_0xefae[162]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[283]});db[_0xefae[166]][_0xefae[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0xefae[376],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0xefae[377]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[378],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[166]][_0xefae[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0xefae[379],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0xefae[380]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[381],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[166]][_0xefae[274]](db.Action,{"\x61\x73":_0xefae[382],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[383],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[172]][_0xefae[274]](db.Interval,{"\x61\x73":_0xefae[384],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true,"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0xefae[172]][_0xefae[274]](db.VoiceExtension,{"\x61\x73":_0xefae[276],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[172]][_0xefae[274]](db.MailApplication,{"\x61\x73":_0xefae[385],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[172]][_0xefae[274]](db.ChatApplication,{"\x61\x73":_0xefae[386],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[172]][_0xefae[274]](db.FaxApplication,{"\x61\x73":_0xefae[387],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[172]][_0xefae[274]](db.SmsApplication,{"\x61\x73":_0xefae[388],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[180]][_0xefae[308]](db.MailServerOut,{});db[_0xefae[182]][_0xefae[281]](db.VoiceMusicOnHold,{"\x61\x73":_0xefae[389],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[301],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[337]});db[_0xefae[188]][_0xefae[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0xefae[390],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0xefae[391]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[392],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[188]][_0xefae[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0xefae[393],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0xefae[394]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[395],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[188]][_0xefae[274]](db.Action,{"\x61\x73":_0xefae[382],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[396],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[196]][_0xefae[274]](db.AnalyticFieldReport,{"\x61\x73":_0xefae[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[398],"\x68\x6F\x6F\x6B\x73":true});db[_0xefae[198]][_0xefae[274]](db.AnalyticFieldReport,{"\x61\x73":_0xefae[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[399]});db[_0xefae[200]][_0xefae[308]](db.MailMessage,{});db[_0xefae[202]][_0xefae[274]](db.AnalyticFieldReport,{"\x61\x73":_0xefae[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[400]});db[_0xefae[204]][_0xefae[308]](db.AnalyticMetric,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[400]});db[_0xefae[208]][_0xefae[274]](db.SalesforceConfiguration,{"\x61\x73":_0xefae[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[210]][_0xefae[274]](db.SalesforceField,{"\x61\x73":_0xefae[403],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[210]][_0xefae[274]](db.SalesforceField,{"\x61\x73":_0xefae[405],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[210]][_0xefae[274]](db.SalesforceField,{"\x61\x73":_0xefae[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[210]][_0xefae[308]](db.SalesforceAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[212]][_0xefae[274]](db.SalesforceField,{"\x61\x73":_0xefae[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[212]][_0xefae[274]](db.SalesforceField,{"\x61\x73":_0xefae[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[212]][_0xefae[274]](db.SalesforceField,{"\x61\x73":_0xefae[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[212]][_0xefae[308]](db.Variable,{"\x61\x73":_0xefae[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[411]});db[_0xefae[214]][_0xefae[274]](db.SugarcrmConfiguration,{"\x61\x73":_0xefae[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[216]][_0xefae[274]](db.SugarcrmField,{"\x61\x73":_0xefae[403],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[216]][_0xefae[274]](db.SugarcrmField,{"\x61\x73":_0xefae[405],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[216]][_0xefae[274]](db.SugarcrmField,{"\x61\x73":_0xefae[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[216]][_0xefae[308]](db.SugarcrmAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[218]][_0xefae[274]](db.SugarcrmField,{"\x61\x73":_0xefae[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[218]][_0xefae[274]](db.SugarcrmField,{"\x61\x73":_0xefae[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[218]][_0xefae[274]](db.SugarcrmField,{"\x61\x73":_0xefae[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[218]][_0xefae[308]](db.Variable,{"\x61\x73":_0xefae[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[411]});db[_0xefae[220]][_0xefae[274]](db.ZendeskConfiguration,{"\x61\x73":_0xefae[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[222]][_0xefae[274]](db.ZendeskField,{"\x61\x73":_0xefae[403],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[222]][_0xefae[274]](db.ZendeskField,{"\x61\x73":_0xefae[405],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[222]][_0xefae[274]](db.ZendeskField,{"\x61\x73":_0xefae[397],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[222]][_0xefae[308]](db.ZendeskAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[222]][_0xefae[281]](db.Tag,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[412]});db[_0xefae[224]][_0xefae[274]](db.ZendeskField,{"\x61\x73":_0xefae[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[224]][_0xefae[274]](db.ZendeskField,{"\x61\x73":_0xefae[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[224]][_0xefae[274]](db.ZendeskField,{"\x61\x73":_0xefae[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[224]][_0xefae[308]](db.Variable,{"\x61\x73":_0xefae[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[411]});db[_0xefae[226]][_0xefae[274]](db.FreshdeskConfiguration,{"\x61\x73":_0xefae[401],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[228]][_0xefae[274]](db.FreshdeskField,{"\x61\x73":_0xefae[403],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[228]][_0xefae[274]](db.FreshdeskField,{"\x61\x73":_0xefae[405],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[228]][_0xefae[274]](db.FreshdeskField,{"\x61\x73":_0xefae[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[228]][_0xefae[308]](db.FreshdeskAccount,{"\x61\x73":_0xefae[332],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[402]});db[_0xefae[228]][_0xefae[281]](db.Tag,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[413]});db[_0xefae[230]][_0xefae[274]](db.FreshdeskField,{"\x61\x73":_0xefae[408],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[404]});db[_0xefae[230]][_0xefae[274]](db.FreshdeskField,{"\x61\x73":_0xefae[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[406]});db[_0xefae[230]][_0xefae[274]](db.FreshdeskField,{"\x61\x73":_0xefae[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[407]});db[_0xefae[230]][_0xefae[308]](db.Variable,{"\x61\x73":_0xefae[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[411]});db[_0xefae[242]][_0xefae[274]](db.JscriptyInputReport,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[414]});db[_0xefae[244]][_0xefae[274]](db.JscriptyQuestionReport,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0xefae[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[415]});db[_0xefae[254]][_0xefae[274]](db.JscriptySessionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[416]});db[_0xefae[254]][_0xefae[274]](db.JscriptyQuestionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[416]});db[_0xefae[264]][_0xefae[281]](db.User,{"\x61\x73":_0xefae[313],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[284]});db[_0xefae[264]][_0xefae[281]](db.VoiceQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[315],"\x61\x73":_0xefae[291]});db[_0xefae[264]][_0xefae[281]](db.MailQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[329],"\x61\x73":_0xefae[292]});db[_0xefae[264]][_0xefae[281]](db.ChatQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[368],"\x61\x73":_0xefae[293]});db[_0xefae[264]][_0xefae[281]](db.FaxQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[343],"\x61\x73":_0xefae[294]});db[_0xefae[264]][_0xefae[281]](db.SmsQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[346],"\x61\x73":_0xefae[295]});db[_0xefae[264]][_0xefae[281]](db.OpenchannelQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[350],"\x61\x73":_0xefae[296]});db[_0xefae[268]][_0xefae[274]](db.CmHopper,{"\x61\x73":_0xefae[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[373]});db[_0xefae[268]][_0xefae[274]](db.CmHopperFinal,{"\x61\x73":_0xefae[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[373]});db[_0xefae[268]][_0xefae[274]](db.CmHopperHistory,{"\x61\x73":_0xefae[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[373]});db[_0xefae[268]][_0xefae[274]](db.CmHopperBlack,{"\x61\x73":_0xefae[306],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[373]});db[_0xefae[268]][_0xefae[308]](db.Trunk,{"\x61\x73":_0xefae[40],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[307]});db[_0xefae[268]][_0xefae[308]](db.Trunk,{"\x61\x73":_0xefae[309],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[310]});db[_0xefae[268]][_0xefae[308]](db.Interval,{"\x61\x73":_0xefae[172],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[311]});db[_0xefae[268]][_0xefae[308]](db.SquareProject,{"\x61\x73":_0xefae[260],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0xefae[417]});db[_0xefae[268]][_0xefae[281]](db.CmList,{"\x61\x73":_0xefae[282],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[418]});db[_0xefae[268]][_0xefae[281]](db.CmList,{"\x61\x73":_0xefae[316],"\x74\x68\x72\x6F\x75\x67\x68":_0xefae[419]});module[_0xefae[420]]= {db:db,dbH:dbH}
\ No newline at end of file
index adae2ae..c99b98c 100644 (file)
@@ -1 +1 @@
-var _0xa8a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x72\x72\x6F\x72\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72","\x75\x73\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x6F\x68\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x61\x69\x6C\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x61\x6C\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x64\x69\x61\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x74\x72\x61\x6E\x73\x66\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6F\x75\x74\x5F\x73\x65\x72\x76\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x69\x74\x65\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x5F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x6C\x69\x73\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x4C\x69\x73\x74","\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65","\x2F\x61\x70\x69\x2F\x63\x64\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x64\x72","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65","\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67","\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x66\x69\x65\x6C\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x74\x72\x65\x65\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x69\x6E\x70\x75\x74\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x64\x65\x74\x61\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x6C\x6F\x63\x61\x6C","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x4C\x6F\x63\x61\x6C","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x67\x6F\x6F\x67\x6C\x65","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x47\x6F\x6F\x67\x6C\x65","\x2F\x61\x70\x69\x2F\x6A\x69\x72\x61","\x2E\x2F\x61\x70\x69\x2F\x6A\x69\x72\x61","\x2F\x61\x70\x69\x2F\x72\x70\x63","\x2E\x2F\x61\x70\x69\x2F\x72\x70\x63","\x2F\x61\x70\x69\x2F\x76\x65\x72\x73\x69\x6F\x6E","\x2E\x2F\x61\x70\x69\x2F\x76\x65\x72\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x79\x73\x74\x65\x6D","\x2E\x2F\x61\x70\x69\x2F\x73\x79\x73\x74\x65\x6D","\x2F\x61\x70\x69\x2F\x70\x6D\x32","\x2E\x2F\x61\x70\x69\x2F\x70\x6D\x32","\x2F\x61\x70\x69\x64\x6F\x63","\x72\x6F\x6F\x74","\x6A\x6F\x69\x6E","\x73\x74\x61\x74\x69\x63","\x2F\x77\x77\x77","\x2F\x64\x65\x6D\x6F","\x67\x65\x74","\x2F\x3A\x75\x72\x6C\x28\x61\x70\x69\x7C\x61\x75\x74\x68\x7C\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x70\x70\x7C\x62\x6F\x77\x65\x72\x5F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x73\x73\x65\x74\x73\x29\x2F\x2A","\x72\x6F\x75\x74\x65","\x61\x70\x70\x50\x61\x74\x68","\x2F\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x72\x65\x73\x6F\x6C\x76\x65","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x2F\x2A"];_0xa8a7[0];var path=require(_0xa8a7[1]);var express=require(_0xa8a7[2]);var errors=require(_0xa8a7[3]);var config=require(_0xa8a7[4]);exports[_0xa8a7[5]]= function(_0xeceex5){_0xeceex5[_0xa8a7[8]](_0xa8a7[6],require(_0xa8a7[7]));_0xeceex5[_0xa8a7[8]](_0xa8a7[9],require(_0xa8a7[10]));_0xeceex5[_0xa8a7[8]](_0xa8a7[11],require(_0xa8a7[12]));_0xeceex5[_0xa8a7[8]](_0xa8a7[13],require(_0xa8a7[14]));_0xeceex5[_0xa8a7[8]](_0xa8a7[15],require(_0xa8a7[16]));_0xeceex5[_0xa8a7[8]](_0xa8a7[17],require(_0xa8a7[18]));_0xeceex5[_0xa8a7[8]](_0xa8a7[19],require(_0xa8a7[20]));_0xeceex5[_0xa8a7[8]](_0xa8a7[21],require(_0xa8a7[22]));_0xeceex5[_0xa8a7[8]](_0xa8a7[23],require(_0xa8a7[24]));_0xeceex5[_0xa8a7[8]](_0xa8a7[25],require(_0xa8a7[26]));_0xeceex5[_0xa8a7[8]](_0xa8a7[27],require(_0xa8a7[28]));_0xeceex5[_0xa8a7[8]](_0xa8a7[29],require(_0xa8a7[30]));_0xeceex5[_0xa8a7[8]](_0xa8a7[31],require(_0xa8a7[32]));_0xeceex5[_0xa8a7[8]](_0xa8a7[33],require(_0xa8a7[34]));_0xeceex5[_0xa8a7[8]](_0xa8a7[35],require(_0xa8a7[36]));_0xeceex5[_0xa8a7[8]](_0xa8a7[37],require(_0xa8a7[38]));_0xeceex5[_0xa8a7[8]](_0xa8a7[39],require(_0xa8a7[40]));_0xeceex5[_0xa8a7[8]](_0xa8a7[41],require(_0xa8a7[42]));_0xeceex5[_0xa8a7[8]](_0xa8a7[43],require(_0xa8a7[44]));_0xeceex5[_0xa8a7[8]](_0xa8a7[45],require(_0xa8a7[46]));_0xeceex5[_0xa8a7[8]](_0xa8a7[47],require(_0xa8a7[48]));_0xeceex5[_0xa8a7[8]](_0xa8a7[49],require(_0xa8a7[50]));_0xeceex5[_0xa8a7[8]](_0xa8a7[51],require(_0xa8a7[52]));_0xeceex5[_0xa8a7[8]](_0xa8a7[53],require(_0xa8a7[54]));_0xeceex5[_0xa8a7[8]](_0xa8a7[55],require(_0xa8a7[56]));_0xeceex5[_0xa8a7[8]](_0xa8a7[57],require(_0xa8a7[58]));_0xeceex5[_0xa8a7[8]](_0xa8a7[59],require(_0xa8a7[60]));_0xeceex5[_0xa8a7[8]](_0xa8a7[61],require(_0xa8a7[62]));_0xeceex5[_0xa8a7[8]](_0xa8a7[63],require(_0xa8a7[64]));_0xeceex5[_0xa8a7[8]](_0xa8a7[65],require(_0xa8a7[66]));_0xeceex5[_0xa8a7[8]](_0xa8a7[67],require(_0xa8a7[68]));_0xeceex5[_0xa8a7[8]](_0xa8a7[69],require(_0xa8a7[70]));_0xeceex5[_0xa8a7[8]](_0xa8a7[71],require(_0xa8a7[72]));_0xeceex5[_0xa8a7[8]](_0xa8a7[73],require(_0xa8a7[74]));_0xeceex5[_0xa8a7[8]](_0xa8a7[75],require(_0xa8a7[76]));_0xeceex5[_0xa8a7[8]](_0xa8a7[77],require(_0xa8a7[78]));_0xeceex5[_0xa8a7[8]](_0xa8a7[79],require(_0xa8a7[80]));_0xeceex5[_0xa8a7[8]](_0xa8a7[81],require(_0xa8a7[82]));_0xeceex5[_0xa8a7[8]](_0xa8a7[83],require(_0xa8a7[84]));_0xeceex5[_0xa8a7[8]](_0xa8a7[85],require(_0xa8a7[86]));_0xeceex5[_0xa8a7[8]](_0xa8a7[87],require(_0xa8a7[88]));_0xeceex5[_0xa8a7[8]](_0xa8a7[89],require(_0xa8a7[90]));_0xeceex5[_0xa8a7[8]](_0xa8a7[91],require(_0xa8a7[92]));_0xeceex5[_0xa8a7[8]](_0xa8a7[93],require(_0xa8a7[94]));_0xeceex5[_0xa8a7[8]](_0xa8a7[95],require(_0xa8a7[96]));_0xeceex5[_0xa8a7[8]](_0xa8a7[97],require(_0xa8a7[98]));_0xeceex5[_0xa8a7[8]](_0xa8a7[99],require(_0xa8a7[100]));_0xeceex5[_0xa8a7[8]](_0xa8a7[101],require(_0xa8a7[102]));_0xeceex5[_0xa8a7[8]](_0xa8a7[103],require(_0xa8a7[104]));_0xeceex5[_0xa8a7[8]](_0xa8a7[105],require(_0xa8a7[106]));_0xeceex5[_0xa8a7[8]](_0xa8a7[107],require(_0xa8a7[108]));_0xeceex5[_0xa8a7[8]](_0xa8a7[109],require(_0xa8a7[110]));_0xeceex5[_0xa8a7[8]](_0xa8a7[111],require(_0xa8a7[112]));_0xeceex5[_0xa8a7[8]](_0xa8a7[113],require(_0xa8a7[114]));_0xeceex5[_0xa8a7[8]](_0xa8a7[115],require(_0xa8a7[116]));_0xeceex5[_0xa8a7[8]](_0xa8a7[117],require(_0xa8a7[118]));_0xeceex5[_0xa8a7[8]](_0xa8a7[119],require(_0xa8a7[120]));_0xeceex5[_0xa8a7[8]](_0xa8a7[121],require(_0xa8a7[122]));_0xeceex5[_0xa8a7[8]](_0xa8a7[123],require(_0xa8a7[124]));_0xeceex5[_0xa8a7[8]](_0xa8a7[125],require(_0xa8a7[126]));_0xeceex5[_0xa8a7[8]](_0xa8a7[127],require(_0xa8a7[128]));_0xeceex5[_0xa8a7[8]](_0xa8a7[129],require(_0xa8a7[130]));_0xeceex5[_0xa8a7[8]](_0xa8a7[131],require(_0xa8a7[132]));_0xeceex5[_0xa8a7[8]](_0xa8a7[133],require(_0xa8a7[134]));_0xeceex5[_0xa8a7[8]](_0xa8a7[135],require(_0xa8a7[136]));_0xeceex5[_0xa8a7[8]](_0xa8a7[137],require(_0xa8a7[138]));_0xeceex5[_0xa8a7[8]](_0xa8a7[139],require(_0xa8a7[140]));_0xeceex5[_0xa8a7[8]](_0xa8a7[141],require(_0xa8a7[142]));_0xeceex5[_0xa8a7[8]](_0xa8a7[143],require(_0xa8a7[144]));_0xeceex5[_0xa8a7[8]](_0xa8a7[145],require(_0xa8a7[146]));_0xeceex5[_0xa8a7[8]](_0xa8a7[147],require(_0xa8a7[148]));_0xeceex5[_0xa8a7[8]](_0xa8a7[149],require(_0xa8a7[150]));_0xeceex5[_0xa8a7[8]](_0xa8a7[151],require(_0xa8a7[152]));_0xeceex5[_0xa8a7[8]](_0xa8a7[153],require(_0xa8a7[154]));_0xeceex5[_0xa8a7[8]](_0xa8a7[155],require(_0xa8a7[156]));_0xeceex5[_0xa8a7[8]](_0xa8a7[157],require(_0xa8a7[158]));_0xeceex5[_0xa8a7[8]](_0xa8a7[159],require(_0xa8a7[160]));_0xeceex5[_0xa8a7[8]](_0xa8a7[161],require(_0xa8a7[162]));_0xeceex5[_0xa8a7[8]](_0xa8a7[163],require(_0xa8a7[164]));_0xeceex5[_0xa8a7[8]](_0xa8a7[165],require(_0xa8a7[166]));_0xeceex5[_0xa8a7[8]](_0xa8a7[167],require(_0xa8a7[168]));_0xeceex5[_0xa8a7[8]](_0xa8a7[169],require(_0xa8a7[170]));_0xeceex5[_0xa8a7[8]](_0xa8a7[171],require(_0xa8a7[172]));_0xeceex5[_0xa8a7[8]](_0xa8a7[173],require(_0xa8a7[174]));_0xeceex5[_0xa8a7[8]](_0xa8a7[175],require(_0xa8a7[176]));_0xeceex5[_0xa8a7[8]](_0xa8a7[177],require(_0xa8a7[178]));_0xeceex5[_0xa8a7[8]](_0xa8a7[179],require(_0xa8a7[180]));_0xeceex5[_0xa8a7[8]](_0xa8a7[181],require(_0xa8a7[182]));_0xeceex5[_0xa8a7[8]](_0xa8a7[183],require(_0xa8a7[184]));_0xeceex5[_0xa8a7[8]](_0xa8a7[185],require(_0xa8a7[186]));_0xeceex5[_0xa8a7[8]](_0xa8a7[187],require(_0xa8a7[188]));_0xeceex5[_0xa8a7[8]](_0xa8a7[189],require(_0xa8a7[190]));_0xeceex5[_0xa8a7[8]](_0xa8a7[191],require(_0xa8a7[192]));_0xeceex5[_0xa8a7[8]](_0xa8a7[193],require(_0xa8a7[194]));_0xeceex5[_0xa8a7[8]](_0xa8a7[195],require(_0xa8a7[196]));_0xeceex5[_0xa8a7[8]](_0xa8a7[197],require(_0xa8a7[198]));_0xeceex5[_0xa8a7[8]](_0xa8a7[199],require(_0xa8a7[200]));_0xeceex5[_0xa8a7[8]](_0xa8a7[201],require(_0xa8a7[202]));_0xeceex5[_0xa8a7[8]](_0xa8a7[203],require(_0xa8a7[204]));_0xeceex5[_0xa8a7[8]](_0xa8a7[205],require(_0xa8a7[206]));_0xeceex5[_0xa8a7[8]](_0xa8a7[207],require(_0xa8a7[208]));_0xeceex5[_0xa8a7[8]](_0xa8a7[209],require(_0xa8a7[210]));_0xeceex5[_0xa8a7[8]](_0xa8a7[211],require(_0xa8a7[212]));_0xeceex5[_0xa8a7[8]](_0xa8a7[213],require(_0xa8a7[214]));_0xeceex5[_0xa8a7[8]](_0xa8a7[215],require(_0xa8a7[216]));_0xeceex5[_0xa8a7[8]](_0xa8a7[217],require(_0xa8a7[218]));_0xeceex5[_0xa8a7[8]](_0xa8a7[219],require(_0xa8a7[220]));_0xeceex5[_0xa8a7[8]](_0xa8a7[221],require(_0xa8a7[222]));_0xeceex5[_0xa8a7[8]](_0xa8a7[223],require(_0xa8a7[224]));_0xeceex5[_0xa8a7[8]](_0xa8a7[225],require(_0xa8a7[226]));_0xeceex5[_0xa8a7[8]](_0xa8a7[227],require(_0xa8a7[228]));_0xeceex5[_0xa8a7[8]](_0xa8a7[229],require(_0xa8a7[230]));_0xeceex5[_0xa8a7[8]](_0xa8a7[231],require(_0xa8a7[232]));_0xeceex5[_0xa8a7[8]](_0xa8a7[233],require(_0xa8a7[234]));_0xeceex5[_0xa8a7[8]](_0xa8a7[235],require(_0xa8a7[236]));_0xeceex5[_0xa8a7[8]](_0xa8a7[237],require(_0xa8a7[238]));_0xeceex5[_0xa8a7[8]](_0xa8a7[239],require(_0xa8a7[240]));_0xeceex5[_0xa8a7[8]](_0xa8a7[241],require(_0xa8a7[242]));_0xeceex5[_0xa8a7[8]](_0xa8a7[243],require(_0xa8a7[244]));_0xeceex5[_0xa8a7[8]](_0xa8a7[245],require(_0xa8a7[246]));_0xeceex5[_0xa8a7[8]](_0xa8a7[247],require(_0xa8a7[248]));_0xeceex5[_0xa8a7[8]](_0xa8a7[249],require(_0xa8a7[250]));_0xeceex5[_0xa8a7[8]](_0xa8a7[251],require(_0xa8a7[252]));_0xeceex5[_0xa8a7[8]](_0xa8a7[253],require(_0xa8a7[254]));_0xeceex5[_0xa8a7[8]](_0xa8a7[255],require(_0xa8a7[256]));_0xeceex5[_0xa8a7[8]](_0xa8a7[257],require(_0xa8a7[258]));_0xeceex5[_0xa8a7[8]](_0xa8a7[259],require(_0xa8a7[260]));_0xeceex5[_0xa8a7[8]](_0xa8a7[261],require(_0xa8a7[262]));_0xeceex5[_0xa8a7[8]](_0xa8a7[263],require(_0xa8a7[264]));_0xeceex5[_0xa8a7[8]](_0xa8a7[265],express[_0xa8a7[268]](path[_0xa8a7[267]](config[_0xa8a7[266]],_0xa8a7[265])));_0xeceex5[_0xa8a7[8]](_0xa8a7[269],express[_0xa8a7[268]](path[_0xa8a7[267]](config[_0xa8a7[266]],_0xa8a7[269])));_0xeceex5[_0xa8a7[8]](_0xa8a7[270],express[_0xa8a7[268]](path[_0xa8a7[267]](config[_0xa8a7[266]],_0xa8a7[270])));_0xeceex5[_0xa8a7[273]](_0xa8a7[272])[_0xa8a7[271]](errors[404]);_0xeceex5[_0xa8a7[273]](_0xa8a7[278])[_0xa8a7[271]](function(_0xeceex6,_0xeceex7){_0xeceex7[_0xa8a7[277]](path[_0xa8a7[276]](_0xeceex5[_0xa8a7[271]](_0xa8a7[274])+ _0xa8a7[275]))})}
\ No newline at end of file
+var _0xe1ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x72\x72\x6F\x72\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72","\x75\x73\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x6F\x68\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x61\x69\x6C\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x61\x6C\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x64\x69\x61\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x74\x72\x61\x6E\x73\x66\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6F\x75\x74\x5F\x73\x65\x72\x76\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x69\x74\x65\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x5F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x6C\x69\x73\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x4C\x69\x73\x74","\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65","\x2F\x61\x70\x69\x2F\x63\x64\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x64\x72","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65","\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67","\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x66\x69\x65\x6C\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x74\x72\x65\x65\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x69\x6E\x70\x75\x74\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x64\x65\x74\x61\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x6C\x6F\x63\x61\x6C","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x4C\x6F\x63\x61\x6C","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x67\x6F\x6F\x67\x6C\x65","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x47\x6F\x6F\x67\x6C\x65","\x2F\x61\x70\x69\x2F\x6A\x69\x72\x61","\x2E\x2F\x61\x70\x69\x2F\x6A\x69\x72\x61","\x2F\x61\x70\x69\x2F\x72\x70\x63","\x2E\x2F\x61\x70\x69\x2F\x72\x70\x63","\x2F\x61\x70\x69\x2F\x76\x65\x72\x73\x69\x6F\x6E","\x2E\x2F\x61\x70\x69\x2F\x76\x65\x72\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x79\x73\x74\x65\x6D","\x2E\x2F\x61\x70\x69\x2F\x73\x79\x73\x74\x65\x6D","\x2F\x61\x70\x69\x2F\x70\x6D\x32","\x2E\x2F\x61\x70\x69\x2F\x70\x6D\x32","\x2F\x61\x70\x69\x64\x6F\x63","\x72\x6F\x6F\x74","\x6A\x6F\x69\x6E","\x73\x74\x61\x74\x69\x63","\x2F\x77\x77\x77","\x2F\x64\x65\x6D\x6F","\x67\x65\x74","\x2F\x3A\x75\x72\x6C\x28\x61\x70\x69\x7C\x61\x75\x74\x68\x7C\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x70\x70\x7C\x62\x6F\x77\x65\x72\x5F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x73\x73\x65\x74\x73\x29\x2F\x2A","\x72\x6F\x75\x74\x65","\x61\x70\x70\x50\x61\x74\x68","\x2F\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x72\x65\x73\x6F\x6C\x76\x65","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x2F\x2A"];_0xe1ab[0];var path=require(_0xe1ab[1]);var express=require(_0xe1ab[2]);var errors=require(_0xe1ab[3]);var config=require(_0xe1ab[4]);exports[_0xe1ab[5]]= function(_0xb262x5){_0xb262x5[_0xe1ab[8]](_0xe1ab[6],require(_0xe1ab[7]));_0xb262x5[_0xe1ab[8]](_0xe1ab[9],require(_0xe1ab[10]));_0xb262x5[_0xe1ab[8]](_0xe1ab[11],require(_0xe1ab[12]));_0xb262x5[_0xe1ab[8]](_0xe1ab[13],require(_0xe1ab[14]));_0xb262x5[_0xe1ab[8]](_0xe1ab[15],require(_0xe1ab[16]));_0xb262x5[_0xe1ab[8]](_0xe1ab[17],require(_0xe1ab[18]));_0xb262x5[_0xe1ab[8]](_0xe1ab[19],require(_0xe1ab[20]));_0xb262x5[_0xe1ab[8]](_0xe1ab[21],require(_0xe1ab[22]));_0xb262x5[_0xe1ab[8]](_0xe1ab[23],require(_0xe1ab[24]));_0xb262x5[_0xe1ab[8]](_0xe1ab[25],require(_0xe1ab[26]));_0xb262x5[_0xe1ab[8]](_0xe1ab[27],require(_0xe1ab[28]));_0xb262x5[_0xe1ab[8]](_0xe1ab[29],require(_0xe1ab[30]));_0xb262x5[_0xe1ab[8]](_0xe1ab[31],require(_0xe1ab[32]));_0xb262x5[_0xe1ab[8]](_0xe1ab[33],require(_0xe1ab[34]));_0xb262x5[_0xe1ab[8]](_0xe1ab[35],require(_0xe1ab[36]));_0xb262x5[_0xe1ab[8]](_0xe1ab[37],require(_0xe1ab[38]));_0xb262x5[_0xe1ab[8]](_0xe1ab[39],require(_0xe1ab[40]));_0xb262x5[_0xe1ab[8]](_0xe1ab[41],require(_0xe1ab[42]));_0xb262x5[_0xe1ab[8]](_0xe1ab[43],require(_0xe1ab[44]));_0xb262x5[_0xe1ab[8]](_0xe1ab[45],require(_0xe1ab[46]));_0xb262x5[_0xe1ab[8]](_0xe1ab[47],require(_0xe1ab[48]));_0xb262x5[_0xe1ab[8]](_0xe1ab[49],require(_0xe1ab[50]));_0xb262x5[_0xe1ab[8]](_0xe1ab[51],require(_0xe1ab[52]));_0xb262x5[_0xe1ab[8]](_0xe1ab[53],require(_0xe1ab[54]));_0xb262x5[_0xe1ab[8]](_0xe1ab[55],require(_0xe1ab[56]));_0xb262x5[_0xe1ab[8]](_0xe1ab[57],require(_0xe1ab[58]));_0xb262x5[_0xe1ab[8]](_0xe1ab[59],require(_0xe1ab[60]));_0xb262x5[_0xe1ab[8]](_0xe1ab[61],require(_0xe1ab[62]));_0xb262x5[_0xe1ab[8]](_0xe1ab[63],require(_0xe1ab[64]));_0xb262x5[_0xe1ab[8]](_0xe1ab[65],require(_0xe1ab[66]));_0xb262x5[_0xe1ab[8]](_0xe1ab[67],require(_0xe1ab[68]));_0xb262x5[_0xe1ab[8]](_0xe1ab[69],require(_0xe1ab[70]));_0xb262x5[_0xe1ab[8]](_0xe1ab[71],require(_0xe1ab[72]));_0xb262x5[_0xe1ab[8]](_0xe1ab[73],require(_0xe1ab[74]));_0xb262x5[_0xe1ab[8]](_0xe1ab[75],require(_0xe1ab[76]));_0xb262x5[_0xe1ab[8]](_0xe1ab[77],require(_0xe1ab[78]));_0xb262x5[_0xe1ab[8]](_0xe1ab[79],require(_0xe1ab[80]));_0xb262x5[_0xe1ab[8]](_0xe1ab[81],require(_0xe1ab[82]));_0xb262x5[_0xe1ab[8]](_0xe1ab[83],require(_0xe1ab[84]));_0xb262x5[_0xe1ab[8]](_0xe1ab[85],require(_0xe1ab[86]));_0xb262x5[_0xe1ab[8]](_0xe1ab[87],require(_0xe1ab[88]));_0xb262x5[_0xe1ab[8]](_0xe1ab[89],require(_0xe1ab[90]));_0xb262x5[_0xe1ab[8]](_0xe1ab[91],require(_0xe1ab[92]));_0xb262x5[_0xe1ab[8]](_0xe1ab[93],require(_0xe1ab[94]));_0xb262x5[_0xe1ab[8]](_0xe1ab[95],require(_0xe1ab[96]));_0xb262x5[_0xe1ab[8]](_0xe1ab[97],require(_0xe1ab[98]));_0xb262x5[_0xe1ab[8]](_0xe1ab[99],require(_0xe1ab[100]));_0xb262x5[_0xe1ab[8]](_0xe1ab[101],require(_0xe1ab[102]));_0xb262x5[_0xe1ab[8]](_0xe1ab[103],require(_0xe1ab[104]));_0xb262x5[_0xe1ab[8]](_0xe1ab[105],require(_0xe1ab[106]));_0xb262x5[_0xe1ab[8]](_0xe1ab[107],require(_0xe1ab[108]));_0xb262x5[_0xe1ab[8]](_0xe1ab[109],require(_0xe1ab[110]));_0xb262x5[_0xe1ab[8]](_0xe1ab[111],require(_0xe1ab[112]));_0xb262x5[_0xe1ab[8]](_0xe1ab[113],require(_0xe1ab[114]));_0xb262x5[_0xe1ab[8]](_0xe1ab[115],require(_0xe1ab[116]));_0xb262x5[_0xe1ab[8]](_0xe1ab[117],require(_0xe1ab[118]));_0xb262x5[_0xe1ab[8]](_0xe1ab[119],require(_0xe1ab[120]));_0xb262x5[_0xe1ab[8]](_0xe1ab[121],require(_0xe1ab[122]));_0xb262x5[_0xe1ab[8]](_0xe1ab[123],require(_0xe1ab[124]));_0xb262x5[_0xe1ab[8]](_0xe1ab[125],require(_0xe1ab[126]));_0xb262x5[_0xe1ab[8]](_0xe1ab[127],require(_0xe1ab[128]));_0xb262x5[_0xe1ab[8]](_0xe1ab[129],require(_0xe1ab[130]));_0xb262x5[_0xe1ab[8]](_0xe1ab[131],require(_0xe1ab[132]));_0xb262x5[_0xe1ab[8]](_0xe1ab[133],require(_0xe1ab[134]));_0xb262x5[_0xe1ab[8]](_0xe1ab[135],require(_0xe1ab[136]));_0xb262x5[_0xe1ab[8]](_0xe1ab[137],require(_0xe1ab[138]));_0xb262x5[_0xe1ab[8]](_0xe1ab[139],require(_0xe1ab[140]));_0xb262x5[_0xe1ab[8]](_0xe1ab[141],require(_0xe1ab[142]));_0xb262x5[_0xe1ab[8]](_0xe1ab[143],require(_0xe1ab[144]));_0xb262x5[_0xe1ab[8]](_0xe1ab[145],require(_0xe1ab[146]));_0xb262x5[_0xe1ab[8]](_0xe1ab[147],require(_0xe1ab[148]));_0xb262x5[_0xe1ab[8]](_0xe1ab[149],require(_0xe1ab[150]));_0xb262x5[_0xe1ab[8]](_0xe1ab[151],require(_0xe1ab[152]));_0xb262x5[_0xe1ab[8]](_0xe1ab[153],require(_0xe1ab[154]));_0xb262x5[_0xe1ab[8]](_0xe1ab[155],require(_0xe1ab[156]));_0xb262x5[_0xe1ab[8]](_0xe1ab[157],require(_0xe1ab[158]));_0xb262x5[_0xe1ab[8]](_0xe1ab[159],require(_0xe1ab[160]));_0xb262x5[_0xe1ab[8]](_0xe1ab[161],require(_0xe1ab[162]));_0xb262x5[_0xe1ab[8]](_0xe1ab[163],require(_0xe1ab[164]));_0xb262x5[_0xe1ab[8]](_0xe1ab[165],require(_0xe1ab[166]));_0xb262x5[_0xe1ab[8]](_0xe1ab[167],require(_0xe1ab[168]));_0xb262x5[_0xe1ab[8]](_0xe1ab[169],require(_0xe1ab[170]));_0xb262x5[_0xe1ab[8]](_0xe1ab[171],require(_0xe1ab[172]));_0xb262x5[_0xe1ab[8]](_0xe1ab[173],require(_0xe1ab[174]));_0xb262x5[_0xe1ab[8]](_0xe1ab[175],require(_0xe1ab[176]));_0xb262x5[_0xe1ab[8]](_0xe1ab[177],require(_0xe1ab[178]));_0xb262x5[_0xe1ab[8]](_0xe1ab[179],require(_0xe1ab[180]));_0xb262x5[_0xe1ab[8]](_0xe1ab[181],require(_0xe1ab[182]));_0xb262x5[_0xe1ab[8]](_0xe1ab[183],require(_0xe1ab[184]));_0xb262x5[_0xe1ab[8]](_0xe1ab[185],require(_0xe1ab[186]));_0xb262x5[_0xe1ab[8]](_0xe1ab[187],require(_0xe1ab[188]));_0xb262x5[_0xe1ab[8]](_0xe1ab[189],require(_0xe1ab[190]));_0xb262x5[_0xe1ab[8]](_0xe1ab[191],require(_0xe1ab[192]));_0xb262x5[_0xe1ab[8]](_0xe1ab[193],require(_0xe1ab[194]));_0xb262x5[_0xe1ab[8]](_0xe1ab[195],require(_0xe1ab[196]));_0xb262x5[_0xe1ab[8]](_0xe1ab[197],require(_0xe1ab[198]));_0xb262x5[_0xe1ab[8]](_0xe1ab[199],require(_0xe1ab[200]));_0xb262x5[_0xe1ab[8]](_0xe1ab[201],require(_0xe1ab[202]));_0xb262x5[_0xe1ab[8]](_0xe1ab[203],require(_0xe1ab[204]));_0xb262x5[_0xe1ab[8]](_0xe1ab[205],require(_0xe1ab[206]));_0xb262x5[_0xe1ab[8]](_0xe1ab[207],require(_0xe1ab[208]));_0xb262x5[_0xe1ab[8]](_0xe1ab[209],require(_0xe1ab[210]));_0xb262x5[_0xe1ab[8]](_0xe1ab[211],require(_0xe1ab[212]));_0xb262x5[_0xe1ab[8]](_0xe1ab[213],require(_0xe1ab[214]));_0xb262x5[_0xe1ab[8]](_0xe1ab[215],require(_0xe1ab[216]));_0xb262x5[_0xe1ab[8]](_0xe1ab[217],require(_0xe1ab[218]));_0xb262x5[_0xe1ab[8]](_0xe1ab[219],require(_0xe1ab[220]));_0xb262x5[_0xe1ab[8]](_0xe1ab[221],require(_0xe1ab[222]));_0xb262x5[_0xe1ab[8]](_0xe1ab[223],require(_0xe1ab[224]));_0xb262x5[_0xe1ab[8]](_0xe1ab[225],require(_0xe1ab[226]));_0xb262x5[_0xe1ab[8]](_0xe1ab[227],require(_0xe1ab[228]));_0xb262x5[_0xe1ab[8]](_0xe1ab[229],require(_0xe1ab[230]));_0xb262x5[_0xe1ab[8]](_0xe1ab[231],require(_0xe1ab[232]));_0xb262x5[_0xe1ab[8]](_0xe1ab[233],require(_0xe1ab[234]));_0xb262x5[_0xe1ab[8]](_0xe1ab[235],require(_0xe1ab[236]));_0xb262x5[_0xe1ab[8]](_0xe1ab[237],require(_0xe1ab[238]));_0xb262x5[_0xe1ab[8]](_0xe1ab[239],require(_0xe1ab[240]));_0xb262x5[_0xe1ab[8]](_0xe1ab[241],require(_0xe1ab[242]));_0xb262x5[_0xe1ab[8]](_0xe1ab[243],require(_0xe1ab[244]));_0xb262x5[_0xe1ab[8]](_0xe1ab[245],require(_0xe1ab[246]));_0xb262x5[_0xe1ab[8]](_0xe1ab[247],require(_0xe1ab[248]));_0xb262x5[_0xe1ab[8]](_0xe1ab[249],require(_0xe1ab[250]));_0xb262x5[_0xe1ab[8]](_0xe1ab[251],require(_0xe1ab[252]));_0xb262x5[_0xe1ab[8]](_0xe1ab[253],require(_0xe1ab[254]));_0xb262x5[_0xe1ab[8]](_0xe1ab[255],require(_0xe1ab[256]));_0xb262x5[_0xe1ab[8]](_0xe1ab[257],require(_0xe1ab[258]));_0xb262x5[_0xe1ab[8]](_0xe1ab[259],require(_0xe1ab[260]));_0xb262x5[_0xe1ab[8]](_0xe1ab[261],require(_0xe1ab[262]));_0xb262x5[_0xe1ab[8]](_0xe1ab[263],require(_0xe1ab[264]));_0xb262x5[_0xe1ab[8]](_0xe1ab[265],express[_0xe1ab[268]](path[_0xe1ab[267]](config[_0xe1ab[266]],_0xe1ab[265])));_0xb262x5[_0xe1ab[8]](_0xe1ab[269],express[_0xe1ab[268]](path[_0xe1ab[267]](config[_0xe1ab[266]],_0xe1ab[269])));_0xb262x5[_0xe1ab[8]](_0xe1ab[270],express[_0xe1ab[268]](path[_0xe1ab[267]](config[_0xe1ab[266]],_0xe1ab[270])));_0xb262x5[_0xe1ab[273]](_0xe1ab[272])[_0xe1ab[271]](errors[404]);_0xb262x5[_0xe1ab[273]](_0xe1ab[278])[_0xe1ab[271]](function(_0xb262x6,_0xb262x7){_0xb262x7[_0xe1ab[277]](path[_0xe1ab[276]](_0xb262x5[_0xe1ab[271]](_0xe1ab[274])+ _0xe1ab[275]))})}
\ No newline at end of file
index 9651f11..1e84c12 100644 (file)
@@ -1 +1 @@
-var _0x883c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x69\x73\x74\x65\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x72\x70\x63","\x6D\x65\x72\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x72\x70\x63","\x68\x74\x74\x70","\x73\x65\x72\x76\x65\x72","\x70\x6F\x72\x74","\x72\x70\x63","\x69\x70","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x65\x72\x72\x6F\x72","\x6F\x6E","\x52\x50\x43\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20","\x3A"];_0x883c[0];var jayson=require(_0x883c[1]);var BPromise=require(_0x883c[2]);var _=require(_0x883c[3]);var config=require(_0x883c[4]);exports[_0x883c[5]]= function(){return  new BPromise(function(_0x9cfex5,_0x9cfex6){var _0x9cfex7={};_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[6]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[8]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[9]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[10]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[11]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[12]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[13]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[14]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[15]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[16]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[17]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[18]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[19]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[20]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[21]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[22]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[23]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[24]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[25]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[26]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[27]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[28]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[29]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[30]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[31]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[32]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[33]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[34]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[35]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[36]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[37]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[38]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[39]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[40]));_0x9cfex7= _[_0x883c[7]](_0x9cfex7,require(_0x883c[41]));var _0x9cfex8=jayson[_0x883c[43]](_0x9cfex7)[_0x883c[42]]();var _0x9cfex9=config[_0x883c[45]][_0x883c[44]]|| (config[_0x883c[44]]+ 1);var _0x9cfexa=config[_0x883c[45]][_0x883c[46]]|| _0x883c[47];_0x9cfex8[_0x883c[49]](_0x883c[48],function(_0x9cfexb){return _0x9cfex6(_0x9cfexb)});_0x9cfex8[_0x883c[5]](_0x9cfex9,_0x9cfexa,function(){return _0x9cfex5(_0x883c[50]+ _0x9cfexa+ _0x883c[51]+ _0x9cfex9)})})}
\ No newline at end of file
+var _0xe5a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x69\x73\x74\x65\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x72\x70\x63","\x6D\x65\x72\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x72\x70\x63","\x68\x74\x74\x70","\x73\x65\x72\x76\x65\x72","\x70\x6F\x72\x74","\x72\x70\x63","\x69\x70","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x65\x72\x72\x6F\x72","\x6F\x6E","\x52\x50\x43\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20","\x3A"];_0xe5a7[0];var jayson=require(_0xe5a7[1]);var BPromise=require(_0xe5a7[2]);var _=require(_0xe5a7[3]);var config=require(_0xe5a7[4]);exports[_0xe5a7[5]]= function(){return  new BPromise(function(_0x7d4dx5,_0x7d4dx6){var _0x7d4dx7={};_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[6]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[8]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[9]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[10]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[11]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[12]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[13]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[14]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[15]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[16]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[17]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[18]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[19]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[20]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[21]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[22]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[23]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[24]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[25]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[26]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[27]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[28]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[29]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[30]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[31]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[32]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[33]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[34]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[35]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[36]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[37]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[38]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[39]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[40]));_0x7d4dx7= _[_0xe5a7[7]](_0x7d4dx7,require(_0xe5a7[41]));var _0x7d4dx8=jayson[_0xe5a7[43]](_0x7d4dx7)[_0xe5a7[42]]();var _0x7d4dx9=config[_0xe5a7[45]][_0xe5a7[44]]|| (config[_0xe5a7[44]]+ 1);var _0x7d4dxa=config[_0xe5a7[45]][_0xe5a7[46]]|| _0xe5a7[47];_0x7d4dx8[_0xe5a7[49]](_0xe5a7[48],function(_0x7d4dxb){return _0x7d4dx6(_0x7d4dxb)});_0x7d4dx8[_0xe5a7[5]](_0x7d4dx9,_0x7d4dxa,function(){return _0x7d4dx5(_0xe5a7[50]+ _0x7d4dxa+ _0xe5a7[51]+ _0x7d4dx9)})})}
\ No newline at end of file
index b11c0c7..bd63cf5 100644 (file)
@@ -1 +1 @@
-var _0x8b0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x72\x65\x70\x6C\x79","\x2E\x2F\x65\x72\x72\x6F\x72","\x63\x61\x6C\x6C","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x61\x64\x79","\x65\x6D\x69\x74","\x6F\x6E","\x6C\x69\x6E\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x68\x61\x6E\x67\x75\x70","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x35\x32\x30\x2D\x49\x6E\x76\x61\x6C\x69\x64","\x72\x78","\x0A","\x35\x32\x30\x20\x45\x6E\x64\x20\x6F\x66\x20\x70\x72\x6F\x70\x65\x72","\x73\x65\x61\x72\x63\x68","\x63\x62","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x6E\x6F\x20\x63\x6F\x64\x65","\x4B\x4F","\x72\x65\x73\x75\x6C\x74\x3D","","\x72\x65\x70\x6C\x61\x63\x65","\x20","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x75\x62\x73\x74\x72","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x65\x72\x72\x6F\x72","\x45\x5F\x41\x47\x49\x5F\x53\x4F\x43\x4B\x45\x54\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x64\x65","\x63\x6C\x6F\x73\x65","\x45\x5F\x41\x47\x49\x5F\x53\x4F\x43\x4B\x45\x54\x5F\x43\x4C\x4F\x53\x45","\x70\x69\x70\x65","\x63\x6F\x6D\x6D\x61\x6E\x64","\x77\x72\x69\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x68\x65\x72\x69\x74\x73","\x73\x65\x6E\x64\x52\x65\x71\x75\x65\x73\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x79\x6E\x63","\x61\x6E\x73\x77\x65\x72","\x41\x4E\x53\x57\x45\x52","\x67\x65\x74\x44\x61\x74\x61","\x62\x65\x65\x70","\x35","\x31","\x47\x45\x54\x20\x44\x41\x54\x41\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6E\x6F\x6F\x70","\x4E\x4F\x20\x4D\x45\x53\x53\x41\x47\x45","\x56\x45\x52\x42\x4F\x53\x45\x20\x22\x25\x73\x22","\x65\x78\x65\x63","\x69\x73\x41\x72\x72\x61\x79","\x45\x58\x45\x43\x20\x25\x73\x20\x25\x73","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x43\x6F\x6E\x74\x65\x78\x74","\x53\x45\x54\x20\x43\x4F\x4E\x54\x45\x58\x54\x20\x25\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x53\x45\x54\x20\x45\x58\x54\x45\x4E\x53\x49\x4F\x4E\x20\x25\x73","\x73\x65\x74\x50\x72\x69\x6F\x72\x69\x74\x79","\x53\x45\x54\x20\x50\x52\x49\x4F\x52\x49\x54\x59\x20\x25\x73","\x48\x41\x4E\x47\x55\x50","\x73\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x25\x73\x20\x22\x25\x73\x22","\x73\x61\x79\x4E\x75\x6D\x62\x65\x72","\x53\x41\x59\x20\x4E\x55\x4D\x42\x45\x52\x20\x25\x73\x20\x25\x73","\x73\x61\x79\x44\x69\x67\x69\x74\x73","\x53\x41\x59\x20\x44\x49\x47\x49\x54\x53\x20\x25\x73\x20\x25\x73","\x73\x61\x79\x50\x68\x6F\x6E\x65\x74\x69\x63","\x53\x41\x59\x20\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x22\x25\x73\x22\x20\x25\x73","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x4F\x54\x4F\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x47\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x22\x25\x73\x22","\x72\x65\x63\x6F\x72\x64\x46\x69\x6C\x65","\x77\x61\x76","\x2D\x31","\x73\x3D","\x42\x45\x45\x50","\x52\x45\x43\x4F\x52\x44\x20\x46\x49\x4C\x45\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x73\x74\x72\x65\x61\x6D\x46\x69\x6C\x65","\x53\x54\x52\x45\x41\x4D\x20\x46\x49\x4C\x45\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22","\x61\x67\x69","\x41\x47\x49","\x77\x61\x69\x74","\x57\x41\x49\x54","\x49\x44\x3A\x25\x73\x20\x2D\x20\x4C\x41\x42\x45\x4C\x3A\x20\x25\x73\x20\x2D\x20\x4D\x53\x47\x3A\x20\x25\x73","\x69\x64","\x6C\x61\x62\x65\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x8b0e[0];var util=require(_0x8b0e[1]);var _=require(_0x8b0e[2]);var EventEmitter=require(_0x8b0e[4])[_0x8b0e[3]];var AGIReply=require(_0x8b0e[5]);var AGIError=require(_0x8b0e[6]);function AGIChannel(_0x458ax7){var _0x458ax8=this,_0x458ax9= new AGIReply(),_0x458axa=false,_0x458axb={};EventEmitter[_0x8b0e[7]](_0x458ax8);_0x458ax7[_0x8b0e[9]](_0x8b0e[8]);_0x458ax9[_0x8b0e[9]](_0x8b0e[8]);_0x458ax9[_0x8b0e[13]](_0x8b0e[10],function(_0x458axc){for(var _0x458axd in _0x458axc){_0x458ax8[_0x458axd]= _0x458axc[_0x458axd]};_0x458ax8[_0x8b0e[12]](_0x8b0e[11])});_0x458ax9[_0x8b0e[13]](_0x8b0e[14],function(_0x458axe){if(_0x458axe[_0x8b0e[15]]()== _0x8b0e[16]){_0x458ax8[_0x8b0e[12]](_0x8b0e[16]);return};if(_0x458axe[_0x8b0e[17]](0,11)== _0x8b0e[18]){_0x458axa= true};if(_0x458axa){_0x458axb[_0x8b0e[19]]+= _0x458axe+ _0x8b0e[20];if(_0x458axe[_0x8b0e[22]](_0x8b0e[21])!=  -1){_0x458axa= false}}else {_0x458axb[_0x8b0e[19]]= _0x458axe};if(_0x458axa){return};if( typeof _0x458axb[_0x8b0e[23]]== _0x8b0e[24]){var _0x458axf=_0x458axb[_0x8b0e[19]][_0x8b0e[17]](0,3),_0x458ax10=null,_0x458ax11=null;_0x458axf= parseInt(_0x458axf);if(isNaN(_0x458axf)){_0x458axb[_0x8b0e[23]](null,{code:500,result:-1,extra:_0x8b0e[25]});return};if(_0x458axf!= 200){_0x458axb[_0x8b0e[23]](null,{code:_0x458axf,result:-1,extra:_0x8b0e[26]});return};_0x458ax10= _0x458axb[_0x8b0e[19]][_0x8b0e[17]](4)[_0x8b0e[29]](_0x8b0e[27],_0x8b0e[28]);if(_0x458ax10[_0x8b0e[31]](_0x8b0e[30])!=  -1){_0x458ax10= _0x458ax10[_0x8b0e[32]](0,_0x458ax10[_0x8b0e[31]](_0x8b0e[30]))};_0x458ax10= parseInt(_0x458ax10);_0x458ax11= _0x458axb[_0x8b0e[19]][_0x8b0e[33]](_0x8b0e[30]);if(_0x458ax11[_0x8b0e[34]]== 3){_0x458ax11= _0x458ax11[2][_0x8b0e[17]](1,_0x458ax11[2][_0x8b0e[34]]- 1)}else {_0x458ax11= null};_0x458axb[_0x8b0e[23]](null,{code:_0x458axf,result:_0x458ax10,extra:_0x458ax11})}});_0x458ax7[_0x8b0e[13]](_0x8b0e[35],function(_0x458ax12){_0x458ax8[_0x8b0e[12]](_0x8b0e[35], new AGIError(_0x8b0e[36],_0x458ax12[_0x8b0e[37]]))});_0x458ax7[_0x8b0e[13]](_0x8b0e[38],function(){_0x458ax8[_0x8b0e[12]](_0x8b0e[38], new AGIError(_0x8b0e[39]))});_0x458ax7[_0x8b0e[40]](_0x458ax9);this[_0x8b0e[41]]= function(_0x458ax13,_0x458ax14){var _0x458ax13=_0x458ax13|| _0x8b0e[28],_0x458ax14=( typeof _0x458ax14== _0x8b0e[24])?_0x458ax14: new Function();_0x458axb= {tx:_0x458ax13,rx:_0x8b0e[28],cb:_0x458ax14};_0x458ax7[_0x8b0e[42]](_0x458ax13+ _0x8b0e[20])},this[_0x8b0e[38]]= function(){_0x458ax7[_0x8b0e[43]]()}}util[_0x8b0e[44]](AGIChannel,EventEmitter);AGIChannel[_0x8b0e[46]][_0x8b0e[45]]= function(_0x458ax15){return this[_0x8b0e[41]][_0x8b0e[47]](this,_0x458ax15)};AGIChannel[_0x8b0e[46]][_0x8b0e[48]]= function(){return this[_0x8b0e[45]](_0x8b0e[49])};AGIChannel[_0x8b0e[46]][_0x8b0e[50]]= function(_0x458ax16,_0x458ax17,_0x458ax18){_0x458ax16= (_0x458ax16=== undefined)?_0x8b0e[51]:_0x458ax16;_0x458ax17= (_0x458ax17=== undefined)?_0x8b0e[52]:_0x458ax17;_0x458ax18= (_0x458ax18=== undefined)?_0x8b0e[53]:_0x458ax18;return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[54],_0x458ax16,_0x458ax17* 1000,_0x458ax18))};AGIChannel[_0x8b0e[46]][_0x8b0e[56]]= function(_0x458ax19){_0x458ax19= _0x458ax19|| _0x8b0e[57];return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[58],_0x458ax19))};AGIChannel[_0x8b0e[46]][_0x8b0e[59]]= function(_0x458ax1a,_0x458ax1b){if(_[_0x8b0e[60]](_0x458ax1b)){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[61],_0x458ax1a,_0x458ax1b[_0x8b0e[63]](_0x8b0e[62])))};return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[61],_0x458ax1a,_0x458ax1b))};AGIChannel[_0x8b0e[46]][_0x8b0e[64]]= function(_0x458ax1c){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[65],_0x458ax1c))};AGIChannel[_0x8b0e[46]][_0x8b0e[66]]= function(_0x458ax1d){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[67],_0x458ax1d))};AGIChannel[_0x8b0e[46]][_0x8b0e[68]]= function(_0x458ax1e){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[69],_0x458ax1e))};AGIChannel[_0x8b0e[46]][_0x8b0e[16]]= function(){return this[_0x8b0e[45]](_0x8b0e[70])};AGIChannel[_0x8b0e[46]][_0x8b0e[71]]= function(_0x458ax1f,_0x458ax20){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[72],_0x458ax1f,_0x458ax20))};AGIChannel[_0x8b0e[46]][_0x8b0e[73]]= function(_0x458ax21,_0x458ax22){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[74],_0x458ax21,_0x458ax22))};AGIChannel[_0x8b0e[46]][_0x8b0e[75]]= function(_0x458ax23,_0x458ax22){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[76],_0x458ax23,_0x458ax22))};AGIChannel[_0x8b0e[46]][_0x8b0e[77]]= function(_0x458ax24,_0x458ax22){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[78],_0x458ax24,_0x458ax22))};AGIChannel[_0x8b0e[46]][_0x8b0e[79]]= function(_0x458ax1c,_0x458ax1d,_0x458ax1e){_0x458ax1d= _0x458ax1d|| this[_0x8b0e[81]][_0x8b0e[80]];_0x458ax1e= _0x458ax1e|| 1;this[_0x8b0e[64]](_0x458ax1c);this[_0x8b0e[66]](_0x458ax1d);this[_0x8b0e[68]](_0x458ax1e);return this[_0x8b0e[56]](util[_0x8b0e[55]](_0x8b0e[82],_0x458ax1c,_0x458ax1d,_0x458ax1e))};AGIChannel[_0x8b0e[46]][_0x8b0e[83]]= function(_0x458ax1f){return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[84],_0x458ax1f))};AGIChannel[_0x8b0e[46]][_0x8b0e[85]]= function(_0x458ax16,_0x458ax25,_0x458ax22,_0x458ax17,_0x458ax26,_0x458ax27){_0x458ax25= _0x458ax25|| _0x8b0e[86];_0x458ax22= _0x458ax22|| _0x8b0e[28];_0x458ax17= (_0x458ax17=== undefined)?-1:((_0x458ax17=== _0x8b0e[87])?-1:_0x458ax17* 1000);_0x458ax26= (_0x458ax26=== undefined)?_0x8b0e[28]:_0x8b0e[88]+ _0x458ax26;_0x458ax27= (_0x458ax27)?_0x8b0e[89]:_0x8b0e[28];return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[90],_0x458ax16,_0x458ax25,_0x458ax22,_0x458ax17,_0x458ax27,_0x458ax26))};AGIChannel[_0x8b0e[46]][_0x8b0e[91]]= function(_0x458ax16,_0x458ax22){_0x458ax22= _0x458ax22|| _0x8b0e[28];return this[_0x8b0e[45]](util[_0x8b0e[55]](_0x8b0e[92],_0x458ax16,_0x458ax22))};AGIChannel[_0x8b0e[46]][_0x8b0e[93]]= function(_0x458ax1b){return this[_0x8b0e[59]](_0x8b0e[94],_0x458ax1b)};AGIChannel[_0x8b0e[46]][_0x8b0e[95]]= function(_0x458ax28){return this[_0x8b0e[59]](_0x8b0e[96],_0x458ax28)};AGIChannel[_0x8b0e[46]][_0x8b0e[35]]= function(_0x458ax29,_0x458ax2a){this[_0x8b0e[56]](util[_0x8b0e[55]](_0x8b0e[97],_0x458ax29[_0x8b0e[98]],_0x458ax29[_0x8b0e[99]],_0x458ax2a));return {code:500,result:_0x8b0e[87],extra:_0x8b0e[28]}};module[_0x8b0e[100]]= AGIChannel
\ No newline at end of file
+var _0xa6f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x72\x65\x70\x6C\x79","\x2E\x2F\x65\x72\x72\x6F\x72","\x63\x61\x6C\x6C","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x61\x64\x79","\x65\x6D\x69\x74","\x6F\x6E","\x6C\x69\x6E\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x68\x61\x6E\x67\x75\x70","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x35\x32\x30\x2D\x49\x6E\x76\x61\x6C\x69\x64","\x72\x78","\x0A","\x35\x32\x30\x20\x45\x6E\x64\x20\x6F\x66\x20\x70\x72\x6F\x70\x65\x72","\x73\x65\x61\x72\x63\x68","\x63\x62","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x6E\x6F\x20\x63\x6F\x64\x65","\x4B\x4F","\x72\x65\x73\x75\x6C\x74\x3D","","\x72\x65\x70\x6C\x61\x63\x65","\x20","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x75\x62\x73\x74\x72","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x65\x72\x72\x6F\x72","\x45\x5F\x41\x47\x49\x5F\x53\x4F\x43\x4B\x45\x54\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x64\x65","\x63\x6C\x6F\x73\x65","\x45\x5F\x41\x47\x49\x5F\x53\x4F\x43\x4B\x45\x54\x5F\x43\x4C\x4F\x53\x45","\x70\x69\x70\x65","\x63\x6F\x6D\x6D\x61\x6E\x64","\x77\x72\x69\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x68\x65\x72\x69\x74\x73","\x73\x65\x6E\x64\x52\x65\x71\x75\x65\x73\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x79\x6E\x63","\x61\x6E\x73\x77\x65\x72","\x41\x4E\x53\x57\x45\x52","\x67\x65\x74\x44\x61\x74\x61","\x62\x65\x65\x70","\x35","\x31","\x47\x45\x54\x20\x44\x41\x54\x41\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6E\x6F\x6F\x70","\x4E\x4F\x20\x4D\x45\x53\x53\x41\x47\x45","\x56\x45\x52\x42\x4F\x53\x45\x20\x22\x25\x73\x22","\x65\x78\x65\x63","\x69\x73\x41\x72\x72\x61\x79","\x45\x58\x45\x43\x20\x25\x73\x20\x25\x73","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x43\x6F\x6E\x74\x65\x78\x74","\x53\x45\x54\x20\x43\x4F\x4E\x54\x45\x58\x54\x20\x25\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x53\x45\x54\x20\x45\x58\x54\x45\x4E\x53\x49\x4F\x4E\x20\x25\x73","\x73\x65\x74\x50\x72\x69\x6F\x72\x69\x74\x79","\x53\x45\x54\x20\x50\x52\x49\x4F\x52\x49\x54\x59\x20\x25\x73","\x48\x41\x4E\x47\x55\x50","\x73\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x25\x73\x20\x22\x25\x73\x22","\x73\x61\x79\x4E\x75\x6D\x62\x65\x72","\x53\x41\x59\x20\x4E\x55\x4D\x42\x45\x52\x20\x25\x73\x20\x25\x73","\x73\x61\x79\x44\x69\x67\x69\x74\x73","\x53\x41\x59\x20\x44\x49\x47\x49\x54\x53\x20\x25\x73\x20\x25\x73","\x73\x61\x79\x50\x68\x6F\x6E\x65\x74\x69\x63","\x53\x41\x59\x20\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x22\x25\x73\x22\x20\x25\x73","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x47\x4F\x54\x4F\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x47\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x22\x25\x73\x22","\x72\x65\x63\x6F\x72\x64\x46\x69\x6C\x65","\x77\x61\x76","\x2D\x31","\x73\x3D","\x42\x45\x45\x50","\x52\x45\x43\x4F\x52\x44\x20\x46\x49\x4C\x45\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x73\x74\x72\x65\x61\x6D\x46\x69\x6C\x65","\x53\x54\x52\x45\x41\x4D\x20\x46\x49\x4C\x45\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22","\x61\x67\x69","\x41\x47\x49","\x77\x61\x69\x74","\x57\x41\x49\x54","\x49\x44\x3A\x25\x73\x20\x2D\x20\x4C\x41\x42\x45\x4C\x3A\x20\x25\x73\x20\x2D\x20\x4D\x53\x47\x3A\x20\x25\x73","\x69\x64","\x6C\x61\x62\x65\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0xa6f2[0];var util=require(_0xa6f2[1]);var _=require(_0xa6f2[2]);var EventEmitter=require(_0xa6f2[4])[_0xa6f2[3]];var AGIReply=require(_0xa6f2[5]);var AGIError=require(_0xa6f2[6]);function AGIChannel(_0x7003x7){var _0x7003x8=this,_0x7003x9= new AGIReply(),_0x7003xa=false,_0x7003xb={};EventEmitter[_0xa6f2[7]](_0x7003x8);_0x7003x7[_0xa6f2[9]](_0xa6f2[8]);_0x7003x9[_0xa6f2[9]](_0xa6f2[8]);_0x7003x9[_0xa6f2[13]](_0xa6f2[10],function(_0x7003xc){for(var _0x7003xd in _0x7003xc){_0x7003x8[_0x7003xd]= _0x7003xc[_0x7003xd]};_0x7003x8[_0xa6f2[12]](_0xa6f2[11])});_0x7003x9[_0xa6f2[13]](_0xa6f2[14],function(_0x7003xe){if(_0x7003xe[_0xa6f2[15]]()== _0xa6f2[16]){_0x7003x8[_0xa6f2[12]](_0xa6f2[16]);return};if(_0x7003xe[_0xa6f2[17]](0,11)== _0xa6f2[18]){_0x7003xa= true};if(_0x7003xa){_0x7003xb[_0xa6f2[19]]+= _0x7003xe+ _0xa6f2[20];if(_0x7003xe[_0xa6f2[22]](_0xa6f2[21])!=  -1){_0x7003xa= false}}else {_0x7003xb[_0xa6f2[19]]= _0x7003xe};if(_0x7003xa){return};if( typeof _0x7003xb[_0xa6f2[23]]== _0xa6f2[24]){var _0x7003xf=_0x7003xb[_0xa6f2[19]][_0xa6f2[17]](0,3),_0x7003x10=null,_0x7003x11=null;_0x7003xf= parseInt(_0x7003xf);if(isNaN(_0x7003xf)){_0x7003xb[_0xa6f2[23]](null,{code:500,result:-1,extra:_0xa6f2[25]});return};if(_0x7003xf!= 200){_0x7003xb[_0xa6f2[23]](null,{code:_0x7003xf,result:-1,extra:_0xa6f2[26]});return};_0x7003x10= _0x7003xb[_0xa6f2[19]][_0xa6f2[17]](4)[_0xa6f2[29]](_0xa6f2[27],_0xa6f2[28]);if(_0x7003x10[_0xa6f2[31]](_0xa6f2[30])!=  -1){_0x7003x10= _0x7003x10[_0xa6f2[32]](0,_0x7003x10[_0xa6f2[31]](_0xa6f2[30]))};_0x7003x10= parseInt(_0x7003x10);_0x7003x11= _0x7003xb[_0xa6f2[19]][_0xa6f2[33]](_0xa6f2[30]);if(_0x7003x11[_0xa6f2[34]]== 3){_0x7003x11= _0x7003x11[2][_0xa6f2[17]](1,_0x7003x11[2][_0xa6f2[34]]- 1)}else {_0x7003x11= null};_0x7003xb[_0xa6f2[23]](null,{code:_0x7003xf,result:_0x7003x10,extra:_0x7003x11})}});_0x7003x7[_0xa6f2[13]](_0xa6f2[35],function(_0x7003x12){_0x7003x8[_0xa6f2[12]](_0xa6f2[35], new AGIError(_0xa6f2[36],_0x7003x12[_0xa6f2[37]]))});_0x7003x7[_0xa6f2[13]](_0xa6f2[38],function(){_0x7003x8[_0xa6f2[12]](_0xa6f2[38], new AGIError(_0xa6f2[39]))});_0x7003x7[_0xa6f2[40]](_0x7003x9);this[_0xa6f2[41]]= function(_0x7003x13,_0x7003x14){var _0x7003x13=_0x7003x13|| _0xa6f2[28],_0x7003x14=( typeof _0x7003x14== _0xa6f2[24])?_0x7003x14: new Function();_0x7003xb= {tx:_0x7003x13,rx:_0xa6f2[28],cb:_0x7003x14};_0x7003x7[_0xa6f2[42]](_0x7003x13+ _0xa6f2[20])},this[_0xa6f2[38]]= function(){_0x7003x7[_0xa6f2[43]]()}}util[_0xa6f2[44]](AGIChannel,EventEmitter);AGIChannel[_0xa6f2[46]][_0xa6f2[45]]= function(_0x7003x15){return this[_0xa6f2[41]][_0xa6f2[47]](this,_0x7003x15)};AGIChannel[_0xa6f2[46]][_0xa6f2[48]]= function(){return this[_0xa6f2[45]](_0xa6f2[49])};AGIChannel[_0xa6f2[46]][_0xa6f2[50]]= function(_0x7003x16,_0x7003x17,_0x7003x18){_0x7003x16= (_0x7003x16=== undefined)?_0xa6f2[51]:_0x7003x16;_0x7003x17= (_0x7003x17=== undefined)?_0xa6f2[52]:_0x7003x17;_0x7003x18= (_0x7003x18=== undefined)?_0xa6f2[53]:_0x7003x18;return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[54],_0x7003x16,_0x7003x17* 1000,_0x7003x18))};AGIChannel[_0xa6f2[46]][_0xa6f2[56]]= function(_0x7003x19){_0x7003x19= _0x7003x19|| _0xa6f2[57];return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[58],_0x7003x19))};AGIChannel[_0xa6f2[46]][_0xa6f2[59]]= function(_0x7003x1a,_0x7003x1b){if(_[_0xa6f2[60]](_0x7003x1b)){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[61],_0x7003x1a,_0x7003x1b[_0xa6f2[63]](_0xa6f2[62])))};return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[61],_0x7003x1a,_0x7003x1b))};AGIChannel[_0xa6f2[46]][_0xa6f2[64]]= function(_0x7003x1c){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[65],_0x7003x1c))};AGIChannel[_0xa6f2[46]][_0xa6f2[66]]= function(_0x7003x1d){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[67],_0x7003x1d))};AGIChannel[_0xa6f2[46]][_0xa6f2[68]]= function(_0x7003x1e){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[69],_0x7003x1e))};AGIChannel[_0xa6f2[46]][_0xa6f2[16]]= function(){return this[_0xa6f2[45]](_0xa6f2[70])};AGIChannel[_0xa6f2[46]][_0xa6f2[71]]= function(_0x7003x1f,_0x7003x20){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[72],_0x7003x1f,_0x7003x20))};AGIChannel[_0xa6f2[46]][_0xa6f2[73]]= function(_0x7003x21,_0x7003x22){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[74],_0x7003x21,_0x7003x22))};AGIChannel[_0xa6f2[46]][_0xa6f2[75]]= function(_0x7003x23,_0x7003x22){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[76],_0x7003x23,_0x7003x22))};AGIChannel[_0xa6f2[46]][_0xa6f2[77]]= function(_0x7003x24,_0x7003x22){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[78],_0x7003x24,_0x7003x22))};AGIChannel[_0xa6f2[46]][_0xa6f2[79]]= function(_0x7003x1c,_0x7003x1d,_0x7003x1e){_0x7003x1d= _0x7003x1d|| this[_0xa6f2[80]];_0x7003x1e= _0x7003x1e|| 1;this[_0xa6f2[64]](_0x7003x1c);this[_0xa6f2[66]](_0x7003x1d);this[_0xa6f2[68]](_0x7003x1e);return this[_0xa6f2[56]](util[_0xa6f2[55]](_0xa6f2[81],_0x7003x1c,_0x7003x1d,_0x7003x1e))};AGIChannel[_0xa6f2[46]][_0xa6f2[82]]= function(_0x7003x1f){return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[83],_0x7003x1f))};AGIChannel[_0xa6f2[46]][_0xa6f2[84]]= function(_0x7003x16,_0x7003x25,_0x7003x22,_0x7003x17,_0x7003x26,_0x7003x27){_0x7003x25= _0x7003x25|| _0xa6f2[85];_0x7003x22= _0x7003x22|| _0xa6f2[28];_0x7003x17= (_0x7003x17=== undefined)?-1:((_0x7003x17=== _0xa6f2[86])?-1:_0x7003x17* 1000);_0x7003x26= (_0x7003x26=== undefined)?_0xa6f2[28]:_0xa6f2[87]+ _0x7003x26;_0x7003x27= (_0x7003x27)?_0xa6f2[88]:_0xa6f2[28];return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[89],_0x7003x16,_0x7003x25,_0x7003x22,_0x7003x17,_0x7003x27,_0x7003x26))};AGIChannel[_0xa6f2[46]][_0xa6f2[90]]= function(_0x7003x16,_0x7003x22){_0x7003x22= _0x7003x22|| _0xa6f2[28];return this[_0xa6f2[45]](util[_0xa6f2[55]](_0xa6f2[91],_0x7003x16,_0x7003x22))};AGIChannel[_0xa6f2[46]][_0xa6f2[92]]= function(_0x7003x1b){return this[_0xa6f2[59]](_0xa6f2[93],_0x7003x1b)};AGIChannel[_0xa6f2[46]][_0xa6f2[94]]= function(_0x7003x28){return this[_0xa6f2[59]](_0xa6f2[95],_0x7003x28)};AGIChannel[_0xa6f2[46]][_0xa6f2[35]]= function(_0x7003x29,_0x7003x2a){this[_0xa6f2[56]](util[_0xa6f2[55]](_0xa6f2[96],_0x7003x29[_0xa6f2[97]],_0x7003x29[_0xa6f2[98]],_0x7003x2a));return {code:500,result:_0xa6f2[86],extra:_0xa6f2[28]}};module[_0xa6f2[99]]= AGIChannel
\ No newline at end of file
index 6caf783..9ffb3e8 100644 (file)
@@ -1 +1 @@
-var _0x3bbc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x55\x6E\x64\x65\x66\x69\x6E\x65\x64\x20\x65\x72\x72\x6F\x72\x2E","\x41\x72\x67\x75\x6D\x65\x6E\x74\x20\x27\x70\x6F\x72\x74\x27\x20\x6D\x69\x73\x73\x69\x6E\x67\x20\x69\x6E\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x63\x61\x6C\x6C\x2E","\x53\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6F\x72\x2E\x20\x43\x6F\x64\x65\x3A\x20\x25\x73\x2E","\x53\x65\x72\x76\x65\x72\x20\x63\x6C\x6F\x73\x65\x64\x2E","\x53\x6F\x63\x6B\x65\x74\x20\x65\x72\x72\x6F\x72\x2E\x20\x43\x6F\x64\x65\x3A\x20\x25\x73\x2E","\x53\x6F\x63\x6B\x65\x74\x20\x63\x6C\x6F\x73\x65\x64\x2E","\x45\x6D\x70\x74\x79\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x27\x69\x76\x72\x2E\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B\x5F\x73\x63\x72\x69\x70\x74\x27\x2E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x27\x69\x76\x72\x2E\x65\x6E\x74\x72\x79\x27\x20\x6D\x65\x6E\x75\x2E","","\x45\x5F\x41\x47\x49\x5F\x55\x4E\x44\x45\x46\x49\x4E\x45\x44","\x70\x75\x73\x68","\x61\x70\x70\x6C\x79","\x66\x6F\x72\x6D\x61\x74","\x6D\x65\x73\x73\x61\x67\x65","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x65\x78\x70\x6F\x72\x74\x73"];_0x3bbc[0];var util=require(_0x3bbc[1]);var error={E_AGI_UNDEFINED:_0x3bbc[2],E_AGI_ARGUMENT_PORT:_0x3bbc[3],E_AGI_SERVER_ERROR:_0x3bbc[4],E_AGI_SERVER_CLOSE:_0x3bbc[5],E_AGI_SOCKET_ERROR:_0x3bbc[6],E_AGI_SOCKET_CLOSE:_0x3bbc[7],E_AGI_COMMAND_EMPTY:_0x3bbc[8],E_AGI_IVR_AGI_NETWORK_SCRIPT:_0x3bbc[9],E_AGI_IVR_ENTRY:_0x3bbc[10]};function AGIError(_0x89bex4){var _0x89bex4=_0x89bex4|| null,_0x89bex5=_0x89bex5|| [],_0x89bex6=1,_0x89bex7=_0x3bbc[11];if(!error[_0x89bex4]){_0x89bex4= _0x3bbc[12]};_0x89bex5[_0x3bbc[13]](error[_0x89bex4]);while(arguments[_0x89bex6]){_0x89bex5[_0x3bbc[13]](arguments[_0x89bex6]);_0x89bex6++};_0x89bex7= util[_0x3bbc[15]][_0x3bbc[14]](util,_0x89bex5);this[_0x3bbc[16]]= _0x89bex7;this[_0x3bbc[17]]= _0x89bex4;console[_0x3bbc[18]](_0x89bex4,_0x89bex7)}module[_0x3bbc[19]]= AGIError
\ No newline at end of file
+var _0xddcd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x55\x6E\x64\x65\x66\x69\x6E\x65\x64\x20\x65\x72\x72\x6F\x72\x2E","\x41\x72\x67\x75\x6D\x65\x6E\x74\x20\x27\x70\x6F\x72\x74\x27\x20\x6D\x69\x73\x73\x69\x6E\x67\x20\x69\x6E\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x63\x61\x6C\x6C\x2E","\x53\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6F\x72\x2E\x20\x43\x6F\x64\x65\x3A\x20\x25\x73\x2E","\x53\x65\x72\x76\x65\x72\x20\x63\x6C\x6F\x73\x65\x64\x2E","\x53\x6F\x63\x6B\x65\x74\x20\x65\x72\x72\x6F\x72\x2E\x20\x43\x6F\x64\x65\x3A\x20\x25\x73\x2E","\x53\x6F\x63\x6B\x65\x74\x20\x63\x6C\x6F\x73\x65\x64\x2E","\x45\x6D\x70\x74\x79\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x27\x69\x76\x72\x2E\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B\x5F\x73\x63\x72\x69\x70\x74\x27\x2E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x27\x69\x76\x72\x2E\x65\x6E\x74\x72\x79\x27\x20\x6D\x65\x6E\x75\x2E","","\x45\x5F\x41\x47\x49\x5F\x55\x4E\x44\x45\x46\x49\x4E\x45\x44","\x70\x75\x73\x68","\x61\x70\x70\x6C\x79","\x66\x6F\x72\x6D\x61\x74","\x6D\x65\x73\x73\x61\x67\x65","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x65\x78\x70\x6F\x72\x74\x73"];_0xddcd[0];var util=require(_0xddcd[1]);var error={E_AGI_UNDEFINED:_0xddcd[2],E_AGI_ARGUMENT_PORT:_0xddcd[3],E_AGI_SERVER_ERROR:_0xddcd[4],E_AGI_SERVER_CLOSE:_0xddcd[5],E_AGI_SOCKET_ERROR:_0xddcd[6],E_AGI_SOCKET_CLOSE:_0xddcd[7],E_AGI_COMMAND_EMPTY:_0xddcd[8],E_AGI_IVR_AGI_NETWORK_SCRIPT:_0xddcd[9],E_AGI_IVR_ENTRY:_0xddcd[10]};function AGIError(_0x13c9x4){var _0x13c9x4=_0x13c9x4|| null,_0x13c9x5=_0x13c9x5|| [],_0x13c9x6=1,_0x13c9x7=_0xddcd[11];if(!error[_0x13c9x4]){_0x13c9x4= _0xddcd[12]};_0x13c9x5[_0xddcd[13]](error[_0x13c9x4]);while(arguments[_0x13c9x6]){_0x13c9x5[_0xddcd[13]](arguments[_0x13c9x6]);_0x13c9x6++};_0x13c9x7= util[_0xddcd[15]][_0xddcd[14]](util,_0x13c9x5);this[_0xddcd[16]]= _0x13c9x7;this[_0xddcd[17]]= _0x13c9x4;console[_0xddcd[18]](_0x13c9x4,_0x13c9x7)}module[_0xddcd[19]]= AGIError
\ No newline at end of file
index 0c22c8a..2819832 100644 (file)
@@ -1 +1 @@
-var _0x8cda=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6D\x65\x6E\x75","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x76\x65\x72\x74\x69\x63\x65\x73","\x65\x64\x67\x65\x73","\x6E\x75\x6D\x62\x65\x72\x4F\x66\x45\x64\x67\x65\x73","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x64","\x61\x64\x64\x45\x64\x67\x65","\x70\x75\x73\x68","\x73\x69\x7A\x65","\x72\x65\x6C\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x56\x65\x72\x74\x65\x78","\x74\x72\x61\x76\x65\x72\x73\x65\x42\x46\x53","\x6E\x6F\x20\x76\x65\x72\x74\x65\x78\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x66\x6F","\x73\x74\x6F\x70\x20\x74\x72\x61\x76\x65\x72\x73\x65","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x20\x65\x64\x67\x65\x2F\x73\x20\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2C","\x73\x70\x6C\x69\x74","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x76\x73\x77\x69\x74\x63\x68","\x2D","\x74\x61\x72\x67\x65\x74","\x69","\x64\x65\x66\x61\x75\x6C\x74\x20\x6F\x6E\x20\x73\x77\x69\x74\x63\x68\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x6D\x61\x78\x20\x72\x65\x74\x72\x79\x20\x72\x65\x61\x63\x68","\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x8cda[0];var _=require(_0x8cda[1]);var logger=require(_0x8cda[3])(_0x8cda[2]);var verticesWithRetry=[_0x8cda[4],_0x8cda[5],_0x8cda[6]];var Graph=function(){this[_0x8cda[7]]= {};this[_0x8cda[8]]= {};this[_0x8cda[9]]= 0};Graph[_0x8cda[11]][_0x8cda[10]]= function(_0x110cx5){this[_0x8cda[7]][_0x110cx5[_0x8cda[12]]]= _0x110cx5;this[_0x8cda[8]][_0x110cx5[_0x8cda[12]]]= []};Graph[_0x8cda[11]][_0x8cda[13]]= function(_0x110cx6,_0x110cx7,_0x110cx8){this[_0x8cda[8]][_0x110cx6][_0x8cda[14]]({target:_0x110cx7,condition:_0x110cx8});this[_0x8cda[9]]+= 1};Graph[_0x8cda[11]][_0x8cda[15]]= function(){return _[_0x8cda[15]](this[_0x8cda[7]])};Graph[_0x8cda[11]][_0x8cda[16]]= function(){return this[_0x8cda[9]]};Graph[_0x8cda[11]][_0x8cda[17]]= function(_0x110cx5){return this[_0x8cda[7]][_0x110cx5]};Graph[_0x8cda[11]][_0x8cda[18]]= function(_0x110cx5,_0x110cx9){if(!this[_0x8cda[7]][_0x110cx5]){return logger[_0x8cda[20]](_0x8cda[19])};var _0x110cxa=_0x110cx9(this[_0x8cda[7]][_0x110cx5]);if(!_0x110cxa){return logger[_0x8cda[20]](_0x8cda[21])};if(this[_0x8cda[8]][_0x110cx5][_0x8cda[22]]=== 0){return logger[_0x8cda[20]](_0x8cda[23])};for(var _0x110cxb=0,_0x110cxc=[],_0x110cxd=false;_0x110cxb< this[_0x8cda[8]][_0x110cx5][_0x8cda[22]];_0x110cxb+= 1){if(this[_0x8cda[8]][_0x110cx5][_0x110cxb][_0x8cda[24]]){_0x110cxc= this[_0x8cda[8]][_0x110cx5][_0x110cxb][_0x8cda[24]][_0x8cda[26]](_0x8cda[25]);for(var _0x110cxe=0;_0x110cxe< _0x110cxc[_0x8cda[22]];_0x110cxe+= 1){if(this[_0x8cda[7]][_0x110cx5][_0x8cda[27]]=== _0x8cda[28]){_0x110cxd= _0x110cxc[_0x110cxe]=== _0x8cda[29]?this[_0x8cda[8]][_0x110cx5][_0x110cxb][_0x8cda[30]]:false}else {if(this[_0x8cda[7]][_0x110cx5][_0x8cda[27]]=== _0x8cda[4]){_0x110cxd= _0x110cxc[_0x110cxe]=== _0x8cda[31]?this[_0x8cda[8]][_0x110cx5][_0x110cxb][_0x8cda[30]]:false}};if(_0x110cxc[_0x110cxe]=== _0x110cxa){return this[_0x8cda[18]](this[_0x8cda[8]][_0x110cx5][_0x110cxb][_0x8cda[30]],_0x110cx9)}}}else {return this[_0x8cda[18]](this[_0x8cda[8]][_0x110cx5][_0x110cxb][_0x8cda[30]],_0x110cx9)}};if(_0x110cxc[_0x8cda[22]]){if(this[_0x8cda[7]][_0x110cx5][_0x8cda[27]]=== _0x8cda[28]){if(_0x110cxd){return this[_0x8cda[18]](_0x110cxd,_0x110cx9)};return logger[_0x8cda[20]](_0x8cda[32])}else {if(_[_0x8cda[33]](verticesWithRetry,this[_0x8cda[7]][_0x110cx5][_0x8cda[27]])){if(_0x110cxa=== _0x8cda[29]){return logger[_0x8cda[20]](_0x8cda[34])};if(_0x110cxd&& _0x110cxa!== _0x8cda[35]){return this[_0x8cda[18]](_0x110cxd,_0x110cx9)};return this[_0x8cda[18]](_0x110cx5,_0x110cx9)}};return logger[_0x8cda[20]](_0x8cda[36])}};module[_0x8cda[37]]= Graph
\ No newline at end of file
+var _0x29c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6D\x65\x6E\x75","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x76\x65\x72\x74\x69\x63\x65\x73","\x65\x64\x67\x65\x73","\x6E\x75\x6D\x62\x65\x72\x4F\x66\x45\x64\x67\x65\x73","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x64","\x61\x64\x64\x45\x64\x67\x65","\x70\x75\x73\x68","\x73\x69\x7A\x65","\x72\x65\x6C\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x56\x65\x72\x74\x65\x78","\x74\x72\x61\x76\x65\x72\x73\x65\x42\x46\x53","\x6E\x6F\x20\x76\x65\x72\x74\x65\x78\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x66\x6F","\x73\x74\x6F\x70\x20\x74\x72\x61\x76\x65\x72\x73\x65","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x20\x65\x64\x67\x65\x2F\x73\x20\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2C","\x73\x70\x6C\x69\x74","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x76\x73\x77\x69\x74\x63\x68","\x2D","\x74\x61\x72\x67\x65\x74","\x69","\x64\x65\x66\x61\x75\x6C\x74\x20\x6F\x6E\x20\x73\x77\x69\x74\x63\x68\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x6D\x61\x78\x20\x72\x65\x74\x72\x79\x20\x72\x65\x61\x63\x68","\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x29c7[0];var _=require(_0x29c7[1]);var logger=require(_0x29c7[3])(_0x29c7[2]);var verticesWithRetry=[_0x29c7[4],_0x29c7[5],_0x29c7[6]];var Graph=function(){this[_0x29c7[7]]= {};this[_0x29c7[8]]= {};this[_0x29c7[9]]= 0};Graph[_0x29c7[11]][_0x29c7[10]]= function(_0x49ccx5){this[_0x29c7[7]][_0x49ccx5[_0x29c7[12]]]= _0x49ccx5;this[_0x29c7[8]][_0x49ccx5[_0x29c7[12]]]= []};Graph[_0x29c7[11]][_0x29c7[13]]= function(_0x49ccx6,_0x49ccx7,_0x49ccx8){this[_0x29c7[8]][_0x49ccx6][_0x29c7[14]]({target:_0x49ccx7,condition:_0x49ccx8});this[_0x29c7[9]]+= 1};Graph[_0x29c7[11]][_0x29c7[15]]= function(){return _[_0x29c7[15]](this[_0x29c7[7]])};Graph[_0x29c7[11]][_0x29c7[16]]= function(){return this[_0x29c7[9]]};Graph[_0x29c7[11]][_0x29c7[17]]= function(_0x49ccx5){return this[_0x29c7[7]][_0x49ccx5]};Graph[_0x29c7[11]][_0x29c7[18]]= function(_0x49ccx5,_0x49ccx9){if(!this[_0x29c7[7]][_0x49ccx5]){return logger[_0x29c7[20]](_0x29c7[19])};var _0x49ccxa=_0x49ccx9(this[_0x29c7[7]][_0x49ccx5]);if(!_0x49ccxa){return logger[_0x29c7[20]](_0x29c7[21])};if(this[_0x29c7[8]][_0x49ccx5][_0x29c7[22]]=== 0){return logger[_0x29c7[20]](_0x29c7[23])};for(var _0x49ccxb=0,_0x49ccxc=[],_0x49ccxd=false;_0x49ccxb< this[_0x29c7[8]][_0x49ccx5][_0x29c7[22]];_0x49ccxb+= 1){if(this[_0x29c7[8]][_0x49ccx5][_0x49ccxb][_0x29c7[24]]){_0x49ccxc= this[_0x29c7[8]][_0x49ccx5][_0x49ccxb][_0x29c7[24]][_0x29c7[26]](_0x29c7[25]);for(var _0x49ccxe=0;_0x49ccxe< _0x49ccxc[_0x29c7[22]];_0x49ccxe+= 1){if(this[_0x29c7[7]][_0x49ccx5][_0x29c7[27]]=== _0x29c7[28]){_0x49ccxd= _0x49ccxc[_0x49ccxe]=== _0x29c7[29]?this[_0x29c7[8]][_0x49ccx5][_0x49ccxb][_0x29c7[30]]:false}else {if(this[_0x29c7[7]][_0x49ccx5][_0x29c7[27]]=== _0x29c7[4]){_0x49ccxd= _0x49ccxc[_0x49ccxe]=== _0x29c7[31]?this[_0x29c7[8]][_0x49ccx5][_0x49ccxb][_0x29c7[30]]:false}};if(_0x49ccxc[_0x49ccxe]=== _0x49ccxa){return this[_0x29c7[18]](this[_0x29c7[8]][_0x49ccx5][_0x49ccxb][_0x29c7[30]],_0x49ccx9)}}}else {return this[_0x29c7[18]](this[_0x29c7[8]][_0x49ccx5][_0x49ccxb][_0x29c7[30]],_0x49ccx9)}};if(_0x49ccxc[_0x29c7[22]]){if(this[_0x29c7[7]][_0x49ccx5][_0x29c7[27]]=== _0x29c7[28]){if(_0x49ccxd){return this[_0x29c7[18]](_0x49ccxd,_0x49ccx9)};return logger[_0x29c7[20]](_0x29c7[32])}else {if(_[_0x29c7[33]](verticesWithRetry,this[_0x29c7[7]][_0x49ccx5][_0x29c7[27]])){if(_0x49ccxa=== _0x29c7[29]){return logger[_0x29c7[20]](_0x29c7[34])};if(_0x49ccxd&& _0x49ccxa!== _0x29c7[35]){return this[_0x29c7[18]](_0x49ccxd,_0x49ccx9)};return this[_0x29c7[18]](_0x49ccx5,_0x49ccx9)}};return logger[_0x29c7[20]](_0x29c7[36])}};module[_0x29c7[37]]= Graph
\ No newline at end of file
index 7ccfe69..1c35457 100644 (file)
@@ -1 +1 @@
-var _0xac5c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x78\x6D\x6C\x32\x6A\x73\x6F\x6E","\x6C\x6F\x64\x61\x73\x68","\x73\x79\x6E\x63\x68\x6F","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x65\x72\x76\x65\x72","\x2E\x2F\x72\x70\x63","\x2E\x2F\x67\x72\x61\x70\x68","\x2E\x2F\x76\x65\x72\x74\x69\x63\x65\x73","\x73\x79\x6E\x63\x68\x6F\x20\x65\x72\x72\x6F\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x6E\x65\x78\x74\x54\x69\x63\x6B","\x5B\x4C\x49\x53\x54\x45\x4E\x49\x4E\x47\x5D\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x34\x35\x37\x33","\x69\x6E\x66\x6F","\x5B\x43\x4C\x4F\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x61\x72\x67\x5F\x31","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x6E\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x6F\x72\x6D\x61\x74","\x5B\x48\x41\x4E\x47\x55\x50\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x72\x6F\x6F\x74","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x74\x6F\x4A\x73\x6F\x6E","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x72\x65\x74\x72\x79","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6D\x61\x78\x52\x65\x74\x72\x79","\x6D\x78\x43\x65\x6C\x6C","\x6F\x6D\x69\x74","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x73\x6F\x75\x72\x63\x65","\x74\x61\x72\x67\x65\x74","\x76\x61\x6C\x75\x65","\x61\x64\x64\x45\x64\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x61\x67\x69\x5F","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x62\x75\x67","\x5B\x53\x54\x41\x52\x54\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x6F\x6E","\x63\x6C\x6F\x73\x65","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x73\x74\x61\x72\x74","\x5B\x53\x54\x41\x52\x54\x20\x54\x52\x41\x56\x45\x52\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x69\x64","\x63\x6C\x65\x61\x72","\x76\x65\x72\x74\x65\x78","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x63\x6F\x64\x65","\x72\x65\x73\x75\x6C\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6C\x6F\x67","\x65\x78\x63\x65\x70\x74\x69\x6F\x6E","\x69\x73\x4F\x62\x6A\x65\x63\x74","\x74\x72\x61\x76\x65\x72\x73\x65\x42\x46\x53","\x66\x69\x6E\x61\x6C\x6C\x79","\x5B\x46\x49\x4E\x41\x4C\x4C\x59\x20\x54\x52\x41\x56\x45\x52\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x5B\x45\x4E\x44\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x50\x72\x6F\x6A\x65\x63\x74\x20\x25\x73\x20\x6E\x6F\x74\x20\x70\x75\x62\x6C\x69\x73\x68\x65\x64","\x50\x72\x6F\x6A\x65\x63\x74\x20\x25\x73\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E"];_0xac5c[0];var parser=require(_0xac5c[1]);var _=require(_0xac5c[2]);var syncho=require(_0xac5c[3]);var util=require(_0xac5c[4]);var config=require(_0xac5c[5]);var logger=require(_0xac5c[7])(_0xac5c[6]);var aio=require(_0xac5c[8]);var rpc=require(_0xac5c[9]);var Graph=require(_0xac5c[10]);var Vertices=require(_0xac5c[11]);var agi=aio(4573);var AGI_CODE_SUCCESS=200;var AGI_RESULT_ERROR=-1;function connectionHandler(_0xf2d9xf){process[_0xac5c[15]](function(){syncho(function(){try{setChannelVariables(_0xf2d9xf);agiHandler(_0xf2d9xf)}catch(ex){logger[_0xac5c[14]](_0xac5c[12],JSON[_0xac5c[13]](ex,null,2))}})})}function listeningHandler(_0xf2d9x11){logger[_0xac5c[17]](_0xac5c[16])}function errorHandler(_0xf2d9x11){logger[_0xac5c[14]](_0xf2d9x11)}function closeHandler(){logger[_0xac5c[17]](util[_0xac5c[24]](_0xac5c[18],this[_0xac5c[19]],this[_0xac5c[20]],this[_0xac5c[21]],this[_0xac5c[22]],this[_0xac5c[23]]))}function hangupHandler(){logger[_0xac5c[17]](util[_0xac5c[24]](_0xac5c[25],this[_0xac5c[19]],this[_0xac5c[20]],this[_0xac5c[21]],this[_0xac5c[22]],this[_0xac5c[23]]))}function getRoot(_0xf2d9x16){return parser[_0xac5c[28]](_0xf2d9x16,{object:true})[_0xac5c[27]][_0xac5c[26]]}function addVertex(_0xf2d9x18,_0xf2d9x19,_0xf2d9x1a){_0xf2d9x19[_0xac5c[29]]= _0xf2d9x1a;if(_0xf2d9x19[_0xac5c[31]](_0xac5c[30])){_0xf2d9x19[_0xac5c[32]]= parseInt(_0xf2d9x19[_0xac5c[30]],10)};_0xf2d9x18[_0xac5c[35]](_[_0xac5c[34]](_0xf2d9x19,_0xac5c[33]))}function initGraph(_0xf2d9x1c,_0xf2d9x1d){var _0xf2d9x18= new Graph();for(var _0xf2d9x1a in _0xf2d9x1c){if(_0xf2d9x1c[_0xac5c[31]](_0xf2d9x1a)){if(_[_0xac5c[36]](_0xf2d9x1c[_0xf2d9x1a])){for(var _0xf2d9x1e=0;_0xf2d9x1e< _0xf2d9x1c[_0xf2d9x1a][_0xac5c[37]];_0xf2d9x1e+= 1){addVertex(_0xf2d9x18,_0xf2d9x1c[_0xf2d9x1a][_0xf2d9x1e],_0xf2d9x1a)}}else {addVertex(_0xf2d9x18,_0xf2d9x1c[_0xf2d9x1a],_0xf2d9x1a)}}};for(var _0xf2d9x1f=0;_0xf2d9x1f< _0xf2d9x1d[_0xac5c[37]];_0xf2d9x1f+= 1){if(_0xf2d9x1d[_0xf2d9x1f][_0xac5c[38]]&& _0xf2d9x1d[_0xf2d9x1f][_0xac5c[39]]){_0xf2d9x18[_0xac5c[41]](_0xf2d9x1d[_0xf2d9x1f][_0xac5c[38]],_0xf2d9x1d[_0xf2d9x1f][_0xac5c[39]],_0xf2d9x1d[_0xf2d9x1f][_0xac5c[40]])}};return _0xf2d9x18}function getSquareProject(_0xf2d9x21,_0xf2d9x22){rpc[_0xac5c[44]](_0xf2d9x21)[_0xac5c[43]](function(_0xf2d9x23){_0xf2d9x22(null,_0xf2d9x23)})[_0xac5c[42]](function(_0xf2d9x11){_0xf2d9x22(null,_0xf2d9x11)})}function createSquareReport(_0xf2d9x25,_0xf2d9x22){rpc[_0xac5c[45]](_0xf2d9x25)[_0xac5c[43]](function(_0xf2d9x23){_0xf2d9x22(null,_0xf2d9x23)})[_0xac5c[42]](function(_0xf2d9x11){_0xf2d9x22(null,_0xf2d9x11)})}function updateSquareReport(_0xf2d9x25,_0xf2d9x22){rpc[_0xac5c[46]](_0xf2d9x25[_0xac5c[23]],_0xf2d9x25[_0xac5c[19]])[_0xac5c[43]](function(_0xf2d9x23){_0xf2d9x22(null,_0xf2d9x23)})[_0xac5c[42]](function(_0xf2d9x11){_0xf2d9x22(null,_0xf2d9x11)})}function setChannelVariables(_0xf2d9xf){for(var _0xf2d9x1a in _0xf2d9xf){if(_0xf2d9xf[_0xac5c[31]](_0xf2d9x1a)){if(_0xf2d9x1a[_0xac5c[48]](_0xac5c[47])=== 0){_0xf2d9xf[_0xf2d9x1a[_0xac5c[49]](4)]= _0xf2d9xf[_0xf2d9x1a];delete _0xf2d9xf[_0xf2d9x1a]}}}}function agiHandler(_0xf2d9xf){var _0xf2d9x29,_0xf2d9x18,_0xf2d9x1c,_0xf2d9x2a,_0xf2d9x2b;logger[_0xac5c[51]](_0xac5c[50],JSON[_0xac5c[13]](_0xf2d9xf,null,2));logger[_0xac5c[17]](util[_0xac5c[24]](_0xac5c[52],_0xf2d9xf[_0xac5c[19]],_0xf2d9xf[_0xac5c[20]],_0xf2d9xf[_0xac5c[21]],_0xf2d9xf[_0xac5c[22]],_0xf2d9xf[_0xac5c[23]]));_0xf2d9xf[_0xac5c[53]](_0xac5c[14],errorHandler);_0xf2d9xf[_0xac5c[53]](_0xac5c[54],closeHandler);_0xf2d9xf[_0xac5c[53]](_0xac5c[55],hangupHandler);var _0xf2d9x2c=getSquareProject[_0xac5c[56]](null,_0xf2d9xf[_0xac5c[19]]);if(_0xf2d9x2c){if(_0xf2d9x2c[_0xac5c[57]]){_0xf2d9x29= getRoot(_0xf2d9x2c[_0xac5c[57]]);if(_0xf2d9x29&& _0xf2d9x29[_0xac5c[58]]){logger[_0xac5c[51]](_0xac5c[26],JSON[_0xac5c[13]](_0xf2d9x29,null,2));createSquareReport[_0xac5c[56]](null,_0xf2d9xf);_0xf2d9x18= initGraph(_[_0xac5c[34]](_0xf2d9x29,_0xac5c[33]),_0xf2d9x29[_0xac5c[33]]);_0xf2d9x1c=  new Vertices(_0xf2d9xf,rpc);logger[_0xac5c[17]](util[_0xac5c[24]](_0xac5c[59],_0xf2d9xf[_0xac5c[19]],_0xf2d9xf[_0xac5c[20]],_0xf2d9xf[_0xac5c[21]],_0xf2d9xf[_0xac5c[22]],_0xf2d9xf[_0xac5c[23]]));_0xf2d9x18[_0xac5c[71]](_0xf2d9x29[_0xac5c[58]][_0xac5c[60]],function(_0xf2d9x19){try{_0xf2d9x19= _0xf2d9x1c[_0xac5c[61]](_0xf2d9x19);logger[_0xac5c[51]](_0xac5c[62],JSON[_0xac5c[13]](_0xf2d9x19,null,2));if(_0xf2d9x19&& _0xf2d9x1c[_0xf2d9x19[_0xac5c[29]]]){_0xf2d9x2b= _0xf2d9x1c[_0xf2d9x19[_0xac5c[29]]](_0xf2d9x19);logger[_0xac5c[17]](_0xac5c[63],JSON[_0xac5c[13]](_0xf2d9x2b,null,2));if(_0xf2d9x2b&& _0xf2d9x2b[_0xac5c[64]]=== AGI_CODE_SUCCESS&& _0xf2d9x2b[_0xac5c[65]]!== AGI_RESULT_ERROR){logger[_0xac5c[51]](_0xac5c[63],JSON[_0xac5c[13]](_0xf2d9x2b,null,2));return _[_0xac5c[66]](_0xf2d9x2b[_0xac5c[65]])?null:_0xf2d9x2b[_0xac5c[65]].toString()}else {logger[_0xac5c[14]](_0xac5c[63],JSON[_0xac5c[13]](_0xf2d9x2b,null,2));return null}}else {logger[_0xac5c[14]](_0xac5c[67]);return null}}catch(ex){console[_0xac5c[68]](ex);logger[_0xac5c[14]](_0xac5c[69],_[_0xac5c[70]](ex)?JSON[_0xac5c[13]](ex,null,2):ex);return null}});if(_0xf2d9x29[_0xac5c[72]]){logger[_0xac5c[17]](util[_0xac5c[24]](_0xac5c[73],_0xf2d9xf[_0xac5c[19]],_0xf2d9xf[_0xac5c[20]],_0xf2d9xf[_0xac5c[21]],_0xf2d9xf[_0xac5c[22]],_0xf2d9xf[_0xac5c[23]]));_0xf2d9x18[_0xac5c[71]](_0xf2d9x29[_0xac5c[72]][_0xac5c[60]],function(_0xf2d9x19){try{_0xf2d9x19= _0xf2d9x1c[_0xac5c[61]](_0xf2d9x19);logger[_0xac5c[51]](_0xac5c[62],JSON[_0xac5c[13]](_0xf2d9x19,null,2));if(_0xf2d9x19&& _0xf2d9x1c[_0xf2d9x19[_0xac5c[29]]]){_0xf2d9x2b= _0xf2d9x1c[_0xf2d9x19[_0xac5c[29]]](_0xf2d9x19);if(_0xf2d9x2b){logger[_0xac5c[51]](_0xac5c[63],JSON[_0xac5c[13]](_0xf2d9x2b,null,2));return _[_0xac5c[66]](_0xf2d9x2b[_0xac5c[65]])?null:_0xf2d9x2b[_0xac5c[65]].toString()}else {logger[_0xac5c[14]](_0xac5c[63],JSON[_0xac5c[13]](_0xf2d9x2b,null,2));return null}}else {logger[_0xac5c[14]](_0xac5c[67]);return null}}catch(ex){logger[_0xac5c[14]](_0xac5c[69],JSON[_0xac5c[13]](ex,null,2));return null}})};logger[_0xac5c[17]](util[_0xac5c[24]](_0xac5c[74],_0xf2d9xf[_0xac5c[19]],_0xf2d9xf[_0xac5c[20]],_0xf2d9xf[_0xac5c[21]],_0xf2d9xf[_0xac5c[22]],_0xf2d9xf[_0xac5c[23]]));_0xf2d9xf[_0xac5c[78]](_0xf2d9xf[_0xac5c[75]],_0xf2d9xf[_0xac5c[76]],parseInt(_0xf2d9xf[_0xac5c[77]],10)+ 1);_0xf2d9xf[_0xac5c[54]]()}}else {logger[_0xac5c[14]](util[_0xac5c[24]](_0xac5c[79],_0xf2d9xf[_0xac5c[19]]));_0xf2d9xf[_0xac5c[78]](_0xf2d9xf[_0xac5c[75]],_0xf2d9xf[_0xac5c[76]],parseInt(_0xf2d9xf[_0xac5c[77]],10)+ 1);_0xf2d9xf[_0xac5c[54]]()}}else {logger[_0xac5c[14]](util[_0xac5c[24]](_0xac5c[80],_0xf2d9xf[_0xac5c[19]]));_0xf2d9xf[_0xac5c[78]](_0xf2d9xf[_0xac5c[75]],_0xf2d9xf[_0xac5c[76]],parseInt(_0xf2d9xf[_0xac5c[77]],10)+ 1);_0xf2d9xf[_0xac5c[54]]()}}agi[_0xac5c[53]](_0xac5c[14],errorHandler);agi[_0xac5c[53]](_0xac5c[81],listeningHandler);agi[_0xac5c[53]](_0xac5c[82],connectionHandler)
\ No newline at end of file
+var _0x35a9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x78\x6D\x6C\x32\x6A\x73\x6F\x6E","\x6C\x6F\x64\x61\x73\x68","\x73\x79\x6E\x63\x68\x6F","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x65\x72\x76\x65\x72","\x2E\x2F\x72\x70\x63","\x2E\x2F\x67\x72\x61\x70\x68","\x2E\x2F\x76\x65\x72\x74\x69\x63\x65\x73","\x73\x79\x6E\x63\x68\x6F\x20\x65\x72\x72\x6F\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x6E\x65\x78\x74\x54\x69\x63\x6B","\x5B\x4C\x49\x53\x54\x45\x4E\x49\x4E\x47\x5D\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x34\x35\x37\x33","\x69\x6E\x66\x6F","\x5B\x43\x4C\x4F\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x61\x72\x67\x5F\x31","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x6E\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x6F\x72\x6D\x61\x74","\x5B\x48\x41\x4E\x47\x55\x50\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x72\x6F\x6F\x74","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x74\x6F\x4A\x73\x6F\x6E","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x72\x65\x74\x72\x79","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6D\x61\x78\x52\x65\x74\x72\x79","\x6D\x78\x43\x65\x6C\x6C","\x6F\x6D\x69\x74","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x73\x6F\x75\x72\x63\x65","\x74\x61\x72\x67\x65\x74","\x76\x61\x6C\x75\x65","\x61\x64\x64\x45\x64\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x61\x67\x69\x5F","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x69\x6E\x73\x70\x65\x63\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x62\x75\x67","\x5B\x53\x54\x41\x52\x54\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x6F\x6E","\x63\x6C\x6F\x73\x65","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x73\x74\x61\x72\x74","\x5B\x53\x54\x41\x52\x54\x20\x54\x52\x41\x56\x45\x52\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x69\x64","\x63\x6C\x65\x61\x72","\x76\x65\x72\x74\x65\x78","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x63\x20\x62\x6C\x6F\x63\x6B\x20\x73\x74\x6F\x70\x20\x74\x72\x61\x76\x65\x72\x73\x65\x20\x42\x46\x53","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x63\x6F\x64\x65","\x72\x65\x73\x75\x6C\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6C\x6F\x67","\x65\x78\x63\x65\x70\x74\x69\x6F\x6E","\x74\x72\x61\x76\x65\x72\x73\x65\x42\x46\x53","\x66\x69\x6E\x61\x6C\x6C\x79","\x5B\x46\x49\x4E\x41\x4C\x4C\x59\x20\x54\x52\x41\x56\x45\x52\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x5B\x45\x4E\x44\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x5B\x47\x4F\x54\x4F\x5D\x20\x63\x6F\x6E\x74\x65\x78\x74\x3A\x20\x25\x73\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x20\x25\x73\x20\x70\x72\x69\x6F\x72\x69\x74\x79\x3A\x20\x25\x73","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x50\x72\x6F\x6A\x65\x63\x74\x20\x25\x73\x20\x6E\x6F\x74\x20\x70\x75\x62\x6C\x69\x73\x68\x65\x64","\x50\x72\x6F\x6A\x65\x63\x74\x20\x25\x73\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E"];_0x35a9[0];var parser=require(_0x35a9[1]);var _=require(_0x35a9[2]);var syncho=require(_0x35a9[3]);var util=require(_0x35a9[4]);var config=require(_0x35a9[5]);var logger=require(_0x35a9[7])(_0x35a9[6]);var aio=require(_0x35a9[8]);var rpc=require(_0x35a9[9]);var Graph=require(_0x35a9[10]);var Vertices=require(_0x35a9[11]);var agi=aio(4573);var AGI_CODE_SUCCESS=200;var AGI_RESULT_ERROR=-1;function connectionHandler(_0x9b39xf){process[_0x35a9[15]](function(){syncho(function(){try{setChannelVariables(_0x9b39xf);agiHandler(_0x9b39xf)}catch(ex){logger[_0x35a9[14]](_0x35a9[12],JSON[_0x35a9[13]](ex,null,2))}})})}function listeningHandler(_0x9b39x11){logger[_0x35a9[17]](_0x35a9[16])}function errorHandler(_0x9b39x11){logger[_0x35a9[14]](_0x9b39x11)}function closeHandler(){logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[18],this[_0x35a9[19]],this[_0x35a9[20]],this[_0x35a9[21]],this[_0x35a9[22]],this[_0x35a9[23]]))}function hangupHandler(){logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[25],this[_0x35a9[19]],this[_0x35a9[20]],this[_0x35a9[21]],this[_0x35a9[22]],this[_0x35a9[23]]))}function getRoot(_0x9b39x16){return parser[_0x35a9[28]](_0x9b39x16,{object:true})[_0x35a9[27]][_0x35a9[26]]}function addVertex(_0x9b39x18,_0x9b39x19,_0x9b39x1a){_0x9b39x19[_0x35a9[29]]= _0x9b39x1a;if(_0x9b39x19[_0x35a9[31]](_0x35a9[30])){_0x9b39x19[_0x35a9[32]]= parseInt(_0x9b39x19[_0x35a9[30]],10)};_0x9b39x18[_0x35a9[35]](_[_0x35a9[34]](_0x9b39x19,_0x35a9[33]))}function initGraph(_0x9b39x1c,_0x9b39x1d){var _0x9b39x18= new Graph();for(var _0x9b39x1a in _0x9b39x1c){if(_0x9b39x1c[_0x35a9[31]](_0x9b39x1a)){if(_[_0x35a9[36]](_0x9b39x1c[_0x9b39x1a])){for(var _0x9b39x1e=0;_0x9b39x1e< _0x9b39x1c[_0x9b39x1a][_0x35a9[37]];_0x9b39x1e+= 1){addVertex(_0x9b39x18,_0x9b39x1c[_0x9b39x1a][_0x9b39x1e],_0x9b39x1a)}}else {addVertex(_0x9b39x18,_0x9b39x1c[_0x9b39x1a],_0x9b39x1a)}}};for(var _0x9b39x1f=0;_0x9b39x1f< _0x9b39x1d[_0x35a9[37]];_0x9b39x1f+= 1){if(_0x9b39x1d[_0x9b39x1f][_0x35a9[38]]&& _0x9b39x1d[_0x9b39x1f][_0x35a9[39]]){_0x9b39x18[_0x35a9[41]](_0x9b39x1d[_0x9b39x1f][_0x35a9[38]],_0x9b39x1d[_0x9b39x1f][_0x35a9[39]],_0x9b39x1d[_0x9b39x1f][_0x35a9[40]])}};return _0x9b39x18}function getSquareProject(_0x9b39x21,_0x9b39x22){rpc[_0x35a9[44]](_0x9b39x21)[_0x35a9[43]](function(_0x9b39x23){_0x9b39x22(null,_0x9b39x23)})[_0x35a9[42]](function(_0x9b39x11){_0x9b39x22(null,_0x9b39x11)})}function createSquareReport(_0x9b39x25,_0x9b39x22){rpc[_0x35a9[45]](_0x9b39x25)[_0x35a9[43]](function(_0x9b39x23){_0x9b39x22(null,_0x9b39x23)})[_0x35a9[42]](function(_0x9b39x11){_0x9b39x22(null,_0x9b39x11)})}function updateSquareReport(_0x9b39x25,_0x9b39x22){rpc[_0x35a9[46]](_0x9b39x25[_0x35a9[23]],_0x9b39x25[_0x35a9[19]])[_0x35a9[43]](function(_0x9b39x23){_0x9b39x22(null,_0x9b39x23)})[_0x35a9[42]](function(_0x9b39x11){_0x9b39x22(null,_0x9b39x11)})}function setChannelVariables(_0x9b39xf){for(var _0x9b39x1a in _0x9b39xf){if(_0x9b39xf[_0x35a9[31]](_0x9b39x1a)){if(_0x9b39x1a[_0x35a9[48]](_0x35a9[47])=== 0){_0x9b39xf[_0x9b39x1a[_0x35a9[49]](4)]= _0x9b39xf[_0x9b39x1a];delete _0x9b39xf[_0x9b39x1a]}}}}function getLogFromObject(_0x9b39x29){return util[_0x35a9[50]](_0x9b39x29,{showHidden:false,depth:null})}function agiHandler(_0x9b39xf){var _0x9b39x2b,_0x9b39x18,_0x9b39x1c,_0x9b39x2c,_0x9b39x2d;logger[_0x35a9[52]](_0x35a9[51],JSON[_0x35a9[13]](_0x9b39xf,null,2));logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[53],_0x9b39xf[_0x35a9[19]],_0x9b39xf[_0x35a9[20]],_0x9b39xf[_0x35a9[21]],_0x9b39xf[_0x35a9[22]],_0x9b39xf[_0x35a9[23]]));_0x9b39xf[_0x35a9[54]](_0x35a9[14],errorHandler);_0x9b39xf[_0x35a9[54]](_0x35a9[55],closeHandler);_0x9b39xf[_0x35a9[54]](_0x35a9[56],hangupHandler);var _0x9b39x2e=getSquareProject[_0x35a9[57]](null,_0x9b39xf[_0x35a9[19]]);if(_0x9b39x2e){if(_0x9b39x2e[_0x35a9[58]]){_0x9b39x2b= getRoot(_0x9b39x2e[_0x35a9[58]]);if(_0x9b39x2b&& _0x9b39x2b[_0x35a9[59]]){logger[_0x35a9[52]](_0x35a9[26],JSON[_0x35a9[13]](_0x9b39x2b,null,2));createSquareReport[_0x35a9[57]](null,_0x9b39xf);_0x9b39x18= initGraph(_[_0x35a9[34]](_0x9b39x2b,_0x35a9[33]),_0x9b39x2b[_0x35a9[33]]);_0x9b39x1c=  new Vertices(_0x9b39xf,rpc);logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[60],_0x9b39xf[_0x35a9[19]],_0x9b39xf[_0x35a9[20]],_0x9b39xf[_0x35a9[21]],_0x9b39xf[_0x35a9[22]],_0x9b39xf[_0x35a9[23]]));_0x9b39x18[_0x35a9[76]](_0x9b39x2b[_0x35a9[59]][_0x35a9[61]],function(_0x9b39x19){try{_0x9b39x19= _0x9b39x1c[_0x35a9[62]](_0x9b39x19);logger[_0x35a9[52]](_0x35a9[63],JSON[_0x35a9[13]](_0x9b39x19,null,2));if(_0x9b39x19[_0x35a9[29]]=== _0x35a9[64]){logger[_0x35a9[17]](_0x35a9[65]);_0x9b39xf[_0x35a9[66]]= _0x9b39x19[_0x35a9[66]]|| _0x9b39xf[_0x35a9[66]];_0x9b39xf[_0x35a9[67]]= _0x9b39x19[_0x35a9[67]];_0x9b39xf[_0x35a9[68]]= _0x9b39x19[_0x35a9[68]]?_0x9b39x19[_0x35a9[68]]- 1:1;return null}else {if(_0x9b39x19&& _0x9b39x1c[_0x9b39x19[_0x35a9[29]]]){_0x9b39x2d= _0x9b39x1c[_0x9b39x19[_0x35a9[29]]](_0x9b39x19);logger[_0x35a9[17]](_0x35a9[69],JSON[_0x35a9[13]](_0x9b39x2d,null,2));if(_0x9b39x2d&& _0x9b39x2d[_0x35a9[70]]=== AGI_CODE_SUCCESS&& _0x9b39x2d[_0x35a9[71]]!== AGI_RESULT_ERROR){logger[_0x35a9[52]](_0x35a9[69],getLogFromObject(_0x9b39x2d));return _[_0x35a9[72]](_0x9b39x2d[_0x35a9[71]])?null:_0x9b39x2d[_0x35a9[71]].toString()}else {logger[_0x35a9[14]](_0x35a9[69],getLogFromObject(_0x9b39x2d));return null}}else {logger[_0x35a9[14]](_0x35a9[73]);return null}}}catch(ex){console[_0x35a9[74]](ex);logger[_0x35a9[14]](_0x35a9[75],getLogFromObject(ex));return null}});if(_0x9b39x2b[_0x35a9[77]]){logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[78],_0x9b39xf[_0x35a9[19]],_0x9b39xf[_0x35a9[20]],_0x9b39xf[_0x35a9[21]],_0x9b39xf[_0x35a9[22]],_0x9b39xf[_0x35a9[23]]));_0x9b39x18[_0x35a9[76]](_0x9b39x2b[_0x35a9[77]][_0x35a9[61]],function(_0x9b39x19){try{_0x9b39x19= _0x9b39x1c[_0x35a9[62]](_0x9b39x19);logger[_0x35a9[52]](_0x35a9[63],JSON[_0x35a9[13]](_0x9b39x19,null,2));if(_0x9b39x19&& _0x9b39x1c[_0x9b39x19[_0x35a9[29]]]){_0x9b39x2d= _0x9b39x1c[_0x9b39x19[_0x35a9[29]]](_0x9b39x19);if(_0x9b39x2d){logger[_0x35a9[52]](_0x35a9[69],getLogFromObject(_0x9b39x2d));return _[_0x35a9[72]](_0x9b39x2d[_0x35a9[71]])?null:_0x9b39x2d[_0x35a9[71]].toString()}else {logger[_0x35a9[14]](_0x35a9[69],getLogFromObject(_0x9b39x2d));return null}}else {logger[_0x35a9[14]](_0x35a9[73]);return null}}catch(ex){logger[_0x35a9[14]](_0x35a9[75],getLogFromObject(ex));return null}})};logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[79],_0x9b39xf[_0x35a9[19]],_0x9b39xf[_0x35a9[20]],_0x9b39xf[_0x35a9[21]],_0x9b39xf[_0x35a9[22]],_0x9b39xf[_0x35a9[23]]));logger[_0x35a9[17]](util[_0x35a9[24]](_0x35a9[80],_0x9b39xf[_0x35a9[66]],_0x9b39xf[_0x35a9[67]],parseInt(_0x9b39xf[_0x35a9[68]],10)+ 1));_0x9b39xf[_0x35a9[81]](_0x9b39xf[_0x35a9[66]],_0x9b39xf[_0x35a9[67]],parseInt(_0x9b39xf[_0x35a9[68]],10)+ 1);_0x9b39xf[_0x35a9[55]]()}}else {logger[_0x35a9[14]](util[_0x35a9[24]](_0x35a9[82],_0x9b39xf[_0x35a9[19]]));_0x9b39xf[_0x35a9[81]](_0x9b39xf[_0x35a9[66]],_0x9b39xf[_0x35a9[67]],parseInt(_0x9b39xf[_0x35a9[68]],10)+ 1);_0x9b39xf[_0x35a9[55]]()}}else {logger[_0x35a9[14]](util[_0x35a9[24]](_0x35a9[83],_0x9b39xf[_0x35a9[19]]));_0x9b39xf[_0x35a9[81]](_0x9b39xf[_0x35a9[66]],_0x9b39xf[_0x35a9[67]],parseInt(_0x9b39xf[_0x35a9[68]],10)+ 1);_0x9b39xf[_0x35a9[55]]()}}agi[_0x35a9[54]](_0x35a9[14],errorHandler);agi[_0x35a9[54]](_0x35a9[84],listeningHandler);agi[_0x35a9[54]](_0x35a9[85],connectionHandler)
\ No newline at end of file
index 817656b..944d62b 100644 (file)
@@ -1 +1 @@
-var _0xa5fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x74\x72\x65\x61\x6D","\x63\x61\x6C\x6C","\x5F\x6C\x6F\x63\x61\x6C\x42\x75\x66\x66\x65\x72","","\x5F\x69\x6E\x42\x6F\x64\x79","\x69\x6E\x68\x65\x72\x69\x74\x73","\x5F\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x0A","\x0A\x0A","\x0D\x0A\x0D\x0A","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x73\x70\x6C\x69\x74","\x3A","\x69\x6E\x64\x65\x78\x4F\x66","\x74\x72\x69\x6D","\x73\x6C\x69\x63\x65","\x68\x65\x61\x64\x65\x72\x73","\x65\x6D\x69\x74","\x6C\x69\x6E\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa5fe[0];var util=require(_0xa5fe[1]);var Transform=require(_0xa5fe[3])[_0xa5fe[2]];function AGIReply(_0xc4cax4){Transform[_0xa5fe[4]](this,_0xc4cax4);this[_0xa5fe[5]]= _0xa5fe[6];this[_0xa5fe[7]]= false}util[_0xa5fe[8]](AGIReply,Transform);AGIReply[_0xa5fe[10]][_0xa5fe[9]]= function(_0xc4cax5,_0xc4cax6,_0xc4cax7){var _0xc4cax8=_0xa5fe[11],_0xc4cax9=[_0xa5fe[12],_0xa5fe[13]],_0xc4caxa=-1,_0xc4caxb=-1,_0xc4caxc=_0xa5fe[6],_0xc4caxd=0,_0xc4caxe=_0xa5fe[6],_0xc4caxf=_0xa5fe[6];this[_0xa5fe[5]]+= _0xc4cax5.toString();_0xc4caxe= this[_0xa5fe[5]];if(!this[_0xa5fe[7]]){_0xc4caxd= 0;while(_0xc4cax9[_0xc4caxd]){while((_0xc4caxb= _0xc4caxe[_0xa5fe[18]](_0xc4cax9[_0xc4caxd]))!=  -1){_0xc4caxc= _0xc4cax9[_0xc4caxd];_0xc4caxf= _0xc4caxe[_0xa5fe[14]](0,_0xc4caxb);_0xc4caxe= _0xc4caxe[_0xa5fe[14]](_0xc4caxb+ _0xc4caxc[_0xa5fe[15]]);var _0xc4cax10=_0xc4caxf[_0xa5fe[16]](_0xc4cax8),_0xc4cax11=0,_0xc4cax12={},_0xc4cax13=_0xa5fe[6],_0xc4cax14=_0xa5fe[6],_0xc4cax15=-1;while(_0xc4cax10[_0xc4cax11]){_0xc4cax15= _0xc4cax10[_0xc4cax11][_0xa5fe[18]](_0xa5fe[17]);if(_0xc4cax15!=  -1){_0xc4cax13= _0xc4cax10[_0xc4cax11][_0xa5fe[20]](0,_0xc4cax15)[_0xa5fe[19]]();_0xc4cax14= _0xc4cax10[_0xc4cax11][_0xa5fe[20]](_0xc4cax15+ 1)[_0xa5fe[19]]();if(_0xc4cax13[_0xa5fe[15]]> 0){_0xc4cax12[_0xc4cax13]= _0xc4cax14}}else {};_0xc4cax11++};this[_0xa5fe[22]](_0xa5fe[21],_0xc4cax12);this[_0xa5fe[7]]= true};_0xc4caxd++};this[_0xa5fe[5]]= _0xc4caxe}else {while((_0xc4caxa= _0xc4caxe[_0xa5fe[18]](_0xc4cax8))!=  -1){_0xc4caxf= _0xc4caxe[_0xa5fe[14]](0,_0xc4caxa);this[_0xa5fe[22]](_0xa5fe[23],_0xc4caxf);_0xc4caxe= _0xc4caxe[_0xa5fe[14]](_0xc4caxa+ _0xc4cax8[_0xa5fe[15]])};this[_0xa5fe[5]]= _0xc4caxe};_0xc4cax7()};module[_0xa5fe[24]]= AGIReply
\ No newline at end of file
+var _0xe759=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x74\x72\x65\x61\x6D","\x63\x61\x6C\x6C","\x5F\x6C\x6F\x63\x61\x6C\x42\x75\x66\x66\x65\x72","","\x5F\x69\x6E\x42\x6F\x64\x79","\x69\x6E\x68\x65\x72\x69\x74\x73","\x5F\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x0A","\x0A\x0A","\x0D\x0A\x0D\x0A","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x73\x70\x6C\x69\x74","\x3A","\x69\x6E\x64\x65\x78\x4F\x66","\x74\x72\x69\x6D","\x73\x6C\x69\x63\x65","\x68\x65\x61\x64\x65\x72\x73","\x65\x6D\x69\x74","\x6C\x69\x6E\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe759[0];var util=require(_0xe759[1]);var Transform=require(_0xe759[3])[_0xe759[2]];function AGIReply(_0xe64ax4){Transform[_0xe759[4]](this,_0xe64ax4);this[_0xe759[5]]= _0xe759[6];this[_0xe759[7]]= false}util[_0xe759[8]](AGIReply,Transform);AGIReply[_0xe759[10]][_0xe759[9]]= function(_0xe64ax5,_0xe64ax6,_0xe64ax7){var _0xe64ax8=_0xe759[11],_0xe64ax9=[_0xe759[12],_0xe759[13]],_0xe64axa=-1,_0xe64axb=-1,_0xe64axc=_0xe759[6],_0xe64axd=0,_0xe64axe=_0xe759[6],_0xe64axf=_0xe759[6];this[_0xe759[5]]+= _0xe64ax5.toString();_0xe64axe= this[_0xe759[5]];if(!this[_0xe759[7]]){_0xe64axd= 0;while(_0xe64ax9[_0xe64axd]){while((_0xe64axb= _0xe64axe[_0xe759[18]](_0xe64ax9[_0xe64axd]))!=  -1){_0xe64axc= _0xe64ax9[_0xe64axd];_0xe64axf= _0xe64axe[_0xe759[14]](0,_0xe64axb);_0xe64axe= _0xe64axe[_0xe759[14]](_0xe64axb+ _0xe64axc[_0xe759[15]]);var _0xe64ax10=_0xe64axf[_0xe759[16]](_0xe64ax8),_0xe64ax11=0,_0xe64ax12={},_0xe64ax13=_0xe759[6],_0xe64ax14=_0xe759[6],_0xe64ax15=-1;while(_0xe64ax10[_0xe64ax11]){_0xe64ax15= _0xe64ax10[_0xe64ax11][_0xe759[18]](_0xe759[17]);if(_0xe64ax15!=  -1){_0xe64ax13= _0xe64ax10[_0xe64ax11][_0xe759[20]](0,_0xe64ax15)[_0xe759[19]]();_0xe64ax14= _0xe64ax10[_0xe64ax11][_0xe759[20]](_0xe64ax15+ 1)[_0xe759[19]]();if(_0xe64ax13[_0xe759[15]]> 0){_0xe64ax12[_0xe64ax13]= _0xe64ax14}}else {};_0xe64ax11++};this[_0xe759[22]](_0xe759[21],_0xe64ax12);this[_0xe759[7]]= true};_0xe64axd++};this[_0xe759[5]]= _0xe64axe}else {while((_0xe64axa= _0xe64axe[_0xe759[18]](_0xe64ax8))!=  -1){_0xe64axf= _0xe64axe[_0xe759[14]](0,_0xe64axa);this[_0xe759[22]](_0xe759[23],_0xe64axf);_0xe64axe= _0xe64axe[_0xe759[14]](_0xe64axa+ _0xe64ax8[_0xe759[15]])};this[_0xe759[5]]= _0xe64axe};_0xe64ax7()};module[_0xe759[24]]= AGIReply
\ No newline at end of file
index 595d345..97373c9 100644 (file)
@@ -1 +1 @@
-var _0xd2b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x63\x61\x74\x63\x68","\x65\x72\x72\x6F\x72","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x42\x79\x49\x64","\x6E\x61\x6D\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x42\x79\x49\x64","\x53\x68\x6F\x77\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65\x42\x79\x49\x64","\x53\x68\x6F\x77\x56\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x42\x79\x49\x64","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x64\x73\x6E","\x67\x65\x74\x55\x73\x65\x72\x42\x79\x49\x64","\x53\x68\x6F\x77\x55\x73\x65\x72","\x67\x65\x74\x54\x72\x75\x6E\x6B\x42\x79\x49\x64","\x53\x68\x6F\x77\x54\x72\x75\x6E\x6B","\x67\x65\x74\x53\x6F\x75\x6E\x64\x42\x79\x49\x64","\x53\x68\x6F\x77\x53\x6F\x75\x6E\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x42\x79\x49\x64","\x53\x68\x6F\x77\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x67\x5F\x31","\x61\x72\x67\x5F\x32","","\x6D\x65\x72\x67\x65","\x75\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x63\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x53\x68\x6F\x77\x43\x6D\x48\x6F\x70\x70\x65\x72","\x70\x68\x6F\x6E\x65","\x4C\x69\x73\x74\x49\x64"];_0xd2b7[0];var BPromise=require(_0xd2b7[1]);var moment=require(_0xd2b7[2]);var _=require(_0xd2b7[3]);var util=require(_0xd2b7[4]);var jayson=require(_0xd2b7[5]);var client=jayson[_0xd2b7[7]][_0xd2b7[6]]({port:9001});function request(_0x59bfx8,_0x59bfx9){return  new BPromise(function(_0x59bfxa,_0x59bfxb){return client[_0xd2b7[13]](_0x59bfx8,_0x59bfx9)[_0xd2b7[12]](function(_0x59bfxd){if(_0x59bfxd[_0xd2b7[9]]){return _0x59bfxb(_0x59bfxd[_0xd2b7[9]][_0xd2b7[10]])}else {return _0x59bfxa(_0x59bfxd[_0xd2b7[11]])}})[_0xd2b7[8]](function(_0x59bfxc){return _0x59bfxb(_0x59bfxc)})})}exports[_0xd2b7[14]]= function(_0x59bfx8){return request(_0xd2b7[15],{options:{raw:false,where:{name:_0x59bfx8},attributes:[_0xd2b7[16]]}})};exports[_0xd2b7[17]]= function(_0x59bfxe){return request(_0xd2b7[15],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[18]]}})};exports[_0xd2b7[19]]= function(_0x59bfxe){return request(_0xd2b7[20],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[18]]}})};exports[_0xd2b7[21]]= function(_0x59bfxe){return request(_0xd2b7[22],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[18]]}})};exports[_0xd2b7[23]]= function(_0x59bfxe){return request(_0xd2b7[24],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[25]]}})};exports[_0xd2b7[26]]= function(_0x59bfxe){return request(_0xd2b7[27],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[18]]}})};exports[_0xd2b7[28]]= function(_0x59bfxe){return request(_0xd2b7[29],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[18]]}})};exports[_0xd2b7[30]]= function(_0x59bfxe){return request(_0xd2b7[31],{options:{where:{id:_0x59bfxe},attributes:[_0xd2b7[32]]}})};exports[_0xd2b7[33]]= function(_0x59bfxe){return request(_0xd2b7[34],{options:{raw:false,where:{id:_0x59bfxe},include:[{model:_0xd2b7[35],as:_0xd2b7[36]}]}})};exports[_0xd2b7[37]]= function(_0x59bfxf){return request(_0xd2b7[38],{body:_0x59bfxf})};exports[_0xd2b7[39]]= function(_0x59bfxf){return request(_0xd2b7[40],{body:_[_0xd2b7[46]](_0x59bfxf,{joinAt:moment()[_0xd2b7[42]](_0xd2b7[41]),project_name:_0x59bfxf[_0xd2b7[43]],prev_project_name:_0x59bfxf[_0xd2b7[44]]|| _0xd2b7[45],is_subproject:_0x59bfxf[_0xd2b7[44]]?true:false})})};exports[_0xd2b7[47]]= function(_0x59bfx10,_0x59bfx11){return request(_0xd2b7[48],{body:{leaveAt:moment()[_0xd2b7[42]](_0xd2b7[41])},options:{where:{uniqueid:_0x59bfx10,project_name:_0x59bfx11,leaveAt:null}}})};exports[_0xd2b7[49]]= function(_0x59bfxf){return request(_0xd2b7[50],{body:_0x59bfxf})};exports[_0xd2b7[51]]= function(_0x59bfxf){return request(_0xd2b7[53],{options:{raw:false,where:{phone:_0x59bfxf[_0xd2b7[54]],ListId:_0x59bfxf[_0xd2b7[55]]}}})[_0xd2b7[12]](function(_0x59bfx12){if(_0x59bfx12){return _0x59bfx12};return request(_0xd2b7[52],{body:_0x59bfxf})})}
\ No newline at end of file
+var _0x28b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x63\x61\x74\x63\x68","\x65\x72\x72\x6F\x72","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x42\x79\x49\x64","\x6E\x61\x6D\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x42\x79\x49\x64","\x53\x68\x6F\x77\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65\x42\x79\x49\x64","\x53\x68\x6F\x77\x56\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x42\x79\x49\x64","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x64\x73\x6E","\x67\x65\x74\x55\x73\x65\x72\x42\x79\x49\x64","\x53\x68\x6F\x77\x55\x73\x65\x72","\x67\x65\x74\x54\x72\x75\x6E\x6B\x42\x79\x49\x64","\x53\x68\x6F\x77\x54\x72\x75\x6E\x6B","\x67\x65\x74\x53\x6F\x75\x6E\x64\x42\x79\x49\x64","\x53\x68\x6F\x77\x53\x6F\x75\x6E\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x42\x79\x49\x64","\x53\x68\x6F\x77\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x67\x5F\x31","\x61\x72\x67\x5F\x32","","\x6D\x65\x72\x67\x65","\x75\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x63\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x53\x68\x6F\x77\x43\x6D\x48\x6F\x70\x70\x65\x72","\x70\x68\x6F\x6E\x65","\x4C\x69\x73\x74\x49\x64"];_0x28b2[0];var BPromise=require(_0x28b2[1]);var moment=require(_0x28b2[2]);var _=require(_0x28b2[3]);var util=require(_0x28b2[4]);var jayson=require(_0x28b2[5]);var client=jayson[_0x28b2[7]][_0x28b2[6]]({port:9001});function request(_0x4130x8,_0x4130x9){return  new BPromise(function(_0x4130xa,_0x4130xb){return client[_0x28b2[13]](_0x4130x8,_0x4130x9)[_0x28b2[12]](function(_0x4130xd){if(_0x4130xd[_0x28b2[9]]){return _0x4130xb(_0x4130xd[_0x28b2[9]][_0x28b2[10]])}else {return _0x4130xa(_0x4130xd[_0x28b2[11]])}})[_0x28b2[8]](function(_0x4130xc){return _0x4130xb(_0x4130xc)})})}exports[_0x28b2[14]]= function(_0x4130x8){return request(_0x28b2[15],{options:{raw:false,where:{name:_0x4130x8},attributes:[_0x28b2[16]]}})};exports[_0x28b2[17]]= function(_0x4130xe){return request(_0x28b2[15],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[18]]}})};exports[_0x28b2[19]]= function(_0x4130xe){return request(_0x28b2[20],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[18]]}})};exports[_0x28b2[21]]= function(_0x4130xe){return request(_0x28b2[22],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[18]]}})};exports[_0x28b2[23]]= function(_0x4130xe){return request(_0x28b2[24],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[25]]}})};exports[_0x28b2[26]]= function(_0x4130xe){return request(_0x28b2[27],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[18]]}})};exports[_0x28b2[28]]= function(_0x4130xe){return request(_0x28b2[29],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[18]]}})};exports[_0x28b2[30]]= function(_0x4130xe){return request(_0x28b2[31],{options:{where:{id:_0x4130xe},attributes:[_0x28b2[32]]}})};exports[_0x28b2[33]]= function(_0x4130xe){return request(_0x28b2[34],{options:{raw:false,where:{id:_0x4130xe},include:[{model:_0x28b2[35],as:_0x28b2[36]}]}})};exports[_0x28b2[37]]= function(_0x4130xf){return request(_0x28b2[38],{body:_0x4130xf})};exports[_0x28b2[39]]= function(_0x4130xf){return request(_0x28b2[40],{body:_[_0x28b2[46]](_0x4130xf,{joinAt:moment()[_0x28b2[42]](_0x28b2[41]),project_name:_0x4130xf[_0x28b2[43]],prev_project_name:_0x4130xf[_0x28b2[44]]|| _0x28b2[45],is_subproject:_0x4130xf[_0x28b2[44]]?true:false})})};exports[_0x28b2[47]]= function(_0x4130x10,_0x4130x11){return request(_0x28b2[48],{body:{leaveAt:moment()[_0x28b2[42]](_0x28b2[41])},options:{where:{uniqueid:_0x4130x10,project_name:_0x4130x11,leaveAt:null}}})};exports[_0x28b2[49]]= function(_0x4130xf){return request(_0x28b2[50],{body:_0x4130xf})};exports[_0x28b2[51]]= function(_0x4130xf){return request(_0x28b2[53],{options:{raw:false,where:{phone:_0x4130xf[_0x28b2[54]],ListId:_0x4130xf[_0x28b2[55]]}}})[_0x28b2[12]](function(_0x4130x12){if(_0x4130x12){return _0x4130x12};return request(_0x28b2[52],{body:_0x4130xf})})}
\ No newline at end of file
index c41fd1e..88dbd6e 100644 (file)
@@ -1 +1 @@
-var _0x5d92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x68\x74\x74\x70","\x68\x74\x74\x70\x73","\x70\x61\x72\x73\x65","\x75\x72\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x73\x6F\x78","\x67\x6F\x6F\x67\x6C\x65\x2D\x74\x74\x73\x2D\x61\x70\x69","\x75\x74\x69\x6C","\x71\x75\x65\x72\x79\x73\x74\x72\x69\x6E\x67","\x6D\x6F\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x69\x73\x70\x65\x65\x63\x68\x2E\x6F\x72\x67\x2F\x61\x70\x69\x2F\x72\x65\x73\x74","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x74\x74\x70\x73\x3A","\x68\x6F\x73\x74","\x57\x48\x41\x54\x5F\x45\x56\x45\x52","\x65\x6E\x64","\x65\x72\x72\x6F\x72","\x6F\x6E","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20","\x20\x66\x61\x69\x6C\x65\x64\x2C\x20\x73\x74\x61\x74\x75\x73\x20\x63\x6F\x64\x65\x20\x3D\x20","\x20\x28","\x73\x74\x61\x74\x75\x73\x4D\x65\x73\x73\x61\x67\x65","\x29","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x66\x69\x6E\x69\x73\x68","\x66\x69\x6E\x69\x73\x68\x20\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x69\x6E\x66\x6F","\x63\x6C\x6F\x73\x65","\x75\x6E\x6C\x69\x6E\x6B","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72","\x70\x69\x70\x65","\x67\x65\x74","","\x64\x61\x74\x61","\x77\x61\x76","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x65\x72\x72\x6F\x72\x20\x63\x6F\x6E\x76\x65\x72\x74","\x66\x69\x6E\x69\x73\x68\x20\x74\x6F\x20\x63\x6F\x6E\x76\x65\x72\x74","\x73\x74\x61\x72\x74","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x62\x61\x73\x65\x36\x34","\x67\x6F\x6F\x67\x6C\x65\x54\x54\x53","\x67\x6F\x67\x67\x6C\x65\x54\x54\x53\x20\x70\x61\x74\x68","\x2E","\x73\x70\x6C\x69\x74","\x74\x68\x65\x6E","\x74\x6D\x70","\x67\x65\x6E\x65\x72\x61\x74\x65","\x2E\x77\x61\x76","\x72\x65\x73\x6F\x6C\x76\x65","\x2E\x6D\x70\x33","\x65\x6E","\x69\x73\x70\x65\x65\x63\x68\x54\x54\x53","\x25\x73\x3F\x61\x70\x69\x6B\x65\x79\x3D\x25\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x63\x6F\x6E\x76\x65\x72\x74\x26\x74\x65\x78\x74\x3D\x25\x73\x26\x76\x6F\x69\x63\x65\x3D\x25\x73\x26\x73\x70\x65\x65\x64\x3D\x25\x73\x26\x66\x6F\x72\x6D\x61\x74\x3D\x6D\x70\x33","\x66\x6F\x72\x6D\x61\x74","\x69\x73\x70\x65\x65\x63\x68\x41\x53\x52","\x25\x73\x3F\x61\x70\x69\x6B\x65\x79\x3D\x25\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x26\x6C\x6F\x63\x61\x6C\x65\x3D\x25\x73\x26\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65\x3D\x61\x75\x64\x69\x6F\x2F\x78\x2D\x77\x61\x76\x26\x61\x75\x64\x69\x6F\x3D\x25\x73\x26\x25\x73","\x6D\x6F\x64\x65\x6C\x3D\x25\x73","\x66\x72\x65\x65\x66\x6F\x72\x6D\x3D\x33","\x64\x69\x72\x4E\x61\x6D\x65"];_0x5d92[0];var fs=require(_0x5d92[1]);var path=require(_0x5d92[2]);var http=require(_0x5d92[3]);var https=require(_0x5d92[4]);var urlParse=require(_0x5d92[6])[_0x5d92[5]];var BPromise=require(_0x5d92[7]);var rs=require(_0x5d92[8]);var sox=require(_0x5d92[9]);var tts=require(_0x5d92[10]);var util=require(_0x5d92[11]);var querystring=require(_0x5d92[12]);var moment=require(_0x5d92[13]);var logger=require(_0x5d92[15])(_0x5d92[14]);var ISPEECH_API=_0x5d92[16];function downloadFile(_0x8145x10,_0x8145x11){return  new BPromise(function(_0x8145x12,_0x8145x13){var _0x8145x14=urlParse(_0x8145x10);var _0x8145x15=_0x8145x14[_0x5d92[17]]=== _0x5d92[18]?https:http;var _0x8145x16={host:_0x8145x14[_0x5d92[19]],path:_0x8145x14[_0x5d92[2]],headers:{"\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74":_0x5d92[20]}};_0x8145x15[_0x5d92[38]](_0x8145x16,function(_0x8145x18){if(_0x8145x18[_0x5d92[24]]!== 200){logger[_0x5d92[22]](_0x5d92[25]+ _0x8145x10+ _0x5d92[26]+ _0x8145x18[_0x5d92[24]]+ _0x5d92[27]+ _0x8145x18[_0x5d92[28]]+ _0x5d92[29]);_0x8145x13( new Error(_0x5d92[25]+ _0x8145x10+ _0x5d92[26]+ _0x8145x18[_0x5d92[24]]+ _0x5d92[27]+ _0x8145x18[_0x5d92[28]]+ _0x5d92[29]));return};var _0x8145x19=fs[_0x5d92[30]](_0x8145x11);_0x8145x19[_0x5d92[23]](_0x5d92[31],function(){logger[_0x5d92[33]](_0x5d92[32]);_0x8145x19[_0x5d92[34]](_0x8145x12)});_0x8145x19[_0x5d92[23]](_0x5d92[22],function(_0x8145x17){fs[_0x5d92[35]](_0x8145x11);logger[_0x5d92[22]](_0x5d92[36],_0x8145x17);_0x8145x13(_0x8145x17)});_0x8145x18[_0x5d92[37]](_0x8145x19)})[_0x5d92[23]](_0x5d92[22],function(_0x8145x17){logger[_0x5d92[22]](_0x8145x17);_0x8145x13(_0x8145x17)})[_0x5d92[21]]()})}function uploadFile(_0x8145x10){return  new BPromise(function(_0x8145x12,_0x8145x13){var _0x8145x14=urlParse(_0x8145x10);var _0x8145x15=_0x8145x14[_0x5d92[17]]=== _0x5d92[18]?https:http;var _0x8145x16={host:_0x8145x14[_0x5d92[19]],path:_0x8145x14[_0x5d92[2]],headers:{"\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74":_0x5d92[20]}};_0x8145x15[_0x5d92[38]](_0x8145x16,function(_0x8145x18){if(_0x8145x18[_0x5d92[24]]!== 200){_0x8145x13( new Error(_0x5d92[25]+ _0x8145x10+ _0x5d92[26]+ _0x8145x18[_0x5d92[24]]+ _0x5d92[27]+ _0x8145x18[_0x5d92[28]]+ _0x5d92[29]));return};var _0x8145x1b=_0x5d92[39];_0x8145x18[_0x5d92[23]](_0x5d92[40],function(_0x8145x1c){_0x8145x1b+= _0x8145x1c});_0x8145x18[_0x5d92[23]](_0x5d92[21],function(){_0x8145x12(_0x8145x1b)})})[_0x5d92[23]](_0x5d92[22],function(_0x8145x17){_0x8145x13(_0x8145x17)})[_0x5d92[21]]()})}function convertFile(_0x8145x19,_0x8145x11){return  new BPromise(function(_0x8145x12,_0x8145x13){var _0x8145x1e=sox[_0x5d92[42]](_0x8145x19,_0x8145x11,{sampleRate:8000,format:_0x5d92[41],channelCount:1,bitRate:192* 1024,compressionQuality:5});_0x8145x1e[_0x5d92[23]](_0x5d92[22],function(_0x8145x17){logger[_0x5d92[22]](_0x5d92[43],_0x8145x17);_0x8145x13(_0x8145x17)});_0x8145x1e[_0x5d92[23]](_0x5d92[21],function(){logger[_0x5d92[33]](_0x5d92[44]);_0x8145x12()});_0x8145x1e[_0x5d92[45]]()})}function base64Encode(_0x8145x19){var _0x8145x20=fs[_0x5d92[46]](_0x8145x19);return  new Buffer(_0x8145x20).toString(_0x5d92[47])}exports[_0x5d92[48]]= function(_0x8145x21,_0x8145x22){var _0x8145x23;var _0x8145x24;return tts(_0x8145x21,_0x8145x22|| _0x5d92[58],1)[_0x5d92[52]](function(_0x8145x10){logger[_0x5d92[33]](_0x8145x10);_0x8145x23= path[_0x5d92[56]](__dirname,_0x5d92[53],rs[_0x5d92[54]](4)+ _0x5d92[57]);return downloadFile(_0x8145x10,_0x8145x23)})[_0x5d92[52]](function(){_0x8145x24= path[_0x5d92[56]](__dirname,_0x5d92[53],rs[_0x5d92[54]](4)+ _0x5d92[55]);return convertFile(_0x8145x23,_0x8145x24)})[_0x5d92[52]](function(){fs[_0x5d92[35]](_0x8145x23);logger[_0x5d92[33]](_0x5d92[49],_0x8145x24[_0x5d92[51]](_0x5d92[50])[0]);return _0x8145x24[_0x5d92[51]](_0x5d92[50])[0]})};exports[_0x5d92[59]]= function(_0x8145x25,_0x8145x21,_0x8145x22,_0x8145x26){var _0x8145x10=util[_0x5d92[61]](_0x5d92[60],ISPEECH_API,_0x8145x25,encodeURIComponent(_0x8145x21),_0x8145x22,_0x8145x26);var _0x8145x23=path[_0x5d92[56]](__dirname,_0x5d92[53],rs[_0x5d92[54]](4)+ _0x5d92[57]);var _0x8145x24;return downloadFile(_0x8145x10,_0x8145x23)[_0x5d92[52]](function(){_0x8145x24= path[_0x5d92[56]](__dirname,_0x5d92[53],rs[_0x5d92[54]](4)+ _0x5d92[55]);return convertFile(_0x8145x23,_0x8145x24)})[_0x5d92[52]](function(){fs[_0x5d92[35]](_0x8145x23);return _0x8145x24[_0x5d92[51]](_0x5d92[50])[0]})};exports[_0x5d92[62]]= function(_0x8145x23,_0x8145x25,_0x8145x22,_0x8145x27){var _0x8145x10=util[_0x5d92[61]](_0x5d92[63],ISPEECH_API,_0x8145x25,_0x8145x22,base64Encode(_0x8145x23),_0x8145x27?util[_0x5d92[61]](_0x5d92[64],encodeURIComponent(_0x8145x27)):_0x5d92[65]);return uploadFile(_0x8145x10)[_0x5d92[52]](function(_0x8145x18){return querystring[_0x5d92[5]](_0x8145x18)})};exports[_0x5d92[66]]= function(){return __dirname}
\ No newline at end of file
+var _0xbeca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x68\x74\x74\x70","\x68\x74\x74\x70\x73","\x70\x61\x72\x73\x65","\x75\x72\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x73\x6F\x78","\x67\x6F\x6F\x67\x6C\x65\x2D\x74\x74\x73\x2D\x61\x70\x69","\x75\x74\x69\x6C","\x71\x75\x65\x72\x79\x73\x74\x72\x69\x6E\x67","\x6D\x6F\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x69\x73\x70\x65\x65\x63\x68\x2E\x6F\x72\x67\x2F\x61\x70\x69\x2F\x72\x65\x73\x74","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x74\x74\x70\x73\x3A","\x68\x6F\x73\x74","\x57\x48\x41\x54\x5F\x45\x56\x45\x52","\x65\x6E\x64","\x65\x72\x72\x6F\x72","\x6F\x6E","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20","\x20\x66\x61\x69\x6C\x65\x64\x2C\x20\x73\x74\x61\x74\x75\x73\x20\x63\x6F\x64\x65\x20\x3D\x20","\x20\x28","\x73\x74\x61\x74\x75\x73\x4D\x65\x73\x73\x61\x67\x65","\x29","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x66\x69\x6E\x69\x73\x68","\x66\x69\x6E\x69\x73\x68\x20\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x69\x6E\x66\x6F","\x63\x6C\x6F\x73\x65","\x75\x6E\x6C\x69\x6E\x6B","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72","\x70\x69\x70\x65","\x67\x65\x74","","\x64\x61\x74\x61","\x77\x61\x76","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x65\x72\x72\x6F\x72\x20\x63\x6F\x6E\x76\x65\x72\x74","\x66\x69\x6E\x69\x73\x68\x20\x74\x6F\x20\x63\x6F\x6E\x76\x65\x72\x74","\x73\x74\x61\x72\x74","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x62\x61\x73\x65\x36\x34","\x67\x6F\x6F\x67\x6C\x65\x54\x54\x53","\x67\x6F\x67\x67\x6C\x65\x54\x54\x53\x20\x70\x61\x74\x68","\x2E","\x73\x70\x6C\x69\x74","\x74\x68\x65\x6E","\x74\x6D\x70","\x67\x65\x6E\x65\x72\x61\x74\x65","\x2E\x77\x61\x76","\x72\x65\x73\x6F\x6C\x76\x65","\x2E\x6D\x70\x33","\x65\x6E","\x69\x73\x70\x65\x65\x63\x68\x54\x54\x53","\x25\x73\x3F\x61\x70\x69\x6B\x65\x79\x3D\x25\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x63\x6F\x6E\x76\x65\x72\x74\x26\x74\x65\x78\x74\x3D\x25\x73\x26\x76\x6F\x69\x63\x65\x3D\x25\x73\x26\x73\x70\x65\x65\x64\x3D\x25\x73\x26\x66\x6F\x72\x6D\x61\x74\x3D\x6D\x70\x33","\x66\x6F\x72\x6D\x61\x74","\x69\x73\x70\x65\x65\x63\x68\x41\x53\x52","\x25\x73\x3F\x61\x70\x69\x6B\x65\x79\x3D\x25\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x26\x6C\x6F\x63\x61\x6C\x65\x3D\x25\x73\x26\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65\x3D\x61\x75\x64\x69\x6F\x2F\x78\x2D\x77\x61\x76\x26\x61\x75\x64\x69\x6F\x3D\x25\x73\x26\x25\x73","\x6D\x6F\x64\x65\x6C\x3D\x25\x73","\x66\x72\x65\x65\x66\x6F\x72\x6D\x3D\x33","\x64\x69\x72\x4E\x61\x6D\x65"];_0xbeca[0];var fs=require(_0xbeca[1]);var path=require(_0xbeca[2]);var http=require(_0xbeca[3]);var https=require(_0xbeca[4]);var urlParse=require(_0xbeca[6])[_0xbeca[5]];var BPromise=require(_0xbeca[7]);var rs=require(_0xbeca[8]);var sox=require(_0xbeca[9]);var tts=require(_0xbeca[10]);var util=require(_0xbeca[11]);var querystring=require(_0xbeca[12]);var moment=require(_0xbeca[13]);var logger=require(_0xbeca[15])(_0xbeca[14]);var ISPEECH_API=_0xbeca[16];function downloadFile(_0x7c1bx10,_0x7c1bx11){return  new BPromise(function(_0x7c1bx12,_0x7c1bx13){var _0x7c1bx14=urlParse(_0x7c1bx10);var _0x7c1bx15=_0x7c1bx14[_0xbeca[17]]=== _0xbeca[18]?https:http;var _0x7c1bx16={host:_0x7c1bx14[_0xbeca[19]],path:_0x7c1bx14[_0xbeca[2]],headers:{"\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74":_0xbeca[20]}};_0x7c1bx15[_0xbeca[38]](_0x7c1bx16,function(_0x7c1bx18){if(_0x7c1bx18[_0xbeca[24]]!== 200){logger[_0xbeca[22]](_0xbeca[25]+ _0x7c1bx10+ _0xbeca[26]+ _0x7c1bx18[_0xbeca[24]]+ _0xbeca[27]+ _0x7c1bx18[_0xbeca[28]]+ _0xbeca[29]);_0x7c1bx13( new Error(_0xbeca[25]+ _0x7c1bx10+ _0xbeca[26]+ _0x7c1bx18[_0xbeca[24]]+ _0xbeca[27]+ _0x7c1bx18[_0xbeca[28]]+ _0xbeca[29]));return};var _0x7c1bx19=fs[_0xbeca[30]](_0x7c1bx11);_0x7c1bx19[_0xbeca[23]](_0xbeca[31],function(){logger[_0xbeca[33]](_0xbeca[32]);_0x7c1bx19[_0xbeca[34]](_0x7c1bx12)});_0x7c1bx19[_0xbeca[23]](_0xbeca[22],function(_0x7c1bx17){fs[_0xbeca[35]](_0x7c1bx11);logger[_0xbeca[22]](_0xbeca[36],_0x7c1bx17);_0x7c1bx13(_0x7c1bx17)});_0x7c1bx18[_0xbeca[37]](_0x7c1bx19)})[_0xbeca[23]](_0xbeca[22],function(_0x7c1bx17){logger[_0xbeca[22]](_0x7c1bx17);_0x7c1bx13(_0x7c1bx17)})[_0xbeca[21]]()})}function uploadFile(_0x7c1bx10){return  new BPromise(function(_0x7c1bx12,_0x7c1bx13){var _0x7c1bx14=urlParse(_0x7c1bx10);var _0x7c1bx15=_0x7c1bx14[_0xbeca[17]]=== _0xbeca[18]?https:http;var _0x7c1bx16={host:_0x7c1bx14[_0xbeca[19]],path:_0x7c1bx14[_0xbeca[2]],headers:{"\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74":_0xbeca[20]}};_0x7c1bx15[_0xbeca[38]](_0x7c1bx16,function(_0x7c1bx18){if(_0x7c1bx18[_0xbeca[24]]!== 200){_0x7c1bx13( new Error(_0xbeca[25]+ _0x7c1bx10+ _0xbeca[26]+ _0x7c1bx18[_0xbeca[24]]+ _0xbeca[27]+ _0x7c1bx18[_0xbeca[28]]+ _0xbeca[29]));return};var _0x7c1bx1b=_0xbeca[39];_0x7c1bx18[_0xbeca[23]](_0xbeca[40],function(_0x7c1bx1c){_0x7c1bx1b+= _0x7c1bx1c});_0x7c1bx18[_0xbeca[23]](_0xbeca[21],function(){_0x7c1bx12(_0x7c1bx1b)})})[_0xbeca[23]](_0xbeca[22],function(_0x7c1bx17){_0x7c1bx13(_0x7c1bx17)})[_0xbeca[21]]()})}function convertFile(_0x7c1bx19,_0x7c1bx11){return  new BPromise(function(_0x7c1bx12,_0x7c1bx13){var _0x7c1bx1e=sox[_0xbeca[42]](_0x7c1bx19,_0x7c1bx11,{sampleRate:8000,format:_0xbeca[41],channelCount:1,bitRate:192* 1024,compressionQuality:5});_0x7c1bx1e[_0xbeca[23]](_0xbeca[22],function(_0x7c1bx17){logger[_0xbeca[22]](_0xbeca[43],_0x7c1bx17);_0x7c1bx13(_0x7c1bx17)});_0x7c1bx1e[_0xbeca[23]](_0xbeca[21],function(){logger[_0xbeca[33]](_0xbeca[44]);_0x7c1bx12()});_0x7c1bx1e[_0xbeca[45]]()})}function base64Encode(_0x7c1bx19){var _0x7c1bx20=fs[_0xbeca[46]](_0x7c1bx19);return  new Buffer(_0x7c1bx20).toString(_0xbeca[47])}exports[_0xbeca[48]]= function(_0x7c1bx21,_0x7c1bx22){var _0x7c1bx23;var _0x7c1bx24;return tts(_0x7c1bx21,_0x7c1bx22|| _0xbeca[58],1)[_0xbeca[52]](function(_0x7c1bx10){logger[_0xbeca[33]](_0x7c1bx10);_0x7c1bx23= path[_0xbeca[56]](__dirname,_0xbeca[53],rs[_0xbeca[54]](4)+ _0xbeca[57]);return downloadFile(_0x7c1bx10,_0x7c1bx23)})[_0xbeca[52]](function(){_0x7c1bx24= path[_0xbeca[56]](__dirname,_0xbeca[53],rs[_0xbeca[54]](4)+ _0xbeca[55]);return convertFile(_0x7c1bx23,_0x7c1bx24)})[_0xbeca[52]](function(){fs[_0xbeca[35]](_0x7c1bx23);logger[_0xbeca[33]](_0xbeca[49],_0x7c1bx24[_0xbeca[51]](_0xbeca[50])[0]);return _0x7c1bx24[_0xbeca[51]](_0xbeca[50])[0]})};exports[_0xbeca[59]]= function(_0x7c1bx25,_0x7c1bx21,_0x7c1bx22,_0x7c1bx26){var _0x7c1bx10=util[_0xbeca[61]](_0xbeca[60],ISPEECH_API,_0x7c1bx25,encodeURIComponent(_0x7c1bx21),_0x7c1bx22,_0x7c1bx26);var _0x7c1bx23=path[_0xbeca[56]](__dirname,_0xbeca[53],rs[_0xbeca[54]](4)+ _0xbeca[57]);var _0x7c1bx24;return downloadFile(_0x7c1bx10,_0x7c1bx23)[_0xbeca[52]](function(){_0x7c1bx24= path[_0xbeca[56]](__dirname,_0xbeca[53],rs[_0xbeca[54]](4)+ _0xbeca[55]);return convertFile(_0x7c1bx23,_0x7c1bx24)})[_0xbeca[52]](function(){fs[_0xbeca[35]](_0x7c1bx23);return _0x7c1bx24[_0xbeca[51]](_0xbeca[50])[0]})};exports[_0xbeca[62]]= function(_0x7c1bx23,_0x7c1bx25,_0x7c1bx22,_0x7c1bx27){var _0x7c1bx10=util[_0xbeca[61]](_0xbeca[63],ISPEECH_API,_0x7c1bx25,_0x7c1bx22,base64Encode(_0x7c1bx23),_0x7c1bx27?util[_0xbeca[61]](_0xbeca[64],encodeURIComponent(_0x7c1bx27)):_0xbeca[65]);return uploadFile(_0x7c1bx10)[_0xbeca[52]](function(_0x7c1bx18){return querystring[_0xbeca[5]](_0x7c1bx18)})};exports[_0xbeca[66]]= function(){return __dirname}
\ No newline at end of file
index 739497c..30a964a 100644 (file)
@@ -1 +1 @@
-var _0x60b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6E\x65\x74","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x65\x72\x72\x6F\x72","\x2E\x2F\x63\x68\x61\x6E\x6E\x65\x6C","\x30\x2E\x30\x2E\x30\x2E\x30","\x63\x61\x6C\x6C","\x65\x72\x72\x6F\x72","\x45\x5F\x41\x47\x49\x5F\x41\x52\x47\x55\x4D\x45\x4E\x54\x5F\x50\x4F\x52\x54","\x65\x6D\x69\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x6C\x69\x73\x74\x65\x6E","\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67","\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x72\x65\x61\x64\x79","\x45\x5F\x41\x47\x49\x5F\x53\x45\x52\x56\x45\x52\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x64\x65","\x63\x6C\x6F\x73\x65","\x45\x5F\x41\x47\x49\x5F\x53\x45\x52\x56\x45\x52\x5F\x43\x4C\x4F\x53\x45","\x6E\x65\x78\x74\x54\x69\x63\x6B","\x69\x6E\x68\x65\x72\x69\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x60b5[0];var util=require(_0x60b5[1]);var net=require(_0x60b5[2]);var EventEmitter=require(_0x60b5[4])[_0x60b5[3]];var AGIError=require(_0x60b5[5]);var AGIChannel=require(_0x60b5[6]);var AGIServer=function(_0x85d3x7,_0x85d3x8){var _0x85d3x9=this,_0x85d3x7=_0x85d3x7|| 4573,_0x85d3x8=_0x85d3x8|| _0x60b5[7],_0x85d3xa=null;EventEmitter[_0x60b5[8]](_0x85d3x9);function _0x85d3xb(){if(!_0x85d3x7){_0x85d3x9[_0x60b5[11]](_0x60b5[9], new AGIError(_0x60b5[10]));return false};_0x85d3xa= net[_0x60b5[12]]();_0x85d3xa[_0x60b5[13]](_0x85d3x7,_0x85d3x8);_0x85d3xa[_0x60b5[15]](_0x60b5[14],function(){_0x85d3x9[_0x60b5[11]](_0x60b5[14])});_0x85d3xa[_0x60b5[15]](_0x60b5[16],function(_0x85d3xc){var _0x85d3xd= new AGIChannel(_0x85d3xc);_0x85d3xd[_0x60b5[15]](_0x60b5[17],function(){_0x85d3x9[_0x60b5[11]](_0x60b5[16],_0x85d3xd)})});_0x85d3xa[_0x60b5[15]](_0x60b5[9],function(_0x85d3xe){_0x85d3x9[_0x60b5[11]](_0x60b5[9], new AGIError(_0x60b5[18],_0x85d3xe[_0x60b5[19]]))});_0x85d3xa[_0x60b5[15]](_0x60b5[20],function(){_0x85d3x9[_0x60b5[11]](_0x60b5[20], new AGIError(_0x60b5[21]))})}process[_0x60b5[22]](function(){_0x85d3xb()})};util[_0x60b5[23]](AGIServer,EventEmitter);module[_0x60b5[24]]= function(_0x85d3x7,_0x85d3x8){return  new AGIServer(_0x85d3x7,_0x85d3x8)}
\ No newline at end of file
+var _0xf4e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6E\x65\x74","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x65\x72\x72\x6F\x72","\x2E\x2F\x63\x68\x61\x6E\x6E\x65\x6C","\x30\x2E\x30\x2E\x30\x2E\x30","\x63\x61\x6C\x6C","\x65\x72\x72\x6F\x72","\x45\x5F\x41\x47\x49\x5F\x41\x52\x47\x55\x4D\x45\x4E\x54\x5F\x50\x4F\x52\x54","\x65\x6D\x69\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x6C\x69\x73\x74\x65\x6E","\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67","\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x72\x65\x61\x64\x79","\x45\x5F\x41\x47\x49\x5F\x53\x45\x52\x56\x45\x52\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x64\x65","\x63\x6C\x6F\x73\x65","\x45\x5F\x41\x47\x49\x5F\x53\x45\x52\x56\x45\x52\x5F\x43\x4C\x4F\x53\x45","\x6E\x65\x78\x74\x54\x69\x63\x6B","\x69\x6E\x68\x65\x72\x69\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf4e1[0];var util=require(_0xf4e1[1]);var net=require(_0xf4e1[2]);var EventEmitter=require(_0xf4e1[4])[_0xf4e1[3]];var AGIError=require(_0xf4e1[5]);var AGIChannel=require(_0xf4e1[6]);var AGIServer=function(_0x9349x7,_0x9349x8){var _0x9349x9=this,_0x9349x7=_0x9349x7|| 4573,_0x9349x8=_0x9349x8|| _0xf4e1[7],_0x9349xa=null;EventEmitter[_0xf4e1[8]](_0x9349x9);function _0x9349xb(){if(!_0x9349x7){_0x9349x9[_0xf4e1[11]](_0xf4e1[9], new AGIError(_0xf4e1[10]));return false};_0x9349xa= net[_0xf4e1[12]]();_0x9349xa[_0xf4e1[13]](_0x9349x7,_0x9349x8);_0x9349xa[_0xf4e1[15]](_0xf4e1[14],function(){_0x9349x9[_0xf4e1[11]](_0xf4e1[14])});_0x9349xa[_0xf4e1[15]](_0xf4e1[16],function(_0x9349xc){var _0x9349xd= new AGIChannel(_0x9349xc);_0x9349xd[_0xf4e1[15]](_0xf4e1[17],function(){_0x9349x9[_0xf4e1[11]](_0xf4e1[16],_0x9349xd)})});_0x9349xa[_0xf4e1[15]](_0xf4e1[9],function(_0x9349xe){_0x9349x9[_0xf4e1[11]](_0xf4e1[9], new AGIError(_0xf4e1[18],_0x9349xe[_0xf4e1[19]]))});_0x9349xa[_0xf4e1[15]](_0xf4e1[20],function(){_0x9349x9[_0xf4e1[11]](_0xf4e1[20], new AGIError(_0xf4e1[21]))})}process[_0xf4e1[22]](function(){_0x9349xb()})};util[_0xf4e1[23]](AGIServer,EventEmitter);module[_0xf4e1[24]]= function(_0x9349x7,_0x9349x8){return  new AGIServer(_0x9349x7,_0x9349x8)}
\ No newline at end of file
index 9d9ba98..74c9314 100644 (file)
@@ -1 +1 @@
-var _0xd00f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x73\x68\x65\x6C\x6C\x6A\x73","\x6F\x64\x62\x63","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x6D\x6F\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x63\x72\x69\x70\x74\x73","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73","\x6D\x65\x6E\x75","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x72\x70\x63","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x61\x74\x63\x68","\x6E\x61\x6D\x65","\x74\x68\x65\x6E","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65\x42\x79\x49\x64","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x42\x79\x49\x64","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x42\x79\x49\x64","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x64\x73\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x42\x79\x49\x64","\x67\x65\x74\x55\x73\x65\x72","\x67\x65\x74\x55\x73\x65\x72\x42\x79\x49\x64","\x67\x65\x74\x54\x72\x75\x6E\x6B","\x67\x65\x74\x54\x72\x75\x6E\x6B\x42\x79\x49\x64","\x67\x65\x74\x53\x6F\x75\x6E\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x67\x65\x74\x53\x6F\x75\x6E\x64\x50\x61\x74\x68","\x67\x65\x74\x53\x6F\x75\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x6D\x61\x70","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x42\x79\x49\x64","\x25\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x51\x75\x65\x72\x79\x4F\x64\x62\x63","\x45\x72\x72\x6F\x72\x20\x67\x65\x74\x74\x69\x6E\x67\x20\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x25\x73","\x65\x72\x72\x6F\x72","\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79","\x69\x6E\x66\x6F","\x45\x72\x72\x6F\x72\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x20\x25\x73","\x51\x75\x65\x72\x79\x20\x65\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x72\x72\x65\x63\x74\x6C\x79\x20\x25\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x6F\x64\x62\x63\x20\x25\x73","\x63\x6C\x6F\x73\x65","\x71\x75\x65\x72\x79","\x6F\x70\x65\x6E","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x61\x62\x65\x6C","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x5F\x31","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x6E\x69\x64","\x66\x69\x6C\x65","\x63\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x5F","\x72\x61\x6E\x64\x6F\x6D","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x6C\x69\x73\x74\x5F\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x20\x61\x74\x20","\x73\x68\x65\x6C\x6C\x43\x6F\x6D\x6D\x61\x6E\x64","\x74\x72\x69\x6D","","\x72\x65\x70\x6C\x61\x63\x65","\x65\x78\x65\x63","\x67\x6F\x6F\x67\x6C\x65\x54\x54\x53","\x74\x65\x78\x74","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E","\x69\x73\x70\x65\x65\x63\x68\x54\x54\x53","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E\x2D\x55\x53","\x73\x70\x65\x65\x64","\x69\x73\x70\x65\x65\x63\x68\x41\x53\x52","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6D\x6F\x64\x65\x6C","\x69\x73\x43\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x63\x6C\x65\x61\x72","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x63\x6C\x6F\x6E\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x53\x74\x72\x69\x6E\x67","\x72\x65\x70\x6C\x61\x63\x65\x41\x6C\x6C\x56\x61\x72\x69\x61\x62\x6C\x65\x73","\x7B","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x7D","\x65\x78\x74\x72\x61","\x72\x65\x70\x6C\x61\x63\x65\x41\x6C\x6C","\x30","\x2D\x31","\x6D\x61\x78\x52\x65\x74\x72\x79","\x2D","\x73\x79\x6E\x63","\x72\x65\x74\x72\x79","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x41\x47\x49\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x61\x6E\x73\x77\x65\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x41\x4E\x53\x57\x45\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x74\x69\x6D\x65\x6F\x75\x74","\x57\x61\x69\x74\x20\x25\x73\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x62\x65\x66\x6F\x72\x65\x20\x61\x6E\x73\x77\x65\x72","\x77\x61\x69\x74","\x72\x65\x73\x75\x6C\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x43\x41\x4C\x4C\x42\x41\x43\x4B\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x6C\x69\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x64\x65\x6C\x61\x79","\x6D\x69\x6E\x75\x74\x65\x73","\x61\x64\x64","\x43\x41\x4C\x4C\x42\x41\x43\x4B\x20\x61\x64\x64\x65\x64\x20\x70\x68\x6F\x6E\x65\x3A\x20\x25\x73\x20\x6F\x6E\x20\x6C\x69\x73\x74\x3A\x20\x25\x73\x20\x61\x74\x20\x25\x73","\x6E\x6F\x6F\x70","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x43\x55\x53\x54\x4F\x4D\x20\x41\x50\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x45\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x25\x73\x20\x25\x73","\x64\x61\x74\x61\x62\x61\x73\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x44\x41\x54\x41\x42\x41\x53\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x64\x62\x63\x5F\x69\x64","\x6E\x6F\x20\x64\x61\x74\x61\x62\x61\x73\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x6F\x64\x62\x63\x20\x64\x61\x74\x61\x62\x61\x73\x65\x20\x66\x6F\x75\x6E\x64","\x6E\x6F\x20\x71\x75\x65\x72\x79\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x20","\x71\x75\x65\x72\x79\x3A\x20\x25\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x75\x6E\x64","\x25\x73\x5B\x25\x73\x5D\x5B\x25\x73\x5D","\x73\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x6B\x65\x79\x73","\x25\x73\x5F\x52\x4F\x57\x53\x5F\x43\x4F\x55\x4E\x54","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x25\x73\x20\x73\x65\x74","\x64\x69\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x44\x49\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x65\x62\x75\x67","\x73\x69\x70\x5F\x69\x64","\x6E\x6F\x20\x75\x73\x65\x72\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x75\x73\x65\x72\x20\x66\x6F\x75\x6E\x64","\x44\x49\x41\x4C","\x53\x49\x50\x2F\x25\x73","\x6F\x70\x74\x73","\x75\x72\x6C","\x45\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x25\x73","\x65\x6E\x64","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x45\x4E\x44\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x45\x58\x54\x45\x52\x4E\x41\x4C\x20\x44\x49\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x6E\x6F\x20\x74\x72\x75\x6E\x6B\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x74\x72\x75\x6E\x6B\x20\x66\x6F\x75\x6E\x64","\x74\x72\x75\x6E\x6B\x5F\x6E\x61\x6D\x65","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73","\x66\x69\x6E\x61\x6C\x6C\x79","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x46\x49\x4E\x41\x4C\x4C\x59\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x45\x54\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x66\x69\x6C\x65\x5F\x69\x64","\x6E\x6F\x20\x66\x69\x6C\x65\x20\x61\x75\x64\x69\x6F\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x66\x69\x6C\x65\x20\x61\x75\x64\x69\x6F\x20\x66\x6F\x75\x6E\x64","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x6D\x61\x78\x64\x69\x67\x69\x74","\x67\x65\x74\x44\x61\x74\x61","\x74\x65\x73\x74","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x78","\x69","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x6E\x75\x6D","\x2A","\x67\x65\x6E\x65\x72\x61\x74\x65","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x70\x6F\x73","\x66\x69\x72\x73\x74","\x73\x75\x62\x73\x74\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x45\x54\x53\x45\x43\x52\x45\x54\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x67\x6F\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x47\x4F\x41\x4C\x20\x25\x73","\x67\x6F\x74\x6F\x63","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x67\x6F\x74\x6F\x69\x66","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x49\x46\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x20\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x74\x72\x75\x65","\x66\x61\x6C\x73\x65","\x45\x56\x41\x4C\x20\x43\x4F\x4E\x44\x49\x54\x49\x4F\x4E\x20\x25\x73\x20\x25\x73","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x49\x46\x54\x49\x4D\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x6E\x6F\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x66\x6F\x75\x6E\x64","\x49\x46\x54\x49\x4D\x45\x28\x25\x73\x3F\x74\x72\x75\x65\x3A\x66\x61\x6C\x73\x65\x29","\x49\x46\x54\x49\x4D\x45\x20\x25\x73\x20\x25\x73","\x68\x61\x6E\x67\x75\x70","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x48\x41\x4E\x47\x55\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x49\x53\x50\x45\x45\x43\x48\x41\x53\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x6B\x65\x79\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x77\x61\x76","\x64\x69\x72\x4E\x61\x6D\x65","\x74\x6D\x70","\x72\x65\x73\x6F\x6C\x76\x65","\x25\x73\x2E\x25\x73","\x62\x65\x65\x70","\x4E\x4F\x42\x45\x45\x50","\x69\x6E\x74\x4B\x65\x79","\x72\x65\x63\x6F\x72\x64\x46\x69\x6C\x65","\x69\x73\x70\x65\x65\x63\x68\x20\x25\x73\x20\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x75\x6E\x6C\x69\x6E\x6B","\x49\x53\x50\x45\x45\x43\x48\x5F\x41\x53\x52\x5F\x25\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x49\x53\x50\x45\x45\x43\x48\x54\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x74\x65\x78\x74\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x54\x72\x79\x69\x6E\x67\x20\x69\x73\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x25\x73","\x73\x74\x72\x65\x61\x6D\x46\x69\x6C\x65","\x2E\x77\x61\x76","\x69\x73\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x69\x73\x20\x75\x6E\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x6D\x61\x74\x68","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4D\x41\x54\x48\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x6E\x6F\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x6D\x61\x74\x68\x20\x25\x73","\x69\x73\x41\x72\x72\x61\x79","\x25\x73\x5B\x25\x73\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x25\x73\x5B\x6B\x65\x79\x5D\x20\x73\x65\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4D\x45\x4E\x55\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x69\x67\x69\x74","\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4E\x4F\x4F\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x75\x74\x70\x75\x74","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x50\x4C\x41\x59\x42\x41\x43\x4B\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x50\x4C\x41\x59\x42\x41\x43\x4B","\x71\x75\x65\x75\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x51\x55\x45\x55\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6E\x6F\x20\x71\x75\x65\x75\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x64\x65\x78\x4F\x66","\x58","\x51\x55\x45\x55\x45","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x65\x63\x6F\x72\x64","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x52\x45\x43\x4F\x52\x44\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x25\x73\x5F\x25\x73","\x25\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2E\x25\x73","\x25\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73","\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x25\x73\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x44\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x4E\x55\x4D\x42\x45\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x4E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x73\x61\x79\x50\x68\x6F\x6E\x65\x74\x69\x63","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x4D\x41\x49\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x4D\x41\x49\x4C\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x6E\x64\x46\x61\x78","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x46\x41\x58\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x46\x41\x58\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x6E\x64\x53\x4D\x53","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x53\x4D\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x53\x4D\x53\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x73\x74\x61\x72\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x54\x41\x52\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x54\x41\x52\x54\x20\x43\x41\x4C\x4C\x59\x20\x53\x51\x55\x41\x52\x45","\x79\x65\x73","\x41\x6E\x73\x77\x65\x72","\x53\x6B\x69\x70\x70\x65\x64\x20\x41\x6E\x73\x77\x65\x72","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x55\x42\x50\x52\x4F\x4A\x45\x43\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x66\x6F\x75\x6E\x64\x20\x77\x69\x74\x68\x20\x69\x64\x20\x25\x64","\x70\x72\x6F\x6A\x65\x63\x74\x20\x69\x6E\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x6D\x75\x73\x74\x20\x62\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x66\x72\x6F\x6D\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x65\x64\x20\x70\x72\x6F\x6A\x65\x63\x74","\x41\x47\x49","\x61\x67\x69\x3A\x2F\x2F\x25\x73\x2F\x73\x71\x75\x61\x72\x65\x2C\x22\x25\x73\x22\x2C\x22\x25\x73\x22","\x68\x6F\x73\x74","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x73\x79\x73\x74\x65\x6D","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x59\x53\x54\x45\x4D\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x73\x68\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x3A\x20\x25\x73\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x6E\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x20\x25\x73","\x73\x68\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x3A\x20\x25\x73\x20\x72\x65\x73\x75\x6C\x74\x20\x6E\x6F\x20\x73\x74\x6F\x72\x65\x64","\x74\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x4F\x47\x4C\x45\x54\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x54\x72\x79\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x25\x73","\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x25\x73\x20\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x69\x73\x20\x75\x6E\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C","\x6D\x61\x69\x6C\x62\x6F\x78","\x76\x73\x77\x69\x74\x63\x68","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x57\x49\x54\x43\x48\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6A\x6F\x69\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0xd00f[0];var fs=require(_0xd00f[1]);var path=require(_0xd00f[2]);var util=require(_0xd00f[3]);var _=require(_0xd00f[4]);var sh=require(_0xd00f[5]);var odbc=require(_0xd00f[6])();var rs=require(_0xd00f[7]);var moment=require(_0xd00f[8]);var logger=require(_0xd00f[10])(_0xd00f[9]);var config=require(_0xd00f[11]);var scripts=require(_0xd00f[12]);var FILES_PATH=_0xd00f[13];var verticesWithRetry=[_0xd00f[14],_0xd00f[15],_0xd00f[16]];var AGIVertices=function(_0xba6fxf,_0xba6fx10){this[_0xd00f[17]]= _0xba6fxf;this[_0xd00f[18]]= _0xba6fx10};AGIVertices[_0xd00f[20]][_0xd00f[19]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[24]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx14[_0xd00f[22]]:false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[25]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[26]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx14[_0xd00f[22]]:false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[27]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[28]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx14[_0xd00f[22]]:false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[29]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[31]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx14[_0xd00f[30]]:false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[32]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[33]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx14[_0xd00f[22]]:false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[34]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[35]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx14[_0xd00f[22]]:false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[36]]= function(_0xba6fx11,_0xba6fx12){var _0xba6fx15=this;this[_0xd00f[18]][_0xd00f[39]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,(_0xba6fx14)?_0xba6fx15[_0xd00f[38]](_0xba6fx14[_0xd00f[37]]):false)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[40]]= function(_0xba6fx11,_0xba6fx12){this[_0xd00f[18]][_0xd00f[44]](_0xba6fx11)[_0xd00f[23]](function(_0xba6fx14){if(_0xba6fx14){if(_0xba6fx14[_0xd00f[41]]){_0xba6fx12(null,[_0xba6fx14[_0xd00f[42]]])}else {_0xba6fx12(null,_[_0xd00f[43]](_0xba6fx14.Intervals,_0xd00f[42]))}}else {_0xba6fx12(null,false)}})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[38]]= function(_0xba6fx16){return util[_0xd00f[46]](_0xd00f[45],FILES_PATH,_0xba6fx16)};AGIVertices[_0xd00f[20]][_0xd00f[47]]= function(_0xba6fx17,_0xba6fx18,_0xba6fx12){odbc[_0xd00f[57]](_0xba6fx17,function(_0xba6fx13){if(_0xba6fx13){logger[_0xd00f[49]](_0xd00f[48],_0xba6fx13);_0xba6fx12(_0xba6fx13)}else {logger[_0xd00f[51]](_0xd00f[50]);odbc[_0xd00f[56]](_0xba6fx18,function(_0xba6fx13,_0xba6fx19){if(_0xba6fx13){logger[_0xd00f[51]](_0xd00f[52],_0xba6fx18);_0xba6fx12(_0xba6fx13)}else {logger[_0xd00f[51]](_0xd00f[53],_0xba6fx18);odbc[_0xd00f[55]](function(_0xba6fx13){if(_0xba6fx13){logger[_0xd00f[49]](_0xd00f[54],_0xba6fx13)};_0xba6fx12(null,_0xba6fx19)})}})}})};AGIVertices[_0xd00f[20]][_0xd00f[58]]= function(_0xba6fx1a,_0xba6fx19,_0xba6fx12){this[_0xd00f[18]][_0xd00f[58]]({uniqueid:this[_0xd00f[17]][_0xd00f[59]],node:_0xba6fx1a[_0xd00f[60]],application:_0xba6fx1a[_0xd00f[61]],data:_0xba6fx19|| null,project_name:this[_0xd00f[17]][_0xd00f[62]],callerid:this[_0xd00f[17]][_0xd00f[63]]})[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,_0xba6fx14)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[64]]= function(_0xba6fx1a,_0xba6fx1b,_0xba6fx1c,_0xba6fx12){this[_0xd00f[18]][_0xd00f[64]]({uniqueid:this[_0xd00f[17]][_0xd00f[59]],callerid:this[_0xd00f[17]][_0xd00f[63]],calleridname:this[_0xd00f[17]][_0xd00f[65]],context:this[_0xd00f[17]][_0xd00f[66]],extension:this[_0xd00f[17]][_0xd00f[67]],priority:this[_0xd00f[17]][_0xd00f[68]],accountcode:this[_0xd00f[17]][_0xd00f[69]],dnid:this[_0xd00f[17]][_0xd00f[70]],projectName:this[_0xd00f[17]][_0xd00f[62]],saveName:_0xba6fx1b,filename:_0xba6fx1a[_0xd00f[71]]|| _0xba6fx1b,savePath:_0xba6fx1c})[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,_0xba6fx14)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[72]]= function(_0xba6fx1d,_0xba6fx12){this[_0xd00f[18]][_0xd00f[72]]({firstName:_0xba6fx1d[_0xd00f[22]]|| (_0xd00f[73]+ Math[_0xd00f[74]]()),lastName:_0xba6fx1d[_0xd00f[75]],phone:_0xba6fx1d[_0xd00f[76]],ListId:_0xba6fx1d[_0xd00f[77]],scheduledAt:_0xba6fx1d[_0xd00f[78]],callbackUniqueid:this[_0xd00f[17]][_0xd00f[59]],tags:_0xd00f[79],description:_0xd00f[80]+ _0xba6fx1d[_0xd00f[78]].toString()})[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,_0xba6fx14)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[81]]= function(_0xba6fx1e,_0xba6fx12){sh[_0xd00f[85]](_[_0xd00f[82]](_0xba6fx1e),function(_0xba6fx1f,_0xba6fx20){var _0xba6fx21=_0xba6fx20[_0xd00f[84]](/(\r\n|\n|\r)/gm,_0xd00f[83]);_0xba6fx12(null,_0xba6fx21)})};AGIVertices[_0xd00f[20]][_0xd00f[86]]= function(_0xba6fx1a,_0xba6fx12){scripts[_0xd00f[86]](_0xba6fx1a[_0xd00f[87]],_0xba6fx1a[_0xd00f[88]]|| _0xd00f[89],1)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,_0xba6fx14)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[90]]= function(_0xba6fx1a,_0xba6fx12){scripts[_0xd00f[90]](_0xba6fx1a[_0xd00f[91]],_0xba6fx1a[_0xd00f[87]],_0xba6fx1a[_0xd00f[92]]|| _0xd00f[93],_0xba6fx1a[_0xd00f[94]])[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,_0xba6fx14)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[95]]= function(_0xba6fx1a,_0xba6fx22,_0xba6fx12){scripts[_0xd00f[95]](_0xba6fx22,_0xba6fx1a[_0xd00f[91]],_0xba6fx1a[_0xd00f[96]]|| _0xd00f[93],this[_0xd00f[98]](_0xba6fx1a[_0xd00f[97]])?_0xba6fx1a[_0xd00f[97]]:undefined)[_0xd00f[23]](function(_0xba6fx14){_0xba6fx12(null,_0xba6fx14)})[_0xd00f[21]](function(_0xba6fx13){_0xba6fx12(_0xba6fx13)})};AGIVertices[_0xd00f[20]][_0xd00f[99]]= function(_0xba6fx1a){var _0xba6fx23=_[_0xd00f[100]](verticesWithRetry,_0xba6fx1a[_0xd00f[61]])?_0xba6fx1a:_[_0xd00f[101]](_0xba6fx1a);for(var _0xba6fx24 in _0xba6fx23){if(_0xba6fx23[_0xd00f[102]](_0xba6fx24)){if(_0xba6fx23[_0xba6fx24]&& _[_0xd00f[103]](_0xba6fx23[_0xba6fx24])){_0xba6fx23[_0xba6fx24]= this[_0xd00f[104]](_0xba6fx23[_0xba6fx24])}}};return _0xba6fx23};AGIVertices[_0xd00f[20]][_0xd00f[104]]= function(_0xba6fx25){var _0xba6fx26=_0xba6fx25[_0xd00f[106]](_0xd00f[105]);for(var _0xba6fx27=1;_0xba6fx27< _0xba6fx26[_0xd00f[107]];_0xba6fx27+= 1){var _0xba6fx28=_0xba6fx26[_0xba6fx27][_0xd00f[106]](_0xd00f[108]);if(_0xba6fx28[_0xd00f[107]]> 1){_0xba6fx25= _0xba6fx25[_0xd00f[110]](_0xd00f[105]+ _0xba6fx28[0]+ _0xd00f[108],this[_0xd00f[17]][_0xd00f[19]](_0xba6fx28[0])[_0xd00f[109]]|| (_0xba6fx28[0]))}};if(_0xba6fx26[_0xd00f[107]]=== 1){return _0xba6fx25};return this[_0xd00f[104]](_0xba6fx25)};AGIVertices[_0xd00f[20]][_0xd00f[98]]= function(_0xba6fx29){return _0xba6fx29&& _0xba6fx29!== _0xd00f[111]&& _0xba6fx29!== _0xd00f[112]&& _0xba6fx29!== _0xd00f[83]};AGIVertices[_0xd00f[20]][_0xd00f[113]]= function(_0xba6fx1a){this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xd00f[114]);_0xba6fx1a[_0xd00f[116]]= _0xba6fx1a[_0xd00f[113]];return {code:200,result:_0xd00f[114]}};AGIVertices[_0xd00f[20]][_0xd00f[9]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[117],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[9]]([_0xba6fx1a[_0xd00f[118]],_0xba6fx1a[_0xd00f[119]]])};AGIVertices[_0xd00f[20]][_0xd00f[120]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[121],_0xba6fx1a[_0xd00f[60]]));if(this[_0xd00f[98]](_0xba6fx1a[_0xd00f[122]])){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[123],_0xba6fx1a[_0xd00f[122]]));var _0xba6fx19=this[_0xd00f[17]][_0xd00f[124]](_0xba6fx1a[_0xd00f[122]]);if(_0xba6fx19[_0xd00f[125]]===  -1){return _0xba6fx19}};return this[_0xd00f[17]][_0xd00f[120]]()};AGIVertices[_0xd00f[20]][_0xd00f[79]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[126],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[77]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[127])};_0xba6fx1a[_0xd00f[78]]= moment();if(this[_0xd00f[98]](_0xba6fx1a[_0xd00f[128]])){_0xba6fx1a[_0xd00f[78]]= moment()[_0xd00f[130]](_0xba6fx1a[_0xd00f[128]],_0xd00f[129])};this[_0xd00f[72]][_0xd00f[115]](this,_0xba6fx1a);return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[131],_0xba6fx1a[_0xd00f[76]],_0xba6fx1a[_0xd00f[77]],_0xba6fx1a[_0xd00f[78]]))};AGIVertices[_0xd00f[20]][_0xd00f[133]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[134],_0xba6fx1a[_0xd00f[60]]));var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xba6fx1a[_0xd00f[135]],_0xba6fx1a[_0xd00f[136]]);if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[137],_0xba6fx1a[_0xd00f[135]],_0xba6fx1a[_0xd00f[136]]))};AGIVertices[_0xd00f[20]][_0xd00f[138]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[139],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[140]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[141])};var _0xba6fx17=this[_0xd00f[29]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[140]]);if(!_0xba6fx17){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[142])};if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[56]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[143])};var _0xba6fx18=_0xba6fx1a[_0xd00f[56]][_0xd00f[84]](/(\r\n|\n|\r)/gm,_0xd00f[144]);this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[145],_0xba6fx18));var _0xba6fx2b=this[_0xd00f[47]][_0xd00f[115]](this,_0xba6fx17,_0xba6fx18);this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx18);if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[147])};var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(!_0xba6fx2c){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[148])};var _0xba6fx15=this;_0xba6fx2b[_0xd00f[151]](function(_0xba6fx29,_0xba6fx2d){Object[_0xd00f[152]](_0xba6fx29)[_0xd00f[151]](function(_0xba6fx24){_0xba6fx15[_0xd00f[17]][_0xd00f[150]](util[_0xd00f[46]](_0xd00f[149],_0xba6fx2c,_0xba6fx2d,_0xba6fx24),_0xba6fx29[_0xba6fx24])})});this[_0xd00f[17]][_0xd00f[150]](util[_0xd00f[46]](_0xd00f[153],_0xba6fx2c),_0xba6fx2b[_0xd00f[107]]);return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[154],_0xba6fx2c))};AGIVertices[_0xd00f[20]][_0xd00f[155]]= function(_0xba6fx1a){logger[_0xd00f[157]](util[_0xd00f[46]](_0xd00f[156],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[158]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[159])};var _0xba6fx2e=this[_0xd00f[32]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[158]]);if(!_0xba6fx2e){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[160])};var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xd00f[161],[util[_0xd00f[46]](_0xd00f[162],_0xba6fx2e),_0xba6fx1a[_0xd00f[122]],_0xba6fx1a[_0xd00f[163]],_0xba6fx1a[_0xd00f[164]]]);if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[165],_0xd00f[161]))};AGIVertices[_0xd00f[20]][_0xd00f[166]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[167],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[166])};AGIVertices[_0xd00f[20]][_0xd00f[168]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[169],_0xba6fx1a[_0xd00f[60]]));var _0xba6fx2f=_0xd00f[83];if(_0xba6fx1a[_0xd00f[170]]){if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[170]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[171])}else {var _0xba6fx11=parseInt(_0xba6fx1a[_0xd00f[170]],10);if(isNaN(_0xba6fx11)){_0xba6fx2f= _0xba6fx1a[_0xd00f[170]]}else {_0xba6fx2f= this[_0xd00f[34]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[170]]);if(!_0xba6fx2f){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[172])}}}}else {if(_0xba6fx1a[_0xd00f[173]]){_0xba6fx2f= _0xba6fx1a[_0xd00f[173]]}else {return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[171])}};var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xd00f[161],[util[_0xd00f[46]](_0xd00f[174],_0xba6fx2f,_0xba6fx1a[_0xd00f[76]]),_0xba6fx1a[_0xd00f[122]],_0xba6fx1a[_0xd00f[163]],_0xba6fx1a[_0xd00f[164]]]);if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[165],_0xd00f[161]))};AGIVertices[_0xd00f[20]][_0xd00f[175]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[176],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[175])};AGIVertices[_0xd00f[20]][_0xd00f[15]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[177],_0xba6fx1a[_0xd00f[60]]));if(_0xba6fx1a[_0xd00f[116]]=== 0){return this[_0xd00f[113]](_0xba6fx1a)};_0xba6fx1a[_0xd00f[116]]-= 1;if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[178]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[179])};var _0xba6fx30=this[_0xd00f[36]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[178]]);if(!_0xba6fx30){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[180])};if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){return this[_0xd00f[17]][_0xd00f[49]](_0xd00f[147])};var _0xba6fx19=this[_0xd00f[17]][_0xd00f[183]](_0xba6fx30,_0xba6fx1a[_0xd00f[181]],_0xba6fx1a[_0xd00f[182]]);var _0xba6fx31=_0xba6fx19[_0xd00f[125]]?_0xba6fx19[_0xd00f[125]].toString():_0xd00f[83];logger[_0xd00f[51]](_0xd00f[184],JSON[_0xd00f[185]](_0xba6fx19));if(_0xba6fx19[_0xd00f[125]]===  -1){this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx31);return _0xba6fx19}else {if(_0xba6fx19[_0xd00f[109]]=== _0xd00f[122]){_0xba6fx19[_0xd00f[125]]= (_0xba6fx31[_0xd00f[107]]>= parseInt(_0xba6fx1a[_0xd00f[186]]))?_0xd00f[187]:_0xd00f[188]}else {_0xba6fx19[_0xd00f[125]]= ((_0xba6fx31[_0xd00f[107]]>= parseInt(_0xba6fx1a[_0xd00f[186]]))&& (_0xba6fx31[_0xd00f[107]]<= parseInt(_0xba6fx1a[_0xd00f[182]])))?_0xd00f[187]:_0xd00f[188]}};var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(!_0xba6fx2c){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[148])};this[_0xd00f[17]][_0xd00f[150]](_0xba6fx2c,_0xba6fx31);if(this[_0xd00f[98]](_0xba6fx1a[_0xd00f[189]])){var _0xba6fx32=parseInt(_0xba6fx1a[_0xd00f[189]],10);var _0xba6fx29=rs[_0xd00f[191]]({charset:_0xd00f[190],length:_0xba6fx32});var _0xba6fx33=_0xba6fx31[_0xd00f[107]];if(_0xba6fx33> 0){if(_0xba6fx33> _0xba6fx32){this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,(_0xba6fx1a[_0xd00f[192]]=== _0xd00f[193])?_0xba6fx29+ _0xba6fx31[_0xd00f[194]](_0xba6fx32):_0xba6fx31[_0xd00f[194]](0,_0xba6fx33- _0xba6fx32)+ _0xba6fx29)}else {this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,rs[_0xd00f[191]]({charset:_0xd00f[190],length:_0xba6fx33}))}}else {this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xd00f[83])}}else {this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx31)};return _0xba6fx19};AGIVertices[_0xd00f[20]][_0xd00f[16]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[195],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[15]](_0xba6fx1a)};AGIVertices[_0xd00f[20]][_0xd00f[196]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[197],_0xba6fx1a[_0xd00f[60]]));this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx1a[_0xd00f[198]]);return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[199],_0xba6fx1a[_0xd00f[198]]))};AGIVertices[_0xd00f[20]][_0xd00f[200]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[201],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[202]](_0xba6fx1a[_0xd00f[66]],_0xba6fx1a[_0xd00f[67]],_0xba6fx1a[_0xd00f[68]])};AGIVertices[_0xd00f[20]][_0xd00f[203]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[204],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[205]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[206])};try{var _0xba6fx34=eval(_0xba6fx1a[_0xd00f[205]])?_0xd00f[207]:_0xd00f[208];this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[209],_0xba6fx1a[_0xd00f[205]],_0xba6fx34));return {code:200,result:_0xba6fx34}}catch(e){return {code:200,result:_0xd00f[208]}}};AGIVertices[_0xd00f[20]][_0xd00f[210]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[211],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[212]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[213])};var _0xba6fx35=this[_0xd00f[40]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[212]]);if(!_0xba6fx35){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[214])};for(var _0xba6fx27=0;_0xba6fx27< _0xba6fx35[_0xd00f[107]];_0xba6fx27+= 1){var _0xba6fx36=this[_0xd00f[17]][_0xd00f[19]](util[_0xd00f[46]](_0xd00f[215],_0xba6fx35[_0xba6fx27]));if(_0xba6fx36[_0xd00f[125]]===  -1){return _0xba6fx36};logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[216],_0xba6fx35[_0xba6fx27],_0xba6fx36[_0xd00f[109]]));if(_0xba6fx36[_0xd00f[109]]=== _0xd00f[207]){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[216],_0xba6fx35[_0xba6fx27],_0xd00f[207]));this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[216],_0xba6fx35[_0xba6fx27],_0xd00f[207]));return {code:200,result:_0xd00f[207]}}else {logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[216],_0xba6fx35[_0xba6fx27],_0xd00f[208]));this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[216],_0xba6fx35[_0xba6fx27],_0xd00f[208]))}};return {code:200,result:_0xd00f[208]}};AGIVertices[_0xd00f[20]][_0xd00f[217]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[218],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[217]]()};AGIVertices[_0xd00f[20]][_0xd00f[219]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[220],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[91]])){return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[221])};var _0xba6fx37=_0xba6fx1a[_0xd00f[222]]|| _0xd00f[223];var _0xba6fx22=path[_0xd00f[226]](scripts[_0xd00f[224]](),_0xd00f[225],rs[_0xd00f[191]](4));var _0xba6fx1b=util[_0xd00f[46]](_0xd00f[227],_0xba6fx22,_0xba6fx37);var _0xba6fx38=true;if(_0xba6fx1a[_0xd00f[228]]=== _0xd00f[229]){_0xba6fx38= false};var _0xba6fx19=this[_0xd00f[17]][_0xd00f[231]](_0xba6fx22,_0xba6fx37,_0xba6fx1a[_0xd00f[230]],_0xba6fx1a[_0xd00f[122]],undefined,_0xba6fx38);if(_0xba6fx19[_0xd00f[125]]!==  -1){this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[232],_0xba6fx1b));var _0xba6fx2b=this[_0xd00f[95]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx1b);fs[_0xd00f[233]](_0xba6fx1b);if(_0xba6fx2b){for(var _0xba6fx24 in _0xba6fx2b){if(_0xba6fx2b[_0xd00f[102]](_0xba6fx24)){this[_0xd00f[17]][_0xd00f[150]](util[_0xd00f[46]](_0xd00f[234],_0xba6fx24[_0xd00f[235]]()),_0xba6fx2b[_0xba6fx24])}};return this[_0xd00f[17]][_0xd00f[132]](JSON[_0xd00f[185]](_0xba6fx2b))}};return _0xba6fx19};AGIVertices[_0xd00f[20]][_0xd00f[236]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[237],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[91]])){return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[221])};if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[87]])){return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[238])};this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[239],_0xba6fx1a[_0xd00f[87]]));var _0xba6fx39=this[_0xd00f[90]][_0xd00f[115]](this,_0xba6fx1a);if(_0xba6fx39){this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[232],_0xba6fx39));var _0xba6fx19=this[_0xd00f[17]][_0xd00f[240]](_0xba6fx39,_0xba6fx1a[_0xd00f[230]]);fs[_0xd00f[233]](_0xba6fx39+ _0xd00f[241]);return _0xba6fx19};return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[242])};AGIVertices[_0xd00f[20]][_0xd00f[243]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[244],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[245]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[246])};this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[247],_0xba6fx1a[_0xd00f[245]]));var _0xba6fx2b=eval(_0xba6fx1a[_0xd00f[245]]);if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[147])};var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(!_0xba6fx2c){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[148])};if(_[_0xd00f[248]](_0xba6fx2b)){var _0xba6fx15=this;_0xba6fx2b[_0xd00f[151]](function(_0xba6fx29,_0xba6fx24){_0xba6fx15[_0xd00f[17]][_0xd00f[150]](util[_0xd00f[46]](_0xd00f[249],_0xba6fx2c,_0xba6fx24),_0xba6fx29)});return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[250],_0xba6fx2c))}else {return this[_0xd00f[17]][_0xd00f[150]](_0xba6fx2c,_0xba6fx2b)}};AGIVertices[_0xd00f[20]][_0xd00f[14]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[251],_0xba6fx1a[_0xd00f[60]]));if(_0xba6fx1a[_0xd00f[116]]=== 0){return this[_0xd00f[113]](_0xba6fx1a)};_0xba6fx1a[_0xd00f[116]]-= 1;if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[178]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[179])};var _0xba6fx30=this[_0xd00f[36]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[178]]);if(!_0xba6fx30){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[180])};var _0xba6fx19=this[_0xd00f[17]][_0xd00f[183]](_0xba6fx30,_0xba6fx1a[_0xd00f[181]],_0xba6fx1a[_0xd00f[252]]);var _0xba6fx31=_0xba6fx19[_0xd00f[125]];if(_0xba6fx19[_0xd00f[125]]===  -1){this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xd00f[112]);return _0xba6fx19}else {if(_0xba6fx19[_0xd00f[109]]=== _0xd00f[122]){_0xba6fx19[_0xd00f[125]]= (_0xba6fx19[_0xd00f[125]][_0xd00f[107]]> 0)?_0xba6fx19[_0xd00f[125]]:_0xd00f[253]}};if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){this[_0xd00f[17]][_0xd00f[132]](_0xd00f[147])}else {var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(!_0xba6fx2c){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[148])};this[_0xd00f[17]][_0xd00f[150]](_0xba6fx2c,_0xba6fx31)};this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx31);return _0xba6fx19};AGIVertices[_0xd00f[20]][_0xd00f[132]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[254],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[132]](_0xba6fx1a[_0xd00f[255]]|| _0xba6fx1a[_0xd00f[60]])};AGIVertices[_0xd00f[20]][_0xd00f[256]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[257],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[178]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[179])};var _0xba6fx30=this[_0xd00f[36]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[178]]);if(!_0xba6fx30){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[180])};var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xd00f[258],[_0xba6fx30,_0xba6fx1a[_0xd00f[163]]]);if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[137],_0xd00f[258],_0xba6fx30))};AGIVertices[_0xd00f[20]][_0xd00f[259]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[260],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[261]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[262])};var _0xba6fx3a=_0xd00f[83];var _0xba6fx11=parseInt(_0xba6fx1a[_0xd00f[261]],10);if(isNaN(_0xba6fx11)){_0xba6fx3a= _0xba6fx1a[_0xd00f[261]]}else {_0xba6fx3a= this[_0xd00f[25]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[261]]);if(!_0xba6fx3a){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[263])}};var _0xba6fx3b=_0xd00f[83];if(this[_0xd00f[98]](_0xba6fx1a[_0xd00f[178]])){var _0xba6fx3c=this[_0xd00f[36]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[178]]);if(_0xba6fx3c){_0xba6fx3b= _0xba6fx3c}};this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx3a);if(_0xba6fx1a[_0xd00f[163]][_0xd00f[264]](_0xd00f[187])< 0){_0xba6fx1a[_0xd00f[163]]+= _0xd00f[187]};if(_0xba6fx1a[_0xd00f[163]][_0xd00f[264]](_0xd00f[265])< 0){_0xba6fx1a[_0xd00f[163]]+= _0xd00f[265]};var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xd00f[266],[_0xba6fx3a,_0xba6fx1a[_0xd00f[163]],_0xba6fx1a[_0xd00f[164]],_0xba6fx3b,_0xba6fx1a[_0xd00f[122]],_0xba6fx1a[_0xd00f[9]],_0xba6fx1a[_0xd00f[267]],_0xba6fx1a[_0xd00f[268]],_0xd00f[83],_0xba6fx1a[_0xd00f[269]]]);if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[137],_0xd00f[266],_0xba6fx3a))};AGIVertices[_0xd00f[20]][_0xd00f[270]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[271],_0xba6fx1a[_0xd00f[60]]));var _0xba6fx37=_0xba6fx1a[_0xd00f[222]]|| _0xd00f[223];var _0xba6fx1b=util[_0xd00f[46]](_0xd00f[272],this[_0xd00f[17]][_0xd00f[59]],rs[_0xd00f[191]](5));var _0xba6fx1c=util[_0xd00f[46]](_0xd00f[273],FILES_PATH,_0xba6fx1b,_0xba6fx37);var _0xba6fx3d=util[_0xd00f[46]](_0xd00f[274],FILES_PATH,_0xba6fx1b);this[_0xd00f[64]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx1b,_0xba6fx1c);this[_0xd00f[17]][_0xd00f[150]](_0xd00f[275],_0xba6fx1b);logger[_0xd00f[51]](_0xd00f[276],_0xba6fx3d,_0xba6fx37,_0xba6fx1a[_0xd00f[277]],_0xba6fx1a[_0xd00f[122]]);return this[_0xd00f[17]][_0xd00f[231]](_0xba6fx3d,_0xba6fx37,_0xba6fx1a[_0xd00f[277]],_0xba6fx1a[_0xd00f[122]],undefined,true)};AGIVertices[_0xd00f[20]][_0xd00f[278]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[279],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[281]](_0xba6fx1a[_0xd00f[280]][_0xd00f[84]](/\s+/g,_0xd00f[83]),_0xba6fx1a[_0xd00f[277]])};AGIVertices[_0xd00f[20]][_0xd00f[282]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[283],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[285]](_0xba6fx1a[_0xd00f[284]][_0xd00f[84]](/\s+/g,_0xd00f[83]),_0xba6fx1a[_0xd00f[277]])};AGIVertices[_0xd00f[20]][_0xd00f[286]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[287],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[288]](_0xba6fx1a[_0xd00f[87]],_0xba6fx1a[_0xd00f[277]])};AGIVertices[_0xd00f[20]][_0xd00f[289]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[290],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[291])};AGIVertices[_0xd00f[20]][_0xd00f[292]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[293],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[294])};AGIVertices[_0xd00f[20]][_0xd00f[295]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[296],_0xba6fx1a[_0xd00f[60]]));return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[297])};AGIVertices[_0xd00f[20]][_0xd00f[298]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[299],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[300])};var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(!_0xba6fx2c){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[148])};return this[_0xd00f[17]][_0xd00f[150]](_0xba6fx2c,_0xba6fx1a[_0xd00f[301]])};AGIVertices[_0xd00f[20]][_0xd00f[302]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[303],_0xba6fx1a[_0xd00f[60]]));this[_0xd00f[17]][_0xd00f[132]](_0xd00f[304]);if(_0xba6fx1a[_0xd00f[120]]=== _0xd00f[305]){this[_0xd00f[17]][_0xd00f[132]](_0xd00f[306]);return this[_0xd00f[17]][_0xd00f[120]]()};return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[307])};AGIVertices[_0xd00f[20]][_0xd00f[308]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[309],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[310]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[311])};var _0xba6fx3e=this[_0xd00f[27]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[310]]);if(!this[_0xd00f[98]](_0xba6fx3e)){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,util[_0xd00f[46]](_0xd00f[312],_0xba6fx1a[_0xd00f[310]]))};if(_0xba6fx3e=== this[_0xd00f[17]][_0xd00f[62]]){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[313])};this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx3e);var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xd00f[314],util[_0xd00f[46]](_0xd00f[315],config[_0xd00f[9]][_0xd00f[316]]|| _0xd00f[317],_0xba6fx3e,this[_0xd00f[17]][_0xd00f[62]]));if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[137],_0xd00f[314],_0xba6fx3e))};AGIVertices[_0xd00f[20]][_0xd00f[318]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[319],_0xba6fx1a[_0xd00f[60]]));var _0xba6fx20=this[_0xd00f[81]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[118]]);this[_0xd00f[58]][_0xd00f[115]](this,_0xba6fx1a,_0xba6fx1a[_0xd00f[118]]);if(this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(_0xba6fx2c){this[_0xd00f[17]][_0xd00f[150]](_0xba6fx2c,_0xba6fx20);return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[320],_0xba6fx1a[_0xd00f[118]],_0xba6fx2c))}};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[321],_0xba6fx1a[_0xd00f[118]]))};AGIVertices[_0xd00f[20]][_0xd00f[322]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[323],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[87]])){return this[_0xd00f[17]][_0xd00f[132]](_0xd00f[238])};this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[324],_0xba6fx1a[_0xd00f[87]]));var _0xba6fx39=this[_0xd00f[86]][_0xd00f[115]](this,_0xba6fx1a);if(_0xba6fx39){this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[325],_0xba6fx39));var _0xba6fx19=this[_0xd00f[17]][_0xd00f[240]](_0xba6fx39);fs[_0xd00f[233]](_0xba6fx39+ _0xd00f[241]);return _0xba6fx19};return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[326])};AGIVertices[_0xd00f[20]][_0xd00f[327]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[328],_0xba6fx1a[_0xd00f[60]]));var _0xba6fx2a=this[_0xd00f[17]][_0xd00f[85]](_0xd00f[329],[_0xba6fx1a[_0xd00f[330]],_0xba6fx1a[_0xd00f[136]]]);if(_0xba6fx2a[_0xd00f[125]]===  -1){return _0xba6fx2a};return this[_0xd00f[17]][_0xd00f[132]](util[_0xd00f[46]](_0xd00f[137],_0xd00f[329],_0xba6fx1a[_0xd00f[330]]))};AGIVertices[_0xd00f[20]][_0xd00f[331]]= function(_0xba6fx1a){logger[_0xd00f[51]](util[_0xd00f[46]](_0xd00f[332],_0xba6fx1a[_0xd00f[60]]));if(!this[_0xd00f[98]](_0xba6fx1a[_0xd00f[146]])){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[300])};var _0xba6fx2c=this[_0xd00f[19]][_0xd00f[115]](this,_0xba6fx1a[_0xd00f[146]]);if(!_0xba6fx2c){return this[_0xd00f[17]][_0xd00f[49]](_0xba6fx1a,_0xd00f[148])};var _0xba6fx36=this[_0xd00f[17]][_0xd00f[19]](_0xba6fx2c);return {code:200,result:(_0xba6fx36[_0xd00f[109]])?_0xba6fx36[_0xd00f[109]]:_0xd00f[114]}};String[_0xd00f[20]][_0xd00f[110]]= function(_0xba6fx3f,_0xba6fx40){return this[_0xd00f[106]](_0xba6fx3f)[_0xd00f[333]](_0xba6fx40)};module[_0xd00f[334]]= AGIVertices
\ No newline at end of file
+var _0xb6e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x73\x68\x65\x6C\x6C\x6A\x73","\x6F\x64\x62\x63","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x6D\x6F\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x63\x72\x69\x70\x74\x73","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73","\x6D\x65\x6E\x75","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x72\x70\x63","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x61\x74\x63\x68","\x6E\x61\x6D\x65","\x74\x68\x65\x6E","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65\x42\x79\x49\x64","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x42\x79\x49\x64","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x42\x79\x49\x64","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x64\x73\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x42\x79\x49\x64","\x67\x65\x74\x55\x73\x65\x72","\x67\x65\x74\x55\x73\x65\x72\x42\x79\x49\x64","\x67\x65\x74\x54\x72\x75\x6E\x6B","\x67\x65\x74\x54\x72\x75\x6E\x6B\x42\x79\x49\x64","\x67\x65\x74\x53\x6F\x75\x6E\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x67\x65\x74\x53\x6F\x75\x6E\x64\x50\x61\x74\x68","\x67\x65\x74\x53\x6F\x75\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x6D\x61\x70","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x42\x79\x49\x64","\x25\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x51\x75\x65\x72\x79\x4F\x64\x62\x63","\x45\x72\x72\x6F\x72\x20\x67\x65\x74\x74\x69\x6E\x67\x20\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x25\x73","\x65\x72\x72\x6F\x72","\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79","\x69\x6E\x66\x6F","\x45\x72\x72\x6F\x72\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x20\x25\x73","\x51\x75\x65\x72\x79\x20\x65\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x72\x72\x65\x63\x74\x6C\x79\x20\x25\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x6F\x64\x62\x63\x20\x25\x73","\x63\x6C\x6F\x73\x65","\x71\x75\x65\x72\x79","\x6F\x70\x65\x6E","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x61\x62\x65\x6C","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x5F\x31","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x6E\x69\x64","\x66\x69\x6C\x65","\x63\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x5F","\x72\x61\x6E\x64\x6F\x6D","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x6C\x69\x73\x74\x5F\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x20\x61\x74\x20","\x73\x68\x65\x6C\x6C\x43\x6F\x6D\x6D\x61\x6E\x64","\x74\x72\x69\x6D","","\x72\x65\x70\x6C\x61\x63\x65","\x65\x78\x65\x63","\x67\x6F\x6F\x67\x6C\x65\x54\x54\x53","\x74\x65\x78\x74","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E","\x69\x73\x70\x65\x65\x63\x68\x54\x54\x53","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E\x2D\x55\x53","\x73\x70\x65\x65\x64","\x69\x73\x70\x65\x65\x63\x68\x41\x53\x52","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6D\x6F\x64\x65\x6C","\x69\x73\x43\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x63\x6C\x65\x61\x72","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x63\x6C\x6F\x6E\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x53\x74\x72\x69\x6E\x67","\x72\x65\x70\x6C\x61\x63\x65\x41\x6C\x6C\x56\x61\x72\x69\x61\x62\x6C\x65\x73","\x7B","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x7D","\x65\x78\x74\x72\x61","\x72\x65\x70\x6C\x61\x63\x65\x41\x6C\x6C","\x30","\x2D\x31","\x6D\x61\x78\x52\x65\x74\x72\x79","\x2D","\x73\x79\x6E\x63","\x72\x65\x74\x72\x79","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x41\x47\x49\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x61\x6E\x73\x77\x65\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x41\x4E\x53\x57\x45\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x74\x69\x6D\x65\x6F\x75\x74","\x57\x61\x69\x74\x20\x25\x73\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x62\x65\x66\x6F\x72\x65\x20\x61\x6E\x73\x77\x65\x72","\x77\x61\x69\x74","\x72\x65\x73\x75\x6C\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x43\x41\x4C\x4C\x42\x41\x43\x4B\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x6C\x69\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x64\x65\x6C\x61\x79","\x6D\x69\x6E\x75\x74\x65\x73","\x61\x64\x64","\x43\x41\x4C\x4C\x42\x41\x43\x4B\x20\x61\x64\x64\x65\x64\x20\x70\x68\x6F\x6E\x65\x3A\x20\x25\x73\x20\x6F\x6E\x20\x6C\x69\x73\x74\x3A\x20\x25\x73\x20\x61\x74\x20\x25\x73","\x6E\x6F\x6F\x70","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x43\x55\x53\x54\x4F\x4D\x20\x41\x50\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x45\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x25\x73\x20\x25\x73","\x64\x61\x74\x61\x62\x61\x73\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x44\x41\x54\x41\x42\x41\x53\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x64\x62\x63\x5F\x69\x64","\x6E\x6F\x20\x64\x61\x74\x61\x62\x61\x73\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x6F\x64\x62\x63\x20\x64\x61\x74\x61\x62\x61\x73\x65\x20\x66\x6F\x75\x6E\x64","\x6E\x6F\x20\x71\x75\x65\x72\x79\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x20","\x71\x75\x65\x72\x79\x3A\x20\x25\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x75\x6E\x64","\x25\x73\x5B\x25\x73\x5D\x5B\x25\x73\x5D","\x73\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x6B\x65\x79\x73","\x25\x73\x5F\x52\x4F\x57\x53\x5F\x43\x4F\x55\x4E\x54","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x25\x73\x20\x73\x65\x74","\x64\x69\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x44\x49\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x65\x62\x75\x67","\x73\x69\x70\x5F\x69\x64","\x6E\x6F\x20\x75\x73\x65\x72\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x75\x73\x65\x72\x20\x66\x6F\x75\x6E\x64","\x44\x49\x41\x4C","\x53\x49\x50\x2F\x25\x73","\x6F\x70\x74\x73","\x75\x72\x6C","\x45\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x25\x73","\x65\x6E\x64","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x45\x4E\x44\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x45\x58\x54\x45\x52\x4E\x41\x4C\x20\x44\x49\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x6E\x6F\x20\x74\x72\x75\x6E\x6B\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x74\x72\x75\x6E\x6B\x20\x66\x6F\x75\x6E\x64","\x74\x72\x75\x6E\x6B\x5F\x6E\x61\x6D\x65","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73","\x66\x69\x6E\x61\x6C\x6C\x79","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x46\x49\x4E\x41\x4C\x4C\x59\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x45\x54\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x66\x69\x6C\x65\x5F\x69\x64","\x6E\x6F\x20\x66\x69\x6C\x65\x20\x61\x75\x64\x69\x6F\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x66\x69\x6C\x65\x20\x61\x75\x64\x69\x6F\x20\x66\x6F\x75\x6E\x64","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x6D\x61\x78\x64\x69\x67\x69\x74","\x67\x65\x74\x44\x61\x74\x61","\x74\x65\x73\x74","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x78","\x69","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x6E\x75\x6D","\x2A","\x67\x65\x6E\x65\x72\x61\x74\x65","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x70\x6F\x73","\x66\x69\x72\x73\x74","\x73\x75\x62\x73\x74\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x45\x54\x53\x45\x43\x52\x45\x54\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x67\x6F\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x47\x4F\x41\x4C\x20\x25\x73","\x67\x6F\x74\x6F\x63","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x67\x6F\x74\x6F\x69\x66","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x49\x46\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x20\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x74\x72\x75\x65","\x66\x61\x6C\x73\x65","\x45\x56\x41\x4C\x20\x43\x4F\x4E\x44\x49\x54\x49\x4F\x4E\x20\x25\x73\x20\x25\x73","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x49\x46\x54\x49\x4D\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x6E\x6F\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x66\x6F\x75\x6E\x64","\x49\x46\x54\x49\x4D\x45\x28\x25\x73\x3F\x74\x72\x75\x65\x3A\x66\x61\x6C\x73\x65\x29","\x49\x46\x54\x49\x4D\x45\x20\x25\x73\x20\x25\x73","\x68\x61\x6E\x67\x75\x70","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x48\x41\x4E\x47\x55\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x49\x53\x50\x45\x45\x43\x48\x41\x53\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x6B\x65\x79\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x77\x61\x76","\x64\x69\x72\x4E\x61\x6D\x65","\x74\x6D\x70","\x72\x65\x73\x6F\x6C\x76\x65","\x25\x73\x2E\x25\x73","\x62\x65\x65\x70","\x4E\x4F\x42\x45\x45\x50","\x69\x6E\x74\x4B\x65\x79","\x72\x65\x63\x6F\x72\x64\x46\x69\x6C\x65","\x69\x73\x70\x65\x65\x63\x68\x20\x25\x73\x20\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x75\x6E\x6C\x69\x6E\x6B","\x49\x53\x50\x45\x45\x43\x48\x5F\x41\x53\x52\x5F\x25\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x49\x53\x50\x45\x45\x43\x48\x54\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x74\x65\x78\x74\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x54\x72\x79\x69\x6E\x67\x20\x69\x73\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x25\x73","\x73\x74\x72\x65\x61\x6D\x46\x69\x6C\x65","\x2E\x77\x61\x76","\x69\x73\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x69\x73\x20\x75\x6E\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x6D\x61\x74\x68","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4D\x41\x54\x48\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x6E\x6F\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x6D\x61\x74\x68\x20\x25\x73","\x69\x73\x41\x72\x72\x61\x79","\x25\x73\x5B\x25\x73\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x25\x73\x5B\x6B\x65\x79\x5D\x20\x73\x65\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4D\x45\x4E\x55\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x69\x67\x69\x74","\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4E\x4F\x4F\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x75\x74\x70\x75\x74","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x50\x4C\x41\x59\x42\x41\x43\x4B\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x50\x4C\x41\x59\x42\x41\x43\x4B","\x71\x75\x65\x75\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x51\x55\x45\x55\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6E\x6F\x20\x71\x75\x65\x75\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x64\x65\x78\x4F\x66","\x58","\x51\x55\x45\x55\x45","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x65\x63\x6F\x72\x64","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x52\x45\x43\x4F\x52\x44\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x25\x73\x5F\x25\x73","\x25\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2E\x25\x73","\x25\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73","\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x25\x73\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x44\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x4E\x55\x4D\x42\x45\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x4E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x73\x61\x79\x50\x68\x6F\x6E\x65\x74\x69\x63","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x4D\x41\x49\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x4D\x41\x49\x4C\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x6E\x64\x46\x61\x78","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x46\x41\x58\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x46\x41\x58\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x6E\x64\x53\x4D\x53","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x53\x4D\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x53\x4D\x53\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x73\x74\x61\x72\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x54\x41\x52\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x54\x41\x52\x54\x20\x43\x41\x4C\x4C\x59\x20\x53\x51\x55\x41\x52\x45","\x79\x65\x73","\x41\x6E\x73\x77\x65\x72","\x53\x6B\x69\x70\x70\x65\x64\x20\x41\x6E\x73\x77\x65\x72","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x55\x42\x50\x52\x4F\x4A\x45\x43\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x66\x6F\x75\x6E\x64\x20\x77\x69\x74\x68\x20\x69\x64\x20\x25\x64","\x70\x72\x6F\x6A\x65\x63\x74\x20\x69\x6E\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x6D\x75\x73\x74\x20\x62\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x66\x72\x6F\x6D\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x65\x64\x20\x70\x72\x6F\x6A\x65\x63\x74","\x41\x47\x49","\x61\x67\x69\x3A\x2F\x2F\x25\x73\x2F\x73\x71\x75\x61\x72\x65\x2C\x22\x25\x73\x22\x2C\x22\x25\x73\x22","\x68\x6F\x73\x74","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x73\x79\x73\x74\x65\x6D","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x59\x53\x54\x45\x4D\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x73\x68\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x3A\x20\x25\x73\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x6E\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x20\x25\x73","\x73\x68\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x3A\x20\x25\x73\x20\x72\x65\x73\x75\x6C\x74\x20\x6E\x6F\x20\x73\x74\x6F\x72\x65\x64","\x74\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x4F\x47\x4C\x45\x54\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x54\x72\x79\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x25\x73","\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x25\x73\x20\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x69\x73\x20\x75\x6E\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C","\x6D\x61\x69\x6C\x62\x6F\x78","\x76\x73\x77\x69\x74\x63\x68","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x57\x49\x54\x43\x48\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6A\x6F\x69\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0xb6e5[0];var fs=require(_0xb6e5[1]);var path=require(_0xb6e5[2]);var util=require(_0xb6e5[3]);var _=require(_0xb6e5[4]);var sh=require(_0xb6e5[5]);var odbc=require(_0xb6e5[6])();var rs=require(_0xb6e5[7]);var moment=require(_0xb6e5[8]);var logger=require(_0xb6e5[10])(_0xb6e5[9]);var config=require(_0xb6e5[11]);var scripts=require(_0xb6e5[12]);var FILES_PATH=_0xb6e5[13];var verticesWithRetry=[_0xb6e5[14],_0xb6e5[15],_0xb6e5[16]];var AGIVertices=function(_0x8453xf,_0x8453x10){this[_0xb6e5[17]]= _0x8453xf;this[_0xb6e5[18]]= _0x8453x10};AGIVertices[_0xb6e5[20]][_0xb6e5[19]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[24]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x14[_0xb6e5[22]]:false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[25]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[26]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x14[_0xb6e5[22]]:false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[27]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[28]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x14[_0xb6e5[22]]:false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[29]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[31]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x14[_0xb6e5[30]]:false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[32]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[33]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x14[_0xb6e5[22]]:false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[34]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[35]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x14[_0xb6e5[22]]:false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[36]]= function(_0x8453x11,_0x8453x12){var _0x8453x15=this;this[_0xb6e5[18]][_0xb6e5[39]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,(_0x8453x14)?_0x8453x15[_0xb6e5[38]](_0x8453x14[_0xb6e5[37]]):false)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[40]]= function(_0x8453x11,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[44]](_0x8453x11)[_0xb6e5[23]](function(_0x8453x14){if(_0x8453x14){if(_0x8453x14[_0xb6e5[41]]){_0x8453x12(null,[_0x8453x14[_0xb6e5[42]]])}else {_0x8453x12(null,_[_0xb6e5[43]](_0x8453x14.Intervals,_0xb6e5[42]))}}else {_0x8453x12(null,false)}})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[38]]= function(_0x8453x16){return util[_0xb6e5[46]](_0xb6e5[45],FILES_PATH,_0x8453x16)};AGIVertices[_0xb6e5[20]][_0xb6e5[47]]= function(_0x8453x17,_0x8453x18,_0x8453x12){odbc[_0xb6e5[57]](_0x8453x17,function(_0x8453x13){if(_0x8453x13){logger[_0xb6e5[49]](_0xb6e5[48],_0x8453x13);_0x8453x12(_0x8453x13)}else {logger[_0xb6e5[51]](_0xb6e5[50]);odbc[_0xb6e5[56]](_0x8453x18,function(_0x8453x13,_0x8453x19){if(_0x8453x13){logger[_0xb6e5[51]](_0xb6e5[52],_0x8453x18);_0x8453x12(_0x8453x13)}else {logger[_0xb6e5[51]](_0xb6e5[53],_0x8453x18);odbc[_0xb6e5[55]](function(_0x8453x13){if(_0x8453x13){logger[_0xb6e5[49]](_0xb6e5[54],_0x8453x13)};_0x8453x12(null,_0x8453x19)})}})}})};AGIVertices[_0xb6e5[20]][_0xb6e5[58]]= function(_0x8453x1a,_0x8453x19,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[58]]({uniqueid:this[_0xb6e5[17]][_0xb6e5[59]],node:_0x8453x1a[_0xb6e5[60]],application:_0x8453x1a[_0xb6e5[61]],data:_0x8453x19|| null,project_name:this[_0xb6e5[17]][_0xb6e5[62]],callerid:this[_0xb6e5[17]][_0xb6e5[63]]})[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,_0x8453x14)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[64]]= function(_0x8453x1a,_0x8453x1b,_0x8453x1c,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[64]]({uniqueid:this[_0xb6e5[17]][_0xb6e5[59]],callerid:this[_0xb6e5[17]][_0xb6e5[63]],calleridname:this[_0xb6e5[17]][_0xb6e5[65]],context:this[_0xb6e5[17]][_0xb6e5[66]],extension:this[_0xb6e5[17]][_0xb6e5[67]],priority:this[_0xb6e5[17]][_0xb6e5[68]],accountcode:this[_0xb6e5[17]][_0xb6e5[69]],dnid:this[_0xb6e5[17]][_0xb6e5[70]],projectName:this[_0xb6e5[17]][_0xb6e5[62]],saveName:_0x8453x1b,filename:_0x8453x1a[_0xb6e5[71]]|| _0x8453x1b,savePath:_0x8453x1c})[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,_0x8453x14)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[72]]= function(_0x8453x1d,_0x8453x12){this[_0xb6e5[18]][_0xb6e5[72]]({firstName:_0x8453x1d[_0xb6e5[22]]|| (_0xb6e5[73]+ Math[_0xb6e5[74]]()),lastName:_0x8453x1d[_0xb6e5[75]],phone:_0x8453x1d[_0xb6e5[76]],ListId:_0x8453x1d[_0xb6e5[77]],scheduledAt:_0x8453x1d[_0xb6e5[78]],callbackUniqueid:this[_0xb6e5[17]][_0xb6e5[59]],tags:_0xb6e5[79],description:_0xb6e5[80]+ _0x8453x1d[_0xb6e5[78]].toString()})[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,_0x8453x14)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[81]]= function(_0x8453x1e,_0x8453x12){sh[_0xb6e5[85]](_[_0xb6e5[82]](_0x8453x1e),function(_0x8453x1f,_0x8453x20){var _0x8453x21=_0x8453x20[_0xb6e5[84]](/(\r\n|\n|\r)/gm,_0xb6e5[83]);_0x8453x12(null,_0x8453x21)})};AGIVertices[_0xb6e5[20]][_0xb6e5[86]]= function(_0x8453x1a,_0x8453x12){scripts[_0xb6e5[86]](_0x8453x1a[_0xb6e5[87]],_0x8453x1a[_0xb6e5[88]]|| _0xb6e5[89],1)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,_0x8453x14)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[90]]= function(_0x8453x1a,_0x8453x12){scripts[_0xb6e5[90]](_0x8453x1a[_0xb6e5[91]],_0x8453x1a[_0xb6e5[87]],_0x8453x1a[_0xb6e5[92]]|| _0xb6e5[93],_0x8453x1a[_0xb6e5[94]])[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,_0x8453x14)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[95]]= function(_0x8453x1a,_0x8453x22,_0x8453x12){scripts[_0xb6e5[95]](_0x8453x22,_0x8453x1a[_0xb6e5[91]],_0x8453x1a[_0xb6e5[96]]|| _0xb6e5[93],this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[97]])?_0x8453x1a[_0xb6e5[97]]:undefined)[_0xb6e5[23]](function(_0x8453x14){_0x8453x12(null,_0x8453x14)})[_0xb6e5[21]](function(_0x8453x13){_0x8453x12(_0x8453x13)})};AGIVertices[_0xb6e5[20]][_0xb6e5[99]]= function(_0x8453x1a){var _0x8453x23=_[_0xb6e5[100]](verticesWithRetry,_0x8453x1a[_0xb6e5[61]])?_0x8453x1a:_[_0xb6e5[101]](_0x8453x1a);for(var _0x8453x24 in _0x8453x23){if(_0x8453x23[_0xb6e5[102]](_0x8453x24)){if(_0x8453x23[_0x8453x24]&& _[_0xb6e5[103]](_0x8453x23[_0x8453x24])){_0x8453x23[_0x8453x24]= this[_0xb6e5[104]](_0x8453x23[_0x8453x24])}}};return _0x8453x23};AGIVertices[_0xb6e5[20]][_0xb6e5[104]]= function(_0x8453x25){var _0x8453x26=_0x8453x25[_0xb6e5[106]](_0xb6e5[105]);for(var _0x8453x27=1;_0x8453x27< _0x8453x26[_0xb6e5[107]];_0x8453x27+= 1){var _0x8453x28=_0x8453x26[_0x8453x27][_0xb6e5[106]](_0xb6e5[108]);if(_0x8453x28[_0xb6e5[107]]> 1){_0x8453x25= _0x8453x25[_0xb6e5[110]](_0xb6e5[105]+ _0x8453x28[0]+ _0xb6e5[108],this[_0xb6e5[17]][_0xb6e5[19]](_0x8453x28[0])[_0xb6e5[109]]|| (_0x8453x28[0]))}};if(_0x8453x26[_0xb6e5[107]]=== 1){return _0x8453x25};return this[_0xb6e5[104]](_0x8453x25)};AGIVertices[_0xb6e5[20]][_0xb6e5[98]]= function(_0x8453x29){return _0x8453x29&& _0x8453x29!== _0xb6e5[111]&& _0x8453x29!== _0xb6e5[112]&& _0x8453x29!== _0xb6e5[83]};AGIVertices[_0xb6e5[20]][_0xb6e5[113]]= function(_0x8453x1a){this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0xb6e5[114]);_0x8453x1a[_0xb6e5[116]]= _0x8453x1a[_0xb6e5[113]];return {code:200,result:_0xb6e5[114]}};AGIVertices[_0xb6e5[20]][_0xb6e5[9]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[117],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[9]]([_0x8453x1a[_0xb6e5[118]],_0x8453x1a[_0xb6e5[119]]])};AGIVertices[_0xb6e5[20]][_0xb6e5[120]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[121],_0x8453x1a[_0xb6e5[60]]));if(this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[122]])){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[123],_0x8453x1a[_0xb6e5[122]]));var _0x8453x19=this[_0xb6e5[17]][_0xb6e5[124]](_0x8453x1a[_0xb6e5[122]]);if(_0x8453x19[_0xb6e5[125]]===  -1){return _0x8453x19}};return this[_0xb6e5[17]][_0xb6e5[120]]()};AGIVertices[_0xb6e5[20]][_0xb6e5[79]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[126],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[77]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[127])};_0x8453x1a[_0xb6e5[78]]= moment();if(this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[128]])){_0x8453x1a[_0xb6e5[78]]= moment()[_0xb6e5[130]](_0x8453x1a[_0xb6e5[128]],_0xb6e5[129])};this[_0xb6e5[72]][_0xb6e5[115]](this,_0x8453x1a);return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[131],_0x8453x1a[_0xb6e5[76]],_0x8453x1a[_0xb6e5[77]],_0x8453x1a[_0xb6e5[78]]))};AGIVertices[_0xb6e5[20]][_0xb6e5[133]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[134],_0x8453x1a[_0xb6e5[60]]));var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0x8453x1a[_0xb6e5[135]],_0x8453x1a[_0xb6e5[136]]);if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[137],_0x8453x1a[_0xb6e5[135]],_0x8453x1a[_0xb6e5[136]]))};AGIVertices[_0xb6e5[20]][_0xb6e5[138]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[139],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[140]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[141])};var _0x8453x17=this[_0xb6e5[29]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[140]]);if(!_0x8453x17){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[142])};if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[56]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[143])};var _0x8453x18=_0x8453x1a[_0xb6e5[56]][_0xb6e5[84]](/(\r\n|\n|\r)/gm,_0xb6e5[144]);this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[145],_0x8453x18));var _0x8453x2b=this[_0xb6e5[47]][_0xb6e5[115]](this,_0x8453x17,_0x8453x18);this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x18);if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[147])};var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(!_0x8453x2c){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[148])};var _0x8453x15=this;_0x8453x2b[_0xb6e5[151]](function(_0x8453x29,_0x8453x2d){Object[_0xb6e5[152]](_0x8453x29)[_0xb6e5[151]](function(_0x8453x24){_0x8453x15[_0xb6e5[17]][_0xb6e5[150]](util[_0xb6e5[46]](_0xb6e5[149],_0x8453x2c,_0x8453x2d,_0x8453x24),_0x8453x29[_0x8453x24])})});this[_0xb6e5[17]][_0xb6e5[150]](util[_0xb6e5[46]](_0xb6e5[153],_0x8453x2c),_0x8453x2b[_0xb6e5[107]]);return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[154],_0x8453x2c))};AGIVertices[_0xb6e5[20]][_0xb6e5[155]]= function(_0x8453x1a){logger[_0xb6e5[157]](util[_0xb6e5[46]](_0xb6e5[156],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[158]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[159])};var _0x8453x2e=this[_0xb6e5[32]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[158]]);if(!_0x8453x2e){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[160])};var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0xb6e5[161],[util[_0xb6e5[46]](_0xb6e5[162],_0x8453x2e),_0x8453x1a[_0xb6e5[122]],_0x8453x1a[_0xb6e5[163]],_0x8453x1a[_0xb6e5[164]]]);if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[165],_0xb6e5[161]))};AGIVertices[_0xb6e5[20]][_0xb6e5[166]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[167],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[166])};AGIVertices[_0xb6e5[20]][_0xb6e5[168]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[169],_0x8453x1a[_0xb6e5[60]]));var _0x8453x2f=_0xb6e5[83];if(_0x8453x1a[_0xb6e5[170]]){if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[170]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[171])}else {var _0x8453x11=parseInt(_0x8453x1a[_0xb6e5[170]],10);if(isNaN(_0x8453x11)){_0x8453x2f= _0x8453x1a[_0xb6e5[170]]}else {_0x8453x2f= this[_0xb6e5[34]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[170]]);if(!_0x8453x2f){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[172])}}}}else {if(_0x8453x1a[_0xb6e5[173]]){_0x8453x2f= _0x8453x1a[_0xb6e5[173]]}else {return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[171])}};var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0xb6e5[161],[util[_0xb6e5[46]](_0xb6e5[174],_0x8453x2f,_0x8453x1a[_0xb6e5[76]]),_0x8453x1a[_0xb6e5[122]],_0x8453x1a[_0xb6e5[163]],_0x8453x1a[_0xb6e5[164]]]);if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[165],_0xb6e5[161]))};AGIVertices[_0xb6e5[20]][_0xb6e5[175]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[176],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[175])};AGIVertices[_0xb6e5[20]][_0xb6e5[15]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[177],_0x8453x1a[_0xb6e5[60]]));if(_0x8453x1a[_0xb6e5[116]]=== 0){return this[_0xb6e5[113]](_0x8453x1a)};_0x8453x1a[_0xb6e5[116]]-= 1;if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[178]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[179])};var _0x8453x30=this[_0xb6e5[36]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[178]]);if(!_0x8453x30){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[180])};if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0xb6e5[147])};var _0x8453x19=this[_0xb6e5[17]][_0xb6e5[183]](_0x8453x30,_0x8453x1a[_0xb6e5[181]],_0x8453x1a[_0xb6e5[182]]);var _0x8453x31=_0x8453x19[_0xb6e5[125]]?_0x8453x19[_0xb6e5[125]].toString():_0xb6e5[83];logger[_0xb6e5[51]](_0xb6e5[184],JSON[_0xb6e5[185]](_0x8453x19));if(_0x8453x19[_0xb6e5[125]]===  -1){this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x31);return _0x8453x19}else {if(_0x8453x19[_0xb6e5[109]]=== _0xb6e5[122]){_0x8453x19[_0xb6e5[125]]= (_0x8453x31[_0xb6e5[107]]>= parseInt(_0x8453x1a[_0xb6e5[186]]))?_0xb6e5[187]:_0xb6e5[188]}else {_0x8453x19[_0xb6e5[125]]= ((_0x8453x31[_0xb6e5[107]]>= parseInt(_0x8453x1a[_0xb6e5[186]]))&& (_0x8453x31[_0xb6e5[107]]<= parseInt(_0x8453x1a[_0xb6e5[182]])))?_0xb6e5[187]:_0xb6e5[188]}};var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(!_0x8453x2c){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[148])};this[_0xb6e5[17]][_0xb6e5[150]](_0x8453x2c,_0x8453x31);if(this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[189]])){var _0x8453x32=parseInt(_0x8453x1a[_0xb6e5[189]],10);var _0x8453x29=rs[_0xb6e5[191]]({charset:_0xb6e5[190],length:_0x8453x32});var _0x8453x33=_0x8453x31[_0xb6e5[107]];if(_0x8453x33> 0){if(_0x8453x33> _0x8453x32){this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,(_0x8453x1a[_0xb6e5[192]]=== _0xb6e5[193])?_0x8453x29+ _0x8453x31[_0xb6e5[194]](_0x8453x32):_0x8453x31[_0xb6e5[194]](0,_0x8453x33- _0x8453x32)+ _0x8453x29)}else {this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,rs[_0xb6e5[191]]({charset:_0xb6e5[190],length:_0x8453x33}))}}else {this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0xb6e5[83])}}else {this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x31)};return _0x8453x19};AGIVertices[_0xb6e5[20]][_0xb6e5[16]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[195],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[15]](_0x8453x1a)};AGIVertices[_0xb6e5[20]][_0xb6e5[196]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[197],_0x8453x1a[_0xb6e5[60]]));this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x1a[_0xb6e5[198]]);return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[199],_0x8453x1a[_0xb6e5[198]]))};AGIVertices[_0xb6e5[20]][_0xb6e5[200]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[201],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[202]](_0x8453x1a[_0xb6e5[66]],_0x8453x1a[_0xb6e5[67]],_0x8453x1a[_0xb6e5[68]])};AGIVertices[_0xb6e5[20]][_0xb6e5[203]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[204],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[205]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[206])};try{var _0x8453x34=eval(_0x8453x1a[_0xb6e5[205]])?_0xb6e5[207]:_0xb6e5[208];this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[209],_0x8453x1a[_0xb6e5[205]],_0x8453x34));return {code:200,result:_0x8453x34}}catch(e){return {code:200,result:_0xb6e5[208]}}};AGIVertices[_0xb6e5[20]][_0xb6e5[210]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[211],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[212]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[213])};var _0x8453x35=this[_0xb6e5[40]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[212]]);if(!_0x8453x35){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[214])};for(var _0x8453x27=0;_0x8453x27< _0x8453x35[_0xb6e5[107]];_0x8453x27+= 1){var _0x8453x36=this[_0xb6e5[17]][_0xb6e5[19]](util[_0xb6e5[46]](_0xb6e5[215],_0x8453x35[_0x8453x27]));if(_0x8453x36[_0xb6e5[125]]===  -1){return _0x8453x36};logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[216],_0x8453x35[_0x8453x27],_0x8453x36[_0xb6e5[109]]));if(_0x8453x36[_0xb6e5[109]]=== _0xb6e5[207]){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[216],_0x8453x35[_0x8453x27],_0xb6e5[207]));this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[216],_0x8453x35[_0x8453x27],_0xb6e5[207]));return {code:200,result:_0xb6e5[207]}}else {logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[216],_0x8453x35[_0x8453x27],_0xb6e5[208]));this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[216],_0x8453x35[_0x8453x27],_0xb6e5[208]))}};return {code:200,result:_0xb6e5[208]}};AGIVertices[_0xb6e5[20]][_0xb6e5[217]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[218],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[217]]()};AGIVertices[_0xb6e5[20]][_0xb6e5[219]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[220],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[91]])){return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[221])};var _0x8453x37=_0x8453x1a[_0xb6e5[222]]|| _0xb6e5[223];var _0x8453x22=path[_0xb6e5[226]](scripts[_0xb6e5[224]](),_0xb6e5[225],rs[_0xb6e5[191]](4));var _0x8453x1b=util[_0xb6e5[46]](_0xb6e5[227],_0x8453x22,_0x8453x37);var _0x8453x38=true;if(_0x8453x1a[_0xb6e5[228]]=== _0xb6e5[229]){_0x8453x38= false};var _0x8453x19=this[_0xb6e5[17]][_0xb6e5[231]](_0x8453x22,_0x8453x37,_0x8453x1a[_0xb6e5[230]],_0x8453x1a[_0xb6e5[122]],undefined,_0x8453x38);if(_0x8453x19[_0xb6e5[125]]!==  -1){this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[232],_0x8453x1b));var _0x8453x2b=this[_0xb6e5[95]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x1b);fs[_0xb6e5[233]](_0x8453x1b);if(_0x8453x2b){for(var _0x8453x24 in _0x8453x2b){if(_0x8453x2b[_0xb6e5[102]](_0x8453x24)){this[_0xb6e5[17]][_0xb6e5[150]](util[_0xb6e5[46]](_0xb6e5[234],_0x8453x24[_0xb6e5[235]]()),_0x8453x2b[_0x8453x24])}};return this[_0xb6e5[17]][_0xb6e5[132]](JSON[_0xb6e5[185]](_0x8453x2b))}};return _0x8453x19};AGIVertices[_0xb6e5[20]][_0xb6e5[236]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[237],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[91]])){return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[221])};if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[87]])){return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[238])};this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[239],_0x8453x1a[_0xb6e5[87]]));var _0x8453x39=this[_0xb6e5[90]][_0xb6e5[115]](this,_0x8453x1a);if(_0x8453x39){this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[232],_0x8453x39));var _0x8453x19=this[_0xb6e5[17]][_0xb6e5[240]](_0x8453x39,_0x8453x1a[_0xb6e5[230]]);fs[_0xb6e5[233]](_0x8453x39+ _0xb6e5[241]);return _0x8453x19};return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[242])};AGIVertices[_0xb6e5[20]][_0xb6e5[243]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[244],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[245]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[246])};this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[247],_0x8453x1a[_0xb6e5[245]]));var _0x8453x2b=eval(_0x8453x1a[_0xb6e5[245]]);if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[147])};var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(!_0x8453x2c){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[148])};if(_[_0xb6e5[248]](_0x8453x2b)){var _0x8453x15=this;_0x8453x2b[_0xb6e5[151]](function(_0x8453x29,_0x8453x24){_0x8453x15[_0xb6e5[17]][_0xb6e5[150]](util[_0xb6e5[46]](_0xb6e5[249],_0x8453x2c,_0x8453x24),_0x8453x29)});return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[250],_0x8453x2c))}else {return this[_0xb6e5[17]][_0xb6e5[150]](_0x8453x2c,_0x8453x2b)}};AGIVertices[_0xb6e5[20]][_0xb6e5[14]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[251],_0x8453x1a[_0xb6e5[60]]));if(_0x8453x1a[_0xb6e5[116]]=== 0){return this[_0xb6e5[113]](_0x8453x1a)};_0x8453x1a[_0xb6e5[116]]-= 1;if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[178]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[179])};var _0x8453x30=this[_0xb6e5[36]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[178]]);if(!_0x8453x30){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[180])};var _0x8453x19=this[_0xb6e5[17]][_0xb6e5[183]](_0x8453x30,_0x8453x1a[_0xb6e5[181]],_0x8453x1a[_0xb6e5[252]]);var _0x8453x31=_0x8453x19[_0xb6e5[125]];if(_0x8453x19[_0xb6e5[125]]===  -1){this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0xb6e5[112]);return _0x8453x19}else {if(_0x8453x19[_0xb6e5[109]]=== _0xb6e5[122]){_0x8453x19[_0xb6e5[125]]= (_0x8453x19[_0xb6e5[125]][_0xb6e5[107]]> 0)?_0x8453x19[_0xb6e5[125]]:_0xb6e5[253]}};if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[147])}else {var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(!_0x8453x2c){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[148])};this[_0xb6e5[17]][_0xb6e5[150]](_0x8453x2c,_0x8453x31)};this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x31);return _0x8453x19};AGIVertices[_0xb6e5[20]][_0xb6e5[132]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[254],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[132]](_0x8453x1a[_0xb6e5[255]]|| _0x8453x1a[_0xb6e5[60]])};AGIVertices[_0xb6e5[20]][_0xb6e5[256]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[257],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[178]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[179])};var _0x8453x30=this[_0xb6e5[36]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[178]]);if(!_0x8453x30){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[180])};var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0xb6e5[258],[_0x8453x30,_0x8453x1a[_0xb6e5[163]]]);if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[137],_0xb6e5[258],_0x8453x30))};AGIVertices[_0xb6e5[20]][_0xb6e5[259]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[260],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[261]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[262])};var _0x8453x3a=_0xb6e5[83];var _0x8453x11=parseInt(_0x8453x1a[_0xb6e5[261]],10);if(isNaN(_0x8453x11)){_0x8453x3a= _0x8453x1a[_0xb6e5[261]]}else {_0x8453x3a= this[_0xb6e5[25]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[261]]);if(!_0x8453x3a){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[263])}};var _0x8453x3b=_0xb6e5[83];if(this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[178]])){var _0x8453x3c=this[_0xb6e5[36]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[178]]);if(_0x8453x3c){_0x8453x3b= _0x8453x3c}};this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x3a);if(_0x8453x1a[_0xb6e5[163]][_0xb6e5[264]](_0xb6e5[187])< 0){_0x8453x1a[_0xb6e5[163]]+= _0xb6e5[187]};if(_0x8453x1a[_0xb6e5[163]][_0xb6e5[264]](_0xb6e5[265])< 0){_0x8453x1a[_0xb6e5[163]]+= _0xb6e5[265]};var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0xb6e5[266],[_0x8453x3a,_0x8453x1a[_0xb6e5[163]],_0x8453x1a[_0xb6e5[164]],_0x8453x3b,_0x8453x1a[_0xb6e5[122]],_0x8453x1a[_0xb6e5[9]],_0x8453x1a[_0xb6e5[267]],_0x8453x1a[_0xb6e5[268]],_0xb6e5[83],_0x8453x1a[_0xb6e5[269]]]);if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[137],_0xb6e5[266],_0x8453x3a))};AGIVertices[_0xb6e5[20]][_0xb6e5[270]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[271],_0x8453x1a[_0xb6e5[60]]));var _0x8453x37=_0x8453x1a[_0xb6e5[222]]|| _0xb6e5[223];var _0x8453x1b=util[_0xb6e5[46]](_0xb6e5[272],this[_0xb6e5[17]][_0xb6e5[59]],rs[_0xb6e5[191]](5));var _0x8453x1c=util[_0xb6e5[46]](_0xb6e5[273],FILES_PATH,_0x8453x1b,_0x8453x37);var _0x8453x3d=util[_0xb6e5[46]](_0xb6e5[274],FILES_PATH,_0x8453x1b);this[_0xb6e5[64]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x1b,_0x8453x1c);this[_0xb6e5[17]][_0xb6e5[150]](_0xb6e5[275],_0x8453x1b);logger[_0xb6e5[51]](_0xb6e5[276],_0x8453x3d,_0x8453x37,_0x8453x1a[_0xb6e5[277]],_0x8453x1a[_0xb6e5[122]]);return this[_0xb6e5[17]][_0xb6e5[231]](_0x8453x3d,_0x8453x37,_0x8453x1a[_0xb6e5[277]],_0x8453x1a[_0xb6e5[122]],undefined,true)};AGIVertices[_0xb6e5[20]][_0xb6e5[278]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[279],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[281]](_0x8453x1a[_0xb6e5[280]][_0xb6e5[84]](/\s+/g,_0xb6e5[83]),_0x8453x1a[_0xb6e5[277]])};AGIVertices[_0xb6e5[20]][_0xb6e5[282]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[283],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[285]](_0x8453x1a[_0xb6e5[284]][_0xb6e5[84]](/\s+/g,_0xb6e5[83]),_0x8453x1a[_0xb6e5[277]])};AGIVertices[_0xb6e5[20]][_0xb6e5[286]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[287],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[288]](_0x8453x1a[_0xb6e5[87]],_0x8453x1a[_0xb6e5[277]])};AGIVertices[_0xb6e5[20]][_0xb6e5[289]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[290],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[291])};AGIVertices[_0xb6e5[20]][_0xb6e5[292]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[293],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[294])};AGIVertices[_0xb6e5[20]][_0xb6e5[295]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[296],_0x8453x1a[_0xb6e5[60]]));return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[297])};AGIVertices[_0xb6e5[20]][_0xb6e5[298]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[299],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[300])};var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(!_0x8453x2c){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[148])};return this[_0xb6e5[17]][_0xb6e5[150]](_0x8453x2c,_0x8453x1a[_0xb6e5[301]])};AGIVertices[_0xb6e5[20]][_0xb6e5[302]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[303],_0x8453x1a[_0xb6e5[60]]));this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[304]);if(_0x8453x1a[_0xb6e5[120]]=== _0xb6e5[305]){this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[306]);return this[_0xb6e5[17]][_0xb6e5[120]]()};return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[307])};AGIVertices[_0xb6e5[20]][_0xb6e5[308]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[309],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[310]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[311])};var _0x8453x3e=this[_0xb6e5[27]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[310]]);if(!this[_0xb6e5[98]](_0x8453x3e)){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,util[_0xb6e5[46]](_0xb6e5[312],_0x8453x1a[_0xb6e5[310]]))};if(_0x8453x3e=== this[_0xb6e5[17]][_0xb6e5[62]]){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[313])};this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x3e);var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0xb6e5[314],util[_0xb6e5[46]](_0xb6e5[315],config[_0xb6e5[9]][_0xb6e5[316]]|| _0xb6e5[317],_0x8453x3e,this[_0xb6e5[17]][_0xb6e5[62]]));if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[137],_0xb6e5[314],_0x8453x3e))};AGIVertices[_0xb6e5[20]][_0xb6e5[318]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[319],_0x8453x1a[_0xb6e5[60]]));var _0x8453x20=this[_0xb6e5[81]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[118]]);this[_0xb6e5[58]][_0xb6e5[115]](this,_0x8453x1a,_0x8453x1a[_0xb6e5[118]]);if(this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(_0x8453x2c){this[_0xb6e5[17]][_0xb6e5[150]](_0x8453x2c,_0x8453x20);return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[320],_0x8453x1a[_0xb6e5[118]],_0x8453x2c))}};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[321],_0x8453x1a[_0xb6e5[118]]))};AGIVertices[_0xb6e5[20]][_0xb6e5[322]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[323],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[87]])){return this[_0xb6e5[17]][_0xb6e5[132]](_0xb6e5[238])};this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[324],_0x8453x1a[_0xb6e5[87]]));var _0x8453x39=this[_0xb6e5[86]][_0xb6e5[115]](this,_0x8453x1a);if(_0x8453x39){this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[325],_0x8453x39));var _0x8453x19=this[_0xb6e5[17]][_0xb6e5[240]](_0x8453x39);fs[_0xb6e5[233]](_0x8453x39+ _0xb6e5[241]);return _0x8453x19};return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[326])};AGIVertices[_0xb6e5[20]][_0xb6e5[327]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[328],_0x8453x1a[_0xb6e5[60]]));var _0x8453x2a=this[_0xb6e5[17]][_0xb6e5[85]](_0xb6e5[329],[_0x8453x1a[_0xb6e5[330]],_0x8453x1a[_0xb6e5[136]]]);if(_0x8453x2a[_0xb6e5[125]]===  -1){return _0x8453x2a};return this[_0xb6e5[17]][_0xb6e5[132]](util[_0xb6e5[46]](_0xb6e5[137],_0xb6e5[329],_0x8453x1a[_0xb6e5[330]]))};AGIVertices[_0xb6e5[20]][_0xb6e5[331]]= function(_0x8453x1a){logger[_0xb6e5[51]](util[_0xb6e5[46]](_0xb6e5[332],_0x8453x1a[_0xb6e5[60]]));if(!this[_0xb6e5[98]](_0x8453x1a[_0xb6e5[146]])){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[300])};var _0x8453x2c=this[_0xb6e5[19]][_0xb6e5[115]](this,_0x8453x1a[_0xb6e5[146]]);if(!_0x8453x2c){return this[_0xb6e5[17]][_0xb6e5[49]](_0x8453x1a,_0xb6e5[148])};var _0x8453x36=this[_0xb6e5[17]][_0xb6e5[19]](_0x8453x2c);return {code:200,result:(_0x8453x36[_0xb6e5[109]])?_0x8453x36[_0xb6e5[109]]:_0xb6e5[114]}};String[_0xb6e5[20]][_0xb6e5[110]]= function(_0x8453x3f,_0x8453x40){return this[_0xb6e5[106]](_0x8453x3f)[_0xb6e5[333]](_0x8453x40)};module[_0xb6e5[334]]= AGIVertices
\ No newline at end of file
index 249a452..9051a43 100644 (file)
@@ -1 +1 @@
-var _0xe7aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x72\x70\x63\x2F\x75\x73\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x61\x67\x65\x6E\x74\x73","\x74\x69\x6D\x65\x72\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x68\x61\x6E\x67\x75\x70\x72\x65\x71\x75\x65\x73\x74","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x52\x65\x71\x75\x65\x73\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x73\x74\x61\x72\x74\x41\x63\x77","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x71\x75\x65\x75\x65","\x66\x69\x6E\x61\x6C\x6C\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x74\x6F\x70\x41\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x41\x43\x57","\x73\x61\x76\x65\x50\x61\x75\x73\x65","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x73\x61\x76\x65\x55\x6E\x70\x61\x75\x73\x65","\x61\x63\x77","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x61\x75\x74\x6F\x50\x61\x75\x73\x65","\x41\x75\x74\x6F\x2D\x50\x61\x75\x73\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe7aa[0];var util=require(_0xe7aa[1]);var _=require(_0xe7aa[2]);var ami=require(_0xe7aa[3]);var RpcUser=require(_0xe7aa[4]);var io=require(_0xe7aa[6])({host:_0xe7aa[5],port:6379});function Acw(_0x9022x7){this[_0xe7aa[7]]= _0x9022x7[_0xe7aa[7]];this[_0xe7aa[8]]= _0x9022x7[_0xe7aa[8]];this[_0xe7aa[9]]= _0x9022x7[_0xe7aa[9]];this[_0xe7aa[10]]= {};ami[_0xe7aa[14]](_0xe7aa[11],this[_0xe7aa[13]][_0xe7aa[12]](this));ami[_0xe7aa[14]](_0xe7aa[15],this[_0xe7aa[16]][_0xe7aa[12]](this));ami[_0xe7aa[14]](_0xe7aa[17],this[_0xe7aa[18]][_0xe7aa[12]](this))}Acw[_0xe7aa[20]][_0xe7aa[19]]= function(_0x9022x8){var _0x9022x9=this;var _0x9022xa=this[_0xe7aa[10]][_0x9022x8][_0xe7aa[21]];var _0x9022xb=this[_0xe7aa[10]][_0x9022x8][_0xe7aa[22]];ami.Action({action:_0xe7aa[31],interface:_0x9022xa,paused:true,reason:_0xe7aa[29]})[_0xe7aa[28]](function(_0x9022xe){return RpcUser[_0xe7aa[30]](_0x9022x9[_0xe7aa[8]][_0x9022xa],_0xe7aa[29])})[_0xe7aa[28]](function(_0x9022xd){_0x9022x9[_0xe7aa[9]][_0x9022xa]= setTimeout(_0x9022x9[_0xe7aa[26]][_0xe7aa[12]](_0x9022x9,_0x9022xa),_0x9022x9[_0xe7aa[7]][_0x9022xb][_0xe7aa[27]]* 1000)})[_0xe7aa[25]](function(_0x9022xc){console[_0xe7aa[24]](_0x9022xc)})[_0xe7aa[23]](function(){delete _0x9022x9[_0xe7aa[10]][_0x9022x8]})};Acw[_0xe7aa[20]][_0xe7aa[26]]= function(_0x9022xa){RpcUser[_0xe7aa[32]](this[_0xe7aa[8]][_0x9022xa])};Acw[_0xe7aa[20]][_0xe7aa[13]]= function(_0x9022xf){if(this[_0xe7aa[7]][_0x9022xf[_0xe7aa[22]]]&& this[_0xe7aa[7]][_0x9022xf[_0xe7aa[22]]][_0xe7aa[33]]){if(this[_0xe7aa[8]][_0x9022xf[_0xe7aa[21]]]){this[_0xe7aa[10]][_0x9022xf[_0xe7aa[34]]]= {queue:_0x9022xf[_0xe7aa[22]],interface:_0x9022xf[_0xe7aa[21]]}}}};Acw[_0xe7aa[20]][_0xe7aa[16]]= function(_0x9022xf){if(this[_0xe7aa[10]][_0x9022xf[_0xe7aa[34]]]){this[_0xe7aa[19]](_0x9022xf[_0xe7aa[34]])}else {if(this[_0xe7aa[10]][_0x9022xf[_0xe7aa[35]]]){this[_0xe7aa[19]](_0x9022xf[_0xe7aa[35]])}}};Acw[_0xe7aa[20]][_0xe7aa[18]]= function(_0x9022xf){if(this[_0xe7aa[7]][_0x9022xf[_0xe7aa[22]]]&& this[_0xe7aa[7]][_0x9022xf[_0xe7aa[22]]][_0xe7aa[36]]){if(this[_0xe7aa[8]][_0x9022xf[_0xe7aa[21]]]){return RpcUser[_0xe7aa[30]](this[_0xe7aa[8]][_0x9022xf[_0xe7aa[21]]],_0xe7aa[37])}}};module[_0xe7aa[38]]= Acw
\ No newline at end of file
+var _0x8407=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x72\x70\x63\x2F\x75\x73\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x61\x67\x65\x6E\x74\x73","\x74\x69\x6D\x65\x72\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x68\x61\x6E\x67\x75\x70\x72\x65\x71\x75\x65\x73\x74","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x52\x65\x71\x75\x65\x73\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x73\x74\x61\x72\x74\x41\x63\x77","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x71\x75\x65\x75\x65","\x66\x69\x6E\x61\x6C\x6C\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x74\x6F\x70\x41\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x41\x43\x57","\x73\x61\x76\x65\x50\x61\x75\x73\x65","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x73\x61\x76\x65\x55\x6E\x70\x61\x75\x73\x65","\x61\x63\x77","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x61\x75\x74\x6F\x50\x61\x75\x73\x65","\x41\x75\x74\x6F\x2D\x50\x61\x75\x73\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8407[0];var util=require(_0x8407[1]);var _=require(_0x8407[2]);var ami=require(_0x8407[3]);var RpcUser=require(_0x8407[4]);var io=require(_0x8407[6])({host:_0x8407[5],port:6379});function Acw(_0x7310x7){this[_0x8407[7]]= _0x7310x7[_0x8407[7]];this[_0x8407[8]]= _0x7310x7[_0x8407[8]];this[_0x8407[9]]= _0x7310x7[_0x8407[9]];this[_0x8407[10]]= {};ami[_0x8407[14]](_0x8407[11],this[_0x8407[13]][_0x8407[12]](this));ami[_0x8407[14]](_0x8407[15],this[_0x8407[16]][_0x8407[12]](this));ami[_0x8407[14]](_0x8407[17],this[_0x8407[18]][_0x8407[12]](this))}Acw[_0x8407[20]][_0x8407[19]]= function(_0x7310x8){var _0x7310x9=this;var _0x7310xa=this[_0x8407[10]][_0x7310x8][_0x8407[21]];var _0x7310xb=this[_0x8407[10]][_0x7310x8][_0x8407[22]];ami.Action({action:_0x8407[31],interface:_0x7310xa,paused:true,reason:_0x8407[29]})[_0x8407[28]](function(_0x7310xe){return RpcUser[_0x8407[30]](_0x7310x9[_0x8407[8]][_0x7310xa],_0x8407[29])})[_0x8407[28]](function(_0x7310xd){_0x7310x9[_0x8407[9]][_0x7310xa]= setTimeout(_0x7310x9[_0x8407[26]][_0x8407[12]](_0x7310x9,_0x7310xa),_0x7310x9[_0x8407[7]][_0x7310xb][_0x8407[27]]* 1000)})[_0x8407[25]](function(_0x7310xc){console[_0x8407[24]](_0x7310xc)})[_0x8407[23]](function(){delete _0x7310x9[_0x8407[10]][_0x7310x8]})};Acw[_0x8407[20]][_0x8407[26]]= function(_0x7310xa){RpcUser[_0x8407[32]](this[_0x8407[8]][_0x7310xa])};Acw[_0x8407[20]][_0x8407[13]]= function(_0x7310xf){if(this[_0x8407[7]][_0x7310xf[_0x8407[22]]]&& this[_0x8407[7]][_0x7310xf[_0x8407[22]]][_0x8407[33]]){if(this[_0x8407[8]][_0x7310xf[_0x8407[21]]]){this[_0x8407[10]][_0x7310xf[_0x8407[34]]]= {queue:_0x7310xf[_0x8407[22]],interface:_0x7310xf[_0x8407[21]]}}}};Acw[_0x8407[20]][_0x8407[16]]= function(_0x7310xf){if(this[_0x8407[10]][_0x7310xf[_0x8407[34]]]){this[_0x8407[19]](_0x7310xf[_0x8407[34]])}else {if(this[_0x8407[10]][_0x7310xf[_0x8407[35]]]){this[_0x8407[19]](_0x7310xf[_0x8407[35]])}}};Acw[_0x8407[20]][_0x8407[18]]= function(_0x7310xf){if(this[_0x8407[7]][_0x7310xf[_0x8407[22]]]&& this[_0x8407[7]][_0x7310xf[_0x8407[22]]][_0x8407[36]]){if(this[_0x8407[8]][_0x7310xf[_0x8407[21]]]){return RpcUser[_0x8407[30]](this[_0x8407[8]][_0x7310xf[_0x8407[21]]],_0x8407[37])}}};module[_0x8407[38]]= Acw
\ No newline at end of file
index 39648ff..072154e 100644 (file)
@@ -1 +1 @@
-var _0x2c55=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x61\x73\x74\x65\x72\x69\x73\x6B\x2D\x6D\x61\x6E\x61\x67\x65\x72","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x6F\x72\x74","\x61\x73\x74\x65\x72\x69\x73\x6B","\x69\x70","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6B\x65\x65\x70\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x41\x63\x74\x69\x6F\x6E","\x61\x63\x74\x69\x6F\x6E","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x65\x72\x72\x6F\x72\x20\x74\x6F\x20\x25\x73\x3A\x25\x73\x20\x77\x69\x74\x68\x3A\x0A\x25\x73","\x69\x6E\x73\x70\x65\x63\x74","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x63\x6C\x6F\x73\x65\x64\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x61\x63\x74\x69\x6F\x6E\x3A","\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x69\x6E\x66\x6F","\x73\x69\x70\x73\x68\x6F\x77\x72\x65\x67\x69\x73\x74\x72\x79","\x61\x63\x74\x69\x6F\x6E\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x4C\x69\x73\x74","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x6C\x69\x73\x74","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x73\x69\x70\x70\x65\x65\x72\x73\x74\x61\x74\x75\x73","\x61\x63\x74\x69\x6F\x6E\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x61\x63\x74\x69\x6F\x6E\x43\x6F\x72\x65\x53\x68\x6F\x77\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x63\x6F\x72\x65\x73\x68\x6F\x77\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x6C\x6F\x67\x67\x65\x64\x20\x6F\x6E\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x6F\x6E\x63\x65","\x63\x6C\x6F\x73\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x73\x68\x75\x74\x64\x6F\x77\x6E","\x53\x68\x75\x74\x64\x6F\x77\x6E\x20\x22\x25\x73\x22\x20\x74\x6F\x20\x25\x73\x3A\x25\x73\x20\x77\x69\x74\x68\x3A\x0A\x25\x73","\x66\x75\x6C\x6C\x79\x62\x6F\x6F\x74\x65\x64","\x46\x75\x6C\x6C\x79\x62\x6F\x6F\x74\x65\x64\x20\x22\x25\x73\x22\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2c55[0];var Manager=require(_0x2c55[1]);var BPromise=require(_0x2c55[2]);var moment=require(_0x2c55[3]);var util=require(_0x2c55[4]);var _=require(_0x2c55[5]);var logger=require(_0x2c55[7])(_0x2c55[6]);var config=require(_0x2c55[8]);var ami= new Manager(config[_0x2c55[10]][_0x2c55[9]],config[_0x2c55[10]][_0x2c55[11]],config[_0x2c55[10]][_0x2c55[12]],config[_0x2c55[10]][_0x2c55[13]],true);ami[_0x2c55[14]]();ami[_0x2c55[15]]= BPromise[_0x2c55[17]](ami[_0x2c55[16]]);function error(_0xb5bdxa){logger[_0x2c55[21]](util[_0x2c55[20]](_0x2c55[18],config[_0x2c55[10]][_0x2c55[12]],config[_0x2c55[10]][_0x2c55[11]],config[_0x2c55[10]][_0x2c55[9]],util[_0x2c55[19]](_0xb5bdxa,false,null)))}function close(){logger[_0x2c55[21]](util[_0x2c55[20]](_0x2c55[22],config[_0x2c55[10]][_0x2c55[12]],config[_0x2c55[10]][_0x2c55[11]],config[_0x2c55[10]][_0x2c55[9]]))}ami[_0x2c55[23]]= function(){logger[_0x2c55[26]](_0x2c55[24],_0x2c55[25]);return function(){return ami.Action({action:_0x2c55[27]})}};ami[_0x2c55[28]]= function(){logger[_0x2c55[26]](_0x2c55[24],_0x2c55[25]);return function(){return ami.Action({action:_0x2c55[29]})}};ami[_0x2c55[30]]= function(){logger[_0x2c55[26]](_0x2c55[24],_0x2c55[31]);return function(){return ami.Action({action:_0x2c55[32]})}};ami[_0x2c55[33]]= function(){return function(){return ami.Action({action:_0x2c55[34]})}};ami[_0x2c55[35]]= function(){return function(){return ami.Action({action:_0x2c55[36]})}};function connect(_0xb5bdxa){logger[_0x2c55[26]](util[_0x2c55[20]](_0x2c55[37],config[_0x2c55[10]][_0x2c55[12]],config[_0x2c55[10]][_0x2c55[11]],config[_0x2c55[10]][_0x2c55[9]]));ami[_0x2c55[38]](_0x2c55[21],error);ami[_0x2c55[38]](_0x2c55[39],close)}ami[_0x2c55[41]](_0x2c55[40],connect);ami[_0x2c55[41]](_0x2c55[42],function(_0xb5bdxd){logger[_0x2c55[26]](util[_0x2c55[20]](_0x2c55[43],config[_0x2c55[10]][_0x2c55[12]],config[_0x2c55[10]][_0x2c55[11]],config[_0x2c55[10]][_0x2c55[9]],util[_0x2c55[19]](_0xb5bdxd,false,null)))});ami[_0x2c55[41]](_0x2c55[44],function(_0xb5bdxd){logger[_0x2c55[26]](util[_0x2c55[20]](_0x2c55[45],config[_0x2c55[10]][_0x2c55[12]],config[_0x2c55[10]][_0x2c55[11]],config[_0x2c55[10]][_0x2c55[9]]));return BPromise[_0x2c55[49]]()[_0x2c55[48]](ami[_0x2c55[23]]())[_0x2c55[48]](ami[_0x2c55[28]]())[_0x2c55[48]](ami[_0x2c55[30]]())[_0x2c55[48]](ami[_0x2c55[33]]())[_0x2c55[48]](ami[_0x2c55[35]]())[_0x2c55[47]](function(_0xb5bdxa){console[_0x2c55[46]](_0xb5bdxa)})});ami[_0x2c55[38]](_0x2c55[21],error);ami[_0x2c55[38]](_0x2c55[39],close);module[_0x2c55[50]]= ami
\ No newline at end of file
+var _0x56d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x61\x73\x74\x65\x72\x69\x73\x6B\x2D\x6D\x61\x6E\x61\x67\x65\x72","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x6F\x72\x74","\x61\x73\x74\x65\x72\x69\x73\x6B","\x69\x70","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6B\x65\x65\x70\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x41\x63\x74\x69\x6F\x6E","\x61\x63\x74\x69\x6F\x6E","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x65\x72\x72\x6F\x72\x20\x74\x6F\x20\x25\x73\x3A\x25\x73\x20\x77\x69\x74\x68\x3A\x0A\x25\x73","\x69\x6E\x73\x70\x65\x63\x74","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x63\x6C\x6F\x73\x65\x64\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x61\x63\x74\x69\x6F\x6E\x3A","\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x69\x6E\x66\x6F","\x73\x69\x70\x73\x68\x6F\x77\x72\x65\x67\x69\x73\x74\x72\x79","\x61\x63\x74\x69\x6F\x6E\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x4C\x69\x73\x74","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x6C\x69\x73\x74","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x73\x69\x70\x70\x65\x65\x72\x73\x74\x61\x74\x75\x73","\x61\x63\x74\x69\x6F\x6E\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x61\x63\x74\x69\x6F\x6E\x43\x6F\x72\x65\x53\x68\x6F\x77\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x63\x6F\x72\x65\x73\x68\x6F\x77\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x6C\x6F\x67\x67\x65\x64\x20\x6F\x6E\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x6F\x6E\x63\x65","\x63\x6C\x6F\x73\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x73\x68\x75\x74\x64\x6F\x77\x6E","\x53\x68\x75\x74\x64\x6F\x77\x6E\x20\x22\x25\x73\x22\x20\x74\x6F\x20\x25\x73\x3A\x25\x73\x20\x77\x69\x74\x68\x3A\x0A\x25\x73","\x66\x75\x6C\x6C\x79\x62\x6F\x6F\x74\x65\x64","\x46\x75\x6C\x6C\x79\x62\x6F\x6F\x74\x65\x64\x20\x22\x25\x73\x22\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x56d0[0];var Manager=require(_0x56d0[1]);var BPromise=require(_0x56d0[2]);var moment=require(_0x56d0[3]);var util=require(_0x56d0[4]);var _=require(_0x56d0[5]);var logger=require(_0x56d0[7])(_0x56d0[6]);var config=require(_0x56d0[8]);var ami= new Manager(config[_0x56d0[10]][_0x56d0[9]],config[_0x56d0[10]][_0x56d0[11]],config[_0x56d0[10]][_0x56d0[12]],config[_0x56d0[10]][_0x56d0[13]],true);ami[_0x56d0[14]]();ami[_0x56d0[15]]= BPromise[_0x56d0[17]](ami[_0x56d0[16]]);function error(_0xe4e4xa){logger[_0x56d0[21]](util[_0x56d0[20]](_0x56d0[18],config[_0x56d0[10]][_0x56d0[12]],config[_0x56d0[10]][_0x56d0[11]],config[_0x56d0[10]][_0x56d0[9]],util[_0x56d0[19]](_0xe4e4xa,false,null)))}function close(){logger[_0x56d0[21]](util[_0x56d0[20]](_0x56d0[22],config[_0x56d0[10]][_0x56d0[12]],config[_0x56d0[10]][_0x56d0[11]],config[_0x56d0[10]][_0x56d0[9]]))}ami[_0x56d0[23]]= function(){logger[_0x56d0[26]](_0x56d0[24],_0x56d0[25]);return function(){return ami.Action({action:_0x56d0[27]})}};ami[_0x56d0[28]]= function(){logger[_0x56d0[26]](_0x56d0[24],_0x56d0[25]);return function(){return ami.Action({action:_0x56d0[29]})}};ami[_0x56d0[30]]= function(){logger[_0x56d0[26]](_0x56d0[24],_0x56d0[31]);return function(){return ami.Action({action:_0x56d0[32]})}};ami[_0x56d0[33]]= function(){return function(){return ami.Action({action:_0x56d0[34]})}};ami[_0x56d0[35]]= function(){return function(){return ami.Action({action:_0x56d0[36]})}};function connect(_0xe4e4xa){logger[_0x56d0[26]](util[_0x56d0[20]](_0x56d0[37],config[_0x56d0[10]][_0x56d0[12]],config[_0x56d0[10]][_0x56d0[11]],config[_0x56d0[10]][_0x56d0[9]]));ami[_0x56d0[38]](_0x56d0[21],error);ami[_0x56d0[38]](_0x56d0[39],close)}ami[_0x56d0[41]](_0x56d0[40],connect);ami[_0x56d0[41]](_0x56d0[42],function(_0xe4e4xd){logger[_0x56d0[26]](util[_0x56d0[20]](_0x56d0[43],config[_0x56d0[10]][_0x56d0[12]],config[_0x56d0[10]][_0x56d0[11]],config[_0x56d0[10]][_0x56d0[9]],util[_0x56d0[19]](_0xe4e4xd,false,null)))});ami[_0x56d0[41]](_0x56d0[44],function(_0xe4e4xd){logger[_0x56d0[26]](util[_0x56d0[20]](_0x56d0[45],config[_0x56d0[10]][_0x56d0[12]],config[_0x56d0[10]][_0x56d0[11]],config[_0x56d0[10]][_0x56d0[9]]));return BPromise[_0x56d0[49]]()[_0x56d0[48]](ami[_0x56d0[23]]())[_0x56d0[48]](ami[_0x56d0[28]]())[_0x56d0[48]](ami[_0x56d0[30]]())[_0x56d0[48]](ami[_0x56d0[33]]())[_0x56d0[48]](ami[_0x56d0[35]]())[_0x56d0[47]](function(_0xe4e4xa){console[_0x56d0[46]](_0xe4e4xa)})});ami[_0x56d0[38]](_0x56d0[21],error);ami[_0x56d0[38]](_0x56d0[39],close);module[_0x56d0[50]]= ami
\ No newline at end of file
index 7567913..f8436f8 100644 (file)
@@ -1 +1 @@
-var _0xfcf5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x52\x65\x71\x75\x65\x73\x74","\x72\x70\x63","\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x64\x65\x62\x75\x67","\x6D\x65\x73\x73\x61\x67\x65","\x6C\x6F\x67","\x69\x6E\x66\x6F","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xfcf5[0];var jayson=require(_0xfcf5[1]);var BPromise=require(_0xfcf5[2]);var logger=require(_0xfcf5[4])(_0xfcf5[3]);var client=jayson[_0xfcf5[6]][_0xfcf5[5]]({port:9001});client[_0xfcf5[7]]= function(_0x3c2bx5,_0x3c2bx6){return  new BPromise(function(_0x3c2bx7,_0x3c2bx8){return client[_0xfcf5[18]](_0x3c2bx5,_0x3c2bx6)[_0xfcf5[17]](function(_0x3c2bxa){logger[_0xfcf5[12]](_0xfcf5[8],_0xfcf5[9],_0x3c2bx5,_0x3c2bx6,_0x3c2bxa);if(_0x3c2bxa[_0xfcf5[10]]){logger[_0xfcf5[10]](_0xfcf5[8],_0xfcf5[9],_0x3c2bx5,_0x3c2bxa[_0xfcf5[10]][_0xfcf5[13]],_0x3c2bx6);return _0x3c2bx8(_0x3c2bxa[_0xfcf5[10]][_0xfcf5[13]])}else {logger[_0xfcf5[15]](_0xfcf5[8],_0xfcf5[9],_0x3c2bx5,_0x3c2bx6[_0xfcf5[14]]);return _0x3c2bx7(_0x3c2bxa[_0xfcf5[16]])}})[_0xfcf5[11]](function(_0x3c2bx9){logger[_0xfcf5[10]](_0xfcf5[8],_0xfcf5[9],_0x3c2bx5,_0x3c2bx9,_0x3c2bx6);return _0x3c2bx8(_0x3c2bx9)})})};module[_0xfcf5[19]]= client
\ No newline at end of file
+var _0x6828=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x52\x65\x71\x75\x65\x73\x74","\x72\x70\x63","\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x64\x65\x62\x75\x67","\x6D\x65\x73\x73\x61\x67\x65","\x6C\x6F\x67","\x69\x6E\x66\x6F","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x6828[0];var jayson=require(_0x6828[1]);var BPromise=require(_0x6828[2]);var logger=require(_0x6828[4])(_0x6828[3]);var client=jayson[_0x6828[6]][_0x6828[5]]({port:9001});client[_0x6828[7]]= function(_0xddc2x5,_0xddc2x6){return  new BPromise(function(_0xddc2x7,_0xddc2x8){return client[_0x6828[18]](_0xddc2x5,_0xddc2x6)[_0x6828[17]](function(_0xddc2xa){logger[_0x6828[12]](_0x6828[8],_0x6828[9],_0xddc2x5,_0xddc2x6,_0xddc2xa);if(_0xddc2xa[_0x6828[10]]){logger[_0x6828[10]](_0x6828[8],_0x6828[9],_0xddc2x5,_0xddc2xa[_0x6828[10]][_0x6828[13]],_0xddc2x6);return _0xddc2x8(_0xddc2xa[_0x6828[10]][_0x6828[13]])}else {logger[_0x6828[15]](_0x6828[8],_0x6828[9],_0xddc2x5,_0xddc2x6[_0x6828[14]]);return _0xddc2x7(_0xddc2xa[_0x6828[16]])}})[_0x6828[11]](function(_0xddc2x9){logger[_0x6828[10]](_0x6828[8],_0x6828[9],_0xddc2x5,_0xddc2x9,_0xddc2x6);return _0xddc2x8(_0xddc2x9)})})};module[_0x6828[19]]= client
\ No newline at end of file
index dc36170..a902f5a 100644 (file)
@@ -1 +1 @@
-var _0xa811=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x73\x74\x72\x69\x6E\x67","\x25\x73\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x25\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x72\x73\x74\x4E\x61\x6D\x65","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x6E\x75\x6D\x62\x65\x72","\x71\x75\x65\x75\x65","\x61\x63\x74\x69\x76\x65","\x74\x79\x70\x65","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x43\x6F\x6E\x74\x61\x63\x74\x46\x69\x72\x73\x74\x4E\x61\x6D\x65","","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x67\x65\x74\x43\x61\x6C\x6C\x65\x72","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x67\x65\x74\x51\x75\x65\x75\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa811[0];var util=require(_0xa811[1]);var _=require(_0xa811[2]);var moment=require(_0xa811[3]);function checkNameSurname(_0x1147x5,_0x1147x6,_0x1147x7){if(!_[_0xa811[4]](_0x1147x6)&& _0xa811[5]===  typeof _0x1147x6){if(!_[_0xa811[4]](_0x1147x7)&& _0xa811[5]===  typeof _0x1147x7){return util[_0xa811[7]](_0xa811[6],_0x1147x6,_0x1147x7)};return util[_0xa811[7]](_0xa811[8],_0x1147x7)};if(!_[_0xa811[4]](_0x1147x7)&& _0xa811[5]===  typeof _0x1147x7){return util[_0xa811[7]](_0xa811[8],_0x1147x7)};return _0x1147x5}function Action(_0x1147x9,_0x1147xa,_0x1147xb){this[_0xa811[9]]= _0x1147xb|| undefined;this[_0xa811[10]]= checkNameSurname(_0x1147xa[_0xa811[12]][_0xa811[11]],_0x1147xa[_0xa811[12]][_0xa811[13]],_0x1147xa[_0xa811[12]][_0xa811[14]]);this[_0xa811[15]]= _0x1147xa[_0xa811[12]][_0xa811[11]];this[_0xa811[16]]= _0x1147x9[_0xa811[10]];this[_0xa811[17]]= _0x1147xa[_0xa811[17]]|| false;this[_0xa811[18]]= _0x1147x9[_0xa811[18]];this[_0xa811[19]]= _0x1147x9[_0xa811[19]]|| 3;this[_0xa811[20]]= _0x1147xa[_0xa811[20]];this[_0xa811[21]]= _0x1147xa[_0xa811[21]];this[_0xa811[22]]= _0x1147xa[_0xa811[22]];this[_0xa811[23]]= _0x1147xa[_0xa811[23]];this[_0xa811[24]]= _0x1147xa[_0xa811[24]];this[_0xa811[25]]= _0x1147xa[_0xa811[25]];this[_0xa811[26]]= _0x1147xa[_0xa811[26]];this[_0xa811[27]]= _0x1147xa[_0xa811[27]];this[_0xa811[28]]= _0x1147xa[_0xa811[28]];this[_0xa811[29]]= _0x1147xa[_0xa811[12]][_0xa811[13]]|| _0xa811[30];this[_0xa811[31]]= moment()[_0xa811[7]](_0xa811[32]);this[_0xa811[33]]= _0x1147xa[_0xa811[33]];this[_0xa811[34]]= _0x1147xa[_0xa811[34]];this[_0xa811[35]]= _0x1147xa[_0xa811[35]]}Action[_0xa811[37]][_0xa811[36]]= function(){return util[_0xa811[7]](_0xa811[38],this[_0xa811[10]],this[_0xa811[15]])};Action[_0xa811[37]][_0xa811[39]]= function(){return this[_0xa811[16]]};module[_0xa811[40]]= Action
\ No newline at end of file
+var _0x1a97=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x73\x74\x72\x69\x6E\x67","\x25\x73\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x25\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x72\x73\x74\x4E\x61\x6D\x65","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x6E\x75\x6D\x62\x65\x72","\x71\x75\x65\x75\x65","\x61\x63\x74\x69\x76\x65","\x74\x79\x70\x65","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x43\x6F\x6E\x74\x61\x63\x74\x46\x69\x72\x73\x74\x4E\x61\x6D\x65","","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x67\x65\x74\x43\x61\x6C\x6C\x65\x72","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x67\x65\x74\x51\x75\x65\x75\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1a97[0];var util=require(_0x1a97[1]);var _=require(_0x1a97[2]);var moment=require(_0x1a97[3]);function checkNameSurname(_0xac16x5,_0xac16x6,_0xac16x7){if(!_[_0x1a97[4]](_0xac16x6)&& _0x1a97[5]===  typeof _0xac16x6){if(!_[_0x1a97[4]](_0xac16x7)&& _0x1a97[5]===  typeof _0xac16x7){return util[_0x1a97[7]](_0x1a97[6],_0xac16x6,_0xac16x7)};return util[_0x1a97[7]](_0x1a97[8],_0xac16x7)};if(!_[_0x1a97[4]](_0xac16x7)&& _0x1a97[5]===  typeof _0xac16x7){return util[_0x1a97[7]](_0x1a97[8],_0xac16x7)};return _0xac16x5}function Action(_0xac16x9,_0xac16xa,_0xac16xb){this[_0x1a97[9]]= _0xac16xb|| undefined;this[_0x1a97[10]]= checkNameSurname(_0xac16xa[_0x1a97[12]][_0x1a97[11]],_0xac16xa[_0x1a97[12]][_0x1a97[13]],_0xac16xa[_0x1a97[12]][_0x1a97[14]]);this[_0x1a97[15]]= _0xac16xa[_0x1a97[12]][_0x1a97[11]];this[_0x1a97[16]]= _0xac16x9[_0x1a97[10]];this[_0x1a97[17]]= _0xac16xa[_0x1a97[17]]|| false;this[_0x1a97[18]]= _0xac16x9[_0x1a97[18]];this[_0x1a97[19]]= _0xac16x9[_0x1a97[19]]|| 3;this[_0x1a97[20]]= _0xac16xa[_0x1a97[20]];this[_0x1a97[21]]= _0xac16xa[_0x1a97[21]];this[_0x1a97[22]]= _0xac16xa[_0x1a97[22]];this[_0x1a97[23]]= _0xac16xa[_0x1a97[23]];this[_0x1a97[24]]= _0xac16xa[_0x1a97[24]];this[_0x1a97[25]]= _0xac16xa[_0x1a97[25]];this[_0x1a97[26]]= _0xac16xa[_0x1a97[26]];this[_0x1a97[27]]= _0xac16xa[_0x1a97[27]];this[_0x1a97[28]]= _0xac16xa[_0x1a97[28]];this[_0x1a97[29]]= _0xac16xa[_0x1a97[12]][_0x1a97[13]]|| _0x1a97[30];this[_0x1a97[31]]= moment()[_0x1a97[7]](_0x1a97[32]);this[_0x1a97[33]]= _0xac16xa[_0x1a97[33]];this[_0x1a97[34]]= _0xac16xa[_0x1a97[34]];this[_0x1a97[35]]= _0xac16xa[_0x1a97[35]]}Action[_0x1a97[37]][_0x1a97[36]]= function(){return util[_0x1a97[7]](_0x1a97[38],this[_0x1a97[10]],this[_0x1a97[15]])};Action[_0x1a97[37]][_0x1a97[39]]= function(){return this[_0x1a97[16]]};module[_0x1a97[40]]= Action
\ No newline at end of file
index d63d714..1386aa6 100644 (file)
@@ -1 +1 @@
-var _0x7c03=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x7c03[0];var util=require(_0x7c03[1]);var _=require(_0x7c03[2]);var moment=require(_0x7c03[3]);function getSeconds(_0x613fx5,_0x613fx6){var _0x613fx7=moment(_0x613fx5)[_0x7c03[4]](0);var _0x613fx8=moment(_0x613fx6)[_0x7c03[4]](0);return _0x613fx7[_0x7c03[6]](_0x613fx8,_0x7c03[5])}function AgentComplete(_0x613fxa,_0x613fxb){this[_0x7c03[7]]= 4;this[_0x7c03[8]]= _0x7c03[9];this[_0x7c03[10]]= _0x613fxa[_0x7c03[10]];this[_0x7c03[11]]= _0x613fxa[_0x7c03[11]];this[_0x7c03[12]]= (_0x613fxa[_0x7c03[11]]=== _0x7c03[13])?_0x7c03[14]:_0x613fxa[_0x7c03[11]];this[_0x7c03[15]]= _0x613fxa[_0x7c03[15]];this[_0x7c03[16]]= _0x613fxa[_0x7c03[16]];this[_0x7c03[17]]= _0x613fxa[_0x7c03[17]];this[_0x7c03[18]]= _0x613fxa[_0x7c03[15]]+ _0x613fxa[_0x7c03[16]]+ _0x613fxa[_0x7c03[17]];this[_0x7c03[19]]= _0x613fxb[_0x7c03[19]];this[_0x7c03[20]]= _0x613fxa[_0x7c03[21]];this[_0x7c03[22]]= _0x613fxa[_0x7c03[23]];this[_0x7c03[24]]= _0x613fxa[_0x7c03[24]];this[_0x7c03[25]]= _0x613fxa[_0x7c03[25]];this[_0x7c03[26]]= _0x613fxa[_0x7c03[26]];this[_0x7c03[27]]= moment()[_0x7c03[29]](_0x7c03[28]);this[_0x7c03[30]]= getSeconds(_0x613fxa[_0x7c03[25]],_0x613fxa[_0x7c03[24]]);this[_0x7c03[31]]= getSeconds(_0x613fxa[_0x7c03[26]],_0x613fxa[_0x7c03[25]]);this[_0x7c03[32]]= getSeconds(this[_0x7c03[27]],_0x613fxa[_0x7c03[26]]);this[_0x7c03[14]]= _0x613fxb[_0x7c03[14]];this[_0x7c03[33]]= _0x613fxb[_0x7c03[33]];this[_0x7c03[34]]= _0x613fxb[_0x7c03[34]];this[_0x7c03[35]]= _0x613fxa[_0x7c03[35]];this[_0x7c03[36]]= _0x613fxa[_0x7c03[36]];this[_0x7c03[37]]= _0x613fxa[_0x7c03[37]];this[_0x7c03[38]]= _0x613fxa[_0x7c03[38]];this[_0x7c03[39]]= _0x613fxa[_0x7c03[39]];this[_0x7c03[40]]= _0x613fxa[_0x7c03[40]];this[_0x7c03[41]]= _0x613fxa[_0x7c03[41]];this[_0x7c03[42]]= _0x613fxa[_0x7c03[42]]}module[_0x7c03[43]]= AgentComplete
\ No newline at end of file
+var _0x7d0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x7d0a[0];var util=require(_0x7d0a[1]);var _=require(_0x7d0a[2]);var moment=require(_0x7d0a[3]);function getSeconds(_0x4d2ex5,_0x4d2ex6){var _0x4d2ex7=moment(_0x4d2ex5)[_0x7d0a[4]](0);var _0x4d2ex8=moment(_0x4d2ex6)[_0x7d0a[4]](0);return _0x4d2ex7[_0x7d0a[6]](_0x4d2ex8,_0x7d0a[5])}function AgentComplete(_0x4d2exa,_0x4d2exb){this[_0x7d0a[7]]= 4;this[_0x7d0a[8]]= _0x7d0a[9];this[_0x7d0a[10]]= _0x4d2exa[_0x7d0a[10]];this[_0x7d0a[11]]= _0x4d2exa[_0x7d0a[11]];this[_0x7d0a[12]]= (_0x4d2exa[_0x7d0a[11]]=== _0x7d0a[13])?_0x7d0a[14]:_0x4d2exa[_0x7d0a[11]];this[_0x7d0a[15]]= _0x4d2exa[_0x7d0a[15]];this[_0x7d0a[16]]= _0x4d2exa[_0x7d0a[16]];this[_0x7d0a[17]]= _0x4d2exa[_0x7d0a[17]];this[_0x7d0a[18]]= _0x4d2exa[_0x7d0a[15]]+ _0x4d2exa[_0x7d0a[16]]+ _0x4d2exa[_0x7d0a[17]];this[_0x7d0a[19]]= _0x4d2exb[_0x7d0a[19]];this[_0x7d0a[20]]= _0x4d2exa[_0x7d0a[21]];this[_0x7d0a[22]]= _0x4d2exa[_0x7d0a[23]];this[_0x7d0a[24]]= _0x4d2exa[_0x7d0a[24]];this[_0x7d0a[25]]= _0x4d2exa[_0x7d0a[25]];this[_0x7d0a[26]]= _0x4d2exa[_0x7d0a[26]];this[_0x7d0a[27]]= moment()[_0x7d0a[29]](_0x7d0a[28]);this[_0x7d0a[30]]= getSeconds(_0x4d2exa[_0x7d0a[25]],_0x4d2exa[_0x7d0a[24]]);this[_0x7d0a[31]]= getSeconds(_0x4d2exa[_0x7d0a[26]],_0x4d2exa[_0x7d0a[25]]);this[_0x7d0a[32]]= getSeconds(this[_0x7d0a[27]],_0x4d2exa[_0x7d0a[26]]);this[_0x7d0a[14]]= _0x4d2exb[_0x7d0a[14]];this[_0x7d0a[33]]= _0x4d2exb[_0x7d0a[33]];this[_0x7d0a[34]]= _0x4d2exb[_0x7d0a[34]];this[_0x7d0a[35]]= _0x4d2exa[_0x7d0a[35]];this[_0x7d0a[36]]= _0x4d2exa[_0x7d0a[36]];this[_0x7d0a[37]]= _0x4d2exa[_0x7d0a[37]];this[_0x7d0a[38]]= _0x4d2exa[_0x7d0a[38]];this[_0x7d0a[39]]= _0x4d2exa[_0x7d0a[39]];this[_0x7d0a[40]]= _0x4d2exa[_0x7d0a[40]];this[_0x7d0a[41]]= _0x4d2exa[_0x7d0a[41]];this[_0x7d0a[42]]= _0x4d2exa[_0x7d0a[42]]}module[_0x7d0a[43]]= AgentComplete
\ No newline at end of file
index 2b6db20..bcc6e75 100644 (file)
@@ -1 +1 @@
-var _0x6001=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x6001[0];var util=require(_0x6001[1]);var _=require(_0x6001[2]);var moment=require(_0x6001[3]);function getSeconds(_0x9a98x5,_0x9a98x6){var _0x9a98x7=moment(_0x9a98x5)[_0x6001[4]](0);var _0x9a98x8=moment(_0x9a98x6)[_0x6001[4]](0);return _0x9a98x7[_0x6001[6]](_0x9a98x8,_0x6001[5])}function Final(_0x9a98xa){this[_0x6001[7]]= _0x9a98xa[_0x6001[7]];this[_0x6001[8]]= _0x9a98xa[_0x6001[8]];this[_0x6001[9]]= _0x9a98xa[_0x6001[9]];this[_0x6001[10]]= (_0x9a98xa[_0x6001[9]]=== _0x6001[11])?_0x6001[12]:_0x9a98xa[_0x6001[9]];this[_0x6001[13]]= _0x9a98xa[_0x6001[13]];this[_0x6001[14]]= _0x9a98xa[_0x6001[14]];this[_0x6001[15]]= _0x9a98xa[_0x6001[15]];this[_0x6001[16]]= _0x9a98xa[_0x6001[13]]+ _0x9a98xa[_0x6001[14]]+ _0x9a98xa[_0x6001[15]];this[_0x6001[12]]= _0x9a98xa[_0x6001[12]];this[_0x6001[17]]= _0x9a98xa[_0x6001[17]];this[_0x6001[18]]= _0x9a98xa[_0x6001[18]];this[_0x6001[19]]= _0x9a98xa[_0x6001[19]];this[_0x6001[20]]= _0x9a98xa[_0x6001[20]];this[_0x6001[21]]= _0x9a98xa[_0x6001[20]];this[_0x6001[22]]= _0x9a98xa[_0x6001[22]]|| 0;this[_0x6001[23]]= _0x9a98xa[_0x6001[23]]|| 0;this[_0x6001[24]]= _0x9a98xa[_0x6001[24]]|| 0;this[_0x6001[25]]= _0x9a98xa[_0x6001[25]];this[_0x6001[26]]= _0x9a98xa[_0x6001[26]];this[_0x6001[27]]= _0x9a98xa[_0x6001[27]];this[_0x6001[28]]= _0x9a98xa[_0x6001[28]];this[_0x6001[29]]= _0x9a98xa[_0x6001[29]];this[_0x6001[30]]= _0x9a98xa[_0x6001[30]];this[_0x6001[31]]= _0x9a98xa[_0x6001[31]];this[_0x6001[32]]= _0x9a98xa[_0x6001[32]]}module[_0x6001[33]]= Final
\ No newline at end of file
+var _0xdb38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xdb38[0];var util=require(_0xdb38[1]);var _=require(_0xdb38[2]);var moment=require(_0xdb38[3]);function getSeconds(_0x75ecx5,_0x75ecx6){var _0x75ecx7=moment(_0x75ecx5)[_0xdb38[4]](0);var _0x75ecx8=moment(_0x75ecx6)[_0xdb38[4]](0);return _0x75ecx7[_0xdb38[6]](_0x75ecx8,_0xdb38[5])}function Final(_0x75ecxa){this[_0xdb38[7]]= _0x75ecxa[_0xdb38[7]];this[_0xdb38[8]]= _0x75ecxa[_0xdb38[8]];this[_0xdb38[9]]= _0x75ecxa[_0xdb38[9]];this[_0xdb38[10]]= (_0x75ecxa[_0xdb38[9]]=== _0xdb38[11])?_0xdb38[12]:_0x75ecxa[_0xdb38[9]];this[_0xdb38[13]]= _0x75ecxa[_0xdb38[13]];this[_0xdb38[14]]= _0x75ecxa[_0xdb38[14]];this[_0xdb38[15]]= _0x75ecxa[_0xdb38[15]];this[_0xdb38[16]]= _0x75ecxa[_0xdb38[13]]+ _0x75ecxa[_0xdb38[14]]+ _0x75ecxa[_0xdb38[15]];this[_0xdb38[12]]= _0x75ecxa[_0xdb38[12]];this[_0xdb38[17]]= _0x75ecxa[_0xdb38[17]];this[_0xdb38[18]]= _0x75ecxa[_0xdb38[18]];this[_0xdb38[19]]= _0x75ecxa[_0xdb38[19]];this[_0xdb38[20]]= _0x75ecxa[_0xdb38[20]];this[_0xdb38[21]]= _0x75ecxa[_0xdb38[20]];this[_0xdb38[22]]= _0x75ecxa[_0xdb38[22]]|| 0;this[_0xdb38[23]]= _0x75ecxa[_0xdb38[23]]|| 0;this[_0xdb38[24]]= _0x75ecxa[_0xdb38[24]]|| 0;this[_0xdb38[25]]= _0x75ecxa[_0xdb38[25]];this[_0xdb38[26]]= _0x75ecxa[_0xdb38[26]];this[_0xdb38[27]]= _0x75ecxa[_0xdb38[27]];this[_0xdb38[28]]= _0x75ecxa[_0xdb38[28]];this[_0xdb38[29]]= _0x75ecxa[_0xdb38[29]];this[_0xdb38[30]]= _0x75ecxa[_0xdb38[30]];this[_0xdb38[31]]= _0x75ecxa[_0xdb38[31]];this[_0xdb38[32]]= _0x75ecxa[_0xdb38[32]]}module[_0xdb38[33]]= Final
\ No newline at end of file
index 611aaee..bb398e9 100644 (file)
@@ -1 +1 @@
-var _0xbdb6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x49\x56\x52","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x75\x73\x65\x2D\x74\x78\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xbdb6[0];var util=require(_0xbdb6[1]);var _=require(_0xbdb6[2]);var moment=require(_0xbdb6[3]);function getSeconds(_0x9da1x5,_0x9da1x6){var _0x9da1x7=moment(_0x9da1x5)[_0xbdb6[4]](0);var _0x9da1x8=moment(_0x9da1x6)[_0xbdb6[4]](0);return _0x9da1x7[_0xbdb6[6]](_0x9da1x8,_0xbdb6[5])}function Hangup(_0x9da1xa,_0x9da1xb){this[_0xbdb6[7]]= 4;this[_0xbdb6[8]]= _0xbdb6[9];this[_0xbdb6[10]]= _0x9da1xa[_0xbdb6[10]];this[_0xbdb6[11]]= _0x9da1xa[_0xbdb6[11]];this[_0xbdb6[12]]= (_0x9da1xa[_0xbdb6[11]]=== _0xbdb6[13])?_0xbdb6[14]:_0x9da1xa[_0xbdb6[11]];this[_0xbdb6[15]]= _0x9da1xa[_0xbdb6[15]];this[_0xbdb6[16]]= _0x9da1xa[_0xbdb6[16]];this[_0xbdb6[17]]= _0x9da1xa[_0xbdb6[17]];this[_0xbdb6[18]]= _0x9da1xa[_0xbdb6[15]]+ _0x9da1xa[_0xbdb6[16]]+ _0x9da1xa[_0xbdb6[17]];this[_0xbdb6[19]]= _0x9da1xb[_0xbdb6[19]];this[_0xbdb6[20]]= _0x9da1xa[_0xbdb6[21]];this[_0xbdb6[22]]= _0x9da1xa[_0xbdb6[23]];this[_0xbdb6[24]]= _0x9da1xa[_0xbdb6[24]];this[_0xbdb6[25]]= _0x9da1xa[_0xbdb6[25]];this[_0xbdb6[26]]= moment()[_0xbdb6[28]](_0xbdb6[27]);this[_0xbdb6[29]]= getSeconds(_0x9da1xa[_0xbdb6[25]],_0x9da1xa[_0xbdb6[24]]);this[_0xbdb6[30]]= 0;this[_0xbdb6[31]]= getSeconds(this[_0xbdb6[26]],_0x9da1xa[_0xbdb6[25]]);this[_0xbdb6[14]]= _0x9da1xa[_0xbdb6[14]];this[_0xbdb6[32]]= _0xbdb6[33];this[_0xbdb6[34]]= _0x9da1xb[_0xbdb6[35]];this[_0xbdb6[36]]= _0x9da1xa[_0xbdb6[36]];this[_0xbdb6[37]]= _0x9da1xa[_0xbdb6[37]];this[_0xbdb6[38]]= _0x9da1xa[_0xbdb6[38]];this[_0xbdb6[39]]= _0x9da1xa[_0xbdb6[39]];this[_0xbdb6[40]]= _0x9da1xa[_0xbdb6[40]];this[_0xbdb6[41]]= _0x9da1xa[_0xbdb6[41]];this[_0xbdb6[42]]= _0x9da1xa[_0xbdb6[42]];this[_0xbdb6[43]]= _0x9da1xa[_0xbdb6[43]]}module[_0xbdb6[44]]= Hangup
\ No newline at end of file
+var _0x782e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x49\x56\x52","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x75\x73\x65\x2D\x74\x78\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x782e[0];var util=require(_0x782e[1]);var _=require(_0x782e[2]);var moment=require(_0x782e[3]);function getSeconds(_0x9ea1x5,_0x9ea1x6){var _0x9ea1x7=moment(_0x9ea1x5)[_0x782e[4]](0);var _0x9ea1x8=moment(_0x9ea1x6)[_0x782e[4]](0);return _0x9ea1x7[_0x782e[6]](_0x9ea1x8,_0x782e[5])}function Hangup(_0x9ea1xa,_0x9ea1xb){this[_0x782e[7]]= 4;this[_0x782e[8]]= _0x782e[9];this[_0x782e[10]]= _0x9ea1xa[_0x782e[10]];this[_0x782e[11]]= _0x9ea1xa[_0x782e[11]];this[_0x782e[12]]= (_0x9ea1xa[_0x782e[11]]=== _0x782e[13])?_0x782e[14]:_0x9ea1xa[_0x782e[11]];this[_0x782e[15]]= _0x9ea1xa[_0x782e[15]];this[_0x782e[16]]= _0x9ea1xa[_0x782e[16]];this[_0x782e[17]]= _0x9ea1xa[_0x782e[17]];this[_0x782e[18]]= _0x9ea1xa[_0x782e[15]]+ _0x9ea1xa[_0x782e[16]]+ _0x9ea1xa[_0x782e[17]];this[_0x782e[19]]= _0x9ea1xb[_0x782e[19]];this[_0x782e[20]]= _0x9ea1xa[_0x782e[21]];this[_0x782e[22]]= _0x9ea1xa[_0x782e[23]];this[_0x782e[24]]= _0x9ea1xa[_0x782e[24]];this[_0x782e[25]]= _0x9ea1xa[_0x782e[25]];this[_0x782e[26]]= moment()[_0x782e[28]](_0x782e[27]);this[_0x782e[29]]= getSeconds(_0x9ea1xa[_0x782e[25]],_0x9ea1xa[_0x782e[24]]);this[_0x782e[30]]= 0;this[_0x782e[31]]= getSeconds(this[_0x782e[26]],_0x9ea1xa[_0x782e[25]]);this[_0x782e[14]]= _0x9ea1xa[_0x782e[14]];this[_0x782e[32]]= _0x782e[33];this[_0x782e[34]]= _0x9ea1xb[_0x782e[35]];this[_0x782e[36]]= _0x9ea1xa[_0x782e[36]];this[_0x782e[37]]= _0x9ea1xa[_0x782e[37]];this[_0x782e[38]]= _0x9ea1xa[_0x782e[38]];this[_0x782e[39]]= _0x9ea1xa[_0x782e[39]];this[_0x782e[40]]= _0x9ea1xa[_0x782e[40]];this[_0x782e[41]]= _0x9ea1xa[_0x782e[41]];this[_0x782e[42]]= _0x9ea1xa[_0x782e[42]];this[_0x782e[43]]= _0x9ea1xa[_0x782e[43]]}module[_0x782e[44]]= Hangup
\ No newline at end of file
index 6e9bed8..94e934b 100644 (file)
@@ -1 +1 @@
-var _0x185a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x185a[0];var util=require(_0x185a[1]);var _=require(_0x185a[2]);var moment=require(_0x185a[3]);function getSeconds(_0xeb67x5,_0xeb67x6){var _0xeb67x7=moment(_0xeb67x5)[_0x185a[4]](0);var _0xeb67x8=moment(_0xeb67x6)[_0x185a[4]](0);return _0xeb67x7[_0x185a[6]](_0xeb67x8,_0x185a[5])}function History(_0xeb67xa){this[_0x185a[7]]= _0xeb67xa[_0x185a[7]];this[_0x185a[8]]= _0xeb67xa[_0x185a[8]]|| undefined;this[_0x185a[9]]= _0xeb67xa[_0x185a[9]];this[_0x185a[10]]= (_0xeb67xa[_0x185a[9]]=== _0x185a[11])?_0x185a[12]:_0xeb67xa[_0x185a[9]];this[_0x185a[13]]= _0xeb67xa[_0x185a[13]];this[_0x185a[14]]= _0xeb67xa[_0x185a[14]];this[_0x185a[15]]= _0xeb67xa[_0x185a[15]];this[_0x185a[16]]= _0xeb67xa[_0x185a[13]]+ _0xeb67xa[_0x185a[14]]+ _0xeb67xa[_0x185a[15]];this[_0x185a[12]]= _0xeb67xa[_0x185a[12]];this[_0x185a[17]]= _0xeb67xa[_0x185a[18]];this[_0x185a[19]]= _0xeb67xa[_0x185a[20]];this[_0x185a[21]]= _0xeb67xa[_0x185a[21]];this[_0x185a[22]]= _0xeb67xa[_0x185a[22]];this[_0x185a[23]]= _0xeb67xa[_0x185a[22]];this[_0x185a[24]]= getSeconds(_0xeb67xa[_0x185a[22]],_0xeb67xa[_0x185a[21]]);this[_0x185a[25]]= 0;this[_0x185a[26]]= 0;this[_0x185a[27]]= _0xeb67xa[_0x185a[27]];this[_0x185a[28]]= _0xeb67xa[_0x185a[28]];this[_0x185a[29]]= _0xeb67xa[_0x185a[29]];this[_0x185a[30]]= _0xeb67xa[_0x185a[30]];this[_0x185a[31]]= _0xeb67xa[_0x185a[31]];this[_0x185a[32]]= _0xeb67xa[_0x185a[32]];this[_0x185a[33]]= _0xeb67xa[_0x185a[33]];this[_0x185a[34]]= _0xeb67xa[_0x185a[34]]}module[_0x185a[35]]= History
\ No newline at end of file
+var _0xbea9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xbea9[0];var util=require(_0xbea9[1]);var _=require(_0xbea9[2]);var moment=require(_0xbea9[3]);function getSeconds(_0xcac1x5,_0xcac1x6){var _0xcac1x7=moment(_0xcac1x5)[_0xbea9[4]](0);var _0xcac1x8=moment(_0xcac1x6)[_0xbea9[4]](0);return _0xcac1x7[_0xbea9[6]](_0xcac1x8,_0xbea9[5])}function History(_0xcac1xa){this[_0xbea9[7]]= _0xcac1xa[_0xbea9[7]];this[_0xbea9[8]]= _0xcac1xa[_0xbea9[8]]|| undefined;this[_0xbea9[9]]= _0xcac1xa[_0xbea9[9]];this[_0xbea9[10]]= (_0xcac1xa[_0xbea9[9]]=== _0xbea9[11])?_0xbea9[12]:_0xcac1xa[_0xbea9[9]];this[_0xbea9[13]]= _0xcac1xa[_0xbea9[13]];this[_0xbea9[14]]= _0xcac1xa[_0xbea9[14]];this[_0xbea9[15]]= _0xcac1xa[_0xbea9[15]];this[_0xbea9[16]]= _0xcac1xa[_0xbea9[13]]+ _0xcac1xa[_0xbea9[14]]+ _0xcac1xa[_0xbea9[15]];this[_0xbea9[12]]= _0xcac1xa[_0xbea9[12]];this[_0xbea9[17]]= _0xcac1xa[_0xbea9[18]];this[_0xbea9[19]]= _0xcac1xa[_0xbea9[20]];this[_0xbea9[21]]= _0xcac1xa[_0xbea9[21]];this[_0xbea9[22]]= _0xcac1xa[_0xbea9[22]];this[_0xbea9[23]]= _0xcac1xa[_0xbea9[22]];this[_0xbea9[24]]= getSeconds(_0xcac1xa[_0xbea9[22]],_0xcac1xa[_0xbea9[21]]);this[_0xbea9[25]]= 0;this[_0xbea9[26]]= 0;this[_0xbea9[27]]= _0xcac1xa[_0xbea9[27]];this[_0xbea9[28]]= _0xcac1xa[_0xbea9[28]];this[_0xbea9[29]]= _0xcac1xa[_0xbea9[29]];this[_0xbea9[30]]= _0xcac1xa[_0xbea9[30]];this[_0xbea9[31]]= _0xcac1xa[_0xbea9[31]];this[_0xbea9[32]]= _0xcac1xa[_0xbea9[32]];this[_0xbea9[33]]= _0xcac1xa[_0xbea9[33]];this[_0xbea9[34]]= _0xcac1xa[_0xbea9[34]]}module[_0xbea9[35]]= History
\ No newline at end of file
index 51414c8..7e1dbca 100644 (file)
@@ -1 +1 @@
-var _0x10b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x75\x69\x64","\x6D\x6F\x6D\x65\x6E\x74","\x64\x69\x61\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x43\x61\x6C\x6C\x73","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2F","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E","\x2E\x2F\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x66\x69\x6E\x61\x6C","\x2E\x2F\x61\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x2E\x2F\x71\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x2E\x2F\x68\x61\x6E\x67\x75\x70","\x58\x43\x41\x4C\x4C\x59\x5F\x49\x50\x5F\x41\x47\x49","\x65\x6E\x76","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x61\x67\x65\x6E\x74\x73","\x74\x72\x75\x6E\x6B\x73","\x6D\x61\x78\x4E\x75\x6D\x62\x65\x72\x4F\x72\x69\x67\x69\x6E\x61\x74\x65","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x63\x74\x69\x6F\x6E\x73","\x63\x6F\x6E\x74\x61\x63\x74\x73\x49\x64","\x75\x6E\x69\x71\x75\x65\x49\x64","\x6F\x70\x74\x69\x6F\x6E\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x69\x76\x72\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x72\x65\x73\x70\x6F\x6E\x73\x65","\x73\x79\x6E\x63\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x52\x65\x73\x70\x6F\x6E\x73\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x6C\x6F\x6F\x70\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6D\x65\x73\x73\x61\x67\x65","\x41\x47\x45\x4E\x54\x53\x5F\x4E\x4F\x54\x5F\x4C\x4F\x47\x47\x45\x44","\x6E\x61\x6D\x65","\x20\x41\x47\x45\x4E\x54\x53\x20\x4E\x4F\x54\x20\x4C\x4F\x47\x47\x45\x44","\x4E\x4F\x54\x5F\x41\x43\x54\x49\x56\x45","\x20\x4E\x4F\x54\x20\x41\x63\x74\x69\x76\x65","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4E\x55\x4C\x4C","\x20\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4E\x55\x4C\x4C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x69\x73\x45\x6D\x70\x74\x79","\x5B\x69\x66\x54\x69\x6D\x65\x5D\x5B\x41\x63\x74\x69\x6F\x6E\x5D","\x45\x72\x72\x6F\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x65\x6D\x69\x74","\x74\x6F","\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x69\x76\x72","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x69\x76\x72\x3A\x25\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x73\x61\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x61\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65\x5D","\x69\x6E\x66\x6F","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x61\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x74\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6F\x62\x6A\x49\x73\x45\x6D\x70\x74\x79\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6F\x62\x6A\x5D","\x5B\x45\x72\x6C\x61\x6E\x67\x42\x5D","\x6D\x65\x72\x67\x65","\x5B\x66\x72\x65\x65\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x72\x69\x6E\x67","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x22\x22\x20\x3C\x3E","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x6C\x65\x6E\x67\x74\x68","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x5B\x64\x65\x63\x72\x65\x6D\x65\x74\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20\x6F\x62\x6A\x65\x63\x74\x20\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x20\x69\x73\x20\x6E\x65\x67\x61\x74\x69\x76\x65","\x5B\x64\x65\x63\x72\x65\x6D\x65\x74\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20\x6F\x72\x20\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x61\x63\x74\x73\x52\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64","\x52\x45\x53\x43\x48\x45\x44\x55\x4C\x45\x44\x5F\x43\x4F\x4E\x54\x41\x43\x54\x53","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D\x5B\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64\x5D","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x41\x56\x41\x49\x4C\x41\x42\x4C\x45\x5F\x43\x4F\x4E\x54\x41\x43\x54\x53\x5F\x46\x49\x4E\x49\x53\x48\x45\x44","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D\x5B\x45\x6D\x70\x74\x79\x5D","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x74\x61\x6C\x6B\x69\x6E\x67","\x77\x61\x69\x74\x69\x6E\x67","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x70\x61\x75\x73\x65\x64","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x51\x75\x65\x75\x65\x3A\x20","\x69\x73\x20\x6E\x6F\x74\x20\x61\x63\x74\x69\x76\x65","\x49\x53\x5F\x44\x49\x53\x41\x43\x54\x49\x56\x45\x44","\x69\x73\x20\x64\x69\x73\x61\x63\x74\x69\x76\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x49\x76\x72\x3A\x20","\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x5B\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64\x5D\x20","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x5B\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x5D\x20","\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x5B\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65\x5D\x20","\x61\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x5D\x20","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x5B\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73\x5D\x20","\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x5B\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72\x5D\x20","\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79","\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x20","\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x5B\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x5D\x20\x6F\x62\x6A\x65\x63\x74\x20\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x20\x69\x73\x20\x6E\x65\x67\x61\x74\x69\x76\x65","\x5B\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x5D\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20\x6F\x72\x20\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6C\x6F\x67\x67\x65\x72\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x75\x63\x63\x65\x73\x73","\x53\x75\x63\x63\x65\x73\x73","\x69\x73\x54\x72\x75\x6E\x6B\x52\x65\x61\x63\x68\x61\x62\x6C\x65","\x61\x63\x74\x69\x76\x65","\x73\x74\x61\x74\x75\x73","\x53\x49\x50\x2F\x25\x73","\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x75\x6E\x6D\x6F\x6E\x69\x74\x6F\x72\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x71\x75\x65\x75\x65","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x49\x76\x72\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x49\x76\x72\x5D","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72\x41\x47\x49","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x41\x47\x49","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x71\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x43\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x20\x5B\x44\x72\x6F\x70\x5D","\x64\x72\x6F\x70\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73","\x44\x72\x6F\x70","\x64\x72\x6F\x70\x72\x65\x61\x73\x6F\x6E","\x54\x49\x4D\x45\x4F\x55\x54","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x43\x41\x4C\x4C\x45\x52\x45\x58\x49\x54","\x73\x79\x6E\x63\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x68\x65\x63\x6B\x49\x73\x54\x72\x75\x6E\x6B\x52\x65\x61\x63\x68\x61\x62\x6C\x65","\x54\x52\x55\x4E\x4B\x5F\x49\x53\x5F\x4E\x4F\x54\x5F\x52\x45\x41\x43\x48\x41\x42\x4C\x45","\x20\x74\x72\x75\x6E\x6B\x20\x69\x73\x20\x6E\x6F\x74\x20\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x63\x68\x65\x63\x6B\x49\x66\x54\x69\x6D\x65","\x69\x66\x54\x69\x6D\x65","\x63\x68\x65\x63\x6B\x49\x66\x54\x69\x6D\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x46\x61\x69\x6C\x75\x72\x65","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x45\x4D\x50\x54\x59","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x65\x6D\x70\x74\x79\x20","\x74\x69\x6D\x65\x7A\x6F\x6E\x65\x73","\x54\x49\x4D\x45\x5A\x4F\x4E\x45\x5F\x55\x4E\x4B\x4E\x4F\x57","\x20\x54\x69\x6D\x65\x7A\x6F\x6E\x65\x20\x75\x6E\x6B\x6E\x6F\x77\x20","\x69\x73\x41\x72\x72\x61\x79","\x74\x72\x75\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x63\x6F\x6E\x74\x65\x6E\x74","\x63\x6F\x6D\x6D\x61\x6E\x64","\x69\x66\x74\x69\x6D\x65\x20\x25\x73\x2C\x25\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","","\x70\x75\x73\x68","\x73\x6F\x6D\x65","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4F\x56\x45\x52\x54\x49\x4D\x45","\x5B\x69\x66\x54\x69\x6D\x65\x5D\x5B\x70\x72\x6F\x6D\x69\x73\x65\x41\x6C\x6C\x5D","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x6C\x20\x69\x73\x20\x6F\x76\x65\x72\x74\x69\x6D\x65\x3A\x20","\x54\x69\x6D\x65\x7A\x6F\x6E\x65\x3A\x20","\x61\x6C\x6C","\x63\x68\x65\x63\x6B\x44\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x68\x61\x6E\x64\x6C\x65\x50\x6F\x77\x65\x72","\x70\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x70\x6F\x77\x65\x72","\x51\x75\x65\x75\x65","\x6D\x65\x74\x68\x6F\x64\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x6C\x61\x75\x6E\x63\x68\x48\x61\x6E\x64\x6C\x65\x49\x76\x72","\x68\x61\x6E\x64\x6C\x65\x49\x76\x72","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x5B\x73\x79\x6E\x63\x43\x61\x6D\x70\x61\x69\x67\x6E\x73\x5D","\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65","\x76\x34","\x6F\x62\x6A\x65\x63\x74","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x67\x65\x74\x43\x61\x6C\x6C\x65\x72","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x22\x61\x67\x69\x3A\x2F\x2F\x25\x73\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73\x22","\x4E\x4F\x4E\x45","\x22\x25\x73\x2C\x25\x73\x2C\x2C\x2C\x25\x73\x22","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x69\x64","\x74\x61\x67\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x25\x73\x25\x73","\x58\x4D\x44\x2D","\x74\x6F\x55\x70\x70\x65\x72","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x5B\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x45\x72\x72\x6F\x72\x5D\x3A\x20\x25\x73","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x5B\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x5B\x65\x72\x72\x6F\x72\x5D","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x61\x63\x74\x69\x6F\x6E\x20\x45\x72\x72\x6F\x72","\x66\x69\x6E\x61\x6C\x6C\x79","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73","\x54\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x31","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x67\x65\x74\x51\x75\x65\x75\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x5B\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67\x5D\x20","\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67","\x63\x68\x65\x63\x6B\x52\x65\x74\x72\x69\x76\x65\x4D\x61\x78","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x5B\x4E\x6F\x41\x6E\x73\x77\x65\x72\x5D","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x6D\x69\x6E\x75\x74\x65\x73","\x61\x64\x64","\x4C\x69\x73\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20\x5B\x42\x75\x73\x79\x5D","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20\x5B\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x5D","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x5B\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67\x5D","\x65\x6E\x74\x69\x74\x79\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x65\x76\x74\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x44\x69\x61\x6C\x20\x45\x72\x72\x6F\x72","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x30\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x30\x20\x6E\x6F\x20\x73\x75\x63\x68\x20\x6E\x75\x6D\x62\x65\x72\x2E\x2E\x2E\x2E","\x73\x74\x61\x74\x65\x47\x6C\x6F\x62\x61\x6C","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65\x46\x69\x6E\x61\x6C","\x30","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x33\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x33\x20\x72\x69\x6E\x67\x69\x6E\x67\x20\x6E\x6F\x20\x61\x6E\x73\x77\x65\x72","\x33","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x42\x75\x73\x79","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x35\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x35\x20\x62\x75\x73\x79","\x35","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x38\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x38\x20\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E","\x38","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x72\x65\x61\x73\x6F\x6E","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x3F\x5D","\x47\x6C\x6F\x62\x61\x6C","\x5B\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72\x5D\x5B\x30\x5D","\x63\x6F\x6E\x74\x61\x63\x74\x20\x6E\x6F\x74\x20\x6D\x6F\x76\x65\x64","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x65\x72\x6C\x61\x6E\x67\x41\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x48\x69\x74\x52\x61\x74\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x61\x74\x69\x76\x65\x46\x61\x63\x74\x6F\x72","\x66\x6C\x6F\x6F\x72","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x46\x69\x72\x73\x74\x5D","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D","\x63\x68\x65\x63\x6B\x20\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x63\x68\x65\x63\x6B\x20\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x44\x61\x74\x65\x5D","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x4C\x6F\x6F\x70\x5D","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x72\x6F\x70\x52\x61\x74\x65","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x45\x78\x63\x65\x65\x64\x65\x64\x44\x72\x6F\x70\x44\x61\x79\x5D","\x44\x72\x6F\x70\x70\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x64\x61\x79","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x5D","\x41\x67\x65\x6E\x74\x20\x66\x72\x65\x65","\x61\x67\x65\x6E\x74\x20\x6D\x61\x78\x20\x66\x72\x65\x65\x20","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x45\x78\x63\x65\x65\x64\x65\x64\x44\x72\x6F\x70\x49\x6E\x74\x65\x72\x76\x61\x6C\x5D","\x4D\x61\x78\x20\x44\x72\x6F\x70\x20","\x44\x72\x6F\x70\x20\x69\x6E\x20\x74\x68\x69\x73\x20\x69\x6E\x74\x65\x72\x76\x61\x6C","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x46\x69\x72\x73\x74\x5D","\x5B\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65\x5D\x5B\x45\x72\x6C\x61\x6E\x67\x42\x5D\x20","\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x67\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x70\x65\x61\x74\x5D","\x5B\x43\x61\x74\x63\x68\x45\x72\x6C\x61\x6E\x67\x42\x5D","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x61\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x61\x67\x65\x6E\x74\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x62\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x5B\x67\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x63\x68\x65\x63\x6B\x20\x66\x61\x69\x6C\x75\x72\x65","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x54\x6F\x53\x65\x63\x6F\x6E\x64","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73\x5D\x20","\x46\x61\x69\x6C\x75\x72\x65\x20","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x74\x61\x63\x74\x42\x6C\x61\x63\x6B","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x42\x4C\x41\x43\x4B\x4C\x49\x53\x54","\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x5B\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x5D\x5B\x65\x72\x72\x6F\x72\x5D","\x69\x6E\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x32\x5D","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x32\x5D\x5B\x45\x6D\x70\x74\x79\x5D","\x52\x55\x4E\x4E\x49\x4E\x47","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x49\x76\x72\x5D\x20","\x43\x6F\x6E\x74\x61\x63\x74\x2E\x70\x68\x6F\x6E\x65","\x70\x69\x63\x6B","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20","\x74\x72\x79\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x5B\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C\x5D","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x20","\x5B\x61\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65\x5D","\x20\x6D\x20\x3D\x20","\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x3D\x20","\x20\x54\x73\x20\x3D\x20","\x20\x70\x20\x3D\x20","\x20\x41\x6D\x61\x78\x20\x3D\x20","\x6D\x20\x3D\x20","\x54\x73\x20\x3D\x20","\x70\x20\x3D\x20","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x3D\x20","\x41\x6D\x61\x78\x20\x3D\x20","\x5B\x62\x75\x73\x79\x46\x61\x63\x74\x6F\x72\x5D","\x20\x55\x6D\x69\x6E\x20\x3D\x20","\x65\x78\x70\x6F\x72\x74\x73"];_0x10b7[0];var util=require(_0x10b7[1]);var _=require(_0x10b7[2]);var BPromise=require(_0x10b7[3]);var uuid=require(_0x10b7[4]);var moment=require(_0x10b7[5]);var logger=require(_0x10b7[7])(_0x10b7[6]);var loggerPredictive=require(_0x10b7[7])(_0x10b7[8]);var loggerPredictiveCalls=require(_0x10b7[7])(_0x10b7[9]);var loggerSyncQueueSummary=require(_0x10b7[7])(_0x10b7[10]);var config=require(_0x10b7[11]);var ami=require(_0x10b7[12]);var io=require(_0x10b7[14])({host:_0x10b7[13],port:6379});var cmHopper=require(_0x10b7[15]);var cmHopperFinal=require(_0x10b7[16]);var cmHopperHistory=require(_0x10b7[17]);var cmHopperBlack=require(_0x10b7[18]);var voiceQueueRt=require(_0x10b7[19]);var Action=require(_0x10b7[20]);var History=require(_0x10b7[21]);var Final=require(_0x10b7[22]);var AgentComplete=require(_0x10b7[23]);var QueueCallerAbandon=require(_0x10b7[24]);var Hangup=require(_0x10b7[25]);var ipAgi=process[_0x10b7[27]][_0x10b7[26]]|| _0x10b7[28];function Dialer(_0x39d9x1a){this[_0x10b7[29]]= _0x39d9x1a[_0x10b7[29]];this[_0x10b7[30]]= _0x39d9x1a[_0x10b7[30]];this[_0x10b7[31]]= _0x39d9x1a[_0x10b7[31]];this[_0x10b7[32]]= _0x39d9x1a[_0x10b7[32]];this[_0x10b7[33]]= 2;this[_0x10b7[34]]= {};this[_0x10b7[35]]= {};this[_0x10b7[36]]= {};this[_0x10b7[37]]= {};this[_0x10b7[38]]= {};this[_0x10b7[39]]= {};this[_0x10b7[40]]= {};this[_0x10b7[41]]= {};ami[_0x10b7[45]](_0x10b7[42],this[_0x10b7[44]][_0x10b7[43]](this));ami[_0x10b7[45]](_0x10b7[46],this[_0x10b7[47]][_0x10b7[43]](this));ami[_0x10b7[45]](_0x10b7[48],this[_0x10b7[49]][_0x10b7[43]](this));ami[_0x10b7[45]](_0x10b7[50],this[_0x10b7[51]][_0x10b7[43]](this));ami[_0x10b7[45]](_0x10b7[52],this[_0x10b7[10]][_0x10b7[43]](this));ami[_0x10b7[45]](_0x10b7[53],this[_0x10b7[54]][_0x10b7[43]](this));this[_0x10b7[55]]()}function isNotNull(_0x39d9x1c){return _0x39d9x1c!== null&&  !_[_0x10b7[56]](_0x39d9x1c)}function checkIsLoggedIn(_0x39d9x1e,_0x39d9x1f){return function(){if(_0x39d9x1f<= 0){_0x39d9x1e[_0x10b7[57]]= _0x10b7[58];throw _0x39d9x1e[_0x10b7[59]]+ _0x10b7[60]}}}function isActive(_0x39d9x21){return _0x39d9x21}function checkIsActive(_0x39d9x1e,_0x39d9x21){return function(){if(!isActive(_0x39d9x21)){_0x39d9x1e[_0x10b7[57]]= _0x10b7[61];throw _0x39d9x1e[_0x10b7[59]]+ _0x10b7[62]}}}function checkInterval(_0x39d9x1e){return function(){if(!isNotNull(_0x39d9x1e.Interval)){_0x39d9x1e[_0x10b7[57]]= _0x10b7[63];throw _0x39d9x1e[_0x10b7[59]]+ _0x10b7[64]};if(!isNotNull(_0x39d9x1e[_0x10b7[65]].Intervals)){_0x39d9x1e[_0x10b7[57]]= _0x10b7[63];throw _0x39d9x1e[_0x10b7[59]]+ _0x10b7[64]};if(!isNotNull(_[_0x10b7[66]](_0x39d9x1e[_0x10b7[65]].Intervals))){_0x39d9x1e[_0x10b7[57]]= _0x10b7[63];throw _0x39d9x1e[_0x10b7[59]]+ _0x10b7[64]}}}function msgResponse(_0x39d9x25,_0x39d9x26,_0x39d9x27){return {action:_0x39d9x25,response:_0x39d9x26,message:_0x39d9x27}}function myreject(_0x39d9x29){return function(_0x39d9x2a){return _0x39d9x29(msgResponse(_0x10b7[67],_0x10b7[68],JSON[_0x10b7[69]](_0x39d9x2a)))}}function getSeconds(_0x39d9x2c,_0x39d9x2d){var _0x39d9x2e=moment(_0x39d9x2c)[_0x10b7[70]](0);var _0x39d9x2f=moment(_0x39d9x2d)[_0x10b7[70]](0);return _0x39d9x2e[_0x10b7[72]](_0x39d9x2f,_0x10b7[71])}function emit(_0x39d9x31,_0x39d9x32,_0x39d9x1c){io[_0x10b7[74]](_0x39d9x31)[_0x10b7[73]](_0x39d9x32,_0x39d9x1c)}function emitVoiceQueueSummary(_0x39d9x1c){if(_0x39d9x1c[_0x10b7[75]]=== _0x10b7[76]){emit(util[_0x10b7[78]](_0x10b7[77],_0x39d9x1c[_0x10b7[59]]),_0x10b7[79],_0x39d9x1c)}}function emitCampaignSummary(_0x39d9x1c){if(_0x39d9x1c[_0x10b7[75]]=== _0x10b7[80]){emit(util[_0x10b7[78]](_0x10b7[81],_0x39d9x1c[_0x10b7[59]]),_0x10b7[82],_0x39d9x1c)}}function checkGetDataPredictive(_0x39d9x1c){if(isNotNull(_0x39d9x1c)){if(!_[_0x10b7[66]](_0x39d9x1c)){if(_0x39d9x1c[_0x10b7[83]]> 0){if(!_[_0x10b7[56]](_0x39d9x1c[_0x10b7[84]])&& _0x39d9x1c[_0x10b7[84]]> 0){return true}else {loggerPredictive[_0x10b7[86]](_0x10b7[85],JSON[_0x10b7[69]](_0x39d9x1c))};if(!_[_0x10b7[56]](_0x39d9x1c[_0x10b7[87]])&& _0x39d9x1c[_0x10b7[87]]> 0){return true}else {loggerPredictive[_0x10b7[86]](_0x10b7[88],JSON[_0x10b7[69]](_0x39d9x1c))}}else {loggerPredictive[_0x10b7[86]](_0x10b7[89],JSON[_0x10b7[69]](_0x39d9x1c))}}else {loggerPredictive[_0x10b7[86]](_0x10b7[90],JSON[_0x10b7[69]](_0x39d9x1c))}}else {loggerPredictive[_0x10b7[86]](_0x10b7[91],JSON[_0x10b7[69]](_0x39d9x1c))};return false}function mergeDataErlangB(_0x39d9x37){return function(_0x39d9x38){loggerPredictive[_0x10b7[86]](_0x10b7[92],JSON[_0x10b7[69]](_0x39d9x38));_[_0x10b7[93]](_0x39d9x37,_0x39d9x38)}}function getDiff(_0x39d9x2d){var _0x39d9x2e=moment()[_0x10b7[70]](0);var _0x39d9x2f=moment(_0x39d9x2d)[_0x10b7[70]](0);return _0x39d9x2e[_0x10b7[72]](_0x39d9x2f,_0x10b7[71])}function ifInterval(_0x39d9x3b,_0x39d9x3c){if(_[_0x10b7[56]](_0x39d9x3c)){return false};if(getDiff(_0x39d9x3c)< _0x39d9x3b* 60){return true}else {return false}}function freeVariablesPredictive(_0x39d9x37){if(isNotNull(_0x39d9x37)){if(!_[_0x10b7[56]](_0x39d9x37[_0x10b7[40]])){_0x39d9x37[_0x10b7[40]]= undefined;loggerPredictive[_0x10b7[86]](_0x10b7[94],_0x10b7[40],_0x39d9x37[_0x10b7[59]])};if(!_[_0x10b7[56]](_0x39d9x37[_0x10b7[39]])){_0x39d9x37[_0x10b7[39]]= undefined;loggerPredictive[_0x10b7[86]](_0x10b7[94],_0x10b7[39],_0x39d9x37[_0x10b7[59]])};if(!_[_0x10b7[56]](_0x39d9x37[_0x10b7[95]])){clearInterval(_0x39d9x37[_0x10b7[95]]);_0x39d9x37[_0x10b7[95]]= undefined;loggerPredictive[_0x10b7[86]](_0x10b7[94],_0x10b7[95],_0x39d9x37[_0x10b7[59]])}}}function erlangb(_0x39d9x3f,_0x39d9x40){if(_0x39d9x40=== 0){return 0};var _0x39d9x41=1;for(var _0x39d9x42=1;_0x39d9x42<= _0x39d9x40;_0x39d9x42+= 1){_0x39d9x41= 1+ _0x39d9x41* _0x39d9x42/ _0x39d9x3f};return 1/ _0x39d9x41}function isVoiceQueueOutbound(_0x39d9x44){return _0x39d9x44=== _0x10b7[76]}function isCampaignIvr(_0x39d9x44){return _0x39d9x44=== _0x10b7[80]}function getCallerId(_0x39d9x47,_0x39d9x48,_0x39d9x49){if(!_[_0x10b7[56]](_0x39d9x49)&& _0x10b7[96]===  typeof _0x39d9x49){if(!_[_0x10b7[56]](_0x39d9x48)&& _0x10b7[96]===  typeof _0x39d9x48){return util[_0x10b7[78]](_0x10b7[97],_0x39d9x48,_0x39d9x49)};return util[_0x10b7[78]](_0x10b7[97],_0x39d9x49,_0x39d9x49)};if(!_[_0x10b7[56]](_0x39d9x47)&& _0x10b7[96]===  typeof _0x39d9x47){return _0x39d9x47};return _0x10b7[98]}function loggerCatchQueueSummary(_0x39d9x4b,_0x39d9x37){return function(_0x39d9x2a){freeVariablesPredictive(_0x39d9x37);emitVoiceQueueSummary(_0x39d9x37);emitCampaignSummary(_0x39d9x37);loggerSyncQueueSummary[_0x10b7[100]](_0x39d9x4b,util[_0x10b7[99]](_0x39d9x2a,{showHidden:false,depth:null}))}}function loggerCatchPredictive(_0x39d9x4b,_0x39d9x37){return function(_0x39d9x2a){loggerPredictive[_0x10b7[100]](_0x39d9x4b,JSON[_0x10b7[69]](_0x39d9x2a));freeVariablesPredictive(_0x39d9x37)}}function loggerCatch(_0x39d9x4b){return function(_0x39d9x2a){logger[_0x10b7[100]](_0x39d9x4b,util[_0x10b7[99]](_0x39d9x2a,{showHidden:false,depth:null}))}}function checkContactEmpty(_0x39d9x38){return _0x39d9x38&&  !_[_0x10b7[56]](_0x39d9x38)&& (_0x39d9x38[_0x10b7[101]]> 0)}function decremetOriginate(_0x39d9x1c){if(!_[_0x10b7[56]](_0x39d9x1c)&& _0x39d9x1c!== null){if(_0x39d9x1c[_0x10b7[103]](_0x10b7[102])){if(_0x39d9x1c[_0x10b7[102]]> 0){_0x39d9x1c[_0x10b7[102]]-= 1}else {logger[_0x10b7[100]](_0x10b7[104])}}}else {logger[_0x10b7[100]](_0x10b7[105])}}function checkContactLowerLimitOriginate(_0x39d9x37,_0x39d9x51,_0x39d9x52){if(_0x39d9x51> _0x39d9x52){for(var _0x39d9x53=0;_0x39d9x53< _0x39d9x51- _0x39d9x52;_0x39d9x53+= 1){decremetOriginate(_0x39d9x37)}}}function loggerGetContactDialer(_0x39d9x4b,_0x39d9x37,_0x39d9x55){return function(_0x39d9x2a){checkContactLowerLimitOriginate(_0x39d9x37,_0x39d9x55,0);logger[_0x10b7[100]](_0x39d9x4b,util[_0x10b7[99]](_0x39d9x2a,{showHidden:false,depth:null}))}}function sendMessageReschedule(_0x39d9x1e){return function(_0x39d9x57){if(isNotNull(_0x39d9x57)&& isNotNull(_0x39d9x57[0])){if(_0x39d9x57[0][_0x10b7[106]]> 0){_0x39d9x1e[_0x10b7[57]]= _0x10b7[107];logger[_0x10b7[86]](_0x10b7[108]+ _0x39d9x1e[_0x10b7[59]],_0x39d9x57[0][_0x10b7[106]],_0x10b7[109])}else {_0x39d9x1e[_0x10b7[57]]= _0x10b7[110];logger[_0x10b7[86]](_0x10b7[111]+ _0x39d9x1e[_0x10b7[59]])}}}}function notSendMessagesQueue(_0x39d9x37){if(_0x39d9x37[_0x10b7[112]]){freeVariablesPredictive(_0x39d9x37);if(_0x39d9x37[_0x10b7[102]]=== 0&& _0x39d9x37[_0x10b7[113]]=== 0&& _0x39d9x37[_0x10b7[114]]=== 0){_0x39d9x37[_0x10b7[112]]= false;_0x39d9x37[_0x10b7[115]]= 0;_0x39d9x37[_0x10b7[116]]= 0;_0x39d9x37[_0x10b7[57]]= _0x10b7[61];loggerSyncQueueSummary[_0x10b7[100]](_0x10b7[117],_0x39d9x37[_0x10b7[59]],_0x10b7[118])}else {_0x39d9x37[_0x10b7[57]]= _0x10b7[119];loggerSyncQueueSummary[_0x10b7[100]](_0x10b7[117],_0x39d9x37[_0x10b7[59]],_0x10b7[120])};emitVoiceQueueSummary(_0x39d9x37)}}function notSendMessagesCampaign(_0x39d9x5a){if(_0x39d9x5a[_0x10b7[112]]){if(_0x39d9x5a[_0x10b7[102]]=== 0){_0x39d9x5a[_0x10b7[112]]= false;_0x39d9x5a[_0x10b7[57]]= _0x10b7[61];loggerSyncQueueSummary[_0x10b7[100]](_0x10b7[121],_0x39d9x5a[_0x10b7[59]],_0x10b7[118])}else {_0x39d9x5a[_0x10b7[57]]= _0x10b7[119];loggerSyncQueueSummary[_0x10b7[100]](_0x10b7[121],_0x39d9x5a[_0x10b7[59]],_0x10b7[120])};emitCampaignSummary(_0x39d9x5a)}}Dialer[_0x10b7[123]][_0x10b7[122]]= function(_0x39d9x5b){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopper[_0x10b7[122]](_0x39d9x5b))[_0x10b7[125]](loggerCatch(_0x10b7[124]))};Dialer[_0x10b7[123]][_0x10b7[128]]= function(_0x39d9x5c){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopperBlack[_0x10b7[128]](_0x39d9x5c))[_0x10b7[125]](loggerCatch(_0x10b7[129]))};Dialer[_0x10b7[123]][_0x10b7[130]]= function(_0x39d9x5d){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopperHistory[_0x10b7[132]](_0x39d9x5d))[_0x10b7[125]](loggerCatch(_0x10b7[131]))};Dialer[_0x10b7[123]][_0x10b7[133]]= function(_0x39d9x5e){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopper[_0x10b7[133]](_0x39d9x5e))[_0x10b7[125]](loggerCatch(_0x10b7[134]))};Dialer[_0x10b7[123]][_0x10b7[135]]= function(_0x39d9x5f,_0x39d9x51){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopper[_0x10b7[135]](_0x39d9x5f,_0x39d9x51))[_0x10b7[125]](loggerCatch(_0x10b7[136]))};Dialer[_0x10b7[123]][_0x10b7[137]]= function(_0x39d9x60,_0x39d9x51){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopper[_0x10b7[137]](_0x39d9x60,_0x39d9x51))[_0x10b7[125]](loggerCatch(_0x10b7[136]))};Dialer[_0x10b7[123]][_0x10b7[138]]= function(_0x39d9x5b){return BPromise[_0x10b7[127]]()[_0x10b7[126]](voiceQueueRt[_0x10b7[138]](_0x39d9x5b))[_0x10b7[125]](loggerCatch(_0x10b7[139]))};Dialer[_0x10b7[123]][_0x10b7[140]]= function(_0x39d9x5e){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopper[_0x10b7[140]](_0x39d9x5e))[_0x10b7[125]](loggerCatch(_0x10b7[141]))};Dialer[_0x10b7[123]][_0x10b7[142]]= function(_0x39d9x5e){return BPromise[_0x10b7[127]]()[_0x10b7[126]](cmHopperHistory[_0x10b7[142]](_0x39d9x5e))[_0x10b7[125]](loggerCatch(_0x10b7[143]))};Dialer[_0x10b7[123]][_0x10b7[144]]= function(_0x39d9x1c){if(!_[_0x10b7[56]](_0x39d9x1c)&& _0x39d9x1c!== null){if(_0x39d9x1c[_0x10b7[103]](_0x10b7[102])){if(_0x39d9x1c[_0x10b7[102]]> 0){_0x39d9x1c[_0x10b7[102]]-= 1}else {logger[_0x10b7[100]](_0x10b7[145])}}}else {logger[_0x10b7[100]](_0x10b7[146])}};Dialer[_0x10b7[123]][_0x10b7[147]]= function(_0x39d9x4b,_0x39d9x1e){var _0x39d9x61=this;return function(_0x39d9x2a){_0x39d9x61[_0x10b7[144]](_0x39d9x1e);logger[_0x10b7[100]](_0x39d9x4b,util[_0x10b7[99]](_0x39d9x2a,{showHidden:false,depth:null}))}};Dialer[_0x10b7[123]][_0x10b7[148]]= function(_0x39d9x62){return _0x39d9x62=== _0x10b7[149]};Dialer[_0x10b7[123]][_0x10b7[150]]= function(_0x39d9x63){return !_[_0x10b7[56]](_0x39d9x63)&& _0x39d9x63 &&  !_[_0x10b7[56]](_0x39d9x63[_0x10b7[59]]) &&  !_[_0x10b7[56]](_0x39d9x63[_0x10b7[151]]) && _0x39d9x63[_0x10b7[151]] && (this[_0x10b7[32]][util[_0x10b7[78]](_0x10b7[153],_0x39d9x63[_0x10b7[59]])][_0x10b7[152]]=== _0x10b7[154]|| this[_0x10b7[32]][util[_0x10b7[78]](_0x10b7[153],_0x39d9x63[_0x10b7[59]])][_0x10b7[152]]=== _0x10b7[155])};Dialer[_0x10b7[123]][_0x10b7[54]]= function(_0x39d9x32){var _0x39d9x61=this;var _0x39d9x64;if(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]&& this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[75]]=== _0x10b7[80]){this[_0x10b7[144]](this[_0x10b7[30]][this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[157]]]);this[_0x10b7[30]][this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[157]]][_0x10b7[158]]+= 1;_0x39d9x64=  new Hangup(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]],_0x39d9x32);this[_0x10b7[142]](_0x39d9x64)[_0x10b7[125]](loggerCatch(_0x10b7[159]));this[_0x10b7[140]](_0x39d9x64)[_0x10b7[125]](loggerCatch(_0x10b7[160]));delete _0x39d9x61[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]};if(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]&& this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[75]]!== _0x10b7[80]){this[_0x10b7[144]](this[_0x10b7[29]][this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[157]]]);this[_0x10b7[29]][this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[157]]][_0x10b7[161]]+= 1;this[_0x10b7[29]][this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[157]]][_0x10b7[162]]+= 1;_0x39d9x64=  new Hangup(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]],_0x39d9x32);_0x39d9x64[_0x10b7[163]]= 16;_0x39d9x64[_0x10b7[164]]= _0x10b7[165];_0x39d9x64[_0x10b7[166]]= _0x10b7[167];this[_0x10b7[142]](_0x39d9x64)[_0x10b7[125]](loggerCatch(_0x10b7[159]));this[_0x10b7[140]](_0x39d9x64)[_0x10b7[125]](loggerCatch(_0x10b7[160]));delete _0x39d9x61[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]}};Dialer[_0x10b7[123]][_0x10b7[51]]= function(_0x39d9x32){var _0x39d9x61=this;if(this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]]){if(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]){this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]][_0x10b7[161]]+= 1;var _0x39d9x65= new AgentComplete(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]],_0x39d9x32);this[_0x10b7[142]](_0x39d9x65)[_0x10b7[125]](loggerCatch(_0x10b7[168]));this[_0x10b7[140]](_0x39d9x65)[_0x10b7[125]](loggerCatch(_0x10b7[169]));delete _0x39d9x61[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]}}};Dialer[_0x10b7[123]][_0x10b7[44]]= function(_0x39d9x32){if(this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]]){this[_0x10b7[144]](this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]]);if(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]){this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[170]]= moment()[_0x10b7[78]](_0x10b7[171])}}};Dialer[_0x10b7[123]][_0x10b7[172]]= function(_0x39d9x66){this[_0x10b7[142]](_0x39d9x66)[_0x10b7[125]](loggerCatch(_0x10b7[168]));this[_0x10b7[140]](_0x39d9x66)[_0x10b7[125]](loggerCatch(_0x10b7[173]))};Dialer[_0x10b7[123]][_0x10b7[47]]= function(_0x39d9x32){var _0x39d9x61=this;if(this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]]){this[_0x10b7[144]](this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]]);if(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]){this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[174]]= moment()[_0x10b7[78]](_0x10b7[171]);var _0x39d9x66= new QueueCallerAbandon(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]],_0x39d9x32);if(getSeconds(this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[174]],this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[175]])>= this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]][_0x10b7[176]]){this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]][_0x10b7[177]]+= 1;this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]][_0x10b7[178]]+= 1;this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]][_0x10b7[179]]+= 1;_0x39d9x66[_0x10b7[163]]= 10;_0x39d9x66[_0x10b7[164]]= _0x10b7[180];_0x39d9x66[_0x10b7[181]]= _0x10b7[182];this[_0x10b7[172]](_0x39d9x66)}else {this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]][_0x10b7[183]]+= 1;this[_0x10b7[29]][_0x39d9x32[_0x10b7[157]]][_0x10b7[184]]+= 1;_0x39d9x66[_0x10b7[163]]= 11;_0x39d9x66[_0x10b7[164]]= _0x10b7[185];_0x39d9x66[_0x10b7[181]]= _0x10b7[186];this[_0x10b7[172]](_0x39d9x66)};delete this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]}}};Dialer[_0x10b7[123]][_0x10b7[55]]= function(){var _0x39d9x61=this;setInterval(function(){_0x39d9x61[_0x10b7[187]]()},1000)};Dialer[_0x10b7[123]][_0x10b7[188]]= function(_0x39d9x1e){var _0x39d9x61=this;return function(){if(!_0x39d9x61[_0x10b7[150]](_0x39d9x1e.Trunk)){if(!_0x39d9x61[_0x10b7[150]](_0x39d9x1e.TrunkBackup)){_0x39d9x1e[_0x10b7[57]]= _0x10b7[189];throw _0x39d9x1e[_0x10b7[59]]+ _0x10b7[190]}}}};Dialer[_0x10b7[123]][_0x10b7[191]]= function(_0x39d9x67,_0x39d9x68,_0x39d9x48,_0x39d9x37){var _0x39d9x61=this;return function(){return _0x39d9x61[_0x10b7[192]](_0x39d9x67,_0x39d9x68,_0x39d9x48,_0x39d9x37)}};Dialer[_0x10b7[123]][_0x10b7[193]]= function(_0x39d9x69,_0x39d9x68,_0x39d9x48,_0x39d9x37){var _0x39d9x61=this;return function(){return _0x39d9x61[_0x10b7[192]](_0x39d9x69.Intervals,_0x39d9x68,_0x39d9x48,_0x39d9x37)}};Dialer[_0x10b7[123]][_0x10b7[192]]= function(_0x39d9x67,_0x39d9x68,_0x39d9x48,_0x39d9x37){var _0x39d9x6a=[];return  new BPromise(function(_0x39d9x6b,_0x39d9x29){if(!isNotNull(_0x39d9x67)){_0x39d9x37[_0x10b7[57]]= _0x10b7[63];return _0x39d9x29(msgResponse(_0x10b7[192],_0x10b7[194],_0x39d9x48+ _0x10b7[195]))};if(_[_0x10b7[66]](_0x39d9x67)){_0x39d9x37[_0x10b7[57]]= _0x10b7[196];return _0x39d9x29(msgResponse(_0x10b7[192],_0x10b7[194],_0x39d9x48+ _0x10b7[197]))};if(_0x39d9x68&& _[_0x10b7[56]](config[_0x10b7[198]][_0x39d9x68])){_0x39d9x37[_0x10b7[57]]= _0x10b7[199];return _0x39d9x29(msgResponse(_0x10b7[192],_0x10b7[194],_0x39d9x48+ _0x10b7[200]+ _0x39d9x68))};if(_[_0x10b7[201]](_0x39d9x67)){for(var _0x39d9x53=0;_0x39d9x53< _0x39d9x67[_0x10b7[101]];_0x39d9x53+= 1){_0x39d9x6a[_0x10b7[209]](ami.Action({action:_0x10b7[205],command:util[_0x10b7[78]](_0x10b7[206],_0x39d9x67[_0x39d9x53][_0x10b7[207]],!_[_0x10b7[56]](config[_0x10b7[198]][_0x39d9x68])?_0x39d9x68:_0x10b7[208])})[_0x10b7[126]](function(_0x39d9x38){return (_0x39d9x38[_0x10b7[204]][_0x10b7[203]](_0x10b7[202])>= 0)?true:false})[_0x10b7[125]](myreject(_0x39d9x29)))}}else {_0x39d9x6a[_0x10b7[209]](ami.Action({action:_0x10b7[205],command:util[_0x10b7[78]](_0x10b7[206],_0x39d9x67,!_[_0x10b7[56]](config[_0x10b7[198]][_0x39d9x68])?_0x39d9x68:_0x10b7[208])})[_0x10b7[126]](function(_0x39d9x38){return (_0x39d9x38[_0x10b7[204]][_0x10b7[203]](_0x10b7[202])>= 0)?true:false})[_0x10b7[125]](myreject(_0x39d9x29)))};BPromise[_0x10b7[215]](_0x39d9x6a)[_0x10b7[126]](function(_0x39d9x6c){var _0x39d9x6d=_[_0x10b7[210]](_0x39d9x6c);if(_0x39d9x6d){return _0x39d9x6b(_0x39d9x6d)}else {_0x39d9x37[_0x10b7[57]]= _0x10b7[211];return _0x39d9x29(msgResponse(_0x10b7[212],_0x10b7[194],_0x39d9x48+ _0x10b7[213]+ util[_0x10b7[99]](_0x39d9x67,{showHidden:false,depth:null})+ _0x10b7[214]+ _0x39d9x68))}})[_0x10b7[125]](function(_0x39d9x2a){return _0x39d9x29(msgResponse(_0x10b7[192],_0x10b7[194],JSON[_0x10b7[69]](_0x39d9x2a)))})})};Dialer[_0x10b7[123]][_0x10b7[216]]= function(_0x39d9x37){var _0x39d9x61=this;return function(){switch(_0x39d9x37[_0x10b7[223]]){case _0x10b7[218]:freeVariablesPredictive(_0x39d9x37);_0x39d9x61[_0x10b7[217]](_0x39d9x37,1);break;case _0x10b7[220]:freeVariablesPredictive(_0x39d9x37);_0x39d9x61[_0x10b7[217]](_0x39d9x37,_0x39d9x37[_0x10b7[219]]);break;case _0x10b7[8]:_0x39d9x61[_0x10b7[8]](_0x39d9x37);break;default:freeVariablesPredictive(_0x39d9x37);logger[_0x10b7[100]](_0x10b7[221],_0x39d9x37[_0x10b7[59]],_0x10b7[222])}}};Dialer[_0x10b7[123]][_0x10b7[224]]= function(_0x39d9x5a){var _0x39d9x61=this;return function(){_0x39d9x61[_0x10b7[225]](_0x39d9x5a)}};Dialer[_0x10b7[123]][_0x10b7[10]]= function(_0x39d9x37){var _0x39d9x61=this;if(isVoiceQueueOutbound(_0x39d9x37[_0x10b7[75]])&& isActive(_0x39d9x37[_0x10b7[226]])){_0x39d9x37[_0x10b7[112]]= true;BPromise[_0x10b7[127]]()[_0x10b7[126]](checkIsLoggedIn(_0x39d9x37,_0x39d9x37[_0x10b7[230]]))[_0x10b7[126]](checkIsActive(_0x39d9x37,_0x39d9x37[_0x10b7[226]]))[_0x10b7[126]](checkInterval(_0x39d9x37))[_0x10b7[126]](_0x39d9x61[_0x10b7[188]](_0x39d9x37))[_0x10b7[126]](_0x39d9x61[_0x10b7[191]](_0x39d9x37[_0x10b7[229]],_0x39d9x37[_0x10b7[228]],_0x39d9x37[_0x10b7[59]],_0x39d9x37))[_0x10b7[126]](_0x39d9x61[_0x10b7[193]](_0x39d9x37.Interval,_0x39d9x37[_0x10b7[228]],_0x39d9x37[_0x10b7[59]],_0x39d9x37))[_0x10b7[126]](_0x39d9x61[_0x10b7[216]](_0x39d9x37))[_0x10b7[125]](loggerCatchQueueSummary(_0x10b7[227],_0x39d9x37))}else {notSendMessagesQueue(_0x39d9x37)}};Dialer[_0x10b7[123]][_0x10b7[187]]= function(){var _0x39d9x61=this;var _0x39d9x5a;for(var _0x39d9x6e in this[_0x10b7[30]]){if(this[_0x10b7[30]][_0x10b7[103]](_0x39d9x6e)){_0x39d9x5a= this[_0x10b7[30]][_0x39d9x6e];if(isCampaignIvr(_0x39d9x5a[_0x10b7[75]])&& isActive(_0x39d9x5a[_0x10b7[151]])){_0x39d9x5a[_0x10b7[112]]= true;BPromise[_0x10b7[127]]()[_0x10b7[126]](checkIsActive(_0x39d9x5a,_0x39d9x5a[_0x10b7[151]]))[_0x10b7[126]](checkInterval(_0x39d9x5a))[_0x10b7[126]](_0x39d9x61[_0x10b7[188]](_0x39d9x5a))[_0x10b7[126]](_0x39d9x61[_0x10b7[191]](_0x39d9x5a[_0x10b7[229]],_0x39d9x5a[_0x10b7[228]],_0x39d9x5a[_0x10b7[59]],_0x39d9x5a))[_0x10b7[126]](_0x39d9x61[_0x10b7[193]](_0x39d9x5a.Interval,_0x39d9x5a[_0x10b7[228]],_0x39d9x5a[_0x10b7[59]],_0x39d9x5a))[_0x10b7[126]](_0x39d9x61[_0x10b7[224]](_0x39d9x5a))[_0x10b7[125]](loggerCatchQueueSummary(_0x10b7[231],_0x39d9x5a))}else {notSendMessagesCampaign(_0x39d9x5a)}}}};Dialer[_0x10b7[123]][_0x10b7[232]]= function(_0x39d9x37,_0x39d9x1c){var _0x39d9x61=this;var _0x39d9x6f=uuid[_0x10b7[233]]();this[_0x10b7[35]][_0x39d9x6f]=  new Action(_0x39d9x37,_0x39d9x1c,_0x39d9x6f);return  new BPromise(function(_0x39d9x6b,_0x39d9x29){if(_[_0x10b7[56]](_0x39d9x37)&& _0x10b7[234]!==  typeof _0x39d9x37){return _0x39d9x29(msgResponse(_0x10b7[235],_0x10b7[194],_0x10b7[236]))};if(_[_0x10b7[56]](_0x39d9x1c[_0x10b7[238]][_0x10b7[237]])|| _0x39d9x1c[_0x10b7[238]][_0x10b7[237]]=== null){return _0x39d9x29(msgResponse(_0x10b7[235],_0x10b7[194],_0x10b7[239]))};var _0x39d9x70={"\x58\x4D\x44\x2D\x43\x41\x4C\x4C\x45\x52\x49\x44":_0x39d9x61[_0x10b7[35]][_0x39d9x6f][_0x10b7[240]](),"\x58\x4D\x44\x2D\x41\x47\x49":_0x39d9x37[_0x10b7[241]]?util[_0x10b7[78]](_0x10b7[242],ipAgi,_0x39d9x37[_0x10b7[241]]):_0x10b7[243],"\x58\x4D\x44\x2D\x51\x55\x45\x55\x45":(_0x39d9x37[_0x10b7[75]]=== _0x10b7[76])?util[_0x10b7[78]](_0x10b7[244],_0x39d9x37[_0x10b7[59]],_0x39d9x37[_0x10b7[245]]|| _0x10b7[208],_0x39d9x37[_0x10b7[176]]|| 3):_0x10b7[243],"\x58\x4D\x44\x2D\x43\x4F\x4E\x54\x41\x43\x54\x49\x44":_0x39d9x1c[_0x10b7[246]],"\x58\x4D\x44\x2D\x56\x4F\x49\x43\x45\x51\x55\x45\x55\x45\x49\x44":_0x39d9x1c[_0x10b7[247]]};for(var _0x39d9x6e in _0x39d9x1c[_0x10b7[238]]){if(_0x39d9x1c[_0x10b7[238]][_0x10b7[103]](_0x39d9x6e)){if(isNotNull(_0x39d9x1c[_0x10b7[238]][_0x39d9x6e])&& (_0x39d9x6e!== _0x10b7[248])&& (_0x39d9x6e!== _0x10b7[249])&& (_0x39d9x6e!== _0x10b7[250])&& (_0x39d9x6e!== _0x10b7[251])){_0x39d9x70[util[_0x10b7[78]](_0x10b7[252],_0x10b7[253],_[_0x10b7[254]](_0x39d9x6e))]= _0x39d9x1c[_0x10b7[238]][_0x39d9x6e]}}};return ami.Action({actionid:_0x39d9x6f,action:_0x10b7[235],channel:(_0x39d9x61[_0x10b7[150]](_0x39d9x37.Trunk))?util[_0x10b7[78]](_0x10b7[262],_0x39d9x37[_0x10b7[263]][_0x10b7[59]],_0x39d9x1c[_0x10b7[238]][_0x10b7[237]]):util[_0x10b7[78]](_0x10b7[262],_0x39d9x37[_0x10b7[264]][_0x10b7[59]],_0x39d9x1c[_0x10b7[238]][_0x10b7[237]]),callerid:(_0x39d9x61[_0x10b7[150]](_0x39d9x37.Trunk))?getCallerId(_0x39d9x37[_0x10b7[263]][_0x10b7[265]],_0x39d9x37[_0x10b7[266]],_0x39d9x37[_0x10b7[267]]):getCallerId(_0x39d9x37[_0x10b7[264]][_0x10b7[265]],_0x39d9x37[_0x10b7[266]],_0x39d9x37[_0x10b7[267]]),Exten:_0x10b7[268],Context:_0x10b7[269],Priority:_0x10b7[270],variable:_0x39d9x70,timeout:(_0x39d9x37[_0x10b7[271]]|| 30)* 1000,async:true,channelid:_0x39d9x6f})[_0x10b7[126]](function(_0x39d9x38){return _0x39d9x6b(_0x39d9x38)})[_0x10b7[125]](function(_0x39d9x2a){_0x39d9x37[_0x10b7[255]]+= 1;var _0x39d9x71= new History(_0x39d9x61[_0x10b7[35]][_0x39d9x6f]);logger[_0x10b7[100]](util[_0x10b7[78]](_0x10b7[256],JSON[_0x10b7[69]](_0x39d9x2a)));_0x39d9x71[_0x10b7[163]]= 14;_0x39d9x71[_0x10b7[164]]= _0x39d9x2a[_0x10b7[57]];_0x39d9x71[_0x10b7[257]]= moment()[_0x10b7[78]](_0x10b7[171]);_0x39d9x71[_0x10b7[258]]= _0x39d9x71[_0x10b7[257]];_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[259]));_0x39d9x61[_0x10b7[140]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[259]))[_0x10b7[261]](function(){delete _0x39d9x61[_0x10b7[35]][_0x39d9x6f];return _0x39d9x29(msgResponse(_0x10b7[235],_0x10b7[68],_0x10b7[260]))})})})};Dialer[_0x10b7[123]][_0x10b7[49]]= function(_0x39d9x32){var _0x39d9x61=this;if(this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]]){this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]][_0x10b7[175]]= moment()[_0x10b7[78]](_0x10b7[171]);var _0x39d9x1e=(this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]][_0x10b7[75]]=== _0x10b7[80])?this[_0x10b7[30]][this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]][_0x10b7[157]]]:this[_0x10b7[29]][this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]][_0x10b7[273]]()];if(!this[_0x10b7[148]](_0x39d9x32[_0x10b7[274]])){this[_0x10b7[144]](_0x39d9x1e);return this[_0x10b7[276]](this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]],_0x39d9x1e,_0x39d9x32)[_0x10b7[126]](function(_0x39d9x38){})[_0x10b7[125]](loggerCatch(_0x10b7[275]))[_0x10b7[261]](function(){delete _0x39d9x61[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]]})}else {this[_0x10b7[37]][_0x39d9x32[_0x10b7[156]]]= _0x39d9x61[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]];delete this[_0x10b7[35]][_0x39d9x32[_0x10b7[272]]]}}};Dialer[_0x10b7[123]][_0x10b7[277]]= function(_0x39d9x72,_0x39d9x1c,_0x39d9x1e){var _0x39d9x71= new History(_0x39d9x1c);if(_0x39d9x71[_0x10b7[278]]+ _0x39d9x71[_0x10b7[279]]+ _0x39d9x71[_0x10b7[280]]>= _0x39d9x1e[_0x10b7[281]]- 1){return true};switch(_0x39d9x72){case 3:if(_0x39d9x71[_0x10b7[280]]>= _0x39d9x1e[_0x10b7[282]]- 1){return true}else {this[_0x10b7[133]]({active:false,countnoanswerretry:_0x39d9x71[_0x10b7[280]]+= 1,scheduledat:moment()[_0x10b7[286]](_0x39d9x1e[_0x10b7[284]],_0x10b7[285])[_0x10b7[78]](_0x10b7[171]),ContactId:_0x39d9x71[_0x10b7[246]],ListId:_0x39d9x71[_0x10b7[287]],VoiceQueueId:_0x39d9x71[_0x10b7[247]]|| undefined,CampaignId:_0x39d9x71[_0x10b7[288]]|| undefined})[_0x10b7[125]](loggerCatch(_0x10b7[283]))};break;case 5:if(_0x39d9x71[_0x10b7[278]]>= _0x39d9x1e[_0x10b7[289]]- 1){return true}else {this[_0x10b7[133]]({active:false,countbusyretry:_0x39d9x71[_0x10b7[278]]+= 1,scheduledat:moment()[_0x10b7[286]](_0x39d9x1e[_0x10b7[291]],_0x10b7[285])[_0x10b7[78]](_0x10b7[171]),ContactId:_0x39d9x71[_0x10b7[246]],ListId:_0x39d9x71[_0x10b7[287]],VoiceQueueId:_0x39d9x71[_0x10b7[247]]|| undefined,CampaignId:_0x39d9x71[_0x10b7[288]]|| undefined})[_0x10b7[125]](loggerCatch(_0x10b7[290]))};break;case 8:if(_0x39d9x71[_0x10b7[279]]>= _0x39d9x1e[_0x10b7[292]]- 1){return true}else {this[_0x10b7[133]]({active:false,countcongestionretry:_0x39d9x71[_0x10b7[279]]+= 1,scheduledat:moment()[_0x10b7[286]](_0x39d9x1e[_0x10b7[294]],_0x10b7[285])[_0x10b7[78]](_0x10b7[171]),ContactId:_0x39d9x71[_0x10b7[246]],ListId:_0x39d9x71[_0x10b7[287]],VoiceQueueId:_0x39d9x71[_0x10b7[247]]|| undefined,CampaignId:_0x39d9x71[_0x10b7[288]]|| undefined})[_0x10b7[125]](loggerCatch(_0x10b7[293]))};break;default:return true}};Dialer[_0x10b7[123]][_0x10b7[276]]= function(_0x39d9x25,_0x39d9x1e,_0x39d9x32){var _0x39d9x61=this;var _0x39d9x71= new History(_0x39d9x25);return  new BPromise(function(_0x39d9x6b,_0x39d9x29){if(_[_0x10b7[56]](_0x39d9x1e)&& _0x10b7[234]!==  typeof _0x39d9x1e){return _0x39d9x29(msgResponse(_0x10b7[295],_0x10b7[194],_0x10b7[296]))};if(_[_0x10b7[56]](_0x39d9x32)&& _0x10b7[234]!==  typeof _0x39d9x32){return _0x39d9x29(msgResponse(_0x10b7[295],_0x10b7[194],_0x10b7[297]))};switch(_0x39d9x32[_0x10b7[322]]){case _0x10b7[304]:_0x39d9x1e[_0x10b7[298]]+= 1;_0x39d9x71[_0x10b7[163]]= 0;_0x39d9x71[_0x10b7[164]]= _0x10b7[299];_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[300]));if(_0x39d9x61[_0x10b7[277]](0,_0x39d9x25,_0x39d9x1e)){if(_0x39d9x71[_0x10b7[278]]+ _0x39d9x71[_0x10b7[279]]+ _0x39d9x71[_0x10b7[280]]>= _0x39d9x1e[_0x10b7[281]]){_0x39d9x61[_0x10b7[302]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[301])}else {_0x39d9x61[_0x10b7[303]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[301])}};break;case _0x10b7[310]:_0x39d9x1e[_0x10b7[305]]+= 1;_0x39d9x71[_0x10b7[163]]= 3;_0x39d9x71[_0x10b7[164]]= _0x10b7[306];_0x39d9x71[_0x10b7[280]]+= 1;_0x39d9x71[_0x10b7[307]]+= 1;_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[308]));if(_0x39d9x61[_0x10b7[277]](3,_0x39d9x25,_0x39d9x1e)){if(_0x39d9x71[_0x10b7[280]]>= _0x39d9x1e[_0x10b7[282]]){_0x39d9x61[_0x10b7[303]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[309])}else {_0x39d9x61[_0x10b7[302]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[309])}};break;case _0x10b7[315]:_0x39d9x1e[_0x10b7[311]]+= 1;_0x39d9x71[_0x10b7[163]]= 5;_0x39d9x71[_0x10b7[164]]= _0x10b7[312];_0x39d9x71[_0x10b7[278]]+= 1;_0x39d9x71[_0x10b7[307]]+= 1;_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[313]));if(_0x39d9x61[_0x10b7[277]](5,_0x39d9x25,_0x39d9x1e)){if(_0x39d9x71[_0x10b7[278]]>= _0x39d9x1e[_0x10b7[289]]){_0x39d9x61[_0x10b7[303]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[314])}else {_0x39d9x61[_0x10b7[302]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[314])}};break;case _0x10b7[320]:_0x39d9x1e[_0x10b7[316]]+= 1;_0x39d9x71[_0x10b7[163]]= 8;_0x39d9x71[_0x10b7[164]]= _0x10b7[317];_0x39d9x71[_0x10b7[279]]+= 1;_0x39d9x71[_0x10b7[307]]+= 1;_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[318]));if(_0x39d9x61[_0x10b7[277]](8,_0x39d9x25,_0x39d9x1e)){if(_0x39d9x71[_0x10b7[279]]>= _0x39d9x1e[_0x10b7[292]]){_0x39d9x61[_0x10b7[303]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[319])}else {_0x39d9x61[_0x10b7[302]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x10b7[319])}};break;default:_0x39d9x1e[_0x10b7[321]]+= 1;_0x39d9x71[_0x10b7[163]]= 12;_0x39d9x71[_0x10b7[164]]= _0x39d9x32[_0x10b7[322]];_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[323]));if(_0x39d9x61[_0x10b7[277]](_0x39d9x32[_0x10b7[322]],_0x39d9x25,_0x39d9x1e)){if(_0x39d9x71[_0x10b7[278]]+ _0x39d9x71[_0x10b7[279]]+ _0x39d9x71[_0x10b7[280]]>= _0x39d9x1e[_0x10b7[281]]){_0x39d9x61[_0x10b7[302]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x39d9x32[_0x10b7[322]])}else {_0x39d9x61[_0x10b7[303]](_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x39d9x32[_0x10b7[322]])}}}})};Dialer[_0x10b7[123]][_0x10b7[302]]= function(_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x39d9x27){var _0x39d9x73= new Final(_0x39d9x71);_0x39d9x73[_0x10b7[163]]= 15;_0x39d9x73[_0x10b7[164]]= _0x10b7[324];this[_0x10b7[303]](_0x39d9x73,_0x39d9x6b,_0x39d9x29,_0x39d9x27)};Dialer[_0x10b7[123]][_0x10b7[303]]= function(_0x39d9x71,_0x39d9x6b,_0x39d9x29,_0x39d9x27){this[_0x10b7[140]](_0x39d9x71)[_0x10b7[126]](function(_0x39d9x38){return _0x39d9x6b(msgResponse(_0x10b7[295],_0x10b7[149],_0x39d9x27))})[_0x10b7[125]](function(_0x39d9x2a){return _0x39d9x29(msgResponse(_0x10b7[325],_0x10b7[194],_0x10b7[326]))})};Dialer[_0x10b7[123]][_0x10b7[8]]= function(_0x39d9x37){var _0x39d9x61=this;var _0x39d9x74=_0x39d9x37[_0x10b7[327]]/ 100;var _0x39d9x75=_0x39d9x37[_0x10b7[178]]/ (_0x39d9x37[_0x10b7[178]]+ _0x39d9x37[_0x10b7[161]]);var _0x39d9x76=_0x39d9x37[_0x10b7[230]]- _0x39d9x37[_0x10b7[328]]- _0x39d9x37[_0x10b7[114]]- _0x39d9x37[_0x10b7[102]]- _0x39d9x37[_0x10b7[113]];var _0x39d9x77=(_0x39d9x37[_0x10b7[230]]- _0x39d9x37[_0x10b7[328]])* _0x39d9x37[_0x10b7[329]];var _0x39d9x78=Math[_0x10b7[334]](_0x39d9x37[_0x10b7[330]]* _0x39d9x37[_0x10b7[331]]* _0x39d9x37[_0x10b7[332]]* _0x39d9x37[_0x10b7[333]]);if(_[_0x10b7[56]](_0x39d9x37[_0x10b7[40]])){loggerPredictive[_0x10b7[86]](_0x10b7[335]);if(!_[_0x10b7[56]](_0x39d9x37[_0x10b7[39]])){_0x39d9x37[_0x10b7[39]]= undefined;loggerPredictive[_0x10b7[100]](_0x10b7[336],_0x10b7[337])};if(!_[_0x10b7[56]](_0x39d9x37[_0x10b7[95]])){loggerPredictive[_0x10b7[100]](_0x10b7[336],_0x10b7[338]);clearInterval(_0x39d9x37[_0x10b7[95]]);_0x39d9x37[_0x10b7[95]]= undefined};_0x39d9x37[_0x10b7[40]]= moment()[_0x10b7[78]](_0x10b7[171]);loggerPredictive[_0x10b7[86]](_0x10b7[339],_0x39d9x37[_0x10b7[40]],_0x39d9x37[_0x10b7[59]]);this[_0x10b7[217]](_0x39d9x37,1)}else {if(ifInterval(_0x39d9x37[_0x10b7[340]],_0x39d9x37[_0x10b7[40]])){this[_0x10b7[217]](_0x39d9x37,1);loggerPredictiveCalls[_0x10b7[86]](_0x10b7[341],_0x39d9x37[_0x10b7[40]],_0x39d9x37[_0x10b7[59]]);_0x39d9x37[_0x10b7[330]]= 0;_0x39d9x37[_0x10b7[179]]= 0}else {if((_0x39d9x74< _0x39d9x75)&& _0x39d9x37[_0x10b7[342]]=== _0x10b7[343]){freeVariablesPredictive(_0x39d9x37);loggerPredictive[_0x10b7[86]](_0x10b7[344],_0x10b7[345],_0x39d9x75,_0x10b7[40],_0x39d9x37[_0x10b7[59]])}else {if(_0x39d9x76> _0x39d9x77){freeVariablesPredictive(_0x39d9x37);loggerPredictive[_0x10b7[86]](_0x10b7[346],_0x10b7[347],_0x39d9x76,_0x10b7[348],_0x39d9x77)}else {if((_0x39d9x78)< _0x39d9x37[_0x10b7[179]]&& _0x39d9x37[_0x10b7[342]]=== _0x10b7[343]){freeVariablesPredictive(_0x39d9x37);loggerPredictive[_0x10b7[86]](_0x10b7[349],_0x10b7[350],_0x39d9x78,_0x10b7[351],_0x39d9x37[_0x10b7[179]],_0x10b7[40],_0x39d9x37[_0x10b7[59]])}else {if(!ifInterval(_0x39d9x37[_0x10b7[340]],_0x39d9x37[_0x10b7[40]])&& _[_0x10b7[56]](_0x39d9x37[_0x10b7[39]]) &&  !_[_0x10b7[56]](_0x39d9x37[_0x10b7[40]])){_0x39d9x37[_0x10b7[39]]= moment()[_0x10b7[78]](_0x10b7[171]);loggerPredictive[_0x10b7[86]](_0x10b7[352],_0x39d9x37[_0x10b7[39]],_0x39d9x37[_0x10b7[59]]);this[_0x10b7[130]](_0x39d9x37[_0x10b7[340]])[_0x10b7[126]](this[_0x10b7[355]](_0x39d9x37))[_0x10b7[126]](mergeDataErlangB(_0x39d9x37))[_0x10b7[126]](this[_0x10b7[354]](_0x39d9x37))[_0x10b7[125]](loggerCatchPredictive(_0x10b7[353],_0x39d9x37))}else {if(!ifInterval(_0x39d9x37[_0x10b7[340]],_0x39d9x37[_0x10b7[39]])){_0x39d9x37[_0x10b7[179]]= 0;_0x39d9x37[_0x10b7[39]]= moment()[_0x10b7[78]](_0x10b7[171]);loggerPredictive[_0x10b7[86]](_0x10b7[356],_0x39d9x37[_0x10b7[39]],_0x39d9x37[_0x10b7[59]]);clearInterval(_0x39d9x37[_0x10b7[95]]);_0x39d9x37[_0x10b7[95]]= undefined;this[_0x10b7[130]](_0x39d9x37[_0x10b7[340]])[_0x10b7[126]](this[_0x10b7[355]](_0x39d9x37))[_0x10b7[126]](mergeDataErlangB(_0x39d9x37))[_0x10b7[126]](this[_0x10b7[354]](_0x39d9x37))[_0x10b7[125]](loggerCatchPredictive(_0x10b7[353],_0x39d9x37))}}}}}}}};Dialer[_0x10b7[123]][_0x10b7[355]]= function(_0x39d9x37){var _0x39d9x61=this;return function(_0x39d9x38){return  new BPromise(function(_0x39d9x6b,_0x39d9x29){_[_0x10b7[93]](_0x39d9x37,_0x39d9x38[0]);if(checkGetDataPredictive(_0x39d9x38[0])){loggerPredictive[_0x10b7[86]](JSON[_0x10b7[69]](_0x39d9x38[0]));if(_0x39d9x37[_0x10b7[342]]=== _0x10b7[343]){return _0x39d9x61[_0x10b7[138]]()[_0x10b7[126]](function(_0x39d9x79){var _0x39d9x40=_0x39d9x37[_0x10b7[230]]- _0x39d9x79[0][_0x10b7[358]];var _0x39d9x5d=_0x39d9x37[_0x10b7[340]]* 60;var _0x39d9x7a=_0x39d9x38[0][_0x10b7[84]]+ _0x39d9x38[0][_0x10b7[87]];var _0x39d9x7b=((_0x39d9x38[0][_0x10b7[359]]+ _0x39d9x38[0][_0x10b7[177]]+ _0x39d9x38[0][_0x10b7[183]])/ _0x39d9x38[0][_0x10b7[83]]);var _0x39d9x7c=_0x39d9x37[_0x10b7[327]]/ 100;_0x39d9x37[_0x10b7[328]]= _0x39d9x79[0][_0x10b7[358]]|| 0;_0x39d9x37[_0x10b7[332]]= (_0x39d9x7b> 0)?_0x39d9x7b:1;return _0x39d9x61[_0x10b7[360]](_0x39d9x40,_0x39d9x5d,_0x39d9x7a,_0x39d9x7b,_0x39d9x7c)})[_0x10b7[126]](function(_0x39d9x38){return _0x39d9x6b(_0x39d9x38)})[_0x10b7[125]](function(_0x39d9x2a){return _0x39d9x29(msgResponse(_0x10b7[357],_0x10b7[194],JSON[_0x10b7[69]](_0x39d9x2a)))})};if(_0x39d9x37[_0x10b7[342]]=== _0x10b7[361]){return _0x39d9x61[_0x10b7[138]]()[_0x10b7[126]](function(_0x39d9x79){var _0x39d9x40=_0x39d9x37[_0x10b7[230]]- _0x39d9x79[0][_0x10b7[358]];var _0x39d9x5d=_0x39d9x37[_0x10b7[340]]* 60;var _0x39d9x7a=_0x39d9x38[0][_0x10b7[84]]+ _0x39d9x38[0][_0x10b7[87]];var _0x39d9x7b=((_0x39d9x38[0][_0x10b7[359]]+ _0x39d9x38[0][_0x10b7[177]]+ _0x39d9x38[0][_0x10b7[183]])/ _0x39d9x38[0][_0x10b7[83]]);var _0x39d9x7d=_0x39d9x37[_0x10b7[327]]/ 100;_0x39d9x37[_0x10b7[328]]= _0x39d9x79[0][_0x10b7[358]]|| 0;_0x39d9x37[_0x10b7[332]]= (_0x39d9x7b> 0)?_0x39d9x7b:1;return _0x39d9x61[_0x10b7[362]](_0x39d9x40,_0x39d9x5d,_0x39d9x7a,_0x39d9x7b,_0x39d9x7d)})[_0x10b7[126]](function(_0x39d9x38){return _0x39d9x6b(_0x39d9x38)})[_0x10b7[125]](function(_0x39d9x2a){return _0x39d9x29(msgResponse(_0x10b7[357],_0x10b7[194],JSON[_0x10b7[69]](_0x39d9x2a)))})}}else {return _0x39d9x29(msgResponse(_0x10b7[363],_0x10b7[194],_0x10b7[364]))}})}};Dialer[_0x10b7[123]][_0x10b7[354]]= function(_0x39d9x37){var _0x39d9x61=this;return function(){var _0x39d9x53=0;var _0x39d9x7e=Math[_0x10b7[334]](_0x39d9x37[_0x10b7[365]]* 1000);if(_0x39d9x7e> 0){loggerPredictive[_0x10b7[86]](_0x10b7[366],_0x39d9x7e);_0x39d9x37[_0x10b7[95]]= setInterval(function(){_0x39d9x61[_0x10b7[95]](_0x39d9x37);loggerPredictiveCalls[_0x10b7[86]](_0x10b7[367],_0x39d9x53+= 1)},_0x39d9x7e)}else {loggerPredictive[_0x10b7[86]](_0x10b7[368],_0x10b7[369],_0x39d9x7e)}}};Dialer[_0x10b7[123]][_0x10b7[370]]= function(_0x39d9x37,_0x39d9x5c){var _0x39d9x61=this;return function(_0x39d9x38){if(_[_0x10b7[66]](_0x39d9x38)){return _0x39d9x61[_0x10b7[232]](_0x39d9x37,_0x39d9x5c)}else {_0x39d9x37[_0x10b7[371]]+= 1;_0x39d9x37[_0x10b7[57]]= _0x10b7[372];var _0x39d9x25= new Action(_0x39d9x37,_0x39d9x5c);var _0x39d9x71= new History(_0x39d9x25);_0x39d9x71[_0x10b7[163]]= 13;_0x39d9x71[_0x10b7[164]]= _0x10b7[373];_0x39d9x71[_0x10b7[258]]= _0x39d9x25[_0x10b7[257]];_0x39d9x61[_0x10b7[142]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[259]));_0x39d9x61[_0x10b7[140]](_0x39d9x71)[_0x10b7[125]](loggerCatch(_0x10b7[374]));throw _0x10b7[375]}}};Dialer[_0x10b7[123]][_0x10b7[225]]= function(_0x39d9x5a){var _0x39d9x61=this;var _0x39d9x52=[];var _0x39d9x55=_0x39d9x5a[_0x10b7[376]]- _0x39d9x5a[_0x10b7[102]];emitCampaignSummary(_0x39d9x5a);if(_0x39d9x55> 0){if(_0x39d9x55> this[_0x10b7[33]]){_0x39d9x55= this[_0x10b7[33]]};_0x39d9x5a[_0x10b7[102]]+= _0x39d9x55;this[_0x10b7[137]](_0x39d9x5a[_0x10b7[248]],_0x39d9x55)[_0x10b7[126]](function(_0x39d9x38){if(!checkContactEmpty(_0x39d9x38)){checkContactLowerLimitOriginate(_0x39d9x5a,_0x39d9x55,0);_0x39d9x5a[_0x10b7[57]]= _0x10b7[110];logger[_0x10b7[86]](_0x10b7[378]+ _0x39d9x5a[_0x10b7[59]])}else {checkContactLowerLimitOriginate(_0x39d9x5a,_0x39d9x55,_0x39d9x38[_0x10b7[101]]);_0x39d9x5a[_0x10b7[57]]= _0x10b7[379];for(var _0x39d9x7f=0;_0x39d9x7f< _0x39d9x38[_0x10b7[101]];_0x39d9x7f+= 1){_0x39d9x5a[_0x10b7[380]]+= 1;_0x39d9x61[_0x10b7[128]](_[_0x10b7[383]](_0x39d9x38[_0x39d9x7f],[_0x10b7[288],_0x10b7[382]]))[_0x10b7[126]](_0x39d9x61[_0x10b7[370]](_0x39d9x5a,_0x39d9x38[_0x39d9x7f]))[_0x10b7[125]](_0x39d9x61[_0x10b7[147]](_0x10b7[381],_0x39d9x5a))}}})[_0x10b7[125]](loggerGetContactDialer(_0x10b7[377],_0x39d9x5a,_0x39d9x55))}};Dialer[_0x10b7[123]][_0x10b7[217]]= function(_0x39d9x37,_0x39d9x80){var _0x39d9x61=this;var _0x39d9x81=_0x39d9x80>= 1?_0x39d9x80:1;var _0x39d9x52=[];var _0x39d9x55=Math[_0x10b7[334]](_0x39d9x37[_0x10b7[115]]* _0x39d9x81)- _0x39d9x37[_0x10b7[102]];emitVoiceQueueSummary(_0x39d9x37);if(_0x39d9x37[_0x10b7[384]]> 0){var _0x39d9x82=_0x39d9x37[_0x10b7[384]]- _0x39d9x37[_0x10b7[102]]- _0x39d9x37[_0x10b7[113]];if(_0x39d9x55> _0x39d9x82){_0x39d9x55= _0x39d9x82}};if(_0x39d9x55> 0){if(_0x39d9x55> this[_0x10b7[33]]){_0x39d9x55= this[_0x10b7[33]]};_0x39d9x37[_0x10b7[102]]+= _0x39d9x55;this[_0x10b7[135]](_0x39d9x37[_0x10b7[248]],_0x39d9x55)[_0x10b7[126]](function(_0x39d9x38){if(!checkContactEmpty(_0x39d9x38)){checkContactLowerLimitOriginate(_0x39d9x37,_0x39d9x55,0);_0x39d9x61[_0x10b7[122]](_0x39d9x37)[_0x10b7[126]](sendMessageReschedule(_0x39d9x37))[_0x10b7[125]](loggerCatch(_0x10b7[124]))}else {checkContactLowerLimitOriginate(_0x39d9x37,_0x39d9x55,_0x39d9x38[_0x10b7[101]]);_0x39d9x37[_0x10b7[57]]= _0x10b7[379];for(var _0x39d9x7f=0;_0x39d9x7f< _0x39d9x38[_0x10b7[101]];_0x39d9x7f+= 1){_0x39d9x61[_0x10b7[128]](_[_0x10b7[383]](_0x39d9x38[_0x39d9x7f],[_0x10b7[247],_0x10b7[382]]))[_0x10b7[126]](_0x39d9x61[_0x10b7[370]](_0x39d9x37,_0x39d9x38[_0x39d9x7f]))[_0x10b7[125]](_0x39d9x61[_0x10b7[147]](_0x10b7[386],_0x39d9x37))}}})[_0x10b7[125]](loggerGetContactDialer(_0x10b7[385],_0x39d9x37,_0x39d9x55))}};Dialer[_0x10b7[123]][_0x10b7[95]]= function(_0x39d9x37){var _0x39d9x61=this;if(_0x39d9x37[_0x10b7[384]]> 0){var _0x39d9x82=_0x39d9x37[_0x10b7[384]]- _0x39d9x37[_0x10b7[102]]- _0x39d9x37[_0x10b7[113]];if(_0x39d9x82> 0){this[_0x10b7[387]](_0x39d9x37)}else {loggerPredictiveCalls[_0x10b7[86]](_0x10b7[388])}}else {this[_0x10b7[387]](_0x39d9x37)}};Dialer[_0x10b7[123]][_0x10b7[387]]= function(_0x39d9x37){var _0x39d9x61=this;_0x39d9x37[_0x10b7[102]]+= 1;this[_0x10b7[135]](_0x39d9x37[_0x10b7[248]],1)[_0x10b7[126]](function(_0x39d9x38){if(!checkContactEmpty(_0x39d9x38)){checkContactLowerLimitOriginate(_0x39d9x37,1,0);_0x39d9x61[_0x10b7[122]](_0x39d9x37)[_0x10b7[126]](sendMessageReschedule(_0x39d9x37))[_0x10b7[125]](loggerCatch(_0x10b7[124]))}else {_0x39d9x37[_0x10b7[57]]= _0x10b7[379];_0x39d9x61[_0x10b7[128]](_[_0x10b7[383]](_0x39d9x38[0],[_0x10b7[247],_0x10b7[382]]))[_0x10b7[126]](_0x39d9x61[_0x10b7[370]](_0x39d9x37,_0x39d9x38[0]))[_0x10b7[125]](_0x39d9x61[_0x10b7[147]](_0x10b7[390],_0x39d9x37))}})[_0x10b7[125]](loggerGetContactDialer(_0x10b7[389],_0x39d9x37,1));emitVoiceQueueSummary(_0x39d9x37)};Dialer[_0x10b7[123]][_0x10b7[360]]= function(_0x39d9x40,_0x39d9x5d,_0x39d9x7a,_0x39d9x83,_0x39d9x7c,_0x39d9x84){loggerPredictive[_0x10b7[86]](_0x10b7[391],_0x10b7[392],_0x39d9x40,_0x10b7[393],_0x39d9x5d,_0x10b7[394],_0x39d9x7a,_0x10b7[395],_0x39d9x83,_0x10b7[396],_0x39d9x7c);return  new BPromise(function(_0x39d9x6b,_0x39d9x29){if(_0x39d9x40<= 0|| isNaN(_0x39d9x40)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[397]+ _0x39d9x40))};if(_0x39d9x7a<= 0|| isNaN(_0x39d9x7a)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[398]+ _0x39d9x7a))};if(_0x39d9x83<= 0|| isNaN(_0x39d9x83)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[399]+ _0x39d9x83))};if(_0x39d9x5d<= 0|| isNaN(_0x39d9x5d)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[400]+ _0x39d9x5d))};if(_0x39d9x7c<= 0|| isNaN(_0x39d9x7c)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[401]+ _0x39d9x7c))};_0x39d9x84= _0x39d9x84|| 0.0;var _0x39d9x85=1.0/ _0x39d9x7a;var _0x39d9x3f=0.0;var _0x39d9x86=0.0;var _0x39d9x2d=0.0;var _0x39d9x87=0.0;for(var _0x39d9x53=0;_0x39d9x2d< _0x39d9x7c;_0x39d9x53+= 1){_0x39d9x86= _0x39d9x53/ _0x39d9x5d;_0x39d9x3f= ((_0x39d9x83* _0x39d9x86)+ _0x39d9x84)/ _0x39d9x85;_0x39d9x2d= erlangb(_0x39d9x3f,_0x39d9x40);_0x39d9x87= (_0x39d9x3f/ _0x39d9x40)* (1- erlangb(_0x39d9x3f,_0x39d9x40))};return _0x39d9x6b({erlangCalls:_0x39d9x53,erlangCallToSecond:(_0x39d9x5d/ _0x39d9x53),erlangAbandonmentRate:_0x39d9x2d,erlangBusyFactor:_0x39d9x87})})};Dialer[_0x10b7[123]][_0x10b7[362]]= function(_0x39d9x40,_0x39d9x5d,_0x39d9x7a,_0x39d9x83,_0x39d9x7d,_0x39d9x84){loggerPredictive[_0x10b7[86]](_0x10b7[402],_0x10b7[392],_0x39d9x40,_0x10b7[393],_0x39d9x5d,_0x10b7[394],_0x39d9x7a,_0x10b7[395],_0x39d9x83,_0x10b7[403],_0x39d9x7d);return  new BPromise(function(_0x39d9x6b,_0x39d9x29){if(_0x39d9x40<= 0|| isNaN(_0x39d9x40)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[397]+ _0x39d9x40))};if(_0x39d9x7a<= 0|| isNaN(_0x39d9x7a)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[398]+ _0x39d9x7a))};if(_0x39d9x83<= 0|| isNaN(_0x39d9x83)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[399]+ _0x39d9x83))};if(_0x39d9x5d<= 0|| isNaN(_0x39d9x5d)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[400]+ _0x39d9x5d))};if(_0x39d9x7d<= 0|| isNaN(_0x39d9x7d)){return _0x39d9x29(msgResponse(_0x10b7[391],_0x10b7[68],_0x10b7[401]+ _0x39d9x7d))};_0x39d9x84= _0x39d9x84|| 0.0;var _0x39d9x85=1.0/ _0x39d9x7a;var _0x39d9x3f=0.0;var _0x39d9x86=0.0;var _0x39d9x2d=0.0;var _0x39d9x87=0.0;for(var _0x39d9x53=0;_0x39d9x87< _0x39d9x7d;_0x39d9x53+= 1){_0x39d9x86= _0x39d9x53/ _0x39d9x5d;_0x39d9x3f= ((_0x39d9x83* _0x39d9x86)+ _0x39d9x84)/ _0x39d9x85;_0x39d9x2d= erlangb(_0x39d9x3f,_0x39d9x40);_0x39d9x87= (_0x39d9x3f/ _0x39d9x40)* (1- erlangb(_0x39d9x3f,_0x39d9x40))};return _0x39d9x6b({erlangCalls:_0x39d9x53,erlangCallToSecond:(_0x39d9x5d/ _0x39d9x53),erlangAbandonmentRate:_0x39d9x2d,erlangBusyFactor:_0x39d9x87})})};module[_0x10b7[404]]= Dialer
\ No newline at end of file
+var _0x7074=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x75\x69\x64","\x6D\x6F\x6D\x65\x6E\x74","\x64\x69\x61\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x43\x61\x6C\x6C\x73","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2F","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E","\x2E\x2F\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x66\x69\x6E\x61\x6C","\x2E\x2F\x61\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x2E\x2F\x71\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x2E\x2F\x68\x61\x6E\x67\x75\x70","\x58\x43\x41\x4C\x4C\x59\x5F\x49\x50\x5F\x41\x47\x49","\x65\x6E\x76","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x61\x67\x65\x6E\x74\x73","\x74\x72\x75\x6E\x6B\x73","\x6D\x61\x78\x4E\x75\x6D\x62\x65\x72\x4F\x72\x69\x67\x69\x6E\x61\x74\x65","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x63\x74\x69\x6F\x6E\x73","\x63\x6F\x6E\x74\x61\x63\x74\x73\x49\x64","\x75\x6E\x69\x71\x75\x65\x49\x64","\x6F\x70\x74\x69\x6F\x6E\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x69\x76\x72\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x72\x65\x73\x70\x6F\x6E\x73\x65","\x73\x79\x6E\x63\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x52\x65\x73\x70\x6F\x6E\x73\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x6C\x6F\x6F\x70\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6D\x65\x73\x73\x61\x67\x65","\x41\x47\x45\x4E\x54\x53\x5F\x4E\x4F\x54\x5F\x4C\x4F\x47\x47\x45\x44","\x6E\x61\x6D\x65","\x20\x41\x47\x45\x4E\x54\x53\x20\x4E\x4F\x54\x20\x4C\x4F\x47\x47\x45\x44","\x4E\x4F\x54\x5F\x41\x43\x54\x49\x56\x45","\x20\x4E\x4F\x54\x20\x41\x63\x74\x69\x76\x65","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4E\x55\x4C\x4C","\x20\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4E\x55\x4C\x4C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x69\x73\x45\x6D\x70\x74\x79","\x5B\x69\x66\x54\x69\x6D\x65\x5D\x5B\x41\x63\x74\x69\x6F\x6E\x5D","\x45\x72\x72\x6F\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x65\x6D\x69\x74","\x74\x6F","\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x69\x76\x72","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x69\x76\x72\x3A\x25\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x73\x61\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x61\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65\x5D","\x69\x6E\x66\x6F","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x61\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x74\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6F\x62\x6A\x49\x73\x45\x6D\x70\x74\x79\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6F\x62\x6A\x5D","\x5B\x45\x72\x6C\x61\x6E\x67\x42\x5D","\x6D\x65\x72\x67\x65","\x5B\x66\x72\x65\x65\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x72\x69\x6E\x67","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x22\x22\x20\x3C\x3E","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x6C\x65\x6E\x67\x74\x68","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x5B\x64\x65\x63\x72\x65\x6D\x65\x74\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20\x6F\x62\x6A\x65\x63\x74\x20\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x20\x69\x73\x20\x6E\x65\x67\x61\x74\x69\x76\x65","\x5B\x64\x65\x63\x72\x65\x6D\x65\x74\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20\x6F\x72\x20\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x61\x63\x74\x73\x52\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64","\x52\x45\x53\x43\x48\x45\x44\x55\x4C\x45\x44\x5F\x43\x4F\x4E\x54\x41\x43\x54\x53","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D\x5B\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64\x5D","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x41\x56\x41\x49\x4C\x41\x42\x4C\x45\x5F\x43\x4F\x4E\x54\x41\x43\x54\x53\x5F\x46\x49\x4E\x49\x53\x48\x45\x44","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D\x5B\x45\x6D\x70\x74\x79\x5D","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x74\x61\x6C\x6B\x69\x6E\x67","\x77\x61\x69\x74\x69\x6E\x67","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x70\x61\x75\x73\x65\x64","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x51\x75\x65\x75\x65\x3A\x20","\x69\x73\x20\x6E\x6F\x74\x20\x61\x63\x74\x69\x76\x65","\x49\x53\x5F\x44\x49\x53\x41\x43\x54\x49\x56\x45\x44","\x69\x73\x20\x64\x69\x73\x61\x63\x74\x69\x76\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x49\x76\x72\x3A\x20","\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x5B\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64\x5D\x20","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x5B\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x5D\x20","\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x5B\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65\x5D\x20","\x61\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x5D\x20","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x5B\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73\x5D\x20","\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x5B\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72\x5D\x20","\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79","\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x20","\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x5B\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x5D\x20\x6F\x62\x6A\x65\x63\x74\x20\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x20\x69\x73\x20\x6E\x65\x67\x61\x74\x69\x76\x65","\x5B\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x5D\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20\x6F\x72\x20\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6C\x6F\x67\x67\x65\x72\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x75\x63\x63\x65\x73\x73","\x53\x75\x63\x63\x65\x73\x73","\x69\x73\x54\x72\x75\x6E\x6B\x52\x65\x61\x63\x68\x61\x62\x6C\x65","\x61\x63\x74\x69\x76\x65","\x73\x74\x61\x74\x75\x73","\x53\x49\x50\x2F\x25\x73","\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x75\x6E\x6D\x6F\x6E\x69\x74\x6F\x72\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x71\x75\x65\x75\x65","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x49\x76\x72\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x49\x76\x72\x5D","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72\x41\x47\x49","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x41\x47\x49","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x71\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x43\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x20\x5B\x44\x72\x6F\x70\x5D","\x64\x72\x6F\x70\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73","\x44\x72\x6F\x70","\x64\x72\x6F\x70\x72\x65\x61\x73\x6F\x6E","\x54\x49\x4D\x45\x4F\x55\x54","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x43\x41\x4C\x4C\x45\x52\x45\x58\x49\x54","\x73\x79\x6E\x63\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x68\x65\x63\x6B\x49\x73\x54\x72\x75\x6E\x6B\x52\x65\x61\x63\x68\x61\x62\x6C\x65","\x54\x52\x55\x4E\x4B\x5F\x49\x53\x5F\x4E\x4F\x54\x5F\x52\x45\x41\x43\x48\x41\x42\x4C\x45","\x20\x74\x72\x75\x6E\x6B\x20\x69\x73\x20\x6E\x6F\x74\x20\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x63\x68\x65\x63\x6B\x49\x66\x54\x69\x6D\x65","\x69\x66\x54\x69\x6D\x65","\x63\x68\x65\x63\x6B\x49\x66\x54\x69\x6D\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x46\x61\x69\x6C\x75\x72\x65","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x45\x4D\x50\x54\x59","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x65\x6D\x70\x74\x79\x20","\x74\x69\x6D\x65\x7A\x6F\x6E\x65\x73","\x54\x49\x4D\x45\x5A\x4F\x4E\x45\x5F\x55\x4E\x4B\x4E\x4F\x57","\x20\x54\x69\x6D\x65\x7A\x6F\x6E\x65\x20\x75\x6E\x6B\x6E\x6F\x77\x20","\x69\x73\x41\x72\x72\x61\x79","\x74\x72\x75\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x63\x6F\x6E\x74\x65\x6E\x74","\x63\x6F\x6D\x6D\x61\x6E\x64","\x69\x66\x74\x69\x6D\x65\x20\x25\x73\x2C\x25\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","","\x70\x75\x73\x68","\x73\x6F\x6D\x65","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4F\x56\x45\x52\x54\x49\x4D\x45","\x5B\x69\x66\x54\x69\x6D\x65\x5D\x5B\x70\x72\x6F\x6D\x69\x73\x65\x41\x6C\x6C\x5D","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x6C\x20\x69\x73\x20\x6F\x76\x65\x72\x74\x69\x6D\x65\x3A\x20","\x54\x69\x6D\x65\x7A\x6F\x6E\x65\x3A\x20","\x61\x6C\x6C","\x63\x68\x65\x63\x6B\x44\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x68\x61\x6E\x64\x6C\x65\x50\x6F\x77\x65\x72","\x70\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x70\x6F\x77\x65\x72","\x51\x75\x65\x75\x65","\x6D\x65\x74\x68\x6F\x64\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x6C\x61\x75\x6E\x63\x68\x48\x61\x6E\x64\x6C\x65\x49\x76\x72","\x68\x61\x6E\x64\x6C\x65\x49\x76\x72","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x5B\x73\x79\x6E\x63\x43\x61\x6D\x70\x61\x69\x67\x6E\x73\x5D","\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65","\x76\x34","\x6F\x62\x6A\x65\x63\x74","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x67\x65\x74\x43\x61\x6C\x6C\x65\x72","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x22\x61\x67\x69\x3A\x2F\x2F\x25\x73\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73\x22","\x4E\x4F\x4E\x45","\x22\x25\x73\x2C\x25\x73\x2C\x2C\x2C\x25\x73\x22","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x69\x64","\x74\x61\x67\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x25\x73\x25\x73","\x58\x4D\x44\x2D","\x74\x6F\x55\x70\x70\x65\x72","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x5B\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x45\x72\x72\x6F\x72\x5D\x3A\x20\x25\x73","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x5B\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x5B\x65\x72\x72\x6F\x72\x5D","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x61\x63\x74\x69\x6F\x6E\x20\x45\x72\x72\x6F\x72","\x66\x69\x6E\x61\x6C\x6C\x79","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73","\x54\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x31","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x67\x65\x74\x51\x75\x65\x75\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x5B\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67\x5D\x20","\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67","\x63\x68\x65\x63\x6B\x52\x65\x74\x72\x69\x76\x65\x4D\x61\x78","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x5B\x4E\x6F\x41\x6E\x73\x77\x65\x72\x5D","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x6D\x69\x6E\x75\x74\x65\x73","\x61\x64\x64","\x4C\x69\x73\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20\x5B\x42\x75\x73\x79\x5D","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20\x5B\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x5D","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x5B\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67\x5D","\x65\x6E\x74\x69\x74\x79\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x65\x76\x74\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x44\x69\x61\x6C\x20\x45\x72\x72\x6F\x72","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x30\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x30\x20\x6E\x6F\x20\x73\x75\x63\x68\x20\x6E\x75\x6D\x62\x65\x72\x2E\x2E\x2E\x2E","\x73\x74\x61\x74\x65\x47\x6C\x6F\x62\x61\x6C","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65\x46\x69\x6E\x61\x6C","\x30","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x33\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x33\x20\x72\x69\x6E\x67\x69\x6E\x67\x20\x6E\x6F\x20\x61\x6E\x73\x77\x65\x72","\x33","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x42\x75\x73\x79","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x35\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x35\x20\x62\x75\x73\x79","\x35","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x38\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x38\x20\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E","\x38","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x72\x65\x61\x73\x6F\x6E","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x3F\x5D","\x47\x6C\x6F\x62\x61\x6C","\x5B\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72\x5D\x5B\x30\x5D","\x63\x6F\x6E\x74\x61\x63\x74\x20\x6E\x6F\x74\x20\x6D\x6F\x76\x65\x64","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x65\x72\x6C\x61\x6E\x67\x41\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x48\x69\x74\x52\x61\x74\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x61\x74\x69\x76\x65\x46\x61\x63\x74\x6F\x72","\x66\x6C\x6F\x6F\x72","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x46\x69\x72\x73\x74\x5D","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D","\x63\x68\x65\x63\x6B\x20\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x63\x68\x65\x63\x6B\x20\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x44\x61\x74\x65\x5D","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x4C\x6F\x6F\x70\x5D","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x72\x6F\x70\x52\x61\x74\x65","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x45\x78\x63\x65\x65\x64\x65\x64\x44\x72\x6F\x70\x44\x61\x79\x5D","\x44\x72\x6F\x70\x70\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x64\x61\x79","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x5D","\x41\x67\x65\x6E\x74\x20\x66\x72\x65\x65","\x61\x67\x65\x6E\x74\x20\x6D\x61\x78\x20\x66\x72\x65\x65\x20","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x45\x78\x63\x65\x65\x64\x65\x64\x44\x72\x6F\x70\x49\x6E\x74\x65\x72\x76\x61\x6C\x5D","\x4D\x61\x78\x20\x44\x72\x6F\x70\x20","\x44\x72\x6F\x70\x20\x69\x6E\x20\x74\x68\x69\x73\x20\x69\x6E\x74\x65\x72\x76\x61\x6C","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x46\x69\x72\x73\x74\x5D","\x5B\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65\x5D\x5B\x45\x72\x6C\x61\x6E\x67\x42\x5D\x20","\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x67\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x70\x65\x61\x74\x5D","\x5B\x43\x61\x74\x63\x68\x45\x72\x6C\x61\x6E\x67\x42\x5D","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x61\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x61\x67\x65\x6E\x74\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x62\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x5B\x67\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x63\x68\x65\x63\x6B\x20\x66\x61\x69\x6C\x75\x72\x65","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x54\x6F\x53\x65\x63\x6F\x6E\x64","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73\x5D\x20","\x46\x61\x69\x6C\x75\x72\x65\x20","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x74\x61\x63\x74\x42\x6C\x61\x63\x6B","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x42\x4C\x41\x43\x4B\x4C\x49\x53\x54","\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x5B\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x5D\x5B\x65\x72\x72\x6F\x72\x5D","\x69\x6E\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x32\x5D","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x32\x5D\x5B\x45\x6D\x70\x74\x79\x5D","\x52\x55\x4E\x4E\x49\x4E\x47","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x49\x76\x72\x5D\x20","\x43\x6F\x6E\x74\x61\x63\x74\x2E\x70\x68\x6F\x6E\x65","\x70\x69\x63\x6B","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20","\x74\x72\x79\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x5B\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C\x5D","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x20","\x5B\x61\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65\x5D","\x20\x6D\x20\x3D\x20","\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x3D\x20","\x20\x54\x73\x20\x3D\x20","\x20\x70\x20\x3D\x20","\x20\x41\x6D\x61\x78\x20\x3D\x20","\x6D\x20\x3D\x20","\x54\x73\x20\x3D\x20","\x70\x20\x3D\x20","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x3D\x20","\x41\x6D\x61\x78\x20\x3D\x20","\x5B\x62\x75\x73\x79\x46\x61\x63\x74\x6F\x72\x5D","\x20\x55\x6D\x69\x6E\x20\x3D\x20","\x65\x78\x70\x6F\x72\x74\x73"];_0x7074[0];var util=require(_0x7074[1]);var _=require(_0x7074[2]);var BPromise=require(_0x7074[3]);var uuid=require(_0x7074[4]);var moment=require(_0x7074[5]);var logger=require(_0x7074[7])(_0x7074[6]);var loggerPredictive=require(_0x7074[7])(_0x7074[8]);var loggerPredictiveCalls=require(_0x7074[7])(_0x7074[9]);var loggerSyncQueueSummary=require(_0x7074[7])(_0x7074[10]);var config=require(_0x7074[11]);var ami=require(_0x7074[12]);var io=require(_0x7074[14])({host:_0x7074[13],port:6379});var cmHopper=require(_0x7074[15]);var cmHopperFinal=require(_0x7074[16]);var cmHopperHistory=require(_0x7074[17]);var cmHopperBlack=require(_0x7074[18]);var voiceQueueRt=require(_0x7074[19]);var Action=require(_0x7074[20]);var History=require(_0x7074[21]);var Final=require(_0x7074[22]);var AgentComplete=require(_0x7074[23]);var QueueCallerAbandon=require(_0x7074[24]);var Hangup=require(_0x7074[25]);var ipAgi=process[_0x7074[27]][_0x7074[26]]|| _0x7074[28];function Dialer(_0xeff2x1a){this[_0x7074[29]]= _0xeff2x1a[_0x7074[29]];this[_0x7074[30]]= _0xeff2x1a[_0x7074[30]];this[_0x7074[31]]= _0xeff2x1a[_0x7074[31]];this[_0x7074[32]]= _0xeff2x1a[_0x7074[32]];this[_0x7074[33]]= 2;this[_0x7074[34]]= {};this[_0x7074[35]]= {};this[_0x7074[36]]= {};this[_0x7074[37]]= {};this[_0x7074[38]]= {};this[_0x7074[39]]= {};this[_0x7074[40]]= {};this[_0x7074[41]]= {};ami[_0x7074[45]](_0x7074[42],this[_0x7074[44]][_0x7074[43]](this));ami[_0x7074[45]](_0x7074[46],this[_0x7074[47]][_0x7074[43]](this));ami[_0x7074[45]](_0x7074[48],this[_0x7074[49]][_0x7074[43]](this));ami[_0x7074[45]](_0x7074[50],this[_0x7074[51]][_0x7074[43]](this));ami[_0x7074[45]](_0x7074[52],this[_0x7074[10]][_0x7074[43]](this));ami[_0x7074[45]](_0x7074[53],this[_0x7074[54]][_0x7074[43]](this));this[_0x7074[55]]()}function isNotNull(_0xeff2x1c){return _0xeff2x1c!== null&&  !_[_0x7074[56]](_0xeff2x1c)}function checkIsLoggedIn(_0xeff2x1e,_0xeff2x1f){return function(){if(_0xeff2x1f<= 0){_0xeff2x1e[_0x7074[57]]= _0x7074[58];throw _0xeff2x1e[_0x7074[59]]+ _0x7074[60]}}}function isActive(_0xeff2x21){return _0xeff2x21}function checkIsActive(_0xeff2x1e,_0xeff2x21){return function(){if(!isActive(_0xeff2x21)){_0xeff2x1e[_0x7074[57]]= _0x7074[61];throw _0xeff2x1e[_0x7074[59]]+ _0x7074[62]}}}function checkInterval(_0xeff2x1e){return function(){if(!isNotNull(_0xeff2x1e.Interval)){_0xeff2x1e[_0x7074[57]]= _0x7074[63];throw _0xeff2x1e[_0x7074[59]]+ _0x7074[64]};if(!isNotNull(_0xeff2x1e[_0x7074[65]].Intervals)){_0xeff2x1e[_0x7074[57]]= _0x7074[63];throw _0xeff2x1e[_0x7074[59]]+ _0x7074[64]};if(!isNotNull(_[_0x7074[66]](_0xeff2x1e[_0x7074[65]].Intervals))){_0xeff2x1e[_0x7074[57]]= _0x7074[63];throw _0xeff2x1e[_0x7074[59]]+ _0x7074[64]}}}function msgResponse(_0xeff2x25,_0xeff2x26,_0xeff2x27){return {action:_0xeff2x25,response:_0xeff2x26,message:_0xeff2x27}}function myreject(_0xeff2x29){return function(_0xeff2x2a){return _0xeff2x29(msgResponse(_0x7074[67],_0x7074[68],JSON[_0x7074[69]](_0xeff2x2a)))}}function getSeconds(_0xeff2x2c,_0xeff2x2d){var _0xeff2x2e=moment(_0xeff2x2c)[_0x7074[70]](0);var _0xeff2x2f=moment(_0xeff2x2d)[_0x7074[70]](0);return _0xeff2x2e[_0x7074[72]](_0xeff2x2f,_0x7074[71])}function emit(_0xeff2x31,_0xeff2x32,_0xeff2x1c){io[_0x7074[74]](_0xeff2x31)[_0x7074[73]](_0xeff2x32,_0xeff2x1c)}function emitVoiceQueueSummary(_0xeff2x1c){if(_0xeff2x1c[_0x7074[75]]=== _0x7074[76]){emit(util[_0x7074[78]](_0x7074[77],_0xeff2x1c[_0x7074[59]]),_0x7074[79],_0xeff2x1c)}}function emitCampaignSummary(_0xeff2x1c){if(_0xeff2x1c[_0x7074[75]]=== _0x7074[80]){emit(util[_0x7074[78]](_0x7074[81],_0xeff2x1c[_0x7074[59]]),_0x7074[82],_0xeff2x1c)}}function checkGetDataPredictive(_0xeff2x1c){if(isNotNull(_0xeff2x1c)){if(!_[_0x7074[66]](_0xeff2x1c)){if(_0xeff2x1c[_0x7074[83]]> 0){if(!_[_0x7074[56]](_0xeff2x1c[_0x7074[84]])&& _0xeff2x1c[_0x7074[84]]> 0){return true}else {loggerPredictive[_0x7074[86]](_0x7074[85],JSON[_0x7074[69]](_0xeff2x1c))};if(!_[_0x7074[56]](_0xeff2x1c[_0x7074[87]])&& _0xeff2x1c[_0x7074[87]]> 0){return true}else {loggerPredictive[_0x7074[86]](_0x7074[88],JSON[_0x7074[69]](_0xeff2x1c))}}else {loggerPredictive[_0x7074[86]](_0x7074[89],JSON[_0x7074[69]](_0xeff2x1c))}}else {loggerPredictive[_0x7074[86]](_0x7074[90],JSON[_0x7074[69]](_0xeff2x1c))}}else {loggerPredictive[_0x7074[86]](_0x7074[91],JSON[_0x7074[69]](_0xeff2x1c))};return false}function mergeDataErlangB(_0xeff2x37){return function(_0xeff2x38){loggerPredictive[_0x7074[86]](_0x7074[92],JSON[_0x7074[69]](_0xeff2x38));_[_0x7074[93]](_0xeff2x37,_0xeff2x38)}}function getDiff(_0xeff2x2d){var _0xeff2x2e=moment()[_0x7074[70]](0);var _0xeff2x2f=moment(_0xeff2x2d)[_0x7074[70]](0);return _0xeff2x2e[_0x7074[72]](_0xeff2x2f,_0x7074[71])}function ifInterval(_0xeff2x3b,_0xeff2x3c){if(_[_0x7074[56]](_0xeff2x3c)){return false};if(getDiff(_0xeff2x3c)< _0xeff2x3b* 60){return true}else {return false}}function freeVariablesPredictive(_0xeff2x37){if(isNotNull(_0xeff2x37)){if(!_[_0x7074[56]](_0xeff2x37[_0x7074[40]])){_0xeff2x37[_0x7074[40]]= undefined;loggerPredictive[_0x7074[86]](_0x7074[94],_0x7074[40],_0xeff2x37[_0x7074[59]])};if(!_[_0x7074[56]](_0xeff2x37[_0x7074[39]])){_0xeff2x37[_0x7074[39]]= undefined;loggerPredictive[_0x7074[86]](_0x7074[94],_0x7074[39],_0xeff2x37[_0x7074[59]])};if(!_[_0x7074[56]](_0xeff2x37[_0x7074[95]])){clearInterval(_0xeff2x37[_0x7074[95]]);_0xeff2x37[_0x7074[95]]= undefined;loggerPredictive[_0x7074[86]](_0x7074[94],_0x7074[95],_0xeff2x37[_0x7074[59]])}}}function erlangb(_0xeff2x3f,_0xeff2x40){if(_0xeff2x40=== 0){return 0};var _0xeff2x41=1;for(var _0xeff2x42=1;_0xeff2x42<= _0xeff2x40;_0xeff2x42+= 1){_0xeff2x41= 1+ _0xeff2x41* _0xeff2x42/ _0xeff2x3f};return 1/ _0xeff2x41}function isVoiceQueueOutbound(_0xeff2x44){return _0xeff2x44=== _0x7074[76]}function isCampaignIvr(_0xeff2x44){return _0xeff2x44=== _0x7074[80]}function getCallerId(_0xeff2x47,_0xeff2x48,_0xeff2x49){if(!_[_0x7074[56]](_0xeff2x49)&& _0x7074[96]===  typeof _0xeff2x49){if(!_[_0x7074[56]](_0xeff2x48)&& _0x7074[96]===  typeof _0xeff2x48){return util[_0x7074[78]](_0x7074[97],_0xeff2x48,_0xeff2x49)};return util[_0x7074[78]](_0x7074[97],_0xeff2x49,_0xeff2x49)};if(!_[_0x7074[56]](_0xeff2x47)&& _0x7074[96]===  typeof _0xeff2x47){return _0xeff2x47};return _0x7074[98]}function loggerCatchQueueSummary(_0xeff2x4b,_0xeff2x37){return function(_0xeff2x2a){freeVariablesPredictive(_0xeff2x37);emitVoiceQueueSummary(_0xeff2x37);emitCampaignSummary(_0xeff2x37);loggerSyncQueueSummary[_0x7074[100]](_0xeff2x4b,util[_0x7074[99]](_0xeff2x2a,{showHidden:false,depth:null}))}}function loggerCatchPredictive(_0xeff2x4b,_0xeff2x37){return function(_0xeff2x2a){loggerPredictive[_0x7074[100]](_0xeff2x4b,JSON[_0x7074[69]](_0xeff2x2a));freeVariablesPredictive(_0xeff2x37)}}function loggerCatch(_0xeff2x4b){return function(_0xeff2x2a){logger[_0x7074[100]](_0xeff2x4b,util[_0x7074[99]](_0xeff2x2a,{showHidden:false,depth:null}))}}function checkContactEmpty(_0xeff2x38){return _0xeff2x38&&  !_[_0x7074[56]](_0xeff2x38)&& (_0xeff2x38[_0x7074[101]]> 0)}function decremetOriginate(_0xeff2x1c){if(!_[_0x7074[56]](_0xeff2x1c)&& _0xeff2x1c!== null){if(_0xeff2x1c[_0x7074[103]](_0x7074[102])){if(_0xeff2x1c[_0x7074[102]]> 0){_0xeff2x1c[_0x7074[102]]-= 1}else {logger[_0x7074[100]](_0x7074[104])}}}else {logger[_0x7074[100]](_0x7074[105])}}function checkContactLowerLimitOriginate(_0xeff2x37,_0xeff2x51,_0xeff2x52){if(_0xeff2x51> _0xeff2x52){for(var _0xeff2x53=0;_0xeff2x53< _0xeff2x51- _0xeff2x52;_0xeff2x53+= 1){decremetOriginate(_0xeff2x37)}}}function loggerGetContactDialer(_0xeff2x4b,_0xeff2x37,_0xeff2x55){return function(_0xeff2x2a){checkContactLowerLimitOriginate(_0xeff2x37,_0xeff2x55,0);logger[_0x7074[100]](_0xeff2x4b,util[_0x7074[99]](_0xeff2x2a,{showHidden:false,depth:null}))}}function sendMessageReschedule(_0xeff2x1e){return function(_0xeff2x57){if(isNotNull(_0xeff2x57)&& isNotNull(_0xeff2x57[0])){if(_0xeff2x57[0][_0x7074[106]]> 0){_0xeff2x1e[_0x7074[57]]= _0x7074[107];logger[_0x7074[86]](_0x7074[108]+ _0xeff2x1e[_0x7074[59]],_0xeff2x57[0][_0x7074[106]],_0x7074[109])}else {_0xeff2x1e[_0x7074[57]]= _0x7074[110];logger[_0x7074[86]](_0x7074[111]+ _0xeff2x1e[_0x7074[59]])}}}}function notSendMessagesQueue(_0xeff2x37){if(_0xeff2x37[_0x7074[112]]){freeVariablesPredictive(_0xeff2x37);if(_0xeff2x37[_0x7074[102]]=== 0&& _0xeff2x37[_0x7074[113]]=== 0&& _0xeff2x37[_0x7074[114]]=== 0){_0xeff2x37[_0x7074[112]]= false;_0xeff2x37[_0x7074[115]]= 0;_0xeff2x37[_0x7074[116]]= 0;_0xeff2x37[_0x7074[57]]= _0x7074[61];loggerSyncQueueSummary[_0x7074[100]](_0x7074[117],_0xeff2x37[_0x7074[59]],_0x7074[118])}else {_0xeff2x37[_0x7074[57]]= _0x7074[119];loggerSyncQueueSummary[_0x7074[100]](_0x7074[117],_0xeff2x37[_0x7074[59]],_0x7074[120])};emitVoiceQueueSummary(_0xeff2x37)}}function notSendMessagesCampaign(_0xeff2x5a){if(_0xeff2x5a[_0x7074[112]]){if(_0xeff2x5a[_0x7074[102]]=== 0){_0xeff2x5a[_0x7074[112]]= false;_0xeff2x5a[_0x7074[57]]= _0x7074[61];loggerSyncQueueSummary[_0x7074[100]](_0x7074[121],_0xeff2x5a[_0x7074[59]],_0x7074[118])}else {_0xeff2x5a[_0x7074[57]]= _0x7074[119];loggerSyncQueueSummary[_0x7074[100]](_0x7074[121],_0xeff2x5a[_0x7074[59]],_0x7074[120])};emitCampaignSummary(_0xeff2x5a)}}Dialer[_0x7074[123]][_0x7074[122]]= function(_0xeff2x5b){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopper[_0x7074[122]](_0xeff2x5b))[_0x7074[125]](loggerCatch(_0x7074[124]))};Dialer[_0x7074[123]][_0x7074[128]]= function(_0xeff2x5c){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopperBlack[_0x7074[128]](_0xeff2x5c))[_0x7074[125]](loggerCatch(_0x7074[129]))};Dialer[_0x7074[123]][_0x7074[130]]= function(_0xeff2x5d){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopperHistory[_0x7074[132]](_0xeff2x5d))[_0x7074[125]](loggerCatch(_0x7074[131]))};Dialer[_0x7074[123]][_0x7074[133]]= function(_0xeff2x5e){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopper[_0x7074[133]](_0xeff2x5e))[_0x7074[125]](loggerCatch(_0x7074[134]))};Dialer[_0x7074[123]][_0x7074[135]]= function(_0xeff2x5f,_0xeff2x51){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopper[_0x7074[135]](_0xeff2x5f,_0xeff2x51))[_0x7074[125]](loggerCatch(_0x7074[136]))};Dialer[_0x7074[123]][_0x7074[137]]= function(_0xeff2x60,_0xeff2x51){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopper[_0x7074[137]](_0xeff2x60,_0xeff2x51))[_0x7074[125]](loggerCatch(_0x7074[136]))};Dialer[_0x7074[123]][_0x7074[138]]= function(_0xeff2x5b){return BPromise[_0x7074[127]]()[_0x7074[126]](voiceQueueRt[_0x7074[138]](_0xeff2x5b))[_0x7074[125]](loggerCatch(_0x7074[139]))};Dialer[_0x7074[123]][_0x7074[140]]= function(_0xeff2x5e){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopper[_0x7074[140]](_0xeff2x5e))[_0x7074[125]](loggerCatch(_0x7074[141]))};Dialer[_0x7074[123]][_0x7074[142]]= function(_0xeff2x5e){return BPromise[_0x7074[127]]()[_0x7074[126]](cmHopperHistory[_0x7074[142]](_0xeff2x5e))[_0x7074[125]](loggerCatch(_0x7074[143]))};Dialer[_0x7074[123]][_0x7074[144]]= function(_0xeff2x1c){if(!_[_0x7074[56]](_0xeff2x1c)&& _0xeff2x1c!== null){if(_0xeff2x1c[_0x7074[103]](_0x7074[102])){if(_0xeff2x1c[_0x7074[102]]> 0){_0xeff2x1c[_0x7074[102]]-= 1}else {logger[_0x7074[100]](_0x7074[145])}}}else {logger[_0x7074[100]](_0x7074[146])}};Dialer[_0x7074[123]][_0x7074[147]]= function(_0xeff2x4b,_0xeff2x1e){var _0xeff2x61=this;return function(_0xeff2x2a){_0xeff2x61[_0x7074[144]](_0xeff2x1e);logger[_0x7074[100]](_0xeff2x4b,util[_0x7074[99]](_0xeff2x2a,{showHidden:false,depth:null}))}};Dialer[_0x7074[123]][_0x7074[148]]= function(_0xeff2x62){return _0xeff2x62=== _0x7074[149]};Dialer[_0x7074[123]][_0x7074[150]]= function(_0xeff2x63){return !_[_0x7074[56]](_0xeff2x63)&& _0xeff2x63 &&  !_[_0x7074[56]](_0xeff2x63[_0x7074[59]]) &&  !_[_0x7074[56]](_0xeff2x63[_0x7074[151]]) && _0xeff2x63[_0x7074[151]] && (this[_0x7074[32]][util[_0x7074[78]](_0x7074[153],_0xeff2x63[_0x7074[59]])][_0x7074[152]]=== _0x7074[154]|| this[_0x7074[32]][util[_0x7074[78]](_0x7074[153],_0xeff2x63[_0x7074[59]])][_0x7074[152]]=== _0x7074[155])};Dialer[_0x7074[123]][_0x7074[54]]= function(_0xeff2x32){var _0xeff2x61=this;var _0xeff2x64;if(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]&& this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[75]]=== _0x7074[80]){this[_0x7074[144]](this[_0x7074[30]][this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[157]]]);this[_0x7074[30]][this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[157]]][_0x7074[158]]+= 1;_0xeff2x64=  new Hangup(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]],_0xeff2x32);this[_0x7074[142]](_0xeff2x64)[_0x7074[125]](loggerCatch(_0x7074[159]));this[_0x7074[140]](_0xeff2x64)[_0x7074[125]](loggerCatch(_0x7074[160]));delete _0xeff2x61[_0x7074[37]][_0xeff2x32[_0x7074[156]]]};if(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]&& this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[75]]!== _0x7074[80]){this[_0x7074[144]](this[_0x7074[29]][this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[157]]]);this[_0x7074[29]][this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[157]]][_0x7074[161]]+= 1;this[_0x7074[29]][this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[157]]][_0x7074[162]]+= 1;_0xeff2x64=  new Hangup(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]],_0xeff2x32);_0xeff2x64[_0x7074[163]]= 16;_0xeff2x64[_0x7074[164]]= _0x7074[165];_0xeff2x64[_0x7074[166]]= _0x7074[167];this[_0x7074[142]](_0xeff2x64)[_0x7074[125]](loggerCatch(_0x7074[159]));this[_0x7074[140]](_0xeff2x64)[_0x7074[125]](loggerCatch(_0x7074[160]));delete _0xeff2x61[_0x7074[37]][_0xeff2x32[_0x7074[156]]]}};Dialer[_0x7074[123]][_0x7074[51]]= function(_0xeff2x32){var _0xeff2x61=this;if(this[_0x7074[29]][_0xeff2x32[_0x7074[157]]]){if(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]){this[_0x7074[29]][_0xeff2x32[_0x7074[157]]][_0x7074[161]]+= 1;var _0xeff2x65= new AgentComplete(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]],_0xeff2x32);this[_0x7074[142]](_0xeff2x65)[_0x7074[125]](loggerCatch(_0x7074[168]));this[_0x7074[140]](_0xeff2x65)[_0x7074[125]](loggerCatch(_0x7074[169]));delete _0xeff2x61[_0x7074[37]][_0xeff2x32[_0x7074[156]]]}}};Dialer[_0x7074[123]][_0x7074[44]]= function(_0xeff2x32){if(this[_0x7074[29]][_0xeff2x32[_0x7074[157]]]){this[_0x7074[144]](this[_0x7074[29]][_0xeff2x32[_0x7074[157]]]);if(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]){this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[170]]= moment()[_0x7074[78]](_0x7074[171])}}};Dialer[_0x7074[123]][_0x7074[172]]= function(_0xeff2x66){this[_0x7074[142]](_0xeff2x66)[_0x7074[125]](loggerCatch(_0x7074[168]));this[_0x7074[140]](_0xeff2x66)[_0x7074[125]](loggerCatch(_0x7074[173]))};Dialer[_0x7074[123]][_0x7074[47]]= function(_0xeff2x32){var _0xeff2x61=this;if(this[_0x7074[29]][_0xeff2x32[_0x7074[157]]]){this[_0x7074[144]](this[_0x7074[29]][_0xeff2x32[_0x7074[157]]]);if(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]){this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[174]]= moment()[_0x7074[78]](_0x7074[171]);var _0xeff2x66= new QueueCallerAbandon(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]],_0xeff2x32);if(getSeconds(this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[174]],this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[175]])>= this[_0x7074[37]][_0xeff2x32[_0x7074[156]]][_0x7074[176]]){this[_0x7074[29]][_0xeff2x32[_0x7074[157]]][_0x7074[177]]+= 1;this[_0x7074[29]][_0xeff2x32[_0x7074[157]]][_0x7074[178]]+= 1;this[_0x7074[29]][_0xeff2x32[_0x7074[157]]][_0x7074[179]]+= 1;_0xeff2x66[_0x7074[163]]= 10;_0xeff2x66[_0x7074[164]]= _0x7074[180];_0xeff2x66[_0x7074[181]]= _0x7074[182];this[_0x7074[172]](_0xeff2x66)}else {this[_0x7074[29]][_0xeff2x32[_0x7074[157]]][_0x7074[183]]+= 1;this[_0x7074[29]][_0xeff2x32[_0x7074[157]]][_0x7074[184]]+= 1;_0xeff2x66[_0x7074[163]]= 11;_0xeff2x66[_0x7074[164]]= _0x7074[185];_0xeff2x66[_0x7074[181]]= _0x7074[186];this[_0x7074[172]](_0xeff2x66)};delete this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]}}};Dialer[_0x7074[123]][_0x7074[55]]= function(){var _0xeff2x61=this;setInterval(function(){_0xeff2x61[_0x7074[187]]()},1000)};Dialer[_0x7074[123]][_0x7074[188]]= function(_0xeff2x1e){var _0xeff2x61=this;return function(){if(!_0xeff2x61[_0x7074[150]](_0xeff2x1e.Trunk)){if(!_0xeff2x61[_0x7074[150]](_0xeff2x1e.TrunkBackup)){_0xeff2x1e[_0x7074[57]]= _0x7074[189];throw _0xeff2x1e[_0x7074[59]]+ _0x7074[190]}}}};Dialer[_0x7074[123]][_0x7074[191]]= function(_0xeff2x67,_0xeff2x68,_0xeff2x48,_0xeff2x37){var _0xeff2x61=this;return function(){return _0xeff2x61[_0x7074[192]](_0xeff2x67,_0xeff2x68,_0xeff2x48,_0xeff2x37)}};Dialer[_0x7074[123]][_0x7074[193]]= function(_0xeff2x69,_0xeff2x68,_0xeff2x48,_0xeff2x37){var _0xeff2x61=this;return function(){return _0xeff2x61[_0x7074[192]](_0xeff2x69.Intervals,_0xeff2x68,_0xeff2x48,_0xeff2x37)}};Dialer[_0x7074[123]][_0x7074[192]]= function(_0xeff2x67,_0xeff2x68,_0xeff2x48,_0xeff2x37){var _0xeff2x6a=[];return  new BPromise(function(_0xeff2x6b,_0xeff2x29){if(!isNotNull(_0xeff2x67)){_0xeff2x37[_0x7074[57]]= _0x7074[63];return _0xeff2x29(msgResponse(_0x7074[192],_0x7074[194],_0xeff2x48+ _0x7074[195]))};if(_[_0x7074[66]](_0xeff2x67)){_0xeff2x37[_0x7074[57]]= _0x7074[196];return _0xeff2x29(msgResponse(_0x7074[192],_0x7074[194],_0xeff2x48+ _0x7074[197]))};if(_0xeff2x68&& _[_0x7074[56]](config[_0x7074[198]][_0xeff2x68])){_0xeff2x37[_0x7074[57]]= _0x7074[199];return _0xeff2x29(msgResponse(_0x7074[192],_0x7074[194],_0xeff2x48+ _0x7074[200]+ _0xeff2x68))};if(_[_0x7074[201]](_0xeff2x67)){for(var _0xeff2x53=0;_0xeff2x53< _0xeff2x67[_0x7074[101]];_0xeff2x53+= 1){_0xeff2x6a[_0x7074[209]](ami.Action({action:_0x7074[205],command:util[_0x7074[78]](_0x7074[206],_0xeff2x67[_0xeff2x53][_0x7074[207]],!_[_0x7074[56]](config[_0x7074[198]][_0xeff2x68])?_0xeff2x68:_0x7074[208])})[_0x7074[126]](function(_0xeff2x38){return (_0xeff2x38[_0x7074[204]][_0x7074[203]](_0x7074[202])>= 0)?true:false})[_0x7074[125]](myreject(_0xeff2x29)))}}else {_0xeff2x6a[_0x7074[209]](ami.Action({action:_0x7074[205],command:util[_0x7074[78]](_0x7074[206],_0xeff2x67,!_[_0x7074[56]](config[_0x7074[198]][_0xeff2x68])?_0xeff2x68:_0x7074[208])})[_0x7074[126]](function(_0xeff2x38){return (_0xeff2x38[_0x7074[204]][_0x7074[203]](_0x7074[202])>= 0)?true:false})[_0x7074[125]](myreject(_0xeff2x29)))};BPromise[_0x7074[215]](_0xeff2x6a)[_0x7074[126]](function(_0xeff2x6c){var _0xeff2x6d=_[_0x7074[210]](_0xeff2x6c);if(_0xeff2x6d){return _0xeff2x6b(_0xeff2x6d)}else {_0xeff2x37[_0x7074[57]]= _0x7074[211];return _0xeff2x29(msgResponse(_0x7074[212],_0x7074[194],_0xeff2x48+ _0x7074[213]+ util[_0x7074[99]](_0xeff2x67,{showHidden:false,depth:null})+ _0x7074[214]+ _0xeff2x68))}})[_0x7074[125]](function(_0xeff2x2a){return _0xeff2x29(msgResponse(_0x7074[192],_0x7074[194],JSON[_0x7074[69]](_0xeff2x2a)))})})};Dialer[_0x7074[123]][_0x7074[216]]= function(_0xeff2x37){var _0xeff2x61=this;return function(){switch(_0xeff2x37[_0x7074[223]]){case _0x7074[218]:freeVariablesPredictive(_0xeff2x37);_0xeff2x61[_0x7074[217]](_0xeff2x37,1);break;case _0x7074[220]:freeVariablesPredictive(_0xeff2x37);_0xeff2x61[_0x7074[217]](_0xeff2x37,_0xeff2x37[_0x7074[219]]);break;case _0x7074[8]:_0xeff2x61[_0x7074[8]](_0xeff2x37);break;default:freeVariablesPredictive(_0xeff2x37);logger[_0x7074[100]](_0x7074[221],_0xeff2x37[_0x7074[59]],_0x7074[222])}}};Dialer[_0x7074[123]][_0x7074[224]]= function(_0xeff2x5a){var _0xeff2x61=this;return function(){_0xeff2x61[_0x7074[225]](_0xeff2x5a)}};Dialer[_0x7074[123]][_0x7074[10]]= function(_0xeff2x37){var _0xeff2x61=this;if(isVoiceQueueOutbound(_0xeff2x37[_0x7074[75]])&& isActive(_0xeff2x37[_0x7074[226]])){_0xeff2x37[_0x7074[112]]= true;BPromise[_0x7074[127]]()[_0x7074[126]](checkIsLoggedIn(_0xeff2x37,_0xeff2x37[_0x7074[230]]))[_0x7074[126]](checkIsActive(_0xeff2x37,_0xeff2x37[_0x7074[226]]))[_0x7074[126]](checkInterval(_0xeff2x37))[_0x7074[126]](_0xeff2x61[_0x7074[188]](_0xeff2x37))[_0x7074[126]](_0xeff2x61[_0x7074[191]](_0xeff2x37[_0x7074[229]],_0xeff2x37[_0x7074[228]],_0xeff2x37[_0x7074[59]],_0xeff2x37))[_0x7074[126]](_0xeff2x61[_0x7074[193]](_0xeff2x37.Interval,_0xeff2x37[_0x7074[228]],_0xeff2x37[_0x7074[59]],_0xeff2x37))[_0x7074[126]](_0xeff2x61[_0x7074[216]](_0xeff2x37))[_0x7074[125]](loggerCatchQueueSummary(_0x7074[227],_0xeff2x37))}else {notSendMessagesQueue(_0xeff2x37)}};Dialer[_0x7074[123]][_0x7074[187]]= function(){var _0xeff2x61=this;var _0xeff2x5a;for(var _0xeff2x6e in this[_0x7074[30]]){if(this[_0x7074[30]][_0x7074[103]](_0xeff2x6e)){_0xeff2x5a= this[_0x7074[30]][_0xeff2x6e];if(isCampaignIvr(_0xeff2x5a[_0x7074[75]])&& isActive(_0xeff2x5a[_0x7074[151]])){_0xeff2x5a[_0x7074[112]]= true;BPromise[_0x7074[127]]()[_0x7074[126]](checkIsActive(_0xeff2x5a,_0xeff2x5a[_0x7074[151]]))[_0x7074[126]](checkInterval(_0xeff2x5a))[_0x7074[126]](_0xeff2x61[_0x7074[188]](_0xeff2x5a))[_0x7074[126]](_0xeff2x61[_0x7074[191]](_0xeff2x5a[_0x7074[229]],_0xeff2x5a[_0x7074[228]],_0xeff2x5a[_0x7074[59]],_0xeff2x5a))[_0x7074[126]](_0xeff2x61[_0x7074[193]](_0xeff2x5a.Interval,_0xeff2x5a[_0x7074[228]],_0xeff2x5a[_0x7074[59]],_0xeff2x5a))[_0x7074[126]](_0xeff2x61[_0x7074[224]](_0xeff2x5a))[_0x7074[125]](loggerCatchQueueSummary(_0x7074[231],_0xeff2x5a))}else {notSendMessagesCampaign(_0xeff2x5a)}}}};Dialer[_0x7074[123]][_0x7074[232]]= function(_0xeff2x37,_0xeff2x1c){var _0xeff2x61=this;var _0xeff2x6f=uuid[_0x7074[233]]();this[_0x7074[35]][_0xeff2x6f]=  new Action(_0xeff2x37,_0xeff2x1c,_0xeff2x6f);return  new BPromise(function(_0xeff2x6b,_0xeff2x29){if(_[_0x7074[56]](_0xeff2x37)&& _0x7074[234]!==  typeof _0xeff2x37){return _0xeff2x29(msgResponse(_0x7074[235],_0x7074[194],_0x7074[236]))};if(_[_0x7074[56]](_0xeff2x1c[_0x7074[238]][_0x7074[237]])|| _0xeff2x1c[_0x7074[238]][_0x7074[237]]=== null){return _0xeff2x29(msgResponse(_0x7074[235],_0x7074[194],_0x7074[239]))};var _0xeff2x70={"\x58\x4D\x44\x2D\x43\x41\x4C\x4C\x45\x52\x49\x44":_0xeff2x61[_0x7074[35]][_0xeff2x6f][_0x7074[240]](),"\x58\x4D\x44\x2D\x41\x47\x49":_0xeff2x37[_0x7074[241]]?util[_0x7074[78]](_0x7074[242],ipAgi,_0xeff2x37[_0x7074[241]]):_0x7074[243],"\x58\x4D\x44\x2D\x51\x55\x45\x55\x45":(_0xeff2x37[_0x7074[75]]=== _0x7074[76])?util[_0x7074[78]](_0x7074[244],_0xeff2x37[_0x7074[59]],_0xeff2x37[_0x7074[245]]|| _0x7074[208],_0xeff2x37[_0x7074[176]]|| 3):_0x7074[243],"\x58\x4D\x44\x2D\x43\x4F\x4E\x54\x41\x43\x54\x49\x44":_0xeff2x1c[_0x7074[246]],"\x58\x4D\x44\x2D\x56\x4F\x49\x43\x45\x51\x55\x45\x55\x45\x49\x44":_0xeff2x1c[_0x7074[247]]};for(var _0xeff2x6e in _0xeff2x1c[_0x7074[238]]){if(_0xeff2x1c[_0x7074[238]][_0x7074[103]](_0xeff2x6e)){if(isNotNull(_0xeff2x1c[_0x7074[238]][_0xeff2x6e])&& (_0xeff2x6e!== _0x7074[248])&& (_0xeff2x6e!== _0x7074[249])&& (_0xeff2x6e!== _0x7074[250])&& (_0xeff2x6e!== _0x7074[251])){_0xeff2x70[util[_0x7074[78]](_0x7074[252],_0x7074[253],_[_0x7074[254]](_0xeff2x6e))]= _0xeff2x1c[_0x7074[238]][_0xeff2x6e]}}};return ami.Action({actionid:_0xeff2x6f,action:_0x7074[235],channel:(_0xeff2x61[_0x7074[150]](_0xeff2x37.Trunk))?util[_0x7074[78]](_0x7074[262],_0xeff2x37[_0x7074[263]][_0x7074[59]],_0xeff2x1c[_0x7074[238]][_0x7074[237]]):util[_0x7074[78]](_0x7074[262],_0xeff2x37[_0x7074[264]][_0x7074[59]],_0xeff2x1c[_0x7074[238]][_0x7074[237]]),callerid:(_0xeff2x61[_0x7074[150]](_0xeff2x37.Trunk))?getCallerId(_0xeff2x37[_0x7074[263]][_0x7074[265]],_0xeff2x37[_0x7074[266]],_0xeff2x37[_0x7074[267]]):getCallerId(_0xeff2x37[_0x7074[264]][_0x7074[265]],_0xeff2x37[_0x7074[266]],_0xeff2x37[_0x7074[267]]),Exten:_0x7074[268],Context:_0x7074[269],Priority:_0x7074[270],variable:_0xeff2x70,timeout:(_0xeff2x37[_0x7074[271]]|| 30)* 1000,async:true,channelid:_0xeff2x6f})[_0x7074[126]](function(_0xeff2x38){return _0xeff2x6b(_0xeff2x38)})[_0x7074[125]](function(_0xeff2x2a){_0xeff2x37[_0x7074[255]]+= 1;var _0xeff2x71= new History(_0xeff2x61[_0x7074[35]][_0xeff2x6f]);logger[_0x7074[100]](util[_0x7074[78]](_0x7074[256],JSON[_0x7074[69]](_0xeff2x2a)));_0xeff2x71[_0x7074[163]]= 14;_0xeff2x71[_0x7074[164]]= _0xeff2x2a[_0x7074[57]];_0xeff2x71[_0x7074[257]]= moment()[_0x7074[78]](_0x7074[171]);_0xeff2x71[_0x7074[258]]= _0xeff2x71[_0x7074[257]];_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[259]));_0xeff2x61[_0x7074[140]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[259]))[_0x7074[261]](function(){delete _0xeff2x61[_0x7074[35]][_0xeff2x6f];return _0xeff2x29(msgResponse(_0x7074[235],_0x7074[68],_0x7074[260]))})})})};Dialer[_0x7074[123]][_0x7074[49]]= function(_0xeff2x32){var _0xeff2x61=this;if(this[_0x7074[35]][_0xeff2x32[_0x7074[272]]]){this[_0x7074[35]][_0xeff2x32[_0x7074[272]]][_0x7074[175]]= moment()[_0x7074[78]](_0x7074[171]);var _0xeff2x1e=(this[_0x7074[35]][_0xeff2x32[_0x7074[272]]][_0x7074[75]]=== _0x7074[80])?this[_0x7074[30]][this[_0x7074[35]][_0xeff2x32[_0x7074[272]]][_0x7074[157]]]:this[_0x7074[29]][this[_0x7074[35]][_0xeff2x32[_0x7074[272]]][_0x7074[273]]()];if(!this[_0x7074[148]](_0xeff2x32[_0x7074[274]])){this[_0x7074[144]](_0xeff2x1e);return this[_0x7074[276]](this[_0x7074[35]][_0xeff2x32[_0x7074[272]]],_0xeff2x1e,_0xeff2x32)[_0x7074[126]](function(_0xeff2x38){})[_0x7074[125]](loggerCatch(_0x7074[275]))[_0x7074[261]](function(){delete _0xeff2x61[_0x7074[35]][_0xeff2x32[_0x7074[272]]]})}else {this[_0x7074[37]][_0xeff2x32[_0x7074[156]]]= _0xeff2x61[_0x7074[35]][_0xeff2x32[_0x7074[272]]];delete this[_0x7074[35]][_0xeff2x32[_0x7074[272]]]}}};Dialer[_0x7074[123]][_0x7074[277]]= function(_0xeff2x72,_0xeff2x1c,_0xeff2x1e){var _0xeff2x71= new History(_0xeff2x1c);if(_0xeff2x71[_0x7074[278]]+ _0xeff2x71[_0x7074[279]]+ _0xeff2x71[_0x7074[280]]>= _0xeff2x1e[_0x7074[281]]- 1){return true};switch(_0xeff2x72){case 3:if(_0xeff2x71[_0x7074[280]]>= _0xeff2x1e[_0x7074[282]]- 1){return true}else {this[_0x7074[133]]({active:false,countnoanswerretry:_0xeff2x71[_0x7074[280]]+= 1,scheduledat:moment()[_0x7074[286]](_0xeff2x1e[_0x7074[284]],_0x7074[285])[_0x7074[78]](_0x7074[171]),ContactId:_0xeff2x71[_0x7074[246]],ListId:_0xeff2x71[_0x7074[287]],VoiceQueueId:_0xeff2x71[_0x7074[247]]|| undefined,CampaignId:_0xeff2x71[_0x7074[288]]|| undefined})[_0x7074[125]](loggerCatch(_0x7074[283]))};break;case 5:if(_0xeff2x71[_0x7074[278]]>= _0xeff2x1e[_0x7074[289]]- 1){return true}else {this[_0x7074[133]]({active:false,countbusyretry:_0xeff2x71[_0x7074[278]]+= 1,scheduledat:moment()[_0x7074[286]](_0xeff2x1e[_0x7074[291]],_0x7074[285])[_0x7074[78]](_0x7074[171]),ContactId:_0xeff2x71[_0x7074[246]],ListId:_0xeff2x71[_0x7074[287]],VoiceQueueId:_0xeff2x71[_0x7074[247]]|| undefined,CampaignId:_0xeff2x71[_0x7074[288]]|| undefined})[_0x7074[125]](loggerCatch(_0x7074[290]))};break;case 8:if(_0xeff2x71[_0x7074[279]]>= _0xeff2x1e[_0x7074[292]]- 1){return true}else {this[_0x7074[133]]({active:false,countcongestionretry:_0xeff2x71[_0x7074[279]]+= 1,scheduledat:moment()[_0x7074[286]](_0xeff2x1e[_0x7074[294]],_0x7074[285])[_0x7074[78]](_0x7074[171]),ContactId:_0xeff2x71[_0x7074[246]],ListId:_0xeff2x71[_0x7074[287]],VoiceQueueId:_0xeff2x71[_0x7074[247]]|| undefined,CampaignId:_0xeff2x71[_0x7074[288]]|| undefined})[_0x7074[125]](loggerCatch(_0x7074[293]))};break;default:return true}};Dialer[_0x7074[123]][_0x7074[276]]= function(_0xeff2x25,_0xeff2x1e,_0xeff2x32){var _0xeff2x61=this;var _0xeff2x71= new History(_0xeff2x25);return  new BPromise(function(_0xeff2x6b,_0xeff2x29){if(_[_0x7074[56]](_0xeff2x1e)&& _0x7074[234]!==  typeof _0xeff2x1e){return _0xeff2x29(msgResponse(_0x7074[295],_0x7074[194],_0x7074[296]))};if(_[_0x7074[56]](_0xeff2x32)&& _0x7074[234]!==  typeof _0xeff2x32){return _0xeff2x29(msgResponse(_0x7074[295],_0x7074[194],_0x7074[297]))};switch(_0xeff2x32[_0x7074[322]]){case _0x7074[304]:_0xeff2x1e[_0x7074[298]]+= 1;_0xeff2x71[_0x7074[163]]= 0;_0xeff2x71[_0x7074[164]]= _0x7074[299];_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[300]));if(_0xeff2x61[_0x7074[277]](0,_0xeff2x25,_0xeff2x1e)){if(_0xeff2x71[_0x7074[278]]+ _0xeff2x71[_0x7074[279]]+ _0xeff2x71[_0x7074[280]]>= _0xeff2x1e[_0x7074[281]]){_0xeff2x61[_0x7074[302]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[301])}else {_0xeff2x61[_0x7074[303]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[301])}};break;case _0x7074[310]:_0xeff2x1e[_0x7074[305]]+= 1;_0xeff2x71[_0x7074[163]]= 3;_0xeff2x71[_0x7074[164]]= _0x7074[306];_0xeff2x71[_0x7074[280]]+= 1;_0xeff2x71[_0x7074[307]]+= 1;_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[308]));if(_0xeff2x61[_0x7074[277]](3,_0xeff2x25,_0xeff2x1e)){if(_0xeff2x71[_0x7074[280]]>= _0xeff2x1e[_0x7074[282]]){_0xeff2x61[_0x7074[303]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[309])}else {_0xeff2x61[_0x7074[302]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[309])}};break;case _0x7074[315]:_0xeff2x1e[_0x7074[311]]+= 1;_0xeff2x71[_0x7074[163]]= 5;_0xeff2x71[_0x7074[164]]= _0x7074[312];_0xeff2x71[_0x7074[278]]+= 1;_0xeff2x71[_0x7074[307]]+= 1;_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[313]));if(_0xeff2x61[_0x7074[277]](5,_0xeff2x25,_0xeff2x1e)){if(_0xeff2x71[_0x7074[278]]>= _0xeff2x1e[_0x7074[289]]){_0xeff2x61[_0x7074[303]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[314])}else {_0xeff2x61[_0x7074[302]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[314])}};break;case _0x7074[320]:_0xeff2x1e[_0x7074[316]]+= 1;_0xeff2x71[_0x7074[163]]= 8;_0xeff2x71[_0x7074[164]]= _0x7074[317];_0xeff2x71[_0x7074[279]]+= 1;_0xeff2x71[_0x7074[307]]+= 1;_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[318]));if(_0xeff2x61[_0x7074[277]](8,_0xeff2x25,_0xeff2x1e)){if(_0xeff2x71[_0x7074[279]]>= _0xeff2x1e[_0x7074[292]]){_0xeff2x61[_0x7074[303]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[319])}else {_0xeff2x61[_0x7074[302]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0x7074[319])}};break;default:_0xeff2x1e[_0x7074[321]]+= 1;_0xeff2x71[_0x7074[163]]= 12;_0xeff2x71[_0x7074[164]]= _0xeff2x32[_0x7074[322]];_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[323]));if(_0xeff2x61[_0x7074[277]](_0xeff2x32[_0x7074[322]],_0xeff2x25,_0xeff2x1e)){if(_0xeff2x71[_0x7074[278]]+ _0xeff2x71[_0x7074[279]]+ _0xeff2x71[_0x7074[280]]>= _0xeff2x1e[_0x7074[281]]){_0xeff2x61[_0x7074[302]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0xeff2x32[_0x7074[322]])}else {_0xeff2x61[_0x7074[303]](_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0xeff2x32[_0x7074[322]])}}}})};Dialer[_0x7074[123]][_0x7074[302]]= function(_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0xeff2x27){var _0xeff2x73= new Final(_0xeff2x71);_0xeff2x73[_0x7074[163]]= 15;_0xeff2x73[_0x7074[164]]= _0x7074[324];this[_0x7074[303]](_0xeff2x73,_0xeff2x6b,_0xeff2x29,_0xeff2x27)};Dialer[_0x7074[123]][_0x7074[303]]= function(_0xeff2x71,_0xeff2x6b,_0xeff2x29,_0xeff2x27){this[_0x7074[140]](_0xeff2x71)[_0x7074[126]](function(_0xeff2x38){return _0xeff2x6b(msgResponse(_0x7074[295],_0x7074[149],_0xeff2x27))})[_0x7074[125]](function(_0xeff2x2a){return _0xeff2x29(msgResponse(_0x7074[325],_0x7074[194],_0x7074[326]))})};Dialer[_0x7074[123]][_0x7074[8]]= function(_0xeff2x37){var _0xeff2x61=this;var _0xeff2x74=_0xeff2x37[_0x7074[327]]/ 100;var _0xeff2x75=_0xeff2x37[_0x7074[178]]/ (_0xeff2x37[_0x7074[178]]+ _0xeff2x37[_0x7074[161]]);var _0xeff2x76=_0xeff2x37[_0x7074[230]]- _0xeff2x37[_0x7074[328]]- _0xeff2x37[_0x7074[114]]- _0xeff2x37[_0x7074[102]]- _0xeff2x37[_0x7074[113]];var _0xeff2x77=(_0xeff2x37[_0x7074[230]]- _0xeff2x37[_0x7074[328]])* _0xeff2x37[_0x7074[329]];var _0xeff2x78=Math[_0x7074[334]](_0xeff2x37[_0x7074[330]]* _0xeff2x37[_0x7074[331]]* _0xeff2x37[_0x7074[332]]* _0xeff2x37[_0x7074[333]]);if(_[_0x7074[56]](_0xeff2x37[_0x7074[40]])){loggerPredictive[_0x7074[86]](_0x7074[335]);if(!_[_0x7074[56]](_0xeff2x37[_0x7074[39]])){_0xeff2x37[_0x7074[39]]= undefined;loggerPredictive[_0x7074[100]](_0x7074[336],_0x7074[337])};if(!_[_0x7074[56]](_0xeff2x37[_0x7074[95]])){loggerPredictive[_0x7074[100]](_0x7074[336],_0x7074[338]);clearInterval(_0xeff2x37[_0x7074[95]]);_0xeff2x37[_0x7074[95]]= undefined};_0xeff2x37[_0x7074[40]]= moment()[_0x7074[78]](_0x7074[171]);loggerPredictive[_0x7074[86]](_0x7074[339],_0xeff2x37[_0x7074[40]],_0xeff2x37[_0x7074[59]]);this[_0x7074[217]](_0xeff2x37,1)}else {if(ifInterval(_0xeff2x37[_0x7074[340]],_0xeff2x37[_0x7074[40]])){this[_0x7074[217]](_0xeff2x37,1);loggerPredictiveCalls[_0x7074[86]](_0x7074[341],_0xeff2x37[_0x7074[40]],_0xeff2x37[_0x7074[59]]);_0xeff2x37[_0x7074[330]]= 0;_0xeff2x37[_0x7074[179]]= 0}else {if((_0xeff2x74< _0xeff2x75)&& _0xeff2x37[_0x7074[342]]=== _0x7074[343]){freeVariablesPredictive(_0xeff2x37);loggerPredictive[_0x7074[86]](_0x7074[344],_0x7074[345],_0xeff2x75,_0x7074[40],_0xeff2x37[_0x7074[59]])}else {if(_0xeff2x76> _0xeff2x77){freeVariablesPredictive(_0xeff2x37);loggerPredictive[_0x7074[86]](_0x7074[346],_0x7074[347],_0xeff2x76,_0x7074[348],_0xeff2x77)}else {if((_0xeff2x78)< _0xeff2x37[_0x7074[179]]&& _0xeff2x37[_0x7074[342]]=== _0x7074[343]){freeVariablesPredictive(_0xeff2x37);loggerPredictive[_0x7074[86]](_0x7074[349],_0x7074[350],_0xeff2x78,_0x7074[351],_0xeff2x37[_0x7074[179]],_0x7074[40],_0xeff2x37[_0x7074[59]])}else {if(!ifInterval(_0xeff2x37[_0x7074[340]],_0xeff2x37[_0x7074[40]])&& _[_0x7074[56]](_0xeff2x37[_0x7074[39]]) &&  !_[_0x7074[56]](_0xeff2x37[_0x7074[40]])){_0xeff2x37[_0x7074[39]]= moment()[_0x7074[78]](_0x7074[171]);loggerPredictive[_0x7074[86]](_0x7074[352],_0xeff2x37[_0x7074[39]],_0xeff2x37[_0x7074[59]]);this[_0x7074[130]](_0xeff2x37[_0x7074[340]])[_0x7074[126]](this[_0x7074[355]](_0xeff2x37))[_0x7074[126]](mergeDataErlangB(_0xeff2x37))[_0x7074[126]](this[_0x7074[354]](_0xeff2x37))[_0x7074[125]](loggerCatchPredictive(_0x7074[353],_0xeff2x37))}else {if(!ifInterval(_0xeff2x37[_0x7074[340]],_0xeff2x37[_0x7074[39]])){_0xeff2x37[_0x7074[179]]= 0;_0xeff2x37[_0x7074[39]]= moment()[_0x7074[78]](_0x7074[171]);loggerPredictive[_0x7074[86]](_0x7074[356],_0xeff2x37[_0x7074[39]],_0xeff2x37[_0x7074[59]]);clearInterval(_0xeff2x37[_0x7074[95]]);_0xeff2x37[_0x7074[95]]= undefined;this[_0x7074[130]](_0xeff2x37[_0x7074[340]])[_0x7074[126]](this[_0x7074[355]](_0xeff2x37))[_0x7074[126]](mergeDataErlangB(_0xeff2x37))[_0x7074[126]](this[_0x7074[354]](_0xeff2x37))[_0x7074[125]](loggerCatchPredictive(_0x7074[353],_0xeff2x37))}}}}}}}};Dialer[_0x7074[123]][_0x7074[355]]= function(_0xeff2x37){var _0xeff2x61=this;return function(_0xeff2x38){return  new BPromise(function(_0xeff2x6b,_0xeff2x29){_[_0x7074[93]](_0xeff2x37,_0xeff2x38[0]);if(checkGetDataPredictive(_0xeff2x38[0])){loggerPredictive[_0x7074[86]](JSON[_0x7074[69]](_0xeff2x38[0]));if(_0xeff2x37[_0x7074[342]]=== _0x7074[343]){return _0xeff2x61[_0x7074[138]]()[_0x7074[126]](function(_0xeff2x79){var _0xeff2x40=_0xeff2x37[_0x7074[230]]- _0xeff2x79[0][_0x7074[358]];var _0xeff2x5d=_0xeff2x37[_0x7074[340]]* 60;var _0xeff2x7a=_0xeff2x38[0][_0x7074[84]]+ _0xeff2x38[0][_0x7074[87]];var _0xeff2x7b=((_0xeff2x38[0][_0x7074[359]]+ _0xeff2x38[0][_0x7074[177]]+ _0xeff2x38[0][_0x7074[183]])/ _0xeff2x38[0][_0x7074[83]]);var _0xeff2x7c=_0xeff2x37[_0x7074[327]]/ 100;_0xeff2x37[_0x7074[328]]= _0xeff2x79[0][_0x7074[358]]|| 0;_0xeff2x37[_0x7074[332]]= (_0xeff2x7b> 0)?_0xeff2x7b:1;return _0xeff2x61[_0x7074[360]](_0xeff2x40,_0xeff2x5d,_0xeff2x7a,_0xeff2x7b,_0xeff2x7c)})[_0x7074[126]](function(_0xeff2x38){return _0xeff2x6b(_0xeff2x38)})[_0x7074[125]](function(_0xeff2x2a){return _0xeff2x29(msgResponse(_0x7074[357],_0x7074[194],JSON[_0x7074[69]](_0xeff2x2a)))})};if(_0xeff2x37[_0x7074[342]]=== _0x7074[361]){return _0xeff2x61[_0x7074[138]]()[_0x7074[126]](function(_0xeff2x79){var _0xeff2x40=_0xeff2x37[_0x7074[230]]- _0xeff2x79[0][_0x7074[358]];var _0xeff2x5d=_0xeff2x37[_0x7074[340]]* 60;var _0xeff2x7a=_0xeff2x38[0][_0x7074[84]]+ _0xeff2x38[0][_0x7074[87]];var _0xeff2x7b=((_0xeff2x38[0][_0x7074[359]]+ _0xeff2x38[0][_0x7074[177]]+ _0xeff2x38[0][_0x7074[183]])/ _0xeff2x38[0][_0x7074[83]]);var _0xeff2x7d=_0xeff2x37[_0x7074[327]]/ 100;_0xeff2x37[_0x7074[328]]= _0xeff2x79[0][_0x7074[358]]|| 0;_0xeff2x37[_0x7074[332]]= (_0xeff2x7b> 0)?_0xeff2x7b:1;return _0xeff2x61[_0x7074[362]](_0xeff2x40,_0xeff2x5d,_0xeff2x7a,_0xeff2x7b,_0xeff2x7d)})[_0x7074[126]](function(_0xeff2x38){return _0xeff2x6b(_0xeff2x38)})[_0x7074[125]](function(_0xeff2x2a){return _0xeff2x29(msgResponse(_0x7074[357],_0x7074[194],JSON[_0x7074[69]](_0xeff2x2a)))})}}else {return _0xeff2x29(msgResponse(_0x7074[363],_0x7074[194],_0x7074[364]))}})}};Dialer[_0x7074[123]][_0x7074[354]]= function(_0xeff2x37){var _0xeff2x61=this;return function(){var _0xeff2x53=0;var _0xeff2x7e=Math[_0x7074[334]](_0xeff2x37[_0x7074[365]]* 1000);if(_0xeff2x7e> 0){loggerPredictive[_0x7074[86]](_0x7074[366],_0xeff2x7e);_0xeff2x37[_0x7074[95]]= setInterval(function(){_0xeff2x61[_0x7074[95]](_0xeff2x37);loggerPredictiveCalls[_0x7074[86]](_0x7074[367],_0xeff2x53+= 1)},_0xeff2x7e)}else {loggerPredictive[_0x7074[86]](_0x7074[368],_0x7074[369],_0xeff2x7e)}}};Dialer[_0x7074[123]][_0x7074[370]]= function(_0xeff2x37,_0xeff2x5c){var _0xeff2x61=this;return function(_0xeff2x38){if(_[_0x7074[66]](_0xeff2x38)){return _0xeff2x61[_0x7074[232]](_0xeff2x37,_0xeff2x5c)}else {_0xeff2x37[_0x7074[371]]+= 1;_0xeff2x37[_0x7074[57]]= _0x7074[372];var _0xeff2x25= new Action(_0xeff2x37,_0xeff2x5c);var _0xeff2x71= new History(_0xeff2x25);_0xeff2x71[_0x7074[163]]= 13;_0xeff2x71[_0x7074[164]]= _0x7074[373];_0xeff2x71[_0x7074[258]]= _0xeff2x25[_0x7074[257]];_0xeff2x61[_0x7074[142]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[259]));_0xeff2x61[_0x7074[140]](_0xeff2x71)[_0x7074[125]](loggerCatch(_0x7074[374]));throw _0x7074[375]}}};Dialer[_0x7074[123]][_0x7074[225]]= function(_0xeff2x5a){var _0xeff2x61=this;var _0xeff2x52=[];var _0xeff2x55=_0xeff2x5a[_0x7074[376]]- _0xeff2x5a[_0x7074[102]];emitCampaignSummary(_0xeff2x5a);if(_0xeff2x55> 0){if(_0xeff2x55> this[_0x7074[33]]){_0xeff2x55= this[_0x7074[33]]};_0xeff2x5a[_0x7074[102]]+= _0xeff2x55;this[_0x7074[137]](_0xeff2x5a[_0x7074[248]],_0xeff2x55)[_0x7074[126]](function(_0xeff2x38){if(!checkContactEmpty(_0xeff2x38)){checkContactLowerLimitOriginate(_0xeff2x5a,_0xeff2x55,0);_0xeff2x5a[_0x7074[57]]= _0x7074[110];logger[_0x7074[86]](_0x7074[378]+ _0xeff2x5a[_0x7074[59]])}else {checkContactLowerLimitOriginate(_0xeff2x5a,_0xeff2x55,_0xeff2x38[_0x7074[101]]);_0xeff2x5a[_0x7074[57]]= _0x7074[379];for(var _0xeff2x7f=0;_0xeff2x7f< _0xeff2x38[_0x7074[101]];_0xeff2x7f+= 1){_0xeff2x5a[_0x7074[380]]+= 1;_0xeff2x61[_0x7074[128]](_[_0x7074[383]](_0xeff2x38[_0xeff2x7f],[_0x7074[288],_0x7074[382]]))[_0x7074[126]](_0xeff2x61[_0x7074[370]](_0xeff2x5a,_0xeff2x38[_0xeff2x7f]))[_0x7074[125]](_0xeff2x61[_0x7074[147]](_0x7074[381],_0xeff2x5a))}}})[_0x7074[125]](loggerGetContactDialer(_0x7074[377],_0xeff2x5a,_0xeff2x55))}};Dialer[_0x7074[123]][_0x7074[217]]= function(_0xeff2x37,_0xeff2x80){var _0xeff2x61=this;var _0xeff2x81=_0xeff2x80>= 1?_0xeff2x80:1;var _0xeff2x52=[];var _0xeff2x55=Math[_0x7074[334]](_0xeff2x37[_0x7074[115]]* _0xeff2x81)- _0xeff2x37[_0x7074[102]];emitVoiceQueueSummary(_0xeff2x37);if(_0xeff2x37[_0x7074[384]]> 0){var _0xeff2x82=_0xeff2x37[_0x7074[384]]- _0xeff2x37[_0x7074[102]]- _0xeff2x37[_0x7074[113]];if(_0xeff2x55> _0xeff2x82){_0xeff2x55= _0xeff2x82}};if(_0xeff2x55> 0){if(_0xeff2x55> this[_0x7074[33]]){_0xeff2x55= this[_0x7074[33]]};_0xeff2x37[_0x7074[102]]+= _0xeff2x55;this[_0x7074[135]](_0xeff2x37[_0x7074[248]],_0xeff2x55)[_0x7074[126]](function(_0xeff2x38){if(!checkContactEmpty(_0xeff2x38)){checkContactLowerLimitOriginate(_0xeff2x37,_0xeff2x55,0);_0xeff2x61[_0x7074[122]](_0xeff2x37)[_0x7074[126]](sendMessageReschedule(_0xeff2x37))[_0x7074[125]](loggerCatch(_0x7074[124]))}else {checkContactLowerLimitOriginate(_0xeff2x37,_0xeff2x55,_0xeff2x38[_0x7074[101]]);_0xeff2x37[_0x7074[57]]= _0x7074[379];for(var _0xeff2x7f=0;_0xeff2x7f< _0xeff2x38[_0x7074[101]];_0xeff2x7f+= 1){_0xeff2x61[_0x7074[128]](_[_0x7074[383]](_0xeff2x38[_0xeff2x7f],[_0x7074[247],_0x7074[382]]))[_0x7074[126]](_0xeff2x61[_0x7074[370]](_0xeff2x37,_0xeff2x38[_0xeff2x7f]))[_0x7074[125]](_0xeff2x61[_0x7074[147]](_0x7074[386],_0xeff2x37))}}})[_0x7074[125]](loggerGetContactDialer(_0x7074[385],_0xeff2x37,_0xeff2x55))}};Dialer[_0x7074[123]][_0x7074[95]]= function(_0xeff2x37){var _0xeff2x61=this;if(_0xeff2x37[_0x7074[384]]> 0){var _0xeff2x82=_0xeff2x37[_0x7074[384]]- _0xeff2x37[_0x7074[102]]- _0xeff2x37[_0x7074[113]];if(_0xeff2x82> 0){this[_0x7074[387]](_0xeff2x37)}else {loggerPredictiveCalls[_0x7074[86]](_0x7074[388])}}else {this[_0x7074[387]](_0xeff2x37)}};Dialer[_0x7074[123]][_0x7074[387]]= function(_0xeff2x37){var _0xeff2x61=this;_0xeff2x37[_0x7074[102]]+= 1;this[_0x7074[135]](_0xeff2x37[_0x7074[248]],1)[_0x7074[126]](function(_0xeff2x38){if(!checkContactEmpty(_0xeff2x38)){checkContactLowerLimitOriginate(_0xeff2x37,1,0);_0xeff2x61[_0x7074[122]](_0xeff2x37)[_0x7074[126]](sendMessageReschedule(_0xeff2x37))[_0x7074[125]](loggerCatch(_0x7074[124]))}else {_0xeff2x37[_0x7074[57]]= _0x7074[379];_0xeff2x61[_0x7074[128]](_[_0x7074[383]](_0xeff2x38[0],[_0x7074[247],_0x7074[382]]))[_0x7074[126]](_0xeff2x61[_0x7074[370]](_0xeff2x37,_0xeff2x38[0]))[_0x7074[125]](_0xeff2x61[_0x7074[147]](_0x7074[390],_0xeff2x37))}})[_0x7074[125]](loggerGetContactDialer(_0x7074[389],_0xeff2x37,1));emitVoiceQueueSummary(_0xeff2x37)};Dialer[_0x7074[123]][_0x7074[360]]= function(_0xeff2x40,_0xeff2x5d,_0xeff2x7a,_0xeff2x83,_0xeff2x7c,_0xeff2x84){loggerPredictive[_0x7074[86]](_0x7074[391],_0x7074[392],_0xeff2x40,_0x7074[393],_0xeff2x5d,_0x7074[394],_0xeff2x7a,_0x7074[395],_0xeff2x83,_0x7074[396],_0xeff2x7c);return  new BPromise(function(_0xeff2x6b,_0xeff2x29){if(_0xeff2x40<= 0|| isNaN(_0xeff2x40)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[397]+ _0xeff2x40))};if(_0xeff2x7a<= 0|| isNaN(_0xeff2x7a)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[398]+ _0xeff2x7a))};if(_0xeff2x83<= 0|| isNaN(_0xeff2x83)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[399]+ _0xeff2x83))};if(_0xeff2x5d<= 0|| isNaN(_0xeff2x5d)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[400]+ _0xeff2x5d))};if(_0xeff2x7c<= 0|| isNaN(_0xeff2x7c)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[401]+ _0xeff2x7c))};_0xeff2x84= _0xeff2x84|| 0.0;var _0xeff2x85=1.0/ _0xeff2x7a;var _0xeff2x3f=0.0;var _0xeff2x86=0.0;var _0xeff2x2d=0.0;var _0xeff2x87=0.0;for(var _0xeff2x53=0;_0xeff2x2d< _0xeff2x7c;_0xeff2x53+= 1){_0xeff2x86= _0xeff2x53/ _0xeff2x5d;_0xeff2x3f= ((_0xeff2x83* _0xeff2x86)+ _0xeff2x84)/ _0xeff2x85;_0xeff2x2d= erlangb(_0xeff2x3f,_0xeff2x40);_0xeff2x87= (_0xeff2x3f/ _0xeff2x40)* (1- erlangb(_0xeff2x3f,_0xeff2x40))};return _0xeff2x6b({erlangCalls:_0xeff2x53,erlangCallToSecond:(_0xeff2x5d/ _0xeff2x53),erlangAbandonmentRate:_0xeff2x2d,erlangBusyFactor:_0xeff2x87})})};Dialer[_0x7074[123]][_0x7074[362]]= function(_0xeff2x40,_0xeff2x5d,_0xeff2x7a,_0xeff2x83,_0xeff2x7d,_0xeff2x84){loggerPredictive[_0x7074[86]](_0x7074[402],_0x7074[392],_0xeff2x40,_0x7074[393],_0xeff2x5d,_0x7074[394],_0xeff2x7a,_0x7074[395],_0xeff2x83,_0x7074[403],_0xeff2x7d);return  new BPromise(function(_0xeff2x6b,_0xeff2x29){if(_0xeff2x40<= 0|| isNaN(_0xeff2x40)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[397]+ _0xeff2x40))};if(_0xeff2x7a<= 0|| isNaN(_0xeff2x7a)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[398]+ _0xeff2x7a))};if(_0xeff2x83<= 0|| isNaN(_0xeff2x83)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[399]+ _0xeff2x83))};if(_0xeff2x5d<= 0|| isNaN(_0xeff2x5d)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[400]+ _0xeff2x5d))};if(_0xeff2x7d<= 0|| isNaN(_0xeff2x7d)){return _0xeff2x29(msgResponse(_0x7074[391],_0x7074[68],_0x7074[401]+ _0xeff2x7d))};_0xeff2x84= _0xeff2x84|| 0.0;var _0xeff2x85=1.0/ _0xeff2x7a;var _0xeff2x3f=0.0;var _0xeff2x86=0.0;var _0xeff2x2d=0.0;var _0xeff2x87=0.0;for(var _0xeff2x53=0;_0xeff2x87< _0xeff2x7d;_0xeff2x53+= 1){_0xeff2x86= _0xeff2x53/ _0xeff2x5d;_0xeff2x3f= ((_0xeff2x83* _0xeff2x86)+ _0xeff2x84)/ _0xeff2x85;_0xeff2x2d= erlangb(_0xeff2x3f,_0xeff2x40);_0xeff2x87= (_0xeff2x3f/ _0xeff2x40)* (1- erlangb(_0xeff2x3f,_0xeff2x40))};return _0xeff2x6b({erlangCalls:_0xeff2x53,erlangCallToSecond:(_0xeff2x5d/ _0xeff2x53),erlangAbandonmentRate:_0xeff2x2d,erlangBusyFactor:_0xeff2x87})})};module[_0x7074[404]]= Dialer
\ No newline at end of file
index 389851e..e5da586 100644 (file)
@@ -1 +1 @@
-var _0xe0ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x64\x72\x6F\x70\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xe0ec[0];var util=require(_0xe0ec[1]);var _=require(_0xe0ec[2]);var moment=require(_0xe0ec[3]);function getSeconds(_0xa10bx5,_0xa10bx6){var _0xa10bx7=moment(_0xa10bx5)[_0xe0ec[4]](0);var _0xa10bx8=moment(_0xa10bx6)[_0xe0ec[4]](0);return _0xa10bx7[_0xe0ec[6]](_0xa10bx8,_0xe0ec[5])}function QueueCallerAbandon(_0xa10bxa,_0xa10bxb){this[_0xe0ec[7]]= _0xa10bxa[_0xe0ec[7]];this[_0xe0ec[8]]= _0xa10bxa[_0xe0ec[8]];this[_0xe0ec[9]]= (_0xa10bxa[_0xe0ec[8]]=== _0xe0ec[10])?_0xe0ec[11]:_0xa10bxa[_0xe0ec[8]];this[_0xe0ec[12]]= _0xa10bxa[_0xe0ec[12]];this[_0xe0ec[13]]= _0xa10bxa[_0xe0ec[13]];this[_0xe0ec[14]]= _0xa10bxa[_0xe0ec[14]];this[_0xe0ec[15]]= _0xa10bxa[_0xe0ec[12]]+ _0xa10bxa[_0xe0ec[13]]+ _0xa10bxa[_0xe0ec[14]];this[_0xe0ec[16]]= _0xa10bxb[_0xe0ec[16]];this[_0xe0ec[17]]= _0xa10bxa[_0xe0ec[18]];this[_0xe0ec[19]]= _0xa10bxa[_0xe0ec[20]];this[_0xe0ec[21]]= _0xa10bxa[_0xe0ec[21]];this[_0xe0ec[22]]= _0xa10bxa[_0xe0ec[22]];this[_0xe0ec[23]]= _0xa10bxa[_0xe0ec[23]];this[_0xe0ec[24]]= this[_0xe0ec[23]];this[_0xe0ec[25]]= getSeconds(_0xa10bxa[_0xe0ec[22]],_0xa10bxa[_0xe0ec[21]]);this[_0xe0ec[26]]= getSeconds(this[_0xe0ec[23]],_0xa10bxa[_0xe0ec[22]]);this[_0xe0ec[27]]= 0;this[_0xe0ec[11]]= _0xa10bxb[_0xe0ec[11]];this[_0xe0ec[28]]= _0xa10bxb[_0xe0ec[29]];this[_0xe0ec[30]]= _0xa10bxb[_0xe0ec[30]];this[_0xe0ec[31]]= _0xa10bxa[_0xe0ec[31]];this[_0xe0ec[32]]= _0xa10bxa[_0xe0ec[32]];this[_0xe0ec[33]]= _0xa10bxa[_0xe0ec[33]];this[_0xe0ec[34]]= _0xa10bxa[_0xe0ec[34]];this[_0xe0ec[35]]= _0xa10bxa[_0xe0ec[35]];this[_0xe0ec[36]]= _0xa10bxa[_0xe0ec[36]];this[_0xe0ec[37]]= _0xa10bxa[_0xe0ec[37]];this[_0xe0ec[38]]= _0xa10bxa[_0xe0ec[38]]}module[_0xe0ec[39]]= QueueCallerAbandon
\ No newline at end of file
+var _0x8d27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x64\x72\x6F\x70\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x8d27[0];var util=require(_0x8d27[1]);var _=require(_0x8d27[2]);var moment=require(_0x8d27[3]);function getSeconds(_0xc5aax5,_0xc5aax6){var _0xc5aax7=moment(_0xc5aax5)[_0x8d27[4]](0);var _0xc5aax8=moment(_0xc5aax6)[_0x8d27[4]](0);return _0xc5aax7[_0x8d27[6]](_0xc5aax8,_0x8d27[5])}function QueueCallerAbandon(_0xc5aaxa,_0xc5aaxb){this[_0x8d27[7]]= _0xc5aaxa[_0x8d27[7]];this[_0x8d27[8]]= _0xc5aaxa[_0x8d27[8]];this[_0x8d27[9]]= (_0xc5aaxa[_0x8d27[8]]=== _0x8d27[10])?_0x8d27[11]:_0xc5aaxa[_0x8d27[8]];this[_0x8d27[12]]= _0xc5aaxa[_0x8d27[12]];this[_0x8d27[13]]= _0xc5aaxa[_0x8d27[13]];this[_0x8d27[14]]= _0xc5aaxa[_0x8d27[14]];this[_0x8d27[15]]= _0xc5aaxa[_0x8d27[12]]+ _0xc5aaxa[_0x8d27[13]]+ _0xc5aaxa[_0x8d27[14]];this[_0x8d27[16]]= _0xc5aaxb[_0x8d27[16]];this[_0x8d27[17]]= _0xc5aaxa[_0x8d27[18]];this[_0x8d27[19]]= _0xc5aaxa[_0x8d27[20]];this[_0x8d27[21]]= _0xc5aaxa[_0x8d27[21]];this[_0x8d27[22]]= _0xc5aaxa[_0x8d27[22]];this[_0x8d27[23]]= _0xc5aaxa[_0x8d27[23]];this[_0x8d27[24]]= this[_0x8d27[23]];this[_0x8d27[25]]= getSeconds(_0xc5aaxa[_0x8d27[22]],_0xc5aaxa[_0x8d27[21]]);this[_0x8d27[26]]= getSeconds(this[_0x8d27[23]],_0xc5aaxa[_0x8d27[22]]);this[_0x8d27[27]]= 0;this[_0x8d27[11]]= _0xc5aaxb[_0x8d27[11]];this[_0x8d27[28]]= _0xc5aaxb[_0x8d27[29]];this[_0x8d27[30]]= _0xc5aaxb[_0x8d27[30]];this[_0x8d27[31]]= _0xc5aaxa[_0x8d27[31]];this[_0x8d27[32]]= _0xc5aaxa[_0x8d27[32]];this[_0x8d27[33]]= _0xc5aaxa[_0x8d27[33]];this[_0x8d27[34]]= _0xc5aaxa[_0x8d27[34]];this[_0x8d27[35]]= _0xc5aaxa[_0x8d27[35]];this[_0x8d27[36]]= _0xc5aaxa[_0x8d27[36]];this[_0x8d27[37]]= _0xc5aaxa[_0x8d27[37]];this[_0x8d27[38]]= _0xc5aaxa[_0x8d27[38]]}module[_0x8d27[39]]= QueueCallerAbandon
\ No newline at end of file
index b3ce0cc..171273c 100644 (file)
@@ -1 +1 @@
-var _0x845e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2F\x73\x65\x72\x76\x65\x72","\x2E\x2F\x72\x65\x61\x6C\x74\x69\x6D\x65","\x2E\x2F\x72\x65\x70\x6F\x72\x74","\x2E\x2F\x61\x63\x77","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72","\x2E\x2F\x64\x69\x61\x6C\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x75\x73\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x72\x70\x63\x2F\x74\x72\x75\x6E\x6B","\x2E\x2F\x72\x70\x63\x2F\x74\x72\x69\x67\x67\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x72\x70\x63\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x68\x6F\x75\x72","\x67\x65\x74","\x74\x68\x65\x6E","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x6E\x69\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x69\x6E\x69\x74\x54\x72\x75\x6E\x6B\x73","\x67\x65\x74\x54\x72\x75\x6E\x6B\x73","\x69\x6E\x69\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x67\x65\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x69\x6E\x69\x74\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x72\x65\x73\x6F\x6C\x76\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x73\x79\x6E\x63","\x6C\x69\x73\x74\x65\x6E"];_0x845e[0];var BPromise=require(_0x845e[1]);var util=require(_0x845e[2]);var moment=require(_0x845e[3]);var server=require(_0x845e[4]);var Realtime=require(_0x845e[5]);var Report=require(_0x845e[6]);var Acw=require(_0x845e[7]);var Trigger=require(_0x845e[8]);var Dialer=require(_0x845e[9]);var user=require(_0x845e[10]);var voiceQueue=require(_0x845e[11]);var voiceQueueReport=require(_0x845e[12]);var voiceCallReport=require(_0x845e[13]);var trunk=require(_0x845e[14]);var trigger=require(_0x845e[15]);var template=require(_0x845e[16]);var cmHopperHistory=require(_0x845e[17]);var campaign=require(_0x845e[18]);var zendesk=require(_0x845e[19]);var salesforce=require(_0x845e[20]);var sugarcrm=require(_0x845e[21]);var freshdesk=require(_0x845e[22]);var realtime= new Realtime();var report= new Report(realtime);var acw= new Acw(realtime);var voiceTrigger= new Trigger(realtime);var dialer= new Dialer(realtime);var isTrue=true;var initP=true;function ifMidnight(){if(moment()[_0x845e[24]](_0x845e[23])=== 0&& initP){initP= false;isTrue= true;initParams()};if(moment()[_0x845e[24]](_0x845e[23])=== 1&& isTrue){isTrue= false;initP= true}}function initRealtime(){ifMidnight();return BPromise[_0x845e[48]]()[_0x845e[25]](user[_0x845e[47]]())[_0x845e[25]](realtime[_0x845e[46]]())[_0x845e[25]](user[_0x845e[45]]())[_0x845e[25]](realtime[_0x845e[44]]())[_0x845e[25]](trunk[_0x845e[43]]())[_0x845e[25]](realtime[_0x845e[42]]())[_0x845e[25]](voiceQueue[_0x845e[41]]())[_0x845e[25]](realtime[_0x845e[40]]())[_0x845e[25]](trigger[_0x845e[39]]())[_0x845e[25]](realtime[_0x845e[38]]())[_0x845e[25]](template[_0x845e[37]]())[_0x845e[25]](realtime[_0x845e[36]]())[_0x845e[25]](zendesk[_0x845e[35]]())[_0x845e[25]](realtime[_0x845e[34]]())[_0x845e[25]](salesforce[_0x845e[33]]())[_0x845e[25]](realtime[_0x845e[32]]())[_0x845e[25]](sugarcrm[_0x845e[31]]())[_0x845e[25]](realtime[_0x845e[30]]())[_0x845e[25]](freshdesk[_0x845e[29]]())[_0x845e[25]](realtime[_0x845e[28]]())[_0x845e[25]](campaign[_0x845e[27]]())[_0x845e[25]](realtime[_0x845e[26]]())[_0x845e[25]](function(){return realtime})}function initParams(){return BPromise[_0x845e[48]]()[_0x845e[25]](voiceQueueReport[_0x845e[58]]())[_0x845e[25]](realtime[_0x845e[57]]())[_0x845e[25]](cmHopperHistory[_0x845e[56]]())[_0x845e[25]](realtime[_0x845e[55]]())[_0x845e[25]](cmHopperHistory[_0x845e[54]]())[_0x845e[25]](realtime[_0x845e[53]]())[_0x845e[25]](voiceCallReport[_0x845e[52]]())[_0x845e[25]](realtime[_0x845e[51]]())[_0x845e[25]](function(_0x6a3ax22){})[_0x845e[50]](function(_0x6a3ax21){console[_0x845e[49]](_0x6a3ax21)})}return server[_0x845e[60]](realtime)[_0x845e[25]](function(_0x6a3ax23){console[_0x845e[49]](_0x6a3ax23);return initRealtime()})[_0x845e[25]](function(){return initParams()})[_0x845e[25]](function(){report[_0x845e[59]]();setInterval(initRealtime,5000)})[_0x845e[50]](function(_0x6a3ax21){console[_0x845e[49]](_0x6a3ax21)})
\ No newline at end of file
+var _0x88a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2F\x73\x65\x72\x76\x65\x72","\x2E\x2F\x72\x65\x61\x6C\x74\x69\x6D\x65","\x2E\x2F\x72\x65\x70\x6F\x72\x74","\x2E\x2F\x61\x63\x77","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72","\x2E\x2F\x64\x69\x61\x6C\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x75\x73\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x72\x70\x63\x2F\x74\x72\x75\x6E\x6B","\x2E\x2F\x72\x70\x63\x2F\x74\x72\x69\x67\x67\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x72\x70\x63\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x68\x6F\x75\x72","\x67\x65\x74","\x74\x68\x65\x6E","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x6E\x69\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x69\x6E\x69\x74\x54\x72\x75\x6E\x6B\x73","\x67\x65\x74\x54\x72\x75\x6E\x6B\x73","\x69\x6E\x69\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x67\x65\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x69\x6E\x69\x74\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x72\x65\x73\x6F\x6C\x76\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x73\x79\x6E\x63","\x6C\x69\x73\x74\x65\x6E"];_0x88a6[0];var BPromise=require(_0x88a6[1]);var util=require(_0x88a6[2]);var moment=require(_0x88a6[3]);var server=require(_0x88a6[4]);var Realtime=require(_0x88a6[5]);var Report=require(_0x88a6[6]);var Acw=require(_0x88a6[7]);var Trigger=require(_0x88a6[8]);var Dialer=require(_0x88a6[9]);var user=require(_0x88a6[10]);var voiceQueue=require(_0x88a6[11]);var voiceQueueReport=require(_0x88a6[12]);var voiceCallReport=require(_0x88a6[13]);var trunk=require(_0x88a6[14]);var trigger=require(_0x88a6[15]);var template=require(_0x88a6[16]);var cmHopperHistory=require(_0x88a6[17]);var campaign=require(_0x88a6[18]);var zendesk=require(_0x88a6[19]);var salesforce=require(_0x88a6[20]);var sugarcrm=require(_0x88a6[21]);var freshdesk=require(_0x88a6[22]);var realtime= new Realtime();var report= new Report(realtime);var acw= new Acw(realtime);var voiceTrigger= new Trigger(realtime);var dialer= new Dialer(realtime);var isTrue=true;var initP=true;function ifMidnight(){if(moment()[_0x88a6[24]](_0x88a6[23])=== 0&& initP){initP= false;isTrue= true;initParams()};if(moment()[_0x88a6[24]](_0x88a6[23])=== 1&& isTrue){isTrue= false;initP= true}}function initRealtime(){ifMidnight();return BPromise[_0x88a6[48]]()[_0x88a6[25]](user[_0x88a6[47]]())[_0x88a6[25]](realtime[_0x88a6[46]]())[_0x88a6[25]](user[_0x88a6[45]]())[_0x88a6[25]](realtime[_0x88a6[44]]())[_0x88a6[25]](trunk[_0x88a6[43]]())[_0x88a6[25]](realtime[_0x88a6[42]]())[_0x88a6[25]](voiceQueue[_0x88a6[41]]())[_0x88a6[25]](realtime[_0x88a6[40]]())[_0x88a6[25]](trigger[_0x88a6[39]]())[_0x88a6[25]](realtime[_0x88a6[38]]())[_0x88a6[25]](template[_0x88a6[37]]())[_0x88a6[25]](realtime[_0x88a6[36]]())[_0x88a6[25]](zendesk[_0x88a6[35]]())[_0x88a6[25]](realtime[_0x88a6[34]]())[_0x88a6[25]](salesforce[_0x88a6[33]]())[_0x88a6[25]](realtime[_0x88a6[32]]())[_0x88a6[25]](sugarcrm[_0x88a6[31]]())[_0x88a6[25]](realtime[_0x88a6[30]]())[_0x88a6[25]](freshdesk[_0x88a6[29]]())[_0x88a6[25]](realtime[_0x88a6[28]]())[_0x88a6[25]](campaign[_0x88a6[27]]())[_0x88a6[25]](realtime[_0x88a6[26]]())[_0x88a6[25]](function(){return realtime})}function initParams(){return BPromise[_0x88a6[48]]()[_0x88a6[25]](voiceQueueReport[_0x88a6[58]]())[_0x88a6[25]](realtime[_0x88a6[57]]())[_0x88a6[25]](cmHopperHistory[_0x88a6[56]]())[_0x88a6[25]](realtime[_0x88a6[55]]())[_0x88a6[25]](cmHopperHistory[_0x88a6[54]]())[_0x88a6[25]](realtime[_0x88a6[53]]())[_0x88a6[25]](voiceCallReport[_0x88a6[52]]())[_0x88a6[25]](realtime[_0x88a6[51]]())[_0x88a6[25]](function(_0xee83x22){})[_0x88a6[50]](function(_0xee83x21){console[_0x88a6[49]](_0xee83x21)})}return server[_0x88a6[60]](realtime)[_0x88a6[25]](function(_0xee83x23){console[_0x88a6[49]](_0xee83x23);return initRealtime()})[_0x88a6[25]](function(){return initParams()})[_0x88a6[25]](function(){report[_0x88a6[59]]();setInterval(initRealtime,5000)})[_0x88a6[50]](function(_0xee83x21){console[_0x88a6[49]](_0xee83x21)})
\ No newline at end of file
index 298ef61..3437930 100644 (file)
@@ -1 +1 @@
-var _0x1c19=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x65\x6D\x61\x69\x6C","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x1c19[0];function Agent(_0x5c96x2){this[_0x1c19[1]]= _0x5c96x2[_0x1c19[1]]|| 0;this[_0x1c19[2]]= _0x5c96x2[_0x1c19[2]]|| _0x1c19[3];this[_0x1c19[4]]= _0x5c96x2[_0x1c19[4]]|| _0x1c19[3];this[_0x1c19[5]]= _0x1c19[6];this[_0x1c19[7]]= 0;this[_0x1c19[8]]= _0x1c19[6];this[_0x1c19[9]]= _0x1c19[3]}module[_0x1c19[10]]= Agent
\ No newline at end of file
+var _0xc5b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x65\x6D\x61\x69\x6C","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xc5b3[0];function Agent(_0x775dx2){this[_0xc5b3[1]]= _0x775dx2[_0xc5b3[1]]|| 0;this[_0xc5b3[2]]= _0x775dx2[_0xc5b3[2]]|| _0xc5b3[3];this[_0xc5b3[4]]= _0x775dx2[_0xc5b3[4]]|| _0xc5b3[3];this[_0xc5b3[5]]= _0xc5b3[6];this[_0xc5b3[7]]= 0;this[_0xc5b3[8]]= _0xc5b3[6];this[_0xc5b3[9]]= _0xc5b3[3]}module[_0xc5b3[10]]= Agent
\ No newline at end of file
index c70899c..382e413 100644 (file)
@@ -1 +1 @@
-var _0xbab1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x6D\x65\x73\x73\x61\x67\x65","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x61\x63\x74\x69\x76\x65","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x54\x72\x75\x6E\x6B","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xbab1[0];function Campaign(_0xec38x2){this[_0xbab1[1]]= _0xec38x2[_0xbab1[1]]|| 0;this[_0xbab1[2]]= _0xec38x2[_0xbab1[2]]|| _0xbab1[3];this[_0xbab1[4]]= _0xec38x2[_0xbab1[4]]|| _0xbab1[5];this[_0xbab1[6]]= 0;this[_0xbab1[7]]= 0;this[_0xbab1[8]]= 0;this[_0xbab1[9]]= _0xbab1[3];this[_0xbab1[10]]= true;this[_0xbab1[11]]= _0xec38x2[_0xbab1[11]];this[_0xbab1[12]]= _0xec38x2[_0xbab1[12]];this[_0xbab1[13]]= _0xec38x2[_0xbab1[13]]|| null;this[_0xbab1[14]]= _0xec38x2[_0xbab1[14]]?_0xec38x2[_0xbab1[14]]:null;this[_0xbab1[15]]= _0xec38x2[_0xbab1[15]];this[_0xbab1[16]]= _0xec38x2[_0xbab1[16]];this[_0xbab1[17]]= _0xec38x2[_0xbab1[17]]|| 30;this[_0xbab1[18]]= _0xec38x2[_0xbab1[18]];this[_0xbab1[19]]= _0xec38x2[_0xbab1[19]];this[_0xbab1[20]]= _0xec38x2[_0xbab1[20]];this[_0xbab1[21]]= _0xec38x2[_0xbab1[21]];this[_0xbab1[22]]= _0xec38x2[_0xbab1[22]];this[_0xbab1[23]]= _0xec38x2[_0xbab1[23]];this[_0xbab1[24]]= _0xec38x2[_0xbab1[24]];this[_0xbab1[25]]= _0xec38x2[_0xbab1[25]]?_0xec38x2[_0xbab1[25]]:undefined;this[_0xbab1[26]]= _0xec38x2[_0xbab1[26]]?_0xec38x2[_0xbab1[26]]:undefined;this[_0xbab1[27]]= _0xec38x2[_0xbab1[27]]?_0xec38x2[_0xbab1[27]]:undefined;this[_0xbab1[28]]= _0xec38x2[_0xbab1[28]]?_0xec38x2[_0xbab1[28]]:undefined;this[_0xbab1[29]]= _0xec38x2[_0xbab1[28]]?_0xec38x2[_0xbab1[28]][_0xbab1[2]]:undefined}module[_0xbab1[30]]= Campaign
\ No newline at end of file
+var _0x3415=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x6D\x65\x73\x73\x61\x67\x65","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x61\x63\x74\x69\x76\x65","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x54\x72\x75\x6E\x6B","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x3415[0];function Campaign(_0x5975x2){this[_0x3415[1]]= _0x5975x2[_0x3415[1]]|| 0;this[_0x3415[2]]= _0x5975x2[_0x3415[2]]|| _0x3415[3];this[_0x3415[4]]= _0x5975x2[_0x3415[4]]|| _0x3415[5];this[_0x3415[6]]= 0;this[_0x3415[7]]= 0;this[_0x3415[8]]= 0;this[_0x3415[9]]= _0x3415[3];this[_0x3415[10]]= true;this[_0x3415[11]]= _0x5975x2[_0x3415[11]];this[_0x3415[12]]= _0x5975x2[_0x3415[12]];this[_0x3415[13]]= _0x5975x2[_0x3415[13]]|| null;this[_0x3415[14]]= _0x5975x2[_0x3415[14]]?_0x5975x2[_0x3415[14]]:null;this[_0x3415[15]]= _0x5975x2[_0x3415[15]];this[_0x3415[16]]= _0x5975x2[_0x3415[16]];this[_0x3415[17]]= _0x5975x2[_0x3415[17]]|| 30;this[_0x3415[18]]= _0x5975x2[_0x3415[18]];this[_0x3415[19]]= _0x5975x2[_0x3415[19]];this[_0x3415[20]]= _0x5975x2[_0x3415[20]];this[_0x3415[21]]= _0x5975x2[_0x3415[21]];this[_0x3415[22]]= _0x5975x2[_0x3415[22]];this[_0x3415[23]]= _0x5975x2[_0x3415[23]];this[_0x3415[24]]= _0x5975x2[_0x3415[24]];this[_0x3415[25]]= _0x5975x2[_0x3415[25]]?_0x5975x2[_0x3415[25]]:undefined;this[_0x3415[26]]= _0x5975x2[_0x3415[26]]?_0x5975x2[_0x3415[26]]:undefined;this[_0x3415[27]]= _0x5975x2[_0x3415[27]]?_0x5975x2[_0x3415[27]]:undefined;this[_0x3415[28]]= _0x5975x2[_0x3415[28]]?_0x5975x2[_0x3415[28]]:undefined;this[_0x3415[29]]= _0x5975x2[_0x3415[28]]?_0x5975x2[_0x3415[28]][_0x3415[2]]:undefined}module[_0x3415[30]]= Campaign
\ No newline at end of file
index 0150832..8c1b1ee 100644 (file)
@@ -1 +1 @@
-var _0xa571=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x63\x68\x61\x6E\x6E\x65\x6C","","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x65\x78\x74\x65\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x61\x73\x74\x64\x61\x74\x61","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x79\x70\x65","\x74\x61\x67","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6D\x6F\x6E\x69\x74\x6F\x72","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa571[0];function Channel(){this[_0xa571[1]]= null;this[_0xa571[2]]= _0xa571[3];this[_0xa571[4]]= _0xa571[3];this[_0xa571[5]]= 0;this[_0xa571[6]]= _0xa571[3];this[_0xa571[7]]= undefined;this[_0xa571[8]]= undefined;this[_0xa571[9]]= 0;this[_0xa571[10]]= _0xa571[3];this[_0xa571[11]]= 0;this[_0xa571[12]]= 0;this[_0xa571[13]]= 0;this[_0xa571[14]]= false;this[_0xa571[15]]= null;this[_0xa571[16]]= null;this[_0xa571[17]]= false;this[_0xa571[18]]= _0xa571[3];this[_0xa571[19]]= _0xa571[3];this[_0xa571[20]]= 0;this[_0xa571[21]]= 0;this[_0xa571[22]]= 0;this[_0xa571[23]]= null;this[_0xa571[24]]= null;this[_0xa571[25]]= null;this[_0xa571[26]]= false;this[_0xa571[27]]= null;this[_0xa571[28]]= null}module[_0xa571[29]]= Channel
\ No newline at end of file
+var _0x4d57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x63\x68\x61\x6E\x6E\x65\x6C","","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x65\x78\x74\x65\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x61\x73\x74\x64\x61\x74\x61","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x79\x70\x65","\x74\x61\x67","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6D\x6F\x6E\x69\x74\x6F\x72","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4d57[0];function Channel(){this[_0x4d57[1]]= null;this[_0x4d57[2]]= _0x4d57[3];this[_0x4d57[4]]= _0x4d57[3];this[_0x4d57[5]]= 0;this[_0x4d57[6]]= _0x4d57[3];this[_0x4d57[7]]= undefined;this[_0x4d57[8]]= undefined;this[_0x4d57[9]]= 0;this[_0x4d57[10]]= _0x4d57[3];this[_0x4d57[11]]= 0;this[_0x4d57[12]]= 0;this[_0x4d57[13]]= 0;this[_0x4d57[14]]= false;this[_0x4d57[15]]= null;this[_0x4d57[16]]= null;this[_0x4d57[17]]= false;this[_0x4d57[18]]= _0x4d57[3];this[_0x4d57[19]]= _0x4d57[3];this[_0x4d57[20]]= 0;this[_0x4d57[21]]= 0;this[_0x4d57[22]]= 0;this[_0x4d57[23]]= null;this[_0x4d57[24]]= null;this[_0x4d57[25]]= null;this[_0x4d57[26]]= false;this[_0x4d57[27]]= null;this[_0x4d57[28]]= null}module[_0x4d57[29]]= Channel
\ No newline at end of file
index d3ef974..bb58d8a 100644 (file)
@@ -1 +1 @@
-var _0x6e76=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x70\x69\x4B\x65\x79","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x6e76[0];function FreshdeskAccount(_0xfa48x2){this[_0x6e76[1]]= _0xfa48x2[_0x6e76[1]]|| 0;this[_0x6e76[2]]= _0xfa48x2[_0x6e76[2]]|| _0x6e76[3];this[_0x6e76[4]]= _0xfa48x2[_0x6e76[4]]|| _0x6e76[3];this[_0x6e76[5]]= _0xfa48x2[_0x6e76[6]]|| _0x6e76[3];this[_0x6e76[7]]= _0xfa48x2[_0x6e76[7]]|| _0x6e76[3];this[_0x6e76[8]]= _0xfa48x2[_0x6e76[8]]|| _0x6e76[3];this[_0x6e76[9]]= _0xfa48x2[_0x6e76[9]]|| {}}module[_0x6e76[10]]= FreshdeskAccount
\ No newline at end of file
+var _0x8593=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x70\x69\x4B\x65\x79","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x8593[0];function FreshdeskAccount(_0xa51dx2){this[_0x8593[1]]= _0xa51dx2[_0x8593[1]]|| 0;this[_0x8593[2]]= _0xa51dx2[_0x8593[2]]|| _0x8593[3];this[_0x8593[4]]= _0xa51dx2[_0x8593[4]]|| _0x8593[3];this[_0x8593[5]]= _0xa51dx2[_0x8593[6]]|| _0x8593[3];this[_0x8593[7]]= _0xa51dx2[_0x8593[7]]|| _0x8593[3];this[_0x8593[8]]= _0xa51dx2[_0x8593[8]]|| _0x8593[3];this[_0x8593[9]]= _0xa51dx2[_0x8593[9]]|| {}}module[_0x8593[10]]= FreshdeskAccount
\ No newline at end of file
index 620e5d7..2bc5a41 100644 (file)
@@ -1 +1 @@
-var _0xf3c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x6F\x75\x6E\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x61\x73\x73\x69\x67\x6E\x65\x64","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf3c5[0];function QueueReport(){this[_0xf3c5[1]]= _0xf3c5[2];this[_0xf3c5[3]]= _0xf3c5[4];this[_0xf3c5[5]]= _0xf3c5[4];this[_0xf3c5[6]]= _0xf3c5[4];this[_0xf3c5[7]]= _0xf3c5[4];this[_0xf3c5[8]]= null;this[_0xf3c5[9]]= null;this[_0xf3c5[10]]= 1;this[_0xf3c5[11]]= 1;this[_0xf3c5[12]]= false;this[_0xf3c5[13]]= null;this[_0xf3c5[14]]= false;this[_0xf3c5[15]]= null;this[_0xf3c5[16]]= false;this[_0xf3c5[17]]= null;this[_0xf3c5[18]]= 1;this[_0xf3c5[19]]= _0xf3c5[4];this[_0xf3c5[20]]= _0xf3c5[4];this[_0xf3c5[21]]= _0xf3c5[4];this[_0xf3c5[22]]= _0xf3c5[4];this[_0xf3c5[23]]= _0xf3c5[4];this[_0xf3c5[24]]= _0xf3c5[4];this[_0xf3c5[25]]= _0xf3c5[4];this[_0xf3c5[26]]= 0;this[_0xf3c5[27]]= false;this[_0xf3c5[28]]= _0xf3c5[4];this[_0xf3c5[29]]= {}}module[_0xf3c5[30]]= QueueReport
\ No newline at end of file
+var _0xfc0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x6F\x75\x6E\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x61\x73\x73\x69\x67\x6E\x65\x64","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xfc0c[0];function QueueReport(){this[_0xfc0c[1]]= _0xfc0c[2];this[_0xfc0c[3]]= _0xfc0c[4];this[_0xfc0c[5]]= _0xfc0c[4];this[_0xfc0c[6]]= _0xfc0c[4];this[_0xfc0c[7]]= _0xfc0c[4];this[_0xfc0c[8]]= null;this[_0xfc0c[9]]= null;this[_0xfc0c[10]]= 1;this[_0xfc0c[11]]= 1;this[_0xfc0c[12]]= false;this[_0xfc0c[13]]= null;this[_0xfc0c[14]]= false;this[_0xfc0c[15]]= null;this[_0xfc0c[16]]= false;this[_0xfc0c[17]]= null;this[_0xfc0c[18]]= 1;this[_0xfc0c[19]]= _0xfc0c[4];this[_0xfc0c[20]]= _0xfc0c[4];this[_0xfc0c[21]]= _0xfc0c[4];this[_0xfc0c[22]]= _0xfc0c[4];this[_0xfc0c[23]]= _0xfc0c[4];this[_0xfc0c[24]]= _0xfc0c[4];this[_0xfc0c[25]]= _0xfc0c[4];this[_0xfc0c[26]]= 0;this[_0xfc0c[27]]= false;this[_0xfc0c[28]]= _0xfc0c[4];this[_0xfc0c[29]]= {}}module[_0xfc0c[30]]= QueueReport
\ No newline at end of file
index 7277e0f..0b2366b 100644 (file)
@@ -1 +1 @@
-var _0xf059=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf059[0];function SalesforceAccount(_0xce44x2){this[_0xf059[1]]= _0xce44x2[_0xf059[1]]|| 0;this[_0xf059[2]]= _0xce44x2[_0xf059[2]]|| _0xf059[3];this[_0xf059[4]]= _0xce44x2[_0xf059[4]]|| _0xf059[3];this[_0xf059[5]]= _0xce44x2[_0xf059[5]]|| _0xf059[3];this[_0xf059[6]]= _0xce44x2[_0xf059[6]]|| _0xf059[3];this[_0xf059[7]]= _0xce44x2[_0xf059[7]]|| _0xf059[3];this[_0xf059[8]]= _0xce44x2[_0xf059[8]]|| _0xf059[3];this[_0xf059[9]]= _0xce44x2[_0xf059[9]]|| _0xf059[3];this[_0xf059[10]]= _0xce44x2[_0xf059[10]]|| _0xf059[3];this[_0xf059[11]]= _0xce44x2[_0xf059[11]]|| {}}module[_0xf059[12]]= SalesforceAccount
\ No newline at end of file
+var _0xc08d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xc08d[0];function SalesforceAccount(_0x3f69x2){this[_0xc08d[1]]= _0x3f69x2[_0xc08d[1]]|| 0;this[_0xc08d[2]]= _0x3f69x2[_0xc08d[2]]|| _0xc08d[3];this[_0xc08d[4]]= _0x3f69x2[_0xc08d[4]]|| _0xc08d[3];this[_0xc08d[5]]= _0x3f69x2[_0xc08d[5]]|| _0xc08d[3];this[_0xc08d[6]]= _0x3f69x2[_0xc08d[6]]|| _0xc08d[3];this[_0xc08d[7]]= _0x3f69x2[_0xc08d[7]]|| _0xc08d[3];this[_0xc08d[8]]= _0x3f69x2[_0xc08d[8]]|| _0xc08d[3];this[_0xc08d[9]]= _0x3f69x2[_0xc08d[9]]|| _0xc08d[3];this[_0xc08d[10]]= _0x3f69x2[_0xc08d[10]]|| _0xc08d[3];this[_0xc08d[11]]= _0x3f69x2[_0xc08d[11]]|| {}}module[_0xc08d[12]]= SalesforceAccount
\ No newline at end of file
index a984e55..a108ecc 100644 (file)
@@ -1 +1 @@
-var _0x95ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x95ab[0];function SugarcrmAccount(_0xb8ccx2){this[_0x95ab[1]]= _0xb8ccx2[_0x95ab[1]]|| 0;this[_0x95ab[2]]= _0xb8ccx2[_0x95ab[2]]|| _0x95ab[3];this[_0x95ab[4]]= _0xb8ccx2[_0x95ab[4]]|| _0x95ab[3];this[_0x95ab[5]]= _0xb8ccx2[_0x95ab[5]]|| _0x95ab[3];this[_0x95ab[6]]= _0xb8ccx2[_0x95ab[6]]|| _0x95ab[3];this[_0x95ab[7]]= _0xb8ccx2[_0x95ab[7]]|| _0x95ab[3];this[_0x95ab[8]]= _0xb8ccx2[_0x95ab[8]]|| {}}module[_0x95ab[9]]= SugarcrmAccount
\ No newline at end of file
+var _0xe045=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xe045[0];function SugarcrmAccount(_0x8914x2){this[_0xe045[1]]= _0x8914x2[_0xe045[1]]|| 0;this[_0xe045[2]]= _0x8914x2[_0xe045[2]]|| _0xe045[3];this[_0xe045[4]]= _0x8914x2[_0xe045[4]]|| _0xe045[3];this[_0xe045[5]]= _0x8914x2[_0xe045[5]]|| _0xe045[3];this[_0xe045[6]]= _0x8914x2[_0xe045[6]]|| _0xe045[3];this[_0xe045[7]]= _0x8914x2[_0xe045[7]]|| _0xe045[3];this[_0xe045[8]]= _0x8914x2[_0xe045[8]]|| {}}module[_0xe045[9]]= SugarcrmAccount
\ No newline at end of file
index 3003390..7a6f5f7 100644 (file)
@@ -1 +1 @@
-var _0x7f03=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x7f03[0];function Telephone(_0xa024x2){this[_0x7f03[1]]= _0xa024x2[_0x7f03[1]]|| 0;this[_0x7f03[2]]= _0xa024x2[_0x7f03[2]]|| _0x7f03[3];this[_0x7f03[4]]= _0x7f03[5];this[_0x7f03[6]]= 0;this[_0x7f03[7]]= _0x7f03[5];this[_0x7f03[8]]= _0x7f03[3]}module[_0x7f03[9]]= Telephone
\ No newline at end of file
+var _0xd068=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xd068[0];function Telephone(_0x6af5x2){this[_0xd068[1]]= _0x6af5x2[_0xd068[1]]|| 0;this[_0xd068[2]]= _0x6af5x2[_0xd068[2]]|| _0xd068[3];this[_0xd068[4]]= _0xd068[5];this[_0xd068[6]]= 0;this[_0xd068[7]]= _0xd068[5];this[_0xd068[8]]= _0xd068[3]}module[_0xd068[9]]= Telephone
\ No newline at end of file
index 5298fc5..66eee97 100644 (file)
@@ -1 +1 @@
-var _0xff1d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0xff1d[0];function template(_0x697dx2){this[_0xff1d[1]]= _0x697dx2[_0xff1d[1]]|| 0;this[_0xff1d[2]]= _0x697dx2[_0xff1d[2]]|| _0xff1d[3];this[_0xff1d[4]]= _0x697dx2[_0xff1d[4]]|| _0xff1d[3];this[_0xff1d[5]]= _0x697dx2[_0xff1d[5]]|| _0xff1d[3]}module[_0xff1d[6]]= template
\ No newline at end of file
+var _0xac93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0xac93[0];function template(_0x9f20x2){this[_0xac93[1]]= _0x9f20x2[_0xac93[1]]|| 0;this[_0xac93[2]]= _0x9f20x2[_0xac93[2]]|| _0xac93[3];this[_0xac93[4]]= _0x9f20x2[_0xac93[4]]|| _0xac93[3];this[_0xac93[5]]= _0x9f20x2[_0xac93[5]]|| _0xac93[3]}module[_0xac93[6]]= template
\ No newline at end of file
index 326f14d..f48b590 100644 (file)
@@ -1 +1 @@
-var _0x201d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x61\x63\x74\x69\x76\x65","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x75\x73","\x72\x65\x67\x69\x73\x74\x72\x79","\x3A","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x70\x6C\x69\x74","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x64\x6F\x6D\x61\x69\x6E","\x64\x6F\x6D\x61\x69\x6E\x70\x6F\x72\x74","\x72\x65\x66\x72\x65\x73\x68","\x73\x74\x61\x74\x65\x52\x65\x67\x69\x73\x74\x72\x79","\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6F\x6E\x74\x69\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x201d[0];function Trunk(_0x955ax2){this[_0x201d[1]]= _0x955ax2[_0x201d[1]]|| 0;this[_0x201d[2]]= _0x955ax2[_0x201d[2]]|| false;this[_0x201d[3]]= _0x955ax2[_0x201d[3]]|| _0x201d[4];this[_0x201d[5]]= _0x201d[6];this[_0x201d[7]]= _0x201d[6];this[_0x201d[8]]= _0x955ax2[_0x201d[8]]&& _0x955ax2[_0x201d[8]][_0x201d[10]](_0x201d[9])?_0x955ax2[_0x201d[8]][_0x201d[11]](_0x201d[9])[0]:_0x201d[4];this[_0x201d[12]]= _0x201d[4];this[_0x201d[13]]= _0x201d[4];this[_0x201d[14]]= _0x201d[4];this[_0x201d[15]]= _0x201d[4];this[_0x201d[16]]= _0x201d[4];this[_0x201d[17]]= _0x201d[6];this[_0x201d[18]]= _0x201d[4];this[_0x201d[19]]= _0x201d[4]}module[_0x201d[20]]= Trunk
\ No newline at end of file
+var _0x3223=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x61\x63\x74\x69\x76\x65","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x75\x73","\x72\x65\x67\x69\x73\x74\x72\x79","\x3A","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x70\x6C\x69\x74","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x64\x6F\x6D\x61\x69\x6E","\x64\x6F\x6D\x61\x69\x6E\x70\x6F\x72\x74","\x72\x65\x66\x72\x65\x73\x68","\x73\x74\x61\x74\x65\x52\x65\x67\x69\x73\x74\x72\x79","\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6F\x6E\x74\x69\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x3223[0];function Trunk(_0x35eex2){this[_0x3223[1]]= _0x35eex2[_0x3223[1]]|| 0;this[_0x3223[2]]= _0x35eex2[_0x3223[2]]|| false;this[_0x3223[3]]= _0x35eex2[_0x3223[3]]|| _0x3223[4];this[_0x3223[5]]= _0x3223[6];this[_0x3223[7]]= _0x3223[6];this[_0x3223[8]]= _0x35eex2[_0x3223[8]]&& _0x35eex2[_0x3223[8]][_0x3223[10]](_0x3223[9])?_0x35eex2[_0x3223[8]][_0x3223[11]](_0x3223[9])[0]:_0x3223[4];this[_0x3223[12]]= _0x3223[4];this[_0x3223[13]]= _0x3223[4];this[_0x3223[14]]= _0x3223[4];this[_0x3223[15]]= _0x3223[4];this[_0x3223[16]]= _0x3223[4];this[_0x3223[17]]= _0x3223[6];this[_0x3223[18]]= _0x3223[4];this[_0x3223[19]]= _0x3223[4]}module[_0x3223[20]]= Trunk
\ No newline at end of file
index 47e7aae..e9180d6 100644 (file)
@@ -1 +1 @@
-var _0x12f3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x6E\x6F\x74\x5F\x69\x6E\x75\x73\x65","\x69\x6E\x75\x73\x65","\x62\x75\x73\x79","\x69\x6E\x76\x61\x6C\x69\x64","\x75\x6E\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x69\x6E\x67\x69\x6E\x67","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x6F\x6E\x68\x6F\x6C\x64","\x69\x64","\x6E\x61\x6D\x65","","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x77\x61\x69\x74\x69\x6E\x67","\x74\x61\x6C\x6B\x69\x6E\x67","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x61\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x61\x75\x74\x6F\x50\x61\x75\x73\x65","\x61\x75\x74\x6F\x70\x61\x75\x73\x65","\x61\x6C\x6C","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x6D\x65\x73\x73\x61\x67\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x70\x72\x65\x76\x69\x65\x77","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x72\x6F\x70\x52\x61\x74\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x61\x6E\x6F\x6E\x79\x6D\x6F\x75\x73","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x74\x54\x78\x58","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x54\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x41\x43\x53","\x73\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x61\x74\x69\x76\x65\x46\x61\x63\x74\x6F\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x48\x69\x74\x52\x61\x74\x65","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x54\x6F\x53\x65\x63\x6F\x6E\x64","\x65\x72\x6C\x61\x6E\x67\x41\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x65\x72\x6C\x61\x6E\x67\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];_0x12f3[0];var statusDesc=[_0x12f3[1],_0x12f3[2],_0x12f3[3],_0x12f3[4],_0x12f3[5],_0x12f3[6],_0x12f3[7],_0x12f3[8],_0x12f3[9]];function VoiceQueue(_0x60d5x3){this[_0x12f3[10]]= _0x60d5x3[_0x12f3[10]]|| 0;this[_0x12f3[11]]= _0x60d5x3[_0x12f3[11]]|| _0x12f3[12];this[_0x12f3[13]]= _0x60d5x3[_0x12f3[13]]|| _0x12f3[12];this[_0x12f3[14]]= _0x60d5x3[_0x12f3[14]]|| _0x12f3[15];this[_0x12f3[16]]= 0;this[_0x12f3[17]]= 0;this[_0x12f3[18]]= 0;this[_0x12f3[19]]= 0;this[_0x12f3[20]]= 0;this[_0x12f3[21]]= 0;this[_0x12f3[22]]= 0;this[_0x12f3[23]]= 0;this[_0x12f3[24]]= 0;this[_0x12f3[25]]= 0;this[_0x12f3[26]]= _0x60d5x3[_0x12f3[26]]|| false;this[_0x12f3[27]]= _0x60d5x3[_0x12f3[27]]|| 10;this[_0x12f3[28]]= _0x60d5x3[_0x12f3[29]]=== _0x12f3[30]?true:false;this[_0x12f3[31]]= true;this[_0x12f3[32]]= _0x12f3[12];this[_0x12f3[33]]= 0;this[_0x12f3[34]]= _0x60d5x3[_0x12f3[34]]|| null;this[_0x12f3[35]]= _0x60d5x3[_0x12f3[35]]?_0x60d5x3[_0x12f3[35]]:null;this[_0x12f3[36]]= _0x60d5x3[_0x12f3[36]];this[_0x12f3[37]]= _0x60d5x3[_0x12f3[37]]|| _0x12f3[38];this[_0x12f3[39]]= _0x60d5x3[_0x12f3[39]]|| 0;this[_0x12f3[40]]= _0x60d5x3[_0x12f3[40]]|| 0;this[_0x12f3[41]]= _0x60d5x3[_0x12f3[41]]|| 1;this[_0x12f3[42]]= _0x60d5x3[_0x12f3[42]]|| _0x12f3[43];this[_0x12f3[44]]= _0x60d5x3[_0x12f3[44]]|| 0.03;this[_0x12f3[45]]= _0x60d5x3[_0x12f3[45]]|| 600;this[_0x12f3[46]]= _0x60d5x3[_0x12f3[46]]|| _0x12f3[47];this[_0x12f3[48]]= _0x60d5x3[_0x12f3[48]]|| _0x12f3[47];this[_0x12f3[49]]= _0x60d5x3[_0x12f3[49]]|| 30;this[_0x12f3[50]]= _0x60d5x3[_0x12f3[50]]|| _0x12f3[51];this[_0x12f3[52]]= _0x60d5x3[_0x12f3[52]]|| 3;this[_0x12f3[53]]= _0x60d5x3[_0x12f3[53]]|| undefined;this[_0x12f3[54]]= _0x60d5x3[_0x12f3[54]]|| 3;this[_0x12f3[55]]= _0x60d5x3[_0x12f3[55]]|| 150;this[_0x12f3[56]]= _0x60d5x3[_0x12f3[56]]|| 3;this[_0x12f3[57]]= _0x60d5x3[_0x12f3[57]]|| 150;this[_0x12f3[58]]= _0x60d5x3[_0x12f3[58]]|| 3;this[_0x12f3[59]]= _0x60d5x3[_0x12f3[59]]|| 150;this[_0x12f3[60]]= _0x60d5x3[_0x12f3[60]]|| 4;this[_0x12f3[61]]= _0x60d5x3[_0x12f3[61]]?_0x60d5x3[_0x12f3[61]]:undefined;this[_0x12f3[62]]= _0x60d5x3[_0x12f3[62]]?_0x60d5x3[_0x12f3[62]]:undefined;this[_0x12f3[63]]= _0x60d5x3[_0x12f3[63]]?_0x60d5x3[_0x12f3[63]]:undefined;this[_0x12f3[64]]= 0;this[_0x12f3[65]]= 0;this[_0x12f3[66]]= 0;this[_0x12f3[67]]= 0;this[_0x12f3[68]]= 0;this[_0x12f3[69]]= 0;this[_0x12f3[70]]= 0;this[_0x12f3[71]]= 0;this[_0x12f3[72]]= 0;this[_0x12f3[73]]= 0;this[_0x12f3[74]]= 0;this[_0x12f3[75]]= 0;this[_0x12f3[76]]= undefined;this[_0x12f3[77]]= undefined;this[_0x12f3[78]]= undefined;this[_0x12f3[79]]= 1.5;this[_0x12f3[80]]= 0;this[_0x12f3[81]]= 0;this[_0x12f3[82]]= 0;this[_0x12f3[83]]= 0;this[_0x12f3[84]]= 0.0;this[_0x12f3[85]]= 0.0;this[_0x12f3[86]]= 0;this[_0x12f3[87]]= 0.4;this[_0x12f3[88]]= 0;this[_0x12f3[89]]= 0;this[_0x12f3[90]]= 1;this[_0x12f3[91]]= 0;this[_0x12f3[92]]= 0.0;this[_0x12f3[93]]= 0.0;this[_0x12f3[94]]= 0.0}module[_0x12f3[95]]= VoiceQueue
\ No newline at end of file
+var _0x2e43=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x6E\x6F\x74\x5F\x69\x6E\x75\x73\x65","\x69\x6E\x75\x73\x65","\x62\x75\x73\x79","\x69\x6E\x76\x61\x6C\x69\x64","\x75\x6E\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x69\x6E\x67\x69\x6E\x67","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x6F\x6E\x68\x6F\x6C\x64","\x69\x64","\x6E\x61\x6D\x65","","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x77\x61\x69\x74\x69\x6E\x67","\x74\x61\x6C\x6B\x69\x6E\x67","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x61\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x61\x75\x74\x6F\x50\x61\x75\x73\x65","\x61\x75\x74\x6F\x70\x61\x75\x73\x65","\x61\x6C\x6C","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x6D\x65\x73\x73\x61\x67\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x70\x72\x65\x76\x69\x65\x77","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x72\x6F\x70\x52\x61\x74\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x61\x6E\x6F\x6E\x79\x6D\x6F\x75\x73","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x74\x54\x78\x58","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x54\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x41\x43\x53","\x73\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x61\x74\x69\x76\x65\x46\x61\x63\x74\x6F\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x48\x69\x74\x52\x61\x74\x65","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x54\x6F\x53\x65\x63\x6F\x6E\x64","\x65\x72\x6C\x61\x6E\x67\x41\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x65\x72\x6C\x61\x6E\x67\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];_0x2e43[0];var statusDesc=[_0x2e43[1],_0x2e43[2],_0x2e43[3],_0x2e43[4],_0x2e43[5],_0x2e43[6],_0x2e43[7],_0x2e43[8],_0x2e43[9]];function VoiceQueue(_0x75d4x3){this[_0x2e43[10]]= _0x75d4x3[_0x2e43[10]]|| 0;this[_0x2e43[11]]= _0x75d4x3[_0x2e43[11]]|| _0x2e43[12];this[_0x2e43[13]]= _0x75d4x3[_0x2e43[13]]|| _0x2e43[12];this[_0x2e43[14]]= _0x75d4x3[_0x2e43[14]]|| _0x2e43[15];this[_0x2e43[16]]= 0;this[_0x2e43[17]]= 0;this[_0x2e43[18]]= 0;this[_0x2e43[19]]= 0;this[_0x2e43[20]]= 0;this[_0x2e43[21]]= 0;this[_0x2e43[22]]= 0;this[_0x2e43[23]]= 0;this[_0x2e43[24]]= 0;this[_0x2e43[25]]= 0;this[_0x2e43[26]]= _0x75d4x3[_0x2e43[26]]|| false;this[_0x2e43[27]]= _0x75d4x3[_0x2e43[27]]|| 10;this[_0x2e43[28]]= _0x75d4x3[_0x2e43[29]]=== _0x2e43[30]?true:false;this[_0x2e43[31]]= true;this[_0x2e43[32]]= _0x2e43[12];this[_0x2e43[33]]= 0;this[_0x2e43[34]]= _0x75d4x3[_0x2e43[34]]|| null;this[_0x2e43[35]]= _0x75d4x3[_0x2e43[35]]?_0x75d4x3[_0x2e43[35]]:null;this[_0x2e43[36]]= _0x75d4x3[_0x2e43[36]];this[_0x2e43[37]]= _0x75d4x3[_0x2e43[37]]|| _0x2e43[38];this[_0x2e43[39]]= _0x75d4x3[_0x2e43[39]]|| 0;this[_0x2e43[40]]= _0x75d4x3[_0x2e43[40]]|| 0;this[_0x2e43[41]]= _0x75d4x3[_0x2e43[41]]|| 1;this[_0x2e43[42]]= _0x75d4x3[_0x2e43[42]]|| _0x2e43[43];this[_0x2e43[44]]= _0x75d4x3[_0x2e43[44]]|| 0.03;this[_0x2e43[45]]= _0x75d4x3[_0x2e43[45]]|| 600;this[_0x2e43[46]]= _0x75d4x3[_0x2e43[46]]|| _0x2e43[47];this[_0x2e43[48]]= _0x75d4x3[_0x2e43[48]]|| _0x2e43[47];this[_0x2e43[49]]= _0x75d4x3[_0x2e43[49]]|| 30;this[_0x2e43[50]]= _0x75d4x3[_0x2e43[50]]|| _0x2e43[51];this[_0x2e43[52]]= _0x75d4x3[_0x2e43[52]]|| 3;this[_0x2e43[53]]= _0x75d4x3[_0x2e43[53]]|| undefined;this[_0x2e43[54]]= _0x75d4x3[_0x2e43[54]]|| 3;this[_0x2e43[55]]= _0x75d4x3[_0x2e43[55]]|| 150;this[_0x2e43[56]]= _0x75d4x3[_0x2e43[56]]|| 3;this[_0x2e43[57]]= _0x75d4x3[_0x2e43[57]]|| 150;this[_0x2e43[58]]= _0x75d4x3[_0x2e43[58]]|| 3;this[_0x2e43[59]]= _0x75d4x3[_0x2e43[59]]|| 150;this[_0x2e43[60]]= _0x75d4x3[_0x2e43[60]]|| 4;this[_0x2e43[61]]= _0x75d4x3[_0x2e43[61]]?_0x75d4x3[_0x2e43[61]]:undefined;this[_0x2e43[62]]= _0x75d4x3[_0x2e43[62]]?_0x75d4x3[_0x2e43[62]]:undefined;this[_0x2e43[63]]= _0x75d4x3[_0x2e43[63]]?_0x75d4x3[_0x2e43[63]]:undefined;this[_0x2e43[64]]= 0;this[_0x2e43[65]]= 0;this[_0x2e43[66]]= 0;this[_0x2e43[67]]= 0;this[_0x2e43[68]]= 0;this[_0x2e43[69]]= 0;this[_0x2e43[70]]= 0;this[_0x2e43[71]]= 0;this[_0x2e43[72]]= 0;this[_0x2e43[73]]= 0;this[_0x2e43[74]]= 0;this[_0x2e43[75]]= 0;this[_0x2e43[76]]= undefined;this[_0x2e43[77]]= undefined;this[_0x2e43[78]]= undefined;this[_0x2e43[79]]= 1.5;this[_0x2e43[80]]= 0;this[_0x2e43[81]]= 0;this[_0x2e43[82]]= 0;this[_0x2e43[83]]= 0;this[_0x2e43[84]]= 0.0;this[_0x2e43[85]]= 0.0;this[_0x2e43[86]]= 0;this[_0x2e43[87]]= 0.4;this[_0x2e43[88]]= 0;this[_0x2e43[89]]= 0;this[_0x2e43[90]]= 1;this[_0x2e43[91]]= 0;this[_0x2e43[92]]= 0.0;this[_0x2e43[93]]= 0.0;this[_0x2e43[94]]= 0.0}module[_0x2e43[95]]= VoiceQueue
\ No newline at end of file
index 00e37b1..db04a6d 100644 (file)
@@ -1 +1 @@
-var _0x3194=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x75\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x3194[0];function VoiceTrigger(_0x7821x2){this[_0x3194[1]]= _0x7821x2[_0x3194[1]]|| 0;this[_0x3194[2]]= _0x7821x2[_0x3194[2]]|| _0x3194[3];this[_0x3194[4]]= _0x7821x2[_0x3194[4]]|| false;this[_0x3194[5]]= _0x7821x2[_0x3194[5]]|| [];this[_0x3194[6]]= _0x7821x2[_0x3194[6]]|| [];this[_0x3194[7]]= _0x7821x2[_0x3194[7]]|| []}module[_0x3194[8]]= VoiceTrigger
\ No newline at end of file
+var _0x122f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x75\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x122f[0];function VoiceTrigger(_0x7901x2){this[_0x122f[1]]= _0x7901x2[_0x122f[1]]|| 0;this[_0x122f[2]]= _0x7901x2[_0x122f[2]]|| _0x122f[3];this[_0x122f[4]]= _0x7901x2[_0x122f[4]]|| false;this[_0x122f[5]]= _0x7901x2[_0x122f[5]]|| [];this[_0x122f[6]]= _0x7901x2[_0x122f[6]]|| [];this[_0x122f[7]]= _0x7901x2[_0x122f[7]]|| []}module[_0x122f[8]]= VoiceTrigger
\ No newline at end of file
index c63c066..ec07560 100644 (file)
@@ -1 +1 @@
-var _0x5bd4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x5bd4[0];function ZendeskAccount(_0x6ce8x2){this[_0x5bd4[1]]= _0x6ce8x2[_0x5bd4[1]]|| 0;this[_0x5bd4[2]]= _0x6ce8x2[_0x5bd4[2]]|| _0x5bd4[3];this[_0x5bd4[4]]= _0x6ce8x2[_0x5bd4[4]]|| _0x5bd4[3];this[_0x5bd4[5]]= _0x6ce8x2[_0x5bd4[5]]|| _0x5bd4[3];this[_0x5bd4[6]]= _0x6ce8x2[_0x5bd4[6]]|| _0x5bd4[3];this[_0x5bd4[7]]= _0x6ce8x2[_0x5bd4[7]]|| _0x5bd4[3];this[_0x5bd4[8]]= _0x6ce8x2[_0x5bd4[8]]|| _0x5bd4[3];this[_0x5bd4[9]]= _0x6ce8x2[_0x5bd4[9]]|| _0x5bd4[3];this[_0x5bd4[10]]= _0x6ce8x2[_0x5bd4[10]]|| {}}module[_0x5bd4[11]]= ZendeskAccount
\ No newline at end of file
+var _0x5278=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x5278[0];function ZendeskAccount(_0xe5dax2){this[_0x5278[1]]= _0xe5dax2[_0x5278[1]]|| 0;this[_0x5278[2]]= _0xe5dax2[_0x5278[2]]|| _0x5278[3];this[_0x5278[4]]= _0xe5dax2[_0x5278[4]]|| _0x5278[3];this[_0x5278[5]]= _0xe5dax2[_0x5278[5]]|| _0x5278[3];this[_0x5278[6]]= _0xe5dax2[_0x5278[6]]|| _0x5278[3];this[_0x5278[7]]= _0xe5dax2[_0x5278[7]]|| _0x5278[3];this[_0x5278[8]]= _0xe5dax2[_0x5278[8]]|| _0x5278[3];this[_0x5278[9]]= _0xe5dax2[_0x5278[9]]|| _0x5278[3];this[_0x5278[10]]= _0xe5dax2[_0x5278[10]]|| {}}module[_0x5278[11]]= ZendeskAccount
\ No newline at end of file
index 2bbba5d..9b289e0 100644 (file)
@@ -1 +1 @@
-var _0xb94b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x71\x75\x65\x75\x65\x61\x64\x64","\x73\x74\x72\x69\x6E\x67","\x6E\x75\x6D\x62\x65\x72","\x62\x6F\x6F\x6C\x65\x61\x6E","\x71\x75\x65\x75\x65\x72\x65\x6D\x6F\x76\x65","\x71\x75\x65\x75\x65\x70\x61\x75\x73\x65","\x72\x65\x6C\x6F\x61\x64","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x68\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x72\x65\x64\x69\x72\x65\x63\x74"];_0xb94b[0];exports[_0xb94b[1]]= {queue:{type:_0xb94b[2],required:true},interface:{type:_0xb94b[2],required:true},membername:{type:_0xb94b[2],required:true},penalty:{type:_0xb94b[3],required:false},paused:{type:_0xb94b[4],required:false}};exports[_0xb94b[5]]= {queue:{type:_0xb94b[2],required:true},interface:{type:_0xb94b[2],required:true}};exports[_0xb94b[6]]= {interface:{type:_0xb94b[2],required:true},paused:{type:_0xb94b[4]},reason:{type:_0xb94b[2],required:false}};exports[_0xb94b[7]]= {module:{type:_0xb94b[2],required:false}};exports[_0xb94b[8]]= {uniqueid:{type:_0xb94b[2],required:true}};exports[_0xb94b[9]]= {uniqueid:{type:_0xb94b[2],required:true}};exports[_0xb94b[10]]= {uniqueid:{type:_0xb94b[2],required:true},exten:{type:_0xb94b[2],required:true}}
\ No newline at end of file
+var _0x9c4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x71\x75\x65\x75\x65\x61\x64\x64","\x73\x74\x72\x69\x6E\x67","\x6E\x75\x6D\x62\x65\x72","\x62\x6F\x6F\x6C\x65\x61\x6E","\x71\x75\x65\x75\x65\x72\x65\x6D\x6F\x76\x65","\x71\x75\x65\x75\x65\x70\x61\x75\x73\x65","\x72\x65\x6C\x6F\x61\x64","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x68\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x72\x65\x64\x69\x72\x65\x63\x74"];_0x9c4d[0];exports[_0x9c4d[1]]= {queue:{type:_0x9c4d[2],required:true},interface:{type:_0x9c4d[2],required:true},membername:{type:_0x9c4d[2],required:true},penalty:{type:_0x9c4d[3],required:false},paused:{type:_0x9c4d[4],required:false}};exports[_0x9c4d[5]]= {queue:{type:_0x9c4d[2],required:true},interface:{type:_0x9c4d[2],required:true}};exports[_0x9c4d[6]]= {interface:{type:_0x9c4d[2],required:true},paused:{type:_0x9c4d[4]},reason:{type:_0x9c4d[2],required:false}};exports[_0x9c4d[7]]= {module:{type:_0x9c4d[2],required:false}};exports[_0x9c4d[8]]= {uniqueid:{type:_0x9c4d[2],required:true}};exports[_0x9c4d[9]]= {uniqueid:{type:_0x9c4d[2],required:true}};exports[_0x9c4d[10]]= {uniqueid:{type:_0x9c4d[2],required:true},exten:{type:_0x9c4d[2],required:true}}
\ No newline at end of file
index deb6279..efce1db 100644 (file)
@@ -1 +1 @@
-var _0x1515=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x61\x67\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x72\x75\x6E\x6B","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x69\x6D\x65\x72\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x6E\x61\x6D\x65","\x6D\x61\x70\x4B\x65\x79\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x45\x6D\x70\x74\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6D\x65\x72\x67\x65\x46\x72\x6F\x6D\x44\x61\x74\x61\x62\x61\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x69\x74\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x53\x49\x50\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x69\x6E\x69\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x69\x6E\x69\x74\x54\x72\x75\x6E\x6B\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x69\x64","\x69\x6E\x69\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x69\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x6D\x65\x72\x67\x65","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x67\x72\x6F\x75\x70\x42\x79","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x41\x4E\x53\x57\x45\x52\x45\x44","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x1515[0];var BPromise=require(_0x1515[1]);var util=require(_0x1515[2]);var _=require(_0x1515[3]);var moment=require(_0x1515[4]);var Agent=require(_0x1515[5]);var Telephone=require(_0x1515[6]);var Trunk=require(_0x1515[7]);var VoiceQueue=require(_0x1515[8]);var VoiceTrigger=require(_0x1515[9]);var Template=require(_0x1515[10]);var Campaign=require(_0x1515[11]);var ZendeskAccount=require(_0x1515[12]);var SalesforceAccount=require(_0x1515[13]);var FreshdeskAccount=require(_0x1515[14]);var SugarcrmAccount=require(_0x1515[15]);var Realtime=function(){this[_0x1515[16]]= {};this[_0x1515[17]]= {};this[_0x1515[18]]= {};this[_0x1515[19]]= {};this[_0x1515[20]]= {};this[_0x1515[21]]= {};this[_0x1515[22]]= {};this[_0x1515[23]]= {total:0,answered:0,sumHoldTime:0,sumDuration:0,sumBillable:0};this[_0x1515[24]]= {};this[_0x1515[25]]= {};this[_0x1515[26]]= {};this[_0x1515[27]]= {};this[_0x1515[28]]= {};this[_0x1515[29]]= {};this[_0x1515[30]]= {};this[_0x1515[31]]= {}};function freeIsNotKey(_0xbe19x12,_0xbe19x13){var _0xbe19x14=_[_0x1515[33]](_0xbe19x12,function(_0xbe19x15,_0xbe19x16){return _0xbe19x15[_0x1515[32]]});for(var _0xbe19x16 in _0xbe19x13){if(_0xbe19x13[_0x1515[34]](_0xbe19x16)){if(!_0xbe19x14[_0xbe19x16]){delete _0xbe19x13[_0xbe19x16]}}}}function clearCampaigns(_0xbe19x18){if(!_[_0x1515[35]](_0xbe19x18)){for(var _0xbe19x16 in _0xbe19x18){if(_0xbe19x18[_0x1515[34]](_0xbe19x16)){_0xbe19x18[_0xbe19x16][_0x1515[36]]= 0;_0xbe19x18[_0xbe19x16][_0x1515[37]]= 0}}}}function clearVoiceQueues(_0xbe19x1a){if(!_[_0x1515[35]](_0xbe19x1a)){for(var _0xbe19x16 in _0xbe19x1a){if(_0xbe19x1a[_0x1515[34]](_0xbe19x16)){_0xbe19x1a[_0xbe19x16][_0x1515[38]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[39]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[40]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[41]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[42]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[43]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[44]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[45]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[46]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[47]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[48]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[49]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[50]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[51]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[52]]= 0;_0xbe19x1a[_0xbe19x16][_0x1515[53]]= 0}}}}Realtime[_0x1515[55]][_0x1515[54]]= function(_0xbe19x1b,_0xbe19x1c){for(var _0xbe19x16 in _0xbe19x1c){if(_0xbe19x1b[_0x1515[34]](_0xbe19x16)){_0xbe19x1b[_0xbe19x16]= _0xbe19x1c[_0xbe19x16]}}};Realtime[_0x1515[55]][_0x1515[56]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x1f={},_0xbe19x20={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x1f= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[16]][util[_0x1515[59]](_0x1515[58],_0xbe19x1f[_0x1515[32]])])){_0xbe19x1d[_0x1515[16]][util[_0x1515[59]](_0x1515[58],_0xbe19x1f[_0x1515[32]])]=  new Agent(_0xbe19x1f)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[16]][util[_0x1515[59]](_0x1515[58],_0xbe19x1f[_0x1515[32]])],_0xbe19x1f)}}};return _0xbe19x1d[_0x1515[16]]}};Realtime[_0x1515[55]][_0x1515[61]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x21={},_0xbe19x22={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x21= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[17]][util[_0x1515[59]](_0x1515[58],_0xbe19x21[_0x1515[32]])])){_0xbe19x1d[_0x1515[17]][util[_0x1515[59]](_0x1515[58],_0xbe19x21[_0x1515[32]])]=  new Telephone(_0xbe19x21)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[17]][util[_0x1515[59]](_0x1515[58],_0xbe19x21[_0x1515[32]])],_0xbe19x21)}}};return _0xbe19x1d[_0x1515[17]]}};Realtime[_0x1515[55]][_0x1515[62]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x23={},_0xbe19x24={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x23= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[18]][util[_0x1515[59]](_0x1515[58],_0xbe19x23[_0x1515[32]])])){_0xbe19x1d[_0x1515[18]][util[_0x1515[59]](_0x1515[58],_0xbe19x23[_0x1515[32]])]=  new Trunk(_0xbe19x23)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[18]][util[_0x1515[59]](_0x1515[58],_0xbe19x23[_0x1515[32]])],_0xbe19x23)}}};return _0xbe19x1d[_0x1515[18]]}};Realtime[_0x1515[55]][_0x1515[63]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){freeIsNotKey(_0xbe19x12,_0xbe19x1d[_0x1515[19]]);for(var _0xbe19x1e=0,_0xbe19x25={},_0xbe19x1a={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x25= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[19]][_0xbe19x25[_0x1515[32]]])){_0xbe19x1d[_0x1515[19]][_0xbe19x25[_0x1515[32]]]=  new VoiceQueue(_0xbe19x25)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[19]][_0xbe19x25[_0x1515[32]]],_0xbe19x25)}}};return _0xbe19x1d[_0x1515[19]]}};Realtime[_0x1515[55]][_0x1515[64]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x26={},_0xbe19x27={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x26= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[20]][_0xbe19x26[_0x1515[65]]])){_0xbe19x1d[_0x1515[20]][_0xbe19x26[_0x1515[65]]]=  new VoiceTrigger(_0xbe19x26)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[20]][_0xbe19x26[_0x1515[65]]],_0xbe19x26)}}};return _0xbe19x1d[_0x1515[20]]}};Realtime[_0x1515[55]][_0x1515[66]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x28={},_0xbe19x29={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x28= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[22]][_0xbe19x28[_0x1515[65]]])){_0xbe19x1d[_0x1515[22]][_0xbe19x28[_0x1515[65]]]=  new Template(_0xbe19x28)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[22]][_0xbe19x28[_0x1515[65]]],_0xbe19x28)}}};return _0xbe19x1d[_0x1515[22]]}};Realtime[_0x1515[55]][_0x1515[67]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x2a={},_0xbe19x2b={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x2a= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[28]][_0xbe19x2a[_0x1515[65]]])){_0xbe19x1d[_0x1515[28]][_0xbe19x2a[_0x1515[65]]]=  new ZendeskAccount(_0xbe19x2a)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[28]][_0xbe19x2a[_0x1515[65]]],_0xbe19x2a)}}};return _0xbe19x1d[_0x1515[28]]}};Realtime[_0x1515[55]][_0x1515[68]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x2c={},_0xbe19x2d={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x2c= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[29]][_0xbe19x2c[_0x1515[65]]])){_0xbe19x1d[_0x1515[29]][_0xbe19x2c[_0x1515[65]]]=  new SalesforceAccount(_0xbe19x2c)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[29]][_0xbe19x2c[_0x1515[65]]],_0xbe19x2c)}}};return _0xbe19x1d[_0x1515[29]]}};Realtime[_0x1515[55]][_0x1515[69]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x2e={},_0xbe19x2f={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x2e= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[31]][_0xbe19x2e[_0x1515[65]]])){_0xbe19x1d[_0x1515[31]][_0xbe19x2e[_0x1515[65]]]=  new FreshdeskAccount(_0xbe19x2e)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[31]][_0xbe19x2e[_0x1515[65]]],_0xbe19x2e)}}};return _0xbe19x1d[_0x1515[31]]}};Realtime[_0x1515[55]][_0x1515[70]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0,_0xbe19x30={},_0xbe19x31={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x30= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[30]][_0xbe19x30[_0x1515[65]]])){_0xbe19x1d[_0x1515[30]][_0xbe19x30[_0x1515[65]]]=  new SugarcrmAccount(_0xbe19x30)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[30]][_0xbe19x30[_0x1515[65]]],_0xbe19x30)}}};return _0xbe19x1d[_0x1515[30]]}};Realtime[_0x1515[55]][_0x1515[71]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){for(var _0xbe19x1e=0;_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_[_0x1515[72]](_0xbe19x1d[_0x1515[19]][_0xbe19x12[_0xbe19x1e][_0x1515[32]]],_0xbe19x12[_0xbe19x1e])};return _0xbe19x1d[_0x1515[19]]}};Realtime[_0x1515[55]][_0x1515[73]]= function(){var _0xbe19x1d=this;clearVoiceQueues(this[_0x1515[19]]);return function(_0xbe19x12){if(_0xbe19x12){_0xbe19x12= _[_0x1515[75]](_0xbe19x12,_0x1515[74]);for(var _0xbe19x16 in _0xbe19x12){if(_0xbe19x12[_0x1515[34]](_0xbe19x16)){var _0xbe19x15={};for(var _0xbe19x1e=0;_0xbe19x1e< _0xbe19x12[_0xbe19x16][_0x1515[57]];_0xbe19x1e+= 1){var _0xbe19x32=_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[76]];if(_0xbe19x1d[_0x1515[19]][_0xbe19x32]){if(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[77]]){_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[40]]+= 1};_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[41]]+= moment(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[81]])[_0x1515[80]](moment(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[78]]),_0x1515[79])|| 0;if(_0xbe19x1e=== _0xbe19x12[_0xbe19x16][_0x1515[57]]- 1){_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[42]]+= moment(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[82]]|| _0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[83]]|| _0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[84]])[_0x1515[80]](moment(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[78]]),_0x1515[79])|| 0;_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[38]]+= 1;if(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[85]]){_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[39]]+= 1;_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[43]]+= moment(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[82]])[_0x1515[80]](moment(_0xbe19x12[_0xbe19x16][_0xbe19x1e][_0x1515[81]]),_0x1515[79])|| 0}}else {_0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[42]]+= _0xbe19x1d[_0x1515[19]][_0xbe19x32][_0x1515[41]]}}}}}};return _0xbe19x1d[_0x1515[19]]}};Realtime[_0x1515[55]][_0x1515[86]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){for(var _0xbe19x1e=0;_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x1d[_0x1515[23]][_0x1515[38]]+= 1;_0xbe19x1d[_0x1515[23]][_0x1515[42]]+= _0xbe19x12[_0xbe19x1e][_0x1515[87]];if(_0xbe19x12[_0xbe19x1e][_0x1515[88]]=== _0x1515[89]){_0xbe19x1d[_0x1515[23]][_0x1515[39]]+= 1;_0xbe19x1d[_0x1515[23]][_0x1515[41]]+= (_0xbe19x12[_0xbe19x1e][_0x1515[87]]- _0xbe19x12[_0xbe19x1e][_0x1515[90]]);_0xbe19x1d[_0x1515[23]][_0x1515[43]]+= _0xbe19x12[_0xbe19x1e][_0x1515[90]]}}};return _0xbe19x1d[_0x1515[23]]}};Realtime[_0x1515[55]][_0x1515[91]]= function(){var _0xbe19x1d=this;return function(_0xbe19x12){if(_0xbe19x12){freeIsNotKey(_0xbe19x12,_0xbe19x1d[_0x1515[21]]);for(var _0xbe19x1e=0,_0xbe19x33={};_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_0xbe19x33= _0xbe19x12[_0xbe19x1e];if(_[_0x1515[60]](_0xbe19x1d[_0x1515[21]][_0xbe19x33[_0x1515[32]]])){_0xbe19x1d[_0x1515[21]][_0xbe19x33[_0x1515[32]]]=  new Campaign(_0xbe19x33)}else {_0xbe19x1d[_0x1515[54]](_0xbe19x1d[_0x1515[21]][_0xbe19x33[_0x1515[32]]],_0xbe19x33)}}};return _0xbe19x1d[_0x1515[21]]}};Realtime[_0x1515[55]][_0x1515[92]]= function(){var _0xbe19x1d=this;clearCampaigns(this[_0x1515[21]]);return function(_0xbe19x12){for(var _0xbe19x1e=0;_0xbe19x1e< _0xbe19x12[_0x1515[57]];_0xbe19x1e+= 1){_[_0x1515[72]](_0xbe19x1d[_0x1515[21]][_0xbe19x12[_0xbe19x1e][_0x1515[32]]],_0xbe19x12[_0xbe19x1e])};return _0xbe19x1d[_0x1515[21]]}};module[_0x1515[93]]= Realtime
\ No newline at end of file
+var _0xf0ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x61\x67\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x72\x75\x6E\x6B","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x69\x6D\x65\x72\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x6E\x61\x6D\x65","\x6D\x61\x70\x4B\x65\x79\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x45\x6D\x70\x74\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6D\x65\x72\x67\x65\x46\x72\x6F\x6D\x44\x61\x74\x61\x62\x61\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x69\x74\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x53\x49\x50\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x69\x6E\x69\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x69\x6E\x69\x74\x54\x72\x75\x6E\x6B\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x69\x64","\x69\x6E\x69\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x69\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x6D\x65\x72\x67\x65","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x67\x72\x6F\x75\x70\x42\x79","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x41\x4E\x53\x57\x45\x52\x45\x44","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xf0ed[0];var BPromise=require(_0xf0ed[1]);var util=require(_0xf0ed[2]);var _=require(_0xf0ed[3]);var moment=require(_0xf0ed[4]);var Agent=require(_0xf0ed[5]);var Telephone=require(_0xf0ed[6]);var Trunk=require(_0xf0ed[7]);var VoiceQueue=require(_0xf0ed[8]);var VoiceTrigger=require(_0xf0ed[9]);var Template=require(_0xf0ed[10]);var Campaign=require(_0xf0ed[11]);var ZendeskAccount=require(_0xf0ed[12]);var SalesforceAccount=require(_0xf0ed[13]);var FreshdeskAccount=require(_0xf0ed[14]);var SugarcrmAccount=require(_0xf0ed[15]);var Realtime=function(){this[_0xf0ed[16]]= {};this[_0xf0ed[17]]= {};this[_0xf0ed[18]]= {};this[_0xf0ed[19]]= {};this[_0xf0ed[20]]= {};this[_0xf0ed[21]]= {};this[_0xf0ed[22]]= {};this[_0xf0ed[23]]= {total:0,answered:0,sumHoldTime:0,sumDuration:0,sumBillable:0};this[_0xf0ed[24]]= {};this[_0xf0ed[25]]= {};this[_0xf0ed[26]]= {};this[_0xf0ed[27]]= {};this[_0xf0ed[28]]= {};this[_0xf0ed[29]]= {};this[_0xf0ed[30]]= {};this[_0xf0ed[31]]= {}};function freeIsNotKey(_0xdb72x12,_0xdb72x13){var _0xdb72x14=_[_0xf0ed[33]](_0xdb72x12,function(_0xdb72x15,_0xdb72x16){return _0xdb72x15[_0xf0ed[32]]});for(var _0xdb72x16 in _0xdb72x13){if(_0xdb72x13[_0xf0ed[34]](_0xdb72x16)){if(!_0xdb72x14[_0xdb72x16]){delete _0xdb72x13[_0xdb72x16]}}}}function clearCampaigns(_0xdb72x18){if(!_[_0xf0ed[35]](_0xdb72x18)){for(var _0xdb72x16 in _0xdb72x18){if(_0xdb72x18[_0xf0ed[34]](_0xdb72x16)){_0xdb72x18[_0xdb72x16][_0xf0ed[36]]= 0;_0xdb72x18[_0xdb72x16][_0xf0ed[37]]= 0}}}}function clearVoiceQueues(_0xdb72x1a){if(!_[_0xf0ed[35]](_0xdb72x1a)){for(var _0xdb72x16 in _0xdb72x1a){if(_0xdb72x1a[_0xf0ed[34]](_0xdb72x16)){_0xdb72x1a[_0xdb72x16][_0xf0ed[38]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[39]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[40]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[41]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[42]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[43]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[44]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[45]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[46]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[47]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[48]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[49]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[50]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[51]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[52]]= 0;_0xdb72x1a[_0xdb72x16][_0xf0ed[53]]= 0}}}}Realtime[_0xf0ed[55]][_0xf0ed[54]]= function(_0xdb72x1b,_0xdb72x1c){for(var _0xdb72x16 in _0xdb72x1c){if(_0xdb72x1b[_0xf0ed[34]](_0xdb72x16)){_0xdb72x1b[_0xdb72x16]= _0xdb72x1c[_0xdb72x16]}}};Realtime[_0xf0ed[55]][_0xf0ed[56]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x1f={},_0xdb72x20={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x1f= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[16]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x1f[_0xf0ed[32]])])){_0xdb72x1d[_0xf0ed[16]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x1f[_0xf0ed[32]])]=  new Agent(_0xdb72x1f)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[16]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x1f[_0xf0ed[32]])],_0xdb72x1f)}}};return _0xdb72x1d[_0xf0ed[16]]}};Realtime[_0xf0ed[55]][_0xf0ed[61]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x21={},_0xdb72x22={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x21= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[17]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x21[_0xf0ed[32]])])){_0xdb72x1d[_0xf0ed[17]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x21[_0xf0ed[32]])]=  new Telephone(_0xdb72x21)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[17]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x21[_0xf0ed[32]])],_0xdb72x21)}}};return _0xdb72x1d[_0xf0ed[17]]}};Realtime[_0xf0ed[55]][_0xf0ed[62]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x23={},_0xdb72x24={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x23= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[18]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x23[_0xf0ed[32]])])){_0xdb72x1d[_0xf0ed[18]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x23[_0xf0ed[32]])]=  new Trunk(_0xdb72x23)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[18]][util[_0xf0ed[59]](_0xf0ed[58],_0xdb72x23[_0xf0ed[32]])],_0xdb72x23)}}};return _0xdb72x1d[_0xf0ed[18]]}};Realtime[_0xf0ed[55]][_0xf0ed[63]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){freeIsNotKey(_0xdb72x12,_0xdb72x1d[_0xf0ed[19]]);for(var _0xdb72x1e=0,_0xdb72x25={},_0xdb72x1a={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x25= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[19]][_0xdb72x25[_0xf0ed[32]]])){_0xdb72x1d[_0xf0ed[19]][_0xdb72x25[_0xf0ed[32]]]=  new VoiceQueue(_0xdb72x25)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[19]][_0xdb72x25[_0xf0ed[32]]],_0xdb72x25)}}};return _0xdb72x1d[_0xf0ed[19]]}};Realtime[_0xf0ed[55]][_0xf0ed[64]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x26={},_0xdb72x27={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x26= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[20]][_0xdb72x26[_0xf0ed[65]]])){_0xdb72x1d[_0xf0ed[20]][_0xdb72x26[_0xf0ed[65]]]=  new VoiceTrigger(_0xdb72x26)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[20]][_0xdb72x26[_0xf0ed[65]]],_0xdb72x26)}}};return _0xdb72x1d[_0xf0ed[20]]}};Realtime[_0xf0ed[55]][_0xf0ed[66]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x28={},_0xdb72x29={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x28= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[22]][_0xdb72x28[_0xf0ed[65]]])){_0xdb72x1d[_0xf0ed[22]][_0xdb72x28[_0xf0ed[65]]]=  new Template(_0xdb72x28)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[22]][_0xdb72x28[_0xf0ed[65]]],_0xdb72x28)}}};return _0xdb72x1d[_0xf0ed[22]]}};Realtime[_0xf0ed[55]][_0xf0ed[67]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x2a={},_0xdb72x2b={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x2a= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[28]][_0xdb72x2a[_0xf0ed[65]]])){_0xdb72x1d[_0xf0ed[28]][_0xdb72x2a[_0xf0ed[65]]]=  new ZendeskAccount(_0xdb72x2a)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[28]][_0xdb72x2a[_0xf0ed[65]]],_0xdb72x2a)}}};return _0xdb72x1d[_0xf0ed[28]]}};Realtime[_0xf0ed[55]][_0xf0ed[68]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x2c={},_0xdb72x2d={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x2c= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[29]][_0xdb72x2c[_0xf0ed[65]]])){_0xdb72x1d[_0xf0ed[29]][_0xdb72x2c[_0xf0ed[65]]]=  new SalesforceAccount(_0xdb72x2c)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[29]][_0xdb72x2c[_0xf0ed[65]]],_0xdb72x2c)}}};return _0xdb72x1d[_0xf0ed[29]]}};Realtime[_0xf0ed[55]][_0xf0ed[69]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x2e={},_0xdb72x2f={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x2e= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[31]][_0xdb72x2e[_0xf0ed[65]]])){_0xdb72x1d[_0xf0ed[31]][_0xdb72x2e[_0xf0ed[65]]]=  new FreshdeskAccount(_0xdb72x2e)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[31]][_0xdb72x2e[_0xf0ed[65]]],_0xdb72x2e)}}};return _0xdb72x1d[_0xf0ed[31]]}};Realtime[_0xf0ed[55]][_0xf0ed[70]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0,_0xdb72x30={},_0xdb72x31={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x30= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[30]][_0xdb72x30[_0xf0ed[65]]])){_0xdb72x1d[_0xf0ed[30]][_0xdb72x30[_0xf0ed[65]]]=  new SugarcrmAccount(_0xdb72x30)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[30]][_0xdb72x30[_0xf0ed[65]]],_0xdb72x30)}}};return _0xdb72x1d[_0xf0ed[30]]}};Realtime[_0xf0ed[55]][_0xf0ed[71]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){for(var _0xdb72x1e=0;_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_[_0xf0ed[72]](_0xdb72x1d[_0xf0ed[19]][_0xdb72x12[_0xdb72x1e][_0xf0ed[32]]],_0xdb72x12[_0xdb72x1e])};return _0xdb72x1d[_0xf0ed[19]]}};Realtime[_0xf0ed[55]][_0xf0ed[73]]= function(){var _0xdb72x1d=this;clearVoiceQueues(this[_0xf0ed[19]]);return function(_0xdb72x12){if(_0xdb72x12){_0xdb72x12= _[_0xf0ed[75]](_0xdb72x12,_0xf0ed[74]);for(var _0xdb72x16 in _0xdb72x12){if(_0xdb72x12[_0xf0ed[34]](_0xdb72x16)){var _0xdb72x15={};for(var _0xdb72x1e=0;_0xdb72x1e< _0xdb72x12[_0xdb72x16][_0xf0ed[57]];_0xdb72x1e+= 1){var _0xdb72x32=_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[76]];if(_0xdb72x1d[_0xf0ed[19]][_0xdb72x32]){if(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[77]]){_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[40]]+= 1};_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[41]]+= moment(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[81]])[_0xf0ed[80]](moment(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[78]]),_0xf0ed[79])|| 0;if(_0xdb72x1e=== _0xdb72x12[_0xdb72x16][_0xf0ed[57]]- 1){_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[42]]+= moment(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[82]]|| _0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[83]]|| _0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[84]])[_0xf0ed[80]](moment(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[78]]),_0xf0ed[79])|| 0;_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[38]]+= 1;if(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[85]]){_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[39]]+= 1;_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[43]]+= moment(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[82]])[_0xf0ed[80]](moment(_0xdb72x12[_0xdb72x16][_0xdb72x1e][_0xf0ed[81]]),_0xf0ed[79])|| 0}}else {_0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[42]]+= _0xdb72x1d[_0xf0ed[19]][_0xdb72x32][_0xf0ed[41]]}}}}}};return _0xdb72x1d[_0xf0ed[19]]}};Realtime[_0xf0ed[55]][_0xf0ed[86]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){for(var _0xdb72x1e=0;_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x1d[_0xf0ed[23]][_0xf0ed[38]]+= 1;_0xdb72x1d[_0xf0ed[23]][_0xf0ed[42]]+= _0xdb72x12[_0xdb72x1e][_0xf0ed[87]];if(_0xdb72x12[_0xdb72x1e][_0xf0ed[88]]=== _0xf0ed[89]){_0xdb72x1d[_0xf0ed[23]][_0xf0ed[39]]+= 1;_0xdb72x1d[_0xf0ed[23]][_0xf0ed[41]]+= (_0xdb72x12[_0xdb72x1e][_0xf0ed[87]]- _0xdb72x12[_0xdb72x1e][_0xf0ed[90]]);_0xdb72x1d[_0xf0ed[23]][_0xf0ed[43]]+= _0xdb72x12[_0xdb72x1e][_0xf0ed[90]]}}};return _0xdb72x1d[_0xf0ed[23]]}};Realtime[_0xf0ed[55]][_0xf0ed[91]]= function(){var _0xdb72x1d=this;return function(_0xdb72x12){if(_0xdb72x12){freeIsNotKey(_0xdb72x12,_0xdb72x1d[_0xf0ed[21]]);for(var _0xdb72x1e=0,_0xdb72x33={};_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_0xdb72x33= _0xdb72x12[_0xdb72x1e];if(_[_0xf0ed[60]](_0xdb72x1d[_0xf0ed[21]][_0xdb72x33[_0xf0ed[32]]])){_0xdb72x1d[_0xf0ed[21]][_0xdb72x33[_0xf0ed[32]]]=  new Campaign(_0xdb72x33)}else {_0xdb72x1d[_0xf0ed[54]](_0xdb72x1d[_0xf0ed[21]][_0xdb72x33[_0xf0ed[32]]],_0xdb72x33)}}};return _0xdb72x1d[_0xf0ed[21]]}};Realtime[_0xf0ed[55]][_0xf0ed[92]]= function(){var _0xdb72x1d=this;clearCampaigns(this[_0xf0ed[21]]);return function(_0xdb72x12){for(var _0xdb72x1e=0;_0xdb72x1e< _0xdb72x12[_0xf0ed[57]];_0xdb72x1e+= 1){_[_0xf0ed[72]](_0xdb72x1d[_0xf0ed[21]][_0xdb72x12[_0xdb72x1e][_0xf0ed[32]]],_0xdb72x12[_0xdb72x1e])};return _0xdb72x1d[_0xf0ed[21]]}};module[_0xf0ed[93]]= Realtime
\ No newline at end of file
index 80de5c0..0e8944b 100644 (file)
@@ -1 +1 @@
-var _0xce8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x75\x73\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x73\x79\x6E\x63","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x62\x69\x6E\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6C\x69\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x62\x6C\x69\x6E\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x72\x65\x61\x74\x65","\x6D\x6F\x6E\x69\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];_0xce8c[0];var BPromise=require(_0xce8c[1]);var _=require(_0xce8c[2]);var moment=require(_0xce8c[3]);var util=require(_0xce8c[4]);var logger=require(_0xce8c[6])(_0xce8c[5]);var ami=require(_0xce8c[7]);var RpcVoiceAgentReport=require(_0xce8c[8]);var RpcVoiceCallReport=require(_0xce8c[9]);var RpcVoiceDialReport=require(_0xce8c[10]);var RpcMemberReport=require(_0xce8c[11]);var RpcVoiceQueueReport=require(_0xce8c[12]);var RpcVoiceRecording=require(_0xce8c[13]);var RpcVoiceTransferReport=require(_0xce8c[14]);var VoiceQueueReport=require(_0xce8c[15]);var VoiceCallReport=require(_0xce8c[16]);var VoiceAgentReport=require(_0xce8c[17]);var VoiceDialReport=require(_0xce8c[18]);var UserReport=require(_0xce8c[19]);function Report(_0xdbc4x14){this[_0xce8c[20]]= _0xdbc4x14}Report[_0xce8c[22]][_0xce8c[21]]= function(_0xdbc4x14){var _0xdbc4x15= new VoiceQueueReport(this[_0xce8c[20]]);var _0xdbc4x16= new VoiceAgentReport(this[_0xce8c[20]]);var _0xdbc4x17= new VoiceDialReport(this[_0xce8c[20]]);var _0xdbc4x18= new VoiceCallReport(this[_0xce8c[20]]);var _0xdbc4x19= new UserReport(this[_0xce8c[20]]);ami[_0xce8c[26]](_0xce8c[23],this[_0xce8c[25]][_0xce8c[24]](this));ami[_0xce8c[26]](_0xce8c[27],this[_0xce8c[28]][_0xce8c[24]](this));ami[_0xce8c[26]](_0xce8c[29],this[_0xce8c[30]][_0xce8c[24]](this));ami[_0xce8c[26]](_0xce8c[31],this[_0xce8c[32]][_0xce8c[24]](this));ami[_0xce8c[26]](_0xce8c[33],this[_0xce8c[34]][_0xce8c[24]](this));ami[_0xce8c[26]](_0xce8c[35],this[_0xce8c[36]][_0xce8c[24]](this))};Report[_0xce8c[22]][_0xce8c[25]]= function(_0xdbc4x1a){for(var _0xdbc4x1b=0;_0xdbc4x1b< _0xdbc4x1a[_0xce8c[37]];_0xdbc4x1b+= 1){if(_0xdbc4x1a[_0xdbc4x1b][_0xce8c[38]]){RpcMemberReport[_0xce8c[25]](_0xdbc4x1a[_0xdbc4x1b])};RpcVoiceQueueReport[_0xce8c[39]](_0xdbc4x1a[_0xdbc4x1b])}};Report[_0xce8c[22]][_0xce8c[28]]= function(_0xdbc4x1c){if(_0xdbc4x1c[_0xce8c[40]]){RpcVoiceRecording[_0xce8c[39]](_0xdbc4x1c)};RpcVoiceCallReport[_0xce8c[39]](_0xdbc4x1c)};Report[_0xce8c[22]][_0xce8c[30]]= function(_0xdbc4x1d){for(var _0xdbc4x1b=0;_0xdbc4x1b< _0xdbc4x1d[_0xce8c[37]];_0xdbc4x1b+= 1){RpcVoiceAgentReport[_0xce8c[39]](_0xdbc4x1d[_0xdbc4x1b])}};Report[_0xce8c[22]][_0xce8c[32]]= function(_0xdbc4x1e){RpcVoiceDialReport[_0xce8c[39]](_0xdbc4x1e);RpcMemberReport[_0xce8c[32]](_0xdbc4x1e)};Report[_0xce8c[22]][_0xce8c[34]]= function(_0xdbc4x1f){RpcVoiceTransferReport[_0xce8c[34]](_0xdbc4x1f)};Report[_0xce8c[22]][_0xce8c[36]]= function(_0xdbc4x1f){RpcVoiceTransferReport[_0xce8c[36]](_0xdbc4x1f)};module[_0xce8c[41]]= Report
\ No newline at end of file
+var _0xfb17=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x75\x73\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x73\x79\x6E\x63","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x62\x69\x6E\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6C\x69\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x62\x6C\x69\x6E\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x72\x65\x61\x74\x65","\x6D\x6F\x6E\x69\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];_0xfb17[0];var BPromise=require(_0xfb17[1]);var _=require(_0xfb17[2]);var moment=require(_0xfb17[3]);var util=require(_0xfb17[4]);var logger=require(_0xfb17[6])(_0xfb17[5]);var ami=require(_0xfb17[7]);var RpcVoiceAgentReport=require(_0xfb17[8]);var RpcVoiceCallReport=require(_0xfb17[9]);var RpcVoiceDialReport=require(_0xfb17[10]);var RpcMemberReport=require(_0xfb17[11]);var RpcVoiceQueueReport=require(_0xfb17[12]);var RpcVoiceRecording=require(_0xfb17[13]);var RpcVoiceTransferReport=require(_0xfb17[14]);var VoiceQueueReport=require(_0xfb17[15]);var VoiceCallReport=require(_0xfb17[16]);var VoiceAgentReport=require(_0xfb17[17]);var VoiceDialReport=require(_0xfb17[18]);var UserReport=require(_0xfb17[19]);function Report(_0x7370x14){this[_0xfb17[20]]= _0x7370x14}Report[_0xfb17[22]][_0xfb17[21]]= function(_0x7370x14){var _0x7370x15= new VoiceQueueReport(this[_0xfb17[20]]);var _0x7370x16= new VoiceAgentReport(this[_0xfb17[20]]);var _0x7370x17= new VoiceDialReport(this[_0xfb17[20]]);var _0x7370x18= new VoiceCallReport(this[_0xfb17[20]]);var _0x7370x19= new UserReport(this[_0xfb17[20]]);ami[_0xfb17[26]](_0xfb17[23],this[_0xfb17[25]][_0xfb17[24]](this));ami[_0xfb17[26]](_0xfb17[27],this[_0xfb17[28]][_0xfb17[24]](this));ami[_0xfb17[26]](_0xfb17[29],this[_0xfb17[30]][_0xfb17[24]](this));ami[_0xfb17[26]](_0xfb17[31],this[_0xfb17[32]][_0xfb17[24]](this));ami[_0xfb17[26]](_0xfb17[33],this[_0xfb17[34]][_0xfb17[24]](this));ami[_0xfb17[26]](_0xfb17[35],this[_0xfb17[36]][_0xfb17[24]](this))};Report[_0xfb17[22]][_0xfb17[25]]= function(_0x7370x1a){for(var _0x7370x1b=0;_0x7370x1b< _0x7370x1a[_0xfb17[37]];_0x7370x1b+= 1){if(_0x7370x1a[_0x7370x1b][_0xfb17[38]]){RpcMemberReport[_0xfb17[25]](_0x7370x1a[_0x7370x1b])};RpcVoiceQueueReport[_0xfb17[39]](_0x7370x1a[_0x7370x1b])}};Report[_0xfb17[22]][_0xfb17[28]]= function(_0x7370x1c){if(_0x7370x1c[_0xfb17[40]]){RpcVoiceRecording[_0xfb17[39]](_0x7370x1c)};RpcVoiceCallReport[_0xfb17[39]](_0x7370x1c)};Report[_0xfb17[22]][_0xfb17[30]]= function(_0x7370x1d){for(var _0x7370x1b=0;_0x7370x1b< _0x7370x1d[_0xfb17[37]];_0x7370x1b+= 1){RpcVoiceAgentReport[_0xfb17[39]](_0x7370x1d[_0x7370x1b])}};Report[_0xfb17[22]][_0xfb17[32]]= function(_0x7370x1e){RpcVoiceDialReport[_0xfb17[39]](_0x7370x1e);RpcMemberReport[_0xfb17[32]](_0x7370x1e)};Report[_0xfb17[22]][_0xfb17[34]]= function(_0x7370x1f){RpcVoiceTransferReport[_0xfb17[34]](_0x7370x1f)};Report[_0xfb17[22]][_0xfb17[36]]= function(_0x7370x1f){RpcVoiceTransferReport[_0xfb17[36]](_0x7370x1f)};module[_0xfb17[41]]= Report
\ No newline at end of file
index c3a9446..6dda0c1 100644 (file)
@@ -1 +1 @@
-var _0x4f8e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x74\x72\x75\x6E\x6B\x73","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x72\x65\x67\x69\x73\x74\x72\x79\x65\x6E\x74\x72\x79","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x52\x65\x67\x69\x73\x74\x72\x79","\x6F\x6E","\x72\x65\x67\x69\x73\x74\x72\x79","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x73\x79\x6E\x63\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65","\x70\x65\x65\x72\x73\x74\x61\x74\x75\x73","\x73\x79\x6E\x63\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x61\x63\x74\x69\x6F\x6E\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x4C\x69\x73\x74","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x72\x65\x73\x6F\x6C\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x66\x69\x6E\x64","\x73\x74\x61\x74\x65\x52\x65\x67\x69\x73\x74\x72\x79","\x73\x74\x61\x74\x65","\x65\x76\x65\x6E\x74","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x74\x72\x75\x6E\x6B\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x72\x75\x6E\x6B\x3A\x73\x61\x76\x65","\x5B\x73\x79\x6E\x63\x52\x65\x67\x69\x73\x74\x72\x79\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x4F\x62\x6A\x65\x63\x74\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x64\x65\x76\x69\x63\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x78","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x75\x73\x65\x72\x3A\x25\x73","\x75\x73\x65\x72\x3A\x73\x61\x76\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x73\x61\x76\x65","\x51\x75\x65\x75\x65","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x44\x65\x76\x69\x63\x65\x20\x75\x6E\x6D\x6F\x6E\x69\x74","\x5B\x73\x79\x6E\x63\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x70\x65\x65\x72","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x50\x65\x65\x72\x20\x75\x6E\x6D\x6F\x6E\x69\x74","\x5B\x73\x79\x6E\x63\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x4f8e[0];var _=require(_0x4f8e[1]);var moment=require(_0x4f8e[2]);var BPromise=require(_0x4f8e[3]);var util=require(_0x4f8e[4]);var logger=require(_0x4f8e[6])(_0x4f8e[5]);var ami=require(_0x4f8e[7]);var io=require(_0x4f8e[9])({host:_0x4f8e[8],port:6379});function UserReport(_0xb05ax9){console[_0x4f8e[11]](_0x4f8e[10]);this[_0x4f8e[12]]= _0xb05ax9[_0x4f8e[12]];this[_0x4f8e[13]]= _0xb05ax9[_0x4f8e[13]];this[_0x4f8e[14]]= _0xb05ax9[_0x4f8e[14]];ami[_0x4f8e[18]](_0x4f8e[15],this[_0x4f8e[17]][_0x4f8e[16]](this));ami[_0x4f8e[18]](_0x4f8e[19],this[_0x4f8e[17]][_0x4f8e[16]](this));ami[_0x4f8e[18]](_0x4f8e[20],this[_0x4f8e[21]][_0x4f8e[16]](this));ami[_0x4f8e[18]](_0x4f8e[22],this[_0x4f8e[23]][_0x4f8e[16]](this));return BPromise[_0x4f8e[29]]()[_0x4f8e[26]](ami[_0x4f8e[28]]())[_0x4f8e[26]](ami[_0x4f8e[27]]())[_0x4f8e[26]](ami[_0x4f8e[25]]())[_0x4f8e[24]](function(_0xb05axa){console[_0x4f8e[11]](_0xb05axa)})}UserReport[_0x4f8e[31]][_0x4f8e[30]]= function(_0xb05axb){return _0xb05axb!== null&&  !_[_0x4f8e[32]](_0xb05axb)};UserReport[_0x4f8e[31]][_0x4f8e[33]]= function(_0xb05axc,_0xb05axd,_0xb05axb){console[_0x4f8e[11]](_0xb05axc,_0xb05axd);io[_0x4f8e[34]](_0xb05axc)[_0x4f8e[33]](_0xb05axd,_0xb05axb)};UserReport[_0x4f8e[31]][_0x4f8e[17]]= function(_0xb05axd){try{if(this[_0x4f8e[30]](_0xb05axd)){var _0xb05axe=_[_0x4f8e[36]](this[_0x4f8e[12]],{registry:_0xb05axd[_0x4f8e[35]]});if(_0xb05axe){_0xb05axd[_0x4f8e[37]]= _0xb05axd[_0x4f8e[38]];_[_0x4f8e[42]](_0xb05axe,_[_0x4f8e[41]](_0xb05axd,[_0x4f8e[39],_0x4f8e[40],_0x4f8e[35],_0x4f8e[38]]));this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[43],_0xb05axe[_0x4f8e[44]]),_0x4f8e[46],_0xb05axe)}}else {logger[_0x4f8e[49]](_0x4f8e[47],_0x4f8e[48])}}catch(e){logger[_0x4f8e[51]](_0x4f8e[47],JSON[_0x4f8e[50]](e))}};UserReport[_0x4f8e[31]][_0x4f8e[21]]= function(_0xb05axd){try{if(this[_0x4f8e[30]](_0xb05axd)){if(this[_0x4f8e[13]][_0xb05axd[_0x4f8e[52]]]){this[_0x4f8e[13]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[38]]= _0xb05axd[_0x4f8e[38]][_0x4f8e[53]]();this[_0x4f8e[13]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[54]]= _[_0x4f8e[56]](moment()[_0x4f8e[45]](_0x4f8e[55]));this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[57],this[_0x4f8e[13]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[44]]),_0x4f8e[58],this[_0x4f8e[13]][_0xb05axd[_0x4f8e[52]]])}else {if(this[_0x4f8e[14]][_0xb05axd[_0x4f8e[52]]]){this[_0x4f8e[14]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[38]]= _0xb05axd[_0x4f8e[38]][_0x4f8e[53]]();this[_0x4f8e[14]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[54]]= _[_0x4f8e[56]](moment()[_0x4f8e[45]](_0x4f8e[55]));this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[59],this[_0x4f8e[14]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[44]]),_0x4f8e[60],this[_0x4f8e[14]][_0xb05axd[_0x4f8e[52]]])}else {if(this[_0x4f8e[12]][_0xb05axd[_0x4f8e[52]]]){this[_0x4f8e[12]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[38]]= _0xb05axd[_0x4f8e[38]][_0x4f8e[53]]();this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[43],this[_0x4f8e[12]][_0xb05axd[_0x4f8e[52]]][_0x4f8e[44]]),_0x4f8e[46],this[_0x4f8e[12]][_0xb05axd[_0x4f8e[52]]])}else {if(_[_0x4f8e[62]](_0xb05axd[_0x4f8e[52]],_0x4f8e[61])){}else {console[_0x4f8e[11]](_0x4f8e[63],_0x4f8e[64],_0xb05axd[_0x4f8e[52]])}}}}}else {logger[_0x4f8e[49]](_0x4f8e[65],_0x4f8e[48])}}catch(e){logger[_0x4f8e[51]](_0x4f8e[65],JSON[_0x4f8e[50]](e))}};UserReport[_0x4f8e[31]][_0x4f8e[23]]= function(_0xb05axd){try{if(this[_0x4f8e[30]](_0xb05axd)&& this[_0x4f8e[30]](_0xb05axd[_0x4f8e[22]])){if(this[_0x4f8e[13]][_0xb05axd[_0x4f8e[66]]]){this[_0x4f8e[13]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[67]]= _0xb05axd[_0x4f8e[22]][_0x4f8e[53]]();this[_0x4f8e[13]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[68]]= _0xb05axd[_0x4f8e[68]];this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[57],this[_0x4f8e[13]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[44]]),_0x4f8e[58],this[_0x4f8e[13]][_0xb05axd[_0x4f8e[66]]])}else {if(this[_0x4f8e[14]][_0xb05axd[_0x4f8e[66]]]){this[_0x4f8e[14]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[67]]= _0xb05axd[_0x4f8e[22]][_0x4f8e[53]]();this[_0x4f8e[14]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[68]]= _0xb05axd[_0x4f8e[68]];this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[59],this[_0x4f8e[14]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[44]]),_0x4f8e[60],this[_0x4f8e[14]][_0xb05axd[_0x4f8e[66]]])}else {if(this[_0x4f8e[12]][_0xb05axd[_0x4f8e[66]]]){this[_0x4f8e[12]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[67]]= _0xb05axd[_0x4f8e[22]][_0x4f8e[53]]();this[_0x4f8e[12]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[68]]= _0xb05axd[_0x4f8e[68]];this[_0x4f8e[33]](util[_0x4f8e[45]](_0x4f8e[43],this[_0x4f8e[12]][_0xb05axd[_0x4f8e[66]]][_0x4f8e[44]]),_0x4f8e[46],this[_0x4f8e[12]][_0xb05axd[_0x4f8e[66]]])}else {console[_0x4f8e[11]](_0x4f8e[69],_0xb05axd[_0x4f8e[66]])}}}}else {logger[_0x4f8e[49]](_0x4f8e[70],_0x4f8e[48])}}catch(e){logger[_0x4f8e[51]](_0x4f8e[70],JSON[_0x4f8e[50]](e))}};module[_0x4f8e[71]]= UserReport
\ No newline at end of file
+var _0x8d85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x74\x72\x75\x6E\x6B\x73","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x72\x65\x67\x69\x73\x74\x72\x79\x65\x6E\x74\x72\x79","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x52\x65\x67\x69\x73\x74\x72\x79","\x6F\x6E","\x72\x65\x67\x69\x73\x74\x72\x79","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x73\x79\x6E\x63\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65","\x70\x65\x65\x72\x73\x74\x61\x74\x75\x73","\x73\x79\x6E\x63\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x61\x63\x74\x69\x6F\x6E\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x4C\x69\x73\x74","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x72\x65\x73\x6F\x6C\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x66\x69\x6E\x64","\x73\x74\x61\x74\x65\x52\x65\x67\x69\x73\x74\x72\x79","\x73\x74\x61\x74\x65","\x65\x76\x65\x6E\x74","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x74\x72\x75\x6E\x6B\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x72\x75\x6E\x6B\x3A\x73\x61\x76\x65","\x5B\x73\x79\x6E\x63\x52\x65\x67\x69\x73\x74\x72\x79\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x4F\x62\x6A\x65\x63\x74\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x64\x65\x76\x69\x63\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x78","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x75\x73\x65\x72\x3A\x25\x73","\x75\x73\x65\x72\x3A\x73\x61\x76\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x73\x61\x76\x65","\x51\x75\x65\x75\x65","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x44\x65\x76\x69\x63\x65\x20\x75\x6E\x6D\x6F\x6E\x69\x74","\x5B\x73\x79\x6E\x63\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x70\x65\x65\x72","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x50\x65\x65\x72\x20\x75\x6E\x6D\x6F\x6E\x69\x74","\x5B\x73\x79\x6E\x63\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x8d85[0];var _=require(_0x8d85[1]);var moment=require(_0x8d85[2]);var BPromise=require(_0x8d85[3]);var util=require(_0x8d85[4]);var logger=require(_0x8d85[6])(_0x8d85[5]);var ami=require(_0x8d85[7]);var io=require(_0x8d85[9])({host:_0x8d85[8],port:6379});function UserReport(_0x85f0x9){console[_0x8d85[11]](_0x8d85[10]);this[_0x8d85[12]]= _0x85f0x9[_0x8d85[12]];this[_0x8d85[13]]= _0x85f0x9[_0x8d85[13]];this[_0x8d85[14]]= _0x85f0x9[_0x8d85[14]];ami[_0x8d85[18]](_0x8d85[15],this[_0x8d85[17]][_0x8d85[16]](this));ami[_0x8d85[18]](_0x8d85[19],this[_0x8d85[17]][_0x8d85[16]](this));ami[_0x8d85[18]](_0x8d85[20],this[_0x8d85[21]][_0x8d85[16]](this));ami[_0x8d85[18]](_0x8d85[22],this[_0x8d85[23]][_0x8d85[16]](this));return BPromise[_0x8d85[29]]()[_0x8d85[26]](ami[_0x8d85[28]]())[_0x8d85[26]](ami[_0x8d85[27]]())[_0x8d85[26]](ami[_0x8d85[25]]())[_0x8d85[24]](function(_0x85f0xa){console[_0x8d85[11]](_0x85f0xa)})}UserReport[_0x8d85[31]][_0x8d85[30]]= function(_0x85f0xb){return _0x85f0xb!== null&&  !_[_0x8d85[32]](_0x85f0xb)};UserReport[_0x8d85[31]][_0x8d85[33]]= function(_0x85f0xc,_0x85f0xd,_0x85f0xb){console[_0x8d85[11]](_0x85f0xc,_0x85f0xd);io[_0x8d85[34]](_0x85f0xc)[_0x8d85[33]](_0x85f0xd,_0x85f0xb)};UserReport[_0x8d85[31]][_0x8d85[17]]= function(_0x85f0xd){try{if(this[_0x8d85[30]](_0x85f0xd)){var _0x85f0xe=_[_0x8d85[36]](this[_0x8d85[12]],{registry:_0x85f0xd[_0x8d85[35]]});if(_0x85f0xe){_0x85f0xd[_0x8d85[37]]= _0x85f0xd[_0x8d85[38]];_[_0x8d85[42]](_0x85f0xe,_[_0x8d85[41]](_0x85f0xd,[_0x8d85[39],_0x8d85[40],_0x8d85[35],_0x8d85[38]]));this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[43],_0x85f0xe[_0x8d85[44]]),_0x8d85[46],_0x85f0xe)}}else {logger[_0x8d85[49]](_0x8d85[47],_0x8d85[48])}}catch(e){logger[_0x8d85[51]](_0x8d85[47],util[_0x8d85[50]](e,{showHidden:false,depth:null}))}};UserReport[_0x8d85[31]][_0x8d85[21]]= function(_0x85f0xd){try{if(this[_0x8d85[30]](_0x85f0xd)){if(this[_0x8d85[13]][_0x85f0xd[_0x8d85[52]]]){this[_0x8d85[13]][_0x85f0xd[_0x8d85[52]]][_0x8d85[38]]= _0x85f0xd[_0x8d85[38]][_0x8d85[53]]();this[_0x8d85[13]][_0x85f0xd[_0x8d85[52]]][_0x8d85[54]]= _[_0x8d85[56]](moment()[_0x8d85[45]](_0x8d85[55]));this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[57],this[_0x8d85[13]][_0x85f0xd[_0x8d85[52]]][_0x8d85[44]]),_0x8d85[58],this[_0x8d85[13]][_0x85f0xd[_0x8d85[52]]])}else {if(this[_0x8d85[14]][_0x85f0xd[_0x8d85[52]]]){this[_0x8d85[14]][_0x85f0xd[_0x8d85[52]]][_0x8d85[38]]= _0x85f0xd[_0x8d85[38]][_0x8d85[53]]();this[_0x8d85[14]][_0x85f0xd[_0x8d85[52]]][_0x8d85[54]]= _[_0x8d85[56]](moment()[_0x8d85[45]](_0x8d85[55]));this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[59],this[_0x8d85[14]][_0x85f0xd[_0x8d85[52]]][_0x8d85[44]]),_0x8d85[60],this[_0x8d85[14]][_0x85f0xd[_0x8d85[52]]])}else {if(this[_0x8d85[12]][_0x85f0xd[_0x8d85[52]]]){this[_0x8d85[12]][_0x85f0xd[_0x8d85[52]]][_0x8d85[38]]= _0x85f0xd[_0x8d85[38]][_0x8d85[53]]();this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[43],this[_0x8d85[12]][_0x85f0xd[_0x8d85[52]]][_0x8d85[44]]),_0x8d85[46],this[_0x8d85[12]][_0x85f0xd[_0x8d85[52]]])}else {if(_[_0x8d85[62]](_0x85f0xd[_0x8d85[52]],_0x8d85[61])){}else {console[_0x8d85[11]](_0x8d85[63],_0x8d85[64],_0x85f0xd[_0x8d85[52]])}}}}}else {logger[_0x8d85[49]](_0x8d85[65],_0x8d85[48])}}catch(e){logger[_0x8d85[51]](_0x8d85[65],util[_0x8d85[50]](e,{showHidden:false,depth:null}))}};UserReport[_0x8d85[31]][_0x8d85[23]]= function(_0x85f0xd){try{if(this[_0x8d85[30]](_0x85f0xd)&& this[_0x8d85[30]](_0x85f0xd[_0x8d85[22]])){if(this[_0x8d85[13]][_0x85f0xd[_0x8d85[66]]]){this[_0x8d85[13]][_0x85f0xd[_0x8d85[66]]][_0x8d85[67]]= _0x85f0xd[_0x8d85[22]][_0x8d85[53]]();this[_0x8d85[13]][_0x85f0xd[_0x8d85[66]]][_0x8d85[68]]= _0x85f0xd[_0x8d85[68]];this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[57],this[_0x8d85[13]][_0x85f0xd[_0x8d85[66]]][_0x8d85[44]]),_0x8d85[58],this[_0x8d85[13]][_0x85f0xd[_0x8d85[66]]])}else {if(this[_0x8d85[14]][_0x85f0xd[_0x8d85[66]]]){this[_0x8d85[14]][_0x85f0xd[_0x8d85[66]]][_0x8d85[67]]= _0x85f0xd[_0x8d85[22]][_0x8d85[53]]();this[_0x8d85[14]][_0x85f0xd[_0x8d85[66]]][_0x8d85[68]]= _0x85f0xd[_0x8d85[68]];this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[59],this[_0x8d85[14]][_0x85f0xd[_0x8d85[66]]][_0x8d85[44]]),_0x8d85[60],this[_0x8d85[14]][_0x85f0xd[_0x8d85[66]]])}else {if(this[_0x8d85[12]][_0x85f0xd[_0x8d85[66]]]){this[_0x8d85[12]][_0x85f0xd[_0x8d85[66]]][_0x8d85[67]]= _0x85f0xd[_0x8d85[22]][_0x8d85[53]]();this[_0x8d85[12]][_0x85f0xd[_0x8d85[66]]][_0x8d85[68]]= _0x85f0xd[_0x8d85[68]];this[_0x8d85[33]](util[_0x8d85[45]](_0x8d85[43],this[_0x8d85[12]][_0x85f0xd[_0x8d85[66]]][_0x8d85[44]]),_0x8d85[46],this[_0x8d85[12]][_0x85f0xd[_0x8d85[66]]])}else {console[_0x8d85[11]](_0x8d85[69],_0x85f0xd[_0x8d85[66]])}}}}else {logger[_0x8d85[49]](_0x8d85[70],_0x8d85[48])}}catch(e){logger[_0x8d85[51]](_0x8d85[70],util[_0x8d85[50]](e,{showHidden:false,depth:null}))}};module[_0x8d85[71]]= UserReport
\ No newline at end of file
index d909490..edd2607 100644 (file)
@@ -1 +1 @@
-var _0x1d86=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64","\x6F\x6E","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x65\x76\x65\x6E\x74","\x70\x72\x69\x76\x69\x6C\x65\x67\x65","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x65\x6D\x69\x74","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65","\x64\x65\x73\x74\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x72\x65\x6A\x65\x63\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x61\x63\x77","\x61\x67\x65\x6E\x74\x61\x63\x77","\x61\x63\x77\x74\x69\x6D\x65","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x74\x68\x69\x73\x2E\x63\x68\x61\x6E\x6E\x65\x6C\x73\x5B\x65\x76\x74\x2E\x75\x6E\x69\x71\x75\x65\x69\x64\x5D\x5B\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64\x5D\x2E\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C","\x6F\x62\x6A\x20\x6E\x75\x6C\x6C","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x76\x61\x6C\x75\x65\x73","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x4F\x62\x6A\x65\x63\x74\x20\x6E\x75\x6C\x6C\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x1d86[0];var _=require(_0x1d86[1]);var moment=require(_0x1d86[2]);var logger=require(_0x1d86[4])(_0x1d86[3]);var ami=require(_0x1d86[5]);function VoiceAgentReport(_0x58ebx6){console[_0x1d86[7]](_0x1d86[6]);this[_0x1d86[8]]= {};this[_0x1d86[9]]= _0x58ebx6[_0x1d86[9]];this[_0x1d86[10]]= {};ami[_0x1d86[14]](_0x1d86[11],this[_0x1d86[13]][_0x1d86[12]](this));ami[_0x1d86[14]](_0x1d86[15],this[_0x1d86[16]][_0x1d86[12]](this));ami[_0x1d86[14]](_0x1d86[17],this[_0x1d86[18]][_0x1d86[12]](this));ami[_0x1d86[14]](_0x1d86[19],this[_0x1d86[20]][_0x1d86[12]](this));ami[_0x1d86[14]](_0x1d86[21],this[_0x1d86[22]][_0x1d86[12]](this));ami[_0x1d86[14]](_0x1d86[23],this[_0x1d86[24]][_0x1d86[12]](this));ami[_0x1d86[14]](_0x1d86[25],this[_0x1d86[26]][_0x1d86[12]](this))}VoiceAgentReport[_0x1d86[28]][_0x1d86[27]]= function(_0x58ebx7){return _0x58ebx7!== null&&  !_[_0x1d86[29]](_0x58ebx7)};VoiceAgentReport[_0x1d86[28]][_0x1d86[13]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){if(_[_0x1d86[29]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]= {}};if(_[_0x1d86[29]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]]= {agentcalledAt:moment()[_0x1d86[33]](_0x1d86[32]),lastevent:_0x1d86[34],variables:this[_0x1d86[10]][_0x58ebx8[_0x1d86[30]]],type:this[_0x1d86[9]][_0x58ebx8[_0x1d86[35]]]?this[_0x1d86[9]][_0x58ebx8[_0x1d86[35]]][_0x1d86[36]]|| _0x1d86[37]:_0x1d86[37]}};_[_0x1d86[41]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]],_[_0x1d86[40]](_0x58ebx8,[_0x1d86[38],_0x1d86[39]]));ami[_0x1d86[43]](_0x1d86[42],this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]])}else {logger[_0x1d86[46]](_0x1d86[44],_0x1d86[45])}}catch(e){logger[_0x1d86[48]](_0x1d86[44],JSON[_0x1d86[47]](e))}};VoiceAgentReport[_0x1d86[28]][_0x1d86[16]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){for(var _0x58ebx9 in this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x1d86[49]](_0x58ebx9)){if(_0x58ebx8[_0x1d86[31]]=== _0x58ebx9){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[50]]= moment()[_0x1d86[33]](_0x1d86[32]);this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[51]]= _0x1d86[52];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[53]]= _0x58ebx8[_0x1d86[53]];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[54]]= _0x58ebx8[_0x1d86[54]];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[55]]= _0x58ebx8[_0x1d86[55]];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[56]]= _0x58ebx8[_0x1d86[56]];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[57]]= _0x58ebx8[_0x1d86[57]];ami[_0x1d86[43]](_0x1d86[58],this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9])}else {if(this[_0x1d86[27]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[17]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[17]]= true;this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[59]]= moment()[_0x1d86[33]](_0x1d86[32]);this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[60]]= _0x1d86[61];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[51]]= _0x1d86[61];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[62]]= _0x58ebx8[_0x1d86[31]];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[63]]= _0x58ebx8[_0x1d86[64]];ami[_0x1d86[43]](_0x1d86[65],this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9])}else {logger[_0x1d86[46]](_0x1d86[66],_0x1d86[67])}}}}}}else {logger[_0x1d86[46]](_0x1d86[66],_0x1d86[45])}}catch(e){logger[_0x1d86[48]](_0x1d86[66],JSON[_0x1d86[47]](e))}};VoiceAgentReport[_0x1d86[28]][_0x1d86[18]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]&& this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]]&& _[_0x1d86[29]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[17]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[17]]= true;this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[59]]= moment()[_0x1d86[33]](_0x1d86[32]);this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[60]]= _0x1d86[68];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[51]]= _0x1d86[68];ami[_0x1d86[43]](_0x1d86[69],this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]])}}else {logger[_0x1d86[46]](_0x1d86[70],_0x1d86[45])}}catch(e){logger[_0x1d86[48]](_0x1d86[70],JSON[_0x1d86[47]](e))}};VoiceAgentReport[_0x1d86[28]][_0x1d86[20]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){for(var _0x58ebx9 in this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x1d86[49]](_0x58ebx9)&& _[_0x1d86[29]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[17]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[17]]= true;this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[59]]= moment()[_0x1d86[33]](_0x1d86[32]);this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[60]]= _0x1d86[71];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[51]]= _0x1d86[71];ami[_0x1d86[43]](_0x1d86[72],this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9])}}}}else {logger[_0x1d86[46]](_0x1d86[73],_0x1d86[45])}}catch(e){logger[_0x1d86[48]](_0x1d86[73],JSON[_0x1d86[47]](e))}};VoiceAgentReport[_0x1d86[28]][_0x1d86[22]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]&& this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]]&& _[_0x1d86[29]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[21]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[21]]= true;this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[74]]= moment()[_0x1d86[33]](_0x1d86[32]);this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[51]]= _0x1d86[75];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[76]]= _0x58ebx8[_0x1d86[76]];this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[60]]= _0x58ebx8[_0x1d86[60]];if(this[_0x1d86[9]][_0x58ebx8[_0x1d86[35]]]&& this[_0x1d86[9]][_0x58ebx8[_0x1d86[35]]][_0x1d86[77]]){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[78]]= true;this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]][_0x1d86[79]]= this[_0x1d86[9]][_0x58ebx8[_0x1d86[35]]][_0x1d86[80]]};ami[_0x1d86[43]](_0x1d86[81],this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx8[_0x1d86[31]]])}else {logger[_0x1d86[46]](_0x1d86[82],_0x1d86[67])}}else {logger[_0x1d86[46]](_0x1d86[82],_0x1d86[45])}}catch(e){logger[_0x1d86[48]](_0x1d86[82],JSON[_0x1d86[47]](e))}};VoiceAgentReport[_0x1d86[28]][_0x1d86[24]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){this[_0x1d86[86]](_0x58ebx8[_0x1d86[30]],_[_0x1d86[84]](_0x58ebx8[_0x1d86[83]])[0],_0x58ebx8[_0x1d86[85]]);if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){for(var _0x58ebx9 in this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x1d86[49]](_0x58ebx9)){if(_[_0x1d86[29]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[10]])){this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[10]]= {}};this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]][_0x58ebx9][_0x1d86[10]]= this[_0x1d86[10]][_0x58ebx8[_0x1d86[30]]]}else {logger[_0x1d86[46]](_0x1d86[87],_0x1d86[88])}}}else {logger[_0x1d86[46]](_0x1d86[87],_0x1d86[89])}}else {logger[_0x1d86[46]](_0x1d86[87],_0x1d86[90])}}catch(e){logger[_0x1d86[48]](_0x1d86[87],JSON[_0x1d86[47]](e))}};VoiceAgentReport[_0x1d86[28]][_0x1d86[86]]= function(_0x58ebxa,_0x58ebxb,_0x58ebxc){if(_[_0x1d86[29]](this[_0x1d86[10]][_0x58ebxa])){this[_0x1d86[10]][_0x58ebxa]= {}};this[_0x1d86[10]][_0x58ebxa][_0x58ebxb]= _0x58ebxc};VoiceAgentReport[_0x1d86[28]][_0x1d86[26]]= function(_0x58ebx8){try{if(this[_0x1d86[27]](_0x58ebx8)){if(this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]){ami[_0x1d86[43]](_0x1d86[91],_[_0x1d86[92]](this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]));delete this[_0x1d86[8]][_0x58ebx8[_0x1d86[30]]]};if(this[_0x1d86[10]][_0x58ebx8[_0x1d86[30]]]){delete this[_0x1d86[10]][_0x58ebx8[_0x1d86[30]]]}}else {logger[_0x1d86[46]](_0x1d86[93],_0x1d86[94])}}catch(e){logger[_0x1d86[48]](_0x1d86[93],JSON[_0x1d86[47]](e))}};module[_0x1d86[95]]= VoiceAgentReport
\ No newline at end of file
+var _0xc9e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64","\x6F\x6E","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x65\x76\x65\x6E\x74","\x70\x72\x69\x76\x69\x6C\x65\x67\x65","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x65\x6D\x69\x74","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65","\x64\x65\x73\x74\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x72\x65\x6A\x65\x63\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x61\x63\x77","\x61\x67\x65\x6E\x74\x61\x63\x77","\x61\x63\x77\x74\x69\x6D\x65","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x74\x68\x69\x73\x2E\x63\x68\x61\x6E\x6E\x65\x6C\x73\x5B\x65\x76\x74\x2E\x75\x6E\x69\x71\x75\x65\x69\x64\x5D\x5B\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64\x5D\x2E\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C","\x6F\x62\x6A\x20\x6E\x75\x6C\x6C","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x76\x61\x6C\x75\x65\x73","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x4F\x62\x6A\x65\x63\x74\x20\x6E\x75\x6C\x6C\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0xc9e7[0];var _=require(_0xc9e7[1]);var moment=require(_0xc9e7[2]);var util=require(_0xc9e7[3]);var logger=require(_0xc9e7[5])(_0xc9e7[4]);var ami=require(_0xc9e7[6]);function VoiceAgentReport(_0x8c04x7){console[_0xc9e7[8]](_0xc9e7[7]);this[_0xc9e7[9]]= {};this[_0xc9e7[10]]= _0x8c04x7[_0xc9e7[10]];this[_0xc9e7[11]]= {};ami[_0xc9e7[15]](_0xc9e7[12],this[_0xc9e7[14]][_0xc9e7[13]](this));ami[_0xc9e7[15]](_0xc9e7[16],this[_0xc9e7[17]][_0xc9e7[13]](this));ami[_0xc9e7[15]](_0xc9e7[18],this[_0xc9e7[19]][_0xc9e7[13]](this));ami[_0xc9e7[15]](_0xc9e7[20],this[_0xc9e7[21]][_0xc9e7[13]](this));ami[_0xc9e7[15]](_0xc9e7[22],this[_0xc9e7[23]][_0xc9e7[13]](this));ami[_0xc9e7[15]](_0xc9e7[24],this[_0xc9e7[25]][_0xc9e7[13]](this));ami[_0xc9e7[15]](_0xc9e7[26],this[_0xc9e7[27]][_0xc9e7[13]](this))}VoiceAgentReport[_0xc9e7[29]][_0xc9e7[28]]= function(_0x8c04x8){return _0x8c04x8!== null&&  !_[_0xc9e7[30]](_0x8c04x8)};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[14]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){if(_[_0xc9e7[30]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]= {}};if(_[_0xc9e7[30]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]]= {agentcalledAt:moment()[_0xc9e7[34]](_0xc9e7[33]),lastevent:_0xc9e7[35],variables:this[_0xc9e7[11]][_0x8c04x9[_0xc9e7[31]]],type:this[_0xc9e7[10]][_0x8c04x9[_0xc9e7[36]]]?this[_0xc9e7[10]][_0x8c04x9[_0xc9e7[36]]][_0xc9e7[37]]|| _0xc9e7[38]:_0xc9e7[38]}};_[_0xc9e7[42]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]],_[_0xc9e7[41]](_0x8c04x9,[_0xc9e7[39],_0xc9e7[40]]));ami[_0xc9e7[44]](_0xc9e7[43],this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]])}else {logger[_0xc9e7[47]](_0xc9e7[45],_0xc9e7[46])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[45],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[17]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){for(var _0x8c04xa in this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0xc9e7[50]](_0x8c04xa)){if(_0x8c04x9[_0xc9e7[32]]=== _0x8c04xa){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[51]]= moment()[_0xc9e7[34]](_0xc9e7[33]);this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[52]]= _0xc9e7[53];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[54]]= _0x8c04x9[_0xc9e7[54]];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[55]]= _0x8c04x9[_0xc9e7[55]];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[56]]= _0x8c04x9[_0xc9e7[56]];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[57]]= _0x8c04x9[_0xc9e7[57]];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[58]]= _0x8c04x9[_0xc9e7[58]];ami[_0xc9e7[44]](_0xc9e7[59],this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa])}else {if(this[_0xc9e7[28]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[18]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[18]]= true;this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[60]]= moment()[_0xc9e7[34]](_0xc9e7[33]);this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[61]]= _0xc9e7[62];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[52]]= _0xc9e7[62];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[63]]= _0x8c04x9[_0xc9e7[32]];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[64]]= _0x8c04x9[_0xc9e7[65]];ami[_0xc9e7[44]](_0xc9e7[66],this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa])}else {logger[_0xc9e7[47]](_0xc9e7[67],_0xc9e7[68])}}}}}}else {logger[_0xc9e7[47]](_0xc9e7[67],_0xc9e7[46])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[67],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[19]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]&& this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]]&& _[_0xc9e7[30]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[18]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[18]]= true;this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[60]]= moment()[_0xc9e7[34]](_0xc9e7[33]);this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[61]]= _0xc9e7[69];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[52]]= _0xc9e7[69];ami[_0xc9e7[44]](_0xc9e7[70],this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]])}}else {logger[_0xc9e7[47]](_0xc9e7[71],_0xc9e7[46])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[71],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[21]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){for(var _0x8c04xa in this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0xc9e7[50]](_0x8c04xa)&& _[_0xc9e7[30]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[18]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[18]]= true;this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[60]]= moment()[_0xc9e7[34]](_0xc9e7[33]);this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[61]]= _0xc9e7[72];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[52]]= _0xc9e7[72];ami[_0xc9e7[44]](_0xc9e7[73],this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa])}}}}else {logger[_0xc9e7[47]](_0xc9e7[74],_0xc9e7[46])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[74],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[23]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]&& this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]]&& _[_0xc9e7[30]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[22]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[22]]= true;this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[75]]= moment()[_0xc9e7[34]](_0xc9e7[33]);this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[52]]= _0xc9e7[76];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[77]]= _0x8c04x9[_0xc9e7[77]];this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[61]]= _0x8c04x9[_0xc9e7[61]];if(this[_0xc9e7[10]][_0x8c04x9[_0xc9e7[36]]]&& this[_0xc9e7[10]][_0x8c04x9[_0xc9e7[36]]][_0xc9e7[78]]){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[79]]= true;this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]][_0xc9e7[80]]= this[_0xc9e7[10]][_0x8c04x9[_0xc9e7[36]]][_0xc9e7[81]]};ami[_0xc9e7[44]](_0xc9e7[82],this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04x9[_0xc9e7[32]]])}else {logger[_0xc9e7[47]](_0xc9e7[83],_0xc9e7[68])}}else {logger[_0xc9e7[47]](_0xc9e7[83],_0xc9e7[46])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[83],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[25]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){this[_0xc9e7[87]](_0x8c04x9[_0xc9e7[31]],_[_0xc9e7[85]](_0x8c04x9[_0xc9e7[84]])[0],_0x8c04x9[_0xc9e7[86]]);if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){for(var _0x8c04xa in this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0xc9e7[50]](_0x8c04xa)){if(_[_0xc9e7[30]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[11]])){this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[11]]= {}};this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]][_0x8c04xa][_0xc9e7[11]]= this[_0xc9e7[11]][_0x8c04x9[_0xc9e7[31]]]}else {logger[_0xc9e7[47]](_0xc9e7[88],_0xc9e7[89])}}}else {logger[_0xc9e7[47]](_0xc9e7[88],_0xc9e7[90])}}else {logger[_0xc9e7[47]](_0xc9e7[88],_0xc9e7[91])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[88],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[87]]= function(_0x8c04xb,_0x8c04xc,_0x8c04xd){if(_[_0xc9e7[30]](this[_0xc9e7[11]][_0x8c04xb])){this[_0xc9e7[11]][_0x8c04xb]= {}};this[_0xc9e7[11]][_0x8c04xb][_0x8c04xc]= _0x8c04xd};VoiceAgentReport[_0xc9e7[29]][_0xc9e7[27]]= function(_0x8c04x9){try{if(this[_0xc9e7[28]](_0x8c04x9)){if(this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]){ami[_0xc9e7[44]](_0xc9e7[92],_[_0xc9e7[93]](this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]));delete this[_0xc9e7[9]][_0x8c04x9[_0xc9e7[31]]]};if(this[_0xc9e7[11]][_0x8c04x9[_0xc9e7[31]]]){delete this[_0xc9e7[11]][_0x8c04x9[_0xc9e7[31]]]}}else {logger[_0xc9e7[47]](_0xc9e7[94],_0xc9e7[95])}}catch(e){logger[_0xc9e7[49]](_0xc9e7[94],util[_0xc9e7[48]](e,{showHidden:false,depth:null}))}};module[_0xc9e7[96]]= VoiceAgentReport
\ No newline at end of file
index 98c7a88..e4aa6ce 100644 (file)
@@ -1 +1 @@
-var _0x8005=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x63\x68\x61\x6E\x6E\x65\x6C","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x6E\x6F\x74\x5F\x69\x6E\x75\x73\x65","\x69\x6E\x75\x73\x65","\x62\x75\x73\x79","\x69\x6E\x76\x61\x6C\x69\x64","\x75\x6E\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x69\x6E\x67\x69\x6E\x67","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x6F\x6E\x68\x6F\x6C\x64","\x73\x65\x74","\x71\x75\x65\x75\x65","\x61\x67\x69","\x64\x69\x61\x6C","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x4E\x4F\x20\x41\x4E\x53\x57\x45\x52","\x46\x41\x49\x4C\x45\x44","\x41\x4E\x53\x57\x45\x52\x45\x44","\x42\x55\x53\x59","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x63\x6F\x72\x65\x73\x68\x6F\x77\x63\x68\x61\x6E\x6E\x65\x6C","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E","\x6F\x6E","\x6E\x65\x77\x65\x78\x74\x65\x6E","\x6E\x65\x77\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x79\x6E\x63\x4E\x65\x77\x43\x68\x61\x6E\x6E\x65\x6C","\x6E\x65\x77\x73\x74\x61\x74\x65","\x73\x79\x6E\x63\x4E\x65\x77\x53\x74\x61\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x63\x61\x74\x63\x68","\x61\x63\x74\x69\x6F\x6E\x43\x6F\x72\x65\x53\x68\x6F\x77\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x6D\x65\x72\x67\x65","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x63\x72\x65\x61\x74\x65\x64","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x43\x68\x61\x6E\x6E\x65\x6C\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x64\x61\x74\x61","\x61\x70\x70\x64\x61\x74\x61","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x73\x65\x63\x6F\x6E\x64\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x75\x70\x64\x61\x74\x65\x64","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x61\x73\x74\x64\x61\x74\x61","\x63\x64\x72\x28","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x3D","\x73\x70\x6C\x69\x74","\x6D\x61\x74\x63\x68","\x2C","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x36","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x61\x6E\x73\x77\x65\x72\x65\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x61\x6E\x73\x77\x65\x72\x65\x64","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x68\x61\x6E\x6E\x65\x6C","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x53\x74\x61\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6D\x69\x78\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x6D\x6F\x6E\x69\x74\x6F\x72\x65\x64","\x6D\x6F\x6E\x69\x74\x6F\x72","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x72\x65\x6D\x6F\x76\x65\x64","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x69\x66\x66","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x8005[0];var BPromise=require(_0x8005[1]);var _=require(_0x8005[2]);var moment=require(_0x8005[3]);var util=require(_0x8005[4]);var logger=require(_0x8005[6])(_0x8005[5]);var ami=require(_0x8005[7]);var Channel=require(_0x8005[8]);var statusDesc=[_0x8005[9],_0x8005[10],_0x8005[11],_0x8005[12],_0x8005[13],_0x8005[14],_0x8005[15],_0x8005[16],_0x8005[17]];var applications=[_0x8005[18],_0x8005[19],_0x8005[20],_0x8005[21],_0x8005[22],_0x8005[23]];var dispositions=[_0x8005[24],_0x8005[25],_0x8005[25],_0x8005[24],_0x8005[24],_0x8005[24],_0x8005[26],_0x8005[27],_0x8005[25],_0x8005[25],_0x8005[25]];var actions={};var io=require(_0x8005[29])({host:_0x8005[28],port:6379});function VoiceCallReport(_0x54e9xe){console[_0x8005[31]](_0x8005[30]);this[_0x8005[32]]= {};ami[_0x8005[36]](_0x8005[33],this[_0x8005[35]][_0x8005[34]](this));ami[_0x8005[36]](_0x8005[37],this[_0x8005[35]][_0x8005[34]](this));ami[_0x8005[36]](_0x8005[38],this[_0x8005[39]][_0x8005[34]](this));ami[_0x8005[36]](_0x8005[40],this[_0x8005[41]][_0x8005[34]](this));ami[_0x8005[36]](_0x8005[42],this[_0x8005[43]][_0x8005[34]](this));ami[_0x8005[36]](_0x8005[44],this[_0x8005[45]][_0x8005[34]](this));return BPromise[_0x8005[49]]()[_0x8005[48]](ami[_0x8005[47]]())[_0x8005[46]](function(_0x54e9xf){console[_0x8005[31]](_0x54e9xf)})}VoiceCallReport[_0x8005[51]][_0x8005[50]]= function(_0x54e9x10){return _0x54e9x10!== null&&  !_[_0x8005[52]](_0x54e9x10)};VoiceCallReport[_0x8005[51]][_0x8005[53]]= function(_0x54e9x11,_0x54e9x12,_0x54e9x10){io[_0x8005[54]](_0x54e9x11)[_0x8005[53]](_0x54e9x12,_0x54e9x10)};VoiceCallReport[_0x8005[51]][_0x8005[39]]= function(_0x54e9x12){try{if(this[_0x8005[50]](_0x54e9x12)){if(_0x54e9x12[_0x8005[55]]=== _0x54e9x12[_0x8005[56]]){if(_[_0x8005[52]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]])){this[_0x8005[32]][_0x54e9x12[_0x8005[55]]]=  new Channel();this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[57]]= moment()[_0x8005[59]](_0x8005[58]);this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[60]]= dispositions[_[_0x8005[62]](_0x54e9x12[_0x8005[61]])];_[_0x8005[65]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]],_[_0x8005[64]](_0x54e9x12,_[_0x8005[63]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]])));console[_0x8005[31]](_0x8005[66],_0x54e9x12[_0x8005[55]])}else {logger[_0x8005[69]](_0x8005[67],_0x8005[68])}}}else {logger[_0x8005[69]](_0x8005[67],_0x8005[70])}}catch(e){logger[_0x8005[72]](_0x8005[67],JSON[_0x8005[71]](e))}};VoiceCallReport[_0x8005[51]][_0x8005[35]]= function(_0x54e9x12){try{if(this[_0x8005[50]](_0x54e9x12)){if(_0x54e9x12[_0x8005[55]]=== _0x54e9x12[_0x8005[56]]){_0x54e9x12[_0x8005[73]]= _0x54e9x12[_0x8005[73]][_0x8005[74]]();_0x54e9x12[_0x8005[75]]= (_0x54e9x12[_0x8005[76]]|| _0x54e9x12[_0x8005[75]])[_0x8005[74]]();if(_[_0x8005[52]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]])){this[_0x8005[32]][_0x54e9x12[_0x8005[55]]]=  new Channel();this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[57]]= _0x54e9x12[_0x8005[77]]?moment()[_0x8005[79]](moment[_0x8005[77]](_0x54e9x12[_0x8005[77]])[_0x8005[78]](),_0x8005[78])[_0x8005[59]](_0x8005[58]):moment()[_0x8005[59]](_0x8005[58]);this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[60]]= _0x8005[24];console[_0x8005[31]](_0x8005[66],_0x54e9x12[_0x8005[55]])};_[_0x8005[65]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]],_[_0x8005[64]](_0x54e9x12,_[_0x8005[63]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]])));if(_[_0x8005[80]](applications,_0x54e9x12[_0x8005[73]])){console[_0x8005[31]](_0x8005[81],_0x54e9x12[_0x8005[55]],_0x54e9x12[_0x8005[73]],_0x54e9x12[_0x8005[75]]);this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[82]]= _0x54e9x12[_0x8005[73]];this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[83]]= _0x54e9x12[_0x8005[75]];if(_0x54e9x12[_0x8005[73]]=== _0x8005[18]&& _[_0x8005[85]](_0x54e9x12[_0x8005[75]],_0x8005[84])){var _0x54e9x13=_0x54e9x12[_0x8005[75]][_0x8005[87]](_0x8005[86]);var _0x54e9x14=_0x54e9x13[0][_0x8005[88]](/cdr\((.*)\)/);if(_0x54e9x14){this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x54e9x14[1]]= _0x54e9x13[1]}}else {if(_0x54e9x12[_0x8005[73]]=== _0x8005[19]){this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[19]]= _0x54e9x12[_0x8005[75]][_0x8005[87]](_0x8005[89])[0]}}}}}else {logger[_0x8005[69]](_0x8005[90],_0x8005[70])}}catch(e){logger[_0x8005[72]](_0x8005[90],JSON[_0x8005[71]](e))}};VoiceCallReport[_0x8005[51]][_0x8005[41]]= function(_0x54e9x12){try{if(this[_0x8005[50]](_0x54e9x12)){if(_0x54e9x12[_0x8005[55]]!== _0x54e9x12[_0x8005[56]]){if(this[_0x8005[32]][_0x54e9x12[_0x8005[56]]]){if(_0x54e9x12[_0x8005[61]]=== _0x8005[91]){console[_0x8005[31]](_0x8005[92],_0x54e9x12[_0x8005[55]],_0x54e9x12[_0x8005[93]],_0x54e9x12[_0x8005[94]]);this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[95]]= true;this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[96]]= moment()[_0x8005[59]](_0x8005[58]);this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[56]]= _0x54e9x12[_0x8005[55]];this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[97]]= _0x54e9x12[_0x8005[93]];this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[98]]= _0x54e9x12[_0x8005[94]];this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[99]]= _0x54e9x12[_0x8005[100]];this[_0x8005[32]][_0x54e9x12[_0x8005[56]]][_0x8005[60]]= dispositions[_[_0x8005[62]](_0x54e9x12[_0x8005[61]])]}}else {logger[_0x8005[69]](_0x8005[101],_0x8005[68])}}}else {logger[_0x8005[69]](_0x8005[101],_0x8005[70])}}catch(e){logger[_0x8005[72]](_0x8005[101],JSON[_0x8005[71]](e))}};VoiceCallReport[_0x8005[51]][_0x8005[43]]= function(_0x54e9x12){try{if(this[_0x8005[50]](_0x54e9x12)){if(this[_0x8005[32]][_0x54e9x12[_0x8005[55]]]){if(this[_0x8005[50]](_0x54e9x12[_0x8005[102]])&& this[_0x8005[50]](_0x54e9x12[_0x8005[102]][_0x8005[103]])){console[_0x8005[31]](_0x8005[104],_0x54e9x12[_0x8005[55]]);this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[105]]= true;this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[106]]= _0x54e9x12[_0x8005[107]]}}}}catch(e){logger[_0x8005[72]](_0x8005[108],JSON[_0x8005[71]](e))}};VoiceCallReport[_0x8005[51]][_0x8005[45]]= function(_0x54e9x12){try{if(this[_0x8005[50]](_0x54e9x12)){if(this[_0x8005[32]][_0x54e9x12[_0x8005[55]]]){console[_0x8005[31]](_0x8005[109],_0x54e9x12[_0x8005[55]]);var _0x54e9x15=moment();this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[110]]= _0x54e9x15[_0x8005[59]](_0x8005[58]);this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[77]]= _0x54e9x15[_0x8005[111]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[57]],_0x8005[78]);if(this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[95]]){this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[112]]= _0x54e9x15[_0x8005[111]](this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[96]],_0x8005[78]);this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[113]]= this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[77]]- this[_0x8005[32]][_0x54e9x12[_0x8005[55]]][_0x8005[112]]};ami[_0x8005[53]](_0x8005[114],this[_0x8005[32]][_0x54e9x12[_0x8005[55]]]);delete this[_0x8005[32]][_0x54e9x12[_0x8005[55]]]}else {logger[_0x8005[69]](_0x8005[115],_0x8005[68])}}else {logger[_0x8005[69]](_0x8005[115],_0x8005[70])}}catch(e){logger[_0x8005[72]](_0x8005[115],JSON[_0x8005[71]](e))}};module[_0x8005[116]]= VoiceCallReport
\ No newline at end of file
+var _0xe721=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x63\x68\x61\x6E\x6E\x65\x6C","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x6E\x6F\x74\x5F\x69\x6E\x75\x73\x65","\x69\x6E\x75\x73\x65","\x62\x75\x73\x79","\x69\x6E\x76\x61\x6C\x69\x64","\x75\x6E\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x69\x6E\x67\x69\x6E\x67","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x6F\x6E\x68\x6F\x6C\x64","\x73\x65\x74","\x71\x75\x65\x75\x65","\x61\x67\x69","\x64\x69\x61\x6C","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x4E\x4F\x20\x41\x4E\x53\x57\x45\x52","\x46\x41\x49\x4C\x45\x44","\x41\x4E\x53\x57\x45\x52\x45\x44","\x42\x55\x53\x59","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x63\x6F\x72\x65\x73\x68\x6F\x77\x63\x68\x61\x6E\x6E\x65\x6C","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E","\x6F\x6E","\x6E\x65\x77\x65\x78\x74\x65\x6E","\x6E\x65\x77\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x79\x6E\x63\x4E\x65\x77\x43\x68\x61\x6E\x6E\x65\x6C","\x6E\x65\x77\x73\x74\x61\x74\x65","\x73\x79\x6E\x63\x4E\x65\x77\x53\x74\x61\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x63\x61\x74\x63\x68","\x61\x63\x74\x69\x6F\x6E\x43\x6F\x72\x65\x53\x68\x6F\x77\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x6D\x65\x72\x67\x65","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x63\x72\x65\x61\x74\x65\x64","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x43\x68\x61\x6E\x6E\x65\x6C\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x64\x61\x74\x61","\x61\x70\x70\x64\x61\x74\x61","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x73\x65\x63\x6F\x6E\x64\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x75\x70\x64\x61\x74\x65\x64","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x61\x73\x74\x64\x61\x74\x61","\x63\x64\x72\x28","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x3D","\x73\x70\x6C\x69\x74","\x6D\x61\x74\x63\x68","\x2C","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x36","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x61\x6E\x73\x77\x65\x72\x65\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x61\x6E\x73\x77\x65\x72\x65\x64","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x68\x61\x6E\x6E\x65\x6C","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x53\x74\x61\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6D\x69\x78\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x6D\x6F\x6E\x69\x74\x6F\x72\x65\x64","\x6D\x6F\x6E\x69\x74\x6F\x72","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x72\x65\x6D\x6F\x76\x65\x64","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x69\x66\x66","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0xe721[0];var BPromise=require(_0xe721[1]);var _=require(_0xe721[2]);var moment=require(_0xe721[3]);var util=require(_0xe721[4]);var logger=require(_0xe721[6])(_0xe721[5]);var ami=require(_0xe721[7]);var Channel=require(_0xe721[8]);var statusDesc=[_0xe721[9],_0xe721[10],_0xe721[11],_0xe721[12],_0xe721[13],_0xe721[14],_0xe721[15],_0xe721[16],_0xe721[17]];var applications=[_0xe721[18],_0xe721[19],_0xe721[20],_0xe721[21],_0xe721[22],_0xe721[23]];var dispositions=[_0xe721[24],_0xe721[25],_0xe721[25],_0xe721[24],_0xe721[24],_0xe721[24],_0xe721[26],_0xe721[27],_0xe721[25],_0xe721[25],_0xe721[25]];var actions={};var io=require(_0xe721[29])({host:_0xe721[28],port:6379});function VoiceCallReport(_0xd9dexe){console[_0xe721[31]](_0xe721[30]);this[_0xe721[32]]= {};ami[_0xe721[36]](_0xe721[33],this[_0xe721[35]][_0xe721[34]](this));ami[_0xe721[36]](_0xe721[37],this[_0xe721[35]][_0xe721[34]](this));ami[_0xe721[36]](_0xe721[38],this[_0xe721[39]][_0xe721[34]](this));ami[_0xe721[36]](_0xe721[40],this[_0xe721[41]][_0xe721[34]](this));ami[_0xe721[36]](_0xe721[42],this[_0xe721[43]][_0xe721[34]](this));ami[_0xe721[36]](_0xe721[44],this[_0xe721[45]][_0xe721[34]](this));return BPromise[_0xe721[49]]()[_0xe721[48]](ami[_0xe721[47]]())[_0xe721[46]](function(_0xd9dexf){console[_0xe721[31]](_0xd9dexf)})}VoiceCallReport[_0xe721[51]][_0xe721[50]]= function(_0xd9dex10){return _0xd9dex10!== null&&  !_[_0xe721[52]](_0xd9dex10)};VoiceCallReport[_0xe721[51]][_0xe721[53]]= function(_0xd9dex11,_0xd9dex12,_0xd9dex10){io[_0xe721[54]](_0xd9dex11)[_0xe721[53]](_0xd9dex12,_0xd9dex10)};VoiceCallReport[_0xe721[51]][_0xe721[39]]= function(_0xd9dex12){try{if(this[_0xe721[50]](_0xd9dex12)){if(_0xd9dex12[_0xe721[55]]=== _0xd9dex12[_0xe721[56]]){if(_[_0xe721[52]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]])){this[_0xe721[32]][_0xd9dex12[_0xe721[55]]]=  new Channel();this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[57]]= moment()[_0xe721[59]](_0xe721[58]);this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[60]]= dispositions[_[_0xe721[62]](_0xd9dex12[_0xe721[61]])];_[_0xe721[65]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]],_[_0xe721[64]](_0xd9dex12,_[_0xe721[63]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]])));console[_0xe721[31]](_0xe721[66],_0xd9dex12[_0xe721[55]])}else {logger[_0xe721[69]](_0xe721[67],_0xe721[68])}}}else {logger[_0xe721[69]](_0xe721[67],_0xe721[70])}}catch(e){logger[_0xe721[72]](_0xe721[67],util[_0xe721[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xe721[51]][_0xe721[35]]= function(_0xd9dex12){try{if(this[_0xe721[50]](_0xd9dex12)){if(_0xd9dex12[_0xe721[55]]=== _0xd9dex12[_0xe721[56]]){_0xd9dex12[_0xe721[73]]= _0xd9dex12[_0xe721[73]][_0xe721[74]]();_0xd9dex12[_0xe721[75]]= (_0xd9dex12[_0xe721[76]]|| _0xd9dex12[_0xe721[75]])[_0xe721[74]]();if(_[_0xe721[52]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]])){this[_0xe721[32]][_0xd9dex12[_0xe721[55]]]=  new Channel();this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[57]]= _0xd9dex12[_0xe721[77]]?moment()[_0xe721[79]](moment[_0xe721[77]](_0xd9dex12[_0xe721[77]])[_0xe721[78]](),_0xe721[78])[_0xe721[59]](_0xe721[58]):moment()[_0xe721[59]](_0xe721[58]);this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[60]]= _0xe721[24];console[_0xe721[31]](_0xe721[66],_0xd9dex12[_0xe721[55]])};_[_0xe721[65]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]],_[_0xe721[64]](_0xd9dex12,_[_0xe721[63]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]])));if(_[_0xe721[80]](applications,_0xd9dex12[_0xe721[73]])){console[_0xe721[31]](_0xe721[81],_0xd9dex12[_0xe721[55]],_0xd9dex12[_0xe721[73]],_0xd9dex12[_0xe721[75]]);this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[82]]= _0xd9dex12[_0xe721[73]];this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[83]]= _0xd9dex12[_0xe721[75]];if(_0xd9dex12[_0xe721[73]]=== _0xe721[18]&& _[_0xe721[85]](_0xd9dex12[_0xe721[75]],_0xe721[84])){var _0xd9dex13=_0xd9dex12[_0xe721[75]][_0xe721[87]](_0xe721[86]);var _0xd9dex14=_0xd9dex13[0][_0xe721[88]](/cdr\((.*)\)/);if(_0xd9dex14){this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xd9dex14[1]]= _0xd9dex13[1]}}else {if(_0xd9dex12[_0xe721[73]]=== _0xe721[19]){this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[19]]= _0xd9dex12[_0xe721[75]][_0xe721[87]](_0xe721[89])[0]}}}}}else {logger[_0xe721[69]](_0xe721[90],_0xe721[70])}}catch(e){logger[_0xe721[72]](_0xe721[90],util[_0xe721[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xe721[51]][_0xe721[41]]= function(_0xd9dex12){try{if(this[_0xe721[50]](_0xd9dex12)){if(_0xd9dex12[_0xe721[55]]!== _0xd9dex12[_0xe721[56]]){if(this[_0xe721[32]][_0xd9dex12[_0xe721[56]]]){if(_0xd9dex12[_0xe721[61]]=== _0xe721[91]){console[_0xe721[31]](_0xe721[92],_0xd9dex12[_0xe721[55]],_0xd9dex12[_0xe721[93]],_0xd9dex12[_0xe721[94]]);this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[95]]= true;this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[96]]= moment()[_0xe721[59]](_0xe721[58]);this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[56]]= _0xd9dex12[_0xe721[55]];this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[97]]= _0xd9dex12[_0xe721[93]];this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[98]]= _0xd9dex12[_0xe721[94]];this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[99]]= _0xd9dex12[_0xe721[100]];this[_0xe721[32]][_0xd9dex12[_0xe721[56]]][_0xe721[60]]= dispositions[_[_0xe721[62]](_0xd9dex12[_0xe721[61]])]}}else {logger[_0xe721[69]](_0xe721[101],_0xe721[68])}}}else {logger[_0xe721[69]](_0xe721[101],_0xe721[70])}}catch(e){logger[_0xe721[72]](_0xe721[101],util[_0xe721[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xe721[51]][_0xe721[43]]= function(_0xd9dex12){try{if(this[_0xe721[50]](_0xd9dex12)){if(this[_0xe721[32]][_0xd9dex12[_0xe721[55]]]){if(this[_0xe721[50]](_0xd9dex12[_0xe721[102]])&& this[_0xe721[50]](_0xd9dex12[_0xe721[102]][_0xe721[103]])){console[_0xe721[31]](_0xe721[104],_0xd9dex12[_0xe721[55]]);this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[105]]= true;this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[106]]= _0xd9dex12[_0xe721[107]]}}}}catch(e){logger[_0xe721[72]](_0xe721[108],util[_0xe721[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xe721[51]][_0xe721[45]]= function(_0xd9dex12){try{if(this[_0xe721[50]](_0xd9dex12)){if(this[_0xe721[32]][_0xd9dex12[_0xe721[55]]]){console[_0xe721[31]](_0xe721[109],_0xd9dex12[_0xe721[55]]);var _0xd9dex15=moment();this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[110]]= _0xd9dex15[_0xe721[59]](_0xe721[58]);this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[77]]= _0xd9dex15[_0xe721[111]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[57]],_0xe721[78]);if(this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[95]]){this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[112]]= _0xd9dex15[_0xe721[111]](this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[96]],_0xe721[78]);this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[113]]= this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[77]]- this[_0xe721[32]][_0xd9dex12[_0xe721[55]]][_0xe721[112]]};ami[_0xe721[53]](_0xe721[114],this[_0xe721[32]][_0xd9dex12[_0xe721[55]]]);delete this[_0xe721[32]][_0xd9dex12[_0xe721[55]]]}else {logger[_0xe721[69]](_0xe721[115],_0xe721[68])}}else {logger[_0xe721[69]](_0xe721[115],_0xe721[70])}}catch(e){logger[_0xe721[72]](_0xe721[115],util[_0xe721[71]](e,{showHidden:false,depth:null}))}};module[_0xe721[116]]= VoiceCallReport
\ No newline at end of file
index e23d62b..9dea7c3 100644 (file)
@@ -1 +1 @@
-var _0x29d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x44\x69\x61\x6C\x42\x65\x67\x69\x6E","\x6F\x6E","\x64\x69\x61\x6C\x65\x6E\x64","\x73\x79\x6E\x63\x44\x69\x61\x6C\x45\x6E\x64","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x44\x49\x41\x4C\x3A\x75\x70\x64\x61\x74\x65\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x64","\x2D","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2F","\x65\x76\x65\x6E\x74","\x70\x72\x69\x76\x69\x6C\x65\x67\x65","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x76\x6F\x69\x63\x65\x3A\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x73\x61\x76\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x5B\x73\x79\x6E\x63\x44\x69\x61\x6C\x42\x65\x67\x69\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x65\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x64\x69\x61\x6C\x73\x74\x61\x74\x75\x73","\x41\x4E\x53\x57\x45\x52","\x44\x49\x41\x4C\x3A\x61\x6E\x73\x77\x65\x72\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x73\x79\x6E\x63\x44\x69\x61\x6C\x45\x6E\x64\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64","\x44\x49\x41\x4C\x3A\x63\x72\x65\x61\x74\x65\x64","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x75\x6C\x6C\x5D","\x44\x49\x41\x4C\x3A\x72\x65\x6D\x6F\x76\x65\x64","\x65\x6E\x64\x74\x69\x6D\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x65\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x3A\x73\x61\x76\x65","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x29d6[0];var _=require(_0x29d6[1]);var moment=require(_0x29d6[2]);var logger=require(_0x29d6[4])(_0x29d6[3]);var ami=require(_0x29d6[5]);var io=require(_0x29d6[7])({host:_0x29d6[6],port:6379});function VoiceDialReport(_0xf42bx7){console[_0x29d6[9]](_0x29d6[8]);this[_0x29d6[10]]= _0xf42bx7[_0x29d6[11]];this[_0x29d6[12]]= _0xf42bx7[_0x29d6[12]];this[_0x29d6[13]]= {};ami[_0x29d6[17]](_0x29d6[14],this[_0x29d6[16]][_0x29d6[15]](this));ami[_0x29d6[17]](_0x29d6[18],this[_0x29d6[19]][_0x29d6[15]](this));ami[_0x29d6[17]](_0x29d6[20],this[_0x29d6[21]][_0x29d6[15]](this));ami[_0x29d6[17]](_0x29d6[22],this[_0x29d6[23]][_0x29d6[15]](this))}VoiceDialReport[_0x29d6[25]][_0x29d6[24]]= function(_0xf42bx8){return _0xf42bx8!== null&&  !_[_0x29d6[26]](_0xf42bx8)};VoiceDialReport[_0x29d6[25]][_0x29d6[27]]= function(_0xf42bx9,_0xf42bxa,_0xf42bx8){io[_0x29d6[28]](_0xf42bx9)[_0x29d6[27]](_0xf42bxa,_0xf42bx8)};VoiceDialReport[_0x29d6[25]][_0x29d6[16]]= function(_0xf42bxa){try{if(this[_0x29d6[24]](_0xf42bxa)){if(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]){console[_0x29d6[9]](_0x29d6[30],_0xf42bxa[_0x29d6[29]]);_[_0x29d6[42]](this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]],{starttime:moment()[_0x29d6[32]](_0x29d6[31]),lastevent:_0x29d6[33],interface:_0xf42bxa[_0x29d6[36]][_0x29d6[37]](0,_0xf42bxa[_0x29d6[36]][_0x29d6[35]](_0x29d6[34])),membername:_0xf42bxa[_0x29d6[36]][_0x29d6[37]](_0xf42bxa[_0x29d6[36]][_0x29d6[35]](_0x29d6[38])+ 1,_0xf42bxa[_0x29d6[36]][_0x29d6[35]](_0x29d6[34]))},_[_0x29d6[41]](_0xf42bxa,[_0x29d6[39],_0x29d6[40]]));this[_0x29d6[27]](_0x29d6[43],_0x29d6[44],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]);ami[_0x29d6[27]](_0x29d6[45],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]])}else {logger[_0x29d6[48]](_0x29d6[46],_0x29d6[47])}}else {logger[_0x29d6[48]](_0x29d6[46],_0x29d6[49])}}catch(e){logger[_0x29d6[51]](_0x29d6[46],JSON[_0x29d6[50]](e))}};VoiceDialReport[_0x29d6[25]][_0x29d6[19]]= function(_0xf42bxa){try{if(this[_0x29d6[24]](_0xf42bxa)){if(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]){this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[52]]= _0xf42bxa[_0x29d6[52]];if(_0xf42bxa[_0x29d6[52]]=== _0x29d6[53]){console[_0x29d6[9]](_0x29d6[54],_0xf42bxa[_0x29d6[29]]);this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[55]]= _0xf42bxa[_0x29d6[55]];this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[56]]= _0xf42bxa[_0x29d6[56]];this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[57]]= moment()[_0x29d6[32]](_0x29d6[31]);this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[58]]= _0x29d6[59];ami[_0x29d6[27]](_0x29d6[60],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]])};this[_0x29d6[27]](_0x29d6[43],_0x29d6[44],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]])}else {logger[_0x29d6[48]](_0x29d6[61],_0x29d6[62])}}else {logger[_0x29d6[48]](_0x29d6[61],_0x29d6[49])}}catch(e){logger[_0x29d6[51]](_0x29d6[61],JSON[_0x29d6[50]](e))}};VoiceDialReport[_0x29d6[25]][_0x29d6[21]]= function(_0xf42bxa){try{if(this[_0x29d6[24]](_0xf42bxa)){this[_0x29d6[66]](_0xf42bxa[_0x29d6[29]],_[_0x29d6[64]](_0xf42bxa[_0x29d6[63]])[0],_0xf42bxa[_0x29d6[65]]);if(this[_0x29d6[24]](_0xf42bxa[_0x29d6[63]])&& this[_0x29d6[24]](_0xf42bxa[_0x29d6[63]][_0x29d6[67]])){if(_[_0x29d6[26]](this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]])){console[_0x29d6[9]](_0x29d6[68],_0xf42bxa[_0x29d6[29]]);this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]= {routeId:_0xf42bxa[_0x29d6[65]],variables:this[_0x29d6[13]][_0xf42bxa[_0x29d6[29]]]};this[_0x29d6[27]](_0x29d6[43],_0x29d6[44],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]])}else {logger[_0x29d6[48]](_0x29d6[69],_0x29d6[62])}}else {logger[_0x29d6[48]](_0x29d6[69],_0x29d6[70])}}else {logger[_0x29d6[48]](_0x29d6[69],_0x29d6[49])}}catch(e){logger[_0x29d6[51]](_0x29d6[69],JSON[_0x29d6[50]](e))}};VoiceDialReport[_0x29d6[25]][_0x29d6[66]]= function(_0xf42bxb,_0xf42bxc,_0xf42bxd){if(_[_0x29d6[26]](this[_0x29d6[13]][_0xf42bxb])){this[_0x29d6[13]][_0xf42bxb]= {}};this[_0x29d6[13]][_0xf42bxb][_0xf42bxc]= _0xf42bxd};VoiceDialReport[_0x29d6[25]][_0x29d6[23]]= function(_0xf42bxa){try{if(this[_0x29d6[24]](_0xf42bxa)){if(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]){console[_0x29d6[9]](_0x29d6[71],_0xf42bxa[_0x29d6[29]]);this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[72]]= moment()[_0x29d6[32]](_0x29d6[31]);this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[58]]= _0x29d6[73];this[_0x29d6[12]][_0x29d6[74]]+= 1;if(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[57]]){this[_0x29d6[12]][_0x29d6[75]]+= 1;this[_0x29d6[12]][_0x29d6[76]]+= moment(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[57]])[_0x29d6[79]](this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[77]],_0x29d6[78]);this[_0x29d6[12]][_0x29d6[80]]+= moment(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[72]])[_0x29d6[79]](this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[57]],_0x29d6[78])};this[_0x29d6[12]][_0x29d6[81]]+= moment(this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[72]])[_0x29d6[79]](this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]][_0x29d6[57]],_0x29d6[78]);ami[_0x29d6[27]](_0x29d6[82],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]);ami[_0x29d6[27]](_0x29d6[83],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]);this[_0x29d6[27]](_0x29d6[43],_0x29d6[84],this[_0x29d6[12]]);this[_0x29d6[27]](_0x29d6[43],_0x29d6[85],this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]);delete this[_0x29d6[10]][_0xf42bxa[_0x29d6[29]]]}else {logger[_0x29d6[48]](_0x29d6[86],_0x29d6[62])};if(this[_0x29d6[13]][_0xf42bxa[_0x29d6[29]]]){delete this[_0x29d6[13]][_0xf42bxa[_0x29d6[29]]]}}else {logger[_0x29d6[48]](_0x29d6[86],_0x29d6[49])}}catch(e){logger[_0x29d6[51]](_0x29d6[86],JSON[_0x29d6[50]](e))}};module[_0x29d6[87]]= VoiceDialReport
\ No newline at end of file
+var _0x2d81=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x44\x69\x61\x6C\x42\x65\x67\x69\x6E","\x6F\x6E","\x64\x69\x61\x6C\x65\x6E\x64","\x73\x79\x6E\x63\x44\x69\x61\x6C\x45\x6E\x64","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x44\x49\x41\x4C\x3A\x75\x70\x64\x61\x74\x65\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x64","\x2D","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2F","\x65\x76\x65\x6E\x74","\x70\x72\x69\x76\x69\x6C\x65\x67\x65","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x76\x6F\x69\x63\x65\x3A\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x73\x61\x76\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x5B\x73\x79\x6E\x63\x44\x69\x61\x6C\x42\x65\x67\x69\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x65\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x64\x69\x61\x6C\x73\x74\x61\x74\x75\x73","\x41\x4E\x53\x57\x45\x52","\x44\x49\x41\x4C\x3A\x61\x6E\x73\x77\x65\x72\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x73\x79\x6E\x63\x44\x69\x61\x6C\x45\x6E\x64\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64","\x44\x49\x41\x4C\x3A\x63\x72\x65\x61\x74\x65\x64","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x75\x6C\x6C\x5D","\x44\x49\x41\x4C\x3A\x72\x65\x6D\x6F\x76\x65\x64","\x65\x6E\x64\x74\x69\x6D\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x65\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x3A\x73\x61\x76\x65","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x2d81[0];var _=require(_0x2d81[1]);var moment=require(_0x2d81[2]);var util=require(_0x2d81[3]);var logger=require(_0x2d81[5])(_0x2d81[4]);var ami=require(_0x2d81[6]);var io=require(_0x2d81[8])({host:_0x2d81[7],port:6379});function VoiceDialReport(_0xe97ex8){console[_0x2d81[10]](_0x2d81[9]);this[_0x2d81[11]]= _0xe97ex8[_0x2d81[12]];this[_0x2d81[13]]= _0xe97ex8[_0x2d81[13]];this[_0x2d81[14]]= {};ami[_0x2d81[18]](_0x2d81[15],this[_0x2d81[17]][_0x2d81[16]](this));ami[_0x2d81[18]](_0x2d81[19],this[_0x2d81[20]][_0x2d81[16]](this));ami[_0x2d81[18]](_0x2d81[21],this[_0x2d81[22]][_0x2d81[16]](this));ami[_0x2d81[18]](_0x2d81[23],this[_0x2d81[24]][_0x2d81[16]](this))}VoiceDialReport[_0x2d81[26]][_0x2d81[25]]= function(_0xe97ex9){return _0xe97ex9!== null&&  !_[_0x2d81[27]](_0xe97ex9)};VoiceDialReport[_0x2d81[26]][_0x2d81[28]]= function(_0xe97exa,_0xe97exb,_0xe97ex9){io[_0x2d81[29]](_0xe97exa)[_0x2d81[28]](_0xe97exb,_0xe97ex9)};VoiceDialReport[_0x2d81[26]][_0x2d81[17]]= function(_0xe97exb){try{if(this[_0x2d81[25]](_0xe97exb)){if(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]){console[_0x2d81[10]](_0x2d81[31],_0xe97exb[_0x2d81[30]]);_[_0x2d81[43]](this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]],{starttime:moment()[_0x2d81[33]](_0x2d81[32]),lastevent:_0x2d81[34],interface:_0xe97exb[_0x2d81[37]][_0x2d81[38]](0,_0xe97exb[_0x2d81[37]][_0x2d81[36]](_0x2d81[35])),membername:_0xe97exb[_0x2d81[37]][_0x2d81[38]](_0xe97exb[_0x2d81[37]][_0x2d81[36]](_0x2d81[39])+ 1,_0xe97exb[_0x2d81[37]][_0x2d81[36]](_0x2d81[35]))},_[_0x2d81[42]](_0xe97exb,[_0x2d81[40],_0x2d81[41]]));this[_0x2d81[28]](_0x2d81[44],_0x2d81[45],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]);ami[_0x2d81[28]](_0x2d81[46],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]])}else {logger[_0x2d81[49]](_0x2d81[47],_0x2d81[48])}}else {logger[_0x2d81[49]](_0x2d81[47],_0x2d81[50])}}catch(e){logger[_0x2d81[52]](_0x2d81[47],util[_0x2d81[51]](e,{showHidden:false,depth:null}))}};VoiceDialReport[_0x2d81[26]][_0x2d81[20]]= function(_0xe97exb){try{if(this[_0x2d81[25]](_0xe97exb)){if(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]){this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[53]]= _0xe97exb[_0x2d81[53]];if(_0xe97exb[_0x2d81[53]]=== _0x2d81[54]){console[_0x2d81[10]](_0x2d81[55],_0xe97exb[_0x2d81[30]]);this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[56]]= _0xe97exb[_0x2d81[56]];this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[57]]= _0xe97exb[_0x2d81[57]];this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[58]]= moment()[_0x2d81[33]](_0x2d81[32]);this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[59]]= _0x2d81[60];ami[_0x2d81[28]](_0x2d81[61],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]])};this[_0x2d81[28]](_0x2d81[44],_0x2d81[45],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]])}else {logger[_0x2d81[49]](_0x2d81[62],_0x2d81[63])}}else {logger[_0x2d81[49]](_0x2d81[62],_0x2d81[50])}}catch(e){logger[_0x2d81[52]](_0x2d81[62],util[_0x2d81[51]](e,{showHidden:false,depth:null}))}};VoiceDialReport[_0x2d81[26]][_0x2d81[22]]= function(_0xe97exb){try{if(this[_0x2d81[25]](_0xe97exb)){this[_0x2d81[67]](_0xe97exb[_0x2d81[30]],_[_0x2d81[65]](_0xe97exb[_0x2d81[64]])[0],_0xe97exb[_0x2d81[66]]);if(this[_0x2d81[25]](_0xe97exb[_0x2d81[64]])&& this[_0x2d81[25]](_0xe97exb[_0x2d81[64]][_0x2d81[68]])){if(_[_0x2d81[27]](this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]])){console[_0x2d81[10]](_0x2d81[69],_0xe97exb[_0x2d81[30]]);this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]= {routeId:_0xe97exb[_0x2d81[66]],variables:this[_0x2d81[14]][_0xe97exb[_0x2d81[30]]]};this[_0x2d81[28]](_0x2d81[44],_0x2d81[45],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]])}else {logger[_0x2d81[49]](_0x2d81[70],_0x2d81[63])}}else {logger[_0x2d81[49]](_0x2d81[70],_0x2d81[71])}}else {logger[_0x2d81[49]](_0x2d81[70],_0x2d81[50])}}catch(e){logger[_0x2d81[52]](_0x2d81[70],util[_0x2d81[51]](e,{showHidden:false,depth:null}))}};VoiceDialReport[_0x2d81[26]][_0x2d81[67]]= function(_0xe97exc,_0xe97exd,_0xe97exe){if(_[_0x2d81[27]](this[_0x2d81[14]][_0xe97exc])){this[_0x2d81[14]][_0xe97exc]= {}};this[_0x2d81[14]][_0xe97exc][_0xe97exd]= _0xe97exe};VoiceDialReport[_0x2d81[26]][_0x2d81[24]]= function(_0xe97exb){try{if(this[_0x2d81[25]](_0xe97exb)){if(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]){console[_0x2d81[10]](_0x2d81[72],_0xe97exb[_0x2d81[30]]);this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[73]]= moment()[_0x2d81[33]](_0x2d81[32]);this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[59]]= _0x2d81[74];this[_0x2d81[13]][_0x2d81[75]]+= 1;if(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[58]]){this[_0x2d81[13]][_0x2d81[76]]+= 1;this[_0x2d81[13]][_0x2d81[77]]+= moment(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[58]])[_0x2d81[80]](this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[78]],_0x2d81[79]);this[_0x2d81[13]][_0x2d81[81]]+= moment(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[73]])[_0x2d81[80]](this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[58]],_0x2d81[79])};this[_0x2d81[13]][_0x2d81[82]]+= moment(this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[73]])[_0x2d81[80]](this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]][_0x2d81[58]],_0x2d81[79]);ami[_0x2d81[28]](_0x2d81[83],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]);ami[_0x2d81[28]](_0x2d81[84],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]);this[_0x2d81[28]](_0x2d81[44],_0x2d81[85],this[_0x2d81[13]]);this[_0x2d81[28]](_0x2d81[44],_0x2d81[86],this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]);delete this[_0x2d81[11]][_0xe97exb[_0x2d81[30]]]}else {logger[_0x2d81[49]](_0x2d81[87],_0x2d81[63])};if(this[_0x2d81[14]][_0xe97exb[_0x2d81[30]]]){delete this[_0x2d81[14]][_0xe97exb[_0x2d81[30]]]}}else {logger[_0x2d81[49]](_0x2d81[87],_0x2d81[50])}}catch(e){logger[_0x2d81[52]](_0x2d81[87],util[_0x2d81[51]](e,{showHidden:false,depth:null}))}};module[_0x2d81[88]]= VoiceDialReport
\ No newline at end of file
index 0cda404..b657b44 100644 (file)
@@ -1 +1 @@
-var _0xeec8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x71\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x71\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x66\x6C\x61\x67\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6E\x65\x77\x65\x78\x74\x65\x6E","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E","\x6F\x6E","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4A\x6F\x69\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x6C\x6F\x6F\x70\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x6C\x6F\x6F\x70\x51\x75\x65\x75\x65\x53\x68\x6F\x77","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x65\x6D\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x74\x6F","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x53\x61\x76\x65","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x5B\x71\x75\x65\x75\x65\x73\x5D","\x63\x61\x74\x63\x68","\x71\x75\x65\x75\x65\x73","\x5B\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79\x5D","\x74\x68\x65\x6E","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x63\x61\x6C\x6C\x65\x72\x73","\x77\x61\x69\x74\x69\x6E\x67","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x6C\x6F\x67\x67\x65\x64\x69\x6E","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x74\x61\x6C\x6B\x69\x6E\x67","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x69\x6E\x73\x70\x65\x63\x74","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x2C","\x73\x70\x6C\x69\x74","\x61\x70\x70\x64\x61\x74\x61","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6C\x61\x73\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x6F\x75\x6E\x74","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4A\x6F\x69\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6F\x62\x6A\x20\x6E\x75\x6C\x6C","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x61\x73\x73\x69\x67\x6E\x65\x64","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x71\x75\x65\x75\x65\x73\x74\x61\x74\x75\x73","\x71\x75\x65\x75\x65\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x45\x58\x49\x54\x57\x49\x54\x48\x4B\x45\x59","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6C\x65\x6E\x67\x74\x68","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0xeec8[0];var _=require(_0xeec8[1]);var moment=require(_0xeec8[2]);var BPromise=require(_0xeec8[3]);var util=require(_0xeec8[4]);var logger=require(_0xeec8[6])(_0xeec8[5]);var ami=require(_0xeec8[7]);var QueueReport=require(_0xeec8[8]);var io=require(_0xeec8[10])({host:_0xeec8[9],port:6379});function VoiceQueueReport(_0xcd1bxa){console[_0xeec8[12]](_0xeec8[11]);this[_0xeec8[13]]= {};this[_0xeec8[14]]= _0xcd1bxa[_0xeec8[15]];this[_0xeec8[16]]= _0xcd1bxa[_0xeec8[16]];this[_0xeec8[17]]= true;this[_0xeec8[18]]= {};ami[_0xeec8[22]](_0xeec8[19],this[_0xeec8[21]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[23],this[_0xeec8[24]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[25],this[_0xeec8[26]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[27],this[_0xeec8[28]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[29],this[_0xeec8[30]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[31],this[_0xeec8[32]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[33],this[_0xeec8[34]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[35],this[_0xeec8[36]][_0xeec8[20]](this));ami[_0xeec8[22]](_0xeec8[37],this[_0xeec8[38]][_0xeec8[20]](this));this[_0xeec8[39]]();this[_0xeec8[40]]()}function loggerCatch(_0xcd1bxc){return function(_0xcd1bxd){console[_0xeec8[12]](_0xcd1bxc,_0xcd1bxd);logger[_0xeec8[42]](_0xcd1bxc,JSON[_0xeec8[41]](_0xcd1bxd))}}VoiceQueueReport[_0xeec8[44]][_0xeec8[43]]= function(_0xcd1bxe,_0xcd1bxf,_0xcd1bx10){io[_0xeec8[45]](_0xcd1bxe)[_0xeec8[43]](_0xcd1bxf,_0xcd1bx10)};VoiceQueueReport[_0xeec8[44]][_0xeec8[46]]= function(_0xcd1bx10){this[_0xeec8[43]](util[_0xeec8[49]](_0xeec8[47],_0xcd1bx10[_0xeec8[48]]),_0xeec8[50],_0xcd1bx10)};VoiceQueueReport[_0xeec8[44]][_0xeec8[51]]= function(_0xcd1bx10){this[_0xeec8[43]](util[_0xeec8[49]](_0xeec8[47],_0xcd1bx10[_0xeec8[48]]),_0xeec8[52],_0xcd1bx10)};VoiceQueueReport[_0xeec8[44]][_0xeec8[53]]= function(_0xcd1bx10){if(_0xcd1bx10[_0xeec8[54]]=== _0xeec8[55]){this[_0xeec8[43]](util[_0xeec8[49]](_0xeec8[47],_0xcd1bx10[_0xeec8[48]]),_0xeec8[56],_0xcd1bx10)}};VoiceQueueReport[_0xeec8[44]][_0xeec8[57]]= function(_0xcd1bx10){return _0xcd1bx10!== null&&  !_[_0xeec8[58]](_0xcd1bx10)};VoiceQueueReport[_0xeec8[44]][_0xeec8[40]]= function(){setInterval(function(){ami.Action({action:_0xeec8[61]})[_0xeec8[60]](loggerCatch(_0xeec8[59]))},10000)};VoiceQueueReport[_0xeec8[44]][_0xeec8[39]]= function(){var _0xcd1bx11=this;setInterval(function(){if(_0xcd1bx11[_0xeec8[17]]){return ami.Action({action:_0xeec8[23]})[_0xeec8[63]](function(_0xcd1bxf){_0xcd1bx11[_0xeec8[17]]= false})[_0xeec8[60]](loggerCatch(_0xeec8[62]))}},1000)};VoiceQueueReport[_0xeec8[44]][_0xeec8[24]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)&& this[_0xeec8[57]](_0xcd1bxf[_0xeec8[64]])){if(this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]]){var _0xcd1bx12=_[_0xeec8[65]](this[_0xeec8[14]],_0xeec8[64])[_0xcd1bxf[_0xeec8[64]]]|| 0;var _0xcd1bx13=_0xcd1bx12- _0xcd1bxf[_0xeec8[66]];if(this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[67]]!== _[_0xeec8[68]](_0xcd1bxf[_0xeec8[66]])|| this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[69]]!== _[_0xeec8[68]](_0xcd1bxf[_0xeec8[70]])|| this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[71]]!== _[_0xeec8[68]](_0xcd1bxf[_0xeec8[71]])|| this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[72]]!== _0xcd1bx13){this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[67]]= _[_0xeec8[68]](_0xcd1bxf[_0xeec8[66]]);this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[69]]= _[_0xeec8[68]](_0xcd1bxf[_0xeec8[70]]);this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[71]]= _[_0xeec8[68]](_0xcd1bxf[_0xeec8[71]]);this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]][_0xeec8[72]]= _0xcd1bx13> 0?_0xcd1bx13:0;this[_0xeec8[53]](this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]])};ami[_0xeec8[43]](_0xeec8[73],this[_0xeec8[16]][_0xcd1bxf[_0xeec8[64]]])}}else {logger[_0xeec8[76]](_0xeec8[74],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[74],util[_0xeec8[77]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[26]]= function(_0xcd1bxf){this[_0xeec8[17]]= true};VoiceQueueReport[_0xeec8[44]][_0xeec8[21]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){if(!_[_0xeec8[58]](_0xcd1bxf[_0xeec8[78]])&& _0xcd1bxf[_0xeec8[78]][_0xeec8[79]]()=== _0xeec8[64]){if(_[_0xeec8[58]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]])){this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]= [];this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= {}};var _0xcd1bx14= new QueueReport();_0xcd1bx14[_0xeec8[48]]= _0xcd1bxf[_0xeec8[83]][_0xeec8[82]](_0xeec8[81])[0];_0xcd1bx14[_0xeec8[54]]= this[_0xeec8[16]][_0xcd1bx14[_0xeec8[48]]][_0xeec8[54]]?this[_0xeec8[16]][_0xcd1bx14[_0xeec8[48]]][_0xeec8[54]]|| _0xeec8[55]:_0xeec8[55];_0xcd1bx14[_0xeec8[64]]= _0xcd1bxf[_0xeec8[83]][_0xeec8[82]](_0xeec8[81])[0];_0xcd1bx14[_0xeec8[84]]= moment()[_0xeec8[49]](_0xeec8[85]);_[_0xeec8[88]](_0xcd1bx14,_[_0xeec8[87]](_0xcd1bxf,_[_0xeec8[86]](_0xcd1bx14)));this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]][_0xeec8[89]](_0xcd1bx14);this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[46]](_0xcd1bx14)}}else {logger[_0xeec8[76]](_0xeec8[90],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[90],JSON[_0xeec8[41]](e))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[28]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){var _0xcd1bx14;if(_[_0xeec8[58]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]])){this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]= [];this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= {};_0xcd1bx14=  new QueueReport();_[_0xeec8[88]](_0xcd1bx14,_[_0xeec8[87]](_0xcd1bxf,_[_0xeec8[86]](_0xcd1bx14)));this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]][_0xeec8[89]](_0xcd1bx14)}else {_0xcd1bx14= _[_0xeec8[91]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]])};_0xcd1bx14[_0xeec8[48]]= _0xcd1bxf[_0xeec8[64]];_0xcd1bx14[_0xeec8[54]]= this[_0xeec8[16]][_0xcd1bx14[_0xeec8[48]]][_0xeec8[54]]?this[_0xeec8[16]][_0xcd1bx14[_0xeec8[48]]][_0xeec8[54]]|| _0xeec8[55]:_0xeec8[55];_0xcd1bx14[_0xeec8[64]]= _0xcd1bxf[_0xeec8[64]];_0xcd1bx14[_0xeec8[84]]= moment()[_0xeec8[49]](_0xeec8[85]);_0xcd1bx14[_0xeec8[92]]= _0xcd1bxf[_0xeec8[92]];_0xcd1bx14[_0xeec8[93]]= _0xcd1bxf[_0xeec8[93]];this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[46]](_0xcd1bx14)}else {logger[_0xeec8[76]](_0xeec8[94],_0xeec8[95])}}catch(e){logger[_0xeec8[42]](_0xeec8[94],JSON[_0xeec8[41]](e))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[30]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){if(this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]){var _0xcd1bx14=_[_0xeec8[91]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]);_0xcd1bx14[_0xeec8[96]]= _0xcd1bxf[_0xeec8[96]];_0xcd1bx14[_0xeec8[97]]= _0xcd1bxf[_0xeec8[97]];_0xcd1bx14[_0xeec8[29]]= true;_0xcd1bx14[_0xeec8[98]]= moment()[_0xeec8[49]](_0xeec8[85]);this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[51]](_0xcd1bx14)}}else {logger[_0xeec8[76]](_0xeec8[99],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[99],JSON[_0xeec8[41]](e))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[32]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){if(this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]){var _0xcd1bx14=_[_0xeec8[91]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]);_0xcd1bx14[_0xeec8[100]]= moment()[_0xeec8[49]](_0xeec8[85]);_0xcd1bx14[_0xeec8[101]]= _0xcd1bxf[_0xeec8[101]];_0xcd1bx14[_0xeec8[102]]= _0xcd1bxf[_0xeec8[102]];this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[46]](_0xcd1bx14)}}else {logger[_0xeec8[76]](_0xeec8[103],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[103],JSON[_0xeec8[41]](e))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[34]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){if(this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]){var _0xcd1bx14=_[_0xeec8[91]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]);_0xcd1bx14[_0xeec8[29]]= false;_0xcd1bx14[_0xeec8[98]]= null;_0xcd1bx14[_0xeec8[104]]= false;_0xcd1bx14[_0xeec8[105]]= null;_0xcd1bx14[_0xeec8[106]]= null;_0xcd1bx14[_0xeec8[107]]= true;_0xcd1bx14[_0xeec8[108]]= moment()[_0xeec8[49]](_0xeec8[85]);_0xcd1bx14[_0xeec8[109]]= true;_0xcd1bx14[_0xeec8[110]]= _0xcd1bxf[_0xeec8[111]];_0xcd1bx14[_0xeec8[96]]= _0xcd1bxf[_0xeec8[96]];this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[51]](_0xcd1bx14)}}else {logger[_0xeec8[76]](_0xeec8[112],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[112],JSON[_0xeec8[41]](e))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[36]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){this[_0xeec8[115]](_0xcd1bxf[_0xeec8[80]],_[_0xeec8[86]](_0xcd1bxf[_0xeec8[113]])[0],_0xcd1bxf[_0xeec8[114]]);if(this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]){var _0xcd1bx14=_[_0xeec8[91]](this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]);if(this[_0xeec8[57]](_0xcd1bxf[_0xeec8[113]])&& this[_0xeec8[57]](_0xcd1bxf[_0xeec8[113]][_0xeec8[116]])){_0xcd1bx14[_0xeec8[29]]= false;_0xcd1bx14[_0xeec8[98]]= null;_0xcd1bx14[_0xeec8[104]]= true;_0xcd1bx14[_0xeec8[105]]= moment()[_0xeec8[49]](_0xeec8[85]);_0xcd1bx14[_0xeec8[106]]= _0xcd1bxf[_0xeec8[114]];_0xcd1bx14[_0xeec8[100]]= moment()[_0xeec8[49]](_0xeec8[85]);this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[51]](_0xcd1bx14)}else {if(this[_0xeec8[57]](_0xcd1bxf[_0xeec8[113]])&& this[_0xeec8[57]](_0xcd1bxf[_0xeec8[113]][_0xeec8[117]])){if(!_0xcd1bx14[_0xeec8[29]]){_0xcd1bx14[_0xeec8[104]]= true;_0xcd1bx14[_0xeec8[105]]= moment()[_0xeec8[49]](_0xeec8[85]);_0xcd1bx14[_0xeec8[106]]= _0xeec8[118];_0xcd1bx14[_0xeec8[100]]= moment()[_0xeec8[49]](_0xeec8[85])}}};_0xcd1bx14[_0xeec8[18]]= this[_0xeec8[18]][_0xcd1bxf[_0xeec8[80]]]}}else {logger[_0xeec8[76]](_0xeec8[119],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[119],JSON[_0xeec8[41]](e))}};VoiceQueueReport[_0xeec8[44]][_0xeec8[115]]= function(_0xcd1bx15,_0xcd1bx16,_0xcd1bx17){if(_[_0xeec8[58]](this[_0xeec8[18]][_0xcd1bx15])){this[_0xeec8[18]][_0xcd1bx15]= {}};this[_0xeec8[18]][_0xcd1bx15][_0xcd1bx16]= _0xcd1bx17};VoiceQueueReport[_0xeec8[44]][_0xeec8[38]]= function(_0xcd1bxf){try{if(this[_0xeec8[57]](_0xcd1bxf)){if(this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]){for(var _0xcd1bx18=0,_0xcd1bx14={};_0xcd1bx18< this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]][_0xeec8[120]];_0xcd1bx18+= 1){_0xcd1bx14= this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]][_0xcd1bx18];if(this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]]){if(_0xcd1bx14[_0xeec8[104]]){this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[121]]+= 1};this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[122]]+= moment(_0xcd1bx14[_0xeec8[100]])[_0xeec8[124]](_0xcd1bx14[_0xeec8[84]],_0xeec8[123]);if(_0xcd1bx18=== this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]][_0xeec8[120]]- 1){this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[125]]+= moment()[_0xeec8[126]](0)[_0xeec8[124]](_0xcd1bx14[_0xeec8[84]],_0xeec8[123]);this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[127]]+= 1;if(_0xcd1bx14[_0xeec8[107]]){this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[128]]+= 1;this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[129]]+= moment()[_0xeec8[126]](0)[_0xeec8[124]](_0xcd1bx14[_0xeec8[100]],_0xeec8[123])};if(_0xcd1bx14[_0xeec8[29]]){_0xcd1bx14[_0xeec8[130]]= _0xeec8[131];ami[_0xeec8[43]](_0xeec8[132],_0xcd1bx14)};if(_0xcd1bx14[_0xeec8[104]]){_0xcd1bx14[_0xeec8[130]]= _0xeec8[121];ami[_0xeec8[43]](_0xeec8[133],_0xcd1bx14)}}else {this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[125]]+= this[_0xeec8[16]][_0xcd1bx14[_0xeec8[64]]][_0xeec8[122]]};this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]= _0xcd1bx14;this[_0xeec8[51]](_0xcd1bx14)}};ami[_0xeec8[43]](_0xeec8[134],this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]]);delete this[_0xeec8[13]][_0xcd1bxf[_0xeec8[80]]];delete this[_0xeec8[14]][_0xcd1bxf[_0xeec8[80]]]};if(this[_0xeec8[18]][_0xcd1bxf[_0xeec8[80]]]){delete this[_0xeec8[18]][_0xcd1bxf[_0xeec8[80]]]}}else {logger[_0xeec8[76]](_0xeec8[135],_0xeec8[75])}}catch(e){logger[_0xeec8[42]](_0xeec8[135],JSON[_0xeec8[41]](e))}};module[_0xeec8[136]]= VoiceQueueReport
\ No newline at end of file
+var _0xca55=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x71\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x71\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x66\x6C\x61\x67\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6E\x65\x77\x65\x78\x74\x65\x6E","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E","\x6F\x6E","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4A\x6F\x69\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x6C\x6F\x6F\x70\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x6C\x6F\x6F\x70\x51\x75\x65\x75\x65\x53\x68\x6F\x77","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x65\x6D\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x74\x6F","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x53\x61\x76\x65","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x5B\x71\x75\x65\x75\x65\x73\x5D","\x63\x61\x74\x63\x68","\x71\x75\x65\x75\x65\x73","\x5B\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79\x5D","\x74\x68\x65\x6E","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x63\x61\x6C\x6C\x65\x72\x73","\x77\x61\x69\x74\x69\x6E\x67","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x6C\x6F\x67\x67\x65\x64\x69\x6E","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x74\x61\x6C\x6B\x69\x6E\x67","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x2C","\x73\x70\x6C\x69\x74","\x61\x70\x70\x64\x61\x74\x61","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6C\x61\x73\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x6F\x75\x6E\x74","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4A\x6F\x69\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6F\x62\x6A\x20\x6E\x75\x6C\x6C","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x61\x73\x73\x69\x67\x6E\x65\x64","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x71\x75\x65\x75\x65\x73\x74\x61\x74\x75\x73","\x71\x75\x65\x75\x65\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x45\x58\x49\x54\x57\x49\x54\x48\x4B\x45\x59","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6C\x65\x6E\x67\x74\x68","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0xca55[0];var _=require(_0xca55[1]);var moment=require(_0xca55[2]);var BPromise=require(_0xca55[3]);var util=require(_0xca55[4]);var logger=require(_0xca55[6])(_0xca55[5]);var ami=require(_0xca55[7]);var QueueReport=require(_0xca55[8]);var io=require(_0xca55[10])({host:_0xca55[9],port:6379});function VoiceQueueReport(_0xb552xa){console[_0xca55[12]](_0xca55[11]);this[_0xca55[13]]= {};this[_0xca55[14]]= _0xb552xa[_0xca55[15]];this[_0xca55[16]]= _0xb552xa[_0xca55[16]];this[_0xca55[17]]= true;this[_0xca55[18]]= {};ami[_0xca55[22]](_0xca55[19],this[_0xca55[21]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[23],this[_0xca55[24]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[25],this[_0xca55[26]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[27],this[_0xca55[28]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[29],this[_0xca55[30]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[31],this[_0xca55[32]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[33],this[_0xca55[34]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[35],this[_0xca55[36]][_0xca55[20]](this));ami[_0xca55[22]](_0xca55[37],this[_0xca55[38]][_0xca55[20]](this));this[_0xca55[39]]();this[_0xca55[40]]()}function loggerCatch(_0xb552xc){return function(_0xb552xd){console[_0xca55[12]](_0xb552xc,_0xb552xd);logger[_0xca55[42]](_0xb552xc,util[_0xca55[41]](_0xb552xd,{showHidden:false,depth:null}))}}VoiceQueueReport[_0xca55[44]][_0xca55[43]]= function(_0xb552xe,_0xb552xf,_0xb552x10){io[_0xca55[45]](_0xb552xe)[_0xca55[43]](_0xb552xf,_0xb552x10)};VoiceQueueReport[_0xca55[44]][_0xca55[46]]= function(_0xb552x10){this[_0xca55[43]](util[_0xca55[49]](_0xca55[47],_0xb552x10[_0xca55[48]]),_0xca55[50],_0xb552x10)};VoiceQueueReport[_0xca55[44]][_0xca55[51]]= function(_0xb552x10){this[_0xca55[43]](util[_0xca55[49]](_0xca55[47],_0xb552x10[_0xca55[48]]),_0xca55[52],_0xb552x10)};VoiceQueueReport[_0xca55[44]][_0xca55[53]]= function(_0xb552x10){if(_0xb552x10[_0xca55[54]]=== _0xca55[55]){this[_0xca55[43]](util[_0xca55[49]](_0xca55[47],_0xb552x10[_0xca55[48]]),_0xca55[56],_0xb552x10)}};VoiceQueueReport[_0xca55[44]][_0xca55[57]]= function(_0xb552x10){return _0xb552x10!== null&&  !_[_0xca55[58]](_0xb552x10)};VoiceQueueReport[_0xca55[44]][_0xca55[40]]= function(){setInterval(function(){ami.Action({action:_0xca55[61]})[_0xca55[60]](loggerCatch(_0xca55[59]))},10000)};VoiceQueueReport[_0xca55[44]][_0xca55[39]]= function(){var _0xb552x11=this;setInterval(function(){if(_0xb552x11[_0xca55[17]]){return ami.Action({action:_0xca55[23]})[_0xca55[63]](function(_0xb552xf){_0xb552x11[_0xca55[17]]= false})[_0xca55[60]](loggerCatch(_0xca55[62]))}},1000)};VoiceQueueReport[_0xca55[44]][_0xca55[24]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)&& this[_0xca55[57]](_0xb552xf[_0xca55[64]])){if(this[_0xca55[16]][_0xb552xf[_0xca55[64]]]){var _0xb552x12=_[_0xca55[65]](this[_0xca55[14]],_0xca55[64])[_0xb552xf[_0xca55[64]]]|| 0;var _0xb552x13=_0xb552x12- _0xb552xf[_0xca55[66]];if(this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[67]]!== _[_0xca55[68]](_0xb552xf[_0xca55[66]])|| this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[69]]!== _[_0xca55[68]](_0xb552xf[_0xca55[70]])|| this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[71]]!== _[_0xca55[68]](_0xb552xf[_0xca55[71]])|| this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[72]]!== _0xb552x13){this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[67]]= _[_0xca55[68]](_0xb552xf[_0xca55[66]]);this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[69]]= _[_0xca55[68]](_0xb552xf[_0xca55[70]]);this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[71]]= _[_0xca55[68]](_0xb552xf[_0xca55[71]]);this[_0xca55[16]][_0xb552xf[_0xca55[64]]][_0xca55[72]]= _0xb552x13> 0?_0xb552x13:0;this[_0xca55[53]](this[_0xca55[16]][_0xb552xf[_0xca55[64]]])};ami[_0xca55[43]](_0xca55[73],this[_0xca55[16]][_0xb552xf[_0xca55[64]]])}}else {logger[_0xca55[76]](_0xca55[74],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[74],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[26]]= function(_0xb552xf){this[_0xca55[17]]= true};VoiceQueueReport[_0xca55[44]][_0xca55[21]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){if(!_[_0xca55[58]](_0xb552xf[_0xca55[77]])&& _0xb552xf[_0xca55[77]][_0xca55[78]]()=== _0xca55[64]){if(_[_0xca55[58]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]])){this[_0xca55[13]][_0xb552xf[_0xca55[79]]]= [];this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= {}};var _0xb552x14= new QueueReport();_0xb552x14[_0xca55[48]]= _0xb552xf[_0xca55[82]][_0xca55[81]](_0xca55[80])[0];_0xb552x14[_0xca55[54]]= this[_0xca55[16]][_0xb552x14[_0xca55[48]]][_0xca55[54]]?this[_0xca55[16]][_0xb552x14[_0xca55[48]]][_0xca55[54]]|| _0xca55[55]:_0xca55[55];_0xb552x14[_0xca55[64]]= _0xb552xf[_0xca55[82]][_0xca55[81]](_0xca55[80])[0];_0xb552x14[_0xca55[83]]= moment()[_0xca55[49]](_0xca55[84]);_[_0xca55[87]](_0xb552x14,_[_0xca55[86]](_0xb552xf,_[_0xca55[85]](_0xb552x14)));this[_0xca55[13]][_0xb552xf[_0xca55[79]]][_0xca55[88]](_0xb552x14);this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[46]](_0xb552x14)}}else {logger[_0xca55[76]](_0xca55[89],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[89],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[28]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){var _0xb552x14;if(_[_0xca55[58]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]])){this[_0xca55[13]][_0xb552xf[_0xca55[79]]]= [];this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= {};_0xb552x14=  new QueueReport();_[_0xca55[87]](_0xb552x14,_[_0xca55[86]](_0xb552xf,_[_0xca55[85]](_0xb552x14)));this[_0xca55[13]][_0xb552xf[_0xca55[79]]][_0xca55[88]](_0xb552x14)}else {_0xb552x14= _[_0xca55[90]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]])};_0xb552x14[_0xca55[48]]= _0xb552xf[_0xca55[64]];_0xb552x14[_0xca55[54]]= this[_0xca55[16]][_0xb552x14[_0xca55[48]]][_0xca55[54]]?this[_0xca55[16]][_0xb552x14[_0xca55[48]]][_0xca55[54]]|| _0xca55[55]:_0xca55[55];_0xb552x14[_0xca55[64]]= _0xb552xf[_0xca55[64]];_0xb552x14[_0xca55[83]]= moment()[_0xca55[49]](_0xca55[84]);_0xb552x14[_0xca55[91]]= _0xb552xf[_0xca55[91]];_0xb552x14[_0xca55[92]]= _0xb552xf[_0xca55[92]];this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[46]](_0xb552x14)}else {logger[_0xca55[76]](_0xca55[93],_0xca55[94])}}catch(e){logger[_0xca55[42]](_0xca55[93],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[30]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){if(this[_0xca55[13]][_0xb552xf[_0xca55[79]]]){var _0xb552x14=_[_0xca55[90]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]]);_0xb552x14[_0xca55[95]]= _0xb552xf[_0xca55[95]];_0xb552x14[_0xca55[96]]= _0xb552xf[_0xca55[96]];_0xb552x14[_0xca55[29]]= true;_0xb552x14[_0xca55[97]]= moment()[_0xca55[49]](_0xca55[84]);this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[51]](_0xb552x14)}}else {logger[_0xca55[76]](_0xca55[98],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[98],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[32]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){if(this[_0xca55[13]][_0xb552xf[_0xca55[79]]]){var _0xb552x14=_[_0xca55[90]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]]);_0xb552x14[_0xca55[99]]= moment()[_0xca55[49]](_0xca55[84]);_0xb552x14[_0xca55[100]]= _0xb552xf[_0xca55[100]];_0xb552x14[_0xca55[101]]= _0xb552xf[_0xca55[101]];this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[46]](_0xb552x14)}}else {logger[_0xca55[76]](_0xca55[102],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[102],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[34]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){if(this[_0xca55[13]][_0xb552xf[_0xca55[79]]]){var _0xb552x14=_[_0xca55[90]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]]);_0xb552x14[_0xca55[29]]= false;_0xb552x14[_0xca55[97]]= null;_0xb552x14[_0xca55[103]]= false;_0xb552x14[_0xca55[104]]= null;_0xb552x14[_0xca55[105]]= null;_0xb552x14[_0xca55[106]]= true;_0xb552x14[_0xca55[107]]= moment()[_0xca55[49]](_0xca55[84]);_0xb552x14[_0xca55[108]]= true;_0xb552x14[_0xca55[109]]= _0xb552xf[_0xca55[110]];_0xb552x14[_0xca55[95]]= _0xb552xf[_0xca55[95]];this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[51]](_0xb552x14)}}else {logger[_0xca55[76]](_0xca55[111],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[111],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[36]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){this[_0xca55[114]](_0xb552xf[_0xca55[79]],_[_0xca55[85]](_0xb552xf[_0xca55[112]])[0],_0xb552xf[_0xca55[113]]);if(this[_0xca55[13]][_0xb552xf[_0xca55[79]]]){var _0xb552x14=_[_0xca55[90]](this[_0xca55[13]][_0xb552xf[_0xca55[79]]]);if(this[_0xca55[57]](_0xb552xf[_0xca55[112]])&& this[_0xca55[57]](_0xb552xf[_0xca55[112]][_0xca55[115]])){_0xb552x14[_0xca55[29]]= false;_0xb552x14[_0xca55[97]]= null;_0xb552x14[_0xca55[103]]= true;_0xb552x14[_0xca55[104]]= moment()[_0xca55[49]](_0xca55[84]);_0xb552x14[_0xca55[105]]= _0xb552xf[_0xca55[113]];_0xb552x14[_0xca55[99]]= moment()[_0xca55[49]](_0xca55[84]);this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[51]](_0xb552x14)}else {if(this[_0xca55[57]](_0xb552xf[_0xca55[112]])&& this[_0xca55[57]](_0xb552xf[_0xca55[112]][_0xca55[116]])){if(!_0xb552x14[_0xca55[29]]){_0xb552x14[_0xca55[103]]= true;_0xb552x14[_0xca55[104]]= moment()[_0xca55[49]](_0xca55[84]);_0xb552x14[_0xca55[105]]= _0xca55[117];_0xb552x14[_0xca55[99]]= moment()[_0xca55[49]](_0xca55[84])}}};_0xb552x14[_0xca55[18]]= this[_0xca55[18]][_0xb552xf[_0xca55[79]]]}}else {logger[_0xca55[76]](_0xca55[118],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[118],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0xca55[44]][_0xca55[114]]= function(_0xb552x15,_0xb552x16,_0xb552x17){if(_[_0xca55[58]](this[_0xca55[18]][_0xb552x15])){this[_0xca55[18]][_0xb552x15]= {}};this[_0xca55[18]][_0xb552x15][_0xb552x16]= _0xb552x17};VoiceQueueReport[_0xca55[44]][_0xca55[38]]= function(_0xb552xf){try{if(this[_0xca55[57]](_0xb552xf)){if(this[_0xca55[13]][_0xb552xf[_0xca55[79]]]){for(var _0xb552x18=0,_0xb552x14={};_0xb552x18< this[_0xca55[13]][_0xb552xf[_0xca55[79]]][_0xca55[119]];_0xb552x18+= 1){_0xb552x14= this[_0xca55[13]][_0xb552xf[_0xca55[79]]][_0xb552x18];if(this[_0xca55[16]][_0xb552x14[_0xca55[64]]]){if(_0xb552x14[_0xca55[103]]){this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[120]]+= 1};this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[121]]+= moment(_0xb552x14[_0xca55[99]])[_0xca55[123]](_0xb552x14[_0xca55[83]],_0xca55[122]);if(_0xb552x18=== this[_0xca55[13]][_0xb552xf[_0xca55[79]]][_0xca55[119]]- 1){this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[124]]+= moment()[_0xca55[125]](0)[_0xca55[123]](_0xb552x14[_0xca55[83]],_0xca55[122]);this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[126]]+= 1;if(_0xb552x14[_0xca55[106]]){this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[127]]+= 1;this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[128]]+= moment()[_0xca55[125]](0)[_0xca55[123]](_0xb552x14[_0xca55[99]],_0xca55[122])};if(_0xb552x14[_0xca55[29]]){_0xb552x14[_0xca55[129]]= _0xca55[130];ami[_0xca55[43]](_0xca55[131],_0xb552x14)};if(_0xb552x14[_0xca55[103]]){_0xb552x14[_0xca55[129]]= _0xca55[120];ami[_0xca55[43]](_0xca55[132],_0xb552x14)}}else {this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[124]]+= this[_0xca55[16]][_0xb552x14[_0xca55[64]]][_0xca55[121]]};this[_0xca55[14]][_0xb552xf[_0xca55[79]]]= _0xb552x14;this[_0xca55[51]](_0xb552x14)}};ami[_0xca55[43]](_0xca55[133],this[_0xca55[13]][_0xb552xf[_0xca55[79]]]);delete this[_0xca55[13]][_0xb552xf[_0xca55[79]]];delete this[_0xca55[14]][_0xb552xf[_0xca55[79]]]};if(this[_0xca55[18]][_0xb552xf[_0xca55[79]]]){delete this[_0xca55[18]][_0xb552xf[_0xca55[79]]]}}else {logger[_0xca55[76]](_0xca55[134],_0xca55[75])}}catch(e){logger[_0xca55[42]](_0xca55[134],util[_0xca55[41]](e,{showHidden:false,depth:null}))}};module[_0xca55[135]]= VoiceQueueReport
\ No newline at end of file
index 7c422da..d29e57f 100644 (file)
@@ -1 +1 @@
-var _0x7103=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E","\x69\x64","\x6E\x61\x6D\x65","\x74\x79\x70\x65","\x61\x63\x74\x69\x76\x65","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x54\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E"];_0x7103[0];var client=require(_0x7103[1]);exports[_0x7103[2]]= function(){return function(){return client.Request(_0x7103[3],{options:{raw:false,attributes:[_0x7103[4],_0x7103[5],_0x7103[6],_0x7103[7],_0x7103[8],_0x7103[9],_0x7103[10],_0x7103[11],_0x7103[12],_0x7103[13],_0x7103[14],_0x7103[15],_0x7103[16],_0x7103[17],_0x7103[18],_0x7103[19],_0x7103[20]],include:[{model:_0x7103[21],as:_0x7103[21],attributes:[_0x7103[4],_0x7103[5],_0x7103[22],_0x7103[7]]},{model:_0x7103[21],as:_0x7103[23],attributes:[_0x7103[4],_0x7103[5],_0x7103[22],_0x7103[7]]},{model:_0x7103[24],as:_0x7103[24],attributes:[_0x7103[4],_0x7103[5]],include:[{model:_0x7103[24],as:_0x7103[25],attributes:[_0x7103[4],_0x7103[5],_0x7103[26]]}]},{model:_0x7103[27],as:_0x7103[27],attributes:[_0x7103[4],_0x7103[5]]}]},log:_0x7103[28]})}}
\ No newline at end of file
+var _0x26a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E","\x69\x64","\x6E\x61\x6D\x65","\x74\x79\x70\x65","\x61\x63\x74\x69\x76\x65","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x54\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E"];_0x26a0[0];var client=require(_0x26a0[1]);exports[_0x26a0[2]]= function(){return function(){return client.Request(_0x26a0[3],{options:{raw:false,attributes:[_0x26a0[4],_0x26a0[5],_0x26a0[6],_0x26a0[7],_0x26a0[8],_0x26a0[9],_0x26a0[10],_0x26a0[11],_0x26a0[12],_0x26a0[13],_0x26a0[14],_0x26a0[15],_0x26a0[16],_0x26a0[17],_0x26a0[18],_0x26a0[19],_0x26a0[20]],include:[{model:_0x26a0[21],as:_0x26a0[21],attributes:[_0x26a0[4],_0x26a0[5],_0x26a0[22],_0x26a0[7]]},{model:_0x26a0[21],as:_0x26a0[23],attributes:[_0x26a0[4],_0x26a0[5],_0x26a0[22],_0x26a0[7]]},{model:_0x26a0[24],as:_0x26a0[24],attributes:[_0x26a0[4],_0x26a0[5]],include:[{model:_0x26a0[24],as:_0x26a0[25],attributes:[_0x26a0[4],_0x26a0[5],_0x26a0[26]]}]},{model:_0x26a0[27],as:_0x26a0[27],attributes:[_0x26a0[4],_0x26a0[5]]}]},log:_0x26a0[28]})}}
\ No newline at end of file
index 114c199..f93662b 100644 (file)
@@ -1 +1 @@
-var _0xcb4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x67\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x75\x70\x64\x61\x74\x65\x43\x6F\x6E\x74\x61\x63\x74\x73","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x74\x61\x63\x74","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x6E\x6F\x77","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74\x20\x44\x45\x53\x43","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x4D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x43\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x69\x64"];_0xcb4a[0];var client=require(_0xcb4a[1]);exports[_0xcb4a[2]]= function(_0xe809x2,_0xe809x3){return function(){return client.Request(_0xcb4a[3],{options:{where:{VoiceQueueId:_0xe809x2},include:[{model:_0xcb4a[4],as:_0xcb4a[5]}],limit:_0xe809x3,raw:false},log:_0xcb4a[6]})}};exports[_0xcb4a[7]]= function(_0xe809x4,_0xe809x2,_0xe809x3){return function(){return client.Request(_0xcb4a[8],{body:_0xe809x4,options:{where:{VoiceQueueId:_0xe809x2,scheduledat:{$lte: new Date()}},limit:_0xe809x3},log:_0xcb4a[8]})}};exports[_0xcb4a[9]]= function(_0xe809x4){return function(){return client.Request(_0xcb4a[8],{body:_0xe809x4,options:{where:{ContactId:_0xe809x4[_0xcb4a[10]],ListId:_0xe809x4[_0xcb4a[11]],VoiceQueueId:_0xe809x4[_0xcb4a[12]]}},log:_0xcb4a[9]})}};exports[_0xcb4a[13]]= function(_0xe809x2,_0xe809x5,_0xe809x6){return function(){return client.Request(_0xcb4a[14],{options:{where:{VoiceQueueId:_0xe809x2,ListId:_0xe809x5,ContactId:_0xe809x6}},log:_0xcb4a[14]})}};exports[_0xcb4a[15]]= function(_0xe809x2,_0xe809x3){return function(){return client.Request(_0xcb4a[16],{body:{active:true},options:{where:{VoiceQueueId:_0xe809x2,active:false,scheduledat:{$lte:Date[_0xcb4a[17]]()}},include:[{model:_0xcb4a[4],as:_0xcb4a[5]}],order:_0xcb4a[18],raw:true,limit:_0xe809x3},log:_0xcb4a[16]})}};exports[_0xcb4a[19]]= function(_0xe809x7,_0xe809x3){return function(){return client.Request(_0xcb4a[16],{body:{active:true},options:{where:{CampaignId:_0xe809x7,active:false,scheduledat:{$lte:Date[_0xcb4a[17]]()}},include:[{model:_0xcb4a[4],as:_0xcb4a[5]}],order:_0xcb4a[18],raw:true,limit:_0xe809x3},log:_0xcb4a[20]})}};exports[_0xcb4a[21]]= function(_0xe809x4){return function(){_0xe809x4[_0xcb4a[22]]= _0xe809x4[_0xcb4a[23]];return client.Request(_0xcb4a[24],{body:_0xe809x4,options:{where:{ContactId:_0xe809x4[_0xcb4a[10]],ListId:_0xe809x4[_0xcb4a[11]],VoiceQueueId:_0xe809x4[_0xcb4a[12]]}},log:_0xcb4a[24]})}};exports[_0xcb4a[25]]= function(_0xe809x8){return function(){return client.Request(_0xcb4a[26],{options:{where:{VoiceQueueId:_0xe809x8[_0xcb4a[27]]?_0xe809x8[_0xcb4a[27]]|| null:null}},log:_0xcb4a[25]})}}
\ No newline at end of file
+var _0xff7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x67\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x75\x70\x64\x61\x74\x65\x43\x6F\x6E\x74\x61\x63\x74\x73","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x74\x61\x63\x74","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x6E\x6F\x77","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74\x20\x44\x45\x53\x43","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x4D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x43\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x69\x64"];_0xff7d[0];var client=require(_0xff7d[1]);exports[_0xff7d[2]]= function(_0x1696x2,_0x1696x3){return function(){return client.Request(_0xff7d[3],{options:{where:{VoiceQueueId:_0x1696x2},include:[{model:_0xff7d[4],as:_0xff7d[5]}],limit:_0x1696x3,raw:false},log:_0xff7d[6]})}};exports[_0xff7d[7]]= function(_0x1696x4,_0x1696x2,_0x1696x3){return function(){return client.Request(_0xff7d[8],{body:_0x1696x4,options:{where:{VoiceQueueId:_0x1696x2,scheduledat:{$lte: new Date()}},limit:_0x1696x3},log:_0xff7d[8]})}};exports[_0xff7d[9]]= function(_0x1696x4){return function(){return client.Request(_0xff7d[8],{body:_0x1696x4,options:{where:{ContactId:_0x1696x4[_0xff7d[10]],ListId:_0x1696x4[_0xff7d[11]],VoiceQueueId:_0x1696x4[_0xff7d[12]]}},log:_0xff7d[9]})}};exports[_0xff7d[13]]= function(_0x1696x2,_0x1696x5,_0x1696x6){return function(){return client.Request(_0xff7d[14],{options:{where:{VoiceQueueId:_0x1696x2,ListId:_0x1696x5,ContactId:_0x1696x6}},log:_0xff7d[14]})}};exports[_0xff7d[15]]= function(_0x1696x2,_0x1696x3){return function(){return client.Request(_0xff7d[16],{body:{active:true},options:{where:{VoiceQueueId:_0x1696x2,active:false,scheduledat:{$lte:Date[_0xff7d[17]]()}},include:[{model:_0xff7d[4],as:_0xff7d[5]}],order:_0xff7d[18],raw:true,limit:_0x1696x3},log:_0xff7d[16]})}};exports[_0xff7d[19]]= function(_0x1696x7,_0x1696x3){return function(){return client.Request(_0xff7d[16],{body:{active:true},options:{where:{CampaignId:_0x1696x7,active:false,scheduledat:{$lte:Date[_0xff7d[17]]()}},include:[{model:_0xff7d[4],as:_0xff7d[5]}],order:_0xff7d[18],raw:true,limit:_0x1696x3},log:_0xff7d[20]})}};exports[_0xff7d[21]]= function(_0x1696x4){return function(){_0x1696x4[_0xff7d[22]]= _0x1696x4[_0xff7d[23]];return client.Request(_0xff7d[24],{body:_0x1696x4,options:{where:{ContactId:_0x1696x4[_0xff7d[10]],ListId:_0x1696x4[_0xff7d[11]],VoiceQueueId:_0x1696x4[_0xff7d[12]]}},log:_0xff7d[24]})}};exports[_0xff7d[25]]= function(_0x1696x8){return function(){return client.Request(_0xff7d[26],{options:{where:{VoiceQueueId:_0x1696x8[_0xff7d[27]]?_0x1696x8[_0xff7d[27]]|| null:null}},log:_0xff7d[25]})}}
\ No newline at end of file
index 7ac7fb2..86cd034 100644 (file)
@@ -1 +1 @@
-var _0xfbcf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74"];_0xfbcf[0];var client=require(_0xfbcf[1]);exports[_0xfbcf[2]]= function(_0x96eax2){return function(){return client.Request(_0xfbcf[3],{options:{where:{VoiceQueueId:_0x96eax2[_0xfbcf[4]],phone:_0x96eax2[_0xfbcf[6]][_0xfbcf[5]]},raw:false},log:_0xfbcf[3]})}}
\ No newline at end of file
+var _0xd739=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74"];_0xd739[0];var client=require(_0xd739[1]);exports[_0xd739[2]]= function(_0xf81ex2){return function(){return client.Request(_0xd739[3],{options:{where:{VoiceQueueId:_0xf81ex2[_0xd739[4]],phone:_0xf81ex2[_0xd739[6]][_0xd739[5]]},raw:false},log:_0xd739[3]})}}
\ No newline at end of file
index 84457d5..9b7c1c7 100644 (file)
@@ -1 +1 @@
-var _0x9a0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x74\x61\x63\x74","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C"];_0x9a0a[0];var client=require(_0x9a0a[1]);exports[_0x9a0a[2]]= function(_0xdcb2x2){return function(){_0xdcb2x2[_0x9a0a[3]]= _0xdcb2x2[_0x9a0a[4]];return client.Request(_0x9a0a[5],{body:_0xdcb2x2,log:_0x9a0a[5]})}}
\ No newline at end of file
+var _0xc404=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x74\x61\x63\x74","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C"];_0xc404[0];var client=require(_0xc404[1]);exports[_0xc404[2]]= function(_0x1545x2){return function(){_0x1545x2[_0xc404[3]]= _0x1545x2[_0xc404[4]];return client.Request(_0xc404[5],{body:_0x1545x2,log:_0xc404[5]})}}
\ No newline at end of file
index e8af8cd..6ae41e0 100644 (file)
@@ -1 +1 @@
-var _0x9333=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x61\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x69\x6E\x75\x74\x65\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x76\x72"];_0x9333[0];var client=require(_0x9333[1]);var moment=require(_0x9333[2]);exports[_0x9333[3]]= function(_0xe74fx3){return function(){_0xe74fx3[_0x9333[4]]= _0xe74fx3[_0x9333[5]];return client.Request(_0x9333[6],{body:_0xe74fx3,log:_0x9333[6]})}};exports[_0x9333[7]]= function(_0xe74fx4){return function(){return client.Request(_0x9333[8],{options:{where:{endtime:{$between:[moment()[_0x9333[12]](_0xe74fx4,_0x9333[11])[_0x9333[10]](_0x9333[9]),moment()[_0x9333[10]](_0x9333[9])]}},raw:false},log:_0x9333[13]})}};exports[_0x9333[14]]= function(_0xe74fx4){return function(){return client.Request(_0x9333[15],{options:{where:{createdAt:{$between:[moment()[_0x9333[17]](_0x9333[16]),moment()[_0x9333[18]](_0x9333[16])]},campaigntype:_0x9333[5]},raw:false},log:_0x9333[15]})}};exports[_0x9333[19]]= function(_0xe74fx4){return function(){return client.Request(_0x9333[20],{options:{where:{createdAt:{$between:[moment()[_0x9333[17]](_0x9333[16]),moment()[_0x9333[18]](_0x9333[16])]},campaigntype:_0x9333[21]},raw:false},log:_0x9333[20]})}}
\ No newline at end of file
+var _0xd805=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x61\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x69\x6E\x75\x74\x65\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x76\x72"];_0xd805[0];var client=require(_0xd805[1]);var moment=require(_0xd805[2]);exports[_0xd805[3]]= function(_0xf99bx3){return function(){_0xf99bx3[_0xd805[4]]= _0xf99bx3[_0xd805[5]];return client.Request(_0xd805[6],{body:_0xf99bx3,log:_0xd805[6]})}};exports[_0xd805[7]]= function(_0xf99bx4){return function(){return client.Request(_0xd805[8],{options:{where:{endtime:{$between:[moment()[_0xd805[12]](_0xf99bx4,_0xd805[11])[_0xd805[10]](_0xd805[9]),moment()[_0xd805[10]](_0xd805[9])]}},raw:false},log:_0xd805[13]})}};exports[_0xd805[14]]= function(_0xf99bx4){return function(){return client.Request(_0xd805[15],{options:{where:{createdAt:{$between:[moment()[_0xd805[17]](_0xd805[16]),moment()[_0xd805[18]](_0xd805[16])]},campaigntype:_0xd805[5]},raw:false},log:_0xd805[15]})}};exports[_0xd805[19]]= function(_0xf99bx4){return function(){return client.Request(_0xd805[20],{options:{where:{createdAt:{$between:[moment()[_0xd805[17]](_0xd805[16]),moment()[_0xd805[18]](_0xd805[16])]},campaigntype:_0xd805[21]},raw:false},log:_0xd805[20]})}}
\ No newline at end of file
index 94adaf6..13b50ab 100644 (file)
@@ -1 +1 @@
-var _0x6510=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x70\x69\x4B\x65\x79","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x54\x61\x67","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0x6510[0];var client=require(_0x6510[1]);exports[_0x6510[2]]= function(){return function(_0x7d27x2){return client.Request(_0x6510[3],{options:{raw:false,attributes:[_0x6510[4],_0x6510[5],_0x6510[6],_0x6510[7],_0x6510[8],_0x6510[9]],include:[{model:_0x6510[10],as:_0x6510[11],attributes:[_0x6510[4],_0x6510[5]],include:[{model:_0x6510[12],attributes:[_0x6510[4],_0x6510[5]]},{model:_0x6510[13],as:_0x6510[14],attributes:[_0x6510[4],_0x6510[15],_0x6510[16],_0x6510[17]],include:[{model:_0x6510[18],as:_0x6510[18],attributes:[_0x6510[4],_0x6510[5]]}]},{model:_0x6510[13],as:_0x6510[19],attributes:[_0x6510[4],_0x6510[15],_0x6510[16],_0x6510[20],_0x6510[21],_0x6510[22],_0x6510[17]]},{model:_0x6510[13],as:_0x6510[23],attributes:[_0x6510[4],_0x6510[15],_0x6510[16],_0x6510[24],_0x6510[25],_0x6510[26]]}]}]},log:_0x6510[3]})}}
\ No newline at end of file
+var _0x33aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x70\x69\x4B\x65\x79","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x54\x61\x67","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0x33aa[0];var client=require(_0x33aa[1]);exports[_0x33aa[2]]= function(){return function(_0x3e9cx2){return client.Request(_0x33aa[3],{options:{raw:false,attributes:[_0x33aa[4],_0x33aa[5],_0x33aa[6],_0x33aa[7],_0x33aa[8],_0x33aa[9]],include:[{model:_0x33aa[10],as:_0x33aa[11],attributes:[_0x33aa[4],_0x33aa[5]],include:[{model:_0x33aa[12],attributes:[_0x33aa[4],_0x33aa[5]]},{model:_0x33aa[13],as:_0x33aa[14],attributes:[_0x33aa[4],_0x33aa[15],_0x33aa[16],_0x33aa[17]],include:[{model:_0x33aa[18],as:_0x33aa[18],attributes:[_0x33aa[4],_0x33aa[5]]}]},{model:_0x33aa[13],as:_0x33aa[19],attributes:[_0x33aa[4],_0x33aa[15],_0x33aa[16],_0x33aa[20],_0x33aa[21],_0x33aa[22],_0x33aa[17]],include:[{model:_0x33aa[18],as:_0x33aa[18],attributes:[_0x33aa[4],_0x33aa[5]]}]},{model:_0x33aa[13],as:_0x33aa[23],attributes:[_0x33aa[4],_0x33aa[15],_0x33aa[16],_0x33aa[24],_0x33aa[25],_0x33aa[26],_0x33aa[17]],include:[{model:_0x33aa[18],as:_0x33aa[18],attributes:[_0x33aa[4],_0x33aa[5]]}]}]}]},log:_0x33aa[3]})}}
\ No newline at end of file
index ca15282..10d86fd 100644 (file)
@@ -1 +1 @@
-var _0xa71c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64"];_0xa71c[0];var client=require(_0xa71c[1]);exports[_0xa71c[2]]= function(){return function(_0xb51fx2){return client.Request(_0xa71c[3],{options:{raw:false,attributes:[_0xa71c[4],_0xa71c[5],_0xa71c[6],_0xa71c[7],_0xa71c[8],_0xa71c[9],_0xa71c[10],_0xa71c[11],_0xa71c[12]],include:[{model:_0xa71c[13],as:_0xa71c[14],attributes:[_0xa71c[4],_0xa71c[5]],include:[{model:_0xa71c[15],as:_0xa71c[16],attributes:[_0xa71c[4],_0xa71c[17],_0xa71c[18],_0xa71c[19]],include:[{model:_0xa71c[20],as:_0xa71c[20],attributes:[_0xa71c[4],_0xa71c[5]]}]},{model:_0xa71c[15],as:_0xa71c[21],attributes:[_0xa71c[4],_0xa71c[17],_0xa71c[18],_0xa71c[22],_0xa71c[23],_0xa71c[24],_0xa71c[19]]},{model:_0xa71c[15],as:_0xa71c[25],attributes:[_0xa71c[4],_0xa71c[26]]}]}]},log:_0xa71c[3]})}}
\ No newline at end of file
+var _0xe840=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64"];_0xe840[0];var client=require(_0xe840[1]);exports[_0xe840[2]]= function(){return function(_0x3072x2){return client.Request(_0xe840[3],{options:{raw:false,attributes:[_0xe840[4],_0xe840[5],_0xe840[6],_0xe840[7],_0xe840[8],_0xe840[9],_0xe840[10],_0xe840[11],_0xe840[12]],include:[{model:_0xe840[13],as:_0xe840[14],attributes:[_0xe840[4],_0xe840[5]],include:[{model:_0xe840[15],as:_0xe840[16],attributes:[_0xe840[4],_0xe840[17],_0xe840[18],_0xe840[19]],include:[{model:_0xe840[20],as:_0xe840[20],attributes:[_0xe840[4],_0xe840[5]]}]},{model:_0xe840[15],as:_0xe840[21],attributes:[_0xe840[4],_0xe840[17],_0xe840[18],_0xe840[22],_0xe840[23],_0xe840[24],_0xe840[19]]},{model:_0xe840[15],as:_0xe840[25],attributes:[_0xe840[4],_0xe840[26]]}]}]},log:_0xe840[3]})}}
\ No newline at end of file
index 6eed0f6..ef3f0c0 100644 (file)
@@ -1 +1 @@
-var _0x19e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0x19e9[0];var client=require(_0x19e9[1]);exports[_0x19e9[2]]= function(){return function(_0x8f19x2){return client.Request(_0x19e9[3],{options:{raw:false,attributes:[_0x19e9[4],_0x19e9[5],_0x19e9[6],_0x19e9[7],_0x19e9[8],_0x19e9[9]],include:[{model:_0x19e9[10],as:_0x19e9[11],attributes:[_0x19e9[4],_0x19e9[5]],include:[{model:_0x19e9[12],as:_0x19e9[13],attributes:[_0x19e9[4],_0x19e9[14],_0x19e9[15],_0x19e9[16]],include:[{model:_0x19e9[17],as:_0x19e9[17],attributes:[_0x19e9[4],_0x19e9[5]]}]},{model:_0x19e9[12],as:_0x19e9[18],attributes:[_0x19e9[4],_0x19e9[14],_0x19e9[15],_0x19e9[19],_0x19e9[20],_0x19e9[21],_0x19e9[16]]},{model:_0x19e9[12],as:_0x19e9[22],attributes:[_0x19e9[4],_0x19e9[23],_0x19e9[24],_0x19e9[25]]}]}]},log:_0x19e9[3]})}}
\ No newline at end of file
+var _0x76d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0x76d2[0];var client=require(_0x76d2[1]);exports[_0x76d2[2]]= function(){return function(_0xd6e9x2){return client.Request(_0x76d2[3],{options:{raw:false,attributes:[_0x76d2[4],_0x76d2[5],_0x76d2[6],_0x76d2[7],_0x76d2[8],_0x76d2[9]],include:[{model:_0x76d2[10],as:_0x76d2[11],attributes:[_0x76d2[4],_0x76d2[5]],include:[{model:_0x76d2[12],as:_0x76d2[13],attributes:[_0x76d2[4],_0x76d2[14],_0x76d2[15],_0x76d2[16]],include:[{model:_0x76d2[17],as:_0x76d2[17],attributes:[_0x76d2[4],_0x76d2[5]]}]},{model:_0x76d2[12],as:_0x76d2[18],attributes:[_0x76d2[4],_0x76d2[14],_0x76d2[15],_0x76d2[19],_0x76d2[20],_0x76d2[21],_0x76d2[16]],include:[{model:_0x76d2[17],as:_0x76d2[17],attributes:[_0x76d2[4],_0x76d2[5]]}]},{model:_0x76d2[12],as:_0x76d2[22],attributes:[_0x76d2[4],_0x76d2[14],_0x76d2[15],_0x76d2[23],_0x76d2[24],_0x76d2[25],_0x76d2[16]],include:[{model:_0x76d2[17],as:_0x76d2[17],attributes:[_0x76d2[4],_0x76d2[5]]}]}]}]},log:_0x76d2[3]})}}
\ No newline at end of file
index 099771d..64a3d25 100644 (file)
@@ -1 +1 @@
-var _0x6572=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x54\x61\x67","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0x6572[0];var client=require(_0x6572[1]);exports[_0x6572[2]]= function(){return function(_0x3b6fx2){return client.Request(_0x6572[3],{options:{raw:false,attributes:[_0x6572[4],_0x6572[5],_0x6572[6],_0x6572[7],_0x6572[8],_0x6572[9],_0x6572[10],_0x6572[11]],include:[{model:_0x6572[12],as:_0x6572[13],attributes:[_0x6572[4],_0x6572[5]],include:[{model:_0x6572[14],attributes:[_0x6572[4],_0x6572[5]]},{model:_0x6572[15],as:_0x6572[16],attributes:[_0x6572[4],_0x6572[17],_0x6572[18],_0x6572[19]],include:[{model:_0x6572[20],as:_0x6572[20],attributes:[_0x6572[4],_0x6572[5]]}]},{model:_0x6572[15],as:_0x6572[21],attributes:[_0x6572[4],_0x6572[17],_0x6572[18],_0x6572[22],_0x6572[23],_0x6572[24],_0x6572[19]]},{model:_0x6572[15],as:_0x6572[25],attributes:[_0x6572[4],_0x6572[17],_0x6572[18],_0x6572[26],_0x6572[27],_0x6572[28]]}]}]},log:_0x6572[3]})}}
\ No newline at end of file
+var _0xe9a4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x54\x61\x67","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0xe9a4[0];var client=require(_0xe9a4[1]);exports[_0xe9a4[2]]= function(){return function(_0xf6a1x2){return client.Request(_0xe9a4[3],{options:{raw:false,attributes:[_0xe9a4[4],_0xe9a4[5],_0xe9a4[6],_0xe9a4[7],_0xe9a4[8],_0xe9a4[9],_0xe9a4[10],_0xe9a4[11]],include:[{model:_0xe9a4[12],as:_0xe9a4[13],attributes:[_0xe9a4[4],_0xe9a4[5]],include:[{model:_0xe9a4[14],attributes:[_0xe9a4[4],_0xe9a4[5]]},{model:_0xe9a4[15],as:_0xe9a4[16],attributes:[_0xe9a4[4],_0xe9a4[17],_0xe9a4[18],_0xe9a4[19]],include:[{model:_0xe9a4[20],as:_0xe9a4[20],attributes:[_0xe9a4[4],_0xe9a4[5]]}]},{model:_0xe9a4[15],as:_0xe9a4[21],attributes:[_0xe9a4[4],_0xe9a4[17],_0xe9a4[18],_0xe9a4[22],_0xe9a4[23],_0xe9a4[24],_0xe9a4[19]],include:[{model:_0xe9a4[20],as:_0xe9a4[20],attributes:[_0xe9a4[4],_0xe9a4[5]]}]},{model:_0xe9a4[15],as:_0xe9a4[25],attributes:[_0xe9a4[4],_0xe9a4[17],_0xe9a4[18],_0xe9a4[26],_0xe9a4[27],_0xe9a4[28],_0xe9a4[19]],include:[{model:_0xe9a4[20],as:_0xe9a4[20],attributes:[_0xe9a4[4],_0xe9a4[5]]}]}]}]},log:_0xe9a4[3]})}}
\ No newline at end of file
index f6ff74a..8db23fd 100644 (file)
@@ -1 +1 @@
-var _0xcfae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x53\x49\x50\x2F","\x54\x41\x4C\x4B\x49\x4E\x47","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x69\x6E\x62\x6F\x75\x6E\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x78\x74\x65\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x75\x6E\x69\x71\x75\x65\x69\x64","\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x73\x70\x6C\x69\x74","\x63\x68\x61\x6E\x6E\x65\x6C","\x2D","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x69\x61\x6C\x73\x74\x72\x69\x6E\x67"];_0xcfae[0];var moment=require(_0xcfae[1]);var _=require(_0xcfae[2]);var client=require(_0xcfae[3]);exports[_0xcfae[4]]= function(_0x56aex4){return client.Request(_0xcfae[5],{body:{channel:_0xcfae[6],membername:_0x56aex4[_0xcfae[7]],interface:_0xcfae[8]+ _0x56aex4[_0xcfae[7]],type:_0xcfae[9],enterAt:_0x56aex4[_0xcfae[10]],exitAt:_0x56aex4[_0xcfae[11]],duration:moment(_0x56aex4[_0xcfae[11]])[_0xcfae[13]](_0x56aex4[_0xcfae[10]],_0xcfae[12]),data1:_0xcfae[14],data2:_0x56aex4[_0xcfae[15]],data3:_0x56aex4[_0xcfae[16]],data4:null,data5:_0x56aex4[_0xcfae[17]],role:_0xcfae[18],internal:_0x56aex4[_0xcfae[19]]?_[_0xcfae[20]](_0x56aex4[_0xcfae[19]]):undefined,uniqueid:_0x56aex4[_0xcfae[21]]},log:_0xcfae[5]})};exports[_0xcfae[22]]= function(_0x56aex5){return client.Request(_0xcfae[5],{body:{channel:_0xcfae[6],membername:_0x56aex5[_0xcfae[24]][_0xcfae[23]](/\/|-/)[1],interface:_0x56aex5[_0xcfae[24]][_0xcfae[23]](_0xcfae[25])[0],type:_0xcfae[9],enterAt:_0x56aex5[_0xcfae[26]],exitAt:_0x56aex5[_0xcfae[27]],data1:_0xcfae[28],data2:_0x56aex5[_0xcfae[19]],data3:_0x56aex5[_0xcfae[16]],data4:_0x56aex5[_0xcfae[29]]|| null,role:_0xcfae[18],internal:_0x56aex5[_0xcfae[19]]?_[_0xcfae[20]](_0x56aex5[_0xcfae[19]]):undefined,uniqueid:_0x56aex5[_0xcfae[21]]},log:_0xcfae[5]})}
\ No newline at end of file
+var _0xda6e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x53\x49\x50\x2F","\x54\x41\x4C\x4B\x49\x4E\x47","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x69\x6E\x62\x6F\x75\x6E\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x78\x74\x65\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x75\x6E\x69\x71\x75\x65\x69\x64","\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x73\x70\x6C\x69\x74","\x63\x68\x61\x6E\x6E\x65\x6C","\x2D","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x69\x61\x6C\x73\x74\x72\x69\x6E\x67"];_0xda6e[0];var moment=require(_0xda6e[1]);var _=require(_0xda6e[2]);var client=require(_0xda6e[3]);exports[_0xda6e[4]]= function(_0xaed5x4){return client.Request(_0xda6e[5],{body:{channel:_0xda6e[6],membername:_0xaed5x4[_0xda6e[7]],interface:_0xda6e[8]+ _0xaed5x4[_0xda6e[7]],type:_0xda6e[9],enterAt:_0xaed5x4[_0xda6e[10]],exitAt:_0xaed5x4[_0xda6e[11]],duration:moment(_0xaed5x4[_0xda6e[11]])[_0xda6e[13]](_0xaed5x4[_0xda6e[10]],_0xda6e[12]),data1:_0xda6e[14],data2:_0xaed5x4[_0xda6e[15]],data3:_0xaed5x4[_0xda6e[16]],data4:null,data5:_0xaed5x4[_0xda6e[17]],role:_0xda6e[18],internal:_0xaed5x4[_0xda6e[19]]?_[_0xda6e[20]](_0xaed5x4[_0xda6e[19]]):undefined,uniqueid:_0xaed5x4[_0xda6e[21]]},log:_0xda6e[5]})};exports[_0xda6e[22]]= function(_0xaed5x5){return client.Request(_0xda6e[5],{body:{channel:_0xda6e[6],membername:_0xaed5x5[_0xda6e[24]][_0xda6e[23]](/\/|-/)[1],interface:_0xaed5x5[_0xda6e[24]][_0xda6e[23]](_0xda6e[25])[0],type:_0xda6e[9],enterAt:_0xaed5x5[_0xda6e[26]],exitAt:_0xaed5x5[_0xda6e[27]],data1:_0xda6e[28],data2:_0xaed5x5[_0xda6e[19]],data3:_0xaed5x5[_0xda6e[16]],data4:_0xaed5x5[_0xda6e[29]]|| null,role:_0xda6e[18],internal:_0xaed5x5[_0xda6e[19]]?_[_0xda6e[20]](_0xaed5x5[_0xda6e[19]]):undefined,uniqueid:_0xaed5x5[_0xda6e[21]]},log:_0xda6e[5]})}
\ No newline at end of file
index 77e967f..9051049 100644 (file)
@@ -1 +1 @@
-var _0xbce0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x47\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x69\x64","\x6E\x61\x6D\x65","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C"];_0xbce0[0];var client=require(_0xbce0[1]);exports[_0xbce0[2]]= function(_0xfbf0x2){return function(_0xfbf0x3){return client.Request(_0xbce0[3],{options:{raw:true,attributes:[_0xbce0[4],_0xbce0[5],_0xbce0[6],_0xbce0[7]]},log:_0xbce0[3]})}}
\ No newline at end of file
+var _0xa23e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x47\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x69\x64","\x6E\x61\x6D\x65","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C"];_0xa23e[0];var client=require(_0xa23e[1]);exports[_0xa23e[2]]= function(_0xc6fcx2){return function(_0xc6fcx3){return client.Request(_0xa23e[3],{options:{raw:true,attributes:[_0xa23e[4],_0xa23e[5],_0xa23e[6],_0xa23e[7]]},log:_0xa23e[3]})}}
\ No newline at end of file
index 841c10b..10462b5 100644 (file)
@@ -1 +1 @@
-var _0x9c0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x47\x65\x74\x54\x72\x69\x67\x67\x65\x72","\x76\x6F\x69\x63\x65","\x69\x64","\x6E\x61\x6D\x65","\x73\x74\x61\x74\x75\x73","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x65\x6C\x64","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x76\x61\x6C\x75\x65","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E","\x41\x63\x74\x69\x6F\x6E\x73","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33"];_0x9c0e[0];var client=require(_0x9c0e[1]);exports[_0x9c0e[2]]= function(_0x17d9x2){return function(_0x17d9x3){return client.Request(_0x9c0e[3],{options:{raw:false,where:{channel:_0x9c0e[4]},attributes:[_0x9c0e[5],_0x9c0e[6],_0x9c0e[7]],include:[{model:_0x9c0e[8],as:_0x9c0e[9],attributes:[_0x9c0e[5],_0x9c0e[10],_0x9c0e[11],_0x9c0e[12]]},{model:_0x9c0e[8],as:_0x9c0e[13],attributes:[_0x9c0e[5],_0x9c0e[10],_0x9c0e[11],_0x9c0e[12]]},{model:_0x9c0e[14],as:_0x9c0e[15],attributes:[_0x9c0e[5],_0x9c0e[16],_0x9c0e[17],_0x9c0e[18],_0x9c0e[19]]}]},log:_0x9c0e[3]})}}
\ No newline at end of file
+var _0x2954=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x47\x65\x74\x54\x72\x69\x67\x67\x65\x72","\x76\x6F\x69\x63\x65","\x69\x64","\x6E\x61\x6D\x65","\x73\x74\x61\x74\x75\x73","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x65\x6C\x64","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x76\x61\x6C\x75\x65","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E","\x41\x63\x74\x69\x6F\x6E\x73","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33"];_0x2954[0];var client=require(_0x2954[1]);exports[_0x2954[2]]= function(_0xe9b7x2){return function(_0xe9b7x3){return client.Request(_0x2954[3],{options:{raw:false,where:{channel:_0x2954[4]},attributes:[_0x2954[5],_0x2954[6],_0x2954[7]],include:[{model:_0x2954[8],as:_0x2954[9],attributes:[_0x2954[5],_0x2954[10],_0x2954[11],_0x2954[12]]},{model:_0x2954[8],as:_0x2954[13],attributes:[_0x2954[5],_0x2954[10],_0x2954[11],_0x2954[12]]},{model:_0x2954[14],as:_0x2954[15],attributes:[_0x2954[5],_0x2954[16],_0x2954[17],_0x2954[18],_0x2954[19]]}]},log:_0x2954[3]})}}
\ No newline at end of file
index 6c11034..3f8feea 100644 (file)
@@ -1 +1 @@
-var _0xd0f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x54\x72\x75\x6E\x6B\x73","\x47\x65\x74\x54\x72\x75\x6E\x6B","\x69\x64","\x6E\x61\x6D\x65","\x72\x65\x67\x69\x73\x74\x72\x79"];_0xd0f6[0];var client=require(_0xd0f6[1]);exports[_0xd0f6[2]]= function(_0x3cedx2){return function(_0x3cedx3){return client.Request(_0xd0f6[3],{options:{raw:true,where:{active:1},attributes:[_0xd0f6[4],_0xd0f6[5],_0xd0f6[6]]},log:_0xd0f6[3]})}}
\ No newline at end of file
+var _0x695d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x54\x72\x75\x6E\x6B\x73","\x47\x65\x74\x54\x72\x75\x6E\x6B","\x69\x64","\x6E\x61\x6D\x65","\x72\x65\x67\x69\x73\x74\x72\x79"];_0x695d[0];var client=require(_0x695d[1]);exports[_0x695d[2]]= function(_0xdf9ex2){return function(_0xdf9ex3){return client.Request(_0x695d[3],{options:{raw:true,where:{active:1},attributes:[_0x695d[4],_0x695d[5],_0x695d[6]]},log:_0x695d[3]})}}
\ No newline at end of file
index a1c8015..5cc470b 100644 (file)
@@ -1 +1 @@
-var _0xca93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x47\x65\x74\x55\x73\x65\x72","\x61\x67\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6F\x6E\x6C\x69\x6E\x65","\x6C\x61\x73\x74\x4C\x6F\x67\x69\x6E\x41\x74","\x67\x65\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x61\x76\x65\x50\x61\x75\x73\x65","\x50\x61\x75\x73\x65\x55\x73\x65\x72","\x73\x61\x76\x65\x55\x6E\x70\x61\x75\x73\x65","\x55\x6E\x70\x61\x75\x73\x65\x55\x73\x65\x72"];_0xca93[0];var client=require(_0xca93[1]);exports[_0xca93[2]]= function(){return function(){return client.Request(_0xca93[3],{options:{raw:false,where:{role:_0xca93[4]},attributes:[_0xca93[5],_0xca93[6],_0xca93[7],_0xca93[8],_0xca93[9]]},log:_0xca93[2]})}};exports[_0xca93[10]]= function(){return function(){return client.Request(_0xca93[3],{options:{raw:true,where:{role:_0xca93[11]},attributes:[_0xca93[5],_0xca93[6]]},log:_0xca93[10]})}};exports[_0xca93[12]]= function(_0x50bdx2,_0x50bdx3){return client.Request(_0xca93[13],{body:{type:_0x50bdx3},options:{where:{id:_0x50bdx2[_0xca93[5]]}},log:_0xca93[12]})};exports[_0xca93[14]]= function(_0x50bdx2){return client.Request(_0xca93[15],{body:{},options:{where:{id:_0x50bdx2[_0xca93[5]]}},log:_0xca93[12]})}
\ No newline at end of file
+var _0x1d1c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x47\x65\x74\x55\x73\x65\x72","\x61\x67\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6F\x6E\x6C\x69\x6E\x65","\x6C\x61\x73\x74\x4C\x6F\x67\x69\x6E\x41\x74","\x67\x65\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x61\x76\x65\x50\x61\x75\x73\x65","\x50\x61\x75\x73\x65\x55\x73\x65\x72","\x73\x61\x76\x65\x55\x6E\x70\x61\x75\x73\x65","\x55\x6E\x70\x61\x75\x73\x65\x55\x73\x65\x72"];_0x1d1c[0];var client=require(_0x1d1c[1]);exports[_0x1d1c[2]]= function(){return function(){return client.Request(_0x1d1c[3],{options:{raw:false,where:{role:_0x1d1c[4]},attributes:[_0x1d1c[5],_0x1d1c[6],_0x1d1c[7],_0x1d1c[8],_0x1d1c[9]]},log:_0x1d1c[2]})}};exports[_0x1d1c[10]]= function(){return function(){return client.Request(_0x1d1c[3],{options:{raw:true,where:{role:_0x1d1c[11]},attributes:[_0x1d1c[5],_0x1d1c[6]]},log:_0x1d1c[10]})}};exports[_0x1d1c[12]]= function(_0xe3b2x2,_0xe3b2x3){return client.Request(_0x1d1c[13],{body:{type:_0xe3b2x3},options:{where:{id:_0xe3b2x2[_0x1d1c[5]]}},log:_0x1d1c[12]})};exports[_0x1d1c[14]]= function(_0xe3b2x2){return client.Request(_0x1d1c[15],{body:{},options:{where:{id:_0xe3b2x2[_0x1d1c[5]]}},log:_0x1d1c[12]})}
\ No newline at end of file
index 8d7e736..80549bf 100644 (file)
@@ -1 +1 @@
-var _0x6108=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74"];_0x6108[0];var client=require(_0x6108[1]);exports[_0x6108[2]]= function(_0x10b0x2){return client.Request(_0x6108[3],{body:_0x10b0x2,log:_0x6108[3]})}
\ No newline at end of file
+var _0x315d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74"];_0x315d[0];var client=require(_0x315d[1]);exports[_0x315d[2]]= function(_0x10a2x2){return client.Request(_0x315d[3],{body:_0x10a2x2,log:_0x315d[3]})}
\ No newline at end of file
index cf67fd1..c4af85d 100644 (file)
@@ -1 +1 @@
-var _0xaeb8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x78\x74\x65\x6E","\x63\x6F\x6E\x74\x65\x78\x74","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x44\x4F\x43\x55\x4D\x45\x4E\x54\x41\x54\x49\x4F\x4E","\x6D\x65\x72\x67\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x74\x79\x70\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73"];_0xaeb8[0];var moment=require(_0xaeb8[1]);var util=require(_0xaeb8[2]);var _=require(_0xaeb8[3]);var client=require(_0xaeb8[4]);exports[_0xaeb8[5]]= function(_0xd296x5){return client.Request(_0xaeb8[6],{body:_[_0xaeb8[14]](_0xd296x5,{source:_0xd296x5[_0xaeb8[7]],destination:_0xd296x5[_0xaeb8[8]],destinationcontext:_0xd296x5[_0xaeb8[9]],callerid:util[_0xaeb8[12]](_0xaeb8[10],_0xd296x5[_0xaeb8[7]],_0xd296x5[_0xaeb8[11]]),amaflags:_0xaeb8[13]}),log:_0xaeb8[6]})};exports[_0xaeb8[15]]= function(){return function(){return client.Request(_0xaeb8[16],{options:{where:{type:[_0xaeb8[17]],createdAt:{$between:[moment()[_0xaeb8[19]](_0xaeb8[18]),moment()[_0xaeb8[20]](_0xaeb8[18])]}},attributes:[_0xaeb8[21],_0xaeb8[22],_0xaeb8[23],_0xaeb8[24]]},log:_0xaeb8[25]})}}
\ No newline at end of file
+var _0x8231=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x78\x74\x65\x6E","\x63\x6F\x6E\x74\x65\x78\x74","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x44\x4F\x43\x55\x4D\x45\x4E\x54\x41\x54\x49\x4F\x4E","\x6D\x65\x72\x67\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x74\x79\x70\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73"];_0x8231[0];var moment=require(_0x8231[1]);var util=require(_0x8231[2]);var _=require(_0x8231[3]);var client=require(_0x8231[4]);exports[_0x8231[5]]= function(_0x925cx5){return client.Request(_0x8231[6],{body:_[_0x8231[14]](_0x925cx5,{source:_0x925cx5[_0x8231[7]],destination:_0x925cx5[_0x8231[8]],destinationcontext:_0x925cx5[_0x8231[9]],callerid:util[_0x8231[12]](_0x8231[10],_0x925cx5[_0x8231[7]],_0x925cx5[_0x8231[11]]),amaflags:_0x8231[13]}),log:_0x8231[6]})};exports[_0x8231[15]]= function(){return function(){return client.Request(_0x8231[16],{options:{where:{type:[_0x8231[17]],createdAt:{$between:[moment()[_0x8231[19]](_0x8231[18]),moment()[_0x8231[20]](_0x8231[18])]}},attributes:[_0x8231[21],_0x8231[22],_0x8231[23],_0x8231[24]]},log:_0x8231[25]})}}
\ No newline at end of file
index a774ec7..c20c8a8 100644 (file)
@@ -1 +1 @@
-var _0xc0ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74"];_0xc0ab[0];var client=require(_0xc0ab[1]);exports[_0xc0ab[2]]= function(_0xfe0ax2){return client.Request(_0xc0ab[3],{body:_0xfe0ax2,log:_0xc0ab[3]})}
\ No newline at end of file
+var _0x64f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74"];_0x64f2[0];var client=require(_0x64f2[1]);exports[_0x64f2[2]]= function(_0x4c92x2){return client.Request(_0x64f2[3],{body:_0x4c92x2,log:_0x64f2[3]})}
\ No newline at end of file
index dea1061..cdce1d1 100644 (file)
@@ -1 +1 @@
-var _0x4846=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x69\x64","\x6E\x61\x6D\x65","\x61\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x61\x75\x74\x6F\x70\x61\x75\x73\x65","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x74\x79\x70\x65","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x54\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x61\x63\x74\x69\x76\x65","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C"];_0x4846[0];var client=require(_0x4846[1]);exports[_0x4846[2]]= function(){return function(){return client.Request(_0x4846[3],{options:{raw:false,attributes:[_0x4846[4],_0x4846[5],_0x4846[6],_0x4846[7],_0x4846[8],_0x4846[9],_0x4846[10],_0x4846[11],_0x4846[12],_0x4846[13],_0x4846[14],_0x4846[15],_0x4846[16],_0x4846[17],_0x4846[18],_0x4846[19],_0x4846[20],_0x4846[21],_0x4846[22],_0x4846[23],_0x4846[24],_0x4846[25],_0x4846[26],_0x4846[27],_0x4846[28],_0x4846[29],_0x4846[30],_0x4846[31],_0x4846[32],_0x4846[33]],include:[{model:_0x4846[34],as:_0x4846[34],attributes:[_0x4846[4],_0x4846[5],_0x4846[35],_0x4846[36]]},{model:_0x4846[34],as:_0x4846[37],attributes:[_0x4846[4],_0x4846[5],_0x4846[35],_0x4846[36]]},{model:_0x4846[38],as:_0x4846[38],attributes:[_0x4846[4],_0x4846[5]],include:[{model:_0x4846[38],as:_0x4846[39],attributes:[_0x4846[4],_0x4846[5],_0x4846[40]]}]}]},log:_0x4846[2]})}}
\ No newline at end of file
+var _0xbbec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x69\x64","\x6E\x61\x6D\x65","\x61\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x61\x75\x74\x6F\x70\x61\x75\x73\x65","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x74\x79\x70\x65","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x54\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x61\x63\x74\x69\x76\x65","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C"];_0xbbec[0];var client=require(_0xbbec[1]);exports[_0xbbec[2]]= function(){return function(){return client.Request(_0xbbec[3],{options:{raw:false,attributes:[_0xbbec[4],_0xbbec[5],_0xbbec[6],_0xbbec[7],_0xbbec[8],_0xbbec[9],_0xbbec[10],_0xbbec[11],_0xbbec[12],_0xbbec[13],_0xbbec[14],_0xbbec[15],_0xbbec[16],_0xbbec[17],_0xbbec[18],_0xbbec[19],_0xbbec[20],_0xbbec[21],_0xbbec[22],_0xbbec[23],_0xbbec[24],_0xbbec[25],_0xbbec[26],_0xbbec[27],_0xbbec[28],_0xbbec[29],_0xbbec[30],_0xbbec[31],_0xbbec[32],_0xbbec[33]],include:[{model:_0xbbec[34],as:_0xbbec[34],attributes:[_0xbbec[4],_0xbbec[5],_0xbbec[35],_0xbbec[36]]},{model:_0xbbec[34],as:_0xbbec[37],attributes:[_0xbbec[4],_0xbbec[5],_0xbbec[35],_0xbbec[36]]},{model:_0xbbec[38],as:_0xbbec[38],attributes:[_0xbbec[4],_0xbbec[5]],include:[{model:_0xbbec[38],as:_0xbbec[39],attributes:[_0xbbec[4],_0xbbec[5],_0xbbec[40]]}]}]},log:_0xbbec[2]})}}
\ No newline at end of file
index 58ffa1b..a9a6709 100644 (file)
@@ -1 +1 @@
-var _0x50a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73"];_0x50a0[0];var moment=require(_0x50a0[1]);var _=require(_0x50a0[2]);var client=require(_0x50a0[3]);exports[_0x50a0[4]]= function(_0x57a9x4){return client.Request(_0x50a0[5],{body:_0x57a9x4,log:_0x50a0[5]})};exports[_0x50a0[6]]= function(){return function(){return client.Request(_0x50a0[7],{options:{where:{createdAt:{$between:[moment()[_0x50a0[9]](_0x50a0[8]),moment()[_0x50a0[10]](_0x50a0[8])]}},attributes:[_0x50a0[11],_0x50a0[12],_0x50a0[13],_0x50a0[14],_0x50a0[15],_0x50a0[16],_0x50a0[17],_0x50a0[18],_0x50a0[19],_0x50a0[20]]},log:_0x50a0[21]})}}
\ No newline at end of file
+var _0x2c2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73"];_0x2c2f[0];var moment=require(_0x2c2f[1]);var _=require(_0x2c2f[2]);var client=require(_0x2c2f[3]);exports[_0x2c2f[4]]= function(_0xf6f0x4){return client.Request(_0x2c2f[5],{body:_0xf6f0x4,log:_0x2c2f[5]})};exports[_0x2c2f[6]]= function(){return function(){return client.Request(_0x2c2f[7],{options:{where:{createdAt:{$between:[moment()[_0x2c2f[9]](_0x2c2f[8]),moment()[_0x2c2f[10]](_0x2c2f[8])]}},attributes:[_0x2c2f[11],_0x2c2f[12],_0x2c2f[13],_0x2c2f[14],_0x2c2f[15],_0x2c2f[16],_0x2c2f[17],_0x2c2f[18],_0x2c2f[19],_0x2c2f[20]]},log:_0x2c2f[21]})}}
\ No newline at end of file
index 5b682a8..7cbe760 100644 (file)
@@ -1 +1 @@
-var _0xd659=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73"];_0xd659[0];var client=require(_0xd659[1]);exports[_0xd659[2]]= function(_0xb922x2){return function(){return client.Request(_0xd659[3],{options:{where:{VoiceQueueId:_0xb922x2,paused:true},raw:true},log:_0xd659[2]})}}
\ No newline at end of file
+var _0x6347=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73"];_0x6347[0];var client=require(_0x6347[1]);exports[_0x6347[2]]= function(_0x91e2x2){return function(){return client.Request(_0x6347[3],{options:{where:{VoiceQueueId:_0x91e2x2,paused:true},raw:true},log:_0x6347[2]})}}
\ No newline at end of file
index c9b31a6..6928f09 100644 (file)
@@ -1 +1 @@
-var _0x861f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65"];_0x861f[0];var _=require(_0x861f[1]);var client=require(_0x861f[2]);exports[_0x861f[3]]= function(_0x7e2dx3){return client.Request(_0x861f[4],{body:_[_0x861f[6]](_0x7e2dx3,{value:_0x7e2dx3[_0x861f[5]]}),log:_0x861f[4]})}
\ No newline at end of file
+var _0x5591=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65"];_0x5591[0];var _=require(_0x5591[1]);var client=require(_0x5591[2]);exports[_0x5591[3]]= function(_0x89b7x3){return client.Request(_0x5591[4],{body:_[_0x5591[6]](_0x89b7x3,{value:_0x89b7x3[_0x5591[5]]}),log:_0x5591[4]})}
\ No newline at end of file
index ebebdb6..fb66de4 100644 (file)
@@ -1 +1 @@
-var _0x5b26=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x62\x6C\x69\x6E\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x73\x75\x6C\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x69\x73\x65\x78\x74\x65\x72\x6E\x61\x6C","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x68\x61\x6E\x6E\x65\x6C","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x61\x74\x74\x65\x6E\x64\x65\x64"];_0x5b26[0];var client=require(_0x5b26[1]);exports[_0x5b26[2]]= function(_0x9236x2){return client.Request(_0x5b26[3],{body:{result:_0x9236x2[_0x5b26[4]],transfererchannel:_0x9236x2[_0x5b26[5]],transferercalleridnum:_0x9236x2[_0x5b26[6]],transferercalleridname:_0x9236x2[_0x5b26[7]],transfererconnectedlinenum:_0x9236x2[_0x5b26[8]],transfererconnectedlinename:_0x9236x2[_0x5b26[9]],transfereraccountcode:_0x9236x2[_0x5b26[10]],transferercontext:_0x9236x2[_0x5b26[11]],transfererexten:_0x9236x2[_0x5b26[12]],transfererlinkedid:_0x9236x2[_0x5b26[13]],transfereechannel:_0x9236x2[_0x5b26[14]],transfereecalleridnum:_0x9236x2[_0x5b26[15]],transfereecalleridname:_0x9236x2[_0x5b26[16]],transfereeconnectedlinenum:_0x9236x2[_0x5b26[17]],transfereeconnectedlinename:_0x9236x2[_0x5b26[18]],transfereeaccountcode:_0x9236x2[_0x5b26[19]],transfereecontext:_0x9236x2[_0x5b26[20]],transfereeexten:_0x9236x2[_0x5b26[21]],transfereelinkedid:_0x9236x2[_0x5b26[22]],isexternal:_0x9236x2[_0x5b26[23]],context:_0x9236x2[_0x5b26[24]],extension:_0x9236x2[_0x5b26[25]],type:_0x5b26[26]},log:_0x5b26[3]})};exports[_0x5b26[27]]= function(_0x9236x2){return client.Request(_0x5b26[3],{body:{result:_0x9236x2[_0x5b26[4]],transfererchannel:_0x9236x2[_0x5b26[28]],transferercalleridnum:_0x9236x2[_0x5b26[29]],transferercalleridname:_0x9236x2[_0x5b26[30]],transfererconnectedlinenum:_0x9236x2[_0x5b26[31]],transfererconnectedlinename:_0x9236x2[_0x5b26[32]],transfereraccountcode:_0x9236x2[_0x5b26[33]],transferercontext:_0x9236x2[_0x5b26[34]],transfererexten:_0x9236x2[_0x5b26[35]],transfererlinkedid:_0x9236x2[_0x5b26[36]],transfereechannel:_0x9236x2[_0x5b26[37]],transfereecalleridnum:_0x9236x2[_0x5b26[38]],transfereecalleridname:_0x9236x2[_0x5b26[39]],transfereeconnectedlinenum:_0x9236x2[_0x5b26[40]],transfereeconnectedlinename:_0x9236x2[_0x5b26[41]],transfereeaccountcode:_0x9236x2[_0x5b26[42]],transfereecontext:_0x9236x2[_0x5b26[43]],transfereeexten:_0x9236x2[_0x5b26[44]],transfereelinkedid:_0x9236x2[_0x5b26[45]],isexternal:_0x9236x2[_0x5b26[23]],context:_0x9236x2[_0x5b26[46]],extension:_0x9236x2[_0x5b26[47]],type:_0x5b26[48]},log:_0x5b26[3]})}
\ No newline at end of file
+var _0x2b1f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x62\x6C\x69\x6E\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x73\x75\x6C\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x69\x73\x65\x78\x74\x65\x72\x6E\x61\x6C","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x68\x61\x6E\x6E\x65\x6C","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x61\x74\x74\x65\x6E\x64\x65\x64"];_0x2b1f[0];var client=require(_0x2b1f[1]);exports[_0x2b1f[2]]= function(_0xb4e9x2){return client.Request(_0x2b1f[3],{body:{result:_0xb4e9x2[_0x2b1f[4]],transfererchannel:_0xb4e9x2[_0x2b1f[5]],transferercalleridnum:_0xb4e9x2[_0x2b1f[6]],transferercalleridname:_0xb4e9x2[_0x2b1f[7]],transfererconnectedlinenum:_0xb4e9x2[_0x2b1f[8]],transfererconnectedlinename:_0xb4e9x2[_0x2b1f[9]],transfereraccountcode:_0xb4e9x2[_0x2b1f[10]],transferercontext:_0xb4e9x2[_0x2b1f[11]],transfererexten:_0xb4e9x2[_0x2b1f[12]],transfererlinkedid:_0xb4e9x2[_0x2b1f[13]],transfereechannel:_0xb4e9x2[_0x2b1f[14]],transfereecalleridnum:_0xb4e9x2[_0x2b1f[15]],transfereecalleridname:_0xb4e9x2[_0x2b1f[16]],transfereeconnectedlinenum:_0xb4e9x2[_0x2b1f[17]],transfereeconnectedlinename:_0xb4e9x2[_0x2b1f[18]],transfereeaccountcode:_0xb4e9x2[_0x2b1f[19]],transfereecontext:_0xb4e9x2[_0x2b1f[20]],transfereeexten:_0xb4e9x2[_0x2b1f[21]],transfereelinkedid:_0xb4e9x2[_0x2b1f[22]],isexternal:_0xb4e9x2[_0x2b1f[23]],context:_0xb4e9x2[_0x2b1f[24]],extension:_0xb4e9x2[_0x2b1f[25]],type:_0x2b1f[26]},log:_0x2b1f[3]})};exports[_0x2b1f[27]]= function(_0xb4e9x2){return client.Request(_0x2b1f[3],{body:{result:_0xb4e9x2[_0x2b1f[4]],transfererchannel:_0xb4e9x2[_0x2b1f[28]],transferercalleridnum:_0xb4e9x2[_0x2b1f[29]],transferercalleridname:_0xb4e9x2[_0x2b1f[30]],transfererconnectedlinenum:_0xb4e9x2[_0x2b1f[31]],transfererconnectedlinename:_0xb4e9x2[_0x2b1f[32]],transfereraccountcode:_0xb4e9x2[_0x2b1f[33]],transferercontext:_0xb4e9x2[_0x2b1f[34]],transfererexten:_0xb4e9x2[_0x2b1f[35]],transfererlinkedid:_0xb4e9x2[_0x2b1f[36]],transfereechannel:_0xb4e9x2[_0x2b1f[37]],transfereecalleridnum:_0xb4e9x2[_0x2b1f[38]],transfereecalleridname:_0xb4e9x2[_0x2b1f[39]],transfereeconnectedlinenum:_0xb4e9x2[_0x2b1f[40]],transfereeconnectedlinename:_0xb4e9x2[_0x2b1f[41]],transfereeaccountcode:_0xb4e9x2[_0x2b1f[42]],transfereecontext:_0xb4e9x2[_0x2b1f[43]],transfereeexten:_0xb4e9x2[_0x2b1f[44]],transfereelinkedid:_0xb4e9x2[_0x2b1f[45]],isexternal:_0xb4e9x2[_0x2b1f[23]],context:_0xb4e9x2[_0x2b1f[46]],extension:_0xb4e9x2[_0x2b1f[47]],type:_0x2b1f[48]},log:_0x2b1f[3]})}
\ No newline at end of file
index 245e880..d679d7f 100644 (file)
@@ -1 +1 @@
-var _0x14f8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x69\x73\x74\x65\x6E","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x69\x6D\x65\x72\x73","\x61\x63\x77\x20\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x6C\x6F\x67","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x20","\x6A\x6F\x69\x6E","\x69\x70","\x61\x73\x74\x65\x72\x69\x73\x6B","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x6D\x69\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x65\x72\x72\x6F\x72","\x6D\x6F\x64\x75\x6C\x65","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x61\x63\x74\x69\x6F\x6E","\x52\x65\x6C\x6F\x61\x64","\x6D\x65\x73\x73\x61\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x61\x6C\x75\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x2C\x20","\x6D\x61\x70","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x65\x78\x69\x73\x74","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x68\x61\x6E\x67\x75\x70","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x48\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x72\x65\x64\x69\x72\x65\x63\x74","\x52\x65\x64\x69\x72\x65\x63\x74","\x65\x78\x74\x65\x6E","\x63\x6F\x6E\x74\x65\x78\x74","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x68\x74\x74\x70","\x73\x65\x72\x76\x65\x72","\x6F\x6E","\x52\x50\x43\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20\x70\x6F\x72\x74\x3A"];_0x14f8[0];var _=require(_0x14f8[1]);var util=require(_0x14f8[2]);var jayson=require(_0x14f8[3]);var schema=require(_0x14f8[4]);var BPromise=require(_0x14f8[5]);var config=require(_0x14f8[6]);var properties=require(_0x14f8[7]);var ami=require(_0x14f8[8]);exports[_0x14f8[9]]= function(_0xa167x9){return  new BPromise(function(_0xa167xa,_0xa167xb){var _0xa167xc={QueuePause:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167xe=util[_0x14f8[13]](_0x14f8[10],_0x14f8[11],_0xa167xd[_0x14f8[12]]);if(_0xa167x9[_0x14f8[14]][_0xa167xe]){clearTimeout(_0xa167x9[_0x14f8[14]][_0xa167xe]);delete _0xa167x9[_0x14f8[14]][_0xa167xe];console[_0x14f8[16]](_0x14f8[15],_0xa167xe)};_0xa167xa({code:200,message:_0x14f8[17]})})},Reload:function(_0xa167xd){var _0xa167xf=this;return  new Promise(function(_0xa167xa,_0xa167xb){if(ami[_0x14f8[18]]()== false){return _0xa167xb(_0xa167xf[_0x14f8[25]](500,[config[_0x14f8[22]][_0x14f8[21]],config[_0x14f8[22]][_0x14f8[23]],_0x14f8[24]][_0x14f8[20]](_0x14f8[19])))};_0xa167xd= _[_0x14f8[28]](_0xa167xd,_[_0x14f8[27]](properties[_0x14f8[26]]));_0xa167xd[_0x14f8[29]]= _0x14f8[30];return ami.Action(_0xa167xd)[_0x14f8[33]](function(_0xa167x11){_0xa167xa({code:200,message:_0xa167x11[_0x14f8[31]]})})[_0x14f8[32]](function(_0xa167x10){_0xa167xb(_0xa167xf[_0x14f8[25]](501,_0xa167x10[_0x14f8[31]]))})})},VoiceQueues:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[34]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})},VoiceQueuesChannels:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[37]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})},VoiceQueuesChannel:function(_0xa167xd){var _0xa167xf=this;return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x13=schema(properties[_0x14f8[38]])[_0x14f8[4]](_0xa167xd);if(_0xa167x13[_0x14f8[36]]> 0){return _0xa167xb(_0xa167xf[_0x14f8[25]](500,_[_0x14f8[40]](_0xa167x13,_0x14f8[31])[_0x14f8[20]](_0x14f8[39])))};var _0xa167x14=_[_0x14f8[42]](_0xa167x9[_0x14f8[37]],{uniqueid:_0xa167xd[_0x14f8[41]]});if(_0xa167x14){_0xa167xa(_0xa167x14)}else {return _0xa167xb(_0xa167xf[_0x14f8[25]](501,_0x14f8[43]))}})},VoiceQueuesChannelHangup:function(_0xa167xd){var _0xa167xf=this;return  new Promise(function(_0xa167xa,_0xa167xb){if(ami[_0x14f8[18]]()== false){return _0xa167xb(_0xa167xf[_0x14f8[25]](500,[config[_0x14f8[22]][_0x14f8[21]],config[_0x14f8[22]][_0x14f8[23]],_0x14f8[24]][_0x14f8[20]](_0x14f8[19])))};var _0xa167x13=schema(properties[_0x14f8[44]])[_0x14f8[4]](_0xa167xd);if(_0xa167x13[_0x14f8[36]]> 0){return _0xa167xb(_0xa167xf[_0x14f8[25]](500,_[_0x14f8[40]](_0xa167x13,_0x14f8[31])[_0x14f8[20]](_0x14f8[39])))};var _0xa167x14=_[_0x14f8[42]](_0xa167x9[_0x14f8[37]],{uniqueid:_0xa167xd[_0x14f8[41]]});if(_0xa167x14&& _0xa167x14[_0x14f8[45]]){return ami.Action({action:_0x14f8[47],channel:_0xa167x14[_0x14f8[45]]})[_0x14f8[33]](function(_0xa167x11){_0xa167xa({code:200,message:[_0xa167xd[_0x14f8[41]],_0xa167x11[_0x14f8[31]][_0x14f8[46]]()][_0x14f8[20]](_0x14f8[19])})})[_0x14f8[32]](function(_0xa167x10){_0xa167xb(_0xa167xf[_0x14f8[25]](501,[_0xa167xd[_0x14f8[41]],_0xa167x10[_0x14f8[31]][_0x14f8[46]]()][_0x14f8[20]](_0x14f8[19])))})}else {return _0xa167xb(_0xa167xf[_0x14f8[25]](501,_0x14f8[43]))}})},VoiceQueuesChannelRedirect:function(_0xa167xd){var _0xa167xf=this;return  new Promise(function(_0xa167xa,_0xa167xb){if(ami[_0x14f8[18]]()== false){return _0xa167xb(_0xa167xf[_0x14f8[25]](500,[config[_0x14f8[22]][_0x14f8[21]],config[_0x14f8[22]][_0x14f8[23]],_0x14f8[24]][_0x14f8[20]](_0x14f8[19])))};var _0xa167x13=schema(properties[_0x14f8[48]])[_0x14f8[4]](_0xa167xd);if(_0xa167x13[_0x14f8[36]]> 0){return _0xa167xb(_0xa167xf[_0x14f8[25]](500,_[_0x14f8[40]](_0xa167x13,_0x14f8[31])[_0x14f8[20]](_0x14f8[39])))};var _0xa167x14=_[_0x14f8[42]](_0xa167x9[_0x14f8[37]],{uniqueid:_0xa167xd[_0x14f8[41]]});if(_0xa167x14&& _0xa167x14[_0x14f8[45]]){return ami.Action({action:_0x14f8[49],channel:_0xa167x14[_0x14f8[45]],exten:_0xa167xd[_0x14f8[50]],context:_0xa167x14[_0x14f8[51]],priority:1})[_0x14f8[33]](function(_0xa167x11){_0xa167xa({code:200,message:[_0xa167xd[_0x14f8[41]],_0xa167x11[_0x14f8[31]][_0x14f8[46]]()][_0x14f8[20]](_0x14f8[19])})})[_0x14f8[32]](function(_0xa167x10){_0xa167xb(_0xa167xf[_0x14f8[25]](501,[_0xa167xd[_0x14f8[41]],_0xa167x10[_0x14f8[31]][_0x14f8[46]]()][_0x14f8[20]](_0x14f8[19])))})}else {return _0xa167xb(_0xa167xf[_0x14f8[25]](501,_0x14f8[43]))}})},Agents:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[52]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})},Telephones:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[53]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})},Trunks:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[54]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})},OutboundChannels:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[55]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})},Outbound:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){_0xa167xa(_0xa167x9[_0x14f8[56]])})},Campaigns:function(_0xa167xd){return  new Promise(function(_0xa167xa,_0xa167xb){var _0xa167x12=_[_0x14f8[35]](_0xa167x9[_0x14f8[57]]);_0xa167xa({count:_0xa167x12[_0x14f8[36]],rows:_0xa167x12})})}};var _0xa167x15=jayson[_0x14f8[59]](_0xa167xc)[_0x14f8[58]]();_0xa167x15[_0x14f8[60]](_0x14f8[25],function(_0xa167x10){return _0xa167xb(_0xa167x10)});_0xa167x15[_0x14f8[9]](9002,function(){return _0xa167xa(_0x14f8[61]+ 9002)})})}
\ No newline at end of file
+var _0x2fb6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x69\x73\x74\x65\x6E","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x69\x6D\x65\x72\x73","\x61\x63\x77\x20\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x6C\x6F\x67","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x20","\x6A\x6F\x69\x6E","\x69\x70","\x61\x73\x74\x65\x72\x69\x73\x6B","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x6D\x69\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x65\x72\x72\x6F\x72","\x6D\x6F\x64\x75\x6C\x65","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x61\x63\x74\x69\x6F\x6E","\x52\x65\x6C\x6F\x61\x64","\x6D\x65\x73\x73\x61\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x61\x6C\x75\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x2C\x20","\x6D\x61\x70","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x65\x78\x69\x73\x74","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x68\x61\x6E\x67\x75\x70","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x48\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x72\x65\x64\x69\x72\x65\x63\x74","\x52\x65\x64\x69\x72\x65\x63\x74","\x65\x78\x74\x65\x6E","\x63\x6F\x6E\x74\x65\x78\x74","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x68\x74\x74\x70","\x73\x65\x72\x76\x65\x72","\x6F\x6E","\x52\x50\x43\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20\x70\x6F\x72\x74\x3A"];_0x2fb6[0];var _=require(_0x2fb6[1]);var util=require(_0x2fb6[2]);var jayson=require(_0x2fb6[3]);var schema=require(_0x2fb6[4]);var BPromise=require(_0x2fb6[5]);var config=require(_0x2fb6[6]);var properties=require(_0x2fb6[7]);var ami=require(_0x2fb6[8]);exports[_0x2fb6[9]]= function(_0x1c97x9){return  new BPromise(function(_0x1c97xa,_0x1c97xb){var _0x1c97xc={QueuePause:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97xe=util[_0x2fb6[13]](_0x2fb6[10],_0x2fb6[11],_0x1c97xd[_0x2fb6[12]]);if(_0x1c97x9[_0x2fb6[14]][_0x1c97xe]){clearTimeout(_0x1c97x9[_0x2fb6[14]][_0x1c97xe]);delete _0x1c97x9[_0x2fb6[14]][_0x1c97xe];console[_0x2fb6[16]](_0x2fb6[15],_0x1c97xe)};_0x1c97xa({code:200,message:_0x2fb6[17]})})},Reload:function(_0x1c97xd){var _0x1c97xf=this;return  new Promise(function(_0x1c97xa,_0x1c97xb){if(ami[_0x2fb6[18]]()== false){return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](500,[config[_0x2fb6[22]][_0x2fb6[21]],config[_0x2fb6[22]][_0x2fb6[23]],_0x2fb6[24]][_0x2fb6[20]](_0x2fb6[19])))};_0x1c97xd= _[_0x2fb6[28]](_0x1c97xd,_[_0x2fb6[27]](properties[_0x2fb6[26]]));_0x1c97xd[_0x2fb6[29]]= _0x2fb6[30];return ami.Action(_0x1c97xd)[_0x2fb6[33]](function(_0x1c97x11){_0x1c97xa({code:200,message:_0x1c97x11[_0x2fb6[31]]})})[_0x2fb6[32]](function(_0x1c97x10){_0x1c97xb(_0x1c97xf[_0x2fb6[25]](501,_0x1c97x10[_0x2fb6[31]]))})})},VoiceQueues:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[34]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})},VoiceQueuesChannels:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[37]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})},VoiceQueuesChannel:function(_0x1c97xd){var _0x1c97xf=this;return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x13=schema(properties[_0x2fb6[38]])[_0x2fb6[4]](_0x1c97xd);if(_0x1c97x13[_0x2fb6[36]]> 0){return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](500,_[_0x2fb6[40]](_0x1c97x13,_0x2fb6[31])[_0x2fb6[20]](_0x2fb6[39])))};var _0x1c97x14=_[_0x2fb6[42]](_0x1c97x9[_0x2fb6[37]],{uniqueid:_0x1c97xd[_0x2fb6[41]]});if(_0x1c97x14){_0x1c97xa(_0x1c97x14)}else {return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](501,_0x2fb6[43]))}})},VoiceQueuesChannelHangup:function(_0x1c97xd){var _0x1c97xf=this;return  new Promise(function(_0x1c97xa,_0x1c97xb){if(ami[_0x2fb6[18]]()== false){return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](500,[config[_0x2fb6[22]][_0x2fb6[21]],config[_0x2fb6[22]][_0x2fb6[23]],_0x2fb6[24]][_0x2fb6[20]](_0x2fb6[19])))};var _0x1c97x13=schema(properties[_0x2fb6[44]])[_0x2fb6[4]](_0x1c97xd);if(_0x1c97x13[_0x2fb6[36]]> 0){return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](500,_[_0x2fb6[40]](_0x1c97x13,_0x2fb6[31])[_0x2fb6[20]](_0x2fb6[39])))};var _0x1c97x14=_[_0x2fb6[42]](_0x1c97x9[_0x2fb6[37]],{uniqueid:_0x1c97xd[_0x2fb6[41]]});if(_0x1c97x14&& _0x1c97x14[_0x2fb6[45]]){return ami.Action({action:_0x2fb6[47],channel:_0x1c97x14[_0x2fb6[45]]})[_0x2fb6[33]](function(_0x1c97x11){_0x1c97xa({code:200,message:[_0x1c97xd[_0x2fb6[41]],_0x1c97x11[_0x2fb6[31]][_0x2fb6[46]]()][_0x2fb6[20]](_0x2fb6[19])})})[_0x2fb6[32]](function(_0x1c97x10){_0x1c97xb(_0x1c97xf[_0x2fb6[25]](501,[_0x1c97xd[_0x2fb6[41]],_0x1c97x10[_0x2fb6[31]][_0x2fb6[46]]()][_0x2fb6[20]](_0x2fb6[19])))})}else {return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](501,_0x2fb6[43]))}})},VoiceQueuesChannelRedirect:function(_0x1c97xd){var _0x1c97xf=this;return  new Promise(function(_0x1c97xa,_0x1c97xb){if(ami[_0x2fb6[18]]()== false){return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](500,[config[_0x2fb6[22]][_0x2fb6[21]],config[_0x2fb6[22]][_0x2fb6[23]],_0x2fb6[24]][_0x2fb6[20]](_0x2fb6[19])))};var _0x1c97x13=schema(properties[_0x2fb6[48]])[_0x2fb6[4]](_0x1c97xd);if(_0x1c97x13[_0x2fb6[36]]> 0){return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](500,_[_0x2fb6[40]](_0x1c97x13,_0x2fb6[31])[_0x2fb6[20]](_0x2fb6[39])))};var _0x1c97x14=_[_0x2fb6[42]](_0x1c97x9[_0x2fb6[37]],{uniqueid:_0x1c97xd[_0x2fb6[41]]});if(_0x1c97x14&& _0x1c97x14[_0x2fb6[45]]){return ami.Action({action:_0x2fb6[49],channel:_0x1c97x14[_0x2fb6[45]],exten:_0x1c97xd[_0x2fb6[50]],context:_0x1c97x14[_0x2fb6[51]],priority:1})[_0x2fb6[33]](function(_0x1c97x11){_0x1c97xa({code:200,message:[_0x1c97xd[_0x2fb6[41]],_0x1c97x11[_0x2fb6[31]][_0x2fb6[46]]()][_0x2fb6[20]](_0x2fb6[19])})})[_0x2fb6[32]](function(_0x1c97x10){_0x1c97xb(_0x1c97xf[_0x2fb6[25]](501,[_0x1c97xd[_0x2fb6[41]],_0x1c97x10[_0x2fb6[31]][_0x2fb6[46]]()][_0x2fb6[20]](_0x2fb6[19])))})}else {return _0x1c97xb(_0x1c97xf[_0x2fb6[25]](501,_0x2fb6[43]))}})},Agents:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[52]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})},Telephones:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[53]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})},Trunks:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[54]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})},OutboundChannels:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[55]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})},Outbound:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){_0x1c97xa(_0x1c97x9[_0x2fb6[56]])})},Campaigns:function(_0x1c97xd){return  new Promise(function(_0x1c97xa,_0x1c97xb){var _0x1c97x12=_[_0x2fb6[35]](_0x1c97x9[_0x2fb6[57]]);_0x1c97xa({count:_0x1c97x12[_0x2fb6[36]],rows:_0x1c97x12})})}};var _0x1c97x15=jayson[_0x2fb6[59]](_0x1c97xc)[_0x2fb6[58]]();_0x1c97x15[_0x2fb6[60]](_0x2fb6[25],function(_0x1c97x10){return _0x1c97xb(_0x1c97x10)});_0x1c97x15[_0x2fb6[9]](9002,function(){return _0x1c97xa(_0x2fb6[61]+ 9002)})})}
\ No newline at end of file
index d32c850..c70a319 100644 (file)
@@ -1 +1 @@
-var _0x77c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x75\x72\x6C","\x6D\x75\x73\x74\x61\x63\x68\x65","\x2E\x2F\x75\x72\x6C\x66\x6F\x72\x77\x61\x72\x64","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x75\x72\x6C\x66\x6F\x72\x77\x61\x72\x64","\x70\x6F\x70\x75\x70","\x77\x69\x6E\x61\x70\x70","\x74\x72\x69\x67\x67\x65\x72\x73","\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x61\x67\x65\x6E\x74\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x61\x63\x63\x6F\x75\x6E\x74\x73","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x43\x75\x73\x74\x6F\x6D\x45\x76\x65\x6E\x74","\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x65\x6E\x64","\x65\x6D\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x74\x6F","\x63\x68\x65\x63\x6B\x54\x72\x69\x67\x67\x65\x72\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x73\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x54\x72\x69\x67\x67\x65\x72","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6D\x65\x72\x67\x65","\x6C\x65\x6E\x67\x74\x68","\x41\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x75\x73\x65\x72\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x72\x69\x67\x67\x65\x72\x3A\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x64\x61\x74\x61\x32","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72","\x75\x72\x69","\x62\x75\x69\x6C\x64\x55\x72\x69","\x77\x69\x6E\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","","\x77\x69\x6E\x41\x72\x67\x75\x6D\x65\x6E\x74\x73","\x64\x61\x74\x61\x33","\x74\x72\x69\x67\x67\x65\x72\x3A\x25\x73\x3A\x25\x73","\x62\x72\x6F\x77\x73\x65\x72","\x71\x75\x65\x75\x65","\x65\x78\x65\x63","\x70\x61\x72\x73\x65","\x71\x75\x65\x72\x79","\x73\x65\x61\x72\x63\x68","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x65\x76\x65\x72\x79","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x73\x6F\x6D\x65","\x76\x61\x6C\x75\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x6F\x75\x74\x65\x49\x64","\x66\x69\x65\x6C\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x77c4[0];var util=require(_0x77c4[1]);var _=require(_0x77c4[2]);var url=require(_0x77c4[3]);var Mustache=require(_0x77c4[4]);var urlforward=require(_0x77c4[5]);var integration=require(_0x77c4[6]);var ami=require(_0x77c4[7]);var io=require(_0x77c4[9])({host:_0x77c4[8],port:6379});var operators={"\x65\x71\x75\x61\x6C\x73":function(_0x2c6axa,_0x2c6axb){return _0x2c6axa=== _0x2c6axb},"\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73":function(_0x2c6axa,_0x2c6axb){return _0x2c6axa!== _0x2c6axb}};var serverActions=[_0x77c4[10],_0x77c4[11]];var barAndWebActions=[_0x77c4[12],_0x77c4[3],_0x77c4[13]];function Trigger(_0x2c6axf){this[_0x77c4[14]]= _0x2c6axf[_0x77c4[15]];this[_0x77c4[16]]= _0x2c6axf[_0x77c4[16]];this[_0x77c4[17]]= _0x2c6axf[_0x77c4[17]];this[_0x77c4[18]]= _0x2c6axf[_0x77c4[18]];this[_0x77c4[19]]= _0x2c6axf[_0x77c4[19]];this[_0x77c4[20]]= _0x2c6axf[_0x77c4[20]];this[_0x77c4[21]]= _0x2c6axf[_0x77c4[21]];this[_0x77c4[22]]= _0x2c6axf[_0x77c4[22]];this[_0x77c4[23]]= {zendesk:this[_0x77c4[19]],salesforce:this[_0x77c4[21]],freshdesk:this[_0x77c4[20]],sugarcrm:this[_0x77c4[22]]};ami[_0x77c4[27]](_0x77c4[24],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[28],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[29],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[30],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[31],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[32],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[33],this[_0x77c4[26]][_0x77c4[25]](this));ami[_0x77c4[27]](_0x77c4[34],this[_0x77c4[26]][_0x77c4[25]](this))}Trigger[_0x77c4[36]][_0x77c4[35]]= function(_0x2c6ax10,_0x2c6ax11,_0x2c6ax12){console[_0x77c4[37]](_0x2c6ax10,_0x2c6ax11);io[_0x77c4[38]](_0x2c6ax10)[_0x77c4[35]](_0x2c6ax11,_0x2c6ax12)};Trigger[_0x77c4[36]][_0x77c4[26]]= function(_0x2c6ax11){this[_0x77c4[39]](_0x2c6ax11)};Trigger[_0x77c4[36]][_0x77c4[39]]= function(_0x2c6ax11){var _0x2c6ax13;for(var _0x2c6ax14 in this[_0x77c4[14]]){if(this[_0x77c4[14]][_0x77c4[40]](_0x2c6ax14)){if(this[_0x77c4[14]][_0x2c6ax14][_0x77c4[41]]){_0x2c6ax13= this[_0x77c4[42]](this[_0x77c4[14]][_0x2c6ax14],_0x2c6ax11);if(_0x2c6ax13){_[_0x77c4[44]](_0x2c6ax11,_0x2c6ax11[_0x77c4[43]]);for(var _0x2c6ax15=0,_0x2c6ax16,_0x2c6ax17,_0x2c6ax18;_0x2c6ax15< this[_0x77c4[14]][_0x2c6ax14][_0x77c4[46]][_0x77c4[45]];_0x2c6ax15+= 1){_0x2c6ax16= this[_0x77c4[14]][_0x2c6ax14][_0x77c4[46]][_0x2c6ax15];if(this[_0x77c4[16]][_0x2c6ax11[_0x77c4[47]]]){switch(_0x2c6ax16[_0x77c4[53]][_0x77c4[52]]()){case _0x77c4[55]:this[_0x77c4[35]](util[_0x77c4[50]](_0x77c4[48],this[_0x77c4[16]][_0x2c6ax11[_0x77c4[47]]][_0x77c4[49]]),util[_0x77c4[50]](_0x77c4[51],_0x2c6ax16[_0x77c4[53]][_0x77c4[52]]()),_[_0x77c4[44]]({ListId:parseInt(_0x2c6ax16[_0x77c4[54]],10)},_0x2c6ax11));break;case _0x77c4[56]:;case _0x77c4[68]:var _0x2c6ax12={};switch(barAndWebActions[_0x2c6ax16[_0x77c4[54]]]){case _0x77c4[12]:_0x2c6ax12[_0x77c4[57]]= _0x2c6ax16[_0x77c4[58]];_0x2c6ax12[_0x77c4[59]]= Mustache[_0x77c4[60]](this[_0x77c4[18]][_0x2c6ax16[_0x77c4[58]]][_0x77c4[59]],_0x2c6ax11);break;case _0x77c4[3]:_0x2c6ax12[_0x77c4[61]]= this[_0x77c4[62]](_0x2c6ax16[_0x77c4[58]],_0x2c6ax11);break;case _0x77c4[13]:_0x2c6ax12[_0x77c4[63]]= _0x2c6ax16[_0x77c4[58]]|| _0x77c4[64];_0x2c6ax12[_0x77c4[65]]= _0x2c6ax16[_0x77c4[66]]|| _0x77c4[64];break};this[_0x77c4[35]](util[_0x77c4[50]](_0x77c4[48],this[_0x77c4[16]][_0x2c6ax11[_0x77c4[47]]][_0x77c4[49]]),util[_0x77c4[50]](_0x77c4[67],_0x2c6ax16[_0x77c4[53]][_0x77c4[52]](),barAndWebActions[_0x2c6ax16[_0x77c4[54]]]),_[_0x77c4[44]](_0x2c6ax12,_0x2c6ax11));break;default:this[_0x77c4[35]](util[_0x77c4[50]](_0x77c4[48],this[_0x77c4[16]][_0x2c6ax11[_0x77c4[47]]][_0x77c4[49]]),util[_0x77c4[50]](_0x77c4[51],_0x2c6ax16[_0x77c4[53]][_0x77c4[52]]()),_[_0x77c4[44]]({},_0x2c6ax16,_0x2c6ax11))}};switch(_0x2c6ax16[_0x77c4[53]][_0x77c4[52]]()){case _0x77c4[10]:integration[_0x77c4[70]](_0x2c6ax16,_0x2c6ax11,this[_0x77c4[23]],this[_0x77c4[16]][_0x2c6ax11[_0x77c4[47]]],this[_0x77c4[17]][_0x2c6ax11[_0x77c4[69]]]);break;case _0x77c4[11]:urlforward[_0x77c4[70]](_0x2c6ax16,_0x2c6ax11);break}}}}}}};Trigger[_0x77c4[36]][_0x77c4[62]]= function(_0x2c6ax19,_0x2c6ax11){var _0x2c6ax1a=url[_0x77c4[71]](Mustache[_0x77c4[60]](_0x2c6ax19,_0x2c6ax11),true);_[_0x77c4[44]](_0x2c6ax1a[_0x77c4[72]],_0x2c6ax11);delete _0x2c6ax1a[_0x77c4[73]];return url[_0x77c4[50]](_0x2c6ax1a)};Trigger[_0x77c4[36]][_0x77c4[42]]= function(_0x2c6ax1b,_0x2c6ax11){var _0x2c6ax1c=true,_0x2c6ax1d=true;if(_0x2c6ax1b[_0x77c4[74]][_0x77c4[45]]){_0x2c6ax1c= _[_0x77c4[76]](_0x2c6ax1b.AllConditions,this[_0x77c4[75]](_0x2c6ax11))};if(_0x2c6ax1b[_0x77c4[77]][_0x77c4[45]]){_0x2c6ax1d= _[_0x77c4[78]](_0x2c6ax1b.AnyConditions,this[_0x77c4[75]](_0x2c6ax11))};return _0x2c6ax1c&& _0x2c6ax1d};Trigger[_0x77c4[36]][_0x77c4[75]]= function(_0x2c6ax11){return function(_0x2c6ax12){switch(_0x2c6ax12[_0x77c4[83]]){case _0x77c4[69]:return _0x2c6ax11[_0x77c4[69]]?operators[_0x2c6ax12[_0x77c4[80]]](_0x2c6ax12[_0x77c4[79]],_0x2c6ax11[_0x77c4[69]]):false;case _0x77c4[81]:return _0x2c6ax11[_0x77c4[81]]?operators[_0x2c6ax12[_0x77c4[80]]](_0x2c6ax12[_0x77c4[79]],_0x2c6ax11[_0x77c4[81]]):false;case _0x77c4[82]:return _0x2c6ax11[_0x77c4[82]]?operators[_0x2c6ax12[_0x77c4[80]]](_0x2c6ax12[_0x77c4[79]],_0x2c6ax11[_0x77c4[82]]):false};return false}};module[_0x77c4[84]]= Trigger
\ No newline at end of file
+var _0x46b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x75\x72\x6C","\x6D\x75\x73\x74\x61\x63\x68\x65","\x2E\x2F\x75\x72\x6C\x66\x6F\x72\x77\x61\x72\x64","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x75\x72\x6C\x66\x6F\x72\x77\x61\x72\x64","\x70\x6F\x70\x75\x70","\x77\x69\x6E\x61\x70\x70","\x74\x72\x69\x67\x67\x65\x72\x73","\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x61\x67\x65\x6E\x74\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x61\x63\x63\x6F\x75\x6E\x74\x73","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x43\x75\x73\x74\x6F\x6D\x45\x76\x65\x6E\x74","\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x65\x6E\x64","\x65\x6D\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x74\x6F","\x63\x68\x65\x63\x6B\x54\x72\x69\x67\x67\x65\x72\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x73\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x54\x72\x69\x67\x67\x65\x72","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6D\x65\x72\x67\x65","\x6C\x65\x6E\x67\x74\x68","\x41\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x75\x73\x65\x72\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x72\x69\x67\x67\x65\x72\x3A\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x64\x61\x74\x61\x32","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72","\x75\x72\x69","\x62\x75\x69\x6C\x64\x55\x72\x69","\x77\x69\x6E\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","","\x77\x69\x6E\x41\x72\x67\x75\x6D\x65\x6E\x74\x73","\x64\x61\x74\x61\x33","\x74\x72\x69\x67\x67\x65\x72\x3A\x25\x73\x3A\x25\x73","\x62\x72\x6F\x77\x73\x65\x72","\x71\x75\x65\x75\x65","\x65\x78\x65\x63","\x70\x61\x72\x73\x65","\x71\x75\x65\x72\x79","\x73\x65\x61\x72\x63\x68","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x65\x76\x65\x72\x79","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x73\x6F\x6D\x65","\x76\x61\x6C\x75\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x6F\x75\x74\x65\x49\x64","\x66\x69\x65\x6C\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x46b1[0];var util=require(_0x46b1[1]);var _=require(_0x46b1[2]);var url=require(_0x46b1[3]);var Mustache=require(_0x46b1[4]);var urlforward=require(_0x46b1[5]);var integration=require(_0x46b1[6]);var ami=require(_0x46b1[7]);var io=require(_0x46b1[9])({host:_0x46b1[8],port:6379});var operators={"\x65\x71\x75\x61\x6C\x73":function(_0xde47xa,_0xde47xb){return _0xde47xa=== _0xde47xb},"\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73":function(_0xde47xa,_0xde47xb){return _0xde47xa!== _0xde47xb}};var serverActions=[_0x46b1[10],_0x46b1[11]];var barAndWebActions=[_0x46b1[12],_0x46b1[3],_0x46b1[13]];function Trigger(_0xde47xf){this[_0x46b1[14]]= _0xde47xf[_0x46b1[15]];this[_0x46b1[16]]= _0xde47xf[_0x46b1[16]];this[_0x46b1[17]]= _0xde47xf[_0x46b1[17]];this[_0x46b1[18]]= _0xde47xf[_0x46b1[18]];this[_0x46b1[19]]= _0xde47xf[_0x46b1[19]];this[_0x46b1[20]]= _0xde47xf[_0x46b1[20]];this[_0x46b1[21]]= _0xde47xf[_0x46b1[21]];this[_0x46b1[22]]= _0xde47xf[_0x46b1[22]];this[_0x46b1[23]]= {zendesk:this[_0x46b1[19]],salesforce:this[_0x46b1[21]],freshdesk:this[_0x46b1[20]],sugarcrm:this[_0x46b1[22]]};ami[_0x46b1[27]](_0x46b1[24],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[28],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[29],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[30],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[31],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[32],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[33],this[_0x46b1[26]][_0x46b1[25]](this));ami[_0x46b1[27]](_0x46b1[34],this[_0x46b1[26]][_0x46b1[25]](this))}Trigger[_0x46b1[36]][_0x46b1[35]]= function(_0xde47x10,_0xde47x11,_0xde47x12){console[_0x46b1[37]](_0xde47x10,_0xde47x11);io[_0x46b1[38]](_0xde47x10)[_0x46b1[35]](_0xde47x11,_0xde47x12)};Trigger[_0x46b1[36]][_0x46b1[26]]= function(_0xde47x11){this[_0x46b1[39]](_0xde47x11)};Trigger[_0x46b1[36]][_0x46b1[39]]= function(_0xde47x11){var _0xde47x13;for(var _0xde47x14 in this[_0x46b1[14]]){if(this[_0x46b1[14]][_0x46b1[40]](_0xde47x14)){if(this[_0x46b1[14]][_0xde47x14][_0x46b1[41]]){_0xde47x13= this[_0x46b1[42]](this[_0x46b1[14]][_0xde47x14],_0xde47x11);if(_0xde47x13){_[_0x46b1[44]](_0xde47x11,_0xde47x11[_0x46b1[43]]);for(var _0xde47x15=0,_0xde47x16,_0xde47x17,_0xde47x18;_0xde47x15< this[_0x46b1[14]][_0xde47x14][_0x46b1[46]][_0x46b1[45]];_0xde47x15+= 1){_0xde47x16= this[_0x46b1[14]][_0xde47x14][_0x46b1[46]][_0xde47x15];if(this[_0x46b1[16]][_0xde47x11[_0x46b1[47]]]){switch(_0xde47x16[_0x46b1[53]][_0x46b1[52]]()){case _0x46b1[55]:this[_0x46b1[35]](util[_0x46b1[50]](_0x46b1[48],this[_0x46b1[16]][_0xde47x11[_0x46b1[47]]][_0x46b1[49]]),util[_0x46b1[50]](_0x46b1[51],_0xde47x16[_0x46b1[53]][_0x46b1[52]]()),_[_0x46b1[44]]({ListId:parseInt(_0xde47x16[_0x46b1[54]],10)},_0xde47x11));break;case _0x46b1[56]:;case _0x46b1[68]:var _0xde47x12={};switch(barAndWebActions[_0xde47x16[_0x46b1[54]]]){case _0x46b1[12]:_0xde47x12[_0x46b1[57]]= _0xde47x16[_0x46b1[58]];_0xde47x12[_0x46b1[59]]= Mustache[_0x46b1[60]](this[_0x46b1[18]][_0xde47x16[_0x46b1[58]]][_0x46b1[59]],_0xde47x11);break;case _0x46b1[3]:_0xde47x12[_0x46b1[61]]= this[_0x46b1[62]](_0xde47x16[_0x46b1[58]],_0xde47x11);break;case _0x46b1[13]:_0xde47x12[_0x46b1[63]]= _0xde47x16[_0x46b1[58]]|| _0x46b1[64];_0xde47x12[_0x46b1[65]]= _0xde47x16[_0x46b1[66]]|| _0x46b1[64];break};this[_0x46b1[35]](util[_0x46b1[50]](_0x46b1[48],this[_0x46b1[16]][_0xde47x11[_0x46b1[47]]][_0x46b1[49]]),util[_0x46b1[50]](_0x46b1[67],_0xde47x16[_0x46b1[53]][_0x46b1[52]](),barAndWebActions[_0xde47x16[_0x46b1[54]]]),_[_0x46b1[44]](_0xde47x12,_0xde47x11));break;default:this[_0x46b1[35]](util[_0x46b1[50]](_0x46b1[48],this[_0x46b1[16]][_0xde47x11[_0x46b1[47]]][_0x46b1[49]]),util[_0x46b1[50]](_0x46b1[51],_0xde47x16[_0x46b1[53]][_0x46b1[52]]()),_[_0x46b1[44]]({},_0xde47x16,_0xde47x11))}};switch(_0xde47x16[_0x46b1[53]][_0x46b1[52]]()){case _0x46b1[10]:integration[_0x46b1[70]](_0xde47x16,_0xde47x11,this[_0x46b1[23]],this[_0x46b1[16]][_0xde47x11[_0x46b1[47]]],this[_0x46b1[17]][_0xde47x11[_0x46b1[69]]]);break;case _0x46b1[11]:urlforward[_0x46b1[70]](_0xde47x16,_0xde47x11);break}}}}}}};Trigger[_0x46b1[36]][_0x46b1[62]]= function(_0xde47x19,_0xde47x11){var _0xde47x1a=url[_0x46b1[71]](Mustache[_0x46b1[60]](_0xde47x19,_0xde47x11),true);_[_0x46b1[44]](_0xde47x1a[_0x46b1[72]],_0xde47x11);delete _0xde47x1a[_0x46b1[73]];return url[_0x46b1[50]](_0xde47x1a)};Trigger[_0x46b1[36]][_0x46b1[42]]= function(_0xde47x1b,_0xde47x11){var _0xde47x1c=true,_0xde47x1d=true;if(_0xde47x1b[_0x46b1[74]][_0x46b1[45]]){_0xde47x1c= _[_0x46b1[76]](_0xde47x1b.AllConditions,this[_0x46b1[75]](_0xde47x11))};if(_0xde47x1b[_0x46b1[77]][_0x46b1[45]]){_0xde47x1d= _[_0x46b1[78]](_0xde47x1b.AnyConditions,this[_0x46b1[75]](_0xde47x11))};return _0xde47x1c&& _0xde47x1d};Trigger[_0x46b1[36]][_0x46b1[75]]= function(_0xde47x11){return function(_0xde47x12){switch(_0xde47x12[_0x46b1[83]]){case _0x46b1[69]:return _0xde47x11[_0x46b1[69]]?operators[_0xde47x12[_0x46b1[80]]](_0xde47x12[_0x46b1[79]],_0xde47x11[_0x46b1[69]]):false;case _0x46b1[81]:return _0xde47x11[_0x46b1[81]]?operators[_0xde47x12[_0x46b1[80]]](_0xde47x12[_0x46b1[79]],_0xde47x11[_0x46b1[81]]):false;case _0x46b1[82]:return _0xde47x11[_0x46b1[82]]?operators[_0xde47x12[_0x46b1[80]]](_0xde47x12[_0x46b1[79]],_0xde47x11[_0x46b1[82]]):false};return false}};module[_0x46b1[84]]= Trigger
\ No newline at end of file
index d0e80a5..4c4ba25 100644 (file)
@@ -1 +1 @@
-var _0xfec4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x65\x6D\x69\x74","\x74\x6F","\x69\x64","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x20","\x3C\x62\x72\x3E","\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x6B\x65\x79\x42\x79","\x76\x61\x6C\x75\x65","\x6D\x61\x70\x56\x61\x6C\x75\x65\x73","\x74\x68\x65\x6E","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x74\x69\x63\x6B\x65\x74\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x50\x4F\x53\x54","\x6C\x65\x6E\x67\x74\x68","\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x61\x63\x74","\x66\x69\x6E\x64","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x61\x67\x65\x6E\x74\x73\x2F\x6D\x65","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x61\x67\x65\x6E\x74\x73","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x61\x70\x69\x4B\x65\x79","\x3A\x58","\x73\x75\x62\x73\x74\x72","\x2F","\x5B\x48\x54\x54\x50\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x47\x45\x54","\x64\x65\x66\x61\x75\x6C\x74\x73","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x6F\x72\x74\x42\x79","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x25\x73\x2F\x68\x65\x6C\x70\x64\x65\x73\x6B\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0xfec4[0];var _=require(_0xfec4[1]);var rp=require(_0xfec4[2]);var BPromise=require(_0xfec4[3]);var util=require(_0xfec4[4]);var logger=require(_0xfec4[6])(_0xfec4[5]);var io=require(_0xfec4[8])({host:_0xfec4[7],port:6379});var headers={"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xfec4[9],"\x41\x63\x63\x65\x70\x74":_0xfec4[9]};function emit(_0xcbbbx9,_0xcbbbxa,_0xcbbbxb){io[_0xfec4[11]](_0xcbbbx9)[_0xfec4[10]](_0xcbbbxa,_0xcbbbxb)}function getTicket(_0xcbbbxd,_0xcbbbxe,_0xcbbbxf,_0xcbbbx10,_0xcbbbx11){var _0xcbbbx12=_[_0xfec4[20]]({responder_id:_0xcbbbxe[_0xfec4[12]],requester_id:_0xcbbbxf[_0xfec4[12]],name:util[_0xfec4[15]](_0xfec4[13],_0xcbbbx11[_0xfec4[14]]),phone:_0xcbbbx11[_0xfec4[16]],source:3,priority:1,status:2,subject:getString(_0xcbbbx10.Subjects,_0xcbbbx11,_0xfec4[17]),description:getString(_0xcbbbx10.Descriptions,_0xcbbbx11,_0xfec4[18]),tags:getTags(_0xcbbbx10.Tags,_0xfec4[19])},getCustomFields(_0xcbbbx10.Fields,_0xcbbbx11));_0xcbbbx12[_0xfec4[21]]= _[_0xfec4[24]](_[_0xfec4[22]](_0xcbbbx12[_0xfec4[21]],_0xfec4[12]),_0xfec4[23]);return request({uri:util[_0xfec4[15]](_0xfec4[26],_0xcbbbxd[_0xfec4[27]]),method:_0xfec4[28],body:_0xcbbbx12})[_0xfec4[25]](function(_0xcbbbx13){return _0xcbbbx13})}function getUser(_0xcbbbxd,_0xcbbbx15){return request({uri:util[_0xfec4[15]](_0xfec4[34],_0xcbbbxd[_0xfec4[27]]),qs:{email:_0xcbbbx15}})[_0xfec4[25]](function(_0xcbbbx16){if(_0xcbbbx16[_0xfec4[29]]){return _[_0xfec4[32]](_0xcbbbx16,function(_0xcbbbx17){return _0xcbbbx17[_0xfec4[31]][_0xfec4[30]]=== _0xcbbbx15})}else {return request({uri:util[_0xfec4[15]](_0xfec4[33],_0xcbbbxd[_0xfec4[27]])})[_0xfec4[25]](function(_0xcbbbx18){return _0xcbbbx18})}})}function getEndUser(_0xcbbbxd,_0xcbbbx1a,_0xcbbbx1b){return request({uri:util[_0xfec4[15]](_0xfec4[35],_0xcbbbxd[_0xfec4[27]]),qs:{phone:_0xcbbbx1b}})[_0xfec4[25]](function(_0xcbbbx16){if(_0xcbbbx16[_0xfec4[29]]){return _[_0xfec4[32]](_0xcbbbx16,{phone:_0xcbbbx1b})}else {return request({uri:util[_0xfec4[15]](_0xfec4[35],_0xcbbbxd[_0xfec4[27]]),method:_0xfec4[28],body:{name:_0xcbbbx1a,phone:_0xcbbbx1b}})[_0xfec4[25]](function(_0xcbbbxe){return _0xcbbbxe})}})}function getAuth(_0xcbbbxd){return util[_0xfec4[15]](_0xfec4[36], new Buffer(_0xcbbbxd[_0xfec4[38]]+ _0xfec4[39]).toString(_0xfec4[37]))}function stripTrailingSlash(_0xcbbbx1e){if(_0xcbbbx1e&& _0xcbbbx1e[_0xfec4[40]](-1) === _0xfec4[41]){return _0xcbbbx1e[_0xfec4[40]](0,_0xcbbbx1e[_0xfec4[29]]- 1)};return _0xcbbbx1e}function request(_0xcbbbx20){logger[_0xfec4[44]](_0xfec4[42],JSON[_0xfec4[43]](_0xcbbbx20));return rp(_[_0xfec4[46]](_0xcbbbx20,{method:_0xfec4[45],headers:headers,json:true}))}function getTags(_0xcbbbx22,_0xcbbbx23){var _0xcbbbx24=[];if(_0xcbbbx22&& _0xcbbbx22[_0xfec4[29]]> 0){_0xcbbbx24= _[_0xfec4[47]](_0xcbbbx22,_0xcbbbx23)};return _0xcbbbx24}function getCustomFields(_0xcbbbx26,_0xcbbbx11){var _0xcbbbx27=[];var _0xcbbbx28={custom_fields:[]};if(_0xcbbbx26[_0xfec4[29]]> 0){_[_0xfec4[60]](_0xcbbbx26,function(_0xcbbbx29){if(_0xcbbbx29[_0xfec4[48]]=== _0xfec4[49]&& _0xcbbbx29[_0xfec4[50]]&&  !_0xcbbbx29[_0xfec4[51]]){_0xcbbbx28[_0xcbbbx29[_0xfec4[50]][_0xfec4[52]]()]= _0xcbbbx29[_0xfec4[53]].toString()}else {if(_0xcbbbx29[_0xfec4[48]]=== _0xfec4[49]&& _0xcbbbx29[_0xfec4[54]]&& _0xcbbbx29[_0xfec4[51]]){_0xcbbbx28[_0xfec4[21]][_0xfec4[55]]({id:_0xcbbbx29[_0xfec4[54]],value:_0xcbbbx29[_0xfec4[53]].toString()})}else {if(_0xcbbbx29[_0xfec4[48]]=== _0xfec4[56]&& _0xcbbbx29[_0xfec4[57]]&& _0xcbbbx29[_0xfec4[54]]&& _0xcbbbx29[_0xfec4[51]]){_0xcbbbx11[_0xcbbbx29[_0xfec4[57]]]&& _0xcbbbx28[_0xfec4[21]][_0xfec4[55]]({id:_0xcbbbx29[_0xfec4[54]],value:_0xcbbbx11[_0xcbbbx29[_0xfec4[57]]].toString()})}else {if(_0xcbbbx29[_0xfec4[48]]=== _0xfec4[58]&& _0xcbbbx29[_0xfec4[59]]&& _0xcbbbx29[_0xfec4[59]][_0xfec4[19]]&& _0xcbbbx29[_0xfec4[54]]&& _0xcbbbx29[_0xfec4[51]]){_0xcbbbx11[_0xcbbbx29[_0xfec4[59]][_0xfec4[19]]]&& _0xcbbbx28[_0xfec4[21]][_0xfec4[55]]({id:_0xcbbbx29[_0xfec4[54]],value:_0xcbbbx11[_0xcbbbx29[_0xfec4[59]][_0xfec4[19]]].toString()})}}}}})};return _0xcbbbx28}function getString(_0xcbbbx26,_0xcbbbx11,_0xcbbbx2b){var _0xcbbbx2c=[];if(_0xcbbbx26[_0xfec4[29]]> 0){var _0xcbbbx2d=_[_0xfec4[61]](_0xcbbbx26,[_0xfec4[12]]);_[_0xfec4[60]](_0xcbbbx2d,function(_0xcbbbx2e){if(_0xcbbbx2e[_0xfec4[48]]=== _0xfec4[49]){_0xcbbbx2c[_0xfec4[55]](_0xcbbbx2e[_0xfec4[53]])}else {if(_0xcbbbx2e[_0xfec4[48]]=== _0xfec4[56]&& _0xcbbbx2e[_0xfec4[57]]){_0xcbbbx11[_0xcbbbx2e[_0xfec4[57]]]&& _0xcbbbx2c[_0xfec4[55]](_0xcbbbx11[_0xcbbbx2e[_0xfec4[57]]].toString())}else {if(_0xcbbbx2e[_0xfec4[48]]=== _0xfec4[58]&& _0xcbbbx2e[_0xfec4[59]]&& _0xcbbbx2e[_0xfec4[59]][_0xfec4[19]]){_0xcbbbx11[_0xcbbbx2e[_0xfec4[59]][_0xfec4[19]]]&& _0xcbbbx2c[_0xfec4[55]](_0xcbbbx11[_0xcbbbx2e[_0xfec4[59]][_0xfec4[19]]].toString())}else {if(_0xcbbbx2e[_0xfec4[48]]=== _0xfec4[62]){if(_0xcbbbx2e[_0xfec4[63]]=== _0xfec4[49]&& _0xcbbbx2e[_0xfec4[64]]){_0xcbbbx2c[_0xfec4[55]](util[_0xfec4[15]](_0xfec4[65],_0xcbbbx2e[_0xfec4[64]],_0xcbbbx2e[_0xfec4[66]]))}else {if(_0xcbbbx2e[_0xfec4[63]]=== _0xfec4[56]&& _0xcbbbx2e[_0xfec4[57]]&& _0xcbbbx2e[_0xfec4[64]]){_0xcbbbx11[_0xcbbbx2e[_0xfec4[57]]]&& _0xcbbbx2c[_0xfec4[55]](util[_0xfec4[15]](_0xfec4[65],_0xcbbbx2e[_0xfec4[64]],_0xcbbbx11[_0xcbbbx2e[_0xfec4[57]]]))}else {if(_0xcbbbx2e[_0xfec4[63]]=== _0xfec4[58]&& _0xcbbbx2e[_0xfec4[59]]&& _0xcbbbx2e[_0xfec4[59]][_0xfec4[19]]&& _0xcbbbx2e[_0xfec4[64]]){_0xcbbbx11[_0xcbbbx2e[_0xfec4[59]][_0xfec4[19]]]&& _0xcbbbx2c[_0xfec4[55]](util[_0xfec4[15]](_0xfec4[65],_0xcbbbx2e[_0xfec4[64]],_0xcbbbx11[_0xcbbbx2e[_0xfec4[59]][_0xfec4[19]]]))}}}}}}}})};return _0xcbbbx2c[_0xfec4[67]](_0xcbbbx2b)}exports[_0xfec4[68]]= function(_0xcbbbx2f,_0xcbbbxa,_0xcbbbx10,_0xcbbbx18,_0xcbbbx30,_0xcbbbxd){var _0xcbbbxe,_0xcbbbxf;_0xcbbbxd[_0xfec4[27]]= stripTrailingSlash(_0xcbbbxd[_0xfec4[27]]);_0xcbbbxd[_0xfec4[69]]= stripTrailingSlash(_0xcbbbxd[_0xfec4[69]]);_0xcbbbxa[_0xfec4[70]]= (_0xcbbbx30&& _0xcbbbx30[_0xfec4[71]])?util[_0xfec4[15]](_0xfec4[72],_0xcbbbxd[_0xfec4[69]],_0xcbbbxa[_0xfec4[73]]):_0xfec4[74];headers[_0xfec4[75]]= getAuth(_0xcbbbxd);return getUser(_0xcbbbxd,_0xcbbbx18[_0xfec4[30]])[_0xfec4[25]](function(_0xcbbbx32){_0xcbbbxe= _0xcbbbx32;return getEndUser(_0xcbbbxd,_0xcbbbxa[_0xfec4[14]],_0xcbbbxa[_0xfec4[16]])})[_0xfec4[25]](function(_0xcbbbx32){_0xcbbbxf= _0xcbbbx32;return getTicket(_0xcbbbxd,_0xcbbbxe,_0xcbbbxf,_0xcbbbx10,_0xcbbbxa)})[_0xfec4[25]](function(_0xcbbbx13){if(_0xcbbbx13&& _0xcbbbx13[_0xfec4[12]]){emit(util[_0xfec4[15]](_0xfec4[79],_0xcbbbx18[_0xfec4[19]]),_0xfec4[80],{uri:util[_0xfec4[15]](_0xfec4[81],_0xcbbbxd[_0xfec4[27]],_0xcbbbx13[_0xfec4[12]])})}})[_0xfec4[78]](function(_0xcbbbx31){logger[_0xfec4[77]](_0xfec4[76],JSON[_0xfec4[43]](_0xcbbbx31))})};exports[_0xfec4[82]]= function(_0xcbbbx2f,_0xcbbbxa,_0xcbbbx10,_0xcbbbx18,_0xcbbbx30,_0xcbbbxd){var _0xcbbbxe,_0xcbbbxf;_0xcbbbxd[_0xfec4[27]]= stripTrailingSlash(_0xcbbbxd[_0xfec4[27]]);_0xcbbbxd[_0xfec4[69]]= stripTrailingSlash(_0xcbbbxd[_0xfec4[69]]);_0xcbbbxa[_0xfec4[70]]= (_0xcbbbx30&& _0xcbbbx30[_0xfec4[71]])?util[_0xfec4[15]](_0xfec4[72],_0xcbbbxd[_0xfec4[69]],_0xcbbbxa[_0xfec4[73]]):_0xfec4[74];headers[_0xfec4[75]]= getAuth(_0xcbbbxd);return getUser(_0xcbbbxd,_0xcbbbx18[_0xfec4[30]])[_0xfec4[25]](function(_0xcbbbx32){_0xcbbbxe= _0xcbbbx32;return getEndUser(_0xcbbbxd,_0xcbbbxa[_0xfec4[84]],_0xcbbbxa[_0xfec4[85]])})[_0xfec4[25]](function(_0xcbbbx32){_0xcbbbxf= _0xcbbbx32;return getTicket(_0xcbbbxd,_0xcbbbxe,_0xcbbbxf,_0xcbbbx10,_0xcbbbxa)})[_0xfec4[25]](function(_0xcbbbx13){if(_0xcbbbx13&& _0xcbbbx13[_0xfec4[12]]){emit(util[_0xfec4[15]](_0xfec4[79],_0xcbbbx18[_0xfec4[19]]),_0xfec4[80],{uri:util[_0xfec4[15]](_0xfec4[81],_0xcbbbxd[_0xfec4[27]],_0xcbbbx13[_0xfec4[12]])})}})[_0xfec4[78]](function(_0xcbbbx31){logger[_0xfec4[77]](_0xfec4[83],JSON[_0xfec4[43]](_0xcbbbx31))})};exports[_0xfec4[86]]= function(_0xcbbbx2f,_0xcbbbxa,_0xcbbbx10,_0xcbbbx18,_0xcbbbx30,_0xcbbbxd){var _0xcbbbxe,_0xcbbbxf;_0xcbbbxd[_0xfec4[27]]= stripTrailingSlash(_0xcbbbxd[_0xfec4[27]]);_0xcbbbxd[_0xfec4[69]]= stripTrailingSlash(_0xcbbbxd[_0xfec4[69]]);_0xcbbbxa[_0xfec4[70]]= (_0xcbbbx30&& _0xcbbbx30[_0xfec4[71]])?util[_0xfec4[15]](_0xfec4[72],_0xcbbbxd[_0xfec4[69]],_0xcbbbxa[_0xfec4[73]]):_0xfec4[74];headers[_0xfec4[75]]= getAuth(_0xcbbbxd);return getUser(_0xcbbbxd,_0xcbbbx18[_0xfec4[30]])[_0xfec4[25]](function(_0xcbbbx32){_0xcbbbxe= _0xcbbbx32;return getEndUser(_0xcbbbxd,_0xcbbbxa[_0xfec4[14]],_0xcbbbxa[_0xfec4[16]])})[_0xfec4[25]](function(_0xcbbbx32){_0xcbbbxf= _0xcbbbx32;return getTicket(_0xcbbbxd,_0xcbbbxe,_0xcbbbxf,_0xcbbbx10,_0xcbbbxa)})[_0xfec4[25]](function(_0xcbbbx13){if(_0xcbbbx13&& _0xcbbbx13[_0xfec4[12]]){emit(util[_0xfec4[15]](_0xfec4[79],_0xcbbbx18[_0xfec4[19]]),_0xfec4[80],{uri:util[_0xfec4[15]](_0xfec4[81],_0xcbbbxd[_0xfec4[27]],_0xcbbbx13[_0xfec4[12]])})}})[_0xfec4[78]](function(_0xcbbbx31){logger[_0xfec4[77]](_0xfec4[87],JSON[_0xfec4[43]](_0xcbbbx31))})}
\ No newline at end of file
+var _0xa0f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x65\x6D\x69\x74","\x74\x6F","\x69\x64","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x20","\x3C\x62\x72\x3E","\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x6B\x65\x79\x42\x79","\x76\x61\x6C\x75\x65","\x6D\x61\x70\x56\x61\x6C\x75\x65\x73","\x74\x68\x65\x6E","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x74\x69\x63\x6B\x65\x74\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x50\x4F\x53\x54","\x6C\x65\x6E\x67\x74\x68","\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x61\x63\x74","\x66\x69\x6E\x64","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x61\x67\x65\x6E\x74\x73\x2F\x6D\x65","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x61\x67\x65\x6E\x74\x73","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x61\x70\x69\x4B\x65\x79","\x3A\x58","\x73\x75\x62\x73\x74\x72","\x2F","\x5B\x48\x54\x54\x50\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x47\x45\x54","\x64\x65\x66\x61\x75\x6C\x74\x73","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x6F\x72\x74\x42\x79","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x25\x73\x2F\x68\x65\x6C\x70\x64\x65\x73\x6B\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0xa0f5[0];var _=require(_0xa0f5[1]);var rp=require(_0xa0f5[2]);var BPromise=require(_0xa0f5[3]);var util=require(_0xa0f5[4]);var logger=require(_0xa0f5[6])(_0xa0f5[5]);var io=require(_0xa0f5[8])({host:_0xa0f5[7],port:6379});var headers={"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xa0f5[9],"\x41\x63\x63\x65\x70\x74":_0xa0f5[9]};function emit(_0x66f8x9,_0x66f8xa,_0x66f8xb){io[_0xa0f5[11]](_0x66f8x9)[_0xa0f5[10]](_0x66f8xa,_0x66f8xb)}function getTicket(_0x66f8xd,_0x66f8xe,_0x66f8xf,_0x66f8x10,_0x66f8x11){var _0x66f8x12=_[_0xa0f5[20]]({responder_id:_0x66f8xe[_0xa0f5[12]],requester_id:_0x66f8xf[_0xa0f5[12]],name:util[_0xa0f5[15]](_0xa0f5[13],_0x66f8x11[_0xa0f5[14]]),phone:_0x66f8x11[_0xa0f5[16]],source:3,priority:1,status:2,subject:getString(_0x66f8x10.Subjects,_0x66f8x11,_0xa0f5[17]),description:getString(_0x66f8x10.Descriptions,_0x66f8x11,_0xa0f5[18]),tags:getTags(_0x66f8x10.Tags,_0xa0f5[19])},getCustomFields(_0x66f8x10.Fields,_0x66f8x11));_0x66f8x12[_0xa0f5[21]]= _[_0xa0f5[24]](_[_0xa0f5[22]](_0x66f8x12[_0xa0f5[21]],_0xa0f5[12]),_0xa0f5[23]);return request({uri:util[_0xa0f5[15]](_0xa0f5[26],_0x66f8xd[_0xa0f5[27]]),method:_0xa0f5[28],body:_0x66f8x12})[_0xa0f5[25]](function(_0x66f8x13){return _0x66f8x13})}function getUser(_0x66f8xd,_0x66f8x15){return request({uri:util[_0xa0f5[15]](_0xa0f5[34],_0x66f8xd[_0xa0f5[27]]),qs:{email:_0x66f8x15}})[_0xa0f5[25]](function(_0x66f8x16){if(_0x66f8x16[_0xa0f5[29]]){return _[_0xa0f5[32]](_0x66f8x16,function(_0x66f8x17){return _0x66f8x17[_0xa0f5[31]][_0xa0f5[30]]=== _0x66f8x15})}else {return request({uri:util[_0xa0f5[15]](_0xa0f5[33],_0x66f8xd[_0xa0f5[27]])})[_0xa0f5[25]](function(_0x66f8x18){return _0x66f8x18})}})}function getEndUser(_0x66f8xd,_0x66f8x1a,_0x66f8x1b){return request({uri:util[_0xa0f5[15]](_0xa0f5[35],_0x66f8xd[_0xa0f5[27]]),qs:{phone:_0x66f8x1b}})[_0xa0f5[25]](function(_0x66f8x16){if(_0x66f8x16[_0xa0f5[29]]){return _[_0xa0f5[32]](_0x66f8x16,{phone:_0x66f8x1b})}else {return request({uri:util[_0xa0f5[15]](_0xa0f5[35],_0x66f8xd[_0xa0f5[27]]),method:_0xa0f5[28],body:{name:_0x66f8x1a,phone:_0x66f8x1b}})[_0xa0f5[25]](function(_0x66f8xe){return _0x66f8xe})}})}function getAuth(_0x66f8xd){return util[_0xa0f5[15]](_0xa0f5[36], new Buffer(_0x66f8xd[_0xa0f5[38]]+ _0xa0f5[39]).toString(_0xa0f5[37]))}function stripTrailingSlash(_0x66f8x1e){if(_0x66f8x1e&& _0x66f8x1e[_0xa0f5[40]](-1) === _0xa0f5[41]){return _0x66f8x1e[_0xa0f5[40]](0,_0x66f8x1e[_0xa0f5[29]]- 1)};return _0x66f8x1e}function request(_0x66f8x20){logger[_0xa0f5[44]](_0xa0f5[42],JSON[_0xa0f5[43]](_0x66f8x20));return rp(_[_0xa0f5[46]](_0x66f8x20,{method:_0xa0f5[45],headers:headers,json:true}))}function getTags(_0x66f8x22,_0x66f8x23){var _0x66f8x24=[];if(_0x66f8x22&& _0x66f8x22[_0xa0f5[29]]> 0){_0x66f8x24= _[_0xa0f5[47]](_0x66f8x22,_0x66f8x23)};return _0x66f8x24}function getCustomFields(_0x66f8x26,_0x66f8x11){var _0x66f8x27=[];var _0x66f8x28={custom_fields:[]};if(_0x66f8x26[_0xa0f5[29]]> 0){_[_0xa0f5[60]](_0x66f8x26,function(_0x66f8x29){if(_0x66f8x29[_0xa0f5[48]]=== _0xa0f5[49]&& _0x66f8x29[_0xa0f5[50]]&&  !_0x66f8x29[_0xa0f5[51]]){_0x66f8x28[_0x66f8x29[_0xa0f5[50]][_0xa0f5[52]]()]= _0x66f8x29[_0xa0f5[53]].toString()}else {if(_0x66f8x29[_0xa0f5[48]]=== _0xa0f5[49]&& _0x66f8x29[_0xa0f5[54]]&& _0x66f8x29[_0xa0f5[51]]){_0x66f8x28[_0xa0f5[21]][_0xa0f5[55]]({id:_0x66f8x29[_0xa0f5[54]],value:_0x66f8x29[_0xa0f5[53]].toString()})}else {if(_0x66f8x29[_0xa0f5[48]]=== _0xa0f5[56]&& _0x66f8x29[_0xa0f5[57]]&& _0x66f8x29[_0xa0f5[54]]&& _0x66f8x29[_0xa0f5[51]]){_0x66f8x11[_0x66f8x29[_0xa0f5[57]]]&& _0x66f8x28[_0xa0f5[21]][_0xa0f5[55]]({id:_0x66f8x29[_0xa0f5[54]],value:_0x66f8x11[_0x66f8x29[_0xa0f5[57]]].toString()})}else {if(_0x66f8x29[_0xa0f5[48]]=== _0xa0f5[58]&& _0x66f8x29[_0xa0f5[59]]&& _0x66f8x29[_0xa0f5[59]][_0xa0f5[19]]&& _0x66f8x29[_0xa0f5[54]]&& _0x66f8x29[_0xa0f5[51]]){_0x66f8x11[_0x66f8x29[_0xa0f5[59]][_0xa0f5[19]][_0xa0f5[52]]()]&& _0x66f8x28[_0xa0f5[21]][_0xa0f5[55]]({id:_0x66f8x29[_0xa0f5[54]],value:_0x66f8x11[_0x66f8x29[_0xa0f5[59]][_0xa0f5[19]][_0xa0f5[52]]()].toString()})}}}}})};return _0x66f8x28}function getString(_0x66f8x26,_0x66f8x11,_0x66f8x2b){var _0x66f8x2c=[];if(_0x66f8x26[_0xa0f5[29]]> 0){var _0x66f8x2d=_[_0xa0f5[61]](_0x66f8x26,[_0xa0f5[12]]);_[_0xa0f5[60]](_0x66f8x2d,function(_0x66f8x2e){if(_0x66f8x2e[_0xa0f5[48]]=== _0xa0f5[49]){_0x66f8x2c[_0xa0f5[55]](_0x66f8x2e[_0xa0f5[53]])}else {if(_0x66f8x2e[_0xa0f5[48]]=== _0xa0f5[56]&& _0x66f8x2e[_0xa0f5[57]]){_0x66f8x11[_0x66f8x2e[_0xa0f5[57]]]&& _0x66f8x2c[_0xa0f5[55]](_0x66f8x11[_0x66f8x2e[_0xa0f5[57]]].toString())}else {if(_0x66f8x2e[_0xa0f5[48]]=== _0xa0f5[58]&& _0x66f8x2e[_0xa0f5[59]]&& _0x66f8x2e[_0xa0f5[59]][_0xa0f5[19]]){_0x66f8x11[_0x66f8x2e[_0xa0f5[59]][_0xa0f5[19]]]&& _0x66f8x2c[_0xa0f5[55]](_0x66f8x11[_0x66f8x2e[_0xa0f5[59]][_0xa0f5[19]]].toString())}else {if(_0x66f8x2e[_0xa0f5[48]]=== _0xa0f5[62]){if(_0x66f8x2e[_0xa0f5[63]]=== _0xa0f5[49]&& _0x66f8x2e[_0xa0f5[64]]){_0x66f8x2c[_0xa0f5[55]](util[_0xa0f5[15]](_0xa0f5[65],_0x66f8x2e[_0xa0f5[64]],_0x66f8x2e[_0xa0f5[66]]))}else {if(_0x66f8x2e[_0xa0f5[63]]=== _0xa0f5[56]&& _0x66f8x2e[_0xa0f5[57]]&& _0x66f8x2e[_0xa0f5[64]]){_0x66f8x11[_0x66f8x2e[_0xa0f5[57]]]&& _0x66f8x2c[_0xa0f5[55]](util[_0xa0f5[15]](_0xa0f5[65],_0x66f8x2e[_0xa0f5[64]],_0x66f8x11[_0x66f8x2e[_0xa0f5[57]]]))}else {if(_0x66f8x2e[_0xa0f5[63]]=== _0xa0f5[58]&& _0x66f8x2e[_0xa0f5[59]]&& _0x66f8x2e[_0xa0f5[59]][_0xa0f5[19]]&& _0x66f8x2e[_0xa0f5[64]]){_0x66f8x11[_0x66f8x2e[_0xa0f5[59]][_0xa0f5[19]][_0xa0f5[52]]()]&& _0x66f8x2c[_0xa0f5[55]](util[_0xa0f5[15]](_0xa0f5[65],_0x66f8x2e[_0xa0f5[64]],_0x66f8x11[_0x66f8x2e[_0xa0f5[59]][_0xa0f5[19]][_0xa0f5[52]]()]))}}}}}}}})};return _0x66f8x2c[_0xa0f5[67]](_0x66f8x2b)}exports[_0xa0f5[68]]= function(_0x66f8x2f,_0x66f8xa,_0x66f8x10,_0x66f8x18,_0x66f8x30,_0x66f8xd){var _0x66f8xe,_0x66f8xf;_0x66f8xd[_0xa0f5[27]]= stripTrailingSlash(_0x66f8xd[_0xa0f5[27]]);_0x66f8xd[_0xa0f5[69]]= stripTrailingSlash(_0x66f8xd[_0xa0f5[69]]);_0x66f8xa[_0xa0f5[70]]= (_0x66f8x30&& _0x66f8x30[_0xa0f5[71]])?util[_0xa0f5[15]](_0xa0f5[72],_0x66f8xd[_0xa0f5[69]],_0x66f8xa[_0xa0f5[73]]):_0xa0f5[74];headers[_0xa0f5[75]]= getAuth(_0x66f8xd);return getUser(_0x66f8xd,_0x66f8x18[_0xa0f5[30]])[_0xa0f5[25]](function(_0x66f8x32){_0x66f8xe= _0x66f8x32;return getEndUser(_0x66f8xd,_0x66f8xa[_0xa0f5[14]],_0x66f8xa[_0xa0f5[16]])})[_0xa0f5[25]](function(_0x66f8x32){_0x66f8xf= _0x66f8x32;return getTicket(_0x66f8xd,_0x66f8xe,_0x66f8xf,_0x66f8x10,_0x66f8xa)})[_0xa0f5[25]](function(_0x66f8x13){if(_0x66f8x13&& _0x66f8x13[_0xa0f5[12]]){emit(util[_0xa0f5[15]](_0xa0f5[79],_0x66f8x18[_0xa0f5[19]]),_0xa0f5[80],{uri:util[_0xa0f5[15]](_0xa0f5[81],_0x66f8xd[_0xa0f5[27]],_0x66f8x13[_0xa0f5[12]])})}})[_0xa0f5[78]](function(_0x66f8x31){logger[_0xa0f5[77]](_0xa0f5[76],JSON[_0xa0f5[43]](_0x66f8x31))})};exports[_0xa0f5[82]]= function(_0x66f8x2f,_0x66f8xa,_0x66f8x10,_0x66f8x18,_0x66f8x30,_0x66f8xd){var _0x66f8xe,_0x66f8xf;_0x66f8xd[_0xa0f5[27]]= stripTrailingSlash(_0x66f8xd[_0xa0f5[27]]);_0x66f8xd[_0xa0f5[69]]= stripTrailingSlash(_0x66f8xd[_0xa0f5[69]]);_0x66f8xa[_0xa0f5[70]]= (_0x66f8x30&& _0x66f8x30[_0xa0f5[71]])?util[_0xa0f5[15]](_0xa0f5[72],_0x66f8xd[_0xa0f5[69]],_0x66f8xa[_0xa0f5[73]]):_0xa0f5[74];headers[_0xa0f5[75]]= getAuth(_0x66f8xd);return getUser(_0x66f8xd,_0x66f8x18[_0xa0f5[30]])[_0xa0f5[25]](function(_0x66f8x32){_0x66f8xe= _0x66f8x32;return getEndUser(_0x66f8xd,_0x66f8xa[_0xa0f5[84]],_0x66f8xa[_0xa0f5[85]])})[_0xa0f5[25]](function(_0x66f8x32){_0x66f8xf= _0x66f8x32;return getTicket(_0x66f8xd,_0x66f8xe,_0x66f8xf,_0x66f8x10,_0x66f8xa)})[_0xa0f5[25]](function(_0x66f8x13){if(_0x66f8x13&& _0x66f8x13[_0xa0f5[12]]){emit(util[_0xa0f5[15]](_0xa0f5[79],_0x66f8x18[_0xa0f5[19]]),_0xa0f5[80],{uri:util[_0xa0f5[15]](_0xa0f5[81],_0x66f8xd[_0xa0f5[27]],_0x66f8x13[_0xa0f5[12]])})}})[_0xa0f5[78]](function(_0x66f8x31){logger[_0xa0f5[77]](_0xa0f5[83],JSON[_0xa0f5[43]](_0x66f8x31))})};exports[_0xa0f5[86]]= function(_0x66f8x2f,_0x66f8xa,_0x66f8x10,_0x66f8x18,_0x66f8x30,_0x66f8xd){var _0x66f8xe,_0x66f8xf;_0x66f8xd[_0xa0f5[27]]= stripTrailingSlash(_0x66f8xd[_0xa0f5[27]]);_0x66f8xd[_0xa0f5[69]]= stripTrailingSlash(_0x66f8xd[_0xa0f5[69]]);_0x66f8xa[_0xa0f5[70]]= (_0x66f8x30&& _0x66f8x30[_0xa0f5[71]])?util[_0xa0f5[15]](_0xa0f5[72],_0x66f8xd[_0xa0f5[69]],_0x66f8xa[_0xa0f5[73]]):_0xa0f5[74];headers[_0xa0f5[75]]= getAuth(_0x66f8xd);return getUser(_0x66f8xd,_0x66f8x18[_0xa0f5[30]])[_0xa0f5[25]](function(_0x66f8x32){_0x66f8xe= _0x66f8x32;return getEndUser(_0x66f8xd,_0x66f8xa[_0xa0f5[14]],_0x66f8xa[_0xa0f5[16]])})[_0xa0f5[25]](function(_0x66f8x32){_0x66f8xf= _0x66f8x32;return getTicket(_0x66f8xd,_0x66f8xe,_0x66f8xf,_0x66f8x10,_0x66f8xa)})[_0xa0f5[25]](function(_0x66f8x13){if(_0x66f8x13&& _0x66f8x13[_0xa0f5[12]]){emit(util[_0xa0f5[15]](_0xa0f5[79],_0x66f8x18[_0xa0f5[19]]),_0xa0f5[80],{uri:util[_0xa0f5[15]](_0xa0f5[81],_0x66f8xd[_0xa0f5[27]],_0x66f8x13[_0xa0f5[12]])})}})[_0xa0f5[78]](function(_0x66f8x31){logger[_0xa0f5[77]](_0xa0f5[87],JSON[_0xa0f5[43]](_0x66f8x31))})}
\ No newline at end of file
index 56c9e7c..3084241 100644 (file)
@@ -1 +1 @@
-var _0x2847=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x7A\x65\x6E\x64\x65\x73\x6B","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x73\x75\x67\x61\x72\x63\x72\x6D","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x65\x78\x65\x63","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x64\x61\x74\x61\x31","\x69\x6E\x63\x6C\x75\x64\x65\x73","","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x66\x69\x6E\x64","\x71\x75\x65\x75\x65","\x72\x6F\x75\x74\x65\x49\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x45\x56\x45\x4E\x54\x20\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6C\x6F\x67","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x75\x6E\x6B\x6E\x6F\x77\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x65\x72\x72\x6F\x72"];_0x2847[0];var _=require(_0x2847[1]);var zendesk=require(_0x2847[2]);var salesforce=require(_0x2847[3]);var sugarcrm=require(_0x2847[4]);var freshdesk=require(_0x2847[5]);var integrations=[_0x2847[6],_0x2847[7],_0x2847[8],_0x2847[9]];exports[_0x2847[10]]= function(_0x2fffx7,_0x2fffx8,_0x2fffx9,_0x2fffxa,_0x2fffxb){if(_0x2fffx9){if(_[_0x2847[13]](integrations,_0x2fffx7[_0x2847[12]][_0x2847[11]]())){try{var _0x2fffxc=_0x2847[14];var _0x2fffxd=_0x2fffx9[_0x2fffx7[_0x2847[12]][_0x2847[11]]()];if(_0x2fffxd){var _0x2fffxe=_0x2fffxd[_0x2fffx7[_0x2847[15]]];if(_0x2fffxe){var _0x2fffxf=_[_0x2847[17]](_0x2fffxe.Configurations,{id:parseInt(_0x2fffx7[_0x2847[16]],10)});if(_0x2fffxf){if(_0x2fffxa){if(_0x2fffxb&& _0x2fffx8[_0x2847[18]]){_0x2fffxc= _0x2847[18]}else {if(_0x2fffx8[_0x2847[19]]){_0x2fffxc= _0x2847[20]}else {console[_0x2847[22]](_0x2847[21],_0x2fffx8)}}}else {_0x2fffxc= _0x2847[23]};switch(_0x2fffx7[_0x2847[12]][_0x2847[11]]()){case _0x2847[6]:zendesk[_0x2fffxc](_0x2fffx7,_0x2fffx8,_0x2fffxf,_0x2fffxa,_0x2fffxb,_0x2fffxe);break;case _0x2847[7]:salesforce[_0x2fffxc](_0x2fffx7,_0x2fffx8,_0x2fffxf,_0x2fffxa,_0x2fffxb);break;case _0x2847[8]:sugarcrm[_0x2fffxc](_0x2fffx7,_0x2fffx8,_0x2fffxf,_0x2fffxa,_0x2fffxb,_0x2fffxe);break;case _0x2847[9]:freshdesk[_0x2fffxc](_0x2fffx7,_0x2fffx8,_0x2fffxf,_0x2fffxa,_0x2fffxb,_0x2fffxe);break;default:console[_0x2847[22]](_0x2847[24])}}}else {}}else {}}catch(e){console[_0x2847[25]](e)}}}}
\ No newline at end of file
+var _0xf4b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x7A\x65\x6E\x64\x65\x73\x6B","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x73\x75\x67\x61\x72\x63\x72\x6D","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x65\x78\x65\x63","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x64\x61\x74\x61\x31","\x69\x6E\x63\x6C\x75\x64\x65\x73","","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x66\x69\x6E\x64","\x71\x75\x65\x75\x65","\x72\x6F\x75\x74\x65\x49\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x45\x56\x45\x4E\x54\x20\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6C\x6F\x67","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x75\x6E\x6B\x6E\x6F\x77\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x65\x72\x72\x6F\x72"];_0xf4b4[0];var _=require(_0xf4b4[1]);var zendesk=require(_0xf4b4[2]);var salesforce=require(_0xf4b4[3]);var sugarcrm=require(_0xf4b4[4]);var freshdesk=require(_0xf4b4[5]);var integrations=[_0xf4b4[6],_0xf4b4[7],_0xf4b4[8],_0xf4b4[9]];exports[_0xf4b4[10]]= function(_0xeeebx7,_0xeeebx8,_0xeeebx9,_0xeeebxa,_0xeeebxb){if(_0xeeebx9){if(_[_0xf4b4[13]](integrations,_0xeeebx7[_0xf4b4[12]][_0xf4b4[11]]())){try{var _0xeeebxc=_0xf4b4[14];var _0xeeebxd=_0xeeebx9[_0xeeebx7[_0xf4b4[12]][_0xf4b4[11]]()];if(_0xeeebxd){var _0xeeebxe=_0xeeebxd[_0xeeebx7[_0xf4b4[15]]];if(_0xeeebxe){var _0xeeebxf=_[_0xf4b4[17]](_0xeeebxe.Configurations,{id:parseInt(_0xeeebx7[_0xf4b4[16]],10)});if(_0xeeebxf){if(_0xeeebxa){if(_0xeeebxb&& _0xeeebx8[_0xf4b4[18]]){_0xeeebxc= _0xf4b4[18]}else {if(_0xeeebx8[_0xf4b4[19]]){_0xeeebxc= _0xf4b4[20]}else {console[_0xf4b4[22]](_0xf4b4[21],_0xeeebx8)}}}else {_0xeeebxc= _0xf4b4[23]};switch(_0xeeebx7[_0xf4b4[12]][_0xf4b4[11]]()){case _0xf4b4[6]:zendesk[_0xeeebxc](_0xeeebx7,_0xeeebx8,_0xeeebxf,_0xeeebxa,_0xeeebxb,_0xeeebxe);break;case _0xf4b4[7]:salesforce[_0xeeebxc](_0xeeebx7,_0xeeebx8,_0xeeebxf,_0xeeebxa,_0xeeebxb);break;case _0xf4b4[8]:sugarcrm[_0xeeebxc](_0xeeebx7,_0xeeebx8,_0xeeebxf,_0xeeebxa,_0xeeebxb,_0xeeebxe);break;case _0xf4b4[9]:freshdesk[_0xeeebxc](_0xeeebx7,_0xeeebx8,_0xeeebxf,_0xeeebxa,_0xeeebxb,_0xeeebxe);break;default:console[_0xf4b4[22]](_0xf4b4[24])}}}else {}}else {}}catch(e){console[_0xf4b4[25]](e)}}}}
\ No newline at end of file
index 95fcec5..6ab2a38 100644 (file)
@@ -1 +1 @@
-var _0x5321=[]
\ No newline at end of file
+var _0x6293=[]
\ No newline at end of file
index 29ed525..14cf54f 100644 (file)
@@ -1 +1 @@
-var _0x900b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x50\x4F\x53\x54","\x65\x6D\x69\x74","\x74\x6F","\x73\x65\x74\x5F\x65\x6E\x74\x72\x79","\x4A\x53\x4F\x4E","\x69\x64","\x43\x61\x6C\x6C\x73","\x6E\x61\x6D\x65","\x20","\x61\x73\x73\x69\x67\x6E\x65\x64\x5F\x75\x73\x65\x72\x5F\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x5F\x62\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x0A","\x64\x61\x74\x65\x5F\x73\x74\x61\x72\x74","\x54","\x72\x65\x70\x6C\x61\x63\x65","\x73\x6C\x69\x63\x65","\x74\x6F\x49\x53\x4F\x53\x74\x72\x69\x6E\x67","\x64\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x6F\x75\x72\x73","\x30","\x64\x75\x72\x61\x74\x69\x6F\x6E\x5F\x6D\x69\x6E\x75\x74\x65\x73","\x31\x35","\x70\x61\x72\x65\x6E\x74\x5F\x69\x64","\x70\x61\x72\x65\x6E\x74\x5F\x74\x79\x70\x65","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x70\x61\x72\x65\x6E\x74\x5F\x6E\x61\x6D\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x61\x70\x69\x4B\x65\x79","\x3A\x58","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x66\x6F","\x6C\x65\x6E\x67\x74\x68","\x65\x6E\x74\x72\x79\x5F\x6C\x69\x73\x74","\x76\x61\x6C\x75\x65","\x75\x73\x65\x72\x5F\x6E\x61\x6D\x65","\x6E\x61\x6D\x65\x5F\x76\x61\x6C\x75\x65\x5F\x6C\x69\x73\x74","\x66\x69\x6E\x64","\x72\x65\x73\x6F\x6C\x76\x65","\x75\x73\x65\x72\x5F\x69\x64","\x74\x68\x65\x6E","\x67\x65\x74\x5F\x65\x6E\x74\x72\x79\x5F\x6C\x69\x73\x74","\x45\x6D\x70\x6C\x6F\x79\x65\x65\x73","\x49\x4E\x53\x54\x52\x20\x28\x20\x75\x73\x65\x72\x73\x2E\x75\x73\x65\x72\x5F\x6E\x61\x6D\x65\x2C\x20\x22\x25\x73\x22\x29\x20\x3E\x20\x30","","\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65","\x66\x69\x72\x73\x74\x5F\x6E\x61\x6D\x65","\x3C\x75\x6E\x6B\x6E\x6F\x77\x6E\x3E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65\x20\x3D\x20\x22\x25\x73\x22","\x73\x75\x62\x73\x74\x72","\x2F","\x5B\x48\x54\x54\x50\x5D","\x69\x6E\x66\x6F","\x6D\x65\x72\x67\x65","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x6F\x72\x74\x42\x79","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x6A\x6F\x69\x6E","\x73\x65\x73\x73\x69\x6F\x6E\x49\x44","\x41\x63\x63\x6F\x75\x6E\x74\x20\x25\x64\x20\x69\x73\x20\x6E\x6F\x74\x20\x76\x61\x6C\x69\x64","\x6C\x6F\x67\x69\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x50\x4C\x41\x49\x4E","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x73\x65\x74\x5F\x72\x65\x6C\x61\x74\x69\x6F\x6E\x73\x68\x69\x70","\x71\x75\x65\x75\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x75\x72\x69","\x25\x73\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x68\x61\x72\x41\x74","\x76\x65\x72\x73\x69\x6F\x6E","\x25\x73\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x61\x63\x74\x69\x6F\x6E\x3D\x61\x6A\x61\x78\x75\x69\x23\x61\x6A\x61\x78\x55\x49\x4C\x6F\x63\x3D\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x25\x33\x46\x6D\x6F\x64\x75\x6C\x65\x25\x33\x44\x43\x61\x6C\x6C\x73\x25\x32\x36\x61\x63\x74\x69\x6F\x6E\x25\x33\x44\x45\x64\x69\x74\x56\x69\x65\x77\x25\x32\x36\x72\x65\x63\x6F\x72\x64\x25\x33\x44\x25\x73","\x25\x73\x2F\x23\x62\x77\x63\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x6D\x6F\x64\x75\x6C\x65\x3D\x43\x61\x6C\x6C\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x45\x64\x69\x74\x56\x69\x65\x77\x26\x72\x65\x63\x6F\x72\x64\x3D\x25\x73","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x75\x73\x65\x72\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D"];_0x900b[0];var _=require(_0x900b[1]);var rp=require(_0x900b[2]);var BPromise=require(_0x900b[3]);var util=require(_0x900b[4]);var logger=require(_0x900b[6])(_0x900b[5]);var io=require(_0x900b[8])({host:_0x900b[7],port:6379});var def={method:_0x900b[9],json:true};function emit(_0x7e65x9,_0x7e65xa,_0x7e65xb){io[_0x900b[11]](_0x7e65x9)[_0x900b[10]](_0x7e65xa,_0x7e65xb)}function getTicket(_0x7e65xd,_0x7e65xe,_0x7e65xf,_0x7e65x10,_0x7e65x11,_0x7e65x12){var _0x7e65x13= new Date();return request({form:{method:_0x900b[12],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({session:_0x7e65x12[_0x900b[14]],module_name:_0x900b[15],name_value_list:[{name:_0x900b[16],value:getString(_0x7e65x10.Subjects,_0x7e65x11,_0x900b[17])},{name:_0x900b[18],value:_0x7e65xe[_0x900b[14]]},{name:_0x900b[19],value:_0x7e65xe[_0x900b[14]]},{name:_0x900b[20],value:getString(_0x7e65x10.Descriptions,_0x7e65x11,_0x900b[21])},{name:_0x900b[22],value:_0x7e65x13[_0x900b[26]]()[_0x900b[25]](0,19)[_0x900b[24]](_0x900b[23],_0x900b[17])},{name:_0x900b[27],value:_0x900b[28]},{name:_0x900b[29],value:_0x900b[30]},{name:_0x900b[31],value:_0x7e65xf[_0x900b[14]]},{name:_0x900b[32],value:_0x900b[33]},{name:_0x900b[34],value:_0x7e65xf[_0x900b[16]]}]})}})}function getAuth(_0x7e65xd){return util[_0x900b[40]](_0x900b[36], new Buffer(_0x7e65xd[_0x900b[38]]+ _0x900b[39]).toString(_0x900b[37]))}function getServerInfo(_0x7e65x12){return request({form:{method:_0x900b[41],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({session:_0x7e65x12[_0x900b[14]]})}})}function getUser(_0x7e65xd,_0x7e65x17,_0x7e65x12){return request({form:{method:_0x900b[51],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({session:_0x7e65x12[_0x900b[14]],module_name:_0x900b[52],query:util[_0x900b[40]](_0x900b[53],_0x7e65x17),order_by:_0x900b[54],offset:_0x900b[28],select_fields:[_0x900b[14],_0x900b[16],_0x900b[45]],link_name_to_fields_array:[],max_results:-1,deleted:_0x900b[28]})}})[_0x900b[50]](function(_0x7e65x18){if(_0x7e65x18[_0x900b[43]][_0x900b[42]]){var _0x7e65x19=_[_0x900b[47]](_0x7e65x18[_0x900b[43]],function(_0x7e65x1a){return _0x7e65x1a[_0x900b[46]][_0x900b[45]][_0x900b[44]]=== _0x7e65x17});if(_0x7e65x19){return BPromise[_0x900b[48]]({id:_0x7e65x19[_0x900b[46]][_0x900b[14]][_0x900b[44]],name:_0x7e65x19[_0x900b[46]][_0x900b[16]][_0x900b[44]]})}}else {return BPromise[_0x900b[48]]({id:_0x7e65x12[_0x900b[46]][_0x900b[49]][_0x900b[14]],name:_0x7e65x12[_0x900b[46]][_0x900b[45]][_0x900b[14]]})}})}function getEndUser(_0x7e65xd,_0x7e65x17,_0x7e65x1c,_0x7e65x12){return request({form:{method:_0x900b[51],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({session:_0x7e65x12[_0x900b[14]],module_name:_0x900b[33],query:util[_0x900b[40]](_0x900b[59],_0x7e65x1c),order_by:_0x900b[54],offset:_0x900b[28],select_fields:[_0x900b[14],_0x900b[16],_0x900b[55]],link_name_to_fields_array:[],max_results:-1,deleted:_0x900b[28]})}})[_0x900b[50]](function(_0x7e65x18){if(_0x7e65x18[_0x900b[43]][_0x900b[42]]){var _0x7e65x1d=_[_0x900b[47]](_0x7e65x18[_0x900b[43]],function(_0x7e65x1a){return _0x7e65x1a[_0x900b[46]][_0x900b[55]][_0x900b[44]]=== _0x7e65x1c});if(_0x7e65x1d){return BPromise[_0x900b[48]]({id:_0x7e65x1d[_0x900b[46]][_0x900b[14]][_0x900b[44]],name:_0x7e65x1d[_0x900b[46]][_0x900b[16]][_0x900b[44]],phone:_0x7e65x1d[_0x900b[46]][_0x900b[55]][_0x900b[44]]})}}else {return request({form:{method:_0x900b[12],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({session:_0x7e65x12[_0x900b[14]],module_name:_0x900b[33],name_value_list:[{name:_0x900b[56],value:(_0x7e65x17!== _0x900b[57])?_0x7e65x17:util[_0x900b[40]](_0x900b[58],_0x7e65x1c)},{name:_0x900b[55],value:_0x7e65x1c}]})}})[_0x900b[50]](function(_0x7e65x1d){return BPromise[_0x900b[48]]({id:_0x7e65x1d[_0x900b[14]],name:_0x7e65x1d[_0x900b[43]][_0x900b[56]][_0x900b[44]],phone:_0x7e65x1d[_0x900b[43]][_0x900b[55]][_0x900b[44]]})})}})}function stripTrailingSlash(_0x7e65x1f){if(_0x7e65x1f&& _0x7e65x1f[_0x900b[60]](-1) === _0x900b[61]){return _0x7e65x1f[_0x900b[60]](0,_0x7e65x1f[_0x900b[42]]- 1)};return _0x7e65x1f}function request(_0x7e65x21){logger[_0x900b[63]](_0x900b[62],JSON[_0x900b[35]](_0x7e65x21));return rp(_[_0x900b[64]](def,_0x7e65x21))}function getTags(_0x7e65x23,_0x7e65x24){var _0x7e65x25=[];if(_0x7e65x23&& _0x7e65x23[_0x900b[42]]> 0){_0x7e65x25= _[_0x900b[65]](_0x7e65x23,_0x7e65x24)};return _0x7e65x25}function getCustomFields(_0x7e65x27,_0x7e65x11){var _0x7e65x28=[];var _0x7e65x29={custom_fields:[]};if(_0x7e65x27[_0x900b[42]]> 0){_[_0x900b[79]](_0x7e65x27,function(_0x7e65x2a){if(_0x7e65x2a[_0x900b[66]]=== _0x900b[67]&& _0x7e65x2a[_0x900b[68]]&&  !_0x7e65x2a[_0x900b[69]]){_0x7e65x29[_0x7e65x2a[_0x900b[68]][_0x900b[70]]()]= _0x7e65x2a[_0x900b[71]].toString()}else {if(_0x7e65x2a[_0x900b[66]]=== _0x900b[67]&& _0x7e65x2a[_0x900b[72]]&& _0x7e65x2a[_0x900b[69]]){_0x7e65x29[_0x900b[74]][_0x900b[73]]({id:_0x7e65x2a[_0x900b[72]],value:_0x7e65x2a[_0x900b[71]].toString()})}else {if(_0x7e65x2a[_0x900b[66]]=== _0x900b[75]&& _0x7e65x2a[_0x900b[76]]&& _0x7e65x2a[_0x900b[72]]&& _0x7e65x2a[_0x900b[69]]){_0x7e65x11[_0x7e65x2a[_0x900b[76]]]&& _0x7e65x29[_0x900b[74]][_0x900b[73]]({id:_0x7e65x2a[_0x900b[72]],value:_0x7e65x11[_0x7e65x2a[_0x900b[76]]].toString()})}else {if(_0x7e65x2a[_0x900b[66]]=== _0x900b[77]&& _0x7e65x2a[_0x900b[78]]&& _0x7e65x2a[_0x900b[78]][_0x900b[16]]&& _0x7e65x2a[_0x900b[72]]&& _0x7e65x2a[_0x900b[69]]){_0x7e65x11[_0x7e65x2a[_0x900b[78]][_0x900b[16]]]&& _0x7e65x29[_0x900b[74]][_0x900b[73]]({id:_0x7e65x2a[_0x900b[72]],value:_0x7e65x11[_0x7e65x2a[_0x900b[78]][_0x900b[16]]].toString()})}}}}})};return _0x7e65x29}function getString(_0x7e65x27,_0x7e65x11,_0x7e65x2c){var _0x7e65x2d=[];if(_0x7e65x27[_0x900b[42]]> 0){var _0x7e65x2e=_[_0x900b[80]](_0x7e65x27,[_0x900b[14]]);_[_0x900b[79]](_0x7e65x2e,function(_0x7e65x2f){if(_0x7e65x2f[_0x900b[66]]=== _0x900b[67]){_0x7e65x2d[_0x900b[73]](_0x7e65x2f[_0x900b[71]])}else {if(_0x7e65x2f[_0x900b[66]]=== _0x900b[75]&& _0x7e65x2f[_0x900b[76]]){_0x7e65x11[_0x7e65x2f[_0x900b[76]]]&& _0x7e65x2d[_0x900b[73]](_0x7e65x11[_0x7e65x2f[_0x900b[76]]].toString())}else {if(_0x7e65x2f[_0x900b[66]]=== _0x900b[77]&& _0x7e65x2f[_0x900b[78]]&& _0x7e65x2f[_0x900b[78]][_0x900b[16]]){_0x7e65x11[_0x7e65x2f[_0x900b[78]][_0x900b[16]]]&& _0x7e65x2d[_0x900b[73]](_0x7e65x11[_0x7e65x2f[_0x900b[78]][_0x900b[16]]].toString())}else {if(_0x7e65x2f[_0x900b[66]]=== _0x900b[81]){if(_0x7e65x2f[_0x900b[82]]=== _0x900b[67]&& _0x7e65x2f[_0x900b[83]]){_0x7e65x2d[_0x900b[73]](util[_0x900b[40]](_0x900b[84],_0x7e65x2f[_0x900b[83]],_0x7e65x2f[_0x900b[85]]))}else {if(_0x7e65x2f[_0x900b[82]]=== _0x900b[75]&& _0x7e65x2f[_0x900b[76]]&& _0x7e65x2f[_0x900b[83]]){_0x7e65x11[_0x7e65x2f[_0x900b[76]]]&& _0x7e65x2d[_0x900b[73]](util[_0x900b[40]](_0x900b[84],_0x7e65x2f[_0x900b[83]],_0x7e65x11[_0x7e65x2f[_0x900b[76]]]))}else {if(_0x7e65x2f[_0x900b[82]]=== _0x900b[77]&& _0x7e65x2f[_0x900b[78]]&& _0x7e65x2f[_0x900b[78]][_0x900b[16]]&& _0x7e65x2f[_0x900b[83]]){_0x7e65x11[_0x7e65x2f[_0x900b[78]][_0x900b[16]]]&& _0x7e65x2d[_0x900b[73]](util[_0x900b[40]](_0x900b[84],_0x7e65x2f[_0x900b[83]],_0x7e65x11[_0x7e65x2f[_0x900b[78]][_0x900b[16]]]))}}}}}}}})};return _0x7e65x2d[_0x900b[86]](_0x7e65x2c)}function getConnection(_0x7e65xd){return request({method:_0x900b[9],form:{method:_0x900b[89],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({user_auth:{user_name:_0x7e65xd[_0x900b[90]],password:_0x7e65xd[_0x900b[91]],encryption:_0x900b[92]},application:_0x900b[93]})}})[_0x900b[50]](function(_0x7e65x31){var _0x7e65x12=_0x7e65x31;if(_0x7e65x12[_0x900b[14]]){def[_0x900b[87]]= _0x7e65x12[_0x900b[14]];return BPromise[_0x900b[48]](_0x7e65x12)}else {throw  new Error(util[_0x900b[40]](_0x900b[88],_0x7e65xd[_0x900b[14]]))}})}function setRelationship(_0x7e65x12,_0x7e65xe,_0x7e65x33,_0x7e65x34){return request({form:{method:_0x900b[94],input_type:_0x900b[13],response_type:_0x900b[13],rest_data:JSON[_0x900b[35]]({session:_0x7e65x12[_0x900b[14]],module_name:_0x900b[15],module_id:_0x7e65x33[_0x900b[14]],link_field_name:_0x7e65x34,related_ids:[_0x7e65xe[_0x900b[14]]]})}})}exports[_0x900b[95]]= function(_0x7e65x35,_0x7e65xa,_0x7e65x10,_0x7e65x19,_0x7e65x36,_0x7e65xd){var _0x7e65xe,_0x7e65xf,_0x7e65x33,_0x7e65x12;_0x7e65xd[_0x900b[96]]= stripTrailingSlash(_0x7e65xd[_0x900b[96]]);_0x7e65xd[_0x900b[97]]= stripTrailingSlash(_0x7e65xd[_0x900b[97]]);def[_0x900b[98]]= util[_0x900b[40]](_0x900b[99],_0x7e65xd[_0x900b[96]]);_0x7e65xa[_0x900b[100]]= (_0x7e65x36&& _0x7e65x36[_0x900b[101]])?util[_0x900b[40]](_0x900b[102],_0x7e65xd[_0x900b[97]],_0x7e65xa[_0x900b[103]]):_0x900b[54];return getConnection(_0x7e65xd)[_0x900b[50]](function(_0x7e65x31){_0x7e65x12= _0x7e65x31;return getUser(_0x7e65xd,_0x7e65x19[_0x900b[16]],_0x7e65x12)})[_0x900b[50]](function(_0x7e65x31){_0x7e65xe= _0x7e65x31;return getEndUser(_0x7e65xd,_0x7e65xa[_0x900b[115]],_0x7e65xa[_0x900b[116]],_0x7e65x12)})[_0x900b[50]](function(_0x7e65x31){_0x7e65xf= _0x7e65x31;return getTicket(_0x7e65xd,_0x7e65xe,_0x7e65xf,_0x7e65x10,_0x7e65xa,_0x7e65x12)})[_0x900b[50]](function(_0x7e65x31){_0x7e65x33= _0x7e65x31;return setRelationship(_0x7e65x12,_0x7e65xe,_0x7e65x33,_0x900b[114])})[_0x900b[50]](function(){return setRelationship(_0x7e65x12,_0x7e65xf,_0x7e65x33,_0x900b[113])})[_0x900b[50]](function(){return getServerInfo(_0x7e65x12)})[_0x900b[50]](function(_0x7e65x31){var _0x7e65x38=parseInt(_0x7e65x31[_0x900b[108]][_0x900b[107]](0));var _0x7e65x39=util[_0x900b[40]](_0x900b[109],_0x7e65xd[_0x900b[96]],_0x7e65x33[_0x900b[14]]);if(_0x7e65x38> 6){_0x7e65x39= util[_0x900b[40]](_0x900b[110],_0x7e65xd[_0x900b[96]],_0x7e65x33[_0x900b[14]])};emit(util[_0x900b[40]](_0x900b[111],_0x7e65x19[_0x900b[16]]),_0x900b[112],{uri:_0x7e65x39})})[_0x900b[106]](function(_0x7e65x37){logger[_0x900b[105]](_0x900b[104],JSON[_0x900b[35]](_0x7e65x37))})}
\ No newline at end of file
+var _0x6427=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x50\x4F\x53\x54","\x65\x6D\x69\x74","\x74\x6F","\x6E\x61\x6D\x65","\x20","\x61\x73\x73\x69\x67\x6E\x65\x64\x5F\x75\x73\x65\x72\x5F\x69\x64","\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x5F\x62\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x0A","\x64\x61\x74\x65\x5F\x73\x74\x61\x72\x74","\x54","\x72\x65\x70\x6C\x61\x63\x65","\x73\x6C\x69\x63\x65","\x74\x6F\x49\x53\x4F\x53\x74\x72\x69\x6E\x67","\x64\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x6F\x75\x72\x73","\x30","\x64\x75\x72\x61\x74\x69\x6F\x6E\x5F\x6D\x69\x6E\x75\x74\x65\x73","\x31\x35","\x70\x61\x72\x65\x6E\x74\x5F\x69\x64","\x70\x61\x72\x65\x6E\x74\x5F\x74\x79\x70\x65","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x70\x61\x72\x65\x6E\x74\x5F\x6E\x61\x6D\x65","\x6C\x65\x6E\x67\x74\x68","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x73\x65\x74\x5F\x65\x6E\x74\x72\x79","\x4A\x53\x4F\x4E","\x43\x61\x6C\x6C\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x61\x70\x69\x4B\x65\x79","\x3A\x58","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x66\x6F","\x65\x6E\x74\x72\x79\x5F\x6C\x69\x73\x74","\x76\x61\x6C\x75\x65","\x75\x73\x65\x72\x5F\x6E\x61\x6D\x65","\x6E\x61\x6D\x65\x5F\x76\x61\x6C\x75\x65\x5F\x6C\x69\x73\x74","\x66\x69\x6E\x64","\x72\x65\x73\x6F\x6C\x76\x65","\x75\x73\x65\x72\x5F\x69\x64","\x74\x68\x65\x6E","\x67\x65\x74\x5F\x65\x6E\x74\x72\x79\x5F\x6C\x69\x73\x74","\x45\x6D\x70\x6C\x6F\x79\x65\x65\x73","\x49\x4E\x53\x54\x52\x20\x28\x20\x75\x73\x65\x72\x73\x2E\x75\x73\x65\x72\x5F\x6E\x61\x6D\x65\x2C\x20\x22\x25\x73\x22\x29\x20\x3E\x20\x30","","\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65","\x66\x69\x72\x73\x74\x5F\x6E\x61\x6D\x65","\x3C\x75\x6E\x6B\x6E\x6F\x77\x6E\x3E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65\x20\x3D\x20\x22\x25\x73\x22","\x73\x75\x62\x73\x74\x72","\x2F","\x5B\x48\x54\x54\x50\x5D","\x69\x6E\x66\x6F","\x6D\x65\x72\x67\x65","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x6F\x72\x74\x42\x79","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x6A\x6F\x69\x6E","\x73\x65\x73\x73\x69\x6F\x6E\x49\x44","\x41\x63\x63\x6F\x75\x6E\x74\x20\x25\x64\x20\x69\x73\x20\x6E\x6F\x74\x20\x76\x61\x6C\x69\x64","\x6C\x6F\x67\x69\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x50\x4C\x41\x49\x4E","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x73\x65\x74\x5F\x72\x65\x6C\x61\x74\x69\x6F\x6E\x73\x68\x69\x70","\x71\x75\x65\x75\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x75\x72\x69","\x25\x73\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x68\x61\x72\x41\x74","\x76\x65\x72\x73\x69\x6F\x6E","\x25\x73\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x61\x63\x74\x69\x6F\x6E\x3D\x61\x6A\x61\x78\x75\x69\x23\x61\x6A\x61\x78\x55\x49\x4C\x6F\x63\x3D\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x25\x33\x46\x6D\x6F\x64\x75\x6C\x65\x25\x33\x44\x43\x61\x6C\x6C\x73\x25\x32\x36\x61\x63\x74\x69\x6F\x6E\x25\x33\x44\x45\x64\x69\x74\x56\x69\x65\x77\x25\x32\x36\x72\x65\x63\x6F\x72\x64\x25\x33\x44\x25\x73","\x25\x73\x2F\x23\x62\x77\x63\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x6D\x6F\x64\x75\x6C\x65\x3D\x43\x61\x6C\x6C\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x45\x64\x69\x74\x56\x69\x65\x77\x26\x72\x65\x63\x6F\x72\x64\x3D\x25\x73","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x75\x73\x65\x72\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D"];_0x6427[0];var _=require(_0x6427[1]);var rp=require(_0x6427[2]);var BPromise=require(_0x6427[3]);var util=require(_0x6427[4]);var logger=require(_0x6427[6])(_0x6427[5]);var io=require(_0x6427[8])({host:_0x6427[7],port:6379});var def={method:_0x6427[9],json:true};function emit(_0xa0b8x9,_0xa0b8xa,_0xa0b8xb){io[_0x6427[11]](_0xa0b8x9)[_0x6427[10]](_0xa0b8xa,_0xa0b8xb)}function getTicket(_0xa0b8xd,_0xa0b8xe,_0xa0b8xf,_0xa0b8x10,_0xa0b8x11,_0xa0b8x12,_0xa0b8x13){var _0xa0b8x14= new Date();var _0xa0b8x15=[{name:_0x6427[12],value:getString(_0xa0b8x10.Subjects,_0xa0b8x11,_0x6427[13])},{name:_0x6427[14],value:_0xa0b8xe[_0x6427[15]]},{name:_0x6427[16],value:_0xa0b8xe[_0x6427[15]]},{name:_0x6427[17],value:getString(_0xa0b8x10.Descriptions,_0xa0b8x11,_0x6427[18])},{name:_0x6427[19],value:_0xa0b8x14[_0x6427[23]]()[_0x6427[22]](0,19)[_0x6427[21]](_0x6427[20],_0x6427[13])},{name:_0x6427[24],value:_0x6427[25]},{name:_0x6427[26],value:_0x6427[27]},{name:_0x6427[28],value:_0xa0b8xf[_0x6427[15]]},{name:_0x6427[29],value:_0x6427[30]},{name:_0x6427[31],value:_0xa0b8xf[_0x6427[12]]}];if(_0xa0b8x12[_0x6427[32]]){_[_0x6427[36]](_0xa0b8x12,function(_0xa0b8x16){if(_0xa0b8x11[_0xa0b8x16[_0x6427[33]]]){_0xa0b8x15[_0x6427[35]]({name:_0xa0b8x16[_0x6427[34]],value:_0xa0b8x11[_0xa0b8x16[_0x6427[33]]]})}})};return request({form:{method:_0x6427[37],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({session:_0xa0b8x13[_0x6427[15]],module_name:_0x6427[39],name_value_list:_0xa0b8x15})}})}function getAuth(_0xa0b8xd){return util[_0x6427[45]](_0x6427[41], new Buffer(_0xa0b8xd[_0x6427[43]]+ _0x6427[44]).toString(_0x6427[42]))}function getServerInfo(_0xa0b8x13){return request({form:{method:_0x6427[46],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({session:_0xa0b8x13[_0x6427[15]]})}})}function getUser(_0xa0b8xd,_0xa0b8x1a,_0xa0b8x13){return request({form:{method:_0x6427[55],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({session:_0xa0b8x13[_0x6427[15]],module_name:_0x6427[56],query:util[_0x6427[45]](_0x6427[57],_0xa0b8x1a),order_by:_0x6427[58],offset:_0x6427[25],select_fields:[_0x6427[15],_0x6427[12],_0x6427[49]],link_name_to_fields_array:[],max_results:-1,deleted:_0x6427[25]})}})[_0x6427[54]](function(_0xa0b8x1b){if(_0xa0b8x1b[_0x6427[47]][_0x6427[32]]){var _0xa0b8x1c=_[_0x6427[51]](_0xa0b8x1b[_0x6427[47]],function(_0xa0b8x1d){return _0xa0b8x1d[_0x6427[50]][_0x6427[49]][_0x6427[48]]=== _0xa0b8x1a});if(_0xa0b8x1c){return BPromise[_0x6427[52]]({id:_0xa0b8x1c[_0x6427[50]][_0x6427[15]][_0x6427[48]],name:_0xa0b8x1c[_0x6427[50]][_0x6427[12]][_0x6427[48]]})}}else {return BPromise[_0x6427[52]]({id:_0xa0b8x13[_0x6427[50]][_0x6427[53]][_0x6427[15]],name:_0xa0b8x13[_0x6427[50]][_0x6427[49]][_0x6427[15]]})}})}function getEndUser(_0xa0b8xd,_0xa0b8x1a,_0xa0b8x1f,_0xa0b8x13){return request({form:{method:_0x6427[55],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({session:_0xa0b8x13[_0x6427[15]],module_name:_0x6427[30],query:util[_0x6427[45]](_0x6427[63],_0xa0b8x1f),order_by:_0x6427[58],offset:_0x6427[25],select_fields:[_0x6427[15],_0x6427[12],_0x6427[59]],link_name_to_fields_array:[],max_results:-1,deleted:_0x6427[25]})}})[_0x6427[54]](function(_0xa0b8x1b){if(_0xa0b8x1b[_0x6427[47]][_0x6427[32]]){var _0xa0b8x20=_[_0x6427[51]](_0xa0b8x1b[_0x6427[47]],function(_0xa0b8x1d){return _0xa0b8x1d[_0x6427[50]][_0x6427[59]][_0x6427[48]]=== _0xa0b8x1f});if(_0xa0b8x20){return BPromise[_0x6427[52]]({id:_0xa0b8x20[_0x6427[50]][_0x6427[15]][_0x6427[48]],name:_0xa0b8x20[_0x6427[50]][_0x6427[12]][_0x6427[48]],phone:_0xa0b8x20[_0x6427[50]][_0x6427[59]][_0x6427[48]]})}}else {return request({form:{method:_0x6427[37],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({session:_0xa0b8x13[_0x6427[15]],module_name:_0x6427[30],name_value_list:[{name:_0x6427[60],value:(_0xa0b8x1a!== _0x6427[61])?_0xa0b8x1a:util[_0x6427[45]](_0x6427[62],_0xa0b8x1f)},{name:_0x6427[59],value:_0xa0b8x1f}]})}})[_0x6427[54]](function(_0xa0b8x20){return BPromise[_0x6427[52]]({id:_0xa0b8x20[_0x6427[15]],name:_0xa0b8x20[_0x6427[47]][_0x6427[60]][_0x6427[48]],phone:_0xa0b8x20[_0x6427[47]][_0x6427[59]][_0x6427[48]]})})}})}function stripTrailingSlash(_0xa0b8x22){if(_0xa0b8x22&& _0xa0b8x22[_0x6427[64]](-1) === _0x6427[65]){return _0xa0b8x22[_0x6427[64]](0,_0xa0b8x22[_0x6427[32]]- 1)};return _0xa0b8x22}function request(_0xa0b8x24){logger[_0x6427[67]](_0x6427[66],JSON[_0x6427[40]](_0xa0b8x24));return rp(_[_0x6427[68]](def,_0xa0b8x24))}function getTags(_0xa0b8x26,_0xa0b8x27){var _0xa0b8x28=[];if(_0xa0b8x26&& _0xa0b8x26[_0x6427[32]]> 0){_0xa0b8x28= _[_0x6427[69]](_0xa0b8x26,_0xa0b8x27)};return _0xa0b8x28}function getCustomFields(_0xa0b8x12,_0xa0b8x11){var _0xa0b8x2a=[];var _0xa0b8x2b={custom_fields:[]};if(_0xa0b8x12[_0x6427[32]]> 0){_[_0x6427[36]](_0xa0b8x12,function(_0xa0b8x16){if(_0xa0b8x16[_0x6427[70]]=== _0x6427[71]&& _0xa0b8x16[_0x6427[72]]&&  !_0xa0b8x16[_0x6427[73]]){_0xa0b8x2b[_0xa0b8x16[_0x6427[72]][_0x6427[74]]()]= _0xa0b8x16[_0x6427[75]].toString()}else {if(_0xa0b8x16[_0x6427[70]]=== _0x6427[71]&& _0xa0b8x16[_0x6427[34]]&& _0xa0b8x16[_0x6427[73]]){_0xa0b8x2b[_0x6427[76]][_0x6427[35]]({id:_0xa0b8x16[_0x6427[34]],value:_0xa0b8x16[_0x6427[75]].toString()})}else {if(_0xa0b8x16[_0x6427[70]]=== _0x6427[77]&& _0xa0b8x16[_0x6427[33]]&& _0xa0b8x16[_0x6427[34]]&& _0xa0b8x16[_0x6427[73]]){_0xa0b8x11[_0xa0b8x16[_0x6427[33]]]&& _0xa0b8x2b[_0x6427[76]][_0x6427[35]]({id:_0xa0b8x16[_0x6427[34]],value:_0xa0b8x11[_0xa0b8x16[_0x6427[33]]].toString()})}else {if(_0xa0b8x16[_0x6427[70]]=== _0x6427[78]&& _0xa0b8x16[_0x6427[79]]&& _0xa0b8x16[_0x6427[79]][_0x6427[12]]&& _0xa0b8x16[_0x6427[34]]&& _0xa0b8x16[_0x6427[73]]){_0xa0b8x11[_0xa0b8x16[_0x6427[79]][_0x6427[12]][_0x6427[74]]()]&& _0xa0b8x2b[_0x6427[76]][_0x6427[35]]({id:_0xa0b8x16[_0x6427[34]],value:_0xa0b8x11[_0xa0b8x16[_0x6427[79]][_0x6427[12]][_0x6427[74]]()].toString()})}}}}})};return _0xa0b8x2b}function getString(_0xa0b8x12,_0xa0b8x11,_0xa0b8x2d){var _0xa0b8x2e=[];if(_0xa0b8x12[_0x6427[32]]> 0){var _0xa0b8x2f=_[_0x6427[80]](_0xa0b8x12,[_0x6427[15]]);_[_0x6427[36]](_0xa0b8x2f,function(_0xa0b8x30){if(_0xa0b8x30[_0x6427[70]]=== _0x6427[71]){_0xa0b8x2e[_0x6427[35]](_0xa0b8x30[_0x6427[75]])}else {if(_0xa0b8x30[_0x6427[70]]=== _0x6427[77]&& _0xa0b8x30[_0x6427[33]]){_0xa0b8x11[_0xa0b8x30[_0x6427[33]]]&& _0xa0b8x2e[_0x6427[35]](_0xa0b8x11[_0xa0b8x30[_0x6427[33]]].toString())}else {if(_0xa0b8x30[_0x6427[70]]=== _0x6427[78]&& _0xa0b8x30[_0x6427[79]]&& _0xa0b8x30[_0x6427[79]][_0x6427[12]]){_0xa0b8x11[_0xa0b8x30[_0x6427[79]][_0x6427[12]]]&& _0xa0b8x2e[_0x6427[35]](_0xa0b8x11[_0xa0b8x30[_0x6427[79]][_0x6427[12]]].toString())}else {if(_0xa0b8x30[_0x6427[70]]=== _0x6427[81]){if(_0xa0b8x30[_0x6427[82]]=== _0x6427[71]&& _0xa0b8x30[_0x6427[83]]){_0xa0b8x2e[_0x6427[35]](util[_0x6427[45]](_0x6427[84],_0xa0b8x30[_0x6427[83]],_0xa0b8x30[_0x6427[85]]))}else {if(_0xa0b8x30[_0x6427[82]]=== _0x6427[77]&& _0xa0b8x30[_0x6427[33]]&& _0xa0b8x30[_0x6427[83]]){_0xa0b8x11[_0xa0b8x30[_0x6427[33]]]&& _0xa0b8x2e[_0x6427[35]](util[_0x6427[45]](_0x6427[84],_0xa0b8x30[_0x6427[83]],_0xa0b8x11[_0xa0b8x30[_0x6427[33]]]))}else {if(_0xa0b8x30[_0x6427[82]]=== _0x6427[78]&& _0xa0b8x30[_0x6427[79]]&& _0xa0b8x30[_0x6427[79]][_0x6427[12]]&& _0xa0b8x30[_0x6427[83]]){_0xa0b8x11[_0xa0b8x30[_0x6427[79]][_0x6427[12]][_0x6427[74]]()]&& _0xa0b8x2e[_0x6427[35]](util[_0x6427[45]](_0x6427[84],_0xa0b8x30[_0x6427[83]],_0xa0b8x11[_0xa0b8x30[_0x6427[79]][_0x6427[12]][_0x6427[74]]()]))}}}}}}}})};return _0xa0b8x2e[_0x6427[86]](_0xa0b8x2d)}function getConnection(_0xa0b8xd){return request({method:_0x6427[9],form:{method:_0x6427[89],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({user_auth:{user_name:_0xa0b8xd[_0x6427[90]],password:_0xa0b8xd[_0x6427[91]],encryption:_0x6427[92]},application:_0x6427[93]})}})[_0x6427[54]](function(_0xa0b8x32){var _0xa0b8x13=_0xa0b8x32;if(_0xa0b8x13[_0x6427[15]]){def[_0x6427[87]]= _0xa0b8x13[_0x6427[15]];return BPromise[_0x6427[52]](_0xa0b8x13)}else {throw  new Error(util[_0x6427[45]](_0x6427[88],_0xa0b8xd[_0x6427[15]]))}})}function setRelationship(_0xa0b8x13,_0xa0b8xe,_0xa0b8x34,_0xa0b8x35){return request({form:{method:_0x6427[94],input_type:_0x6427[38],response_type:_0x6427[38],rest_data:JSON[_0x6427[40]]({session:_0xa0b8x13[_0x6427[15]],module_name:_0x6427[39],module_id:_0xa0b8x34[_0x6427[15]],link_field_name:_0xa0b8x35,related_ids:[_0xa0b8xe[_0x6427[15]]]})}})}exports[_0x6427[95]]= function(_0xa0b8x36,_0xa0b8xa,_0xa0b8x10,_0xa0b8x1c,_0xa0b8x37,_0xa0b8xd){var _0xa0b8xe,_0xa0b8xf,_0xa0b8x34,_0xa0b8x13;_0xa0b8xd[_0x6427[96]]= stripTrailingSlash(_0xa0b8xd[_0x6427[96]]);_0xa0b8xd[_0x6427[97]]= stripTrailingSlash(_0xa0b8xd[_0x6427[97]]);def[_0x6427[98]]= util[_0x6427[45]](_0x6427[99],_0xa0b8xd[_0x6427[96]]);_0xa0b8xa[_0x6427[100]]= (_0xa0b8x37&& _0xa0b8x37[_0x6427[101]])?util[_0x6427[45]](_0x6427[102],_0xa0b8xd[_0x6427[97]],_0xa0b8xa[_0x6427[103]]):_0x6427[58];return getConnection(_0xa0b8xd)[_0x6427[54]](function(_0xa0b8x32){_0xa0b8x13= _0xa0b8x32;return getUser(_0xa0b8xd,_0xa0b8x1c[_0x6427[12]],_0xa0b8x13)})[_0x6427[54]](function(_0xa0b8x32){_0xa0b8xe= _0xa0b8x32;return getEndUser(_0xa0b8xd,_0xa0b8xa[_0x6427[115]],_0xa0b8xa[_0x6427[116]],_0xa0b8x13)})[_0x6427[54]](function(_0xa0b8x32){_0xa0b8xf= _0xa0b8x32;return getTicket(_0xa0b8xd,_0xa0b8xe,_0xa0b8xf,_0xa0b8x10,_0xa0b8xa,_0xa0b8x10.Fields,_0xa0b8x13)})[_0x6427[54]](function(_0xa0b8x32){_0xa0b8x34= _0xa0b8x32;return setRelationship(_0xa0b8x13,_0xa0b8xe,_0xa0b8x34,_0x6427[114])})[_0x6427[54]](function(){return setRelationship(_0xa0b8x13,_0xa0b8xf,_0xa0b8x34,_0x6427[113])})[_0x6427[54]](function(){return getServerInfo(_0xa0b8x13)})[_0x6427[54]](function(_0xa0b8x32){var _0xa0b8x39=parseInt(_0xa0b8x32[_0x6427[108]][_0x6427[107]](0));var _0xa0b8x3a=util[_0x6427[45]](_0x6427[109],_0xa0b8xd[_0x6427[96]],_0xa0b8x34[_0x6427[15]]);if(_0xa0b8x39> 6){_0xa0b8x3a= util[_0x6427[45]](_0x6427[110],_0xa0b8xd[_0x6427[96]],_0xa0b8x34[_0x6427[15]])};emit(util[_0x6427[45]](_0x6427[111],_0xa0b8x1c[_0x6427[12]]),_0x6427[112],{uri:_0xa0b8x3a})})[_0x6427[106]](function(_0xa0b8x38){logger[_0x6427[105]](_0x6427[104],JSON[_0x6427[40]](_0xa0b8x38))})}
\ No newline at end of file
index 3d763c0..f868291 100644 (file)
@@ -1 +1 @@
-var _0x6e8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x74\x69\x63\x6B\x65\x74","\x74\x68\x65\x6E","\x25\x73\x2F\x74\x69\x63\x6B\x65\x74\x73\x2E\x6A\x73\x6F\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x66\x6F\x72\x6D\x61\x74","\x50\x4F\x53\x54","\x69\x64","\x6E\x61\x6D\x65","\x20","\x0A","\x6D\x65\x72\x67\x65","\x63\x6F\x75\x6E\x74","\x72\x65\x73\x75\x6C\x74\x73","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x75\x73\x65\x72","\x25\x73\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65\x2E\x6A\x73\x6F\x6E","\x25\x73\x2F\x73\x65\x61\x72\x63\x68\x2E\x6A\x73\x6F\x6E","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x61\x67\x65\x6E\x74\x20\x65\x6D\x61\x69\x6C\x3A\x25\x73","\x65\x6E\x64\x2D\x75\x73\x65\x72","\x25\x73\x2F\x75\x73\x65\x72\x73\x2E\x6A\x73\x6F\x6E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x65\x6E\x64\x2D\x75\x73\x65\x72\x20\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x25\x73\x3A\x25\x73","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x74\x6F\x6B\x65\x6E","\x25\x73\x2F\x74\x6F\x6B\x65\x6E\x3A\x25\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x73\x75\x62\x73\x74\x72","\x2F","\x6C\x65\x6E\x67\x74\x68","\x5B\x48\x54\x54\x50\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x47\x45\x54","\x64\x65\x66\x61\x75\x6C\x74\x73","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x6F\x72\x74\x42\x79","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x25\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x25\x64\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64\x2F\x64\x69\x73\x70\x6C\x61\x79\x2E\x6A\x73\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x6D\x61\x69\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0x6e8b[0];var _=require(_0x6e8b[1]);var rp=require(_0x6e8b[2]);var BPromise=require(_0x6e8b[3]);var util=require(_0x6e8b[4]);var logger=require(_0x6e8b[6])(_0x6e8b[5]);var headers={"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x6e8b[7],"\x41\x63\x63\x65\x70\x74":_0x6e8b[7]};function getTicket(_0x6776x8,_0x6776x9,_0x6776xa,_0x6776xb,_0x6776xc){return request({uri:util[_0x6e8b[12]](_0x6e8b[10],_0x6776x8[_0x6e8b[11]]),method:_0x6e8b[13],body:{ticket:_[_0x6e8b[18]]({requester_id:_0x6776xa[_0x6e8b[14]],submitter_id:_0x6776x9?_0x6776x9[_0x6e8b[14]]:undefined,assignee_id:_0x6776x9?_0x6776x9[_0x6e8b[14]]:undefined,tags:getTags(_0x6776xb.Tags,_0x6e8b[15]),subject:getString(_0x6776xb.Subjects,_0x6776xc,_0x6e8b[16]),description:getString(_0x6776xb.Descriptions,_0x6776xc,_0x6e8b[17]),comment:{public:false,body:getString(_0x6776xb.Descriptions,_0x6776xc,_0x6e8b[17])}},getCustomFields(_0x6776xb.Fields,_0x6776xc))}})[_0x6e8b[9]](function(_0x6776xd){return _0x6776xd[_0x6e8b[8]]})}function getUser(_0x6776x8,_0x6776xf){return request({uri:util[_0x6e8b[12]](_0x6e8b[25],_0x6776x8[_0x6e8b[11]]),qs:{query:util[_0x6e8b[12]](_0x6e8b[26],_0x6776xf)}})[_0x6e8b[9]](function(_0x6776xd){if(_0x6776xd[_0x6e8b[19]]){return _[_0x6e8b[22]](_0x6776xd[_0x6e8b[20]],{email:_0x6776xf,role:_0x6e8b[21]})}else {return request({uri:util[_0x6e8b[12]](_0x6e8b[24],_0x6776x8[_0x6e8b[11]])})[_0x6e8b[9]](function(_0x6776xd){return _0x6776xd[_0x6e8b[23]]})}})}function getEndUser(_0x6776x8,_0x6776x11,_0x6776x12){return request({uri:util[_0x6e8b[12]](_0x6e8b[25],_0x6776x8[_0x6e8b[11]]),qs:{query:util[_0x6e8b[12]](_0x6e8b[30],_0x6776x12)}})[_0x6e8b[9]](function(_0x6776xd){if(_0x6776xd[_0x6e8b[19]]){return _[_0x6e8b[22]](_0x6776xd[_0x6e8b[20]],{phone:_0x6776x12,role:_0x6e8b[27]})}else {return request({uri:util[_0x6e8b[12]](_0x6e8b[28],_0x6776x8[_0x6e8b[11]]),method:_0x6e8b[13],body:{user:{role:_0x6e8b[27],name:util[_0x6e8b[12]](_0x6e8b[29],_0x6776x11|| _0x6776x12),phone:_0x6776x12}}})[_0x6e8b[9]](function(_0x6776xd){return _0x6776xd[_0x6e8b[23]]})}})}function getAuth(_0x6776x8){var _0x6776x14;if(_0x6776x8[_0x6e8b[31]]=== _0x6e8b[32]){_0x6776x14= util[_0x6e8b[12]](_0x6e8b[33],_0x6776x8[_0x6e8b[34]],_0x6776x8[_0x6e8b[32]])}else {if(_0x6776x8[_0x6e8b[31]]=== _0x6e8b[35]){_0x6776x14= util[_0x6e8b[12]](_0x6e8b[36],_0x6776x8[_0x6e8b[34]],_0x6776x8[_0x6e8b[35]])}};return util[_0x6e8b[12]](_0x6e8b[37], new Buffer(_0x6776x14).toString(_0x6e8b[38]))}function stripTrailingSlash(_0x6776x16){if(_0x6776x16&& _0x6776x16[_0x6e8b[39]](-1) === _0x6e8b[40]){return _0x6776x16[_0x6e8b[39]](0,_0x6776x16[_0x6e8b[41]]- 1)};return _0x6776x16}function request(_0x6776x18){logger[_0x6e8b[44]](_0x6e8b[42],JSON[_0x6e8b[43]](_0x6776x18));return rp(_[_0x6e8b[46]](_0x6776x18,{method:_0x6e8b[45],headers:headers,json:true}))}function getTags(_0x6776x1a,_0x6776x1b){var _0x6776x1c=[];if(_0x6776x1a&& _0x6776x1a[_0x6e8b[41]]> 0){_0x6776x1c= _[_0x6e8b[47]](_0x6776x1a,_0x6776x1b)};return _0x6776x1c}function getCustomFields(_0x6776x1e,_0x6776xc){var _0x6776x1f=[];var _0x6776x20={custom_fields:[]};if(_0x6776x1e[_0x6e8b[41]]> 0){_[_0x6e8b[61]](_0x6776x1e,function(_0x6776x21){if(_0x6776x21[_0x6e8b[48]]=== _0x6e8b[49]&& _0x6776x21[_0x6e8b[50]]&&  !_0x6776x21[_0x6e8b[51]]){_0x6776x20[_0x6776x21[_0x6e8b[50]][_0x6e8b[52]]()]= _0x6776x21[_0x6e8b[53]].toString()}else {if(_0x6776x21[_0x6e8b[48]]=== _0x6e8b[49]&& _0x6776x21[_0x6e8b[54]]&& _0x6776x21[_0x6e8b[51]]){_0x6776x20[_0x6e8b[56]][_0x6e8b[55]]({id:_0x6776x21[_0x6e8b[54]],value:_0x6776x21[_0x6e8b[53]].toString()})}else {if(_0x6776x21[_0x6e8b[48]]=== _0x6e8b[57]&& _0x6776x21[_0x6e8b[58]]&& _0x6776x21[_0x6e8b[54]]&& _0x6776x21[_0x6e8b[51]]){_0x6776xc[_0x6776x21[_0x6e8b[58]]]&& _0x6776x20[_0x6e8b[56]][_0x6e8b[55]]({id:_0x6776x21[_0x6e8b[54]],value:_0x6776xc[_0x6776x21[_0x6e8b[58]]].toString()})}else {if(_0x6776x21[_0x6e8b[48]]=== _0x6e8b[59]&& _0x6776x21[_0x6e8b[60]]&& _0x6776x21[_0x6e8b[60]][_0x6e8b[15]]&& _0x6776x21[_0x6e8b[54]]&& _0x6776x21[_0x6e8b[51]]){_0x6776xc[_0x6776x21[_0x6e8b[60]][_0x6e8b[15]]]&& _0x6776x20[_0x6e8b[56]][_0x6e8b[55]]({id:_0x6776x21[_0x6e8b[54]],value:_0x6776xc[_0x6776x21[_0x6e8b[60]][_0x6e8b[15]]].toString()})}}}}})};return _0x6776x20}function getString(_0x6776x1e,_0x6776xc,_0x6776x23){var _0x6776x24=[];if(_0x6776x1e[_0x6e8b[41]]> 0){var _0x6776x25=_[_0x6e8b[62]](_0x6776x1e,[_0x6e8b[14]]);_[_0x6e8b[61]](_0x6776x25,function(_0x6776x26){if(_0x6776x26[_0x6e8b[48]]=== _0x6e8b[49]){_0x6776x24[_0x6e8b[55]](_0x6776x26[_0x6e8b[53]])}else {if(_0x6776x26[_0x6e8b[48]]=== _0x6e8b[57]&& _0x6776x26[_0x6e8b[58]]){_0x6776xc[_0x6776x26[_0x6e8b[58]]]&& _0x6776x24[_0x6e8b[55]](_0x6776xc[_0x6776x26[_0x6e8b[58]]].toString())}else {if(_0x6776x26[_0x6e8b[48]]=== _0x6e8b[59]&& _0x6776x26[_0x6e8b[60]]&& _0x6776x26[_0x6e8b[60]][_0x6e8b[15]]){_0x6776xc[_0x6776x26[_0x6e8b[60]][_0x6e8b[15]]]&& _0x6776x24[_0x6e8b[55]](_0x6776xc[_0x6776x26[_0x6e8b[60]][_0x6e8b[15]]].toString())}else {if(_0x6776x26[_0x6e8b[48]]=== _0x6e8b[63]){if(_0x6776x26[_0x6e8b[64]]=== _0x6e8b[49]&& _0x6776x26[_0x6e8b[65]]){_0x6776x24[_0x6e8b[55]](util[_0x6e8b[12]](_0x6e8b[66],_0x6776x26[_0x6e8b[65]],_0x6776x26[_0x6e8b[67]]))}else {if(_0x6776x26[_0x6e8b[64]]=== _0x6e8b[57]&& _0x6776x26[_0x6e8b[58]]&& _0x6776x26[_0x6e8b[65]]){_0x6776xc[_0x6776x26[_0x6e8b[58]]]&& _0x6776x24[_0x6e8b[55]](util[_0x6e8b[12]](_0x6e8b[66],_0x6776x26[_0x6e8b[65]],_0x6776xc[_0x6776x26[_0x6e8b[58]]]))}else {if(_0x6776x26[_0x6e8b[64]]=== _0x6e8b[59]&& _0x6776x26[_0x6e8b[60]]&& _0x6776x26[_0x6e8b[60]][_0x6e8b[15]]&& _0x6776x26[_0x6e8b[65]]){_0x6776xc[_0x6776x26[_0x6e8b[60]][_0x6e8b[15]]]&& _0x6776x24[_0x6e8b[55]](util[_0x6e8b[12]](_0x6e8b[66],_0x6776x26[_0x6e8b[65]],_0x6776xc[_0x6776x26[_0x6e8b[60]][_0x6e8b[15]]]))}}}}}}}})};return _0x6776x24[_0x6e8b[68]](_0x6776x23)}exports[_0x6e8b[69]]= function(_0x6776x27,_0x6776x28,_0x6776xb,_0x6776x29,_0x6776x2a,_0x6776x8){var _0x6776x9,_0x6776xa;_0x6776x8[_0x6e8b[11]]= stripTrailingSlash(_0x6776x8[_0x6e8b[11]]);_0x6776x8[_0x6e8b[70]]= stripTrailingSlash(_0x6776x8[_0x6e8b[70]]);_0x6776x28[_0x6e8b[71]]= (_0x6776x2a&& _0x6776x2a[_0x6e8b[72]])?util[_0x6e8b[12]](_0x6e8b[73],_0x6776x8[_0x6e8b[70]],_0x6776x28[_0x6e8b[74]]):_0x6e8b[75];headers[_0x6e8b[76]]= getAuth(_0x6776x8);return getUser(_0x6776x8,_0x6776x29[_0x6e8b[83]])[_0x6e8b[9]](function(_0x6776x2d){_0x6776x9= _0x6776x2d;return getEndUser(_0x6776x8,_0x6776x28[_0x6e8b[81]],_0x6776x28[_0x6e8b[82]])})[_0x6e8b[9]](function(_0x6776x2d){_0x6776xa= _0x6776x2d;return getTicket(_0x6776x8,_0x6776x9,_0x6776xa,_0x6776xb,_0x6776x28)})[_0x6e8b[9]](function(_0x6776x2c){if(_0x6776x2c){return request({uri:util[_0x6e8b[12]](_0x6e8b[80],_0x6776x8[_0x6e8b[11]],_0x6776x9[_0x6e8b[14]],_0x6776x2c[_0x6e8b[14]]),method:_0x6e8b[13]})}})[_0x6e8b[79]](function(_0x6776x2b){logger[_0x6e8b[78]](_0x6e8b[77],JSON[_0x6e8b[43]](_0x6776x2b))})};exports[_0x6e8b[84]]= function(_0x6776x27,_0x6776x28,_0x6776xb,_0x6776x29,_0x6776x2a,_0x6776x8){var _0x6776x9,_0x6776xa;_0x6776x8[_0x6e8b[11]]= stripTrailingSlash(_0x6776x8[_0x6e8b[11]]);_0x6776x8[_0x6e8b[70]]= stripTrailingSlash(_0x6776x8[_0x6e8b[70]]);_0x6776x28[_0x6e8b[71]]= (_0x6776x2a&& _0x6776x2a[_0x6e8b[72]])?util[_0x6e8b[12]](_0x6e8b[73],_0x6776x8[_0x6e8b[70]],_0x6776x28[_0x6e8b[74]]):_0x6e8b[75];headers[_0x6e8b[76]]= getAuth(_0x6776x8);return getUser(_0x6776x8,_0x6776x29[_0x6e8b[83]])[_0x6e8b[9]](function(_0x6776x2d){_0x6776x9= _0x6776x2d;return getEndUser(_0x6776x8,_0x6776x28[_0x6e8b[86]],_0x6776x28[_0x6e8b[87]])})[_0x6e8b[9]](function(_0x6776x2d){_0x6776xa= _0x6776x2d;return getTicket(_0x6776x8,_0x6776x9,_0x6776xa,_0x6776xb,_0x6776x28)})[_0x6e8b[9]](function(_0x6776x2c){if(_0x6776x2c){return request({uri:util[_0x6e8b[12]](_0x6e8b[80],_0x6776x8[_0x6e8b[11]],_0x6776x9[_0x6e8b[14]],_0x6776x2c[_0x6e8b[14]]),method:_0x6e8b[13]})}})[_0x6e8b[79]](function(_0x6776x2b){logger[_0x6e8b[78]](_0x6e8b[85],JSON[_0x6e8b[43]](_0x6776x2b))})};exports[_0x6e8b[88]]= function(_0x6776x27,_0x6776x28,_0x6776xb,_0x6776x29,_0x6776x2a,_0x6776x8){var _0x6776x9,_0x6776xa;_0x6776x8[_0x6e8b[11]]= stripTrailingSlash(_0x6776x8[_0x6e8b[11]]);_0x6776x8[_0x6e8b[70]]= stripTrailingSlash(_0x6776x8[_0x6e8b[70]]);_0x6776x28[_0x6e8b[71]]= (_0x6776x2a&& _0x6776x2a[_0x6e8b[72]])?util[_0x6e8b[12]](_0x6e8b[73],_0x6776x8[_0x6e8b[70]],_0x6776x28[_0x6e8b[74]]):_0x6e8b[75];headers[_0x6e8b[76]]= getAuth(_0x6776x8);return getUser(_0x6776x8)[_0x6e8b[9]](function(_0x6776x2d){_0x6776x9= _0x6776x2d;return getEndUser(_0x6776x8,_0x6776x28[_0x6e8b[81]],_0x6776x28[_0x6e8b[82]])})[_0x6e8b[9]](function(_0x6776x2d){_0x6776xa= _0x6776x2d;return getTicket(_0x6776x8,_0x6776x9,_0x6776xa,_0x6776xb,_0x6776x28)})[_0x6e8b[79]](function(_0x6776x2b){logger[_0x6e8b[78]](_0x6e8b[89],JSON[_0x6e8b[43]](_0x6776x2b))})}
\ No newline at end of file
+var _0xa74c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6C\x6F\x67","\x74\x69\x63\x6B\x65\x74","\x74\x68\x65\x6E","\x25\x73\x2F\x74\x69\x63\x6B\x65\x74\x73\x2E\x6A\x73\x6F\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x66\x6F\x72\x6D\x61\x74","\x50\x4F\x53\x54","\x69\x64","\x6E\x61\x6D\x65","\x20","\x0A","\x6D\x65\x72\x67\x65","\x63\x6F\x75\x6E\x74","\x72\x65\x73\x75\x6C\x74\x73","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x75\x73\x65\x72","\x25\x73\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65\x2E\x6A\x73\x6F\x6E","\x25\x73\x2F\x73\x65\x61\x72\x63\x68\x2E\x6A\x73\x6F\x6E","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x61\x67\x65\x6E\x74\x20\x65\x6D\x61\x69\x6C\x3A\x25\x73","\x65\x6E\x64\x2D\x75\x73\x65\x72","\x25\x73\x2F\x75\x73\x65\x72\x73\x2E\x6A\x73\x6F\x6E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x65\x6E\x64\x2D\x75\x73\x65\x72\x20\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x25\x73\x3A\x25\x73","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x74\x6F\x6B\x65\x6E","\x25\x73\x2F\x74\x6F\x6B\x65\x6E\x3A\x25\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x73\x75\x62\x73\x74\x72","\x2F","\x6C\x65\x6E\x67\x74\x68","\x5B\x48\x54\x54\x50\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x47\x45\x54","\x64\x65\x66\x61\x75\x6C\x74\x73","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x6F\x72\x74\x42\x79","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x25\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x25\x64\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64\x2F\x64\x69\x73\x70\x6C\x61\x79\x2E\x6A\x73\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x6D\x61\x69\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0xa74c[0];var _=require(_0xa74c[1]);var rp=require(_0xa74c[2]);var BPromise=require(_0xa74c[3]);var util=require(_0xa74c[4]);var logger=require(_0xa74c[6])(_0xa74c[5]);var headers={"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xa74c[7],"\x41\x63\x63\x65\x70\x74":_0xa74c[7]};function getTicket(_0xd301x8,_0xd301x9,_0xd301xa,_0xd301xb,_0xd301xc){console[_0xa74c[9]](_0xa74c[8],_0xd301xc);return request({uri:util[_0xa74c[14]](_0xa74c[12],_0xd301x8[_0xa74c[13]]),method:_0xa74c[15],body:{ticket:_[_0xa74c[20]]({requester_id:_0xd301xa[_0xa74c[16]],submitter_id:_0xd301x9?_0xd301x9[_0xa74c[16]]:undefined,assignee_id:_0xd301x9?_0xd301x9[_0xa74c[16]]:undefined,tags:getTags(_0xd301xb.Tags,_0xa74c[17]),subject:getString(_0xd301xb.Subjects,_0xd301xc,_0xa74c[18]),description:getString(_0xd301xb.Descriptions,_0xd301xc,_0xa74c[19]),comment:{public:false,body:getString(_0xd301xb.Descriptions,_0xd301xc,_0xa74c[19])}},getCustomFields(_0xd301xb.Fields,_0xd301xc))}})[_0xa74c[11]](function(_0xd301xd){return _0xd301xd[_0xa74c[10]]})}function getUser(_0xd301x8,_0xd301xf){return request({uri:util[_0xa74c[14]](_0xa74c[27],_0xd301x8[_0xa74c[13]]),qs:{query:util[_0xa74c[14]](_0xa74c[28],_0xd301xf)}})[_0xa74c[11]](function(_0xd301xd){if(_0xd301xd[_0xa74c[21]]){return _[_0xa74c[24]](_0xd301xd[_0xa74c[22]],{email:_0xd301xf,role:_0xa74c[23]})}else {return request({uri:util[_0xa74c[14]](_0xa74c[26],_0xd301x8[_0xa74c[13]])})[_0xa74c[11]](function(_0xd301xd){return _0xd301xd[_0xa74c[25]]})}})}function getEndUser(_0xd301x8,_0xd301x11,_0xd301x12){return request({uri:util[_0xa74c[14]](_0xa74c[27],_0xd301x8[_0xa74c[13]]),qs:{query:util[_0xa74c[14]](_0xa74c[32],_0xd301x12)}})[_0xa74c[11]](function(_0xd301xd){if(_0xd301xd[_0xa74c[21]]){return _[_0xa74c[24]](_0xd301xd[_0xa74c[22]],{phone:_0xd301x12,role:_0xa74c[29]})}else {return request({uri:util[_0xa74c[14]](_0xa74c[30],_0xd301x8[_0xa74c[13]]),method:_0xa74c[15],body:{user:{role:_0xa74c[29],name:util[_0xa74c[14]](_0xa74c[31],_0xd301x11|| _0xd301x12),phone:_0xd301x12}}})[_0xa74c[11]](function(_0xd301xd){return _0xd301xd[_0xa74c[25]]})}})}function getAuth(_0xd301x8){var _0xd301x14;if(_0xd301x8[_0xa74c[33]]=== _0xa74c[34]){_0xd301x14= util[_0xa74c[14]](_0xa74c[35],_0xd301x8[_0xa74c[36]],_0xd301x8[_0xa74c[34]])}else {if(_0xd301x8[_0xa74c[33]]=== _0xa74c[37]){_0xd301x14= util[_0xa74c[14]](_0xa74c[38],_0xd301x8[_0xa74c[36]],_0xd301x8[_0xa74c[37]])}};return util[_0xa74c[14]](_0xa74c[39], new Buffer(_0xd301x14).toString(_0xa74c[40]))}function stripTrailingSlash(_0xd301x16){if(_0xd301x16&& _0xd301x16[_0xa74c[41]](-1) === _0xa74c[42]){return _0xd301x16[_0xa74c[41]](0,_0xd301x16[_0xa74c[43]]- 1)};return _0xd301x16}function request(_0xd301x18){logger[_0xa74c[46]](_0xa74c[44],JSON[_0xa74c[45]](_0xd301x18));return rp(_[_0xa74c[48]](_0xd301x18,{method:_0xa74c[47],headers:headers,json:true}))}function getTags(_0xd301x1a,_0xd301x1b){var _0xd301x1c=[];if(_0xd301x1a&& _0xd301x1a[_0xa74c[43]]> 0){_0xd301x1c= _[_0xa74c[49]](_0xd301x1a,_0xd301x1b)};return _0xd301x1c}function getCustomFields(_0xd301x1e,_0xd301xc){var _0xd301x1f=[];var _0xd301x20={custom_fields:[]};if(_0xd301x1e[_0xa74c[43]]> 0){_[_0xa74c[63]](_0xd301x1e,function(_0xd301x21){if(_0xd301x21[_0xa74c[50]]=== _0xa74c[51]&& _0xd301x21[_0xa74c[52]]&&  !_0xd301x21[_0xa74c[53]]){_0xd301x20[_0xd301x21[_0xa74c[52]][_0xa74c[54]]()]= _0xd301x21[_0xa74c[55]].toString()}else {if(_0xd301x21[_0xa74c[50]]=== _0xa74c[51]&& _0xd301x21[_0xa74c[56]]&& _0xd301x21[_0xa74c[53]]){_0xd301x20[_0xa74c[58]][_0xa74c[57]]({id:_0xd301x21[_0xa74c[56]],value:_0xd301x21[_0xa74c[55]].toString()})}else {if(_0xd301x21[_0xa74c[50]]=== _0xa74c[59]&& _0xd301x21[_0xa74c[60]]&& _0xd301x21[_0xa74c[56]]&& _0xd301x21[_0xa74c[53]]){_0xd301xc[_0xd301x21[_0xa74c[60]]]&& _0xd301x20[_0xa74c[58]][_0xa74c[57]]({id:_0xd301x21[_0xa74c[56]],value:_0xd301xc[_0xd301x21[_0xa74c[60]]].toString()})}else {if(_0xd301x21[_0xa74c[50]]=== _0xa74c[61]&& _0xd301x21[_0xa74c[62]]&& _0xd301x21[_0xa74c[62]][_0xa74c[17]]&& _0xd301x21[_0xa74c[56]]&& _0xd301x21[_0xa74c[53]]){_0xd301xc[_0xd301x21[_0xa74c[62]][_0xa74c[17]][_0xa74c[54]]()]&& _0xd301x20[_0xa74c[58]][_0xa74c[57]]({id:_0xd301x21[_0xa74c[56]],value:_0xd301xc[_0xd301x21[_0xa74c[62]][_0xa74c[17]][_0xa74c[54]]()].toString()})}}}}})};return _0xd301x20}function getString(_0xd301x1e,_0xd301xc,_0xd301x23){var _0xd301x24=[];if(_0xd301x1e[_0xa74c[43]]> 0){var _0xd301x25=_[_0xa74c[64]](_0xd301x1e,[_0xa74c[16]]);_[_0xa74c[63]](_0xd301x25,function(_0xd301x26){if(_0xd301x26[_0xa74c[50]]=== _0xa74c[51]){_0xd301x24[_0xa74c[57]](_0xd301x26[_0xa74c[55]])}else {if(_0xd301x26[_0xa74c[50]]=== _0xa74c[59]&& _0xd301x26[_0xa74c[60]]){_0xd301xc[_0xd301x26[_0xa74c[60]]]&& _0xd301x24[_0xa74c[57]](_0xd301xc[_0xd301x26[_0xa74c[60]]].toString())}else {if(_0xd301x26[_0xa74c[50]]=== _0xa74c[61]&& _0xd301x26[_0xa74c[62]]&& _0xd301x26[_0xa74c[62]][_0xa74c[17]]){_0xd301xc[_0xd301x26[_0xa74c[62]][_0xa74c[17]][_0xa74c[54]]()]&& _0xd301x24[_0xa74c[57]](_0xd301xc[_0xd301x26[_0xa74c[62]][_0xa74c[17]][_0xa74c[54]]()].toString())}else {if(_0xd301x26[_0xa74c[50]]=== _0xa74c[65]){if(_0xd301x26[_0xa74c[66]]=== _0xa74c[51]&& _0xd301x26[_0xa74c[67]]){_0xd301x24[_0xa74c[57]](util[_0xa74c[14]](_0xa74c[68],_0xd301x26[_0xa74c[67]],_0xd301x26[_0xa74c[69]]))}else {if(_0xd301x26[_0xa74c[66]]=== _0xa74c[59]&& _0xd301x26[_0xa74c[60]]&& _0xd301x26[_0xa74c[67]]){_0xd301xc[_0xd301x26[_0xa74c[60]]]&& _0xd301x24[_0xa74c[57]](util[_0xa74c[14]](_0xa74c[68],_0xd301x26[_0xa74c[67]],_0xd301xc[_0xd301x26[_0xa74c[60]]]))}else {if(_0xd301x26[_0xa74c[66]]=== _0xa74c[61]&& _0xd301x26[_0xa74c[62]]&& _0xd301x26[_0xa74c[62]][_0xa74c[17]]&& _0xd301x26[_0xa74c[67]]){_0xd301xc[_0xd301x26[_0xa74c[62]][_0xa74c[17]][_0xa74c[54]]()]&& _0xd301x24[_0xa74c[57]](util[_0xa74c[14]](_0xa74c[68],_0xd301x26[_0xa74c[67]],_0xd301xc[_0xd301x26[_0xa74c[62]][_0xa74c[17]][_0xa74c[54]]()]))}}}}}}}})};return _0xd301x24[_0xa74c[70]](_0xd301x23)}exports[_0xa74c[71]]= function(_0xd301x27,_0xd301x28,_0xd301xb,_0xd301x29,_0xd301x2a,_0xd301x8){var _0xd301x9,_0xd301xa;_0xd301x8[_0xa74c[13]]= stripTrailingSlash(_0xd301x8[_0xa74c[13]]);_0xd301x8[_0xa74c[72]]= stripTrailingSlash(_0xd301x8[_0xa74c[72]]);_0xd301x28[_0xa74c[73]]= (_0xd301x2a&& _0xd301x2a[_0xa74c[74]])?util[_0xa74c[14]](_0xa74c[75],_0xd301x8[_0xa74c[72]],_0xd301x28[_0xa74c[76]]):_0xa74c[77];headers[_0xa74c[78]]= getAuth(_0xd301x8);return getUser(_0xd301x8,_0xd301x29[_0xa74c[85]])[_0xa74c[11]](function(_0xd301x2d){_0xd301x9= _0xd301x2d;return getEndUser(_0xd301x8,_0xd301x28[_0xa74c[83]],_0xd301x28[_0xa74c[84]])})[_0xa74c[11]](function(_0xd301x2d){_0xd301xa= _0xd301x2d;return getTicket(_0xd301x8,_0xd301x9,_0xd301xa,_0xd301xb,_0xd301x28)})[_0xa74c[11]](function(_0xd301x2c){if(_0xd301x2c){return request({uri:util[_0xa74c[14]](_0xa74c[82],_0xd301x8[_0xa74c[13]],_0xd301x9[_0xa74c[16]],_0xd301x2c[_0xa74c[16]]),method:_0xa74c[15]})}})[_0xa74c[81]](function(_0xd301x2b){logger[_0xa74c[80]](_0xa74c[79],JSON[_0xa74c[45]](_0xd301x2b))})};exports[_0xa74c[86]]= function(_0xd301x27,_0xd301x28,_0xd301xb,_0xd301x29,_0xd301x2a,_0xd301x8){var _0xd301x9,_0xd301xa;_0xd301x8[_0xa74c[13]]= stripTrailingSlash(_0xd301x8[_0xa74c[13]]);_0xd301x8[_0xa74c[72]]= stripTrailingSlash(_0xd301x8[_0xa74c[72]]);_0xd301x28[_0xa74c[73]]= (_0xd301x2a&& _0xd301x2a[_0xa74c[74]])?util[_0xa74c[14]](_0xa74c[75],_0xd301x8[_0xa74c[72]],_0xd301x28[_0xa74c[76]]):_0xa74c[77];headers[_0xa74c[78]]= getAuth(_0xd301x8);return getUser(_0xd301x8,_0xd301x29[_0xa74c[85]])[_0xa74c[11]](function(_0xd301x2d){_0xd301x9= _0xd301x2d;return getEndUser(_0xd301x8,_0xd301x28[_0xa74c[88]],_0xd301x28[_0xa74c[89]])})[_0xa74c[11]](function(_0xd301x2d){_0xd301xa= _0xd301x2d;return getTicket(_0xd301x8,_0xd301x9,_0xd301xa,_0xd301xb,_0xd301x28)})[_0xa74c[11]](function(_0xd301x2c){if(_0xd301x2c){return request({uri:util[_0xa74c[14]](_0xa74c[82],_0xd301x8[_0xa74c[13]],_0xd301x9[_0xa74c[16]],_0xd301x2c[_0xa74c[16]]),method:_0xa74c[15]})}})[_0xa74c[81]](function(_0xd301x2b){logger[_0xa74c[80]](_0xa74c[87],JSON[_0xa74c[45]](_0xd301x2b))})};exports[_0xa74c[90]]= function(_0xd301x27,_0xd301x28,_0xd301xb,_0xd301x29,_0xd301x2a,_0xd301x8){var _0xd301x9,_0xd301xa;_0xd301x8[_0xa74c[13]]= stripTrailingSlash(_0xd301x8[_0xa74c[13]]);_0xd301x8[_0xa74c[72]]= stripTrailingSlash(_0xd301x8[_0xa74c[72]]);_0xd301x28[_0xa74c[73]]= (_0xd301x2a&& _0xd301x2a[_0xa74c[74]])?util[_0xa74c[14]](_0xa74c[75],_0xd301x8[_0xa74c[72]],_0xd301x28[_0xa74c[76]]):_0xa74c[77];headers[_0xa74c[78]]= getAuth(_0xd301x8);return getUser(_0xd301x8)[_0xa74c[11]](function(_0xd301x2d){_0xd301x9= _0xd301x2d;return getEndUser(_0xd301x8,_0xd301x28[_0xa74c[83]],_0xd301x28[_0xa74c[84]])})[_0xa74c[11]](function(_0xd301x2d){_0xd301xa= _0xd301x2d;return getTicket(_0xd301x8,_0xd301x9,_0xd301xa,_0xd301xb,_0xd301x28)})[_0xa74c[81]](function(_0xd301x2b){logger[_0xa74c[80]](_0xa74c[91],JSON[_0xa74c[45]](_0xd301x2b))})}
\ No newline at end of file
index 7c5c83d..9573399 100644 (file)
@@ -1 +1 @@
-var _0x6b9c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x75\x74\x69\x6C","\x6D\x75\x73\x74\x61\x63\x68\x65","\x65\x78\x65\x63","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x72\x65\x6E\x64\x65\x72","\x71\x73","\x47\x45\x54","\x62\x6F\x64\x79","\x50\x4F\x53\x54","\x25\x73\x20\x25\x73\x20\x25\x73\x20\x5B\x25\x73\x5D\x3A\x25\x73","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x6E\x61\x6D\x65","\x6D\x65\x73\x73\x61\x67\x65","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x25\x73\x20\x25\x73\x20\x73\x75\x63\x63\x65\x65\x64\x65\x64\x20\x77\x69\x74\x68\x20\x73\x74\x61\x74\x75\x73\x3A\x20\x25\x64\x20\x61\x6E\x64\x20\x62\x6F\x64\x79\x3A\x20\x25\x73","\x6C\x6F\x67","\x74\x68\x65\x6E"];_0x6b9c[0];var rp=require(_0x6b9c[1]);var util=require(_0x6b9c[2]);var Mustache=require(_0x6b9c[3]);exports[_0x6b9c[4]]= function(_0x2548x4,_0x2548x5){var _0x2548x6={method:_0x2548x4[_0x6b9c[6]][_0x6b9c[5]](),uri:encodeURI(Mustache[_0x6b9c[8]](_0x2548x4[_0x6b9c[7]],_0x2548x5)),json:true,resolveWithFullResponse:true};switch(_0x2548x4[_0x6b9c[6]][_0x6b9c[5]]()){case _0x6b9c[10]:_0x2548x6[_0x6b9c[9]]= _0x2548x5;break;case _0x6b9c[12]:_0x2548x6[_0x6b9c[11]]= _0x2548x5;break};rp(_0x2548x6)[_0x6b9c[22]](function(_0x2548x8){console[_0x6b9c[21]](util[_0x6b9c[17]](_0x6b9c[20],_0x2548x4[_0x6b9c[6]],_0x2548x4[_0x6b9c[7]],_0x2548x8[_0x6b9c[14]],_0x2548x8[_0x6b9c[11]]))})[_0x6b9c[19]](function(_0x2548x7){console[_0x6b9c[18]](util[_0x6b9c[17]](_0x6b9c[13],_0x2548x4[_0x6b9c[6]],_0x2548x4[_0x6b9c[7]],_0x2548x7[_0x6b9c[14]],_0x2548x7[_0x6b9c[15]],_0x2548x7[_0x6b9c[16]]))})}
\ No newline at end of file
+var _0x5cd0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x75\x74\x69\x6C","\x6D\x75\x73\x74\x61\x63\x68\x65","\x65\x78\x65\x63","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x72\x65\x6E\x64\x65\x72","\x71\x73","\x47\x45\x54","\x62\x6F\x64\x79","\x50\x4F\x53\x54","\x25\x73\x20\x25\x73\x20\x25\x73\x20\x5B\x25\x73\x5D\x3A\x25\x73","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x6E\x61\x6D\x65","\x6D\x65\x73\x73\x61\x67\x65","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x25\x73\x20\x25\x73\x20\x73\x75\x63\x63\x65\x65\x64\x65\x64\x20\x77\x69\x74\x68\x20\x73\x74\x61\x74\x75\x73\x3A\x20\x25\x64\x20\x61\x6E\x64\x20\x62\x6F\x64\x79\x3A\x20\x25\x73","\x6C\x6F\x67","\x74\x68\x65\x6E"];_0x5cd0[0];var rp=require(_0x5cd0[1]);var util=require(_0x5cd0[2]);var Mustache=require(_0x5cd0[3]);exports[_0x5cd0[4]]= function(_0xc007x4,_0xc007x5){var _0xc007x6={method:_0xc007x4[_0x5cd0[6]][_0x5cd0[5]](),uri:encodeURI(Mustache[_0x5cd0[8]](_0xc007x4[_0x5cd0[7]],_0xc007x5)),json:true,resolveWithFullResponse:true};switch(_0xc007x4[_0x5cd0[6]][_0x5cd0[5]]()){case _0x5cd0[10]:_0xc007x6[_0x5cd0[9]]= _0xc007x5;break;case _0x5cd0[12]:_0xc007x6[_0x5cd0[11]]= _0xc007x5;break};rp(_0xc007x6)[_0x5cd0[22]](function(_0xc007x8){console[_0x5cd0[21]](util[_0x5cd0[17]](_0x5cd0[20],_0xc007x4[_0x5cd0[6]],_0xc007x4[_0x5cd0[7]],_0xc007x8[_0x5cd0[14]],_0xc007x8[_0x5cd0[11]]))})[_0x5cd0[19]](function(_0xc007x7){console[_0x5cd0[18]](util[_0x5cd0[17]](_0x5cd0[13],_0xc007x4[_0x5cd0[6]],_0xc007x4[_0x5cd0[7]],_0xc007x7[_0x5cd0[14]],_0xc007x7[_0x5cd0[15]],_0xc007x7[_0x5cd0[16]]))})}
\ No newline at end of file
index e2b1e72..d5d8aac 100644 (file)
@@ -1 +1 @@
-var _0xfa01=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x2E\x2F\x6C\x69\x62\x2F\x65\x6D\x61\x69\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x63\x63\x6F\x75\x6E\x74","\x6D\x65\x73\x73\x61\x67\x65","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x56\x65\x72\x69\x66\x69\x65\x64","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x73\x65\x72\x76\x65\x72","\x6C\x69\x73\x74\x65\x6E"];_0xfa01[0];var jayson=require(_0xfa01[1]);var client=jayson[_0xfa01[3]][_0xfa01[2]]({port:9001});var EmailChannel=require(_0xfa01[4]);var email= new EmailChannel(client);var server=jayson[_0xfa01[13]]({SendMail:function(_0xe870x6){return  new Promise(function(_0xe870x7,_0xe870x8){email[_0xfa01[10]](_0xe870x6[_0xfa01[8]],_0xe870x6[_0xfa01[9]])[_0xfa01[7]](function(_0xe870xa){_0xe870x7(_0xe870xa)})[_0xfa01[6]](function(_0xe870x9){_0xe870x8(server[_0xfa01[5]](500,_0xe870x9))})})},VerifySmtp:function(_0xe870x6){return  new Promise(function(_0xe870x7,_0xe870x8){email[_0xfa01[12]](_0xe870x6[_0xfa01[8]])[_0xfa01[7]](function(_0xe870xb){_0xe870x7({code:200,message:_0xfa01[11]})})[_0xfa01[6]](function(_0xe870x9){_0xe870x8(server[_0xfa01[5]](500,_0xe870x9))})})}});return server[_0xfa01[2]]()[_0xfa01[14]](9003)
\ No newline at end of file
+var _0x847d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x2E\x2F\x6C\x69\x62\x2F\x65\x6D\x61\x69\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x63\x63\x6F\x75\x6E\x74","\x6D\x65\x73\x73\x61\x67\x65","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x56\x65\x72\x69\x66\x69\x65\x64","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x73\x65\x72\x76\x65\x72","\x6C\x69\x73\x74\x65\x6E"];_0x847d[0];var jayson=require(_0x847d[1]);var client=jayson[_0x847d[3]][_0x847d[2]]({port:9001});var EmailChannel=require(_0x847d[4]);var email= new EmailChannel(client);var server=jayson[_0x847d[13]]({SendMail:function(_0xc54cx6){return  new Promise(function(_0xc54cx7,_0xc54cx8){email[_0x847d[10]](_0xc54cx6[_0x847d[8]],_0xc54cx6[_0x847d[9]])[_0x847d[7]](function(_0xc54cxa){_0xc54cx7(_0xc54cxa)})[_0x847d[6]](function(_0xc54cx9){_0xc54cx8(server[_0x847d[5]](500,_0xc54cx9))})})},VerifySmtp:function(_0xc54cx6){return  new Promise(function(_0xc54cx7,_0xc54cx8){email[_0x847d[12]](_0xc54cx6[_0x847d[8]])[_0x847d[7]](function(_0xc54cxb){_0xc54cx7({code:200,message:_0x847d[11]})})[_0x847d[6]](function(_0xc54cx9){_0xc54cx8(server[_0x847d[5]](500,_0xc54cx9))})})}});return server[_0x847d[2]]()[_0x847d[14]](9003)
\ No newline at end of file
index e12e038..9713840 100644 (file)
@@ -1 +1 @@
-var _0x7b67=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6B\x75\x65","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x69\x6D\x61\x70","\x2E\x2F\x73\x6D\x74\x70","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x65\x6E\x7A\x6F","\x64\x61\x6E\x69\x65\x6C\x65","\x61\x62\x69","\x76\x61\x6C\x65\x72\x69\x6F","\x67\x69\x6F\x72\x67\x69\x6F","\x6D\x65\x6F","\x64\x69\x65\x67\x6F","\x62\x65\x70\x70\x65","\x73\x74\x61\x72\x74\x20\x65\x6D\x61\x69\x6C\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x6E\x66\x6F","\x6A\x6F\x62\x73","\x69\x6D\x61\x70","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x61\x64\x20\x61\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x62\x69\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x70\x45\x6D\x61\x69\x6C","\x6F\x6E","\x73\x6D\x74\x70","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6E\x65\x77\x20\x65\x6D\x61\x69\x6C\x20\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x6A\x6F\x62\x20\x25\x73\x20\x63\x6F\x6D\x70\x6C\x65\x74\x65\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x66\x61\x69\x6C\x65\x64","\x6A\x6F\x62\x20\x25\x73\x20\x66\x61\x69\x6C\x65\x64\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x70\x72\x6F\x67\x72\x65\x73\x73","\x6A\x6F\x62\x20\x25\x73\x20\x70\x72\x6F\x67\x72\x65\x73\x73\x20\x61\x74\x20\x25\x73\x25\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73\x2C\x20\x6E\x65\x78\x74\x20\x61\x70\x70\x20\x25\x73","\x6E\x65\x78\x74\x41\x70\x70","\x25\x73\x20\x65\x6D\x61\x69\x6C\x73\x20\x6D\x61\x6E\x61\x67\x65\x64\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x73\x61\x76\x65","\x6C\x6F\x67","\x72\x65\x74\x72\x79","\x61\x67\x65\x6E\x74\x73","\x74\x69\x6D\x65\x6F\x75\x74","\x50\x52\x4F\x43\x45\x53\x53\x20\x4A\x4F\x42\x49\x44\x3A","\x64\x61\x74\x61","\x72\x65\x6E\x64\x65\x72\x69\x6E\x67\x20\x61\x70\x70","\x69\x74\x73\x64\x6F\x6E\x65","\x70\x72\x6F\x63\x65\x73\x73","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x76\x65\x72\x69\x66\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x7b67[0];var util=require(_0x7b67[1]);var kue=require(_0x7b67[2]);var _=require(_0x7b67[3]);var EmailImap=require(_0x7b67[4]);var EmailSmtp=require(_0x7b67[5]);var logger=require(_0x7b67[7])(_0x7b67[6]);var queue=kue[_0x7b67[9]]({redis:{port:6379,host:_0x7b67[8]}});var emailsManaged=0;var accounts=[];var routing={"\x31":[{agents:[{name:_0x7b67[10],retry:2},{name:_0x7b67[11],retry:3}],timeout:3},{agents:[{name:_0x7b67[12],retry:3},{name:_0x7b67[13],retry:3}],timeout:3,retry:3}],"\x32":[{agents:[{name:_0x7b67[14],retry:3},{name:_0x7b67[15],retry:3}],timeout:3,retry:3},{agents:[{name:_0x7b67[16],retry:3},{name:_0x7b67[17],retry:3}],timeout:3,retry:3}]};function EmailChannel(){logger[_0x7b67[19]](_0x7b67[18]);this[_0x7b67[20]]= [];this[_0x7b67[21]]= [];for(var _0x2c73xc=0;_0x2c73xc< accounts[_0x7b67[22]];_0x2c73xc+= 1){logger[_0x7b67[19]](_0x7b67[23],accounts[_0x2c73xc][_0x7b67[24]]);this[_0x7b67[21]][accounts[_0x2c73xc][_0x7b67[24]]]=  new EmailImap(accounts[_0x2c73xc]);this[_0x7b67[21]][accounts[_0x2c73xc][_0x7b67[24]]][_0x7b67[27]](_0x7b67[6],this[_0x7b67[26]][_0x7b67[25]](this,accounts[_0x2c73xc][_0x7b67[24]]))};this[_0x7b67[28]]=  new EmailSmtp()}EmailChannel[_0x7b67[29]][_0x7b67[26]]= function(_0x2c73xd,_0x2c73xe,_0x2c73xf){logger[_0x7b67[19]](util[_0x7b67[31]](_0x7b67[30],_0x2c73xd,_0x2c73xe));emailsManaged+= 1;var _0x2c73x10=queue[_0x7b67[32]](_0x7b67[6],routing[_0x2c73xd]);_0x2c73x10[_0x7b67[27]](_0x7b67[33],function(){logger[_0x7b67[19]](util[_0x7b67[31]](_0x7b67[34],_0x2c73x10[_0x7b67[24]],_0x2c73xd,_0x2c73xe))});_0x2c73x10[_0x7b67[27]](_0x7b67[35],function(){logger[_0x7b67[19]](util[_0x7b67[31]](_0x7b67[36],_0x2c73x10[_0x7b67[24]],_0x2c73xd,_0x2c73xe))});_0x2c73x10[_0x7b67[27]](_0x7b67[37],function(_0x2c73x11,_0x2c73x12){logger[_0x7b67[19]](util[_0x7b67[31]](_0x7b67[38],_0x2c73x10[_0x7b67[24]],_0x2c73x11,_0x2c73xd,_0x2c73xe,_0x2c73x12[_0x7b67[39]]))});logger[_0x7b67[19]](util[_0x7b67[31]](_0x7b67[40],emailsManaged,_0x2c73xd,_0x2c73xe));_0x2c73x10[_0x7b67[41]]()};function notifyAgent(_0x2c73x14,_0x2c73x15){console[_0x7b67[42]](_0x2c73x14);setTimeout(_0x2c73x15,_0x2c73x14[_0x7b67[43]]* 1000)}function notify(_0x2c73x17,_0x2c73x15){var _0x2c73x18=_0x2c73x17[_0x7b67[44]],_0x2c73x19=_0x2c73x18[_0x7b67[22]];function _0x2c73x1a(_0x2c73xc){var _0x2c73x14=_0x2c73x18[_0x2c73xc];if(_0x2c73x17[_0x7b67[45]]>= _0x2c73x14[_0x7b67[43]]){_0x2c73x17[_0x7b67[45]]-= _0x2c73x14[_0x7b67[43]]}else {_0x2c73x14[_0x7b67[43]]= _0x2c73x17[_0x7b67[45]];_0x2c73x17[_0x7b67[45]]= 0};console[_0x7b67[42]](_0x2c73x17[_0x7b67[45]]);notifyAgent(_0x2c73x14,function(_0x2c73x1b){if(_0x2c73x1b){return _0x2c73x15(_0x2c73x1b)};if(_0x2c73xc=== _0x2c73x19- 1|| _0x2c73x17[_0x7b67[45]]=== 0){_0x2c73x15()}else {_0x2c73x1a(_0x2c73xc+= 1)}})}_0x2c73x1a(0)}queue[_0x7b67[50]](_0x7b67[6],function(_0x2c73x10,_0x2c73x1c){console[_0x7b67[42]](_0x7b67[46],_0x2c73x10[_0x7b67[24]]);var _0x2c73x1d=_0x2c73x10[_0x7b67[47]],_0x2c73x19=_0x2c73x1d[_0x7b67[22]];function _0x2c73x1a(_0x2c73xc){var _0x2c73x17=_0x2c73x1d[_0x2c73xc];_0x2c73x10[_0x7b67[42]](_0x7b67[48]);notify(_0x2c73x17,function(_0x2c73x1b){if(_0x2c73x1b){return _0x2c73x1c(_0x2c73x1b)};_0x2c73x10[_0x7b67[37]](_0x2c73xc,_0x2c73x19,{nextApp:_0x2c73xc=== _0x2c73x19- 1?_0x7b67[49]:_0x2c73xc+ 1});if(_0x2c73xc=== _0x2c73x19- 1){_0x2c73x1c()}else {_0x2c73x1a(_0x2c73xc+= 1)}})}_0x2c73x1a(0)});EmailChannel[_0x7b67[29]][_0x7b67[51]]= function(_0x2c73x1e,_0x2c73x1f){return this[_0x7b67[28]][_0x7b67[52]](_0x2c73x1e,_0x2c73x1f)};EmailChannel[_0x7b67[29]][_0x7b67[53]]= function(_0x2c73x1e){return this[_0x7b67[28]][_0x7b67[54]](_0x2c73x1e)};module[_0x7b67[55]]= EmailChannel
\ No newline at end of file
+var _0x119c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6B\x75\x65","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x69\x6D\x61\x70","\x2E\x2F\x73\x6D\x74\x70","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x65\x6E\x7A\x6F","\x64\x61\x6E\x69\x65\x6C\x65","\x61\x62\x69","\x76\x61\x6C\x65\x72\x69\x6F","\x67\x69\x6F\x72\x67\x69\x6F","\x6D\x65\x6F","\x64\x69\x65\x67\x6F","\x62\x65\x70\x70\x65","\x73\x74\x61\x72\x74\x20\x65\x6D\x61\x69\x6C\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x6E\x66\x6F","\x6A\x6F\x62\x73","\x69\x6D\x61\x70","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x61\x64\x20\x61\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x62\x69\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x70\x45\x6D\x61\x69\x6C","\x6F\x6E","\x73\x6D\x74\x70","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6E\x65\x77\x20\x65\x6D\x61\x69\x6C\x20\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x6A\x6F\x62\x20\x25\x73\x20\x63\x6F\x6D\x70\x6C\x65\x74\x65\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x66\x61\x69\x6C\x65\x64","\x6A\x6F\x62\x20\x25\x73\x20\x66\x61\x69\x6C\x65\x64\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x70\x72\x6F\x67\x72\x65\x73\x73","\x6A\x6F\x62\x20\x25\x73\x20\x70\x72\x6F\x67\x72\x65\x73\x73\x20\x61\x74\x20\x25\x73\x25\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73\x2C\x20\x6E\x65\x78\x74\x20\x61\x70\x70\x20\x25\x73","\x6E\x65\x78\x74\x41\x70\x70","\x25\x73\x20\x65\x6D\x61\x69\x6C\x73\x20\x6D\x61\x6E\x61\x67\x65\x64\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x73\x61\x76\x65","\x6C\x6F\x67","\x72\x65\x74\x72\x79","\x61\x67\x65\x6E\x74\x73","\x74\x69\x6D\x65\x6F\x75\x74","\x50\x52\x4F\x43\x45\x53\x53\x20\x4A\x4F\x42\x49\x44\x3A","\x64\x61\x74\x61","\x72\x65\x6E\x64\x65\x72\x69\x6E\x67\x20\x61\x70\x70","\x69\x74\x73\x64\x6F\x6E\x65","\x70\x72\x6F\x63\x65\x73\x73","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x76\x65\x72\x69\x66\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x119c[0];var util=require(_0x119c[1]);var kue=require(_0x119c[2]);var _=require(_0x119c[3]);var EmailImap=require(_0x119c[4]);var EmailSmtp=require(_0x119c[5]);var logger=require(_0x119c[7])(_0x119c[6]);var queue=kue[_0x119c[9]]({redis:{port:6379,host:_0x119c[8]}});var emailsManaged=0;var accounts=[];var routing={"\x31":[{agents:[{name:_0x119c[10],retry:2},{name:_0x119c[11],retry:3}],timeout:3},{agents:[{name:_0x119c[12],retry:3},{name:_0x119c[13],retry:3}],timeout:3,retry:3}],"\x32":[{agents:[{name:_0x119c[14],retry:3},{name:_0x119c[15],retry:3}],timeout:3,retry:3},{agents:[{name:_0x119c[16],retry:3},{name:_0x119c[17],retry:3}],timeout:3,retry:3}]};function EmailChannel(){logger[_0x119c[19]](_0x119c[18]);this[_0x119c[20]]= [];this[_0x119c[21]]= [];for(var _0xeecbxc=0;_0xeecbxc< accounts[_0x119c[22]];_0xeecbxc+= 1){logger[_0x119c[19]](_0x119c[23],accounts[_0xeecbxc][_0x119c[24]]);this[_0x119c[21]][accounts[_0xeecbxc][_0x119c[24]]]=  new EmailImap(accounts[_0xeecbxc]);this[_0x119c[21]][accounts[_0xeecbxc][_0x119c[24]]][_0x119c[27]](_0x119c[6],this[_0x119c[26]][_0x119c[25]](this,accounts[_0xeecbxc][_0x119c[24]]))};this[_0x119c[28]]=  new EmailSmtp()}EmailChannel[_0x119c[29]][_0x119c[26]]= function(_0xeecbxd,_0xeecbxe,_0xeecbxf){logger[_0x119c[19]](util[_0x119c[31]](_0x119c[30],_0xeecbxd,_0xeecbxe));emailsManaged+= 1;var _0xeecbx10=queue[_0x119c[32]](_0x119c[6],routing[_0xeecbxd]);_0xeecbx10[_0x119c[27]](_0x119c[33],function(){logger[_0x119c[19]](util[_0x119c[31]](_0x119c[34],_0xeecbx10[_0x119c[24]],_0xeecbxd,_0xeecbxe))});_0xeecbx10[_0x119c[27]](_0x119c[35],function(){logger[_0x119c[19]](util[_0x119c[31]](_0x119c[36],_0xeecbx10[_0x119c[24]],_0xeecbxd,_0xeecbxe))});_0xeecbx10[_0x119c[27]](_0x119c[37],function(_0xeecbx11,_0xeecbx12){logger[_0x119c[19]](util[_0x119c[31]](_0x119c[38],_0xeecbx10[_0x119c[24]],_0xeecbx11,_0xeecbxd,_0xeecbxe,_0xeecbx12[_0x119c[39]]))});logger[_0x119c[19]](util[_0x119c[31]](_0x119c[40],emailsManaged,_0xeecbxd,_0xeecbxe));_0xeecbx10[_0x119c[41]]()};function notifyAgent(_0xeecbx14,_0xeecbx15){console[_0x119c[42]](_0xeecbx14);setTimeout(_0xeecbx15,_0xeecbx14[_0x119c[43]]* 1000)}function notify(_0xeecbx17,_0xeecbx15){var _0xeecbx18=_0xeecbx17[_0x119c[44]],_0xeecbx19=_0xeecbx18[_0x119c[22]];function _0xeecbx1a(_0xeecbxc){var _0xeecbx14=_0xeecbx18[_0xeecbxc];if(_0xeecbx17[_0x119c[45]]>= _0xeecbx14[_0x119c[43]]){_0xeecbx17[_0x119c[45]]-= _0xeecbx14[_0x119c[43]]}else {_0xeecbx14[_0x119c[43]]= _0xeecbx17[_0x119c[45]];_0xeecbx17[_0x119c[45]]= 0};console[_0x119c[42]](_0xeecbx17[_0x119c[45]]);notifyAgent(_0xeecbx14,function(_0xeecbx1b){if(_0xeecbx1b){return _0xeecbx15(_0xeecbx1b)};if(_0xeecbxc=== _0xeecbx19- 1|| _0xeecbx17[_0x119c[45]]=== 0){_0xeecbx15()}else {_0xeecbx1a(_0xeecbxc+= 1)}})}_0xeecbx1a(0)}queue[_0x119c[50]](_0x119c[6],function(_0xeecbx10,_0xeecbx1c){console[_0x119c[42]](_0x119c[46],_0xeecbx10[_0x119c[24]]);var _0xeecbx1d=_0xeecbx10[_0x119c[47]],_0xeecbx19=_0xeecbx1d[_0x119c[22]];function _0xeecbx1a(_0xeecbxc){var _0xeecbx17=_0xeecbx1d[_0xeecbxc];_0xeecbx10[_0x119c[42]](_0x119c[48]);notify(_0xeecbx17,function(_0xeecbx1b){if(_0xeecbx1b){return _0xeecbx1c(_0xeecbx1b)};_0xeecbx10[_0x119c[37]](_0xeecbxc,_0xeecbx19,{nextApp:_0xeecbxc=== _0xeecbx19- 1?_0x119c[49]:_0xeecbxc+ 1});if(_0xeecbxc=== _0xeecbx19- 1){_0xeecbx1c()}else {_0xeecbx1a(_0xeecbxc+= 1)}})}_0xeecbx1a(0)});EmailChannel[_0x119c[29]][_0x119c[51]]= function(_0xeecbx1e,_0xeecbx1f){return this[_0x119c[28]][_0x119c[52]](_0xeecbx1e,_0xeecbx1f)};EmailChannel[_0x119c[29]][_0x119c[53]]= function(_0xeecbx1e){return this[_0x119c[28]][_0x119c[54]](_0xeecbx1e)};module[_0x119c[55]]= EmailChannel
\ No newline at end of file
index 7b1c8a0..33317b0 100644 (file)
@@ -1 +1 @@
-var _0xcf40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x69\x6D\x61\x70","\x6C\x6F\x64\x61\x73\x68","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x4D\x61\x69\x6C\x50\x61\x72\x73\x65\x72","\x6D\x61\x69\x6C\x70\x61\x72\x73\x65\x72","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x6D\x6C","\x73\x75\x62\x6A\x65\x63\x74","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x72\x6F\x6D","\x74\x6F","\x64\x61\x74\x65","\x72\x65\x63\x65\x69\x76\x65\x64\x44\x61\x74\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x6D\x61\x69\x6C\x62\x6F\x78","\x49\x4E\x42\x4F\x58","\x72\x65\x61\x64\x79","\x62\x69\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x52\x65\x61\x64\x79","\x6F\x6E\x63\x65","\x65\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x45\x6E\x64","\x65\x72\x72\x6F\x72","\x68\x61\x6E\x64\x6C\x65\x45\x72\x72\x6F\x72","\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x69\x6E\x68\x65\x72\x69\x74\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x66\x6F","\x68\x61\x6E\x64\x6C\x65\x4F\x70\x65\x6E\x42\x6F\x78","\x6F\x70\x65\x6E\x42\x6F\x78","\x6D\x61\x69\x6C","\x68\x61\x6E\x64\x6C\x65\x4E\x65\x77\x4D\x61\x69\x6C","\x72\x65\x61\x64\x55\x6E\x73\x65\x65\x6E","\x6E\x65\x77\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x6D\x61\x69\x6C","\x55\x4E\x53\x45\x45\x4E","\x68\x61\x6E\x64\x6C\x65\x52\x65\x61\x64\x55\x6E\x73\x65\x65\x6E","\x73\x65\x61\x72\x63\x68","","\x66\x65\x74\x63\x68","\x6D\x65\x73\x73\x61\x67\x65","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x4D\x65\x73\x73\x61\x67\x65","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x45\x72\x72\x6F\x72","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x45\x6E\x64","\x62\x6F\x64\x79","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x42\x6F\x64\x79","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x45\x6E\x64","\x6E\x65\x77\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x73\x69\x7A\x65\x3A\x25\x73","\x73\x69\x7A\x65","\x66\x6F\x72\x6D\x61\x74","\x68\x61\x6E\x64\x6C\x65\x4D\x61\x69\x6C\x50\x61\x72\x73\x65\x72\x45\x6E\x64","\x70\x69\x70\x65","\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x3A\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x70\x61\x72\x73\x65\x64","\x70\x69\x63\x6B","\x65\x6D\x69\x74","\x66\x65\x74\x63\x68\x20\x65\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xcf40[0];var fs=require(_0xcf40[1]);var path=require(_0xcf40[2]);var util=require(_0xcf40[3]);var Imap=require(_0xcf40[4]);var _=require(_0xcf40[5]);var rs=require(_0xcf40[6]);var MailParser=require(_0xcf40[8])[_0xcf40[7]];var EventEmitter=require(_0xcf40[10])[_0xcf40[9]];var logger=require(_0xcf40[12])(_0xcf40[11]);var PROPERTIES=[_0xcf40[13],_0xcf40[14],_0xcf40[15],_0xcf40[16],_0xcf40[17],_0xcf40[18],_0xcf40[19],_0xcf40[20],_0xcf40[21]];function EmailImap(_0xb035xc){this[_0xcf40[22]]= _0xcf40[23];this[_0xcf40[4]]=  new Imap(_0xb035xc);this[_0xcf40[4]][_0xcf40[27]](_0xcf40[24],this[_0xcf40[26]][_0xcf40[25]](this));this[_0xcf40[4]][_0xcf40[27]](_0xcf40[28],this[_0xcf40[29]][_0xcf40[25]](this));this[_0xcf40[4]][_0xcf40[32]](_0xcf40[30],this[_0xcf40[31]][_0xcf40[25]](this));this[_0xcf40[4]][_0xcf40[33]]()}util[_0xcf40[34]](EmailImap,EventEmitter);EmailImap[_0xcf40[35]][_0xcf40[26]]= function(){logger[_0xcf40[36]](_0xcf40[24]);this[_0xcf40[4]][_0xcf40[38]](this[_0xcf40[22]],false,this[_0xcf40[37]][_0xcf40[25]](this))};EmailImap[_0xcf40[35]][_0xcf40[37]]= function(_0xb035xd,_0xb035xe){if(_0xb035xd){logger[_0xcf40[30]](_0xb035xd)}else {this[_0xcf40[4]][_0xcf40[32]](_0xcf40[39],this[_0xcf40[40]][_0xcf40[25]](this));this[_0xcf40[41]]()}};EmailImap[_0xcf40[35]][_0xcf40[40]]= function(_0xb035xf){logger[_0xcf40[36]](_0xcf40[42]);this[_0xcf40[41]]()};EmailImap[_0xcf40[35]][_0xcf40[41]]= function(){this[_0xcf40[4]][_0xcf40[45]]([_0xcf40[43]],this[_0xcf40[44]][_0xcf40[25]](this))};EmailImap[_0xcf40[35]][_0xcf40[44]]= function(_0xb035xd,_0xb035x10){if(_0xb035xd){logger[_0xcf40[30]](_0xb035xd)}else {var _0xb035x11=this[_0xcf40[4]][_0xcf40[47]](_0xb035x10,{bodies:_0xcf40[46]});_0xb035x11[_0xcf40[32]](_0xcf40[48],this[_0xcf40[49]][_0xcf40[25]](this));_0xb035x11[_0xcf40[27]](_0xcf40[30],this[_0xcf40[50]][_0xcf40[25]](this));_0xb035x11[_0xcf40[27]](_0xcf40[28],this[_0xcf40[51]][_0xcf40[25]](this))}};EmailImap[_0xcf40[35]][_0xcf40[49]]= function(_0xb035x12,_0xb035x13){_0xb035x12[_0xcf40[32]](_0xcf40[52],this[_0xcf40[53]][_0xcf40[25]](this,_0xb035x13));_0xb035x12[_0xcf40[27]](_0xcf40[54],this[_0xcf40[55]][_0xcf40[25]](this,_0xb035x13));_0xb035x12[_0xcf40[27]](_0xcf40[28],this[_0xcf40[56]][_0xcf40[25]](this,_0xb035x13))};EmailImap[_0xcf40[35]][_0xcf40[53]]= function(_0xb035x13,_0xb035x14,_0xb035x15){logger[_0xcf40[36]](util[_0xcf40[59]](_0xcf40[57],_0xb035x13,_0xb035x15[_0xcf40[58]]));var _0xb035x16= new MailParser();_0xb035x16[_0xcf40[32]](_0xcf40[28],this[_0xcf40[60]][_0xcf40[25]](this,_0xb035x13));_0xb035x14[_0xcf40[61]](_0xb035x16)};EmailImap[_0xcf40[35]][_0xcf40[55]]= function(_0xb035x13,_0xb035x17){logger[_0xcf40[64]](util[_0xcf40[59]](_0xcf40[62],_0xb035x13,JSON[_0xcf40[63]](_0xb035x17)))};EmailImap[_0xcf40[35]][_0xcf40[56]]= function(_0xb035x13){logger[_0xcf40[36]](util[_0xcf40[59]](_0xcf40[65],_0xb035x13))};EmailImap[_0xcf40[35]][_0xcf40[60]]= function(_0xb035x13,_0xb035x18){this[_0xcf40[67]](_0xcf40[11],_0xb035x13,_[_0xcf40[66]](_0xb035x18,PROPERTIES))};EmailImap[_0xcf40[35]][_0xcf40[51]]= function(){logger[_0xcf40[36]](_0xcf40[68])};EmailImap[_0xcf40[35]][_0xcf40[50]]= function(_0xb035xd){logger[_0xcf40[30]](_0xcf40[47],JSON[_0xcf40[63]](_0xb035xd))};EmailImap[_0xcf40[35]][_0xcf40[29]]= function(){logger[_0xcf40[36]](_0xcf40[28])};EmailImap[_0xcf40[35]][_0xcf40[31]]= function(_0xb035xd){logger[_0xcf40[30]](JSON[_0xcf40[63]](_0xb035xd))};module[_0xcf40[69]]= EmailImap
\ No newline at end of file
+var _0x235f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x69\x6D\x61\x70","\x6C\x6F\x64\x61\x73\x68","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x4D\x61\x69\x6C\x50\x61\x72\x73\x65\x72","\x6D\x61\x69\x6C\x70\x61\x72\x73\x65\x72","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x6D\x6C","\x73\x75\x62\x6A\x65\x63\x74","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x72\x6F\x6D","\x74\x6F","\x64\x61\x74\x65","\x72\x65\x63\x65\x69\x76\x65\x64\x44\x61\x74\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x6D\x61\x69\x6C\x62\x6F\x78","\x49\x4E\x42\x4F\x58","\x72\x65\x61\x64\x79","\x62\x69\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x52\x65\x61\x64\x79","\x6F\x6E\x63\x65","\x65\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x45\x6E\x64","\x65\x72\x72\x6F\x72","\x68\x61\x6E\x64\x6C\x65\x45\x72\x72\x6F\x72","\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x69\x6E\x68\x65\x72\x69\x74\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x66\x6F","\x68\x61\x6E\x64\x6C\x65\x4F\x70\x65\x6E\x42\x6F\x78","\x6F\x70\x65\x6E\x42\x6F\x78","\x6D\x61\x69\x6C","\x68\x61\x6E\x64\x6C\x65\x4E\x65\x77\x4D\x61\x69\x6C","\x72\x65\x61\x64\x55\x6E\x73\x65\x65\x6E","\x6E\x65\x77\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x6D\x61\x69\x6C","\x55\x4E\x53\x45\x45\x4E","\x68\x61\x6E\x64\x6C\x65\x52\x65\x61\x64\x55\x6E\x73\x65\x65\x6E","\x73\x65\x61\x72\x63\x68","","\x66\x65\x74\x63\x68","\x6D\x65\x73\x73\x61\x67\x65","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x4D\x65\x73\x73\x61\x67\x65","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x45\x72\x72\x6F\x72","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x45\x6E\x64","\x62\x6F\x64\x79","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x42\x6F\x64\x79","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x45\x6E\x64","\x6E\x65\x77\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x73\x69\x7A\x65\x3A\x25\x73","\x73\x69\x7A\x65","\x66\x6F\x72\x6D\x61\x74","\x68\x61\x6E\x64\x6C\x65\x4D\x61\x69\x6C\x50\x61\x72\x73\x65\x72\x45\x6E\x64","\x70\x69\x70\x65","\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x3A\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x70\x61\x72\x73\x65\x64","\x70\x69\x63\x6B","\x65\x6D\x69\x74","\x66\x65\x74\x63\x68\x20\x65\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x235f[0];var fs=require(_0x235f[1]);var path=require(_0x235f[2]);var util=require(_0x235f[3]);var Imap=require(_0x235f[4]);var _=require(_0x235f[5]);var rs=require(_0x235f[6]);var MailParser=require(_0x235f[8])[_0x235f[7]];var EventEmitter=require(_0x235f[10])[_0x235f[9]];var logger=require(_0x235f[12])(_0x235f[11]);var PROPERTIES=[_0x235f[13],_0x235f[14],_0x235f[15],_0x235f[16],_0x235f[17],_0x235f[18],_0x235f[19],_0x235f[20],_0x235f[21]];function EmailImap(_0x77f4xc){this[_0x235f[22]]= _0x235f[23];this[_0x235f[4]]=  new Imap(_0x77f4xc);this[_0x235f[4]][_0x235f[27]](_0x235f[24],this[_0x235f[26]][_0x235f[25]](this));this[_0x235f[4]][_0x235f[27]](_0x235f[28],this[_0x235f[29]][_0x235f[25]](this));this[_0x235f[4]][_0x235f[32]](_0x235f[30],this[_0x235f[31]][_0x235f[25]](this));this[_0x235f[4]][_0x235f[33]]()}util[_0x235f[34]](EmailImap,EventEmitter);EmailImap[_0x235f[35]][_0x235f[26]]= function(){logger[_0x235f[36]](_0x235f[24]);this[_0x235f[4]][_0x235f[38]](this[_0x235f[22]],false,this[_0x235f[37]][_0x235f[25]](this))};EmailImap[_0x235f[35]][_0x235f[37]]= function(_0x77f4xd,_0x77f4xe){if(_0x77f4xd){logger[_0x235f[30]](_0x77f4xd)}else {this[_0x235f[4]][_0x235f[32]](_0x235f[39],this[_0x235f[40]][_0x235f[25]](this));this[_0x235f[41]]()}};EmailImap[_0x235f[35]][_0x235f[40]]= function(_0x77f4xf){logger[_0x235f[36]](_0x235f[42]);this[_0x235f[41]]()};EmailImap[_0x235f[35]][_0x235f[41]]= function(){this[_0x235f[4]][_0x235f[45]]([_0x235f[43]],this[_0x235f[44]][_0x235f[25]](this))};EmailImap[_0x235f[35]][_0x235f[44]]= function(_0x77f4xd,_0x77f4x10){if(_0x77f4xd){logger[_0x235f[30]](_0x77f4xd)}else {var _0x77f4x11=this[_0x235f[4]][_0x235f[47]](_0x77f4x10,{bodies:_0x235f[46]});_0x77f4x11[_0x235f[32]](_0x235f[48],this[_0x235f[49]][_0x235f[25]](this));_0x77f4x11[_0x235f[27]](_0x235f[30],this[_0x235f[50]][_0x235f[25]](this));_0x77f4x11[_0x235f[27]](_0x235f[28],this[_0x235f[51]][_0x235f[25]](this))}};EmailImap[_0x235f[35]][_0x235f[49]]= function(_0x77f4x12,_0x77f4x13){_0x77f4x12[_0x235f[32]](_0x235f[52],this[_0x235f[53]][_0x235f[25]](this,_0x77f4x13));_0x77f4x12[_0x235f[27]](_0x235f[54],this[_0x235f[55]][_0x235f[25]](this,_0x77f4x13));_0x77f4x12[_0x235f[27]](_0x235f[28],this[_0x235f[56]][_0x235f[25]](this,_0x77f4x13))};EmailImap[_0x235f[35]][_0x235f[53]]= function(_0x77f4x13,_0x77f4x14,_0x77f4x15){logger[_0x235f[36]](util[_0x235f[59]](_0x235f[57],_0x77f4x13,_0x77f4x15[_0x235f[58]]));var _0x77f4x16= new MailParser();_0x77f4x16[_0x235f[32]](_0x235f[28],this[_0x235f[60]][_0x235f[25]](this,_0x77f4x13));_0x77f4x14[_0x235f[61]](_0x77f4x16)};EmailImap[_0x235f[35]][_0x235f[55]]= function(_0x77f4x13,_0x77f4x17){logger[_0x235f[64]](util[_0x235f[59]](_0x235f[62],_0x77f4x13,JSON[_0x235f[63]](_0x77f4x17)))};EmailImap[_0x235f[35]][_0x235f[56]]= function(_0x77f4x13){logger[_0x235f[36]](util[_0x235f[59]](_0x235f[65],_0x77f4x13))};EmailImap[_0x235f[35]][_0x235f[60]]= function(_0x77f4x13,_0x77f4x18){this[_0x235f[67]](_0x235f[11],_0x77f4x13,_[_0x235f[66]](_0x77f4x18,PROPERTIES))};EmailImap[_0x235f[35]][_0x235f[51]]= function(){logger[_0x235f[36]](_0x235f[68])};EmailImap[_0x235f[35]][_0x235f[50]]= function(_0x77f4xd){logger[_0x235f[30]](_0x235f[47],JSON[_0x235f[63]](_0x77f4xd))};EmailImap[_0x235f[35]][_0x235f[29]]= function(){logger[_0x235f[36]](_0x235f[28])};EmailImap[_0x235f[35]][_0x235f[31]]= function(_0x77f4xd){logger[_0x235f[30]](JSON[_0x235f[63]](_0x77f4xd))};module[_0x235f[69]]= EmailImap
\ No newline at end of file
index 0305d8b..1966b0b 100644 (file)
@@ -1 +1 @@
-var _0xc909=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x62\x6C\x75\x65\x62\x69\x72\x64","\x73\x65\x6E\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x6F\x72\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x76\x65\x72\x69\x66\x79","\x4E\x6F\x74\x20\x76\x65\x72\x69\x66\x69\x72\x65\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xc909[0];var nodemailer=require(_0xc909[1]);var BPromise=require(_0xc909[2]);function EmailSmtp(){}EmailSmtp[_0xc909[4]][_0xc909[3]]= function(_0x352ex4,_0x352ex5){return  new BPromise(function(_0x352ex6,_0x352ex7){var _0x352ex8=nodemailer[_0xc909[5]](_0x352ex4);_0x352ex8[_0xc909[6]](_0x352ex5,function(_0x352ex9,_0x352exa){if(_0x352ex9){_0x352ex7(_0x352ex9.toString())}else {_0x352ex6(_0x352exa)}})})};EmailSmtp[_0xc909[4]][_0xc909[7]]= function(_0x352ex4){return  new BPromise(function(_0x352ex6,_0x352ex7){var _0x352ex8=nodemailer[_0xc909[5]](_0x352ex4);_0x352ex8[_0xc909[7]](function(_0x352ex9,_0x352exb){if(_0x352ex9){_0x352ex7(_0x352ex9.toString())}else {if(_0x352exb){_0x352ex6(_0x352exb)}else {_0x352ex7(_0xc909[8])}}})})};module[_0xc909[9]]= EmailSmtp
\ No newline at end of file
+var _0x9c16=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x62\x6C\x75\x65\x62\x69\x72\x64","\x73\x65\x6E\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x6F\x72\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x76\x65\x72\x69\x66\x79","\x4E\x6F\x74\x20\x76\x65\x72\x69\x66\x69\x72\x65\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x9c16[0];var nodemailer=require(_0x9c16[1]);var BPromise=require(_0x9c16[2]);function EmailSmtp(){}EmailSmtp[_0x9c16[4]][_0x9c16[3]]= function(_0x4ed8x4,_0x4ed8x5){return  new BPromise(function(_0x4ed8x6,_0x4ed8x7){var _0x4ed8x8=nodemailer[_0x9c16[5]](_0x4ed8x4);_0x4ed8x8[_0x9c16[6]](_0x4ed8x5,function(_0x4ed8x9,_0x4ed8xa){if(_0x4ed8x9){_0x4ed8x7(_0x4ed8x9.toString())}else {_0x4ed8x6(_0x4ed8xa)}})})};EmailSmtp[_0x9c16[4]][_0x9c16[7]]= function(_0x4ed8x4){return  new BPromise(function(_0x4ed8x6,_0x4ed8x7){var _0x4ed8x8=nodemailer[_0x9c16[5]](_0x4ed8x4);_0x4ed8x8[_0x9c16[7]](function(_0x4ed8x9,_0x4ed8xb){if(_0x4ed8x9){_0x4ed8x7(_0x4ed8x9.toString())}else {if(_0x4ed8xb){_0x4ed8x6(_0x4ed8xb)}else {_0x4ed8x7(_0x9c16[8])}}})})};module[_0x9c16[9]]= EmailSmtp
\ No newline at end of file
index 0b17247..e52aa9d 100644 (file)
@@ -1 +1 @@
-var _0xd193=["\x75\x73\x65\x20\x73\x63\x72\x69\x70\x74","\x68\x74\x74\x70","\x65\x78\x70\x72\x65\x73\x73","\x73\x74\x69\x63\x6B\x79\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x70\x6F\x72\x74","\x6C\x69\x73\x74\x65\x6E","\x77\x65\x62\x73\x6F\x63\x6B\x65\x74","\x70\x6F\x6C\x6C\x69\x6E\x67","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x72\x65\x64\x69\x73","\x61\x64\x61\x70\x74\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6F\x63\x6B\x65\x74\x69\x6F","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x72\x6F\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xd193[0];var http=require(_0xd193[1]);var express=require(_0xd193[2]);var sticky=require(_0xd193[3]);var config=require(_0xd193[4]);var app=express();var server=http[_0xd193[5]](app);if(sticky[_0xd193[7]](server,config[_0xd193[6]])){var socketio=require(_0xd193[10])(server,{transports:[_0xd193[8],_0xd193[9]]});socketio[_0xd193[13]](require(_0xd193[12])({host:_0xd193[11],port:6379}));require(_0xd193[15])[_0xd193[14]](socketio);require(_0xd193[16])[_0xd193[14]](app);require(_0xd193[17])[_0xd193[14]](app)};exports= module[_0xd193[18]]= app
\ No newline at end of file
+var _0xf423=["\x75\x73\x65\x20\x73\x63\x72\x69\x70\x74","\x68\x74\x74\x70","\x65\x78\x70\x72\x65\x73\x73","\x73\x74\x69\x63\x6B\x79\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x70\x6F\x72\x74","\x6C\x69\x73\x74\x65\x6E","\x77\x65\x62\x73\x6F\x63\x6B\x65\x74","\x70\x6F\x6C\x6C\x69\x6E\x67","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x72\x65\x64\x69\x73","\x61\x64\x61\x70\x74\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6F\x63\x6B\x65\x74\x69\x6F","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x72\x6F\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf423[0];var http=require(_0xf423[1]);var express=require(_0xf423[2]);var sticky=require(_0xf423[3]);var config=require(_0xf423[4]);var app=express();var server=http[_0xf423[5]](app);if(sticky[_0xf423[7]](server,config[_0xf423[6]])){var socketio=require(_0xf423[10])(server,{transports:[_0xf423[8],_0xf423[9]]});socketio[_0xf423[13]](require(_0xf423[12])({host:_0xf423[11],port:6379}));require(_0xf423[15])[_0xf423[14]](socketio);require(_0xf423[16])[_0xf423[14]](app);require(_0xf423[17])[_0xf423[14]](app)};exports= module[_0xf423[18]]= app
\ No newline at end of file